From 09c954eeb95c71f51554f3db74ede2b231311133 Mon Sep 17 00:00:00 2001 From: Daniel Habenicht Date: Tue, 11 May 2021 16:43:11 +0200 Subject: [PATCH 001/118] add frontend initial --- Frontend/.gitignore | 231 + Frontend/ClientApp/.editorconfig | 16 + Frontend/ClientApp/.gitignore | 40 + Frontend/ClientApp/README.md | 27 + Frontend/ClientApp/angular.json | 136 + Frontend/ClientApp/browserslist | 9 + Frontend/ClientApp/e2e/protractor.conf.js | 28 + Frontend/ClientApp/e2e/src/app.e2e-spec.ts | 14 + Frontend/ClientApp/e2e/src/app.po.ts | 11 + Frontend/ClientApp/e2e/tsconfig.e2e.json | 13 + Frontend/ClientApp/package-lock.json | 28433 ++++++++++++++++ Frontend/ClientApp/package.json | 62 + Frontend/ClientApp/src/app/app.component.html | 6 + Frontend/ClientApp/src/app/app.component.ts | 9 + Frontend/ClientApp/src/app/app.module.ts | 34 + .../ClientApp/src/app/app.server.module.ts | 11 + .../src/app/counter/counter.component.html | 7 + .../src/app/counter/counter.component.spec.ts | 34 + .../src/app/counter/counter.component.ts | 13 + .../app/fetch-data/fetch-data.component.html | 24 + .../app/fetch-data/fetch-data.component.ts | 23 + .../src/app/home/home.component.html | 14 + .../ClientApp/src/app/home/home.component.ts | 8 + .../src/app/nav-menu/nav-menu.component.css | 18 + .../src/app/nav-menu/nav-menu.component.html | 44 + .../src/app/nav-menu/nav-menu.component.ts | 18 + Frontend/ClientApp/src/assets/.gitkeep | 0 .../src/environments/environment.prod.ts | 3 + .../ClientApp/src/environments/environment.ts | 15 + Frontend/ClientApp/src/index.html | 14 + Frontend/ClientApp/src/karma.conf.js | 31 + Frontend/ClientApp/src/main.ts | 20 + Frontend/ClientApp/src/polyfills.ts | 63 + Frontend/ClientApp/src/styles.css | 16 + Frontend/ClientApp/src/test.ts | 20 + Frontend/ClientApp/src/tsconfig.app.json | 11 + Frontend/ClientApp/src/tsconfig.server.json | 9 + Frontend/ClientApp/src/tsconfig.spec.json | 18 + Frontend/ClientApp/src/tslint.json | 17 + Frontend/ClientApp/tsconfig.json | 21 + Frontend/ClientApp/tslint.json | 130 + .../Controllers/WeatherForecastController.cs | 39 + Frontend/Frontend.csproj | 54 + Frontend/Pages/Error.cshtml | 26 + Frontend/Pages/Error.cshtml.cs | 31 + Frontend/Pages/_ViewImports.cshtml | 3 + Frontend/Program.cs | 26 + Frontend/Properties/launchSettings.json | 27 + Frontend/Startup.cs | 75 + Frontend/WeatherForecast.cs | 15 + Frontend/appsettings.Development.json | 9 + Frontend/appsettings.json | 10 + Frontend/wwwroot/favicon.ico | Bin 0 -> 5430 bytes 53 files changed, 29986 insertions(+) create mode 100644 Frontend/.gitignore create mode 100644 Frontend/ClientApp/.editorconfig create mode 100644 Frontend/ClientApp/.gitignore create mode 100644 Frontend/ClientApp/README.md create mode 100644 Frontend/ClientApp/angular.json create mode 100644 Frontend/ClientApp/browserslist create mode 100644 Frontend/ClientApp/e2e/protractor.conf.js create mode 100644 Frontend/ClientApp/e2e/src/app.e2e-spec.ts create mode 100644 Frontend/ClientApp/e2e/src/app.po.ts create mode 100644 Frontend/ClientApp/e2e/tsconfig.e2e.json create mode 100644 Frontend/ClientApp/package-lock.json create mode 100644 Frontend/ClientApp/package.json create mode 100644 Frontend/ClientApp/src/app/app.component.html create mode 100644 Frontend/ClientApp/src/app/app.component.ts create mode 100644 Frontend/ClientApp/src/app/app.module.ts create mode 100644 Frontend/ClientApp/src/app/app.server.module.ts create mode 100644 Frontend/ClientApp/src/app/counter/counter.component.html create mode 100644 Frontend/ClientApp/src/app/counter/counter.component.spec.ts create mode 100644 Frontend/ClientApp/src/app/counter/counter.component.ts create mode 100644 Frontend/ClientApp/src/app/fetch-data/fetch-data.component.html create mode 100644 Frontend/ClientApp/src/app/fetch-data/fetch-data.component.ts create mode 100644 Frontend/ClientApp/src/app/home/home.component.html create mode 100644 Frontend/ClientApp/src/app/home/home.component.ts create mode 100644 Frontend/ClientApp/src/app/nav-menu/nav-menu.component.css create mode 100644 Frontend/ClientApp/src/app/nav-menu/nav-menu.component.html create mode 100644 Frontend/ClientApp/src/app/nav-menu/nav-menu.component.ts create mode 100644 Frontend/ClientApp/src/assets/.gitkeep create mode 100644 Frontend/ClientApp/src/environments/environment.prod.ts create mode 100644 Frontend/ClientApp/src/environments/environment.ts create mode 100644 Frontend/ClientApp/src/index.html create mode 100644 Frontend/ClientApp/src/karma.conf.js create mode 100644 Frontend/ClientApp/src/main.ts create mode 100644 Frontend/ClientApp/src/polyfills.ts create mode 100644 Frontend/ClientApp/src/styles.css create mode 100644 Frontend/ClientApp/src/test.ts create mode 100644 Frontend/ClientApp/src/tsconfig.app.json create mode 100644 Frontend/ClientApp/src/tsconfig.server.json create mode 100644 Frontend/ClientApp/src/tsconfig.spec.json create mode 100644 Frontend/ClientApp/src/tslint.json create mode 100644 Frontend/ClientApp/tsconfig.json create mode 100644 Frontend/ClientApp/tslint.json create mode 100644 Frontend/Controllers/WeatherForecastController.cs create mode 100644 Frontend/Frontend.csproj create mode 100644 Frontend/Pages/Error.cshtml create mode 100644 Frontend/Pages/Error.cshtml.cs create mode 100644 Frontend/Pages/_ViewImports.cshtml create mode 100644 Frontend/Program.cs create mode 100644 Frontend/Properties/launchSettings.json create mode 100644 Frontend/Startup.cs create mode 100644 Frontend/WeatherForecast.cs create mode 100644 Frontend/appsettings.Development.json create mode 100644 Frontend/appsettings.json create mode 100644 Frontend/wwwroot/favicon.ico diff --git a/Frontend/.gitignore b/Frontend/.gitignore new file mode 100644 index 0000000..41ffa34 --- /dev/null +++ b/Frontend/.gitignore @@ -0,0 +1,231 @@ +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +build/ +bld/ +bin/ +Bin/ +obj/ +Obj/ + +# Visual Studio 2015 cache/options directory +.vs/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUNIT +*.VisualState.xml +TestResult.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +*_i.c +*_p.c +*_i.h +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# JustCode is a .NET coding add-in +.JustCode + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# TODO: Comment the next line if you want to checkin your web deploy settings +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# NuGet Packages +*.nupkg +# The packages folder can be ignored because of Package Restore +**/packages/* +# except build/, which is used as an MSBuild target. +!**/packages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/packages/repositories.config + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Microsoft Azure ApplicationInsights config file +ApplicationInsights.config + +# Windows Store app package directory +AppPackages/ +BundleArtifacts/ + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.pfx +*.publishsettings +orleans.codegen.cs + +/node_modules + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm + +# SQL Server files +*.mdf +*.ldf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe + +# FAKE - F# Make +.fake/ diff --git a/Frontend/ClientApp/.editorconfig b/Frontend/ClientApp/.editorconfig new file mode 100644 index 0000000..934f2fe --- /dev/null +++ b/Frontend/ClientApp/.editorconfig @@ -0,0 +1,16 @@ +# Editor configuration, see http://editorconfig.org +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +insert_final_newline = true +trim_trailing_whitespace = true + +[*.md] +max_line_length = off +trim_trailing_whitespace = false + +[*.{razor,cshtml}] +charset = utf-8-bom diff --git a/Frontend/ClientApp/.gitignore b/Frontend/ClientApp/.gitignore new file mode 100644 index 0000000..e1f679b --- /dev/null +++ b/Frontend/ClientApp/.gitignore @@ -0,0 +1,40 @@ +# See http://help.github.com/ignore-files/ for more about ignoring files. + +# compiled output +/dist +/dist-server +/tmp +/out-tsc + +# dependencies +/node_modules + +# IDEs and editors +/.idea +.project +.classpath +.c9/ +*.launch +.settings/ +*.sublime-workspace + +# IDE - VSCode +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json + +# misc +/.sass-cache +/connect.lock +/coverage +/libpeerconnection.log +npm-debug.log +yarn-error.log +testem.log +/typings + +# System Files +.DS_Store +Thumbs.db diff --git a/Frontend/ClientApp/README.md b/Frontend/ClientApp/README.md new file mode 100644 index 0000000..bcdc871 --- /dev/null +++ b/Frontend/ClientApp/README.md @@ -0,0 +1,27 @@ +# Frontend + +This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 6.0.0. + +## Development server + +Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files. + +## Code scaffolding + +Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`. + +## Build + +Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `--prod` flag for a production build. + +## Running unit tests + +Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io). + +## Running end-to-end tests + +Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/). + +## Further help + +To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md). diff --git a/Frontend/ClientApp/angular.json b/Frontend/ClientApp/angular.json new file mode 100644 index 0000000..957bfdd --- /dev/null +++ b/Frontend/ClientApp/angular.json @@ -0,0 +1,136 @@ +{ + "$schema": "./node_modules/@angular/cli/lib/config/schema.json", + "version": 1, + "newProjectRoot": "projects", + "projects": { + "Frontend": { + "root": "", + "sourceRoot": "src", + "projectType": "application", + "prefix": "app", + "schematics": {}, + "architect": { + "build": { + "builder": "@angular-devkit/build-angular:browser", + "options": { + "progress": false, + "extractCss": true, + "outputPath": "dist", + "index": "src/index.html", + "main": "src/main.ts", + "polyfills": "src/polyfills.ts", + "tsConfig": "src/tsconfig.app.json", + "assets": ["src/assets"], + "styles": [ + "node_modules/bootstrap/dist/css/bootstrap.min.css", + "src/styles.css" + ], + "scripts": [] + }, + "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 + } + } + }, + "serve": { + "builder": "@angular-devkit/build-angular:dev-server", + "options": { + "browserTarget": "Frontend:build" + }, + "configurations": { + "production": { + "browserTarget": "Frontend:build:production" + } + } + }, + "extract-i18n": { + "builder": "@angular-devkit/build-angular:extract-i18n", + "options": { + "browserTarget": "Frontend: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": ["src/styles.css"], + "scripts": [], + "assets": ["src/assets"] + } + }, + "lint": { + "builder": "@angular-devkit/build-angular:tslint", + "options": { + "tsConfig": ["src/tsconfig.app.json", "src/tsconfig.spec.json"], + "exclude": ["**/node_modules/**"] + } + }, + "server": { + "builder": "@angular-devkit/build-angular:server", + "options": { + "outputPath": "dist-server", + "main": "src/main.ts", + "tsConfig": "src/tsconfig.server.json" + }, + "configurations": { + "dev": { + "optimization": true, + "outputHashing": "all", + "sourceMap": false, + "namedChunks": false, + "extractLicenses": true, + "vendorChunk": true + }, + "production": { + "optimization": true, + "outputHashing": "all", + "sourceMap": false, + "namedChunks": false, + "extractLicenses": true, + "vendorChunk": false + } + } + } + } + }, + "Frontend-e2e": { + "root": "e2e/", + "projectType": "application", + "architect": { + "e2e": { + "builder": "@angular-devkit/build-angular:protractor", + "options": { + "protractorConfig": "e2e/protractor.conf.js", + "devServerTarget": "Frontend:serve" + } + }, + "lint": { + "builder": "@angular-devkit/build-angular:tslint", + "options": { + "tsConfig": "e2e/tsconfig.e2e.json", + "exclude": ["**/node_modules/**"] + } + } + } + } + }, + "defaultProject": "Frontend" +} diff --git a/Frontend/ClientApp/browserslist b/Frontend/ClientApp/browserslist new file mode 100644 index 0000000..8e09ab4 --- /dev/null +++ b/Frontend/ClientApp/browserslist @@ -0,0 +1,9 @@ +# This file is currently used by autoprefixer to adjust CSS to support the below specified browsers +# For additional information regarding the format and rule options, please see: +# https://github.com/browserslist/browserslist#queries +# For IE 9-11 support, please uncomment the last line of the file and adjust as needed +> 0.5% +last 2 versions +Firefox ESR +not dead +# IE 9-11 \ No newline at end of file diff --git a/Frontend/ClientApp/e2e/protractor.conf.js b/Frontend/ClientApp/e2e/protractor.conf.js new file mode 100644 index 0000000..d60eff0 --- /dev/null +++ b/Frontend/ClientApp/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/Frontend/ClientApp/e2e/src/app.e2e-spec.ts b/Frontend/ClientApp/e2e/src/app.e2e-spec.ts new file mode 100644 index 0000000..5b3b4b2 --- /dev/null +++ b/Frontend/ClientApp/e2e/src/app.e2e-spec.ts @@ -0,0 +1,14 @@ +import { AppPage } from './app.po'; + +describe('App', () => { + let page: AppPage; + + beforeEach(() => { + page = new AppPage(); + }); + + it('should display welcome message', () => { + page.navigateTo(); + expect(page.getMainHeading()).toEqual('Hello, world!'); + }); +}); diff --git a/Frontend/ClientApp/e2e/src/app.po.ts b/Frontend/ClientApp/e2e/src/app.po.ts new file mode 100644 index 0000000..24bc8b3 --- /dev/null +++ b/Frontend/ClientApp/e2e/src/app.po.ts @@ -0,0 +1,11 @@ +import { browser, by, element } from 'protractor'; + +export class AppPage { + navigateTo() { + return browser.get('/'); + } + + getMainHeading() { + return element(by.css('app-root h1')).getText(); + } +} diff --git a/Frontend/ClientApp/e2e/tsconfig.e2e.json b/Frontend/ClientApp/e2e/tsconfig.e2e.json new file mode 100644 index 0000000..a6dd622 --- /dev/null +++ b/Frontend/ClientApp/e2e/tsconfig.e2e.json @@ -0,0 +1,13 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "outDir": "../out-tsc/app", + "module": "commonjs", + "target": "es5", + "types": [ + "jasmine", + "jasminewd2", + "node" + ] + } +} \ No newline at end of file diff --git a/Frontend/ClientApp/package-lock.json b/Frontend/ClientApp/package-lock.json new file mode 100644 index 0000000..f695d47 --- /dev/null +++ b/Frontend/ClientApp/package-lock.json @@ -0,0 +1,28433 @@ +{ + "name": "frontend", + "version": "0.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "frontend", + "version": "0.0.0", + "dependencies": { + "@angular/animations": "8.2.12", + "@angular/common": "8.2.12", + "@angular/compiler": "8.2.12", + "@angular/core": "8.2.12", + "@angular/forms": "8.2.12", + "@angular/platform-browser": "8.2.12", + "@angular/platform-browser-dynamic": "8.2.12", + "@angular/platform-server": "8.2.12", + "@angular/router": "8.2.12", + "@nguniversal/module-map-ngfactory-loader": "8.1.1", + "bootstrap": "^4.6.0", + "core-js": "^3.8.3", + "jquery": "^3.5.1", + "node-sass": "^5.0.0", + "oidc-client": "^1.11.3", + "popper.js": "^1.16.0", + "protractor": "~5.4.2", + "rxjs": "^6.6.3", + "ts-node": "~8.4.1", + "tslint": "~5.20.0", + "zone.js": "0.9.1" + }, + "devDependencies": { + "@angular-devkit/build-angular": "^0.803.29", + "@angular/cli": "^8.3.29", + "@angular/compiler-cli": "^8.2.14", + "@angular/language-service": "^8.2.14", + "@types/jasmine": "~3.4.4", + "@types/jasminewd2": "~2.0.8", + "@types/node": "~12.11.6", + "codelyzer": "^5.2.2", + "ini": "^1.3.7", + "jasmine-core": "~3.5.0", + "jasmine-spec-reporter": "~4.2.1", + "karma": "^5.2.3", + "karma-chrome-launcher": "~3.1.0", + "karma-coverage-istanbul-reporter": "~2.1.0", + "karma-jasmine": "~2.0.1", + "karma-jasmine-html-reporter": "^1.5.4", + "typescript": "3.5.3" + }, + "optionalDependencies": { + "node-sass": "^5.0.0", + "protractor": "~5.4.2", + "ts-node": "~8.4.1", + "tslint": "~5.20.0" + } + }, + "node_modules/@angular-devkit/architect": { + "version": "0.803.29", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.803.29.tgz", + "integrity": "sha512-yHBud/fZHTelX24yjQg5lefZrfIebruoFTGeOwF0JdX8+KiHcTIxS4LOnUTYriasfHarcHRFXBAV/bRm+wv5ow==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "8.3.29", + "rxjs": "6.4.0" + }, + "engines": { + "node": ">= 10.9.0", + "npm": ">= 6.2.0" + } + }, + "node_modules/@angular-devkit/architect/node_modules/rxjs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", + "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@angular-devkit/build-angular": { + "version": "0.803.29", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.803.29.tgz", + "integrity": "sha512-XAgfP1gi0rEJ3oVt+8ipvS5RfPNbeK5r2n8Ll2H3xkKjU0p1PN8+S6/0XVBtmMfeQ06SJWEAKFcAYqrxXhVTzw==", + "dev": true, + "dependencies": { + "@angular-devkit/architect": "0.803.29", + "@angular-devkit/build-optimizer": "0.803.29", + "@angular-devkit/build-webpack": "0.803.29", + "@angular-devkit/core": "8.3.29", + "@babel/core": "7.8.7", + "@babel/preset-env": "7.8.7", + "@ngtools/webpack": "8.3.29", + "ajv": "6.12.3", + "autoprefixer": "9.6.1", + "browserslist": "4.10.0", + "cacache": "12.0.2", + "caniuse-lite": "1.0.30001035", + "circular-dependency-plugin": "5.2.0", + "clean-css": "4.2.1", + "copy-webpack-plugin": "6.0.3", + "core-js": "3.6.4", + "coverage-istanbul-loader": "2.0.3", + "file-loader": "4.2.0", + "find-cache-dir": "3.0.0", + "glob": "7.1.4", + "jest-worker": "24.9.0", + "karma-source-map-support": "1.4.0", + "less": "3.9.0", + "less-loader": "5.0.0", + "license-webpack-plugin": "2.1.2", + "loader-utils": "1.2.3", + "mini-css-extract-plugin": "0.8.0", + "minimatch": "3.0.4", + "open": "6.4.0", + "parse5": "4.0.0", + "postcss": "7.0.17", + "postcss-import": "12.0.1", + "postcss-loader": "3.0.0", + "raw-loader": "3.1.0", + "regenerator-runtime": "0.13.3", + "rxjs": "6.4.0", + "sass": "1.22.9", + "sass-loader": "7.2.0", + "semver": "6.3.0", + "source-map": "0.7.3", + "source-map-loader": "0.2.4", + "source-map-support": "0.5.13", + "speed-measure-webpack-plugin": "1.3.1", + "style-loader": "1.0.0", + "stylus": "0.54.5", + "stylus-loader": "3.0.2", + "terser": "4.6.3", + "terser-webpack-plugin": "3.0.3", + "tree-kill": "1.2.2", + "webpack": "4.39.2", + "webpack-dev-middleware": "3.7.2", + "webpack-dev-server": "3.11.0", + "webpack-merge": "4.2.1", + "webpack-sources": "1.4.3", + "webpack-subresource-integrity": "1.1.0-rc.6", + "worker-plugin": "3.2.0" + }, + "engines": { + "node": ">= 10.9.0", + "npm": ">= 6.2.0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/ajv": { + "version": "6.12.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", + "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/core-js": { + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.4.tgz", + "integrity": "sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw==", + "dev": true, + "hasInstallScript": true + }, + "node_modules/@angular-devkit/build-angular/node_modules/glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "dev": true, + "dependencies": { + "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" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/rxjs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", + "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/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, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/source-map-support/node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@angular-devkit/build-optimizer": { + "version": "0.803.29", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.803.29.tgz", + "integrity": "sha512-E/MXtKc3oaP7UvQm0g4ayfH8ImEoQnRWseKD4jjYG6TbTIqfIyHCZRcKIr3svY28hzASbro5IZI6SugG+llvFw==", + "dev": true, + "dependencies": { + "loader-utils": "1.2.3", + "source-map": "0.7.3", + "tslib": "1.10.0", + "typescript": "3.5.3", + "webpack-sources": "1.4.3" + }, + "bin": { + "build-optimizer": "src/build-optimizer/cli.js" + }, + "engines": { + "node": ">= 10.9.0", + "npm": ">= 6.2.0" + } + }, + "node_modules/@angular-devkit/build-optimizer/node_modules/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, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@angular-devkit/build-optimizer/node_modules/tslib": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", + "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", + "dev": true + }, + "node_modules/@angular-devkit/build-webpack": { + "version": "0.803.29", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.803.29.tgz", + "integrity": "sha512-3dJ3iEGU6AFT8VFTe72T9uNLobfd18Sq5Hz22UCCYji9K3ZyVc/bn5uXVVX+/Yj91MFtXuhOjLj7Z+XDeNy+OQ==", + "dev": true, + "dependencies": { + "@angular-devkit/architect": "0.803.29", + "@angular-devkit/core": "8.3.29", + "rxjs": "6.4.0" + }, + "engines": { + "node": ">= 10.9.0", + "npm": ">= 6.2.0" + } + }, + "node_modules/@angular-devkit/build-webpack/node_modules/rxjs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", + "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@angular-devkit/core": { + "version": "8.3.29", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-8.3.29.tgz", + "integrity": "sha512-4jdja9QPwR6XG14ZSunyyOWT3nE2WtZC5IMDIBZADxujXvhzOU0n4oWpy6/JVHLUAxYNNgzLz+/LQORRWndcPg==", + "dev": true, + "dependencies": { + "ajv": "6.12.3", + "fast-json-stable-stringify": "2.0.0", + "magic-string": "0.25.3", + "rxjs": "6.4.0", + "source-map": "0.7.3" + }, + "engines": { + "node": ">= 10.9.0", + "npm": ">= 6.2.0" + } + }, + "node_modules/@angular-devkit/core/node_modules/ajv": { + "version": "6.12.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", + "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "node_modules/@angular-devkit/core/node_modules/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 + }, + "node_modules/@angular-devkit/core/node_modules/rxjs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", + "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@angular-devkit/core/node_modules/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, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@angular-devkit/schematics": { + "version": "8.3.29", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-8.3.29.tgz", + "integrity": "sha512-AFJ9EK0XbcNlO5Dm9vr0OlBo1Nw6AaFXPR+DmHGBdcDDHxqEmYYLWfT+JU/8U2YFIdgrtlwvdtf6UQ3V2jdz1g==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "8.3.29", + "rxjs": "6.4.0" + }, + "engines": { + "node": ">= 10.9.0", + "npm": ">= 6.2.0" + } + }, + "node_modules/@angular-devkit/schematics/node_modules/rxjs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", + "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@angular/animations": { + "version": "8.2.12", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-8.2.12.tgz", + "integrity": "sha512-QVtZUw5J9c0RcDaJntIoeWVk/q9dhjDFxh+yw/uPl9Z4upWASdsOpZU2lfjqyU0myfg8dnQyZa1+Ce7n/DaClQ==", + "dependencies": { + "tslib": "^1.9.0" + } + }, + "node_modules/@angular/cli": { + "version": "8.3.29", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-8.3.29.tgz", + "integrity": "sha512-pW+iU0eKHIae+A1b9W5g8DKefMQcehZ+drGKs4Hryh8G+XGFS00BIWkmh6c1mydWTEhdsFlhdjD/rXCem7MAQQ==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@angular-devkit/architect": "0.803.29", + "@angular-devkit/core": "8.3.29", + "@angular-devkit/schematics": "8.3.29", + "@schematics/angular": "8.3.29", + "@schematics/update": "0.803.29", + "@yarnpkg/lockfile": "1.1.0", + "ansi-colors": "4.1.1", + "debug": "^4.1.1", + "ini": "1.3.5", + "inquirer": "6.5.1", + "npm-package-arg": "6.1.0", + "npm-pick-manifest": "3.0.2", + "open": "6.4.0", + "pacote": "9.5.5", + "read-package-tree": "5.3.1", + "rimraf": "3.0.0", + "semver": "6.3.0", + "symbol-observable": "1.2.0", + "universal-analytics": "^0.4.20", + "uuid": "^3.3.2" + }, + "bin": { + "ng": "bin/ng" + }, + "engines": { + "node": ">= 10.9.0", + "npm": ">= 6.2.0" + } + }, + "node_modules/@angular/cli/node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@angular/cli/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/@angular/cli/node_modules/ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "deprecated": "Please update to ini >=1.3.6 to avoid a prototype pollution issue", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/@angular/cli/node_modules/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 + }, + "node_modules/@angular/cli/node_modules/rimraf": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.0.tgz", + "integrity": "sha512-NDGVxTsjqfunkds7CqsOiEnxln4Bo7Nddl3XhS4pXg5OzwkLqJ971ZVAAnB+DDLnF76N+VnDEiBHaVV8I06SUg==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/@angular/cli/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@angular/common": { + "version": "8.2.12", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-8.2.12.tgz", + "integrity": "sha512-BNz1lo+PP+lwIX3sErRGBRnkMzT5yT8CJ5o/M29AanCdcx9dpoJG2WKgpIgw8UBcj9QlP0CkSmzPtUNtcNMthA==", + "dependencies": { + "tslib": "^1.9.0" + } + }, + "node_modules/@angular/compiler": { + "version": "8.2.12", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-8.2.12.tgz", + "integrity": "sha512-V5mDWioGmSZ4cJJ2THo8qHYKwj3sUI7dpJ0oab2Al0FQAN8JCimWO6AQKRtjmnr78ZkMy9Xe/KK6ebl40ewL5Q==", + "dependencies": { + "tslib": "^1.9.0" + } + }, + "node_modules/@angular/compiler-cli": { + "version": "8.2.14", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-8.2.14.tgz", + "integrity": "sha512-XDrTyrlIZM+0NquVT+Kbg5bn48AaWFT+B3bAT288PENrTdkuxuF9AhjFRZj8jnMdmaE4O2rioEkXBtl6z3zptA==", + "dev": true, + "dependencies": { + "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", + "source-map": "^0.6.1", + "tslib": "^1.9.0", + "yargs": "13.1.0" + }, + "bin": { + "ivy-ngcc": "ngcc/main-ngcc.js", + "ng-xi18n": "src/extract_i18n.js", + "ngc": "src/main.js" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@angular/compiler-cli/node_modules/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "dependencies": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "node_modules/@angular/compiler-cli/node_modules/anymatch/node_modules/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, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "dependencies": { + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "dependencies": { + "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" + }, + "optionalDependencies": { + "fsevents": "^1.2.7" + } + }, + "node_modules/@angular/compiler-cli/node_modules/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, + "dependencies": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/cliui/node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@angular/compiler-cli/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/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, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@angular/compiler-cli/node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "nan": "^2.12.1" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/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, + "dependencies": { + "binary-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/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, + "engines": { + "node": ">=4" + } + }, + "node_modules/@angular/compiler-cli/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "dependencies": { + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/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, + "dependencies": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/@angular/compiler-cli/node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@angular/compiler-cli/node_modules/string-width/node_modules/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, + "engines": { + "node": ">=6" + } + }, + "node_modules/@angular/compiler-cli/node_modules/string-width/node_modules/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, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@angular/compiler-cli/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@angular/compiler-cli/node_modules/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, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/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, + "dependencies": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/wrap-ansi/node_modules/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, + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/wrap-ansi/node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/wrap-ansi/node_modules/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, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/yargs": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.1.0.tgz", + "integrity": "sha512-1UhJbXfzHiPqkfXNHYhiz79qM/kZqjTE8yGlEjZa85Q+3+OwcV6NRkV7XOV1W2Eom2bzILeUn55pQYffjVOLAg==", + "dev": true, + "dependencies": { + "cliui": "^4.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "os-locale": "^3.1.0", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.0.0" + } + }, + "node_modules/@angular/core": { + "version": "8.2.12", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-8.2.12.tgz", + "integrity": "sha512-wEFwhHCuuXynXAMeA1G+0KIYY0jqXYs7I8p+GO+ufKoUmzWHFTvtMJ6nvKgy+LmZTByO2gf9oVAAlRodNb8ttQ==", + "dependencies": { + "tslib": "^1.9.0" + } + }, + "node_modules/@angular/forms": { + "version": "8.2.12", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-8.2.12.tgz", + "integrity": "sha512-y1UObndCGbTYwLSzUWzCiX7th+mb4n712asApooGmfmIQmgTyHbKxYUJ9Ep1pgd0pqLBBnK249MQLH15NDpbyQ==", + "dependencies": { + "tslib": "^1.9.0" + } + }, + "node_modules/@angular/language-service": { + "version": "8.2.14", + "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-8.2.14.tgz", + "integrity": "sha512-7EhN9JJbAJcH2xCa+rIOmekjiEuB0qwPdHuD5qn/wwMfRzMZo+Db4hHbR9KHrLH6H82PTwYKye/LLpDaZqoHOA==", + "dev": true + }, + "node_modules/@angular/platform-browser": { + "version": "8.2.12", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-8.2.12.tgz", + "integrity": "sha512-VBvMjmFJapZ2pFlmxZiHtfPwbHp79RRi5mrdMhETjKMaLaC2tAR/99ijCpx2urDMqb/VDm7YHOtoLEpBFVDulg==", + "dependencies": { + "tslib": "^1.9.0" + } + }, + "node_modules/@angular/platform-browser-dynamic": { + "version": "8.2.12", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-8.2.12.tgz", + "integrity": "sha512-O4krb+9tj028JOQHPgLk/87lyUlHt8dpNxzuYCT0G6kEmknjpyZBaxhvDPygGjGHXV3LDqlYVH+bh8ygJUhwmw==", + "dependencies": { + "tslib": "^1.9.0" + } + }, + "node_modules/@angular/platform-server": { + "version": "8.2.12", + "resolved": "https://registry.npmjs.org/@angular/platform-server/-/platform-server-8.2.12.tgz", + "integrity": "sha512-NQvfW3YnM2FBdNpfIAKBnGjit/ZimtWEt60xskoQ+GcusJIbsB6m78XTYZru1S7CBHW3TeUztKMNZmI2MjU6Cw==", + "dependencies": { + "domino": "^2.1.2", + "tslib": "^1.9.0", + "xhr2": "^0.1.4" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/@angular/router": { + "version": "8.2.12", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-8.2.12.tgz", + "integrity": "sha512-mq1FethFpYosSVzChstMpxZlL+oUFeaA+FrzZQL7zJP/mm61yFkkhoYGVG6pG0NWSzpJE4NY6YvGCvHgN4ZECw==", + "dependencies": { + "tslib": "^1.9.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "devOptional": true, + "dependencies": { + "@babel/highlight": "^7.10.4" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.12.7.tgz", + "integrity": "sha512-YaxPMGs/XIWtYqrdEOZOCPsVWfEoriXopnsz3/i7apYPXQ3698UFhS6dVT1KN5qOsWmVgw/FOrmQgpRaZayGsw==", + "dev": true + }, + "node_modules/@babel/core": { + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.7.tgz", + "integrity": "sha512-rBlqF3Yko9cynC5CCFy6+K/w2N+Sq/ff2BPy+Krp7rHlABIr5epbA7OxVeKoMHB39LZOp1UY5SuLjy6uWi35yA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.7", + "@babel/helpers": "^7.8.4", + "@babel/parser": "^7.8.7", + "@babel/template": "^7.8.6", + "@babel/traverse": "^7.8.6", + "@babel/types": "^7.8.7", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.0", + "lodash": "^4.17.13", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/@babel/core/node_modules/json5": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@babel/core/node_modules/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 + }, + "node_modules/@babel/core/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/generator": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.11.tgz", + "integrity": "sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.11", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "node_modules/@babel/generator/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.10.tgz", + "integrity": "sha512-XplmVbC1n+KY6jL8/fgLVXXUauDIB+lD5+GsQEh6F6GBF1dq1qy4DP4yXWzDKcoqXB3X58t61e85Fitoww4JVQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.10" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz", + "integrity": "sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==", + "dev": true, + "dependencies": { + "@babel/helper-explode-assignable-expression": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.5.tgz", + "integrity": "sha512-+qH6NrscMolUlzOYngSBMIOQpKUGPPsc61Bu5W10mg84LxZ7cmvnBHzARKbDoFxVvqqAbj6Tg6N7bSrWSPXMyw==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.12.5", + "@babel/helper-validator-option": "^7.12.1", + "browserslist": "^4.14.5", + "semver": "^5.5.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/browserslist": { + "version": "4.16.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.1.tgz", + "integrity": "sha512-UXhDrwqsNcpTYJBTZsbGATDxZbiVDsx6UjpmRUmtnP10pr8wAYr5LgFoEFw9ixriQH2mv/NX2SfGzE/o8GndLA==", + "dev": true, + "dependencies": { + "caniuse-lite": "^1.0.30001173", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.634", + "escalade": "^3.1.1", + "node-releases": "^1.1.69" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/caniuse-lite": { + "version": "1.0.30001174", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001174.tgz", + "integrity": "sha512-tqClL/4ThQq6cfFXH3oJL4rifFBeM6gTkphjao5kgwMaW9yn0tKgQLAEfKzDwj6HQWCB/aWo8kTFlSvIN8geEA==", + "dev": true + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.7.tgz", + "integrity": "sha512-idnutvQPdpbduutvi3JVfEgcVIHooQnhvhx0Nk9isOINOIGYkZea1Pk2JlJRiUnMefrlvr0vkByATBY/mB4vjQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "regexpu-core": "^4.7.1" + } + }, + "node_modules/@babel/helper-define-map": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz", + "integrity": "sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.10.4", + "@babel/types": "^7.10.5", + "lodash": "^4.17.19" + } + }, + "node_modules/@babel/helper-explode-assignable-expression": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.1.tgz", + "integrity": "sha512-dmUwH8XmlrUpVqgtZ737tK88v07l840z9j3OEhCLwKTkjlvKpfqXVIZ0wpK3aeOxspwGrf/5AP5qLx4rO3w5rA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.1" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.11.tgz", + "integrity": "sha512-AtQKjtYNolKNi6nNNVLQ27CP6D9oFR6bq/HPYSizlzbp7uC1M59XJe8L+0uXjbIaZaUJF99ruHqVGiKXU/7ybA==", + "dev": true, + "dependencies": { + "@babel/helper-get-function-arity": "^7.12.10", + "@babel/template": "^7.12.7", + "@babel/types": "^7.12.11" + } + }, + "node_modules/@babel/helper-get-function-arity": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz", + "integrity": "sha512-mm0n5BPjR06wh9mPQaDdXWDoll/j5UpCAPl1x8fS71GHm7HA6Ua2V4ylG1Ju8lvcTOietbPNNPaSilKj+pj+Ag==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.10" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz", + "integrity": "sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.10.4" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz", + "integrity": "sha512-DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.7" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz", + "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.5" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz", + "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-simple-access": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/helper-validator-identifier": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", + "lodash": "^4.17.19" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.10.tgz", + "integrity": "sha512-4tpbU0SrSTjjt65UMWSrUOPZTsgvPgGG4S8QSTNHacKzpS51IVWGDj0yCwyeZND/i+LSN2g/O63jEXEWm49sYQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.10" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.1.tgz", + "integrity": "sha512-9d0KQCRM8clMPcDwo8SevNs+/9a8yWVVmaE80FGJcEP8N1qToREmWEGnBn8BUlJhYRFz6fqxeRL1sl5Ogsed7A==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-wrap-function": "^7.10.4", + "@babel/types": "^7.12.1" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.11.tgz", + "integrity": "sha512-q+w1cqmhL7R0FNzth/PLLp2N+scXEK/L2AHbXUyydxp828F4FEa5WcVoqui9vFRiHDQErj9Zof8azP32uGVTRA==", + "dev": true, + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.12.7", + "@babel/helper-optimise-call-expression": "^7.12.10", + "@babel/traverse": "^7.12.10", + "@babel/types": "^7.12.11" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz", + "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.1" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz", + "integrity": "sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.1" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.11.tgz", + "integrity": "sha512-LsIVN8j48gHgwzfocYUSkO/hjYAOJqlpJEc7tGXcIm4cubjVUf8LGW6eWRyxEu7gA25q02p0rQUWoCI33HNS5g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.11" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "devOptional": true + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.11.tgz", + "integrity": "sha512-TBFCyj939mFSdeX7U7DDj32WtzYY7fDcalgq8v3fBZMNOJQNn7nOYzMaUCiPxPYfCup69mtIpqlKgMZLvQ8Xhw==", + "dev": true + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.12.3", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.12.3.tgz", + "integrity": "sha512-Cvb8IuJDln3rs6tzjW3Y8UeelAOdnpB8xtQ4sme2MSZ9wOxrbThporC0y/EtE16VAtoyEfLM404Xr1e0OOp+ow==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "node_modules/@babel/helpers": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz", + "integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==", + "dev": true, + "dependencies": { + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.5", + "@babel/types": "^7.12.5" + } + }, + "node_modules/@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "devOptional": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "node_modules/@babel/highlight/node_modules/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==", + "devOptional": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "devOptional": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "devOptional": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.11.tgz", + "integrity": "sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.12.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.12.tgz", + "integrity": "sha512-nrz9y0a4xmUrRq51bYkWJIO5SBZyG2ys2qinHsN0zHDHVsUaModrkpyWWWXfGqYQmOL3x9sQIcTNN/pBGpo09A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.12.1", + "@babel/plugin-syntax-async-generators": "^7.8.0" + } + }, + "node_modules/@babel/plugin-proposal-dynamic-import": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.1.tgz", + "integrity": "sha512-a4rhUSZFuq5W8/OO8H7BL5zspjnc1FLd9hlOxIK/f7qG4a0qsqk8uvF/ywgBA8/OmjsapjpvaEOYItfGG1qIvQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-dynamic-import": "^7.8.0" + } + }, + "node_modules/@babel/plugin-proposal-json-strings": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.1.tgz", + "integrity": "sha512-GoLDUi6U9ZLzlSda2Df++VSqDJg3CG+dR0+iWsv6XRw1rEq+zwt4DirM9yrxW6XWaTpmai1cWJLMfM8qQJf+yw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.0" + } + }, + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz", + "integrity": "sha512-nZY0ESiaQDI1y96+jk6VxMOaL4LPo/QDHBqL+SF3/vl6dHkTwHlOI8L4ZwuRBHgakRBw5zsVylel7QPbbGuYgg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" + } + }, + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz", + "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.12.1" + } + }, + "node_modules/@babel/plugin-proposal-optional-catch-binding": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.1.tgz", + "integrity": "sha512-hFvIjgprh9mMw5v42sJWLI1lzU5L2sznP805zeT6rySVRA0Y18StRhDqhSxlap0oVgItRsB6WSROp4YnJTJz0g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" + } + }, + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.7.tgz", + "integrity": "sha512-4ovylXZ0PWmwoOvhU2vhnzVNnm88/Sm9nx7V8BPgMvAzn5zDou3/Awy0EjglyubVHasJj+XCEkr/r1X3P5elCA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", + "@babel/plugin-syntax-optional-chaining": "^7.8.0" + } + }, + "node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.1.tgz", + "integrity": "sha512-MYq+l+PvHuw/rKUz1at/vb6nCnQ2gmJBNaM62z0OgH7B2W1D9pvkpYtlti9bGtizNIU1K3zm4bZF9F91efVY0w==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz", + "integrity": "sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.1.tgz", + "integrity": "sha512-5QB50qyN44fzzz4/qxDPQMBCTHgxg3n0xRBLJUmBlLoU/sFvxVWGZF/ZUfMVDQuJUKXaBhbupxIzIfZ6Fwk/0A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz", + "integrity": "sha512-SDtqoEcarK1DFlRJ1hHRY5HvJUj5kX4qmtpMAm2QnhOlyuMC4TMdCRgW6WXpv93rZeYNeLP22y8Aq2dbcDRM1A==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.12.1" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.1.tgz", + "integrity": "sha512-5OpxfuYnSgPalRpo8EWGPzIYf0lHBWORCkj5M0oLBwHdlux9Ri36QqGW3/LR13RSVOAoUUMzoPI/jpE4ABcHoA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.12.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.12.tgz", + "integrity": "sha512-VOEPQ/ExOVqbukuP7BYJtI5ZxxsmegTwzZ04j1aF0dkSypGo9XpDHuOrABsJu+ie+penpSJheDJ11x1BEZNiyQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.1.tgz", + "integrity": "sha512-/74xkA7bVdzQTBeSUhLLJgYIcxw/dpEpCdRDiHgPJ3Mv6uC11UhjpOhl72CgqbBCmt1qtssCyB2xnJm1+PFjog==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-define-map": "^7.10.4", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.10.4", + "globals": "^11.1.0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.1.tgz", + "integrity": "sha512-vVUOYpPWB7BkgUWPo4C44mUQHpTZXakEqFjbv8rQMg7TC6S6ZhGZ3otQcRH6u7+adSlE5i0sp63eMC/XGffrzg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.1.tgz", + "integrity": "sha512-fRMYFKuzi/rSiYb2uRLiUENJOKq4Gnl+6qOv5f8z0TZXg3llUwUhsNNwrwaT/6dUhJTzNpBr+CUvEWBtfNY1cw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.1.tgz", + "integrity": "sha512-B2pXeRKoLszfEW7J4Hg9LoFaWEbr/kzo3teWHmtFCszjRNa/b40f9mfeqZsIDLLt/FjwQ6pz/Gdlwy85xNckBA==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.1.tgz", + "integrity": "sha512-iRght0T0HztAb/CazveUpUQrZY+aGKKaWXMJ4uf9YJtqxSUe09j3wteztCUDRHs+SRAL7yMuFqUsLoAKKzgXjw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.1.tgz", + "integrity": "sha512-7tqwy2bv48q+c1EHbXK0Zx3KXd2RVQp6OC7PbwFNt/dPTAV3Lu5sWtWuAj8owr5wqtWnqHfl2/mJlUmqkChKug==", + "dev": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.1.tgz", + "integrity": "sha512-Zaeq10naAsuHo7heQvyV0ptj4dlZJwZgNAtBYBnu5nNKJoW62m0zKcIEyVECrUKErkUkg6ajMy4ZfnVZciSBhg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.1.tgz", + "integrity": "sha512-JF3UgJUILoFrFMEnOJLJkRHSk6LUSXLmEFsA23aR2O5CSLUxbeUX1IZ1YQ7Sn0aXb601Ncwjx73a+FVqgcljVw==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.1.tgz", + "integrity": "sha512-+PxVGA+2Ag6uGgL0A5f+9rklOnnMccwEBzwYFL3EUaKuiyVnUipyXncFcfjSkbimLrODoqki1U9XxZzTvfN7IQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.1.tgz", + "integrity": "sha512-1sxePl6z9ad0gFMB9KqmYofk34flq62aqMt9NqliS/7hPEpURUCMbyHXrMPlo282iY7nAvUB1aQd5mg79UD9Jg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.1.tgz", + "integrity": "sha512-tDW8hMkzad5oDtzsB70HIQQRBiTKrhfgwC/KkJeGsaNFTdWhKNt/BiE8c5yj19XiGyrxpbkOfH87qkNg1YGlOQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.1.tgz", + "integrity": "sha512-dY789wq6l0uLY8py9c1B48V8mVL5gZh/+PQ5ZPrylPYsnAvnEMjqsUXkuoDVPeVK+0VyGar+D08107LzDQ6pag==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-simple-access": "^7.12.1", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.1.tgz", + "integrity": "sha512-Hn7cVvOavVh8yvW6fLwveFqSnd7rbQN3zJvoPNyNaQSvgfKmDBO9U1YL9+PCXGRlZD9tNdWTy5ACKqMuzyn32Q==", + "dev": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.10.4", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-validator-identifier": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.1.tgz", + "integrity": "sha512-aEIubCS0KHKM0zUos5fIoQm+AZUMt1ZvMpqz0/H5qAQ7vWylr9+PLYurT+Ic7ID/bKLd4q8hDovaG3Zch2uz5Q==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.1.tgz", + "integrity": "sha512-tB43uQ62RHcoDp9v2Nsf+dSM8sbNodbEicbQNA53zHz8pWUhsgHSJCGpt7daXxRydjb0KnfmB+ChXOv3oADp1Q==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.1.tgz", + "integrity": "sha512-+eW/VLcUL5L9IvJH7rT1sT0CzkdUTvPrXC2PXTn/7z7tXLBuKvezYbGdxD5WMRoyvyaujOq2fWoKl869heKjhw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.1.tgz", + "integrity": "sha512-AvypiGJH9hsquNUn+RXVcBdeE3KHPZexWRdimhuV59cSoOt5kFBmqlByorAeUlGG2CJWd0U+4ZtNKga/TB0cAw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.1.tgz", + "integrity": "sha512-xq9C5EQhdPK23ZeCdMxl8bbRnAgHFrw5EOC3KJUsSylZqdkCaFEXxGSBuTSObOpiiHHNyb82es8M1QYgfQGfNg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.1.tgz", + "integrity": "sha512-6MTCR/mZ1MQS+AwZLplX4cEySjCpnIF26ToWo942nqn8hXSm7McaHQNeGx/pt7suI1TWOWMfa/NgBhiqSnX0cQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.1.tgz", + "integrity": "sha512-gYrHqs5itw6i4PflFX3OdBPMQdPbF4bj2REIUxlMRUFk0/ZOAIpDFuViuxPjUL7YC8UPnf+XG7/utJvqXdPKng==", + "dev": true, + "dependencies": { + "regenerator-transform": "^0.14.2" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.1.tgz", + "integrity": "sha512-pOnUfhyPKvZpVyBHhSBoX8vfA09b7r00Pmm1sH+29ae2hMTKVmSp4Ztsr8KBKjLjx17H0eJqaRC3bR2iThM54A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.1.tgz", + "integrity": "sha512-GFZS3c/MhX1OusqB1MZ1ct2xRzX5ppQh2JU1h2Pnfk88HtFTM+TWQqJNfwkmxtPQtb/s1tk87oENfXJlx7rSDw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.1.tgz", + "integrity": "sha512-vuLp8CP0BE18zVYjsEBZ5xoCecMK6LBMMxYzJnh01rxQRvhNhH1csMMmBfNo5tGpGO+NhdSNW2mzIvBu3K1fng==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.7.tgz", + "integrity": "sha512-VEiqZL5N/QvDbdjfYQBhruN0HYjSPjC4XkeqW4ny/jNtH9gcbgaqBIXYEZCNnESMAGs0/K/R7oFGMhOyu/eIxg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.1.tgz", + "integrity": "sha512-b4Zx3KHi+taXB1dVRBhVJtEPi9h1THCeKmae2qP0YdUHIFhVjtpqqNfxeVAa1xeHVhAy4SbHxEwx5cltAu5apw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.10.tgz", + "integrity": "sha512-JQ6H8Rnsogh//ijxspCjc21YPd3VLVoYtAwv3zQmqAt8YGYUtdo5usNhdl4b9/Vir2kPFZl6n1h0PfUz4hJhaA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.1.tgz", + "integrity": "sha512-SqH4ClNngh/zGwHZOOQMTD+e8FGWexILV+ePMyiDJttAWRh5dhDL8rcl5lSgU3Huiq6Zn6pWTMvdPAb21Dwdyg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.8.7.tgz", + "integrity": "sha512-BYftCVOdAYJk5ASsznKAUl53EMhfBbr8CJ1X+AJLfGPscQkwJFiaV/Wn9DPH/7fzm2v6iRYJKYHSqyynTGw0nw==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.8.6", + "@babel/helper-compilation-targets": "^7.8.7", + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-proposal-async-generator-functions": "^7.8.3", + "@babel/plugin-proposal-dynamic-import": "^7.8.3", + "@babel/plugin-proposal-json-strings": "^7.8.3", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-proposal-object-rest-spread": "^7.8.3", + "@babel/plugin-proposal-optional-catch-binding": "^7.8.3", + "@babel/plugin-proposal-optional-chaining": "^7.8.3", + "@babel/plugin-proposal-unicode-property-regex": "^7.8.3", + "@babel/plugin-syntax-async-generators": "^7.8.0", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.0", + "@babel/plugin-syntax-top-level-await": "^7.8.3", + "@babel/plugin-transform-arrow-functions": "^7.8.3", + "@babel/plugin-transform-async-to-generator": "^7.8.3", + "@babel/plugin-transform-block-scoped-functions": "^7.8.3", + "@babel/plugin-transform-block-scoping": "^7.8.3", + "@babel/plugin-transform-classes": "^7.8.6", + "@babel/plugin-transform-computed-properties": "^7.8.3", + "@babel/plugin-transform-destructuring": "^7.8.3", + "@babel/plugin-transform-dotall-regex": "^7.8.3", + "@babel/plugin-transform-duplicate-keys": "^7.8.3", + "@babel/plugin-transform-exponentiation-operator": "^7.8.3", + "@babel/plugin-transform-for-of": "^7.8.6", + "@babel/plugin-transform-function-name": "^7.8.3", + "@babel/plugin-transform-literals": "^7.8.3", + "@babel/plugin-transform-member-expression-literals": "^7.8.3", + "@babel/plugin-transform-modules-amd": "^7.8.3", + "@babel/plugin-transform-modules-commonjs": "^7.8.3", + "@babel/plugin-transform-modules-systemjs": "^7.8.3", + "@babel/plugin-transform-modules-umd": "^7.8.3", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.8.3", + "@babel/plugin-transform-new-target": "^7.8.3", + "@babel/plugin-transform-object-super": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.8.7", + "@babel/plugin-transform-property-literals": "^7.8.3", + "@babel/plugin-transform-regenerator": "^7.8.7", + "@babel/plugin-transform-reserved-words": "^7.8.3", + "@babel/plugin-transform-shorthand-properties": "^7.8.3", + "@babel/plugin-transform-spread": "^7.8.3", + "@babel/plugin-transform-sticky-regex": "^7.8.3", + "@babel/plugin-transform-template-literals": "^7.8.3", + "@babel/plugin-transform-typeof-symbol": "^7.8.4", + "@babel/plugin-transform-unicode-regex": "^7.8.3", + "@babel/types": "^7.8.7", + "browserslist": "^4.8.5", + "core-js-compat": "^3.6.2", + "invariant": "^2.2.2", + "levenary": "^1.1.1", + "semver": "^5.5.0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz", + "integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.13.4" + } + }, + "node_modules/@babel/runtime/node_modules/regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", + "dev": true + }, + "node_modules/@babel/template": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz", + "integrity": "sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.12.7", + "@babel/types": "^7.12.7" + } + }, + "node_modules/@babel/traverse": { + "version": "7.12.12", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.12.tgz", + "integrity": "sha512-s88i0X0lPy45RrLM8b9mz8RPH5FqO9G9p7ti59cToE44xFm1Q+Pjh5Gq4SXBbtb88X7Uy7pexeqRIQDDMNkL0w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.11", + "@babel/generator": "^7.12.11", + "@babel/helper-function-name": "^7.12.11", + "@babel/helper-split-export-declaration": "^7.12.11", + "@babel/parser": "^7.12.11", + "@babel/types": "^7.12.12", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + } + }, + "node_modules/@babel/traverse/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/@babel/traverse/node_modules/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 + }, + "node_modules/@babel/types": { + "version": "7.12.12", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.12.tgz", + "integrity": "sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", + "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@ngtools/webpack": { + "version": "8.3.29", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-8.3.29.tgz", + "integrity": "sha512-7uB7dlAHR7RmxcQCYidnWRR1tFRJq7CzI+MM3725ibAvi4HnM5viC/HnKRTK7V+3iS1C0l0u0Gyo/769NsUDTQ==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "8.3.29", + "enhanced-resolve": "4.1.0", + "rxjs": "6.4.0", + "tree-kill": "1.2.2", + "webpack-sources": "1.4.3" + }, + "engines": { + "node": ">= 10.9.0", + "npm": ">= 6.2.0" + } + }, + "node_modules/@ngtools/webpack/node_modules/rxjs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", + "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@nguniversal/module-map-ngfactory-loader": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@nguniversal/module-map-ngfactory-loader/-/module-map-ngfactory-loader-8.1.1.tgz", + "integrity": "sha512-vXFydMTPFRfGjmtdwtbNhl4Pmfg580Yit0vzlTeb3ZC1v+TJKR2GzaWYUileWxS60FrgNF4/tkOEL5ouDDx6Bw==" + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", + "integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.4", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz", + "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz", + "integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.4", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@npmcli/move-file": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.0.1.tgz", + "integrity": "sha512-Uv6h1sT+0DrblvIrolFtbvM1FgWm+/sy4B3pvLp67Zys+thcukzS5ekn7HsZFGpWP4Q3fYJCljbWQE/XivMRLw==", + "dev": true, + "dependencies": { + "mkdirp": "^1.0.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@npmcli/move-file/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@schematics/angular": { + "version": "8.3.29", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-8.3.29.tgz", + "integrity": "sha512-If+UhCsQzCgnQymiiF8dQRoic34+RgJ6rV0n4k7Tm4N2xNYJOG7ajjzKM7PIeafsF50FKnFP8dqaNGxCMyq5Ew==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "8.3.29", + "@angular-devkit/schematics": "8.3.29" + }, + "engines": { + "node": ">= 10.9.0", + "npm": ">= 6.2.0" + } + }, + "node_modules/@schematics/update": { + "version": "0.803.29", + "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.803.29.tgz", + "integrity": "sha512-Syf6h6DYeu1WU9aLihMwIgVASpcHCxUYqhZyHfQABiK8NkdlZ+KAp4cOxihsZyDqIJNLWON+0/FLPAQF3BXh5Q==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "8.3.29", + "@angular-devkit/schematics": "8.3.29", + "@yarnpkg/lockfile": "1.1.0", + "ini": "1.3.5", + "pacote": "9.5.5", + "rxjs": "6.4.0", + "semver": "6.3.0", + "semver-intersect": "1.4.0" + }, + "engines": { + "node": ">= 10.9.0", + "npm": ">= 6.2.0" + } + }, + "node_modules/@schematics/update/node_modules/ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "deprecated": "Please update to ini >=1.3.6 to avoid a prototype pollution issue", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/@schematics/update/node_modules/rxjs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", + "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@schematics/update/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@types/glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", + "dev": true, + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "node_modules/@types/jasmine": { + "version": "3.4.6", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.4.6.tgz", + "integrity": "sha512-hpQHs+lmZ0uuCrGyqypdI1Ho7jRFolOBT6OkNdZPFziLSSEKvWu+VxWU6bGdNEA/hoV4jV8pdDeNx8EWlmfNAw==", + "dev": true + }, + "node_modules/@types/jasminewd2": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@types/jasminewd2/-/jasminewd2-2.0.8.tgz", + "integrity": "sha512-d9p31r7Nxk0ZH0U39PTH0hiDlJ+qNVGjlt1ucOoTUptxb2v+Y5VMnsxfwN+i3hK4yQnqBi3FMmoMFcd1JHDxdg==", + "dev": true, + "dependencies": { + "@types/jasmine": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz", + "integrity": "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==", + "dev": true + }, + "node_modules/@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "node_modules/@types/node": { + "version": "12.11.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.11.7.tgz", + "integrity": "sha512-JNbGaHFCLwgHn/iCckiGSOZ1XYHsKFwREtzPwSGCVld1SGhOlmZw2D4ZI94HQCrBHbADzW9m4LER/8olJTRGHA==", + "dev": true + }, + "node_modules/@types/q": { + "version": "0.0.32", + "resolved": "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz", + "integrity": "sha1-vShOV8hPEyXacCur/IKlMoGQwMU=", + "optional": true + }, + "node_modules/@types/selenium-webdriver": { + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.17.tgz", + "integrity": "sha512-tGomyEuzSC1H28y2zlW6XPCaDaXFaD6soTdb4GNdmte2qfHtrKqhy0ZFs4r/1hpazCfEZqeTSRLvSasmEx89uw==", + "optional": true + }, + "node_modules/@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 + }, + "node_modules/@types/webpack-sources": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-0.1.8.tgz", + "integrity": "sha512-JHB2/xZlXOjzjBB6fMOpH1eQAfsrpqVVIbneE0Rok16WXwFaznaI5vfg75U5WgGJm7V9W1c4xeRQDjX/zwvghA==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/source-list-map": "*", + "source-map": "^0.6.1" + } + }, + "node_modules/@types/webpack-sources/node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.8.5.tgz", + "integrity": "sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/helper-module-context": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/wast-parser": "1.8.5" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz", + "integrity": "sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz", + "integrity": "sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz", + "integrity": "sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-code-frame": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz", + "integrity": "sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/wast-printer": "1.8.5" + } + }, + "node_modules/@webassemblyjs/helper-fsm": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz", + "integrity": "sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-module-context": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz", + "integrity": "sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.8.5", + "mamacro": "^0.0.3" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz", + "integrity": "sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz", + "integrity": "sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-buffer": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/wasm-gen": "1.8.5" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz", + "integrity": "sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g==", + "dev": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.8.5.tgz", + "integrity": "sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A==", + "dev": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.8.5.tgz", + "integrity": "sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw==", + "dev": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz", + "integrity": "sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-buffer": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/helper-wasm-section": "1.8.5", + "@webassemblyjs/wasm-gen": "1.8.5", + "@webassemblyjs/wasm-opt": "1.8.5", + "@webassemblyjs/wasm-parser": "1.8.5", + "@webassemblyjs/wast-printer": "1.8.5" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz", + "integrity": "sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/ieee754": "1.8.5", + "@webassemblyjs/leb128": "1.8.5", + "@webassemblyjs/utf8": "1.8.5" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz", + "integrity": "sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-buffer": "1.8.5", + "@webassemblyjs/wasm-gen": "1.8.5", + "@webassemblyjs/wasm-parser": "1.8.5" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz", + "integrity": "sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-api-error": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/ieee754": "1.8.5", + "@webassemblyjs/leb128": "1.8.5", + "@webassemblyjs/utf8": "1.8.5" + } + }, + "node_modules/@webassemblyjs/wast-parser": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz", + "integrity": "sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/floating-point-hex-parser": "1.8.5", + "@webassemblyjs/helper-api-error": "1.8.5", + "@webassemblyjs/helper-code-frame": "1.8.5", + "@webassemblyjs/helper-fsm": "1.8.5", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz", + "integrity": "sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/wast-parser": "1.8.5", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@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 + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "node_modules/@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 + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "optional": true + }, + "node_modules/accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "dev": true, + "dependencies": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/adm-zip": { + "version": "0.4.16", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", + "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", + "optional": true, + "engines": { + "node": ">=0.3.0" + } + }, + "node_modules/after": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", + "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", + "dev": true + }, + "node_modules/agent-base": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", + "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", + "devOptional": true, + "dependencies": { + "es6-promisify": "^5.0.0" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/agentkeepalive": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.5.2.tgz", + "integrity": "sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==", + "dev": true, + "dependencies": { + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/aggregate-error/node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "devOptional": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "node_modules/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 + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true + }, + "node_modules/amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "devOptional": true, + "engines": { + "node": ">=0.4.2" + } + }, + "node_modules/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, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "dev": true, + "dependencies": { + "type-fest": "^0.11.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/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, + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "devOptional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/app-root-path": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-2.2.1.tgz", + "integrity": "sha512-91IFKeKk7FjfmezPKkwtaRvSpnUc4gDwPAjA1YZ9Gn0q0PPeW+vbeUsZuyDwjI7+QTHhcLen2v25fi/AmhvbJA==", + "dev": true, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/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, + "dependencies": { + "default-require-extensions": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "devOptional": true + }, + "node_modules/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==", + "optional": true, + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "optional": true + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "devOptional": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/aria-query": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-3.0.0.tgz", + "integrity": "sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w=", + "dev": true, + "dependencies": { + "ast-types-flow": "0.0.7", + "commander": "^2.11.0" + } + }, + "node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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=", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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 + }, + "node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "devOptional": true, + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "devOptional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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 + }, + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "dev": true + }, + "node_modules/asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "devOptional": true, + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "dev": true, + "dependencies": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/asn1.js/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + }, + "node_modules/assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "dev": true, + "dependencies": { + "object-assign": "^4.1.1", + "util": "0.10.3" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "devOptional": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/assert/node_modules/inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + }, + "node_modules/assert/node_modules/util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "dependencies": { + "inherits": "2.0.1" + } + }, + "node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ast-types-flow": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", + "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=", + "dev": true + }, + "node_modules/async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "dev": true + }, + "node_modules/async-foreach": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", + "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", + "optional": true, + "engines": { + "node": "*" + } + }, + "node_modules/async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "dev": true + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "devOptional": true + }, + "node_modules/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, + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/autoprefixer": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.6.1.tgz", + "integrity": "sha512-aVo5WxR3VyvyJxcJC3h4FKfwCQvQWb1tSI5VHNibddCVWrcD1NvlxEweg3TSgiPztMnWfjpy2FURKA2kvDE+Tw==", + "dev": true, + "dependencies": { + "browserslist": "^4.6.3", + "caniuse-lite": "^1.0.30000980", + "chalk": "^2.4.2", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^7.0.17", + "postcss-value-parser": "^4.0.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/autoprefixer/node_modules/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, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/autoprefixer/node_modules/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, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/autoprefixer/node_modules/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, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/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=", + "devOptional": true, + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", + "devOptional": true + }, + "node_modules/axobject-query": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.0.2.tgz", + "integrity": "sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww==", + "dev": true, + "dependencies": { + "ast-types-flow": "0.0.7" + } + }, + "node_modules/babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dev": true, + "dependencies": { + "object.assign": "^4.1.0" + } + }, + "node_modules/backo2": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", + "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", + "dev": true + }, + "node_modules/balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "devOptional": true + }, + "node_modules/base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "dependencies": { + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/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, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/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, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/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, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/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, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base64-arraybuffer": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz", + "integrity": "sha1-mBjHngWbE1X5fgQooBfIOOkLqBI=", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "node_modules/base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", + "dev": true, + "engines": { + "node": "^4.5.0 || >= 5.9" + } + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "dev": true + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "devOptional": true, + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/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, + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/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 + }, + "node_modules/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==", + "optional": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "blocking-proxy": "built/lib/bin.js" + }, + "engines": { + "node": ">=6.9.x" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "node_modules/bn.js": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz", + "integrity": "sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==", + "dev": true + }, + "node_modules/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, + "dependencies": { + "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" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/body-parser/node_modules/qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "dev": true, + "dependencies": { + "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" + } + }, + "node_modules/bootstrap": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.6.0.tgz", + "integrity": "sha512-Io55IuQY3kydzHtbGvQya3H+KorS/M9rSNyfCGCg9WZ4pyT/lCxIlpJgG1GXW/PswzC84Tr2fBYi+7+jFVQQBw==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/bootstrap" + }, + "peerDependencies": { + "jquery": "1.9.1 - 3", + "popper.js": "^1.16.1" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "devOptional": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, + "node_modules/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, + "dependencies": { + "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" + } + }, + "node_modules/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, + "dependencies": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "node_modules/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, + "dependencies": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "dev": true, + "dependencies": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "node_modules/browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "dev": true, + "dependencies": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + } + }, + "node_modules/browserify-sign/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/browserify-sign/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "node_modules/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, + "dependencies": { + "pako": "~1.0.5" + } + }, + "node_modules/browserslist": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.10.0.tgz", + "integrity": "sha512-TpfK0TDgv71dzuTsEAlQiHeWQ/tiPqgNZVdv046fvNtBZrjbv2O3TsWCDU0AWGJJKCF/KsjNdLzR9hXOsh/CfA==", + "dev": true, + "dependencies": { + "caniuse-lite": "^1.0.30001035", + "electron-to-chromium": "^1.3.378", + "node-releases": "^1.1.52", + "pkg-up": "^3.1.0" + }, + "bin": { + "browserslist": "cli.js" + } + }, + "node_modules/browserstack": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.6.1.tgz", + "integrity": "sha512-GxtFjpIaKdbAyzHfFDKixKO8IBT7wR3NjbzrGc78nNs/Ciys9wU3/nBtsqsWv5nDSrdI5tz0peKuzCPuNXNUiw==", + "optional": true, + "dependencies": { + "https-proxy-agent": "^2.2.1" + } + }, + "node_modules/buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "dev": true, + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "node_modules/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==", + "devOptional": true + }, + "node_modules/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 + }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true + }, + "node_modules/builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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 + }, + "node_modules/builtins": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", + "dev": true + }, + "node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cacache": { + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.2.tgz", + "integrity": "sha512-ifKgxH2CKhJEg6tNdAwziu6Q33EvuG26tYcda6PT3WKisZcYDXsnEdnRv67Po3yCzFfaSoMjGZzJyD2c3DT1dg==", + "dev": true, + "dependencies": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "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" + } + }, + "node_modules/cacache/node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "node_modules/cacache/node_modules/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, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/cacache/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/cacache/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/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, + "dependencies": { + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "node_modules/caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "dev": true, + "dependencies": { + "callsites": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/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, + "dependencies": { + "caller-callsite": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "optional": true, + "dependencies": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001035", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001035.tgz", + "integrity": "sha512-C1ZxgkuA4/bUEdMbU5WrGY4+UhMFFiXrgNAfxiMIqWgFTWfv/xsZCS2xEHT2LMq7xAZfuAnu6mcqyDl0ZR6wLQ==", + "dev": true + }, + "node_modules/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 + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "devOptional": true + }, + "node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "optional": true, + "dependencies": { + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "node_modules/chokidar": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.0.tgz", + "integrity": "sha512-JgQM9JS92ZbFR4P90EvmzNpSGhpPBGBSj10PILeDyYFwp4h2/D9OM03wsJ4zW1fEp4ka2DGrnUeD7FuvQ2aZ2Q==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.3.1", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.1" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "devOptional": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/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, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/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, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/circular-dependency-plugin": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.2.0.tgz", + "integrity": "sha512-7p4Kn/gffhQaavNfyDFg7LS5S/UT1JAjyGd4UqR2+jzoYF02eDkj0Ec3+48TsIa4zghjLY87nQHIh/ecK9qLdw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/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, + "dependencies": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/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, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/clean-css/node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-width": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", + "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", + "dev": true + }, + "node_modules/cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "devOptional": true, + "dependencies": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "devOptional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cliui/node_modules/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=", + "devOptional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/cliui/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "devOptional": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "devOptional": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/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=", + "devOptional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/codelyzer": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-5.2.2.tgz", + "integrity": "sha512-jB4FZ1Sx7kZhvZVdf+N2BaKTdrrNZOL0Bj10RRfrhHrb3zEvXjJvvq298JPMJAiyiCS/v4zs1QlGU0ip7xGqeA==", + "dev": true, + "dependencies": { + "app-root-path": "^2.2.1", + "aria-query": "^3.0.0", + "axobject-query": "2.0.2", + "css-selector-tokenizer": "^0.7.1", + "cssauron": "^1.4.0", + "damerau-levenshtein": "^1.0.4", + "semver-dsl": "^1.0.1", + "source-map": "^0.5.7", + "sprintf-js": "^1.1.2" + } + }, + "node_modules/codelyzer/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/codelyzer/node_modules/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 + }, + "node_modules/collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "dependencies": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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==", + "devOptional": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "devOptional": true + }, + "node_modules/colorette": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", + "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==", + "dev": true + }, + "node_modules/colors": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", + "dev": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "devOptional": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "devOptional": true + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "node_modules/compare-versions": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz", + "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==", + "dev": true + }, + "node_modules/component-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", + "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=", + "dev": true + }, + "node_modules/component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "node_modules/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 + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "dependencies": { + "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" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "devOptional": true + }, + "node_modules/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, + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/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, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/connect/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/connect/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, + "node_modules/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=", + "optional": true + }, + "node_modules/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 + }, + "node_modules/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, + "dependencies": { + "safe-buffer": "5.1.2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/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, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/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, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "dev": true + }, + "node_modules/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, + "dependencies": { + "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" + } + }, + "node_modules/copy-concurrently/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/copy-webpack-plugin": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-6.0.3.tgz", + "integrity": "sha512-q5m6Vz4elsuyVEIUXr7wJdIdePWTubsqVbEMvf1WQnHGv0Q+9yPRu7MtYFPt+GBOXRav9lvIINifTQ1vSCs+eA==", + "dev": true, + "dependencies": { + "cacache": "^15.0.4", + "fast-glob": "^3.2.4", + "find-cache-dir": "^3.3.1", + "glob-parent": "^5.1.1", + "globby": "^11.0.1", + "loader-utils": "^2.0.0", + "normalize-path": "^3.0.0", + "p-limit": "^3.0.1", + "schema-utils": "^2.7.0", + "serialize-javascript": "^4.0.0", + "webpack-sources": "^1.4.3" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/copy-webpack-plugin/node_modules/cacache": { + "version": "15.0.5", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.5.tgz", + "integrity": "sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A==", + "dev": true, + "dependencies": { + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.0", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/copy-webpack-plugin/node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/copy-webpack-plugin/node_modules/find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/copy-webpack-plugin/node_modules/globby": { + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.2.tgz", + "integrity": "sha512-2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/copy-webpack-plugin/node_modules/json5": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/copy-webpack-plugin/node_modules/loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/copy-webpack-plugin/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/copy-webpack-plugin/node_modules/ssri": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.0.tgz", + "integrity": "sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA==", + "dev": true, + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/core-js": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.8.3.tgz", + "integrity": "sha512-KPYXeVZYemC2TkNEkX/01I+7yd+nX3KddKwZ1Ww7SKWdI2wQprSgLmrTddT8nw92AjEklTsPBoSdQBhbI1bQ6Q==", + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.8.2.tgz", + "integrity": "sha512-LO8uL9lOIyRRrQmZxHZFl1RV+ZbcsAkFWTktn5SmH40WgLtSNYN4m4W2v9ONT147PxBY/XrRhrWq8TlvObyUjQ==", + "dev": true, + "dependencies": { + "browserslist": "^4.16.0", + "semver": "7.0.0" + } + }, + "node_modules/core-js-compat/node_modules/browserslist": { + "version": "4.16.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.1.tgz", + "integrity": "sha512-UXhDrwqsNcpTYJBTZsbGATDxZbiVDsx6UjpmRUmtnP10pr8wAYr5LgFoEFw9ixriQH2mv/NX2SfGzE/o8GndLA==", + "dev": true, + "dependencies": { + "caniuse-lite": "^1.0.30001173", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.634", + "escalade": "^3.1.1", + "node-releases": "^1.1.69" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/core-js-compat/node_modules/caniuse-lite": { + "version": "1.0.30001174", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001174.tgz", + "integrity": "sha512-tqClL/4ThQq6cfFXH3oJL4rifFBeM6gTkphjao5kgwMaW9yn0tKgQLAEfKzDwj6HQWCB/aWo8kTFlSvIN8geEA==", + "dev": true + }, + "node_modules/core-js-compat/node_modules/semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/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=", + "devOptional": true + }, + "node_modules/cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "dev": true, + "dependencies": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cosmiconfig/node_modules/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, + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/coverage-istanbul-loader": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/coverage-istanbul-loader/-/coverage-istanbul-loader-2.0.3.tgz", + "integrity": "sha512-LiGRvyIuzVYs3M1ZYK1tF0HekjH0DJ8zFdUwAZq378EJzqOgToyb1690dp3TAUlP6Y+82uu42LRjuROVeJ54CA==", + "dev": true, + "dependencies": { + "convert-source-map": "^1.7.0", + "istanbul-lib-instrument": "^4.0.0", + "loader-utils": "^1.2.3", + "merge-source-map": "^1.1.0", + "schema-utils": "^2.6.1" + } + }, + "node_modules/create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + } + }, + "node_modules/create-ecdh/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + }, + "node_modules/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, + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/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, + "dependencies": { + "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" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "optional": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/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, + "dependencies": { + "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" + }, + "engines": { + "node": "*" + } + }, + "node_modules/crypto-js": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.0.0.tgz", + "integrity": "sha512-bzHZN8Pn+gS7DQA6n+iUmBfl0hO5DJq++QP3U6uTucDtk/0iGpXd/Gg7CGR0p8tJhofJyaKoWBuJI4eAO00BBg==" + }, + "node_modules/css-parse": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-1.7.0.tgz", + "integrity": "sha1-Mh9s9zeCpv91ERE5D8BeLGV9jJs=", + "dev": true + }, + "node_modules/css-selector-tokenizer": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz", + "integrity": "sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "fastparse": "^1.1.2" + } + }, + "node_modules/cssauron": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/cssauron/-/cssauron-1.4.0.tgz", + "integrity": "sha1-pmAt/34EqDBtwNuaVR6S6LVmKtg=", + "dev": true, + "dependencies": { + "through": "X.X.X" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "optional": true, + "dependencies": { + "array-find-index": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/custom-event": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", + "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", + "dev": true + }, + "node_modules/cyclist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", + "dev": true + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz", + "integrity": "sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug==", + "dev": true + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "devOptional": true, + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/date-format": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-3.0.0.tgz", + "integrity": "sha512-eyTcpKOcamdhWJXj56DpQMo1ylSQpcGtGKXcU0Tb97+K56/CF5amAqqqNj0+KvA0iw2ynxtHWFsPDSClCxe48w==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "devOptional": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/debuglog": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", + "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "devOptional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/deep-equal": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", + "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", + "dev": true, + "dependencies": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + } + }, + "node_modules/default-gateway": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", + "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", + "dev": true, + "dependencies": { + "execa": "^1.0.0", + "ip-regex": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/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, + "dependencies": { + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/default-require-extensions/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "dependencies": { + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/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, + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/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, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/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, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/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, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", + "optional": true, + "dependencies": { + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "optional": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "devOptional": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "optional": true + }, + "node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/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, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "node_modules/detect-node": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", + "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", + "dev": true + }, + "node_modules/dezalgo": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", + "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=", + "dev": true, + "dependencies": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "node_modules/di": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", + "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=", + "dev": true + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "optional": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/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, + "dependencies": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "node_modules/diffie-hellman/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dir-glob/node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/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 + }, + "node_modules/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, + "dependencies": { + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/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, + "dependencies": { + "buffer-indexof": "^1.0.0" + } + }, + "node_modules/dom-serialize": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", + "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", + "dev": true, + "dependencies": { + "custom-event": "~1.0.0", + "ent": "~2.2.0", + "extend": "^3.0.0", + "void-elements": "^2.0.0" + } + }, + "node_modules/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, + "engines": { + "node": ">=0.4", + "npm": ">=1.2" + } + }, + "node_modules/domino": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/domino/-/domino-2.1.6.tgz", + "integrity": "sha512-3VdM/SXBZX2omc9JF9nOPCtDaYQ67BGp5CoLpIQlO2KCAPETs8TcDHacF26jXadGbvUteZzRTeos2fhID5+ucQ==" + }, + "node_modules/duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "devOptional": true, + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.3.636", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.636.tgz", + "integrity": "sha512-Adcvng33sd3gTjNIDNXGD1G4H6qCImIy2euUJAQHtLNplEKU5WEz5KRJxupRNIIT8sD5oFZLTKBWAf12Bsz24A==", + "dev": true + }, + "node_modules/elliptic": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", + "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", + "dev": true, + "dependencies": { + "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" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "devOptional": true + }, + "node_modules/emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dev": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/encoding/node_modules/iconv-lite": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", + "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "devOptional": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/engine.io": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.5.0.tgz", + "integrity": "sha512-21HlvPUKaitDGE4GXNtQ7PLP0Sz4aWLddMPw2VTyFz1FVZqu/kZsJUO8WNpKuE/OCL7nkfRaOui2ZCJloGznGA==", + "dev": true, + "dependencies": { + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.4.1", + "debug": "~4.1.0", + "engine.io-parser": "~2.2.0", + "ws": "~7.4.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/engine.io-client": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.5.0.tgz", + "integrity": "sha512-12wPRfMrugVw/DNyJk34GQ5vIVArEcVMXWugQGGuw2XxUSztFNmJggZmv8IZlLyEdnpO1QB9LkcjeWewO2vxtA==", + "dev": true, + "dependencies": { + "component-emitter": "~1.3.0", + "component-inherit": "0.0.3", + "debug": "~3.1.0", + "engine.io-parser": "~2.2.0", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "parseqs": "0.0.6", + "parseuri": "0.0.6", + "ws": "~7.4.2", + "xmlhttprequest-ssl": "~1.5.4", + "yeast": "0.1.2" + } + }, + "node_modules/engine.io-client/node_modules/debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/engine.io-client/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/engine.io-client/node_modules/ws": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.2.tgz", + "integrity": "sha512-T4tewALS3+qsrpGI/8dqNMLIVdq/g/85U98HPMa6F0m6xTbvhXU6RCQLqPH3+SlomNV/LdY6RXEbBpMH6EOJnA==", + "dev": true, + "engines": { + "node": ">=8.3.0" + } + }, + "node_modules/engine.io-parser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.1.tgz", + "integrity": "sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg==", + "dev": true, + "dependencies": { + "after": "0.8.2", + "arraybuffer.slice": "~0.0.7", + "base64-arraybuffer": "0.1.4", + "blob": "0.0.5", + "has-binary2": "~1.0.2" + } + }, + "node_modules/engine.io/node_modules/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/engine.io/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/engine.io/node_modules/ws": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.2.tgz", + "integrity": "sha512-T4tewALS3+qsrpGI/8dqNMLIVdq/g/85U98HPMa6F0m6xTbvhXU6RCQLqPH3+SlomNV/LdY6RXEbBpMH6EOJnA==", + "dev": true, + "engines": { + "node": ">=8.3.0" + } + }, + "node_modules/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, + "dependencies": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.4.0", + "tapable": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/ent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", + "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", + "dev": true + }, + "node_modules/env-paths": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz", + "integrity": "sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA==", + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/err-code": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", + "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=", + "dev": true + }, + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/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==", + "devOptional": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", + "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", + "dev": true, + "dependencies": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", + "devOptional": true + }, + "node_modules/es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "devOptional": true, + "dependencies": { + "es6-promise": "^4.0.3" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "node_modules/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=", + "devOptional": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/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, + "dependencies": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "devOptional": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "node_modules/events": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", + "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/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, + "dependencies": { + "original": "^1.0.0" + }, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/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, + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "devOptional": true, + "dependencies": { + "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" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/execa/node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "devOptional": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/execa/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "devOptional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/execa/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "devOptional": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "devOptional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "devOptional": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "optional": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/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, + "dependencies": { + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/expand-brackets/node_modules/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, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "dev": true, + "dependencies": { + "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" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "dev": true + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/express/node_modules/qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "devOptional": true + }, + "node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extend-shallow/node_modules/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, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/external-editor/node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "dependencies": { + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/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, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/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, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/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, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/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, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "devOptional": true, + "engines": [ + "node >=0.6.0" + ] + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "devOptional": true + }, + "node_modules/fast-glob": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", + "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.0", + "merge2": "^1.3.0", + "micromatch": "^4.0.2", + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "devOptional": true + }, + "node_modules/fastparse": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", + "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.10.0.tgz", + "integrity": "sha512-NL2Qc5L3iQEsyYzweq7qfgy5OtXCmGzGvhElGEd/SoFWEMOEczNh5s5ocaF01HDetxz+p8ecjNPA6cZxxIHmzA==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/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, + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/figgy-pudding": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", + "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", + "dev": true + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/file-loader": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-4.2.0.tgz", + "integrity": "sha512-+xZnaK5R8kBJrHK0/6HRlrKNamvVS5rjyuju+rnyxRGuwUJwpAMsVzUl5dz6rK8brkzjV6JpcFNjp6NqV0g1OQ==", + "dev": true, + "dependencies": { + "loader-utils": "^1.2.3", + "schema-utils": "^2.0.0" + }, + "engines": { + "node": ">= 8.9.0" + } + }, + "node_modules/fileset": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz", + "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=", + "dev": true, + "dependencies": { + "glob": "^7.0.3", + "minimatch": "^3.0.3" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "dependencies": { + "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" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/find-cache-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.0.0.tgz", + "integrity": "sha512-t7ulV1fmbxh5G9l/492O1p5+EBbr3uwpt6odhFTMc+nWyhmbloe+ja9BZ8pIBtqFWhOmCWVjx+pTW4zDkFoclw==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.0", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "optional": true, + "dependencies": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/flatted": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "dev": true + }, + "node_modules/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, + "dependencies": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "node_modules/follow-redirects": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.1.tgz", + "integrity": "sha512-SSG5xmZh1mkPGyKzjZP8zLjltIfpW32Y5QpdNJyjcfGxK3qo3NDDkZOZSFiGn1A6SclQxY9GzEwAHQ3dmYRWpg==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "devOptional": true, + "engines": { + "node": "*" + } + }, + "node_modules/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==", + "devOptional": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/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, + "dependencies": { + "map-cache": "^0.2.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "devOptional": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/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, + "dependencies": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "devOptional": true + }, + "node_modules/fsevents": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.1.tgz", + "integrity": "sha512-YR47Eg4hChJGAB1O3yEAOkGO+rlzutoICGqGo9EZ4lKWokzZRSyIW1QmTzqjtw8MJdj9srP869CuWw/hyzSiBw==", + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "devOptional": true + }, + "node_modules/gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "optional": true, + "dependencies": { + "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" + } + }, + "node_modules/gaze": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", + "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", + "optional": true, + "dependencies": { + "globule": "^1.0.0" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/genfun": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/genfun/-/genfun-5.0.0.tgz", + "integrity": "sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA==", + "dev": true + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "devOptional": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.2.tgz", + "integrity": "sha512-aeX0vrFm21ILl3+JpFFRNe9aUvp6VFZb2/CTbgLb8j75kOhvoNYjt9d8KA/tJG4gSo8nzEDedRl0h7vDmBYRVg==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "node_modules/get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "devOptional": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "devOptional": true, + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "devOptional": true, + "dependencies": { + "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" + }, + "engines": { + "node": "*" + } + }, + "node_modules/glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/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, + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "optional": true, + "dependencies": { + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/globule": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.2.tgz", + "integrity": "sha512-7IDTQTIu2xzXkT+6mlluidnWo+BypnbSoEVVQCGfzqnl5Ik8d3e1d4wycb8Rj9tWW+Z39uPWsdlquqiqPCd/pA==", + "optional": true, + "dependencies": { + "glob": "~7.1.1", + "lodash": "~4.17.10", + "minimatch": "~3.0.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "devOptional": true + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true + }, + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "devOptional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "devOptional": true, + "dependencies": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "devOptional": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "optional": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "dependencies": { + "isarray": "2.0.1" + } + }, + "node_modules/has-binary2/node_modules/isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + }, + "node_modules/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 + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "devOptional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "optional": true + }, + "node_modules/has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "dependencies": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "dependencies": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hash-base/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/hash-base/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "node_modules/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, + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/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, + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "devOptional": true + }, + "node_modules/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, + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/html-entities": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz", + "integrity": "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==", + "dev": true + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/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 + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", + "dev": true + }, + "node_modules/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, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-errors/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/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, + "dependencies": { + "agent-base": "4", + "debug": "3.1.0" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/http-proxy-agent/node_modules/debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/http-proxy-agent/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/http-proxy-middleware": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", + "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", + "dev": true, + "dependencies": { + "http-proxy": "^1.17.0", + "is-glob": "^4.0.0", + "lodash": "^4.17.11", + "micromatch": "^3.1.10" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "dependencies": { + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "dependencies": { + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/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, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "devOptional": true, + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/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 + }, + "node_modules/https-proxy-agent": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", + "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", + "devOptional": true, + "dependencies": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/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, + "dependencies": { + "ms": "^2.0.0" + } + }, + "node_modules/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, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true + }, + "node_modules/iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "dev": true + }, + "node_modules/ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/ignore-walk": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", + "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", + "dev": true, + "dependencies": { + "minimatch": "^3.0.4" + } + }, + "node_modules/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, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=", + "optional": true + }, + "node_modules/import-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", + "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", + "dev": true, + "dependencies": { + "import-from": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "dev": true, + "dependencies": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/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, + "dependencies": { + "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/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, + "dependencies": { + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/import-local/node_modules/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, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/import-local/node_modules/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, + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "optional": true, + "dependencies": { + "repeating": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "dev": true + }, + "node_modules/infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "devOptional": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "devOptional": true + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "devOptional": true + }, + "node_modules/inquirer": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.1.tgz", + "integrity": "sha512-uxNHBeQhRXIoHWTSNYUFhQVrHYFThIt6IVo2fFmSe8aBwdR3/w6b58hJpiL/fMukFkvGzjg+hSxFtwvVmKZmXw==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^2.4.2", + "cli-cursor": "^3.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.15", + "mute-stream": "0.0.8", + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^4.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/inquirer/node_modules/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, + "engines": { + "node": ">=6" + } + }, + "node_modules/inquirer/node_modules/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, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/inquirer/node_modules/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, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/inquirer/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/inquirer/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inquirer/node_modules/string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/inquirer/node_modules/string-width/node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inquirer/node_modules/string-width/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/inquirer/node_modules/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, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/inquirer/node_modules/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, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/internal-ip": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", + "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", + "dev": true, + "dependencies": { + "default-gateway": "^4.2.0", + "ipaddr.js": "^1.9.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/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==", + "devOptional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "dev": true + }, + "node_modules/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, + "engines": { + "node": ">=4" + } + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-absolute-url": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", + "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/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, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-arguments": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", + "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "devOptional": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/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 + }, + "node_modules/is-callable": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", + "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-core-module": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", + "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "devOptional": true, + "dependencies": { + "has": "^1.0.3" + } + }, + "node_modules/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, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/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, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-descriptor/node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finite": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", + "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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=", + "optional": true, + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/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=", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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==", + "optional": true, + "dependencies": { + "is-path-inside": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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=", + "optional": true, + "dependencies": { + "path-is-inside": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "devOptional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "devOptional": true + }, + "node_modules/is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "optional": true + }, + "node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "devOptional": true + }, + "node_modules/isbinaryfile": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.6.tgz", + "integrity": "sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg==", + "dev": true, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "devOptional": true + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "devOptional": true + }, + "node_modules/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, + "dependencies": { + "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" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/istanbul-api/node_modules/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, + "engines": { + "node": ">=6" + } + }, + "node_modules/istanbul-api/node_modules/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, + "dependencies": { + "@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" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/istanbul-api/node_modules/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, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/istanbul-api/node_modules/make-dir/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/istanbul-api/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/istanbul-api/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", + "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/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, + "dependencies": { + "append-transform": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/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, + "dependencies": { + "istanbul-lib-coverage": "^2.0.5", + "make-dir": "^2.1.0", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/istanbul-lib-report/node_modules/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, + "engines": { + "node": ">=6" + } + }, + "node_modules/istanbul-lib-report/node_modules/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, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/istanbul-lib-report/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/istanbul-lib-report/node_modules/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, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/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, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^2.0.5", + "make-dir": "^2.1.0", + "rimraf": "^2.6.3", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/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, + "engines": { + "node": ">=6" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/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, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/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 + }, + "node_modules/istanbul-lib-source-maps/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-reports": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.7.tgz", + "integrity": "sha512-uu1F/L1o5Y6LzPVSVZXNOoD/KXpJue9aeLRd0sM9uMXfZvzomB0WxVamWb5ue8kA2vVWEmW7EG+A5n3f1kqHKg==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jasmine": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz", + "integrity": "sha1-awicChFXax8W3xG4AUbZHU6Lij4=", + "optional": true, + "dependencies": { + "exit": "^0.1.2", + "glob": "^7.0.6", + "jasmine-core": "~2.8.0" + }, + "bin": { + "jasmine": "bin/jasmine.js" + } + }, + "node_modules/jasmine-core": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.5.0.tgz", + "integrity": "sha512-nCeAiw37MIMA9w9IXso7bRaLl+c/ef3wnxsoSAlYrzS+Ot0zTG6nU8G/cIfGkqpkjX2wNaIW9RFG0TwIFnG6bA==", + "dev": true + }, + "node_modules/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, + "dependencies": { + "colors": "1.1.2" + } + }, + "node_modules/jasmine/node_modules/jasmine-core": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz", + "integrity": "sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=", + "optional": true + }, + "node_modules/jasminewd2": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/jasminewd2/-/jasminewd2-2.2.0.tgz", + "integrity": "sha1-43zwsX8ZnM4jvqcbIDk5Uka07E4=", + "optional": true, + "engines": { + "node": ">= 6.9.x" + } + }, + "node_modules/jest-worker": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz", + "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==", + "dev": true, + "dependencies": { + "merge-stream": "^2.0.0", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/jest-worker/node_modules/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, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jquery": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.5.1.tgz", + "integrity": "sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg==" + }, + "node_modules/js-base64": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", + "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==", + "optional": true + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "devOptional": true + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "devOptional": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "devOptional": true + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/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 + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "devOptional": true + }, + "node_modules/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==", + "devOptional": true + }, + "node_modules/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=", + "devOptional": true + }, + "node_modules/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 + }, + "node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "dev": true, + "engines": [ + "node >= 0.2.0" + ] + }, + "node_modules/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, + "dependencies": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "bin.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "devOptional": true, + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "node_modules/jszip": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.5.0.tgz", + "integrity": "sha512-WRtu7TPCmYePR1nazfrtuF216cIVon/3GWOvHS9QR5bIwSbnxtdpma6un3jyGGNhHsKCSzn5Ypk+EkDRvTGiFA==", + "optional": true, + "dependencies": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "set-immediate-shim": "~1.0.1" + } + }, + "node_modules/karma": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/karma/-/karma-5.2.3.tgz", + "integrity": "sha512-tHdyFADhVVPBorIKCX8A37iLHxc6RBRphkSoQ+MLKdAtFn1k97tD8WUGi1KlEtDZKL3hui0qhsY9HXUfSNDYPQ==", + "dev": true, + "dependencies": { + "body-parser": "^1.19.0", + "braces": "^3.0.2", + "chokidar": "^3.4.2", + "colors": "^1.4.0", + "connect": "^3.7.0", + "di": "^0.0.1", + "dom-serialize": "^2.2.1", + "glob": "^7.1.6", + "graceful-fs": "^4.2.4", + "http-proxy": "^1.18.1", + "isbinaryfile": "^4.0.6", + "lodash": "^4.17.19", + "log4js": "^6.2.1", + "mime": "^2.4.5", + "minimatch": "^3.0.4", + "qjobs": "^1.2.0", + "range-parser": "^1.2.1", + "rimraf": "^3.0.2", + "socket.io": "^2.3.0", + "source-map": "^0.6.1", + "tmp": "0.2.1", + "ua-parser-js": "0.7.22", + "yargs": "^15.3.1" + }, + "bin": { + "karma": "bin/karma" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/karma-chrome-launcher": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.1.0.tgz", + "integrity": "sha512-3dPs/n7vgz1rxxtynpzZTvb9y/GIaW8xjAwcIGttLbycqoFtI7yo1NGnQi6oFTherRE+GIhCAHZC4vEqWGhNvg==", + "dev": true, + "dependencies": { + "which": "^1.2.1" + } + }, + "node_modules/karma-chrome-launcher/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/karma-coverage-istanbul-reporter": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-2.1.1.tgz", + "integrity": "sha512-CH8lTi8+kKXGvrhy94+EkEMldLCiUA0xMOiL31vvli9qK0T+qcXJAwWBRVJWnVWxYkTmyWar8lPz63dxX6/z1A==", + "dev": true, + "dependencies": { + "istanbul-api": "^2.1.6", + "minimatch": "^3.0.4" + } + }, + "node_modules/karma-jasmine": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-2.0.1.tgz", + "integrity": "sha512-iuC0hmr9b+SNn1DaUD2QEYtUxkS1J+bSJSn7ejdEexs7P8EYvA1CWkEdrDQ+8jVH3AgWlCNwjYsT1chjcNW9lA==", + "dev": true, + "dependencies": { + "jasmine-core": "^3.3" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/karma-jasmine-html-reporter": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-1.5.4.tgz", + "integrity": "sha512-PtilRLno5O6wH3lDihRnz0Ba8oSn0YUJqKjjux1peoYGwo0AQqrWRbdWk/RLzcGlb+onTyXAnHl6M+Hu3UxG/Q==", + "dev": true + }, + "node_modules/karma-source-map-support": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", + "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==", + "dev": true, + "dependencies": { + "source-map-support": "^0.5.5" + } + }, + "node_modules/karma-source-map-support/node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/karma-source-map-support/node_modules/source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/karma/node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/karma/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/karma/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/karma/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/karma/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/karma/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/karma/node_modules/colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/karma/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/karma/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/karma/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/karma/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/karma/node_modules/mime": { + "version": "2.4.7", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.7.tgz", + "integrity": "sha512-dhNd1uA2u397uQk3Nv5LM4lm93WYDUXFn3Fu291FJerns4jyTudqhIWe4W04YLy7Uk1tm1Ore04NpjRvQp/NPA==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/karma/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/karma/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/karma/node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/karma/node_modules/string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/karma/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/karma/node_modules/tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "dependencies": { + "rimraf": "^3.0.0" + }, + "engines": { + "node": ">=8.17.0" + } + }, + "node_modules/karma/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/karma/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/karma/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/killable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", + "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", + "dev": true + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lcid": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", + "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", + "devOptional": true, + "dependencies": { + "invert-kv": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/less": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/less/-/less-3.9.0.tgz", + "integrity": "sha512-31CmtPEZraNUtuUREYjSqRkeETFdyEHSEPAGq4erDlUXtda7pzNmctdljdIagSb589d/qXGWiiP31R5JVf+v0w==", + "dev": true, + "dependencies": { + "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" + }, + "bin": { + "lessc": "bin/lessc" + }, + "engines": { + "node": ">=4" + }, + "optionalDependencies": { + "image-size": "~0.5.0", + "promise": "^7.1.1", + "source-map": "~0.6.0" + } + }, + "node_modules/less-loader": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-5.0.0.tgz", + "integrity": "sha512-bquCU89mO/yWLaUq0Clk7qCsKhsF/TZpJUzETRvJa9KSVEL9SO3ovCvdEHISBhrC81OwC8QSVX7E0bzElZj9cg==", + "dev": true, + "dependencies": { + "clone": "^2.1.1", + "loader-utils": "^1.1.0", + "pify": "^4.0.1" + }, + "engines": { + "node": ">= 4.8.0" + } + }, + "node_modules/less-loader/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/less/node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/levenary": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz", + "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", + "dev": true, + "dependencies": { + "leven": "^3.1.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/license-webpack-plugin": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-2.1.2.tgz", + "integrity": "sha512-7poZHRla+ae0eEButlwMrPpkXyhNVBf2EHePYWT0jyLnI6311/OXJkTI2sOIRungRpQgU2oDMpro5bSFPT5F0A==", + "dev": true, + "dependencies": { + "@types/webpack-sources": "^0.1.5", + "webpack-sources": "^1.2.0" + } + }, + "node_modules/lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "optional": true, + "dependencies": { + "immediate": "~3.0.5" + } + }, + "node_modules/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=", + "optional": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "engines": { + "node": ">=4.3.0 <5.0.0 || >=5.10" + } + }, + "node_modules/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, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "devOptional": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/locate-path/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "devOptional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "devOptional": true + }, + "node_modules/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 + }, + "node_modules/log4js": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.3.0.tgz", + "integrity": "sha512-Mc8jNuSFImQUIateBFwdOQcmC6Q5maU0VVvdC2R6XMb66/VnT+7WS4D/0EeNMZu1YODmJe5NIn2XftCzEocUgw==", + "dev": true, + "dependencies": { + "date-format": "^3.0.0", + "debug": "^4.1.1", + "flatted": "^2.0.1", + "rfdc": "^1.1.4", + "streamroller": "^2.2.4" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/log4js/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/log4js/node_modules/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 + }, + "node_modules/loglevel": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz", + "integrity": "sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/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, + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "optional": true, + "dependencies": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "devOptional": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/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, + "dependencies": { + "sourcemap-codec": "^1.4.4" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "optional": true + }, + "node_modules/make-fetch-happen": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-5.0.2.tgz", + "integrity": "sha512-07JHC0r1ykIoruKO8ifMXu+xEU8qOXDFETylktdug6vJDACnP+HKevOu3PXyNPzFyTSlz8vrBYlBO1JZRe8Cag==", + "dev": true, + "dependencies": { + "agentkeepalive": "^3.4.1", + "cacache": "^12.0.0", + "http-cache-semantics": "^3.8.1", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.3", + "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" + } + }, + "node_modules/make-fetch-happen/node_modules/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, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/make-fetch-happen/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/mamacro": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz", + "integrity": "sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==", + "dev": true + }, + "node_modules/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==", + "devOptional": true, + "dependencies": { + "p-defer": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "dependencies": { + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/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, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mem": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", + "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", + "devOptional": true, + "dependencies": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/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, + "dependencies": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "node_modules/meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "optional": true, + "dependencies": { + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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 + }, + "node_modules/merge-source-map": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", + "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", + "dev": true, + "dependencies": { + "source-map": "^0.6.1" + } + }, + "node_modules/merge-source-map/node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "dependencies": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/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, + "dependencies": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "bin": { + "miller-rabin": "bin/miller-rabin" + } + }, + "node_modules/miller-rabin/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.45.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz", + "integrity": "sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==", + "devOptional": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.28", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz", + "integrity": "sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==", + "devOptional": true, + "dependencies": { + "mime-db": "1.45.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "devOptional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.8.0.tgz", + "integrity": "sha512-MNpRGbNA52q6U92i0qbVpQNsgk7LExy41MdAlG84FeytfDOtRIf/mCHdEgG8rpTKOaNKiqUnZdlptF469hxqOw==", + "dev": true, + "dependencies": { + "loader-utils": "^1.1.0", + "normalize-url": "1.9.1", + "schema-utils": "^1.0.0", + "webpack-sources": "^1.1.0" + }, + "engines": { + "node": ">= 6.9.0" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/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, + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/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 + }, + "node_modules/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 + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "devOptional": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "devOptional": true + }, + "node_modules/minipass": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", + "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", + "devOptional": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "devOptional": true, + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "dev": true, + "dependencies": { + "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" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "dependencies": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-deep/node_modules/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, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "devOptional": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "dev": true, + "dependencies": { + "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" + } + }, + "node_modules/move-concurrently/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "devOptional": true + }, + "node_modules/multicast-dns": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", + "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "dev": true, + "dependencies": { + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/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 + }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "node_modules/nan": { + "version": "2.14.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", + "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", + "optional": true + }, + "node_modules/nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "dependencies": { + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "devOptional": true + }, + "node_modules/node-fetch-npm": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.4.tgz", + "integrity": "sha512-iOuIQDWDyjhv9qSDrj9aq/klt6F9z1p2otB3AV7v3zBDcL/x+OfGsvGQZZCcMZbUf4Ujw1xGNQkjvGnVT22cKg==", + "dev": true, + "dependencies": { + "encoding": "^0.1.11", + "json-parse-better-errors": "^1.0.0", + "safe-buffer": "^5.1.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/node-forge": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", + "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", + "dev": true, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/node-gyp": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-7.1.2.tgz", + "integrity": "sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ==", + "optional": true, + "dependencies": { + "env-paths": "^2.2.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.3", + "nopt": "^5.0.0", + "npmlog": "^4.1.2", + "request": "^2.88.2", + "rimraf": "^3.0.2", + "semver": "^7.3.2", + "tar": "^6.0.2", + "which": "^2.0.2" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": ">= 10.12.0" + } + }, + "node_modules/node-gyp/node_modules/semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "optional": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/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, + "dependencies": { + "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" + } + }, + "node_modules/node-libs-browser/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, + "node_modules/node-releases": { + "version": "1.1.69", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.69.tgz", + "integrity": "sha512-DGIjo79VDEyAnRlfSqYTsy+yoHd2IOjJiKUozD2MV2D85Vso6Bug56mb9tT/fY5Urt0iqk01H7x+llAruDR2zA==", + "dev": true + }, + "node_modules/node-sass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-5.0.0.tgz", + "integrity": "sha512-opNgmlu83ZCF792U281Ry7tak9IbVC+AKnXGovcQ8LG8wFaJv6cLnRlc6DIHlmNxWEexB5bZxi9SZ9JyUuOYjw==", + "hasInstallScript": true, + "optional": true, + "dependencies": { + "async-foreach": "^0.1.3", + "chalk": "^1.1.1", + "cross-spawn": "^7.0.3", + "gaze": "^1.0.0", + "get-stdin": "^4.0.1", + "glob": "^7.0.3", + "lodash": "^4.17.15", + "meow": "^3.7.0", + "mkdirp": "^0.5.1", + "nan": "^2.13.2", + "node-gyp": "^7.1.0", + "npmlog": "^4.0.0", + "request": "^2.88.0", + "sass-graph": "2.2.5", + "stdout-stream": "^1.4.0", + "true-case-path": "^1.0.2" + }, + "bin": { + "node-sass": "bin/node-sass" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "optional": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/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==", + "devOptional": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", + "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", + "dev": true, + "dependencies": { + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-bundled": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz", + "integrity": "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==", + "dev": true, + "dependencies": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "node_modules/npm-normalize-package-bin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", + "dev": true + }, + "node_modules/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, + "dependencies": { + "hosted-git-info": "^2.6.0", + "osenv": "^0.1.5", + "semver": "^5.5.0", + "validate-npm-package-name": "^3.0.0" + } + }, + "node_modules/npm-packlist": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz", + "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==", + "dev": true, + "dependencies": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1", + "npm-normalize-package-bin": "^1.0.1" + } + }, + "node_modules/npm-pick-manifest": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-3.0.2.tgz", + "integrity": "sha512-wNprTNg+X5nf+tDi+hbjdHhM4bX+mKqv6XmPh7B5eG+QY9VARfQPfCEH013H5GqfNj6ee8Ij2fg8yk0mzps1Vw==", + "dev": true, + "dependencies": { + "figgy-pudding": "^3.5.1", + "npm-package-arg": "^6.0.0", + "semver": "^5.4.1" + } + }, + "node_modules/npm-registry-fetch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-4.0.7.tgz", + "integrity": "sha512-cny9v0+Mq6Tjz+e0erFAB+RYJ/AVGzkjnISiobqP8OWj9c9FLoZZu8/SPSKJWE17F1tk4018wfjV+ZbIbqC7fQ==", + "dev": true, + "dependencies": { + "bluebird": "^3.5.1", + "figgy-pudding": "^3.4.1", + "JSONStream": "^1.3.4", + "lru-cache": "^5.1.1", + "make-fetch-happen": "^5.0.0", + "npm-package-arg": "^6.1.0", + "safe-buffer": "^5.2.0" + } + }, + "node_modules/npm-registry-fetch/node_modules/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, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/npm-registry-fetch/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/npm-registry-fetch/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/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=", + "devOptional": true, + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "devOptional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "optional": true, + "dependencies": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "node_modules/num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "dev": true + }, + "node_modules/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=", + "devOptional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "devOptional": true, + "engines": { + "node": "*" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "devOptional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "dependencies": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/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, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", + "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", + "dev": true + }, + "node_modules/object-is": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.4.tgz", + "integrity": "sha512-1ZvAZ4wlF7IyPVOcE1Omikt7UpaFlOQq0HlSti+ZvDH3UiD2brwGMwDbyV43jao2bKJ+4+WdPJHSd7kgzKYVqg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/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, + "dependencies": { + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.getownpropertydescriptors": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.1.tgz", + "integrity": "sha512-6DtXgZ/lIZ9hqx4GtZETobXLR/ZLaa0aqV0kzbn80Rf8Z2e/XFnhA0I7p07N2wH8bBBltr2xQPi6sbKWAY2Eng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.getownpropertydescriptors/node_modules/es-abstract": { + "version": "1.18.0-next.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.2.tgz", + "integrity": "sha512-Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.1", + "object-inspect": "^1.9.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.3", + "string.prototype.trimstart": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/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, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "node_modules/oidc-client": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/oidc-client/-/oidc-client-1.11.3.tgz", + "integrity": "sha512-kMA5KRP++88nn3nxogwDA4p8jH+YwyoA1JxxVHA9YZFgYqcnK8qjc6WLEoOBheKbxQSl89r0gDh8+zscZHmGlw==", + "dependencies": { + "acorn": "^7.4.1", + "base64-js": "^1.5.1", + "core-js": "^3.8.3", + "crypto-js": "^4.0.0", + "serialize-javascript": "^4.0.0" + } + }, + "node_modules/oidc-client/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/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, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "devOptional": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", + "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", + "dev": true, + "dependencies": { + "is-wsl": "^1.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/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, + "dependencies": { + "is-wsl": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/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, + "dependencies": { + "url-parse": "^1.4.3" + } + }, + "node_modules/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 + }, + "node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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==", + "devOptional": true, + "dependencies": { + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/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=", + "devOptional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dev": true, + "dependencies": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "node_modules/p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", + "devOptional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "devOptional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/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==", + "devOptional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "devOptional": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/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==", + "devOptional": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/p-retry": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", + "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", + "dev": true, + "dependencies": { + "retry": "^0.12.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/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==", + "devOptional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pacote": { + "version": "9.5.5", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-9.5.5.tgz", + "integrity": "sha512-jAEP+Nqj4kyMWyNpfTU/Whx1jA7jEc5cCOlurm0/0oL+v8TAp1QSsK83N7bYe+2bEdFzMAtPG5TBebjzzGV0cA==", + "dev": true, + "dependencies": { + "bluebird": "^3.5.3", + "cacache": "^12.0.2", + "figgy-pudding": "^3.5.1", + "get-stream": "^4.1.0", + "glob": "^7.1.3", + "infer-owner": "^1.0.4", + "lru-cache": "^5.1.1", + "make-fetch-happen": "^5.0.0", + "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": "^4.0.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" + } + }, + "node_modules/pacote/node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "node_modules/pacote/node_modules/fs-minipass": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", + "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "dev": true, + "dependencies": { + "minipass": "^2.6.0" + } + }, + "node_modules/pacote/node_modules/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, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/pacote/node_modules/minipass": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", + "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "node_modules/pacote/node_modules/minizlib": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", + "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "dev": true, + "dependencies": { + "minipass": "^2.9.0" + } + }, + "node_modules/pacote/node_modules/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, + "dependencies": { + "figgy-pudding": "^3.5.1", + "npm-package-arg": "^6.0.0", + "semver": "^5.4.1" + } + }, + "node_modules/pacote/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/pacote/node_modules/tar": { + "version": "4.4.13", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", + "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", + "dev": true, + "dependencies": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" + }, + "engines": { + "node": ">=4.5" + } + }, + "node_modules/pacote/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/pacote/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "devOptional": true + }, + "node_modules/parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "dev": true, + "dependencies": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "node_modules/parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "dev": true, + "dependencies": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "optional": true, + "dependencies": { + "error-ex": "^1.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, + "node_modules/parseqs": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.6.tgz", + "integrity": "sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w==", + "dev": true + }, + "node_modules/parseuri": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.6.tgz", + "integrity": "sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow==", + "dev": true + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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 + }, + "node_modules/path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "node_modules/path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "optional": true, + "dependencies": { + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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=", + "devOptional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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=", + "devOptional": true + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/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==", + "devOptional": true + }, + "node_modules/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 + }, + "node_modules/path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "optional": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pbkdf2": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", + "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", + "dev": true, + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "devOptional": true + }, + "node_modules/picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "dev": true, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "devOptional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "devOptional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "devOptional": true, + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "dev": true, + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-up/node_modules/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, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/popper.js": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz", + "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==" + }, + "node_modules/portfinder": { + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", + "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "dev": true, + "dependencies": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.5" + }, + "engines": { + "node": ">= 0.12.0" + } + }, + "node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss": { + "version": "7.0.17", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", + "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/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, + "dependencies": { + "postcss": "^7.0.1", + "postcss-value-parser": "^3.2.3", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-import/node_modules/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 + }, + "node_modules/postcss-load-config": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.2.tgz", + "integrity": "sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==", + "dev": true, + "dependencies": { + "cosmiconfig": "^5.0.0", + "import-cwd": "^2.0.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/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, + "dependencies": { + "loader-utils": "^1.1.0", + "postcss": "^7.0.0", + "postcss-load-config": "^2.0.0", + "schema-utils": "^1.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss-loader/node_modules/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, + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", + "dev": true + }, + "node_modules/postcss/node_modules/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, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss/node_modules/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, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss/node_modules/chalk/node_modules/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, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss/node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss/node_modules/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, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "devOptional": true + }, + "node_modules/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, + "dependencies": { + "asap": "~2.0.3" + } + }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true + }, + "node_modules/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, + "dependencies": { + "err-code": "^1.0.0", + "retry": "^0.10.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/promise-retry/node_modules/retry": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", + "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/protoduck": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/protoduck/-/protoduck-5.0.1.tgz", + "integrity": "sha512-WxoCeDCoCBY55BMvj4cAEjdVUFGRWed9ZxPlqTKYyw1nDDTQ4pqmnIMAGfJlg7Dx35uB/M+PHJPTmGOvaCaPTg==", + "dev": true, + "dependencies": { + "genfun": "^5.0.0" + } + }, + "node_modules/protractor": { + "version": "5.4.4", + "resolved": "https://registry.npmjs.org/protractor/-/protractor-5.4.4.tgz", + "integrity": "sha512-BaL4vePgu3Vfa/whvTUAlgaCAId4uNSGxIFSCXMgj7LMYENPWLp85h5RBi9pdpX/bWQ8SF6flP7afmi2TC4eHw==", + "optional": true, + "dependencies": { + "@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", + "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", + "yargs": "^12.0.5" + }, + "bin": { + "protractor": "bin/protractor", + "webdriver-manager": "bin/webdriver-manager" + }, + "engines": { + "node": ">=6.9.x" + } + }, + "node_modules/protractor/node_modules/ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/protractor/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/protractor/node_modules/cliui": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "optional": true, + "dependencies": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + } + }, + "node_modules/protractor/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "optional": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/protractor/node_modules/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==", + "optional": true + }, + "node_modules/protractor/node_modules/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=", + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/protractor/node_modules/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=", + "optional": true + }, + "node_modules/protractor/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "optional": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/protractor/node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "optional": true, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/protractor/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "optional": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/protractor/node_modules/webdriver-manager": { + "version": "12.1.8", + "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.8.tgz", + "integrity": "sha512-qJR36SXG2VwKugPcdwhaqcLQOD7r8P2Xiv9sfNbfZrKBnX243iAkOueX1yAmeNgIKhJ3YAT/F2gq6IiEZzahsg==", + "optional": true, + "dependencies": { + "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" + }, + "bin": { + "webdriver-manager": "bin/webdriver-manager" + }, + "engines": { + "node": ">=6.9.x" + } + }, + "node_modules/protractor/node_modules/wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "optional": true, + "dependencies": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/wrap-ansi/node_modules/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=", + "optional": true, + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/wrap-ansi/node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "optional": true, + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "optional": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/yargs": { + "version": "12.0.5", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", + "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "optional": true, + "dependencies": { + "cliui": "^4.0.0", + "decamelize": "^1.2.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": "^11.1.1" + } + }, + "node_modules/protractor/node_modules/yargs-parser": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", + "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", + "optional": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", + "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", + "dev": true, + "dependencies": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true + }, + "node_modules/psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "devOptional": true + }, + "node_modules/public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "dependencies": { + "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" + } + }, + "node_modules/public-encrypt/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "devOptional": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "dependencies": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + } + }, + "node_modules/pumpify/node_modules/pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "devOptional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/q": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", + "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=", + "optional": true, + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/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, + "engines": { + "node": ">=0.9" + } + }, + "node_modules/qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "devOptional": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/query-string": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", + "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", + "dev": true, + "dependencies": { + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/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, + "dependencies": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "node_modules/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, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/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, + "dependencies": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-loader": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-3.1.0.tgz", + "integrity": "sha512-lzUVMuJ06HF4rYveaz9Tv0WRlUMxJ0Y1hgSkkgg+50iEdaI0TthyEDe08KIHb0XsF6rn8WYTqPCaGTZg3sX+qA==", + "dev": true, + "dependencies": { + "loader-utils": "^1.1.0", + "schema-utils": "^2.0.1" + }, + "engines": { + "node": ">= 8.9.0" + } + }, + "node_modules/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, + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/read-package-json": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.2.tgz", + "integrity": "sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA==", + "dev": true, + "dependencies": { + "glob": "^7.1.1", + "json-parse-even-better-errors": "^2.3.0", + "normalize-package-data": "^2.0.0", + "npm-normalize-package-bin": "^1.0.0" + } + }, + "node_modules/read-package-tree": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/read-package-tree/-/read-package-tree-5.3.1.tgz", + "integrity": "sha512-mLUDsD5JVtlZxjSlPPx1RETkNjjvQYuweKwNVt1Sn8kP5Jh44pvYuUHCp6xSVDZWbNxVxG5lyZJ921aJH61sTw==", + "dev": true, + "dependencies": { + "read-package-json": "^2.0.0", + "readdir-scoped-modules": "^1.0.0", + "util-promisify": "^2.1.0" + } + }, + "node_modules/read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "optional": true, + "dependencies": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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=", + "optional": true, + "dependencies": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "devOptional": true, + "dependencies": { + "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" + } + }, + "node_modules/readdir-scoped-modules": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz", + "integrity": "sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==", + "dev": true, + "dependencies": { + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "graceful-fs": "^4.1.2", + "once": "^1.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "optional": true, + "dependencies": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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 + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", + "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==", + "dev": true + }, + "node_modules/regenerator-transform": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", + "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/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, + "dependencies": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", + "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/regexpu-core": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz", + "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", + "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", + "dev": true + }, + "node_modules/regjsparser": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.6.tgz", + "integrity": "sha512-jjyuCp+IEMIm3N1H1LLTJW1EISEJV9+5oHdEyrt43Pg9cDSb6rrLZei2cVWpl0xTjmmlpec/lEQGYgM7xfpGCQ==", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/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 + }, + "node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "optional": true, + "dependencies": { + "is-finite": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "devOptional": true, + "dependencies": { + "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.3", + "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.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "devOptional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "devOptional": true + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "node_modules/resolve": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", + "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "devOptional": true, + "dependencies": { + "is-core-module": "^2.1.0", + "path-parse": "^1.0.6" + } + }, + "node_modules/resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "dev": true, + "dependencies": { + "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/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 + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/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, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rfdc": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.1.4.tgz", + "integrity": "sha512-5C9HXdzK8EAqN7JDif30jqsBzavB7wLpaubisuQIGHWf2gUXSpzy6ArX/+Da8RjFpagWsCn+pIgxTMAmKw9Zug==", + "dev": true + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "devOptional": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/run-parallel": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz", + "integrity": "sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==", + "dev": true + }, + "node_modules/run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "dev": true, + "dependencies": { + "aproba": "^1.1.1" + } + }, + "node_modules/rxjs": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", + "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/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==" + }, + "node_modules/safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "dependencies": { + "ret": "~0.1.10" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "devOptional": true + }, + "node_modules/sass": { + "version": "1.22.9", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.22.9.tgz", + "integrity": "sha512-FzU1X2V8DlnqabrL4u7OBwD2vcOzNMongEJEx3xMEhWY/v26FFR3aG0hyeu2T965sfR0E9ufJwmG+Qjz78vFPQ==", + "dev": true, + "dependencies": { + "chokidar": ">=2.0.0 <4.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/sass-graph": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.5.tgz", + "integrity": "sha512-VFWDAHOe6mRuT4mZRd4eKE+d8Uedrk6Xnh7Sh9b4NGufQLQjOrvf/MQoOdx+0s92L89FeyUUNfU597j/3uNpag==", + "optional": true, + "dependencies": { + "glob": "^7.0.0", + "lodash": "^4.0.0", + "scss-tokenizer": "^0.2.3", + "yargs": "^13.3.2" + } + }, + "node_modules/sass-loader": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-7.2.0.tgz", + "integrity": "sha512-h8yUWaWtsbuIiOCgR9fd9c2lRXZ2uG+h8Dzg/AGNj+Hg/3TO8+BBAW9mEP+mh8ei+qBKqSJ0F1FLlYjNBc61OA==", + "dev": true, + "dependencies": { + "clone-deep": "^4.0.1", + "loader-utils": "^1.0.1", + "neo-async": "^2.5.0", + "pify": "^4.0.1", + "semver": "^5.5.0" + }, + "engines": { + "node": ">= 6.9.0" + } + }, + "node_modules/sass-loader/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/saucelabs": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.5.0.tgz", + "integrity": "sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==", + "optional": true, + "dependencies": { + "https-proxy-agent": "^2.2.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "optional": true + }, + "node_modules/schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 8.9.0" + } + }, + "node_modules/scss-tokenizer": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", + "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", + "optional": true, + "dependencies": { + "js-base64": "^2.1.8", + "source-map": "^0.4.2" + } + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", + "dev": true + }, + "node_modules/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==", + "optional": true, + "dependencies": { + "jszip": "^3.1.3", + "rimraf": "^2.5.4", + "tmp": "0.0.30", + "xml2js": "^0.4.17" + }, + "engines": { + "node": ">= 6.9.0" + } + }, + "node_modules/selenium-webdriver/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "optional": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/selfsigned": { + "version": "1.10.8", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.8.tgz", + "integrity": "sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w==", + "dev": true, + "dependencies": { + "node-forge": "^0.10.0" + } + }, + "node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "devOptional": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/semver-dsl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/semver-dsl/-/semver-dsl-1.0.1.tgz", + "integrity": "sha1-02eN5VVeimH2Ke7QJTZq5fJzQKA=", + "dev": true, + "dependencies": { + "semver": "^5.3.0" + } + }, + "node_modules/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, + "dependencies": { + "semver": "^5.0.0" + } + }, + "node_modules/send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "dev": true, + "dependencies": { + "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" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/send/node_modules/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 + }, + "node_modules/serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/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, + "dependencies": { + "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" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/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, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "node_modules/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, + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "devOptional": true + }, + "node_modules/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=", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "dev": true + }, + "node_modules/setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "dev": true + }, + "node_modules/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, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "optional": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "devOptional": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/smart-buffer": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz", + "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==", + "dev": true, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/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, + "dependencies": { + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "dependencies": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/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, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/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, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/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, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/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, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "dependencies": { + "kind-of": "^3.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/snapdragon/node_modules/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, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/snapdragon/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/socket.io": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.4.1.tgz", + "integrity": "sha512-Si18v0mMXGAqLqCVpTxBa8MGqriHGQh8ccEOhmsmNS3thNCGBwO8WGrwMibANsWtQQ5NStdZwHqZR3naJVFc3w==", + "dev": true, + "dependencies": { + "debug": "~4.1.0", + "engine.io": "~3.5.0", + "has-binary2": "~1.0.2", + "socket.io-adapter": "~1.1.0", + "socket.io-client": "2.4.0", + "socket.io-parser": "~3.4.0" + } + }, + "node_modules/socket.io-adapter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz", + "integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==", + "dev": true + }, + "node_modules/socket.io-client": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.4.0.tgz", + "integrity": "sha512-M6xhnKQHuuZd4Ba9vltCLT9oa+YvTsP8j9NcEiLElfIg8KeYPyhWOes6x4t+LTAC8enQbE/995AdTem2uNyKKQ==", + "dev": true, + "dependencies": { + "backo2": "1.0.2", + "component-bind": "1.0.0", + "component-emitter": "~1.3.0", + "debug": "~3.1.0", + "engine.io-client": "~3.5.0", + "has-binary2": "~1.0.2", + "indexof": "0.0.1", + "parseqs": "0.0.6", + "parseuri": "0.0.6", + "socket.io-parser": "~3.3.0", + "to-array": "0.1.4" + } + }, + "node_modules/socket.io-client/node_modules/debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/socket.io-client/node_modules/isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + }, + "node_modules/socket.io-client/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/socket.io-client/node_modules/socket.io-parser": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.2.tgz", + "integrity": "sha512-FJvDBuOALxdCI9qwRrO/Rfp9yfndRtc1jSgVgV8FDraihmSP/MLGD5PEuJrNfjALvcQ+vMDM/33AWOYP/JSjDg==", + "dev": true, + "dependencies": { + "component-emitter": "~1.3.0", + "debug": "~3.1.0", + "isarray": "2.0.1" + } + }, + "node_modules/socket.io-parser": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.1.tgz", + "integrity": "sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A==", + "dev": true, + "dependencies": { + "component-emitter": "1.2.1", + "debug": "~4.1.0", + "isarray": "2.0.1" + } + }, + "node_modules/socket.io-parser/node_modules/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 + }, + "node_modules/socket.io-parser/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/socket.io-parser/node_modules/isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + }, + "node_modules/socket.io/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/sockjs": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.20.tgz", + "integrity": "sha512-SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA==", + "dev": true, + "dependencies": { + "faye-websocket": "^0.10.0", + "uuid": "^3.4.0", + "websocket-driver": "0.6.5" + } + }, + "node_modules/sockjs-client": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz", + "integrity": "sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==", + "dev": true, + "dependencies": { + "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" + } + }, + "node_modules/sockjs-client/node_modules/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, + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/socks": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.3.3.tgz", + "integrity": "sha512-o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA==", + "dev": true, + "dependencies": { + "ip": "1.1.5", + "smart-buffer": "^4.1.0" + }, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/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, + "dependencies": { + "agent-base": "~4.2.1", + "socks": "~2.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/socks-proxy-agent/node_modules/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, + "dependencies": { + "es6-promisify": "^5.0.0" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "dev": true, + "dependencies": { + "is-plain-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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 + }, + "node_modules/source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "devOptional": true, + "dependencies": { + "amdefine": ">=0.0.4" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/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, + "dependencies": { + "async": "^2.5.0", + "loader-utils": "^1.1.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dev": true, + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "node_modules/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==", + "optional": true, + "dependencies": { + "source-map": "^0.5.6" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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 + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "node_modules/spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "devOptional": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "devOptional": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "devOptional": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", + "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", + "devOptional": true + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/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, + "dependencies": { + "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" + } + }, + "node_modules/spdy-transport/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/spdy-transport/node_modules/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 + }, + "node_modules/spdy-transport/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/spdy/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/spdy/node_modules/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 + }, + "node_modules/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, + "dependencies": { + "chalk": "^2.0.1" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/speed-measure-webpack-plugin/node_modules/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, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/speed-measure-webpack-plugin/node_modules/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, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/speed-measure-webpack-plugin/node_modules/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, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/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, + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "devOptional": true + }, + "node_modules/sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "devOptional": true, + "dependencies": { + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "dependencies": { + "figgy-pudding": "^3.5.1" + } + }, + "node_modules/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, + "dependencies": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/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, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/stdout-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", + "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", + "optional": true, + "dependencies": { + "readable-stream": "^2.0.1" + } + }, + "node_modules/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, + "dependencies": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "node_modules/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, + "dependencies": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/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, + "dependencies": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "node_modules/stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", + "dev": true + }, + "node_modules/streamroller": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-2.2.4.tgz", + "integrity": "sha512-OG79qm3AujAM9ImoqgWEY1xG4HX+Lw+yY6qZj9R1K2mhF5bEmQ849wvrb+4vt4jLMLzwXttJlQbOdPOQVRv7DQ==", + "dev": true, + "dependencies": { + "date-format": "^2.1.0", + "debug": "^4.1.1", + "fs-extra": "^8.1.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/streamroller/node_modules/date-format": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-2.1.0.tgz", + "integrity": "sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/streamroller/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/streamroller/node_modules/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 + }, + "node_modules/strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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==", + "devOptional": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "optional": true, + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz", + "integrity": "sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz", + "integrity": "sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + } + }, + "node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "devOptional": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "optional": true, + "dependencies": { + "is-utf8": "^0.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "devOptional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "optional": true, + "dependencies": { + "get-stdin": "^4.0.1" + }, + "bin": { + "strip-indent": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/style-loader": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-1.0.0.tgz", + "integrity": "sha512-B0dOCFwv7/eY31a5PCieNwMgMhVGFe9w+rh7s/Bx8kfFkrth9zfTZquoYvdw8URgiqxObQKcpW51Ugz1HjfdZw==", + "dev": true, + "dependencies": { + "loader-utils": "^1.2.3", + "schema-utils": "^2.0.1" + }, + "engines": { + "node": ">= 8.9.0" + } + }, + "node_modules/stylus": { + "version": "0.54.5", + "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.54.5.tgz", + "integrity": "sha1-QrlWCTHKcJDOhRWnmLqeaqPW3Hk=", + "dev": true, + "dependencies": { + "css-parse": "1.7.x", + "debug": "*", + "glob": "7.0.x", + "mkdirp": "0.5.x", + "sax": "0.5.x", + "source-map": "0.1.x" + }, + "bin": { + "stylus": "bin/stylus" + }, + "engines": { + "node": "*" + } + }, + "node_modules/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, + "dependencies": { + "loader-utils": "^1.0.2", + "lodash.clonedeep": "^4.5.0", + "when": "~3.6.x" + } + }, + "node_modules/stylus/node_modules/glob": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz", + "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=", + "dev": true, + "dependencies": { + "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" + }, + "engines": { + "node": "*" + } + }, + "node_modules/stylus/node_modules/sax": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/sax/-/sax-0.5.8.tgz", + "integrity": "sha1-1HLbIo6zMcJQaw6MFVJK25OdEsE=", + "dev": true + }, + "node_modules/stylus/node_modules/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, + "dependencies": { + "amdefine": ">=0.0.4" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "optional": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tar": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.0.tgz", + "integrity": "sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA==", + "devOptional": true, + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/tar/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "devOptional": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.3.tgz", + "integrity": "sha512-Lw+ieAXmY69d09IIc/yqeBqXpEQIpDGZqT34ui1QWXIUpR2RjbqEkT8X7Lgex19hslSqcWM5iMN2kM11eMsESQ==", + "dev": true, + "dependencies": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-3.0.3.tgz", + "integrity": "sha512-bZFnotuIKq5Rqzrs+qIwFzGdKdffV9epG5vDSEbYzvKAhPeR5RbbrQysfPgbIIMhNAQtZD2hGwBfSKUXjXZZZw==", + "dev": true, + "dependencies": { + "cacache": "^15.0.4", + "find-cache-dir": "^3.3.1", + "jest-worker": "^26.0.0", + "p-limit": "^2.3.0", + "schema-utils": "^2.6.6", + "serialize-javascript": "^3.1.0", + "source-map": "^0.6.1", + "terser": "^4.6.13", + "webpack-sources": "^1.4.3" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/cacache": { + "version": "15.0.5", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.5.tgz", + "integrity": "sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A==", + "dev": true, + "dependencies": { + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.0", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/terser-webpack-plugin/node_modules/find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/terser-webpack-plugin/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/terser-webpack-plugin/node_modules/jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin/node_modules/serialize-javascript": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.1.0.tgz", + "integrity": "sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/ssri": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.0.tgz", + "integrity": "sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA==", + "dev": true, + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/terser-webpack-plugin/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/terser-webpack-plugin/node_modules/terser": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", + "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", + "dev": true, + "dependencies": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/terser/node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/terser/node_modules/source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "node_modules/timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "dev": true, + "dependencies": { + "setimmediate": "^1.0.4" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/tmp": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", + "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=", + "optional": true, + "dependencies": { + "os-tmpdir": "~1.0.1" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/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 + }, + "node_modules/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 + }, + "node_modules/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, + "engines": { + "node": ">=4" + } + }, + "node_modules/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, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-object-path/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "dependencies": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "devOptional": true, + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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==", + "optional": true, + "dependencies": { + "glob": "^7.1.2" + } + }, + "node_modules/ts-node": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.4.1.tgz", + "integrity": "sha512-5LpRN+mTiCs7lI5EtbXmF/HfMeCjzt7DH9CZwtkr6SywStrNQC723wG+aOWFiLNn7zT3kD/RnFqi3ZUfr4l5Qw==", + "optional": true, + "dependencies": { + "arg": "^4.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "source-map-support": "^0.5.6", + "yn": "^3.0.0" + }, + "bin": { + "ts-node": "dist/bin.js" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/ts-node/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ts-node/node_modules/source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "optional": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/tslint": { + "version": "5.20.1", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.20.1.tgz", + "integrity": "sha512-EcMxhzCFt8k+/UP5r8waCf/lzmeSyVlqxqMEDQE7rWYiQky8KpIBz1JAoYXfROHrPZ1XXd43q8yQnULOLiBRQg==", + "optional": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "builtin-modules": "^1.1.1", + "chalk": "^2.3.0", + "commander": "^2.12.1", + "diff": "^4.0.1", + "glob": "^7.1.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "resolve": "^1.3.2", + "semver": "^5.3.0", + "tslib": "^1.8.0", + "tsutils": "^2.29.0" + }, + "bin": { + "tslint": "bin/tslint" + }, + "engines": { + "node": ">=4.8.0" + } + }, + "node_modules/tslint/node_modules/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==", + "optional": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/tslint/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "optional": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/tslint/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "optional": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/tsutils": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", + "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", + "optional": true, + "dependencies": { + "tslib": "^1.8.1" + } + }, + "node_modules/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 + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "devOptional": true, + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "devOptional": true + }, + "node_modules/type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/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, + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "node_modules/typescript": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.5.3.tgz", + "integrity": "sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/ua-parser-js": { + "version": "0.7.22", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.22.tgz", + "integrity": "sha512-YUxzMjJ5T71w6a8WWVcMGM6YWOTX27rCoIQgLXiWaxqXSx9D7DNjiGWn1aJIRSQ5qr0xuhra77bSIh6voR/46Q==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "dev": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", + "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "dependencies": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "dependencies": { + "unique-slug": "^2.0.0" + } + }, + "node_modules/unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4" + } + }, + "node_modules/universal-analytics": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/universal-analytics/-/universal-analytics-0.4.23.tgz", + "integrity": "sha512-lgMIH7XBI6OgYn1woDEmxhGdj8yDefMKg7GkWdeATAlQZFrMrNyxSkpDzY57iY0/6fdlzTbBV03OawvvzG+q7A==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "request": "^2.88.2", + "uuid": "^3.0.0" + } + }, + "node_modules/universal-analytics/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/universal-analytics/node_modules/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 + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/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, + "dependencies": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/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, + "dependencies": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true, + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "devOptional": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "node_modules/url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "dependencies": { + "punycode": "1.3.2", + "querystring": "0.2.0" + } + }, + "node_modules/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, + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/url/node_modules/punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + }, + "node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "dependencies": { + "inherits": "2.0.3" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "devOptional": true + }, + "node_modules/util-promisify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/util-promisify/-/util-promisify-2.1.0.tgz", + "integrity": "sha1-PCI2R2xNMsX/PEcAKt18E7moKlM=", + "dev": true, + "dependencies": { + "object.getownpropertydescriptors": "^2.0.3" + } + }, + "node_modules/util/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "devOptional": true, + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/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==", + "devOptional": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/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, + "dependencies": { + "builtins": "^1.0.3" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "devOptional": true, + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true + }, + "node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", + "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", + "dev": true, + "dependencies": { + "chokidar": "^3.4.1", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0", + "watchpack-chokidar2": "^2.0.1" + }, + "optionalDependencies": { + "watchpack-chokidar2": "^2.0.1" + } + }, + "node_modules/watchpack-chokidar2": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", + "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", + "dev": true, + "optional": true, + "dependencies": { + "chokidar": "^2.1.8" + } + }, + "node_modules/watchpack-chokidar2/node_modules/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "optional": true, + "dependencies": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "node_modules/watchpack-chokidar2/node_modules/anymatch/node_modules/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, + "optional": true, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "optional": true, + "dependencies": { + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "optional": true, + "dependencies": { + "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" + } + }, + "node_modules/watchpack-chokidar2/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "optional": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "nan": "^2.12.1" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "optional": true, + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "optional": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/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, + "optional": true, + "dependencies": { + "binary-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "optional": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "optional": true, + "dependencies": { + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/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, + "optional": true, + "dependencies": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/watchpack-chokidar2/node_modules/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, + "optional": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/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==", + "optional": true, + "dependencies": { + "@types/selenium-webdriver": "^3.0.0", + "selenium-webdriver": "^3.0.1" + }, + "engines": { + "node": ">=6.9.x" + } + }, + "node_modules/webpack": { + "version": "4.39.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.39.2.tgz", + "integrity": "sha512-AKgTfz3xPSsEibH00JfZ9sHXGUwIQ6eZ9tLN8+VLzachk1Cw2LVmy+4R7ZiwTa9cZZ15tzySjeMui/UnSCAZhA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-module-context": "1.8.5", + "@webassemblyjs/wasm-edit": "1.8.5", + "@webassemblyjs/wasm-parser": "1.8.5", + "acorn": "^6.2.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^4.1.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.1", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", + "schema-utils": "^1.0.0", + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.1", + "watchpack": "^1.6.0", + "webpack-sources": "^1.4.1" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/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, + "dependencies": { + "source-list-map": "~0.1.7", + "source-map": "~0.4.1" + }, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/webpack-core/node_modules/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 + }, + "node_modules/webpack-dev-middleware": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz", + "integrity": "sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw==", + "dev": true, + "dependencies": { + "memory-fs": "^0.4.1", + "mime": "^2.4.4", + "mkdirp": "^0.5.1", + "range-parser": "^1.2.1", + "webpack-log": "^2.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/webpack-dev-middleware/node_modules/mime": { + "version": "2.4.7", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.7.tgz", + "integrity": "sha512-dhNd1uA2u397uQk3Nv5LM4lm93WYDUXFn3Fu291FJerns4jyTudqhIWe4W04YLy7Uk1tm1Ore04NpjRvQp/NPA==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/webpack-dev-server": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz", + "integrity": "sha512-PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg==", + "dev": true, + "dependencies": { + "ansi-html": "0.0.7", + "bonjour": "^3.5.0", + "chokidar": "^2.1.8", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "debug": "^4.1.1", + "del": "^4.1.1", + "express": "^4.17.1", + "html-entities": "^1.3.1", + "http-proxy-middleware": "0.19.1", + "import-local": "^2.0.0", + "internal-ip": "^4.3.0", + "ip": "^1.1.5", + "is-absolute-url": "^3.0.3", + "killable": "^1.0.1", + "loglevel": "^1.6.8", + "opn": "^5.5.0", + "p-retry": "^3.0.1", + "portfinder": "^1.0.26", + "schema-utils": "^1.0.0", + "selfsigned": "^1.10.7", + "semver": "^6.3.0", + "serve-index": "^1.9.1", + "sockjs": "0.3.20", + "sockjs-client": "1.4.0", + "spdy": "^4.0.2", + "strip-ansi": "^3.0.1", + "supports-color": "^6.1.0", + "url": "^0.11.0", + "webpack-dev-middleware": "^3.7.2", + "webpack-log": "^2.0.0", + "ws": "^6.2.1", + "yargs": "^13.3.2" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 6.11.5" + } + }, + "node_modules/webpack-dev-server/node_modules/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "dependencies": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "node_modules/webpack-dev-server/node_modules/anymatch/node_modules/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, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "dependencies": { + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "dependencies": { + "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" + }, + "optionalDependencies": { + "fsevents": "^1.2.7" + } + }, + "node_modules/webpack-dev-server/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/webpack-dev-server/node_modules/del": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", + "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", + "dev": true, + "dependencies": { + "@types/glob": "^7.1.1", + "globby": "^6.1.0", + "is-path-cwd": "^2.0.0", + "is-path-in-cwd": "^2.0.0", + "p-map": "^2.0.0", + "pify": "^4.0.1", + "rimraf": "^2.6.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "nan": "^2.12.1" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/webpack-dev-server/node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/webpack-dev-server/node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "dev": true, + "dependencies": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/globby/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/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, + "dependencies": { + "binary-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/is-path-in-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", + "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", + "dev": true, + "dependencies": { + "is-path-inside": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/is-path-inside": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", + "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", + "dev": true, + "dependencies": { + "path-is-inside": "^1.0.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "dependencies": { + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/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 + }, + "node_modules/webpack-dev-server/node_modules/p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/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, + "dependencies": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/webpack-dev-server/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/webpack-dev-server/node_modules/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, + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/webpack-dev-server/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/webpack-dev-server/node_modules/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, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/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, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "dependencies": { + "ansi-colors": "^3.0.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/webpack-merge": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.1.tgz", + "integrity": "sha512-4p8WQyS98bUJcCvFMbdGZyZmsKuWjWVnVHnAS3FFg0HDaRVrPbkivx2RYCre8UiemD67RsiFFLfn4JhLAin8Vw==", + "dev": true, + "dependencies": { + "lodash": "^4.17.5" + } + }, + "node_modules/webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "dependencies": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "node_modules/webpack-sources/node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "dependencies": { + "webpack-core": "^0.6.8" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/webpack/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "dependencies": { + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/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, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack/node_modules/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, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/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, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "dependencies": { + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack/node_modules/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, + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack/node_modules/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, + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/webpack/node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/terser-webpack-plugin": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", + "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", + "dev": true, + "dependencies": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^4.0.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + }, + "engines": { + "node": ">= 6.9.0" + } + }, + "node_modules/webpack/node_modules/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, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/websocket-driver": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz", + "integrity": "sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY=", + "dev": true, + "dependencies": { + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/when": { + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/when/-/when-3.6.4.tgz", + "integrity": "sha1-RztRfsFZ4rhQBUl6E5g/CVQS404=", + "dev": true + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "optional": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "devOptional": true + }, + "node_modules/wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "optional": true, + "dependencies": { + "string-width": "^1.0.2 || 2" + } + }, + "node_modules/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, + "dependencies": { + "errno": "~0.1.7" + } + }, + "node_modules/worker-plugin": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/worker-plugin/-/worker-plugin-3.2.0.tgz", + "integrity": "sha512-W5nRkw7+HlbsEt3qRP6MczwDDISjiRj2GYt9+bpe8A2La00TmJdwzG5bpdMXhRt1qcWmwAvl1TiKaHRa+XDS9Q==", + "dev": true, + "dependencies": { + "loader-utils": "^1.1.0" + } + }, + "node_modules/wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "devOptional": true, + "dependencies": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "devOptional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrap-ansi/node_modules/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==", + "devOptional": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/wrap-ansi/node_modules/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=", + "devOptional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "devOptional": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "devOptional": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "devOptional": true + }, + "node_modules/ws": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", + "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", + "dev": true, + "dependencies": { + "async-limiter": "~1.0.0" + } + }, + "node_modules/xhr2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/xhr2/-/xhr2-0.1.4.tgz", + "integrity": "sha1-f4dliEdxbbUCYyOBL4GMras4el8=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "optional": true, + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "optional": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/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, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", + "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", + "devOptional": true + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "devOptional": true + }, + "node_modules/yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "devOptional": true, + "dependencies": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "node_modules/yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "devOptional": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "node_modules/yargs-parser/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "devOptional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "devOptional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "devOptional": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/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=", + "devOptional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/yargs/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "devOptional": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "devOptional": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yeast": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", + "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=", + "dev": true + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/zone.js": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.9.1.tgz", + "integrity": "sha512-GkPiJL8jifSrKReKaTZ5jkhrMEgXbXYC+IPo1iquBjayRa0q86w3Dipjn8b415jpitMExe9lV8iTsv8tk3DGag==" + } + }, + "dependencies": { + "@angular-devkit/architect": { + "version": "0.803.29", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.803.29.tgz", + "integrity": "sha512-yHBud/fZHTelX24yjQg5lefZrfIebruoFTGeOwF0JdX8+KiHcTIxS4LOnUTYriasfHarcHRFXBAV/bRm+wv5ow==", + "dev": true, + "requires": { + "@angular-devkit/core": "8.3.29", + "rxjs": "6.4.0" + }, + "dependencies": { + "rxjs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", + "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + } + } + }, + "@angular-devkit/build-angular": { + "version": "0.803.29", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.803.29.tgz", + "integrity": "sha512-XAgfP1gi0rEJ3oVt+8ipvS5RfPNbeK5r2n8Ll2H3xkKjU0p1PN8+S6/0XVBtmMfeQ06SJWEAKFcAYqrxXhVTzw==", + "dev": true, + "requires": { + "@angular-devkit/architect": "0.803.29", + "@angular-devkit/build-optimizer": "0.803.29", + "@angular-devkit/build-webpack": "0.803.29", + "@angular-devkit/core": "8.3.29", + "@babel/core": "7.8.7", + "@babel/preset-env": "7.8.7", + "@ngtools/webpack": "8.3.29", + "ajv": "6.12.3", + "autoprefixer": "9.6.1", + "browserslist": "4.10.0", + "cacache": "12.0.2", + "caniuse-lite": "1.0.30001035", + "circular-dependency-plugin": "5.2.0", + "clean-css": "4.2.1", + "copy-webpack-plugin": "6.0.3", + "core-js": "3.6.4", + "coverage-istanbul-loader": "2.0.3", + "file-loader": "4.2.0", + "find-cache-dir": "3.0.0", + "glob": "7.1.4", + "jest-worker": "24.9.0", + "karma-source-map-support": "1.4.0", + "less": "3.9.0", + "less-loader": "5.0.0", + "license-webpack-plugin": "2.1.2", + "loader-utils": "1.2.3", + "mini-css-extract-plugin": "0.8.0", + "minimatch": "3.0.4", + "open": "6.4.0", + "parse5": "4.0.0", + "postcss": "7.0.17", + "postcss-import": "12.0.1", + "postcss-loader": "3.0.0", + "raw-loader": "3.1.0", + "regenerator-runtime": "0.13.3", + "rxjs": "6.4.0", + "sass": "1.22.9", + "sass-loader": "7.2.0", + "semver": "6.3.0", + "source-map": "0.7.3", + "source-map-loader": "0.2.4", + "source-map-support": "0.5.13", + "speed-measure-webpack-plugin": "1.3.1", + "style-loader": "1.0.0", + "stylus": "0.54.5", + "stylus-loader": "3.0.2", + "terser": "4.6.3", + "terser-webpack-plugin": "3.0.3", + "tree-kill": "1.2.2", + "webpack": "4.39.2", + "webpack-dev-middleware": "3.7.2", + "webpack-dev-server": "3.11.0", + "webpack-merge": "4.2.1", + "webpack-sources": "1.4.3", + "webpack-subresource-integrity": "1.1.0-rc.6", + "worker-plugin": "3.2.0" + }, + "dependencies": { + "ajv": { + "version": "6.12.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", + "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "core-js": { + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.4.tgz", + "integrity": "sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw==", + "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" + } + }, + "rxjs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", + "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "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-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "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 + } + } + } + } + }, + "@angular-devkit/build-optimizer": { + "version": "0.803.29", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.803.29.tgz", + "integrity": "sha512-E/MXtKc3oaP7UvQm0g4ayfH8ImEoQnRWseKD4jjYG6TbTIqfIyHCZRcKIr3svY28hzASbro5IZI6SugG+llvFw==", + "dev": true, + "requires": { + "loader-utils": "1.2.3", + "source-map": "0.7.3", + "tslib": "1.10.0", + "typescript": "3.5.3", + "webpack-sources": "1.4.3" + }, + "dependencies": { + "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 + }, + "tslib": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", + "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", + "dev": true + } + } + }, + "@angular-devkit/build-webpack": { + "version": "0.803.29", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.803.29.tgz", + "integrity": "sha512-3dJ3iEGU6AFT8VFTe72T9uNLobfd18Sq5Hz22UCCYji9K3ZyVc/bn5uXVVX+/Yj91MFtXuhOjLj7Z+XDeNy+OQ==", + "dev": true, + "requires": { + "@angular-devkit/architect": "0.803.29", + "@angular-devkit/core": "8.3.29", + "rxjs": "6.4.0" + }, + "dependencies": { + "rxjs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", + "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + } + } + }, + "@angular-devkit/core": { + "version": "8.3.29", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-8.3.29.tgz", + "integrity": "sha512-4jdja9QPwR6XG14ZSunyyOWT3nE2WtZC5IMDIBZADxujXvhzOU0n4oWpy6/JVHLUAxYNNgzLz+/LQORRWndcPg==", + "dev": true, + "requires": { + "ajv": "6.12.3", + "fast-json-stable-stringify": "2.0.0", + "magic-string": "0.25.3", + "rxjs": "6.4.0", + "source-map": "0.7.3" + }, + "dependencies": { + "ajv": { + "version": "6.12.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", + "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "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 + }, + "rxjs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", + "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "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 + } + } + }, + "@angular-devkit/schematics": { + "version": "8.3.29", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-8.3.29.tgz", + "integrity": "sha512-AFJ9EK0XbcNlO5Dm9vr0OlBo1Nw6AaFXPR+DmHGBdcDDHxqEmYYLWfT+JU/8U2YFIdgrtlwvdtf6UQ3V2jdz1g==", + "dev": true, + "requires": { + "@angular-devkit/core": "8.3.29", + "rxjs": "6.4.0" + }, + "dependencies": { + "rxjs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", + "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + } + } + }, + "@angular/animations": { + "version": "8.2.12", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-8.2.12.tgz", + "integrity": "sha512-QVtZUw5J9c0RcDaJntIoeWVk/q9dhjDFxh+yw/uPl9Z4upWASdsOpZU2lfjqyU0myfg8dnQyZa1+Ce7n/DaClQ==", + "requires": { + "tslib": "^1.9.0" + } + }, + "@angular/cli": { + "version": "8.3.29", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-8.3.29.tgz", + "integrity": "sha512-pW+iU0eKHIae+A1b9W5g8DKefMQcehZ+drGKs4Hryh8G+XGFS00BIWkmh6c1mydWTEhdsFlhdjD/rXCem7MAQQ==", + "dev": true, + "requires": { + "@angular-devkit/architect": "0.803.29", + "@angular-devkit/core": "8.3.29", + "@angular-devkit/schematics": "8.3.29", + "@schematics/angular": "8.3.29", + "@schematics/update": "0.803.29", + "@yarnpkg/lockfile": "1.1.0", + "ansi-colors": "4.1.1", + "debug": "^4.1.1", + "ini": "1.3.5", + "inquirer": "6.5.1", + "npm-package-arg": "6.1.0", + "npm-pick-manifest": "3.0.2", + "open": "6.4.0", + "pacote": "9.5.5", + "read-package-tree": "5.3.1", + "rimraf": "3.0.0", + "semver": "6.3.0", + "symbol-observable": "1.2.0", + "universal-analytics": "^0.4.20", + "uuid": "^3.3.2" + }, + "dependencies": { + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true + }, + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "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 + }, + "rimraf": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.0.tgz", + "integrity": "sha512-NDGVxTsjqfunkds7CqsOiEnxln4Bo7Nddl3XhS4pXg5OzwkLqJ971ZVAAnB+DDLnF76N+VnDEiBHaVV8I06SUg==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@angular/common": { + "version": "8.2.12", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-8.2.12.tgz", + "integrity": "sha512-BNz1lo+PP+lwIX3sErRGBRnkMzT5yT8CJ5o/M29AanCdcx9dpoJG2WKgpIgw8UBcj9QlP0CkSmzPtUNtcNMthA==", + "requires": { + "tslib": "^1.9.0" + } + }, + "@angular/compiler": { + "version": "8.2.12", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-8.2.12.tgz", + "integrity": "sha512-V5mDWioGmSZ4cJJ2THo8qHYKwj3sUI7dpJ0oab2Al0FQAN8JCimWO6AQKRtjmnr78ZkMy9Xe/KK6ebl40ewL5Q==", + "requires": { + "tslib": "^1.9.0" + } + }, + "@angular/compiler-cli": { + "version": "8.2.14", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-8.2.14.tgz", + "integrity": "sha512-XDrTyrlIZM+0NquVT+Kbg5bn48AaWFT+B3bAT288PENrTdkuxuF9AhjFRZj8jnMdmaE4O2rioEkXBtl6z3zptA==", + "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", + "source-map": "^0.6.1", + "tslib": "^1.9.0", + "yargs": "13.1.0" + }, + "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 + }, + "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" + }, + "dependencies": { + "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" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true + }, + "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" + } + } + } + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "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" + } + }, + "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": { + "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" + } + } + } + }, + "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" + } + } + } + }, + "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" + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true, + "requires": { + "nan": "^2.12.1" + } + }, + "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" + } + } + } + }, + "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-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 + }, + "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" + } + } + } + }, + "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" + } + }, + "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" + } + }, + "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": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.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 + }, + "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" + } + } + } + }, + "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" + } + }, + "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" + } + }, + "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" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "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" + } + }, + "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" + } + }, + "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" + } + } + } + }, + "yargs": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.1.0.tgz", + "integrity": "sha512-1UhJbXfzHiPqkfXNHYhiz79qM/kZqjTE8yGlEjZa85Q+3+OwcV6NRkV7XOV1W2Eom2bzILeUn55pQYffjVOLAg==", + "dev": true, + "requires": { + "cliui": "^4.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "os-locale": "^3.1.0", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.0.0" + } + } + } + }, + "@angular/core": { + "version": "8.2.12", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-8.2.12.tgz", + "integrity": "sha512-wEFwhHCuuXynXAMeA1G+0KIYY0jqXYs7I8p+GO+ufKoUmzWHFTvtMJ6nvKgy+LmZTByO2gf9oVAAlRodNb8ttQ==", + "requires": { + "tslib": "^1.9.0" + } + }, + "@angular/forms": { + "version": "8.2.12", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-8.2.12.tgz", + "integrity": "sha512-y1UObndCGbTYwLSzUWzCiX7th+mb4n712asApooGmfmIQmgTyHbKxYUJ9Ep1pgd0pqLBBnK249MQLH15NDpbyQ==", + "requires": { + "tslib": "^1.9.0" + } + }, + "@angular/language-service": { + "version": "8.2.14", + "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-8.2.14.tgz", + "integrity": "sha512-7EhN9JJbAJcH2xCa+rIOmekjiEuB0qwPdHuD5qn/wwMfRzMZo+Db4hHbR9KHrLH6H82PTwYKye/LLpDaZqoHOA==", + "dev": true + }, + "@angular/platform-browser": { + "version": "8.2.12", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-8.2.12.tgz", + "integrity": "sha512-VBvMjmFJapZ2pFlmxZiHtfPwbHp79RRi5mrdMhETjKMaLaC2tAR/99ijCpx2urDMqb/VDm7YHOtoLEpBFVDulg==", + "requires": { + "tslib": "^1.9.0" + } + }, + "@angular/platform-browser-dynamic": { + "version": "8.2.12", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-8.2.12.tgz", + "integrity": "sha512-O4krb+9tj028JOQHPgLk/87lyUlHt8dpNxzuYCT0G6kEmknjpyZBaxhvDPygGjGHXV3LDqlYVH+bh8ygJUhwmw==", + "requires": { + "tslib": "^1.9.0" + } + }, + "@angular/platform-server": { + "version": "8.2.12", + "resolved": "https://registry.npmjs.org/@angular/platform-server/-/platform-server-8.2.12.tgz", + "integrity": "sha512-NQvfW3YnM2FBdNpfIAKBnGjit/ZimtWEt60xskoQ+GcusJIbsB6m78XTYZru1S7CBHW3TeUztKMNZmI2MjU6Cw==", + "requires": { + "domino": "^2.1.2", + "tslib": "^1.9.0", + "xhr2": "^0.1.4" + } + }, + "@angular/router": { + "version": "8.2.12", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-8.2.12.tgz", + "integrity": "sha512-mq1FethFpYosSVzChstMpxZlL+oUFeaA+FrzZQL7zJP/mm61yFkkhoYGVG6pG0NWSzpJE4NY6YvGCvHgN4ZECw==", + "requires": { + "tslib": "^1.9.0" + } + }, + "@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "devOptional": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "@babel/compat-data": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.12.7.tgz", + "integrity": "sha512-YaxPMGs/XIWtYqrdEOZOCPsVWfEoriXopnsz3/i7apYPXQ3698UFhS6dVT1KN5qOsWmVgw/FOrmQgpRaZayGsw==", + "dev": true + }, + "@babel/core": { + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.7.tgz", + "integrity": "sha512-rBlqF3Yko9cynC5CCFy6+K/w2N+Sq/ff2BPy+Krp7rHlABIr5epbA7OxVeKoMHB39LZOp1UY5SuLjy6uWi35yA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.7", + "@babel/helpers": "^7.8.4", + "@babel/parser": "^7.8.7", + "@babel/template": "^7.8.6", + "@babel/traverse": "^7.8.6", + "@babel/types": "^7.8.7", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.0", + "lodash": "^4.17.13", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "json5": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "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 + }, + "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/generator": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.11.tgz", + "integrity": "sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.11", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "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/helper-annotate-as-pure": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.10.tgz", + "integrity": "sha512-XplmVbC1n+KY6jL8/fgLVXXUauDIB+lD5+GsQEh6F6GBF1dq1qy4DP4yXWzDKcoqXB3X58t61e85Fitoww4JVQ==", + "dev": true, + "requires": { + "@babel/types": "^7.12.10" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz", + "integrity": "sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==", + "dev": true, + "requires": { + "@babel/helper-explode-assignable-expression": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.5.tgz", + "integrity": "sha512-+qH6NrscMolUlzOYngSBMIOQpKUGPPsc61Bu5W10mg84LxZ7cmvnBHzARKbDoFxVvqqAbj6Tg6N7bSrWSPXMyw==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.12.5", + "@babel/helper-validator-option": "^7.12.1", + "browserslist": "^4.14.5", + "semver": "^5.5.0" + }, + "dependencies": { + "browserslist": { + "version": "4.16.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.1.tgz", + "integrity": "sha512-UXhDrwqsNcpTYJBTZsbGATDxZbiVDsx6UjpmRUmtnP10pr8wAYr5LgFoEFw9ixriQH2mv/NX2SfGzE/o8GndLA==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001173", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.634", + "escalade": "^3.1.1", + "node-releases": "^1.1.69" + } + }, + "caniuse-lite": { + "version": "1.0.30001174", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001174.tgz", + "integrity": "sha512-tqClL/4ThQq6cfFXH3oJL4rifFBeM6gTkphjao5kgwMaW9yn0tKgQLAEfKzDwj6HQWCB/aWo8kTFlSvIN8geEA==", + "dev": true + } + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.7.tgz", + "integrity": "sha512-idnutvQPdpbduutvi3JVfEgcVIHooQnhvhx0Nk9isOINOIGYkZea1Pk2JlJRiUnMefrlvr0vkByATBY/mB4vjQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "regexpu-core": "^4.7.1" + } + }, + "@babel/helper-define-map": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz", + "integrity": "sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/types": "^7.10.5", + "lodash": "^4.17.19" + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.1.tgz", + "integrity": "sha512-dmUwH8XmlrUpVqgtZ737tK88v07l840z9j3OEhCLwKTkjlvKpfqXVIZ0wpK3aeOxspwGrf/5AP5qLx4rO3w5rA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.1" + } + }, + "@babel/helper-function-name": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.11.tgz", + "integrity": "sha512-AtQKjtYNolKNi6nNNVLQ27CP6D9oFR6bq/HPYSizlzbp7uC1M59XJe8L+0uXjbIaZaUJF99ruHqVGiKXU/7ybA==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.12.10", + "@babel/template": "^7.12.7", + "@babel/types": "^7.12.11" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz", + "integrity": "sha512-mm0n5BPjR06wh9mPQaDdXWDoll/j5UpCAPl1x8fS71GHm7HA6Ua2V4ylG1Ju8lvcTOietbPNNPaSilKj+pj+Ag==", + "dev": true, + "requires": { + "@babel/types": "^7.12.10" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz", + "integrity": "sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz", + "integrity": "sha512-DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw==", + "dev": true, + "requires": { + "@babel/types": "^7.12.7" + } + }, + "@babel/helper-module-imports": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz", + "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.5" + } + }, + "@babel/helper-module-transforms": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz", + "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-simple-access": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/helper-validator-identifier": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", + "lodash": "^4.17.19" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.10.tgz", + "integrity": "sha512-4tpbU0SrSTjjt65UMWSrUOPZTsgvPgGG4S8QSTNHacKzpS51IVWGDj0yCwyeZND/i+LSN2g/O63jEXEWm49sYQ==", + "dev": true, + "requires": { + "@babel/types": "^7.12.10" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.1.tgz", + "integrity": "sha512-9d0KQCRM8clMPcDwo8SevNs+/9a8yWVVmaE80FGJcEP8N1qToREmWEGnBn8BUlJhYRFz6fqxeRL1sl5Ogsed7A==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-wrap-function": "^7.10.4", + "@babel/types": "^7.12.1" + } + }, + "@babel/helper-replace-supers": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.11.tgz", + "integrity": "sha512-q+w1cqmhL7R0FNzth/PLLp2N+scXEK/L2AHbXUyydxp828F4FEa5WcVoqui9vFRiHDQErj9Zof8azP32uGVTRA==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.12.7", + "@babel/helper-optimise-call-expression": "^7.12.10", + "@babel/traverse": "^7.12.10", + "@babel/types": "^7.12.11" + } + }, + "@babel/helper-simple-access": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz", + "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.1" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz", + "integrity": "sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.1" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.11.tgz", + "integrity": "sha512-LsIVN8j48gHgwzfocYUSkO/hjYAOJqlpJEc7tGXcIm4cubjVUf8LGW6eWRyxEu7gA25q02p0rQUWoCI33HNS5g==", + "dev": true, + "requires": { + "@babel/types": "^7.12.11" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "devOptional": true + }, + "@babel/helper-validator-option": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.11.tgz", + "integrity": "sha512-TBFCyj939mFSdeX7U7DDj32WtzYY7fDcalgq8v3fBZMNOJQNn7nOYzMaUCiPxPYfCup69mtIpqlKgMZLvQ8Xhw==", + "dev": true + }, + "@babel/helper-wrap-function": { + "version": "7.12.3", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.12.3.tgz", + "integrity": "sha512-Cvb8IuJDln3rs6tzjW3Y8UeelAOdnpB8xtQ4sme2MSZ9wOxrbThporC0y/EtE16VAtoyEfLM404Xr1e0OOp+ow==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helpers": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz", + "integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==", + "dev": true, + "requires": { + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.5", + "@babel/types": "^7.12.5" + } + }, + "@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "devOptional": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "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==", + "devOptional": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "devOptional": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "devOptional": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/parser": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.11.tgz", + "integrity": "sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg==", + "dev": true + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.12.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.12.tgz", + "integrity": "sha512-nrz9y0a4xmUrRq51bYkWJIO5SBZyG2ys2qinHsN0zHDHVsUaModrkpyWWWXfGqYQmOL3x9sQIcTNN/pBGpo09A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.12.1", + "@babel/plugin-syntax-async-generators": "^7.8.0" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.1.tgz", + "integrity": "sha512-a4rhUSZFuq5W8/OO8H7BL5zspjnc1FLd9hlOxIK/f7qG4a0qsqk8uvF/ywgBA8/OmjsapjpvaEOYItfGG1qIvQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-dynamic-import": "^7.8.0" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.1.tgz", + "integrity": "sha512-GoLDUi6U9ZLzlSda2Df++VSqDJg3CG+dR0+iWsv6XRw1rEq+zwt4DirM9yrxW6XWaTpmai1cWJLMfM8qQJf+yw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.0" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz", + "integrity": "sha512-nZY0ESiaQDI1y96+jk6VxMOaL4LPo/QDHBqL+SF3/vl6dHkTwHlOI8L4ZwuRBHgakRBw5zsVylel7QPbbGuYgg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz", + "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.12.1" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.1.tgz", + "integrity": "sha512-hFvIjgprh9mMw5v42sJWLI1lzU5L2sznP805zeT6rySVRA0Y18StRhDqhSxlap0oVgItRsB6WSROp4YnJTJz0g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.7.tgz", + "integrity": "sha512-4ovylXZ0PWmwoOvhU2vhnzVNnm88/Sm9nx7V8BPgMvAzn5zDou3/Awy0EjglyubVHasJj+XCEkr/r1X3P5elCA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", + "@babel/plugin-syntax-optional-chaining": "^7.8.0" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.1.tgz", + "integrity": "sha512-MYq+l+PvHuw/rKUz1at/vb6nCnQ2gmJBNaM62z0OgH7B2W1D9pvkpYtlti9bGtizNIU1K3zm4bZF9F91efVY0w==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz", + "integrity": "sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.1.tgz", + "integrity": "sha512-5QB50qyN44fzzz4/qxDPQMBCTHgxg3n0xRBLJUmBlLoU/sFvxVWGZF/ZUfMVDQuJUKXaBhbupxIzIfZ6Fwk/0A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz", + "integrity": "sha512-SDtqoEcarK1DFlRJ1hHRY5HvJUj5kX4qmtpMAm2QnhOlyuMC4TMdCRgW6WXpv93rZeYNeLP22y8Aq2dbcDRM1A==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.12.1" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.1.tgz", + "integrity": "sha512-5OpxfuYnSgPalRpo8EWGPzIYf0lHBWORCkj5M0oLBwHdlux9Ri36QqGW3/LR13RSVOAoUUMzoPI/jpE4ABcHoA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.12.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.12.tgz", + "integrity": "sha512-VOEPQ/ExOVqbukuP7BYJtI5ZxxsmegTwzZ04j1aF0dkSypGo9XpDHuOrABsJu+ie+penpSJheDJ11x1BEZNiyQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.1.tgz", + "integrity": "sha512-/74xkA7bVdzQTBeSUhLLJgYIcxw/dpEpCdRDiHgPJ3Mv6uC11UhjpOhl72CgqbBCmt1qtssCyB2xnJm1+PFjog==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-define-map": "^7.10.4", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.10.4", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.1.tgz", + "integrity": "sha512-vVUOYpPWB7BkgUWPo4C44mUQHpTZXakEqFjbv8rQMg7TC6S6ZhGZ3otQcRH6u7+adSlE5i0sp63eMC/XGffrzg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.1.tgz", + "integrity": "sha512-fRMYFKuzi/rSiYb2uRLiUENJOKq4Gnl+6qOv5f8z0TZXg3llUwUhsNNwrwaT/6dUhJTzNpBr+CUvEWBtfNY1cw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.1.tgz", + "integrity": "sha512-B2pXeRKoLszfEW7J4Hg9LoFaWEbr/kzo3teWHmtFCszjRNa/b40f9mfeqZsIDLLt/FjwQ6pz/Gdlwy85xNckBA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.1.tgz", + "integrity": "sha512-iRght0T0HztAb/CazveUpUQrZY+aGKKaWXMJ4uf9YJtqxSUe09j3wteztCUDRHs+SRAL7yMuFqUsLoAKKzgXjw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.1.tgz", + "integrity": "sha512-7tqwy2bv48q+c1EHbXK0Zx3KXd2RVQp6OC7PbwFNt/dPTAV3Lu5sWtWuAj8owr5wqtWnqHfl2/mJlUmqkChKug==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.1.tgz", + "integrity": "sha512-Zaeq10naAsuHo7heQvyV0ptj4dlZJwZgNAtBYBnu5nNKJoW62m0zKcIEyVECrUKErkUkg6ajMy4ZfnVZciSBhg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.1.tgz", + "integrity": "sha512-JF3UgJUILoFrFMEnOJLJkRHSk6LUSXLmEFsA23aR2O5CSLUxbeUX1IZ1YQ7Sn0aXb601Ncwjx73a+FVqgcljVw==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.1.tgz", + "integrity": "sha512-+PxVGA+2Ag6uGgL0A5f+9rklOnnMccwEBzwYFL3EUaKuiyVnUipyXncFcfjSkbimLrODoqki1U9XxZzTvfN7IQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.1.tgz", + "integrity": "sha512-1sxePl6z9ad0gFMB9KqmYofk34flq62aqMt9NqliS/7hPEpURUCMbyHXrMPlo282iY7nAvUB1aQd5mg79UD9Jg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.1.tgz", + "integrity": "sha512-tDW8hMkzad5oDtzsB70HIQQRBiTKrhfgwC/KkJeGsaNFTdWhKNt/BiE8c5yj19XiGyrxpbkOfH87qkNg1YGlOQ==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.1.tgz", + "integrity": "sha512-dY789wq6l0uLY8py9c1B48V8mVL5gZh/+PQ5ZPrylPYsnAvnEMjqsUXkuoDVPeVK+0VyGar+D08107LzDQ6pag==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-simple-access": "^7.12.1", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.1.tgz", + "integrity": "sha512-Hn7cVvOavVh8yvW6fLwveFqSnd7rbQN3zJvoPNyNaQSvgfKmDBO9U1YL9+PCXGRlZD9tNdWTy5ACKqMuzyn32Q==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.10.4", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-validator-identifier": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.1.tgz", + "integrity": "sha512-aEIubCS0KHKM0zUos5fIoQm+AZUMt1ZvMpqz0/H5qAQ7vWylr9+PLYurT+Ic7ID/bKLd4q8hDovaG3Zch2uz5Q==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.1.tgz", + "integrity": "sha512-tB43uQ62RHcoDp9v2Nsf+dSM8sbNodbEicbQNA53zHz8pWUhsgHSJCGpt7daXxRydjb0KnfmB+ChXOv3oADp1Q==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.1.tgz", + "integrity": "sha512-+eW/VLcUL5L9IvJH7rT1sT0CzkdUTvPrXC2PXTn/7z7tXLBuKvezYbGdxD5WMRoyvyaujOq2fWoKl869heKjhw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.1.tgz", + "integrity": "sha512-AvypiGJH9hsquNUn+RXVcBdeE3KHPZexWRdimhuV59cSoOt5kFBmqlByorAeUlGG2CJWd0U+4ZtNKga/TB0cAw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.1.tgz", + "integrity": "sha512-xq9C5EQhdPK23ZeCdMxl8bbRnAgHFrw5EOC3KJUsSylZqdkCaFEXxGSBuTSObOpiiHHNyb82es8M1QYgfQGfNg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.1.tgz", + "integrity": "sha512-6MTCR/mZ1MQS+AwZLplX4cEySjCpnIF26ToWo942nqn8hXSm7McaHQNeGx/pt7suI1TWOWMfa/NgBhiqSnX0cQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.1.tgz", + "integrity": "sha512-gYrHqs5itw6i4PflFX3OdBPMQdPbF4bj2REIUxlMRUFk0/ZOAIpDFuViuxPjUL7YC8UPnf+XG7/utJvqXdPKng==", + "dev": true, + "requires": { + "regenerator-transform": "^0.14.2" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.1.tgz", + "integrity": "sha512-pOnUfhyPKvZpVyBHhSBoX8vfA09b7r00Pmm1sH+29ae2hMTKVmSp4Ztsr8KBKjLjx17H0eJqaRC3bR2iThM54A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.1.tgz", + "integrity": "sha512-GFZS3c/MhX1OusqB1MZ1ct2xRzX5ppQh2JU1h2Pnfk88HtFTM+TWQqJNfwkmxtPQtb/s1tk87oENfXJlx7rSDw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.1.tgz", + "integrity": "sha512-vuLp8CP0BE18zVYjsEBZ5xoCecMK6LBMMxYzJnh01rxQRvhNhH1csMMmBfNo5tGpGO+NhdSNW2mzIvBu3K1fng==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.7.tgz", + "integrity": "sha512-VEiqZL5N/QvDbdjfYQBhruN0HYjSPjC4XkeqW4ny/jNtH9gcbgaqBIXYEZCNnESMAGs0/K/R7oFGMhOyu/eIxg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.1.tgz", + "integrity": "sha512-b4Zx3KHi+taXB1dVRBhVJtEPi9h1THCeKmae2qP0YdUHIFhVjtpqqNfxeVAa1xeHVhAy4SbHxEwx5cltAu5apw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.10.tgz", + "integrity": "sha512-JQ6H8Rnsogh//ijxspCjc21YPd3VLVoYtAwv3zQmqAt8YGYUtdo5usNhdl4b9/Vir2kPFZl6n1h0PfUz4hJhaA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.1.tgz", + "integrity": "sha512-SqH4ClNngh/zGwHZOOQMTD+e8FGWexILV+ePMyiDJttAWRh5dhDL8rcl5lSgU3Huiq6Zn6pWTMvdPAb21Dwdyg==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/preset-env": { + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.8.7.tgz", + "integrity": "sha512-BYftCVOdAYJk5ASsznKAUl53EMhfBbr8CJ1X+AJLfGPscQkwJFiaV/Wn9DPH/7fzm2v6iRYJKYHSqyynTGw0nw==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.8.6", + "@babel/helper-compilation-targets": "^7.8.7", + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-proposal-async-generator-functions": "^7.8.3", + "@babel/plugin-proposal-dynamic-import": "^7.8.3", + "@babel/plugin-proposal-json-strings": "^7.8.3", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-proposal-object-rest-spread": "^7.8.3", + "@babel/plugin-proposal-optional-catch-binding": "^7.8.3", + "@babel/plugin-proposal-optional-chaining": "^7.8.3", + "@babel/plugin-proposal-unicode-property-regex": "^7.8.3", + "@babel/plugin-syntax-async-generators": "^7.8.0", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.0", + "@babel/plugin-syntax-top-level-await": "^7.8.3", + "@babel/plugin-transform-arrow-functions": "^7.8.3", + "@babel/plugin-transform-async-to-generator": "^7.8.3", + "@babel/plugin-transform-block-scoped-functions": "^7.8.3", + "@babel/plugin-transform-block-scoping": "^7.8.3", + "@babel/plugin-transform-classes": "^7.8.6", + "@babel/plugin-transform-computed-properties": "^7.8.3", + "@babel/plugin-transform-destructuring": "^7.8.3", + "@babel/plugin-transform-dotall-regex": "^7.8.3", + "@babel/plugin-transform-duplicate-keys": "^7.8.3", + "@babel/plugin-transform-exponentiation-operator": "^7.8.3", + "@babel/plugin-transform-for-of": "^7.8.6", + "@babel/plugin-transform-function-name": "^7.8.3", + "@babel/plugin-transform-literals": "^7.8.3", + "@babel/plugin-transform-member-expression-literals": "^7.8.3", + "@babel/plugin-transform-modules-amd": "^7.8.3", + "@babel/plugin-transform-modules-commonjs": "^7.8.3", + "@babel/plugin-transform-modules-systemjs": "^7.8.3", + "@babel/plugin-transform-modules-umd": "^7.8.3", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.8.3", + "@babel/plugin-transform-new-target": "^7.8.3", + "@babel/plugin-transform-object-super": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.8.7", + "@babel/plugin-transform-property-literals": "^7.8.3", + "@babel/plugin-transform-regenerator": "^7.8.7", + "@babel/plugin-transform-reserved-words": "^7.8.3", + "@babel/plugin-transform-shorthand-properties": "^7.8.3", + "@babel/plugin-transform-spread": "^7.8.3", + "@babel/plugin-transform-sticky-regex": "^7.8.3", + "@babel/plugin-transform-template-literals": "^7.8.3", + "@babel/plugin-transform-typeof-symbol": "^7.8.4", + "@babel/plugin-transform-unicode-regex": "^7.8.3", + "@babel/types": "^7.8.7", + "browserslist": "^4.8.5", + "core-js-compat": "^3.6.2", + "invariant": "^2.2.2", + "levenary": "^1.1.1", + "semver": "^5.5.0" + } + }, + "@babel/runtime": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz", + "integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", + "dev": true + } + } + }, + "@babel/template": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz", + "integrity": "sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.12.7", + "@babel/types": "^7.12.7" + } + }, + "@babel/traverse": { + "version": "7.12.12", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.12.tgz", + "integrity": "sha512-s88i0X0lPy45RrLM8b9mz8RPH5FqO9G9p7ti59cToE44xFm1Q+Pjh5Gq4SXBbtb88X7Uy7pexeqRIQDDMNkL0w==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.11", + "@babel/generator": "^7.12.11", + "@babel/helper-function-name": "^7.12.11", + "@babel/helper-split-export-declaration": "^7.12.11", + "@babel/parser": "^7.12.11", + "@babel/types": "^7.12.12", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "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.12.12", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.12.tgz", + "integrity": "sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + }, + "@istanbuljs/schema": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", + "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", + "dev": true + }, + "@ngtools/webpack": { + "version": "8.3.29", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-8.3.29.tgz", + "integrity": "sha512-7uB7dlAHR7RmxcQCYidnWRR1tFRJq7CzI+MM3725ibAvi4HnM5viC/HnKRTK7V+3iS1C0l0u0Gyo/769NsUDTQ==", + "dev": true, + "requires": { + "@angular-devkit/core": "8.3.29", + "enhanced-resolve": "4.1.0", + "rxjs": "6.4.0", + "tree-kill": "1.2.2", + "webpack-sources": "1.4.3" + }, + "dependencies": { + "rxjs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", + "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + } + } + }, + "@nguniversal/module-map-ngfactory-loader": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@nguniversal/module-map-ngfactory-loader/-/module-map-ngfactory-loader-8.1.1.tgz", + "integrity": "sha512-vXFydMTPFRfGjmtdwtbNhl4Pmfg580Yit0vzlTeb3ZC1v+TJKR2GzaWYUileWxS60FrgNF4/tkOEL5ouDDx6Bw==" + }, + "@nodelib/fs.scandir": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", + "integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.4", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz", + "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz", + "integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.4", + "fastq": "^1.6.0" + } + }, + "@npmcli/move-file": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.0.1.tgz", + "integrity": "sha512-Uv6h1sT+0DrblvIrolFtbvM1FgWm+/sy4B3pvLp67Zys+thcukzS5ekn7HsZFGpWP4Q3fYJCljbWQE/XivMRLw==", + "dev": true, + "requires": { + "mkdirp": "^1.0.4" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + } + } + }, + "@schematics/angular": { + "version": "8.3.29", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-8.3.29.tgz", + "integrity": "sha512-If+UhCsQzCgnQymiiF8dQRoic34+RgJ6rV0n4k7Tm4N2xNYJOG7ajjzKM7PIeafsF50FKnFP8dqaNGxCMyq5Ew==", + "dev": true, + "requires": { + "@angular-devkit/core": "8.3.29", + "@angular-devkit/schematics": "8.3.29" + } + }, + "@schematics/update": { + "version": "0.803.29", + "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.803.29.tgz", + "integrity": "sha512-Syf6h6DYeu1WU9aLihMwIgVASpcHCxUYqhZyHfQABiK8NkdlZ+KAp4cOxihsZyDqIJNLWON+0/FLPAQF3BXh5Q==", + "dev": true, + "requires": { + "@angular-devkit/core": "8.3.29", + "@angular-devkit/schematics": "8.3.29", + "@yarnpkg/lockfile": "1.1.0", + "ini": "1.3.5", + "pacote": "9.5.5", + "rxjs": "6.4.0", + "semver": "6.3.0", + "semver-intersect": "1.4.0" + }, + "dependencies": { + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true + }, + "rxjs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", + "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@types/glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", + "dev": true, + "requires": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "@types/jasmine": { + "version": "3.4.6", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.4.6.tgz", + "integrity": "sha512-hpQHs+lmZ0uuCrGyqypdI1Ho7jRFolOBT6OkNdZPFziLSSEKvWu+VxWU6bGdNEA/hoV4jV8pdDeNx8EWlmfNAw==", + "dev": true + }, + "@types/jasminewd2": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@types/jasminewd2/-/jasminewd2-2.0.8.tgz", + "integrity": "sha512-d9p31r7Nxk0ZH0U39PTH0hiDlJ+qNVGjlt1ucOoTUptxb2v+Y5VMnsxfwN+i3hK4yQnqBi3FMmoMFcd1JHDxdg==", + "dev": true, + "requires": { + "@types/jasmine": "*" + } + }, + "@types/json-schema": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz", + "integrity": "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==", + "dev": true + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "12.11.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.11.7.tgz", + "integrity": "sha512-JNbGaHFCLwgHn/iCckiGSOZ1XYHsKFwREtzPwSGCVld1SGhOlmZw2D4ZI94HQCrBHbADzW9m4LER/8olJTRGHA==", + "dev": true + }, + "@types/q": { + "version": "0.0.32", + "resolved": "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz", + "integrity": "sha1-vShOV8hPEyXacCur/IKlMoGQwMU=", + "optional": true + }, + "@types/selenium-webdriver": { + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.17.tgz", + "integrity": "sha512-tGomyEuzSC1H28y2zlW6XPCaDaXFaD6soTdb4GNdmte2qfHtrKqhy0ZFs4r/1hpazCfEZqeTSRLvSasmEx89uw==", + "optional": 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.8", + "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-0.1.8.tgz", + "integrity": "sha512-JHB2/xZlXOjzjBB6fMOpH1eQAfsrpqVVIbneE0Rok16WXwFaznaI5vfg75U5WgGJm7V9W1c4xeRQDjX/zwvghA==", + "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.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.8.5.tgz", + "integrity": "sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ==", + "dev": true, + "requires": { + "@webassemblyjs/helper-module-context": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/wast-parser": "1.8.5" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz", + "integrity": "sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ==", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz", + "integrity": "sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz", + "integrity": "sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q==", + "dev": true + }, + "@webassemblyjs/helper-code-frame": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz", + "integrity": "sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ==", + "dev": true, + "requires": { + "@webassemblyjs/wast-printer": "1.8.5" + } + }, + "@webassemblyjs/helper-fsm": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz", + "integrity": "sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow==", + "dev": true + }, + "@webassemblyjs/helper-module-context": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz", + "integrity": "sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "mamacro": "^0.0.3" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz", + "integrity": "sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz", + "integrity": "sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-buffer": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/wasm-gen": "1.8.5" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz", + "integrity": "sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g==", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.8.5.tgz", + "integrity": "sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A==", + "dev": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.8.5.tgz", + "integrity": "sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz", + "integrity": "sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-buffer": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/helper-wasm-section": "1.8.5", + "@webassemblyjs/wasm-gen": "1.8.5", + "@webassemblyjs/wasm-opt": "1.8.5", + "@webassemblyjs/wasm-parser": "1.8.5", + "@webassemblyjs/wast-printer": "1.8.5" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz", + "integrity": "sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/ieee754": "1.8.5", + "@webassemblyjs/leb128": "1.8.5", + "@webassemblyjs/utf8": "1.8.5" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz", + "integrity": "sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-buffer": "1.8.5", + "@webassemblyjs/wasm-gen": "1.8.5", + "@webassemblyjs/wasm-parser": "1.8.5" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz", + "integrity": "sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-api-error": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/ieee754": "1.8.5", + "@webassemblyjs/leb128": "1.8.5", + "@webassemblyjs/utf8": "1.8.5" + } + }, + "@webassemblyjs/wast-parser": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz", + "integrity": "sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/floating-point-hex-parser": "1.8.5", + "@webassemblyjs/helper-api-error": "1.8.5", + "@webassemblyjs/helper-code-frame": "1.8.5", + "@webassemblyjs/helper-fsm": "1.8.5", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz", + "integrity": "sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/wast-parser": "1.8.5", + "@xtuc/long": "4.2.2" + } + }, + "@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.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "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 + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "optional": true + }, + "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" + } + }, + "acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "dev": true + }, + "adm-zip": { + "version": "0.4.16", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", + "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", + "optional": 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.3.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", + "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", + "devOptional": 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" + } + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "dependencies": { + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + } + } + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "devOptional": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-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.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "devOptional": 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": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "dev": true, + "requires": { + "type-fest": "^0.11.0" + } + }, + "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=", + "devOptional": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "optional": true + }, + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "app-root-path": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-2.2.1.tgz", + "integrity": "sha512-91IFKeKk7FjfmezPKkwtaRvSpnUc4gDwPAjA1YZ9Gn0q0PPeW+vbeUsZuyDwjI7+QTHhcLen2v25fi/AmhvbJA==", + "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==", + "devOptional": 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==", + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "optional": true + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "devOptional": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "aria-query": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-3.0.0.tgz", + "integrity": "sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w=", + "dev": true, + "requires": { + "ast-types-flow": "0.0.7", + "commander": "^2.11.0" + } + }, + "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=", + "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-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "devOptional": 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=", + "devOptional": 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=", + "optional": true + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "dev": true + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "devOptional": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "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=", + "devOptional": 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 + }, + "ast-types-flow": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", + "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=", + "dev": true + }, + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "dev": true + }, + "async-foreach": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", + "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", + "optional": true + }, + "async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "devOptional": 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.6.1", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.6.1.tgz", + "integrity": "sha512-aVo5WxR3VyvyJxcJC3h4FKfwCQvQWb1tSI5VHNibddCVWrcD1NvlxEweg3TSgiPztMnWfjpy2FURKA2kvDE+Tw==", + "dev": true, + "requires": { + "browserslist": "^4.6.3", + "caniuse-lite": "^1.0.30000980", + "chalk": "^2.4.2", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^7.0.17", + "postcss-value-parser": "^4.0.0" + }, + "dependencies": { + "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" + } + }, + "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" + } + }, + "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" + } + } + } + }, + "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=", + "devOptional": true + }, + "aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", + "devOptional": true + }, + "axobject-query": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.0.2.tgz", + "integrity": "sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww==", + "dev": true, + "requires": { + "ast-types-flow": "0.0.7" + } + }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dev": true, + "requires": { + "object.assign": "^4.1.0" + } + }, + "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=", + "devOptional": 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.4", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz", + "integrity": "sha1-mBjHngWbE1X5fgQooBfIOOkLqBI=", + "dev": true + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", + "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=", + "devOptional": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "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": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "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 + }, + "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==", + "optional": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "bn.js": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz", + "integrity": "sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==", + "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" + }, + "dependencies": { + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "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" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "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 + } + } + }, + "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" + } + }, + "bootstrap": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.6.0.tgz", + "integrity": "sha512-Io55IuQY3kydzHtbGvQya3H+KorS/M9rSNyfCGCg9WZ4pyT/lCxIlpJgG1GXW/PswzC84Tr2fBYi+7+jFVQQBw==", + "requires": {} + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "devOptional": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "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.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "dev": true, + "requires": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "dev": true, + "requires": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "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.10.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.10.0.tgz", + "integrity": "sha512-TpfK0TDgv71dzuTsEAlQiHeWQ/tiPqgNZVdv046fvNtBZrjbv2O3TsWCDU0AWGJJKCF/KsjNdLzR9hXOsh/CfA==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001035", + "electron-to-chromium": "^1.3.378", + "node-releases": "^1.1.52", + "pkg-up": "^3.1.0" + } + }, + "browserstack": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.6.1.tgz", + "integrity": "sha512-GxtFjpIaKdbAyzHfFDKixKO8IBT7wR3NjbzrGc78nNs/Ciys9wU3/nBtsqsWv5nDSrdI5tz0peKuzCPuNXNUiw==", + "optional": true, + "requires": { + "https-proxy-agent": "^2.2.1" + } + }, + "buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "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==", + "devOptional": 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=", + "optional": 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": "12.0.2", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.2.tgz", + "integrity": "sha512-ifKgxH2CKhJEg6tNdAwziu6Q33EvuG26tYcda6PT3WKisZcYDXsnEdnRv67Po3yCzFfaSoMjGZzJyD2c3DT1dg==", + "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", + "infer-owner": "^1.0.3", + "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": { + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "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" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } + }, + "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" + } + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "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" + } + }, + "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=", + "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=", + "optional": true, + "requires": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + } + }, + "caniuse-lite": { + "version": "1.0.30001035", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001035.tgz", + "integrity": "sha512-C1ZxgkuA4/bUEdMbU5WrGY4+UhMFFiXrgNAfxiMIqWgFTWfv/xsZCS2xEHT2LMq7xAZfuAnu6mcqyDl0ZR6wLQ==", + "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=", + "devOptional": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "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" + } + }, + "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": "3.5.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.0.tgz", + "integrity": "sha512-JgQM9JS92ZbFR4P90EvmzNpSGhpPBGBSj10PILeDyYFwp4h2/D9OM03wsJ4zW1fEp4ka2DGrnUeD7FuvQ2aZ2Q==", + "dev": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.3.1", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + } + }, + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "devOptional": 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.2.0", + "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.2.0.tgz", + "integrity": "sha512-7p4Kn/gffhQaavNfyDFg7LS5S/UT1JAjyGd4UqR2+jzoYF02eDkj0Ec3+48TsIa4zghjLY87nQHIh/ecK9qLdw==", + "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 + } + } + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-width": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", + "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", + "dev": true + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "devOptional": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.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==", + "devOptional": 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=", + "devOptional": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "devOptional": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.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==", + "devOptional": true, + "requires": { + "ansi-regex": "^4.1.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": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + } + }, + "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=", + "devOptional": true + }, + "codelyzer": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-5.2.2.tgz", + "integrity": "sha512-jB4FZ1Sx7kZhvZVdf+N2BaKTdrrNZOL0Bj10RRfrhHrb3zEvXjJvvq298JPMJAiyiCS/v4zs1QlGU0ip7xGqeA==", + "dev": true, + "requires": { + "app-root-path": "^2.2.1", + "aria-query": "^3.0.0", + "axobject-query": "2.0.2", + "css-selector-tokenizer": "^0.7.1", + "cssauron": "^1.4.0", + "damerau-levenshtein": "^1.0.4", + "semver-dsl": "^1.0.1", + "source-map": "^0.5.7", + "sprintf-js": "^1.1.2" + }, + "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==", + "devOptional": 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=", + "devOptional": true + }, + "colorette": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", + "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==", + "dev": true + }, + "colors": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", + "dev": true + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "devOptional": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "devOptional": 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.6.0", + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz", + "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==", + "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.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "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.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "requires": { + "mime-db": ">= 1.43.0 < 2" + } + }, + "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" + }, + "dependencies": { + "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" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "devOptional": 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.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "dev": true, + "requires": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + }, + "dependencies": { + "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" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "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.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, + "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=", + "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.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "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 + }, + "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" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "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": "6.0.3", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-6.0.3.tgz", + "integrity": "sha512-q5m6Vz4elsuyVEIUXr7wJdIdePWTubsqVbEMvf1WQnHGv0Q+9yPRu7MtYFPt+GBOXRav9lvIINifTQ1vSCs+eA==", + "dev": true, + "requires": { + "cacache": "^15.0.4", + "fast-glob": "^3.2.4", + "find-cache-dir": "^3.3.1", + "glob-parent": "^5.1.1", + "globby": "^11.0.1", + "loader-utils": "^2.0.0", + "normalize-path": "^3.0.0", + "p-limit": "^3.0.1", + "schema-utils": "^2.7.0", + "serialize-javascript": "^4.0.0", + "webpack-sources": "^1.4.3" + }, + "dependencies": { + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "cacache": { + "version": "15.0.5", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.5.tgz", + "integrity": "sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A==", + "dev": true, + "requires": { + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.0", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + } + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "globby": { + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.2.tgz", + "integrity": "sha512-2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + } + }, + "json5": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "ssri": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.0.tgz", + "integrity": "sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA==", + "dev": true, + "requires": { + "minipass": "^3.1.1" + } + } + } + }, + "core-js": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.8.3.tgz", + "integrity": "sha512-KPYXeVZYemC2TkNEkX/01I+7yd+nX3KddKwZ1Ww7SKWdI2wQprSgLmrTddT8nw92AjEklTsPBoSdQBhbI1bQ6Q==" + }, + "core-js-compat": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.8.2.tgz", + "integrity": "sha512-LO8uL9lOIyRRrQmZxHZFl1RV+ZbcsAkFWTktn5SmH40WgLtSNYN4m4W2v9ONT147PxBY/XrRhrWq8TlvObyUjQ==", + "dev": true, + "requires": { + "browserslist": "^4.16.0", + "semver": "7.0.0" + }, + "dependencies": { + "browserslist": { + "version": "4.16.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.1.tgz", + "integrity": "sha512-UXhDrwqsNcpTYJBTZsbGATDxZbiVDsx6UjpmRUmtnP10pr8wAYr5LgFoEFw9ixriQH2mv/NX2SfGzE/o8GndLA==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001173", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.634", + "escalade": "^3.1.1", + "node-releases": "^1.1.69" + } + }, + "caniuse-lite": { + "version": "1.0.30001174", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001174.tgz", + "integrity": "sha512-tqClL/4ThQq6cfFXH3oJL4rifFBeM6gTkphjao5kgwMaW9yn0tKgQLAEfKzDwj6HQWCB/aWo8kTFlSvIN8geEA==", + "dev": true + }, + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true + } + } + }, + "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=", + "devOptional": 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": { + "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" + } + } + } + }, + "coverage-istanbul-loader": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/coverage-istanbul-loader/-/coverage-istanbul-loader-2.0.3.tgz", + "integrity": "sha512-LiGRvyIuzVYs3M1ZYK1tF0HekjH0DJ8zFdUwAZq378EJzqOgToyb1690dp3TAUlP6Y+82uu42LRjuROVeJ54CA==", + "dev": true, + "requires": { + "convert-source-map": "^1.7.0", + "istanbul-lib-instrument": "^4.0.0", + "loader-utils": "^1.2.3", + "merge-source-map": "^1.1.0", + "schema-utils": "^2.6.1" + } + }, + "create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "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": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "optional": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "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" + } + }, + "crypto-js": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.0.0.tgz", + "integrity": "sha512-bzHZN8Pn+gS7DQA6n+iUmBfl0hO5DJq++QP3U6uTucDtk/0iGpXd/Gg7CGR0p8tJhofJyaKoWBuJI4eAO00BBg==" + }, + "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.3", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz", + "integrity": "sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "fastparse": "^1.1.2" + } + }, + "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": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "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=", + "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": "1.0.1", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", + "dev": true + }, + "damerau-levenshtein": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz", + "integrity": "sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug==", + "dev": true + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "devOptional": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "date-format": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-3.0.0.tgz", + "integrity": "sha512-eyTcpKOcamdhWJXj56DpQMo1ylSQpcGtGKXcU0Tb97+K56/CF5amAqqqNj0+KvA0iw2ynxtHWFsPDSClCxe48w==", + "dev": true + }, + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "devOptional": true, + "requires": { + "ms": "^2.1.1" + } + }, + "debuglog": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", + "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=", + "dev": true + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "devOptional": 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.1.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", + "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", + "dev": true, + "requires": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + } + }, + "default-gateway": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", + "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", + "dev": true, + "requires": { + "execa": "^1.0.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-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "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": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", + "optional": 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" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "optional": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "devOptional": true + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "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.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "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-node": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", + "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", + "dev": true + }, + "dezalgo": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", + "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=", + "dev": true, + "requires": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "di": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", + "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=", + "dev": true + }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "optional": 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" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + }, + "dependencies": { + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + } + } + }, + "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 + }, + "domino": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/domino/-/domino-2.1.6.tgz", + "integrity": "sha512-3VdM/SXBZX2omc9JF9nOPCtDaYQ67BGp5CoLpIQlO2KCAPETs8TcDHacF26jXadGbvUteZzRTeos2fhID5+ucQ==" + }, + "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=", + "devOptional": 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.636", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.636.tgz", + "integrity": "sha512-Adcvng33sd3gTjNIDNXGD1G4H6qCImIy2euUJAQHtLNplEKU5WEz5KRJxupRNIIT8sD5oFZLTKBWAf12Bsz24A==", + "dev": true + }, + "elliptic": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", + "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", + "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" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "devOptional": true + }, + "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.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dev": true, + "requires": { + "iconv-lite": "^0.6.2" + }, + "dependencies": { + "iconv-lite": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", + "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + } + } + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "devOptional": true, + "requires": { + "once": "^1.4.0" + } + }, + "engine.io": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.5.0.tgz", + "integrity": "sha512-21HlvPUKaitDGE4GXNtQ7PLP0Sz4aWLddMPw2VTyFz1FVZqu/kZsJUO8WNpKuE/OCL7nkfRaOui2ZCJloGznGA==", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.4.1", + "debug": "~4.1.0", + "engine.io-parser": "~2.2.0", + "ws": "~7.4.2" + }, + "dependencies": { + "cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", + "dev": true + }, + "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" + } + }, + "ws": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.2.tgz", + "integrity": "sha512-T4tewALS3+qsrpGI/8dqNMLIVdq/g/85U98HPMa6F0m6xTbvhXU6RCQLqPH3+SlomNV/LdY6RXEbBpMH6EOJnA==", + "dev": true + } + } + }, + "engine.io-client": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.5.0.tgz", + "integrity": "sha512-12wPRfMrugVw/DNyJk34GQ5vIVArEcVMXWugQGGuw2XxUSztFNmJggZmv8IZlLyEdnpO1QB9LkcjeWewO2vxtA==", + "dev": true, + "requires": { + "component-emitter": "~1.3.0", + "component-inherit": "0.0.3", + "debug": "~3.1.0", + "engine.io-parser": "~2.2.0", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "parseqs": "0.0.6", + "parseuri": "0.0.6", + "ws": "~7.4.2", + "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" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "ws": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.2.tgz", + "integrity": "sha512-T4tewALS3+qsrpGI/8dqNMLIVdq/g/85U98HPMa6F0m6xTbvhXU6RCQLqPH3+SlomNV/LdY6RXEbBpMH6EOJnA==", + "dev": true + } + } + }, + "engine.io-parser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.1.tgz", + "integrity": "sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg==", + "dev": true, + "requires": { + "after": "0.8.2", + "arraybuffer.slice": "~0.0.7", + "base64-arraybuffer": "0.1.4", + "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 + }, + "env-paths": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz", + "integrity": "sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA==", + "optional": 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.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "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==", + "devOptional": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", + "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", + "devOptional": true + }, + "es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "devOptional": true, + "requires": { + "es6-promise": "^4.0.3" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "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=", + "devOptional": 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==", + "devOptional": true + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "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": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "events": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", + "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", + "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": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "devOptional": 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" + }, + "dependencies": { + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "devOptional": 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" + } + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "devOptional": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "devOptional": 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=", + "devOptional": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "devOptional": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "optional": true + }, + "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": { + "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" + } + }, + "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" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "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": { + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "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" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "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 + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "devOptional": 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": { + "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" + } + } + } + }, + "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=", + "devOptional": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "devOptional": true + }, + "fast-glob": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", + "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.0", + "merge2": "^1.3.0", + "micromatch": "^4.0.2", + "picomatch": "^2.2.1" + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "devOptional": true + }, + "fastparse": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", + "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", + "dev": true + }, + "fastq": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.10.0.tgz", + "integrity": "sha512-NL2Qc5L3iQEsyYzweq7qfgy5OtXCmGzGvhElGEd/SoFWEMOEczNh5s5ocaF01HDetxz+p8ecjNPA6cZxxIHmzA==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "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.2", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", + "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", + "dev": true + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-loader": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-4.2.0.tgz", + "integrity": "sha512-+xZnaK5R8kBJrHK0/6HRlrKNamvVS5rjyuju+rnyxRGuwUJwpAMsVzUl5dz6rK8brkzjV6JpcFNjp6NqV0g1OQ==", + "dev": true, + "requires": { + "loader-utils": "^1.2.3", + "schema-utils": "^2.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": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "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": { + "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" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "find-cache-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.0.0.tgz", + "integrity": "sha512-t7ulV1fmbxh5G9l/492O1p5+EBbr3uwpt6odhFTMc+nWyhmbloe+ja9BZ8pIBtqFWhOmCWVjx+pTW4zDkFoclw==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.0", + "pkg-dir": "^4.1.0" + } + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "optional": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "flatted": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "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.13.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.1.tgz", + "integrity": "sha512-SSG5xmZh1mkPGyKzjZP8zLjltIfpW32Y5QpdNJyjcfGxK3qo3NDDkZOZSFiGn1A6SclQxY9GzEwAHQ3dmYRWpg==", + "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 + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "devOptional": 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==", + "devOptional": 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-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "devOptional": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "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=", + "devOptional": true + }, + "fsevents": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.1.tgz", + "integrity": "sha512-YR47Eg4hChJGAB1O3yEAOkGO+rlzutoICGqGo9EZ4lKWokzZRSyIW1QmTzqjtw8MJdj9srP869CuWw/hyzSiBw==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "devOptional": true + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "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==", + "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 + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "devOptional": true + }, + "get-intrinsic": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.2.tgz", + "integrity": "sha512-aeX0vrFm21ILl3+JpFFRNe9aUvp6VFZb2/CTbgLb8j75kOhvoNYjt9d8KA/tJG4gSo8nzEDedRl0h7vDmBYRVg==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "optional": true + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "devOptional": true, + "requires": { + "pump": "^3.0.0" + } + }, + "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=", + "devOptional": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "devOptional": 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": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "dev": true, + "requires": { + "is-glob": "^4.0.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 + }, + "globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "optional": 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" + } + }, + "globule": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.2.tgz", + "integrity": "sha512-7IDTQTIu2xzXkT+6mlluidnWo+BypnbSoEVVQCGfzqnl5Ik8d3e1d4wycb8Rj9tWW+Z39uPWsdlquqiqPCd/pA==", + "optional": true, + "requires": { + "glob": "~7.1.1", + "lodash": "~4.17.10", + "minimatch": "~3.0.2" + } + }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "devOptional": true + }, + "handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "devOptional": true + }, + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "devOptional": true, + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "devOptional": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "optional": 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=", + "devOptional": true + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "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=", + "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": { + "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" + } + } + } + }, + "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.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "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.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "devOptional": 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.4.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz", + "integrity": "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==", + "dev": true + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "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.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" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + }, + "http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "requires": { + "eventemitter3": "^4.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" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "http-proxy-middleware": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", + "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", + "dev": true, + "requires": { + "http-proxy": "^1.17.0", + "is-glob": "^4.0.0", + "lodash": "^4.17.11", + "micromatch": "^3.1.10" + }, + "dependencies": { + "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" + } + } + } + }, + "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" + } + } + } + }, + "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" + } + } + } + }, + "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" + } + }, + "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" + } + } + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "devOptional": 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.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", + "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", + "devOptional": true, + "requires": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + } + }, + "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.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" + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "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": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "dev": true + }, + "ignore-walk": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", + "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", + "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=", + "optional": 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" + } + }, + "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 + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "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 + }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "devOptional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "devOptional": true + }, + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "devOptional": true + }, + "inquirer": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.1.tgz", + "integrity": "sha512-uxNHBeQhRXIoHWTSNYUFhQVrHYFThIt6IVo2fFmSe8aBwdR3/w6b58hJpiL/fMukFkvGzjg+hSxFtwvVmKZmXw==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^2.4.2", + "cli-cursor": "^3.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.15", + "mute-stream": "0.0.8", + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^4.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" + }, + "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 + }, + "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" + } + }, + "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" + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.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" + } + }, + "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" + } + } + } + }, + "internal-ip": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", + "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", + "dev": true, + "requires": { + "default-gateway": "^4.2.0", + "ipaddr.js": "^1.9.0" + } + }, + "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": "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==", + "devOptional": true + }, + "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.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true + }, + "is-absolute-url": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", + "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", + "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-arguments": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", + "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", + "dev": true, + "requires": { + "call-bind": "^1.0.0" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "devOptional": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.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-callable": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", + "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==", + "dev": true + }, + "is-core-module": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", + "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "devOptional": true, + "requires": { + "has": "^1.0.3" + } + }, + "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-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", + "dev": true + }, + "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.1.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", + "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", + "optional": true + }, + "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=", + "optional": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "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=", + "optional": 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==", + "optional": 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=", + "optional": true, + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true + }, + "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-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "devOptional": true + }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "devOptional": true + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "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=", + "devOptional": true + }, + "isbinaryfile": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.6.tgz", + "integrity": "sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "devOptional": 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=", + "devOptional": 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.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "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.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "istanbul-lib-coverage": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", + "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", + "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": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "dev": true, + "requires": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "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 + }, + "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" + } + } + } + }, + "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.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "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 + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "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.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.7.tgz", + "integrity": "sha512-uu1F/L1o5Y6LzPVSVZXNOoD/KXpJue9aeLRd0sM9uMXfZvzomB0WxVamWb5ue8kA2vVWEmW7EG+A5n3f1kqHKg==", + "dev": true, + "requires": { + "html-escaper": "^2.0.0" + } + }, + "jasmine": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz", + "integrity": "sha1-awicChFXax8W3xG4AUbZHU6Lij4=", + "optional": 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=", + "optional": true + } + } + }, + "jasmine-core": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.5.0.tgz", + "integrity": "sha512-nCeAiw37MIMA9w9IXso7bRaLl+c/ef3wnxsoSAlYrzS+Ot0zTG6nU8G/cIfGkqpkjX2wNaIW9RFG0TwIFnG6bA==", + "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=", + "optional": true + }, + "jest-worker": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz", + "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==", + "dev": true, + "requires": { + "merge-stream": "^2.0.0", + "supports-color": "^6.1.0" + }, + "dependencies": { + "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" + } + } + } + }, + "jquery": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.5.1.tgz", + "integrity": "sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg==" + }, + "js-base64": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", + "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==", + "optional": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "devOptional": true + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "devOptional": 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=", + "devOptional": true + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "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-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "devOptional": 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==", + "devOptional": 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=", + "devOptional": 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" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "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" + } + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "devOptional": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "jszip": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.5.0.tgz", + "integrity": "sha512-WRtu7TPCmYePR1nazfrtuF216cIVon/3GWOvHS9QR5bIwSbnxtdpma6un3jyGGNhHsKCSzn5Ypk+EkDRvTGiFA==", + "optional": true, + "requires": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "set-immediate-shim": "~1.0.1" + } + }, + "karma": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/karma/-/karma-5.2.3.tgz", + "integrity": "sha512-tHdyFADhVVPBorIKCX8A37iLHxc6RBRphkSoQ+MLKdAtFn1k97tD8WUGi1KlEtDZKL3hui0qhsY9HXUfSNDYPQ==", + "dev": true, + "requires": { + "body-parser": "^1.19.0", + "braces": "^3.0.2", + "chokidar": "^3.4.2", + "colors": "^1.4.0", + "connect": "^3.7.0", + "di": "^0.0.1", + "dom-serialize": "^2.2.1", + "glob": "^7.1.6", + "graceful-fs": "^4.2.4", + "http-proxy": "^1.18.1", + "isbinaryfile": "^4.0.6", + "lodash": "^4.17.19", + "log4js": "^6.2.1", + "mime": "^2.4.5", + "minimatch": "^3.0.4", + "qjobs": "^1.2.0", + "range-parser": "^1.2.1", + "rimraf": "^3.0.2", + "socket.io": "^2.3.0", + "source-map": "^0.6.1", + "tmp": "0.2.1", + "ua-parser-js": "0.7.22", + "yargs": "^15.3.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "mime": { + "version": "2.4.7", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.7.tgz", + "integrity": "sha512-dhNd1uA2u397uQk3Nv5LM4lm93WYDUXFn3Fu291FJerns4jyTudqhIWe4W04YLy7Uk1tm1Ore04NpjRvQp/NPA==", + "dev": true + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "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 + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "requires": { + "rimraf": "^3.0.0" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "karma-chrome-launcher": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.1.0.tgz", + "integrity": "sha512-3dPs/n7vgz1rxxtynpzZTvb9y/GIaW8xjAwcIGttLbycqoFtI7yo1NGnQi6oFTherRE+GIhCAHZC4vEqWGhNvg==", + "dev": true, + "requires": { + "which": "^1.2.1" + }, + "dependencies": { + "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" + } + } + } + }, + "karma-coverage-istanbul-reporter": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-2.1.1.tgz", + "integrity": "sha512-CH8lTi8+kKXGvrhy94+EkEMldLCiUA0xMOiL31vvli9qK0T+qcXJAwWBRVJWnVWxYkTmyWar8lPz63dxX6/z1A==", + "dev": true, + "requires": { + "istanbul-api": "^2.1.6", + "minimatch": "^3.0.4" + } + }, + "karma-jasmine": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-2.0.1.tgz", + "integrity": "sha512-iuC0hmr9b+SNn1DaUD2QEYtUxkS1J+bSJSn7ejdEexs7P8EYvA1CWkEdrDQ+8jVH3AgWlCNwjYsT1chjcNW9lA==", + "dev": true, + "requires": { + "jasmine-core": "^3.3" + } + }, + "karma-jasmine-html-reporter": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-1.5.4.tgz", + "integrity": "sha512-PtilRLno5O6wH3lDihRnz0Ba8oSn0YUJqKjjux1peoYGwo0AQqrWRbdWk/RLzcGlb+onTyXAnHl6M+Hu3UxG/Q==", + "dev": true + }, + "karma-source-map-support": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", + "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==", + "dev": true, + "requires": { + "source-map-support": "^0.5.5" + }, + "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-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + } + } + }, + "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.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, + "lcid": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", + "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", + "devOptional": true, + "requires": { + "invert-kv": "^2.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": "5.0.0", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-5.0.0.tgz", + "integrity": "sha512-bquCU89mO/yWLaUq0Clk7qCsKhsF/TZpJUzETRvJa9KSVEL9SO3ovCvdEHISBhrC81OwC8QSVX7E0bzElZj9cg==", + "dev": true, + "requires": { + "clone": "^2.1.1", + "loader-utils": "^1.1.0", + "pify": "^4.0.1" + }, + "dependencies": { + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + } + } + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true + }, + "levenary": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz", + "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", + "dev": true, + "requires": { + "leven": "^3.1.0" + } + }, + "license-webpack-plugin": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-2.1.2.tgz", + "integrity": "sha512-7poZHRla+ae0eEButlwMrPpkXyhNVBf2EHePYWT0jyLnI6311/OXJkTI2sOIRungRpQgU2oDMpro5bSFPT5F0A==", + "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==", + "optional": 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=", + "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" + } + }, + "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": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "devOptional": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "dependencies": { + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "devOptional": true + } + } + }, + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "devOptional": 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 + }, + "log4js": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.3.0.tgz", + "integrity": "sha512-Mc8jNuSFImQUIateBFwdOQcmC6Q5maU0VVvdC2R6XMb66/VnT+7WS4D/0EeNMZu1YODmJe5NIn2XftCzEocUgw==", + "dev": true, + "requires": { + "date-format": "^3.0.0", + "debug": "^4.1.1", + "flatted": "^2.0.1", + "rfdc": "^1.1.4", + "streamroller": "^2.2.4" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "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 + } + } + }, + "loglevel": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz", + "integrity": "sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==", + "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=", + "optional": true, + "requires": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "devOptional": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "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": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "optional": true + }, + "make-fetch-happen": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-5.0.2.tgz", + "integrity": "sha512-07JHC0r1ykIoruKO8ifMXu+xEU8qOXDFETylktdug6vJDACnP+HKevOu3PXyNPzFyTSlz8vrBYlBO1JZRe8Cag==", + "dev": true, + "requires": { + "agentkeepalive": "^3.4.1", + "cacache": "^12.0.0", + "http-cache-semantics": "^3.8.1", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.3", + "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": { + "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.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } + }, + "mamacro": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz", + "integrity": "sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==", + "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==", + "devOptional": 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=", + "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==", + "devOptional": 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=", + "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 + }, + "merge-source-map": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", + "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", + "dev": true, + "requires": { + "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 + } + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "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": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, + "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" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "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.45.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz", + "integrity": "sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==", + "devOptional": true + }, + "mime-types": { + "version": "2.1.28", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz", + "integrity": "sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==", + "devOptional": true, + "requires": { + "mime-db": "1.45.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "devOptional": true + }, + "mini-css-extract-plugin": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.8.0.tgz", + "integrity": "sha512-MNpRGbNA52q6U92i0qbVpQNsgk7LExy41MdAlG84FeytfDOtRIf/mCHdEgG8rpTKOaNKiqUnZdlptF469hxqOw==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "normalize-url": "1.9.1", + "schema-utils": "^1.0.0", + "webpack-sources": "^1.1.0" + }, + "dependencies": { + "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" + } + } + } + }, + "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==", + "devOptional": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "devOptional": true + }, + "minipass": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", + "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", + "devOptional": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "devOptional": true, + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.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" + } + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "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" + } + } + } + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "devOptional": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "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" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "devOptional": 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.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "nan": { + "version": "2.14.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", + "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", + "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.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "dev": true + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "devOptional": true + }, + "node-fetch-npm": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.4.tgz", + "integrity": "sha512-iOuIQDWDyjhv9qSDrj9aq/klt6F9z1p2otB3AV7v3zBDcL/x+OfGsvGQZZCcMZbUf4Ujw1xGNQkjvGnVT22cKg==", + "dev": true, + "requires": { + "encoding": "^0.1.11", + "json-parse-better-errors": "^1.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node-forge": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", + "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", + "dev": true + }, + "node-gyp": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-7.1.2.tgz", + "integrity": "sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ==", + "optional": true, + "requires": { + "env-paths": "^2.2.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.3", + "nopt": "^5.0.0", + "npmlog": "^4.1.2", + "request": "^2.88.2", + "rimraf": "^3.0.2", + "semver": "^7.3.2", + "tar": "^6.0.2", + "which": "^2.0.2" + }, + "dependencies": { + "semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "optional": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "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.69", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.69.tgz", + "integrity": "sha512-DGIjo79VDEyAnRlfSqYTsy+yoHd2IOjJiKUozD2MV2D85Vso6Bug56mb9tT/fY5Urt0iqk01H7x+llAruDR2zA==", + "dev": true + }, + "node-sass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-5.0.0.tgz", + "integrity": "sha512-opNgmlu83ZCF792U281Ry7tak9IbVC+AKnXGovcQ8LG8wFaJv6cLnRlc6DIHlmNxWEexB5bZxi9SZ9JyUuOYjw==", + "optional": true, + "requires": { + "async-foreach": "^0.1.3", + "chalk": "^1.1.1", + "cross-spawn": "^7.0.3", + "gaze": "^1.0.0", + "get-stdin": "^4.0.1", + "glob": "^7.0.3", + "lodash": "^4.17.15", + "meow": "^3.7.0", + "mkdirp": "^0.5.1", + "nan": "^2.13.2", + "node-gyp": "^7.1.0", + "npmlog": "^4.0.0", + "request": "^2.88.0", + "sass-graph": "2.2.5", + "stdout-stream": "^1.4.0", + "true-case-path": "^1.0.2" + } + }, + "nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "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==", + "devOptional": 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": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "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 + }, + "normalize-url": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", + "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", + "dev": true, + "requires": { + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" + } + }, + "npm-bundled": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz", + "integrity": "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==", + "dev": true, + "requires": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-normalize-package-bin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", + "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.8", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz", + "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==", + "dev": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1", + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-pick-manifest": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-3.0.2.tgz", + "integrity": "sha512-wNprTNg+X5nf+tDi+hbjdHhM4bX+mKqv6XmPh7B5eG+QY9VARfQPfCEH013H5GqfNj6ee8Ij2fg8yk0mzps1Vw==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1", + "npm-package-arg": "^6.0.0", + "semver": "^5.4.1" + } + }, + "npm-registry-fetch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-4.0.7.tgz", + "integrity": "sha512-cny9v0+Mq6Tjz+e0erFAB+RYJ/AVGzkjnISiobqP8OWj9c9FLoZZu8/SPSKJWE17F1tk4018wfjV+ZbIbqC7fQ==", + "dev": true, + "requires": { + "bluebird": "^3.5.1", + "figgy-pudding": "^3.4.1", + "JSONStream": "^1.3.4", + "lru-cache": "^5.1.1", + "make-fetch-happen": "^5.0.0", + "npm-package-arg": "^6.1.0", + "safe-buffer": "^5.2.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" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "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=", + "devOptional": true, + "requires": { + "path-key": "^2.0.0" + }, + "dependencies": { + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "devOptional": true + } + } + }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "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" + } + }, + "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=", + "devOptional": true + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "devOptional": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "devOptional": 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-inspect": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", + "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", + "dev": true + }, + "object-is": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.4.tgz", + "integrity": "sha512-1ZvAZ4wlF7IyPVOcE1Omikt7UpaFlOQq0HlSti+ZvDH3UiD2brwGMwDbyV43jao2bKJ+4+WdPJHSd7kgzKYVqg==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + } + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "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.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "object.getownpropertydescriptors": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.1.tgz", + "integrity": "sha512-6DtXgZ/lIZ9hqx4GtZETobXLR/ZLaa0aqV0kzbn80Rf8Z2e/XFnhA0I7p07N2wH8bBBltr2xQPi6sbKWAY2Eng==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.18.0-next.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.2.tgz", + "integrity": "sha512-Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.1", + "object-inspect": "^1.9.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.3", + "string.prototype.trimstart": "^1.0.3" + } + } + } + }, + "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 + }, + "oidc-client": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/oidc-client/-/oidc-client-1.11.3.tgz", + "integrity": "sha512-kMA5KRP++88nn3nxogwDA4p8jH+YwyoA1JxxVHA9YZFgYqcnK8qjc6WLEoOBheKbxQSl89r0gDh8+zscZHmGlw==", + "requires": { + "acorn": "^7.4.1", + "base64-js": "^1.5.1", + "core-js": "^3.8.3", + "crypto-js": "^4.0.0", + "serialize-javascript": "^4.0.0" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" + } + } + }, + "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=", + "devOptional": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "open": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", + "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", + "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" + } + }, + "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": "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==", + "devOptional": true, + "requires": { + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.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=", + "devOptional": 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=", + "devOptional": true + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "devOptional": 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==", + "devOptional": true + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "devOptional": 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==", + "devOptional": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "p-retry": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", + "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", + "dev": true, + "requires": { + "retry": "^0.12.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==", + "devOptional": true + }, + "pacote": { + "version": "9.5.5", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-9.5.5.tgz", + "integrity": "sha512-jAEP+Nqj4kyMWyNpfTU/Whx1jA7jEc5cCOlurm0/0oL+v8TAp1QSsK83N7bYe+2bEdFzMAtPG5TBebjzzGV0cA==", + "dev": true, + "requires": { + "bluebird": "^3.5.3", + "cacache": "^12.0.2", + "figgy-pudding": "^3.5.1", + "get-stream": "^4.1.0", + "glob": "^7.1.3", + "infer-owner": "^1.0.4", + "lru-cache": "^5.1.1", + "make-fetch-happen": "^5.0.0", + "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": "^4.0.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": { + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "fs-minipass": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", + "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "dev": true, + "requires": { + "minipass": "^2.6.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" + } + }, + "minipass": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", + "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", + "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "dev": true, + "requires": { + "minipass": "^2.9.0" + } + }, + "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" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "tar": { + "version": "4.4.13", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", + "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", + "dev": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" + } + }, + "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" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "devOptional": true + }, + "parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "dev": true, + "requires": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "dev": true, + "requires": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.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=", + "optional": 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.6", + "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.6.tgz", + "integrity": "sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w==", + "dev": true + }, + "parseuri": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.6.tgz", + "integrity": "sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow==", + "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 + }, + "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": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "optional": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "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=", + "devOptional": 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=", + "devOptional": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "optional": 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==", + "devOptional": 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": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "optional": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pbkdf2": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", + "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", + "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=", + "devOptional": true + }, + "picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "dev": true + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "devOptional": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "devOptional": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "devOptional": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + } + } + }, + "pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "dev": true, + "requires": { + "find-up": "^3.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" + } + } + } + }, + "popper.js": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz", + "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==" + }, + "portfinder": { + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", + "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "dev": true, + "requires": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.5" + } + }, + "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.17", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", + "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "dependencies": { + "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" + } + }, + "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" + } + } + } + }, + "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 + }, + "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" + } + } + } + }, + "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" + }, + "dependencies": { + "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 + } + } + }, + "postcss-load-config": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.2.tgz", + "integrity": "sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==", + "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" + }, + "dependencies": { + "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" + } + } + } + }, + "postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", + "dev": true + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "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.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "devOptional": 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" + }, + "dependencies": { + "retry": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", + "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", + "dev": true + } + } + }, + "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.4", + "resolved": "https://registry.npmjs.org/protractor/-/protractor-5.4.4.tgz", + "integrity": "sha512-BaL4vePgu3Vfa/whvTUAlgaCAId4uNSGxIFSCXMgj7LMYENPWLp85h5RBi9pdpX/bWQ8SF6flP7afmi2TC4eHw==", + "optional": 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", + "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", + "yargs": "^12.0.5" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "optional": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "optional": 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==", + "optional": true, + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.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==", + "optional": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "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==", + "optional": 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=", + "optional": 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=", + "optional": true + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "optional": true, + "requires": { + "glob": "^7.1.3" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "optional": 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=", + "optional": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "webdriver-manager": { + "version": "12.1.8", + "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.8.tgz", + "integrity": "sha512-qJR36SXG2VwKugPcdwhaqcLQOD7r8P2Xiv9sfNbfZrKBnX243iAkOueX1yAmeNgIKhJ3YAT/F2gq6IiEZzahsg==", + "optional": 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" + } + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "optional": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "optional": true + }, + "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=", + "optional": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "optional": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "optional": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "yargs": { + "version": "12.0.5", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", + "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "optional": true, + "requires": { + "cliui": "^4.0.0", + "decamelize": "^1.2.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": "^11.1.1" + } + }, + "yargs-parser": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", + "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", + "optional": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "proxy-addr": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", + "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", + "dev": true, + "requires": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.1" + } + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "devOptional": 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" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "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==", + "devOptional": 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" + }, + "dependencies": { + "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" + } + } + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "devOptional": true + }, + "q": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", + "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=", + "optional": 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==", + "devOptional": true + }, + "query-string": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", + "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", + "dev": true, + "requires": { + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + }, + "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.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "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.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" + }, + "dependencies": { + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true + } + } + }, + "raw-loader": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-3.1.0.tgz", + "integrity": "sha512-lzUVMuJ06HF4rYveaz9Tv0WRlUMxJ0Y1hgSkkgg+50iEdaI0TthyEDe08KIHb0XsF6rn8WYTqPCaGTZg3sX+qA==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "schema-utils": "^2.0.1" + } + }, + "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" + } + }, + "read-package-json": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.2.tgz", + "integrity": "sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA==", + "dev": true, + "requires": { + "glob": "^7.1.1", + "json-parse-even-better-errors": "^2.3.0", + "normalize-package-data": "^2.0.0", + "npm-normalize-package-bin": "^1.0.0" + } + }, + "read-package-tree": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/read-package-tree/-/read-package-tree-5.3.1.tgz", + "integrity": "sha512-mLUDsD5JVtlZxjSlPPx1RETkNjjvQYuweKwNVt1Sn8kP5Jh44pvYuUHCp6xSVDZWbNxVxG5lyZJ921aJH61sTw==", + "dev": true, + "requires": { + "read-package-json": "^2.0.0", + "readdir-scoped-modules": "^1.0.0", + "util-promisify": "^2.1.0" + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "optional": true, + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "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=", + "optional": true, + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "devOptional": 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" + } + }, + "readdir-scoped-modules": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz", + "integrity": "sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==", + "dev": true, + "requires": { + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "graceful-fs": "^4.1.2", + "once": "^1.3.0" + } + }, + "readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "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.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", + "dev": true, + "requires": { + "regenerate": "^1.4.0" + } + }, + "regenerator-runtime": { + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", + "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==", + "dev": true + }, + "regenerator-transform": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", + "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.4" + } + }, + "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" + } + }, + "regexp.prototype.flags": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", + "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + } + }, + "regexpu-core": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz", + "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==", + "dev": true, + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.2.0" + } + }, + "regjsgen": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", + "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", + "dev": true + }, + "regjsparser": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.6.tgz", + "integrity": "sha512-jjyuCp+IEMIm3N1H1LLTJW1EISEJV9+5oHdEyrt43Pg9cDSb6rrLZei2cVWpl0xTjmmlpec/lEQGYgM7xfpGCQ==", + "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=", + "optional": true, + "requires": { + "is-finite": "^1.0.0" + } + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "devOptional": 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.3", + "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.5.0", + "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=", + "devOptional": true + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "devOptional": 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.19.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", + "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "devOptional": true, + "requires": { + "is-core-module": "^2.1.0", + "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": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "requires": { + "onetime": "^5.1.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.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rfdc": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.1.4.tgz", + "integrity": "sha512-5C9HXdzK8EAqN7JDif30jqsBzavB7wLpaubisuQIGHWf2gUXSpzy6ArX/+Da8RjFpagWsCn+pIgxTMAmKw9Zug==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "devOptional": 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.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true + }, + "run-parallel": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz", + "integrity": "sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==", + "dev": true + }, + "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.6.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", + "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", + "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==" + }, + "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==", + "devOptional": true + }, + "sass": { + "version": "1.22.9", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.22.9.tgz", + "integrity": "sha512-FzU1X2V8DlnqabrL4u7OBwD2vcOzNMongEJEx3xMEhWY/v26FFR3aG0hyeu2T965sfR0E9ufJwmG+Qjz78vFPQ==", + "dev": true, + "requires": { + "chokidar": ">=2.0.0 <4.0.0" + } + }, + "sass-graph": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.5.tgz", + "integrity": "sha512-VFWDAHOe6mRuT4mZRd4eKE+d8Uedrk6Xnh7Sh9b4NGufQLQjOrvf/MQoOdx+0s92L89FeyUUNfU597j/3uNpag==", + "optional": true, + "requires": { + "glob": "^7.0.0", + "lodash": "^4.0.0", + "scss-tokenizer": "^0.2.3", + "yargs": "^13.3.2" + } + }, + "sass-loader": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-7.2.0.tgz", + "integrity": "sha512-h8yUWaWtsbuIiOCgR9fd9c2lRXZ2uG+h8Dzg/AGNj+Hg/3TO8+BBAW9mEP+mh8ei+qBKqSJ0F1FLlYjNBc61OA==", + "dev": true, + "requires": { + "clone-deep": "^4.0.1", + "loader-utils": "^1.0.1", + "neo-async": "^2.5.0", + "pify": "^4.0.1", + "semver": "^5.5.0" + }, + "dependencies": { + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + } + } + }, + "saucelabs": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.5.0.tgz", + "integrity": "sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==", + "optional": true, + "requires": { + "https-proxy-agent": "^2.2.1" + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "optional": true + }, + "schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + } + }, + "scss-tokenizer": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", + "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", + "optional": true, + "requires": { + "js-base64": "^2.1.8", + "source-map": "^0.4.2" + } + }, + "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==", + "optional": true, + "requires": { + "jszip": "^3.1.3", + "rimraf": "^2.5.4", + "tmp": "0.0.30", + "xml2js": "^0.4.17" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "optional": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "selfsigned": { + "version": "1.10.8", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.8.tgz", + "integrity": "sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w==", + "dev": true, + "requires": { + "node-forge": "^0.10.0" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "devOptional": 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": { + "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" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "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 + } + } + }, + "serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "requires": { + "randombytes": "^2.1.0" + } + }, + "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" + }, + "dependencies": { + "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" + } + }, + "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" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "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 + } + } + }, + "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" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "devOptional": 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=", + "optional": true + }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "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.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "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": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "optional": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "optional": true + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "devOptional": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "smart-buffer": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz", + "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==", + "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": { + "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" + } + }, + "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" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "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 + } + } + }, + "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.4.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.4.1.tgz", + "integrity": "sha512-Si18v0mMXGAqLqCVpTxBa8MGqriHGQh8ccEOhmsmNS3thNCGBwO8WGrwMibANsWtQQ5NStdZwHqZR3naJVFc3w==", + "dev": true, + "requires": { + "debug": "~4.1.0", + "engine.io": "~3.5.0", + "has-binary2": "~1.0.2", + "socket.io-adapter": "~1.1.0", + "socket.io-client": "2.4.0", + "socket.io-parser": "~3.4.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" + } + } + } + }, + "socket.io-adapter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz", + "integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==", + "dev": true + }, + "socket.io-client": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.4.0.tgz", + "integrity": "sha512-M6xhnKQHuuZd4Ba9vltCLT9oa+YvTsP8j9NcEiLElfIg8KeYPyhWOes6x4t+LTAC8enQbE/995AdTem2uNyKKQ==", + "dev": true, + "requires": { + "backo2": "1.0.2", + "component-bind": "1.0.0", + "component-emitter": "~1.3.0", + "debug": "~3.1.0", + "engine.io-client": "~3.5.0", + "has-binary2": "~1.0.2", + "indexof": "0.0.1", + "parseqs": "0.0.6", + "parseuri": "0.0.6", + "socket.io-parser": "~3.3.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" + } + }, + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "socket.io-parser": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.2.tgz", + "integrity": "sha512-FJvDBuOALxdCI9qwRrO/Rfp9yfndRtc1jSgVgV8FDraihmSP/MLGD5PEuJrNfjALvcQ+vMDM/33AWOYP/JSjDg==", + "dev": true, + "requires": { + "component-emitter": "~1.3.0", + "debug": "~3.1.0", + "isarray": "2.0.1" + } + } + } + }, + "socket.io-parser": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.1.tgz", + "integrity": "sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A==", + "dev": true, + "requires": { + "component-emitter": "1.2.1", + "debug": "~4.1.0", + "isarray": "2.0.1" + }, + "dependencies": { + "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 + }, + "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" + } + }, + "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.20", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.20.tgz", + "integrity": "sha512-SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA==", + "dev": true, + "requires": { + "faye-websocket": "^0.10.0", + "uuid": "^3.4.0", + "websocket-driver": "0.6.5" + } + }, + "sockjs-client": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz", + "integrity": "sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==", + "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": { + "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" + } + } + } + }, + "socks": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.3.3.tgz", + "integrity": "sha512-o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA==", + "dev": true, + "requires": { + "ip": "1.1.5", + "smart-buffer": "^4.1.0" + } + }, + "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" + }, + "dependencies": { + "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" + } + } + } + }, + "sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "dev": true, + "requires": { + "is-plain-obj": "^1.0.0" + } + }, + "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.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "devOptional": true, + "requires": { + "amdefine": ">=0.0.4" + } + }, + "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.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "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.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "optional": true, + "requires": { + "source-map": "^0.5.6" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "optional": 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.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "devOptional": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "devOptional": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "devOptional": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", + "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", + "devOptional": true + }, + "spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "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.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "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.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "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.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "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" + }, + "dependencies": { + "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" + } + }, + "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" + } + }, + "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" + } + } + } + }, + "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=", + "devOptional": true + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "devOptional": 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": "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" + } + }, + "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" + } + } + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "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==", + "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.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", + "dev": true + }, + "streamroller": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-2.2.4.tgz", + "integrity": "sha512-OG79qm3AujAM9ImoqgWEY1xG4HX+Lw+yY6qZj9R1K2mhF5bEmQ849wvrb+4vt4jLMLzwXttJlQbOdPOQVRv7DQ==", + "dev": true, + "requires": { + "date-format": "^2.1.0", + "debug": "^4.1.1", + "fs-extra": "^8.1.0" + }, + "dependencies": { + "date-format": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-2.1.0.tgz", + "integrity": "sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA==", + "dev": true + }, + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "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 + } + } + }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", + "dev": true + }, + "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==", + "devOptional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "optional": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string.prototype.trimend": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz", + "integrity": "sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + } + }, + "string.prototype.trimstart": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz", + "integrity": "sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "devOptional": 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=", + "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=", + "devOptional": true + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "optional": true, + "requires": { + "get-stdin": "^4.0.1" + } + }, + "style-loader": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-1.0.0.tgz", + "integrity": "sha512-B0dOCFwv7/eY31a5PCieNwMgMhVGFe9w+rh7s/Bx8kfFkrth9zfTZquoYvdw8URgiqxObQKcpW51Ugz1HjfdZw==", + "dev": true, + "requires": { + "loader-utils": "^1.2.3", + "schema-utils": "^2.0.1" + } + }, + "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" + } + }, + "sax": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/sax/-/sax-0.5.8.tgz", + "integrity": "sha1-1HLbIo6zMcJQaw6MFVJK25OdEsE=", + "dev": true + }, + "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": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "optional": true + }, + "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": "6.1.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.0.tgz", + "integrity": "sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA==", + "devOptional": true, + "requires": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "devOptional": true + } + } + }, + "terser": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.3.tgz", + "integrity": "sha512-Lw+ieAXmY69d09IIc/yqeBqXpEQIpDGZqT34ui1QWXIUpR2RjbqEkT8X7Lgex19hslSqcWM5iMN2kM11eMsESQ==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "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-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + } + } + }, + "terser-webpack-plugin": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-3.0.3.tgz", + "integrity": "sha512-bZFnotuIKq5Rqzrs+qIwFzGdKdffV9epG5vDSEbYzvKAhPeR5RbbrQysfPgbIIMhNAQtZD2hGwBfSKUXjXZZZw==", + "dev": true, + "requires": { + "cacache": "^15.0.4", + "find-cache-dir": "^3.3.1", + "jest-worker": "^26.0.0", + "p-limit": "^2.3.0", + "schema-utils": "^2.6.6", + "serialize-javascript": "^3.1.0", + "source-map": "^0.6.1", + "terser": "^4.6.13", + "webpack-sources": "^1.4.3" + }, + "dependencies": { + "cacache": { + "version": "15.0.5", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.5.tgz", + "integrity": "sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A==", + "dev": true, + "requires": { + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.0", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + } + }, + "find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "serialize-javascript": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.1.0.tgz", + "integrity": "sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg==", + "dev": true, + "requires": { + "randombytes": "^2.1.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 + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "ssri": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.0.tgz", + "integrity": "sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA==", + "dev": true, + "requires": { + "minipass": "^3.1.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "terser": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", + "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + } + } + } + }, + "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.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "dev": true, + "requires": { + "setimmediate": "^1.0.4" + } + }, + "tmp": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", + "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=", + "optional": true, + "requires": { + "os-tmpdir": "~1.0.1" + } + }, + "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": "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 + }, + "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": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "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.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "devOptional": true, + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "optional": 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==", + "optional": true, + "requires": { + "glob": "^7.1.2" + } + }, + "ts-node": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.4.1.tgz", + "integrity": "sha512-5LpRN+mTiCs7lI5EtbXmF/HfMeCjzt7DH9CZwtkr6SywStrNQC723wG+aOWFiLNn7zT3kD/RnFqi3ZUfr4l5Qw==", + "optional": true, + "requires": { + "arg": "^4.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "source-map-support": "^0.5.6", + "yn": "^3.0.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==", + "optional": true + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "optional": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + } + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "tslint": { + "version": "5.20.1", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.20.1.tgz", + "integrity": "sha512-EcMxhzCFt8k+/UP5r8waCf/lzmeSyVlqxqMEDQE7rWYiQky8KpIBz1JAoYXfROHrPZ1XXd43q8yQnULOLiBRQg==", + "optional": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "builtin-modules": "^1.1.1", + "chalk": "^2.3.0", + "commander": "^2.12.1", + "diff": "^4.0.1", + "glob": "^7.1.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "resolve": "^1.3.2", + "semver": "^5.3.0", + "tslib": "^1.8.0", + "tsutils": "^2.29.0" + }, + "dependencies": { + "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==", + "optional": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "optional": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "optional": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "tsutils": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", + "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", + "optional": 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=", + "devOptional": 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=", + "devOptional": true + }, + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "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" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "typescript": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.5.3.tgz", + "integrity": "sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g==", + "dev": true + }, + "ua-parser-js": { + "version": "0.7.22", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.22.tgz", + "integrity": "sha512-YUxzMjJ5T71w6a8WWVcMGM6YWOTX27rCoIQgLXiWaxqXSx9D7DNjiGWn1aJIRSQ5qr0xuhra77bSIh6voR/46Q==", + "dev": true + }, + "unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", + "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==", + "dev": true + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "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" + } + }, + "universal-analytics": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/universal-analytics/-/universal-analytics-0.4.23.tgz", + "integrity": "sha512-lgMIH7XBI6OgYn1woDEmxhGdj8yDefMKg7GkWdeATAlQZFrMrNyxSkpDzY57iY0/6fdlzTbBV03OawvvzG+q7A==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "request": "^2.88.2", + "uuid": "^3.0.0" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "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 + } + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + }, + "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.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "devOptional": 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 + }, + "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" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "devOptional": true + }, + "util-promisify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/util-promisify/-/util-promisify-2.1.0.tgz", + "integrity": "sha1-PCI2R2xNMsX/PEcAKt18E7moKlM=", + "dev": true, + "requires": { + "object.getownpropertydescriptors": "^2.0.3" + } + }, + "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.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "devOptional": 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==", + "devOptional": 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=", + "devOptional": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "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.7.5", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", + "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", + "dev": true, + "requires": { + "chokidar": "^3.4.1", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0", + "watchpack-chokidar2": "^2.0.1" + } + }, + "watchpack-chokidar2": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", + "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", + "dev": true, + "optional": true, + "requires": { + "chokidar": "^2.1.8" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "optional": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "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, + "optional": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true, + "optional": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "optional": 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, + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "optional": 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" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "optional": 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, + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true, + "requires": { + "nan": "^2.12.1" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "optional": 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, + "optional": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "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, + "optional": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "optional": 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, + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "optional": 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" + } + }, + "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, + "optional": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "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, + "optional": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "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==", + "optional": true, + "requires": { + "@types/selenium-webdriver": "^3.0.0", + "selenium-webdriver": "^3.0.1" + } + }, + "webpack": { + "version": "4.39.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.39.2.tgz", + "integrity": "sha512-AKgTfz3xPSsEibH00JfZ9sHXGUwIQ6eZ9tLN8+VLzachk1Cw2LVmy+4R7ZiwTa9cZZ15tzySjeMui/UnSCAZhA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-module-context": "1.8.5", + "@webassemblyjs/wasm-edit": "1.8.5", + "@webassemblyjs/wasm-parser": "1.8.5", + "acorn": "^6.2.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^4.1.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.1", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", + "schema-utils": "^1.0.0", + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.1", + "watchpack": "^1.6.0", + "webpack-sources": "^1.4.1" + }, + "dependencies": { + "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" + } + } + } + }, + "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" + } + } + } + }, + "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" + } + }, + "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" + } + } + } + }, + "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" + } + }, + "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" + } + }, + "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" + } + }, + "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" + } + }, + "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.4.5", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", + "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", + "dev": true, + "requires": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^4.0.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.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" + } + } + } + }, + "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 + } + } + }, + "webpack-dev-middleware": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz", + "integrity": "sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw==", + "dev": true, + "requires": { + "memory-fs": "^0.4.1", + "mime": "^2.4.4", + "mkdirp": "^0.5.1", + "range-parser": "^1.2.1", + "webpack-log": "^2.0.0" + }, + "dependencies": { + "mime": { + "version": "2.4.7", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.7.tgz", + "integrity": "sha512-dhNd1uA2u397uQk3Nv5LM4lm93WYDUXFn3Fu291FJerns4jyTudqhIWe4W04YLy7Uk1tm1Ore04NpjRvQp/NPA==", + "dev": true + } + } + }, + "webpack-dev-server": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz", + "integrity": "sha512-PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg==", + "dev": true, + "requires": { + "ansi-html": "0.0.7", + "bonjour": "^3.5.0", + "chokidar": "^2.1.8", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "debug": "^4.1.1", + "del": "^4.1.1", + "express": "^4.17.1", + "html-entities": "^1.3.1", + "http-proxy-middleware": "0.19.1", + "import-local": "^2.0.0", + "internal-ip": "^4.3.0", + "ip": "^1.1.5", + "is-absolute-url": "^3.0.3", + "killable": "^1.0.1", + "loglevel": "^1.6.8", + "opn": "^5.5.0", + "p-retry": "^3.0.1", + "portfinder": "^1.0.26", + "schema-utils": "^1.0.0", + "selfsigned": "^1.10.7", + "semver": "^6.3.0", + "serve-index": "^1.9.1", + "sockjs": "0.3.20", + "sockjs-client": "1.4.0", + "spdy": "^4.0.2", + "strip-ansi": "^3.0.1", + "supports-color": "^6.1.0", + "url": "^0.11.0", + "webpack-dev-middleware": "^3.7.2", + "webpack-log": "^2.0.0", + "ws": "^6.2.1", + "yargs": "^13.3.2" + }, + "dependencies": { + "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" + }, + "dependencies": { + "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" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true + }, + "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" + } + } + } + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "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" + } + }, + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "del": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", + "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", + "dev": true, + "requires": { + "@types/glob": "^7.1.1", + "globby": "^6.1.0", + "is-path-cwd": "^2.0.0", + "is-path-in-cwd": "^2.0.0", + "p-map": "^2.0.0", + "pify": "^4.0.1", + "rimraf": "^2.6.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" + } + } + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true, + "requires": { + "nan": "^2.12.1" + } + }, + "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" + } + } + } + }, + "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 + } + } + }, + "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-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": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true + }, + "is-path-in-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", + "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", + "dev": true, + "requires": { + "is-path-inside": "^2.1.0" + } + }, + "is-path-inside": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", + "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", + "dev": true, + "requires": { + "path-is-inside": "^1.0.2" + } + }, + "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" + } + }, + "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 + }, + "p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "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 + }, + "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" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "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" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "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" + } + }, + "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" + } + } + } + }, + "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.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "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.6.5", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz", + "integrity": "sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY=", + "dev": true, + "requires": { + "websocket-extensions": ">=0.1.1" + } + }, + "websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "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": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "optional": true, + "requires": { + "isexe": "^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=", + "devOptional": 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==", + "optional": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "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" + } + }, + "worker-plugin": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/worker-plugin/-/worker-plugin-3.2.0.tgz", + "integrity": "sha512-W5nRkw7+HlbsEt3qRP6MczwDDISjiRj2GYt9+bpe8A2La00TmJdwzG5bpdMXhRt1qcWmwAvl1TiKaHRa+XDS9Q==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "devOptional": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.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==", + "devOptional": 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==", + "devOptional": true, + "requires": { + "color-convert": "^1.9.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=", + "devOptional": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "devOptional": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.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==", + "devOptional": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "devOptional": 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" + } + }, + "xhr2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/xhr2/-/xhr2-0.1.4.tgz", + "integrity": "sha1-f4dliEdxbbUCYyOBL4GMras4el8=" + }, + "xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "optional": true, + "requires": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + } + }, + "xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "optional": 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 + }, + "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.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", + "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", + "devOptional": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "devOptional": true + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "devOptional": true, + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + }, + "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==", + "devOptional": true + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "devOptional": true, + "requires": { + "locate-path": "^3.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=", + "devOptional": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "devOptional": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.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==", + "devOptional": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "devOptional": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "devOptional": 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.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "optional": true + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true + }, + "zone.js": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.9.1.tgz", + "integrity": "sha512-GkPiJL8jifSrKReKaTZ5jkhrMEgXbXYC+IPo1iquBjayRa0q86w3Dipjn8b415jpitMExe9lV8iTsv8tk3DGag==" + } + } +} diff --git a/Frontend/ClientApp/package.json b/Frontend/ClientApp/package.json new file mode 100644 index 0000000..cb76dbf --- /dev/null +++ b/Frontend/ClientApp/package.json @@ -0,0 +1,62 @@ +{ + "name": "frontend", + "version": "0.0.0", + "scripts": { + "ng": "ng", + "start": "ng serve", + "build": "ng build", + "build:ssr": "ng run Frontend:server:dev", + "test": "ng test", + "lint": "ng lint", + "e2e": "ng e2e" + }, + "private": true, + "dependencies": { + "@angular/animations": "8.2.12", + "@angular/common": "8.2.12", + "@angular/compiler": "8.2.12", + "@angular/core": "8.2.12", + "@angular/forms": "8.2.12", + "@angular/platform-browser": "8.2.12", + "@angular/platform-browser-dynamic": "8.2.12", + "@angular/platform-server": "8.2.12", + "@angular/router": "8.2.12", + "@nguniversal/module-map-ngfactory-loader": "8.1.1", + "bootstrap": "^4.6.0", + "core-js": "^3.8.3", + "jquery": "^3.5.1", + "node-sass": "^5.0.0", + "oidc-client": "^1.11.3", + "popper.js": "^1.16.0", + "protractor": "~5.4.2", + "rxjs": "^6.6.3", + "ts-node": "~8.4.1", + "tslint": "~5.20.0", + "zone.js": "0.9.1" + }, + "devDependencies": { + "@angular-devkit/build-angular": "^0.803.29", + "@angular/cli": "^8.3.29", + "@angular/compiler-cli": "^8.2.14", + "@angular/language-service": "^8.2.14", + "@types/jasmine": "~3.4.4", + "@types/jasminewd2": "~2.0.8", + "@types/node": "~12.11.6", + "codelyzer": "^5.2.2", + "ini": "^1.3.7", + "jasmine-core": "~3.5.0", + "jasmine-spec-reporter": "~4.2.1", + "karma": "^5.2.3", + "karma-chrome-launcher": "~3.1.0", + "karma-coverage-istanbul-reporter": "~2.1.0", + "karma-jasmine": "~2.0.1", + "karma-jasmine-html-reporter": "^1.5.4", + "typescript": "3.5.3" + }, + "optionalDependencies": { + "node-sass": "^5.0.0", + "protractor": "~5.4.2", + "ts-node": "~8.4.1", + "tslint": "~5.20.0" + } +} diff --git a/Frontend/ClientApp/src/app/app.component.html b/Frontend/ClientApp/src/app/app.component.html new file mode 100644 index 0000000..7173845 --- /dev/null +++ b/Frontend/ClientApp/src/app/app.component.html @@ -0,0 +1,6 @@ + + +
+ +
+ diff --git a/Frontend/ClientApp/src/app/app.component.ts b/Frontend/ClientApp/src/app/app.component.ts new file mode 100644 index 0000000..0a40b8c --- /dev/null +++ b/Frontend/ClientApp/src/app/app.component.ts @@ -0,0 +1,9 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-root', + templateUrl: './app.component.html' +}) +export class AppComponent { + title = 'app'; +} diff --git a/Frontend/ClientApp/src/app/app.module.ts b/Frontend/ClientApp/src/app/app.module.ts new file mode 100644 index 0000000..cecdded --- /dev/null +++ b/Frontend/ClientApp/src/app/app.module.ts @@ -0,0 +1,34 @@ +import { BrowserModule } from '@angular/platform-browser'; +import { NgModule } from '@angular/core'; +import { FormsModule } from '@angular/forms'; +import { HttpClientModule } from '@angular/common/http'; +import { RouterModule } from '@angular/router'; + +import { AppComponent } from './app.component'; +import { NavMenuComponent } from './nav-menu/nav-menu.component'; +import { HomeComponent } from './home/home.component'; +import { CounterComponent } from './counter/counter.component'; +import { FetchDataComponent } from './fetch-data/fetch-data.component'; + +@NgModule({ + declarations: [ + AppComponent, + NavMenuComponent, + HomeComponent, + CounterComponent, + FetchDataComponent + ], + imports: [ + BrowserModule.withServerTransition({ appId: 'ng-cli-universal' }), + HttpClientModule, + FormsModule, + RouterModule.forRoot([ + { path: '', component: HomeComponent, pathMatch: 'full' }, + { path: 'counter', component: CounterComponent }, + { path: 'fetch-data', component: FetchDataComponent }, + ]) + ], + providers: [], + bootstrap: [AppComponent] +}) +export class AppModule { } diff --git a/Frontend/ClientApp/src/app/app.server.module.ts b/Frontend/ClientApp/src/app/app.server.module.ts new file mode 100644 index 0000000..cfb0e02 --- /dev/null +++ b/Frontend/ClientApp/src/app/app.server.module.ts @@ -0,0 +1,11 @@ +import { NgModule } from '@angular/core'; +import { ServerModule } from '@angular/platform-server'; +import { ModuleMapLoaderModule } from '@nguniversal/module-map-ngfactory-loader'; +import { AppComponent } from './app.component'; +import { AppModule } from './app.module'; + +@NgModule({ + imports: [AppModule, ServerModule, ModuleMapLoaderModule], + bootstrap: [AppComponent] +}) +export class AppServerModule { } diff --git a/Frontend/ClientApp/src/app/counter/counter.component.html b/Frontend/ClientApp/src/app/counter/counter.component.html new file mode 100644 index 0000000..89b9c80 --- /dev/null +++ b/Frontend/ClientApp/src/app/counter/counter.component.html @@ -0,0 +1,7 @@ +

Counter

+ +

This is a simple example of an Angular component.

+ +

Current count: {{ currentCount }}

+ + diff --git a/Frontend/ClientApp/src/app/counter/counter.component.spec.ts b/Frontend/ClientApp/src/app/counter/counter.component.spec.ts new file mode 100644 index 0000000..37b350c --- /dev/null +++ b/Frontend/ClientApp/src/app/counter/counter.component.spec.ts @@ -0,0 +1,34 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { CounterComponent } from './counter.component'; + +describe('CounterComponent', () => { + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ CounterComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(CounterComponent); + fixture.detectChanges(); + }); + + it('should display a title', async(() => { + const titleText = fixture.nativeElement.querySelector('h1').textContent; + expect(titleText).toEqual('Counter'); + })); + + it('should start with count 0, then increments by 1 when clicked', async(() => { + const countElement = fixture.nativeElement.querySelector('strong'); + expect(countElement.textContent).toEqual('0'); + + const incrementButton = fixture.nativeElement.querySelector('button'); + incrementButton.click(); + fixture.detectChanges(); + expect(countElement.textContent).toEqual('1'); + })); +}); diff --git a/Frontend/ClientApp/src/app/counter/counter.component.ts b/Frontend/ClientApp/src/app/counter/counter.component.ts new file mode 100644 index 0000000..1f336aa --- /dev/null +++ b/Frontend/ClientApp/src/app/counter/counter.component.ts @@ -0,0 +1,13 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-counter-component', + templateUrl: './counter.component.html' +}) +export class CounterComponent { + public currentCount = 0; + + public incrementCounter() { + this.currentCount++; + } +} diff --git a/Frontend/ClientApp/src/app/fetch-data/fetch-data.component.html b/Frontend/ClientApp/src/app/fetch-data/fetch-data.component.html new file mode 100644 index 0000000..19b3835 --- /dev/null +++ b/Frontend/ClientApp/src/app/fetch-data/fetch-data.component.html @@ -0,0 +1,24 @@ +

Weather forecast

+ +

This component demonstrates fetching data from the server.

+ +

Loading...

+ + + + + + + + + + + + + + + + + + +
DateTemp. (C)Temp. (F)Summary
{{ forecast.date }}{{ forecast.temperatureC }}{{ forecast.temperatureF }}{{ forecast.summary }}
diff --git a/Frontend/ClientApp/src/app/fetch-data/fetch-data.component.ts b/Frontend/ClientApp/src/app/fetch-data/fetch-data.component.ts new file mode 100644 index 0000000..9b81e1b --- /dev/null +++ b/Frontend/ClientApp/src/app/fetch-data/fetch-data.component.ts @@ -0,0 +1,23 @@ +import { Component, Inject } from '@angular/core'; +import { HttpClient } from '@angular/common/http'; + +@Component({ + selector: 'app-fetch-data', + templateUrl: './fetch-data.component.html' +}) +export class FetchDataComponent { + public forecasts: WeatherForecast[]; + + constructor(http: HttpClient, @Inject('BASE_URL') baseUrl: string) { + http.get(baseUrl + 'weatherforecast').subscribe(result => { + this.forecasts = result; + }, error => console.error(error)); + } +} + +interface WeatherForecast { + date: string; + temperatureC: number; + temperatureF: number; + summary: string; +} diff --git a/Frontend/ClientApp/src/app/home/home.component.html b/Frontend/ClientApp/src/app/home/home.component.html new file mode 100644 index 0000000..f74c2e7 --- /dev/null +++ b/Frontend/ClientApp/src/app/home/home.component.html @@ -0,0 +1,14 @@ +

Hello, world!

+

Welcome to your new single-page application, built with:

+ +

To help you get started, we've also set up:

+
    +
  • Client-side navigation. For example, click Counter then Back to return here.
  • +
  • Angular CLI integration. In development mode, there's no need to run ng serve. It runs in the background automatically, so your client-side resources are dynamically built on demand and the page refreshes when you modify any file.
  • +
  • Efficient production builds. In production mode, development-time features are disabled, and your dotnet publish configuration automatically invokes ng build to produce minified, ahead-of-time compiled JavaScript files.
  • +
+

The ClientApp subdirectory is a standard Angular CLI application. If you open a command prompt in that directory, you can run any ng command (e.g., ng test), or use npm to install extra packages into it.

diff --git a/Frontend/ClientApp/src/app/home/home.component.ts b/Frontend/ClientApp/src/app/home/home.component.ts new file mode 100644 index 0000000..2747b30 --- /dev/null +++ b/Frontend/ClientApp/src/app/home/home.component.ts @@ -0,0 +1,8 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-home', + templateUrl: './home.component.html', +}) +export class HomeComponent { +} diff --git a/Frontend/ClientApp/src/app/nav-menu/nav-menu.component.css b/Frontend/ClientApp/src/app/nav-menu/nav-menu.component.css new file mode 100644 index 0000000..10389ef --- /dev/null +++ b/Frontend/ClientApp/src/app/nav-menu/nav-menu.component.css @@ -0,0 +1,18 @@ +a.navbar-brand { + white-space: normal; + text-align: center; + word-break: break-all; +} + +html { + font-size: 14px; +} +@media (min-width: 768px) { + html { + font-size: 16px; + } +} + +.box-shadow { + box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .05); +} diff --git a/Frontend/ClientApp/src/app/nav-menu/nav-menu.component.html b/Frontend/ClientApp/src/app/nav-menu/nav-menu.component.html new file mode 100644 index 0000000..998853b --- /dev/null +++ b/Frontend/ClientApp/src/app/nav-menu/nav-menu.component.html @@ -0,0 +1,44 @@ +
+ +
diff --git a/Frontend/ClientApp/src/app/nav-menu/nav-menu.component.ts b/Frontend/ClientApp/src/app/nav-menu/nav-menu.component.ts new file mode 100644 index 0000000..327a374 --- /dev/null +++ b/Frontend/ClientApp/src/app/nav-menu/nav-menu.component.ts @@ -0,0 +1,18 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-nav-menu', + templateUrl: './nav-menu.component.html', + styleUrls: ['./nav-menu.component.css'] +}) +export class NavMenuComponent { + isExpanded = false; + + collapse() { + this.isExpanded = false; + } + + toggle() { + this.isExpanded = !this.isExpanded; + } +} diff --git a/Frontend/ClientApp/src/assets/.gitkeep b/Frontend/ClientApp/src/assets/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Frontend/ClientApp/src/environments/environment.prod.ts b/Frontend/ClientApp/src/environments/environment.prod.ts new file mode 100644 index 0000000..3612073 --- /dev/null +++ b/Frontend/ClientApp/src/environments/environment.prod.ts @@ -0,0 +1,3 @@ +export const environment = { + production: true +}; diff --git a/Frontend/ClientApp/src/environments/environment.ts b/Frontend/ClientApp/src/environments/environment.ts new file mode 100644 index 0000000..012182e --- /dev/null +++ b/Frontend/ClientApp/src/environments/environment.ts @@ -0,0 +1,15 @@ +// 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 +}; + +/* + * In development mode, to ignore zone related error stack frames such as + * `zone.run`, `zoneDelegate.invokeTask` for easier debugging, you can + * import the following file, but please comment it out in production mode + * because it will have performance impact when throw error + */ +// import 'zone.js/dist/zone-error'; // Included with Angular CLI. diff --git a/Frontend/ClientApp/src/index.html b/Frontend/ClientApp/src/index.html new file mode 100644 index 0000000..7a15596 --- /dev/null +++ b/Frontend/ClientApp/src/index.html @@ -0,0 +1,14 @@ + + + + + Frontend + + + + + + + Loading... + + diff --git a/Frontend/ClientApp/src/karma.conf.js b/Frontend/ClientApp/src/karma.conf.js new file mode 100644 index 0000000..4a9730b --- /dev/null +++ b/Frontend/ClientApp/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'], + fixWebpackSourcePaths: true + }, + reporters: ['progress', 'kjhtml'], + port: 9876, + colors: true, + logLevel: config.LOG_INFO, + autoWatch: true, + browsers: ['Chrome'], + singleRun: false + }); +}; diff --git a/Frontend/ClientApp/src/main.ts b/Frontend/ClientApp/src/main.ts new file mode 100644 index 0000000..a2f708c --- /dev/null +++ b/Frontend/ClientApp/src/main.ts @@ -0,0 +1,20 @@ +import { enableProdMode } from '@angular/core'; +import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; + +import { AppModule } from './app/app.module'; +import { environment } from './environments/environment'; + +export function getBaseUrl() { + return document.getElementsByTagName('base')[0].href; +} + +const providers = [ + { provide: 'BASE_URL', useFactory: getBaseUrl, deps: [] } +]; + +if (environment.production) { + enableProdMode(); +} + +platformBrowserDynamic(providers).bootstrapModule(AppModule) + .catch(err => console.log(err)); diff --git a/Frontend/ClientApp/src/polyfills.ts b/Frontend/ClientApp/src/polyfills.ts new file mode 100644 index 0000000..aa665d6 --- /dev/null +++ b/Frontend/ClientApp/src/polyfills.ts @@ -0,0 +1,63 @@ +/** + * This file includes polyfills needed by Angular and is loaded before the app. + * You can add your own extra polyfills to this file. + * + * This file is divided into 2 sections: + * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers. + * 2. Application imports. Files imported after ZoneJS that should be loaded before your main + * file. + * + * The current setup is for so-called "evergreen" browsers; the last versions of browsers that + * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera), + * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile. + * + * Learn more in https://angular.io/guide/browser-support + */ + +/*************************************************************************************************** + * BROWSER POLYFILLS + */ + +/** IE10 and IE11 requires the following for NgClass support on SVG elements */ +// import 'classlist.js'; // Run `npm install --save classlist.js`. + +/** + * Web Animations `@angular/platform-browser/animations` + * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari. + * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0). + */ +// import 'web-animations-js'; // Run `npm install --save web-animations-js`. + +/** + * By default, zone.js will patch all possible macroTask and DomEvents + * user can disable parts of macroTask/DomEvents patch by setting following flags + * because those flags need to be set before `zone.js` being loaded, and webpack + * will put import in the top of bundle, so user need to create a separate file + * in this directory (for example: zone-flags.ts), and put the following flags + * into that file, and then add the following code before importing zone.js. + * import './zone-flags.ts'; + * + * The flags allowed in zone-flags.ts are listed here. + * + * The following flags will work for all browsers. + * + * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame + * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick + * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames + * + * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js + * with the following flag, it will bypass `zone.js` patch for IE/Edge + * + * (window as any).__Zone_enable_cross_context_check = true; + * + */ + +/*************************************************************************************************** + * Zone JS is required by default for Angular itself. + */ +import 'zone.js/dist/zone'; // Included with Angular CLI. + + +/*************************************************************************************************** + * APPLICATION IMPORTS + */ diff --git a/Frontend/ClientApp/src/styles.css b/Frontend/ClientApp/src/styles.css new file mode 100644 index 0000000..3ef6a64 --- /dev/null +++ b/Frontend/ClientApp/src/styles.css @@ -0,0 +1,16 @@ +/* You can add global styles to this file, and also import other style files */ + +/* Provide sufficient contrast against white background */ +a { + color: #0366d6; +} + +code { + color: #e01a76; +} + +.btn-primary { + color: #fff; + background-color: #1b6ec2; + border-color: #1861ac; +} diff --git a/Frontend/ClientApp/src/test.ts b/Frontend/ClientApp/src/test.ts new file mode 100644 index 0000000..8849258 --- /dev/null +++ b/Frontend/ClientApp/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; + +// 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/Frontend/ClientApp/src/tsconfig.app.json b/Frontend/ClientApp/src/tsconfig.app.json new file mode 100644 index 0000000..8ea061e --- /dev/null +++ b/Frontend/ClientApp/src/tsconfig.app.json @@ -0,0 +1,11 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "outDir": "../out-tsc/app", + "types": [] + }, + "exclude": [ + "src/test.ts", + "**/*.spec.ts" + ] +} diff --git a/Frontend/ClientApp/src/tsconfig.server.json b/Frontend/ClientApp/src/tsconfig.server.json new file mode 100644 index 0000000..3f183ef --- /dev/null +++ b/Frontend/ClientApp/src/tsconfig.server.json @@ -0,0 +1,9 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "module": "commonjs" + }, + "angularCompilerOptions": { + "entryModule": "app/app.server.module#AppServerModule" + } +} diff --git a/Frontend/ClientApp/src/tsconfig.spec.json b/Frontend/ClientApp/src/tsconfig.spec.json new file mode 100644 index 0000000..de77336 --- /dev/null +++ b/Frontend/ClientApp/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/Frontend/ClientApp/src/tslint.json b/Frontend/ClientApp/src/tslint.json new file mode 100644 index 0000000..52e2c1a --- /dev/null +++ b/Frontend/ClientApp/src/tslint.json @@ -0,0 +1,17 @@ +{ + "extends": "../tslint.json", + "rules": { + "directive-selector": [ + true, + "attribute", + "app", + "camelCase" + ], + "component-selector": [ + true, + "element", + "app", + "kebab-case" + ] + } +} diff --git a/Frontend/ClientApp/tsconfig.json b/Frontend/ClientApp/tsconfig.json new file mode 100644 index 0000000..b93cbfc --- /dev/null +++ b/Frontend/ClientApp/tsconfig.json @@ -0,0 +1,21 @@ +{ + "compileOnSave": false, + "compilerOptions": { + "baseUrl": "./", + "module": "esnext", + "outDir": "./dist/out-tsc", + "sourceMap": true, + "declaration": false, + "moduleResolution": "node", + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "target": "es2015", + "typeRoots": [ + "node_modules/@types" + ], + "lib": [ + "es2017", + "dom" + ] + } +} diff --git a/Frontend/ClientApp/tslint.json b/Frontend/ClientApp/tslint.json new file mode 100644 index 0000000..f5f06e9 --- /dev/null +++ b/Frontend/ClientApp/tslint.json @@ -0,0 +1,130 @@ +{ + "rulesDirectory": [ + "node_modules/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-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, + "no-inputs-metadata-property": true, + "no-outputs-metadata-property": true, + "no-host-metadata-property": true, + "no-input-rename": true, + "no-output-rename": true, + "use-lifecycle-interface": true, + "use-pipe-transform-interface": true, + "component-class-suffix": true, + "directive-class-suffix": true + } +} diff --git a/Frontend/Controllers/WeatherForecastController.cs b/Frontend/Controllers/WeatherForecastController.cs new file mode 100644 index 0000000..cc510eb --- /dev/null +++ b/Frontend/Controllers/WeatherForecastController.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.Logging; + +namespace Frontend.Controllers +{ + [ApiController] + [Route("[controller]")] + public class WeatherForecastController : ControllerBase + { + private static readonly string[] Summaries = new[] + { + "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" + }; + + private readonly ILogger _logger; + + public WeatherForecastController(ILogger logger) + { + _logger = logger; + } + + [HttpGet] + public IEnumerable Get() + { + var rng = new Random(); + return Enumerable.Range(1, 5).Select(index => new WeatherForecast + { + Date = DateTime.Now.AddDays(index), + TemperatureC = rng.Next(-20, 55), + Summary = Summaries[rng.Next(Summaries.Length)] + }) + .ToArray(); + } + } +} diff --git a/Frontend/Frontend.csproj b/Frontend/Frontend.csproj new file mode 100644 index 0000000..085b632 --- /dev/null +++ b/Frontend/Frontend.csproj @@ -0,0 +1,54 @@ + + + + net5.0 + true + Latest + false + ClientApp\ + $(DefaultItemExcludes);$(SpaRoot)node_modules\** + + + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + %(DistFiles.Identity) + PreserveNewest + true + + + + + diff --git a/Frontend/Pages/Error.cshtml b/Frontend/Pages/Error.cshtml new file mode 100644 index 0000000..3961204 --- /dev/null +++ b/Frontend/Pages/Error.cshtml @@ -0,0 +1,26 @@ +@page +@model ErrorModel +@{ + ViewData["Title"] = "Error"; +} + +

Error.

+

An error occurred while processing your request.

+ +@if (Model.ShowRequestId) +{ +

+ Request ID: @Model.RequestId +

+} + +

Development Mode

+

+ Swapping to the Development environment displays detailed information about the error that occurred. +

+

+ The Development environment shouldn't be enabled for deployed applications. + It can result in displaying sensitive information from exceptions to end users. + For local debugging, enable the Development environment by setting the ASPNETCORE_ENVIRONMENT environment variable to Development + and restarting the app. +

diff --git a/Frontend/Pages/Error.cshtml.cs b/Frontend/Pages/Error.cshtml.cs new file mode 100644 index 0000000..27dc286 --- /dev/null +++ b/Frontend/Pages/Error.cshtml.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; +using Microsoft.Extensions.Logging; + +namespace Frontend.Pages +{ + [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)] + public class ErrorModel : PageModel + { + private readonly ILogger _logger; + + public ErrorModel(ILogger logger) + { + _logger = logger; + } + + public string RequestId { get; set; } + + public bool ShowRequestId => !string.IsNullOrEmpty(RequestId); + + public void OnGet() + { + RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier; + } + } +} diff --git a/Frontend/Pages/_ViewImports.cshtml b/Frontend/Pages/_ViewImports.cshtml new file mode 100644 index 0000000..3e322c2 --- /dev/null +++ b/Frontend/Pages/_ViewImports.cshtml @@ -0,0 +1,3 @@ +@using Frontend +@namespace Frontend.Pages +@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers diff --git a/Frontend/Program.cs b/Frontend/Program.cs new file mode 100644 index 0000000..ddc7c7a --- /dev/null +++ b/Frontend/Program.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Hosting; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.Hosting; +using Microsoft.Extensions.Logging; + +namespace Frontend +{ + public class Program + { + public static void Main(string[] args) + { + CreateHostBuilder(args).Build().Run(); + } + + public static IHostBuilder CreateHostBuilder(string[] args) => + Host.CreateDefaultBuilder(args) + .ConfigureWebHostDefaults(webBuilder => + { + webBuilder.UseStartup(); + }); + } +} diff --git a/Frontend/Properties/launchSettings.json b/Frontend/Properties/launchSettings.json new file mode 100644 index 0000000..a3d84d5 --- /dev/null +++ b/Frontend/Properties/launchSettings.json @@ -0,0 +1,27 @@ +{ + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:60366", + "sslPort": 44321 + } + }, + "profiles": { + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "Frontend": { + "commandName": "Project", + "launchBrowser": true, + "applicationUrl": "https://localhost:5001;http://localhost:5000", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + } + } +} diff --git a/Frontend/Startup.cs b/Frontend/Startup.cs new file mode 100644 index 0000000..3f58a59 --- /dev/null +++ b/Frontend/Startup.cs @@ -0,0 +1,75 @@ +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Hosting; +using Microsoft.AspNetCore.HttpsPolicy; +using Microsoft.AspNetCore.SpaServices.AngularCli; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; + +namespace Frontend +{ + public class Startup + { + public Startup(IConfiguration configuration) + { + Configuration = configuration; + } + + public IConfiguration Configuration { get; } + + // This method gets called by the runtime. Use this method to add services to the container. + public void ConfigureServices(IServiceCollection services) + { + services.AddControllersWithViews(); + // In production, the Angular files will be served from this directory + services.AddSpaStaticFiles(configuration => + { + configuration.RootPath = "ClientApp/dist"; + }); + } + + // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. + public void Configure(IApplicationBuilder app, IWebHostEnvironment env) + { + if (env.IsDevelopment()) + { + app.UseDeveloperExceptionPage(); + } + else + { + app.UseExceptionHandler("/Error"); + // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts. + app.UseHsts(); + } + + app.UseHttpsRedirection(); + app.UseStaticFiles(); + if (!env.IsDevelopment()) + { + app.UseSpaStaticFiles(); + } + + app.UseRouting(); + + app.UseEndpoints(endpoints => + { + endpoints.MapControllerRoute( + name: "default", + pattern: "{controller}/{action=Index}/{id?}"); + }); + + app.UseSpa(spa => + { + // To learn more about options for serving an Angular SPA from ASP.NET Core, + // see https://go.microsoft.com/fwlink/?linkid=864501 + + spa.Options.SourcePath = "ClientApp"; + + if (env.IsDevelopment()) + { + spa.UseAngularCliServer(npmScript: "start"); + } + }); + } + } +} diff --git a/Frontend/WeatherForecast.cs b/Frontend/WeatherForecast.cs new file mode 100644 index 0000000..779e728 --- /dev/null +++ b/Frontend/WeatherForecast.cs @@ -0,0 +1,15 @@ +using System; + +namespace Frontend +{ + public class WeatherForecast + { + public DateTime Date { get; set; } + + public int TemperatureC { get; set; } + + public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); + + public string Summary { get; set; } + } +} diff --git a/Frontend/appsettings.Development.json b/Frontend/appsettings.Development.json new file mode 100644 index 0000000..8983e0f --- /dev/null +++ b/Frontend/appsettings.Development.json @@ -0,0 +1,9 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft": "Warning", + "Microsoft.Hosting.Lifetime": "Information" + } + } +} diff --git a/Frontend/appsettings.json b/Frontend/appsettings.json new file mode 100644 index 0000000..ad75fee --- /dev/null +++ b/Frontend/appsettings.json @@ -0,0 +1,10 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft": "Warning", + "Microsoft.Hosting.Lifetime": "Information" + } + }, +"AllowedHosts": "*" +} diff --git a/Frontend/wwwroot/favicon.ico b/Frontend/wwwroot/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..63e859b476eff5055e0e557aaa151ca8223fbeef GIT binary patch literal 5430 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 Date: Tue, 11 May 2021 16:43:27 +0200 Subject: [PATCH 002/118] just commit customization --- README.md | 38 +- customization/README.md | 10 + customization/mainpage/fonts/GlitchCity.ttf | Bin 0 -> 73460 bytes customization/mainpage/glitch.js | 78 +++ customization/mainpage/index.html | 34 + customization/mainpage/logo_white.png | Bin 0 -> 40132 bytes customization/mainpage/main.css | 85 +++ customization/mainpage/main.js | 375 +++++++++++ customization/mainpage/typewriter.js | 670 ++++++++++++++++++++ customization/overwrite.css | 0 10 files changed, 1276 insertions(+), 14 deletions(-) create mode 100644 customization/README.md create mode 100644 customization/mainpage/fonts/GlitchCity.ttf create mode 100644 customization/mainpage/glitch.js create mode 100644 customization/mainpage/index.html create mode 100644 customization/mainpage/logo_white.png create mode 100644 customization/mainpage/main.css create mode 100644 customization/mainpage/main.js create mode 100644 customization/mainpage/typewriter.js create mode 100644 customization/overwrite.css diff --git a/README.md b/README.md index f701913..956f7ff 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ # EnoLandingPage ## docker-compose + ```yaml version: '3' @@ -8,21 +9,21 @@ services: enolandingpage: build: . environment: - - "EnoLandingPage__Title=FoobarCTF" - - "EnoLandingPage__StartTime=2020-11-22T15:00:00Z" - - "EnoLandingPage__RegistrationCloseOffset=48" - - "EnoLandingPage__CheckInBeginOffset=12" - - "EnoLandingPage__CheckInEndOffset=2" - - "EnoLandingPage__HetznerVulnboxType=cx11" - - "EnoLandingPage__HetznerCloudApiToken=..." - - "EnoLandingPage__HetznerVulnboxImage=..." - - "EnoLandingPage__HetznerVulnboxPubkey=..." - - "EnoLandingPage__HetznerVulnboxLocation=..." - - "EnoLandingPage__OAuthClientId=..." - - "EnoLandingPage__OAuthClientSecret=..." - - "EnoLandingPage__AdminSecret=..." + - 'EnoLandingPage__Title=FoobarCTF' + - 'EnoLandingPage__StartTime=2020-11-22T15:00:00Z' + - 'EnoLandingPage__RegistrationCloseOffset=48' + - 'EnoLandingPage__CheckInBeginOffset=12' + - 'EnoLandingPage__CheckInEndOffset=2' + - 'EnoLandingPage__HetznerVulnboxType=cx11' + - 'EnoLandingPage__HetznerCloudApiToken=...' + - 'EnoLandingPage__HetznerVulnboxImage=...' + - 'EnoLandingPage__HetznerVulnboxPubkey=...' + - 'EnoLandingPage__HetznerVulnboxLocation=...' + - 'EnoLandingPage__OAuthClientId=...' + - 'EnoLandingPage__OAuthClientSecret=...' + - 'EnoLandingPage__AdminSecret=...' ports: - - "5001:80" + - '5001:80' volumes: - ./sessions:/root/.aspnet/DataProtection-Keys - ./data:/app/data @@ -30,4 +31,13 @@ services: ``` ## Reverse Proxy Configuration + The reverse proxy must set the [XFP header](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Proto) and allow https connections. + +## Concept + +For Better reusability the Frontent makes use of an IFrame Front Page. + +You can rebrand the outer frame by including CSS and supplying some Environment variables but the Main Page can be completley custom made. + +You can even use your own framework for the landing page because it is completly seperate. diff --git a/customization/README.md b/customization/README.md new file mode 100644 index 0000000..7836fad --- /dev/null +++ b/customization/README.md @@ -0,0 +1,10 @@ +# Start + +Use a static file server, e.g.: + +```bash +# NPM +npx live-server --mount=/:./mainpage +# Python +python -m SimpleHTTPServer +``` diff --git a/customization/mainpage/fonts/GlitchCity.ttf b/customization/mainpage/fonts/GlitchCity.ttf new file mode 100644 index 0000000000000000000000000000000000000000..f80ad495f34e578ce4d85246b4db7d558d63ea2b GIT binary patch literal 73460 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 { + canvas.width = innerWidth; + canvas.height = innerHeight; +}); diff --git a/customization/mainpage/index.html b/customization/mainpage/index.html new file mode 100644 index 0000000..2dea8aa --- /dev/null +++ b/customization/mainpage/index.html @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + +
+
TU Berlin Hack3d
+
+ +
+
+
Heart rate: 60 bpm
+
Temperature: 98.6 °C
+
Blood Pressure: 132/88 mmHg
+
Hemoglobin: 14.1 g/dl
+
Minute ventilation: 6.14 L/min
+
+
+
+
ENOWARS 5
+
+ + diff --git a/customization/mainpage/logo_white.png b/customization/mainpage/logo_white.png new file mode 100644 index 0000000000000000000000000000000000000000..9bc92399613a35048a0e229eb90a2644902f916f GIT binary patch literal 40132 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 IM6N<$f@iNY$^ZZW literal 0 HcmV?d00001 diff --git a/customization/mainpage/main.css b/customization/mainpage/main.css new file mode 100644 index 0000000..8b2edc6 --- /dev/null +++ b/customization/mainpage/main.css @@ -0,0 +1,85 @@ +/** Fonts **/ + +@font-face { + font-family: GlitchCity; + src: url(/fonts/GlitchCity.ttf); +} + +.glitch { + font-family: 'GlitchCity'; +} +.noglitch { + font-family: monospace; +} + +.crossed { + text-decoration: line-through; +} + +.skewed-overwrite { + font-size: 40px; + transform: rotate(-10deg); +} + +#glitch { + position: fixed; +} + +/** +* Graphs +*/ + +body { + background-color: #151515; + font-family: 'Cutive Mono', monospace; + font-size: 15px; + color: white; + text-shadow: 0 0 4px #14b51b; +} + +body::after { + /* background: linear-gradient(0deg, rgba(0, 0, 0, 0) 40%, rgba(0, 0, 0, 0.2) 80%); */ + /* background-size: 5px 3px; + display: block; + position: absolute; + content: ''; + width: 100%; + height: 100%; + top: 0; + left: 0; */ +} +.wrapper { + display: grid; + grid-template-columns: 1fr; + grid-template-rows: 80vh; + align-items: center; + justify-items: center; +} + +.grid-container { + display: grid; + grid-template-columns: 400px 400px; + grid-template-rows: 1fr 150px 1fr 1fr 1fr; + grid-row-gap: 10px; + grid-template-areas: 'patient-info date' 'sketch-holder sketch-holder' 'bpm minute-ventilation' 'temperature hb-levels' 'pressure other'; +} + +.patient-info { + grid-area: patient-info; +} + +.text-right { + text-align: right; +} + +.date { + grid-area: date; +} + +.sketch-holder { + grid-area: sketch-holder; +} + +.bpm { + grid-area: bpm; +} diff --git a/customization/mainpage/main.js b/customization/mainpage/main.js new file mode 100644 index 0000000..16de31b --- /dev/null +++ b/customization/mainpage/main.js @@ -0,0 +1,375 @@ +// Keep track of the times draw() has been called +let draw_i = 0; + +var width = 800; +/** + * A Heart object will beat, and generate voltage values according to the time + * the beat started + * + * "Duration" values are really pixels. 1 pixel represents 1/60 of a second. + */ +class Heart { + /** + * Creates an instance of Heart + * @param {number} adDuration Duration in pixels of the atria depolarization + * @param {number} vdDuration Duration in pixels of the ventricle depolarization + * @param {number} vrDuration Duration in pixels of the ventricle repolarization + * + * @property {number} this.beatDuration Duration in pixels of the whole beat + * @property {number} this.nextBeat Time between last beat, and next beat + * @property {number} this.nextBeatIn Time remaining for next beat + * @property {number[]} this.bpm Time between two particular beats + * @property {number} this.voltage Current voltage value. No units used. + */ + constructor(adDuration, vdDuration, vrDuration) { + this.adDuration = adDuration; + this.vdDuration = vdDuration; + this.vrDuration = vrDuration; + + this.beatDuration = adDuration + vdDuration + vrDuration; + + this.nextBeat = 60; + this.nextBeatIn = 60; + this.bpm = []; + this.voltage = 0; + } + + /** + * Assign the heart a new voltage value, and report that value to the ECG + * the heart is connected to. + * @param {number} voltage + */ + setVoltage(voltage) { + this.voltage = voltage; + ecg.addValue({ y: this.voltage }); + } + + /** + * Generates the voltage values corresponding to the atria depolarization process. + * This is the process that generates the first part of the curve of every beat. + * + * @param {number} time Time in pixels since the atria depolarization process started + */ + atriaDepolarization(time) { + // This process is not close to what reality does, but here it is generated using a + // sin function where only the positive values remain, making a bump followed by a + // flat section + let y = randomGaussian(5, 1) * sin(time * (360 / this.adDuration)); + + // To compensate for the y-axis inverted direction, return -y when y is over 0 + y = y > 0 ? -y : 0.2 * (1 - y); + + // Update the voltage to whatever value was calculated + this.setVoltage(y + noise(time)); + } + + /** + * Generates the voltage values corresponding to the ventricle depolarization process. + * This is the process that generates the spiky part of the curve of every beat. + * + * @param {number} time Time in pixels since the ventricle depolarization process started + */ + ventricleDepolarization(time) { + let y; + // In the first third, the curve has a spike going down + if (time <= this.vdDuration / 3) y = (randomGaussian(8, 2) * (this.vdDuration - time)) / 6; + // In the second third, the curve has a big spike going up + else if (time < (2 * this.vdDuration) / 3) { + // Start producing a sound, going from 0 to 0.5 volume in 0.01 seconds + osc.amp(0.5, 0.01); + y = (randomGaussian(70, 2) * abs(1.5 - (this.vdDuration - time))) / 3; + y = -y; + } + + // In the last third, the curve has another spike (bigger than the first one) going down + else { + y = (randomGaussian(20, 2) * (this.vdDuration - time)) / 3; + // Stop the sound, going from 0.5 to 0 volume in 0.01 secs + osc.amp(0, 0.01); + } + + // Update the voltage to whatever value was calculated + this.setVoltage(y); + } + + /** + * Generates the voltage values corresponding to the ventricle repolarization process. + * This is the process that generates the last part of the curve of every beat. + * + * @param {number} time Time in pixels since the ventricle repolarization process started + */ + ventricleRepolarization(time) { + // This process is not close to what reality does, but here it is generated using a + // sin function where only the positive values remain, but displaced half a turn to + // make a flat section followed by a bump + let y = randomGaussian(8, 2) * sin(180 + time * (360 / this.vrDuration)); + + // To compensate for the y-axis inverted direction, return -y when y is over 0 + y = y < 0 ? 0.2 * (1 - y) : -y; + + // Update the voltage to whatever value was calculated + this.setVoltage(y + noise(time)); + } + + updateBPM() { + // bpm = 3600 / pixel-distance + this.bpm.push(3600 / this.nextBeat); + + // To make rapid frequency changes meaningful, get the average bpm using only the + // last 5 values of time, not all of them. So dispose the oldest one when the list + // length is over 5. + if (this.bpm.length > 5) this.bpm.splice(0, 1); + ecg.drawBPM(round(this.bpm.reduce((p, c) => p + c, 0) / this.bpm.length)); + } + /** + * Decrease this.nextBeatIn to simulate the pass of time. + * If necessary, create a new this.nextBeat value + */ + updateTimeToNextBeat() { + // This indicates that the next beat will begin in the next iteration + if (this.nextBeatIn-- === 0) { + // Then calculate a new "remaining time" for the next beat. + // Use the x coordinates of the mouse position to modify the heart frequency + this.nextBeat = abs(ceil(randomGaussian((900 - mouseX) / 10, 3))); + + // It the pixel time between beat and beat is less than 18, force it to be + // 18. This value makes to a bpm of 200. + if (this.nextBeat < 18) this.nextBeat = 18; + + // Get new bpm values using the last this.nextBeat + this.updateBPM(); + + // Reset the remaining time to the new calculated time + this.nextBeatIn = this.nextBeat; + } + } + + /** + * Get voltage values for every second of the beat, even at rest (no-beating time + * after the ventricle repolarization finished, and before the next atria depolarization) + * @param {*} time Time in pixels after the atria depolarization started + */ + beat(time) { + // Update the time left for the start of the next beat + this.updateTimeToNextBeat(); + + // If according to time, beat is in the atria depolarization process, call that function + if (time <= this.adDuration) { + this.atriaDepolarization(time); + return; + } + + // If according to time, beat is in the ventricle depolarization process, call that function + // Update the time so the value sent is relative to the start of the ventricle + // depolarization process + time -= this.adDuration; + if (time <= this.vdDuration) { + this.ventricleDepolarization(time); + return; + } + + // If according to time, beat is in the ventricle repolarization process, call that function + // Update the time so the value sent is relative to the start of the ventricle + // repolarization process + time -= this.vdDuration; + if (time <= this.vrDuration) { + this.ventricleRepolarization(time); + return; + } + + // If function reached this point, it's not in any of the beat processes, and it's resting. + // Add a noisy voltage value + this.setVoltage(0 + noise(draw_i * 0.5) * 5); + } +} + +// Initialize a heart +let heart = new Heart(12, 8, 12); + +/** + * ECG will receive, process, and draw the health information + */ +class ECG { + /** + * @param {Object} graphZero Coordinates of the {0, 0} value of the graph + * @param {Object[]} values Array of {x, y} objects. x plots time, y plots voltage + * @param {number} maxValuesHistory Maximum number of values before wiping oldest one + */ + constructor(graphZero, values, maxValuesHistory) { + this.graphZero = graphZero; + this.values = values; + this.maxValuesHistory = maxValuesHistory; + this.maximumX = maxValuesHistory; + } + + /** + * Add a new voltage value to the values array. If it exceeds the maximum number of + * values allowed to store, remove the oldest one before. + * @param {Object} value {x, y} object. x represents time, y represents voltage + */ + addValue(value) { + // If no x (time) value is received, assume it is the sucessor of the last value + // in the values array. If the new x exceeds the maximum allowed, make x = 0 + if (this.values.length >= this.maxValuesHistory) this.values.splice(0, 1); + if (value.x === undefined) { + value.x = (this.values[this.values.length - 1].x + 1) % this.maximumX; + } + this.values.push(value); + } + + /** + * Draw lines joining every voltage value throughout time in the screen + */ + plotValues() { + push(); + + for (let i = 1; i < this.values.length; i++) { + // If the previous value has a X coordinate higher than the current one, + // don't draw it, to avoid lines crossing from end to start of the ECG plot area. + if (this.values[i - 1].x > this.values[i].x) continue; + + // Older values are drawn with a lower alpha + let alpha = i / this.values.length; + + // Set the color of the drawing + stroke(121, 239, 150, alpha); + fill(121, 239, 150, alpha); + + // Line from previous value to current value + line( + this.graphZero.x + this.values[i - 1].x, + this.graphZero.y + this.values[i - 1].y, + this.graphZero.x + this.values[i].x, + this.graphZero.y + this.values[i].y + ); + + // For the last 5 values, draw a circle with a radius going in function to + // its index. This to make the leading line thicker + if (i + 5 > this.values.length) { + circle(this.graphZero.x + this.values[i].x, this.graphZero.y + this.values[i].y, this.values.length / i); + } + } + pop(); + } + + //// The following methods update the values represented as html elements + + updateInfo() { + this.updateDate(); + if (draw_i % 50 === 0) { + this.updateBloodPressure(); + this.updateVentilation(); + this.updateTemperature(); + this.updateHemoglobin(); + } + } + + updateHemoglobin() { + document.getElementById('hemoglobin-value').innerHTML = randomGaussian(14, 0.1).toFixed(1); + } + updateTemperature() { + document.getElementById('temperature-value').innerHTML = randomGaussian(37, 0.1).toFixed(1); + } + updateVentilation() { + document.getElementById('minute-ventilation-value').innerHTML = randomGaussian(6, 0.5).toFixed(2); + } + + updateBloodPressure() { + document.getElementById('pressure-value').innerHTML = + '' + round(randomGaussian(130, 1)) + '/' + round(randomGaussian(90, 1)); + } + + updateDate() { + let date = new Date(); + date = + '' + + date.getFullYear() + + '-' + + date.getMonth() + + '-' + + date.getDate() + + ' ' + + date.getHours() + + ':' + + date.getMinutes() + + ':' + + date.getSeconds(); + document.getElementById('date-value').innerHTML = date; + } + + /** + * Update the html content of the span containing the bpm info + * @param {number} bpm + */ + drawBPM(bpm) { + document.getElementById('heart-rate-value').innerHTML = bpm; + } +} + +// Initialize the ecg +let ecg = new ECG({ x: 0, y: 110 }, [{ x: 0, y: 0 }], width); + +/** + * Set the general configuration for the p5js canvas + */ +function setup() { + // Create a 600x150 canvas and place it inside the div with id "sketch-holder" + let myCanvas = createCanvas(800, 150); + myCanvas.parent('sketch-holder'); + + // Set the color mode to allow calling RGBA without converting to string + colorMode(RGB, 255, 255, 255, 1); + + // Work with degrees instead of Radians (sin function used inside Heart Class) + angleMode(DEGREES); + + // Set the frequency the ecg will emit every heartbeat. + osc = new p5.Oscillator(); + osc.setType('sine'); + osc.freq(445); + osc.amp(0); + osc.start(); +} + +/** + * Draw a rectangle of size (canvas.width - 1, canvas.height - 1) with dark background + * and a brilliant green border. + * + * The -1 is to allow the border to be seen in the final page. + */ +function drawECGScreenBackground() { + push(); + fill('#201D1D'); + // stroke(121, 239, 150, 1); + rect(0, 0, width - 1, 149); + pop(); +} + +/** + * Function to be called until the page is closed + * Part of p5js + */ +function draw() { + // Keep track of the number of times draw has been called + draw_i++; + + // Hide previous ECG line by drawing a background + drawECGScreenBackground(); + + // Get the new voltage values for the ECG from the heart + heart.beat(heart.nextBeat - heart.nextBeatIn); + + // Draw the line of voltage values over time in the ECG screen + ecg.plotValues(); + + // Update the information values of the ECG + ecg.updateInfo(); +} + +// p5.sound variables +let osc; + +function touchStarted() { + // To prevent sound bugs by browsers asking for permission + getAudioContext().resume(); +} diff --git a/customization/mainpage/typewriter.js b/customization/mainpage/typewriter.js new file mode 100644 index 0000000..3aa4110 --- /dev/null +++ b/customization/mainpage/typewriter.js @@ -0,0 +1,670 @@ +/** + * From: + * https://github.com/ChrisCavs/t-writer.js + */ + +var classCallCheck = function (instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError('Cannot call a class as a function'); + } +}; + +var createClass = (function () { + function defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ('value' in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + + return function (Constructor, protoProps, staticProps) { + if (protoProps) defineProperties(Constructor.prototype, protoProps); + if (staticProps) defineProperties(Constructor, staticProps); + return Constructor; + }; +})(); + +var defaultOptions = { + loop: false, + animateCursor: true, + + blinkSpeed: 400, + + typeSpeed: 90, + deleteSpeed: 40, + + typeSpeedMin: 65, + typeSpeedMax: 115, + + deleteSpeedMin: 40, + deleteSpeedMax: 90, + + typeClass: 'type-span', + cursorClass: 'cursor-span', + + typeColor: 'black', + cursorColor: 'black', +}; + +var Cursor = (function () { + function Cursor(el, speed) { + classCallCheck(this, Cursor); + + this.el = el; + this.speed = speed; + + this.faded = false; + + this.initialAssignment(); + this.el.addEventListener('transitionend', this.logic.bind(this)); + + this.fade = this.fade.bind(this); + this.fadeIn = this.fadeIn.bind(this); + } + + createClass(Cursor, [ + { + key: 'initialAssignment', + value: function initialAssignment() { + Object.assign(this.el.style, { + opacity: '1', + 'transition-duration': '0.1s', + }); + }, + }, + { + key: 'fade', + value: function fade() { + this.el.style.opacity = '0'; + + this.faded = true; + }, + }, + { + key: 'fadeIn', + value: function fadeIn() { + this.el.style.opacity = '1'; + + this.faded = false; + }, + }, + { + key: 'logic', + value: function logic() { + this.faded ? setTimeout(this.fadeIn, this.speed) : setTimeout(this.fade, this.speed); + }, + }, + { + key: 'start', + value: function start() { + setTimeout(this.fade.bind(this), 0); + }, + }, + ]); + return Cursor; +})(); + +var Typewriter = (function () { + function Typewriter(el, options) { + classCallCheck(this, Typewriter); + + this.el = el; + this.text = ''; + this.queue = []; + this.options = Object.assign({}, defaultOptions, options); + + this.createTextEl(); + } + + // USER API + + createClass(Typewriter, [ + { + key: 'type', + value: function type(str) { + this.queue.push({ + type: 'type', + content: str, + }); + + return this; + }, + }, + { + key: 'strings', + value: function strings(interval) { + var _this = this; + + for (var _len = arguments.length, arr = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + arr[_key - 1] = arguments[_key]; + } + + arr.forEach(function (str, i) { + _this.queue.push({ + type: 'type', + content: str, + }); + + if (interval) { + _this.queue.push({ + type: 'pause', + time: interval, + }); + } + + if (i === arr.length - 1) return; + + _this.queue.push({ + type: 'deleteChars', + count: str.length, + }); + }); + + return this; + }, + }, + { + key: 'remove', + value: function remove(num) { + this.queue.push({ + type: 'deleteChars', + count: num, + }); + + return this; + }, + }, + { + key: 'clear', + value: function clear() { + this.queue.push({ + type: 'clear', + }); + + return this; + }, + }, + { + key: 'clearText', + value: function clearText() { + this.text = ''; + this.render(); + + return this; + }, + }, + { + key: 'queueClearText', + value: function queueClearText() { + this.queue.push({ + type: 'clearText', + }); + + return this; + }, + }, + { + key: 'clearQueue', + value: function clearQueue() { + this.queue = []; + this.text = ''; + render(); + + return this; + }, + }, + { + key: 'rest', + value: function rest(time) { + this.queue.push({ + type: 'pause', + time: time, + }); + + return this; + }, + }, + { + key: 'changeOps', + value: function changeOps(options) { + this.queue.push({ + type: 'changeOps', + options: options, + }); + + return this; + }, + }, + { + key: 'then', + value: function then(cb) { + this.queue.push({ + type: 'callback', + cb: cb, + }); + + return this; + }, + }, + { + key: 'removeCursor', + value: function removeCursor() { + this.queue.push({ + type: 'deleteCursor', + }); + + return this; + }, + }, + { + key: 'addCursor', + value: function addCursor() { + this.queue.push({ + type: 'createCursor', + }); + + return this; + }, + }, + { + key: 'changeTypeColor', + value: function changeTypeColor(color) { + this.queue.push({ + type: 'typeColor', + color: color, + }); + + return this; + }, + }, + { + key: 'changeCursorColor', + value: function changeCursorColor(color) { + this.queue.push({ + type: 'cursorColor', + color: color, + }); + + return this; + }, + }, + { + key: 'changeTypeClass', + value: function changeTypeClass(className) { + this.queue.push({ + type: 'typeClass', + className: className, + }); + + return this; + }, + }, + { + key: 'changeCursorClass', + value: function changeCursorClass(className) { + this.queue.push({ + type: 'cursorClass', + className: className, + }); + + return this; + }, + }, + { + key: 'start', + value: function start() { + var _this2 = this; + + if (this.running) return; + + if (!this.cursorEl) { + this.createCursorEl(); + } + + this.running = true; + this.deleteAll().then(function (_) { + return _this2.loop(0); + }); + }, + + // ACTIONS (promises) + }, + { + key: 'add', + value: function add(content) { + var _this3 = this; + + var count = 0; + this.timestamp = Date.now(); + + return new Promise(function (resolve, _) { + var _step = function _step() { + if (count === content.length) return resolve(); + + var newStamp = Date.now(); + var change = newStamp - _this3.timestamp; + + if (change >= _this3.getTypeSpeed()) { + _this3.addChar(content[count]); + _this3.timestamp = newStamp; + count++; + } + requestAnimationFrame(_step); + }; + + requestAnimationFrame(_step); + }); + }, + }, + { + key: 'delete', + value: function _delete(count) { + var _this4 = this; + + this.timestamp = Date.now(); + + return new Promise(function (resolve, _) { + var _step = function _step() { + if (count === 0) return resolve(); + + var newStamp = Date.now(); + var change = newStamp - _this4.timestamp; + + if (change >= _this4.getDeleteSpeed()) { + _this4.deleteChar(); + _this4.timestamp = newStamp; + count--; + } + requestAnimationFrame(_step); + }; + + requestAnimationFrame(_step); + }); + }, + }, + { + key: 'deleteAll', + value: function deleteAll() { + return this.delete(this.text.length); + }, + }, + { + key: 'pause', + value: function pause(time) { + return new Promise(function (resolve, _) { + setTimeout(resolve, time); + }); + }, + }, + { + key: 'callback', + value: function callback(cb) { + return new Promise(function (resolve, _) { + cb(); + resolve(); + }); + }, + }, + { + key: 'deleteCursor', + value: function deleteCursor() { + var _this5 = this; + + return new Promise(function (resolve, _) { + _this5.removeCursorEl(); + resolve(); + }); + }, + }, + { + key: 'createCursor', + value: function createCursor() { + var _this6 = this; + + return new Promise(function (resolve, _) { + _this6.createCursorEl(); + resolve(); + }); + }, + }, + { + key: 'clearTextAction', + value: function clearTextAction() { + var _this7 = this; + + return new Promise(function (resolve, _) { + _this7.clearText(); + resolve(); + }); + }, + }, + { + key: 'changeOpsAction', + value: function changeOpsAction(options) { + var _this8 = this; + + return new Promise(function (resolve, _) { + _this8.options = Object.assign(_this8.options, options); + resolve(); + }); + }, + }, + { + key: 'typeColor', + value: function typeColor(color) { + var _this9 = this; + + return new Promise(function (resolve, _) { + _this9.textEl.style.color = color; + resolve(); + }); + }, + }, + { + key: 'cursorColor', + value: function cursorColor(color) { + var _this10 = this; + + return new Promise(function (resolve, _) { + _this10.cursorEl.style.color = color; + resolve(); + }); + }, + }, + { + key: 'typeClass', + value: function typeClass(className) { + var _this11 = this; + + return new Promise(function (resolve, _) { + _this11.textEl.className = className; + resolve(); + }); + }, + }, + { + key: 'cursorClass', + value: function cursorClass(className) { + var _this12 = this; + + return new Promise(function (resolve, _) { + _this12.cursorEl.className = className; + resolve(); + }); + }, + + // HELPERS + }, + { + key: 'deleteChar', + value: function deleteChar() { + this.text = this.text.slice(0, -1); + this.render(); + }, + }, + { + key: 'addChar', + value: function addChar(char) { + this.text += char; + this.render(); + }, + }, + { + key: 'getTypeSpeed', + value: function getTypeSpeed() { + var speed = this.options.typeSpeed; + + if (typeof speed === 'number') { + return speed; + } + + var max = this.options.typeSpeedMax; + var min = this.options.typeSpeedMin; + + var random = Math.floor(Math.random() * (max - min)); + return random + min; + }, + }, + { + key: 'getDeleteSpeed', + value: function getDeleteSpeed() { + var speed = this.options.deleteSpeed; + + if (typeof speed === 'number') { + return speed; + } + + var max = this.options.deleteSpeedMax; + var min = this.options.deleteSpeedMin; + + var random = Math.floor(Math.random() * (max - min)); + return random + min; + }, + }, + { + key: 'step', + value: function step(idx) { + var action = this.queue[idx]; + + switch (action.type) { + case 'type': + return this.add(action.content); + + case 'deleteChars': + return this.delete(action.count); + + case 'clear': + return this.deleteAll(); + + case 'pause': + return this.pause(action.time); + + case 'callback': + return this.callback(action.cb); + + case 'deleteCursor': + return this.deleteCursor(); + + case 'createCursor': + return this.createCursor(); + + case 'clearText': + return this.clearTextAction(); + + case 'changeOps': + return this.changeOpsAction(action.options); + + case 'typeColor': + return this.typeColor(action.color); + + case 'cursorColor': + return this.cursorColor(action.color); + + case 'typeClass': + return this.typeClass(action.className); + + case 'cursorClass': + return this.cursorClass(action.className); + } + }, + }, + { + key: 'loop', + value: function loop(idx) { + var _this13 = this; + + if (idx === this.queue.length) { + this.running = false; + + if (this.options.loop) { + this.start(); + } + return; + } + + this.step(idx).then(function (_) { + _this13.loop(idx + 1); + }); + }, + }, + { + key: 'createCursorEl', + value: function createCursorEl() { + if (typeof this.options.animateCursor === 'String') return; + + this.cursorEl = document.createElement('span'); + this.cursorEl.innerHTML = '|'; + + this.cursorEl.style.color = this.options.cursorColor; + + this.cursorEl.classList.add(this.options.cursorClass); + + this.el.appendChild(this.cursorEl); + + if (this.options.animateCursor) { + this.cursor = new Cursor(this.cursorEl, this.options.blinkSpeed); + + this.cursor.start(); + } + }, + }, + { + key: 'removeCursorEl', + value: function removeCursorEl() { + this.el.removeChild(this.cursorEl); + + this.cursorEl = null; + }, + }, + { + key: 'createTextEl', + value: function createTextEl() { + this.textEl = document.createElement('span'); + + this.textEl.classList.add(this.options.typeClass); + + this.textEl.style.color = this.options.typeColor; + + this.el.appendChild(this.textEl); + }, + }, + { + key: 'render', + value: function render() { + this.textEl.innerHTML = this.text; + }, + }, + ]); + return Typewriter; +})(); + +const options = { + loop: false, + typeColor: 'white', +}; +const target = document.querySelector('#t-writer-title'); +const writer = new Typewriter(target, options); +writer.type('ENOWARS 5').rest(200).start(); diff --git a/customization/overwrite.css b/customization/overwrite.css new file mode 100644 index 0000000..e69de29 From abc5c532fb5efb7e6a6ec76760184d78eb9a6326 Mon Sep 17 00:00:00 2001 From: Daniel Habenicht Date: Tue, 11 May 2021 17:40:45 +0200 Subject: [PATCH 003/118] some working setip --- customization/mainpage/index.html | 25 +- customization/mainpage/main.css | 1329 +++++++++++++++++++++++++- customization/mainpage/typewriter.js | 1 + 3 files changed, 1341 insertions(+), 14 deletions(-) diff --git a/customization/mainpage/index.html b/customization/mainpage/index.html index 2dea8aa..a503508 100644 --- a/customization/mainpage/index.html +++ b/customization/mainpage/index.html @@ -6,29 +6,36 @@ - - + + +
+
+
TU Berlin Hack3d
-
Heart rate: 60 bpm
-
Temperature: 98.6 °C
-
Blood Pressure: 132/88 mmHg
+
Heart rate: 60 bpm
+
+ Temperature: 98.6 °C +
+
+ Blood Pressure: 132/88 mmHg +
Hemoglobin: 14.1 g/dl
-
Minute ventilation: 6.14 L/min
+ +
+ Minute ventilation: 6.14 L/min +
-
-
ENOWARS 5
-
diff --git a/customization/mainpage/main.css b/customization/mainpage/main.css index 8b2edc6..fdde6a5 100644 --- a/customization/mainpage/main.css +++ b/customization/mainpage/main.css @@ -21,10 +21,6 @@ transform: rotate(-10deg); } -#glitch { - position: fixed; -} - /** * Graphs */ @@ -34,7 +30,7 @@ body { font-family: 'Cutive Mono', monospace; font-size: 15px; color: white; - text-shadow: 0 0 4px #14b51b; + /* text-shadow: 0 0 4px #14b51b; */ } body::after { @@ -83,3 +79,1326 @@ body::after { .bpm { grid-area: bpm; } + +/** +* Glitch: https://codepen.io/cipherbeta/pen/YLdVjw +*/ +.glitch { + position: relative; + color: white; + font-size: 4em; + letter-spacing: 0.5em; + /* Animation provies a slight random skew. Check bottom of doc + for more information on how to random skew. */ + animation: glitch-skew 1s infinite linear alternate-reverse; +} +.glitch::before { + content: attr(data-text); + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + left: 2px; + text-shadow: -2px 0 #ff00c1; + /* Creates an initial clip for our glitch. This works in + a typical top,right,bottom,left fashion and creates a mask + to only show a certain part of the glitch at a time. */ + clip: rect(44px, 450px, 56px, 0); + /* Runs our glitch-anim defined below to run in a 5s loop, infinitely, + with an alternating animation to keep things fresh. */ + animation: glitch-anim 5s infinite linear alternate-reverse; +} +.glitch::after { + content: attr(data-text); + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + left: -2px; + text-shadow: -2px 0 #00fff9, 2px 2px #ff00c1; + animation: glitch-anim2 1s infinite linear alternate-reverse; +} + +/* Creates an animation with 20 steaps. For each step, it calculates + a percentage for the specific step. It then generates a random clip + box to be used for the random glitch effect. Also adds a very subtle + skew to change the 'thickness' of the glitch.*/ +@keyframes glitch-anim { + 0% { + clip: rect(69px, 9999px, 66px, 0); + transform: skew(0.94deg); + } + 5% { + clip: rect(74px, 9999px, 34px, 0); + transform: skew(0.39deg); + } + 10% { + clip: rect(52px, 9999px, 10px, 0); + transform: skew(0.36deg); + } + 15% { + clip: rect(18px, 9999px, 57px, 0); + transform: skew(0.84deg); + } + 20% { + clip: rect(27px, 9999px, 92px, 0); + transform: skew(0.14deg); + } + 25% { + clip: rect(43px, 9999px, 77px, 0); + transform: skew(0.6deg); + } + 30% { + clip: rect(7px, 9999px, 79px, 0); + transform: skew(0.13deg); + } + 35% { + clip: rect(76px, 9999px, 92px, 0); + transform: skew(0.97deg); + } + 40% { + clip: rect(49px, 9999px, 6px, 0); + transform: skew(0.19deg); + } + 45% { + clip: rect(10px, 9999px, 96px, 0); + transform: skew(0.88deg); + } + 50% { + clip: rect(41px, 9999px, 64px, 0); + transform: skew(0.66deg); + } + 55% { + clip: rect(71px, 9999px, 62px, 0); + transform: skew(0.28deg); + } + 60% { + clip: rect(87px, 9999px, 84px, 0); + transform: skew(0.73deg); + } + 65% { + clip: rect(69px, 9999px, 11px, 0); + transform: skew(0.39deg); + } + 70% { + clip: rect(75px, 9999px, 12px, 0); + transform: skew(0.5deg); + } + 75% { + clip: rect(56px, 9999px, 41px, 0); + transform: skew(0.71deg); + } + 80% { + clip: rect(45px, 9999px, 5px, 0); + transform: skew(0.97deg); + } + 85% { + clip: rect(45px, 9999px, 80px, 0); + transform: skew(0.37deg); + } + 90% { + clip: rect(7px, 9999px, 10px, 0); + transform: skew(0.71deg); + } + 95% { + clip: rect(68px, 9999px, 70px, 0); + transform: skew(0.88deg); + } + 100% { + clip: rect(79px, 9999px, 47px, 0); + transform: skew(0.24deg); + } +} +@keyframes glitch-anim2 { + 0% { + clip: rect(4px, 9999px, 47px, 0); + transform: skew(0.02deg); + } + 5% { + clip: rect(79px, 9999px, 88px, 0); + transform: skew(0.83deg); + } + 10% { + clip: rect(45px, 9999px, 47px, 0); + transform: skew(0.8deg); + } + 15% { + clip: rect(17px, 9999px, 12px, 0); + transform: skew(0.56deg); + } + 20% { + clip: rect(89px, 9999px, 30px, 0); + transform: skew(0.47deg); + } + 25% { + clip: rect(56px, 9999px, 81px, 0); + transform: skew(0.93deg); + } + 30% { + clip: rect(12px, 9999px, 37px, 0); + transform: skew(0.6deg); + } + 35% { + clip: rect(22px, 9999px, 96px, 0); + transform: skew(0.31deg); + } + 40% { + clip: rect(79px, 9999px, 49px, 0); + transform: skew(0.21deg); + } + 45% { + clip: rect(19px, 9999px, 95px, 0); + transform: skew(0.09deg); + } + 50% { + clip: rect(27px, 9999px, 43px, 0); + transform: skew(0.49deg); + } + 55% { + clip: rect(21px, 9999px, 29px, 0); + transform: skew(0.14deg); + } + 60% { + clip: rect(49px, 9999px, 19px, 0); + transform: skew(0.79deg); + } + 65% { + clip: rect(54px, 9999px, 60px, 0); + transform: skew(0.83deg); + } + 70% { + clip: rect(73px, 9999px, 80px, 0); + transform: skew(0.98deg); + } + 75% { + clip: rect(28px, 9999px, 21px, 0); + transform: skew(0.63deg); + } + 80% { + clip: rect(78px, 9999px, 96px, 0); + transform: skew(0.68deg); + } + 85% { + clip: rect(88px, 9999px, 21px, 0); + transform: skew(0.48deg); + } + 90% { + clip: rect(44px, 9999px, 61px, 0); + transform: skew(0.19deg); + } + 95% { + clip: rect(91px, 9999px, 48px, 0); + transform: skew(0.82deg); + } + 100% { + clip: rect(78px, 9999px, 59px, 0); + transform: skew(0.21deg); + } +} +@keyframes glitch-skew { + 0% { + transform: skew(0deg); + } + 10% { + transform: skew(4deg); + } + 20% { + transform: skew(3deg); + } + 30% { + transform: skew(-4deg); + } + 40% { + transform: skew(-3deg); + } + 50% { + transform: skew(-4deg); + } + 60% { + transform: skew(0deg); + } + 70% { + transform: skew(0deg); + } + 80% { + transform: skew(-2deg); + } + 90% { + transform: skew(5deg); + } + 100% { + transform: skew(4deg); + } +} + +/** +* Text Glitch +* https://codepen.io/lukemeyrick/pen/ayRgWO +*/ + +.experiment-title { + -webkit-animation: cray 6s infinite steps(50); + animation: cray 6s infinite steps(50); + outline: none; + display: inline-block; +} + +.experiment-title-hover:hover { + -webkit-animation: cray 6s infinite steps(50); + animation: cray 6s infinite steps(50); + animation-delay: 1s; + outline: none; + display: inline-block; +} + +.experiment-title-2 { + -webkit-animation: cray 6s infinite steps(50); + animation: cray 6s infinite steps(50); + outline: none; + display: inline-block; +} +@-webkit-keyframes cray { + 2% { + font-weight: 400; + font-style: normal; + text-decoration: none; + text-transform: none; + } + 4% { + font-weight: 200; + font-style: normal; + text-decoration: none; + text-transform: capitalize; + } + 6% { + font-weight: 100; + font-style: normal; + text-decoration: none; + text-transform: capitalize; + } + 8% { + font-weight: 400; + font-style: italic; + text-decoration: none; + text-transform: none; + } + 10% { + font-weight: 300; + font-style: normal; + text-decoration: none; + text-transform: none; + } + 12% { + font-weight: 600; + font-style: normal; + text-decoration: none; + text-transform: lowercase; + } + 14% { + font-weight: 200; + font-style: normal; + text-decoration: none; + text-transform: capitalize; + } + 16% { + font-weight: 500; + font-style: normal; + text-decoration: none; + text-transform: none; + } + 18% { + font-weight: 100; + font-style: normal; + text-decoration: none; + text-transform: uppercase; + } + 20% { + font-weight: 100; + font-style: normal; + text-decoration: none; + text-transform: none; + } + 22% { + font-weight: 100; + font-style: italic; + text-decoration: underline; + text-transform: capitalize; + } + 24% { + font-weight: 300; + font-style: italic; + text-decoration: none; + text-transform: none; + } + 26% { + font-weight: 100; + font-style: italic; + text-decoration: none; + text-transform: none; + } + 28% { + font-weight: 100; + font-style: normal; + text-decoration: none; + text-transform: none; + } + 30% { + font-weight: 400; + font-style: normal; + text-decoration: line-through; + text-transform: none; + } + 32% { + font-weight: 700; + font-style: normal; + text-decoration: none; + text-transform: none; + } + 34% { + font-weight: 700; + font-style: italic; + text-decoration: none; + text-transform: lowercase; + } + 36% { + font-weight: 400; + font-style: normal; + text-decoration: none; + text-transform: none; + } + 38% { + font-weight: 700; + font-style: normal; + text-decoration: none; + text-transform: none; + } + 40% { + font-weight: 600; + font-style: normal; + text-decoration: none; + text-transform: none; + } + 42% { + font-weight: 600; + font-style: italic; + text-decoration: line-through; + text-transform: none; + } + 44% { + font-weight: 600; + font-style: normal; + text-decoration: none; + text-transform: none; + } + 46% { + font-weight: 500; + font-style: normal; + text-decoration: none; + text-transform: capitalize; + } + 48% { + font-weight: 400; + font-style: normal; + text-decoration: none; + text-transform: none; + } + 50% { + font-weight: 400; + font-style: normal; + text-decoration: underline; + text-transform: none; + } + 52% { + font-weight: 100; + font-style: normal; + text-decoration: none; + text-transform: capitalize; + } + 54% { + font-weight: 200; + font-style: normal; + text-decoration: none; + text-transform: none; + } + 56% { + font-weight: 300; + font-style: normal; + text-decoration: underline; + text-transform: uppercase; + } + 58% { + font-weight: 300; + font-style: italic; + text-decoration: none; + text-transform: lowercase; + } + 60% { + font-weight: 300; + font-style: italic; + text-decoration: none; + text-transform: none; + } + 62% { + font-weight: 100; + font-style: italic; + text-decoration: none; + text-transform: none; + } + 64% { + font-weight: 200; + font-style: normal; + text-decoration: none; + text-transform: none; + } + 66% { + font-weight: 100; + font-style: normal; + text-decoration: none; + text-transform: none; + } + 68% { + font-weight: 100; + font-style: normal; + text-decoration: underline; + text-transform: uppercase; + } + 70% { + font-weight: 600; + font-style: italic; + text-decoration: line-through; + text-transform: none; + } + 72% { + font-weight: 400; + font-style: italic; + text-decoration: none; + text-transform: none; + } + 74% { + font-weight: 100; + font-style: normal; + text-decoration: none; + text-transform: none; + } + 76% { + font-weight: 400; + font-style: normal; + text-decoration: underline; + text-transform: lowercase; + } + 78% { + font-weight: 400; + font-style: normal; + text-decoration: none; + text-transform: none; + } + 80% { + font-weight: 300; + font-style: normal; + text-decoration: none; + text-transform: lowercase; + } + 82% { + font-weight: 400; + font-style: italic; + text-decoration: underline; + text-transform: none; + } + 84% { + font-weight: 500; + font-style: normal; + text-decoration: none; + text-transform: none; + } + 86% { + font-weight: 600; + font-style: normal; + text-decoration: none; + text-transform: capitalize; + } + 88% { + font-weight: 700; + font-style: normal; + text-decoration: underline; + text-transform: lowercase; + } + 90% { + font-weight: 600; + font-style: italic; + text-decoration: none; + text-transform: none; + } + 92% { + font-weight: 200; + font-style: normal; + text-decoration: none; + text-transform: none; + } + 94% { + font-weight: 700; + font-style: normal; + text-decoration: underline; + text-transform: lowercase; + } + 96% { + font-weight: 700; + font-style: normal; + text-decoration: underline; + text-transform: none; + } + 98% { + font-weight: 100; + font-style: italic; + text-decoration: none; + text-transform: none; + } +} +@keyframes cray { + 2% { + font-weight: 400; + font-style: normal; + text-decoration: none; + text-transform: none; + } + 4% { + font-weight: 200; + font-style: normal; + text-decoration: none; + text-transform: capitalize; + } + 6% { + font-weight: 100; + font-style: normal; + text-decoration: none; + text-transform: capitalize; + } + 8% { + font-weight: 400; + font-style: italic; + text-decoration: none; + text-transform: none; + } + 10% { + font-weight: 300; + font-style: normal; + text-decoration: none; + text-transform: none; + } + 12% { + font-weight: 600; + font-style: normal; + text-decoration: none; + text-transform: lowercase; + } + 14% { + font-weight: 200; + font-style: normal; + text-decoration: none; + text-transform: capitalize; + } + 16% { + font-weight: 500; + font-style: normal; + text-decoration: none; + text-transform: none; + } + 18% { + font-weight: 100; + font-style: normal; + text-decoration: none; + text-transform: uppercase; + } + 20% { + font-weight: 100; + font-style: normal; + text-decoration: none; + text-transform: none; + } + 22% { + font-weight: 100; + font-style: italic; + text-decoration: underline; + text-transform: capitalize; + } + 24% { + font-weight: 300; + font-style: italic; + text-decoration: none; + text-transform: none; + } + 26% { + font-weight: 100; + font-style: italic; + text-decoration: none; + text-transform: none; + } + 28% { + font-weight: 100; + font-style: normal; + text-decoration: none; + text-transform: none; + } + 30% { + font-weight: 400; + font-style: normal; + text-decoration: line-through; + text-transform: none; + } + 32% { + font-weight: 700; + font-style: normal; + text-decoration: none; + text-transform: none; + } + 34% { + font-weight: 700; + font-style: italic; + text-decoration: none; + text-transform: lowercase; + } + 36% { + font-weight: 400; + font-style: normal; + text-decoration: none; + text-transform: none; + } + 38% { + font-weight: 700; + font-style: normal; + text-decoration: none; + text-transform: none; + } + 40% { + font-weight: 600; + font-style: normal; + text-decoration: none; + text-transform: none; + } + 42% { + font-weight: 600; + font-style: italic; + text-decoration: line-through; + text-transform: none; + } + 44% { + font-weight: 600; + font-style: normal; + text-decoration: none; + text-transform: none; + } + 46% { + font-weight: 500; + font-style: normal; + text-decoration: none; + text-transform: capitalize; + } + 48% { + font-weight: 400; + font-style: normal; + text-decoration: none; + text-transform: none; + } + 50% { + font-weight: 400; + font-style: normal; + text-decoration: underline; + text-transform: none; + } + 52% { + font-weight: 100; + font-style: normal; + text-decoration: none; + text-transform: capitalize; + } + 54% { + font-weight: 200; + font-style: normal; + text-decoration: none; + text-transform: none; + } + 56% { + font-weight: 300; + font-style: normal; + text-decoration: underline; + text-transform: uppercase; + } + 58% { + font-weight: 300; + font-style: italic; + text-decoration: none; + text-transform: lowercase; + } + 60% { + font-weight: 300; + font-style: italic; + text-decoration: none; + text-transform: none; + } + 62% { + font-weight: 100; + font-style: italic; + text-decoration: none; + text-transform: none; + } + 64% { + font-weight: 200; + font-style: normal; + text-decoration: none; + text-transform: none; + } + 66% { + font-weight: 100; + font-style: normal; + text-decoration: none; + text-transform: none; + } + 68% { + font-weight: 100; + font-style: normal; + text-decoration: underline; + text-transform: uppercase; + } + 70% { + font-weight: 600; + font-style: italic; + text-decoration: line-through; + text-transform: none; + } + 72% { + font-weight: 400; + font-style: italic; + text-decoration: none; + text-transform: none; + } + 74% { + font-weight: 100; + font-style: normal; + text-decoration: none; + text-transform: none; + } + 76% { + font-weight: 400; + font-style: normal; + text-decoration: underline; + text-transform: lowercase; + } + 78% { + font-weight: 400; + font-style: normal; + text-decoration: none; + text-transform: none; + } + 80% { + font-weight: 300; + font-style: normal; + text-decoration: none; + text-transform: lowercase; + } + 82% { + font-weight: 400; + font-style: italic; + text-decoration: underline; + text-transform: none; + } + 84% { + font-weight: 500; + font-style: normal; + text-decoration: none; + text-transform: none; + } + 86% { + font-weight: 600; + font-style: normal; + text-decoration: none; + text-transform: capitalize; + } + 88% { + font-weight: 700; + font-style: normal; + text-decoration: underline; + text-transform: lowercase; + } + 90% { + font-weight: 600; + font-style: italic; + text-decoration: none; + text-transform: none; + } + 92% { + font-weight: 200; + font-style: normal; + text-decoration: none; + text-transform: none; + } + 94% { + font-weight: 700; + font-style: normal; + text-decoration: underline; + text-transform: lowercase; + } + 96% { + font-weight: 700; + font-style: normal; + text-decoration: underline; + text-transform: none; + } + 98% { + font-weight: 100; + font-style: italic; + text-decoration: none; + text-transform: none; + } +} + +/** +* Another Glitch +*/ + +.glitch-2 { + text-decoration: none; + text-transform: uppercase; + margin: 0; + position: relative; +} +.glitch-2:before, +.glitch-2:after { + display: block; + content: attr(data-text); + text-transform: uppercase; + position: absolute; + top: 0; + left: 0; + height: 100%; + width: 100%; + opacity: 0.8; +} +.glitch-2:after { + animation: glitch 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94) reverse both infinite; + color: #f0f; + z-index: -2; +} +.glitch-2:before { + -webkit-animation: glitch 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94) both infinite; + animation: glitch 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94) both infinite; + color: #0ff; + z-index: -1; +} + +@media only screen and (max-width: 400px) { + .glitch-2 { + font-size: 3em; + } +} +@-webkit-keyframes glitch { + 0% { + transform: translate(0); + } + 20% { + transform: translate(-2px, 2px); + } + 40% { + transform: translate(-2px, -2px); + } + 60% { + transform: translate(2px, 2px); + } + 80% { + transform: translate(2px, -2px); + } + to { + transform: translate(0); + } +} +@keyframes glitch { + 0% { + transform: translate(0); + } + 20% { + transform: translate(-2px, 2px); + } + 40% { + transform: translate(-2px, -2px); + } + 60% { + transform: translate(2px, 2px); + } + 80% { + transform: translate(2px, -2px); + } + to { + transform: translate(0); + } +} + +/** +* and another glitch +*/ +.glitch-wrapper { + height: 100%; + display: flex; + justify-content: center; + align-items: center; +} +.glitch { + color: white; + font-size: 150px; + text-transform: upercase; + position: relative; + display: inline-block; +} +.glitch::before, +.glitch::after { + content: attr(data-text); + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: black; +} +.glitch::before { + left: 2px; + text-shadow: -2px 0 #49fc00; + clip: rect(24px, 550px, 90px, 0); + animation: glitch-anim-2 3s infinite linear alternate-reverse; +} +.glitch::after { + left: -2px; + text-shadow: -2px 0 #b300fc; + clip: rect(85px, 550px, 140px, 0); + animation: glitch-anim 2.5s infinite linear alternate-reverse; +} +@-webkit-keyframes glitch-anim { + 0% { + clip: rect(26px, 9999px, 117px, 0); + } + 4.166666666666666% { + clip: rect(106px, 9999px, 136px, 0); + } + 8.333333333333332% { + clip: rect(147px, 9999px, 150px, 0); + } + 12.5% { + clip: rect(78px, 9999px, 59px, 0); + } + 16.666666666666664% { + clip: rect(18px, 9999px, 67px, 0); + } + 20.833333333333336% { + clip: rect(74px, 9999px, 150px, 0); + } + 25% { + clip: rect(99px, 9999px, 126px, 0); + } + 29.166666666666668% { + clip: rect(138px, 9999px, 86px, 0); + } + 33.33333333333333% { + clip: rect(54px, 9999px, 35px, 0); + } + 37.5% { + clip: rect(67px, 9999px, 113px, 0); + } + 41.66666666666667% { + clip: rect(139px, 9999px, 13px, 0); + } + 45.83333333333333% { + clip: rect(65px, 9999px, 22px, 0); + } + 50% { + clip: rect(148px, 9999px, 83px, 0); + } + 54.166666666666664% { + clip: rect(38px, 9999px, 19px, 0); + } + 58.333333333333336% { + clip: rect(97px, 9999px, 138px, 0); + } + 62.5% { + clip: rect(31px, 9999px, 59px, 0); + } + 66.66666666666666% { + clip: rect(15px, 9999px, 83px, 0); + } + 70.83333333333334% { + clip: rect(42px, 9999px, 58px, 0); + } + 75% { + clip: rect(115px, 9999px, 103px, 0); + } + 79.16666666666666% { + clip: rect(95px, 9999px, 144px, 0); + } + 83.33333333333334% { + clip: rect(100px, 9999px, 148px, 0); + } + 87.5% { + clip: rect(32px, 9999px, 129px, 0); + } + 91.66666666666666% { + clip: rect(47px, 9999px, 78px, 0); + } + 95.83333333333334% { + clip: rect(8px, 9999px, 72px, 0); + } + 100% { + clip: rect(2px, 9999px, 38px, 0); + } +} +@keyframes glitch-anim { + 0% { + clip: rect(26px, 9999px, 117px, 0); + } + 4.166666666666666% { + clip: rect(106px, 9999px, 136px, 0); + } + 8.333333333333332% { + clip: rect(147px, 9999px, 150px, 0); + } + 12.5% { + clip: rect(78px, 9999px, 59px, 0); + } + 16.666666666666664% { + clip: rect(18px, 9999px, 67px, 0); + } + 20.833333333333336% { + clip: rect(74px, 9999px, 150px, 0); + } + 25% { + clip: rect(99px, 9999px, 126px, 0); + } + 29.166666666666668% { + clip: rect(138px, 9999px, 86px, 0); + } + 33.33333333333333% { + clip: rect(54px, 9999px, 35px, 0); + } + 37.5% { + clip: rect(67px, 9999px, 113px, 0); + } + 41.66666666666667% { + clip: rect(139px, 9999px, 13px, 0); + } + 45.83333333333333% { + clip: rect(65px, 9999px, 22px, 0); + } + 50% { + clip: rect(148px, 9999px, 83px, 0); + } + 54.166666666666664% { + clip: rect(38px, 9999px, 19px, 0); + } + 58.333333333333336% { + clip: rect(97px, 9999px, 138px, 0); + } + 62.5% { + clip: rect(31px, 9999px, 59px, 0); + } + 66.66666666666666% { + clip: rect(15px, 9999px, 83px, 0); + } + 70.83333333333334% { + clip: rect(42px, 9999px, 58px, 0); + } + 75% { + clip: rect(115px, 9999px, 103px, 0); + } + 79.16666666666666% { + clip: rect(95px, 9999px, 144px, 0); + } + 83.33333333333334% { + clip: rect(100px, 9999px, 148px, 0); + } + 87.5% { + clip: rect(32px, 9999px, 129px, 0); + } + 91.66666666666666% { + clip: rect(47px, 9999px, 78px, 0); + } + 95.83333333333334% { + clip: rect(8px, 9999px, 72px, 0); + } + 100% { + clip: rect(2px, 9999px, 38px, 0); + } +} +@-webkit-keyframes glitch-anim-2 { + 6.666666666666667% { + clip: rect(58px, 9999px, 107px, 0); + } + 10% { + clip: rect(63px, 9999px, 32px, 0); + } + 13.333333333333334% { + clip: rect(83px, 9999px, 85px, 0); + } + 16.666666666666664% { + clip: rect(39px, 9999px, 133px, 0); + } + 20% { + clip: rect(24px, 9999px, 83px, 0); + } + 23.333333333333332% { + clip: rect(53px, 9999px, 49px, 0); + } + 26.666666666666668% { + clip: rect(145px, 9999px, 95px, 0); + } + 30% { + clip: rect(20px, 9999px, 116px, 0); + } + 33.33333333333333% { + clip: rect(6px, 9999px, 50px, 0); + } + 36.666666666666664% { + clip: rect(85px, 9999px, 142px, 0); + } + 40% { + clip: rect(46px, 9999px, 139px, 0); + } + 43.333333333333336% { + clip: rect(116px, 9999px, 16px, 0); + } + 46.666666666666664% { + clip: rect(115px, 9999px, 14px, 0); + } + 50% { + clip: rect(86px, 9999px, 58px, 0); + } + 53.333333333333336% { + clip: rect(136px, 9999px, 39px, 0); + } + 56.666666666666664% { + clip: rect(36px, 9999px, 52px, 0); + } + 60% { + clip: rect(118px, 9999px, 51px, 0); + } + 63.33333333333333% { + clip: rect(47px, 9999px, 69px, 0); + } + 66.66666666666666% { + clip: rect(29px, 9999px, 39px, 0); + } + 70% { + clip: rect(53px, 9999px, 116px, 0); + } + 73.33333333333333% { + clip: rect(48px, 9999px, 69px, 0); + } + 76.66666666666667% { + clip: rect(118px, 9999px, 146px, 0); + } + 80% { + clip: rect(136px, 9999px, 75px, 0); + } + 83.33333333333334% { + clip: rect(31px, 9999px, 94px, 0); + } + 86.66666666666667% { + clip: rect(137px, 9999px, 14px, 0); + } + 90% { + clip: rect(21px, 9999px, 82px, 0); + } + 93.33333333333333% { + clip: rect(26px, 9999px, 120px, 0); + } + 96.66666666666667% { + clip: rect(131px, 9999px, 56px, 0); + } + 100% { + clip: rect(109px, 9999px, 104px, 0); + } +} +@keyframes glitch-anim-2 { + 6.666666666666667% { + clip: rect(58px, 9999px, 107px, 0); + } + 10% { + clip: rect(63px, 9999px, 32px, 0); + } + 13.333333333333334% { + clip: rect(83px, 9999px, 85px, 0); + } + 16.666666666666664% { + clip: rect(39px, 9999px, 133px, 0); + } + 20% { + clip: rect(24px, 9999px, 83px, 0); + } + 23.333333333333332% { + clip: rect(53px, 9999px, 49px, 0); + } + 26.666666666666668% { + clip: rect(145px, 9999px, 95px, 0); + } + 30% { + clip: rect(20px, 9999px, 116px, 0); + } + 33.33333333333333% { + clip: rect(6px, 9999px, 50px, 0); + } + 36.666666666666664% { + clip: rect(85px, 9999px, 142px, 0); + } + 40% { + clip: rect(46px, 9999px, 139px, 0); + } + 43.333333333333336% { + clip: rect(116px, 9999px, 16px, 0); + } + 46.666666666666664% { + clip: rect(115px, 9999px, 14px, 0); + } + 50% { + clip: rect(86px, 9999px, 58px, 0); + } + 53.333333333333336% { + clip: rect(136px, 9999px, 39px, 0); + } + 56.666666666666664% { + clip: rect(36px, 9999px, 52px, 0); + } + 60% { + clip: rect(118px, 9999px, 51px, 0); + } + 63.33333333333333% { + clip: rect(47px, 9999px, 69px, 0); + } + 66.66666666666666% { + clip: rect(29px, 9999px, 39px, 0); + } + 70% { + clip: rect(53px, 9999px, 116px, 0); + } + 73.33333333333333% { + clip: rect(48px, 9999px, 69px, 0); + } + 76.66666666666667% { + clip: rect(118px, 9999px, 146px, 0); + } + 80% { + clip: rect(136px, 9999px, 75px, 0); + } + 83.33333333333334% { + clip: rect(31px, 9999px, 94px, 0); + } + 86.66666666666667% { + clip: rect(137px, 9999px, 14px, 0); + } + 90% { + clip: rect(21px, 9999px, 82px, 0); + } + 93.33333333333333% { + clip: rect(26px, 9999px, 120px, 0); + } + 96.66666666666667% { + clip: rect(131px, 9999px, 56px, 0); + } + 100% { + clip: rect(109px, 9999px, 104px, 0); + } +} diff --git a/customization/mainpage/typewriter.js b/customization/mainpage/typewriter.js index 3aa4110..8393742 100644 --- a/customization/mainpage/typewriter.js +++ b/customization/mainpage/typewriter.js @@ -655,6 +655,7 @@ var Typewriter = (function () { key: 'render', value: function render() { this.textEl.innerHTML = this.text; + this.textEl.setAttribute('data-text', this.text); }, }, ]); From 0f4844e7bcdb78ee1599bd323d3fe9885ed3857f Mon Sep 17 00:00:00 2001 From: Daniel Habenicht Date: Tue, 11 May 2021 18:49:26 +0200 Subject: [PATCH 004/118] final draft --- customization/mainpage/index.html | 61 ++-- customization/mainpage/main.css | 398 ++++++++++++++++++++++++--- customization/mainpage/typewriter.js | 8 +- 3 files changed, 404 insertions(+), 63 deletions(-) diff --git a/customization/mainpage/index.html b/customization/mainpage/index.html index a503508..4aec557 100644 --- a/customization/mainpage/index.html +++ b/customization/mainpage/index.html @@ -8,34 +8,55 @@ + - -
-
+ +
+
Attack / Defense CTF
+
+
10 July 2021 | 12:00-22:00 UTC
-
-
TU Berlin Hack3d
-
- -
-
-
Heart rate: 60 bpm
-
- Temperature: 98.6 °C -
-
- Blood Pressure: 132/88 mmHg -
-
Hemoglobin: 14.1 g/dl
+
+
+
Subject: TU Berlin Hack3d
+
+ +
+
+
+ Heart rate: 60 bpm +
+
+ Temperature: 98.6 °C +
+
+ Blood Pressure: 132/88 mmHg +
+
+ Hemoglobin: 14.1 g/dl +
-
- Minute ventilation: 6.14 L/min +
+ Minute ventilation: 6.14 L/min +
+
-
+
+
+

Registration

+

You can register on CTF Time.

+
+
+

Host

+

+ The AG Rechnersicherheit (Workgroup for Computer Security) at + the TU Berlin +

+
diff --git a/customization/mainpage/main.css b/customization/mainpage/main.css index fdde6a5..a3c8dac 100644 --- a/customization/mainpage/main.css +++ b/customization/mainpage/main.css @@ -1,11 +1,26 @@ /** Fonts **/ +html { + width: 100%; + height: 100%; +} +body { + background-color: #151515; + font-family: 'Cutive Mono', monospace; + font-size: 15px; + color: white; + /* text-shadow: 0 0 4px #14b51b; */ +} +a { + color: white; +} + @font-face { font-family: GlitchCity; src: url(/fonts/GlitchCity.ttf); } -.glitch { +.glitch-font { font-family: 'GlitchCity'; } .noglitch { @@ -16,38 +31,38 @@ text-decoration: line-through; } -.skewed-overwrite { - font-size: 40px; - transform: rotate(-10deg); +img { + margin: 100px 0; } -/** -* Graphs -*/ +.page { + height: 100vh; + flex-flow: column; + display: flex; + justify-content: center; + align-items: center; +} +.page-50 { + height: 50vh; +} -body { - background-color: #151515; - font-family: 'Cutive Mono', monospace; - font-size: 15px; - color: white; - /* text-shadow: 0 0 4px #14b51b; */ +.title { + font-size: 4em; + letter-spacing: 0.5em; + margin: 20px 0; } -body::after { - /* background: linear-gradient(0deg, rgba(0, 0, 0, 0) 40%, rgba(0, 0, 0, 0.2) 80%); */ - /* background-size: 5px 3px; - display: block; - position: absolute; - content: ''; - width: 100%; - height: 100%; - top: 0; - left: 0; */ +.subtitle { + font-size: 2em; } -.wrapper { + +/** +* Graphs +*/ + +#graphs { display: grid; grid-template-columns: 1fr; - grid-template-rows: 80vh; align-items: center; justify-items: center; } @@ -85,9 +100,6 @@ body::after { */ .glitch { position: relative; - color: white; - font-size: 4em; - letter-spacing: 0.5em; /* Animation provies a slight random skew. Check bottom of doc for more information on how to random skew. */ animation: glitch-skew 1s infinite linear alternate-reverse; @@ -1033,44 +1045,41 @@ body::after { } /** -* and another glitch +* and another glitch https://codepen.io/anatravas/pen/mOyNWR */ .glitch-wrapper { - height: 100%; display: flex; justify-content: center; align-items: center; } -.glitch { +.glitch-3 { color: white; - font-size: 150px; text-transform: upercase; position: relative; display: inline-block; } -.glitch::before, -.glitch::after { +.glitch-3::before, +.glitch-3::after { content: attr(data-text); position: absolute; top: 0; left: 0; width: 100%; height: 100%; - background: black; } -.glitch::before { +.glitch-3::before { left: 2px; text-shadow: -2px 0 #49fc00; clip: rect(24px, 550px, 90px, 0); animation: glitch-anim-2 3s infinite linear alternate-reverse; } -.glitch::after { +.glitch-3::after { left: -2px; text-shadow: -2px 0 #b300fc; clip: rect(85px, 550px, 140px, 0); - animation: glitch-anim 2.5s infinite linear alternate-reverse; + animation: glitch-anim-2 2.5s infinite linear alternate-reverse; } -@-webkit-keyframes glitch-anim { +@-webkit-keyframes glitch-anim-2 { 0% { clip: rect(26px, 9999px, 117px, 0); } @@ -1147,7 +1156,7 @@ body::after { clip: rect(2px, 9999px, 38px, 0); } } -@keyframes glitch-anim { +@keyframes glitch-anim-2 { 0% { clip: rect(26px, 9999px, 117px, 0); } @@ -1224,7 +1233,7 @@ body::after { clip: rect(2px, 9999px, 38px, 0); } } -@-webkit-keyframes glitch-anim-2 { +@-webkit-keyframes glitch-anim-2-2 { 6.666666666666667% { clip: rect(58px, 9999px, 107px, 0); } @@ -1313,7 +1322,7 @@ body::after { clip: rect(109px, 9999px, 104px, 0); } } -@keyframes glitch-anim-2 { +@keyframes glitch-anim-2-2 { 6.666666666666667% { clip: rect(58px, 9999px, 107px, 0); } @@ -1402,3 +1411,308 @@ body::after { clip: rect(109px, 9999px, 104px, 0); } } + +/** +* Glitch numero 4 +*/ + +.glitch-4 { + position: relative; + margin: 0 auto; +} + +.glitch-4::before, +.glitch-4::after { + -webkit-animation-iteration-count: infinite; + animation-iteration-count: infinite; + -webkit-animation-timing-function: linear; + animation-timing-function: linear; + animation-direction: alternate-reverse; + overflow: hidden; + position: absolute; + top: 0; + clip: rect(0, 900px, 0, 0); + background: black; + content: attr(data-text); +} + +.glitch-4::after { + -webkit-animation-name: glitch-animation; + animation-name: glitch-animation; + -webkit-animation-duration: 4s; + animation-duration: 4s; + left: 4px; + text-shadow: -1px 0 #ffa800; +} + +.glitch-4::before { + -webkit-animation-name: glitch-animation-2; + animation-name: glitch-animation-2; + -webkit-animation-duration: 6s; + animation-duration: 6s; + left: -4px; + text-shadow: 1px 0 #00d8ff; + background-color: black; +} + +/* Expanded Animations */ +@-webkit-keyframes glitch-animation { + 0% { + clip: rect(42px, 9999px, 44px, 0); + } + 5% { + clip: rect(12px, 9999px, 59px, 0); + } + 10% { + clip: rect(48px, 9999px, 29px, 0); + } + 15.0% { + clip: rect(42px, 9999px, 73px, 0); + } + 20% { + clip: rect(63px, 9999px, 27px, 0); + } + 25% { + clip: rect(34px, 9999px, 55px, 0); + } + 30.0% { + clip: rect(86px, 9999px, 73px, 0); + } + 35% { + clip: rect(20px, 9999px, 20px, 0); + } + 40% { + clip: rect(26px, 9999px, 60px, 0); + } + 45% { + clip: rect(25px, 9999px, 66px, 0); + } + 50% { + clip: rect(57px, 9999px, 98px, 0); + } + 55.0% { + clip: rect(5px, 9999px, 46px, 0); + } + 60.0% { + clip: rect(82px, 9999px, 31px, 0); + } + 65% { + clip: rect(54px, 9999px, 27px, 0); + } + 70% { + clip: rect(28px, 9999px, 99px, 0); + } + 75% { + clip: rect(45px, 9999px, 69px, 0); + } + 80% { + clip: rect(23px, 9999px, 85px, 0); + } + 85.0% { + clip: rect(54px, 9999px, 84px, 0); + } + 90% { + clip: rect(45px, 9999px, 47px, 0); + } + 95% { + clip: rect(37px, 9999px, 20px, 0); + } + 100% { + clip: rect(4px, 9999px, 91px, 0); + } +} +@keyframes glitch-animation { + 0% { + clip: rect(42px, 9999px, 44px, 0); + } + 5% { + clip: rect(12px, 9999px, 59px, 0); + } + 10% { + clip: rect(48px, 9999px, 29px, 0); + } + 15.0% { + clip: rect(42px, 9999px, 73px, 0); + } + 20% { + clip: rect(63px, 9999px, 27px, 0); + } + 25% { + clip: rect(34px, 9999px, 55px, 0); + } + 30.0% { + clip: rect(86px, 9999px, 73px, 0); + } + 35% { + clip: rect(20px, 9999px, 20px, 0); + } + 40% { + clip: rect(26px, 9999px, 60px, 0); + } + 45% { + clip: rect(25px, 9999px, 66px, 0); + } + 50% { + clip: rect(57px, 9999px, 98px, 0); + } + 55.0% { + clip: rect(5px, 9999px, 46px, 0); + } + 60.0% { + clip: rect(82px, 9999px, 31px, 0); + } + 65% { + clip: rect(54px, 9999px, 27px, 0); + } + 70% { + clip: rect(28px, 9999px, 99px, 0); + } + 75% { + clip: rect(45px, 9999px, 69px, 0); + } + 80% { + clip: rect(23px, 9999px, 85px, 0); + } + 85.0% { + clip: rect(54px, 9999px, 84px, 0); + } + 90% { + clip: rect(45px, 9999px, 47px, 0); + } + 95% { + clip: rect(37px, 9999px, 20px, 0); + } + 100% { + clip: rect(4px, 9999px, 91px, 0); + } +} +@-webkit-keyframes glitch-animation-2 { + 0% { + clip: rect(65px, 9999px, 100px, 0); + } + 5% { + clip: rect(52px, 9999px, 74px, 0); + } + 10% { + clip: rect(79px, 9999px, 85px, 0); + } + 15.0% { + clip: rect(75px, 9999px, 5px, 0); + } + 20% { + clip: rect(67px, 9999px, 61px, 0); + } + 25% { + clip: rect(14px, 9999px, 79px, 0); + } + 30.0% { + clip: rect(1px, 9999px, 66px, 0); + } + 35% { + clip: rect(86px, 9999px, 30px, 0); + } + 40% { + clip: rect(23px, 9999px, 98px, 0); + } + 45% { + clip: rect(85px, 9999px, 72px, 0); + } + 50% { + clip: rect(71px, 9999px, 75px, 0); + } + 55.0% { + clip: rect(2px, 9999px, 48px, 0); + } + 60.0% { + clip: rect(30px, 9999px, 16px, 0); + } + 65% { + clip: rect(59px, 9999px, 50px, 0); + } + 70% { + clip: rect(41px, 9999px, 62px, 0); + } + 75% { + clip: rect(2px, 9999px, 82px, 0); + } + 80% { + clip: rect(47px, 9999px, 73px, 0); + } + 85.0% { + clip: rect(3px, 9999px, 27px, 0); + } + 90% { + clip: rect(26px, 9999px, 55px, 0); + } + 95% { + clip: rect(42px, 9999px, 97px, 0); + } + 100% { + clip: rect(38px, 9999px, 49px, 0); + } +} +@keyframes glitch-animation-2 { + 0% { + clip: rect(65px, 9999px, 100px, 0); + } + 5% { + clip: rect(52px, 9999px, 74px, 0); + } + 10% { + clip: rect(79px, 9999px, 85px, 0); + } + 15.0% { + clip: rect(75px, 9999px, 5px, 0); + } + 20% { + clip: rect(67px, 9999px, 61px, 0); + } + 25% { + clip: rect(14px, 9999px, 79px, 0); + } + 30.0% { + clip: rect(1px, 9999px, 66px, 0); + } + 35% { + clip: rect(86px, 9999px, 30px, 0); + } + 40% { + clip: rect(23px, 9999px, 98px, 0); + } + 45% { + clip: rect(85px, 9999px, 72px, 0); + } + 50% { + clip: rect(71px, 9999px, 75px, 0); + } + 55.0% { + clip: rect(2px, 9999px, 48px, 0); + } + 60.0% { + clip: rect(30px, 9999px, 16px, 0); + } + 65% { + clip: rect(59px, 9999px, 50px, 0); + } + 70% { + clip: rect(41px, 9999px, 62px, 0); + } + 75% { + clip: rect(2px, 9999px, 82px, 0); + } + 80% { + clip: rect(47px, 9999px, 73px, 0); + } + 85.0% { + clip: rect(3px, 9999px, 27px, 0); + } + 90% { + clip: rect(26px, 9999px, 55px, 0); + } + 95% { + clip: rect(42px, 9999px, 97px, 0); + } + 100% { + clip: rect(38px, 9999px, 49px, 0); + } +} diff --git a/customization/mainpage/typewriter.js b/customization/mainpage/typewriter.js index 8393742..3ddfea9 100644 --- a/customization/mainpage/typewriter.js +++ b/customization/mainpage/typewriter.js @@ -665,7 +665,13 @@ var Typewriter = (function () { const options = { loop: false, typeColor: 'white', + typeSpeed: 300, }; const target = document.querySelector('#t-writer-title'); const writer = new Typewriter(target, options); -writer.type('ENOWARS 5').rest(200).start(); + +'ENOWARS 5'.split('').forEach((char) => { + writer.type(char).rest(Math.random() * 30); +}); + +writer.start(); From c31a3993a85a095e25d3fd659d3e2a9a364f188b Mon Sep 17 00:00:00 2001 From: Daniel Habenicht Date: Tue, 11 May 2021 18:56:02 +0200 Subject: [PATCH 005/118] delete glitch --- customization/mainpage/glitch.js | 78 -------------------------------- 1 file changed, 78 deletions(-) delete mode 100644 customization/mainpage/glitch.js diff --git a/customization/mainpage/glitch.js b/customization/mainpage/glitch.js deleted file mode 100644 index bdb1e50..0000000 --- a/customization/mainpage/glitch.js +++ /dev/null @@ -1,78 +0,0 @@ -const canvas = document.querySelector('#glitch'); -const ctx = canvas.getContext('2d'); -const colors = ['#b4b2b5', '#dfd73f', '#6ed2dc', '#66cf5d', '#c542cb', '#d0535e', '#3733c9']; -let linePos = 0, - rAF; - -canvas.width = innerWidth; -canvas.height = innerHeight; - -function texts(color) { - // ctx.font = '20vh Bungee Outline'; - // ctx.shadowBlur = 30; - // ctx.shadowColor = color; - // ctx.fillStyle = color; - // ctx.setTransform(1, -0.15, 0, 1, 0, -10); - // ctx.fillText('Glitch', innerWidth / 2, innerHeight / 2 - 5); - - // // ctx.fillStyle = 'white'; - // // ctx.shadowBlur = 30; - // // ctx.shadowColor = color; - // // ctx.fillText('Glitch', innerWidth / 2, innerHeight / 2); - - // ctx.font = '18vh Bungee Inline'; - // ctx.shadowBlur = 30; - // ctx.shadowColor = color; - // ctx.fillStyle = '#fff'; - // ctx.setTransform(1, -0.15, 0, 1, 0, -10); - // ctx.fillText('Effect', innerWidth / 2, innerHeight / 2 + innerHeight / 10); - - ctx.textAlign = 'center'; - ctx.textBaseline = 'middle'; -} - -function glitch() { - rAF = window.requestAnimationFrame(glitch); - - // ctx.fillStyle = '#1a191c'; - // ctx.fillRect(0, 0, innerWidth, innerHeight); - - // texts(colors[Math.floor(Math.random() * 7)]); - // ctx.shadowBlur = 0; - // ctx.shadowColor = 'none'; - // ctx.setTransform(1, 0, 0, 1, 0, 0); - - for (let i = 0; i < 1000; i++) { - ctx.fillStyle = `rgba(255, 255, 255, ${Math.random() * 0.01})`; - ctx.fillRect( - Math.floor(Math.random() * innerWidth), - Math.floor(Math.random() * innerHeight), - Math.floor(Math.random() * 30) + 1, - Math.floor(Math.random() * 30) + 1 - ); - - ctx.fillStyle = `rgba(0,0,0,${Math.random() * 0.1})`; - ctx.fillRect( - Math.floor(Math.random() * innerWidth), - Math.floor(Math.random() * innerHeight), - Math.floor(Math.random() * 25) + 1, - Math.floor(Math.random() * 25) + 1 - ); - } - - ctx.fillStyle = colors[Math.floor(Math.random() * 40)]; - ctx.fillRect( - Math.random() * innerWidth, - Math.random() * innerHeight, - Math.random() * innerWidth, - Math.random() * innerHeight - ); - ctx.setTransform(1, 0, 0, 0.8, 0.2, 0); -} - -glitch(); - -window.addEventListener('resize', () => { - canvas.width = innerWidth; - canvas.height = innerHeight; -}); From 1538538d2bfdf8d3049fee394fa6ed9e49e77d50 Mon Sep 17 00:00:00 2001 From: Daniel Habenicht Date: Sat, 12 Jun 2021 20:02:34 +0200 Subject: [PATCH 006/118] Update mobile friendlieness Co-authored-by: Adrian Gronau --- customization/mainpage/index.html | 27 +++++-- customization/mainpage/main.css | 104 ++++++++++++++++++++++++++- customization/mainpage/main.js | 32 ++++++++- customization/mainpage/typewriter.js | 7 +- 4 files changed, 159 insertions(+), 11 deletions(-) diff --git a/customization/mainpage/index.html b/customization/mainpage/index.html index 4aec557..89f0595 100644 --- a/customization/mainpage/index.html +++ b/customization/mainpage/index.html @@ -1,6 +1,8 @@ + + @@ -17,8 +19,12 @@
Attack / Defense CTF
-
-
10 July 2021 | 12:00-22:00 UTC
+
+
10 July 2021 | 12:00-22:00 UTC
+
+ 10 July 2021
+ 12:00-22:00 UTC +
@@ -40,7 +46,7 @@ Hemoglobin: 14.1 g/dl
-
+
Minute ventilation: 6.14 L/min
@@ -50,13 +56,26 @@

Registration

You can register on CTF Time.

+
+

More Information

+

+ Want to know more about what a CTF is? Start by browsing our + + documentation. +

+

+ Before the CTF you will get access to the infrastructure on our platform by logging in here: + + Enowars Portal. +

+

Host

The AG Rechnersicherheit (Workgroup for Computer Security) at the TU Berlin

- +
diff --git a/customization/mainpage/main.css b/customization/mainpage/main.css index a3c8dac..9876779 100644 --- a/customization/mainpage/main.css +++ b/customization/mainpage/main.css @@ -9,6 +9,7 @@ body { font-family: 'Cutive Mono', monospace; font-size: 15px; color: white; + margin: 0; /* text-shadow: 0 0 4px #14b51b; */ } a { @@ -43,17 +44,60 @@ img { align-items: center; } .page-50 { - height: 50vh; + height: auto; + min-height: 50vh; +} + +.page p { + text-align: center; } .title { - font-size: 4em; + font-size: 1.8em; letter-spacing: 0.5em; margin: 20px 0; } .subtitle { - font-size: 2em; + font-size: 1.5em; + text-align: center; +} + +@media (min-width: 768px) { + .title { + font-size: 4em; + } + + .subtitle { + font-size: 2em; + } +} + +/** Utils **/ +@media (min-width: 800px) { + .visible-mobile { + display: none; + } + + .hidden-mobile { + display: inherit; + } +} + +@media (max-width: 799px) { + .visible-mobile { + display: inherit; + } + + .hidden-mobile { + display: none !important; + } + .page { + margin: 0 3vw; + } + img { + width: 75vw; + } } /** @@ -65,16 +109,24 @@ img { grid-template-columns: 1fr; align-items: center; justify-items: center; + margin: 3vw; } .grid-container { display: grid; + width: 100%; grid-template-columns: 400px 400px; grid-template-rows: 1fr 150px 1fr 1fr 1fr; grid-row-gap: 10px; grid-template-areas: 'patient-info date' 'sketch-holder sketch-holder' 'bpm minute-ventilation' 'temperature hb-levels' 'pressure other'; } +@media (min-width: 800px) { + .grid-container { + width: auto; + } +} + .patient-info { grid-area: patient-info; } @@ -95,11 +147,29 @@ img { grid-area: bpm; } +@media (max-width: 799px) { + .grid-container { + grid-template-columns: 400px; + grid-template-rows: 1fr 1fr 150px 1fr 1fr 1fr 1fr 1fr 1fr 1fr; + grid-row-gap: 4px; + grid-template-areas: 'patient-info' 'date' 'sketch-holder' 'sketch-holder' 'bpm' 'minute-ventilation' 'temperature' 'hb-levels' 'pressure' 'other'; + } + + .bpm { + font-size: 1.5em !important; + } + + .grid-container .text-right { + text-align: left; + } +} + /** * Glitch: https://codepen.io/cipherbeta/pen/YLdVjw */ .glitch { position: relative; + display: inline-block; /* Animation provies a slight random skew. Check bottom of doc for more information on how to random skew. */ animation: glitch-skew 1s infinite linear alternate-reverse; @@ -1716,3 +1786,31 @@ img { clip: rect(38px, 9999px, 49px, 0); } } + +.rotate { + /* position: absolute; + top: 50%; + left: 50%; + width: 120px; + height: 120px; + margin:-60px 0 0 -60px; */ + -webkit-animation: spin 6s linear infinite; + -moz-animation: spin 6s linear infinite; + animation: spin 6s linear infinite; +} +@-moz-keyframes spin { + 100% { + -moz-transform: rotate(360deg); + } +} +@-webkit-keyframes spin { + 100% { + -webkit-transform: rotate(360deg); + } +} +@keyframes spin { + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} diff --git a/customization/mainpage/main.js b/customization/mainpage/main.js index 16de31b..d02f64f 100644 --- a/customization/mainpage/main.js +++ b/customization/mainpage/main.js @@ -1,7 +1,35 @@ // Keep track of the times draw() has been called let draw_i = 0; -var width = 800; +var width = getWidth(); + +function getWidth() { + const vw = Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0); + if (vw >= 820) { + // Big Screen + return 800; + } else { + return Math.ceil(vw / 1.1); + } +} + +function debounce(func, wait, immediate) { + var timeout; + return function () { + var context = this, + args = arguments; + var later = function () { + timeout = null; + if (!immediate) func.apply(context, args); + }; + var callNow = immediate && !timeout; + clearTimeout(timeout); + timeout = setTimeout(later, wait); + if (callNow) func.apply(context, args); + }; +} + +window.addEventListener('resize', debounce(setup, 250)); /** * A Heart object will beat, and generate voltage values according to the time * the beat started @@ -314,7 +342,7 @@ let ecg = new ECG({ x: 0, y: 110 }, [{ x: 0, y: 0 }], width); */ function setup() { // Create a 600x150 canvas and place it inside the div with id "sketch-holder" - let myCanvas = createCanvas(800, 150); + let myCanvas = createCanvas(getWidth(), 150); myCanvas.parent('sketch-holder'); // Set the color mode to allow calling RGBA without converting to string diff --git a/customization/mainpage/typewriter.js b/customization/mainpage/typewriter.js index 3ddfea9..6c5505a 100644 --- a/customization/mainpage/typewriter.js +++ b/customization/mainpage/typewriter.js @@ -642,10 +642,11 @@ var Typewriter = (function () { { key: 'createTextEl', value: function createTextEl() { - this.textEl = document.createElement('span'); + this.textEl = document.createElement('div'); this.textEl.classList.add(this.options.typeClass); - + this.textEl.classList.add('glitch'); + // this.textEl.classList.add("glitch"); this.textEl.style.color = this.options.typeColor; this.el.appendChild(this.textEl); @@ -656,6 +657,8 @@ var Typewriter = (function () { value: function render() { this.textEl.innerHTML = this.text; this.textEl.setAttribute('data-text', this.text); + this.textEl.classList.add('force-redraw'); + this.textEl.classList.remove('force-redraw'); }, }, ]); From 71f64745fdd49bea2d7a1ef33fed87662f02d24b Mon Sep 17 00:00:00 2001 From: Daniel Habenicht Date: Sat, 12 Jun 2021 23:17:32 +0200 Subject: [PATCH 007/118] add customization readme and remove previous files --- customization/README.md | 17 +- customization/mainpage/.gitkeep | 0 customization/mainpage/fonts/GlitchCity.ttf | Bin 73460 -> 0 bytes customization/mainpage/index.html | 81 - customization/mainpage/logo_white.png | Bin 40132 -> 0 bytes customization/mainpage/main.css | 1816 ------------------- customization/mainpage/main.js | 403 ---- customization/mainpage/typewriter.js | 680 ------- 8 files changed, 9 insertions(+), 2988 deletions(-) create mode 100644 customization/mainpage/.gitkeep delete mode 100644 customization/mainpage/fonts/GlitchCity.ttf delete mode 100644 customization/mainpage/index.html delete mode 100644 customization/mainpage/logo_white.png delete mode 100644 customization/mainpage/main.css delete mode 100644 customization/mainpage/main.js delete mode 100644 customization/mainpage/typewriter.js diff --git a/customization/README.md b/customization/README.md index 7836fad..5af0a13 100644 --- a/customization/README.md +++ b/customization/README.md @@ -1,10 +1,11 @@ -# Start +# Customization Directory -Use a static file server, e.g.: +In here are files that overwrite the default Portal styling and Landing Page. -```bash -# NPM -npx live-server --mount=/:./mainpage -# Python -python -m SimpleHTTPServer -``` +## Overwrite General Portal Theme + +Use the `overwrite.css` to overwrite global colors or styles inside the portal. + +## Overwrite the mainpage + +Put in your static files into the `mainpage` directory. diff --git a/customization/mainpage/.gitkeep b/customization/mainpage/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/customization/mainpage/fonts/GlitchCity.ttf b/customization/mainpage/fonts/GlitchCity.ttf deleted file mode 100644 index f80ad495f34e578ce4d85246b4db7d558d63ea2b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 73460 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 - - - - - - - - - - - - - - - - - - -
-
Attack / Defense CTF
-
-
10 July 2021 | 12:00-22:00 UTC
-
- 10 July 2021
- 12:00-22:00 UTC -
-
-
-
-
Subject: TU Berlin Hack3d
-
- -
-
-
- Heart rate: 60 bpm -
-
- Temperature: 98.6 °C -
-
- Blood Pressure: 132/88 mmHg -
-
- Hemoglobin: 14.1 g/dl -
- -
- Minute ventilation: 6.14 L/min -
-
-
-
-
-

Registration

-

You can register on CTF Time.

-
-
-

More Information

-

- Want to know more about what a CTF is? Start by browsing our - - documentation. -

-

- Before the CTF you will get access to the infrastructure on our platform by logging in here: - - Enowars Portal. -

-
-
-

Host

-

- The AG Rechnersicherheit (Workgroup for Computer Security) at - the TU Berlin -

- -
- - diff --git a/customization/mainpage/logo_white.png b/customization/mainpage/logo_white.png deleted file mode 100644 index 9bc92399613a35048a0e229eb90a2644902f916f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40132 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 IM6N<$f@iNY$^ZZW diff --git a/customization/mainpage/main.css b/customization/mainpage/main.css deleted file mode 100644 index 9876779..0000000 --- a/customization/mainpage/main.css +++ /dev/null @@ -1,1816 +0,0 @@ -/** Fonts **/ - -html { - width: 100%; - height: 100%; -} -body { - background-color: #151515; - font-family: 'Cutive Mono', monospace; - font-size: 15px; - color: white; - margin: 0; - /* text-shadow: 0 0 4px #14b51b; */ -} -a { - color: white; -} - -@font-face { - font-family: GlitchCity; - src: url(/fonts/GlitchCity.ttf); -} - -.glitch-font { - font-family: 'GlitchCity'; -} -.noglitch { - font-family: monospace; -} - -.crossed { - text-decoration: line-through; -} - -img { - margin: 100px 0; -} - -.page { - height: 100vh; - flex-flow: column; - display: flex; - justify-content: center; - align-items: center; -} -.page-50 { - height: auto; - min-height: 50vh; -} - -.page p { - text-align: center; -} - -.title { - font-size: 1.8em; - letter-spacing: 0.5em; - margin: 20px 0; -} - -.subtitle { - font-size: 1.5em; - text-align: center; -} - -@media (min-width: 768px) { - .title { - font-size: 4em; - } - - .subtitle { - font-size: 2em; - } -} - -/** Utils **/ -@media (min-width: 800px) { - .visible-mobile { - display: none; - } - - .hidden-mobile { - display: inherit; - } -} - -@media (max-width: 799px) { - .visible-mobile { - display: inherit; - } - - .hidden-mobile { - display: none !important; - } - .page { - margin: 0 3vw; - } - img { - width: 75vw; - } -} - -/** -* Graphs -*/ - -#graphs { - display: grid; - grid-template-columns: 1fr; - align-items: center; - justify-items: center; - margin: 3vw; -} - -.grid-container { - display: grid; - width: 100%; - grid-template-columns: 400px 400px; - grid-template-rows: 1fr 150px 1fr 1fr 1fr; - grid-row-gap: 10px; - grid-template-areas: 'patient-info date' 'sketch-holder sketch-holder' 'bpm minute-ventilation' 'temperature hb-levels' 'pressure other'; -} - -@media (min-width: 800px) { - .grid-container { - width: auto; - } -} - -.patient-info { - grid-area: patient-info; -} - -.text-right { - text-align: right; -} - -.date { - grid-area: date; -} - -.sketch-holder { - grid-area: sketch-holder; -} - -.bpm { - grid-area: bpm; -} - -@media (max-width: 799px) { - .grid-container { - grid-template-columns: 400px; - grid-template-rows: 1fr 1fr 150px 1fr 1fr 1fr 1fr 1fr 1fr 1fr; - grid-row-gap: 4px; - grid-template-areas: 'patient-info' 'date' 'sketch-holder' 'sketch-holder' 'bpm' 'minute-ventilation' 'temperature' 'hb-levels' 'pressure' 'other'; - } - - .bpm { - font-size: 1.5em !important; - } - - .grid-container .text-right { - text-align: left; - } -} - -/** -* Glitch: https://codepen.io/cipherbeta/pen/YLdVjw -*/ -.glitch { - position: relative; - display: inline-block; - /* Animation provies a slight random skew. Check bottom of doc - for more information on how to random skew. */ - animation: glitch-skew 1s infinite linear alternate-reverse; -} -.glitch::before { - content: attr(data-text); - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - left: 2px; - text-shadow: -2px 0 #ff00c1; - /* Creates an initial clip for our glitch. This works in - a typical top,right,bottom,left fashion and creates a mask - to only show a certain part of the glitch at a time. */ - clip: rect(44px, 450px, 56px, 0); - /* Runs our glitch-anim defined below to run in a 5s loop, infinitely, - with an alternating animation to keep things fresh. */ - animation: glitch-anim 5s infinite linear alternate-reverse; -} -.glitch::after { - content: attr(data-text); - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - left: -2px; - text-shadow: -2px 0 #00fff9, 2px 2px #ff00c1; - animation: glitch-anim2 1s infinite linear alternate-reverse; -} - -/* Creates an animation with 20 steaps. For each step, it calculates - a percentage for the specific step. It then generates a random clip - box to be used for the random glitch effect. Also adds a very subtle - skew to change the 'thickness' of the glitch.*/ -@keyframes glitch-anim { - 0% { - clip: rect(69px, 9999px, 66px, 0); - transform: skew(0.94deg); - } - 5% { - clip: rect(74px, 9999px, 34px, 0); - transform: skew(0.39deg); - } - 10% { - clip: rect(52px, 9999px, 10px, 0); - transform: skew(0.36deg); - } - 15% { - clip: rect(18px, 9999px, 57px, 0); - transform: skew(0.84deg); - } - 20% { - clip: rect(27px, 9999px, 92px, 0); - transform: skew(0.14deg); - } - 25% { - clip: rect(43px, 9999px, 77px, 0); - transform: skew(0.6deg); - } - 30% { - clip: rect(7px, 9999px, 79px, 0); - transform: skew(0.13deg); - } - 35% { - clip: rect(76px, 9999px, 92px, 0); - transform: skew(0.97deg); - } - 40% { - clip: rect(49px, 9999px, 6px, 0); - transform: skew(0.19deg); - } - 45% { - clip: rect(10px, 9999px, 96px, 0); - transform: skew(0.88deg); - } - 50% { - clip: rect(41px, 9999px, 64px, 0); - transform: skew(0.66deg); - } - 55% { - clip: rect(71px, 9999px, 62px, 0); - transform: skew(0.28deg); - } - 60% { - clip: rect(87px, 9999px, 84px, 0); - transform: skew(0.73deg); - } - 65% { - clip: rect(69px, 9999px, 11px, 0); - transform: skew(0.39deg); - } - 70% { - clip: rect(75px, 9999px, 12px, 0); - transform: skew(0.5deg); - } - 75% { - clip: rect(56px, 9999px, 41px, 0); - transform: skew(0.71deg); - } - 80% { - clip: rect(45px, 9999px, 5px, 0); - transform: skew(0.97deg); - } - 85% { - clip: rect(45px, 9999px, 80px, 0); - transform: skew(0.37deg); - } - 90% { - clip: rect(7px, 9999px, 10px, 0); - transform: skew(0.71deg); - } - 95% { - clip: rect(68px, 9999px, 70px, 0); - transform: skew(0.88deg); - } - 100% { - clip: rect(79px, 9999px, 47px, 0); - transform: skew(0.24deg); - } -} -@keyframes glitch-anim2 { - 0% { - clip: rect(4px, 9999px, 47px, 0); - transform: skew(0.02deg); - } - 5% { - clip: rect(79px, 9999px, 88px, 0); - transform: skew(0.83deg); - } - 10% { - clip: rect(45px, 9999px, 47px, 0); - transform: skew(0.8deg); - } - 15% { - clip: rect(17px, 9999px, 12px, 0); - transform: skew(0.56deg); - } - 20% { - clip: rect(89px, 9999px, 30px, 0); - transform: skew(0.47deg); - } - 25% { - clip: rect(56px, 9999px, 81px, 0); - transform: skew(0.93deg); - } - 30% { - clip: rect(12px, 9999px, 37px, 0); - transform: skew(0.6deg); - } - 35% { - clip: rect(22px, 9999px, 96px, 0); - transform: skew(0.31deg); - } - 40% { - clip: rect(79px, 9999px, 49px, 0); - transform: skew(0.21deg); - } - 45% { - clip: rect(19px, 9999px, 95px, 0); - transform: skew(0.09deg); - } - 50% { - clip: rect(27px, 9999px, 43px, 0); - transform: skew(0.49deg); - } - 55% { - clip: rect(21px, 9999px, 29px, 0); - transform: skew(0.14deg); - } - 60% { - clip: rect(49px, 9999px, 19px, 0); - transform: skew(0.79deg); - } - 65% { - clip: rect(54px, 9999px, 60px, 0); - transform: skew(0.83deg); - } - 70% { - clip: rect(73px, 9999px, 80px, 0); - transform: skew(0.98deg); - } - 75% { - clip: rect(28px, 9999px, 21px, 0); - transform: skew(0.63deg); - } - 80% { - clip: rect(78px, 9999px, 96px, 0); - transform: skew(0.68deg); - } - 85% { - clip: rect(88px, 9999px, 21px, 0); - transform: skew(0.48deg); - } - 90% { - clip: rect(44px, 9999px, 61px, 0); - transform: skew(0.19deg); - } - 95% { - clip: rect(91px, 9999px, 48px, 0); - transform: skew(0.82deg); - } - 100% { - clip: rect(78px, 9999px, 59px, 0); - transform: skew(0.21deg); - } -} -@keyframes glitch-skew { - 0% { - transform: skew(0deg); - } - 10% { - transform: skew(4deg); - } - 20% { - transform: skew(3deg); - } - 30% { - transform: skew(-4deg); - } - 40% { - transform: skew(-3deg); - } - 50% { - transform: skew(-4deg); - } - 60% { - transform: skew(0deg); - } - 70% { - transform: skew(0deg); - } - 80% { - transform: skew(-2deg); - } - 90% { - transform: skew(5deg); - } - 100% { - transform: skew(4deg); - } -} - -/** -* Text Glitch -* https://codepen.io/lukemeyrick/pen/ayRgWO -*/ - -.experiment-title { - -webkit-animation: cray 6s infinite steps(50); - animation: cray 6s infinite steps(50); - outline: none; - display: inline-block; -} - -.experiment-title-hover:hover { - -webkit-animation: cray 6s infinite steps(50); - animation: cray 6s infinite steps(50); - animation-delay: 1s; - outline: none; - display: inline-block; -} - -.experiment-title-2 { - -webkit-animation: cray 6s infinite steps(50); - animation: cray 6s infinite steps(50); - outline: none; - display: inline-block; -} -@-webkit-keyframes cray { - 2% { - font-weight: 400; - font-style: normal; - text-decoration: none; - text-transform: none; - } - 4% { - font-weight: 200; - font-style: normal; - text-decoration: none; - text-transform: capitalize; - } - 6% { - font-weight: 100; - font-style: normal; - text-decoration: none; - text-transform: capitalize; - } - 8% { - font-weight: 400; - font-style: italic; - text-decoration: none; - text-transform: none; - } - 10% { - font-weight: 300; - font-style: normal; - text-decoration: none; - text-transform: none; - } - 12% { - font-weight: 600; - font-style: normal; - text-decoration: none; - text-transform: lowercase; - } - 14% { - font-weight: 200; - font-style: normal; - text-decoration: none; - text-transform: capitalize; - } - 16% { - font-weight: 500; - font-style: normal; - text-decoration: none; - text-transform: none; - } - 18% { - font-weight: 100; - font-style: normal; - text-decoration: none; - text-transform: uppercase; - } - 20% { - font-weight: 100; - font-style: normal; - text-decoration: none; - text-transform: none; - } - 22% { - font-weight: 100; - font-style: italic; - text-decoration: underline; - text-transform: capitalize; - } - 24% { - font-weight: 300; - font-style: italic; - text-decoration: none; - text-transform: none; - } - 26% { - font-weight: 100; - font-style: italic; - text-decoration: none; - text-transform: none; - } - 28% { - font-weight: 100; - font-style: normal; - text-decoration: none; - text-transform: none; - } - 30% { - font-weight: 400; - font-style: normal; - text-decoration: line-through; - text-transform: none; - } - 32% { - font-weight: 700; - font-style: normal; - text-decoration: none; - text-transform: none; - } - 34% { - font-weight: 700; - font-style: italic; - text-decoration: none; - text-transform: lowercase; - } - 36% { - font-weight: 400; - font-style: normal; - text-decoration: none; - text-transform: none; - } - 38% { - font-weight: 700; - font-style: normal; - text-decoration: none; - text-transform: none; - } - 40% { - font-weight: 600; - font-style: normal; - text-decoration: none; - text-transform: none; - } - 42% { - font-weight: 600; - font-style: italic; - text-decoration: line-through; - text-transform: none; - } - 44% { - font-weight: 600; - font-style: normal; - text-decoration: none; - text-transform: none; - } - 46% { - font-weight: 500; - font-style: normal; - text-decoration: none; - text-transform: capitalize; - } - 48% { - font-weight: 400; - font-style: normal; - text-decoration: none; - text-transform: none; - } - 50% { - font-weight: 400; - font-style: normal; - text-decoration: underline; - text-transform: none; - } - 52% { - font-weight: 100; - font-style: normal; - text-decoration: none; - text-transform: capitalize; - } - 54% { - font-weight: 200; - font-style: normal; - text-decoration: none; - text-transform: none; - } - 56% { - font-weight: 300; - font-style: normal; - text-decoration: underline; - text-transform: uppercase; - } - 58% { - font-weight: 300; - font-style: italic; - text-decoration: none; - text-transform: lowercase; - } - 60% { - font-weight: 300; - font-style: italic; - text-decoration: none; - text-transform: none; - } - 62% { - font-weight: 100; - font-style: italic; - text-decoration: none; - text-transform: none; - } - 64% { - font-weight: 200; - font-style: normal; - text-decoration: none; - text-transform: none; - } - 66% { - font-weight: 100; - font-style: normal; - text-decoration: none; - text-transform: none; - } - 68% { - font-weight: 100; - font-style: normal; - text-decoration: underline; - text-transform: uppercase; - } - 70% { - font-weight: 600; - font-style: italic; - text-decoration: line-through; - text-transform: none; - } - 72% { - font-weight: 400; - font-style: italic; - text-decoration: none; - text-transform: none; - } - 74% { - font-weight: 100; - font-style: normal; - text-decoration: none; - text-transform: none; - } - 76% { - font-weight: 400; - font-style: normal; - text-decoration: underline; - text-transform: lowercase; - } - 78% { - font-weight: 400; - font-style: normal; - text-decoration: none; - text-transform: none; - } - 80% { - font-weight: 300; - font-style: normal; - text-decoration: none; - text-transform: lowercase; - } - 82% { - font-weight: 400; - font-style: italic; - text-decoration: underline; - text-transform: none; - } - 84% { - font-weight: 500; - font-style: normal; - text-decoration: none; - text-transform: none; - } - 86% { - font-weight: 600; - font-style: normal; - text-decoration: none; - text-transform: capitalize; - } - 88% { - font-weight: 700; - font-style: normal; - text-decoration: underline; - text-transform: lowercase; - } - 90% { - font-weight: 600; - font-style: italic; - text-decoration: none; - text-transform: none; - } - 92% { - font-weight: 200; - font-style: normal; - text-decoration: none; - text-transform: none; - } - 94% { - font-weight: 700; - font-style: normal; - text-decoration: underline; - text-transform: lowercase; - } - 96% { - font-weight: 700; - font-style: normal; - text-decoration: underline; - text-transform: none; - } - 98% { - font-weight: 100; - font-style: italic; - text-decoration: none; - text-transform: none; - } -} -@keyframes cray { - 2% { - font-weight: 400; - font-style: normal; - text-decoration: none; - text-transform: none; - } - 4% { - font-weight: 200; - font-style: normal; - text-decoration: none; - text-transform: capitalize; - } - 6% { - font-weight: 100; - font-style: normal; - text-decoration: none; - text-transform: capitalize; - } - 8% { - font-weight: 400; - font-style: italic; - text-decoration: none; - text-transform: none; - } - 10% { - font-weight: 300; - font-style: normal; - text-decoration: none; - text-transform: none; - } - 12% { - font-weight: 600; - font-style: normal; - text-decoration: none; - text-transform: lowercase; - } - 14% { - font-weight: 200; - font-style: normal; - text-decoration: none; - text-transform: capitalize; - } - 16% { - font-weight: 500; - font-style: normal; - text-decoration: none; - text-transform: none; - } - 18% { - font-weight: 100; - font-style: normal; - text-decoration: none; - text-transform: uppercase; - } - 20% { - font-weight: 100; - font-style: normal; - text-decoration: none; - text-transform: none; - } - 22% { - font-weight: 100; - font-style: italic; - text-decoration: underline; - text-transform: capitalize; - } - 24% { - font-weight: 300; - font-style: italic; - text-decoration: none; - text-transform: none; - } - 26% { - font-weight: 100; - font-style: italic; - text-decoration: none; - text-transform: none; - } - 28% { - font-weight: 100; - font-style: normal; - text-decoration: none; - text-transform: none; - } - 30% { - font-weight: 400; - font-style: normal; - text-decoration: line-through; - text-transform: none; - } - 32% { - font-weight: 700; - font-style: normal; - text-decoration: none; - text-transform: none; - } - 34% { - font-weight: 700; - font-style: italic; - text-decoration: none; - text-transform: lowercase; - } - 36% { - font-weight: 400; - font-style: normal; - text-decoration: none; - text-transform: none; - } - 38% { - font-weight: 700; - font-style: normal; - text-decoration: none; - text-transform: none; - } - 40% { - font-weight: 600; - font-style: normal; - text-decoration: none; - text-transform: none; - } - 42% { - font-weight: 600; - font-style: italic; - text-decoration: line-through; - text-transform: none; - } - 44% { - font-weight: 600; - font-style: normal; - text-decoration: none; - text-transform: none; - } - 46% { - font-weight: 500; - font-style: normal; - text-decoration: none; - text-transform: capitalize; - } - 48% { - font-weight: 400; - font-style: normal; - text-decoration: none; - text-transform: none; - } - 50% { - font-weight: 400; - font-style: normal; - text-decoration: underline; - text-transform: none; - } - 52% { - font-weight: 100; - font-style: normal; - text-decoration: none; - text-transform: capitalize; - } - 54% { - font-weight: 200; - font-style: normal; - text-decoration: none; - text-transform: none; - } - 56% { - font-weight: 300; - font-style: normal; - text-decoration: underline; - text-transform: uppercase; - } - 58% { - font-weight: 300; - font-style: italic; - text-decoration: none; - text-transform: lowercase; - } - 60% { - font-weight: 300; - font-style: italic; - text-decoration: none; - text-transform: none; - } - 62% { - font-weight: 100; - font-style: italic; - text-decoration: none; - text-transform: none; - } - 64% { - font-weight: 200; - font-style: normal; - text-decoration: none; - text-transform: none; - } - 66% { - font-weight: 100; - font-style: normal; - text-decoration: none; - text-transform: none; - } - 68% { - font-weight: 100; - font-style: normal; - text-decoration: underline; - text-transform: uppercase; - } - 70% { - font-weight: 600; - font-style: italic; - text-decoration: line-through; - text-transform: none; - } - 72% { - font-weight: 400; - font-style: italic; - text-decoration: none; - text-transform: none; - } - 74% { - font-weight: 100; - font-style: normal; - text-decoration: none; - text-transform: none; - } - 76% { - font-weight: 400; - font-style: normal; - text-decoration: underline; - text-transform: lowercase; - } - 78% { - font-weight: 400; - font-style: normal; - text-decoration: none; - text-transform: none; - } - 80% { - font-weight: 300; - font-style: normal; - text-decoration: none; - text-transform: lowercase; - } - 82% { - font-weight: 400; - font-style: italic; - text-decoration: underline; - text-transform: none; - } - 84% { - font-weight: 500; - font-style: normal; - text-decoration: none; - text-transform: none; - } - 86% { - font-weight: 600; - font-style: normal; - text-decoration: none; - text-transform: capitalize; - } - 88% { - font-weight: 700; - font-style: normal; - text-decoration: underline; - text-transform: lowercase; - } - 90% { - font-weight: 600; - font-style: italic; - text-decoration: none; - text-transform: none; - } - 92% { - font-weight: 200; - font-style: normal; - text-decoration: none; - text-transform: none; - } - 94% { - font-weight: 700; - font-style: normal; - text-decoration: underline; - text-transform: lowercase; - } - 96% { - font-weight: 700; - font-style: normal; - text-decoration: underline; - text-transform: none; - } - 98% { - font-weight: 100; - font-style: italic; - text-decoration: none; - text-transform: none; - } -} - -/** -* Another Glitch -*/ - -.glitch-2 { - text-decoration: none; - text-transform: uppercase; - margin: 0; - position: relative; -} -.glitch-2:before, -.glitch-2:after { - display: block; - content: attr(data-text); - text-transform: uppercase; - position: absolute; - top: 0; - left: 0; - height: 100%; - width: 100%; - opacity: 0.8; -} -.glitch-2:after { - animation: glitch 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94) reverse both infinite; - color: #f0f; - z-index: -2; -} -.glitch-2:before { - -webkit-animation: glitch 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94) both infinite; - animation: glitch 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94) both infinite; - color: #0ff; - z-index: -1; -} - -@media only screen and (max-width: 400px) { - .glitch-2 { - font-size: 3em; - } -} -@-webkit-keyframes glitch { - 0% { - transform: translate(0); - } - 20% { - transform: translate(-2px, 2px); - } - 40% { - transform: translate(-2px, -2px); - } - 60% { - transform: translate(2px, 2px); - } - 80% { - transform: translate(2px, -2px); - } - to { - transform: translate(0); - } -} -@keyframes glitch { - 0% { - transform: translate(0); - } - 20% { - transform: translate(-2px, 2px); - } - 40% { - transform: translate(-2px, -2px); - } - 60% { - transform: translate(2px, 2px); - } - 80% { - transform: translate(2px, -2px); - } - to { - transform: translate(0); - } -} - -/** -* and another glitch https://codepen.io/anatravas/pen/mOyNWR -*/ -.glitch-wrapper { - display: flex; - justify-content: center; - align-items: center; -} -.glitch-3 { - color: white; - text-transform: upercase; - position: relative; - display: inline-block; -} -.glitch-3::before, -.glitch-3::after { - content: attr(data-text); - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; -} -.glitch-3::before { - left: 2px; - text-shadow: -2px 0 #49fc00; - clip: rect(24px, 550px, 90px, 0); - animation: glitch-anim-2 3s infinite linear alternate-reverse; -} -.glitch-3::after { - left: -2px; - text-shadow: -2px 0 #b300fc; - clip: rect(85px, 550px, 140px, 0); - animation: glitch-anim-2 2.5s infinite linear alternate-reverse; -} -@-webkit-keyframes glitch-anim-2 { - 0% { - clip: rect(26px, 9999px, 117px, 0); - } - 4.166666666666666% { - clip: rect(106px, 9999px, 136px, 0); - } - 8.333333333333332% { - clip: rect(147px, 9999px, 150px, 0); - } - 12.5% { - clip: rect(78px, 9999px, 59px, 0); - } - 16.666666666666664% { - clip: rect(18px, 9999px, 67px, 0); - } - 20.833333333333336% { - clip: rect(74px, 9999px, 150px, 0); - } - 25% { - clip: rect(99px, 9999px, 126px, 0); - } - 29.166666666666668% { - clip: rect(138px, 9999px, 86px, 0); - } - 33.33333333333333% { - clip: rect(54px, 9999px, 35px, 0); - } - 37.5% { - clip: rect(67px, 9999px, 113px, 0); - } - 41.66666666666667% { - clip: rect(139px, 9999px, 13px, 0); - } - 45.83333333333333% { - clip: rect(65px, 9999px, 22px, 0); - } - 50% { - clip: rect(148px, 9999px, 83px, 0); - } - 54.166666666666664% { - clip: rect(38px, 9999px, 19px, 0); - } - 58.333333333333336% { - clip: rect(97px, 9999px, 138px, 0); - } - 62.5% { - clip: rect(31px, 9999px, 59px, 0); - } - 66.66666666666666% { - clip: rect(15px, 9999px, 83px, 0); - } - 70.83333333333334% { - clip: rect(42px, 9999px, 58px, 0); - } - 75% { - clip: rect(115px, 9999px, 103px, 0); - } - 79.16666666666666% { - clip: rect(95px, 9999px, 144px, 0); - } - 83.33333333333334% { - clip: rect(100px, 9999px, 148px, 0); - } - 87.5% { - clip: rect(32px, 9999px, 129px, 0); - } - 91.66666666666666% { - clip: rect(47px, 9999px, 78px, 0); - } - 95.83333333333334% { - clip: rect(8px, 9999px, 72px, 0); - } - 100% { - clip: rect(2px, 9999px, 38px, 0); - } -} -@keyframes glitch-anim-2 { - 0% { - clip: rect(26px, 9999px, 117px, 0); - } - 4.166666666666666% { - clip: rect(106px, 9999px, 136px, 0); - } - 8.333333333333332% { - clip: rect(147px, 9999px, 150px, 0); - } - 12.5% { - clip: rect(78px, 9999px, 59px, 0); - } - 16.666666666666664% { - clip: rect(18px, 9999px, 67px, 0); - } - 20.833333333333336% { - clip: rect(74px, 9999px, 150px, 0); - } - 25% { - clip: rect(99px, 9999px, 126px, 0); - } - 29.166666666666668% { - clip: rect(138px, 9999px, 86px, 0); - } - 33.33333333333333% { - clip: rect(54px, 9999px, 35px, 0); - } - 37.5% { - clip: rect(67px, 9999px, 113px, 0); - } - 41.66666666666667% { - clip: rect(139px, 9999px, 13px, 0); - } - 45.83333333333333% { - clip: rect(65px, 9999px, 22px, 0); - } - 50% { - clip: rect(148px, 9999px, 83px, 0); - } - 54.166666666666664% { - clip: rect(38px, 9999px, 19px, 0); - } - 58.333333333333336% { - clip: rect(97px, 9999px, 138px, 0); - } - 62.5% { - clip: rect(31px, 9999px, 59px, 0); - } - 66.66666666666666% { - clip: rect(15px, 9999px, 83px, 0); - } - 70.83333333333334% { - clip: rect(42px, 9999px, 58px, 0); - } - 75% { - clip: rect(115px, 9999px, 103px, 0); - } - 79.16666666666666% { - clip: rect(95px, 9999px, 144px, 0); - } - 83.33333333333334% { - clip: rect(100px, 9999px, 148px, 0); - } - 87.5% { - clip: rect(32px, 9999px, 129px, 0); - } - 91.66666666666666% { - clip: rect(47px, 9999px, 78px, 0); - } - 95.83333333333334% { - clip: rect(8px, 9999px, 72px, 0); - } - 100% { - clip: rect(2px, 9999px, 38px, 0); - } -} -@-webkit-keyframes glitch-anim-2-2 { - 6.666666666666667% { - clip: rect(58px, 9999px, 107px, 0); - } - 10% { - clip: rect(63px, 9999px, 32px, 0); - } - 13.333333333333334% { - clip: rect(83px, 9999px, 85px, 0); - } - 16.666666666666664% { - clip: rect(39px, 9999px, 133px, 0); - } - 20% { - clip: rect(24px, 9999px, 83px, 0); - } - 23.333333333333332% { - clip: rect(53px, 9999px, 49px, 0); - } - 26.666666666666668% { - clip: rect(145px, 9999px, 95px, 0); - } - 30% { - clip: rect(20px, 9999px, 116px, 0); - } - 33.33333333333333% { - clip: rect(6px, 9999px, 50px, 0); - } - 36.666666666666664% { - clip: rect(85px, 9999px, 142px, 0); - } - 40% { - clip: rect(46px, 9999px, 139px, 0); - } - 43.333333333333336% { - clip: rect(116px, 9999px, 16px, 0); - } - 46.666666666666664% { - clip: rect(115px, 9999px, 14px, 0); - } - 50% { - clip: rect(86px, 9999px, 58px, 0); - } - 53.333333333333336% { - clip: rect(136px, 9999px, 39px, 0); - } - 56.666666666666664% { - clip: rect(36px, 9999px, 52px, 0); - } - 60% { - clip: rect(118px, 9999px, 51px, 0); - } - 63.33333333333333% { - clip: rect(47px, 9999px, 69px, 0); - } - 66.66666666666666% { - clip: rect(29px, 9999px, 39px, 0); - } - 70% { - clip: rect(53px, 9999px, 116px, 0); - } - 73.33333333333333% { - clip: rect(48px, 9999px, 69px, 0); - } - 76.66666666666667% { - clip: rect(118px, 9999px, 146px, 0); - } - 80% { - clip: rect(136px, 9999px, 75px, 0); - } - 83.33333333333334% { - clip: rect(31px, 9999px, 94px, 0); - } - 86.66666666666667% { - clip: rect(137px, 9999px, 14px, 0); - } - 90% { - clip: rect(21px, 9999px, 82px, 0); - } - 93.33333333333333% { - clip: rect(26px, 9999px, 120px, 0); - } - 96.66666666666667% { - clip: rect(131px, 9999px, 56px, 0); - } - 100% { - clip: rect(109px, 9999px, 104px, 0); - } -} -@keyframes glitch-anim-2-2 { - 6.666666666666667% { - clip: rect(58px, 9999px, 107px, 0); - } - 10% { - clip: rect(63px, 9999px, 32px, 0); - } - 13.333333333333334% { - clip: rect(83px, 9999px, 85px, 0); - } - 16.666666666666664% { - clip: rect(39px, 9999px, 133px, 0); - } - 20% { - clip: rect(24px, 9999px, 83px, 0); - } - 23.333333333333332% { - clip: rect(53px, 9999px, 49px, 0); - } - 26.666666666666668% { - clip: rect(145px, 9999px, 95px, 0); - } - 30% { - clip: rect(20px, 9999px, 116px, 0); - } - 33.33333333333333% { - clip: rect(6px, 9999px, 50px, 0); - } - 36.666666666666664% { - clip: rect(85px, 9999px, 142px, 0); - } - 40% { - clip: rect(46px, 9999px, 139px, 0); - } - 43.333333333333336% { - clip: rect(116px, 9999px, 16px, 0); - } - 46.666666666666664% { - clip: rect(115px, 9999px, 14px, 0); - } - 50% { - clip: rect(86px, 9999px, 58px, 0); - } - 53.333333333333336% { - clip: rect(136px, 9999px, 39px, 0); - } - 56.666666666666664% { - clip: rect(36px, 9999px, 52px, 0); - } - 60% { - clip: rect(118px, 9999px, 51px, 0); - } - 63.33333333333333% { - clip: rect(47px, 9999px, 69px, 0); - } - 66.66666666666666% { - clip: rect(29px, 9999px, 39px, 0); - } - 70% { - clip: rect(53px, 9999px, 116px, 0); - } - 73.33333333333333% { - clip: rect(48px, 9999px, 69px, 0); - } - 76.66666666666667% { - clip: rect(118px, 9999px, 146px, 0); - } - 80% { - clip: rect(136px, 9999px, 75px, 0); - } - 83.33333333333334% { - clip: rect(31px, 9999px, 94px, 0); - } - 86.66666666666667% { - clip: rect(137px, 9999px, 14px, 0); - } - 90% { - clip: rect(21px, 9999px, 82px, 0); - } - 93.33333333333333% { - clip: rect(26px, 9999px, 120px, 0); - } - 96.66666666666667% { - clip: rect(131px, 9999px, 56px, 0); - } - 100% { - clip: rect(109px, 9999px, 104px, 0); - } -} - -/** -* Glitch numero 4 -*/ - -.glitch-4 { - position: relative; - margin: 0 auto; -} - -.glitch-4::before, -.glitch-4::after { - -webkit-animation-iteration-count: infinite; - animation-iteration-count: infinite; - -webkit-animation-timing-function: linear; - animation-timing-function: linear; - animation-direction: alternate-reverse; - overflow: hidden; - position: absolute; - top: 0; - clip: rect(0, 900px, 0, 0); - background: black; - content: attr(data-text); -} - -.glitch-4::after { - -webkit-animation-name: glitch-animation; - animation-name: glitch-animation; - -webkit-animation-duration: 4s; - animation-duration: 4s; - left: 4px; - text-shadow: -1px 0 #ffa800; -} - -.glitch-4::before { - -webkit-animation-name: glitch-animation-2; - animation-name: glitch-animation-2; - -webkit-animation-duration: 6s; - animation-duration: 6s; - left: -4px; - text-shadow: 1px 0 #00d8ff; - background-color: black; -} - -/* Expanded Animations */ -@-webkit-keyframes glitch-animation { - 0% { - clip: rect(42px, 9999px, 44px, 0); - } - 5% { - clip: rect(12px, 9999px, 59px, 0); - } - 10% { - clip: rect(48px, 9999px, 29px, 0); - } - 15.0% { - clip: rect(42px, 9999px, 73px, 0); - } - 20% { - clip: rect(63px, 9999px, 27px, 0); - } - 25% { - clip: rect(34px, 9999px, 55px, 0); - } - 30.0% { - clip: rect(86px, 9999px, 73px, 0); - } - 35% { - clip: rect(20px, 9999px, 20px, 0); - } - 40% { - clip: rect(26px, 9999px, 60px, 0); - } - 45% { - clip: rect(25px, 9999px, 66px, 0); - } - 50% { - clip: rect(57px, 9999px, 98px, 0); - } - 55.0% { - clip: rect(5px, 9999px, 46px, 0); - } - 60.0% { - clip: rect(82px, 9999px, 31px, 0); - } - 65% { - clip: rect(54px, 9999px, 27px, 0); - } - 70% { - clip: rect(28px, 9999px, 99px, 0); - } - 75% { - clip: rect(45px, 9999px, 69px, 0); - } - 80% { - clip: rect(23px, 9999px, 85px, 0); - } - 85.0% { - clip: rect(54px, 9999px, 84px, 0); - } - 90% { - clip: rect(45px, 9999px, 47px, 0); - } - 95% { - clip: rect(37px, 9999px, 20px, 0); - } - 100% { - clip: rect(4px, 9999px, 91px, 0); - } -} -@keyframes glitch-animation { - 0% { - clip: rect(42px, 9999px, 44px, 0); - } - 5% { - clip: rect(12px, 9999px, 59px, 0); - } - 10% { - clip: rect(48px, 9999px, 29px, 0); - } - 15.0% { - clip: rect(42px, 9999px, 73px, 0); - } - 20% { - clip: rect(63px, 9999px, 27px, 0); - } - 25% { - clip: rect(34px, 9999px, 55px, 0); - } - 30.0% { - clip: rect(86px, 9999px, 73px, 0); - } - 35% { - clip: rect(20px, 9999px, 20px, 0); - } - 40% { - clip: rect(26px, 9999px, 60px, 0); - } - 45% { - clip: rect(25px, 9999px, 66px, 0); - } - 50% { - clip: rect(57px, 9999px, 98px, 0); - } - 55.0% { - clip: rect(5px, 9999px, 46px, 0); - } - 60.0% { - clip: rect(82px, 9999px, 31px, 0); - } - 65% { - clip: rect(54px, 9999px, 27px, 0); - } - 70% { - clip: rect(28px, 9999px, 99px, 0); - } - 75% { - clip: rect(45px, 9999px, 69px, 0); - } - 80% { - clip: rect(23px, 9999px, 85px, 0); - } - 85.0% { - clip: rect(54px, 9999px, 84px, 0); - } - 90% { - clip: rect(45px, 9999px, 47px, 0); - } - 95% { - clip: rect(37px, 9999px, 20px, 0); - } - 100% { - clip: rect(4px, 9999px, 91px, 0); - } -} -@-webkit-keyframes glitch-animation-2 { - 0% { - clip: rect(65px, 9999px, 100px, 0); - } - 5% { - clip: rect(52px, 9999px, 74px, 0); - } - 10% { - clip: rect(79px, 9999px, 85px, 0); - } - 15.0% { - clip: rect(75px, 9999px, 5px, 0); - } - 20% { - clip: rect(67px, 9999px, 61px, 0); - } - 25% { - clip: rect(14px, 9999px, 79px, 0); - } - 30.0% { - clip: rect(1px, 9999px, 66px, 0); - } - 35% { - clip: rect(86px, 9999px, 30px, 0); - } - 40% { - clip: rect(23px, 9999px, 98px, 0); - } - 45% { - clip: rect(85px, 9999px, 72px, 0); - } - 50% { - clip: rect(71px, 9999px, 75px, 0); - } - 55.0% { - clip: rect(2px, 9999px, 48px, 0); - } - 60.0% { - clip: rect(30px, 9999px, 16px, 0); - } - 65% { - clip: rect(59px, 9999px, 50px, 0); - } - 70% { - clip: rect(41px, 9999px, 62px, 0); - } - 75% { - clip: rect(2px, 9999px, 82px, 0); - } - 80% { - clip: rect(47px, 9999px, 73px, 0); - } - 85.0% { - clip: rect(3px, 9999px, 27px, 0); - } - 90% { - clip: rect(26px, 9999px, 55px, 0); - } - 95% { - clip: rect(42px, 9999px, 97px, 0); - } - 100% { - clip: rect(38px, 9999px, 49px, 0); - } -} -@keyframes glitch-animation-2 { - 0% { - clip: rect(65px, 9999px, 100px, 0); - } - 5% { - clip: rect(52px, 9999px, 74px, 0); - } - 10% { - clip: rect(79px, 9999px, 85px, 0); - } - 15.0% { - clip: rect(75px, 9999px, 5px, 0); - } - 20% { - clip: rect(67px, 9999px, 61px, 0); - } - 25% { - clip: rect(14px, 9999px, 79px, 0); - } - 30.0% { - clip: rect(1px, 9999px, 66px, 0); - } - 35% { - clip: rect(86px, 9999px, 30px, 0); - } - 40% { - clip: rect(23px, 9999px, 98px, 0); - } - 45% { - clip: rect(85px, 9999px, 72px, 0); - } - 50% { - clip: rect(71px, 9999px, 75px, 0); - } - 55.0% { - clip: rect(2px, 9999px, 48px, 0); - } - 60.0% { - clip: rect(30px, 9999px, 16px, 0); - } - 65% { - clip: rect(59px, 9999px, 50px, 0); - } - 70% { - clip: rect(41px, 9999px, 62px, 0); - } - 75% { - clip: rect(2px, 9999px, 82px, 0); - } - 80% { - clip: rect(47px, 9999px, 73px, 0); - } - 85.0% { - clip: rect(3px, 9999px, 27px, 0); - } - 90% { - clip: rect(26px, 9999px, 55px, 0); - } - 95% { - clip: rect(42px, 9999px, 97px, 0); - } - 100% { - clip: rect(38px, 9999px, 49px, 0); - } -} - -.rotate { - /* position: absolute; - top: 50%; - left: 50%; - width: 120px; - height: 120px; - margin:-60px 0 0 -60px; */ - -webkit-animation: spin 6s linear infinite; - -moz-animation: spin 6s linear infinite; - animation: spin 6s linear infinite; -} -@-moz-keyframes spin { - 100% { - -moz-transform: rotate(360deg); - } -} -@-webkit-keyframes spin { - 100% { - -webkit-transform: rotate(360deg); - } -} -@keyframes spin { - 100% { - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - } -} diff --git a/customization/mainpage/main.js b/customization/mainpage/main.js deleted file mode 100644 index d02f64f..0000000 --- a/customization/mainpage/main.js +++ /dev/null @@ -1,403 +0,0 @@ -// Keep track of the times draw() has been called -let draw_i = 0; - -var width = getWidth(); - -function getWidth() { - const vw = Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0); - if (vw >= 820) { - // Big Screen - return 800; - } else { - return Math.ceil(vw / 1.1); - } -} - -function debounce(func, wait, immediate) { - var timeout; - return function () { - var context = this, - args = arguments; - var later = function () { - timeout = null; - if (!immediate) func.apply(context, args); - }; - var callNow = immediate && !timeout; - clearTimeout(timeout); - timeout = setTimeout(later, wait); - if (callNow) func.apply(context, args); - }; -} - -window.addEventListener('resize', debounce(setup, 250)); -/** - * A Heart object will beat, and generate voltage values according to the time - * the beat started - * - * "Duration" values are really pixels. 1 pixel represents 1/60 of a second. - */ -class Heart { - /** - * Creates an instance of Heart - * @param {number} adDuration Duration in pixels of the atria depolarization - * @param {number} vdDuration Duration in pixels of the ventricle depolarization - * @param {number} vrDuration Duration in pixels of the ventricle repolarization - * - * @property {number} this.beatDuration Duration in pixels of the whole beat - * @property {number} this.nextBeat Time between last beat, and next beat - * @property {number} this.nextBeatIn Time remaining for next beat - * @property {number[]} this.bpm Time between two particular beats - * @property {number} this.voltage Current voltage value. No units used. - */ - constructor(adDuration, vdDuration, vrDuration) { - this.adDuration = adDuration; - this.vdDuration = vdDuration; - this.vrDuration = vrDuration; - - this.beatDuration = adDuration + vdDuration + vrDuration; - - this.nextBeat = 60; - this.nextBeatIn = 60; - this.bpm = []; - this.voltage = 0; - } - - /** - * Assign the heart a new voltage value, and report that value to the ECG - * the heart is connected to. - * @param {number} voltage - */ - setVoltage(voltage) { - this.voltage = voltage; - ecg.addValue({ y: this.voltage }); - } - - /** - * Generates the voltage values corresponding to the atria depolarization process. - * This is the process that generates the first part of the curve of every beat. - * - * @param {number} time Time in pixels since the atria depolarization process started - */ - atriaDepolarization(time) { - // This process is not close to what reality does, but here it is generated using a - // sin function where only the positive values remain, making a bump followed by a - // flat section - let y = randomGaussian(5, 1) * sin(time * (360 / this.adDuration)); - - // To compensate for the y-axis inverted direction, return -y when y is over 0 - y = y > 0 ? -y : 0.2 * (1 - y); - - // Update the voltage to whatever value was calculated - this.setVoltage(y + noise(time)); - } - - /** - * Generates the voltage values corresponding to the ventricle depolarization process. - * This is the process that generates the spiky part of the curve of every beat. - * - * @param {number} time Time in pixels since the ventricle depolarization process started - */ - ventricleDepolarization(time) { - let y; - // In the first third, the curve has a spike going down - if (time <= this.vdDuration / 3) y = (randomGaussian(8, 2) * (this.vdDuration - time)) / 6; - // In the second third, the curve has a big spike going up - else if (time < (2 * this.vdDuration) / 3) { - // Start producing a sound, going from 0 to 0.5 volume in 0.01 seconds - osc.amp(0.5, 0.01); - y = (randomGaussian(70, 2) * abs(1.5 - (this.vdDuration - time))) / 3; - y = -y; - } - - // In the last third, the curve has another spike (bigger than the first one) going down - else { - y = (randomGaussian(20, 2) * (this.vdDuration - time)) / 3; - // Stop the sound, going from 0.5 to 0 volume in 0.01 secs - osc.amp(0, 0.01); - } - - // Update the voltage to whatever value was calculated - this.setVoltage(y); - } - - /** - * Generates the voltage values corresponding to the ventricle repolarization process. - * This is the process that generates the last part of the curve of every beat. - * - * @param {number} time Time in pixels since the ventricle repolarization process started - */ - ventricleRepolarization(time) { - // This process is not close to what reality does, but here it is generated using a - // sin function where only the positive values remain, but displaced half a turn to - // make a flat section followed by a bump - let y = randomGaussian(8, 2) * sin(180 + time * (360 / this.vrDuration)); - - // To compensate for the y-axis inverted direction, return -y when y is over 0 - y = y < 0 ? 0.2 * (1 - y) : -y; - - // Update the voltage to whatever value was calculated - this.setVoltage(y + noise(time)); - } - - updateBPM() { - // bpm = 3600 / pixel-distance - this.bpm.push(3600 / this.nextBeat); - - // To make rapid frequency changes meaningful, get the average bpm using only the - // last 5 values of time, not all of them. So dispose the oldest one when the list - // length is over 5. - if (this.bpm.length > 5) this.bpm.splice(0, 1); - ecg.drawBPM(round(this.bpm.reduce((p, c) => p + c, 0) / this.bpm.length)); - } - /** - * Decrease this.nextBeatIn to simulate the pass of time. - * If necessary, create a new this.nextBeat value - */ - updateTimeToNextBeat() { - // This indicates that the next beat will begin in the next iteration - if (this.nextBeatIn-- === 0) { - // Then calculate a new "remaining time" for the next beat. - // Use the x coordinates of the mouse position to modify the heart frequency - this.nextBeat = abs(ceil(randomGaussian((900 - mouseX) / 10, 3))); - - // It the pixel time between beat and beat is less than 18, force it to be - // 18. This value makes to a bpm of 200. - if (this.nextBeat < 18) this.nextBeat = 18; - - // Get new bpm values using the last this.nextBeat - this.updateBPM(); - - // Reset the remaining time to the new calculated time - this.nextBeatIn = this.nextBeat; - } - } - - /** - * Get voltage values for every second of the beat, even at rest (no-beating time - * after the ventricle repolarization finished, and before the next atria depolarization) - * @param {*} time Time in pixels after the atria depolarization started - */ - beat(time) { - // Update the time left for the start of the next beat - this.updateTimeToNextBeat(); - - // If according to time, beat is in the atria depolarization process, call that function - if (time <= this.adDuration) { - this.atriaDepolarization(time); - return; - } - - // If according to time, beat is in the ventricle depolarization process, call that function - // Update the time so the value sent is relative to the start of the ventricle - // depolarization process - time -= this.adDuration; - if (time <= this.vdDuration) { - this.ventricleDepolarization(time); - return; - } - - // If according to time, beat is in the ventricle repolarization process, call that function - // Update the time so the value sent is relative to the start of the ventricle - // repolarization process - time -= this.vdDuration; - if (time <= this.vrDuration) { - this.ventricleRepolarization(time); - return; - } - - // If function reached this point, it's not in any of the beat processes, and it's resting. - // Add a noisy voltage value - this.setVoltage(0 + noise(draw_i * 0.5) * 5); - } -} - -// Initialize a heart -let heart = new Heart(12, 8, 12); - -/** - * ECG will receive, process, and draw the health information - */ -class ECG { - /** - * @param {Object} graphZero Coordinates of the {0, 0} value of the graph - * @param {Object[]} values Array of {x, y} objects. x plots time, y plots voltage - * @param {number} maxValuesHistory Maximum number of values before wiping oldest one - */ - constructor(graphZero, values, maxValuesHistory) { - this.graphZero = graphZero; - this.values = values; - this.maxValuesHistory = maxValuesHistory; - this.maximumX = maxValuesHistory; - } - - /** - * Add a new voltage value to the values array. If it exceeds the maximum number of - * values allowed to store, remove the oldest one before. - * @param {Object} value {x, y} object. x represents time, y represents voltage - */ - addValue(value) { - // If no x (time) value is received, assume it is the sucessor of the last value - // in the values array. If the new x exceeds the maximum allowed, make x = 0 - if (this.values.length >= this.maxValuesHistory) this.values.splice(0, 1); - if (value.x === undefined) { - value.x = (this.values[this.values.length - 1].x + 1) % this.maximumX; - } - this.values.push(value); - } - - /** - * Draw lines joining every voltage value throughout time in the screen - */ - plotValues() { - push(); - - for (let i = 1; i < this.values.length; i++) { - // If the previous value has a X coordinate higher than the current one, - // don't draw it, to avoid lines crossing from end to start of the ECG plot area. - if (this.values[i - 1].x > this.values[i].x) continue; - - // Older values are drawn with a lower alpha - let alpha = i / this.values.length; - - // Set the color of the drawing - stroke(121, 239, 150, alpha); - fill(121, 239, 150, alpha); - - // Line from previous value to current value - line( - this.graphZero.x + this.values[i - 1].x, - this.graphZero.y + this.values[i - 1].y, - this.graphZero.x + this.values[i].x, - this.graphZero.y + this.values[i].y - ); - - // For the last 5 values, draw a circle with a radius going in function to - // its index. This to make the leading line thicker - if (i + 5 > this.values.length) { - circle(this.graphZero.x + this.values[i].x, this.graphZero.y + this.values[i].y, this.values.length / i); - } - } - pop(); - } - - //// The following methods update the values represented as html elements - - updateInfo() { - this.updateDate(); - if (draw_i % 50 === 0) { - this.updateBloodPressure(); - this.updateVentilation(); - this.updateTemperature(); - this.updateHemoglobin(); - } - } - - updateHemoglobin() { - document.getElementById('hemoglobin-value').innerHTML = randomGaussian(14, 0.1).toFixed(1); - } - updateTemperature() { - document.getElementById('temperature-value').innerHTML = randomGaussian(37, 0.1).toFixed(1); - } - updateVentilation() { - document.getElementById('minute-ventilation-value').innerHTML = randomGaussian(6, 0.5).toFixed(2); - } - - updateBloodPressure() { - document.getElementById('pressure-value').innerHTML = - '' + round(randomGaussian(130, 1)) + '/' + round(randomGaussian(90, 1)); - } - - updateDate() { - let date = new Date(); - date = - '' + - date.getFullYear() + - '-' + - date.getMonth() + - '-' + - date.getDate() + - ' ' + - date.getHours() + - ':' + - date.getMinutes() + - ':' + - date.getSeconds(); - document.getElementById('date-value').innerHTML = date; - } - - /** - * Update the html content of the span containing the bpm info - * @param {number} bpm - */ - drawBPM(bpm) { - document.getElementById('heart-rate-value').innerHTML = bpm; - } -} - -// Initialize the ecg -let ecg = new ECG({ x: 0, y: 110 }, [{ x: 0, y: 0 }], width); - -/** - * Set the general configuration for the p5js canvas - */ -function setup() { - // Create a 600x150 canvas and place it inside the div with id "sketch-holder" - let myCanvas = createCanvas(getWidth(), 150); - myCanvas.parent('sketch-holder'); - - // Set the color mode to allow calling RGBA without converting to string - colorMode(RGB, 255, 255, 255, 1); - - // Work with degrees instead of Radians (sin function used inside Heart Class) - angleMode(DEGREES); - - // Set the frequency the ecg will emit every heartbeat. - osc = new p5.Oscillator(); - osc.setType('sine'); - osc.freq(445); - osc.amp(0); - osc.start(); -} - -/** - * Draw a rectangle of size (canvas.width - 1, canvas.height - 1) with dark background - * and a brilliant green border. - * - * The -1 is to allow the border to be seen in the final page. - */ -function drawECGScreenBackground() { - push(); - fill('#201D1D'); - // stroke(121, 239, 150, 1); - rect(0, 0, width - 1, 149); - pop(); -} - -/** - * Function to be called until the page is closed - * Part of p5js - */ -function draw() { - // Keep track of the number of times draw has been called - draw_i++; - - // Hide previous ECG line by drawing a background - drawECGScreenBackground(); - - // Get the new voltage values for the ECG from the heart - heart.beat(heart.nextBeat - heart.nextBeatIn); - - // Draw the line of voltage values over time in the ECG screen - ecg.plotValues(); - - // Update the information values of the ECG - ecg.updateInfo(); -} - -// p5.sound variables -let osc; - -function touchStarted() { - // To prevent sound bugs by browsers asking for permission - getAudioContext().resume(); -} diff --git a/customization/mainpage/typewriter.js b/customization/mainpage/typewriter.js deleted file mode 100644 index 6c5505a..0000000 --- a/customization/mainpage/typewriter.js +++ /dev/null @@ -1,680 +0,0 @@ -/** - * From: - * https://github.com/ChrisCavs/t-writer.js - */ - -var classCallCheck = function (instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError('Cannot call a class as a function'); - } -}; - -var createClass = (function () { - function defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ('value' in descriptor) descriptor.writable = true; - Object.defineProperty(target, descriptor.key, descriptor); - } - } - - return function (Constructor, protoProps, staticProps) { - if (protoProps) defineProperties(Constructor.prototype, protoProps); - if (staticProps) defineProperties(Constructor, staticProps); - return Constructor; - }; -})(); - -var defaultOptions = { - loop: false, - animateCursor: true, - - blinkSpeed: 400, - - typeSpeed: 90, - deleteSpeed: 40, - - typeSpeedMin: 65, - typeSpeedMax: 115, - - deleteSpeedMin: 40, - deleteSpeedMax: 90, - - typeClass: 'type-span', - cursorClass: 'cursor-span', - - typeColor: 'black', - cursorColor: 'black', -}; - -var Cursor = (function () { - function Cursor(el, speed) { - classCallCheck(this, Cursor); - - this.el = el; - this.speed = speed; - - this.faded = false; - - this.initialAssignment(); - this.el.addEventListener('transitionend', this.logic.bind(this)); - - this.fade = this.fade.bind(this); - this.fadeIn = this.fadeIn.bind(this); - } - - createClass(Cursor, [ - { - key: 'initialAssignment', - value: function initialAssignment() { - Object.assign(this.el.style, { - opacity: '1', - 'transition-duration': '0.1s', - }); - }, - }, - { - key: 'fade', - value: function fade() { - this.el.style.opacity = '0'; - - this.faded = true; - }, - }, - { - key: 'fadeIn', - value: function fadeIn() { - this.el.style.opacity = '1'; - - this.faded = false; - }, - }, - { - key: 'logic', - value: function logic() { - this.faded ? setTimeout(this.fadeIn, this.speed) : setTimeout(this.fade, this.speed); - }, - }, - { - key: 'start', - value: function start() { - setTimeout(this.fade.bind(this), 0); - }, - }, - ]); - return Cursor; -})(); - -var Typewriter = (function () { - function Typewriter(el, options) { - classCallCheck(this, Typewriter); - - this.el = el; - this.text = ''; - this.queue = []; - this.options = Object.assign({}, defaultOptions, options); - - this.createTextEl(); - } - - // USER API - - createClass(Typewriter, [ - { - key: 'type', - value: function type(str) { - this.queue.push({ - type: 'type', - content: str, - }); - - return this; - }, - }, - { - key: 'strings', - value: function strings(interval) { - var _this = this; - - for (var _len = arguments.length, arr = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - arr[_key - 1] = arguments[_key]; - } - - arr.forEach(function (str, i) { - _this.queue.push({ - type: 'type', - content: str, - }); - - if (interval) { - _this.queue.push({ - type: 'pause', - time: interval, - }); - } - - if (i === arr.length - 1) return; - - _this.queue.push({ - type: 'deleteChars', - count: str.length, - }); - }); - - return this; - }, - }, - { - key: 'remove', - value: function remove(num) { - this.queue.push({ - type: 'deleteChars', - count: num, - }); - - return this; - }, - }, - { - key: 'clear', - value: function clear() { - this.queue.push({ - type: 'clear', - }); - - return this; - }, - }, - { - key: 'clearText', - value: function clearText() { - this.text = ''; - this.render(); - - return this; - }, - }, - { - key: 'queueClearText', - value: function queueClearText() { - this.queue.push({ - type: 'clearText', - }); - - return this; - }, - }, - { - key: 'clearQueue', - value: function clearQueue() { - this.queue = []; - this.text = ''; - render(); - - return this; - }, - }, - { - key: 'rest', - value: function rest(time) { - this.queue.push({ - type: 'pause', - time: time, - }); - - return this; - }, - }, - { - key: 'changeOps', - value: function changeOps(options) { - this.queue.push({ - type: 'changeOps', - options: options, - }); - - return this; - }, - }, - { - key: 'then', - value: function then(cb) { - this.queue.push({ - type: 'callback', - cb: cb, - }); - - return this; - }, - }, - { - key: 'removeCursor', - value: function removeCursor() { - this.queue.push({ - type: 'deleteCursor', - }); - - return this; - }, - }, - { - key: 'addCursor', - value: function addCursor() { - this.queue.push({ - type: 'createCursor', - }); - - return this; - }, - }, - { - key: 'changeTypeColor', - value: function changeTypeColor(color) { - this.queue.push({ - type: 'typeColor', - color: color, - }); - - return this; - }, - }, - { - key: 'changeCursorColor', - value: function changeCursorColor(color) { - this.queue.push({ - type: 'cursorColor', - color: color, - }); - - return this; - }, - }, - { - key: 'changeTypeClass', - value: function changeTypeClass(className) { - this.queue.push({ - type: 'typeClass', - className: className, - }); - - return this; - }, - }, - { - key: 'changeCursorClass', - value: function changeCursorClass(className) { - this.queue.push({ - type: 'cursorClass', - className: className, - }); - - return this; - }, - }, - { - key: 'start', - value: function start() { - var _this2 = this; - - if (this.running) return; - - if (!this.cursorEl) { - this.createCursorEl(); - } - - this.running = true; - this.deleteAll().then(function (_) { - return _this2.loop(0); - }); - }, - - // ACTIONS (promises) - }, - { - key: 'add', - value: function add(content) { - var _this3 = this; - - var count = 0; - this.timestamp = Date.now(); - - return new Promise(function (resolve, _) { - var _step = function _step() { - if (count === content.length) return resolve(); - - var newStamp = Date.now(); - var change = newStamp - _this3.timestamp; - - if (change >= _this3.getTypeSpeed()) { - _this3.addChar(content[count]); - _this3.timestamp = newStamp; - count++; - } - requestAnimationFrame(_step); - }; - - requestAnimationFrame(_step); - }); - }, - }, - { - key: 'delete', - value: function _delete(count) { - var _this4 = this; - - this.timestamp = Date.now(); - - return new Promise(function (resolve, _) { - var _step = function _step() { - if (count === 0) return resolve(); - - var newStamp = Date.now(); - var change = newStamp - _this4.timestamp; - - if (change >= _this4.getDeleteSpeed()) { - _this4.deleteChar(); - _this4.timestamp = newStamp; - count--; - } - requestAnimationFrame(_step); - }; - - requestAnimationFrame(_step); - }); - }, - }, - { - key: 'deleteAll', - value: function deleteAll() { - return this.delete(this.text.length); - }, - }, - { - key: 'pause', - value: function pause(time) { - return new Promise(function (resolve, _) { - setTimeout(resolve, time); - }); - }, - }, - { - key: 'callback', - value: function callback(cb) { - return new Promise(function (resolve, _) { - cb(); - resolve(); - }); - }, - }, - { - key: 'deleteCursor', - value: function deleteCursor() { - var _this5 = this; - - return new Promise(function (resolve, _) { - _this5.removeCursorEl(); - resolve(); - }); - }, - }, - { - key: 'createCursor', - value: function createCursor() { - var _this6 = this; - - return new Promise(function (resolve, _) { - _this6.createCursorEl(); - resolve(); - }); - }, - }, - { - key: 'clearTextAction', - value: function clearTextAction() { - var _this7 = this; - - return new Promise(function (resolve, _) { - _this7.clearText(); - resolve(); - }); - }, - }, - { - key: 'changeOpsAction', - value: function changeOpsAction(options) { - var _this8 = this; - - return new Promise(function (resolve, _) { - _this8.options = Object.assign(_this8.options, options); - resolve(); - }); - }, - }, - { - key: 'typeColor', - value: function typeColor(color) { - var _this9 = this; - - return new Promise(function (resolve, _) { - _this9.textEl.style.color = color; - resolve(); - }); - }, - }, - { - key: 'cursorColor', - value: function cursorColor(color) { - var _this10 = this; - - return new Promise(function (resolve, _) { - _this10.cursorEl.style.color = color; - resolve(); - }); - }, - }, - { - key: 'typeClass', - value: function typeClass(className) { - var _this11 = this; - - return new Promise(function (resolve, _) { - _this11.textEl.className = className; - resolve(); - }); - }, - }, - { - key: 'cursorClass', - value: function cursorClass(className) { - var _this12 = this; - - return new Promise(function (resolve, _) { - _this12.cursorEl.className = className; - resolve(); - }); - }, - - // HELPERS - }, - { - key: 'deleteChar', - value: function deleteChar() { - this.text = this.text.slice(0, -1); - this.render(); - }, - }, - { - key: 'addChar', - value: function addChar(char) { - this.text += char; - this.render(); - }, - }, - { - key: 'getTypeSpeed', - value: function getTypeSpeed() { - var speed = this.options.typeSpeed; - - if (typeof speed === 'number') { - return speed; - } - - var max = this.options.typeSpeedMax; - var min = this.options.typeSpeedMin; - - var random = Math.floor(Math.random() * (max - min)); - return random + min; - }, - }, - { - key: 'getDeleteSpeed', - value: function getDeleteSpeed() { - var speed = this.options.deleteSpeed; - - if (typeof speed === 'number') { - return speed; - } - - var max = this.options.deleteSpeedMax; - var min = this.options.deleteSpeedMin; - - var random = Math.floor(Math.random() * (max - min)); - return random + min; - }, - }, - { - key: 'step', - value: function step(idx) { - var action = this.queue[idx]; - - switch (action.type) { - case 'type': - return this.add(action.content); - - case 'deleteChars': - return this.delete(action.count); - - case 'clear': - return this.deleteAll(); - - case 'pause': - return this.pause(action.time); - - case 'callback': - return this.callback(action.cb); - - case 'deleteCursor': - return this.deleteCursor(); - - case 'createCursor': - return this.createCursor(); - - case 'clearText': - return this.clearTextAction(); - - case 'changeOps': - return this.changeOpsAction(action.options); - - case 'typeColor': - return this.typeColor(action.color); - - case 'cursorColor': - return this.cursorColor(action.color); - - case 'typeClass': - return this.typeClass(action.className); - - case 'cursorClass': - return this.cursorClass(action.className); - } - }, - }, - { - key: 'loop', - value: function loop(idx) { - var _this13 = this; - - if (idx === this.queue.length) { - this.running = false; - - if (this.options.loop) { - this.start(); - } - return; - } - - this.step(idx).then(function (_) { - _this13.loop(idx + 1); - }); - }, - }, - { - key: 'createCursorEl', - value: function createCursorEl() { - if (typeof this.options.animateCursor === 'String') return; - - this.cursorEl = document.createElement('span'); - this.cursorEl.innerHTML = '|'; - - this.cursorEl.style.color = this.options.cursorColor; - - this.cursorEl.classList.add(this.options.cursorClass); - - this.el.appendChild(this.cursorEl); - - if (this.options.animateCursor) { - this.cursor = new Cursor(this.cursorEl, this.options.blinkSpeed); - - this.cursor.start(); - } - }, - }, - { - key: 'removeCursorEl', - value: function removeCursorEl() { - this.el.removeChild(this.cursorEl); - - this.cursorEl = null; - }, - }, - { - key: 'createTextEl', - value: function createTextEl() { - this.textEl = document.createElement('div'); - - this.textEl.classList.add(this.options.typeClass); - this.textEl.classList.add('glitch'); - // this.textEl.classList.add("glitch"); - this.textEl.style.color = this.options.typeColor; - - this.el.appendChild(this.textEl); - }, - }, - { - key: 'render', - value: function render() { - this.textEl.innerHTML = this.text; - this.textEl.setAttribute('data-text', this.text); - this.textEl.classList.add('force-redraw'); - this.textEl.classList.remove('force-redraw'); - }, - }, - ]); - return Typewriter; -})(); - -const options = { - loop: false, - typeColor: 'white', - typeSpeed: 300, -}; -const target = document.querySelector('#t-writer-title'); -const writer = new Typewriter(target, options); - -'ENOWARS 5'.split('').forEach((char) => { - writer.type(char).rest(Math.random() * 30); -}); - -writer.start(); From 3805fac87c1ecd7e284ece0672dcf8ab23403b32 Mon Sep 17 00:00:00 2001 From: Daniel Habenicht Date: Sun, 13 Jun 2021 00:32:21 +0200 Subject: [PATCH 008/118] enable annotations --- .../Controllers/AccountController.cs | 5 ++++ .../EnoLandingPageBackend.csproj | 13 +++++++++-- EnoLandingPageBackend/Startup.cs | 23 ++++++++++++++++++- 3 files changed, 38 insertions(+), 3 deletions(-) diff --git a/EnoLandingPageBackend/Controllers/AccountController.cs b/EnoLandingPageBackend/Controllers/AccountController.cs index a536d5e..6d89674 100644 --- a/EnoLandingPageBackend/Controllers/AccountController.cs +++ b/EnoLandingPageBackend/Controllers/AccountController.cs @@ -35,6 +35,11 @@ public AccountController(ILogger logger, LandingPageDatabase this.settings = settings; } + /// + /// Login to the Portal. + /// + /// The URL the User will be redirected after succesfull login. + /// [HttpGet] public ActionResult Login(string redirectUri) // TODO 404 foo makes ReturnUrl out of this { diff --git a/EnoLandingPageBackend/EnoLandingPageBackend.csproj b/EnoLandingPageBackend/EnoLandingPageBackend.csproj index a7fad37..56ce043 100644 --- a/EnoLandingPageBackend/EnoLandingPageBackend.csproj +++ b/EnoLandingPageBackend/EnoLandingPageBackend.csproj @@ -1,9 +1,14 @@ - + net5.0 + + true + + + @@ -22,7 +27,10 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - + + + + @@ -31,6 +39,7 @@ + diff --git a/EnoLandingPageBackend/Startup.cs b/EnoLandingPageBackend/Startup.cs index 00bd5ac..5d58653 100644 --- a/EnoLandingPageBackend/Startup.cs +++ b/EnoLandingPageBackend/Startup.cs @@ -3,9 +3,11 @@ namespace EnoLandingPageBackend using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; + using System.IO; using System.Linq; using System.Net.Http; using System.Net.Http.Headers; + using System.Reflection; using System.Security.Claims; using System.Text.Json; using System.Threading.Tasks; @@ -127,9 +129,19 @@ public void ConfigureServices(IServiceCollection services) services.AddControllers(); services.AddDbContextPool(options => options.UseSqlite(LandingPageDatabaseContext.CONNECTIONSTRING)); services.AddScoped(); + // Register Swagger services + // TODO: Add examples + //services.AddSwaggerExamplesFromAssembyOf() services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new OpenApiInfo { Title = "EnoLandingPage", Version = "v1" }); + var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml"; + var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile); + c.IncludeXmlComments(xmlPath); + c.EnableAnnotations(); + // TODO Maybe add Filters + //c.DocumentFilter(); + //c.DescribeAllEnumsAsStrings(); }); services.AddSingleton(); } @@ -143,7 +155,11 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env, LandingP { app.UseDeveloperExceptionPage(); app.UseSwagger(); - app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "EnoLandingPageBackend v1")); + app.UseSwaggerUI(c => + { + c.DisplayOperationId(); + c.SwaggerEndpoint("/swagger/v1/swagger.json", "EnoLandingPageBackend v1"); + }); } else { @@ -158,6 +174,11 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env, LandingP endpoints.MapControllers(); }); db.Migrate(); + + app.UseStaticFiles(); + //app.UseSpaStaticFiles(); + + var rewrite = new RewriteOptions() .AddRewrite("^$", "/index.html", true) .AddRewrite(@"^[\w\/]*$", "/index.html", true); From 8b8472da2673393c150763f4a75c560f14c3376a Mon Sep 17 00:00:00 2001 From: Daniel Habenicht Date: Sun, 13 Jun 2021 01:40:13 +0200 Subject: [PATCH 009/118] add angular app --- .../ClientApp/.browserslistrc | 17 + EnoLandingPageBackend/ClientApp/.editorconfig | 16 + EnoLandingPageBackend/ClientApp/.gitignore | 45 + EnoLandingPageBackend/ClientApp/README.md | 27 + EnoLandingPageBackend/ClientApp/angular.json | 114 + EnoLandingPageBackend/ClientApp/karma.conf.js | 44 + .../ClientApp/package-lock.json | 12127 ++++++++++++++++ EnoLandingPageBackend/ClientApp/package.json | 39 + .../ClientApp/src/app/app-routing.module.ts | 10 + .../ClientApp/src/app/app.component.html | 509 + .../ClientApp/src/app/app.component.scss | 0 .../ClientApp/src/app/app.component.spec.ts | 35 + .../ClientApp/src/app/app.component.ts | 10 + .../ClientApp/src/app/app.module.ts | 18 + .../ClientApp/src/assets/.gitkeep | 0 .../src/environments/environment.prod.ts | 3 + .../ClientApp/src/environments/environment.ts | 16 + .../ClientApp/src/favicon.ico | Bin 0 -> 948 bytes .../ClientApp/src/index.html | 13 + EnoLandingPageBackend/ClientApp/src/main.ts | 12 + .../ClientApp/src/polyfills.ts | 65 + .../ClientApp/src/styles.scss | 1 + EnoLandingPageBackend/ClientApp/src/test.ts | 25 + .../ClientApp/tsconfig.app.json | 15 + EnoLandingPageBackend/ClientApp/tsconfig.json | 30 + .../ClientApp/tsconfig.spec.json | 18 + .../EnoLandingPageBackend.csproj | 45 + EnoLandingPageBackend/Program.cs | 1 + .../Properties/launchSettings.json | 15 +- EnoLandingPageBackend/Startup.cs | 49 +- 30 files changed, 13302 insertions(+), 17 deletions(-) create mode 100644 EnoLandingPageBackend/ClientApp/.browserslistrc create mode 100644 EnoLandingPageBackend/ClientApp/.editorconfig create mode 100644 EnoLandingPageBackend/ClientApp/.gitignore create mode 100644 EnoLandingPageBackend/ClientApp/README.md create mode 100644 EnoLandingPageBackend/ClientApp/angular.json create mode 100644 EnoLandingPageBackend/ClientApp/karma.conf.js create mode 100644 EnoLandingPageBackend/ClientApp/package-lock.json create mode 100644 EnoLandingPageBackend/ClientApp/package.json create mode 100644 EnoLandingPageBackend/ClientApp/src/app/app-routing.module.ts create mode 100644 EnoLandingPageBackend/ClientApp/src/app/app.component.html create mode 100644 EnoLandingPageBackend/ClientApp/src/app/app.component.scss create mode 100644 EnoLandingPageBackend/ClientApp/src/app/app.component.spec.ts create mode 100644 EnoLandingPageBackend/ClientApp/src/app/app.component.ts create mode 100644 EnoLandingPageBackend/ClientApp/src/app/app.module.ts create mode 100644 EnoLandingPageBackend/ClientApp/src/assets/.gitkeep create mode 100644 EnoLandingPageBackend/ClientApp/src/environments/environment.prod.ts create mode 100644 EnoLandingPageBackend/ClientApp/src/environments/environment.ts create mode 100644 EnoLandingPageBackend/ClientApp/src/favicon.ico create mode 100644 EnoLandingPageBackend/ClientApp/src/index.html create mode 100644 EnoLandingPageBackend/ClientApp/src/main.ts create mode 100644 EnoLandingPageBackend/ClientApp/src/polyfills.ts create mode 100644 EnoLandingPageBackend/ClientApp/src/styles.scss create mode 100644 EnoLandingPageBackend/ClientApp/src/test.ts create mode 100644 EnoLandingPageBackend/ClientApp/tsconfig.app.json create mode 100644 EnoLandingPageBackend/ClientApp/tsconfig.json create mode 100644 EnoLandingPageBackend/ClientApp/tsconfig.spec.json diff --git a/EnoLandingPageBackend/ClientApp/.browserslistrc b/EnoLandingPageBackend/ClientApp/.browserslistrc new file mode 100644 index 0000000..427441d --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/.browserslistrc @@ -0,0 +1,17 @@ +# This file is used by the build system to adjust CSS and JS output to support the specified browsers below. +# For additional information regarding the format and rule options, please see: +# https://github.com/browserslist/browserslist#queries + +# For the full list of supported browsers by the Angular framework, please see: +# https://angular.io/guide/browser-support + +# You can see what browsers were selected by your queries by running: +# npx browserslist + +last 1 Chrome version +last 1 Firefox version +last 2 Edge major versions +last 2 Safari major versions +last 2 iOS major versions +Firefox ESR +not IE 11 # Angular supports IE 11 only as an opt-in. To opt-in, remove the 'not' prefix on this line. diff --git a/EnoLandingPageBackend/ClientApp/.editorconfig b/EnoLandingPageBackend/ClientApp/.editorconfig new file mode 100644 index 0000000..59d9a3a --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/.editorconfig @@ -0,0 +1,16 @@ +# Editor configuration, see https://editorconfig.org +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +insert_final_newline = true +trim_trailing_whitespace = true + +[*.ts] +quote_type = single + +[*.md] +max_line_length = off +trim_trailing_whitespace = false diff --git a/EnoLandingPageBackend/ClientApp/.gitignore b/EnoLandingPageBackend/ClientApp/.gitignore new file mode 100644 index 0000000..de51f68 --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/.gitignore @@ -0,0 +1,45 @@ +# See http://help.github.com/ignore-files/ for more about ignoring files. + +# compiled output +/dist +/tmp +/out-tsc +# Only exists if Bazel was run +/bazel-out + +# dependencies +/node_modules + +# profiling files +chrome-profiler-events*.json + +# IDEs and editors +/.idea +.project +.classpath +.c9/ +*.launch +.settings/ +*.sublime-workspace + +# IDE - VSCode +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +.history/* + +# misc +/.sass-cache +/connect.lock +/coverage +/libpeerconnection.log +npm-debug.log +yarn-error.log +testem.log +/typings + +# System Files +.DS_Store +Thumbs.db diff --git a/EnoLandingPageBackend/ClientApp/README.md b/EnoLandingPageBackend/ClientApp/README.md new file mode 100644 index 0000000..11e6bef --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/README.md @@ -0,0 +1,27 @@ +# ClientApp + +This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 12.0.4. + +## Development server + +Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files. + +## Code scaffolding + +Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`. + +## Build + +Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. + +## Running unit tests + +Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io). + +## Running end-to-end tests + +Run `ng e2e` to execute the end-to-end tests via a platform of your choice. To use this command, you need to first add a package that implements end-to-end testing capabilities. + +## Further help + +To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page. diff --git a/EnoLandingPageBackend/ClientApp/angular.json b/EnoLandingPageBackend/ClientApp/angular.json new file mode 100644 index 0000000..770d2ef --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/angular.json @@ -0,0 +1,114 @@ +{ + "$schema": "./node_modules/@angular/cli/lib/config/schema.json", + "cli": { + "analytics": false + }, + "version": 1, + "newProjectRoot": "projects", + "projects": { + "ClientApp": { + "projectType": "application", + "schematics": { + "@schematics/angular:component": { + "style": "scss" + }, + "@schematics/angular:application": { + "strict": true + } + }, + "root": "", + "sourceRoot": "src", + "prefix": "app", + "architect": { + "build": { + "builder": "@angular-devkit/build-angular:browser", + "options": { + "outputPath": "dist/ClientApp", + "index": "src/index.html", + "main": "src/main.ts", + "polyfills": "src/polyfills.ts", + "tsConfig": "tsconfig.app.json", + "inlineStyleLanguage": "scss", + "assets": [ + "src/favicon.ico", + "src/assets" + ], + "styles": [ + "src/styles.scss" + ], + "scripts": [] + }, + "configurations": { + "production": { + "budgets": [ + { + "type": "initial", + "maximumWarning": "500kb", + "maximumError": "1mb" + }, + { + "type": "anyComponentStyle", + "maximumWarning": "2kb", + "maximumError": "4kb" + } + ], + "fileReplacements": [ + { + "replace": "src/environments/environment.ts", + "with": "src/environments/environment.prod.ts" + } + ], + "outputHashing": "all" + }, + "development": { + "buildOptimizer": false, + "optimization": false, + "vendorChunk": true, + "extractLicenses": false, + "sourceMap": true, + "namedChunks": true + } + }, + "defaultConfiguration": "production" + }, + "serve": { + "builder": "@angular-devkit/build-angular:dev-server", + "configurations": { + "production": { + "browserTarget": "ClientApp:build:production" + }, + "development": { + "browserTarget": "ClientApp:build:development" + } + }, + "defaultConfiguration": "development" + }, + "extract-i18n": { + "builder": "@angular-devkit/build-angular:extract-i18n", + "options": { + "browserTarget": "ClientApp:build" + } + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "main": "src/test.ts", + "polyfills": "src/polyfills.ts", + "tsConfig": "tsconfig.spec.json", + "karmaConfig": "karma.conf.js", + "inlineStyleLanguage": "scss", + "assets": [ + "src/favicon.ico", + "src/assets" + ], + "styles": [ + "src/styles.scss" + ], + "scripts": [] + } + } + } + } + }, + "defaultProject": "ClientApp" +} diff --git a/EnoLandingPageBackend/ClientApp/karma.conf.js b/EnoLandingPageBackend/ClientApp/karma.conf.js new file mode 100644 index 0000000..a0e620b --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/karma.conf.js @@ -0,0 +1,44 @@ +// 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'), + require('@angular-devkit/build-angular/plugins/karma') + ], + client: { + jasmine: { + // you can add configuration options for Jasmine here + // the possible options are listed at https://jasmine.github.io/api/edge/Configuration.html + // for example, you can disable the random execution with `random: false` + // or set a specific seed with `seed: 4321` + }, + clearContext: false // leave Jasmine Spec Runner output visible in browser + }, + jasmineHtmlReporter: { + suppressAll: true // removes the duplicated traces + }, + coverageReporter: { + dir: require('path').join(__dirname, './coverage/ClientApp'), + subdir: '.', + reporters: [ + { type: 'html' }, + { type: 'text-summary' } + ] + }, + reporters: ['progress', 'kjhtml'], + port: 9876, + colors: true, + logLevel: config.LOG_INFO, + autoWatch: true, + browsers: ['Chrome'], + singleRun: false, + restartOnFileChange: true + }); +}; diff --git a/EnoLandingPageBackend/ClientApp/package-lock.json b/EnoLandingPageBackend/ClientApp/package-lock.json new file mode 100644 index 0000000..4f17024 --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/package-lock.json @@ -0,0 +1,12127 @@ +{ + "name": "client-app", + "version": "0.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@angular-devkit/architect": { + "version": "0.1200.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1200.4.tgz", + "integrity": "sha512-/BKaVlpbZYb65elZ+xHoKB2J2DuTstMU++dqE9T/7E0CevuMoOdkLQFQm71Kjl3eFI4i6T5d8mlLVPNE/ZWm7w==", + "dev": true, + "requires": { + "@angular-devkit/core": "12.0.4", + "rxjs": "6.6.7" + } + }, + "@angular-devkit/build-angular": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-12.0.4.tgz", + "integrity": "sha512-2GqEWJZleb86zEa9JMeM5BsbgV0Zor4mCaBj2KSjS28+WVJ/Q77LgDEdfidPuPcXzK7n+Mzrt6qLlrX8ORkaEg==", + "dev": true, + "requires": { + "@angular-devkit/architect": "0.1200.4", + "@angular-devkit/build-optimizer": "0.1200.4", + "@angular-devkit/build-webpack": "0.1200.4", + "@angular-devkit/core": "12.0.4", + "@babel/core": "7.14.3", + "@babel/generator": "7.14.3", + "@babel/plugin-transform-async-to-generator": "7.13.0", + "@babel/plugin-transform-runtime": "7.14.3", + "@babel/preset-env": "7.14.2", + "@babel/runtime": "7.14.0", + "@babel/template": "7.12.13", + "@discoveryjs/json-ext": "0.5.2", + "@jsdevtools/coverage-istanbul-loader": "3.0.5", + "@ngtools/webpack": "12.0.4", + "ansi-colors": "4.1.1", + "babel-loader": "8.2.2", + "browserslist": "^4.9.1", + "cacache": "15.0.6", + "caniuse-lite": "^1.0.30001032", + "circular-dependency-plugin": "5.2.2", + "copy-webpack-plugin": "8.1.1", + "core-js": "3.12.0", + "critters": "0.0.10", + "css-loader": "5.2.4", + "css-minimizer-webpack-plugin": "3.0.0", + "find-cache-dir": "3.3.1", + "glob": "7.1.7", + "https-proxy-agent": "5.0.0", + "inquirer": "8.0.0", + "jest-worker": "26.6.2", + "karma-source-map-support": "1.4.0", + "less": "4.1.1", + "less-loader": "8.1.1", + "license-webpack-plugin": "2.3.19", + "loader-utils": "2.0.0", + "mini-css-extract-plugin": "1.5.1", + "minimatch": "3.0.4", + "open": "8.0.2", + "ora": "5.4.0", + "parse5-html-rewriting-stream": "6.0.1", + "postcss": "8.3.0", + "postcss-import": "14.0.1", + "postcss-loader": "5.2.0", + "postcss-preset-env": "6.7.0", + "raw-loader": "4.0.2", + "regenerator-runtime": "0.13.7", + "resolve-url-loader": "4.0.0", + "rimraf": "3.0.2", + "rxjs": "6.6.7", + "sass": "1.32.12", + "sass-loader": "11.0.1", + "semver": "7.3.5", + "source-map": "0.7.3", + "source-map-loader": "2.0.1", + "source-map-support": "0.5.19", + "style-loader": "2.0.0", + "stylus": "0.54.8", + "stylus-loader": "5.0.0", + "terser": "5.7.0", + "terser-webpack-plugin": "5.1.2", + "text-table": "0.2.0", + "tree-kill": "1.2.2", + "webpack": "5.38.1", + "webpack-dev-middleware": "4.1.0", + "webpack-dev-server": "3.11.2", + "webpack-merge": "5.7.3", + "webpack-subresource-integrity": "1.5.2" + } + }, + "@angular-devkit/build-optimizer": { + "version": "0.1200.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.1200.4.tgz", + "integrity": "sha512-7lD3oXfQX00nA1FElH2cI0C8Q1rNnqMpFCTB1Bfd/7/SM+ihkL7EjIoFalN5HZuFGR536zrguSKnmv3C6wijrw==", + "dev": true, + "requires": { + "source-map": "0.7.3", + "tslib": "2.2.0", + "typescript": "4.2.4" + }, + "dependencies": { + "tslib": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", + "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==", + "dev": true + } + } + }, + "@angular-devkit/build-webpack": { + "version": "0.1200.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1200.4.tgz", + "integrity": "sha512-Q7UYBvSsbK4ubsqJIVrnh4Q+EwVqNdRFlhekaM5XN3WH6xRsuZjTMuYDrQh5JSzFYjrKqezau1KzyKs7V1xIJQ==", + "dev": true, + "requires": { + "@angular-devkit/architect": "0.1200.4", + "rxjs": "6.6.7" + } + }, + "@angular-devkit/core": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-12.0.4.tgz", + "integrity": "sha512-gtQkLXuQK7NPkurw49//MFZWoRa9aVCIbxE2uxbDAzzQengx9nLUoezS2xVdM7m/SqVK72YL+ZFfSTXzfiSdnA==", + "dev": true, + "requires": { + "ajv": "8.2.0", + "ajv-formats": "2.0.2", + "fast-json-stable-stringify": "2.1.0", + "magic-string": "0.25.7", + "rxjs": "6.6.7", + "source-map": "0.7.3" + } + }, + "@angular-devkit/schematics": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-12.0.4.tgz", + "integrity": "sha512-MEAAcOh1Y4R6O7HWo7mMXgRK9BSbCZ3rlx+aHmtWpNXohw0TRhNY5WmRnQTRvMA3qjR9nh0Uo7BkRpgwRfqmBw==", + "dev": true, + "requires": { + "@angular-devkit/core": "12.0.4", + "ora": "5.4.0", + "rxjs": "6.6.7" + } + }, + "@angular/animations": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-12.0.4.tgz", + "integrity": "sha512-lpKVhTb77p23jmfiwA4hhaHDC5sO3qU8lDvQ+ePrSZ660WBckBEXzwYdqhaOmmMjQJZpJPPoP5QF5XExLGltaQ==", + "requires": { + "tslib": "^2.1.0" + } + }, + "@angular/cli": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-12.0.4.tgz", + "integrity": "sha512-kZaJ55udB/AjQ+q8CrQfk6JGWdnJpH3c2VtbvSuR/ihiG6zMSxwpXqt1rImQN0RfffG3bsHD2SpM+T7/LKPemw==", + "dev": true, + "requires": { + "@angular-devkit/architect": "0.1200.4", + "@angular-devkit/core": "12.0.4", + "@angular-devkit/schematics": "12.0.4", + "@schematics/angular": "12.0.4", + "@yarnpkg/lockfile": "1.1.0", + "ansi-colors": "4.1.1", + "debug": "4.3.1", + "ini": "2.0.0", + "inquirer": "8.0.0", + "jsonc-parser": "3.0.0", + "npm-package-arg": "8.1.2", + "npm-pick-manifest": "6.1.1", + "open": "8.0.2", + "ora": "5.4.0", + "pacote": "11.3.2", + "resolve": "1.20.0", + "rimraf": "3.0.2", + "semver": "7.3.5", + "symbol-observable": "4.0.0", + "uuid": "8.3.2" + }, + "dependencies": { + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true + } + } + }, + "@angular/common": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-12.0.4.tgz", + "integrity": "sha512-P0l5OcDdJhsURakJXxV9tGbicY8a6fEBsB+9f4iTEm36Q1FO0/7RhMMlwUDBlNK37P1oi7pEUA0mRcFIx9TOLA==", + "requires": { + "tslib": "^2.1.0" + } + }, + "@angular/compiler": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-12.0.4.tgz", + "integrity": "sha512-D/vYeRn3yTM6cgEwlMmp/WNJyDPMVrbOfNfc2nUcpHYuy/QcrjNde6QzNJjeNnyZlWRmWcE1VxwoX8+8xJdbzg==", + "requires": { + "tslib": "^2.1.0" + } + }, + "@angular/compiler-cli": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-12.0.4.tgz", + "integrity": "sha512-BAhUcJyJM2QMs+TE/A83O98nslP+xAJIaY4sag+AiH25QdioMz5kGnn7NvOpxaTxwcHFePwhZpLTQAjm3vtOsg==", + "dev": true, + "requires": { + "@babel/core": "^7.8.6", + "@babel/types": "^7.8.6", + "canonical-path": "1.0.0", + "chokidar": "^3.0.0", + "convert-source-map": "^1.5.1", + "dependency-graph": "^0.11.0", + "magic-string": "^0.25.0", + "minimist": "^1.2.0", + "reflect-metadata": "^0.1.2", + "semver": "^7.0.0", + "source-map": "^0.6.1", + "sourcemap-codec": "^1.4.8", + "tslib": "^2.1.0", + "yargs": "^16.2.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "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 + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.7", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.7.tgz", + "integrity": "sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw==", + "dev": true + } + } + }, + "@angular/core": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-12.0.4.tgz", + "integrity": "sha512-KYFcFDot89F65CN3MzMEFoUPCVEZUkSQCLyxWfJAJT56Vtik6r91w6qwprFJ2wRk7SJ7018NLFwjZQIElj0s8A==", + "requires": { + "tslib": "^2.1.0" + } + }, + "@angular/forms": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-12.0.4.tgz", + "integrity": "sha512-700j7RNGdQhGrIUMwSgP1DxT35JlYmAdmmKK2mZl2bfQwZw1xKwyG9XgbLGiaJbFoG3nLLiUgJFonA+xS4nU6w==", + "requires": { + "tslib": "^2.1.0" + } + }, + "@angular/platform-browser": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-12.0.4.tgz", + "integrity": "sha512-Wp8NSGZdbX1rHwnwaB3qijJ5rFmZ+BIOsCZDgZR18NZrF+R+npAm276/uM4g8n8KqRUbQkBeuWCPMfZNjwMY8g==", + "requires": { + "tslib": "^2.1.0" + } + }, + "@angular/platform-browser-dynamic": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-12.0.4.tgz", + "integrity": "sha512-vmqpjEH0XXLZ7iG/Q8R8CCzIbTVMcr6CEICjWXDZx+gdCUROhmbQT8/bEPVclRDAPePEQQ8A+nNIX7RPYji+1g==", + "requires": { + "tslib": "^2.1.0" + } + }, + "@angular/router": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-12.0.4.tgz", + "integrity": "sha512-gDZlOu/kOZ6TLTqUpVMQ7M8KntaGYtkZAbyEdFfC0vKhXMC9IKLv5phMzBJ+J+jPHt1D6DI6bPHgOTiKAiwIQQ==", + "requires": { + "tslib": "^2.1.0" + } + }, + "@babel/code-frame": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", + "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.14.5" + } + }, + "@babel/compat-data": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.5.tgz", + "integrity": "sha512-kixrYn4JwfAVPa0f2yfzc2AWti6WRRyO3XjWW5PJAvtE11qhSayrrcrEnee05KAtNaPC+EwehE8Qt1UedEVB8w==", + "dev": true + }, + "@babel/core": { + "version": "7.14.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.14.3.tgz", + "integrity": "sha512-jB5AmTKOCSJIZ72sd78ECEhuPiDMKlQdDI/4QRI6lzYATx5SSogS1oQA2AoPecRCknm30gHi2l+QVvNUu3wZAg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.14.3", + "@babel/helper-compilation-targets": "^7.13.16", + "@babel/helper-module-transforms": "^7.14.2", + "@babel/helpers": "^7.14.0", + "@babel/parser": "^7.14.3", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.14.2", + "@babel/types": "^7.14.2", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.1.2", + "semver": "^6.3.0", + "source-map": "^0.5.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "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/generator": { + "version": "7.14.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.3.tgz", + "integrity": "sha512-bn0S6flG/j0xtQdz3hsjJ624h3W0r3llttBMfyHX3YrZ/KtLYr15bjA0FXkgW7FpvrDuTuElXeVjiKlYRpnOFA==", + "dev": true, + "requires": { + "@babel/types": "^7.14.2", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "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/helper-annotate-as-pure": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz", + "integrity": "sha512-EivH9EgBIb+G8ij1B2jAwSH36WnGvkQSEC6CkX/6v6ZFlw5fVOHvsgGF4uiEHO2GzMvunZb6tDLQEQSdrdocrA==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.14.5.tgz", + "integrity": "sha512-YTA/Twn0vBXDVGJuAX6PwW7x5zQei1luDDo2Pl6q1qZ7hVNl0RZrhHCQG/ArGpR29Vl7ETiB8eJyrvpuRp300w==", + "dev": true, + "requires": { + "@babel/helper-explode-assignable-expression": "^7.14.5", + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.5.tgz", + "integrity": "sha512-v+QtZqXEiOnpO6EYvlImB6zCD2Lel06RzOPzmkz/D/XgQiUu3C/Jb1LOqSt/AIA34TYi/Q+KlT8vTQrgdxkbLw==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.14.5", + "@babel/helper-validator-option": "^7.14.5", + "browserslist": "^4.16.6", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.5.tgz", + "integrity": "sha512-Uq9z2e7ZtcnDMirRqAGLRaLwJn+Lrh388v5ETrR3pALJnElVh2zqQmdbz4W2RUJYohAPh2mtyPUgyMHMzXMncQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.14.5", + "@babel/helper-function-name": "^7.14.5", + "@babel/helper-member-expression-to-functions": "^7.14.5", + "@babel/helper-optimise-call-expression": "^7.14.5", + "@babel/helper-replace-supers": "^7.14.5", + "@babel/helper-split-export-declaration": "^7.14.5" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.5.tgz", + "integrity": "sha512-TLawwqpOErY2HhWbGJ2nZT5wSkR192QpN+nBg1THfBfftrlvOh+WbhrxXCH4q4xJ9Gl16BGPR/48JA+Ryiho/A==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.14.5", + "regexpu-core": "^4.7.1" + } + }, + "@babel/helper-define-polyfill-provider": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz", + "integrity": "sha512-RH3QDAfRMzj7+0Nqu5oqgO5q9mFtQEVvCRsi8qCEfzLR9p2BHfn5FzhSB2oj1fF7I2+DcTORkYaQ6aTR9Cofew==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/traverse": "^7.13.0", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.14.5.tgz", + "integrity": "sha512-Htb24gnGJdIGT4vnRKMdoXiOIlqOLmdiUYpAQ0mYfgVT/GDm8GOYhgi4GL+hMKrkiPRohO4ts34ELFsGAPQLDQ==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-function-name": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz", + "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.14.5", + "@babel/template": "^7.14.5", + "@babel/types": "^7.14.5" + }, + "dependencies": { + "@babel/template": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", + "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.14.5", + "@babel/parser": "^7.14.5", + "@babel/types": "^7.14.5" + } + } + } + }, + "@babel/helper-get-function-arity": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz", + "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz", + "integrity": "sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.5.tgz", + "integrity": "sha512-UxUeEYPrqH1Q/k0yRku1JE7dyfyehNwT6SVkMHvYvPDv4+uu627VXBckVj891BO8ruKBkiDoGnZf4qPDD8abDQ==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-module-imports": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz", + "integrity": "sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-module-transforms": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.14.5.tgz", + "integrity": "sha512-iXpX4KW8LVODuAieD7MzhNjmM6dzYY5tfRqT+R9HDXWl0jPn/djKmA+G9s/2C2T9zggw5tK1QNqZ70USfedOwA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.14.5", + "@babel/helper-replace-supers": "^7.14.5", + "@babel/helper-simple-access": "^7.14.5", + "@babel/helper-split-export-declaration": "^7.14.5", + "@babel/helper-validator-identifier": "^7.14.5", + "@babel/template": "^7.14.5", + "@babel/traverse": "^7.14.5", + "@babel/types": "^7.14.5" + }, + "dependencies": { + "@babel/template": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", + "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.14.5", + "@babel/parser": "^7.14.5", + "@babel/types": "^7.14.5" + } + } + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz", + "integrity": "sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", + "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", + "dev": true + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.14.5.tgz", + "integrity": "sha512-rLQKdQU+HYlxBwQIj8dk4/0ENOUEhA/Z0l4hN8BexpvmSMN9oA9EagjnhnDpNsRdWCfjwa4mn/HyBXO9yhQP6A==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.14.5", + "@babel/helper-wrap-function": "^7.14.5", + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-replace-supers": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.14.5.tgz", + "integrity": "sha512-3i1Qe9/8x/hCHINujn+iuHy+mMRLoc77b2nI9TB0zjH1hvn9qGlXjWlggdwUcju36PkPCy/lpM7LLUdcTyH4Ow==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.14.5", + "@babel/helper-optimise-call-expression": "^7.14.5", + "@babel/traverse": "^7.14.5", + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-simple-access": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.14.5.tgz", + "integrity": "sha512-nfBN9xvmCt6nrMZjfhkl7i0oTV3yxR4/FztsbOASyTvVcoYd0TRHh7eMLdlEcCqobydC0LAF3LtC92Iwxo0wyw==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.14.5.tgz", + "integrity": "sha512-dmqZB7mrb94PZSAOYtr+ZN5qt5owZIAgqtoTuqiFbHFtxgEcmQlRJVI+bO++fciBunXtB6MK7HrzrfcAzIz2NQ==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz", + "integrity": "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz", + "integrity": "sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", + "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", + "dev": true + }, + "@babel/helper-wrap-function": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.14.5.tgz", + "integrity": "sha512-YEdjTCq+LNuNS1WfxsDCNpgXkJaIyqco6DAelTUjT4f2KIWC1nBcaCaSdHTBqQVLnTBexBcVcFhLSU1KnYuePQ==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.14.5", + "@babel/template": "^7.14.5", + "@babel/traverse": "^7.14.5", + "@babel/types": "^7.14.5" + }, + "dependencies": { + "@babel/template": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", + "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.14.5", + "@babel/parser": "^7.14.5", + "@babel/types": "^7.14.5" + } + } + } + }, + "@babel/helpers": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.5.tgz", + "integrity": "sha512-xtcWOuN9VL6nApgVHtq3PPcQv5qFBJzoSZzJ/2c0QK/IP/gxVcoWSNQwFEGvmbQsuS9rhYqjILDGGXcTkA705Q==", + "dev": true, + "requires": { + "@babel/template": "^7.14.5", + "@babel/traverse": "^7.14.5", + "@babel/types": "^7.14.5" + }, + "dependencies": { + "@babel/template": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", + "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.14.5", + "@babel/parser": "^7.14.5", + "@babel/types": "^7.14.5" + } + } + } + }, + "@babel/highlight": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", + "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.5.tgz", + "integrity": "sha512-TM8C+xtH/9n1qzX+JNHi7AN2zHMTiPUtspO0ZdHflW8KaskkALhMmuMHb4bCmNdv9VAPzJX3/bXqkVLnAvsPfg==", + "dev": true + }, + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.14.5.tgz", + "integrity": "sha512-ZoJS2XCKPBfTmL122iP6NM9dOg+d4lc9fFk3zxc8iDjvt8Pk4+TlsHSKhIPf6X+L5ORCdBzqMZDjL/WHj7WknQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5", + "@babel/plugin-proposal-optional-chaining": "^7.14.5" + } + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.5.tgz", + "integrity": "sha512-tbD/CG3l43FIXxmu4a7RBe4zH7MLJ+S/lFowPFO7HetS2hyOZ/0nnnznegDuzFzfkyQYTxqdTH/hKmuBngaDAA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-remap-async-to-generator": "^7.14.5", + "@babel/plugin-syntax-async-generators": "^7.8.4" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz", + "integrity": "sha512-q/PLpv5Ko4dVc1LYMpCY7RVAAO4uk55qPwrIuJ5QJ8c6cVuAmhu7I/49JOppXL6gXf7ZHzpRVEUZdYoPLM04Gg==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-proposal-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.14.5.tgz", + "integrity": "sha512-KBAH5ksEnYHCegqseI5N9skTdxgJdmDoAOc0uXa+4QMYKeZD0w5IARh4FMlTNtaHhbB8v+KzMdTgxMMzsIy6Yg==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.5.tgz", + "integrity": "sha512-ExjiNYc3HDN5PXJx+bwC50GIx/KKanX2HiggnIUAYedbARdImiCU4RhhHfdf0Kd7JNXGpsBBBCOm+bBVy3Gb0g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + } + }, + "@babel/plugin-proposal-export-namespace-from": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.5.tgz", + "integrity": "sha512-g5POA32bXPMmSBu5Dx/iZGLGnKmKPc5AiY7qfZgurzrCYgIztDlHFbznSNCoQuv57YQLnQfaDi7dxCtLDIdXdA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.5.tgz", + "integrity": "sha512-NSq2fczJYKVRIsUJyNxrVUMhB27zb7N7pOFGQOhBKJrChbGcgEAqyZrmZswkPk18VMurEeJAaICbfm57vUeTbQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" + } + }, + "@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.5.tgz", + "integrity": "sha512-YGn2AvZAo9TwyhlLvCCWxD90Xq8xJ4aSgaX3G5D/8DW94L8aaT+dS5cSP+Z06+rCJERGSr9GxMBZ601xoc2taw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz", + "integrity": "sha512-gun/SOnMqjSb98Nkaq2rTKMwervfdAoz6NphdY0vTfuzMfryj+tDGb2n6UkDKwez+Y8PZDhE3D143v6Gepp4Hg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.5.tgz", + "integrity": "sha512-yiclALKe0vyZRZE0pS6RXgjUOt87GWv6FYa5zqj15PvhOGFO69R5DusPlgK/1K5dVnCtegTiWu9UaBSrLLJJBg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.5.tgz", + "integrity": "sha512-VzMyY6PWNPPT3pxc5hi9LloKNr4SSrVCg7Yr6aZpW4Ym07r7KqSU/QXYwjXLVxqwSv0t/XSXkFoKBPUkZ8vb2A==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.14.5", + "@babel/helper-compilation-targets": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.14.5" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.5.tgz", + "integrity": "sha512-3Oyiixm0ur7bzO5ybNcZFlmVsygSIQgdOa7cTfOYCMY+wEPAYhZAJxi3mixKFCTCKUhQXuCTtQ1MzrpL3WT8ZQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.5.tgz", + "integrity": "sha512-ycz+VOzo2UbWNI1rQXxIuMOzrDdHGrI23fRiz/Si2R4kv2XZQ1BK8ccdHwehMKBlcH/joGW/tzrUmo67gbJHlQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + } + }, + "@babel/plugin-proposal-private-methods": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.14.5.tgz", + "integrity": "sha512-838DkdUA1u+QTCplatfq4B7+1lnDa/+QMI89x5WZHBcnNv+47N8QEj2k9I2MUU9xIv8XJ4XvPCviM/Dj7Uwt9g==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-62EyfyA3WA0mZiF2e2IV9mc9Ghwxcg8YTu8BS4Wss4Y3PY725OmS9M0qLORbJwLqFtGh+jiE4wAmocK2CTUK2Q==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.14.5", + "@babel/helper-create-class-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.14.5.tgz", + "integrity": "sha512-6axIeOU5LnY471KenAB9vI8I5j7NQ2d652hIYwVyRfgaZT5UpiqFKCuVXCDMSrU+3VFafnu2c5m3lrWIlr6A5Q==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.14.5.tgz", + "integrity": "sha512-KOnO0l4+tD5IfOdi4x8C1XmEIRWUjNRV8wc6K2vz/3e8yAOoZZvsRXRRIF/yo/MAOFb4QjtAw9xSxMXbSMRy8A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.13.0.tgz", + "integrity": "sha512-3j6E004Dx0K3eGmhxVJxwwI89CTJrce7lg3UrtFuDAVQ/2+SJ/h/aSFOeE6/n0WB1GsOffsJp6MnPQNQ8nmwhg==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-remap-async-to-generator": "^7.13.0" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz", + "integrity": "sha512-dtqWqdWZ5NqBX3KzsVCWfQI3A53Ft5pWFCT2eCVUftWZgjc5DpDponbIF1+c+7cSGk2wN0YK7HGL/ezfRbpKBQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.5.tgz", + "integrity": "sha512-LBYm4ZocNgoCqyxMLoOnwpsmQ18HWTQvql64t3GvMUzLQrNoV1BDG0lNftC8QKYERkZgCCT/7J5xWGObGAyHDw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.5.tgz", + "integrity": "sha512-J4VxKAMykM06K/64z9rwiL6xnBHgB1+FVspqvlgCdwD1KUbQNfszeKVVOMh59w3sztHYIZDgnhOC4WbdEfHFDA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.14.5", + "@babel/helper-function-name": "^7.14.5", + "@babel/helper-optimise-call-expression": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-replace-supers": "^7.14.5", + "@babel/helper-split-export-declaration": "^7.14.5", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.14.5.tgz", + "integrity": "sha512-pWM+E4283UxaVzLb8UBXv4EIxMovU4zxT1OPnpHJcmnvyY9QbPPTKZfEj31EUvG3/EQRbYAGaYEUZ4yWOBC2xg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.5.tgz", + "integrity": "sha512-wU9tYisEbRMxqDezKUqC9GleLycCRoUsai9ddlsq54r8QRLaeEhc+d+9DqCG+kV9W2GgQjTZESPTpn5bAFMDww==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.14.5.tgz", + "integrity": "sha512-loGlnBdj02MDsFaHhAIJzh7euK89lBrGIdM9EAtHFo6xKygCUGuuWe07o1oZVk287amtW1n0808sQM99aZt3gw==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.14.5.tgz", + "integrity": "sha512-iJjbI53huKbPDAsJ8EmVmvCKeeq21bAze4fu9GBQtSLqfvzj2oRuHVx4ZkDwEhg1htQ+5OBZh/Ab0XDf5iBZ7A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.14.5.tgz", + "integrity": "sha512-jFazJhMBc9D27o9jDnIE5ZErI0R0m7PbKXVq77FFvqFbzvTMuv8jaAwLZ5PviOLSFttqKIW0/wxNSDbjLk0tYA==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.14.5.tgz", + "integrity": "sha512-CfmqxSUZzBl0rSjpoQSFoR9UEj3HzbGuGNL21/iFTmjb5gFggJp3ph0xR1YBhexmLoKRHzgxuFvty2xdSt6gTA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.14.5.tgz", + "integrity": "sha512-vbO6kv0fIzZ1GpmGQuvbwwm+O4Cbm2NrPzwlup9+/3fdkuzo1YqOZcXw26+YUJB84Ja7j9yURWposEHLYwxUfQ==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.14.5.tgz", + "integrity": "sha512-ql33+epql2F49bi8aHXxvLURHkxJbSmMKl9J5yHqg4PLtdE6Uc48CH1GS6TQvZ86eoB/ApZXwm7jlA+B3kra7A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.14.5.tgz", + "integrity": "sha512-WkNXxH1VXVTKarWFqmso83xl+2V3Eo28YY5utIkbsmXoItO8Q3aZxN4BTS2k0hz9dGUloHK26mJMyQEYfkn/+Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.5.tgz", + "integrity": "sha512-3lpOU8Vxmp3roC4vzFpSdEpGUWSMsHFreTWOMMLzel2gNGfHE5UWIh/LN6ghHs2xurUp4jRFYMUIZhuFbody1g==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.5.tgz", + "integrity": "sha512-en8GfBtgnydoao2PS+87mKyw62k02k7kJ9ltbKe0fXTHrQmG6QZZflYuGI1VVG7sVpx4E1n7KBpNlPb8m78J+A==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-simple-access": "^7.14.5", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.14.5.tgz", + "integrity": "sha512-mNMQdvBEE5DcMQaL5LbzXFMANrQjd2W7FPzg34Y4yEz7dBgdaC+9B84dSO+/1Wba98zoDbInctCDo4JGxz1VYA==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.14.5", + "@babel/helper-module-transforms": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-validator-identifier": "^7.14.5", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.5.tgz", + "integrity": "sha512-RfPGoagSngC06LsGUYyM9QWSXZ8MysEjDJTAea1lqRjNECE3y0qIJF/qbvJxc4oA4s99HumIMdXOrd+TdKaAAA==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.5.tgz", + "integrity": "sha512-+Xe5+6MWFo311U8SchgeX5c1+lJM+eZDBZgD+tvXu9VVQPXwwVzeManMMjYX6xw2HczngfOSZjoFYKwdeB/Jvw==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.14.5" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.14.5.tgz", + "integrity": "sha512-Nx054zovz6IIRWEB49RDRuXGI4Gy0GMgqG0cII9L3MxqgXz/+rgII+RU58qpo4g7tNEx1jG7rRVH4ihZoP4esQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.14.5.tgz", + "integrity": "sha512-MKfOBWzK0pZIrav9z/hkRqIk/2bTv9qvxHzPQc12RcVkMOzpIKnFCNYJip00ssKWYkd8Sf5g0Wr7pqJ+cmtuFg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-replace-supers": "^7.14.5" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.5.tgz", + "integrity": "sha512-Tl7LWdr6HUxTmzQtzuU14SqbgrSKmaR77M0OKyq4njZLQTPfOvzblNKyNkGwOfEFCEx7KeYHQHDI0P3F02IVkA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.14.5.tgz", + "integrity": "sha512-r1uilDthkgXW8Z1vJz2dKYLV1tuw2xsbrp3MrZmD99Wh9vsfKoob+JTgri5VUb/JqyKRXotlOtwgu4stIYCmnw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.14.5.tgz", + "integrity": "sha512-NVIY1W3ITDP5xQl50NgTKlZ0GrotKtLna08/uGY6ErQt6VEQZXla86x/CTddm5gZdcr+5GSsvMeTmWA5Ii6pkg==", + "dev": true, + "requires": { + "regenerator-transform": "^0.14.2" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.14.5.tgz", + "integrity": "sha512-cv4F2rv1nD4qdexOGsRQXJrOcyb5CrgjUH9PKrrtyhSDBNWGxd0UIitjyJiWagS+EbUGjG++22mGH1Pub8D6Vg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-runtime": { + "version": "7.14.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.14.3.tgz", + "integrity": "sha512-t960xbi8wpTFE623ef7sd+UpEC5T6EEguQlTBJDEO05+XwnIWVfuqLw/vdLWY6IdFmtZE+65CZAfByT39zRpkg==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.13.12", + "@babel/helper-plugin-utils": "^7.13.0", + "babel-plugin-polyfill-corejs2": "^0.2.0", + "babel-plugin-polyfill-corejs3": "^0.2.0", + "babel-plugin-polyfill-regenerator": "^0.2.0", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.14.5.tgz", + "integrity": "sha512-xLucks6T1VmGsTB+GWK5Pl9Jl5+nRXD1uoFdA5TSO6xtiNjtXTjKkmPdFXVLGlK5A2/or/wQMKfmQ2Y0XJfn5g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.5.tgz", + "integrity": "sha512-/3iqoQdiWergnShZYl0xACb4ADeYCJ7X/RgmwtXshn6cIvautRPAFzhd58frQlokLO6Jb4/3JXvmm6WNTPtiTw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.14.5.tgz", + "integrity": "sha512-Z7F7GyvEMzIIbwnziAZmnSNpdijdr4dWt+FJNBnBLz5mwDFkqIXU9wmBcWWad3QeJF5hMTkRe4dAq2sUZiG+8A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.14.5.tgz", + "integrity": "sha512-22btZeURqiepOfuy/VkFr+zStqlujWaarpMErvay7goJS6BWwdd6BY9zQyDLDa4x2S3VugxFb162IZ4m/S/+Gg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.14.5.tgz", + "integrity": "sha512-lXzLD30ffCWseTbMQzrvDWqljvZlHkXU+CnseMhkMNqU1sASnCsz3tSzAaH3vCUXb9PHeUb90ZT1BdFTm1xxJw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.14.5.tgz", + "integrity": "sha512-crTo4jATEOjxj7bt9lbYXcBAM3LZaUrbP2uUdxb6WIorLmjNKSpHfIybgY4B8SRpbf8tEVIWH3Vtm7ayCrKocA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.14.5.tgz", + "integrity": "sha512-UygduJpC5kHeCiRw/xDVzC+wj8VaYSoKl5JNVmbP7MadpNinAm3SvZCxZ42H37KZBKztz46YC73i9yV34d0Tzw==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/preset-env": { + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.14.2.tgz", + "integrity": "sha512-7dD7lVT8GMrE73v4lvDEb85cgcQhdES91BSD7jS/xjC6QY8PnRhux35ac+GCpbiRhp8crexBvZZqnaL6VrY8TQ==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.14.0", + "@babel/helper-compilation-targets": "^7.13.16", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-validator-option": "^7.12.17", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.13.12", + "@babel/plugin-proposal-async-generator-functions": "^7.14.2", + "@babel/plugin-proposal-class-properties": "^7.13.0", + "@babel/plugin-proposal-class-static-block": "^7.13.11", + "@babel/plugin-proposal-dynamic-import": "^7.14.2", + "@babel/plugin-proposal-export-namespace-from": "^7.14.2", + "@babel/plugin-proposal-json-strings": "^7.14.2", + "@babel/plugin-proposal-logical-assignment-operators": "^7.14.2", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.2", + "@babel/plugin-proposal-numeric-separator": "^7.14.2", + "@babel/plugin-proposal-object-rest-spread": "^7.14.2", + "@babel/plugin-proposal-optional-catch-binding": "^7.14.2", + "@babel/plugin-proposal-optional-chaining": "^7.14.2", + "@babel/plugin-proposal-private-methods": "^7.13.0", + "@babel/plugin-proposal-private-property-in-object": "^7.14.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.12.13", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.12.13", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.0", + "@babel/plugin-syntax-top-level-await": "^7.12.13", + "@babel/plugin-transform-arrow-functions": "^7.13.0", + "@babel/plugin-transform-async-to-generator": "^7.13.0", + "@babel/plugin-transform-block-scoped-functions": "^7.12.13", + "@babel/plugin-transform-block-scoping": "^7.14.2", + "@babel/plugin-transform-classes": "^7.14.2", + "@babel/plugin-transform-computed-properties": "^7.13.0", + "@babel/plugin-transform-destructuring": "^7.13.17", + "@babel/plugin-transform-dotall-regex": "^7.12.13", + "@babel/plugin-transform-duplicate-keys": "^7.12.13", + "@babel/plugin-transform-exponentiation-operator": "^7.12.13", + "@babel/plugin-transform-for-of": "^7.13.0", + "@babel/plugin-transform-function-name": "^7.12.13", + "@babel/plugin-transform-literals": "^7.12.13", + "@babel/plugin-transform-member-expression-literals": "^7.12.13", + "@babel/plugin-transform-modules-amd": "^7.14.2", + "@babel/plugin-transform-modules-commonjs": "^7.14.0", + "@babel/plugin-transform-modules-systemjs": "^7.13.8", + "@babel/plugin-transform-modules-umd": "^7.14.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.13", + "@babel/plugin-transform-new-target": "^7.12.13", + "@babel/plugin-transform-object-super": "^7.12.13", + "@babel/plugin-transform-parameters": "^7.14.2", + "@babel/plugin-transform-property-literals": "^7.12.13", + "@babel/plugin-transform-regenerator": "^7.13.15", + "@babel/plugin-transform-reserved-words": "^7.12.13", + "@babel/plugin-transform-shorthand-properties": "^7.12.13", + "@babel/plugin-transform-spread": "^7.13.0", + "@babel/plugin-transform-sticky-regex": "^7.12.13", + "@babel/plugin-transform-template-literals": "^7.13.0", + "@babel/plugin-transform-typeof-symbol": "^7.12.13", + "@babel/plugin-transform-unicode-escapes": "^7.12.13", + "@babel/plugin-transform-unicode-regex": "^7.12.13", + "@babel/preset-modules": "^0.1.4", + "@babel/types": "^7.14.2", + "babel-plugin-polyfill-corejs2": "^0.2.0", + "babel-plugin-polyfill-corejs3": "^0.2.0", + "babel-plugin-polyfill-regenerator": "^0.2.0", + "core-js-compat": "^3.9.0", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@babel/preset-modules": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz", + "integrity": "sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/runtime": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.0.tgz", + "integrity": "sha512-JELkvo/DlpNdJ7dlyw/eY7E0suy5i5GQH+Vlxaq1nsNJ+H7f4Vtv3jMeCEgRhZZQFXTjldYfQgv2qmM6M1v5wA==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/template": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", + "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/traverse": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.5.tgz", + "integrity": "sha512-G3BiS15vevepdmFqmUc9X+64y0viZYygubAMO8SvBmKARuF6CPSZtH4Ng9vi/lrWlZFGe3FWdXNy835akH8Glg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.14.5", + "@babel/generator": "^7.14.5", + "@babel/helper-function-name": "^7.14.5", + "@babel/helper-hoist-variables": "^7.14.5", + "@babel/helper-split-export-declaration": "^7.14.5", + "@babel/parser": "^7.14.5", + "@babel/types": "^7.14.5", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "dependencies": { + "@babel/generator": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.5.tgz", + "integrity": "sha512-y3rlP+/G25OIX3mYKKIOlQRcqj7YgrvHxOLbVmyLJ9bPmi5ttvUmpydVjcFjZphOktWuA7ovbx91ECloWTfjIA==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5", + "jsesc": "^2.5.1", + "source-map": "^0.5.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 + } + } + }, + "@babel/types": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", + "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.5", + "to-fast-properties": "^2.0.0" + } + }, + "@csstools/convert-colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@csstools/convert-colors/-/convert-colors-1.4.0.tgz", + "integrity": "sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw==", + "dev": true + }, + "@discoveryjs/json-ext": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.2.tgz", + "integrity": "sha512-HyYEUDeIj5rRQU2Hk5HTB2uHsbRQpF70nvMhVzi+VJR0X+xNEhjPui4/kBf3VeH/wqD28PT4sVOm8qqLjBrSZg==", + "dev": true + }, + "@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true + }, + "@jsdevtools/coverage-istanbul-loader": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@jsdevtools/coverage-istanbul-loader/-/coverage-istanbul-loader-3.0.5.tgz", + "integrity": "sha512-EUCPEkaRPvmHjWAAZkWMT7JDzpw7FKB00WTISaiXsbNOd5hCHg77XLA8sLYLFDo1zepYLo2w7GstN8YBqRXZfA==", + "dev": true, + "requires": { + "convert-source-map": "^1.7.0", + "istanbul-lib-instrument": "^4.0.3", + "loader-utils": "^2.0.0", + "merge-source-map": "^1.1.0", + "schema-utils": "^2.7.0" + } + }, + "@ngtools/webpack": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-12.0.4.tgz", + "integrity": "sha512-djmXTB7qo35Mw6olJEfVTOFRms/E4rCpcLV0GfQJqhWfUB9K/n+QbxW5cp09J48DpqlMP00C942+POBcUqbg3g==", + "dev": true, + "requires": { + "enhanced-resolve": "5.7.0" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.7.tgz", + "integrity": "sha512-BTIhocbPBSrRmHxOAJFtR18oLhxTtAFDAvL8hY1S3iU8k+E60W/YFs4jrixGzQjMpF4qPXxIQHcjVD9dz1C2QA==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@npmcli/git": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-2.0.9.tgz", + "integrity": "sha512-hTMbMryvOqGLwnmMBKs5usbPsJtyEsMsgXwJbmNrsEuQQh1LAIMDU77IoOrwkCg+NgQWl+ySlarJASwM3SutCA==", + "dev": true, + "requires": { + "@npmcli/promise-spawn": "^1.3.2", + "lru-cache": "^6.0.0", + "mkdirp": "^1.0.4", + "npm-pick-manifest": "^6.1.1", + "promise-inflight": "^1.0.1", + "promise-retry": "^2.0.1", + "semver": "^7.3.5", + "which": "^2.0.2" + }, + "dependencies": { + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "@npmcli/installed-package-contents": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz", + "integrity": "sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==", + "dev": true, + "requires": { + "npm-bundled": "^1.1.1", + "npm-normalize-package-bin": "^1.0.1" + } + }, + "@npmcli/move-file": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", + "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "dev": true, + "requires": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + } + }, + "@npmcli/node-gyp": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-1.0.2.tgz", + "integrity": "sha512-yrJUe6reVMpktcvagumoqD9r08fH1iRo01gn1u0zoCApa9lnZGEigVKUd2hzsCId4gdtkZZIVscLhNxMECKgRg==", + "dev": true + }, + "@npmcli/promise-spawn": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz", + "integrity": "sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==", + "dev": true, + "requires": { + "infer-owner": "^1.0.4" + } + }, + "@npmcli/run-script": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-1.8.5.tgz", + "integrity": "sha512-NQspusBCpTjNwNRFMtz2C5MxoxyzlbuJ4YEhxAKrIonTiirKDtatsZictx9RgamQIx6+QuHMNmPl0wQdoESs9A==", + "dev": true, + "requires": { + "@npmcli/node-gyp": "^1.0.2", + "@npmcli/promise-spawn": "^1.3.2", + "infer-owner": "^1.0.4", + "node-gyp": "^7.1.0", + "read-package-json-fast": "^2.0.1" + } + }, + "@schematics/angular": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-12.0.4.tgz", + "integrity": "sha512-rC4/+c6p3S/ezDeJzAstrwzdpYgcYzHumtzVSDDM+3Kx0QBUTq/Nj6sk1e2C/fgtV5Jb2INEkTvrih+HP7I0wA==", + "dev": true, + "requires": { + "@angular-devkit/core": "12.0.4", + "@angular-devkit/schematics": "12.0.4", + "jsonc-parser": "3.0.0" + } + }, + "@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "dev": true + }, + "@trysound/sax": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.1.1.tgz", + "integrity": "sha512-Z6DoceYb/1xSg5+e+ZlPZ9v0N16ZvZ+wYMraFue4HYrE4ttONKtsvruIRf6t9TBR0YvSOfi1hUU0fJfBLCDYow==", + "dev": true + }, + "@types/component-emitter": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.10.tgz", + "integrity": "sha512-bsjleuRKWmGqajMerkzox19aGbscQX5rmmvvXl3wlIp5gMG1HgkiwPxsN5p070fBDKTNSPgojVbuY1+HWMbFhg==", + "dev": true + }, + "@types/cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-y7mImlc/rNkvCRmg8gC3/lj87S7pTUIJ6QGjwHR9WQJcFs+ZMTOaoPrkdFA/YdbuqVEmEbb5RdhVxMkAcgOnpg==", + "dev": true + }, + "@types/cors": { + "version": "2.8.10", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.10.tgz", + "integrity": "sha512-C7srjHiVG3Ey1nR6d511dtDkCEjxuN9W1HWAEjGq8kpcwmNM6JJkpC0xvabM7BXTG2wDq8Eu33iH9aQKa7IvLQ==", + "dev": true + }, + "@types/eslint": { + "version": "7.2.13", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.13.tgz", + "integrity": "sha512-LKmQCWAlnVHvvXq4oasNUMTJJb2GwSyTY8+1C7OH5ILR8mPLaljv1jxL1bXW3xB3jFbQxTKxJAvI8PyjB09aBg==", + "dev": true, + "requires": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "@types/eslint-scope": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.0.tgz", + "integrity": "sha512-O/ql2+rrCUe2W2rs7wMR+GqPRcgB6UiqN5RhrR5xruFlY7l9YLMn0ZkDzjoHLeiFkR8MCQZVudUuuvQ2BLC9Qw==", + "dev": true, + "requires": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "@types/estree": { + "version": "0.0.47", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.47.tgz", + "integrity": "sha512-c5ciR06jK8u9BstrmJyO97m+klJrrhCf9u3rLu3DEAJBirxRqSCvDQoYKmxuYwQI5SZChAWu+tq9oVlGRuzPAg==", + "dev": true + }, + "@types/glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", + "dev": true, + "requires": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "@types/jasmine": { + "version": "3.6.11", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.6.11.tgz", + "integrity": "sha512-S6pvzQDvMZHrkBz2Mcn/8Du7cpr76PlRJBAoHnSDNbulULsH5dp0Gns+WRyNX5LHejz/ljxK4/vIHK/caHt6SQ==", + "dev": true + }, + "@types/json-schema": { + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", + "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==", + "dev": true + }, + "@types/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA==", + "dev": true + }, + "@types/node": { + "version": "12.20.15", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.15.tgz", + "integrity": "sha512-F6S4Chv4JicJmyrwlDkxUdGNSplsQdGwp1A0AJloEVDirWdZOAiRHhovDlsFkKUrquUXhz1imJhXHsf59auyAg==", + "dev": true + }, + "@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "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.8", + "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-0.1.8.tgz", + "integrity": "sha512-JHB2/xZlXOjzjBB6fMOpH1eQAfsrpqVVIbneE0Rok16WXwFaznaI5vfg75U5WgGJm7V9W1c4xeRQDjX/zwvghA==", + "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.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.0.tgz", + "integrity": "sha512-kX2W49LWsbthrmIRMbQZuQDhGtjyqXfEmmHyEi4XWnSZtPmxY0+3anPIzsnRb45VH/J55zlOfWvZuY47aJZTJg==", + "dev": true, + "requires": { + "@webassemblyjs/helper-numbers": "1.11.0", + "@webassemblyjs/helper-wasm-bytecode": "1.11.0" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.0.tgz", + "integrity": "sha512-Q/aVYs/VnPDVYvsCBL/gSgwmfjeCb4LW8+TMrO3cSzJImgv8lxxEPM2JA5jMrivE7LSz3V+PFqtMbls3m1exDA==", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.0.tgz", + "integrity": "sha512-baT/va95eXiXb2QflSx95QGT5ClzWpGaa8L7JnJbgzoYeaA27FCvuBXU758l+KXWRndEmUXjP0Q5fibhavIn8w==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.0.tgz", + "integrity": "sha512-u9HPBEl4DS+vA8qLQdEQ6N/eJQ7gT7aNvMIo8AAWvAl/xMrcOSiI2M0MAnMCy3jIFke7bEee/JwdX1nUpCtdyA==", + "dev": true + }, + "@webassemblyjs/helper-numbers": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.0.tgz", + "integrity": "sha512-DhRQKelIj01s5IgdsOJMKLppI+4zpmcMQ3XboFPLwCpSNH6Hqo1ritgHgD0nqHeSYqofA6aBN/NmXuGjM1jEfQ==", + "dev": true, + "requires": { + "@webassemblyjs/floating-point-hex-parser": "1.11.0", + "@webassemblyjs/helper-api-error": "1.11.0", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.0.tgz", + "integrity": "sha512-MbmhvxXExm542tWREgSFnOVo07fDpsBJg3sIl6fSp9xuu75eGz5lz31q7wTLffwL3Za7XNRCMZy210+tnsUSEA==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.0.tgz", + "integrity": "sha512-3Eb88hcbfY/FCukrg6i3EH8H2UsD7x8Vy47iVJrP967A9JGqgBVL9aH71SETPx1JrGsOUVLo0c7vMCN22ytJew==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.0", + "@webassemblyjs/helper-buffer": "1.11.0", + "@webassemblyjs/helper-wasm-bytecode": "1.11.0", + "@webassemblyjs/wasm-gen": "1.11.0" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.0.tgz", + "integrity": "sha512-KXzOqpcYQwAfeQ6WbF6HXo+0udBNmw0iXDmEK5sFlmQdmND+tr773Ti8/5T/M6Tl/413ArSJErATd8In3B+WBA==", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.0.tgz", + "integrity": "sha512-aqbsHa1mSQAbeeNcl38un6qVY++hh8OpCOzxhixSYgbRfNWcxJNJQwe2rezK9XEcssJbbWIkblaJRwGMS9zp+g==", + "dev": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.0.tgz", + "integrity": "sha512-A/lclGxH6SpSLSyFowMzO/+aDEPU4hvEiooCMXQPcQFPPJaYcPQNKGOCLUySJsYJ4trbpr+Fs08n4jelkVTGVw==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.0.tgz", + "integrity": "sha512-JHQ0damXy0G6J9ucyKVXO2j08JVJ2ntkdJlq1UTiUrIgfGMmA7Ik5VdC/L8hBK46kVJgujkBIoMtT8yVr+yVOQ==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.0", + "@webassemblyjs/helper-buffer": "1.11.0", + "@webassemblyjs/helper-wasm-bytecode": "1.11.0", + "@webassemblyjs/helper-wasm-section": "1.11.0", + "@webassemblyjs/wasm-gen": "1.11.0", + "@webassemblyjs/wasm-opt": "1.11.0", + "@webassemblyjs/wasm-parser": "1.11.0", + "@webassemblyjs/wast-printer": "1.11.0" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.0.tgz", + "integrity": "sha512-BEUv1aj0WptCZ9kIS30th5ILASUnAPEvE3tVMTrItnZRT9tXCLW2LEXT8ezLw59rqPP9klh9LPmpU+WmRQmCPQ==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.0", + "@webassemblyjs/helper-wasm-bytecode": "1.11.0", + "@webassemblyjs/ieee754": "1.11.0", + "@webassemblyjs/leb128": "1.11.0", + "@webassemblyjs/utf8": "1.11.0" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.0.tgz", + "integrity": "sha512-tHUSP5F4ywyh3hZ0+fDQuWxKx3mJiPeFufg+9gwTpYp324mPCQgnuVKwzLTZVqj0duRDovnPaZqDwoyhIO8kYg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.0", + "@webassemblyjs/helper-buffer": "1.11.0", + "@webassemblyjs/wasm-gen": "1.11.0", + "@webassemblyjs/wasm-parser": "1.11.0" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.0.tgz", + "integrity": "sha512-6L285Sgu9gphrcpDXINvm0M9BskznnzJTE7gYkjDbxET28shDqp27wpruyx3C2S/dvEwiigBwLA1cz7lNUi0kw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.0", + "@webassemblyjs/helper-api-error": "1.11.0", + "@webassemblyjs/helper-wasm-bytecode": "1.11.0", + "@webassemblyjs/ieee754": "1.11.0", + "@webassemblyjs/leb128": "1.11.0", + "@webassemblyjs/utf8": "1.11.0" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.0.tgz", + "integrity": "sha512-Fg5OX46pRdTgB7rKIUojkh9vXaVN6sGYCnEiJN1GYkb0RPwShZXp6KTDqmoMdQPKhcroOXh3fEzmkWmCYaKYhQ==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.0", + "@xtuc/long": "4.2.2" + } + }, + "@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.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "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 + }, + "abab": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", + "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", + "dev": true + }, + "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 + }, + "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" + } + }, + "acorn": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.4.0.tgz", + "integrity": "sha512-ULr0LDaEqQrMFGyQ3bhJkLsbtrQ8QibAseGZeaSUiT/6zb9IvIkomWHJIvgvwad+hinRAgsI51JcWk2yvwyL+w==", + "dev": true + }, + "adjust-sourcemap-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", + "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" + } + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "requires": { + "debug": "4" + } + }, + "agentkeepalive": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.1.4.tgz", + "integrity": "sha512-+V/rGa3EuU74H6wR04plBb7Ks10FbtUQgRj/FQOG7uUIEuaINI+AiqJR1k6t3SVNs7o7ZjIdus6706qqzVq8jQ==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "depd": "^1.1.2", + "humanize-ms": "^1.2.1" + } + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ajv": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.2.0.tgz", + "integrity": "sha512-WSNGFuyWd//XO8n/m/EaOlNLtO0yL8EXT/74LqT4khdhpZjP7lkj/kT5uwRmGitKEVp/Oj7ZUHeGfPtgHhQ5CA==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "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-formats": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.0.2.tgz", + "integrity": "sha512-Brah4Uo5/U8v76c6euTwtjVFFaVishwnJrQBYpev1JRh4vjA1F4HY3UzQez41YUCszUCXKagG8v6eVRBHV1gkw==", + "dev": true, + "requires": { + "ajv": "^8.0.0" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true + }, + "alphanum-sort": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", + "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", + "dev": true + }, + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true + }, + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "requires": { + "type-fest": "^0.21.3" + } + }, + "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": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "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": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "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, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "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" + } + }, + "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" + } + } + } + }, + "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-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-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "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 + }, + "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" + } + }, + "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.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "dev": true + }, + "async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "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.8.6", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz", + "integrity": "sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==", + "dev": true, + "requires": { + "browserslist": "^4.12.0", + "caniuse-lite": "^1.0.30001109", + "colorette": "^1.2.1", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^7.0.32", + "postcss-value-parser": "^4.1.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.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 + }, + "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" + } + } + } + }, + "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.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", + "dev": true + }, + "babel-loader": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.2.tgz", + "integrity": "sha512-JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g==", + "dev": true, + "requires": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^1.4.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "dependencies": { + "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" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + } + } + }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dev": true, + "requires": { + "object.assign": "^4.1.0" + } + }, + "babel-plugin-polyfill-corejs2": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz", + "integrity": "sha512-kISrENsJ0z5dNPq5eRvcctITNHYXWOA4DUZRFYCz3jYCcvTb/A546LIddmoGNMVYg2U38OyFeNosQwI9ENTqIQ==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.13.11", + "@babel/helper-define-polyfill-provider": "^0.2.2", + "semver": "^6.1.1" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.2.tgz", + "integrity": "sha512-l1Cf8PKk12eEk5QP/NQ6TH8A1pee6wWDJ96WjxrMXFLHLOBFzYM4moG80HFgduVhTqAFez4alnZKEhP/bYHg0A==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.2.2", + "core-js-compat": "^3.9.1" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz", + "integrity": "sha512-Goy5ghsc21HgPDFtzRkSirpZVW35meGoTmTOb2bxqdl60ghub4xOidgNTHaZfQ2FaxQsKmwvXtOAkcIS4SMBWg==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.2.2" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "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.4", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz", + "integrity": "sha1-mBjHngWbE1X5fgQooBfIOOkLqBI=", + "dev": true + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true + }, + "base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", + "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" + } + }, + "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": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "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" + }, + "dependencies": { + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "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" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "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" + } + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "dev": true + }, + "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": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "browserslist": { + "version": "4.16.6", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz", + "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001219", + "colorette": "^1.2.2", + "electron-to-chromium": "^1.3.723", + "escalade": "^3.1.1", + "node-releases": "^1.1.71" + } + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "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 + }, + "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": "15.0.6", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.6.tgz", + "integrity": "sha512-g1WYDMct/jzW+JdWEyjaX2zoBkZ6ZT9VpOyp2I/VMtDsNLffNat3kqPFfi1eDRSK9/SuKGyORDHcQMcPF8sQ/w==", + "dev": true, + "requires": { + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + } + }, + "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" + } + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "dev": true + }, + "caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "caniuse-lite": { + "version": "1.0.30001237", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001237.tgz", + "integrity": "sha512-pDHgRndit6p1NR2GhzMbQ6CkRrp4VKuSsqbcLeOQppYPKOYkKT/6ZvZDvKJUqcmtyWIAHuZq3SVS2vc1egCZzw==", + "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" + } + }, + "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": "3.5.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", + "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", + "dev": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.3.1", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + } + }, + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true + }, + "chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true + }, + "circular-dependency-plugin": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.2.2.tgz", + "integrity": "sha512-g38K9Cm5WRwlaH6g03B9OEz/0qRizI+2I7n+Gz+L5DxXJAPAiWQvwlYNm1V1jkdpUv95bOe/ASm2vfi/G560jQ==", + "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-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-spinners": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.0.tgz", + "integrity": "sha512-t+4/y50K/+4xcCRosKkA7W4gTr1MySvLV0q+PxmG7FJ5g+66ChKurYjxBCjHggHH3HA5Hh9cy+lcUGWDqVH+4Q==", + "dev": true + }, + "cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.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 + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "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": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.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" + } + } + } + }, + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "dev": true + }, + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + } + }, + "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 + }, + "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 + }, + "colord": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.0.1.tgz", + "integrity": "sha512-vm5YpaWamD0Ov6TSG0GGmUIwstrWcfKQV/h2CmbR7PbNu41+qdB5PW9lpzhjedrpm08uuYvcXi0Oel1RLZIJuA==", + "dev": true + }, + "colorette": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", + "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==", + "dev": true + }, + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "requires": { + "mime-db": ">= 1.43.0 < 2" + } + }, + "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" + }, + "dependencies": { + "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" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "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 + }, + "connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "dev": true, + "requires": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + }, + "dependencies": { + "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" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "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-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 + }, + "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.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "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 + }, + "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-anything": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.3.tgz", + "integrity": "sha512-GK6QUtisv4fNS+XcI7shX0Gx9ORg7QqIznyfho79JTnX1XhLiyZHfftvGiziqzRiEi/Bjhgpi+D2o7HxJFPnDQ==", + "dev": true, + "requires": { + "is-what": "^3.12.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": "8.1.1", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-8.1.1.tgz", + "integrity": "sha512-rYM2uzRxrLRpcyPqGceRBDpxxUV8vcDqIKxAUKfcnFpcrPxT5+XvhTxv7XLjo5AvEJFPdAE3zCogG2JVahqgSQ==", + "dev": true, + "requires": { + "fast-glob": "^3.2.5", + "glob-parent": "^5.1.1", + "globby": "^11.0.3", + "normalize-path": "^3.0.0", + "p-limit": "^3.1.0", + "schema-utils": "^3.0.0", + "serialize-javascript": "^5.0.1" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "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 + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "core-js": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.12.0.tgz", + "integrity": "sha512-SaMnchL//WwU2Ot1hhkPflE8gzo7uq1FGvUJ8GKmi3TOU7rGTHIU+eir1WGf6qOtTyxdfdcp10yPdGZ59sQ3hw==", + "dev": true + }, + "core-js-compat": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.14.0.tgz", + "integrity": "sha512-R4NS2eupxtiJU+VwgkF9WTpnSfZW4pogwKHd8bclWU2sp93Pr5S1uYJI84cMOubJRou7bcfL0vmwtLslWN5p3A==", + "dev": true, + "requires": { + "browserslist": "^4.16.6", + "semver": "7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true + } + } + }, + "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 + }, + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dev": true, + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, + "cosmiconfig": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz", + "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==", + "dev": true, + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + } + }, + "critters": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.10.tgz", + "integrity": "sha512-p5VKhP1803+f+0Jq5P03w1SbiHtpAKm+1EpJHkiPxQPq0Vu9QLZHviJ02GRrWi0dlcJqrmzMWInbwp4d22RsGw==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "css": "^3.0.0", + "parse5": "^6.0.1", + "parse5-htmlparser2-tree-adapter": "^6.0.1", + "pretty-bytes": "^5.3.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.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" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "css": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", + "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "source-map": "^0.6.1", + "source-map-resolve": "^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 + } + } + }, + "css-blank-pseudo": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-0.1.4.tgz", + "integrity": "sha512-LHz35Hr83dnFeipc7oqFDmsjHdljj3TQtxGGiNWSOsTLIAubSm4TEz8qCaKFpk7idaQ1GfWscF4E6mgpBysA1w==", + "dev": true, + "requires": { + "postcss": "^7.0.5" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.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 + }, + "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" + } + } + } + }, + "css-color-names": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-1.0.1.tgz", + "integrity": "sha512-/loXYOch1qU1biStIFsHH8SxTmOseh1IJqFvy8IujXOm1h+QjUdDhkzOrR5HG8K8mlxREj0yfi8ewCHx0eMxzA==", + "dev": true + }, + "css-declaration-sorter": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.0.3.tgz", + "integrity": "sha512-52P95mvW1SMzuRZegvpluT6yEv0FqQusydKQPZsNN5Q7hh8EwQvN8E2nwuJ16BBvNN6LcoIZXu/Bk58DAhrrxw==", + "dev": true, + "requires": { + "timsort": "^0.3.0" + } + }, + "css-has-pseudo": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-0.10.0.tgz", + "integrity": "sha512-Z8hnfsZu4o/kt+AuFzeGpLVhFOGO9mluyHBaA2bA8aCGTwah5sT3WV/fTHH8UNZUytOIImuGPrl/prlb4oX4qQ==", + "dev": true, + "requires": { + "postcss": "^7.0.6", + "postcss-selector-parser": "^5.0.0-rc.4" + }, + "dependencies": { + "cssesc": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", + "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", + "dev": true + }, + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-selector-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", + "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", + "dev": true, + "requires": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.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 + }, + "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" + } + } + } + }, + "css-loader": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-5.2.4.tgz", + "integrity": "sha512-OFYGyINCKkdQsTrSYxzGSFnGS4gNjcXkKkQgWxK138jgnPt+lepxdjSZNc8sHAl5vP3DhsJUxufWIjOwI8PMMw==", + "dev": true, + "requires": { + "camelcase": "^6.2.0", + "icss-utils": "^5.1.0", + "loader-utils": "^2.0.0", + "postcss": "^8.2.10", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.1.0", + "schema-utils": "^3.0.0", + "semver": "^7.3.5" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "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 + }, + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "css-minimizer-webpack-plugin": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.0.0.tgz", + "integrity": "sha512-yIrqG0pPphR1RoNx2wDxYmxRf2ubRChLDXxv7ccipEm5bRKsZRYp8n+2peeXehtTF5s3yNxlqsdz3WQOsAgUkw==", + "dev": true, + "requires": { + "cssnano": "^5.0.0", + "jest-worker": "^26.3.0", + "p-limit": "^3.0.2", + "postcss": "^8.2.9", + "schema-utils": "^3.0.0", + "serialize-javascript": "^5.0.1", + "source-map": "^0.6.1" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "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 + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + }, + "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 + } + } + }, + "css-parse": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-2.0.0.tgz", + "integrity": "sha1-pGjuZnwW2BzPBcWMONKpfHgNv9Q=", + "dev": true, + "requires": { + "css": "^2.0.0" + }, + "dependencies": { + "css": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", + "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "source-map": "^0.6.1", + "source-map-resolve": "^0.5.2", + "urix": "^0.1.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 + }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + } + } + }, + "css-prefers-color-scheme": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-3.1.1.tgz", + "integrity": "sha512-MTu6+tMs9S3EUqzmqLXEcgNRbNkkD/TGFvowpeoWJn5Vfq7FMgsmRQs9X5NXAURiOBmOxm/lLjsDNXDE6k9bhg==", + "dev": true, + "requires": { + "postcss": "^7.0.5" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.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 + }, + "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" + } + } + } + }, + "css-select": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-3.1.2.tgz", + "integrity": "sha512-qmss1EihSuBNWNNhHjxzxSfJoFBM/lERB/Q4EnsJQQC62R2evJDW481091oAdOr9uh46/0n4nrg0It5cAnj1RA==", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^4.0.0", + "domhandler": "^4.0.0", + "domutils": "^2.4.3", + "nth-check": "^2.0.0" + } + }, + "css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dev": true, + "requires": { + "mdn-data": "2.0.14", + "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 + } + } + }, + "css-what": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-4.0.0.tgz", + "integrity": "sha512-teijzG7kwYfNVsUh2H/YN62xW3KK9YhXEgSlbxMlcyjPNvdKJqFx5lrwlJgoFP1ZHlB89iGDlo/JyshKeRhv5A==", + "dev": true + }, + "cssdb": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-4.4.0.tgz", + "integrity": "sha512-LsTAR1JPEM9TpGhl/0p3nQecC2LJ0kD8X5YARu1hk/9I1gril5vDtMZyNxcEpxxDj34YNck/ucjuoUd66K03oQ==", + "dev": true + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true + }, + "cssnano": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.0.6.tgz", + "integrity": "sha512-NiaLH/7yqGksFGsFNvSRe2IV/qmEBAeDE64dYeD8OBrgp6lE8YoMeQJMtsv5ijo6MPyhuoOvFhI94reahBRDkw==", + "dev": true, + "requires": { + "cosmiconfig": "^7.0.0", + "cssnano-preset-default": "^5.1.3", + "is-resolvable": "^1.1.0" + } + }, + "cssnano-preset-default": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.1.3.tgz", + "integrity": "sha512-qo9tX+t4yAAZ/yagVV3b+QBKeLklQbmgR3wI7mccrDcR+bEk9iHgZN1E7doX68y9ThznLya3RDmR+nc7l6/2WQ==", + "dev": true, + "requires": { + "css-declaration-sorter": "^6.0.3", + "cssnano-utils": "^2.0.1", + "postcss-calc": "^8.0.0", + "postcss-colormin": "^5.2.0", + "postcss-convert-values": "^5.0.1", + "postcss-discard-comments": "^5.0.1", + "postcss-discard-duplicates": "^5.0.1", + "postcss-discard-empty": "^5.0.1", + "postcss-discard-overridden": "^5.0.1", + "postcss-merge-longhand": "^5.0.2", + "postcss-merge-rules": "^5.0.2", + "postcss-minify-font-values": "^5.0.1", + "postcss-minify-gradients": "^5.0.1", + "postcss-minify-params": "^5.0.1", + "postcss-minify-selectors": "^5.1.0", + "postcss-normalize-charset": "^5.0.1", + "postcss-normalize-display-values": "^5.0.1", + "postcss-normalize-positions": "^5.0.1", + "postcss-normalize-repeat-style": "^5.0.1", + "postcss-normalize-string": "^5.0.1", + "postcss-normalize-timing-functions": "^5.0.1", + "postcss-normalize-unicode": "^5.0.1", + "postcss-normalize-url": "^5.0.2", + "postcss-normalize-whitespace": "^5.0.1", + "postcss-ordered-values": "^5.0.2", + "postcss-reduce-initial": "^5.0.1", + "postcss-reduce-transforms": "^5.0.1", + "postcss-svgo": "^5.0.2", + "postcss-unique-selectors": "^5.0.1" + } + }, + "cssnano-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-2.0.1.tgz", + "integrity": "sha512-i8vLRZTnEH9ubIyfdZCAdIdgnHAUeQeByEeQ2I7oTilvP9oHO6RScpeq3GsFUVqeB8uZgOQ9pw8utofNn32hhQ==", + "dev": true + }, + "csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dev": true, + "requires": { + "css-tree": "^1.1.2" + } + }, + "custom-event": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", + "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", + "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": "3.0.0", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-3.0.0.tgz", + "integrity": "sha512-eyTcpKOcamdhWJXj56DpQMo1ylSQpcGtGKXcU0Tb97+K56/CF5amAqqqNj0+KvA0iw2ynxtHWFsPDSClCxe48w==", + "dev": true + }, + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "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.1.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", + "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", + "dev": true, + "requires": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + } + }, + "default-gateway": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", + "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", + "dev": true, + "requires": { + "execa": "^1.0.0", + "ip-regex": "^2.1.0" + } + }, + "defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "dev": true, + "requires": { + "clone": "^1.0.2" + } + }, + "define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "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": "4.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", + "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", + "dev": true, + "requires": { + "@types/glob": "^7.1.1", + "globby": "^6.1.0", + "is-path-cwd": "^2.0.0", + "is-path-in-cwd": "^2.0.0", + "p-map": "^2.0.0", + "pify": "^4.0.1", + "rimraf": "^2.6.3" + }, + "dependencies": { + "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" + } + }, + "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 + } + } + }, + "p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "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 + }, + "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.11.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", + "dev": true + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true + }, + "di": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", + "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=", + "dev": true + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.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.4", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", + "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", + "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" + } + }, + "dom-serializer": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", + "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + } + }, + "domelementtype": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", + "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", + "dev": true + }, + "domhandler": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.2.0.tgz", + "integrity": "sha512-zk7sgt970kzPks2Bf+dwT/PLzghLnsivb9CcxkvR8Mzr66Olr0Ofd8neSbglHJHaHa2MadfoSdNlKYAaafmWfA==", + "dev": true, + "requires": { + "domelementtype": "^2.2.0" + } + }, + "domutils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.7.0.tgz", + "integrity": "sha512-8eaHa17IwJUPAiB+SoTYBo5mCdeMgdcAoXJ59m6DT1vw+5iLS3gNoqYaRowaBKtGVrOF1Jz4yDTgYKLK2kvfJg==", + "dev": true, + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.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.752", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.752.tgz", + "integrity": "sha512-2Tg+7jSl3oPxgsBsWKh5H83QazTkmWG/cnNwJplmyZc7KcN61+I10oUgaXSVk/NwfvN3BdkKDR4FYuRBQQ2v0A==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "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.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dev": true, + "optional": true, + "requires": { + "iconv-lite": "^0.6.2" + }, + "dependencies": { + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + } + } + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "engine.io": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-4.1.1.tgz", + "integrity": "sha512-t2E9wLlssQjGw0nluF6aYyfX8LwYU8Jj0xct+pAhfWfv/YrBn6TSNtEYsgxHIfaMqfrLx07czcMg9bMN6di+3w==", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.4.1", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~4.0.0", + "ws": "~7.4.2" + }, + "dependencies": { + "cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", + "dev": true + }, + "ws": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "dev": true + } + } + }, + "engine.io-parser": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-4.0.2.tgz", + "integrity": "sha512-sHfEQv6nmtJrq6TKuIz5kyEKH/qSdK56H/A+7DnAuUPWosnIZAS2NHNcPLmyjtY3cGS/MqJdZbUjW97JU72iYg==", + "dev": true, + "requires": { + "base64-arraybuffer": "0.1.4" + } + }, + "enhanced-resolve": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.7.0.tgz", + "integrity": "sha512-6njwt/NsZFUKhM6j9U8hzVyD4E4r0x7NQzhTCbcWOJ0IQjNSAoalWmb0AE51Wn+fwan5qVESWi7t2ToBxs9vrw==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + } + }, + "ent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", + "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", + "dev": true + }, + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true + }, + "env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true + }, + "err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "dev": true + }, + "errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "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" + } + }, + "es-module-lexer": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.4.1.tgz", + "integrity": "sha512-ooYciCUtfw6/d2w56UVeqHPcoCFAiJdz5XOkYpv/Txl1HMUozpXjz/2RIQgqwKdXNDPSF1W7mJCFse3G+HDyAA==", + "dev": true + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "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": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "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": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true + }, + "eventsource": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.1.0.tgz", + "integrity": "sha512-VSJjT5oCNrFvCS6igjzPAt5hBzQ2qPBFIbJ03zLI9SE0mxwZpMw6BfJrbFHm1a141AavMEB8JHmBhWAd66PfCg==", + "dev": true, + "requires": { + "original": "^1.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" + } + }, + "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": { + "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" + } + }, + "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" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "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": { + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "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" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "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" + } + }, + "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": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-glob": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz", + "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.0", + "merge2": "^1.3.0", + "micromatch": "^4.0.2", + "picomatch": "^2.2.1" + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fastq": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.0.tgz", + "integrity": "sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "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": { + "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" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "flatted": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "dev": true + }, + "flatten": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz", + "integrity": "sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==", + "dev": true + }, + "follow-redirects": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.1.tgz", + "integrity": "sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg==", + "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 + }, + "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.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "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 + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "fs-monkey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", + "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==", + "dev": true + }, + "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": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "dev": 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" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "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" + } + }, + "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" + } + }, + "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" + } + } + } + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "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" + } + }, + "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.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "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": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "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 + }, + "globby": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.3.tgz", + "integrity": "sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + } + }, + "graceful-fs": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "dev": true + }, + "handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "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.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "dev": true, + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "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 + } + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "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-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "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 + }, + "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": { + "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" + } + } + } + }, + "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" + } + } + } + }, + "hex-color-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", + "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==", + "dev": true + }, + "hosted-git-info": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", + "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "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" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "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" + } + }, + "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" + } + } + } + }, + "hsl-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", + "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", + "dev": true + }, + "hsla-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", + "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", + "dev": true + }, + "html-entities": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz", + "integrity": "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==", + "dev": true + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "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.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" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + }, + "http-parser-js": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.3.tgz", + "integrity": "sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg==", + "dev": true + }, + "http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "requires": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + } + }, + "http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dev": true, + "requires": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + } + }, + "http-proxy-middleware": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", + "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", + "dev": true, + "requires": { + "http-proxy": "^1.17.0", + "is-glob": "^4.0.0", + "lodash": "^4.17.11", + "micromatch": "^3.1.10" + }, + "dependencies": { + "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" + } + } + } + }, + "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" + } + } + } + }, + "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" + } + } + } + }, + "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" + } + }, + "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" + } + } + } + }, + "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-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "dev": true, + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "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.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" + } + }, + "icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true + }, + "ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "dev": true + }, + "ignore-walk": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz", + "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==", + "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 + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.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-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" + } + }, + "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 + }, + "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 + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + }, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "dev": true + }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "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.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "dev": true + }, + "inquirer": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.0.0.tgz", + "integrity": "sha512-ON8pEJPPCdyjxj+cxsYRe6XfCJepTxANdNnTebsTuQgXpRyZRRT9t4dJwjRubgmvn20CLSEnozRUayXyM9VTXA==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.6", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "internal-ip": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", + "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", + "dev": true, + "requires": { + "default-gateway": "^4.2.0", + "ipaddr.js": "^1.9.0" + } + }, + "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.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true + }, + "is-absolute-url": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", + "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", + "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-arguments": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", + "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", + "dev": true, + "requires": { + "call-bind": "^1.0.0" + } + }, + "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": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.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-color-stop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", + "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", + "dev": true, + "requires": { + "css-color-names": "^0.0.4", + "hex-color-regex": "^1.1.0", + "hsl-regex": "^1.0.0", + "hsla-regex": "^1.0.0", + "rgb-regex": "^1.0.1", + "rgba-regex": "^1.0.0" + }, + "dependencies": { + "css-color-names": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", + "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", + "dev": true + } + } + }, + "is-core-module": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz", + "integrity": "sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "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-date-object": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.4.tgz", + "integrity": "sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==", + "dev": true + }, + "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-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "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-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true + }, + "is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true + }, + "is-path-in-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", + "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", + "dev": true, + "requires": { + "is-path-inside": "^2.1.0" + } + }, + "is-path-inside": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", + "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", + "dev": true, + "requires": { + "path-is-inside": "^1.0.2" + } + }, + "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-regex": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", + "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-symbols": "^1.0.2" + } + }, + "is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", + "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-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true + }, + "is-what": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", + "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", + "dev": 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": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "requires": { + "is-docker": "^2.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isbinaryfile": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.8.tgz", + "integrity": "sha512-53h6XFniq77YdW+spoRrebh0mnmTxRPTlcuIArO57lmMdq4uBKFKaeTjnb92oYWrSn/LVL+LT+Hap2tFQj8V+w==", + "dev": true + }, + "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-lib-coverage": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", + "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "dev": true, + "requires": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", + "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.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 + } + } + }, + "istanbul-reports": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", + "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", + "dev": true, + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "jasmine-core": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.7.1.tgz", + "integrity": "sha512-DH3oYDS/AUvvr22+xUBW62m1Xoy7tUlY1tsxKEJvl5JeJ7q8zd1K5bUwiOxdH+erj6l2vAMM3hV25Xs9/WrmuQ==", + "dev": true + }, + "jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "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 + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "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-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "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": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "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": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "jsonc-parser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", + "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "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" + } + }, + "karma": { + "version": "6.3.3", + "resolved": "https://registry.npmjs.org/karma/-/karma-6.3.3.tgz", + "integrity": "sha512-JRAujkKWaOtO2LmyPH7K2XXRhrxuFAn9loIL9+iiah6vjz+ZLkqdKsySV9clRITGhj10t9baIfbCl6CJ5hu9gQ==", + "dev": true, + "requires": { + "body-parser": "^1.19.0", + "braces": "^3.0.2", + "chokidar": "^3.4.2", + "colors": "^1.4.0", + "connect": "^3.7.0", + "di": "^0.0.1", + "dom-serialize": "^2.2.1", + "glob": "^7.1.6", + "graceful-fs": "^4.2.4", + "http-proxy": "^1.18.1", + "isbinaryfile": "^4.0.6", + "lodash": "^4.17.19", + "log4js": "^6.2.1", + "mime": "^2.4.5", + "minimatch": "^3.0.4", + "qjobs": "^1.2.0", + "range-parser": "^1.2.1", + "rimraf": "^3.0.2", + "socket.io": "^3.1.0", + "source-map": "^0.6.1", + "tmp": "0.2.1", + "ua-parser-js": "^0.7.23", + "yargs": "^16.1.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "mime": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", + "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==", + "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 + }, + "tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "requires": { + "rimraf": "^3.0.0" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.7", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.7.tgz", + "integrity": "sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw==", + "dev": true + } + } + }, + "karma-chrome-launcher": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.1.0.tgz", + "integrity": "sha512-3dPs/n7vgz1rxxtynpzZTvb9y/GIaW8xjAwcIGttLbycqoFtI7yo1NGnQi6oFTherRE+GIhCAHZC4vEqWGhNvg==", + "dev": true, + "requires": { + "which": "^1.2.1" + } + }, + "karma-coverage": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/karma-coverage/-/karma-coverage-2.0.3.tgz", + "integrity": "sha512-atDvLQqvPcLxhED0cmXYdsPMCQuh6Asa9FMZW1bhNqlVEhJoB9qyZ2BY1gu7D/rr5GLGb5QzYO4siQskxaWP/g==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^4.0.1", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.0", + "minimatch": "^3.0.4" + } + }, + "karma-jasmine": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-4.0.1.tgz", + "integrity": "sha512-h8XDAhTiZjJKzfkoO1laMH+zfNlra+dEQHUAjpn5JV1zCPtOIVWGQjLBrqhnzQa/hrU2XrZwSyBa6XjEBzfXzw==", + "dev": true, + "requires": { + "jasmine-core": "^3.6.0" + } + }, + "karma-jasmine-html-reporter": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-1.6.0.tgz", + "integrity": "sha512-ELO9yf0cNqpzaNLsfFgXd/wxZVYkE2+ECUwhMHUD4PZ17kcsPsYsVyjquiRqyMn2jkd2sHt0IeMyAyq1MC23Fw==", + "dev": true + }, + "karma-source-map-support": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", + "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==", + "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.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, + "klona": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.4.tgz", + "integrity": "sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA==", + "dev": true + }, + "less": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/less/-/less-4.1.1.tgz", + "integrity": "sha512-w09o8tZFPThBscl5d0Ggp3RcrKIouBoQscnOMgFH3n5V3kN/CXGHNfCkRPtxJk6nKryDXaV9aHLK55RXuH4sAw==", + "dev": true, + "requires": { + "copy-anything": "^2.0.1", + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "needle": "^2.5.2", + "parse-node-version": "^1.0.1", + "source-map": "~0.6.0", + "tslib": "^1.10.0" + }, + "dependencies": { + "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, + "optional": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "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 + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "less-loader": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-8.1.1.tgz", + "integrity": "sha512-K93jJU7fi3n6rxVvzp8Cb88Uy9tcQKfHlkoezHwKILXhlNYiRQl4yowLIkQqmBXOH/5I8yoKiYeIf781HGkW9g==", + "dev": true, + "requires": { + "klona": "^2.0.4" + } + }, + "license-webpack-plugin": { + "version": "2.3.19", + "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-2.3.19.tgz", + "integrity": "sha512-z/izhwFRYHs1sCrDgrTUsNJpd+Xsd06OcFWSwHz/TiZygm5ucweVZi1Hu14Rf6tOj/XAl1Ebyc7GW6ZyyINyWA==", + "dev": true, + "requires": { + "@types/webpack-sources": "^0.1.5", + "webpack-sources": "^1.2.0" + } + }, + "lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "dev": true + }, + "loader-runner": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", + "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", + "dev": true + }, + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "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.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "dev": true + }, + "log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "log4js": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.3.0.tgz", + "integrity": "sha512-Mc8jNuSFImQUIateBFwdOQcmC6Q5maU0VVvdC2R6XMb66/VnT+7WS4D/0EeNMZu1YODmJe5NIn2XftCzEocUgw==", + "dev": true, + "requires": { + "date-format": "^3.0.0", + "debug": "^4.1.1", + "flatted": "^2.0.1", + "rfdc": "^1.1.4", + "streamroller": "^2.2.4" + } + }, + "loglevel": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz", + "integrity": "sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==", + "dev": true + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "magic-string": { + "version": "0.25.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", + "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.4" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "make-fetch-happen": { + "version": "8.0.14", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-8.0.14.tgz", + "integrity": "sha512-EsS89h6l4vbfJEtBZnENTOFk8mCRpY5ru36Xe5bcX1KYIli2mkSHqoFsp5O1wMDvTJJzxe/4THpCTtygjeeGWQ==", + "dev": true, + "requires": { + "agentkeepalive": "^4.1.3", + "cacache": "^15.0.5", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^6.0.0", + "minipass": "^3.1.3", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^1.3.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^5.0.0", + "ssri": "^8.0.0" + } + }, + "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-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" + } + }, + "mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "dev": true + }, + "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": "8.1.1", + "resolved": "https://registry.npmjs.org/mem/-/mem-8.1.1.tgz", + "integrity": "sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==", + "dev": true, + "requires": { + "map-age-cleaner": "^0.1.3", + "mimic-fn": "^3.1.0" + }, + "dependencies": { + "mimic-fn": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz", + "integrity": "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==", + "dev": true + } + } + }, + "memfs": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.2.2.tgz", + "integrity": "sha512-RE0CwmIM3CEvpcdK3rZ19BC4E6hv9kADkMN5rPduRak58cNArWLi/9jFLsa4rhsjfVxMP3v0jO7FHXq7SvFY5Q==", + "dev": true, + "requires": { + "fs-monkey": "1.0.3" + } + }, + "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" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "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" + } + }, + "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" + } + } + } + }, + "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 + }, + "merge-source-map": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", + "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", + "dev": true, + "requires": { + "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 + } + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "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": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + } + }, + "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.48.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz", + "integrity": "sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==", + "dev": true + }, + "mime-types": { + "version": "2.1.31", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz", + "integrity": "sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==", + "dev": true, + "requires": { + "mime-db": "1.48.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": "1.5.1", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-1.5.1.tgz", + "integrity": "sha512-wEpr0XooH6rw/Mlf+9KTJoMBLT3HujzdTrmohPjAzF47N4Q6yAeczQLpRD/WxvAtXvskcXbily7TAdCfi2M4Dg==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0", + "webpack-sources": "^1.1.0" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "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 + }, + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "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 + }, + "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.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "minipass": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", + "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-fetch": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.3.3.tgz", + "integrity": "sha512-akCrLDWfbdAWkMLBxJEeWTdNsjML+dt5YgOI4gJ53vuO0vrmYQkUPxa6j6V65s9CcePIr2SSWqjT2EcrNseryQ==", + "dev": true, + "requires": { + "encoding": "^0.1.12", + "minipass": "^3.1.0", + "minipass-sized": "^1.0.3", + "minizlib": "^2.0.0" + } + }, + "minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-json-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", + "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", + "dev": true, + "requires": { + "jsonparse": "^1.3.1", + "minipass": "^3.0.0" + } + }, + "minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + } + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "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" + } + } + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "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 + }, + "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.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "nanoid": { + "version": "3.1.23", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz", + "integrity": "sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==", + "dev": 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" + } + }, + "needle": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/needle/-/needle-2.6.0.tgz", + "integrity": "sha512-KKYdza4heMsEfSWD7VPUIz3zX2XDwOyX2d+geb4vrERZMT5RMU6ujjaD+I5Yr54uZxQ2w6XRTAhHBbSCyovZBg==", + "dev": true, + "optional": true, + "requires": { + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "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 + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "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-forge": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", + "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", + "dev": true + }, + "node-gyp": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-7.1.2.tgz", + "integrity": "sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ==", + "dev": true, + "requires": { + "env-paths": "^2.2.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.3", + "nopt": "^5.0.0", + "npmlog": "^4.1.2", + "request": "^2.88.2", + "rimraf": "^3.0.2", + "semver": "^7.3.2", + "tar": "^6.0.2", + "which": "^2.0.2" + }, + "dependencies": { + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "node-releases": { + "version": "1.1.73", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz", + "integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==", + "dev": true + }, + "nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "dev": true, + "requires": { + "abbrev": "1" + } + }, + "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 + }, + "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 + }, + "normalize-url": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.0.1.tgz", + "integrity": "sha512-VU4pzAuh7Kip71XEmO9aNREYAdMHFGTVj/i+CaTImS8x0i1d3jUZkXhqluy/PRgjPLMgsLQulYY3PJ/aSbSjpQ==", + "dev": true + }, + "npm-bundled": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz", + "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==", + "dev": true, + "requires": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-install-checks": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-4.0.0.tgz", + "integrity": "sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==", + "dev": true, + "requires": { + "semver": "^7.1.1" + } + }, + "npm-normalize-package-bin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", + "dev": true + }, + "npm-package-arg": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.2.tgz", + "integrity": "sha512-6Eem455JsSMJY6Kpd3EyWE+n5hC+g9bSyHr9K9U2zqZb7+02+hObQ2c0+8iDk/mNF+8r1MhY44WypKJAkySIYA==", + "dev": true, + "requires": { + "hosted-git-info": "^4.0.1", + "semver": "^7.3.4", + "validate-npm-package-name": "^3.0.0" + } + }, + "npm-packlist": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-2.2.2.tgz", + "integrity": "sha512-Jt01acDvJRhJGthnUJVF/w6gumWOZxO7IkpY/lsX9//zqQgnF7OJaxgQXcerd4uQOLu7W5bkb4mChL9mdfm+Zg==", + "dev": true, + "requires": { + "glob": "^7.1.6", + "ignore-walk": "^3.0.3", + "npm-bundled": "^1.1.1", + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-pick-manifest": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz", + "integrity": "sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==", + "dev": true, + "requires": { + "npm-install-checks": "^4.0.0", + "npm-normalize-package-bin": "^1.0.1", + "npm-package-arg": "^8.1.2", + "semver": "^7.3.4" + } + }, + "npm-registry-fetch": { + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-10.1.2.tgz", + "integrity": "sha512-KsM/TdPmntqgBFlfsbkOLkkE9ovZo7VpVcd+/eTdYszCrgy5zFl5JzWm+OxavFaEWlbkirpkou+ZYI00RmOBFA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0", + "make-fetch-happen": "^8.0.9", + "minipass": "^3.1.3", + "minipass-fetch": "^1.3.0", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.0.0", + "npm-package-arg": "^8.0.0" + } + }, + "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, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "nth-check": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.0.tgz", + "integrity": "sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q==", + "dev": true, + "requires": { + "boolbase": "^1.0.0" + } + }, + "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-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-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "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.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "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": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "open": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.0.2.tgz", + "integrity": "sha512-NV5QmWJrTaNBLHABJyrb+nd5dXI5zfea/suWawBhkHzAbVhLLiJdrqMgxMypGK9Eznp2Ltoh7SAVkQ3XAucX7Q==", + "dev": true, + "requires": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.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" + }, + "dependencies": { + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + } + } + }, + "ora": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.0.tgz", + "integrity": "sha512-1StwyXQGoU6gdjYkyVcqOLnVlbKj+6yPNNOxJVgpt9t4eksKjiriiHuxktLYkgllwk+D6MbC4ihH84L1udRXPg==", + "dev": true, + "requires": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "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-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 + }, + "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-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "p-retry": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", + "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", + "dev": true, + "requires": { + "retry": "^0.12.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 + }, + "pacote": { + "version": "11.3.2", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-11.3.2.tgz", + "integrity": "sha512-lMO7V9aMhyE5gfaSFxKfW3OTdXuFBNQJfuNuet3NPzWWhOYIW90t85vHcHLDjdhgmfAdAHyh9q1HAap96ea0XA==", + "dev": true, + "requires": { + "@npmcli/git": "^2.0.1", + "@npmcli/installed-package-contents": "^1.0.6", + "@npmcli/promise-spawn": "^1.2.0", + "@npmcli/run-script": "^1.8.2", + "cacache": "^15.0.5", + "chownr": "^2.0.0", + "fs-minipass": "^2.1.0", + "infer-owner": "^1.0.4", + "minipass": "^3.1.3", + "mkdirp": "^1.0.3", + "npm-package-arg": "^8.0.1", + "npm-packlist": "^2.1.4", + "npm-pick-manifest": "^6.0.0", + "npm-registry-fetch": "^10.0.0", + "promise-retry": "^2.0.1", + "read-package-json-fast": "^2.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.1.0" + } + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true + }, + "parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + }, + "parse5-html-rewriting-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-6.0.1.tgz", + "integrity": "sha512-vwLQzynJVEfUlURxgnf51yAJDQTtVpNyGD8tKi2Za7m+akukNHxCcUQMAa/mUGLhCeicFdpy7Tlvj8ZNKadprg==", + "dev": true, + "requires": { + "parse5": "^6.0.1", + "parse5-sax-parser": "^6.0.1" + } + }, + "parse5-htmlparser2-tree-adapter": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", + "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", + "dev": true, + "requires": { + "parse5": "^6.0.1" + } + }, + "parse5-sax-parser": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-6.0.1.tgz", + "integrity": "sha512-kXX+5S81lgESA0LsDuGjAlBybImAChYRMT+/uKCEXFBFOeEhS52qUCydGhU3qLRD8D9DVjaUo821WK7DM4iCeg==", + "dev": true, + "requires": { + "parse5": "^6.0.1" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "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-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": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "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.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "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": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "picomatch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "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 + }, + "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": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "portfinder": { + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", + "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "dev": true, + "requires": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.5" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + } + } + }, + "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": "8.3.0", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.0.tgz", + "integrity": "sha512-+ogXpdAjWGa+fdYY5BQ96V/6tAo+TdSSIMP5huJBIygdWwKtVoB5JWZ7yUd4xZ8r+8Kvvx4nyg/PQ071H4UtcQ==", + "dev": true, + "requires": { + "colorette": "^1.2.2", + "nanoid": "^3.1.23", + "source-map-js": "^0.6.2" + } + }, + "postcss-attribute-case-insensitive": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.2.tgz", + "integrity": "sha512-clkFxk/9pcdb4Vkn0hAHq3YnxBQ2p0CGD1dy24jN+reBck+EWxMbxSUqN4Yj7t0w8csl87K6p0gxBe1utkJsYA==", + "dev": true, + "requires": { + "postcss": "^7.0.2", + "postcss-selector-parser": "^6.0.2" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.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 + }, + "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" + } + } + } + }, + "postcss-calc": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.0.0.tgz", + "integrity": "sha512-5NglwDrcbiy8XXfPM11F3HeC6hoT9W7GUH/Zi5U/p7u3Irv4rHhdDcIZwG0llHXV4ftsBjpfWMXAnXNl4lnt8g==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.0.2" + } + }, + "postcss-color-functional-notation": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-2.0.1.tgz", + "integrity": "sha512-ZBARCypjEDofW4P6IdPVTLhDNXPRn8T2s1zHbZidW6rPaaZvcnCS2soYFIQJrMZSxiePJ2XIYTlcb2ztr/eT2g==", + "dev": true, + "requires": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.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 + }, + "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" + } + } + } + }, + "postcss-color-gray": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-color-gray/-/postcss-color-gray-5.0.0.tgz", + "integrity": "sha512-q6BuRnAGKM/ZRpfDascZlIZPjvwsRye7UDNalqVz3s7GDxMtqPY6+Q871liNxsonUw8oC61OG+PSaysYpl1bnw==", + "dev": true, + "requires": { + "@csstools/convert-colors": "^1.4.0", + "postcss": "^7.0.5", + "postcss-values-parser": "^2.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.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 + }, + "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" + } + } + } + }, + "postcss-color-hex-alpha": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.3.tgz", + "integrity": "sha512-PF4GDel8q3kkreVXKLAGNpHKilXsZ6xuu+mOQMHWHLPNyjiUBOr75sp5ZKJfmv1MCus5/DWUGcK9hm6qHEnXYw==", + "dev": true, + "requires": { + "postcss": "^7.0.14", + "postcss-values-parser": "^2.0.1" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.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 + }, + "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" + } + } + } + }, + "postcss-color-mod-function": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/postcss-color-mod-function/-/postcss-color-mod-function-3.0.3.tgz", + "integrity": "sha512-YP4VG+xufxaVtzV6ZmhEtc+/aTXH3d0JLpnYfxqTvwZPbJhWqp8bSY3nfNzNRFLgB4XSaBA82OE4VjOOKpCdVQ==", + "dev": true, + "requires": { + "@csstools/convert-colors": "^1.4.0", + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.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 + }, + "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" + } + } + } + }, + "postcss-color-rebeccapurple": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-4.0.1.tgz", + "integrity": "sha512-aAe3OhkS6qJXBbqzvZth2Au4V3KieR5sRQ4ptb2b2O8wgvB3SJBsdG+jsn2BZbbwekDG8nTfcCNKcSfe/lEy8g==", + "dev": true, + "requires": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.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 + }, + "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" + } + } + } + }, + "postcss-colormin": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.2.0.tgz", + "integrity": "sha512-+HC6GfWU3upe5/mqmxuqYZ9B2Wl4lcoUUNkoaX59nEWV4EtADCMiBqui111Bu8R8IvaZTmqmxrqOAqjbHIwXPw==", + "dev": true, + "requires": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0", + "colord": "^2.0.1", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-convert-values": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.0.1.tgz", + "integrity": "sha512-C3zR1Do2BkKkCgC0g3sF8TS0koF2G+mN8xxayZx3f10cIRmTaAnpgpRQZjNekTZxM2ciSPoh2IWJm0VZx8NoQg==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-custom-media": { + "version": "7.0.8", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-7.0.8.tgz", + "integrity": "sha512-c9s5iX0Ge15o00HKbuRuTqNndsJUbaXdiNsksnVH8H4gdc+zbLzr/UasOwNG6CTDpLFekVY4672eWdiiWu2GUg==", + "dev": true, + "requires": { + "postcss": "^7.0.14" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.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 + }, + "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" + } + } + } + }, + "postcss-custom-properties": { + "version": "8.0.11", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-8.0.11.tgz", + "integrity": "sha512-nm+o0eLdYqdnJ5abAJeXp4CEU1c1k+eB2yMCvhgzsds/e0umabFrN6HoTy/8Q4K5ilxERdl/JD1LO5ANoYBeMA==", + "dev": true, + "requires": { + "postcss": "^7.0.17", + "postcss-values-parser": "^2.0.1" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.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 + }, + "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" + } + } + } + }, + "postcss-custom-selectors": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-5.1.2.tgz", + "integrity": "sha512-DSGDhqinCqXqlS4R7KGxL1OSycd1lydugJ1ky4iRXPHdBRiozyMHrdu0H3o7qNOCiZwySZTUI5MV0T8QhCLu+w==", + "dev": true, + "requires": { + "postcss": "^7.0.2", + "postcss-selector-parser": "^5.0.0-rc.3" + }, + "dependencies": { + "cssesc": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", + "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", + "dev": true + }, + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-selector-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", + "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", + "dev": true, + "requires": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.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 + }, + "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" + } + } + } + }, + "postcss-dir-pseudo-class": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-5.0.0.tgz", + "integrity": "sha512-3pm4oq8HYWMZePJY+5ANriPs3P07q+LW6FAdTlkFH2XqDdP4HeeJYMOzn0HYLhRSjBO3fhiqSwwU9xEULSrPgw==", + "dev": true, + "requires": { + "postcss": "^7.0.2", + "postcss-selector-parser": "^5.0.0-rc.3" + }, + "dependencies": { + "cssesc": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", + "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", + "dev": true + }, + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-selector-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", + "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", + "dev": true, + "requires": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.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 + }, + "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" + } + } + } + }, + "postcss-discard-comments": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.0.1.tgz", + "integrity": "sha512-lgZBPTDvWrbAYY1v5GYEv8fEO/WhKOu/hmZqmCYfrpD6eyDWWzAOsl2rF29lpvziKO02Gc5GJQtlpkTmakwOWg==", + "dev": true + }, + "postcss-discard-duplicates": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.0.1.tgz", + "integrity": "sha512-svx747PWHKOGpAXXQkCc4k/DsWo+6bc5LsVrAsw+OU+Ibi7klFZCyX54gjYzX4TH+f2uzXjRviLARxkMurA2bA==", + "dev": true + }, + "postcss-discard-empty": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.0.1.tgz", + "integrity": "sha512-vfU8CxAQ6YpMxV2SvMcMIyF2LX1ZzWpy0lqHDsOdaKKLQVQGVP1pzhrI9JlsO65s66uQTfkQBKBD/A5gp9STFw==", + "dev": true + }, + "postcss-discard-overridden": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.0.1.tgz", + "integrity": "sha512-Y28H7y93L2BpJhrdUR2SR2fnSsT+3TVx1NmVQLbcnZWwIUpJ7mfcTC6Za9M2PG6w8j7UQRfzxqn8jU2VwFxo3Q==", + "dev": true + }, + "postcss-double-position-gradients": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-1.0.0.tgz", + "integrity": "sha512-G+nV8EnQq25fOI8CH/B6krEohGWnF5+3A6H/+JEpOncu5dCnkS1QQ6+ct3Jkaepw1NGVqqOZH6lqrm244mCftA==", + "dev": true, + "requires": { + "postcss": "^7.0.5", + "postcss-values-parser": "^2.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.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 + }, + "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" + } + } + } + }, + "postcss-env-function": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-2.0.2.tgz", + "integrity": "sha512-rwac4BuZlITeUbiBq60h/xbLzXY43qOsIErngWa4l7Mt+RaSkT7QBjXVGTcBHupykkblHMDrBFh30zchYPaOUw==", + "dev": true, + "requires": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.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 + }, + "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" + } + } + } + }, + "postcss-focus-visible": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-4.0.0.tgz", + "integrity": "sha512-Z5CkWBw0+idJHSV6+Bgf2peDOFf/x4o+vX/pwcNYrWpXFrSfTkQ3JQ1ojrq9yS+upnAlNRHeg8uEwFTgorjI8g==", + "dev": true, + "requires": { + "postcss": "^7.0.2" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.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 + }, + "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" + } + } + } + }, + "postcss-focus-within": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-3.0.0.tgz", + "integrity": "sha512-W0APui8jQeBKbCGZudW37EeMCjDeVxKgiYfIIEo8Bdh5SpB9sxds/Iq8SEuzS0Q4YFOlG7EPFulbbxujpkrV2w==", + "dev": true, + "requires": { + "postcss": "^7.0.2" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.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 + }, + "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" + } + } + } + }, + "postcss-font-variant": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-4.0.1.tgz", + "integrity": "sha512-I3ADQSTNtLTTd8uxZhtSOrTCQ9G4qUVKPjHiDk0bV75QSxXjVWiJVJ2VLdspGUi9fbW9BcjKJoRvxAH1pckqmA==", + "dev": true, + "requires": { + "postcss": "^7.0.2" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.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 + }, + "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" + } + } + } + }, + "postcss-gap-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz", + "integrity": "sha512-QZSqDaMgXCHuHTEzMsS2KfVDOq7ZFiknSpkrPJY6jmxbugUPTuSzs/vuE5I3zv0WAS+3vhrlqhijiprnuQfzmg==", + "dev": true, + "requires": { + "postcss": "^7.0.2" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.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 + }, + "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" + } + } + } + }, + "postcss-image-set-function": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-3.0.1.tgz", + "integrity": "sha512-oPTcFFip5LZy8Y/whto91L9xdRHCWEMs3e1MdJxhgt4jy2WYXfhkng59fH5qLXSCPN8k4n94p1Czrfe5IOkKUw==", + "dev": true, + "requires": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.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 + }, + "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" + } + } + } + }, + "postcss-import": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.0.1.tgz", + "integrity": "sha512-Xn2+z++vWObbEPhiiKO1a78JiyhqipyrXHBb3AHpv0ks7Cdg+GxQQJ24ODNMTanldf7197gSP3axppO9yaG0lA==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + } + }, + "postcss-initial": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-3.0.4.tgz", + "integrity": "sha512-3RLn6DIpMsK1l5UUy9jxQvoDeUN4gP939tDcKUHD/kM8SGSKbFAnvkpFpj3Bhtz3HGk1jWY5ZNWX6mPta5M9fg==", + "dev": true, + "requires": { + "postcss": "^7.0.2" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.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 + }, + "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" + } + } + } + }, + "postcss-lab-function": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-2.0.1.tgz", + "integrity": "sha512-whLy1IeZKY+3fYdqQFuDBf8Auw+qFuVnChWjmxm/UhHWqNHZx+B99EwxTvGYmUBqe3Fjxs4L1BoZTJmPu6usVg==", + "dev": true, + "requires": { + "@csstools/convert-colors": "^1.4.0", + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.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 + }, + "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" + } + } + } + }, + "postcss-loader": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-5.2.0.tgz", + "integrity": "sha512-uSuCkENFeUaOYsKrXm0eNNgVIxc71z8RcckLMbVw473rGojFnrUeqEz6zBgXsH2q1EIzXnO/4pEz9RhALjlITA==", + "dev": true, + "requires": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.4", + "semver": "^7.3.4" + } + }, + "postcss-logical": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-3.0.0.tgz", + "integrity": "sha512-1SUKdJc2vuMOmeItqGuNaC+N8MzBWFWEkAnRnLpFYj1tGGa7NqyVBujfRtgNa2gXR+6RkGUiB2O5Vmh7E2RmiA==", + "dev": true, + "requires": { + "postcss": "^7.0.2" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.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 + }, + "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" + } + } + } + }, + "postcss-media-minmax": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-4.0.0.tgz", + "integrity": "sha512-fo9moya6qyxsjbFAYl97qKO9gyre3qvbMnkOZeZwlsW6XYFsvs2DMGDlchVLfAd8LHPZDxivu/+qW2SMQeTHBw==", + "dev": true, + "requires": { + "postcss": "^7.0.2" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.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 + }, + "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" + } + } + } + }, + "postcss-merge-longhand": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.0.2.tgz", + "integrity": "sha512-BMlg9AXSI5G9TBT0Lo/H3PfUy63P84rVz3BjCFE9e9Y9RXQZD3+h3YO1kgTNsNJy7bBc1YQp8DmSnwLIW5VPcw==", + "dev": true, + "requires": { + "css-color-names": "^1.0.1", + "postcss-value-parser": "^4.1.0", + "stylehacks": "^5.0.1" + } + }, + "postcss-merge-rules": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.0.2.tgz", + "integrity": "sha512-5K+Md7S3GwBewfB4rjDeol6V/RZ8S+v4B66Zk2gChRqLTCC8yjnHQ601omj9TKftS19OPGqZ/XzoqpzNQQLwbg==", + "dev": true, + "requires": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^2.0.1", + "postcss-selector-parser": "^6.0.5", + "vendors": "^1.0.3" + } + }, + "postcss-minify-font-values": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.0.1.tgz", + "integrity": "sha512-7JS4qIsnqaxk+FXY1E8dHBDmraYFWmuL6cgt0T1SWGRO5bzJf8sUoelwa4P88LEWJZweHevAiDKxHlofuvtIoA==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-minify-gradients": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.0.1.tgz", + "integrity": "sha512-odOwBFAIn2wIv+XYRpoN2hUV3pPQlgbJ10XeXPq8UY2N+9ZG42xu45lTn/g9zZ+d70NKSQD6EOi6UiCMu3FN7g==", + "dev": true, + "requires": { + "cssnano-utils": "^2.0.1", + "is-color-stop": "^1.1.0", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-minify-params": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.0.1.tgz", + "integrity": "sha512-4RUC4k2A/Q9mGco1Z8ODc7h+A0z7L7X2ypO1B6V8057eVK6mZ6xwz6QN64nHuHLbqbclkX1wyzRnIrdZehTEHw==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.2", + "browserslist": "^4.16.0", + "cssnano-utils": "^2.0.1", + "postcss-value-parser": "^4.1.0", + "uniqs": "^2.0.0" + } + }, + "postcss-minify-selectors": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.1.0.tgz", + "integrity": "sha512-NzGBXDa7aPsAcijXZeagnJBKBPMYLaJJzB8CQh6ncvyl2sIndLVWfbcDi0SBjRWk5VqEjXvf8tYwzoKf4Z07og==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.2", + "postcss-selector-parser": "^6.0.5" + } + }, + "postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "dev": true + }, + "postcss-modules-local-by-default": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", + "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", + "dev": true, + "requires": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-modules-scope": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", + "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.4" + } + }, + "postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "requires": { + "icss-utils": "^5.0.0" + } + }, + "postcss-nesting": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-7.0.1.tgz", + "integrity": "sha512-FrorPb0H3nuVq0Sff7W2rnc3SmIcruVC6YwpcS+k687VxyxO33iE1amna7wHuRVzM8vfiYofXSBHNAZ3QhLvYg==", + "dev": true, + "requires": { + "postcss": "^7.0.2" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.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 + }, + "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" + } + } + } + }, + "postcss-normalize-charset": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.0.1.tgz", + "integrity": "sha512-6J40l6LNYnBdPSk+BHZ8SF+HAkS4q2twe5jnocgd+xWpz/mx/5Sa32m3W1AA8uE8XaXN+eg8trIlfu8V9x61eg==", + "dev": true + }, + "postcss-normalize-display-values": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.0.1.tgz", + "integrity": "sha512-uupdvWk88kLDXi5HEyI9IaAJTE3/Djbcrqq8YgjvAVuzgVuqIk3SuJWUisT2gaJbZm1H9g5k2w1xXilM3x8DjQ==", + "dev": true, + "requires": { + "cssnano-utils": "^2.0.1", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-normalize-positions": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.0.1.tgz", + "integrity": "sha512-rvzWAJai5xej9yWqlCb1OWLd9JjW2Ex2BCPzUJrbaXmtKtgfL8dBMOOMTX6TnvQMtjk3ei1Lswcs78qKO1Skrg==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-normalize-repeat-style": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.0.1.tgz", + "integrity": "sha512-syZ2itq0HTQjj4QtXZOeefomckiV5TaUO6ReIEabCh3wgDs4Mr01pkif0MeVwKyU/LHEkPJnpwFKRxqWA/7O3w==", + "dev": true, + "requires": { + "cssnano-utils": "^2.0.1", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-normalize-string": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.0.1.tgz", + "integrity": "sha512-Ic8GaQ3jPMVl1OEn2U//2pm93AXUcF3wz+OriskdZ1AOuYV25OdgS7w9Xu2LO5cGyhHCgn8dMXh9bO7vi3i9pA==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-normalize-timing-functions": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.0.1.tgz", + "integrity": "sha512-cPcBdVN5OsWCNEo5hiXfLUnXfTGtSFiBU9SK8k7ii8UD7OLuznzgNRYkLZow11BkQiiqMcgPyh4ZqXEEUrtQ1Q==", + "dev": true, + "requires": { + "cssnano-utils": "^2.0.1", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-normalize-unicode": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.0.1.tgz", + "integrity": "sha512-kAtYD6V3pK0beqrU90gpCQB7g6AOfP/2KIPCVBKJM2EheVsBQmx/Iof+9zR9NFKLAx4Pr9mDhogB27pmn354nA==", + "dev": true, + "requires": { + "browserslist": "^4.16.0", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-normalize-url": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.0.2.tgz", + "integrity": "sha512-k4jLTPUxREQ5bpajFQZpx8bCF2UrlqOTzP9kEqcEnOfwsRshWs2+oAFIHfDQB8GO2PaUaSE0NlTAYtbluZTlHQ==", + "dev": true, + "requires": { + "is-absolute-url": "^3.0.3", + "normalize-url": "^6.0.1", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-normalize-whitespace": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.0.1.tgz", + "integrity": "sha512-iPklmI5SBnRvwceb/XH568yyzK0qRVuAG+a1HFUsFRf11lEJTiQQa03a4RSCQvLKdcpX7XsI1Gen9LuLoqwiqA==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-ordered-values": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.0.2.tgz", + "integrity": "sha512-8AFYDSOYWebJYLyJi3fyjl6CqMEG/UVworjiyK1r573I56kb3e879sCJLGvR3merj+fAdPpVplXKQZv+ey6CgQ==", + "dev": true, + "requires": { + "cssnano-utils": "^2.0.1", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-overflow-shorthand": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-2.0.0.tgz", + "integrity": "sha512-aK0fHc9CBNx8jbzMYhshZcEv8LtYnBIRYQD5i7w/K/wS9c2+0NSR6B3OVMu5y0hBHYLcMGjfU+dmWYNKH0I85g==", + "dev": true, + "requires": { + "postcss": "^7.0.2" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.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 + }, + "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" + } + } + } + }, + "postcss-page-break": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-2.0.0.tgz", + "integrity": "sha512-tkpTSrLpfLfD9HvgOlJuigLuk39wVTbbd8RKcy8/ugV2bNBUW3xU+AIqyxhDrQr1VUj1RmyJrBn1YWrqUm9zAQ==", + "dev": true, + "requires": { + "postcss": "^7.0.2" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.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 + }, + "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" + } + } + } + }, + "postcss-place": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-4.0.1.tgz", + "integrity": "sha512-Zb6byCSLkgRKLODj/5mQugyuj9bvAAw9LqJJjgwz5cYryGeXfFZfSXoP1UfveccFmeq0b/2xxwcTEVScnqGxBg==", + "dev": true, + "requires": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.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 + }, + "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" + } + } + } + }, + "postcss-preset-env": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-6.7.0.tgz", + "integrity": "sha512-eU4/K5xzSFwUFJ8hTdTQzo2RBLbDVt83QZrAvI07TULOkmyQlnYlpwep+2yIK+K+0KlZO4BvFcleOCCcUtwchg==", + "dev": true, + "requires": { + "autoprefixer": "^9.6.1", + "browserslist": "^4.6.4", + "caniuse-lite": "^1.0.30000981", + "css-blank-pseudo": "^0.1.4", + "css-has-pseudo": "^0.10.0", + "css-prefers-color-scheme": "^3.1.1", + "cssdb": "^4.4.0", + "postcss": "^7.0.17", + "postcss-attribute-case-insensitive": "^4.0.1", + "postcss-color-functional-notation": "^2.0.1", + "postcss-color-gray": "^5.0.0", + "postcss-color-hex-alpha": "^5.0.3", + "postcss-color-mod-function": "^3.0.3", + "postcss-color-rebeccapurple": "^4.0.1", + "postcss-custom-media": "^7.0.8", + "postcss-custom-properties": "^8.0.11", + "postcss-custom-selectors": "^5.1.2", + "postcss-dir-pseudo-class": "^5.0.0", + "postcss-double-position-gradients": "^1.0.0", + "postcss-env-function": "^2.0.2", + "postcss-focus-visible": "^4.0.0", + "postcss-focus-within": "^3.0.0", + "postcss-font-variant": "^4.0.0", + "postcss-gap-properties": "^2.0.0", + "postcss-image-set-function": "^3.0.1", + "postcss-initial": "^3.0.0", + "postcss-lab-function": "^2.0.1", + "postcss-logical": "^3.0.0", + "postcss-media-minmax": "^4.0.0", + "postcss-nesting": "^7.0.0", + "postcss-overflow-shorthand": "^2.0.0", + "postcss-page-break": "^2.0.0", + "postcss-place": "^4.0.1", + "postcss-pseudo-class-any-link": "^6.0.0", + "postcss-replace-overflow-wrap": "^3.0.0", + "postcss-selector-matches": "^4.0.0", + "postcss-selector-not": "^4.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.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 + }, + "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" + } + } + } + }, + "postcss-pseudo-class-any-link": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-6.0.0.tgz", + "integrity": "sha512-lgXW9sYJdLqtmw23otOzrtbDXofUdfYzNm4PIpNE322/swES3VU9XlXHeJS46zT2onFO7V1QFdD4Q9LiZj8mew==", + "dev": true, + "requires": { + "postcss": "^7.0.2", + "postcss-selector-parser": "^5.0.0-rc.3" + }, + "dependencies": { + "cssesc": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", + "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", + "dev": true + }, + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-selector-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", + "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", + "dev": true, + "requires": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.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 + }, + "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" + } + } + } + }, + "postcss-reduce-initial": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.0.1.tgz", + "integrity": "sha512-zlCZPKLLTMAqA3ZWH57HlbCjkD55LX9dsRyxlls+wfuRfqCi5mSlZVan0heX5cHr154Dq9AfbH70LyhrSAezJw==", + "dev": true, + "requires": { + "browserslist": "^4.16.0", + "caniuse-api": "^3.0.0" + } + }, + "postcss-reduce-transforms": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.0.1.tgz", + "integrity": "sha512-a//FjoPeFkRuAguPscTVmRQUODP+f3ke2HqFNgGPwdYnpeC29RZdCBvGRGTsKpMURb/I3p6jdKoBQ2zI+9Q7kA==", + "dev": true, + "requires": { + "cssnano-utils": "^2.0.1", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-replace-overflow-wrap": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz", + "integrity": "sha512-2T5hcEHArDT6X9+9dVSPQdo7QHzG4XKclFT8rU5TzJPDN7RIRTbO9c4drUISOVemLj03aezStHCR2AIcr8XLpw==", + "dev": true, + "requires": { + "postcss": "^7.0.2" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.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 + }, + "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" + } + } + } + }, + "postcss-selector-matches": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz", + "integrity": "sha512-LgsHwQR/EsRYSqlwdGzeaPKVT0Ml7LAT6E75T8W8xLJY62CE4S/l03BWIt3jT8Taq22kXP08s2SfTSzaraoPww==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "postcss": "^7.0.2" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.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 + }, + "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" + } + } + } + }, + "postcss-selector-not": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-4.0.1.tgz", + "integrity": "sha512-YolvBgInEK5/79C+bdFMyzqTg6pkYqDbzZIST/PDMqa/o3qtXenD05apBG2jLgT0/BQ77d4U2UK12jWpilqMAQ==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "postcss": "^7.0.2" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.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 + }, + "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" + } + } + } + }, + "postcss-selector-parser": { + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz", + "integrity": "sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + }, + "postcss-svgo": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.0.2.tgz", + "integrity": "sha512-YzQuFLZu3U3aheizD+B1joQ94vzPfE6BNUcSYuceNxlVnKKsOtdo6hL9/zyC168Q8EwfLSgaDSalsUGa9f2C0A==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.1.0", + "svgo": "^2.3.0" + } + }, + "postcss-unique-selectors": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.0.1.tgz", + "integrity": "sha512-gwi1NhHV4FMmPn+qwBNuot1sG1t2OmacLQ/AX29lzyggnjd+MnVD5uqQmpXO3J17KGL2WAxQruj1qTd3H0gG/w==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.2", + "postcss-selector-parser": "^6.0.5", + "uniqs": "^2.0.0" + } + }, + "postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", + "dev": true + }, + "postcss-values-parser": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz", + "integrity": "sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg==", + "dev": true, + "requires": { + "flatten": "^1.0.2", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "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": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dev": true, + "requires": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + } + }, + "proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + } + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "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" + } + }, + "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 + }, + "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.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "dev": true + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true + }, + "querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "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" + } + }, + "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" + }, + "dependencies": { + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true + } + } + }, + "raw-loader": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-4.0.2.tgz", + "integrity": "sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "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 + }, + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "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-package-json-fast": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.2.tgz", + "integrity": "sha512-5fyFUyO9B799foVk4n6ylcoAktG/FbE3jwRKxvwaeSrIunaoMc0u81dzXxjeAFKOce7O5KncdfwpGvvs6r5PsQ==", + "dev": true, + "requires": { + "json-parse-even-better-errors": "^2.3.0", + "npm-normalize-package-bin": "^1.0.1" + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "dev": true, + "requires": { + "picomatch": "^2.2.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.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", + "dev": true, + "requires": { + "regenerate": "^1.4.0" + } + }, + "regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", + "dev": true + }, + "regenerator-transform": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", + "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.4" + } + }, + "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" + } + }, + "regex-parser": { + "version": "2.2.11", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", + "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==", + "dev": true + }, + "regexp.prototype.flags": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", + "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "regexpu-core": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz", + "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==", + "dev": true, + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.2.0" + } + }, + "regjsgen": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", + "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", + "dev": true + }, + "regjsparser": { + "version": "0.6.9", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.9.tgz", + "integrity": "sha512-ZqbNRz1SNjLAiYuwY0zoXW8Ne675IX5q+YHioAGbCw4X96Mjl2+dcX9B2ciaeyYjViDAfvIjFpQjJgLttTEERQ==", + "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.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", + "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 + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "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.3", + "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.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "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 + } + } + }, + "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-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "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.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dev": true, + "requires": { + "is-core-module": "^2.2.0", + "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" + }, + "dependencies": { + "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-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "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 + }, + "resolve-url-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz", + "integrity": "sha512-05VEMczVREcbtT7Bz+C+96eUO5HDNvdthIiMB34t7FcF8ehcu4wC0sSgPUubs3XW2Q3CNLJk/BJrCU9wVRymiA==", + "dev": true, + "requires": { + "adjust-sourcemap-loader": "^4.0.0", + "convert-source-map": "^1.7.0", + "loader-utils": "^2.0.0", + "postcss": "^7.0.35", + "source-map": "0.6.1" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.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 + }, + "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" + } + } + } + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "requires": { + "onetime": "^5.1.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.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rfdc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", + "dev": true + }, + "rgb-regex": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", + "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", + "dev": true + }, + "rgba-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", + "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "requires": { + "tslib": "^1.9.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "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": { + "version": "1.32.12", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.32.12.tgz", + "integrity": "sha512-zmXn03k3hN0KaiVTjohgkg98C3UowhL1/VSGdj4/VAAiMKGQOE80PFPxFP2Kyq0OUskPKcY5lImkhBKEHlypJA==", + "dev": true, + "requires": { + "chokidar": ">=3.0.0 <4.0.0" + } + }, + "sass-loader": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-11.0.1.tgz", + "integrity": "sha512-Vp1LcP4slTsTNLEiDkTcm8zGN/XYYrZz2BZybQbliWA8eXveqA/AxsEjllQTpJbg2MzCsx/qNO48sHdZtOaxTw==", + "dev": true, + "requires": { + "klona": "^2.0.4", + "neo-async": "^2.6.2" + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "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 + } + } + }, + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", + "dev": true + }, + "selfsigned": { + "version": "1.10.11", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.11.tgz", + "integrity": "sha512-aVmbPOfViZqOZPgRBT0+3u4yZFHpmnIghLMlAcb5/xhp5ZtB/RVnKhz5vl2M32CLXAqR4kha9zfhNg0Lf/sxKA==", + "dev": true, + "requires": { + "node-forge": "^0.10.0" + } + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.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": { + "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" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "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 + } + } + }, + "serialize-javascript": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", + "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "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" + }, + "dependencies": { + "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" + } + }, + "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" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "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 + } + } + }, + "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" + } + }, + "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-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "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" + } + } + } + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "dev": true + }, + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + } + }, + "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 + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "smart-buffer": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz", + "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==", + "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": { + "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" + } + }, + "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" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "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-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + } + } + }, + "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": "3.1.2", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-3.1.2.tgz", + "integrity": "sha512-JubKZnTQ4Z8G4IZWtaAZSiRP3I/inpy8c/Bsx2jrwGrTbKeVU5xd6qkKMHpChYeM3dWZSO0QACiGK+obhBNwYw==", + "dev": true, + "requires": { + "@types/cookie": "^0.4.0", + "@types/cors": "^2.8.8", + "@types/node": ">=10.0.0", + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "debug": "~4.3.1", + "engine.io": "~4.1.0", + "socket.io-adapter": "~2.1.0", + "socket.io-parser": "~4.0.3" + } + }, + "socket.io-adapter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.1.0.tgz", + "integrity": "sha512-+vDov/aTsLjViYTwS9fPy5pEtTkrbEKsw2M+oVSoFGw6OD1IpvlV1VPhUzNbofCQ8oyMbdYJqDtGdmHQK6TdPg==", + "dev": true + }, + "socket.io-parser": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz", + "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==", + "dev": true, + "requires": { + "@types/component-emitter": "^1.2.10", + "component-emitter": "~1.3.0", + "debug": "~4.3.1" + } + }, + "sockjs": { + "version": "0.3.21", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.21.tgz", + "integrity": "sha512-DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw==", + "dev": true, + "requires": { + "faye-websocket": "^0.11.3", + "uuid": "^3.4.0", + "websocket-driver": "^0.7.4" + } + }, + "sockjs-client": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.5.1.tgz", + "integrity": "sha512-VnVAb663fosipI/m6pqRXakEOw7nvd7TUgdr3PlR/8V2I95QIdwT8L4nMxhyU8SmDBHYXU1TOElaKOmKLfYzeQ==", + "dev": true, + "requires": { + "debug": "^3.2.6", + "eventsource": "^1.0.7", + "faye-websocket": "^0.11.3", + "inherits": "^2.0.4", + "json3": "^3.3.3", + "url-parse": "^1.5.1" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "socks": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.1.tgz", + "integrity": "sha512-kLQ9N5ucj8uIcxrDwjm0Jsqk06xdpBjGNQtpXy4Q8/QY2k+fY7nZH8CARy+hkbG+SGAovmzzuauCpBlb8FrnBA==", + "dev": true, + "requires": { + "ip": "^1.1.5", + "smart-buffer": "^4.1.0" + } + }, + "socks-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz", + "integrity": "sha512-lEpa1zsWCChxiynk+lCycKuC502RxDWLKJZoIhnxrWNjLSDGYRFflHA1/228VkRcnv9TIb8w98derGbpKxJRgA==", + "dev": true, + "requires": { + "agent-base": "6", + "debug": "4", + "socks": "^2.3.3" + } + }, + "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-js": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz", + "integrity": "sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==", + "dev": true + }, + "source-map-loader": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-2.0.1.tgz", + "integrity": "sha512-UzOTTQhoNPeTNzOxwFw220RSRzdGSyH4lpNyWjR7Qm34P4/N0W669YSUFdH07+YNeN75h765XLHmNsF/bm97RQ==", + "dev": true, + "requires": { + "abab": "^2.0.5", + "iconv-lite": "^0.6.2", + "source-map-js": "^0.6.2" + }, + "dependencies": { + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + } + } + }, + "source-map-resolve": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", + "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0" + } + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "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.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "dev": true + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "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" + } + }, + "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" + } + }, + "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" + } + }, + "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": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "dev": true, + "requires": { + "minipass": "^3.1.1" + } + }, + "stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "dev": true + }, + "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" + } + } + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true + }, + "streamroller": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-2.2.4.tgz", + "integrity": "sha512-OG79qm3AujAM9ImoqgWEY1xG4HX+Lw+yY6qZj9R1K2mhF5bEmQ849wvrb+4vt4jLMLzwXttJlQbOdPOQVRv7DQ==", + "dev": true, + "requires": { + "date-format": "^2.1.0", + "debug": "^4.1.1", + "fs-extra": "^8.1.0" + }, + "dependencies": { + "date-format": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-2.1.0.tgz", + "integrity": "sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA==", + "dev": true + } + } + }, + "string-width": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.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 + }, + "style-loader": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-2.0.0.tgz", + "integrity": "sha512-Z0gYUJmzZ6ZdRUqpg1r8GsaFKypE+3xAzuFeMuoHgjc9KZv3wMyCRjQIWEbhoFSq7+7yoHXySDJyyWQaPajeiQ==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "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 + }, + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "stylehacks": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.0.1.tgz", + "integrity": "sha512-Es0rVnHIqbWzveU1b24kbw92HsebBepxfcqe5iix7t9j0PQqhs0IxXVXv0pY2Bxa08CgMkzD6OWql7kbGOuEdA==", + "dev": true, + "requires": { + "browserslist": "^4.16.0", + "postcss-selector-parser": "^6.0.4" + } + }, + "stylus": { + "version": "0.54.8", + "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.54.8.tgz", + "integrity": "sha512-vr54Or4BZ7pJafo2mpf0ZcwA74rpuYCZbxrHBsH8kbcXOwSfvBFwsRfpGO5OD5fhG5HDCFW737PKaawI7OqEAg==", + "dev": true, + "requires": { + "css-parse": "~2.0.0", + "debug": "~3.1.0", + "glob": "^7.1.6", + "mkdirp": "~1.0.4", + "safer-buffer": "^2.1.2", + "sax": "~1.2.4", + "semver": "^6.3.0", + "source-map": "^0.7.3" + }, + "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" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "stylus-loader": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-5.0.0.tgz", + "integrity": "sha512-1OaGgixTgC8IAaMCodZXg7XYsfP1qU0UzTHDyPaWACUh34j9geJL4iA583tFJDOtfNUOfDLaBpUywc5MicQ1aA==", + "dev": true, + "requires": { + "fast-glob": "^3.2.5", + "klona": "^2.0.4", + "normalize-path": "^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" + } + }, + "svgo": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.3.0.tgz", + "integrity": "sha512-fz4IKjNO6HDPgIQxu4IxwtubtbSfGEAJUq/IXyTPIkGhWck/faiiwfkvsB8LnBkKLvSoyNNIY6d13lZprJMc9Q==", + "dev": true, + "requires": { + "@trysound/sax": "0.1.1", + "chalk": "^4.1.0", + "commander": "^7.1.0", + "css-select": "^3.1.2", + "css-tree": "^1.1.2", + "csso": "^4.2.0", + "stable": "^0.1.8" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "symbol-observable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", + "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", + "dev": true + }, + "tapable": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.0.tgz", + "integrity": "sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw==", + "dev": true + }, + "tar": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.0.tgz", + "integrity": "sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA==", + "dev": true, + "requires": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + } + }, + "terser": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.7.0.tgz", + "integrity": "sha512-HP5/9hp2UaZt5fYkuhNBR8YyRcT8juw8+uFbAme53iN9hblvKnLUTKkmwJG6ocWpIKf8UK4DoeWG4ty0J6S6/g==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.7.2", + "source-map-support": "~0.5.19" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } + } + }, + "terser-webpack-plugin": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.1.2.tgz", + "integrity": "sha512-6QhDaAiVHIQr5Ab3XUWZyDmrIPCHMiqJVljMF91YKyqwKkL5QHnYMkrMBy96v9Z7ev1hGhSEw1HQZc2p/s5Z8Q==", + "dev": true, + "requires": { + "jest-worker": "^26.6.2", + "p-limit": "^3.1.0", + "schema-utils": "^3.0.0", + "serialize-javascript": "^5.0.1", + "source-map": "^0.6.1", + "terser": "^5.7.0" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "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 + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + }, + "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 + } + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "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 + }, + "thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "timsort": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", + "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", + "dev": true + }, + "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-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 + }, + "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": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "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.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true + }, + "tslib": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", + "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" + }, + "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-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "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" + } + }, + "typescript": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.4.tgz", + "integrity": "sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg==", + "dev": true + }, + "ua-parser-js": { + "version": "0.7.28", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.28.tgz", + "integrity": "sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g==", + "dev": true + }, + "unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", + "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==", + "dev": true + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "dev": true + }, + "uniqs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", + "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", + "dev": true + }, + "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" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + }, + "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.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "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.5.1", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.1.tgz", + "integrity": "sha512-HOfCOUJt7iSYzEx/UqgtwKRMC6EU91NFhsCHMv9oM03VJcVo2Qrp8T8kI9D7amFf1cu+/3CEhgb3rF9zL7k85Q==", + "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 + }, + "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.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true + }, + "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 + }, + "vendors": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", + "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==", + "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" + } + }, + "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": "2.2.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.2.0.tgz", + "integrity": "sha512-up4YAn/XHgZHIxFBVCdlMiWDj6WaLKpwVeGQk2I5thdYxF/KmF0aaz6TfJZ/hfl1h/XlcDr7k1KH7ThDagpFaA==", + "dev": true, + "requires": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + } + }, + "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" + } + }, + "wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "dev": true, + "requires": { + "defaults": "^1.0.3" + } + }, + "webpack": { + "version": "5.38.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.38.1.tgz", + "integrity": "sha512-OqRmYD1OJbHZph6RUMD93GcCZy4Z4wC0ele4FXyYF0J6AxO1vOSuIlU1hkS/lDlR9CDYBz64MZRmdbdnFFoT2g==", + "dev": true, + "requires": { + "@types/eslint-scope": "^3.7.0", + "@types/estree": "^0.0.47", + "@webassemblyjs/ast": "1.11.0", + "@webassemblyjs/wasm-edit": "1.11.0", + "@webassemblyjs/wasm-parser": "1.11.0", + "acorn": "^8.2.1", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.8.0", + "es-module-lexer": "^0.4.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.4", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.0.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.1", + "watchpack": "^2.2.0", + "webpack-sources": "^2.3.0" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "enhanced-resolve": { + "version": "5.8.2", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.2.tgz", + "integrity": "sha512-F27oB3WuHDzvR2DOGNTaYy0D5o0cnrv8TeI482VM4kYgQd/FT9lUQwuNsJ0oOHtBUq7eiW5ytqzp7nBFknL+GA==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + } + }, + "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 + }, + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + }, + "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-sources": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.0.tgz", + "integrity": "sha512-WyOdtwSvOML1kbgtXbTDnEW0jkJ7hZr/bDByIwszhWd/4XX1A3XMkrbFMsuH4+/MfLlZCUzlAdg4r7jaGKEIgQ==", + "dev": true, + "requires": { + "source-list-map": "^2.0.1", + "source-map": "^0.6.1" + } + } + } + }, + "webpack-dev-middleware": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-4.1.0.tgz", + "integrity": "sha512-mpa/FY+DiBu5+r5JUIyTCYWRfkWgyA3/OOE9lwfzV9S70A4vJYLsVRKj5rMFEsezBroy2FmPyQ8oBRVW8QmK1A==", + "dev": true, + "requires": { + "colorette": "^1.2.1", + "mem": "^8.0.0", + "memfs": "^3.2.0", + "mime-types": "^2.1.28", + "range-parser": "^1.2.1", + "schema-utils": "^3.0.0" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "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 + }, + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "webpack-dev-server": { + "version": "3.11.2", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.2.tgz", + "integrity": "sha512-A80BkuHRQfCiNtGBS1EMf2ChTUs0x+B3wGDFmOeT4rmJOHhHTCH2naNxIHhmkr0/UillP4U3yeIyv1pNp+QDLQ==", + "dev": true, + "requires": { + "ansi-html": "0.0.7", + "bonjour": "^3.5.0", + "chokidar": "^2.1.8", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "debug": "^4.1.1", + "del": "^4.1.1", + "express": "^4.17.1", + "html-entities": "^1.3.1", + "http-proxy-middleware": "0.19.1", + "import-local": "^2.0.0", + "internal-ip": "^4.3.0", + "ip": "^1.1.5", + "is-absolute-url": "^3.0.3", + "killable": "^1.0.1", + "loglevel": "^1.6.8", + "opn": "^5.5.0", + "p-retry": "^3.0.1", + "portfinder": "^1.0.26", + "schema-utils": "^1.0.0", + "selfsigned": "^1.10.8", + "semver": "^6.3.0", + "serve-index": "^1.9.1", + "sockjs": "^0.3.21", + "sockjs-client": "^1.5.0", + "spdy": "^4.0.2", + "strip-ansi": "^3.0.1", + "supports-color": "^6.1.0", + "url": "^0.11.0", + "webpack-dev-middleware": "^3.7.2", + "webpack-log": "^2.0.0", + "ws": "^6.2.1", + "yargs": "^13.3.2" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "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" + }, + "dependencies": { + "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" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true + }, + "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" + } + } + } + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "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" + } + }, + "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" + } + } + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true + }, + "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" + } + } + } + }, + "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-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" + } + } + } + }, + "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 + }, + "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" + } + }, + "mime": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", + "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==", + "dev": true + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "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" + } + }, + "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" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "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" + } + }, + "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" + } + }, + "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" + } + }, + "webpack-dev-middleware": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz", + "integrity": "sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ==", + "dev": true, + "requires": { + "memory-fs": "^0.4.1", + "mime": "^2.4.4", + "mkdirp": "^0.5.1", + "range-parser": "^1.2.1", + "webpack-log": "^2.0.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" + }, + "dependencies": { + "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 + } + } + }, + "webpack-merge": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.7.3.tgz", + "integrity": "sha512-6/JUQv0ELQ1igjGDzHkXbVDRxkfA57Zw7PfiupdLFJYrgFqY5ZP8xxbpp2lU3EPwYx89ht5Z/aDkD40hFCm5AA==", + "dev": true, + "requires": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + } + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "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.5.2", + "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-1.5.2.tgz", + "integrity": "sha512-GBWYBoyalbo5YClwWop9qe6Zclp8CIXYGIz12OPclJhIrSplDxs1Ls1JDMH8xBPPrg1T6ISaTW9Y6zOrwEiAzw==", + "dev": true, + "requires": { + "webpack-sources": "^1.3.0" + } + }, + "websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dev": true, + "requires": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + } + }, + "websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "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": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": 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, + "requires": { + "string-width": "^1.0.2 || 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 + }, + "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" + } + }, + "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" + } + } + } + }, + "wildcard": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", + "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", + "dev": true + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.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 + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "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": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.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" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "ws": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz", + "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0" + } + }, + "y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + }, + "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 + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "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" + } + }, + "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 + }, + "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-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" + } + }, + "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 + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.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" + } + } + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + } + } + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true + }, + "zone.js": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.11.4.tgz", + "integrity": "sha512-DDh2Ab+A/B+9mJyajPjHFPWfYU1H+pdun4wnnk0OcQTNjem1XQSZ2CDW+rfZEUDjv5M19SBqAkjZi0x5wuB5Qw==", + "requires": { + "tslib": "^2.0.0" + } + } + } +} diff --git a/EnoLandingPageBackend/ClientApp/package.json b/EnoLandingPageBackend/ClientApp/package.json new file mode 100644 index 0000000..b179f1b --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/package.json @@ -0,0 +1,39 @@ +{ + "name": "client-app", + "version": "0.0.0", + "scripts": { + "ng": "ng", + "start": "ng serve", + "build": "ng build", + "watch": "ng build --watch --configuration development", + "test": "ng test" + }, + "private": true, + "dependencies": { + "@angular/animations": "~12.0.4", + "@angular/common": "~12.0.4", + "@angular/compiler": "~12.0.4", + "@angular/core": "~12.0.4", + "@angular/forms": "~12.0.4", + "@angular/platform-browser": "~12.0.4", + "@angular/platform-browser-dynamic": "~12.0.4", + "@angular/router": "~12.0.4", + "rxjs": "~6.6.0", + "tslib": "^2.1.0", + "zone.js": "~0.11.4" + }, + "devDependencies": { + "@angular-devkit/build-angular": "~12.0.4", + "@angular/cli": "~12.0.4", + "@angular/compiler-cli": "~12.0.4", + "@types/jasmine": "~3.6.0", + "@types/node": "^12.11.1", + "jasmine-core": "~3.7.0", + "karma": "~6.3.0", + "karma-chrome-launcher": "~3.1.0", + "karma-coverage": "~2.0.3", + "karma-jasmine": "~4.0.0", + "karma-jasmine-html-reporter": "^1.5.0", + "typescript": "~4.2.3" + } +} diff --git a/EnoLandingPageBackend/ClientApp/src/app/app-routing.module.ts b/EnoLandingPageBackend/ClientApp/src/app/app-routing.module.ts new file mode 100644 index 0000000..0297262 --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/src/app/app-routing.module.ts @@ -0,0 +1,10 @@ +import { NgModule } from '@angular/core'; +import { RouterModule, Routes } from '@angular/router'; + +const routes: Routes = []; + +@NgModule({ + imports: [RouterModule.forRoot(routes)], + exports: [RouterModule] +}) +export class AppRoutingModule { } diff --git a/EnoLandingPageBackend/ClientApp/src/app/app.component.html b/EnoLandingPageBackend/ClientApp/src/app/app.component.html new file mode 100644 index 0000000..a751c67 --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/src/app/app.component.html @@ -0,0 +1,509 @@ + + + + + + + + + + + + + + +
+ + +
+ + + Rocket Ship + + + + + + + + + + {{ title }} app is running! + + + Rocket Ship Smoke + + + +
+ + +

Resources

+

Here are some links to help you get started:

+ + + + +

Next Steps

+

What do you want to do next with your app?

+ + + +
+
+ + + New Component +
+ +
+ + + Angular Material +
+ +
+ + + Add PWA Support +
+ +
+ + + Add Dependency +
+ +
+ + + Run and Watch Tests +
+ +
+ + + Build for Production +
+
+ + +
+
ng generate component xyz
+
ng add @angular/material
+
ng add @angular/pwa
+
ng add _____
+
ng test
+
ng build
+
+ + + + + + + + + Gray Clouds Background + + + +
+ + + + + + + + + + diff --git a/EnoLandingPageBackend/ClientApp/src/app/app.component.scss b/EnoLandingPageBackend/ClientApp/src/app/app.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/EnoLandingPageBackend/ClientApp/src/app/app.component.spec.ts b/EnoLandingPageBackend/ClientApp/src/app/app.component.spec.ts new file mode 100644 index 0000000..66d2ab8 --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/src/app/app.component.spec.ts @@ -0,0 +1,35 @@ +import { TestBed } from '@angular/core/testing'; +import { RouterTestingModule } from '@angular/router/testing'; +import { AppComponent } from './app.component'; + +describe('AppComponent', () => { + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [ + RouterTestingModule + ], + declarations: [ + AppComponent + ], + }).compileComponents(); + }); + + it('should create the app', () => { + const fixture = TestBed.createComponent(AppComponent); + const app = fixture.componentInstance; + expect(app).toBeTruthy(); + }); + + it(`should have as title 'ClientApp'`, () => { + const fixture = TestBed.createComponent(AppComponent); + const app = fixture.componentInstance; + expect(app.title).toEqual('ClientApp'); + }); + + it('should render title', () => { + const fixture = TestBed.createComponent(AppComponent); + fixture.detectChanges(); + const compiled = fixture.nativeElement; + expect(compiled.querySelector('.content span').textContent).toContain('ClientApp app is running!'); + }); +}); diff --git a/EnoLandingPageBackend/ClientApp/src/app/app.component.ts b/EnoLandingPageBackend/ClientApp/src/app/app.component.ts new file mode 100644 index 0000000..eae160c --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/src/app/app.component.ts @@ -0,0 +1,10 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-root', + templateUrl: './app.component.html', + styleUrls: ['./app.component.scss'] +}) +export class AppComponent { + title = 'ClientApp'; +} diff --git a/EnoLandingPageBackend/ClientApp/src/app/app.module.ts b/EnoLandingPageBackend/ClientApp/src/app/app.module.ts new file mode 100644 index 0000000..b1c6c96 --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/src/app/app.module.ts @@ -0,0 +1,18 @@ +import { NgModule } from '@angular/core'; +import { BrowserModule } from '@angular/platform-browser'; + +import { AppRoutingModule } from './app-routing.module'; +import { AppComponent } from './app.component'; + +@NgModule({ + declarations: [ + AppComponent + ], + imports: [ + BrowserModule, + AppRoutingModule + ], + providers: [], + bootstrap: [AppComponent] +}) +export class AppModule { } diff --git a/EnoLandingPageBackend/ClientApp/src/assets/.gitkeep b/EnoLandingPageBackend/ClientApp/src/assets/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/EnoLandingPageBackend/ClientApp/src/environments/environment.prod.ts b/EnoLandingPageBackend/ClientApp/src/environments/environment.prod.ts new file mode 100644 index 0000000..3612073 --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/src/environments/environment.prod.ts @@ -0,0 +1,3 @@ +export const environment = { + production: true +}; diff --git a/EnoLandingPageBackend/ClientApp/src/environments/environment.ts b/EnoLandingPageBackend/ClientApp/src/environments/environment.ts new file mode 100644 index 0000000..f56ff47 --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/src/environments/environment.ts @@ -0,0 +1,16 @@ +// This file can be replaced during build by using the `fileReplacements` array. +// `ng build` replaces `environment.ts` with `environment.prod.ts`. +// The list of file replacements can be found in `angular.json`. + +export const environment = { + production: false +}; + +/* + * 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/plugins/zone-error'; // Included with Angular CLI. diff --git a/EnoLandingPageBackend/ClientApp/src/favicon.ico b/EnoLandingPageBackend/ClientApp/src/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..997406ad22c29aae95893fb3d666c30258a09537 GIT binary patch literal 948 zcmV;l155mgP)CBYU7IjCFmI-B}4sMJt3^s9NVg!P0 z6hDQy(L`XWMkB@zOLgN$4KYz;j0zZxq9KKdpZE#5@k0crP^5f9KO};h)ZDQ%ybhht z%t9#h|nu0K(bJ ztIkhEr!*UyrZWQ1k2+YkGqDi8Z<|mIN&$kzpKl{cNP=OQzXHz>vn+c)F)zO|Bou>E z2|-d_=qY#Y+yOu1a}XI?cU}%04)zz%anD(XZC{#~WreV!a$7k2Ug`?&CUEc0EtrkZ zL49MB)h!_K{H(*l_93D5tO0;BUnvYlo+;yss%n^&qjt6fZOa+}+FDO(~2>G z2dx@=JZ?DHP^;b7*Y1as5^uphBsh*s*z&MBd?e@I>-9kU>63PjP&^#5YTOb&x^6Cf z?674rmSHB5Fk!{Gv7rv!?qX#ei_L(XtwVqLX3L}$MI|kJ*w(rhx~tc&L&xP#?cQow zX_|gx$wMr3pRZIIr_;;O|8fAjd;1`nOeu5K(pCu7>^3E&D2OBBq?sYa(%S?GwG&_0-s%_v$L@R!5H_fc)lOb9ZoOO#p`Nn`KU z3LTTBtjwo`7(HA6 z7gmO$yTR!5L>Bsg!X8616{JUngg_@&85%>W=mChTR;x4`P=?PJ~oPuy5 zU-L`C@_!34D21{fD~Y8NVnR3t;aqZI3fIhmgmx}$oc-dKDC6Ap$Gy>a!`A*x2L1v0 WcZ@i?LyX}70000 + + + + ClientApp + + + + + + + + diff --git a/EnoLandingPageBackend/ClientApp/src/main.ts b/EnoLandingPageBackend/ClientApp/src/main.ts new file mode 100644 index 0000000..c7b673c --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/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.error(err)); diff --git a/EnoLandingPageBackend/ClientApp/src/polyfills.ts b/EnoLandingPageBackend/ClientApp/src/polyfills.ts new file mode 100644 index 0000000..373f538 --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/src/polyfills.ts @@ -0,0 +1,65 @@ +/** + * 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 + */ + +/** + * IE11 requires the following for NgClass support on SVG elements + */ +// import 'classlist.js'; // Run `npm install --save classlist.js`. + +/** + * Web Animations `@angular/platform-browser/animations` + * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari. + * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0). + */ +// import 'web-animations-js'; // Run `npm install --save web-animations-js`. + +/** + * By default, zone.js will patch all possible macroTask and DomEvents + * user can disable parts of macroTask/DomEvents patch by setting following flags + * because those flags need to be set before `zone.js` being loaded, and webpack + * will put import in the top of bundle, so user need to create a separate file + * in this directory (for example: zone-flags.ts), and put the following flags + * into that file, and then add the following code before importing zone.js. + * import './zone-flags'; + * + * The flags allowed in zone-flags.ts are listed here. + * + * The following flags will work for all browsers. + * + * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame + * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick + * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames + * + * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js + * with the following flag, it will bypass `zone.js` patch for IE/Edge + * + * (window as any).__Zone_enable_cross_context_check = true; + * + */ + +/*************************************************************************************************** + * Zone JS is required by default for Angular itself. + */ +import 'zone.js'; // Included with Angular CLI. + + +/*************************************************************************************************** + * APPLICATION IMPORTS + */ diff --git a/EnoLandingPageBackend/ClientApp/src/styles.scss b/EnoLandingPageBackend/ClientApp/src/styles.scss new file mode 100644 index 0000000..90d4ee0 --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/src/styles.scss @@ -0,0 +1 @@ +/* You can add global styles to this file, and also import other style files */ diff --git a/EnoLandingPageBackend/ClientApp/src/test.ts b/EnoLandingPageBackend/ClientApp/src/test.ts new file mode 100644 index 0000000..2042356 --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/src/test.ts @@ -0,0 +1,25 @@ +// This file is required by karma.conf.js and loads recursively all the .spec and framework files + +import 'zone.js/testing'; +import { getTestBed } from '@angular/core/testing'; +import { + BrowserDynamicTestingModule, + platformBrowserDynamicTesting +} from '@angular/platform-browser-dynamic/testing'; + +declare const require: { + context(path: string, deep?: boolean, filter?: RegExp): { + keys(): string[]; + (id: string): T; + }; +}; + +// 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/EnoLandingPageBackend/ClientApp/tsconfig.app.json b/EnoLandingPageBackend/ClientApp/tsconfig.app.json new file mode 100644 index 0000000..82d91dc --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/tsconfig.app.json @@ -0,0 +1,15 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/app", + "types": [] + }, + "files": [ + "src/main.ts", + "src/polyfills.ts" + ], + "include": [ + "src/**/*.d.ts" + ] +} diff --git a/EnoLandingPageBackend/ClientApp/tsconfig.json b/EnoLandingPageBackend/ClientApp/tsconfig.json new file mode 100644 index 0000000..6df8283 --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/tsconfig.json @@ -0,0 +1,30 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "compileOnSave": false, + "compilerOptions": { + "baseUrl": "./", + "outDir": "./dist/out-tsc", + "forceConsistentCasingInFileNames": true, + "strict": true, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true, + "sourceMap": true, + "declaration": false, + "downlevelIteration": true, + "experimentalDecorators": true, + "moduleResolution": "node", + "importHelpers": true, + "target": "es2017", + "module": "es2020", + "lib": [ + "es2018", + "dom" + ] + }, + "angularCompilerOptions": { + "enableI18nLegacyMessageIdFormat": false, + "strictInjectionParameters": true, + "strictInputAccessModifiers": true, + "strictTemplates": true + } +} diff --git a/EnoLandingPageBackend/ClientApp/tsconfig.spec.json b/EnoLandingPageBackend/ClientApp/tsconfig.spec.json new file mode 100644 index 0000000..092345b --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/tsconfig.spec.json @@ -0,0 +1,18 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/spec", + "types": [ + "jasmine" + ] + }, + "files": [ + "src/test.ts", + "src/polyfills.ts" + ], + "include": [ + "src/**/*.spec.ts", + "src/**/*.d.ts" + ] +} diff --git a/EnoLandingPageBackend/EnoLandingPageBackend.csproj b/EnoLandingPageBackend/EnoLandingPageBackend.csproj index 56ce043..078706c 100644 --- a/EnoLandingPageBackend/EnoLandingPageBackend.csproj +++ b/EnoLandingPageBackend/EnoLandingPageBackend.csproj @@ -2,6 +2,15 @@ net5.0 + true + Latest + false + ClientApp\ + $(DefaultItemExcludes);$(SpaRoot)node_modules\** + + + false + EnoLandingPageBackend @@ -17,6 +26,7 @@ + all runtime; build; native; contentfiles; analyzers; buildtransitive @@ -42,4 +52,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + %(DistFiles.Identity) + PreserveNewest + true + + + +
diff --git a/EnoLandingPageBackend/Program.cs b/EnoLandingPageBackend/Program.cs index 7eb8cdb..39d6d19 100644 --- a/EnoLandingPageBackend/Program.cs +++ b/EnoLandingPageBackend/Program.cs @@ -24,6 +24,7 @@ public static IHostBuilder CreateHostBuilder(string[] args) => }) .ConfigureWebHostDefaults(webBuilder => { + // TODO: needed? webBuilder.UseSetting("https_port", "443"); webBuilder.UseStartup(); }); diff --git a/EnoLandingPageBackend/Properties/launchSettings.json b/EnoLandingPageBackend/Properties/launchSettings.json index 72408e2..d9a5c63 100644 --- a/EnoLandingPageBackend/Properties/launchSettings.json +++ b/EnoLandingPageBackend/Properties/launchSettings.json @@ -1,13 +1,20 @@ { "$schema": "http://json.schemastore.org/launchsettings.json", "profiles": { - "EnoLandingPageBackend": { + "Development": { "commandName": "Project", + "launchBrowser": true, "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" }, "dotnetRunMessages": "true", - "applicationUrl": "http://localhost" - } + "applicationUrl": "https://localhost:5001;http://localhost:5000" + }, + "Release": { + "commandName": "Project", + "launchBrowser": true, + "dotnetRunMessages": "true", + "applicationUrl": "https://localhost:5001;http://localhost:5000" + }, } -} +} \ No newline at end of file diff --git a/EnoLandingPageBackend/Startup.cs b/EnoLandingPageBackend/Startup.cs index 5d58653..29f505a 100644 --- a/EnoLandingPageBackend/Startup.cs +++ b/EnoLandingPageBackend/Startup.cs @@ -32,6 +32,7 @@ namespace EnoLandingPageBackend using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using Microsoft.OpenApi.Models; + using Microsoft.AspNetCore.SpaServices.AngularCli; public class Startup { @@ -45,10 +46,13 @@ public Startup(IConfiguration configuration, IWebHostEnvironment environment) public IWebHostEnvironment Environment { get; } - // This method gets called by the runtime. Use this method to add services to the container. + /// + /// This method gets called by the runtime. Use this method to add services to the container. + /// public void ConfigureServices(IServiceCollection services) { services.Configure(this.Configuration.GetSection("EnoLandingPage")); + // TODO: Validation should be done earlier? var enoLandingPageSettings = this.Configuration .GetSection("EnoLandingPage") .Get(); @@ -144,6 +148,11 @@ public void ConfigureServices(IServiceCollection services) //c.DescribeAllEnumsAsStrings(); }); services.AddSingleton(); + + services.AddSpaStaticFiles(configuration => + { + configuration.RootPath = "ClientApp/dist/ClientApp"; + }); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. @@ -166,6 +175,13 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env, LandingP app.UseHttpsRedirection(); } + app.UseStaticFiles(); + if (!env.IsDevelopment()) + { + app.UseSpaStaticFiles(); + } + + db.Migrate(); app.UseRouting(); app.UseAuthentication(); app.UseAuthorization(); @@ -173,21 +189,28 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env, LandingP { endpoints.MapControllers(); }); - db.Migrate(); - - app.UseStaticFiles(); - //app.UseSpaStaticFiles(); + //var rewrite = new RewriteOptions() + // .AddRewrite("^$", "/index.html", true) + // .AddRewrite(@"^[\w\/]*$", "/index.html", true); + //app.UseRewriter(rewrite); + //app.UseStaticFiles(new StaticFileOptions() + //{ + // ServeUnknownFileTypes = true, + // HttpsCompression = HttpsCompressionMode.Compress, + // DefaultContentType = "application/octet-stream", + //}); - var rewrite = new RewriteOptions() - .AddRewrite("^$", "/index.html", true) - .AddRewrite(@"^[\w\/]*$", "/index.html", true); - app.UseRewriter(rewrite); - app.UseStaticFiles(new StaticFileOptions() + app.UseSpa(spa => { - ServeUnknownFileTypes = true, - HttpsCompression = HttpsCompressionMode.Compress, - DefaultContentType = "application/octet-stream", + // To learn more about options for serving an Angular SPA from ASP.NET Core, + // see https://go.microsoft.com/fwlink/?linkid=864501 + spa.Options.SourcePath = "ClientApp"; + + if (env.IsDevelopment()) + { + spa.UseProxyToSpaDevelopmentServer("http://localhost:4200"); + } }); } } From d269a1df275aea4d2ddce78f5dfc56332ecdb6b1 Mon Sep 17 00:00:00 2001 From: Daniel Habenicht Date: Sun, 13 Jun 2021 01:49:59 +0200 Subject: [PATCH 010/118] add hmr --- EnoLandingPageBackend/ClientApp/angular.json | 22 +- .../ClientApp/package-lock.json | 6 + EnoLandingPageBackend/ClientApp/package.json | 3 +- .../ClientApp/src/app/app.component.html | 553 +++++++++++++++--- .../src/environments/environment.prod.ts | 3 +- .../ClientApp/src/environments/environment.ts | 3 +- EnoLandingPageBackend/ClientApp/src/hmr.ts | 18 + EnoLandingPageBackend/ClientApp/src/main.ts | 19 +- .../ClientApp/tsconfig.app.json | 11 +- 9 files changed, 512 insertions(+), 126 deletions(-) create mode 100644 EnoLandingPageBackend/ClientApp/src/hmr.ts diff --git a/EnoLandingPageBackend/ClientApp/angular.json b/EnoLandingPageBackend/ClientApp/angular.json index 770d2ef..a8a5cb5 100644 --- a/EnoLandingPageBackend/ClientApp/angular.json +++ b/EnoLandingPageBackend/ClientApp/angular.json @@ -29,13 +29,8 @@ "polyfills": "src/polyfills.ts", "tsConfig": "tsconfig.app.json", "inlineStyleLanguage": "scss", - "assets": [ - "src/favicon.ico", - "src/assets" - ], - "styles": [ - "src/styles.scss" - ], + "assets": ["src/favicon.ico", "src/assets"], + "styles": ["src/styles.scss"], "scripts": [] }, "configurations": { @@ -79,6 +74,10 @@ }, "development": { "browserTarget": "ClientApp:build:development" + }, + "hmr": { + "hmr": true, + "browserTarget": "ClientApp:build:development" } }, "defaultConfiguration": "development" @@ -97,13 +96,8 @@ "tsConfig": "tsconfig.spec.json", "karmaConfig": "karma.conf.js", "inlineStyleLanguage": "scss", - "assets": [ - "src/favicon.ico", - "src/assets" - ], - "styles": [ - "src/styles.scss" - ], + "assets": ["src/favicon.ico", "src/assets"], + "styles": ["src/styles.scss"], "scripts": [] } } diff --git a/EnoLandingPageBackend/ClientApp/package-lock.json b/EnoLandingPageBackend/ClientApp/package-lock.json index 4f17024..d6830ca 100644 --- a/EnoLandingPageBackend/ClientApp/package-lock.json +++ b/EnoLandingPageBackend/ClientApp/package-lock.json @@ -346,6 +346,12 @@ "tslib": "^2.1.0" } }, + "@angularclass/hmr": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@angularclass/hmr/-/hmr-3.0.0.tgz", + "integrity": "sha512-4A/DKmSafWUcffv7f536oY6RbpXEAD7f0NCGVLlRj9Gna8dkGc9JOHSr3NCWHd/NRc4ey8x+V0itsBqlPxEJ/A==", + "dev": true + }, "@babel/code-frame": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", diff --git a/EnoLandingPageBackend/ClientApp/package.json b/EnoLandingPageBackend/ClientApp/package.json index b179f1b..519cf6c 100644 --- a/EnoLandingPageBackend/ClientApp/package.json +++ b/EnoLandingPageBackend/ClientApp/package.json @@ -3,7 +3,7 @@ "version": "0.0.0", "scripts": { "ng": "ng", - "start": "ng serve", + "start": "ng serve --configuration hmr", "build": "ng build", "watch": "ng build --watch --configuration development", "test": "ng test" @@ -26,6 +26,7 @@ "@angular-devkit/build-angular": "~12.0.4", "@angular/cli": "~12.0.4", "@angular/compiler-cli": "~12.0.4", + "@angularclass/hmr": "^3.0.0", "@types/jasmine": "~3.6.0", "@types/node": "^12.11.1", "jasmine-core": "~3.7.0", diff --git a/EnoLandingPageBackend/ClientApp/src/app/app.component.html b/EnoLandingPageBackend/ClientApp/src/app/app.component.html index a751c67..c33cacc 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/app.component.html +++ b/EnoLandingPageBackend/ClientApp/src/app/app.component.html @@ -9,7 +9,9 @@ - - - - -
- -
- - Rocket Ship - - - - - - - - - - {{ title }} app is running! - - - Rocket Ship Smoke - - -
- - -

Resources

-

Here are some links to help you get started:

- - - - -

Next Steps

-

What do you want to do next with your app?

- - - -
-
- - - - - New Component -
- -
- - - - - Angular Material -
- -
- - - - - Add PWA Support -
- -
- - - - - Add Dependency -
- -
- - - - - Run and Watch Tests -
- -
- - - - - Build for Production -
-
- - -
-
ng generate component xyz
-
ng add @angular/material
-
ng add @angular/pwa
-
ng add _____
-
ng test
-
ng build
-
- - - - - - - - - Gray Clouds Background - - -
- - - - - - - - - - +{{ data | json }} diff --git a/EnoLandingPageBackend/ClientApp/src/app/app.component.ts b/EnoLandingPageBackend/ClientApp/src/app/app.component.ts index eae160c..c2180cb 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/app.component.ts +++ b/EnoLandingPageBackend/ClientApp/src/app/app.component.ts @@ -1,10 +1,16 @@ import { Component } from '@angular/core'; - +import { DataService } from 'projects/backend-api/src/lib'; @Component({ selector: 'app-root', templateUrl: './app.component.html', - styleUrls: ['./app.component.scss'] + styleUrls: ['./app.component.scss'], }) export class AppComponent { - title = 'ClientApp'; + public data: any; + constructor(private dataService: DataService) { + this.dataService.apiDataCtfInfoGet().subscribe((data) => { + this.data = data; + }); + } + ngOnInit() {} } diff --git a/EnoLandingPageBackend/ClientApp/src/app/app.module.ts b/EnoLandingPageBackend/ClientApp/src/app/app.module.ts index b1c6c96..635d4b6 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/app.module.ts +++ b/EnoLandingPageBackend/ClientApp/src/app/app.module.ts @@ -1,18 +1,32 @@ import { NgModule } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; - +import { + ApiModule, + Configuration, + ConfigurationParameters, +} from 'projects/backend-api/src/lib'; +import { environment } from 'src/environments/environment'; import { AppRoutingModule } from './app-routing.module'; import { AppComponent } from './app.component'; +import { HttpClientModule } from '@angular/common/http'; + +export function apiConfigFactory(): Configuration { + const params: ConfigurationParameters = { + basePath: environment.backendBaseUrl, + // set configuration parameters here. + }; + return new Configuration(params); +} @NgModule({ - declarations: [ - AppComponent - ], + declarations: [AppComponent], imports: [ BrowserModule, - AppRoutingModule + AppRoutingModule, + HttpClientModule, + ApiModule.forRoot(apiConfigFactory), ], providers: [], - bootstrap: [AppComponent] + bootstrap: [AppComponent], }) -export class AppModule { } +export class AppModule {} diff --git a/EnoLandingPageBackend/ClientApp/src/environments/environment.prod.ts b/EnoLandingPageBackend/ClientApp/src/environments/environment.prod.ts index 31184ec..e87c33f 100644 --- a/EnoLandingPageBackend/ClientApp/src/environments/environment.prod.ts +++ b/EnoLandingPageBackend/ClientApp/src/environments/environment.prod.ts @@ -1,4 +1,6 @@ export const environment = { production: true, hmr: false, + // no string is the base from where the app is currently served + backendBaseUrl: '', }; diff --git a/EnoLandingPageBackend/ClientApp/src/environments/environment.ts b/EnoLandingPageBackend/ClientApp/src/environments/environment.ts index 9a9e9c4..31faca5 100644 --- a/EnoLandingPageBackend/ClientApp/src/environments/environment.ts +++ b/EnoLandingPageBackend/ClientApp/src/environments/environment.ts @@ -5,6 +5,8 @@ export const environment = { production: false, hmr: true, + // no string is the base from where the app is currently served + backendBaseUrl: '', }; /* diff --git a/EnoLandingPageBackend/ClientApp/swagger.json b/EnoLandingPageBackend/ClientApp/swagger.json new file mode 100644 index 0000000..67b33f8 --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/swagger.json @@ -0,0 +1,288 @@ +{ + "openapi": "3.0.1", + "info": { + "title": "EnoLandingPage", + "version": "v1" + }, + "paths": { + "/api/Account/Login": { + "get": { + "tags": ["Account"], + "summary": "Login to the Portal.", + "parameters": [ + { + "name": "redirectUri", + "in": "query", + "description": "The URL the User will be redirected after succesfull login.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/Account/OAuth2Redirect": { + "get": { + "tags": ["Account"], + "parameters": [ + { + "name": "redirectUri", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/Account/Info": { + "get": { + "tags": ["Account"], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/Account/VpnConfig": { + "get": { + "tags": ["Account"], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/Account/CheckIn": { + "post": { + "tags": ["Account"], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/Admin/BootVm": { + "get": { + "tags": ["Admin"], + "parameters": [ + { + "name": "adminSecret", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "teamId", + "in": "query", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/Admin/CtfJson": { + "get": { + "tags": ["Admin"], + "parameters": [ + { + "name": "adminSecret", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/Data/CtfInfo": { + "get": { + "tags": ["Data"], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/CtfInfoMessage" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/CtfInfoMessage" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/CtfInfoMessage" + } + } + } + } + } + } + }, + "/api/Data/Teams": { + "get": { + "tags": ["Data"], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/TeamsMessage" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/TeamsMessage" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/TeamsMessage" + } + } + } + } + } + } + }, + "/api/Data/IPs": { + "get": { + "tags": ["Data"], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/EnoEngine": { + "get": { + "tags": ["EnoEngine"], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/Vulnbox/StartVulnbox": { + "post": { + "tags": ["Vulnbox"], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/Vulnbox/ResetVulnbox": { + "post": { + "tags": ["Vulnbox"], + "responses": { + "200": { + "description": "Success" + } + } + } + } + }, + "components": { + "schemas": { + "CtfInfoMessage": { + "type": "object", + "properties": { + "startTime": { + "type": "string", + "format": "date-time" + }, + "registrationCloseOffset": { + "type": "integer", + "format": "int64" + }, + "checkInBeginOffset": { + "type": "integer", + "format": "int64" + }, + "checkInEndOffset": { + "type": "integer", + "format": "int64" + } + }, + "additionalProperties": false + }, + "TeamMessage": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "ctftimeId": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "logoUrl": { + "type": "string", + "nullable": true + }, + "countryCode": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "TeamsMessage": { + "type": "object", + "properties": { + "confirmedTeams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TeamMessage" + }, + "nullable": true + }, + "registeredTeams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TeamMessage" + }, + "nullable": true + } + }, + "additionalProperties": false + } + } + } +} diff --git a/EnoLandingPageBackend/ClientApp/tsconfig.json b/EnoLandingPageBackend/ClientApp/tsconfig.json index 6df8283..dd6465d 100644 --- a/EnoLandingPageBackend/ClientApp/tsconfig.json +++ b/EnoLandingPageBackend/ClientApp/tsconfig.json @@ -2,6 +2,12 @@ { "compileOnSave": false, "compilerOptions": { + "paths": { + "backend-api": [ + "dist/backend-api/backend-api", + "dist/backend-api" + ] + }, "baseUrl": "./", "outDir": "./dist/out-tsc", "forceConsistentCasingInFileNames": true, diff --git a/EnoLandingPageBackend/Controllers/DataController.cs b/EnoLandingPageBackend/Controllers/DataController.cs index 701bd0a..254aec9 100644 --- a/EnoLandingPageBackend/Controllers/DataController.cs +++ b/EnoLandingPageBackend/Controllers/DataController.cs @@ -27,7 +27,7 @@ public DataController(LandingPageSettings settings, LandingPageDatabase db, ILog } [HttpGet] - public IActionResult CtfInfo() + public ActionResult CtfInfo() { return this.Ok(new CtfInfoMessage( this.settings.StartTime.ToUniversalTime(), @@ -37,7 +37,7 @@ public IActionResult CtfInfo() } [HttpGet] - public async Task Teams() + public async Task> Teams() { var teams = await this.db.GetTeams(this.HttpContext.RequestAborted); return this.Json( From 501e520ef942fb268ab8c4884da37a861b41bf6d Mon Sep 17 00:00:00 2001 From: Daniel Habenicht Date: Sun, 13 Jun 2021 04:01:24 +0200 Subject: [PATCH 012/118] add mainpage --- .../ClientApp/package-lock.json | 48 ++++ EnoLandingPageBackend/ClientApp/package.json | 4 + .../ClientApp/src/app/app-routing.module.ts | 19 +- .../ClientApp/src/app/app.component.html | 9 +- .../ClientApp/src/app/app.component.scss | 4 + .../ClientApp/src/app/app.component.ts | 8 +- .../ClientApp/src/app/app.module.ts | 15 +- .../ClientApp/src/app/material.module.ts | 83 ++++++ .../app-navigation.component.html | 151 +++++++++++ .../app-navigation.component.scss | 21 ++ .../app-navigation.component.spec.ts | 25 ++ .../app-navigation.component.ts | 34 +++ .../app-navigation/app-navigation.module.ts | 28 +++ .../src/app/pages/root/root.component.html | 5 + .../src/app/pages/root/root.component.scss | 4 + .../src/app/pages/root/root.component.spec.ts | 25 ++ .../src/app/pages/root/root.component.ts | 15 ++ .../src/app/pages/root/root.module.ts | 15 ++ .../src/app/services/theme.service.spec.ts | 16 ++ .../src/app/services/theme.service.ts | 24 ++ .../app/shared/models/enumberables/theme.ts | 4 + .../src/app/shared/states/App.state.ts | 96 +++++++ .../src/environments/environment.prod.ts | 5 +- .../ClientApp/src/environments/environment.ts | 5 +- .../src/environments/environmentInterfaces.ts | 19 ++ .../ClientApp/src/index.html | 5 +- .../ClientApp/src/styles.scss | 237 +++++++++++++++++- 27 files changed, 909 insertions(+), 15 deletions(-) create mode 100644 EnoLandingPageBackend/ClientApp/src/app/material.module.ts create mode 100644 EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.html create mode 100644 EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.scss create mode 100644 EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.spec.ts create mode 100644 EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.ts create mode 100644 EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.module.ts create mode 100644 EnoLandingPageBackend/ClientApp/src/app/pages/root/root.component.html create mode 100644 EnoLandingPageBackend/ClientApp/src/app/pages/root/root.component.scss create mode 100644 EnoLandingPageBackend/ClientApp/src/app/pages/root/root.component.spec.ts create mode 100644 EnoLandingPageBackend/ClientApp/src/app/pages/root/root.component.ts create mode 100644 EnoLandingPageBackend/ClientApp/src/app/pages/root/root.module.ts create mode 100644 EnoLandingPageBackend/ClientApp/src/app/services/theme.service.spec.ts create mode 100644 EnoLandingPageBackend/ClientApp/src/app/services/theme.service.ts create mode 100644 EnoLandingPageBackend/ClientApp/src/app/shared/models/enumberables/theme.ts create mode 100644 EnoLandingPageBackend/ClientApp/src/app/shared/states/App.state.ts create mode 100644 EnoLandingPageBackend/ClientApp/src/environments/environmentInterfaces.ts diff --git a/EnoLandingPageBackend/ClientApp/package-lock.json b/EnoLandingPageBackend/ClientApp/package-lock.json index 8a8fd43..89994e5 100644 --- a/EnoLandingPageBackend/ClientApp/package-lock.json +++ b/EnoLandingPageBackend/ClientApp/package-lock.json @@ -151,6 +151,23 @@ "tslib": "^2.1.0" } }, + "@angular/cdk": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-12.0.4.tgz", + "integrity": "sha512-NX/1kEc6ndyEHjGcMtMJYEjwmoURuwRSqKJLbGcHTUwXuuR+hfDP/vU1XDOeXNC80SV+0B4BpJnREkINILfYKw==", + "requires": { + "parse5": "^5.0.0", + "tslib": "^2.1.0" + }, + "dependencies": { + "parse5": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", + "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", + "optional": true + } + } + }, "@angular/cli": { "version": "12.0.4", "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-12.0.4.tgz", @@ -322,6 +339,14 @@ "tslib": "^2.1.0" } }, + "@angular/material": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-12.0.4.tgz", + "integrity": "sha512-pvfYEeUCLR7EmA6R/kkXz5jfl+RHwh3AS9X9kWARWIOzA7p0hG9ApoFT5KCofTBNp0nukau1QoGR4WGla6wWvQ==", + "requires": { + "tslib": "^2.1.0" + } + }, "@angular/platform-browser": { "version": "12.0.4", "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-12.0.4.tgz", @@ -1649,6 +1674,21 @@ "enhanced-resolve": "5.7.0" } }, + "@ngxs/store": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/@ngxs/store/-/store-3.7.2.tgz", + "integrity": "sha512-1cnAjHOGCovfvhjtcAWBajrMXos97Un3c8ekKoS8FIHnq3aQOzY/ePspDRNi9kTcuBJ/r/xl097JC1ssEuNbyg==", + "requires": { + "tslib": "^1.9.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, "@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -2199,6 +2239,14 @@ } } }, + "@w11k/ngx-componentdestroyed": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@w11k/ngx-componentdestroyed/-/ngx-componentdestroyed-5.0.2.tgz", + "integrity": "sha512-njpK7h6hSpF8LQp2bayb47T7rTxOwx7745TOiUP88y8YAT2JOY5OeJpYqlK2WrQQBeD7CT+DxozD6yNBN283dA==", + "requires": { + "rxjs": ">=6.5.0" + } + }, "@webassemblyjs/ast": { "version": "1.11.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.0.tgz", diff --git a/EnoLandingPageBackend/ClientApp/package.json b/EnoLandingPageBackend/ClientApp/package.json index 2266dc7..82a8b50 100644 --- a/EnoLandingPageBackend/ClientApp/package.json +++ b/EnoLandingPageBackend/ClientApp/package.json @@ -12,13 +12,17 @@ "private": true, "dependencies": { "@angular/animations": "~12.0.4", + "@angular/cdk": "^12.0.4", "@angular/common": "~12.0.4", "@angular/compiler": "~12.0.4", "@angular/core": "~12.0.4", "@angular/forms": "~12.0.4", + "@angular/material": "^12.0.4", "@angular/platform-browser": "~12.0.4", "@angular/platform-browser-dynamic": "~12.0.4", "@angular/router": "~12.0.4", + "@ngxs/store": "^3.7.2", + "@w11k/ngx-componentdestroyed": "^5.0.2", "rxjs": "~6.6.0", "tslib": "^2.1.0", "zone.js": "~0.11.4" diff --git a/EnoLandingPageBackend/ClientApp/src/app/app-routing.module.ts b/EnoLandingPageBackend/ClientApp/src/app/app-routing.module.ts index 0297262..24d92a2 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/app-routing.module.ts +++ b/EnoLandingPageBackend/ClientApp/src/app/app-routing.module.ts @@ -1,10 +1,21 @@ import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; +import { environment } from 'src/environments/environment'; +import { RootComponent } from './pages/root/root.component'; -const routes: Routes = []; +const routes: Routes = [ + { + path: '**', + component: RootComponent, + }, +]; @NgModule({ - imports: [RouterModule.forRoot(routes)], - exports: [RouterModule] + imports: [ + RouterModule.forRoot(routes, { + enableTracing: environment.routeTracing, + }), + ], + exports: [RouterModule], }) -export class AppRoutingModule { } +export class AppRoutingModule {} diff --git a/EnoLandingPageBackend/ClientApp/src/app/app.component.html b/EnoLandingPageBackend/ClientApp/src/app/app.component.html index e817390..5b98b5b 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/app.component.html +++ b/EnoLandingPageBackend/ClientApp/src/app/app.component.html @@ -1,3 +1,6 @@ -Hi! - -{{ data | json }} + + +
+ +
+
diff --git a/EnoLandingPageBackend/ClientApp/src/app/app.component.scss b/EnoLandingPageBackend/ClientApp/src/app/app.component.scss index e69de29..4b9197f 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/app.component.scss +++ b/EnoLandingPageBackend/ClientApp/src/app/app.component.scss @@ -0,0 +1,4 @@ +#content { + flex: 1; + overflow: auto; +} diff --git a/EnoLandingPageBackend/ClientApp/src/app/app.component.ts b/EnoLandingPageBackend/ClientApp/src/app/app.component.ts index c2180cb..f2eacd5 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/app.component.ts +++ b/EnoLandingPageBackend/ClientApp/src/app/app.component.ts @@ -1,5 +1,7 @@ import { Component } from '@angular/core'; +import { Store } from '@ngxs/store'; import { DataService } from 'projects/backend-api/src/lib'; +import { InitTheme } from './shared/states/App.state'; @Component({ selector: 'app-root', templateUrl: './app.component.html', @@ -7,10 +9,12 @@ import { DataService } from 'projects/backend-api/src/lib'; }) export class AppComponent { public data: any; - constructor(private dataService: DataService) { + constructor(private store: Store, private dataService: DataService) { this.dataService.apiDataCtfInfoGet().subscribe((data) => { this.data = data; }); } - ngOnInit() {} + ngOnInit() { + this.store.dispatch(new InitTheme()); + } } diff --git a/EnoLandingPageBackend/ClientApp/src/app/app.module.ts b/EnoLandingPageBackend/ClientApp/src/app/app.module.ts index 635d4b6..3bc9267 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/app.module.ts +++ b/EnoLandingPageBackend/ClientApp/src/app/app.module.ts @@ -9,7 +9,12 @@ import { environment } from 'src/environments/environment'; import { AppRoutingModule } from './app-routing.module'; import { AppComponent } from './app.component'; import { HttpClientModule } from '@angular/common/http'; - +import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; +import { AppNavigationModule } from 'src/app/modules/app-navigation/app-navigation.module'; +import { MaterialModule } from './material.module'; +import { NgxsModule } from '@ngxs/store'; +import { AppState } from './shared/states/App.state'; +import { ThemeService } from './services/theme.service'; export function apiConfigFactory(): Configuration { const params: ConfigurationParameters = { basePath: environment.backendBaseUrl, @@ -23,10 +28,16 @@ export function apiConfigFactory(): Configuration { imports: [ BrowserModule, AppRoutingModule, + AppNavigationModule, + MaterialModule, HttpClientModule, ApiModule.forRoot(apiConfigFactory), + NgxsModule.forRoot([AppState], { + developmentMode: !environment.production, + }), + BrowserAnimationsModule, ], - providers: [], + providers: [ThemeService], bootstrap: [AppComponent], }) export class AppModule {} diff --git a/EnoLandingPageBackend/ClientApp/src/app/material.module.ts b/EnoLandingPageBackend/ClientApp/src/app/material.module.ts new file mode 100644 index 0000000..05201df --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/src/app/material.module.ts @@ -0,0 +1,83 @@ +import { DragDropModule } from '@angular/cdk/drag-drop'; +import { ScrollingModule } from '@angular/cdk/scrolling'; +import { NgModule } from '@angular/core'; +import { MatBadgeModule } from '@angular/material/badge'; +//Angular Material +import { MatBottomSheetModule } from '@angular/material/bottom-sheet'; +import { MatButtonModule } from '@angular/material/button'; +import { MatCardModule } from '@angular/material/card'; +import { MatCheckboxModule } from '@angular/material/checkbox'; +import { MatChipsModule } from '@angular/material/chips'; +import { MatRippleModule } from '@angular/material/core'; +import { MatDialogModule } from '@angular/material/dialog'; +import { MatGridListModule } from '@angular/material/grid-list'; +import { MatIconModule } from '@angular/material/icon'; +import { MatListModule } from '@angular/material/list'; +import { MatMenuModule } from '@angular/material/menu'; +import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; +import { MatSelectModule } from '@angular/material/select'; +import { MatSidenavModule } from '@angular/material/sidenav'; +import { MatSnackBarModule } from '@angular/material/snack-bar'; +import { MatSortModule } from '@angular/material/sort'; +import { MatTableModule } from '@angular/material/table'; +import { MatTabsModule } from '@angular/material/tabs'; +import { MatToolbarModule } from '@angular/material/toolbar'; +import { MatTooltipModule } from '@angular/material/tooltip'; +import { MatTreeModule } from '@angular/material/tree'; + +@NgModule({ + imports: [ + MatButtonModule, + MatBadgeModule, + MatSnackBarModule, + MatTooltipModule, + MatSidenavModule, + MatIconModule, + MatToolbarModule, + MatListModule, + MatMenuModule, + MatCardModule, + MatTableModule, + MatSortModule, + MatRippleModule, + MatDialogModule, + MatSelectModule, + MatCheckboxModule, + MatProgressSpinnerModule, + MatChipsModule, + MatGridListModule, + MatTabsModule, + MatTreeModule, + MatBottomSheetModule, + ScrollingModule, + DragDropModule, + ], + providers: [], + exports: [ + MatButtonModule, + MatBadgeModule, + MatSnackBarModule, + MatTooltipModule, + MatSidenavModule, + MatIconModule, + MatToolbarModule, + MatListModule, + MatMenuModule, + MatCardModule, + MatTableModule, + MatSortModule, + MatRippleModule, + MatDialogModule, + MatSelectModule, + MatCheckboxModule, + MatProgressSpinnerModule, + MatChipsModule, + MatGridListModule, + MatTabsModule, + MatTreeModule, + MatBottomSheetModule, + ScrollingModule, + DragDropModule, + ], +}) +export class MaterialModule {} diff --git a/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.html b/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.html new file mode 100644 index 0000000..39acf38 --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.html @@ -0,0 +1,151 @@ + + + + + + + + + + + + + diff --git a/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.scss b/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.scss new file mode 100644 index 0000000..c7ed055 --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.scss @@ -0,0 +1,21 @@ +mat-sidenav-container { + width: 100%; + + mat-sidenav { + #pb-nav-mobile { + display: flex; + flex-flow: column; + } + } + + mat-sidenav-content { + height: 100%; + width: 100%; + display: flex; + flex-flow: column; + + .navigation { + z-index: 1; + } + } +} diff --git a/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.spec.ts b/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.spec.ts new file mode 100644 index 0000000..aa42dd9 --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { AppNavigationComponent } from './app-navigation.component'; + +describe('AppNavigationComponent', () => { + let component: AppNavigationComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ AppNavigationComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(AppNavigationComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.ts b/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.ts new file mode 100644 index 0000000..a557718 --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.ts @@ -0,0 +1,34 @@ +import { Component, OnDestroy, OnInit } from '@angular/core'; +import { MatDialog } from '@angular/material/dialog'; +import { NavigationEnd, Router } from '@angular/router'; +import { Select } from '@ngxs/store'; +import { untilComponentDestroyed } from '@w11k/ngx-componentdestroyed'; +import { Observable } from 'rxjs'; +import { filter, map } from 'rxjs/operators'; +import { MatBadgeModule } from '@angular/material/badge'; +import { AppState } from 'src/app/shared/states/App.state'; +import { environment } from 'src/environments/environment'; +import { EnvironmentInterface } from 'src/environments/environmentInterfaces'; +import { Theme } from 'src/app/shared/models/enumberables/Theme'; + +@Component({ + selector: 'app-navigation', + templateUrl: './app-navigation.component.html', + styleUrls: ['./app-navigation.component.scss'], + host: { class: 'pb-expand' }, +}) +export class AppNavigationComponent implements OnInit, OnDestroy { + public environment: EnvironmentInterface = environment; + + @Select(AppState.activeTheme) + public themeValue$!: Observable; + + constructor( + private router: Router, + public dialog: MatDialog, + public badge: MatBadgeModule + ) {} + + public ngOnInit() {} + public ngOnDestroy() {} +} diff --git a/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.module.ts b/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.module.ts new file mode 100644 index 0000000..c3c46b7 --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.module.ts @@ -0,0 +1,28 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { AppNavigationComponent } from './app-navigation.component'; +import { RouterModule } from '@angular/router'; +import { MatSidenavModule } from '@angular/material/sidenav'; +import { MatBadgeModule } from '@angular/material/badge'; +import { MatToolbarModule } from '@angular/material/toolbar'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { MatMenuModule } from '@angular/material/menu'; +import { MatListModule } from '@angular/material/list'; + +@NgModule({ + declarations: [AppNavigationComponent], + imports: [ + CommonModule, + MatSidenavModule, + MatBadgeModule, + MatToolbarModule, + MatButtonModule, + MatIconModule, + MatMenuModule, + MatListModule, + RouterModule, + ], + exports: [AppNavigationComponent], +}) +export class AppNavigationModule {} diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/root/root.component.html b/EnoLandingPageBackend/ClientApp/src/app/pages/root/root.component.html new file mode 100644 index 0000000..44eb394 --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/root/root.component.html @@ -0,0 +1,5 @@ + diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/root/root.component.scss b/EnoLandingPageBackend/ClientApp/src/app/pages/root/root.component.scss new file mode 100644 index 0000000..87f2d60 --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/root/root.component.scss @@ -0,0 +1,4 @@ +#mainpage-iframe { + width: 100%; + overflow: hidden; +} diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/root/root.component.spec.ts b/EnoLandingPageBackend/ClientApp/src/app/pages/root/root.component.spec.ts new file mode 100644 index 0000000..06fe9e6 --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/root/root.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { RootComponent } from './root.component'; + +describe('RootComponent', () => { + let component: RootComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ RootComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(RootComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/root/root.component.ts b/EnoLandingPageBackend/ClientApp/src/app/pages/root/root.component.ts new file mode 100644 index 0000000..e1afbfc --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/root/root.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-root', + templateUrl: './root.component.html', + styleUrls: ['./root.component.scss'] +}) +export class RootComponent implements OnInit { + + constructor() { } + + ngOnInit(): void { + } + +} diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/root/root.module.ts b/EnoLandingPageBackend/ClientApp/src/app/pages/root/root.module.ts new file mode 100644 index 0000000..6ed2485 --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/root/root.module.ts @@ -0,0 +1,15 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { RootComponent } from './root.component'; + + + +@NgModule({ + declarations: [ + RootComponent + ], + imports: [ + CommonModule + ] +}) +export class RootModule { } diff --git a/EnoLandingPageBackend/ClientApp/src/app/services/theme.service.spec.ts b/EnoLandingPageBackend/ClientApp/src/app/services/theme.service.spec.ts new file mode 100644 index 0000000..1c2957b --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/src/app/services/theme.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { ThemeService } from './theme.service'; + +describe('ThemeService', () => { + let service: ThemeService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(ThemeService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/EnoLandingPageBackend/ClientApp/src/app/services/theme.service.ts b/EnoLandingPageBackend/ClientApp/src/app/services/theme.service.ts new file mode 100644 index 0000000..57f343c --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/src/app/services/theme.service.ts @@ -0,0 +1,24 @@ +import { OverlayContainer } from '@angular/cdk/overlay'; +import { Injectable } from '@angular/core'; +import { Theme } from 'src/app/shared/models/enumberables/Theme'; + +@Injectable() +export class ThemeService { + constructor(private overlayContainer: OverlayContainer) {} + public setTheme(themeClass: Theme) { + const bodyClassList = document.body.classList; + this.removeThemesFromClassList(bodyClassList); + bodyClassList.add(themeClass); + } + + private removeThemesFromClassList(classList: DOMTokenList) { + const classes = this.getThemeClassesFromClassList(classList); + classList.remove(...classes); + } + + private getThemeClassesFromClassList(classList: DOMTokenList): string[] { + return Array.from(classList).filter((item) => { + return item.includes('_theme'); + }); + } +} diff --git a/EnoLandingPageBackend/ClientApp/src/app/shared/models/enumberables/theme.ts b/EnoLandingPageBackend/ClientApp/src/app/shared/models/enumberables/theme.ts new file mode 100644 index 0000000..79a3322 --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/src/app/shared/models/enumberables/theme.ts @@ -0,0 +1,4 @@ +export enum Theme { + default_light = 'default_light_theme', + default_dark = 'default_dark_theme', +} diff --git a/EnoLandingPageBackend/ClientApp/src/app/shared/states/App.state.ts b/EnoLandingPageBackend/ClientApp/src/app/shared/states/App.state.ts new file mode 100644 index 0000000..83d6188 --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/src/app/shared/states/App.state.ts @@ -0,0 +1,96 @@ +import { Injectable } from '@angular/core'; +import { Action, Selector, State, StateContext } from '@ngxs/store'; +import { ThemeService } from 'src/app/services/theme.service'; +import { Theme } from 'src/app/shared/models/enumberables/Theme'; + +export class ServiceWorkerNotificationDisplayed { + public static readonly type: string = + '[App State] Service Worker Notification displayed'; +} + +export class SetVersion { + public static readonly type: string = '[App State] Set Version'; + constructor(public version: string) {} +} +export class SetDisplayedNotificationVersion { + public static readonly type: string = + '[App State] Set Displayed Notification Version'; + constructor(public version: number) {} +} + +export class SetTheme { + public static readonly type: string = '[App State] Set activeTheme'; + constructor(public activeTheme: Theme) {} +} + +export class InitTheme { + public static readonly type: string = '[App State] Init activeTheme'; +} + +export interface AppStateModel { + serviceWorkerNotificationDisplayed: boolean; + version: string; + activeTheme: Theme; +} + +@State({ + name: 'appstate', + defaults: { + serviceWorkerNotificationDisplayed: false, + version: '0.0.0', + activeTheme: Theme.default_dark, + }, +}) +@Injectable() +export class AppState { + constructor(private themeService: ThemeService) {} + @Selector() + public static serviceWorkerNotificationDisplayed( + state: AppStateModel + ): boolean { + return state.serviceWorkerNotificationDisplayed; + } + + @Selector() + public static version(state: AppStateModel): string { + return state.version; + } + @Selector() + public static activeTheme(state: AppStateModel): Theme { + return state.activeTheme; + } + + @Action(ServiceWorkerNotificationDisplayed) + public serviceWorkerNotificationDisplayed(ctx: StateContext) { + const state = ctx.getState(); + ctx.setState({ + ...state, + serviceWorkerNotificationDisplayed: true, + }); + } + + @Action(SetVersion) + public setVersion(ctx: StateContext, action: SetVersion) { + const state = ctx.getState(); + ctx.setState({ + ...state, + version: action.version, + }); + } + + @Action(SetTheme) + public setTheme(ctx: StateContext, action: SetTheme) { + const state = ctx.getState(); + this.themeService.setTheme(action.activeTheme); + ctx.setState({ + ...state, + activeTheme: action.activeTheme, + }); + } + + @Action(InitTheme) + public initTheme(ctx: StateContext) { + const state = ctx.getState(); + this.themeService.setTheme(state.activeTheme); + } +} diff --git a/EnoLandingPageBackend/ClientApp/src/environments/environment.prod.ts b/EnoLandingPageBackend/ClientApp/src/environments/environment.prod.ts index e87c33f..b5ed721 100644 --- a/EnoLandingPageBackend/ClientApp/src/environments/environment.prod.ts +++ b/EnoLandingPageBackend/ClientApp/src/environments/environment.prod.ts @@ -1,6 +1,9 @@ -export const environment = { +import { EnvironmentInterface } from './environmentInterfaces'; + +export const environment: EnvironmentInterface = { production: true, hmr: false, // no string is the base from where the app is currently served backendBaseUrl: '', + routeTracing: false, }; diff --git a/EnoLandingPageBackend/ClientApp/src/environments/environment.ts b/EnoLandingPageBackend/ClientApp/src/environments/environment.ts index 31faca5..ff6a08b 100644 --- a/EnoLandingPageBackend/ClientApp/src/environments/environment.ts +++ b/EnoLandingPageBackend/ClientApp/src/environments/environment.ts @@ -2,11 +2,14 @@ // `ng build` replaces `environment.ts` with `environment.prod.ts`. // The list of file replacements can be found in `angular.json`. -export const environment = { +import { EnvironmentInterface } from './environmentInterfaces'; + +export const environment: EnvironmentInterface = { production: false, hmr: true, // no string is the base from where the app is currently served backendBaseUrl: '', + routeTracing: false, }; /* diff --git a/EnoLandingPageBackend/ClientApp/src/environments/environmentInterfaces.ts b/EnoLandingPageBackend/ClientApp/src/environments/environmentInterfaces.ts new file mode 100644 index 0000000..2783111 --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/src/environments/environmentInterfaces.ts @@ -0,0 +1,19 @@ +export interface EnvironmentInterface { + /** + * Determines if this is a production build or not. + * Should only be used as a last resort for AoT-Compilation errors. + */ + production: boolean; + /** + * Switch for activating Angular Route Tracing + */ + routeTracing: boolean; + /** + * Whether Hot Module Reloading is enabled or not. + */ + hmr: boolean; + /** + * The Backend Base Url + */ + backendBaseUrl: string; +} diff --git a/EnoLandingPageBackend/ClientApp/src/index.html b/EnoLandingPageBackend/ClientApp/src/index.html index d72b69a..9d0e502 100644 --- a/EnoLandingPageBackend/ClientApp/src/index.html +++ b/EnoLandingPageBackend/ClientApp/src/index.html @@ -6,8 +6,11 @@ + + + - + diff --git a/EnoLandingPageBackend/ClientApp/src/styles.scss b/EnoLandingPageBackend/ClientApp/src/styles.scss index 90d4ee0..67d96d1 100644 --- a/EnoLandingPageBackend/ClientApp/src/styles.scss +++ b/EnoLandingPageBackend/ClientApp/src/styles.scss @@ -1 +1,236 @@ -/* You can add global styles to this file, and also import other style files */ +// Custom Theming for Angular Material +// For more information: https://material.angular.io/guide/theming +@use '~@angular/material' as mat; + +// Plus imports for other components in your app. + +// $custom-typography: mat-typography-config( +// $font-family: 'Roboto, "Helvetica Neue", sans-serif', +// $display-4: mat-typography-level(112px, 112px, 300), +// $display-3: mat-typography-level(56px, 56px, 400), +// $display-2: mat-typography-level(45px, 48px, 400), +// $display-1: mat-typography-level(34px, 40px, 400), +// $headline: mat-typography-level(24px, 32px, 400), +// $title: mat-typography-level(20px, 32px, 500), +// $subheading-2: mat-typography-level(16px, 28px, 400), +// $subheading-1: mat-typography-level(15px, 24px, 400), +// $body-2: mat-typography-level(14px, 24px, 500), +// $body-1: mat-typography-level(14px, 20px, 400), +// $caption: mat-typography-level(12px, 20px, 400), +// $button: mat-typography-level(14px, 14px, 500), +// $input: mat-typography-level(inherit, 1.125, 400), +// ); + +// Include the common styles for Angular Material. We include this here so that you only +// have to load a single css file for Angular Material in your app. +// Be sure that you only ever include this mixin once! +@include mat.core(); + +// Define the palettes for your theme using the Material Design palettes available in palette.scss +// (imported above). For each palette, you can optionally specify a default, lighter, and darker +// hue. Available color palettes: https://material.io/design/color/ +// Make your own: http://mcg.mbitson.com/#!?mcgpalette0=%233f51b5 + +$our-own-palette-primary: ( + 50: #e8eaf6, + 100: #c5cbe9, + 200: #9fa8da, + 300: #7985cb, + 400: #5c6bc0, + 500: #3f51b5, + 600: #394aae, + 700: #3140a5, + 800: #29379d, + 900: #1b278d, + A100: #c6cbff, + A200: #939dff, + A400: #606eff, + A700: #4757ff, + contrast: ( + 50: #000000, + 100: #000000, + 200: #000000, + 300: #000000, + 400: #ffffff, + 500: #ffffff, + 600: #ffffff, + 700: #ffffff, + 800: #ffffff, + 900: #ffffff, + A100: #000000, + A200: #000000, + A400: #ffffff, + A700: #ffffff, + ), +); + +$our-own-palette-secondary: ( + 50: #e8eaf6, + 100: #c5cbe9, + 200: #9fa8da, + 300: #7985cb, + 400: #5c6bc0, + 500: #3f51b5, + 600: #394aae, + 700: #3140a5, + 800: #29379d, + 900: #1b278d, + A100: #c6cbff, + A200: #939dff, + A400: #606eff, + A700: #4757ff, + contrast: ( + 50: #000000, + 100: #000000, + 200: #000000, + 300: #000000, + 400: #ffffff, + 500: #ffffff, + 600: #ffffff, + 700: #ffffff, + 800: #ffffff, + 900: #ffffff, + A100: #000000, + A200: #000000, + A400: #ffffff, + A700: #ffffff, + ), +); + +$ClientApp-primary: mat.define-palette($our-own-palette-primary); +$ClientApp-accent: mat.define-palette($our-own-palette-secondary); + +// The warn palette is optional (defaults to red). +$ClientApp-warn: mat.define-palette(mat.$red-palette); + +// Create the theme object. A theme consists of configurations for individual +// theming systems such as "color" or "typography". +$default-light: mat.define-light-theme( + ( + color: ( + primary: $ClientApp-primary, + accent: $ClientApp-accent, + warn: $ClientApp-warn, + ), + ) +); + +$default-dark: mat.define-dark-theme( + ( + color: ( + primary: $ClientApp-primary, + accent: $ClientApp-accent, + warn: $ClientApp-warn, + ), + ) +); + +// Include theme styles for core and each component used in your app. +// Alternatively, you can import and @include the theme mixins for each component +// that you are using. + +.default_light_theme { + @include mat.all-component-themes($default-light); +} + +.default_dark_theme { + @include mat.all-component-themes($default-dark); +} + +html, +body, +app-root { + display: flex; + width: 100%; + height: 100%; + margin: 0; + padding: 0; +} + +.pb-expand { + width: 100%; + height: 100%; + display: flex; +} + +.pb-spacer { + flex: 1; + flex-grow: 1; +} + +$small-breakpoint: 468px; +$med-breakpoint: 768px; +$big-breakpoint: 1024px; + +@mixin smaller { + @media (max-width: #{$small-breakpoint - 1px}) { + @content; + } +} + +@mixin small-med { + @media (min-width: #{$small-breakpoint}) and (max-width: #{$med-breakpoint - 1px}) { + @content; + } +} + +@mixin med-big { + @media (min-width: #{$med-breakpoint}) and (max-width: #{$big-breakpoint}) { + @content; + } +} + +@mixin bigger { + @media (min-width: #{$big-breakpoint}) { + @content; + } +} + +@mixin below-small { + @media (max-width: #{$small-breakpoint - 1px}) { + @content; + } +} + +@mixin below-med { + @media (max-width: #{$med-breakpoint - 1px}) { + @content; + } +} + +@mixin below-big { + @media (max-width: #{$big-breakpoint - 1px}) { + @content; + } +} + +@mixin on-med-and-up { + @media (min-width: #{$med-breakpoint}) { + @content; + } +} + +//Media query classes +@include on-med-and-up { + .pb-hide-on-med-and-up { + display: none; + } +} + +@include below-small { + .pb-hide-below-small { + display: none; + } +} + +@include below-med { + .pb-hide-below-med { + display: none; + } +} + +@include below-big { + .pb-hide-below-big { + display: none; + } +} From 2c294e1e6a0581e9f5c1f3b14a382e7c0bd16669 Mon Sep 17 00:00:00 2001 From: Daniel Habenicht Date: Tue, 15 Jun 2021 20:00:42 +0200 Subject: [PATCH 013/118] add frontend pages * update api Co-authored-by: Adrian Gronau --- .../ClientApp/package-lock.json | 8 + EnoLandingPageBackend/ClientApp/package.json | 1 + .../src/lib/.openapi-generator/FILES | 10 + .../backend-api/src/lib/api.module.ts | 1 + .../src/lib/api/account.service.ts | 14 +- .../src/lib/api/account.serviceInterface.ts | 3 +- .../projects/backend-api/src/lib/api/api.ts | 5 +- .../backend-api/src/lib/api/data.service.ts | 1 + .../src/lib/api/data.serviceInterface.ts | 2 +- .../src/lib/api/scoreboard.service.ts | 132 + .../lib/api/scoreboard.serviceInterface.ts | 33 + .../src/lib/api/scoreboardInfo.service.ts | 132 + .../api/scoreboardInfo.serviceInterface.ts | 33 + .../src/lib/model/landingPageVulnboxStatus.ts | 21 + .../backend-api/src/lib/model/models.ts | 8 + .../backend-api/src/lib/model/scoreboard.ts | 24 + .../src/lib/model/scoreboardFirstBlood.ts | 21 + .../src/lib/model/scoreboardInfo.ts | 21 + .../src/lib/model/scoreboardInfoTeam.ts | 20 + .../src/lib/model/scoreboardService.ts | 21 + .../src/lib/model/scoreboardTeam.ts | 26 + .../lib/model/scoreboardTeamServiceDetails.ts | 23 + .../src/lib/model/serviceStatus.ts | 24 + .../src/lib/model/teamDetailsMessage.ts | 25 + .../backend-api/src/lib/tsconfig.json | 51 +- .../ClientApp/src/app/app-routing.module.ts | 19 +- .../ClientApp/src/app/app.component.scss | 1 + .../ClientApp/src/app/app.component.ts | 46 +- .../ClientApp/src/app/app.module.ts | 8 + .../app-navigation.component.html | 9 +- .../app-navigation.component.ts | 2 + .../page-scoreboard.component.html | 51 + .../page-scoreboard.component.scss | 99 + .../page-scoreboard.component.spec.ts | 25 + .../page-scoreboard.component.ts | 70 + .../page-scoreboard/page-scoreboard.module.ts | 10 + .../page-teams/page-teams.component.html | 12 + .../page-teams/page-teams.component.scss | 0 .../page-teams/page-teams.component.spec.ts | 25 + .../pages/page-teams/page-teams.component.ts | 18 + .../app/pages/page-teams/page-teams.module.ts | 15 + .../src/app/pages/root/root.component.spec.ts | 13 +- .../src/app/pages/root/root.component.ts | 11 +- .../src/app/pages/root/root.module.ts | 14 +- .../src/app/shared/states/App.state.ts | 2 +- .../ClientApp/src/assets/scoreboard.json | 3076 +++++++++++++++++ EnoLandingPageBackend/ClientApp/swagger.json | 253 +- .../Controllers/AccountController.cs | 4 +- .../Controllers/ScoreboardInfoController.cs | 22 + .../Controllers/VulnboxController.cs | 4 +- .../EnoLandingPageBackend.csproj | 180 +- 51 files changed, 4489 insertions(+), 160 deletions(-) create mode 100644 EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/api/scoreboard.service.ts create mode 100644 EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/api/scoreboard.serviceInterface.ts create mode 100644 EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/api/scoreboardInfo.service.ts create mode 100644 EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/api/scoreboardInfo.serviceInterface.ts create mode 100644 EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/landingPageVulnboxStatus.ts create mode 100644 EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboard.ts create mode 100644 EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboardFirstBlood.ts create mode 100644 EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboardInfo.ts create mode 100644 EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboardInfoTeam.ts create mode 100644 EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboardService.ts create mode 100644 EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboardTeam.ts create mode 100644 EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboardTeamServiceDetails.ts create mode 100644 EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/serviceStatus.ts create mode 100644 EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/teamDetailsMessage.ts create mode 100644 EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.html create mode 100644 EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.scss create mode 100644 EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.spec.ts create mode 100644 EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.ts create mode 100644 EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.module.ts create mode 100644 EnoLandingPageBackend/ClientApp/src/app/pages/page-teams/page-teams.component.html create mode 100644 EnoLandingPageBackend/ClientApp/src/app/pages/page-teams/page-teams.component.scss create mode 100644 EnoLandingPageBackend/ClientApp/src/app/pages/page-teams/page-teams.component.spec.ts create mode 100644 EnoLandingPageBackend/ClientApp/src/app/pages/page-teams/page-teams.component.ts create mode 100644 EnoLandingPageBackend/ClientApp/src/app/pages/page-teams/page-teams.module.ts create mode 100644 EnoLandingPageBackend/ClientApp/src/assets/scoreboard.json create mode 100644 EnoLandingPageBackend/Controllers/ScoreboardInfoController.cs diff --git a/EnoLandingPageBackend/ClientApp/package-lock.json b/EnoLandingPageBackend/ClientApp/package-lock.json index 89994e5..8a028ef 100644 --- a/EnoLandingPageBackend/ClientApp/package-lock.json +++ b/EnoLandingPageBackend/ClientApp/package-lock.json @@ -2518,6 +2518,14 @@ "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", "dev": true }, + "angular-oauth2-oidc": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/angular-oauth2-oidc/-/angular-oauth2-oidc-10.0.3.tgz", + "integrity": "sha512-9wC8I3e3cN6rMBOlo5JB2y3Fd2erp8pJ67t4vEVzyPbnRG6BJ4rreSOznSL9zw/2SjhC9kRV2OfFie29CUCzEg==", + "requires": { + "tslib": "^2.0.0" + } + }, "ansi-colors": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", diff --git a/EnoLandingPageBackend/ClientApp/package.json b/EnoLandingPageBackend/ClientApp/package.json index 82a8b50..f8ab351 100644 --- a/EnoLandingPageBackend/ClientApp/package.json +++ b/EnoLandingPageBackend/ClientApp/package.json @@ -23,6 +23,7 @@ "@angular/router": "~12.0.4", "@ngxs/store": "^3.7.2", "@w11k/ngx-componentdestroyed": "^5.0.2", + "angular-oauth2-oidc": "^10.0.3", "rxjs": "~6.6.0", "tslib": "^2.1.0", "zone.js": "~0.11.4" diff --git a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/.openapi-generator/FILES b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/.openapi-generator/FILES index 96b6840..96e5161 100644 --- a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/.openapi-generator/FILES +++ b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/.openapi-generator/FILES @@ -10,6 +10,8 @@ api/data.service.ts api/data.serviceInterface.ts api/enoEngine.service.ts api/enoEngine.serviceInterface.ts +api/scoreboardInfo.service.ts +api/scoreboardInfo.serviceInterface.ts api/vulnbox.service.ts api/vulnbox.serviceInterface.ts configuration.ts @@ -17,7 +19,15 @@ encoder.ts git_push.sh index.ts model/ctfInfoMessage.ts +model/landingPageVulnboxStatus.ts model/models.ts +model/scoreboard.ts +model/scoreboardFirstBlood.ts +model/scoreboardService.ts +model/scoreboardTeam.ts +model/scoreboardTeamServiceDetails.ts +model/serviceStatus.ts +model/teamDetailsMessage.ts model/teamMessage.ts model/teamsMessage.ts ng-package.json diff --git a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/api.module.ts b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/api.module.ts index 4d26ad4..28cac15 100644 --- a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/api.module.ts +++ b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/api.module.ts @@ -6,6 +6,7 @@ import { AccountService } from './api/account.service'; import { AdminService } from './api/admin.service'; import { DataService } from './api/data.service'; import { EnoEngineService } from './api/enoEngine.service'; +import { ScoreboardInfoService } from './api/scoreboardInfo.service'; import { VulnboxService } from './api/vulnbox.service'; @NgModule({ diff --git a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/api/account.service.ts b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/api/account.service.ts index 4c2bf05..69394a0 100644 --- a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/api/account.service.ts +++ b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/api/account.service.ts @@ -17,6 +17,7 @@ import { HttpClient, HttpHeaders, HttpParams, import { CustomHttpParameterCodec } from '../encoder'; import { Observable } from 'rxjs'; +import { TeamDetailsMessage } from '../model/models'; import { BASE_PATH, COLLECTION_FORMATS } from '../variables'; import { Configuration } from '../configuration'; @@ -130,10 +131,10 @@ export class AccountService implements AccountServiceInterface { * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. * @param reportProgress flag to report request and response progress. */ - public apiAccountInfoGet(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable; - public apiAccountInfoGet(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable>; - public apiAccountInfoGet(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable>; - public apiAccountInfoGet(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: undefined}): Observable { + public apiAccountInfoGet(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json'}): Observable; + public apiAccountInfoGet(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json'}): Observable>; + public apiAccountInfoGet(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json'}): Observable>; + public apiAccountInfoGet(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json'}): Observable { let headers = this.defaultHeaders; @@ -141,6 +142,9 @@ export class AccountService implements AccountServiceInterface { if (httpHeaderAcceptSelected === undefined) { // to determine the Accept header const httpHeaderAccepts: string[] = [ + 'text/plain', + 'application/json', + 'text/json' ]; httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts); } @@ -154,7 +158,7 @@ export class AccountService implements AccountServiceInterface { responseType_ = 'text'; } - return this.httpClient.get(`${this.configuration.basePath}/api/Account/Info`, + return this.httpClient.get(`${this.configuration.basePath}/api/Account/Info`, { responseType: responseType_, withCredentials: this.configuration.withCredentials, diff --git a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/api/account.serviceInterface.ts b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/api/account.serviceInterface.ts index 3599d43..50737b7 100644 --- a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/api/account.serviceInterface.ts +++ b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/api/account.serviceInterface.ts @@ -13,6 +13,7 @@ import { HttpHeaders } from '@angular/comm import { Observable } from 'rxjs'; +import { TeamDetailsMessage } from '../model/models'; import { Configuration } from '../configuration'; @@ -33,7 +34,7 @@ export interface AccountServiceInterface { * * */ - apiAccountInfoGet(extraHttpRequestParams?: any): Observable<{}>; + apiAccountInfoGet(extraHttpRequestParams?: any): Observable; /** * Login to the Portal. diff --git a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/api/api.ts b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/api/api.ts index d963fa1..e48cd46 100644 --- a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/api/api.ts +++ b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/api/api.ts @@ -10,7 +10,10 @@ export * from './data.serviceInterface' export * from './enoEngine.service'; import { EnoEngineService } from './enoEngine.service'; export * from './enoEngine.serviceInterface' +export * from './scoreboardInfo.service'; +import { ScoreboardInfoService } from './scoreboardInfo.service'; +export * from './scoreboardInfo.serviceInterface' export * from './vulnbox.service'; import { VulnboxService } from './vulnbox.service'; export * from './vulnbox.serviceInterface' -export const APIS = [AccountService, AdminService, DataService, EnoEngineService, VulnboxService]; +export const APIS = [AccountService, AdminService, DataService, EnoEngineService, ScoreboardInfoService, VulnboxService]; diff --git a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/api/data.service.ts b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/api/data.service.ts index e1b549a..573e60e 100644 --- a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/api/data.service.ts +++ b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/api/data.service.ts @@ -170,6 +170,7 @@ export class DataService implements DataServiceInterface { } /** + * Get all Teams. * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. * @param reportProgress flag to report request and response progress. */ diff --git a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/api/data.serviceInterface.ts b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/api/data.serviceInterface.ts index 77fa920..c6f3991 100644 --- a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/api/data.serviceInterface.ts +++ b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/api/data.serviceInterface.ts @@ -38,7 +38,7 @@ export interface DataServiceInterface { apiDataIPsGet(extraHttpRequestParams?: any): Observable<{}>; /** - * + * Get all Teams. * */ apiDataTeamsGet(extraHttpRequestParams?: any): Observable; diff --git a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/api/scoreboard.service.ts b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/api/scoreboard.service.ts new file mode 100644 index 0000000..302b559 --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/api/scoreboard.service.ts @@ -0,0 +1,132 @@ +/** + * EnoLandingPage + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +/* tslint:disable:no-unused-variable member-ordering */ + +import { Inject, Injectable, Optional } from '@angular/core'; +import { HttpClient, HttpHeaders, HttpParams, + HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http'; +import { CustomHttpParameterCodec } from '../encoder'; +import { Observable } from 'rxjs'; + +import { ScoreboardInfo } from '../model/models'; + +import { BASE_PATH, COLLECTION_FORMATS } from '../variables'; +import { Configuration } from '../configuration'; +import { + ScoreboardServiceInterface +} from './scoreboard.serviceInterface'; + + + +@Injectable({ + providedIn: 'root' +}) +export class ScoreboardService implements ScoreboardServiceInterface { + + protected basePath = 'http://localhost'; + public defaultHeaders = new HttpHeaders(); + public configuration = new Configuration(); + public encoder: HttpParameterCodec; + + constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) { + if (configuration) { + this.configuration = configuration; + } + if (typeof this.configuration.basePath !== 'string') { + if (typeof basePath !== 'string') { + basePath = this.basePath; + } + this.configuration.basePath = basePath; + } + this.encoder = this.configuration.encoder || new CustomHttpParameterCodec(); + } + + + private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams { + if (typeof value === "object" && value instanceof Date === false) { + httpParams = this.addToHttpParamsRecursive(httpParams, value); + } else { + httpParams = this.addToHttpParamsRecursive(httpParams, value, key); + } + return httpParams; + } + + private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams { + if (value == null) { + return httpParams; + } + + if (typeof value === "object") { + if (Array.isArray(value)) { + (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key)); + } else if (value instanceof Date) { + if (key != null) { + httpParams = httpParams.append(key, + (value as Date).toISOString().substr(0, 10)); + } else { + throw Error("key may not be null if value is Date"); + } + } else { + Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive( + httpParams, value[k], key != null ? `${key}.${k}` : k)); + } + } else if (key != null) { + httpParams = httpParams.append(key, value); + } else { + throw Error("key may not be null if value is not object or array"); + } + return httpParams; + } + + /** + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public apiScoreboardGet(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json'}): Observable; + public apiScoreboardGet(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json'}): Observable>; + public apiScoreboardGet(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json'}): Observable>; + public apiScoreboardGet(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json'}): Observable { + + let headers = this.defaultHeaders; + + let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept; + if (httpHeaderAcceptSelected === undefined) { + // to determine the Accept header + const httpHeaderAccepts: string[] = [ + 'text/plain', + 'application/json', + 'text/json' + ]; + httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts); + } + if (httpHeaderAcceptSelected !== undefined) { + headers = headers.set('Accept', httpHeaderAcceptSelected); + } + + + let responseType_: 'text' | 'json' = 'json'; + if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) { + responseType_ = 'text'; + } + + return this.httpClient.get(`${this.configuration.basePath}/api/Scoreboard`, + { + responseType: responseType_, + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + +} diff --git a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/api/scoreboard.serviceInterface.ts b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/api/scoreboard.serviceInterface.ts new file mode 100644 index 0000000..ec2c84d --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/api/scoreboard.serviceInterface.ts @@ -0,0 +1,33 @@ +/** + * EnoLandingPage + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +import { HttpHeaders } from '@angular/common/http'; + +import { Observable } from 'rxjs'; + +import { ScoreboardInfo } from '../model/models'; + + +import { Configuration } from '../configuration'; + + + +export interface ScoreboardServiceInterface { + defaultHeaders: HttpHeaders; + configuration: Configuration; + + /** + * + * + */ + apiScoreboardGet(extraHttpRequestParams?: any): Observable; + +} diff --git a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/api/scoreboardInfo.service.ts b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/api/scoreboardInfo.service.ts new file mode 100644 index 0000000..1483f24 --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/api/scoreboardInfo.service.ts @@ -0,0 +1,132 @@ +/** + * EnoLandingPage + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +/* tslint:disable:no-unused-variable member-ordering */ + +import { Inject, Injectable, Optional } from '@angular/core'; +import { HttpClient, HttpHeaders, HttpParams, + HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http'; +import { CustomHttpParameterCodec } from '../encoder'; +import { Observable } from 'rxjs'; + +import { Scoreboard } from '../model/models'; + +import { BASE_PATH, COLLECTION_FORMATS } from '../variables'; +import { Configuration } from '../configuration'; +import { + ScoreboardInfoServiceInterface +} from './scoreboardInfo.serviceInterface'; + + + +@Injectable({ + providedIn: 'root' +}) +export class ScoreboardInfoService implements ScoreboardInfoServiceInterface { + + protected basePath = 'http://localhost'; + public defaultHeaders = new HttpHeaders(); + public configuration = new Configuration(); + public encoder: HttpParameterCodec; + + constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) { + if (configuration) { + this.configuration = configuration; + } + if (typeof this.configuration.basePath !== 'string') { + if (typeof basePath !== 'string') { + basePath = this.basePath; + } + this.configuration.basePath = basePath; + } + this.encoder = this.configuration.encoder || new CustomHttpParameterCodec(); + } + + + private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams { + if (typeof value === "object" && value instanceof Date === false) { + httpParams = this.addToHttpParamsRecursive(httpParams, value); + } else { + httpParams = this.addToHttpParamsRecursive(httpParams, value, key); + } + return httpParams; + } + + private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams { + if (value == null) { + return httpParams; + } + + if (typeof value === "object") { + if (Array.isArray(value)) { + (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key)); + } else if (value instanceof Date) { + if (key != null) { + httpParams = httpParams.append(key, + (value as Date).toISOString().substr(0, 10)); + } else { + throw Error("key may not be null if value is Date"); + } + } else { + Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive( + httpParams, value[k], key != null ? `${key}.${k}` : k)); + } + } else if (key != null) { + httpParams = httpParams.append(key, value); + } else { + throw Error("key may not be null if value is not object or array"); + } + return httpParams; + } + + /** + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public apiScoreboardInfoGet(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json'}): Observable; + public apiScoreboardInfoGet(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json'}): Observable>; + public apiScoreboardInfoGet(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json'}): Observable>; + public apiScoreboardInfoGet(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json'}): Observable { + + let headers = this.defaultHeaders; + + let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept; + if (httpHeaderAcceptSelected === undefined) { + // to determine the Accept header + const httpHeaderAccepts: string[] = [ + 'text/plain', + 'application/json', + 'text/json' + ]; + httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts); + } + if (httpHeaderAcceptSelected !== undefined) { + headers = headers.set('Accept', httpHeaderAcceptSelected); + } + + + let responseType_: 'text' | 'json' = 'json'; + if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) { + responseType_ = 'text'; + } + + return this.httpClient.get(`${this.configuration.basePath}/api/ScoreboardInfo`, + { + responseType: responseType_, + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + +} diff --git a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/api/scoreboardInfo.serviceInterface.ts b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/api/scoreboardInfo.serviceInterface.ts new file mode 100644 index 0000000..86e3b8f --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/api/scoreboardInfo.serviceInterface.ts @@ -0,0 +1,33 @@ +/** + * EnoLandingPage + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +import { HttpHeaders } from '@angular/common/http'; + +import { Observable } from 'rxjs'; + +import { Scoreboard } from '../model/models'; + + +import { Configuration } from '../configuration'; + + + +export interface ScoreboardInfoServiceInterface { + defaultHeaders: HttpHeaders; + configuration: Configuration; + + /** + * + * + */ + apiScoreboardInfoGet(extraHttpRequestParams?: any): Observable; + +} diff --git a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/landingPageVulnboxStatus.ts b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/landingPageVulnboxStatus.ts new file mode 100644 index 0000000..c5db5e1 --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/landingPageVulnboxStatus.ts @@ -0,0 +1,21 @@ +/** + * EnoLandingPage + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +export type LandingPageVulnboxStatus = 0 | 1 | 2; + +export const LandingPageVulnboxStatus = { + NUMBER_0: 0 as LandingPageVulnboxStatus, + NUMBER_1: 1 as LandingPageVulnboxStatus, + NUMBER_2: 2 as LandingPageVulnboxStatus +}; + diff --git a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/models.ts b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/models.ts index 624bee5..01dd6f3 100644 --- a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/models.ts +++ b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/models.ts @@ -1,3 +1,11 @@ export * from './ctfInfoMessage'; +export * from './landingPageVulnboxStatus'; +export * from './scoreboard'; +export * from './scoreboardFirstBlood'; +export * from './scoreboardService'; +export * from './scoreboardTeam'; +export * from './scoreboardTeamServiceDetails'; +export * from './serviceStatus'; +export * from './teamDetailsMessage'; export * from './teamMessage'; export * from './teamsMessage'; diff --git a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboard.ts b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboard.ts new file mode 100644 index 0000000..83435bb --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboard.ts @@ -0,0 +1,24 @@ +/** + * EnoLandingPage + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +import { ScoreboardService } from './scoreboardService'; +import { ScoreboardTeam } from './scoreboardTeam'; + + +export interface Scoreboard { + currentRound?: number; + startTimestamp?: string | null; + endTimestamp?: string | null; + dnsSuffix?: string | null; + services?: Array | null; + teams?: Array | null; +} + diff --git a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboardFirstBlood.ts b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboardFirstBlood.ts new file mode 100644 index 0000000..a639ea4 --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboardFirstBlood.ts @@ -0,0 +1,21 @@ +/** + * EnoLandingPage + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +export interface ScoreboardFirstBlood { + teamId?: number; + teamName?: string | null; + timestamp?: string | null; + roundId?: number; + flagVariantId?: number; +} + diff --git a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboardInfo.ts b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboardInfo.ts new file mode 100644 index 0000000..3dd9b75 --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboardInfo.ts @@ -0,0 +1,21 @@ +/** + * EnoLandingPage + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +import { ScoreboardInfoTeam } from './scoreboardInfoTeam'; +import { ScoreboardService } from './scoreboardService'; + + +export interface ScoreboardInfo { + dnsSuffix?: string | null; + services?: Array | null; + teams?: Array | null; +} + diff --git a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboardInfoTeam.ts b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboardInfoTeam.ts new file mode 100644 index 0000000..7a3f6b3 --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboardInfoTeam.ts @@ -0,0 +1,20 @@ +/** + * EnoLandingPage + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +export interface ScoreboardInfoTeam { + teamId?: number; + teamName?: string | null; + logoUrl?: string | null; + countryCode?: string | null; +} + diff --git a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboardService.ts b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboardService.ts new file mode 100644 index 0000000..65a2111 --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboardService.ts @@ -0,0 +1,21 @@ +/** + * EnoLandingPage + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +import { ScoreboardFirstBlood } from './scoreboardFirstBlood'; + + +export interface ScoreboardService { + serviceId?: number; + serviceName?: string | null; + flagVariants?: number; + firstBloods?: Array | null; +} + diff --git a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboardTeam.ts b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboardTeam.ts new file mode 100644 index 0000000..ffeaab1 --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboardTeam.ts @@ -0,0 +1,26 @@ +/** + * EnoLandingPage + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +import { ScoreboardTeamServiceDetails } from './scoreboardTeamServiceDetails'; + + +export interface ScoreboardTeam { + teamName?: string | null; + teamId?: number; + logoUrl?: string | null; + countryCode?: string | null; + totalScore?: number; + attackScore?: number; + defenseScore?: number; + serviceLevelAgreementScore?: number; + serviceDetails?: Array | null; +} + diff --git a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboardTeamServiceDetails.ts b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboardTeamServiceDetails.ts new file mode 100644 index 0000000..91503b9 --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboardTeamServiceDetails.ts @@ -0,0 +1,23 @@ +/** + * EnoLandingPage + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +import { ServiceStatus } from './serviceStatus'; + + +export interface ScoreboardTeamServiceDetails { + serviceId?: number; + attackScore?: number; + defenseScore?: number; + serviceLevelAgreementScore?: number; + serviceStatus?: ServiceStatus; + message?: string | null; +} + diff --git a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/serviceStatus.ts b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/serviceStatus.ts new file mode 100644 index 0000000..489ea03 --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/serviceStatus.ts @@ -0,0 +1,24 @@ +/** + * EnoLandingPage + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +export type ServiceStatus = 0 | 1 | 2 | 3 | 4 | 5; + +export const ServiceStatus = { + NUMBER_0: 0 as ServiceStatus, + NUMBER_1: 1 as ServiceStatus, + NUMBER_2: 2 as ServiceStatus, + NUMBER_3: 3 as ServiceStatus, + NUMBER_4: 4 as ServiceStatus, + NUMBER_5: 5 as ServiceStatus +}; + diff --git a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/teamDetailsMessage.ts b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/teamDetailsMessage.ts new file mode 100644 index 0000000..2c5c555 --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/teamDetailsMessage.ts @@ -0,0 +1,25 @@ +/** + * EnoLandingPage + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +import { LandingPageVulnboxStatus } from './landingPageVulnboxStatus'; + + +export interface TeamDetailsMessage { + id?: number; + confirmed?: boolean; + teamName?: string | null; + vpnConfigAvailable?: boolean; + rootPassword?: string | null; + externalIpAddress?: string | null; + internalIpAddress?: string | null; + vulnboxStatus?: LandingPageVulnboxStatus; +} + diff --git a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/tsconfig.json b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/tsconfig.json index fd2abf8..6619fcd 100644 --- a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/tsconfig.json +++ b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/tsconfig.json @@ -1,28 +1,27 @@ { - "compilerOptions": { - "emitDecoratorMetadata": true, - "experimentalDecorators": true, - "noImplicitAny": false, - "suppressImplicitAnyIndexErrors": true, - "target": "es6", - "module": "es6", - "moduleResolution": "node", - "removeComments": true, - "sourceMap": true, - "outDir": "./dist", - "noLib": false, - "declaration": true, - "lib": [ "es6", "dom" ], - "typeRoots": [ - "node_modules/@types" - ] - }, - "exclude": [ - "node_modules", - "dist" - ], - "filesGlob": [ - "./model/*.ts", - "./api/*.ts" - ] + "compilerOptions": { + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "noImplicitAny": false, + "suppressImplicitAnyIndexErrors": true, + "target": "es6", + "module": "es6", + "moduleResolution": "node", + "removeComments": true, + "sourceMap": true, + "outDir": "./dist", + "noLib": false, + "declaration": true, + "lib": ["es6", "dom"], + "typeRoots": ["node_modules/@types"] + }, + "angularCompilerOptions": { + "strictTemplates": true, + "strictInjectionParameters": true, + "fullTemplateTypeCheck": true, + "preserveWhitespaces": true, + "strictMetadataEmit": true + }, + "exclude": ["node_modules", "dist"], + "filesGlob": ["./model/*.ts", "./api/*.ts"] } diff --git a/EnoLandingPageBackend/ClientApp/src/app/app-routing.module.ts b/EnoLandingPageBackend/ClientApp/src/app/app-routing.module.ts index 24d92a2..a0548e4 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/app-routing.module.ts +++ b/EnoLandingPageBackend/ClientApp/src/app/app-routing.module.ts @@ -1,12 +1,27 @@ import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; import { environment } from 'src/environments/environment'; -import { RootComponent } from './pages/root/root.component'; +import { PageScoreboardComponent } from './pages/page-scoreboard/page-scoreboard.component'; +import { PageTeamsComponent } from './pages/page-teams/page-teams.component'; +import { PageRootComponent } from './pages/root/root.component'; + +export const APP_ROUTES = { + scoreboard: 'scoreboard', + teams: 'teams', +}; const routes: Routes = [ + { + path: APP_ROUTES.scoreboard, + component: PageScoreboardComponent, + }, + { + path: APP_ROUTES.teams, + component: PageTeamsComponent, + }, { path: '**', - component: RootComponent, + component: PageRootComponent, }, ]; diff --git a/EnoLandingPageBackend/ClientApp/src/app/app.component.scss b/EnoLandingPageBackend/ClientApp/src/app/app.component.scss index 4b9197f..c03ea1b 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/app.component.scss +++ b/EnoLandingPageBackend/ClientApp/src/app/app.component.scss @@ -1,4 +1,5 @@ #content { flex: 1; overflow: auto; + z-index: 0; } diff --git a/EnoLandingPageBackend/ClientApp/src/app/app.component.ts b/EnoLandingPageBackend/ClientApp/src/app/app.component.ts index f2eacd5..4b90a9f 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/app.component.ts +++ b/EnoLandingPageBackend/ClientApp/src/app/app.component.ts @@ -2,6 +2,37 @@ import { Component } from '@angular/core'; import { Store } from '@ngxs/store'; import { DataService } from 'projects/backend-api/src/lib'; import { InitTheme } from './shared/states/App.state'; +import { AuthConfig } from 'angular-oauth2-oidc'; +import { OAuthService } from 'angular-oauth2-oidc'; +import { filter } from 'rxjs/operators'; +export const authCodeFlowConfig: AuthConfig = { + // Url of the Identity Provider + issuer: 'https://oauth.ctftime.org/', + + // URL of the SPA to redirect the user to after login + redirectUri: window.location.origin + '/index.html', + + // The SPA's id. The SPA is registerd with this id at the auth-server + // clientId: 'server.code', + clientId: 'spa', + + // Just needed if your auth server demands a secret. In general, this + // is a sign that the auth server is not configured with SPAs in mind + // and it might not enforce further best practices vital for security + // such applications. + // dummyClientSecret: 'secret', + + responseType: 'code', + + // set the scope for the permissions the client should request + // The first four are defined by OIDC. + // Important: Request offline_access to get a refresh token + // The api scope is a usecase specific one + scope: 'openid profile email offline_access api', + + showDebugInformation: true, +}; + @Component({ selector: 'app-root', templateUrl: './app.component.html', @@ -9,7 +40,20 @@ import { InitTheme } from './shared/states/App.state'; }) export class AppComponent { public data: any; - constructor(private store: Store, private dataService: DataService) { + constructor( + private store: Store, + private oauthService: OAuthService, + private dataService: DataService + ) { + this.oauthService.configure(authCodeFlowConfig); + this.oauthService.loadDiscoveryDocumentAndLogin(); + + //this.oauthService.setupAutomaticSilentRefresh(); + + // Automatically load user profile + this.oauthService.events + .pipe(filter((e) => e.type === 'token_received')) + .subscribe((_) => this.oauthService.loadUserProfile()); this.dataService.apiDataCtfInfoGet().subscribe((data) => { this.data = data; }); diff --git a/EnoLandingPageBackend/ClientApp/src/app/app.module.ts b/EnoLandingPageBackend/ClientApp/src/app/app.module.ts index 3bc9267..481167f 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/app.module.ts +++ b/EnoLandingPageBackend/ClientApp/src/app/app.module.ts @@ -15,6 +15,10 @@ import { MaterialModule } from './material.module'; import { NgxsModule } from '@ngxs/store'; import { AppState } from './shared/states/App.state'; import { ThemeService } from './services/theme.service'; +import { PageRootModule } from './pages/root/root.module'; +import { PageTeamsModule } from './pages/page-teams/page-teams.module'; +import { PageScoreboardModule } from './pages/page-scoreboard/page-scoreboard.module'; +import { OAuthModule } from 'angular-oauth2-oidc'; export function apiConfigFactory(): Configuration { const params: ConfigurationParameters = { basePath: environment.backendBaseUrl, @@ -35,6 +39,10 @@ export function apiConfigFactory(): Configuration { NgxsModule.forRoot([AppState], { developmentMode: !environment.production, }), + OAuthModule.forRoot(), + PageRootModule, + PageTeamsModule, + PageScoreboardModule, BrowserAnimationsModule, ], providers: [ThemeService], diff --git a/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.html b/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.html index 39acf38..78fc4e0 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.html +++ b/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.html @@ -100,12 +100,15 @@
- - - + + Documentation + diff --git a/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.ts b/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.ts index 7284ab6..b175834 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.ts +++ b/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.ts @@ -1,16 +1,24 @@ import { Component, OnDestroy, OnInit } from '@angular/core'; import { MatDialog } from '@angular/material/dialog'; import { NavigationEnd, Router } from '@angular/router'; -import { Select } from '@ngxs/store'; -import { untilComponentDestroyed } from '@w11k/ngx-componentdestroyed'; +import { Select, Store } from '@ngxs/store'; +import { + OnDestroyMixin, + untilComponentDestroyed, +} from '@w11k/ngx-componentdestroyed'; import { Observable } from 'rxjs'; import { filter, map } from 'rxjs/operators'; import { MatBadgeModule } from '@angular/material/badge'; -import { AppState } from 'src/app/shared/states/App.state'; +import { + AppState, + AppStateModel, + SetTheme, +} from 'src/app/shared/states/App.state'; import { environment } from 'src/environments/environment'; import { EnvironmentInterface } from 'src/environments/environmentInterfaces'; import { Theme } from 'src/app/shared/models/enumberables/Theme'; import { APP_ROUTES } from 'src/app/app-routing.module'; +import { coerceStringArray } from '@angular/cdk/coercion'; @Component({ selector: 'app-navigation', @@ -18,19 +26,42 @@ import { APP_ROUTES } from 'src/app/app-routing.module'; styleUrls: ['./app-navigation.component.scss'], host: { class: 'pb-expand' }, }) -export class AppNavigationComponent implements OnInit, OnDestroy { +export class AppNavigationComponent + extends OnDestroyMixin + implements OnInit, OnDestroy +{ public environment: EnvironmentInterface = environment; public routes: typeof APP_ROUTES = APP_ROUTES; - @Select(AppState.activeTheme) - public themeValue$!: Observable; + public themeValue: Theme | null = null; - constructor( - private router: Router, - public dialog: MatDialog, - public badge: MatBadgeModule - ) {} + constructor(private store: Store) { + super(); + } - public ngOnInit() {} + public toggleTheme() { + if (this.themeValue == Theme.default_dark) { + this.store.dispatch(new SetTheme(Theme.default_light)); + } else { + this.store.dispatch(new SetTheme(Theme.default_dark)); + } + } + + public getThemeIcon() { + if (this.themeValue == Theme.default_dark) { + return 'light_mode'; + } else { + return 'dark_mode'; + } + } + public ngOnInit() { + this.store + .select(AppState) + .pipe(untilComponentDestroyed(this)) + .subscribe((state: AppStateModel) => { + console.log(state); + this.themeValue = state.activeTheme; + }); + } public ngOnDestroy() {} } From d6ad284d425ec3c353a7aa5f71ec6b9a94f8cc2f Mon Sep 17 00:00:00 2001 From: Daniel Habenicht Date: Wed, 16 Jun 2021 01:58:38 +0200 Subject: [PATCH 015/118] create other pages --- .../ClientApp/package-lock.json | 16 +-- EnoLandingPageBackend/ClientApp/package.json | 2 +- .../backend-api/src/lib/tsconfig.json | 51 +++---- .../ClientApp/src/app/app-routing.module.ts | 24 ++++ .../ClientApp/src/app/app.component.ts | 50 +------ .../ClientApp/src/app/app.module.ts | 11 +- .../ClientApp/src/app/material.module.ts | 4 +- .../app-navigation.component.html | 66 +++++++-- .../app-navigation.component.ts | 7 +- .../page-admin/page-admin.component.html | 11 ++ .../page-admin/page-admin.component.scss | 0 .../page-admin/page-admin.component.spec.ts | 25 ++++ .../pages/page-admin/page-admin.component.ts | 15 ++ .../app/pages/page-admin/page-admin.module.ts | 15 ++ .../page-contact/page-contact.component.html | 19 +++ .../page-contact/page-contact.component.scss | 0 .../page-contact.component.spec.ts | 25 ++++ .../page-contact/page-contact.component.ts | 15 ++ .../pages/page-contact/page-contact.module.ts | 15 ++ .../page-information.component.html | 56 ++++++++ .../page-information.component.scss | 0 .../page-information.component.spec.ts | 25 ++++ .../page-information.component.ts | 15 ++ .../page-information.module.ts | 15 ++ .../page-profile/page-profile.component.html | 132 ++++++++++++++++++ .../page-profile/page-profile.component.scss | 0 .../page-profile.component.spec.ts | 25 ++++ .../page-profile/page-profile.component.ts | 21 +++ .../pages/page-profile/page-profile.module.ts | 10 ++ .../page-scoreboard.component.html | 97 ++++++++++--- .../page-scoreboard.component.scss | 105 +++++++------- .../page-scoreboard.component.ts | 22 ++- .../page-scoreboard/page-scoreboard.module.ts | 10 +- .../page-teams/page-teams.component.html | 18 +-- .../app/pages/page-teams/page-teams.module.ts | 14 +- .../country-flag/country-flag.component.html | 8 ++ .../country-flag/country-flag.component.scss | 4 + .../country-flag.component.spec.ts | 25 ++++ .../country-flag/country-flag.component.ts | 14 ++ .../team-logo/team-logo.component.html | 1 + .../team-logo/team-logo.component.scss | 4 + .../team-logo/team-logo.component.spec.ts | 25 ++++ .../team-logo/team-logo.component.ts | 14 ++ .../components/team/team.component.html | 8 ++ .../components/team/team.component.scss | 0 .../components/team/team.component.spec.ts | 24 ++++ .../shared/components/team/team.component.ts | 15 ++ .../ClientApp/src/app/shared/shared.module.ts | 13 ++ .../src/app/shared/states/App.state.ts | 71 +++++++++- .../ClientApp/src/styles.scss | 12 ++ EnoLandingPageBackend/ClientApp/tsconfig.json | 13 +- 51 files changed, 982 insertions(+), 205 deletions(-) create mode 100644 EnoLandingPageBackend/ClientApp/src/app/pages/page-admin/page-admin.component.html create mode 100644 EnoLandingPageBackend/ClientApp/src/app/pages/page-admin/page-admin.component.scss create mode 100644 EnoLandingPageBackend/ClientApp/src/app/pages/page-admin/page-admin.component.spec.ts create mode 100644 EnoLandingPageBackend/ClientApp/src/app/pages/page-admin/page-admin.component.ts create mode 100644 EnoLandingPageBackend/ClientApp/src/app/pages/page-admin/page-admin.module.ts create mode 100644 EnoLandingPageBackend/ClientApp/src/app/pages/page-contact/page-contact.component.html create mode 100644 EnoLandingPageBackend/ClientApp/src/app/pages/page-contact/page-contact.component.scss create mode 100644 EnoLandingPageBackend/ClientApp/src/app/pages/page-contact/page-contact.component.spec.ts create mode 100644 EnoLandingPageBackend/ClientApp/src/app/pages/page-contact/page-contact.component.ts create mode 100644 EnoLandingPageBackend/ClientApp/src/app/pages/page-contact/page-contact.module.ts create mode 100644 EnoLandingPageBackend/ClientApp/src/app/pages/page-information/page-information.component.html create mode 100644 EnoLandingPageBackend/ClientApp/src/app/pages/page-information/page-information.component.scss create mode 100644 EnoLandingPageBackend/ClientApp/src/app/pages/page-information/page-information.component.spec.ts create mode 100644 EnoLandingPageBackend/ClientApp/src/app/pages/page-information/page-information.component.ts create mode 100644 EnoLandingPageBackend/ClientApp/src/app/pages/page-information/page-information.module.ts create mode 100644 EnoLandingPageBackend/ClientApp/src/app/pages/page-profile/page-profile.component.html create mode 100644 EnoLandingPageBackend/ClientApp/src/app/pages/page-profile/page-profile.component.scss create mode 100644 EnoLandingPageBackend/ClientApp/src/app/pages/page-profile/page-profile.component.spec.ts create mode 100644 EnoLandingPageBackend/ClientApp/src/app/pages/page-profile/page-profile.component.ts create mode 100644 EnoLandingPageBackend/ClientApp/src/app/pages/page-profile/page-profile.module.ts create mode 100644 EnoLandingPageBackend/ClientApp/src/app/shared/components/country-flag/country-flag.component.html create mode 100644 EnoLandingPageBackend/ClientApp/src/app/shared/components/country-flag/country-flag.component.scss create mode 100644 EnoLandingPageBackend/ClientApp/src/app/shared/components/country-flag/country-flag.component.spec.ts create mode 100644 EnoLandingPageBackend/ClientApp/src/app/shared/components/country-flag/country-flag.component.ts create mode 100644 EnoLandingPageBackend/ClientApp/src/app/shared/components/team-logo/team-logo.component.html create mode 100644 EnoLandingPageBackend/ClientApp/src/app/shared/components/team-logo/team-logo.component.scss create mode 100644 EnoLandingPageBackend/ClientApp/src/app/shared/components/team-logo/team-logo.component.spec.ts create mode 100644 EnoLandingPageBackend/ClientApp/src/app/shared/components/team-logo/team-logo.component.ts create mode 100644 EnoLandingPageBackend/ClientApp/src/app/shared/components/team/team.component.html create mode 100644 EnoLandingPageBackend/ClientApp/src/app/shared/components/team/team.component.scss create mode 100644 EnoLandingPageBackend/ClientApp/src/app/shared/components/team/team.component.spec.ts create mode 100644 EnoLandingPageBackend/ClientApp/src/app/shared/components/team/team.component.ts create mode 100644 EnoLandingPageBackend/ClientApp/src/app/shared/shared.module.ts diff --git a/EnoLandingPageBackend/ClientApp/package-lock.json b/EnoLandingPageBackend/ClientApp/package-lock.json index 8a028ef..5e92db7 100644 --- a/EnoLandingPageBackend/ClientApp/package-lock.json +++ b/EnoLandingPageBackend/ClientApp/package-lock.json @@ -2518,14 +2518,6 @@ "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", "dev": true }, - "angular-oauth2-oidc": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/angular-oauth2-oidc/-/angular-oauth2-oidc-10.0.3.tgz", - "integrity": "sha512-9wC8I3e3cN6rMBOlo5JB2y3Fd2erp8pJ67t4vEVzyPbnRG6BJ4rreSOznSL9zw/2SjhC9kRV2OfFie29CUCzEg==", - "requires": { - "tslib": "^2.0.0" - } - }, "ansi-colors": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", @@ -7706,6 +7698,14 @@ "stylus": "^0.54.8" } }, + "ng-table-virtual-scroll": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/ng-table-virtual-scroll/-/ng-table-virtual-scroll-1.3.6.tgz", + "integrity": "sha512-RX9lTKoYpfLWJtg8yfTcGgQu5iUZR8912i6L7We2rjTD/BkLXd68CD3kLX/uu7M8i9EuXdjpSoFi8aqOW1YEHw==", + "requires": { + "tslib": "^2.0.0" + } + }, "nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", diff --git a/EnoLandingPageBackend/ClientApp/package.json b/EnoLandingPageBackend/ClientApp/package.json index f8ab351..415ec43 100644 --- a/EnoLandingPageBackend/ClientApp/package.json +++ b/EnoLandingPageBackend/ClientApp/package.json @@ -23,7 +23,7 @@ "@angular/router": "~12.0.4", "@ngxs/store": "^3.7.2", "@w11k/ngx-componentdestroyed": "^5.0.2", - "angular-oauth2-oidc": "^10.0.3", + "ng-table-virtual-scroll": "^1.3.6", "rxjs": "~6.6.0", "tslib": "^2.1.0", "zone.js": "~0.11.4" diff --git a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/tsconfig.json b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/tsconfig.json index 6619fcd..fd2abf8 100644 --- a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/tsconfig.json +++ b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/tsconfig.json @@ -1,27 +1,28 @@ { - "compilerOptions": { - "emitDecoratorMetadata": true, - "experimentalDecorators": true, - "noImplicitAny": false, - "suppressImplicitAnyIndexErrors": true, - "target": "es6", - "module": "es6", - "moduleResolution": "node", - "removeComments": true, - "sourceMap": true, - "outDir": "./dist", - "noLib": false, - "declaration": true, - "lib": ["es6", "dom"], - "typeRoots": ["node_modules/@types"] - }, - "angularCompilerOptions": { - "strictTemplates": true, - "strictInjectionParameters": true, - "fullTemplateTypeCheck": true, - "preserveWhitespaces": true, - "strictMetadataEmit": true - }, - "exclude": ["node_modules", "dist"], - "filesGlob": ["./model/*.ts", "./api/*.ts"] + "compilerOptions": { + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "noImplicitAny": false, + "suppressImplicitAnyIndexErrors": true, + "target": "es6", + "module": "es6", + "moduleResolution": "node", + "removeComments": true, + "sourceMap": true, + "outDir": "./dist", + "noLib": false, + "declaration": true, + "lib": [ "es6", "dom" ], + "typeRoots": [ + "node_modules/@types" + ] + }, + "exclude": [ + "node_modules", + "dist" + ], + "filesGlob": [ + "./model/*.ts", + "./api/*.ts" + ] } diff --git a/EnoLandingPageBackend/ClientApp/src/app/app-routing.module.ts b/EnoLandingPageBackend/ClientApp/src/app/app-routing.module.ts index a0548e4..b219fcc 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/app-routing.module.ts +++ b/EnoLandingPageBackend/ClientApp/src/app/app-routing.module.ts @@ -1,6 +1,10 @@ import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; import { environment } from 'src/environments/environment'; +import { PageAdminComponent } from './pages/page-admin/page-admin.component'; +import { PageContactComponent } from './pages/page-contact/page-contact.component'; +import { PageInformationComponent } from './pages/page-information/page-information.component'; +import { PageProfileComponent } from './pages/page-profile/page-profile.component'; import { PageScoreboardComponent } from './pages/page-scoreboard/page-scoreboard.component'; import { PageTeamsComponent } from './pages/page-teams/page-teams.component'; import { PageRootComponent } from './pages/root/root.component'; @@ -8,6 +12,10 @@ import { PageRootComponent } from './pages/root/root.component'; export const APP_ROUTES = { scoreboard: 'scoreboard', teams: 'teams', + information: 'information', + contact: 'contact', + profile: 'profile', + admin: 'admin', }; const routes: Routes = [ @@ -19,6 +27,22 @@ const routes: Routes = [ path: APP_ROUTES.teams, component: PageTeamsComponent, }, + { + path: APP_ROUTES.information, + component: PageInformationComponent, + }, + { + path: APP_ROUTES.contact, + component: PageContactComponent, + }, + { + path: APP_ROUTES.profile, + component: PageProfileComponent, + }, + { + path: APP_ROUTES.admin, + component: PageAdminComponent, + }, { path: '**', component: PageRootComponent, diff --git a/EnoLandingPageBackend/ClientApp/src/app/app.component.ts b/EnoLandingPageBackend/ClientApp/src/app/app.component.ts index 4b90a9f..07393cc 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/app.component.ts +++ b/EnoLandingPageBackend/ClientApp/src/app/app.component.ts @@ -1,37 +1,8 @@ import { Component } from '@angular/core'; import { Store } from '@ngxs/store'; import { DataService } from 'projects/backend-api/src/lib'; -import { InitTheme } from './shared/states/App.state'; -import { AuthConfig } from 'angular-oauth2-oidc'; -import { OAuthService } from 'angular-oauth2-oidc'; +import { AppState, InitTheme } from './shared/states/App.state'; import { filter } from 'rxjs/operators'; -export const authCodeFlowConfig: AuthConfig = { - // Url of the Identity Provider - issuer: 'https://oauth.ctftime.org/', - - // URL of the SPA to redirect the user to after login - redirectUri: window.location.origin + '/index.html', - - // The SPA's id. The SPA is registerd with this id at the auth-server - // clientId: 'server.code', - clientId: 'spa', - - // Just needed if your auth server demands a secret. In general, this - // is a sign that the auth server is not configured with SPAs in mind - // and it might not enforce further best practices vital for security - // such applications. - // dummyClientSecret: 'secret', - - responseType: 'code', - - // set the scope for the permissions the client should request - // The first four are defined by OIDC. - // Important: Request offline_access to get a refresh token - // The api scope is a usecase specific one - scope: 'openid profile email offline_access api', - - showDebugInformation: true, -}; @Component({ selector: 'app-root', @@ -40,22 +11,9 @@ export const authCodeFlowConfig: AuthConfig = { }) export class AppComponent { public data: any; - constructor( - private store: Store, - private oauthService: OAuthService, - private dataService: DataService - ) { - this.oauthService.configure(authCodeFlowConfig); - this.oauthService.loadDiscoveryDocumentAndLogin(); - - //this.oauthService.setupAutomaticSilentRefresh(); - - // Automatically load user profile - this.oauthService.events - .pipe(filter((e) => e.type === 'token_received')) - .subscribe((_) => this.oauthService.loadUserProfile()); - this.dataService.apiDataCtfInfoGet().subscribe((data) => { - this.data = data; + constructor(private store: Store) { + this.store.select(AppState).subscribe((app) => { + console.log(app); }); } ngOnInit() { diff --git a/EnoLandingPageBackend/ClientApp/src/app/app.module.ts b/EnoLandingPageBackend/ClientApp/src/app/app.module.ts index 481167f..4faf780 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/app.module.ts +++ b/EnoLandingPageBackend/ClientApp/src/app/app.module.ts @@ -18,7 +18,11 @@ import { ThemeService } from './services/theme.service'; import { PageRootModule } from './pages/root/root.module'; import { PageTeamsModule } from './pages/page-teams/page-teams.module'; import { PageScoreboardModule } from './pages/page-scoreboard/page-scoreboard.module'; -import { OAuthModule } from 'angular-oauth2-oidc'; +import { PageProfileComponent } from './pages/page-profile/page-profile.component'; +import { PageProfileModule } from './pages/page-profile/page-profile.module'; +import { PageInformationModule } from './pages/page-information/page-information.module'; +import { PageContactModule } from './pages/page-contact/page-contact.module'; +import { PageAdminModule } from './pages/page-admin/page-admin.module'; export function apiConfigFactory(): Configuration { const params: ConfigurationParameters = { basePath: environment.backendBaseUrl, @@ -39,10 +43,13 @@ export function apiConfigFactory(): Configuration { NgxsModule.forRoot([AppState], { developmentMode: !environment.production, }), - OAuthModule.forRoot(), PageRootModule, PageTeamsModule, PageScoreboardModule, + PageProfileModule, + PageInformationModule, + PageContactModule, + PageAdminModule, BrowserAnimationsModule, ], providers: [ThemeService], diff --git a/EnoLandingPageBackend/ClientApp/src/app/material.module.ts b/EnoLandingPageBackend/ClientApp/src/app/material.module.ts index 05201df..3d2018e 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/material.module.ts +++ b/EnoLandingPageBackend/ClientApp/src/app/material.module.ts @@ -24,7 +24,7 @@ import { MatTabsModule } from '@angular/material/tabs'; import { MatToolbarModule } from '@angular/material/toolbar'; import { MatTooltipModule } from '@angular/material/tooltip'; import { MatTreeModule } from '@angular/material/tree'; - +import { MatStepperModule } from '@angular/material/stepper'; @NgModule({ imports: [ MatButtonModule, @@ -51,6 +51,7 @@ import { MatTreeModule } from '@angular/material/tree'; MatBottomSheetModule, ScrollingModule, DragDropModule, + MatStepperModule, ], providers: [], exports: [ @@ -78,6 +79,7 @@ import { MatTreeModule } from '@angular/material/tree'; MatBottomSheetModule, ScrollingModule, DragDropModule, + MatStepperModule, ], }) export class MaterialModule {} diff --git a/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.html b/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.html index 9a1d3bf..a120693 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.html +++ b/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.html @@ -104,19 +104,63 @@
- - - - Documentation + Rules + + + - - + + + login + + + + + +
diff --git a/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.ts b/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.ts index b175834..f441323 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.ts +++ b/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.ts @@ -19,6 +19,7 @@ import { EnvironmentInterface } from 'src/environments/environmentInterfaces'; import { Theme } from 'src/app/shared/models/enumberables/Theme'; import { APP_ROUTES } from 'src/app/app-routing.module'; import { coerceStringArray } from '@angular/cdk/coercion'; +import { TeamDetailsMessage } from 'projects/backend-api/src/lib/model/teamDetailsMessage'; @Component({ selector: 'app-navigation', @@ -32,8 +33,11 @@ export class AppNavigationComponent { public environment: EnvironmentInterface = environment; public routes: typeof APP_ROUTES = APP_ROUTES; - public themeValue: Theme | null = null; + @Select(AppState.authenticated) + public authenticated$!: Observable; + @Select(AppState.teamInfo) + public info$!: Observable; constructor(private store: Store) { super(); @@ -59,7 +63,6 @@ export class AppNavigationComponent .select(AppState) .pipe(untilComponentDestroyed(this)) .subscribe((state: AppStateModel) => { - console.log(state); this.themeValue = state.activeTheme; }); } diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-admin/page-admin.component.html b/EnoLandingPageBackend/ClientApp/src/app/pages/page-admin/page-admin.component.html new file mode 100644 index 0000000..d5ca53b --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/page-admin/page-admin.component.html @@ -0,0 +1,11 @@ +
+

AdminView

+ +
+ + boot vm +
+ ctf.json +
diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-admin/page-admin.component.scss b/EnoLandingPageBackend/ClientApp/src/app/pages/page-admin/page-admin.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-admin/page-admin.component.spec.ts b/EnoLandingPageBackend/ClientApp/src/app/pages/page-admin/page-admin.component.spec.ts new file mode 100644 index 0000000..d1667c6 --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/page-admin/page-admin.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { PageAdminComponent } from './page-admin.component'; + +describe('PageAdminComponent', () => { + let component: PageAdminComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ PageAdminComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(PageAdminComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-admin/page-admin.component.ts b/EnoLandingPageBackend/ClientApp/src/app/pages/page-admin/page-admin.component.ts new file mode 100644 index 0000000..dc06758 --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/page-admin/page-admin.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-page-admin', + templateUrl: './page-admin.component.html', + styleUrls: ['./page-admin.component.scss'] +}) +export class PageAdminComponent implements OnInit { + + constructor() { } + + ngOnInit(): void { + } + +} diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-admin/page-admin.module.ts b/EnoLandingPageBackend/ClientApp/src/app/pages/page-admin/page-admin.module.ts new file mode 100644 index 0000000..d9699bd --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/page-admin/page-admin.module.ts @@ -0,0 +1,15 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { PageAdminComponent } from './page-admin.component'; + + + +@NgModule({ + declarations: [ + PageAdminComponent + ], + imports: [ + CommonModule + ] +}) +export class PageAdminModule { } diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-contact/page-contact.component.html b/EnoLandingPageBackend/ClientApp/src/app/pages/page-contact/page-contact.component.html new file mode 100644 index 0000000..5fc98c7 --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/page-contact/page-contact.component.html @@ -0,0 +1,19 @@ +
+

Contact

+
+
+

Email

+

bambi@@enoflag.de

+ +

Twitter

+

@@ENOFLAG

+ +

IRC

+

+ #bambictf at freenode +

+ +

Discord

+

Discord

+
+
diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-contact/page-contact.component.scss b/EnoLandingPageBackend/ClientApp/src/app/pages/page-contact/page-contact.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-contact/page-contact.component.spec.ts b/EnoLandingPageBackend/ClientApp/src/app/pages/page-contact/page-contact.component.spec.ts new file mode 100644 index 0000000..fba8c77 --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/page-contact/page-contact.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { PageContactComponent } from './page-contact.component'; + +describe('PageContactComponent', () => { + let component: PageContactComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ PageContactComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(PageContactComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-contact/page-contact.component.ts b/EnoLandingPageBackend/ClientApp/src/app/pages/page-contact/page-contact.component.ts new file mode 100644 index 0000000..5e76b18 --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/page-contact/page-contact.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-page-contact', + templateUrl: './page-contact.component.html', + styleUrls: ['./page-contact.component.scss'] +}) +export class PageContactComponent implements OnInit { + + constructor() { } + + ngOnInit(): void { + } + +} diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-contact/page-contact.module.ts b/EnoLandingPageBackend/ClientApp/src/app/pages/page-contact/page-contact.module.ts new file mode 100644 index 0000000..ae938dd --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/page-contact/page-contact.module.ts @@ -0,0 +1,15 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { PageContactComponent } from './page-contact.component'; + + + +@NgModule({ + declarations: [ + PageContactComponent + ], + imports: [ + CommonModule + ] +}) +export class PageContactModule { } diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-information/page-information.component.html b/EnoLandingPageBackend/ClientApp/src/app/pages/page-information/page-information.component.html new file mode 100644 index 0000000..13d87d4 --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/page-information/page-information.component.html @@ -0,0 +1,56 @@ +
+

Rules

+
+
+

Summary

+
    +
  • + Vulnboxes and VPN servers are provided by us, you don't have to provide + or take care of anything. +
  • +
  • The game will start on @ctfInfo?.StartTime.ToString() UTC.
  • +
  • + You must register before + ctfInfo?.StartTime.AddHours(-ctfInfo.RegistrationCloseOffset).ToString() + UTC. +
  • +
  • + You must check in between + ctfInfo?.StartTime.AddHours(-ctfInfo.CheckInBeginOffset).ToString() UTC + and @ctfInfo?.StartTime.AddHours(-ctfInfo.CheckInEndOffset).ToString() + UTC. +
  • +
  • + You must start your vulnbox once the game starts. +
  • +
  • A round lasts 60 seconds, flags are valid for several rounds.
  • +
  • + Flag format: {{ "ENO[A-Za-z0-9+\/=]{48}" }} +
  • +
  • Flag submission: nc flags.bambi.ovh 1337
  • +
  • + You will find an + Arkime + installation on your vulnbox. Arkime is a traffic analysis tool, not a + vulnerable service. +
  • +
+ +

Scoring

+

+ We are currently using the scoring formula by + Faust CTF. +

+ +

Social Conduct

+

+ The vulnerable services of your opponents are your only valid targets. Do + not engage anything else! +

+

+ Do not attempt to exhaust resources on your opponents' vulnboxes, for + example by sending excessive amounts of requests or exploiting + vulnerabilities leading to a denial of service. +

+
+
diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-information/page-information.component.scss b/EnoLandingPageBackend/ClientApp/src/app/pages/page-information/page-information.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-information/page-information.component.spec.ts b/EnoLandingPageBackend/ClientApp/src/app/pages/page-information/page-information.component.spec.ts new file mode 100644 index 0000000..d6e86ea --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/page-information/page-information.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { PageInformationComponent } from './page-information.component'; + +describe('PageInformationComponent', () => { + let component: PageInformationComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ PageInformationComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(PageInformationComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-information/page-information.component.ts b/EnoLandingPageBackend/ClientApp/src/app/pages/page-information/page-information.component.ts new file mode 100644 index 0000000..55930bb --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/page-information/page-information.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-page-information', + templateUrl: './page-information.component.html', + styleUrls: ['./page-information.component.scss'] +}) +export class PageInformationComponent implements OnInit { + + constructor() { } + + ngOnInit(): void { + } + +} diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-information/page-information.module.ts b/EnoLandingPageBackend/ClientApp/src/app/pages/page-information/page-information.module.ts new file mode 100644 index 0000000..dfe0f46 --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/page-information/page-information.module.ts @@ -0,0 +1,15 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { PageInformationComponent } from './page-information.component'; + + + +@NgModule({ + declarations: [ + PageInformationComponent + ], + imports: [ + CommonModule + ] +}) +export class PageInformationModule { } diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-profile/page-profile.component.html b/EnoLandingPageBackend/ClientApp/src/app/pages/page-profile/page-profile.component.html new file mode 100644 index 0000000..8b0cdc1 --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/page-profile/page-profile.component.html @@ -0,0 +1,132 @@ +
+ + You should have been logged in. + + +

{{ (teamInfo$ | async)!.teamName }}

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+
External IP Address:
+ {{ (teamInfo$ | async)!.externalIpAddress || "coming soon" }} +
+
+
Root Password:
+ {{ (teamInfo$ | async)!.rootPassword || "coming soon" }} +
+
+
Internal IP Address:
+ {{ (teamInfo$ | async)!.internalIpAddress || "coming soon" }} + @(teamInformation.InternalIpAddress ?? "coming soon") +
+
+
Vulnbox Status:
+ {{ (teamInfo$ | async)!.vulnboxStatus || "coming soon" }} +
+
+
Vpn Configuration:
+ +
+
+
+ + diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-profile/page-profile.component.scss b/EnoLandingPageBackend/ClientApp/src/app/pages/page-profile/page-profile.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-profile/page-profile.component.spec.ts b/EnoLandingPageBackend/ClientApp/src/app/pages/page-profile/page-profile.component.spec.ts new file mode 100644 index 0000000..e68f8e5 --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/page-profile/page-profile.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { PageProfileComponent } from './page-profile.component'; + +describe('PageProfileComponent', () => { + let component: PageProfileComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ PageProfileComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(PageProfileComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-profile/page-profile.component.ts b/EnoLandingPageBackend/ClientApp/src/app/pages/page-profile/page-profile.component.ts new file mode 100644 index 0000000..9843bdf --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/page-profile/page-profile.component.ts @@ -0,0 +1,21 @@ +import { Component, OnInit } from '@angular/core'; +import { Select } from '@ngxs/store'; +import { CtfInfoMessage } from 'projects/backend-api/src/lib'; +import { TeamDetailsMessage } from 'projects/backend-api/src/lib/model/teamDetailsMessage'; +import { Observable } from 'rxjs'; +import { AppState } from 'src/app/shared/states/App.state'; + +@Component({ + selector: 'app-page-profile', + templateUrl: './page-profile.component.html', + styleUrls: ['./page-profile.component.scss'], +}) +export class PageProfileComponent implements OnInit { + @Select(AppState.teamInfo) + public teamInfo$!: Observable; + @Select(AppState.ctfInfo) + public ctfInfo$!: Observable; + constructor() {} + + ngOnInit(): void {} +} diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-profile/page-profile.module.ts b/EnoLandingPageBackend/ClientApp/src/app/pages/page-profile/page-profile.module.ts new file mode 100644 index 0000000..3c6c2be --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/page-profile/page-profile.module.ts @@ -0,0 +1,10 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { PageProfileComponent } from './page-profile.component'; +import { MaterialModule } from 'src/app/material.module'; + +@NgModule({ + declarations: [PageProfileComponent], + imports: [CommonModule, MaterialModule], +}) +export class PageProfileModule {} diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.html b/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.html index dfb813e..156b2f3 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.html +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.html @@ -1,19 +1,65 @@ +
+
+ + +
+

Round {{ round }}

+
+ + +
+
+
+ + + + + - + - +
Id + {{ row.teamId }} + Team{{ row.teamName }} +
+ +
+ {{ row.teamName }} (10.0.0.{{ row.teamId }}) +
+ +
+
{{ service.serviceName }} +
+ {{ service.serviceName }} +
+ + Flagstores: {{ service.flagVariants }} +
+
+
+
- change_circle - {{ - element.serviceDetails[ - colIndex - ].serviceLevelAgreementScore.toFixed(0) - }} -
-
- bolt - {{ element.serviceDetails[colIndex].attackScore.toFixed(0) }} +
âš”
+
+ {{ + element.serviceDetails[ + colIndex + ].serviceLevelAgreementScore.toFixed(0) + }} +
+
+ ( + {{ +0 }} + ) +
+
🛡
+
+ {{ element.serviceDetails[colIndex].attackScore.toFixed(0) }} +
+
+ ( + {{ -0 }} + ) +
+
⛨
+
+ {{ element.serviceDetails[colIndex].defenseScore.toFixed(0) }} +
+
+ ( + {{ +0 }} + ) +
-
- health_and_safety - {{ element.serviceDetails[colIndex].defenseScore.toFixed(0) }} -
- diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.scss b/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.scss index d356f2e..af6c730 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.scss +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.scss @@ -1,7 +1,56 @@ +#scoreboard-title { + margin-top: 20px; + display: flex; + justify-content: space-between; + text-align: center; + vertical-align: middle; + + h2 { + margin: 0; + } +} + .service-cell { width: 150px; min-width: 150px; + .sla { + display: grid; + grid-template-columns: repeat(3, 1fr); + grid-template-rows: repeat(3, 1fr); + grid-column-gap: 0px; + grid-row-gap: 0px; + text-align: center; + + .div1 { + grid-area: 1 / 1 / 2 / 2; + } + .div2 { + grid-area: 1 / 2 / 2 / 3; + } + .div3 { + grid-area: 1 / 3 / 2 / 4; + } + .div4 { + grid-area: 2 / 1 / 3 / 2; + } + .div5 { + grid-area: 2 / 2 / 3 / 3; + } + .div6 { + grid-area: 2 / 3 / 3 / 4; + } + .div7 { + grid-area: 3 / 1 / 4 / 2; + } + .div8 { + grid-area: 3 / 2 / 4 / 3; + } + .div9 { + grid-area: 3 / 3 / 4 / 4; + } + } + &.OK { background-color: #9ccc65; } @@ -19,10 +68,6 @@ } } -// .table-cell { -// display: inline-block; -// } - .scoreboard-table { width: 100vw; display: flex; @@ -32,62 +77,10 @@ } } -// .example-sticky-toggle-group { -// margin: 8px; -// } - -// th.mat-column-position, -// td.mat-column-position { -// padding-left: 8px; -// } - .mat-table-sticky-border-elem-left { border-right: 1px solid #e0e0e0; } -// .mat-table { -// overflow-x: auto; -// } - -// .mat-cell, -// .mat-header-cell { -// word-wrap: initial; -// display: table-cell; -// padding: 0px 10px; -// line-break: unset; -// width: 100%; -// white-space: nowrap; -// overflow: hidden; -// vertical-align: middle; -// } - -// .mat-row, -// .mat-header-row { -// display: table-row; -// } - -// .mat-cell { -// width: 190px; -// } -// th.mat-column-position, -// td.mat-column-position { -// padding-left: 8px; -// } - -// .mat-column-filler { -// padding: 0 8px; -// font-size: 10px; -// text-align: center; -// } - -// .mat-row { -// padding: 10px 0px 10px 0; -// } - -// .mat-cell { -// max-width: 75px; -// } - /** * Overwrite Table layout */ diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.ts b/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.ts index 788b4dc..87bff3a 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.ts +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.ts @@ -1,5 +1,12 @@ import { HttpClient } from '@angular/common/http'; -import { Component, OnInit, ViewChild, AfterViewInit } from '@angular/core'; +import { + Component, + OnInit, + ViewChild, + AfterViewInit, + ChangeDetectionStrategy, + ChangeDetectorRef, +} from '@angular/core'; import { MatSort, SortDirection } from '@angular/material/sort'; import { ScoreboardInfo } from 'projects/backend-api/src/lib/model/scoreboardInfo'; import { ScoreboardInfoTeam } from 'projects/backend-api/src/lib/model/scoreboardInfoTeam'; @@ -13,9 +20,11 @@ import { catchError, map, startWith, switchMap } from 'rxjs/operators'; selector: 'app-page-scoreboard', templateUrl: './page-scoreboard.component.html', styleUrls: ['./page-scoreboard.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, }) export class PageScoreboardComponent implements OnInit { - public displayedColumns: string[] = ['teamName']; + public round: number = 0; + public displayedColumns: string[] = ['teamId', 'teamName']; // public scoreboard: ScoreboardInfo; public teams: ScoreboardTeam[] | undefined; @@ -24,7 +33,10 @@ export class PageScoreboardComponent implements OnInit { @ViewChild(MatSort) sort!: MatSort; - constructor(private _httpClient: HttpClient) {} + constructor( + private _httpClient: HttpClient, + private ref: ChangeDetectorRef + ) {} ngAfterViewInit() {} ngOnInit(): void { @@ -51,9 +63,7 @@ export class PageScoreboardComponent implements OnInit { this.displayedColumns.push('service-' + service.serviceId); } }); - // why does vs code show an error here - // v - console.log(this.teams); + this.ref.markForCheck(); }); } diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.module.ts b/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.module.ts index 0652847..91743fd 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.module.ts +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.module.ts @@ -2,9 +2,15 @@ import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; import { PageScoreboardComponent } from './page-scoreboard.component'; import { MaterialModule } from 'src/app/material.module'; - +import { SharedModule } from 'src/app/shared/shared.module'; +import { TableVirtualScrollModule } from 'ng-table-virtual-scroll'; @NgModule({ declarations: [PageScoreboardComponent], - imports: [CommonModule, MaterialModule], + imports: [ + CommonModule, + MaterialModule, + SharedModule, + TableVirtualScrollModule, + ], }) export class PageScoreboardModule {} diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-teams/page-teams.component.html b/EnoLandingPageBackend/ClientApp/src/app/pages/page-teams/page-teams.component.html index c0f44cf..b71d0cd 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/pages/page-teams/page-teams.component.html +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/page-teams/page-teams.component.html @@ -1,12 +1,14 @@
- Confirmed Teams: -
- Registred Teams: -
-
- {{ team.name }} -
-
+

Confirmed Teams

+ + + + +

Registered Teams

+ + + +
diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-teams/page-teams.module.ts b/EnoLandingPageBackend/ClientApp/src/app/pages/page-teams/page-teams.module.ts index 2381ca3..8caf32e 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/pages/page-teams/page-teams.module.ts +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/page-teams/page-teams.module.ts @@ -1,15 +1,11 @@ import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; import { PageTeamsComponent } from './page-teams.component'; - - +import { MaterialModule } from 'src/app/material.module'; +import { SharedModule } from 'src/app/shared/shared.module'; @NgModule({ - declarations: [ - PageTeamsComponent - ], - imports: [ - CommonModule - ] + declarations: [PageTeamsComponent], + imports: [CommonModule, MaterialModule, SharedModule], }) -export class PageTeamsModule { } +export class PageTeamsModule {} diff --git a/EnoLandingPageBackend/ClientApp/src/app/shared/components/country-flag/country-flag.component.html b/EnoLandingPageBackend/ClientApp/src/app/shared/components/country-flag/country-flag.component.html new file mode 100644 index 0000000..7f09b7c --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/src/app/shared/components/country-flag/country-flag.component.html @@ -0,0 +1,8 @@ + diff --git a/EnoLandingPageBackend/ClientApp/src/app/shared/components/country-flag/country-flag.component.scss b/EnoLandingPageBackend/ClientApp/src/app/shared/components/country-flag/country-flag.component.scss new file mode 100644 index 0000000..ae4a267 --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/src/app/shared/components/country-flag/country-flag.component.scss @@ -0,0 +1,4 @@ +img { + max-width: 32px; + max-height: 32px; +} diff --git a/EnoLandingPageBackend/ClientApp/src/app/shared/components/country-flag/country-flag.component.spec.ts b/EnoLandingPageBackend/ClientApp/src/app/shared/components/country-flag/country-flag.component.spec.ts new file mode 100644 index 0000000..5cc989a --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/src/app/shared/components/country-flag/country-flag.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { CountryFlagComponent } from './country-flag.component'; + +describe('CountryFlagComponent', () => { + let component: CountryFlagComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ CountryFlagComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(CountryFlagComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/EnoLandingPageBackend/ClientApp/src/app/shared/components/country-flag/country-flag.component.ts b/EnoLandingPageBackend/ClientApp/src/app/shared/components/country-flag/country-flag.component.ts new file mode 100644 index 0000000..ab30e91 --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/src/app/shared/components/country-flag/country-flag.component.ts @@ -0,0 +1,14 @@ +import { Component, Input, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-country-flag', + templateUrl: './country-flag.component.html', + styleUrls: ['./country-flag.component.scss'], +}) +export class CountryFlagComponent implements OnInit { + @Input() + public isoCountryCode!: string; + constructor() {} + + ngOnInit(): void {} +} diff --git a/EnoLandingPageBackend/ClientApp/src/app/shared/components/team-logo/team-logo.component.html b/EnoLandingPageBackend/ClientApp/src/app/shared/components/team-logo/team-logo.component.html new file mode 100644 index 0000000..da2e321 --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/src/app/shared/components/team-logo/team-logo.component.html @@ -0,0 +1 @@ + diff --git a/EnoLandingPageBackend/ClientApp/src/app/shared/components/team-logo/team-logo.component.scss b/EnoLandingPageBackend/ClientApp/src/app/shared/components/team-logo/team-logo.component.scss new file mode 100644 index 0000000..1175072 --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/src/app/shared/components/team-logo/team-logo.component.scss @@ -0,0 +1,4 @@ +img { + max-width: 64px; + max-height: 64px; +} diff --git a/EnoLandingPageBackend/ClientApp/src/app/shared/components/team-logo/team-logo.component.spec.ts b/EnoLandingPageBackend/ClientApp/src/app/shared/components/team-logo/team-logo.component.spec.ts new file mode 100644 index 0000000..ed003da --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/src/app/shared/components/team-logo/team-logo.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { TeamLogoComponent } from './team-logo.component'; + +describe('TeamLogoComponent', () => { + let component: TeamLogoComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ TeamLogoComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(TeamLogoComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/EnoLandingPageBackend/ClientApp/src/app/shared/components/team-logo/team-logo.component.ts b/EnoLandingPageBackend/ClientApp/src/app/shared/components/team-logo/team-logo.component.ts new file mode 100644 index 0000000..b6330f0 --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/src/app/shared/components/team-logo/team-logo.component.ts @@ -0,0 +1,14 @@ +import { Component, Input, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-team-logo', + templateUrl: './team-logo.component.html', + styleUrls: ['./team-logo.component.scss'], +}) +export class TeamLogoComponent implements OnInit { + @Input() + logoUrl!: string; + constructor() {} + + ngOnInit(): void {} +} diff --git a/EnoLandingPageBackend/ClientApp/src/app/shared/components/team/team.component.html b/EnoLandingPageBackend/ClientApp/src/app/shared/components/team/team.component.html new file mode 100644 index 0000000..bd7266d --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/src/app/shared/components/team/team.component.html @@ -0,0 +1,8 @@ + + + {{ team.name }} + + diff --git a/EnoLandingPageBackend/ClientApp/src/app/shared/components/team/team.component.scss b/EnoLandingPageBackend/ClientApp/src/app/shared/components/team/team.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/EnoLandingPageBackend/ClientApp/src/app/shared/components/team/team.component.spec.ts b/EnoLandingPageBackend/ClientApp/src/app/shared/components/team/team.component.spec.ts new file mode 100644 index 0000000..c805519 --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/src/app/shared/components/team/team.component.spec.ts @@ -0,0 +1,24 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { TeamComponent } from './teams.component'; + +describe('TeamsComponent', () => { + let component: TeamComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [TeamComponent], + }).compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(TeamComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/EnoLandingPageBackend/ClientApp/src/app/shared/components/team/team.component.ts b/EnoLandingPageBackend/ClientApp/src/app/shared/components/team/team.component.ts new file mode 100644 index 0000000..02f0e5f --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/src/app/shared/components/team/team.component.ts @@ -0,0 +1,15 @@ +import { Component, Input, OnInit } from '@angular/core'; +import { TeamMessage } from 'projects/backend-api/src/lib'; + +@Component({ + selector: 'app-team', + templateUrl: './team.component.html', + styleUrls: ['./team.component.scss'], +}) +export class TeamComponent implements OnInit { + @Input() + public team!: TeamMessage; + constructor() {} + + ngOnInit(): void {} +} diff --git a/EnoLandingPageBackend/ClientApp/src/app/shared/shared.module.ts b/EnoLandingPageBackend/ClientApp/src/app/shared/shared.module.ts new file mode 100644 index 0000000..8144a31 --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/src/app/shared/shared.module.ts @@ -0,0 +1,13 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { TeamComponent } from './components/team/team.component'; +import { MaterialModule } from '../material.module'; +import { CountryFlagComponent } from './components/country-flag/country-flag.component'; +import { TeamLogoComponent } from './components/team-logo/team-logo.component'; + +@NgModule({ + declarations: [TeamComponent, CountryFlagComponent, TeamLogoComponent], + imports: [CommonModule, MaterialModule], + exports: [TeamComponent, CountryFlagComponent, TeamLogoComponent], +}) +export class SharedModule {} diff --git a/EnoLandingPageBackend/ClientApp/src/app/shared/states/App.state.ts b/EnoLandingPageBackend/ClientApp/src/app/shared/states/App.state.ts index 00292cf..d39a906 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/shared/states/App.state.ts +++ b/EnoLandingPageBackend/ClientApp/src/app/shared/states/App.state.ts @@ -1,5 +1,18 @@ import { Injectable } from '@angular/core'; -import { Action, Selector, State, StateContext } from '@ngxs/store'; +import { + Action, + NgxsOnInit, + Selector, + State, + StateContext, + Store, +} from '@ngxs/store'; +import { + AccountService, + CtfInfoMessage, + DataService, +} from 'projects/backend-api/src/lib'; +import { TeamDetailsMessage } from 'projects/backend-api/src/lib/model/teamDetailsMessage'; import { ThemeService } from 'src/app/services/theme.service'; import { Theme } from 'src/app/shared/models/enumberables/Theme'; @@ -27,10 +40,17 @@ export class InitTheme { public static readonly type: string = '[App State] Init activeTheme'; } +export class Login { + public static readonly type: string = '[App State] Login'; +} + export interface AppStateModel { serviceWorkerNotificationDisplayed: boolean; version: string; activeTheme: Theme; + authenticated: boolean; + teamInfo: TeamDetailsMessage | null; + ctfInfo: CtfInfoMessage | null; } @State({ @@ -38,12 +58,40 @@ export interface AppStateModel { defaults: { serviceWorkerNotificationDisplayed: false, version: '0.0.0', - activeTheme: Theme.default_light, + activeTheme: Theme.default_dark, + authenticated: false, + teamInfo: null, + ctfInfo: null, }, }) @Injectable() -export class AppState { - constructor(private themeService: ThemeService) {} +export class AppState implements NgxsOnInit { + constructor( + private themeService: ThemeService, + private accountService: AccountService, + private dataService: DataService + ) {} + ngxsOnInit(ctx: StateContext) { + this.accountService.apiAccountInfoGet().subscribe( + (accountInfo) => { + let state = ctx.getState(); + ctx.setState({ ...state, authenticated: true, teamInfo: accountInfo }); + }, + (error) => { + // Do nothing the use is simply not authenticated + } + ); + this.dataService.apiDataCtfInfoGet().subscribe( + (ctfInfo) => { + let state = ctx.getState(); + ctx.setState({ ...state, authenticated: true, ctfInfo: ctfInfo }); + }, + (error) => { + // Do nothing for now + } + ); + } + @Selector() public static serviceWorkerNotificationDisplayed( state: AppStateModel @@ -60,6 +108,21 @@ export class AppState { return state.activeTheme; } + @Selector() + public static authenticated(state: AppStateModel): boolean { + return state.authenticated; + } + + @Selector() + public static teamInfo(state: AppStateModel): TeamDetailsMessage | null { + return state.teamInfo; + } + + @Selector() + public static ctfInfo(state: AppStateModel): CtfInfoMessage | null { + return state.ctfInfo; + } + @Action(ServiceWorkerNotificationDisplayed) public serviceWorkerNotificationDisplayed(ctx: StateContext) { const state = ctx.getState(); diff --git a/EnoLandingPageBackend/ClientApp/src/styles.scss b/EnoLandingPageBackend/ClientApp/src/styles.scss index 67d96d1..069fe52 100644 --- a/EnoLandingPageBackend/ClientApp/src/styles.scss +++ b/EnoLandingPageBackend/ClientApp/src/styles.scss @@ -234,3 +234,15 @@ $big-breakpoint: 1024px; display: none; } } + +/** +* Overwrites +*/ +button.mat-button .mat-icon, +a.mat-button .mat-icon, +a.mat-raised-button .mat-icon, +a.mat-flat-button .mat-icon, +a.mat-stroked-button .mat-icon { + vertical-align: top; + font-size: 1.25em; +} diff --git a/EnoLandingPageBackend/ClientApp/tsconfig.json b/EnoLandingPageBackend/ClientApp/tsconfig.json index dd6465d..81cf6f8 100644 --- a/EnoLandingPageBackend/ClientApp/tsconfig.json +++ b/EnoLandingPageBackend/ClientApp/tsconfig.json @@ -3,10 +3,7 @@ "compileOnSave": false, "compilerOptions": { "paths": { - "backend-api": [ - "dist/backend-api/backend-api", - "dist/backend-api" - ] + "backend-api": ["dist/backend-api/backend-api", "dist/backend-api"] }, "baseUrl": "./", "outDir": "./dist/out-tsc", @@ -22,15 +19,13 @@ "importHelpers": true, "target": "es2017", "module": "es2020", - "lib": [ - "es2018", - "dom" - ] + "lib": ["es2018", "dom"] }, "angularCompilerOptions": { "enableI18nLegacyMessageIdFormat": false, "strictInjectionParameters": true, "strictInputAccessModifiers": true, - "strictTemplates": true + "strictTemplates": true, + "fullTemplateTypeCheck": true } } From fd1a3b4f6e63b4df464e660edca2dad49b9298e3 Mon Sep 17 00:00:00 2001 From: Daniel Habenicht Date: Thu, 17 Jun 2021 18:52:25 +0200 Subject: [PATCH 016/118] re/move old projects --- .../Controllers/DataController.cs | 6 + .../Database/LandingPageTeam.cs | 62 +- .../Database/LandingPageTeamVulnbox.cs | 54 +- .../Database/LandingPageVulnboxStatus.cs | 30 +- .../Hetzner/HetznerException.cs | 40 +- .../Hetzner/OtherRequestRunningException.cs | 24 +- .../Hetzner/ServerExistsException.cs | 24 +- .../Hetzner/ServerNotExistsException.cs | 24 +- .../Models}/CtfInfoMessage.cs | 26 +- EnoLandingPageBackend/Models/ErrorDto.cs | 38 + .../Models}/TeamDetailsMessage.cs | 34 +- .../Models}/TeamsMessage.cs | 24 +- .../Swashbuckle/Filter/DefaultFilter.cs | 90 + EnoLandingPageCore/EnoLandingPageCore.csproj | 19 - EnoLandingPageFrontend/App.razor | 12 - .../EnoLandingPageFrontend.csproj | 23 - .../Pages/ADForBeginnersView.razor | 29 - EnoLandingPageFrontend/Pages/AdminView.razor | 14 - .../Pages/ContactView.razor | 22 - EnoLandingPageFrontend/Pages/Index.razor | 22 - EnoLandingPageFrontend/Pages/LoginView.razor | 31 - .../Pages/NetworkView.razor | 36 - .../Pages/ProfileView.razor | 156 - .../Pages/RegistrationClosedView.razor | 12 - EnoLandingPageFrontend/Pages/RulesView.razor | 59 - .../Pages/ScoreboardView.razor | 284 - .../Pages/ScoreboardView.razor.css | 142 - EnoLandingPageFrontend/Pages/TeamsView.razor | 79 - .../Pages/TeamsView.razor.css | 30 - EnoLandingPageFrontend/Program.cs | 35 - .../Properties/launchSettings.json | 13 - .../LandingPageAuthenticationStateProvider.cs | 44 - .../Services/LandingPageDataApiService.cs | 121 - .../LandingPageScoreboardApiService.cs | 91 - .../Services/LandingPageServiceException.cs | 15 - .../Shared/MainLayout.razor | 6 - .../Shared/MainLayout.razor.css | 0 EnoLandingPageFrontend/Shared/NavMenu.razor | 67 - .../Shared/NavMenu.razor.css | 12 - .../Shared/SurveyPrompt.razor | 16 - EnoLandingPageFrontend/_Imports.razor | 12 - EnoLandingPageFrontend/wwwroot/css/app.css | 73 - .../wwwroot/css/bootstrap/bootstrap.min.css | 7 - .../css/bootstrap/bootstrap.min.css.map | 1 - .../wwwroot/css/fontawesome-free/all.css | 4619 --- .../wwwroot/css/fontawesome-free/all.min.css | 5 - .../wwwroot/css/fontawesome-free/brands.css | 15 - .../css/fontawesome-free/brands.min.css | 5 - .../css/fontawesome-free/fontawesome.css | 4585 --- .../css/fontawesome-free/fontawesome.min.css | 5 - .../wwwroot/css/fontawesome-free/regular.css | 15 - .../css/fontawesome-free/regular.min.css | 5 - .../wwwroot/css/fontawesome-free/solid.css | 16 - .../css/fontawesome-free/solid.min.css | 5 - .../css/fontawesome-free/svg-with-js.css | 371 - .../css/fontawesome-free/svg-with-js.min.css | 5 - .../wwwroot/css/fontawesome-free/v4-shims.css | 2172 -- .../css/fontawesome-free/v4-shims.min.css | 5 - .../wwwroot/css/open-iconic/FONT-LICENSE | 86 - .../wwwroot/css/open-iconic/ICON-LICENSE | 21 - .../wwwroot/css/open-iconic/README.md | 114 - .../font/css/open-iconic-bootstrap.min.css | 1 - .../open-iconic/font/fonts/open-iconic.eot | Bin 28196 -> 0 bytes .../open-iconic/font/fonts/open-iconic.otf | Bin 20996 -> 0 bytes .../open-iconic/font/fonts/open-iconic.svg | 543 - .../open-iconic/font/fonts/open-iconic.ttf | Bin 28028 -> 0 bytes .../open-iconic/font/fonts/open-iconic.woff | Bin 14984 -> 0 bytes .../wwwroot/css/webfonts/fa-brands-400.eot | Bin 136822 -> 0 bytes .../wwwroot/css/webfonts/fa-brands-400.svg | 3717 -- .../wwwroot/css/webfonts/fa-brands-400.ttf | Bin 136516 -> 0 bytes .../wwwroot/css/webfonts/fa-brands-400.woff | Bin 92136 -> 0 bytes .../wwwroot/css/webfonts/fa-brands-400.woff2 | Bin 78460 -> 0 bytes .../wwwroot/css/webfonts/fa-regular-400.eot | Bin 34350 -> 0 bytes .../wwwroot/css/webfonts/fa-regular-400.svg | 801 - .../wwwroot/css/webfonts/fa-regular-400.ttf | Bin 34052 -> 0 bytes .../wwwroot/css/webfonts/fa-regular-400.woff | Bin 16772 -> 0 bytes .../wwwroot/css/webfonts/fa-regular-400.woff2 | Bin 13548 -> 0 bytes .../wwwroot/css/webfonts/fa-solid-900.eot | Bin 204814 -> 0 bytes .../wwwroot/css/webfonts/fa-solid-900.svg | 5028 --- .../wwwroot/css/webfonts/fa-solid-900.ttf | Bin 204528 -> 0 bytes .../wwwroot/css/webfonts/fa-solid-900.woff | Bin 104280 -> 0 bytes .../wwwroot/css/webfonts/fa-solid-900.woff2 | Bin 80300 -> 0 bytes EnoLandingPageFrontend/wwwroot/favicon.png | Bin 15239 -> 0 bytes .../wwwroot/images/bambictf5.png | Bin 46277 -> 0 bytes .../wwwroot/images/deers-88991.jpg | Bin 567253 -> 0 bytes .../wwwroot/images/nw-e4.png | Bin 47675 -> 0 bytes EnoLandingPageFrontend/wwwroot/index.html | 27 - Frontend/.gitignore | 231 - Frontend/ClientApp/.editorconfig | 16 - Frontend/ClientApp/.gitignore | 40 - Frontend/ClientApp/README.md | 27 - Frontend/ClientApp/angular.json | 136 - Frontend/ClientApp/browserslist | 9 - Frontend/ClientApp/e2e/protractor.conf.js | 28 - Frontend/ClientApp/e2e/src/app.e2e-spec.ts | 14 - Frontend/ClientApp/e2e/src/app.po.ts | 11 - Frontend/ClientApp/e2e/tsconfig.e2e.json | 13 - Frontend/ClientApp/package-lock.json | 28433 ---------------- Frontend/ClientApp/package.json | 62 - Frontend/ClientApp/src/app/app.component.html | 6 - Frontend/ClientApp/src/app/app.component.ts | 9 - Frontend/ClientApp/src/app/app.module.ts | 34 - .../ClientApp/src/app/app.server.module.ts | 11 - .../src/app/counter/counter.component.html | 7 - .../src/app/counter/counter.component.spec.ts | 34 - .../src/app/counter/counter.component.ts | 13 - .../app/fetch-data/fetch-data.component.html | 24 - .../app/fetch-data/fetch-data.component.ts | 23 - .../src/app/home/home.component.html | 14 - .../ClientApp/src/app/home/home.component.ts | 8 - .../src/app/nav-menu/nav-menu.component.css | 18 - .../src/app/nav-menu/nav-menu.component.html | 44 - .../src/app/nav-menu/nav-menu.component.ts | 18 - Frontend/ClientApp/src/assets/.gitkeep | 0 .../src/environments/environment.prod.ts | 3 - .../ClientApp/src/environments/environment.ts | 15 - Frontend/ClientApp/src/index.html | 14 - Frontend/ClientApp/src/karma.conf.js | 31 - Frontend/ClientApp/src/main.ts | 20 - Frontend/ClientApp/src/polyfills.ts | 63 - Frontend/ClientApp/src/styles.css | 16 - Frontend/ClientApp/src/test.ts | 20 - Frontend/ClientApp/src/tsconfig.app.json | 11 - Frontend/ClientApp/src/tsconfig.server.json | 9 - Frontend/ClientApp/src/tsconfig.spec.json | 18 - Frontend/ClientApp/src/tslint.json | 17 - Frontend/ClientApp/tsconfig.json | 21 - Frontend/ClientApp/tslint.json | 130 - .../Controllers/WeatherForecastController.cs | 39 - Frontend/Frontend.csproj | 54 - Frontend/Pages/Error.cshtml | 26 - Frontend/Pages/Error.cshtml.cs | 31 - Frontend/Pages/_ViewImports.cshtml | 3 - Frontend/Program.cs | 26 - Frontend/Properties/launchSettings.json | 27 - Frontend/Startup.cs | 75 - Frontend/WeatherForecast.cs | 15 - Frontend/appsettings.Development.json | 9 - Frontend/appsettings.json | 10 - Frontend/wwwroot/favicon.ico | Bin 5430 -> 0 bytes 140 files changed, 305 insertions(+), 53806 deletions(-) rename {EnoLandingPageCore => EnoLandingPageBackend}/Database/LandingPageTeam.cs (96%) rename {EnoLandingPageCore => EnoLandingPageBackend}/Database/LandingPageTeamVulnbox.cs (97%) rename {EnoLandingPageCore => EnoLandingPageBackend}/Database/LandingPageVulnboxStatus.cs (94%) rename {EnoLandingPageCore => EnoLandingPageBackend}/Hetzner/HetznerException.cs (95%) rename {EnoLandingPageCore => EnoLandingPageBackend}/Hetzner/OtherRequestRunningException.cs (95%) rename {EnoLandingPageCore => EnoLandingPageBackend}/Hetzner/ServerExistsException.cs (95%) rename {EnoLandingPageCore => EnoLandingPageBackend}/Hetzner/ServerNotExistsException.cs (95%) rename {EnoLandingPageCore/Messages => EnoLandingPageBackend/Models}/CtfInfoMessage.cs (87%) create mode 100644 EnoLandingPageBackend/Models/ErrorDto.cs rename {EnoLandingPageCore/Messages => EnoLandingPageBackend/Models}/TeamDetailsMessage.cs (96%) rename {EnoLandingPageCore/Messages => EnoLandingPageBackend/Models}/TeamsMessage.cs (96%) create mode 100644 EnoLandingPageBackend/Swashbuckle/Filter/DefaultFilter.cs delete mode 100644 EnoLandingPageCore/EnoLandingPageCore.csproj delete mode 100644 EnoLandingPageFrontend/App.razor delete mode 100644 EnoLandingPageFrontend/EnoLandingPageFrontend.csproj delete mode 100644 EnoLandingPageFrontend/Pages/ADForBeginnersView.razor delete mode 100644 EnoLandingPageFrontend/Pages/AdminView.razor delete mode 100644 EnoLandingPageFrontend/Pages/ContactView.razor delete mode 100644 EnoLandingPageFrontend/Pages/Index.razor delete mode 100644 EnoLandingPageFrontend/Pages/LoginView.razor delete mode 100644 EnoLandingPageFrontend/Pages/NetworkView.razor delete mode 100644 EnoLandingPageFrontend/Pages/ProfileView.razor delete mode 100644 EnoLandingPageFrontend/Pages/RegistrationClosedView.razor delete mode 100644 EnoLandingPageFrontend/Pages/RulesView.razor delete mode 100644 EnoLandingPageFrontend/Pages/ScoreboardView.razor delete mode 100644 EnoLandingPageFrontend/Pages/ScoreboardView.razor.css delete mode 100644 EnoLandingPageFrontend/Pages/TeamsView.razor delete mode 100644 EnoLandingPageFrontend/Pages/TeamsView.razor.css delete mode 100644 EnoLandingPageFrontend/Program.cs delete mode 100644 EnoLandingPageFrontend/Properties/launchSettings.json delete mode 100644 EnoLandingPageFrontend/Services/LandingPageAuthenticationStateProvider.cs delete mode 100644 EnoLandingPageFrontend/Services/LandingPageDataApiService.cs delete mode 100644 EnoLandingPageFrontend/Services/LandingPageScoreboardApiService.cs delete mode 100644 EnoLandingPageFrontend/Services/LandingPageServiceException.cs delete mode 100644 EnoLandingPageFrontend/Shared/MainLayout.razor delete mode 100644 EnoLandingPageFrontend/Shared/MainLayout.razor.css delete mode 100644 EnoLandingPageFrontend/Shared/NavMenu.razor delete mode 100644 EnoLandingPageFrontend/Shared/NavMenu.razor.css delete mode 100644 EnoLandingPageFrontend/Shared/SurveyPrompt.razor delete mode 100644 EnoLandingPageFrontend/_Imports.razor delete mode 100644 EnoLandingPageFrontend/wwwroot/css/app.css delete mode 100644 EnoLandingPageFrontend/wwwroot/css/bootstrap/bootstrap.min.css delete mode 100644 EnoLandingPageFrontend/wwwroot/css/bootstrap/bootstrap.min.css.map delete mode 100644 EnoLandingPageFrontend/wwwroot/css/fontawesome-free/all.css delete mode 100644 EnoLandingPageFrontend/wwwroot/css/fontawesome-free/all.min.css delete mode 100644 EnoLandingPageFrontend/wwwroot/css/fontawesome-free/brands.css delete mode 100644 EnoLandingPageFrontend/wwwroot/css/fontawesome-free/brands.min.css delete mode 100644 EnoLandingPageFrontend/wwwroot/css/fontawesome-free/fontawesome.css delete mode 100644 EnoLandingPageFrontend/wwwroot/css/fontawesome-free/fontawesome.min.css delete mode 100644 EnoLandingPageFrontend/wwwroot/css/fontawesome-free/regular.css delete mode 100644 EnoLandingPageFrontend/wwwroot/css/fontawesome-free/regular.min.css delete mode 100644 EnoLandingPageFrontend/wwwroot/css/fontawesome-free/solid.css delete mode 100644 EnoLandingPageFrontend/wwwroot/css/fontawesome-free/solid.min.css delete mode 100644 EnoLandingPageFrontend/wwwroot/css/fontawesome-free/svg-with-js.css delete mode 100644 EnoLandingPageFrontend/wwwroot/css/fontawesome-free/svg-with-js.min.css delete mode 100644 EnoLandingPageFrontend/wwwroot/css/fontawesome-free/v4-shims.css delete mode 100644 EnoLandingPageFrontend/wwwroot/css/fontawesome-free/v4-shims.min.css delete mode 100644 EnoLandingPageFrontend/wwwroot/css/open-iconic/FONT-LICENSE delete mode 100644 EnoLandingPageFrontend/wwwroot/css/open-iconic/ICON-LICENSE delete mode 100644 EnoLandingPageFrontend/wwwroot/css/open-iconic/README.md delete mode 100644 EnoLandingPageFrontend/wwwroot/css/open-iconic/font/css/open-iconic-bootstrap.min.css delete mode 100644 EnoLandingPageFrontend/wwwroot/css/open-iconic/font/fonts/open-iconic.eot delete mode 100644 EnoLandingPageFrontend/wwwroot/css/open-iconic/font/fonts/open-iconic.otf delete mode 100644 EnoLandingPageFrontend/wwwroot/css/open-iconic/font/fonts/open-iconic.svg delete mode 100644 EnoLandingPageFrontend/wwwroot/css/open-iconic/font/fonts/open-iconic.ttf delete mode 100644 EnoLandingPageFrontend/wwwroot/css/open-iconic/font/fonts/open-iconic.woff delete mode 100644 EnoLandingPageFrontend/wwwroot/css/webfonts/fa-brands-400.eot delete mode 100644 EnoLandingPageFrontend/wwwroot/css/webfonts/fa-brands-400.svg delete mode 100644 EnoLandingPageFrontend/wwwroot/css/webfonts/fa-brands-400.ttf delete mode 100644 EnoLandingPageFrontend/wwwroot/css/webfonts/fa-brands-400.woff delete mode 100644 EnoLandingPageFrontend/wwwroot/css/webfonts/fa-brands-400.woff2 delete mode 100644 EnoLandingPageFrontend/wwwroot/css/webfonts/fa-regular-400.eot delete mode 100644 EnoLandingPageFrontend/wwwroot/css/webfonts/fa-regular-400.svg delete mode 100644 EnoLandingPageFrontend/wwwroot/css/webfonts/fa-regular-400.ttf delete mode 100644 EnoLandingPageFrontend/wwwroot/css/webfonts/fa-regular-400.woff delete mode 100644 EnoLandingPageFrontend/wwwroot/css/webfonts/fa-regular-400.woff2 delete mode 100644 EnoLandingPageFrontend/wwwroot/css/webfonts/fa-solid-900.eot delete mode 100644 EnoLandingPageFrontend/wwwroot/css/webfonts/fa-solid-900.svg delete mode 100644 EnoLandingPageFrontend/wwwroot/css/webfonts/fa-solid-900.ttf delete mode 100644 EnoLandingPageFrontend/wwwroot/css/webfonts/fa-solid-900.woff delete mode 100644 EnoLandingPageFrontend/wwwroot/css/webfonts/fa-solid-900.woff2 delete mode 100644 EnoLandingPageFrontend/wwwroot/favicon.png delete mode 100644 EnoLandingPageFrontend/wwwroot/images/bambictf5.png delete mode 100644 EnoLandingPageFrontend/wwwroot/images/deers-88991.jpg delete mode 100644 EnoLandingPageFrontend/wwwroot/images/nw-e4.png delete mode 100644 EnoLandingPageFrontend/wwwroot/index.html delete mode 100644 Frontend/.gitignore delete mode 100644 Frontend/ClientApp/.editorconfig delete mode 100644 Frontend/ClientApp/.gitignore delete mode 100644 Frontend/ClientApp/README.md delete mode 100644 Frontend/ClientApp/angular.json delete mode 100644 Frontend/ClientApp/browserslist delete mode 100644 Frontend/ClientApp/e2e/protractor.conf.js delete mode 100644 Frontend/ClientApp/e2e/src/app.e2e-spec.ts delete mode 100644 Frontend/ClientApp/e2e/src/app.po.ts delete mode 100644 Frontend/ClientApp/e2e/tsconfig.e2e.json delete mode 100644 Frontend/ClientApp/package-lock.json delete mode 100644 Frontend/ClientApp/package.json delete mode 100644 Frontend/ClientApp/src/app/app.component.html delete mode 100644 Frontend/ClientApp/src/app/app.component.ts delete mode 100644 Frontend/ClientApp/src/app/app.module.ts delete mode 100644 Frontend/ClientApp/src/app/app.server.module.ts delete mode 100644 Frontend/ClientApp/src/app/counter/counter.component.html delete mode 100644 Frontend/ClientApp/src/app/counter/counter.component.spec.ts delete mode 100644 Frontend/ClientApp/src/app/counter/counter.component.ts delete mode 100644 Frontend/ClientApp/src/app/fetch-data/fetch-data.component.html delete mode 100644 Frontend/ClientApp/src/app/fetch-data/fetch-data.component.ts delete mode 100644 Frontend/ClientApp/src/app/home/home.component.html delete mode 100644 Frontend/ClientApp/src/app/home/home.component.ts delete mode 100644 Frontend/ClientApp/src/app/nav-menu/nav-menu.component.css delete mode 100644 Frontend/ClientApp/src/app/nav-menu/nav-menu.component.html delete mode 100644 Frontend/ClientApp/src/app/nav-menu/nav-menu.component.ts delete mode 100644 Frontend/ClientApp/src/assets/.gitkeep delete mode 100644 Frontend/ClientApp/src/environments/environment.prod.ts delete mode 100644 Frontend/ClientApp/src/environments/environment.ts delete mode 100644 Frontend/ClientApp/src/index.html delete mode 100644 Frontend/ClientApp/src/karma.conf.js delete mode 100644 Frontend/ClientApp/src/main.ts delete mode 100644 Frontend/ClientApp/src/polyfills.ts delete mode 100644 Frontend/ClientApp/src/styles.css delete mode 100644 Frontend/ClientApp/src/test.ts delete mode 100644 Frontend/ClientApp/src/tsconfig.app.json delete mode 100644 Frontend/ClientApp/src/tsconfig.server.json delete mode 100644 Frontend/ClientApp/src/tsconfig.spec.json delete mode 100644 Frontend/ClientApp/src/tslint.json delete mode 100644 Frontend/ClientApp/tsconfig.json delete mode 100644 Frontend/ClientApp/tslint.json delete mode 100644 Frontend/Controllers/WeatherForecastController.cs delete mode 100644 Frontend/Frontend.csproj delete mode 100644 Frontend/Pages/Error.cshtml delete mode 100644 Frontend/Pages/Error.cshtml.cs delete mode 100644 Frontend/Pages/_ViewImports.cshtml delete mode 100644 Frontend/Program.cs delete mode 100644 Frontend/Properties/launchSettings.json delete mode 100644 Frontend/Startup.cs delete mode 100644 Frontend/WeatherForecast.cs delete mode 100644 Frontend/appsettings.Development.json delete mode 100644 Frontend/appsettings.json delete mode 100644 Frontend/wwwroot/favicon.ico diff --git a/EnoLandingPageBackend/Controllers/DataController.cs b/EnoLandingPageBackend/Controllers/DataController.cs index 254aec9..76a3b69 100644 --- a/EnoLandingPageBackend/Controllers/DataController.cs +++ b/EnoLandingPageBackend/Controllers/DataController.cs @@ -36,6 +36,10 @@ public ActionResult CtfInfo() this.settings.CheckInEndOffset)); } + /// + /// Get all Teams. + /// + /// A Message of Teams participating and not participating. [HttpGet] public async Task> Teams() { @@ -53,6 +57,8 @@ public async Task IPs() .Where(t => t.Confirmed) .Select(t => $"10.0.0.{t.Id}"); + // Not good? + // https://stackoverflow.com/questions/10615797/utility-of-http-header-content-type-application-force-download-for-mobile return this.File( Encoding.ASCII.GetBytes(string.Join("\n", teams)), "application/force-download", diff --git a/EnoLandingPageCore/Database/LandingPageTeam.cs b/EnoLandingPageBackend/Database/LandingPageTeam.cs similarity index 96% rename from EnoLandingPageCore/Database/LandingPageTeam.cs rename to EnoLandingPageBackend/Database/LandingPageTeam.cs index 8121b2f..72fbe28 100644 --- a/EnoLandingPageCore/Database/LandingPageTeam.cs +++ b/EnoLandingPageBackend/Database/LandingPageTeam.cs @@ -1,31 +1,31 @@ -namespace EnoLandingPageCore.Database -{ - using System; - using System.Collections.Generic; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - - public class LandingPageTeam - { -#pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. - public long Id { get; set; } - - public long? CtftimeId { get; set; } - - public bool Confirmed { get; set; } - - public string Name { get; set; } - - public string? LogoUrl { get; set; } - - public string? UniversityAffiliation { get; set; } - - public string? CountryCode { get; set; } - - public long VulnboxId { get; set; } - - public virtual LandingPageTeamVulnbox Vulnbox { get; set; } -#pragma warning restore CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. - } -} +namespace EnoLandingPageCore.Database +{ + using System; + using System.Collections.Generic; + using System.Linq; + using System.Text; + using System.Threading.Tasks; + + public class LandingPageTeam + { +#pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. + public long Id { get; set; } + + public long? CtftimeId { get; set; } + + public bool Confirmed { get; set; } + + public string Name { get; set; } + + public string? LogoUrl { get; set; } + + public string? UniversityAffiliation { get; set; } + + public string? CountryCode { get; set; } + + public long VulnboxId { get; set; } + + public virtual LandingPageTeamVulnbox Vulnbox { get; set; } +#pragma warning restore CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. + } +} diff --git a/EnoLandingPageCore/Database/LandingPageTeamVulnbox.cs b/EnoLandingPageBackend/Database/LandingPageTeamVulnbox.cs similarity index 97% rename from EnoLandingPageCore/Database/LandingPageTeamVulnbox.cs rename to EnoLandingPageBackend/Database/LandingPageTeamVulnbox.cs index b12be8c..29737cc 100644 --- a/EnoLandingPageCore/Database/LandingPageTeamVulnbox.cs +++ b/EnoLandingPageBackend/Database/LandingPageTeamVulnbox.cs @@ -1,27 +1,27 @@ -namespace EnoLandingPageCore.Database -{ - using System; - using System.Collections.Generic; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - - public class LandingPageTeamVulnbox - { -#pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. - public long Id { get; set; } - - public LandingPageVulnboxStatus VulnboxStatus { get; set; } - - public string? ExternalAddress { get; set; } - - public long? HetznerServerId { get; set; } - - public string? RootPassword { get; set; } - - public long LandingPageTeamId { get; set; } - - public virtual LandingPageTeam LandingPageTeam { get; set; } -#pragma warning restore CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. - } -} +namespace EnoLandingPageCore.Database +{ + using System; + using System.Collections.Generic; + using System.Linq; + using System.Text; + using System.Threading.Tasks; + + public class LandingPageTeamVulnbox + { +#pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. + public long Id { get; set; } + + public LandingPageVulnboxStatus VulnboxStatus { get; set; } + + public string? ExternalAddress { get; set; } + + public long? HetznerServerId { get; set; } + + public string? RootPassword { get; set; } + + public long LandingPageTeamId { get; set; } + + public virtual LandingPageTeam LandingPageTeam { get; set; } +#pragma warning restore CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. + } +} diff --git a/EnoLandingPageCore/Database/LandingPageVulnboxStatus.cs b/EnoLandingPageBackend/Database/LandingPageVulnboxStatus.cs similarity index 94% rename from EnoLandingPageCore/Database/LandingPageVulnboxStatus.cs rename to EnoLandingPageBackend/Database/LandingPageVulnboxStatus.cs index 4708f4b..303e31a 100644 --- a/EnoLandingPageCore/Database/LandingPageVulnboxStatus.cs +++ b/EnoLandingPageBackend/Database/LandingPageVulnboxStatus.cs @@ -1,15 +1,15 @@ -namespace EnoLandingPageCore.Database -{ - using System; - using System.Collections.Generic; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - - public enum LandingPageVulnboxStatus - { - None, - Creating, - Created, - } -} +namespace EnoLandingPageCore.Database +{ + using System; + using System.Collections.Generic; + using System.Linq; + using System.Text; + using System.Threading.Tasks; + + public enum LandingPageVulnboxStatus + { + None, + Creating, + Created, + } +} diff --git a/EnoLandingPageCore/Hetzner/HetznerException.cs b/EnoLandingPageBackend/Hetzner/HetznerException.cs similarity index 95% rename from EnoLandingPageCore/Hetzner/HetznerException.cs rename to EnoLandingPageBackend/Hetzner/HetznerException.cs index e349e29..55bba9f 100644 --- a/EnoLandingPageCore/Hetzner/HetznerException.cs +++ b/EnoLandingPageBackend/Hetzner/HetznerException.cs @@ -1,20 +1,20 @@ -namespace EnoLandingPageCore.Hetzner -{ - using System; - using System.Collections.Generic; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - - public class HetznerException : Exception - { - public HetznerException() - { - } - - public HetznerException(string message) - : base(message) - { - } - } -} +namespace EnoLandingPageCore.Hetzner +{ + using System; + using System.Collections.Generic; + using System.Linq; + using System.Text; + using System.Threading.Tasks; + + public class HetznerException : Exception + { + public HetznerException() + { + } + + public HetznerException(string message) + : base(message) + { + } + } +} diff --git a/EnoLandingPageCore/Hetzner/OtherRequestRunningException.cs b/EnoLandingPageBackend/Hetzner/OtherRequestRunningException.cs similarity index 95% rename from EnoLandingPageCore/Hetzner/OtherRequestRunningException.cs rename to EnoLandingPageBackend/Hetzner/OtherRequestRunningException.cs index 355c0fc..74c6521 100644 --- a/EnoLandingPageCore/Hetzner/OtherRequestRunningException.cs +++ b/EnoLandingPageBackend/Hetzner/OtherRequestRunningException.cs @@ -1,12 +1,12 @@ -namespace EnoLandingPageCore.Hetzner -{ - using System; - using System.Collections.Generic; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - - public class OtherRequestRunningException : HetznerException - { - } -} +namespace EnoLandingPageCore.Hetzner +{ + using System; + using System.Collections.Generic; + using System.Linq; + using System.Text; + using System.Threading.Tasks; + + public class OtherRequestRunningException : HetznerException + { + } +} diff --git a/EnoLandingPageCore/Hetzner/ServerExistsException.cs b/EnoLandingPageBackend/Hetzner/ServerExistsException.cs similarity index 95% rename from EnoLandingPageCore/Hetzner/ServerExistsException.cs rename to EnoLandingPageBackend/Hetzner/ServerExistsException.cs index 1ab26b6..b3789fd 100644 --- a/EnoLandingPageCore/Hetzner/ServerExistsException.cs +++ b/EnoLandingPageBackend/Hetzner/ServerExistsException.cs @@ -1,12 +1,12 @@ -namespace EnoLandingPageCore.Hetzner -{ - using System; - using System.Collections.Generic; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - - public class ServerExistsException : HetznerException - { - } -} +namespace EnoLandingPageCore.Hetzner +{ + using System; + using System.Collections.Generic; + using System.Linq; + using System.Text; + using System.Threading.Tasks; + + public class ServerExistsException : HetznerException + { + } +} diff --git a/EnoLandingPageCore/Hetzner/ServerNotExistsException.cs b/EnoLandingPageBackend/Hetzner/ServerNotExistsException.cs similarity index 95% rename from EnoLandingPageCore/Hetzner/ServerNotExistsException.cs rename to EnoLandingPageBackend/Hetzner/ServerNotExistsException.cs index 1138b15..fca0448 100644 --- a/EnoLandingPageCore/Hetzner/ServerNotExistsException.cs +++ b/EnoLandingPageBackend/Hetzner/ServerNotExistsException.cs @@ -1,12 +1,12 @@ -namespace EnoLandingPageCore.Hetzner -{ - using System; - using System.Collections.Generic; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - - public class ServerNotExistsException : HetznerException - { - } -} +namespace EnoLandingPageCore.Hetzner +{ + using System; + using System.Collections.Generic; + using System.Linq; + using System.Text; + using System.Threading.Tasks; + + public class ServerNotExistsException : HetznerException + { + } +} diff --git a/EnoLandingPageCore/Messages/CtfInfoMessage.cs b/EnoLandingPageBackend/Models/CtfInfoMessage.cs similarity index 87% rename from EnoLandingPageCore/Messages/CtfInfoMessage.cs rename to EnoLandingPageBackend/Models/CtfInfoMessage.cs index 2838913..d6a52c8 100644 --- a/EnoLandingPageCore/Messages/CtfInfoMessage.cs +++ b/EnoLandingPageBackend/Models/CtfInfoMessage.cs @@ -1,13 +1,13 @@ -namespace EnoLandingPageCore.Messages -{ - using System; - using System.Collections.Generic; - using System.Linq; - using System.Threading.Tasks; - - public record CtfInfoMessage( - DateTime StartTime, - long RegistrationCloseOffset, - long CheckInBeginOffset, - long CheckInEndOffset); -} +namespace EnoLandingPageCore.Messages +{ + using System; + using System.Collections.Generic; + using System.Linq; + using System.Threading.Tasks; + // Update with already calculated values + public record CtfInfoMessage( + DateTime StartTime, + long RegistrationCloseOffset, + long CheckInBeginOffset, + long CheckInEndOffset); +} diff --git a/EnoLandingPageBackend/Models/ErrorDto.cs b/EnoLandingPageBackend/Models/ErrorDto.cs new file mode 100644 index 0000000..8668fe2 --- /dev/null +++ b/EnoLandingPageBackend/Models/ErrorDto.cs @@ -0,0 +1,38 @@ +using Newtonsoft.Json; +using Newtonsoft.Json.Serialization; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace EnoLandingPageBackend.Models +{ + /// + /// A DTO representing errors. + /// + public class ErrorDto + { + /// + /// Gets or sets the HTTP StatusCode representing the error. + /// + public int StatusCode { get; set; } + + /// + /// Gets or sets the error Message. + /// + public string Message { get; set; } + + /// + /// Gets or sets a CorrelationId to find the issue in the log. + /// + public Guid CorrelationId { get; set; } + + public override string ToString() + { + return JsonConvert.SerializeObject(this, new JsonSerializerSettings() + { + ContractResolver = new CamelCasePropertyNamesContractResolver(), + }); + } + } +} diff --git a/EnoLandingPageCore/Messages/TeamDetailsMessage.cs b/EnoLandingPageBackend/Models/TeamDetailsMessage.cs similarity index 96% rename from EnoLandingPageCore/Messages/TeamDetailsMessage.cs rename to EnoLandingPageBackend/Models/TeamDetailsMessage.cs index fea8bcd..920b6e9 100644 --- a/EnoLandingPageCore/Messages/TeamDetailsMessage.cs +++ b/EnoLandingPageBackend/Models/TeamDetailsMessage.cs @@ -1,17 +1,17 @@ -namespace EnoLandingPageCore.Messages -{ - using System; - using System.Collections.Generic; - using System.Text; - using EnoLandingPageCore.Database; - - public record TeamDetailsMessage( - long Id, - bool Confirmed, - string TeamName, - bool VpnConfigAvailable, - string? RootPassword, - string? ExternalIpAddress, - string? InternalIpAddress, - LandingPageVulnboxStatus? VulnboxStatus); -} +namespace EnoLandingPageCore.Messages +{ + using System; + using System.Collections.Generic; + using System.Text; + using EnoLandingPageCore.Database; + + public record TeamDetailsMessage( + long Id, + bool Confirmed, + string TeamName, + bool VpnConfigAvailable, + string? RootPassword, + string? ExternalIpAddress, + string? InternalIpAddress, + LandingPageVulnboxStatus? VulnboxStatus); +} diff --git a/EnoLandingPageCore/Messages/TeamsMessage.cs b/EnoLandingPageBackend/Models/TeamsMessage.cs similarity index 96% rename from EnoLandingPageCore/Messages/TeamsMessage.cs rename to EnoLandingPageBackend/Models/TeamsMessage.cs index f9aee2c..e47d108 100644 --- a/EnoLandingPageCore/Messages/TeamsMessage.cs +++ b/EnoLandingPageBackend/Models/TeamsMessage.cs @@ -1,12 +1,12 @@ -namespace EnoLandingPageCore.Messages -{ - using System; - using System.Collections.Generic; - using System.Linq; - using System.Text; - using System.Threading.Tasks; - - public record TeamsMessage(List ConfirmedTeams, List RegisteredTeams); - - public record TeamMessage(string Name, long? CtftimeId, string? LogoUrl, string? CountryCode); -} +namespace EnoLandingPageCore.Messages +{ + using System; + using System.Collections.Generic; + using System.Linq; + using System.Text; + using System.Threading.Tasks; + + public record TeamsMessage(List ConfirmedTeams, List RegisteredTeams); + + public record TeamMessage(string Name, long? CtftimeId, string? LogoUrl, string? CountryCode); +} diff --git a/EnoLandingPageBackend/Swashbuckle/Filter/DefaultFilter.cs b/EnoLandingPageBackend/Swashbuckle/Filter/DefaultFilter.cs new file mode 100644 index 0000000..09518e6 --- /dev/null +++ b/EnoLandingPageBackend/Swashbuckle/Filter/DefaultFilter.cs @@ -0,0 +1,90 @@ +//using Swashbuckle.AspNetCore.SwaggerGen; +//using Swashbuckle.AspNetCore.Swagger; +//using System; +//using System.Collections.Generic; +//using System.ComponentModel.DataAnnotations; +//using Microsoft.EntityFrameworkCore.Internal; +//using System.Linq; +//using EnoLandingPageBackend.Models; +//using Swashbuckle.Swagger; +//using IDocumentFilter = Swashbuckle.AspNetCore.SwaggerGen.IDocumentFilter; +//using Microsoft.OpenApi.Models; + +//namespace EnoLandingPageBackend.Swashbuckle.Filter +//{ +// internal class DefaultFilter : IDocumentFilter +// { +// public void Apply(OpenApiDocument swaggerDoc, DocumentFilterContext context) +// { +// foreach (var item in swaggerDoc.Paths.Values) +// { +// // 500 Error +// Dictionary example500 = new Dictionary() +// { +// { +// "application/json", new ErrorDto +// { +// StatusCode = 500, +// CorrelationId = Guid.NewGuid(), +// Message = "This is an example Error Message.", +// } +// } +// }; + +// UpdateItem(item, "500", "Internal server error.", context.SchemaRegistry.GetOrRegister(typeof(ErrorDto)), example500); + +// // 400 Error +// Dictionary> example400 = new Dictionary>() +// { +// { +// "application/json", +// new Dictionary() +// { +// { "PropertyName", new[] { "Error converting value {null} to type 'System.Boolean'. Path 'PropertyName', line 2, position 16." } } +// } +// } +// }; + +// // 404 Error +// Dictionary example404 = new Dictionary() +// { +// { +// "text/plain", "The entity with the given Id was not found." +// } +// }; + +// UpdateItem(item, "400", "Bad request - probably bad JSON was sent to the server.", context.SchemaRegistry.GetOrRegister(typeof(ValidationResult)), example400); + +// if (item.Get?.Parameters.Any(c => c.Name.Equals("id", StringComparison.InvariantCultureIgnoreCase)) ?? false) +// { +// UpdateItem(item, "404", "Item with the given Id was not found", null, example404); +// } +// } +// } + +// private void UpdateItem(OpenApiPathItem item, string v1, string v2, object schema = null, Dictionary examples = null) +// { +// TrySetValue(item.Get, key, description, schema, examples); +// TrySetValue(item.Put, key, description, schema, examples); +// TrySetValue(item.Post, key, description, schema, examples); +// TrySetValue(item.Delete, key, description, schema, examples); +// } + +// private static void TrySetValue(Operation op, string key, string description, Schema schema, Dictionary examples) +// { +// if ((op == null) || op.Responses.ContainsKey(key)) +// { +// return; +// } + +// op.Responses.Add(key, new Response +// { +// Description = description, +// Schema = schema, +// Examples = examples, +// }); +// } + + +// } +//} diff --git a/EnoLandingPageCore/EnoLandingPageCore.csproj b/EnoLandingPageCore/EnoLandingPageCore.csproj deleted file mode 100644 index 3ad7886..0000000 --- a/EnoLandingPageCore/EnoLandingPageCore.csproj +++ /dev/null @@ -1,19 +0,0 @@ - - - - net5.0 - - - - - - - - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - - - diff --git a/EnoLandingPageFrontend/App.razor b/EnoLandingPageFrontend/App.razor deleted file mode 100644 index 7cdef8c..0000000 --- a/EnoLandingPageFrontend/App.razor +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - -

Sorry, there's nothing at this address.

-
-
-
-
diff --git a/EnoLandingPageFrontend/EnoLandingPageFrontend.csproj b/EnoLandingPageFrontend/EnoLandingPageFrontend.csproj deleted file mode 100644 index ccdc297..0000000 --- a/EnoLandingPageFrontend/EnoLandingPageFrontend.csproj +++ /dev/null @@ -1,23 +0,0 @@ - - - - net5.0 - true - false - false - - - - - - - - - - - - - - - - diff --git a/EnoLandingPageFrontend/Pages/ADForBeginnersView.razor b/EnoLandingPageFrontend/Pages/ADForBeginnersView.razor deleted file mode 100644 index d320d9d..0000000 --- a/EnoLandingPageFrontend/Pages/ADForBeginnersView.razor +++ /dev/null @@ -1,29 +0,0 @@ -@page "/adforbeginners" -
-

Attack/Defense CTF for Beginners

-

A typical attack/defense CTF consists of three components.

- -

The Gameserver

-

It is provided by the organizers and runs throughout the competition, starting when the network is opened. It periodically stores flags on your Vulnbox using functionality in the provided services. It then later retrieves these flags, again using existing functionality. The Gameserver does not run exploits! It simply uses the service as intended.

-

Now, why can't the other teams then simply do what the Gameserver does?

-

The Gameserver has more information. Every service is either designed to allow the Gameserver to store a specific token for each flag or generates one and returns it to the Gameserver.

-

The Gameserver uses this token to check periodically that the flag is still there. Whether or not it gets the stored flag using that token, determines your SLA (Service Level Agreement). You mustn't remove or break any legitimate functionality.

-

Some services can have a vulnerability that directly leaks the flag, which will let you retrieve the flag easily. For others, it will require more effort.

- -

Your Vulnbox

-

The Vulnbox is your running instance of the virtual machine image given to you by the organizers. It contains and runs all the services of the competition and should be reachable at all times. The Gameserver stores its flags here and uses the communication with this machine to decide if your services are working as intended or not. This machine is accessible to everyone on the network, and is the target for all the exploits from other teams.

-

Protecting the flags on this machine is what determines your defense points!

-

You normally have one hour from getting access to your Vulnbox until the network between teams is opened and everyone can attack each other. Use this time to get the VM running, then start analyzing what's running on it. It has happened that services with vulnerabilities that are easy to find have been exploited as soon as the actual competition starts.

-

For the Bambi CTF, we will be providing hosted vulnboxes which are accessible via SSH.

- -

The other teams

-

All the other registered teams are connected to the same VPN as you. Their Vulnboxes have known IP addresses, all other machines are off-limits! The other teams will run exploits from their own machines, but the VPN infrastructure will use NAT to obfuscate whether a packet came from the Gameserver or another team.

-

Successfully stealing and submitting flags from the Vulnbox of other teams determines your attack score!

-

If you have played jeopardy CTFs before, you already know flag submission. In this game however, you'll have to run you exploits periodically, as new flags get stored by the Gameserver every few minutes. So you probably want to script exploits and submit Flags automatically and you don't spend all your time manually exploiting everyone.

- -

Adapted from FAUST CTF

-
- -@code { - -} diff --git a/EnoLandingPageFrontend/Pages/AdminView.razor b/EnoLandingPageFrontend/Pages/AdminView.razor deleted file mode 100644 index 65ecac4..0000000 --- a/EnoLandingPageFrontend/Pages/AdminView.razor +++ /dev/null @@ -1,14 +0,0 @@ -@page "/admin" -
-

AdminView

- -
- boot vm -
- ctf.json -
- -@code { - private string AdminSecret = ""; - private long TeamId; -} diff --git a/EnoLandingPageFrontend/Pages/ContactView.razor b/EnoLandingPageFrontend/Pages/ContactView.razor deleted file mode 100644 index fbe3803..0000000 --- a/EnoLandingPageFrontend/Pages/ContactView.razor +++ /dev/null @@ -1,22 +0,0 @@ -@page "/contact" -
-

Contact

-
-
-

Email

-

bambi@@enoflag.de

- -

Twitter

-

@@ENOFLAG

- -

IRC

-

#bambictf at freenode

- -

Discord

-

Discord

-
-
- -@code { - -} diff --git a/EnoLandingPageFrontend/Pages/Index.razor b/EnoLandingPageFrontend/Pages/Index.razor deleted file mode 100644 index 274e218..0000000 --- a/EnoLandingPageFrontend/Pages/Index.razor +++ /dev/null @@ -1,22 +0,0 @@ -@page "/" - -
-
-

BambiCTF

-

Attack/Defense CTF for Beginners

-
-
- - -
-

News

-
-

Check-in

-

Don't forget to check in before 0900 UTC!

-

Network details

-

We have added details regarding the network layout.

-

IRC and Discord channels

-

We have set up bridged IRC and Discord channels, feel free to drop by! We will be announcing more details there and on this website in the next days.

-

Bambi CTF 5

-

As a part of our module "International Information Security Contest", ENOFLAG will host another Bambi CTF event on the 17th of April (10:00 UTC - 16:00 UTC). Like every year we invite beginner teams to participate, so you can practice playing Attack/Defense CTFs against opponents with a similar skill level. If you are interested, check out our rules and sign up!

-
diff --git a/EnoLandingPageFrontend/Pages/LoginView.razor b/EnoLandingPageFrontend/Pages/LoginView.razor deleted file mode 100644 index 2b64f71..0000000 --- a/EnoLandingPageFrontend/Pages/LoginView.razor +++ /dev/null @@ -1,31 +0,0 @@ -@page "/login" - -@inject NavigationManager NavigationManager -@using EnoLandingPageFrontend - -
-

Login

- -

Login via CTFTime.org

- - -
- -@code { - protected void OAuthChallenge(MouseEventArgs e) - { - Console.WriteLine($"LoginView OAuthChallenge {NavigationManager.Uri}"); - string url = "/api/account/login"; - if (QueryHelpers.ParseQuery(NavigationManager.ToAbsoluteUri(NavigationManager.Uri).Query).TryGetValue("returnUrl", out var returnUrl)) - { - url = QueryHelpers.AddQueryString(url, "redirectUri", returnUrl); - } - else - { - url = QueryHelpers.AddQueryString(url, "redirectUri", "/"); - } - - Console.WriteLine($"LoginView OAuthChallenge navigating to {url}"); - NavigationManager.NavigateTo(url, true); - } -} diff --git a/EnoLandingPageFrontend/Pages/NetworkView.razor b/EnoLandingPageFrontend/Pages/NetworkView.razor deleted file mode 100644 index 4ba2a02..0000000 --- a/EnoLandingPageFrontend/Pages/NetworkView.razor +++ /dev/null @@ -1,36 +0,0 @@ -@page "/network" -
-

Network

-
-
-

Summary

-
    -
  • Game Network: 10.0.0.0/16
  • -
  • Team Vulnbox: 10.0.0.{TeamId}/32
  • -
  • Game Router: 10.0.1.1
  • -
  • Flag Submission: 10.0.13.37:1337
  • -
-
- -

To access your vulnbox, you must first start it through your profile page. This will only be possible once the competition has started. Note that you must check in before the competition starts, otherwise you will not be able to start your vulnbox. Please refer to the rules page for the exact check-in and start times. - -

After the vulnbox is started, you will be shown your public vulnbox IP address and the root password which you can use to login. You will also be able to download an OpenVPN configuration file only after the vulnbox is started. See the section below for more details.

- -

During the first hour of the CTF, the game network will be closed. This means you will not be able to reach the vulnboxes of other teams through the competition network. To check that your vulnbox and OpenVPN client is working as intended, you can try pinging 10.0.1.1, which is the game router and should also be reachable even while the game network is closed.

- -

The router performs SNAT on all game traffic, so all incoming traffic appears to be coming from 10.0.1.1, regardless of whether it is coming from the game engine or other teams.

- -

The 10.0.240.0/24 subnet for the team VPN is identical for all teams. These networks are completely separated from each other and you will not be able to access the devices in the VPN of other teams.

- -

You can get a newline-separated list of all (confirmed) vulnbox addresses here.

- -

OpenVPN Access for Players

-

Since this is a beginner CTF, we will provide an OpenVPN server through which you can access your vulnbox and the vulnboxes of other teams (the latter only once the network has been opened).

-

To get seamless access to the game network, install the OpenVPN client for your operating system, and download the client configuration file that will be provided in your profile. The config file will only be available once your have started your vulnbox. Note that the vulnbox serves as OpenVPN server for your team, so you will only be able to access the game network while your own vulnbox is running. The OpenVPN config file can be shared by all members of your team and allows multiple connections at once.

-

Please consult a search engine of your choice or the OpenVPN documentation for help getting started with OpenVPN.

-
-
- -@code { - -} diff --git a/EnoLandingPageFrontend/Pages/ProfileView.razor b/EnoLandingPageFrontend/Pages/ProfileView.razor deleted file mode 100644 index 2797ce6..0000000 --- a/EnoLandingPageFrontend/Pages/ProfileView.razor +++ /dev/null @@ -1,156 +0,0 @@ -@page "/profile" - -@using EnoLandingPageFrontend.Services -@using EnoLandingPageCore.Messages -@using EnoLandingPageCore.Database - -@inject LandingPageDataApiService dataService -@inject NavigationManager navManager - -
- @if (teamInformation != null && ctfInfo != null) - { -

@(teamInformation.TeamName)

- if (!teamInformation.Confirmed) - { - if (DateTime.UtcNow > ctfInfo.StartTime.AddHours(-ctfInfo.CheckInEndOffset).ToUniversalTime() && false) // CheckIn is over - { - - } - else if (ctfInfo.StartTime.AddHours(-ctfInfo.CheckInBeginOffset).ToUniversalTime() > DateTime.UtcNow && false) // CheckIn has not started - { - - } - else - { - - - } - } - else - { - - if (ctfInfo.StartTime < DateTime.UtcNow) - { - if (teamInformation.VulnboxStatus == LandingPageVulnboxStatus.None) - { - - } - else if (teamInformation.VulnboxStatus == LandingPageVulnboxStatus.Creating) - { -

Your VM is starting!

- } - else if (teamInformation.VulnboxStatus == LandingPageVulnboxStatus.Created) - { - - } - else - { - - } - } - - if (vmInteractionFeedback != null) - { -

@vmInteractionFeedback

- } - } -
-
External IP Address:
- @(teamInformation.ExternalIpAddress ?? "coming soon") -
-
-
Root Password:
- @(teamInformation.RootPassword ?? "coming soon") -
-
-
Internal IP Address:
- @(teamInformation.InternalIpAddress ?? "coming soon") -
-
-
Vulnbox Status:
- @teamInformation.VulnboxStatus -
-
-
Vpn Configuration:
- @if (teamInformation.VpnConfigAvailable) - { - Download - } - else - { - coming soon - } -
- } -
- -@code { - [CascadingParameter] -#pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. - private Task AuthenticationStateTask { get; set; } -#pragma warning restore CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. - private TeamDetailsMessage? teamInformation; - private CtfInfoMessage? ctfInfo; - private string? vmInteractionFeedback; - - protected override async Task OnInitializedAsync() - { - var authenticationState = await AuthenticationStateTask; - if (authenticationState?.User?.Identity is null || !authenticationState.User.Identity.IsAuthenticated) - { - var returnUrl = navManager.ToBaseRelativePath(navManager.Uri); - navManager.NavigateTo($"login?returnUrl=/{navManager.ToBaseRelativePath(navManager.Uri)}", false); - return; // yep this is necessary. - } - - teamInformation = await dataService.GetTeamInfo(); - ctfInfo = await dataService.GetCtfInfo(); - } - - protected async Task CheckIn(MouseEventArgs e) - { - await dataService.CheckIn(); - teamInformation = await dataService.GetTeamInfo(); - } - - protected async Task StartVm(MouseEventArgs e) - { - vmInteractionFeedback = null; - try - { - await dataService.StartVm(); - } - catch (Exception ex) - { - vmInteractionFeedback = ex.GetType().ToString(); - } - - teamInformation = await dataService.GetTeamInfo(); - } - - protected async Task ResetVm(MouseEventArgs e) - { - vmInteractionFeedback = null; - try - { - await dataService.ResetVm(); - } - catch (Exception ex) - { - vmInteractionFeedback = ex.GetType().ToString(); - } - - teamInformation = await dataService.GetTeamInfo(); - } -} diff --git a/EnoLandingPageFrontend/Pages/RegistrationClosedView.razor b/EnoLandingPageFrontend/Pages/RegistrationClosedView.razor deleted file mode 100644 index 8c2ba7d..0000000 --- a/EnoLandingPageFrontend/Pages/RegistrationClosedView.razor +++ /dev/null @@ -1,12 +0,0 @@ -@page "/registrationclosed" -
-

Registration Closed

-
-
-

Sorry, the registration period has ended.

-
-
- -@code { - -} diff --git a/EnoLandingPageFrontend/Pages/RulesView.razor b/EnoLandingPageFrontend/Pages/RulesView.razor deleted file mode 100644 index c88cad5..0000000 --- a/EnoLandingPageFrontend/Pages/RulesView.razor +++ /dev/null @@ -1,59 +0,0 @@ -@page "/rules" - -@using EnoLandingPageFrontend.Services -@using EnoLandingPageCore.Messages -@using System.Globalization -@inject LandingPageDataApiService DataService - -
-

Rules

-
-
-

Summary

-
    -
  • - Vulnboxes and VPN servers are provided by us, you don't have to provide or take care of anything. -
  • -
  • - The game will start on @ctfInfo?.StartTime.ToString() UTC. -
  • -
  • - You must register before @ctfInfo?.StartTime.AddHours(-ctfInfo.RegistrationCloseOffset).ToString() UTC. -
  • -
  • - You must check in between @ctfInfo?.StartTime.AddHours(-ctfInfo.CheckInBeginOffset).ToString() UTC and @ctfInfo?.StartTime.AddHours(-ctfInfo.CheckInEndOffset).ToString() UTC. -
  • -
  • - You must start your vulnbox once the game starts. -
  • -
  • - A round lasts 60 seconds, flags are valid for several rounds. -
  • -
  • - Flag format: ENO[A-Za-z0-9+\/=]{48} -
  • -
  • - Flag submission: nc flags.bambi.ovh 1337 -
  • -
  • - You will find an Arkime installation on your vulnbox. Arkime is a traffic analysis tool, not a vulnerable service. -
  • -
- -

Scoring

-

We are currently using the scoring formula by Faust CTF.

- -

Social Conduct

-

The vulnerable services of your opponents are your only valid targets. Do not engage anything else!

-

Do not attempt to exhaust resources on your opponents' vulnboxes, for example by sending excessive amounts of requests or exploiting vulnerabilities leading to a denial of service.

-
-
- -@code { - private CtfInfoMessage? ctfInfo; - - protected override async Task OnInitializedAsync() - { - ctfInfo = await DataService.GetCtfInfo(); - } -} diff --git a/EnoLandingPageFrontend/Pages/ScoreboardView.razor b/EnoLandingPageFrontend/Pages/ScoreboardView.razor deleted file mode 100644 index 794853e..0000000 --- a/EnoLandingPageFrontend/Pages/ScoreboardView.razor +++ /dev/null @@ -1,284 +0,0 @@ -@page "/scoreboard" -@page "/scoreboard/round/{selectedRoundId:long}" - -@using Microsoft.Extensions.Logging -@using EnoCore.Scoreboard -@using EnoCore -@using EnoLandingPageFrontend.Services -@using System.Security.Claims - -@inject LandingPageScoreboardApiService ScoreboardService -@inject AuthenticationStateProvider authenticationStateProvider -@inject ILogger logger - -@if (currentScoreboard != null) -{ - var orderedTeams = currentScoreboard.Teams.OrderByDescending(t => t.TotalScore).ToArray(); - var orderedServices = currentScoreboard.Services.OrderBy(t => t.ServiceId).ToArray(); - - - - - - @foreach (var service in orderedServices) - { - - } - - - - - @foreach (var service in orderedServices) - { - - } - - - - - } - - @for (int t = 0; t < currentScoreboard.Teams.Length; t++) - { - var team = orderedTeams[t]; - string? countryUrl = null; - if (team.CountryCode != null && team.CountryCode != string.Empty) - { - countryUrl = $"https://cdn.ipregistry.co/flags/wikimedia/{team.CountryCode?.ToLower()}.png"; - } - var orderedTeamServiceDetails = team.ServiceDetails.OrderBy(sd => sd.ServiceId).ToArray(); - var previousRoundTeam = previousScoreboard?.Teams.Where(t => t.TeamId == team.TeamId).Single(); - - - - @if (previousRoundTeam != null) - { - long totalDiff = (long)(team.TotalScore - previousRoundTeam.TotalScore); - - } - else - { - - } - - @for (int s = 0; s < team.ServiceDetails.Length; s++) - { - var serviceDetails = orderedTeamServiceDetails[s]; - @if (previousRoundTeam == null) - { - - } - else - { - var orderedOldServices = previousRoundTeam.ServiceDetails.OrderBy(s => s.ServiceId).ToArray(); - long slaDiff = (long)(serviceDetails.ServiceLevelAgreementScore - orderedOldServices[s].ServiceLevelAgreementScore); - long attackDiff = (long)(serviceDetails.AttackScore - orderedOldServices[s].AttackScore); - long defenseDiff = (long)(serviceDetails.DefenseScore - orderedOldServices[s].DefenseScore); - - } - } - - } -
-
-
- - @if (currentScoreboard.CurrentRound > 0) - { - - } - else - { - - } -
-
Round @currentScoreboard.CurrentRound
-
- @if (currentScoreboard.CurrentRound < ScoreboardService.LatestScoreboard?.CurrentRound) - { - - } - else - { - - } - -
-
-
@service.ServiceName
- @foreach (var service in orderedServices) - { - - @for (int i = 0; i < service.FlagVariants; i++) - { - ScoreboardFirstBlood? fb = service.FirstBloods.Where(fb => fb.FlagVariantId == i).SingleOrDefault(); - if (fb != null) - { -
@orderedTeams.Where(t => t.TeamId == fb.TeamId).Single().TeamName
- } - else - { -
Flagstore #@(i+1) unexploited
- } - } -
@(t+1) -
-
- -
-
@team.TeamName (10.0.0.@team.TeamId)
- -
-
@((int) team.TotalScore) (@(totalDiff.ToString("+#;-#;+0")))@((int) team.TotalScore) - @if (serviceDetails.Message != null) - { -
@serviceDetails.Message
- } - else - { -
testmessage
- } -
- -
@((long) serviceDetails.AttackScore)
-
- - -
@((long) serviceDetails.DefenseScore)
-
- - -
@((long) serviceDetails.ServiceLevelAgreementScore)
-
-
-
- @if (serviceDetails.Message != null) - { -
@serviceDetails.Message
- } -
- -
@((long) serviceDetails.AttackScore)
-
(@(attackDiff.ToString("+#;-#;+0")))
- - - -
@((long) serviceDetails.DefenseScore)
-
(@(defenseDiff.ToString("+#;-#;-0")))
- - - -
@((long) serviceDetails.ServiceLevelAgreementScore)
-
(@(slaDiff.ToString("+#;-#;+0")))
-
-
-} - - -@code { - [Parameter] - public long? selectedRoundId { get; set; } - private Scoreboard? previousScoreboard; - private Scoreboard? currentScoreboard; - private long? ownId; - - protected override Task OnInitializedAsync() - { - ScoreboardService.NewScoreboardEvent += HandleNewScoreboardEvent; - ScoreboardService.OldScoreboardEvent += HandleOldScoreboardEvent; - var t = HandleAuthProvider(); - return Task.CompletedTask; - } - - protected override void OnParametersSet() - { - if (selectedRoundId is long roundId) - { - // We are in "show old round" mode. - ScoreboardService.TryGetOrRequest(roundId, out currentScoreboard); - if (roundId > 0) - { - ScoreboardService.TryGetOrRequest(roundId - 1, out previousScoreboard); - } - - // Also request the neighbouring rounds - ScoreboardService.TryGetOrRequest(roundId - 2, out _, true); - ScoreboardService.TryGetOrRequest(roundId + 1, out _, true); - ScoreboardService.TryGetOrRequest(roundId - 3, out _, true); - ScoreboardService.TryGetOrRequest(roundId + 2, out _, true); - } - else - { - // We are in "show current round" mode. - currentScoreboard = ScoreboardService.LatestScoreboard; - if (currentScoreboard?.CurrentRound > 1) - { - ScoreboardService.TryGetOrRequest(currentScoreboard.CurrentRound - 1, out previousScoreboard); - } - } - } - - public void Dispose() - { - ScoreboardService.NewScoreboardEvent -= HandleNewScoreboardEvent; - ScoreboardService.OldScoreboardEvent -= HandleOldScoreboardEvent; - } - - private async Task HandleAuthProvider() - { - var authState = await authenticationStateProvider.GetAuthenticationStateAsync(); - var ni = authState.User.FindFirst(ClaimTypes.NameIdentifier)?.Value; - if (long.TryParse(ni, out var teamId)) - { - ownId = teamId; - StateHasChanged(); - } - } - - private void HandleOldScoreboardEvent(Scoreboard oldScoreboard) - { - if (selectedRoundId is long roundId) - { - // We are in "show old round" mode. - if (oldScoreboard.CurrentRound == roundId) - { - currentScoreboard = oldScoreboard; - } - if (oldScoreboard.CurrentRound == roundId - 1) - { - previousScoreboard = oldScoreboard; - } - } - else - { - // We are in "show current round" mode. - if (oldScoreboard.CurrentRound == currentScoreboard?.CurrentRound - 1) - { - previousScoreboard = oldScoreboard; - } - } - StateHasChanged(); - } - - private void HandleNewScoreboardEvent(Scoreboard newScoreboard) - { - logger.LogInformation("HandleNewScoreboardEvent"); - if (selectedRoundId == null) // We are in "show current round" mode. - { - if (newScoreboard.CurrentRound > currentScoreboard?.CurrentRound) - { - // A new round has finished. - ScoreboardService.TryGetOrRequest(newScoreboard.CurrentRound - 1, out previousScoreboard); - currentScoreboard = newScoreboard; - } - else - { - // The CTF was restarted or we just started - previousScoreboard = null; - currentScoreboard = newScoreboard; - ScoreboardService.TryGetOrRequest(newScoreboard.CurrentRound - 1, out previousScoreboard); - } - StateHasChanged(); - } - } -} diff --git a/EnoLandingPageFrontend/Pages/ScoreboardView.razor.css b/EnoLandingPageFrontend/Pages/ScoreboardView.razor.css deleted file mode 100644 index 7d0dc9e..0000000 --- a/EnoLandingPageFrontend/Pages/ScoreboardView.razor.css +++ /dev/null @@ -1,142 +0,0 @@ -.scoreboard { - width: 100%; - table-layout: fixed; -} - - /* Gracefully borrowed from bambiscoreboard. */ - .scoreboard .blood { - color: #b40000; - } - - /* Flag stores should start at the top of their container */ - .scoreboard .firstblood-list-cell { - vertical-align: top; - } - - /* The droplet and text is separated by 5px, and the text does not wrap over overflow. */ - .scoreboard .firstblood-list { - display: flex; - overflow: hidden; - gap: 5px; - white-space: nowrap; - } - - /* Our fa icons may be in tags, but we don't want them blue */ - .scoreboard .fabutton { - color: inherit; - } - - /* The backward buttons should stick to the left, the round to the middle, and the forward buttons to the right */ - .scoreboard .roundcontrol { - display: flex; - justify-content: space-between; - } - - /* Highlight your own team's row */ - .scoreboard .ownrow { - border: 1px solid rgb(198, 202, 209); - border-collapse: collapse; - background-color: dodgerblue; - } - - /* Boring borders for the others */ - .scoreboard .otherrow { - border: 1px solid rgb(198, 202, 209); - border-collapse: collapse; - } - - /* The error message is visible if one hovers over the parent service-block */ - .scoreboard .service-block:hover .errormessage { - visibility: visible; - } - - .scoreboard .errormessage { - transform: translateX(-50%) translateY(calc(-75% - .25em)); - border-radius: .5em; - position: absolute; - width: 20em; - background-color: black; - text-align: center; - visibility: hidden; - color: #fff; - z-index: 1; - } - - .scoreboard .rightaligned { - text-align: right; - } - - .scoreboard .team-rank { - border: none; - text-align: center; - } - - .scoreboard .team-container { - overflow: hidden; - font-weight: bold; - border: none; - display: flex; - align-items: center; - } - - .scoreboard .team-name { - padding: 16px; - } - - .scoreboard .team-logo-container { - min-width: 64px; - min-height: 64px; - } - - .scoreboard .team-logo { - max-width: 64px; - max-height: 64px; - } - - .scoreboard .team-countryflag { - max-width: 32px; - max-height: 32px; - } - - .scoreboard .team-score { - border: none; - padding: 2px; - } - - .scoreboard .service-stats { - display: grid; - grid-column-gap: 5px; - grid-template-columns: min-content min-content min-content; - } - - .scoreboard .scoreboard-icon { - line-height: inherit; - } - - .scoreboard .scoreboard-text { - text-align: right - } - -.service-OK { - background-color: rgb(125, 252, 116); -} - -.service-INTERNAL_ERROR { - background-color: white; -} - -.service-RECOVERING { - background-color: rgb(81, 145, 255); -} - -.service-MUMBLE { - background-color: rgb(255, 193, 0); -} - -.service-OFFLINE { - background-color: rgb(255, 91, 91); -} - -.service-INACTIVE { - background-color: gray; -} diff --git a/EnoLandingPageFrontend/Pages/TeamsView.razor b/EnoLandingPageFrontend/Pages/TeamsView.razor deleted file mode 100644 index 0c568c7..0000000 --- a/EnoLandingPageFrontend/Pages/TeamsView.razor +++ /dev/null @@ -1,79 +0,0 @@ -@page "/teams" -@using EnoLandingPageFrontend.Services -@using EnoLandingPageCore.Messages -@inject LandingPageDataApiService DataService - -
-

Teams

- - @if (teams != null) - { -
-
-

Confirmed

- @foreach (var team in teams.ConfirmedTeams) - { - @if (team.CtftimeId is long ctftimeId) - { - string? countryUrl = null; - if (team.CountryCode != null && team.CountryCode != string.Empty) - { - countryUrl = $"https://cdn.ipregistry.co/flags/wikimedia/{team.CountryCode?.ToLower()}.png"; - } -
-
- } - else - { -
@team.Name
- } - } - -
-

Registered

- @foreach (var team in teams.RegisteredTeams) - { - @if (team.CtftimeId is long ctftimeId) - { - string? countryUrl = null; - if (team.CountryCode != null && team.CountryCode != string.Empty) - { - countryUrl = $"https://cdn.ipregistry.co/flags/wikimedia/{team.CountryCode?.ToLower()}.png"; - } -
-
- -
- - - -
-
- } - else - { -
@team.Name
- } - } -
- } -
- -@code { - private TeamsMessage? teams; - - protected override async Task OnInitializedAsync() - { - teams = await DataService.GetTeams(); - } -} diff --git a/EnoLandingPageFrontend/Pages/TeamsView.razor.css b/EnoLandingPageFrontend/Pages/TeamsView.razor.css deleted file mode 100644 index 5db80e9..0000000 --- a/EnoLandingPageFrontend/Pages/TeamsView.razor.css +++ /dev/null @@ -1,30 +0,0 @@ - -.teams-list-container { - display: flex; - align-items: center; -} -/* - .teams-list-container:hover { - background-color: #AA998e; - } -*/ -.team-list-item-logo-container { - min-width: 64px; - min-height: 64px; -} - -.team-list-item-logo { - max-width: 64px; - max-height: 64px; -} - -.team-list-item-name-container { - padding: 16px; - overflow: hidden; - width: 500px; -} - -.team-list-item-countryflag { - max-width: 32px; - max-height: 32px; -} diff --git a/EnoLandingPageFrontend/Program.cs b/EnoLandingPageFrontend/Program.cs deleted file mode 100644 index b3805a0..0000000 --- a/EnoLandingPageFrontend/Program.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System; -using System.Net.Http; -using System.Collections.Generic; -using System.Threading.Tasks; -using System.Text; -using Microsoft.AspNetCore.Components.WebAssembly.Hosting; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Logging; -using EnoLandingPageFrontend.Services; -using Microsoft.AspNetCore.Components.Authorization; -using Microsoft.AspNetCore.WebUtilities; - -namespace EnoLandingPageFrontend -{ - public class Program - { - public static async Task Main(string[] args) - { - var builder = WebAssemblyHostBuilder.CreateDefault(args); - builder.RootComponents.Add("#app"); - - builder.Services.AddScoped(sp => new HttpClient - { - BaseAddress = new Uri(builder.HostEnvironment.BaseAddress), - }); - builder.Services.AddSingleton(typeof(LandingPageDataApiService)); - builder.Services.AddSingleton(typeof(LandingPageScoreboardApiService)); - builder.Services.AddAuthorizationCore(); - builder.Services.AddScoped(); - - await builder.Build().RunAsync(); - } - } -} diff --git a/EnoLandingPageFrontend/Properties/launchSettings.json b/EnoLandingPageFrontend/Properties/launchSettings.json deleted file mode 100644 index 88f6a9e..0000000 --- a/EnoLandingPageFrontend/Properties/launchSettings.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "profiles": { - "EnoLandingPageFrontend": { - "commandName": "Project", - "dotnetRunMessages": "true", - "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", - "applicationUrl": "http://localhost:5000", - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - } - } - } -} diff --git a/EnoLandingPageFrontend/Services/LandingPageAuthenticationStateProvider.cs b/EnoLandingPageFrontend/Services/LandingPageAuthenticationStateProvider.cs deleted file mode 100644 index c5ed515..0000000 --- a/EnoLandingPageFrontend/Services/LandingPageAuthenticationStateProvider.cs +++ /dev/null @@ -1,44 +0,0 @@ -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Components.Authorization; -using Microsoft.Extensions.Logging; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Security.Claims; -using System.Threading.Tasks; - -namespace EnoLandingPageFrontend.Services -{ - public class LandingPageAuthenticationStateProvider : AuthenticationStateProvider - { - private readonly ILogger logger; - private readonly LandingPageDataApiService lpService; - - public LandingPageAuthenticationStateProvider(ILogger logger, LandingPageDataApiService lpService) - { - this.logger = logger; - this.lpService = lpService; - } - - public override async Task GetAuthenticationStateAsync() - { - try - { - var teamInfo = await this.lpService.GetTeamInfo(); - var claims = new List - { - new Claim(ClaimTypes.NameIdentifier, $"{teamInfo.Id}"), - new Claim(ClaimTypes.Name, teamInfo.TeamName), - }; - var claimsIdentity = new ClaimsIdentity(claims, "Server Auth"); - this.logger.LogInformation($"{nameof(LandingPageAuthenticationStateProvider)} returning authorized ({teamInfo.Id})"); - return new AuthenticationState(new ClaimsPrincipal(claimsIdentity)); - } - catch - { - this.logger.LogInformation($"{nameof(LandingPageAuthenticationStateProvider)} returning unauthorized"); - return new AuthenticationState(new ClaimsPrincipal()); - } - } - } -} diff --git a/EnoLandingPageFrontend/Services/LandingPageDataApiService.cs b/EnoLandingPageFrontend/Services/LandingPageDataApiService.cs deleted file mode 100644 index 3d0c56a..0000000 --- a/EnoLandingPageFrontend/Services/LandingPageDataApiService.cs +++ /dev/null @@ -1,121 +0,0 @@ -using EnoLandingPageCore; -using EnoLandingPageCore.Database; -using EnoLandingPageCore.Hetzner; -using EnoLandingPageCore.Messages; -using Microsoft.Extensions.Logging; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Net.Http; -using System.Text.Json; -using System.Threading.Tasks; - -namespace EnoLandingPageFrontend.Services -{ - public class LandingPageDataApiService - { - private readonly ILogger logger; - private readonly HttpClient httpClient; - private readonly JsonSerializerOptions jsonOptions; - - public LandingPageDataApiService(ILogger logger, HttpClient httpClient) - { - this.logger = logger; - this.httpClient = httpClient; - this.httpClient.DefaultRequestHeaders.Add("X-Requested-With", "XMLHttpRequest"); - this.jsonOptions = new JsonSerializerOptions() - { - PropertyNamingPolicy = JsonNamingPolicy.CamelCase, - }; - } - - public async Task GetTeamInfo() - { - return JsonSerializer.Deserialize(await this.httpClient.GetStringAsync("/api/account/info"), jsonOptions)!; - } - - public async Task GetTeams() - { - return JsonSerializer.Deserialize(await this.httpClient.GetStringAsync("/api/data/teams"), jsonOptions)!; - } - - public async Task GetCtfInfo() - { - return JsonSerializer.Deserialize(await this.httpClient.GetStringAsync("/api/data/ctfinfo"), jsonOptions)!; - } - - - public async Task CheckIn() - { - await this.httpClient.PostAsync("/api/account/checkin", null!); - } - - public async Task StartVm() - { - HttpResponseMessage response; - try - { - response = await this.httpClient.PostAsync("/api/vulnbox/startvulnbox", null!); - } - catch (Exception e) - { - throw new LandingPageServiceException("StartVm request failed.", e); - } - if (!response.IsSuccessStatusCode) - { - var content = await response.Content.ReadAsStringAsync(); - if (content == nameof(ServerExistsException)) - { - logger.LogError("StartVm throwing ServerNameInUseException"); - throw new ServerExistsException(); - } - else if (content == nameof(OtherRequestRunningException)) - { - throw new OtherRequestRunningException(); - } - else - { - throw new Exception("Unexpected backend message"); - } - } - else - { - logger.LogInformation($"StartVm succeeded ({response.StatusCode})"); - } - } - - public async Task ResetVm() - { - HttpResponseMessage response; - try - { - response = await this.httpClient.PostAsync("/api/vulnbox/resetvulnbox", null!); - } - catch (Exception e) - { - throw new LandingPageServiceException("ResetVm request failed.", e); - } - if (!response.IsSuccessStatusCode) - { - var content = await response.Content.ReadAsStringAsync(); - if (content == nameof(ServerNotExistsException)) - { - logger.LogError("ResetVm throwing ServerNotExistsException"); - throw new ServerNotExistsException(); - } - else if (content == nameof(OtherRequestRunningException)) - { - throw new OtherRequestRunningException(); - } - else - { - throw new Exception("Unexpected backend message"); - } - } - else - { - logger.LogInformation($"StartVm succeeded ({response.StatusCode})"); - } - } - } -} diff --git a/EnoLandingPageFrontend/Services/LandingPageScoreboardApiService.cs b/EnoLandingPageFrontend/Services/LandingPageScoreboardApiService.cs deleted file mode 100644 index 642a82b..0000000 --- a/EnoLandingPageFrontend/Services/LandingPageScoreboardApiService.cs +++ /dev/null @@ -1,91 +0,0 @@ -using EnoCore; -using EnoCore.Scoreboard; -using Microsoft.Extensions.Logging; -using System; -using System.Collections.Generic; -using System.Net.Http; -using System.Net.Http.Json; -using System.Threading.Tasks; - -namespace EnoLandingPageFrontend.Services -{ - public class LandingPageScoreboardApiService - { - public delegate void NewScoreboardEventHandler(Scoreboard sb); - public delegate void OldScoreboardEventHandler(Scoreboard oldScoreboard); - public event NewScoreboardEventHandler? NewScoreboardEvent; - public event OldScoreboardEventHandler? OldScoreboardEvent; - - private readonly ILogger logger; - private readonly Dictionary Scoreboards = new(); - private readonly HttpClient httpClient; - - public LandingPageScoreboardApiService(ILogger logger, HttpClient httpClient) - { - this.logger = logger; - this.httpClient = httpClient; - this.httpClient.DefaultRequestHeaders.Add("X-Requested-With", "XMLHttpRequest"); - var _ = PollTask(); - } - - public Scoreboard? LatestScoreboard { get; set; } - - public bool TryGetOrRequest(long roundId, out Scoreboard? sb, bool ignoreFails = false) - { - if (!this.Scoreboards.TryGetValue(roundId, out sb)) - { - var _ = RequestScoreboard(roundId, ignoreFails); - return false; - } - return true; - } - - private async Task RequestScoreboard(long roundId, bool ignoreFails) - { - try - { - var scoreboard = await this.httpClient.GetFromJsonAsync($"/scoreboard/scoreboard{roundId}.json", EnoCoreUtil.CamelCaseEnumConverterOptions); - if (scoreboard != null) - { - Scoreboards[roundId] = scoreboard; - OldScoreboardEvent?.Invoke(scoreboard); - } - } - catch (Exception e) - { - if (!ignoreFails) - { - logger.LogError($"{e.ToFancyString()}"); - } - } - } - - private async Task PollTask() - { - while (true) - { - try - { - var scoreboard = await this.httpClient.GetFromJsonAsync("/scoreboard/scoreboard.json", EnoCoreUtil.CamelCaseEnumConverterOptions); - if (scoreboard != null && LatestScoreboard?.CurrentRound != scoreboard.CurrentRound) - { - if (scoreboard.CurrentRound > 1) - { - TryGetOrRequest(scoreboard.CurrentRound - 1, out var _); - } - - Scoreboards[scoreboard.CurrentRound] = scoreboard; - LatestScoreboard = scoreboard; - NewScoreboardEvent?.Invoke(scoreboard); - } - // TODO invalidate scoreboards dict on restart - } - catch (Exception e) - { - logger.LogError($"{e.ToFancyString()}"); - } - await Task.Delay(5000); - } - } - } -} diff --git a/EnoLandingPageFrontend/Services/LandingPageServiceException.cs b/EnoLandingPageFrontend/Services/LandingPageServiceException.cs deleted file mode 100644 index 51f4d4a..0000000 --- a/EnoLandingPageFrontend/Services/LandingPageServiceException.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; - -namespace EnoLandingPageFrontend.Services -{ - public class LandingPageServiceException : Exception - { - public LandingPageServiceException(string message, Exception innerException) - : base(message, innerException) - { - } - } -} diff --git a/EnoLandingPageFrontend/Shared/MainLayout.razor b/EnoLandingPageFrontend/Shared/MainLayout.razor deleted file mode 100644 index 3e32ac0..0000000 --- a/EnoLandingPageFrontend/Shared/MainLayout.razor +++ /dev/null @@ -1,6 +0,0 @@ -@inherits LayoutComponentBase - -
- - @Body -
diff --git a/EnoLandingPageFrontend/Shared/MainLayout.razor.css b/EnoLandingPageFrontend/Shared/MainLayout.razor.css deleted file mode 100644 index e69de29..0000000 diff --git a/EnoLandingPageFrontend/Shared/NavMenu.razor b/EnoLandingPageFrontend/Shared/NavMenu.razor deleted file mode 100644 index 8a68bd8..0000000 --- a/EnoLandingPageFrontend/Shared/NavMenu.razor +++ /dev/null @@ -1,67 +0,0 @@ - - -@code { - private bool collapseNavMenu = true; - private string NavBarCollapse => collapseNavMenu ? "collapse" : string.Empty; - - private void ToggleNavMenu() - { - collapseNavMenu = !collapseNavMenu; - } -} diff --git a/EnoLandingPageFrontend/Shared/NavMenu.razor.css b/EnoLandingPageFrontend/Shared/NavMenu.razor.css deleted file mode 100644 index c893f00..0000000 --- a/EnoLandingPageFrontend/Shared/NavMenu.razor.css +++ /dev/null @@ -1,12 +0,0 @@ -/* - -@media (min-width: 900px) { - .navbar-toggler { - display: none; - } - - .collapse { - display: block; // Never collapse the sidebar for wide screens - } -} -*/ \ No newline at end of file diff --git a/EnoLandingPageFrontend/Shared/SurveyPrompt.razor b/EnoLandingPageFrontend/Shared/SurveyPrompt.razor deleted file mode 100644 index ca99c05..0000000 --- a/EnoLandingPageFrontend/Shared/SurveyPrompt.razor +++ /dev/null @@ -1,16 +0,0 @@ - - -@code { - // Demonstrates how a parent component can supply parameters - [Parameter] - public string? Title { get; set; } -} diff --git a/EnoLandingPageFrontend/_Imports.razor b/EnoLandingPageFrontend/_Imports.razor deleted file mode 100644 index 26cd179..0000000 --- a/EnoLandingPageFrontend/_Imports.razor +++ /dev/null @@ -1,12 +0,0 @@ -@using System.Net.Http -@using System.Net.Http.Json -@using Microsoft.AspNetCore.Components.Forms -@using Microsoft.AspNetCore.Components.Routing -@using Microsoft.AspNetCore.Components.Web -@using Microsoft.AspNetCore.Components.Web.Virtualization -@using Microsoft.AspNetCore.Components.WebAssembly.Http -@using Microsoft.JSInterop -@using EnoLandingPageFrontend -@using EnoLandingPageFrontend.Shared -@using Microsoft.AspNetCore.Components.Authorization -@using Microsoft.AspNetCore.WebUtilities diff --git a/EnoLandingPageFrontend/wwwroot/css/app.css b/EnoLandingPageFrontend/wwwroot/css/app.css deleted file mode 100644 index afa8487..0000000 --- a/EnoLandingPageFrontend/wwwroot/css/app.css +++ /dev/null @@ -1,73 +0,0 @@ -html, body { - font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; -} - -a, .btn-link { - color: #0366d6; -} - -.btn-primary { - color: #fff; - background-color: #1b6ec2; - border-color: #1861ac; -} - -.content { - padding-top: 1.1rem; -} - -.valid.modified:not([type=checkbox]) { - outline: 1px solid #26b050; -} - -.invalid { - outline: 1px solid red; -} - -.validation-message { - color: red; -} - -#blazor-error-ui { - background: lightyellow; - bottom: 0; - box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2); - display: none; - left: 0; - padding: 0.6rem 1.25rem 0.7rem 1.25rem; - position: fixed; - width: 100%; - z-index: 1000; -} - -#blazor-error-ui .dismiss { - cursor: pointer; - position: absolute; - right: 0.75rem; - top: 0.5rem; -} - -.bg { - background-image: url('/images/deers-88991.jpg'); - height: 50%; - background-position: center; - background-repeat: no-repeat; - background-size: cover; - padding-top: 200px; - padding-bottom: 200px; -} - .bg div { - background-color: rgba(211, 211, 211, 0.8); - } - - .bg div h1 { - font-size: 80px; - font-weight: bolder; - text-align: center; - } - - .bg div h2 { - font-size: 50px; - font-weight: bold; - text-align: center; - } diff --git a/EnoLandingPageFrontend/wwwroot/css/bootstrap/bootstrap.min.css b/EnoLandingPageFrontend/wwwroot/css/bootstrap/bootstrap.min.css deleted file mode 100644 index 9beb541..0000000 --- a/EnoLandingPageFrontend/wwwroot/css/bootstrap/bootstrap.min.css +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap v4.3.1 (https://getbootstrap.com/) - * Copyright 2011-2019 The Bootstrap Authors - * Copyright 2011-2019 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer::before{content:"\2014\00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-break:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-ms-flex-order:-1;order:-1}.order-last{-ms-flex-order:13;order:13}.order-0{-ms-flex-order:0;order:0}.order-1{-ms-flex-order:1;order:1}.order-2{-ms-flex-order:2;order:2}.order-3{-ms-flex-order:3;order:3}.order-4{-ms-flex-order:4;order:4}.order-5{-ms-flex-order:5;order:5}.order-6{-ms-flex-order:6;order:6}.order-7{-ms-flex-order:7;order:7}.order-8{-ms-flex-order:8;order:8}.order-9{-ms-flex-order:9;order:9}.order-10{-ms-flex-order:10;order:10}.order-11{-ms-flex-order:11;order:11}.order-12{-ms-flex-order:12;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-ms-flex-order:-1;order:-1}.order-sm-last{-ms-flex-order:13;order:13}.order-sm-0{-ms-flex-order:0;order:0}.order-sm-1{-ms-flex-order:1;order:1}.order-sm-2{-ms-flex-order:2;order:2}.order-sm-3{-ms-flex-order:3;order:3}.order-sm-4{-ms-flex-order:4;order:4}.order-sm-5{-ms-flex-order:5;order:5}.order-sm-6{-ms-flex-order:6;order:6}.order-sm-7{-ms-flex-order:7;order:7}.order-sm-8{-ms-flex-order:8;order:8}.order-sm-9{-ms-flex-order:9;order:9}.order-sm-10{-ms-flex-order:10;order:10}.order-sm-11{-ms-flex-order:11;order:11}.order-sm-12{-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-ms-flex-order:-1;order:-1}.order-md-last{-ms-flex-order:13;order:13}.order-md-0{-ms-flex-order:0;order:0}.order-md-1{-ms-flex-order:1;order:1}.order-md-2{-ms-flex-order:2;order:2}.order-md-3{-ms-flex-order:3;order:3}.order-md-4{-ms-flex-order:4;order:4}.order-md-5{-ms-flex-order:5;order:5}.order-md-6{-ms-flex-order:6;order:6}.order-md-7{-ms-flex-order:7;order:7}.order-md-8{-ms-flex-order:8;order:8}.order-md-9{-ms-flex-order:9;order:9}.order-md-10{-ms-flex-order:10;order:10}.order-md-11{-ms-flex-order:11;order:11}.order-md-12{-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-ms-flex-order:-1;order:-1}.order-lg-last{-ms-flex-order:13;order:13}.order-lg-0{-ms-flex-order:0;order:0}.order-lg-1{-ms-flex-order:1;order:1}.order-lg-2{-ms-flex-order:2;order:2}.order-lg-3{-ms-flex-order:3;order:3}.order-lg-4{-ms-flex-order:4;order:4}.order-lg-5{-ms-flex-order:5;order:5}.order-lg-6{-ms-flex-order:6;order:6}.order-lg-7{-ms-flex-order:7;order:7}.order-lg-8{-ms-flex-order:8;order:8}.order-lg-9{-ms-flex-order:9;order:9}.order-lg-10{-ms-flex-order:10;order:10}.order-lg-11{-ms-flex-order:11;order:11}.order-lg-12{-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-ms-flex-order:-1;order:-1}.order-xl-last{-ms-flex-order:13;order:13}.order-xl-0{-ms-flex-order:0;order:0}.order-xl-1{-ms-flex-order:1;order:1}.order-xl-2{-ms-flex-order:2;order:2}.order-xl-3{-ms-flex-order:3;order:3}.order-xl-4{-ms-flex-order:4;order:4}.order-xl-5{-ms-flex-order:5;order:5}.order-xl-6{-ms-flex-order:6;order:6}.order-xl-7{-ms-flex-order:7;order:7}.order-xl-8{-ms-flex-order:8;order:8}.order-xl-9{-ms-flex-order:9;order:9}.order-xl-10{-ms-flex-order:10;order:10}.order-xl-11{-ms-flex-order:11;order:11}.order-xl-12{-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered{border:1px solid #dee2e6}.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover{background-color:#9fcdff}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover{background-color:#c8cbcf}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover{background-color:#b1dfbb}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover{background-color:#abdde5}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover{background-color:#ffe8a1}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover{background-color:#f1b0b7}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover{background-color:#ececf6}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding-top:.375rem;padding-bottom:.375rem;margin-bottom:0;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size]{height:auto}textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:center right calc(.375em + .1875rem);background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-control.is-valid~.valid-feedback,.form-control.is-valid~.valid-tooltip,.was-validated .form-control:valid~.valid-feedback,.was-validated .form-control:valid~.valid-tooltip{display:block}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc((1em + .75rem) * 3 / 4 + 1.75rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-select.is-valid~.valid-feedback,.custom-select.is-valid~.valid-tooltip,.was-validated .custom-select:valid~.valid-feedback,.was-validated .custom-select:valid~.valid-tooltip{display:block}.form-control-file.is-valid~.valid-feedback,.form-control-file.is-valid~.valid-tooltip,.was-validated .form-control-file:valid~.valid-feedback,.was-validated .form-control-file:valid~.valid-tooltip{display:block}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label::before,.was-validated .custom-control-input:valid~.custom-control-label::before{border-color:#28a745}.custom-control-input.is-valid~.valid-feedback,.custom-control-input.is-valid~.valid-tooltip,.was-validated .custom-control-input:valid~.valid-feedback,.was-validated .custom-control-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .custom-control-input:valid:checked~.custom-control-label::before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label::before{border-color:#28a745}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid~.valid-feedback,.custom-file-input.is-valid~.valid-tooltip,.was-validated .custom-file-input:valid~.valid-feedback,.was-validated .custom-file-input:valid~.valid-tooltip{display:block}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E");background-repeat:no-repeat;background-position:center right calc(.375em + .1875rem);background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-control.is-invalid~.invalid-feedback,.form-control.is-invalid~.invalid-tooltip,.was-validated .form-control:invalid~.invalid-feedback,.was-validated .form-control:invalid~.invalid-tooltip{display:block}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc((1em + .75rem) * 3 / 4 + 1.75rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-select.is-invalid~.invalid-feedback,.custom-select.is-invalid~.invalid-tooltip,.was-validated .custom-select:invalid~.invalid-feedback,.was-validated .custom-select:invalid~.invalid-tooltip{display:block}.form-control-file.is-invalid~.invalid-feedback,.form-control-file.is-invalid~.invalid-tooltip,.was-validated .form-control-file:invalid~.invalid-feedback,.was-validated .form-control-file:invalid~.invalid-tooltip{display:block}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label::before,.was-validated .custom-control-input:invalid~.custom-control-label::before{border-color:#dc3545}.custom-control-input.is-invalid~.invalid-feedback,.custom-control-input.is-invalid~.invalid-tooltip,.was-validated .custom-control-input:invalid~.invalid-feedback,.was-validated .custom-control-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .custom-control-input:invalid:checked~.custom-control-label::before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label::before{border-color:#dc3545}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid~.invalid-feedback,.custom-file-input.is-invalid~.invalid-tooltip,.was-validated .custom-file-input:invalid~.invalid-feedback,.was-validated .custom-file-input:invalid~.invalid-tooltip{display:block}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:-ms-flexbox;display:flex;-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;-ms-flex-negative:0;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-ms-flex:1 1 auto;flex:1 1 auto}.btn-group-vertical>.btn:hover,.btn-group>.btn:hover{z-index:1}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus{z-index:1}.btn-toolbar{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:center;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;width:1%;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-ms-flexbox;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:-ms-inline-flexbox;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;z-index:-1;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label::before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label::before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label::before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";background-color:#fff;border:#adb5bd solid 1px}.custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label::before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label::after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label::after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label::after{background-color:#fff;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{position:relative;display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(1.5em + .75rem + 2px);margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}.custom-file-input~.custom-file-label[data-browse]::after{content:attr(data-browse)}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:calc(1rem + .4rem);padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label::before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label::before,.custom-file-label,.custom-select{transition:none}}.nav{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;padding:.5rem 1rem}.navbar>.container,.navbar>.container-fluid{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{-ms-flex-preferred-size:100%;flex-basis:100%;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:no-repeat center center;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-sm .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-md .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-lg .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xl .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a{color:rgba(0,0,0,.9)}.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,.5)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{-ms-flex:1 1 auto;flex:1 1 auto;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img{width:100%;border-radius:calc(.25rem - 1px)}.card-img-top{width:100%;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img-bottom{width:100%;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{-ms-flex-flow:row wrap;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{display:-ms-flexbox;display:flex;-ms-flex:1 0 0%;flex:1 0 0%;-ms-flex-direction:column;flex-direction:column;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{-ms-flex-flow:row wrap;flex-flow:row wrap}.card-group>.card{-ms-flex:1 0 0%;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:first-of-type) .card-header:first-child{border-radius:0}.accordion>.card:not(:first-of-type):not(:last-of-type){border-bottom:0;border-radius:0}.accordion>.card:first-of-type{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:last-of-type{border-top-left-radius:0;border-top-right-radius:0}.accordion>.card .card-header{margin-bottom:-1px}.breadcrumb{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-ms-flexbox;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:2;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:1;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:-ms-flexbox;display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.media{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start}.media-body{-ms-flex:1;flex:1}.list-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;margin-bottom:-1px;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-horizontal{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}@media (min-width:576px){.list-group-horizontal-sm{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-sm .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-sm .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width:768px){.list-group-horizontal-md{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-md .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-md .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width:992px){.list-group-horizontal-lg{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-lg .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-lg .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width:1200px){.list-group-horizontal-xl{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-xl .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-xl .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}.list-group-flush .list-group-item{border-right:0;border-left:0;border-radius:0}.list-group-flush .list-group-item:last-child{margin-bottom:-1px}.list-group-flush:first-child .list-group-item:first-child{border-top:0}.list-group-flush:last-child .list-group-item:last-child{margin-bottom:0;border-bottom:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translate(0,-50px);transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal-dialog-scrollable{display:-ms-flexbox;display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{-ms-flex-negative:0;flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered::before{display:block;height:calc(100vh - 1rem);content:""}.modal-dialog-centered.modal-dialog-scrollable{-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable::before{content:none}.modal-content{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:justify;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:.3rem;border-top-right-radius:.3rem}.modal-header .close{padding:1rem 1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem}.modal-footer{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end;padding:1rem;border-top:1px solid #dee2e6;border-bottom-right-radius:.3rem;border-bottom-left-radius:.3rem}.modal-footer>:not(:first-child){margin-left:.25rem}.modal-footer>:not(:last-child){margin-right:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered::before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow::before,.bs-tooltip-top .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow::before,.bs-tooltip-right .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.bs-tooltip-bottom .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow::before,.bs-tooltip-left .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::after,.popover .arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=top]>.arrow::before,.bs-popover-top>.arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow::after,.bs-popover-top>.arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow::before,.bs-popover-right>.arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow::after,.bs-popover-right>.arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=bottom]>.arrow::before,.bs-popover-bottom>.arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow::after,.bs-popover-bottom>.arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow::before,.bs-popover-left>.arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow::after,.bs-popover-left>.arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{-ms-touch-action:pan-y;touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:0s .6s opacity}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;-ms-flex:0 1 auto;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:spinner-grow .75s linear infinite;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.857143%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-sm-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-sm-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-sm-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-sm-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-sm-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-sm-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-md-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-md-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-md-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-md-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-md-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-md-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-lg-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-lg-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-lg-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-lg-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-lg-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-lg-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-xl-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xl-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-xl-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-xl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-xl-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:rgba(0,0,0,0)}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:rgba(255,255,255,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,::after,::before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px!important}.container{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}} -/*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file diff --git a/EnoLandingPageFrontend/wwwroot/css/bootstrap/bootstrap.min.css.map b/EnoLandingPageFrontend/wwwroot/css/bootstrap/bootstrap.min.css.map deleted file mode 100644 index 1e9cb78..0000000 --- a/EnoLandingPageFrontend/wwwroot/css/bootstrap/bootstrap.min.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../scss/bootstrap.scss","../../scss/_root.scss","../../scss/_reboot.scss","dist/css/bootstrap.css","../../scss/vendor/_rfs.scss","bootstrap.css","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/mixins/_grid-framework.scss","../../scss/_tables.scss","../../scss/mixins/_table-row.scss","../../scss/_forms.scss","../../scss/mixins/_transition.scss","../../scss/mixins/_forms.scss","../../scss/mixins/_gradients.scss","../../scss/_buttons.scss","../../scss/mixins/_buttons.scss","../../scss/_transitions.scss","../../scss/_dropdown.scss","../../scss/mixins/_caret.scss","../../scss/mixins/_nav-divider.scss","../../scss/_button-group.scss","../../scss/_input-group.scss","../../scss/_custom-forms.scss","../../scss/_nav.scss","../../scss/_navbar.scss","../../scss/_card.scss","../../scss/_breadcrumb.scss","../../scss/_pagination.scss","../../scss/mixins/_pagination.scss","../../scss/_badge.scss","../../scss/mixins/_badge.scss","../../scss/_jumbotron.scss","../../scss/_alert.scss","../../scss/mixins/_alert.scss","../../scss/_progress.scss","../../scss/_media.scss","../../scss/_list-group.scss","../../scss/mixins/_list-group.scss","../../scss/_close.scss","../../scss/_toasts.scss","../../scss/_modal.scss","../../scss/_tooltip.scss","../../scss/mixins/_reset-text.scss","../../scss/_popover.scss","../../scss/_carousel.scss","../../scss/mixins/_clearfix.scss","../../scss/_spinners.scss","../../scss/utilities/_align.scss","../../scss/mixins/_background-variant.scss","../../scss/utilities/_background.scss","../../scss/utilities/_borders.scss","../../scss/utilities/_display.scss","../../scss/utilities/_embed.scss","../../scss/utilities/_flex.scss","../../scss/utilities/_float.scss","../../scss/utilities/_overflow.scss","../../scss/utilities/_position.scss","../../scss/utilities/_screenreaders.scss","../../scss/mixins/_screen-reader.scss","../../scss/utilities/_shadows.scss","../../scss/utilities/_sizing.scss","../../scss/utilities/_stretched-link.scss","../../scss/utilities/_spacing.scss","../../scss/utilities/_text.scss","../../scss/mixins/_text-truncate.scss","../../scss/mixins/_text-emphasis.scss","../../scss/mixins/_text-hide.scss","../../scss/utilities/_visibility.scss","../../scss/_print.scss"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Bootstrap v4.3.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\n@import \"functions\";\n@import \"variables\";\n@import \"mixins\";\n@import \"root\";\n@import \"reboot\";\n@import \"type\";\n@import \"images\";\n@import \"code\";\n@import \"grid\";\n@import \"tables\";\n@import \"forms\";\n@import \"buttons\";\n@import \"transitions\";\n@import \"dropdown\";\n@import \"button-group\";\n@import \"input-group\";\n@import \"custom-forms\";\n@import \"nav\";\n@import \"navbar\";\n@import \"card\";\n@import \"breadcrumb\";\n@import \"pagination\";\n@import \"badge\";\n@import \"jumbotron\";\n@import \"alert\";\n@import \"progress\";\n@import \"media\";\n@import \"list-group\";\n@import \"close\";\n@import \"toasts\";\n@import \"modal\";\n@import \"tooltip\";\n@import \"popover\";\n@import \"carousel\";\n@import \"spinners\";\n@import \"utilities\";\n@import \"print\";\n",":root {\n // Custom variable values only support SassScript inside `#{}`.\n @each $color, $value in $colors {\n --#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors {\n --#{$color}: #{$value};\n }\n\n @each $bp, $value in $grid-breakpoints {\n --breakpoint-#{$bp}: #{$value};\n }\n\n // Use `inspect` for lists so that quoted items keep the quotes.\n // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\n --font-family-sans-serif: #{inspect($font-family-sans-serif)};\n --font-family-monospace: #{inspect($font-family-monospace)};\n}\n","// stylelint-disable at-rule-no-vendor-prefix, declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n// 2. Change the default font family in all browsers.\n// 3. Correct the line height in all browsers.\n// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.\n// 5. Change the default tap highlight to be completely transparent in iOS.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box; // 1\n}\n\nhtml {\n font-family: sans-serif; // 2\n line-height: 1.15; // 3\n -webkit-text-size-adjust: 100%; // 4\n -webkit-tap-highlight-color: rgba($black, 0); // 5\n}\n\n// Shim for \"new\" HTML5 structural elements to display correctly (IE10, older browsers)\n// TODO: remove in v5\n// stylelint-disable-next-line selector-list-comma-newline-after\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Set an explicit initial text-align value so that we can later use\n// the `inherit` value on things like `
` elements.\n\nbody {\n margin: 0; // 1\n font-family: $font-family-base;\n @include font-size($font-size-base);\n font-weight: $font-weight-base;\n line-height: $line-height-base;\n color: $body-color;\n text-align: left; // 3\n background-color: $body-bg; // 2\n}\n\n// Suppress the focus outline on elements that cannot be accessed via keyboard.\n// This prevents an unwanted focus outline from appearing around elements that\n// might still respond to pointer events.\n//\n// Credit: https://github.com/suitcss/base\n[tabindex=\"-1\"]:focus {\n outline: 0 !important;\n}\n\n\n// Content grouping\n//\n// 1. Add the correct box sizing in Firefox.\n// 2. Show the overflow in Edge and IE.\n\nhr {\n box-sizing: content-box; // 1\n height: 0; // 1\n overflow: visible; // 2\n}\n\n\n//\n// Typography\n//\n\n// Remove top margins from headings\n//\n// By default, `

`-`

` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n// stylelint-disable-next-line selector-list-comma-newline-after\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: $headings-margin-bottom;\n}\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `

`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n// Abbreviations\n//\n// 1. Duplicate behavior to the data-* attribute for our tooltip plugin\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Remove the bottom border in Firefox 39-.\n// 5. Prevent the text-decoration to be skipped.\n\nabbr[title],\nabbr[data-original-title] { // 1\n text-decoration: underline; // 2\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n border-bottom: 0; // 4\n text-decoration-skip-ink: none; // 5\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // Undo browser default\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: $font-weight-bolder; // Add the correct font weight in Chrome, Edge, and Safari\n}\n\nsmall {\n @include font-size(80%); // Add the correct font size in all browsers\n}\n\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n//\n\nsub,\nsup {\n position: relative;\n @include font-size(75%);\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n//\n// Links\n//\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n background-color: transparent; // Remove the gray background on active links in IE 10.\n\n @include hover {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href)\n// which have not been made explicitly keyboard-focusable (without tabindex).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n\n @include hover-focus {\n color: inherit;\n text-decoration: none;\n }\n\n &:focus {\n outline: 0;\n }\n}\n\n\n//\n// Code\n//\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-monospace;\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n}\n\npre {\n // Remove browser default top margin\n margin-top: 0;\n // Reset browser default of `1em` to use `rem`s\n margin-bottom: 1rem;\n // Don't allow content to break outside\n overflow: auto;\n}\n\n\n//\n// Figures\n//\n\nfigure {\n // Apply a consistent margin strategy (matches our type styles).\n margin: 0 0 1rem;\n}\n\n\n//\n// Images and content\n//\n\nimg {\n vertical-align: middle;\n border-style: none; // Remove the border on images inside links in IE 10-.\n}\n\nsvg {\n // Workaround for the SVG overflow bug in IE10/11 is still required.\n // See https://github.com/twbs/bootstrap/issues/26878\n overflow: hidden;\n vertical-align: middle;\n}\n\n\n//\n// Tables\n//\n\ntable {\n border-collapse: collapse; // Prevent double borders\n}\n\ncaption {\n padding-top: $table-cell-padding;\n padding-bottom: $table-cell-padding;\n color: $table-caption-color;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n // Matches default `

` alignment by inheriting from the ``, or the\n // closest parent with a set `text-align`.\n text-align: inherit;\n}\n\n\n//\n// Forms\n//\n\nlabel {\n // Allow labels to use `margin` for spacing.\n display: inline-block;\n margin-bottom: $label-margin-bottom;\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24093\nbutton {\n // stylelint-disable-next-line property-blacklist\n border-radius: 0;\n}\n\n// Work around a Firefox/IE bug where the transparent `button` background\n// results in a loss of the default `button` focus styles.\n//\n// Credit: https://github.com/suitcss/base/\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // Remove the margin in Firefox and Safari\n font-family: inherit;\n @include font-size(inherit);\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible; // Show the overflow in Edge\n}\n\nbutton,\nselect {\n text-transform: none; // Remove the inheritance of text transform in Firefox\n}\n\n// Remove the inheritance of word-wrap in Safari.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24990\nselect {\n word-wrap: normal;\n}\n\n\n// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n// controls in Android 4.\n// 2. Correct the inability to style clickable types in iOS and Safari.\nbutton,\n[type=\"button\"], // 1\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button; // 2\n}\n\n// Opinionated: add \"hand\" cursor to non-disabled button elements.\n@if $enable-pointer-cursor-for-buttons {\n button,\n [type=\"button\"],\n [type=\"reset\"],\n [type=\"submit\"] {\n &:not(:disabled) {\n cursor: pointer;\n }\n }\n}\n\n// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box; // 1. Add the correct box sizing in IE 10-\n padding: 0; // 2. Remove the padding in IE 10-\n}\n\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n // Remove the default appearance of temporal inputs to avoid a Mobile Safari\n // bug where setting a custom line-height prevents text from being vertically\n // centered within the input.\n // See https://bugs.webkit.org/show_bug.cgi?id=139848\n // and https://github.com/twbs/bootstrap/issues/11266\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto; // Remove the default vertical scrollbar in IE.\n // Textareas should really only resize vertically so they don't break their (horizontal) containers.\n resize: vertical;\n}\n\nfieldset {\n // Browsers set a default `min-width: min-content;` on fieldsets,\n // unlike e.g. `
`s, which have `min-width: 0;` by default.\n // So we reset that to ensure fieldsets behave more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359\n // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n min-width: 0;\n // Reset the default outline behavior of fieldsets so they don't affect page layout.\n padding: 0;\n margin: 0;\n border: 0;\n}\n\n// 1. Correct the text wrapping in Edge and IE.\n// 2. Correct the color inheritance from `fieldset` elements in IE.\nlegend {\n display: block;\n width: 100%;\n max-width: 100%; // 1\n padding: 0;\n margin-bottom: .5rem;\n @include font-size(1.5rem);\n line-height: inherit;\n color: inherit; // 2\n white-space: normal; // 1\n}\n\nprogress {\n vertical-align: baseline; // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n}\n\n// Correct the cursor style of increment and decrement buttons in Chrome.\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n // This overrides the extra rounded corners on search inputs in iOS so that our\n // `.form-control` class can properly style them. Note that this cannot simply\n // be added to `.form-control` as it's not specific enough. For details, see\n // https://github.com/twbs/bootstrap/issues/11586.\n outline-offset: -2px; // 2. Correct the outline style in Safari.\n -webkit-appearance: none;\n}\n\n//\n// Remove the inner padding in Chrome and Safari on macOS.\n//\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// 1. Correct the inability to style clickable types in iOS and Safari.\n// 2. Change font properties to `inherit` in Safari.\n//\n\n::-webkit-file-upload-button {\n font: inherit; // 2\n -webkit-appearance: button; // 1\n}\n\n//\n// Correct element displays\n//\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item; // Add the correct display in all browsers\n cursor: pointer;\n}\n\ntemplate {\n display: none; // Add the correct display in IE\n}\n\n// Always hide an element with the `hidden` HTML attribute (from PureCSS).\n// Needed for proper display in IE 10-.\n[hidden] {\n display: none !important;\n}\n","/*!\n * Bootstrap v4.3.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n:root {\n --blue: #007bff;\n --indigo: #6610f2;\n --purple: #6f42c1;\n --pink: #e83e8c;\n --red: #dc3545;\n --orange: #fd7e14;\n --yellow: #ffc107;\n --green: #28a745;\n --teal: #20c997;\n --cyan: #17a2b8;\n --white: #fff;\n --gray: #6c757d;\n --gray-dark: #343a40;\n --primary: #007bff;\n --secondary: #6c757d;\n --success: #28a745;\n --info: #17a2b8;\n --warning: #ffc107;\n --danger: #dc3545;\n --light: #f8f9fa;\n --dark: #343a40;\n --breakpoint-xs: 0;\n --breakpoint-sm: 576px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 992px;\n --breakpoint-xl: 1200px;\n --font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n -webkit-text-decoration-skip-ink: none;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):focus {\n outline: 0;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg {\n overflow: hidden;\n vertical-align: middle;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\nselect {\n word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: 0.5rem;\n font-weight: 500;\n line-height: 1.2;\n}\n\nh1, .h1 {\n font-size: 2.5rem;\n}\n\nh2, .h2 {\n font-size: 2rem;\n}\n\nh3, .h3 {\n font-size: 1.75rem;\n}\n\nh4, .h4 {\n font-size: 1.5rem;\n}\n\nh5, .h5 {\n font-size: 1.25rem;\n}\n\nh6, .h6 {\n font-size: 1rem;\n}\n\n.lead {\n font-size: 1.25rem;\n font-weight: 300;\n}\n\n.display-1 {\n font-size: 6rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-2 {\n font-size: 5.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-3 {\n font-size: 4.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-4 {\n font-size: 3.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\nhr {\n margin-top: 1rem;\n margin-bottom: 1rem;\n border: 0;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\nsmall,\n.small {\n font-size: 80%;\n font-weight: 400;\n}\n\nmark,\n.mark {\n padding: 0.2em;\n background-color: #fcf8e3;\n}\n\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline-item {\n display: inline-block;\n}\n\n.list-inline-item:not(:last-child) {\n margin-right: 0.5rem;\n}\n\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\n\n.blockquote {\n margin-bottom: 1rem;\n font-size: 1.25rem;\n}\n\n.blockquote-footer {\n display: block;\n font-size: 80%;\n color: #6c757d;\n}\n\n.blockquote-footer::before {\n content: \"\\2014\\00A0\";\n}\n\n.img-fluid {\n max-width: 100%;\n height: auto;\n}\n\n.img-thumbnail {\n padding: 0.25rem;\n background-color: #fff;\n border: 1px solid #dee2e6;\n border-radius: 0.25rem;\n max-width: 100%;\n height: auto;\n}\n\n.figure {\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: 0.5rem;\n line-height: 1;\n}\n\n.figure-caption {\n font-size: 90%;\n color: #6c757d;\n}\n\ncode {\n font-size: 87.5%;\n color: #e83e8c;\n word-break: break-word;\n}\n\na > code {\n color: inherit;\n}\n\nkbd {\n padding: 0.2rem 0.4rem;\n font-size: 87.5%;\n color: #fff;\n background-color: #212529;\n border-radius: 0.2rem;\n}\n\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: 700;\n}\n\npre {\n display: block;\n font-size: 87.5%;\n color: #212529;\n}\n\npre code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n}\n\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n\n.container {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container {\n max-width: 1140px;\n }\n}\n\n.container-fluid {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n.row {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.col-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n}\n\n.col-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n -ms-flex-order: -1;\n order: -1;\n}\n\n.order-last {\n -ms-flex-order: 13;\n order: 13;\n}\n\n.order-0 {\n -ms-flex-order: 0;\n order: 0;\n}\n\n.order-1 {\n -ms-flex-order: 1;\n order: 1;\n}\n\n.order-2 {\n -ms-flex-order: 2;\n order: 2;\n}\n\n.order-3 {\n -ms-flex-order: 3;\n order: 3;\n}\n\n.order-4 {\n -ms-flex-order: 4;\n order: 4;\n}\n\n.order-5 {\n -ms-flex-order: 5;\n order: 5;\n}\n\n.order-6 {\n -ms-flex-order: 6;\n order: 6;\n}\n\n.order-7 {\n -ms-flex-order: 7;\n order: 7;\n}\n\n.order-8 {\n -ms-flex-order: 8;\n order: 8;\n}\n\n.order-9 {\n -ms-flex-order: 9;\n order: 9;\n}\n\n.order-10 {\n -ms-flex-order: 10;\n order: 10;\n}\n\n.order-11 {\n -ms-flex-order: 11;\n order: 11;\n}\n\n.order-12 {\n -ms-flex-order: 12;\n order: 12;\n}\n\n.offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11 {\n margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-sm-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-sm-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-sm-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-sm-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-sm-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-sm-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-sm-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-sm-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-sm-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-sm-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-sm-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-sm-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-sm-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-sm-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-sm-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-sm-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-md-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-md-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-md-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-md-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-md-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-md-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-md-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-md-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-md-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-md-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-md-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-md-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-md-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-md-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-md-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-md-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-lg-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-lg-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-lg-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-lg-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-lg-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-lg-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-lg-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-lg-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-lg-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-lg-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-lg-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-lg-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-lg-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-lg-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-lg-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-lg-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-xl-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-xl-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-xl-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-xl-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-xl-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-xl-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-xl-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-xl-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-xl-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-xl-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-xl-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-xl-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-xl-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-xl-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-xl-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-xl-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11 {\n margin-left: 91.666667%;\n }\n}\n\n.table {\n width: 100%;\n margin-bottom: 1rem;\n color: #212529;\n}\n\n.table th,\n.table td {\n padding: 0.75rem;\n vertical-align: top;\n border-top: 1px solid #dee2e6;\n}\n\n.table thead th {\n vertical-align: bottom;\n border-bottom: 2px solid #dee2e6;\n}\n\n.table tbody + tbody {\n border-top: 2px solid #dee2e6;\n}\n\n.table-sm th,\n.table-sm td {\n padding: 0.3rem;\n}\n\n.table-bordered {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered th,\n.table-bordered td {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered thead th,\n.table-bordered thead td {\n border-bottom-width: 2px;\n}\n\n.table-borderless th,\n.table-borderless td,\n.table-borderless thead th,\n.table-borderless tbody + tbody {\n border: 0;\n}\n\n.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n.table-hover tbody tr:hover {\n color: #212529;\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n background-color: #b8daff;\n}\n\n.table-primary th,\n.table-primary td,\n.table-primary thead th,\n.table-primary tbody + tbody {\n border-color: #7abaff;\n}\n\n.table-hover .table-primary:hover {\n background-color: #9fcdff;\n}\n\n.table-hover .table-primary:hover > td,\n.table-hover .table-primary:hover > th {\n background-color: #9fcdff;\n}\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n background-color: #d6d8db;\n}\n\n.table-secondary th,\n.table-secondary td,\n.table-secondary thead th,\n.table-secondary tbody + tbody {\n border-color: #b3b7bb;\n}\n\n.table-hover .table-secondary:hover {\n background-color: #c8cbcf;\n}\n\n.table-hover .table-secondary:hover > td,\n.table-hover .table-secondary:hover > th {\n background-color: #c8cbcf;\n}\n\n.table-success,\n.table-success > th,\n.table-success > td {\n background-color: #c3e6cb;\n}\n\n.table-success th,\n.table-success td,\n.table-success thead th,\n.table-success tbody + tbody {\n border-color: #8fd19e;\n}\n\n.table-hover .table-success:hover {\n background-color: #b1dfbb;\n}\n\n.table-hover .table-success:hover > td,\n.table-hover .table-success:hover > th {\n background-color: #b1dfbb;\n}\n\n.table-info,\n.table-info > th,\n.table-info > td {\n background-color: #bee5eb;\n}\n\n.table-info th,\n.table-info td,\n.table-info thead th,\n.table-info tbody + tbody {\n border-color: #86cfda;\n}\n\n.table-hover .table-info:hover {\n background-color: #abdde5;\n}\n\n.table-hover .table-info:hover > td,\n.table-hover .table-info:hover > th {\n background-color: #abdde5;\n}\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n background-color: #ffeeba;\n}\n\n.table-warning th,\n.table-warning td,\n.table-warning thead th,\n.table-warning tbody + tbody {\n border-color: #ffdf7e;\n}\n\n.table-hover .table-warning:hover {\n background-color: #ffe8a1;\n}\n\n.table-hover .table-warning:hover > td,\n.table-hover .table-warning:hover > th {\n background-color: #ffe8a1;\n}\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n background-color: #f5c6cb;\n}\n\n.table-danger th,\n.table-danger td,\n.table-danger thead th,\n.table-danger tbody + tbody {\n border-color: #ed969e;\n}\n\n.table-hover .table-danger:hover {\n background-color: #f1b0b7;\n}\n\n.table-hover .table-danger:hover > td,\n.table-hover .table-danger:hover > th {\n background-color: #f1b0b7;\n}\n\n.table-light,\n.table-light > th,\n.table-light > td {\n background-color: #fdfdfe;\n}\n\n.table-light th,\n.table-light td,\n.table-light thead th,\n.table-light tbody + tbody {\n border-color: #fbfcfc;\n}\n\n.table-hover .table-light:hover {\n background-color: #ececf6;\n}\n\n.table-hover .table-light:hover > td,\n.table-hover .table-light:hover > th {\n background-color: #ececf6;\n}\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n background-color: #c6c8ca;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th,\n.table-dark tbody + tbody {\n border-color: #95999c;\n}\n\n.table-hover .table-dark:hover {\n background-color: #b9bbbe;\n}\n\n.table-hover .table-dark:hover > td,\n.table-hover .table-dark:hover > th {\n background-color: #b9bbbe;\n}\n\n.table-active,\n.table-active > th,\n.table-active > td {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover > td,\n.table-hover .table-active:hover > th {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table .thead-dark th {\n color: #fff;\n background-color: #343a40;\n border-color: #454d55;\n}\n\n.table .thead-light th {\n color: #495057;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.table-dark {\n color: #fff;\n background-color: #343a40;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th {\n border-color: #454d55;\n}\n\n.table-dark.table-bordered {\n border: 0;\n}\n\n.table-dark.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(255, 255, 255, 0.05);\n}\n\n.table-dark.table-hover tbody tr:hover {\n color: #fff;\n background-color: rgba(255, 255, 255, 0.075);\n}\n\n@media (max-width: 575.98px) {\n .table-responsive-sm {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-sm > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 767.98px) {\n .table-responsive-md {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-md > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 991.98px) {\n .table-responsive-lg {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-lg > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 1199.98px) {\n .table-responsive-xl {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-xl > .table-bordered {\n border: 0;\n }\n}\n\n.table-responsive {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n}\n\n.table-responsive > .table-bordered {\n border: 0;\n}\n\n.form-control {\n display: block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .form-control {\n transition: none;\n }\n}\n\n.form-control::-ms-expand {\n background-color: transparent;\n border: 0;\n}\n\n.form-control:focus {\n color: #495057;\n background-color: #fff;\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.form-control::-webkit-input-placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control::-moz-placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control:-ms-input-placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control::-ms-input-placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control::placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control:disabled, .form-control[readonly] {\n background-color: #e9ecef;\n opacity: 1;\n}\n\nselect.form-control:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n\n.col-form-label {\n padding-top: calc(0.375rem + 1px);\n padding-bottom: calc(0.375rem + 1px);\n margin-bottom: 0;\n font-size: inherit;\n line-height: 1.5;\n}\n\n.col-form-label-lg {\n padding-top: calc(0.5rem + 1px);\n padding-bottom: calc(0.5rem + 1px);\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.col-form-label-sm {\n padding-top: calc(0.25rem + 1px);\n padding-bottom: calc(0.25rem + 1px);\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n margin-bottom: 0;\n line-height: 1.5;\n color: #212529;\n background-color: transparent;\n border: solid transparent;\n border-width: 1px 0;\n}\n\n.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\n padding-right: 0;\n padding-left: 0;\n}\n\n.form-control-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.form-control-lg {\n height: calc(1.5em + 1rem + 2px);\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\nselect.form-control[size], select.form-control[multiple] {\n height: auto;\n}\n\ntextarea.form-control {\n height: auto;\n}\n\n.form-group {\n margin-bottom: 1rem;\n}\n\n.form-text {\n display: block;\n margin-top: 0.25rem;\n}\n\n.form-row {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n margin-right: -5px;\n margin-left: -5px;\n}\n\n.form-row > .col,\n.form-row > [class*=\"col-\"] {\n padding-right: 5px;\n padding-left: 5px;\n}\n\n.form-check {\n position: relative;\n display: block;\n padding-left: 1.25rem;\n}\n\n.form-check-input {\n position: absolute;\n margin-top: 0.3rem;\n margin-left: -1.25rem;\n}\n\n.form-check-input:disabled ~ .form-check-label {\n color: #6c757d;\n}\n\n.form-check-label {\n margin-bottom: 0;\n}\n\n.form-check-inline {\n display: -ms-inline-flexbox;\n display: inline-flex;\n -ms-flex-align: center;\n align-items: center;\n padding-left: 0;\n margin-right: 0.75rem;\n}\n\n.form-check-inline .form-check-input {\n position: static;\n margin-top: 0;\n margin-right: 0.3125rem;\n margin-left: 0;\n}\n\n.valid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #28a745;\n}\n\n.valid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(40, 167, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.was-validated .form-control:valid, .form-control.is-valid {\n border-color: #28a745;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: center right calc(0.375em + 0.1875rem);\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .form-control:valid ~ .valid-feedback,\n.was-validated .form-control:valid ~ .valid-tooltip, .form-control.is-valid ~ .valid-feedback,\n.form-control.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated textarea.form-control:valid, textarea.form-control.is-valid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:valid, .custom-select.is-valid {\n border-color: #28a745;\n padding-right: calc((1em + 0.75rem) * 3 / 4 + 1.75rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-select:valid ~ .valid-feedback,\n.was-validated .custom-select:valid ~ .valid-tooltip, .custom-select.is-valid ~ .valid-feedback,\n.custom-select.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .form-control-file:valid ~ .valid-feedback,\n.was-validated .form-control-file:valid ~ .valid-tooltip, .form-control-file.is-valid ~ .valid-feedback,\n.form-control-file.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n color: #28a745;\n}\n\n.was-validated .form-check-input:valid ~ .valid-feedback,\n.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,\n.form-check-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\n color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .valid-feedback,\n.was-validated .custom-control-input:valid ~ .valid-tooltip, .custom-control-input.is-valid ~ .valid-feedback,\n.custom-control-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {\n border-color: #34ce57;\n background-color: #34ce57;\n}\n\n.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .valid-feedback,\n.was-validated .custom-file-input:valid ~ .valid-tooltip, .custom-file-input.is-valid ~ .valid-feedback,\n.custom-file-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.invalid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #dc3545;\n}\n\n.invalid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(220, 53, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.was-validated .form-control:invalid, .form-control.is-invalid {\n border-color: #dc3545;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E\");\n background-repeat: no-repeat;\n background-position: center right calc(0.375em + 0.1875rem);\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .form-control:invalid ~ .invalid-feedback,\n.was-validated .form-control:invalid ~ .invalid-tooltip, .form-control.is-invalid ~ .invalid-feedback,\n.form-control.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:invalid, .custom-select.is-invalid {\n border-color: #dc3545;\n padding-right: calc((1em + 0.75rem) * 3 / 4 + 1.75rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-select:invalid ~ .invalid-feedback,\n.was-validated .custom-select:invalid ~ .invalid-tooltip, .custom-select.is-invalid ~ .invalid-feedback,\n.custom-select.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .form-control-file:invalid ~ .invalid-feedback,\n.was-validated .form-control-file:invalid ~ .invalid-tooltip, .form-control-file.is-invalid ~ .invalid-feedback,\n.form-control-file.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n color: #dc3545;\n}\n\n.was-validated .form-check-input:invalid ~ .invalid-feedback,\n.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,\n.form-check-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\n color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .invalid-feedback,\n.was-validated .custom-control-input:invalid ~ .invalid-tooltip, .custom-control-input.is-invalid ~ .invalid-feedback,\n.custom-control-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\n border-color: #e4606d;\n background-color: #e4606d;\n}\n\n.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .invalid-feedback,\n.was-validated .custom-file-input:invalid ~ .invalid-tooltip, .custom-file-input.is-invalid ~ .invalid-feedback,\n.custom-file-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.form-inline {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-flow: row wrap;\n flex-flow: row wrap;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.form-inline .form-check {\n width: 100%;\n}\n\n@media (min-width: 576px) {\n .form-inline label {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n margin-bottom: 0;\n }\n .form-inline .form-group {\n display: -ms-flexbox;\n display: flex;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n -ms-flex-flow: row wrap;\n flex-flow: row wrap;\n -ms-flex-align: center;\n align-items: center;\n margin-bottom: 0;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-plaintext {\n display: inline-block;\n }\n .form-inline .input-group,\n .form-inline .custom-select {\n width: auto;\n }\n .form-inline .form-check {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n width: auto;\n padding-left: 0;\n }\n .form-inline .form-check-input {\n position: relative;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n margin-top: 0;\n margin-right: 0.25rem;\n margin-left: 0;\n }\n .form-inline .custom-control {\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n }\n .form-inline .custom-control-label {\n margin-bottom: 0;\n }\n}\n\n.btn {\n display: inline-block;\n font-weight: 400;\n color: #212529;\n text-align: center;\n vertical-align: middle;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n background-color: transparent;\n border: 1px solid transparent;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n line-height: 1.5;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .btn {\n transition: none;\n }\n}\n\n.btn:hover {\n color: #212529;\n text-decoration: none;\n}\n\n.btn:focus, .btn.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.btn.disabled, .btn:disabled {\n opacity: 0.65;\n}\n\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none;\n}\n\n.btn-primary {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:hover {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n}\n\n.btn-primary:focus, .btn-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-primary.disabled, .btn-primary:disabled {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,\n.show > .btn-primary.dropdown-toggle {\n color: #fff;\n background-color: #0062cc;\n border-color: #005cbf;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-secondary {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:hover {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n}\n\n.btn-secondary:focus, .btn-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-secondary.disabled, .btn-secondary:disabled {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-secondary.dropdown-toggle {\n color: #fff;\n background-color: #545b62;\n border-color: #4e555b;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-success {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:hover {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n}\n\n.btn-success:focus, .btn-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-success.disabled, .btn-success:disabled {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,\n.show > .btn-success.dropdown-toggle {\n color: #fff;\n background-color: #1e7e34;\n border-color: #1c7430;\n}\n\n.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-info {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:hover {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n}\n\n.btn-info:focus, .btn-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-info.disabled, .btn-info:disabled {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,\n.show > .btn-info.dropdown-toggle {\n color: #fff;\n background-color: #117a8b;\n border-color: #10707f;\n}\n\n.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-warning {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:hover {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n}\n\n.btn-warning:focus, .btn-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-warning.disabled, .btn-warning:disabled {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\n.show > .btn-warning.dropdown-toggle {\n color: #212529;\n background-color: #d39e00;\n border-color: #c69500;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-danger {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:hover {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n}\n\n.btn-danger:focus, .btn-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-danger.disabled, .btn-danger:disabled {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,\n.show > .btn-danger.dropdown-toggle {\n color: #fff;\n background-color: #bd2130;\n border-color: #b21f2d;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-light {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:hover {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n}\n\n.btn-light:focus, .btn-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-light.disabled, .btn-light:disabled {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\n.show > .btn-light.dropdown-toggle {\n color: #212529;\n background-color: #dae0e5;\n border-color: #d3d9df;\n}\n\n.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-dark {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:hover {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n}\n\n.btn-dark:focus, .btn-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-dark.disabled, .btn-dark:disabled {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\n.show > .btn-dark.dropdown-toggle {\n color: #fff;\n background-color: #1d2124;\n border-color: #171a1d;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-outline-primary {\n color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:hover {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:focus, .btn-outline-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-primary.disabled, .btn-outline-primary:disabled {\n color: #007bff;\n background-color: transparent;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-primary.dropdown-toggle {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-secondary {\n color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:hover {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:focus, .btn-outline-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n color: #6c757d;\n background-color: transparent;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-secondary.dropdown-toggle {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-success {\n color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:hover {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:focus, .btn-outline-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-success.disabled, .btn-outline-success:disabled {\n color: #28a745;\n background-color: transparent;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\n.show > .btn-outline-success.dropdown-toggle {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-info {\n color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:hover {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:focus, .btn-outline-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-info.disabled, .btn-outline-info:disabled {\n color: #17a2b8;\n background-color: transparent;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\n.show > .btn-outline-info.dropdown-toggle {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-warning {\n color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:hover {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:focus, .btn-outline-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-warning.disabled, .btn-outline-warning:disabled {\n color: #ffc107;\n background-color: transparent;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\n.show > .btn-outline-warning.dropdown-toggle {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-danger {\n color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:hover {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:focus, .btn-outline-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-danger.disabled, .btn-outline-danger:disabled {\n color: #dc3545;\n background-color: transparent;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\n.show > .btn-outline-danger.dropdown-toggle {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-light {\n color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:hover {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:focus, .btn-outline-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-light.disabled, .btn-outline-light:disabled {\n color: #f8f9fa;\n background-color: transparent;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\n.show > .btn-outline-light.dropdown-toggle {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-dark {\n color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:hover {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:focus, .btn-outline-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-dark.disabled, .btn-outline-dark:disabled {\n color: #343a40;\n background-color: transparent;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\n.show > .btn-outline-dark.dropdown-toggle {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-link {\n font-weight: 400;\n color: #007bff;\n text-decoration: none;\n}\n\n.btn-link:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\n.btn-link:focus, .btn-link.focus {\n text-decoration: underline;\n box-shadow: none;\n}\n\n.btn-link:disabled, .btn-link.disabled {\n color: #6c757d;\n pointer-events: none;\n}\n\n.btn-lg, .btn-group-lg > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.btn-sm, .btn-group-sm > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.btn-block {\n display: block;\n width: 100%;\n}\n\n.btn-block + .btn-block {\n margin-top: 0.5rem;\n}\n\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%;\n}\n\n.fade {\n transition: opacity 0.15s linear;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fade {\n transition: none;\n }\n}\n\n.fade:not(.show) {\n opacity: 0;\n}\n\n.collapse:not(.show) {\n display: none;\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n transition: height 0.35s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .collapsing {\n transition: none;\n }\n}\n\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n position: relative;\n}\n\n.dropdown-toggle {\n white-space: nowrap;\n}\n\n.dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid;\n border-right: 0.3em solid transparent;\n border-bottom: 0;\n border-left: 0.3em solid transparent;\n}\n\n.dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 10rem;\n padding: 0.5rem 0;\n margin: 0.125rem 0 0;\n font-size: 1rem;\n color: #212529;\n text-align: left;\n list-style: none;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem;\n}\n\n.dropdown-menu-left {\n right: auto;\n left: 0;\n}\n\n.dropdown-menu-right {\n right: 0;\n left: auto;\n}\n\n@media (min-width: 576px) {\n .dropdown-menu-sm-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-sm-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 768px) {\n .dropdown-menu-md-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-md-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 992px) {\n .dropdown-menu-lg-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-lg-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 1200px) {\n .dropdown-menu-xl-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-xl-right {\n right: 0;\n left: auto;\n }\n}\n\n.dropup .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: 0.125rem;\n}\n\n.dropup .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0;\n border-right: 0.3em solid transparent;\n border-bottom: 0.3em solid;\n border-left: 0.3em solid transparent;\n}\n\n.dropup .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-menu {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: 0.125rem;\n}\n\n.dropright .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0;\n border-bottom: 0.3em solid transparent;\n border-left: 0.3em solid;\n}\n\n.dropright .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-toggle::after {\n vertical-align: 0;\n}\n\n.dropleft .dropdown-menu {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: 0.125rem;\n}\n\n.dropleft .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n}\n\n.dropleft .dropdown-toggle::after {\n display: none;\n}\n\n.dropleft .dropdown-toggle::before {\n display: inline-block;\n margin-right: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0.3em solid;\n border-bottom: 0.3em solid transparent;\n}\n\n.dropleft .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle::before {\n vertical-align: 0;\n}\n\n.dropdown-menu[x-placement^=\"top\"], .dropdown-menu[x-placement^=\"right\"], .dropdown-menu[x-placement^=\"bottom\"], .dropdown-menu[x-placement^=\"left\"] {\n right: auto;\n bottom: auto;\n}\n\n.dropdown-divider {\n height: 0;\n margin: 0.5rem 0;\n overflow: hidden;\n border-top: 1px solid #e9ecef;\n}\n\n.dropdown-item {\n display: block;\n width: 100%;\n padding: 0.25rem 1.5rem;\n clear: both;\n font-weight: 400;\n color: #212529;\n text-align: inherit;\n white-space: nowrap;\n background-color: transparent;\n border: 0;\n}\n\n.dropdown-item:hover, .dropdown-item:focus {\n color: #16181b;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.dropdown-item.active, .dropdown-item:active {\n color: #fff;\n text-decoration: none;\n background-color: #007bff;\n}\n\n.dropdown-item.disabled, .dropdown-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: transparent;\n}\n\n.dropdown-menu.show {\n display: block;\n}\n\n.dropdown-header {\n display: block;\n padding: 0.5rem 1.5rem;\n margin-bottom: 0;\n font-size: 0.875rem;\n color: #6c757d;\n white-space: nowrap;\n}\n\n.dropdown-item-text {\n display: block;\n padding: 0.25rem 1.5rem;\n color: #212529;\n}\n\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: -ms-inline-flexbox;\n display: inline-flex;\n vertical-align: middle;\n}\n\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n}\n\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover {\n z-index: 1;\n}\n\n.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\n.btn-group-vertical > .btn:focus,\n.btn-group-vertical > .btn:active,\n.btn-group-vertical > .btn.active {\n z-index: 1;\n}\n\n.btn-toolbar {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n}\n\n.btn-toolbar .input-group {\n width: auto;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) {\n margin-left: -1px;\n}\n\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.dropdown-toggle-split {\n padding-right: 0.5625rem;\n padding-left: 0.5625rem;\n}\n\n.dropdown-toggle-split::after,\n.dropup .dropdown-toggle-split::after,\n.dropright .dropdown-toggle-split::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle-split::before {\n margin-right: 0;\n}\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n padding-right: 0.375rem;\n padding-left: 0.375rem;\n}\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n padding-right: 0.75rem;\n padding-left: 0.75rem;\n}\n\n.btn-group-vertical {\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-align: start;\n align-items: flex-start;\n -ms-flex-pack: center;\n justify-content: center;\n}\n\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group {\n width: 100%;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) {\n margin-top: -1px;\n}\n\n.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group-vertical > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.btn-group-toggle > .btn,\n.btn-group-toggle > .btn-group > .btn {\n margin-bottom: 0;\n}\n\n.btn-group-toggle > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn input[type=\"checkbox\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n\n.input-group {\n position: relative;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-align: stretch;\n align-items: stretch;\n width: 100%;\n}\n\n.input-group > .form-control,\n.input-group > .form-control-plaintext,\n.input-group > .custom-select,\n.input-group > .custom-file {\n position: relative;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n width: 1%;\n margin-bottom: 0;\n}\n\n.input-group > .form-control + .form-control,\n.input-group > .form-control + .custom-select,\n.input-group > .form-control + .custom-file,\n.input-group > .form-control-plaintext + .form-control,\n.input-group > .form-control-plaintext + .custom-select,\n.input-group > .form-control-plaintext + .custom-file,\n.input-group > .custom-select + .form-control,\n.input-group > .custom-select + .custom-select,\n.input-group > .custom-select + .custom-file,\n.input-group > .custom-file + .form-control,\n.input-group > .custom-file + .custom-select,\n.input-group > .custom-file + .custom-file {\n margin-left: -1px;\n}\n\n.input-group > .form-control:focus,\n.input-group > .custom-select:focus,\n.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {\n z-index: 3;\n}\n\n.input-group > .custom-file .custom-file-input:focus {\n z-index: 4;\n}\n\n.input-group > .form-control:not(:last-child),\n.input-group > .custom-select:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .form-control:not(:first-child),\n.input-group > .custom-select:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group > .custom-file {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.input-group > .custom-file:not(:last-child) .custom-file-label,\n.input-group > .custom-file:not(:last-child) .custom-file-label::after {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .custom-file:not(:first-child) .custom-file-label {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group-prepend,\n.input-group-append {\n display: -ms-flexbox;\n display: flex;\n}\n\n.input-group-prepend .btn,\n.input-group-append .btn {\n position: relative;\n z-index: 2;\n}\n\n.input-group-prepend .btn:focus,\n.input-group-append .btn:focus {\n z-index: 3;\n}\n\n.input-group-prepend .btn + .btn,\n.input-group-prepend .btn + .input-group-text,\n.input-group-prepend .input-group-text + .input-group-text,\n.input-group-prepend .input-group-text + .btn,\n.input-group-append .btn + .btn,\n.input-group-append .btn + .input-group-text,\n.input-group-append .input-group-text + .input-group-text,\n.input-group-append .input-group-text + .btn {\n margin-left: -1px;\n}\n\n.input-group-prepend {\n margin-right: -1px;\n}\n\n.input-group-append {\n margin-left: -1px;\n}\n\n.input-group-text {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n padding: 0.375rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n text-align: center;\n white-space: nowrap;\n background-color: #e9ecef;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.input-group-text input[type=\"radio\"],\n.input-group-text input[type=\"checkbox\"] {\n margin-top: 0;\n}\n\n.input-group-lg > .form-control:not(textarea),\n.input-group-lg > .custom-select {\n height: calc(1.5em + 1rem + 2px);\n}\n\n.input-group-lg > .form-control,\n.input-group-lg > .custom-select,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.input-group-sm > .form-control:not(textarea),\n.input-group-sm > .custom-select {\n height: calc(1.5em + 0.5rem + 2px);\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .custom-select,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.input-group-lg > .custom-select,\n.input-group-sm > .custom-select {\n padding-right: 1.75rem;\n}\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group > .input-group-append:not(:last-child) > .btn,\n.input-group > .input-group-append:not(:last-child) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.custom-control {\n position: relative;\n display: block;\n min-height: 1.5rem;\n padding-left: 1.5rem;\n}\n\n.custom-control-inline {\n display: -ms-inline-flexbox;\n display: inline-flex;\n margin-right: 1rem;\n}\n\n.custom-control-input {\n position: absolute;\n z-index: -1;\n opacity: 0;\n}\n\n.custom-control-input:checked ~ .custom-control-label::before {\n color: #fff;\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-control-input:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-control-input:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #80bdff;\n}\n\n.custom-control-input:not(:disabled):active ~ .custom-control-label::before {\n color: #fff;\n background-color: #b3d7ff;\n border-color: #b3d7ff;\n}\n\n.custom-control-input:disabled ~ .custom-control-label {\n color: #6c757d;\n}\n\n.custom-control-input:disabled ~ .custom-control-label::before {\n background-color: #e9ecef;\n}\n\n.custom-control-label {\n position: relative;\n margin-bottom: 0;\n vertical-align: top;\n}\n\n.custom-control-label::before {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n pointer-events: none;\n content: \"\";\n background-color: #fff;\n border: #adb5bd solid 1px;\n}\n\n.custom-control-label::after {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n content: \"\";\n background: no-repeat 50% / 50% 50%;\n}\n\n.custom-checkbox .custom-control-label::before {\n border-radius: 0.25rem;\n}\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-radio .custom-control-label::before {\n border-radius: 50%;\n}\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\");\n}\n\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-switch {\n padding-left: 2.25rem;\n}\n\n.custom-switch .custom-control-label::before {\n left: -2.25rem;\n width: 1.75rem;\n pointer-events: all;\n border-radius: 0.5rem;\n}\n\n.custom-switch .custom-control-label::after {\n top: calc(0.25rem + 2px);\n left: calc(-2.25rem + 2px);\n width: calc(1rem - 4px);\n height: calc(1rem - 4px);\n background-color: #adb5bd;\n border-radius: 0.5rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-switch .custom-control-label::after {\n transition: none;\n }\n}\n\n.custom-switch .custom-control-input:checked ~ .custom-control-label::after {\n background-color: #fff;\n -webkit-transform: translateX(0.75rem);\n transform: translateX(0.75rem);\n}\n\n.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-select {\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n vertical-align: middle;\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px;\n background-color: #fff;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n\n.custom-select:focus {\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-select:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.custom-select[multiple], .custom-select[size]:not([size=\"1\"]) {\n height: auto;\n padding-right: 0.75rem;\n background-image: none;\n}\n\n.custom-select:disabled {\n color: #6c757d;\n background-color: #e9ecef;\n}\n\n.custom-select::-ms-expand {\n display: none;\n}\n\n.custom-select-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n padding-left: 0.5rem;\n font-size: 0.875rem;\n}\n\n.custom-select-lg {\n height: calc(1.5em + 1rem + 2px);\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n padding-left: 1rem;\n font-size: 1.25rem;\n}\n\n.custom-file {\n position: relative;\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin-bottom: 0;\n}\n\n.custom-file-input {\n position: relative;\n z-index: 2;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin: 0;\n opacity: 0;\n}\n\n.custom-file-input:focus ~ .custom-file-label {\n border-color: #80bdff;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-file-input:disabled ~ .custom-file-label {\n background-color: #e9ecef;\n}\n\n.custom-file-input:lang(en) ~ .custom-file-label::after {\n content: \"Browse\";\n}\n\n.custom-file-input ~ .custom-file-label[data-browse]::after {\n content: attr(data-browse);\n}\n\n.custom-file-label {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.custom-file-label::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n display: block;\n height: calc(1.5em + 0.75rem);\n padding: 0.375rem 0.75rem;\n line-height: 1.5;\n color: #495057;\n content: \"Browse\";\n background-color: #e9ecef;\n border-left: inherit;\n border-radius: 0 0.25rem 0.25rem 0;\n}\n\n.custom-range {\n width: 100%;\n height: calc(1rem + 0.4rem);\n padding: 0;\n background-color: transparent;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n\n.custom-range:focus {\n outline: none;\n}\n\n.custom-range:focus::-webkit-slider-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-moz-range-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-ms-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range::-moz-focus-outer {\n border: 0;\n}\n\n.custom-range::-webkit-slider-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: -0.25rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n -webkit-appearance: none;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-webkit-slider-thumb {\n transition: none;\n }\n}\n\n.custom-range::-webkit-slider-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-webkit-slider-runnable-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-moz-range-thumb {\n width: 1rem;\n height: 1rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n -moz-appearance: none;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-moz-range-thumb {\n transition: none;\n }\n}\n\n.custom-range::-moz-range-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-moz-range-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: 0;\n margin-right: 0.2rem;\n margin-left: 0.2rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-ms-thumb {\n transition: none;\n }\n}\n\n.custom-range::-ms-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-ms-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: transparent;\n border-color: transparent;\n border-width: 0.5rem;\n}\n\n.custom-range::-ms-fill-lower {\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-fill-upper {\n margin-right: 15px;\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range:disabled::-webkit-slider-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-webkit-slider-runnable-track {\n cursor: default;\n}\n\n.custom-range:disabled::-moz-range-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-moz-range-track {\n cursor: default;\n}\n\n.custom-range:disabled::-ms-thumb {\n background-color: #adb5bd;\n}\n\n.custom-control-label::before,\n.custom-file-label,\n.custom-select {\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-control-label::before,\n .custom-file-label,\n .custom-select {\n transition: none;\n }\n}\n\n.nav {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.nav-link {\n display: block;\n padding: 0.5rem 1rem;\n}\n\n.nav-link:hover, .nav-link:focus {\n text-decoration: none;\n}\n\n.nav-link.disabled {\n color: #6c757d;\n pointer-events: none;\n cursor: default;\n}\n\n.nav-tabs {\n border-bottom: 1px solid #dee2e6;\n}\n\n.nav-tabs .nav-item {\n margin-bottom: -1px;\n}\n\n.nav-tabs .nav-link {\n border: 1px solid transparent;\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n border-color: #e9ecef #e9ecef #dee2e6;\n}\n\n.nav-tabs .nav-link.disabled {\n color: #6c757d;\n background-color: transparent;\n border-color: transparent;\n}\n\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-item.show .nav-link {\n color: #495057;\n background-color: #fff;\n border-color: #dee2e6 #dee2e6 #fff;\n}\n\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.nav-pills .nav-link {\n border-radius: 0.25rem;\n}\n\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n color: #fff;\n background-color: #007bff;\n}\n\n.nav-fill .nav-item {\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n text-align: center;\n}\n\n.nav-justified .nav-item {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n text-align: center;\n}\n\n.tab-content > .tab-pane {\n display: none;\n}\n\n.tab-content > .active {\n display: block;\n}\n\n.navbar {\n position: relative;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: justify;\n justify-content: space-between;\n padding: 0.5rem 1rem;\n}\n\n.navbar > .container,\n.navbar > .container-fluid {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: justify;\n justify-content: space-between;\n}\n\n.navbar-brand {\n display: inline-block;\n padding-top: 0.3125rem;\n padding-bottom: 0.3125rem;\n margin-right: 1rem;\n font-size: 1.25rem;\n line-height: inherit;\n white-space: nowrap;\n}\n\n.navbar-brand:hover, .navbar-brand:focus {\n text-decoration: none;\n}\n\n.navbar-nav {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.navbar-nav .nav-link {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-nav .dropdown-menu {\n position: static;\n float: none;\n}\n\n.navbar-text {\n display: inline-block;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.navbar-collapse {\n -ms-flex-preferred-size: 100%;\n flex-basis: 100%;\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.navbar-toggler {\n padding: 0.25rem 0.75rem;\n font-size: 1.25rem;\n line-height: 1;\n background-color: transparent;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.navbar-toggler:hover, .navbar-toggler:focus {\n text-decoration: none;\n}\n\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: \"\";\n background: no-repeat center center;\n background-size: 100% 100%;\n}\n\n@media (max-width: 575.98px) {\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 576px) {\n .navbar-expand-sm {\n -ms-flex-flow: row nowrap;\n flex-flow: row nowrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n }\n .navbar-expand-sm .navbar-nav {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .navbar-expand-sm .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-sm .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n }\n .navbar-expand-sm .navbar-collapse {\n display: -ms-flexbox !important;\n display: flex !important;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n }\n .navbar-expand-sm .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 767.98px) {\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 768px) {\n .navbar-expand-md {\n -ms-flex-flow: row nowrap;\n flex-flow: row nowrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n }\n .navbar-expand-md .navbar-nav {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .navbar-expand-md .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-md .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n }\n .navbar-expand-md .navbar-collapse {\n display: -ms-flexbox !important;\n display: flex !important;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n }\n .navbar-expand-md .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 991.98px) {\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 992px) {\n .navbar-expand-lg {\n -ms-flex-flow: row nowrap;\n flex-flow: row nowrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n }\n .navbar-expand-lg .navbar-nav {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .navbar-expand-lg .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-lg .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n }\n .navbar-expand-lg .navbar-collapse {\n display: -ms-flexbox !important;\n display: flex !important;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n }\n .navbar-expand-lg .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 1199.98px) {\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 1200px) {\n .navbar-expand-xl {\n -ms-flex-flow: row nowrap;\n flex-flow: row nowrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n }\n .navbar-expand-xl .navbar-nav {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .navbar-expand-xl .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-xl .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n }\n .navbar-expand-xl .navbar-collapse {\n display: -ms-flexbox !important;\n display: flex !important;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n }\n .navbar-expand-xl .navbar-toggler {\n display: none;\n }\n}\n\n.navbar-expand {\n -ms-flex-flow: row nowrap;\n flex-flow: row nowrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-expand .navbar-nav {\n -ms-flex-direction: row;\n flex-direction: row;\n}\n\n.navbar-expand .navbar-nav .dropdown-menu {\n position: absolute;\n}\n\n.navbar-expand .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n}\n\n.navbar-expand .navbar-collapse {\n display: -ms-flexbox !important;\n display: flex !important;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n}\n\n.navbar-expand .navbar-toggler {\n display: none;\n}\n\n.navbar-light .navbar-brand {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-nav .nav-link {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\n color: rgba(0, 0, 0, 0.7);\n}\n\n.navbar-light .navbar-nav .nav-link.disabled {\n color: rgba(0, 0, 0, 0.3);\n}\n\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .active > .nav-link,\n.navbar-light .navbar-nav .nav-link.show,\n.navbar-light .navbar-nav .nav-link.active {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-toggler {\n color: rgba(0, 0, 0, 0.5);\n border-color: rgba(0, 0, 0, 0.1);\n}\n\n.navbar-light .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-light .navbar-text {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-text a {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-dark .navbar-brand {\n color: #fff;\n}\n\n.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\n color: #fff;\n}\n\n.navbar-dark .navbar-nav .nav-link {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n color: rgba(255, 255, 255, 0.75);\n}\n\n.navbar-dark .navbar-nav .nav-link.disabled {\n color: rgba(255, 255, 255, 0.25);\n}\n\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .active > .nav-link,\n.navbar-dark .navbar-nav .nav-link.show,\n.navbar-dark .navbar-nav .nav-link.active {\n color: #fff;\n}\n\n.navbar-dark .navbar-toggler {\n color: rgba(255, 255, 255, 0.5);\n border-color: rgba(255, 255, 255, 0.1);\n}\n\n.navbar-dark .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-dark .navbar-text {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-text a {\n color: #fff;\n}\n\n.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {\n color: #fff;\n}\n\n.card {\n position: relative;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n min-width: 0;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: border-box;\n border: 1px solid rgba(0, 0, 0, 0.125);\n border-radius: 0.25rem;\n}\n\n.card > hr {\n margin-right: 0;\n margin-left: 0;\n}\n\n.card > .list-group:first-child .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.card > .list-group:last-child .list-group-item:last-child {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.card-body {\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n padding: 1.25rem;\n}\n\n.card-title {\n margin-bottom: 0.75rem;\n}\n\n.card-subtitle {\n margin-top: -0.375rem;\n margin-bottom: 0;\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link:hover {\n text-decoration: none;\n}\n\n.card-link + .card-link {\n margin-left: 1.25rem;\n}\n\n.card-header {\n padding: 0.75rem 1.25rem;\n margin-bottom: 0;\n background-color: rgba(0, 0, 0, 0.03);\n border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-header:first-child {\n border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;\n}\n\n.card-header + .list-group .list-group-item:first-child {\n border-top: 0;\n}\n\n.card-footer {\n padding: 0.75rem 1.25rem;\n background-color: rgba(0, 0, 0, 0.03);\n border-top: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-footer:last-child {\n border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);\n}\n\n.card-header-tabs {\n margin-right: -0.625rem;\n margin-bottom: -0.75rem;\n margin-left: -0.625rem;\n border-bottom: 0;\n}\n\n.card-header-pills {\n margin-right: -0.625rem;\n margin-left: -0.625rem;\n}\n\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: 1.25rem;\n}\n\n.card-img {\n width: 100%;\n border-radius: calc(0.25rem - 1px);\n}\n\n.card-img-top {\n width: 100%;\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card-img-bottom {\n width: 100%;\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.card-deck {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n\n.card-deck .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-deck {\n -ms-flex-flow: row wrap;\n flex-flow: row wrap;\n margin-right: -15px;\n margin-left: -15px;\n }\n .card-deck .card {\n display: -ms-flexbox;\n display: flex;\n -ms-flex: 1 0 0%;\n flex: 1 0 0%;\n -ms-flex-direction: column;\n flex-direction: column;\n margin-right: 15px;\n margin-bottom: 0;\n margin-left: 15px;\n }\n}\n\n.card-group {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n\n.card-group > .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-group {\n -ms-flex-flow: row wrap;\n flex-flow: row wrap;\n }\n .card-group > .card {\n -ms-flex: 1 0 0%;\n flex: 1 0 0%;\n margin-bottom: 0;\n }\n .card-group > .card + .card {\n margin-left: 0;\n border-left: 0;\n }\n .card-group > .card:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-top,\n .card-group > .card:not(:last-child) .card-header {\n border-top-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-bottom,\n .card-group > .card:not(:last-child) .card-footer {\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-top,\n .card-group > .card:not(:first-child) .card-header {\n border-top-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-bottom,\n .card-group > .card:not(:first-child) .card-footer {\n border-bottom-left-radius: 0;\n }\n}\n\n.card-columns .card {\n margin-bottom: 0.75rem;\n}\n\n@media (min-width: 576px) {\n .card-columns {\n -webkit-column-count: 3;\n -moz-column-count: 3;\n column-count: 3;\n -webkit-column-gap: 1.25rem;\n -moz-column-gap: 1.25rem;\n column-gap: 1.25rem;\n orphans: 1;\n widows: 1;\n }\n .card-columns .card {\n display: inline-block;\n width: 100%;\n }\n}\n\n.accordion > .card {\n overflow: hidden;\n}\n\n.accordion > .card:not(:first-of-type) .card-header:first-child {\n border-radius: 0;\n}\n\n.accordion > .card:not(:first-of-type):not(:last-of-type) {\n border-bottom: 0;\n border-radius: 0;\n}\n\n.accordion > .card:first-of-type {\n border-bottom: 0;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.accordion > .card:last-of-type {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.accordion > .card .card-header {\n margin-bottom: -1px;\n}\n\n.breadcrumb {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n padding: 0.75rem 1rem;\n margin-bottom: 1rem;\n list-style: none;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.breadcrumb-item + .breadcrumb-item {\n padding-left: 0.5rem;\n}\n\n.breadcrumb-item + .breadcrumb-item::before {\n display: inline-block;\n padding-right: 0.5rem;\n color: #6c757d;\n content: \"/\";\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: underline;\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: none;\n}\n\n.breadcrumb-item.active {\n color: #6c757d;\n}\n\n.pagination {\n display: -ms-flexbox;\n display: flex;\n padding-left: 0;\n list-style: none;\n border-radius: 0.25rem;\n}\n\n.page-link {\n position: relative;\n display: block;\n padding: 0.5rem 0.75rem;\n margin-left: -1px;\n line-height: 1.25;\n color: #007bff;\n background-color: #fff;\n border: 1px solid #dee2e6;\n}\n\n.page-link:hover {\n z-index: 2;\n color: #0056b3;\n text-decoration: none;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.page-link:focus {\n z-index: 2;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.page-item:first-child .page-link {\n margin-left: 0;\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.page-item:last-child .page-link {\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n}\n\n.page-item.active .page-link {\n z-index: 1;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.page-item.disabled .page-link {\n color: #6c757d;\n pointer-events: none;\n cursor: auto;\n background-color: #fff;\n border-color: #dee2e6;\n}\n\n.pagination-lg .page-link {\n padding: 0.75rem 1.5rem;\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.pagination-lg .page-item:first-child .page-link {\n border-top-left-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem;\n}\n\n.pagination-lg .page-item:last-child .page-link {\n border-top-right-radius: 0.3rem;\n border-bottom-right-radius: 0.3rem;\n}\n\n.pagination-sm .page-link {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.pagination-sm .page-item:first-child .page-link {\n border-top-left-radius: 0.2rem;\n border-bottom-left-radius: 0.2rem;\n}\n\n.pagination-sm .page-item:last-child .page-link {\n border-top-right-radius: 0.2rem;\n border-bottom-right-radius: 0.2rem;\n}\n\n.badge {\n display: inline-block;\n padding: 0.25em 0.4em;\n font-size: 75%;\n font-weight: 700;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .badge {\n transition: none;\n }\n}\n\na.badge:hover, a.badge:focus {\n text-decoration: none;\n}\n\n.badge:empty {\n display: none;\n}\n\n.btn .badge {\n position: relative;\n top: -1px;\n}\n\n.badge-pill {\n padding-right: 0.6em;\n padding-left: 0.6em;\n border-radius: 10rem;\n}\n\n.badge-primary {\n color: #fff;\n background-color: #007bff;\n}\n\na.badge-primary:hover, a.badge-primary:focus {\n color: #fff;\n background-color: #0062cc;\n}\n\na.badge-primary:focus, a.badge-primary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.badge-secondary {\n color: #fff;\n background-color: #6c757d;\n}\n\na.badge-secondary:hover, a.badge-secondary:focus {\n color: #fff;\n background-color: #545b62;\n}\n\na.badge-secondary:focus, a.badge-secondary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.badge-success {\n color: #fff;\n background-color: #28a745;\n}\n\na.badge-success:hover, a.badge-success:focus {\n color: #fff;\n background-color: #1e7e34;\n}\n\na.badge-success:focus, a.badge-success.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.badge-info {\n color: #fff;\n background-color: #17a2b8;\n}\n\na.badge-info:hover, a.badge-info:focus {\n color: #fff;\n background-color: #117a8b;\n}\n\na.badge-info:focus, a.badge-info.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.badge-warning {\n color: #212529;\n background-color: #ffc107;\n}\n\na.badge-warning:hover, a.badge-warning:focus {\n color: #212529;\n background-color: #d39e00;\n}\n\na.badge-warning:focus, a.badge-warning.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.badge-danger {\n color: #fff;\n background-color: #dc3545;\n}\n\na.badge-danger:hover, a.badge-danger:focus {\n color: #fff;\n background-color: #bd2130;\n}\n\na.badge-danger:focus, a.badge-danger.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.badge-light {\n color: #212529;\n background-color: #f8f9fa;\n}\n\na.badge-light:hover, a.badge-light:focus {\n color: #212529;\n background-color: #dae0e5;\n}\n\na.badge-light:focus, a.badge-light.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.badge-dark {\n color: #fff;\n background-color: #343a40;\n}\n\na.badge-dark:hover, a.badge-dark:focus {\n color: #fff;\n background-color: #1d2124;\n}\n\na.badge-dark:focus, a.badge-dark.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.jumbotron {\n padding: 2rem 1rem;\n margin-bottom: 2rem;\n background-color: #e9ecef;\n border-radius: 0.3rem;\n}\n\n@media (min-width: 576px) {\n .jumbotron {\n padding: 4rem 2rem;\n }\n}\n\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n border-radius: 0;\n}\n\n.alert {\n position: relative;\n padding: 0.75rem 1.25rem;\n margin-bottom: 1rem;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.alert-heading {\n color: inherit;\n}\n\n.alert-link {\n font-weight: 700;\n}\n\n.alert-dismissible {\n padding-right: 4rem;\n}\n\n.alert-dismissible .close {\n position: absolute;\n top: 0;\n right: 0;\n padding: 0.75rem 1.25rem;\n color: inherit;\n}\n\n.alert-primary {\n color: #004085;\n background-color: #cce5ff;\n border-color: #b8daff;\n}\n\n.alert-primary hr {\n border-top-color: #9fcdff;\n}\n\n.alert-primary .alert-link {\n color: #002752;\n}\n\n.alert-secondary {\n color: #383d41;\n background-color: #e2e3e5;\n border-color: #d6d8db;\n}\n\n.alert-secondary hr {\n border-top-color: #c8cbcf;\n}\n\n.alert-secondary .alert-link {\n color: #202326;\n}\n\n.alert-success {\n color: #155724;\n background-color: #d4edda;\n border-color: #c3e6cb;\n}\n\n.alert-success hr {\n border-top-color: #b1dfbb;\n}\n\n.alert-success .alert-link {\n color: #0b2e13;\n}\n\n.alert-info {\n color: #0c5460;\n background-color: #d1ecf1;\n border-color: #bee5eb;\n}\n\n.alert-info hr {\n border-top-color: #abdde5;\n}\n\n.alert-info .alert-link {\n color: #062c33;\n}\n\n.alert-warning {\n color: #856404;\n background-color: #fff3cd;\n border-color: #ffeeba;\n}\n\n.alert-warning hr {\n border-top-color: #ffe8a1;\n}\n\n.alert-warning .alert-link {\n color: #533f03;\n}\n\n.alert-danger {\n color: #721c24;\n background-color: #f8d7da;\n border-color: #f5c6cb;\n}\n\n.alert-danger hr {\n border-top-color: #f1b0b7;\n}\n\n.alert-danger .alert-link {\n color: #491217;\n}\n\n.alert-light {\n color: #818182;\n background-color: #fefefe;\n border-color: #fdfdfe;\n}\n\n.alert-light hr {\n border-top-color: #ececf6;\n}\n\n.alert-light .alert-link {\n color: #686868;\n}\n\n.alert-dark {\n color: #1b1e21;\n background-color: #d6d8d9;\n border-color: #c6c8ca;\n}\n\n.alert-dark hr {\n border-top-color: #b9bbbe;\n}\n\n.alert-dark .alert-link {\n color: #040505;\n}\n\n@-webkit-keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0;\n }\n to {\n background-position: 0 0;\n }\n}\n\n@keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0;\n }\n to {\n background-position: 0 0;\n }\n}\n\n.progress {\n display: -ms-flexbox;\n display: flex;\n height: 1rem;\n overflow: hidden;\n font-size: 0.75rem;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.progress-bar {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-pack: center;\n justify-content: center;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n background-color: #007bff;\n transition: width 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar {\n transition: none;\n }\n}\n\n.progress-bar-striped {\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 1rem 1rem;\n}\n\n.progress-bar-animated {\n -webkit-animation: progress-bar-stripes 1s linear infinite;\n animation: progress-bar-stripes 1s linear infinite;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar-animated {\n -webkit-animation: none;\n animation: none;\n }\n}\n\n.media {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: start;\n align-items: flex-start;\n}\n\n.media-body {\n -ms-flex: 1;\n flex: 1;\n}\n\n.list-group {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n}\n\n.list-group-item-action {\n width: 100%;\n color: #495057;\n text-align: inherit;\n}\n\n.list-group-item-action:hover, .list-group-item-action:focus {\n z-index: 1;\n color: #495057;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.list-group-item-action:active {\n color: #212529;\n background-color: #e9ecef;\n}\n\n.list-group-item {\n position: relative;\n display: block;\n padding: 0.75rem 1.25rem;\n margin-bottom: -1px;\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.list-group-item:last-child {\n margin-bottom: 0;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.list-group-item.disabled, .list-group-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: #fff;\n}\n\n.list-group-item.active {\n z-index: 2;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.list-group-horizontal {\n -ms-flex-direction: row;\n flex-direction: row;\n}\n\n.list-group-horizontal .list-group-item {\n margin-right: -1px;\n margin-bottom: 0;\n}\n\n.list-group-horizontal .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n}\n\n.list-group-horizontal .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n}\n\n@media (min-width: 576px) {\n .list-group-horizontal-sm {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .list-group-horizontal-sm .list-group-item {\n margin-right: -1px;\n margin-bottom: 0;\n }\n .list-group-horizontal-sm .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-sm .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n}\n\n@media (min-width: 768px) {\n .list-group-horizontal-md {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .list-group-horizontal-md .list-group-item {\n margin-right: -1px;\n margin-bottom: 0;\n }\n .list-group-horizontal-md .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-md .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n}\n\n@media (min-width: 992px) {\n .list-group-horizontal-lg {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .list-group-horizontal-lg .list-group-item {\n margin-right: -1px;\n margin-bottom: 0;\n }\n .list-group-horizontal-lg .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-lg .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n}\n\n@media (min-width: 1200px) {\n .list-group-horizontal-xl {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .list-group-horizontal-xl .list-group-item {\n margin-right: -1px;\n margin-bottom: 0;\n }\n .list-group-horizontal-xl .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-xl .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n}\n\n.list-group-flush .list-group-item {\n border-right: 0;\n border-left: 0;\n border-radius: 0;\n}\n\n.list-group-flush .list-group-item:last-child {\n margin-bottom: -1px;\n}\n\n.list-group-flush:first-child .list-group-item:first-child {\n border-top: 0;\n}\n\n.list-group-flush:last-child .list-group-item:last-child {\n margin-bottom: 0;\n border-bottom: 0;\n}\n\n.list-group-item-primary {\n color: #004085;\n background-color: #b8daff;\n}\n\n.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\n color: #004085;\n background-color: #9fcdff;\n}\n\n.list-group-item-primary.list-group-item-action.active {\n color: #fff;\n background-color: #004085;\n border-color: #004085;\n}\n\n.list-group-item-secondary {\n color: #383d41;\n background-color: #d6d8db;\n}\n\n.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\n color: #383d41;\n background-color: #c8cbcf;\n}\n\n.list-group-item-secondary.list-group-item-action.active {\n color: #fff;\n background-color: #383d41;\n border-color: #383d41;\n}\n\n.list-group-item-success {\n color: #155724;\n background-color: #c3e6cb;\n}\n\n.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\n color: #155724;\n background-color: #b1dfbb;\n}\n\n.list-group-item-success.list-group-item-action.active {\n color: #fff;\n background-color: #155724;\n border-color: #155724;\n}\n\n.list-group-item-info {\n color: #0c5460;\n background-color: #bee5eb;\n}\n\n.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\n color: #0c5460;\n background-color: #abdde5;\n}\n\n.list-group-item-info.list-group-item-action.active {\n color: #fff;\n background-color: #0c5460;\n border-color: #0c5460;\n}\n\n.list-group-item-warning {\n color: #856404;\n background-color: #ffeeba;\n}\n\n.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\n color: #856404;\n background-color: #ffe8a1;\n}\n\n.list-group-item-warning.list-group-item-action.active {\n color: #fff;\n background-color: #856404;\n border-color: #856404;\n}\n\n.list-group-item-danger {\n color: #721c24;\n background-color: #f5c6cb;\n}\n\n.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\n color: #721c24;\n background-color: #f1b0b7;\n}\n\n.list-group-item-danger.list-group-item-action.active {\n color: #fff;\n background-color: #721c24;\n border-color: #721c24;\n}\n\n.list-group-item-light {\n color: #818182;\n background-color: #fdfdfe;\n}\n\n.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\n color: #818182;\n background-color: #ececf6;\n}\n\n.list-group-item-light.list-group-item-action.active {\n color: #fff;\n background-color: #818182;\n border-color: #818182;\n}\n\n.list-group-item-dark {\n color: #1b1e21;\n background-color: #c6c8ca;\n}\n\n.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\n color: #1b1e21;\n background-color: #b9bbbe;\n}\n\n.list-group-item-dark.list-group-item-action.active {\n color: #fff;\n background-color: #1b1e21;\n border-color: #1b1e21;\n}\n\n.close {\n float: right;\n font-size: 1.5rem;\n font-weight: 700;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n opacity: .5;\n}\n\n.close:hover {\n color: #000;\n text-decoration: none;\n}\n\n.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {\n opacity: .75;\n}\n\nbutton.close {\n padding: 0;\n background-color: transparent;\n border: 0;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n\na.close.disabled {\n pointer-events: none;\n}\n\n.toast {\n max-width: 350px;\n overflow: hidden;\n font-size: 0.875rem;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);\n -webkit-backdrop-filter: blur(10px);\n backdrop-filter: blur(10px);\n opacity: 0;\n border-radius: 0.25rem;\n}\n\n.toast:not(:last-child) {\n margin-bottom: 0.75rem;\n}\n\n.toast.showing {\n opacity: 1;\n}\n\n.toast.show {\n display: block;\n opacity: 1;\n}\n\n.toast.hide {\n display: none;\n}\n\n.toast-header {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n padding: 0.25rem 0.75rem;\n color: #6c757d;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n}\n\n.toast-body {\n padding: 0.75rem;\n}\n\n.modal-open {\n overflow: hidden;\n}\n\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n.modal {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1050;\n display: none;\n width: 100%;\n height: 100%;\n overflow: hidden;\n outline: 0;\n}\n\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 0.5rem;\n pointer-events: none;\n}\n\n.modal.fade .modal-dialog {\n transition: -webkit-transform 0.3s ease-out;\n transition: transform 0.3s ease-out;\n transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out;\n -webkit-transform: translate(0, -50px);\n transform: translate(0, -50px);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .modal.fade .modal-dialog {\n transition: none;\n }\n}\n\n.modal.show .modal-dialog {\n -webkit-transform: none;\n transform: none;\n}\n\n.modal-dialog-scrollable {\n display: -ms-flexbox;\n display: flex;\n max-height: calc(100% - 1rem);\n}\n\n.modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 1rem);\n overflow: hidden;\n}\n\n.modal-dialog-scrollable .modal-header,\n.modal-dialog-scrollable .modal-footer {\n -ms-flex-negative: 0;\n flex-shrink: 0;\n}\n\n.modal-dialog-scrollable .modal-body {\n overflow-y: auto;\n}\n\n.modal-dialog-centered {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n min-height: calc(100% - 1rem);\n}\n\n.modal-dialog-centered::before {\n display: block;\n height: calc(100vh - 1rem);\n content: \"\";\n}\n\n.modal-dialog-centered.modal-dialog-scrollable {\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-pack: center;\n justify-content: center;\n height: 100%;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable .modal-content {\n max-height: none;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable::before {\n content: none;\n}\n\n.modal-content {\n position: relative;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n width: 100%;\n pointer-events: auto;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n outline: 0;\n}\n\n.modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1040;\n width: 100vw;\n height: 100vh;\n background-color: #000;\n}\n\n.modal-backdrop.fade {\n opacity: 0;\n}\n\n.modal-backdrop.show {\n opacity: 0.5;\n}\n\n.modal-header {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: start;\n align-items: flex-start;\n -ms-flex-pack: justify;\n justify-content: space-between;\n padding: 1rem 1rem;\n border-bottom: 1px solid #dee2e6;\n border-top-left-radius: 0.3rem;\n border-top-right-radius: 0.3rem;\n}\n\n.modal-header .close {\n padding: 1rem 1rem;\n margin: -1rem -1rem -1rem auto;\n}\n\n.modal-title {\n margin-bottom: 0;\n line-height: 1.5;\n}\n\n.modal-body {\n position: relative;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n padding: 1rem;\n}\n\n.modal-footer {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: end;\n justify-content: flex-end;\n padding: 1rem;\n border-top: 1px solid #dee2e6;\n border-bottom-right-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem;\n}\n\n.modal-footer > :not(:first-child) {\n margin-left: .25rem;\n}\n\n.modal-footer > :not(:last-child) {\n margin-right: .25rem;\n}\n\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n@media (min-width: 576px) {\n .modal-dialog {\n max-width: 500px;\n margin: 1.75rem auto;\n }\n .modal-dialog-scrollable {\n max-height: calc(100% - 3.5rem);\n }\n .modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 3.5rem);\n }\n .modal-dialog-centered {\n min-height: calc(100% - 3.5rem);\n }\n .modal-dialog-centered::before {\n height: calc(100vh - 3.5rem);\n }\n .modal-sm {\n max-width: 300px;\n }\n}\n\n@media (min-width: 992px) {\n .modal-lg,\n .modal-xl {\n max-width: 800px;\n }\n}\n\n@media (min-width: 1200px) {\n .modal-xl {\n max-width: 1140px;\n }\n}\n\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n opacity: 0;\n}\n\n.tooltip.show {\n opacity: 0.9;\n}\n\n.tooltip .arrow {\n position: absolute;\n display: block;\n width: 0.8rem;\n height: 0.4rem;\n}\n\n.tooltip .arrow::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^=\"top\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=\"top\"] .arrow {\n bottom: 0;\n}\n\n.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n top: 0;\n border-width: 0.4rem 0.4rem 0;\n border-top-color: #000;\n}\n\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^=\"right\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=\"right\"] .arrow {\n left: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n right: 0;\n border-width: 0.4rem 0.4rem 0.4rem 0;\n border-right-color: #000;\n}\n\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=\"bottom\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow {\n top: 0;\n}\n\n.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n bottom: 0;\n border-width: 0 0.4rem 0.4rem;\n border-bottom-color: #000;\n}\n\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^=\"left\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=\"left\"] .arrow {\n right: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n left: 0;\n border-width: 0.4rem 0 0.4rem 0.4rem;\n border-left-color: #000;\n}\n\n.tooltip-inner {\n max-width: 200px;\n padding: 0.25rem 0.5rem;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 0.25rem;\n}\n\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: block;\n max-width: 276px;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n}\n\n.popover .arrow {\n position: absolute;\n display: block;\n width: 1rem;\n height: 0.5rem;\n margin: 0 0.3rem;\n}\n\n.popover .arrow::before, .popover .arrow::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-popover-top, .bs-popover-auto[x-placement^=\"top\"] {\n margin-bottom: 0.5rem;\n}\n\n.bs-popover-top > .arrow, .bs-popover-auto[x-placement^=\"top\"] > .arrow {\n bottom: calc((0.5rem + 1px) * -1);\n}\n\n.bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^=\"top\"] > .arrow::before {\n bottom: 0;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-top > .arrow::after, .bs-popover-auto[x-placement^=\"top\"] > .arrow::after {\n bottom: 1px;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: #fff;\n}\n\n.bs-popover-right, .bs-popover-auto[x-placement^=\"right\"] {\n margin-left: 0.5rem;\n}\n\n.bs-popover-right > .arrow, .bs-popover-auto[x-placement^=\"right\"] > .arrow {\n left: calc((0.5rem + 1px) * -1);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^=\"right\"] > .arrow::before {\n left: 0;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-right > .arrow::after, .bs-popover-auto[x-placement^=\"right\"] > .arrow::after {\n left: 1px;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: #fff;\n}\n\n.bs-popover-bottom, .bs-popover-auto[x-placement^=\"bottom\"] {\n margin-top: 0.5rem;\n}\n\n.bs-popover-bottom > .arrow, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow {\n top: calc((0.5rem + 1px) * -1);\n}\n\n.bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::before {\n top: 0;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-bottom > .arrow::after, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::after {\n top: 1px;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: #fff;\n}\n\n.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: 1rem;\n margin-left: -0.5rem;\n content: \"\";\n border-bottom: 1px solid #f7f7f7;\n}\n\n.bs-popover-left, .bs-popover-auto[x-placement^=\"left\"] {\n margin-right: 0.5rem;\n}\n\n.bs-popover-left > .arrow, .bs-popover-auto[x-placement^=\"left\"] > .arrow {\n right: calc((0.5rem + 1px) * -1);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^=\"left\"] > .arrow::before {\n right: 0;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-left > .arrow::after, .bs-popover-auto[x-placement^=\"left\"] > .arrow::after {\n right: 1px;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: #fff;\n}\n\n.popover-header {\n padding: 0.5rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.popover-header:empty {\n display: none;\n}\n\n.popover-body {\n padding: 0.5rem 0.75rem;\n color: #212529;\n}\n\n.carousel {\n position: relative;\n}\n\n.carousel.pointer-event {\n -ms-touch-action: pan-y;\n touch-action: pan-y;\n}\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n\n.carousel-inner::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.carousel-item {\n position: relative;\n display: none;\n float: left;\n width: 100%;\n margin-right: -100%;\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden;\n transition: -webkit-transform 0.6s ease-in-out;\n transition: transform 0.6s ease-in-out;\n transition: transform 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-item {\n transition: none;\n }\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block;\n}\n\n.carousel-item-next:not(.carousel-item-left),\n.active.carousel-item-right {\n -webkit-transform: translateX(100%);\n transform: translateX(100%);\n}\n\n.carousel-item-prev:not(.carousel-item-right),\n.active.carousel-item-left {\n -webkit-transform: translateX(-100%);\n transform: translateX(-100%);\n}\n\n.carousel-fade .carousel-item {\n opacity: 0;\n transition-property: opacity;\n -webkit-transform: none;\n transform: none;\n}\n\n.carousel-fade .carousel-item.active,\n.carousel-fade .carousel-item-next.carousel-item-left,\n.carousel-fade .carousel-item-prev.carousel-item-right {\n z-index: 1;\n opacity: 1;\n}\n\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-right {\n z-index: 0;\n opacity: 0;\n transition: 0s 0.6s opacity;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-fade .active.carousel-item-left,\n .carousel-fade .active.carousel-item-right {\n transition: none;\n }\n}\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 1;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n width: 15%;\n color: #fff;\n text-align: center;\n opacity: 0.5;\n transition: opacity 0.15s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-control-prev,\n .carousel-control-next {\n transition: none;\n }\n}\n\n.carousel-control-prev:hover, .carousel-control-prev:focus,\n.carousel-control-next:hover,\n.carousel-control-next:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n opacity: 0.9;\n}\n\n.carousel-control-prev {\n left: 0;\n}\n\n.carousel-control-next {\n right: 0;\n}\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: 20px;\n height: 20px;\n background: no-repeat 50% / 100% 100%;\n}\n\n.carousel-control-prev-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3e%3c/svg%3e\");\n}\n\n.carousel-control-next-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3e%3c/svg%3e\");\n}\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 15;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center;\n padding-left: 0;\n margin-right: 15%;\n margin-left: 15%;\n list-style: none;\n}\n\n.carousel-indicators li {\n box-sizing: content-box;\n -ms-flex: 0 1 auto;\n flex: 0 1 auto;\n width: 30px;\n height: 3px;\n margin-right: 3px;\n margin-left: 3px;\n text-indent: -999px;\n cursor: pointer;\n background-color: #fff;\n background-clip: padding-box;\n border-top: 10px solid transparent;\n border-bottom: 10px solid transparent;\n opacity: .5;\n transition: opacity 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-indicators li {\n transition: none;\n }\n}\n\n.carousel-indicators .active {\n opacity: 1;\n}\n\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center;\n}\n\n@-webkit-keyframes spinner-border {\n to {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes spinner-border {\n to {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n.spinner-border {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n border: 0.25em solid currentColor;\n border-right-color: transparent;\n border-radius: 50%;\n -webkit-animation: spinner-border .75s linear infinite;\n animation: spinner-border .75s linear infinite;\n}\n\n.spinner-border-sm {\n width: 1rem;\n height: 1rem;\n border-width: 0.2em;\n}\n\n@-webkit-keyframes spinner-grow {\n 0% {\n -webkit-transform: scale(0);\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n }\n}\n\n@keyframes spinner-grow {\n 0% {\n -webkit-transform: scale(0);\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n }\n}\n\n.spinner-grow {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n background-color: currentColor;\n border-radius: 50%;\n opacity: 0;\n -webkit-animation: spinner-grow .75s linear infinite;\n animation: spinner-grow .75s linear infinite;\n}\n\n.spinner-grow-sm {\n width: 1rem;\n height: 1rem;\n}\n\n.align-baseline {\n vertical-align: baseline !important;\n}\n\n.align-top {\n vertical-align: top !important;\n}\n\n.align-middle {\n vertical-align: middle !important;\n}\n\n.align-bottom {\n vertical-align: bottom !important;\n}\n\n.align-text-bottom {\n vertical-align: text-bottom !important;\n}\n\n.align-text-top {\n vertical-align: text-top !important;\n}\n\n.bg-primary {\n background-color: #007bff !important;\n}\n\na.bg-primary:hover, a.bg-primary:focus,\nbutton.bg-primary:hover,\nbutton.bg-primary:focus {\n background-color: #0062cc !important;\n}\n\n.bg-secondary {\n background-color: #6c757d !important;\n}\n\na.bg-secondary:hover, a.bg-secondary:focus,\nbutton.bg-secondary:hover,\nbutton.bg-secondary:focus {\n background-color: #545b62 !important;\n}\n\n.bg-success {\n background-color: #28a745 !important;\n}\n\na.bg-success:hover, a.bg-success:focus,\nbutton.bg-success:hover,\nbutton.bg-success:focus {\n background-color: #1e7e34 !important;\n}\n\n.bg-info {\n background-color: #17a2b8 !important;\n}\n\na.bg-info:hover, a.bg-info:focus,\nbutton.bg-info:hover,\nbutton.bg-info:focus {\n background-color: #117a8b !important;\n}\n\n.bg-warning {\n background-color: #ffc107 !important;\n}\n\na.bg-warning:hover, a.bg-warning:focus,\nbutton.bg-warning:hover,\nbutton.bg-warning:focus {\n background-color: #d39e00 !important;\n}\n\n.bg-danger {\n background-color: #dc3545 !important;\n}\n\na.bg-danger:hover, a.bg-danger:focus,\nbutton.bg-danger:hover,\nbutton.bg-danger:focus {\n background-color: #bd2130 !important;\n}\n\n.bg-light {\n background-color: #f8f9fa !important;\n}\n\na.bg-light:hover, a.bg-light:focus,\nbutton.bg-light:hover,\nbutton.bg-light:focus {\n background-color: #dae0e5 !important;\n}\n\n.bg-dark {\n background-color: #343a40 !important;\n}\n\na.bg-dark:hover, a.bg-dark:focus,\nbutton.bg-dark:hover,\nbutton.bg-dark:focus {\n background-color: #1d2124 !important;\n}\n\n.bg-white {\n background-color: #fff !important;\n}\n\n.bg-transparent {\n background-color: transparent !important;\n}\n\n.border {\n border: 1px solid #dee2e6 !important;\n}\n\n.border-top {\n border-top: 1px solid #dee2e6 !important;\n}\n\n.border-right {\n border-right: 1px solid #dee2e6 !important;\n}\n\n.border-bottom {\n border-bottom: 1px solid #dee2e6 !important;\n}\n\n.border-left {\n border-left: 1px solid #dee2e6 !important;\n}\n\n.border-0 {\n border: 0 !important;\n}\n\n.border-top-0 {\n border-top: 0 !important;\n}\n\n.border-right-0 {\n border-right: 0 !important;\n}\n\n.border-bottom-0 {\n border-bottom: 0 !important;\n}\n\n.border-left-0 {\n border-left: 0 !important;\n}\n\n.border-primary {\n border-color: #007bff !important;\n}\n\n.border-secondary {\n border-color: #6c757d !important;\n}\n\n.border-success {\n border-color: #28a745 !important;\n}\n\n.border-info {\n border-color: #17a2b8 !important;\n}\n\n.border-warning {\n border-color: #ffc107 !important;\n}\n\n.border-danger {\n border-color: #dc3545 !important;\n}\n\n.border-light {\n border-color: #f8f9fa !important;\n}\n\n.border-dark {\n border-color: #343a40 !important;\n}\n\n.border-white {\n border-color: #fff !important;\n}\n\n.rounded-sm {\n border-radius: 0.2rem !important;\n}\n\n.rounded {\n border-radius: 0.25rem !important;\n}\n\n.rounded-top {\n border-top-left-radius: 0.25rem !important;\n border-top-right-radius: 0.25rem !important;\n}\n\n.rounded-right {\n border-top-right-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important;\n}\n\n.rounded-bottom {\n border-bottom-right-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-left {\n border-top-left-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-lg {\n border-radius: 0.3rem !important;\n}\n\n.rounded-circle {\n border-radius: 50% !important;\n}\n\n.rounded-pill {\n border-radius: 50rem !important;\n}\n\n.rounded-0 {\n border-radius: 0 !important;\n}\n\n.clearfix::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.d-none {\n display: none !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n}\n\n.d-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-md-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media print {\n .d-print-none {\n display: none !important;\n }\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-print-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden;\n}\n\n.embed-responsive::before {\n display: block;\n content: \"\";\n}\n\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n}\n\n.embed-responsive-21by9::before {\n padding-top: 42.857143%;\n}\n\n.embed-responsive-16by9::before {\n padding-top: 56.25%;\n}\n\n.embed-responsive-4by3::before {\n padding-top: 75%;\n}\n\n.embed-responsive-1by1::before {\n padding-top: 100%;\n}\n\n.flex-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n}\n\n.flex-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n}\n\n.justify-content-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n}\n\n.align-items-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n}\n\n.align-items-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n}\n\n.align-items-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n}\n\n.align-items-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n}\n\n.align-content-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n}\n\n.align-content-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n}\n\n.align-content-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n}\n\n.align-content-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n}\n\n.align-content-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n}\n\n.align-self-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n}\n\n.align-self-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n}\n\n.align-self-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n}\n\n.align-self-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n}\n\n.align-self-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-sm-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-sm-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-sm-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-sm-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-sm-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-sm-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-sm-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-sm-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-sm-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-sm-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-sm-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 768px) {\n .flex-md-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-md-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-md-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-md-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-md-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-md-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-md-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-md-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-md-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-md-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-md-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-md-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-md-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-md-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-md-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-md-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-md-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-md-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-md-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-md-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 992px) {\n .flex-lg-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-lg-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-lg-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-lg-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-lg-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-lg-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-lg-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-lg-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-lg-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-lg-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-lg-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-lg-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-xl-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-xl-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-xl-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-xl-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-xl-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-xl-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-xl-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-xl-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-xl-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-xl-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-xl-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n.float-left {\n float: left !important;\n}\n\n.float-right {\n float: right !important;\n}\n\n.float-none {\n float: none !important;\n}\n\n@media (min-width: 576px) {\n .float-sm-left {\n float: left !important;\n }\n .float-sm-right {\n float: right !important;\n }\n .float-sm-none {\n float: none !important;\n }\n}\n\n@media (min-width: 768px) {\n .float-md-left {\n float: left !important;\n }\n .float-md-right {\n float: right !important;\n }\n .float-md-none {\n float: none !important;\n }\n}\n\n@media (min-width: 992px) {\n .float-lg-left {\n float: left !important;\n }\n .float-lg-right {\n float: right !important;\n }\n .float-lg-none {\n float: none !important;\n }\n}\n\n@media (min-width: 1200px) {\n .float-xl-left {\n float: left !important;\n }\n .float-xl-right {\n float: right !important;\n }\n .float-xl-none {\n float: none !important;\n }\n}\n\n.overflow-auto {\n overflow: auto !important;\n}\n\n.overflow-hidden {\n overflow: hidden !important;\n}\n\n.position-static {\n position: static !important;\n}\n\n.position-relative {\n position: relative !important;\n}\n\n.position-absolute {\n position: absolute !important;\n}\n\n.position-fixed {\n position: fixed !important;\n}\n\n.position-sticky {\n position: -webkit-sticky !important;\n position: sticky !important;\n}\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1030;\n}\n\n@supports ((position: -webkit-sticky) or (position: sticky)) {\n .sticky-top {\n position: -webkit-sticky;\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n}\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal;\n}\n\n.shadow-sm {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;\n}\n\n.shadow {\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;\n}\n\n.shadow-lg {\n box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;\n}\n\n.shadow-none {\n box-shadow: none !important;\n}\n\n.w-25 {\n width: 25% !important;\n}\n\n.w-50 {\n width: 50% !important;\n}\n\n.w-75 {\n width: 75% !important;\n}\n\n.w-100 {\n width: 100% !important;\n}\n\n.w-auto {\n width: auto !important;\n}\n\n.h-25 {\n height: 25% !important;\n}\n\n.h-50 {\n height: 50% !important;\n}\n\n.h-75 {\n height: 75% !important;\n}\n\n.h-100 {\n height: 100% !important;\n}\n\n.h-auto {\n height: auto !important;\n}\n\n.mw-100 {\n max-width: 100% !important;\n}\n\n.mh-100 {\n max-height: 100% !important;\n}\n\n.min-vw-100 {\n min-width: 100vw !important;\n}\n\n.min-vh-100 {\n min-height: 100vh !important;\n}\n\n.vw-100 {\n width: 100vw !important;\n}\n\n.vh-100 {\n height: 100vh !important;\n}\n\n.stretched-link::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n pointer-events: auto;\n content: \"\";\n background-color: rgba(0, 0, 0, 0);\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n margin-left: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important;\n}\n\n.m-n1 {\n margin: -0.25rem !important;\n}\n\n.mt-n1,\n.my-n1 {\n margin-top: -0.25rem !important;\n}\n\n.mr-n1,\n.mx-n1 {\n margin-right: -0.25rem !important;\n}\n\n.mb-n1,\n.my-n1 {\n margin-bottom: -0.25rem !important;\n}\n\n.ml-n1,\n.mx-n1 {\n margin-left: -0.25rem !important;\n}\n\n.m-n2 {\n margin: -0.5rem !important;\n}\n\n.mt-n2,\n.my-n2 {\n margin-top: -0.5rem !important;\n}\n\n.mr-n2,\n.mx-n2 {\n margin-right: -0.5rem !important;\n}\n\n.mb-n2,\n.my-n2 {\n margin-bottom: -0.5rem !important;\n}\n\n.ml-n2,\n.mx-n2 {\n margin-left: -0.5rem !important;\n}\n\n.m-n3 {\n margin: -1rem !important;\n}\n\n.mt-n3,\n.my-n3 {\n margin-top: -1rem !important;\n}\n\n.mr-n3,\n.mx-n3 {\n margin-right: -1rem !important;\n}\n\n.mb-n3,\n.my-n3 {\n margin-bottom: -1rem !important;\n}\n\n.ml-n3,\n.mx-n3 {\n margin-left: -1rem !important;\n}\n\n.m-n4 {\n margin: -1.5rem !important;\n}\n\n.mt-n4,\n.my-n4 {\n margin-top: -1.5rem !important;\n}\n\n.mr-n4,\n.mx-n4 {\n margin-right: -1.5rem !important;\n}\n\n.mb-n4,\n.my-n4 {\n margin-bottom: -1.5rem !important;\n}\n\n.ml-n4,\n.mx-n4 {\n margin-left: -1.5rem !important;\n}\n\n.m-n5 {\n margin: -3rem !important;\n}\n\n.mt-n5,\n.my-n5 {\n margin-top: -3rem !important;\n}\n\n.mr-n5,\n.mx-n5 {\n margin-right: -3rem !important;\n}\n\n.mb-n5,\n.my-n5 {\n margin-bottom: -3rem !important;\n}\n\n.ml-n5,\n.mx-n5 {\n margin-left: -3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 !important;\n }\n .mt-sm-0,\n .my-sm-0 {\n margin-top: 0 !important;\n }\n .mr-sm-0,\n .mx-sm-0 {\n margin-right: 0 !important;\n }\n .mb-sm-0,\n .my-sm-0 {\n margin-bottom: 0 !important;\n }\n .ml-sm-0,\n .mx-sm-0 {\n margin-left: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .mt-sm-1,\n .my-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mr-sm-1,\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n }\n .mb-sm-1,\n .my-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-sm-1,\n .mx-sm-1 {\n margin-left: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .mt-sm-2,\n .my-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mr-sm-2,\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n }\n .mb-sm-2,\n .my-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-sm-2,\n .mx-sm-2 {\n margin-left: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .mt-sm-3,\n .my-sm-3 {\n margin-top: 1rem !important;\n }\n .mr-sm-3,\n .mx-sm-3 {\n margin-right: 1rem !important;\n }\n .mb-sm-3,\n .my-sm-3 {\n margin-bottom: 1rem !important;\n }\n .ml-sm-3,\n .mx-sm-3 {\n margin-left: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .mt-sm-4,\n .my-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mr-sm-4,\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n }\n .mb-sm-4,\n .my-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-sm-4,\n .mx-sm-4 {\n margin-left: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .mt-sm-5,\n .my-sm-5 {\n margin-top: 3rem !important;\n }\n .mr-sm-5,\n .mx-sm-5 {\n margin-right: 3rem !important;\n }\n .mb-sm-5,\n .my-sm-5 {\n margin-bottom: 3rem !important;\n }\n .ml-sm-5,\n .mx-sm-5 {\n margin-left: 3rem !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .pt-sm-0,\n .py-sm-0 {\n padding-top: 0 !important;\n }\n .pr-sm-0,\n .px-sm-0 {\n padding-right: 0 !important;\n }\n .pb-sm-0,\n .py-sm-0 {\n padding-bottom: 0 !important;\n }\n .pl-sm-0,\n .px-sm-0 {\n padding-left: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .pt-sm-1,\n .py-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pr-sm-1,\n .px-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pb-sm-1,\n .py-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-sm-1,\n .px-sm-1 {\n padding-left: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .pt-sm-2,\n .py-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pr-sm-2,\n .px-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pb-sm-2,\n .py-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-sm-2,\n .px-sm-2 {\n padding-left: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .pt-sm-3,\n .py-sm-3 {\n padding-top: 1rem !important;\n }\n .pr-sm-3,\n .px-sm-3 {\n padding-right: 1rem !important;\n }\n .pb-sm-3,\n .py-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pl-sm-3,\n .px-sm-3 {\n padding-left: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .pt-sm-4,\n .py-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pr-sm-4,\n .px-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pb-sm-4,\n .py-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-sm-4,\n .px-sm-4 {\n padding-left: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .pt-sm-5,\n .py-sm-5 {\n padding-top: 3rem !important;\n }\n .pr-sm-5,\n .px-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-5,\n .py-sm-5 {\n padding-bottom: 3rem !important;\n }\n .pl-sm-5,\n .px-sm-5 {\n padding-left: 3rem !important;\n }\n .m-sm-n1 {\n margin: -0.25rem !important;\n }\n .mt-sm-n1,\n .my-sm-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-sm-n1,\n .mx-sm-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-sm-n1,\n .my-sm-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-sm-n1,\n .mx-sm-n1 {\n margin-left: -0.25rem !important;\n }\n .m-sm-n2 {\n margin: -0.5rem !important;\n }\n .mt-sm-n2,\n .my-sm-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-sm-n2,\n .mx-sm-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-sm-n2,\n .my-sm-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-sm-n2,\n .mx-sm-n2 {\n margin-left: -0.5rem !important;\n }\n .m-sm-n3 {\n margin: -1rem !important;\n }\n .mt-sm-n3,\n .my-sm-n3 {\n margin-top: -1rem !important;\n }\n .mr-sm-n3,\n .mx-sm-n3 {\n margin-right: -1rem !important;\n }\n .mb-sm-n3,\n .my-sm-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-sm-n3,\n .mx-sm-n3 {\n margin-left: -1rem !important;\n }\n .m-sm-n4 {\n margin: -1.5rem !important;\n }\n .mt-sm-n4,\n .my-sm-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-sm-n4,\n .mx-sm-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-sm-n4,\n .my-sm-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-sm-n4,\n .mx-sm-n4 {\n margin-left: -1.5rem !important;\n }\n .m-sm-n5 {\n margin: -3rem !important;\n }\n .mt-sm-n5,\n .my-sm-n5 {\n margin-top: -3rem !important;\n }\n .mr-sm-n5,\n .mx-sm-n5 {\n margin-right: -3rem !important;\n }\n .mb-sm-n5,\n .my-sm-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-sm-n5,\n .mx-sm-n5 {\n margin-left: -3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mt-sm-auto,\n .my-sm-auto {\n margin-top: auto !important;\n }\n .mr-sm-auto,\n .mx-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-auto,\n .my-sm-auto {\n margin-bottom: auto !important;\n }\n .ml-sm-auto,\n .mx-sm-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 !important;\n }\n .mt-md-0,\n .my-md-0 {\n margin-top: 0 !important;\n }\n .mr-md-0,\n .mx-md-0 {\n margin-right: 0 !important;\n }\n .mb-md-0,\n .my-md-0 {\n margin-bottom: 0 !important;\n }\n .ml-md-0,\n .mx-md-0 {\n margin-left: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .mt-md-1,\n .my-md-1 {\n margin-top: 0.25rem !important;\n }\n .mr-md-1,\n .mx-md-1 {\n margin-right: 0.25rem !important;\n }\n .mb-md-1,\n .my-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-md-1,\n .mx-md-1 {\n margin-left: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .mt-md-2,\n .my-md-2 {\n margin-top: 0.5rem !important;\n }\n .mr-md-2,\n .mx-md-2 {\n margin-right: 0.5rem !important;\n }\n .mb-md-2,\n .my-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-md-2,\n .mx-md-2 {\n margin-left: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .mt-md-3,\n .my-md-3 {\n margin-top: 1rem !important;\n }\n .mr-md-3,\n .mx-md-3 {\n margin-right: 1rem !important;\n }\n .mb-md-3,\n .my-md-3 {\n margin-bottom: 1rem !important;\n }\n .ml-md-3,\n .mx-md-3 {\n margin-left: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .mt-md-4,\n .my-md-4 {\n margin-top: 1.5rem !important;\n }\n .mr-md-4,\n .mx-md-4 {\n margin-right: 1.5rem !important;\n }\n .mb-md-4,\n .my-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-md-4,\n .mx-md-4 {\n margin-left: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .mt-md-5,\n .my-md-5 {\n margin-top: 3rem !important;\n }\n .mr-md-5,\n .mx-md-5 {\n margin-right: 3rem !important;\n }\n .mb-md-5,\n .my-md-5 {\n margin-bottom: 3rem !important;\n }\n .ml-md-5,\n .mx-md-5 {\n margin-left: 3rem !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .pt-md-0,\n .py-md-0 {\n padding-top: 0 !important;\n }\n .pr-md-0,\n .px-md-0 {\n padding-right: 0 !important;\n }\n .pb-md-0,\n .py-md-0 {\n padding-bottom: 0 !important;\n }\n .pl-md-0,\n .px-md-0 {\n padding-left: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .pt-md-1,\n .py-md-1 {\n padding-top: 0.25rem !important;\n }\n .pr-md-1,\n .px-md-1 {\n padding-right: 0.25rem !important;\n }\n .pb-md-1,\n .py-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-md-1,\n .px-md-1 {\n padding-left: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .pt-md-2,\n .py-md-2 {\n padding-top: 0.5rem !important;\n }\n .pr-md-2,\n .px-md-2 {\n padding-right: 0.5rem !important;\n }\n .pb-md-2,\n .py-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-md-2,\n .px-md-2 {\n padding-left: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .pt-md-3,\n .py-md-3 {\n padding-top: 1rem !important;\n }\n .pr-md-3,\n .px-md-3 {\n padding-right: 1rem !important;\n }\n .pb-md-3,\n .py-md-3 {\n padding-bottom: 1rem !important;\n }\n .pl-md-3,\n .px-md-3 {\n padding-left: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .pt-md-4,\n .py-md-4 {\n padding-top: 1.5rem !important;\n }\n .pr-md-4,\n .px-md-4 {\n padding-right: 1.5rem !important;\n }\n .pb-md-4,\n .py-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-md-4,\n .px-md-4 {\n padding-left: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .pt-md-5,\n .py-md-5 {\n padding-top: 3rem !important;\n }\n .pr-md-5,\n .px-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-5,\n .py-md-5 {\n padding-bottom: 3rem !important;\n }\n .pl-md-5,\n .px-md-5 {\n padding-left: 3rem !important;\n }\n .m-md-n1 {\n margin: -0.25rem !important;\n }\n .mt-md-n1,\n .my-md-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-md-n1,\n .mx-md-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-md-n1,\n .my-md-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-md-n1,\n .mx-md-n1 {\n margin-left: -0.25rem !important;\n }\n .m-md-n2 {\n margin: -0.5rem !important;\n }\n .mt-md-n2,\n .my-md-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-md-n2,\n .mx-md-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-md-n2,\n .my-md-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-md-n2,\n .mx-md-n2 {\n margin-left: -0.5rem !important;\n }\n .m-md-n3 {\n margin: -1rem !important;\n }\n .mt-md-n3,\n .my-md-n3 {\n margin-top: -1rem !important;\n }\n .mr-md-n3,\n .mx-md-n3 {\n margin-right: -1rem !important;\n }\n .mb-md-n3,\n .my-md-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-md-n3,\n .mx-md-n3 {\n margin-left: -1rem !important;\n }\n .m-md-n4 {\n margin: -1.5rem !important;\n }\n .mt-md-n4,\n .my-md-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-md-n4,\n .mx-md-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-md-n4,\n .my-md-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-md-n4,\n .mx-md-n4 {\n margin-left: -1.5rem !important;\n }\n .m-md-n5 {\n margin: -3rem !important;\n }\n .mt-md-n5,\n .my-md-n5 {\n margin-top: -3rem !important;\n }\n .mr-md-n5,\n .mx-md-n5 {\n margin-right: -3rem !important;\n }\n .mb-md-n5,\n .my-md-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-md-n5,\n .mx-md-n5 {\n margin-left: -3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mt-md-auto,\n .my-md-auto {\n margin-top: auto !important;\n }\n .mr-md-auto,\n .mx-md-auto {\n margin-right: auto !important;\n }\n .mb-md-auto,\n .my-md-auto {\n margin-bottom: auto !important;\n }\n .ml-md-auto,\n .mx-md-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 !important;\n }\n .mt-lg-0,\n .my-lg-0 {\n margin-top: 0 !important;\n }\n .mr-lg-0,\n .mx-lg-0 {\n margin-right: 0 !important;\n }\n .mb-lg-0,\n .my-lg-0 {\n margin-bottom: 0 !important;\n }\n .ml-lg-0,\n .mx-lg-0 {\n margin-left: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .mt-lg-1,\n .my-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mr-lg-1,\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n }\n .mb-lg-1,\n .my-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-lg-1,\n .mx-lg-1 {\n margin-left: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .mt-lg-2,\n .my-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mr-lg-2,\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n }\n .mb-lg-2,\n .my-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-lg-2,\n .mx-lg-2 {\n margin-left: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .mt-lg-3,\n .my-lg-3 {\n margin-top: 1rem !important;\n }\n .mr-lg-3,\n .mx-lg-3 {\n margin-right: 1rem !important;\n }\n .mb-lg-3,\n .my-lg-3 {\n margin-bottom: 1rem !important;\n }\n .ml-lg-3,\n .mx-lg-3 {\n margin-left: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .mt-lg-4,\n .my-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mr-lg-4,\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n }\n .mb-lg-4,\n .my-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-lg-4,\n .mx-lg-4 {\n margin-left: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .mt-lg-5,\n .my-lg-5 {\n margin-top: 3rem !important;\n }\n .mr-lg-5,\n .mx-lg-5 {\n margin-right: 3rem !important;\n }\n .mb-lg-5,\n .my-lg-5 {\n margin-bottom: 3rem !important;\n }\n .ml-lg-5,\n .mx-lg-5 {\n margin-left: 3rem !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .pt-lg-0,\n .py-lg-0 {\n padding-top: 0 !important;\n }\n .pr-lg-0,\n .px-lg-0 {\n padding-right: 0 !important;\n }\n .pb-lg-0,\n .py-lg-0 {\n padding-bottom: 0 !important;\n }\n .pl-lg-0,\n .px-lg-0 {\n padding-left: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .pt-lg-1,\n .py-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pr-lg-1,\n .px-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pb-lg-1,\n .py-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-lg-1,\n .px-lg-1 {\n padding-left: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .pt-lg-2,\n .py-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pr-lg-2,\n .px-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pb-lg-2,\n .py-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-lg-2,\n .px-lg-2 {\n padding-left: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .pt-lg-3,\n .py-lg-3 {\n padding-top: 1rem !important;\n }\n .pr-lg-3,\n .px-lg-3 {\n padding-right: 1rem !important;\n }\n .pb-lg-3,\n .py-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pl-lg-3,\n .px-lg-3 {\n padding-left: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .pt-lg-4,\n .py-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pr-lg-4,\n .px-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pb-lg-4,\n .py-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-lg-4,\n .px-lg-4 {\n padding-left: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .pt-lg-5,\n .py-lg-5 {\n padding-top: 3rem !important;\n }\n .pr-lg-5,\n .px-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-5,\n .py-lg-5 {\n padding-bottom: 3rem !important;\n }\n .pl-lg-5,\n .px-lg-5 {\n padding-left: 3rem !important;\n }\n .m-lg-n1 {\n margin: -0.25rem !important;\n }\n .mt-lg-n1,\n .my-lg-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-lg-n1,\n .mx-lg-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-lg-n1,\n .my-lg-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-lg-n1,\n .mx-lg-n1 {\n margin-left: -0.25rem !important;\n }\n .m-lg-n2 {\n margin: -0.5rem !important;\n }\n .mt-lg-n2,\n .my-lg-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-lg-n2,\n .mx-lg-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-lg-n2,\n .my-lg-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-lg-n2,\n .mx-lg-n2 {\n margin-left: -0.5rem !important;\n }\n .m-lg-n3 {\n margin: -1rem !important;\n }\n .mt-lg-n3,\n .my-lg-n3 {\n margin-top: -1rem !important;\n }\n .mr-lg-n3,\n .mx-lg-n3 {\n margin-right: -1rem !important;\n }\n .mb-lg-n3,\n .my-lg-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-lg-n3,\n .mx-lg-n3 {\n margin-left: -1rem !important;\n }\n .m-lg-n4 {\n margin: -1.5rem !important;\n }\n .mt-lg-n4,\n .my-lg-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-lg-n4,\n .mx-lg-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-lg-n4,\n .my-lg-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-lg-n4,\n .mx-lg-n4 {\n margin-left: -1.5rem !important;\n }\n .m-lg-n5 {\n margin: -3rem !important;\n }\n .mt-lg-n5,\n .my-lg-n5 {\n margin-top: -3rem !important;\n }\n .mr-lg-n5,\n .mx-lg-n5 {\n margin-right: -3rem !important;\n }\n .mb-lg-n5,\n .my-lg-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-lg-n5,\n .mx-lg-n5 {\n margin-left: -3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mt-lg-auto,\n .my-lg-auto {\n margin-top: auto !important;\n }\n .mr-lg-auto,\n .mx-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-auto,\n .my-lg-auto {\n margin-bottom: auto !important;\n }\n .ml-lg-auto,\n .mx-lg-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 !important;\n }\n .mt-xl-0,\n .my-xl-0 {\n margin-top: 0 !important;\n }\n .mr-xl-0,\n .mx-xl-0 {\n margin-right: 0 !important;\n }\n .mb-xl-0,\n .my-xl-0 {\n margin-bottom: 0 !important;\n }\n .ml-xl-0,\n .mx-xl-0 {\n margin-left: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .mt-xl-1,\n .my-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mr-xl-1,\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n }\n .mb-xl-1,\n .my-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-xl-1,\n .mx-xl-1 {\n margin-left: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .mt-xl-2,\n .my-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mr-xl-2,\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n }\n .mb-xl-2,\n .my-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-xl-2,\n .mx-xl-2 {\n margin-left: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .mt-xl-3,\n .my-xl-3 {\n margin-top: 1rem !important;\n }\n .mr-xl-3,\n .mx-xl-3 {\n margin-right: 1rem !important;\n }\n .mb-xl-3,\n .my-xl-3 {\n margin-bottom: 1rem !important;\n }\n .ml-xl-3,\n .mx-xl-3 {\n margin-left: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .mt-xl-4,\n .my-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mr-xl-4,\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n }\n .mb-xl-4,\n .my-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-xl-4,\n .mx-xl-4 {\n margin-left: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .mt-xl-5,\n .my-xl-5 {\n margin-top: 3rem !important;\n }\n .mr-xl-5,\n .mx-xl-5 {\n margin-right: 3rem !important;\n }\n .mb-xl-5,\n .my-xl-5 {\n margin-bottom: 3rem !important;\n }\n .ml-xl-5,\n .mx-xl-5 {\n margin-left: 3rem !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .pt-xl-0,\n .py-xl-0 {\n padding-top: 0 !important;\n }\n .pr-xl-0,\n .px-xl-0 {\n padding-right: 0 !important;\n }\n .pb-xl-0,\n .py-xl-0 {\n padding-bottom: 0 !important;\n }\n .pl-xl-0,\n .px-xl-0 {\n padding-left: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .pt-xl-1,\n .py-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pr-xl-1,\n .px-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pb-xl-1,\n .py-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-xl-1,\n .px-xl-1 {\n padding-left: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .pt-xl-2,\n .py-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pr-xl-2,\n .px-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pb-xl-2,\n .py-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-xl-2,\n .px-xl-2 {\n padding-left: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .pt-xl-3,\n .py-xl-3 {\n padding-top: 1rem !important;\n }\n .pr-xl-3,\n .px-xl-3 {\n padding-right: 1rem !important;\n }\n .pb-xl-3,\n .py-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pl-xl-3,\n .px-xl-3 {\n padding-left: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .pt-xl-4,\n .py-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pr-xl-4,\n .px-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pb-xl-4,\n .py-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-xl-4,\n .px-xl-4 {\n padding-left: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .pt-xl-5,\n .py-xl-5 {\n padding-top: 3rem !important;\n }\n .pr-xl-5,\n .px-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-5,\n .py-xl-5 {\n padding-bottom: 3rem !important;\n }\n .pl-xl-5,\n .px-xl-5 {\n padding-left: 3rem !important;\n }\n .m-xl-n1 {\n margin: -0.25rem !important;\n }\n .mt-xl-n1,\n .my-xl-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-xl-n1,\n .mx-xl-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-xl-n1,\n .my-xl-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-xl-n1,\n .mx-xl-n1 {\n margin-left: -0.25rem !important;\n }\n .m-xl-n2 {\n margin: -0.5rem !important;\n }\n .mt-xl-n2,\n .my-xl-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-xl-n2,\n .mx-xl-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-xl-n2,\n .my-xl-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-xl-n2,\n .mx-xl-n2 {\n margin-left: -0.5rem !important;\n }\n .m-xl-n3 {\n margin: -1rem !important;\n }\n .mt-xl-n3,\n .my-xl-n3 {\n margin-top: -1rem !important;\n }\n .mr-xl-n3,\n .mx-xl-n3 {\n margin-right: -1rem !important;\n }\n .mb-xl-n3,\n .my-xl-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-xl-n3,\n .mx-xl-n3 {\n margin-left: -1rem !important;\n }\n .m-xl-n4 {\n margin: -1.5rem !important;\n }\n .mt-xl-n4,\n .my-xl-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-xl-n4,\n .mx-xl-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-xl-n4,\n .my-xl-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-xl-n4,\n .mx-xl-n4 {\n margin-left: -1.5rem !important;\n }\n .m-xl-n5 {\n margin: -3rem !important;\n }\n .mt-xl-n5,\n .my-xl-n5 {\n margin-top: -3rem !important;\n }\n .mr-xl-n5,\n .mx-xl-n5 {\n margin-right: -3rem !important;\n }\n .mb-xl-n5,\n .my-xl-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-xl-n5,\n .mx-xl-n5 {\n margin-left: -3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mt-xl-auto,\n .my-xl-auto {\n margin-top: auto !important;\n }\n .mr-xl-auto,\n .mx-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-auto,\n .my-xl-auto {\n margin-bottom: auto !important;\n }\n .ml-xl-auto,\n .mx-xl-auto {\n margin-left: auto !important;\n }\n}\n\n.text-monospace {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !important;\n}\n\n.text-justify {\n text-align: justify !important;\n}\n\n.text-wrap {\n white-space: normal !important;\n}\n\n.text-nowrap {\n white-space: nowrap !important;\n}\n\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.text-left {\n text-align: left !important;\n}\n\n.text-right {\n text-align: right !important;\n}\n\n.text-center {\n text-align: center !important;\n}\n\n@media (min-width: 576px) {\n .text-sm-left {\n text-align: left !important;\n }\n .text-sm-right {\n text-align: right !important;\n }\n .text-sm-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 768px) {\n .text-md-left {\n text-align: left !important;\n }\n .text-md-right {\n text-align: right !important;\n }\n .text-md-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 992px) {\n .text-lg-left {\n text-align: left !important;\n }\n .text-lg-right {\n text-align: right !important;\n }\n .text-lg-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 1200px) {\n .text-xl-left {\n text-align: left !important;\n }\n .text-xl-right {\n text-align: right !important;\n }\n .text-xl-center {\n text-align: center !important;\n }\n}\n\n.text-lowercase {\n text-transform: lowercase !important;\n}\n\n.text-uppercase {\n text-transform: uppercase !important;\n}\n\n.text-capitalize {\n text-transform: capitalize !important;\n}\n\n.font-weight-light {\n font-weight: 300 !important;\n}\n\n.font-weight-lighter {\n font-weight: lighter !important;\n}\n\n.font-weight-normal {\n font-weight: 400 !important;\n}\n\n.font-weight-bold {\n font-weight: 700 !important;\n}\n\n.font-weight-bolder {\n font-weight: bolder !important;\n}\n\n.font-italic {\n font-style: italic !important;\n}\n\n.text-white {\n color: #fff !important;\n}\n\n.text-primary {\n color: #007bff !important;\n}\n\na.text-primary:hover, a.text-primary:focus {\n color: #0056b3 !important;\n}\n\n.text-secondary {\n color: #6c757d !important;\n}\n\na.text-secondary:hover, a.text-secondary:focus {\n color: #494f54 !important;\n}\n\n.text-success {\n color: #28a745 !important;\n}\n\na.text-success:hover, a.text-success:focus {\n color: #19692c !important;\n}\n\n.text-info {\n color: #17a2b8 !important;\n}\n\na.text-info:hover, a.text-info:focus {\n color: #0f6674 !important;\n}\n\n.text-warning {\n color: #ffc107 !important;\n}\n\na.text-warning:hover, a.text-warning:focus {\n color: #ba8b00 !important;\n}\n\n.text-danger {\n color: #dc3545 !important;\n}\n\na.text-danger:hover, a.text-danger:focus {\n color: #a71d2a !important;\n}\n\n.text-light {\n color: #f8f9fa !important;\n}\n\na.text-light:hover, a.text-light:focus {\n color: #cbd3da !important;\n}\n\n.text-dark {\n color: #343a40 !important;\n}\n\na.text-dark:hover, a.text-dark:focus {\n color: #121416 !important;\n}\n\n.text-body {\n color: #212529 !important;\n}\n\n.text-muted {\n color: #6c757d !important;\n}\n\n.text-black-50 {\n color: rgba(0, 0, 0, 0.5) !important;\n}\n\n.text-white-50 {\n color: rgba(255, 255, 255, 0.5) !important;\n}\n\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n\n.text-decoration-none {\n text-decoration: none !important;\n}\n\n.text-break {\n word-break: break-word !important;\n overflow-wrap: break-word !important;\n}\n\n.text-reset {\n color: inherit !important;\n}\n\n.visible {\n visibility: visible !important;\n}\n\n.invisible {\n visibility: hidden !important;\n}\n\n@media print {\n *,\n *::before,\n *::after {\n text-shadow: none !important;\n box-shadow: none !important;\n }\n a:not(.btn) {\n text-decoration: underline;\n }\n abbr[title]::after {\n content: \" (\" attr(title) \")\";\n }\n pre {\n white-space: pre-wrap !important;\n }\n pre,\n blockquote {\n border: 1px solid #adb5bd;\n page-break-inside: avoid;\n }\n thead {\n display: table-header-group;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n @page {\n size: a3;\n }\n body {\n min-width: 992px !important;\n }\n .container {\n min-width: 992px !important;\n }\n .navbar {\n display: none;\n }\n .badge {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #dee2e6 !important;\n }\n .table-dark {\n color: inherit;\n }\n .table-dark th,\n .table-dark td,\n .table-dark thead th,\n .table-dark tbody + tbody {\n border-color: #dee2e6;\n }\n .table .thead-dark th {\n color: inherit;\n border-color: #dee2e6;\n }\n}\n/*# sourceMappingURL=bootstrap.css.map */","// stylelint-disable property-blacklist, scss/dollar-variable-default\n\n// SCSS RFS mixin\n//\n// Automated font-resizing\n//\n// See https://github.com/twbs/rfs\n\n// Configuration\n\n// Base font size\n$rfs-base-font-size: 1.25rem !default;\n$rfs-font-size-unit: rem !default;\n\n// Breakpoint at where font-size starts decreasing if screen width is smaller\n$rfs-breakpoint: 1200px !default;\n$rfs-breakpoint-unit: px !default;\n\n// Resize font-size based on screen height and width\n$rfs-two-dimensional: false !default;\n\n// Factor of decrease\n$rfs-factor: 10 !default;\n\n@if type-of($rfs-factor) != \"number\" or $rfs-factor <= 1 {\n @error \"`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.\";\n}\n\n// Generate enable or disable classes. Possibilities: false, \"enable\" or \"disable\"\n$rfs-class: false !default;\n\n// 1 rem = $rfs-rem-value px\n$rfs-rem-value: 16 !default;\n\n// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14\n$rfs-safari-iframe-resize-bug-fix: false !default;\n\n// Disable RFS by setting $enable-responsive-font-sizes to false\n$enable-responsive-font-sizes: true !default;\n\n// Cache $rfs-base-font-size unit\n$rfs-base-font-size-unit: unit($rfs-base-font-size);\n\n// Remove px-unit from $rfs-base-font-size for calculations\n@if $rfs-base-font-size-unit == \"px\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1);\n}\n@else if $rfs-base-font-size-unit == \"rem\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1 / $rfs-rem-value);\n}\n\n// Cache $rfs-breakpoint unit to prevent multiple calls\n$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);\n\n// Remove unit from $rfs-breakpoint for calculations\n@if $rfs-breakpoint-unit-cache == \"px\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1);\n}\n@else if $rfs-breakpoint-unit-cache == \"rem\" or $rfs-breakpoint-unit-cache == \"em\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1 / $rfs-rem-value);\n}\n\n// Responsive font-size mixin\n@mixin rfs($fs, $important: false) {\n // Cache $fs unit\n $fs-unit: if(type-of($fs) == \"number\", unit($fs), false);\n\n // Add !important suffix if needed\n $rfs-suffix: if($important, \" !important\", \"\");\n\n // If $fs isn't a number (like inherit) or $fs has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n @if not $fs-unit or $fs-unit != \"\" and $fs-unit != \"px\" and $fs-unit != \"rem\" or $fs == 0 {\n font-size: #{$fs}#{$rfs-suffix};\n }\n @else {\n // Variables for storing static and fluid rescaling\n $rfs-static: null;\n $rfs-fluid: null;\n\n // Remove px-unit from $fs for calculations\n @if $fs-unit == \"px\" {\n $fs: $fs / ($fs * 0 + 1);\n }\n @else if $fs-unit == \"rem\" {\n $fs: $fs / ($fs * 0 + 1 / $rfs-rem-value);\n }\n\n // Set default font-size\n @if $rfs-font-size-unit == rem {\n $rfs-static: #{$fs / $rfs-rem-value}rem#{$rfs-suffix};\n }\n @else if $rfs-font-size-unit == px {\n $rfs-static: #{$fs}px#{$rfs-suffix};\n }\n @else {\n @error \"`#{$rfs-font-size-unit}` is not a valid unit for $rfs-font-size-unit. Use `px` or `rem`.\";\n }\n\n // Only add media query if font-size is bigger as the minimum font-size\n // If $rfs-factor == 1, no rescaling will take place\n @if $fs > $rfs-base-font-size and $enable-responsive-font-sizes {\n $min-width: null;\n $variable-unit: null;\n\n // Calculate minimum font-size for given font-size\n $fs-min: $rfs-base-font-size + ($fs - $rfs-base-font-size) / $rfs-factor;\n\n // Calculate difference between given font-size and minimum font-size for given font-size\n $fs-diff: $fs - $fs-min;\n\n // Base font-size formatting\n // No need to check if the unit is valid, because we did that before\n $min-width: if($rfs-font-size-unit == rem, #{$fs-min / $rfs-rem-value}rem, #{$fs-min}px);\n\n // If two-dimensional, use smallest of screen width and height\n $variable-unit: if($rfs-two-dimensional, vmin, vw);\n\n // Calculate the variable width between 0 and $rfs-breakpoint\n $variable-width: #{$fs-diff * 100 / $rfs-breakpoint}#{$variable-unit};\n\n // Set the calculated font-size.\n $rfs-fluid: calc(#{$min-width} + #{$variable-width}) #{$rfs-suffix};\n }\n\n // Rendering\n @if $rfs-fluid == null {\n // Only render static font-size if no fluid font-size is available\n font-size: $rfs-static;\n }\n @else {\n $mq-value: null;\n\n // RFS breakpoint formatting\n @if $rfs-breakpoint-unit == em or $rfs-breakpoint-unit == rem {\n $mq-value: #{$rfs-breakpoint / $rfs-rem-value}#{$rfs-breakpoint-unit};\n }\n @else if $rfs-breakpoint-unit == px {\n $mq-value: #{$rfs-breakpoint}px;\n }\n @else {\n @error \"`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.\";\n }\n\n @if $rfs-class == \"disable\" {\n // Adding an extra class increases specificity,\n // which prevents the media query to override the font size\n &,\n .disable-responsive-font-size &,\n &.disable-responsive-font-size {\n font-size: $rfs-static;\n }\n }\n @else {\n font-size: $rfs-static;\n }\n\n @if $rfs-two-dimensional {\n @media (max-width: #{$mq-value}), (max-height: #{$mq-value}) {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n font-size: $rfs-fluid;\n }\n }\n @else {\n font-size: $rfs-fluid;\n }\n\n @if $rfs-safari-iframe-resize-bug-fix {\n // stylelint-disable-next-line length-zero-no-unit\n min-width: 0vw;\n }\n }\n }\n @else {\n @media (max-width: #{$mq-value}) {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n font-size: $rfs-fluid;\n }\n }\n @else {\n font-size: $rfs-fluid;\n }\n\n @if $rfs-safari-iframe-resize-bug-fix {\n // stylelint-disable-next-line length-zero-no-unit\n min-width: 0vw;\n }\n }\n }\n }\n }\n}\n\n// The font-size & responsive-font-size mixin uses RFS to rescale font sizes\n@mixin font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n\n@mixin responsive-font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n","/*!\n * Bootstrap v4.3.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n:root {\n --blue: #007bff;\n --indigo: #6610f2;\n --purple: #6f42c1;\n --pink: #e83e8c;\n --red: #dc3545;\n --orange: #fd7e14;\n --yellow: #ffc107;\n --green: #28a745;\n --teal: #20c997;\n --cyan: #17a2b8;\n --white: #fff;\n --gray: #6c757d;\n --gray-dark: #343a40;\n --primary: #007bff;\n --secondary: #6c757d;\n --success: #28a745;\n --info: #17a2b8;\n --warning: #ffc107;\n --danger: #dc3545;\n --light: #f8f9fa;\n --dark: #343a40;\n --breakpoint-xs: 0;\n --breakpoint-sm: 576px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 992px;\n --breakpoint-xl: 1200px;\n --font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):focus {\n outline: 0;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg {\n overflow: hidden;\n vertical-align: middle;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\nselect {\n word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: 0.5rem;\n font-weight: 500;\n line-height: 1.2;\n}\n\nh1, .h1 {\n font-size: 2.5rem;\n}\n\nh2, .h2 {\n font-size: 2rem;\n}\n\nh3, .h3 {\n font-size: 1.75rem;\n}\n\nh4, .h4 {\n font-size: 1.5rem;\n}\n\nh5, .h5 {\n font-size: 1.25rem;\n}\n\nh6, .h6 {\n font-size: 1rem;\n}\n\n.lead {\n font-size: 1.25rem;\n font-weight: 300;\n}\n\n.display-1 {\n font-size: 6rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-2 {\n font-size: 5.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-3 {\n font-size: 4.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-4 {\n font-size: 3.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\nhr {\n margin-top: 1rem;\n margin-bottom: 1rem;\n border: 0;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\nsmall,\n.small {\n font-size: 80%;\n font-weight: 400;\n}\n\nmark,\n.mark {\n padding: 0.2em;\n background-color: #fcf8e3;\n}\n\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline-item {\n display: inline-block;\n}\n\n.list-inline-item:not(:last-child) {\n margin-right: 0.5rem;\n}\n\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\n\n.blockquote {\n margin-bottom: 1rem;\n font-size: 1.25rem;\n}\n\n.blockquote-footer {\n display: block;\n font-size: 80%;\n color: #6c757d;\n}\n\n.blockquote-footer::before {\n content: \"\\2014\\00A0\";\n}\n\n.img-fluid {\n max-width: 100%;\n height: auto;\n}\n\n.img-thumbnail {\n padding: 0.25rem;\n background-color: #fff;\n border: 1px solid #dee2e6;\n border-radius: 0.25rem;\n max-width: 100%;\n height: auto;\n}\n\n.figure {\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: 0.5rem;\n line-height: 1;\n}\n\n.figure-caption {\n font-size: 90%;\n color: #6c757d;\n}\n\ncode {\n font-size: 87.5%;\n color: #e83e8c;\n word-break: break-word;\n}\n\na > code {\n color: inherit;\n}\n\nkbd {\n padding: 0.2rem 0.4rem;\n font-size: 87.5%;\n color: #fff;\n background-color: #212529;\n border-radius: 0.2rem;\n}\n\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: 700;\n}\n\npre {\n display: block;\n font-size: 87.5%;\n color: #212529;\n}\n\npre code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n}\n\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n\n.container {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container {\n max-width: 1140px;\n }\n}\n\n.container-fluid {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n.row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n}\n\n.col-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n order: -1;\n}\n\n.order-last {\n order: 13;\n}\n\n.order-0 {\n order: 0;\n}\n\n.order-1 {\n order: 1;\n}\n\n.order-2 {\n order: 2;\n}\n\n.order-3 {\n order: 3;\n}\n\n.order-4 {\n order: 4;\n}\n\n.order-5 {\n order: 5;\n}\n\n.order-6 {\n order: 6;\n}\n\n.order-7 {\n order: 7;\n}\n\n.order-8 {\n order: 8;\n}\n\n.order-9 {\n order: 9;\n}\n\n.order-10 {\n order: 10;\n}\n\n.order-11 {\n order: 11;\n}\n\n.order-12 {\n order: 12;\n}\n\n.offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11 {\n margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-sm-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n order: -1;\n }\n .order-sm-last {\n order: 13;\n }\n .order-sm-0 {\n order: 0;\n }\n .order-sm-1 {\n order: 1;\n }\n .order-sm-2 {\n order: 2;\n }\n .order-sm-3 {\n order: 3;\n }\n .order-sm-4 {\n order: 4;\n }\n .order-sm-5 {\n order: 5;\n }\n .order-sm-6 {\n order: 6;\n }\n .order-sm-7 {\n order: 7;\n }\n .order-sm-8 {\n order: 8;\n }\n .order-sm-9 {\n order: 9;\n }\n .order-sm-10 {\n order: 10;\n }\n .order-sm-11 {\n order: 11;\n }\n .order-sm-12 {\n order: 12;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-md-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n order: -1;\n }\n .order-md-last {\n order: 13;\n }\n .order-md-0 {\n order: 0;\n }\n .order-md-1 {\n order: 1;\n }\n .order-md-2 {\n order: 2;\n }\n .order-md-3 {\n order: 3;\n }\n .order-md-4 {\n order: 4;\n }\n .order-md-5 {\n order: 5;\n }\n .order-md-6 {\n order: 6;\n }\n .order-md-7 {\n order: 7;\n }\n .order-md-8 {\n order: 8;\n }\n .order-md-9 {\n order: 9;\n }\n .order-md-10 {\n order: 10;\n }\n .order-md-11 {\n order: 11;\n }\n .order-md-12 {\n order: 12;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-lg-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n order: -1;\n }\n .order-lg-last {\n order: 13;\n }\n .order-lg-0 {\n order: 0;\n }\n .order-lg-1 {\n order: 1;\n }\n .order-lg-2 {\n order: 2;\n }\n .order-lg-3 {\n order: 3;\n }\n .order-lg-4 {\n order: 4;\n }\n .order-lg-5 {\n order: 5;\n }\n .order-lg-6 {\n order: 6;\n }\n .order-lg-7 {\n order: 7;\n }\n .order-lg-8 {\n order: 8;\n }\n .order-lg-9 {\n order: 9;\n }\n .order-lg-10 {\n order: 10;\n }\n .order-lg-11 {\n order: 11;\n }\n .order-lg-12 {\n order: 12;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-xl-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n order: -1;\n }\n .order-xl-last {\n order: 13;\n }\n .order-xl-0 {\n order: 0;\n }\n .order-xl-1 {\n order: 1;\n }\n .order-xl-2 {\n order: 2;\n }\n .order-xl-3 {\n order: 3;\n }\n .order-xl-4 {\n order: 4;\n }\n .order-xl-5 {\n order: 5;\n }\n .order-xl-6 {\n order: 6;\n }\n .order-xl-7 {\n order: 7;\n }\n .order-xl-8 {\n order: 8;\n }\n .order-xl-9 {\n order: 9;\n }\n .order-xl-10 {\n order: 10;\n }\n .order-xl-11 {\n order: 11;\n }\n .order-xl-12 {\n order: 12;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11 {\n margin-left: 91.666667%;\n }\n}\n\n.table {\n width: 100%;\n margin-bottom: 1rem;\n color: #212529;\n}\n\n.table th,\n.table td {\n padding: 0.75rem;\n vertical-align: top;\n border-top: 1px solid #dee2e6;\n}\n\n.table thead th {\n vertical-align: bottom;\n border-bottom: 2px solid #dee2e6;\n}\n\n.table tbody + tbody {\n border-top: 2px solid #dee2e6;\n}\n\n.table-sm th,\n.table-sm td {\n padding: 0.3rem;\n}\n\n.table-bordered {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered th,\n.table-bordered td {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered thead th,\n.table-bordered thead td {\n border-bottom-width: 2px;\n}\n\n.table-borderless th,\n.table-borderless td,\n.table-borderless thead th,\n.table-borderless tbody + tbody {\n border: 0;\n}\n\n.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n.table-hover tbody tr:hover {\n color: #212529;\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n background-color: #b8daff;\n}\n\n.table-primary th,\n.table-primary td,\n.table-primary thead th,\n.table-primary tbody + tbody {\n border-color: #7abaff;\n}\n\n.table-hover .table-primary:hover {\n background-color: #9fcdff;\n}\n\n.table-hover .table-primary:hover > td,\n.table-hover .table-primary:hover > th {\n background-color: #9fcdff;\n}\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n background-color: #d6d8db;\n}\n\n.table-secondary th,\n.table-secondary td,\n.table-secondary thead th,\n.table-secondary tbody + tbody {\n border-color: #b3b7bb;\n}\n\n.table-hover .table-secondary:hover {\n background-color: #c8cbcf;\n}\n\n.table-hover .table-secondary:hover > td,\n.table-hover .table-secondary:hover > th {\n background-color: #c8cbcf;\n}\n\n.table-success,\n.table-success > th,\n.table-success > td {\n background-color: #c3e6cb;\n}\n\n.table-success th,\n.table-success td,\n.table-success thead th,\n.table-success tbody + tbody {\n border-color: #8fd19e;\n}\n\n.table-hover .table-success:hover {\n background-color: #b1dfbb;\n}\n\n.table-hover .table-success:hover > td,\n.table-hover .table-success:hover > th {\n background-color: #b1dfbb;\n}\n\n.table-info,\n.table-info > th,\n.table-info > td {\n background-color: #bee5eb;\n}\n\n.table-info th,\n.table-info td,\n.table-info thead th,\n.table-info tbody + tbody {\n border-color: #86cfda;\n}\n\n.table-hover .table-info:hover {\n background-color: #abdde5;\n}\n\n.table-hover .table-info:hover > td,\n.table-hover .table-info:hover > th {\n background-color: #abdde5;\n}\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n background-color: #ffeeba;\n}\n\n.table-warning th,\n.table-warning td,\n.table-warning thead th,\n.table-warning tbody + tbody {\n border-color: #ffdf7e;\n}\n\n.table-hover .table-warning:hover {\n background-color: #ffe8a1;\n}\n\n.table-hover .table-warning:hover > td,\n.table-hover .table-warning:hover > th {\n background-color: #ffe8a1;\n}\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n background-color: #f5c6cb;\n}\n\n.table-danger th,\n.table-danger td,\n.table-danger thead th,\n.table-danger tbody + tbody {\n border-color: #ed969e;\n}\n\n.table-hover .table-danger:hover {\n background-color: #f1b0b7;\n}\n\n.table-hover .table-danger:hover > td,\n.table-hover .table-danger:hover > th {\n background-color: #f1b0b7;\n}\n\n.table-light,\n.table-light > th,\n.table-light > td {\n background-color: #fdfdfe;\n}\n\n.table-light th,\n.table-light td,\n.table-light thead th,\n.table-light tbody + tbody {\n border-color: #fbfcfc;\n}\n\n.table-hover .table-light:hover {\n background-color: #ececf6;\n}\n\n.table-hover .table-light:hover > td,\n.table-hover .table-light:hover > th {\n background-color: #ececf6;\n}\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n background-color: #c6c8ca;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th,\n.table-dark tbody + tbody {\n border-color: #95999c;\n}\n\n.table-hover .table-dark:hover {\n background-color: #b9bbbe;\n}\n\n.table-hover .table-dark:hover > td,\n.table-hover .table-dark:hover > th {\n background-color: #b9bbbe;\n}\n\n.table-active,\n.table-active > th,\n.table-active > td {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover > td,\n.table-hover .table-active:hover > th {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table .thead-dark th {\n color: #fff;\n background-color: #343a40;\n border-color: #454d55;\n}\n\n.table .thead-light th {\n color: #495057;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.table-dark {\n color: #fff;\n background-color: #343a40;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th {\n border-color: #454d55;\n}\n\n.table-dark.table-bordered {\n border: 0;\n}\n\n.table-dark.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(255, 255, 255, 0.05);\n}\n\n.table-dark.table-hover tbody tr:hover {\n color: #fff;\n background-color: rgba(255, 255, 255, 0.075);\n}\n\n@media (max-width: 575.98px) {\n .table-responsive-sm {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-sm > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 767.98px) {\n .table-responsive-md {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-md > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 991.98px) {\n .table-responsive-lg {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-lg > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 1199.98px) {\n .table-responsive-xl {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-xl > .table-bordered {\n border: 0;\n }\n}\n\n.table-responsive {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n}\n\n.table-responsive > .table-bordered {\n border: 0;\n}\n\n.form-control {\n display: block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .form-control {\n transition: none;\n }\n}\n\n.form-control::-ms-expand {\n background-color: transparent;\n border: 0;\n}\n\n.form-control:focus {\n color: #495057;\n background-color: #fff;\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.form-control::placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control:disabled, .form-control[readonly] {\n background-color: #e9ecef;\n opacity: 1;\n}\n\nselect.form-control:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n\n.col-form-label {\n padding-top: calc(0.375rem + 1px);\n padding-bottom: calc(0.375rem + 1px);\n margin-bottom: 0;\n font-size: inherit;\n line-height: 1.5;\n}\n\n.col-form-label-lg {\n padding-top: calc(0.5rem + 1px);\n padding-bottom: calc(0.5rem + 1px);\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.col-form-label-sm {\n padding-top: calc(0.25rem + 1px);\n padding-bottom: calc(0.25rem + 1px);\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n margin-bottom: 0;\n line-height: 1.5;\n color: #212529;\n background-color: transparent;\n border: solid transparent;\n border-width: 1px 0;\n}\n\n.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\n padding-right: 0;\n padding-left: 0;\n}\n\n.form-control-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.form-control-lg {\n height: calc(1.5em + 1rem + 2px);\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\nselect.form-control[size], select.form-control[multiple] {\n height: auto;\n}\n\ntextarea.form-control {\n height: auto;\n}\n\n.form-group {\n margin-bottom: 1rem;\n}\n\n.form-text {\n display: block;\n margin-top: 0.25rem;\n}\n\n.form-row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -5px;\n margin-left: -5px;\n}\n\n.form-row > .col,\n.form-row > [class*=\"col-\"] {\n padding-right: 5px;\n padding-left: 5px;\n}\n\n.form-check {\n position: relative;\n display: block;\n padding-left: 1.25rem;\n}\n\n.form-check-input {\n position: absolute;\n margin-top: 0.3rem;\n margin-left: -1.25rem;\n}\n\n.form-check-input:disabled ~ .form-check-label {\n color: #6c757d;\n}\n\n.form-check-label {\n margin-bottom: 0;\n}\n\n.form-check-inline {\n display: inline-flex;\n align-items: center;\n padding-left: 0;\n margin-right: 0.75rem;\n}\n\n.form-check-inline .form-check-input {\n position: static;\n margin-top: 0;\n margin-right: 0.3125rem;\n margin-left: 0;\n}\n\n.valid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #28a745;\n}\n\n.valid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(40, 167, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.was-validated .form-control:valid, .form-control.is-valid {\n border-color: #28a745;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: center right calc(0.375em + 0.1875rem);\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .form-control:valid ~ .valid-feedback,\n.was-validated .form-control:valid ~ .valid-tooltip, .form-control.is-valid ~ .valid-feedback,\n.form-control.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated textarea.form-control:valid, textarea.form-control.is-valid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:valid, .custom-select.is-valid {\n border-color: #28a745;\n padding-right: calc((1em + 0.75rem) * 3 / 4 + 1.75rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-select:valid ~ .valid-feedback,\n.was-validated .custom-select:valid ~ .valid-tooltip, .custom-select.is-valid ~ .valid-feedback,\n.custom-select.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .form-control-file:valid ~ .valid-feedback,\n.was-validated .form-control-file:valid ~ .valid-tooltip, .form-control-file.is-valid ~ .valid-feedback,\n.form-control-file.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n color: #28a745;\n}\n\n.was-validated .form-check-input:valid ~ .valid-feedback,\n.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,\n.form-check-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\n color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .valid-feedback,\n.was-validated .custom-control-input:valid ~ .valid-tooltip, .custom-control-input.is-valid ~ .valid-feedback,\n.custom-control-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {\n border-color: #34ce57;\n background-color: #34ce57;\n}\n\n.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .valid-feedback,\n.was-validated .custom-file-input:valid ~ .valid-tooltip, .custom-file-input.is-valid ~ .valid-feedback,\n.custom-file-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.invalid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #dc3545;\n}\n\n.invalid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(220, 53, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.was-validated .form-control:invalid, .form-control.is-invalid {\n border-color: #dc3545;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E\");\n background-repeat: no-repeat;\n background-position: center right calc(0.375em + 0.1875rem);\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .form-control:invalid ~ .invalid-feedback,\n.was-validated .form-control:invalid ~ .invalid-tooltip, .form-control.is-invalid ~ .invalid-feedback,\n.form-control.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:invalid, .custom-select.is-invalid {\n border-color: #dc3545;\n padding-right: calc((1em + 0.75rem) * 3 / 4 + 1.75rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-select:invalid ~ .invalid-feedback,\n.was-validated .custom-select:invalid ~ .invalid-tooltip, .custom-select.is-invalid ~ .invalid-feedback,\n.custom-select.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .form-control-file:invalid ~ .invalid-feedback,\n.was-validated .form-control-file:invalid ~ .invalid-tooltip, .form-control-file.is-invalid ~ .invalid-feedback,\n.form-control-file.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n color: #dc3545;\n}\n\n.was-validated .form-check-input:invalid ~ .invalid-feedback,\n.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,\n.form-check-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\n color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .invalid-feedback,\n.was-validated .custom-control-input:invalid ~ .invalid-tooltip, .custom-control-input.is-invalid ~ .invalid-feedback,\n.custom-control-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\n border-color: #e4606d;\n background-color: #e4606d;\n}\n\n.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .invalid-feedback,\n.was-validated .custom-file-input:invalid ~ .invalid-tooltip, .custom-file-input.is-invalid ~ .invalid-feedback,\n.custom-file-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.form-inline {\n display: flex;\n flex-flow: row wrap;\n align-items: center;\n}\n\n.form-inline .form-check {\n width: 100%;\n}\n\n@media (min-width: 576px) {\n .form-inline label {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 0;\n }\n .form-inline .form-group {\n display: flex;\n flex: 0 0 auto;\n flex-flow: row wrap;\n align-items: center;\n margin-bottom: 0;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-plaintext {\n display: inline-block;\n }\n .form-inline .input-group,\n .form-inline .custom-select {\n width: auto;\n }\n .form-inline .form-check {\n display: flex;\n align-items: center;\n justify-content: center;\n width: auto;\n padding-left: 0;\n }\n .form-inline .form-check-input {\n position: relative;\n flex-shrink: 0;\n margin-top: 0;\n margin-right: 0.25rem;\n margin-left: 0;\n }\n .form-inline .custom-control {\n align-items: center;\n justify-content: center;\n }\n .form-inline .custom-control-label {\n margin-bottom: 0;\n }\n}\n\n.btn {\n display: inline-block;\n font-weight: 400;\n color: #212529;\n text-align: center;\n vertical-align: middle;\n user-select: none;\n background-color: transparent;\n border: 1px solid transparent;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n line-height: 1.5;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .btn {\n transition: none;\n }\n}\n\n.btn:hover {\n color: #212529;\n text-decoration: none;\n}\n\n.btn:focus, .btn.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.btn.disabled, .btn:disabled {\n opacity: 0.65;\n}\n\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none;\n}\n\n.btn-primary {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:hover {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n}\n\n.btn-primary:focus, .btn-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-primary.disabled, .btn-primary:disabled {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,\n.show > .btn-primary.dropdown-toggle {\n color: #fff;\n background-color: #0062cc;\n border-color: #005cbf;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-secondary {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:hover {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n}\n\n.btn-secondary:focus, .btn-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-secondary.disabled, .btn-secondary:disabled {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-secondary.dropdown-toggle {\n color: #fff;\n background-color: #545b62;\n border-color: #4e555b;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-success {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:hover {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n}\n\n.btn-success:focus, .btn-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-success.disabled, .btn-success:disabled {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,\n.show > .btn-success.dropdown-toggle {\n color: #fff;\n background-color: #1e7e34;\n border-color: #1c7430;\n}\n\n.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-info {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:hover {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n}\n\n.btn-info:focus, .btn-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-info.disabled, .btn-info:disabled {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,\n.show > .btn-info.dropdown-toggle {\n color: #fff;\n background-color: #117a8b;\n border-color: #10707f;\n}\n\n.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-warning {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:hover {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n}\n\n.btn-warning:focus, .btn-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-warning.disabled, .btn-warning:disabled {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\n.show > .btn-warning.dropdown-toggle {\n color: #212529;\n background-color: #d39e00;\n border-color: #c69500;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-danger {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:hover {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n}\n\n.btn-danger:focus, .btn-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-danger.disabled, .btn-danger:disabled {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,\n.show > .btn-danger.dropdown-toggle {\n color: #fff;\n background-color: #bd2130;\n border-color: #b21f2d;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-light {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:hover {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n}\n\n.btn-light:focus, .btn-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-light.disabled, .btn-light:disabled {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\n.show > .btn-light.dropdown-toggle {\n color: #212529;\n background-color: #dae0e5;\n border-color: #d3d9df;\n}\n\n.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-dark {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:hover {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n}\n\n.btn-dark:focus, .btn-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-dark.disabled, .btn-dark:disabled {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\n.show > .btn-dark.dropdown-toggle {\n color: #fff;\n background-color: #1d2124;\n border-color: #171a1d;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-outline-primary {\n color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:hover {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:focus, .btn-outline-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-primary.disabled, .btn-outline-primary:disabled {\n color: #007bff;\n background-color: transparent;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-primary.dropdown-toggle {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-secondary {\n color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:hover {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:focus, .btn-outline-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n color: #6c757d;\n background-color: transparent;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-secondary.dropdown-toggle {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-success {\n color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:hover {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:focus, .btn-outline-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-success.disabled, .btn-outline-success:disabled {\n color: #28a745;\n background-color: transparent;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\n.show > .btn-outline-success.dropdown-toggle {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-info {\n color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:hover {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:focus, .btn-outline-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-info.disabled, .btn-outline-info:disabled {\n color: #17a2b8;\n background-color: transparent;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\n.show > .btn-outline-info.dropdown-toggle {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-warning {\n color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:hover {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:focus, .btn-outline-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-warning.disabled, .btn-outline-warning:disabled {\n color: #ffc107;\n background-color: transparent;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\n.show > .btn-outline-warning.dropdown-toggle {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-danger {\n color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:hover {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:focus, .btn-outline-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-danger.disabled, .btn-outline-danger:disabled {\n color: #dc3545;\n background-color: transparent;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\n.show > .btn-outline-danger.dropdown-toggle {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-light {\n color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:hover {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:focus, .btn-outline-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-light.disabled, .btn-outline-light:disabled {\n color: #f8f9fa;\n background-color: transparent;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\n.show > .btn-outline-light.dropdown-toggle {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-dark {\n color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:hover {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:focus, .btn-outline-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-dark.disabled, .btn-outline-dark:disabled {\n color: #343a40;\n background-color: transparent;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\n.show > .btn-outline-dark.dropdown-toggle {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-link {\n font-weight: 400;\n color: #007bff;\n text-decoration: none;\n}\n\n.btn-link:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\n.btn-link:focus, .btn-link.focus {\n text-decoration: underline;\n box-shadow: none;\n}\n\n.btn-link:disabled, .btn-link.disabled {\n color: #6c757d;\n pointer-events: none;\n}\n\n.btn-lg, .btn-group-lg > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.btn-sm, .btn-group-sm > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.btn-block {\n display: block;\n width: 100%;\n}\n\n.btn-block + .btn-block {\n margin-top: 0.5rem;\n}\n\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%;\n}\n\n.fade {\n transition: opacity 0.15s linear;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fade {\n transition: none;\n }\n}\n\n.fade:not(.show) {\n opacity: 0;\n}\n\n.collapse:not(.show) {\n display: none;\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n transition: height 0.35s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .collapsing {\n transition: none;\n }\n}\n\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n position: relative;\n}\n\n.dropdown-toggle {\n white-space: nowrap;\n}\n\n.dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid;\n border-right: 0.3em solid transparent;\n border-bottom: 0;\n border-left: 0.3em solid transparent;\n}\n\n.dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 10rem;\n padding: 0.5rem 0;\n margin: 0.125rem 0 0;\n font-size: 1rem;\n color: #212529;\n text-align: left;\n list-style: none;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem;\n}\n\n.dropdown-menu-left {\n right: auto;\n left: 0;\n}\n\n.dropdown-menu-right {\n right: 0;\n left: auto;\n}\n\n@media (min-width: 576px) {\n .dropdown-menu-sm-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-sm-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 768px) {\n .dropdown-menu-md-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-md-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 992px) {\n .dropdown-menu-lg-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-lg-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 1200px) {\n .dropdown-menu-xl-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-xl-right {\n right: 0;\n left: auto;\n }\n}\n\n.dropup .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: 0.125rem;\n}\n\n.dropup .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0;\n border-right: 0.3em solid transparent;\n border-bottom: 0.3em solid;\n border-left: 0.3em solid transparent;\n}\n\n.dropup .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-menu {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: 0.125rem;\n}\n\n.dropright .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0;\n border-bottom: 0.3em solid transparent;\n border-left: 0.3em solid;\n}\n\n.dropright .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-toggle::after {\n vertical-align: 0;\n}\n\n.dropleft .dropdown-menu {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: 0.125rem;\n}\n\n.dropleft .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n}\n\n.dropleft .dropdown-toggle::after {\n display: none;\n}\n\n.dropleft .dropdown-toggle::before {\n display: inline-block;\n margin-right: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0.3em solid;\n border-bottom: 0.3em solid transparent;\n}\n\n.dropleft .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle::before {\n vertical-align: 0;\n}\n\n.dropdown-menu[x-placement^=\"top\"], .dropdown-menu[x-placement^=\"right\"], .dropdown-menu[x-placement^=\"bottom\"], .dropdown-menu[x-placement^=\"left\"] {\n right: auto;\n bottom: auto;\n}\n\n.dropdown-divider {\n height: 0;\n margin: 0.5rem 0;\n overflow: hidden;\n border-top: 1px solid #e9ecef;\n}\n\n.dropdown-item {\n display: block;\n width: 100%;\n padding: 0.25rem 1.5rem;\n clear: both;\n font-weight: 400;\n color: #212529;\n text-align: inherit;\n white-space: nowrap;\n background-color: transparent;\n border: 0;\n}\n\n.dropdown-item:hover, .dropdown-item:focus {\n color: #16181b;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.dropdown-item.active, .dropdown-item:active {\n color: #fff;\n text-decoration: none;\n background-color: #007bff;\n}\n\n.dropdown-item.disabled, .dropdown-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: transparent;\n}\n\n.dropdown-menu.show {\n display: block;\n}\n\n.dropdown-header {\n display: block;\n padding: 0.5rem 1.5rem;\n margin-bottom: 0;\n font-size: 0.875rem;\n color: #6c757d;\n white-space: nowrap;\n}\n\n.dropdown-item-text {\n display: block;\n padding: 0.25rem 1.5rem;\n color: #212529;\n}\n\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle;\n}\n\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n flex: 1 1 auto;\n}\n\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover {\n z-index: 1;\n}\n\n.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\n.btn-group-vertical > .btn:focus,\n.btn-group-vertical > .btn:active,\n.btn-group-vertical > .btn.active {\n z-index: 1;\n}\n\n.btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start;\n}\n\n.btn-toolbar .input-group {\n width: auto;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) {\n margin-left: -1px;\n}\n\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.dropdown-toggle-split {\n padding-right: 0.5625rem;\n padding-left: 0.5625rem;\n}\n\n.dropdown-toggle-split::after,\n.dropup .dropdown-toggle-split::after,\n.dropright .dropdown-toggle-split::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle-split::before {\n margin-right: 0;\n}\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n padding-right: 0.375rem;\n padding-left: 0.375rem;\n}\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n padding-right: 0.75rem;\n padding-left: 0.75rem;\n}\n\n.btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n}\n\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group {\n width: 100%;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) {\n margin-top: -1px;\n}\n\n.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group-vertical > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.btn-group-toggle > .btn,\n.btn-group-toggle > .btn-group > .btn {\n margin-bottom: 0;\n}\n\n.btn-group-toggle > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn input[type=\"checkbox\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n\n.input-group {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: stretch;\n width: 100%;\n}\n\n.input-group > .form-control,\n.input-group > .form-control-plaintext,\n.input-group > .custom-select,\n.input-group > .custom-file {\n position: relative;\n flex: 1 1 auto;\n width: 1%;\n margin-bottom: 0;\n}\n\n.input-group > .form-control + .form-control,\n.input-group > .form-control + .custom-select,\n.input-group > .form-control + .custom-file,\n.input-group > .form-control-plaintext + .form-control,\n.input-group > .form-control-plaintext + .custom-select,\n.input-group > .form-control-plaintext + .custom-file,\n.input-group > .custom-select + .form-control,\n.input-group > .custom-select + .custom-select,\n.input-group > .custom-select + .custom-file,\n.input-group > .custom-file + .form-control,\n.input-group > .custom-file + .custom-select,\n.input-group > .custom-file + .custom-file {\n margin-left: -1px;\n}\n\n.input-group > .form-control:focus,\n.input-group > .custom-select:focus,\n.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {\n z-index: 3;\n}\n\n.input-group > .custom-file .custom-file-input:focus {\n z-index: 4;\n}\n\n.input-group > .form-control:not(:last-child),\n.input-group > .custom-select:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .form-control:not(:first-child),\n.input-group > .custom-select:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group > .custom-file {\n display: flex;\n align-items: center;\n}\n\n.input-group > .custom-file:not(:last-child) .custom-file-label,\n.input-group > .custom-file:not(:last-child) .custom-file-label::after {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .custom-file:not(:first-child) .custom-file-label {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group-prepend,\n.input-group-append {\n display: flex;\n}\n\n.input-group-prepend .btn,\n.input-group-append .btn {\n position: relative;\n z-index: 2;\n}\n\n.input-group-prepend .btn:focus,\n.input-group-append .btn:focus {\n z-index: 3;\n}\n\n.input-group-prepend .btn + .btn,\n.input-group-prepend .btn + .input-group-text,\n.input-group-prepend .input-group-text + .input-group-text,\n.input-group-prepend .input-group-text + .btn,\n.input-group-append .btn + .btn,\n.input-group-append .btn + .input-group-text,\n.input-group-append .input-group-text + .input-group-text,\n.input-group-append .input-group-text + .btn {\n margin-left: -1px;\n}\n\n.input-group-prepend {\n margin-right: -1px;\n}\n\n.input-group-append {\n margin-left: -1px;\n}\n\n.input-group-text {\n display: flex;\n align-items: center;\n padding: 0.375rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n text-align: center;\n white-space: nowrap;\n background-color: #e9ecef;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.input-group-text input[type=\"radio\"],\n.input-group-text input[type=\"checkbox\"] {\n margin-top: 0;\n}\n\n.input-group-lg > .form-control:not(textarea),\n.input-group-lg > .custom-select {\n height: calc(1.5em + 1rem + 2px);\n}\n\n.input-group-lg > .form-control,\n.input-group-lg > .custom-select,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.input-group-sm > .form-control:not(textarea),\n.input-group-sm > .custom-select {\n height: calc(1.5em + 0.5rem + 2px);\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .custom-select,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.input-group-lg > .custom-select,\n.input-group-sm > .custom-select {\n padding-right: 1.75rem;\n}\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group > .input-group-append:not(:last-child) > .btn,\n.input-group > .input-group-append:not(:last-child) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.custom-control {\n position: relative;\n display: block;\n min-height: 1.5rem;\n padding-left: 1.5rem;\n}\n\n.custom-control-inline {\n display: inline-flex;\n margin-right: 1rem;\n}\n\n.custom-control-input {\n position: absolute;\n z-index: -1;\n opacity: 0;\n}\n\n.custom-control-input:checked ~ .custom-control-label::before {\n color: #fff;\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-control-input:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-control-input:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #80bdff;\n}\n\n.custom-control-input:not(:disabled):active ~ .custom-control-label::before {\n color: #fff;\n background-color: #b3d7ff;\n border-color: #b3d7ff;\n}\n\n.custom-control-input:disabled ~ .custom-control-label {\n color: #6c757d;\n}\n\n.custom-control-input:disabled ~ .custom-control-label::before {\n background-color: #e9ecef;\n}\n\n.custom-control-label {\n position: relative;\n margin-bottom: 0;\n vertical-align: top;\n}\n\n.custom-control-label::before {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n pointer-events: none;\n content: \"\";\n background-color: #fff;\n border: #adb5bd solid 1px;\n}\n\n.custom-control-label::after {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n content: \"\";\n background: no-repeat 50% / 50% 50%;\n}\n\n.custom-checkbox .custom-control-label::before {\n border-radius: 0.25rem;\n}\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-radio .custom-control-label::before {\n border-radius: 50%;\n}\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\");\n}\n\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-switch {\n padding-left: 2.25rem;\n}\n\n.custom-switch .custom-control-label::before {\n left: -2.25rem;\n width: 1.75rem;\n pointer-events: all;\n border-radius: 0.5rem;\n}\n\n.custom-switch .custom-control-label::after {\n top: calc(0.25rem + 2px);\n left: calc(-2.25rem + 2px);\n width: calc(1rem - 4px);\n height: calc(1rem - 4px);\n background-color: #adb5bd;\n border-radius: 0.5rem;\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-switch .custom-control-label::after {\n transition: none;\n }\n}\n\n.custom-switch .custom-control-input:checked ~ .custom-control-label::after {\n background-color: #fff;\n transform: translateX(0.75rem);\n}\n\n.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-select {\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n vertical-align: middle;\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px;\n background-color: #fff;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n appearance: none;\n}\n\n.custom-select:focus {\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-select:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.custom-select[multiple], .custom-select[size]:not([size=\"1\"]) {\n height: auto;\n padding-right: 0.75rem;\n background-image: none;\n}\n\n.custom-select:disabled {\n color: #6c757d;\n background-color: #e9ecef;\n}\n\n.custom-select::-ms-expand {\n display: none;\n}\n\n.custom-select-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n padding-left: 0.5rem;\n font-size: 0.875rem;\n}\n\n.custom-select-lg {\n height: calc(1.5em + 1rem + 2px);\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n padding-left: 1rem;\n font-size: 1.25rem;\n}\n\n.custom-file {\n position: relative;\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin-bottom: 0;\n}\n\n.custom-file-input {\n position: relative;\n z-index: 2;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin: 0;\n opacity: 0;\n}\n\n.custom-file-input:focus ~ .custom-file-label {\n border-color: #80bdff;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-file-input:disabled ~ .custom-file-label {\n background-color: #e9ecef;\n}\n\n.custom-file-input:lang(en) ~ .custom-file-label::after {\n content: \"Browse\";\n}\n\n.custom-file-input ~ .custom-file-label[data-browse]::after {\n content: attr(data-browse);\n}\n\n.custom-file-label {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.custom-file-label::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n display: block;\n height: calc(1.5em + 0.75rem);\n padding: 0.375rem 0.75rem;\n line-height: 1.5;\n color: #495057;\n content: \"Browse\";\n background-color: #e9ecef;\n border-left: inherit;\n border-radius: 0 0.25rem 0.25rem 0;\n}\n\n.custom-range {\n width: 100%;\n height: calc(1rem + 0.4rem);\n padding: 0;\n background-color: transparent;\n appearance: none;\n}\n\n.custom-range:focus {\n outline: none;\n}\n\n.custom-range:focus::-webkit-slider-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-moz-range-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-ms-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range::-moz-focus-outer {\n border: 0;\n}\n\n.custom-range::-webkit-slider-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: -0.25rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-webkit-slider-thumb {\n transition: none;\n }\n}\n\n.custom-range::-webkit-slider-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-webkit-slider-runnable-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-moz-range-thumb {\n width: 1rem;\n height: 1rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-moz-range-thumb {\n transition: none;\n }\n}\n\n.custom-range::-moz-range-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-moz-range-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: 0;\n margin-right: 0.2rem;\n margin-left: 0.2rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-ms-thumb {\n transition: none;\n }\n}\n\n.custom-range::-ms-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-ms-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: transparent;\n border-color: transparent;\n border-width: 0.5rem;\n}\n\n.custom-range::-ms-fill-lower {\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-fill-upper {\n margin-right: 15px;\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range:disabled::-webkit-slider-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-webkit-slider-runnable-track {\n cursor: default;\n}\n\n.custom-range:disabled::-moz-range-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-moz-range-track {\n cursor: default;\n}\n\n.custom-range:disabled::-ms-thumb {\n background-color: #adb5bd;\n}\n\n.custom-control-label::before,\n.custom-file-label,\n.custom-select {\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-control-label::before,\n .custom-file-label,\n .custom-select {\n transition: none;\n }\n}\n\n.nav {\n display: flex;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.nav-link {\n display: block;\n padding: 0.5rem 1rem;\n}\n\n.nav-link:hover, .nav-link:focus {\n text-decoration: none;\n}\n\n.nav-link.disabled {\n color: #6c757d;\n pointer-events: none;\n cursor: default;\n}\n\n.nav-tabs {\n border-bottom: 1px solid #dee2e6;\n}\n\n.nav-tabs .nav-item {\n margin-bottom: -1px;\n}\n\n.nav-tabs .nav-link {\n border: 1px solid transparent;\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n border-color: #e9ecef #e9ecef #dee2e6;\n}\n\n.nav-tabs .nav-link.disabled {\n color: #6c757d;\n background-color: transparent;\n border-color: transparent;\n}\n\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-item.show .nav-link {\n color: #495057;\n background-color: #fff;\n border-color: #dee2e6 #dee2e6 #fff;\n}\n\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.nav-pills .nav-link {\n border-radius: 0.25rem;\n}\n\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n color: #fff;\n background-color: #007bff;\n}\n\n.nav-fill .nav-item {\n flex: 1 1 auto;\n text-align: center;\n}\n\n.nav-justified .nav-item {\n flex-basis: 0;\n flex-grow: 1;\n text-align: center;\n}\n\n.tab-content > .tab-pane {\n display: none;\n}\n\n.tab-content > .active {\n display: block;\n}\n\n.navbar {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n padding: 0.5rem 1rem;\n}\n\n.navbar > .container,\n.navbar > .container-fluid {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n}\n\n.navbar-brand {\n display: inline-block;\n padding-top: 0.3125rem;\n padding-bottom: 0.3125rem;\n margin-right: 1rem;\n font-size: 1.25rem;\n line-height: inherit;\n white-space: nowrap;\n}\n\n.navbar-brand:hover, .navbar-brand:focus {\n text-decoration: none;\n}\n\n.navbar-nav {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.navbar-nav .nav-link {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-nav .dropdown-menu {\n position: static;\n float: none;\n}\n\n.navbar-text {\n display: inline-block;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.navbar-collapse {\n flex-basis: 100%;\n flex-grow: 1;\n align-items: center;\n}\n\n.navbar-toggler {\n padding: 0.25rem 0.75rem;\n font-size: 1.25rem;\n line-height: 1;\n background-color: transparent;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.navbar-toggler:hover, .navbar-toggler:focus {\n text-decoration: none;\n}\n\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: \"\";\n background: no-repeat center center;\n background-size: 100% 100%;\n}\n\n@media (max-width: 575.98px) {\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 576px) {\n .navbar-expand-sm {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-sm .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-sm .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-sm .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid {\n flex-wrap: nowrap;\n }\n .navbar-expand-sm .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-sm .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 767.98px) {\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 768px) {\n .navbar-expand-md {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-md .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-md .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-md .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid {\n flex-wrap: nowrap;\n }\n .navbar-expand-md .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-md .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 991.98px) {\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 992px) {\n .navbar-expand-lg {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-lg .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-lg .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-lg .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid {\n flex-wrap: nowrap;\n }\n .navbar-expand-lg .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-lg .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 1199.98px) {\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 1200px) {\n .navbar-expand-xl {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-xl .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-xl .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-xl .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid {\n flex-wrap: nowrap;\n }\n .navbar-expand-xl .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-xl .navbar-toggler {\n display: none;\n }\n}\n\n.navbar-expand {\n flex-flow: row nowrap;\n justify-content: flex-start;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-expand .navbar-nav {\n flex-direction: row;\n}\n\n.navbar-expand .navbar-nav .dropdown-menu {\n position: absolute;\n}\n\n.navbar-expand .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid {\n flex-wrap: nowrap;\n}\n\n.navbar-expand .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n}\n\n.navbar-expand .navbar-toggler {\n display: none;\n}\n\n.navbar-light .navbar-brand {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-nav .nav-link {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\n color: rgba(0, 0, 0, 0.7);\n}\n\n.navbar-light .navbar-nav .nav-link.disabled {\n color: rgba(0, 0, 0, 0.3);\n}\n\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .active > .nav-link,\n.navbar-light .navbar-nav .nav-link.show,\n.navbar-light .navbar-nav .nav-link.active {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-toggler {\n color: rgba(0, 0, 0, 0.5);\n border-color: rgba(0, 0, 0, 0.1);\n}\n\n.navbar-light .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-light .navbar-text {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-text a {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-dark .navbar-brand {\n color: #fff;\n}\n\n.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\n color: #fff;\n}\n\n.navbar-dark .navbar-nav .nav-link {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n color: rgba(255, 255, 255, 0.75);\n}\n\n.navbar-dark .navbar-nav .nav-link.disabled {\n color: rgba(255, 255, 255, 0.25);\n}\n\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .active > .nav-link,\n.navbar-dark .navbar-nav .nav-link.show,\n.navbar-dark .navbar-nav .nav-link.active {\n color: #fff;\n}\n\n.navbar-dark .navbar-toggler {\n color: rgba(255, 255, 255, 0.5);\n border-color: rgba(255, 255, 255, 0.1);\n}\n\n.navbar-dark .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-dark .navbar-text {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-text a {\n color: #fff;\n}\n\n.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {\n color: #fff;\n}\n\n.card {\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: border-box;\n border: 1px solid rgba(0, 0, 0, 0.125);\n border-radius: 0.25rem;\n}\n\n.card > hr {\n margin-right: 0;\n margin-left: 0;\n}\n\n.card > .list-group:first-child .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.card > .list-group:last-child .list-group-item:last-child {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.card-body {\n flex: 1 1 auto;\n padding: 1.25rem;\n}\n\n.card-title {\n margin-bottom: 0.75rem;\n}\n\n.card-subtitle {\n margin-top: -0.375rem;\n margin-bottom: 0;\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link:hover {\n text-decoration: none;\n}\n\n.card-link + .card-link {\n margin-left: 1.25rem;\n}\n\n.card-header {\n padding: 0.75rem 1.25rem;\n margin-bottom: 0;\n background-color: rgba(0, 0, 0, 0.03);\n border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-header:first-child {\n border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;\n}\n\n.card-header + .list-group .list-group-item:first-child {\n border-top: 0;\n}\n\n.card-footer {\n padding: 0.75rem 1.25rem;\n background-color: rgba(0, 0, 0, 0.03);\n border-top: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-footer:last-child {\n border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);\n}\n\n.card-header-tabs {\n margin-right: -0.625rem;\n margin-bottom: -0.75rem;\n margin-left: -0.625rem;\n border-bottom: 0;\n}\n\n.card-header-pills {\n margin-right: -0.625rem;\n margin-left: -0.625rem;\n}\n\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: 1.25rem;\n}\n\n.card-img {\n width: 100%;\n border-radius: calc(0.25rem - 1px);\n}\n\n.card-img-top {\n width: 100%;\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card-img-bottom {\n width: 100%;\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.card-deck {\n display: flex;\n flex-direction: column;\n}\n\n.card-deck .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-deck {\n flex-flow: row wrap;\n margin-right: -15px;\n margin-left: -15px;\n }\n .card-deck .card {\n display: flex;\n flex: 1 0 0%;\n flex-direction: column;\n margin-right: 15px;\n margin-bottom: 0;\n margin-left: 15px;\n }\n}\n\n.card-group {\n display: flex;\n flex-direction: column;\n}\n\n.card-group > .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-group {\n flex-flow: row wrap;\n }\n .card-group > .card {\n flex: 1 0 0%;\n margin-bottom: 0;\n }\n .card-group > .card + .card {\n margin-left: 0;\n border-left: 0;\n }\n .card-group > .card:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-top,\n .card-group > .card:not(:last-child) .card-header {\n border-top-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-bottom,\n .card-group > .card:not(:last-child) .card-footer {\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-top,\n .card-group > .card:not(:first-child) .card-header {\n border-top-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-bottom,\n .card-group > .card:not(:first-child) .card-footer {\n border-bottom-left-radius: 0;\n }\n}\n\n.card-columns .card {\n margin-bottom: 0.75rem;\n}\n\n@media (min-width: 576px) {\n .card-columns {\n column-count: 3;\n column-gap: 1.25rem;\n orphans: 1;\n widows: 1;\n }\n .card-columns .card {\n display: inline-block;\n width: 100%;\n }\n}\n\n.accordion > .card {\n overflow: hidden;\n}\n\n.accordion > .card:not(:first-of-type) .card-header:first-child {\n border-radius: 0;\n}\n\n.accordion > .card:not(:first-of-type):not(:last-of-type) {\n border-bottom: 0;\n border-radius: 0;\n}\n\n.accordion > .card:first-of-type {\n border-bottom: 0;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.accordion > .card:last-of-type {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.accordion > .card .card-header {\n margin-bottom: -1px;\n}\n\n.breadcrumb {\n display: flex;\n flex-wrap: wrap;\n padding: 0.75rem 1rem;\n margin-bottom: 1rem;\n list-style: none;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.breadcrumb-item + .breadcrumb-item {\n padding-left: 0.5rem;\n}\n\n.breadcrumb-item + .breadcrumb-item::before {\n display: inline-block;\n padding-right: 0.5rem;\n color: #6c757d;\n content: \"/\";\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: underline;\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: none;\n}\n\n.breadcrumb-item.active {\n color: #6c757d;\n}\n\n.pagination {\n display: flex;\n padding-left: 0;\n list-style: none;\n border-radius: 0.25rem;\n}\n\n.page-link {\n position: relative;\n display: block;\n padding: 0.5rem 0.75rem;\n margin-left: -1px;\n line-height: 1.25;\n color: #007bff;\n background-color: #fff;\n border: 1px solid #dee2e6;\n}\n\n.page-link:hover {\n z-index: 2;\n color: #0056b3;\n text-decoration: none;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.page-link:focus {\n z-index: 2;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.page-item:first-child .page-link {\n margin-left: 0;\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.page-item:last-child .page-link {\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n}\n\n.page-item.active .page-link {\n z-index: 1;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.page-item.disabled .page-link {\n color: #6c757d;\n pointer-events: none;\n cursor: auto;\n background-color: #fff;\n border-color: #dee2e6;\n}\n\n.pagination-lg .page-link {\n padding: 0.75rem 1.5rem;\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.pagination-lg .page-item:first-child .page-link {\n border-top-left-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem;\n}\n\n.pagination-lg .page-item:last-child .page-link {\n border-top-right-radius: 0.3rem;\n border-bottom-right-radius: 0.3rem;\n}\n\n.pagination-sm .page-link {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.pagination-sm .page-item:first-child .page-link {\n border-top-left-radius: 0.2rem;\n border-bottom-left-radius: 0.2rem;\n}\n\n.pagination-sm .page-item:last-child .page-link {\n border-top-right-radius: 0.2rem;\n border-bottom-right-radius: 0.2rem;\n}\n\n.badge {\n display: inline-block;\n padding: 0.25em 0.4em;\n font-size: 75%;\n font-weight: 700;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .badge {\n transition: none;\n }\n}\n\na.badge:hover, a.badge:focus {\n text-decoration: none;\n}\n\n.badge:empty {\n display: none;\n}\n\n.btn .badge {\n position: relative;\n top: -1px;\n}\n\n.badge-pill {\n padding-right: 0.6em;\n padding-left: 0.6em;\n border-radius: 10rem;\n}\n\n.badge-primary {\n color: #fff;\n background-color: #007bff;\n}\n\na.badge-primary:hover, a.badge-primary:focus {\n color: #fff;\n background-color: #0062cc;\n}\n\na.badge-primary:focus, a.badge-primary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.badge-secondary {\n color: #fff;\n background-color: #6c757d;\n}\n\na.badge-secondary:hover, a.badge-secondary:focus {\n color: #fff;\n background-color: #545b62;\n}\n\na.badge-secondary:focus, a.badge-secondary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.badge-success {\n color: #fff;\n background-color: #28a745;\n}\n\na.badge-success:hover, a.badge-success:focus {\n color: #fff;\n background-color: #1e7e34;\n}\n\na.badge-success:focus, a.badge-success.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.badge-info {\n color: #fff;\n background-color: #17a2b8;\n}\n\na.badge-info:hover, a.badge-info:focus {\n color: #fff;\n background-color: #117a8b;\n}\n\na.badge-info:focus, a.badge-info.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.badge-warning {\n color: #212529;\n background-color: #ffc107;\n}\n\na.badge-warning:hover, a.badge-warning:focus {\n color: #212529;\n background-color: #d39e00;\n}\n\na.badge-warning:focus, a.badge-warning.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.badge-danger {\n color: #fff;\n background-color: #dc3545;\n}\n\na.badge-danger:hover, a.badge-danger:focus {\n color: #fff;\n background-color: #bd2130;\n}\n\na.badge-danger:focus, a.badge-danger.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.badge-light {\n color: #212529;\n background-color: #f8f9fa;\n}\n\na.badge-light:hover, a.badge-light:focus {\n color: #212529;\n background-color: #dae0e5;\n}\n\na.badge-light:focus, a.badge-light.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.badge-dark {\n color: #fff;\n background-color: #343a40;\n}\n\na.badge-dark:hover, a.badge-dark:focus {\n color: #fff;\n background-color: #1d2124;\n}\n\na.badge-dark:focus, a.badge-dark.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.jumbotron {\n padding: 2rem 1rem;\n margin-bottom: 2rem;\n background-color: #e9ecef;\n border-radius: 0.3rem;\n}\n\n@media (min-width: 576px) {\n .jumbotron {\n padding: 4rem 2rem;\n }\n}\n\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n border-radius: 0;\n}\n\n.alert {\n position: relative;\n padding: 0.75rem 1.25rem;\n margin-bottom: 1rem;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.alert-heading {\n color: inherit;\n}\n\n.alert-link {\n font-weight: 700;\n}\n\n.alert-dismissible {\n padding-right: 4rem;\n}\n\n.alert-dismissible .close {\n position: absolute;\n top: 0;\n right: 0;\n padding: 0.75rem 1.25rem;\n color: inherit;\n}\n\n.alert-primary {\n color: #004085;\n background-color: #cce5ff;\n border-color: #b8daff;\n}\n\n.alert-primary hr {\n border-top-color: #9fcdff;\n}\n\n.alert-primary .alert-link {\n color: #002752;\n}\n\n.alert-secondary {\n color: #383d41;\n background-color: #e2e3e5;\n border-color: #d6d8db;\n}\n\n.alert-secondary hr {\n border-top-color: #c8cbcf;\n}\n\n.alert-secondary .alert-link {\n color: #202326;\n}\n\n.alert-success {\n color: #155724;\n background-color: #d4edda;\n border-color: #c3e6cb;\n}\n\n.alert-success hr {\n border-top-color: #b1dfbb;\n}\n\n.alert-success .alert-link {\n color: #0b2e13;\n}\n\n.alert-info {\n color: #0c5460;\n background-color: #d1ecf1;\n border-color: #bee5eb;\n}\n\n.alert-info hr {\n border-top-color: #abdde5;\n}\n\n.alert-info .alert-link {\n color: #062c33;\n}\n\n.alert-warning {\n color: #856404;\n background-color: #fff3cd;\n border-color: #ffeeba;\n}\n\n.alert-warning hr {\n border-top-color: #ffe8a1;\n}\n\n.alert-warning .alert-link {\n color: #533f03;\n}\n\n.alert-danger {\n color: #721c24;\n background-color: #f8d7da;\n border-color: #f5c6cb;\n}\n\n.alert-danger hr {\n border-top-color: #f1b0b7;\n}\n\n.alert-danger .alert-link {\n color: #491217;\n}\n\n.alert-light {\n color: #818182;\n background-color: #fefefe;\n border-color: #fdfdfe;\n}\n\n.alert-light hr {\n border-top-color: #ececf6;\n}\n\n.alert-light .alert-link {\n color: #686868;\n}\n\n.alert-dark {\n color: #1b1e21;\n background-color: #d6d8d9;\n border-color: #c6c8ca;\n}\n\n.alert-dark hr {\n border-top-color: #b9bbbe;\n}\n\n.alert-dark .alert-link {\n color: #040505;\n}\n\n@keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0;\n }\n to {\n background-position: 0 0;\n }\n}\n\n.progress {\n display: flex;\n height: 1rem;\n overflow: hidden;\n font-size: 0.75rem;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n background-color: #007bff;\n transition: width 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar {\n transition: none;\n }\n}\n\n.progress-bar-striped {\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 1rem 1rem;\n}\n\n.progress-bar-animated {\n animation: progress-bar-stripes 1s linear infinite;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar-animated {\n animation: none;\n }\n}\n\n.media {\n display: flex;\n align-items: flex-start;\n}\n\n.media-body {\n flex: 1;\n}\n\n.list-group {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n}\n\n.list-group-item-action {\n width: 100%;\n color: #495057;\n text-align: inherit;\n}\n\n.list-group-item-action:hover, .list-group-item-action:focus {\n z-index: 1;\n color: #495057;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.list-group-item-action:active {\n color: #212529;\n background-color: #e9ecef;\n}\n\n.list-group-item {\n position: relative;\n display: block;\n padding: 0.75rem 1.25rem;\n margin-bottom: -1px;\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.list-group-item:last-child {\n margin-bottom: 0;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.list-group-item.disabled, .list-group-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: #fff;\n}\n\n.list-group-item.active {\n z-index: 2;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.list-group-horizontal {\n flex-direction: row;\n}\n\n.list-group-horizontal .list-group-item {\n margin-right: -1px;\n margin-bottom: 0;\n}\n\n.list-group-horizontal .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n}\n\n.list-group-horizontal .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n}\n\n@media (min-width: 576px) {\n .list-group-horizontal-sm {\n flex-direction: row;\n }\n .list-group-horizontal-sm .list-group-item {\n margin-right: -1px;\n margin-bottom: 0;\n }\n .list-group-horizontal-sm .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-sm .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n}\n\n@media (min-width: 768px) {\n .list-group-horizontal-md {\n flex-direction: row;\n }\n .list-group-horizontal-md .list-group-item {\n margin-right: -1px;\n margin-bottom: 0;\n }\n .list-group-horizontal-md .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-md .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n}\n\n@media (min-width: 992px) {\n .list-group-horizontal-lg {\n flex-direction: row;\n }\n .list-group-horizontal-lg .list-group-item {\n margin-right: -1px;\n margin-bottom: 0;\n }\n .list-group-horizontal-lg .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-lg .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n}\n\n@media (min-width: 1200px) {\n .list-group-horizontal-xl {\n flex-direction: row;\n }\n .list-group-horizontal-xl .list-group-item {\n margin-right: -1px;\n margin-bottom: 0;\n }\n .list-group-horizontal-xl .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-xl .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n}\n\n.list-group-flush .list-group-item {\n border-right: 0;\n border-left: 0;\n border-radius: 0;\n}\n\n.list-group-flush .list-group-item:last-child {\n margin-bottom: -1px;\n}\n\n.list-group-flush:first-child .list-group-item:first-child {\n border-top: 0;\n}\n\n.list-group-flush:last-child .list-group-item:last-child {\n margin-bottom: 0;\n border-bottom: 0;\n}\n\n.list-group-item-primary {\n color: #004085;\n background-color: #b8daff;\n}\n\n.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\n color: #004085;\n background-color: #9fcdff;\n}\n\n.list-group-item-primary.list-group-item-action.active {\n color: #fff;\n background-color: #004085;\n border-color: #004085;\n}\n\n.list-group-item-secondary {\n color: #383d41;\n background-color: #d6d8db;\n}\n\n.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\n color: #383d41;\n background-color: #c8cbcf;\n}\n\n.list-group-item-secondary.list-group-item-action.active {\n color: #fff;\n background-color: #383d41;\n border-color: #383d41;\n}\n\n.list-group-item-success {\n color: #155724;\n background-color: #c3e6cb;\n}\n\n.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\n color: #155724;\n background-color: #b1dfbb;\n}\n\n.list-group-item-success.list-group-item-action.active {\n color: #fff;\n background-color: #155724;\n border-color: #155724;\n}\n\n.list-group-item-info {\n color: #0c5460;\n background-color: #bee5eb;\n}\n\n.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\n color: #0c5460;\n background-color: #abdde5;\n}\n\n.list-group-item-info.list-group-item-action.active {\n color: #fff;\n background-color: #0c5460;\n border-color: #0c5460;\n}\n\n.list-group-item-warning {\n color: #856404;\n background-color: #ffeeba;\n}\n\n.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\n color: #856404;\n background-color: #ffe8a1;\n}\n\n.list-group-item-warning.list-group-item-action.active {\n color: #fff;\n background-color: #856404;\n border-color: #856404;\n}\n\n.list-group-item-danger {\n color: #721c24;\n background-color: #f5c6cb;\n}\n\n.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\n color: #721c24;\n background-color: #f1b0b7;\n}\n\n.list-group-item-danger.list-group-item-action.active {\n color: #fff;\n background-color: #721c24;\n border-color: #721c24;\n}\n\n.list-group-item-light {\n color: #818182;\n background-color: #fdfdfe;\n}\n\n.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\n color: #818182;\n background-color: #ececf6;\n}\n\n.list-group-item-light.list-group-item-action.active {\n color: #fff;\n background-color: #818182;\n border-color: #818182;\n}\n\n.list-group-item-dark {\n color: #1b1e21;\n background-color: #c6c8ca;\n}\n\n.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\n color: #1b1e21;\n background-color: #b9bbbe;\n}\n\n.list-group-item-dark.list-group-item-action.active {\n color: #fff;\n background-color: #1b1e21;\n border-color: #1b1e21;\n}\n\n.close {\n float: right;\n font-size: 1.5rem;\n font-weight: 700;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n opacity: .5;\n}\n\n.close:hover {\n color: #000;\n text-decoration: none;\n}\n\n.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {\n opacity: .75;\n}\n\nbutton.close {\n padding: 0;\n background-color: transparent;\n border: 0;\n appearance: none;\n}\n\na.close.disabled {\n pointer-events: none;\n}\n\n.toast {\n max-width: 350px;\n overflow: hidden;\n font-size: 0.875rem;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);\n backdrop-filter: blur(10px);\n opacity: 0;\n border-radius: 0.25rem;\n}\n\n.toast:not(:last-child) {\n margin-bottom: 0.75rem;\n}\n\n.toast.showing {\n opacity: 1;\n}\n\n.toast.show {\n display: block;\n opacity: 1;\n}\n\n.toast.hide {\n display: none;\n}\n\n.toast-header {\n display: flex;\n align-items: center;\n padding: 0.25rem 0.75rem;\n color: #6c757d;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n}\n\n.toast-body {\n padding: 0.75rem;\n}\n\n.modal-open {\n overflow: hidden;\n}\n\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n.modal {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1050;\n display: none;\n width: 100%;\n height: 100%;\n overflow: hidden;\n outline: 0;\n}\n\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 0.5rem;\n pointer-events: none;\n}\n\n.modal.fade .modal-dialog {\n transition: transform 0.3s ease-out;\n transform: translate(0, -50px);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .modal.fade .modal-dialog {\n transition: none;\n }\n}\n\n.modal.show .modal-dialog {\n transform: none;\n}\n\n.modal-dialog-scrollable {\n display: flex;\n max-height: calc(100% - 1rem);\n}\n\n.modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 1rem);\n overflow: hidden;\n}\n\n.modal-dialog-scrollable .modal-header,\n.modal-dialog-scrollable .modal-footer {\n flex-shrink: 0;\n}\n\n.modal-dialog-scrollable .modal-body {\n overflow-y: auto;\n}\n\n.modal-dialog-centered {\n display: flex;\n align-items: center;\n min-height: calc(100% - 1rem);\n}\n\n.modal-dialog-centered::before {\n display: block;\n height: calc(100vh - 1rem);\n content: \"\";\n}\n\n.modal-dialog-centered.modal-dialog-scrollable {\n flex-direction: column;\n justify-content: center;\n height: 100%;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable .modal-content {\n max-height: none;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable::before {\n content: none;\n}\n\n.modal-content {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n pointer-events: auto;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n outline: 0;\n}\n\n.modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1040;\n width: 100vw;\n height: 100vh;\n background-color: #000;\n}\n\n.modal-backdrop.fade {\n opacity: 0;\n}\n\n.modal-backdrop.show {\n opacity: 0.5;\n}\n\n.modal-header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n padding: 1rem 1rem;\n border-bottom: 1px solid #dee2e6;\n border-top-left-radius: 0.3rem;\n border-top-right-radius: 0.3rem;\n}\n\n.modal-header .close {\n padding: 1rem 1rem;\n margin: -1rem -1rem -1rem auto;\n}\n\n.modal-title {\n margin-bottom: 0;\n line-height: 1.5;\n}\n\n.modal-body {\n position: relative;\n flex: 1 1 auto;\n padding: 1rem;\n}\n\n.modal-footer {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n padding: 1rem;\n border-top: 1px solid #dee2e6;\n border-bottom-right-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem;\n}\n\n.modal-footer > :not(:first-child) {\n margin-left: .25rem;\n}\n\n.modal-footer > :not(:last-child) {\n margin-right: .25rem;\n}\n\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n@media (min-width: 576px) {\n .modal-dialog {\n max-width: 500px;\n margin: 1.75rem auto;\n }\n .modal-dialog-scrollable {\n max-height: calc(100% - 3.5rem);\n }\n .modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 3.5rem);\n }\n .modal-dialog-centered {\n min-height: calc(100% - 3.5rem);\n }\n .modal-dialog-centered::before {\n height: calc(100vh - 3.5rem);\n }\n .modal-sm {\n max-width: 300px;\n }\n}\n\n@media (min-width: 992px) {\n .modal-lg,\n .modal-xl {\n max-width: 800px;\n }\n}\n\n@media (min-width: 1200px) {\n .modal-xl {\n max-width: 1140px;\n }\n}\n\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n opacity: 0;\n}\n\n.tooltip.show {\n opacity: 0.9;\n}\n\n.tooltip .arrow {\n position: absolute;\n display: block;\n width: 0.8rem;\n height: 0.4rem;\n}\n\n.tooltip .arrow::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^=\"top\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=\"top\"] .arrow {\n bottom: 0;\n}\n\n.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n top: 0;\n border-width: 0.4rem 0.4rem 0;\n border-top-color: #000;\n}\n\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^=\"right\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=\"right\"] .arrow {\n left: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n right: 0;\n border-width: 0.4rem 0.4rem 0.4rem 0;\n border-right-color: #000;\n}\n\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=\"bottom\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow {\n top: 0;\n}\n\n.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n bottom: 0;\n border-width: 0 0.4rem 0.4rem;\n border-bottom-color: #000;\n}\n\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^=\"left\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=\"left\"] .arrow {\n right: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n left: 0;\n border-width: 0.4rem 0 0.4rem 0.4rem;\n border-left-color: #000;\n}\n\n.tooltip-inner {\n max-width: 200px;\n padding: 0.25rem 0.5rem;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 0.25rem;\n}\n\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: block;\n max-width: 276px;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n}\n\n.popover .arrow {\n position: absolute;\n display: block;\n width: 1rem;\n height: 0.5rem;\n margin: 0 0.3rem;\n}\n\n.popover .arrow::before, .popover .arrow::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-popover-top, .bs-popover-auto[x-placement^=\"top\"] {\n margin-bottom: 0.5rem;\n}\n\n.bs-popover-top > .arrow, .bs-popover-auto[x-placement^=\"top\"] > .arrow {\n bottom: calc((0.5rem + 1px) * -1);\n}\n\n.bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^=\"top\"] > .arrow::before {\n bottom: 0;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-top > .arrow::after, .bs-popover-auto[x-placement^=\"top\"] > .arrow::after {\n bottom: 1px;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: #fff;\n}\n\n.bs-popover-right, .bs-popover-auto[x-placement^=\"right\"] {\n margin-left: 0.5rem;\n}\n\n.bs-popover-right > .arrow, .bs-popover-auto[x-placement^=\"right\"] > .arrow {\n left: calc((0.5rem + 1px) * -1);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^=\"right\"] > .arrow::before {\n left: 0;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-right > .arrow::after, .bs-popover-auto[x-placement^=\"right\"] > .arrow::after {\n left: 1px;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: #fff;\n}\n\n.bs-popover-bottom, .bs-popover-auto[x-placement^=\"bottom\"] {\n margin-top: 0.5rem;\n}\n\n.bs-popover-bottom > .arrow, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow {\n top: calc((0.5rem + 1px) * -1);\n}\n\n.bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::before {\n top: 0;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-bottom > .arrow::after, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::after {\n top: 1px;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: #fff;\n}\n\n.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: 1rem;\n margin-left: -0.5rem;\n content: \"\";\n border-bottom: 1px solid #f7f7f7;\n}\n\n.bs-popover-left, .bs-popover-auto[x-placement^=\"left\"] {\n margin-right: 0.5rem;\n}\n\n.bs-popover-left > .arrow, .bs-popover-auto[x-placement^=\"left\"] > .arrow {\n right: calc((0.5rem + 1px) * -1);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^=\"left\"] > .arrow::before {\n right: 0;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-left > .arrow::after, .bs-popover-auto[x-placement^=\"left\"] > .arrow::after {\n right: 1px;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: #fff;\n}\n\n.popover-header {\n padding: 0.5rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.popover-header:empty {\n display: none;\n}\n\n.popover-body {\n padding: 0.5rem 0.75rem;\n color: #212529;\n}\n\n.carousel {\n position: relative;\n}\n\n.carousel.pointer-event {\n touch-action: pan-y;\n}\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n\n.carousel-inner::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.carousel-item {\n position: relative;\n display: none;\n float: left;\n width: 100%;\n margin-right: -100%;\n backface-visibility: hidden;\n transition: transform 0.6s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-item {\n transition: none;\n }\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block;\n}\n\n.carousel-item-next:not(.carousel-item-left),\n.active.carousel-item-right {\n transform: translateX(100%);\n}\n\n.carousel-item-prev:not(.carousel-item-right),\n.active.carousel-item-left {\n transform: translateX(-100%);\n}\n\n.carousel-fade .carousel-item {\n opacity: 0;\n transition-property: opacity;\n transform: none;\n}\n\n.carousel-fade .carousel-item.active,\n.carousel-fade .carousel-item-next.carousel-item-left,\n.carousel-fade .carousel-item-prev.carousel-item-right {\n z-index: 1;\n opacity: 1;\n}\n\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-right {\n z-index: 0;\n opacity: 0;\n transition: 0s 0.6s opacity;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-fade .active.carousel-item-left,\n .carousel-fade .active.carousel-item-right {\n transition: none;\n }\n}\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 15%;\n color: #fff;\n text-align: center;\n opacity: 0.5;\n transition: opacity 0.15s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-control-prev,\n .carousel-control-next {\n transition: none;\n }\n}\n\n.carousel-control-prev:hover, .carousel-control-prev:focus,\n.carousel-control-next:hover,\n.carousel-control-next:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n opacity: 0.9;\n}\n\n.carousel-control-prev {\n left: 0;\n}\n\n.carousel-control-next {\n right: 0;\n}\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: 20px;\n height: 20px;\n background: no-repeat 50% / 100% 100%;\n}\n\n.carousel-control-prev-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3e%3c/svg%3e\");\n}\n\n.carousel-control-next-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3e%3c/svg%3e\");\n}\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 15;\n display: flex;\n justify-content: center;\n padding-left: 0;\n margin-right: 15%;\n margin-left: 15%;\n list-style: none;\n}\n\n.carousel-indicators li {\n box-sizing: content-box;\n flex: 0 1 auto;\n width: 30px;\n height: 3px;\n margin-right: 3px;\n margin-left: 3px;\n text-indent: -999px;\n cursor: pointer;\n background-color: #fff;\n background-clip: padding-box;\n border-top: 10px solid transparent;\n border-bottom: 10px solid transparent;\n opacity: .5;\n transition: opacity 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-indicators li {\n transition: none;\n }\n}\n\n.carousel-indicators .active {\n opacity: 1;\n}\n\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center;\n}\n\n@keyframes spinner-border {\n to {\n transform: rotate(360deg);\n }\n}\n\n.spinner-border {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n border: 0.25em solid currentColor;\n border-right-color: transparent;\n border-radius: 50%;\n animation: spinner-border .75s linear infinite;\n}\n\n.spinner-border-sm {\n width: 1rem;\n height: 1rem;\n border-width: 0.2em;\n}\n\n@keyframes spinner-grow {\n 0% {\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n }\n}\n\n.spinner-grow {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n background-color: currentColor;\n border-radius: 50%;\n opacity: 0;\n animation: spinner-grow .75s linear infinite;\n}\n\n.spinner-grow-sm {\n width: 1rem;\n height: 1rem;\n}\n\n.align-baseline {\n vertical-align: baseline !important;\n}\n\n.align-top {\n vertical-align: top !important;\n}\n\n.align-middle {\n vertical-align: middle !important;\n}\n\n.align-bottom {\n vertical-align: bottom !important;\n}\n\n.align-text-bottom {\n vertical-align: text-bottom !important;\n}\n\n.align-text-top {\n vertical-align: text-top !important;\n}\n\n.bg-primary {\n background-color: #007bff !important;\n}\n\na.bg-primary:hover, a.bg-primary:focus,\nbutton.bg-primary:hover,\nbutton.bg-primary:focus {\n background-color: #0062cc !important;\n}\n\n.bg-secondary {\n background-color: #6c757d !important;\n}\n\na.bg-secondary:hover, a.bg-secondary:focus,\nbutton.bg-secondary:hover,\nbutton.bg-secondary:focus {\n background-color: #545b62 !important;\n}\n\n.bg-success {\n background-color: #28a745 !important;\n}\n\na.bg-success:hover, a.bg-success:focus,\nbutton.bg-success:hover,\nbutton.bg-success:focus {\n background-color: #1e7e34 !important;\n}\n\n.bg-info {\n background-color: #17a2b8 !important;\n}\n\na.bg-info:hover, a.bg-info:focus,\nbutton.bg-info:hover,\nbutton.bg-info:focus {\n background-color: #117a8b !important;\n}\n\n.bg-warning {\n background-color: #ffc107 !important;\n}\n\na.bg-warning:hover, a.bg-warning:focus,\nbutton.bg-warning:hover,\nbutton.bg-warning:focus {\n background-color: #d39e00 !important;\n}\n\n.bg-danger {\n background-color: #dc3545 !important;\n}\n\na.bg-danger:hover, a.bg-danger:focus,\nbutton.bg-danger:hover,\nbutton.bg-danger:focus {\n background-color: #bd2130 !important;\n}\n\n.bg-light {\n background-color: #f8f9fa !important;\n}\n\na.bg-light:hover, a.bg-light:focus,\nbutton.bg-light:hover,\nbutton.bg-light:focus {\n background-color: #dae0e5 !important;\n}\n\n.bg-dark {\n background-color: #343a40 !important;\n}\n\na.bg-dark:hover, a.bg-dark:focus,\nbutton.bg-dark:hover,\nbutton.bg-dark:focus {\n background-color: #1d2124 !important;\n}\n\n.bg-white {\n background-color: #fff !important;\n}\n\n.bg-transparent {\n background-color: transparent !important;\n}\n\n.border {\n border: 1px solid #dee2e6 !important;\n}\n\n.border-top {\n border-top: 1px solid #dee2e6 !important;\n}\n\n.border-right {\n border-right: 1px solid #dee2e6 !important;\n}\n\n.border-bottom {\n border-bottom: 1px solid #dee2e6 !important;\n}\n\n.border-left {\n border-left: 1px solid #dee2e6 !important;\n}\n\n.border-0 {\n border: 0 !important;\n}\n\n.border-top-0 {\n border-top: 0 !important;\n}\n\n.border-right-0 {\n border-right: 0 !important;\n}\n\n.border-bottom-0 {\n border-bottom: 0 !important;\n}\n\n.border-left-0 {\n border-left: 0 !important;\n}\n\n.border-primary {\n border-color: #007bff !important;\n}\n\n.border-secondary {\n border-color: #6c757d !important;\n}\n\n.border-success {\n border-color: #28a745 !important;\n}\n\n.border-info {\n border-color: #17a2b8 !important;\n}\n\n.border-warning {\n border-color: #ffc107 !important;\n}\n\n.border-danger {\n border-color: #dc3545 !important;\n}\n\n.border-light {\n border-color: #f8f9fa !important;\n}\n\n.border-dark {\n border-color: #343a40 !important;\n}\n\n.border-white {\n border-color: #fff !important;\n}\n\n.rounded-sm {\n border-radius: 0.2rem !important;\n}\n\n.rounded {\n border-radius: 0.25rem !important;\n}\n\n.rounded-top {\n border-top-left-radius: 0.25rem !important;\n border-top-right-radius: 0.25rem !important;\n}\n\n.rounded-right {\n border-top-right-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important;\n}\n\n.rounded-bottom {\n border-bottom-right-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-left {\n border-top-left-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-lg {\n border-radius: 0.3rem !important;\n}\n\n.rounded-circle {\n border-radius: 50% !important;\n}\n\n.rounded-pill {\n border-radius: 50rem !important;\n}\n\n.rounded-0 {\n border-radius: 0 !important;\n}\n\n.clearfix::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.d-none {\n display: none !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline-flex {\n display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: flex !important;\n }\n .d-md-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media print {\n .d-print-none {\n display: none !important;\n }\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: flex !important;\n }\n .d-print-inline-flex {\n display: inline-flex !important;\n }\n}\n\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden;\n}\n\n.embed-responsive::before {\n display: block;\n content: \"\";\n}\n\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n}\n\n.embed-responsive-21by9::before {\n padding-top: 42.857143%;\n}\n\n.embed-responsive-16by9::before {\n padding-top: 56.25%;\n}\n\n.embed-responsive-4by3::before {\n padding-top: 75%;\n}\n\n.embed-responsive-1by1::before {\n padding-top: 100%;\n}\n\n.flex-row {\n flex-direction: row !important;\n}\n\n.flex-column {\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n justify-content: center !important;\n}\n\n.justify-content-between {\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n justify-content: space-around !important;\n}\n\n.align-items-start {\n align-items: flex-start !important;\n}\n\n.align-items-end {\n align-items: flex-end !important;\n}\n\n.align-items-center {\n align-items: center !important;\n}\n\n.align-items-baseline {\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n align-items: stretch !important;\n}\n\n.align-content-start {\n align-content: flex-start !important;\n}\n\n.align-content-end {\n align-content: flex-end !important;\n}\n\n.align-content-center {\n align-content: center !important;\n}\n\n.align-content-between {\n align-content: space-between !important;\n}\n\n.align-content-around {\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n align-content: stretch !important;\n}\n\n.align-self-auto {\n align-self: auto !important;\n}\n\n.align-self-start {\n align-self: flex-start !important;\n}\n\n.align-self-end {\n align-self: flex-end !important;\n}\n\n.align-self-center {\n align-self: center !important;\n}\n\n.align-self-baseline {\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n flex-direction: row !important;\n }\n .flex-sm-column {\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-sm-fill {\n flex: 1 1 auto !important;\n }\n .flex-sm-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-sm-start {\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n justify-content: center !important;\n }\n .justify-content-sm-between {\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n align-items: center !important;\n }\n .align-items-sm-baseline {\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n align-items: stretch !important;\n }\n .align-content-sm-start {\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n align-content: center !important;\n }\n .align-content-sm-between {\n align-content: space-between !important;\n }\n .align-content-sm-around {\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n align-self: auto !important;\n }\n .align-self-sm-start {\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n align-self: center !important;\n }\n .align-self-sm-baseline {\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 768px) {\n .flex-md-row {\n flex-direction: row !important;\n }\n .flex-md-column {\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-md-fill {\n flex: 1 1 auto !important;\n }\n .flex-md-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-md-start {\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n justify-content: center !important;\n }\n .justify-content-md-between {\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n justify-content: space-around !important;\n }\n .align-items-md-start {\n align-items: flex-start !important;\n }\n .align-items-md-end {\n align-items: flex-end !important;\n }\n .align-items-md-center {\n align-items: center !important;\n }\n .align-items-md-baseline {\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n align-items: stretch !important;\n }\n .align-content-md-start {\n align-content: flex-start !important;\n }\n .align-content-md-end {\n align-content: flex-end !important;\n }\n .align-content-md-center {\n align-content: center !important;\n }\n .align-content-md-between {\n align-content: space-between !important;\n }\n .align-content-md-around {\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n align-content: stretch !important;\n }\n .align-self-md-auto {\n align-self: auto !important;\n }\n .align-self-md-start {\n align-self: flex-start !important;\n }\n .align-self-md-end {\n align-self: flex-end !important;\n }\n .align-self-md-center {\n align-self: center !important;\n }\n .align-self-md-baseline {\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 992px) {\n .flex-lg-row {\n flex-direction: row !important;\n }\n .flex-lg-column {\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-lg-fill {\n flex: 1 1 auto !important;\n }\n .flex-lg-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-lg-start {\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n justify-content: center !important;\n }\n .justify-content-lg-between {\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n align-items: center !important;\n }\n .align-items-lg-baseline {\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n align-items: stretch !important;\n }\n .align-content-lg-start {\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n align-content: center !important;\n }\n .align-content-lg-between {\n align-content: space-between !important;\n }\n .align-content-lg-around {\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n align-self: auto !important;\n }\n .align-self-lg-start {\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n align-self: center !important;\n }\n .align-self-lg-baseline {\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n flex-direction: row !important;\n }\n .flex-xl-column {\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-xl-fill {\n flex: 1 1 auto !important;\n }\n .flex-xl-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-xl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n justify-content: center !important;\n }\n .justify-content-xl-between {\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n align-items: center !important;\n }\n .align-items-xl-baseline {\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n align-items: stretch !important;\n }\n .align-content-xl-start {\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n align-content: center !important;\n }\n .align-content-xl-between {\n align-content: space-between !important;\n }\n .align-content-xl-around {\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n align-self: auto !important;\n }\n .align-self-xl-start {\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n align-self: center !important;\n }\n .align-self-xl-baseline {\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n align-self: stretch !important;\n }\n}\n\n.float-left {\n float: left !important;\n}\n\n.float-right {\n float: right !important;\n}\n\n.float-none {\n float: none !important;\n}\n\n@media (min-width: 576px) {\n .float-sm-left {\n float: left !important;\n }\n .float-sm-right {\n float: right !important;\n }\n .float-sm-none {\n float: none !important;\n }\n}\n\n@media (min-width: 768px) {\n .float-md-left {\n float: left !important;\n }\n .float-md-right {\n float: right !important;\n }\n .float-md-none {\n float: none !important;\n }\n}\n\n@media (min-width: 992px) {\n .float-lg-left {\n float: left !important;\n }\n .float-lg-right {\n float: right !important;\n }\n .float-lg-none {\n float: none !important;\n }\n}\n\n@media (min-width: 1200px) {\n .float-xl-left {\n float: left !important;\n }\n .float-xl-right {\n float: right !important;\n }\n .float-xl-none {\n float: none !important;\n }\n}\n\n.overflow-auto {\n overflow: auto !important;\n}\n\n.overflow-hidden {\n overflow: hidden !important;\n}\n\n.position-static {\n position: static !important;\n}\n\n.position-relative {\n position: relative !important;\n}\n\n.position-absolute {\n position: absolute !important;\n}\n\n.position-fixed {\n position: fixed !important;\n}\n\n.position-sticky {\n position: sticky !important;\n}\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1030;\n}\n\n@supports (position: sticky) {\n .sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n}\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal;\n}\n\n.shadow-sm {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;\n}\n\n.shadow {\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;\n}\n\n.shadow-lg {\n box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;\n}\n\n.shadow-none {\n box-shadow: none !important;\n}\n\n.w-25 {\n width: 25% !important;\n}\n\n.w-50 {\n width: 50% !important;\n}\n\n.w-75 {\n width: 75% !important;\n}\n\n.w-100 {\n width: 100% !important;\n}\n\n.w-auto {\n width: auto !important;\n}\n\n.h-25 {\n height: 25% !important;\n}\n\n.h-50 {\n height: 50% !important;\n}\n\n.h-75 {\n height: 75% !important;\n}\n\n.h-100 {\n height: 100% !important;\n}\n\n.h-auto {\n height: auto !important;\n}\n\n.mw-100 {\n max-width: 100% !important;\n}\n\n.mh-100 {\n max-height: 100% !important;\n}\n\n.min-vw-100 {\n min-width: 100vw !important;\n}\n\n.min-vh-100 {\n min-height: 100vh !important;\n}\n\n.vw-100 {\n width: 100vw !important;\n}\n\n.vh-100 {\n height: 100vh !important;\n}\n\n.stretched-link::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n pointer-events: auto;\n content: \"\";\n background-color: rgba(0, 0, 0, 0);\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n margin-left: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important;\n}\n\n.m-n1 {\n margin: -0.25rem !important;\n}\n\n.mt-n1,\n.my-n1 {\n margin-top: -0.25rem !important;\n}\n\n.mr-n1,\n.mx-n1 {\n margin-right: -0.25rem !important;\n}\n\n.mb-n1,\n.my-n1 {\n margin-bottom: -0.25rem !important;\n}\n\n.ml-n1,\n.mx-n1 {\n margin-left: -0.25rem !important;\n}\n\n.m-n2 {\n margin: -0.5rem !important;\n}\n\n.mt-n2,\n.my-n2 {\n margin-top: -0.5rem !important;\n}\n\n.mr-n2,\n.mx-n2 {\n margin-right: -0.5rem !important;\n}\n\n.mb-n2,\n.my-n2 {\n margin-bottom: -0.5rem !important;\n}\n\n.ml-n2,\n.mx-n2 {\n margin-left: -0.5rem !important;\n}\n\n.m-n3 {\n margin: -1rem !important;\n}\n\n.mt-n3,\n.my-n3 {\n margin-top: -1rem !important;\n}\n\n.mr-n3,\n.mx-n3 {\n margin-right: -1rem !important;\n}\n\n.mb-n3,\n.my-n3 {\n margin-bottom: -1rem !important;\n}\n\n.ml-n3,\n.mx-n3 {\n margin-left: -1rem !important;\n}\n\n.m-n4 {\n margin: -1.5rem !important;\n}\n\n.mt-n4,\n.my-n4 {\n margin-top: -1.5rem !important;\n}\n\n.mr-n4,\n.mx-n4 {\n margin-right: -1.5rem !important;\n}\n\n.mb-n4,\n.my-n4 {\n margin-bottom: -1.5rem !important;\n}\n\n.ml-n4,\n.mx-n4 {\n margin-left: -1.5rem !important;\n}\n\n.m-n5 {\n margin: -3rem !important;\n}\n\n.mt-n5,\n.my-n5 {\n margin-top: -3rem !important;\n}\n\n.mr-n5,\n.mx-n5 {\n margin-right: -3rem !important;\n}\n\n.mb-n5,\n.my-n5 {\n margin-bottom: -3rem !important;\n}\n\n.ml-n5,\n.mx-n5 {\n margin-left: -3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 !important;\n }\n .mt-sm-0,\n .my-sm-0 {\n margin-top: 0 !important;\n }\n .mr-sm-0,\n .mx-sm-0 {\n margin-right: 0 !important;\n }\n .mb-sm-0,\n .my-sm-0 {\n margin-bottom: 0 !important;\n }\n .ml-sm-0,\n .mx-sm-0 {\n margin-left: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .mt-sm-1,\n .my-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mr-sm-1,\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n }\n .mb-sm-1,\n .my-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-sm-1,\n .mx-sm-1 {\n margin-left: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .mt-sm-2,\n .my-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mr-sm-2,\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n }\n .mb-sm-2,\n .my-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-sm-2,\n .mx-sm-2 {\n margin-left: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .mt-sm-3,\n .my-sm-3 {\n margin-top: 1rem !important;\n }\n .mr-sm-3,\n .mx-sm-3 {\n margin-right: 1rem !important;\n }\n .mb-sm-3,\n .my-sm-3 {\n margin-bottom: 1rem !important;\n }\n .ml-sm-3,\n .mx-sm-3 {\n margin-left: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .mt-sm-4,\n .my-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mr-sm-4,\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n }\n .mb-sm-4,\n .my-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-sm-4,\n .mx-sm-4 {\n margin-left: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .mt-sm-5,\n .my-sm-5 {\n margin-top: 3rem !important;\n }\n .mr-sm-5,\n .mx-sm-5 {\n margin-right: 3rem !important;\n }\n .mb-sm-5,\n .my-sm-5 {\n margin-bottom: 3rem !important;\n }\n .ml-sm-5,\n .mx-sm-5 {\n margin-left: 3rem !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .pt-sm-0,\n .py-sm-0 {\n padding-top: 0 !important;\n }\n .pr-sm-0,\n .px-sm-0 {\n padding-right: 0 !important;\n }\n .pb-sm-0,\n .py-sm-0 {\n padding-bottom: 0 !important;\n }\n .pl-sm-0,\n .px-sm-0 {\n padding-left: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .pt-sm-1,\n .py-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pr-sm-1,\n .px-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pb-sm-1,\n .py-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-sm-1,\n .px-sm-1 {\n padding-left: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .pt-sm-2,\n .py-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pr-sm-2,\n .px-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pb-sm-2,\n .py-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-sm-2,\n .px-sm-2 {\n padding-left: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .pt-sm-3,\n .py-sm-3 {\n padding-top: 1rem !important;\n }\n .pr-sm-3,\n .px-sm-3 {\n padding-right: 1rem !important;\n }\n .pb-sm-3,\n .py-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pl-sm-3,\n .px-sm-3 {\n padding-left: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .pt-sm-4,\n .py-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pr-sm-4,\n .px-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pb-sm-4,\n .py-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-sm-4,\n .px-sm-4 {\n padding-left: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .pt-sm-5,\n .py-sm-5 {\n padding-top: 3rem !important;\n }\n .pr-sm-5,\n .px-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-5,\n .py-sm-5 {\n padding-bottom: 3rem !important;\n }\n .pl-sm-5,\n .px-sm-5 {\n padding-left: 3rem !important;\n }\n .m-sm-n1 {\n margin: -0.25rem !important;\n }\n .mt-sm-n1,\n .my-sm-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-sm-n1,\n .mx-sm-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-sm-n1,\n .my-sm-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-sm-n1,\n .mx-sm-n1 {\n margin-left: -0.25rem !important;\n }\n .m-sm-n2 {\n margin: -0.5rem !important;\n }\n .mt-sm-n2,\n .my-sm-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-sm-n2,\n .mx-sm-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-sm-n2,\n .my-sm-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-sm-n2,\n .mx-sm-n2 {\n margin-left: -0.5rem !important;\n }\n .m-sm-n3 {\n margin: -1rem !important;\n }\n .mt-sm-n3,\n .my-sm-n3 {\n margin-top: -1rem !important;\n }\n .mr-sm-n3,\n .mx-sm-n3 {\n margin-right: -1rem !important;\n }\n .mb-sm-n3,\n .my-sm-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-sm-n3,\n .mx-sm-n3 {\n margin-left: -1rem !important;\n }\n .m-sm-n4 {\n margin: -1.5rem !important;\n }\n .mt-sm-n4,\n .my-sm-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-sm-n4,\n .mx-sm-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-sm-n4,\n .my-sm-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-sm-n4,\n .mx-sm-n4 {\n margin-left: -1.5rem !important;\n }\n .m-sm-n5 {\n margin: -3rem !important;\n }\n .mt-sm-n5,\n .my-sm-n5 {\n margin-top: -3rem !important;\n }\n .mr-sm-n5,\n .mx-sm-n5 {\n margin-right: -3rem !important;\n }\n .mb-sm-n5,\n .my-sm-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-sm-n5,\n .mx-sm-n5 {\n margin-left: -3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mt-sm-auto,\n .my-sm-auto {\n margin-top: auto !important;\n }\n .mr-sm-auto,\n .mx-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-auto,\n .my-sm-auto {\n margin-bottom: auto !important;\n }\n .ml-sm-auto,\n .mx-sm-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 !important;\n }\n .mt-md-0,\n .my-md-0 {\n margin-top: 0 !important;\n }\n .mr-md-0,\n .mx-md-0 {\n margin-right: 0 !important;\n }\n .mb-md-0,\n .my-md-0 {\n margin-bottom: 0 !important;\n }\n .ml-md-0,\n .mx-md-0 {\n margin-left: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .mt-md-1,\n .my-md-1 {\n margin-top: 0.25rem !important;\n }\n .mr-md-1,\n .mx-md-1 {\n margin-right: 0.25rem !important;\n }\n .mb-md-1,\n .my-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-md-1,\n .mx-md-1 {\n margin-left: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .mt-md-2,\n .my-md-2 {\n margin-top: 0.5rem !important;\n }\n .mr-md-2,\n .mx-md-2 {\n margin-right: 0.5rem !important;\n }\n .mb-md-2,\n .my-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-md-2,\n .mx-md-2 {\n margin-left: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .mt-md-3,\n .my-md-3 {\n margin-top: 1rem !important;\n }\n .mr-md-3,\n .mx-md-3 {\n margin-right: 1rem !important;\n }\n .mb-md-3,\n .my-md-3 {\n margin-bottom: 1rem !important;\n }\n .ml-md-3,\n .mx-md-3 {\n margin-left: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .mt-md-4,\n .my-md-4 {\n margin-top: 1.5rem !important;\n }\n .mr-md-4,\n .mx-md-4 {\n margin-right: 1.5rem !important;\n }\n .mb-md-4,\n .my-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-md-4,\n .mx-md-4 {\n margin-left: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .mt-md-5,\n .my-md-5 {\n margin-top: 3rem !important;\n }\n .mr-md-5,\n .mx-md-5 {\n margin-right: 3rem !important;\n }\n .mb-md-5,\n .my-md-5 {\n margin-bottom: 3rem !important;\n }\n .ml-md-5,\n .mx-md-5 {\n margin-left: 3rem !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .pt-md-0,\n .py-md-0 {\n padding-top: 0 !important;\n }\n .pr-md-0,\n .px-md-0 {\n padding-right: 0 !important;\n }\n .pb-md-0,\n .py-md-0 {\n padding-bottom: 0 !important;\n }\n .pl-md-0,\n .px-md-0 {\n padding-left: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .pt-md-1,\n .py-md-1 {\n padding-top: 0.25rem !important;\n }\n .pr-md-1,\n .px-md-1 {\n padding-right: 0.25rem !important;\n }\n .pb-md-1,\n .py-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-md-1,\n .px-md-1 {\n padding-left: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .pt-md-2,\n .py-md-2 {\n padding-top: 0.5rem !important;\n }\n .pr-md-2,\n .px-md-2 {\n padding-right: 0.5rem !important;\n }\n .pb-md-2,\n .py-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-md-2,\n .px-md-2 {\n padding-left: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .pt-md-3,\n .py-md-3 {\n padding-top: 1rem !important;\n }\n .pr-md-3,\n .px-md-3 {\n padding-right: 1rem !important;\n }\n .pb-md-3,\n .py-md-3 {\n padding-bottom: 1rem !important;\n }\n .pl-md-3,\n .px-md-3 {\n padding-left: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .pt-md-4,\n .py-md-4 {\n padding-top: 1.5rem !important;\n }\n .pr-md-4,\n .px-md-4 {\n padding-right: 1.5rem !important;\n }\n .pb-md-4,\n .py-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-md-4,\n .px-md-4 {\n padding-left: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .pt-md-5,\n .py-md-5 {\n padding-top: 3rem !important;\n }\n .pr-md-5,\n .px-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-5,\n .py-md-5 {\n padding-bottom: 3rem !important;\n }\n .pl-md-5,\n .px-md-5 {\n padding-left: 3rem !important;\n }\n .m-md-n1 {\n margin: -0.25rem !important;\n }\n .mt-md-n1,\n .my-md-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-md-n1,\n .mx-md-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-md-n1,\n .my-md-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-md-n1,\n .mx-md-n1 {\n margin-left: -0.25rem !important;\n }\n .m-md-n2 {\n margin: -0.5rem !important;\n }\n .mt-md-n2,\n .my-md-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-md-n2,\n .mx-md-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-md-n2,\n .my-md-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-md-n2,\n .mx-md-n2 {\n margin-left: -0.5rem !important;\n }\n .m-md-n3 {\n margin: -1rem !important;\n }\n .mt-md-n3,\n .my-md-n3 {\n margin-top: -1rem !important;\n }\n .mr-md-n3,\n .mx-md-n3 {\n margin-right: -1rem !important;\n }\n .mb-md-n3,\n .my-md-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-md-n3,\n .mx-md-n3 {\n margin-left: -1rem !important;\n }\n .m-md-n4 {\n margin: -1.5rem !important;\n }\n .mt-md-n4,\n .my-md-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-md-n4,\n .mx-md-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-md-n4,\n .my-md-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-md-n4,\n .mx-md-n4 {\n margin-left: -1.5rem !important;\n }\n .m-md-n5 {\n margin: -3rem !important;\n }\n .mt-md-n5,\n .my-md-n5 {\n margin-top: -3rem !important;\n }\n .mr-md-n5,\n .mx-md-n5 {\n margin-right: -3rem !important;\n }\n .mb-md-n5,\n .my-md-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-md-n5,\n .mx-md-n5 {\n margin-left: -3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mt-md-auto,\n .my-md-auto {\n margin-top: auto !important;\n }\n .mr-md-auto,\n .mx-md-auto {\n margin-right: auto !important;\n }\n .mb-md-auto,\n .my-md-auto {\n margin-bottom: auto !important;\n }\n .ml-md-auto,\n .mx-md-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 !important;\n }\n .mt-lg-0,\n .my-lg-0 {\n margin-top: 0 !important;\n }\n .mr-lg-0,\n .mx-lg-0 {\n margin-right: 0 !important;\n }\n .mb-lg-0,\n .my-lg-0 {\n margin-bottom: 0 !important;\n }\n .ml-lg-0,\n .mx-lg-0 {\n margin-left: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .mt-lg-1,\n .my-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mr-lg-1,\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n }\n .mb-lg-1,\n .my-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-lg-1,\n .mx-lg-1 {\n margin-left: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .mt-lg-2,\n .my-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mr-lg-2,\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n }\n .mb-lg-2,\n .my-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-lg-2,\n .mx-lg-2 {\n margin-left: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .mt-lg-3,\n .my-lg-3 {\n margin-top: 1rem !important;\n }\n .mr-lg-3,\n .mx-lg-3 {\n margin-right: 1rem !important;\n }\n .mb-lg-3,\n .my-lg-3 {\n margin-bottom: 1rem !important;\n }\n .ml-lg-3,\n .mx-lg-3 {\n margin-left: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .mt-lg-4,\n .my-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mr-lg-4,\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n }\n .mb-lg-4,\n .my-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-lg-4,\n .mx-lg-4 {\n margin-left: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .mt-lg-5,\n .my-lg-5 {\n margin-top: 3rem !important;\n }\n .mr-lg-5,\n .mx-lg-5 {\n margin-right: 3rem !important;\n }\n .mb-lg-5,\n .my-lg-5 {\n margin-bottom: 3rem !important;\n }\n .ml-lg-5,\n .mx-lg-5 {\n margin-left: 3rem !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .pt-lg-0,\n .py-lg-0 {\n padding-top: 0 !important;\n }\n .pr-lg-0,\n .px-lg-0 {\n padding-right: 0 !important;\n }\n .pb-lg-0,\n .py-lg-0 {\n padding-bottom: 0 !important;\n }\n .pl-lg-0,\n .px-lg-0 {\n padding-left: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .pt-lg-1,\n .py-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pr-lg-1,\n .px-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pb-lg-1,\n .py-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-lg-1,\n .px-lg-1 {\n padding-left: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .pt-lg-2,\n .py-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pr-lg-2,\n .px-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pb-lg-2,\n .py-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-lg-2,\n .px-lg-2 {\n padding-left: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .pt-lg-3,\n .py-lg-3 {\n padding-top: 1rem !important;\n }\n .pr-lg-3,\n .px-lg-3 {\n padding-right: 1rem !important;\n }\n .pb-lg-3,\n .py-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pl-lg-3,\n .px-lg-3 {\n padding-left: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .pt-lg-4,\n .py-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pr-lg-4,\n .px-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pb-lg-4,\n .py-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-lg-4,\n .px-lg-4 {\n padding-left: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .pt-lg-5,\n .py-lg-5 {\n padding-top: 3rem !important;\n }\n .pr-lg-5,\n .px-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-5,\n .py-lg-5 {\n padding-bottom: 3rem !important;\n }\n .pl-lg-5,\n .px-lg-5 {\n padding-left: 3rem !important;\n }\n .m-lg-n1 {\n margin: -0.25rem !important;\n }\n .mt-lg-n1,\n .my-lg-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-lg-n1,\n .mx-lg-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-lg-n1,\n .my-lg-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-lg-n1,\n .mx-lg-n1 {\n margin-left: -0.25rem !important;\n }\n .m-lg-n2 {\n margin: -0.5rem !important;\n }\n .mt-lg-n2,\n .my-lg-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-lg-n2,\n .mx-lg-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-lg-n2,\n .my-lg-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-lg-n2,\n .mx-lg-n2 {\n margin-left: -0.5rem !important;\n }\n .m-lg-n3 {\n margin: -1rem !important;\n }\n .mt-lg-n3,\n .my-lg-n3 {\n margin-top: -1rem !important;\n }\n .mr-lg-n3,\n .mx-lg-n3 {\n margin-right: -1rem !important;\n }\n .mb-lg-n3,\n .my-lg-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-lg-n3,\n .mx-lg-n3 {\n margin-left: -1rem !important;\n }\n .m-lg-n4 {\n margin: -1.5rem !important;\n }\n .mt-lg-n4,\n .my-lg-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-lg-n4,\n .mx-lg-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-lg-n4,\n .my-lg-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-lg-n4,\n .mx-lg-n4 {\n margin-left: -1.5rem !important;\n }\n .m-lg-n5 {\n margin: -3rem !important;\n }\n .mt-lg-n5,\n .my-lg-n5 {\n margin-top: -3rem !important;\n }\n .mr-lg-n5,\n .mx-lg-n5 {\n margin-right: -3rem !important;\n }\n .mb-lg-n5,\n .my-lg-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-lg-n5,\n .mx-lg-n5 {\n margin-left: -3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mt-lg-auto,\n .my-lg-auto {\n margin-top: auto !important;\n }\n .mr-lg-auto,\n .mx-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-auto,\n .my-lg-auto {\n margin-bottom: auto !important;\n }\n .ml-lg-auto,\n .mx-lg-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 !important;\n }\n .mt-xl-0,\n .my-xl-0 {\n margin-top: 0 !important;\n }\n .mr-xl-0,\n .mx-xl-0 {\n margin-right: 0 !important;\n }\n .mb-xl-0,\n .my-xl-0 {\n margin-bottom: 0 !important;\n }\n .ml-xl-0,\n .mx-xl-0 {\n margin-left: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .mt-xl-1,\n .my-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mr-xl-1,\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n }\n .mb-xl-1,\n .my-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-xl-1,\n .mx-xl-1 {\n margin-left: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .mt-xl-2,\n .my-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mr-xl-2,\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n }\n .mb-xl-2,\n .my-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-xl-2,\n .mx-xl-2 {\n margin-left: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .mt-xl-3,\n .my-xl-3 {\n margin-top: 1rem !important;\n }\n .mr-xl-3,\n .mx-xl-3 {\n margin-right: 1rem !important;\n }\n .mb-xl-3,\n .my-xl-3 {\n margin-bottom: 1rem !important;\n }\n .ml-xl-3,\n .mx-xl-3 {\n margin-left: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .mt-xl-4,\n .my-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mr-xl-4,\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n }\n .mb-xl-4,\n .my-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-xl-4,\n .mx-xl-4 {\n margin-left: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .mt-xl-5,\n .my-xl-5 {\n margin-top: 3rem !important;\n }\n .mr-xl-5,\n .mx-xl-5 {\n margin-right: 3rem !important;\n }\n .mb-xl-5,\n .my-xl-5 {\n margin-bottom: 3rem !important;\n }\n .ml-xl-5,\n .mx-xl-5 {\n margin-left: 3rem !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .pt-xl-0,\n .py-xl-0 {\n padding-top: 0 !important;\n }\n .pr-xl-0,\n .px-xl-0 {\n padding-right: 0 !important;\n }\n .pb-xl-0,\n .py-xl-0 {\n padding-bottom: 0 !important;\n }\n .pl-xl-0,\n .px-xl-0 {\n padding-left: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .pt-xl-1,\n .py-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pr-xl-1,\n .px-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pb-xl-1,\n .py-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-xl-1,\n .px-xl-1 {\n padding-left: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .pt-xl-2,\n .py-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pr-xl-2,\n .px-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pb-xl-2,\n .py-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-xl-2,\n .px-xl-2 {\n padding-left: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .pt-xl-3,\n .py-xl-3 {\n padding-top: 1rem !important;\n }\n .pr-xl-3,\n .px-xl-3 {\n padding-right: 1rem !important;\n }\n .pb-xl-3,\n .py-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pl-xl-3,\n .px-xl-3 {\n padding-left: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .pt-xl-4,\n .py-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pr-xl-4,\n .px-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pb-xl-4,\n .py-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-xl-4,\n .px-xl-4 {\n padding-left: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .pt-xl-5,\n .py-xl-5 {\n padding-top: 3rem !important;\n }\n .pr-xl-5,\n .px-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-5,\n .py-xl-5 {\n padding-bottom: 3rem !important;\n }\n .pl-xl-5,\n .px-xl-5 {\n padding-left: 3rem !important;\n }\n .m-xl-n1 {\n margin: -0.25rem !important;\n }\n .mt-xl-n1,\n .my-xl-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-xl-n1,\n .mx-xl-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-xl-n1,\n .my-xl-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-xl-n1,\n .mx-xl-n1 {\n margin-left: -0.25rem !important;\n }\n .m-xl-n2 {\n margin: -0.5rem !important;\n }\n .mt-xl-n2,\n .my-xl-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-xl-n2,\n .mx-xl-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-xl-n2,\n .my-xl-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-xl-n2,\n .mx-xl-n2 {\n margin-left: -0.5rem !important;\n }\n .m-xl-n3 {\n margin: -1rem !important;\n }\n .mt-xl-n3,\n .my-xl-n3 {\n margin-top: -1rem !important;\n }\n .mr-xl-n3,\n .mx-xl-n3 {\n margin-right: -1rem !important;\n }\n .mb-xl-n3,\n .my-xl-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-xl-n3,\n .mx-xl-n3 {\n margin-left: -1rem !important;\n }\n .m-xl-n4 {\n margin: -1.5rem !important;\n }\n .mt-xl-n4,\n .my-xl-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-xl-n4,\n .mx-xl-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-xl-n4,\n .my-xl-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-xl-n4,\n .mx-xl-n4 {\n margin-left: -1.5rem !important;\n }\n .m-xl-n5 {\n margin: -3rem !important;\n }\n .mt-xl-n5,\n .my-xl-n5 {\n margin-top: -3rem !important;\n }\n .mr-xl-n5,\n .mx-xl-n5 {\n margin-right: -3rem !important;\n }\n .mb-xl-n5,\n .my-xl-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-xl-n5,\n .mx-xl-n5 {\n margin-left: -3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mt-xl-auto,\n .my-xl-auto {\n margin-top: auto !important;\n }\n .mr-xl-auto,\n .mx-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-auto,\n .my-xl-auto {\n margin-bottom: auto !important;\n }\n .ml-xl-auto,\n .mx-xl-auto {\n margin-left: auto !important;\n }\n}\n\n.text-monospace {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !important;\n}\n\n.text-justify {\n text-align: justify !important;\n}\n\n.text-wrap {\n white-space: normal !important;\n}\n\n.text-nowrap {\n white-space: nowrap !important;\n}\n\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.text-left {\n text-align: left !important;\n}\n\n.text-right {\n text-align: right !important;\n}\n\n.text-center {\n text-align: center !important;\n}\n\n@media (min-width: 576px) {\n .text-sm-left {\n text-align: left !important;\n }\n .text-sm-right {\n text-align: right !important;\n }\n .text-sm-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 768px) {\n .text-md-left {\n text-align: left !important;\n }\n .text-md-right {\n text-align: right !important;\n }\n .text-md-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 992px) {\n .text-lg-left {\n text-align: left !important;\n }\n .text-lg-right {\n text-align: right !important;\n }\n .text-lg-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 1200px) {\n .text-xl-left {\n text-align: left !important;\n }\n .text-xl-right {\n text-align: right !important;\n }\n .text-xl-center {\n text-align: center !important;\n }\n}\n\n.text-lowercase {\n text-transform: lowercase !important;\n}\n\n.text-uppercase {\n text-transform: uppercase !important;\n}\n\n.text-capitalize {\n text-transform: capitalize !important;\n}\n\n.font-weight-light {\n font-weight: 300 !important;\n}\n\n.font-weight-lighter {\n font-weight: lighter !important;\n}\n\n.font-weight-normal {\n font-weight: 400 !important;\n}\n\n.font-weight-bold {\n font-weight: 700 !important;\n}\n\n.font-weight-bolder {\n font-weight: bolder !important;\n}\n\n.font-italic {\n font-style: italic !important;\n}\n\n.text-white {\n color: #fff !important;\n}\n\n.text-primary {\n color: #007bff !important;\n}\n\na.text-primary:hover, a.text-primary:focus {\n color: #0056b3 !important;\n}\n\n.text-secondary {\n color: #6c757d !important;\n}\n\na.text-secondary:hover, a.text-secondary:focus {\n color: #494f54 !important;\n}\n\n.text-success {\n color: #28a745 !important;\n}\n\na.text-success:hover, a.text-success:focus {\n color: #19692c !important;\n}\n\n.text-info {\n color: #17a2b8 !important;\n}\n\na.text-info:hover, a.text-info:focus {\n color: #0f6674 !important;\n}\n\n.text-warning {\n color: #ffc107 !important;\n}\n\na.text-warning:hover, a.text-warning:focus {\n color: #ba8b00 !important;\n}\n\n.text-danger {\n color: #dc3545 !important;\n}\n\na.text-danger:hover, a.text-danger:focus {\n color: #a71d2a !important;\n}\n\n.text-light {\n color: #f8f9fa !important;\n}\n\na.text-light:hover, a.text-light:focus {\n color: #cbd3da !important;\n}\n\n.text-dark {\n color: #343a40 !important;\n}\n\na.text-dark:hover, a.text-dark:focus {\n color: #121416 !important;\n}\n\n.text-body {\n color: #212529 !important;\n}\n\n.text-muted {\n color: #6c757d !important;\n}\n\n.text-black-50 {\n color: rgba(0, 0, 0, 0.5) !important;\n}\n\n.text-white-50 {\n color: rgba(255, 255, 255, 0.5) !important;\n}\n\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n\n.text-decoration-none {\n text-decoration: none !important;\n}\n\n.text-break {\n word-break: break-word !important;\n overflow-wrap: break-word !important;\n}\n\n.text-reset {\n color: inherit !important;\n}\n\n.visible {\n visibility: visible !important;\n}\n\n.invisible {\n visibility: hidden !important;\n}\n\n@media print {\n *,\n *::before,\n *::after {\n text-shadow: none !important;\n box-shadow: none !important;\n }\n a:not(.btn) {\n text-decoration: underline;\n }\n abbr[title]::after {\n content: \" (\" attr(title) \")\";\n }\n pre {\n white-space: pre-wrap !important;\n }\n pre,\n blockquote {\n border: 1px solid #adb5bd;\n page-break-inside: avoid;\n }\n thead {\n display: table-header-group;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n @page {\n size: a3;\n }\n body {\n min-width: 992px !important;\n }\n .container {\n min-width: 992px !important;\n }\n .navbar {\n display: none;\n }\n .badge {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #dee2e6 !important;\n }\n .table-dark {\n color: inherit;\n }\n .table-dark th,\n .table-dark td,\n .table-dark thead th,\n .table-dark tbody + tbody {\n border-color: #dee2e6;\n }\n .table .thead-dark th {\n color: inherit;\n border-color: #dee2e6;\n }\n}\n\n/*# sourceMappingURL=bootstrap.css.map */","// Hover mixin and `$enable-hover-media-query` are deprecated.\n//\n// Originally added during our alphas and maintained during betas, this mixin was\n// designed to prevent `:hover` stickiness on iOS-an issue where hover styles\n// would persist after initial touch.\n//\n// For backward compatibility, we've kept these mixins and updated them to\n// always return their regular pseudo-classes instead of a shimmed media query.\n//\n// Issue: https://github.com/twbs/bootstrap/issues/25195\n\n@mixin hover {\n &:hover { @content; }\n}\n\n@mixin hover-focus {\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin plain-hover-focus {\n &,\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin hover-focus-active {\n &:hover,\n &:focus,\n &:active {\n @content;\n }\n}\n","// stylelint-disable declaration-no-important, selector-list-comma-newline-after\n\n//\n// Headings\n//\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: $headings-margin-bottom;\n font-family: $headings-font-family;\n font-weight: $headings-font-weight;\n line-height: $headings-line-height;\n color: $headings-color;\n}\n\nh1, .h1 { @include font-size($h1-font-size); }\nh2, .h2 { @include font-size($h2-font-size); }\nh3, .h3 { @include font-size($h3-font-size); }\nh4, .h4 { @include font-size($h4-font-size); }\nh5, .h5 { @include font-size($h5-font-size); }\nh6, .h6 { @include font-size($h6-font-size); }\n\n.lead {\n @include font-size($lead-font-size);\n font-weight: $lead-font-weight;\n}\n\n// Type display classes\n.display-1 {\n @include font-size($display1-size);\n font-weight: $display1-weight;\n line-height: $display-line-height;\n}\n.display-2 {\n @include font-size($display2-size);\n font-weight: $display2-weight;\n line-height: $display-line-height;\n}\n.display-3 {\n @include font-size($display3-size);\n font-weight: $display3-weight;\n line-height: $display-line-height;\n}\n.display-4 {\n @include font-size($display4-size);\n font-weight: $display4-weight;\n line-height: $display-line-height;\n}\n\n\n//\n// Horizontal rules\n//\n\nhr {\n margin-top: $hr-margin-y;\n margin-bottom: $hr-margin-y;\n border: 0;\n border-top: $hr-border-width solid $hr-border-color;\n}\n\n\n//\n// Emphasis\n//\n\nsmall,\n.small {\n @include font-size($small-font-size);\n font-weight: $font-weight-normal;\n}\n\nmark,\n.mark {\n padding: $mark-padding;\n background-color: $mark-bg;\n}\n\n\n//\n// Lists\n//\n\n.list-unstyled {\n @include list-unstyled;\n}\n\n// Inline turns list items into inline-block\n.list-inline {\n @include list-unstyled;\n}\n.list-inline-item {\n display: inline-block;\n\n &:not(:last-child) {\n margin-right: $list-inline-padding;\n }\n}\n\n\n//\n// Misc\n//\n\n// Builds on `abbr`\n.initialism {\n @include font-size(90%);\n text-transform: uppercase;\n}\n\n// Blockquotes\n.blockquote {\n margin-bottom: $spacer;\n @include font-size($blockquote-font-size);\n}\n\n.blockquote-footer {\n display: block;\n @include font-size($blockquote-small-font-size);\n color: $blockquote-small-color;\n\n &::before {\n content: \"\\2014\\00A0\"; // em dash, nbsp\n }\n}\n","// Lists\n\n// Unstyled keeps list items block level, just removes default browser padding and list-style\n@mixin list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n","// Responsive images (ensure images don't scale beyond their parents)\n//\n// This is purposefully opt-in via an explicit class rather than being the default for all ``s.\n// We previously tried the \"images are responsive by default\" approach in Bootstrap v2,\n// and abandoned it in Bootstrap v3 because it breaks lots of third-party widgets (including Google Maps)\n// which weren't expecting the images within themselves to be involuntarily resized.\n// See also https://github.com/twbs/bootstrap/issues/18178\n.img-fluid {\n @include img-fluid;\n}\n\n\n// Image thumbnails\n.img-thumbnail {\n padding: $thumbnail-padding;\n background-color: $thumbnail-bg;\n border: $thumbnail-border-width solid $thumbnail-border-color;\n @include border-radius($thumbnail-border-radius);\n @include box-shadow($thumbnail-box-shadow);\n\n // Keep them at most 100% wide\n @include img-fluid;\n}\n\n//\n// Figures\n//\n\n.figure {\n // Ensures the caption's text aligns with the image.\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: $spacer / 2;\n line-height: 1;\n}\n\n.figure-caption {\n @include font-size($figure-caption-font-size);\n color: $figure-caption-color;\n}\n","// Image Mixins\n// - Responsive image\n// - Retina image\n\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n\n@mixin img-fluid {\n // Part 1: Set a maximum relative to the parent\n max-width: 100%;\n // Part 2: Override the height to auto, otherwise images will be stretched\n // when setting a width and height attribute on the img element.\n height: auto;\n}\n\n\n// Retina image\n//\n// Short retina mixin for setting background-image and -size.\n\n@mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) {\n background-image: url($file-1x);\n\n // Autoprefixer takes care of adding -webkit-min-device-pixel-ratio and -o-min-device-pixel-ratio,\n // but doesn't convert dppx=>dpi.\n // There's no such thing as unprefixed min-device-pixel-ratio since it's nonstandard.\n // Compatibility info: https://caniuse.com/#feat=css-media-resolution\n @media only screen and (min-resolution: 192dpi), // IE9-11 don't support dppx\n only screen and (min-resolution: 2dppx) { // Standardized\n background-image: url($file-2x);\n background-size: $width-1x $height-1x;\n }\n @include deprecate(\"`img-retina()`\", \"v4.3.0\", \"v5\");\n}\n","// stylelint-disable property-blacklist\n// Single side border-radius\n\n@mixin border-radius($radius: $border-radius, $fallback-border-radius: false) {\n @if $enable-rounded {\n border-radius: $radius;\n }\n @else if $fallback-border-radius != false {\n border-radius: $fallback-border-radius;\n }\n}\n\n@mixin border-top-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: $radius;\n border-top-right-radius: $radius;\n }\n}\n\n@mixin border-right-radius($radius) {\n @if $enable-rounded {\n border-top-right-radius: $radius;\n border-bottom-right-radius: $radius;\n }\n}\n\n@mixin border-bottom-radius($radius) {\n @if $enable-rounded {\n border-bottom-right-radius: $radius;\n border-bottom-left-radius: $radius;\n }\n}\n\n@mixin border-left-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: $radius;\n border-bottom-left-radius: $radius;\n }\n}\n\n@mixin border-top-left-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: $radius;\n }\n}\n\n@mixin border-top-right-radius($radius) {\n @if $enable-rounded {\n border-top-right-radius: $radius;\n }\n}\n\n@mixin border-bottom-right-radius($radius) {\n @if $enable-rounded {\n border-bottom-right-radius: $radius;\n }\n}\n\n@mixin border-bottom-left-radius($radius) {\n @if $enable-rounded {\n border-bottom-left-radius: $radius;\n }\n}\n","// Inline code\ncode {\n @include font-size($code-font-size);\n color: $code-color;\n word-break: break-word;\n\n // Streamline the style when inside anchors to avoid broken underline and more\n a > & {\n color: inherit;\n }\n}\n\n// User input typically entered via keyboard\nkbd {\n padding: $kbd-padding-y $kbd-padding-x;\n @include font-size($kbd-font-size);\n color: $kbd-color;\n background-color: $kbd-bg;\n @include border-radius($border-radius-sm);\n @include box-shadow($kbd-box-shadow);\n\n kbd {\n padding: 0;\n @include font-size(100%);\n font-weight: $nested-kbd-font-weight;\n @include box-shadow(none);\n }\n}\n\n// Blocks of code\npre {\n display: block;\n @include font-size($code-font-size);\n color: $pre-color;\n\n // Account for some code outputs that place code tags in pre tags\n code {\n @include font-size(inherit);\n color: inherit;\n word-break: normal;\n }\n}\n\n// Enable scrollable blocks of code\n.pre-scrollable {\n max-height: $pre-scrollable-max-height;\n overflow-y: scroll;\n}\n","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-grid-classes {\n .container {\n @include make-container();\n @include make-container-max-widths();\n }\n}\n\n// Fluid container\n//\n// Utilizes the mixin meant for fixed width containers, but with 100% width for\n// fluid, full width layouts.\n\n@if $enable-grid-classes {\n .container-fluid {\n @include make-container();\n }\n}\n\n// Row\n//\n// Rows contain and clear the floats of your columns.\n\n@if $enable-grid-classes {\n .row {\n @include make-row();\n }\n\n // Remove the negative margin from default .row, then the horizontal padding\n // from all immediate children columns (to prevent runaway style inheritance).\n .no-gutters {\n margin-right: 0;\n margin-left: 0;\n\n > .col,\n > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n }\n }\n}\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n @include make-grid-columns();\n}\n","/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-container($gutter: $grid-gutter-width) {\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n margin-right: auto;\n margin-left: auto;\n}\n\n\n// For each breakpoint, define the maximum width of the container in a media query\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\n @each $breakpoint, $container-max-width in $max-widths {\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n max-width: $container-max-width;\n }\n }\n}\n\n@mixin make-row($gutter: $grid-gutter-width) {\n display: flex;\n flex-wrap: wrap;\n margin-right: -$gutter / 2;\n margin-left: -$gutter / 2;\n}\n\n@mixin make-col-ready($gutter: $grid-gutter-width) {\n position: relative;\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we use `flex` values\n // later on to override this initial width.\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n flex: 0 0 percentage($size / $columns);\n // Add a `max-width` to ensure content within each column does not blow out\n // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\n // do not appear to require this.\n max-width: percentage($size / $columns);\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: $size / $columns;\n margin-left: if($num == 0, 0, percentage($num));\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @return if($n != null and $n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.02px\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $next: breakpoint-next($name, $breakpoints);\n @return if($next, breakpoint-min($next, $breakpoints) - .02, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $max: breakpoint-max($name, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($name, $breakpoints) {\n @content;\n }\n }\n}\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n // Common properties for all breakpoints\n %grid-column {\n position: relative;\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n }\n\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n // Allow columns to stretch full width below their breakpoints\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @extend %grid-column;\n }\n }\n .col#{$infix},\n .col#{$infix}-auto {\n @extend %grid-column;\n }\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col#{$infix}-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; // Reset earlier grid tiers\n }\n\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @include make-col($i, $columns);\n }\n }\n\n .order#{$infix}-first { order: -1; }\n\n .order#{$infix}-last { order: $columns + 1; }\n\n @for $i from 0 through $columns {\n .order#{$infix}-#{$i} { order: $i; }\n }\n\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .offset#{$infix}-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n }\n}\n","//\n// Basic Bootstrap table\n//\n\n.table {\n width: 100%;\n margin-bottom: $spacer;\n color: $table-color;\n background-color: $table-bg; // Reset for nesting within parents with `background-color`.\n\n th,\n td {\n padding: $table-cell-padding;\n vertical-align: top;\n border-top: $table-border-width solid $table-border-color;\n }\n\n thead th {\n vertical-align: bottom;\n border-bottom: (2 * $table-border-width) solid $table-border-color;\n }\n\n tbody + tbody {\n border-top: (2 * $table-border-width) solid $table-border-color;\n }\n}\n\n\n//\n// Condensed table w/ half padding\n//\n\n.table-sm {\n th,\n td {\n padding: $table-cell-padding-sm;\n }\n}\n\n\n// Border versions\n//\n// Add or remove borders all around the table and between all the columns.\n\n.table-bordered {\n border: $table-border-width solid $table-border-color;\n\n th,\n td {\n border: $table-border-width solid $table-border-color;\n }\n\n thead {\n th,\n td {\n border-bottom-width: 2 * $table-border-width;\n }\n }\n}\n\n.table-borderless {\n th,\n td,\n thead th,\n tbody + tbody {\n border: 0;\n }\n}\n\n// Zebra-striping\n//\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n.table-striped {\n tbody tr:nth-of-type(#{$table-striped-order}) {\n background-color: $table-accent-bg;\n }\n}\n\n\n// Hover effect\n//\n// Placed here since it has to come after the potential zebra striping\n\n.table-hover {\n tbody tr {\n @include hover {\n color: $table-hover-color;\n background-color: $table-hover-bg;\n }\n }\n}\n\n\n// Table backgrounds\n//\n// Exact selectors below required to override `.table-striped` and prevent\n// inheritance to nested tables.\n\n@each $color, $value in $theme-colors {\n @include table-row-variant($color, theme-color-level($color, $table-bg-level), theme-color-level($color, $table-border-level));\n}\n\n@include table-row-variant(active, $table-active-bg);\n\n\n// Dark styles\n//\n// Same table markup, but inverted color scheme: dark background and light text.\n\n// stylelint-disable-next-line no-duplicate-selectors\n.table {\n .thead-dark {\n th {\n color: $table-dark-color;\n background-color: $table-dark-bg;\n border-color: $table-dark-border-color;\n }\n }\n\n .thead-light {\n th {\n color: $table-head-color;\n background-color: $table-head-bg;\n border-color: $table-border-color;\n }\n }\n}\n\n.table-dark {\n color: $table-dark-color;\n background-color: $table-dark-bg;\n\n th,\n td,\n thead th {\n border-color: $table-dark-border-color;\n }\n\n &.table-bordered {\n border: 0;\n }\n\n &.table-striped {\n tbody tr:nth-of-type(odd) {\n background-color: $table-dark-accent-bg;\n }\n }\n\n &.table-hover {\n tbody tr {\n @include hover {\n color: $table-dark-hover-color;\n background-color: $table-dark-hover-bg;\n }\n }\n }\n}\n\n\n// Responsive tables\n//\n// Generate series of `.table-responsive-*` classes for configuring the screen\n// size of where your table will overflow.\n\n.table-responsive {\n @each $breakpoint in map-keys($grid-breakpoints) {\n $next: breakpoint-next($breakpoint, $grid-breakpoints);\n $infix: breakpoint-infix($next, $grid-breakpoints);\n\n &#{$infix} {\n @include media-breakpoint-down($breakpoint) {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n\n // Prevent double border on horizontal scroll due to use of `display: block;`\n > .table-bordered {\n border: 0;\n }\n }\n }\n }\n}\n","// Tables\n\n@mixin table-row-variant($state, $background, $border: null) {\n // Exact selectors below required to override `.table-striped` and prevent\n // inheritance to nested tables.\n .table-#{$state} {\n &,\n > th,\n > td {\n background-color: $background;\n }\n\n @if $border != null {\n th,\n td,\n thead th,\n tbody + tbody {\n border-color: $border;\n }\n }\n }\n\n // Hover states for `.table-hover`\n // Note: this is not available for cells or rows within `thead` or `tfoot`.\n .table-hover {\n $hover-background: darken($background, 5%);\n\n .table-#{$state} {\n @include hover {\n background-color: $hover-background;\n\n > td,\n > th {\n background-color: $hover-background;\n }\n }\n }\n }\n}\n","// stylelint-disable selector-no-qualifying-type\n\n//\n// Textual form controls\n//\n\n.form-control {\n display: block;\n width: 100%;\n height: $input-height;\n padding: $input-padding-y $input-padding-x;\n font-family: $input-font-family;\n @include font-size($input-font-size);\n font-weight: $input-font-weight;\n line-height: $input-line-height;\n color: $input-color;\n background-color: $input-bg;\n background-clip: padding-box;\n border: $input-border-width solid $input-border-color;\n\n // Note: This has no effect on `s in CSS.\n @include border-radius($input-border-radius, 0);\n\n @include box-shadow($input-box-shadow);\n @include transition($input-transition);\n\n // Unstyle the caret on ` receives focus\n // in IE and (under certain conditions) Edge, as it looks bad and cannot be made to\n // match the appearance of the native widget.\n // See https://github.com/twbs/bootstrap/issues/19398.\n color: $input-color;\n background-color: $input-bg;\n }\n}\n\n// Make file inputs better match text inputs by forcing them to new lines.\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n\n\n//\n// Labels\n//\n\n// For use with horizontal and inline forms, when you need the label (or legend)\n// text to align with the form controls.\n.col-form-label {\n padding-top: calc(#{$input-padding-y} + #{$input-border-width});\n padding-bottom: calc(#{$input-padding-y} + #{$input-border-width});\n margin-bottom: 0; // Override the `
hdP1j$9PH90D=)_iaSb}Nk!0(3! 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 z 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 z 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 b*Y%P4rHyhLk_QU<{OsYN9B+^^ zA7o{h{*qy2A1-!p9r^y&4V56(P6L7DP}Su3T_!ClO%fw|O3P}=8M>H;v097a7#8%m zyV(GazT^XM-b2kRGKec!yrS60m#12D>m}~Ik`&s68{ql7e!SrhRO~tz_{DgGUA(UO zA}ZN-;7JeiZ5x2UCcu7PG(jp&1)eN)t&bn{+dq8G2U{f}eYyuU6Q)}&H15=0UtT|| zY#HDm&ID{d74Eo91>(!(G~3KF8U3Mgl5CsS^1J$H@3|-XxL~q7`64>&DC^@g+AiY> zXVaB9Q|rU*g8yVCM5|DAhtend@**R|@>DGHTpYXi7FqH78|smcO%pzyiH2f?fpIi$yOcFSSfO%e8q)o+%U1F~|+3s=@~QGDPsk!=0Z zq1;)=Z(F~HR<9N)Ew?|D8l|;D?ISUE(~a%JZQN)gt${sc&i9>U*=$daXj-H- zGx5-1*ju*a`c1Otoz#S^I_s~F@3LO`SVsg6L`?0IMHmTcMCvNUVV)#Paw_19&_A)# zTS1V#J{NdcmnBuUuZCQeOhdnu{w%B@6JQf?ZBC#`23wXj1#%c4P+J+g{$9n;ny-0R z65A4FX2*?f+l9)uXR;4#q@ZCk7`o~bq2PODvqQa@LFW#A3gf&RDe-%6c0c2&n~RJ& z*%CtKVAf08q!|^%ITJb-Ao9w2N{NeX%&V{yjJNO!5mD!>;$}1m{J~H}=K15FB3E40 z7oGB0NrM{b3=QxD5JzOMt-r8dQ6%OJnGs2R&!3@eEsbe8YuOYuAS&I^%&7h0OIfe% zz{tYLy4_9EVWvsH;~y*w+48kp8b3VTvw+`-O44Ysltb98A>b3Ko zn#?JTIa27o&mEdd2p=Arh{x?`GFbVo<9oG1Hxn}LOTmAi*P@3*-VT851rsv$_70Xd z;caXUfi4SZ#u?%9>2UzUg1j2A>7Gd!^j9GtYi(kcKEDUMZaky08{*|AS?#k3%J$u_ z9XNGnN;e_*i5I)m3#fCx9l1MI_>^4;e*fLeqgnh|*}CkAJ~*(qwjh^wvyiul;)kSX z(`_?MGZ|dnc^N-8`UlIAjmndt1b!n|Tzem?zrgDwo58VnxfyZX3e4>WXP=G$wSzS1 zOMiM1`9dEwNp_NuYz#1g2D?iD+L(CRc<(slbj5Av~kwbct<6D zz>9fcK9?xwtgh717`scT_N5qG<*BX&&`6`#7lrVp*tG2ekuOPJo1kTvdw@t^OH5Vt z5wo$g78>=4a1fcR^E6XVl+XILFGgbJU+R3e)MOk84Q;mPrZBsIkrY_KTV2`bl{Ke3 z!jMiC2l$Z2aoFv^YbhI@5JxYqhdY_}S~AbCY7%lT02w&9`?oyHr)Yo5ws}~TsMD*|Z&a7R z*&8JqEI(M78SqJQB4quy58H9^SZko?g$q|1ET1pU2FbEe*N66NgDEk7<6V(cAXM=v zR&KKr*wym=U+gy^ZdpaPC3j?D5NIiK(A8jF>-ShQD04-oS!!5?Dho&0%LU$TA%0Ua z;6W}&lNkwgrEi_o_Eh#NqL5XhP$n}RS+8x zl^ZTZ^uuvt4X52S?dw>UpC@v{zoNa?pQ(JbZ?>lD@ejxYsJO&EpYwdIuj#Q6EE$>5=SXgV{e{rv2rc`1__g0 z;y}ypzT)9BDcOEZ?n{RDFrx8ze`DKaqSfo$hJ}tdE-iG{hU_GBs@?X-SDkVkf_QStJW~Cszf<2ZdhDF>2HFt#E@`Oog z(R|~ND$w#Ht)K|jB#3b~39p-1DN7hUO3?5m%>oZHH%Y{}#aq2>V?q1LZ!Xzgw`yL2 zw@O*W$7+}G)#9}z{AJS!AI`LB`>w)hg>?-}f=RFQDpY~)R73pB=IUi!^ zbHERE3`(&YhnzIjZLPdrc%GcJA7q^aLQ(fB9!tZG{ngQHrT@L z2c0|h0+#<3IqfONcoA|qjmACssAVEggP)C}$V3=2)^@{jrk*|++%~th{_G_0-NP&-;clcb#!L3u&J+A+yEM=+YOfzx`_H9elNV%VifmkiMxh z%kc)31rF{^))&fXo*T;g4Xy>AY%=ASkbt6l&wU8{&!uGyQULj>0nkZA*21N@v5?|* zBu#1*!Z}nfKF)S}ilRpwDBE{Muu(Z}F+UGeuv@|3gUYazt(DB5+NZP-5d71j*B(Yj zh2hr%=%8@PG6n)5>x^|uMkDw+jP5QVG&>Czgd$gDcN*rYA+wP!)e6)Z&Otq*WyBGp z0AD}#NHY^pGm1}9yvAwY%BN7GL3zC?cD7__Fi~hcY$w*b3+7=S6Qa5&9apiMuIO5S zk*W{^2@5~{$85oBV3AM_TqM<8h;y3B(6;Zs7J;3PZ<9q%c<+`8Y<5(H27MVfj)G;P2^7Bf7rw|;Q#(sqT_ zhoS+G8xLl^!#HhJtx6EAmuziK`4FSylBL|Vt(yM+saI{W;##W8#MM7akH@>ImIYK` z1BP|Zh1hy?{V3;iYOZ9q9zYz=g3@lFP%x%^+)WxM1Bpl!G8Y>^%%=UyYcqbK&R_*B zWl^+Y13ha=uk__vN1awn^#+0nuoxq5lwv!y)K`5&iq|BJa+fg27{PjMBz87P_2*8+ zGULgjqnrQ*dJ2#%K-Eb`i@c97vxV8t=z~YJfH~QI1ieiPyZIY^38J zEe1&0uOkVw;1BJ5dyKLgReODudKAlssz|eizi#Wh zL?U`qNZjKuvaYrHFCS<8nY@`~pu^Zo+b6J*HH#sTF{?X{cnjNymFIiiWlkSjJdVDr zzep!Qw=bnNBvAa-YTEi}hS5?N-;a%de}-03b(3b)kQSQra2(D8=esKJe{DuAc zXP#x7Wawc-#sZu;v8AZn2*i0bEph+W$=Vsm1QT3F^MHE54qXI3Wf5u3VmeQn?;MPG;;(5&KPH>wh3ix zlfW&)_o}Qo{aq|jY7BhN4mq@Q)z{hH;}?r?X+>zSsxVkpTtK`xprDfV@l!jD;DeA6 z7N?hi;%t_Hh;&T-RnXUG(AgopF@+l#D6|#u4YN(< z>*Y65T!FV2;pS+C>dK3mKl=6oLf@H^n7-Xu+clm=D8 z=t$D^e>E+q&PPp6n<|z^-Bmh0JqQ||H3Z3gr=_{XZBxIX3rIm8FX?P#EZ1C040RL6 z-p&NomU#Nl>Vci+Pv#!vrbvmd2Rj_+d%6n{XpMg_t5{)B?(fg=J~11IZVIm?1L?Ew z=b~)ZvQ?t2nekaP*A!p2%*Xqa@pDu{e7*T`y%FT`W}2tg?N2_wCl+675RQLCGmOLN z1H;#&N1#J|Z2Z)2eF_H$-XdC^C_g)kPSdv8g3zgp3*Aajjc5GEAG9+;J&QOvLxY3c zHvetrIrNr%fQe*Vs$f06w}@I|v0{84H9)j1;<#2kU?QjREfny`Q0;V|PE1?}0;MKl z(RvDl9#!5RyqVDqKi64tl$~4_I}qp~i*-L)$H7kxaS?q)T4zKrf0E2{u4dl%bA zajmR#eE~qenq2~){78@lW-`V;MCPqJw&O!c91fyNo}UJ*lPf=$c31zn*iJS(ON?6U z?d%PRuIX$3PZ0XXHa#=zE!)}opwDgPLj*Zj#9h+NoI#RkTz`JIHD)p^XmK*}@6Q6{ zn-%~_1B;*i#W4|`+pg=~kSp62yv6aZGHxHASKD(dkjqGwwxTMi6ImV#j~}Zg=&AxbKXpBimtxx?gRZul(w?y@ z3`E7j#Qf<9yX6Tg4;Ax@+2Cx9M#hqjJAtM5mS?iyNK4}txfqF%w@o-OgSa1^84r6b zzph>uw{U>WBd!;J|3_Wsgb;g_knsh27<&GBG+dT~af1%f_``s}x%gTi;S+|s76u)_ z0i?4_%%U-b8(IrYEY$Ur5ho$H0NS;i`%VjsLkvEpWWT_e4|l~l{r%a-F_upFt$6q% z^=v`8B~$4NJAk^oPxdzIsVVs&3esi#Vw!G0gai`n*@)nJnwKEYkf+j$hHT&?~Jq^6u z;766d7_=6?>qROFxDfI3ow;l${hXl~WE6FT%C2r>8!jqwuoXuN@3>vNK16&)0hJ~D zA73Z?`=PHNZ8uI%^_QU9){@VEm%+B;B{@G>C(|+Ux!q)xx3W|1qY1X@o$%BqW=G3F zMirw}4+V>de;JPGVZ@LAloAdgP&~zj+qv$Ix2^}_ftN3Hmtizg7*8Mjy-O$K%i^~U z6}BmEqHR2R@9ZBP_+yAn+^!aEYge)_`*Y|ncdfGxGFz#1zI|0Z z`yJbz@Y{2iq$N9MdRt%9@cgB@#QbNfUf|vwg|*KnM)rs;YG^xryf9NSUtRPVoHU%- zOx+TFX?Z{Ghm*?Nqs(LAmbL$6#DH7Bd^kkgf^~Mxl=uaelAm`yHkP6au+?^z-w%RU z^qtM~bc~VX`J4-(Z^lL2ea2Djisz+Mm%8>B0_O~izXuogD*$_%?pkk}dcf1)#n0e8 z;|D=TN1FleOpAI>VOj^r$N@(W;0^%V3YoPt+=tBV&NKjI+{ zt&jPRkKQh_`Y({JC6_k+g9}PWY2p587u({9>0W<{r`|8A%hd|Q(zCtRPtb~$#)2y2 z#rhce7*+I<&;5$1QowrKz^MdQdGPci| zaF(ZL->{uV1u+Mu0D5?95KUrgP}w?u!Ur7iRTr!x+kHb)8{Xs+V@w-w$&XlVp2ZjZ zZY&aG8|FUI7iTp4Kpi+UKt9I8MPv+YNne#Z{!*d|dJlbcVlNDA>G+mvprT2VRrulU z-{b%6BRS+zZ;>yb*4z;W` z-?bSnhYPnZx;!kgd;JdYhd$QET5ZTBBH&) zPbyyaZR;p-O+S2>^IM||X)mszl!Yg^slP!!4mid(EEu7`BAZWQ5pseEL=Rx$5?1rs z#)B?}8cDt(F0ZjtbL%GqkB*7LMVJ3r@2~=_Xsi zu}AUn!1ttxE?}6OSq+m+2XbFRAIlSl&tJH^|7yIEMcU3aJ^?56hkw4z{%S7MH1Ztl z3t#@sWeyW|)y_9JerU7#>TGd$$@7&PaxB-vi2kfDvlH%avk2xqnu(k_MI`9NWMfV>};UwN+)jlq<=I0u(iX7L|eK3Se4lUSrc#4!|#^6>C8%1f7hfo369T3 z8$S{3$BKjd$)jaihc)WR}biO~s_^oJjnauiS3FN4DCnz}ct?roahAUSve z#lEtJgQb?Li(yuw4x{C>0a$w3Ff=Y*dZYx1GUh4aaTn&Gx&dwLL4NUhbE^8CZ^V- zpU?-%d+FEPT0H?=vGJ;IE6pa7@8YYR`g)5XUb8az7BD@5YtFA0QDPEHxHo?#5l&u@ zS;uPwOSU^q7n-^Q-p)2=F4zWho`mrzRx#-HAujSkr_nOTC=ixt+g76Ada*L#^V}-H zKJK{gutQUezTYZECO2lX9AXE3lLvcZN(xTgfDnl?l392PO3vw zYdr*B@03Do@|)Y>PveQy-!t3w>=#G4U{pg zksmWjV2uB>8gEdg|NLS;T!Duu+s!=0fNulWwc81aPHo8tL>4AKZp%wzH(eR`k-K#N zmDj)SHNOW9_F$~?ChVBvErz_jpl`*Ra9v1GmAjSy7B1wmN{~b$9m(}BZyTF6RDMLt z{x+p7lUm(`ekCB5T;vfPI=UPmgn4;0-MRh^7rH2V?AD`BJ*LfG4eTceJW18Ot)G@- z1(&%lAXo5`pImqWq z;QDOw_eS75mmMxVAFxSA)Fd;K{pyO->%GleBP!Q`dyn@m2uWwSF*o!ihs)8({=#J7 z5?TF#4%(ra!)2O+?$pwo-lAQ+*{rCj+C${_;~u!RmUQ?#+~oJ@5Wd^nR*UEd3E%y` zESca6K15BHmR%zdc@yZq-wt;Vl;#hv)@Wnc5r zGc5ixnlX_6F4OVSnllWUSb)1IcI9r!{uwZ{ed|liS-N1U2+fkTdP%*tILFyS<)pF< z)ixSicH*@{|4!W4`d4c3&A9fJUYUlQG@Ih6Gl!sKjF;BH`P?YObV7W>#8~`%`9F=0WG$@~~gVv-g72Zb^~p6u5?mVIn+Syy7IZo)ow*aXG4aV0E7* za~ikVT3@q#kW{`e60~14nyBb0+c@D$4ppMkhimedDTaT4rdKV4>ZDi4Q=J0y63per) zeB=rm5ZB@XbJlXc&=9DoSw8jA0~x^P)D^g!lfB<%bqH!ifiOnts<;8lvQU52kE=in z>cHwvUW$gnTwXl!g(MKh{ZdN%$O;!2p-!{2Je%SW>AZclP5kH|9cgi;qa9ZKc$0-z zgo=677GL*rG(ZLb`TvkQu^;P$5NST2nl!yGO;16e|6^RngTTMHASDAf7b4I`Xx|}M z-$hPKu>kI#Hk-`g&B~@XSvA=4(sSLU06-%qj0e)58o?)&RpuqLM$KdK zA9Hdei1Sq-6OmjT^yJsoD;1Z(37p+W5_1C9(~t~-gt3^Ky`mg71LZL(#d{^zPd~ip zr9JSg5+Pc4fWmYiXrD=1my$4=mt7>@R(yL{n@X3}$Ci=6rucH#E+3j5=m+Snagr_F z^y49`TRE_sQwP>E>p)p+wkW_oJ7(eA@&T384oh>qCr2)TP%74H>Z-UDRIuH9xyL+X z0`}FBIls>BN&|EY16U!59n)7vq5tgeqd5#XVAk7ANhBo`;d=bT(c60y17Ddb{iC)XFVeb4Da2#3sKC*Fmy zvE^c0jO~4j#Ei&>&93`?K3kw~F<8JztOK<8gm1kU;Tm^ECm7UW`jcUEXAis?oCO3y8U{xal!)*-yUBu1UbvS}3q0;?5VoE&L=sb{BYk zhc9H&^P8Gb6I?JGx%ev%@a=s`{2^4@0ynH zfeKw8ywU^8V8{4_t2Owk7Hat;te};f7q6^yQgX}8Tki|Za!n>57t*C| zCO>-x5hIyYZ>W;`dif7`scRdxF9TCS9>@f};$9aq9tt{|+8cA~p|7{KtQy3CzBAYc{|0OEt~Vu$kg>~rJCD|T#j^1=_58Uj z@&N0I@2X?PED2cI_-9rJ1(O*XusX$Mnnkw1*>M`d1(5@|MSIcr%jlQ|B#4D!y_BGp zbAR*Fjv+u2Fi6kdUQee77bj7#SuJe-H!%_P`G9`|slex?A`_ZYmjeDPG36T$N%_A? z_$85ccxL*G6YZ8=oxZG>!Ljt}i2RJerEiM+9_%KeR&V3z3~Iocpu)ky1~q9B=a$3= z{E+=ts{zVo+T*v^iUO)N;cr4{MeaEp9;Zvc+yGIy z`E|+r;#3bMG3NLs%&KuFw5P$^yg!#$7UqM$vA20l73a8+kpXnYvfz@^awhtigXk2_hLCe|K9>A;$IK5$Bk{phd+Y#Dq>E1zi6 zT0yDg=&HVs%ZB^~|94Z7>sbTZjxc5HU*OvO3p61_YjGj=HzK|bBg%jNDtQ8fA=}Z6ES8Y$H3xLSOnUf(OKpg_!)@9`l?WvaP=5#dw%S%+ zRf4_4o5g~cCc_vS!kq8%~ST&$~1p8$g ztg@szZ^FK9oqV0I6l9lP-3g+A-fzV3JBjrd0kqp{4~C z=aJftG+&1Ky1wVUj$hUdpgxFK;%=ESXp2>pXumCB^bM86bo{nFyP;15?JA4pKBXf? zp9E1h#uZL8GT@VY<{2f|(r_aaCr$~5XE}6az)Ac$?<=@D{yhRq*wPj89f8y=f^TF0 zqBXo-HSa^Nm#O!byBPMJCGfc5dfoNgIZVr=)fJ=S4}2D6W9n>+ue>8!L2FD(((dg@ zE+Pp8^+TPzwfEjgtTH5!Oq2Ay^jq>VDz;#O{QFdYPw;_uG7NBH7n%RbM>ZtS9SW zPf{I3*X?(5+G)jq!~PYg{bKm*xYL(nUHZe>{T%8{O}FEw!^kDE3sMXtKgm;zP@>j6 z&H--N4w~C~{(nG03D5{b8$hHKYxV- z%d`39C=Qcm^C^*x!|W`!X??fr;7D}F&f`ATKyC?5qn08aR<;b%Ez<@?uC<7K)XR#~ z<1Xq)n$P=&hNA+re*?0|WnkhI^-xnVsd}24yXZ;dmnSBt< z?mf5p7tUHZ&hI8tTW4q{m-HR>%VmY`FL92G|&-!~b`mx>jqj>3K(0>@YdfVT_Ct zXOLcE%+Pk-8(xnc+usK`E(Un#q_i1BQ6|bYT{&=*{6xg)Y(7Dj00mp_zUD4$HGy=R zgn6AU>&dq?o8psej>F}NGEay|0jAxMj03it=1MF-A{9-cGPiTq@$*`4=MIsfA(?#E z%c#s-t+Qh&W52WZKr*tymL%vxEN{(g{o|vX(_0J&bC2#bCJCS;fX+NUHHxv@O>52m z88mp))B^R)5x0v$%>K~wnCa3^5=*3UE(qUH(>ky7bZP&N6tF~Luq?GK61O3m5|#BM z{B*2>+zyo2jm$8g(%(jhz$m}$mTwp?`c)ufUieH^Ve{9RGEY#>*OntJ#i!P-1mfdT zhh1w|``-2($)~@Fe_3w=Bthbfk3;lzH1}D%d-c}SVN-?vhgQXC9Vq*Gg4qlV>N#L> zQGx%Uteg%Jq>O?0-NC;E2r!+mc{BtYCnq`{EGHTR@8m%OD=AqBvwsBP0Bm|jc*=bO zP7=@^=@1K=D9mX(o?BLDAxdgX(-Pf|#wq!{4-LDiRp2Tlw?rJ(obbWtKIM^*2Z)?w z{#DYsv4}HNU@`$4|IIZ|#Y7J~N}q#zfr~N z;dOFXtk2YS^rRpkGORGLI!`%+Zp=5j2r~JwKm>>bOG4UDuac>hiXk!o8@TPS1*x1{%Mj*7y#uz)n(q@axDXZ{14j!4^_P*oD4F zNjW7Z+AqWn{_T&Tq}l9J{#VKshI&~h%o}Jqy67DYm#@4+CvG;{BN_`vXGg_i;_Y~t zuu!}5n$%~HDDMAtHh+*rY96#wFDnH9!)m|hK8E={0+0B$skVe3I^P7QVCM1yA3-ub zUR|ksk?EgZBt$q}sY-+ah}N=?K<@Ifq<6*<8fX>Sc;3yjcfi}1&mXrvV&#_?41ZKn zgl5@wjbHU6LXVdL4Jy#c4|Y~qZ&2fdiEjSz#MdbzP#ZHYFW<5tH{ z8$#v)4o3QO6=G1ETu6^3COTKcp}zTj_nSf^0^3vBx3!4Dq}+? z;>7ff^h5oc=)KY@k1bqOP?t$ZdQ@F5@h7A7my?H_P)TD5hyx~=T;ulzs<#ec?u)UO znVxc>8(qHODEi_zoY6u!k6sAmK#qUuUyiLD83a)7MyJ+U8{?Kb$0{ObT!`zrcM%q| z;=B)S%@Ig{iD?@!0{0om*y#&d{1?6D@6}<(b^@v^vu-kN;0LjW*j+HhL&xa+k?w z&o*#Hg0P;}Ja=i6#*y?k|CZOCS~#OKjV66Z`EnOGk6k-jbBykJ!dEH4vbAA+$u6q- z$|8QiL~{1~03K2Kqw35#Y!O@srSi|QxT`vs%06)!9KPL91>)7Z>-mG_Cu+zPrNUSY zA(-SZf*qc9+RMEvTt-H7_FWA>LSNUzF9cxcI(G%?<*mA+XeTg-j82sEtzim)quYT_ zXcE!h?oJjAokyEfC2xbDS7B_3n_IzZB_16aA6Bkg2(|`vl_7-p z@Gr9IbJ5*e1-+K_V`(zM#FRKH1KUX~tuf+g2g z*O=VJh2FM$Wpt?Rz0uv;W4i(G3FnP2-?eGCvJfhou+piYZe}>Nks?QHFF31;DBV1g z&<|-d?~hGWeq=6_)@LHIAlTP&{A5<>km_N`*b_1WPjCZk!_bb8B-gFsiQ6TfP zw$R*)#ICZG=cdu8-n`$`y0=yZKa`YEIwIa$E(75fyqYLyzkaNAaSf3@T!p(cbe2+8 z79C~wOq0UNCt1${%K%C%%lJN!2y7zk-D;_EIdinEd&S+GRm1bg>tHrlIE5e6@&@Z| zmcipwdKL8~ptF-MM>zS{&gh~$tsO!qDM7$l4f?{weOFH@pLUevQP#uaw4{0-j#;zy zy3<0~nip{|uKHSWmPpCvh7PX}*Uf6yf{g=S9R+8vi3=Fc3KjE++?AW+^y zYq-adlNU*P1*5HHa)hA|IE*~ER>|3wDT#7$t&epRKTPRsJX_DZapsWg+l&+b67|@7 zlJW~Se$MK2r*$%5rc>`X!(v&v#FwbPtW^a)n6`PW5w*@M$6Ml}!v-s7sOettidMFa zyj-uhHV`U1Mn)vCg%a1Hm!h7t>t9Wk7Vt4!r zlvCf9G}~F#_ItKae);ua%>~nRPjSe6R)zm|9WiMrg<-J6jdBn41Vk09Plqiz*Z8%4Fn#FFzX%SMSR36mTc3r%6Rbm{HW9%rJk|=Qoa|+)V^#4#jOS{#% z@LrOi&T%gboBd24#d1s(ZHz9IIfPQ)B?|a@=>@1q1G7?14C| z`a8C1xXukZE`_3kuR|9Izm!KvXXx?bHp(;8K$429Z-Gl1l4pV69-0@O_SC-n``tD1 zh*;&mIyvE?gbi!?UmqN7Z3S9LdC%j(W@rsCYA6Z?aJthQa)7{y0WZW_=Ko?jTJ5nH` z&>1J*Gx-S7`w!mp$>`7-{%~z^t!5=wJ#WnHOEl+7#A;Iy2o?gsgaGp!E7&}tJ z>`M~K!BgH8+3^=EbMMo}Sqa|q!;M1=_%mZ1?a)YgLWRH@BKCr>pLg*tbkGlLE7$+v zT`0$_c~l3xE_e{h`o z?P)W9g@qhj#JDF_amCh@v1q@!1af+vp0}Ngeb#|)4VKXd(7;sku-~U5BfJzzsU10$ z$`+nqWm39_6A?i#wMps)VVE^3!txvWhqLJ^(QHkyX5`2&r)Vsc=Pnc=Y7P?zb(7Sg8&NoR%$y|+dFD>M393x_~{0j zbYaRcl|~|E{urB-b>h%y2-ne~|gyFMDRi(LZi21|^0W%|VX22GXV!#K%5n z!Jwb~5S{$C|_k1jrn0B=heEQlb8u97}ld7PTvxLm^p;YRu*ct%jDi=Du<9r@uBqi=8 ziy{y>1>1dw6EFSfx+wdo{Gswo+m-T!y|V zgZd?&%^~cZg)*fOPy_J9dnW?Pa#8Q4|8U`O-qb=1tHU;~!ahoX$ens2J#4+8;)MBC zPS}-~#mk0d7V7N?KK2mDe{auJz>D?0QIFD8}WE@qxOyxi% zE{U(aA`?3T=Gx-u>M^#Q_~W~~mPclI+oH8PUglBT0c30!KX*$p=w*#)IA7(7Iy8hIhP%*n!x~3fr?gb;12Iy<0 zuu0wTWDz1O%(}%z0Pr9vw>JY`KDw&Zf2D_1GE6bKp4QlBK=zyB1;NGa>u&}eKaTG> z1FKH7<|ukxURL|cTeMKPR1tdqRh`LzT?b2gU9rPbwnaxz(Vg}#+1_jS&dRuHZH;D> z>nFKu?nH4*)RKh?8mjwR`s^x221qz_9@!Kz5MU3q{i z5A&O`7-Fbvp1=6QxAj8?&$*sWk0CFTl|SK(3oz=DZGb1fHDKIJkz2p951uA&v4(MX z!ZFgGD67x=MnEQ5YN$XsZb2OIA4q{6PGfyZE~MLncIz7Z5(%u&CvHcUE4@zxEFk{d(*)xtZ43zr8Wp+c?vQsC&)>XF*BTv+Vs+gcAn%c40|}I5$e@yQGc{)Ezf=ynY9I6xZFF;5Z@Z93~LrhoaC-p5aDXD!ax4 zH}i4qG=Xb<-ThnFHCFua_IN^1l56o6W=$WN#lKwg9Z}H&KIX7n(4c~z+{(wtYhi%; zyWcgbSWB$2shrjrnfkNhInirI1?9M?t4QqxM*#*&itMN?-JNhPyRcCaK5Gk%%VIwt z+A44}Ce01=zjaS9;+o#H7%n%9fneM=8**YcDv_%v@kt>c(_@95*HyqZ(qwF_-flr$ z>!bHTBio%8yvtNS?`p-j4w}>7H$)itrO1od2QoBrxxSjX8KF-Cz<}ikq3{=cqy!u@ z#B%pr>Kf(sxi9?krO_svB(DuoThr^k3ai-&)sFlOngaZ|U31S9oW; zp=&bNM97$xdMK!m@IvF{cjxY=?JwQa1UD3u`sow#h4<*?+w~?QdxNX1x`vlN3L4YJ z-OO+)-fMzfUkd0aeOqL(H-xJx>#$ohs-I{q)U(J?cfPx%vK_((H_$4MpTM-vclMcx zsH)OcgqtaQ%aL;mu}iX6XN+Y6b)ufE5k3?HurapN7y`)ffLKoOc96O;oTFB1+_;!q^)Bal6*;9fY$J4n7Ssf zN_I#C#c6VfuiQap#=W}QDD~J7>tx%4tKfkTo+g0p9>>Hcec*F7;~=t=@0nxs=aIPp57i!ZWVCPbYkx<~a z%&M{Z9XS)JsY}`cDU_pOhnN|${O#$)ltOx3&V%yhiTg&q>EV|mOu;qshD3Y2b~TB` zj`Z();XzbReQ2|WAGvV2=so~3JeP3JK6PzBZxT@GNaph+Oskw_5$;DdGJv&;GAk=A z=b~Ha4r!^wUMkUhp7)Wih`^okjP$C^txF8de8)N&nSrnJSMut)4i-JAXP(pszbt&p z@;ZB?oDzMeda#&c6>N5@%GG*46diG35x2jU2Q$2Cr5@Wcq}QhdvvB!Eu`dd=a}v+fOGkH#~Fizqp++RT*QH-h0r3KXJbSncr@VETq*}$T<%_kTaLn zT#Pp{Q!X=c+Jq5KJ(`^zOf(#fo5eLW*M>K3OhFJWs1R>&VFZ+3x(UXq(xC3aNIwaP z1S0NiW`NJ(B9b~CiNem4vEdWuEGS5@Rz88BnZp?4gLU(L>VpK$ZD#u~BV z9@!|5no}|Ubv764cdhiJD2J`6Ghs8Pht$Jqe-haus}o&M0wbLGEwYf62rUB0)88px zAl*b7SefWpa^DJ%`~o(ZBv+%e=EHA79?xY(ZKoD;^m;qaG~D{mv-NwDEM!J!_x!06 zM+)akx)PqADp0Xf>np@4At{ixVP==QC?Qo|GC7x)1XUbujp#4&kIQiXyEbGlf6~JO zl73bD84>2o-r~I)%phh3Vh;|R=~#v2&*LU-GS4D4&hzk}4 zk1C$+#^&CXmlTI;hwdbY=X83Zy8RFkB<@<>f+C2%a4z1`%ky08A?|~?_@Rb+^(S(X zk*LjiPUtv(O8wYd=ajMo;L!Ef4##QOREm~P^tB^T?6B)ghx4PY7b^+h zWzeYITlF*48Kx38B{?4ZSh);7Gv970?%Ezwb1YAc0VWz;6loQT9qfUOZKgRox&jhNm!!6VZz>~Mh3uE<^mz&?1uFG0~Iwp1am2UK%Dq<4?4W3BnmJYZ< zyUTY5zy@!7%~$)+zPGRM*Z=Dk`r^C=jyd>cr~N&p_BZ2Tmo9dgM4waR(APF0R|+CF z8MNYhmK6OoKs;QxO4$IIAFW-dcc{DNgBaegNx4tV7Z?oxA#nA)H6s)KZ!BoyvgxLY zKmjpRVBdu_BzPHq`aQ(V{r2D+G~^vPXPm9GWB$?$A=l|a_B@K}&brGRQOvc_&E+w~ zuTy6t6`g)tiq_Bj+*SWl;$jA1JG^#Q{Zp_;}MP9b~MSuKeWN`^&!z zEP2_#Yxpn3qq6D->?8U4?6ES}>~d>!H48|qX-wzcuJY4W>NVilxSf`!LivpKx9wNqKI+eIo#SJL3Ff1+SR9oN9R2gS9@6S7V zE7pjC_*lh*by)3+UeuzXdTpH6nE5u!H6joW!ehs4{&K8$Zmk>qsm}8ClH(qU(*fhN z2E%KpYok2cZ=d(wl0qkMMxe)ZC}TkvuOT6$_u4ua+H#7|q(?a~aG{CtwDY;T1#{jd zwNVVx!GS|N^=9c%R?h>8A`?)?e$bn+vf@R3AWxwFE;HDX1I$3Dm!Mk?P2Ig?los@; zjp()r;=+}VO5OF4duxHvw$_M(St59WBaTf~C0ecK4papD-38n{2>l6d`DH0!lP?p( z+-F+5^QGxLorS{dqOUXH@1wTcQ3s{vM3*1kLfQf>4`F8Sp+? z$Q^vrWGWUz4E#~i@crM+zRsu)TdPEU39-VfO!U;NtKO(9-rr@IBb(fbm{boJuQqq0 zTIwrJg5To#E^!-M{TpKbNyBA7&L}fHqDgb>ie|_W)s)CIrr~!bMc}SVTWFIOmz!y* zW&~`@bE-F1mD>$uA*ZE=?2eV6V2TvujDX#*IdIgEGD*2ab5&yL_uvQonNLB(MJ$^T zrjo&H04E9|yG%kw2dh8Ud1_^PSMT;{Bu+UO<<>a*roo4x4Lpiappo2yL0^MZ<)#DTmIvZs-sqNe9!J) zl$1aI?+n9(0uhma*H4GbTYB;-IK$y?Is(lNx_>#GiW%`;+qxJIb2b$3o+R~Yjlxpqs zWm|0tmp`%x(sKJdPb1rRpho{#9;^v;KeM{(hUx|_-LCZg1jn}YKW0q*`pOeZ4n<%% zBzVkP&RE@!7j`E#Wx5a)@6-c0?vAws5;F7TL9R=Ra+?5tCxy#2v867lL#k z>RPsD@9*d=syV4PWZs04k_7}Id34Go@ZX&4#^^jRh53ZZ$^3c~1<8aB0KYB0lb$mG zI^u2LTxZ^&^st{9^VO0gx>Sitnw(g#FoV~Ugr;_{S#E2eK3?}M59+GSne(tX7(Hm%Ikm;V;;XNhX*dnS{8SV^d>l|%sC%NsE zhVzA;Ge8(y>iXh)B0HbowZ@8=ya0xO6pHg87M|P9;DotyN*EbVem#C+rqw_#mLtCP znEm9J&E)E>6LTAY^W@e#nhL+j@+X2paM71SOjIO!Y196r>JHPZ77iSE*Frm5g zAJP$$={ks9O+GuiJYE+U&xFq_ zaqpO4|6Tv1#WzaXp9JnXPECbH6zM0 zQbtQjo$D}n^G=$7UGB3+6JlT?)bHz_=O_kfM@v2Luofc%b4Bs_+8B4RZ7S-jz6OF{ zSe$iO@DDp*=7m0*7u#H&Jft&{rGO~`75lxh;t1H6wi=|WT^|*dXt-Z`3(wBSR(W|U zxhv6!dUDV%JBR}4Gz0T_-&iyxK11R|ks0^petlOO_xLQNq$YzCr@d%Z|<~5&b;R3 zfuHUDWd@0lXGslD#6fPq+03}@1oOv?F*r!Jh7&iNL_kh`5N^F~MPa5V!j@eKF)0B~ zyI5gsek$B}pw=`ll&}bV1!cOvXA8x*Nkg_*5EQ4BPs(lkgo=^op)K|D;x(?(2n<+9 z{{f7h@z+q!Z6{f)&=dszx+j*}A<0-W%Rw z*}ePeXPimSEO|B48^s7wAzK^OgO8X|3})1rD$jcP*K&1#ELs>a$F5YwLkm|O5F`{s za#lsXE`s4O*m)vLn_R1P%;zImhBlYch^q!8)i8m3y^s6~kp5(vj&osRu z2=dNL%do3o4_!uN%Anr4Hlky;?s;2NUzAevRte$$Ooh|%TDLX%E_loNDJl35WLt3% z?IIpA$$!wi97x6bR&)S`8VO69_{Ple6Om9B}b zWh*i(OG&*GUQx(8{Yxt52dYPVxv~EU?gMSBx94|(xkMzEbMmGNPam3p0KRZOi>HNZ z#VolYxo!Jdu`j5WsWOAA2Z--U23;4UU@DMpU_=cuc16$7x;l-MdFA1KdRseuvl2IW zZ6^s<5&3w39FP*w5jY~i?gznA(c52 zsjh9P-ceeM6)`#d?uyqP;AP?VO`wO4isda6@E3I^#%DwFUQ|B0LB3zImCUC?{muE1 zcko);Q5ooZ5O0E>Wewk4%vxxY9$Lo%QuXwH!0?wMRS9uKADeW?z4R*#?P_DU0UpA-B1nHFApVmGtoaa*J7w&2~eg z&x?@jd0+2zonm3t!=wz#g~Q1}N>#z3pc5(RK@2tD#y#E6)ZzT}HN@1R6L{HTbePCJ` z49|NStr&aR&_kb9AkqTpKDaF7$y7V!^gU9ivMUGJ8U_`aL6XI9*ndox1{bSCyfZLc zs(WD64=IJ?7jly;o~Xd%-Yz&*U-rPh6B$K~-h7%7Rkz`6$^z8KK7`>)uq+ly@&1o* zOOpRG!wHaZ469_EMZX>f~og%{DrxdJgsjK4-x|- z6)V~%CQfXamGX{OMUok+BL`vG{mE-m^~YqiW+7CBJJ0$R;Qyawi2aaXKHYB zrSLStye zBkWGdSKBhMEP3KlE*xAg`74uzJ<3!P)cwTHh~BoX#!xO5 zfe3RO)E%J}O0fR}KgG^@UZAc#|9@(<;WF!Tj5t@tN3xaGu0P0c2IsX8MiSyt`>EO_a zRU~cW&B?`TaV^-q=fJL`yBhz!P#kNGJ;U3)b4yhisSHpr3Onxh1o3o?Ej1LsZ zhE{?0=Y3a77lIX8u(!1a&uMSlV(tR%g7`R~<_7irw6ZCzX*wdJHK7H(`!k6vyrrFU zj%&ie!4@=0T+t-!_sd z>TZh~rEXmAVSJ0O9LjVt;Oy@x-2U;$SHblrzFs~jr&$hZa(;yeN2U@BiFAJNaGOj; zQH2aHhu61?UDnC)>=oyWkoPz`Xt#B`!sN?#w=JsXbJqpTp6{Z9j@85BJ;4JesqXZL z0LH(Voj5lY3q)2Qgmu!(FxyeM1?PgY)zy5ZiDQwEnu!k(zTs_w=XUPl4NBTG63*)(|dA!N5SI_&>;>2prMVNRlTchx{Ynn1*1PT$+0HAxUJ`G#7-3VI! zX8P_Y{<=C`qH@@o!Xf9e2WPWU{XHQx65`h(odIWTTY&WQzGqyS(JRQbY=HSqSZ~ON zME~kU7AoHfv(l`iE|XF~d}}+w*HAv76M7vpQY<>O`NTDOtKMo=DHf9X;s{!iFaly+yWB3tCT8^@acMY-Fnq5vFeyz3EAZ`dVknTonW-3^DhF~h4l-hXbdl*C_G zKeeoWoS`{Ns-nvawFG9>umwdJf+Oh9`q{E?ABBAWY`?bVLR!T*M@)cw5(Y7q5(n0kOhjv=Uy zfcGR{xzj1OQZ30~*WL*%5O@5`tk?ht3++SKoWZ4yaN4tx$$EvfS?$_Qxr#V_na~(4pmp~_1~AB8R9{3cck#!Ru(bX$^M0B4 zjL-I6oB?dHd0z8*Uv(t2ZthrINfsv@&M&kgnyicAkW{C{`p$wmz+j1Ju9i&Mbi}s4%FJtrG^9gx9nPh6$M{(g7=rAtudL;Wc4WVbjJW z4t3W6V7rnONg6xbL|soto05#k{_q(DusVoXxr;}8M#Kq;bQLI) z7Z(Dkgx}8XLSZju4$g>XMpTXIAHN(VDP%vq{=PtR8)G6iLFe;3!VEA;vVhysR)l_x zRw<(CM$JSP6}$VjkStgu(YmcC_IewAOpFkQ*)`fZ4$(eY!Dn7ey9MCz&S_c8L6%U` zbk#f5KY!g$8Wi4xKUmvO`)MlQ)BMr?vTC<&KZLU%Xl?*8&gBo8>x*bI$w`G4!^9) zbBSn{+Kl%;$0u3aPEy*2JC0q8TSF)(T+x}RwfUh-OB6GIM;`KC`vvXwzng0x?iPXF z-@i{6CY3V8QXd8gGd3ff@PVt3c76s5FJ7JnJ+N5xY1&wEsCP`gzfa-)aARJ_aO|%h zGe&+>zms*U_$CfBk8Kaf8=BBM3RW|Z=3NWG9d*YeV@AfZIcd!zSHzZczu1;PHtBFI z+4hK}8r=m84gt|vORqy#XBJH+$xm_2x7aj^SDl?VW3lyo#GFHifJ(zVE+{FH?j>&j znGp<`FuK04v*3UPx5RmIKxoA~?pgppqfy%AaBsQ~Xa0=u$<-}np6ny|$aTOG@iJO> zeyoUcI`u+|5`&c^##Diuwx9QfP3q~x60=yZ+p#)R9q6ysC93#MXaW%2<#nEK#Pa42 ziWIoSGq5{JK!1Mxjm&4|@tr><>$TqR#9!?$&RZ0kjJravogb-SaZD`O+SnYzuJtFQ zoji4=tJ%iyqXsd-TU7WVXO;XkqXM#X9l+B_lT0I(-GhU z6nK4=$({a%&xHy#NU@MKK3qz@d2ZSF!u);ExTX8ysTW(`86@>4ox5>kdH;GV?y^YB zl65BwdS{N|xHl$?x)D4Rxrt|H2JQO$Wz#xT+t+4vcb5qPov5)OZ>!5J40SB$w;n*qhr9__r%;q?jRv2H|@% z-!>X`W%(|@%y;4hRJ(=$HIeZ#o<1$krPx!f6yp}NZEpYAI#G7N?ONaFks9A(T0~Z{ z<|_hgw`U8kr4Z@umYf)O$#Ike#K?5+w)EfO9NWgG*;Rq$ENC>~X!fkl9cZH4eJepl-z^Y+^PxfCX0|{^=;))#6;W zR|+u8yWtv1n8#jE;12uYGhXwGY>l|m*z|C$J&}{Hq*-(C38xlYAG1dgQjhCPKeT{S zyRf@loyFi5y}uuPcT#lHkRP{VW7Z0D8T%T*F-XkwAD84@I^U(Vt)rccs z4sg1@N<`l5{E&1PAzW)uSdeJNSspcio?Gw2k}toY*YsJPGxk7LFUJ|CWvBK(onURM zm&dq=gc0ki?dvO&>MX30u!TAN;Dtb*(#kYRlhyh>n!y$#oI-o#QDt6b&grxu~DmPm5iq{0#_f zy{BWURMLY=HeXhYy?KN!Mx~?Vq~{yG%|+zV760A|M@MyKc>iYpq@aT?Sv<2KDWCMu zCE#NwvB};K7F(fJ34{fqtkL^s`ZB98vt`FKjZl(adqb@xF7gkl=mAx|8vh`Gw7D!c zOY|l=3pCrBq~;0Zkjov*YD0G>Bj_2*0m)JGUq0V7R1e9JL{0LPe`j3qlgOmO$~AjJ z+lq!0`n=CCBVIw$^~0@QQ`DvGHIb7(Zmz=Mpn3S=1pZ9q?9+ZXbDEb(3DSb4vR5>= zesVsbyDLZ|83BhBfgL6kG1)0-Gjdd5jK!;Kct0kLuvhE~S9C>A0cXmuf^`xqzt}AJ z*YUG^lV!2bH<2B-ij+(umL6Gl&oxDAt_&lfl#pmd&RijxaAPL~IQj_RQy^k&RZq;F z`{$RAhxCuF)|SM~2?+P*1>M!|cdlmgm+aw%Jf1FZ30#7DCf2ZgrSVLH-IDVQ_>90W zU8yrteu&nXBVIedA=VsP3j-uSc3cq;rd|z%yr!u4n%~8olBJz!AM_*4yp|(YlnAw< z_uHudlyHrJT`xvm^KuHJnx5}`Mytv(G%Ze1lQc>{Ky?xyu_(mo33@3#b3=wA@K=r5 zwaz_%(YCAGekQOQmuU@A0(CMY2+xq7czf?7^1a_Z^dw)rT%DCd#8~}i%tSiE_)~{M z;B;~ScmpkYr1bs-5l!;nbeME*cq6XwjPfApsELLBCpq8#`F)x~CkL|C70}VpJ6WzT zUHkiS`b=YHGg^>upz>iG@WG&x0VIp(YWL`F7V|ELe%3|d7ma>4%iLTZ)HS>u^C|7! z_s~q%x5yOWuw&~Ci$$@soXCLtu0NMG+l4=U4abW7sY~Gow?1MIq^q?pl=g+-(GS^B z;pUk3V#LnvqRkqgI#kVA^!7JfR|@C7B4w3jhjxKbo~r+_ZXsP`(HiBpEQy)1<_(rU zGVUo`(^B>asB53=x5drf@Bn|g>%Dqgi`8py%1n*3uB<@*siK7C78DuS>MtrPKpPuA zLt&H_>~zTAZ7~Zu7V3qU=?(WXhu%c&(qph>CC>2iT*GsyNA3r{2$B6kAfpD#qGDr3 zoT$l`pKmUlGmE~7w~Ptpnpeg7)Md$6o^7P`ZhA43V2>2h$SF<_!~dXZ$lqwY%ubT; zKlX1eoJaU=dTj@b*x_u@08O)=dN_!w0MY5h)`< z5|YSBkdXuk5JE_kUeKI!<1fuqn63;M|2r}T$DT!(i(p&(6-BFa zuwo}EQIj{~+I?W|jeu*BmcgTRo|~hD#0d!cS&42g*g6059k=YpCbVy6T{OHLtAb4E z>4-$%WaghuJp1ah1G77n~F&59F9Ob8Wg@V>ZEjDx%$hauj_+n5P9(q zz}Oa0qB(`Uze0H~j8ysvC5`;Bg*0T0BpmIpWux>W#L0xW*=6{a-XtEM)5)AYUe=YYfM#o4tnbTeZOa=s$R&Nj)H&m*C3$%K3 zfPIrD01SJOz?h-1HdXMcn&p?X`DMmi`}DI8;Y3)~(sKV)K9c!I0#&sozL4N>RxZPk zYq$&JgB=(syVjrM|4V6KPI+`V@R?XkK|hhBVh>OAUFeAB35jB$XF@i%`t;MNkRTh* zzKZaio}VdK2pw1!>{CD+lcn<7n>#O!qox(7+Hn^%CmiX7EL^CY9AY;vfHURL06Utm zO>KQ7%>LL@sQ*^J;>`9_y@*8}Ak04>pey6lGYZ@NKw>XU=b1AVl&7GQIfG7Y`y;Q2 z*)v|BMU5YdQsH|;X?edizROowWRb3IWHhSxcJ&|vDW1^+@-4%FFO!Omls6t~4pk_o z3@{*u3t2$b?zT+3{Gy`DzzO*q*i0YF=SL#W6n5lt38ozf%XorrfvO)48g*v?t(SseXiEu;rvGft~NM_ z&*?~Vxwsd-y3%D)0Dv=%Z$W+fv^8DTm!zU3{ePuc-I8%$g6a zl+jGf_eBUIhl)MF#a^KIWFa|CS!t#$iM$81uKGgzE+sy_O&!0E>o`|JXej+WUlFt; z0u6!r(Mbf4QZ)q3|0+AB``oaqIxezuQS6znBJ=Y_c}B;c{BYS9 zU+Mk7c!p)p@W;gOFylUhAk&XJwVctb`C`>J=Z6?S2BbR#XxHwQXK3BwgiVYtB)Jlp+C9=hyBcor(NU9haphBtaj`_fET&-j% z&a!rBU{$r=njSl8`CrNs{F5^}c;!AtoYW_N2eUvN6JWr1=( z_QvK`CLW=gQjJD_*6R6n8@JbjvXYmhx}#k-n}KV-B4qgrE_*nO0kp=jDpfN+MF7Zv_k-QNQ^0%m*X2685S?)z-eA|)*QkPnh z4n7ENg&7Dm`}>psP1*Jz%=Qc~go%prxngYP(>t1pMPY=`GSoRk*67{j^!FzxCf~RZ zMTp*Io3yrn9F}W_-jk;&ASg5|!s(gNGU9GXs?sf?^(V)ou%gIxtsPIRaU^?`FA5_O zC?d^TnDBxor(Cj$bRg9uAV@ z(!m3@gd!AKhe1DghbkT3sQ3HY-@^JW`%x{l$EcQE&WiExVF0!2rJVhik;bu=v$e`9k{8VB4Z&|3$pOlz8dSHO#?3^;+xAxRKK!e|3aB z?(lzG;Si|GVOT4|KpNGKFJ9aZv_PrTJJLq?(gzGp+MB0RZ$4=V=#v|q+9|!*l^<&2 z2dKp#k}R*?_wuW%WISJ=`u(YIR`+C>a$ip#Io#`5Um zraE#?K5iS`6jtg{w%v|BI0#E^e0OW=?zt-t{*#ftk?>LxxYH2|y(M2iZ;ChxE}d(| z-W}5VRKKQ+2-Ok{8mCH=hdzn|>1FSa$$!ajdv4>2P)%{!Z-wybzJFSG&2s;`cb{`~ z>>ab2L52O)XIXRMRT>_Qfh}pTzav&WOZDl#wpLA6+_xl#{<94JBMsadNhM}6Kuhp% z!E3RGfn>q#OJ{*a&ZP-fTz^b$=F&Wrtaz{^5Nnv(l3$jO7{pNH%4LbIG+$@L7pel< zOZTIQGZUEK&1OcytWscWaz=i9h$`ehfx2tVs6BD=p*?^NlRGpov!lWiI2^Vcfdr239BBvklu5@^t!JbBO}T zY$CFn-wDm9_Bc)*t3l04mPcff*jr8E=s_zEoK9vWNV;zVxj|JxW%tp3JqF>63FFIZ z2>W7X;P-^#e=)w>Nof%9?SL%M3fmzwSlp=n`;*{Nt!ypiWM$($w7d4VxdQwAjKs?d z?Glrp@X^H?n><1?x0gw$8m@jEYzvr{=sWe4 zZ5j6NY$Z3^BZjLgX7b=tXnm$Npq^@3CEO(w+;tDQ{SR)Q;M9F7{1*Lb*L^QGdVlWr zIA*aEr}YBYROat5Qt_uU@v~bSOOcjiR>%siXN?Djs9nM8XCF&Mg5mwwJ@ccaJ5P+( z@P0S67Hn7;%f98IATbczrM8=iXV_!_#DKY2A8*s4nIcuA-RCiY!D8_~A;5z-ku;@s z-!7w6^<}sI@pbvVb^ranN%2OYH{)nU*)K@ecf9fD0YC{Iva@eZG4IFR7UbJ}%ryqS zx}}7w0KBRMAR{y~Cfs6xlxWKBD<87%|Wa+`n;MJy$Mm%Eb3IfiWPr1zvy$2TULQb}?%X`<3x7ai80VXCksvbXNJI%W|yHj(1~sC^EugIGGXs7T*nj$y9ryWl?kSB?8~C zk|3ccGNgDQ*Fm(d3GW|jJ#5t)1G>RXaFWX`QF`6tz-KwJP1hQfRa$_Fjf+ucOjd@+ zQ`cAX*|C7M8;EWds$t11bG#dM4|%~GdPjq&!P{{7avFC3?Ur&UyE#d@ShH+_1Vsq@ zMNIzijq9$mys7;U33nB_MwB97Y}dEWh?X@s)xIW6N)o`&^{2w`WjJ}4ln6N6bJe2M;tv^#ONqK#8bb#}%_sdtCPcmS^o;Xu@#Y1RSM;5K#&1mM8yfn0$`VPBb5-OM?UL_gF&8mJTzy z%{JR;v50O4)bP`a6;tOzRV2|n4IHA3sFL7k@m{ z&MS4o>R-*do!zp;T!dG4JSvR$1{{T%2qzG6sXr)Nc>F^BIVIds2 z`fi!rDNGdJ@b-|4V8b06&_YhvbTNOw6`q+g%lM<-|7)Ugo2!~0B&9O}oId;W%8eiC ztLdO+FV9A^zaKi|)dHLb#ddP@_6PBSitAb0t~F}p6sfM8y+s$nc&E--=?7^vO;^UX zCzrxZCL(&&5@Wd4bU2F-G;*yp)FI*W0}5y9({_yVI4>EfhiaYH+`mEl zc4rx1Y7MQzf@AsjE{!ERWqnU@k;mFQTo&fmO;w;pbZmO--j@}=f=3VEUSo`0p$`}w zj_rx{uBgENf#4kczg#`E@6Hs_3im;yBTh?K)=!fS{be24Pp8=M&;S19L$yM&5x#SG z{>rm8?+qVX#Qv@-O-1+)Lc-j)bMduc&)EE5Xp`FT__Fg>?E9bd=o%Tw7JvL?=zB$! z?9%3o_ts*!n>zibbAw*3SRHz)&zss`3i#79Q=UkoF%T~p*X@z;~Qvx6ifmqD)tQLTRG7$R=(55WwOGTKGM^@M5Adm@Vf20zs zEU6=V<0=$tHfykj#%=acmG4wiT%0pE2+n3h_-|a=GQa^B^;qt<`I@^%t!|XITEL584nq zNpWy`h^aTPN9TXzzrLrxM-m-%lgaT0dEzFw(8ue1C+fSx5KC$GH1mA}zxBg&{HvcS z&f%zGk7&eDFE5&ljAfHeWCgX}FtOit{U^ zYnqL$(c=L{#t(mA4(7fi2Q;P^h)z^Ahd=x0^tSwfA@;b5;@2;U@1DE<>#|OFKnEy$ zw~)F5SYmLiD)2=XgxS3X_gmZbG}Yjq48)(9GA!Q=#Qa|D!{&JpZmpvObg5GtLNde4TSHnAx49OtP-pfBe$$ zL*RKUA$sddl*{t)S&I2shl(x!$qY@9S11lFGgs?_LSwU-(?pAVR6DzCegw_(!^rrQ z!^geOn+B>7W1)+De(GVj3`I4TD5E$Oge08NQ|8Pj>5n~JH4k0(FgcuomlFw!=9o@-I zpq_M&0`mrZ)=`;TFyYYZLsy9+Cybt4ftn+vQfn^g)_gCPF-hQnZp zZI$uNa{%GK>RV>2Q`CJK(aOFBIfHarhq68DdT$#UpzT33GuI1U=Ii98paG8A_&iD@}| z2VMCbjLp+&MW4N@&4j->qBWzv$R`;puj6;vr`jK7^^A9QMM?2KnU$K&m8+Zeln`iv z7$xmNE7o-^FUw9}B9@q7@gmho)ykxu%z!}@Uref+KAJ2o5D7J`!H9zeCUPWaBb0jC zMm@yb7#3;uHbuj$UDu;7DdBUC`Ne3@v^b{L^&gU$OhR&`t?Rihpm2nXZ^r!6=7@pu zu!@>xc$Icf1dCI-AyHcNKgv1?gA}(tTXB8{n{Xm#geATh)}t|GCEbg@eruLfTj6Ew)lzV@*f^jAaJN?Q;aT-Ba-niVk-O_Xp@5be}QRU%^ zOC#hW#5G&EYkH)92c{XHv#2$H9hl!^m4wP1r;at09rp15K&ZsttuZZKP)5=Uk9@AY z79EoCQSbG!IuNLvu+cocT0=C?U3%R+yHq&~&t-dS_5OPK0>nmkH^GvZUVupgixtp* zQJgqUd-13tb>P2?lGL7NdH@dF6MjTm7NB%q?klNl?e~QEET#=l=2JXWAO`nAjN?(D z1994i2{=@7XvO`P=^Pv8FmS944$d8H??{~CEpZq|{F|*sR88f_-Om4A+j?Bx=@jOx zx9Sl_Mtnhjk|W%)I5HX`Pgidx>}pO4MHr!F@Qq7DU}pTNL>?;aI_wq<)ZXs|2@l6F z(ADJfrUbWOyoF|W5NKy1l%CYr<)`xqLot$z&`Wi3*q(^or*r#9c(F0lTDHSgw!Xs9 z9n|WCm#$%o#6tNh5NNSrzx>8JTb+_QI5(4j0ZsOj_mj@$h_dIx{^37)KbJPn&<$H3 z2mY4#EG-OM5G1`oPSf+xzc#}JLmYEqd_jsDOf3IJs7z|YiW3EsK98bf^uWS2n%x~h zbG^6Kw=6J95AnvZ80{h9gV=}F`lUm{9x{)xaTBSu7; zl?g$Ij0$1T=7;A@*+v0>Rzdw0c=!?i+$SyYdA(oZ+_tzO^t- zSfJv8Yxl3&{cqZftrXdV+Q|%5u>#fV=9(jErdMl4H$wSF1ZSoS?;5Wck>^8l?6H6O zk*?E))k%~9ue1pqeH|i0`9uGw>Ejrx+&)r_pq6BLaR84Ga<%*Yg zENBZD2)oWWx!YVbr`S>XAgfyp%ZG3+9>oZ|R-VHw-NgMfTl?af4zhrRxu5He4E*yI zXddAfeCXl5Rp$G!65lUAW3D1np^8?x$Tn!c2jt1RLwU^K`C%s@pelc$R;5JiGz? zV#AgchG6=*d9kl@tETYTKpX(RUDV0Cd=hSc?y~xD>FnR19EgYSQyZXWC6<@PeaDD92Ztr~DDq~b6wPOdHOjr?|RaJU1*)k&Y- z3w_+WB`$jK+mUw6c8vc#VQjcz2kLp}^=lToDzijz=IHh2TB}L8!s0C&vVPnO#3v>_ z7`NKYugLWR!B5A=@17N_*l{CSs6qf8DB0zPqkWzH~- z&|quRPBvP@Ed39@sA}YpKZXVKFu*CIEFigwt-GWzN!y+(};1zLrl8?rB@w z8fkfcPpIfmuY~_@FetAFoXMU7@MG?^-}VFt{sfaMl@u|{td6zPZd(H)4tF4tK4-d4h(SbnS9l7c#@S-ySUOC`4+hLsc#@AX0z zw7Pdj6}vMdkIs#LUB@!2MYA`fv+Zt=Q!7{GZ2gOWav_sgD^9D^X4kvQAlz94yPb?n z6;}3%sA2-o#jKtlP5`NTb+k24N|otOajqsc>|9e4-7QRRa0jt!0Fw%NCqwW(VP5s1vf zLtsTV(^5q`^o-8HuqXBgF&|ER{$hOAgUhtyu2O&qe|xpX;2`hWk+w#@ z67lS6$yM+@lS)W#S$JZzv(=P&9o|AlNeUz{KU-d zxo~l<#Vz8d(mk0L^VhhkQisw>H_p#!4{0a8`}s!lV~X}9<-Tjx(F|2E|Kck>w+@s^ zP17|*%GXV8wYWpY1j^M?)Jy~K&yqp8DVOzg(|?qA2MpTv;4D+Znh=6CUvi6XFXp`k z>%kbtF7)y86jR4d?-C7KWP4cx)dXI4lKx{$j}2CyVrU;)+yGs^6Q#5s!LhlTz(ta` zT9`(jPR7rL3Vzybhtm#L<{>7P2NBlrM|QAto_QN#GhBgZoFTgKThs<1%*Fts{E@14 zOUu|$YI_#bid`-RqYFg%+@96&SxaOzJJ$ftylZEy9RIh_lHjglV%$F%n5hoSW%->3 z1@JFhD-BNW_=v-UF>MKDcw4w)%Y7R|irhZoP=8O6d;F9oniAY2ySLlnyYolNt?Q(J z*CSkt&7@^;X5@wSx(`Qx&;3rq*>wEhn&O@bv@G;`0kQ?0n10Zm6PkLG!?^Z)UecXo ztq^g#QV$XXM&>dzA#uqi<-p69a)pGtFw=|&tJEX7rJLIOubZP#Rgn}*ZJ6Y%?Y4~Kb5E@&-93QILN+c_s3*qeyE0(E%s{iHjUJi9=Oi zNA+m=VI5`K&}X;#l|SI4Y>`xCR^>|eo2oRE>RsQ@|6;s(=)qk9MQ|dX;R5o08fET< z6v)L#CM;ccXLYFMHAH+sje|;yNaAiy-q4!d;f$`HO70s~d{?bF*Q6bWK3>|L^Gz7l z?VE6)c?j=jNA7CHv$*lzAsDa39>a83u$jNpqTJy3#E<-AskAXW+?{vfHw>rM&f1u4 zV9a)3E9k62%m~7z+>!yg?PaYb%dMbA;EOS~5g_5x_T23~+70SDXcOJO!+4f)wTp^k zG$BI=`w_xE{s#V)PSNS9@a55#C5Ne9gM0}tN#B44QI>0IBw;h-OgW^6BiI-ch5wT8 z(2Y$4VV_RmHTplc!NE~vBVwqM@`&Pal>oNVbb@i?!kN82mjB_=*4m|3OI+nYRvQ0JFq8sh3Uw z0Jckv)4xq89qMKmq)(y1d&7jsW}5Xk&0~(}`|RNvzpY7x^RtyFg`YVEZny3DHxJ*s zNjMdX4$zN^E>7~p+xZ!G`zhSQy6hgk6@sL+=X}pBoo47=-HGDtchGXwTQW7t;6!?e zX#vVXh-5Kn1v&6?%)dqlbvlyZv;VUohaxiginGi(F8kB%wzGq=C6vXdsS5xu+&W-j z7js>izFJq#{|X{H%k8_zo7yp7z?;jauRPq(?7f_2FzEgM`$tM~6g;w)Dr`yb;iop~ zN}ILcdFNB>$PT{kUAVGXK3OY@Tlan}1FGz5SPje#)pPmgJ7RmwRW1$Oq_gp9Nv|^6 zA(%hPxdTr|ABu1kDxctfLy)V1mI#xn!@s=Yg~yIo-g_$u$YYt%{AH5`w|a8JY7L`6 zs1^wfuwb3u!tWnl({)=HBFtD3f~R$^6IPpiSll$9_YX}mk&0QUJztT_`6mC}Quf}9 zdwbg;go2&?d6t9k_yT2I;eTtpsDsx6-w*_=RM=^_40>zcS25Aa=^$5Je@TZi;?x`d zGH4Zd$IfKxoNTL{f1qj)4y7jvhRf(!O!dlg`#FHe5qRfU#-423{>9M_`hrRWh;Fg! z3h|tQ)gkuNPv|&czRU$1P@-Gg;uG?X*5yEzCu0~@5Eb9y1 zHe@PtDQb>y{%%U;&|8@p=J^1gG7OQ&VYeafn`WdI+^P7S0hWAN>4)5NvFpXeJocM} z4)wkJWn=b}`MNs^Z=TK->b&MN{w$qoM>FY49O94lG%X<~fz%?f)dNiBZi5>0R$o)A8S2wfN_-PQvt6^)MD&Bp+<9GT1Hgik7p6HZ77I)Z8cW8J> zq3P&$bM-(!Z{M(E=@s9Y!V_^7^aLo2w*7Kr=F)%RGt1O)MmlQC7rfsrTUZu^$A1wa^T&w zTMbXwQ#{5uw<-5ER5Tv6ch$@fkcC{^9Tn2T0hc?}w1HHy<<$fCT`tcZcX`~+iN}hb z_^|8i)z<579fm!-cAeG$v1S17o{R(&N8dTq?;rS)bkIr6$!Eou0l3^{%JST%%Kcd8 zN=Ue?>1*-s+$`l;fDt*Hb9XJ{byzAQi!d{c9>eTVoEkOqNafnW-b%>gJaoJw^YgKFhYSL1gP^&Gli#}HkJEc+TcBBN z;gR;$FE=MDuPX^r7smx>wteXf%8-XQMvQcS>W_p(V?QXH=M8;L-}od|C#+ur=}Uz1 z@J3jM4fzXG#JaoaUoj)_s~ndr5`4vv z^7g+7*0DP`!pjK$giaZ9>|&iZ=mbb8au;olrFdUlIcF@NgMh%o$}Z*?!d`6sNcj~) zj}DBbc3v41-#&>} z9rqYsPn&dt=eMN6POEtZm&YMx?z7Wy-=*wA2C0F&Oi`ifFUuf2wVkqSec$$@J3|`? zgadSg5zLcAnYjbP&ceG7TfnaJGYXm6Pq}t+f(U)+6@I^kNvG zmnnS8{{F;}9WvQXe9p9y*1D~?JRBODmvS0prLrlbMj>4STzb=$8pA(wcZF5_AC|`# z%V}Wd)A;TcmLW@#JLm~%gACxt+CJZChyy+dDJ_$@5y6u z-~CVA%>=E3KDTxrCLDV3z>ydzum^UR#HmYd?HFKuCkARnchUZ|E`1*@a1;7(ui%A? zPNHL)V(Qe=5gA=Rk%$_ri_73e2#DDmRAICIE}chtlMWCQ$K+4O%TIG7BA+z_XZ9^( zXIs0oS}16NOR#p(MOde(C$oG3!w$G>{Gi?{+4U#BAyC)aNS|-+6iblv3CLKNfF6s0z}*&R7;HnKd4`NJ(KKIM4Z$Ft_`=E#PD*=Ml9 zb}~^md)XcZVWckvdP7yA=G7BUt*kARN|e@>x9s@8 zlkIjbl0b;if*7?j=6d_}43BQLDl79 zLh9o}xg;APFy~X5AOsP$GbE!+Io*qP zmxlI?ReFT*LiKs8()>2;Z;{VlmQ8olzpM_;kfdvuU9*x3=D`Mzda?dLRYYM_CsAQB ze&m&1yiwP*c?DsNJNn()7cQAiCqfyF0b#MBZpuOt1sb5nF^&U0BSPW0fRFR7?sj`N4-wU~0 z{HY!0A3Fqu|NRrZtFufBywd}3&(n z&l*m;=htKa@lr^H)4tC8suM`yc(g6oaw@dj+d>*)dMRn7bty6ies8n5G-`H%r{@HP zAOP*ldD}9KOa-BgU19s$A=6Bhik(-W_&UoH{XTr51=k^9(PdDW@uh;c$PO<1F!S!B zRswaP>DbJ+Q}QW^jrL`Qay0>JTp(8AL1wSZB;@@Tx>hW@5N1{YGW)_NP}*S|Izxz; zvO}#LIzUswAh<2zN0bi1Ip^O1YuE&sWF6`~GL-=v4IkTiY66)C%OZNDfxZYlMQ6*z zc-k{zA0QW1UQLSEzty)fAaHxKSr&#_{xTtaP~*%gXLVJq$1r+PX?XBUUM zK|=XsspVFA4|EMZBc*=jX)1{WYt zZwxW;a;}u8Ltaq)TyG<8!-@%R8uG)b6W5SMUC$Xp3v&~1{i+ss3?sYgr}O{k)$&09 zCv2r3U7J0J{*fuhNFr~iH84k13OjI0-xaGR3cTk2=~IC*Myx4`GeZ@!RY>S`<{xif zs60{sW-tJO@b9>U3n&hweeD<>(_5Ft#5i2w;PAJ{q6N=|YQI!KSDj!lh#<#?>i+#A<5D-)=WYPo{X8B&+IA9Nl;(v;rB2 z9F2C4V@afUSJ`6^qr#^X3(?P7>d*ZA{Eg?Go(dz?*5FF{#}!jxrNwn+>Cyo7GBLiJ>+}D>IP0A~YZSLG! z<4bd4W_*wzT)8I}yg{_VP6<;Mf_d`<=s}=oQjV=*w_(nkx6BrXx}@QsF8T zwq81CJf#Q>_e^HllE~mo_-Hr$k>;?Sga?l@?UtO5P47Byr_}1w_gt)+w>y_;mDFmP zigB8*uZ+7?`_Nc53erpk2A^qld)F3wzwb@GUp}=@EFA6F;pZ*`j$9;4Wv)J;eM3g& z=h{$iw4So$rs_1ZbllZs)OHPMv-b3TJ8ro^@!u*^K&2h7*;%nKLuxOr% zu#nB*)7*bU^l$BtMG%@!r7B?xV2uE%rr!`LeWy-?rgs7kxcmXRkbg#g%&Sh3RhkZh zWoLM$EoPj$M!w0eE{qRc1i9m$YxBYulsPg!H%@867(*XIib%VlEQk^_;k{Ld;jtXj zrLj~*G-RegK6MwaYb5CXb$(cO5=Q#{G_Uoyy)>zA`pLpLdIM=9hxu4Ter&Cuk8+Nxx*XF}7wWK8C1hw2?kI_z|#W^#-~ zWTVOZE{=LvQVa3+Bn;PG^+d^Q)wuHK2%D@4t1ohkJK0ee(^0B`+6PTP*3<;B%o zUT^P_@4N{2HG6k|WUI6pVXccECBt_zLL#!ahSg;sg|4ZAPtTqlZyH|LAAbg7cSWTA zn*X`{QXJY^^_etI#h!_PB?R(1hCu+Lorv+>S}tLJf9TWuM`8exoj|#B0KI65_NNb_ zWr&;G*$Wv!|GpyezwNXEyYapB9|!9|q{W=||Ap~?AIRjesF>`jUie=4`}p(E=;b0( z(<}K;F70k9x@SgbT@B|n$HCZK*utT`7p_#qv#!|&$TDKXUQLpZC00e%C51^BDp<$$ zO?tFKC6bO+rDdhX<%55rb&c51=vFaP3xNwIh(sQKOq}NHHI~I}^ex$0#t0X(a0vSW zs7KWzKnpJZvJM-vSHf^0kl>{{zTHdcFwA&~VCNm+e%pZAA2p{!oKbX46{)j#2w&4& zI5+)N14=hdvQv3cHvzViLIn?KJtMz0t!n8MG#0#}CfCf@pJZJ}m>VQ`A$%0juO)Km zkM%>v=2I34(suj48Qx0mghUVm+j>+d#U0NX2#o_jbIK0l$E1dG)F`DRmFHRz&Y{q^ zmE`Y#YpH(=*{Ggc#LjECyiEwTY7(W>isHF}CS1*c8rb(|b8d-DbSu!TxzO7W~3eI;ko1cU#ra1DxV$ug3CRx5f2h(`o$xtt9jK6J=JEF8j}M z5VB&_IX>+|_QL^H(?%-`cekOD?}v9-pMo{^NeN_&R~5@1cQ||U8KQV^a}NU4y`4Xm z%i4Uu8HcI~j%n$cNQycIn!YHzxWU|ybcJSjsbOt?2CZ@nV^#HDa355J{5R#8MN_U^ z#_2CqNrDp!yNy2zlV7M|bNel3w+l?$T4q`TYSqocY^Zjb{gVz+`ky8sid@JDQGB_~ zqf90zgxs8y@poFDZYsc!!|{2f6f!mWhfe8ON|{NdKOZj;d%>bhFTm2984NO^W7#csNPF%sU%LrCf9{@e?I=liUAP*z z=HI_!%hB7nle`PBk~oEDA(+}Ohe7Z)B3rqkBMiMZN3*;#7&0RMEV-uv)R z%r%khWJ%*0O{rL87LZvH35|)t&SER+2zNbfe7NS}?6|2vE~fR5euKR&F5xFD2X5=^ zbC&Q#ox%;O3IVcip~cG~dV;&p?Z|2y?x1dB46xA+{1b8WcF0TTL5#HKH)H>!yU{NQ z4r^~oFs~|N{UduVWS7|6FrWlol>)ailqx*bO>ePkO@9sc#cI3vSBd0mLPCHGRA@RC zs*510(psXgo!O{));_ZwB8e@vUh^fxGWt}E4L0$B<~u~uL4-4kf=a8#FaEZ|+C0HS zjwb{-!_Sf0=JTuL?$h__pO$faS#~0b--9;bO6e*1`;&q&-s7PFZB*w(491J|PTvcG zc$^`DmxKS(pC@+o=&1cW!+q}iw_@0-i)G?>M?Gt}@Gf)gYGGvfQ$e`rb`JigDI?iks8rWCaL1=TPExF+<$njbolebkibl z>n8Pwt<4{}*xnO)y`>nbB8NpoA}S|}b&-KpL><#d_jBwak1HG?Cx-L#<0%ddM6g$` z;_Sp3pI^lGM=Uo>!=+y*gs0&6K@mx^C8aEIbqYI@?c>#4JpRF-oj}_-iuz zL05jD?Ssv^y2&ly{ih~Id(!-+){2^!_>=03RlSPhB|X2+Aih&p`=AB-zh>HZ?8OO0 zWot*Aea{?W3jsxP+ANSUK8lT*S|Gv7aZfkH74*L;r*9X^zRetGw?4K#?{7Q<=Oq8VmkqqE_UVUC2fQ-KIfQ7Kr%98eG3Qch?;h3 zw|Cu6E#YxKJjhlqq#tm(5gd zSh^1MXiMhGDm5@X{!4l-e3Q^a2bVc|Xs-QEXW5D-U*{a{kA5vqg!#yPPcox%BDG6T zp*JkY6iM(cUoFoDv)xh;6@1xSKJR?+Q0B0Y%HwQKitDB`_EwB;k{qs*Xm;nfNZ+s; zv!=ACyAVHMe;+pkPk=#z8qNEkc%PYkyfw9I)Lx~{9#()o#ywEU%?h_*w<=6Bcos4h zd+=f9TG53$E zB-S&n_us+4zL73Bq4~OsN4MHZLrftrf^BBdi8?mq>1zEW*y)%m!Dq6MxeE@(RPuPd z+upT)V&7nku%!c3vU5`+?C~eBzd$uU~0y{|y*ZkUc|Y zs&XfB$E&oJ>cOk*N33gKCgU&0YaP~rxUi&lh{uSBP%SYAD)Y=pc^{2E&{v@PytA#- zzvI0}6Ez2^+S<7L3V#QL&XVR3`UbuoC{t7Km(@WF`4*dsS6ZF6HPqd6XxI9N_sBzs zt5httUu3LlK%Sd*rtCq~vC5PSq*0IL$x@84>zCWfLc6Sgw<&5P3mIWV$1u+f;L5Cf znQi>d-R_{51uW39-yvvlM;E5UzB0#f35E=D%GKoRn@`GVA!nHjVZYD4I^|w%@zeMB zc|2KAlCh`1qPZ}uXC9Aq)S16-3P!JxJNbr?JH|@<4&ldiL&}0?o*haB)Niw)0!kz9 z=%-I^xj%W!OfwgCheuDhKfA4CU5yuKm)QF|J@PTzz=g(}zJw9w0Q+~n zG^oWhA+7Y6be_#D&^0u`Ex1PSo7qF^AJ;%fXmaX!_lv9S zRztWOo4M5d&kf)=jBw|0#s`Gg?aU!>D^nYy51{SmI-$RtKs(O+4p;4qz0cWlW9yLq zX%;c=GMY%O+XUY^5jL?!hn9Usl9KBn8~e3&xh z&3F%y@wT|k1ACUud=IjKdd|K!W4#W{8|Ap)c5|cb6n=oY_ialHZQnNCB&fmM>~Lz3 zQ%BC!;=ro!daL}k_Ds>MUDhx*ZW&ACvJ^4eBP2$v6`;HjpaY9P+?ZXFd(Rec{ct?z zs{HVl1=h{Itm9g~VJYw^d=UXEu^=(}|8ex)fo$jh|M&ge?7mi8S3P{Ll-B%Ii>rCp zDn->%k(#-hB_h`nGvjl;wu<6tLrKZmBqBv42+3Wo8lgt01gTvkGK?fLKEGFge|PD7 zy`Im#Coi|ybL+3d~H^i&6BG7sm;H@ zN6Re)sGyy}HLWr~gcFAEI7^{ifwC0ofr8zF`;+^L;D%K?dud)6ze}&*6*C<9l=S*y z%C0R4J<;Iu00RO#poF^^N#$MUe+u5jrBqcSPK=%1a}RQk zOghDE4e~ZjKE>ah=;e(9aVGqG#+$;_V0P0U|i*)E0eBr`v;Z z?)hIo_Cy+zer_al$pg}n{5JEAf|j=TtBhsJBN16{l73{6I8)bA=W*EpgvvP8JyjG{ z(D7$y8XQze*SSP_@v}Gx#j!I-bLcIvqzV$^7_NtBwn$2Itq^iYMqn04HAp{w#yNT? zllpZ>@6g+RS^@IICHF_yJoD2-LXRr;z0?{=K1Ob{{B~{2?&%Zo#-@b#KCt6tpOE7o zt!w&-{Qak$bFb26x~jbw^C8DNZ!Cq4mp~-9mPz!Zfk6I=rUsn>zKU_X;-`#tQj;hp z$mDJom4zVHZ1LT!19rC;2{_sK^c2m}Q+s6*d2Xh$dx#cux{vF_+dxJDY5Dhu;|3JmZp}oC#TxV-^Jez z;R@A_&#R#3TUrNxmF{POXW3o*)aW%AH}2?0De#BLNsD)LU8N2yvvo`Ce)xAi*G|{y zoZ|qmYZ}=}0kMjyC(W--5mGVSWt4G6{#>5_L-3n|S9{iu+QfPaDRK7(?n_}2QH2SP zL!7DT!^FE&jSVR3VGkn}vvUd9oFQtXwe;Q}OL9M)9{8sGG1n)kPZM+ zpVXZ&V;Rn;H9f(4?<0AnU2h?P5Rk0v)$WVn8&O4-kn`W?{l4v!d$tR)dn8|*kw6!* zq~w!ZKc|vwkY^Gk8}z0|RnJsl5UU&dik7`RtJ%7Rb;=A+`T8MBfAWWHcrWi#ZAV!a z(<4V|$vMB@V$mencpwx>>ORbWrrfMg?A8=beXNtPC5%rBw$b|6nO1bg#c~tt(`QiX z6ZJ=WbdDv*EWZo!XfkAL7J=+igL_NMcJ+5l+jC?dUB_u%zc^h)QAe9A(%GvVg zXU{Cv1*mcJpUQvkMW?F=AXcm-hXtT|-_e7WyC^0BUjKQ`lKBh7_{{-HNBHX_#=fuf zstZ_4bqsPEtd$0;)x-P4&AeGt=vs$Jc}?CqSi*3Jic8ktq_A-O+WbTe<5>1D%TD)i z>sheW1HPskxD@uWiyXQSIx8d;J`}fx*Dk{33v&EL!*EfJnYC?jFQ z2(Q3SUyc+x1)9AG3EOVZRxmX=lFGoWAgfKqxIE0$`f^ZNa)L6mt)j?Kvfw25uZWNk zaI=xsmR;sL@?i4w2j3yQ9DvgSBBb1jm|dl@9u&2KMC>JlHTJmqY|t>1ocB}s+R0ZH zPd73cMn$tcC&tLhnsxuGT{(YAy*6>MsLfDJgPzk)+-;r+8mgn!!t2Tq{NTi0)jA8O zwuhPuX9^Q+t@ehT8|>XC{ahhnd7=8x%4uC6qt~|>;QuOwdPQoKQHQ1L1%y8*3tq13 zwN2@;fpJd6dDP;;?{03~m@h0$^nHErDm|jR{H5NhTv&%OR9tc&9#{5Rw#j73@G%JrEnz`|&HhhvfP zX$s4utat)_eB}L=OsOU+FiQ<%d9<`h3N|4<&fe+4me+yBrq%zXq-u%Z+{lFyHgDyx z)YiO)i8y}tXs)u2bt7oNTKER@dn zQO_#CJp~uv&bAzmHRb#;`Wk*YwhF&%;#IYFhyB*IdNt9ea?vW`x7SUehReittEmH1 zs&G_()+|eoW*UmMUqb!I`qMmwmjc!a$0^t@ zi%azpJGUY#JGVe1)(l|a95`1WcVLt6cd^BqPx#JFg=X4`h9atHvd{6fgQ3Hewi(t( z!E&6fZ<=4}dfk{Erts_s3Iz0yB>S&DewXm%)v~B>r>C2kGY#c5k7(kr=Ux6Jys<$H zKiP4mt#8j9G*?t27gF{HJ{$qq+o5snMKPwytRPk)_!YP(f&sD%boDup9Gf`AM<#bz z;&~%gu~*rsRJj3c3zL!RKZ4U2j-)qh9W=g!jA?K+lKbwC;D~uotqv3g?s!CpVEB>O zH`~4DdA8puUo=xXn6i9(e(I9k_;2MkGJkgcR^X5tJ*r$|{qqHkUu#B7l_QkJ5#a%S zz$%5{0rx48RqjbM69)TY^C;~MQ$TxNYTQ)o?s|8ecQ5+-VCcZbt3E&)|3eODz^wth zQ^-^{0%w?*l~JPi3SZ#X)T+1?%VJ3gi$3ZV1v?0uZ5ME-a*7=pyKXwB6tv=-S-@rf zo=QYtBLjlpHQC65SB_>dl~mPkeH3Idy)Jav;_2iO`o_df_PqqfnJg%v9~y!?KES?o z_@la4do;GCK-x%GpbA8=x$V&z^K{GjnM*9wIuGS})!yDMSJ5TwZ^01L5v*gVp%Z&+ z>dhQ>WTn}ngE{F$8E`yW;ceswo;}~))(>ekUxg87c(d~UZ!&l9eB^97Nl3N0|1jsK z-8<>cF_($i-D}ry`3$(9*PS5ZMX1Ic|8O9eq|9O{IK11dO|ejU^Q2|)t*TFzwlNtB zzZr*}`)!Li1zSw6u--&FbXGz4y}`ZWZXow=d|Kv{eWFfxKrZE+uDvscm|8+XuGMFD z7vW3NVuuuoxI@3~VRLcwCAj$SVq~M1fI2<=`|8udm$+;bl=_A@h z$9sOC-umWI0h(|-VM8tWmG90%LLnmE(hHYRzSR46&t#s5y=ot(oIZj&1Gf>f7$tLya;f-0Z%ymjBB^MfmkV(mu{GcxzT<^xjvSWRXzIX-{3k zNu|COMX|e)PM;J9X07*jA@7MP?fcwN)k2;2u%;k7#nNv^A` zOFc1m-&dUeup-(eKA#L4g>JMBi}WT-)^rRoY#O&}3{}v=Yf!6vLUn%4o%KM0tEID? z(g(Cscv4n7J+Ds^%TppeILB6EhYQ;$rl8Qd{oc|c!kqmdYYu0!rmWE%=~s`{kf&A? ztJ0&!z;Padd+doin7GBW?%PuJ?~Pp*MPH*wLpzthD~WD&DF56uFPAW<(gOaNC1);} zE;~-Uj2t}?G`8u(jeU@7!KenP%PdDT`fT!O!R4{@&S!6LFDiaFn%qV9v(5(lWSz^K zJDT8&t~y3Nk3MVp%7b+;x;_7!tgSN>FB7jrNLi}w3v~Wp@zoBow;bT#yb!*piCubg zv<$Pb`W|Kare=gv+pY%cVBWNzQUF7^V)Mu`)S(wk90b-liQ&SEhZ%e0H4=qEtQ3A{ z@XDcESuwDV-J3U-D{tRPcNotNGzQhg0GSV1bjwrtI0daPgI7Hq>t=Vyv>5+#m=xH( z?8HZT*@0?hei37reLl@k z^@-l%uXd(72VqD~Xd!)`JNLIJrbC9qMwGX=ygf0IIey$afH)Zi|x zX~DY5GBf-p{ZhI#9JC%NXq)^axMeXJ(sTl%7?re@a=o__w1@yYa%g39dSP%$(_S zcM&-Q2$@FCDrrF9NPM%7BJ~Scq83vBAU`Y+o=G|SJX$f5D?#SqLbai;el+ukT5ZFp z(F2uhp0sD`R(C+RI4ahdDS+h=e*5tPdrp{+{i+>;*~}X_IYU*+Dm?+~|KSL%IzP>^ z_#$*PUKP^gVeR|s!RACb&qSlTD4VrOi@K^E{2Xg`H^VElz+@ggiR8Jj=;ZvH1&`e*ZEJb-|L51aRHr76fWn>mP?*1^_7@=D0=TmqTFCt;ZjS9$ zXGw@c)Prrjgs3o=uK(4RskjH(F!PJR>)+Q80jRw4^TWHQ#9|6{={C)}(sD>g{ zq#fZGvO-IOWm@>4$K8@!a-y-Y{)Oj@H@_^}xImiG|0HXmGECiK(_p7+Vw1 zIz7GGbhXm65|ceKH);qv4xuyjWjQIUgOzSVJM@hIx(!WP=Dp>c=Wc;=Z58)fSAqIF z`b5PjCB7;F?{F9F51`(MD1vyxl3Gd{=5#am_-O!Gr+!<`zq{ISGHEjIQ`Iayc%^Es zS&Q~EaSzcy&122v`ZNC{QquG4?(W?($zkgA%vRDJe+SsOHmc-vv30ug1blZ`&>HgS zEYIXV$;bl7P~wEp%243+f=uoN;l@wO)4_v*SE39uuBTwxTJ1{#fLkscOI- z{MLLrB2n%KP#iMuu-Xzl_T4#L^hHwl?h|5v{wP$n=BOT`ZMD2?I+d1lsVw!o=+{OA z`4%>mVDS<+*O5==n!q9VLJLY2I(CQZC<3_O`)`J1>&#?yJZY)(e?DGBGTs+QS`5ZgMK5-@22F)H?v0Phu4Gz9>5MF3?BQgt?u&Dlm?2o6=d6eb&W_)f5C^^9~1t5*&(YR%?k$MJ| zsZiW~&GP_{VrDF#<_<0uaA;PGpkrHCo?reoDOjnJYx|g2MjJ7I;8elR>Z3O9)gkVH5?oF3LB1bfbhLWj>JlY(GJ4hZ2;GR}hc{vG*& z-=oi~Zbx06ceGSaA}@?7fDyAw*orSmapUX-vP3t8Y1bK!b9NI<9II{CD0^7Fk1iU0 zBai41m$b(1SAEPsR|XE+e^si;R~*Ci9zJJkY^8aQ?gaFeH@|vS;&&F8cP^KQ!q|%( zcXeb13jLw+kmwZW2s7m(`Z ze9bq(h(weL;-G9p$Ap(RU(D%!Df~XM^T?y%W3r#;TF|z0sh1!yP+|`&fvUHli0>7k zs4~B0_&C~A6q$Cyd;ON*a>DzDpA|iP6?f}U=x%m=ROwjVnWje$ko+aOqk0g7=T|OuphMpk;svZ4pF>sE%Bx>w?RtLplfpp_4pd+-{Y~VUg%oZ;-B>OeYh!4S zV-q{w%F)4^Y*HUcfebD|fSa*ewnU`B~JeoNHH^z0tpOLyH%5Jo z`))vHpnzmyPj}vQY?Hc|mW)4SCF_K4R&m9`pgPv9KlzO9>r~>B^9;;ZJq!T79aBAj z*y9pwmcngdD~f*KdWgSaiP1)B4oD`u7G7EW16j)5NeaAi;oIeO;yrXer2!jJ#-6=B zwS+5>!HYT6hzxOw{*3QyRdAH=kAAxwI0EWkkKKq(>ri@`93tf;Nh{dClzw+z{!DXK zz$JM}y36cgEbIx~aiF85RR#BRPq-VR7?w=z^zLj_EfgHRwg1wt=UlhmRGOxoZgcSXArdAq#I@UbIuT~-tq-Mir;|L z*`YL5e5*_I^bYaVTFkJNh2_BmJVxyhcXYW3G>-I-9<^^N$U&&uPi}5%0)>iD1QuKJ>J8zknLg&-R+%39BWtD^2 z(j@BzAqWcBaXBDM?Kug*#7f~NN(y1%X}sOw)0PG_b*C{C&>7g%hM^~5t~McVjbNd2 z<4Fe%B}T^hU=@Hk-7`8I$y$ERRDpy8SlWVP%JUrG$H}J@jXCG{P^ii>T!){PTBoqS zU8>$mDtN=^>2_-EbfrMMD*m_%#^h@W)V5h)@H0AofNWPiORS7;7SBc%h=K#!HeG+k z>w5x`q>W5VmVCe8u>5wLqp%dT|0{5$JS1RuBsOD94>8+m)wuJGPgKhg58M??v%KeILZ?yuKR zQeMzqr0_*OQOO`l(My2$?@DLm3^zw>da+VUqdt!%oOGREH@C!VCeGF)H;#Pn5(gSF zrRz4{Ih}gt1toSpmF=#Yea0QZiZ3ik01agMfeF2N>x4Cl)7{aWq5Tmg>A_vy3+BJ+ zLUb1y8$qfvRhpp~ZuX3NoD7x>?b}7GM-$9v{fiuw{bb$W0P}8;g}5_6K$g$64`f#3 z>5gxQneDK7tE^=3_D8{S3AXM&F6wy(4dbOQ)MJ3rxFvOB}V;1$!jXw1R!K9bpu0Tq!s{u+!lA!S^lh;w)yv^vs z*OB?2yU|O5qnDm0N#z*|o_dc$zFl&ghjG<;plC+(?PFca?S856;`ZG#s%rS_H!1i2 zC4!X&<@Q*-?yOPFG;J*SE)NgeLUtQ5M*d~3$_k!3mjlv{*&@%+r)y96(dM7D3aX#2vYsD?zGc8n=Oo+*j_L`|SH zUiYs`{`VOUL}Z+QJ8D;@Q+o&TFZv8(=W!!1;O($6X(Nah2f!|`4tUf_%kUd^H zNn%{i+ehV}V;{T{i%3q0nTa5R@rflgRjfPrl zfF0(duTO32thmFk=K?_Zyv5fZvTO%g_IGBY|K#^+1++DmPZl?=d9$}RxjSQbtu$>R zV+m{9Ke*4>r9-4cZzkAwv_h=^^w@keDyUX5+}hk~8L*R;EA`=G6jOaosm3^(i%IJP z$eEOf`OW-DzJ%I$I|bj}C;+9k#>6%;xjXh9m~k!dThE?L4tqa_Tj11%{(B|u{HmsV zq$#rtRkgbNjUu6nQ*V8ZQy*(pwYO0xjJTdC%|GaopNb#WcY1GU+1wh zF_F{J0h6f?U>Xxl;7SOr_znI{{fi#EYIB~sYw8xdFOb=Qvs%?LFNmD3fAC!iBoc3I zwb#j>eu}qPG%gCPHa|$WXqIE6r$;w)388wBgjey;LaI1q-v&%^f#S8Bfn6u)TvV#Vk^=LGloe3c54#JF=C~Wh8_K=x~h^EBbmS4yPOKPd&L?EkQ zH*)s;Y6@>aa;+&EvqNdw<62H2C;>^ew4}E zMnft5Qw`sLo*$vM+X64SAEc@Hl;5NfSx=Ji-NfHtC<~Np`V#N4Rw!u39Pya^mNPNx z695+QMs42IQe=y?jY(HRXy*rBya`_YLmcp?z^cikHlSLBt8i%ory2EZHgx*!Q2#JU zdU#w}$%9*wSK3~uCTyyAfU|(w-0bwIrk!F2_N|VEWec$zj zF(bukdt9o?luAMOMEczhu~P=K3N6@vMDfmlM+3YsC$SpB>QIGKT8O_)2R#9MJz)$^dx&Eaf3@M z)hRyc_IkDOm}BAY`0qs{j?;MXr)qzos}^HHEL#!PQh8otyIIAXtuEG`QSbLYCxvGw zmx`&meF&~T1?ir+2x5F$dA0Wfk>TYTwI_QLA%_E80 ztPRKv9Lo51@AQS`Wt*&!^OdxwR-YNBQ7^p-Jg^@*qfz%eYh($Wqq>9X#X2y>axuJG z-}|DH2R|H|)HO{1{R|9m)ajJPfNxNuOr9b8=m@ViCq<@GcZQVngHwWV$!r(JyO}+= zgix#%Rde;<6H!Jx9b^^zIrHs;_|IuKfm9bnEjvqAPudgIOIlr?$kR3*_Y%1S-B!IR zgSAep`LG%K@D}89Wg)(JrnxfW{d$zmh6_2*Ed$i9J#9V6yqGmvJnJk!1$VHwih`zY z%Gb-XELzzwpx15Vn+SoG93g;XBP4Q%|eWjl(MmZ(70R=x+(lMPI;Gi}3>jg3a; z!^!}o)ApxKV>K6H#pLtuFI%!lV@eEQ9j(SS^iSDk#-BokdEE$2zFYjHur=38;0EG9 z^ssk(43@}-1(LQ+^2BOKVn@7vKyFoXGVQc`W&H&tm<+lzprFZ4v8*8!r zd@+73y6Z-kMBXK{&@Mx}L zP9RF`v)6+|4>yX9l;B%*h-yb^!tqI2XH?V{lxBgb37rFWyBb6+6QM9JrsG$hg~TFu z#-jF61EdX)9q*;IuJBXt8wIA}$q~@0Yhci5;gNw2guS#8t+1M)_5L1#6M}@g*@|AprRBF|%@f`|&R@D5 zIInX6b?2h_G>{M{G^zVn4f^+PdCNj_ooi1tuj(plgRDDYQpCn=v;+0ZNnewJbn{?9n}ey1Q`+{*~mG3NwIia3an|P}`U%mD(cQ zn?t(c53a@4+6YQEedGiXlVzHq6`NI-WbK;cCSnr4B8DDQEhz+QFv($CS;vyHPap7| zUEkV(z!s3Z+>X2NKxdbZ6KRMlbLXz4*O{Dv;eGTer}bdm$}KQ#^Qv2f%B`i?lv#vuJ*Q{O#v{BbYbM-R8kVBBvL$IFi- zZ6ClLm5~?HvVIWZ9@cT!;H~Hi#>0iV+(VogCZdcT3HSMlK)rBe!Y&}r7}-XMakQzHa$k{s|6^IH6Bp1E ztmm$};^GpX#Y1(Pi|vDDaiTpiY(t5>L{Z~vf&tdmG0r>4ZI>J1 zc<4P{2u60m;xwJWph88GPInqee4F}}PWQ+>R{gdXW}7{@AnMxv?Z*g?%X5xZ-ks_T(2>$1?hbmQrcsNJGhG0ta_ z>HifFSEd@sjoCgCQ;oDU8Jcn);?AiX6JAfVzvBP1dQ$KwxGn$n87RLR&9^~w_#Veh za7Iw$TF)adh7`BLzaRZZ@=`ESyxiw!GwwTaveDzWHO4U-&HP)x_bz(<>omuV_Q>8@ zi}p$VJZ|UxP7tr{E2_Nw?7Z{W2NsO`+OO7II0<%>O4_JL26j_V0D#1EbJ9?o+-=Z@ z-HD&DXg>)E@09J2&c8@+YPC1XJm8rXs4&=vdQV?sOqL{8ZtUisLx_~F)fK_PmHfJY zhZ`2xEUhnaBU%sbeDwc*pDBx*fIAei$~=<5-6YDE;@zY75Cj7@xoL@9%GM}qFE@|x zov=e9$^-fiQt9DI;2vj6g_r)E3RLo#n`^CNf3@1TP!L4N4Cl9dx`-w^=C$tx`ygsS zF+m83DStMMH}aC@IE#jw=Cva{HaB@7QFr^0?%yeRWoBIb1`iOz{wKcQ^zicW3-&m>A&lUf=N%4YVq~#yDoE=PvgE)J>aKQgXXx**YLssY>#A2R@4Cx z1op&-l+dtLnSiUrP>)sMOw|sAvo_G2o_(Ed)urBR2Qs7BX;Ew z;&L4Zh#(@yDUVxRp((x(m7%Xwr8ID4E?3sIlL6~#l51nphMBBlcTCDiKpTb;HwD=> zqJ_X$Rob-%W=xSy`5b>=blcLKN=lQ}-j0Xn9P~-d0yO`hc9vAD)q(bn=e+&7x$+;6 zeykTtETE9TWUf1c`#nSY)Ag%ulqiR9+MTo1J^dg!umi0ji;6R=)gEl-1uXI;xG&>F z?|EhIyS`NU=sBs!@E!jv<>!dfkG}~XL5ekG@NvO*S2{EVQTcA;*qffy;hrt{svxf< z>hCY*D}xwAYeUAdbI+pYtG2w))+{P$2c&gNW>=Dv(>zf0O*D;&A|<q)Op}$ z>xn^fqkdg$c9G9te#oQF6sg+3^j>mYvenKEu>YrATPf_2T1>iDMh*2-%>=a4<|jqN zXcA*2pXsHlVxE=_cj}n6$cjHuw5b%-k4McH9vrc{UFoD4P)iWtV`sc^JtohTHY{rj zZXcm)eV1pDb;dQJp8)#D`}Klvzfc9t+ikp|n1`FgMZ`bVx~z7w?i2G;R#5_hogk^0 zrvC41?vr3mfx7VTOGww4ES2=c@-pVg>lGxS=rFJDK*>nqG}oRiC*dLZoY>jy-E+m&F2Br z{1z_hjhA|rqEk7y0!hs>S{YKGOvhfMP#jj5a)aMQ{GKbdA+?ozmGapsq|Lp^e4=Dx z1*skm>P_3&uH^}={k!R^xb!L3r(xlKThy)RYK{E5R#!XQc{1^G-C4}8ggKtq;eJiV zn&~B20C!{~Mbw3?!L6w-eqH5q6m+)jxy9w;Bg!v!KZbXnS5{_~epv1CtJw2gnj} z$32wMKpfW1^I(bc|KfsoVPMH|zy=78u@$oFe;mFOS7!Rj(mehAPPEr@5(YGIjXPrN zUe+H4pmAQPDL8LGL`WEJ7Tmf|m*S?8yYP>%lApsBG|bfZCq%()An5*)b&yx78c)2S z-w^CX_)v^phhoZC+h)r#y9Jy8#m`fmvfSpXesRYUKbDBS9ThE+n=x|3<>ayUBlEmN zk-r2WoI5urM;l}FtWe;?nb1LUA)ZTZwC}vy(iCI>L}3AaPV%yXu$tkf6}M_6yb>!} zR!1QUJcD-WCVWYs!(J0ki}M6IIzJSK=T1>}ok-xkxG0-jNPaE&N?XIJ=*a6p{f0|k zZOJUhX^OmKq3D9br9}CYs?>5-`Lku(f47s&ux~dTJZ;cyHJ2*F{Z0NoD6-psaMYmo zk~sQsNlc@s*-Wi6$|Fk9ZpQv~lU<9>o3T(W0oNy(ck3g&wb)DJL?lN$|1wm1fDSjp zC6gQR4!5^J@H2MMy@>W`&_57q{=^rR?*mB>pHT@*is$TIf<;y>ZMy`LDt~@t^mb*I zdM9~fa<9JW3@_?G19tZu1pP#ZE(+UQt*r%5!j6vhWYPO0gA}{CU7w}M&A}Hpe=E4; z$ze@(E(8nk#oOtYrAYR!sF&KO_om$hfL0SP-IJFsPH= zQ$^(OVV1F;M^W;;n&g8NMg&*hdNt3b+Kt7ylUpr{A?J3}qW?{_^n)>^MhhB7&y3i| z&>ZKr0Qfgytu3hQUWvAr0prvk#wd%egxL4b;*@+#bgQ^&zP^0ECT!%A?Xb}$g}94v zSF4^>Sn_`#IQz7~vMuzfeP%i1>5!Y z-pKql%oUu`7kuf_6X5(-oS4SFc{f^5t+%tAn7lacf3e)P0ivm*aK!CJR-_X5_xfu0 zZbjwqyNw%aM=48|G5ii?uECczZaFE?6pST<)Mv}&pybULaV@kFU!pZb;~Xb_yZ4Em zuSEWCb)Ox5n0Y=tjQc0hKh3BWjv}Zd1)iVq%M>p<{kRr_wMjvg^NhhXAixn9>X9BW z4Vm#9Yt5|k;aXKQA2r^bwG0>|J}z!^65lzWHfeTJ?Nh>?mb9905wC$PKakg!^rocQi$D?{d0q$qo>t_S#v;Mm|zXRYi$Kl6d zS1PN1}(8~CO!=FYX-kNJUIa~NvEKGB3w0vyTVa-OA8oxw^ zpoa7gfMmsG<gw&*1sF z@B!Tv7mm(3Rq3THefE*GnA2W)`usL$NnU$FkFHL;Yi(URDVi1WXe=@J>;6pemrnk^ zu6v9x(EaFYM5fM$@dC3c^GLy4E*Il_AiO|UiJ@)Zj$wWMKo-h27wRC;!G0 zwt~2M_(0M-URzTvU!vsXwY76Avf@%n0={$}M7V}hf*c=hmM2lQ#LTTrunzxs4Pwj3 z6$8ufe;SKX)G=TnUAul55vqGfw=pGxaFWpKl|Z5@Y52sm2~en(-p80#QnzWBJ1csC z##et1v+tV^qqXIljdOvPHVfV!;fYhx9xI0YY!@zDEtIZxv?nKrgm0YHD+46S zlTp)@`Q@3jx6%Bf^RUgy(kQi_YnUPzEtC?3lYf#sk^4LHEc%*OYGPt(4Bp2P?fgr) zxw3r2f|=avSIZ6$=pG3~A1p1TQ8H#mDM^bms)0|R%U_Sxck7GzSsW((a1plV&Rwd6&m5YgwGJsulH$+8#3KVs4kNk3ZFn)0`$xSk;i# zsP?!P#JE7_+Pl7zhp^kM=Z>2>r%lFJ? zkFjFtDW zvAGvP%%WoFU_s5=+iVctKjU0k!Fn;=kl*MRLCdojw!&m^!mQ20cSWP_jVGLNMVZh- zbz%aSIGa-6sN}CD;@WpAqhB=&GqhPEn^6PrbW4UEsn5u4QZ2X~e!XI=td+}86sp#8 z!`tzGXL-l(vJzz^#7X^*2+yY29CbDVoe!a6GoniagoTDIT4yIXW`g6^)KJerT*+XuPJV4MvJI7bgF3uuHNi*RUG!F8%nCx>M1K0N#FI|8^<& z@spE9Q?bzde#zc+DKYiD`1E0?oQKDvSq%ZR!dy7`}i!9@V(I6@XncZ)(~MSDWWCi3hGuc|X-pwp>f~ zZ_Hh`sc4H$Up~XLpmZ|I-m+3vmG!*2Bi*=fm3q0TAcG}z$JLO5lf${s6qMkLWH_G- zJ(OJ2HgKrC!j;wxo~FGMk+MH}^P{Q<^S6=@0w0|dzcVPW^6*W+qi%I`W_O9TurJki zNpbUPg5lIm%uXiYUELZY<*Zql&@^S*yS)1qbl&<6|7nS-NH?nv?ODlh{#dWU2KQPY z%$Trx-EXkxqlg-4L*%@vO}J{UY(R@Xn4{v#zaKN*tLv!1p3-%HNd4X?89RQH9QZ1= zir)bZPxj2R^FoxnoN>R1@MM8j?se#(@E~!9TC6s`9XJz&D=SAh%Q?6VCbA$O-C&>O zp7)iB`4w4B{cyrUF!p)VreM0{ng@0p8}d zly+{xEbgzz`VVG`cTMgxW{TR)=dA^XbF3pC_af)If^Oa|o{xewcTrXBaqJ}Vq#0Hx z$zjrIR9AH|2$V7=9iNT8dc+- zF=EZ$pp-42NTORq6cx6@RTSes_y}b;sXL}8x7=8-{KA-YNqem>n8NR@uP|^&*F2DV z8;UIOYbnj`)(hs=-eUr)cD^k}QY{8_X9}~?$A0M6a=Am?$I4fac-Zb*Ag))humfLW z|Kr&NTGgDe*4LYbTo%a64L`55qJLPz_jtrxbfew7bI`4Zm~5OgrbHcR?gAdrM9l3r zF{XJ#=wI{pa!8bG7zlD#t=)fbIE?`bROY%_g37k34%`&kJE{5jvxuGAf=gE{(qC}{ zEt>mVt3ST$KC^iZ{79`tnR^2IX>`HECqvywh2bESvCKKW~1jje?83N(|%N>h^RDAT3Z6pcg} zqlXBrSxV>?gJa}#T1C5m7O?I)_%AGrfKg%BZI#fSaF}JwNm6>;S;nre*I)Pr#83~O z5CvYa9?Ak~B@>k;S%)4^0{bSk-jab}aI9l$pgzrb@?~)1c@;1=3)>!N?NWe3=&uRw z-bYHxa3kZZ@w#1QJ!=D!npqPRART~g{1tg#RX!Bk{-dM`B!Q}p`dUO++y*y*;w$BB zS96~d4vxAhURXUDFcG!*Z;G7jvJLoi+t$a>;8hljgtT&0&TMnLg2bHofjm(?f4r_L@Z=j|Csoy}xfCv2$?|UF0=Z z_0&I8AMMSs^vG)NFgks}o?&HrgNq>aZj}MB81mNBBuDRA=QDQ$b{5Fz_CS7+CR;f@ zrLB(M4v0nOM!SPfzKfw}>i6aHXU@AOxB={#fag@sEFn^+;(!nVuV_gTCPtM zNz-4yn46^JFZT$rDA*k3hk+j@Z#zr83e2Y*z8qD0Sdz_pBjjq3&)xP;8KrnT>(|_9 zJ?p>WV2K^P7==wtSD&t++u()-F|3Q%faS!ka&7>A9G5$&+fQ zD>l3PLzcGGMYWu=O@WH6oM4{ zs{es*(2e*zlgsrBKZ`p`D&ePx;}$*4KYc2u;C{{;`@Nq#=qiKhWq03&oR3sbmf6% zx$!=)=U9!T$@DoE&-QfWfRwaUU;pWg!QDYz-L(<3nSZ_Fu4_RC!N0u@A%ZVja>C@j zGIf{PuDIiWpJf#ms`q$)u>juwSAzd=KDhZ6q~7`TEego>^lF~0ck~wYaRw z;@`56H=f|k2^Je0D{J1}HUz+sA5PSTJ7m5*RhzWZWp&?ikZk(U4IexN>(`kz>@}UI z=dS}J4yUzjcA7tPwP}-41|27gHiZWRuMdMRpNxz_qQ$kiNPrv&E27ziT?+t`|FH;{ z>GVP#8_cwg&@HMJG>cL**uxi`rh|dg-(;>^O^U=7KVj2j_)0lJ_OZ&p#iF@BKW0#ciA zCKq$tYvQ`Z1ntuh2)_xb{OWZDjg=13o=U*cgBx`J@Crz+;!U1vLw(hJ;{1Ph zkNv*X@K2lxaT63^kKA3A-V$0%$@lHQwAy%2Yb})p*>%Tz&|Z=yTD^w`Z#B@8L#G;= zIXN4Jc^+bewT-&%<69@J5dO0*qJF1_3fC?BI2AJAneX*H$F!xf^%{6k6Pm&@kejwh zwJB}gJIV5F&?eDb41vk6-oXciK(CqHI2<(>sWH6Gvn?KI(4tj9(;<$nL3m=?v6%!5 zQ|S1mOG#7w=m~Mxn+TmZ_kJuiE15|Y%8S=@9of7s<@ij>KY|E_q5xyy)oOqFc`!O=PlnIo_UoSxKId1+nxa}U%_vc+X{A>W?Y|%$ zGMoH6>f|_B9X14%v!Xl@J^O}nOI5Tp0Q-tRaHjhG6mFLC5&L}wGho&hp+1`qIOHp& z>fd`p9KL(l@ZQd`Tdy~seXLxo3M z)wo&RHZS=YG~n(Ch{xw{fBa3kAcW>FPY&NPPk4A^#{5mN&ImzZ@ut99SAgM=C%H?- z45ObLm@p!8#(x=U>5|V6@mRb928#s6261DuK(?@OIHx?h2vXb+f};mnae%i7`ToUi zNsnRLWzQ34QSL9cJx?Z$b~@Ae_5+um5XM%xc!{uEnDgr6z@<^37AM98upYEm&r1b% z(gRk6D(33ZT?Q_t-SO%>G(t=aR#=j5jtEs76h@5e?f$xIy(I6adhCBsw7bmnpQ_IV zS-U?@=K9JZxJQovkD@P+OEO*G@0>GhO`B$xR-Vz!a-A%7Qq$j*JDF)J?o630B9r?9 z@|_kPGxKPoDJfHGrHHrzE(nurifArKf=DiCt|+8HEc1KjU;EfA`n=D5-`9ODbOAtl z1>a@;umU@f)V9=B7Dew;v3s}CD*Oy=VH)b7qqN?V_MAN9^oYw%uR$6Iw`VCZG(e(W z9Ss>TTGfrfIK*IbZ}Y%4G~G}R+~}TUkPUYs+CfkI;<@oT35~&3a<``7jTAYC2C@gd zo2Fo%e!#paw;IbgDp?BU;T8A|@~<*nNW0snscB)kE9iUO3mu#>yCx$_Z_=6jFS<)I zNVqqUE+JA5ZsA`4=F%U}7ub9KzwK`ynYF_EviJ4DX4TRJ1CLS0X1w}quU+^EDq=x_ z`$kX&+ib%+W`c|NBgt;kK33{oKV|^2bR0FsTN-0BS}^1ti$naYFVhmbmzKmkW0;iA zN@zn++ncMiWn@$P<;~uvhO{bH6R?Aex7qY$bs{p2*4Gqg({kojY(^dm`9lXL`}UpW zna&9C;ci>(Vz{Ir)pN|PXK^~5e!(&C_;|Yeuj8po&`X74WaSD=yYCQ)1q%70ezqaE zupj4rQ_%@uYB@3Phvs6w-}tz7zQ#P}L_B_Ozh)2jn(e9kull0Gqbq&A`#b%7szQ%z z(Uata#&W@}aHW;!ZP%xp(EG#auhP@eJ!eMV9xlC&ViQm1Y^v`Bbt0p2)Mga>xBtiB z2YrtXyQ#bWCSPJ`J-;#!E8S!>m))vjm*X2w(w*N(S>fgho>#-tUOWv~GWx>8=Pi!P zecZdIf%Vq=w3nH{tx}&ab=Vz}Xa&TZ>%cjDNt|EoX3q`m&AmI9a|>!?ZA-d-Lp4>}~LKe_IyduLc-Oq_aGJ*^tr z&>1vDK3!@^^_@V~+N|?KPtaF#9BID}O57UA6VcnJJK?wvs8&LX*5CLjj0$1LzeD+$tc86?VRV!kdNNJ?JvrG)q1q+yV{`-H<0}e_bztB<7+TovaaeZUv7s9{SO29xgSsl8hA3LWzxo^C1DI@1G%^iG$ zo(_>|vEA@xv|J^m779}%0U@;OisIw9x$4o2%(&rN5Q($AN#8H4oE2mSwzx~J*TL+m z9z!)LjGndFk%Jy;fKs>A@H^^X#G&zY|2UrGbS*JU4?fN}YYt>~KtJFO&3|3IgiA-& znq*ADto&AYYqkdZ{55QFw@l*HW&nB4v1(&XeefVCVTRXgHcS6C*4IvnYsl-NpHNTJ zpB(X=O=R1lb(YLJH*kwVy9e)OX|yx8zwT6(m0!ecLd$Y{6=zR9G(I75D3Kl9((|B> z&(S(s{1I=!UXlKwNe26qiEN6~SKw!e7CE+-foUnnP!-Jxk98tKN%}}CB={%d&woDj z`a9QRiA=pO`WsL1XUoNWv|@j%JT$KSxs&)`Kcomj+<~h1B6=tS5u&!lxW0;c>F_ZZ zOX=+(GFGR?@w`Cl-$L}GqK78-@}Nj&pi9UiyTCNtO`*PqYW*+|?5U%9-1IhrSrj=- z2sM3`=s~-+S?2i-2&1fXuMr{JgDYM76y(r6Kr!|a8fyu6ucb^BW{Lg&h#NPQ$Hq8F zhd&R#;*!5nil04R(SFB%2gEa;nLH~7mA|Af_XM}$J@Tur;m3~w%PUH7VK#^r$$E%A znHt|P)1qx^mNs3#b4L(Len#72DyM!Ish0_-K^yvJ`wr`?3fe-MfOPNfN? zZF#K}^U<$+Z7cv0742857(?+eT*9pW6w>s^^5|EUOBZ1ke(F%{5;aH+Ii-5c_&f+N zqE&6Z`+W8a?67s$pC2G_eWz8PIwGRsl*HW~p=KG!N7L7A)W3(?C{Ld=#Yf)Z>CO5B zo;=#!tidd`Pb`uz`aeyo1Yv(@diZYdz4i4BPC2KK-S=rO5SnHcocj zkJ~{sw6C=e4e4!q&1z@l8uyk`5?EFg1-2lH?+1zrl`dFu7 z3(G>;TIA=O>&Va8F*|s@r6v34C|=z#UflhyvmCfUi!tl$zE4fTp2U`IsdY_GjNSQUFiR@Z%$m!dGI zyaMuCV0?5ET}Cu2AGhU!&L>@Jm9E!sao|k*N8Z|<#DTM__6;Y|#{m{ah*Y*yXvhBUPh-dnXOJDp3Rs&-(GkC`jb0!OaH{coRnly+KV z7;SKv)S5_m`E~64eg}jJwDFO6YA%K5^J+0xwy=v*kxvHc9YkGkkGYlX4C!KYVr(rw_7&E`0R- zzP#!*T0U_%v`%1WvxP~)gVE^wU|@f})nlgINH#`xRJ!n&I+dM{Go<>VAB|ftRipZ2 z{4W}3zBZb>eE2isGID1PzY*$g(+5XrD)Uu*7QjHk2AO72^&u<-o@LV>nCuG0>gQVb z*0!XonPIFqPUXq{_^2axfgnkEMnDyHrQ!QbzS<7!dgFOl;|GlrObvW(H5*~63O@fK6um5-?vm|Sni`+x8GrNMtH)XM5Rq*XC; zwr{B#lhI|;r(;!Fg-+gIcOe9Zl-$k*FO$UBM&Z~8!mi$M-tKZ)pU+ZanK2qpyqm}w zIS|a0Va|v2$LBN{K0m*DJ^tAE*HuJj>GmI02>w=WB&3d!pnE4J)RD_2dT{Tbd3%}is&3vhWUuuWV;sKU3@k- zdJv_s>%mZtlB%0Oq%ocHZVV}jw-uq7E~(nJ_LZuGW`(@lEd7haJfNcAp0Qy5Gde7* zIC-dB^WXoNJ%zM(D`mOO%l%KQts)7WO0&%1V}Q$HgKpA}{~!?gA0GUPUBfzy!$kWQ zbZ7k@q~im-0}W1;?-V+&7a*p3E|_;-*}zJ=*+%X&Xr z8$$rxjr3r+b65>He6R1@N5qesQ@ALB(U<8|qd^tdvGJ$Lnys8&Y+&Z=_vM@?$*?2t zchk+7rlV4A4EWDbpmU<7%y%Cn?_1lMnvO3VKj-ht1tHuRH8V6D4{(8&pj8NJyidcH zfB?$YDPn}Ir^i3*zvJ<*CMpoGuqh^%7-Ff4v}=-aBU_LE7(H?PdNO+DgsQ%_Iyxig z55%m=v-qPX>6ly!0{K+MT@=wSzf3E5YgRXn2oScVL`JH=3Kd8>vxLGG`cGpG^+}%2 zT8L1-p;$8^4ujQG?*VRpB?sXjDcL3^k5()q(r-g~?PHVHBI;O!L{4YcWJ5Wky%I8dev`hm}Q1ruM7s!HYQ8{XvP;U4}vJs?UL7> zEqeR@hvhx+tZ`NZ5~=UUfGhHkgkM!jUc`Ve3?oLYxBu0ufo-s7k+Ovm&D zUq-4Aqi+T?(ou_PbU%5euQTYuZx8g^teq}N7#^?p5}MdZfz>D0-6i3_qcmBfbxrj< zsq{i?f#y&NPMtih)M5>O?6PLMPh$|BLs;D;cgdMi5$Desx`DVlm`NliYudG-H#$KN zfJ2(KwzwyZFm**L9!Be~-;3i)BR>#bDz*3vrX$nsV;o4rA-~e+xxNajq3xQ9X&QA( zfrx;~=;Sd!-*fid*~YAAzF5nE^}&h$M#yz}oVj6JLF!P0AQ4QoB%&3Q6FD7=!-=|3 z=I|>Q35wU#!ksSS*>|57+5&H8&{tbx-=(6~I)K1WgNM+WbtjuV`}2tfZJa(y!ew2` znz2RZEYRMg{v-6#H|doM{wh$9O4pt|+}oC$Fp)bE=3R3twsPgOS3k&n(3_LKH9LTS z_Strm=c~{q{b%^5BBcqK^dm_l$it{e*+YeQ+87z8Ju~`kc3h3%R<#Rj(L(AdK<*N{ zQO@%MO(kr*nbiOkK@*|OrXZI{wegpUkC>jdeJNDRod8-5x5-8cdMBi+Ls4I#|2SeJ zRx$42^%KkRthk4tD@gnHFJzRkBc!?I)yi$GH841D*V6-BhBwx^S!+j1))hL25j@pE ztQ1~gbUm9bbj@3TQh0hz>Ig_uK{V>Z@`ECdZ_{=~Ma#v6hUp-SIW(9j8GJcmmEg0O zE4fP;bxd1aEa7(B`EpFBmS%nBhQ4xbRTt=8!F<;bt<-HUg4+>oVuwbyA=+U7GteN0 zC}I#auzus6)S_daCMel2kiSagsn&0pXEr)9Jfg)xS%fIwz#UO; zmM=7j13*jIaT$8=)s{gRLrwjMg7edhbNjg6-&)LJ09BPfS#lCUnR$rJZ|`LtsP^2? znzW;;c6p&3FiRldLY8@d=pVUicE+8%G5%uLC=K&P*c{0t`{0J#M^fHmX-A^9!wE`b z&fvZ2R1`LLpl52(!1Fg8RHWWeXRMwkQ)WnF<==bEg^I~gD{_bO$@o7$Q4eBVPHiu- zN#~w>J+Vrfpj}8RjGtK(>XS31|F@2ZY*jufg_#)E2bZe<6K3-!2D#v+9rI;>FKagm z)9OJ`^^$&_GHfsTdENAB>`Sl!_)CL+@X=lG=L`Q?lf^!$I_{?q{}UIOlc*1J?yN3m zR6DpxlR-Zi+x~NE-@f!tDw@xBnO|K_=+UHbWh;>XeHpn~U*Mb478Nx^f@+O#2d;hF z^QnlC&bVMCB@i1MoeMI6N@48e6;xx`HW1%9K5JM}?<5_)8waZ}?zMJfq|~FIM+u2@ zr*38w)0ljd5;Q)6eoaMJ8kgt%uDmp_O^H+wv+ZAFF%J#B08Qq1Gj!_dA4_Pw-N#!U zX$2n#a!u94&4XGbZed_5YDI!sZ@q#dhg%2>2hX|OD8@Wf&X99;1k#(%pa6Niwk|JN zvNOQY-qc~6ma4r8b^D!Q$FPit@HdmErl(w;cz`6E-IxqH8(*SL^%6J%E{<&ff_XT+M`7jp3!;XSobR9{ ze>&Q6^6x#RyU%EO(R}M*@H4FgAdE(Jr)E#h+mr}j#)LXV04uLQL(|A+bJ;xivW7cq z>u4$EoRh9axUWTj<8279c*%@RxhvRDTdF zP;wmc!mDh7C$Uj}D>G?$zrGWQ5Iu!ZT=Mn3N?>%sCg>DE1xEhahun>B2ok$01V)2u zVX}_r)0yDrfS9HL(l(@X`3`a6%K6*}P4>&bfBJjRAyn|zf9ACcdSM6bx3YE|1QF8P zB^C?*L8@Ca!|m`MjE?=cuR#-gGizzXnyHDF8LBVFDu-oFbFkJc6CU~YNMJM@Iv6Zy zgbqMuSGPTo*{6P_MbjJ`7+>rl;_90=GZ{by&+VGkD%OZuO=h!B95G+jE^RO3f`fhqsd~?BYOzu*YT@&FK%4m+f{o?tsS=k zCF06<=yJ~Kj?7@|=q1HENt%_h?Wln+pB=e;dq?UHbZVGp{98&_7$);s&-%0TEi(bF z<1gzgTH z22}Q$M{Y_I5MYwJ7#}MftfnlI^C3MvA>1a{5VL8aNR~@~D>%Y4Q~;+w61zZVRPgX3 zQTHRQ^7Nx)@drwQ5+RN=3Jtp$=q=m^;(etw@BXBA9=e8Wi~hF#lbc@ zTcGbUC{+kEPLW7rfLf!|OH@r%=C%i9S6)>zViXyrUJ_2j&aRalJW4!0^=X)Knxr0r z^6$(p9Wd%$f{84bY|ojW{E?z}M-z4%E?`cS)oFRPG|$x8 zOo!fF;wh7FubSC7wFTpR`4`p^jIF(&yJ`oAGK5`Nrm~Ktx?GZKJ^ zfI7PVBS2Q?OD}M8k0}OP&SkzffY;NsVO^UhT)g$ zcD?bm2xD5a(9WG)3WUOwQys$slh^!)_?57QWmgc=b&;CF%|p1JO@usKHA}{o_$!8p zz@ewUD?GT}ZCXm<)SjNrlWYVrC-oIBlX7~-)cODOxM{g*)mfJ1R#E$2_9VJGRAQwU z;f9Os2RiYT_nQ$9zPx%x`nI_QO+WVYgMb+Ya#!HP+}9-AZcav3}JHqwyXZ-Yq8~ubBAWq%7qQO zcUY8H>RB4rZ#+`LFuXO*tri1MrIShj`@};?dy6w~>_*wt0=ZXinGN|@);y@&c9FXc zxEt@o{E;?_ol(}@sPSBwuRONuY?;S}C9^;o!!MVfn(^tPKu=JOGfW9$lDEFtp;>G& zuYAX>Bh;ZlSsV7UxHNfnL0(f3Zs(^vdMu>VoD)&6w+??+Mn!Y0(t+5fp%d#vD*y4= zyU+Vze>mQz`j#MwYL#pH_Al1!k`h|U_GVz2ehQ!dW>!-b;V&tQGuWq0~0HF|d7n+^ZakQ+?UK zWCa<$5cwq=;jug{*v0=NiZ&>2_xiI+R8U1rST152!(iBuXOU@(Ss#iN^JQ#d6 zzQOv9f?~mcQ@r=_s7u?__^zi&TIWtOd+q1sRZiQz9C-)UMt%X@&z4L&m2CT>?;+1O ziDN+KYi#|yu<$7c@FYZG^H!;7LeSoKcw2w^wtbI(58QkdOQ3Ce4t>*=G8VoOpo?8|ebsg6;RJzE1SwLpnRt3Xt;|MyA zgZ3~>s&a3eA~ZpLj={04!(=c5Ncvl)1*YLSfsHM6DzFBdPK_s(XI;qZ^G_9f5|!4; zltL+WS~p7|+aCelzxy)8q#t%zyn)XbX)|3?BD`qqPeERfD+A_u)_j~zJjrm|<^j#? zW4@24N!UabrA#lpKF@o4t>EY+R#*LRHtYCxy~EWD%GVP?dcEzfQ_y=zE6gM7jL(RJ z^I^EVr)_Lg5&YzRXa*R)Q`P?p!_MI!(T`0b=A4r6&8d|Tsfk1ck>%C`@f5FOY+W%%9U=39 zojf|y4VE#GE>(Wu4IyP(N&U6ORYPc1>?r0$mh%!D^cR4>aM|6u^oQO0Qg;PQVc+LD z0+PDrMm== z3cy=lt%f;HL}W)j(#5T@I_>*l*x0V=uObWzwo6KzIX+WD=fIl0O<=^jJzBtMtv4^> z`bNLNruLB?B1r@*2r)CTi4OUU^%J^>mO1{ey$J;@bS;t(m|%{^XtwTVWPtVxA4?jQ z5O4WAh&qzSOV5qSB4AD(!QbY@jjyBYajAx>MKP(CN`-YldpQBN8dTD?f4G*qBrc>V z^RzMtx_Mu1pTgh$p<#S5MzZP05A#1${95m~^&Y>+hN2VCGlKgh>#?JgI+2A`B|yxQ z=RkD$$uZ1_*u`Xvz4pW=AKH_6_sjv(SxK)r_+4cnC5}t-zsSF2c1KdiLnL!fX$Y*P zazEp){(J=sxLkk^uFfyLYdjpX@fCvZ$TwmI>DUKX-zk+D@8ajm=pzj)!8({6J-8!3 zcB%MfQojN8I;FyIdY9uk|6S1;@oi6LXwk|@6LqkoZg6g(3%BgT_pnOeFZW*Bi2a|n zDqr0fLS{RR>c2#Uf@e|5r0>JxRTC8M$K*E+aTZk%rD#zX^temygRarE9kT=CqY)`` zLj6Ot8b5TN7+Unn=4pJsUJCa!9PM$eJ}b(r5MExL9+~2Uzw|!D5Wkz%=Nx#deYb>b zHW(nSG;^c%=1PI0rJ`*LX-->tDpL!cLg*Sb$DBT$nYyL$@8c3W@~`aJcjZb6qukZM z_l(3;2o?!b8O#~CT4PL8XtZRh>m$3B!#<5XXA`H`0ZaN0r%wKH#z(8Js=uBHjN=7L zKX%OSA!Th-N{vPRkRduqqj1@llT-0yRIY9;6t_BiyuG80($lH_7tAT`-Yk#ln*^(D zOk#YGi3v3h>Sjq)Y)>A+BcN=!o38Vn*m0lIGBcMtdXU+vz=Eay)(_{cdnvpy;vD{= zm+9SVx*t_a1>>}0sVlr2pkPUa%(PA9ILuDbydJdrL{syT>~G9XLFs`@DvS}M(E#7-Cf<4njxgp%~Ir` znjJ!Ti~7ptfuKJlo4EZAmzm(SVPA+jFj@#_q1?AEoXCL|JDGhLyfBx(`9%ynjDn4~ zLIO=E{QP~}vdokA*W7fJD7@Rsg9fCCh5+mb7mnDGJc@Tm8L16dG0YPD^ zaz}iy*W&S)2I^hQfNSrXm5huw{!Ne|xt;Yw!71^_sslU&EK&EUa%ociiznmbO4PCB6*lO|=Bs5>k6HiDjWMfw`oGEjVqJ`+2%OhG`sduIu}ES# zQ}g@8YrFYZ10^YPiE;m@$1DSsU`wlBSETnLnq`DdlsKp!k5Un7qFh?~JTYitxqRQx z6U*v@?W!T6$YMO*W<<;nfk?6Cbq!|@?F~pD{>-|$V5nX(Yn{A@UR_&m+3+PfwoQet z&cj(A!iGqUJW3Y@R@T}dseO96<7U){_UF@g!TWrfX@u1P@Bn_1L~uBy?hZPWf7*7S zw{vH5Q*%kNpUTu$k&*PB#oLJ)zFo8N;q0CWzX*e6#|Msk=s%+3Cbbm@-qwFEMt;s~ zR|hBmy=R`MDki`u9r`qq7S3+!X?RuM&zwurI(Di!To!q*^8H~GO1(c9*b6C=Q-)U(~ zk=@sF`i5cWX6W$Fe#yE^@}EQJrR~=$u0R7RXknd+21GK1i|zU>GUZ7bf;XE)q!2b^ zhaSRjpL~Bw?@^`kmNXmXcsCJ~&=lt-g$wyc3r7nuwbs0f!m16g$}Y&lKsO5+HonA| zY={7a7&k^X!&d2CFOVhnYwI8gLv-IxhoCR(=IL2l=rVtd{}OkE|z8He^Nn=`N~`H(%&QSR^ggTEMq;{H=BDp|BXXsg3mp z3p5g#KW6uA341ZI@1b$9-Z%MS7I%}=@O11nR#(XPMVgz3QhW0{y6mm3Z^)kL$aHQx zbi=q&bNRGPedp*Dw7?ip0KOf#tQklv*WG7TaztJdic8_#7Z`#KpzTJWCdf12okevX zrenI4R;#XB-=m+7lzj8kWw@7&JeQYQ)84k#3o+uO8FvY9sIs1|j+LrRpbZ`B)Lsq{ z#IJ6peLm^0{(1atAV6LQo2vOz?N5Lvr3C>HigcjLKct6?(O{FpBHRf64NCIA0Fb8diKkOao}1OLCz9 z`-a`w@G8q*hZ9>Dn^fh&R$ex;k}l1U3gzW3dX3KY)w+CX8GL}NK4xFRNaro`JcD09 za<@2n+z+-GD~1a{uPT}^8wU(toz4Anyhg@+E9MeD#NM#SqzYqabNnZ2{K{un&p_2{ z(B)J3dA|QtL|Q{cfLcOXT{l%5%8I`KQEYV%)v6F&PEStDvZt><`4stlT>26%KjvCs zGPc^)KN>5?&j|(uhm>5zq+?vcvM)HWmYk|+(2SYKn;*A=MBbO(6e`$D{_nPblD4P6 zO!gVLQA{^rn}O9J^u-<6CdULhpLfpxvh-~IN>^6w6uB*h`)PG(N9a-fiCGkNt!g8j zrCCk6b5*+9VZ>9FwSJ3>0yRfg6ZV*dGcVXMAH<&olyh z)0>d#jZj`}1mu6~uOB@gJtF(P%CLcWiqI05$`smRCj3a}r!M9CT_wob! zS-f85++{2bc`(~`lx{lliV<1%BleaTL&e7m9nSu)Pc1XmjJu0ong*9ffo6dH_WGk~ zR4c47i00K-c_K5fR&y{CTn*60pq;xHtMA^5m7rXU`bp-3!YoV&%O^C5=SWNQT!Zsyh5M$td!+O$6Ydyjri($tqwVMllA?r;-Bp=Si_h4gYnRxVGb5C2LQ zbimG0>OjKYam*8P4dhuaRA~GuOFNVBaJ<#i51e^n(PaRPiZ&IwVS^v_a=3{5uENW# z;Q|TMVc-K}m#uaME+kN+suj{})08O+G90OiDowR$7h=9dXwP^_xt-A{*Lqlghkrf- zo!BBw$)%@YMDZCrpIj~$7-*jJnzPG?_tG`CSfme|4OtVvt%#lft=tH4c(Gs>zmvtP zS%F19R3p3E86U6h#172yc*7jE0gW;tZCH9@B#A(NSu+8V-RC?f?IS*_G#t;cj;44O z2B!$rBh+HXv!%!3dJhH^rwBq3t=+#+{iR<~*|fv5g%d74UFW3|8URwazUH1hs*#re z3i4HDzd$j@lLs?Cdiia(=KkpqA$s^1P9&rksklOdsCWF-de_1nMk{)>I;~vciPb_8 za@2a2#ORF+S9pi1Myj3AS20*9dl8MBUYmaEfjX}UQug%y+OV(1q4e`IH3#? zCJVqzCZ!Rs&WKH%BNzA`UoUm+G@w@mUY&hV&`JL{6EP2bB-2_33a^Y4CDl#w@=7y+ zL|7;`yIKM!<0iZm7vBtzS&T6H1;Vv%upT=eIYzU)TN4-k3hM*-34jlh(RFWjo(r?v z@S@z2p9D_rw~Gxtio-RBNSFKw=iJ`nf+fk{#b?T8Uwrz4| z`PGV3b9W2xKEeS*jgmP&W5C?*$_ax(< zVyYwe$I#r*i``be-GQW%jTQQq%c#fihD&6C;2F^$E06 znY6Vy``>I}El_qRH=;uVl~sUe@`B1BMIrt8$eC z!&u>r?y!>uev>cqR92}o=@50T-X^FMWI9ds)>c?f?tohlF=LDaXIxw0OtH4i>&fKM>ctudOI7V9xJkdD0|>dEo;d4`nR5Jk{Oaj&h;*t9ZS^*F#?PssFBS* zE7;-H`~|ySUgUrf3zM=5bXiQ#HA>EqFM`k0P zot)fCWm&Ka9NNzu`A34Zz;62pEi;%GFx@-*PRU4T@2@(kUP;yTHh?{{@b@O9?*d zu(na4w+%GH;O!=F&i*UPYwrivn~g_aEgPPUnI!O4LcjW4(1%!Y*cH&(swQ~yP6xz_ z1Sl#7;05L0&xCqOgoRP9wD7);Yfqy`FF${>E1vD6#xKk1UJ8)RbqDwyHRHm@K+EkK zDY%9HG%OIaHHFhqn%-O)@m2>!A!|t9?|=5Cn1UL5vZfG7DJb&FKIF?Z3}mvEzdF^C zHK5|5m(iVIpAP#D>BLyDpn$*IVE@Odg^J|l*^vOyyh$n59U_B}zV2O729> zC|2uQW;feE)HR)93Hq8Fi*xic=NsIrOxaOhdhSTIq z8Y(RCgs+NpetoXx+^q%XP{!*%FYbT(!tBfMl&Ayh`Rag|h&uAeEPc+YRqKZ!3RoQr z4+~+wezzST39Q{yhsCYYqwS38hII#>pVI(c-4Nv&;?(}yV9ep`PZpSYXBzkv=;?^i zA@Y}heeC*XB=msYKB?dAn>BlwNuL?&zQRG4APznT3rApS0_-k_U8#3J;Qf?MOM6VX z`YcX{8C7WQ91G|_Y#$QRUY%h@qn^L2!jkl7y4Qs1t9Sz=1x)D&ow^vqm^-OvK`OR- z3l=XjYzCFz11rXhU6CVei%|j97{(F2#R#xvSb=>YJ@`^PS(3s**pf3owdKEPmNTynV6C zakH{g$46mlFYp{AnVSEY9$MmpR=_*RjoBcQxTq>?sSHi7+}G%4ATXn>XsUw<3|3gB z4#U3v`d(S|75jmgSCb?SGU^2kL+l?`dspZ(;jzvzde=Ey4X@_WjSvLM#$bRvZ%V1nHvC+ZxX3d%Nqf7Y#^i?hc(=X}x>C_=(Nc#>~KK zxh_z$P$!_V=Bw|hWJoe_DPvPgZ~wz+*Ke|1&V6Bm2)cumpf)>WE7%++y(Qj4NvaSC ziH7EZCmMT(ylo?rc;cxPa(ror-_CtRMBDH4T)~E6MBv(c>L8tHr8MuH=BU5a*O*7o z6x0n_I-2bC;@l?5`w!nz39*Y!mO~8N^^{QTDBok-wQC6g%oNXm!bxhg-k;jvvc>2} z9y;wd-t)#5)+gBj9?zh9(`jn43DV-9`uLX=`f1t^2EYH9(Sdqp>o7!ndG|{(BkJjf zS=Vg2`>M7WAOHFa1Rc*-OuF!k>}M8Aeq*0hlz0)(i{I$af;GYYFeM?17qwS#Qnm1|NLf+pA^|4|n zv+6rjUk-|2f)5|7m*cpfSbsd(MDg=~i(nN(ta3U6w7(=5I;Vb}=syaf%nXKg6qu%0 zr~6=4AByk1kJB$ePY_!jyX!hb3D#>q+1=Kj=30-AD8}6sv0eRdL>De^j7+IlDPS!4 z-70)_)@;1K>O+YjrqJ;reHA>DaNOhkg~xXi>86#-zJVI6!a$f}5O!X9JrjQb?w`^3 zV7z`xtZWA6s@Ts*iSwPf{zCO|p{ts?N&1(Jo%WPV9VAm#8{{Qu>FKJUE39C8?G5ymz5Awxe$C13YVPY1<^rJrcG7?b<0t1Igor|R9`_3G5 z#I1)P(al#BV}#9v)Bo8WE`7_<+j^X~st)|z`OpnpCbd7PTHQ|EYe{0ARl2^vvFpd^ zG}vTtk8V3Qer^>=(6wsV9I}ugL>>dyHMo<O&$ zmil+JD=wH8EXf%&2)y~~=XUhM9}7z7jLO8o-h5#%4v(A>v}{5x-vlA| zrz#LZLvOEqQ))HrM!l9VG=ZAb+jFjwj7`1!6hwm5_?`>Id3PE+t(!>Q;;alPHF5nN ze#^fjX~)wOk7xu!c57mE;}?^86oySw=Q(UDgT>h7pg%euiKS~z9$o5=L6l7_2jCFK zpAG(~G4`?DdWHvBG_Y?ig^+Vl)Zg^~-qZSt+>?fzx9LIaczynRkLCwCUNUkfFc2ep zq~ztytGnvlYA>sXfn1aP+i+`G+R)NjDKnu7B}jqIla7`i7{HbLTs{|N&-lUXy_*vG z@!%l})A0}wyu5RTyX-gfWBU28$P7xvv}7ZRbPr`RZxgMahFgCCqSU~(SmY_VMvu{l z2Jdh$h6L5>JNK?XY(3}1vi#+*>Peldwb`FL+Q}*KG)8i#ECrK5L#}_HiA>*%$gS}4 z#WLEkpDOj8CTYw;>4mtIWatbrgt+v)h%2AE>G*6#c-n&@AZ6~qa`CK--cVZd^2Tf9 zS1|0}!MlHcKtzw-PKt4SR1vv?2`5~hjOO^zyqyS=bePd>9o1h4d;eNNT&+H;)<{}e zACr~xG;%O`FR_Q&UdCwK@yR_@C~&PaFjiGYM5@JO=)1dlm@=s`^gpi~s{hwIrKri* z6j`t+t!7A(l9Gv;HAV~7RtZt;j@6H!n9u3Q-v@#?Pv{g(_uLs9?85g1>8Q*FEO`BMDt2p743r7?mjmABm7qT~@(uebvyKc`Gj(TWRr8zGks;0cF3J)L` z{)%)hXf&ch^i){SpmuRawYM+_R-1lkV6~ucozv~N|NV`@kick&ysSP8edP5qcIRvG zOr(`go1=C>db4GmJe7UL5F)sA^3qYw0`&eN(Jnh;WRsiM~D zWz_KmMNJ^BI5O24fLE6z_<^U1|J+6bt?(OdZeUN6QZEw;;+_aH{upw4_kLpDxiHH) zlDL#>Sg@Epvoo+lRcz7~PeHX%{@|t zUJ3%qr-qTq7>3gBT;|yK31yZ6_MQv?9i$NC!He>VrG|3dZ#$l5z6PYMnb)DwKW#+$ z%IScU$f>l?4r4y+qu!hLs}L-yjo(h;ha%OsD-EWn3}^9Xi5(PNqOr0Qr~c1P))4gE zARpF&%9Z%(2_Ocx&};PLDWPI^9_)YtrO$(d<6B-*TukQTjuU+Nu#^D|L$$ir3V0Is z-l7k~ldf~GCCAkfZ_Tie{>bq)( zW*T+!G^4}0@>15)lHAW^lp8vZoUJ2s((<6~Q>a$Jx-NmVAQDnfU4t1SEfVaj`_Dgb zuMQ$JAjt|W`K64q)V&fp%P`?sEWKjOIjPc^A>QtKirhhXm@ss$ajfuj)ICfzG2Er& z$?jVuzJGkLEan7{ZToQ-v*4Y^K#x84r~3WTj2hAh5&w3S9Hc9syIyRp{PDO) zX)mfY{b5^ktcwNh<@ZPF>jorGm{ z=G-o!hJWo#Xsft~u^5WCeXZ~tytyB|_Qi%8!Y9oIwV$0GD`+V{IwU-&YIon=g6IdT3%u^XvNnQc;2Q!*0 zav8?^Mc9EFH$i~SPzoIp8XpfM=fJn5XKmgZt}qg_p&v zX8u!rSdYVLdP|ua!>24x``2e(RQhi1bnrqilRsNXgX5(l-()4g5t{K=z zgCT)7aHE4Vbq5~l0<$XA!rG*}t65=_8r+4rcUur}S*3!mu;6O0kXAlTk;f?5kub&F z+2Werhg-)ocGl0k9>5)4DqQ~1Y_atc#juguaALL?z8u&0CPIguC5>Ns9;N;544|skYV)YMD!cR1`4aQlIh@yw*u^km?L(FZQ?w7$Vr(i z8ou(vU2oPo?PKCzCUt8Wycn4hqyqZ_J~yD)#9=;aO-6qSo}I~(Zf?p=g4V8QTKhTy z#I=FGu)D&-) zJVfGJK2AqZyyI+$S9Oo;G5Mh-rLW{ob+#xnH}=#w*=GV@K1_w$)In5#5ci?T&+8IV zXBuCNGM60xcu8q|STWni(4q3?wu3oBI}z?Ol`4;O3b7a4U3)se5NEh9YWm-^F|+$W2X>xni4-=D0Ma|_#w}#F8E)`Hfw0+GTe(jr0RIHt z|I~xp<(OiG&1EfoCmzq8ryrMnKTphXLn>hj9e3>1aD*DsgAwQ@boDrI>1Eqn#8bGQ z_ulGTjPUHIN>zXyxKTIM5+Ydjk)OBu(&;S5R#vwG7rfHnC>k?E?%=AW+Qv4&+;&F6dTm zM%YYaF}}|rZM?vu1MN9KnqPjV0)E;SUT1lRKThFp=^a8Pw!4(+GvFmywR5E0pBBI7 z%T9(A%+6lyRB!C74(Vv=tcMBs0UlY~^|#^hFbfXN^$ar?2UmS4X@Nq-6#7dA6vJ2B z5d0lH>(;3=6PRX3Myocs5T_RNHZxfWQCcOrxCn@ggfoYF+|n zZ`W^}5o58U$*wlykiy5oK!#E5N#j9_bn&Osibg$h7WpTsBGA_)D*izYp_6(CF%bvv zVGbHRiKbb1^#6$$OKP*EfL|7A(T11yWqx({G(@$kbt<^VV;erd#wqPG;MCl&$tmct z9dOS+3;YBqkG{LP*$3=1r%1aAr;YLJ^Q4unGkXZgf7>eA=W~k*Vo324&Ql(&>KJ(1 zgO6>C!rGXn_&DW>4G-~NiOS9j%MwT|y|liGBz%*3uUA*-SLYES7_DoRTBWb*Q(k^+ z!thc>81g|MyGC3Uh3pC`uKX_~INLoERz#vku>juF5xb`9~ffD6}WE$im2lrG26!;f>kz5}_Px z@+Y~`lYp)Jg1#3_9l~b8-w_uStF33<%fMzNv+3u9c~iTibL}ra(C-jIcd{b_xQa%> z$xyiNE(yno=PDrcsrhC#Q#zwrpElG%!u6yFY=dCMSGmC{8v>xUiKKIW{EJ!oY%B4a zmqn-Yb@3;My_79=`TGySCLuvaqhyDSq*SR0X~AwSYY)q#)*f%>_ zC1N%a%;B#)id=I6{Z5Mi{~W!ELy~FtKio50)3lA2Svuu2t|cxr=2B_;n<@9qG68p{ z+!8{@T@>Xz(_(7oxS)?R%H)zMD!Cvj2vcsUk*SF(3TdLb0E)^YOYhbD4=8Y7_qopb zoX;XRZ|I9(c_QNDGglVxgb!g}-|}fNrsHN;s79AHL2IsDwQ#%WG*fWTKQcneR9W6X+v&l&Af zH3eCy{Bl=S7aAGgGbh&yLC$C z3qia?KNb7p;rIuZ*4D0y%ZUFNkO?bJQcV1vv^Mt5$Zv1#M~am6Rd%LX<~V-6;2pcxq_r`Y zZv=s}Q}o9ZdX<5ncHM1gUV4Tuti};$^){40pNYKpVDIGg*4T{QD_<&&E^03NMcz4| zp$Bdyqz`z5Qt&g)DemjruiLOv$ACZrH=0NjbtmPmpYH3R1)GgW2Sh3h-ROn12Q>-) z3t4odDqsW?V{mNxWwXpV4Yap`=VZNHlJ-kVeK6!RLcj91OE-%UXOWGp%s~&J2MR}n?(*d7$CFZc4S6cS3gg}fbw1sAj zC&9|@+p(1CCrW4J&h6(eUptx1+qI=Ipqpr!s!5f!=s&Cg@g7G-7kZ{&=;zv%TN8?w zpqlM#v=S6l5(zj^o1k)4zyF3@9p+JTaB->%mq%CUO)R99+{PXrKfmA@o(+tNH|zxP zp3B+GS9)L6yZ^FLr!p!nnCUZ}&6fpr54)@XVH~Ru7`WbWq2r?FWKrz2f)9JDj6h3M zW{o{%$?!u@LPI`|VMq2cy;-vw;dNhqzkK@et3>bpm+QB)@|=wWLW7z{?r!I`nU2i1 zsaH5aSAHefHRD9~d`yQJO|Qk%5k?C5>17ErC~4UCCb2_2v)w<7oRreEo!ab$ua&I) zXxZw(s~`9IcXs+-*aP!F&kL7cbDyxCP3w15+Y2J^YE~i8LCeuntdgq0tmjK>H%L96 zMt74=VQgoYyY?6)^X11g@8XQ)vvbxtdOtXnqj%Jg2oAmMO~@pB^555`-BMpa9R>4H z$4}>I;B~VMx^qrNxN)X{C~gXp6fj+zkM?#^U%a+1Z$JKNR~8zIn6Y$VyDCS5+(NRx z`Y>X3?7Eeo^3iAe^_s_0w}Jr1AQY0FO{ds8=gC(tP7W+ znOg`@ME(!nctP8RU$5_T4;n$x0l5Flu%s34c7XAe5Ds&R_}MQnApMkqDf>DauOIR} ze$sqZ^0GbzpUp6_d!dmb`$;`A{Kksx;16;ncW$wE>6gbe>48U9A8Vme-e-d~fetcV zB_S*6`gJUZB>tVEXK&Oqzdi<;wH2Yns&4_I!0=bHL5g zA3OzJnR(aGwL4@de0BfRt`!qSL4&7l-gOa^t(#TV(dNc08ra1Dt4Uj*{J>wbB0)K%o0M4S%sW~X}{l(U?=E$OyohOHGA!Or| z|Bv^>22|ZVOlgZ*)r^afV>X&=XXDk?70;e>#B(uJ{g;*m=dGeyY!e85tOdRw=GIoz zFARi^H3}Z0iwu_C__b{YPj@|&XvpkrYOVumzQKz=fU2h+YEie}^Q(jVrLgZBfw&{qXX4IHH@`(IXymt&%G2}W zKPpd5SOl-to41oC4fI>!^FZ#t(HP((kY0s!+kEqjITPCs_f0ywplyUv{8X+WnQ}JN za2l@{SabOmGtHHTS0)W)*BGo&YGxuFcjZMg~4Q<*=>&8Q1Ojhi0WHewchGt_n#Fja5TI81m8^?C; z(0-0-bGr76u6TAn5H2@Zr07oAS%SW|Pj_-BC>CYv8C%0^$UD?3Mzb=GyG&88Y+UQ^ zYszDHj}+L1Vp}ZoBo2erQPz}#{5q;)yM+1l**NT!wpw_#%&F-mG0FLDj{Eeg zE>BX1r*Go&G!xqQ-CQ%Qd&*(e^TSQ%!TV{tx+g$T7><+x9_RnTsVJD9KdkFAv5{+C zq|1)em35edXS7WOu8#*UNRMs{ul^ULMOrLm(_$~WzMCM{$nSyHTNe>1&y!BgShNJS zWqjIoYLpofO%r^a5jf;3gTPd`(298GPID zKVad1F}SWPIna=xWjrg(#Dj$2Ah@ToM^R#&^V?G8TcPLdhj-2FA11$LFH+CVPl(#L zHSC#D*3c*#Kv&{P#Lpu~%N)Lsedt|EOeEU3(v&*Bo+US%jiwGPmM*wygy?|f5v$4( zD?#+T2V7@~8K3Kqp*Z&$PAzk5;mQWS)k=T7!0r!f&AZ@G_u~uA%n&%@bcV1#tmzT| zaV_~mHMeGSjYo>fX65n44U>eAPfeQ3xlJW|YTeZ{BnP5qHZA3aY$7FS>YbsvD%VMw znaW}XCM4(?cp{LTY5V+WwB;*iWZf_oFU6>U{&YUN_dLWqN(oBktAa$0g*#Rz!$%uDhw$s!B z@YlkF!@->mZ7q&S_fkXeCHgG>3|cej$2zs43?5~u5zJ1+0EX9K`q zBNBJQhsAC`9!sxAXX=5{{H-dR`3;)RRAUY9+h#qTD4!ZnZc&3#cdL2u4$4k+4egYQX7fLu84-$!Ok;6ouu^ev6F3F85aJqU6l!HhE8Dbm4G8owRU<+l3=TM0ojL{Bew4L0NHqd|~RiH{;JEoHeaz zDp<^VBJ0mjOnJ|BJ%CHQcrW&;$DQA?< z)1I#?@1fx@Kn#&g$hr%fx(~3U<$iJ2`~7Td#RiTaoFL%&@O{VQbI*tQwEL7GC zPs~WmVL5e==K>|Tdja72;p!BS_Hm5q%@00#0^tlD|F8)-D`FP|Yu#>6$rl#4GYPsfX?;2P#_Ems}WS#hyv$(8- zXHdJJAYo~)WM^r>ybrsp`;y(aSM!}l9CQ(+_dnx)NiBD6eo3>Or(Kb#kA9(7 zE65*Gb8VMOpJu&C$A;~FH!wXiU+~rahcj<&>^c1IpmxP(P&@oe|GgA`%6Hb>)^qVRNFq{Cr>$LNM~0$Kw%VAnTWd5^ z9*?3^rrCkLYYU~PZYav;BKRS`+0Boi(l)CA6A|n>9JflB_?;*NSjmfk#jGgdsstLp zS+3G@s=#65yKV=&p2jsvtcHZ`d@Xgyq>N&FcDoLl`dhJ6o0qd+r0~RDCEl z{z2r4YbQ4o5)6zq@1~Crt%e=nKoeV=`jvZRc)ll)F~AE4zEqb+7qVs)Or+9V`cRJk z%yG8%4235zjmrEb(bIUq&V})>XqN%1J+$!$MyE>=L-$XZ=u4ml)7?mw+2Jm{@ zQsW0NHwpPrZhlYc=Bzt&dMX@Wwm^^yfjPQmX%^!wO24-d5sKe;mH7^Qigx}$puMwB zdNx6C3RkRb^-@An<4%z4`-$ei?AvcP1I%NrHLtf<=T4;?jr2||$}ay28vS5aUYJJk zTYmH)`U@amF{c`adFx}F-&o7w;>DgtR1loT4;Q; zR6SDpOaT9T`GF^Ouev~C4;uo>IG$k_HvTl$3>FCwFmIRwO9kcjN4V~{c}i|c=x1je zDBvj^GEC3<;dtTf?5 zjHC_E3WLly8BRkPodHnXTRab~Wwb)UzITS-w2jl4E0oC=meek`t zfljRG_KV*45X7a%Y$rY}+jjQ+Eqik@e-q?M#{V=uvr=B1JknXMv6~8oZq?(lCe&UV zp^q|HnIBYn>`hpJ$j;0S>ZUM3%%yQ$UVUS}jIrQ{x4QY{(nOpN()E3xzte~LD5x|>v{Ig&bp3q?!8>yUVtodOe zsg_?W>>sZ2k5Djbm3ho3E4*Z)@tZzL<7dyc(gu6UOylX087IWKY9}Nytli4Q$7^7) ze_e5 z(ttbfGql{PkAF=!@8Z@9%ijfD=$aE?Ra8VNezxlWrJUHk?iUzxApw8=3FvJ{W~;DI z2G#ul;%=Ly#;|rVj%|En4{Rd8wL8gND;W`Zv(!&W3u&7!|516oNu2d^fh3baUDT=V zZ85_Cn<>Z$eeaUXIzU;Q%kV-)KAY0C-LTd;k>a~wnWTCPPr$4y0*1?fc5(<&7uxwF z%>0u!tCY03$KWpNXu%tRAPvlb!EPM%edxF=eb`-N@N8n|=cEsmePO|XqK9~Hagt;k zZw`{4b|yzy#~D6V&iSX8X%=gFn*;i>zRE2yFaStZ&%bWt=oLa(_=jM?_kbP3lqTF# zga*;t`QP6xUm#kKqH8pp*25vp?kCGMS)oZcZR#4tsc4ZYPs8<#q%1YjfXm4^ethqyfa`cE{<;4An(MPQENUz z+A#^OlJ`JM`n^ltI+ZRXPPbS#bu#ixO0l;l)I;>B%*~+J5fV^&in%mIXo+rA6Tp7h zcdj|*mkq*QrTIA-vWySarKREF-mG+T zQ$Z}Wd7ASA(++8Mct!C2H*~;Dl@-aWVc1M5DW2?v*bX8t~ zbn@Vd`cyiu2H6sa&s;SaluX2zxm_%$_Wm53sGR8MBa1ROv{t?S-y%{9m4wQ+NuQLW zw9hKxH5j?Xcr(GnmY7>H%o00-6P8jEXEp`Zaz-v~862FM4YeKws~37$L7hB?W9LI; z`j)p6Qr%qLiWh%BN3E1kNn;zjGE0;UF%bap;R_TG=K2U*&x;t|0&3^-9mGJ7VJUkq@5k z1x&Z;;vl(;Ft}n|&@6E|5HkE7-HaWq7h7I{E39fB5nG;uo1O`OC355voN z{?C#wYQVc3;MF<4?|r5+t7q zR>9%bXi7Z87qb84->>2fJJj28k&@EPotC)kvJQNFYm_JLmZGEf_aQ&W>Z2v)iBZuh zh{AlTV@7WjLJWmY9m?Exa8N>Rh6-sTEl_8n)?Z#u8y4;sFIkSwd|5-U!{$Y<+?u8a&5~Jvhh95s|Bn4~CY*r( zlM!|nO~~{aVhK$`?x`KDr^Hg4ELhOom0IRLd)DMvoAY1xlMXhTP&E_l+ry!r5IO@b zTV+R$QUrlN=CCV@#6ko;6p(`Rye~s%)`scwAiDK;s$YoSg($V1u&Qh_ywAMaVp%-} zmyhMNX{vYYcmN_%v-6Q-+##X>rz81w3?g zkT8zVpUS)#rD(JQQ>Mu7cf6MKe{iny7)?=nt*sQZX);R_`+<1}3mM8weGvkpA&-ys zc$bztZ(T~)R}uq_%J&lfyy(kdC9VF`GC{HP)Ui&SpfY@mMsgQnzEbiCS}a22Z^w>w zAEr|4R+h~vuZK^o1@Pu4L%a9=lTwn_t;t$oTNSsy$lJvF0^~FF(F#Yqfe+5CKw(c? zXUQNVw*b)4@+ew@n&C*+D}$q!{gOM)p7qU zw>GQ<*^|3w_1Uhu8n6p!fmxlH5_JUr%Hhb4EJJXt0VvFw^F!6o=+wo|dtl0m5#k88B6^J?O&5h4TJa~ zj3gRdr>Vo92fYv-u5fAh=XN;BJf<;;M7{mntz4U^Q7zJvQ-y&A#LV~2KvuZ+@~ zw`QnInO37tvo8mMODAmWk@(mISwuP`N6fKb*C#&dU|T#?UQNze+3A_X_xM2OI!gDy zl8)N9BohnD4#^N}mKVTK_(ICl9s_L1A6Xr|Sk>YvB!6LWLO39gK#$yQ)Iou`|0U(3J zNT|K}6ECKfXI&w2bl(l&oBt?Wa@FM@Vy!jL!w=qbGO0yaau#@8RZWf=V!P>cHvJcz z%a3Y%=7wSS=01!y%~q5S;q8-oBuB6kLrS|TKYoyGmKWjNCX&h?b)XKe1s^BsK$C|p zBY<_lj&ok!0RHPwy9mhaj(}Q4Z5RH1D8HXNw8C>@P3j$o^t@?=b$Arm*BViVHC&es zYMjQ9vu1lUW$3{xG1ZtPqxpf$Om`ioU0f4#BQ~{YfM>a(*Pre14lUAUdoWjR@N|{I zy7^pEOk&2@nd5PplMebaVUdiw#I%){mmHDp`Hd76jVC6EV(`;Z6y1&8eWBrjvuK?K zidq`<;+iHrbzF08k`cGjDg02#wt}5Zz7KdgaX!C8}@xZ1LIY^wB9SYo`ZVq?;aDO*@U%&qq9&$ zujR`oP?PO0cXptaeA2~JX_0lY(cQgpZ>?Mic6khrP)RYvJTPA^;Pq_H zAdfmajHeRLHL~zaX&=Jn zMIV&ueT;ENaK@Lho5_6;_-?&RxtlIC8uPK1T=ul2Hpam#P9VrG4o&qfw<*|?J$KLJl6H{tk&nD=P7|9=CQ==IU=HsDy;lPRH|kGU(sjiao)$s)>+OjbvB*}N~$Ojg*f zI)FG48*_A$GI%1Oyu9?jST7126;%l3txX)r-PrB-vf)8tB z`+>Fg#WusW8CC|F@ATz*_zS;*dy~4!w=2T^Y_V%+`58My5 zGtWAvSv**syE*#Zo1rFuQF~`a$Hg@;3HNk73%5>PDSZ)C9vl;#QEshFXTs{Mvqzar z!)@})di5XkGAzA%sK9BJ>3cw52Z0IRB#2&2&)f>9a+KW6_d^`6XXcrq;(~qCU z92!*fm8bl}Bf5z)mbG&5a#4hzjce*FegZlq}jtbC^cS*_6N1wT2EVj+EtX4*pGXx{op}o6S}Me!?khPxE9VUf~=_*5VIQdH>j_a z@O9dt45^L0;iEf6!2Xrxx7cDaX1-zEfS^aJg%G*Me#qFv@hD z4LIj=J4qOwu*_k*D7~m@t8+`)Tl6P>(iZ_G5ef$@K1o@us6Dp3bI*yXgF^2HX5}<` zCzeOl3j*F|xL-1&=0Zndwm`MX;x@ZnS$|B^$>+{LCEY?;zF1R~svD|W5H)d(CmMu| zY`)dqo-q%&5s{*bi)o85Wn3W|$eqc2eALS58pGAMKnj|bPH4oN?cj6}m(US)moGNQ z5lW3hgc!SHDJ*alZZLkheBg@Q_r^UNZJB4&nn4fS?5{OWJmocOw()ql_dQKydTJ(I zNiw+^5)#sgEO7ofu4MK3T}YI?c(axrF{MISV*QG*i#)c@FRRQ5D;!<>YqzqcV$e?h zv7R+hX|{f%=>R!8!MybxCJ!MtiRJ}lG`OYLL`Lv{$L+Oy!6>^TcJd~q64xd(3_bOF z_cHwd@G*J%y=j)jVVkB!{;5g)1~vVg+aJ95`yJ`@E{=42_lngE=FiE6{5vWHUZ?j| zgz#{j%S$kTXBKJL<(C{Pzi;D+tun{PngyD97O;Vxi#qD@21Kj{-Nm2`Ql&3rO)64a zu}FRrK3Ah4Lyk-+i78j^XG<>TkYUgxfqJ-rU^%R~-62eD$81`njtCLn(@F4p4T#M62 z)o#O`fe_l4WfT8;m;e1>^KlXCz2L9rtWpV}+62lTS3~_@1 zER~u62m5B!Pm2$_#RBKxL#30?hZWVT0UvTqhc>MUk4H9;GSBb>3-dic5wapX{$Vu^qTnzO&=|tYL)eA}&|(KD?%N zMO-9w;8>^qhcO8jxpu^1y1F<`Qv0xePyEa6<=;MD-c1k1#dv@1pZmO!3#l7)dg^Zj z904g4e)F#d;rRJ%=b+8=W_?Vv(MS9vWT&Tfyg#Y}q4@XKvejpx!R?#fo%qvgnn^oA zuLL67X|R_TS|+(ss7iO+M@KV?{%PB&yEj3wz6Lf>1Tu19V0s_IgjLLUm<>#x$VJHA zsjK*{z{XgpW(}U)k})C;>Lh8W;(JD|hG(_frFcT*AKY;KzeNiTrM8#CPrh7j%>1wT znSajox1~xh%>no;aPsGESy_>dT%w#S1~2d*V6Kn`SC|4>fy^GzQS8AsriSCL*R^fwj&Bnl@gY0ItO}|X>`gDG>*+weYB~59!x!vY$TkOl`}y1E~6xU*nfU0 zSs^+BLr7iJIX!O~Zkn?bdeeJJTSti^P;~!UU;Cc&pfUDFMoYEAQ=|TUlEQ}loIUw# zsYT=|gA3-rcAck-p)o0IXgUnJ3_I+DGX*9zgyFXIrYO#9ppoO7_P2Ux={6L7vS8sKyjh-Q>?lFD((7qrUuNhv?F8AlL`l1Zky)IkfzEubeuHn zX>zG=>qWv5Y^G1XN}t6bB~u?@d)*sc=Z{AVgJz!g@?sT!U#rI(%w)j-@>Vm(ecbOu zFDzLvmJ@Ts6O76WT{MmD&B`wFd9P^+XXR#dbPnp`%=&3`q~-$_A^bejXK|Xg5eHDC zb?+vHFo}qIleF+|byKKWQlf$-?sKQ*`Cf$^wm!e2PU&>Zyv{2R#uH)tLm>bKcal@dSQXzq3;yD{?6uqv+Rg3gCvIfzdySqLM%tXHgBBti?8^8pe(%uw0y@>J*Wz=6=1X|I) zbFh6yT;#bsr5nGpPxA~7!FPtn=F`Bd{(tz7I#*=B`FC%Q;I3asH-rQ)!;(>Gqq-3@ zo_mVMt|1{c6U18tjQhFf*hc5Fvo$iAbncntVv>u655op zF5>o{yPPAH5mTlaG%ec3EzP+}Vi7N!^y5NW?-da^8?xXoqq;$XjTlh@v1>=|OH3>^oRFpN59aPXaL zTx=m5*CC>7pB!JTM2KS>gF~%)ydQcGEB6F>n<~%!azv^ykRRzz_+_Gf*62c3Sjmf1 zq9&;;=1Z5IdVFUGxg_Kd_D~x9j>;Mx8Oxb|{IO}wKQf!NsAR>{sKaXQA&x||?F^@- zHh~D5oCV>wrFXAA@ZT@FS?ZfT7Kj5&t?*>voI06jRrtB9`)Mj5T`=!Zsq0a`vF!s}?29A_g3(IS4ZJ>_C~t-ACBNifE>FHU>coi&B!Y89@z}T> z6NDVRt}|2xUMp615FBV_@*MDOVY>CHR8g~O+q1G-TJC}e>mfqw>^oO={ZQ4q=1GCA z3#Q!EADyl5*vJw$k93CK?G{vw+XQpH7tdu(86Jt$a!`Fk zciXU2-@cUyFEd!k%R~Uh{y#7qJ3%%Ql^*>pf?!zUGt!naOjECnJsg}LU+f?pN~jwI zPD7-}E3nTTe9@zhKQ|67!Zg;Jp|0FuvkZHWNLMAv=;B1Nq4sGZ$fG~vc{Sx+7u*b! zSkeVt^r|$=1tj&5$WpM0#+7m{3QXB-+3M{Hg7%Kjr(N5F6UbUC&xEgh{qJdxmI}{Z zpv<}@A?E9=H+~JX-tp%eyD5$_1*w|c`Lpf0eH}c$5su5sh6MX_l0BwNN!52p~{6SdL{M&+#i@7c`9k2{oBYd#eShEPUzFV*O z{Y~KBlj@AeFfAEfchRgC>n0+8(D>2=l5DsGEJ6N{vr!xsxz>5`lBU1&nF6Q~>p$Qb zt=yU?EamxYm@NBI&mX4aE&qP_X_qaMqJwRc<>G+9_xYw*Ypmx2y0{VR{9o18u7~c* zs7GJL$XEi3<{prmxP9$bTxWe>CUm*HQCVQB+9JnuwLGw39 z&;g^F0~T=%ir^AyjdQOFzrTqdGUHO*lCd}|fvFfItpRh!RYrF zw5i^GVUl?Um3zGg`!qFn46!vl`-*HeqKIG#uc0Rcy&#}SuJRORBgIS%S@)L zZrH)UU>+QG(s>m8G0dRD!xBA?Y@qNkVt{%}u)KutzL)wljb?`8c^Ez@-ZY=%x<2E$ zv(?id%R^iHP&cy=dxJ>(Bn7fkmRvs(jK&>qP+~Hp$Cb{%{&!^4aopf{{RVuIdL>p% zs@gVfDcBdQ3=CW~@GFUqx;O(es@d7HW1Keee|Zfb2|D|i0kPf482*#(!{yGfwxqpk zdZ9nJwTu0$S&~A#lfRbL6_xA*l+vSz9$)<#AakaG9ps>TP2x8rU>iW|K8;v}V@T?9 z-iGdN(T!PKj|qXsczq<>B<2ydGcu1T;;a`(ijNMLn^mPE`u05Ocv+E|LJ3<}u|BeF ztX33RFVfsv9`k=Ktagx1p+5TV?_Mf0Akxv=55mP?WqgzngC3TbmqidT~V6knRZ-+a<=}_7VOu=i{?CM}w`U zwN>h>7l`@5YjOuXHTbtUn}6YXseoxUKztye7(^Ov4oxsek(9$f+jQ%~C^Q_5OBA6I z^Nq((fTfA&1cmW)Bi9>^jfC`Wc+r#3*`biS%duPmcn8B1(3H_-_&r0ddV_Xc@v>L3 z;u4X(SD9RhO8L_iUr`zl+uzrxx@HdI*1*^uoRnCw!b$O2XcHpl(R3QDzi4h4m0hyv z4@JBWC00DC`}Laq!gM??DmE7w@d((BY=OHcKS`LObR1o+=tm#0MN%5`J+NRWeuk~%BN#mP~bZ6`mo}~GrKI}ob-c{MdbFI=g znMcx|SoEaYP;jG2gSCG3X_x9(xLGsGTAN0Ue`<~&aZ{`w43Ym?x^M6iNStLx&}CGx zKWlEO_gq4(v?>7ZYB4Ej*4xIa-x0@ZRRhqtd9?P|F_n=7R<{wl(UGFtlO%DC&tc8x zi>V3Zxm7!2T40-lYO8_H1YyO zk?stg@=w~!MP)Z_kyB>vdg-Cy4;WU9D+%jMKHiomCRAmCkzf$Lwm=CQo5y}YMZ3=A zbqAvEzDZ=Y4up3JN^CFso+5(Mz(g?~8v9m4%6`*)xP>PCT+sMWJYL(H4=QDp@F9`) zUT0oo-qn^Jv^X&}M{sEOqr9T1V!FD+2Vi@2m{KA;rgo|mv@0_j6N+{D$;|#YGv`|A ztSP{V$rm51OfdGedh}fo*LPt^3;}mCF%o32I4*$EQ(OiEt$)vqtPr% zK?~TpKX0%J1IkMv!GSr6cwhgS^Ek$Q{)N>?=Jv4j1o=CeOZdIT0Q^MevJvJpYE6yg zg(9YxU7`YDrc;Y_YaY;Q`W4?l_3|OP^(#aL6N+K5MAVoV+Rk=yx*;nP@Wn_A7^SE! zb9f*5hfzld_NIt@BtZ>CX;0WlF)hAXNM#@MU8}qs&^t!kVC7Vm6msz0c{l>Y^jiMOLkB`Ka3gz{TapBhuYw=l^gvqB1ce$ze@z&s?L<&cDVF` ziPvs@lcL$M(?h~VFH$cljcU2&o-}3Q*kR8BaNRF)*U>s;r)yS1E=WUus9zU}DxPjS z!XC2*t*zd($-iF-ytE+lWB|?kaDF8EBnPjWdESV^Y}c!YlwZDJeY53zBCuyZ!~O;L z5{D@ec8tt~g6_H#e>+n=2dsh|>tiU1G@GjSe2Fn4g$?Qrvr7)yICL@N#4#pcN@zu# znyPSmSES5St64mX_m{8`o?_ucy_fUW<^A}m3V2V@9e$)6rZqI93KFA{5mYgB5kUF0 z?c(uAoVAdMgEd6~<6!}fu@fT8z-wxM7FGzZ^%GNw_?wy5qjt|S2cFDuy^ZRK7&Fy& zu5vgmdSh($qR$ERA^3DxMh_0C6wF!cV9h*Fp2|B3lh4OpsfTGh8`0#q6HrNU*W>KP zEkY#G=P zBr|S>1^x$6_7dBx2j(_s+!rGdnpWG$h@AywAN`F!|!z%;)^C$?jJ( z078zm7-n*Nx#42yPM;D!il_eYi3ZxcJN$B4~N_$I3r{bzTJMqDe&IhCF`yo;p~-`aAm78 z@ZuZc+W}r7{g^DE=|_F1${BOvDnjBRVd_U}n&+2Av zy#L<{?8E>0J@9pTw(dTy=a4wt+VSK1d~lC`jbpNz4AMHbwE$v~I-skoUn#BFq@Dmb z#y^;~&U`aYqZ0?t*RY|ZIIF^!uLotHcI9-jkv+14s@N#E&l$xjZmt1i{?j8+b4H)r zH<_gOcO)sTIR5jH{M`14F@52wz33z*b?b{hv@~GMIFxG-FH?C@LBxqUNP0`Ys`qFO znDUWBR^W)JTs4Bv{p`+M!%^f|XFsKurG(jT(Q(q=SAg1~HiQ+!vfdncSDT+?9=n!`DI zVcB0drfcb-c7sLD+{VE_k|4W%i9;#AvXb`alf{sJ_w$*aJyQmRENIy2t{rT#L-vi;7B=88|h+Vy!jZpc4Cl z1LpT4%v?|la`F^a8Vjh8NijMgqSWWW1KCwF^V2Rfb-7EcWzm8sfv5!gpgt%$9e`D@ z9na8y(KBPy#MHB~%{LG&?*f3Gm|w=q@`Lc9xFNq&%|yvsZo;i6xVooB>9Gj80Xq~{ zG#7e9WAEEFrj|Ar^5ooXI<=j~^@18SNqN^xGd}wfX0;+#P zW6}Ac5gW`*OU6*cv!nAy!zT$Bj+<+@`_?)oDSuL(l(YUB0Er&5p984ViYISypniRU zcuy(T{D|AV0WJ`%9+>OAP{hOd646)5K|FOaK1QE(H_VFoTw~NpXg}`LfxX0EamFyI zJC^Uc`QM}}eIlso=e;;k1u)~T23QnoVP%q1G9f7KKJ@WCVPDAEs!Xrxl~V8+3`n+) z;P#tq9_~5!ihmOx90l;dKTU&ndZhnT=Oucdw^|)=IWWF9+Nb2^S~JKRA+Bz2R^KmY zuFyEN`6C_H9b#{P=KkhI$;O$pR~+}BcrFyXP;Y<)_>}1lnhe6At>2j}$K@a9ca|=u z5;BGEbBJ$h7ye?KUmhZvzSAu32rY%ToX%qsWjot>)SQfE=eLCb6AE8YtiGugpGcWL zb95`W48C^c$o|7|mx%&`6yOR#l>N4xc84O2(2S)9Enht(fP;Ld$?6Nusb8#cUPpI! z&MZ@#Gl#(s$D*$EKbm*hck_+-jR*mK2%jFc)raF%2WWyNQ@^wL{qIumO}=J~p&3of zRC4Zy`#lCW9cwfU^aB81tWJz>{?N}q>~yFmW~JQj^`meydS+Cp9`_DI&HLtR%tP&B zZ!iM%VD8xPP)f+NzxSWIP>Il*x;p^Pe+Jh1>$~sYKufqbVvRw0XL^R|r(ND}jj*Fk zcM8S%`;Q#HPUeZ8h7s`7nx&^iX{<$d@h*p%dKaqQ#)G-1Uw*Dn%*;yr?@6r%Yj0n8 zHJ)$0oH947vX@-wz(_Ufj6IL!i~8Swa8Dw1z=w7&=QT{TrNong$r(Z_$Grg+XAxuW z)#@?`)UZ8=j$RHKi2Wu^Y%%i0SpHX`BK7tgBk<+o1hFfnbs%&k3=2UR(TfEpZ!)muB*(#`2 z?)&AjhqWhe4$Pn7YoSi*Z0Fscp}vhDBBBiu1qBA;HrSuDPB2N>IXkvs98;2n*haj_ zK8)y}c;k7!*7ENZdvPaITsbHK9MvS$fz=*|(*yQ3rA3VekZNyz;J+t_@C3yN50-zk zzrTB*H*S-$ZuP(Wlfo}?GB`$N2(AsBxY_iBPiHqO4<0sgqeLP?6n=v*ImzmxrU$e= zU0-<9tyWq-Bx(L?IgO`$M!?9!xQvZlubh>6$#aLWTQd?GXs>X9bkkO>aQ^QDtmcq+ zf0z+|AD94QqB~G`0Qwm0`mV)Q^Om}4@PKK`fa@NN&YV1Vry1M@%u+E%vw)Zhs^0i= zem}@{jF^&^GUgm3n_~+*^tylJDcCgV^VBf`}M=0QG@bQsM={oD*j6*MW zEYe`asHefbBu593`#H@B35z_cYytKx`~N8JUdEXX0AS5iLH2I*TVNMK&Jfjv^Ouy|YF$PW^-g3>IV@yfwoRuL zRHXPa`ZEzp|(9qLLzc8#nw+^|l73hq(FFtxti>TWD_Jl8~G`@v%YGNk>30llIuv zPu@MBSFteSAgbs99dK~6tgv+rNx{?^;#P>r&}>~^mDBq1z+bN?B?%z7?M;3^<*3Ox zK58n2?x{*gG2~?%rrcldwsYYy22lV7VWp?usI>6&$4n=Z%#;8ujzr2N4>|(s6XO3q z%DD8?Q-RXGkndIC-nx7&!neDtv*K3`SKI}mDWM-pT8y*k=pRb$X*omro38Z5AW5h8 zV(81}!U4@Bk5W^jzp_-S$K*JTLS{lu7`X|DArhDM$+$TK{f`A$%oEnI3f0QcoS`Z1 zFL#0p0P_)d9c?NLR_|~KSijP)OHbT@Z{jR#4*Rj(?#1JR$1|;;cIjidA)4-u*Ba?u zrCCxQNZVwT*s%!s^zXovjcoAFFkE^K=6ta2+>C9m4+mGowbIK(*v3BI$)YsJ zMiNi69o}4uPaHF453w==UAFXAoLt^#J$rU{-tA^6i}QRFO-WqGJV!YyLuH3fLz>xi zK&9=0_NMnk<812aA(& zf~;_+Pp`JG4NP8dP?b%m#$*wgUmKCiQFC61p~GjNrcz~bUS&W^tj45ikI6mLP$iV4 zZn$Tkm2m0J5Z{5<_%It6>4?QiCGc4O`#R6B@AzQ|qeS_Kdc9@CXK-4_GzHvIR`%%V zk|`)@aT6})v=o5oE_fFTJyh^{M}$YcMGhW$n=QadBk**Xaa#&BwIDbRuj6iV=Oj5n z$rlNm!iO$a8|v3z_fCFCV!A2J?IKFfOX}EdqCr@VcTD)ZH?4!T1!T3cC$(r1#)lqD zI5uSSV`2JDrY{4SL_2$4OTc;zw}F9_TohA(xH7rlHBm9e%DI~xj!BGxx^!(%{C^yM zdtB1@{(s-IvrB8$w9KWcr%at!zFBIe;diB$I!9gr6_urV4_W42l(VfeG<9B(DN~o1 zOi}R$C@8GdED6mk0V?x?<`u6XaoO+P?@u2-1mW|(yk5`O^K$Z}2Xs0A0&<%t*9Bh& zlV;MC^}+9+N47{DHnD8tQqWy<8wn#NBDbk$!V}#5r{&0Si`M%;L|-G%L7Ua(cP>!A z;14S8-axjU;(@w>wwuU*@y~(JQW_?W?0L9Xq<9Q<82^>(y9wN-Q`ngGMSQz_mG1;m zhQzRq3NSQscvn`$u)Q;pLbuKJR~9-o?7P22LLYAFzPMsIX+#ec^zpEqVFEETfm*7$ zl;ZiKH6@&eKGdtz?h29qh@RDG#QR2?tYA7#dFx$>u!&c+LB#DQ5 zV?pm`{f!8=fh##<>7mlsUvadistA{i>)KM83yVHD*BkQs_av*5V&RmO3 ztHAI#fey2Q|ET-${L#ax4q+bAO4iKko(O(Ln-6PyHzA)(^S_haCJ#3r+NdovQQ)5D z@1N*W_N6}+Sl~ePNmH6hcc7n4<2BLldIq1qf$&<)x&@WCaim}r6r(8HzuXycuVTW= z&!SI)qs018Sk0zzX3#xoR3;bS@fBN-M%&D6ensDIvv{rYAZ`!#r?g$Lt+t9*FHpR> z_aZMO+aJ4A2I&eq|M;#}@$DoZQXA<4?47kUg5FKbi$zZBH%nsPG0NpgP-3>@*Ub*E zH&GutU5~T~!Z*0bkG%2mH`uJH(kd-0yjxOEqN<)l&Mrf&}3 z5NJB9#9efnOI}pp7dyIXqZhtvm8O+kwBWib%YfeN|5oDHZUz0@EiO7IfuPyDUhgSs zcQoS$@fO=9UTu)FuC9Cp@hG6DyvN2d+(ht9d=FYDb5z`B$H?9@ce=MZGB;)iD{pSB z3jUZ_n1Sz{kh#`W;P7~<554@D!BFvgBqghUJ=$}|qV`Ll`}NSi+>A0>Hh0t#$;U16p%8OyTeHKq=NI1twthOxw&in$Pw*(PpCcl7Wx+=JoME zy_%^SzI>9cx8J&no|FESQ|lGMqZ#OkZwJ=4v0U5L)C~vagse0(^_1Tw3uPM=t4mZu z(m-odw59uVp}Et0>cmrgIX_}$Ap)4w)CHe!;yMg7u)`rg|G8f!ToKDzfxv_?W-8d) zM(=_@ynFn*k{mlxoVrICIO$=ewaEFgyS>oyRXGr^kJ#Ob&eR*Fy%)>~LL-%19js*h zR^qY{|KBn1qT4?-yp~Hy5_q!`=;@AjP)yMFQMI?hQ)zrQF>>{O%`KK=wV>E<+=JtSP+&1SOqPg0Oxpn0}CbAwFp#O6K9L{2(bN@98ko%b~E!FFaDp*;$ z`f(m*vG+5vtSA;toQZskctV!LxrNJhS*I)P%bpv41_}*SGDJySV*jUw!+3c6dWDHt z`HraB#%HoCieA7L+N-Gmus1MmyH?%T4_;&5ZqekgqeUv1oh zwoY3l{kTktmTE&t$Lra_v|g3sT_q=H+>vt5 zHlODOhzy&mN;7$E(FAo@WNFvl($W=9q&xj{U|JyuU{)Nf$zwZ$t+cBk-k}_eOQQD( zmCi!(_Laz$ng5K%HJ@%DsmQQcHke%QraJKOe~Z8*0!QO}xas^ro)zD3+|v)Rrbcx6 zhlqKM5?}>#Garn9#KC)&kvim*(HT*HvZYhH&&(krGOG5ScrD{4ShLR7aZzcxJnH>B zqpSDO(c4^RfVG66s+$7*uz9HhzxySvb|0}A>|Nm>nBjaA^zyVFI2;jNX^WS61`dYE zyCY)Ip0dM%`sFr~a9a9(T1g6>Lf=J`)y%1V;@n}2URd4>P@WGKMke7cKdKozIO{Bk z=91TDW^S!b{@q%aHHKD@$pF!D!@pdAK>=9f+iIzDqqFjnkVpU3PDY_bRYtSNrkCIa z@>I@cs^${wp9B9_UmSKRKA-$smgi;(qrn~9v}(@u`eDT!D;riF+^zhG%sZ7{|x;7dYXAD?%5S@rN^ll1Y;vSj+u7`bfeAArxsDG4Ig%O?J6-gA-7HH9> zsR19uEjGIKG=|wTGfM%JPW5MCb~wJ~b2LW-Kt&zjZ#`}eMeP52Be^pljyi~2zv@RI zNil>GV8j5Pv2qXDD__2KijY}gQ+d1c$Lt%R=nw^Ou%JrNrVXf$dUf+{ejKOLa`m>b zjgs;?*9bsd(Z=ghRiDv}kv-!dI}(w5iCJnUtSBAe<6?z9h@R~(u>5_8a|-f!J?_cK zF2+2-TlKDrknDH{uaA&F%sjQvc!~Ilmzh)bGVhUyy~{ZA5#-tlUV5-LW9@M`NmAsM*@dWv1h)6(D9&Ek=Mg%?WN%;lAIkFC)RKg zS7hx+CbQOUx%!M50b{8d={LETZ*#pQ!e64~2FQ|ke&8N*;yBL$%3xZHWXaA^dUVBc z?-6=^!TH9RBi;dl^71&OV{kBI``tUh8r+|A&=U3z_DWa7epyPG71G^`EQ(8 zph$033xT6?abD7Vx*|Vzy91rB?r1)ulrxKmdy?@6Nqqh>*ZS|tCmpEMniI{2E1zqo z$jY|5O}F)u7e@VVZBT{8mB}qwdR7pjvcrMJ2LYwx`iUzPZI!~CfW&j$8J1(&(@_g z{1+=k3DG;6J^CbV0qL;W@xKAw<2I~7G^-03?|7Vgdr@L|OIX*RVdM!2A#KFl)7$-e zU_Hwxz}m=R|A*bk8eLT0Q@_&>16{5Hk*Bo}ERtS%l8HtzLMTOib zc<7~!85U}VDJVy8_FM-CbT-?zCnR;JV$!g<_OvF=5-^-H{Md1lM#uEN5?HAQ{dd!+ zq=lJ$ImNjpO}pm%woXirS9B5s>?Qfcm$saBKU-I(t3vK~)k3FHbC3DRq zwBb)#eewpHwEyiH*Ho+SckkO@hyhzX3Wq`4+J;$FK{OVgitbOU?-(yZrnE&E+MOu0z2UV{!b zJR&C{o)9zVn&6$4gG(9Oa<9`qzJSp!3SC!D+>L_<_U0{5)0?8N?^u63{QD5i2KGo{ zEaRz5&ukf#16|DlQEHl`7$sdl1KU>-oO6@#+D)06HtngY36oC4Ul;CZ@iXrum<3K4o9KCBa_Bv?96 zd+a1mY$RF|Y!W>O!jqaNZACooCq$hSVG~8sHd1_pqZQW zA)T%X8%l%ov$c$Gw08kJAK~bLGmm^;j5NYok!;q^FueVGV%tp4d*y& zI5VS5kTo{-Fo5x17kgyno0p%rMZeF#`<2yuu~-y*fA|iaB|DEFbIoYx$fxf?^_2#{ zDEK$lIU5SjUwgHQjZ^*gcK0_MH<^HYE4i(a1VOb;Y{CdzHSWg?(ZZVLv+kTlyq&)0 z6S?Kk0?o^3Xm0UrM49PM$i=Y*tdw69<83C`fIg38Iy? zy}+6#;koTfBJEN}(aCQZh22Q4nG9fU1wa^<^^p~f+l&Ljehs6+Zml)DeL!*dlpa?( z>lSsID~N7LN=fUh0>?OlO!2+=3}8G?bY~j+8ioOV{ixK~-8Uhfogt2I2~z^Mr90`t z#3TeMTYC!#I-|;yjn6)7Qkes5io>~Ud<2;MMT;C%v;ZTiw^7#2!IScX7^~6Cs&)^S zH=d=Lju8LfZ*F4KNzJz+DV9R|0VEXGSSm?EFf6-r?JNhACEtmQ%-G=cx8=8ecF5m! zqDxU)tDsYP^rowu?<^F}q5}5H_}ytQol(U>`V|dgvSDp=uq|kCwM)DqtEiCaU+b2WNa)zIA7!%G|N5zDn{ zkd7pKZ}&LY>pRF?o<3F)8NI_bw!3$k-YI8?dVbmel^0D2QGgGq@`{Sp8}xUZJaj0i z<5?b9%%6Q&x-}|B6jUT@%&@b;!vQz&ciy$SWVJe%{}l_g3AO@UP_XOl4qdXs-WTVOskiTZK6OLJQx2Yu7n$DEgaw$@nCHRs{& z298+d742;ej&<8Xs>*r54=1SV6kI-U`OyL*rjc}Wa5NPSkx!5ot3}(Nx8CjsYHE_{>gPPuVm>A)@0?e7M6$TAxj}Aj2)@ zLwrmV{!AOg`EOm0w!WpKv;*T!yHGK0j-(uM5PR^(p|&X^KU$H;#2%uXA&|ro<+cFV z1QQ|TA;YSIz%{0uNIpVZbZzW%m_C2G3c#py&4d1ftx7lO3+??-cS?|#l}M5S8XT6N zrccRu&QeP>dI{NE!FPz$aB%zYThce#zuvPEDN)#thK#-c?^YNMmfi#wrZa3@)?{-n zKW}JBlJX=8E6dz-|4Mqi(zx3Pt2n_f+;o01d@$uj)a=i~m&^PmdRNXq7?6soE?9xF z$0PfLPL^mN>!Fg_h|I0Zyb`kweil_hP()Zx%ni)S2vq-pd(}?IUaUOcc5S6BZC#+uO1KC! zsz;;6z*NBwI!n6O@y~&4+W{O-@VzVQ`>|b6b-D}wi`lVehZ+k&7FNVu@%^iQK^lu; z;RVen`I7yr*e~M?me@w)%^^2tVI+y7jG1qDk^_21dvW2DtX|*mjGYi-3%lr`sN}*1 zp0;g+b!dW%M3wvDevt>6v>)p+ZCVnZQY7&pEA=EbO8b`|ixn0~c=lYAZ7E(e-5Mnb z?}GYY=<>n={pz-+dm5X!5llvrnlncYDf-Se@5*b<-nF}c)0ofB7C|M3= zolR|*`Z2ss`xUwiHH@F<9$vur(5u*$gRqLW{1-tP3Y}U1(1@SNfwVi`x=XG5+WdoSE|b6g}*r{jv{|W0;;^MXN1+oLY{x)7=)FNy2`JMn5s4MLw{m z!LoMHT+HI@Lvay)%6fDqv!B?ZZDoICw6}e~g!A3&bMgH*7l4CStbOnGqevnCT-F74 zjAmI5)J0&9Vtd)6F>i&dg2$|w7vQIq6D6&f2!*Wqp9AHwY3#Mf=GV(U)$gOb>w}DI zV6RLAE-99HHkcbhl!^5jP;t3W>joqfkp!IYIN{-Es^1_xiD&X(6C7;ux?2;+-D`6T z&t?GNpf~W4E>W+WbKVn<6I;05sKgGd>8==%V)8rJG&b7Bo<@CtHo|m2P-!( zOPw65QXW{%uWFV9Y)CTos+L6?=2W zrNWQAIt4wb8HJwRkA4<76CiHCsyyLeDmO+FRNr3@cmgay)xv>MtUOR*%bv~$Mp!vd zPPt^fuPD(!X5q6)_|TJ~{NWwWb3aT?uEP9!vj=Oj;-)!{-{2PsRmbUW`EU~I7t3U^ zRU?l^wB+I=0x-32<0_C5f}gV2L(1oJBVG)z8~U8TqZEa-JfE%qnA8Zzg@5lt==KH_ z+TrhtdS_0hPF}~FZy?jUTk*-7&x0x-?&?Q&79MX`#F@;ja+1aym`|H9+JYI+uG=oD zN$Q2>BqKxg`*@J%cs{OkrWGRh1^!{`3g17LyS?Tu$%mwC&zcyiC=FaQXL3(o0ma*# zY+6Lyz79d=f{=nM{9LJY?^(!-L3><6K<0+Duv3j%movs<+~X-bmzfkC(Yv5H4-5$H zx;bM)&71+_2W4T`#Fil=weI!P6&vnOO?|-SJ+-EK;pwnBW=`kPRv}7Ddb3@ z(y4~Ur6Xax$214G8m{4I)#<(3FW!t;pc{ZE>I}G^+CdJP&t@80wS1Hdd6h$FL)5=z zUJ$6Pw-$06dKU%L!k(ga%&8`Y&U$-n_$|O|C)|Jzxc_q z)t@d7`aJpOhwHjWdp*A>(f{HJ`kZDjankwI#_6y!R1`T``-hU>iX#bojF$oFr@EZk`-=s zLqFU6a+wm(z1zU*%K>Jy1<d@ZJ4PUBAiWur4?zKNV?|cNsyQOnKu+hHq@_93!Ha?U23LlOA%5(M|hIYLBmuqPCH~Ae+Zek@o4slS+c>=2xL#7(LB-&kJkhZj^ zwGAlTcbF1JuBA)9&9pdONu1++-2wZ$ziv9jBUhG;ufz`KYWf{|Ga;NDpU&>ljX)88 zqkyDQG#A2hn0J`LOTRjO_muu;lXAQ~Gng8{Ex~`C{&pW$7FU~4`otx?D06U^`d{>? zcAUqVPVJlYM-_g~tJt`3Sjo2}>3P303H4`2#?#MB%nj@nfTs+U`uMejTgJVadRul& zzhwT^Hl0Ek`H@A)3>T=3HuyQE9)9&6-dC)?3cHj(APV_n6BsKPr66IO_$;eQO9SXx zSQo7pKM&5}Xv!j51hD$7S^Pu(EdD{ncDFnAJ7xe77m`rm_iqCzD@Pw0LN^C`(MM-e ziu!f8PyxceZTg~8yw;Ryj{AO}+=#oo-`|9DomiZfb;$y$oBi6jR)~6&wjk+*#X?h6 zX4DWyOYNJ4kV9`HZptAY`*!|=j_v) zyFPAZk4GEd*1bM4OwxR4%73IcoK>4Qx&2({si;e$`3xLi;?c)fNLH}i@&IP{sMAZ3 zlC+8@)%iUvIo9m;=5Cg3^;3H=)=%jZT`&If$7s86_nRS0?j7Kx_3}{=Y;i z4=+kp7Yl5_{Z%F2;X6HZ3)%IWN0X)ta*Tel32o2!8ROvNlm-BIrA*4`QSB&n4XPm7 zbU`SxG>L;aeci%S*KqYLYv^QgIs%{Lgo>m@C8ZI`iop9f$WIPQNyk{APqwW)qeMGB6h0BZ& zv~IG)d1Lirqs6wmr~$;APtuqf9ye5Cpq0l>Xq@Gg#!XHZWY7Ji#4UWs+rhW{=&T#Hh8lxZ&>yzepTG{6%Z=zyW6itW!~0U?DCF&w*wEE)sMj^ zW(F>IpbwgK$K>T`WWy{JuU6r`MsToj7!G-0<#75nqATC9>^I0p5onc?Sos2IZ)BcR za6`ZSE8L?d6;&oze^}Zmw`#myIvcKlBCvl`1Jz{JC3V){skAO%xv;-?DwUkM>-;<< zQVR}V(QL=y(gl;tg#~L!-Gl#XXEj9*q!jVwE4h2U>;+PiusSTWAoz|zzPd9M7q)im zp@i_(qtf>2U}>lq=gQYyRxHgwQt;idx##SE9^JvPRuFy>4avItsBl*q9X>O>-K1qH z@CeyzcvG^a8UnsZ+EA0)UtU+ghcH1rUbxpQ8fnXSj+0q6*iMoJ1MUuVJ5>b~`QGZ$GFU~exyuN1{NQUYqjle>th4HZkTF@tD*8+jdFsT{Xc zJ~vXOThX!{y0PCB4Cu^V9o89azouSLPK5HkyZk3036sQN&5Bz106Q9>%cF}pO4@i- zT6T20&zw$_?~caPDr!0SFz(Z@;GN zQ4BSHRezrtkUnx{Y|gCDK-)64!0-^5<>lGMD6swfKxlOW-#)#GjhXQ^74~*cV(m)x zmq<%^=|pNde1BN={{agMUyXC>VO_ zhV#YtFssA8E?9|U+j3mZtyNhC&#Bs_S1T4IYx=T7=X1>n27pn;>EEnQK3 z9(}605-MiXnoKlgtC;O-tI7@aij&%6NA3v4aEu{b7qD~BY3FbMPQM&XpY)^F!{GMK>C-7XQnCg0tHi z+rM`c^%CEyG>TQP>_#CUs|Ba*-UIhIlLzWQoNhgtx-)U%X~~RVMg?*@28?ucasSye z%c_Yk9156+mClKPCpPzER?>XduXY)BclII)XTz0k>tOE9Zh#$&bv|tOyFj&y?Qr3o zrO3fx?ed1iX(;+d$krwnu+%FL#+H02ZfRafnAS&*&wReG++6L0h7cQTys_%>R(D!S z_w{*61p%ADq-Ir^GDs4<<$kzkJtZg^X*-iT;;g(QTIs4bN^y|!F3?};p4ZC;K;vzu4AV5jh{aaI<8H5@B9H*(@#_CJq;(E=gF ziTZZ`Ydk`t`9H|)|p z_smijHZlK5%-a>FokmcVAu7IlZ{meR&jKwht2PiZsyUQ0_Msn9 z^;BcA2f5F7fE|oIBon zawBUjZ=)izg>-3npRibRQrluS5cH1g9_uVjn#*Jeh#mXE>ocSCnS&CE*tLn)-AB!R1|HNigLI-Ob{G*w?$3jHYtxqM5T-x8| zC*X+y5o+j{jHX%Je-@Co@$^)oWU*iy(x3k>=K0>qZrEmCRL8RE%;<6(gUivBp3fMT z$1W{jz<#}t3;|gkVf`QAyxe{!CORM(;RpC~l)b~mFSmlSa#WwsLiA8}j7JHcv9H9M zG_yCHO$%AeC0-DO<(y_#j)vqJ&*Za==Z%gEM8W=)=e8;`6x~B-SsK_Zt=(m^Y&l|Z zF!dzE)Fn8`t)KW%T|V^!4+K38x&-)wcZw0`%kE8}V(>38pNT(!-LXblZJGKG1Z9@@ zNfN`HQ?^6~+9Iyl%3`n*I$fFev@^$p7+~_i!E8F)npL{WC(B|uNrJoc#E&?p0TsOT z6L^xkEa6>gH}%BIAyAn3mt=Q;_mJSX{h?5K{o%?;$k~_zvw|Z$svbl0AmrX$4)R8z za6Zjuy_x0wt9s=_SfILikAQIRz#1`1!SOSvKm%#yEdFb#A@1rvCb7Lg$tb#&v=P+5 zV?6H5+k96a|I(Fv(87E1yyoluRI9zu5+BrwcQDvlkKLSSMLt{bJaQ|s8;k;iDtpCR zqTrafy+5vMS7C&&w~=>iKy1Jq!BFj-99QAfp7E0UgZKS;L*HRp+oG-JVhR+K?jB2a zjEHE1F*z9pmXdOxnb=D;U4)Zx1D(GkUBQ!|TV03gqq_s0Dh270eo9Rw$YF@tubca{ zkFU!|j9l(N<1o}fX5bkCZl~HU>{5A;q#7>PU_sBPi7hQdB!IblA^^M4K3nsGmBPzs z6gJPASx~7mHmIqOA#0LF$AyOrx^Q)kj?2OG=yGC_B!#>P4yV`#E%`4#kB3t>rTuCT zAdw3;M7PcaR4IH1k}APK{x8nocJF6SZmBEU@7i@BEk;Cwxa@DCKnfUViqxDHp-(R} zkoMkhq^x8)k)1(&n*!_Oe+cP1%p=Z!2Y}hMH$ab$KdRvcdYmgb4`sf^U9Uomy>6*% zMuI(-t=S7ok3z~KCP^WE%D;TC`qBna@D1+62j9}B=YiJ$Ld{d z;^Oo8CgoElZ5>$_n3DIwQLW!+dE7>Gr{&H+2LkiBJK(ejrXhetxMxeyCe&^YyLY|C zooK)8dCVpM*mH|i&z@sT3Oo=O&UG__e(iJ6n2uAW7izPQcczrq%&;(H@@I{l=W-29 zPMKu?2Mws#cI}#X*`hVX_E4)-QTL7m<{M%>M0KS5AvWg&_7U#8)Y^=)#i2`~*(kyU ze;>NUWhlv+SeZqbl>2+6**d*(Tmqc>p@_;a&o=3Ch8Neu!L4+_V*%$lcf|rxuzTZ2RJys(x78XG7ez4s z?{qRSf~pJ1bv_-PWp1g>mSe^^}eP3ma=II5B355qCRcHb7L~?pMR^TL=OB^Fq8Q5%7aGp9#q6Iv9KkK(~>>sKm^98 zIbQp@w_*nKFZzYu8RB8d;=ST%!o8PR7#v=nhzDTPo5mFMVwod zTtZQg_VhDFcI~Ng$U@sP6>GxfF+#BjAeAQZ?b4%& z&7t(^pFX|?IWdypmuar`9ehzj;E9&)_2Me(FIzN=$%%I_|9_nC2F_vD+HUVqmf}pd zU35UDk|=QBVK6GtzUqLwNo6=njp1kFMF;EwE{{=4#lUJ&M11S743Wr$iP z27scjT|KCnO1gKI!~*78(p$C-v~V7BngC8CKuHWcjO{;+oioajuVZ34JTDsujMACO zQ|ZVme|9=Fi~d*ix%V2K5$g`FpXQsfMXa2>-{5HOV5{0|HTcj++|fCIaL$BhZkQVc zX_H5jXkX`IgQ^Bs6T~Jl!K>yAww4>s@%mExSq>{CF|D;6ov`}X+dppEgsS)E8`eDf z*-W>5{1%+@a0ew(^5FBMGl-8tD@U*?yT&>mrcQU(ZJBXOu}Q+@_WJz{G0Usyd*x+S z{q{rva1SWw^ukZZ6OCs2O0hm@keXuck9zbwb~=C_Q)z1^Z{Qcu=oa2z7l#H$b8$I8 zBsd$&4ANwJ4I?;+l+4-gwdYkrIlpH zOeKb`XS^?(a%C+wrsw2axWQCuw5Od@O*?$cCgVX~E0_>%^6dh)ho>E$k1dh91C?n` zWUZA$uYC|ou)Ng`wUNg*1oFTR4VUiBV&>x^9$d&pGf3y8Xju{;l!->p z;m(Itw-`n6Q6KB`eOei>Cz2XDYo5WKP6;jXABBf`Y;C)Fp3x&!PvKc&sR0z*vxCU! z|F!=N^Nf0UgZ~WYwr>p<(0%4Y88Rm!6;t}pfe8a@JVmLRgkI0!e`SY1Y$BNl(=kIxrv@ zr7gd$9l8fE_>1}=V!G{YQa!mh|KI5nVMAp`V2@VS1LTq`LUWl*zTG5;qGd&iiSaK! zhj7mG5)b(i0#1mMRsZS?zB(sFy?l5!SUfEVnWzuA<`jRmgvZ)_g{^I?zrFTk46|R@? z^waIvsd7AXuYX0$wDv5)n(I)!Y_Z`wMfm4HAHOc8>@0)q(~<&5z1o4JG>Wtx{R}&y z=cOvIHc$BkgZhdCB>NGMl)VN0E5D(iXBf%uY1RdD$c(6!^N^w@tVvIIbCTf6Uh69B zU_{gH_hTW!(LR4Yn~AXpIB0}$DI!+w^U^W06vx2ZIf+4NS|~I6n^!{qnS@-b^)1xz z!S;h~s#icj?|23UE#cd5WVa1&UBIVK*yD)r5!b}lCoi#Y+@E_()5Ab!Y0ysx%v)WQe^dWakB?WXVP zRIKgPU^dsj4;cA)%#0?CXHQ1%l-7{aRj=iEK^6L-_eJ{_dWl`SLx~BD4J>(;Qm9yV+ zH+_-*3OVr&&qQaZ4)h#B_AA>j>PS0h7-I#RCe&ZS1g8p9V^9udV5)OO6gY=<1^KM zT^m<{-GXxom}VQ}mKGpGv4@K1z(B5r#P-YRecP?OnW#cKsBkpkTp|3pBHtGFgu&Eh zIFnm(?ZGj=!wxf8>!L`FbI2!0`>n8OQ?s{8nh|zxH?5l{D?YO|};KaI1`sctYs{WQ=pwD?|$rgmi z+E`DcWXxSb%uQEhcmimAjudv~M|w5hipK`UyUN@ZciU`ZEZ=<0^YCk&)_c=+~25VMavlt0wADLmQ2S)p**DZ#BUIOAuj|=-v>lgLxMzL4NMWv-dnhX(c8) zaLN(&vfxZx9Uze=jD$E$C4t8xR1`kS6j*dPM*yi2mDEcAn9Th{d@BC;JB2lExXCvx zD4MhZ$J@!;a7~)k38{Tl&2}ivoV_UUq1u&@)Abb1EjKDtk&fOu*mH23g_7=B`}ad*r%sD2rf5p zc(lqmK3D^^2O;h!J%Ch%0o9v|VE|%qJ?cA07ZI^8xQ+79f$mCUetW?F%Fv5Trs=np zSIs_L?U#$x9NFql$ne}z!fphzebNR)H``=^qHn-5)H&B#+ewl*x#4qL*|tW#cew1O zmZTVVq&Z;NCN69@bbgNiOX4bmt{MI1(6D0GaUGm7eRepi(j#y`y$?K=Xyx~wIKsAN zh72Y{0U7{RYaD7Eo3`sHjf2NI=T@sHR~GjUsj(r5b}x7{NC-0~lGFG>_io@$pJE8o zrv{8OZf~LQlnB_@6`39YcG3ElDIT5Ncr-aM0Fq@_IrC zWWg<4U){sMFlksXidgJmq07-=_x|<%aR#+VJ3Qon<+pL%Sf{t&w+DRBHB&;i`EQL5 zfVGW2rm~ngO`q6^!(Kp&7oT$$gTbc(oq|ZCHV7J|5B4CC`fJ=-I`cslQZW{<9&c>D_)Tav_uCzvhXe7R(*++K|8^GMo2|>g@cZ5u z*hvAgz^0lcb>&E=8A=v?gL;#Z0YTB+8*P3paZn_?h)8$^*iw`&AA{@gks2g`5^G>2 zIW~m1Ns_g04fn1-n?aG-59}dCOX#EkP)b^-oNYp4BH!NR8O!p=pQ$YGWQz*PW?8qC z6@lwir+owE&HbZun$?Tg(czmn3ejhh;nV6x@E-VG3z>9^E>sM5I)`n%*?4$4@)TRU zeaE5El1Xday`6362J1qN^ntvQx^D_Din3o^{6=+~Yha#U=bZYl2KC_UJnOML$_65k zHdMX*%VtGFJDABehN?Ms@#9ap#;n803KQzuupRyZBV*#({HW7Yz`kJAlmsHMv z?A5uWBtR`Wd~vq=;?6NEzb7`nm7R=j(gLikYdX}j6cvhNS+;cMq^Xwu`SfL4d8GtC z9kl(#xcxA~IqGG5OG>rh?WV+*X`@%fe>)&vGnN9!ANpZvf85$2Pf#Fj;XS`H2F1PJ z{m~0?GsF>hZOBx^c^7h7o8<8q4^4gE{9%Sz?_CpwCMlQNKete?)gz&20$Z0Wh4 z?8%?v7bA^6?8$H?a6ZX=hN?P)r4~73D-ZA*_D|zb)u=dj2PSWjV?X%eRF;9$mCOK~ z?ZtB)P})J4eV@6r@Y|R-^}wWJDdHWkCm92qYg)ITSz2qYU8USu-f3PLX3`!&P8@fm zHdFPL13zC4s+b)XyC{=PZt<{fu8CfNn~>}qoeqNM4Uk1Iq*mz;4HWfcv%6dT<*>^zB{(gFM7+ArQrqTuzSWlMun*=z}SYKAwU413q#Y%yoeSR4$;4P2~TN z%4}rKG#DGw0^hET=O$Z#ZiF5C&KSTAwTdKRh^RzFJBi%jQy%ta)K@@FIZj=nF;UPj z+D970QiDU$-J`GNtImBP#&lZ1F)uH%8PBS+U$ZiSYKj2F6Gkl0LsCV9b^RM7r+n`B zZi_zdPm1eTmcz$~@`@B*p@)xn`Vx%Y3U$hq4v-IB-IJh0dvJVX+baN^9KPv&$uWIeVl zd^*U<{wU-_P0Uikh|zyP_{w}au8i@5#i{x>bWcbvHNeZ}*-(+as6(;ZkB`uI{GG-H zPGqs3v8}qwiM28raKpMW89%jA7EBJ;NR>K&gl%jWoK*HfFVZqD4^0Y20`)t#yI*Sb zcGBNB$2EqzxJEF%)>->>WK(Pz?GN@brQJl?5V$;yHB;^)NM~q&qjOaO(hN zc)G&>Z5q=;JaJ+{zE@CVpICK z!!6u%w*>O{j?QX-Ah1J6%Rc&{E@Wyk9?X}iO-b>leN*5xU+o-~bax^=1prL! z+F6fzcJho_+&*9m1T+s@Cau%nU7MRuU(dng=Rf@!)FUPF&5JMq zT#;@j&O({k>H2l}A4n;wOg&l-NjXZM+T#Pf#qcd}YbrpF)WWZF^cR@WQVI@m< z_yx{F1ll3A;bSRq@x}3s_oVg6i>m9!>T-Mxo!MNo`iXHhR7zS%dtJ7@6wsOP@lNAa zySPh=90Zq)EJ6_**00OByjLmcE{V-aO#;I($?au`J*lqENhIwC>`poU(7JN3xJK*j zmRmc&k9D5}%!fog<=oo;saoWw#F9v+_>sdl6$v(tF^RtxAWw1oks0Lna5- zExR^M&;|G$DI&O!jd{tvAD)jd%i&0`M6T+RoMW;E-QZy6ZF#cndU2P1^Ez%wL<;@* z4ZQp4fu_G4a%i7ew_oX(l&5dK%}{TJ7>@QXUf%&HU>Eq%9+;&^VmDfWuB4P7gMfc~ zUCS^)$D^^{^Y^`Bk)w<}kqJrpWxLm_tK{%!V++}zVhbvjJhZdQftLRIq?UfthowYb zfD~SYf3v>B58r$+B6Jbcy}+S`di&(dbCO4)cWtR#hCG1G9Q2Rj%A&msucJ#`l`DXr zKMOgrpJw;aPw7Qf?G-rSh$B%B?#Bzdf0zXRTUh1929S_oB0c@FKBh{tpji4b4m+VaZLJbDX!c0lIEN~5)(81k)+Ugw5zGAi#R{6 z<~^gmenB6(uB<~8?Uzy}oQ~?y`t09xY<7i8PR>$u)WD1bsq5HSx9;qIC?ikeU0N9- z6M(GTa(j_id)`u*tKo2EOr4kt*}T#{eDs|}DAJWEGFNNU9yFq(7YoJ3i>1@Yt0}mQoPN1mBZSoy>nv* z-kp~x3RN&1rkYpc7ca%6KQ-(qijkKfrQ^E$1^MY_V(y^%-PX?!Cqnvls&u*8vDI3@2tIM&dE0=M=>({`<0!Z-p{*z9zHA%F5mUt0MHa)FX_*D_=8 z>1%D5=_q9*=L*ccxGPe6n0S7NmMZT<6ZEhTtVArDB;Sr`PqMa1q4nUqo>Yu%XK5w^I zUY?T=#0GMw&l}^o?F$OZ3CCgk6ZC{>Ne1ur&IAFS%DA0-=Y zf$OWvTYlA6{^<7jEoSgrV}7gc!ydOjAy@L`G2!El zXNofSKz)vn_2wDgBsrX`)eCXq$xwTsaDM2j?6A%f5)0FbI~LvfKW;S*|B=g4GshoV zUczJsvm-a{KMeoDFRl_gZ1rt7lG(dn@|baZ`8i8xVK`RaaAU(JH1~;DgZQsEtcJ$I zDVBu;NOZc;BklMfJGG>t?aYOB^`uAjS-JeslEnoSbQiCg4#}Ha{5C)sj=)QOJEl+W zt>#unM9aY)CZolAIE~sCcby6EO|+Np*)mi|nr#U6A#YeCrOCKTyR@aBGY`+iAiWhg z|7wvcN|HqAYXIN=!s%Fem@HO_Ik(`dIZpkd0&Si?Q0e=>5|a6rXNvc_YPbUh>(Xow zDr5dgTK?n)*@S>zPyia@BA6Z(p)^rHp!IYNU56F`-b#5giH|meS zy+GJm7a&g_`!=H*dNPp^Ca?jSb~?V2hIU7V$i!{Onbk%&6>FGh;RR3)U*uJ=0WO%r zHxu6Suil(2(@)i3h>hmt;(uPISOi(7vT&UFZ8m12hKb=V@`(=T|2dGp0Z$tB`Al%E z!%GzlnT}b>H`g|&_0T78ln0=doYa`yK3{*g8DB;bWTwfKMrSCdfxMsHP%Nr>2>16{ zx|0qKzYVSf$rX4ht>!<4Pm67yli=A&sDDskm^5>{VD>kh}L_XvUHK@RH<^PYOGmmFG-P?bE zXZD)5r&UZj>Y3VF>#22$a;CKuRi%hMPZw)MruHrJ%(T>QERkZ=)LMcdl2nkKv6cw6 z#FB{AlBhL8B_hlG?*7|9DzD`Gz3Jqn#_44ex3Ywn8`1M&-B zb+;4Q3fR5S&$D3<+U3XJ&SRK1r~%Zst%TH!%xh)Pa&1S5{2Np?7`1>tBAfF~n)`>o zhiy>?T)6GpBjeE?nAnvH=Co|LS@Y@(X_o{~$`oSeZ69dr@b^#>r9IViBd~L-N$Eeu zyPq?sU9qyAUE=I(@ONwCG<_~_-pBe};MrQw_nPpZ3L}F4tX#)P2qi*^Omzib?+n!4 z+vcf_g#U0v=3Q@ z=JYD0o_0^7KjL?+7Kz|E^l(Tqrtb&I$n;9b)bSG}K-_DRCO&n#6o9>s#tJoyc`mzU zEmh%Ng%h+qQO4}kX)Ao%X^E@Gy2RDfG%09f7~g)gm2EN8fVP;sn;3vjPr;jUdf4Rl z(rmN_%9Ft04M`+E?Rz%va77dSwsi@|+_~8y)&|biVaShu5&5f+KQO1+^4>hJ6&6f} z&@|#c+O23xyoc%eJ;3E$(?LcVraQKsbDnAoUP~AHZ?=YX|BBW~lrT&%2Negg>WYCO z38uTvmXIbD!CtdSrP7d%^Xq(*U&Fy2MP z)YO3CNDA?FuY&{^FkSuQUwN;>r~Fsv z-vzl$ss9--E}xO0_ZtV{p>Um5xcW42!waqM`7P%2&?}O{F&KZHQ~v`{6|6mOHyNN+ z?z|JaLbI4r#O>ONtr@E{2_BPdyu8>ZG48)D~lh9v)+oYm;*2I{cfB zXi1~DYzu+=Wk!nl^O!Vnpv@R}(`;miN~oft6oxkaa`>yX$M2Ha1(o$M3wUh$-={V` z$Alj{aBPf>IW%i?%`704kWf{njfrez+e?mKUy1a0_=LIcCg~0i!gkm~(Wtb zSqEYEe-3K=I5AyK((gI{1)C0Ra1zaa-zOIqR=?FAsSwUF=x{y!Zy_ng1XK-Ne}P|{ z*$=I2#My@t@;LNrwy#3lNZ1EZYiQs?$GHlBQq zq($*;m<4)BLTghJ@ggCjto6H6!rp@>vbAUo^(*C7d){ruUJm)F3_W2bs@_#q z)}+jQf_dCY{OsF;?mj8oZ2RB8PeJs7)@*!sVb9`DlM$~N+HG_)cb=E6@!c#;BkJv( z7WG$V(j(3RelNkDzXu?+&4ac#x^sqFuDIJeCmNlWVodI`FFPq5UiURM1AjqCD}b)hW@zp7_EL7Q|j+K&(vwB^dg1d~BXnHjWZ_skGBI!XfJi}3g@fnw%OO=wN5lGFElJ$eOs~a5OS*jb_7!A}qx%gE9nnh<`X*y{x1Lh+dbora>$t5X!lmZpY0s!4wzBTTgWfAJqsrE&O|-VTwe6QS>1Q2jDHNa zH2B?VFFz1*q$fLa-y_7jqzw<@&Me$kUaUvbq*2rXPniFh|HwLvvM{qp5;eCqCCe($ zEw%zY;QSX@n9&x;8vNmJK+07=;%vTxng|IK-Va)-Id87W_8ZNTQXdyhM9?v$I zs3cM4H|`&A1?fSRl1eu$EW zKN_pdTi{%o585~WKq^STnN+)@>S9i;MjW!;HFv#T68|cEep&07wOVO+29Ptm**x|= zPJ)))A`~}6J(Xs?kNXSv?Z`^u>BYLc*_32zL84r^b%6hVa^bdn*3mCNT}Grhsehn8 zvpY*U9ns$SVn^BSHiC}`6W52a4&icc@QZu*a27jONW%eC4@Wm3CnWNOwSFG`yG7Tc|0im;|<-% zK&o$e$8x)r!)_)ir$=uj)#~d6#J7F62jQ;)l^H@7=rf739lE#1FFc&xI_6--d)E)G#`vSGFB^ zvK8zzi;14aUVvRK!ZxSjAeT}bI_u)C9_d@C9b;>Vzy4$XQteijB&Zr52gnyB31i;H zqi`_knE8PBKFGsU8_qF|{pVJ;(v0I?5BBz8O0yHpv`03J`-UR;bgkuX&Mwa$$b$o? zF*l)cAN!}d_54>KPl_#OomyB;o_ot_ciboYCp>55TDsdQjSBc)@-ra8e zVPM6wb$;wLxc!=Er^&ZFYrxkDsM9ti!6rWt|cIX zX6G<46Vo}{*G6-Pq`fz#-H+nm9MYBz10z4?<5Q&7yK|Y9O#^y65T8)ojoDYc)s6bCN@ z?_^Gw*o<@jqfbf|R@!<|V2}&7OPUdWd+f2AUDv(OrEk1wK#q4fNEWDk46d;*dwy@P zaY(HhHyUuu{IOBEq|v6HuDH@5`?VKd>x_34=#(Qh_QgG5B{&j^IDX`wrRN(2v+@Eh zYH|>`8A5R6(tK*d>)xz;J^Hf+A=%H7i~o8x@duZ0e_ZV<%f`tUsLWTozdn@fF!djvJZt zSr>eY7aNvFrFQ*3J&Oqf5$T`R|#_Wls@fW9m z7d_@{D3P+FqwAp6h<(W0G)u;e{l4_-yuoy^{AkS&z z{l1u!#w_XWi$zN`l$9mh4V2V|$jr0NeXz(mpL!;XX-#CAqpj)7<>X_lEg#Rsy)(l|y5BX>&gx+J>7Ly}MXMn}|$)8@np zQ~`sQRph_SGaT=++zk_#+fjiL;|=-wa`ZMj`?8M@3P^G|kp*sHbnk97BeV;is|+d` z&VwHcKUh@y-Kj0t&IqZ1Na#|#rIwri0hQJ_jHk54!Yf##T@EOaI11kDWLH*`5zsS* zB_2KkndI(ocNi&?9_=|6sp4{KAx*+UP0~EPZg&NVR8!qjPY<1`Nd{?(04em}{6N{k z&AHdww7c^r)(9C-M&&bhAN#l-ui)Dqy*W~7${$3CaXg|Ep+ELS!Wl$A=Z?XCIK0E0 ziaOuIOGwBLvbZAK?eZInYE>WqCpHScGX`E2UqX&@A@UCv`utQml>&yJeq=Z4T`}CF(HtVCD%&X=JgOB|m|dM~2J6 z7)awssN8@4V!i1!cm0}}IC(`{K;6O5p~-cEox~6^s+(N-G_=SO?-~QN6Z2+o9wIE< zijtwaV;t*Nug8=8FYCuFcbcNd1;KhanYoXDhNs-G?$Gn=eB1aCe}dVa%3iEFTSSqs zHz^f8?%#p(ccFa&vJ$%#=y#QtEDI8vtB;BgZjB%j=cwC3W$was|4jE~y!Gu1ZG3)o zQ<(zLZF|gz38Gl`-N|1pALoNG^TM<@_~C4+VK-o(x;n8tk1Y6NyOf^DmZw@Cqr%i< zOxXTdWkhRpAnWf_wSfWt%Z}B{DPz}5fAcJ~?Daip{WHRL($oMUvf-4gHjiF#IK<;o zT}?f31%r7{M6Mew9LkqUJX_LvUoB7mgCx+SY_!f&U%m={q$IJ#;2(8T*&zs7Sw$xm zBZTL5qP_%c08LbH*Jh)8S$G>{T+ZKT+%PfDj)uew1?WnTIfSBJN?7fF&D!j7gaN`&5H_4@&wCGR;_(*RN^sX%-iA8!go zkw8EXrUKPJ^lGme8X?Xl)lBYKp=<1l5>;#AsJ$`jFyZhfrK!okd5O7v5BvpEI!D57 zw%&Ew7&JkY{e3Eqvy1@>Q;zrM^tiZo{|~B1zNX#%Y+JVFA}0pW&Aa6?Z}RlAb^$z} z2<+WV>O}?c;6F9sc$t5ThLbiWY z7qa{0v8P8}QhFhFJ6(nH!gJb~OMIJ6((167$936-6|xFF@!@GV1^2?bNyuy^A?KB` zh)NAc{e9~Dd{lfi$qIh5#N1uV#fv&n0x<9Yb1t|~@)Jx|{f|m@zXaWJItlz^HC28T z^XMRJ4Pf{ySMbJRMi9+Ull|#7`=T7UeCGAm{a`0TkiR9n+paIj#9h6g4^aFg?%zvq zALs5D4l2knO@WK_M;x0dKx&gj5GjqvA(G_m2FW-1pJtz>voTkJz7C{ufTtvZ;;vZo z=ojjMs3!G#>n-we_Y-7C^IaPvD>!J)E%<;<44^KFD_V~O)>NMLA|q!$GF$GpW$R%r z$9t%m7|*F{zoH_JD2j3TQ@zgxQSDgj!VkmO)d5vvFwv6OiL7CX!X@5V3W@5JL4;V= ze0;y)-*Wv*^B&eRaXT_E|6tx+@8G#J*3mqSrsxwf#lV&bbZUj)2GCxlkfn^c?dx{H zY}S(RvAlZ2)*TZj@TvCWS%p8W|6*MF^O{2CIg@Y;9QrVgW9Yk&7^0nV2_d2xPvm=B zG=W84$*AdI&e%2qI~d)20|mP9U130tSY*rWcDe9tU6YGlxFo=JzF3Be7ez+2*@glX z2y9sT#p-;{+z-*!FkrKsYK?#LHlq%*)D--ryF0)3mfiU`Ow1yqYP(3#b%Mz0wL`9K zx8{+~TS++seztl7*bu_(y0wF58sQLd%1r}5R@9ZvjE}!z!O{%ECcJ9DO&$5|nD$?i z?FB*R>-wPEgh%M*Yp9G8S;bJvK-TVtmEI^21SaO&KNu+3IbN+f1kBX$519Ldp27#mHEHP~x3`Xvt;U&7);hm$9*$K5Xp9L3ePM^ZKzKV{ zKd5(5gOfA`$~(Ta3@Fy}_LAf@iLjksH*T(#DLppM!fFo}UclGUj77@YO)A5<5RJvI z9y>jE@wVQa-NNPh^+mG#3hRO2X3CH>ZxgNrtf-q@F$A=DEjQ}NFXWxk7M#U4nIT%X zJi!C?y{kySVFs~d_I8f9%|)!_Q;wcmy~z5can86zQGBQi-cY;0Pd)Vg<+#v$&fkf& z_!UJqK@(NVcx_qU++%=^s?cqKRbSW(DS~%>Ou&gMxh;M+A+ZLL#Y=co(gdThZsF!& zsv*20h?C-%?wztw;z%TTr;5N@$w!Nc_QYPhG<>~~9L5f^ZPJmvs6yMWlE%=LZvq4C zS?6uR2ZH&-QYH0IIvsq$z15uG_Kf0|E8$eboTVE3s$7g2{hr34KYXI4Irl6hL4tL} zeBgB4!aY5=4{0zef?tqLc1yi|HcMbu4Gg*J%R!LcA^kCKIxR$_v|7KmKGl&B566yN z3GSafl;$-N=6ap_MLu)ESMc2s$pMg|q;gxEBW***?~T1dn~1bvieF1^yJ9WMZRX@E z;3j?F+*`SdU%Y7R6*~I+IfcrnQXOBUW42A3_4RCzz>0YJCa;qwGz-aR zGq4Td-F~6dnW^?oM%fKNRUf%Xa?$Z;%>ak}$;zkdl5t7^sgfj_3{dn9+{#z)QZZ>U zHX30|ogo$aFokzwIuoGRNDZ9Tlp6z>(ofr2KhC!L|In78XP^HIbwp&#eJWzs z9;eV-45!L&vWlJUvbSCPMSD4;`i)h3)QV|KiQSbs_xvkFDuJVyHWlT-lG>R+r2imw z7+mFFnI*VIgq9tS<*SR5qZmR z%e7p#de!P#usO?$!8gRQgS`+5j_Z@Q{4u8d5)AGAF;0fYOi9F|-o6>}`FtPvt zow2(Y_coyX0YXqS|HUdz+&HIY&nD_Fptlr*w3IuorQ=1YGs%cjjA+^o&r1+DN&bA) z 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
yjB8YYS|Xr8;XISFa1JT}7X?1hxI@v)OQL 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°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%0AAJ&!;`~$O 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 r=x3C~ogq8$>s~Sxcph6`i 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 - - - - - - ENOFLAG CTF Setup - - - - - - - - - -
Loading...
- -
- - - - diff --git a/Frontend/.gitignore b/Frontend/.gitignore deleted file mode 100644 index 41ffa34..0000000 --- a/Frontend/.gitignore +++ /dev/null @@ -1,231 +0,0 @@ -## Ignore Visual Studio temporary files, build results, and -## files generated by popular Visual Studio add-ons. - -# User-specific files -*.suo -*.user -*.userosscache -*.sln.docstates - -# User-specific files (MonoDevelop/Xamarin Studio) -*.userprefs - -# Build results -[Dd]ebug/ -[Dd]ebugPublic/ -[Rr]elease/ -[Rr]eleases/ -x64/ -x86/ -build/ -bld/ -bin/ -Bin/ -obj/ -Obj/ - -# Visual Studio 2015 cache/options directory -.vs/ - -# MSTest test Results -[Tt]est[Rr]esult*/ -[Bb]uild[Ll]og.* - -# NUNIT -*.VisualState.xml -TestResult.xml - -# Build Results of an ATL Project -[Dd]ebugPS/ -[Rr]eleasePS/ -dlldata.c - -*_i.c -*_p.c -*_i.h -*.ilk -*.meta -*.obj -*.pch -*.pdb -*.pgc -*.pgd -*.rsp -*.sbr -*.tlb -*.tli -*.tlh -*.tmp -*.tmp_proj -*.log -*.vspscc -*.vssscc -.builds -*.pidb -*.svclog -*.scc - -# Chutzpah Test files -_Chutzpah* - -# Visual C++ cache files -ipch/ -*.aps -*.ncb -*.opendb -*.opensdf -*.sdf -*.cachefile - -# Visual Studio profiler -*.psess -*.vsp -*.vspx -*.sap - -# TFS 2012 Local Workspace -$tf/ - -# Guidance Automation Toolkit -*.gpState - -# ReSharper is a .NET coding add-in -_ReSharper*/ -*.[Rr]e[Ss]harper -*.DotSettings.user - -# JustCode is a .NET coding add-in -.JustCode - -# TeamCity is a build add-in -_TeamCity* - -# DotCover is a Code Coverage Tool -*.dotCover - -# NCrunch -_NCrunch_* -.*crunch*.local.xml -nCrunchTemp_* - -# MightyMoose -*.mm.* -AutoTest.Net/ - -# Web workbench (sass) -.sass-cache/ - -# Installshield output folder -[Ee]xpress/ - -# DocProject is a documentation generator add-in -DocProject/buildhelp/ -DocProject/Help/*.HxT -DocProject/Help/*.HxC -DocProject/Help/*.hhc -DocProject/Help/*.hhk -DocProject/Help/*.hhp -DocProject/Help/Html2 -DocProject/Help/html - -# Click-Once directory -publish/ - -# Publish Web Output -*.[Pp]ublish.xml -*.azurePubxml -# TODO: Comment the next line if you want to checkin your web deploy settings -# but database connection strings (with potential passwords) will be unencrypted -*.pubxml -*.publishproj - -# NuGet Packages -*.nupkg -# The packages folder can be ignored because of Package Restore -**/packages/* -# except build/, which is used as an MSBuild target. -!**/packages/build/ -# Uncomment if necessary however generally it will be regenerated when needed -#!**/packages/repositories.config - -# Microsoft Azure Build Output -csx/ -*.build.csdef - -# Microsoft Azure Emulator -ecf/ -rcf/ - -# Microsoft Azure ApplicationInsights config file -ApplicationInsights.config - -# Windows Store app package directory -AppPackages/ -BundleArtifacts/ - -# Visual Studio cache files -# files ending in .cache can be ignored -*.[Cc]ache -# but keep track of directories ending in .cache -!*.[Cc]ache/ - -# Others -ClientBin/ -~$* -*~ -*.dbmdl -*.dbproj.schemaview -*.pfx -*.publishsettings -orleans.codegen.cs - -/node_modules - -# RIA/Silverlight projects -Generated_Code/ - -# Backup & report files from converting an old project file -# to a newer Visual Studio version. Backup files are not needed, -# because we have git ;-) -_UpgradeReport_Files/ -Backup*/ -UpgradeLog*.XML -UpgradeLog*.htm - -# SQL Server files -*.mdf -*.ldf - -# Business Intelligence projects -*.rdl.data -*.bim.layout -*.bim_*.settings - -# Microsoft Fakes -FakesAssemblies/ - -# GhostDoc plugin setting file -*.GhostDoc.xml - -# Node.js Tools for Visual Studio -.ntvs_analysis.dat - -# Visual Studio 6 build log -*.plg - -# Visual Studio 6 workspace options file -*.opt - -# Visual Studio LightSwitch build output -**/*.HTMLClient/GeneratedArtifacts -**/*.DesktopClient/GeneratedArtifacts -**/*.DesktopClient/ModelManifest.xml -**/*.Server/GeneratedArtifacts -**/*.Server/ModelManifest.xml -_Pvt_Extensions - -# Paket dependency manager -.paket/paket.exe - -# FAKE - F# Make -.fake/ diff --git a/Frontend/ClientApp/.editorconfig b/Frontend/ClientApp/.editorconfig deleted file mode 100644 index 934f2fe..0000000 --- a/Frontend/ClientApp/.editorconfig +++ /dev/null @@ -1,16 +0,0 @@ -# Editor configuration, see http://editorconfig.org -root = true - -[*] -charset = utf-8 -indent_style = space -indent_size = 2 -insert_final_newline = true -trim_trailing_whitespace = true - -[*.md] -max_line_length = off -trim_trailing_whitespace = false - -[*.{razor,cshtml}] -charset = utf-8-bom diff --git a/Frontend/ClientApp/.gitignore b/Frontend/ClientApp/.gitignore deleted file mode 100644 index e1f679b..0000000 --- a/Frontend/ClientApp/.gitignore +++ /dev/null @@ -1,40 +0,0 @@ -# See http://help.github.com/ignore-files/ for more about ignoring files. - -# compiled output -/dist -/dist-server -/tmp -/out-tsc - -# dependencies -/node_modules - -# IDEs and editors -/.idea -.project -.classpath -.c9/ -*.launch -.settings/ -*.sublime-workspace - -# IDE - VSCode -.vscode/* -!.vscode/settings.json -!.vscode/tasks.json -!.vscode/launch.json -!.vscode/extensions.json - -# misc -/.sass-cache -/connect.lock -/coverage -/libpeerconnection.log -npm-debug.log -yarn-error.log -testem.log -/typings - -# System Files -.DS_Store -Thumbs.db diff --git a/Frontend/ClientApp/README.md b/Frontend/ClientApp/README.md deleted file mode 100644 index bcdc871..0000000 --- a/Frontend/ClientApp/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# Frontend - -This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 6.0.0. - -## Development server - -Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files. - -## Code scaffolding - -Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`. - -## Build - -Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `--prod` flag for a production build. - -## Running unit tests - -Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io). - -## Running end-to-end tests - -Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/). - -## Further help - -To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md). diff --git a/Frontend/ClientApp/angular.json b/Frontend/ClientApp/angular.json deleted file mode 100644 index 957bfdd..0000000 --- a/Frontend/ClientApp/angular.json +++ /dev/null @@ -1,136 +0,0 @@ -{ - "$schema": "./node_modules/@angular/cli/lib/config/schema.json", - "version": 1, - "newProjectRoot": "projects", - "projects": { - "Frontend": { - "root": "", - "sourceRoot": "src", - "projectType": "application", - "prefix": "app", - "schematics": {}, - "architect": { - "build": { - "builder": "@angular-devkit/build-angular:browser", - "options": { - "progress": false, - "extractCss": true, - "outputPath": "dist", - "index": "src/index.html", - "main": "src/main.ts", - "polyfills": "src/polyfills.ts", - "tsConfig": "src/tsconfig.app.json", - "assets": ["src/assets"], - "styles": [ - "node_modules/bootstrap/dist/css/bootstrap.min.css", - "src/styles.css" - ], - "scripts": [] - }, - "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 - } - } - }, - "serve": { - "builder": "@angular-devkit/build-angular:dev-server", - "options": { - "browserTarget": "Frontend:build" - }, - "configurations": { - "production": { - "browserTarget": "Frontend:build:production" - } - } - }, - "extract-i18n": { - "builder": "@angular-devkit/build-angular:extract-i18n", - "options": { - "browserTarget": "Frontend: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": ["src/styles.css"], - "scripts": [], - "assets": ["src/assets"] - } - }, - "lint": { - "builder": "@angular-devkit/build-angular:tslint", - "options": { - "tsConfig": ["src/tsconfig.app.json", "src/tsconfig.spec.json"], - "exclude": ["**/node_modules/**"] - } - }, - "server": { - "builder": "@angular-devkit/build-angular:server", - "options": { - "outputPath": "dist-server", - "main": "src/main.ts", - "tsConfig": "src/tsconfig.server.json" - }, - "configurations": { - "dev": { - "optimization": true, - "outputHashing": "all", - "sourceMap": false, - "namedChunks": false, - "extractLicenses": true, - "vendorChunk": true - }, - "production": { - "optimization": true, - "outputHashing": "all", - "sourceMap": false, - "namedChunks": false, - "extractLicenses": true, - "vendorChunk": false - } - } - } - } - }, - "Frontend-e2e": { - "root": "e2e/", - "projectType": "application", - "architect": { - "e2e": { - "builder": "@angular-devkit/build-angular:protractor", - "options": { - "protractorConfig": "e2e/protractor.conf.js", - "devServerTarget": "Frontend:serve" - } - }, - "lint": { - "builder": "@angular-devkit/build-angular:tslint", - "options": { - "tsConfig": "e2e/tsconfig.e2e.json", - "exclude": ["**/node_modules/**"] - } - } - } - } - }, - "defaultProject": "Frontend" -} diff --git a/Frontend/ClientApp/browserslist b/Frontend/ClientApp/browserslist deleted file mode 100644 index 8e09ab4..0000000 --- a/Frontend/ClientApp/browserslist +++ /dev/null @@ -1,9 +0,0 @@ -# This file is currently used by autoprefixer to adjust CSS to support the below specified browsers -# For additional information regarding the format and rule options, please see: -# https://github.com/browserslist/browserslist#queries -# For IE 9-11 support, please uncomment the last line of the file and adjust as needed -> 0.5% -last 2 versions -Firefox ESR -not dead -# IE 9-11 \ No newline at end of file diff --git a/Frontend/ClientApp/e2e/protractor.conf.js b/Frontend/ClientApp/e2e/protractor.conf.js deleted file mode 100644 index d60eff0..0000000 --- a/Frontend/ClientApp/e2e/protractor.conf.js +++ /dev/null @@ -1,28 +0,0 @@ -// 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/Frontend/ClientApp/e2e/src/app.e2e-spec.ts b/Frontend/ClientApp/e2e/src/app.e2e-spec.ts deleted file mode 100644 index 5b3b4b2..0000000 --- a/Frontend/ClientApp/e2e/src/app.e2e-spec.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { AppPage } from './app.po'; - -describe('App', () => { - let page: AppPage; - - beforeEach(() => { - page = new AppPage(); - }); - - it('should display welcome message', () => { - page.navigateTo(); - expect(page.getMainHeading()).toEqual('Hello, world!'); - }); -}); diff --git a/Frontend/ClientApp/e2e/src/app.po.ts b/Frontend/ClientApp/e2e/src/app.po.ts deleted file mode 100644 index 24bc8b3..0000000 --- a/Frontend/ClientApp/e2e/src/app.po.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { browser, by, element } from 'protractor'; - -export class AppPage { - navigateTo() { - return browser.get('/'); - } - - getMainHeading() { - return element(by.css('app-root h1')).getText(); - } -} diff --git a/Frontend/ClientApp/e2e/tsconfig.e2e.json b/Frontend/ClientApp/e2e/tsconfig.e2e.json deleted file mode 100644 index a6dd622..0000000 --- a/Frontend/ClientApp/e2e/tsconfig.e2e.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "extends": "../tsconfig.json", - "compilerOptions": { - "outDir": "../out-tsc/app", - "module": "commonjs", - "target": "es5", - "types": [ - "jasmine", - "jasminewd2", - "node" - ] - } -} \ No newline at end of file diff --git a/Frontend/ClientApp/package-lock.json b/Frontend/ClientApp/package-lock.json deleted file mode 100644 index f695d47..0000000 --- a/Frontend/ClientApp/package-lock.json +++ /dev/null @@ -1,28433 +0,0 @@ -{ - "name": "frontend", - "version": "0.0.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "frontend", - "version": "0.0.0", - "dependencies": { - "@angular/animations": "8.2.12", - "@angular/common": "8.2.12", - "@angular/compiler": "8.2.12", - "@angular/core": "8.2.12", - "@angular/forms": "8.2.12", - "@angular/platform-browser": "8.2.12", - "@angular/platform-browser-dynamic": "8.2.12", - "@angular/platform-server": "8.2.12", - "@angular/router": "8.2.12", - "@nguniversal/module-map-ngfactory-loader": "8.1.1", - "bootstrap": "^4.6.0", - "core-js": "^3.8.3", - "jquery": "^3.5.1", - "node-sass": "^5.0.0", - "oidc-client": "^1.11.3", - "popper.js": "^1.16.0", - "protractor": "~5.4.2", - "rxjs": "^6.6.3", - "ts-node": "~8.4.1", - "tslint": "~5.20.0", - "zone.js": "0.9.1" - }, - "devDependencies": { - "@angular-devkit/build-angular": "^0.803.29", - "@angular/cli": "^8.3.29", - "@angular/compiler-cli": "^8.2.14", - "@angular/language-service": "^8.2.14", - "@types/jasmine": "~3.4.4", - "@types/jasminewd2": "~2.0.8", - "@types/node": "~12.11.6", - "codelyzer": "^5.2.2", - "ini": "^1.3.7", - "jasmine-core": "~3.5.0", - "jasmine-spec-reporter": "~4.2.1", - "karma": "^5.2.3", - "karma-chrome-launcher": "~3.1.0", - "karma-coverage-istanbul-reporter": "~2.1.0", - "karma-jasmine": "~2.0.1", - "karma-jasmine-html-reporter": "^1.5.4", - "typescript": "3.5.3" - }, - "optionalDependencies": { - "node-sass": "^5.0.0", - "protractor": "~5.4.2", - "ts-node": "~8.4.1", - "tslint": "~5.20.0" - } - }, - "node_modules/@angular-devkit/architect": { - "version": "0.803.29", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.803.29.tgz", - "integrity": "sha512-yHBud/fZHTelX24yjQg5lefZrfIebruoFTGeOwF0JdX8+KiHcTIxS4LOnUTYriasfHarcHRFXBAV/bRm+wv5ow==", - "dev": true, - "dependencies": { - "@angular-devkit/core": "8.3.29", - "rxjs": "6.4.0" - }, - "engines": { - "node": ">= 10.9.0", - "npm": ">= 6.2.0" - } - }, - "node_modules/@angular-devkit/architect/node_modules/rxjs": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", - "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", - "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/@angular-devkit/build-angular": { - "version": "0.803.29", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.803.29.tgz", - "integrity": "sha512-XAgfP1gi0rEJ3oVt+8ipvS5RfPNbeK5r2n8Ll2H3xkKjU0p1PN8+S6/0XVBtmMfeQ06SJWEAKFcAYqrxXhVTzw==", - "dev": true, - "dependencies": { - "@angular-devkit/architect": "0.803.29", - "@angular-devkit/build-optimizer": "0.803.29", - "@angular-devkit/build-webpack": "0.803.29", - "@angular-devkit/core": "8.3.29", - "@babel/core": "7.8.7", - "@babel/preset-env": "7.8.7", - "@ngtools/webpack": "8.3.29", - "ajv": "6.12.3", - "autoprefixer": "9.6.1", - "browserslist": "4.10.0", - "cacache": "12.0.2", - "caniuse-lite": "1.0.30001035", - "circular-dependency-plugin": "5.2.0", - "clean-css": "4.2.1", - "copy-webpack-plugin": "6.0.3", - "core-js": "3.6.4", - "coverage-istanbul-loader": "2.0.3", - "file-loader": "4.2.0", - "find-cache-dir": "3.0.0", - "glob": "7.1.4", - "jest-worker": "24.9.0", - "karma-source-map-support": "1.4.0", - "less": "3.9.0", - "less-loader": "5.0.0", - "license-webpack-plugin": "2.1.2", - "loader-utils": "1.2.3", - "mini-css-extract-plugin": "0.8.0", - "minimatch": "3.0.4", - "open": "6.4.0", - "parse5": "4.0.0", - "postcss": "7.0.17", - "postcss-import": "12.0.1", - "postcss-loader": "3.0.0", - "raw-loader": "3.1.0", - "regenerator-runtime": "0.13.3", - "rxjs": "6.4.0", - "sass": "1.22.9", - "sass-loader": "7.2.0", - "semver": "6.3.0", - "source-map": "0.7.3", - "source-map-loader": "0.2.4", - "source-map-support": "0.5.13", - "speed-measure-webpack-plugin": "1.3.1", - "style-loader": "1.0.0", - "stylus": "0.54.5", - "stylus-loader": "3.0.2", - "terser": "4.6.3", - "terser-webpack-plugin": "3.0.3", - "tree-kill": "1.2.2", - "webpack": "4.39.2", - "webpack-dev-middleware": "3.7.2", - "webpack-dev-server": "3.11.0", - "webpack-merge": "4.2.1", - "webpack-sources": "1.4.3", - "webpack-subresource-integrity": "1.1.0-rc.6", - "worker-plugin": "3.2.0" - }, - "engines": { - "node": ">= 10.9.0", - "npm": ">= 6.2.0" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/ajv": { - "version": "6.12.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", - "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/core-js": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.4.tgz", - "integrity": "sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw==", - "dev": true, - "hasInstallScript": true - }, - "node_modules/@angular-devkit/build-angular/node_modules/glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", - "dev": true, - "dependencies": { - "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" - }, - "engines": { - "node": "*" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/rxjs": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", - "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", - "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/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, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/source-map-support/node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@angular-devkit/build-optimizer": { - "version": "0.803.29", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.803.29.tgz", - "integrity": "sha512-E/MXtKc3oaP7UvQm0g4ayfH8ImEoQnRWseKD4jjYG6TbTIqfIyHCZRcKIr3svY28hzASbro5IZI6SugG+llvFw==", - "dev": true, - "dependencies": { - "loader-utils": "1.2.3", - "source-map": "0.7.3", - "tslib": "1.10.0", - "typescript": "3.5.3", - "webpack-sources": "1.4.3" - }, - "bin": { - "build-optimizer": "src/build-optimizer/cli.js" - }, - "engines": { - "node": ">= 10.9.0", - "npm": ">= 6.2.0" - } - }, - "node_modules/@angular-devkit/build-optimizer/node_modules/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, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@angular-devkit/build-optimizer/node_modules/tslib": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", - "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", - "dev": true - }, - "node_modules/@angular-devkit/build-webpack": { - "version": "0.803.29", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.803.29.tgz", - "integrity": "sha512-3dJ3iEGU6AFT8VFTe72T9uNLobfd18Sq5Hz22UCCYji9K3ZyVc/bn5uXVVX+/Yj91MFtXuhOjLj7Z+XDeNy+OQ==", - "dev": true, - "dependencies": { - "@angular-devkit/architect": "0.803.29", - "@angular-devkit/core": "8.3.29", - "rxjs": "6.4.0" - }, - "engines": { - "node": ">= 10.9.0", - "npm": ">= 6.2.0" - } - }, - "node_modules/@angular-devkit/build-webpack/node_modules/rxjs": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", - "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", - "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/@angular-devkit/core": { - "version": "8.3.29", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-8.3.29.tgz", - "integrity": "sha512-4jdja9QPwR6XG14ZSunyyOWT3nE2WtZC5IMDIBZADxujXvhzOU0n4oWpy6/JVHLUAxYNNgzLz+/LQORRWndcPg==", - "dev": true, - "dependencies": { - "ajv": "6.12.3", - "fast-json-stable-stringify": "2.0.0", - "magic-string": "0.25.3", - "rxjs": "6.4.0", - "source-map": "0.7.3" - }, - "engines": { - "node": ">= 10.9.0", - "npm": ">= 6.2.0" - } - }, - "node_modules/@angular-devkit/core/node_modules/ajv": { - "version": "6.12.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", - "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "node_modules/@angular-devkit/core/node_modules/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 - }, - "node_modules/@angular-devkit/core/node_modules/rxjs": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", - "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", - "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/@angular-devkit/core/node_modules/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, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@angular-devkit/schematics": { - "version": "8.3.29", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-8.3.29.tgz", - "integrity": "sha512-AFJ9EK0XbcNlO5Dm9vr0OlBo1Nw6AaFXPR+DmHGBdcDDHxqEmYYLWfT+JU/8U2YFIdgrtlwvdtf6UQ3V2jdz1g==", - "dev": true, - "dependencies": { - "@angular-devkit/core": "8.3.29", - "rxjs": "6.4.0" - }, - "engines": { - "node": ">= 10.9.0", - "npm": ">= 6.2.0" - } - }, - "node_modules/@angular-devkit/schematics/node_modules/rxjs": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", - "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", - "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/@angular/animations": { - "version": "8.2.12", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-8.2.12.tgz", - "integrity": "sha512-QVtZUw5J9c0RcDaJntIoeWVk/q9dhjDFxh+yw/uPl9Z4upWASdsOpZU2lfjqyU0myfg8dnQyZa1+Ce7n/DaClQ==", - "dependencies": { - "tslib": "^1.9.0" - } - }, - "node_modules/@angular/cli": { - "version": "8.3.29", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-8.3.29.tgz", - "integrity": "sha512-pW+iU0eKHIae+A1b9W5g8DKefMQcehZ+drGKs4Hryh8G+XGFS00BIWkmh6c1mydWTEhdsFlhdjD/rXCem7MAQQ==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "@angular-devkit/architect": "0.803.29", - "@angular-devkit/core": "8.3.29", - "@angular-devkit/schematics": "8.3.29", - "@schematics/angular": "8.3.29", - "@schematics/update": "0.803.29", - "@yarnpkg/lockfile": "1.1.0", - "ansi-colors": "4.1.1", - "debug": "^4.1.1", - "ini": "1.3.5", - "inquirer": "6.5.1", - "npm-package-arg": "6.1.0", - "npm-pick-manifest": "3.0.2", - "open": "6.4.0", - "pacote": "9.5.5", - "read-package-tree": "5.3.1", - "rimraf": "3.0.0", - "semver": "6.3.0", - "symbol-observable": "1.2.0", - "universal-analytics": "^0.4.20", - "uuid": "^3.3.2" - }, - "bin": { - "ng": "bin/ng" - }, - "engines": { - "node": ">= 10.9.0", - "npm": ">= 6.2.0" - } - }, - "node_modules/@angular/cli/node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/@angular/cli/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/@angular/cli/node_modules/ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", - "deprecated": "Please update to ini >=1.3.6 to avoid a prototype pollution issue", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/@angular/cli/node_modules/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 - }, - "node_modules/@angular/cli/node_modules/rimraf": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.0.tgz", - "integrity": "sha512-NDGVxTsjqfunkds7CqsOiEnxln4Bo7Nddl3XhS4pXg5OzwkLqJ971ZVAAnB+DDLnF76N+VnDEiBHaVV8I06SUg==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/@angular/cli/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@angular/common": { - "version": "8.2.12", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-8.2.12.tgz", - "integrity": "sha512-BNz1lo+PP+lwIX3sErRGBRnkMzT5yT8CJ5o/M29AanCdcx9dpoJG2WKgpIgw8UBcj9QlP0CkSmzPtUNtcNMthA==", - "dependencies": { - "tslib": "^1.9.0" - } - }, - "node_modules/@angular/compiler": { - "version": "8.2.12", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-8.2.12.tgz", - "integrity": "sha512-V5mDWioGmSZ4cJJ2THo8qHYKwj3sUI7dpJ0oab2Al0FQAN8JCimWO6AQKRtjmnr78ZkMy9Xe/KK6ebl40ewL5Q==", - "dependencies": { - "tslib": "^1.9.0" - } - }, - "node_modules/@angular/compiler-cli": { - "version": "8.2.14", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-8.2.14.tgz", - "integrity": "sha512-XDrTyrlIZM+0NquVT+Kbg5bn48AaWFT+B3bAT288PENrTdkuxuF9AhjFRZj8jnMdmaE4O2rioEkXBtl6z3zptA==", - "dev": true, - "dependencies": { - "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", - "source-map": "^0.6.1", - "tslib": "^1.9.0", - "yargs": "13.1.0" - }, - "bin": { - "ivy-ngcc": "ngcc/main-ngcc.js", - "ng-xi18n": "src/extract_i18n.js", - "ngc": "src/main.js" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/@angular/compiler-cli/node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@angular/compiler-cli/node_modules/anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "dependencies": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "node_modules/@angular/compiler-cli/node_modules/anymatch/node_modules/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, - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@angular/compiler-cli/node_modules/binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@angular/compiler-cli/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "dependencies": { - "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" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@angular/compiler-cli/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@angular/compiler-cli/node_modules/chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "dev": true, - "dependencies": { - "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" - }, - "optionalDependencies": { - "fsevents": "^1.2.7" - } - }, - "node_modules/@angular/compiler-cli/node_modules/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, - "dependencies": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - } - }, - "node_modules/@angular/compiler-cli/node_modules/cliui/node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@angular/compiler-cli/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@angular/compiler-cli/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@angular/compiler-cli/node_modules/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, - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@angular/compiler-cli/node_modules/fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "dependencies": { - "nan": "^2.12.1" - }, - "engines": { - "node": ">= 4.0" - } - }, - "node_modules/@angular/compiler-cli/node_modules/glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "dependencies": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - } - }, - "node_modules/@angular/compiler-cli/node_modules/glob-parent/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@angular/compiler-cli/node_modules/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, - "dependencies": { - "binary-extensions": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@angular/compiler-cli/node_modules/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, - "engines": { - "node": ">=4" - } - }, - "node_modules/@angular/compiler-cli/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@angular/compiler-cli/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@angular/compiler-cli/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "dependencies": { - "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" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@angular/compiler-cli/node_modules/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, - "dependencies": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/@angular/compiler-cli/node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@angular/compiler-cli/node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@angular/compiler-cli/node_modules/string-width/node_modules/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, - "engines": { - "node": ">=6" - } - }, - "node_modules/@angular/compiler-cli/node_modules/string-width/node_modules/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, - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@angular/compiler-cli/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@angular/compiler-cli/node_modules/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, - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@angular/compiler-cli/node_modules/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, - "dependencies": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@angular/compiler-cli/node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@angular/compiler-cli/node_modules/wrap-ansi/node_modules/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, - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@angular/compiler-cli/node_modules/wrap-ansi/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@angular/compiler-cli/node_modules/wrap-ansi/node_modules/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, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@angular/compiler-cli/node_modules/yargs": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.1.0.tgz", - "integrity": "sha512-1UhJbXfzHiPqkfXNHYhiz79qM/kZqjTE8yGlEjZa85Q+3+OwcV6NRkV7XOV1W2Eom2bzILeUn55pQYffjVOLAg==", - "dev": true, - "dependencies": { - "cliui": "^4.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "os-locale": "^3.1.0", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.0.0" - } - }, - "node_modules/@angular/core": { - "version": "8.2.12", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-8.2.12.tgz", - "integrity": "sha512-wEFwhHCuuXynXAMeA1G+0KIYY0jqXYs7I8p+GO+ufKoUmzWHFTvtMJ6nvKgy+LmZTByO2gf9oVAAlRodNb8ttQ==", - "dependencies": { - "tslib": "^1.9.0" - } - }, - "node_modules/@angular/forms": { - "version": "8.2.12", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-8.2.12.tgz", - "integrity": "sha512-y1UObndCGbTYwLSzUWzCiX7th+mb4n712asApooGmfmIQmgTyHbKxYUJ9Ep1pgd0pqLBBnK249MQLH15NDpbyQ==", - "dependencies": { - "tslib": "^1.9.0" - } - }, - "node_modules/@angular/language-service": { - "version": "8.2.14", - "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-8.2.14.tgz", - "integrity": "sha512-7EhN9JJbAJcH2xCa+rIOmekjiEuB0qwPdHuD5qn/wwMfRzMZo+Db4hHbR9KHrLH6H82PTwYKye/LLpDaZqoHOA==", - "dev": true - }, - "node_modules/@angular/platform-browser": { - "version": "8.2.12", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-8.2.12.tgz", - "integrity": "sha512-VBvMjmFJapZ2pFlmxZiHtfPwbHp79RRi5mrdMhETjKMaLaC2tAR/99ijCpx2urDMqb/VDm7YHOtoLEpBFVDulg==", - "dependencies": { - "tslib": "^1.9.0" - } - }, - "node_modules/@angular/platform-browser-dynamic": { - "version": "8.2.12", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-8.2.12.tgz", - "integrity": "sha512-O4krb+9tj028JOQHPgLk/87lyUlHt8dpNxzuYCT0G6kEmknjpyZBaxhvDPygGjGHXV3LDqlYVH+bh8ygJUhwmw==", - "dependencies": { - "tslib": "^1.9.0" - } - }, - "node_modules/@angular/platform-server": { - "version": "8.2.12", - "resolved": "https://registry.npmjs.org/@angular/platform-server/-/platform-server-8.2.12.tgz", - "integrity": "sha512-NQvfW3YnM2FBdNpfIAKBnGjit/ZimtWEt60xskoQ+GcusJIbsB6m78XTYZru1S7CBHW3TeUztKMNZmI2MjU6Cw==", - "dependencies": { - "domino": "^2.1.2", - "tslib": "^1.9.0", - "xhr2": "^0.1.4" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/@angular/router": { - "version": "8.2.12", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-8.2.12.tgz", - "integrity": "sha512-mq1FethFpYosSVzChstMpxZlL+oUFeaA+FrzZQL7zJP/mm61yFkkhoYGVG6pG0NWSzpJE4NY6YvGCvHgN4ZECw==", - "dependencies": { - "tslib": "^1.9.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", - "devOptional": true, - "dependencies": { - "@babel/highlight": "^7.10.4" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.12.7.tgz", - "integrity": "sha512-YaxPMGs/XIWtYqrdEOZOCPsVWfEoriXopnsz3/i7apYPXQ3698UFhS6dVT1KN5qOsWmVgw/FOrmQgpRaZayGsw==", - "dev": true - }, - "node_modules/@babel/core": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.7.tgz", - "integrity": "sha512-rBlqF3Yko9cynC5CCFy6+K/w2N+Sq/ff2BPy+Krp7rHlABIr5epbA7OxVeKoMHB39LZOp1UY5SuLjy6uWi35yA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.7", - "@babel/helpers": "^7.8.4", - "@babel/parser": "^7.8.7", - "@babel/template": "^7.8.6", - "@babel/traverse": "^7.8.6", - "@babel/types": "^7.8.7", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.0", - "lodash": "^4.17.13", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/@babel/core/node_modules/json5": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@babel/core/node_modules/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 - }, - "node_modules/@babel/core/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/generator": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.11.tgz", - "integrity": "sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.12.11", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "node_modules/@babel/generator/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.12.10", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.10.tgz", - "integrity": "sha512-XplmVbC1n+KY6jL8/fgLVXXUauDIB+lD5+GsQEh6F6GBF1dq1qy4DP4yXWzDKcoqXB3X58t61e85Fitoww4JVQ==", - "dev": true, - "dependencies": { - "@babel/types": "^7.12.10" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz", - "integrity": "sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==", - "dev": true, - "dependencies": { - "@babel/helper-explode-assignable-expression": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.5.tgz", - "integrity": "sha512-+qH6NrscMolUlzOYngSBMIOQpKUGPPsc61Bu5W10mg84LxZ7cmvnBHzARKbDoFxVvqqAbj6Tg6N7bSrWSPXMyw==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.12.5", - "@babel/helper-validator-option": "^7.12.1", - "browserslist": "^4.14.5", - "semver": "^5.5.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/browserslist": { - "version": "4.16.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.1.tgz", - "integrity": "sha512-UXhDrwqsNcpTYJBTZsbGATDxZbiVDsx6UjpmRUmtnP10pr8wAYr5LgFoEFw9ixriQH2mv/NX2SfGzE/o8GndLA==", - "dev": true, - "dependencies": { - "caniuse-lite": "^1.0.30001173", - "colorette": "^1.2.1", - "electron-to-chromium": "^1.3.634", - "escalade": "^3.1.1", - "node-releases": "^1.1.69" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/caniuse-lite": { - "version": "1.0.30001174", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001174.tgz", - "integrity": "sha512-tqClL/4ThQq6cfFXH3oJL4rifFBeM6gTkphjao5kgwMaW9yn0tKgQLAEfKzDwj6HQWCB/aWo8kTFlSvIN8geEA==", - "dev": true - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.7.tgz", - "integrity": "sha512-idnutvQPdpbduutvi3JVfEgcVIHooQnhvhx0Nk9isOINOIGYkZea1Pk2JlJRiUnMefrlvr0vkByATBY/mB4vjQ==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "regexpu-core": "^4.7.1" - } - }, - "node_modules/@babel/helper-define-map": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz", - "integrity": "sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==", - "dev": true, - "dependencies": { - "@babel/helper-function-name": "^7.10.4", - "@babel/types": "^7.10.5", - "lodash": "^4.17.19" - } - }, - "node_modules/@babel/helper-explode-assignable-expression": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.1.tgz", - "integrity": "sha512-dmUwH8XmlrUpVqgtZ737tK88v07l840z9j3OEhCLwKTkjlvKpfqXVIZ0wpK3aeOxspwGrf/5AP5qLx4rO3w5rA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.12.1" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.11.tgz", - "integrity": "sha512-AtQKjtYNolKNi6nNNVLQ27CP6D9oFR6bq/HPYSizlzbp7uC1M59XJe8L+0uXjbIaZaUJF99ruHqVGiKXU/7ybA==", - "dev": true, - "dependencies": { - "@babel/helper-get-function-arity": "^7.12.10", - "@babel/template": "^7.12.7", - "@babel/types": "^7.12.11" - } - }, - "node_modules/@babel/helper-get-function-arity": { - "version": "7.12.10", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz", - "integrity": "sha512-mm0n5BPjR06wh9mPQaDdXWDoll/j5UpCAPl1x8fS71GHm7HA6Ua2V4ylG1Ju8lvcTOietbPNNPaSilKj+pj+Ag==", - "dev": true, - "dependencies": { - "@babel/types": "^7.12.10" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz", - "integrity": "sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.10.4" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz", - "integrity": "sha512-DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.12.7" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz", - "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.12.5" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz", - "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.12.1", - "@babel/helper-replace-supers": "^7.12.1", - "@babel/helper-simple-access": "^7.12.1", - "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/helper-validator-identifier": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.12.1", - "@babel/types": "^7.12.1", - "lodash": "^4.17.19" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.12.10", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.10.tgz", - "integrity": "sha512-4tpbU0SrSTjjt65UMWSrUOPZTsgvPgGG4S8QSTNHacKzpS51IVWGDj0yCwyeZND/i+LSN2g/O63jEXEWm49sYQ==", - "dev": true, - "dependencies": { - "@babel/types": "^7.12.10" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", - "dev": true - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.1.tgz", - "integrity": "sha512-9d0KQCRM8clMPcDwo8SevNs+/9a8yWVVmaE80FGJcEP8N1qToREmWEGnBn8BUlJhYRFz6fqxeRL1sl5Ogsed7A==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-wrap-function": "^7.10.4", - "@babel/types": "^7.12.1" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.11.tgz", - "integrity": "sha512-q+w1cqmhL7R0FNzth/PLLp2N+scXEK/L2AHbXUyydxp828F4FEa5WcVoqui9vFRiHDQErj9Zof8azP32uGVTRA==", - "dev": true, - "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.12.7", - "@babel/helper-optimise-call-expression": "^7.12.10", - "@babel/traverse": "^7.12.10", - "@babel/types": "^7.12.11" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz", - "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.12.1" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz", - "integrity": "sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.12.1" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.11.tgz", - "integrity": "sha512-LsIVN8j48gHgwzfocYUSkO/hjYAOJqlpJEc7tGXcIm4cubjVUf8LGW6eWRyxEu7gA25q02p0rQUWoCI33HNS5g==", - "dev": true, - "dependencies": { - "@babel/types": "^7.12.11" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", - "devOptional": true - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.11.tgz", - "integrity": "sha512-TBFCyj939mFSdeX7U7DDj32WtzYY7fDcalgq8v3fBZMNOJQNn7nOYzMaUCiPxPYfCup69mtIpqlKgMZLvQ8Xhw==", - "dev": true - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.12.3", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.12.3.tgz", - "integrity": "sha512-Cvb8IuJDln3rs6tzjW3Y8UeelAOdnpB8xtQ4sme2MSZ9wOxrbThporC0y/EtE16VAtoyEfLM404Xr1e0OOp+ow==", - "dev": true, - "dependencies": { - "@babel/helper-function-name": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "node_modules/@babel/helpers": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz", - "integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==", - "dev": true, - "dependencies": { - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.12.5", - "@babel/types": "^7.12.5" - } - }, - "node_modules/@babel/highlight": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", - "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", - "devOptional": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.10.4", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "node_modules/@babel/highlight/node_modules/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==", - "devOptional": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "devOptional": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "devOptional": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/parser": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.11.tgz", - "integrity": "sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.12.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.12.tgz", - "integrity": "sha512-nrz9y0a4xmUrRq51bYkWJIO5SBZyG2ys2qinHsN0zHDHVsUaModrkpyWWWXfGqYQmOL3x9sQIcTNN/pBGpo09A==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-remap-async-to-generator": "^7.12.1", - "@babel/plugin-syntax-async-generators": "^7.8.0" - } - }, - "node_modules/@babel/plugin-proposal-dynamic-import": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.1.tgz", - "integrity": "sha512-a4rhUSZFuq5W8/OO8H7BL5zspjnc1FLd9hlOxIK/f7qG4a0qsqk8uvF/ywgBA8/OmjsapjpvaEOYItfGG1qIvQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-dynamic-import": "^7.8.0" - } - }, - "node_modules/@babel/plugin-proposal-json-strings": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.1.tgz", - "integrity": "sha512-GoLDUi6U9ZLzlSda2Df++VSqDJg3CG+dR0+iWsv6XRw1rEq+zwt4DirM9yrxW6XWaTpmai1cWJLMfM8qQJf+yw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.0" - } - }, - "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz", - "integrity": "sha512-nZY0ESiaQDI1y96+jk6VxMOaL4LPo/QDHBqL+SF3/vl6dHkTwHlOI8L4ZwuRBHgakRBw5zsVylel7QPbbGuYgg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" - } - }, - "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz", - "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-transform-parameters": "^7.12.1" - } - }, - "node_modules/@babel/plugin-proposal-optional-catch-binding": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.1.tgz", - "integrity": "sha512-hFvIjgprh9mMw5v42sJWLI1lzU5L2sznP805zeT6rySVRA0Y18StRhDqhSxlap0oVgItRsB6WSROp4YnJTJz0g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" - } - }, - "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.7.tgz", - "integrity": "sha512-4ovylXZ0PWmwoOvhU2vhnzVNnm88/Sm9nx7V8BPgMvAzn5zDou3/Awy0EjglyubVHasJj+XCEkr/r1X3P5elCA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", - "@babel/plugin-syntax-optional-chaining": "^7.8.0" - } - }, - "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.1.tgz", - "integrity": "sha512-MYq+l+PvHuw/rKUz1at/vb6nCnQ2gmJBNaM62z0OgH7B2W1D9pvkpYtlti9bGtizNIU1K3zm4bZF9F91efVY0w==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz", - "integrity": "sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.1.tgz", - "integrity": "sha512-5QB50qyN44fzzz4/qxDPQMBCTHgxg3n0xRBLJUmBlLoU/sFvxVWGZF/ZUfMVDQuJUKXaBhbupxIzIfZ6Fwk/0A==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz", - "integrity": "sha512-SDtqoEcarK1DFlRJ1hHRY5HvJUj5kX4qmtpMAm2QnhOlyuMC4TMdCRgW6WXpv93rZeYNeLP22y8Aq2dbcDRM1A==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-remap-async-to-generator": "^7.12.1" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.1.tgz", - "integrity": "sha512-5OpxfuYnSgPalRpo8EWGPzIYf0lHBWORCkj5M0oLBwHdlux9Ri36QqGW3/LR13RSVOAoUUMzoPI/jpE4ABcHoA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.12.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.12.tgz", - "integrity": "sha512-VOEPQ/ExOVqbukuP7BYJtI5ZxxsmegTwzZ04j1aF0dkSypGo9XpDHuOrABsJu+ie+penpSJheDJ11x1BEZNiyQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.1.tgz", - "integrity": "sha512-/74xkA7bVdzQTBeSUhLLJgYIcxw/dpEpCdRDiHgPJ3Mv6uC11UhjpOhl72CgqbBCmt1qtssCyB2xnJm1+PFjog==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-define-map": "^7.10.4", - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-replace-supers": "^7.12.1", - "@babel/helper-split-export-declaration": "^7.10.4", - "globals": "^11.1.0" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.1.tgz", - "integrity": "sha512-vVUOYpPWB7BkgUWPo4C44mUQHpTZXakEqFjbv8rQMg7TC6S6ZhGZ3otQcRH6u7+adSlE5i0sp63eMC/XGffrzg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.1.tgz", - "integrity": "sha512-fRMYFKuzi/rSiYb2uRLiUENJOKq4Gnl+6qOv5f8z0TZXg3llUwUhsNNwrwaT/6dUhJTzNpBr+CUvEWBtfNY1cw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.1.tgz", - "integrity": "sha512-B2pXeRKoLszfEW7J4Hg9LoFaWEbr/kzo3teWHmtFCszjRNa/b40f9mfeqZsIDLLt/FjwQ6pz/Gdlwy85xNckBA==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.1.tgz", - "integrity": "sha512-iRght0T0HztAb/CazveUpUQrZY+aGKKaWXMJ4uf9YJtqxSUe09j3wteztCUDRHs+SRAL7yMuFqUsLoAKKzgXjw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.1.tgz", - "integrity": "sha512-7tqwy2bv48q+c1EHbXK0Zx3KXd2RVQp6OC7PbwFNt/dPTAV3Lu5sWtWuAj8owr5wqtWnqHfl2/mJlUmqkChKug==", - "dev": true, - "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.1.tgz", - "integrity": "sha512-Zaeq10naAsuHo7heQvyV0ptj4dlZJwZgNAtBYBnu5nNKJoW62m0zKcIEyVECrUKErkUkg6ajMy4ZfnVZciSBhg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.1.tgz", - "integrity": "sha512-JF3UgJUILoFrFMEnOJLJkRHSk6LUSXLmEFsA23aR2O5CSLUxbeUX1IZ1YQ7Sn0aXb601Ncwjx73a+FVqgcljVw==", - "dev": true, - "dependencies": { - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.1.tgz", - "integrity": "sha512-+PxVGA+2Ag6uGgL0A5f+9rklOnnMccwEBzwYFL3EUaKuiyVnUipyXncFcfjSkbimLrODoqki1U9XxZzTvfN7IQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.1.tgz", - "integrity": "sha512-1sxePl6z9ad0gFMB9KqmYofk34flq62aqMt9NqliS/7hPEpURUCMbyHXrMPlo282iY7nAvUB1aQd5mg79UD9Jg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.1.tgz", - "integrity": "sha512-tDW8hMkzad5oDtzsB70HIQQRBiTKrhfgwC/KkJeGsaNFTdWhKNt/BiE8c5yj19XiGyrxpbkOfH87qkNg1YGlOQ==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.1.tgz", - "integrity": "sha512-dY789wq6l0uLY8py9c1B48V8mVL5gZh/+PQ5ZPrylPYsnAvnEMjqsUXkuoDVPeVK+0VyGar+D08107LzDQ6pag==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-simple-access": "^7.12.1", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.1.tgz", - "integrity": "sha512-Hn7cVvOavVh8yvW6fLwveFqSnd7rbQN3zJvoPNyNaQSvgfKmDBO9U1YL9+PCXGRlZD9tNdWTy5ACKqMuzyn32Q==", - "dev": true, - "dependencies": { - "@babel/helper-hoist-variables": "^7.10.4", - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-validator-identifier": "^7.10.4", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.1.tgz", - "integrity": "sha512-aEIubCS0KHKM0zUos5fIoQm+AZUMt1ZvMpqz0/H5qAQ7vWylr9+PLYurT+Ic7ID/bKLd4q8hDovaG3Zch2uz5Q==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.1.tgz", - "integrity": "sha512-tB43uQ62RHcoDp9v2Nsf+dSM8sbNodbEicbQNA53zHz8pWUhsgHSJCGpt7daXxRydjb0KnfmB+ChXOv3oADp1Q==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.12.1" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.1.tgz", - "integrity": "sha512-+eW/VLcUL5L9IvJH7rT1sT0CzkdUTvPrXC2PXTn/7z7tXLBuKvezYbGdxD5WMRoyvyaujOq2fWoKl869heKjhw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.1.tgz", - "integrity": "sha512-AvypiGJH9hsquNUn+RXVcBdeE3KHPZexWRdimhuV59cSoOt5kFBmqlByorAeUlGG2CJWd0U+4ZtNKga/TB0cAw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-replace-supers": "^7.12.1" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.1.tgz", - "integrity": "sha512-xq9C5EQhdPK23ZeCdMxl8bbRnAgHFrw5EOC3KJUsSylZqdkCaFEXxGSBuTSObOpiiHHNyb82es8M1QYgfQGfNg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.1.tgz", - "integrity": "sha512-6MTCR/mZ1MQS+AwZLplX4cEySjCpnIF26ToWo942nqn8hXSm7McaHQNeGx/pt7suI1TWOWMfa/NgBhiqSnX0cQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.1.tgz", - "integrity": "sha512-gYrHqs5itw6i4PflFX3OdBPMQdPbF4bj2REIUxlMRUFk0/ZOAIpDFuViuxPjUL7YC8UPnf+XG7/utJvqXdPKng==", - "dev": true, - "dependencies": { - "regenerator-transform": "^0.14.2" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.1.tgz", - "integrity": "sha512-pOnUfhyPKvZpVyBHhSBoX8vfA09b7r00Pmm1sH+29ae2hMTKVmSp4Ztsr8KBKjLjx17H0eJqaRC3bR2iThM54A==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.1.tgz", - "integrity": "sha512-GFZS3c/MhX1OusqB1MZ1ct2xRzX5ppQh2JU1h2Pnfk88HtFTM+TWQqJNfwkmxtPQtb/s1tk87oENfXJlx7rSDw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.1.tgz", - "integrity": "sha512-vuLp8CP0BE18zVYjsEBZ5xoCecMK6LBMMxYzJnh01rxQRvhNhH1csMMmBfNo5tGpGO+NhdSNW2mzIvBu3K1fng==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.7.tgz", - "integrity": "sha512-VEiqZL5N/QvDbdjfYQBhruN0HYjSPjC4XkeqW4ny/jNtH9gcbgaqBIXYEZCNnESMAGs0/K/R7oFGMhOyu/eIxg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.1.tgz", - "integrity": "sha512-b4Zx3KHi+taXB1dVRBhVJtEPi9h1THCeKmae2qP0YdUHIFhVjtpqqNfxeVAa1xeHVhAy4SbHxEwx5cltAu5apw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.12.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.10.tgz", - "integrity": "sha512-JQ6H8Rnsogh//ijxspCjc21YPd3VLVoYtAwv3zQmqAt8YGYUtdo5usNhdl4b9/Vir2kPFZl6n1h0PfUz4hJhaA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.1.tgz", - "integrity": "sha512-SqH4ClNngh/zGwHZOOQMTD+e8FGWexILV+ePMyiDJttAWRh5dhDL8rcl5lSgU3Huiq6Zn6pWTMvdPAb21Dwdyg==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.8.7.tgz", - "integrity": "sha512-BYftCVOdAYJk5ASsznKAUl53EMhfBbr8CJ1X+AJLfGPscQkwJFiaV/Wn9DPH/7fzm2v6iRYJKYHSqyynTGw0nw==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.8.6", - "@babel/helper-compilation-targets": "^7.8.7", - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-proposal-async-generator-functions": "^7.8.3", - "@babel/plugin-proposal-dynamic-import": "^7.8.3", - "@babel/plugin-proposal-json-strings": "^7.8.3", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-proposal-object-rest-spread": "^7.8.3", - "@babel/plugin-proposal-optional-catch-binding": "^7.8.3", - "@babel/plugin-proposal-optional-chaining": "^7.8.3", - "@babel/plugin-proposal-unicode-property-regex": "^7.8.3", - "@babel/plugin-syntax-async-generators": "^7.8.0", - "@babel/plugin-syntax-dynamic-import": "^7.8.0", - "@babel/plugin-syntax-json-strings": "^7.8.0", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.0", - "@babel/plugin-syntax-top-level-await": "^7.8.3", - "@babel/plugin-transform-arrow-functions": "^7.8.3", - "@babel/plugin-transform-async-to-generator": "^7.8.3", - "@babel/plugin-transform-block-scoped-functions": "^7.8.3", - "@babel/plugin-transform-block-scoping": "^7.8.3", - "@babel/plugin-transform-classes": "^7.8.6", - "@babel/plugin-transform-computed-properties": "^7.8.3", - "@babel/plugin-transform-destructuring": "^7.8.3", - "@babel/plugin-transform-dotall-regex": "^7.8.3", - "@babel/plugin-transform-duplicate-keys": "^7.8.3", - "@babel/plugin-transform-exponentiation-operator": "^7.8.3", - "@babel/plugin-transform-for-of": "^7.8.6", - "@babel/plugin-transform-function-name": "^7.8.3", - "@babel/plugin-transform-literals": "^7.8.3", - "@babel/plugin-transform-member-expression-literals": "^7.8.3", - "@babel/plugin-transform-modules-amd": "^7.8.3", - "@babel/plugin-transform-modules-commonjs": "^7.8.3", - "@babel/plugin-transform-modules-systemjs": "^7.8.3", - "@babel/plugin-transform-modules-umd": "^7.8.3", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.8.3", - "@babel/plugin-transform-new-target": "^7.8.3", - "@babel/plugin-transform-object-super": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.8.7", - "@babel/plugin-transform-property-literals": "^7.8.3", - "@babel/plugin-transform-regenerator": "^7.8.7", - "@babel/plugin-transform-reserved-words": "^7.8.3", - "@babel/plugin-transform-shorthand-properties": "^7.8.3", - "@babel/plugin-transform-spread": "^7.8.3", - "@babel/plugin-transform-sticky-regex": "^7.8.3", - "@babel/plugin-transform-template-literals": "^7.8.3", - "@babel/plugin-transform-typeof-symbol": "^7.8.4", - "@babel/plugin-transform-unicode-regex": "^7.8.3", - "@babel/types": "^7.8.7", - "browserslist": "^4.8.5", - "core-js-compat": "^3.6.2", - "invariant": "^2.2.2", - "levenary": "^1.1.1", - "semver": "^5.5.0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz", - "integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==", - "dev": true, - "dependencies": { - "regenerator-runtime": "^0.13.4" - } - }, - "node_modules/@babel/runtime/node_modules/regenerator-runtime": { - "version": "0.13.7", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", - "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", - "dev": true - }, - "node_modules/@babel/template": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz", - "integrity": "sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/parser": "^7.12.7", - "@babel/types": "^7.12.7" - } - }, - "node_modules/@babel/traverse": { - "version": "7.12.12", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.12.tgz", - "integrity": "sha512-s88i0X0lPy45RrLM8b9mz8RPH5FqO9G9p7ti59cToE44xFm1Q+Pjh5Gq4SXBbtb88X7Uy7pexeqRIQDDMNkL0w==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.11", - "@babel/generator": "^7.12.11", - "@babel/helper-function-name": "^7.12.11", - "@babel/helper-split-export-declaration": "^7.12.11", - "@babel/parser": "^7.12.11", - "@babel/types": "^7.12.12", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" - } - }, - "node_modules/@babel/traverse/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/@babel/traverse/node_modules/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 - }, - "node_modules/@babel/types": { - "version": "7.12.12", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.12.tgz", - "integrity": "sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", - "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@ngtools/webpack": { - "version": "8.3.29", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-8.3.29.tgz", - "integrity": "sha512-7uB7dlAHR7RmxcQCYidnWRR1tFRJq7CzI+MM3725ibAvi4HnM5viC/HnKRTK7V+3iS1C0l0u0Gyo/769NsUDTQ==", - "dev": true, - "dependencies": { - "@angular-devkit/core": "8.3.29", - "enhanced-resolve": "4.1.0", - "rxjs": "6.4.0", - "tree-kill": "1.2.2", - "webpack-sources": "1.4.3" - }, - "engines": { - "node": ">= 10.9.0", - "npm": ">= 6.2.0" - } - }, - "node_modules/@ngtools/webpack/node_modules/rxjs": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", - "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", - "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/@nguniversal/module-map-ngfactory-loader": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/@nguniversal/module-map-ngfactory-loader/-/module-map-ngfactory-loader-8.1.1.tgz", - "integrity": "sha512-vXFydMTPFRfGjmtdwtbNhl4Pmfg580Yit0vzlTeb3ZC1v+TJKR2GzaWYUileWxS60FrgNF4/tkOEL5ouDDx6Bw==" - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", - "integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.4", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz", - "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz", - "integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==", - "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.4", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@npmcli/move-file": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.0.1.tgz", - "integrity": "sha512-Uv6h1sT+0DrblvIrolFtbvM1FgWm+/sy4B3pvLp67Zys+thcukzS5ekn7HsZFGpWP4Q3fYJCljbWQE/XivMRLw==", - "dev": true, - "dependencies": { - "mkdirp": "^1.0.4" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@npmcli/move-file/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@schematics/angular": { - "version": "8.3.29", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-8.3.29.tgz", - "integrity": "sha512-If+UhCsQzCgnQymiiF8dQRoic34+RgJ6rV0n4k7Tm4N2xNYJOG7ajjzKM7PIeafsF50FKnFP8dqaNGxCMyq5Ew==", - "dev": true, - "dependencies": { - "@angular-devkit/core": "8.3.29", - "@angular-devkit/schematics": "8.3.29" - }, - "engines": { - "node": ">= 10.9.0", - "npm": ">= 6.2.0" - } - }, - "node_modules/@schematics/update": { - "version": "0.803.29", - "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.803.29.tgz", - "integrity": "sha512-Syf6h6DYeu1WU9aLihMwIgVASpcHCxUYqhZyHfQABiK8NkdlZ+KAp4cOxihsZyDqIJNLWON+0/FLPAQF3BXh5Q==", - "dev": true, - "dependencies": { - "@angular-devkit/core": "8.3.29", - "@angular-devkit/schematics": "8.3.29", - "@yarnpkg/lockfile": "1.1.0", - "ini": "1.3.5", - "pacote": "9.5.5", - "rxjs": "6.4.0", - "semver": "6.3.0", - "semver-intersect": "1.4.0" - }, - "engines": { - "node": ">= 10.9.0", - "npm": ">= 6.2.0" - } - }, - "node_modules/@schematics/update/node_modules/ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", - "deprecated": "Please update to ini >=1.3.6 to avoid a prototype pollution issue", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/@schematics/update/node_modules/rxjs": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", - "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", - "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/@schematics/update/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@types/glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", - "dev": true, - "dependencies": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "node_modules/@types/jasmine": { - "version": "3.4.6", - "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.4.6.tgz", - "integrity": "sha512-hpQHs+lmZ0uuCrGyqypdI1Ho7jRFolOBT6OkNdZPFziLSSEKvWu+VxWU6bGdNEA/hoV4jV8pdDeNx8EWlmfNAw==", - "dev": true - }, - "node_modules/@types/jasminewd2": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/@types/jasminewd2/-/jasminewd2-2.0.8.tgz", - "integrity": "sha512-d9p31r7Nxk0ZH0U39PTH0hiDlJ+qNVGjlt1ucOoTUptxb2v+Y5VMnsxfwN+i3hK4yQnqBi3FMmoMFcd1JHDxdg==", - "dev": true, - "dependencies": { - "@types/jasmine": "*" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz", - "integrity": "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==", - "dev": true - }, - "node_modules/@types/minimatch": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", - "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", - "dev": true - }, - "node_modules/@types/node": { - "version": "12.11.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.11.7.tgz", - "integrity": "sha512-JNbGaHFCLwgHn/iCckiGSOZ1XYHsKFwREtzPwSGCVld1SGhOlmZw2D4ZI94HQCrBHbADzW9m4LER/8olJTRGHA==", - "dev": true - }, - "node_modules/@types/q": { - "version": "0.0.32", - "resolved": "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz", - "integrity": "sha1-vShOV8hPEyXacCur/IKlMoGQwMU=", - "optional": true - }, - "node_modules/@types/selenium-webdriver": { - "version": "3.0.17", - "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.17.tgz", - "integrity": "sha512-tGomyEuzSC1H28y2zlW6XPCaDaXFaD6soTdb4GNdmte2qfHtrKqhy0ZFs4r/1hpazCfEZqeTSRLvSasmEx89uw==", - "optional": true - }, - "node_modules/@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 - }, - "node_modules/@types/webpack-sources": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-0.1.8.tgz", - "integrity": "sha512-JHB2/xZlXOjzjBB6fMOpH1eQAfsrpqVVIbneE0Rok16WXwFaznaI5vfg75U5WgGJm7V9W1c4xeRQDjX/zwvghA==", - "dev": true, - "dependencies": { - "@types/node": "*", - "@types/source-list-map": "*", - "source-map": "^0.6.1" - } - }, - "node_modules/@types/webpack-sources/node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@webassemblyjs/ast": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.8.5.tgz", - "integrity": "sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ==", - "dev": true, - "dependencies": { - "@webassemblyjs/helper-module-context": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/wast-parser": "1.8.5" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz", - "integrity": "sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz", - "integrity": "sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz", - "integrity": "sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-code-frame": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz", - "integrity": "sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ==", - "dev": true, - "dependencies": { - "@webassemblyjs/wast-printer": "1.8.5" - } - }, - "node_modules/@webassemblyjs/helper-fsm": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz", - "integrity": "sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-module-context": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz", - "integrity": "sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.8.5", - "mamacro": "^0.0.3" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz", - "integrity": "sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz", - "integrity": "sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-buffer": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/wasm-gen": "1.8.5" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz", - "integrity": "sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g==", - "dev": true, - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.8.5.tgz", - "integrity": "sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A==", - "dev": true, - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.8.5.tgz", - "integrity": "sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw==", - "dev": true - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz", - "integrity": "sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-buffer": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/helper-wasm-section": "1.8.5", - "@webassemblyjs/wasm-gen": "1.8.5", - "@webassemblyjs/wasm-opt": "1.8.5", - "@webassemblyjs/wasm-parser": "1.8.5", - "@webassemblyjs/wast-printer": "1.8.5" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz", - "integrity": "sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/ieee754": "1.8.5", - "@webassemblyjs/leb128": "1.8.5", - "@webassemblyjs/utf8": "1.8.5" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz", - "integrity": "sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-buffer": "1.8.5", - "@webassemblyjs/wasm-gen": "1.8.5", - "@webassemblyjs/wasm-parser": "1.8.5" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz", - "integrity": "sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-api-error": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/ieee754": "1.8.5", - "@webassemblyjs/leb128": "1.8.5", - "@webassemblyjs/utf8": "1.8.5" - } - }, - "node_modules/@webassemblyjs/wast-parser": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz", - "integrity": "sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/floating-point-hex-parser": "1.8.5", - "@webassemblyjs/helper-api-error": "1.8.5", - "@webassemblyjs/helper-code-frame": "1.8.5", - "@webassemblyjs/helper-fsm": "1.8.5", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz", - "integrity": "sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/wast-parser": "1.8.5", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@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 - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true - }, - "node_modules/@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 - }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "optional": true - }, - "node_modules/accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "dev": true, - "dependencies": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", - "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/adm-zip": { - "version": "0.4.16", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", - "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", - "optional": true, - "engines": { - "node": ">=0.3.0" - } - }, - "node_modules/after": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", - "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", - "dev": true - }, - "node_modules/agent-base": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", - "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", - "devOptional": true, - "dependencies": { - "es6-promisify": "^5.0.0" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/agentkeepalive": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.5.2.tgz", - "integrity": "sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==", - "dev": true, - "dependencies": { - "humanize-ms": "^1.2.1" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/aggregate-error/node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "devOptional": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "node_modules/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 - }, - "node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true - }, - "node_modules/amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", - "devOptional": true, - "engines": { - "node": ">=0.4.2" - } - }, - "node_modules/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, - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", - "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", - "dev": true, - "dependencies": { - "type-fest": "^0.11.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/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, - "engines": [ - "node >= 0.8.0" - ], - "bin": { - "ansi-html": "bin/ansi-html" - } - }, - "node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/app-root-path": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-2.2.1.tgz", - "integrity": "sha512-91IFKeKk7FjfmezPKkwtaRvSpnUc4gDwPAjA1YZ9Gn0q0PPeW+vbeUsZuyDwjI7+QTHhcLen2v25fi/AmhvbJA==", - "dev": true, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/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, - "dependencies": { - "default-require-extensions": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "devOptional": true - }, - "node_modules/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==", - "optional": true, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "optional": true - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "devOptional": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/aria-query": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-3.0.0.tgz", - "integrity": "sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w=", - "dev": true, - "dependencies": { - "ast-types-flow": "0.0.7", - "commander": "^2.11.0" - } - }, - "node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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=", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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 - }, - "node_modules/array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "devOptional": true, - "dependencies": { - "array-uniq": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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 - }, - "node_modules/arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", - "dev": true - }, - "node_modules/asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "devOptional": true, - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "dev": true, - "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/asn1.js/node_modules/bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - }, - "node_modules/assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", - "dev": true, - "dependencies": { - "object-assign": "^4.1.1", - "util": "0.10.3" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "devOptional": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/assert/node_modules/inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - }, - "node_modules/assert/node_modules/util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "dependencies": { - "inherits": "2.0.1" - } - }, - "node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ast-types-flow": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", - "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=", - "dev": true - }, - "node_modules/async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dev": true, - "dependencies": { - "lodash": "^4.17.14" - } - }, - "node_modules/async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", - "dev": true - }, - "node_modules/async-foreach": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", - "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", - "optional": true, - "engines": { - "node": "*" - } - }, - "node_modules/async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", - "dev": true - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "devOptional": true - }, - "node_modules/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, - "bin": { - "atob": "bin/atob.js" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/autoprefixer": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.6.1.tgz", - "integrity": "sha512-aVo5WxR3VyvyJxcJC3h4FKfwCQvQWb1tSI5VHNibddCVWrcD1NvlxEweg3TSgiPztMnWfjpy2FURKA2kvDE+Tw==", - "dev": true, - "dependencies": { - "browserslist": "^4.6.3", - "caniuse-lite": "^1.0.30000980", - "chalk": "^2.4.2", - "normalize-range": "^0.1.2", - "num2fraction": "^1.2.2", - "postcss": "^7.0.17", - "postcss-value-parser": "^4.0.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/autoprefixer/node_modules/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, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/autoprefixer/node_modules/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, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/autoprefixer/node_modules/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, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/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=", - "devOptional": true, - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", - "devOptional": true - }, - "node_modules/axobject-query": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.0.2.tgz", - "integrity": "sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww==", - "dev": true, - "dependencies": { - "ast-types-flow": "0.0.7" - } - }, - "node_modules/babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "dev": true, - "dependencies": { - "object.assign": "^4.1.0" - } - }, - "node_modules/backo2": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", - "dev": true - }, - "node_modules/balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "devOptional": true - }, - "node_modules/base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "dependencies": { - "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" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/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, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/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, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/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, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/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, - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base64-arraybuffer": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz", - "integrity": "sha1-mBjHngWbE1X5fgQooBfIOOkLqBI=", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" - }, - "node_modules/base64id": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", - "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", - "dev": true, - "engines": { - "node": "^4.5.0 || >= 5.9" - } - }, - "node_modules/batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", - "dev": true - }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "devOptional": true, - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, - "node_modules/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, - "engines": { - "node": "*" - } - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/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 - }, - "node_modules/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==", - "optional": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "blocking-proxy": "built/lib/bin.js" - }, - "engines": { - "node": ">=6.9.x" - } - }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true - }, - "node_modules/bn.js": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz", - "integrity": "sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==", - "dev": true - }, - "node_modules/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, - "dependencies": { - "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" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body-parser/node_modules/bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/body-parser/node_modules/qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/bonjour": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", - "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", - "dev": true, - "dependencies": { - "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" - } - }, - "node_modules/bootstrap": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.6.0.tgz", - "integrity": "sha512-Io55IuQY3kydzHtbGvQya3H+KorS/M9rSNyfCGCg9WZ4pyT/lCxIlpJgG1GXW/PswzC84Tr2fBYi+7+jFVQQBw==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/bootstrap" - }, - "peerDependencies": { - "jquery": "1.9.1 - 3", - "popper.js": "^1.16.1" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "devOptional": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true - }, - "node_modules/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, - "dependencies": { - "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" - } - }, - "node_modules/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, - "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "node_modules/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, - "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "dev": true, - "dependencies": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "node_modules/browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "dev": true, - "dependencies": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "node_modules/browserify-sign/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/browserify-sign/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - }, - "node_modules/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, - "dependencies": { - "pako": "~1.0.5" - } - }, - "node_modules/browserslist": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.10.0.tgz", - "integrity": "sha512-TpfK0TDgv71dzuTsEAlQiHeWQ/tiPqgNZVdv046fvNtBZrjbv2O3TsWCDU0AWGJJKCF/KsjNdLzR9hXOsh/CfA==", - "dev": true, - "dependencies": { - "caniuse-lite": "^1.0.30001035", - "electron-to-chromium": "^1.3.378", - "node-releases": "^1.1.52", - "pkg-up": "^3.1.0" - }, - "bin": { - "browserslist": "cli.js" - } - }, - "node_modules/browserstack": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.6.1.tgz", - "integrity": "sha512-GxtFjpIaKdbAyzHfFDKixKO8IBT7wR3NjbzrGc78nNs/Ciys9wU3/nBtsqsWv5nDSrdI5tz0peKuzCPuNXNUiw==", - "optional": true, - "dependencies": { - "https-proxy-agent": "^2.2.1" - } - }, - "node_modules/buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "dev": true, - "dependencies": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "node_modules/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==", - "devOptional": true - }, - "node_modules/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 - }, - "node_modules/buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true - }, - "node_modules/builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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 - }, - "node_modules/builtins": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", - "dev": true - }, - "node_modules/bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/cacache": { - "version": "12.0.2", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.2.tgz", - "integrity": "sha512-ifKgxH2CKhJEg6tNdAwziu6Q33EvuG26tYcda6PT3WKisZcYDXsnEdnRv67Po3yCzFfaSoMjGZzJyD2c3DT1dg==", - "dev": true, - "dependencies": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "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" - } - }, - "node_modules/cacache/node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, - "node_modules/cacache/node_modules/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, - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/cacache/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/cacache/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/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, - "dependencies": { - "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" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "node_modules/caller-callsite": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", - "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", - "dev": true, - "dependencies": { - "callsites": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/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, - "dependencies": { - "caller-callsite": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/callsites": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/camelcase-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", - "optional": true, - "dependencies": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001035", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001035.tgz", - "integrity": "sha512-C1ZxgkuA4/bUEdMbU5WrGY4+UhMFFiXrgNAfxiMIqWgFTWfv/xsZCS2xEHT2LMq7xAZfuAnu6mcqyDl0ZR6wLQ==", - "dev": true - }, - "node_modules/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 - }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "devOptional": true - }, - "node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "optional": true, - "dependencies": { - "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" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, - "node_modules/chokidar": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.0.tgz", - "integrity": "sha512-JgQM9JS92ZbFR4P90EvmzNpSGhpPBGBSj10PILeDyYFwp4h2/D9OM03wsJ4zW1fEp4ka2DGrnUeD7FuvQ2aZ2Q==", - "dev": true, - "dependencies": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "fsevents": "~2.3.1", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.1" - } - }, - "node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "devOptional": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/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, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/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, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/circular-dependency-plugin": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.2.0.tgz", - "integrity": "sha512-7p4Kn/gffhQaavNfyDFg7LS5S/UT1JAjyGd4UqR2+jzoYF02eDkj0Ec3+48TsIa4zghjLY87nQHIh/ecK9qLdw==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/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, - "dependencies": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/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, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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, - "dependencies": { - "source-map": "~0.6.0" - }, - "engines": { - "node": ">= 4.0" - } - }, - "node_modules/clean-css/node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-width": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", - "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", - "dev": true - }, - "node_modules/cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "devOptional": true, - "dependencies": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } - }, - "node_modules/cliui/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "devOptional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/cliui/node_modules/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=", - "devOptional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/cliui/node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "devOptional": true, - "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/cliui/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "devOptional": true, - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/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=", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/codelyzer": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-5.2.2.tgz", - "integrity": "sha512-jB4FZ1Sx7kZhvZVdf+N2BaKTdrrNZOL0Bj10RRfrhHrb3zEvXjJvvq298JPMJAiyiCS/v4zs1QlGU0ip7xGqeA==", - "dev": true, - "dependencies": { - "app-root-path": "^2.2.1", - "aria-query": "^3.0.0", - "axobject-query": "2.0.2", - "css-selector-tokenizer": "^0.7.1", - "cssauron": "^1.4.0", - "damerau-levenshtein": "^1.0.4", - "semver-dsl": "^1.0.1", - "source-map": "^0.5.7", - "sprintf-js": "^1.1.2" - } - }, - "node_modules/codelyzer/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/codelyzer/node_modules/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 - }, - "node_modules/collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, - "dependencies": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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==", - "devOptional": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "devOptional": true - }, - "node_modules/colorette": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", - "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==", - "dev": true - }, - "node_modules/colors": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", - "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", - "dev": true, - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "devOptional": true, - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "devOptional": true - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "node_modules/compare-versions": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz", - "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==", - "dev": true - }, - "node_modules/component-bind": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", - "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=", - "dev": true - }, - "node_modules/component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true - }, - "node_modules/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 - }, - "node_modules/compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "dev": true, - "dependencies": { - "mime-db": ">= 1.43.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", - "dev": true, - "dependencies": { - "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" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/compression/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/compression/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "devOptional": true - }, - "node_modules/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, - "engines": [ - "node >= 0.8" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/connect": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", - "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", - "dev": true, - "dependencies": { - "debug": "2.6.9", - "finalhandler": "1.1.2", - "parseurl": "~1.3.3", - "utils-merge": "1.0.1" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/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, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/connect/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/connect/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", - "dev": true - }, - "node_modules/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=", - "optional": true - }, - "node_modules/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 - }, - "node_modules/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, - "dependencies": { - "safe-buffer": "5.1.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/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, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "node_modules/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, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", - "dev": true - }, - "node_modules/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, - "dependencies": { - "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" - } - }, - "node_modules/copy-concurrently/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/copy-webpack-plugin": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-6.0.3.tgz", - "integrity": "sha512-q5m6Vz4elsuyVEIUXr7wJdIdePWTubsqVbEMvf1WQnHGv0Q+9yPRu7MtYFPt+GBOXRav9lvIINifTQ1vSCs+eA==", - "dev": true, - "dependencies": { - "cacache": "^15.0.4", - "fast-glob": "^3.2.4", - "find-cache-dir": "^3.3.1", - "glob-parent": "^5.1.1", - "globby": "^11.0.1", - "loader-utils": "^2.0.0", - "normalize-path": "^3.0.0", - "p-limit": "^3.0.1", - "schema-utils": "^2.7.0", - "serialize-javascript": "^4.0.0", - "webpack-sources": "^1.4.3" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/copy-webpack-plugin/node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/copy-webpack-plugin/node_modules/cacache": { - "version": "15.0.5", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.5.tgz", - "integrity": "sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A==", - "dev": true, - "dependencies": { - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.0", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/copy-webpack-plugin/node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/copy-webpack-plugin/node_modules/find-cache-dir": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", - "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", - "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/copy-webpack-plugin/node_modules/globby": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.2.tgz", - "integrity": "sha512-2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og==", - "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/copy-webpack-plugin/node_modules/json5": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/copy-webpack-plugin/node_modules/loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/copy-webpack-plugin/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/copy-webpack-plugin/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/copy-webpack-plugin/node_modules/ssri": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.0.tgz", - "integrity": "sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA==", - "dev": true, - "dependencies": { - "minipass": "^3.1.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/core-js": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.8.3.tgz", - "integrity": "sha512-KPYXeVZYemC2TkNEkX/01I+7yd+nX3KddKwZ1Ww7SKWdI2wQprSgLmrTddT8nw92AjEklTsPBoSdQBhbI1bQ6Q==", - "hasInstallScript": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-compat": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.8.2.tgz", - "integrity": "sha512-LO8uL9lOIyRRrQmZxHZFl1RV+ZbcsAkFWTktn5SmH40WgLtSNYN4m4W2v9ONT147PxBY/XrRhrWq8TlvObyUjQ==", - "dev": true, - "dependencies": { - "browserslist": "^4.16.0", - "semver": "7.0.0" - } - }, - "node_modules/core-js-compat/node_modules/browserslist": { - "version": "4.16.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.1.tgz", - "integrity": "sha512-UXhDrwqsNcpTYJBTZsbGATDxZbiVDsx6UjpmRUmtnP10pr8wAYr5LgFoEFw9ixriQH2mv/NX2SfGzE/o8GndLA==", - "dev": true, - "dependencies": { - "caniuse-lite": "^1.0.30001173", - "colorette": "^1.2.1", - "electron-to-chromium": "^1.3.634", - "escalade": "^3.1.1", - "node-releases": "^1.1.69" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/core-js-compat/node_modules/caniuse-lite": { - "version": "1.0.30001174", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001174.tgz", - "integrity": "sha512-tqClL/4ThQq6cfFXH3oJL4rifFBeM6gTkphjao5kgwMaW9yn0tKgQLAEfKzDwj6HQWCB/aWo8kTFlSvIN8geEA==", - "dev": true - }, - "node_modules/core-js-compat/node_modules/semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/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=", - "devOptional": true - }, - "node_modules/cosmiconfig": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", - "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", - "dev": true, - "dependencies": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.1", - "parse-json": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cosmiconfig/node_modules/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, - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/coverage-istanbul-loader": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/coverage-istanbul-loader/-/coverage-istanbul-loader-2.0.3.tgz", - "integrity": "sha512-LiGRvyIuzVYs3M1ZYK1tF0HekjH0DJ8zFdUwAZq378EJzqOgToyb1690dp3TAUlP6Y+82uu42LRjuROVeJ54CA==", - "dev": true, - "dependencies": { - "convert-source-map": "^1.7.0", - "istanbul-lib-instrument": "^4.0.0", - "loader-utils": "^1.2.3", - "merge-source-map": "^1.1.0", - "schema-utils": "^2.6.1" - } - }, - "node_modules/create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, - "node_modules/create-ecdh/node_modules/bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - }, - "node_modules/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, - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "node_modules/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, - "dependencies": { - "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" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "optional": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/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, - "dependencies": { - "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" - }, - "engines": { - "node": "*" - } - }, - "node_modules/crypto-js": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.0.0.tgz", - "integrity": "sha512-bzHZN8Pn+gS7DQA6n+iUmBfl0hO5DJq++QP3U6uTucDtk/0iGpXd/Gg7CGR0p8tJhofJyaKoWBuJI4eAO00BBg==" - }, - "node_modules/css-parse": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-1.7.0.tgz", - "integrity": "sha1-Mh9s9zeCpv91ERE5D8BeLGV9jJs=", - "dev": true - }, - "node_modules/css-selector-tokenizer": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz", - "integrity": "sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==", - "dev": true, - "dependencies": { - "cssesc": "^3.0.0", - "fastparse": "^1.1.2" - } - }, - "node_modules/cssauron": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/cssauron/-/cssauron-1.4.0.tgz", - "integrity": "sha1-pmAt/34EqDBtwNuaVR6S6LVmKtg=", - "dev": true, - "dependencies": { - "through": "X.X.X" - } - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "optional": true, - "dependencies": { - "array-find-index": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/custom-event": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", - "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", - "dev": true - }, - "node_modules/cyclist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", - "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", - "dev": true - }, - "node_modules/damerau-levenshtein": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz", - "integrity": "sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug==", - "dev": true - }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "devOptional": true, - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/date-format": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-3.0.0.tgz", - "integrity": "sha512-eyTcpKOcamdhWJXj56DpQMo1ylSQpcGtGKXcU0Tb97+K56/CF5amAqqqNj0+KvA0iw2ynxtHWFsPDSClCxe48w==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "devOptional": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/debuglog": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", - "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/deep-equal": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", - "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", - "dev": true, - "dependencies": { - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.1", - "is-regex": "^1.0.4", - "object-is": "^1.0.1", - "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.2.0" - } - }, - "node_modules/default-gateway": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", - "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", - "dev": true, - "dependencies": { - "execa": "^1.0.0", - "ip-regex": "^2.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/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, - "dependencies": { - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/default-require-extensions/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "dependencies": { - "object-keys": "^1.0.12" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/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, - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-property/node_modules/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, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-property/node_modules/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, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-property/node_modules/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, - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/del": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", - "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", - "optional": true, - "dependencies": { - "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" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/del/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "optional": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "devOptional": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "optional": true - }, - "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/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, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", - "dev": true - }, - "node_modules/detect-node": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", - "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", - "dev": true - }, - "node_modules/dezalgo": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", - "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=", - "dev": true, - "dependencies": { - "asap": "^2.0.0", - "wrappy": "1" - } - }, - "node_modules/di": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", - "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=", - "dev": true - }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "optional": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/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, - "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "node_modules/diffie-hellman/node_modules/bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dir-glob/node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/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 - }, - "node_modules/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, - "dependencies": { - "ip": "^1.1.0", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/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, - "dependencies": { - "buffer-indexof": "^1.0.0" - } - }, - "node_modules/dom-serialize": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", - "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", - "dev": true, - "dependencies": { - "custom-event": "~1.0.0", - "ent": "~2.2.0", - "extend": "^3.0.0", - "void-elements": "^2.0.0" - } - }, - "node_modules/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, - "engines": { - "node": ">=0.4", - "npm": ">=1.2" - } - }, - "node_modules/domino": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/domino/-/domino-2.1.6.tgz", - "integrity": "sha512-3VdM/SXBZX2omc9JF9nOPCtDaYQ67BGp5CoLpIQlO2KCAPETs8TcDHacF26jXadGbvUteZzRTeos2fhID5+ucQ==" - }, - "node_modules/duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "devOptional": true, - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true - }, - "node_modules/electron-to-chromium": { - "version": "1.3.636", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.636.tgz", - "integrity": "sha512-Adcvng33sd3gTjNIDNXGD1G4H6qCImIy2euUJAQHtLNplEKU5WEz5KRJxupRNIIT8sD5oFZLTKBWAf12Bsz24A==", - "dev": true - }, - "node_modules/elliptic": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", - "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", - "dev": true, - "dependencies": { - "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" - } - }, - "node_modules/elliptic/node_modules/bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - }, - "node_modules/emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "devOptional": true - }, - "node_modules/emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "dev": true, - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/encoding/node_modules/iconv-lite": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", - "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "devOptional": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/engine.io": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.5.0.tgz", - "integrity": "sha512-21HlvPUKaitDGE4GXNtQ7PLP0Sz4aWLddMPw2VTyFz1FVZqu/kZsJUO8WNpKuE/OCL7nkfRaOui2ZCJloGznGA==", - "dev": true, - "dependencies": { - "accepts": "~1.3.4", - "base64id": "2.0.0", - "cookie": "~0.4.1", - "debug": "~4.1.0", - "engine.io-parser": "~2.2.0", - "ws": "~7.4.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/engine.io-client": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.5.0.tgz", - "integrity": "sha512-12wPRfMrugVw/DNyJk34GQ5vIVArEcVMXWugQGGuw2XxUSztFNmJggZmv8IZlLyEdnpO1QB9LkcjeWewO2vxtA==", - "dev": true, - "dependencies": { - "component-emitter": "~1.3.0", - "component-inherit": "0.0.3", - "debug": "~3.1.0", - "engine.io-parser": "~2.2.0", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "parseqs": "0.0.6", - "parseuri": "0.0.6", - "ws": "~7.4.2", - "xmlhttprequest-ssl": "~1.5.4", - "yeast": "0.1.2" - } - }, - "node_modules/engine.io-client/node_modules/debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/engine.io-client/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/engine.io-client/node_modules/ws": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.2.tgz", - "integrity": "sha512-T4tewALS3+qsrpGI/8dqNMLIVdq/g/85U98HPMa6F0m6xTbvhXU6RCQLqPH3+SlomNV/LdY6RXEbBpMH6EOJnA==", - "dev": true, - "engines": { - "node": ">=8.3.0" - } - }, - "node_modules/engine.io-parser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.1.tgz", - "integrity": "sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg==", - "dev": true, - "dependencies": { - "after": "0.8.2", - "arraybuffer.slice": "~0.0.7", - "base64-arraybuffer": "0.1.4", - "blob": "0.0.5", - "has-binary2": "~1.0.2" - } - }, - "node_modules/engine.io/node_modules/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/engine.io/node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/engine.io/node_modules/ws": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.2.tgz", - "integrity": "sha512-T4tewALS3+qsrpGI/8dqNMLIVdq/g/85U98HPMa6F0m6xTbvhXU6RCQLqPH3+SlomNV/LdY6RXEbBpMH6EOJnA==", - "dev": true, - "engines": { - "node": ">=8.3.0" - } - }, - "node_modules/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, - "dependencies": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.4.0", - "tapable": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/ent": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", - "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", - "dev": true - }, - "node_modules/env-paths": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz", - "integrity": "sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA==", - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/err-code": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", - "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=", - "dev": true - }, - "node_modules/errno": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "dev": true, - "dependencies": { - "prr": "~1.0.1" - }, - "bin": { - "errno": "cli.js" - } - }, - "node_modules/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==", - "devOptional": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-abstract": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", - "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", - "dev": true, - "dependencies": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", - "devOptional": true - }, - "node_modules/es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", - "devOptional": true, - "dependencies": { - "es6-promise": "^4.0.3" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true - }, - "node_modules/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=", - "devOptional": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/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, - "dependencies": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "devOptional": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true - }, - "node_modules/events": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", - "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", - "dev": true, - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/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, - "dependencies": { - "original": "^1.0.0" - }, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/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, - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "devOptional": true, - "dependencies": { - "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" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/execa/node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "devOptional": true, - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "node_modules/execa/node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "devOptional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/execa/node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "devOptional": true, - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/execa/node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/execa/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "devOptional": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "optional": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/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, - "dependencies": { - "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" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/expand-brackets/node_modules/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, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/express": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", - "dev": true, - "dependencies": { - "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" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express/node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", - "dev": true - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/express/node_modules/qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "devOptional": true - }, - "node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extend-shallow/node_modules/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, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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, - "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/external-editor/node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "dependencies": { - "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" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/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, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/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, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/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, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/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, - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "devOptional": true, - "engines": [ - "node >=0.6.0" - ] - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "devOptional": true - }, - "node_modules/fast-glob": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", - "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.0", - "merge2": "^1.3.0", - "micromatch": "^4.0.2", - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "devOptional": true - }, - "node_modules/fastparse": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", - "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", - "dev": true - }, - "node_modules/fastq": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.10.0.tgz", - "integrity": "sha512-NL2Qc5L3iQEsyYzweq7qfgy5OtXCmGzGvhElGEd/SoFWEMOEczNh5s5ocaF01HDetxz+p8ecjNPA6cZxxIHmzA==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/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, - "dependencies": { - "websocket-driver": ">=0.5.1" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/figgy-pudding": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", - "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", - "dev": true - }, - "node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/file-loader": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-4.2.0.tgz", - "integrity": "sha512-+xZnaK5R8kBJrHK0/6HRlrKNamvVS5rjyuju+rnyxRGuwUJwpAMsVzUl5dz6rK8brkzjV6JpcFNjp6NqV0g1OQ==", - "dev": true, - "dependencies": { - "loader-utils": "^1.2.3", - "schema-utils": "^2.0.0" - }, - "engines": { - "node": ">= 8.9.0" - } - }, - "node_modules/fileset": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz", - "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=", - "dev": true, - "dependencies": { - "glob": "^7.0.3", - "minimatch": "^3.0.3" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "dev": true, - "dependencies": { - "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" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/find-cache-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.0.0.tgz", - "integrity": "sha512-t7ulV1fmbxh5G9l/492O1p5+EBbr3uwpt6odhFTMc+nWyhmbloe+ja9BZ8pIBtqFWhOmCWVjx+pTW4zDkFoclw==", - "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.0", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "optional": true, - "dependencies": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", - "dev": true - }, - "node_modules/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, - "dependencies": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, - "node_modules/follow-redirects": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.1.tgz", - "integrity": "sha512-SSG5xmZh1mkPGyKzjZP8zLjltIfpW32Y5QpdNJyjcfGxK3qo3NDDkZOZSFiGn1A6SclQxY9GzEwAHQ3dmYRWpg==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "devOptional": true, - "engines": { - "node": "*" - } - }, - "node_modules/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==", - "devOptional": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/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, - "dependencies": { - "map-cache": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "devOptional": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/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, - "dependencies": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "devOptional": true - }, - "node_modules/fsevents": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.1.tgz", - "integrity": "sha512-YR47Eg4hChJGAB1O3yEAOkGO+rlzutoICGqGo9EZ4lKWokzZRSyIW1QmTzqjtw8MJdj9srP869CuWw/hyzSiBw==", - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "devOptional": true - }, - "node_modules/gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "optional": true, - "dependencies": { - "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" - } - }, - "node_modules/gaze": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", - "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", - "optional": true, - "dependencies": { - "globule": "^1.0.0" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/genfun": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/genfun/-/genfun-5.0.0.tgz", - "integrity": "sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA==", - "dev": true - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "devOptional": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.2.tgz", - "integrity": "sha512-aeX0vrFm21ILl3+JpFFRNe9aUvp6VFZb2/CTbgLb8j75kOhvoNYjt9d8KA/tJG4gSo8nzEDedRl0h7vDmBYRVg==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "node_modules/get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "devOptional": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "devOptional": true, - "dependencies": { - "assert-plus": "^1.0.0" - } - }, - "node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "devOptional": true, - "dependencies": { - "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" - }, - "engines": { - "node": "*" - } - }, - "node_modules/glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/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, - "engines": { - "node": ">=4" - } - }, - "node_modules/globby": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", - "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", - "optional": true, - "dependencies": { - "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" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/globule": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.2.tgz", - "integrity": "sha512-7IDTQTIu2xzXkT+6mlluidnWo+BypnbSoEVVQCGfzqnl5Ik8d3e1d4wycb8Rj9tWW+Z39uPWsdlquqiqPCd/pA==", - "optional": true, - "dependencies": { - "glob": "~7.1.1", - "lodash": "~4.17.10", - "minimatch": "~3.0.2" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", - "devOptional": true - }, - "node_modules/handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", - "dev": true - }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "devOptional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "devOptional": true, - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "devOptional": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "optional": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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, - "dependencies": { - "isarray": "2.0.1" - } - }, - "node_modules/has-binary2/node_modules/isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", - "dev": true - }, - "node_modules/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 - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "devOptional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "optional": true - }, - "node_modules/has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, - "dependencies": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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, - "dependencies": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hash-base/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/hash-base/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - }, - "node_modules/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, - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/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, - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", - "devOptional": true - }, - "node_modules/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, - "dependencies": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } - }, - "node_modules/html-entities": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz", - "integrity": "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==", - "dev": true - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "node_modules/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 - }, - "node_modules/http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", - "dev": true - }, - "node_modules/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, - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/http-errors/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "node_modules/http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "dev": true, - "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/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, - "dependencies": { - "agent-base": "4", - "debug": "3.1.0" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/http-proxy-agent/node_modules/debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/http-proxy-agent/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/http-proxy-middleware": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", - "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", - "dev": true, - "dependencies": { - "http-proxy": "^1.17.0", - "is-glob": "^4.0.0", - "lodash": "^4.17.11", - "micromatch": "^3.1.10" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/http-proxy-middleware/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "dependencies": { - "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" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/http-proxy-middleware/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/http-proxy-middleware/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/http-proxy-middleware/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/http-proxy-middleware/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/http-proxy-middleware/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/http-proxy-middleware/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "dependencies": { - "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" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/http-proxy-middleware/node_modules/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, - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "devOptional": true, - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, - "node_modules/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 - }, - "node_modules/https-proxy-agent": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", - "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", - "devOptional": true, - "dependencies": { - "agent-base": "^4.3.0", - "debug": "^3.1.0" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/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, - "dependencies": { - "ms": "^2.0.0" - } - }, - "node_modules/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, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true - }, - "node_modules/iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", - "dev": true - }, - "node_modules/ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/ignore-walk": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", - "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", - "dev": true, - "dependencies": { - "minimatch": "^3.0.4" - } - }, - "node_modules/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, - "bin": { - "image-size": "bin/image-size.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/immediate": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=", - "optional": true - }, - "node_modules/import-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", - "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", - "dev": true, - "dependencies": { - "import-from": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", - "dev": true, - "dependencies": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/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, - "dependencies": { - "resolve-from": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/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, - "dependencies": { - "pkg-dir": "^3.0.0", - "resolve-cwd": "^2.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/import-local/node_modules/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, - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/import-local/node_modules/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, - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "optional": true, - "dependencies": { - "repeating": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", - "dev": true - }, - "node_modules/infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "dev": true - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "devOptional": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "devOptional": true - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "devOptional": true - }, - "node_modules/inquirer": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.1.tgz", - "integrity": "sha512-uxNHBeQhRXIoHWTSNYUFhQVrHYFThIt6IVo2fFmSe8aBwdR3/w6b58hJpiL/fMukFkvGzjg+hSxFtwvVmKZmXw==", - "dev": true, - "dependencies": { - "ansi-escapes": "^4.2.1", - "chalk": "^2.4.2", - "cli-cursor": "^3.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.15", - "mute-stream": "0.0.8", - "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^4.1.0", - "strip-ansi": "^5.1.0", - "through": "^2.3.6" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/inquirer/node_modules/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, - "engines": { - "node": ">=6" - } - }, - "node_modules/inquirer/node_modules/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, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/inquirer/node_modules/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, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/inquirer/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/inquirer/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/inquirer/node_modules/string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/inquirer/node_modules/string-width/node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/inquirer/node_modules/string-width/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/inquirer/node_modules/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, - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/inquirer/node_modules/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, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/internal-ip": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", - "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", - "dev": true, - "dependencies": { - "default-gateway": "^4.2.0", - "ipaddr.js": "^1.9.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dev": true, - "dependencies": { - "loose-envify": "^1.0.0" - } - }, - "node_modules/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==", - "devOptional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", - "dev": true - }, - "node_modules/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, - "engines": { - "node": ">=4" - } - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-absolute-url": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", - "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/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, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-arguments": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", - "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "devOptional": true - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/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 - }, - "node_modules/is-callable": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", - "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-core-module": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", - "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", - "devOptional": true, - "dependencies": { - "has": "^1.0.3" - } - }, - "node_modules/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, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-date-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/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, - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-descriptor/node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-finite": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", - "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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=", - "optional": true, - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/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=", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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==", - "optional": true, - "dependencies": { - "is-path-inside": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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=", - "optional": true, - "dependencies": { - "path-is-inside": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-regex": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", - "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "devOptional": true - }, - "node_modules/is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "optional": true - }, - "node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "devOptional": true - }, - "node_modules/isbinaryfile": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.6.tgz", - "integrity": "sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg==", - "dev": true, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "devOptional": true - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "devOptional": true - }, - "node_modules/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, - "dependencies": { - "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" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/istanbul-api/node_modules/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, - "engines": { - "node": ">=6" - } - }, - "node_modules/istanbul-api/node_modules/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, - "dependencies": { - "@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" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/istanbul-api/node_modules/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, - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/istanbul-api/node_modules/make-dir/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/istanbul-api/node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/istanbul-api/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", - "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/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, - "dependencies": { - "append-transform": "^1.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/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, - "dependencies": { - "istanbul-lib-coverage": "^2.0.5", - "make-dir": "^2.1.0", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/istanbul-lib-report/node_modules/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, - "engines": { - "node": ">=6" - } - }, - "node_modules/istanbul-lib-report/node_modules/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, - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/istanbul-lib-report/node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/istanbul-lib-report/node_modules/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, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/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, - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^2.0.5", - "make-dir": "^2.1.0", - "rimraf": "^2.6.3", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/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, - "engines": { - "node": ">=6" - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/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, - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/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 - }, - "node_modules/istanbul-lib-source-maps/node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/istanbul-reports": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.7.tgz", - "integrity": "sha512-uu1F/L1o5Y6LzPVSVZXNOoD/KXpJue9aeLRd0sM9uMXfZvzomB0WxVamWb5ue8kA2vVWEmW7EG+A5n3f1kqHKg==", - "dev": true, - "dependencies": { - "html-escaper": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jasmine": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz", - "integrity": "sha1-awicChFXax8W3xG4AUbZHU6Lij4=", - "optional": true, - "dependencies": { - "exit": "^0.1.2", - "glob": "^7.0.6", - "jasmine-core": "~2.8.0" - }, - "bin": { - "jasmine": "bin/jasmine.js" - } - }, - "node_modules/jasmine-core": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.5.0.tgz", - "integrity": "sha512-nCeAiw37MIMA9w9IXso7bRaLl+c/ef3wnxsoSAlYrzS+Ot0zTG6nU8G/cIfGkqpkjX2wNaIW9RFG0TwIFnG6bA==", - "dev": true - }, - "node_modules/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, - "dependencies": { - "colors": "1.1.2" - } - }, - "node_modules/jasmine/node_modules/jasmine-core": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz", - "integrity": "sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=", - "optional": true - }, - "node_modules/jasminewd2": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/jasminewd2/-/jasminewd2-2.2.0.tgz", - "integrity": "sha1-43zwsX8ZnM4jvqcbIDk5Uka07E4=", - "optional": true, - "engines": { - "node": ">= 6.9.x" - } - }, - "node_modules/jest-worker": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz", - "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==", - "dev": true, - "dependencies": { - "merge-stream": "^2.0.0", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/jest-worker/node_modules/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, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jquery": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.5.1.tgz", - "integrity": "sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg==" - }, - "node_modules/js-base64": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", - "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==", - "optional": true - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "devOptional": true - }, - "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "devOptional": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "devOptional": true - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/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 - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "devOptional": true - }, - "node_modules/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==", - "devOptional": true - }, - "node_modules/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=", - "devOptional": true - }, - "node_modules/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 - }, - "node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", - "dev": true, - "engines": [ - "node >= 0.2.0" - ] - }, - "node_modules/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, - "dependencies": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - }, - "bin": { - "JSONStream": "bin.js" - }, - "engines": { - "node": "*" - } - }, - "node_modules/jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "devOptional": true, - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "node_modules/jszip": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.5.0.tgz", - "integrity": "sha512-WRtu7TPCmYePR1nazfrtuF216cIVon/3GWOvHS9QR5bIwSbnxtdpma6un3jyGGNhHsKCSzn5Ypk+EkDRvTGiFA==", - "optional": true, - "dependencies": { - "lie": "~3.3.0", - "pako": "~1.0.2", - "readable-stream": "~2.3.6", - "set-immediate-shim": "~1.0.1" - } - }, - "node_modules/karma": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/karma/-/karma-5.2.3.tgz", - "integrity": "sha512-tHdyFADhVVPBorIKCX8A37iLHxc6RBRphkSoQ+MLKdAtFn1k97tD8WUGi1KlEtDZKL3hui0qhsY9HXUfSNDYPQ==", - "dev": true, - "dependencies": { - "body-parser": "^1.19.0", - "braces": "^3.0.2", - "chokidar": "^3.4.2", - "colors": "^1.4.0", - "connect": "^3.7.0", - "di": "^0.0.1", - "dom-serialize": "^2.2.1", - "glob": "^7.1.6", - "graceful-fs": "^4.2.4", - "http-proxy": "^1.18.1", - "isbinaryfile": "^4.0.6", - "lodash": "^4.17.19", - "log4js": "^6.2.1", - "mime": "^2.4.5", - "minimatch": "^3.0.4", - "qjobs": "^1.2.0", - "range-parser": "^1.2.1", - "rimraf": "^3.0.2", - "socket.io": "^2.3.0", - "source-map": "^0.6.1", - "tmp": "0.2.1", - "ua-parser-js": "0.7.22", - "yargs": "^15.3.1" - }, - "bin": { - "karma": "bin/karma" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/karma-chrome-launcher": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.1.0.tgz", - "integrity": "sha512-3dPs/n7vgz1rxxtynpzZTvb9y/GIaW8xjAwcIGttLbycqoFtI7yo1NGnQi6oFTherRE+GIhCAHZC4vEqWGhNvg==", - "dev": true, - "dependencies": { - "which": "^1.2.1" - } - }, - "node_modules/karma-chrome-launcher/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/karma-coverage-istanbul-reporter": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-2.1.1.tgz", - "integrity": "sha512-CH8lTi8+kKXGvrhy94+EkEMldLCiUA0xMOiL31vvli9qK0T+qcXJAwWBRVJWnVWxYkTmyWar8lPz63dxX6/z1A==", - "dev": true, - "dependencies": { - "istanbul-api": "^2.1.6", - "minimatch": "^3.0.4" - } - }, - "node_modules/karma-jasmine": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-2.0.1.tgz", - "integrity": "sha512-iuC0hmr9b+SNn1DaUD2QEYtUxkS1J+bSJSn7ejdEexs7P8EYvA1CWkEdrDQ+8jVH3AgWlCNwjYsT1chjcNW9lA==", - "dev": true, - "dependencies": { - "jasmine-core": "^3.3" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/karma-jasmine-html-reporter": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-1.5.4.tgz", - "integrity": "sha512-PtilRLno5O6wH3lDihRnz0Ba8oSn0YUJqKjjux1peoYGwo0AQqrWRbdWk/RLzcGlb+onTyXAnHl6M+Hu3UxG/Q==", - "dev": true - }, - "node_modules/karma-source-map-support": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", - "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==", - "dev": true, - "dependencies": { - "source-map-support": "^0.5.5" - } - }, - "node_modules/karma-source-map-support/node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/karma-source-map-support/node_modules/source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/karma/node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/karma/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/karma/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/karma/node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "node_modules/karma/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/karma/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/karma/node_modules/colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true, - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/karma/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/karma/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/karma/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/karma/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/karma/node_modules/mime": { - "version": "2.4.7", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.7.tgz", - "integrity": "sha512-dhNd1uA2u397uQk3Nv5LM4lm93WYDUXFn3Fu291FJerns4jyTudqhIWe4W04YLy7Uk1tm1Ore04NpjRvQp/NPA==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/karma/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/karma/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/karma/node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/karma/node_modules/string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/karma/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/karma/node_modules/tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "dev": true, - "dependencies": { - "rimraf": "^3.0.0" - }, - "engines": { - "node": ">=8.17.0" - } - }, - "node_modules/karma/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/karma/node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/karma/node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/killable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", - "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", - "dev": true - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/lcid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", - "devOptional": true, - "dependencies": { - "invert-kv": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/less": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/less/-/less-3.9.0.tgz", - "integrity": "sha512-31CmtPEZraNUtuUREYjSqRkeETFdyEHSEPAGq4erDlUXtda7pzNmctdljdIagSb589d/qXGWiiP31R5JVf+v0w==", - "dev": true, - "dependencies": { - "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" - }, - "bin": { - "lessc": "bin/lessc" - }, - "engines": { - "node": ">=4" - }, - "optionalDependencies": { - "image-size": "~0.5.0", - "promise": "^7.1.1", - "source-map": "~0.6.0" - } - }, - "node_modules/less-loader": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-5.0.0.tgz", - "integrity": "sha512-bquCU89mO/yWLaUq0Clk7qCsKhsF/TZpJUzETRvJa9KSVEL9SO3ovCvdEHISBhrC81OwC8QSVX7E0bzElZj9cg==", - "dev": true, - "dependencies": { - "clone": "^2.1.1", - "loader-utils": "^1.1.0", - "pify": "^4.0.1" - }, - "engines": { - "node": ">= 4.8.0" - } - }, - "node_modules/less-loader/node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/less/node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/levenary": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz", - "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", - "dev": true, - "dependencies": { - "leven": "^3.1.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/license-webpack-plugin": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-2.1.2.tgz", - "integrity": "sha512-7poZHRla+ae0eEButlwMrPpkXyhNVBf2EHePYWT0jyLnI6311/OXJkTI2sOIRungRpQgU2oDMpro5bSFPT5F0A==", - "dev": true, - "dependencies": { - "@types/webpack-sources": "^0.1.5", - "webpack-sources": "^1.2.0" - } - }, - "node_modules/lie": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", - "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", - "optional": true, - "dependencies": { - "immediate": "~3.0.5" - } - }, - "node_modules/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=", - "optional": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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, - "engines": { - "node": ">=4.3.0 <5.0.0 || >=5.10" - } - }, - "node_modules/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, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^2.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "devOptional": true, - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/locate-path/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "devOptional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "devOptional": true - }, - "node_modules/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 - }, - "node_modules/log4js": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.3.0.tgz", - "integrity": "sha512-Mc8jNuSFImQUIateBFwdOQcmC6Q5maU0VVvdC2R6XMb66/VnT+7WS4D/0EeNMZu1YODmJe5NIn2XftCzEocUgw==", - "dev": true, - "dependencies": { - "date-format": "^3.0.0", - "debug": "^4.1.1", - "flatted": "^2.0.1", - "rfdc": "^1.1.4", - "streamroller": "^2.2.4" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/log4js/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/log4js/node_modules/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 - }, - "node_modules/loglevel": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz", - "integrity": "sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/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, - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "optional": true, - "dependencies": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "devOptional": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/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, - "dependencies": { - "sourcemap-codec": "^1.4.4" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "optional": true - }, - "node_modules/make-fetch-happen": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-5.0.2.tgz", - "integrity": "sha512-07JHC0r1ykIoruKO8ifMXu+xEU8qOXDFETylktdug6vJDACnP+HKevOu3PXyNPzFyTSlz8vrBYlBO1JZRe8Cag==", - "dev": true, - "dependencies": { - "agentkeepalive": "^3.4.1", - "cacache": "^12.0.0", - "http-cache-semantics": "^3.8.1", - "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^2.2.3", - "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" - } - }, - "node_modules/make-fetch-happen/node_modules/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, - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/make-fetch-happen/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/mamacro": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz", - "integrity": "sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==", - "dev": true - }, - "node_modules/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==", - "devOptional": true, - "dependencies": { - "p-defer": "^1.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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, - "dependencies": { - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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, - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/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, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mem": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", - "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", - "devOptional": true, - "dependencies": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/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, - "dependencies": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "node_modules/meow": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", - "optional": true, - "dependencies": { - "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" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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 - }, - "node_modules/merge-source-map": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", - "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", - "dev": true, - "dependencies": { - "source-map": "^0.6.1" - } - }, - "node_modules/merge-source-map/node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", - "dev": true, - "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.0.5" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/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, - "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "bin": { - "miller-rabin": "bin/miller-rabin" - } - }, - "node_modules/miller-rabin/node_modules/bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.45.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz", - "integrity": "sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==", - "devOptional": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.28", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz", - "integrity": "sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==", - "devOptional": true, - "dependencies": { - "mime-db": "1.45.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "devOptional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/mini-css-extract-plugin": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.8.0.tgz", - "integrity": "sha512-MNpRGbNA52q6U92i0qbVpQNsgk7LExy41MdAlG84FeytfDOtRIf/mCHdEgG8rpTKOaNKiqUnZdlptF469hxqOw==", - "dev": true, - "dependencies": { - "loader-utils": "^1.1.0", - "normalize-url": "1.9.1", - "schema-utils": "^1.0.0", - "webpack-sources": "^1.1.0" - }, - "engines": { - "node": ">= 6.9.0" - } - }, - "node_modules/mini-css-extract-plugin/node_modules/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, - "dependencies": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/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 - }, - "node_modules/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 - }, - "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "devOptional": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "devOptional": true - }, - "node_modules/minipass": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", - "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", - "devOptional": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "devOptional": true, - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", - "dev": true, - "dependencies": { - "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" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, - "dependencies": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mixin-deep/node_modules/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, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "devOptional": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", - "dev": true, - "dependencies": { - "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" - } - }, - "node_modules/move-concurrently/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "devOptional": true - }, - "node_modules/multicast-dns": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", - "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", - "dev": true, - "dependencies": { - "dns-packet": "^1.3.1", - "thunky": "^1.0.2" - }, - "bin": { - "multicast-dns": "cli.js" - } - }, - "node_modules/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 - }, - "node_modules/mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true - }, - "node_modules/nan": { - "version": "2.14.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", - "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", - "optional": true - }, - "node_modules/nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "dependencies": { - "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" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "node_modules/nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "devOptional": true - }, - "node_modules/node-fetch-npm": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.4.tgz", - "integrity": "sha512-iOuIQDWDyjhv9qSDrj9aq/klt6F9z1p2otB3AV7v3zBDcL/x+OfGsvGQZZCcMZbUf4Ujw1xGNQkjvGnVT22cKg==", - "dev": true, - "dependencies": { - "encoding": "^0.1.11", - "json-parse-better-errors": "^1.0.0", - "safe-buffer": "^5.1.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/node-forge": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", - "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", - "dev": true, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/node-gyp": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-7.1.2.tgz", - "integrity": "sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ==", - "optional": true, - "dependencies": { - "env-paths": "^2.2.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.3", - "nopt": "^5.0.0", - "npmlog": "^4.1.2", - "request": "^2.88.2", - "rimraf": "^3.0.2", - "semver": "^7.3.2", - "tar": "^6.0.2", - "which": "^2.0.2" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" - }, - "engines": { - "node": ">= 10.12.0" - } - }, - "node_modules/node-gyp/node_modules/semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "optional": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/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, - "dependencies": { - "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" - } - }, - "node_modules/node-libs-browser/node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - }, - "node_modules/node-releases": { - "version": "1.1.69", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.69.tgz", - "integrity": "sha512-DGIjo79VDEyAnRlfSqYTsy+yoHd2IOjJiKUozD2MV2D85Vso6Bug56mb9tT/fY5Urt0iqk01H7x+llAruDR2zA==", - "dev": true - }, - "node_modules/node-sass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-5.0.0.tgz", - "integrity": "sha512-opNgmlu83ZCF792U281Ry7tak9IbVC+AKnXGovcQ8LG8wFaJv6cLnRlc6DIHlmNxWEexB5bZxi9SZ9JyUuOYjw==", - "hasInstallScript": true, - "optional": true, - "dependencies": { - "async-foreach": "^0.1.3", - "chalk": "^1.1.1", - "cross-spawn": "^7.0.3", - "gaze": "^1.0.0", - "get-stdin": "^4.0.1", - "glob": "^7.0.3", - "lodash": "^4.17.15", - "meow": "^3.7.0", - "mkdirp": "^0.5.1", - "nan": "^2.13.2", - "node-gyp": "^7.1.0", - "npmlog": "^4.0.0", - "request": "^2.88.0", - "sass-graph": "2.2.5", - "stdout-stream": "^1.4.0", - "true-case-path": "^1.0.2" - }, - "bin": { - "node-sass": "bin/node-sass" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "optional": true, - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/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==", - "devOptional": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-url": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", - "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", - "dev": true, - "dependencies": { - "object-assign": "^4.0.1", - "prepend-http": "^1.0.0", - "query-string": "^4.1.0", - "sort-keys": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-bundled": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz", - "integrity": "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==", - "dev": true, - "dependencies": { - "npm-normalize-package-bin": "^1.0.1" - } - }, - "node_modules/npm-normalize-package-bin": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", - "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", - "dev": true - }, - "node_modules/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, - "dependencies": { - "hosted-git-info": "^2.6.0", - "osenv": "^0.1.5", - "semver": "^5.5.0", - "validate-npm-package-name": "^3.0.0" - } - }, - "node_modules/npm-packlist": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz", - "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==", - "dev": true, - "dependencies": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1", - "npm-normalize-package-bin": "^1.0.1" - } - }, - "node_modules/npm-pick-manifest": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-3.0.2.tgz", - "integrity": "sha512-wNprTNg+X5nf+tDi+hbjdHhM4bX+mKqv6XmPh7B5eG+QY9VARfQPfCEH013H5GqfNj6ee8Ij2fg8yk0mzps1Vw==", - "dev": true, - "dependencies": { - "figgy-pudding": "^3.5.1", - "npm-package-arg": "^6.0.0", - "semver": "^5.4.1" - } - }, - "node_modules/npm-registry-fetch": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-4.0.7.tgz", - "integrity": "sha512-cny9v0+Mq6Tjz+e0erFAB+RYJ/AVGzkjnISiobqP8OWj9c9FLoZZu8/SPSKJWE17F1tk4018wfjV+ZbIbqC7fQ==", - "dev": true, - "dependencies": { - "bluebird": "^3.5.1", - "figgy-pudding": "^3.4.1", - "JSONStream": "^1.3.4", - "lru-cache": "^5.1.1", - "make-fetch-happen": "^5.0.0", - "npm-package-arg": "^6.1.0", - "safe-buffer": "^5.2.0" - } - }, - "node_modules/npm-registry-fetch/node_modules/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, - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/npm-registry-fetch/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/npm-registry-fetch/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/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=", - "devOptional": true, - "dependencies": { - "path-key": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-run-path/node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "devOptional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "optional": true, - "dependencies": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "node_modules/num2fraction": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", - "dev": true - }, - "node_modules/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=", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "devOptional": true, - "engines": { - "node": "*" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "dependencies": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/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, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", - "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", - "dev": true - }, - "node_modules/object-is": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.4.tgz", - "integrity": "sha512-1ZvAZ4wlF7IyPVOcE1Omikt7UpaFlOQq0HlSti+ZvDH3UiD2brwGMwDbyV43jao2bKJ+4+WdPJHSd7kgzKYVqg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/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, - "dependencies": { - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.getownpropertydescriptors": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.1.tgz", - "integrity": "sha512-6DtXgZ/lIZ9hqx4GtZETobXLR/ZLaa0aqV0kzbn80Rf8Z2e/XFnhA0I7p07N2wH8bBBltr2xQPi6sbKWAY2Eng==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1" - }, - "engines": { - "node": ">= 0.8" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.getownpropertydescriptors/node_modules/es-abstract": { - "version": "1.18.0-next.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.2.tgz", - "integrity": "sha512-Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.1", - "object-inspect": "^1.9.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.3", - "string.prototype.trimstart": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/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, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", - "dev": true - }, - "node_modules/oidc-client": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/oidc-client/-/oidc-client-1.11.3.tgz", - "integrity": "sha512-kMA5KRP++88nn3nxogwDA4p8jH+YwyoA1JxxVHA9YZFgYqcnK8qjc6WLEoOBheKbxQSl89r0gDh8+zscZHmGlw==", - "dependencies": { - "acorn": "^7.4.1", - "base64-js": "^1.5.1", - "core-js": "^3.8.3", - "crypto-js": "^4.0.0", - "serialize-javascript": "^4.0.0" - } - }, - "node_modules/oidc-client/node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dev": true, - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/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, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "devOptional": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/open": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", - "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", - "dev": true, - "dependencies": { - "is-wsl": "^1.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/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, - "dependencies": { - "is-wsl": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/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, - "dependencies": { - "url-parse": "^1.4.3" - } - }, - "node_modules/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 - }, - "node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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==", - "devOptional": true, - "dependencies": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/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=", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "dev": true, - "dependencies": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "node_modules/p-defer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", - "devOptional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "devOptional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/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==", - "devOptional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "devOptional": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/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==", - "devOptional": true, - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/p-retry": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", - "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", - "dev": true, - "dependencies": { - "retry": "^0.12.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/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==", - "devOptional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/pacote": { - "version": "9.5.5", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-9.5.5.tgz", - "integrity": "sha512-jAEP+Nqj4kyMWyNpfTU/Whx1jA7jEc5cCOlurm0/0oL+v8TAp1QSsK83N7bYe+2bEdFzMAtPG5TBebjzzGV0cA==", - "dev": true, - "dependencies": { - "bluebird": "^3.5.3", - "cacache": "^12.0.2", - "figgy-pudding": "^3.5.1", - "get-stream": "^4.1.0", - "glob": "^7.1.3", - "infer-owner": "^1.0.4", - "lru-cache": "^5.1.1", - "make-fetch-happen": "^5.0.0", - "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": "^4.0.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" - } - }, - "node_modules/pacote/node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, - "node_modules/pacote/node_modules/fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "dev": true, - "dependencies": { - "minipass": "^2.6.0" - } - }, - "node_modules/pacote/node_modules/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, - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/pacote/node_modules/minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "node_modules/pacote/node_modules/minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "dev": true, - "dependencies": { - "minipass": "^2.9.0" - } - }, - "node_modules/pacote/node_modules/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, - "dependencies": { - "figgy-pudding": "^3.5.1", - "npm-package-arg": "^6.0.0", - "semver": "^5.4.1" - } - }, - "node_modules/pacote/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/pacote/node_modules/tar": { - "version": "4.4.13", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", - "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", - "dev": true, - "dependencies": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.8.6", - "minizlib": "^1.2.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.3" - }, - "engines": { - "node": ">=4.5" - } - }, - "node_modules/pacote/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/pacote/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "devOptional": true - }, - "node_modules/parallel-transform": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", - "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", - "dev": true, - "dependencies": { - "cyclist": "^1.0.1", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - } - }, - "node_modules/parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "dev": true, - "dependencies": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "optional": true, - "dependencies": { - "error-ex": "^1.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/parse5": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", - "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", - "dev": true - }, - "node_modules/parseqs": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.6.tgz", - "integrity": "sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w==", - "dev": true - }, - "node_modules/parseuri": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.6.tgz", - "integrity": "sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow==", - "dev": true - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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 - }, - "node_modules/path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true - }, - "node_modules/path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "optional": true, - "dependencies": { - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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=", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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=", - "devOptional": true - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/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==", - "devOptional": true - }, - "node_modules/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 - }, - "node_modules/path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "optional": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pbkdf2": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", - "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", - "dev": true, - "dependencies": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "devOptional": true - }, - "node_modules/picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", - "dev": true, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "devOptional": true, - "dependencies": { - "pinkie": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-up": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", - "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", - "dev": true, - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-up/node_modules/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, - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/popper.js": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz", - "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==" - }, - "node_modules/portfinder": { - "version": "1.0.28", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", - "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", - "dev": true, - "dependencies": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.5" - }, - "engines": { - "node": ">= 0.12.0" - } - }, - "node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss": { - "version": "7.0.17", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", - "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", - "dev": true, - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/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, - "dependencies": { - "postcss": "^7.0.1", - "postcss-value-parser": "^3.2.3", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-import/node_modules/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 - }, - "node_modules/postcss-load-config": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.2.tgz", - "integrity": "sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==", - "dev": true, - "dependencies": { - "cosmiconfig": "^5.0.0", - "import-cwd": "^2.0.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/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, - "dependencies": { - "loader-utils": "^1.1.0", - "postcss": "^7.0.0", - "postcss-load-config": "^2.0.0", - "schema-utils": "^1.0.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/postcss-loader/node_modules/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, - "dependencies": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", - "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", - "dev": true - }, - "node_modules/postcss/node_modules/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, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss/node_modules/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, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss/node_modules/chalk/node_modules/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, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss/node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss/node_modules/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, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "devOptional": true - }, - "node_modules/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, - "dependencies": { - "asap": "~2.0.3" - } - }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", - "dev": true - }, - "node_modules/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, - "dependencies": { - "err-code": "^1.0.0", - "retry": "^0.10.0" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/promise-retry/node_modules/retry": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", - "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/protoduck": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/protoduck/-/protoduck-5.0.1.tgz", - "integrity": "sha512-WxoCeDCoCBY55BMvj4cAEjdVUFGRWed9ZxPlqTKYyw1nDDTQ4pqmnIMAGfJlg7Dx35uB/M+PHJPTmGOvaCaPTg==", - "dev": true, - "dependencies": { - "genfun": "^5.0.0" - } - }, - "node_modules/protractor": { - "version": "5.4.4", - "resolved": "https://registry.npmjs.org/protractor/-/protractor-5.4.4.tgz", - "integrity": "sha512-BaL4vePgu3Vfa/whvTUAlgaCAId4uNSGxIFSCXMgj7LMYENPWLp85h5RBi9pdpX/bWQ8SF6flP7afmi2TC4eHw==", - "optional": true, - "dependencies": { - "@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", - "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", - "yargs": "^12.0.5" - }, - "bin": { - "protractor": "bin/protractor", - "webdriver-manager": "bin/webdriver-manager" - }, - "engines": { - "node": ">=6.9.x" - } - }, - "node_modules/protractor/node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "optional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/protractor/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/protractor/node_modules/cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", - "optional": true, - "dependencies": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - } - }, - "node_modules/protractor/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "optional": true, - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/protractor/node_modules/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==", - "optional": true - }, - "node_modules/protractor/node_modules/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=", - "optional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/protractor/node_modules/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=", - "optional": true - }, - "node_modules/protractor/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "optional": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/protractor/node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "optional": true, - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/protractor/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "optional": true, - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/protractor/node_modules/webdriver-manager": { - "version": "12.1.8", - "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.8.tgz", - "integrity": "sha512-qJR36SXG2VwKugPcdwhaqcLQOD7r8P2Xiv9sfNbfZrKBnX243iAkOueX1yAmeNgIKhJ3YAT/F2gq6IiEZzahsg==", - "optional": true, - "dependencies": { - "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" - }, - "bin": { - "webdriver-manager": "bin/webdriver-manager" - }, - "engines": { - "node": ">=6.9.x" - } - }, - "node_modules/protractor/node_modules/wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "optional": true, - "dependencies": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/protractor/node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/protractor/node_modules/wrap-ansi/node_modules/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=", - "optional": true, - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/protractor/node_modules/wrap-ansi/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "optional": true, - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/protractor/node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "optional": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/protractor/node_modules/yargs": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", - "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", - "optional": true, - "dependencies": { - "cliui": "^4.0.0", - "decamelize": "^1.2.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": "^11.1.1" - } - }, - "node_modules/protractor/node_modules/yargs-parser": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", - "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", - "optional": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "node_modules/proxy-addr": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", - "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", - "dev": true, - "dependencies": { - "forwarded": "~0.1.2", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true - }, - "node_modules/psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "devOptional": true - }, - "node_modules/public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, - "dependencies": { - "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" - } - }, - "node_modules/public-encrypt/node_modules/bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "devOptional": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dev": true, - "dependencies": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - } - }, - "node_modules/pumpify/node_modules/pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "devOptional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/q": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", - "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=", - "optional": true, - "engines": { - "node": ">=0.6.0", - "teleport": ">=0.2.0" - } - }, - "node_modules/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, - "engines": { - "node": ">=0.9" - } - }, - "node_modules/qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "devOptional": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/query-string": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", - "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", - "dev": true, - "dependencies": { - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true, - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true, - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", - "dev": true - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/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, - "dependencies": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "node_modules/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, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/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, - "dependencies": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/raw-body/node_modules/bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/raw-loader": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-3.1.0.tgz", - "integrity": "sha512-lzUVMuJ06HF4rYveaz9Tv0WRlUMxJ0Y1hgSkkgg+50iEdaI0TthyEDe08KIHb0XsF6rn8WYTqPCaGTZg3sX+qA==", - "dev": true, - "dependencies": { - "loader-utils": "^1.1.0", - "schema-utils": "^2.0.1" - }, - "engines": { - "node": ">= 8.9.0" - } - }, - "node_modules/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, - "dependencies": { - "pify": "^2.3.0" - } - }, - "node_modules/read-package-json": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.2.tgz", - "integrity": "sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA==", - "dev": true, - "dependencies": { - "glob": "^7.1.1", - "json-parse-even-better-errors": "^2.3.0", - "normalize-package-data": "^2.0.0", - "npm-normalize-package-bin": "^1.0.0" - } - }, - "node_modules/read-package-tree": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/read-package-tree/-/read-package-tree-5.3.1.tgz", - "integrity": "sha512-mLUDsD5JVtlZxjSlPPx1RETkNjjvQYuweKwNVt1Sn8kP5Jh44pvYuUHCp6xSVDZWbNxVxG5lyZJ921aJH61sTw==", - "dev": true, - "dependencies": { - "read-package-json": "^2.0.0", - "readdir-scoped-modules": "^1.0.0", - "util-promisify": "^2.1.0" - } - }, - "node_modules/read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "optional": true, - "dependencies": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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=", - "optional": true, - "dependencies": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "devOptional": true, - "dependencies": { - "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" - } - }, - "node_modules/readdir-scoped-modules": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz", - "integrity": "sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==", - "dev": true, - "dependencies": { - "debuglog": "^1.0.1", - "dezalgo": "^1.0.0", - "graceful-fs": "^4.1.2", - "once": "^1.3.0" - } - }, - "node_modules/readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/redent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", - "optional": true, - "dependencies": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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 - }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true - }, - "node_modules/regenerate-unicode-properties": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", - "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", - "dev": true, - "dependencies": { - "regenerate": "^1.4.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.13.3", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", - "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==", - "dev": true - }, - "node_modules/regenerator-transform": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", - "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, - "node_modules/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, - "dependencies": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/regexp.prototype.flags": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", - "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/regexpu-core": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz", - "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==", - "dev": true, - "dependencies": { - "regenerate": "^1.4.0", - "regenerate-unicode-properties": "^8.2.0", - "regjsgen": "^0.5.1", - "regjsparser": "^0.6.4", - "unicode-match-property-ecmascript": "^1.0.4", - "unicode-match-property-value-ecmascript": "^1.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regjsgen": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", - "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", - "dev": true - }, - "node_modules/regjsparser": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.6.tgz", - "integrity": "sha512-jjyuCp+IEMIm3N1H1LLTJW1EISEJV9+5oHdEyrt43Pg9cDSb6rrLZei2cVWpl0xTjmmlpec/lEQGYgM7xfpGCQ==", - "dev": true, - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/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 - }, - "node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "optional": true, - "dependencies": { - "is-finite": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "devOptional": true, - "dependencies": { - "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.3", - "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.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "devOptional": true - }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", - "dev": true - }, - "node_modules/resolve": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", - "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", - "devOptional": true, - "dependencies": { - "is-core-module": "^2.1.0", - "path-parse": "^1.0.6" - } - }, - "node_modules/resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", - "dev": true, - "dependencies": { - "resolve-from": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/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 - }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/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, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rfdc": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.1.4.tgz", - "integrity": "sha512-5C9HXdzK8EAqN7JDif30jqsBzavB7wLpaubisuQIGHWf2gUXSpzy6ArX/+Da8RjFpagWsCn+pIgxTMAmKw9Zug==", - "dev": true - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "devOptional": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "node_modules/run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/run-parallel": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz", - "integrity": "sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==", - "dev": true - }, - "node_modules/run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", - "dev": true, - "dependencies": { - "aproba": "^1.1.1" - } - }, - "node_modules/rxjs": { - "version": "6.6.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", - "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/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==" - }, - "node_modules/safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, - "dependencies": { - "ret": "~0.1.10" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "devOptional": true - }, - "node_modules/sass": { - "version": "1.22.9", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.22.9.tgz", - "integrity": "sha512-FzU1X2V8DlnqabrL4u7OBwD2vcOzNMongEJEx3xMEhWY/v26FFR3aG0hyeu2T965sfR0E9ufJwmG+Qjz78vFPQ==", - "dev": true, - "dependencies": { - "chokidar": ">=2.0.0 <4.0.0" - }, - "bin": { - "sass": "sass.js" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/sass-graph": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.5.tgz", - "integrity": "sha512-VFWDAHOe6mRuT4mZRd4eKE+d8Uedrk6Xnh7Sh9b4NGufQLQjOrvf/MQoOdx+0s92L89FeyUUNfU597j/3uNpag==", - "optional": true, - "dependencies": { - "glob": "^7.0.0", - "lodash": "^4.0.0", - "scss-tokenizer": "^0.2.3", - "yargs": "^13.3.2" - } - }, - "node_modules/sass-loader": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-7.2.0.tgz", - "integrity": "sha512-h8yUWaWtsbuIiOCgR9fd9c2lRXZ2uG+h8Dzg/AGNj+Hg/3TO8+BBAW9mEP+mh8ei+qBKqSJ0F1FLlYjNBc61OA==", - "dev": true, - "dependencies": { - "clone-deep": "^4.0.1", - "loader-utils": "^1.0.1", - "neo-async": "^2.5.0", - "pify": "^4.0.1", - "semver": "^5.5.0" - }, - "engines": { - "node": ">= 6.9.0" - } - }, - "node_modules/sass-loader/node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/saucelabs": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.5.0.tgz", - "integrity": "sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==", - "optional": true, - "dependencies": { - "https-proxy-agent": "^2.2.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "optional": true - }, - "node_modules/schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 8.9.0" - } - }, - "node_modules/scss-tokenizer": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", - "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", - "optional": true, - "dependencies": { - "js-base64": "^2.1.8", - "source-map": "^0.4.2" - } - }, - "node_modules/select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", - "dev": true - }, - "node_modules/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==", - "optional": true, - "dependencies": { - "jszip": "^3.1.3", - "rimraf": "^2.5.4", - "tmp": "0.0.30", - "xml2js": "^0.4.17" - }, - "engines": { - "node": ">= 6.9.0" - } - }, - "node_modules/selenium-webdriver/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "optional": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/selfsigned": { - "version": "1.10.8", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.8.tgz", - "integrity": "sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w==", - "dev": true, - "dependencies": { - "node-forge": "^0.10.0" - } - }, - "node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "devOptional": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/semver-dsl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/semver-dsl/-/semver-dsl-1.0.1.tgz", - "integrity": "sha1-02eN5VVeimH2Ke7QJTZq5fJzQKA=", - "dev": true, - "dependencies": { - "semver": "^5.3.0" - } - }, - "node_modules/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, - "dependencies": { - "semver": "^5.0.0" - } - }, - "node_modules/send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", - "dev": true, - "dependencies": { - "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" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/send/node_modules/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 - }, - "node_modules/serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/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, - "dependencies": { - "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" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/serve-index/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/serve-index/node_modules/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, - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "node_modules/serve-index/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/serve-index/node_modules/setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true - }, - "node_modules/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, - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "devOptional": true - }, - "node_modules/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=", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true - }, - "node_modules/setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", - "dev": true - }, - "node_modules/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, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "node_modules/shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "optional": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", - "devOptional": true - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/smart-buffer": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz", - "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==", - "dev": true, - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/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, - "dependencies": { - "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" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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, - "dependencies": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/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, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/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, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/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, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/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, - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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, - "dependencies": { - "kind-of": "^3.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/snapdragon/node_modules/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, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/snapdragon/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/socket.io": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.4.1.tgz", - "integrity": "sha512-Si18v0mMXGAqLqCVpTxBa8MGqriHGQh8ccEOhmsmNS3thNCGBwO8WGrwMibANsWtQQ5NStdZwHqZR3naJVFc3w==", - "dev": true, - "dependencies": { - "debug": "~4.1.0", - "engine.io": "~3.5.0", - "has-binary2": "~1.0.2", - "socket.io-adapter": "~1.1.0", - "socket.io-client": "2.4.0", - "socket.io-parser": "~3.4.0" - } - }, - "node_modules/socket.io-adapter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz", - "integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==", - "dev": true - }, - "node_modules/socket.io-client": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.4.0.tgz", - "integrity": "sha512-M6xhnKQHuuZd4Ba9vltCLT9oa+YvTsP8j9NcEiLElfIg8KeYPyhWOes6x4t+LTAC8enQbE/995AdTem2uNyKKQ==", - "dev": true, - "dependencies": { - "backo2": "1.0.2", - "component-bind": "1.0.0", - "component-emitter": "~1.3.0", - "debug": "~3.1.0", - "engine.io-client": "~3.5.0", - "has-binary2": "~1.0.2", - "indexof": "0.0.1", - "parseqs": "0.0.6", - "parseuri": "0.0.6", - "socket.io-parser": "~3.3.0", - "to-array": "0.1.4" - } - }, - "node_modules/socket.io-client/node_modules/debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/socket.io-client/node_modules/isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", - "dev": true - }, - "node_modules/socket.io-client/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/socket.io-client/node_modules/socket.io-parser": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.2.tgz", - "integrity": "sha512-FJvDBuOALxdCI9qwRrO/Rfp9yfndRtc1jSgVgV8FDraihmSP/MLGD5PEuJrNfjALvcQ+vMDM/33AWOYP/JSjDg==", - "dev": true, - "dependencies": { - "component-emitter": "~1.3.0", - "debug": "~3.1.0", - "isarray": "2.0.1" - } - }, - "node_modules/socket.io-parser": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.1.tgz", - "integrity": "sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A==", - "dev": true, - "dependencies": { - "component-emitter": "1.2.1", - "debug": "~4.1.0", - "isarray": "2.0.1" - } - }, - "node_modules/socket.io-parser/node_modules/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 - }, - "node_modules/socket.io-parser/node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/socket.io-parser/node_modules/isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", - "dev": true - }, - "node_modules/socket.io/node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/sockjs": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.20.tgz", - "integrity": "sha512-SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA==", - "dev": true, - "dependencies": { - "faye-websocket": "^0.10.0", - "uuid": "^3.4.0", - "websocket-driver": "0.6.5" - } - }, - "node_modules/sockjs-client": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz", - "integrity": "sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==", - "dev": true, - "dependencies": { - "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" - } - }, - "node_modules/sockjs-client/node_modules/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, - "dependencies": { - "websocket-driver": ">=0.5.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/socks": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.3.3.tgz", - "integrity": "sha512-o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA==", - "dev": true, - "dependencies": { - "ip": "1.1.5", - "smart-buffer": "^4.1.0" - }, - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/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, - "dependencies": { - "agent-base": "~4.2.1", - "socks": "~2.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/socks-proxy-agent/node_modules/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, - "dependencies": { - "es6-promisify": "^5.0.0" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/sort-keys": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", - "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", - "dev": true, - "dependencies": { - "is-plain-obj": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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 - }, - "node_modules/source-map": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "devOptional": true, - "dependencies": { - "amdefine": ">=0.0.4" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/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, - "dependencies": { - "async": "^2.5.0", - "loader-utils": "^1.1.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "dev": true, - "dependencies": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "node_modules/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==", - "optional": true, - "dependencies": { - "source-map": "^0.5.6" - } - }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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 - }, - "node_modules/sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "dev": true - }, - "node_modules/spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "devOptional": true, - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "devOptional": true - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "devOptional": true, - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", - "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", - "devOptional": true - }, - "node_modules/spdy": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", - "dev": true, - "dependencies": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/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, - "dependencies": { - "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" - } - }, - "node_modules/spdy-transport/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/spdy-transport/node_modules/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 - }, - "node_modules/spdy-transport/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/spdy/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/spdy/node_modules/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 - }, - "node_modules/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, - "dependencies": { - "chalk": "^2.0.1" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/speed-measure-webpack-plugin/node_modules/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, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/speed-measure-webpack-plugin/node_modules/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, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/speed-measure-webpack-plugin/node_modules/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, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/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, - "dependencies": { - "extend-shallow": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "devOptional": true - }, - "node_modules/sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "devOptional": true, - "dependencies": { - "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" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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, - "dependencies": { - "figgy-pudding": "^3.5.1" - } - }, - "node_modules/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, - "dependencies": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/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, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/stdout-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", - "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", - "optional": true, - "dependencies": { - "readable-stream": "^2.0.1" - } - }, - "node_modules/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, - "dependencies": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, - "node_modules/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, - "dependencies": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" - } - }, - "node_modules/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, - "dependencies": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "node_modules/stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", - "dev": true - }, - "node_modules/streamroller": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-2.2.4.tgz", - "integrity": "sha512-OG79qm3AujAM9ImoqgWEY1xG4HX+Lw+yY6qZj9R1K2mhF5bEmQ849wvrb+4vt4jLMLzwXttJlQbOdPOQVRv7DQ==", - "dev": true, - "dependencies": { - "date-format": "^2.1.0", - "debug": "^4.1.1", - "fs-extra": "^8.1.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/streamroller/node_modules/date-format": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-2.1.0.tgz", - "integrity": "sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/streamroller/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/streamroller/node_modules/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 - }, - "node_modules/strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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==", - "devOptional": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "optional": true, - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz", - "integrity": "sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz", - "integrity": "sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" - } - }, - "node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "devOptional": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "optional": true, - "dependencies": { - "is-utf8": "^0.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", - "optional": true, - "dependencies": { - "get-stdin": "^4.0.1" - }, - "bin": { - "strip-indent": "cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/style-loader": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-1.0.0.tgz", - "integrity": "sha512-B0dOCFwv7/eY31a5PCieNwMgMhVGFe9w+rh7s/Bx8kfFkrth9zfTZquoYvdw8URgiqxObQKcpW51Ugz1HjfdZw==", - "dev": true, - "dependencies": { - "loader-utils": "^1.2.3", - "schema-utils": "^2.0.1" - }, - "engines": { - "node": ">= 8.9.0" - } - }, - "node_modules/stylus": { - "version": "0.54.5", - "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.54.5.tgz", - "integrity": "sha1-QrlWCTHKcJDOhRWnmLqeaqPW3Hk=", - "dev": true, - "dependencies": { - "css-parse": "1.7.x", - "debug": "*", - "glob": "7.0.x", - "mkdirp": "0.5.x", - "sax": "0.5.x", - "source-map": "0.1.x" - }, - "bin": { - "stylus": "bin/stylus" - }, - "engines": { - "node": "*" - } - }, - "node_modules/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, - "dependencies": { - "loader-utils": "^1.0.2", - "lodash.clonedeep": "^4.5.0", - "when": "~3.6.x" - } - }, - "node_modules/stylus/node_modules/glob": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz", - "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=", - "dev": true, - "dependencies": { - "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" - }, - "engines": { - "node": "*" - } - }, - "node_modules/stylus/node_modules/sax": { - "version": "0.5.8", - "resolved": "https://registry.npmjs.org/sax/-/sax-0.5.8.tgz", - "integrity": "sha1-1HLbIo6zMcJQaw6MFVJK25OdEsE=", - "dev": true - }, - "node_modules/stylus/node_modules/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, - "dependencies": { - "amdefine": ">=0.0.4" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "optional": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/tar": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.0.tgz", - "integrity": "sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA==", - "devOptional": true, - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/tar/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "devOptional": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.3.tgz", - "integrity": "sha512-Lw+ieAXmY69d09IIc/yqeBqXpEQIpDGZqT34ui1QWXIUpR2RjbqEkT8X7Lgex19hslSqcWM5iMN2kM11eMsESQ==", - "dev": true, - "dependencies": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/terser-webpack-plugin": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-3.0.3.tgz", - "integrity": "sha512-bZFnotuIKq5Rqzrs+qIwFzGdKdffV9epG5vDSEbYzvKAhPeR5RbbrQysfPgbIIMhNAQtZD2hGwBfSKUXjXZZZw==", - "dev": true, - "dependencies": { - "cacache": "^15.0.4", - "find-cache-dir": "^3.3.1", - "jest-worker": "^26.0.0", - "p-limit": "^2.3.0", - "schema-utils": "^2.6.6", - "serialize-javascript": "^3.1.0", - "source-map": "^0.6.1", - "terser": "^4.6.13", - "webpack-sources": "^1.4.3" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/terser-webpack-plugin/node_modules/cacache": { - "version": "15.0.5", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.5.tgz", - "integrity": "sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A==", - "dev": true, - "dependencies": { - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.0", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/terser-webpack-plugin/node_modules/find-cache-dir": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", - "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", - "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/terser-webpack-plugin/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/terser-webpack-plugin/node_modules/jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/terser-webpack-plugin/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser-webpack-plugin/node_modules/serialize-javascript": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.1.0.tgz", - "integrity": "sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg==", - "dev": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/terser-webpack-plugin/node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/terser-webpack-plugin/node_modules/source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/terser-webpack-plugin/node_modules/ssri": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.0.tgz", - "integrity": "sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA==", - "dev": true, - "dependencies": { - "minipass": "^3.1.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/terser-webpack-plugin/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/terser-webpack-plugin/node_modules/terser": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", - "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", - "dev": true, - "dependencies": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/terser/node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/terser/node_modules/source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", - "dev": true - }, - "node_modules/timers-browserify": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", - "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", - "dev": true, - "dependencies": { - "setimmediate": "^1.0.4" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/tmp": { - "version": "0.0.30", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", - "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=", - "optional": true, - "dependencies": { - "os-tmpdir": "~1.0.1" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/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 - }, - "node_modules/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 - }, - "node_modules/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, - "engines": { - "node": ">=4" - } - }, - "node_modules/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, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-object-path/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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, - "dependencies": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "devOptional": true, - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/tree-kill": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", - "dev": true, - "bin": { - "tree-kill": "cli.js" - } - }, - "node_modules/trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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==", - "optional": true, - "dependencies": { - "glob": "^7.1.2" - } - }, - "node_modules/ts-node": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.4.1.tgz", - "integrity": "sha512-5LpRN+mTiCs7lI5EtbXmF/HfMeCjzt7DH9CZwtkr6SywStrNQC723wG+aOWFiLNn7zT3kD/RnFqi3ZUfr4l5Qw==", - "optional": true, - "dependencies": { - "arg": "^4.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "source-map-support": "^0.5.6", - "yn": "^3.0.0" - }, - "bin": { - "ts-node": "dist/bin.js" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/ts-node/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ts-node/node_modules/source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", - "optional": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/tslint": { - "version": "5.20.1", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.20.1.tgz", - "integrity": "sha512-EcMxhzCFt8k+/UP5r8waCf/lzmeSyVlqxqMEDQE7rWYiQky8KpIBz1JAoYXfROHrPZ1XXd43q8yQnULOLiBRQg==", - "optional": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "builtin-modules": "^1.1.1", - "chalk": "^2.3.0", - "commander": "^2.12.1", - "diff": "^4.0.1", - "glob": "^7.1.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", - "resolve": "^1.3.2", - "semver": "^5.3.0", - "tslib": "^1.8.0", - "tsutils": "^2.29.0" - }, - "bin": { - "tslint": "bin/tslint" - }, - "engines": { - "node": ">=4.8.0" - } - }, - "node_modules/tslint/node_modules/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==", - "optional": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/tslint/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "optional": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/tslint/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "optional": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/tsutils": { - "version": "2.29.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", - "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", - "optional": true, - "dependencies": { - "tslib": "^1.8.1" - } - }, - "node_modules/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 - }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "devOptional": true, - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "devOptional": true - }, - "node_modules/type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/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, - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, - "node_modules/typescript": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.5.3.tgz", - "integrity": "sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/ua-parser-js": { - "version": "0.7.22", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.22.tgz", - "integrity": "sha512-YUxzMjJ5T71w6a8WWVcMGM6YWOTX27rCoIQgLXiWaxqXSx9D7DNjiGWn1aJIRSQ5qr0xuhra77bSIh6voR/46Q==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", - "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", - "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", - "dev": true, - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^1.0.4", - "unicode-property-aliases-ecmascript": "^1.0.4" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", - "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", - "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dev": true, - "dependencies": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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, - "dependencies": { - "unique-slug": "^2.0.0" - } - }, - "node_modules/unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4" - } - }, - "node_modules/universal-analytics": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/universal-analytics/-/universal-analytics-0.4.23.tgz", - "integrity": "sha512-lgMIH7XBI6OgYn1woDEmxhGdj8yDefMKg7GkWdeATAlQZFrMrNyxSkpDzY57iY0/6fdlzTbBV03OawvvzG+q7A==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "request": "^2.88.2", - "uuid": "^3.0.0" - } - }, - "node_modules/universal-analytics/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/universal-analytics/node_modules/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 - }, - "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/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, - "dependencies": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/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, - "dependencies": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "dependencies": { - "isarray": "1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "dev": true, - "engines": { - "node": ">=4", - "yarn": "*" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "devOptional": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true - }, - "node_modules/url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dev": true, - "dependencies": { - "punycode": "1.3.2", - "querystring": "0.2.0" - } - }, - "node_modules/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, - "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "node_modules/url/node_modules/punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - }, - "node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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, - "dependencies": { - "inherits": "2.0.3" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "devOptional": true - }, - "node_modules/util-promisify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/util-promisify/-/util-promisify-2.1.0.tgz", - "integrity": "sha1-PCI2R2xNMsX/PEcAKt18E7moKlM=", - "dev": true, - "dependencies": { - "object.getownpropertydescriptors": "^2.0.3" - } - }, - "node_modules/util/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "devOptional": true, - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/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==", - "devOptional": true, - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/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, - "dependencies": { - "builtins": "^1.0.3" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "devOptional": true, - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "node_modules/vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", - "dev": true - }, - "node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", - "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", - "dev": true, - "dependencies": { - "chokidar": "^3.4.1", - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0", - "watchpack-chokidar2": "^2.0.1" - }, - "optionalDependencies": { - "watchpack-chokidar2": "^2.0.1" - } - }, - "node_modules/watchpack-chokidar2": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", - "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", - "dev": true, - "optional": true, - "dependencies": { - "chokidar": "^2.1.8" - } - }, - "node_modules/watchpack-chokidar2/node_modules/anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "optional": true, - "dependencies": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "node_modules/watchpack-chokidar2/node_modules/anymatch/node_modules/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, - "optional": true, - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "optional": true, - "dependencies": { - "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" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "optional": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "dev": true, - "optional": true, - "dependencies": { - "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" - } - }, - "node_modules/watchpack-chokidar2/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "optional": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "optional": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "dependencies": { - "nan": "^2.12.1" - }, - "engines": { - "node": ">= 4.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "optional": true, - "dependencies": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/glob-parent/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "optional": true, - "dependencies": { - "is-extglob": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/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, - "optional": true, - "dependencies": { - "binary-extensions": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "optional": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "optional": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "optional": true, - "dependencies": { - "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" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/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, - "optional": true, - "dependencies": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/watchpack-chokidar2/node_modules/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, - "optional": true, - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "dev": true, - "dependencies": { - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/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==", - "optional": true, - "dependencies": { - "@types/selenium-webdriver": "^3.0.0", - "selenium-webdriver": "^3.0.1" - }, - "engines": { - "node": ">=6.9.x" - } - }, - "node_modules/webpack": { - "version": "4.39.2", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.39.2.tgz", - "integrity": "sha512-AKgTfz3xPSsEibH00JfZ9sHXGUwIQ6eZ9tLN8+VLzachk1Cw2LVmy+4R7ZiwTa9cZZ15tzySjeMui/UnSCAZhA==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-module-context": "1.8.5", - "@webassemblyjs/wasm-edit": "1.8.5", - "@webassemblyjs/wasm-parser": "1.8.5", - "acorn": "^6.2.1", - "ajv": "^6.10.2", - "ajv-keywords": "^3.4.1", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^4.1.0", - "eslint-scope": "^4.0.3", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.4.0", - "loader-utils": "^1.2.3", - "memory-fs": "^0.4.1", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.1", - "neo-async": "^2.6.1", - "node-libs-browser": "^2.2.1", - "schema-utils": "^1.0.0", - "tapable": "^1.1.3", - "terser-webpack-plugin": "^1.4.1", - "watchpack": "^1.6.0", - "webpack-sources": "^1.4.1" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=6.11.5" - } - }, - "node_modules/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, - "dependencies": { - "source-list-map": "~0.1.7", - "source-map": "~0.4.1" - }, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/webpack-core/node_modules/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 - }, - "node_modules/webpack-dev-middleware": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz", - "integrity": "sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw==", - "dev": true, - "dependencies": { - "memory-fs": "^0.4.1", - "mime": "^2.4.4", - "mkdirp": "^0.5.1", - "range-parser": "^1.2.1", - "webpack-log": "^2.0.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/webpack-dev-middleware/node_modules/mime": { - "version": "2.4.7", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.7.tgz", - "integrity": "sha512-dhNd1uA2u397uQk3Nv5LM4lm93WYDUXFn3Fu291FJerns4jyTudqhIWe4W04YLy7Uk1tm1Ore04NpjRvQp/NPA==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/webpack-dev-server": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz", - "integrity": "sha512-PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg==", - "dev": true, - "dependencies": { - "ansi-html": "0.0.7", - "bonjour": "^3.5.0", - "chokidar": "^2.1.8", - "compression": "^1.7.4", - "connect-history-api-fallback": "^1.6.0", - "debug": "^4.1.1", - "del": "^4.1.1", - "express": "^4.17.1", - "html-entities": "^1.3.1", - "http-proxy-middleware": "0.19.1", - "import-local": "^2.0.0", - "internal-ip": "^4.3.0", - "ip": "^1.1.5", - "is-absolute-url": "^3.0.3", - "killable": "^1.0.1", - "loglevel": "^1.6.8", - "opn": "^5.5.0", - "p-retry": "^3.0.1", - "portfinder": "^1.0.26", - "schema-utils": "^1.0.0", - "selfsigned": "^1.10.7", - "semver": "^6.3.0", - "serve-index": "^1.9.1", - "sockjs": "0.3.20", - "sockjs-client": "1.4.0", - "spdy": "^4.0.2", - "strip-ansi": "^3.0.1", - "supports-color": "^6.1.0", - "url": "^0.11.0", - "webpack-dev-middleware": "^3.7.2", - "webpack-log": "^2.0.0", - "ws": "^6.2.1", - "yargs": "^13.3.2" - }, - "bin": { - "webpack-dev-server": "bin/webpack-dev-server.js" - }, - "engines": { - "node": ">= 6.11.5" - } - }, - "node_modules/webpack-dev-server/node_modules/anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "dependencies": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "node_modules/webpack-dev-server/node_modules/anymatch/node_modules/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, - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "dependencies": { - "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" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "dev": true, - "dependencies": { - "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" - }, - "optionalDependencies": { - "fsevents": "^1.2.7" - } - }, - "node_modules/webpack-dev-server/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/webpack-dev-server/node_modules/del": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", - "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", - "dev": true, - "dependencies": { - "@types/glob": "^7.1.1", - "globby": "^6.1.0", - "is-path-cwd": "^2.0.0", - "is-path-in-cwd": "^2.0.0", - "p-map": "^2.0.0", - "pify": "^4.0.1", - "rimraf": "^2.6.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-server/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "dependencies": { - "nan": "^2.12.1" - }, - "engines": { - "node": ">= 4.0" - } - }, - "node_modules/webpack-dev-server/node_modules/glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "dependencies": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - } - }, - "node_modules/webpack-dev-server/node_modules/glob-parent/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", - "dev": true, - "dependencies": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/globby/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/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, - "dependencies": { - "binary-extensions": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-server/node_modules/is-path-in-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", - "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", - "dev": true, - "dependencies": { - "is-path-inside": "^2.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-server/node_modules/is-path-inside": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", - "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", - "dev": true, - "dependencies": { - "path-is-inside": "^1.0.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-server/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "dependencies": { - "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" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/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 - }, - "node_modules/webpack-dev-server/node_modules/p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-server/node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-server/node_modules/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, - "dependencies": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/webpack-dev-server/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/webpack-dev-server/node_modules/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, - "dependencies": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/webpack-dev-server/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/webpack-dev-server/node_modules/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, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-server/node_modules/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, - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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, - "dependencies": { - "ansi-colors": "^3.0.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/webpack-merge": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.1.tgz", - "integrity": "sha512-4p8WQyS98bUJcCvFMbdGZyZmsKuWjWVnVHnAS3FFg0HDaRVrPbkivx2RYCre8UiemD67RsiFFLfn4JhLAin8Vw==", - "dev": true, - "dependencies": { - "lodash": "^4.17.5" - } - }, - "node_modules/webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "dev": true, - "dependencies": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - }, - "node_modules/webpack-sources/node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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, - "dependencies": { - "webpack-core": "^0.6.8" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "dependencies": { - "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" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/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, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack/node_modules/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, - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/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, - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "dependencies": { - "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" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack/node_modules/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, - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack/node_modules/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, - "dependencies": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/webpack/node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/terser-webpack-plugin": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", - "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", - "dev": true, - "dependencies": { - "cacache": "^12.0.2", - "find-cache-dir": "^2.1.0", - "is-wsl": "^1.1.0", - "schema-utils": "^1.0.0", - "serialize-javascript": "^4.0.0", - "source-map": "^0.6.1", - "terser": "^4.1.2", - "webpack-sources": "^1.4.0", - "worker-farm": "^1.7.0" - }, - "engines": { - "node": ">= 6.9.0" - } - }, - "node_modules/webpack/node_modules/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, - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/websocket-driver": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz", - "integrity": "sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY=", - "dev": true, - "dependencies": { - "websocket-extensions": ">=0.1.1" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/when": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/when/-/when-3.6.4.tgz", - "integrity": "sha1-RztRfsFZ4rhQBUl6E5g/CVQS404=", - "dev": true - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "optional": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "devOptional": true - }, - "node_modules/wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "optional": true, - "dependencies": { - "string-width": "^1.0.2 || 2" - } - }, - "node_modules/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, - "dependencies": { - "errno": "~0.1.7" - } - }, - "node_modules/worker-plugin": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/worker-plugin/-/worker-plugin-3.2.0.tgz", - "integrity": "sha512-W5nRkw7+HlbsEt3qRP6MczwDDISjiRj2GYt9+bpe8A2La00TmJdwzG5bpdMXhRt1qcWmwAvl1TiKaHRa+XDS9Q==", - "dev": true, - "dependencies": { - "loader-utils": "^1.1.0" - } - }, - "node_modules/wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "devOptional": true, - "dependencies": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "devOptional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/wrap-ansi/node_modules/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==", - "devOptional": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/wrap-ansi/node_modules/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=", - "devOptional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/wrap-ansi/node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "devOptional": true, - "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "devOptional": true, - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "devOptional": true - }, - "node_modules/ws": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", - "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", - "dev": true, - "dependencies": { - "async-limiter": "~1.0.0" - } - }, - "node_modules/xhr2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/xhr2/-/xhr2-0.1.4.tgz", - "integrity": "sha1-f4dliEdxbbUCYyOBL4GMras4el8=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", - "optional": true, - "dependencies": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", - "optional": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/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, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", - "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", - "devOptional": true - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "devOptional": true - }, - "node_modules/yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", - "devOptional": true, - "dependencies": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" - } - }, - "node_modules/yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "devOptional": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "node_modules/yargs-parser/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "devOptional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "devOptional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "devOptional": true, - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs/node_modules/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=", - "devOptional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/yargs/node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "devOptional": true, - "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "devOptional": true, - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yeast": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", - "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=", - "dev": true - }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/zone.js": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.9.1.tgz", - "integrity": "sha512-GkPiJL8jifSrKReKaTZ5jkhrMEgXbXYC+IPo1iquBjayRa0q86w3Dipjn8b415jpitMExe9lV8iTsv8tk3DGag==" - } - }, - "dependencies": { - "@angular-devkit/architect": { - "version": "0.803.29", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.803.29.tgz", - "integrity": "sha512-yHBud/fZHTelX24yjQg5lefZrfIebruoFTGeOwF0JdX8+KiHcTIxS4LOnUTYriasfHarcHRFXBAV/bRm+wv5ow==", - "dev": true, - "requires": { - "@angular-devkit/core": "8.3.29", - "rxjs": "6.4.0" - }, - "dependencies": { - "rxjs": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", - "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - } - } - }, - "@angular-devkit/build-angular": { - "version": "0.803.29", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.803.29.tgz", - "integrity": "sha512-XAgfP1gi0rEJ3oVt+8ipvS5RfPNbeK5r2n8Ll2H3xkKjU0p1PN8+S6/0XVBtmMfeQ06SJWEAKFcAYqrxXhVTzw==", - "dev": true, - "requires": { - "@angular-devkit/architect": "0.803.29", - "@angular-devkit/build-optimizer": "0.803.29", - "@angular-devkit/build-webpack": "0.803.29", - "@angular-devkit/core": "8.3.29", - "@babel/core": "7.8.7", - "@babel/preset-env": "7.8.7", - "@ngtools/webpack": "8.3.29", - "ajv": "6.12.3", - "autoprefixer": "9.6.1", - "browserslist": "4.10.0", - "cacache": "12.0.2", - "caniuse-lite": "1.0.30001035", - "circular-dependency-plugin": "5.2.0", - "clean-css": "4.2.1", - "copy-webpack-plugin": "6.0.3", - "core-js": "3.6.4", - "coverage-istanbul-loader": "2.0.3", - "file-loader": "4.2.0", - "find-cache-dir": "3.0.0", - "glob": "7.1.4", - "jest-worker": "24.9.0", - "karma-source-map-support": "1.4.0", - "less": "3.9.0", - "less-loader": "5.0.0", - "license-webpack-plugin": "2.1.2", - "loader-utils": "1.2.3", - "mini-css-extract-plugin": "0.8.0", - "minimatch": "3.0.4", - "open": "6.4.0", - "parse5": "4.0.0", - "postcss": "7.0.17", - "postcss-import": "12.0.1", - "postcss-loader": "3.0.0", - "raw-loader": "3.1.0", - "regenerator-runtime": "0.13.3", - "rxjs": "6.4.0", - "sass": "1.22.9", - "sass-loader": "7.2.0", - "semver": "6.3.0", - "source-map": "0.7.3", - "source-map-loader": "0.2.4", - "source-map-support": "0.5.13", - "speed-measure-webpack-plugin": "1.3.1", - "style-loader": "1.0.0", - "stylus": "0.54.5", - "stylus-loader": "3.0.2", - "terser": "4.6.3", - "terser-webpack-plugin": "3.0.3", - "tree-kill": "1.2.2", - "webpack": "4.39.2", - "webpack-dev-middleware": "3.7.2", - "webpack-dev-server": "3.11.0", - "webpack-merge": "4.2.1", - "webpack-sources": "1.4.3", - "webpack-subresource-integrity": "1.1.0-rc.6", - "worker-plugin": "3.2.0" - }, - "dependencies": { - "ajv": { - "version": "6.12.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", - "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "core-js": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.4.tgz", - "integrity": "sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw==", - "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" - } - }, - "rxjs": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", - "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "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-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", - "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 - } - } - } - } - }, - "@angular-devkit/build-optimizer": { - "version": "0.803.29", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.803.29.tgz", - "integrity": "sha512-E/MXtKc3oaP7UvQm0g4ayfH8ImEoQnRWseKD4jjYG6TbTIqfIyHCZRcKIr3svY28hzASbro5IZI6SugG+llvFw==", - "dev": true, - "requires": { - "loader-utils": "1.2.3", - "source-map": "0.7.3", - "tslib": "1.10.0", - "typescript": "3.5.3", - "webpack-sources": "1.4.3" - }, - "dependencies": { - "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 - }, - "tslib": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", - "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", - "dev": true - } - } - }, - "@angular-devkit/build-webpack": { - "version": "0.803.29", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.803.29.tgz", - "integrity": "sha512-3dJ3iEGU6AFT8VFTe72T9uNLobfd18Sq5Hz22UCCYji9K3ZyVc/bn5uXVVX+/Yj91MFtXuhOjLj7Z+XDeNy+OQ==", - "dev": true, - "requires": { - "@angular-devkit/architect": "0.803.29", - "@angular-devkit/core": "8.3.29", - "rxjs": "6.4.0" - }, - "dependencies": { - "rxjs": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", - "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - } - } - }, - "@angular-devkit/core": { - "version": "8.3.29", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-8.3.29.tgz", - "integrity": "sha512-4jdja9QPwR6XG14ZSunyyOWT3nE2WtZC5IMDIBZADxujXvhzOU0n4oWpy6/JVHLUAxYNNgzLz+/LQORRWndcPg==", - "dev": true, - "requires": { - "ajv": "6.12.3", - "fast-json-stable-stringify": "2.0.0", - "magic-string": "0.25.3", - "rxjs": "6.4.0", - "source-map": "0.7.3" - }, - "dependencies": { - "ajv": { - "version": "6.12.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", - "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "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 - }, - "rxjs": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", - "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "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 - } - } - }, - "@angular-devkit/schematics": { - "version": "8.3.29", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-8.3.29.tgz", - "integrity": "sha512-AFJ9EK0XbcNlO5Dm9vr0OlBo1Nw6AaFXPR+DmHGBdcDDHxqEmYYLWfT+JU/8U2YFIdgrtlwvdtf6UQ3V2jdz1g==", - "dev": true, - "requires": { - "@angular-devkit/core": "8.3.29", - "rxjs": "6.4.0" - }, - "dependencies": { - "rxjs": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", - "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - } - } - }, - "@angular/animations": { - "version": "8.2.12", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-8.2.12.tgz", - "integrity": "sha512-QVtZUw5J9c0RcDaJntIoeWVk/q9dhjDFxh+yw/uPl9Z4upWASdsOpZU2lfjqyU0myfg8dnQyZa1+Ce7n/DaClQ==", - "requires": { - "tslib": "^1.9.0" - } - }, - "@angular/cli": { - "version": "8.3.29", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-8.3.29.tgz", - "integrity": "sha512-pW+iU0eKHIae+A1b9W5g8DKefMQcehZ+drGKs4Hryh8G+XGFS00BIWkmh6c1mydWTEhdsFlhdjD/rXCem7MAQQ==", - "dev": true, - "requires": { - "@angular-devkit/architect": "0.803.29", - "@angular-devkit/core": "8.3.29", - "@angular-devkit/schematics": "8.3.29", - "@schematics/angular": "8.3.29", - "@schematics/update": "0.803.29", - "@yarnpkg/lockfile": "1.1.0", - "ansi-colors": "4.1.1", - "debug": "^4.1.1", - "ini": "1.3.5", - "inquirer": "6.5.1", - "npm-package-arg": "6.1.0", - "npm-pick-manifest": "3.0.2", - "open": "6.4.0", - "pacote": "9.5.5", - "read-package-tree": "5.3.1", - "rimraf": "3.0.0", - "semver": "6.3.0", - "symbol-observable": "1.2.0", - "universal-analytics": "^0.4.20", - "uuid": "^3.3.2" - }, - "dependencies": { - "ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true - }, - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", - "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 - }, - "rimraf": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.0.tgz", - "integrity": "sha512-NDGVxTsjqfunkds7CqsOiEnxln4Bo7Nddl3XhS4pXg5OzwkLqJ971ZVAAnB+DDLnF76N+VnDEiBHaVV8I06SUg==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "@angular/common": { - "version": "8.2.12", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-8.2.12.tgz", - "integrity": "sha512-BNz1lo+PP+lwIX3sErRGBRnkMzT5yT8CJ5o/M29AanCdcx9dpoJG2WKgpIgw8UBcj9QlP0CkSmzPtUNtcNMthA==", - "requires": { - "tslib": "^1.9.0" - } - }, - "@angular/compiler": { - "version": "8.2.12", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-8.2.12.tgz", - "integrity": "sha512-V5mDWioGmSZ4cJJ2THo8qHYKwj3sUI7dpJ0oab2Al0FQAN8JCimWO6AQKRtjmnr78ZkMy9Xe/KK6ebl40ewL5Q==", - "requires": { - "tslib": "^1.9.0" - } - }, - "@angular/compiler-cli": { - "version": "8.2.14", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-8.2.14.tgz", - "integrity": "sha512-XDrTyrlIZM+0NquVT+Kbg5bn48AaWFT+B3bAT288PENrTdkuxuF9AhjFRZj8jnMdmaE4O2rioEkXBtl6z3zptA==", - "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", - "source-map": "^0.6.1", - "tslib": "^1.9.0", - "yargs": "13.1.0" - }, - "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 - }, - "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" - }, - "dependencies": { - "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" - } - } - } - }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true - }, - "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" - } - } - } - }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "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" - } - }, - "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": { - "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" - } - } - } - }, - "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" - } - } - } - }, - "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" - } - }, - "fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "dev": true, - "optional": true, - "requires": { - "nan": "^2.12.1" - } - }, - "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" - } - } - } - }, - "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-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 - }, - "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" - } - } - } - }, - "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" - } - }, - "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" - } - }, - "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": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.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 - }, - "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" - } - } - } - }, - "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" - } - }, - "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" - } - }, - "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" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "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" - } - }, - "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" - } - }, - "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" - } - } - } - }, - "yargs": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.1.0.tgz", - "integrity": "sha512-1UhJbXfzHiPqkfXNHYhiz79qM/kZqjTE8yGlEjZa85Q+3+OwcV6NRkV7XOV1W2Eom2bzILeUn55pQYffjVOLAg==", - "dev": true, - "requires": { - "cliui": "^4.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "os-locale": "^3.1.0", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.0.0" - } - } - } - }, - "@angular/core": { - "version": "8.2.12", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-8.2.12.tgz", - "integrity": "sha512-wEFwhHCuuXynXAMeA1G+0KIYY0jqXYs7I8p+GO+ufKoUmzWHFTvtMJ6nvKgy+LmZTByO2gf9oVAAlRodNb8ttQ==", - "requires": { - "tslib": "^1.9.0" - } - }, - "@angular/forms": { - "version": "8.2.12", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-8.2.12.tgz", - "integrity": "sha512-y1UObndCGbTYwLSzUWzCiX7th+mb4n712asApooGmfmIQmgTyHbKxYUJ9Ep1pgd0pqLBBnK249MQLH15NDpbyQ==", - "requires": { - "tslib": "^1.9.0" - } - }, - "@angular/language-service": { - "version": "8.2.14", - "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-8.2.14.tgz", - "integrity": "sha512-7EhN9JJbAJcH2xCa+rIOmekjiEuB0qwPdHuD5qn/wwMfRzMZo+Db4hHbR9KHrLH6H82PTwYKye/LLpDaZqoHOA==", - "dev": true - }, - "@angular/platform-browser": { - "version": "8.2.12", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-8.2.12.tgz", - "integrity": "sha512-VBvMjmFJapZ2pFlmxZiHtfPwbHp79RRi5mrdMhETjKMaLaC2tAR/99ijCpx2urDMqb/VDm7YHOtoLEpBFVDulg==", - "requires": { - "tslib": "^1.9.0" - } - }, - "@angular/platform-browser-dynamic": { - "version": "8.2.12", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-8.2.12.tgz", - "integrity": "sha512-O4krb+9tj028JOQHPgLk/87lyUlHt8dpNxzuYCT0G6kEmknjpyZBaxhvDPygGjGHXV3LDqlYVH+bh8ygJUhwmw==", - "requires": { - "tslib": "^1.9.0" - } - }, - "@angular/platform-server": { - "version": "8.2.12", - "resolved": "https://registry.npmjs.org/@angular/platform-server/-/platform-server-8.2.12.tgz", - "integrity": "sha512-NQvfW3YnM2FBdNpfIAKBnGjit/ZimtWEt60xskoQ+GcusJIbsB6m78XTYZru1S7CBHW3TeUztKMNZmI2MjU6Cw==", - "requires": { - "domino": "^2.1.2", - "tslib": "^1.9.0", - "xhr2": "^0.1.4" - } - }, - "@angular/router": { - "version": "8.2.12", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-8.2.12.tgz", - "integrity": "sha512-mq1FethFpYosSVzChstMpxZlL+oUFeaA+FrzZQL7zJP/mm61yFkkhoYGVG6pG0NWSzpJE4NY6YvGCvHgN4ZECw==", - "requires": { - "tslib": "^1.9.0" - } - }, - "@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", - "devOptional": true, - "requires": { - "@babel/highlight": "^7.10.4" - } - }, - "@babel/compat-data": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.12.7.tgz", - "integrity": "sha512-YaxPMGs/XIWtYqrdEOZOCPsVWfEoriXopnsz3/i7apYPXQ3698UFhS6dVT1KN5qOsWmVgw/FOrmQgpRaZayGsw==", - "dev": true - }, - "@babel/core": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.7.tgz", - "integrity": "sha512-rBlqF3Yko9cynC5CCFy6+K/w2N+Sq/ff2BPy+Krp7rHlABIr5epbA7OxVeKoMHB39LZOp1UY5SuLjy6uWi35yA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.7", - "@babel/helpers": "^7.8.4", - "@babel/parser": "^7.8.7", - "@babel/template": "^7.8.6", - "@babel/traverse": "^7.8.6", - "@babel/types": "^7.8.7", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.0", - "lodash": "^4.17.13", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "json5": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "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 - }, - "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/generator": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.11.tgz", - "integrity": "sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA==", - "dev": true, - "requires": { - "@babel/types": "^7.12.11", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, - "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/helper-annotate-as-pure": { - "version": "7.12.10", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.10.tgz", - "integrity": "sha512-XplmVbC1n+KY6jL8/fgLVXXUauDIB+lD5+GsQEh6F6GBF1dq1qy4DP4yXWzDKcoqXB3X58t61e85Fitoww4JVQ==", - "dev": true, - "requires": { - "@babel/types": "^7.12.10" - } - }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz", - "integrity": "sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==", - "dev": true, - "requires": { - "@babel/helper-explode-assignable-expression": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.5.tgz", - "integrity": "sha512-+qH6NrscMolUlzOYngSBMIOQpKUGPPsc61Bu5W10mg84LxZ7cmvnBHzARKbDoFxVvqqAbj6Tg6N7bSrWSPXMyw==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.12.5", - "@babel/helper-validator-option": "^7.12.1", - "browserslist": "^4.14.5", - "semver": "^5.5.0" - }, - "dependencies": { - "browserslist": { - "version": "4.16.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.1.tgz", - "integrity": "sha512-UXhDrwqsNcpTYJBTZsbGATDxZbiVDsx6UjpmRUmtnP10pr8wAYr5LgFoEFw9ixriQH2mv/NX2SfGzE/o8GndLA==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001173", - "colorette": "^1.2.1", - "electron-to-chromium": "^1.3.634", - "escalade": "^3.1.1", - "node-releases": "^1.1.69" - } - }, - "caniuse-lite": { - "version": "1.0.30001174", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001174.tgz", - "integrity": "sha512-tqClL/4ThQq6cfFXH3oJL4rifFBeM6gTkphjao5kgwMaW9yn0tKgQLAEfKzDwj6HQWCB/aWo8kTFlSvIN8geEA==", - "dev": true - } - } - }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.7.tgz", - "integrity": "sha512-idnutvQPdpbduutvi3JVfEgcVIHooQnhvhx0Nk9isOINOIGYkZea1Pk2JlJRiUnMefrlvr0vkByATBY/mB4vjQ==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "regexpu-core": "^4.7.1" - } - }, - "@babel/helper-define-map": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz", - "integrity": "sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/types": "^7.10.5", - "lodash": "^4.17.19" - } - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.1.tgz", - "integrity": "sha512-dmUwH8XmlrUpVqgtZ737tK88v07l840z9j3OEhCLwKTkjlvKpfqXVIZ0wpK3aeOxspwGrf/5AP5qLx4rO3w5rA==", - "dev": true, - "requires": { - "@babel/types": "^7.12.1" - } - }, - "@babel/helper-function-name": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.11.tgz", - "integrity": "sha512-AtQKjtYNolKNi6nNNVLQ27CP6D9oFR6bq/HPYSizlzbp7uC1M59XJe8L+0uXjbIaZaUJF99ruHqVGiKXU/7ybA==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.12.10", - "@babel/template": "^7.12.7", - "@babel/types": "^7.12.11" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.12.10", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz", - "integrity": "sha512-mm0n5BPjR06wh9mPQaDdXWDoll/j5UpCAPl1x8fS71GHm7HA6Ua2V4ylG1Ju8lvcTOietbPNNPaSilKj+pj+Ag==", - "dev": true, - "requires": { - "@babel/types": "^7.12.10" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz", - "integrity": "sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==", - "dev": true, - "requires": { - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz", - "integrity": "sha512-DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw==", - "dev": true, - "requires": { - "@babel/types": "^7.12.7" - } - }, - "@babel/helper-module-imports": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz", - "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==", - "dev": true, - "requires": { - "@babel/types": "^7.12.5" - } - }, - "@babel/helper-module-transforms": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz", - "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.12.1", - "@babel/helper-replace-supers": "^7.12.1", - "@babel/helper-simple-access": "^7.12.1", - "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/helper-validator-identifier": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.12.1", - "@babel/types": "^7.12.1", - "lodash": "^4.17.19" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.12.10", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.10.tgz", - "integrity": "sha512-4tpbU0SrSTjjt65UMWSrUOPZTsgvPgGG4S8QSTNHacKzpS51IVWGDj0yCwyeZND/i+LSN2g/O63jEXEWm49sYQ==", - "dev": true, - "requires": { - "@babel/types": "^7.12.10" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", - "dev": true - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.1.tgz", - "integrity": "sha512-9d0KQCRM8clMPcDwo8SevNs+/9a8yWVVmaE80FGJcEP8N1qToREmWEGnBn8BUlJhYRFz6fqxeRL1sl5Ogsed7A==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-wrap-function": "^7.10.4", - "@babel/types": "^7.12.1" - } - }, - "@babel/helper-replace-supers": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.11.tgz", - "integrity": "sha512-q+w1cqmhL7R0FNzth/PLLp2N+scXEK/L2AHbXUyydxp828F4FEa5WcVoqui9vFRiHDQErj9Zof8azP32uGVTRA==", - "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.12.7", - "@babel/helper-optimise-call-expression": "^7.12.10", - "@babel/traverse": "^7.12.10", - "@babel/types": "^7.12.11" - } - }, - "@babel/helper-simple-access": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz", - "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==", - "dev": true, - "requires": { - "@babel/types": "^7.12.1" - } - }, - "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz", - "integrity": "sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==", - "dev": true, - "requires": { - "@babel/types": "^7.12.1" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.11.tgz", - "integrity": "sha512-LsIVN8j48gHgwzfocYUSkO/hjYAOJqlpJEc7tGXcIm4cubjVUf8LGW6eWRyxEu7gA25q02p0rQUWoCI33HNS5g==", - "dev": true, - "requires": { - "@babel/types": "^7.12.11" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", - "devOptional": true - }, - "@babel/helper-validator-option": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.11.tgz", - "integrity": "sha512-TBFCyj939mFSdeX7U7DDj32WtzYY7fDcalgq8v3fBZMNOJQNn7nOYzMaUCiPxPYfCup69mtIpqlKgMZLvQ8Xhw==", - "dev": true - }, - "@babel/helper-wrap-function": { - "version": "7.12.3", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.12.3.tgz", - "integrity": "sha512-Cvb8IuJDln3rs6tzjW3Y8UeelAOdnpB8xtQ4sme2MSZ9wOxrbThporC0y/EtE16VAtoyEfLM404Xr1e0OOp+ow==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "@babel/helpers": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz", - "integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==", - "dev": true, - "requires": { - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.12.5", - "@babel/types": "^7.12.5" - } - }, - "@babel/highlight": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", - "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", - "devOptional": true, - "requires": { - "@babel/helper-validator-identifier": "^7.10.4", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "dependencies": { - "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==", - "devOptional": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "devOptional": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "devOptional": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@babel/parser": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.11.tgz", - "integrity": "sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg==", - "dev": true - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.12.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.12.tgz", - "integrity": "sha512-nrz9y0a4xmUrRq51bYkWJIO5SBZyG2ys2qinHsN0zHDHVsUaModrkpyWWWXfGqYQmOL3x9sQIcTNN/pBGpo09A==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-remap-async-to-generator": "^7.12.1", - "@babel/plugin-syntax-async-generators": "^7.8.0" - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.1.tgz", - "integrity": "sha512-a4rhUSZFuq5W8/OO8H7BL5zspjnc1FLd9hlOxIK/f7qG4a0qsqk8uvF/ywgBA8/OmjsapjpvaEOYItfGG1qIvQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-dynamic-import": "^7.8.0" - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.1.tgz", - "integrity": "sha512-GoLDUi6U9ZLzlSda2Df++VSqDJg3CG+dR0+iWsv6XRw1rEq+zwt4DirM9yrxW6XWaTpmai1cWJLMfM8qQJf+yw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.0" - } - }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz", - "integrity": "sha512-nZY0ESiaQDI1y96+jk6VxMOaL4LPo/QDHBqL+SF3/vl6dHkTwHlOI8L4ZwuRBHgakRBw5zsVylel7QPbbGuYgg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz", - "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-transform-parameters": "^7.12.1" - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.1.tgz", - "integrity": "sha512-hFvIjgprh9mMw5v42sJWLI1lzU5L2sznP805zeT6rySVRA0Y18StRhDqhSxlap0oVgItRsB6WSROp4YnJTJz0g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.7.tgz", - "integrity": "sha512-4ovylXZ0PWmwoOvhU2vhnzVNnm88/Sm9nx7V8BPgMvAzn5zDou3/Awy0EjglyubVHasJj+XCEkr/r1X3P5elCA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", - "@babel/plugin-syntax-optional-chaining": "^7.8.0" - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.1.tgz", - "integrity": "sha512-MYq+l+PvHuw/rKUz1at/vb6nCnQ2gmJBNaM62z0OgH7B2W1D9pvkpYtlti9bGtizNIU1K3zm4bZF9F91efVY0w==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz", - "integrity": "sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.1.tgz", - "integrity": "sha512-5QB50qyN44fzzz4/qxDPQMBCTHgxg3n0xRBLJUmBlLoU/sFvxVWGZF/ZUfMVDQuJUKXaBhbupxIzIfZ6Fwk/0A==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz", - "integrity": "sha512-SDtqoEcarK1DFlRJ1hHRY5HvJUj5kX4qmtpMAm2QnhOlyuMC4TMdCRgW6WXpv93rZeYNeLP22y8Aq2dbcDRM1A==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-remap-async-to-generator": "^7.12.1" - } - }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.1.tgz", - "integrity": "sha512-5OpxfuYnSgPalRpo8EWGPzIYf0lHBWORCkj5M0oLBwHdlux9Ri36QqGW3/LR13RSVOAoUUMzoPI/jpE4ABcHoA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.12.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.12.tgz", - "integrity": "sha512-VOEPQ/ExOVqbukuP7BYJtI5ZxxsmegTwzZ04j1aF0dkSypGo9XpDHuOrABsJu+ie+penpSJheDJ11x1BEZNiyQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.1.tgz", - "integrity": "sha512-/74xkA7bVdzQTBeSUhLLJgYIcxw/dpEpCdRDiHgPJ3Mv6uC11UhjpOhl72CgqbBCmt1qtssCyB2xnJm1+PFjog==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-define-map": "^7.10.4", - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-replace-supers": "^7.12.1", - "@babel/helper-split-export-declaration": "^7.10.4", - "globals": "^11.1.0" - } - }, - "@babel/plugin-transform-computed-properties": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.1.tgz", - "integrity": "sha512-vVUOYpPWB7BkgUWPo4C44mUQHpTZXakEqFjbv8rQMg7TC6S6ZhGZ3otQcRH6u7+adSlE5i0sp63eMC/XGffrzg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-destructuring": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.1.tgz", - "integrity": "sha512-fRMYFKuzi/rSiYb2uRLiUENJOKq4Gnl+6qOv5f8z0TZXg3llUwUhsNNwrwaT/6dUhJTzNpBr+CUvEWBtfNY1cw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.1.tgz", - "integrity": "sha512-B2pXeRKoLszfEW7J4Hg9LoFaWEbr/kzo3teWHmtFCszjRNa/b40f9mfeqZsIDLLt/FjwQ6pz/Gdlwy85xNckBA==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.1.tgz", - "integrity": "sha512-iRght0T0HztAb/CazveUpUQrZY+aGKKaWXMJ4uf9YJtqxSUe09j3wteztCUDRHs+SRAL7yMuFqUsLoAKKzgXjw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.1.tgz", - "integrity": "sha512-7tqwy2bv48q+c1EHbXK0Zx3KXd2RVQp6OC7PbwFNt/dPTAV3Lu5sWtWuAj8owr5wqtWnqHfl2/mJlUmqkChKug==", - "dev": true, - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-for-of": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.1.tgz", - "integrity": "sha512-Zaeq10naAsuHo7heQvyV0ptj4dlZJwZgNAtBYBnu5nNKJoW62m0zKcIEyVECrUKErkUkg6ajMy4ZfnVZciSBhg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-function-name": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.1.tgz", - "integrity": "sha512-JF3UgJUILoFrFMEnOJLJkRHSk6LUSXLmEFsA23aR2O5CSLUxbeUX1IZ1YQ7Sn0aXb601Ncwjx73a+FVqgcljVw==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-literals": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.1.tgz", - "integrity": "sha512-+PxVGA+2Ag6uGgL0A5f+9rklOnnMccwEBzwYFL3EUaKuiyVnUipyXncFcfjSkbimLrODoqki1U9XxZzTvfN7IQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.1.tgz", - "integrity": "sha512-1sxePl6z9ad0gFMB9KqmYofk34flq62aqMt9NqliS/7hPEpURUCMbyHXrMPlo282iY7nAvUB1aQd5mg79UD9Jg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-modules-amd": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.1.tgz", - "integrity": "sha512-tDW8hMkzad5oDtzsB70HIQQRBiTKrhfgwC/KkJeGsaNFTdWhKNt/BiE8c5yj19XiGyrxpbkOfH87qkNg1YGlOQ==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.1.tgz", - "integrity": "sha512-dY789wq6l0uLY8py9c1B48V8mVL5gZh/+PQ5ZPrylPYsnAvnEMjqsUXkuoDVPeVK+0VyGar+D08107LzDQ6pag==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-simple-access": "^7.12.1", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.1.tgz", - "integrity": "sha512-Hn7cVvOavVh8yvW6fLwveFqSnd7rbQN3zJvoPNyNaQSvgfKmDBO9U1YL9+PCXGRlZD9tNdWTy5ACKqMuzyn32Q==", - "dev": true, - "requires": { - "@babel/helper-hoist-variables": "^7.10.4", - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-validator-identifier": "^7.10.4", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-umd": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.1.tgz", - "integrity": "sha512-aEIubCS0KHKM0zUos5fIoQm+AZUMt1ZvMpqz0/H5qAQ7vWylr9+PLYurT+Ic7ID/bKLd4q8hDovaG3Zch2uz5Q==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.1.tgz", - "integrity": "sha512-tB43uQ62RHcoDp9v2Nsf+dSM8sbNodbEicbQNA53zHz8pWUhsgHSJCGpt7daXxRydjb0KnfmB+ChXOv3oADp1Q==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.1" - } - }, - "@babel/plugin-transform-new-target": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.1.tgz", - "integrity": "sha512-+eW/VLcUL5L9IvJH7rT1sT0CzkdUTvPrXC2PXTn/7z7tXLBuKvezYbGdxD5WMRoyvyaujOq2fWoKl869heKjhw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-object-super": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.1.tgz", - "integrity": "sha512-AvypiGJH9hsquNUn+RXVcBdeE3KHPZexWRdimhuV59cSoOt5kFBmqlByorAeUlGG2CJWd0U+4ZtNKga/TB0cAw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-replace-supers": "^7.12.1" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.1.tgz", - "integrity": "sha512-xq9C5EQhdPK23ZeCdMxl8bbRnAgHFrw5EOC3KJUsSylZqdkCaFEXxGSBuTSObOpiiHHNyb82es8M1QYgfQGfNg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-property-literals": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.1.tgz", - "integrity": "sha512-6MTCR/mZ1MQS+AwZLplX4cEySjCpnIF26ToWo942nqn8hXSm7McaHQNeGx/pt7suI1TWOWMfa/NgBhiqSnX0cQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-regenerator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.1.tgz", - "integrity": "sha512-gYrHqs5itw6i4PflFX3OdBPMQdPbF4bj2REIUxlMRUFk0/ZOAIpDFuViuxPjUL7YC8UPnf+XG7/utJvqXdPKng==", - "dev": true, - "requires": { - "regenerator-transform": "^0.14.2" - } - }, - "@babel/plugin-transform-reserved-words": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.1.tgz", - "integrity": "sha512-pOnUfhyPKvZpVyBHhSBoX8vfA09b7r00Pmm1sH+29ae2hMTKVmSp4Ztsr8KBKjLjx17H0eJqaRC3bR2iThM54A==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.1.tgz", - "integrity": "sha512-GFZS3c/MhX1OusqB1MZ1ct2xRzX5ppQh2JU1h2Pnfk88HtFTM+TWQqJNfwkmxtPQtb/s1tk87oENfXJlx7rSDw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-spread": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.1.tgz", - "integrity": "sha512-vuLp8CP0BE18zVYjsEBZ5xoCecMK6LBMMxYzJnh01rxQRvhNhH1csMMmBfNo5tGpGO+NhdSNW2mzIvBu3K1fng==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1" - } - }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.7.tgz", - "integrity": "sha512-VEiqZL5N/QvDbdjfYQBhruN0HYjSPjC4XkeqW4ny/jNtH9gcbgaqBIXYEZCNnESMAGs0/K/R7oFGMhOyu/eIxg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-template-literals": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.1.tgz", - "integrity": "sha512-b4Zx3KHi+taXB1dVRBhVJtEPi9h1THCeKmae2qP0YdUHIFhVjtpqqNfxeVAa1xeHVhAy4SbHxEwx5cltAu5apw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.12.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.10.tgz", - "integrity": "sha512-JQ6H8Rnsogh//ijxspCjc21YPd3VLVoYtAwv3zQmqAt8YGYUtdo5usNhdl4b9/Vir2kPFZl6n1h0PfUz4hJhaA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.1.tgz", - "integrity": "sha512-SqH4ClNngh/zGwHZOOQMTD+e8FGWexILV+ePMyiDJttAWRh5dhDL8rcl5lSgU3Huiq6Zn6pWTMvdPAb21Dwdyg==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/preset-env": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.8.7.tgz", - "integrity": "sha512-BYftCVOdAYJk5ASsznKAUl53EMhfBbr8CJ1X+AJLfGPscQkwJFiaV/Wn9DPH/7fzm2v6iRYJKYHSqyynTGw0nw==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.8.6", - "@babel/helper-compilation-targets": "^7.8.7", - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-proposal-async-generator-functions": "^7.8.3", - "@babel/plugin-proposal-dynamic-import": "^7.8.3", - "@babel/plugin-proposal-json-strings": "^7.8.3", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-proposal-object-rest-spread": "^7.8.3", - "@babel/plugin-proposal-optional-catch-binding": "^7.8.3", - "@babel/plugin-proposal-optional-chaining": "^7.8.3", - "@babel/plugin-proposal-unicode-property-regex": "^7.8.3", - "@babel/plugin-syntax-async-generators": "^7.8.0", - "@babel/plugin-syntax-dynamic-import": "^7.8.0", - "@babel/plugin-syntax-json-strings": "^7.8.0", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.0", - "@babel/plugin-syntax-top-level-await": "^7.8.3", - "@babel/plugin-transform-arrow-functions": "^7.8.3", - "@babel/plugin-transform-async-to-generator": "^7.8.3", - "@babel/plugin-transform-block-scoped-functions": "^7.8.3", - "@babel/plugin-transform-block-scoping": "^7.8.3", - "@babel/plugin-transform-classes": "^7.8.6", - "@babel/plugin-transform-computed-properties": "^7.8.3", - "@babel/plugin-transform-destructuring": "^7.8.3", - "@babel/plugin-transform-dotall-regex": "^7.8.3", - "@babel/plugin-transform-duplicate-keys": "^7.8.3", - "@babel/plugin-transform-exponentiation-operator": "^7.8.3", - "@babel/plugin-transform-for-of": "^7.8.6", - "@babel/plugin-transform-function-name": "^7.8.3", - "@babel/plugin-transform-literals": "^7.8.3", - "@babel/plugin-transform-member-expression-literals": "^7.8.3", - "@babel/plugin-transform-modules-amd": "^7.8.3", - "@babel/plugin-transform-modules-commonjs": "^7.8.3", - "@babel/plugin-transform-modules-systemjs": "^7.8.3", - "@babel/plugin-transform-modules-umd": "^7.8.3", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.8.3", - "@babel/plugin-transform-new-target": "^7.8.3", - "@babel/plugin-transform-object-super": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.8.7", - "@babel/plugin-transform-property-literals": "^7.8.3", - "@babel/plugin-transform-regenerator": "^7.8.7", - "@babel/plugin-transform-reserved-words": "^7.8.3", - "@babel/plugin-transform-shorthand-properties": "^7.8.3", - "@babel/plugin-transform-spread": "^7.8.3", - "@babel/plugin-transform-sticky-regex": "^7.8.3", - "@babel/plugin-transform-template-literals": "^7.8.3", - "@babel/plugin-transform-typeof-symbol": "^7.8.4", - "@babel/plugin-transform-unicode-regex": "^7.8.3", - "@babel/types": "^7.8.7", - "browserslist": "^4.8.5", - "core-js-compat": "^3.6.2", - "invariant": "^2.2.2", - "levenary": "^1.1.1", - "semver": "^5.5.0" - } - }, - "@babel/runtime": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz", - "integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==", - "dev": true, - "requires": { - "regenerator-runtime": "^0.13.4" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.13.7", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", - "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", - "dev": true - } - } - }, - "@babel/template": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz", - "integrity": "sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/parser": "^7.12.7", - "@babel/types": "^7.12.7" - } - }, - "@babel/traverse": { - "version": "7.12.12", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.12.tgz", - "integrity": "sha512-s88i0X0lPy45RrLM8b9mz8RPH5FqO9G9p7ti59cToE44xFm1Q+Pjh5Gq4SXBbtb88X7Uy7pexeqRIQDDMNkL0w==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.11", - "@babel/generator": "^7.12.11", - "@babel/helper-function-name": "^7.12.11", - "@babel/helper-split-export-declaration": "^7.12.11", - "@babel/parser": "^7.12.11", - "@babel/types": "^7.12.12", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "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.12.12", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.12.tgz", - "integrity": "sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" - } - }, - "@istanbuljs/schema": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", - "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", - "dev": true - }, - "@ngtools/webpack": { - "version": "8.3.29", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-8.3.29.tgz", - "integrity": "sha512-7uB7dlAHR7RmxcQCYidnWRR1tFRJq7CzI+MM3725ibAvi4HnM5viC/HnKRTK7V+3iS1C0l0u0Gyo/769NsUDTQ==", - "dev": true, - "requires": { - "@angular-devkit/core": "8.3.29", - "enhanced-resolve": "4.1.0", - "rxjs": "6.4.0", - "tree-kill": "1.2.2", - "webpack-sources": "1.4.3" - }, - "dependencies": { - "rxjs": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", - "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - } - } - }, - "@nguniversal/module-map-ngfactory-loader": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/@nguniversal/module-map-ngfactory-loader/-/module-map-ngfactory-loader-8.1.1.tgz", - "integrity": "sha512-vXFydMTPFRfGjmtdwtbNhl4Pmfg580Yit0vzlTeb3ZC1v+TJKR2GzaWYUileWxS60FrgNF4/tkOEL5ouDDx6Bw==" - }, - "@nodelib/fs.scandir": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", - "integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.4", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz", - "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==", - "dev": true - }, - "@nodelib/fs.walk": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz", - "integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==", - "dev": true, - "requires": { - "@nodelib/fs.scandir": "2.1.4", - "fastq": "^1.6.0" - } - }, - "@npmcli/move-file": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.0.1.tgz", - "integrity": "sha512-Uv6h1sT+0DrblvIrolFtbvM1FgWm+/sy4B3pvLp67Zys+thcukzS5ekn7HsZFGpWP4Q3fYJCljbWQE/XivMRLw==", - "dev": true, - "requires": { - "mkdirp": "^1.0.4" - }, - "dependencies": { - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true - } - } - }, - "@schematics/angular": { - "version": "8.3.29", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-8.3.29.tgz", - "integrity": "sha512-If+UhCsQzCgnQymiiF8dQRoic34+RgJ6rV0n4k7Tm4N2xNYJOG7ajjzKM7PIeafsF50FKnFP8dqaNGxCMyq5Ew==", - "dev": true, - "requires": { - "@angular-devkit/core": "8.3.29", - "@angular-devkit/schematics": "8.3.29" - } - }, - "@schematics/update": { - "version": "0.803.29", - "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.803.29.tgz", - "integrity": "sha512-Syf6h6DYeu1WU9aLihMwIgVASpcHCxUYqhZyHfQABiK8NkdlZ+KAp4cOxihsZyDqIJNLWON+0/FLPAQF3BXh5Q==", - "dev": true, - "requires": { - "@angular-devkit/core": "8.3.29", - "@angular-devkit/schematics": "8.3.29", - "@yarnpkg/lockfile": "1.1.0", - "ini": "1.3.5", - "pacote": "9.5.5", - "rxjs": "6.4.0", - "semver": "6.3.0", - "semver-intersect": "1.4.0" - }, - "dependencies": { - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", - "dev": true - }, - "rxjs": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", - "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "@types/glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", - "dev": true, - "requires": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "@types/jasmine": { - "version": "3.4.6", - "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.4.6.tgz", - "integrity": "sha512-hpQHs+lmZ0uuCrGyqypdI1Ho7jRFolOBT6OkNdZPFziLSSEKvWu+VxWU6bGdNEA/hoV4jV8pdDeNx8EWlmfNAw==", - "dev": true - }, - "@types/jasminewd2": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/@types/jasminewd2/-/jasminewd2-2.0.8.tgz", - "integrity": "sha512-d9p31r7Nxk0ZH0U39PTH0hiDlJ+qNVGjlt1ucOoTUptxb2v+Y5VMnsxfwN+i3hK4yQnqBi3FMmoMFcd1JHDxdg==", - "dev": true, - "requires": { - "@types/jasmine": "*" - } - }, - "@types/json-schema": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz", - "integrity": "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==", - "dev": true - }, - "@types/minimatch": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", - "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", - "dev": true - }, - "@types/node": { - "version": "12.11.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.11.7.tgz", - "integrity": "sha512-JNbGaHFCLwgHn/iCckiGSOZ1XYHsKFwREtzPwSGCVld1SGhOlmZw2D4ZI94HQCrBHbADzW9m4LER/8olJTRGHA==", - "dev": true - }, - "@types/q": { - "version": "0.0.32", - "resolved": "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz", - "integrity": "sha1-vShOV8hPEyXacCur/IKlMoGQwMU=", - "optional": true - }, - "@types/selenium-webdriver": { - "version": "3.0.17", - "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.17.tgz", - "integrity": "sha512-tGomyEuzSC1H28y2zlW6XPCaDaXFaD6soTdb4GNdmte2qfHtrKqhy0ZFs4r/1hpazCfEZqeTSRLvSasmEx89uw==", - "optional": 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.8", - "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-0.1.8.tgz", - "integrity": "sha512-JHB2/xZlXOjzjBB6fMOpH1eQAfsrpqVVIbneE0Rok16WXwFaznaI5vfg75U5WgGJm7V9W1c4xeRQDjX/zwvghA==", - "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.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.8.5.tgz", - "integrity": "sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ==", - "dev": true, - "requires": { - "@webassemblyjs/helper-module-context": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/wast-parser": "1.8.5" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz", - "integrity": "sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ==", - "dev": true - }, - "@webassemblyjs/helper-api-error": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz", - "integrity": "sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA==", - "dev": true - }, - "@webassemblyjs/helper-buffer": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz", - "integrity": "sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q==", - "dev": true - }, - "@webassemblyjs/helper-code-frame": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz", - "integrity": "sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ==", - "dev": true, - "requires": { - "@webassemblyjs/wast-printer": "1.8.5" - } - }, - "@webassemblyjs/helper-fsm": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz", - "integrity": "sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow==", - "dev": true - }, - "@webassemblyjs/helper-module-context": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz", - "integrity": "sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "mamacro": "^0.0.3" - } - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz", - "integrity": "sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ==", - "dev": true - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz", - "integrity": "sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-buffer": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/wasm-gen": "1.8.5" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz", - "integrity": "sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g==", - "dev": true, - "requires": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.8.5.tgz", - "integrity": "sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A==", - "dev": true, - "requires": { - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/utf8": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.8.5.tgz", - "integrity": "sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw==", - "dev": true - }, - "@webassemblyjs/wasm-edit": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz", - "integrity": "sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-buffer": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/helper-wasm-section": "1.8.5", - "@webassemblyjs/wasm-gen": "1.8.5", - "@webassemblyjs/wasm-opt": "1.8.5", - "@webassemblyjs/wasm-parser": "1.8.5", - "@webassemblyjs/wast-printer": "1.8.5" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz", - "integrity": "sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/ieee754": "1.8.5", - "@webassemblyjs/leb128": "1.8.5", - "@webassemblyjs/utf8": "1.8.5" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz", - "integrity": "sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-buffer": "1.8.5", - "@webassemblyjs/wasm-gen": "1.8.5", - "@webassemblyjs/wasm-parser": "1.8.5" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz", - "integrity": "sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-api-error": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/ieee754": "1.8.5", - "@webassemblyjs/leb128": "1.8.5", - "@webassemblyjs/utf8": "1.8.5" - } - }, - "@webassemblyjs/wast-parser": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz", - "integrity": "sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/floating-point-hex-parser": "1.8.5", - "@webassemblyjs/helper-api-error": "1.8.5", - "@webassemblyjs/helper-code-frame": "1.8.5", - "@webassemblyjs/helper-fsm": "1.8.5", - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz", - "integrity": "sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/wast-parser": "1.8.5", - "@xtuc/long": "4.2.2" - } - }, - "@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.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "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 - }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "optional": true - }, - "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" - } - }, - "acorn": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", - "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", - "dev": true - }, - "adm-zip": { - "version": "0.4.16", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", - "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", - "optional": 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.3.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", - "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", - "devOptional": 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" - } - }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "dependencies": { - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true - } - } - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "devOptional": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-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.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true - }, - "amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", - "devOptional": 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": "4.3.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", - "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", - "dev": true, - "requires": { - "type-fest": "^0.11.0" - } - }, - "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=", - "devOptional": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "optional": true - }, - "anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "app-root-path": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-2.2.1.tgz", - "integrity": "sha512-91IFKeKk7FjfmezPKkwtaRvSpnUc4gDwPAjA1YZ9Gn0q0PPeW+vbeUsZuyDwjI7+QTHhcLen2v25fi/AmhvbJA==", - "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==", - "devOptional": 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==", - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "optional": true - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "devOptional": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "aria-query": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-3.0.0.tgz", - "integrity": "sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w=", - "dev": true, - "requires": { - "ast-types-flow": "0.0.7", - "commander": "^2.11.0" - } - }, - "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=", - "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-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "devOptional": 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=", - "devOptional": 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=", - "optional": true - }, - "asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", - "dev": true - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "devOptional": true, - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - } - } - }, - "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=", - "devOptional": 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 - }, - "ast-types-flow": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", - "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=", - "dev": true - }, - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dev": true, - "requires": { - "lodash": "^4.17.14" - } - }, - "async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", - "dev": true - }, - "async-foreach": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", - "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", - "optional": true - }, - "async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "devOptional": 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.6.1", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.6.1.tgz", - "integrity": "sha512-aVo5WxR3VyvyJxcJC3h4FKfwCQvQWb1tSI5VHNibddCVWrcD1NvlxEweg3TSgiPztMnWfjpy2FURKA2kvDE+Tw==", - "dev": true, - "requires": { - "browserslist": "^4.6.3", - "caniuse-lite": "^1.0.30000980", - "chalk": "^2.4.2", - "normalize-range": "^0.1.2", - "num2fraction": "^1.2.2", - "postcss": "^7.0.17", - "postcss-value-parser": "^4.0.0" - }, - "dependencies": { - "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" - } - }, - "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" - } - }, - "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" - } - } - } - }, - "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=", - "devOptional": true - }, - "aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", - "devOptional": true - }, - "axobject-query": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.0.2.tgz", - "integrity": "sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww==", - "dev": true, - "requires": { - "ast-types-flow": "0.0.7" - } - }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "dev": true, - "requires": { - "object.assign": "^4.1.0" - } - }, - "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=", - "devOptional": 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.4", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz", - "integrity": "sha1-mBjHngWbE1X5fgQooBfIOOkLqBI=", - "dev": true - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" - }, - "base64id": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", - "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", - "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=", - "devOptional": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "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": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "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 - }, - "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==", - "optional": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true - }, - "bn.js": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz", - "integrity": "sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==", - "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" - }, - "dependencies": { - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "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" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "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 - } - } - }, - "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" - } - }, - "bootstrap": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.6.0.tgz", - "integrity": "sha512-Io55IuQY3kydzHtbGvQya3H+KorS/M9rSNyfCGCg9WZ4pyT/lCxIlpJgG1GXW/PswzC84Tr2fBYi+7+jFVQQBw==", - "requires": {} - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "devOptional": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "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.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "dev": true, - "requires": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "dev": true, - "requires": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } - } - }, - "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.10.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.10.0.tgz", - "integrity": "sha512-TpfK0TDgv71dzuTsEAlQiHeWQ/tiPqgNZVdv046fvNtBZrjbv2O3TsWCDU0AWGJJKCF/KsjNdLzR9hXOsh/CfA==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001035", - "electron-to-chromium": "^1.3.378", - "node-releases": "^1.1.52", - "pkg-up": "^3.1.0" - } - }, - "browserstack": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.6.1.tgz", - "integrity": "sha512-GxtFjpIaKdbAyzHfFDKixKO8IBT7wR3NjbzrGc78nNs/Ciys9wU3/nBtsqsWv5nDSrdI5tz0peKuzCPuNXNUiw==", - "optional": true, - "requires": { - "https-proxy-agent": "^2.2.1" - } - }, - "buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "dev": true, - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "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==", - "devOptional": 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=", - "optional": 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": "12.0.2", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.2.tgz", - "integrity": "sha512-ifKgxH2CKhJEg6tNdAwziu6Q33EvuG26tYcda6PT3WKisZcYDXsnEdnRv67Po3yCzFfaSoMjGZzJyD2c3DT1dg==", - "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", - "infer-owner": "^1.0.3", - "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": { - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, - "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" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - } - } - }, - "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" - } - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "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" - } - }, - "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=", - "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=", - "optional": true, - "requires": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" - } - }, - "caniuse-lite": { - "version": "1.0.30001035", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001035.tgz", - "integrity": "sha512-C1ZxgkuA4/bUEdMbU5WrGY4+UhMFFiXrgNAfxiMIqWgFTWfv/xsZCS2xEHT2LMq7xAZfuAnu6mcqyDl0ZR6wLQ==", - "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=", - "devOptional": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "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" - } - }, - "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": "3.5.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.0.tgz", - "integrity": "sha512-JgQM9JS92ZbFR4P90EvmzNpSGhpPBGBSj10PILeDyYFwp4h2/D9OM03wsJ4zW1fEp4ka2DGrnUeD7FuvQ2aZ2Q==", - "dev": true, - "requires": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "fsevents": "~2.3.1", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" - } - }, - "chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "devOptional": 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.2.0", - "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.2.0.tgz", - "integrity": "sha512-7p4Kn/gffhQaavNfyDFg7LS5S/UT1JAjyGd4UqR2+jzoYF02eDkj0Ec3+48TsIa4zghjLY87nQHIh/ecK9qLdw==", - "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 - } - } - }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true - }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "requires": { - "restore-cursor": "^3.1.0" - } - }, - "cli-width": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", - "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", - "dev": true - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "devOptional": true, - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.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==", - "devOptional": 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=", - "devOptional": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "devOptional": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.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==", - "devOptional": true, - "requires": { - "ansi-regex": "^4.1.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": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - } - }, - "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=", - "devOptional": true - }, - "codelyzer": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-5.2.2.tgz", - "integrity": "sha512-jB4FZ1Sx7kZhvZVdf+N2BaKTdrrNZOL0Bj10RRfrhHrb3zEvXjJvvq298JPMJAiyiCS/v4zs1QlGU0ip7xGqeA==", - "dev": true, - "requires": { - "app-root-path": "^2.2.1", - "aria-query": "^3.0.0", - "axobject-query": "2.0.2", - "css-selector-tokenizer": "^0.7.1", - "cssauron": "^1.4.0", - "damerau-levenshtein": "^1.0.4", - "semver-dsl": "^1.0.1", - "source-map": "^0.5.7", - "sprintf-js": "^1.1.2" - }, - "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==", - "devOptional": 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=", - "devOptional": true - }, - "colorette": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", - "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==", - "dev": true - }, - "colors": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", - "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", - "dev": true - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "devOptional": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "devOptional": 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.6.0", - "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz", - "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==", - "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.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "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.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "dev": true, - "requires": { - "mime-db": ">= 1.43.0 < 2" - } - }, - "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" - }, - "dependencies": { - "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" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "devOptional": 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.7.0", - "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", - "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", - "dev": true, - "requires": { - "debug": "2.6.9", - "finalhandler": "1.1.2", - "parseurl": "~1.3.3", - "utils-merge": "1.0.1" - }, - "dependencies": { - "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" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "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.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", - "dev": true - }, - "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=", - "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.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "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 - }, - "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" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "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": "6.0.3", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-6.0.3.tgz", - "integrity": "sha512-q5m6Vz4elsuyVEIUXr7wJdIdePWTubsqVbEMvf1WQnHGv0Q+9yPRu7MtYFPt+GBOXRav9lvIINifTQ1vSCs+eA==", - "dev": true, - "requires": { - "cacache": "^15.0.4", - "fast-glob": "^3.2.4", - "find-cache-dir": "^3.3.1", - "glob-parent": "^5.1.1", - "globby": "^11.0.1", - "loader-utils": "^2.0.0", - "normalize-path": "^3.0.0", - "p-limit": "^3.0.1", - "schema-utils": "^2.7.0", - "serialize-javascript": "^4.0.0", - "webpack-sources": "^1.4.3" - }, - "dependencies": { - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - }, - "cacache": { - "version": "15.0.5", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.5.tgz", - "integrity": "sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A==", - "dev": true, - "requires": { - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.0", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" - } - }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true - }, - "find-cache-dir": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", - "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - } - }, - "globby": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.2.tgz", - "integrity": "sha512-2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og==", - "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", - "slash": "^3.0.0" - } - }, - "json5": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "ssri": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.0.tgz", - "integrity": "sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA==", - "dev": true, - "requires": { - "minipass": "^3.1.1" - } - } - } - }, - "core-js": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.8.3.tgz", - "integrity": "sha512-KPYXeVZYemC2TkNEkX/01I+7yd+nX3KddKwZ1Ww7SKWdI2wQprSgLmrTddT8nw92AjEklTsPBoSdQBhbI1bQ6Q==" - }, - "core-js-compat": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.8.2.tgz", - "integrity": "sha512-LO8uL9lOIyRRrQmZxHZFl1RV+ZbcsAkFWTktn5SmH40WgLtSNYN4m4W2v9ONT147PxBY/XrRhrWq8TlvObyUjQ==", - "dev": true, - "requires": { - "browserslist": "^4.16.0", - "semver": "7.0.0" - }, - "dependencies": { - "browserslist": { - "version": "4.16.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.1.tgz", - "integrity": "sha512-UXhDrwqsNcpTYJBTZsbGATDxZbiVDsx6UjpmRUmtnP10pr8wAYr5LgFoEFw9ixriQH2mv/NX2SfGzE/o8GndLA==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001173", - "colorette": "^1.2.1", - "electron-to-chromium": "^1.3.634", - "escalade": "^3.1.1", - "node-releases": "^1.1.69" - } - }, - "caniuse-lite": { - "version": "1.0.30001174", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001174.tgz", - "integrity": "sha512-tqClL/4ThQq6cfFXH3oJL4rifFBeM6gTkphjao5kgwMaW9yn0tKgQLAEfKzDwj6HQWCB/aWo8kTFlSvIN8geEA==", - "dev": true - }, - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true - } - } - }, - "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=", - "devOptional": 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": { - "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" - } - } - } - }, - "coverage-istanbul-loader": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/coverage-istanbul-loader/-/coverage-istanbul-loader-2.0.3.tgz", - "integrity": "sha512-LiGRvyIuzVYs3M1ZYK1tF0HekjH0DJ8zFdUwAZq378EJzqOgToyb1690dp3TAUlP6Y+82uu42LRjuROVeJ54CA==", - "dev": true, - "requires": { - "convert-source-map": "^1.7.0", - "istanbul-lib-instrument": "^4.0.0", - "loader-utils": "^1.2.3", - "merge-source-map": "^1.1.0", - "schema-utils": "^2.6.1" - } - }, - "create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - } - } - }, - "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": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "optional": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "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" - } - }, - "crypto-js": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.0.0.tgz", - "integrity": "sha512-bzHZN8Pn+gS7DQA6n+iUmBfl0hO5DJq++QP3U6uTucDtk/0iGpXd/Gg7CGR0p8tJhofJyaKoWBuJI4eAO00BBg==" - }, - "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.3", - "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz", - "integrity": "sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==", - "dev": true, - "requires": { - "cssesc": "^3.0.0", - "fastparse": "^1.1.2" - } - }, - "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": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "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=", - "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": "1.0.1", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", - "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", - "dev": true - }, - "damerau-levenshtein": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz", - "integrity": "sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug==", - "dev": true - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "devOptional": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "date-format": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-3.0.0.tgz", - "integrity": "sha512-eyTcpKOcamdhWJXj56DpQMo1ylSQpcGtGKXcU0Tb97+K56/CF5amAqqqNj0+KvA0iw2ynxtHWFsPDSClCxe48w==", - "dev": true - }, - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "devOptional": true, - "requires": { - "ms": "^2.1.1" - } - }, - "debuglog": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", - "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=", - "dev": true - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "devOptional": 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.1.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", - "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", - "dev": true, - "requires": { - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.1", - "is-regex": "^1.0.4", - "object-is": "^1.0.1", - "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.2.0" - } - }, - "default-gateway": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", - "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", - "dev": true, - "requires": { - "execa": "^1.0.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-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "requires": { - "object-keys": "^1.0.12" - } - }, - "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": "2.2.2", - "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", - "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", - "optional": 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" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "optional": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "devOptional": true - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "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.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "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-node": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", - "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", - "dev": true - }, - "dezalgo": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", - "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=", - "dev": true, - "requires": { - "asap": "^2.0.0", - "wrappy": "1" - } - }, - "di": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", - "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=", - "dev": true - }, - "diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "optional": 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" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - } - } - }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "requires": { - "path-type": "^4.0.0" - }, - "dependencies": { - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true - } - } - }, - "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 - }, - "domino": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/domino/-/domino-2.1.6.tgz", - "integrity": "sha512-3VdM/SXBZX2omc9JF9nOPCtDaYQ67BGp5CoLpIQlO2KCAPETs8TcDHacF26jXadGbvUteZzRTeos2fhID5+ucQ==" - }, - "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=", - "devOptional": 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.636", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.636.tgz", - "integrity": "sha512-Adcvng33sd3gTjNIDNXGD1G4H6qCImIy2euUJAQHtLNplEKU5WEz5KRJxupRNIIT8sD5oFZLTKBWAf12Bsz24A==", - "dev": true - }, - "elliptic": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", - "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", - "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" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - } - } - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "devOptional": true - }, - "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.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "dev": true, - "requires": { - "iconv-lite": "^0.6.2" - }, - "dependencies": { - "iconv-lite": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", - "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - } - } - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "devOptional": true, - "requires": { - "once": "^1.4.0" - } - }, - "engine.io": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.5.0.tgz", - "integrity": "sha512-21HlvPUKaitDGE4GXNtQ7PLP0Sz4aWLddMPw2VTyFz1FVZqu/kZsJUO8WNpKuE/OCL7nkfRaOui2ZCJloGznGA==", - "dev": true, - "requires": { - "accepts": "~1.3.4", - "base64id": "2.0.0", - "cookie": "~0.4.1", - "debug": "~4.1.0", - "engine.io-parser": "~2.2.0", - "ws": "~7.4.2" - }, - "dependencies": { - "cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", - "dev": true - }, - "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" - } - }, - "ws": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.2.tgz", - "integrity": "sha512-T4tewALS3+qsrpGI/8dqNMLIVdq/g/85U98HPMa6F0m6xTbvhXU6RCQLqPH3+SlomNV/LdY6RXEbBpMH6EOJnA==", - "dev": true - } - } - }, - "engine.io-client": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.5.0.tgz", - "integrity": "sha512-12wPRfMrugVw/DNyJk34GQ5vIVArEcVMXWugQGGuw2XxUSztFNmJggZmv8IZlLyEdnpO1QB9LkcjeWewO2vxtA==", - "dev": true, - "requires": { - "component-emitter": "~1.3.0", - "component-inherit": "0.0.3", - "debug": "~3.1.0", - "engine.io-parser": "~2.2.0", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "parseqs": "0.0.6", - "parseuri": "0.0.6", - "ws": "~7.4.2", - "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" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "ws": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.2.tgz", - "integrity": "sha512-T4tewALS3+qsrpGI/8dqNMLIVdq/g/85U98HPMa6F0m6xTbvhXU6RCQLqPH3+SlomNV/LdY6RXEbBpMH6EOJnA==", - "dev": true - } - } - }, - "engine.io-parser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.1.tgz", - "integrity": "sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg==", - "dev": true, - "requires": { - "after": "0.8.2", - "arraybuffer.slice": "~0.0.7", - "base64-arraybuffer": "0.1.4", - "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 - }, - "env-paths": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz", - "integrity": "sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA==", - "optional": 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.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "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==", - "devOptional": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es-abstract": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", - "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", - "devOptional": true - }, - "es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", - "devOptional": true, - "requires": { - "es6-promise": "^4.0.3" - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "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=", - "devOptional": 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==", - "devOptional": true - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true - } - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "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": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true - }, - "events": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", - "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", - "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": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "devOptional": 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" - }, - "dependencies": { - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "devOptional": 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" - } - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "devOptional": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "devOptional": 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=", - "devOptional": true - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "devOptional": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "optional": true - }, - "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": { - "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" - } - }, - "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" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "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": { - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", - "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" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "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 - } - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "devOptional": 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": { - "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" - } - } - } - }, - "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=", - "devOptional": true - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "devOptional": true - }, - "fast-glob": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", - "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.0", - "merge2": "^1.3.0", - "micromatch": "^4.0.2", - "picomatch": "^2.2.1" - } - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "devOptional": true - }, - "fastparse": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", - "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", - "dev": true - }, - "fastq": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.10.0.tgz", - "integrity": "sha512-NL2Qc5L3iQEsyYzweq7qfgy5OtXCmGzGvhElGEd/SoFWEMOEczNh5s5ocaF01HDetxz+p8ecjNPA6cZxxIHmzA==", - "dev": true, - "requires": { - "reusify": "^1.0.4" - } - }, - "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.2", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", - "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", - "dev": true - }, - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "file-loader": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-4.2.0.tgz", - "integrity": "sha512-+xZnaK5R8kBJrHK0/6HRlrKNamvVS5rjyuju+rnyxRGuwUJwpAMsVzUl5dz6rK8brkzjV6JpcFNjp6NqV0g1OQ==", - "dev": true, - "requires": { - "loader-utils": "^1.2.3", - "schema-utils": "^2.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": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "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": { - "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" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "find-cache-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.0.0.tgz", - "integrity": "sha512-t7ulV1fmbxh5G9l/492O1p5+EBbr3uwpt6odhFTMc+nWyhmbloe+ja9BZ8pIBtqFWhOmCWVjx+pTW4zDkFoclw==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.0", - "pkg-dir": "^4.1.0" - } - }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "optional": true, - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", - "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.13.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.1.tgz", - "integrity": "sha512-SSG5xmZh1mkPGyKzjZP8zLjltIfpW32Y5QpdNJyjcfGxK3qo3NDDkZOZSFiGn1A6SclQxY9GzEwAHQ3dmYRWpg==", - "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 - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "devOptional": 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==", - "devOptional": 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-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "devOptional": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "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=", - "devOptional": true - }, - "fsevents": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.1.tgz", - "integrity": "sha512-YR47Eg4hChJGAB1O3yEAOkGO+rlzutoICGqGo9EZ4lKWokzZRSyIW1QmTzqjtw8MJdj9srP869CuWw/hyzSiBw==", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "devOptional": true - }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "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==", - "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 - }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "devOptional": true - }, - "get-intrinsic": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.2.tgz", - "integrity": "sha512-aeX0vrFm21ILl3+JpFFRNe9aUvp6VFZb2/CTbgLb8j75kOhvoNYjt9d8KA/tJG4gSo8nzEDedRl0h7vDmBYRVg==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", - "optional": true - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "devOptional": true, - "requires": { - "pump": "^3.0.0" - } - }, - "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=", - "devOptional": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "devOptional": 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": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", - "dev": true, - "requires": { - "is-glob": "^4.0.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 - }, - "globby": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", - "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", - "optional": 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" - } - }, - "globule": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.2.tgz", - "integrity": "sha512-7IDTQTIu2xzXkT+6mlluidnWo+BypnbSoEVVQCGfzqnl5Ik8d3e1d4wycb8Rj9tWW+Z39uPWsdlquqiqPCd/pA==", - "optional": true, - "requires": { - "glob": "~7.1.1", - "lodash": "~4.17.10", - "minimatch": "~3.0.2" - } - }, - "graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", - "devOptional": true - }, - "handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", - "dev": true - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "devOptional": true - }, - "har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "devOptional": true, - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "devOptional": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "optional": 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=", - "devOptional": true - }, - "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", - "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=", - "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": { - "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" - } - } - } - }, - "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.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dev": true, - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } - } - }, - "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.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", - "devOptional": 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.4.0", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz", - "integrity": "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==", - "dev": true - }, - "html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "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.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" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - } - } - }, - "http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "dev": true, - "requires": { - "eventemitter3": "^4.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" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "http-proxy-middleware": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", - "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", - "dev": true, - "requires": { - "http-proxy": "^1.17.0", - "is-glob": "^4.0.0", - "lodash": "^4.17.11", - "micromatch": "^3.1.10" - }, - "dependencies": { - "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" - } - } - } - }, - "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" - } - } - } - }, - "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" - } - } - } - }, - "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" - } - }, - "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" - } - } - } - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "devOptional": 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.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", - "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", - "devOptional": true, - "requires": { - "agent-base": "^4.3.0", - "debug": "^3.1.0" - } - }, - "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.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" - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "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": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", - "dev": true - }, - "ignore-walk": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", - "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", - "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=", - "optional": 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" - } - }, - "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 - }, - "indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "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 - }, - "infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "devOptional": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "devOptional": true - }, - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "devOptional": true - }, - "inquirer": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.1.tgz", - "integrity": "sha512-uxNHBeQhRXIoHWTSNYUFhQVrHYFThIt6IVo2fFmSe8aBwdR3/w6b58hJpiL/fMukFkvGzjg+hSxFtwvVmKZmXw==", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^2.4.2", - "cli-cursor": "^3.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.15", - "mute-stream": "0.0.8", - "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^4.1.0", - "strip-ansi": "^5.1.0", - "through": "^2.3.6" - }, - "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 - }, - "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" - } - }, - "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" - } - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.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" - } - }, - "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" - } - } - } - }, - "internal-ip": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", - "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", - "dev": true, - "requires": { - "default-gateway": "^4.2.0", - "ipaddr.js": "^1.9.0" - } - }, - "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": "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==", - "devOptional": true - }, - "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.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true - }, - "is-absolute-url": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", - "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", - "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-arguments": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", - "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", - "dev": true, - "requires": { - "call-bind": "^1.0.0" - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "devOptional": true - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.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-callable": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", - "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==", - "dev": true - }, - "is-core-module": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", - "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", - "devOptional": true, - "requires": { - "has": "^1.0.3" - } - }, - "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-date-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", - "dev": true - }, - "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.1.0", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", - "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", - "optional": true - }, - "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=", - "optional": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "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=", - "optional": 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==", - "optional": 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=", - "optional": true, - "requires": { - "path-is-inside": "^1.0.1" - } - }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true - }, - "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-regex": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", - "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", - "dev": true, - "requires": { - "has-symbols": "^1.0.1" - } - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "devOptional": true - }, - "is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", - "dev": true, - "requires": { - "has-symbols": "^1.0.1" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "devOptional": true - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "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=", - "devOptional": true - }, - "isbinaryfile": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.6.tgz", - "integrity": "sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg==", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "devOptional": 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=", - "devOptional": 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.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "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.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "istanbul-lib-coverage": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", - "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", - "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": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dev": true, - "requires": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "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 - }, - "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" - } - } - } - }, - "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.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "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 - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "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.7", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.7.tgz", - "integrity": "sha512-uu1F/L1o5Y6LzPVSVZXNOoD/KXpJue9aeLRd0sM9uMXfZvzomB0WxVamWb5ue8kA2vVWEmW7EG+A5n3f1kqHKg==", - "dev": true, - "requires": { - "html-escaper": "^2.0.0" - } - }, - "jasmine": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz", - "integrity": "sha1-awicChFXax8W3xG4AUbZHU6Lij4=", - "optional": 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=", - "optional": true - } - } - }, - "jasmine-core": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.5.0.tgz", - "integrity": "sha512-nCeAiw37MIMA9w9IXso7bRaLl+c/ef3wnxsoSAlYrzS+Ot0zTG6nU8G/cIfGkqpkjX2wNaIW9RFG0TwIFnG6bA==", - "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=", - "optional": true - }, - "jest-worker": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz", - "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==", - "dev": true, - "requires": { - "merge-stream": "^2.0.0", - "supports-color": "^6.1.0" - }, - "dependencies": { - "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" - } - } - } - }, - "jquery": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.5.1.tgz", - "integrity": "sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg==" - }, - "js-base64": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", - "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==", - "optional": true - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "devOptional": true - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "devOptional": 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=", - "devOptional": true - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "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-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "devOptional": 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==", - "devOptional": 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=", - "devOptional": 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" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", - "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" - } - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "devOptional": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "jszip": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.5.0.tgz", - "integrity": "sha512-WRtu7TPCmYePR1nazfrtuF216cIVon/3GWOvHS9QR5bIwSbnxtdpma6un3jyGGNhHsKCSzn5Ypk+EkDRvTGiFA==", - "optional": true, - "requires": { - "lie": "~3.3.0", - "pako": "~1.0.2", - "readable-stream": "~2.3.6", - "set-immediate-shim": "~1.0.1" - } - }, - "karma": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/karma/-/karma-5.2.3.tgz", - "integrity": "sha512-tHdyFADhVVPBorIKCX8A37iLHxc6RBRphkSoQ+MLKdAtFn1k97tD8WUGi1KlEtDZKL3hui0qhsY9HXUfSNDYPQ==", - "dev": true, - "requires": { - "body-parser": "^1.19.0", - "braces": "^3.0.2", - "chokidar": "^3.4.2", - "colors": "^1.4.0", - "connect": "^3.7.0", - "di": "^0.0.1", - "dom-serialize": "^2.2.1", - "glob": "^7.1.6", - "graceful-fs": "^4.2.4", - "http-proxy": "^1.18.1", - "isbinaryfile": "^4.0.6", - "lodash": "^4.17.19", - "log4js": "^6.2.1", - "mime": "^2.4.5", - "minimatch": "^3.0.4", - "qjobs": "^1.2.0", - "range-parser": "^1.2.1", - "rimraf": "^3.0.2", - "socket.io": "^2.3.0", - "source-map": "^0.6.1", - "tmp": "0.2.1", - "ua-parser-js": "0.7.22", - "yargs": "^15.3.1" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "mime": { - "version": "2.4.7", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.7.tgz", - "integrity": "sha512-dhNd1uA2u397uQk3Nv5LM4lm93WYDUXFn3Fu291FJerns4jyTudqhIWe4W04YLy7Uk1tm1Ore04NpjRvQp/NPA==", - "dev": true - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "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 - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "dev": true, - "requires": { - "rimraf": "^3.0.0" - } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "karma-chrome-launcher": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.1.0.tgz", - "integrity": "sha512-3dPs/n7vgz1rxxtynpzZTvb9y/GIaW8xjAwcIGttLbycqoFtI7yo1NGnQi6oFTherRE+GIhCAHZC4vEqWGhNvg==", - "dev": true, - "requires": { - "which": "^1.2.1" - }, - "dependencies": { - "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" - } - } - } - }, - "karma-coverage-istanbul-reporter": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-2.1.1.tgz", - "integrity": "sha512-CH8lTi8+kKXGvrhy94+EkEMldLCiUA0xMOiL31vvli9qK0T+qcXJAwWBRVJWnVWxYkTmyWar8lPz63dxX6/z1A==", - "dev": true, - "requires": { - "istanbul-api": "^2.1.6", - "minimatch": "^3.0.4" - } - }, - "karma-jasmine": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-2.0.1.tgz", - "integrity": "sha512-iuC0hmr9b+SNn1DaUD2QEYtUxkS1J+bSJSn7ejdEexs7P8EYvA1CWkEdrDQ+8jVH3AgWlCNwjYsT1chjcNW9lA==", - "dev": true, - "requires": { - "jasmine-core": "^3.3" - } - }, - "karma-jasmine-html-reporter": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-1.5.4.tgz", - "integrity": "sha512-PtilRLno5O6wH3lDihRnz0Ba8oSn0YUJqKjjux1peoYGwo0AQqrWRbdWk/RLzcGlb+onTyXAnHl6M+Hu3UxG/Q==", - "dev": true - }, - "karma-source-map-support": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", - "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==", - "dev": true, - "requires": { - "source-map-support": "^0.5.5" - }, - "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-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - } - } - }, - "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.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - }, - "lcid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", - "devOptional": true, - "requires": { - "invert-kv": "^2.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": "5.0.0", - "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-5.0.0.tgz", - "integrity": "sha512-bquCU89mO/yWLaUq0Clk7qCsKhsF/TZpJUzETRvJa9KSVEL9SO3ovCvdEHISBhrC81OwC8QSVX7E0bzElZj9cg==", - "dev": true, - "requires": { - "clone": "^2.1.1", - "loader-utils": "^1.1.0", - "pify": "^4.0.1" - }, - "dependencies": { - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - } - } - }, - "leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true - }, - "levenary": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz", - "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", - "dev": true, - "requires": { - "leven": "^3.1.0" - } - }, - "license-webpack-plugin": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-2.1.2.tgz", - "integrity": "sha512-7poZHRla+ae0eEButlwMrPpkXyhNVBf2EHePYWT0jyLnI6311/OXJkTI2sOIRungRpQgU2oDMpro5bSFPT5F0A==", - "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==", - "optional": 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=", - "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" - } - }, - "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": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "devOptional": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "dependencies": { - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "devOptional": true - } - } - }, - "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "devOptional": 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 - }, - "log4js": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.3.0.tgz", - "integrity": "sha512-Mc8jNuSFImQUIateBFwdOQcmC6Q5maU0VVvdC2R6XMb66/VnT+7WS4D/0EeNMZu1YODmJe5NIn2XftCzEocUgw==", - "dev": true, - "requires": { - "date-format": "^3.0.0", - "debug": "^4.1.1", - "flatted": "^2.0.1", - "rfdc": "^1.1.4", - "streamroller": "^2.2.4" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "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 - } - } - }, - "loglevel": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz", - "integrity": "sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==", - "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=", - "optional": true, - "requires": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "devOptional": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "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": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "optional": true - }, - "make-fetch-happen": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-5.0.2.tgz", - "integrity": "sha512-07JHC0r1ykIoruKO8ifMXu+xEU8qOXDFETylktdug6vJDACnP+HKevOu3PXyNPzFyTSlz8vrBYlBO1JZRe8Cag==", - "dev": true, - "requires": { - "agentkeepalive": "^3.4.1", - "cacache": "^12.0.0", - "http-cache-semantics": "^3.8.1", - "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^2.2.3", - "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": { - "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.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - } - } - }, - "mamacro": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz", - "integrity": "sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==", - "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==", - "devOptional": 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=", - "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==", - "devOptional": 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=", - "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 - }, - "merge-source-map": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", - "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", - "dev": true, - "requires": { - "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 - } - } - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "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": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.0.5" - } - }, - "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" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - } - } - }, - "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.45.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz", - "integrity": "sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==", - "devOptional": true - }, - "mime-types": { - "version": "2.1.28", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz", - "integrity": "sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==", - "devOptional": true, - "requires": { - "mime-db": "1.45.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "devOptional": true - }, - "mini-css-extract-plugin": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.8.0.tgz", - "integrity": "sha512-MNpRGbNA52q6U92i0qbVpQNsgk7LExy41MdAlG84FeytfDOtRIf/mCHdEgG8rpTKOaNKiqUnZdlptF469hxqOw==", - "dev": true, - "requires": { - "loader-utils": "^1.1.0", - "normalize-url": "1.9.1", - "schema-utils": "^1.0.0", - "webpack-sources": "^1.1.0" - }, - "dependencies": { - "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" - } - } - } - }, - "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==", - "devOptional": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "devOptional": true - }, - "minipass": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", - "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", - "devOptional": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "devOptional": true, - "requires": { - "minipass": "^3.0.0", - "yallist": "^4.0.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" - } - }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "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" - } - } - } - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "devOptional": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "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" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "devOptional": 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.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true - }, - "nan": { - "version": "2.14.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", - "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", - "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.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", - "dev": true - }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "devOptional": true - }, - "node-fetch-npm": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.4.tgz", - "integrity": "sha512-iOuIQDWDyjhv9qSDrj9aq/klt6F9z1p2otB3AV7v3zBDcL/x+OfGsvGQZZCcMZbUf4Ujw1xGNQkjvGnVT22cKg==", - "dev": true, - "requires": { - "encoding": "^0.1.11", - "json-parse-better-errors": "^1.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node-forge": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", - "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", - "dev": true - }, - "node-gyp": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-7.1.2.tgz", - "integrity": "sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ==", - "optional": true, - "requires": { - "env-paths": "^2.2.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.3", - "nopt": "^5.0.0", - "npmlog": "^4.1.2", - "request": "^2.88.2", - "rimraf": "^3.0.2", - "semver": "^7.3.2", - "tar": "^6.0.2", - "which": "^2.0.2" - }, - "dependencies": { - "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "optional": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "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.69", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.69.tgz", - "integrity": "sha512-DGIjo79VDEyAnRlfSqYTsy+yoHd2IOjJiKUozD2MV2D85Vso6Bug56mb9tT/fY5Urt0iqk01H7x+llAruDR2zA==", - "dev": true - }, - "node-sass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-5.0.0.tgz", - "integrity": "sha512-opNgmlu83ZCF792U281Ry7tak9IbVC+AKnXGovcQ8LG8wFaJv6cLnRlc6DIHlmNxWEexB5bZxi9SZ9JyUuOYjw==", - "optional": true, - "requires": { - "async-foreach": "^0.1.3", - "chalk": "^1.1.1", - "cross-spawn": "^7.0.3", - "gaze": "^1.0.0", - "get-stdin": "^4.0.1", - "glob": "^7.0.3", - "lodash": "^4.17.15", - "meow": "^3.7.0", - "mkdirp": "^0.5.1", - "nan": "^2.13.2", - "node-gyp": "^7.1.0", - "npmlog": "^4.0.0", - "request": "^2.88.0", - "sass-graph": "2.2.5", - "stdout-stream": "^1.4.0", - "true-case-path": "^1.0.2" - } - }, - "nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "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==", - "devOptional": 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": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "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 - }, - "normalize-url": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", - "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", - "dev": true, - "requires": { - "object-assign": "^4.0.1", - "prepend-http": "^1.0.0", - "query-string": "^4.1.0", - "sort-keys": "^1.0.0" - } - }, - "npm-bundled": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz", - "integrity": "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==", - "dev": true, - "requires": { - "npm-normalize-package-bin": "^1.0.1" - } - }, - "npm-normalize-package-bin": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", - "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", - "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.8", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz", - "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==", - "dev": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1", - "npm-normalize-package-bin": "^1.0.1" - } - }, - "npm-pick-manifest": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-3.0.2.tgz", - "integrity": "sha512-wNprTNg+X5nf+tDi+hbjdHhM4bX+mKqv6XmPh7B5eG+QY9VARfQPfCEH013H5GqfNj6ee8Ij2fg8yk0mzps1Vw==", - "dev": true, - "requires": { - "figgy-pudding": "^3.5.1", - "npm-package-arg": "^6.0.0", - "semver": "^5.4.1" - } - }, - "npm-registry-fetch": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-4.0.7.tgz", - "integrity": "sha512-cny9v0+Mq6Tjz+e0erFAB+RYJ/AVGzkjnISiobqP8OWj9c9FLoZZu8/SPSKJWE17F1tk4018wfjV+ZbIbqC7fQ==", - "dev": true, - "requires": { - "bluebird": "^3.5.1", - "figgy-pudding": "^3.4.1", - "JSONStream": "^1.3.4", - "lru-cache": "^5.1.1", - "make-fetch-happen": "^5.0.0", - "npm-package-arg": "^6.1.0", - "safe-buffer": "^5.2.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" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "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=", - "devOptional": true, - "requires": { - "path-key": "^2.0.0" - }, - "dependencies": { - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "devOptional": true - } - } - }, - "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "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" - } - }, - "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=", - "devOptional": true - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "devOptional": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "devOptional": 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-inspect": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", - "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", - "dev": true - }, - "object-is": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.4.tgz", - "integrity": "sha512-1ZvAZ4wlF7IyPVOcE1Omikt7UpaFlOQq0HlSti+ZvDH3UiD2brwGMwDbyV43jao2bKJ+4+WdPJHSd7kgzKYVqg==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" - } - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - }, - "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.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, - "object.getownpropertydescriptors": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.1.tgz", - "integrity": "sha512-6DtXgZ/lIZ9hqx4GtZETobXLR/ZLaa0aqV0kzbn80Rf8Z2e/XFnhA0I7p07N2wH8bBBltr2xQPi6sbKWAY2Eng==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1" - }, - "dependencies": { - "es-abstract": { - "version": "1.18.0-next.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.2.tgz", - "integrity": "sha512-Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.1", - "object-inspect": "^1.9.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.3", - "string.prototype.trimstart": "^1.0.3" - } - } - } - }, - "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 - }, - "oidc-client": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/oidc-client/-/oidc-client-1.11.3.tgz", - "integrity": "sha512-kMA5KRP++88nn3nxogwDA4p8jH+YwyoA1JxxVHA9YZFgYqcnK8qjc6WLEoOBheKbxQSl89r0gDh8+zscZHmGlw==", - "requires": { - "acorn": "^7.4.1", - "base64-js": "^1.5.1", - "core-js": "^3.8.3", - "crypto-js": "^4.0.0", - "serialize-javascript": "^4.0.0" - }, - "dependencies": { - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" - } - } - }, - "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=", - "devOptional": true, - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "open": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", - "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", - "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" - } - }, - "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": "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==", - "devOptional": true, - "requires": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.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=", - "devOptional": 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=", - "devOptional": true - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "devOptional": 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==", - "devOptional": true - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "devOptional": 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==", - "devOptional": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "p-retry": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", - "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", - "dev": true, - "requires": { - "retry": "^0.12.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==", - "devOptional": true - }, - "pacote": { - "version": "9.5.5", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-9.5.5.tgz", - "integrity": "sha512-jAEP+Nqj4kyMWyNpfTU/Whx1jA7jEc5cCOlurm0/0oL+v8TAp1QSsK83N7bYe+2bEdFzMAtPG5TBebjzzGV0cA==", - "dev": true, - "requires": { - "bluebird": "^3.5.3", - "cacache": "^12.0.2", - "figgy-pudding": "^3.5.1", - "get-stream": "^4.1.0", - "glob": "^7.1.3", - "infer-owner": "^1.0.4", - "lru-cache": "^5.1.1", - "make-fetch-happen": "^5.0.0", - "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": "^4.0.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": { - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, - "fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "dev": true, - "requires": { - "minipass": "^2.6.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" - } - }, - "minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "dev": true, - "requires": { - "minipass": "^2.9.0" - } - }, - "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" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "tar": { - "version": "4.4.13", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", - "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", - "dev": true, - "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.8.6", - "minizlib": "^1.2.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.3" - } - }, - "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" - } - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - } - } - }, - "pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "devOptional": true - }, - "parallel-transform": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", - "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", - "dev": true, - "requires": { - "cyclist": "^1.0.1", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - } - }, - "parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "dev": true, - "requires": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.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=", - "optional": 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.6", - "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.6.tgz", - "integrity": "sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w==", - "dev": true - }, - "parseuri": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.6.tgz", - "integrity": "sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow==", - "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 - }, - "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": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "optional": true, - "requires": { - "pinkie-promise": "^2.0.0" - } - }, - "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=", - "devOptional": 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=", - "devOptional": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "optional": 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==", - "devOptional": 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": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "optional": true, - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "pbkdf2": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", - "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", - "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=", - "devOptional": true - }, - "picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", - "dev": true - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "devOptional": true - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "devOptional": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "devOptional": true, - "requires": { - "pinkie": "^2.0.0" - } - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - } - } - }, - "pkg-up": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", - "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", - "dev": true, - "requires": { - "find-up": "^3.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" - } - } - } - }, - "popper.js": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz", - "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==" - }, - "portfinder": { - "version": "1.0.28", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", - "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", - "dev": true, - "requires": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.5" - } - }, - "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.17", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", - "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "dependencies": { - "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" - } - }, - "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" - } - } - } - }, - "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 - }, - "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" - } - } - } - }, - "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" - }, - "dependencies": { - "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 - } - } - }, - "postcss-load-config": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.2.tgz", - "integrity": "sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==", - "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" - }, - "dependencies": { - "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" - } - } - } - }, - "postcss-value-parser": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", - "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", - "dev": true - }, - "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", - "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.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "devOptional": 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" - }, - "dependencies": { - "retry": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", - "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", - "dev": true - } - } - }, - "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.4", - "resolved": "https://registry.npmjs.org/protractor/-/protractor-5.4.4.tgz", - "integrity": "sha512-BaL4vePgu3Vfa/whvTUAlgaCAId4uNSGxIFSCXMgj7LMYENPWLp85h5RBi9pdpX/bWQ8SF6flP7afmi2TC4eHw==", - "optional": 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", - "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", - "yargs": "^12.0.5" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "optional": true - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "optional": 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==", - "optional": true, - "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.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==", - "optional": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "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==", - "optional": 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=", - "optional": 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=", - "optional": true - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "optional": true, - "requires": { - "glob": "^7.1.3" - } - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "optional": 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=", - "optional": true, - "requires": { - "ansi-regex": "^3.0.0" - } - }, - "webdriver-manager": { - "version": "12.1.8", - "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.8.tgz", - "integrity": "sha512-qJR36SXG2VwKugPcdwhaqcLQOD7r8P2Xiv9sfNbfZrKBnX243iAkOueX1yAmeNgIKhJ3YAT/F2gq6IiEZzahsg==", - "optional": 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" - } - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "optional": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "optional": true - }, - "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=", - "optional": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "optional": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "optional": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "yargs": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", - "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", - "optional": true, - "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.2.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": "^11.1.1" - } - }, - "yargs-parser": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", - "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", - "optional": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "proxy-addr": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", - "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", - "dev": true, - "requires": { - "forwarded": "~0.1.2", - "ipaddr.js": "1.9.1" - } - }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true - }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "devOptional": 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" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "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==", - "devOptional": 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" - }, - "dependencies": { - "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" - } - } - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "devOptional": true - }, - "q": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", - "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=", - "optional": 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==", - "devOptional": true - }, - "query-string": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", - "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", - "dev": true, - "requires": { - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - } - }, - "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.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", - "dev": true - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "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.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" - }, - "dependencies": { - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "dev": true - } - } - }, - "raw-loader": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-3.1.0.tgz", - "integrity": "sha512-lzUVMuJ06HF4rYveaz9Tv0WRlUMxJ0Y1hgSkkgg+50iEdaI0TthyEDe08KIHb0XsF6rn8WYTqPCaGTZg3sX+qA==", - "dev": true, - "requires": { - "loader-utils": "^1.1.0", - "schema-utils": "^2.0.1" - } - }, - "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" - } - }, - "read-package-json": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.2.tgz", - "integrity": "sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA==", - "dev": true, - "requires": { - "glob": "^7.1.1", - "json-parse-even-better-errors": "^2.3.0", - "normalize-package-data": "^2.0.0", - "npm-normalize-package-bin": "^1.0.0" - } - }, - "read-package-tree": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/read-package-tree/-/read-package-tree-5.3.1.tgz", - "integrity": "sha512-mLUDsD5JVtlZxjSlPPx1RETkNjjvQYuweKwNVt1Sn8kP5Jh44pvYuUHCp6xSVDZWbNxVxG5lyZJ921aJH61sTw==", - "dev": true, - "requires": { - "read-package-json": "^2.0.0", - "readdir-scoped-modules": "^1.0.0", - "util-promisify": "^2.1.0" - } - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "optional": true, - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - } - }, - "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=", - "optional": true, - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - } - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "devOptional": 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" - } - }, - "readdir-scoped-modules": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz", - "integrity": "sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==", - "dev": true, - "requires": { - "debuglog": "^1.0.1", - "dezalgo": "^1.0.0", - "graceful-fs": "^4.1.2", - "once": "^1.3.0" - } - }, - "readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "redent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", - "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.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true - }, - "regenerate-unicode-properties": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", - "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", - "dev": true, - "requires": { - "regenerate": "^1.4.0" - } - }, - "regenerator-runtime": { - "version": "0.13.3", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", - "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==", - "dev": true - }, - "regenerator-transform": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", - "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", - "dev": true, - "requires": { - "@babel/runtime": "^7.8.4" - } - }, - "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" - } - }, - "regexp.prototype.flags": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", - "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" - } - }, - "regexpu-core": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz", - "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==", - "dev": true, - "requires": { - "regenerate": "^1.4.0", - "regenerate-unicode-properties": "^8.2.0", - "regjsgen": "^0.5.1", - "regjsparser": "^0.6.4", - "unicode-match-property-ecmascript": "^1.0.4", - "unicode-match-property-value-ecmascript": "^1.2.0" - } - }, - "regjsgen": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", - "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", - "dev": true - }, - "regjsparser": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.6.tgz", - "integrity": "sha512-jjyuCp+IEMIm3N1H1LLTJW1EISEJV9+5oHdEyrt43Pg9cDSb6rrLZei2cVWpl0xTjmmlpec/lEQGYgM7xfpGCQ==", - "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=", - "optional": true, - "requires": { - "is-finite": "^1.0.0" - } - }, - "request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "devOptional": 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.3", - "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.5.0", - "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=", - "devOptional": true - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "devOptional": 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.19.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", - "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", - "devOptional": true, - "requires": { - "is-core-module": "^2.1.0", - "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": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "requires": { - "onetime": "^5.1.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.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", - "dev": true - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true - }, - "rfdc": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.1.4.tgz", - "integrity": "sha512-5C9HXdzK8EAqN7JDif30jqsBzavB7wLpaubisuQIGHWf2gUXSpzy6ArX/+Da8RjFpagWsCn+pIgxTMAmKw9Zug==", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "devOptional": 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.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "dev": true - }, - "run-parallel": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz", - "integrity": "sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==", - "dev": true - }, - "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.6.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", - "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", - "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==" - }, - "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==", - "devOptional": true - }, - "sass": { - "version": "1.22.9", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.22.9.tgz", - "integrity": "sha512-FzU1X2V8DlnqabrL4u7OBwD2vcOzNMongEJEx3xMEhWY/v26FFR3aG0hyeu2T965sfR0E9ufJwmG+Qjz78vFPQ==", - "dev": true, - "requires": { - "chokidar": ">=2.0.0 <4.0.0" - } - }, - "sass-graph": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.5.tgz", - "integrity": "sha512-VFWDAHOe6mRuT4mZRd4eKE+d8Uedrk6Xnh7Sh9b4NGufQLQjOrvf/MQoOdx+0s92L89FeyUUNfU597j/3uNpag==", - "optional": true, - "requires": { - "glob": "^7.0.0", - "lodash": "^4.0.0", - "scss-tokenizer": "^0.2.3", - "yargs": "^13.3.2" - } - }, - "sass-loader": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-7.2.0.tgz", - "integrity": "sha512-h8yUWaWtsbuIiOCgR9fd9c2lRXZ2uG+h8Dzg/AGNj+Hg/3TO8+BBAW9mEP+mh8ei+qBKqSJ0F1FLlYjNBc61OA==", - "dev": true, - "requires": { - "clone-deep": "^4.0.1", - "loader-utils": "^1.0.1", - "neo-async": "^2.5.0", - "pify": "^4.0.1", - "semver": "^5.5.0" - }, - "dependencies": { - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - } - } - }, - "saucelabs": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.5.0.tgz", - "integrity": "sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==", - "optional": true, - "requires": { - "https-proxy-agent": "^2.2.1" - } - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "optional": true - }, - "schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - } - }, - "scss-tokenizer": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", - "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", - "optional": true, - "requires": { - "js-base64": "^2.1.8", - "source-map": "^0.4.2" - } - }, - "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==", - "optional": true, - "requires": { - "jszip": "^3.1.3", - "rimraf": "^2.5.4", - "tmp": "0.0.30", - "xml2js": "^0.4.17" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "optional": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "selfsigned": { - "version": "1.10.8", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.8.tgz", - "integrity": "sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w==", - "dev": true, - "requires": { - "node-forge": "^0.10.0" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "devOptional": 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": { - "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" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "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 - } - } - }, - "serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", - "requires": { - "randombytes": "^2.1.0" - } - }, - "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" - }, - "dependencies": { - "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" - } - }, - "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" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "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 - } - } - }, - "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" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "devOptional": 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=", - "optional": true - }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "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.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", - "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": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dev": true, - "requires": { - "kind-of": "^6.0.2" - } - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "optional": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "optional": true - }, - "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", - "devOptional": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "smart-buffer": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz", - "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==", - "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": { - "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" - } - }, - "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" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "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 - } - } - }, - "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.4.1", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.4.1.tgz", - "integrity": "sha512-Si18v0mMXGAqLqCVpTxBa8MGqriHGQh8ccEOhmsmNS3thNCGBwO8WGrwMibANsWtQQ5NStdZwHqZR3naJVFc3w==", - "dev": true, - "requires": { - "debug": "~4.1.0", - "engine.io": "~3.5.0", - "has-binary2": "~1.0.2", - "socket.io-adapter": "~1.1.0", - "socket.io-client": "2.4.0", - "socket.io-parser": "~3.4.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" - } - } - } - }, - "socket.io-adapter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz", - "integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==", - "dev": true - }, - "socket.io-client": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.4.0.tgz", - "integrity": "sha512-M6xhnKQHuuZd4Ba9vltCLT9oa+YvTsP8j9NcEiLElfIg8KeYPyhWOes6x4t+LTAC8enQbE/995AdTem2uNyKKQ==", - "dev": true, - "requires": { - "backo2": "1.0.2", - "component-bind": "1.0.0", - "component-emitter": "~1.3.0", - "debug": "~3.1.0", - "engine.io-client": "~3.5.0", - "has-binary2": "~1.0.2", - "indexof": "0.0.1", - "parseqs": "0.0.6", - "parseuri": "0.0.6", - "socket.io-parser": "~3.3.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" - } - }, - "isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "socket.io-parser": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.2.tgz", - "integrity": "sha512-FJvDBuOALxdCI9qwRrO/Rfp9yfndRtc1jSgVgV8FDraihmSP/MLGD5PEuJrNfjALvcQ+vMDM/33AWOYP/JSjDg==", - "dev": true, - "requires": { - "component-emitter": "~1.3.0", - "debug": "~3.1.0", - "isarray": "2.0.1" - } - } - } - }, - "socket.io-parser": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.1.tgz", - "integrity": "sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A==", - "dev": true, - "requires": { - "component-emitter": "1.2.1", - "debug": "~4.1.0", - "isarray": "2.0.1" - }, - "dependencies": { - "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 - }, - "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" - } - }, - "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.20", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.20.tgz", - "integrity": "sha512-SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA==", - "dev": true, - "requires": { - "faye-websocket": "^0.10.0", - "uuid": "^3.4.0", - "websocket-driver": "0.6.5" - } - }, - "sockjs-client": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz", - "integrity": "sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==", - "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": { - "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" - } - } - } - }, - "socks": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.3.3.tgz", - "integrity": "sha512-o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA==", - "dev": true, - "requires": { - "ip": "1.1.5", - "smart-buffer": "^4.1.0" - } - }, - "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" - }, - "dependencies": { - "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" - } - } - } - }, - "sort-keys": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", - "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", - "dev": true, - "requires": { - "is-plain-obj": "^1.0.0" - } - }, - "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.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "devOptional": true, - "requires": { - "amdefine": ">=0.0.4" - } - }, - "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.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "dev": true, - "requires": { - "atob": "^2.1.2", - "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.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", - "optional": true, - "requires": { - "source-map": "^0.5.6" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "optional": 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.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "dev": true - }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "devOptional": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "devOptional": true - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "devOptional": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", - "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", - "devOptional": true - }, - "spdy": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", - "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.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "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.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "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.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "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" - }, - "dependencies": { - "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" - } - }, - "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" - } - }, - "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" - } - } - } - }, - "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=", - "devOptional": true - }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "devOptional": 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": "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" - } - }, - "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" - } - } - } - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "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==", - "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.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", - "dev": true - }, - "streamroller": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-2.2.4.tgz", - "integrity": "sha512-OG79qm3AujAM9ImoqgWEY1xG4HX+Lw+yY6qZj9R1K2mhF5bEmQ849wvrb+4vt4jLMLzwXttJlQbOdPOQVRv7DQ==", - "dev": true, - "requires": { - "date-format": "^2.1.0", - "debug": "^4.1.1", - "fs-extra": "^8.1.0" - }, - "dependencies": { - "date-format": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-2.1.0.tgz", - "integrity": "sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA==", - "dev": true - }, - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "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 - } - } - }, - "strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", - "dev": true - }, - "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==", - "devOptional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "optional": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string.prototype.trimend": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz", - "integrity": "sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" - } - }, - "string.prototype.trimstart": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz", - "integrity": "sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "devOptional": 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=", - "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=", - "devOptional": true - }, - "strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", - "optional": true, - "requires": { - "get-stdin": "^4.0.1" - } - }, - "style-loader": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-1.0.0.tgz", - "integrity": "sha512-B0dOCFwv7/eY31a5PCieNwMgMhVGFe9w+rh7s/Bx8kfFkrth9zfTZquoYvdw8URgiqxObQKcpW51Ugz1HjfdZw==", - "dev": true, - "requires": { - "loader-utils": "^1.2.3", - "schema-utils": "^2.0.1" - } - }, - "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" - } - }, - "sax": { - "version": "0.5.8", - "resolved": "https://registry.npmjs.org/sax/-/sax-0.5.8.tgz", - "integrity": "sha1-1HLbIo6zMcJQaw6MFVJK25OdEsE=", - "dev": true - }, - "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": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "optional": true - }, - "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": "6.1.0", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.0.tgz", - "integrity": "sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA==", - "devOptional": true, - "requires": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "dependencies": { - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "devOptional": true - } - } - }, - "terser": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.3.tgz", - "integrity": "sha512-Lw+ieAXmY69d09IIc/yqeBqXpEQIpDGZqT34ui1QWXIUpR2RjbqEkT8X7Lgex19hslSqcWM5iMN2kM11eMsESQ==", - "dev": true, - "requires": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - }, - "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-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - } - } - }, - "terser-webpack-plugin": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-3.0.3.tgz", - "integrity": "sha512-bZFnotuIKq5Rqzrs+qIwFzGdKdffV9epG5vDSEbYzvKAhPeR5RbbrQysfPgbIIMhNAQtZD2hGwBfSKUXjXZZZw==", - "dev": true, - "requires": { - "cacache": "^15.0.4", - "find-cache-dir": "^3.3.1", - "jest-worker": "^26.0.0", - "p-limit": "^2.3.0", - "schema-utils": "^2.6.6", - "serialize-javascript": "^3.1.0", - "source-map": "^0.6.1", - "terser": "^4.6.13", - "webpack-sources": "^1.4.3" - }, - "dependencies": { - "cacache": { - "version": "15.0.5", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.5.tgz", - "integrity": "sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A==", - "dev": true, - "requires": { - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.0", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" - } - }, - "find-cache-dir": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", - "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - } - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true - }, - "serialize-javascript": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.1.0.tgz", - "integrity": "sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg==", - "dev": true, - "requires": { - "randombytes": "^2.1.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 - }, - "source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "ssri": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.0.tgz", - "integrity": "sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA==", - "dev": true, - "requires": { - "minipass": "^3.1.1" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "terser": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", - "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", - "dev": true, - "requires": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - } - } - } - }, - "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.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", - "dev": true - }, - "timers-browserify": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", - "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", - "dev": true, - "requires": { - "setimmediate": "^1.0.4" - } - }, - "tmp": { - "version": "0.0.30", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", - "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=", - "optional": true, - "requires": { - "os-tmpdir": "~1.0.1" - } - }, - "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": "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 - }, - "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": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "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.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "devOptional": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "tree-kill": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", - "dev": true - }, - "trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", - "optional": 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==", - "optional": true, - "requires": { - "glob": "^7.1.2" - } - }, - "ts-node": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.4.1.tgz", - "integrity": "sha512-5LpRN+mTiCs7lI5EtbXmF/HfMeCjzt7DH9CZwtkr6SywStrNQC723wG+aOWFiLNn7zT3kD/RnFqi3ZUfr4l5Qw==", - "optional": true, - "requires": { - "arg": "^4.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "source-map-support": "^0.5.6", - "yn": "^3.0.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==", - "optional": true - }, - "source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", - "optional": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - } - } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "tslint": { - "version": "5.20.1", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.20.1.tgz", - "integrity": "sha512-EcMxhzCFt8k+/UP5r8waCf/lzmeSyVlqxqMEDQE7rWYiQky8KpIBz1JAoYXfROHrPZ1XXd43q8yQnULOLiBRQg==", - "optional": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "builtin-modules": "^1.1.1", - "chalk": "^2.3.0", - "commander": "^2.12.1", - "diff": "^4.0.1", - "glob": "^7.1.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", - "resolve": "^1.3.2", - "semver": "^5.3.0", - "tslib": "^1.8.0", - "tsutils": "^2.29.0" - }, - "dependencies": { - "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==", - "optional": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "optional": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "optional": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "tsutils": { - "version": "2.29.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", - "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", - "optional": 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=", - "devOptional": 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=", - "devOptional": true - }, - "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", - "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" - } - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, - "typescript": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.5.3.tgz", - "integrity": "sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g==", - "dev": true - }, - "ua-parser-js": { - "version": "0.7.22", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.22.tgz", - "integrity": "sha512-YUxzMjJ5T71w6a8WWVcMGM6YWOTX27rCoIQgLXiWaxqXSx9D7DNjiGWn1aJIRSQ5qr0xuhra77bSIh6voR/46Q==", - "dev": true - }, - "unicode-canonical-property-names-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", - "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", - "dev": true - }, - "unicode-match-property-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", - "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", - "dev": true, - "requires": { - "unicode-canonical-property-names-ecmascript": "^1.0.4", - "unicode-property-aliases-ecmascript": "^1.0.4" - } - }, - "unicode-match-property-value-ecmascript": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", - "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", - "dev": true - }, - "unicode-property-aliases-ecmascript": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", - "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==", - "dev": true - }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - } - }, - "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" - } - }, - "universal-analytics": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/universal-analytics/-/universal-analytics-0.4.23.tgz", - "integrity": "sha512-lgMIH7XBI6OgYn1woDEmxhGdj8yDefMKg7GkWdeATAlQZFrMrNyxSkpDzY57iY0/6fdlzTbBV03OawvvzG+q7A==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "request": "^2.88.2", - "uuid": "^3.0.0" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "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 - } - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true - }, - "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.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "dev": true - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "devOptional": 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 - }, - "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" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - } - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "devOptional": true - }, - "util-promisify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/util-promisify/-/util-promisify-2.1.0.tgz", - "integrity": "sha1-PCI2R2xNMsX/PEcAKt18E7moKlM=", - "dev": true, - "requires": { - "object.getownpropertydescriptors": "^2.0.3" - } - }, - "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.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "devOptional": 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==", - "devOptional": 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=", - "devOptional": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", - "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.7.5", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", - "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", - "dev": true, - "requires": { - "chokidar": "^3.4.1", - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0", - "watchpack-chokidar2": "^2.0.1" - } - }, - "watchpack-chokidar2": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", - "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", - "dev": true, - "optional": true, - "requires": { - "chokidar": "^2.1.8" - }, - "dependencies": { - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "optional": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "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, - "optional": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true, - "optional": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "optional": 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, - "optional": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "dev": true, - "optional": 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" - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "optional": 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, - "optional": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "dev": true, - "optional": true, - "requires": { - "nan": "^2.12.1" - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "optional": 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, - "optional": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "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, - "optional": true, - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "optional": 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, - "optional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "optional": 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" - } - }, - "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, - "optional": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } - }, - "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, - "optional": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } - } - }, - "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==", - "optional": true, - "requires": { - "@types/selenium-webdriver": "^3.0.0", - "selenium-webdriver": "^3.0.1" - } - }, - "webpack": { - "version": "4.39.2", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.39.2.tgz", - "integrity": "sha512-AKgTfz3xPSsEibH00JfZ9sHXGUwIQ6eZ9tLN8+VLzachk1Cw2LVmy+4R7ZiwTa9cZZ15tzySjeMui/UnSCAZhA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-module-context": "1.8.5", - "@webassemblyjs/wasm-edit": "1.8.5", - "@webassemblyjs/wasm-parser": "1.8.5", - "acorn": "^6.2.1", - "ajv": "^6.10.2", - "ajv-keywords": "^3.4.1", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^4.1.0", - "eslint-scope": "^4.0.3", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.4.0", - "loader-utils": "^1.2.3", - "memory-fs": "^0.4.1", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.1", - "neo-async": "^2.6.1", - "node-libs-browser": "^2.2.1", - "schema-utils": "^1.0.0", - "tapable": "^1.1.3", - "terser-webpack-plugin": "^1.4.1", - "watchpack": "^1.6.0", - "webpack-sources": "^1.4.1" - }, - "dependencies": { - "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" - } - } - } - }, - "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" - } - } - } - }, - "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" - } - }, - "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" - } - } - } - }, - "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" - } - }, - "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" - } - }, - "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" - } - }, - "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" - } - }, - "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.4.5", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", - "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", - "dev": true, - "requires": { - "cacache": "^12.0.2", - "find-cache-dir": "^2.1.0", - "is-wsl": "^1.1.0", - "schema-utils": "^1.0.0", - "serialize-javascript": "^4.0.0", - "source-map": "^0.6.1", - "terser": "^4.1.2", - "webpack-sources": "^1.4.0", - "worker-farm": "^1.7.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" - } - } - } - }, - "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 - } - } - }, - "webpack-dev-middleware": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz", - "integrity": "sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw==", - "dev": true, - "requires": { - "memory-fs": "^0.4.1", - "mime": "^2.4.4", - "mkdirp": "^0.5.1", - "range-parser": "^1.2.1", - "webpack-log": "^2.0.0" - }, - "dependencies": { - "mime": { - "version": "2.4.7", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.7.tgz", - "integrity": "sha512-dhNd1uA2u397uQk3Nv5LM4lm93WYDUXFn3Fu291FJerns4jyTudqhIWe4W04YLy7Uk1tm1Ore04NpjRvQp/NPA==", - "dev": true - } - } - }, - "webpack-dev-server": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz", - "integrity": "sha512-PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg==", - "dev": true, - "requires": { - "ansi-html": "0.0.7", - "bonjour": "^3.5.0", - "chokidar": "^2.1.8", - "compression": "^1.7.4", - "connect-history-api-fallback": "^1.6.0", - "debug": "^4.1.1", - "del": "^4.1.1", - "express": "^4.17.1", - "html-entities": "^1.3.1", - "http-proxy-middleware": "0.19.1", - "import-local": "^2.0.0", - "internal-ip": "^4.3.0", - "ip": "^1.1.5", - "is-absolute-url": "^3.0.3", - "killable": "^1.0.1", - "loglevel": "^1.6.8", - "opn": "^5.5.0", - "p-retry": "^3.0.1", - "portfinder": "^1.0.26", - "schema-utils": "^1.0.0", - "selfsigned": "^1.10.7", - "semver": "^6.3.0", - "serve-index": "^1.9.1", - "sockjs": "0.3.20", - "sockjs-client": "1.4.0", - "spdy": "^4.0.2", - "strip-ansi": "^3.0.1", - "supports-color": "^6.1.0", - "url": "^0.11.0", - "webpack-dev-middleware": "^3.7.2", - "webpack-log": "^2.0.0", - "ws": "^6.2.1", - "yargs": "^13.3.2" - }, - "dependencies": { - "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" - }, - "dependencies": { - "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" - } - } - } - }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true - }, - "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" - } - } - } - }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "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" - } - }, - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "del": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", - "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", - "dev": true, - "requires": { - "@types/glob": "^7.1.1", - "globby": "^6.1.0", - "is-path-cwd": "^2.0.0", - "is-path-in-cwd": "^2.0.0", - "p-map": "^2.0.0", - "pify": "^4.0.1", - "rimraf": "^2.6.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" - } - } - } - }, - "fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "dev": true, - "optional": true, - "requires": { - "nan": "^2.12.1" - } - }, - "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" - } - } - } - }, - "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 - } - } - }, - "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-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": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "dev": true - }, - "is-path-in-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", - "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", - "dev": true, - "requires": { - "is-path-inside": "^2.1.0" - } - }, - "is-path-inside": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", - "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", - "dev": true, - "requires": { - "path-is-inside": "^1.0.2" - } - }, - "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" - } - }, - "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 - }, - "p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "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 - }, - "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" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "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" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "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" - } - }, - "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" - } - } - } - }, - "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.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "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.6.5", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz", - "integrity": "sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY=", - "dev": true, - "requires": { - "websocket-extensions": ">=0.1.1" - } - }, - "websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", - "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": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "optional": true, - "requires": { - "isexe": "^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=", - "devOptional": 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==", - "optional": true, - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "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" - } - }, - "worker-plugin": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/worker-plugin/-/worker-plugin-3.2.0.tgz", - "integrity": "sha512-W5nRkw7+HlbsEt3qRP6MczwDDISjiRj2GYt9+bpe8A2La00TmJdwzG5bpdMXhRt1qcWmwAvl1TiKaHRa+XDS9Q==", - "dev": true, - "requires": { - "loader-utils": "^1.1.0" - } - }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "devOptional": true, - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.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==", - "devOptional": 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==", - "devOptional": true, - "requires": { - "color-convert": "^1.9.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=", - "devOptional": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "devOptional": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.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==", - "devOptional": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "devOptional": 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" - } - }, - "xhr2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/xhr2/-/xhr2-0.1.4.tgz", - "integrity": "sha1-f4dliEdxbbUCYyOBL4GMras4el8=" - }, - "xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", - "optional": true, - "requires": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - } - }, - "xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", - "optional": 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 - }, - "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.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", - "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", - "devOptional": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "devOptional": true - }, - "yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", - "devOptional": true, - "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" - }, - "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==", - "devOptional": true - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "devOptional": true, - "requires": { - "locate-path": "^3.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=", - "devOptional": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "devOptional": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.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==", - "devOptional": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "devOptional": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "devOptional": 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.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "optional": true - }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true - }, - "zone.js": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.9.1.tgz", - "integrity": "sha512-GkPiJL8jifSrKReKaTZ5jkhrMEgXbXYC+IPo1iquBjayRa0q86w3Dipjn8b415jpitMExe9lV8iTsv8tk3DGag==" - } - } -} diff --git a/Frontend/ClientApp/package.json b/Frontend/ClientApp/package.json deleted file mode 100644 index cb76dbf..0000000 --- a/Frontend/ClientApp/package.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "name": "frontend", - "version": "0.0.0", - "scripts": { - "ng": "ng", - "start": "ng serve", - "build": "ng build", - "build:ssr": "ng run Frontend:server:dev", - "test": "ng test", - "lint": "ng lint", - "e2e": "ng e2e" - }, - "private": true, - "dependencies": { - "@angular/animations": "8.2.12", - "@angular/common": "8.2.12", - "@angular/compiler": "8.2.12", - "@angular/core": "8.2.12", - "@angular/forms": "8.2.12", - "@angular/platform-browser": "8.2.12", - "@angular/platform-browser-dynamic": "8.2.12", - "@angular/platform-server": "8.2.12", - "@angular/router": "8.2.12", - "@nguniversal/module-map-ngfactory-loader": "8.1.1", - "bootstrap": "^4.6.0", - "core-js": "^3.8.3", - "jquery": "^3.5.1", - "node-sass": "^5.0.0", - "oidc-client": "^1.11.3", - "popper.js": "^1.16.0", - "protractor": "~5.4.2", - "rxjs": "^6.6.3", - "ts-node": "~8.4.1", - "tslint": "~5.20.0", - "zone.js": "0.9.1" - }, - "devDependencies": { - "@angular-devkit/build-angular": "^0.803.29", - "@angular/cli": "^8.3.29", - "@angular/compiler-cli": "^8.2.14", - "@angular/language-service": "^8.2.14", - "@types/jasmine": "~3.4.4", - "@types/jasminewd2": "~2.0.8", - "@types/node": "~12.11.6", - "codelyzer": "^5.2.2", - "ini": "^1.3.7", - "jasmine-core": "~3.5.0", - "jasmine-spec-reporter": "~4.2.1", - "karma": "^5.2.3", - "karma-chrome-launcher": "~3.1.0", - "karma-coverage-istanbul-reporter": "~2.1.0", - "karma-jasmine": "~2.0.1", - "karma-jasmine-html-reporter": "^1.5.4", - "typescript": "3.5.3" - }, - "optionalDependencies": { - "node-sass": "^5.0.0", - "protractor": "~5.4.2", - "ts-node": "~8.4.1", - "tslint": "~5.20.0" - } -} diff --git a/Frontend/ClientApp/src/app/app.component.html b/Frontend/ClientApp/src/app/app.component.html deleted file mode 100644 index 7173845..0000000 --- a/Frontend/ClientApp/src/app/app.component.html +++ /dev/null @@ -1,6 +0,0 @@ - - -
- -
- diff --git a/Frontend/ClientApp/src/app/app.component.ts b/Frontend/ClientApp/src/app/app.component.ts deleted file mode 100644 index 0a40b8c..0000000 --- a/Frontend/ClientApp/src/app/app.component.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Component } from '@angular/core'; - -@Component({ - selector: 'app-root', - templateUrl: './app.component.html' -}) -export class AppComponent { - title = 'app'; -} diff --git a/Frontend/ClientApp/src/app/app.module.ts b/Frontend/ClientApp/src/app/app.module.ts deleted file mode 100644 index cecdded..0000000 --- a/Frontend/ClientApp/src/app/app.module.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { BrowserModule } from '@angular/platform-browser'; -import { NgModule } from '@angular/core'; -import { FormsModule } from '@angular/forms'; -import { HttpClientModule } from '@angular/common/http'; -import { RouterModule } from '@angular/router'; - -import { AppComponent } from './app.component'; -import { NavMenuComponent } from './nav-menu/nav-menu.component'; -import { HomeComponent } from './home/home.component'; -import { CounterComponent } from './counter/counter.component'; -import { FetchDataComponent } from './fetch-data/fetch-data.component'; - -@NgModule({ - declarations: [ - AppComponent, - NavMenuComponent, - HomeComponent, - CounterComponent, - FetchDataComponent - ], - imports: [ - BrowserModule.withServerTransition({ appId: 'ng-cli-universal' }), - HttpClientModule, - FormsModule, - RouterModule.forRoot([ - { path: '', component: HomeComponent, pathMatch: 'full' }, - { path: 'counter', component: CounterComponent }, - { path: 'fetch-data', component: FetchDataComponent }, - ]) - ], - providers: [], - bootstrap: [AppComponent] -}) -export class AppModule { } diff --git a/Frontend/ClientApp/src/app/app.server.module.ts b/Frontend/ClientApp/src/app/app.server.module.ts deleted file mode 100644 index cfb0e02..0000000 --- a/Frontend/ClientApp/src/app/app.server.module.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { NgModule } from '@angular/core'; -import { ServerModule } from '@angular/platform-server'; -import { ModuleMapLoaderModule } from '@nguniversal/module-map-ngfactory-loader'; -import { AppComponent } from './app.component'; -import { AppModule } from './app.module'; - -@NgModule({ - imports: [AppModule, ServerModule, ModuleMapLoaderModule], - bootstrap: [AppComponent] -}) -export class AppServerModule { } diff --git a/Frontend/ClientApp/src/app/counter/counter.component.html b/Frontend/ClientApp/src/app/counter/counter.component.html deleted file mode 100644 index 89b9c80..0000000 --- a/Frontend/ClientApp/src/app/counter/counter.component.html +++ /dev/null @@ -1,7 +0,0 @@ -

Counter

- -

This is a simple example of an Angular component.

- -

Current count: {{ currentCount }}

- - diff --git a/Frontend/ClientApp/src/app/counter/counter.component.spec.ts b/Frontend/ClientApp/src/app/counter/counter.component.spec.ts deleted file mode 100644 index 37b350c..0000000 --- a/Frontend/ClientApp/src/app/counter/counter.component.spec.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { CounterComponent } from './counter.component'; - -describe('CounterComponent', () => { - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ CounterComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(CounterComponent); - fixture.detectChanges(); - }); - - it('should display a title', async(() => { - const titleText = fixture.nativeElement.querySelector('h1').textContent; - expect(titleText).toEqual('Counter'); - })); - - it('should start with count 0, then increments by 1 when clicked', async(() => { - const countElement = fixture.nativeElement.querySelector('strong'); - expect(countElement.textContent).toEqual('0'); - - const incrementButton = fixture.nativeElement.querySelector('button'); - incrementButton.click(); - fixture.detectChanges(); - expect(countElement.textContent).toEqual('1'); - })); -}); diff --git a/Frontend/ClientApp/src/app/counter/counter.component.ts b/Frontend/ClientApp/src/app/counter/counter.component.ts deleted file mode 100644 index 1f336aa..0000000 --- a/Frontend/ClientApp/src/app/counter/counter.component.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { Component } from '@angular/core'; - -@Component({ - selector: 'app-counter-component', - templateUrl: './counter.component.html' -}) -export class CounterComponent { - public currentCount = 0; - - public incrementCounter() { - this.currentCount++; - } -} diff --git a/Frontend/ClientApp/src/app/fetch-data/fetch-data.component.html b/Frontend/ClientApp/src/app/fetch-data/fetch-data.component.html deleted file mode 100644 index 19b3835..0000000 --- a/Frontend/ClientApp/src/app/fetch-data/fetch-data.component.html +++ /dev/null @@ -1,24 +0,0 @@ -

Weather forecast

- -

This component demonstrates fetching data from the server.

- -

Loading...

- - - - - - - - - - - - - - - - - - -
DateTemp. (C)Temp. (F)Summary
{{ forecast.date }}{{ forecast.temperatureC }}{{ forecast.temperatureF }}{{ forecast.summary }}
diff --git a/Frontend/ClientApp/src/app/fetch-data/fetch-data.component.ts b/Frontend/ClientApp/src/app/fetch-data/fetch-data.component.ts deleted file mode 100644 index 9b81e1b..0000000 --- a/Frontend/ClientApp/src/app/fetch-data/fetch-data.component.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { Component, Inject } from '@angular/core'; -import { HttpClient } from '@angular/common/http'; - -@Component({ - selector: 'app-fetch-data', - templateUrl: './fetch-data.component.html' -}) -export class FetchDataComponent { - public forecasts: WeatherForecast[]; - - constructor(http: HttpClient, @Inject('BASE_URL') baseUrl: string) { - http.get(baseUrl + 'weatherforecast').subscribe(result => { - this.forecasts = result; - }, error => console.error(error)); - } -} - -interface WeatherForecast { - date: string; - temperatureC: number; - temperatureF: number; - summary: string; -} diff --git a/Frontend/ClientApp/src/app/home/home.component.html b/Frontend/ClientApp/src/app/home/home.component.html deleted file mode 100644 index f74c2e7..0000000 --- a/Frontend/ClientApp/src/app/home/home.component.html +++ /dev/null @@ -1,14 +0,0 @@ -

Hello, world!

-

Welcome to your new single-page application, built with:

- -

To help you get started, we've also set up:

-
    -
  • Client-side navigation. For example, click Counter then Back to return here.
  • -
  • Angular CLI integration. In development mode, there's no need to run ng serve. It runs in the background automatically, so your client-side resources are dynamically built on demand and the page refreshes when you modify any file.
  • -
  • Efficient production builds. In production mode, development-time features are disabled, and your dotnet publish configuration automatically invokes ng build to produce minified, ahead-of-time compiled JavaScript files.
  • -
-

The ClientApp subdirectory is a standard Angular CLI application. If you open a command prompt in that directory, you can run any ng command (e.g., ng test), or use npm to install extra packages into it.

diff --git a/Frontend/ClientApp/src/app/home/home.component.ts b/Frontend/ClientApp/src/app/home/home.component.ts deleted file mode 100644 index 2747b30..0000000 --- a/Frontend/ClientApp/src/app/home/home.component.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { Component } from '@angular/core'; - -@Component({ - selector: 'app-home', - templateUrl: './home.component.html', -}) -export class HomeComponent { -} diff --git a/Frontend/ClientApp/src/app/nav-menu/nav-menu.component.css b/Frontend/ClientApp/src/app/nav-menu/nav-menu.component.css deleted file mode 100644 index 10389ef..0000000 --- a/Frontend/ClientApp/src/app/nav-menu/nav-menu.component.css +++ /dev/null @@ -1,18 +0,0 @@ -a.navbar-brand { - white-space: normal; - text-align: center; - word-break: break-all; -} - -html { - font-size: 14px; -} -@media (min-width: 768px) { - html { - font-size: 16px; - } -} - -.box-shadow { - box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .05); -} diff --git a/Frontend/ClientApp/src/app/nav-menu/nav-menu.component.html b/Frontend/ClientApp/src/app/nav-menu/nav-menu.component.html deleted file mode 100644 index 998853b..0000000 --- a/Frontend/ClientApp/src/app/nav-menu/nav-menu.component.html +++ /dev/null @@ -1,44 +0,0 @@ -
- -
diff --git a/Frontend/ClientApp/src/app/nav-menu/nav-menu.component.ts b/Frontend/ClientApp/src/app/nav-menu/nav-menu.component.ts deleted file mode 100644 index 327a374..0000000 --- a/Frontend/ClientApp/src/app/nav-menu/nav-menu.component.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Component } from '@angular/core'; - -@Component({ - selector: 'app-nav-menu', - templateUrl: './nav-menu.component.html', - styleUrls: ['./nav-menu.component.css'] -}) -export class NavMenuComponent { - isExpanded = false; - - collapse() { - this.isExpanded = false; - } - - toggle() { - this.isExpanded = !this.isExpanded; - } -} diff --git a/Frontend/ClientApp/src/assets/.gitkeep b/Frontend/ClientApp/src/assets/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/Frontend/ClientApp/src/environments/environment.prod.ts b/Frontend/ClientApp/src/environments/environment.prod.ts deleted file mode 100644 index 3612073..0000000 --- a/Frontend/ClientApp/src/environments/environment.prod.ts +++ /dev/null @@ -1,3 +0,0 @@ -export const environment = { - production: true -}; diff --git a/Frontend/ClientApp/src/environments/environment.ts b/Frontend/ClientApp/src/environments/environment.ts deleted file mode 100644 index 012182e..0000000 --- a/Frontend/ClientApp/src/environments/environment.ts +++ /dev/null @@ -1,15 +0,0 @@ -// 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 -}; - -/* - * In development mode, to ignore zone related error stack frames such as - * `zone.run`, `zoneDelegate.invokeTask` for easier debugging, you can - * import the following file, but please comment it out in production mode - * because it will have performance impact when throw error - */ -// import 'zone.js/dist/zone-error'; // Included with Angular CLI. diff --git a/Frontend/ClientApp/src/index.html b/Frontend/ClientApp/src/index.html deleted file mode 100644 index 7a15596..0000000 --- a/Frontend/ClientApp/src/index.html +++ /dev/null @@ -1,14 +0,0 @@ - - - - - Frontend - - - - - - - Loading... - - diff --git a/Frontend/ClientApp/src/karma.conf.js b/Frontend/ClientApp/src/karma.conf.js deleted file mode 100644 index 4a9730b..0000000 --- a/Frontend/ClientApp/src/karma.conf.js +++ /dev/null @@ -1,31 +0,0 @@ -// 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'], - fixWebpackSourcePaths: true - }, - reporters: ['progress', 'kjhtml'], - port: 9876, - colors: true, - logLevel: config.LOG_INFO, - autoWatch: true, - browsers: ['Chrome'], - singleRun: false - }); -}; diff --git a/Frontend/ClientApp/src/main.ts b/Frontend/ClientApp/src/main.ts deleted file mode 100644 index a2f708c..0000000 --- a/Frontend/ClientApp/src/main.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { enableProdMode } from '@angular/core'; -import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; - -import { AppModule } from './app/app.module'; -import { environment } from './environments/environment'; - -export function getBaseUrl() { - return document.getElementsByTagName('base')[0].href; -} - -const providers = [ - { provide: 'BASE_URL', useFactory: getBaseUrl, deps: [] } -]; - -if (environment.production) { - enableProdMode(); -} - -platformBrowserDynamic(providers).bootstrapModule(AppModule) - .catch(err => console.log(err)); diff --git a/Frontend/ClientApp/src/polyfills.ts b/Frontend/ClientApp/src/polyfills.ts deleted file mode 100644 index aa665d6..0000000 --- a/Frontend/ClientApp/src/polyfills.ts +++ /dev/null @@ -1,63 +0,0 @@ -/** - * This file includes polyfills needed by Angular and is loaded before the app. - * You can add your own extra polyfills to this file. - * - * This file is divided into 2 sections: - * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers. - * 2. Application imports. Files imported after ZoneJS that should be loaded before your main - * file. - * - * The current setup is for so-called "evergreen" browsers; the last versions of browsers that - * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera), - * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile. - * - * Learn more in https://angular.io/guide/browser-support - */ - -/*************************************************************************************************** - * BROWSER POLYFILLS - */ - -/** IE10 and IE11 requires the following for NgClass support on SVG elements */ -// import 'classlist.js'; // Run `npm install --save classlist.js`. - -/** - * Web Animations `@angular/platform-browser/animations` - * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari. - * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0). - */ -// import 'web-animations-js'; // Run `npm install --save web-animations-js`. - -/** - * By default, zone.js will patch all possible macroTask and DomEvents - * user can disable parts of macroTask/DomEvents patch by setting following flags - * because those flags need to be set before `zone.js` being loaded, and webpack - * will put import in the top of bundle, so user need to create a separate file - * in this directory (for example: zone-flags.ts), and put the following flags - * into that file, and then add the following code before importing zone.js. - * import './zone-flags.ts'; - * - * The flags allowed in zone-flags.ts are listed here. - * - * The following flags will work for all browsers. - * - * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame - * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick - * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames - * - * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js - * with the following flag, it will bypass `zone.js` patch for IE/Edge - * - * (window as any).__Zone_enable_cross_context_check = true; - * - */ - -/*************************************************************************************************** - * Zone JS is required by default for Angular itself. - */ -import 'zone.js/dist/zone'; // Included with Angular CLI. - - -/*************************************************************************************************** - * APPLICATION IMPORTS - */ diff --git a/Frontend/ClientApp/src/styles.css b/Frontend/ClientApp/src/styles.css deleted file mode 100644 index 3ef6a64..0000000 --- a/Frontend/ClientApp/src/styles.css +++ /dev/null @@ -1,16 +0,0 @@ -/* You can add global styles to this file, and also import other style files */ - -/* Provide sufficient contrast against white background */ -a { - color: #0366d6; -} - -code { - color: #e01a76; -} - -.btn-primary { - color: #fff; - background-color: #1b6ec2; - border-color: #1861ac; -} diff --git a/Frontend/ClientApp/src/test.ts b/Frontend/ClientApp/src/test.ts deleted file mode 100644 index 8849258..0000000 --- a/Frontend/ClientApp/src/test.ts +++ /dev/null @@ -1,20 +0,0 @@ -// 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; - -// 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/Frontend/ClientApp/src/tsconfig.app.json b/Frontend/ClientApp/src/tsconfig.app.json deleted file mode 100644 index 8ea061e..0000000 --- a/Frontend/ClientApp/src/tsconfig.app.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "extends": "../tsconfig.json", - "compilerOptions": { - "outDir": "../out-tsc/app", - "types": [] - }, - "exclude": [ - "src/test.ts", - "**/*.spec.ts" - ] -} diff --git a/Frontend/ClientApp/src/tsconfig.server.json b/Frontend/ClientApp/src/tsconfig.server.json deleted file mode 100644 index 3f183ef..0000000 --- a/Frontend/ClientApp/src/tsconfig.server.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "../tsconfig.json", - "compilerOptions": { - "module": "commonjs" - }, - "angularCompilerOptions": { - "entryModule": "app/app.server.module#AppServerModule" - } -} diff --git a/Frontend/ClientApp/src/tsconfig.spec.json b/Frontend/ClientApp/src/tsconfig.spec.json deleted file mode 100644 index de77336..0000000 --- a/Frontend/ClientApp/src/tsconfig.spec.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "extends": "../tsconfig.json", - "compilerOptions": { - "outDir": "../out-tsc/spec", - "types": [ - "jasmine", - "node" - ] - }, - "files": [ - "test.ts", - "polyfills.ts" - ], - "include": [ - "**/*.spec.ts", - "**/*.d.ts" - ] -} diff --git a/Frontend/ClientApp/src/tslint.json b/Frontend/ClientApp/src/tslint.json deleted file mode 100644 index 52e2c1a..0000000 --- a/Frontend/ClientApp/src/tslint.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "extends": "../tslint.json", - "rules": { - "directive-selector": [ - true, - "attribute", - "app", - "camelCase" - ], - "component-selector": [ - true, - "element", - "app", - "kebab-case" - ] - } -} diff --git a/Frontend/ClientApp/tsconfig.json b/Frontend/ClientApp/tsconfig.json deleted file mode 100644 index b93cbfc..0000000 --- a/Frontend/ClientApp/tsconfig.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "compileOnSave": false, - "compilerOptions": { - "baseUrl": "./", - "module": "esnext", - "outDir": "./dist/out-tsc", - "sourceMap": true, - "declaration": false, - "moduleResolution": "node", - "emitDecoratorMetadata": true, - "experimentalDecorators": true, - "target": "es2015", - "typeRoots": [ - "node_modules/@types" - ], - "lib": [ - "es2017", - "dom" - ] - } -} diff --git a/Frontend/ClientApp/tslint.json b/Frontend/ClientApp/tslint.json deleted file mode 100644 index f5f06e9..0000000 --- a/Frontend/ClientApp/tslint.json +++ /dev/null @@ -1,130 +0,0 @@ -{ - "rulesDirectory": [ - "node_modules/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-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, - "no-inputs-metadata-property": true, - "no-outputs-metadata-property": true, - "no-host-metadata-property": true, - "no-input-rename": true, - "no-output-rename": true, - "use-lifecycle-interface": true, - "use-pipe-transform-interface": true, - "component-class-suffix": true, - "directive-class-suffix": true - } -} diff --git a/Frontend/Controllers/WeatherForecastController.cs b/Frontend/Controllers/WeatherForecastController.cs deleted file mode 100644 index cc510eb..0000000 --- a/Frontend/Controllers/WeatherForecastController.cs +++ /dev/null @@ -1,39 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Logging; - -namespace Frontend.Controllers -{ - [ApiController] - [Route("[controller]")] - public class WeatherForecastController : ControllerBase - { - private static readonly string[] Summaries = new[] - { - "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" - }; - - private readonly ILogger _logger; - - public WeatherForecastController(ILogger logger) - { - _logger = logger; - } - - [HttpGet] - public IEnumerable Get() - { - var rng = new Random(); - return Enumerable.Range(1, 5).Select(index => new WeatherForecast - { - Date = DateTime.Now.AddDays(index), - TemperatureC = rng.Next(-20, 55), - Summary = Summaries[rng.Next(Summaries.Length)] - }) - .ToArray(); - } - } -} diff --git a/Frontend/Frontend.csproj b/Frontend/Frontend.csproj deleted file mode 100644 index 085b632..0000000 --- a/Frontend/Frontend.csproj +++ /dev/null @@ -1,54 +0,0 @@ - - - - net5.0 - true - Latest - false - ClientApp\ - $(DefaultItemExcludes);$(SpaRoot)node_modules\** - - - false - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - %(DistFiles.Identity) - PreserveNewest - true - - - - - diff --git a/Frontend/Pages/Error.cshtml b/Frontend/Pages/Error.cshtml deleted file mode 100644 index 3961204..0000000 --- a/Frontend/Pages/Error.cshtml +++ /dev/null @@ -1,26 +0,0 @@ -@page -@model ErrorModel -@{ - ViewData["Title"] = "Error"; -} - -

Error.

-

An error occurred while processing your request.

- -@if (Model.ShowRequestId) -{ -

- Request ID: @Model.RequestId -

-} - -

Development Mode

-

- Swapping to the Development environment displays detailed information about the error that occurred. -

-

- The Development environment shouldn't be enabled for deployed applications. - It can result in displaying sensitive information from exceptions to end users. - For local debugging, enable the Development environment by setting the ASPNETCORE_ENVIRONMENT environment variable to Development - and restarting the app. -

diff --git a/Frontend/Pages/Error.cshtml.cs b/Frontend/Pages/Error.cshtml.cs deleted file mode 100644 index 27dc286..0000000 --- a/Frontend/Pages/Error.cshtml.cs +++ /dev/null @@ -1,31 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.Linq; -using System.Threading.Tasks; -using Microsoft.AspNetCore.Mvc; -using Microsoft.AspNetCore.Mvc.RazorPages; -using Microsoft.Extensions.Logging; - -namespace Frontend.Pages -{ - [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)] - public class ErrorModel : PageModel - { - private readonly ILogger _logger; - - public ErrorModel(ILogger logger) - { - _logger = logger; - } - - public string RequestId { get; set; } - - public bool ShowRequestId => !string.IsNullOrEmpty(RequestId); - - public void OnGet() - { - RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier; - } - } -} diff --git a/Frontend/Pages/_ViewImports.cshtml b/Frontend/Pages/_ViewImports.cshtml deleted file mode 100644 index 3e322c2..0000000 --- a/Frontend/Pages/_ViewImports.cshtml +++ /dev/null @@ -1,3 +0,0 @@ -@using Frontend -@namespace Frontend.Pages -@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers diff --git a/Frontend/Program.cs b/Frontend/Program.cs deleted file mode 100644 index ddc7c7a..0000000 --- a/Frontend/Program.cs +++ /dev/null @@ -1,26 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Microsoft.AspNetCore.Hosting; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.Hosting; -using Microsoft.Extensions.Logging; - -namespace Frontend -{ - public class Program - { - public static void Main(string[] args) - { - CreateHostBuilder(args).Build().Run(); - } - - public static IHostBuilder CreateHostBuilder(string[] args) => - Host.CreateDefaultBuilder(args) - .ConfigureWebHostDefaults(webBuilder => - { - webBuilder.UseStartup(); - }); - } -} diff --git a/Frontend/Properties/launchSettings.json b/Frontend/Properties/launchSettings.json deleted file mode 100644 index a3d84d5..0000000 --- a/Frontend/Properties/launchSettings.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "iisSettings": { - "windowsAuthentication": false, - "anonymousAuthentication": true, - "iisExpress": { - "applicationUrl": "http://localhost:60366", - "sslPort": 44321 - } - }, - "profiles": { - "IIS Express": { - "commandName": "IISExpress", - "launchBrowser": true, - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - } - }, - "Frontend": { - "commandName": "Project", - "launchBrowser": true, - "applicationUrl": "https://localhost:5001;http://localhost:5000", - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - } - } - } -} diff --git a/Frontend/Startup.cs b/Frontend/Startup.cs deleted file mode 100644 index 3f58a59..0000000 --- a/Frontend/Startup.cs +++ /dev/null @@ -1,75 +0,0 @@ -using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Hosting; -using Microsoft.AspNetCore.HttpsPolicy; -using Microsoft.AspNetCore.SpaServices.AngularCli; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Hosting; - -namespace Frontend -{ - public class Startup - { - public Startup(IConfiguration configuration) - { - Configuration = configuration; - } - - public IConfiguration Configuration { get; } - - // This method gets called by the runtime. Use this method to add services to the container. - public void ConfigureServices(IServiceCollection services) - { - services.AddControllersWithViews(); - // In production, the Angular files will be served from this directory - services.AddSpaStaticFiles(configuration => - { - configuration.RootPath = "ClientApp/dist"; - }); - } - - // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. - public void Configure(IApplicationBuilder app, IWebHostEnvironment env) - { - if (env.IsDevelopment()) - { - app.UseDeveloperExceptionPage(); - } - else - { - app.UseExceptionHandler("/Error"); - // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts. - app.UseHsts(); - } - - app.UseHttpsRedirection(); - app.UseStaticFiles(); - if (!env.IsDevelopment()) - { - app.UseSpaStaticFiles(); - } - - app.UseRouting(); - - app.UseEndpoints(endpoints => - { - endpoints.MapControllerRoute( - name: "default", - pattern: "{controller}/{action=Index}/{id?}"); - }); - - app.UseSpa(spa => - { - // To learn more about options for serving an Angular SPA from ASP.NET Core, - // see https://go.microsoft.com/fwlink/?linkid=864501 - - spa.Options.SourcePath = "ClientApp"; - - if (env.IsDevelopment()) - { - spa.UseAngularCliServer(npmScript: "start"); - } - }); - } - } -} diff --git a/Frontend/WeatherForecast.cs b/Frontend/WeatherForecast.cs deleted file mode 100644 index 779e728..0000000 --- a/Frontend/WeatherForecast.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System; - -namespace Frontend -{ - public class WeatherForecast - { - public DateTime Date { get; set; } - - public int TemperatureC { get; set; } - - public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); - - public string Summary { get; set; } - } -} diff --git a/Frontend/appsettings.Development.json b/Frontend/appsettings.Development.json deleted file mode 100644 index 8983e0f..0000000 --- a/Frontend/appsettings.Development.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "Logging": { - "LogLevel": { - "Default": "Information", - "Microsoft": "Warning", - "Microsoft.Hosting.Lifetime": "Information" - } - } -} diff --git a/Frontend/appsettings.json b/Frontend/appsettings.json deleted file mode 100644 index ad75fee..0000000 --- a/Frontend/appsettings.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "Logging": { - "LogLevel": { - "Default": "Information", - "Microsoft": "Warning", - "Microsoft.Hosting.Lifetime": "Information" - } - }, -"AllowedHosts": "*" -} diff --git a/Frontend/wwwroot/favicon.ico b/Frontend/wwwroot/favicon.ico deleted file mode 100644 index 63e859b476eff5055e0e557aaa151ca8223fbeef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5430 zcmc&&Yj2xp8Fqnv;>&(QB_ve7>^E#o2mu=cO~A%R>DU-_hfbSRv1t;m7zJ_AMrntN zy0+^f&8be>q&YYzH%(88lQ?#KwiCzaCO*ZEo%j&v;<}&Lj_stKTKK>#U3nin@AF>w zb3ONSAFR{u(S1d?cdw53y}Gt1b-Hirbh;;bm(Rcbnoc*%@jiaXM|4jU^1WO~`TYZ~ zC-~jh9~b-f?fX`DmwvcguQzn*uV}c^Vd&~?H|RUs4Epv~gTAfR(B0lT&?RWQOtduM z^1vUD9{HQsW!{a9|0crA34m7Z6lpG^}f6f?={zD+ zXAzk^i^aKN_}s2$eX81wjSMONE#WVdzf|MT)Ap*}Vsn!XbvsI#6o&ij{87^d%$|A{ z=F{KB%)g%@z76yBzbb7seW**Ju8r4e*Z3PWNX3_tTDgzZatz7)Q6ytwB%@&@A|XT; zecM`Snxx5po$C)%yCP!KEtos~eOS)@2=kX-RIm)4glMCoagTEFxrBeSX%Euz734Fk z%7)x(k~T!@Hbg_37NSQL!vlTBXoURSzt~I**Zw`&F24fH*&kx=%nvZv|49SC*daD( zIw<~%#=lk8{2-l(BcIjy^Q$Q&m#KlWL9?UG{b8@qhlD z;umc+6p%|NsAT~0@DgV4-NKgQuWPWrmPIK&&XhV&n%`{l zOl^bbWYjQNuVXTXESO)@|iUKVmErPUDfz2Wh`4dF@OFiaCW|d`3paV^@|r^8T_ZxM)Z+$p5qx# z#K=z@%;aBPO=C4JNNGqVv6@UGolIz;KZsAro``Rz8X%vq_gpi^qEV&evgHb_=Y9-l z`)imdx0UC>GWZYj)3+3aKh?zVb}=@%oNzg7a8%kfVl)SV-Amp1Okw&+hEZ3|v(k8vRjXW9?ih`&FFM zV$~{j3IzhtcXk?Mu_!12;=+I7XK-IR2>Yd%VB^?oI9c^E&Chb&&je$NV0P-R;ujkP z;cbLCCPEF6|22NDj=S`F^2e~XwT1ZnRX8ra0#DaFa9-X|8(xNW_+JhD75WnSd7cxo z2>I_J5{c|WPfrgl7E2R)^c}F7ry()Z>$Jhk9CzZxiPKL#_0%`&{MX>P_%b~Dx0D^S z7xP1(DQ!d_Icpk!RN3I1w@~|O1ru#CO==h#9M~S4Chx*@?=EKUPGBv$tmU+7Zs_al z`!jR?6T&Z7(%uVq>#yLu`abWk!FBlnY{RFNHlj~6zh*;@u}+}viRKsD`IIxN#R-X3 z@vxu#EA_m}I503U(8Qmx^}u;)KfGP`O9E1H1Q|xeeksX8jC%@!{YT1)!lWgO=+Y3*jr=iSxvOW1}^HSy=y){tOMQJ@an>sOl4FYniE z;GOxd7AqxZNbYFNqobpv&HVO$c-w!Y*6r;$2oJ~h(a#(Bp<-)dg*mNigX~9rPqcHv z^;c*|Md?tD)$y?6FO$DWl$jUGV`F1G_^E&E>sY*YnA~ruv3=z9F8&&~Xpm<<75?N3 z>x~`I&M9q)O1=zWZHN9hZWx>RQ}zLP+iL57Q)%&_^$Sme^^G7;e-P~CR?kqU#Io#( z(nH1Wn*Ig)|M>WLGrxoU?FZrS`4GO&w;+39A3f8w{{Q7eg|$+dIlNFPAe+tN=FOYU z{A&Fg|H73+w1IK(W=j*L>JQgz$g0 z7JpKXLHIh}#$wm|N`s}o-@|L_`>*(gTQ~)wr3Eap7g%PVNisKw82im;Gdv#85x#s+ zoqqtnwu4ycd>cOQgRh-=aEJbnvVK`}ja%+FZx}&ehtX)n(9nVfe4{mn0bgijUbNr7Tf5X^$*{qh2%`?--%+sbSrjE^;1e3>% zqa%jdY16{Y)a1hSy*mr0JGU05Z%=qlx5vGvTjSpTt6k%nR06q}1DU`SQh_ZAeJ}A@`hL~xvv05U?0%=spP`R>dk?cOWM9^KNb7B?xjex>OZo%JMQQ1Q zB|q@}8RiP@DWn-(fB;phPaIOP2Yp)XN3-Fsn)S3w($4&+p8f5W_f%gac}QvmkHfCj$2=!t`boCvQ zCW;&Dto=f8v##}dy^wg3VNaBy&kCe3N;1|@n@pUaMPT?(aJ9b*(gJ28$}(2qFt$H~u5z94xcIQkcOI++)*exzbrk?WOOOf*|%k5#KV zL=&ky3)Eirv$wbRJ2F2s_ILQY--D~~7>^f}W|Aw^e7inXr#WLI{@h`0|jHud2Y~cI~Yn{r_kU^Vo{1gja Date: Thu, 17 Jun 2021 18:53:11 +0200 Subject: [PATCH 017/118] move models --- Dockerfile | 20 +++++++++++++------ EnoLandingPage.sln | 12 ----------- .../EnoLandingPageBackend.csproj | 4 ---- .../{Database => Models}/LandingPageTeam.cs | 0 .../LandingPageTeamVulnbox.cs | 0 .../LandingPageVulnboxStatus.cs | 0 6 files changed, 14 insertions(+), 22 deletions(-) rename EnoLandingPageBackend/{Database => Models}/LandingPageTeam.cs (100%) rename EnoLandingPageBackend/{Database => Models}/LandingPageTeamVulnbox.cs (100%) rename EnoLandingPageBackend/{Database => Models}/LandingPageVulnboxStatus.cs (100%) diff --git a/Dockerfile b/Dockerfile index a5b4ceb..530c299 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,26 +1,34 @@ -FROM mcr.microsoft.com/dotnet/sdk:5.0-focal AS build +# Build Backend Portal +FROM mcr.microsoft.com/dotnet/sdk:5.0-focal AS backend-build WORKDIR /src +# TODO: Update build # Fetch deps COPY EnoLandingPage.sln EnoLandingPage.sln COPY EnoLandingPageBackend/EnoLandingPageBackend.csproj EnoLandingPageBackend/EnoLandingPageBackend.csproj -COPY EnoLandingPageCore/EnoLandingPageCore.csproj EnoLandingPageCore/EnoLandingPageCore.csproj -COPY EnoLandingPageFrontend/EnoLandingPageFrontend.csproj EnoLandingPageFrontend/EnoLandingPageFrontend.csproj RUN dotnet restore # Publish COPY EnoLandingPageBackend EnoLandingPageBackend -COPY EnoLandingPageCore EnoLandingPageCore -COPY EnoLandingPageFrontend EnoLandingPageFrontend COPY Directory.Build.props Directory.Build.props COPY ENOWARS.ruleset ENOWARS.ruleset COPY stylecop.json stylecop.json RUN dotnet publish -c Release -o /app +# Build Frontend +FROM node:12.7-alpine AS build +WORKDIR /usr/src/app +COPY package.json package-lock.json ./ +RUN npm install +COPY EnoLandingPageBackend/ClientApp . +RUN npm run build + + # Copy to runtime container FROM mcr.microsoft.com/dotnet/aspnet:5.0 WORKDIR /app EXPOSE 80 -COPY --from=build /app . +COPY --from=backend-build /app . +COPY --from=build /usr/src/app/dist /ClientApp COPY EnoLandingPageBackend/appsettings.json . ENTRYPOINT ["dotnet", "EnoLandingPageBackend.dll"] diff --git a/EnoLandingPage.sln b/EnoLandingPage.sln index dfc607f..09d5c4d 100644 --- a/EnoLandingPage.sln +++ b/EnoLandingPage.sln @@ -3,12 +3,8 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30711.63 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EnoLandingPageCore", "EnoLandingPageCore\EnoLandingPageCore.csproj", "{7972F197-F59D-41D8-98C2-CD618BA9AF43}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EnoLandingPageBackend", "EnoLandingPageBackend\EnoLandingPageBackend.csproj", "{10C14526-179D-4627-9891-F2B25F353260}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EnoLandingPageFrontend", "EnoLandingPageFrontend\EnoLandingPageFrontend.csproj", "{B36F02C0-04D2-4F73-A40A-73DC0EFBEB8A}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{6D9FEE9F-BA38-439F-91EE-B9AB1CEE9EE9}" ProjectSection(SolutionItems) = preProject Directory.Build.props = Directory.Build.props @@ -20,18 +16,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {7972F197-F59D-41D8-98C2-CD618BA9AF43}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7972F197-F59D-41D8-98C2-CD618BA9AF43}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7972F197-F59D-41D8-98C2-CD618BA9AF43}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7972F197-F59D-41D8-98C2-CD618BA9AF43}.Release|Any CPU.Build.0 = Release|Any CPU {10C14526-179D-4627-9891-F2B25F353260}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {10C14526-179D-4627-9891-F2B25F353260}.Debug|Any CPU.Build.0 = Debug|Any CPU {10C14526-179D-4627-9891-F2B25F353260}.Release|Any CPU.ActiveCfg = Release|Any CPU {10C14526-179D-4627-9891-F2B25F353260}.Release|Any CPU.Build.0 = Release|Any CPU - {B36F02C0-04D2-4F73-A40A-73DC0EFBEB8A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B36F02C0-04D2-4F73-A40A-73DC0EFBEB8A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B36F02C0-04D2-4F73-A40A-73DC0EFBEB8A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B36F02C0-04D2-4F73-A40A-73DC0EFBEB8A}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/EnoLandingPageBackend/EnoLandingPageBackend.csproj b/EnoLandingPageBackend/EnoLandingPageBackend.csproj index 7109d89..bbdc1ad 100644 --- a/EnoLandingPageBackend/EnoLandingPageBackend.csproj +++ b/EnoLandingPageBackend/EnoLandingPageBackend.csproj @@ -43,10 +43,6 @@ - - - - diff --git a/EnoLandingPageBackend/Database/LandingPageTeam.cs b/EnoLandingPageBackend/Models/LandingPageTeam.cs similarity index 100% rename from EnoLandingPageBackend/Database/LandingPageTeam.cs rename to EnoLandingPageBackend/Models/LandingPageTeam.cs diff --git a/EnoLandingPageBackend/Database/LandingPageTeamVulnbox.cs b/EnoLandingPageBackend/Models/LandingPageTeamVulnbox.cs similarity index 100% rename from EnoLandingPageBackend/Database/LandingPageTeamVulnbox.cs rename to EnoLandingPageBackend/Models/LandingPageTeamVulnbox.cs diff --git a/EnoLandingPageBackend/Database/LandingPageVulnboxStatus.cs b/EnoLandingPageBackend/Models/LandingPageVulnboxStatus.cs similarity index 100% rename from EnoLandingPageBackend/Database/LandingPageVulnboxStatus.cs rename to EnoLandingPageBackend/Models/LandingPageVulnboxStatus.cs From 79f4f1f95cf0d2f71c15053fe4be0b91567c8b45 Mon Sep 17 00:00:00 2001 From: Daniel Habenicht Date: Thu, 17 Jun 2021 21:18:08 +0200 Subject: [PATCH 018/118] fix imports --- .../src/app/modules/app-navigation/app-navigation.component.ts | 2 +- .../ClientApp/src/app/services/theme.service.ts | 2 +- .../ClientApp/src/app/shared/states/App.state.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.ts b/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.ts index f441323..14bb46f 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.ts +++ b/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.ts @@ -16,7 +16,7 @@ import { } from 'src/app/shared/states/App.state'; import { environment } from 'src/environments/environment'; import { EnvironmentInterface } from 'src/environments/environmentInterfaces'; -import { Theme } from 'src/app/shared/models/enumberables/Theme'; +import { Theme } from 'src/app/shared/models/enumberables/theme'; import { APP_ROUTES } from 'src/app/app-routing.module'; import { coerceStringArray } from '@angular/cdk/coercion'; import { TeamDetailsMessage } from 'projects/backend-api/src/lib/model/teamDetailsMessage'; diff --git a/EnoLandingPageBackend/ClientApp/src/app/services/theme.service.ts b/EnoLandingPageBackend/ClientApp/src/app/services/theme.service.ts index 57f343c..1a92e42 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/services/theme.service.ts +++ b/EnoLandingPageBackend/ClientApp/src/app/services/theme.service.ts @@ -1,6 +1,6 @@ import { OverlayContainer } from '@angular/cdk/overlay'; import { Injectable } from '@angular/core'; -import { Theme } from 'src/app/shared/models/enumberables/Theme'; +import { Theme } from 'src/app/shared/models/enumberables/theme'; @Injectable() export class ThemeService { diff --git a/EnoLandingPageBackend/ClientApp/src/app/shared/states/App.state.ts b/EnoLandingPageBackend/ClientApp/src/app/shared/states/App.state.ts index d39a906..ce6a3b7 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/shared/states/App.state.ts +++ b/EnoLandingPageBackend/ClientApp/src/app/shared/states/App.state.ts @@ -14,7 +14,7 @@ import { } from 'projects/backend-api/src/lib'; import { TeamDetailsMessage } from 'projects/backend-api/src/lib/model/teamDetailsMessage'; import { ThemeService } from 'src/app/services/theme.service'; -import { Theme } from 'src/app/shared/models/enumberables/Theme'; +import { Theme } from 'src/app/shared/models/enumberables/theme'; export class ServiceWorkerNotificationDisplayed { public static readonly type: string = From 7385235489e4d702730a46a54a1031eb8f1edf56 Mon Sep 17 00:00:00 2001 From: Daniel Habenicht Date: Thu, 17 Jun 2021 23:16:48 +0200 Subject: [PATCH 019/118] add hosting variants --- .dockerignore | 9 +- .gitignore | 2 +- Dockerfile | 22 +++-- .../Controllers/ScoreboardInfoController.cs | 36 ++++++- .../EnoLandingPageBackend.csproj | 9 +- README.md | 71 +++++++------- docker-compose.yml | 16 +++ example.env | 13 +++ nginx/mime.types | 97 +++++++++++++++++++ nginx/nginx.conf | 76 +++++++++++++++ static.Dockerfile | 29 ++++++ static.docker-compose.yml | 10 ++ substitute_variables.sh | 31 ++++++ 13 files changed, 362 insertions(+), 59 deletions(-) create mode 100644 docker-compose.yml create mode 100644 example.env create mode 100644 nginx/mime.types create mode 100644 nginx/nginx.conf create mode 100644 static.Dockerfile create mode 100644 static.docker-compose.yml create mode 100644 substitute_variables.sh diff --git a/.dockerignore b/.dockerignore index 43a315c..ac134f2 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,8 +1,9 @@ .dockerignore Dockerfile docker-compose.yml -bin/ -obj/ +**/bin/ +**/obj/ +**/node_modules/**/* .vs .vs-code .git @@ -11,6 +12,4 @@ obj/ /EnoLandingPageBackend/appsettings.Development.json /EnoLandingPageBackend/wwwroot /data -/scoreboard -/sessions - +/sessions \ No newline at end of file diff --git a/.gitignore b/.gitignore index f344880..fc528f7 100644 --- a/.gitignore +++ b/.gitignore @@ -356,4 +356,4 @@ MigrationBackup/ /data /scoreboard /sessions -docker-compose.yml +.env \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 530c299..a66845b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,8 +1,9 @@ # Build Backend Portal FROM mcr.microsoft.com/dotnet/sdk:5.0-focal AS backend-build +RUN curl -sL https://deb.nodesource.com/setup_14.x | bash - +RUN apt-get install -y nodejs WORKDIR /src -# TODO: Update build - +ARG NO_WEB_APP=true # Fetch deps COPY EnoLandingPage.sln EnoLandingPage.sln COPY EnoLandingPageBackend/EnoLandingPageBackend.csproj EnoLandingPageBackend/EnoLandingPageBackend.csproj @@ -15,20 +16,25 @@ COPY ENOWARS.ruleset ENOWARS.ruleset COPY stylecop.json stylecop.json RUN dotnet publish -c Release -o /app -# Build Frontend -FROM node:12.7-alpine AS build +# Build Frontend in extra storage for improved caching +FROM node:14 AS build WORKDIR /usr/src/app -COPY package.json package-lock.json ./ +COPY EnoLandingPageBackend/ClientApp/package.json EnoLandingPageBackend/ClientApp/package-lock.json ./ RUN npm install COPY EnoLandingPageBackend/ClientApp . RUN npm run build -# Copy to runtime container +# Build runtime container FROM mcr.microsoft.com/dotnet/aspnet:5.0 WORKDIR /app + +# Create data folder if not run as mapped volume +RUN mkdir ./data EXPOSE 80 + +# Copy files from other stages COPY --from=backend-build /app . -COPY --from=build /usr/src/app/dist /ClientApp +COPY --from=build /usr/src/app/dist /app/ClientApp/dist COPY EnoLandingPageBackend/appsettings.json . -ENTRYPOINT ["dotnet", "EnoLandingPageBackend.dll"] +ENTRYPOINT ["dotnet", "EnoLandingPageBackend.dll"] \ No newline at end of file diff --git a/EnoLandingPageBackend/Controllers/ScoreboardInfoController.cs b/EnoLandingPageBackend/Controllers/ScoreboardInfoController.cs index 846b7a3..c5e3122 100644 --- a/EnoLandingPageBackend/Controllers/ScoreboardInfoController.cs +++ b/EnoLandingPageBackend/Controllers/ScoreboardInfoController.cs @@ -8,13 +8,47 @@ using Microsoft.AspNetCore.Mvc; using EnoCore.Scoreboard; + /// + /// Retrieve the scoreboard. + /// If you change this controller you will also have to change the static hosting variant. + /// [Authorize] [ApiController] [Route("/api/[controller]")] public class ScoreboardInfoController : ControllerBase { + + /// + /// Gets the current scoreboard. + /// + /// The scoreboard of the current round. + [HttpGet] + [Route("scoreboard.json")] + public ActionResult GetDefaultScoreboard() + { + return this.Ok(); + } + + /// + /// Gets the scoreboard of a given roundId. + /// + /// Number of the round. + /// The scoreboard of the given roundId. [HttpGet] - public ActionResult getScoreboard() + [Route("scoreboard{roundId}.json")] + public ActionResult GetScoreboard(int roundId = -1) + { + return this.Ok(); + } + + /// + /// Gets the scoreboard of a given roundId. + /// + /// Number of the round. + /// The scoreboard of the given roundId. + [HttpPost] + [Route("scoreboard{roundId}.json")] + public ActionResult PostScoreboard(int roundId = -1) { return this.Ok(); } diff --git a/EnoLandingPageBackend/EnoLandingPageBackend.csproj b/EnoLandingPageBackend/EnoLandingPageBackend.csproj index bbdc1ad..2ec8def 100644 --- a/EnoLandingPageBackend/EnoLandingPageBackend.csproj +++ b/EnoLandingPageBackend/EnoLandingPageBackend.csproj @@ -7,9 +7,6 @@ false ClientApp\ $(DefaultItemExcludes);$(SpaRoot)node_modules\** - - - false EnoLandingPageBackend @@ -65,16 +62,14 @@ - + - - + - %(DistFiles.Identity) PreserveNewest diff --git a/README.md b/README.md index 956f7ff..3f1dd0d 100644 --- a/README.md +++ b/README.md @@ -1,43 +1,40 @@ -# EnoLandingPage - -## docker-compose - -```yaml -version: '3' - -services: - enolandingpage: - build: . - environment: - - 'EnoLandingPage__Title=FoobarCTF' - - 'EnoLandingPage__StartTime=2020-11-22T15:00:00Z' - - 'EnoLandingPage__RegistrationCloseOffset=48' - - 'EnoLandingPage__CheckInBeginOffset=12' - - 'EnoLandingPage__CheckInEndOffset=2' - - 'EnoLandingPage__HetznerVulnboxType=cx11' - - 'EnoLandingPage__HetznerCloudApiToken=...' - - 'EnoLandingPage__HetznerVulnboxImage=...' - - 'EnoLandingPage__HetznerVulnboxPubkey=...' - - 'EnoLandingPage__HetznerVulnboxLocation=...' - - 'EnoLandingPage__OAuthClientId=...' - - 'EnoLandingPage__OAuthClientSecret=...' - - 'EnoLandingPage__AdminSecret=...' - ports: - - '5001:80' - volumes: - - ./sessions:/root/.aspnet/DataProtection-Keys - - ./data:/app/data - - ./scoreboard:/app/wwwroot/scoreboard -``` - -## Reverse Proxy Configuration +# EnoPortal -The reverse proxy must set the [XFP header](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Proto) and allow https connections. +This is the reusable landing page for any CTF. It includes the Scoreboard, as well as registration, Vulnbox and Network Access utilities for each team. -## Concept +## Customization For Better reusability the Frontent makes use of an IFrame Front Page. -You can rebrand the outer frame by including CSS and supplying some Environment variables but the Main Page can be completley custom made. +You can also rebrand the outer frame by including CSS and supplying some Environment variables but the Main Page can be completley custom made. + +This way you can use your own framework for the landing page because it is completly seperate. + +## Hosting + +There are two options to host the Portal, the `Live` (default) version should be used during an event. The `Archive` (static) version should be used to make the results available after the CTF is over. + +### Live (for running a CTF) -You can even use your own framework for the landing page because it is completly seperate. +```bash +# Set the Variables for you CTF according to the example.env +cp example.env .env +nano .env +# Start the Landing Page +docker-compose up -d +``` + +> **Reverse Proxy Configuration** +> The reverse proxy must set the [XFP header](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Proto) and allow https connections. + +### Archive (for making the scoreboard available afterwards) + +```bash +# Copy your Scoreboards to /scoreboard before +# Try it out locally +docker-compose -f static.docker-compose.yml up + +# Its recommended to build an image for the according CTF +docker build . -f static.Dockerfile -t ghcr.io/enowars/enoportal:- +docker push ghcr.io/enowars/enoportal:- +``` diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..4b1c1f4 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,16 @@ +version: '3.7' +services: + enoportal: + build: + context: . + dockerfile: Dockerfile + env_file: + - .env + ports: + - 80:80 + volumes: + - ./sessions:/root/.aspnet/DataProtection-Keys + - ./data:/app/data + - ./scoreboard:/app/wwwroot/scoreboard + # volumes: + # - ./EnoLandingPageBackend/appsettings.Development.json:/app/appsettings.json diff --git a/example.env b/example.env new file mode 100644 index 0000000..9bed329 --- /dev/null +++ b/example.env @@ -0,0 +1,13 @@ +EnoLandingPage__Title=FoobarCTF +EnoLandingPage__StartTime=2020-11-22T15:00:00Z +EnoLandingPage__RegistrationCloseOffset=48 +EnoLandingPage__CheckInBeginOffset=12 +EnoLandingPage__CheckInEndOffset=2 +EnoLandingPage__HetznerVulnboxType=cx11 +EnoLandingPage__HetznerCloudApiToken= +EnoLandingPage__HetznerVulnboxImage= +EnoLandingPage__HetznerVulnboxPubkey= +EnoLandingPage__HetznerVulnboxLocation= +EnoLandingPage__OAuthClientId= +EnoLandingPage__OAuthClientSecret= +EnoLandingPage__AdminSecret= \ No newline at end of file diff --git a/nginx/mime.types b/nginx/mime.types new file mode 100644 index 0000000..62182ec --- /dev/null +++ b/nginx/mime.types @@ -0,0 +1,97 @@ + +types { + text/html html htm shtml; + text/css css; + text/xml xml; + image/gif gif; + image/jpeg jpeg jpg; + application/javascript js; + application/atom+xml atom; + application/rss+xml rss; + + text/mathml mml; + text/plain txt; + text/vnd.sun.j2me.app-descriptor jad; + text/vnd.wap.wml wml; + text/x-component htc; + + image/png png; + image/svg+xml svg svgz; + image/tiff tif tiff; + image/vnd.wap.wbmp wbmp; + image/webp webp; + image/x-icon ico; + image/x-jng jng; + image/x-ms-bmp bmp; + + font/woff woff; + font/woff2 woff2; + + application/java-archive jar war ear; + application/json json; + application/mac-binhex40 hqx; + application/msword doc; + application/pdf pdf; + application/postscript ps eps ai; + application/rtf rtf; + application/vnd.apple.mpegurl m3u8; + application/vnd.google-earth.kml+xml kml; + application/vnd.google-earth.kmz kmz; + application/vnd.ms-excel xls; + application/vnd.ms-fontobject eot; + application/vnd.ms-powerpoint ppt; + application/vnd.oasis.opendocument.graphics odg; + application/vnd.oasis.opendocument.presentation odp; + application/vnd.oasis.opendocument.spreadsheet ods; + application/vnd.oasis.opendocument.text odt; + application/vnd.openxmlformats-officedocument.presentationml.presentation + pptx; + application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + xlsx; + application/vnd.openxmlformats-officedocument.wordprocessingml.document + docx; + application/vnd.wap.wmlc wmlc; + application/x-7z-compressed 7z; + application/x-cocoa cco; + application/x-java-archive-diff jardiff; + application/x-java-jnlp-file jnlp; + application/x-makeself run; + application/x-perl pl pm; + application/x-pilot prc pdb; + application/x-rar-compressed rar; + application/x-redhat-package-manager rpm; + application/x-sea sea; + application/x-shockwave-flash swf; + application/x-stuffit sit; + application/x-tcl tcl tk; + application/x-x509-ca-cert der pem crt; + application/x-xpinstall xpi; + application/xhtml+xml xhtml; + application/xspf+xml xspf; + application/zip zip; + + application/octet-stream bin exe dll; + application/octet-stream deb; + application/octet-stream dmg; + application/octet-stream iso img; + application/octet-stream msi msp msm; + + audio/midi mid midi kar; + audio/mpeg mp3; + audio/ogg ogg; + audio/x-m4a m4a; + audio/x-realaudio ra; + + video/3gpp 3gpp 3gp; + video/mp2t ts; + video/mp4 mp4; + video/mpeg mpeg mpg; + video/quicktime mov; + video/webm webm; + video/x-flv flv; + video/x-m4v m4v; + video/x-mng mng; + video/x-ms-asf asx asf; + video/x-ms-wmv wmv; + video/x-msvideo avi; +} \ No newline at end of file diff --git a/nginx/nginx.conf b/nginx/nginx.conf new file mode 100644 index 0000000..3c1e1f5 --- /dev/null +++ b/nginx/nginx.conf @@ -0,0 +1,76 @@ +# For more information on configuration, see: +# * Official English Documentation: http://nginx.org/en/docs/ +# * Official Russian Documentation: http://nginx.org/ru/docs/ + +user nginx; +worker_processes 1; +error_log /dev/stdout warn; +pid /var/run/nginx.pid; + +# Load dynamic modules. See /usr/share/nginx/README.dynamic. +include /usr/share/nginx/modules/*.conf; + +events { + worker_connections 1024; +} + +http { + proxy_cache_path /etc/nginx/cache levels=1:2 keys_zone=STATIC:10m + inactive=24h max_size=1g; + + log_format main '$remote_addr - $remote_user [$time_local] "$request" ' + '$status $body_bytes_sent "$http_referer" ' + '"$http_user_agent" "$http_x_forwarded_for"'; + + # Development Only + # access_log /dev/stdout main; + # Production + access_log off; + + sendfile on; + tcp_nopush on; + tcp_nodelay on; + client_body_timeout 12; + client_header_timeout 12; + keepalive_timeout 15; + send_timeout 10; + types_hash_max_size 2048; + client_body_buffer_size 1k; + client_header_buffer_size 1k; + client_max_body_size 1k; + large_client_header_buffers 4 8k; + + server_tokens off; + + # Nginx is to dumb to servce css files... + include /etc/nginx/mime.types; + default_type application/octet-stream; + + server { + listen 80 default_server; + listen [::]:80 default_server; + root /usr/share/nginx/html; + + add_header X-Frame-Options "DENY"; + + if ($request_method !~ ^(GET|HEAD)$ ) + { + return 444; + } + + location = /health { + return 200; + } + + location /api/ { + alias /usr/share/nginx/html/api/; + } + + location / { + alias /usr/share/nginx/html/; + try_files $uri $uri/ /index.html; + } + + + } +} \ No newline at end of file diff --git a/static.Dockerfile b/static.Dockerfile new file mode 100644 index 0000000..49a7d30 --- /dev/null +++ b/static.Dockerfile @@ -0,0 +1,29 @@ +# Build Frontend +FROM node:14 AS build +WORKDIR /usr/src/app +COPY EnoLandingPageBackend/ClientApp/package.json EnoLandingPageBackend/ClientApp/package-lock.json ./ +RUN npm install +COPY EnoLandingPageBackend/ClientApp . +RUN npm run build + + +# Setup Static File Host +FROM nginx:1.21-alpine + +WORKDIR /etc/nginx +RUN rm /usr/share/nginx/html/index.html +RUN rm -r /docker-entrypoint.d/* +RUN rm -r ./* + +ENV STATIC_HOSTING=true +ENV SUBSTITUTE_PATH=/usr/share/nginx/html + +COPY ./substitute_variables.sh /docker-entrypoint.d/substitute_variables.sh +RUN chmod +x /docker-entrypoint.d/substitute_variables.sh + +COPY nginx/ /etc/nginx/ +COPY scoreboard/ /usr/share/nginx/html/api/scoreboard/ + +COPY --from=build /usr/src/app/dist/ClientApp/index.html /template/index.html +COPY --from=build /usr/src/app/dist/ClientApp /usr/share/nginx/html + diff --git a/static.docker-compose.yml b/static.docker-compose.yml new file mode 100644 index 0000000..89e0d4d --- /dev/null +++ b/static.docker-compose.yml @@ -0,0 +1,10 @@ +version: '3.7' +services: + static-enoportal: + build: + context: . + dockerfile: static.Dockerfile + ports: + - 80:80 + volumes: + - ./scoreboard:/usr/share/nginx/html/api/scoreboard/ diff --git a/substitute_variables.sh b/substitute_variables.sh new file mode 100644 index 0000000..bf38235 --- /dev/null +++ b/substitute_variables.sh @@ -0,0 +1,31 @@ +#!/bin/sh + +set -e + +ME=$(basename $0) + +auto_envsubst() { + local template_dir="${ENVSUBST_TEMPLATE_DIR:-/template}" + local output_dir="${ENVSUBST_OUTPUT_DIR:-/usr/share/nginx/html}" + + local template defined_envs relative_path output_path subdir + defined_envs=$(printf '${%s} ' $(env | cut -d= -f1)) + [ -d "$template_dir" ] || return 0 + if [ ! -w "$output_dir" ]; then + echo >&3 "$ME: ERROR: $template_dir exists, but $output_dir is not writable" + return 0 + fi + find "$template_dir" -follow -type f -print | while read -r template; do + relative_path="${template#$template_dir/}" + output_path="$output_dir/${relative_path}" + subdir=$(dirname "$relative_path") + # create a subdirectory where the template file exists + mkdir -p "$output_dir/$subdir" + echo >&3 "$ME: Running envsubst on $template to $output_path" + envsubst "$defined_envs" < "$template" > "$output_path" + done +} + +auto_envsubst + +exit 0 \ No newline at end of file From 8ab5b5dfa6bad5b2bf5f7a5c1aa0258c673ba080 Mon Sep 17 00:00:00 2001 From: Daniel Habenicht Date: Thu, 17 Jun 2021 23:17:04 +0200 Subject: [PATCH 020/118] fix css compilation --- EnoLandingPageBackend/ClientApp/src/styles.scss | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/EnoLandingPageBackend/ClientApp/src/styles.scss b/EnoLandingPageBackend/ClientApp/src/styles.scss index 069fe52..a09aa72 100644 --- a/EnoLandingPageBackend/ClientApp/src/styles.scss +++ b/EnoLandingPageBackend/ClientApp/src/styles.scss @@ -128,13 +128,14 @@ $default-dark: mat.define-dark-theme( // Include theme styles for core and each component used in your app. // Alternatively, you can import and @include the theme mixins for each component // that you are using. +@include mat.all-component-themes($default-light); .default_light_theme { - @include mat.all-component-themes($default-light); + @include mat.all-component-colors($default-light); } .default_dark_theme { - @include mat.all-component-themes($default-dark); + @include mat.all-component-colors($default-dark); } html, From 2c37b43a022f340b91ad1f547047c0f471c28eeb Mon Sep 17 00:00:00 2001 From: Daniel Habenicht Date: Thu, 17 Jun 2021 23:17:54 +0200 Subject: [PATCH 021/118] add runtime variables --- .../src/app/pages/root/root.component.html | 2 +- .../src/environments/runtime-environment.ts | 44 +++++++++++++++++++ .../ClientApp/src/index.html | 41 +++++++++++------ 3 files changed, 72 insertions(+), 15 deletions(-) create mode 100644 EnoLandingPageBackend/ClientApp/src/environments/runtime-environment.ts diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/root/root.component.html b/EnoLandingPageBackend/ClientApp/src/app/pages/root/root.component.html index 44eb394..2377e27 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/pages/root/root.component.html +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/root/root.component.html @@ -1,5 +1,5 @@ diff --git a/EnoLandingPageBackend/ClientApp/src/environments/runtime-environment.ts b/EnoLandingPageBackend/ClientApp/src/environments/runtime-environment.ts new file mode 100644 index 0000000..5620ab4 --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/src/environments/runtime-environment.ts @@ -0,0 +1,44 @@ +/* tslint:disable:no-invalid-template-strings */ + +export enum Environment { + /** + * Local or pr-preview environment - unstable. + */ + development = 'development', + /** + * An Environment that might have Bugs and has Preview Features enabled by default + * e.g. Early adopters or Staging Environment + */ + preview = 'preview', + /** + * An Environment that is stable. + * Preview features can be enabled by the user himself. + */ + production = 'production', +} +export interface RuntimeEnvironmentInterface { + /** + * The Environment Tag is displayed right next to the title of the page, e.g. "preview", "dev" + */ + readonly environmentTag: string; + /** + * The Environment the app is living in, by default it is development + */ + readonly environment: Environment; + /** + * The Base Url of the RocketChat Messenger + */ + readonly staticHosting?: string; +} + +declare const ENV: RuntimeEnvironmentInterface; +export const runtimeEnvironment: RuntimeEnvironmentInterface = { + environment: + ENV.environment.toString() !== '${ENVIRONMENT}' + ? ENV.environment + : Environment.development, + environmentTag: + ENV.environmentTag !== '${ENVIRONMENT_TAG}' ? ENV.environmentTag : '', + staticHosting: + ENV.staticHosting !== '${STATIC_HOSTING}' ? ENV.staticHosting : 'false', +}; diff --git a/EnoLandingPageBackend/ClientApp/src/index.html b/EnoLandingPageBackend/ClientApp/src/index.html index 9d0e502..7ef4492 100644 --- a/EnoLandingPageBackend/ClientApp/src/index.html +++ b/EnoLandingPageBackend/ClientApp/src/index.html @@ -1,16 +1,29 @@ - + - - - ClientApp - - - - - - - - - - + + + ClientApp + + + + + + + + + + + From 7220ee2f49c405ac60bb2c6845aa83586c94fee4 Mon Sep 17 00:00:00 2001 From: Daniel Habenicht Date: Thu, 17 Jun 2021 23:18:36 +0200 Subject: [PATCH 022/118] add appsettings sample --- .../appsettings.example.json | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 EnoLandingPageBackend/appsettings.example.json diff --git a/EnoLandingPageBackend/appsettings.example.json b/EnoLandingPageBackend/appsettings.example.json new file mode 100644 index 0000000..95fdff7 --- /dev/null +++ b/EnoLandingPageBackend/appsettings.example.json @@ -0,0 +1,23 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft": "Warning", + "Microsoft.AspNetCore.Hosting.Diagnostics": "Information", + "Microsoft.Hosting.Lifetime": "Information" + } + }, + "EnoLandingPage": { + "Title": "BambiCTF", + "HetznerCloudApiToken": "test", + "HetznerVulnboxType": "test", + "HetznerVulnboxImage": "test", + "HetznerVulnboxPubkey": "test", + "HetznerVulnboxLocation": "test", + "OAuthClientId": "1234", + "OAuthClientSecret": "coolkey", + "AdminSecret": "secret", + "StartTime": "2020-11-22T15:00:00Z" + }, + "AllowedHosts": "*" +} From f33e39bf43ec1c7e0391a020d83616b2cd50a39e Mon Sep 17 00:00:00 2001 From: Daniel Habenicht Date: Thu, 17 Jun 2021 23:34:35 +0200 Subject: [PATCH 023/118] add runtime variables to normal hosting --- Dockerfile | 11 ++++++++++- substitute_variables.sh | 4 ++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index a66845b..d7a779f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -28,13 +28,22 @@ RUN npm run build # Build runtime container FROM mcr.microsoft.com/dotnet/aspnet:5.0 WORKDIR /app +RUN apt-get update && apt-get install gettext-base -y && apt-get clean # Create data folder if not run as mapped volume RUN mkdir ./data EXPOSE 80 +ENV STATIC_HOSTING=false +ENV ENVSUBST_OUTPUT_DIR=/app/ClientApp/dist/ClientApp + +COPY ./substitute_variables.sh /substitute_variables.sh +RUN chmod +x /substitute_variables.sh + # Copy files from other stages COPY --from=backend-build /app . +COPY --from=build /usr/src/app/dist/ClientApp/index.html /template/index.html COPY --from=build /usr/src/app/dist /app/ClientApp/dist COPY EnoLandingPageBackend/appsettings.json . -ENTRYPOINT ["dotnet", "EnoLandingPageBackend.dll"] \ No newline at end of file +# ENTRYPOINT ["dotnet", "EnoLandingPageBackend.dll"] +ENTRYPOINT ["/bin/sh", "-c" , "/substitute_variables.sh && dotnet EnoLandingPageBackend.dll"] \ No newline at end of file diff --git a/substitute_variables.sh b/substitute_variables.sh index bf38235..b1c91b6 100644 --- a/substitute_variables.sh +++ b/substitute_variables.sh @@ -12,7 +12,7 @@ auto_envsubst() { defined_envs=$(printf '${%s} ' $(env | cut -d= -f1)) [ -d "$template_dir" ] || return 0 if [ ! -w "$output_dir" ]; then - echo >&3 "$ME: ERROR: $template_dir exists, but $output_dir is not writable" + echo "$ME: ERROR: $template_dir exists, but $output_dir is not writable" return 0 fi find "$template_dir" -follow -type f -print | while read -r template; do @@ -21,7 +21,7 @@ auto_envsubst() { subdir=$(dirname "$relative_path") # create a subdirectory where the template file exists mkdir -p "$output_dir/$subdir" - echo >&3 "$ME: Running envsubst on $template to $output_path" + echo "$ME: Running envsubst on $template to $output_path" envsubst "$defined_envs" < "$template" > "$output_path" done } From 5c590a5295e89c7997af48b1cd36761c2dd83667 Mon Sep 17 00:00:00 2001 From: Daniel Habenicht Date: Fri, 18 Jun 2021 01:02:09 +0200 Subject: [PATCH 024/118] better pages --- .../ClientApp/src/app/material.module.ts | 6 + .../app-navigation.component.html | 136 ++++++++---------- .../app-navigation.component.scss | 8 ++ .../app-navigation.component.ts | 8 ++ .../page-profile/page-profile.component.html | 81 ++++++++--- .../page-profile/page-profile.component.ts | 7 +- .../src/app/shared/states/App.state.ts | 2 +- 7 files changed, 151 insertions(+), 97 deletions(-) diff --git a/EnoLandingPageBackend/ClientApp/src/app/material.module.ts b/EnoLandingPageBackend/ClientApp/src/app/material.module.ts index 3d2018e..5f04334 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/material.module.ts +++ b/EnoLandingPageBackend/ClientApp/src/app/material.module.ts @@ -25,6 +25,8 @@ import { MatToolbarModule } from '@angular/material/toolbar'; import { MatTooltipModule } from '@angular/material/tooltip'; import { MatTreeModule } from '@angular/material/tree'; import { MatStepperModule } from '@angular/material/stepper'; +import { MatInputModule } from '@angular/material/input'; +import { ClipboardModule } from '@angular/cdk/clipboard'; @NgModule({ imports: [ MatButtonModule, @@ -52,6 +54,8 @@ import { MatStepperModule } from '@angular/material/stepper'; ScrollingModule, DragDropModule, MatStepperModule, + ClipboardModule, + MatInputModule, ], providers: [], exports: [ @@ -80,6 +84,8 @@ import { MatStepperModule } from '@angular/material/stepper'; ScrollingModule, DragDropModule, MatStepperModule, + ClipboardModule, + MatInputModule, ], }) export class MaterialModule {} diff --git a/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.html b/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.html index a120693..e33a84c 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.html +++ b/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.html @@ -3,86 +3,87 @@ @@ -140,7 +141,7 @@ > Contact - + login - + - - - - - - - -
+ diff --git a/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.scss b/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.scss index c7ed055..79e8b61 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.scss +++ b/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.scss @@ -18,4 +18,12 @@ mat-sidenav-container { z-index: 1; } } + + .banner { + height: 48px; + padding: 0 8px; + display: flex; + align-items: center; + justify-content: center; + } } diff --git a/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.ts b/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.ts index 14bb46f..5561510 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.ts +++ b/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.ts @@ -20,6 +20,11 @@ import { Theme } from 'src/app/shared/models/enumberables/theme'; import { APP_ROUTES } from 'src/app/app-routing.module'; import { coerceStringArray } from '@angular/cdk/coercion'; import { TeamDetailsMessage } from 'projects/backend-api/src/lib/model/teamDetailsMessage'; +import { CtfInfoMessage } from 'projects/backend-api/src/lib'; +import { + runtimeEnvironment, + RuntimeEnvironmentInterface, +} from 'src/environments/runtime-environment'; @Component({ selector: 'app-navigation', @@ -32,12 +37,15 @@ export class AppNavigationComponent implements OnInit, OnDestroy { public environment: EnvironmentInterface = environment; + public staticHosting: boolean = runtimeEnvironment.staticHosting == 'true'; public routes: typeof APP_ROUTES = APP_ROUTES; public themeValue: Theme | null = null; @Select(AppState.authenticated) public authenticated$!: Observable; @Select(AppState.teamInfo) public info$!: Observable; + @Select(AppState.ctfInfo) + public ctfInfo$!: Observable; constructor(private store: Store) { super(); diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-profile/page-profile.component.html b/EnoLandingPageBackend/ClientApp/src/app/pages/page-profile/page-profile.component.html index 8b0cdc1..388209d 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/pages/page-profile/page-profile.component.html +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/page-profile/page-profile.component.html @@ -57,30 +57,75 @@

{{ (teamInfo$ | async)!.teamName }}

-
-
External IP Address:
- {{ (teamInfo$ | async)!.externalIpAddress || "coming soon" }} -
-
-
Root Password:
- {{ (teamInfo$ | async)!.rootPassword || "coming soon" }} -
-
-
Internal IP Address:
- {{ (teamInfo$ | async)!.internalIpAddress || "coming soon" }} - @(teamInformation.InternalIpAddress ?? "coming soon") -
+ + External IP Address + + + + + Root Password + + + + + Internal IP Address + + +
Vulnbox Status:
{{ (teamInfo$ | async)!.vulnboxStatus || "coming soon" }}
Vpn Configuration:
- + + Download +
diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-profile/page-profile.component.ts b/EnoLandingPageBackend/ClientApp/src/app/pages/page-profile/page-profile.component.ts index 9843bdf..1b42b9d 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/pages/page-profile/page-profile.component.ts +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/page-profile/page-profile.component.ts @@ -1,4 +1,5 @@ import { Component, OnInit } from '@angular/core'; +import { MatSnackBar } from '@angular/material/snack-bar'; import { Select } from '@ngxs/store'; import { CtfInfoMessage } from 'projects/backend-api/src/lib'; import { TeamDetailsMessage } from 'projects/backend-api/src/lib/model/teamDetailsMessage'; @@ -15,7 +16,11 @@ export class PageProfileComponent implements OnInit { public teamInfo$!: Observable; @Select(AppState.ctfInfo) public ctfInfo$!: Observable; - constructor() {} + constructor(private _snackBar: MatSnackBar) {} ngOnInit(): void {} + + copiedToast() { + this._snackBar.open('Copied!'); + } } diff --git a/EnoLandingPageBackend/ClientApp/src/app/shared/states/App.state.ts b/EnoLandingPageBackend/ClientApp/src/app/shared/states/App.state.ts index ce6a3b7..00a836a 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/shared/states/App.state.ts +++ b/EnoLandingPageBackend/ClientApp/src/app/shared/states/App.state.ts @@ -84,7 +84,7 @@ export class AppState implements NgxsOnInit { this.dataService.apiDataCtfInfoGet().subscribe( (ctfInfo) => { let state = ctx.getState(); - ctx.setState({ ...state, authenticated: true, ctfInfo: ctfInfo }); + ctx.setState({ ...state, ctfInfo: ctfInfo }); }, (error) => { // Do nothing for now From d4261eaf416f3bc10e075109f6739e15bad41a80 Mon Sep 17 00:00:00 2001 From: DanielHabenicht Date: Thu, 17 Jun 2021 23:18:45 +0000 Subject: [PATCH 025/118] add gitpod --- .gitpod.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 .gitpod.yml diff --git a/.gitpod.yml b/.gitpod.yml new file mode 100644 index 0000000..26547be --- /dev/null +++ b/.gitpod.yml @@ -0,0 +1,12 @@ +# List the start up tasks. Learn more https://www.gitpod.io/docs/config-start-tasks/ +tasks: + - name: Frontend + command: cd EnoLandingPageBackend/ClientApp && npm run start + - name: Backend + command: cd EnoLandingPageBackend && dotnet watch run + openMode: split-right + +# List the ports to expose. Learn more https://www.gitpod.io/docs/config-ports/ +ports: + - port: 3000 + onOpen: open-preview From 41c591ea97d1e6feccefb2589291e160d9794d43 Mon Sep 17 00:00:00 2001 From: DanielHabenicht Date: Thu, 17 Jun 2021 23:25:49 +0000 Subject: [PATCH 026/118] update gitpod --- .gitpod.Dockerfile | 3 +++ .gitpod.yml | 17 ++++++++++++++--- 2 files changed, 17 insertions(+), 3 deletions(-) create mode 100644 .gitpod.Dockerfile diff --git a/.gitpod.Dockerfile b/.gitpod.Dockerfile new file mode 100644 index 0000000..d4b87e5 --- /dev/null +++ b/.gitpod.Dockerfile @@ -0,0 +1,3 @@ +FROM gitpod/workspace-full +RUN curl -sL https://deb.nodesource.com/setup_14.x | bash - +RUN apt-get install -y nodejs \ No newline at end of file diff --git a/.gitpod.yml b/.gitpod.yml index 26547be..b4ba47d 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -1,12 +1,23 @@ +image: + file: .gitpod.Dockerfile + # List the start up tasks. Learn more https://www.gitpod.io/docs/config-start-tasks/ tasks: + - name: Init + init: | + cd EnoLandingPageBackend/ClientApp + npm install - name: Frontend - command: cd EnoLandingPageBackend/ClientApp && npm run start + command: | + cd EnoLandingPageBackend/ClientApp + npm run start - name: Backend - command: cd EnoLandingPageBackend && dotnet watch run + command: | + cd EnoLandingPageBackend + dotnet watch run openMode: split-right # List the ports to expose. Learn more https://www.gitpod.io/docs/config-ports/ ports: - - port: 3000 + - port: 5001 onOpen: open-preview From 7392668abada07e482afe15f0538c90467a3a60e Mon Sep 17 00:00:00 2001 From: DanielHabenicht Date: Fri, 18 Jun 2021 01:27:09 +0200 Subject: [PATCH 027/118] Update .gitpod.Dockerfile --- .gitpod.Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitpod.Dockerfile b/.gitpod.Dockerfile index d4b87e5..d141a2a 100644 --- a/.gitpod.Dockerfile +++ b/.gitpod.Dockerfile @@ -1,3 +1,3 @@ FROM gitpod/workspace-full -RUN curl -sL https://deb.nodesource.com/setup_14.x | bash - -RUN apt-get install -y nodejs \ No newline at end of file +RUN sudo curl -sL https://deb.nodesource.com/setup_14.x | bash - +RUN sudo apt-get install -y nodejs From 8f05fec8b3b006e6730f54b1bbf577e9447e44e3 Mon Sep 17 00:00:00 2001 From: DanielHabenicht Date: Fri, 18 Jun 2021 01:28:09 +0200 Subject: [PATCH 028/118] Update .gitpod.Dockerfile --- .gitpod.Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitpod.Dockerfile b/.gitpod.Dockerfile index d141a2a..f223c28 100644 --- a/.gitpod.Dockerfile +++ b/.gitpod.Dockerfile @@ -1,3 +1,3 @@ FROM gitpod/workspace-full -RUN sudo curl -sL https://deb.nodesource.com/setup_14.x | bash - +RUN sudo curl -sL https://deb.nodesource.com/setup_14.x | sudo bash - RUN sudo apt-get install -y nodejs From 67c2fcd3a74cefc05b71aed54d2ff29643852f3d Mon Sep 17 00:00:00 2001 From: DanielHabenicht Date: Thu, 17 Jun 2021 23:34:00 +0000 Subject: [PATCH 029/118] update gitpod --- .gitpod.Dockerfile | 8 ++++++-- .gitpod.yml | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitpod.Dockerfile b/.gitpod.Dockerfile index f223c28..da9c451 100644 --- a/.gitpod.Dockerfile +++ b/.gitpod.Dockerfile @@ -1,3 +1,7 @@ FROM gitpod/workspace-full -RUN sudo curl -sL https://deb.nodesource.com/setup_14.x | sudo bash - -RUN sudo apt-get install -y nodejs + +# From https://github.com/gitpod-io/workspace-images/blob/master/dotnet-lts/Dockerfile +USER gitpod +RUN mkdir -p /home/gitpod/dotnet && curl -fsSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin --install-dir /home/gitpod/dotnet +ENV DOTNET_ROOT=/home/gitpod/dotnet +ENV PATH=$PATH:/home/gitpod/dotnet \ No newline at end of file diff --git a/.gitpod.yml b/.gitpod.yml index b4ba47d..1430c43 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -4,7 +4,7 @@ image: # List the start up tasks. Learn more https://www.gitpod.io/docs/config-start-tasks/ tasks: - name: Init - init: | + before: | cd EnoLandingPageBackend/ClientApp npm install - name: Frontend From 3b6b42aaad63eba4ebb636750db54f3fd5647f46 Mon Sep 17 00:00:00 2001 From: DanielHabenicht Date: Thu, 17 Jun 2021 23:38:00 +0000 Subject: [PATCH 030/118] update gitpod --- .gitpod.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitpod.yml b/.gitpod.yml index 1430c43..3070a52 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -7,6 +7,7 @@ tasks: before: | cd EnoLandingPageBackend/ClientApp npm install + npm install -g @angular/cli - name: Frontend command: | cd EnoLandingPageBackend/ClientApp From a5697c5fe59e1afd0916122ac564c14b1a46feda Mon Sep 17 00:00:00 2001 From: DanielHabenicht Date: Thu, 17 Jun 2021 23:39:57 +0000 Subject: [PATCH 031/118] update gitpod --- .gitpod.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.gitpod.yml b/.gitpod.yml index 3070a52..60a4852 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -1,3 +1,4 @@ + image: file: .gitpod.Dockerfile @@ -22,3 +23,10 @@ tasks: ports: - port: 5001 onOpen: open-preview + - port: 4200 + +vscode: + extensions: + - ms-azuretools.vscode-docker + - angular.ng-template + - esbenp.prettier-vscode From d8235c81faec98f45a5a13370cafe23b342ace30 Mon Sep 17 00:00:00 2001 From: DanielHabenicht Date: Thu, 17 Jun 2021 23:45:36 +0000 Subject: [PATCH 032/118] gitpod --- .gitpod.Dockerfile | 3 ++- .gitpod.yml | 1 - 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitpod.Dockerfile b/.gitpod.Dockerfile index da9c451..607a608 100644 --- a/.gitpod.Dockerfile +++ b/.gitpod.Dockerfile @@ -4,4 +4,5 @@ FROM gitpod/workspace-full USER gitpod RUN mkdir -p /home/gitpod/dotnet && curl -fsSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin --install-dir /home/gitpod/dotnet ENV DOTNET_ROOT=/home/gitpod/dotnet -ENV PATH=$PATH:/home/gitpod/dotnet \ No newline at end of file +ENV PATH=$PATH:/home/gitpod/dotnet +RUN npm install -g @angular/cli \ No newline at end of file diff --git a/.gitpod.yml b/.gitpod.yml index 60a4852..47f3655 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -8,7 +8,6 @@ tasks: before: | cd EnoLandingPageBackend/ClientApp npm install - npm install -g @angular/cli - name: Frontend command: | cd EnoLandingPageBackend/ClientApp From 51441298dc0d499a4fcc040d5c394abc3f6e7d87 Mon Sep 17 00:00:00 2001 From: DanielHabenicht Date: Thu, 17 Jun 2021 23:56:07 +0000 Subject: [PATCH 033/118] use v5? --- .gitpod.Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitpod.Dockerfile b/.gitpod.Dockerfile index 607a608..3a74c94 100644 --- a/.gitpod.Dockerfile +++ b/.gitpod.Dockerfile @@ -2,7 +2,7 @@ FROM gitpod/workspace-full # From https://github.com/gitpod-io/workspace-images/blob/master/dotnet-lts/Dockerfile USER gitpod -RUN mkdir -p /home/gitpod/dotnet && curl -fsSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin --install-dir /home/gitpod/dotnet +RUN mkdir -p /home/gitpod/dotnet && curl -fsSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin -c 5.0 --install-dir /home/gitpod/dotnet ENV DOTNET_ROOT=/home/gitpod/dotnet ENV PATH=$PATH:/home/gitpod/dotnet RUN npm install -g @angular/cli \ No newline at end of file From 87e03f439084961fda053d578e85d2dae24064d7 Mon Sep 17 00:00:00 2001 From: DanielHabenicht Date: Fri, 18 Jun 2021 00:14:37 +0000 Subject: [PATCH 034/118] fix gitpod --- .gitpod.yml | 1 + EnoLandingPageBackend/ClientApp/angular.json | 3 +++ EnoLandingPageBackend/EnoLandingPageBackend.csproj | 2 +- 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.gitpod.yml b/.gitpod.yml index 47f3655..b1bc974 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -8,6 +8,7 @@ tasks: before: | cd EnoLandingPageBackend/ClientApp npm install + mkdir EnoLandingPageBackend/data - name: Frontend command: | cd EnoLandingPageBackend/ClientApp diff --git a/EnoLandingPageBackend/ClientApp/angular.json b/EnoLandingPageBackend/ClientApp/angular.json index 1fe47d8..24610f1 100644 --- a/EnoLandingPageBackend/ClientApp/angular.json +++ b/EnoLandingPageBackend/ClientApp/angular.json @@ -68,6 +68,9 @@ }, "serve": { "builder": "@angular-devkit/build-angular:dev-server", + "options": { + "disableHostCheck": true + }, "configurations": { "production": { "browserTarget": "ClientApp:build:production" diff --git a/EnoLandingPageBackend/EnoLandingPageBackend.csproj b/EnoLandingPageBackend/EnoLandingPageBackend.csproj index 2ec8def..8052acf 100644 --- a/EnoLandingPageBackend/EnoLandingPageBackend.csproj +++ b/EnoLandingPageBackend/EnoLandingPageBackend.csproj @@ -37,7 +37,6 @@ -
@@ -48,6 +47,7 @@ + From 6298512b87a4e740c900eeeaacc9ad9dc43194b9 Mon Sep 17 00:00:00 2001 From: DanielHabenicht Date: Fri, 18 Jun 2021 00:19:05 +0000 Subject: [PATCH 035/118] fix gitpod? --- .gitpod.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitpod.yml b/.gitpod.yml index b1bc974..d5d104b 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -6,13 +6,14 @@ image: tasks: - name: Init before: | + mkdir EnoLandingPageBackend/data cd EnoLandingPageBackend/ClientApp npm install - mkdir EnoLandingPageBackend/data + npm build - name: Frontend command: | cd EnoLandingPageBackend/ClientApp - npm run start + npm start - name: Backend command: | cd EnoLandingPageBackend From a4609c83b34d120b7872e6023fb82d4bb274de71 Mon Sep 17 00:00:00 2001 From: DanielHabenicht Date: Fri, 18 Jun 2021 00:21:41 +0000 Subject: [PATCH 036/118] fix gitpod --- .gitpod.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitpod.yml b/.gitpod.yml index d5d104b..0222c75 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -7,6 +7,7 @@ tasks: - name: Init before: | mkdir EnoLandingPageBackend/data + cp EnoLandingPageBackend/appsettings.example.json EnoLandingPageBackend/appsettings.Development.json cd EnoLandingPageBackend/ClientApp npm install npm build From 5c2363a40b089130295c6091b5184029096074d9 Mon Sep 17 00:00:00 2001 From: DanielHabenicht Date: Fri, 18 Jun 2021 00:24:07 +0000 Subject: [PATCH 037/118] hope fix --- .gitpod.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitpod.yml b/.gitpod.yml index 0222c75..aed761f 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -5,7 +5,7 @@ image: # List the start up tasks. Learn more https://www.gitpod.io/docs/config-start-tasks/ tasks: - name: Init - before: | + init: | mkdir EnoLandingPageBackend/data cp EnoLandingPageBackend/appsettings.example.json EnoLandingPageBackend/appsettings.Development.json cd EnoLandingPageBackend/ClientApp From d8c8c194a0f4eeb349d5989bdbbeef9c4c2c8e9c Mon Sep 17 00:00:00 2001 From: DanielHabenicht Date: Fri, 18 Jun 2021 00:27:11 +0000 Subject: [PATCH 038/118] add badge --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index 3f1dd0d..7a949ca 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,5 @@ +[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/enowars/EnoLandingPage) + # EnoPortal This is the reusable landing page for any CTF. It includes the Scoreboard, as well as registration, Vulnbox and Network Access utilities for each team. @@ -38,3 +40,8 @@ docker-compose -f static.docker-compose.yml up docker build . -f static.Dockerfile -t ghcr.io/enowars/enoportal:- docker push ghcr.io/enowars/enoportal:- ``` + + +## Developmemt + +[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/enowars/EnoLandingPage) \ No newline at end of file From 33216a3989218b69e4c476b7373c64f1bd5db504 Mon Sep 17 00:00:00 2001 From: DanielHabenicht Date: Fri, 18 Jun 2021 00:32:14 +0000 Subject: [PATCH 039/118] fix gitpod finally --- .gitpod.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitpod.yml b/.gitpod.yml index aed761f..b9baaa8 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -4,10 +4,14 @@ image: # List the start up tasks. Learn more https://www.gitpod.io/docs/config-start-tasks/ tasks: - - name: Init - init: | + - name: Init Backend + before: | mkdir EnoLandingPageBackend/data cp EnoLandingPageBackend/appsettings.example.json EnoLandingPageBackend/appsettings.Development.json + - name: Init Frontend + env: + NG_CLI_ANALYTICS: ci + before: | cd EnoLandingPageBackend/ClientApp npm install npm build From 192dea3d59c1acefd3bb5961bba7348468086b3d Mon Sep 17 00:00:00 2001 From: DanielHabenicht Date: Fri, 18 Jun 2021 00:35:08 +0000 Subject: [PATCH 040/118] fix for real --- .gitpod.yml | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/.gitpod.yml b/.gitpod.yml index b9baaa8..45001ce 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -4,22 +4,20 @@ image: # List the start up tasks. Learn more https://www.gitpod.io/docs/config-start-tasks/ tasks: - - name: Init Backend - before: | - mkdir EnoLandingPageBackend/data - cp EnoLandingPageBackend/appsettings.example.json EnoLandingPageBackend/appsettings.Development.json - - name: Init Frontend + - name: Frontend env: NG_CLI_ANALYTICS: ci before: | cd EnoLandingPageBackend/ClientApp npm install - npm build - - name: Frontend + npm run build command: | cd EnoLandingPageBackend/ClientApp npm start - name: Backend + before: | + mkdir EnoLandingPageBackend/data + cp EnoLandingPageBackend/appsettings.example.json EnoLandingPageBackend/appsettings.Development.json command: | cd EnoLandingPageBackend dotnet watch run @@ -27,9 +25,10 @@ tasks: # List the ports to expose. Learn more https://www.gitpod.io/docs/config-ports/ ports: - - port: 5001 + - port: 5000 onOpen: open-preview - port: 4200 + onOpen: ignore vscode: extensions: From d4d8c4909fd6bb865094f9f040311eb771250320 Mon Sep 17 00:00:00 2001 From: DanielHabenicht Date: Fri, 18 Jun 2021 00:37:49 +0000 Subject: [PATCH 041/118] add github config --- .gitpod.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.gitpod.yml b/.gitpod.yml index 45001ce..fb7dff2 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -35,3 +35,13 @@ vscode: - ms-azuretools.vscode-docker - angular.ng-template - esbenp.prettier-vscode + +github: + prebuilds: + master: true + branches: true + pullRequests: true + pullRequestsFromForks: true + addCheck: false + addComment: false + addBadge: true \ No newline at end of file From a59941b210d18edca50f1ffe24271c3f1f5eed1b Mon Sep 17 00:00:00 2001 From: Adrian Gronau Date: Fri, 18 Jun 2021 11:01:52 +0000 Subject: [PATCH 042/118] update api --- .gitpod.yml | 3 +- .../src/lib/api/scoreboardInfo.service.ts | 106 +++++++++- .../api/scoreboardInfo.serviceInterface.ts | 16 +- .../src/lib/model/ctfInfoMessage.ts | 25 ++- .../src/lib/model/scoreboardInfo.ts | 4 + EnoLandingPageBackend/ClientApp/swagger.json | 184 +++++++++++++++--- .../Controllers/AccountController.cs | 6 +- .../Controllers/DataController.cs | 7 +- EnoLandingPageBackend/LandingPageSettings.cs | 16 ++ .../Models/CtfInfoMessage.cs | 58 +++++- 10 files changed, 378 insertions(+), 47 deletions(-) diff --git a/.gitpod.yml b/.gitpod.yml index fb7dff2..c21bc3f 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -35,6 +35,7 @@ vscode: - ms-azuretools.vscode-docker - angular.ng-template - esbenp.prettier-vscode + - k--kato.docomment github: prebuilds: @@ -44,4 +45,4 @@ github: pullRequestsFromForks: true addCheck: false addComment: false - addBadge: true \ No newline at end of file + addBadge: true diff --git a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/api/scoreboardInfo.service.ts b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/api/scoreboardInfo.service.ts index 1483f24..e93616f 100644 --- a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/api/scoreboardInfo.service.ts +++ b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/api/scoreboardInfo.service.ts @@ -88,13 +88,14 @@ export class ScoreboardInfoService implements ScoreboardInfoServiceInterface { } /** + * Gets the current scoreboard. * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. * @param reportProgress flag to report request and response progress. */ - public apiScoreboardInfoGet(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json'}): Observable; - public apiScoreboardInfoGet(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json'}): Observable>; - public apiScoreboardInfoGet(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json'}): Observable>; - public apiScoreboardInfoGet(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json'}): Observable { + public apiScoreboardInfoScoreboardJsonGet(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json'}): Observable; + public apiScoreboardInfoScoreboardJsonGet(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json'}): Observable>; + public apiScoreboardInfoScoreboardJsonGet(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json'}): Observable>; + public apiScoreboardInfoScoreboardJsonGet(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json'}): Observable { let headers = this.defaultHeaders; @@ -118,7 +119,102 @@ export class ScoreboardInfoService implements ScoreboardInfoServiceInterface { responseType_ = 'text'; } - return this.httpClient.get(`${this.configuration.basePath}/api/ScoreboardInfo`, + return this.httpClient.get(`${this.configuration.basePath}/api/ScoreboardInfo/scoreboard.json`, + { + responseType: responseType_, + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + + /** + * Gets the scoreboard of a given roundId. + * @param roundId Number of the round. + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public apiScoreboardInfoScoreboardroundIdJsonGet(roundId: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json'}): Observable; + public apiScoreboardInfoScoreboardroundIdJsonGet(roundId: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json'}): Observable>; + public apiScoreboardInfoScoreboardroundIdJsonGet(roundId: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json'}): Observable>; + public apiScoreboardInfoScoreboardroundIdJsonGet(roundId: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json'}): Observable { + if (roundId === null || roundId === undefined) { + throw new Error('Required parameter roundId was null or undefined when calling apiScoreboardInfoScoreboardroundIdJsonGet.'); + } + + let headers = this.defaultHeaders; + + let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept; + if (httpHeaderAcceptSelected === undefined) { + // to determine the Accept header + const httpHeaderAccepts: string[] = [ + 'text/plain', + 'application/json', + 'text/json' + ]; + httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts); + } + if (httpHeaderAcceptSelected !== undefined) { + headers = headers.set('Accept', httpHeaderAcceptSelected); + } + + + let responseType_: 'text' | 'json' = 'json'; + if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) { + responseType_ = 'text'; + } + + return this.httpClient.get(`${this.configuration.basePath}/api/ScoreboardInfo/scoreboard${encodeURIComponent(String(roundId))}.json`, + { + responseType: responseType_, + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + + /** + * Gets the scoreboard of a given roundId. + * @param roundId Number of the round. + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public apiScoreboardInfoScoreboardroundIdJsonPost(roundId: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json'}): Observable; + public apiScoreboardInfoScoreboardroundIdJsonPost(roundId: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json'}): Observable>; + public apiScoreboardInfoScoreboardroundIdJsonPost(roundId: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json'}): Observable>; + public apiScoreboardInfoScoreboardroundIdJsonPost(roundId: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json'}): Observable { + if (roundId === null || roundId === undefined) { + throw new Error('Required parameter roundId was null or undefined when calling apiScoreboardInfoScoreboardroundIdJsonPost.'); + } + + let headers = this.defaultHeaders; + + let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept; + if (httpHeaderAcceptSelected === undefined) { + // to determine the Accept header + const httpHeaderAccepts: string[] = [ + 'text/plain', + 'application/json', + 'text/json' + ]; + httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts); + } + if (httpHeaderAcceptSelected !== undefined) { + headers = headers.set('Accept', httpHeaderAcceptSelected); + } + + + let responseType_: 'text' | 'json' = 'json'; + if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) { + responseType_ = 'text'; + } + + return this.httpClient.post(`${this.configuration.basePath}/api/ScoreboardInfo/scoreboard${encodeURIComponent(String(roundId))}.json`, + null, { responseType: responseType_, withCredentials: this.configuration.withCredentials, diff --git a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/api/scoreboardInfo.serviceInterface.ts b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/api/scoreboardInfo.serviceInterface.ts index 86e3b8f..47c090d 100644 --- a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/api/scoreboardInfo.serviceInterface.ts +++ b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/api/scoreboardInfo.serviceInterface.ts @@ -25,9 +25,23 @@ export interface ScoreboardInfoServiceInterface { configuration: Configuration; /** + * Gets the current scoreboard. * + */ + apiScoreboardInfoScoreboardJsonGet(extraHttpRequestParams?: any): Observable; + + /** + * Gets the scoreboard of a given roundId. + * + * @param roundId Number of the round. + */ + apiScoreboardInfoScoreboardroundIdJsonGet(roundId: number, extraHttpRequestParams?: any): Observable; + + /** + * Gets the scoreboard of a given roundId. * + * @param roundId Number of the round. */ - apiScoreboardInfoGet(extraHttpRequestParams?: any): Observable; + apiScoreboardInfoScoreboardroundIdJsonPost(roundId: number, extraHttpRequestParams?: any): Observable; } diff --git a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/ctfInfoMessage.ts b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/ctfInfoMessage.ts index 4f65ef7..bf208b3 100644 --- a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/ctfInfoMessage.ts +++ b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/ctfInfoMessage.ts @@ -11,10 +11,29 @@ */ +/** + * A DTO representing General Information about the CTF. + */ export interface CtfInfoMessage { + /** + * The Title of the CTF. + */ + title?: string | null; + /** + * The StartTime of the CTF. + */ startTime?: string; - registrationCloseOffset?: number; - checkInBeginOffset?: number; - checkInEndOffset?: number; + /** + * The Time until Teams have to be registred. + */ + registrationCloseOffset?: string; + /** + * The Time when the checkin will be available. + */ + checkInBeginOffset?: string; + /** + * The Time until Teams have to be checked in. + */ + checkInEndOffset?: string; } diff --git a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboardInfo.ts b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboardInfo.ts index 3dd9b75..2002538 100644 --- a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboardInfo.ts +++ b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboardInfo.ts @@ -14,7 +14,11 @@ import { ScoreboardService } from './scoreboardService'; export interface ScoreboardInfo { + currentRound?: number | null; dnsSuffix?: string | null; + startTimestamp?: string | null; + endTimestamp?: string | null; + services?: Array | null; teams?: Array | null; } diff --git a/EnoLandingPageBackend/ClientApp/swagger.json b/EnoLandingPageBackend/ClientApp/swagger.json index c15c377..36defc6 100644 --- a/EnoLandingPageBackend/ClientApp/swagger.json +++ b/EnoLandingPageBackend/ClientApp/swagger.json @@ -7,7 +7,9 @@ "paths": { "/api/Account/Login": { "get": { - "tags": ["Account"], + "tags": [ + "Account" + ], "summary": "Login to the Portal.", "parameters": [ { @@ -28,7 +30,9 @@ }, "/api/Account/OAuth2Redirect": { "get": { - "tags": ["Account"], + "tags": [ + "Account" + ], "parameters": [ { "name": "redirectUri", @@ -47,7 +51,9 @@ }, "/api/Account/Info": { "get": { - "tags": ["Account"], + "tags": [ + "Account" + ], "responses": { "200": { "description": "Success", @@ -74,7 +80,9 @@ }, "/api/Account/VpnConfig": { "get": { - "tags": ["Account"], + "tags": [ + "Account" + ], "responses": { "200": { "description": "Success" @@ -84,7 +92,9 @@ }, "/api/Account/CheckIn": { "post": { - "tags": ["Account"], + "tags": [ + "Account" + ], "responses": { "200": { "description": "Success" @@ -94,7 +104,9 @@ }, "/api/Admin/BootVm": { "get": { - "tags": ["Admin"], + "tags": [ + "Admin" + ], "parameters": [ { "name": "adminSecret", @@ -121,7 +133,9 @@ }, "/api/Admin/CtfJson": { "get": { - "tags": ["Admin"], + "tags": [ + "Admin" + ], "parameters": [ { "name": "adminSecret", @@ -140,7 +154,9 @@ }, "/api/Data/CtfInfo": { "get": { - "tags": ["Data"], + "tags": [ + "Data" + ], "responses": { "200": { "description": "Success", @@ -167,7 +183,9 @@ }, "/api/Data/Teams": { "get": { - "tags": ["Data"], + "tags": [ + "Data" + ], "summary": "Get all Teams.", "responses": { "200": { @@ -195,7 +213,9 @@ }, "/api/Data/IPs": { "get": { - "tags": ["Data"], + "tags": [ + "Data" + ], "responses": { "200": { "description": "Success" @@ -205,7 +225,9 @@ }, "/api/EnoEngine": { "get": { - "tags": ["EnoEngine"], + "tags": [ + "EnoEngine" + ], "responses": { "200": { "description": "Success" @@ -213,9 +235,96 @@ } } }, - "/api/ScoreboardInfo": { + "/api/ScoreboardInfo/scoreboard.json": { "get": { - "tags": ["ScoreboardInfo"], + "tags": [ + "ScoreboardInfo" + ], + "summary": "Gets the current scoreboard.", + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Scoreboard" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Scoreboard" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Scoreboard" + } + } + } + } + } + } + }, + "/api/ScoreboardInfo/scoreboard{roundId}.json": { + "get": { + "tags": [ + "ScoreboardInfo" + ], + "summary": "Gets the scoreboard of a given roundId.", + "parameters": [ + { + "name": "roundId", + "in": "path", + "description": "Number of the round.", + "required": true, + "schema": { + "type": "integer", + "format": "int32", + "default": -1 + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Scoreboard" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Scoreboard" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Scoreboard" + } + } + } + } + } + }, + "post": { + "tags": [ + "ScoreboardInfo" + ], + "summary": "Gets the scoreboard of a given roundId.", + "parameters": [ + { + "name": "roundId", + "in": "path", + "description": "Number of the round.", + "required": true, + "schema": { + "type": "integer", + "format": "int32", + "default": -1 + } + } + ], "responses": { "200": { "description": "Success", @@ -242,7 +351,9 @@ }, "/api/Vulnbox/StartVulnbox": { "post": { - "tags": ["Vulnbox"], + "tags": [ + "Vulnbox" + ], "responses": { "200": { "description": "Success" @@ -252,7 +363,9 @@ }, "/api/Vulnbox/ResetVulnbox": { "post": { - "tags": ["Vulnbox"], + "tags": [ + "Vulnbox" + ], "responses": { "200": { "description": "Success" @@ -266,27 +379,41 @@ "CtfInfoMessage": { "type": "object", "properties": { + "title": { + "type": "string", + "description": "The Title of the CTF.", + "nullable": true + }, "startTime": { "type": "string", + "description": "The StartTime of the CTF.", "format": "date-time" }, "registrationCloseOffset": { - "type": "integer", - "format": "int64" + "type": "string", + "description": "The Time until Teams have to be registred.", + "format": "date-time" }, "checkInBeginOffset": { - "type": "integer", - "format": "int64" + "type": "string", + "description": "The Time when the checkin will be available.", + "format": "date-time" }, "checkInEndOffset": { - "type": "integer", - "format": "int64" + "type": "string", + "description": "The Time until Teams have to be checked in.", + "format": "date-time" } }, - "additionalProperties": false + "additionalProperties": false, + "description": "A DTO representing General Information about the CTF." }, "LandingPageVulnboxStatus": { - "enum": [0, 1, 2], + "enum": [ + 0, + 1, + 2 + ], "type": "integer", "format": "int32" }, @@ -452,7 +579,14 @@ "additionalProperties": false }, "ServiceStatus": { - "enum": [0, 1, 2, 3, 4, 5], + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5 + ], "type": "integer", "format": "int32" }, @@ -536,4 +670,4 @@ } } } -} +} \ No newline at end of file diff --git a/EnoLandingPageBackend/Controllers/AccountController.cs b/EnoLandingPageBackend/Controllers/AccountController.cs index 1cb627e..18dd280 100644 --- a/EnoLandingPageBackend/Controllers/AccountController.cs +++ b/EnoLandingPageBackend/Controllers/AccountController.cs @@ -62,7 +62,7 @@ public async Task OAuth2Redirect(string redirectUri) throw new Exception($"OAuth2 failed: ctftimeid={ctftimeIdClaim} teamname={teamname} claims={this.HttpContext.User.Claims.Count()}"); } - if (DateTime.UtcNow > this.settings.StartTime.AddHours(-this.settings.RegistrationCloseOffset).ToUniversalTime() && + if (DateTime.UtcNow > this.settings.GetRegistrationCloseTime() && !await this.db.CtftimeTeamExists(ctftimeId, this.HttpContext.RequestAborted)) { return this.Redirect("/registrationclosed"); @@ -124,8 +124,8 @@ public async Task VpnConfig() public async Task CheckIn() { long teamId = this.GetTeamId(); - if (DateTime.UtcNow > this.settings.StartTime.AddHours(-this.settings.CheckInEndOffset).ToUniversalTime() || - this.settings.StartTime.AddHours(-this.settings.CheckInBeginOffset).ToUniversalTime() > DateTime.UtcNow) + if (DateTime.UtcNow > this.settings.GetCheckInCloseTime() || + this.settings.GetCheckInBeginTime() > DateTime.UtcNow) { return this.Forbid(); } diff --git a/EnoLandingPageBackend/Controllers/DataController.cs b/EnoLandingPageBackend/Controllers/DataController.cs index 76a3b69..48bbade 100644 --- a/EnoLandingPageBackend/Controllers/DataController.cs +++ b/EnoLandingPageBackend/Controllers/DataController.cs @@ -30,10 +30,11 @@ public DataController(LandingPageSettings settings, LandingPageDatabase db, ILog public ActionResult CtfInfo() { return this.Ok(new CtfInfoMessage( + this.settings.Title, this.settings.StartTime.ToUniversalTime(), - this.settings.RegistrationCloseOffset, - this.settings.CheckInBeginOffset, - this.settings.CheckInEndOffset)); + this.settings.GetRegistrationCloseTime(), + this.settings.GetCheckInBeginTime(), + this.settings.GetCheckInCloseTime())); } /// diff --git a/EnoLandingPageBackend/LandingPageSettings.cs b/EnoLandingPageBackend/LandingPageSettings.cs index b3e14fd..1f68157 100644 --- a/EnoLandingPageBackend/LandingPageSettings.cs +++ b/EnoLandingPageBackend/LandingPageSettings.cs @@ -48,6 +48,22 @@ public class LandingPageSettings [Required] public string AdminSecret { get; set; } + + + public DateTime GetRegistrationCloseTime() + { + return this.StartTime.AddHours(-this.RegistrationCloseOffset).ToUniversalTime(); + } + + public DateTime GetCheckInCloseTime() + { + return this.StartTime.AddHours(-this.CheckInEndOffset).ToUniversalTime(); + } + + public DateTime GetCheckInBeginTime() + { + return this.StartTime.AddHours(-this.CheckInBeginOffset).ToUniversalTime(); + } } #pragma warning restore CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. } diff --git a/EnoLandingPageBackend/Models/CtfInfoMessage.cs b/EnoLandingPageBackend/Models/CtfInfoMessage.cs index d6a52c8..49fff58 100644 --- a/EnoLandingPageBackend/Models/CtfInfoMessage.cs +++ b/EnoLandingPageBackend/Models/CtfInfoMessage.cs @@ -4,10 +4,56 @@ using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; - // Update with already calculated values - public record CtfInfoMessage( - DateTime StartTime, - long RegistrationCloseOffset, - long CheckInBeginOffset, - long CheckInEndOffset); + + + /// + /// A DTO representing General Information about the CTF. + /// + public class CtfInfoMessage + { + /// + /// Create a new CtfInfoMessage + /// + /// + /// + /// + /// + /// + public CtfInfoMessage(string title, DateTime startTime, DateTime registrationCloseOffset, DateTime checkInBeginOffset, DateTime checkInEndOffset) + { + this.Title = title; + this.StartTime = startTime; + this.RegistrationCloseOffset = registrationCloseOffset; + this.CheckInBeginOffset = checkInBeginOffset; + this.CheckInEndOffset = checkInEndOffset; + } + /// + /// The Title of the CTF. + /// + public string Title { get; set; } + + /// + /// The StartTime of the CTF. + /// + public DateTime StartTime { get; set; } + + /// + /// The Time until Teams have to be registred. + /// + /// + public DateTime RegistrationCloseOffset {get; set; } + + /// + /// The Time when the checkin will be available. + /// + /// + public DateTime CheckInBeginOffset {get; set; } + + /// + /// The Time until Teams have to be checked in. + /// + /// + public DateTime CheckInEndOffset {get; set; } + + } } From c50d3d80fef4f6f37d9b74d566ac3bfe75a1238e Mon Sep 17 00:00:00 2001 From: Adrian Gronau Date: Fri, 18 Jun 2021 13:19:41 +0200 Subject: [PATCH 043/118] Improve scoreboard Co-authored-by: Daniel Habenicht --- .../ClientApp/package-lock.json | 8 + EnoLandingPageBackend/ClientApp/package.json | 3 +- .../src/lib/api/scoreboardInfo.service.ts | 106 +- .../api/scoreboardInfo.serviceInterface.ts | 16 +- .../src/lib/model/ctfInfoMessage.ts | 25 +- .../src/lib/model/scoreboardInfo.ts | 4 + .../app-navigation.component.html | 7 +- .../dialog-info/dialog-info.component.html | 4 + .../dialog-info/dialog-info.component.scss | 0 .../dialog-info/dialog-info.component.spec.ts | 25 + .../dialog-info/dialog-info.component.ts | 20 + .../page-scoreboard.component.html | 70 +- .../page-scoreboard.component.scss | 40 +- .../page-scoreboard.component.ts | 80 +- .../page-scoreboard/page-scoreboard.module.ts | 6 +- .../ClientApp/src/assets/scoreboard.json | 116 +- .../ClientApp/src/assets/scoreboard0.json | 3076 +++++++++++++++++ .../ClientApp/src/assets/scoreboard1.json | 3076 +++++++++++++++++ .../ClientApp/src/assets/scoreboard2.json | 3076 +++++++++++++++++ .../ClientApp/src/assets/scoreboard3.json | 3076 +++++++++++++++++ EnoLandingPageBackend/ClientApp/swagger.json | 184 +- .../Controllers/AccountController.cs | 6 +- .../Controllers/DataController.cs | 7 +- EnoLandingPageBackend/LandingPageSettings.cs | 16 + .../Models/CtfInfoMessage.cs | 58 +- 25 files changed, 12954 insertions(+), 151 deletions(-) create mode 100644 EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/dialog-info/dialog-info.component.html create mode 100644 EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/dialog-info/dialog-info.component.scss create mode 100644 EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/dialog-info/dialog-info.component.spec.ts create mode 100644 EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/dialog-info/dialog-info.component.ts create mode 100644 EnoLandingPageBackend/ClientApp/src/assets/scoreboard0.json create mode 100644 EnoLandingPageBackend/ClientApp/src/assets/scoreboard1.json create mode 100644 EnoLandingPageBackend/ClientApp/src/assets/scoreboard2.json create mode 100644 EnoLandingPageBackend/ClientApp/src/assets/scoreboard3.json diff --git a/EnoLandingPageBackend/ClientApp/package-lock.json b/EnoLandingPageBackend/ClientApp/package-lock.json index 5e92db7..b58a55b 100644 --- a/EnoLandingPageBackend/ClientApp/package-lock.json +++ b/EnoLandingPageBackend/ClientApp/package-lock.json @@ -7706,6 +7706,14 @@ "tslib": "^2.0.0" } }, + "ngx-countdown": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/ngx-countdown/-/ngx-countdown-12.0.0.tgz", + "integrity": "sha512-EYtHN3vmlVFwNyVrGtz24KjNQRyeKw9+X9oWNbfvh0Ph6nCry0rfAKGy02IDArOV+CRMRmQ4rZickbm/OxzsmA==", + "requires": { + "tslib": "^2.1.0" + } + }, "nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", diff --git a/EnoLandingPageBackend/ClientApp/package.json b/EnoLandingPageBackend/ClientApp/package.json index 415ec43..fda64ab 100644 --- a/EnoLandingPageBackend/ClientApp/package.json +++ b/EnoLandingPageBackend/ClientApp/package.json @@ -7,7 +7,7 @@ "build": "ng build", "watch": "ng build --watch --configuration development", "test": "ng test", - "client-generator": "openapi-generator-cli generate -i swagger.json -g typescript-angular -o projects/backend-api/src/lib --additional-properties=ngVersion=11.0.0,npmName=backendAPI,supportsES6=true,withInterfaces=true" + "generate-api": "openapi-generator-cli generate -i swagger.json -g typescript-angular -o projects/backend-api/src/lib --additional-properties=ngVersion=11.0.0,npmName=backendAPI,supportsES6=true,withInterfaces=true" }, "private": true, "dependencies": { @@ -24,6 +24,7 @@ "@ngxs/store": "^3.7.2", "@w11k/ngx-componentdestroyed": "^5.0.2", "ng-table-virtual-scroll": "^1.3.6", + "ngx-countdown": "^12.0.0", "rxjs": "~6.6.0", "tslib": "^2.1.0", "zone.js": "~0.11.4" diff --git a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/api/scoreboardInfo.service.ts b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/api/scoreboardInfo.service.ts index 1483f24..e93616f 100644 --- a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/api/scoreboardInfo.service.ts +++ b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/api/scoreboardInfo.service.ts @@ -88,13 +88,14 @@ export class ScoreboardInfoService implements ScoreboardInfoServiceInterface { } /** + * Gets the current scoreboard. * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. * @param reportProgress flag to report request and response progress. */ - public apiScoreboardInfoGet(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json'}): Observable; - public apiScoreboardInfoGet(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json'}): Observable>; - public apiScoreboardInfoGet(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json'}): Observable>; - public apiScoreboardInfoGet(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json'}): Observable { + public apiScoreboardInfoScoreboardJsonGet(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json'}): Observable; + public apiScoreboardInfoScoreboardJsonGet(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json'}): Observable>; + public apiScoreboardInfoScoreboardJsonGet(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json'}): Observable>; + public apiScoreboardInfoScoreboardJsonGet(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json'}): Observable { let headers = this.defaultHeaders; @@ -118,7 +119,102 @@ export class ScoreboardInfoService implements ScoreboardInfoServiceInterface { responseType_ = 'text'; } - return this.httpClient.get(`${this.configuration.basePath}/api/ScoreboardInfo`, + return this.httpClient.get(`${this.configuration.basePath}/api/ScoreboardInfo/scoreboard.json`, + { + responseType: responseType_, + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + + /** + * Gets the scoreboard of a given roundId. + * @param roundId Number of the round. + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public apiScoreboardInfoScoreboardroundIdJsonGet(roundId: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json'}): Observable; + public apiScoreboardInfoScoreboardroundIdJsonGet(roundId: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json'}): Observable>; + public apiScoreboardInfoScoreboardroundIdJsonGet(roundId: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json'}): Observable>; + public apiScoreboardInfoScoreboardroundIdJsonGet(roundId: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json'}): Observable { + if (roundId === null || roundId === undefined) { + throw new Error('Required parameter roundId was null or undefined when calling apiScoreboardInfoScoreboardroundIdJsonGet.'); + } + + let headers = this.defaultHeaders; + + let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept; + if (httpHeaderAcceptSelected === undefined) { + // to determine the Accept header + const httpHeaderAccepts: string[] = [ + 'text/plain', + 'application/json', + 'text/json' + ]; + httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts); + } + if (httpHeaderAcceptSelected !== undefined) { + headers = headers.set('Accept', httpHeaderAcceptSelected); + } + + + let responseType_: 'text' | 'json' = 'json'; + if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) { + responseType_ = 'text'; + } + + return this.httpClient.get(`${this.configuration.basePath}/api/ScoreboardInfo/scoreboard${encodeURIComponent(String(roundId))}.json`, + { + responseType: responseType_, + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + + /** + * Gets the scoreboard of a given roundId. + * @param roundId Number of the round. + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public apiScoreboardInfoScoreboardroundIdJsonPost(roundId: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json'}): Observable; + public apiScoreboardInfoScoreboardroundIdJsonPost(roundId: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json'}): Observable>; + public apiScoreboardInfoScoreboardroundIdJsonPost(roundId: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json'}): Observable>; + public apiScoreboardInfoScoreboardroundIdJsonPost(roundId: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json'}): Observable { + if (roundId === null || roundId === undefined) { + throw new Error('Required parameter roundId was null or undefined when calling apiScoreboardInfoScoreboardroundIdJsonPost.'); + } + + let headers = this.defaultHeaders; + + let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept; + if (httpHeaderAcceptSelected === undefined) { + // to determine the Accept header + const httpHeaderAccepts: string[] = [ + 'text/plain', + 'application/json', + 'text/json' + ]; + httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts); + } + if (httpHeaderAcceptSelected !== undefined) { + headers = headers.set('Accept', httpHeaderAcceptSelected); + } + + + let responseType_: 'text' | 'json' = 'json'; + if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) { + responseType_ = 'text'; + } + + return this.httpClient.post(`${this.configuration.basePath}/api/ScoreboardInfo/scoreboard${encodeURIComponent(String(roundId))}.json`, + null, { responseType: responseType_, withCredentials: this.configuration.withCredentials, diff --git a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/api/scoreboardInfo.serviceInterface.ts b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/api/scoreboardInfo.serviceInterface.ts index 86e3b8f..47c090d 100644 --- a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/api/scoreboardInfo.serviceInterface.ts +++ b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/api/scoreboardInfo.serviceInterface.ts @@ -25,9 +25,23 @@ export interface ScoreboardInfoServiceInterface { configuration: Configuration; /** + * Gets the current scoreboard. * + */ + apiScoreboardInfoScoreboardJsonGet(extraHttpRequestParams?: any): Observable; + + /** + * Gets the scoreboard of a given roundId. + * + * @param roundId Number of the round. + */ + apiScoreboardInfoScoreboardroundIdJsonGet(roundId: number, extraHttpRequestParams?: any): Observable; + + /** + * Gets the scoreboard of a given roundId. * + * @param roundId Number of the round. */ - apiScoreboardInfoGet(extraHttpRequestParams?: any): Observable; + apiScoreboardInfoScoreboardroundIdJsonPost(roundId: number, extraHttpRequestParams?: any): Observable; } diff --git a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/ctfInfoMessage.ts b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/ctfInfoMessage.ts index 4f65ef7..bf208b3 100644 --- a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/ctfInfoMessage.ts +++ b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/ctfInfoMessage.ts @@ -11,10 +11,29 @@ */ +/** + * A DTO representing General Information about the CTF. + */ export interface CtfInfoMessage { + /** + * The Title of the CTF. + */ + title?: string | null; + /** + * The StartTime of the CTF. + */ startTime?: string; - registrationCloseOffset?: number; - checkInBeginOffset?: number; - checkInEndOffset?: number; + /** + * The Time until Teams have to be registred. + */ + registrationCloseOffset?: string; + /** + * The Time when the checkin will be available. + */ + checkInBeginOffset?: string; + /** + * The Time until Teams have to be checked in. + */ + checkInEndOffset?: string; } diff --git a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboardInfo.ts b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboardInfo.ts index 3dd9b75..2002538 100644 --- a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboardInfo.ts +++ b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboardInfo.ts @@ -14,7 +14,11 @@ import { ScoreboardService } from './scoreboardService'; export interface ScoreboardInfo { + currentRound?: number | null; dnsSuffix?: string | null; + startTimestamp?: string | null; + endTimestamp?: string | null; + services?: Array | null; teams?: Array | null; } diff --git a/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.html b/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.html index e33a84c..2dd3e7b 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.html +++ b/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.html @@ -96,16 +96,17 @@
- Information for {{info.service}} of {{info.team}} +
+ {{info | json}} +
\ No newline at end of file diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/dialog-info/dialog-info.component.scss b/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/dialog-info/dialog-info.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/dialog-info/dialog-info.component.spec.ts b/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/dialog-info/dialog-info.component.spec.ts new file mode 100644 index 0000000..89a1905 --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/dialog-info/dialog-info.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { DialogInfoComponent } from './dialog-info.component'; + +describe('DialogInfoComponent', () => { + let component: DialogInfoComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ DialogInfoComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(DialogInfoComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/dialog-info/dialog-info.component.ts b/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/dialog-info/dialog-info.component.ts new file mode 100644 index 0000000..ea4af87 --- /dev/null +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/dialog-info/dialog-info.component.ts @@ -0,0 +1,20 @@ +import { Component, Inject, OnInit } from '@angular/core'; +import { MAT_DIALOG_DATA } from '@angular/material/dialog'; + +export interface InfoDialogData { + [str: string]: any +} + +@Component({ + selector: 'app-dialog-info', + templateUrl: './dialog-info.component.html', + styleUrls: ['./dialog-info.component.scss'] +}) +export class DialogInfoComponent implements OnInit { + + constructor(@Inject(MAT_DIALOG_DATA) public info: InfoDialogData) {} + + ngOnInit(): void { + } + +} diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.html b/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.html index 156b2f3..4774fef 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.html +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.html @@ -1,54 +1,60 @@
-
- -
-

Round {{ round }}

-
- -
- - + +
- - - - - - + diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.ts b/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.ts index 81d5d63..ff4ea8f 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.ts +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.ts @@ -1,25 +1,24 @@ -import { DataSource } from '@angular/cdk/collections'; import { HttpClient } from '@angular/common/http'; import { Component, OnInit, ViewChild, - AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, } from '@angular/core'; import { MatDialog } from '@angular/material/dialog'; import { MatSort, SortDirection } from '@angular/material/sort'; import { MatTableDataSource } from '@angular/material/table'; -import { ScoreboardInfoService } from 'projects/backend-api/src/lib'; -import { ScoreboardInfo } from 'projects/backend-api/src/lib/model/scoreboardInfo'; -import { ScoreboardInfoTeam } from 'projects/backend-api/src/lib/model/scoreboardInfoTeam'; +import { + Scoreboard, + ScoreboardInfoService, +} from 'projects/backend-api/src/lib'; import { ScoreboardService } from 'projects/backend-api/src/lib/model/scoreboardService'; import { ScoreboardTeam } from 'projects/backend-api/src/lib/model/scoreboardTeam'; -import { ScoreboardTeamServiceDetails } from 'projects/backend-api/src/lib/model/scoreboardTeamServiceDetails'; -import { merge, Observable, of as observableOf } from 'rxjs'; -import { catchError, map, startWith, switchMap } from 'rxjs/operators'; -import { DialogInfoComponent } from './dialog-info/dialog-info.component'; +import { + DialogInfoComponent, + InfoDialogData, +} from './dialog-info/dialog-info.component'; @Component({ selector: 'app-page-scoreboard', @@ -30,18 +29,21 @@ import { DialogInfoComponent } from './dialog-info/dialog-info.component'; export class PageScoreboardComponent implements OnInit { public round: number = 0; public isCurrentRound: boolean = false; - public displayedColumns: string[] = ['teamId']; + public get displayedColumns(): string[] { + return ['teamId', ...this.columns]; + } - // public scoreboard: ScoreboardInfo; - public teams: ScoreboardTeam[] | undefined; public services: ScoreboardService[] | undefined; - public tableData: TableData | undefined; - public dataSource: MatTableDataSource = (new MatTableDataSource([])) as any; + public dataSource: MatTableDataSource = new MatTableDataSource( + [] + ) as any; + + public columns: string[] = []; public countDownConfig = { leftTime: 60, - format: 'mm:ss' + format: 'mm:ss', }; @ViewChild(MatSort) sort!: MatSort; @@ -52,30 +54,32 @@ export class PageScoreboardComponent implements OnInit { private scoreboardInfoService: ScoreboardInfoService, private ref: ChangeDetectorRef ) {} - + ngOnInit(): void { // this.ref.detach(); } - ngAfterViewInit() { - this.loadRound(); + ngAfterViewInit() { + this.loadRound(); - this.scoreboardInfoService.apiScoreboardInfoScoreboardJsonGet() - this.scoreboardInfoService.apiScoreboardInfoScoreboardroundIdJsonGet(23); + // this.scoreboardInfoService.apiScoreboardInfoScoreboardJsonGet(); + // this.scoreboardInfoService.apiScoreboardInfoScoreboardroundIdJsonGet(23); } public loadRound(round: number | null = null): void { - let suffix: any = ""; + let suffix: any = ''; if (round !== null) { suffix = Math.max(round, 0); } this._httpClient .get('/assets/scoreboard' + suffix + '.json') - .subscribe((scoreboard: ScoreboardInfo) => { + .subscribe((scoreboard: Scoreboard) => { this.round = scoreboard.currentRound!; - this.teams = scoreboard.teams!; - this.dataSource.data = scoreboard.teams!; - this.services = scoreboard.services!; + this.services = + scoreboard.services?.sort((a, b) => a.serviceId! - b.serviceId!) || + []; + + console.log(this.services); let currentTime = new Date(); let startTime = new Date(scoreboard.startTimestamp!); @@ -83,28 +87,30 @@ export class PageScoreboardComponent implements OnInit { /** @ts-ignore */ let roundLength = endTime - startTime; // TODO: check if this is working - this.isCurrentRound = (roundLength + (endTime.getTime() - currentTime.getTime()) / 1000) >= 0; + this.isCurrentRound = + roundLength + (endTime.getTime() - currentTime.getTime()) / 1000 >= 0; this.countDownConfig = { ...this.countDownConfig, leftTime: (endTime.getTime() - currentTime.getTime()) / 1000, }; - this.teams.forEach((team) => { - let services: any = []; - - if (team && team.serviceDetails) { - team.serviceDetails.forEach((el) => { - services[el.serviceId!] = el; + this.dataSource.data = + scoreboard.teams?.map((team) => { + let row: any = { + team: team, + }; + team.serviceDetails?.forEach((service) => { + row[service.serviceId!.toString()] = service; }); - } - }); - this.displayedColumns = ['teamId'] - scoreboard.services?.forEach((service) => { - if (service.serviceId) { - this.displayedColumns.push('service-' + service.serviceId); - } - }); + return row; + }) || []; + + this.columns = + scoreboard.services?.reduce((accumulator, service) => { + accumulator.push(service.serviceId!.toString()); + return accumulator; + }, [] as string[]) || []; this.ref.markForCheck(); }); } @@ -130,18 +136,13 @@ export class PageScoreboardComponent implements OnInit { return item.teamId; } - openInfo(info: any) { + openInfo(row: any, service: ScoreboardService) { + let data: InfoDialogData = { + row: row, + service: service, + }; this.dialog.open(DialogInfoComponent, { - data: { - info - } + data: data, }); } } - -interface TableData { - teamName: string; - services: { - [service: string]: ScoreboardService; - }; -} From 2714f553b5a66903553b1feaa10be205e1cdc422 Mon Sep 17 00:00:00 2001 From: DanielHabenicht Date: Fri, 18 Jun 2021 18:28:19 +0000 Subject: [PATCH 049/118] fix gitpod again --- .gitpod.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitpod.yml b/.gitpod.yml index c21bc3f..7f529fe 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -26,7 +26,7 @@ tasks: # List the ports to expose. Learn more https://www.gitpod.io/docs/config-ports/ ports: - port: 5000 - onOpen: open-preview + onOpen: notify - port: 4200 onOpen: ignore From 7793323deecaca7a28d7bbc9dffa7474d8fed96d Mon Sep 17 00:00:00 2001 From: DanielHabenicht Date: Fri, 18 Jun 2021 18:50:31 +0000 Subject: [PATCH 050/118] add counter --- .../app-navigation.component.html | 17 +++++++---- .../app-navigation.component.ts | 10 +++++++ .../app-navigation/app-navigation.module.ts | 2 ++ .../src/app/shared/states/App.state.ts | 28 +++++++++++++++++++ 4 files changed, 51 insertions(+), 6 deletions(-) diff --git a/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.html b/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.html index 2dd3e7b..db9e190 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.html +++ b/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.html @@ -99,9 +99,13 @@ @@ -172,10 +176,11 @@ diff --git a/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.ts b/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.ts index 5561510..27dec2f 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.ts +++ b/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.ts @@ -47,6 +47,11 @@ export class AppNavigationComponent @Select(AppState.ctfInfo) public ctfInfo$!: Observable; + public countDownConfig = { + leftTime: 60, + format: 'HH:mm:ss', + }; + constructor(private store: Store) { super(); } @@ -72,6 +77,11 @@ export class AppNavigationComponent .pipe(untilComponentDestroyed(this)) .subscribe((state: AppStateModel) => { this.themeValue = state.activeTheme; + this.countDownConfig = { + ...this.countDownConfig, + leftTime: + Date.parse(state.ctfInfo?.startTime!) - new Date().getTime(), + }; }); } public ngOnDestroy() {} diff --git a/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.module.ts b/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.module.ts index c3c46b7..9e28cdb 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.module.ts +++ b/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.module.ts @@ -9,6 +9,7 @@ import { MatButtonModule } from '@angular/material/button'; import { MatIconModule } from '@angular/material/icon'; import { MatMenuModule } from '@angular/material/menu'; import { MatListModule } from '@angular/material/list'; +import { CountdownModule } from 'ngx-countdown'; @NgModule({ declarations: [AppNavigationComponent], @@ -22,6 +23,7 @@ import { MatListModule } from '@angular/material/list'; MatMenuModule, MatListModule, RouterModule, + CountdownModule, ], exports: [AppNavigationComponent], }) diff --git a/EnoLandingPageBackend/ClientApp/src/app/shared/states/App.state.ts b/EnoLandingPageBackend/ClientApp/src/app/shared/states/App.state.ts index 00a836a..4275397 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/shared/states/App.state.ts +++ b/EnoLandingPageBackend/ClientApp/src/app/shared/states/App.state.ts @@ -123,6 +123,34 @@ export class AppState implements NgxsOnInit { return state.ctfInfo; } + @Selector() + public static ctfRegistrationOpen(state: AppStateModel): boolean { + let now = new Date().getTime(); + if (Date.parse(state.ctfInfo?.registrationCloseOffset!) >= now) { + return true + } + return false; + } + @Selector() + public static ctfCheckinOpen(state: AppStateModel): boolean { + let now = new Date().getTime(); + if ( + Date.parse(state.ctfInfo?.checkInBeginOffset!) <= now && + Date.parse(state.ctfInfo?.checkInEndOffset!) >= now + ) { + return true + } + return false; + } + @Selector() + public static ctfInProgress(state: AppStateModel): boolean { + let now = new Date().getTime(); + if (Date.parse(state.ctfInfo?.startTime!) <= now) { + return true; + } + return false; + } + @Action(ServiceWorkerNotificationDisplayed) public serviceWorkerNotificationDisplayed(ctx: StateContext) { const state = ctx.getState(); From c4e7230928cbc817896a29328454a7ec695b02f3 Mon Sep 17 00:00:00 2001 From: DanielHabenicht Date: Sat, 19 Jun 2021 16:30:33 +0200 Subject: [PATCH 051/118] Update .gitpod.yml --- .gitpod.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitpod.yml b/.gitpod.yml index 7f529fe..9288c87 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -36,6 +36,7 @@ vscode: - angular.ng-template - esbenp.prettier-vscode - k--kato.docomment + - https://github.com/OmniSharp/omnisharp-vscode/releases/download/v1.23.12/csharp-1.23.12.vsix github: prebuilds: From e9aaed673dee1d5eec361dc3da68df214b937b0f Mon Sep 17 00:00:00 2001 From: DanielHabenicht Date: Mon, 21 Jun 2021 17:10:17 +0000 Subject: [PATCH 052/118] remove uneeded nowarn --- EnoLandingPageBackend/EnoLandingPageBackend.csproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/EnoLandingPageBackend/EnoLandingPageBackend.csproj b/EnoLandingPageBackend/EnoLandingPageBackend.csproj index 8052acf..97af77a 100644 --- a/EnoLandingPageBackend/EnoLandingPageBackend.csproj +++ b/EnoLandingPageBackend/EnoLandingPageBackend.csproj @@ -21,8 +21,8 @@ - - + + all From 71bb8b2b94b87ffe95760830fbe442eae3f6d68d Mon Sep 17 00:00:00 2001 From: DanielHabenicht Date: Mon, 21 Jun 2021 17:41:03 +0000 Subject: [PATCH 053/118] update enoCore version --- EnoLandingPageBackend/EnoLandingPageBackend.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EnoLandingPageBackend/EnoLandingPageBackend.csproj b/EnoLandingPageBackend/EnoLandingPageBackend.csproj index 97af77a..5a91b06 100644 --- a/EnoLandingPageBackend/EnoLandingPageBackend.csproj +++ b/EnoLandingPageBackend/EnoLandingPageBackend.csproj @@ -20,7 +20,7 @@ - + From 19ea68688c5552a4951171e4c33b70b0598b436a Mon Sep 17 00:00:00 2001 From: DanielHabenicht Date: Mon, 21 Jun 2021 20:34:03 +0000 Subject: [PATCH 054/118] update api --- .../backend-api/src/lib/model/scoreboard.ts | 6 +- .../src/lib/model/scoreboardFirstBlood.ts | 10 ++-- .../src/lib/model/scoreboardService.ts | 8 +-- .../src/lib/model/scoreboardTeam.ts | 14 ++--- .../lib/model/scoreboardTeamServiceDetails.ts | 10 ++-- EnoLandingPageBackend/ClientApp/swagger.json | 58 ++++++++++++++----- 6 files changed, 66 insertions(+), 40 deletions(-) diff --git a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboard.ts b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboard.ts index 83435bb..5bc099f 100644 --- a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboard.ts +++ b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboard.ts @@ -14,11 +14,11 @@ import { ScoreboardTeam } from './scoreboardTeam'; export interface Scoreboard { - currentRound?: number; + currentRound: number; startTimestamp?: string | null; endTimestamp?: string | null; dnsSuffix?: string | null; - services?: Array | null; - teams?: Array | null; + services: Array; + teams: Array; } diff --git a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboardFirstBlood.ts b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboardFirstBlood.ts index a639ea4..a616a81 100644 --- a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboardFirstBlood.ts +++ b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboardFirstBlood.ts @@ -12,10 +12,10 @@ export interface ScoreboardFirstBlood { - teamId?: number; - teamName?: string | null; - timestamp?: string | null; - roundId?: number; - flagVariantId?: number; + teamId: number; + teamName: string; + timestamp: string; + roundId: number; + flagVariantId: number; } diff --git a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboardService.ts b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboardService.ts index 65a2111..9dc4834 100644 --- a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboardService.ts +++ b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboardService.ts @@ -13,9 +13,9 @@ import { ScoreboardFirstBlood } from './scoreboardFirstBlood'; export interface ScoreboardService { - serviceId?: number; - serviceName?: string | null; - flagVariants?: number; - firstBloods?: Array | null; + serviceId: number; + serviceName: string; + flagVariants: number; + firstBloods: Array; } diff --git a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboardTeam.ts b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboardTeam.ts index ffeaab1..9aa0eb9 100644 --- a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboardTeam.ts +++ b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboardTeam.ts @@ -13,14 +13,14 @@ import { ScoreboardTeamServiceDetails } from './scoreboardTeamServiceDetails'; export interface ScoreboardTeam { - teamName?: string | null; - teamId?: number; + teamName: string; + teamId: number; logoUrl?: string | null; countryCode?: string | null; - totalScore?: number; - attackScore?: number; - defenseScore?: number; - serviceLevelAgreementScore?: number; - serviceDetails?: Array | null; + totalScore: number; + attackScore: number; + defenseScore: number; + serviceLevelAgreementScore: number; + serviceDetails: Array; } diff --git a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboardTeamServiceDetails.ts b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboardTeamServiceDetails.ts index 91503b9..f6543c9 100644 --- a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboardTeamServiceDetails.ts +++ b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboardTeamServiceDetails.ts @@ -13,11 +13,11 @@ import { ServiceStatus } from './serviceStatus'; export interface ScoreboardTeamServiceDetails { - serviceId?: number; - attackScore?: number; - defenseScore?: number; - serviceLevelAgreementScore?: number; - serviceStatus?: ServiceStatus; + serviceId: number; + attackScore: number; + defenseScore: number; + serviceLevelAgreementScore: number; + serviceStatus: ServiceStatus; message?: string | null; } diff --git a/EnoLandingPageBackend/ClientApp/swagger.json b/EnoLandingPageBackend/ClientApp/swagger.json index 6ef4f1f..44139a3 100644 --- a/EnoLandingPageBackend/ClientApp/swagger.json +++ b/EnoLandingPageBackend/ClientApp/swagger.json @@ -417,6 +417,11 @@ "type": "string" }, "Scoreboard": { + "required": [ + "currentRound", + "services", + "teams" + ], "type": "object", "properties": { "currentRound": { @@ -439,20 +444,25 @@ "type": "array", "items": { "$ref": "#/components/schemas/ScoreboardService" - }, - "nullable": true + } }, "teams": { "type": "array", "items": { "$ref": "#/components/schemas/ScoreboardTeam" - }, - "nullable": true + } } }, "additionalProperties": false }, "ScoreboardFirstBlood": { + "required": [ + "flagVariantId", + "roundId", + "teamId", + "teamName", + "timestamp" + ], "type": "object", "properties": { "teamId": { @@ -460,12 +470,10 @@ "format": "int64" }, "teamName": { - "type": "string", - "nullable": true + "type": "string" }, "timestamp": { - "type": "string", - "nullable": true + "type": "string" }, "roundId": { "type": "integer", @@ -479,6 +487,12 @@ "additionalProperties": false }, "ScoreboardService": { + "required": [ + "firstBloods", + "flagVariants", + "serviceId", + "serviceName" + ], "type": "object", "properties": { "serviceId": { @@ -486,8 +500,7 @@ "format": "int64" }, "serviceName": { - "type": "string", - "nullable": true + "type": "string" }, "flagVariants": { "type": "integer", @@ -497,18 +510,25 @@ "type": "array", "items": { "$ref": "#/components/schemas/ScoreboardFirstBlood" - }, - "nullable": true + } } }, "additionalProperties": false }, "ScoreboardTeam": { + "required": [ + "attackScore", + "defenseScore", + "serviceDetails", + "serviceLevelAgreementScore", + "teamId", + "teamName", + "totalScore" + ], "type": "object", "properties": { "teamName": { - "type": "string", - "nullable": true + "type": "string" }, "teamId": { "type": "integer", @@ -542,13 +562,19 @@ "type": "array", "items": { "$ref": "#/components/schemas/ScoreboardTeamServiceDetails" - }, - "nullable": true + } } }, "additionalProperties": false }, "ScoreboardTeamServiceDetails": { + "required": [ + "attackScore", + "defenseScore", + "serviceId", + "serviceLevelAgreementScore", + "serviceStatus" + ], "type": "object", "properties": { "serviceId": { From 6c68a1e6b576bbd59ec1800487f7ddb4a10c8568 Mon Sep 17 00:00:00 2001 From: DanielHabenicht Date: Mon, 21 Jun 2021 20:38:01 +0000 Subject: [PATCH 055/118] fix build errors --- .../page-scoreboard/page-scoreboard.component.ts | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.ts b/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.ts index ff4ea8f..6d38f1f 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.ts +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.ts @@ -5,6 +5,7 @@ import { ViewChild, ChangeDetectionStrategy, ChangeDetectorRef, + TrackByFunction, } from '@angular/core'; import { MatDialog } from '@angular/material/dialog'; import { MatSort, SortDirection } from '@angular/material/sort'; @@ -72,8 +73,8 @@ export class PageScoreboardComponent implements OnInit { } this._httpClient - .get('/assets/scoreboard' + suffix + '.json') - .subscribe((scoreboard: Scoreboard) => { + .get('/assets/scoreboard' + suffix + '.json') + .subscribe((scoreboard) => { this.round = scoreboard.currentRound!; this.services = scoreboard.services?.sort((a, b) => a.serviceId! - b.serviceId!) || @@ -132,9 +133,12 @@ export class PageScoreboardComponent implements OnInit { this.loadRound(); } - public trackById(index: any, item: ScoreboardTeam) { + public trackById: TrackByFunction = ( + index: number, + item: ScoreboardTeam + ) => { return item.teamId; - } + }; openInfo(row: any, service: ScoreboardService) { let data: InfoDialogData = { From dc09240edc567787439eb2c5e444cbae7e30e162 Mon Sep 17 00:00:00 2001 From: DanielHabenicht Date: Mon, 21 Jun 2021 23:06:05 +0000 Subject: [PATCH 056/118] add scoreboard backend functionality --- .../Cache/ScoreboardCache.cs | 64 +++++ .../Controllers/ScoreboardInfoController.cs | 84 ++++++- .../Database/LandingPageDatabase.cs | 30 +++ .../Database/LandingPageDatabaseContext.cs | 7 + .../20210621220445_scoreboard.Designer.cs | 122 ++++++++++ .../Migrations/20210621220445_scoreboard.cs | 29 +++ ...LandingPageDatabaseContextModelSnapshot.cs | 225 ++++++++++-------- .../Models/DatabaseScoreboard.cs | 27 +++ EnoLandingPageBackend/Startup.cs | 4 +- 9 files changed, 477 insertions(+), 115 deletions(-) create mode 100644 EnoLandingPageBackend/Cache/ScoreboardCache.cs create mode 100644 EnoLandingPageBackend/Migrations/20210621220445_scoreboard.Designer.cs create mode 100644 EnoLandingPageBackend/Migrations/20210621220445_scoreboard.cs create mode 100644 EnoLandingPageBackend/Models/DatabaseScoreboard.cs diff --git a/EnoLandingPageBackend/Cache/ScoreboardCache.cs b/EnoLandingPageBackend/Cache/ScoreboardCache.cs new file mode 100644 index 0000000..3e3333c --- /dev/null +++ b/EnoLandingPageBackend/Cache/ScoreboardCache.cs @@ -0,0 +1,64 @@ +using System; +using System.Threading.Tasks; +using EnoCore.Scoreboard; +using Microsoft.Extensions.Caching.Memory; +using Microsoft.Extensions.Options; + +namespace EnoLandingPageBackend.Cache +{ + public class ScoreboardCache + { + private readonly string defaultKey = "default"; + private MemoryCache _cache { get; set; } + public ScoreboardCache() + { + _cache = new MemoryCache(new MemoryCacheOptions + { + SizeLimit = 1024 + }); + } + + public Scoreboard TryGetDefault() + { + Scoreboard cacheEntry; + this._cache.TryGetValue(defaultKey, out cacheEntry); + return cacheEntry; + } + public void InvalidateDefault() + { + this._cache.Remove(defaultKey); + } + + public void CreateDefault(Scoreboard scoreboard) + { + var cacheEntryOptions = new MemoryCacheEntryOptions() + .SetSize(1); + _cache.Set(this.defaultKey, scoreboard, cacheEntryOptions); + } + + public Scoreboard GetOrCreate(object key, Func createItem) + { + Scoreboard cacheEntry; + if (!_cache.TryGetValue(key, out cacheEntry))// Look for cache key. + { + cacheEntry = createItem(); + + var cacheEntryOptions = new MemoryCacheEntryOptions() + .SetSize(1) + .SetPriority(CacheItemPriority.Normal); + + _cache.Set(key, cacheEntry, cacheEntryOptions); + } + return cacheEntry; + } + + public async Task GetOrCreateAsync(object key, Func> createItem) + { + var func = await createItem(); + return this.GetOrCreate(key, () => + { + return func; + }); + } + } +} \ No newline at end of file diff --git a/EnoLandingPageBackend/Controllers/ScoreboardInfoController.cs b/EnoLandingPageBackend/Controllers/ScoreboardInfoController.cs index c5e3122..b566cc6 100644 --- a/EnoLandingPageBackend/Controllers/ScoreboardInfoController.cs +++ b/EnoLandingPageBackend/Controllers/ScoreboardInfoController.cs @@ -7,16 +7,39 @@ using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using EnoCore.Scoreboard; + using Microsoft.Extensions.Logging; + using EnoLandingPageCore; + using Microsoft.Extensions.Caching.Memory; + using EnoLandingPageBackend.Cache; + using EnoLandingPageBackend.Database; + using Newtonsoft.Json; + using System.Threading; /// /// Retrieve the scoreboard. /// If you change this controller you will also have to change the static hosting variant. /// - [Authorize] [ApiController] [Route("/api/[controller]")] public class ScoreboardInfoController : ControllerBase { + private readonly ILogger logger; + private readonly LandingPageSettings settings; + private readonly LandingPageDatabase database; + private ScoreboardCache _cache; + + /// + /// Initalizes the ScoreboardController. + /// + /// + /// + public ScoreboardInfoController(ILogger logger, LandingPageSettings settings, LandingPageDatabase db, ScoreboardCache cache) + { + this.logger = logger; + this.settings = settings; + this.database = db; + this._cache = cache; + } /// /// Gets the current scoreboard. @@ -24,9 +47,20 @@ public class ScoreboardInfoController : ControllerBase /// The scoreboard of the current round. [HttpGet] [Route("scoreboard.json")] - public ActionResult GetDefaultScoreboard() + public async Task> GetDefaultScoreboard(CancellationToken cancellationToken) { - return this.Ok(); + Scoreboard scoreboard; + scoreboard = this._cache.TryGetDefault(); + if (scoreboard == null) + { + scoreboard = await this.database.GetCurrentScoreboard(cancellationToken); + this._cache.CreateDefault(scoreboard); + } + if (scoreboard == null) + { + return NotFound(); + } + return this.Ok(scoreboard); } /// @@ -36,21 +70,53 @@ public ActionResult GetDefaultScoreboard() /// The scoreboard of the given roundId. [HttpGet] [Route("scoreboard{roundId}.json")] - public ActionResult GetScoreboard(int roundId = -1) + public async Task> GetScoreboard(CancellationToken cancellationToken, int roundId = -1) { - return this.Ok(); + Scoreboard scoreboard; + try + { + scoreboard = await this._cache.GetOrCreateAsync(roundId, async () => + { + var scoreboard = await this.database.GetScoreboard(roundId, cancellationToken); + if (scoreboard == null) + { + throw new ScoreboardNotFoundException(); + } + return scoreboard; + }); + } + catch (ScoreboardNotFoundException) + { + return NotFound(); + } + return this.Ok(scoreboard); } /// /// Gets the scoreboard of a given roundId. + /// The round will be parsed from the JSON. /// - /// Number of the round. + /// The admin secret for authenticating the request. + /// The body of the request. /// The scoreboard of the given roundId. [HttpPost] - [Route("scoreboard{roundId}.json")] - public ActionResult PostScoreboard(int roundId = -1) + [Route("scoreboard")] + public async Task PostScoreboard(string adminSecret, [FromBody] Scoreboard scoreboard, CancellationToken cancellationToken) { - return this.Ok(); + if (adminSecret != this.settings.AdminSecret) + { + this.logger.LogInformation("Somebody unauthorized tried to update the Scoreboard."); + return this.Unauthorized(); + } + await this.database.SaveScoreboard(scoreboard, cancellationToken); + this._cache.InvalidateDefault(); + this.logger.LogDebug("New Scoreboard set."); + return Ok(); } } + + public class ScoreboardNotFoundException : Exception + { + + } } diff --git a/EnoLandingPageBackend/Database/LandingPageDatabase.cs b/EnoLandingPageBackend/Database/LandingPageDatabase.cs index 970ebfa..33f5ff0 100644 --- a/EnoLandingPageBackend/Database/LandingPageDatabase.cs +++ b/EnoLandingPageBackend/Database/LandingPageDatabase.cs @@ -4,10 +4,13 @@ using System.Collections.Generic; using System.Linq; using System.Security.Claims; + using System.Text.Json; using System.Threading; using System.Threading.Tasks; + using EnoCore.Scoreboard; using EnoLandingPageCore; using EnoLandingPageCore.Database; + using EnoLandingPageCore.Models; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; @@ -96,5 +99,32 @@ public async Task CheckIn(long teamId, CancellationToken token) dbTeam.Confirmed = true; await this.context.SaveChangesAsync(token); } + + public async Task SaveScoreboard(Scoreboard scoreboard, CancellationToken token) + { + // TODO: Maybe save locally to make exporting it easier? + this.context.Scoreboards.Add(new DatabaseScoreboard(scoreboard.CurrentRound, JsonSerializer.Serialize(scoreboard))); + await this.context.SaveChangesAsync(token); + } + + public async Task GetCurrentScoreboard(CancellationToken token) + { + var scoreboard = await this.context.Scoreboards.OrderByDescending(u => u.roundId).FirstOrDefaultAsync(); + if (scoreboard == null) + { + return null; + } + return JsonSerializer.Deserialize(scoreboard.scoreboardString); + } + + public async Task GetScoreboard(long roundId, CancellationToken token) + { + var scoreboard = await this.context.Scoreboards.Where(s => s.roundId == roundId).FirstOrDefaultAsync(); + if (scoreboard == null) + { + return null; + } + return JsonSerializer.Deserialize(scoreboard.scoreboardString); + } } } diff --git a/EnoLandingPageBackend/Database/LandingPageDatabaseContext.cs b/EnoLandingPageBackend/Database/LandingPageDatabaseContext.cs index cec5a9d..6076d72 100644 --- a/EnoLandingPageBackend/Database/LandingPageDatabaseContext.cs +++ b/EnoLandingPageBackend/Database/LandingPageDatabaseContext.cs @@ -4,8 +4,10 @@ using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; + using EnoCore.Scoreboard; using EnoLandingPageCore; using EnoLandingPageCore.Database; + using EnoLandingPageCore.Models; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; @@ -22,6 +24,8 @@ public LandingPageDatabaseContext(DbContextOptions o public DbSet Teams { get; set; } + public DbSet Scoreboards { get; set; } + public DbSet Vulnboxes { get; set; } protected override void OnModelCreating(ModelBuilder modelBuilder) @@ -37,6 +41,9 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) .HasOne(lpt => lpt.Vulnbox) .WithOne(lptv => lptv.LandingPageTeam) .HasForeignKey(lptv => lptv.LandingPageTeamId); + + modelBuilder.Entity() + .HasKey(t => t.roundId); } } } diff --git a/EnoLandingPageBackend/Migrations/20210621220445_scoreboard.Designer.cs b/EnoLandingPageBackend/Migrations/20210621220445_scoreboard.Designer.cs new file mode 100644 index 0000000..eeab9f1 --- /dev/null +++ b/EnoLandingPageBackend/Migrations/20210621220445_scoreboard.Designer.cs @@ -0,0 +1,122 @@ +// +using System; +using EnoLandingPageBackend.Database; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +namespace EnoLandingPageBackend.Migrations +{ + [DbContext(typeof(LandingPageDatabaseContext))] + [Migration("20210621220445_scoreboard")] + partial class scoreboard + { + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "5.0.0"); + + modelBuilder.Entity("EnoLandingPageCore.Database.LandingPageTeam", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("Confirmed") + .HasColumnType("INTEGER"); + + b.Property("CountryCode") + .HasColumnType("TEXT"); + + b.Property("CtftimeId") + .HasColumnType("INTEGER"); + + b.Property("LogoUrl") + .HasColumnType("TEXT"); + + b.Property("Name") + .IsRequired() + .HasColumnType("TEXT"); + + b.Property("UniversityAffiliation") + .HasColumnType("TEXT"); + + b.Property("VulnboxId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("Confirmed"); + + b.HasIndex("CtftimeId") + .IsUnique(); + + b.ToTable("Teams"); + }); + + modelBuilder.Entity("EnoLandingPageCore.Database.LandingPageTeamVulnbox", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("ExternalAddress") + .HasColumnType("TEXT"); + + b.Property("HetznerServerId") + .HasColumnType("INTEGER"); + + b.Property("LandingPageTeamId") + .HasColumnType("INTEGER"); + + b.Property("RootPassword") + .HasColumnType("TEXT"); + + b.Property("VulnboxStatus") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("LandingPageTeamId") + .IsUnique(); + + b.ToTable("Vulnboxes"); + }); + + modelBuilder.Entity("EnoLandingPageCore.Models.DatabaseScoreboard", b => + { + b.Property("roundId") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("scoreboardString") + .IsRequired() + .HasColumnType("TEXT"); + + b.HasKey("roundId"); + + b.ToTable("Scoreboards"); + }); + + modelBuilder.Entity("EnoLandingPageCore.Database.LandingPageTeamVulnbox", b => + { + b.HasOne("EnoLandingPageCore.Database.LandingPageTeam", "LandingPageTeam") + .WithOne("Vulnbox") + .HasForeignKey("EnoLandingPageCore.Database.LandingPageTeamVulnbox", "LandingPageTeamId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("LandingPageTeam"); + }); + + modelBuilder.Entity("EnoLandingPageCore.Database.LandingPageTeam", b => + { + b.Navigation("Vulnbox") + .IsRequired(); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/EnoLandingPageBackend/Migrations/20210621220445_scoreboard.cs b/EnoLandingPageBackend/Migrations/20210621220445_scoreboard.cs new file mode 100644 index 0000000..a88e008 --- /dev/null +++ b/EnoLandingPageBackend/Migrations/20210621220445_scoreboard.cs @@ -0,0 +1,29 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +namespace EnoLandingPageBackend.Migrations +{ + public partial class scoreboard : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.CreateTable( + name: "Scoreboards", + columns: table => new + { + roundId = table.Column(type: "INTEGER", nullable: false) + .Annotation("Sqlite:Autoincrement", true), + scoreboardString = table.Column(type: "TEXT", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Scoreboards", x => x.roundId); + }); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "Scoreboards"); + } + } +} diff --git a/EnoLandingPageBackend/Migrations/LandingPageDatabaseContextModelSnapshot.cs b/EnoLandingPageBackend/Migrations/LandingPageDatabaseContextModelSnapshot.cs index b9d3607..3a93770 100644 --- a/EnoLandingPageBackend/Migrations/LandingPageDatabaseContextModelSnapshot.cs +++ b/EnoLandingPageBackend/Migrations/LandingPageDatabaseContextModelSnapshot.cs @@ -1,105 +1,120 @@ -// -using System; -using EnoLandingPageBackend.Database; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; - -namespace EnoLandingPageBackend.Migrations -{ - [DbContext(typeof(LandingPageDatabaseContext))] - partial class LandingPageDatabaseContextModelSnapshot : ModelSnapshot - { - protected override void BuildModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .HasAnnotation("ProductVersion", "5.0.0"); - - modelBuilder.Entity("EnoLandingPageCore.Database.LandingPageTeam", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property("Confirmed") - .HasColumnType("INTEGER"); - - b.Property("CountryCode") - .HasColumnType("TEXT"); - - b.Property("CtftimeId") - .HasColumnType("INTEGER"); - - b.Property("LogoUrl") - .HasColumnType("TEXT"); - - b.Property("Name") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("UniversityAffiliation") - .HasColumnType("TEXT"); - - b.Property("VulnboxId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("Confirmed"); - - b.HasIndex("CtftimeId") - .IsUnique(); - - b.ToTable("Teams"); - }); - - modelBuilder.Entity("EnoLandingPageCore.Database.LandingPageTeamVulnbox", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property("ExternalAddress") - .HasColumnType("TEXT"); - - b.Property("HetznerServerId") - .HasColumnType("INTEGER"); - - b.Property("LandingPageTeamId") - .HasColumnType("INTEGER"); - - b.Property("RootPassword") - .HasColumnType("TEXT"); - - b.Property("VulnboxStatus") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("LandingPageTeamId") - .IsUnique(); - - b.ToTable("Vulnboxes"); - }); - - modelBuilder.Entity("EnoLandingPageCore.Database.LandingPageTeamVulnbox", b => - { - b.HasOne("EnoLandingPageCore.Database.LandingPageTeam", "LandingPageTeam") - .WithOne("Vulnbox") - .HasForeignKey("EnoLandingPageCore.Database.LandingPageTeamVulnbox", "LandingPageTeamId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("LandingPageTeam"); - }); - - modelBuilder.Entity("EnoLandingPageCore.Database.LandingPageTeam", b => - { - b.Navigation("Vulnbox") - .IsRequired(); - }); -#pragma warning restore 612, 618 - } - } -} +// +using System; +using EnoLandingPageBackend.Database; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +namespace EnoLandingPageBackend.Migrations +{ + [DbContext(typeof(LandingPageDatabaseContext))] + partial class LandingPageDatabaseContextModelSnapshot : ModelSnapshot + { + protected override void BuildModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "5.0.0"); + + modelBuilder.Entity("EnoLandingPageCore.Database.LandingPageTeam", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("Confirmed") + .HasColumnType("INTEGER"); + + b.Property("CountryCode") + .HasColumnType("TEXT"); + + b.Property("CtftimeId") + .HasColumnType("INTEGER"); + + b.Property("LogoUrl") + .HasColumnType("TEXT"); + + b.Property("Name") + .IsRequired() + .HasColumnType("TEXT"); + + b.Property("UniversityAffiliation") + .HasColumnType("TEXT"); + + b.Property("VulnboxId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("Confirmed"); + + b.HasIndex("CtftimeId") + .IsUnique(); + + b.ToTable("Teams"); + }); + + modelBuilder.Entity("EnoLandingPageCore.Database.LandingPageTeamVulnbox", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("ExternalAddress") + .HasColumnType("TEXT"); + + b.Property("HetznerServerId") + .HasColumnType("INTEGER"); + + b.Property("LandingPageTeamId") + .HasColumnType("INTEGER"); + + b.Property("RootPassword") + .HasColumnType("TEXT"); + + b.Property("VulnboxStatus") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("LandingPageTeamId") + .IsUnique(); + + b.ToTable("Vulnboxes"); + }); + + modelBuilder.Entity("EnoLandingPageCore.Models.DatabaseScoreboard", b => + { + b.Property("roundId") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("scoreboardString") + .IsRequired() + .HasColumnType("TEXT"); + + b.HasKey("roundId"); + + b.ToTable("Scoreboards"); + }); + + modelBuilder.Entity("EnoLandingPageCore.Database.LandingPageTeamVulnbox", b => + { + b.HasOne("EnoLandingPageCore.Database.LandingPageTeam", "LandingPageTeam") + .WithOne("Vulnbox") + .HasForeignKey("EnoLandingPageCore.Database.LandingPageTeamVulnbox", "LandingPageTeamId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("LandingPageTeam"); + }); + + modelBuilder.Entity("EnoLandingPageCore.Database.LandingPageTeam", b => + { + b.Navigation("Vulnbox") + .IsRequired(); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/EnoLandingPageBackend/Models/DatabaseScoreboard.cs b/EnoLandingPageBackend/Models/DatabaseScoreboard.cs new file mode 100644 index 0000000..6baec88 --- /dev/null +++ b/EnoLandingPageBackend/Models/DatabaseScoreboard.cs @@ -0,0 +1,27 @@ +namespace EnoLandingPageCore.Models +{ + /// + /// A Class representing a scoreboard in the database. + /// + public class DatabaseScoreboard + { + /// + /// Create a new DatabaseScoreboard + /// + public DatabaseScoreboard(long roundId, string scoreboardString) + { + this.roundId = roundId; + this.scoreboardString = scoreboardString; + } + /// + /// The roundId of the Scoreboard. + /// + public long roundId { get; set; } + + /// + /// The String representation of this scoreboard. + /// + public string scoreboardString { get; set; } + + } +} diff --git a/EnoLandingPageBackend/Startup.cs b/EnoLandingPageBackend/Startup.cs index d094632..10cd21b 100644 --- a/EnoLandingPageBackend/Startup.cs +++ b/EnoLandingPageBackend/Startup.cs @@ -34,6 +34,7 @@ namespace EnoLandingPageBackend using Microsoft.OpenApi.Models; using Microsoft.AspNetCore.SpaServices.AngularCli; using System.Text.Json.Serialization; + using EnoLandingPageBackend.Cache; public class Startup { @@ -135,7 +136,7 @@ public void ConfigureServices(IServiceCollection services) { options.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter()); options.JsonSerializerOptions.IgnoreNullValues = true; - });; + }); services.AddDbContextPool(options => options.UseSqlite(LandingPageDatabaseContext.CONNECTIONSTRING)); services.AddScoped(); // Register Swagger services @@ -151,6 +152,7 @@ public void ConfigureServices(IServiceCollection services) // c.SchemaFilter(); }); services.AddSingleton(); + services.AddSingleton(); services.AddSpaStaticFiles(configuration => { From 3902f8411483bfbd1bac1304f04e99dacc9d66d6 Mon Sep 17 00:00:00 2001 From: DanielHabenicht Date: Mon, 21 Jun 2021 23:09:51 +0000 Subject: [PATCH 057/118] add auto forward in frontend Co-authored-by: Adrian Gronau --- .gitignore | 3 +- .gitpod.yml | 4 + .../backend-api/src/lib/model/scoreboard.ts | 1 + .../page-scoreboard.component.html | 1 + .../page-scoreboard.component.scss | 7 + .../page-scoreboard.component.ts | 22 +++- mock/generate_scoreboard.py | 123 ++++++++++++++++++ 7 files changed, 153 insertions(+), 8 deletions(-) create mode 100644 mock/generate_scoreboard.py diff --git a/.gitignore b/.gitignore index fc528f7..ec44649 100644 --- a/.gitignore +++ b/.gitignore @@ -356,4 +356,5 @@ MigrationBackup/ /data /scoreboard /sessions -.env \ No newline at end of file +.env +mock/*.json \ No newline at end of file diff --git a/.gitpod.yml b/.gitpod.yml index 9288c87..d96b4ec 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -4,6 +4,10 @@ image: # List the start up tasks. Learn more https://www.gitpod.io/docs/config-start-tasks/ tasks: + - name: Setup + before: | + dotnet tool install --global dotnet-ef + export PATH="$PATH:$HOME/.dotnet/tools/" - name: Frontend env: NG_CLI_ANALYTICS: ci diff --git a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboard.ts b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboard.ts index 5bc099f..8e010d1 100644 --- a/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboard.ts +++ b/EnoLandingPageBackend/ClientApp/projects/backend-api/src/lib/model/scoreboard.ts @@ -15,6 +15,7 @@ import { ScoreboardTeam } from './scoreboardTeam'; export interface Scoreboard { currentRound: number; + roundLength?: number; startTimestamp?: string | null; endTimestamp?: string | null; dnsSuffix?: string | null; diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.html b/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.html index f22b346..0edc4c8 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.html +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.html @@ -50,6 +50,7 @@

Round {{ round }}

[isoCountryCode]="row.team.countryCode" > +
{{ row.team.totalScore.toFixed(0) }} Punkte
diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.scss b/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.scss index 1ba77c9..5b7edf7 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.scss +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.scss @@ -38,6 +38,13 @@ .texts { padding: 2px 8px; } + + .score { + flex: 1 0; + align-self: center; + text-align: right; + padding-right: 8px; + } } } diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.ts b/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.ts index 6d38f1f..ecd9514 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.ts +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.ts @@ -29,6 +29,7 @@ import { }) export class PageScoreboardComponent implements OnInit { public round: number = 0; + public roundLength: number = 60; public isCurrentRound: boolean = false; public get displayedColumns(): string[] { return ['teamId', ...this.columns]; @@ -73,9 +74,11 @@ export class PageScoreboardComponent implements OnInit { } this._httpClient - .get('/assets/scoreboard' + suffix + '.json') + .get('/api/scoreboardinfo/scoreboard' + suffix + '.json') .subscribe((scoreboard) => { this.round = scoreboard.currentRound!; + // TODO: debug!!! + this.roundLength = 15; //scoreboard.roundLength ?? 60; this.services = scoreboard.services?.sort((a, b) => a.serviceId! - b.serviceId!) || []; @@ -85,15 +88,16 @@ export class PageScoreboardComponent implements OnInit { let currentTime = new Date(); let startTime = new Date(scoreboard.startTimestamp!); let endTime = new Date(scoreboard.endTimestamp!); - /** @ts-ignore */ - let roundLength = endTime - startTime; - // TODO: check if this is working - this.isCurrentRound = - roundLength + (endTime.getTime() - currentTime.getTime()) / 1000 >= 0; + const timeLeft = + (endTime.getTime() + + this.roundLength * 1000 - + currentTime.getTime()) / + 1000; + this.isCurrentRound = timeLeft >= 0; this.countDownConfig = { ...this.countDownConfig, - leftTime: (endTime.getTime() - currentTime.getTime()) / 1000, + leftTime: timeLeft, }; this.dataSource.data = @@ -113,6 +117,10 @@ export class PageScoreboardComponent implements OnInit { return accumulator; }, [] as string[]) || []; this.ref.markForCheck(); + + if (this.isCurrentRound) { + setTimeout(() => this.gotoCurrentRound(), (1.5 + timeLeft) * 1000); + } }); } diff --git a/mock/generate_scoreboard.py b/mock/generate_scoreboard.py new file mode 100644 index 0000000..ef540b9 --- /dev/null +++ b/mock/generate_scoreboard.py @@ -0,0 +1,123 @@ +# -*- coding: utf-8 -*- +import json +import random +from datetime import date, datetime +import time +import requests +import json +import glob + + +SERVICE_COUNT = 11 +TEAM_COUNT = 100 +ROUND_LENGTH_SECONDS = 15 +currentRound = len(glob.glob("./*")) - 1 + +services = [] +for i in range(1, 1 + SERVICE_COUNT): + services.append({ + "serviceId": i, + "serviceName": f"service{i}", + "flagVariants": 1, + "firstBloods": [] + }) + +teams = [] +for i in range(1, 1 + TEAM_COUNT): + teams.append({ + "teamName": f"Team {i}", + "teamId": i, + "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", + "countryCode": "US", + "totalScore": 0, + "attackScore": 0, + "defenseScore": 0, + "serviceLevelAgreementScore": 0, + "serviceDetails": [ + { + "serviceId": s["serviceId"], + "attackScore": 0, + "defenseScore": 0, + "serviceLevelAgreementScore": 0, + "serviceStatus": "OK", + "message": None + } + for s in services + ] + }) + +scoreboard = { + "currentRound": currentRound, + "startTimestamp": datetime.now().isoformat(), + "endTimestamp": datetime.now().isoformat(), + "roundLength": ROUND_LENGTH_SECONDS, + "dnsSuffix": "", + "services": services, + "teams": teams +} + + +def generate(scoreboard, currentRound): + for t in range(0, TEAM_COUNT): + attack_sum = 0 + defense_sum = 0 + sla_sum = 0 + + for s in range(0, SERVICE_COUNT): + attack = random.randint(0, 5) + defense = random.randint(0, 5) + sla = random.randint(0, 5) + + scoreboard["teams"][t]["serviceDetails"][s] = { + "serviceId": scoreboard["teams"][t]["serviceDetails"][s]["serviceId"], + "attackScore": scoreboard["teams"][t]["serviceDetails"][s]["attackScore"] + attack, + "defenseScore": scoreboard["teams"][t]["serviceDetails"][s]["defenseScore"] + defense, + "serviceLevelAgreementScore": scoreboard["teams"][t]["serviceDetails"][s]["serviceLevelAgreementScore"] + sla, + "serviceStatus": "OK", # todo: make random ? + "message": None + } + + attack_sum += attack + defense_sum += defense + sla_sum += sla + + scoreboard["teams"][t]["attackScore"] = scoreboard["teams"][t]["attackScore"] + attack_sum + scoreboard["teams"][t]["defenseScore"] += defense_sum + scoreboard["teams"][t]["serviceLevelAgreementScore"] += sla_sum + scoreboard["teams"][t]["totalScore"] += attack_sum + \ + defense_sum + sla_sum + + return scoreboard + + +def save(scoreboard, currentRound): + # with open('EnoLandingPageBackend/ClientApp/src/assets/scoreboard.json', 'w') as f: + with open('scoreboard.json', 'w') as f: + json.dump(scoreboard, f) + # with open(f"EnoLandingPageBackend/ClientApp/src/assets/scoreboard{currentRound}.json", 'w') as f: + with open(f"scoreboard{currentRound}.json", 'w') as f: + json.dump(scoreboard, f) + + print(f"Created scoreboard for round {currentRound}") + + +startTimestamp = datetime.now() +endTimestamp = datetime.now() + +save(scoreboard, currentRound) + +while True: + scoreboard = generate(scoreboard, currentRound) + + time.sleep(ROUND_LENGTH_SECONDS) + + currentRound += 1 + startTimestamp = endTimestamp + endTimestamp = datetime.now().astimezone() + scoreboard["currentRound"] = currentRound + scoreboard["startTimestamp"] = startTimestamp.isoformat() + scoreboard["endTimestamp"] = endTimestamp.isoformat() + + save(scoreboard, currentRound) + requests.post("http://localhost:5000/api/scoreboardinfo/scoreboard?adminSecret=secret", + json=scoreboard) From acdf534c77aff6cff1ce0ad74cebaee4749e64ab Mon Sep 17 00:00:00 2001 From: DanielHabenicht Date: Tue, 22 Jun 2021 20:26:39 +0000 Subject: [PATCH 058/118] fix round length --- .../page-scoreboard/page-scoreboard.component.ts | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.ts b/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.ts index ecd9514..8647706 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.ts +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.ts @@ -76,9 +76,12 @@ export class PageScoreboardComponent implements OnInit { this._httpClient .get('/api/scoreboardinfo/scoreboard' + suffix + '.json') .subscribe((scoreboard) => { - this.round = scoreboard.currentRound!; - // TODO: debug!!! - this.roundLength = 15; //scoreboard.roundLength ?? 60; + let startTime = new Date(scoreboard.startTimestamp!); + let endTime = new Date(scoreboard.endTimestamp!); + + this.round = Math.floor( + (endTime.getTime() - startTime.getTime()) / 1000 + ); this.services = scoreboard.services?.sort((a, b) => a.serviceId! - b.serviceId!) || []; @@ -86,8 +89,6 @@ export class PageScoreboardComponent implements OnInit { console.log(this.services); let currentTime = new Date(); - let startTime = new Date(scoreboard.startTimestamp!); - let endTime = new Date(scoreboard.endTimestamp!); const timeLeft = (endTime.getTime() + this.roundLength * 1000 - From a48b59e51494df26b93064d2e9baf3eee91f2482 Mon Sep 17 00:00:00 2001 From: DanielHabenicht Date: Tue, 22 Jun 2021 20:46:22 +0000 Subject: [PATCH 059/118] fix round length --- .../src/app/pages/page-scoreboard/page-scoreboard.component.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.ts b/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.ts index 8647706..5b6da9b 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.ts +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.ts @@ -79,7 +79,7 @@ export class PageScoreboardComponent implements OnInit { let startTime = new Date(scoreboard.startTimestamp!); let endTime = new Date(scoreboard.endTimestamp!); - this.round = Math.floor( + this.roundLength = Math.floor( (endTime.getTime() - startTime.getTime()) / 1000 ); this.services = From faf298513f9040dcc7b2cd32b172c8e64646d4a7 Mon Sep 17 00:00:00 2001 From: DanielHabenicht Date: Tue, 22 Jun 2021 20:50:13 +0000 Subject: [PATCH 060/118] fix current round reload --- .../src/app/pages/page-scoreboard/page-scoreboard.component.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.ts b/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.ts index 5b6da9b..42fdc3a 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.ts +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.ts @@ -78,7 +78,7 @@ export class PageScoreboardComponent implements OnInit { .subscribe((scoreboard) => { let startTime = new Date(scoreboard.startTimestamp!); let endTime = new Date(scoreboard.endTimestamp!); - + this.round = scoreboard.currentRound; this.roundLength = Math.floor( (endTime.getTime() - startTime.getTime()) / 1000 ); From 376437f184f69fcd4de65a1d5fe4492bf79204af Mon Sep 17 00:00:00 2001 From: DanielHabenicht Date: Tue, 22 Jun 2021 21:50:01 +0000 Subject: [PATCH 061/118] add title --- EnoLandingPageBackend/ClientApp/src/app/app.component.ts | 8 +++++--- EnoLandingPageBackend/ClientApp/src/index.html | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/EnoLandingPageBackend/ClientApp/src/app/app.component.ts b/EnoLandingPageBackend/ClientApp/src/app/app.component.ts index 07393cc..239ebb0 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/app.component.ts +++ b/EnoLandingPageBackend/ClientApp/src/app/app.component.ts @@ -1,8 +1,9 @@ import { Component } from '@angular/core'; import { Store } from '@ngxs/store'; import { DataService } from 'projects/backend-api/src/lib'; -import { AppState, InitTheme } from './shared/states/App.state'; +import { AppState, AppStateModel, InitTheme } from './shared/states/App.state'; import { filter } from 'rxjs/operators'; +import { Title } from '@angular/platform-browser'; @Component({ selector: 'app-root', @@ -11,8 +12,9 @@ import { filter } from 'rxjs/operators'; }) export class AppComponent { public data: any; - constructor(private store: Store) { - this.store.select(AppState).subscribe((app) => { + constructor(private store: Store, private title: Title) { + this.store.select(AppState).subscribe((app: AppStateModel) => { + this.title.setTitle(app.ctfInfo?.title!); console.log(app); }); } diff --git a/EnoLandingPageBackend/ClientApp/src/index.html b/EnoLandingPageBackend/ClientApp/src/index.html index 7ef4492..388f176 100644 --- a/EnoLandingPageBackend/ClientApp/src/index.html +++ b/EnoLandingPageBackend/ClientApp/src/index.html @@ -2,7 +2,7 @@ - ClientApp + CTF Portal From 36bd0a221789078048ae3f72bc1630cd1d32a99b Mon Sep 17 00:00:00 2001 From: DanielHabenicht Date: Tue, 22 Jun 2021 21:50:09 +0000 Subject: [PATCH 062/118] fix refresh timeframe --- .../src/app/pages/page-scoreboard/page-scoreboard.component.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.ts b/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.ts index 42fdc3a..e84dc1d 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.ts +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.ts @@ -93,7 +93,8 @@ export class PageScoreboardComponent implements OnInit { (endTime.getTime() + this.roundLength * 1000 - currentTime.getTime()) / - 1000; + 1000 + + 1; this.isCurrentRound = timeLeft >= 0; this.countDownConfig = { From 15524ff33547611a6b18dee5af29dd4feb22df03 Mon Sep 17 00:00:00 2001 From: DanielHabenicht Date: Tue, 22 Jun 2021 21:50:15 +0000 Subject: [PATCH 063/118] add mock to gitpod --- .gitpod.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.gitpod.yml b/.gitpod.yml index d96b4ec..0c16f99 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -8,6 +8,10 @@ tasks: before: | dotnet tool install --global dotnet-ef export PATH="$PATH:$HOME/.dotnet/tools/" + - name: Run Mock + before: | + cd mock + python3 generate_scoreboard.py - name: Frontend env: NG_CLI_ANALYTICS: ci From 2d5840d9b5ddb7ade4cfd1bb48b5d6f0315ea386 Mon Sep 17 00:00:00 2001 From: DanielHabenicht Date: Sat, 26 Jun 2021 12:45:35 +0000 Subject: [PATCH 064/118] fix standard build --- EnoLandingPageBackend/EnoLandingPageBackend.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EnoLandingPageBackend/EnoLandingPageBackend.csproj b/EnoLandingPageBackend/EnoLandingPageBackend.csproj index 5a91b06..ef422e7 100644 --- a/EnoLandingPageBackend/EnoLandingPageBackend.csproj +++ b/EnoLandingPageBackend/EnoLandingPageBackend.csproj @@ -62,7 +62,7 @@ - + From 63c78614d0274a05aef6262f40a72c7a085342d8 Mon Sep 17 00:00:00 2001 From: DanielHabenicht Date: Sat, 26 Jun 2021 12:45:45 +0000 Subject: [PATCH 065/118] fix gitpod ports --- .gitpod.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitpod.yml b/.gitpod.yml index 0c16f99..773162e 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -35,6 +35,8 @@ tasks: ports: - port: 5000 onOpen: notify + - port: 5001 + onOpen: ignore - port: 4200 onOpen: ignore From 08ef9601e51dda1176cf433fef18f6f5c997ef1f Mon Sep 17 00:00:00 2001 From: DanielHabenicht Date: Sat, 26 Jun 2021 12:45:51 +0000 Subject: [PATCH 066/118] fix import --- EnoLandingPageBackend/Controllers/ScoreboardInfoController.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/EnoLandingPageBackend/Controllers/ScoreboardInfoController.cs b/EnoLandingPageBackend/Controllers/ScoreboardInfoController.cs index b566cc6..a0b056a 100644 --- a/EnoLandingPageBackend/Controllers/ScoreboardInfoController.cs +++ b/EnoLandingPageBackend/Controllers/ScoreboardInfoController.cs @@ -12,7 +12,6 @@ using Microsoft.Extensions.Caching.Memory; using EnoLandingPageBackend.Cache; using EnoLandingPageBackend.Database; - using Newtonsoft.Json; using System.Threading; /// From c78755a974b62f0b7414fa22ee0e8520b2793314 Mon Sep 17 00:00:00 2001 From: Daniel Habenicht Date: Sat, 26 Jun 2021 17:34:10 +0200 Subject: [PATCH 067/118] better teams site --- .../page-teams/page-teams.component.html | 43 +++++++++++++------ 1 file changed, 31 insertions(+), 12 deletions(-) diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-teams/page-teams.component.html b/EnoLandingPageBackend/ClientApp/src/app/pages/page-teams/page-teams.component.html index b71d0cd..5dad223 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/pages/page-teams/page-teams.component.html +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/page-teams/page-teams.component.html @@ -1,14 +1,33 @@
-
-

Confirmed Teams

- - - - -

Registered Teams

- - - - -
+ + +
Confirmed Teams
+ + None yet :( + + + + {{ team.name }} + + + +
Registered Teams
+ + None yet :( + + + + +

{{ team.name }} + +

+ +
+
From 265ccb9e775a595dfa1b1b206105c18cb5dc7149 Mon Sep 17 00:00:00 2001 From: Daniel Habenicht Date: Sat, 26 Jun 2021 18:21:22 +0200 Subject: [PATCH 068/118] remove old scoreboards --- .../ClientApp/src/assets/scoreboard.json | 3076 ----------------- .../ClientApp/src/assets/scoreboard0.json | 3076 ----------------- .../ClientApp/src/assets/scoreboard1.json | 3076 ----------------- .../ClientApp/src/assets/scoreboard2.json | 3076 ----------------- .../ClientApp/src/assets/scoreboard3.json | 3076 ----------------- 5 files changed, 15380 deletions(-) delete mode 100644 EnoLandingPageBackend/ClientApp/src/assets/scoreboard.json delete mode 100644 EnoLandingPageBackend/ClientApp/src/assets/scoreboard0.json delete mode 100644 EnoLandingPageBackend/ClientApp/src/assets/scoreboard1.json delete mode 100644 EnoLandingPageBackend/ClientApp/src/assets/scoreboard2.json delete mode 100644 EnoLandingPageBackend/ClientApp/src/assets/scoreboard3.json diff --git a/EnoLandingPageBackend/ClientApp/src/assets/scoreboard.json b/EnoLandingPageBackend/ClientApp/src/assets/scoreboard.json deleted file mode 100644 index c83fe64..0000000 --- a/EnoLandingPageBackend/ClientApp/src/assets/scoreboard.json +++ /dev/null @@ -1,3076 +0,0 @@ -{ - "currentRound": 3, - "startTimestamp": "2021-06-15T12:45:16.443Z", - "endTimestamp": "2021-06-18T13:46:16.443Z", - "dnsSuffix": "", - "services": [ - { - "serviceId": 1, - "serviceName": "service1", - "flagVariants": 1, - "firstBloods": [] - }, - { - "serviceId": 2, - "serviceName": "service2", - "flagVariants": 2, - "firstBloods": [] - }, - { - "serviceId": 3, - "serviceName": "service3", - "flagVariants": 1, - "firstBloods": [] - }, - { - "serviceId": 4, - "serviceName": "service4", - "flagVariants": 1, - "firstBloods": [] - }, - { - "serviceId": 5, - "serviceName": "service5", - "flagVariants": 1, - "firstBloods": [] - }, - { - "serviceId": 6, - "serviceName": "service6", - "flagVariants": 1, - "firstBloods": [] - }, - { - "serviceId": 7, - "serviceName": "service7", - "flagVariants": 2, - "firstBloods": [] - }, - { - "serviceId": 8, - "serviceName": "service8", - "flagVariants": 2, - "firstBloods": [] - }, - { - "serviceId": 9, - "serviceName": "service9", - "flagVariants": 1, - "firstBloods": [] - }, - { - "serviceId": 10, - "serviceName": "service10", - "flagVariants": 2, - "firstBloods": [] - }, - { - "serviceId": 11, - "serviceName": "service11", - "flagVariants": 1, - "firstBloods": [] - } - ], - "teams": [ - { - "teamName": "Team 1", - "teamId": 1, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16864.112687894136, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16864.112687894136, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1901.7917867105998, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1903.5238375181686, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1865.4187197516542, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954617, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1908.719989940875, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1683.5533849569326, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1903.5238375181684, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0.8660254037844386, - "serviceStatus": "MUMBLE", - "message": "received on /errors: \u0022MESSAGE\ndestination:/errors/cxcfQOdhxh4jt2GPvY4KQ_dcFCg/x\ncontent-type:text/plain;charset=UTF-8\nsubscription:118\nmessage-id:8f2a56d8-0e0b-5de0-85f2-b1b00efe1813-6993\ncontent-length:33\n\nInvalid Token- No such User in DB\u0022" - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1900.059735903031, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 2", - "teamId": 2, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16737.672978941613, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16737.672978941613, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257373, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1897.4616596916776, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1798.7347636602549, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1860.2225673289472, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.1219137295218, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1667.0989022850285, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1900.059735903031, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0.8660254037844386, - "serviceStatus": "MUMBLE", - "message": "received on /errors: \u0022MESSAGE\ndestination:/errors/W6QklWm6oEbWNKR2cHYpTIy82zw/x\ncontent-type:text/plain;charset=UTF-8\nsubscription:475\nmessage-id:f2d4bcc9-5cbd-860f-e925-eb0c1a10f19a-6996\ncontent-length:33\n\nInvalid Token- No such User in DB\u0022" - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878933, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 3", - "teamId": 3, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 4", - "teamId": 4, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 5", - "teamId": 5, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 6", - "teamId": 6, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 7", - "teamId": 7, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 8", - "teamId": 8, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 9", - "teamId": 9, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 10", - "teamId": 10, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 11", - "teamId": 11, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 12", - "teamId": 12, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 13", - "teamId": 13, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 13", - "teamId": 13, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 14", - "teamId": 14, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 15", - "teamId": 15, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 16", - "teamId": 16, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 17", - "teamId": 17, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 18", - "teamId": 18, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 19", - "teamId": 19, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 20", - "teamId": 20, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 21", - "teamId": 21, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 22", - "teamId": 22, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 23", - "teamId": 23, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 24", - "teamId": 24, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 25", - "teamId": 25, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 26", - "teamId": 26, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 27", - "teamId": 27, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 45", - "teamId": 45, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 100", - "teamId": 100, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - } - ] -} diff --git a/EnoLandingPageBackend/ClientApp/src/assets/scoreboard0.json b/EnoLandingPageBackend/ClientApp/src/assets/scoreboard0.json deleted file mode 100644 index 30ee9bc..0000000 --- a/EnoLandingPageBackend/ClientApp/src/assets/scoreboard0.json +++ /dev/null @@ -1,3076 +0,0 @@ -{ - "currentRound": 0, - "startTimestamp": "2021-06-15T12:45:16.443Z", - "endTimestamp": "2021-06-15T12:46:16.443Z", - "dnsSuffix": "", - "services": [ - { - "serviceId": 1, - "serviceName": "service1", - "flagVariants": 1, - "firstBloods": [] - }, - { - "serviceId": 2, - "serviceName": "service2", - "flagVariants": 2, - "firstBloods": [] - }, - { - "serviceId": 3, - "serviceName": "service3", - "flagVariants": 1, - "firstBloods": [] - }, - { - "serviceId": 4, - "serviceName": "service4", - "flagVariants": 1, - "firstBloods": [] - }, - { - "serviceId": 5, - "serviceName": "service5", - "flagVariants": 1, - "firstBloods": [] - }, - { - "serviceId": 6, - "serviceName": "service6", - "flagVariants": 1, - "firstBloods": [] - }, - { - "serviceId": 7, - "serviceName": "service7", - "flagVariants": 2, - "firstBloods": [] - }, - { - "serviceId": 8, - "serviceName": "service8", - "flagVariants": 2, - "firstBloods": [] - }, - { - "serviceId": 9, - "serviceName": "service9", - "flagVariants": 1, - "firstBloods": [] - }, - { - "serviceId": 10, - "serviceName": "service10", - "flagVariants": 2, - "firstBloods": [] - }, - { - "serviceId": 11, - "serviceName": "service11", - "flagVariants": 1, - "firstBloods": [] - } - ], - "teams": [ - { - "teamName": "Team 1", - "teamId": 1, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16864.112687894136, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16864.112687894136, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1901.7917867105998, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1903.5238375181686, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1865.4187197516542, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954617, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1908.719989940875, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1683.5533849569326, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1903.5238375181684, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0.8660254037844386, - "serviceStatus": "MUMBLE", - "message": "received on /errors: \u0022MESSAGE\ndestination:/errors/cxcfQOdhxh4jt2GPvY4KQ_dcFCg/x\ncontent-type:text/plain;charset=UTF-8\nsubscription:118\nmessage-id:8f2a56d8-0e0b-5de0-85f2-b1b00efe1813-6993\ncontent-length:33\n\nInvalid Token- No such User in DB\u0022" - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1900.059735903031, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 2", - "teamId": 2, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16737.672978941613, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16737.672978941613, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257373, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1897.4616596916776, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1798.7347636602549, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1860.2225673289472, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.1219137295218, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1667.0989022850285, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1900.059735903031, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0.8660254037844386, - "serviceStatus": "MUMBLE", - "message": "received on /errors: \u0022MESSAGE\ndestination:/errors/W6QklWm6oEbWNKR2cHYpTIy82zw/x\ncontent-type:text/plain;charset=UTF-8\nsubscription:475\nmessage-id:f2d4bcc9-5cbd-860f-e925-eb0c1a10f19a-6996\ncontent-length:33\n\nInvalid Token- No such User in DB\u0022" - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878933, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 3", - "teamId": 3, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 4", - "teamId": 4, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 5", - "teamId": 5, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 6", - "teamId": 6, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 7", - "teamId": 7, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 8", - "teamId": 8, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 9", - "teamId": 9, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 10", - "teamId": 10, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 11", - "teamId": 11, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 12", - "teamId": 12, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 13", - "teamId": 13, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 13", - "teamId": 13, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 14", - "teamId": 14, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 15", - "teamId": 15, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 16", - "teamId": 16, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 17", - "teamId": 17, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 18", - "teamId": 18, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 19", - "teamId": 19, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 20", - "teamId": 20, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 21", - "teamId": 21, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 22", - "teamId": 22, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 23", - "teamId": 23, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 24", - "teamId": 24, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 25", - "teamId": 25, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 26", - "teamId": 26, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 27", - "teamId": 27, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 45", - "teamId": 45, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 100", - "teamId": 100, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - } - ] -} diff --git a/EnoLandingPageBackend/ClientApp/src/assets/scoreboard1.json b/EnoLandingPageBackend/ClientApp/src/assets/scoreboard1.json deleted file mode 100644 index 8a2f70a..0000000 --- a/EnoLandingPageBackend/ClientApp/src/assets/scoreboard1.json +++ /dev/null @@ -1,3076 +0,0 @@ -{ - "currentRound": 1, - "startTimestamp": "2021-06-15T12:45:16.443Z", - "endTimestamp": "2021-06-15T12:46:16.443Z", - "dnsSuffix": "", - "services": [ - { - "serviceId": 1, - "serviceName": "service1", - "flagVariants": 1, - "firstBloods": [] - }, - { - "serviceId": 2, - "serviceName": "service2", - "flagVariants": 2, - "firstBloods": [] - }, - { - "serviceId": 3, - "serviceName": "service3", - "flagVariants": 1, - "firstBloods": [] - }, - { - "serviceId": 4, - "serviceName": "service4", - "flagVariants": 1, - "firstBloods": [] - }, - { - "serviceId": 5, - "serviceName": "service5", - "flagVariants": 1, - "firstBloods": [] - }, - { - "serviceId": 6, - "serviceName": "service6", - "flagVariants": 1, - "firstBloods": [] - }, - { - "serviceId": 7, - "serviceName": "service7", - "flagVariants": 2, - "firstBloods": [] - }, - { - "serviceId": 8, - "serviceName": "service8", - "flagVariants": 2, - "firstBloods": [] - }, - { - "serviceId": 9, - "serviceName": "service9", - "flagVariants": 1, - "firstBloods": [] - }, - { - "serviceId": 10, - "serviceName": "service10", - "flagVariants": 2, - "firstBloods": [] - }, - { - "serviceId": 11, - "serviceName": "service11", - "flagVariants": 1, - "firstBloods": [] - } - ], - "teams": [ - { - "teamName": "Team 1", - "teamId": 1, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16864.112687894136, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16864.112687894136, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1901.7917867105998, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1903.5238375181686, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1865.4187197516542, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954617, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1908.719989940875, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1683.5533849569326, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1903.5238375181684, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0.8660254037844386, - "serviceStatus": "MUMBLE", - "message": "received on /errors: \u0022MESSAGE\ndestination:/errors/cxcfQOdhxh4jt2GPvY4KQ_dcFCg/x\ncontent-type:text/plain;charset=UTF-8\nsubscription:118\nmessage-id:8f2a56d8-0e0b-5de0-85f2-b1b00efe1813-6993\ncontent-length:33\n\nInvalid Token- No such User in DB\u0022" - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1900.059735903031, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 2", - "teamId": 2, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16737.672978941613, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16737.672978941613, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257373, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1897.4616596916776, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1798.7347636602549, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1860.2225673289472, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.1219137295218, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1667.0989022850285, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1900.059735903031, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0.8660254037844386, - "serviceStatus": "MUMBLE", - "message": "received on /errors: \u0022MESSAGE\ndestination:/errors/W6QklWm6oEbWNKR2cHYpTIy82zw/x\ncontent-type:text/plain;charset=UTF-8\nsubscription:475\nmessage-id:f2d4bcc9-5cbd-860f-e925-eb0c1a10f19a-6996\ncontent-length:33\n\nInvalid Token- No such User in DB\u0022" - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878933, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 3", - "teamId": 3, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 4", - "teamId": 4, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 5", - "teamId": 5, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 6", - "teamId": 6, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 7", - "teamId": 7, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 8", - "teamId": 8, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 9", - "teamId": 9, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 10", - "teamId": 10, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 11", - "teamId": 11, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 12", - "teamId": 12, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 13", - "teamId": 13, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 13", - "teamId": 13, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 14", - "teamId": 14, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 15", - "teamId": 15, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 16", - "teamId": 16, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 17", - "teamId": 17, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 18", - "teamId": 18, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 19", - "teamId": 19, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 20", - "teamId": 20, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 21", - "teamId": 21, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 22", - "teamId": 22, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 23", - "teamId": 23, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 24", - "teamId": 24, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 25", - "teamId": 25, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 26", - "teamId": 26, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 27", - "teamId": 27, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 45", - "teamId": 45, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 100", - "teamId": 100, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - } - ] -} diff --git a/EnoLandingPageBackend/ClientApp/src/assets/scoreboard2.json b/EnoLandingPageBackend/ClientApp/src/assets/scoreboard2.json deleted file mode 100644 index bbd8f34..0000000 --- a/EnoLandingPageBackend/ClientApp/src/assets/scoreboard2.json +++ /dev/null @@ -1,3076 +0,0 @@ -{ - "currentRound": 2, - "startTimestamp": "2021-06-15T12:45:16.443Z", - "endTimestamp": "2021-06-15T12:46:16.443Z", - "dnsSuffix": "", - "services": [ - { - "serviceId": 1, - "serviceName": "service1", - "flagVariants": 1, - "firstBloods": [] - }, - { - "serviceId": 2, - "serviceName": "service2", - "flagVariants": 2, - "firstBloods": [] - }, - { - "serviceId": 3, - "serviceName": "service3", - "flagVariants": 1, - "firstBloods": [] - }, - { - "serviceId": 4, - "serviceName": "service4", - "flagVariants": 1, - "firstBloods": [] - }, - { - "serviceId": 5, - "serviceName": "service5", - "flagVariants": 1, - "firstBloods": [] - }, - { - "serviceId": 6, - "serviceName": "service6", - "flagVariants": 1, - "firstBloods": [] - }, - { - "serviceId": 7, - "serviceName": "service7", - "flagVariants": 2, - "firstBloods": [] - }, - { - "serviceId": 8, - "serviceName": "service8", - "flagVariants": 2, - "firstBloods": [] - }, - { - "serviceId": 9, - "serviceName": "service9", - "flagVariants": 1, - "firstBloods": [] - }, - { - "serviceId": 10, - "serviceName": "service10", - "flagVariants": 2, - "firstBloods": [] - }, - { - "serviceId": 11, - "serviceName": "service11", - "flagVariants": 1, - "firstBloods": [] - } - ], - "teams": [ - { - "teamName": "Team 1", - "teamId": 1, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16864.112687894136, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16864.112687894136, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1901.7917867105998, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1903.5238375181686, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1865.4187197516542, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954617, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1908.719989940875, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1683.5533849569326, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1903.5238375181684, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0.8660254037844386, - "serviceStatus": "MUMBLE", - "message": "received on /errors: \u0022MESSAGE\ndestination:/errors/cxcfQOdhxh4jt2GPvY4KQ_dcFCg/x\ncontent-type:text/plain;charset=UTF-8\nsubscription:118\nmessage-id:8f2a56d8-0e0b-5de0-85f2-b1b00efe1813-6993\ncontent-length:33\n\nInvalid Token- No such User in DB\u0022" - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1900.059735903031, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 2", - "teamId": 2, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16737.672978941613, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16737.672978941613, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257373, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1897.4616596916776, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1798.7347636602549, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1860.2225673289472, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.1219137295218, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1667.0989022850285, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1900.059735903031, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0.8660254037844386, - "serviceStatus": "MUMBLE", - "message": "received on /errors: \u0022MESSAGE\ndestination:/errors/W6QklWm6oEbWNKR2cHYpTIy82zw/x\ncontent-type:text/plain;charset=UTF-8\nsubscription:475\nmessage-id:f2d4bcc9-5cbd-860f-e925-eb0c1a10f19a-6996\ncontent-length:33\n\nInvalid Token- No such User in DB\u0022" - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878933, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 3", - "teamId": 3, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 4", - "teamId": 4, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 5", - "teamId": 5, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 6", - "teamId": 6, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 7", - "teamId": 7, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 8", - "teamId": 8, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 9", - "teamId": 9, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 10", - "teamId": 10, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 11", - "teamId": 11, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 12", - "teamId": 12, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 13", - "teamId": 13, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 13", - "teamId": 13, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 14", - "teamId": 14, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 15", - "teamId": 15, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 16", - "teamId": 16, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 17", - "teamId": 17, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 18", - "teamId": 18, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 19", - "teamId": 19, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 20", - "teamId": 20, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 21", - "teamId": 21, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 22", - "teamId": 22, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 23", - "teamId": 23, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 24", - "teamId": 24, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 25", - "teamId": 25, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 26", - "teamId": 26, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 27", - "teamId": 27, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 45", - "teamId": 45, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 100", - "teamId": 100, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - } - ] -} diff --git a/EnoLandingPageBackend/ClientApp/src/assets/scoreboard3.json b/EnoLandingPageBackend/ClientApp/src/assets/scoreboard3.json deleted file mode 100644 index c83fe64..0000000 --- a/EnoLandingPageBackend/ClientApp/src/assets/scoreboard3.json +++ /dev/null @@ -1,3076 +0,0 @@ -{ - "currentRound": 3, - "startTimestamp": "2021-06-15T12:45:16.443Z", - "endTimestamp": "2021-06-18T13:46:16.443Z", - "dnsSuffix": "", - "services": [ - { - "serviceId": 1, - "serviceName": "service1", - "flagVariants": 1, - "firstBloods": [] - }, - { - "serviceId": 2, - "serviceName": "service2", - "flagVariants": 2, - "firstBloods": [] - }, - { - "serviceId": 3, - "serviceName": "service3", - "flagVariants": 1, - "firstBloods": [] - }, - { - "serviceId": 4, - "serviceName": "service4", - "flagVariants": 1, - "firstBloods": [] - }, - { - "serviceId": 5, - "serviceName": "service5", - "flagVariants": 1, - "firstBloods": [] - }, - { - "serviceId": 6, - "serviceName": "service6", - "flagVariants": 1, - "firstBloods": [] - }, - { - "serviceId": 7, - "serviceName": "service7", - "flagVariants": 2, - "firstBloods": [] - }, - { - "serviceId": 8, - "serviceName": "service8", - "flagVariants": 2, - "firstBloods": [] - }, - { - "serviceId": 9, - "serviceName": "service9", - "flagVariants": 1, - "firstBloods": [] - }, - { - "serviceId": 10, - "serviceName": "service10", - "flagVariants": 2, - "firstBloods": [] - }, - { - "serviceId": 11, - "serviceName": "service11", - "flagVariants": 1, - "firstBloods": [] - } - ], - "teams": [ - { - "teamName": "Team 1", - "teamId": 1, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16864.112687894136, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16864.112687894136, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1901.7917867105998, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1903.5238375181686, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1865.4187197516542, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954617, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1908.719989940875, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1683.5533849569326, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1903.5238375181684, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0.8660254037844386, - "serviceStatus": "MUMBLE", - "message": "received on /errors: \u0022MESSAGE\ndestination:/errors/cxcfQOdhxh4jt2GPvY4KQ_dcFCg/x\ncontent-type:text/plain;charset=UTF-8\nsubscription:118\nmessage-id:8f2a56d8-0e0b-5de0-85f2-b1b00efe1813-6993\ncontent-length:33\n\nInvalid Token- No such User in DB\u0022" - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1900.059735903031, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 2", - "teamId": 2, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16737.672978941613, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16737.672978941613, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257373, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1897.4616596916776, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1798.7347636602549, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1860.2225673289472, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.1219137295218, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1667.0989022850285, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1900.059735903031, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0.8660254037844386, - "serviceStatus": "MUMBLE", - "message": "received on /errors: \u0022MESSAGE\ndestination:/errors/W6QklWm6oEbWNKR2cHYpTIy82zw/x\ncontent-type:text/plain;charset=UTF-8\nsubscription:475\nmessage-id:f2d4bcc9-5cbd-860f-e925-eb0c1a10f19a-6996\ncontent-length:33\n\nInvalid Token- No such User in DB\u0022" - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878933, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 3", - "teamId": 3, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 4", - "teamId": 4, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 5", - "teamId": 5, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 6", - "teamId": 6, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 7", - "teamId": 7, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 8", - "teamId": 8, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 9", - "teamId": 9, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 10", - "teamId": 10, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 11", - "teamId": 11, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 12", - "teamId": 12, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 13", - "teamId": 13, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 13", - "teamId": 13, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 14", - "teamId": 14, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 15", - "teamId": 15, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 16", - "teamId": 16, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 17", - "teamId": 17, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 18", - "teamId": 18, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 19", - "teamId": 19, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 20", - "teamId": 20, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 21", - "teamId": 21, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 22", - "teamId": 22, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 23", - "teamId": 23, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 24", - "teamId": 24, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 25", - "teamId": 25, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 26", - "teamId": 26, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 27", - "teamId": 27, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 45", - "teamId": 45, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - }, - { - "teamName": "Team 100", - "teamId": 100, - "logoUrl": "https://ctftime.org//media/team/discord_icon_only.png", - "countryCode": "US", - "totalScore": 16515.9704755728, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 16515.9704755728, - "serviceDetails": [ - { - "serviceId": 1, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1915.6481931711503, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 2, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1905.2558883257375, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 3, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1896.5956342878937, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 4, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1498.223948547061, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 5, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1877.5430754046356, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 6, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1906.987939133306, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 7, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1722.5245281272287, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 8, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1894.8635834803245, - "serviceStatus": "OK", - "message": null - }, - { - "serviceId": 9, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "OFFLINE", - "message": null - }, - { - "serviceId": 10, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 0, - "serviceStatus": "INTERNAL_ERROR", - "message": null - }, - { - "serviceId": 11, - "attackScore": 0, - "defenseScore": 0, - "serviceLevelAgreementScore": 1898.3276850954621, - "serviceStatus": "OK", - "message": null - } - ] - } - ] -} From bae8fc775f81c77affff72c99eea6a583ca6d60d Mon Sep 17 00:00:00 2001 From: Daniel Habenicht Date: Sun, 27 Jun 2021 00:38:00 +0200 Subject: [PATCH 069/118] table performance update --- .../ClientApp/package-lock.json | 24 +++ EnoLandingPageBackend/ClientApp/package.json | 3 + .../app-navigation.component.scss | 1 + .../app-navigation.component.ts | 2 +- .../dialog-info/dialog-info.component.html | 8 +- .../dialog-info/dialog-info.component.ts | 2 + .../page-scoreboard.component.html | 177 +++++++++--------- .../page-scoreboard.component.scss | 160 +++++----------- .../page-scoreboard.component.ts | 91 ++++++--- .../page-scoreboard/page-scoreboard.module.ts | 28 +++ .../page-teams/page-teams.component.html | 35 ++-- .../team-logo/team-logo.component.html | 1 - .../team-logo/team-logo.component.scss | 4 - .../team-logo/team-logo.component.spec.ts | 25 --- .../team-logo/team-logo.component.ts | 14 -- .../components/team/team.component.html | 8 - .../components/team/team.component.scss | 0 .../components/team/team.component.spec.ts | 24 --- .../shared/components/team/team.component.ts | 15 -- .../ClientApp/src/app/shared/shared.module.ts | 6 +- .../ClientApp/src/styles.scss | 31 ++- 21 files changed, 311 insertions(+), 348 deletions(-) delete mode 100644 EnoLandingPageBackend/ClientApp/src/app/shared/components/team-logo/team-logo.component.html delete mode 100644 EnoLandingPageBackend/ClientApp/src/app/shared/components/team-logo/team-logo.component.scss delete mode 100644 EnoLandingPageBackend/ClientApp/src/app/shared/components/team-logo/team-logo.component.spec.ts delete mode 100644 EnoLandingPageBackend/ClientApp/src/app/shared/components/team-logo/team-logo.component.ts delete mode 100644 EnoLandingPageBackend/ClientApp/src/app/shared/components/team/team.component.html delete mode 100644 EnoLandingPageBackend/ClientApp/src/app/shared/components/team/team.component.scss delete mode 100644 EnoLandingPageBackend/ClientApp/src/app/shared/components/team/team.component.spec.ts delete mode 100644 EnoLandingPageBackend/ClientApp/src/app/shared/components/team/team.component.ts diff --git a/EnoLandingPageBackend/ClientApp/package-lock.json b/EnoLandingPageBackend/ClientApp/package-lock.json index b58a55b..994fae0 100644 --- a/EnoLandingPageBackend/ClientApp/package-lock.json +++ b/EnoLandingPageBackend/ClientApp/package-lock.json @@ -168,6 +168,14 @@ } } }, + "@angular/cdk-experimental": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/@angular/cdk-experimental/-/cdk-experimental-12.1.0.tgz", + "integrity": "sha512-FlFT5YP4ZNvBedxSYI8/tnTy3KjdoktBDm8vVLDQLJY1qJXuoLO6aoF+8Dlv9SucgF9g0Pj2IBNcPDtmt9D7pQ==", + "requires": { + "tslib": "^2.2.0" + } + }, "@angular/cli": { "version": "12.0.4", "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-12.0.4.tgz", @@ -2029,6 +2037,22 @@ } } }, + "@pebula/ngrid": { + "version": "4.0.0-alpha.3", + "resolved": "https://registry.npmjs.org/@pebula/ngrid/-/ngrid-4.0.0-alpha.3.tgz", + "integrity": "sha512-pMRZynMmhV3SuJUGJf8tusWLOwEiT0Za09n3+AMhvvJog8k5UrhdT0X3o4bVnvuX3j5BB4nKfeA8sy5+rwyypA==", + "requires": { + "tslib": "^2.1.0" + } + }, + "@pebula/ngrid-material": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@pebula/ngrid-material/-/ngrid-material-3.1.4.tgz", + "integrity": "sha512-qcyFTQcR37MEx68uYBIdmoJsUr/21BgaPQp1zBq8RWQWINRc2rDQlcfdZb0OEFm9H+h04GT8xYNghSmhinWtfg==", + "requires": { + "tslib": "^2.0.0" + } + }, "@rollup/plugin-commonjs": { "version": "19.0.0", "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-19.0.0.tgz", diff --git a/EnoLandingPageBackend/ClientApp/package.json b/EnoLandingPageBackend/ClientApp/package.json index fda64ab..cbc4bab 100644 --- a/EnoLandingPageBackend/ClientApp/package.json +++ b/EnoLandingPageBackend/ClientApp/package.json @@ -13,6 +13,7 @@ "dependencies": { "@angular/animations": "~12.0.4", "@angular/cdk": "^12.0.4", + "@angular/cdk-experimental": "^12.1.0", "@angular/common": "~12.0.4", "@angular/compiler": "~12.0.4", "@angular/core": "~12.0.4", @@ -22,6 +23,8 @@ "@angular/platform-browser-dynamic": "~12.0.4", "@angular/router": "~12.0.4", "@ngxs/store": "^3.7.2", + "@pebula/ngrid": "^4.0.0-alpha.3", + "@pebula/ngrid-material": "^3.0.0", "@w11k/ngx-componentdestroyed": "^5.0.2", "ng-table-virtual-scroll": "^1.3.6", "ngx-countdown": "^12.0.0", diff --git a/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.scss b/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.scss index 79e8b61..28c8637 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.scss +++ b/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.scss @@ -1,5 +1,6 @@ mat-sidenav-container { width: 100%; + height: 100%; mat-sidenav { #pb-nav-mobile { diff --git a/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.ts b/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.ts index 27dec2f..3c59baa 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.ts +++ b/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.ts @@ -30,7 +30,7 @@ import { selector: 'app-navigation', templateUrl: './app-navigation.component.html', styleUrls: ['./app-navigation.component.scss'], - host: { class: 'pb-expand' }, + host: { class: 'page-expand' }, }) export class AppNavigationComponent extends OnDestroyMixin diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/dialog-info/dialog-info.component.html b/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/dialog-info/dialog-info.component.html index ef85e42..8e9cd2c 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/dialog-info/dialog-info.component.html +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/dialog-info/dialog-info.component.html @@ -4,10 +4,10 @@

This status of the service is: - {{ data.row[data.service.serviceId!].serviceStatus }} + {{ data.serviceDetails.serviceStatus }}

- +

Everything is fine!

Your service is offline.

@@ -27,10 +27,10 @@

- +

Error Message:

- {{ data.row[data.service.serviceId!].message | json }} + {{ data.serviceDetails.message | json }}

diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/dialog-info/dialog-info.component.ts b/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/dialog-info/dialog-info.component.ts index 79e3992..f88a14f 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/dialog-info/dialog-info.component.ts +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/dialog-info/dialog-info.component.ts @@ -2,11 +2,13 @@ import { Component, Inject, OnInit } from '@angular/core'; import { MAT_DIALOG_DATA } from '@angular/material/dialog'; import { ScoreboardService, + ScoreboardTeamServiceDetails, ServiceStatus, } from 'projects/backend-api/src/lib/model/models'; export interface InfoDialogData { row: any; + serviceDetails: ScoreboardTeamServiceDetails; service: ScoreboardService; } diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.html b/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.html index 0edc4c8..1e60192 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.html +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.html @@ -23,98 +23,95 @@

Round {{ round }}

-
- -
Id - {{ row.teamId }} - Team + Team
- -
- {{ row.teamName }} (10.0.0.{{ row.teamId }}) +
+ {{ row.teamId }} +
+
+ +
+
+
+ {{ row.teamName }} (10.0.0.{{ row.teamId }}) +
+
-
@@ -67,11 +73,13 @@

Round {{ round }}

element.serviceDetails[colIndex].serviceStatus }}" [matTooltip]="element.serviceDetails[colIndex].serviceStatus" + (click)="openInfo(element.serviceDetails[colIndex])" > +
âš”
-
+
âš”
- +
-
- +
+ +
+ Loading + +
- -
- - +
+ {{ col.label }} +
Flagstores: {{ col.data.flagVariants }}
+
- - - - - - -
Team -
-
- {{ row.team.teamId }} -
-
- -
-
-
- {{ row.team.teamName }}
- (10.0.0.{{ row.team.teamId }}) -
- -
-
{{ row.team.totalScore.toFixed(0) }} Punkte
-
-
-
- {{ service.serviceName }} -
- - Flagstores: {{ service.flagVariants }} -
-
+
+ Seems like no round could be loaded. +
-
+
+
+ {{ team.teamId }} +
+ +
+
+ {{ team.teamName }}
+ (10.0.0.{{ team.teamId }}) +
+ +
+
{{ team.totalScore.toFixed(0) }} Points
+
- -
-
âš”
-
- {{ - element[service.serviceId!].serviceLevelAgreementScore.toFixed(0) - }} -
-
- ( - {{ +0 }} - ) -
-
🛡
-
- {{ element[service.serviceId!].attackScore.toFixed(0) }} -
-
- ( - {{ -0 }} - ) -
-
⛨
-
- {{ element[service.serviceId!].defenseScore.toFixed(0) }} -
-
- ( - {{ +0 }} - ) -
-
-
-
+
+
+
âš”
+
+ {{ service.serviceLevelAgreementScore.toFixed(0) }} +
+
+ ( + {{ +0 }} + ) +
+
🛡
+
+ {{ service.attackScore.toFixed(0) }} +
+
+ ( + {{ -0 }} + ) +
+
⛨
+
+ {{ service.defenseScore.toFixed(0) }} +
+
+ ( + {{ +0 }} + ) +
+
+
+
diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.scss b/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.scss index 5b7edf7..130aa0b 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.scss +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.scss @@ -18,134 +18,68 @@ } } -.team-cell-th { - text-align: center; -} - -.team-cell-td { - min-width: 50px; - padding-left: 2px !important; +.team-cell { + display: flex; - .team-cell { - display: flex; + .teamId { + align-self: center; + margin: 2px 8px 2px 5px; + text-align: right; + } - .teamId { - align-self: center; - margin: 2px 8px 2px 5px; - text-align: right; - } + .team-logo { + max-width: 64px; + max-height: 64px; + // Fix minor height problem + font: unset; + } - .texts { - padding: 2px 8px; - } + .texts { + padding: 2px 8px; + } - .score { - flex: 1 0; - align-self: center; - text-align: right; - padding-right: 8px; - } + .score { + flex: 1 0; + align-self: center; + text-align: right; + padding-right: 8px; } } -.service-cell { - width: 150px; - min-width: 150px; - - .sla { - display: grid; - grid-template-columns: repeat(3, 1fr); - grid-template-rows: repeat(3, 1fr); - grid-column-gap: 0px; - grid-row-gap: 0px; - text-align: center; +.sla { + display: grid; + grid-template-columns: repeat(3, 1fr); + grid-template-rows: repeat(3, 1fr); + grid-column-gap: 0px; + grid-row-gap: 0px; + text-align: center; - .div1 { - grid-area: 1 / 1 / 2 / 2; - } - .div2 { - grid-area: 1 / 2 / 2 / 3; - } - .div3 { - grid-area: 1 / 3 / 2 / 4; - } - .div4 { - grid-area: 2 / 1 / 3 / 2; - } - .div5 { - grid-area: 2 / 2 / 3 / 3; - } - .div6 { - grid-area: 2 / 3 / 3 / 4; - } - .div7 { - grid-area: 3 / 1 / 4 / 2; - } - .div8 { - grid-area: 3 / 2 / 4 / 3; - } - .div9 { - grid-area: 3 / 3 / 4 / 4; - } + .div1 { + grid-area: 1 / 1 / 2 / 2; } - - &.OK { - background-color: #9ccc65; + .div2 { + grid-area: 1 / 2 / 2 / 3; } - - &.MUMBLE { - background-color: #ffee58; + .div3 { + grid-area: 1 / 3 / 2 / 4; } - - &.INTERNAL_ERROR { - background-color: #ef5350; + .div4 { + grid-area: 2 / 1 / 3 / 2; } - - &.RECOVERING { - background-color: #29b6f6; + .div5 { + grid-area: 2 / 2 / 3 / 3; } -} - -.scoreboard-table { - width: 100%; - display: block; - overflow-x: auto; - - .mat-table { - width: 100%; - max-width: 100%; - margin-bottom: 1rem; - display: table; - border-collapse: collapse; - margin: 0px; + .div6 { + grid-area: 2 / 3 / 3 / 4; } - .mat-row, - .mat-header-row { - display: table-row; + .div7 { + grid-area: 3 / 1 / 4 / 2; } - .mat-cell, - .mat-header-cell { - word-wrap: initial; - display: table-cell; - padding: 0px 5px; - line-break: unset; - width: auto; - white-space: nowrap; - overflow: hidden; - vertical-align: middle; + .div8 { + grid-area: 3 / 2 / 4 / 3; + } + .div9 { + grid-area: 3 / 3 / 4 / 4; } } -.mat-table-sticky-border-elem-left { - border-right: 1px solid #e0e0e0; -} - -/** -* Overwrite Table layout -*/ - -th.mat-header-cell:last-of-type, -td.mat-cell:last-of-type, -td.mat-footer-cell:last-of-type { - padding-right: 0 !important; -} diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.ts b/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.ts index e84dc1d..87d4529 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.ts +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.component.ts @@ -13,6 +13,7 @@ import { MatTableDataSource } from '@angular/material/table'; import { Scoreboard, ScoreboardInfoService, + ScoreboardTeamServiceDetails, } from 'projects/backend-api/src/lib'; import { ScoreboardService } from 'projects/backend-api/src/lib/model/scoreboardService'; import { ScoreboardTeam } from 'projects/backend-api/src/lib/model/scoreboardTeam'; @@ -20,29 +21,31 @@ import { DialogInfoComponent, InfoDialogData, } from './dialog-info/dialog-info.component'; +import { + createDS, + columnFactory, + PblDataSource, + PblNgridColumnSet, + PblColumnDefinition, +} from '@pebula/ngrid'; @Component({ selector: 'app-page-scoreboard', templateUrl: './page-scoreboard.component.html', styleUrls: ['./page-scoreboard.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, + host: { class: 'page-expand' }, }) export class PageScoreboardComponent implements OnInit { + public columns: PblNgridColumnSet = columnFactory().build(); + public ds: PblDataSource = createDS() + .onTrigger(() => []) + .create(); public round: number = 0; public roundLength: number = 60; public isCurrentRound: boolean = false; - public get displayedColumns(): string[] { - return ['teamId', ...this.columns]; - } - public services: ScoreboardService[] | undefined; - public dataSource: MatTableDataSource = new MatTableDataSource( - [] - ) as any; - - public columns: string[] = []; - public countDownConfig = { leftTime: 60, format: 'mm:ss', @@ -102,22 +105,51 @@ export class PageScoreboardComponent implements OnInit { leftTime: timeLeft, }; - this.dataSource.data = - scoreboard.teams?.map((team) => { - let row: any = { - team: team, - }; - team.serviceDetails?.forEach((service) => { - row[service.serviceId!.toString()] = service; - }); - return row; - }) || []; - - this.columns = - scoreboard.services?.reduce((accumulator, service) => { - accumulator.push(service.serviceId!.toString()); - return accumulator; - }, [] as string[]) || []; + this.ds = createDS() + .onTrigger(() => { + return ( + scoreboard.teams?.map((team) => { + let row: any = { + team: team, + }; + team.serviceDetails?.forEach((service) => { + row['service-' + service.serviceId!] = service; + }); + return row; + }) || [] + ); + }) + .create(); + + this.columns = columnFactory() + .default({ minWidth: 200 }) + .table( + { + prop: 'team', + // id: 'id', + label: 'Team', + minWidth: 250, + width: '40px', + pin: 'start', + pIndex: true, + wontBudge: true, + }, + ...(scoreboard.services?.reduce((accumulator, service) => { + let col: PblColumnDefinition = { + prop: 'service-' + service.serviceId, + label: service.serviceName, + minWidth: 100, + width: '100px', + reorder: true, + type: 'service', + data: service, + }; + accumulator.push(col); + return accumulator; + }, [] as any[]) || []) + ) + .build(); + this.ref.markForCheck(); if (this.isCurrentRound) { @@ -150,9 +182,14 @@ export class PageScoreboardComponent implements OnInit { return item.teamId; }; - openInfo(row: any, service: ScoreboardService) { + openInfo( + row: any, + details: ScoreboardTeamServiceDetails, + service: ScoreboardService + ) { let data: InfoDialogData = { row: row, + serviceDetails: details, service: service, }; this.dialog.open(DialogInfoComponent, { diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.module.ts b/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.module.ts index 8136f7e..31fe6df 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.module.ts +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/page-scoreboard/page-scoreboard.module.ts @@ -6,7 +6,21 @@ import { SharedModule } from 'src/app/shared/shared.module'; import { TableVirtualScrollModule } from 'ng-table-virtual-scroll'; import { CountdownModule } from 'ngx-countdown'; import { DialogInfoComponent } from './dialog-info/dialog-info.component'; +import { PblNgridModule } from '@pebula/ngrid'; +import { PblNgridDragModule } from '@pebula/ngrid/drag'; +import { PblNgridTargetEventsModule } from '@pebula/ngrid/target-events'; +import { PblNgridTransposeModule } from '@pebula/ngrid/transpose'; +import { PblNgridBlockUiModule } from '@pebula/ngrid/block-ui'; +import { PblNgridDetailRowModule } from '@pebula/ngrid/detail-row'; +import { PblNgridStickyModule } from '@pebula/ngrid/sticky'; +import { PblNgridStatePluginModule } from '@pebula/ngrid/state'; +import { PblNgridMatSortModule } from '@pebula/ngrid-material/sort'; +import { PblNgridMaterialModule } from '@pebula/ngrid-material'; +import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; +import { PblNgridPaginatorModule } from '@pebula/ngrid-material/paginator'; +import { PblNgridCheckboxModule } from '@pebula/ngrid-material/selection-column'; +import { PblNgridCellTooltipModule } from '@pebula/ngrid-material/cell-tooltip'; @NgModule({ declarations: [PageScoreboardComponent, DialogInfoComponent], imports: [ @@ -15,6 +29,20 @@ import { DialogInfoComponent } from './dialog-info/dialog-info.component'; SharedModule, TableVirtualScrollModule, CountdownModule, + BrowserAnimationsModule, + PblNgridModule, + PblNgridDragModule.withDefaultTemplates(), + PblNgridTargetEventsModule, + PblNgridBlockUiModule, + PblNgridTransposeModule, + PblNgridDetailRowModule, + PblNgridStickyModule, + PblNgridStatePluginModule, + PblNgridMatSortModule, + PblNgridMaterialModule, + PblNgridPaginatorModule, + PblNgridCheckboxModule, + PblNgridCellTooltipModule, ], }) export class PageScoreboardModule {} diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-teams/page-teams.component.html b/EnoLandingPageBackend/ClientApp/src/app/pages/page-teams/page-teams.component.html index 5dad223..a3c4d36 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/pages/page-teams/page-teams.component.html +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/page-teams/page-teams.component.html @@ -6,28 +6,31 @@ None yet :( - - {{ team.name }} + + {{ + team.name + }} - +
Registered Teams
- - None yet :( - + + None yet :( + - - -

{{ team.name }} - -

- -
+ + +

+ {{ team.name }} + +

+ +
diff --git a/EnoLandingPageBackend/ClientApp/src/app/shared/components/team-logo/team-logo.component.html b/EnoLandingPageBackend/ClientApp/src/app/shared/components/team-logo/team-logo.component.html deleted file mode 100644 index da2e321..0000000 --- a/EnoLandingPageBackend/ClientApp/src/app/shared/components/team-logo/team-logo.component.html +++ /dev/null @@ -1 +0,0 @@ - diff --git a/EnoLandingPageBackend/ClientApp/src/app/shared/components/team-logo/team-logo.component.scss b/EnoLandingPageBackend/ClientApp/src/app/shared/components/team-logo/team-logo.component.scss deleted file mode 100644 index 1175072..0000000 --- a/EnoLandingPageBackend/ClientApp/src/app/shared/components/team-logo/team-logo.component.scss +++ /dev/null @@ -1,4 +0,0 @@ -img { - max-width: 64px; - max-height: 64px; -} diff --git a/EnoLandingPageBackend/ClientApp/src/app/shared/components/team-logo/team-logo.component.spec.ts b/EnoLandingPageBackend/ClientApp/src/app/shared/components/team-logo/team-logo.component.spec.ts deleted file mode 100644 index ed003da..0000000 --- a/EnoLandingPageBackend/ClientApp/src/app/shared/components/team-logo/team-logo.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; - -import { TeamLogoComponent } from './team-logo.component'; - -describe('TeamLogoComponent', () => { - let component: TeamLogoComponent; - let fixture: ComponentFixture; - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [ TeamLogoComponent ] - }) - .compileComponents(); - }); - - beforeEach(() => { - fixture = TestBed.createComponent(TeamLogoComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/EnoLandingPageBackend/ClientApp/src/app/shared/components/team-logo/team-logo.component.ts b/EnoLandingPageBackend/ClientApp/src/app/shared/components/team-logo/team-logo.component.ts deleted file mode 100644 index b6330f0..0000000 --- a/EnoLandingPageBackend/ClientApp/src/app/shared/components/team-logo/team-logo.component.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { Component, Input, OnInit } from '@angular/core'; - -@Component({ - selector: 'app-team-logo', - templateUrl: './team-logo.component.html', - styleUrls: ['./team-logo.component.scss'], -}) -export class TeamLogoComponent implements OnInit { - @Input() - logoUrl!: string; - constructor() {} - - ngOnInit(): void {} -} diff --git a/EnoLandingPageBackend/ClientApp/src/app/shared/components/team/team.component.html b/EnoLandingPageBackend/ClientApp/src/app/shared/components/team/team.component.html deleted file mode 100644 index bd7266d..0000000 --- a/EnoLandingPageBackend/ClientApp/src/app/shared/components/team/team.component.html +++ /dev/null @@ -1,8 +0,0 @@ - - - {{ team.name }} - - diff --git a/EnoLandingPageBackend/ClientApp/src/app/shared/components/team/team.component.scss b/EnoLandingPageBackend/ClientApp/src/app/shared/components/team/team.component.scss deleted file mode 100644 index e69de29..0000000 diff --git a/EnoLandingPageBackend/ClientApp/src/app/shared/components/team/team.component.spec.ts b/EnoLandingPageBackend/ClientApp/src/app/shared/components/team/team.component.spec.ts deleted file mode 100644 index c805519..0000000 --- a/EnoLandingPageBackend/ClientApp/src/app/shared/components/team/team.component.spec.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; - -import { TeamComponent } from './teams.component'; - -describe('TeamsComponent', () => { - let component: TeamComponent; - let fixture: ComponentFixture; - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [TeamComponent], - }).compileComponents(); - }); - - beforeEach(() => { - fixture = TestBed.createComponent(TeamComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/EnoLandingPageBackend/ClientApp/src/app/shared/components/team/team.component.ts b/EnoLandingPageBackend/ClientApp/src/app/shared/components/team/team.component.ts deleted file mode 100644 index 02f0e5f..0000000 --- a/EnoLandingPageBackend/ClientApp/src/app/shared/components/team/team.component.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { Component, Input, OnInit } from '@angular/core'; -import { TeamMessage } from 'projects/backend-api/src/lib'; - -@Component({ - selector: 'app-team', - templateUrl: './team.component.html', - styleUrls: ['./team.component.scss'], -}) -export class TeamComponent implements OnInit { - @Input() - public team!: TeamMessage; - constructor() {} - - ngOnInit(): void {} -} diff --git a/EnoLandingPageBackend/ClientApp/src/app/shared/shared.module.ts b/EnoLandingPageBackend/ClientApp/src/app/shared/shared.module.ts index 8144a31..745ec1a 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/shared/shared.module.ts +++ b/EnoLandingPageBackend/ClientApp/src/app/shared/shared.module.ts @@ -1,13 +1,11 @@ import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; -import { TeamComponent } from './components/team/team.component'; import { MaterialModule } from '../material.module'; import { CountryFlagComponent } from './components/country-flag/country-flag.component'; -import { TeamLogoComponent } from './components/team-logo/team-logo.component'; @NgModule({ - declarations: [TeamComponent, CountryFlagComponent, TeamLogoComponent], + declarations: [CountryFlagComponent], imports: [CommonModule, MaterialModule], - exports: [TeamComponent, CountryFlagComponent, TeamLogoComponent], + exports: [CountryFlagComponent], }) export class SharedModule {} diff --git a/EnoLandingPageBackend/ClientApp/src/styles.scss b/EnoLandingPageBackend/ClientApp/src/styles.scss index a09aa72..3a82b33 100644 --- a/EnoLandingPageBackend/ClientApp/src/styles.scss +++ b/EnoLandingPageBackend/ClientApp/src/styles.scss @@ -1,7 +1,7 @@ // Custom Theming for Angular Material // For more information: https://material.angular.io/guide/theming @use '~@angular/material' as mat; - +@use '~@pebula/ngrid' as ngrid; // Plus imports for other components in your app. // $custom-typography: mat-typography-config( @@ -125,6 +125,10 @@ $default-dark: mat.define-dark-theme( ) ); +$pbl-ngrid-dark-theme: ngrid.define-dark-theme($default-light); +$pbl-ngrid-light-theme: ngrid.define-light-theme($default-dark); +@include ngrid.ngrid-typography(); + // Include theme styles for core and each component used in your app. // Alternatively, you can import and @include the theme mixins for each component // that you are using. @@ -132,10 +136,12 @@ $default-dark: mat.define-dark-theme( .default_light_theme { @include mat.all-component-colors($default-light); + @include ngrid.ngrid-theme($pbl-ngrid-light-theme); } .default_dark_theme { @include mat.all-component-colors($default-dark); + @include ngrid.ngrid-theme($pbl-ngrid-dark-theme); } html, @@ -148,10 +154,11 @@ app-root { padding: 0; } -.pb-expand { +.page-expand { width: 100%; height: 100%; display: flex; + flex-direction: column; } .pb-spacer { @@ -159,6 +166,26 @@ app-root { flex-grow: 1; } +.pbl-ngrid-row { + min-height: 70px !important; +} + +.OK { + background-color: #9ccc65; +} + +.MUMBLE { + background-color: #ffee58; +} + +.INTERNAL_ERROR { + background-color: #ef5350; +} + +.RECOVERING { + background-color: #29b6f6; +} + $small-breakpoint: 468px; $med-breakpoint: 768px; $big-breakpoint: 1024px; From df5237350afd5359139863c41d2432c2a2104a25 Mon Sep 17 00:00:00 2001 From: Daniel Habenicht Date: Sun, 27 Jun 2021 01:48:28 +0200 Subject: [PATCH 070/118] better pages --- EnoLandingPageBackend/ClientApp/.gitignore | 2 + EnoLandingPageBackend/ClientApp/angular.json | 2 +- .../ClientApp/package-lock.json | 306 +++++++++++++++--- EnoLandingPageBackend/ClientApp/package.json | 5 + .../page-contact/page-contact.component.html | 22 +- .../page-contact/page-contact.component.scss | 3 + .../pages/page-contact/page-contact.module.ts | 19 +- .../page-information.component.html | 81 ++--- .../page-information.component.scss | 3 + .../page-information.component.ts | 16 +- .../page-information.module.ts | 18 +- .../page-profile/page-profile.component.html | 5 +- .../page-profile/page-profile.component.scss | 3 + .../ClientApp/src/styles.scss | 9 + customization/contact.md | 17 + customization/rules.md | 17 + docker-compose.yml | 30 +- 17 files changed, 413 insertions(+), 145 deletions(-) create mode 100644 customization/contact.md create mode 100644 customization/rules.md diff --git a/EnoLandingPageBackend/ClientApp/.gitignore b/EnoLandingPageBackend/ClientApp/.gitignore index de51f68..b3d583c 100644 --- a/EnoLandingPageBackend/ClientApp/.gitignore +++ b/EnoLandingPageBackend/ClientApp/.gitignore @@ -1,5 +1,7 @@ # See http://help.github.com/ignore-files/ for more about ignoring files. +src/assets/customization + # compiled output /dist /tmp diff --git a/EnoLandingPageBackend/ClientApp/angular.json b/EnoLandingPageBackend/ClientApp/angular.json index 24610f1..44d6384 100644 --- a/EnoLandingPageBackend/ClientApp/angular.json +++ b/EnoLandingPageBackend/ClientApp/angular.json @@ -31,7 +31,7 @@ "inlineStyleLanguage": "scss", "assets": ["src/favicon.ico", "src/assets"], "styles": ["src/styles.scss"], - "scripts": [] + "scripts": ["node_modules/marked/lib/marked.js"] }, "configurations": { "production": { diff --git a/EnoLandingPageBackend/ClientApp/package-lock.json b/EnoLandingPageBackend/ClientApp/package-lock.json index 994fae0..db7fc04 100644 --- a/EnoLandingPageBackend/ClientApp/package-lock.json +++ b/EnoLandingPageBackend/ClientApp/package-lock.json @@ -2205,6 +2205,11 @@ "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==", "dev": true }, + "@types/marked": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/marked/-/marked-2.0.3.tgz", + "integrity": "sha512-lbhSN1rht/tQ+dSWxawCzGgTfxe9DB31iLgiT1ZVT5lshpam/nyOA1m3tKHRoNPctB2ukSL22JZI5Fr+WI/zYg==" + }, "@types/minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.4.tgz", @@ -2566,8 +2571,7 @@ "ansi-regex": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" }, "ansi-styles": { "version": "3.2.1", @@ -2874,8 +2878,7 @@ "balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "base": { "version": "0.11.2", @@ -3053,7 +3056,6 @@ "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" @@ -3316,6 +3318,17 @@ "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", "dev": true }, + "clipboard": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.8.tgz", + "integrity": "sha512-Y6WO0unAIQp5bLmk1zdThRhgJt/x3ks6f30s3oE3H1mgIEU33XyQjEf8gsf6DxC7NPX8Y1SsNWjUjL/ywLnnbQ==", + "optional": true, + "requires": { + "good-listener": "^1.2.2", + "select": "^1.1.2", + "tiny-emitter": "^2.0.0" + } + }, "cliui": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", @@ -3510,8 +3523,7 @@ "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 + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "concurrently": { "version": "6.2.0", @@ -3803,6 +3815,87 @@ } } }, + "copyfiles": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/copyfiles/-/copyfiles-2.4.1.tgz", + "integrity": "sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg==", + "requires": { + "glob": "^7.0.5", + "minimatch": "^3.0.3", + "mkdirp": "^1.0.4", + "noms": "0.0.0", + "through2": "^2.0.1", + "untildify": "^4.0.0", + "yargs": "^16.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==" + } + } + }, "core-js": { "version": "3.12.0", "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.12.0.tgz", @@ -3830,8 +3923,7 @@ "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 + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "cors": { "version": "2.8.5", @@ -4586,6 +4678,12 @@ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", "dev": true }, + "delegate": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", + "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==", + "optional": true + }, "delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", @@ -4739,8 +4837,12 @@ "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "emoji-toolkit": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/emoji-toolkit/-/emoji-toolkit-6.5.1.tgz", + "integrity": "sha512-oY5E81cXvRUxXkbVgOI8NxYHKF5FeWfJhFCIYUKhbVfSmdCH8+bmJzgDdhufExa7t1+WEzpUFdHwYxJTXS90vQ==" }, "emojis-list": { "version": "3.0.0", @@ -4884,8 +4986,7 @@ "escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" }, "escape-html": { "version": "1.0.3", @@ -5424,8 +5525,7 @@ "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "fsevents": { "version": "2.3.2", @@ -5502,8 +5602,7 @@ "get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" }, "get-intrinsic": { "version": "1.1.1", @@ -5544,7 +5643,6 @@ "version": "7.1.7", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -5589,6 +5687,15 @@ "slash": "^3.0.0" } }, + "good-listener": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", + "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=", + "optional": true, + "requires": { + "delegate": "^3.1.2" + } + }, "graceful-fs": { "version": "4.2.6", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", @@ -6137,7 +6244,6 @@ "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" @@ -6146,8 +6252,7 @@ "inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "ini": { "version": "2.0.0", @@ -6417,8 +6522,7 @@ "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" }, "is-glob": { "version": "4.0.1", @@ -6553,8 +6657,7 @@ "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "isbinaryfile": { "version": "4.0.8", @@ -6973,6 +7076,21 @@ "source-map-support": "^0.5.5" } }, + "katex": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.13.11.tgz", + "integrity": "sha512-yJBHVIgwlAaapzlbvTpVF/ZOs8UkTj/sd46Fl8+qAf2/UiituPYVeapVD8ADZtqyRg/qNWUKt7gJoyYVWLrcXw==", + "requires": { + "commander": "^6.0.0" + }, + "dependencies": { + "commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==" + } + } + }, "killable": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", @@ -7279,6 +7397,11 @@ "object-visit": "^1.0.0" } }, + "marked": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/marked/-/marked-2.1.3.tgz", + "integrity": "sha512-/Q+7MGzaETqifOMWYEA7HVMaZb4XbcRfaOzcSsHZEith83KGlvaSG33u0SKu89Mj5h+T8V2hM+8O45Qc5XTgwA==" + }, "mdn-data": { "version": "2.0.14", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", @@ -7484,7 +7607,6 @@ "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" } @@ -7596,8 +7718,7 @@ "mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" }, "ms": { "version": "2.1.2", @@ -7738,6 +7859,19 @@ "tslib": "^2.1.0" } }, + "ngx-markdown": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/ngx-markdown/-/ngx-markdown-12.0.1.tgz", + "integrity": "sha512-vMp9SyqmVQZCX374MiCV4sRR1SIv5m3xR2HZ39b3+6/BGjAb46mb4wRXKdIxYUoPba7NYZ8GAt5moUCyVZcCyA==", + "requires": { + "@types/marked": "^2.0.0", + "emoji-toolkit": "^6.5.0", + "katex": "^0.13.0", + "marked": "^2.0.0", + "prismjs": "^1.23.0", + "tslib": "^2.1.0" + } + }, "nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", @@ -7800,6 +7934,38 @@ "find-parent-dir": "^0.3.0" } }, + "noms": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/noms/-/noms-0.0.0.tgz", + "integrity": "sha1-2o69nzr51nYJGbJ9nNyAkqczKFk=", + "requires": { + "inherits": "^2.0.1", + "readable-stream": "~1.0.31" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } + } + }, "nopt": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", @@ -8089,7 +8255,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, "requires": { "wrappy": "1" } @@ -8383,8 +8548,7 @@ "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 + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-is-inside": { "version": "1.0.2", @@ -10090,11 +10254,18 @@ "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", "dev": true }, + "prismjs": { + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.23.0.tgz", + "integrity": "sha512-c29LVsqOaLbBHuIbsTxaKENh1N2EQBOHaWv7gkHN4dgRbxSREqDnDbtFJYdpPauS4YCplMSNCABQ6Eeor69bAA==", + "requires": { + "clipboard": "^2.0.0" + } + }, "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, "promise-inflight": { "version": "1.0.1", @@ -10479,8 +10650,7 @@ "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 + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" }, "require-from-string": { "version": "2.0.2", @@ -10687,8 +10857,7 @@ "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 + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "safe-regex": { "version": "1.1.0", @@ -10761,6 +10930,12 @@ } } }, + "select": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", + "integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=", + "optional": true + }, "select-hose": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", @@ -11453,7 +11628,6 @@ "version": "4.2.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "dev": true, "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -11481,7 +11655,6 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, "requires": { "ansi-regex": "^5.0.0" } @@ -11785,6 +11958,39 @@ "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==", + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "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" + } + }, + "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==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, "thunky": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", @@ -11797,6 +12003,12 @@ "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", "dev": true }, + "tiny-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", + "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==", + "optional": true + }, "tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", @@ -12045,6 +12257,11 @@ } } }, + "untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==" + }, "upath": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", @@ -12103,8 +12320,7 @@ "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "utils-merge": { "version": "1.0.1", @@ -12868,8 +13084,7 @@ "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "ws": { "version": "6.2.2", @@ -12880,6 +13095,11 @@ "async-limiter": "~1.0.0" } }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, "xxhashjs": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/xxhashjs/-/xxhashjs-0.2.2.tgz", diff --git a/EnoLandingPageBackend/ClientApp/package.json b/EnoLandingPageBackend/ClientApp/package.json index cbc4bab..411c442 100644 --- a/EnoLandingPageBackend/ClientApp/package.json +++ b/EnoLandingPageBackend/ClientApp/package.json @@ -3,6 +3,9 @@ "version": "0.0.0", "scripts": { "ng": "ng", + "prestart": "npm run prepare-customization", + "prebuild": "npm run prepare-customization", + "prepare-customization": "copyfiles ../../customization/**/* ./src/assets/test/customization -V", "start": "ng serve --configuration hmr", "build": "ng build", "watch": "ng build --watch --configuration development", @@ -26,8 +29,10 @@ "@pebula/ngrid": "^4.0.0-alpha.3", "@pebula/ngrid-material": "^3.0.0", "@w11k/ngx-componentdestroyed": "^5.0.2", + "copyfiles": "^2.4.1", "ng-table-virtual-scroll": "^1.3.6", "ngx-countdown": "^12.0.0", + "ngx-markdown": "^12.0.1", "rxjs": "~6.6.0", "tslib": "^2.1.0", "zone.js": "~0.11.4" diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-contact/page-contact.component.html b/EnoLandingPageBackend/ClientApp/src/app/pages/page-contact/page-contact.component.html index 5fc98c7..c9b8b13 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/pages/page-contact/page-contact.component.html +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/page-contact/page-contact.component.html @@ -1,19 +1,3 @@ -
-

Contact

-
-
-

Email

-

bambi@@enoflag.de

- -

Twitter

-

@@ENOFLAG

- -

IRC

-

- #bambictf at freenode -

- -

Discord

-

Discord

-
-
+ + + diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-contact/page-contact.component.scss b/EnoLandingPageBackend/ClientApp/src/app/pages/page-contact/page-contact.component.scss index e69de29..6e9bd09 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/pages/page-contact/page-contact.component.scss +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/page-contact/page-contact.component.scss @@ -0,0 +1,3 @@ +mat-card { + margin: 1vh 2vw; +} diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-contact/page-contact.module.ts b/EnoLandingPageBackend/ClientApp/src/app/pages/page-contact/page-contact.module.ts index ae938dd..fb2d594 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/pages/page-contact/page-contact.module.ts +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/page-contact/page-contact.module.ts @@ -1,15 +1,18 @@ import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; import { PageContactComponent } from './page-contact.component'; - - +import { MatCardModule } from '@angular/material/card'; +import { MarkdownModule } from 'ngx-markdown'; +import { HttpClient, HttpClientModule } from '@angular/common/http'; @NgModule({ - declarations: [ - PageContactComponent - ], + declarations: [PageContactComponent], imports: [ - CommonModule - ] + CommonModule, + MatCardModule, + HttpClientModule, + MatCardModule, + MarkdownModule.forRoot({ loader: HttpClient }), + ], }) -export class PageContactModule { } +export class PageContactModule {} diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-information/page-information.component.html b/EnoLandingPageBackend/ClientApp/src/app/pages/page-information/page-information.component.html index 13d87d4..eb424ed 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/pages/page-information/page-information.component.html +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/page-information/page-information.component.html @@ -1,56 +1,27 @@ -
-

Rules

-
-
-

Summary

-
    -
  • - Vulnboxes and VPN servers are provided by us, you don't have to provide - or take care of anything. -
  • -
  • The game will start on @ctfInfo?.StartTime.ToString() UTC.
  • -
  • - You must register before - ctfInfo?.StartTime.AddHours(-ctfInfo.RegistrationCloseOffset).ToString() - UTC. -
  • -
  • - You must check in between - ctfInfo?.StartTime.AddHours(-ctfInfo.CheckInBeginOffset).ToString() UTC - and @ctfInfo?.StartTime.AddHours(-ctfInfo.CheckInEndOffset).ToString() - UTC. -
  • -
  • - You must start your vulnbox once the game starts. -
  • -
  • A round lasts 60 seconds, flags are valid for several rounds.
  • -
  • - Flag format: {{ "ENO[A-Za-z0-9+\/=]{48}" }} -
  • -
  • Flag submission: nc flags.bambi.ovh 1337
  • -
  • - You will find an - Arkime - installation on your vulnbox. Arkime is a traffic analysis tool, not a - vulnerable service. -
  • -
+ + +

Timing

+
  • + The game will start on + {{ (ctfInfo$ | async)!.startTime | date: "full" }}. +
  • +
  • + You must register before + {{ (ctfInfo$ | async)!.registrationCloseOffset | date: "full" }} + UTC. +
  • +
  • + You must check in between + {{ (ctfInfo$ | async)!.checkInBeginOffset | date: "full" }} and + {{ (ctfInfo$ | async)!.checkInEndOffset | date: "full" }} + . +
  • +
  • + You must start your vulnbox once the game starts. +
  • +
    +
    -

    Scoring

    -

    - We are currently using the scoring formula by - Faust CTF. -

    - -

    Social Conduct

    -

    - The vulnerable services of your opponents are your only valid targets. Do - not engage anything else! -

    -

    - Do not attempt to exhaust resources on your opponents' vulnboxes, for - example by sending excessive amounts of requests or exploiting - vulnerabilities leading to a denial of service. -

    -
    -
    + + + diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-information/page-information.component.scss b/EnoLandingPageBackend/ClientApp/src/app/pages/page-information/page-information.component.scss index e69de29..6e9bd09 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/pages/page-information/page-information.component.scss +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/page-information/page-information.component.scss @@ -0,0 +1,3 @@ +mat-card { + margin: 1vh 2vw; +} diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-information/page-information.component.ts b/EnoLandingPageBackend/ClientApp/src/app/pages/page-information/page-information.component.ts index 55930bb..3ab7976 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/pages/page-information/page-information.component.ts +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/page-information/page-information.component.ts @@ -1,15 +1,19 @@ import { Component, OnInit } from '@angular/core'; +import { Select } from '@ngxs/store'; +import { CtfInfoMessage } from 'projects/backend-api/src/lib'; +import { Observable } from 'rxjs'; +import { AppState } from 'src/app/shared/states/App.state'; @Component({ selector: 'app-page-information', templateUrl: './page-information.component.html', - styleUrls: ['./page-information.component.scss'] + styleUrls: ['./page-information.component.scss'], + host: { class: 'page-expand' }, }) export class PageInformationComponent implements OnInit { + @Select(AppState.ctfInfo) + public ctfInfo$!: Observable; + constructor() {} - constructor() { } - - ngOnInit(): void { - } - + ngOnInit(): void {} } diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-information/page-information.module.ts b/EnoLandingPageBackend/ClientApp/src/app/pages/page-information/page-information.module.ts index dfe0f46..9951bae 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/pages/page-information/page-information.module.ts +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/page-information/page-information.module.ts @@ -1,15 +1,17 @@ import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; import { PageInformationComponent } from './page-information.component'; - - +import { HttpClient, HttpClientModule } from '@angular/common/http'; +import { MarkdownModule } from 'ngx-markdown'; +import { MatCardModule } from '@angular/material/card'; @NgModule({ - declarations: [ - PageInformationComponent - ], + declarations: [PageInformationComponent], imports: [ - CommonModule - ] + CommonModule, + HttpClientModule, + MatCardModule, + MarkdownModule.forRoot({ loader: HttpClient }), + ], }) -export class PageInformationModule { } +export class PageInformationModule {} diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-profile/page-profile.component.html b/EnoLandingPageBackend/ClientApp/src/app/pages/page-profile/page-profile.component.html index 388209d..901fa30 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/pages/page-profile/page-profile.component.html +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/page-profile/page-profile.component.html @@ -1,4 +1,4 @@ -
    + You should have been logged in. @@ -128,8 +128,7 @@

    {{ (teamInfo$ | async)!.teamName }}

    - - + - + Register Now! + + + CTF ends in  + + diff --git a/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.ts b/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.ts index 7f43af4..7486e67 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.ts +++ b/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.ts @@ -79,11 +79,22 @@ export class AppNavigationComponent .pipe(untilComponentDestroyed(this)) .subscribe((state: AppStateModel) => { this.themeValue = state.activeTheme; - this.countDownConfig = { - ...this.countDownConfig, - leftTime: - Date.parse(state.ctfInfo?.startTime!) - new Date().getTime(), - }; + if (AppState.ctfInProgress(state)) { + this.countDownConfig = { + ...this.countDownConfig, + leftTime: + Date.parse(state.ctfInfo?.startTime!) + + // 10 hours + 10 * 60 * 60 * 1000 - + new Date().getTime(), + }; + } else { + this.countDownConfig = { + ...this.countDownConfig, + leftTime: + Date.parse(state.ctfInfo?.startTime!) - new Date().getTime(), + }; + } }); } public ngOnDestroy() {} diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-admin/page-admin.component.html b/EnoLandingPageBackend/ClientApp/src/app/pages/page-admin/page-admin.component.html index d5ca53b..253aa5d 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/pages/page-admin/page-admin.component.html +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/page-admin/page-admin.component.html @@ -1,11 +1,29 @@ -
    +

    AdminView

    - -
    - - boot vm + Admin secret + + + + Team + + + {{ team.name }} + + + +
    + Reboot VM + + ctf.json + diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-admin/page-admin.component.ts b/EnoLandingPageBackend/ClientApp/src/app/pages/page-admin/page-admin.component.ts index dc06758..ce5fb2b 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/pages/page-admin/page-admin.component.ts +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/page-admin/page-admin.component.ts @@ -1,15 +1,35 @@ import { Component, OnInit } from '@angular/core'; +import { + AdminService, + DataService, + TeamMessage, + TeamsMessage, +} from 'projects/backend-api/src/lib'; @Component({ selector: 'app-page-admin', templateUrl: './page-admin.component.html', - styleUrls: ['./page-admin.component.scss'] + styleUrls: ['./page-admin.component.scss'], }) export class PageAdminComponent implements OnInit { + public secret: string = ''; + public selectedTeam: number | undefined; + public teams: TeamMessage[] | null = null; - constructor() { } - + constructor( + private adminService: AdminService, + private _dataService: DataService + ) {} ngOnInit(): void { + this._dataService.apiDataTeamsGet().subscribe((info) => { + this.teams = [...info.registeredTeams!, ...info.confirmedTeams!]; + }); } + restartMachine() { + this.adminService.apiAdminBootVmGet(this.secret, this.selectedTeam).subscribe( + (success) => {}, + (error) => {} + ); + } } diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-admin/page-admin.module.ts b/EnoLandingPageBackend/ClientApp/src/app/pages/page-admin/page-admin.module.ts index d9699bd..dbae137 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/pages/page-admin/page-admin.module.ts +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/page-admin/page-admin.module.ts @@ -1,15 +1,11 @@ import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; import { PageAdminComponent } from './page-admin.component'; - - +import { MaterialModule } from 'src/app/material.module'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; @NgModule({ - declarations: [ - PageAdminComponent - ], - imports: [ - CommonModule - ] + declarations: [PageAdminComponent], + imports: [CommonModule, MaterialModule, FormsModule, ReactiveFormsModule], }) -export class PageAdminModule { } +export class PageAdminModule {} From 774564404f552e1a3b58d2e3bf80b8607235238d Mon Sep 17 00:00:00 2001 From: Daniel Habenicht Date: Sun, 27 Jun 2021 02:40:38 +0200 Subject: [PATCH 075/118] add Snackbar --- .../ClientApp/src/app/app.module.ts | 6 +++++- .../pages/page-admin/page-admin.component.ts | 18 +++++++++++++----- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/EnoLandingPageBackend/ClientApp/src/app/app.module.ts b/EnoLandingPageBackend/ClientApp/src/app/app.module.ts index 4faf780..fbf279e 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/app.module.ts +++ b/EnoLandingPageBackend/ClientApp/src/app/app.module.ts @@ -23,6 +23,7 @@ import { PageProfileModule } from './pages/page-profile/page-profile.module'; import { PageInformationModule } from './pages/page-information/page-information.module'; import { PageContactModule } from './pages/page-contact/page-contact.module'; import { PageAdminModule } from './pages/page-admin/page-admin.module'; +import { MAT_SNACK_BAR_DEFAULT_OPTIONS } from '@angular/material/snack-bar'; export function apiConfigFactory(): Configuration { const params: ConfigurationParameters = { basePath: environment.backendBaseUrl, @@ -52,7 +53,10 @@ export function apiConfigFactory(): Configuration { PageAdminModule, BrowserAnimationsModule, ], - providers: [ThemeService], + providers: [ + ThemeService, + { provide: MAT_SNACK_BAR_DEFAULT_OPTIONS, useValue: { duration: 3000 } }, + ], bootstrap: [AppComponent], }) export class AppModule {} diff --git a/EnoLandingPageBackend/ClientApp/src/app/pages/page-admin/page-admin.component.ts b/EnoLandingPageBackend/ClientApp/src/app/pages/page-admin/page-admin.component.ts index ce5fb2b..aa7d9b0 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/pages/page-admin/page-admin.component.ts +++ b/EnoLandingPageBackend/ClientApp/src/app/pages/page-admin/page-admin.component.ts @@ -1,4 +1,5 @@ import { Component, OnInit } from '@angular/core'; +import { MatSnackBar } from '@angular/material/snack-bar'; import { AdminService, DataService, @@ -18,7 +19,8 @@ export class PageAdminComponent implements OnInit { constructor( private adminService: AdminService, - private _dataService: DataService + private _dataService: DataService, + private _snackBar: MatSnackBar ) {} ngOnInit(): void { this._dataService.apiDataTeamsGet().subscribe((info) => { @@ -27,9 +29,15 @@ export class PageAdminComponent implements OnInit { } restartMachine() { - this.adminService.apiAdminBootVmGet(this.secret, this.selectedTeam).subscribe( - (success) => {}, - (error) => {} - ); + this.adminService + .apiAdminBootVmGet(this.secret, this.selectedTeam) + .subscribe( + (success) => { + this._snackBar.open('Rebooted!'); + }, + (error) => { + this._snackBar.open('Something went wrong!'); + } + ); } } From 64291c05704de8a89774ac0eb4284d9cacbe49d4 Mon Sep 17 00:00:00 2001 From: Daniel Habenicht Date: Sun, 27 Jun 2021 03:00:40 +0200 Subject: [PATCH 076/118] add buttons --- .../app-navigation.component.html | 4 +- .../page-profile/page-profile.component.html | 6 +-- .../page-profile/page-profile.component.ts | 45 ++++++++++++++++++- 3 files changed, 48 insertions(+), 7 deletions(-) diff --git a/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.html b/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.html index 3a04c51..5616e84 100644 --- a/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.html +++ b/EnoLandingPageBackend/ClientApp/src/app/modules/app-navigation/app-navigation.component.html @@ -179,8 +179,8 @@