From db26e83678bbc12ad466e98b3db984b216226f0d Mon Sep 17 00:00:00 2001 From: Artur Kudaev Date: Tue, 14 Jan 2020 16:57:27 +0200 Subject: [PATCH 01/19] home work 06 - Promise --- 04/artur_kudaev/1/func.js | 35 +++++++++++------ 04/artur_kudaev/1/index.js | 58 ++++++++++++++--------------- 04/artur_kudaev/1/package-lock.json | 35 +++++++++++++++++ 04/artur_kudaev/1/package.json | 1 + 4 files changed, 89 insertions(+), 40 deletions(-) diff --git a/04/artur_kudaev/1/func.js b/04/artur_kudaev/1/func.js index 473d63f..49d64a6 100644 --- a/04/artur_kudaev/1/func.js +++ b/04/artur_kudaev/1/func.js @@ -1,16 +1,29 @@ const request = require('request'); +const term = require( 'terminal-kit' ).terminal ; -function getData(coords, callback) { - - const url = `https://api.darksky.net/forecast/bbb930df7abf0835186e2c34000cfd81/${coords[0]},${coords[1]}`; +function getData(coords) { + return new Promise((resolve, reject) => { + const url = `https://api.darksky.net/forecast/bbb930df7abf0835186e2c34000cfd81/${coords[0]},${coords[1]}`; + request({ url: url, json: true }, (error, response) => { + if(error) { + reject('Opps.. error..') + }else { + resolve(response.body.currently) + } + }) + }) +}; - request({ url: url, json: true }, (error, response) => { - if(error) { - callback('Opps.. error..') - }else { - callback(null, response.body.currently) - } +function getCity() { + return new Promise((resolve, reject) => { + term.magenta( "Enter city: " ) ; + term.inputField( + function( error , input ) { + if(error) reject(error); + resolve(input); + } + ) ; }) -} +}; -module.exports = {getData} +module.exports = {getData, getCity}; diff --git a/04/artur_kudaev/1/index.js b/04/artur_kudaev/1/index.js index c838d75..ab12059 100644 --- a/04/artur_kudaev/1/index.js +++ b/04/artur_kudaev/1/index.js @@ -1,36 +1,36 @@ const func = require('./func'); const chalk = require('chalk'); const term = require( 'terminal-kit' ).terminal ; - -const mycoords = [37.8267,-122.4233]; - -function showData(item, callback) { - func.getData(mycoords, (error, response) => { - if(error) { - console.log(chalk.red(error)); - }else { - if(item === 'time') { - console.log(chalk.black.bgWhite.bold(new Date(response[item]))); - callback() - }else { - console.log(chalk.black.bgGreen.bold(`${item}: ${response[item]}`)); - callback() - } - } - }); -} +const cities = require("all-the-cities"); term.cyan( 'Метеоданные Алькатраса.\n' ); -var items = [ - 'summary', - 'time', - 'temperature', - 'ozone', -] ; - -term.singleColumnMenu( items , function( error , response ) { - if(response.selectedText) { - showData(`${response.selectedText}`, process.exit) +func.getCity().then(city => { + const data = cities.filter(el => { + return el.name.match(city) + }); + const coordinates = data.map(el => el.loc.coordinates); + function showData(item) { + return new Promise((resolve, reject) => { + func.getData(coordinates[0]) + .then(response => { + console.log(chalk.black.bgGreen.bold(`${item}: ${response[item]}`)); + resolve(true) + }) + .catch(err => reject(err)) + }) } -} ) ; + func.getData(coordinates[0]) + .then(items => { + term.singleColumnMenu( Object.keys(items) , function( error , response ) { + if(error) { + console.log(chalk.black.bgRed.bold(error)) + } + else if(response.selectedText) { + showData(`${response.selectedText}`) + .then(() => process.exit()) + .catch(err => console.log(err)) + } + }) ; + }); +}) diff --git a/04/artur_kudaev/1/package-lock.json b/04/artur_kudaev/1/package-lock.json index eb39c40..690a739 100644 --- a/04/artur_kudaev/1/package-lock.json +++ b/04/artur_kudaev/1/package-lock.json @@ -33,6 +33,14 @@ "uri-js": "^4.2.2" } }, + "all-the-cities": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/all-the-cities/-/all-the-cities-3.0.0.tgz", + "integrity": "sha512-7zrhtGy7jHxUP31u/lqc409hALYmiSrdDOnsRORbW29YgNN+Or26k5/AVj4pzC2gmNIoQD/PfJehxxsUh8DbPA==", + "requires": { + "pbf": "^3.2.1" + } + }, "ansi-styles": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.0.tgz", @@ -246,6 +254,11 @@ "sshpk": "^1.7.0" } }, + "ieee754": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" + }, "iota-array": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/iota-array/-/iota-array-1.0.0.tgz", @@ -368,6 +381,15 @@ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" }, + "pbf": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/pbf/-/pbf-3.2.1.tgz", + "integrity": "sha512-ClrV7pNOn7rtmoQVF4TS1vyU0WhYRnP92fzbfF75jAIwpnzdJXf8iTd4CMEqO4yUenH6NDqLiwjqlh6QgZzgLQ==", + "requires": { + "ieee754": "^1.1.12", + "resolve-protobuf-schema": "^2.1.0" + } + }, "performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", @@ -378,6 +400,11 @@ "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-2.3.1.tgz", "integrity": "sha1-EdHhK5y2TWPjDBQ6Mw9MH1Z9qF8=" }, + "protocol-buffers-schema": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.3.3.tgz", + "integrity": "sha512-jiszJ9Nzo8glRgP+PQ+QdQ/WqoolZLTIGBEG2PBwGWVGbTmq+j4S/3NR1kpoGE+pYXV2HfS8ukxXGKkBnMx7eA==" + }, "psl": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.6.0.tgz", @@ -420,6 +447,14 @@ "uuid": "^3.3.2" } }, + "resolve-protobuf-schema": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz", + "integrity": "sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==", + "requires": { + "protocol-buffers-schema": "^3.3.1" + } + }, "safe-buffer": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", diff --git a/04/artur_kudaev/1/package.json b/04/artur_kudaev/1/package.json index c77d98c..85d4326 100644 --- a/04/artur_kudaev/1/package.json +++ b/04/artur_kudaev/1/package.json @@ -4,6 +4,7 @@ "description": "", "main": "index.js", "dependencies": { + "all-the-cities": "^3.0.0", "chalk": "^3.0.0", "request": "^2.88.0", "terminal-kit": "^1.32.2" From d278216553d0a062289816e5c119305926a72298 Mon Sep 17 00:00:00 2001 From: Artur Kudaev Date: Thu, 16 Jan 2020 17:16:43 +0200 Subject: [PATCH 02/19] home work 07 - Mongoose --- 04/artur_kudaev/2/index.js | 56 +- 04/artur_kudaev/2/package-lock.json | 1322 ++++++++++++++++++++ 04/artur_kudaev/2/package.json | 6 +- 04/artur_kudaev/2/public/css/style.css | 230 ---- 04/artur_kudaev/2/public/favicon.ico | Bin 0 -> 1150 bytes 04/artur_kudaev/2/public/form.html | 20 + 04/artur_kudaev/2/public/i/im1.jpg | Bin 34307 -> 0 bytes 04/artur_kudaev/2/public/i/im10.jpg | Bin 38714 -> 0 bytes 04/artur_kudaev/2/public/i/im11.jpg | Bin 47553 -> 0 bytes 04/artur_kudaev/2/public/i/im12.jpg | Bin 52826 -> 0 bytes 04/artur_kudaev/2/public/i/im2.jpg | Bin 59505 -> 0 bytes 04/artur_kudaev/2/public/i/im3.jpg | Bin 63165 -> 0 bytes 04/artur_kudaev/2/public/i/im4.jpg | Bin 75387 -> 0 bytes 04/artur_kudaev/2/public/i/im5.jpg | Bin 33195 -> 0 bytes 04/artur_kudaev/2/public/i/im6.jpg | Bin 49751 -> 0 bytes 04/artur_kudaev/2/public/i/im7.jpg | Bin 44838 -> 0 bytes 04/artur_kudaev/2/public/i/im8.jpg | Bin 52145 -> 0 bytes 04/artur_kudaev/2/public/i/im9.jpg | Bin 48973 -> 0 bytes 04/artur_kudaev/2/public/index.html | 262 +--- 04/artur_kudaev/2/public/js/main.js | 156 --- 04/artur_kudaev/2/public/js/script.js | 60 + 04/artur_kudaev/2/views/index.hbs | 18 + 04/artur_kudaev/2/views/partials/users.hbs | 8 + 23 files changed, 1492 insertions(+), 646 deletions(-) delete mode 100644 04/artur_kudaev/2/public/css/style.css create mode 100644 04/artur_kudaev/2/public/favicon.ico create mode 100644 04/artur_kudaev/2/public/form.html delete mode 100644 04/artur_kudaev/2/public/i/im1.jpg delete mode 100644 04/artur_kudaev/2/public/i/im10.jpg delete mode 100644 04/artur_kudaev/2/public/i/im11.jpg delete mode 100644 04/artur_kudaev/2/public/i/im12.jpg delete mode 100644 04/artur_kudaev/2/public/i/im2.jpg delete mode 100644 04/artur_kudaev/2/public/i/im3.jpg delete mode 100644 04/artur_kudaev/2/public/i/im4.jpg delete mode 100644 04/artur_kudaev/2/public/i/im5.jpg delete mode 100644 04/artur_kudaev/2/public/i/im6.jpg delete mode 100644 04/artur_kudaev/2/public/i/im7.jpg delete mode 100644 04/artur_kudaev/2/public/i/im8.jpg delete mode 100644 04/artur_kudaev/2/public/i/im9.jpg delete mode 100644 04/artur_kudaev/2/public/js/main.js create mode 100644 04/artur_kudaev/2/public/js/script.js create mode 100644 04/artur_kudaev/2/views/index.hbs create mode 100644 04/artur_kudaev/2/views/partials/users.hbs diff --git a/04/artur_kudaev/2/index.js b/04/artur_kudaev/2/index.js index 05f36f7..2b391f5 100644 --- a/04/artur_kudaev/2/index.js +++ b/04/artur_kudaev/2/index.js @@ -2,12 +2,35 @@ const express = require('express'); const path = require('path'); const config = require('./config.js'); const data = require('./data'); +const bodyParser = require("body-parser"); +const mongoose = require("mongoose"); +const Schema = mongoose.Schema; +const hbs = require("hbs"); const app = express(); + + +const jsonParser = bodyParser.json(); + +//Увеличиваю позволенный размер файла +app.use(bodyParser.json({limit: '50mb'})); +app.use(bodyParser.urlencoded({limit: '50mb', extended: true})); + +app.set("view engine", "hbs"); +hbs.registerPartials(__dirname + "/views/partials"); + +mongoose.connect("mongodb://localhost:27017/users", { useNewUrlParser: true }); + +const userScheme = new Schema({ + name: String, + age: Number +}); +const User = mongoose.model("User", userScheme); + var err = ''; -app.use(express.static(path.join(__dirname, '/public'))); +app.use(express.static(path.join(__dirname, '/public'), {index: false})); function error404(req, res, next) { err = `https://${req.hostname+req.url}`; @@ -20,8 +43,36 @@ app.get('/api', (req, res) => { }); app.get('/', (req, res) => { - res.sendFile('index.html' , { root : __dirname+'/public'}); + User.find({}, function (error, response) { + if(error) throw error; + res.render('index.hbs', { + arr: response + }) + }) }); + +app.get('/form', (req, res) => { + res.sendFile('form.html' , { root : __dirname+'/public'}); +}); + +app.post('/save', jsonParser, function(req, res){ + if(!req.body) return res.sendStatus(400); + const user = new User({ + name: req.body.userName, + age: req.body.age + }); + user.save().then(user=>console.log(`Save: ${user}`)) + res.sendStatus(200) +}); + +app.post('/del', jsonParser, function(req, res){ + if(!req.body) return res.sendStatus(400); + const id = req.body.id; + User.deleteOne({_id: id}).then(del => console.log(del) ) + console.log(id) + res.sendStatus(200) +}); + app.use(error404); app.use(function(req, res) { @@ -29,3 +80,4 @@ app.use(function(req, res) { }); app.listen(config.port, ()=>console.log('Start on port 3000..')); + diff --git a/04/artur_kudaev/2/package-lock.json b/04/artur_kudaev/2/package-lock.json index 67253a5..51a1480 100644 --- a/04/artur_kudaev/2/package-lock.json +++ b/04/artur_kudaev/2/package-lock.json @@ -4,6 +4,11 @@ "lockfileVersion": 1, "requires": true, "dependencies": { + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, "accepts": { "version": "1.3.7", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", @@ -13,11 +18,96 @@ "negotiator": "0.6.2" } }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + }, + "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==" + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" + }, "array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "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=", + "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==", + "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==", + "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==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "bluebird": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", + "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==" + }, "body-parser": { "version": "1.19.0", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", @@ -35,11 +125,108 @@ "type-is": "~1.6.17" } }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "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=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "bson": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.3.tgz", + "integrity": "sha512-TdiJxMVnodVS7r0BdL42y/pqC9cL2iKynVwA0Ho3qbsQYr428veL3l7BQyuqiw+Q5SqqoT0m4srSY/BlZ9AxXg==" + }, "bytes": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "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" + } + }, + "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==", + "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=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^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==" + }, + "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==" + }, + "config-chain": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz", + "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==", + "requires": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, "content-disposition": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", @@ -63,6 +250,16 @@ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" + }, + "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=" + }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -71,6 +268,48 @@ "ms": "2.0.0" } }, + "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=" + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "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==", + "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==", + "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==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, "depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", @@ -81,6 +320,17 @@ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" }, + "editorconfig": { + "version": "0.15.3", + "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.3.tgz", + "integrity": "sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g==", + "requires": { + "commander": "^2.19.0", + "lru-cache": "^4.1.5", + "semver": "^5.6.0", + "sigmund": "^1.0.1" + } + }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -101,6 +351,38 @@ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "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=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, "express": { "version": "4.17.1", "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", @@ -138,6 +420,124 @@ "vary": "~1.1.2" } }, + "express-hbs": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/express-hbs/-/express-hbs-2.3.0.tgz", + "integrity": "sha512-vhm9DXIPebBXnajFX5c33fMFe3Y+3Zd02BDn2uWiWVZ+A2VMErZYRLoVTx0fcldHM2wGLajjSO+dwubkklsOGA==", + "requires": { + "bluebird": "^3.5.3", + "handlebars": "4.5.3", + "js-beautify": "1.8.8", + "lodash": "4.17.15", + "readdirp": "2.2.1" + }, + "dependencies": { + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + } + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "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==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "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=", + "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=", + "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==", + "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==", + "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==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "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=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, "finalhandler": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", @@ -152,16 +552,93 @@ "unpipe": "~1.0.0" } }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" + }, + "foreachasync": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/foreachasync/-/foreachasync-3.0.0.tgz", + "integrity": "sha1-VQKYfchxS+M5IJfzLgBxyd7gfPY=" + }, "forwarded": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "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=" }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" + }, + "graceful-fs": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==" + }, + "handlebars": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.5.3.tgz", + "integrity": "sha512-3yPecJoJHK/4c6aZhSvxOyG4vJKDshV36VHp0iVCDVh7o9w2vwi3NSnL2MMPj3YdduqaBcu7cGbggJQM0br9xA==", + "requires": { + "neo-async": "^2.6.0", + "optimist": "^0.6.1", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4" + } + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "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=", + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hbs": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hbs/-/hbs-4.1.0.tgz", + "integrity": "sha512-YDrUBtLpwRl0H5uyCGLE2LGtGJl51VvJFBj/D+Cqyr6XMopCvwXA0ynRpd87u6aVIYCeGYZHESfZzPHbNMkOPA==", + "requires": { + "handlebars": "4.5.3", + "walk": "2.3.14" + } + }, "http-errors": { "version": "1.7.2", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", @@ -187,16 +664,179 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" + }, "ipaddr.js": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==" }, + "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=", + "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=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "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=", + "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=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "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==" + } + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "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=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "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==", + "requires": { + "isobject": "^3.0.1" + } + }, + "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==" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "js-beautify": { + "version": "1.8.8", + "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.8.8.tgz", + "integrity": "sha512-qVNq7ZZ7ZbLdzorvSlRDadS0Rh5oyItaE95v6I4wbbuSiijxn7SnnsV6dvKlcXuO2jX7lK8tn9fBulx34K/Ejg==", + "requires": { + "config-chain": "~1.1.5", + "editorconfig": "^0.15.0", + "mkdirp": "~0.5.0", + "nopt": "~4.0.1" + } + }, + "kareem": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.1.tgz", + "integrity": "sha512-l3hLhffs9zqoDe8zjmb/mAN4B8VT3L56EUvKNqLFVs9YlFA+zx7ke1DO8STAdDyYNkeSo1nKmjuvQeI12So8Xw==" + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "requires": { + "object-visit": "^1.0.0" + } + }, "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" }, + "memory-pager": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", + "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", + "optional": true + }, "merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", @@ -207,6 +847,26 @@ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "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": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", @@ -225,16 +885,199 @@ "mime-db": "1.42.0" } }, + "minimist": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", + "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=" + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "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==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + } + } + }, + "mongodb": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.4.1.tgz", + "integrity": "sha512-juqt5/Z42J4DcE7tG7UdVaTKmUC6zinF4yioPfpeOSNBieWSK6qCY+0tfGQcHLKrauWPDdMZVROHJOa8q2pWsA==", + "requires": { + "bson": "^1.1.1", + "require_optional": "^1.0.1", + "safe-buffer": "^5.1.2", + "saslprep": "^1.0.0" + } + }, + "mongoose": { + "version": "5.8.7", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.8.7.tgz", + "integrity": "sha512-PCCuTrdxpUmO86L1geXWE+9AvJRFuneIrMUT2hB/LXZ+5HIGOIfE6OSMU7cd8wFU7JRINP9V73zZ9YsmAbt+Iw==", + "requires": { + "bson": "~1.1.1", + "kareem": "2.3.1", + "mongodb": "3.4.1", + "mongoose-legacy-pluralize": "1.0.2", + "mpath": "0.6.0", + "mquery": "3.2.2", + "ms": "2.1.2", + "regexp-clone": "1.0.0", + "safe-buffer": "5.1.2", + "sift": "7.0.1", + "sliced": "1.0.1" + }, + "dependencies": { + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "mongoose-legacy-pluralize": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz", + "integrity": "sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ==" + }, + "mpath": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.6.0.tgz", + "integrity": "sha512-i75qh79MJ5Xo/sbhxrDrPSEG0H/mr1kcZXJ8dH6URU5jD/knFxCVqVC/gVSW7GIXL/9hHWlT9haLbCXWOll3qw==" + }, + "mquery": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/mquery/-/mquery-3.2.2.tgz", + "integrity": "sha512-XB52992COp0KP230I3qloVUbkLUxJIu328HBP2t2EsxSFtf4W1HPSOBWOXf1bqxK4Xbb66lfMJ+Bpfd9/yZE1Q==", + "requires": { + "bluebird": "3.5.1", + "debug": "3.1.0", + "regexp-clone": "^1.0.0", + "safe-buffer": "5.1.2", + "sliced": "1.0.1" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + } + } + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "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==" }, + "neo-async": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz", + "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==" + }, + "nopt": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", + "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "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=", + "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=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "requires": { + "isobject": "^3.0.0" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "requires": { + "isobject": "^3.0.1" + } + }, "on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", @@ -243,16 +1086,64 @@ "ee-first": "1.1.1" } }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "requires": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + } + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + }, + "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=" + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, "parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" + }, "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=" }, + "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=" + }, + "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==" + }, + "proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=" + }, "proxy-addr": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", @@ -262,6 +1153,11 @@ "ipaddr.js": "1.9.0" } }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + }, "qs": { "version": "6.7.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", @@ -283,16 +1179,110 @@ "unpipe": "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==", + "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==", + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regexp-clone": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-1.0.0.tgz", + "integrity": "sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw==" + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + }, + "require_optional": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz", + "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==", + "requires": { + "resolve-from": "^2.0.0", + "semver": "^5.1.0" + } + }, + "resolve-from": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", + "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=" + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" + }, "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=", + "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==" }, + "saslprep": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", + "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==", + "optional": true, + "requires": { + "sparse-bitfield": "^3.0.3" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, "send": { "version": "0.17.1", "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", @@ -331,16 +1321,258 @@ "send": "0.17.1" } }, + "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==", + "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=", + "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==" }, + "sift": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/sift/-/sift-7.0.1.tgz", + "integrity": "sha512-oqD7PMJ+uO6jV9EQCl0LrRw1OwsiPsiFQR5AR30heR+4Dl7jBBbDLnNvWiak20tzZlSE1H7RB30SX/1j/YYT7g==" + }, + "sigmund": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=" + }, + "sliced": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", + "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=" + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "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=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + } + } + }, + "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==", + "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=", + "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==", + "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==", + "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==", + "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==", + "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=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "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==", + "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-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" + }, + "sparse-bitfield": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", + "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=", + "optional": true, + "requires": { + "memory-pager": "^1.0.2" + } + }, + "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==", + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "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=", + "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=" }, + "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" + } + }, + "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=", + "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=", + "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==", + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, "toidentifier": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", @@ -355,11 +1587,83 @@ "mime-types": "~2.1.24" } }, + "uglify-js": { + "version": "3.7.5", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.7.5.tgz", + "integrity": "sha512-GFZ3EXRptKGvb/C1Sq6nO1iI7AGcjyqmIyOw0DrD0675e+NNbGO72xmMM2iEBdFbxaTLo70NbjM/Wy54uZIlsg==", + "optional": true, + "requires": { + "commander": "~2.20.3", + "source-map": "~0.6.1" + } + }, + "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==", + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "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=", + "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=", + "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=" + } + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, "utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", @@ -369,6 +1673,24 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "walk": { + "version": "2.3.14", + "resolved": "https://registry.npmjs.org/walk/-/walk-2.3.14.tgz", + "integrity": "sha512-5skcWAUmySj6hkBdH6B6+3ddMjVQYH5Qy9QGbPmN8kVmLteXk+yVXg+yfk1nbX30EYakahLrr8iPcCxJQSCBeg==", + "requires": { + "foreachasync": "^3.0.0" + } + }, + "wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=" + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" } } } diff --git a/04/artur_kudaev/2/package.json b/04/artur_kudaev/2/package.json index 8a86bc2..606e2cc 100644 --- a/04/artur_kudaev/2/package.json +++ b/04/artur_kudaev/2/package.json @@ -9,6 +9,10 @@ "author": "", "license": "ISC", "dependencies": { - "express": "^4.17.1" + "body-parser": "^1.19.0", + "express": "^4.17.1", + "express-hbs": "^2.3.0", + "hbs": "^4.1.0", + "mongoose": "^5.8.7" } } diff --git a/04/artur_kudaev/2/public/css/style.css b/04/artur_kudaev/2/public/css/style.css deleted file mode 100644 index ddf8f14..0000000 --- a/04/artur_kudaev/2/public/css/style.css +++ /dev/null @@ -1,230 +0,0 @@ -@import url('https://fonts.googleapis.com/css?family=Ubuntu:400,500'); -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} -html { - font-size: 16px; -} -body { - font-size: 1rem; - font-family: 'Ubuntu', sans-serif; -} -h1, h2, h3 { - font-weight: 500; -} -.img-fluid { - max-width: 100%; - width: 100%; - height: auto; -} -.red-info { - color: darkred; -} -.py-1 { - padding: 1rem 0; -} -.py-3 { - padding: 3rem 0; -} -.row-flex { - display: flex; -} - - -.app-container { - min-height: 100vh; - display: grid; - grid-template-rows: auto 1fr auto; -} -.container { - max-width: 1200px; - margin: auto; -} -.top-header { - margin-bottom: 2rem; -} - -.main-box { - display: grid; - grid-template-columns: 3fr 1fr; -} - - -.products-box { - display: grid; - grid-column-gap: 15px; -} - -.grid-box { - grid-template-columns: repeat(4, 1fr); -} -.product-box__item { - display: flex; - flex-direction: column; - margin-bottom: 30px; - border: 1px dotted #ff3adc; - padding: 8px; -} -.product-box__title { - text-align: center; - margin-bottom: 1rem; -} -.product-box__img { - margin-top: auto; - margin-bottom: 20px; -} -.product-box__meta { - display: flex; - justify-content: space-between; - align-items: center; -} -.qty__item { - width: 50px; - padding: 3px; -} -.product-box__btn { - padding: 3px; -} - -.product-box__btn { - border: 0; - padding: 4px 8px; - background: #2a6496; - color: #fff; - -} -.product-box__btn:focus{ - outline:none; -} -.product-box__btn:hover { - box-shadow: 0 0 6px rgba(33, 60, 204, 0.6); -} - - - -/* =========== top-cart -==================================== */ -.top-cart { - padding: .5rem 0; - width: 100%; - position: fixed; - top: 0; - left: 0; - background: lightgray; -} -.top-cart-info-container { - display: flex; - justify-content: space-between; -} -.show-cart { - cursor: pointer; -} -.top-cart-grid { - position: absolute; - top: 100%; - left: 0; - right: 0; - width: 100%; - padding: 1rem 0; - background: white; - z-index: 1000; - box-shadow: 0 1px 1px rgba(0,0,0,.3); - -} -.pt-40 { - padding-top: 40px; -} -.center { - text-align:center; -} - -.top-cart-grid-title { - display: grid; - grid-template-columns: 3fr 1fr 1fr 1fr 1fr; - padding-bottom: 0.5rem; - margin-bottom: .5rem; - -} -.top-cart-grid-body { - display: grid; - grid-template-columns: 3fr 1fr 1fr 1fr 1fr; - padding: .2rem 0; - border-bottom: 1px dotted black; -} -.top-cart-grid-body:last-of-type { - -} -.btn-check-box { - padding: 1rem 0; -} -.btn-check { - padding: 5px 12px; - background: darkorange; - color: white; - text-transform: uppercase; - border: 0; - border-radius: 4px; - -} -.btn-check:focus { - outline:none; -} -.btn-check:hover { - box-shadow: 0 0 6px rgba(255, 140, 0, 0.6); -} - - -/* ================== filter-box */ -.filter-box { - padding: 1rem; - background: lightgray; - margin-bottom: 1rem; - display: flex; -} -.filter-label { - margin-right: 1rem; -} -.select-control { - background: none; - border: 1px solid navy; - margin-right: 2rem; -} - -.footer-row { - display: flex; - justify-content: space-around; -} - -.modal-wrap { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - background: rgba(0,0,0,.5); - display: none; -} - -.modal { - width: 300px; - padding: 20px; - background: linear-gradient(to bottom, #eee, #777); - margin: auto; -} - -.modal input { - width: 100%; - height: 32px; - padding: 0 10px; -} - -.error { - font-size: 14px; - color: red; -} - -[class*="wrap"] { - margin-bottom: 20px; -} \ No newline at end of file diff --git a/04/artur_kudaev/2/public/favicon.ico b/04/artur_kudaev/2/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..3925be4f9ceb5e872ed489f7260c9714d979ee36 GIT binary patch literal 1150 zcmb8uT}V@57zgl2wvtV^<~~lk54X9RuCN_AX^A-n3(-nTtZ*aUl!?RIY%WQ%lJFuU zh`zllD69*EnM5JtXX347AW;NScXi=aS1JGAcj93eUFbW0d*Aas&;M{P&LPTRKb?-) zzk@oJL;?{NF|5QY8+Ep&mOhJ!OJ7Q*(#s?nY!RRJ@_S@vW_p=b2HV6lUbR}CWRS%? z@hk9{;n)9TGR?zenoI8`H5v`L;eY~jF~UL*;bQep)a+M5tJNSo+X}tD4F z*VsOt%J7^{r%M?=uf(s>W_-G3#^Pnd*L!XxI~A~*=b$$MCL@DCSi+l#3YOfX$kE49-~>dmU!LbVK@emO2X|q)n^5YrK=Ha6 z$8T5QOTPl|qdVC1_9D;+rywZPgU!s_>-Y4Q&$ z$AR4H4(#oC0QYlXPhe1<=UKPgonn1d5BZ~2p8-5Cfc&R` zopIlomvbJE2VBAZQ@HwL1o7|BP!v4|slGB*=e^o<0eIVn(6h9TzK?6zcWp}U6&DvL z8E{?WLuelxOr1At>3i3!1;k!Xr}vZM##&_?dpEX)XGH!DN|GcpV+^*4&!)1o3ZHr) vL!}~$CWyjuq9g3PPK1f#J|bT4V(0c4QK*~s4-iG7tRET32q$J07b5=vGySg| literal 0 HcmV?d00001 diff --git a/04/artur_kudaev/2/public/form.html b/04/artur_kudaev/2/public/form.html new file mode 100644 index 0000000..d8b40a6 --- /dev/null +++ b/04/artur_kudaev/2/public/form.html @@ -0,0 +1,20 @@ + + + + Форма + + + + + + Главная +
+
+ + + +
+
    + + + diff --git a/04/artur_kudaev/2/public/i/im1.jpg b/04/artur_kudaev/2/public/i/im1.jpg deleted file mode 100644 index 6410e6f672e5e68eb91c2568ae9cdd6d14ffc4fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34307 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�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 Tf{`IXB-VgE27o+0=mY=Rv1a%P diff --git a/04/artur_kudaev/2/public/i/im10.jpg b/04/artur_kudaev/2/public/i/im10.jpg deleted file mode 100644 index 5514d1bbb69a31ba896524b3f9df65f4e78c16bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38714 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

    _BFC2&qGt3T`$nG`7U7nT~#U#td zhltCr&1*`EMLWFnLP>>iNlZx!$0FBIOjFTg<#Hc*GH06@ezt8FoDu@IcHFv>?`zT( zFm-_MW_Z*veHkX6}(TB(OO#ArKGzrpTvYO%XtnZkn-WqH%P06p4JKDWF z3#&<_)t>brj+a%9t;PMeOcC!xrS(D?ZrBhk<*r=m63O9=>EuLTN0^j&yiR2z@(N%N z*w-wZj6bnmgE1|{&TBR9F@UU2M1sK9&r&!>lmYkMF-2Y0qTE>JOFsg2DZd@jgzb zrF#QO^UZ!r!lNq8V#t+80uh<*G$IzKl`|;;B&J44iAJm}bY;a6rM|BC^kiNxW;LSh zH=to;#sk+D1uXvIU=d zKHjJntB<{_R%rjHz^-F=WpHMz$j)N`T6S+Kt5xt9)4sO;0zE_$jKC(Cc%HJ=D}Y$x za-@^(K^EU8m(#6DC5_%%t{5Sz9VoaIGp~?zl-*N9z4r6R-XleVwr@XdO=nTR<-v)x zMp`)F%_<86zl7#~AupWEeaiQ=#tFG}w<^L)=_skufF`mwok!j(1LHJ7QmpeKK~#Q6 zHgWP@@wl#XXJd8hJaZB*=?>|&=yBt=#_gCZ2N`*3H<{PfTJr3GFv4Oim)km`$nk#G z^V|8o^-iT51IJ@}yG(59tjf5Ch|jV87q|u2i!Zo3BX=47zI@7%_?_*#Vc89T18|vN zQu-ekQ*2B3SHSRm{`Y#uuJY}uxJ^hPgEND zzS2Z~eM)xXd-t=V*V=o?gejFM_uYdD@A>H&IH9&i$~U#J!x(`?eRnwsea6X9X8c0n zn7Be;xb`QPx*8+6^YTgXKQ_EG8ADo!Y9=A1*5_>%r~2SNgbav#dN-{fuIwWP@s*-Ujf0q&#nzh9z^lci{5WAuo$zXZv63Z6vjmRCAP0mHKiM!3rw zZ0(o5B5I2|mK49kCD}z8fl2e}LQh+^3>=cs51zbvYc|?~${Y8C zKKSwE-UM@7a6?lpCVt5ZKS2!_KQB%M8)C%(21#7#iAT9~E00Fe>%t~Thc}I`L+E;! z5}`Ao5<@GQ_upb|G>cWSKt#_r4B7HKplGLIH9z?l0@t|hq(&!K@5N!ybT}}}8 z&ygHzP;J`FsKmPLL%fxg$cWWnt0F?W=Y7Q2qDoY z_#b~A;(y|);My!H3qmo%DQa~m!zp^cG3C>YhmPD+yk}=4Qs?Omdj<6GLdqzk_Dxjv zOJT`;lk4oHQ+sP^4cg6@6)dijP`dE*+e_5XKC7qex85-kTLVZAC)0jd|FctAFOoSj`2qAJ;f|x7|~Pc#s`LZ zg4ISPAN-=)cPOvBxz<=su%(-51$y!V^6#KTe0;F}EE5(B_4H__iDYrgmg8%o;HxVb zMSJZl0GPdG=4UHZB-gd5u~rbq;)@}zNItAex?cdKjH;OGQK{4Zf^X_f3+4VoxX(EX z?er!RSnE-r-0n_-ljc`SxYNau;^YI(dFy!V;IcSAPjc6tqB_~8;lE$14Zb)AQGI2y zWD5kGKJ$kkuh4xXv=evWeDGi%L-N8MsKg#r>MHW_j79Ih7Fb{)_XL9IUTnkEYk)FqWJ@8c0aYeGHL<9!*vk>~ErZT(!} zt}-*)s&JQ^KG8#pd+%bhvea?iVdRygnmlgse55>yI`#uiQ;xgCzf^5 z;WmN1&PZPC3)W%V)Da~bZJSqU(io)R8Igj~0?71zfx@^?i)nhnN+OTun8P%A)Dlu-T}-hMPszO8Y%5e}^Uu z=}3{^9?IoYXvQsTC=cy zy8O}Mr>a_6Da;i3`GG%O^~_@JsKm55SFLkTw$*nrApJU-&$aT?!)lk6K9kl!+Rl9a zQpcB6d{eWx1Ste(E^HhIS*CbGTYu+%>O6`Z@*xLKGKeIxc!VB#9PAc$=a12>9~vAY zf?AWpMsg;2DFEWedisWMwr2ZQ*uT#^l{AHBBFhdBOrKL7JwrS+GN`|clAhqxPSRs< z7^l8yM}r&rgV>Z3C#~aiW&y`+u0{XC4*KyP<8#Uvq?Oga6dDr!^D^ifW$$Du$Z!II zR#X8G$E*S_6)blgzhEtR%{91M$_XV(;ZUhHvIm)pHtF^%WM|AGm?}08(p!azh1_Sr zUvY?MuzY-nzNWTtJk{&s#;!HNdx;6lxW}Cj&gpNzhVAsR7dXc58uw_AQYXE!5Yh%u z9~Y|@)N2icIu4H}MtIk<{jgamc!rK5MT~!!>J1#8@C^wIc zCKP4X;!+>Q-TPZY{zbSVM{V!w-plAce@r>H*+1xgNWHZ81^g)qp@pFiCI@i2`vh)~4Z_H#F#q*2;){Y5{JVD5qP-|!PEBpJ-; zOa>KH1IGwQsi^i`{y9DZS!r))MwOlU97b`X%Hzr?_DQFFmU5<&`XVZcjy|XezXgOr z0@1{>rW|&{j+8yvbxt1?4jC>}>KJK44;^uxtd4p_a6HeXqkpGLe@U3Dh%r8ham5j3 zq~yExY^G?OZaSMCA;8g`;>eTtrgY_iZT)55ZX?Y*Ght-Jp^ zNfD7u$AzR<5WKp5k<2oo^j8c8*69KTUR=8RlT`UD0PmV~sp#5NeIQoZ>hyZ)@oR4t zMTbUhQl;@EKwa}4Ig#3IuTOBh@U`%HaZ#_f2^Ls58A{;TJ zHw<)(BsZ|NzQdA3o@vz_fjfc5Px=>~;J0mOT4`{3u0%9_zum8&!uwfddp&Q#0!1LX zihx`s^)S8NrG9Z&!-qXy%>>-Ma_=LPA^Y^ol&v_UTBY;A0kECI%6Qetmp3duq8x4y z**U(Prg48-guJ!E`*SRnetyZT&Ir)-)0~I4XW+ zCKbh_4-A|QESzsb?NF$$X38A!A<+M54$ctMfJ@b0M)(R~W%l`6BtN*dBec_-(noAU zB>>q3+G=&Koe{oQ*O<#JOnZ3JK)ZQRU3Xa4Ve<3;EK*4VWh=`OaCUOXUuNHig2(|t zLDHK=5Se%Z(M8N8`S=j~EM3s46)86D*889bFHXmlcdU_~t_g80=s7&WaQ#{IhRO?n-Ri%31RC8gbB%}K5n`9_{v9$d@nc`9Xx^(?9QDTl@bc`lrJ|6q+w^;2Q zW`a?O)CH2KGG&`YbMjr1MHhVi0EK{^bw4cOFP|?mea}-c8 zbNQOInRIX>VrZVZ3yldR$AR&mg8atl=-{?;?-EM0yW@VE3GK7 z*&~L8)&*tVx1g+OjgR0z@S?t}rJRMGirE8?Kaem-6CaCY=X6HFePo=~A1jk2MJZeH z#C%@JyD4dA)4{GH2Ldx|jXBF78#1(z=zjR$_}NIYG!+>G&bVduVkkej0+VIbR7p?# zp}iIM%|1;s#VId44P%3&@0#qg$^#UbL%hZt#T1A^KY)+NF#F(0jeX4LOm9%j4UJ0W zw4q&vnJzjMcue;%MWfxVjkFL(|X5AL4EO#Z0$@AzlVZtPp z08uqxLgXJHD!x;meTSXP=c}F4>|V*rh9?V03}sctc27NmhomDyCkW>c$IE+a+3)Fo z$l%Aty#l;v%rm>C53GeKEF1q>o1m=0g{_DBQrqpUFHP*}xxyl`v+Kckb~*CLqb7Yy zFP__;2F#!Gz@R)-%U>d}_QP4794eN4gwRCp!-u2axtO#%5x?ajxa;2SI;k@ogoKGV z(GYax1hiYh8Nb{bi&&UZMA@M8kMY7%;&RV0iK8;gd#a>5vBsW+CC8==Y~DyMeq?fFPscVP$O`2MCGWm*cy`_$8PMid_j7v4_zUzR>`WV2Kj&ps9g{-}jL=uOv?N43u zfcdE!3XyNI=corOAeu9IPFB`&MPmkXivl$dk?s_VGUWMNG8mCY3A-jb{`EGH$I zOtS8jyB7;MBxwEZahwVXVuiqprJlhA!L5vx39E@-9kt2|>0Hq|N{LXorZg!*;L?N4TL%$7?r4H&m6jO;)(8Wl|vZIN4n%oNt%Kl3}H~VW- zcB56^ZTbjR zNU`@^K)ijD^#J*}QX^8jXxs((vPem8{#W%Ix6$kUq`cM+3YyL1qy0K&(qkyK4Y*-b z4c&wxTaF78D7ZiWv5VnW)ldOeES?Dg2tBx!o6(|+>TP*3f+i2kX}nOwaWxmXrsevn zKiL>@rP(uFA_j71$GPI}ODwZfO#h)JvyAWjLg8V#^KXHx1bS+Z1jwsMipFJQOV|~j zd>}LX_{j*QXcJly^oIS`QOyzdWeeMCJYLkG^3bBHhIt~^XNt(@8Y!i!L7UjzGG|xE zhWL30EC%mT*TPdZY|X*_EQ4PdmX8{r0v;6tK-KGLD!xT*+H}qRYOdNks@-EzV^B7@ z!`3L69k_bqdjx8y(?92IbMv>Fuoo$*(x2huT!5nkg@8zHT^G=lgtM8vE-+N z@8P`VaYMpJjlNCkaknEP(D~jD3bjLfeSM1nR&S}q?nj%}h!oim-2cw3j9H{p@Nhkb zZ))$8$~!rP%)1??+Iwx(mQ5nYdYijm*c9E!oIc%zR$hZeUjYiGVnVwiH?6T#Wi4tmoB|Bsq8(uPQyIzQ@20yrc;fTgI6iSy6G~R?vuilN%n{`kr|HnO>2Tp>a>~Wcuii@!*E&6RBE#2NYSJ9&n8PX) z)JEPT^FfAI5c<@o>eI=7jj2XvS}Twd)n@jtdJ|Q7FK>6RO-p3N{CZ(3HNB*B88|%? zTAFKKaoZiq5=E^;zO=OeaJyZkKPMy2riM$bl6?*B1@rl3i)$cqPi5v97x?)$_Kcvz z#HUSM-jNP#o-7T%Uy(_#IQh$T_QsQ3=qq|5c1ZkY$BV;LOLoRw`u_NPiITr3uU5dcOPzv;QkwhX*UtC)weiS2dk8(H=u+xJXpTg2GWsWEBQxH_iC)g@G3E0z2Wdm2XJY~Ru& zZxd)zdA}=+X6~t4#50Oz`S=EMLClTwpE(t*KS6+`)4e$*_RL+pJcZMfvK;1SX=Y)n z&YlfWo~**AFGjJ3S;>k4D#LM!Tt6WGfzVCGF&rO`?a^;Crt0oRG91++JMB{~1+iN3 zFflymmB4&?gv7L?Gq>Ws`A&qamgBSrTO_*sQ3|? zfjl|ClhmC;Wl_PmsY*9^zRmoaNwUrlrcnDTb4mI+OKRl5q-wbxuwW~aN~{d+(eP~_U~=#MEnL8rytfp;N<~)B;@U6H&Ner;@GBdLT1=l5 zCuIQM)JA1htQMvoX|(6IZp-v->$f^QIu0>A8S&wu`e-X`M+I2{??VR}OQ7eXtj#!+ zHZW>R)nlgABdPBR=_lc|s&1pRP3Uk3;~}$XAZZfGg(~%xr<-A{HHT&Da^GdqBTwyq zDgPtLE7C7m*igTILumSgI6?|IsS5O{%M%i>Z>bt^gD;4SI7@J3` zHunXwjEqJ0eWWhq^`c25r@dnk$dI_tp+l46q++@ZG6)Z^wh@W(mH9%vx@g$*_QnRe z$qRrNhX6I^e7lx}zc36n>@#2cdrH$WCqA~J#Zsb!9{UN1$wjgMER|F1?JLMKULRp7T-1y#Uw9mE72!OFb_pDi8KJZI ztb;8a;MwN9>B?WdYJAUIT$jTBlQ^wB)`w(*HhH#J5J&9g=fj_$1z{Yk0(|;M@)>Mv z8Mj^w`As7q0=mWUD2;BokGx7O`1kRS^bM-R3n%W^r+181_uT;Ol zTv9cLi}V;eX7oU5edLimatcZK7hR=^szgY81KIqJ3JL1BOer50`PIQ}87|AuNqEVR zZRvr}Of1RTBSk8>Xv2(EQ~sPP`GR7tOD)s)q0*vmrXrUvcIwgjWv?ZywM zFP063>O7F0{bh1Y<*S^Z`o#w=I{eF+FesZqkXkNet*+xIFlp6xYN$;a86!iZ`ZJA` z?R0|RbgHM8&5*m;H?D(XcZJf*yiGL{lM7Ys$uc|HLq0LFtn2t!aZ5Db_c75}fQp~R z(Zriz6@Fc|3B6w&^V*W6JRLNRKZ<}@{&9y|f~g8dsPUJ~^q*m=HXV#7d{Z4LRa+?C zZR|KpZ2^-;zvQW&n7SH}mM*JE&6t~YCX*~=)4gwh1;R|hBQ;~uR(2259PR^1CNN}s zLf`DOz4ja3?_{haLu*x#D{Xqb8`SMi_q2a;szSPff0<#m+}$;-pT|3dG=gg@#*K2* z@#OW1!XmRrZI}p|2I9PT+5!dmI2^fJ2oI`@&177`K@W^HCJ28RSh+bMqGpXM#4mW#$`oKJI(V}0{&~I`heA`aM*85r#O{GU?S?cHzYw5-0#!XU zC0}yP)!65grQ8<)?ag0{@^x$?2XZ1rzO!~RQ0Kclp>XPl|+fPmo^x6j!>9bTNUk5xhwk=;BH>%)&55%xir8dY$r z#%%PL7TiLUKd0llkW;{+E~4jXC~2OLFxl|%FtaRK-!4KTRT+*K0?fvdn5t#59Zj`r zcdlOF#0+8yXi5KrOrr0QZh_x;=c(4r9Ye)P`w`3-zI7IFp)*T{paEWj*Ysy|gab47-|BRd z2e9Cg9Sa_BrEfud>zcE+)4+=e>5-%*3_{V#RYz{Q`=EU->yE7!5*R~s*#O!&Cc=$P zw*Nsg>OFDW?%kRSDrroitEvZvYFk-p(@kwdIu~owH+Idr+)QEp-BFsrhD{S|(IWkk zF9HT5SvUBMUqcja{;b=%wk6Th_mti=v*>BO*90}}srj6qpVoO7dUc4NmDQJw2s$vY zCfn)J=Zp)GQux_rZE%2<1T23)y#i8ezR(S`k9pX#&l^kxk4H3GRK|G<`vXV>$5j4-3QOK-|MbPBS|f2mEDRpo5%X+ ztNuDMM!J&>_WV{owFjOtCKq&l6ry4y!CmzjZNZKU@ryp;hKc9+^$^=+koN(z7c5p7 zC30Yr_!E3?Aw#}$$XjkN4-Hw&mG>+bIlSE6(%O=|+$iSQ>HRm1NY_iy1-m_hS@ZGY z@}u;v90bWf5TVmGZEn7H3oE+|&NFg@Dmc7Z;Fe}lrFDn?GDK|S#vLin@Q+0UxZJYo ziFd8}yGZVlg{C%1UI}R>wTXWP^0B0qx=~kSsZk%=_4)VnD6a|SUXkbVP?~lfCLh{E z)3fVcs}Glh@4arWm+G&lm0_fTN?+1_o~>I|49y=9pPcj8T11@p!B%{n+Oo>5vpS<8 zW0;&@J?j4@8832H?hjLZGwQgpqrek=et_oc$**)Pi1+!YX2|M zO=qE>xU)oQNFw@Cd|Rh|Cks{Y^z3$e}pguj0G@t%dA zb785DqnK;IJUqc|dY^ReuPgt@>Gw|a!!@ySpXgbC!>E(ptE-!KXFvOhscQ{WqnbTV zZ;x(;AC@w^VulO$I+KgA^LAK)<%VRhBS!bWtr-aNU42tdZL*2e=9uOSkh=?O!>Gdn zRY+iO1AbZ~CBwjxJto*Z5g->a|A1TEJL#t4J7{-d!VY7E^oKklafMxE8B&u#y`%L_ zLhZ2id$2F^%&;aY6chit90ouL;Uk9ezRq9sUCyb}6@k#H@z%)BJW7zAI5Q_-ihXsN{b*YZKwQpKMehMrl&z6_9`GnGrH7K z+}szI4{9ejl{4RMQdejUA?iS)-chV?XXfuLA*q!iMJjK5bgQKuXdV~)B)WC)m)%Z5 z<@7<;Q0Pr;jH0DSc7s^>nz7vJkLa~!Yk9rgq)`}9JRUPfKqp~_VvL3oOm`@1BaEFL z(fK7+;4WWdst8S3%OdZ6AWw)$dKPs;zemdV99_3v`%f#5S|qCq-;`Im*(pEaO;t;b zhbKYX>4g2XkPB?b>#jZ5#A?Gf`>6fCP_~vDtg+uR*wNEwS@5Y%&##N3{Mui(|G5^+ zvzu*s5JBHHZ`9gsR@5=4s&DL^aEVn6ruS5^YEh)4!NQlz(SmwT2lDK8l8_F6zFiu5 zel~BF=1<-+RVRFmv2||7m8Dn`ChsU<(b35an*bWwl!WeaAK^sUQ!lj1Dk_R>>mOv{ zCN#g7BA(j(7FZie&+JvrEp?R>sHaH*5prJ?0*kBgo9o@*vog!O&pJOo=LxX?(ym?p z%WG4SicVMfwQ0Uh?dbb^c;AoE>h1?7)fSoFyakBGAKPi~^vS!VhF`dWEfdDlBvj4J zs?mPHI*p4#s1a3bcW>3)?~W+Os(HU&p^H@nea`0hAHCYN?&7k)W?y%voRv|wM2J_! zKc>A+a?QG}FX*ICW=i~OMasHPbw{TZX=oI(Jqq;wVYPMxq#04K2V>-}JbUCAbX#07 zw2x1^M4|yQ1`c4P17y>IzItQyPNxhjx>Q-~AP%&Tq=0=g`h)A)%~TanbugZp1ra$< z1=}4p!Ib!>$)h52(%zr(!Fbx{Kt;a)e zBOehL3c!1m+6{fav|x^2kISQ`fX-`q`oIe(vV7rj zz4|6GxnzQ#Te!jI{5!b<#eQ(s|7@C}|85m!neFQ_6XX`-`w;k^xM^b3^cpQ&;q% zL9EZo??lh5*ta_K{_#s|&R1tbY}57uNl4t7Gt*8QG-C|Z6BQ_+Y2~u8a;W-w6W8hS zy{#-g8+~mDiGG?oQmAlLfIyL z$k0zTL1F+#@qFzzvfH1lHvrN7>GdUHseMlGFJZK8otq*b?OBVR`>#GKW{@m!G|qEA~vkMRYnHL~r=g56=Y1NF&40zm6$f@=}nL<;bZIFsIGg zkZd(T-|d~T=<0d=2{n4rYbN-YSP;tQ9yL7iWBOT&Bh6QDd^jS z)Vpq|>qp!I>JY$P>N-vfn((Dzr+ZZ#-%5+LDq;f}O~UPMyg0xxsW;sPzo|+Y6eK6h z*?DR@V4=2?!XY$4(pGkFc8_yZFSfCvi>drQecYlVw$$DrQm>*oqvTih=aD^$t29B% z(VgD9t;PM-^vO-m6Sc{r!5(;PZTa%;(rwZvVFvn6bzyNu(^C&}>de!uyp=(TD{hRS z`r-)hV$!h3S3^{(`IWLIG>A|adP5Vpx>Ff<*+_pUcluwZTg46xG zY}P^-hic%+qqp-;(}--?^T@KWrs0fSo;~?%4wffKnil~^k2JlhCv=^;6JH9I4c88X zH2)~<+#({wd&rXD(XH=an!b{(fcSL>lt@COl6lt|xB>clSOjA`^^Z9Y502nHWy7uO zcbiq73H0DhdB^*ZPa=5Pb%%8>(C~>}$*h#V80 zo{m1HpgKp_>4<=T@bPQJRrb~ImRgqaC^X8k?TISc*TDn2#z^HVsYHWk#^ zS5@uW_obcutEXZqljfwlUB~E|0WKA)Z8Yp0;o%}swYGav&oW-dw1T`oE0ywX>GvL4 zNQw6U1A{<(znS`@QPN01>^19jI)#%OkHO`&xZGQ1z13@v#AZVN_swCnwALEVE+J!?IRE5qgq~(jV!JFBg}f_w&RNVXQMY2%369Q zQb8;U;C9IFb*1Whma%_R%;~Y*nlRn`v)$#iBuBoa61B!YnB$^2EF3l(qzFn~g#}N`H>(!ICmRfe&VHcI-Vht)=wz+Hx~>I?o8kH>UZo zx=PmjF#Y2zJaCM^L}QY1_w^@UpB5z#1_o@ua23ABXk?C};sVW5sq=0D>8Du~l~yM{ zc0Qhf{q-}Od(Pbk9`7zOOV@5 z@NXujNU7smY$Q>rjZ_ce1EderOs)eup{S^N1R(U`hd%u4s3ZT?*{H4GvuIEb90J9C z$_tmU|0O41q zdaws_+9vFTAD}M<6kw?27ax5rB={$+tazy+M)KiF>HO%E1Q&R!FjLb;K_`LIKIhj{ z+0F1XsyaQB~?M`Bh>cPbU-cSuB;13M;w#X6$>0{J^l1*Er%&a2zlEd1MU~Y6>jI1 zk}wxE;P62I05R39cx#y%S#^FQYt(k#y|n0-I1ytJjCy)$>z<7HN%=C*jQ0y3`>>t4 zF=)w_BTZcw_>{5-1!P11mIFt%_#rPRm-m%j!pkMwXz%K2UZTD!Y}0NkbAl+$-!VZ_ zdU(oB)Q{VzKH5yAquFO3IbP&8{5i0V=X#%Z?5oU`w`8NXt;=np!&RCVG}Ti=q=Vzc z5lcnMbR>-9SbDVN*VFxf>~3kYEJ^)EacaMIQQGvoI*z*evu-vyTDH1toifc8Oth5{ z#QrF9@G`JvWg)UaBhc!eH7~B?D7VLD%-mp36I^%%&=sb!+)O5CuAq*d;Y%F(rv1ze zuF*&oxx*{N2P|qbi~IQ*mN{mjl2VIb_prX}wN%*XHsm`WJU8xhsh$;L>@7{-aD&7D;T8fk`U~zz{4DN2 ztzLdId=}r+&tl%TT7`-Tqk4 zloM)8+QwLKw6!#>6#_DlN^{uxf#e_Q+f9a4#5_`6gR1H!@R{Qvl5m4LBzvE>qIFhE zLj83_ayVsTl8#s&GBexs)mH5fQKOn0oUqPF1UjCj=^%m+ai4r>V=7=yHaS6E1x!mI zITA0Ki1i)yZAp16HAE6Y8l$#I>K!6QJgD!eaEl5upk+?p+t=z=x87h9j(j?grbIa4 zhSqjnE-b034TfpK*-Fc4mu*auK~N^AjO7U(G5|0Jao<>v)1DcBh0yusSyQt{XraGZ z)}}c+rcWxk=P14S^wz?|^&!t_#B$jtXWNr+M=~@)zjpZqAE+?r{{Ve?tk|3+YGKN% z*Jql(Ay}=uO1)a55!E!WELB9}H2?x4QSLkQ>8IeVkos}`N1)T>b!_xE_A;%dylnf; z-kNU|OLXuETo4Qt>x>^<^=n&4rFf@u?7;P$ic?8^8xHik!Xz-U@YQ$=o=@qlzf|9r zdn3_HLk+R922TP>i?KP+ng0OeP4w?ghMimN(94y}fF1VYl<_}?PE}7TKp-DnYi2-2 z7&hy>8=d88sQ~Fr85<|QbIJVaDcdaH13DS#tnt!7qs5pnP$vqj>dbuxt|+;1R&tDa zVjk_@wr!;Zl$3LP#cQeYs#k_7j>A7f{rjD5>9mxr%g?ED{2qDSyWZ=%YJ@ZhWF0Qa z5c(J?$5u~e2fwL2Yi2M}T$wpDH^MD7mX~bOte!b)$x=BlQn^tf@f(QH4!|(}e0plU z@;RoF*yFZIu)So~y6OV8P_sokbWPIF(E`YGA0xZ7e-Y%J4j9uPntU2J!^#PvwaI?D z&GQw-mX25H04z|h6c2OiPp+)V@+TZ=eoZQZqMD|Vm28pUK8HhNX!%W2kkq3)a;&%` z*PRIm|JL0r`qFiTaxz~h)D0$$rN{!QQo8F5Xfg|UjK}>t?wDK?-fgzZ*x4pdqa!E` z+#l0K50EO_sXlxqFk*_q8_)na)I}3$a*i5d0>s!oIA6xPiBbht6{(z}D8OKW{YV_0 zMG@FOs-~6hA{L81Ck)3Yx7$I;47D|6QO+V&$4Y{Sr#t15L=uD?VU4k$Q6AVjo)>DFP@~Hh{(|jlxWPVaOu`D)IQ_BpmKiN6lgB8Un}XXH53T- zwAF1*xFD-snWCzvXdj)q)kc>U4nR{DMl&9{C+&4nuzC~ zC`wI9U-#meS9;l|hvDqE&CN=yXRJzFgf(z6mYv!eLdi_>Lyn15NI^r4;2)&wF~=)Y zPoFCP0Ngpt6UhlE?Q4d=;H$i&S~T06mtwU|6xLdo6?W&DQ=&SgSk-B2S%dVnsu@-C zQ2LS1qaMtVZA)c*osmuxrybTU-)k%AO}l&7CBn&cjjHHptV+e6X`_Cb)n<)+Sf@f+ zyso`K_9Iqds+=)zQrwYCCY}<>v8NW$%R})ZvYPd4xJ`Y!B)2GHptV)fO05+=R8o^P zPZW%(i_${{esRFGMlif_vB9zPEL8*e*R1?Ov3HI1&S@=?&# zqZnAJD%~jLNQ4p3N&PXZc{I?Psx)x=hDbjmF5~!D@dsy#s_pR_`XGfGF25QskS-0DLuTBeJAwoV z<;Rg+Sv>V{N{1&X!ztS*)Eu2v-{F=vG*PFiMydtJslyTnKH1R4Tj1vS9Ox#MQ9wD2 z4oKu2_Z;f-Os3?E5mmagC)F9r3V9X8Fh7Sw!O6ag7a5W>nID32 zf!yawop=d$R;Rkw+U4q{nd4G;=ga(#t2s0=wguLDJn@g$Wg1ArztyqiEvVtud*?*qBR-Z{+o_jWblLDUa zcir`JE6XcN;IhRU7J1}u5p%#9Khs*YqKvss$Zoh;quG(I6EL2s)pcbRUKQ8K`Xqo?XQntH>;W80!N&mD$+^sGvi7Bcr|R+PC` z(_41JF?G7vbhbFvlgh?ia17T@zdbe3dQnHC4mP z-DV8+g~(i=bL+0UBCJ0~)2xOWJlz?=9kO(pNryyZtLBs;1Sn!a;|JeSY?KCDbyT-M zngv|1a2puTnuNZ{>nhCmK>$51kU;A8^w2KHI-s3C+}t~+?6j8ZUbq$4s-vj%DD@wG zJ{a2*lTjF(M%VaNXR;Nqy5f3~<^{Vi;A+}QbY$ezN=z?(-gc`DB_m~02MRmr)GwAH zD>8k@@e01|%^VHk$IdWxz>KqU9$%Y3(CGc{TU+NR>mw$^p2K!HVr=g{| zOF>l>*NdetA0|AnTfjJEmM1FfjN!GFsNWblC35)t8+evEwFdpa*`041t0nrfk8S5h=R;l)lEiOr{(t_J7T}k)h zf1x_tw+-)c(SOqkHRkD8O&xSFBoP)d(x6EUZ6PvACy1@ofM*=@sm&~sjAf1W_xP?2Srq1;*>Q=_T?v)|BZ69Lg~LJwy*y!;9B8sl zePreOxaNjK6uygi`T39AeO1xZ9+Z1@FT5L1yq#E(W^;L!Zt0|gBa)U zqQ?as+jsEaEAB>YpH~LwkCeEQf7}xts?|QvxiykUr>l~L%>?n!H1LTi-6fTyN!Y1q z%AAk3Jw}7-NjC5mi8oQy?DC71wOT@f><$Ye8{AKkbx&Ht!{08p# z$D~VT^1j(sT{X4CRy9>rwDk{9a)>NW<%gBJ!t}@&+d0YBo-a_9)cZ2B`eNg2<^KTQ zS+kFfyYJ!kzi84>(Z@Ba?Ie-Me!5qzi%@4=!vL9ocaY$wa&T}M0(Gklu*n59_%L#5 z@9T;f*ZIv8P{dU8F5M3*t1U@sXmOm zc7J9|ohMyq!z=PuLcV3AkdmD~-7a`PgRD(Qq+^=3+2}OhvpDf1BfKu~*>&QNc-p0; z@Y|V@NmKdA*PG4h*)hLq=`ebZJe`N^+rkHoM^8G;0P1Dy!($%WsHEfBb;dI2XQa48 zT%*A!G2@(If!`mEGjeDL8Z8Qx0or1EpFW>fe){f2zQI*hDHCPby8i$Uc>`6X-H(bY z%~m8(oSgDKM>t#3>7(RbP&(yW-GRZuWglU|Cp>9#n8?D3(A+Q383?C{lC0Rqa5>WW zHk+t{?$*|)qmGbBa)9+HBe~ZmOF-!8riPOfxe>9(P7joRHQq?@7^I+}p|=U)Z#3P& zBe3;47D709B#M>l1cNeUs0Yw?&>eOTiDiPGN#~oOOXW~GKYn#Dvy@rY0?jPH+`*DZ z$PuXOW9U0*_Sh|@*!i@+3Q1j273**l5MMBWAJ@&Rkj9earJGdc#0^l(V%qeAI8`H5 z9q7k@UA5lL159_W7xlKy) zkUInGpa#O!)PYArj@l{#g=uL!WOvteMGF4_6l`@XZi8^!=*@f56Ai}R4nAgrP(-nh zbJ&l@qj4RW@?5sA=DXc5_Uhl2qq|am%iLDVhA>G@BEnH8Y>|SFia7M-YdEmJ*Jwy_UIRW(Y65}vX|10onyx^T6H8SR^^_es zUa%NvzN_TJjpE&IG+D)$BF^B{Wx0Izh%Ya3z1`?8b@2Y)x!2N1P)t!xRXa&a&L@^h zR06?zR35HM^9zt`fn<2t=vg|M`HSr#U+h4m8QQwK+s=mX=twh01h`D zDlN9_Sz7?3nir^Ac&Bp|H8gXD9S&oD2smMmp`wO7u+3F*Vw~{g!^>)GfG*v#S5w1F zPfKzWM@>glM6~r3!D<9?#Uv;^NZ$prfQ+uH#~wK6x^b69xjeJes&SM%f3ONFTa=r2 z2fSK8WzlXcb!1f67f2OM@x)xOj}SO-Dz`~FkWfVPS*qQnnxa_QC5oz!WnVZr%f`d0IVwt=2I(9pCltAUKj1A- z)r40UO*qf<;GVm1P<%kzGHhC!x=ENsUej=PWv!t^{`D*a436=;CkWZ-Z!+VZS<|Ur z*{c((lw}u_9J=PdMaXGx7agl}pt#3PbF)WHHPvVyNqQEkBMy>^cLNWDj-+n-oib6h zr)&J6Yi-3h4q8ufJ(~M+qTA8#O^6kcPe?NmQz2-NWKJ+H;K~i5|h>g9y!6| zRy5kVLv&vre`2n$Lm4>E9^}=0QKoI*i9Zu97Ha7%v?fcQ>Yh85Jx$tQ0Z|paDH<0Y zaLE$%lIlFleywie)JACYIrOr}BXqKEo2~AaYc~F-v)*Eb71?PkA*nM48N$Tgey};h zoiWBT@F#TO?J;9w*>!JXxkdv?M#Q{mSY!qV47v2qv$E)M%fYFq^(?UH z&98q6elP4I@;x8zS|$2wsLzSy9QtxHKH9<0=`v2?+30Y3#yRmawYPfG`6I1HrmOlS zf@LZ}KH1hzOnGtsqgoj;&-9ims%fOeamnQ#bUb69wyC)$SW#fln9oy}>2PwsgYl}Y zY0R~4A@NuM*yqO^(gI!$ft-%FuCf;^*@b5m4!igl*Jf! zm!a{HJ#nM91tUJ*JI>K&qL(t6D?x6Q>fosu$-0pY(LWyg_F7#WBEILF)N0#erGnEn>8dO0ScRrjEmZHG%z9N*-H9Uu zR^tntlPGW9Tvw1og176YU= zpx|hs8e`|oPN$=;TeP(lKrGb}#wqF4WT2bq2t8QjY3es3tDm&~k$fT86yFa%7}+g? zl_0H_1d`(-sOouKWc43iZexmyJl0%}QWCx?*w9XDV_qMIz|l!=EMc8+d6Ruw-qT(4 zF^oj#KVWr@o*P-Yigt)L&HYTNNW-Z022q@21Zt{fia-C++M~s7T&5;394vS~`a(AL z*$?dWsjL0;s@?Dj=Rb`T;O0Sjp%S{#BY92%T!E-SvU6^ar77Tigu(z12j5cFgKP_a zq^)^G5K2}a#aD#{ee|}Q9;~xz_;yEi?Z z@bhnMS|n@Vc}`O0kZ#Y2^j4H;p>WOt3aUpMB^v<8ulvg5dzqS7 zArEEFnu1(_>FOmjC?uTs&#tAC(Jb*7s69OU>ygO2OGaFRM;am<4AW78)6zdW;sTV^ zeD?nU&Y`n{l=PTAC!GK-(Z&9nb+Xh?O1*N^4;U!!LUO=xBAL73mkO4L&7x?;|HUw1%?RKOpsT9CH*d0wBfj|w|3QizNWs88e4^;85X|X zX?N+Co^eJ)W}a>sl~KZU@qd!3$1 zTt=0&!f^!f31IBbt>;|jbxR)TCmC|Dvdo?-N-~eONqL_e= zG|@>}MMYa`6_d0^x~4e91`ijAk&8rnOJFl`#zv7k%G9C5{{Xxev8iEB%_V6RwX5Mz8QSj>JB(-!^b4fvaik4_hQ>>K+NSq@OVwO1M=~hoRGC3S+6Wxze zoMj$-3{!?pD^i4$L|ZW1sqXPwZFRE5_UR^~YHq0K@Qi&>h{?b(R?$I|1V{wwHR|n6A_IaZe=$ zizvhWJxjxT>#%RfB^Bs*U`0}-&iUs=caYGRED{{XRtI5<7CjXws_b=mtzf7?>0cG#eX zrdYx86QD~RojGOkV#>Kvag`)#Q^g5z#^cX8bt5O-f7zz8DBh=H-%7HsMIB)4PrxIQ ztgQZ%hb!Sxt%KGwNA($X*J6B4u$G?fZSf;c8hTP)IODf{dHmjmH2tp4++MYgU4f1I zcn^g=JkgLa%40lhHhz_!JsME;951$hJF1SIe|#nTf|&k%>ZA0$_sHe0!QdZT@m|Ae zQ#8)7k?Sjg{D9SndR|^E32Wit%(ut(mWh$6?2?&_9%WA|ap(!;>thF|DE4OM*SFb* z?k|Y9-N7u8848Irz&Iz@ldnMxP=YaMsFa-}?U!iI)YIK-T|_Y{lc|AVPB;JnPbWc> zFNlK-eB6g?B&oMI6%@3R#LM zMp{&sYAGgW`Ikm@SE`g8h4E!l@vS}t*S~RJ?#}b=S!Decxc4yf>Q~K~p5QiDQs> z)s%`#ze&$S-(RIl)cBxm>R_P)bJ|FvzqsS*in2U8(+i#dc^X zEly>PWN$FT`EYTb`lzCu9Ay-_E=jkNGmM*R{{XPdx*@OlX;ZX!HMX*z=|uIF4Qt$x ztZf=aEjaODtEZDDHY~j^j50e~x!syeTylO%U= z+Tr{%#+hZuib;E%U%7q0QA&e(*>?8e+*V!fXpGwCxXD!sh00GG;aMvv>wGXitnk@M z69A3@4a*#{%F|n-(&SDV;+8d1+b&9*dvI>unOR&Y6p*ocYV+fWq=otw zm!Zd@8RUEEl8S`ey8AM4=1v^Jw3S*YTP-vet;aQv$8>vmx77(`pqNKi-W!#iI|eA~ zTPKj%;OcXzsV3vybN3sga&c)(!?phae3z_|1-ajEH>&}uO}TM(lJO*H<~Zk+v~Sit z;c(qKZUMmc86308k1eNZFZ)9D`0-@Kqql44_xzD;ji+9;myu?@3%$>5)xA|cjH)Zm zZHV}c)RL=y^`ldljQP4bUQ~@$%^&d-#_CI&U(8v@l`L)<6{pAkq#FV+h4Z!l0BlPC z0Q9}mp5;ANk8?@ly+4YW-(DjEqV@b0k5h#A>C9-i#$jOX#GhPND`=G{gvnHhaMBwCO2 zK2rM=AMHW8D=Dt8cA%a)Rz*u>G{Pr`r=+t>HcwG(;X;GC(0( zSD%PdcEh)rZ{kk$$x$uQ%swP^@J6A!_{hl_1RmUJ z4ci=|lH_Hjx*)H&Pq*nJF-=N8W*XOw3VM|!%_M*y4T2B?7S0EuZC1*u@LR|qjnx~82kP8 zsi%cT%uQ6=nX?O@R}OVzic(yaYbu2CvgaeQAEu=f+A=-M0FJU$#{``Ol_Nt7w0Y~| zeYR_5{+ha&VmaMI5$+CkgQ$W`*TpM8|I^fV{bJV9&r?#Rnc1)yh4O>I0DI_V9!5dXInQslpn!!f5g-=qI}J@76Q`pDhH;-^ zsR6!1bo8v}82vTYMTMzoImsM>p==}+f|zlh{)0jgLJDr5tND9tjxNOy86KL8IJFXX z<3QOaIq{aAw!K&VLvo^Pw%w_8Yn23P;ywW#eqU81zK-n?w~=3M)qF498^XH96stpW zmVu<&H+c&pz_3r_K?}D7qCmw6^wKk56~ixKa!Z7t$ya38d^@R^aZ^{)n-1gsqf=36 zxiS}8iJ3YYmZmUAR8kYQM>BofwA zR4I+6q?(Ce^rHY;}!rk{ReK zx@R%0O$e07AZCnmJmWbUtBP?@ajLTRXwBq~Ni`}8ZoRovw(d5IX7r^IDqN|mt@Q9t zW2L#$R=`7uDj@(oY-1TCkb90a3QjoX8FH`v35taB@5ZW4SMGDTs%f?@=EHsXZCO)M zY^OENPgan)yISfc2_$s0D*0s!%EzrduD!=3XnvCVU*XG(vVOC3{{R|2s^ibVrMs$V zFLzkCeJjPcDsMERO51wTnCRY1Z9!k%Q%K5VEMzQtJiPYQ>bB1nt($(A_ScVRrma~iWLTO0RU}Cgo}HMPSSpj@u1*x=Cyi3pVVtqAqTRlu z<)QjakdEl(Nz}XevZbvygxk2>wWf)~{{Rw( zsnuCo7%L&(;Y6>-T)wB0+k;1?F;-8(mV-uES$>aG-56i1_;7~rZ8 zLePA>ElhEo6_cmTy(Dq=2Sb}0Qc{cJyzovOmZqoAE3X2jWdzpSrEI%;bf=zU1~x~@waSCTPtkG?)r?2B>HTj9Uf)0GrKp{AZF zsbmO@C4mdb%Yvsek~+$OPa0;oBlfvRbZfsNv{>oAt;SbX*jlpRbiHoGqoDocU8$)n z=q0GCf|?dcp;}_Ok(48=MtkwczN1xB+TiPj#fPPm#-$9D`L-F}7G14VPyYZ((#7+` zOu2IKH8%wtcqBgr5=CwEheG2B6j5IeU7eGUp2UBu4_UC zroCo{qK-KVEH46rI%Mu!oShrbQI17vE)oh_bt%dZ^4Knp(N9TnuA;fDFu^EBq^q6! zTpFA4#RpMoPx_k$eetV}TUF6nx?ggw!si_I zbP?GWs@VeCYCmeT75?tk3o2C4Awkk(c$s=Z91;e)Ql`>D($0$6F6^PQ-lrscit68G&Jy5dmRdTcdgoy@_YaqWWRV-LqDRDZ^tADh zrZ|zAd@8MnD{Wr-EAU)($g^>q>^;|v>|(0&dIjiua^sbJ&*>LRw`JGu~K~O-*0Ue z8nlt=!!{S}PjjdNu&p(=rgp>-w1d;382{s$f{OC6zwwL0w)+Pf*kL9l1j@nsDCyaTMA9JX%iP1-?#yvH}7GjK^ z-ns^HVH49DfRMBC1W!qCTd#yBr=^Zx8ZtACuLnmECE1nQejfbwF5IF>sP8F$sx@6~ zz8Gp*V`lKny=yQ-nV?-4UT9grQ7thRg~6AqYqasNP1;>Te&HY zSH7y`k19yFhdNPlkhQh8g|4p2xi<}(=4-2{D(-(bWSx~(riw*ieo2TOPK?-i&pz6y z@V6_oL24R?*{hF$BW@cO>G)hW*@0}^irsGs72*XE_>>Vc$n^Ep;d0EqmPPXqT_O=p zwAb!GI;5N*wY6vscf8)D*wu75_FBtLnp#@A8Z?>bG_5S5C6Wcgx)P_*_tNmTqa_xl zUIWh^*<&du4tp!fXQ+bIi$c=S$whRcnzQzZnrR?{swRQ+6ZE(}EC?CWqa{3TJ{e|8 zQOOzO=Z8US{h_`d?wzj&<));%$Z9SV*efQ8R$6Wp6H}~=$nDu*1zAoV2_v}FMia-4 zUn~AdPabTIr%p?svqHA|o8_-ItDnQ_ddO`NQ^?l313XJ#Zmfo_Dqq5=>QgLn=Mk~P zVDrv&slpE&azb@akDK`X494;-lZHrJYT92PAYX`giW|+|*}bmPn=Rt~6-6ywQ`6JJ zYMPDFfq3J@Y|YkLoDtM{(CT9sg-U5jUpsp{Ot$B7i*dEa?u*uVF4wx9v1O;XCg5v{ zucPov#T;Ryb)7(tb}CtczyRcuJ@hzSC51e0mA)A{cVo={qP`bL-`SgPUD;_#ZW8VL zU&+DGvQF1yEP|Yu=%Hh|@0=|1D-T0A5 zLAz~mUnYj$^w&8k>VZk={9c%+q^LvXlfxn7EWO7gmKt7rgd=?}$iUpPNvBW#@I_g= zZksE5L4DhGOI>416K|%guc2O=xE59|OR~v zl8n=feD3fC-!s{+*9(5>+VoJ`DQhCCq+1ZFnrd`trAcHl$smxb24T>Lk(17bamOq% zwOrTW7|w9Y;;LL-uOk?}$7YhjbKCf?q7-7o4bGufDQ&k&WDO*$s7`Sk5g86K66j z;3|Jk`gEe+NWv?J`h>$`gr@vIXpK>9xzudS^)0SNrlg*$#5HAEP)eZ1;lk%6If=4I zbB=XVGE?8jv2ed7sYSzMzkBcSSG-v(E2y@SsAU$*JDO@LUX$|`T^V@T`nrZ}DfiN{ zIlNZCU;7pzv1W1pM6dTRPq!&%-!)BsxHQ$*Dq2HzP{pK*B1rjY#Cgl$1tUHC>fECz zIQ|NdaZs1!6HaV2TW0AcBq|!&6jgOlPE?wD5mVAt2>v#1ka^BKXz^i!-oVS2brsQG z@p78;a{Zu_3P@wJ#+B(CGSk5zSB8FtUIG}MSDf-&*H&K?Qi{9$f-W`jZRuc!%I|fy zym8XBGqck}SyT{AvdozbVn!zj!~z2L&Z*^A%?vFi$@-?6OQJnZ!sq)&S8ob>&ZLf? z<{fbr9SWcTq%cO!AyLwyhCR?Y9N>aA5WMNH-?p$#1sTgV-h%orC=<0!3w zao?W(ho)QoTm^5`Eq1WeU99jmJk$vBQ$SdCttu6Z#FwYluv=Co3q@!>vT1>K{ob10 zEOqfg;!?UaHFCRT$gRjKzQaKm;ATZ;*YHBYYo(H-a8r<2;bQ>y2a)*Jrk)Dy%+$`~ zwAm8o52@CTqb8`a704bz)OJHh*=~wEp5J{%5w(i<%CR)r4g9pJ8dwmcx}jRDB}{$z z=kz+ImzbImKmXPC#e-~Ec10sCI*BJaGgLka&)e8)%0Nzgn7O+CBf(4_3ODg2AdLDA zHAGpKU9WYQNsP5J6YMm?0TLGK`;SdZXBKUiYqjQI2GvO|Q)dUlLco4ou>N}H&@?*Q zz7XE!0!yt#Gz;Iu1kES%Tqyo}2O?-@qxfyK=s{*(j#^gE8AtW^7Q z+JCvw!5JQ*6p{M2PKMbuj^*4?L@*d2_ThEZ$p_E8XjA-JlvDS0{{YF+C=qC^+v3lj zYoZ7K_5T2!PQ$k&>hCKwhl<#V{{X#z=UuRiMVR*m9N*#8M*jeZ2Sc=y!d0Z7P8;!q zsisLVAdG>JY;m9<{o>T2{oJ3S!T$h#amUGPylQzVZWO|JWCdgi>IlanxY5!$!nakQ zb?xhfb$e-Lwp%O{it9Q?JVcNN>M?YTmE`fGT>{CC;!95Wrr-CfmA2ll(BdjexeQ36 zHp?tUa6xSOf%n%^I*KzSH8;nK!)vU98f%Y@RXAdl5g{rV(V)0bOc|x1%CU@90y4crvv$=52Bz7fwJ>o|tA8NcyH?we;aI$E z$zG!E`#CA@`);yQ^%F5=b*-gxJm^5nA>~hQHBn%8+U|`hXWG)q%D>c7-P_GK_Rth} zISIM#<)oS$+;Pg4lhZ*utW?!Ox>jUHVbV{S0gUN5;@zpMR8Cfu)S&9$LiNnu>TC%O zTu|Nty3xTM6l>6dD$+>Ke0J$jUj&dxZ7&PFZaAdV;IW<$>qX>A_sIpvZc^DQXe}4m zsw@%OFA~w;C@JDkoQ*1}!#b>U61`cEBhZXvgPkT$@i=7e#wh;)jJ}JwxbgWvZkv3c z3$9yb;Hag#Q@z4^jkkY=BB-}i(#=du8DpD18wNnKMB^Z_UU)hcjpM@O9}d^xCz?6) zd#P?)TK@nmMIGC9q^78~UVa@>H5H&#$u-i*#U~VXwG`}vDk%$xXc(_r1LjP0pQIfW zVx@_=Qs|jCk1AOf<;^wlE^ll7e)4Kf>A58RpL>F5wYA2gnmAgeB#C6}n+&2!4?qR; zla6`rc@mZ<^&+MC6A7i6eJM5n0I({q*H>L=vf7QkZ#5OSDX8E`VnkxoM6DRitTB_@ z4UJaDqOd)VpWpiyvu=)N@-8;`^YPDxj zRVeYc6r+xP4hY7kE?XrTD_s8IOJ~(m!@|1!KmP!sx;xI$+uKU-KFg)4uc|FaB+a-M zB9s*hWD!kG3?#=Ss0(68&OH}AhGLdD!cGg6y8i%yd2!{INU6G9t>5xczHF*1g&jq@ zd0HE$@ur32+tlltnCl|~p!lGWLr%lWz5Lwj>rsrk;!|81%5rOkaf9Xm0Q!lSY6^Q@ zCA)CUthH7_QEaN9U#d2V#Nm_z11JQqKgHX=lRQ#TQEu9H*bT6eld zKjn*kqD#fms-3ph+?i6xdfSDn+DMnhlQPJ%nSz2-!ztoM1Amo|J(};9z6DZgH}WXf zFx=ZhInvYe_R1N2Dms9fHC{z&&s*cIx`LhuN{lb(Iu25gKPH1w+)%Y$WiSY8W+`6; za$CP>&lvEiV4Dk5BnkdzjFku6`ku!g8PbK7H)SGLLr1u+RIL%3FA^AKK(7@cmPALB zr?V7H=-hmPj(!stWb_TGua++yHw6_d1A5xCyoTT8Xfg0@8Kj1pj8OtX0Qc5{ibZzBxo3G?v$x%eIxuWAVA&gob9Bo?PvFw} zR@CM=zx45z{RW3}M5bsKkA@pw&;>=+jnbicB2OhaBib>^{{Yl<4nYhO-YDoP{2FkO zLZgI05f>j}fuW|sv?O2tFl~!VG#@qd6OPbRj}^cDybT(G%0_>D`0-jv6f}uWr|FWe zPdEPnVr1!x12(tNk#qRFxvL9xTpe@iO%Or<0NnY}?G0dWv0}G+T`Gz3Drb}LB|{(R zxX}mnVh)o1SnbPX4%sY!{{Um6NS~(^L~k{j$Y4I;YncuRk}JJnVTU6+5;g^Buhr4u zB+S2pMx;#)7TxQ6q;cWaNT<`zb=y+{xgBiZ7Vq@MW1dkujBw*8OO`YX;C-_EQlYI1 zm9ca&{v_x69WUvfW1SVkhUS5(W?4GFgR_4vEv8Cm6;vU{I(vUj3Xni1v07lf3(ak^ z3zL|nrqm}I17kVqZa874St60%o3Ch9T{f*w+>XC!++-3#QW%*c$OA9a^hk|@ z7!GyRLo-c{ceLzl{qtwFK)N;k>M5%ssAn>_SZN1Z45KK|sMOjEY^wO7R>MbhmZ55D z?2m4xyU~+I5o<|(9-A!04d2R`}p5LIZ-D@;8TVke; zn%#G(i6W_3rV>W0Jf|XMhz^zNIWUjxcQgMcOEN#aAf7oBR)7Mh%JA}}> zUDc~CjTJk`6e{t}BgWlM#ghjhlY!ex!&1jMt{r*t_AF{3)>uij)wRd-ea^Q&$d_(g zFIFn*U;2LIMN?|3saOPkO%#$8Ss^)Sq(@0J8?IG>&VmxSN)umi>Eww=8=NPLhsyo_ z=X?6gY}wXI8mQ{yz1nV9OLa!yyYxbOWkTyLRrJnJgDgOfwZTTfWj!sx#}mg1S3XIW zqB$}`ITqP-chEn7RNHPg+FO>$qcqUeR#Q~&8w@KPwAAyW$enig>+4vhEs+`j01uS} zuTDE0V<<^OhJ%!+idgrnis`50@A3uRyN0KKP{Dk>NVL~`1eD8BbE~CzYAV#L!4ayE z5#q8hls7C!I=c-TPFUp}yw{X2QcEOdiTUZ2A*s37ZELl%<2-X)ZSbwakEWtg3=bU2 zUPVj>P**36j;?W?cAut~DXxjtMoLMwwcYXLCAHzMzgeobH5I-|CNVwA&O{PDY_;^? zzlW*Wd`AwTtZIC@BOUeF=O=M-t~?Wy92dKF^UarUGj6@RyXfw>`grSZ*D7h~Yi?4^ zlF3DNmUU--xJgqoM%^Vr@)O@yT)v!RES$duG`_2!(&9b-P?=G=DN|$J;F6uHt`XL| z-|Fg_H|go2aj4EI`=tK>q7Qm=AEsP%p*@B(sFY*2DLYHBqq$_0+swNA6zOBMRa|e3EuhO9&S))379eKu z2{OBXp>fgx<-XcGODmJUS3oxYmfGPy&SkpMQf!fSwIokZWtl220ZK5n*fcA9#2 z5W508dO=(w4}7+CP=?%UygwvlX=Z!AA7AKEyjE1+_eI*-W0j^iTO_|QT=k;WT_RtZ zQ;hX=1>k|4{xx&A`7`OLub6|X>mjsRAfdF(*J{Zv)UnqJa@`Y#lp&=usL4@;4U7iu z$kl9;d$=veF}_Na)zmkImZt4l8L5R58rqn{C9`kaB9u!}9B95)nm~a9jGUfHZU8}X zM`XLSChn>gw^gOq7&>685wuW9?7jqYMv?|_dl0TM_WS5$xgU;ptI0Oq+>uh%Ra4f3 zB_-NF3chx35(pt+ilFxIoDDJ(`2#LKYyo(+n?1zZ%BhA>zajon2S`0f^PrR|*x1U@ zZ)sIK-2VV)$fi|5N=U=dcG1`ga%f8-E6*BYA@+VU^o}%OA4N+X1Fp74(8WcXvW}9T zs-c3kD z#^Sh|3pG1bOPsmw9BZGc-0-7XR#s-Cw|*MgEDE)krc0%2;krov>lyFmQ;wn!tA8ym z$dnwp?g(k(W|CEnBN*yp6;u!802&%0nKtYA+ec1hg210WDv}LD9*TAU0M+aIX_0|6 z%!6`#LcHGDg?($(Xa4~0;U*e!&uk7`Pe~!s#qujpcB*y4w?cpP;vO3Qxa9u;JrWtU zC%`&MrG7yQeNV6RIx85N7fT*nEPc;yMVx&qal(P`p*ZCAV;CQdXsqM+n0o3gx%5Z348(D*E%FBNGC}vfH8t~%!=S)wpFqf_sb~0qxC}|C0P5fbv^Y>T5odTzV@V?9lIF5Akx|GTLHIj(3Q6a*}PNR+Kt^~`PwU$ zHA*wXai#tOGD^CFjyce*QQIdK!$UvvB=SW~^a$NM`)=>c4Z^C!O1pn@BviEz#u?uw1=u_`QEfJ!KK zszqOFt8oKMOsi8KAzF;F@KujrhIj|IGIbcCEwYQJ!0kk%y-j;vt~`D~&n;VRUBh2V zR~_sm6x9^*m|{Tv6-XP-3jhdg9yEZ< z+qX)KeI3f0XiQ}$hsTZ5T6qxoQlSoTSJV|aAdN;hE1YsGO?C!cc;&KCyNl?Pe%Y<| zEsZ6`DpPRTZmmHaRbWPyG_|qLo+K6Y*&$d0#a%LvxM7bl1E+(GWT5vZxGZMQd_J7K%uiwA;2!2#z^ZEVK~c73xK~o!>1d_`3YKW2k-R+gz~d~+2rO4UKW|Mp3Ywp3 zqP}@S$B4V(m27t_ZI|KfR|>ci_C~4rzsJc9>Vldr#ZZ&eLnB||sY;7DR*p(J8YN|E7x)O3dYJu=J#}N+ zrj>i7idQ*ceEVSg{{X&z!X3hf{5Ivz%S{|rH|uR=)k|KuFvCX4;mR8a4dx2UJqXox z2sGllk0rM$sVTSml^Fm}U0h&F-dZ=RrlGTs)_n}^M5}@@2Pf&Mw$u1bb|K<%EP!PX=b=ZTVHax zI8czd5eRA191fL0FgtKGYM7R`yFxX}-BE0>p4(p^f`FK4puzLTJGblWq{%xi!b(WL zLsu2pt*+6QRc~lm`bcS$I_Z z`fHmzbr$2ajDGcp;A#c8XGVsaHOav~y+>RQ;u#{R$pA0DMz|#|O75`_Y7SaOR%jn2S0rh0rV25r&HK#m;qW?x)=f9(?Tv>3|7Z=AalokaR_O* zRGbcR+n-GfCdVrc;-;2Vo}J8WJwei%7?|>jNx2|0K%y$(GbBTWmySyP^Q@}EaC?F@=&}sEdu{xAl>Bf~7_ZB4yC4L3euHM!AF1uv!%2b-o zMNK8jl8$7I{H*9ylSwX1EOH)L4i1N#ZiahZC^C!g?a#WlCgZ4%-7Pe6P{x+)uY$1k z_;m;v7g6Xv$87?elv=78EK!V;y9I8Ivwzr@jl;D!T#-pN=Ek-5JH0b3kX&LC#UiyG zKvC9mdRacDVcS&UYS-Agl1f`z`77={qhf<*S8rXRp#27g6QN>eOlBJ@Q?ohiY<1YL#u1mwp&GZ{6d$(%$Bzule@< znN>72wGhGs$rnT9vilBxp4{rLlVY2zi0x<8lp@>PjK;hweBOw-8+lP(7Vf6q;4x86MWb$N|IZueD2)w@LuCNxq%$@{KKyDRqKroLikh01PNu0JLUnm>_`sh-7O$g#;3Q^Fb~fB}GW8C-*$oaZ^yA##Lowf%^e#W`1B?nyS_sa@+m zlWr)MhV4vPtB}hbRmPq*nl&A;gq9$V`1@+Y@W0F>$Nr@oZN0XiKx@7R_&`i{A_bx>+G^*@uY z0d`@Z7w=D5x~ZsX$A~EUO9B3OZ~P4-E3l%^|Iyz5Bz#VSz_Lf%emqF05)GuCAlU8k3K!3lpw5nPMKg z;b&lAf~WcGh-AJkK^W>I>@~n}el0c+QylA#v~bGAb!R`FamPLp#&yKm$3Z;fjd3=8 z@Q%0^$zg5$jE4wXZ!%Z$`&(!A~a&BhC*n%zr1 z_Swc&-PW(KkX^%XZhfg^hUH&8Rl93-SS!sY>Y-yL6m z>!gxL0pp%I2SJUy{X-z>Se&i-L$bVckGI=Ra8#q&8(zz3r`+-GZ!1@DGChVQm-)LS~+ ze2Hxr`J;m2X_17nRmK$Iya~{#lmX>`sC(&9r8-Xj#hpZ!#^(-xO8YMV09m#-wF=eR z;-{dxR({Qjt;DTPlt%oAzCr zqJgc+aWZcbCt8P@Lv+$4goxP=2`Y+7$C%?oha0(4@5os*L8zxYuLUO%)_gpnJ8rrg zwRKfYcG~N$Qkr3In&H(_@gqt=0eW!qH?LMW15vh7!?qmr?tgIir3{;=C^3$cQ_OIU1(@bI${ejZkOoa!|0ZnK(oCtJOIeV0=>Z}O>t_4LAf`5iWRrZT_?!f_RK9qVcXL|RXoh# z)LiRgzUMphU_Nq&ja*A8MG)%KRSUpj_Lo(yo;Nw#^ zoNO#Hq8nwc9#yC*$N^VA!&MVy)VLU8MN!k}G{j97qHdBi*!R%_$$}EW&|_0z7il9& zrxD8iC`Nk!0NYbUFpOPQwFAfVgaH#CiaTmsL8zZS`0487`f7$pY;-z5|I!mTw^9$)PNv7>SW%H#aO03Yw5dZ-rT{5z>? z+eah&L+o?G@v;8^VE+J}NB&d}{{Z8fkCpvPP<(#bOaN0aJ^X_|@2UR)%7E4UF{}7r z)Md1MVA%D&AXltReI*4yuWdFujBKf!_;+0np?`)yS#LJ$k}R|}2|9n8HVi+epK0{Z zKbudJ7ZZ!Inw=J06gWQmf|R; z7cU+qi|onB)u2SGjlVr)6t`M=T&t*(Bb@L@Zhw}bF9OZK;r*tYZPX>QzFKX;1hq{y z9ZZMi?zB}(RiO^~5z8KOzKx}AC6 z9RUeCf#)5czK3Fs(8ZPTpG8_-`@DDF%uSiOsHUO2Tj}a)EL)15*vM!EP1j3aFwxAa zGvPPXy|k!XZ8ke5H6CIm{5-FEIvbYJrntjdW2&I5t(MCi&m>Y$O96P@<7LNCVfJkX zJ5zKwQ&NI*RNrKqPR+b8D;DkClvQ%iExNPhYU%{&k$lA?_+%`;Zk7OrZpYI?u1)wm zDoP3|@cbXPm8Wsg?VASmw%wO;ZAoCNr`@vAt1R|Pu}vUoYH8c8`WWEFGMS^w)GY5*A;Y-)nu1jGji2Wy} z*VjW7xADUnlYYG?3I3pZ$ z?a3{k*B=dm8MP%TbI0@+>uc@XqL*k#wWwscLA8y-j;bX`CZ?X5qm?H{13faoiQ)S8 z(CoUe1KvmO`~Lt^<#y}cGw!eYhi+0dDZV5TwFFTEGcBj}h1MEpjpBvmV;}-aI>$)B!uRc|QE*PYiH=1% z#=1o+xi_6|%C<{zyCn@p=A_f!?sGTysV((WnPGk~-!8;IQ1bP3sO_kN;3qgN)|a>a z!1p`dtkJFN+esxh)U(G~L1Cw^W%-+}T|`DXCz3wHs{o(jjQ|=e-jR*jq=eDHcWK)rz-)%rGmR2$k15$HANYXT*QNv3qzX^3X1^S_KkT~#S*f4*_2fptdPm)kqFf?OUfPIW zIL9Nc2s!P@)doHUbe#k=I*i3*S+|YI0<$B%_?;9kd)4apuUmOtTfjsv-h0=h&T18o0H& zlk8;M+xKzUCKKCg7B*&i78PVtf|JAG=$T=97ANhm1FKZp`| z%KGD1G3v3+@OW)^@Yb_S?ohb>xiqQ?1dWh#G3l#EmXdMr`Uj|4dV$71+JZ(ZSvW#F zXc-7#w$9PGBe3<-q=QUwyeO~R@XmQCr3wE4x3~1tdSRJf;ekv~$8V?g)uhF-Ut%Ox zwwr~Sho09|@u#jMn0TrF=UvIkoL=^XRSLzEKXK1GldMRu+LbgD{M{?KaIBrq3b4Th zel^63HvN%gv{{lnOy-9F0B)&zh+al34bqlui76^Ni3=izJrWN6j+e1m->BN5ZqsY9 zNw=u1RMwW;yXwsqRTV8wJvo-&eYelnQaZA@>7EeWNz#ZmtNPu^jf#Z|DZEM`QWHwB?`4kBb?Ne|E0_;m488i$ZEiU^ArbVA=Krs{#adM}7~iv`}px}y~qii#_n z(nN@YpvuLej#+2r+o!`Q6r3o|2BjvgFkZzgk7XUAqOW9KpKMzifZN3>w>Yk4p66Q| ztJFm+uR#gnA1bKAfzGBLP+1z>m`48qNw^}n?K&#FTkkh2^cNax6%oK~m6M1~C~!&2 zy5x}AD8!S_n%7U@uMT%v4Vs^J?)&EH+&4-U05wex+NQ01(pH)(jML1t(i{|uIK0i- z&Idf{e7gH{o!c_h-+m-j!+O784IWtF6LAQjKwQ$$%}Iz0C0-;F~+?nS7mSoRu? zpt%?6ZG`^yysEsM>Cu4>d;};h%~xC2z$ychqqiD8tXh!E8l*trU?|dr1UsFDLCF|PyD`5KWI2rRh|lVjjUOdhRIuB2co_e z{{U&br8UM1J?STlNZ^U9(lg^LU}2pTh8g;bjQZnNv1;WWCHhY@>VLxcH866-t0L(h zw%faclIu-RRZS|(6+$e~%7iksZZfQ-cL(2F3R{(~kBVxvd35t}$=K^d=S9cAeG4iF zXe1-4Po@q(8e1g})G`S+?Lf~8*&nLuFR{K1*Kh&gx3)E6B3Oy=-lP8j*88G>A1shj z&yQTIG-pJ}TpA3qBV-K?k_)Z0!7w0z3Hx!WI8VK7*s2SD>>T#vgQ7(%=fZ4~FnfYKVC%Mor)W{8*%oVk9G@U#wBG5erK_f^V95o-o}dvm63a$xw-P1df%o|Dt%J+%ricr(bh zR?tndlYb`Slj1hc+hVTYYP*UG>dF;KWVgiAd75f?NiieFPfPe<6WO%4C%An>>2k&k zcEP{e>ne9O=W0-0AgH)i*4l5k%BQ3>DHQCZfh>J#h3Z5qbKgdx&53!Vw`u`j7k6%- ziB+|dZkkJaS!Z>ninI38H5pRG{m~)jrs)hjB^1R-y@vRQBks6qU75 z(j^@i%cN>!rFQC)Xq8z{v+1fX%IAqxMA;e|fFUcwXU1^EV#a8B1yy zm6$ypJ2zKEWtC2PN$1;DT)d8o4cKBxu2IS0Du|s(1-qR0)p^RsK~ewJ9e^Fr`iRf# zt$>e`I-=zAeFnIizWM@Rw-ptpl1i${mMEiA&g^gi9;ZPmBu*?(Bd9JY$#C6I zEvm}xO>56gjtLJ@gX`?SZ(V0(o13H7X*96Yu76kdGWL<1$~{hsFi5dExiUqFMl#>m zM4tdr+NnQIgK*Uz3ktzgpHJ(cQY~V`WYN!(3k>@bcsg99YU9Te(xpodrHz2bbJBZg zT%W%r*0(s{;UAA0U8Q)X4m5=M&UAVFIiBueUhDWxIG9C*>X(_^FsN=cR zG*?($Su{}LxS9KC|<8_z;XKMl#7tWj^v3{obl>3^~kp!td;|Y2P9*$ z8i`}vi!jMeGi~@A@y_G2>tfrNVD)y1*c4z(Nksnu#UcO+F`n+9`iDKs7HL7(gAdky z8xFG@lKowt@7lMxDV z!7`l_Ak~W=oE-@SY^vBE+JlPnM30rn8j?ZPc8Dezz#jS05-MLdWECNmP-OoAEplM) zGn>}Knu4-BoflMfH2(nL$~oyCtN1?J?!!_NC@eO+V^3qz9*0SAPeD^WOy%XLW{z1p z)qC{gj^jerauj7LrkF1CwFkxh*?F4zyIR?ArdTJo#d4Nfh^rDv)zw-+=0q4i#1o;E zT$*TZIYJ7UGk@D4u+hVIq?m3?igXU)9C~V0RJncv-?cb_ z(vdE=8TZ!ytcJn1k6jkiw-%C_)0M+&QX#TLg^2C>(Ev;!KaaLG#~+p) z@s2%p#HU1}JPtqpbu>d^8+D+zW}IOMARm2B-VThpElUW&k;Vo%)pm!b0KQycwNXo7 zQsGiHC#d!q87K7Bc`im-<(UUM{Ti;d?F-mk|IE)?->)%weG5FsWQ-TIcw~dHH zDCG5HB>QPHd=84GL2E~z;SD=NtKwihy;;T^wwEqLj|czOqbUgN520-T06lDl;8@)I zmX6CsEnQT?IO7GK*x&#(6Pk)2ixZToF3&3bNcfRoy(^jsU8A-}PlXpF#3T6M{{RD7 z^0~V`Rt!@>MC>OK## zMkRGXLUj-_dkpcNS1!X780f6_>TljmO+&A%eIKHZ`nwz{D`u7`Bpsuw@e0QjF|kaQ zEUUoBp(Bkm+WZ$`kCWl4c?nm>bFOr2V~sutDkDi4_*nzK80l?Uq^O}S8n7&*1v`VP znK32G4Z$wXJP2|`E#j#Fq=O?l`yEwMu%j5Y!O}qI$XBU-$kW##JT}gjjy(Ms_3f_O zIv8R}6&Ww&Y!S{6`)HI9$BFm}+xGYE7Ld(1gi{27GERS{tU^8txtm{*%sW2VzDJT! z{-+}!?TtBNMKzvq3Da!2X=H}uZK`ytfrODOfK-rs6Zh;!iQpAIV`-+p*z_mBjqhJ= zu8(NXi4rKxb;#p2+=i1$R`H|)9ns5wE~ZC&|6gb%6QX%+}(%iq%~|S;LbO7aE=Kwae#BD zBq~hL{sPKw7tP^*JfyQhNfUjd1fS}4%;R5qFbMbTee@(8G=sXI$oAJ0OyJAq3z3aY zgpt8;cpQ=6P)S~1mm?#%#)wk~)!XUn0ahPvN_0XLZ@VU%tzQTZc*Z!_SXO2Gli`;` zq|ru1wCrW4kavy9$5Q(r#-Xbkre(X!VOy)&X1dZ%4QwaLT}1vEWI4(_XM>#QgZgMC z8ygAo1nQ%*SnBL{S|13^%Q96}H;%%lKk(#aZz%&OjV+?fRt-wICxV@KEp0{8I%2ZZ z*uTp^h8Ah0BoE zE(xN5O*2nW>|~IZc^KrD_d12x^%`6kd@ukR2TlZb|JPc-T_T`{Y35)8brQt!#-H#hb@UY`oX8~$NgDXsLQGm|Wy!+<3Q569A~KWf&8@DLNTPfH1VoM%1do~#n*x1z$!_FyWDoo!s7z5x*SjYb#$0Dsq5 znX}4FB`NtXQr)BuI^sqkbb<8#4o9w(v&l187NxE>pzhzLpK#awl`MTS^qD1QAR;0T zNpJSmta^>cjx3Rz_jd8?gppk+&AJ1HI!%SO`eR0HW{bzyg{WZrGs%Yt|RIG{)dyH#{74I7&lC&`B z2S3+b6|`pChv5oHS)-4nlgApGLt&MpI=p-`uBB$^LPy&`;bn;GShrKPYpENU&mV0m z<1I%uqQC6Q!NEd4+U=}o)Kq=_pHwk~L-&5kwOdMhm;rHy}l z!}p|m4{aJiSebf6qm7&RyARh=`X3kI#C|I8h<4qoc0<=O1R?{=G3>wdsu`tR8d#SH zm*$?X<6SjfUouWh$u4`b^aJgzxin}&Gq@vFt&Ry*6RhCLoDx4829t@=wIKZ!EP|e@ zHfW@Z6P}aK0qvbreV0^tFWRF;SbkhZP|c3C>N&_iZ3R;f+eiP<$-X*+O||O81gBS& z;g2Ak5#L%le@V5VNb_Yiwuuy#j|72})Zg=}@aWu=B71!yX8qs)0J**Y06G@Qi!a#h zmb#~NQ2>*qa0@m+mUM9$CJ=jl7(N(`1RazT0Q~{e(nE2x_sCKn41V9l-}9+u+vvY} zv)gH{_8N#G2`xoELrowpmMc3b${nO{{T)kN^wpSJ1(y@HBnKMNWs?KM+L&7nj|7Hp@Q`>=Z{iztjv9$ z^A2g-`Mq~9#+OEs|>fK3qc-f--u9Izx6*l-A;`%d zX5jw-JwDrkM?J7C5@uh_Z z5EbXqn18X;G0E;DB%adUH6=WhvURCFBw&_rZ2Ri`UE_a|cx2D$pY~I>(NKI1v&l&p zhSRGwtO+HFa(j|>d4KrP@c#hf$v5gU{2}W6F&P85|f{I~q;j<#Q-vRdY#yIsp{{WqEi8Dm7+HKH6UMLk3s`H+1ky`iI0WF!Ijy>+|ks6*~}5l;$`B*!p6+X0uT`P zaxyWqvv4CbwXm{r5Tv+h>!KjDF&CuJ0x7U6IEh(U+erJkSg83Zs+;-Pnem!a2n&%3 zc=36Goxm1uCS+b=9YY_;*$TZ z>))Fo#eW;+>FLSr$-(UCV#UJ7%gf8c%Fe>h&h&2uldHFbn~4{bgDd6#IYHdQ)y&1l z$<4;mf$TpgnwUDey9rWIu>8}&^4}`{BmR$VLjUIu|2zJ#2maRs|LcMO^}zpn;D0^v z|056lUv^~S@Q)IC{^LIHX8=ZJYezRnS8GQnG7e@|0FS7Q0xUJ)KfstH{_!UkPz!q$ zgp_*vC>rp-0{8|1e)tdmJ%MmQAP^1?76^oegNOSM;1S^w{sA5l5eXR?83_^fzkv21 zVEhkYfUvOe@bIXJh^Sa-sAyO?|CzzT{I7Y;|98On@8N&;{C|Y^H2^Gt{rwz(_Fr5K zVBY=jt}yT208B&}6qq<5022U%3G)FH=Divj6aUTea^_uQ@^CtHC!|GazsWy}hG z_C4Aylrpq%PfvEpK%B^J(yL&Nw9Z4uF(y{RNu66&C6nWdl+_(O!BVAA+N*L#`WOH$ zZOx1%B|!RCT~v4k#Gi~*NMT5V3y&&0SB=~jId?7rH_(foJHaNj{#ik0H|^?oB(>$* zYa3tjC}l7dIdbj|@*fd+2Pl|>y83Sygp*OQH|l4t+fkSO?Ez5}SKjOV`~4|FwR6&a zC92`(G3Wv7?|{lq*UCBDyNZ^TSch4wf?|at{;y&DXg#_sBJ|A8`#CHX=sY`WHiv(7 zD9B6NLCwU}Adj9zcM)Z>q-~NyO!Lqun;7=G8+^X7vJW(lZQP#rD}5^6=W{zLqB2xA zWsVv=l&O1O)eacY*$x58Wj2)su--2zL}QD_sg$VBuLlg-jpg-OG#283RbSaN#qcti z)%KUcj;=x7i46l{P;Zv3ZfYDpIWK*|PMrUsuT3mYOGD~P9Be_EXgwnKw*PgTwWFNH z-`xaV`V6YSs7^Uqk7rO~4JK7!TG2FZZEf=rdf;(mMPYICQdvMAJ5UZrU=!khrwuws z9M?PDp~8$3LdQNV3>t!6@_LNt7|r(ABgG(>q!{Xhm=hMAmbT2W_o&Ry_v{{7&DEjR zMBnBrN!PD&v8>PbS*CBA;Z}u`oBFtpbUzK2a}u~h+ZnLy(E@D*mqQJ_f$*9e+!Kj? zGQE#}%3-_oFIQ3-hx`rlqh79#pVV+AFPUwg1QEb=GdCkw3J3c1Fv^z2u;Exs(Q zeMZl1SrDC3lOeoQGtZ*%5Dt3>2)Y_H3EEDsi4WPHR`U|(-fvyrw^npk&blXOsf^Z8 z|9tcM{V~#|0;kLXY*iWHBPYkydi%!3%Dir71b%P7r8GP!(}G1g+F`}+Ju*K!&0fw_Nojg}ca z)z7C;3GGzW=JGT&L_j(ohfD-m8qx@>oADKp==6{$>+WiSml4Lfie!i}OQ_!9Q$3@K zm#2a@nWl{`_}oWRD}G8n>Uh$5)xW{6zjXQ{HLyA-~cuV!=_@jLBb1M)ffdPC6xJ^d)9c5a$u6Yo%H- zlP~yOG zTgl4J(OniiJZFCS4W&$OoD5MAr$aIQs1z)*p<>ZqnE*T=Iak#D(`2NQ3_{H`(t)D? zt*Dpr$5kuwFKOVbW}#(r@(~eED>hzIARoDa?C7!C$p``YmmY7a+hJBWQF)oXlq82| zasjXS2ueP3hLgs>jV-cM$jvV?7(s0*JqiszsOw5U59+?CzXMdN@ZgVW?95oiaN8of z6?z;!lBd<@F%KdOX=)x#3V+FWsBiPM)=htV|9u2*+HBBRaCTa?8vD+RGqx1_65E+% zz=J?j?tMp-H@KEJU{$Tg1nPwQnh!)qxFxWqQZyea!(vO}qe)2K@>3rjba6i?r(4&B zE{+TnJYXc09;y??Csw*5St!W{@Ju6BKKT@^%rOZR;7fm@dZLuIZJ?8|SgALSCRjwS zL1xzMVy&TkXoMC$>iCS-V98lF7e0F zj8Rgo#?>T^kF6!px5~IGDAfVM`7P`P0x!hcfy~>U)f8gen$kQ#Xkik0H~4r&DUF3R ze8znLL!QukQO)qVBx3sm`(~g&w_)y8y=SyRkzo;=1gGy{-%D#9mU{1xt2+`Gc(;Xw zKD#Fttf`-#Xz?~p+{7QT=T$~D=RA=$Y3X2iUC?+){TUphlJ0l17jzq<`vmhz!MfnP z#;39}GcPF3p4Mstf2NU*AM%0z$`Ns)W|?797CKg~?|j1gjH(=C0;l;MVh_)dU)J*P z=~p)8-Hb@)!g4^BOx{l5O0q$hT5Dw!jF|YQn2Z`5%(nz{tcU~R20Nt)jUq7vKdW*z zaLVduqR7;ewRPgv2Z`n-X0Ty2)f*w!4E`0QJUdg_)(`(Y1C z7nIZGr{{;jF_EJqhumYp4>Z^Er1aX>TuE+{a;e)lY~eDxePj2(ls*SrnN1!N)YLr* zMW2Y33u?l7flo>%#d=Enh(+TAXMv{=R?RaL#BgNau5ku647pyLC!vI5?aq{cQd3$U znYO{LJ1PnqrqBdPcIjTbWQP-?l$9VaC9sR&L27dX{7WaK>OfFdj>s)s(;CeAi&+jA zHBgHP%U?XP)e5RfyhHFTnQ1elR@)icBAoGiRy1#igLFMb#+IzAihVf8EH^GFSPFpZ zd_U7@mjZiEs&keMt%8+}5O7*8l7@&OnKAlkN{`@;W;mDM*q&5`MLX@> zB)Ko8o`j~RuDf|c(J>i+`Ji+07kKjd;903VWZB{ZLm?UL84n9%N|j|g%1+*|duy8K zu!&Q6u}VbbA?R2P4+2@~p(g zkkRw&ZFsE-D?!;Iz5d%UWMMRcy3iO83vu(fca-zZsDcN(=(@WHyTT9ms+G{IXxTT~ zemX1lh{h~AtQn8$9Y8m?PP$Flf&Pfs?C3phJ32~?$6h^Jy^G0&EDvjtV2OH%hmV{?;C|Qo+uRi;iDabG`}D<;C6Jc~C{AqvUZ)j7_MS$P zP;n|Pb4b03@kKhtp~@;%RO*>dl|!_N0HA*KM#6drv@-H5CPA6!QSbrr_+;3H7aep4 zlTMTb{(>o77?v~-q-RFfIc5?Txe1k}wG6u9I{<~jSz#Np8<@H znKLgwf0!n<5A7^bKnlW|vXb6M2&>1T166$Ksn{`j240d;45nWvE&17ZD9S-e=E8FT zGr=Xgv#QL)6_b6v6MBT;Ws>=obL?&guxeoB534c9eNuwi^o*F11?7rJLc6aWef4w? z62>O5$uH%2@sTvSlZlNLPk4QDd=2n5iwuYr?jB~;*Pjxooe(S6rD*4$O<9bwT3FLW*;N%(u=VkE`$ahKINUtdd z3U`*nrQv0B%$+cI)b5k{X z_#yNso(42>VrXi;Pk^oTk?=U`tex(%a_J1V!!woi>G<*ClH0&C{3@)8w3vDYsy)7eV zpbCTf)a(u{{CVKnA+yaN5C~K#9Nbj&ZslI!J?}q{&{7QDBBBq9O85$-L~SMBr!PTYIuhyJ81j?_PWL zoC{M{PPF;BXE|j2ZL4r=)ALfF?k>MgA-|jB8AhaXRCRJba_HO9QLwOJ6v!YkJyo=5 zC`66KdycR6dIt>oyK1=b8Z~oE)Gn=oYQ;#Ug>*5>{{YW2>{jg6x22ToL(=; ztu;U%Qge$xCK3n{W-}9%hG?kudPFq3tMF+w_q(_mkT{ zIhDflO3f0!y#pvoV`FUGNXUrn13G@(=?N%Cgx6+?#4UGaj*#a&Oypr3D{|yvZ^f_t zi+!Ndcr?QJJZwLAwysXJNQFNLjgdO zlaWD2bH)0PbS_SS?hVR>%;pY$5IfroD8Sz?Ioq_G(nRyq)){wFBTNU^Fe7VE0brZ z-1V$^J6~6QSR>{$>JUv+V+}MgEo~y7Y%mGx%4xSZ2I-f%xnCHPf3@PE@iD$lGlFgg zd6yog29-Nkxu?Jkp9sw63Xmk^dD-iQ7KQIA%xfT`qmb?kQz|pey(Q~6*|4D-l`0{W z7gyG-LMv<90|;ly*M!?z>~pEhNdQp|co2oDQyRduK#n#IfNz zHYeN{oflN&9ceFy4ZEBRUSG70@vi4pvy3aZ{wVk~)UDYJmy(q7xu_qx7Mlu+r7q3U z+S6@Qp0AYIJz6*?*z!#DUa;gPERvSop?gqP6U;ms1$AUKZAvZ|1qP+OVJrzquJWI! z^b=ng?ZM!R>gad+>Kf?qv2EznkCsPf1 z276L3&yn7W&tfYu)@tbD`20-X*Uo?JAr`xvpZ^gp*|*>lQS*bPf=wVn9dn-THjWo> zH&B7P8BIxN!NQGO=1V+%p6dxug1{RYebiF^zqEL+&Q|(V707 z>S&7x*x;bPOu91qZu3bzOFHH^j!2uC4U5zyi~a^hAHuSYANOy|-|fzNCub`6Vdu|} z^}cN<(-9OwMRBMQ%}s~i0S+zseax;$_{kc%4zMm>zIuYOR_6?JbEMLDHGQUqHmTl~ zsM%N*vQF+BRmz z(JoGYi(e$!04`Dv?q&6#{O&QQa4lYBR3-tWs{@i()kaL*psJQJCcg}*Ive$$nlSwP zIchdKnGc`5ym!F+1E!TrziNM-SfAJ|WFbuz>B{uoNls-C=ERQMYIvv$*721hao)R?cR%Q( z@-%6K7mVj9kD;Nj4C2lV^5)YHC|xoQr{w*v}; zJ%j;hibbn5ABr4843*aonboW3XS-w-b9c~Ko%$#ZL(}kKiDZIZN4Gk63@5G1sG^n* zzpW-2o#4G3ep|1s7|l5RHifVwPSbopjZ`kR*QDxv%_%DTtvnRrUzmQMJ=3!+A;eE)O38w z*s#qxw}J~?T+GH|uG3Ir7}3)r_d2Q_k8HUuA#U?M*+X40D7h)8y2gFu7yLd1nIa8A@q)8+DE~G^I1W zcX(7bWWD?&rt~3kbDAr7q5b+^za-SSZrc~@LlD2!)NgByu*N^8Xb5p+H(_+&u)Ok= z%mz`feU2jJnoJr0;d(|MJDw!lIq)%BJnu43)6oaXUGnoAg5et8#NE>K#!@pKZ|%#; z$*E9~Z7FHu(8o5q71DkbGV|Y|eGRm}JPn?Uyo{!x*75190d^{~m5S0GVDI54uyCb! zte94=jMwZ#X)wbPK1kq;#lHibW^v9x9wWLPc(g^3dfL^H?-edGzHDT?B&wZwMLU;5wp4HFI%!le~LVremaV4Z?V|2nJ z+BA=0a)>_bV|m=BbVv#fGwUJtF9a>RJMd5^Y}kY(>zD?lc$rDbXDO9nPaPD1q#3}4 zlL7joXM!4+GOP?vJv-5o^LPIWe<~l$uYW^D)p+{8^$>LCi)|H(kY#6cNGXt@4WsQe z5Brk#Ph2!{hvhZym`K#m%u6xJyICxWR~&kN)rr(6s-7jtgikwpQv{+V#u$a!__fci z=koQo))J(fsmai0;j7~n0z;~XO`c->w$C*2Vr^n6)a9IU&gkWp#B<~eC4IDg2uskU z1dd4?05oyJ{j^~#mTN}~Y=%`RvOl-Q@Z)!gz0lf!?C7hMRh{8p95qXF9-{=UA!T&f ztt}$uv8#ZQVWo$(elfC3ZvdGnA%><9hX>%`}HtHRJ#QF51pQLRj zpsXf-{C%S^HN&~cu1YrBgHu3Qv^|_ud!<=x%HfYMii3gCWb^7)!htSs2*ZdDjlB8o z)uW`lT_JLbbh06OF<`~isq7u#Olah5?EvybGzh`pAOBmc5gjBflFxx+heFilA`@T9 z4K2H))r`TT@F5~%^hk*=-~Yzl-qxl<#z1pJ zO@u!gqvp=yGZih>{Y*o&BWjP6d|73^1y$gjg%^w8Dxq0F{7UTzAa`|i1U6yMBs?#} z!WptJasOh|0fJB3X^GKLq^ImOYjb=2UVjh52M_51N_QFAh*E?t@cEk51$Ry4{Fj=~*A@nPl39ES*NTB|3ss-DT5%2G@-Or?!DoNaL%O&V`@^D};c`ALE1 zOBYR^p+a|sZ4z<=WakAvH5rpIL&2RI?zLt5uf55f5Lo2S+@+6JHdjNG@sSPba0qEu zR#&!5`*?Pw!^xsJM9;2e{=yK=RZiKdk0vuDvxei{d@%GRVsr?)oHg3!vdQJ8J&ACG z8Jn#1?qAH=#nr@Dhsa1*4147ut{1~k1msk7Qm-_((?}^Y#J8e;Wg*B9(@5`g=Os2R zBhyG!u(3gWu`A-#XxHmpOo`UXH_h~#i1~&EKeE-bgZPiYl0~f;9T9+lK-$S{1&ed6 znuI{QfdHoSwY#0h&En#M+=N8O{>|ChPW6$grv&uiQ_%GW=2c)r7ZL5D;M*5}y*@v_ zj*s4EDQp!r?OZE_6pL_DN!SZS#&n4(o2$jZP4Ej71e1M~E=bVt6&~W>&ngSKZP%zoe`#?=oMT)pkJ! zF73{b5=XNQgU({m$DMi$TmDJ@kr$=G(F^p(iciZ{wxvlK?lpVL*GQC&AdOp$j6J`@fVDtxojYhl&syT>~9W{%~=m zb#9Kv`-!Ibw zuGmcAh;_=#!)l7p+bvc4Um-1NgbyvPM72i*IP z4)pV5eREE~57 zQNq~|n42=^{3T0h%!l9v7c0$2CLO1gK0*b-Nk^fgXqJNH9P9||)u6tzPA#I7Eu;Rg zv)h_*0$AvC^2wcX>ERgR8Y-VJ&~jsW26stD9u=KW(fRUxGq`4a#XpRqyhzDO8By~C z=?55sv*m*EFDgsmGF{JwRj9f%lIq)OuLuKrRJ7_&8@Tywl?|ae@wfusV`dXSp;l*^ z{%;+E$u6)?=C}LmvtF)Ftry=F`>Vbt;Vu&B@`Xw2h(;JsgsY0&9yF%Umg;$A)kOcU z_@(Va89K1GL5+5~>ba~g9%`@FK;26B6IV?RqbL&YrDk{`X^;-M?l1NZ7`T)_NO=eR zC0&NK_a(fL1HnCMQw!|&u*U7h?{vq7-NW85;*u%}7Ec&7W@k`$PM--TTKWzwn=7-E z7pbICnf%cRTs>)WH>@Q-wd{!9@(;LML2viOVfmV3`3~5_VZ_6Y5K1EyK6z8QD#X>9 zRFWQToSsrc=DMHmeDrKSEG{gH)`(xA-Ay3dtLs7Y4UUcB6b(Db$sl7~!pH~ffPIVI z3_Ziv({ye0d%#7M(>N-Sgl@l@10&%@U6L6D>CAJTPGAA+a=g8NgYMOD0rk5S0mj>} zvFcGvL4tRr5eALpBsUYR{52QMo?-ItTv9&X%XDO3yCKrQu*8oyqNGpVYxH0{W~&5- zn{*?~)xS-QW768`eQ6w@ne2@~A8 zjp_7}m}iCXi8`YBnO_Mz%=d}ORypN_^^Pz}X=zC<9dB1S{$wY-Owz3&*1Qxy`t=z? zD7i&2YkTBz+iFb%%1XS5cKSg(VOV>$H57?%->YN>M3bZxQU=z zLBpOMwGzxw+J|KJ(Lzf)A?72<0MZE%Fi8GqGsGs=Tyi zgH;~0qZjiHz0H2hWusjV%@f_Ktkct-E;?d6+PJKODC$TmG zS}fYy8h+OeQHCU0hG;ZO-fgLJ*R0KppWfjzOKHG+a9ot=kfUJ%yuL3?x2G2{N+vD0gqo%iPGo z-jl><`hV`Vqhb@JRy$_8{z!95?EElPk=f(PQGSE?vMpwG#?Fh)+Ig4 z*=iqyXz<^%-T_xcvyYCcMPrcZxAj+PU(3g7u=E$GOZ)&;IIngFnWKwRQ`2ArA4Oy+ z5TNksyPY~KE7{|fu#EvX1y~zusB@DBrBo%CFw~p#-O(I8>xYBPyVON5CKw0Yenv^M zP;k$L&_fB>c!;Gb)qdnW&=~0dYL(-+9qG-=G?5A?l>OMW=+h-~=ORPKc|1;?3d!pYB{vrwT18(p;<)PCUMqyo`ur+7 z@7ueebvI;epo2m(SMGy4sUH70wdkIIiv3tI^F+5O1KQ`roE4Ac(^f-6iGv~jYHXX* zCmb=9-gsgJ`y4{rzVYHKiwqqDnw;FR4%s?5t{W0+!*%jfXW44ciAGORC6FIc{jf^l zovh=_go`jTr5#yyj{Tv#`W;`Yy{1(}qz=sPAdH2N_LcQ4EM7w5t4B8)e;Cb`ubGkD zrP7u{WtAr*FUk_B>x*0!`sE7f6C9A{nv@5r&Ch1_*G&AOMLaEIT-Bo<6Y^g{MiVc6 z=w>I|MO8IaLmBpZ==EsXpHg9q&z}~5Z_4#=4y4;W_v%BP|HAAO+u4|TgTpzZit4dh z5s>oA{KW;70&cWjib|ZHYkd3;%R344>NBADknj#@E-B&KBL{g3PC22CYPT2hpsR5N zt}OiPup)5Pu+16a0Vp6`2^COiiC%tw#VoD$`*=lTHVd*`3q2+?nKw|P48MUnA3z#@ z!7T4EWE^-fju&!c`8Z_bZhYx=zP6~~cl9y$e8sh3UV4{)Tz${Pu-pWRq^hy}(3hpo z^#iO2^t=D>fN&vhkIg^sKdprWe*b1S&f`2R5B?1E6(NYHd*K^m_vK%;jOeKuT2HAc zQ+gijvw3w57a0ck1>`UxePiFyNu?Ey=iP=xTeRBoN5vYo=#?)F+~|>Q+iCPn3(>8* zUKw@%3LIrv{6tnd*|%e^$ynu&LiO(D!gCGL3|Vxx>Du2yZQZ{V(^24Rfe*QVC~BbzIU3&iD5%Yp&o<$+b**<-T?M4D4O1$^bp8XJ-r{;s3S)+ZKI_9C^$rFd6dZ?KtpdPf~lFpT0atOZl| zmYr$%Xz&1&v1h^6CZWax{K&VzVIbmO1gQ;?NavlC4wDw(7Fu3rfXBy1Jsftj^anen z*#f#x0}bTisi?-H?MmY4gr4tRh2Iy>{m1?_%5dqHO{nzt7LO@;y7rd*b!#kE{;9qo zEP-Wf%hjy1?nkSvEG zAP@R%%yG^F=hx$aBazsJ=OER91XUo=a0I5dEGQFeD(35D|d>UBS(1ts;t} z;FKmyV+{DOj^5F*X2^EfbHdD&*KTe~damb=SX$8}N*g70y@Yv->nWE%A&iryz_`d1gp@?2v+Qi3FG1%Y#0Fo~~LUrn2bg~Efq z-Z(d*Z&LAf4;HUc=!W{@@dVU~<1BLek6O^s34yPg)hf$^tU^bt?I-&6xSIj(Eov2r z@F%`-_g}gsy&A=u$5>suKVrY>KgMd*a5eOUb?68D!NOW|(b9jB1zQLXk21dCHbYcw z0#)$7@w>c;*sa7E2uRv;Mk%m)Add&21#s?%^s9yQ{1jqDju~b5FYF4N!o7Y_X{KnZ zS5Hz!Ot8n?A0r4oau_Ngalea2n)<0^11VG658*Qv{hQBVwxWsur82&_Fj^g2oIAqS zVCG{+9w0O5TEU{){NVW<`4`{vwMG*hkb z&brvQJbH3HQ!v-*B(l3)x-*D^J(m4IqqEc;(0<$Vv{sSJ&vlQgraSI4 z%qHEJ&drL_wpDubvdkWvGTQ>?T%|VYgWxjD76v@xFBf1wpUWUxEQ_MM#`0Uyydv4} zNyBh%(X>7`(=tOlaW_MjKn>lZ#;pcD>(_l(?Zu6w(vYgIz+TF-{A_abzb~SQIqPdf_%9R zLw;V2MKEEr7FjiHmfH)p<3kGj=mo;ensv=zscj1d$-9pEVUiv1lI+sJXz_|cUt>BT z&)l)H8}NwfWX2{jtRf&zxATcfEOk3sN94BDhNuSrT!h8|)R&WNdl(vou*La3q*RbL zPcch>GfrybYoo&czC>0w=-bjtO2T0xGYf`*6Z#bd{9jxJAa{`Y zY_bf!IfSP-0RVfgSRx>%lI8kC2@wIH7$0gYV&g?nx~%fMNJ?2Y5#r*0a{|A=M!o8c zPbjMPA*@*QtG6hc*hdaE)J@r!SwXW86W-~vO%Vm+0AhbD*zEY?qvrFTZA~5Jl{Dl# zcVA*L89}YWCjbe&TTyN_m+JyZ_4{YMVE*EPwl7Ppglp_`)5A{Jxu_dy1lJ+NB(_8Uko;WgIhX zlNKojkTmSVE-Qki#vA?ehv?2w&8;&#h6I6Hgj{z2hPq4NMWQVEzQ+NHntHcbxgU}B z;02CL_sTR%)_i=VXX}iq_r)WnWfI-iqtiAYh#6)H_NX)upk%A&T&l79UzOrhbp-?I zd|LS>tn&D-6<)dr4yT$nR%s!~wKp$WH-e;*VTf>TR}1Mza-cIbCXrpAt&XJ1l{NWrB}a%8WQ=(_*a z&z2uAgpEp>Z9Ga(*%&wxP~_yJ?xF}HTvp%AlK+4z3*91%Mh+@SF*b({z$`gc>v=fg zQ@oVwx8=(Fp*84C1l6kA>Jp^h<~#-W(D&I7DpXd|d` z+pxL_z8#&_d~bBl(q!(ku~~ALvvFC5$N!z}`@I8Pv-Ww{12> z@?WX6OH?KFfK}$pWgwyiCG!1XzsUFXm142YLZF$v5ktFDPkJMFN=B0S;TtB zT(`{izW!#JNqlKx946++PeP|(CmWH=bkB&8B)-B7Km7E4aS&-e{rM1#1EPotD8eK5 z>yO8tL!4?B_;K8%siU5RPv(q*pU889#SKa(;402HVg{y|Bed}z9~^XcDwK4t$(_4C zdOXV?x%4Lj_bMtH=BW)BD`2PNe)AErnp_kR{FsytA)gS0AGk{H<6KFeS6~{Agldj{ z7-BQ!af@eN5=OY5+fjke2Hmxg=4LFGc7`6ABAk3Vo%&d*xqL*+1(#g3e}*aj+Wegd zu=@_c*-|&VC}JU@+x}inw{ok!p5G55$N{>MO6$2?YNjtb_!dL-Dv9e*2Mp5({O=0RB$acjCShh)fhSop!bF$Ze(A{xYSb+4?&r0=zIJe^jZp2?*^y%LQt5 zfAt?|#?jP5tLmN3rPhkiAU&$ew`s>#`g(}4A5iDJ^$zHH+}{S=6J__mO{)d0KdhZF zNq~=AZJ&Dw3d>52KfpYgVtxiz4`wzVpB(kCYZc5M0cbzO-n8qjUwCkuQ879sh|6(0 zvuWdZo&R)^44mQjJx*T}aqSm<2Yfb+8hJP+D>HJ?ORuHZi#m+*ijGd>Gl?bcK*@Ns zqLH&&*C0%r)ZQo1;hMaFVx|+yPmszew%|y84nSAiiEV7*F1et-vBMup*3hHBLE%_E zwx)f-Cy;G`k?LynT4aJMvzu$$sldBN?XD9l!w@aTY)2^xvqt75s3g9Hn}t4|gw1_A zq!B)$iG?hUK8 zYr71;^E6FuYcX7Nz{jhC8~M+UX%$fl?Y6O0Kr+gVTlH0tk|JgHUl|V`oioV57V%_A zV`J@*V9JBvx`sHY;jbzYOoSo?(f+Ek{E85s>zZ%)*JJwWJ7A8o-OGQgbEBz2b#Rzi z1VRm^8bv%Fe%$HIBcU@9Kx_-d)L)Y{UTaP48%vs*wyKYghT1`N8;*8O>2Qc#oG0A| zmYXDCQ}=vcnDE(xoiB@f?cAxlWQgUHczThGO^CkT_soOdD3$~^hiE-rrzk|1`Pq4k zwG-0leDn~zx4H0#&{zHy#KHA@KUz>rcw*ZO#}AvL@ybHyZ+B;hx1#iYZN-Xth6VaN z7pEvAO~AFI3(Yfe)YSGU+1tzrq2X|5}2MSz2oza1xHS46>8$Z~OYCBBPPYr)c!q_-@BkU2OK1OFzh>MC7$NG`=G5 zY|zqTe#{iXkSl5XUk5>fQE4#8tHgO%>S854l`I~~m%kw|2?>>;21!dR;el^A8QHOo zC7>+L8TsGVx|0zFhihBDYaUFwj!;Orh)YmGwMJf6>Kdzx94Uipt2AH+!^24;;6>8D4V5z2Qbx z06KSD;W&%WC~!G_6=aA_EE3phLgtObJ-1p{7_|Y;RZ{FG(fn=DrJv*2dpo`G3GQE0 zGUiaHw!e02rsY3s6%c+3={09@9)w-<)I>Io7DypU@R}@l7x%L5ohQRrD-R#BugSMn;M!@psp=+~iZ^ zjBU>j*WrX;0|c^znw?Y)D3AEa<$vtWcumnbO0AvB^ufjO;;kRtTi1vcsB66r zOKqinpq?=rK0~HZA@^DS78)w6@>~6ObGIP=A@8$C>*MX*;9_W6hYPA?XvXgAu>y#s zV*Tx!|4v?<^75C}`4rCiZKY{+NIDh!fZBA3GFrx9ao4_k@oz5e>m9Cg~&*3trz8}HK6JO$4S*bs^CTM?f&h`pj3#>Q1 zUiZx`U-`5~oiLB#k=BZubR#J^!iyPtf1ok4{mC}l!a#7xN~X0F&lSHDHQ;ys8UYN^QZXo z_>YDPaZ14N0o(ZRQW7fkyg{;m1LPf830Rd1+iox2X-k{Cd7?V_5=ScPu33Fvwz9*M z9`J3|0#=xAUF&48+`Z579_VHQk?z%2bY21@W`-EqIW8l)!WRT6{ZVnUt=~qIOAS~a zUMi2E7ANr)$G^XJAp#DGJ4R-I27dg_ORw}c^dd(u0Ms+x)%^OnDebX=_4;WEb1oaj zk29JejZeJcA-cHK^N1z^hF55ZMr&jX1b{&XJX&E(8C_OPYE4!H1Y1~r-QH&2C=E*s z!W@d$r1`WC&y=GjD63(IPJ|aVbKFt?+Y^X9IS7~#q2HttH%geuqt7%g>A?6>AI2B>b~ep5)B&zzvN@+b!ZLu7)nUn z848~1C58m$@W!jArW8xT3vF)O7Vf0|0^9My=f+`^cSb%j4BYn? zEP#xcj7%*o*Z#>BsO1>%7nz(+T_&gWW#Tp!BOvDIIjxC3ah*2$l8a|s0S?c8ZQIA& zD9*>4wvv2`DaV|8RAT|0txO!hIzL;bI>=Kzu|c?wmy3Yz6?0Z=6C zXH7}e9>n~4BgS{{V>irC~sO0=>5fI{$X@6BXR5(inEW3?LZ|huP*o z&UNgcljS4bp!JjkGvkmj@3o5iz`)e|WBG_&GeIs%`yKF6F1x$9c+QA497HVja^$aB zRKd45`Hwt^QZ3R$l-TUHA=l}($=Q7!aklgo>c~R%y{z+hRL@1f3U<1X3$~;-bka|` zmmKP5(AN-}UPp^9YjXBy3KRNNQ|Mcg`T9w>Y)l2^fJEUocuwO8#yoSnZNQka*_K2# z8MWp8y=yytfT4F^nQ+HXqemidrY+pU9;_~n-&dL*EEfrH~!{Dq0gc{<8oM|2l zI*8N(rR(RH6z6lK%_+uC zoE&E(*c(y2I0{cjV@D^5_h5$tuX9%77-)-!l67WEJ6Y=Qnt}cV3ksnI?a?GZ{Ha^- z5ts;mm!bfDan|nF5D;HP3g^v&b5xrhy|lgc$|WYpjZ(_WdMi|BBk8nAW>x7VBo#7y*% z%Jv5;oA_-iGFTES8w2Jicx*4wCY8r%c>5}vtx9ZMLN2h&6qM=Wj-D05A5dsxkcaEF zs6q`AB!-F*Bp@P@4nNKCHS*7UZF_GW;_HN)<@fT?9W}-j@gV&_0Ea+$zvwU|fO`(1 z&c3nX=QJswKJgF!`5w`U9EwcUq~|Iuvtr1nX77U73*xkzJgK4~3#qh2t$@A0pe z_}!L^>HuQpi6ABuUNxRSrs3Hkt-@7dKPHw zK?^7zTYh>~$ChyY`bGvAWneD;w#P}g>u+<$D$)UkqwZxNYC6d@`ldTatRd?xTe{&EM>+Ws(CP}>pct>Orvw*aJ5bRg+(Er99#UfQ#-R9g35+-;f4?F{Fb zBfKY`;k{(~%7CeGr&!XYu_g)NB!J!UuC3qaRbC}Qu#C>NRF|hC`hQ6Zju+dI8mldL z)7F5=TN*0M9Y?t8b{SATx^xzG zj0uo{IU|FC`Ren-!Kt?o`UYTGa7YL52s3^eTUew9Gwwf%#|jjcZk(b3G^T3RvQjE{`!98CFcNTo3@{oNJ@} zMN*8M&Rh74N!XvH6Sd#$x97iHja-q%U-&Goh^E|+S(!F`kWdREOPKt^vmxzXH}2PA|T`9G$&LhmgV7t}xl z;XLzr80+sZth;)WwVF#+kWEB^M3ps6SOTXd%#1>h_SXn)Cz&N-%LCRhyhn=9W!rG> z>MJm>7XJVyFQGYD{Kf`Pf3jdcXk=7GTL1Z+MD{?I-z-RSPCZI+JH z8?3bT)ylMVwBv(;2jgSxJv{5w0~ndT-OTAto%=5MRbhkohV!hOaNS^U<6GoUD&6NE zReYd&<;Qc>dVX~v;&59rgLmGrS*V)NLrWF1DEbh^N{I->U;sK$dwgm@;BY4e3moPH zZ@(BV_G$`g?*(G0ofuF=SVr#_an^E4=_GOU?Z&8lLtNFJwGGetFV00}`v%n+Kcq?S zpB65gjtFRKE-H{_Rus_SLm27LP$Rn$_?Ywe)>PANu3pTO@&3XiT9$mY4p{0;Ytj5T z2=tEOA*h0##+(I_3cu_eJIp}nMa z5Ffz(BoM>>L)-Hj=;_$yZ1o7L-LQjRM9~$V-EX7mp@_lJkR#7lK<|Qe5>r|)q+=7e zwcWWgvVG0B?MU-nm7AnuK#A5up2UqnbySX{nALh~o9@X}m&ip6TvHWvj5?{n!hi_i zV^O8U8;2rx^qt#!7%MjGxK&q03F@}f$o(wp6~JTLAbV=Q&1>%Cfh`kBSYCZbTHiOu z+ptn}ZcBt>NYm7jk6Av)qDMN#ECVUgI3HhbgW zBjZ(VsoB6&nP>JFBP8ZwaHrW`C)!QY!8+DfP_`;KA&ERN!PHmO3LekabxoFO+YCJ> z9c+!$ZQGO_@zYNU3wVKfzMC_ zT4_l?|I%=Hzig#V(ROO=vRu*NC=LS-j)W2`rb)ne)iPD^o*!f(7Hz-bxiBD=$# z(QDY-KJh-sxZ2tgFRk~M<+4yKLkFV+O}~wQdR(x>;)BuB4H34MjVwh{qfZgN-~p9MgCv8*n_)d=bZspZgQu!k*OSsRxMS(Z+emJD&pe4K z0L_(@!e}~bWkQ42Ly?so{q$JAoUzCr^Tjwmm<7FePSds8WT?1ErkxeREI>9^?CA0(dL zY{av%`C@fo-X1fSmHz;4J*S&9!achV?5Cdj3sq3S-E{OZ;I&-Qo_d(@kjLGa_dE>h zM5el2GxO{sI<0s_=c$gnmByB`zB-6y6tGkO00Nc;Z%9$|pL4G@FXuK%`AmJbn+{B? zxJ+tcm1c}h8T>f_oc7K&T=ftRI?n<2iaG9-77f;aep1O(5-SdfQ>~vPfC2Z;r=wZ9 zc3ISZa_3L1!r{6>3+?-J$7ig$R8X~_uAqu~Vv8%SD;^z+mI~i(OI=z~mav@m5c85otZH=X81Al4on$nc zkhWlYits)p_xTA}TcC+c&iSjjyir&oj*f*TCb3-gRCK#!;D0W2o;7(^i9sgQmLrd8 zF5c2?R6B~0NpIQ|m6d|v3dpqZJgUH+qDjY3A0+AYM!2rw_j(!KV}IW53-+Jv*WxAR z*5y}eri1XbvtBAx1t*+{AuP;(+O`^e2-=h!0U3w(WwTzX#GWH>8mihDfm36#Q>6_) z0O3n9VorPMiqv(Tv2(|0Q)shoU9sfVTExIms>ea~Gl|xmfz#N62_Sbl#=0$ua{BvT zk0_oy{t%*ve^p%zOFZiJAcasH842x$*M`D+%5s>1z9M+9Yp_bC-DUE6jENpYE4DL~ zUsvU&+VDHTC%+MUH;B=0dETp`*55_bQ+1Sp9Vy5vktaOMBjHpY!zbHR_jr+9fHF@5 zcJiHU-q7O+$%`jX@JV z>s_S!oBZZ`PKN99YZ=6U z(0cro-1Pp>kbJG$V zH2G3SayyQ&r+0WYXTMx2HwCIVp{hXMTrcX4l1zMl61~CGPo!eos~{h4#6@)8Cdrhu zpVkK3{1(1aZz_9}y3@%M29l*5o~B0rS6)U(I;yutd+HbZNS1HnRQW`8%y3gfxGnNB zUMdAae@rzP3!ibHWAUvTwdjACbL}%Wc`eEeNp;Xvy}bbm=Arc!;Bs@EYFicjymyN! zUC?Ifw=MT7*lJE`Y7k+ji`0$qaoaklzJ#%dW8WR+wHmgp5!6kOx8SkEHC218mi1AI zfGWw8$slpA{>Zf{B>HEIsxEN7WYbMxp^7z@o-Zb(23pJxhEg&JZ)2%cQlJ7l_nvOF zoP)^i7JK_))k!(HQ^J$QF)o!1PhK&=QaB??vKpUo=NP;~m)T>5HDWaZu_9Po#D_q|{+=P!35j z)~5Ok9^EHERc-p~--tVMuAU|G?M&4Zx%9Y`13J$+7_nIcc>2Lv=*hFNDOrKto=D=9-yNK9~!pP_=U9sI3u*A)D1nvZtd11H#X6)w(ciQ-vYrL z{ZY}Hw(}$x)gN4 zWWmd#_8+FR^td{v@{gnY$h=Vk*1N~5bd$|%u~SJUM@Uvb#*_}Orazy)r)yG_&lvaj zne|&PY%f?LTjK?m-Bci2NsSX9E=r=v6+Gl~ZK<&z_&8w2yn>_)n3T=bj?S3Qfw zJ7b?YrBHjT5<&UP4M0-G9cN%ln%hOfvaULc=uB>dyK+uB_x98(r#bIB25jCNcBbXF z+M+^Wpn#;3(?m~H@s{{Yn00l=3Z<)QpN&p6gk$8~zFEfg;- zai8=2%&gVe%-aV~)>zx_wEi+&WUsr%i))ydrlK83(oTI%!RmhO+52hl4e(^ssL9I? zu&Yi0$r&)dyJ~n*wZ$A3?Y&P)EkF%hQ4)zH5uwMd$XK4Dc)`}4e7uCmJ!e~RcoNdD zc1CFoGSrBLK2|8x5#bjAGmaOY2AC|M?Z^k(3%59xR!5~fNoILpYugf!VCaxw-0 z*DY!R>M^C$yB-A2PY_|VtkqYV3c+nGRcGkwjP?E;I41|=N)1hF*w0wm(OOp{=@c8U z$NP0Pe9&6#vn+BFvMj4ALP$I?X?e~&;A^+E5s+uKP)h*W5(TTob*Xi0>~*ox)c*hy zKiy8NDFwPn0l9C`jaF(!UKSKExucvJC>R@dqr4+ zXsUj*AgV~=im+qB&Z@MOYQ=!K1%InP-zl1X9;F*B20n9rJtgYfWVG3D43o=E8dq)# zqNy8HSC#4r>;URm5QGQavUTlrtJu~k!t_D#?tc^cMs$?*W8b7-HNy4dPWq$Tn`m_@ za~(3^^dgV*YG3}<8nV=~>8jq}_In7}q~B<*f9u@NxbWk_8Yv*7wNXOC-?v<>l?vgO zu5f?N?hFw0F$DiD)q-7yy#k8rx2E!qN=JiF@pqgk3cwzlY4;Js2Lvq_eus#V0XlpNrI3F+^Taj3?TP~>E0aLl$0SfPN5J@@-BR8LOr zxA#3ozc_a3QZT@KaB-a#*>!Es7<&-~(`bms%zTVWU;H8e0HkjMw&NpJO(a}BWTK$A zIO~g~4_D6|Y0LF{>B{bJaGy9Bd1GkU1d9!UIOL0buM`PzddKKCH-FV z{A#BMr>pYLxYO%#W)Gx$cHRA?J|UyuPns8z*X18T z!(9)ZPY^Q5L1jD!+vH4;+P299WtJwdqF7Huj+bTVqUD+XSoa+dAz-s7Pi3ciJ`d^|Z1!UCa|B z=Z04UI0IbkDFg=N<0sHmYs%+7(2rw&(Yps_p`xs@RMA!i{w*~!d61KWQ}AaUUwuWU zsg!OQ!Tch+`bDp_wqV}t{h+t*=ci~XXdarLS7{+xRb%P<4x^KSr0i93iywA7c9t4_ zJymjxkBnGu9npNNkIcN>NXL3;n+kr%opO~R`@JI#a346o+*{m6zFjhxa-l(U)Cc4a zuc*g$O1Z82l@uGMNH<7bBm(vG?lgvGT+55xYD* zFyu&dyRzYIs5BOB!zCRQeIjV;AxSD@1ZNos{q+*uGs9tKOIM>>p9+8C4F3Su-YeX9 z6VVOT1udjW(zTJ%i7HHa?p8z7oP264ZC-%pBx>V`+_(5^;ilxbsII#k^~O#nt*f2k zEX~LZ8nUX7uo~ql$l%)S~_2ur4)K7ThoI8$5u^FOaR4NMt!Ixc*-H zWnXHPanyB;RpsD@>kw47>d7hYm+@HYp^Dq-88X#TB6-ZRDZ_Qek}^F&4Or4E+Mtem z#{g4>$Ib{+TWE#)j;|_|*C61;NFoVA!wmcrf0X(%j- zJw<0iBy`X#GB+R2!_uWd?sa0;DgsQBg=S&^CUi#4@Y?C(9cixJ74gthss(rvnPmY^ zK*k62YdwCvrKf2bB3b=~Ydh@c*hXv~0{DMN6!o$rT&kc0GR#=8P(KGzZj~Q8&gw3_ zlFZp3oMx+P+%SMkx?d0M6iG){L1w0oLWD;-Q5Jp)=^XR@bscYe0fWK!lO0wv0E64Y z-Q`)XFkNWjse);hX1Bl!#nFtbDQ{1I#7?_JaKm#Bzl3s|cag_$#wVL$Y`V(Iipm;F zh-8&|KAMTZcmc;tv~EZ$$3N3n7HYPPFwewC7M}UU&hOzhvX+;o*?5FaHV9~`(kx(d z0E~jHdodmL81W`fGC)5J;&2o*dY7bA!{Kw;w`5mJ=*+a#lZl|FnO#w(QV5i@j#M6g z$5$F%P`;wQ&l%||d{0hskTMVDGnfvNvti4%URI_=0I*g)gAaB*YUrxh@&ojl z*JHP8#-D{dF4N%$hB59Gr&GB%3qb`G$ML!o>uiozFirseZG79rb#`iRCBEY1kKS%P zBStI79FfWPon7Ib`hwZEscf$gG+h+rKvc279dZ@p`I!EirqJsZK|{|l@l6{&o576b zqM}=JEQpfFE=cJmgCRVx&U4#a8r4>@(1S8LA-UpI*X_AhSSE#!)u8?Zv-J6>c?qb9Cwk{;2+iySM2ZKv=p1h0Wi5w z8c$a>49iV)rKyQ>)5qlz)CMxkjAQvuuIoo(=BUW;?X2nw zaU5McU@{#1BHP4zjlXZT&wRr4l|EB~4g!yCd}@r82>Ci--xR`)HI2lY@6x1I&0H6DN4`tvEgcI9LMd(Nx33kG=Mmu5IZ zPx?UAtDw(C;&A$h*x;%Y|%Tcq@Sq4=@|Ldjand|Ia_A4Jvv9%f#0)s z-QCr4&vUL7b5S`JG~@9h2ON)JPi*SOs>O#HmABf+GJDR?*xnyotrV+GOGdPiMTJnH zbueBsa5ZyPI2?>hJFd?|7*^{=EfRSYE9FExs_-&-I$>2u-HI1x>jnHyx=CxcC8Ck> zReNJg8V|%`12ZuEm*4NM8Avg`Du-@+MGuO5KC1iS)mG59PSnQm5|T+`Jf%Emsg!%* zfsE>_#9hUBUZl&)U3cZW2)^513RZ1+V2NbRN}*YZ^)ln%9{R_oj=XHNbp(u& z`D0XCjae*BhXj6qDX#lDr4?%#2dhJUpW&qRb(PmR$V#bZc9y64oXB!GJ%W>f29eU# z#F9Gu_loOvK;Rx@dfQ{6qPKNP5R?K0fq*?(@1M4NYV*ronLNz#a$AX6c(+<+aFVP{ zkbe>=e9X86_X@cu`f9GnuRXZ!nB`t*9CwqRg2_{BX=*8yG1E2f3b{XY1@G9Z043k%B*1dA+Es>Nh=}D_M>!VVVY@rW}~! zhBjDmPhbcm82g=Mueg1h#~llCHF^L5$@Vd!b+lGkEq0oy=awmM6w<|0S57(|nK0{? z!3ips^pnGO)hCo|tsmTH`{U;$s`ath9>=6L*>zXu`dSM5m8_+Bzl|fQidXddO0wVr zG0r>c=fiArz!Q}+i^M9cX<#sO4pypnmP$*6k(wyKi%(YBSA~HdmOYA}ZE01XaaJIp z=zEWWneB^=jOV!hr6t1WYHIlHRQ_ByIm(DaVly{OXDcBXY>q~%^)}R73&VcA{&DoC z(7TV_{ULn~9XFz`BZ(yo$s-J_k&Zjy>fWl9ki)F2c0D@@NxSWm%S`msMi;3crJDpY zxBTh0QaCat#&RbjU&2~1(%I@&gTW`81LviUI}^~zPalgRwMSx%UOi|D*X@eQhgq&FZ<7vVf{ z)P-B$Iy5mu0wXy-=`wwF(JWIlv+svd6ocw+<<5zDNyyyGEdoJm)-zi$I(OR=CNBmSE5j0phB1o7C7oU-*R>6#n z#h27@48MZvk(DKj#Ccp`{{T#Bq}1*BiNhqqd19L?8>t_VeZy*Ius0oyl#c+hAZNFHYNJ+BN2*(BtFfEXCmi^PzazRln|{KtQ!^hjq8$1X4xkyn zInQlJ;XWT@*c^@~qg8rVnD085z-u_N?21VIvW9kPM^Pn=e}+8goCO?f>3T|nDaUg@ zcj6Y8uxGH2S_dAV(>i)qPyg2ImsFA?P6J5jaVoJLW1jy2aiv0FW2|?~1my83?pDNz z7Fu%0tEtOpoNLXXNfpU4Q{vv++&jL_^c!|zK`It3s;ikm?4zsa=SbhVfZHrI?5oxy zZr`(O%A$JU!gI{1y~`2KSZQ&m9ZYQMi0LQ??AtF_Mr7&dIL~b#X9gc@Gj!jx6q3Rq zwo#=_^7>5mMD)ZD^I#50_}3=491fGwa-Lc|JS*@j-Qo3(Xeen7!nII!%y5k>w|-9w zqfIqrj+~gMnm2NIjtX6sY1*4ot}823*k`TFRM#R5`SJ`F>LV<3+gx2=kwz4SKJ&_~ zH(%--hqMKbt9n^2klHTZAWM3J2I!@?(5!G*)Jg1(ELmp9zxUREQQ{W`+75B;G*sv) zEL^TWa($D2Z!M>~==S~QS)it=jL+p%$Y(u?>1m0^R1C7|TD4cy*)8}^uG4AmOsMHB zC*2Wm&lC-OeSb%{=pv?ol_~ss=JTZ>H@`qpt&Wpb=ce;0+fC#t9n2|6qqx?ZgN25X zN=K959JlIprN@1Q_7OwE;zh4Yb&X{wp=CH#ZgZcFA!DlJ<2_X;q*r){vZ(LzvRoBp zjSgZAGC0zA&>O6tt4ef;``?7pRZg(js2-xGEV6k61pwzIy8u4=u6;hikYrZ1Omg^) z9}Fm~yc*fJGrA=DtF6^qrjDYJ8kB~Z3?x#`gSkldZAoBKxHFNM zovPd$GHuTd!)Vf^^_6mpTV2|$b;&WAf{5s%&U$*gvtWO=lNGT|tH{qHJgZ?{s!u(m zvtoE~MD-U+n7{dqL6$V72#2L#60vju7iM3M7mZbF^+X-G;b+ve8cOtZh0iCFelXu_ z_+xWBmQBgJ!$VPAveVGf1J~r!vj<|ux$0w#eX*)*UfoTL<_)X;Bfri`ez5{#zH!vX z{XL|^0Ehw#1q~};mg(RO{Oa{8U@$v(nPzPBEGunuNg0kQ8Wvy~M^G3fV?2DHZBMAE zmB2VSoK(YbCUf@TvRB(T0@YeBbrjbnm!~BJ@S?U!G9-jx6WD{SUgTfpo?qeb@teeL z_4ABJ4%E5UZ(BoKWsVeh>6bMTs{$$!@cl~IE6+N-(pvYasNi6A_~vGHGzuGV&nNPP zl&dHzU|8j1L{B9Ic%OirC#u`M`hf0xlK1qH&jzg87!|9 zajU9G#E(!aansm$=TU0V4H#TthCigyXk3*%_Wtpxo7T;H+xES^5-^a)D$K0COkrP6 zO5pV<3^CuGE$4=%YR4m!D@Kj0v8*SFlv|?7ZIT;vES1ybLp45duf`R_a6uip?hd$J zN>*{y^dtMhw9fpF1g?+8%hiIerke9@6VS+2>C2-4sz?QD2n>Nh z!bN9?RM;V~f6kN1d`a0<)yTI9YANYub&>6I1Z9QLgVj$i2vQHIVY*y)*G*zG{n8h> z{g3&X$kN&uf(h(@c+IeG3m`O=`(ChA+U}w1sKMm}sr9OJ={Y$le@$M|av@V$^tWT! z{{U~1lsD05A;%;0gmqO=-l;_L4xcT$XNYzj{v{_J^?bGqMtWnksbnd@?>SrchVYtt zTdh6r$5!!99ja20w^UOkhYc4==Okyb<5fDnGF1D3&hFo|z0qpfmuc-Qd@+{uLddg^2uD0gU3GFPgzA(=L7(MANq!vvFvgpt~)(t!Ky`oiiQe&iH3SQ z`}B`|XN^-+rWPD^5v#A;1NMYB`^9Y5R)#v$6i(ko8W_wId55YFlb&<~(A~wf9S!2dO?QH8hY_hvHmLomo zpjtH?xCF*d(($wRl`OH{E`2L9v7t2pPc1ZrA7|+$3HBuF&aV)4^s|N?v-gMNDz#o6 zQ6Q@09dXdX+n0(J7i(2@(krC|Tb|D58)e!Uj7c(91a<7$KW^_(_> zph?DMN`BF-ra?VOt4Ko;^wIQ5AYbJ5HyQUI-&|K_sPsL3`ia|keOTZ{hl)Nn-}hx_ z{V!;b=!?2WWEpuG->?jR2Yhj-n?lWlXD75{PODHjn*2N1D=y?p4^xL9;%8xz(HR;2 z7?0Om%@ZBMzi-NCb*wfQotL*GSZU*mA<~EyQAe;HhP2>dVq=_=a}6kXEBTEQIsez~ zi|*eQY-;F_l~A6gBi~*TJq8J@TqL?wim7_)Otgv<1RspLw$J zZrk>1DXurEQV3xMo=FHrzR6)9zeD$4D*7T?`=n6H+o%E2~z7D0vs zIQ3(;b>%j#tGQ=)R`ovClI>eYvYMi%ONBz!EYF%~)-a0-0gjRLp83}`*5f;lVQr{! zv}51n2ql8ax9P=A)~XsndQ>co6!kg6_ve$_QoXg+_lOb%uFHPtBtiSfgp`}+V{+eD zN$M@Mz`X^g7cf#sp3+DoA)UT5ajMtS8?yGd1Md7Kt$NW$7L@0?h%4`b8-C+_nx|`A zCx))kD?C-cbE`_kVNn;@DDSL*w#>RI3_e_$u=5nEHGqQ+C_Esms-(Bn+-qg1tc`;S zUS^U+e%U3sBikC}=q_Qno=<5H+v-wO4g}G(WoKKJ#!uo&HFarr-S+<8x=;HLSEzHNGHDKu}ft^NjPZwr*U^^Re7zb>fxknWr)JM;RPr7-7bK z+NIQ~Cp~c)sjxBcK8tPJ>S^Sb>oAfLmp}#sXM_3!@1`~lm?l-~btMiLtQEXoEpSR` z_PsQ8(axd{lut5hjC&8U_Wt@qc+a4JpR}fDEy;jBI@epap3IJ2#Va*^VN{}~5B^dq z1)BrY$7~IGb1ir;$@oqJZs0{0#=l!`7GK__f5Q`*otr*SPD}NifC_<=t18Cj20-XT zW4ssNb;-N$)b_ohD^*!0fJb_`2gG~2mlXgDbv|9HH z+pV_5s;adixzWgBStcP*l&=Y3N;Gcc&^ROSq@`Ami>7Atf~-Vf^#Hk62R}OIp!$$X9)}tIq}D2F zE!y6ph+A)>s}v5Z&eKK$bPEOvF>tls)g|pLu|oN4`H9iD|U-jZ?Af` zdH{Cg=fn)$zA+!-{LRM%eM zhtzxj0G!LzHs6Beh3qTSOTcJXDAq==<;GcS}n2^;}{S3ddUOwb&S)_vZX?}<&Q z1Af~6zZkjk1Hzg2Wu{4XO|(Tx1dQo4HC|&fjFybT52*p<5!mWl!{aEskxB2&X)jgc z!^!wf9uRGv)wEW#Z`I8qqMkRYPN2ienUsjZImSWY_QBLPIcsnRGta_zaYkI8aUS;D zoSTBl922urR*2G3FHv5(Ix*3oY><2E=9`W6fX|t=XomBt?@srX+UYX8!7&YQX=t}x}YE8t`+9_&6 z)GbXpQBxdpdX=!lk&fW$B{q4WSe$&Noiv71x2Tb9)EjncbgkRf5>&?6^5?2p)n#mB zC_9h7yc!@|a_0m6-v0myS#zk`-;|kOY`NFaO#{gvN{pIlm#F^$?#CSc&bm!4_P4Eo z1F(@T%A|FHHP&~df}&|8^CwzqO*BKOFn)rl5pX()?~k2o{69-dFej7ok?M5}R{{&| z9kaM8DQPFVK_Hf7K73AqNUGkfI3IU+y>QBNh9q&v#-FX$#SF0rLXEYcoxj5h zCEZn2{a53+vb!co}J9dd_Tvpu0J*t-OcU4rY2!;w`3pR1rmiZqV!|Cd?&m;^0 zX1?326oH;hKd!Rcsw*is14{5oNDoJsArQEJ{b|_!jtVrW7yrO_dWIu)R1T? zT&zJhki zMRxV7yIQSPw2)8d*7QkJG{FL|)2I1yD(3*O2Ox5PU1l{bP;4jWWhLlCpNyle-u6w0 zwj|zD(wd5i+;&9BZ|?YEs?*0MD#l6tTdZv$+>=_?>!dmg%mB zh|KNu)G5^@bpB_rrx`w@{{V3sdr9Gz>VKJG+P|F8QKavKiC=Z_pK#Fa8;u2mtX9+2 zI@DIsfYkHN<&NXnoE#DFfvbk_@~Mj3q_J%doz4zH>|(oY&{3sgkn^bXe6S&?G_x#- z+~rTF)9y7)cPn7Zi)u8s)}2A&2H>N)?rN&K5U)vYS|}#1BP{PFN|s#kI!IsZsC8BY zLpMMr$AgmgHV5?o0D00kt(mbmaTL+X6c?{7RMOQ`hKiv;UPqf41Ru6@jbtrKpC-53 z{YSC)&$;%G*-J16)XL}a{0#HJ>I&N`UaU7N`6^^JYcdHWEhr&+N`WCHa5)3NeK+A6 zrn1IHJ^14poa=OHN`|i_H@`8Pb&{qz;)3!cA(Mx|1x zClfn$WRlT_k}n~^9CsaEk0V}DsA9Z~98PSc2I6NO&V{M`!ylN#IZmAN53tWaZFDt? zQ-PBMLj%_WM5m{oS=wMs9e<7)-!gQM^?PF)UZDBi(>;uq!ZCr&z{5dZP-v&>ez^>D3KJ}kge7{g6yOZ@9BbRRaC4mW?b>yv zr2)Vk1M`D3#+5hgMar`^Qmd*~C^%;6222)EIZ{1_skKe~q}|V`eiG)j#^5Bs6(o!I zNAIX7nQJK8FD8?v9-ew<%E}H$QZUAQ^PN~5mFXx>8?ZeNe?lYr0!JA1_xFTe9c{a0 z_G)X0txB4Dk2DyN2I!Ek4+P{nQHB`dhLO@}z~!5vBOcNnZmEOd569jPZ(XTPCEAYh zVwKXajbfIbcv-}OqbxF{F!uDi9IIy}aj5PtxHY!`bH`ttVwViKaV#iiue?)KQ(hzz z8rSQK>X`JTm<~~7kB|lc!wepE-450%1m`~T8+O(~QPbLQq_tLU^?9q{j+%`!w6ju3 zBS6xE6!YIFzuQe!Q&dS|f$)p9i(vGenX(IoJvW*4l1Cy$-dwT=9WKO-CQdNN+m7Q? zCI)!~NR4FlkS=?k+hV%Y*1Xb3EJ#vXW()(VU{|Od4C9c0^QhU?TsY4iq^me@TSiBJArWk{hj-oHQ)po_~^7|Q|AnVgaBu1AK21fylY&XdfRY%t;~ zcP9J3ZyJbF;*TKeaI9F#BgPIwmS4YbjXy?=ftEXn`uwMc;G8cRjV+P8Hsv6rvsF>f z^|6F8^u!!NJ1LTvk2ks4rNoNDP;0#dtXGi^|a&>eRcGGz6= zEU~97NC19kMDlxssu=bY=;!RCnTBrx#-XBq=6}}|5(yGRk>JTdMtI{|b?W=`VQM7atrO9Gg z@=U6~?%G|sPb*xNf~tmypz18lae26HW{X`D=`PFjNs(SMsYnhjxkZ;7Dy-zUx z<$0x&=Cp&&j*TM=lA}099mx47S>F+@gYIr+{{V;FHtk#q7s4Imc%y}FH!D4L1uW9K z$2_XjMgtzCV=hhxIKl1PP55oaNL>0)>mczxFk!f3B7Ne<bu8pI(tD2k&kJMx}xkNGUwtC{abFi?_J4pib$<;y#=C;{{VqXldd|a z!5EVrqfwla(+@Zw|Q(Dc%rMg)SThPq(zn;o`o+6DnrM8GPlQnhb#%`s~;SQfVW)fw-<=_-`(TOhUW8C)5HcmrcOg+w^1J2s@0wA zzZk*%r_Ow5NR`y5JD7WRode)qg5gK>W=b6wuZ*WIz-4v9!8YY%%&WMtwe@^Mlv^CTMEi zfJ4aX_(Do5>!n;X!jPi0eLutmlHrGbIMuax-r%k}L=APR24Qfiih_*Px~fd6mW&>u zCr)$5p}xUVWcA0^OIjCfc9m$iFDwd2`cXORj${D3E;}CMohOTNg*eZDXwfO3P|hX2 zzDAxOBINA&LmSV90kO_NU!T6L=xyT`bH+2oue5DGnP`ZMPELHXqo>R`TmnA*^<=w3 zk~sLqPD$ntE4xK8s-})unaC~NNC*0lJdA3FqF55kkWbWnWsQIW03>7bfF2@lsvWyc z1a~?Zja5wEMYcDo5k~Goa>aQ>9Cb^TzWU{;Go;|y#l9`x=+Y7J0l&p5uKd;LLmKR;;PQ0Udp+5;HxcsF_vYZw*Q{?EBGg@KnX2OQHE*zecSm zmPJ`xQj{@ToIS&g;PrGLRk!^`7}E*$3`)^JRf4}s2$NNMlGhTYQCrYb{M(M=@O5!`^!E+zd?RFtUgjXdBgm(w^>$bEwHj-U`1EOFTH#^#E229g}m z=M$LmycZ~MCb4wHKw=yFj-N}w3> zh!rm%mEY>gQ(hSBZ{6-FEU|yvE*nd@R@J7L5LO?(oXFo!jNcuqQAudU7EO*_h>V&z zhn=u%->}gMPAg!{mLG{)4vuWBC*7%s-D^0Siuh_ybQuWENVsyG};I#h~z zA*cu}7oSR>pW3249+@wqn73}@$<2S?BZ5Blu~32Sp}44`FlpFWtAPQ;+kcc+ugZ;X zh_-Yp4wwRM+xhw8*jceKt6}|OIPpe@g=7^K_*n1&^Xc(}FHJ?~$Eib$ z6yU9u>KCYj5&NCFZ2`;V~wy6x`Dh)PJ3D&BAK)$#;R<1=X%+19w2yCWsk1IZM^HX zm-v%0AxTNm9Q87DbMgszgt<6=bvNX%KCTUx*PGHD&LWrQO=*Lw;;KpuD=wM~VH5kJm#2{p(#1=Yzp)p7?l><=n!QFJoO@MsP(D3r zjAeT$dLX@}8n}kCF;OPS$}MJw{hK*6^OwQ~%zmlmgodJ&D;T*836zb=`4f5M-k^3z zNuO@55H%869DYu$I3h?%6W#H{TZ*rrInfn1!8B*z#+q?xJR@es_;reqLgb%029${m z*Z{%3{5{CNXY<^Pch*G2m7%0>*&g20T3!*9@LTWjz|Z$(D7{4~jY@AMS=YC0U5MA{ zr!uQI;RPWES7Lr2@(Z|$ z0xmR4M|zD6E(?!37ZAl8R zAJLNP0pG-4h~Q+ujoof(p-KttgKOoN9}O8hoZ&g>nk(~5^CgUG%&b1{eVw@cY^vor zS0t3^78<9uEI-?91e2u_-DsKATUX@C=|UCb{w?5fC9WzsKSig7Vn%-B%+)32EUN=F zN_||TBc0r?w}0E*Al0p)(7aizSEkMn)=6j#h)^O*0$o2E{y>GTSU+nCU(PwcUYHm4 zoq=92mE=|LkEr$au$PeFx0^>kJ(EVCIR{{o`2NDB2ZzxjZ!~9v5U2w`fFP4yk$(ns zvq$(!v!!Ox*NZTvj5$&^w~6m(QZ_O7=|J+?xf$Pn|8ZpDAhNHjYdv7qt*jCg+OM1C zaFk`2!CnP!E9@U&Gu+=H5yBoiI@q-;Ps(2LB;^{m3)g-F*LD z2dAX`E6*yYnRNx+N8!dSfZn{nw)N@I(F8^4WI?gCu3{ug0Ny5{3_m2To}749{&d7N zad|Owd>QTn^R?%7j0G!>WGRgB>?NH5ThVd8$T{9ISckMpx(~B!x;Eg;h-|Zk`1j7m z;MJ)iGgTd&qUK8JdX;F|F+}Enc$~8}T)p$)eZc-W}MIS~VTcIJ3x@Nz>ucAJtf7fu6 z{`d{el-pZ_hH~4BS#u;yoZg*&R(%-l9or{~ZmUmnq9tP$cXxAwxbRO0LI9C04MC3Z ze*{G7)JvlDdS8fUmue0<_2AynO5)+!B( z7C!0uM`E_J-F_cS*3x>3T8BeHL`2R5@MDoulH}P?vJl?9aTU{ioI9L=jSmY<#S1Bc zrYh4!?Va>rz0z}A#uZb$+ojVdks4D*^O#saG3epVsgmr2Z?v_W=TyPy#9|+=GX3{z z1HzyYI?5%Q7WonD8hJ97S0%v-Ar@&;T41E-H$C?vG3};tYc_fJ&-6IXOmvx?Gn_2O z#>y_K6+Q++J2GE5?CpX~GA$2Zp+dJKPe;(PBy?ci^V1ajn>ww)0ptrydlL;9yfl}& zk|lLu3nuV6@q2*=lx=y=^#JFvl+Y1G?)KmpXvd+0xWES6fQ*A$1SGMH)Yy4eAgD(8 z@_^$M!sr}P1USCCq#2ky#~a8qLtP`0_E=dcKRBrQhoHDSR%OnMP)VP(!=h5PN$D24 zL3*e^cfv&LJUVIZ-i%a}CbDEDzgv*0pfymUn!i~b>VnNA>f>&$9uNT{^_1_X>?Q{ z|EFT-AdIi2r*R~z2*EPW1^wUbS(teUsvqFVc?U4I%DB0_Z+VxV55h*RZUNKyOv_XS zIi9jrDe9V?Wvv#p_3ck?YnJL==0lh#MzwM{iceEE3&clAsRF}W1_8UGq@Y_dM@B>~ z{{s)+t}J?dXiMxA7!n>ZF9B$km5@l7R~x$)$B<9wyHuoJIJ@g z;#5iLy}Dh0m|JnxqE;1AD^p^|mhE3U*Gu|Lr&}M}G`n4i*aB^lMdauq9#s+RCL-if zS_$U5Yy>N~u0hmTKJ&*9@_)s^9#uH<1X!hCxJ8)17Fdo9@Yqx#p8DGN8J04ALY%aQ z&XjIAmGJB852z1@`&5A0l9$Zv$W9f~p>g*^hZR*0%zK(8L(`t20!K~dnu&Ay=?L+m zlgYJu9F!3g=GQ0sH;4qkS?{r|e&1j@yX$d=AwbmJLHQn7GtP2Uj*`~wK9rxo_4^tA zeYRx7_&MTGktw)cIaSN8ucrl;mCoSyhP*#YUdFRNU` zqm`GAO#03orS=aYv@+l7={3vy2(4%WH1RX*wyjI-=3Vi5-*g>&lW#;f&Gqe)L7@`P zaPWb&=-^T~Rc;19X@s?E&VH-%CS;qe1z3)#+26xTIbJYC{m?Gm~N#l~8!xyo|dD>!iqa8KUf}+vmfVC(4 zv>A?|(7Ei|mNB&)%ZAgF-`08^5ixI&KgpNKj>}_fvidR$?Y0g<_2GsI$WFhf;VWql zFnW9JwXC!|j$8TNE4aD_M3Zim&|H?i;41W_hbpaL)~-qb#R=i@l~FOEnDo}n%ri1Y zQ3(g{Q8HkLSrq7Mz3N&@pd(ex8>^f zobHdTe7w1UK;f;RvQT^zrjyiaNmEr~g)zQEPc<#~OCQ61l5KtaM7Tv@*<)DOO!J?X zL%h}Z$1YVDD!J3%I^lLj<(Z3A{mwC@_~JVu!|{${J2Q6g3q}B1{$c2@ZVZp-LZ+s} z$+)sBsDIP^@@UU7nRI6#<7snRmL$4nNv5BjCQ`y*woVhb9v&{EPD0iLoA{5^k% zqyx{dJd`KCH48&{Gt5NS`mmq?_xy*z?cMO0GRglw^$SNA+fp>?19C|BEb^Hn)2ZDd ztCpnBSoQ8W86Le#=y?UxMre68Wb9NtM2ux!)XcHQ6A^i{@C$2G4IR7i{%GxhkUM)7dj57hDCM5JI76b4xjvSWD07Y zEj?p7k|WR+%zO6pF!X)P@4J^**UB*rW&7FZJ*|0#Z~b2+O&xiZ_ZXy73S<>;aQ?I& zQe*%fks7?`xha$SAmlHh=Rv*^=`K!eCGVEb#8lnN!fD?>W+H7-Wg@lJ4RqRNua7wYbLW$*d@tRq)Gd*L zW3((9@r`d@cN4oq8%#l@nH@);cSh zqd9)%lw;;ado>0-!V`Q}*jt6c-iP64_|bWL>iv)?3g~g4Z88v#{h<2SlssXyGCdQ= zVWmp6)=r4R&bH`=qj5EBzL~-`nrt26(b3mF+naoFnfC*_ zjaRESAT2BmQKv+R@j90`N$#)VL3LDwmQD}}4ciUnmMDeLM`g7R(qvK^=)U{a1(PjK z4ZOkLq44RL^h9iy>2(!BC2Gw7gD#7N4Sg(<@CjM^ErNi;gt*RcV3mCCqck+$LY z`22g3NAG2;dsIComfz(r-7@W~K^m(b1l;c>I+|aW-$M*CI9gQ|Lg(MB>gM|<1$IMu z3KU)`x;1!~ZPB~f=lQjgXFnZdD%H{${X@ulyU);e_PSC%r?o)GylIw~9jNq2?=zhs zxa5GN&IuwU0%0MnR*L1>M7^N~`M89}eZJOCK;ey`tbOSS(70H08g_Y97%u^N-p{1s zis{~mYldcHa*duOmOG((pz2#HfAcLM347q&ENF z1YXOG0*Zo_mNB{ZIsW*;`NY)^jnQYdTmGsmPH8;keMLu?RE#ZC*{RugVUs6+Of>_+ zzvegWrJxx+8=}G%lXr`5k!)^-?^x)^O_fK zh7c%k)A+0&3SBd_H7yl@x38p!lT7E5MpS{ZPD&~>LeHgWOSvk})q;hyCvtesLx(~=!W1c$%( z8##fPL#MH`-Af$SWC5Lzq3@Sd$~3Nkr41h+<<96JYYV)0VY7{$I;*#e+MlP_`BPi$ zrHLd)CFvcR=I4GXbrPh~OgQF}Aw3_@7Fz7!bS%OyKPtomYi8puX-@-j>}!%GxBiPv z=AXoX zhE^B%fmQrZwQZ~rt$m>(8Gc!f+6+P{!Ps(-jpYzs!0|O*U65YJRXE4e2+L8nMTigX_Ro#LGZtpu&R=YQVk1biXWF^?4e5) zvHJg_RY%+u&$t|?b~@)bUmWby)O;pWqYmG~n|C)HTh0slQy@O!9|;bqcZft+)GLM^ zf=T`h!0%h`VCGDHCuM2qD0?-`HR>t~T;}3@YKpfDvQq*0mTs>|pGrUW6X<3?x?m5) zdw^jjOUt8&!W+XBR#T-RS_clJFmI53Vg96~1tew}g5BUvV`JKPkvtzCB2#e5Ht8~v zuy#M>m84D_5{PaI%eIc9I;og|*?UbJQbP%{2_`#vm+_0n4!NPQqWj3#+;<|pB@RJ$bpiEFP z7{eEeUF(+n2ug3f%MN)q!+49T%;6K-%H@#bVD3S*)de&}?@c(d=_Q z?8z>s;2hV-Z|VZh;?HsqD#s<{R=2V5{K*(Te@=+!_Q~F6=;i^}m%?iolYGWjamrvb zM=_)rXeQ{A6XgSRmZ5XrSjktF3Z3n(!aVK2CS8S+rQ;YgOQVv)#ScZZlTT$uZ2pSF zb`!ksiO&Q&-x0_#T*F^!QK^3A9adn8%T3Ae{e>}(?3EYlrV(P1CcGD*Pa;bSSUYa? zP)a4Y*`{M9-pu_ReGDGjh&~_d|Dj}Mr!>ySiM`S-8M$IR=I~=HEzf!|Zn$f- zd#c$cQ&cL#B9IHbp=Ek7d#?a^aV_@!dh!(D9@ZUgrU+kyWQ(tA#zpW>CutQ0G zGSU(C1=ce0S@H(A**UV=Y`5OY{HDMcem@vyR{O#9p|*! zg7jWmT%M@Db0_Y`5o-P2%tC|rx8~UR(f}%9QacYuL~@V2XS4O!??3%YD_8k7(P~=o z4Pw#?1;ap5iiEM7C`Sk{*FOn)>KIgwt{ww;7r?>yQUM!lgzv%g#%Akp^2@*cS>4wd zkeEQTVjmDxyfb+|{+!><4hUHo7|+{ketU0@uR^i6mT#X*a@U%6|2w^@e1V5fS@T401o`P=tlTgLZ6><70-iS7;CSuDaDoMK!EqV0*=O;|I6=#fbP z1<(^DWwws8%fCK))~IbYae}I#qIx}-fAvoo#z1}=YPQ6lTpIDzmWR;35H(=M_W?`X zjDCRsw5MdEV`xsuu zEQnZfSottukFiGt{QnxMnscQvXdMPJV-tBFwE}E3KD)73>sZCUNcFP^V!MCFUmQE4 zQ446lB!CRi5udtCc;S@WhW%SOBT*9&M*#AuRNB`h3otvlp%7n8tFDDEujQ3bLN208 zkZM(mJ~c(qNhV6E9TuhPmg_FzM<&HMm~s%dns7X`$t60RgPYQllWEaa@E9dA`uDIG zb;myP)4GkqfIF9k{rl^c;;!6sBbNXEAvBd!cu~FSi2JbH{xX{vmggh*n>g#xPoXew zP;@6hEkwN^1TkTMzF2~MXhQzeOHd@^t(l1Kc=wTi@Vzh8oikEwf-t@fRhg|48#5|` zLaL5evpB$_C9CY*of2m!aNqc|D=*DYP4=Jn!l(7aYp)K_A*C~Xeuk6$XdhY%P9gz2`B*ICCx+*QZ$QXIz(fUDO}`d=n%x zDBS-I&9axzPDYMnW8f0wqoE=)QNG+bDkO3FDD0ar*tPS~kQFT^5Y|z$5ys2^4e`7}v*Gz|V@VI7_6xhdlQ>wj@ar^6&ABpm(i zYM{1VgU@N6e-=fh_>%aCxIUNo$PTVs2|s^==SP=Bn9D?33vpk3_N>uo!d*>-RO{W*wZYCo%4Ld}T$f@JJ<-{Xj1f8qU9Zs=mf|?j zCZ=`{FQ*uxYxor6{)V>CuleOx&omL6k?lsAz&XQo2R@v^BwFJ z`Cs^G+o18Vm42=fRpqUmOg1)_q=;^=|0d$Z%Tnd8Tfp6q(ZAA=oC7DnYcS=035)uOr=cGS4#M$fI%G=F2KhNF&;Ur=i-Q$J&`HzuwPvpSbG8ZCz-N63Mtu&d9%UpN=nykqT(rYH^RjuFb* zRT*y26RL1Wjp*HRMXAQ)%Am%h7a0Vra*00Jw4Qzh2^_Ni-q&=>Al0Y9s51kze@8)< zLrf!e;j~AvSVD|dF`ic8o~ZcRf82apRnU4LF0L{?3lKuG3}7j>MLEq_B9p=cawz7x ziue3iNDeNKCEll|k3Q{D{$Ez|x@fBkx{dbAi!f5^W@Twq%VaPWK5QMyfSR58#kK#E zb4~cK3s}NFlbMuW)p6W)2+U{nLaM*kwAU0UDWZiDjheX}k{mLzdyzsxKQ*&=(5mB< z%_w<9WYUA5RDSM!eR&IflTO;G*-;TB>re#1pyi`aG(gI%EFAKc!{1KiHfWvxuK1M( z*QZsBeTTgUFqZ8#-?1@^zV|NRX$&;F;G=Q&Q|JxL-ILa94}8j=3g+z9OcS~FW-n*< zshb+B7!^Abp<#bi#I0Nkbi~cfO(CYZmaqrq;O6;Z;pY8YJl*OcNX`S0CDN6!KwDbLwsyy~HXP@rdG6K%^9XD`YzX;p4Lh)AclZ$HWxEs}Bv&2vawZ zI~yf@7f^wZk2Xx;lW^3<*^pweUUf7$JmFT1OP$=PIj zvN-y4Y~8>FH-e?yD)ueIDLM#u>GrStPY+bbu{B@0b&r}E;k%a|VF(+XXU~H6h*8ck zM8tnsu4j>~ib;68GXn{cc#oq~%M_RSr1atYhw0UT7;d&zn-cwnlF&4Z30FOLX9C3e zvtlUJ#ChaN;>HLu?`lQgwz}w}gHrN~{*b6Cukf9fS4mf=Df{sT2 zJ<$Kaq(erIRDG=9*s-Ti<2BH`IKLm}sC*aY)#9`Al{^)<$DY;h!4{$&=E^C56!-EE z!PxK{NyS*)KwwANAC_7uk2_qQ;IXWEi(2t%`*OHB_j^bcM)otU#4j1NwDYPEA}j0B zyWY=Ct74=r%12!d_zncrzv<$pi@0~%b1MjA89B zAc#*-HgGG|lG%a?*PNNGn#IiMMa5V)+7^9X(bTwZvY9%lzL!5zMEr-q4kcJQDrbmb z{c6u)rBR+-L9a;;?^-5t<%Mm>soYf{lvRpJ(i*_z973qG&tDWG^)nw&G2YN zTxEw)UEtF`^&s-lTyU)U5nC+z9!tyT{l-(aoYOExHu09!ESX%f59RJq6r;_=5L7ym ziaFrNCSyXRHDt_8YI3l2-!uL}w=fFC${-A`&yXlLmY^5Z`t+u_31r#K@I6QdiT$z7 z_T&pz9&WxvlYldiOLDv!6#t_j(g=whXlxvI*)bDVoYLNaxRCf5DZfpAQE62w{ac|y zA+of2L)7OUUQ*s)F;&NLQp+(bDzxLP>i2ty+s-_`G_8F@{Y|-e^q}}e74goW|3ElS zP}-Sca(|1V2`dtH@3ytwTyNV@Ma*@@J;nK5bc92pC@zOQhl^4!MBmrsxkF?pLU;>d z^h!NlNqU z&ctyY{f$c~?P}gS%x=_?H>0zmS^Xh&C-CF*OGIZ_tM(*athwxPbChxz97iQe*@k{6 z2RGOAue*c~Djkpo|NT0ha=QYa1hmtLQvE}Sh*I^5h*HwG3>*+X$-zzB&6n8~5)+}} zdzk0jK?hqd0cVrUE9DUmg~bm42EH7Gt$nxIxCRns0$mI6*hub-iYmp_Wl|%ijQj1q z53YZsgywqlPvkLyF$C4-PBR?+1A6zbPc`FhOGiJv^s|SK*JYWv|D> zYPX{wy}QJjj6f|;`_3eG_5s6Ws)KrC)rq0BqA+=~hyJD>wT6c`bO9X|_BeIKx8#33 z&|RdZ;0Wq7WKXHnLNA}MNb4384c_T5%Rn&@n6lu31~1I9btd*YOtdt}ip9DLxb4Si*$F z98K(+LwkEc+f_v^9t@4p$XRlK?(zGSZG;5hI0IdCRK!qx7N)98IUmgu`Ciw^w!0zs z2iJ9aG8gK#a=PjXhmbLUA_=%?cANj3-j{(;OA%OXdhXXU`cA-A0#Dp_I1!YiR@(S%q2H# zgB8QaL&_6>!Wp;94~7%4GI_FA#k&|?Um;tJO!7iMh05XiHB{R0OKsAu*r$|b8yy{8 zof~A-cCH<~RnbRN*|I=EN5`fgls{N-qSg&QRD0sMP%c7*s+$YI22~0?HyjCs2*O}V z;)UG~F^-EH+(H&H{%Tk7 z?VQgq?ADl^YFYXOS^PJLh{AuxN;8@xEE8$5k$$A1&HnOs*v;(7OXA*8^hQ#7o*084 zOM@n7uD^E%?T`}*-|aVdC@U^_@A(Ev%_}6Ujqobnpy?tP?w4I@Zs;`GtG6=Y=@uG# zUuj7s4;>T6@ZkN3=)WST0JR4xsV78J`c_*=ztTtQf`fE6-EzHdXIZr}hZxJ9Zt7Wb zthfjM&Y*tgNIyvg_WyLCCGjY&3jFC<+kSkUxP(<*%&D2-ENT|H^(3U+ z3B_UsZ*p#TEcUvr!<4eQ@(;I}5-2*zsjN={DfmIba+i@GtssODlihuQ{UgtpwK;Pq zPp?c3ML&J5I6%#mv5oj3E0$K%$9l1`qLt1u^~KA(samt}TlLyQQ!-{_+$iF*E;z*l zQAfK5MOEMABzag)oc)FM=ZicDXHjFM^hukrDJhfeeE&%w^sF@<}+2 zNFSKa9fb8W?MpGO8`*|E{pgNTl?5bV|E5nTfLo!LVf>U7)4@S5g~;6p}4KmpQQzUt)|H6Hr_Gw1VSFX?QWg zjS^O5RG9$5S5JNrHuZB@ga#DIY0W}C@^lbJ`or;^;|$|b>|6hyMeLYFx7&zTAtbEsV}4lImie^YA`(l-$-1D!g{c|skkNoNff3~dr;Wm^d;8aIGNWv8+!H|W%BuSp51V?A) z-B=Z)GeB|&A&#Uf6+;OYLr35Q-Y|^N8KG@DW3U62Gb4uA5QDN0M#gT8aOn9xlIO?{ zq;NxzTEH^;ka|lZ_#{drIMeSBtc2oR*3U*^ezzQLz$vc#>IgAf+O(dfX8tF#m%K$5 zNcj*WcCdjeU_#XWtCyXCS@v78BQet`2c=qdfmvncCQ;bPFO1_9B|Lp+sv;2i-KOn( zEY3MPx6pyD0g;4B?745C&sD244y^YrvnC+!WlE6-ZD@oM!&=IfwvO zPr}l(HD$We!V=+|monb_oGl`byI!~<82FQd^Am~()B;v;`@v`QzzoFOb(ll1L zLjr$dN_d#`3Qc1JeUM3H5YjR70W4YLY?T#ZNRktDo%Q~WKENxPff!Hz4>QB^AFp=# z{ehX(;#feIf6iBu^+_uAOV(lYjjr4wsxUD^pubEO$@Cn$i*gHu{@KxY0?kQ*8BHK*F`Aq#~yMJbf6uZIEvRCBK_VCa!zx2Vd^v44Qxq$JWiH z{_pu&aU_ono$ue#4Hbvf1t-D(AskJ*)OtGo38-6<<+x7wWiy{yRfm+RRN$1Sjne1J z(_hMqKDxps;$sa~68z5*a0h!IH+~_p=f$%U0V1Q;$59ydy0CER?*u0Pc z#qA7el492$782n5NBZODMhXEZT{Zx|$IJ_;(|trk+`v4<%3B^w;EkZql99y2t=m$J zbJ@8oB(K5BT!CJUs1ELhRy5vCl3= z>LsLr)yVLIcj;VKJgt%8X9cgMl)NEfp~I(uGM&fI(q#TyIw1p@IaFj?hR(K1c0;d_gPa4%qE39w>f2~y85s&fzIG7 zqeZv6331EopYjta?050%hxAq5Gymns`1fv=?yr*7_+n{C*p-K-8nmRBp{YWL0=p}X zjB1ughwTEg46^FPNmA!lchpV|uzu2I4V4@f!L5Ze=;P-I%SSAD*B~YA)^&O+3RE?| z0eGdem0I&KUY?7uUNcTB+?I_}^O_TX@{ew0$-^Uj8b%O2NIU)^s8vqU?+b136HVKa zHjdJ=37({-*6KKRVKY`09%k+Hl=t>M>LS7lmJWYX8-7_s1y3mIdf+~JMBe&0+63cC zq*@;z8DU!1A>1wG93m;5H=r14o)GJevh)0x*lURx`v$f{ z92@21whq+plQ8#xbHv)lUserS7oS$0ziX;j;6?N@WWN%<@n-tVcc>*j?jC*iS%|{o z@nrk!f3^Z8i4t!mv={1;;w|dS=<+PwGZzBut+rK9%?7PiPB!=@lzVk%CFEG7i7yWm zU`ugcuWgH=6LmY8X9cKuk&Pa)T2bHmyoSI{_QvK?3ghVEP1(Xzlv3~jMlDF#OcT=~f; zg^#Hqw+ekNE^zN+F{Vn|2T#$pBUy;;+(-}Yh^nGY{yuBqwqD-*^OAlZoUR4P^G6dI zq7H?xCR-hPobR+HS#0MQSW^HSL@(->SN^NP`s;;V^x+}M@0hb%OkvnZ_>=lqu@29wf{tvpfjH?-_vO4ST+q-L2-oOw9~n;%>H9m`T}@aF{;HRxT#JdJj^kS^lnzmNBruNH(8hFRuDR+)bJ zxvuR|r`<1420jY>gHiY z<-D@Q9LV1EvsC3KS`a{xe*}CZT)n7PcscQKusGg%|Cl1_93{__N6@}{C-_>RepVs_ zIHl2LY6mnK&U8_$^c2H8O&B_~t#{l2M91kidUm%^CatD|YL_?HwkbQ9HF->|SE?O- zF6VT7Qb~>NbHNt<7H?*?{5!sSh!AGk1=X`%7@7)>`hV=ciZO}|pel-u+Dcf0@0&`b zYWYcvpXLLM&5mR0k+wr*6i;UUjh9-5j0*((rzacM%PDVmk&m*eN=n3!5+fa+Iel}W zj$ifmoMVhG@C4gW2D>VCnxD9xGcQ>*X^F*ewI7~xp>l&K!e5H(->A7T8F<)_j41>< z@|)yJE%YBVE<~hiwFk%N=vSMeeHG?8)nCB7z8;@j43Ej(qe<8Iwssgqc5G614K!Axhph0s5ii^xc3w&rlI0wu3#YSx}ytsy`KRD+{BCg?cWd3ixBgNEt1kJ&lVEo=TfNuRy=ZZ~RcvpBA4u)d!NG$mBB?END* z{A03_$grgK?bOK0Z%L2nH-AKv7UBmsNbQT_YN2x~|1l>M>+sGAF(Di}`kU7+9L^~U(D+=Z8tM$0mnU0&DSy5# zGvn|Sa1CPFWD~w$Og)O@2tS*XpJL0HXz)_!$l6?FZ6TP@#M_ft#uRaT;h!wlHy^*I zKvF&7Kk2(T!^9+W>+AZyXrCS9geoSFzLOM~v7L>jT2`eMl$>_LQrlJIhtu)f_4W04 zgK4eX@8k9L5~NR44N1S1v0@7^d{vbf4`n@Ra1ZYET<4s7 zo3w#3XS8cnB@4!jzYzqMbgl%e-7!j~rawr#&KiA4J#%eWm?y$dGLRh|QnkLPa@0YX zT(;elh(*)2U5)PNIht%QjJIM5iAjnPEgN=PaX_G5=Jg}IN#~tb3b#C&UkWt#1={}a z4eY(}#cE7FMK{u-6Y0g$N9B*nBum-|QqIt~1PJmyBJ`T}%# zY!W@QK8$-qiuT)(DT%{xs%4u>c#e*?hNVOx&f0OG3mB1!;Offb>}0mf)4>qdOhKcGF? z1TMnXGqpgf5>qNm1*)@tYyohte<(^7G0(|e!m1jm!prJEZ~^&BaIp?aT)S%TG&-dL zBy8t{9*`n}K{>+M+_wNSudaYn10oq!y`a#GTFeA-wv)F?vBg%D+ltF-=25#UT02s= z$18jnqc?o1Jcj!cZ#&tw#6Z|$t9sR*5vh*-(G|1yu3T#)haT03l5XK_Ia+jM2sAkpU|qgQrQ$l0n`yXa!7q+P@W#W-)?-C$N5s4 zvr}~=QAu%r);u5T_w1d($>98IGS|0d`^z5NYg#)6A@WEB1z5ZTs+zEM zF;tD1qcvBz%>AoR+l|1u>{hWrhpYOk?ZgD!O;^peSIgO@4D!bV7QoXyKW>%nhqQn8 z{#oC!Nk!?WM*lSFhlzZ zwTznP)4jzBl|Q|eMPf;%=6{(5juCQe8isJq*a zWBc5cIu=eYPoRP}%H@F}vf5?2Xhi-KG+eR%W6AGL$vo-Mn$!}o`t+Co@1=nco|H4SHboFA z4OmNyCNJ%lvR{g6usxdoAgt%=b%lnDu8ax*bQwVV3Gt$k;1syUE%HtGl&o!H;l|() zKifAruxVW>i@ZowFlSDw?%z#k9w6m1y*+!m^0`2D##kR!=AE8YN|Dnmr(BmMLAvV8 zU8(*)vo3_c0GEJy^Qz3P02>0jW=KhnSZH0Si_*+Q<|y+gKOvO^T6PP0&;>a$MO)s# z1w-wXg9KUg%KC`}V>YYHL9KP{LA}Vt?}2Z_M@;=SY_b)9|MK}G(X1G*J=Q!=LOAnL zQ=2_RlHAO)1n(ok-E-4ufT*i+=l%-n#^3)i%(41dJ+c&53V^-M-)nQ&twRxmTzR@u zte)(fwh?Z#DW%5Nk^OVKkU2h_;{F=fMuc9g}j!t*c-FZyW3$LUBvt*`FjlLl`4>`^jTSWZ! z6;(|ZDmSA9UDk$Q^V*g^AYRAhL8A_>wZZr9-ERfr@e09X8vQZ}5D71l0l$A6R_qm! z>b^>qwEzvi=x8x^0CcNWTm!Fd(tA#$*9k-^Eoh)bDdo^)ykSM5^2bfR@ePQ`C!jR{ zQosFZ8%EXYsIW6ynrih#i5g1J*nrY#PcCE1Ik(0r#~;#x+^Kt)NW!i z#<})KQMb=ZYUhxyYw1TJ>uN&`Eizc)M4d?8EF zu>!a;wQ2Ctmy=4VDt75AMtt>?4loH8H9t0Z2NbBROq&+-M|V6}M0bg~2Z$~ZvtcH- zXn%4c!Irj{dN9DXMk!&d0vJ=w7&jO1RV^0zZ?Hi;h#C0w%XH|lsJq^8P?_t zI$I69%3jYqHlG6V*B%mmyU{SC(W$9qV(<3zhJZGd^}#G0>HEdV{k}q*=tT+Q3J<%l zuhaS|ian|JC{mb00-uu(?-EPEIz6D5kIlZz*+$I#x7c@QRyR*ztn5_5pMs}&{fjTh zT9powghJ|e9+B@?_!iQXP2K82?uKi_JaY|RiNV|6_L1Yh>>JEHf8=1^e6nnD$KHko zw$zkWj#P89UjgzthaO){lPSY*V5;)RhVdEoP4-_TwDI%R+uU_S4KzcSiNt{(5g~_% zL=Q}hoeLA}(& zQVp^MaU}AC>~ZnX5n)mqQF_a6Q9cRpYc6sEAgVhla5Jt$Cj*sn^Sl+jC!%{-z>Ei*GI=bmq4%7(eHtJjG*b$w*Iu>m&bjBU(vl&;*t zmtJA;PI}Y}Wi%FG+Vi9|Q=WJtNB~D(WU5}^XZk!AbCTq^B2#t7a}tzP?dva*_A zY6F%0L?_uFIw3yDKKdasb_>D%G(u8eH!TICo#m*NP$0=HKm$Z4Dfr|2PgC3Dn%QEP z%$4$r%12Wl`+f)CTr-6kGHR109Y5b*6M>vgMhWW;sHv=Va?^;nRJ4;o5=rgxL5LW+<}_eNc?Ulp+UsscIGk?5 z%>U4^@jhv6l{w42BDwjNte8)W8V~6PPQz=^>gr$lSgv?j@>9 z%ObRen+Ghc4`4MG5R$|(AoQpjAw1|`jS!mIR|ky{m^y*T(Fu=8(FuyEIS1Reh)=o~<3uOL z7vn@Hy$kW86I&<*oe-GdV4V<@*ZPT|q;`qQoE~&Sa!-%jiuS1`GS*13bTf1VfuFvE zJ6^Mqt#t9+>RRnz)jeNP{xiE1_=xSCYO2CXmi3HulkRpKOFTVPgveP#%AxrYGmqQY{qKhV8`ZZ_@dw_W@c$6?d@!)=B=o1;%#HXXG-~1 zh+NQ<-_y>~&dk+_+|$n1-i6;2MEPIL`Tx!T^P7#5{J)mC+JGoU{v(xKOF@}j%)!}= z9LUPeV#3bJOU}c`$`0h?<=|o_=lH_T&Gvlhwi5f{mSzkB{vO2O9?m%fA&YE?)MoMxHG8E>!=AgSeTC ziL;fXtCfR2`F}VX89TVSf+#83{z+i_ZxR2Q{*P@!|3`=a9skz@|LcMO^}zpn;D0^v zzaIGikq7>t=*Z0eUr6NfFZOvm2QVvJI=DKxSUNb8bFzK`@QTVPAkqN-10P@{G0X9Q z2E^mQcj;%pMg8Aa0igf{`2WDaHv%HUzXu5s;ol1x=|6ysg8W~Af`a<)-8)niboBS{ z(a|y9zkiQ``9A=MfPjFEgp7`Yg8l&m4dVmOe=s=M|Aoi?zX#0!9{z{s|1)`82Ot7C z-Yx)`{}qb?Ond(63is9nz($2bhf6>JU<2T=;o!01-ueOU002A!+<)Ld2K@(+kP#43 zP~qVK@8AG%NdGUyKh!^SkWt_Os2>3E|FnchL_|PFL`3?}qW>6*4M3*&$c};|qJm3l z-sM1YqG`#Q)t~REVumpivY8AS!=q;7+H6)no07_feXg@Ii8gV28=!MhZdPB z<*Mu`_k3{Sy?gobcN|VpKSdBwW$=W+V3xw;0AXE29xc^chR|T_%aP{yYbEo!SuWTe zBr@Fi!y%oBjny?LzRCHHef7m1FNxEgT=GlkW-I#oNsp`!@D^v1mk#Er7-OjHPJ78i zA#4-69D-D%Y`5EO)k>66Ly<6$C{KY%e+WCIKDq~s*R~2n&UnQ+5uiM+KaQEN7d2G{ z@A}OJlY+l0U{(}XP;p6#mWl|HFTd2fa?aZ`t!X@4f3|jXY;uC1Jp4Oze3`?B()SJL z;znS6E)2i^Pq4uG?k4XKx|2LdUG-cA!5-*_u2oCuPD13bFSMABmI3<*0}RiUd3SBe^6KRm3HWGJjOj$}}6tLN@6vC*joREXFv2cwW; zsNbeBPPHN*ly1&X5oUaKrxm87$Mj>*2j1Uoa>)*nV&U3iq&YWE^fpr$7$;w7MDyvf z6TAu>pODgE+U1-g!7F}X^IP#Lk0GV!&lE7*aW4=4fWtd7j89^BI+&&{2h!!_TKc}I zq$GY#P_MeVwK|K`wz_Y`4iZtnO*+0K#Dl9sX>=cM^Ftssh2JYb%L;c@Q{M@Ozax9f zkyj#9P=W*#5F)H^h$vF=Sb46l$!p3It`8BrDA4_y^LJAVdILPFP@1~-2W`-YHpub9 z%+PR~|DHj3TIWX-;)p-*UX~#iYGiM7jY@IFg!O7wHLR8;+CcS7P7ax62nf9yhr*B> z#n)i$Y3BaWAHjL!F$2k{QcNk6Savd)j&^Y+6m?%ZUJwUx%WEJ78~_0e!4q{b7Ue2E z7`LkZAm8(ZiFHQ3DlC_4w;N^cwV9#DXO1O~{`*<1`dV45%r&;WHF}^x_UrX|c>{;? z{sKRpGb&$o$C~{NZ2YW(%oe9)ka|>YnH)vJ+~)p#1;y%T`F$n{|Yp1Y`ikXaWKhw1isbul6RCUFO zTD~zjXxdGQ{wlRMqAsVtTH5{U=P7@>RuO9$nfgv=hp>Qx6!*vq>_VL(umC_OWsSM|4n5`j=h zF5$$lO4)By>dTHvmdh=B>b1%TyBvFxa-5I=?4E7Ok`~nAwsle0=j9Qd5u;A@Y!|KQ z1wBSgs=#_M_=2FAt{AR#UCK4``a|EAO7*7kHGKc|gqqA707QXOld3u(b3cjlFjr86 z(F**?cr+Gg6Dls@YzauBtLa`_qTfYs`Y*io#|DhblQ5 z3u_=iAk$v_&+nW;H7lTn4jU(zhgF(vDE5m)Mw}zGm$A7lGeu zB*B?aou`>K-4zJZr_2!?o5LR-NS|P|M)h#Uti@m_u-ZiWS@p4Ds;}AAxgbq&n$!8% zcfD2Bl0UVylIE!>{w8J#yVXQ>AlQ`~X-#6Ry-_}z0aB!pmk*D%>=ZL8!^OK<=sH-N zS)&Xj&iVb6_nu&AQ|!CXd4est^e5`~(692F5^_$!4W>|!7x`I~JnD`;Z||K+wDfl$I(bWLp7KE6dHetQ1~`|PITVamxp9!{?neYzx`rJ)u5&zL>kMN z@MPajr>KX#d~*SQlAo6G1~fh6AP0o`nUjv8X1(T80pe{-k_)NsOM#&Jhn-wi;r z?(=kpLP_UCm;*R>Ab(h{4q70GV2^HD^QuIbg+36uvzO2_#<$oOcR^c#6#Z|zE52HR zHKyhb>hm|iCPZ6@fRIqt`y}v5WRe|<{Q3Jln)6HGVh#$ha6v<@p?7ePZG)mXO->N^ z0pd?8OzqA`K<1!Ukq%-gt)zGf{K2?e5yA<4r)jD~6>EKBk9%P#J*D1o)g=aFjoZcV zG=eLR&Iu;c6t=L-^5ZLKzE)myP;CD21LhLX%Eln)a`dGg#;;A?Hp;qNos@2C7a2Ex z-k#j+adi`%xz==dmo(y3lF>cpleU)cND*GS$>D`8Mq^#8(edE4{hW?YringjTnq3F?zi)u3qOGb=b_Hz? z$ldASb>po3#`v^icV(2CjKUH0oO!-@e%YhtG|4+ff9l@_Ev9u~F}KR#%*x^j%Y?AB z+;#S$N&n|WZG*u^KiTi0hHCCTfp!xXL~4VT0~k#zy-FnfuGtEzLqW$kK_k=LyABa% zEDiM|eb~b*wrA?o~iTE;!mY#tN+1$}YyQCAZ4*h5+* zS3bMq#x_I+dzEgbRuj)qqRe%mYa|VBiLu*XN@tY0pN}xYMt~zl`2@3Cg!6%Lxoyh| zU%vOCMuTmJ8KQ|ck0iVC`IRs$ERa-auWKYI^}#5LJeiUa?!XK zJjpqWg3?W!cE%z+iqEKJ2dIA9oJ)x{O9mr{Mz8CbmFjh#S;Rn9F%YrJjNDC;>3wah zX2Db~p@9Uk(Iq`e&4AUK5XFeDPXL`Aq6XJY`w<8GVI@9@_l|IP;9)PPJW6YY#fQbv z)9;0Uy`ng33YTj!+n+Zkl0xXLO4_JY0D0p{Gb?(YOG|LsZ1wP$UnQ8!{S@I-m$a;8 zxueV(N-4^wL3s(5eI{-I$^hxm1LQ0O=0DzfX}{`Esd~?DI6{p*JQc?W0>ues;(i&z zyuX)Z(sF_FRxS@nb#<#JE;xur!{_{1~Z6kE$d$6OhKY*+)zt9&hj zQ4Bjn=kGi=d?-nvs&q7o#Sq?Ql#yX_9#oejt|ZlE9UaMI%>44|V3*aR;+F=N^7@@V4!RxHL|vGzQtrj=ic~ z`c?i>qkbALvwTQwY@v^UWm3kZY^y)_l$Z1f%}s(x;j&%ikL*T~ zg8>5sl3`vPuPbJqS>WsktAW+|Q5}{;?D#54nLQ&-yA4>fqK$W~=uc#Fg7cVZzpN#WOxapxD-p!e z@u+JeY%ebjaf=iXv9*HU0PT#SpZRPutv+8VizUmG9oWAC=EO>NB$Eo-k7DN>JBbQD zk*MmD47scUc{Iwb8D)y#cE4vR!d*u#Stq4pEiwq;R_a=v4{2K)(e()XaR`!zdi zbv&IFN=C?1I4f3eI;l?qjjGl4re7H2(*Pmy_5V)ZOAL(W2$?kam|?wh^&8#8HP^%4 zeXFuR)fD(srO0hWEQW3TWu!+HtX!k26O%(Ubq$ka#P6mYlnNGgMT92jC3s^6{M7Tj zx~m|lR#U2Ua(k-roPEj^$37-KABKrDWOk!WZx_JTc6u=+@cHdVE8_~{|CwD*f4&7s3( zfa9wkpnSJ{fwr7q?zS9>D>ahQFkRx~>@RbTqcjhRVeQa>jv+m0&j;X6QJR)z&Ge;> zn;Wx}hPY~%Bp<%u%V}USN`6*+KYsas9E8h?pXgA60Q6NAc#d;kz8B3FscYP@Q8kNy z2<|hz%d026IdYK^hVrCr?iSSKmqH4IInW^>5b7hpMPqxr>beFY^STOCd?d_G<^ER~ zf3|ZOMdWj=+jSb!5o3{6yRdurVQKY`@%bAv_NigAIM8(sFaxI%{O(Sw_Wq9h*&}Xp(s>p!wJ=YWAly-_3n}97s5^I?wLy|hCtY;*MMQd(v5+`OBmsb zh=TpzJZY%WnI~PWxT_)xn6(o(LM$b-t+Wyd2@9S_;%s<=b}59M_#8iSVRwMxMiGSP zKd;ulPb=RZ{!(W9FtwyS>O;+2rWf}hwxD?N-hUD7tD(jD=b#0 z*>~$PnU}VTD{#^MZkFH=SNQ||I;Bd;8Zsq4*vc7Key|mEB-ZDeAU$&(m$-R1`ypta zaiz4hraiRGK0U96*#B1BltN87}{lP>aMKlf64ZdTI^tX!t{-4Wm9g{-B^@f=NG zi1Hx|yFj$1WnpbKe~PAq7eeSkPvd)_n0uD*PUgo&c$$@iUBP4&W7E;4-^%9WCjUqf zupb1{X9*<>P$@wj<_nUG>*jkYkZH9!p=lF^H8rLeBN8m5>iG>lolayY)yt(Orcx)m zDt2hQUmWV@CuD~8#wl(QJ8jO%BrcP<)XUsCahVlZ5q%!4eAe4QhyJluz-AWU@;o!a zA381x=Q>laa7@F1pE{}1Wpi=RogZ_VMdK~bDE=;dB&rLU2|CSvj$85E^JYq6w&A~-P*vu=aVjwTwkA-F(2?tV5FHYH?+1 zoUD3E0m4+ulj`oY4br(q{h)nu)(GI z>{MaVVZgtt_P3m-YR4QoLWRf{S;df1VLCTbx;I$&LUCg6LzOPE582V(`64tETh4SX zLH|$wgL`x-@05Sh)1ZI0<;&|Q1|MBSnyHFZ9K4CA6q-Iqg45Cz3hCXnh~2+>?tGV} zw1en1@ap(lhM)QKBawb(KRJbGm{H%Avp~Gg1dh1ea7Yi1s_Mlzp4JH(mRXbM8Pvdv z!x<>=zj!`d&ST)zI)4xp!-ngc&0#EBzE>|TJeLo)RDZ-LczK+umr&f@gwr621UKnt zQNR0>xlB{t@&-U&Cx92qeRoLg$5lYA@?1gdb#On+7CAf5Kc`%Y8Tk%_);pqS1Vt{c zOqW_lq-0it1lY2gLHn0JRy#e{-`1&&WaAyXB%v>4z4TNhpkuxx9VWgc;S9%nIhknm zDLm7ynsY6vT=DfO24GPP#F&N-Js5^`gxl*g*)8-cs3{^&?naHFg%BUX&t(wP5qOG-A1;RAa;~Avv1&)VU zQ;<*N22gaB0ga{J+S0>Ri~P5$yGBlR-`wLbI%A6`T%2!R5)K9bc5KVI#PvgY@S4;$ zN|1O@Eo_banrHI$TG9-N95zlav1z11 zBQKt~+@%rJUo*eF0Vm>eT|Ws~Jml2jh*)}Q zsNkbIt!WBWrEnDOFW9%SRSMa+nGrX z*)?0Nq{+E~LyJ>ieqhedn1s6ZK7nR}rlyZGd&?d9lVe!v+V~pIK1%jhyvb?;joX4UeVRAQ>r@R(u^a71HM<>%a?CV)=Tc$=$E2SI71P3J%pFs0 z64byrsWDYEN|w-$dG^<>h~^JiiJflojzH^7WZ~_^ji1!4sa~|0A2D=q#p!X^{;Wie zeCPfClV^X(rLv2gc-aVpPORg-^>BK}N^EeK?Rvbv=1Vs|X=yIpY|_^5-E_wfj$Ek+ zJ11)2#HAA&8_qVJlgo<^ozb+4@=_MM;ut=JC2OGC05LLe`<-lPhsA*hwLd?9#nH!1 z&M2)Xts&c2AZf^lOz9Ak1_=pH0*b^Uuz7B;nl?W5*O6Z@SS?W;k+;!Y2BV10RiW$s z=%s#*+om{b3htfrfW$*oMfRYi$N9KuWP9D85as59!rWI#j7>h zQj%sd9fh(Vrfr2gc2@7Ct{&K{`KnXsS)LPFHb1mV50L9U83qp>XYa}d7Ywx2cic7E zB0qgk)%U%YJy+`}5|Nxw?H|@K@VQ=vSvGmv#@k&Q2Pwo1;HFZZi$12FRc3yqxBUB& zQpi~Z|K%tJh!b>~RdBDB?C^J5v}I$d7?M(B$0;S4$7vKXB6#8zLo)BvoKizm(?G)I zdgozg{Ax2lVlT5OU8f-9QW-nyTHZO$g6IdwOIB+~IZ~Yb(#>S%d>253^CQ>T zH0JhU5h1NAxurE+^QA{R`xigbT9v|HQYW-Xrz8Y7Y+O^r_=p4jl%)AD z%=WFze%ZudB&vOxP>WCh*c;*KImy>e z0~!|>=;jaJD>eHS`n_(wK!{aJRQppL>K42YhMLp3%2_&lX^(x#L`1^QOarz>ZQaTv z#^4Z#+Za=;SWq@w{_d)ZO);dP`fL&!P$Z<)_(h*?{@muy1G*9|uL$Gd(UuUKpL@p8 zqWFG2h(0lzA|e0S%0O7uoJ(Nud3JaIzz|Amd786~APw?!<IF0;HE^;0k#nwT@*?!5$i^XrZ z&T|?2m0OVmK_j9HZ(@sX{!Rdw((LX@#YfSH7aEindoDn`{`BOXhx_*kbY)WiOP|RVwp`@FB(I1sCpZamWb|%g? zToe@GD$OdGrgnEbzt*jFPP*SK8|iOZPHIa(HpeWi z%Nng#Es^r4%)@AofdUu%a}Dxe#%MO2mOb8;VLzl72e8al>T#dU5@oK^T&%naF_Ak_ zx%}Wx;&X+zMbrTV#uXRxhuRRV32J)-=sV4g0_Vvh>t#`Ai1OD3>|r#e-978JL}P{} zY1Hn#d;XaWa$5QYXn2x1Mj18mV|*?&EGLC;0Ld-`D|lq1q`4z$e(Qn>lMxC0Lm47n zKb#cgi?XWaN4zy`$wtb$*fzkHDKS}XONTk85vDY5+&P?;5CfC_w1jUQf3ZAf{u1bA z&r*PhhoX=}{{we7bmIbNohfN|UQTt;q-^*PO+3G`_Yg|pg^WUxk=g2mNMqFkbY*2l zzweWkZ}#9=FUFLuchKpY|{9L+vbOAvNY&B|o6tLkj%% z24h3hXSt5jB3MY#D?c@s(Yr!f{KjJJ*gnVGgq@`e^aIJFPdw7`(pKzqvjSg8nvE(# zB!@o5Zobl1=(}$y=;3t@w3Da@Shaw9k>rD109gIJTSyL*_8Ye_%{;$(9T} zDUnyHRk;Bf?DLg4EdD4R$LoU>WU`m6)$s6Q4cnJ}tgXsxkP)3`({FKakUb}3rNV*X zDo_ks`a=xNh*Em_Pds7SWJQSt90&+FI7(+FS8YEn)vfmh|~)Z|7}r0uYlL@J*SNP_lK#|1Z> z1yz9USALzW=&vf&LxhJ12(5M?5d|is2$f1`#rj5v+y>FZRGWNqLhqh#&#^%XRpl9% zEF*LL`1$B(wTMV<2nZlj?N6l3$WmGk;}54vAy^7Jzd0mipel-2o^kzzPo12V~NnU$CBLkF&zRhn3(EiV!9%gd1@RsWs3$*t*UwQ^7QnpzcXz%4&5VZid7(|SO( zORcP-*DqG-XBQ}o#ZEO7%Kn$OKPkavec?D>)U6Osxfk|XH!2MS=-#_Egh2mv!divj zwW>vWy;H55Y}5mZF|c ziNN+&m^ApMax4A<$eML6TTpguj55N>wtbG?rO8XHP_P}=Q`Yg+IT*(nA!lZK%!vDv zn|(6z{V%nOqVxEBi;88q{;!xNCN63}dBTB>YPOs32ogw4a|l794m$z*1`OBy+TV8) zYi=0R)B+cJPy4q76Mz0q`K_s*-dxn{khQ5^CgLwmRF(D?1`u!kOQfHVUTLrhsF|urQsNGzkt`zUb)4J?ez`j7 z=-fGF*ahTzC(69a5Z*7Q*quAQ=Cw!^3zjd~BN_aGXvROmT6-oY?6L~67}vu1qRtB3XB z8rbm>9OKgwa$noPyMhJ9;A5-L@qrzB9ji=7HjKO5491Cn9Y)pY2(7NU7a6C*=9;T4 z5nN+<6oS!q!FIuXQ2M3J(qYE-%ls71K|K!p*&2*rG>NHhJpweK37h84S|!i&;;_;w z_4bOQZ|QA<$l&RdpiIT(OkDA;8JG%xoP(2K*AdNT?hYeZ7-wVYN(#YOzNM#T-wr@b6;fN;whl8n5 zrE#<2?e0wuuVEPk>*+)t{?`eMolUb5A&uN(_`R~5hN?oCs!WMX0#-os8=y1^EVs&2 zAot73Le#lUzXJ2vuBHPVZ8zeZsqCzxi12*U%H`a%oxa8b&tQ_uxqP99S2&*Rq6T8F zMWjDHV0;6R|Iu^bvurOnLV(~9n_41`7IoVvpSSx~THewx0JYO^-e=s=wGa8B*Or;q zj?YFacbyXuV>8-FffH*Tv2Xq~kYC3C#SEE}-}-fBXE#HC0QZCnJ4?2V4<7g7=mFP7G@Ey!H{F=zAK>P5pI(mg?zz_xCOB3!;j#+f=6`zUzBsRe z@wmOP87j1f6wooL8NH|<2z%3w6B4%UFZ|%2S#~r|W|{fiZLJVAwH8 zx=hodmyNk^+P{MWgWP2>iuxX@n)WEY@ZF4-vM>LiP4Zp-?4uBc_Hy~;u2v$Zr1io$ zysS3>{X;zL_3l)AEb}@kld9ET_Tr{bks=vkdgBS!mVKm$s#0QNVTB?gaa?K5RFY{t zJj>4dH~r;AB==xn)QnaonVhKA+b*_A@HAw9ZeN`&{col?vNoA{=&M>mWYE-J!s#E8 zj*IU}xV2JN;<2_kMW^Fit6_VL*jXp80 z=sWdj;`h(Hi%RK@*87;HwRO{o2sZXP>*j1SZjB0GHN^eU^ny-@@`q~Lej_A%vIqCr z_&~w3iIiBvwXwqIksFuAaa47WbG73v4?`e=RJcJ@m^l- zu-}C>iSks!e1AJ+7#cLISlNr$y-#~1v3#vW#@eG|`i2O#{2(F8SSWLH=d7v3&=Iju zawa7|(;Wj^l7~`>nwEZB=6)oJ8}+f9Jhsf{a_JPwRf+sMr%B8ddupYJu%44E5c>JU z_KIvlCBQ?uNf-G@H`_?#+Ya35q0R!%fYSn(8HKs$5Nf82Q-gWv2xFWKnM);=IqS0O zLCJ6xi(n`wDjkf3fBBvA+A4F=pwg$$79gROMj0B3zn#HQXUZ7IS-v~ckhK#$Ns7eY zBDef2DI@_Lr%XEvhc^J#wErny`=S&&@Z#S-)D|AeRD&HJah942tuD;V$>6^K&;zjC zgI8<5=*W6qpR->nt`wI3T_L1C)ixRauOg0ozS+V#~E9$Ri9Kn?LD{CAF}_o0Cs&ETTa8{g0X|uq!{n! zM~Q2N3OcPK$;&Xh;-ea}bxKP2LT3EBemnR!DvP&e{>&f-lYyi2)-gUTcuHJNX=v50f<+rDu{zaZb985$((Cg)%K)RDi<+<3|3eNV~zkG~<-m<(jk8RIn#FV=ywaK}We z&MZR!W%c}ZTR;c$As;08BE=icYu(;|b(v2*EgZ#~U(m&P5h|%Yt;9_%J3woU z+kBX)DEbWK^0+TUWg0J(Ft=zf)Xy~dh+tSM=e5RKjT1}js9LXX%rH)m@I+nUr)%gc z>_d1G8sJFp5#hMvx0}xnhHL2S?D{}Mld0poMQhI~IXB9L0@?5Qm>kHpO}@e-1ZzaJ zN2PI4xv%15HmPz0CYg&TCH8QN(j>30x>!{lS?vS^4B{;CKwU>qA2I5kmehg{xDyFb z_ezp30_iFr6KX%LVRHiGv(?r&+D|BD!F_qB&~*(`JM(tk@=7=!7LnXZnv~)c1a8i} z=O#kN-FKs}Gdyzy0u#z>Crs7cK@P2T7y@RiPa=1NIc_! z{<|ssIi7zmj>A`(Da2JznAM1M2h;a6AD)I8v?5H*$MRdq}`jECJe4aPMh z;Md72EJqM~p=%;AcHBdZQSY&ne%ZgWy1W9KNRc#FqJf(DfIGOP_Zhh?T~-(IsvyfY3r@y2*FpG#BGgNHbZMg~XX=O`?_EWYZjQ81307 zj8^YhFvNJIlgfxmITM$xep`+ymb=;WWVBdnv@C`SoV;pd^}t~2dgkP*G3>EIRfj

    Tg8nLJ7Qq4=rrjzuqrH8#YA%U^secKa7J{32$yCT66yDl+3tt#}K_X(TxNt^pv2RE;i5#6-zZ%68v&$rG>#c@&1 z;D616yu*)oFv2y^-QG84wfb?Ah7xL_w&A;HYkaq;1mbRG^$~|E9I4)^d)Nx&(CjF+ zMVE6S1rxgL!b9@{|8Km;q4I~tX>Y8B=1J?+=*N7eT9li^?s7db!Fw=f zZ2X^=JH4XP&vp}$;({zth>mR3NqIkp3I)4x=0X9r%=P$FgTs=IG(Q;m?0EW~~hL2U1Pl-?gaF+ILYD;Z;+Z4O&&wZr%5lgmL z!CDS(J}8chjH)sj6hH^Wqy<(=U*`*j$o%+lI$c ztpSDHQsE72kI4AL-RTn{3WPv58`rNiM%%=0%~TCuje$$hT1wPfH zsH3KNPON(Y#V#6F}nu68F4gZ(SD=PruoXa$+##q6R7c_DkXk8=Sj-2c{6XLjuV+O}|MeT-V|$jL0qZB!!_p4qC}>__?FmZx zv(*|uDJ(2UT8kSb!6I1FfUfli9KZb1uiwVgMZ$fNXxOwEfXtVDS2(^IUJ(xuUe zlgviJKvhtlaH%?t%&FUkTz=D%A?^mInMSzGN;jbw(Y7{H63((cK>YNJnO%?`660ODBA)- zE887UBFA|k53pnSAtHZWJ5H{yry$4Fr%l_wO`{W3nd z#)27K%6)W<+|6|7gkGZV(l3^jpw=SQ%|)51R~&8`HAZFHm?*0qQtRjG}80Szhph3J`n({by z?%>$gWWIq%B#v?}xkJ(1yZSx_dM4zGf4baz9ygy|$ z@j-7z zfHjOicI3U99@+aRW&Ny0(DlQdX1k1z8|GAtuBk*}iLAHLZ)f;&vWFOp`$g6t5MSN3 zCLi;h3d=I)$DUX}iS=ST*lQ|@oE%6D zBwnQ>Nwc4{9@lM^GN;ZrC!ngZrUY*L+#Coj?6HJTD5SXHg=u7+borF5pLZQ`lN1u2 zkJ3Wc=I>x`q~AEG-H<|Lqo1No%4^G~YGMq3bEU_W;=kIK^c7Gg-YT;Tit^KUYJ+rx zu4n)5^_f=|tZ_g4bmc+`$3UjWIS!-mJXp}g19&33Vl0}!`uUG%m~&)g~44`IL+xAna=HZ zG&I>d1?9-%R;0;xHN(YNEXr}Y%i!p%bgER&a=M%DS=zHnlPR9ws8*O$><%!0p{R$x zcc&mit18O7nT=2c^4an){H_h7LtCP{U&#CIqHTd6xvbs>O&0p7yt(3IuczB5kYm=K z4iz>~E+bI+9e%e^(BD*>n$5DTLIw}+N= zMGT$RIc){>_5Y4ttMsxdkRr@C+(`=G$v-Xx{kk92syb)R-)U^&1E8p8mG75UIwtk| zw$)*GEm^~qe0ni`^cL1depa58SIIG-&dWB?>4Z#4`rQpOBN$GM2n35#X9smfk+l-e zv@K{`ZDWCjx4c;U%}|G_^ouHOV;cGBu2H`sgqakz7va^fi;;!IkCh%j?HmSOCY9x} zV|0Xnh|jGQgkJ63>U!A>beZKcl&Gjn(Wvp#fa>oS?4qaTpX>g0qpdk>lQ2aa9I5*%H0Z_aI_0= zu$Rpe;7w)pijty?BXCnmX(!%xYa$j_kY8L`MBmt1Keg;sk~oAT5wwK1AGX?|78i~G z5?&wh&G{V}{_uNlv%OJt&X-~h=;6(KkdYy!VL~u3Kv4Wa5uFEJs+WG;mFlZR%Yf!L zO+kyw>JD$0xX+|zY6SWqNhyO1m2q1`!L%bY$f|+(TwLkaZEn?zmFqpEkAZp>SV(_Db39J?i_-MTx#Yv#_;NeRyZ~7*LDXC-wiQvO5-?r!??~s) zP`y>F+zL%ii*yk5V}?A05<9p1`^aE(OPCpkuRYe{(Lcf4T+^OG0c*MoK9i>vc#Bq1PqTG! zAA!WwR?F%(>;tEpst=PFx|kYZ3*anhl0WJ0=*RExJ7(Q2<^N*i#2-#3H3d==^JhO# z3vqNT2Lj>1){N-;!!wt1uARAPoYz1Liq6k_CqN2U$zKl|-u!9JEv!7K_dom5GD^$j ze3Fp@(Xc?TT>eQkV$xJ#>t9Zp>7*QOODSz?3v&K-B1(=9tj%AphXdG&V}&y#2JJtM zNa>ize74;8amd)OWKr*>EP2WRU6OrYif5Ep`c3Tu6rYS&Mm&`9s+i8BFx_+HqEy7**0ZgyHNgpLL!)3l@aHdzs0wMu+c>ydYg`qfqC3MG`A zF$Dj!mi_*<>Je*-dloz@A_oUmj7vz7dNKleJJ?r@5LAG%j8%W`x4WbNoVm&|B3KaQ zz87>q8QJiqw-7-^{V-?I)Kl(-&n}v=PrKt?WsPt#6J~y~H^7td!VG(ob*=h_-&@X& zame1&PW?*^GX5>m{p>qEb%u)@8i)R>YK_+-4u9->1U&--51~ig)P>`roTa?lmLFX6 ze7I&87{rTwm(ddv3s=oJNrO_-^w*QD+9co-JspB{gCx>!{Jh;pWnD)GfB)oya# za`>e_?R7`o7Pfa>U1;4Xrs1RKGiN=-SH#%auyiP0oz$qx(dDBnD2}81A$;MV{)tI7 zp~=+2c>>0{Ml)W~TAhCb2&V^_WwzP;_^>)7*&B<#pfVQMTU2g7bmvsqcBWD3bm~x; z)W?aUEVb=)#bl%v#v#HVJPglhP@~ol5*{oaz*pJW6D1TMM(8dZLS^LK)0oZVA~va1 z6*oleO-Ml!Rt~Rww#u-Dcjj~s)sOmvSXS;nEeP%rKKG);U7Y-A!sBZLj5jl(5SJ7| zkb5U)I@VCcrl)5Sw0T~Q6_`&k@G6TGM>g8vyWX;5x7=8h~T>DzN7@daa$Rt7!lJAVzS#9+xRUDXQ~$Z4^%GPAv%$4MFbx(NP(iadBg z()&%}T4IyQ)V|si^LMD?i&gL;7v4LRTv!8&rxddIy-NO?+V^fK+Zf4p>oQ{GYudl= z<}uPspMDGrAKTO{YBX&13JvoYECu-9%Cch5FzJZyp+XFm@I6qe?WA}G3+^NT91?tc zkkkA$htuQyb^}hkyqv1B+4|2YlpVkB)OE|;Wo`bRT7u(Kr^GYG;`tHcg=vXXVqz;1qK z3{)T?6BpP96o?*r&F6Q%CfD=DM1@H`B1KU_;uhbY-WEg@zM)Qo}r|9aQT zPgC%#?y2_)F_NQfS$Q`Qo|um-cEiNOQrU#Ixw_E4;xw{9-jBfe=sG##b@L)MOTWss zEeG1{CH?C)XjbRp&v00HGO4LZ_;3RcK&hLA+=8X2sjX~;wTbk!z;w|CkjHb9bc}q3dci9 zBcqVtDOD+$`(_?0{Riy-0OCZ-_ZX#s^n%1^C;I78VvL+wj3fnLbt9NdfV#^(K&rdi z>QipqX?%*PTP-;3`1U#_MH@&i2Xso7M#{lqvNPd-mvO&a;jfX>i_TW5EBK6HF#c6rEIbs*1C=6mRCdrdw#l7%9THybxb6+bS4$)28+>e1Ko81KzJ@yQH;~*TENfyPm!c(e ztg>x=p*?NNSl!}6$Q+Ja9Ai?M24P{ki&0u4)UICKelYKC#D?Es%v91jQjvmLm)HTL z@X<0R=6}sntMSLYkTeU{#PG)VUv`SR{{RI=B|Oq*N!<%{XVi~fCAiftY=PqHw=H~N z-Nkozg19Z`46uSt^4)Ok@`N^?HnGiFL)s$>vDci?rM#ThGPIX3e?N?Mp4W z>hARi5>*uiN2kl3Rx!ROhJseZl)hJN(fg}T3BwZCM(J|~#@=V_z0%umyMk1#uX!V8 z!RTUf`VUPWgt@>u+7dSCfK*1-Jhi6ab4^J`w%TrxazO5M`j2Fjyk0g)V~mrWmiy_t zgJu*@3vJ}O$hSmAY7$S-oqYGkY(21g->@eR#05eIZorIcl;9CJt7tNF>89^=*;ohd zdsQqJDbh@Z^yByhBITP&n~{%!nRD{T091%W=%x8uvis z_;isXqZ7!ub{RhW>u=%AG*iOS%~LU&+{Vbo#+soi z{OHt>bI)(k>fT!5+l5dMYoB7c)5h($U$ysrPU5w^w3f?@hO0Wfh4 zHbOzRtLg3x#2Hyg*kk~?qRqcC(NE#_?enQ;ZN*Z)bYJ*+hjtkJ!$z>oNB~5~$tNAc z?BUpr_X?d~iaUm?vS^^3Q_!Q8iIqz;f$PqJS7I|hPs=tJQX}EG8o)@qxuW}T#f{-- zT8e9ZV-%Q8tr4Kmf-oaV>DL9XGdS!`V0yjAG7wA;C)+!w0<0FACfS~^*r zwi$WDN845`FAQtjn7-$y-9?iT6n~Q&ax9Q_zlUmXWAj!8uA&9JAkbVXNF(q9=aYWBAy3RI{Jkc zr#&@DsNKDKpjS(MRk+Y?YeFr;wv4OPB9D~6{X^X9mBg@ia59oJVk}A}O;Fhj=aae) z%8u!~)ExnFz{burH4KwA5nn#HsTJfYW=0@_RU@dO0rv)n~hdZc`*Cdr}yd zCh2%sFgq)>OVHXfqpqmi56Ld;LTRss*IB{Zajx(TG->KpEI^_0u@B3v5-N z5(f886Qw`HVOaUmob-=j>761uM3H*OIOX7kw7UCfp%ElY9ep|JAmx;t9P8AMd@d3+ zUdd(IuEWiGyG2KPrD>_%Ub>tQH8amXfNJkm8!=j3$NP;5x@S6_*-xrewypV1Zm`wR z?kSyZ@kHKCypk9W6zb3Td&d6&{>ru1bA3lUnEfZmqM`Ap3)uQZ4d2#iSY;jFo+;kF z0ghSSn65eLCxCxV2*%}f)p9&&Gil_pO86y=WpGW_4f8D&EgVY=QpgXU&e-V#*lJ%7 zOEfb%z-W4)&vDC^+Ad}BHt%5E+s5Hb5e$L)qGjZDk3~AXM;~N!ZqvFAg%HVId)Spn zXxpCCQnfI*n^?!D7)SXLsMS&edzS%En;4akA_J<^BHcE6OIuRh>7}K@OP|Z{r<%6Gd?W%;Yu@+a>&KrBLb}h?ET}e@SnG440 z^A6)6a6r>j)Bth~)XG?MfhQrlTcfMp)t5>IuC91(GRq{*Mmw1E^5ptzB-KVf=@-#R zqRS)BQ(%mEtG(^^U5?cD!UbHf(5E9S_0-%w-MhdcBNaV_WVEhvxbF&!`Wt1&qH3;@ z(y-+8fPGG_BAK!4vZy++$~C!9TNdAI+3t#BSt=a^G|hs;sBjnCS%xXZE~}7(aTq%V zOT^?Q<)dWxTjRdb+fvZ&xt3Y4HQYlVK_L6}Fc=z{Pg_nYOPbr|>NQbmu<2%Lb4Gz0 z@aum*+ugBTgoX=sOr15bq2Q|?4n4vC+OP265dQ#9sLLaWf%mxIDdb1)rQq0Pl1pX{ zN_DKgf5aQovgZtB&{MKCB**i5u+%(f7>ayBm2o>WT0;683Bz4aL+J0&k@Z^T6?M|( zMIA*mtWks?H?JDpDW~n29^Hso-CZz(M={)rvo*?DDN0CsrVI0GNKlBeO4mO&p*iJO zAx@*!T(pEzfdBLLYdWb&_epL1P|+`a|GXLF0s$rgJ@LW_9Pd(V=LF~>Exbhm6e#%)F6si zDV(1yg>78;ClCyiOZzSF%Pz>cUM;(#SrUff zO-$(`M$RL8cV%XkSCw9a+-DlLafS^(Al8@#+}oRV7UZg&GmAw)UM4nc?X9`pb#*4@ zv73cG9lq&9C0%+nv{Z3a#PUrVfLWtOVpssc_Rg~^Pf4Z*OpXm2J40op`b08Wxq)%i zYpF)1o!6N`O!5N*ofdW}8P@*g-o%9wtW_SQX@_F%8(nllSB9=*!mgu9i@fXrOAvsf zYKf2L)F;+T?cA5yg%cNZhB-d^X8g{jI2Wj563-k=an`_R@2PZAiRNr)Ku)PLKPyQI z>cg-)>tmf*%N79x*y~)wcuE+h506r+mH6&f5Oga|gKEzeI;w!HkLj%v3^=qb{;L=c zC@s|tRP)h-dJqx_@0~Y0%UW6&Xc~?_Hg_qUfhs1m_un)GLGSgR6ZV zY!w5Q)egT1tED>L-BB8Iv#k|VR@6u-S^1em;2)?5Qp^<4lI;S7@l`Ve8ZM!@_`_hg z#A&QH+3LXKq9i>n^(@#N>O8pJG-AO$Pr|dw-j%_=WiCI8JEEdfQ*7JO(Nuxbm2*y| zl~1rxPJq<$8%^?n4^&~iIZn})@|O?N0*a4yU96^B{{V}4>#A~PnEoP9s3%#iO(C9R zBZ+Y*$u3MXIY@20qh*|K&G}a&)YMBR5jworE%Q0|Cr4@Mwr=HGX)xHS;_V-!TdL0d zKD|`#9mzG$M=MB-L?E6IJhnc%FSv)e5Hz zbKK(b-o5UxTsc5Jlh$lKl&$irUSi?0-o z6%E96fZbU9BRL1{qBwiI3WnO|_S?mJP-Kk{zDq+vS2Pu68j^Aq(5XEoyLDqY`<+V1 z@UZup2X*_WshVYsXt56#em7&+CC)VKvd)A>ARj7|=-MrVVy6>pVv@o}X?|oZzl=D2 zk=|yF3dk$GNt)|j6|#Y(mbRq%QBy*H89!}a>2T)4!uM=7C1Ti)9O)fqtCao@!%csN zqjKHN4ANpoqKBD5Z_0H2PAvAv+-3CgRcy?G{g!XsrhDgxAG*A|rro+ovOwy3Wgo;j z)M{GuBxke&-U+eWA_j}bxd5(_b6Grf+5fA4*i;Y>GC!|Kw-GEcB%AuKq zMP}1`+*4Buxaj3Er%yzsP6s>;=v%4ToLK4?BXi*)+>VR?(*s9)HEUfBdk2DV#H>4W z__L}+@i;UAx-%Xi+Ysb#if9Z}bT$cD)tyqRGuVv!4MC0)$CtZ%BOA!Sx@O#y z(7Zc8M5lsq*9VKiVZO?4J#6w|)Nr4$_XOe(jyyKzQ?7MHvdm*G906Pq&rPNG$QU zM-K%ypB?Q8hhlzf_lVZYt);xB+ckv6B`5zS>jS;G9M_R*TiP)*H6+5nw$y}n{jwuj)#E)F)9wkv9 zqr1DWRiJRD7Z{jaYPTJ^Uv)K+(#J-hyFg&|MaDx8!ydWROg45p47SvK7MEKMwZ4mG z*%hLy%`#M>hFDmRf_wc((_8lh)%NraJjRFIu}&?g?5ar{6>h4hpp{T?!x`0~(gv#2 zV=f90f_8_mrz+g`${tnvS2tWJ-bKf@@ zZd+cc+4oH;mS~I+7$t-vWPHlqUB8s^t0Z-iJGko*bh5*792*hCoP8n*8JF6zu<^_^ zx4mfo2Kb-6cJ*}D%k6DtL!?tv*HhO!)ThLU9!sfaV5bD<2a&3G7ho_=5G-J8ns;cn zoitYu!-?gr#Qh!e64$lF0(UJJTdlXn8=XyBP*hRVG}B0tM(Nft&VMk;^wx0~4+$h| zGY|=~+h)KR*5(d20F~y0#_L*CwI1N1Xk8ei&q&^4s|LmjJ`eOda!wPM*muWt?7S%{ zZfKo*@^pzs8(% z&*2)?@IDEKm|TmVs*#FuZSEu4X!P{9oxezGYGjI<2$ZyvISLdGMF+#@;S3GZT52|VBd1$|fDb5Z)Qay;(7((b@Vl-Pm5so#$ z2Wl2ubZXmXZP$u0kU7Uu8HoKsJ+y8q2^J1E=&qE(lK0|vzcf71ZPm?KXp(r&V=y}g z{Rr))fc)13-lX>P`nuTlQPys2Y#CV8)Xl>es3p!vr#kGimkT}j@=isENbU3=;;7Z{ zi=9EhaU5d+q+kWdp!d{qkXuXnsZrqZx0TRpt;1YPbWGqk-9YX|=lHh%D+d`dNNaq&E zcM_N9ujcyMNH{i4vvs`H>tU>%*Hw_c^{Dkmy5`0dcBYA;nC1^Y>BXo=o zI$c}vn(I|TO;2yG>RR+>T9j_;!14~OSj25Imp9crFRn1y7-<6=r~!06p10!Z6=WyQ z?;rAjJL;KP4oBP#5ITsmyTMqwMFnj?#Y8%4P+*^+`e>CigzX~MaOKrA3!NFU*#Nsl zmA1oamPU@AOm(zOQbxhg<6ICk?WuJ2(lBLc1F5#Cggw{iwf>6q43%&^G9YP$YO(R2 zprai9bVaq2RT5vTz_7P8!^T5#we>*v2Hl|DwtAhfc8y+=sYnHfC~?6WuRYRJOec>= zHFl<+IpZyOyGrD(o#Cx_g#I-Xeg&=3b(>uBjP*f^`?sdo2$B2t92ZvN>MRKJ;1OiF|p>1>}} z7^0R&0?tYLYA3-+T+`ln!9VSN!Yp>?sD&e{x4%G=mQVoi`F`4o1dnX`d+)JJ0!U#l zJ?8ZLFaOj*z3vJ+R+q{|UZ!CvkJq1VQ(PP#3KJxSx|OVWS7$a|tv2kfro^){bfkln zMjt7`_ZZY{RpF8OlwO8H0dmE>P4P0KUB@*oEWupPQZNtqCqk)d%Z6@4Zi=CcHb=}u zeduo3@k%YfJxoraq?lqvCye`#zKYRHB|XbU!9$~WW=J7dk9OVZuaRzDwC0}SNjlZj zC~j5I-`f4O~9fZBFJKyf53Ma`RkZ8I$#p)YBin~I~ze4;z?wXo6kb~S61(Aoa zJ+(WEV`JDRj9tg(KhnF=cAdj{iRApQ$lgk19v#3x=GMz2A z#ak-QyRAQC)TFiXLon!PA3R6j@9V8!@aGb1r;;n$hKZqNy zvXy7JZaFFD=q}3>EOEqh+oS?X$EKjej7s=(I#3Oe24YjZW_*@C0!s0Z#yjo9!qZ@= znP#h~txx{o6fBJtO5ZCW(y_+fiVn1x=A0XjiX-| z70tA(FEr(HWj#1>3x`v{$?cPY^&D%?XNK$R=DoTeh}AVbE>(KqMv=sYq((3(h>o;% z&ruz?u!-$RG>JQ7Q+f=kGqcy2fQ4pS;95j^0nFF9auUh=WBaDu9CMbh<)h2mMfekry z(5ZabKY6tFmX?|iGt8xp+_cdyL0_B!lD^}edPCDe%fT=h9~oq}a3aneoIFCid90|Q zn%%r%>3V3U5MJRxLms&TtAX2q-CbVU9-2K)@mB$1-*5K5OyX=E{3DLCNN!@kYZv@4 z-;c~{Jgl^`aU)`k(`g6?Z~*u#R5jHx$K?M24oY)^VsJRe zvF+eweFIK#VBHvXw<4JUm}4ZnwjMxVv=x-0gtHs^L_5cg+gE?Q)zK|`MMX|Z zK@BnL6GnJe51yPJ;Pahk{8@;)vbn<FW(!_D?*^5-_=s$sr^4H=54r@Ab6xG!xWO zL?X8pSb>dtWdqgooS$F5l-Xoy1QxNQlXgMh8(imr%Y)Qh>Ef6us%_P`+WpNP)~=S| zaTOx@g&VLfjCVkLYD6{kKt1j!KQ9uaO@&m$Abd|PaUTygwfK2-sNMS}n!2R4^^nUg zB-IVxR*A9K`s(Y$ZQ&Lu6V85`jfvrxC0;Om zb12ni8=qv!G;a!1`O!9W8D6aFr7LHTMzoct;keT-9h${umk$E&RdV^1@XJc4IaJ|! z`f6M)s<(J6y+0VSg2aa}Fn-UAkZRsy{=D<41UPOrN_QL|WCTVp0d28^n51v}n4LD@ z{zv4ZyNskf!j9qK?UvU{^_5iWkj652IVAQ2@2JxW7{d2Dz$jH*bYNk7-JlmtJ234H zg>HX`rVVziTvg5h1~J`HPBWm;O8FU>w78zUhl2S_@fY!R*o>vFamX$J8xJ(wMZ31L z#J4G7ma_FP$rZj80ILq&Ur(vg+&Z3-trJSyzhD+YQI3gC?n{rd5|4@%Hl5u-yNT^) zp7U;XG;pd1nOQ~{t0+7lZ9uB753S11;t{8-UQyFH3oWqdMlCmk!AL*gc%H}vZ zro0o$bT53X^d6nW%$ zzP%M*s|s|3FC-UqY@1~rnJTT4$SY}wRNY4*{rJ_m!4GGp^VvHt6dM*%uvBdoGgQY2 zXT)pM^84~NTyO!`=73a09NQKD)y%vu+pE2NNTRgVIX2j2YP!e#OCm7~IlSlpy($#Sy}YmT1vM&B`>s2aLrUAANp6*^8Yh=c$D1nyo}W+#hlUx>nt-2+4RAdI>CKgAedi=L zyLyziQH6=5#sKN|8nNM+cWiS%)d-C8h=x|~v=#7ri6`k1d5xY7ofeY-g#90rHcK53aHg#VDA`A&Hs|TvoaGbPTb{Gy2#mw)#m*tsPl2 zQx!oJfMBT}gnMII#4m_O;UL`Z71FZKJ>AnZ+lh9(ao;LIlAf5XiWK3xLHW9~sTd|a zXe!$#t|M!6{{WH$Swt!#b2^PzK5s4W1?zC#uhG5|vUZjwPC!%j{WWZ-bE=7v;?8r6 zi0BIW?~1V8wN5;SgWQt^+One8B~BTtrg;rCV?TjLGCy4&G?B2k=BdpelHzweB%9q$ zQ|(Wb%o;|av5;4A#+_urC{{S5q(ZBsNf&T#BhV^0BrH}5H5~esJ z8R{~xK5;!<5%@qnV4i*Rr{8m+Ut7e>3zMR|W!#lil}Xnebu>zH^izUja65z3f-*gG zz}H3Mv9-rAy!cr-Bh_~&b4_>HHud7q1!a+^rj6v?*`UWT5w zr)1Jb$2FFkiD+k1jnwg>Zk8NijCa>+n&}(bY=!;{N0HRcbnqJ9$rUJctWl9 z*{H=%1Sp)7#zOl2eY7-5?pvhr*}dLneW$p~JzDvA6z)g_oC4mfo_Xhir3X9QQ(u-^ z;2aB>Y~VeU{#_I0qi}6qyF(jO(9J#8C1SNRkfKH>s0QgIlvDX}&#t64rK}y+_qwX( zRRv8;&E5k#1W#jM?zb(yUbhL%#u|<)8<#ocM&s26w9y3K8RSd{1 z2;2G1YCa`w$Fx~2mByu(V{fMwiU%tpUaWqA<5fIHnik|^pJ!X=(R|5^NYh_5!MAIi ze#iVe4IK|M7bL(HgPL6SquyM5T5Z#ZlX zjuwWEEP}`jPF`UjtJ*7HDd<2~*#-urzMYQTCt|95HdNnXBw+N@G5Ud>d(h(pV5YYg zlyfLmX3I?Uw0QavjYgV*hms=(HzR$dE?tY0m4_$(-3*fmVdRZP#8P!bXWI19%J6)i zd|(%d5!3SAdcMT0m1k;fjm)@_DkA}I`VM|Og-`s^Mu;^$c3kx8jM z*4u;C)yeZ2FsT6P=|?@d<&HfxUGD9LqtKqbl}WgGgEX@3dk(s%3QhgCpsl8~Gnr~C zI((9VC?&W-llVzL%ycEZBxinU9O4PLKtACUi;5wR(E=`ZxARYWZMcsP_jcWVyML>v zlHeJVrk&M#X_)>6^T5b+?hdSy;gMnRwueKCwv{zIJKdfRvc4@Y<|7A{>Ow`xzpd7VUb5U!)p{dGpLb3j_1Y zZ@1kdnkI?ZgvW8{bTWEJG~5IhXb3wgW0B#VDq(*vWd8sTKr%F_rF3o%Zs8@u;>TqL zRXaR}dEd#E7b_XhJzdGvseo&>(*087eY61&x4m67vb0ddXdWPmP1A-~Et4r=aB?{5 z#=8a}DZ#i7zhAO`W(R;Ts`!;g-%@(n3On?t86P*~Z0HbwY7a!;YS$d6L-kdyn|jMZ zd1b1FB(zrX4P1aTLnEHdPvr-JtIq^uu`+(bqeeeV@@eGne>G6z%mmfL+QdIKgKyLm z^}oXEIHHz1go$Xne;AB%8`rmOZ-Q3CSxFnmQ_E5`<^udSj}D_;?sPs4Icf_NH0zp*9}F>yw@an9pFmt zNUHZ{@sgonnx;vkw?d@3XC#cBT4Rbg*@s&UwjK+tVIA|#-E=L#_H3e_*&SpNd^JgK zrGlkHNK?~}{j^3tABX{>Vc3(eqHEe-5?HN5O4@pNdf2jsSxD#T4vAA?@j^SHM3$lN z+^tW;J4{yk*@=N;KsuT*04MYsmlH!plzWq@S_Mpx6+6^HA3*fT=S~K%E^hG><41Vk zRdLHIPc0+G2+t-X&>5ElKBtr4Upf9DS9aKohbGye_yPA{LGV2xhYo4AiMzb+z0tGL zw?na#IXMN0`46aX^wkn~my3<=k4iIbxL0oR$9J&#QxExRdXyaFgT@Ft4$H?bZed1^ zmU#=C{7=}sj?Had)wZep%Vje?CDIsQspFM-SMqy>Dn_;r9GJQhETm;|?w`8LxW5Qv zo6~=)tBjP9yjUCGeO5s|7!I)HobRnQ{{Uc9 zNmDd!SshB%{3#tP8o$ZV0LKJill9O>O3_*cw6K`<6D-~#)A1e>UKTTLWGj;U@b;BxfG z-1qfU+-Y!92lqp)en-oyi&u(C8*{mYv;P2)^Bk9}j@Y@_rkZzX-lCDQ(;H#@(a7Ps z#(jNprA%}vv{ezw9#?4MK7AL<*scRt!kC+8r`9&R^4-bo{SN;CFJ;6303eg=DJkP$ ziB|KVXk{cJKA6I}^l&?mL#o@wkBa(}hd7c9S^+IPxr?{jVde<)=d!11p{R~$sfmKR z)5$E6$&!I1{4x-{2j`@pW6!3arv=P&4f3LowxrFi3#wz!}1rO60C=^cixI3EbInCE%UPx&lFt=_~m7ZGyed%jx}_AjD@#(01mn#F-G}Km4X#W5Y1@BQP9t;=xpR!H8c)#LhO)xUo zQ&TLB%G1)u8As8WvDHFP#QaWjTEfjtqRjO&hqq+ z#O&ETdTU4gFv6yDpIa=X-?^83*7lF=sN8E<)-|-@w>#f!c_2I6XWg&#^3c-KGs@uO zKPvt5b)jNZZkSo4RY-z-yOoSrcthfBh-geS-wzr7465g-4`x2Ppi9EFeWqr#C^hu( z$}~1BH{A3!`*Qx4yOcStpvRksET%)xSEq5tqZ)V9InldA&+X)@*v=Uo*)OhBr=MGO zLAPxfG%Z(2LrEmHhs^UR+02x^BdMcsNL(LYJLveDHZV9jz3*oFx4~8__+BRq7=ZB~ zRGCG6yHZHivCi(Nr5)HX>I>T}d*eu{WKuUN0WS>U=R+uXH$Tf=X_hUSQ{%NGTa8hr zrL^=^PdbD17x_YQ@822~! zXN{DHPJOutwyss&D|npH>)b0Y7sS?(9jsGzh2P;rx)|D6)XJl`m<}JGzOgCjpG_f& z<5r)N+@h;(Oihp-!Yxfw)bnHvf;;Ddrsj_@T#ipNAf z>=$1f9$Wcmto4D=TRr_b&Y{mMo2lfw2D>FW{6yRH-)i>6wAGoUR}Ik<5k5E~GMx2s z$J3n^eh(|@;+d8u+^?uUBj$luaSc5vA?EJrq@%jg?l>xH#Z5aXUWbPv(lqR=AWz~W zeOY_@>2$a^WZ($^jeEmG*8c$N>o>)5=_;RgY0(Z!`szBdY`@0H*yx6&6XZ$OI1EAQ z$OG5!q*h@>Gqs2k-Oq=TvtWE!_ZG)fVDY8-5#qPs3HK}BEk|u$s?vL%3J0btPt6bV zHhZ$`df+^F(fY!3b>4S1GcX!kfNU3 zPhK%kBCM)@Ku4~+LhxVz*SEFzZ3t@Gr60jY43pvfFo6sTMK?9IlefNQ8*w3HW$#U#648nDemdFCL@XW4H5bzh!5| z_-3B5xsHzH;rp#8!s=bKWT8P%0>@U&T1YBzrCZr?!TM`y;f!jIXuFQ@lit4f`z*H~ zz-sB=XA87!M$1r^j9jCos}!A6D~48&+u4t{u4Pqk$q}uv+vcZ|KzylKWA=(~+P22h zZ)*Z?EP1TH&UCU?FoOjpCHItd9bDh@z02TDS zY!OD-#?1hH5xZsD!B=;h%ME-FdyNE@Hn;gI0*}rkU<-Ecy#ZR^r$nls&&LmP=7zX1Ll9?}}wH)VEy? zGN?h&gs3G>aHqNBS2`%-WNu&=BirZXzIeuGWh9mz=N&-s>QeRZYTPR*Cc8%>tmYH& z(4$BrE$D$&7%)AxA%-?I>Ia_Z$w=Y8A*eMm$lXf_EiKZ;y6?<#D=ocDXe+7bsit~c zg0EFn5{wYT<;V8#>!bA22Me^_eV2ygv0@bMsAhoj=F`j-YND!+=*DVZfl}%WibBR3 zLOyos0Ca+T4LdY9b=r+l)|QP`SY`tu$0IpY!5?wlY75w{6xD&iT@aE_o+-43BZlLLZHT0RQxpLYsMS?Me7R2O?CPI{>33{f~eEUYqAf_OS| z3f!YBnh5$RIHwLpR@{#ydDw?}-2|?Z($yk+Je5}ZYym6+K{z8hDz6{}0zT(V%TUwH z_f;6b3Sfp&H9XIWEWs&=2J*q(NvC_r2=S>6i^i8FG}%_#DH*g%S)|m>Gf86 zEDg~}C8&Gmk-n*U7H=!Hqd;xU>(Lmti50_9z>%WI<@HD~t$=b#KYlT&lRP(arPNrC z@mr68{{a1;e_Hni$|)(VRI3-CT`X8{~;?Ik5kT`TN7uk=}`8nD#R z$pmB>9eV(Nr)AYQFC2CpPaKpqm3MiMQjDOdj9~K2UnlLxthk5bZ3Hd6O>~E+tMyn# zH{tbL{{Xn=uzY@rCvf=DU3Ygodf7{AJQkR%R7$G7&KLw4_r|H!{{V@#(u-5X*vDU7 z{{a0$vrzB_G*&Y?&+zp}-3pt;e-bVVwC#ABijULb7CKM&zTE1uTgOMN$tCTD36*q0=KO;u{KNoD@yobUNKlv+Ho z56f#>JOB#KH5~;Y>mUzuagp@U$H@0-$szJN>aE823Z`w-(iP5J=LB)brad%TI$+(=80qYc?cJk!-3%HfFi_-mOu&F~{JJ}Z;1ky#;Iltb z{f9I*zZ8m;YpLkBeW7Ci0EcK2o;K?sa_#DU@vV=CFqYxah}v$loNl+%B+X=EsEGkH zH&OJ?tVW>$6x|Zt;#i}Nx=Mld?WmO%fvvsllG+T%K)LV49}ehu4ejocONxnbB?=2< z54N!^e-#kU=eAZjA7=Y}5r^=rsz5nNC<}OA?gDif;|q_KPtE8-&uvxU$6K22cpnuv z{{TlwMZ6HJhl23SPw<9g@NU^E$@2lN~t4pv| zsc33K{7ZGz0fFXYgyjDKDD>6qgYg-}&X=@l4g)}&sK5gw%HVFd3VOGipQM#_$8r?^ z0H(EeSKMlX{{TF@8YLR>%cKO)7zTQ9rWcQfX(`usfS zIf2)o`sBKrb+l8pESITPuFG7BJ*#8En z!T0soqN&s|%_KNjjfxq0j!FpDddO0;%(AM-RG@iI81$a3766qbaxsn$nZxOgG>*vP z_=ceDFW?g4cWV=x;b#G&FX5in+?IXpEj02f(on2(+G^f^Hc4rpmNH~~%N|OSGl7j< za4Zr?aaPF=jd0B2YY!l-@bL^a7)#=u-R*ua3 zYXprB7bjA$pN707(+PX@U^WA)Xo~f8+f}e#;F4MG6-(1nrMi|UQ~bTaBUOgevUZjm z2e)q(v`WU)MjX+0bMRVir*_a?X;tW?Svs-6JP*I9I)x0AKyvC0{{WUq>>D5sX}eRs zgM4la63OIMi7oDg}?-l18ou&z6yBaj6~jAoW&D?kUBvD%APxn z^Q-{eINWnvMfE#q`tl26+18DhTeIWcbrlt+B{9d< z9E~7axA|m&BX9u8JQg8+dur7;4B_(Ac9It#5OvMaa=rHOQ*c_+DMYNjj{bbwJU&Y= z-2L-Z3?Jps(^N`6(vjt?Is?!D0Lfjj9x$q*oH{2E z4XzHy{zK)W=h^0`wO=H+Tu@Z49Yez{WGBm!#(qf%!2qb|9=g6$%q44FMXtWB!f^vt zOv%}xc)hwNp|@zRc9*zWt0%9DjTi%e+qAn$Eu!Ia zN}JX0cXXt((l~}VkvKC|&xU0TPs*w?M>!gKu|^r1Lx1tx;#6ttr!wS(fZlI#zqzCC zk6Nj23o^?|Vsk1s6)36LK#C9IlA>QSNkAOnbdRov$%)g(Z{5?E-1Af1;#+6Qq2A|T zb47snt2Z6Dez{JQ!EddtNh9J_fhbV1JhOE(7RTF>q0?e8y!W0x$@+Xvkut!5d`@L8 zyTWbJaVzE}Jt7Vn+1ggmt^ny=k8MMj6{lv`DKl{^8P8t;oorqQ(nW>1)YVl#1jic) zmB04Kf_eJrY}os@U;zQE;+MN`n$m0@9MIYTj*^xdLYTyI3_Bm8kdj#X0ie}YuXu4h zx7X;Z)tKX@J?9g2-4@$KUoxt%t-6L|P*^bUkmrs&V?k!CV_TsG+gNn#eZ9ytt4THu z)2g<#)G)`;W6AUdy-$8SXnCE^(%$smcb#shGOSVgNrjEiE9igUjVHE{g51W*0hc!` z=a~>?Aod@O`f03%cElm~O~XxWh3Xx^NEEv}93tb@h|};<88otbDq`&l6H$AppYc8c z!74lQGon#ZHM=RSr2~?w8LO|EVWmSOxxgS2a&;s&$0*eD0X*!i7dkC3W_W6(rETbW zkHJ`d2i$7sgYdv{5>yW+^z&6LS0A@_Ef%Q+bQZdBWGNI#20H)-v4CL02f}=&+=Q z>P?YWGC0R^peYs#H6J}g1MG?4_0nUdr5?1W{{R;K*E>l$1wAOSMB%C?l0nbP(GYp{ z>I{2*v}S-|Y;f%yNa$Pp-7zn2;b1;$XzF&|HD{QSnd$M5Dqolr^&|p6O%R4m9twc) zGc%*LA59V+9ZQ+Lk5QuiQ*YW=CufddhMkEbF@manhCu%SJxr2=2&j2{GMJuuH0kcx zB({2(#hl#1SB{qPZC{AB))}dJA%7PG{*%s^6?QE~%i+=Mi~UsUeK+D8WEpB%WBQx+U1k!-8^-T(S#I&$5zi}ETO~2eoUu`Y zevZ0LTi~hh!a={dt1cf|BvuaDXLYw*osL3l5xyK}GbUMoQQtz?!t<0JRh~M?9xil1 zuA9qk+-M#;iKLo26#S_aok#xO1`ee~hSat|S^y)&Cg-e!DHqWqTr8Vv?!%=j{N~|i z=nBAn4stbWrfp*efwuEh`tL=4OX$*HW`oH8ks?I5cQq{8TBs^?wr@b=L(N$9kE<0IdmnB?5*7*pm9LB2M zKm(7ip`13T56q0^=H`8T{mPF~hfM$=v=QKr?YpG)l2u-8QB>LQ!zB%f>rsJxiSF z1gA^?04$D1#<_)oW|sQPuF<);1=~=@ou{~t-o(6q+_4;Y2q4ETBN5v~h`4UDLFTWhKxg@Hdr4=G7rJh2dDCt!hYydkA4<)a5cO7|?q9=r5l?CG9 zx!Pz2{s1L9U)jp-xZ|4o@>bB?E)Hj5R1qUaJ&;C6S55#UJn1rVWN;9{mB4AI^2_Ls z9FHD~HnEYlvHt-4r!T;6opw*`+qj{EXs=sAjQ9i@=Wv>_77LRI6K807B0@NioU%IR~XbpgOEn@jZOn zwB-lLC*O%qM|4;wiaoVpx2*5CZIsA`frzal5XQ!MJaB_IlW%f1+1oU63ZZJSRxcP7oC+Vd! z0(_F06N(L0ad|-KlPWs_$M@9u-~*DI92P+?6Uwqj7{QueVpeWn2b}P5H6%(Hr^3;{ zAenaF!n)mQqprCt(#0bZi2S_V_XE*!>U4U81fF*1cX5Yn`p3v}9w$|CKq|sX!&#Uc$_*eepp}6N4 z!9jT0-jk;362)CzZOTr&gr;ZCe7xc{{{Y*pj}*tMYn^#tr|BCHx;qRE zh*^T)RpC?)Pkjag$--_|&ZQosU0wjM4LBc%ldgc48P!8QR01q3xtlzWknrR6X<_W_19&XN=9+s{azkF zbb`X)B?WB-Jz_9q`Mr7n09{6oM@H=q$=KyBNE@eTJc#d3zH~<=qa)@YZ+#ep6DHZd zDtvMWZJ}9J&ugSiOmN{r_Ws9K$_le^cO6p`yOI<8kVg4fyZdVCNmYH&I+r4}cJ-A+ zYJZBn6>b~p&#sR_mEc`h=a{tJx+l%21zjxBf_hm<#z(G=QPGB*gc_?6%m_QJn!{t; zTcT$-8VITHjSIwUX|of&a<4>y^pK<#;ei@2HU&vJ?Hw2rex~Sl@Km{_Epf5X?y7G8 z00L;N+eYbKx2`iwYl4``C9DlQdU<0VWs|-N@&U&>t4YDEq|GD_BmjGk*WiBX z+FFuGVHX7ax+D#cy1ZK04{+SD*eWO40;Vfmb#n)3u1gnBO-QDX2AP39J$U(te2pd? zLavRCm8>s_`r2hJ@bU9Ytf6aP*~aX|>#r{hum93++xGi(?J7G2qo*N zPp5xPe9uWq9G7&~3~0TE?&+^p^-WB!U;(32zCEF;VR}S@LoCbZP@W0-3CL{o)6=N% zLir;xxu-Gjv*&yJzG=Zw8sO`VG%GjW8-AMSK;(Z8x(5@}HhOU)@XCJUf;Aq3snAG2 zNznO!r6#(VOwBh!ww~RujuqS$Aj1pvH8n3z8_aXkt@mNhJ-Irux|~kjyNlZWf9YTx zbNHWAg@;kmTeaEJ9dZ+;m_JvE(V;fd(^FJbr|&rrnIm+3?9Yh-Bcy?nIUb$9+LcXA z){wve2W>ZBJj*>rOr5PiPJU^p6YiV=+it`v%Ajo;}--52AFmnB{2V8S9h) z!@22U$4T#>rmGBTCd&F;a$NF8snWXLRq(BbjhCu98NV9mg#-GYq1(2XBL_d{iiqOZ zw>LD#hC^;+O&pITV8|d0I-ehxE$``_26cp%HURTOTtIfIdgJ@HpjA-Rig_Ncm7%Y- z)s_*w4ns!GgYuOi;n$TqwD9&LEfa_Vu8L0S&v4t1XdT)|vQlekyLRqD8iF_Ya~=zr zJXE#Q>?xCU+Ra5BB+{ikFwdEpoCYl$$r!=u11in~5$}y(Fv`fQ-eZg#0dsOR@;t(! zaV7#HXKNuH<82220A#5LiIlZAX{%i(s(L}0ngz)Y--bUzNjfa-K1RGZKn~Yg^RNaw z?izr)GsC+36}xBJZ+mS1_^Q05F17Nvmn@Pw3p7wCNpuwFA(Ml_C%&lojvX~!TcUfi zHHP2+0I%`~dyST_gT+gPP>Epx<`*vJPwDVlHLyV~WU^LMA*zBkS!zVzfgdiNXmQ{1 z42@KAiaBX}qEK7m&&f!o;;}umu(TZqG+o{$jaH()q=m;&NPtBH)1Q3{r*lZS8mkj- z;dZy)y+$ah+c5x6GlR+d^WReYN1j%)@yu6=?y~ujtbIzVgaM8L2Ou9zY0w<-b2y!s zSx=&dOOt_+$_V~r$36AoN;fHOg;jc$o%(wJ0EN@a?v^&l`cIvHT5NF1pAv4A>9 zrUz_kvmm-oW#AarQwfk4$Qb88H*IvkO&3k~QiqSBWC+pXLZ_`TSScZjj^rQ8eRR>d z(IUrX>F0_-jUQ2o&Uo&ibIy7CX$@&Bfrs9!O?M2&o-dRue8dCNGtNQvI(3xx)TbK_ zwI~f+d}N5Td5S5eSrDrg3|BY@9mlxssbS%RbV4@e8go}|lr>ea*2&WBaI4>sf7e`v z&Y0zlU&S*#&5xRT+j}xJs7lFGs-q+3AQC>Dj@r9m+&PuPN9sbWVmQ^>SQe2O=s*}v=7|xqX%AqV6fZcLQoB|I>@9n7#1Etq&Lif`n zw?cx_da85&TI*nWenyMC!&U6S3#r!Dahc02e<;EJr$?!<0$Lp@ApVe;bx%d)+oOp8 z0EN^$<%v2b%pNB4znNb2f_bSTry;+Fp+~L;rNc%CssQ&SIrrwQn6aFLpM6gh=GvyS zD)Z1sQZXRue@E16oGv-Xcv$sLGGg73s;UX7h-1trv-)RMOh*Zlms6{HsnE_J=Bnj^ zuf<*?NbC`%-lK- zI=|C8H-loGgn%7bd3}@94$;0TMyG8idXad^7$XD`+!5|Iu27aeq0Q74SF3RZgSw42 z&}=_WC07cFYSE zR7o?4Dzp#BCw$tTeJ=!MYINh?{Pt%{9elA*k*LV~?HJo|z@HQ>0d$7r@(Dw^Q0 z(KBIsqm=Z>4|S1SBOgt7Rm)j_|I>Y_s)7r2(m@KyiHOVya``QR(3u?ij&<{_&ku#g zpa69Duc%tXoB~bPi0+fq%@ebA2ww>rj!t-NW0QgDsMPqRjC)+|hM9ah{{T9rzL}&D z5?=nIg56h8V~L}roGi++E-@xLh&++VCTCVF! ze6X*<%_7|+bJPQo6C+`AqqiVqS1c}>tbv8PmgwQ;Z*}os8(}Y=rflA^aU$H%n%&MR zV@cKHhOgw3GN&d9Az(QKpOuK@9{M24eQp5XGN4TpvVeVHJ_LRGb5*yOi!oYS@rty+k>pQFy7&P zDM=7~TJs6I&3mS(qMDZLQeIbfdO3_>{62dO@$xU%(@#koUd>Id%g_C&6*P`xgP1hu z;+SnWWT{uDp`9vgkz?~9jnub6I4%f1vC5oscsdJNO_XPNEx)R5-F3S3LZxdN^fJaSr?4ELOtiU*W8(2o!uEB%5Yw32! zXXE0#A7prQOW|J8ae0=aqNbex0L@6BIeFjwNa-O{z{%-2JxqK3Gae|!9{GD6q_$D0 z?v4A$pN~X7JGgdCB)0j8cXbX=GOES4geWW@o_}T!4OqfN`cn9!EsTjolZMaF8MC=tk=KRY1XCLVAut_tL~2 zSA;6O^#q_&esy5Wf(ah|xEgt}r&`X7!qk~0c2j};zndPNw5I?9S7pfpsJ^FMwCR?q z4bl+^Dwy|i$35^h#~h(MnTZtL38#qe~;GPuKI z+v}=d6=Q;u5*zCkV8W>LoX*)L#$-~(e-Y)}`e)E<6_A&bTy9mAfwGiHPj5{lvkQfJ zF3rI?_1Clu!4bFGCYm;>sU0vcK3V+3(39v6tk_QuzIOJ~=)udcpHJOFp0TYtTe>4g zk*fay1yxhn3~I|sPSy)X03HEFl%8c=6yT4Wzpjfmm?+uG_-O$i`gBtCT{4yGIt5Xa z+fT+bpxrrFnu(TY!cbBs@BM^akW)H@ao{{TIB8?HsNMb?hg&EM}%v8X!4C5 z-&}PZpXN3{6dM$V#{G8wc&ZaoG%~ynfn{C~ryhiBQl@5CSgJj7HbrcODPN*d{{Srf zJ~_euVg96!*PR#G~$ zGuw@LFCx%V&|K(=kSr3b0&x93WS#&7jdgPC|I}u*$yfgX5Q=A&V6n{$3Z$E)Cs98q zOrML)IT##ZeRcDW5I}K=kS=u|9v(dk`l_gR0o;T_?Mf-DWqyWJlB(?31Y}@@?T=5c zpkgtGO6@JK_xcaIMJ$=xHBek^QEqLaT}b4bifKBa%QImD@(TKOdLPqM;)KgZ+JZ~t zankqh+o#MQa!8a#Pyrp+3l+(?O~YBScMWBVx<;j>k(ubHP6Df(GO1ud_QCC|ULFkb z38FpioEB%r{4Us~F16Zq2sO)e3a+-L9%{KcEZsOKj-q)7MPLP^T?)!-_+_p)wbDM| z+*45lGSn<{45y_<|%rFCcjaH?@G!BWqv#d1k>+xNKZn@Ck?KGEKDFaj0L!txR;%RZ#&vu(?-{tSR{p90J1xsr1rKH+VJX*BASI zQ?pf!rrMR4S8mPcMY(2!Wf@m-)=AM%Jv*XG%7ZM-T!jHt9tp-Zd&4j&s@T>!xqt-N z?6YioyhC{jvE;gcZSI}fblJA6&f=n`ni_?0hEF>^8??J z?cY@zBO!i52zM_ZE~`tUtd3?E2Ldg7_Pd`jHs0R z{$KmGbY>_0A_E%*>R+aw!1Lzwz5S50E+fUATPSR2@|(B$9=={4^ohN%mF(4q3D?bN z6kFlw>WYbaPehEQhG`o)Zhbh%Iu8L7ycYmTJ@<1z;txUfOTaKk)trscH`a0bE^n*0 z?@Ic|quy^xbf+`1q`X_?^5c)Jj-QL7ljl{>0#xe&@ZS2-BbJ$r%}fgj9p*S(pB6Z1 zf8uT6t<+d_upY){G_;*0Zr)C5+x|l9L-69;EvDG^dTMs1pUrQHk;VX&9&o(zj>K?# z>Z`;PvS+pTzKEU|h4xNyBUJR&6%=qVXLhDsmzazdj`V;_BqSQc2L?m+2K#AlX0{l5D1x+b0m zgPN8ivrLg?ib%z}_-tTyVtW&$x%L-HAc1rS{l50ijb4&UrKqn3kM8>MNCB zyB%b$Dv9hIlOhH19eRJGu#71_1QQ$>WV*qJlUXwVD+|dY8=Ot;yt>;xIzWs5$MgO<2%u6H&zC zF04;HaYS3!8Xr|qEp$SbGD^)aRgG6)GiQW2U16M6T4t*)(@!Lo{6IK(dsyfTo>a%DDTIvoTYOcD+~Qh!v0AT-zm$wV7c5@N>rku z`Qwm>X8??kLC&=*y5>G16k4^~-@}p-O$D4>{lfWgjzFW#;P=v~;LZ2Ha<5W211G+8+lGliD%7_Hpt@7lzy2Sq%cw!? z6a1_{*F~@@<407<5374S{wH*bs(#Wk-h8~#8}v%A9RC1`k&JRSJCDe9^fVKPG<6?N zUnQMZQ`_F7ql^*(2aYvkrYfCR9;G<#`Mk*f4sJwX^n?7T)AZ5Ej+Q{(p-!8Axe{ih zs9=+Pp=3XuRA6)Ojy}3|C0~};1oFKcs#-8Zkf#g)%MO#TFIj*8)oNg-ref6Y9vRO= zNP&^OyfQq*YUi00*kZ{A%#>Ex{3*IHOwhPd+8;S5jDVr1Cv^2ShNOK+w)ueN+4FrcVQE zVANc`+p(D0V)X1vqxiYt{q=CzYAl}B)DdUuEnJZ2U~A;V)GC!Fh8qLvp#=gX-A z;OVGYClX;Oo5+~7=AB0i5P5UR9orn8Rwl*W zD}~7nJe#M@W);#o&pC7*6dS7HXG(t}jx>r;tR@60Tn@o-J-z*O)smraL%Z-G1vz;p}Qi+!$PS+x@PX z*;eDdZ0%l^vC|k~h*Z^8f)Sa&A}nB@a8Co%S>;U=St%FFz()N~%>9-1_^ZP|F}HP( ztKrv@EwX$c@Yiap?#=CLp8o)HshQ=s{A`|GG`>r9dD6qx{3to;3VCnMoa0vy>S8FG za*)zHzRqiS@&~E%0b_W!Ci=NZ2Frho>3%`ER6zI$AIk>(df(9(40<9=Vwm$a&DWKh9RU-9=k zh}s#e1Q=x?^*gtq#&Dzild9{RBW5MK6XSfh<>q~*FA2fjUpQd}v5iVouSls@byO^p zv1evEc^r&0F>Z2yrk`cO8tw91Z3Z6{5s2d!1Llx#w%c?ROtJ)(A~^_(P{bU8!CaBc zYRg3{-ta-ODRMHx#9Re?Y~3y!dQ(L!n}rG-0^G|UIOz@t%m$%ibgY}a23LHKxh^IG zoGJGOhO$ScmROQ*k(jC&Mn-uYpQeF6f@W)PhNH{B9~rIMaW3|>S`ol&HX-Pdxcm#$-9+(#KAN9RhSby?u`rY6WIC#@2nKl` z(SD?BcAJ9j!8Tx`@@fCA;4&VPv`ALk?c>juPKdY7LSdymx$KB0_yY8qXX zpkZ(b>eEH~q#gVh;>VyU{dLvbA{J`oidCYhAjanrNPi=G1N1ty@b)Mg;RL>+^-t+N zJ?a%)B#iCcCM612bx=Yii)CY%k_wncP0OPaCIVg^3?8zo>W zV`+}d@vKRZ1B0ZRphEX#K|pU*;bdC4`wT0A{k2WvC@w^!$o|NsB$^hKD9A~`JbP-U zhz8kudC3Jwd;^27S#UHV)vwhN9{Na2Ofb&38)P7{EhIR}^p+qw{@UF*Qn*hG1^t^J z`2eXH%o$13ZGFmm6ea;KM;-p-(^^dnd$(EMBcrUC?Sa(CRJ=%par7O*(WsSjP18KD z3(T{|2bRhSQ^zB^>Ewc$Y^u42t>%z)@ZgZ&FXaS{c`1MY)^&HI6`c_W6$ww4ZhBej zFiVntQ^qmJ2VXZa%*a~9u23!G%=}l>xg16ORPnt>?s?*sNT#Pf9%oKRSv`Q{^#RVB zbw%RH{X0|=@I;RSOTJtw3VJc8ZuIn!dCI2T&o6vnuX)E7Gp zHw!G@X+c#P4qzD|f-xapG0Eim=>k0PmjVG{+ntk;RF+Bwv@4zW_SKrzxG8TmakR0A z{{WjYgN~IM%K`T1KYdwnO8(jxM0d7|x5cn!h1MDsQt7%{qKVQrAe6x)Jafi9bV8b% z#9d)k6z1flE4|L5oG{2Ner`EEXX~T!Mhb|?vYiqQ{;EiVRLLPwta`tf+%fxOMd=s~ z#g&eVOAv3dU9sTxlB;F-RcYLN;yEF|ZWvLmcBLfCO-lTv&aM9dnK0x6K14p}jPn|T znY9GpF~2SRziXnHw-L)%`4EdnJ!AUMLH;A+O3)1#M2mFa@x4O2#%;D3=Lh&>I5RNF zIPZdbaD7gq&m(Eyp0pP~*^c@TKLCKn(X?k?w*FaGrg?W=^csOaKv zlr(C7UZy+@_db}_ZS(qEh4Y-Sw_P?K0Ts?5k3R0Um*-`9Xx`Txw$F!It0$C2Nlgou zUnURmoyh|YkD5d8oe#t&H4|B#2A1^)MAa;BsgbOY`F;NY(lr%`ThVEltdh4$dHH0K zq~%MmaJc+BksT?3fNVyZkCplAwOlq9Q$izWE&AV?NZW#ftIw+wP_;98ge=+09D5(j z=m0(S$FQ~6<$Zh=vYKIGXJ1cxM;4h-Ka(Gq0(-`Xhapn@s48X=fVo73$u^z`tshHm;m+CcLjoMv4?fsu+T4qbtGuKke2SZdU zGw1OIMk9gGe{DoEdt%@Ynp~d`-43a%eeA=klI7sG#Jt4NK`fMV)S*QX%IVe!%LH&q z828hVVp2wQaJaGWZ0|2G9n@!H@{ws9akci*W1F}3K(AR|t83os4Ez+NxXmL+C($J8 zU_R$oT0S`gN!UEt1;@Emu|687tM5eju%8lJ@GA}99vOI(v}%MKg2PiCswXccTrruE zx;tf&P7rz>T=4u}lA*VbL7S%E!m4iJYMNK(AUUJjZoe(U^=wZzjbw@uIKV565vJxg zHocL$TV+~LhFdP{xT=iFO3+hfL&)O*4C*83-%{+YI&(i|$tu|xzctjm3&W@>N6KZG zhewa69SBf%IXEDmajDdNG8}Zx;842UX^aC=b*WO>-kkI{8Bk!7OE*`qrZJ5aF=QpZ zG~Zvc4WBoAufZ0iSuxQPaJ&z1?WZD`+RX|)kbrept?;!)LqJut9z4Q9Pyso>&wU~` znH{Qi?d;ipMH_ZXSWie89fxlJ0Q~A)gfX`YBRj<}+@47?CO(Apt}s8Qs}-Tn7jm#s zNY;=7&+B67s+Aj#dXyiou*`BJ9aFq@SLj`K0;_zW_Z?aop0f0;2YqpR%1n=4CdoEm z8Bb3GBmH!|r*ga#9j5HHh$EN%_I4Lm>CpomNtW zC~Z{FDxUm$d+H4J4k}zs0HNkKmV{p>ie!+w^^afl=TXj!nN&3(l>mM(O!4&B zEy*CFHiqbd6}uyr3+<3~rEo-s;lJdon9vzX@Jw`2g;xL!Fbr|^*7ruv@0!SQC-;gk zY?R3{NBr66x7$Qx7C>HgOmt(+3cZzo&**gONk{E6Je4S{dQ9IZm^e8f@2;gU|JR$s z4dYM0_I0NBF$rByIiRnMoRpda(Co+8t$J8}4!(NC={p+n8PI5Rbsj%O^yMW_YX))C zUq9xl^-R!JO3Xr2O2#=CvX>+AD)aWvqS9t;uI)B<RqZI_qR%jTP?V~7QyUh6#GmWl}`si&i;XSK~52&$YOuo*#8#DSMw^X@ej z=h12}8NO4eksSV>Xp^B8blGGY>v7__e{joLwJ$PT>xqe?b^(aWeF*;mr21<`qRUel zdpU)UW0)C%<-m7-iB{`$g_+uEFy*+x9Q$az5fiXg6HG$TKWC2!m&9x0@4ep;PYU+c zT1i$V1e>*NL^O0X>-p3+45WYC-0B`ViwXt?H(6h$hqBY{A3j|9re&7Hvu@|)y7sQN zN^8|#=e}Zn;ar_GR;LQo_PS>LB1~{)E8Gs>htpJA$(c#6hF5MmG;+D?;G1L4jA5`J zG$NXkw&Plqw4=_gs$mi{=LOsFt_P>ka0flLS%%dzWN|lk$M4{bGSRfSri$v@Cd{LU zZCZm>U1O83@pFxVMycsI>&N9z%jh`9pTsH}#&!{b-RIZILuitB-Q4zXFg!d@G=F7U zp`fHoyAxqo;bA{J3FO!I%KJeCOui@CV^O$5SP$h3xGv0NZOD-)kS0(U=_jfG$c*xlzp= zY_vp6L{LgXzRXJonK+9M-qHa88{Kx_i_TMe}nV5jb%XNJNQ_6v-IuiZ~vg*dE$?qL@9| zOMxW!h~CO6Ij&deu1hfJ1h=Y>#mA^V+5-B0NofB7rPBqKX}&I^SkjVUk(oc{A}C}9 zFn&cD05{i8v4Z{JPnRU?92gDKKJD;_X5MQBf9~k$E^6VPdSo%A+~kQCJSorHL@2nH zN@rzp&Ico?^6C_6=^?3ae?$6)j{6kRwCF5W$x@C=c&WPxj&lGVyPnPUBU-ir#~6J_ z<;XiX9X0iT_j2&MqT?JbR={M1-J?fOTmJxWKXTbNwTQtl#-vR4^!XrV?IescI!Mky z?s2Ua2HU*dTg$~~^%9ZYIy<6bsIW|wMo0-a6V%cpj4xAj>7L!RHf%M_VX^NWRGNH2 zj&Kgqz6$LGFeFP9sun;7dPmEgazCz|fr7wuNvV*R5)Hz-^o|EiM=R~lo^?60WwjdW ztGzfGj%4ai%$Ux8`ikf;xKD|#vIBOZ_;6aB69FW!@8zFCpHO`@Uaz7o)w+Z7Mky*Y zZ@Nam#89nIZi9y(L;nEIvTiZM$!L%bTfdUN;M0c;s7dMkUY?(>v&*AT=Q?V6&L(9i<#NZ5lPa2a2L5;!8xOh5w zrrz5$=GibcXPpwwf~>@=p%^OaaLRqKb)dGiOBj%8ef;@^Bu8U!f`UnYY=Uv?sLzv{ zbT;ZEP^Y)eqzaub6M{AK;#Dy0%NX}#{+;xrSk?=;f#z2`GImw!Zd7A9nVG$n5BlR! zX2xK)jwJXGx_UZyo=S|DDsJK?cRs8@AKOD;i$(0PljHuBmeaec^ZV9NF%&VV{Z6C* z09ur6){lx;qYh-M)ipIUkK#U8)kgzRC#{liT1O_M`3FzX zdh1Z&XrD0-BEh;}s;uL(hA@GtDXxk(U|Ek0J7VkM=4gK38|V89gevprF3HwFr=97Pw&#rzPPZFVr7hWn4>2=fosv8Jpd4KFbO9y~lq7w{9M*XpqKE zj~8!?hcAcCb`;GVs?!cqJR)HHuED+k07BZN);+n4hP!-k*TGqtai?FRRJCovQ@if_ zlC3HYMM}X>1ho!CLN!%llBQxl1k)w?n_kBYkkn z!Wh+zfuGHY4lvEu!I*M+_0XAQX|UH#{x|pim#p9}c2)N+F}qqkmX0zg`q~n|jH4f! z2>wu~BiFv4sjD-_1Ff06f5)f(I(w4nULuzFJ?+;uc-OIB^<$c9Sj?9iaq=GBY`n*l z^#G|KW20Oxigps@aj-wb_fhzV4>HE!2Bchhg@O2G;kD1i{ozlxOy9fh6yfS`_1G*Z zD57ApIL`(~KO|$-{>NHoDT>8G36=W(k@|`LT&zlWlI*PjJ7wP^_ZHHy+HJNgdeYly zX@x%3w4M@p4s;tKl#)re@8jgA(ZrZGm3NnHsk_Ta)YF%i3OU`?(1(u= zAY2B{Ir;(yh(g*(BQpTvM|Q`Xh}d}>lB8Cgx{@q4`z0N@dD@$5{+2s@F~bcso_$KQ zJf3Ys5!CWKmS;HiB=r88YFOu#wt0qOetHWIR^%1mgD`GtDJrj>Q=c zTc4(A^P-WV^TLT`5l|n= zjtqc)0DS-&D+D=WypI-kx7zOgJ^?mgZH3AoQxCz?WD(}eAXZiUz>LPfPjjX_vBPZ% zCtG}il*gC9U4T>VkKU}NuDL&kC1}FNQ9)tbxy}dq=}dd$i?(&le63;L=$fv{e62d# z>cd?klHl>N4IE^LAbzBu(^UTeMRh@Rj?fd!k{wegXBtPWx!2t;Em3BrNuZ}L^(oSN z**_=@I|at9I7J8%+3m~*rrZ0<%By&Ssws=&d1>XYp9IO_zW&{|6p`)Kfi96VG`5P! z43w1+lg0v&RDs7*VZQp%xO)>6uDvYI1DtQWoBq7U$~8w4ivI0nVE+J+?!0+BpOde3 z(0fO9!@jMx6Vua6ZMsu3M_+A`)?Sjz7(6a8UNSoz0y`dct+)8ZggLSuDCx|JOoHXkAUOZ>yzjY6rW1XzSZo}k}Ckni@x6po!Fz;orf91wjE z)N4G)aJ||`bgQlrh;7v+8c89nT2g<9DZ)AJ_BzCC@EKy9MmBNK^72>sYFi^Sj$5KM z^ottxDv)~~tRCO#snob=V{c=B^56c7Ve?$>y-f(1VE!@qTO8?{x=|?c>bl3+p!Jlp zB%Fd+YP{x{$!XnAjzB_+8g}Xq-!40Q=`NF^an2U9Ax~2D<&=`h$0yh3_x}KWPs8yu z0U_S0_v_d0qR9|8@LuMw5~n~+jCVW?>U~x^(%h^UDGY+f_f;NwnBchs*m0o_t(D_f zd=!Sp(aA#1jz=x`)O%la-~m>ZiToYLmJ_WC0L%^#ulCcfebS1NSmO$Ru9_>$=435_ z$h8T>rL%#j7{cU-KSd`{Zb`>K{`+ak92naK(BA4G#{vpP>ZyNR zf4{b;;WVz9!Z^j;dH5#hkThm?$%4ygj+Qaz4!KV($KUnV{{X|dJ85HUPW;wujpBW) zjkZj5)PorSW6)~#7S>cchg}ku#6 zZ(hYf91i^Jt*eZSuHvFy&^t`70|2!+CWn&?I-vm<5nK9^>de4m2{N9Hc+5 z$uB-@j!N8yZta5LlOI?NGx>==p#60SJ@MEPvSrGv~fv4$16mL2U%{m z`BMYbHZXk#or+wp4ji@qeUW!mvCuiv5Ca9=d^)IhM~544W?L?9QC`}WNmsdRA^bNx znxGNVMtg`M?SaNi9__13i|b?UrqU>do7Y{3pXxmq%vhc`={0go6KvNTGt2dV(nlX3IA=1Sltznzh`WxY1Ymk*tJg8dTu`CQO)n>|L(k3m&NIfQM(0!=Kx1uZ7LDz>@W0Iz?Z7u059W*3@!h=? z$zrqSo{E+-s-S|=Dd#Rub1P>jJ+ex4lB7qmHo`jpQ}cQLeqomQ2I5xxS23^>of-`hYcsM=kb zpzff)p8jZsB=of_gV5ba0)K9CoDHGp8;dx93U9SGRVwKq>Qsg{m2;CJKO+qDk7KFROe_ZA8>ga>^|FStA=V~YBnlfp zHafE1`No_6qu;o`{{Z*$ONjEarqvX5g^;5dQ5h*>P!s}t79e_mo~9f|2@Y3xn%10+ z<$v^?Ej#Q^{{Us4?>)^WwwzJWCy`lJ$E{h(Zjdm{f4(*BCWF!)YxhQ{rPWW1F_zN9 zln(Q>3Jsej9XFRzbz0hJTLC6g@UR)lV$3>DPrj~jwkThDLx6Ud8e7N3W3Q3tTU@O& zny#3!G!>NBF0d3uP!%QsdMhpgI+S3NH|BxOkZogY{{Y`r6rAn1Me?HQEHf=)d{w^T z8}!3d3l(_y#}Y3%`|3n^%eV!kCk?iI&df)b~v+?C*; zxYf3UjNNa{0mH-AOM69uX|mI78=GnFd_AhE61%6Zs3tuVDEA875%n6oQCCA!Ge$x1 z=9(@x)fzO?B!$VsoMCasrv#N=t}ysLhiq$(Zee8Pa%CxFaZ$+Bs_V>3{{X}vafK)K z&^%6vy_zGqePC;nU3CUQU@%82eUG@+62A-t6?CD*tWZfLxLd{uGQ*yr+4+aQv+C*^ zno->uoAU$rR>&%1n|%uR9oibS$_z-o(Dxr-u7rAfXKsSTayyT@kYFtGUn*KQj5usa zI|J%HMucK)YnUCghTbW0TpMy#3D4g^Zlr-_=QtdGgIy(cMp?+l2O92)Km`|9P$#}L z=7BFQmxhB_an4?62X{foF80d<5JvAX4?Dgk}Omq9zw{ZvuE)h=Tc}ed1_yj zYvP-lp|OjUR@rV5{MhP{_jCS3TQ3f9>nU5^9qwgO@r++SgJj1;M(2{Ho9&%wRPbfl zQ7Y4=b*TQowVDA29d+x^aT#M{z~1=oig)#Au+iwr~OUIQ78P zf)ZFl`A2c3uZ~G$jNu;&%Ee^z@xvcXchXXUy8qI1@O#Hyo8p5CE~U5bSji1RGXdsv z%TvE*AN2PcL~{p=wLeiz_>G(qt@+@spK#T^{?pZD+@KDNg(&G+2<#?|aDMt~u97O2 zWR;=8NW<|t=-wX_h)8nWHzv=jirv2G%|2TY-l08I(w+uc{{SvP>_)OobAcs*nJK%? z8s+8|$AIy?6@W)Sa!-**UbZ?q0&S`BNXM!e!-M8Lgpj>wI0W}TgH$PBBb|~>06OWn zxn2V^o0H3aN|xts?_IX1rrC8=_PyZd7o{}_vqCW<`LMTFA2Jd;vENV9NdcHPpchB} zIv)>p)LNLGl=ft1>UL9a3fQf1t-hK1Z`HiVIqyqMyvY6dErNcUZk7zjr3H+x20CfJRa$x=WSth;yqV-E|vB474SgmogM+{la&RDUYQc28@>&^y^;y8n( ziLtb0V|fl|s?W;1=PKL#^Z)g3J)3-dIUGvq}Qf!{bKy@1Kkj5`Q@ zQ;UzPH$SlPM6md7ZgxWGYj3t1SnZVt8lBNw{{V_;SENZkIL;$rWiN*QfR4L zBUv`w!~#FT|*1YnPYLW zTaFoxKEOQh%{c8Z5h?t+Ql4l$nYu)&k&LPBj^m!=*Hqj`32+2kf98tW1xR@W9YWGA z8@7(31%&~5BOOu`^C~YnAdjvw{#pwqD~m}WlWSk4l#Jr{Og8KAh9s#%t^7}&SCP_t zxF1aq2eXr3^>6f)_yoEHa+?1D9Yeb`?KBbxRAY{MMMoi$Z?Havn$DJ*qUi?uO~$K@HPAbDJnr22w>+C&s>1cwa7 z`nvp6W}K6~f)O>x%!*c2SZdC47$4#1xF20cl9YC~XtmDYvXLZVt-FtO3*BM+uA}!f zu$XA)t7#mt^M8o!RgOBkh`=YX9-6;lZ-*%a*~5NXtg5dJn!2FWNISmAmsP3wcRu5~ z+oGtgilT~^QmZv9MrNm$Hu-Qm$t#auIP}rF7@tv~zCvtzd4xJ{8jcr&{{UBg>{CtO z!x3K_3pFa#O(clUv677#UJsP3k3s385^($D{?h~eMuZ@>RN^yoF5jQOs$F}2=djB) zzOK4QNsBMTR~8DWKMzBY8Be~1PgOG=*~m5j06)47G?DJnYjsp=E=FqLVU9>HH0#w< z8_PKGyu0tf002MdwxJ@f+-qYl={-4$Dg!lr1z*0o3BXsAU9||nZ|RHKc}vrq{F6`!~#v%p60i8IH#7TOclUW$MYY3U1)es@{nZG-xM07 z7LFmIx;1Ir?K@Ry$!n@IpitwbfH*%l9Ano`71poTN<(Rb;#F0K0O;Tj zf$5K9oRjOWFAW#})8ZMf*FC#&lHqBoc;$*_W{;2q1DvZ5!gKAar8KUL*2;P3wc=Q6x^x0K?kYcyo}a}ZoP9?+vPCdHwu-4e0cpE6@LhRDS+u-Ivx>_N zRXxJfP`Gp$kr*E8=zAa2QbD$;dzxBx(5#2V?+>f|JfN2QvSfH-L*_|jpD#%+4!YtDH36r*PG&dVh{OS)+4Y?oMrGgC_+PntmN zvbV}Z9DW{0rm|c|f@)xK1YM(LdBph2FGDY;xs}=h$(|@R!*oTv7}8P9@@`7Xi0Ur& zObVnF_$Hc?5Z&YH9dbDCdQ@t8qihkfJ6Y}*bB`hVN7VIM9CYuErO(%2ea__g@*Nd> zjpmDO($qr~qvK*ushUrb0Bm3aPbIV4LS%z-=mEvt5J zUAnu1(?u8Vi3pLWNmZ&$K$K?kd$NED$Kp8DYKh@wq9?k=7Qm=YHf+ZFYv4ZXakE>f zAgqRoZN{eHLM0?*v35|PDZo9*<+IzitJsNYyp4873+uPV1g!i}uc({R;BHofm7|#) zvlROWhg*V0i7Ou7uGt2WARRpR2c>!A>#A({#SwN`n&+OP=++xmjK^stsLDq6x?J76 z7kO>UGhef#j)scd-8ps(+x)K-(6!d5BjGYn0IA!IRU~7j~{IptK zCM?o*xbs?7lXEp(l+8md6?XZRo=TLEF%EHs0Y*6;{<^4D(DqFs*A5#FNc>eIPI@N_ zIVP=%Dg|1_NgIx?GI=-)(mCYn91v&BO@JGd`zPee-2k~N#XU`I)$EgCQ32N%R~-z! z!+Vq59VYD>gJKdN8$)#6d##3P%d9iQFIFTSOhNY1+(4 zV`Kak04W*j&)-^gGYAc6(W7fD{<3?LRdX@8n?_iJdvFlni%J8q-b#Q0IK7~jgr;p!T$gcD#JV$`6#ED zfXz!MMo-iejA$JED?SAix5+YMX-PMK*~6h+*)F|nl2#g&$;myshBOj>3Ags7 z{{Y-SaF~1!-L4^KyUT0teT7tM@A1V?KQJ0_6|N@(CV{@Ve?WuB<%wJtB0z6 z`(MFFaFMpTxj<*6+$Nqo$hXZ`0eBvV;YS}*C3FerL=HJq(~+G-j+N!P@)FbS0e_-g z7=zoRfwK9tw}r0RQd0ACuCY#E_)^lN700ibta1G`QwykUPP62DIuUz&!9^v-nC&<7 zTD7Zq*H=QZ+qc!8=@Yo%86{7s(Mf2oJXDD4>`=#qXSNTq^!tqtmYGkEr9{vG2_S#_>8Qq%>PW01 zTz$SWzIat$o_cai6V6U}9@=yINIUG5F+w&%tLzl&{XGDy45`QU8i7%QMoypt$Um z)qsVLXC&|x43qZM0l>`%M-?;r^G_hG(%agRkHl0WpHS|KLHdG5rc!WIA$7~XDmpC+-|+%;R-1z0Y0Yb>(&OUVD=TbY$Qv2#Pp*$a!tk`{)HZG* zcU5K!N^m-Uzzhu@roh}lu ziB&p4LHJa5AN=UUVrzCmC7sSj>8KVwAE!F%Xn zO}r$Mr!b00Rw6=-W!unw&Yf<7B!mX*yteg>2f50!1tj?+=F5-6kU1ktAt|9I-8Z)E z-Sc$W>AnVu+xV3daHT=x3*7KEz|^Jx)Cpw$pRLqhAJ$y1cEqe^Sy`$v)$?@{csvjX z8P<1GJDl$Ye4+(%cJlCvVyl|E&LpN`BQ!uBLgyp5wv1EPJ)i@qO-&OXZ?RK&dEq=Qe?7jk$-`(x}){Yw?Eea8hn zvVf+jVd>nSK6N~)`{;!|V_a-*3K3U?J~5e{=KR*jTj5uRyYhfkTLm3ess3XT3p@?$ zk=(E8sb!(VR56mdhq_2BJ-+_T7WxX0-uoJ@trfAOMvBDL(U5z92`qy`E3kMfT0@(u z=B2j1$4BZGL%TdE+*Vp@nDV2b0t}!O+@V^s@(8jdj0|FCR5J zNFsGGiLTA2g%PUVmit|b<3%+h+;;`r%8r(*X(w+h%q8A7>+Z5E|Ls?N@44=H{<>`_b30@UOJ9T#r&NV3EET=4d z4mtg#8eDb|#yA_e>%Xd2XS65VyH<`}uVr4VQ6$kMjs6c&>XhRoZaF3#+LVmyWK^ts)Ed4vv#@=vFLmj zzVD08&v002>5Z$*4KvRwqKPmI{Gbz!PM~|67-74MdJbM|ZNj+1FGp@?Yh~u=;O^tv zwC!|?IAg&Ctt_%f(sTKKL_^Q9)X8h92(+W(5sGdnX+6^5I;z$U{{Xn{vSJydpUyos z4LWr*9Q5a?V?1DU?Wh$zF-t9r32vV2c`Ic<63)TiAHwOk_S|UQa(v8tvE-a+wI2*q)4J_#+&Q~nf)Q85 zlgun#r-q2tH3Sh15IFqU)rvY%(O0FeD5WJVIm2=7_xk9BG@|H4^=D+qXoe>0X%CkS zYnNlkKa_pR(Q0V**JK)^a+$1`W~J$dLz;4X`k_9*Z4qY3d-qK-x0<7&fbGvnKhru` zDJYZ>Bb=NO>~+=U`tM+~-))a)yir40X_R5>qLI7>uy}sK}(d~ zrrvuZJ40}IIpZ)kd(D!b&%9w?n!6QhtaCG-{zKpi06+V_nj=S3M~O6ygD}y}BF+oU zbaH8H6+>|T$onp;r{XNNGuo;Z`hu@0pmV@IwGyL*sbn{1X6wkM$4nz|b9Y*$vu!06 zww8m;Y2KbCkIyHU=@{xieOa2z06GOB46dN0N~B7t`T=inPVla*Vjgah?vC zmH^c_Aefh7<-ofNT&Wms>C{xDWWP%OJy zUMq4I6;(juNw9E9Vfa@)fcd7x`_i5?Ld|USL*cTXO zroME_!~_1P>}9!b+a5fw=^FjaWE$7WA^{Wo}tnuY;S{&#KXA@utI6Pkv`ayW^P$S#sexyMoWzL zVc6=MRYpkBUE&Ue+@-DcV5PZEjcTXO3lq`+=Nadb#)rjr9am)U1d)C4zJ}pS?Ouqn zob(bfcpP@_aiyA$o25qLG&?ST-CH`VYh7FS9MVP!?x%u1$n?=#daI8A0Q+5$meq#I z$HMO)d{XebaI|$5EkIB45eaC|-ZRJa)aF;^+20iwT0t+a&3dk~@SpbX+tt-S554K+ zqjtjlZ90;t-_3~g`i&EYxsTk~pw&1#o2xYoq-}fS!|mB_{qtw5g0`AL)XzxjPCx62 z{{Xh8SRIh3#^#$5VwE>9gogT63_@tVR~3%jMXmbmt6H{|vZ3T^lD=3C zEb}owOjzu(s5yLg=Rq3kiJV%|mfxvTBjKh~%1fJZ@*YTC_h9WINhQXbia6@xM$Gin zyizdk4jbhpA53aoa8^fm7l${RBP;X97~OL0n>-o4LsPb6w8=5}+hs$=<~|jf9QC1p zuQ)oVaUCPuQ`$6W;0p9o2L|$5i`LWAN>-9F46=`%*Oe{$YIQU*v|MOPlK0r?vd#N( zqo%2nXxN&`a%5caK=u3S+8TWCHuZ1wReWwp+C{y7eo2qP3d#2cHP+l@9{>(v)ajumbyA{%Vavv?P8ONgIN` z;A&ko&3ge0LBs2V;<4NX)Vo3l6!8T89$LVkprj>6eE`(aNveozl-~wa z_sI0qqM0=6yRS)z@W<1*)9huGNhU<-E|9>Et~!JCt~kasp69XlBU0laZlS%`MJ-o4 zX)4kw2k_XO4EH0jI*`XEuc~jQyr>{?rLLni*QH!@jdgnHl|Ak@7zg_6%eF+RtBpei z_3x9O-=>rb;Ypq(cptKSN>N!^3AS!%h-zEa80eWDe+ghQ)sKGq8C!)#JG1()8$G-K z0KX!cmYuH`*!V2^P3z+S0D_$q9wl3(-a8!+mruE97d3F8{67%Byni=8T_Dv>PCxsB zar)c)j!7+Zm@Mr_&1lPLWW5L1n)k_ShVE~?sFX9>r3$ETp0Il3FP4M$uM6_3tAD40{dQwuS zuvXV?=c_)JnA@@K#V?2}VsM#(v z6smkbASAl(JjSbD@Jb5HRpsXM8>pEG&m`qXf4{DW;qUD0n)}+ox8kqd8BFNf@O;-* z+38`r&_z-Y4xs&yVl}C?*B4h%uPwMz{LJbQda(maN+@m1blELqrb)z-`XU_j?XOzv z!7E&RM7mVSV6;+{R>%@R16}OyxR&m6-D-fJcXN(>ptd^~hMIP6(zE|R#6IL>x zP*2F5duLIlscd^AG=wuRFxGn8C;*IRzUqUGJ4`wo{I)# zdX;@IR8%$bL2XWq6%15;ef1FC&D9bzHLkN)|JLRjIT|{b=wb+V?e{vWiiNBiVBuo4 zeY3x6?bPO$b@SrKX5@eU)LMwz{du7^G@YK?C0)tBt~cA@qm9fo!M8mU9txyBiZ7#G~63j z`55ZxYH1hdk|tW3cF*;|(tuHjvIBeYgJSMf>Y`YdPe-AX%0H}U{j|gBnC-@?x5n3K zMvE)m-?HVxtUvBcw^I!C#a4w*evH5Ep*0vQU#m@&88C`>?$w81`~&gV!^^YZHpMf@ zrygjG{6tTJGu0k*fbaS7ABxnssE9%ujXzAC8G2D$*>mZe-#oIXC{{TD@ zEIPCRZ@N&bwk3Y+w8>cmd`&HCv`PjJUyOZ0CpsyEi%8b;C0S^z%TD`+()(uH<z@O=y>rSSn%gK65tjVqbkbJL&z~r7Z`GhY=QGF3Lrt75mq#baU!J8wX4!|k= z#OtA;4HJdunyXQ3oTr`Ty25x4RP^WX+g|K>q&h`es45a1f;t%eJw0{K%Gxe=fqtf^ zse#0(-7L8w`~LuKbPFzaffA>?Tp5-rCGz{8r2rFwoM%eRQcRatDfblXA|ExS2l1i# zzF+h@<0T~7cJ|#cQf@kEuxCl)9=&m#eeK7<|!*KWOJt8jjlTWzMDVuL@1B?yW$o-u$q z(m()dvf)H678xf)@iMfIefxcf(_OOdm9tY7tK?NZ3VM2R#!kGsa2JeAIWp8Im>-o~ z;XwLp%cxz!DHV@ObRI?kNZc))ploPh3~DSQC1C28kp-;7HHSIbc~l#>&Ja(t;1%f zcCFK=KX>kjVzgbgZ{eHSTgYe}*leBug&{4LQJfl)pskiUj%9_^|6wpCUP`OziGD_z?z-~r$ zqEp7^FbA8ErOB5!a`y4vQNG-6>Ka>>cSIkVnYvVdry6_)_*IZMOuaj`+9+cs+&g^dK$_a_{G zT|sUjWGL%!Rzei1Sd{S+#74e|qfzCMxY#N5?GcSo>YKAvxe9tB>;`!{NMdF4hj}4Y zS7>PDUzi3ix&FF-IBrx4sz4eq|JUW$&&0SKH<*9VS<@atTUlt!bj+%hmh#7$c*y#l zObsNerFBKkl4-Wro0+S@KQYg?i_*LSWnP#U8>{AuDjMi+(nr)|`MQ1nhv}r$MVM%$ zLn6E4H|+s_J7spwj@2w5Cqq>d0s-n&4s^{v8r$8)NPLfI*<+Ty)M}k!tYRnb#retg z@2N7<5wc~kw&~iA1wtFNAeIK(xePY>8Q2ho;cFr3KmP#H1b=-t`e6MC1SU*x=!MDP z{>Hhh&0zAQFVCGzAmI1l1E95BHAg+e;~J(N6G^!VKXd-dbeFF>Xl9CLopB;mM6cEQ z_aCO94ikgwr93QQN#2UbTO`ev&DnbFud z5}S4%0oYinuRa%UiUji~wbwmFAPB-IncLJbBets_`g*!I1ITn<6hhW(h$uuQEyJQ~ z4bqmm8zN?rXDTP|VHl!rx91%rjWQ#Rf4itBEk8)ond)|s3{B_NlK zHwwj%B}ZZor{TEV`GhqsC9cxsZRVE)WVWPc2a@SYB)3mvrTyJg9F&kizCxe{B}Py> zfE}>>$QB*KVspB!P;T<60 zdh6QTRl)*Yz9p6_hJqRp%&YUrjpgBwU_ChX*Mo1mM3x+q@U_oX6qCmpXyN8iKN5r4 zvF-KKc?xF4i>MNfl!BS#)Ou^7i5Ddmp}5>AumgFpkHr+9FhAFkr2w34jvJ$N^b|KQ z`Rg>TLvT;TtH1}@)3N)FD`emS#^XZ1wcByp*e$}4R7crnh!79-$o|^!0HtPgcM5O# zmI{&3=14!7I+OjzlVq^#qV}qaYROhO7|KU1LYyz$>&u}u(aMzgQTVaz*blzC3hJ+Q zYB>VV%%Vgjmg*SK)OzcQHba{CYeW&rRTxP4C#$x5@vkm|mhU@~$f(Y>NO}%f07-0n zeYM96rrrt#QFQ(4xTFu!-4myheb2U=3_Q{dM1?`1-E}JPQ&7e;kgY3@pndyx)7pfd z#M^WsyfDAlPA9FNnuKlLA^X-3@2aj?AdD;V7$wx5Z&_iAmGw(0E< z9u}^#%|zHek3!)FnRP^L=BC4i%O@)=vvSTGq0Nf5 zqeNnxhaBUoS^ofq_N9%K+~yL@=aK5)a(U3VVo#F!RhAqc7%W|Dqp(%jsUQN|8X{xy zfHVDcJkKkRsKX+Oqf06^o0%7>V?9sl?XGqO#^rg{O=#0}5~ATOol?r!8kE)nutVgS zyHbPHTtk*1{Dad{1Y~)rj;PF*?^mdyA(l>=M`az3rb7unNKIWsM#ogVwUw7j*qO-@ zd5iM<@-;cE0SJ<3NWcHk=Q*fpMNqNbWSmQ?Cec?6&L z(K~3V)qb)tmP=ppSI8YGpD4?5&)-SRR1m4w+HK6Fm=u$bQ}p`iga+eOlcCX6t*}|@ zDCdr9RCGXkLC+tqbn}8M4z1N@7mcg8-LTY2!8jnWKhzxQF}&)dJ)tA{OK-TeG-cz6 zc3!q4zto*fEe;x}avN;F8j0Ggt)ybW_sP>nCfj7oo^G0aq^!4usp@qDv1b1OL!_~R zCC?}&9Me-($w>r`w8gMv>Lh=1bm3@74mU+8Z5HY38lqT3PKV`uwnz8S+RYoHD?)qA z=I*Mhw>2|SO(ZAf{4Uu3nZ}~wtq#4>O1YlfSgljTs`}c95_xBTIaCnp#SU@*08TWn z)y#Kv+f+tA_}5jjSvOwebQF@;%_TlD(IE~o{{Xlh7^kRvfVoV|O&#_L`U={*YcZ;( znc=7iPh4zMxBa-$m>gW)RZkG6W_^_%r{b@OQP+GY@5+{^UKJ$hld=B*tx43JqR2ea zfwJGW-sQemQ%5CTQ%LMG$E8MpKn9}_qNjUouQ~%ZAD>VU`e`f5-CdT^TBT~J;FU=1 z(W(CcO(-vA2Xvpfd^OltKbE@3M=Im7j~)Kl*9$|Ap>wim#L|F z*UPb-gH-1{p54#suH7I2QGK;~x(mcgDjTLmb#cZDl_v*}rnpx_Ku}F{uS$s(W?-u1 z0mr%eYpN@Ts%Y+Y{C^n#0B`o!3iDN%?-x2}N#Lktm|zAN>`!jmS0wv4O;3Be`G5G9 zan@*71 z+8C*nEjozT*?7|qk;ihUvNp765T-!GEJ--eEPvloNYzMV%1_*u${LH5K6HI~B=XJv z`YA*#(t~0e$S$Uej+tU86AA_Z$^QU-B1PDaim{=kEKf&2bN>2vFq)Od=zZRr5g1Si z1pfdr{{VeTjiC>n|01s>J05u)U07pwfD=Kj@ z3K2gcKW8^*YcC55KW8TwPa!{1s{djx^soP)*X&dj|24$RQItyZKT;|5RW&H2T|KNR zc-i<^EjhUbDEI~0IC%vHxOiA7xHvfZ*f|8*IeAz)IE6R_g*Z4V{u@;PqhrvcJ=lWrJ`d0CxQLHMf|7xKembeA07U;{a+9KuLu6u1OMxR|MkHC zdf@*@9{7KvBWss`A(8LD*ysHWz@lO2>gDQb=jukm&Bg%`kWy5IqXqm2ALmKqRuTY> za3>+i8Gjz7zP_&k!U3=!{)2yaSUA{!7d#y7zZ(Mle}I69@LxbgL_$VJMnXhIMMFbH zMMpzJL&x|Zz`(-7BETb{A|j%GL`OmY_~}2CPgws&$NIk;jQ?)_=bQge=Y0bJ2jF@? z2VneHEC#Up^-our_g?@kBp6hfL|6b800s-@0~XBt0N@|#11!vc@Ndk20Ra&X9trjX z3;-Dh00aO3A^-sJF#qg903afL1bl#j{Qw6C3lER@0S*=!=05~@EC2!`HYMjLDoITo zE(;_n_istK)LNel@o2cEJsNsLXYgskMcO-;$OLpeGM@21NEbEA^v!y{uL96u z{~3q%0Sh1wIPhyh$!_A5)ixnxwo0;6yh#9fz^fy7{l>2(v!r@GgDmbB11P_FrWM_% zWt3pg&1p}eaSh4Xrs-+aOdzHj9}$R*ZD6#aW9QCEjT`7RaB-7=Q;(8Lf|;O=P)xd1 zlde;`!R zRSO|D)|fK;82O3n9RL#Iu|viG+Ak_OEF+|R$K3ct`7-GmgV;YL%j3d0(7 zBSlPZ60(dbpYy2tCB&AOh!sp(4AfW~1N$N_DrG(HJnJcrYuLm9ayK!TBV!s@jl}v} z6DGEXhDfAJ+G_{bqa{G56>4kWU+AtC$jy@2rZvke>rHn%>sK68ms*LCcEW@;}a zg%RERi@XkLZlUn*wYmo5(^^mArYrn(>^|CPerC2$l`Lumb(MES=TF6nZBpkE(rqpa zRuwTNmkCkW9q_>nM+ayMh!k&IJ4?Rtuad%@ZZAEuzYpB(YrQBYB6f2k+@~hTaP9=I zuk(#hx^FyP#O(X13>r+>m$H&1X>cB|NGYrZ(4*uC2?R%Bx8{_$>OF95@RQC{Hxqn- zqO4lVDl)r199$I|BXR)=o);&j_tEcwkIL&km#HWlZ6&;^v+MSxg7N&+1esydIe8kw zfWW$=ve=BCkH+T7m#JLJO{Mfc2484FH7NbN_<~|u#S0B;u>@H2L9mbUUV2Apac*xYYiam5xVLp5$cC zgT+Hs#hk2Fa2)NuqByc<-QAtX4GXHKs;+}cp_jZ?n_8a5G~=I=*A98z0r{WUjbMqO zSxDr4Rp`pcwo#f-sd8Aq-A*X9O7)NCwk{mA4M@AU+vmY%8;l$GCVTPhACGBw#E#k| z*=|}g_t$tSQXQZKQ=H}ITZaQe-=IB_wf(|o1^f)ECd`?;RK5J=SLTVu`y2wj^HA^` zuC#6Y)LyM|iGpqsUaaI4aiy*<6p0#+)Xlh&?6E%BqV>(Wqt*a>+8@GtjGrN*RVOm-|LYszkGJ;P&a2X1 zg-uUKfwX(5E;2KtgyrRvNeaf#&-!=TQ1z3tmoLJ$YCNCJw@T4H88t6|2);5SI`wTD!bcLWIEtkCrZpF281Y%QCh5hBryyUPp z(fU6}EU0dfL~W{P^P~Go*TXs7#+Z1ZZZjrB1?1kHFqhoA|=wvNC*lKPxaJZT3SY4VNvKP$i(zb{y0;oAWj8B_FKbP~Osi zSbf4ag{~tPyTI}l?VGH;UtM-wGMq)FSe?Vv-_UeyR|ue(7Lgg^w<&Q&C0#enfi?kMSxv_ZvuNAgM;X&*+C#Eb90T1X_73aemfWh{_Fd~USgTI zv(3Ng1WUd%XO`9ST=gQM0y*O=1{_A&8W`9 z$(b=ITp9}U*)(}h9`QW%Wf81y5Uw$_JB|;Bc$aw8qj-WUNo*qjW+U|+Z_kt3^;%*| z7gn>`ahsyhObXBgXJGgOO2&T7FDyna!00d^(#f(TX*}=&eBd%U_h1-Dmd@gz+b)6U z!gE(iUG?viT2>?T95V!j;%4p`L82FDcwhj+FGa0 z=4QCF)e|e%72i|UTiLivaTXU3Pk(HMlxZ(IcYNE;GAyB`Xbe{;V@Tki177t~&pD z8UAm_4>Fu5K6u^qPqFO&{ZGg73~kI^=SVc^uFVwUOjFuKSdSr!3u*TrmOo>&JLT2* z+8^2Z#gH!otvGS)$*g!p(mA>#DD zqobl0osC70Sk=_&@gz?s#yUBzaL&+1FlQALI0;u?-Llp=-Pmm{6}QvsyebIC+ZR>M z3@pP!hVTx+m3$!Qc)gRx4il02RnNP*kzCwlaKaxkspFyV{JVG|G0yg8QN8CH z)qNv*EG7H!j^Kl6kA1JGU~11rsk7?OW6cc3{W>mpYPWCS%zuE|;D&-P$^*?36(~fN zuDeuvAWwgEBc@Cn^75BddHJ_#&%4HUfP<(53d*Z2JKf@5YT~ttDgkiqCiBHTKMwLv zhE(T_w1ZowB^#WW65Q>mDIpN6Q*t}_DJoR7|)P;NzSYXsr4G)=)cNx zE|UwiJX`fF#tn+t5LFs;roIr1&v6)Guxl-GIy(D;a^=?sP$iZ<;g;8Fhz5yYa*O^Q zZ9?#p&K8GFop-k;-+)Q6RHibHWs!Nj)P!NyJK&K2Fb7Jg)~?iEtfRqQ)O4rfcbTa1 zbh5e8t2;ko*(;rJKSKwt6m6Bkd&$Vu&1#(@-*D|J-%x*b;2JcUY*Y*?5>WmEnge#X zS)((ZqgXp+$9K(@RGNK=>l_gBm?*G)dhwmkf~riinG^Q#*rE&swj%A*v%dp?Nhf|i zU5$+hg`YRvFWvX*rcaq^r90qToM0=p=RkpFnV8Y`iJ|_n8kM4fVYdsmN`FJXe0oV* z@KqCVL9TC@m&US~fk$(|Jc!q0qg9}S@it|3dFpDK)7nP+aGSIrEWv9si`AG}Z_JF! zkJT!=T38h6;A7~GtuxkijKg09C~qIidV+6RVE47MG%x$^W>7-X^D}$EpbrcHb9rzH zfvm)`YNQ1tEhyH>pEPv`Xe{gxw2h$5$LF{A(E0?JGy_KHcvUrbW9;Xdp)rFgS^ekj zoFmix41o`P!YqO=W*WsNXZ16B+6$73H0~1(jjtlHu{DI3t2{~dkQKP`2@cG3HBWz4 z%du>ACs0`F@@WYT6%HoO)#G+O~M-Qm+V~hsOCsjox5{o0K z=+EJPh`vN&uMCQT^<^lVlh&zJR%W9pj^#1Rv^>PQ{l44rqXG)-7zTxtbJA<*&OdOb zSK8aZEFsY7;rsH+?R4oZ2!A#lC6YpVvLvVan?ZDQ3f@&a^(KaujT}+iYNhU)V{QJ0 zjbRh2;$!)3>7=qKoyn^K78-R_+~&O68c9g^ZO>K6(>fSyuHkke=h;MxsE$=cu5IRH zD!X{pG&aHZ-buU&cH*}gLc_Ksv^L`rHO`riJ*DhaEUgQq5)Gupa>SVI|?$Eq$)@vL8|p{;ZG-X>UN6<)Dic3 zi)`ess&^jjKU&V5`{;l1#+9M)zFK_+4%H3HQ%{BCN;y0hlJUcBt(jS&=ISdxMzm3u z#$lx34RR|Xe%0pQLEPuj5}|Opxt2IOgIVQ!oeOkyQx1ROsBWpk)?L>l->Ow{I2gHu zc@4WJqQ<4se5oPFA#;+l4>}?b6)}v#h2#9pfL}C7fKm{I>&E*T3O+?`zsU7Cu#ht- zHU8^=x5Q@ZoAzrZN4kE}d@~K=mOx4DRvqWn6uVi{j{=#e8uYFto6(N*_>K08d(c|3!`hv@D+;5&%r_0|+>H*V zigRy=tkgMSW?vmBlo*yl0=eC!v=#{qL%a>0AN< zEWELO1ePEWpQqCgo4qaX6y9dO(^6q=;ID~Ne>E-HCnG3EB*AwQ{j)xSr6?Z3a_Kug zW9Anb6M>)s6x9RAGKADr^KQeG)+i&Th)?8U6 zA)=06rzk#3cF+i=ZK!c@X-BXso6nspi|EI4B^UZ)=fxY>rXs zzuEMtEiN*k_%u}_wo&1`$J41b?NP>Ef2(#vZI@$<_&jA)G8&%OuxEd8$GXKbMIxg3 z1~CT2NrqrpShxXd&;j<|_3o~&t$5g{d9ER5B$)C7bRZ-=MvH6CNgIKH=y}?4(nZIO zQy-6FMqwY-U+p$Y*8)~;VKY`FX{pJ0QJfL>!FiHbWL8reLGp9Ur)z=qZ(1M^>YU~3 z-?S^!lAb&atDpdfRT)UBxuwNSRQdGj>P~KBlW632HO+K8h}CDu*a(WQ!>aHO*sVB> zev@}E^#hJT>*ZJF!ycT=2cFw~;$a-ouh56`c#iAG{>aKmSeYZyE(>6;4@weae(eE<~l(hWx- zSPF?kb@{BJpUCpg;$1n2axV9UTh&8{Kf76_^J4(h$Bu24bWk<0%_t*`TVy4!Wg6N1 zb6QYaCw{gQiLBu;PEyK6-ro@vlzn{yBb8Tt`XW3u zQ_U^S-4U*xOs{1qC56QVlc42U+i{9Z>}OWke1^9!>x!bnot}Wo4Yu)8TlCi4kf7n;Z#=2$rgIwJ z0YNec)Xj2WBj-PcEddHp+T%?aDqX!mF@%TdL{ zoLq@)_o&_=_E~G^d$ZZ>7@%uel(|wSM%(5%mS0fUENd_P71p3;xju}@FU6;i>1JrV z`cPH7(N1yYoII-jn@}=I=gF9T!lT4-@(RTgZZH=gGOZIEZA5W&bKtQZ32i+4%P_B} zXS7j=j3Vn=&AcDVmcrQ(=w$$MI8fI`<8`_Nz6XpG-z6FZ?%7p=? z-e3Y~-ta(%%RBD?&R?wl_mW$@X)lArp@B(;xR6h}E9NO5=kG4#7PJ9@$i*bTg0bJc zjNo$r&>`~^f2|T;CDQFKDiQ^~0}9{p;%n1l=OfE}2h7m|bM66-QjL&2lk=YxhITRE z8*Bu`6K7XEa5fiFST9t*(BY&DT;Ha`Ss_wS)FpIm_S9DF3IsY7kDLt+7s}Lksor|n zxD>qfLsXY)wpFk72GLheKMj#LQCcjsRn8sv1~b`b7GqP$^$OfSld3G5 z@N~Nd5P7VB`aw%TXwt1bg6LGOr0_S&=#NZ$iU%I%$GEj6rW+v-(VF&_sk%vaR(C{{ z;R;d7SMSRjo%6u)92doQ(|HLZ_&^eO$lZc+g(CCe$D9DibmO|Ak3w~m=RDtQi&gRY zJUHF~7nPR&_HBHOI&Z~Z;5Co8eCl9t$dlwB@;S4ADWSrP=@Xe<8UN3kj!~a{bc}>< zmp!k(f(p(hiOqBTyQOJ*>!UiCbY=3U(n{Kr#wBJykA4Fdf3-p7(vWJe6Ki%_C*XU}R} zoEsoKR{=B0cLs)8&f`9uUqhS|?|{jT7vi$>p7%Mc(I(cSfI@kd-uB}?u8%<4a(iSi z(H_qUB#VVGtdm?lRzR^}lLo$vKIC-UEaH-Fp<$9bX-vfX;DZD)JpL%?X^z~S zEj2vZ>c?J?6SIkWOHB#!zYOf`^7={9HB0YgjuxcG8&;j&mDujguru-tJHUNhT>9X~ zV-M;t`Npe*jz!G;g4|zKak7gyRfc1!8tA8FQe+|R{iuXAHxSNgoKvQ5=9#NBAv=avp68H;c0)@fWFW$$8pvHfglq4<@{9U00Ryf zDo~mYZVE$0;rZ6B9V&Xq-J+4edv@MRB-Z>ve~ID))P1Q{i`Q6iy*v$s@7Ky*_j`P< z5Y8NG0a1Y%p8MSDP|xR5QqZmVs!o3s+(+U36T|}+;V>EMb+f1I4f^h<(Lk|pZd*48 z%r=9;$3%V`?_k6_5AZehn^{qBsczWW-LsmV#mNd9rgW>9r58N;7B9$axLRlL4py=z zIpp|a05eu8?v*qr{%^J)3brRGE7?6*ElTACl$E8)$1&O@mZ998E@P|?`Xm*oiLZ7e zHvXo|2wPyLcPu4o+-i9UdjX!TvZEAd*D83K%WI7NBGv9|K-3mUWJ95ho^B~XNN#lc z6Wk;UI%sy9F>@}u`5Y9QAn+dsk=+-_t zr7p4O^vjbwvU#SD{}Hu_UekI~9Y_^PY_m~rs!(&8z|CLX*fVh+WYFmC9EXNySC6F9 zC?s#=->yiy(zmdjec(6lu|B^@q%5kVCs33{HJC?tN-WM5LQAN*ez#y?NAwi_YdKtr zMI{=I(A8^Y6F{tZyGcs0x0y*HvwDm`fcHqQo)DM$0e^^sohZPCWQN>}O-ag#Sz+%8#b(8Plu~2x87P__hs4voYgWT%`+71ooq4sDVZ#_?5vm(=9%R;=h z%RUfKx2%hM2UL(|f5nadDI6TRm&d(Oa`rDjnF+W@jz;OQ=}9W?mcQsYx-uZRTcqIq z)OZZ`w0yg5Q79c)5mn2!CNyKFCTS;1{pP7umRBLm!%g|N?@>vfw3yzQ>QXjfk<=3x z~B+=Y3lY%lyojDnsQUw=wDh|3^=Zyb8?`PmxnMDvUE2FAO z^-HNyOgh@y2cvwf1fvAAbLnTHyKEK;Q7M?&d!x2dVMy4!$S8bdLh;Z>Cqkbj!gM{~ z@A=r2o=-ttyNFs6&t4up)#{V>o`CYfkMon|?0)F@Ovv<( zM9T3Y2M(&=?#*};B|UfJjkFnIB0@J$cS)XgbYLQ$AzwSDXUt)KGOA8VG&XOPY}8{u zC*Qaj@E!gx!aK{iFKyEN7It~{jrz@0JKgdz*N!@(;X4li&&Ga>v2$`MJNNhYfTC2P z!$}T@?Qj1m4fj8R_KoudlV{#DoVDwajY(ByKk?Q=ZS+NrqDG88CeB3lGGV)LZbTm9 z6|6EJGfX5*j}3_P{Eg;X;*>X-?y^|$z!(&f;1tA*ZeknW+>uR%B{%D$8Zjd``Qv*; zR_xseX2M;q@f=+DgCzA9qy+)$dU&L&pgc)vd_fUQ9+pjn)D98fu_P@0wP>?>guJzw zC4e9wo=b>hD#J%$PO;?#pjkx}u{v8 z&;no*Zvyw`%G(z7nc&VR_=xmDI*lCl`qzcJPIlJ8F=cJ4*m)5o$N;hah6NINIA_iF zz^HT-1&Fc$3gcQUk(N7+H`Z4N_d7(P8s(M4{#wTfYRE->%5RqM#B}qyZsles+9cJ{r71^-R$Y-y{g?W-N$$x7H`9+%+ zsTwm{tzA?{MxJ$G8)x;#Tv7p0RrJ#9Xo%^8&2`voBT!879Z=wK#%{B`VdXs~5vA)> zcs@(FHgR#SMq1Z$uRD~`yQ0fvS2Fe&@e`=n*VR9+{hj%3)x01OZ$6wx#+s zimK$%O5boo6@|cK@IkmVSTpi0PNXFQzi!Ej71}MfT4^U-;t$mOAIopnu(JwgJT3DK zi^qwt-_C&qWGi!IL_2BEMLd9(i#?rNP~6OFjqbwz2{=J4YG7UifEm2>0AJ@U;mk?ICp=mrL~ zLh6O^y=gubC^m^jyLvhl9rvg*BflxMcpPUA2_e&x@IEg9<*nQ=f{uN(XY@eyPOFa1 ztjT)@r%VTzmPyoNA9~F4v?E~4zpf$#O3OLGa|G>+0KD#msi=`E&L`TPrlT2J53+Yn z!J!ALyh@c^{Wy@LxXWGG6o1f$%lXpeox%*NeiOS8>K zFRJ;W_=aBu@ZH%eY_=>nxS#%Uk33qaN;_(pvb*{ma)-yxLd__c{kkIkLTcvAH`QYD zDEQN!rsbk0o6)-{*DAzr z0^R|^Jo$CSHO;_g+@VkCN_T*Ji}UgZq9^hu(yXdJ8%~|Z;jjl|p{75#N?VrkjUL zxIc0pq$V2R_(z|b!m-_yTaP2KnhzPdt%*l5eQq6d$b?E*>ZbNfSMOR3mk;BG+{~ zURA=RF|kQnp&;FlwSDOg!!#=Kze4Wu-5=r<&P!2T$Y3swyl=Xf?55{*e+Ks$rEec; z1xZVfaX*GZJT0abi?eV?IEA9)S8uKsY}I(*Qd)J#n&w@;lFU!G^Gz~kI-LFPc}it* zT*#I3%Ej^hg$ZgCn$q1C{GtgJ@@RStw#%kOOVPjE{yQq&EBc0cpIY-tNfx~i`Ln={ zjS6zdO)TmrQBupuy~Y!D3^x zY|RM)S;Z!n&=Btcn8s1J?NKQR=u;FFRU*~#tOhl-GF1f_JFu*a(lyG0T3&Ri;X=ea zv_Lj)1D?2GIo9OrOu+{f9O)6EVTWUV%|qxCnO3WxyQC z0!eE2YAx?uvB!|VU`K{I=>lS1RlupGyxgkK$%Th5?8gB!owJ~s`nTs|2ho1!`O%Mk z(fd|^gsxwpGePmGfCXPw1DgIemLPmJIGi+N7hY#of;KqTZ4%|V!-NaW@tHI$o98#Dgh$7DzhOkrT3`m7rT;V3IrR$6R3P`y7E)4se{9DC1Q*= z16-V+W#ycyl11ni zZ)5eV3^%1xv}QC~xVN13X&4lt{oE0L-KiuJU%_d{BhCBOu&zmK(0;WAiSoysKV=!> zPJx7YsDK`&d6aN^n9MC*%%$nuX-q6k5@M2eg?91 zNLT0C#V>S6jV?sN(Txit26|D^Y2b8HLw(A(gIYfSWP1SaDV-7K%B7WQMSaLh=YUx1*=MHTjbbpiM zX9i{mENE;wml2s9*&p$(rkE=aQoQ{kBC4N4D3Isz6oRA#rndiRq?*K zDF7KxsVS;1Vvp6y%30Tr|rK~gC>7i zQ&nSma4a)%eVN^MXIDak;)N{S0dE(L2Bux>0bZ(Z11}qwTi2NM3D%=Xt~7UT86)gU zEGx1KFA@QK)9A&6nYm)f|IGMe>o@Hp>^h`rL4z?ee-I{caGIAF?mh44!;Wt3zgE^s zQ`KMc?MbPvtYdf=34%!Jn$i*-#oI4c*}=83(8bj(TwULqPH`*#=DozQ2>0T2=|YBm z(J4-JFG7{>uvN8C+mr}WIB`*a8M1~gDwPUd{zHQfdWMOeLB)qD{I`k>KR~jRwASj% zQ8QlhV&f32J*6b2H#bz`(KvqO1r;ji7#(V86X_n*mWNw@)lJ8VQ$}w60EOi3k<1~2 ziU-OP()Gf+f}0!zg; z6k6G6ARofFBMnO)TAV^ab}bca7?nZ8D1~CjVXiYpU#A-9SXnq3xjqhfj;09`khL%J z`96U0Sxva5sbL{-S)L!kIhOs@iF86w09bZ|=0 zecT~`Tn;8Wvpey0v3|oZc=^o2{p|*7(+lY$G8kdr#b?oXOB}XNIozE=Ue>lBe{Q#a zA=|Bq%~L79o`?IR=)?^3Y-{l9H??zK*NSpR=^Q`bfp^(QaByfYvOIF&su6UT<3i0V z5+b-HD#Yv(UrS7-9AxzyPOF|t5)Nz2hzVs_g-wZ=#a~aUrqik;^o}znyTBEBEP>r} zOvr1Y{Unpyqs#c~Xk60diX?c;x3!b_%ZUyLvhD{#4&e`hq>34)>m}Vw`DZ|HnxxWM z`Vw;_DxIOPkPQ$o8pzM>WX$curo&;jo2*;;QMotTG60m(d$B~6t%v@J)mlU#Ib~qI zUo^&i6P`S=pkQ*==o${=V#Z>r$nSSqSbL=)z4cSKZ7Z0 zz}%#m;4MA>#*36f8W}4!H)?vkcwiW!amXNcrxTVg_FAky7WBdXMwcgruY*xqVW_3; zZSU~(wO9)wB-`6NEBtcMvJ}nZs23z9qKCq@-th2?RPlDUMB=62TcMV9v2P`FKy&}8 z#72Pd9nexj!C}MXXTi=yxwb=r%y<<1bNGVX#0Hvof<87o*CfXkVPIqt7y2P2V6VIu zVjN*5h;Ga`b4B>y@?Vjai*zt8Ly8lGs=TssvDAc^N4wacP!Un|H`23% zei>(WI9O(d_;Z5uTF-qcdzgmQx>WL9K_bRJrt~>)X$i#XXBDSGREMbCh}b)z)3z1p zxqn?rxUl;R;tN;2e8%JJyy3Fz5V8Pv#%-Z~207IFQ2Zt3HDZGhXB()+lG$?!2ipIl zQK}U@KW=%eU&+khbzzcXBEglAu=yMSb5amgG-xER=E8P_%D?3J1n2spfO`yc!`=XN z#=3eVm9ETLQI?hE@6TN6AIhS*kdm|>5OB8?Jq#A)`ng1HW?Hq_8M5;=o0^U248r>0 z3V!N%RnBGcY^LR4laC4??@ZLIA`26WZR_ACJJyHsd=7v&w8gXIp(QkKGjsUi{N&Jb zC#$73U0)d>c*s=*|BDsjt5kR2e%%*4YEG7G8wz`8=h}Awwe=?}cgorW_L7bj`#QRD z!H>X+$a>wukNQV?<~4f+z5TGK4^4ibs8w38|NhJAw8xhB#(-T9gr%+b{$z6YKI|P3f@62;lImJ-w0vED zQAE8@!YtPe<%OCmli->C+i_v^TQ!PoHNT2nV%ysEse}XCh;M4CVCqzqdk76u+%Vps ztUDA|TbiUklNT|pv(EC1$Zfx2)pVXwO5=Q1X4}!xo~Ms)dqbwyB^FV8>D3eX((jW> zc6Q&luG=Ki>VPOA=8wlGKBsW9<8qEX(O>Ed&+Kcqw&btWI5%yqTN)xt87_^oxAFYx z$)O}8&T?bEYI=K0s8gaz9N^UXyVZXBB98`0_~5b^4V=}0-;WKAcpiXsD<%zRW`Y9t z^r+m&GtM=ht`AvVdU*~iVwDsA5OI8E-p=BnE0MZ$RKB+hM=4qNX| zNnFZnk0GuHrkL5}m{OLM#O7tT)1*n0im+4O z2&a;!>f8~L8fb3i)Z&Y^G%u{$sYu`@cfaYGgej6u)K-*KmL=XOG;=OAK{R)hzEpox zMmSj_JS$w*aKCrU$v9UARdcKfk7+cnMt)Y(Uvur?!nMt3z5R+yM8 z2ak8q!`i|diRvVeZyPLBPLuQ04nNbm7vW3=g34vJY}Dgl5>(D?c~_wWTh56R9&2KZZ8Ru8@pPT zW|gt$RF%g{IIp7gFuocGc$|t2&n{t0G>8jV`FINI@ifJjqI{yHrm-Yg1chOq3wBhp ztfYqH@M?|FCA~6e=xQ2NVD;h-ol#{sTT?_nI7r+ZMx0OH5^ z!hd2VMgN_b_pjPEgVH`ytmOJz1ykVc7dXsGMLgAY^l20 z&m`UDdSX+LQZHH=3M#vgq+~lVk3gy(OUcDtE@V zixU$oTH#}`VKqO()fr_lgSQ=!yr_L zyt{+i7l3qBt#vG^vF#Wg9|QbinA<56M~aFIOALb*^Ycx^EMxu(a8+cQKlzc8KNbD) z4-)$wgbafN6HW70(^Zdn8?z=B+(y?*YutIQVf`enS#3gKS=`&s2r`q0=aQ-WntqN+ zj%d5HQ;*;2t!dbb+=pMNYA+R3sOUwb@=lc?L&eYK`nw>c7%lk;Nz?V=+OB}w!bZWB zpsT~yOG!$8ViTP|hK{Le2VMaJG<+{5o2)=ACu)unY(O`#;l{G?ZvJL;ONKaOqiEH! zTzbD|VTSXbUV4GUp|oAcu%yKZMbd~19!nTcN;qRaFVnT|sNgWOL9`%Wln=?Zp~)|% z4H@0Nd!iFmMqJ9Jsi$2|Gk-M7Vpp;~f+2RVe)-~PuQt)b){c1d)&V&W>uN`o=vsSh z?=SC~Wd)k3T>iZ#k1J2eN>#C?A2j!n3u-P(|DhjOgJ~&&w`ME+Rwc~Gu1+38_7yp- zsjbSoV_Z~ht}PWJVBFaBHzOBAD`Lqr)dicf2(%`b;{ymnI$S|K>Upf;vDvSUX^ z;PU-|m#TZV;Yin#mIvgY>*glU56O295Vtz4NQKyBogWp&-y#tu*WqWm zq!L3S?hnVydfZW6oI!e=8!oqAjiCr=u3R?>{VAk`1@3{Xo2AHgKd3!B;NRpnj9Mm} zs>%W)EO17ud0CK@v)LF=lWPKP7P`E9p|2eIKN=$$rKl_}wT6 z`-cj=AzAUKcOnmCk_g-YXiJg|TSA~F|qdpFPkUyG!H6C zWQ~cEkrM_DgR8LT6Bt&Q$;HE^8|571C^sx1ZR9(k`50>FGFVmR_{yJ^MMw=M=p(b6 z(BjlR9)|mrKd#OZiOAV^P9N_)aswk_gGu>o8KcJppR{{`+4^Ui>NwBz+G&@hqPBwo z(?lGsa4KS|fAl_eyVzZ~ z+TJu@;HjB%G%+dbvSiKKMZVAlLaGBvu|os)%vS*kgM9e5h|9C`Pw&5?asjP4*xsVN&7x+ zwMqWMU0-*n2}3F+t85>WIo=v0aCKyCTgS{XT>op)lQ1}(ht&srysIrdHPpP4C8wWt znl6A57Lh#jwBVd*tw7GzTd(U>gjiL^I%85B6&^T*rF4D&dYj~uw^Ow61#tr>yDIcW z?hF=zYK@d-n>@`y%REW_Fl$4~lY^Z0sM%?pIVwva7I=73&IAP;3OYOhRlLUPH0(8J z^snpWdrzNEDc6VynJg?V?bzT}pWW&-Mu=4Zl|VynbODtB5^Q1D86y#s>29d_%Ng>Yh~F#dvlpxzUG(6rDW@dLcL19#T&Q>k8pG@Ff+^~I zJQT}M`n=4|eavbTWsd0|eMxaE0f!8~8-IU|?O}MssFs^31|s`d+Jt9riaY(ra~8BJ zUB;_yML$sd&{2_zpS_OJuc2y&6PTSMm5-FA#v(E+?e|tFuro++XVcbQHv9A;Ed?Gx zu9iWBtO*i6w`=0*&WrEp)CxOkAzoCz@)gR;f|Lo`)6&L>b^i`gH-5s5-XI61R^!2# z$~G}FY9FRkx4OPSd;FAAIN|pvphO9-qpu(&ktC6EUza)HFvjVmQ0HK976Ffd{$Fi_ocV6fJOgmgR0dJiuv&k6eZm~ z+u#XixElP76A5r>13n@R$N-?b$ss4EACgf%wMQR& z)-ewY^NSd4by+26=juVsA78l+o`b&dZmeS$*MQwzy}f~fNp4xm8s~X@yeCS0th=nVTyC#ywzKz;~m@O9IgX5Ys00gNA zmV6K9IB&$AWAW-hB@YAM{MO&I)rIhu9ozXNzU-ngz{A5S`VaOR4cw#o&_4{yQ*qZ~ z$szKK^)7Pc_hJV^J@iux7MZ@NW-F{O^jhQXIe$&7M{>VQ6tz)NRg6n&%~QW1TvsxRP{s90Zh`pdozmd{^PYprkCwFRSVV8}?A6VA}TTu8&N z2Sd}gh0)hKAmZ0}UH5n&-4Ljx61Zj_A0s_6`_rDvRV$78LBy%7DsH%zVWa z$t91|t~+Z{QB55MJDvu=mT&H}&`kQdfF&n4wbyl4Q(4->JT+7oX(auxOCn*)6VKrn z!SLf%%921i)_xWd7_kQT&HU&#Mq0+)hXM%qf1gxWv^GVqqK*rtMGP~=SqjzC!%kW_ z53&I-o0UN7TlCR5DRj?kf&m>6>8dR3pzC`SQMe(kXN%&>nlu1Y2-lV%r>{jFGw-b} zIlY1y<73#4K*6%Z+DVG9<*V47p^;c}nS;b% zF@FQ~K^y?(qQBdz3y4;DUYJPVC}6z6AH=4-<<1@T_7_{XHqonoFxo0#chb~TtY#BF zBWb}HbHQ08#qbQcp~bS-xvum90I;V~W`gAlLo&vydB2pO`PUj^!laI1;EjI8`_dXamHUEM8GI|P zWYXUDjBao$hCja1$Di{DD3urQ4s3PN{4Q|jWIKhL$7xGmBpVf^-r*chGnF8b)OJ5z z5!a^GX{fFm%4f4$}{l?blk{>!({kU-4|nKxWj*Vt`f9t7fOA(wk(KEg27d} zZa;QeO48DEe>Ad@pU~;eiLK!=(zx=e_a%ev3A?GyzJqeu_8pbHzYlArlDe!fv6cKN z^Y{%*eG?i$I*X-sU)W;Pf2wNz?ZiFFe65i4NX(E#gr4|cHmgfaB=?C#BE(%Ey4H_^ znN9W=;hhSFroCPP9gBDbew>3;orA*d@AFpM+8M_U`6&n&eELAzF-j;uUbrlo_4a92}DFqvh7Ks-64Ze%}!AM>F(i*zdE zp$BDkChdjSB2YmZ?)4{ft7^9-XRnAdM|||h*InMH2>g{TUg1nLGmbzBW9$d6bkgM` zVqZ3X-mTx4n5a`JK|6|y>W1jCQbp>-^c>!r(&3cljMtq|99pC|@(Vm~f3yr#{{U=T zR~P6RhQQm^kZsyf0p)u-W}2o^>4#@&KL9lut_E>!hKdGZgi@RP$5p%T0d04uL~$h~ zz)MdkIaiIxGP0jgLC%e{Wt<3CjGIE+y!J&^6?(CRuQ+5puCAR_gQ#m@Y|%N67X=c- zWOQucu)x8IER9#e2lyoE2fyuCsKwpboRz2s%3BZ$BhvSsLMR0ZXmt z4PlC=YMSbpnmFIadF65!0Oyz!_j{ddX;|B}%>drssC#7q5Nxx}B=y3gYpc;y+;%N2 z%+`5sRk2Xp-lGb}O0;3)O1#O;Fb;b9Yv{Z>LEN{)kXu2|(RiLG7;MfN^ShJl)1siE zp|9SPJxzVmAMIu4z2Kv~qR$Oj@sU*?n`2!rk@*JjJQbBGQ8ZnsYbIB{y))O7SVs!<#Y+|e&~c@NDrjoq00 zokHVvSgQU!-sx`}qMF-9iJ-F6v=d4j0M8=^bp&_i00Z^VJW|p)H=@;GF&0K%e)s6J z&h@BVGAuw5>(8A7m4Gc19m;ueVZs51+b|bbG*>OVe6haPt3|7Z=nGv0vA2Sd)C{Nuj-(IJ>lqDHQpeoh_xHck zeUZmUByxAQwYEW<&uP}}OL?TBtfz+8DrL70Il!45JwLJ$jMcQ+j67#7w_$2w3w+j5h(`W36YR9_;BDC?@{X;os76`G)c&Wxn_f%Y9S>8zv>_pk3V zSaGiIGYLA(AK=$zcpx>HtyOzBOWsS;2E$ zHNAs&1IQ}1EsH`n{MF5p+ejodePvLU z=c3S1()SSnH{7O|4btOplG$B&@ct?(5$fWM5V1QpL~IYQD9*FE#vEz#zi@tq7sKm& z@aF7Cu> zU!D;5Sc~0g-W&a}Y!`|;dmq{+j!SOiMO6OW+F<9VtMn3FD3h#mAH4DTTfPRgboi?u zqqILomaM>}XNj7QoTtX#k7sU3#mi;yYYozlRKhw{ta5UboD_1bKLRvFIj-1(g1Q&C za7VzYRhtsn7}VdlEs`h)UTNp?us;Tqm-=a)!#5!)bI1HDxj2WwovT?5nmhE{mvGG7 zl-5fPIhI*p_)p7h-097GMuOi2^8}<^gKniVEEPMFss)%@Alh^d)hQUIP05G6 zrAdw>^vf{Rg;!R>nw?w3kQrwG0OHJf+x0y^O(Ny?N~qW8Z_7I6$~mrxcItJ@m(Pq- z>8@P8Ekd78n&r#dy0`r6moBafQ%y3k9vp7jCmlkZXYNQR-8GjD%UiSWAK$2} z0h%|NLvlG>l)=bka61vu>Wwv7bgqc-0r~KV)zOB;*#^h?@IxEt?A5d`_b4|$&6=lW z?}{1Ls@;3D5g&z6hbbdL@*chMjEsYv>Q~Y+&dqB$auji55;diV#KXb;)T@Qo4aR9~ zym5|~X>lJb1;2dJ0=s_p{gcFI$HCM$tWuDq{{V*mnztL=-PAX>tlOtg-BWI@fw}CF zy&mbcwQaPFrF}B^v6MZS;AaGCXBNLgtwB@)=#{k`G^K)}>o$$asHbz6fg1`>vqs%N zriV|5HQXZ*VgxP%*TgtxT1a4q;X8Chja^;81x)_{wuZY2SB50eHCB`CPBPQd8-;e= zT1p@?^UUu2gWZu%K+^^edZzui742}YHg^oKTb@*!wqscW5X|8W7WnbknThKu9>Y2% zPlhrhepMR0Y+Au`;?EOp7G1wr!hRQ28j70GV%+qj8E z*PmrRB+13D2Sa1I%i?eT9+b9MhB=m^gCE?g557=x6Z}i9ZXZ+LGt6kP*qtwPE&l1% zI1`rfW1fio?HODje0I?n3xXAR{4NC~w&c=T{vyRxhC1tH?;Mf)qcLQ0pGF5?I(D)r z)73jL=HtvBSFU05HdtEVbRikhifhd*l=UDis&gEj@I8*R(qXNvh=&_U4vzBtF7;26 zXHz^D>fSQsAF8mX1HEy zRYNoxuH2w~Q2d-t+;x=0_I0+;M@*$!nuZwMR5(%s5^@R7dyiw&L<6oiLW52BS~GyW zCb{uHZhvaGr7BX;$z0LUx-m}@IFu}`qpz2rAawN7lWmj}NJ+KUz}Q;~jtFUX&eNd_ zLree)g9yIv?dnf*PhCbyDgt>b!-yPJw(Qz@_HMa`hzM?ewh z5B|*ZU!{k0aebwrv$iCp+R?Tu>c?aBUNharYN4RV+T^UMsCy@T`LyRkW zcj@?zBbpp6c}mBYkU|$q3XQi(JzCJSx6d?m(zQ^LSV(@iM`7S zC7L*$KkD*VO(P!S_xX{>kV2}UGrP72$~&EEXz*Yp z?`1bUbO3&+H1)tYBSpWQEJgOP`%P2vDoJ=j!uee|Z9^wL;_HHsd8&x?0CXanHtGTS z+pld&h~glOk?qO-ksLD(EdKx!UCzM{S@z8!qOr)xj)oXrAt#g&Kp8FR)aVp;GPlg5 zQW6;B&?D+OJbJorcv;q}k=<*Ni4we663EI~u)PYY!0n=4p@cq|n{8wIA(%9|W*&D5 zt$e39y@PM9IB6nS!}ROwr2eB>2*Gtd`2}d*q=X(q|I;7hZRIArTx+I${8eo8$bX9m zp#Gy+i`}H2NnVTvtU3hB+w}hcv34z%+bhInhLU>4gvL3HvaU=fLEOj*3dgr?Y2jvA zz~~lwQcR8`s_nZ zG?R_aUZ_oVd{n#w{-3{+)_geOX2sz>ywU911%|R!3tM=cE7w%}^UIGa`y$~+v=GAB z#hMmErm{)hcb|s=6HRiCE{oOmDypDKT|CF3AbSmR<=_Tx`8wsx*DuptxqDNMa^=-q z*WX;ZNR5X>>FcgstM?tIe-(v$J7>j@+hqo8LP_2p7J`<*gJ=tFl_V20!qvR_)N z=(gVBwr+aZL58lqDVQ@Zq4R{mG7|KC(eHk&b6ZUown=+;!G}9hPP^Wj0~o)oQyp z3=$V+ZQeB(+QjCn$+AE+A2!rPUxk-kRsEiG#f zQ%}lRGcWM4*OOM@ub|c5>e%~RXKsa4?+ZrZ-Z9NjPNoZ7U1gN_Vml!BI<dbuysV7p?z)s5LO;ckTkMq$pHW}Hw7Gr96rALj3(vD1cym8-6jV`HOwe(A-wE8(s`A6+Syq0cd9ImyzMNl4;H z7dF2PHu~K+Jwr6IWo@>Y2R%hYdm;|Q+@6C_R8Gj7ndZauR;g(usCGsRpUc%^E-ihe zILp849Vlz%+naZ&g4t~)Waaenr^hoNeq0S@>M_^6*`5*gTKZ1UMHmJCBlJLfLytUL z;oWGeqP$jD(}v8Hmj`K)zc(a}KARYohf|m*RbY_3Xe@k|g4sWA4i;XVLBwlhn{w|i z7Hf=g32EKCW!V8?`RJ66q^ce^fbW;oAaA3or}s`^nl-oGr^G8IM7%QM4&SD@*Fb5O zrb7h0&`70Zj!0x~Y>;{!WE~EFW+N{zWAAZq`g$I|MJq9PGzPt<*GC(0-L1P;-(tSq zZFNsYO0?3wD-e_NfCGTQvh-1r`fA-46)Z6bi5Wn*!BwcPW8Pi?xk5YZjXX8kBz$cx z%W&P`A)%(Cpq?sZa4GaSHPZ^S7mAW^P&&6r*>=Gy}@69YYSELN$cL33FV+wUt^t75~&< z?#61p!AEUS8Kj;xdb3-q_dTm*$;z_S7${bS1CD&U zNh+3n`BhIa$IY!IfPi`ho{ier>W0447cYscs|a!9)+{Ii>Btz80sItb4NJ9h(9<@} zXh2rJXzdahkV(tPyqyPdGJh=$8ZpIO0`Ci>-5zS{N?(TV>(d_7(0oAcBbFX;eIOv13Kjb>=RZBsf0_~Pt6U78KYc+TO09BxAcy~~GV>;!_&o{O)u3Wx}aop>dE{PH75=P`N|0&l*xf z)Zi>d0KmWllw*_u&;g7A>8>X0tgRX2tc$>(I6Xo2ABK@~?`yY9MI)aZo)-tp?0)I| zb<34M5;klb<7ie|2p<#|$D@38N#gS%AD>M@QvjMW!_Vi!wM9~3m9h>#qm`NMz9ka) zbsXYlB_)seT}}u&K8IMdOj>MsUXIyA+8o_M)p@znM_CyR;2a*E2Cc*tZwW=e_NP2< z;E!A!>11k+u1rs|M;K}CY01JtszO<)OCHG~^GEF2Us0l%Rc()U z?}E?cn0@~M#$eZx`mGgQm9`3}wp>9lgXDAD8qxv?S-~of_Ui?FsV!tt%E)<;o`fI7 zYP__uzuo|;*3R_6lFYlWO{g3Eb}pP2<8%Zf;g%@2ZcYbh^szIuGWkj97yp7KNYnJ9GOZizfqkO=yW>hTn0n zDlyMhR^5N;j40IXqKUf&1MxbSed{Y&xG};aBm-+A8BSz%o^Z$UZhcz~%d({TWO2KV z%7;<*bK!K3C$$TeqNH_JhN+}M{{TdxhM$?iMqW~St;t3<7i_Cq;VlQ2tCJr zVX+rYB$tp8)1dTThlaKo;{q!Y)N|^qD>mFhEP$_%MbG@54Rl2j4?%m6Z`1NK2tXhl zoDCprnw@Y}Hw^yH`;U#ghPn%T$7b1*=P11-Qzvlg4t%Lxb2!~C#RqnI(TYo5;)yJnmHLfk`fCXf2UWT z;Z0J|-*x^UklkP8s40#vOa+@2AXi`w{e)qR%Az0#;$ypRo;|i*j@5n#)jX@MmhM&6R zg+`0~H?`h>s>QrG+@kTr<4zAV(aMqzx#=nfKhzxo46{gHp66Zn;V^2hQ_Z*PqNJ#C zGTYVpmjR>YED{wS8#8mT1eNLrwX|-{3w;(^rMYEr^G*&E)ul{x@-S$sY>d&Pv*5UNuD6@CI8h7vB0-ZC{Vo38pj1`cQSy<%My`-2>|sY13gZ% zunhGr^8Etd)VnMM`7Il@DCl2^QOM)PduvtJM3SLgLqiGVWnx=0B#(w)PMSF|vrtG4 z$VkpKT!n4^f|EH^S?XMWF#%NTH#@EmnObWo`>iGwie!kf+l{=(PlDqv$Fb8(4GE5^r;$3&&zENP zeqWVG(?uJB(}vo{{Zyk9ncC@Oyy8C8dlbn{I*I8j<1bB81~cxgJs5ZVG#axH?pfSFVKI1n#4&i%g(XvTJl-i->VVRNo^aZ_QM+ebIUIL&7#I1SNA&N{bX zewxb9+gd1{k;LZXL`j%juheY1Nw}d#@L+?Upnryl3GqGg?T-066Ay3MBg_nqm%Mc1o#viZ@K9x> zh^qj7GN%kPpt5$#W&-nI(W&zNRe^;v`9RdDG<&+Dp1K5I&v-JM$aX=QL20e;68P=9)8u4cfgfa?;!fwN3 z^jVvVn*!y-S;RLPJbOJ!KeO(NxJi0v!;>8rKs`Nsjc2NG;UAb=8VpQS4vq^wUMenI zhWSOdcJeh%>hDsNbWy4Q05Vp8)!T*qR#Mg7a#+(zgmtb73{7vEAI?`<0=|;ZTVjsG;*A_Uar(e5IF=LhO z8}{;@T*T-`vN3CLoItpU-|$Q81yjvMOrWSpqm)S}ATJC(3z&%`_m7MWgXyKh3LWH>eSLoYFcQ5jmE=T83syrFjGaHptsKB|57C>kzMV7XG-yh(?PEn=w)3ldwe zOedz5a-+E1jm;&vNdr@j2+2{B^|GDI;#T zR9CB=!t-gCS_*RP!a8ex3Ioh}4=6&I>FJMt=R@b2&yT`B2*eS#H;l*BuN4qe*(ss0 z(-mr(MJ;fV0OgXg$25Q+TpTDq!={@P13WG1uc}F&WI3I+^z{DdQtKSB0BZ+^hq)Oe zC%zA<8en6ZHPKjW!8$HmcB)Ga?w09-U=wmoTd(eB9IQvM1Fz$&km#ya_}V~C%WmhU zr;%`F-`JFJnoQ`81hMnkr`tCHF+G}9`uBr#5C4It%+Yt>lI5RddIaP-u`bk7!UNs zqy6`xAy$G2W*C0PzOvg#Q3{t*DG8Jv09R6+9kb8~NCl z_Qr}+P%=GtJy0s#R$7fVZ$OzIDe=~OlNP9ylN^0ZXWR`XZCfH4o@@e&o&rUh7u&7U zTFOSDqk-b5@l+asd0EQ!#AFiBblz_)xJ!&rAvma@#b2d<~i_eI2_{w>toN5Dy3Y3V2Ug%PYx z&fW>n%vIySAPu}d7xHAA9|j0?Z-iW!?FBp?|>fCTc}c(4A_ zicwNzw68uJT|l_g#I&NN029EeUhdtS)*Mu9ikWQI?q$NuTK(!H`WT2K@zBgZjK=3V z+w46$qnO4b*_hV1VlI7pBnR43_j%qF%ib<09>R?Q8!g*OVgzjn7PoQ60F^2D@|Dl}=-;e0~O2iH>99W0xNx5a*o zAy-$UTx+X3a+-(B6X>KUKcLV#wQ(E-ahrOrgZ6gWFS9l&-B(EYH(v3MIl{2R(%KN_ zmL9!9nEv(toTFM=3U2MWkGxhh7OgVBAopAOrbN~JrD9C8dk^>3^dVJGx@^|kgH2mj zzZAIVi2;$5KQBKoMb3Hxdg-OWZmcqrSBr*~!n1x+M?*Ezia(5^r$>63Re@N-94IAn z0dKpcbd76s6QZ4%bdGRt#Gz{^94YSCxM||GNli$hnrgErIgEf#O999_1JL!;VX0%q z!k%m%R&#YC<-N}0uA1X+rC-|JDQFy$DrSl_%O1HbKpedWrtfsq;G+~4AUN1_lbvxZGjsR%Ryr|=fD4Vy4Yhky|6fVTv z*J=l_+ivMaZMVcBx6x8a!<@4I@}g%apO~J9)AiNU1B-2%!-O@}QATqX+@0>G?Oq97 z?)O9exMi=}76>7lNMp&8>sDBwhRGk{uR{18yrAW@!wc>+8?+CJDFtkKPC;iA@Mupf zoyLZqk!>{X$b*yO8ZZ(xIlie7$1h5p+R@a+mXY4bf7L%I5os+DQ`z*S4cl-MvnGYko2ji z`J|;k%^%F4%hS_JMu{$;7R|*;R2Sm$O;y!ugExp318InAqt;hI%66z-w;`; z>Bq%t4jNoivfm8%83`9HKSjhmNFHadJ(x`~05;M;Ij%vQMM zG=C04@|u|d2d+;yZ0k238pro}bg^^3ChE(lExr7Lj{v#bl8T?Kt1UB^M?PVOJw|lc zBdDhgXuE-F(C@j_dU>fFSs`~Cg-ugQRaILB!jF=da761RO)(%dDLkw}K2{}1rhvWD zR6IGJ3EDw(dA0W!(A;!anBc~iyTrmYJr%X#&B7U=rNTy%nB$TzRAbA6PBEWeqdG5J zBdVDA+H!#6(BY$vxAgSoQ-z`@2OUke;Zs{_5}x8JWW=xGyiQ~tOBTpK`g$D?!!W@d z;zBO#7P~g&@JGXSYNDXMmKqD(Sxnp%GtUvIkNg#kE=OUG!2bZox7cKG#^M?*^J0BJ zvKZ+J9aO!eR7?nj_3U-&SZnh}7HYY+axq8bban0sIo0A2ad}M=%cShNjQk#as zxz7vp!V4{`s;GJD6F5ErY#CS6<{fjP6G9sKGF{n#wS~piC?)RSl$(#qYiSTwe{`N$ zo+cv-MisvDm2St-gRG2G-Pv44x+4x~va$GurKUA7G9xGmt0&4c)652n)m8UxF4J8# z*+pwFu^xJJ&g{y+FFrbF+a818RH)_g0dry1P6dMFb6!yy9mr61>1;Ox(MUE(53~ij z=(vvsMJWkUcd*=OGrmhzyHv-;axJ@wgI@w5f4#UJ4GO2 z``ApJk|17nCD4Gwr*B+nWeYOIJoQ?7=jNFCXpDH5TK0Yq?aF4FISbIuSn?qyWcZ2Q zxq&6Kl~LC^tyQTP>aNg$8sZjn;Ev0ei=0fdZ4`!C>}ybK_bl-vI>A8^@uWv!2oE*{ zY6;0L(^RP``{{hHro<}*5R=Wc>bEt{`4PFwDxr8KX*@V$zz{_mt`I37brnL4;C@=u z7ujUup>u#F`k?*SaJbx|si2{__y`m|O+7n^K!gk?Wa?WlfK(2->M^J#aejcJwAAc~ z0$cI20DDC>7T%s@t7NJyC9GIM@e7a?My$m16*S&J+S53|VF3`f(Zbz!tayUI?Nx*0YrX|C4X?eRcchHD*?zU6GT zBTq>3W#puhaVsxHFD5yT81)PNbUJFdq9ved?7#ac_}n<%%Xx3&iGP z?9!Ge=5Dz6{B(yBry6db78g`4b8oGX4PDP-RNGdDM5v13vv`l;FFO&O_(oT5z~i@I zF{*M_!IsxI{&I=3mZLTFBHaGV?+o_l;o=Vy<*&5Y)=))B8k@E1CskTnX-_IbxdmP1 z$1HK5UpeihqLuSbOK)NHQQ~Zh8gLu|JP*}sIo>-Bt{;X^3M+E8J*qd$NUp@A${hKR zbIqTbj&ycS1;BppMYI~Cxo>wK z6s_Ytmbyw!r*9~2^pS_DsEmx%R5F7jyLae%ewvbR2n_xeULPBa&iy(B0@X9L<^&=r z7e6atv0>laIMrsjjRGKAHz>bqHfSRAJw&no=rf#iWSo4Q9nz>uSNlQeAY_J4iO(+21_vBA=?sdzRR_21=x^1&sYvON)k$FSp zbFZjn_9{RlN?UPaq>5KY;O6cYcipxdj@7RHpL-=@Z2Ub?L*Ue>x;}6l9oM)zpz33L z1*eL=k~cN=Gt)P%i1^(RF7n%HB}FRMMAa6&n)ObmC6thdIKj#9jaGGB zaWoejTK@ndyV>M^!*%M8zLx7#M_83{wK$3Y0C<_@$Zmmik2mA0@YQ$owa$0|H0`$f z0p_K93~eIX-Ez3rS}AWd)f1$zOB*XZ&5sFN2bGo2ai1#z@1b>*K^;>`1hi{@J_nwJ zD-cB^;viTaKV3LdWVfvqrYaQ!GqcS)xW`#ox6XSIFgoa^HXrQt&5RvfOP!njM*i}y z`TNNWxEc?FqEudYf6#)esBJe=I83@D6ZGc61V#1oduun^OfS1V z{9su7&GY;~`Kysg);lL0Cxku)b#g$QiCDbKxCb3anMghJ?X2ZHeW>?h!Tfad9~EHk z6ql>;aZFV6l_am;Pv-u86P)2?+GR3BOu5PBLG76_Q z9+$$BT56chQU3rmqsM~?0DyoVy+>^`6Nowo4ukUk$@HYQL3RJpzpzaOUk!G&bP^dA zW0<@`c8H~7NYTq14-*QGNFJQT_8K2f>%`whq^KEXb<;zLI}dAa+NvuS>AFp9+BS+> zdKZG1BC@x@rwGu(*djIN4VUlj@2c($E)RLLN7Y%0(l$Jii@5xP?wgv6YHifod^NMv z?Y*NKs#DXzp$h^2Y|b+BJ9W!QOJ}x{TtG(KM%yK)!SlN`&byFhOqUw*ELHN)Q84By zD>1}jhf)B*Kc0mehr3cqM_U6LJRk*7=wYaNs|i?@#AGX#=aq+)2F5`kdJj&zni+s~ z+*2iG#hQe7P5W_I)=*n*3k@w;kwrTye69gd<=7E`xyb`fmlSc)npriJ3>Ple>7184 zm7`-)Z6~_Dbr1qtxyUISIUoqt2VPO=4{~yPokLSwBiWMrerX`0jj|as>W5*q#%Zc5 z!DVR}gmxUNS3Yc!me01R8DuPAyu`M>eWsk ztSZAHjzc#$N>ls4<0-r7^{>*8(ee7*#4&oq?`p_Ui{21s+|{^xK|r%xV&Mjj_l+|m5$^&ed+b((IU6EnKOZTc(S6>SA2(%&z}TdJXsrjk`) zVwELO@k&1xAnBG&Iw)0_2_}%qJ99Un>;U==b=N3Hy;nFo>n>hrs-U@1%Wb<-LtSl{ zVrp5?NgEE|D|-D$T`sGV;_>!$;Z@<@Yb5o%dU+0fBx6-h3G`HymQnN#sqYf&O2gv4B>4XTM8}k$!0LnWu7wkeA8+0SEcL{04DOw! zQeoUSYMVttK1H4~sQ%oN;KtvRYMbca9;70%R!29wb^5E{vlktzxCy(TZ0`>pxJ9_8 z33-i_x?3ur3YQp^c3(-r?!Ip8t28w^PFHRDA=s@4dNVWLA62^U_8JIk;is(SmX1{C zwp?Oh$nZ!5C=5C>;N*G{sBx?c3fAS6X~7yFnjeSPxth0rLK)rsGk2u@p<|HKT`AO< zCqNE8aKQ9sKA`9TxIjn0HYM4JriZ%&KrB82$ju%sTK@nSDyv{`yE|U#w*BrDq}*Jr zDruO!Fi6TX;zc1PeL7@=>8~#kiYdb;8f~et@+kF0E|G=oIwsxM!7x(9(L7X(EN8)( zE5q|-Va7lN`{?~+<1w|ivu-ptE#HDaR2mR-6U~mJ`Kp0)xE~rwqH=0_^U_Ls5>H-6 z)miF`i44~FyB+#;OB_}j>E;z&H9U;;yo(gij0t@R{sKA>eRWy~<#A}RBy8?2_*Bnr zz&G2XpIJ@uHcHxNR#)&J$fu|va}H8_jExqhkTt@>#1W@YPO2Vmz3l5-(%WH{q+#7d zerK+|gAa=&W2(wl%bDd7Ls3gel^1KAt50g6jpnJSbA?FbQqJs8paWK1RTccN`%7`w z@5Bx7d%Vz8$xlf%&-*eG#07*7NV;~%QZ=>;NaMN;{{X}Kt0fnWc%A2|tcfI^ z2}hY6fy}|rUZe8$8gL0SUxWj&l+$h-oh(^2v}RVPRv~%RA1F_D85+&vtStrY9AF6tvjBUIT#hK48P_ypT)X@)(O8Lt zDI->cw<}C=7mcaJt1Y&^;ZTEi+vSRraKs2ENs9R@SNSJV&7Vf*8uQvVn5!CgX*VCY z!C7S4hoWn4tDUmnezn0;2$JnPQ_@JJfU`7hAXAS=H1%Ln27~t;bueNUM2HJ!|&|j{QM)J*;G{&N!c#jg3%2=x7%sL*u^^&5i zc7E@ISE1L^G_=Xc3s7!~8dt5Wo}!?N=ADdjDL*eal#}RiKAIssZMkte@T$_xKn(*< zSL#c2RTQNrL*hF1Awu`+GCltQrl{XA)mqG2bWkfTpbkY}4S^xU`IjDwJNNa|T);O{ zHTOd`cD`zv5r>sQkf`Vxo1p&y*fmTDb(FkAsD^u^ft{{Z#rsGc-VX6g*?f{&V=4}y{wWj%RtJ&%0q2Rgw_8>)s*!qN_^FT%CN-t-6v)>Q%V_hBXR89(Cp?s6Om991-h#Ddv+)T@*zu*2HwJPl%$M znlnon#v;eB^Bi~8!=O2~RBfBx-9@Fh$pXu5j&me6QHqKQxkh|6UaH^Djq~c6JYUgT z1RY4*f9IO@xgM-VPe{Pe6(S#ri3WUG8FI(2dlu5lU18*sD_rq(HEg%k8i!|zg2tuL z^a=sN@|N}bX^_XQ)RRao1<|FNQ9YUz>CF%^5t4Ds+o}3vS4tA$VySPi4-L9&f@&4B zK(Bf!jN~0DT!nbovm>k68?vMz=YrbPcK!l${SKOS1Sw!Pdrz9M`x)Q)vJ*#AeO8ip$%&7mzEJy(52?e%g6+_w zbXddVvt-nD=!5>u+;6MdbN>MMapS7ZX{4m6_)W2NxC0cns)BsB+QR<;EKE=CBqx+- zlRTwPqNJ%K{3&#w}x)nwz2kH=3 z-P<;+mG)iHB1BrFm_sP@7@$VSCJ&TJBaXTGRBOU}S5n%_+=E6k`JMC)9ZSA}ZKuvT+OF>%m!qwBoO+1oJN(GUyo){+uK_jr{ABM6~Q@B&Q5FMP59P5$; zbt2whsEnN)$3a|9b87H-pL!JvndUg7+_l*z>ehq0N+QcjE#`7;_M)5 zcl0NYq^eS7ECsqdr{ufCMau4yfM}9G7FcQs4yl}TMCAE^9dt$}nGR4c+g{w;t4}Jq zBx|wye0m~CXd|AGL`ixH6f#sdM&;;2_3PAk_8Qw@cm%RNu8?>Jqc-S8Wpi6_4~uIJ zl<493l2$B5Nf`a)hoY*FuDvjuEX$43JM9s?sJBkWz3j^kdQw`_HA;%7aT?UftQ(M$ zMq|qLAA9iAFRDfSwB8Zltv3sWyK)q{Tgei~dXM}{erL>)fP@D}=)Pf)J8Dv`N7QVJ zE&H9# zqnTZ*WO+t&>Y=a>vUr_Kvt|dC=`?iB3=KUNq}rD13nWm}+aX$dM}BsV3v!pwQ`DUZ z_Ls?Ebu&N)~T0rD9 zs-jAo+PcpLA&E~kl1SlEVpaMc{@qTf+V9SF*ZvV!cv+W#6GG=@{fA+tvd~Hl_ON~` zRlpL|znV!KA2(CV3HBN$BC~8a2q~z{;!i1gU5A!>ik6Yfx0tyFxq4?O{{XD&2QvGs zjCHMLdti+OG58U9aUnd2y-R1aANlpwnEWlU3cR;*xhnn^lA+QhAte$jqY@QMo|t2U z)2_M1xiA3LWo+4%HMJttY91D%o5y)b9P1(z%&`u=ALTje%cy&yrn@HlQP#tK6+p0C zYA2pwiN@lT9HY0_K^=+AdJn2H+%_%&E3FW^P@w0%)XLzK&*3R!%t^uKIKa+3cGF_SrEk38 zehFltW43LT+*^XOnm&2ZTu}h$2%=;w2mgJ4OAM%PN7= zlDH1CLdUT_XwOyl)oQv%%q({s6>@^T)b7((o!iwQIB)ib-uxA=lY}2=TSaBpZdv5` zSStbXuGWYJAZ4te=|799l$>fImsa}SU6bY7zkY{R~$JMKT5EjP1e+gr-n z`(K6Il9v0nCT5yiT2hTHZv9xv3v$aFXSgFl>w6^yOUu~p4z6yNB=VtdDERy`w^7cj zecst`sfnpBw3Ads%n62}Ih77DN(^~_EnB1P6~gRj?F^-V-`O|hY@l2zKgXjvNo-1%6dntsx0C;<{9wPL(Iy# z=m9>1SMZz?I%ZnKH&t4yz0zrW4vMpUaRXy;+JUZ|MZVL}fz~T}H;Gdz^hn`MyA$|h zMr56_3%J=*h8ZR{j1reo@v66caMu0Av2J@d!-K`9+f-8@?=`OwJ|$e>bP5QqFhQ)PFIfeNNxf}Yd4Y+p>>f#jCh_zBh9c%cUpr4eSfIhhIt8HS9mKv26c0IcD zB>P<^kX&SjNhxbQM0nYvUSS-uHXoOm6=qZA7&=Fb=%j3YA9MZQ$I_lX8hZ`T9snkP}*C(iJYo3Peh`6S|pyg((X{=3?M!wfAZ8O-m)qN?v&ICyt6Xs_m^DCj}1oD%E>bi~!S4C&H zE1X4~KW{#&gBg(OE)Zmvxh=P7VDXlws)Dr*M7Sa;311Yre1>Im4ha18KBhk6QXEcl z4!&J|dMj~W+U>&EmjgES;N6;lEBLiv1iloen~v&&f+3 zq+hDP`%`YgvHs56f{u~=E4K5gj>AM3%0)JOTDD(cu%|EQt!5)ONY7KJ&17p)#xLkadCd}5Hr{=T=#?(f_8Sxs*izH0lijnt7>8h^|ZtBBBU9yUo zITl8WYJeA%V<38uUv8ZaoY^hPS40mB&%{zr$>Kz@$(}`(JwWI_VgWw6_0{TkHQ*8~ zdaAQE%{m*7iUoZcl)TA@f zPf$B#V0Y9r#Ms7CbyGtrdAJ%Oo9iu8%|S~Vma8#|Qa-ICDCJ&eJvx1KDyGEc2#g1k zh* zxSMjG3c71uqM=%niRK8o%mJ!GqKZ0aINA6EQt1M zN`Hi)NczOL23$=#h64s9Jfk0ZwG0se^5L?Uu5*w^eeP7t<^HysBUeVAC0Qt@0)KY# zkIkK?SX%~cD9sJF?|NWtsNARd_N7<6w}$l~nZf_Zy>Ankt@QC~qqXoR;KJd!PfS zUYg@>RIy)$LASu8y3C5DVtC5N%*fop5W|;~ulo)u+PvSBjZ zr>H+F4u@Pg?Xyvh>XS*{{V)K+nAn=-kq1t%I{=Md^gPl#Vw zr1U>ReRM)9r?Xb?)2b6aD^89@yI*tCZc0-$Ke@Qm`D&?8Mn)Y80QzTI8funK+|2&~ zg`KIVbS|;mf~k1T!P{pVEGaY#92`Kk#8%l@*aE5%)X~m;LHmUKjr2O{;1Xz5)D^C$ zcAn|neybhF!|S%)y1jL>YO6)^o6L2O%59s_PWoL zZQG{%-V_^t-87Y3g85k$6cWf@Njau$GnZmc6>`U~rn2WXM4`P;^XRl@M$*9N+Q1L^ z9~H7VfwXPQx2d>Ww}2KK1-)n@$7hr-BzF3f)c!i!F@d7PW#-a7&vs+E*W$4b>(~

    &Og6B=Nt9Pv?-Lp;4 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

    =`%VEm^54!Uu}YI?Wl{gX~17n+m*0E*P9A26g@ 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 Br&0g_ diff --git a/04/artur_kudaev/2/public/i/im4.jpg b/04/artur_kudaev/2/public/i/im4.jpg deleted file mode 100644 index dcfaf7057ae4e375da2d54a12874aa166cfc8a24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 75387 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%0AYMn3>KzNCLm}_Ut^y5MNQ2L-kb$a+Zw`>jO0eCs znb$VKav)F}#ybEHCzoK8hNEYHe=QF_1xW_;CZzVVI-HDOPrc9@+|ekb^PgZnLJx1) zxru{)wj|MqjJjd$d1dtsR;4e`Jpq>HNL*nsL(?D_VOXekv1hM zcz??3qj7@5(H#-&Si8p5cI6^|;qLy~Rt>0S&OF#d@t3X2z zd0J>3pOw|MxF^ebX0bjWRIfe(g7#%dWt?KI{p||&9906jyw=szJAq==5O22ZxHXUCm^|2Bi^*!em%?Rb2k$SU7Cm zYe5kkt>YL8mej^ppI>#%{MrppKUS9|$^#$PDNXrG)u-$Mg85fG(>K>^6GZr4R7BVp zmX(!u>Qu{ucbldhV0u$@wyvrq*&u9j5DKsp3Tkv{8?@kxgRi$~f!;O31hL|pPe9Zp zOy1oFg+~McQA>6IWY*WbIiVe@t|)095mn8xB2n5RO-S8w{1jkDq5&ONaW$Qk1MI-? z_sE_%_Twl<{e&tlan&6m&{c6x#>$J6TUD{a++XeNimM~Zie#6^Vte9kj4O`5*B)hnvV)x>VyYlZ<9`5)cFKntw*C%q@gJL9i1~_l`GsagKdm2JNZ0o`=~`^9H%u?>$xM{2HgTQLHeXXh6fZB(|8-o1eiNh=tXK&5^&R zAr<~GhGwm3ML$C}KGCGjZo$vC?TeCSg&3ad5hYyrd-6vmwuyy`bjimAYz(zy5`H(c ztV-GsqY?VxgfBi@ou3tI4(NQ_MFpbT1{mMji6Jyte zZOB`=;%-@iij*8I`nVeS96qG((Lv|=0l{AAM(^_yHwGUrDnZv7txc4VdG{0~i{xA{ z9Dj7|A!2RfO4uEYzsIcZ$3Oq&duN+Eza0?lEYw<)_i0&u$;%UGp8hy}>v*(Llqz?e zqsZe`q+pONG#%#J=|*-fOg1=yG9okgCEd#hQ2rD{vdvYK+{7w_;km6CT3O>AWhzCB-Q5 zxe6le=31z}PDa;9dmn>YWjq3^(6PG2&Pye|B%el4xK)Ip+f=^?Aw(ZLII3;kf1pK~ zW&t_S%viTC_g#CKLnb5d=yZFDy!|2XX0maUC-$SA=8vk*xLfot=Ta+IDAegDtL7`P zLE&c<4i%$>v|HP~U7}|Khub`|BI8s)*M6&Q!(U2nw~S;h;nJj*sl#kxnbXlulB2uS zvO5L|qhXJ25f0#|vGENtqZCG7NV%V^k=lgdwYv1*^;{77f?3U3;O_$+b<2!fN zpe}V?pxc3)1mGIw6va4ZI}V0h@AH73ra5yjwS#Qp9v@jok2RD0#((>K0*KR3>sUUJ zh?f&xf1!fQvhE;9g_Wq5rt`WG78e02-SWuPo}84sAo0vQhjlXRw8l`uCSyZUG;yl%BCrmP8CYgh6zV1u@BinZYtdG6X$PvfDCc}_WpE^;IDynA$_bkzGCb`<>Hh?yy zP&1L%MrN|D_6=o|;9Pcbzb06lIPG-$b4=CoH~;e-s#<$MNayYykquLMszESqfjG(| z{~@(f$B6Zs0P(W(mnmcCNxLUN|L8%hh4xxFB|pkS|1uPl977vqOxD%F<|t;B_O{pV z$XlMc@q&0rTUEfbpY8?mq{v{R#NMEy$g~=#4Vhk_W(Gy?8*&2An_b0^;ucpEsO;58 z(c>z!x(!wKVGsj^tY!ITzwecy$7KCIqd9Z63=7tr6YLSaF?mJ zZOk$uQNqZO>RR(G@1$x~0Ve1+XP{=R`O(Ft*5v4qvQ6RJBF>dkp_?x)7k7`@z3q3- zTi?nKG}H4%0CVwbv*?lM<;jouFI$y!%M{JKr!loNlK0t&XbCYdSBEi4# zL?d|^asA!ulxnSOt{*oJ zl4E#05|3fmZ4W@b5@jGBQh;*vaHyIXLe3@wSyfz6E{Q}bB0ijoWDN6IdLX5OVwiwL z`zxK@#cw&4a!$$!B=R0Mzq1>^85bcFAEq=b+!zkuJIaq=M|bkW>gh-AHY@RS?jJ7H zmVitbDOCgMi>^z-s+EnVb2U&0=catr@-ohBL#lUynjdL1#XVE^G3AqKNP(`(h?Sfu1&{0tE}C0}W47PGBYi_YyeA(+tm3R^ z+Vj99KuqA1PrLJNpj~msHFIr1EK_YZ%JQ%J3apJmxQg}T%~V+mm0O+Q`(~{dKRhzb zD`kqN65Rv&6~-Vx(i2Jl@Bx^x{f~p9tn6B(ih-N2;jT=VHW<_fZE7Q4(gH?27 z^bHsQ?>Io8<3k(c_l;r>74QmwPWQ@GSc#3QAKp4{U>k^`&^-rpvEa-5TvQLtDTVJy z32bD2Gj<z>}ce9T`hzd&JdL%)sa41Y~TnWWe~=sn^aWdEZdt#mB&|soKX6^|P{^ z-MNL%y<*av?mCcHN**U$GF(V*!rX^qC{?+t-}GKQ0cd3&4t^(oyLb%?9!DQu@(8x! zYxRF2+aOSgP8X{nC7;xSnT0qU6U-yC;dfl7aQKQ}6<1i=PT|DjRMOYn1WB;b?}6xP zK1dvaeJqY1R~-EWipI$>@}2!TPh6_Uk)ygz*bN_}A^IlS0ro)e zk+T(R9}W+}zP-+j(s3BKwYdA@Pve>n--X++MdvL>tcb<^`_f9ZUn$ny;Me$)do(-C zlHxx+w-a>BMl5R6g}J+VBbC+vy#M&(xc>q8$l}Wk;!LMBihz(al33IT_{xWB&+76v zz8@Z0P!nd&o7k@{T%7q{cmDVwUVQ~KUx^5SwQC8B_Z!)LcWkB!jOT`vT z5)t4e)W^>&tl>V8>pWZg={HC`^iw<5FgN=X0KLR-W#$r_-0|qel7=<&kkC4QcL>6W zvxtGm^+tF<#2c^qPN#R_vf{hf&2YXX=apne<(S{!!p(Pu4Hg|&D9!&gd%&T{Whe~d=Mtoj7-8E8De|_ zbR5DwGn8ul*XgMor(em2i@E&zdvyZ@rlgeHOsuS@f;GB6X)<6%TvmnS@spd)u3rQ0 zZ)U90BI@BMa9jhP3Se7Ow}ecx`eL_2p$Aiv)iib-Jy1ck$osNjI}rm#(peD-;?ot% zT=&IA)&$XK0{EnEdS<#m22e+p^-vGHXXxpYvFE&dc{!cdinLSu*OqhK?N|Ya5P|A2 z*)ybX!+Bik9d6_Q)dzyX@UKqb-jEmeswpB~Isvtq)Y9>1y z=`tTsO!DvO6C{BrZ;)Z1ujH!VXbslKLF_0(&2zDP9C;=r*ZV=21k3DC6D<=D|B=KIEK`V8-Kep0b$K;OBw9-6?c71@rx{nU+!>RUK^hkduMoic zm^VqJAkZza(8)o^wwWx!XDiU>GOn~)jz|YA_Bs~dQ(=;aL7ov=o60WPdweJ8!@-R5 z>&Fgh?DKotrY9j#4El4DH;v_`k2b&&^5~o~!#s?(^rVe}R{uFlk-^9^ z$8lIS?R*-?>t_E7C)7RDY%sPDqBTrNf|SY;-}!}GNTA-VE`hEhb}xD!!cONdiWu$ z*jwfdEI2Wt!EHlARKi5%v|$k?XOFRi-ZIrE4A+EbS8O9XSY>mAK(YxNvv!1GKW zIH{Susn}SFB=+Lk1FQ-9wZ*cqYXI1os4Ypk?(M6pdW*LK`+?t%J(lkF)=qxdN(a6^ zSQc%@XgxH-hV7Lq*rLpaS-XKGrqmO$X32M4D|gc7k4LlMnkJXpx6}2tm4>hOmM>vT z{cdHYkWvc2&GcPIOKeC$O8ymAAWk9^RoJAk?=Duz2yuhU0PFf8n&YbGJ`}YK?bLaAbDQ?${>rFN(mgsG=DK*G#d(iqu} znJ+nil`SuBN;)vsqaG=8HN7i z^@cg`*c8Cn$l=LCvrbwqI0qb?**!uRpDKeTmzfXW)xuCvf;}QNlaY{ z%VA(5RF2Y^|Ggn6x=&D&U<`DEG z#qUm?oaCyF&C4sZJMF!x#5do66C5l)d?GH0rpwn!q@mEGY(Nl?gzL{{kb?(chPQQb zN6+XpJM(KgY(l=2c8Kbi-u+(fJZPK`5VTi0DH@k$`948v5;p9nAQ39=YeqS$U;Qb< zFGuL}_O&4I`4I=H5zXXFT~%bzu-(Cr1|YiH|T24*jcKex#V8{yomP}^YZtH zuW}l^9FGUN_6|iIxFd7pguSNSGug1_^hB_w^jr;(Eg^*9uZKa*B+AcI1R4lE<3f%pbqvG-Q6x1?~Xc-c=Vu=?|&FHgO*u};dZ zz+=1qIPj8hR++x<*0nFsRy61uF}2iq z_}Hb6iwAxJEbB3(nh-N{mv_7miE)Ki%NqL_#WWu+6;XG5^8dBTvs_Wv`<)k&Rm#Sv z$rt2HLQxsg3?p^^2IgqCHTRkC+id$4ka92SY!s+A(j@P_=T~szQ^nvCX)e_%vTC7~{tBRP|l_}+0l-y=m z_JKZR_+S@bBJ;+-5g2rssg83f9!cA!Do%Tj;k;i~8Q)cqXqdi5b9)tMADbBcrJc=- zZ%cWjYwU&*T>{;`rc%8)O0#b(H<-detJPm#FTznoi42+9`s7v0-Vmx%SrnPjWi4<# z^{m1~l}tU6-14i72u#HPbW3qkdf?`IRFBYE)s4ofJ^P$6ww5d3)K3zB zgN`B@C1eVPc%-myWAOpuo0}QF0z@ROZhq977Duz=Fy$z%wrly3Uo>NQ3=uL2lQjM+ z)J0-xJY8#?nZEqwYCb&?1Hrbo$J0;S57l`B{25=^dsSzJh_B00CkD1<;;oUr|45sK zqA8dmd*G$Gv7{$O5{j-5DS}HO65iS$B*qfSQnbC+6Ym8ffyD^K5HwzkAWRSIJsrP2 z9DbU0$#Mm9gCL|lVB^h4`*a#68pYmfG74=qZ^8Evq*4@Tc>scMSLj3X2Fppbx+ z4K6uXOs!V4Au19>K44n3E(ac_mY zM)h*&DOVphi@s0)C91TeY4M?RX7;f>!wQRV^!2?W<~W9hB%$2- z-Tv4C=~#xdOOjc&j-K<#bbzAko7?8>_6^N9PD|a2x*uV2awlzIQeHb0U_8Q^u}G zl+j+snTbs))O{&kAev>Bv0C2pj2mHYi(|J67jtOX(OqQs)Sa5sd)~vAcPlbP9*5HR z87yeD-e@j#wE@mjd*~9qsy$OG^Me^P41BrHm3EzHv4G1v@>+Uh);dVYJ(JBmm>P0r zOq~uUsnYR{=9dZGt4#syt`QSdFNTaw1Jb%QtBzhOStVpxZDE({-~mJy3M`pLE1>)2 zs_Br@f(WV)5{SyGDhZgxqu2|&$a)5-dP=^6YH8AHo}>_s`fkBCl@Hy|h8qP3ONe86 zAw;XRRKXirn30(Ppm-HU6^Xc-#fLUNmVWEFR`jr5r2vqvSX|0cxg(EPjTTyO_m=?C)j_b(cK>D3;Gj zG1+v!H!(oz8MWScE;CB;LCBIlbI!JN^_vtzO?ZAk_Odh9N5=ilMOi%Wl3iVX0+cH# zb1OA>S)U(kLu_l>m5M$EcMbg&J7KI|UBI`$@({jj8s@v+7%iE9TnsqWDg5?Yc`l^R z1rJvJf?|qmY3Wt5!5iq$Qng`hA?d?-0(_?txB*1nR}AXyq*~@Z?gicL-g*Mmw%n&q zRi^pA9ZK!=7WlbCR$MB`xhU`*-R=|37P;gHL|%7O&gsyK(dPNguku-3{uya`tsfK+ z;Vn#<0{?(jhI*xpyuO)_+@8`i*MAbl90N#@AA3M{uUzm|eQhDaa=5FntHK|mIxS*R%Fk32U-{5#U4w}^T~-!ieR%*15n^bA>wu7$rr z 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 diff --git a/04/artur_kudaev/2/public/i/im7.jpg b/04/artur_kudaev/2/public/i/im7.jpg deleted file mode 100644 index 7a32811409cd97f066af7015ac612d5654efdd5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44838 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 >*7JexEDfF}<*jzCDWdYY`jES087pFsh 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

    GhIJWqiDZW`INz!K=ip^;dLoJK3esegTP0b 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 diff --git a/04/artur_kudaev/2/public/i/im9.jpg b/04/artur_kudaev/2/public/i/im9.jpg deleted file mode 100644 index 4d95ed96dd0cb47dbd87a35023389c0d3e81accf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48973 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 diff --git a/04/artur_kudaev/2/public/index.html b/04/artur_kudaev/2/public/index.html index c438986..fcabbaa 100644 --- a/04/artur_kudaev/2/public/index.html +++ b/04/artur_kudaev/2/public/index.html @@ -1,265 +1,13 @@ - test task JavaScript advanced + Пользователи - - - - - - - + Форма +
    +

    Список пользователей

    - \ No newline at end of file + diff --git a/04/artur_kudaev/2/public/js/main.js b/04/artur_kudaev/2/public/js/main.js deleted file mode 100644 index 2a04227..0000000 --- a/04/artur_kudaev/2/public/js/main.js +++ /dev/null @@ -1,156 +0,0 @@ -var render = function (template, node) { - node.innerHTML = template; -}; - -var data = [ - {id: 0, name:"Овсяная каша с фруктами", img:"i/im1.jpg", price: 25, filter: "one"}, - {id: 1, name:"Яичница глазунья с овощами на сковородке", img:"i/im2.jpg", price: 25, filter: "two"}, - {id: 2, name:"Сет азербайджанский завтрак", img:"i/im3.jpg", price: 30, filter: "free"}, - {id: 3, name:"Яичница с помидорами по-бакински", img:"i/im4.jpg", price: 45, filter: "one"}, - {id: 4, name:"Сырники со сметаной", img:"i/im5.jpg", price: 45, filter: "two"}, - {id: 5, name:"Шпинатный крем-суп", img:"i/im6.jpg", price: 50, filter: "free"}, - {id: 6, name:"Суп Пити", img:"i/im7.jpg", price: 85, filter: "one"}, - {id: 7, name:"Борщ украинский", img:"i/im8.jpg", price: 95, filter: "two"}, - {id: 8, name:"Суп Кюфта Бозбаш", img:"i/im9.jpg", price: 100, filter: "free"}, - {id: 9, name:"Картофель фри", img:"i/im10.jpg", price: 125, filter: "one"}, - {id: 10, name:"Картофель по-домашнему", img:"i/im11.jpg", price: 135, filter: "two"}, - {id: 11, name:"Рис с овощами", img:"i/im12.jpg", price: 150, filter: "free"} -]; - -var writePrice = document.getElementById('write-price'); -var writeNum = document.getElementById('price-num'); -var priceNum = 0; -var priceIndex = 0; -var editData = data; -var maxPrice = 200; - -function filter(str, n) { - editData = data.filter(item => { - return item.filter == str && item.price < n; - }) -} - -function select1() { - var e = document.getElementById("filter"); - var i = e.options[e.selectedIndex].value; - - var a = document.getElementById("filter1"); - var c = a.options[a.selectedIndex].value; - - if(c == 0) { - c = maxPrice; - } - if(i == 1) { - i = 'one'; - }else if(i == 2) { - i = 'two' - }else if(i == 3) { - i = 'free' - }else if(i == 0){ - editData = data.filter(item => { - return item.filter != 'er' && item.price < c; - }) - console.log(c) - return start() - } - - filter(i, c); - start(); -} - -function setPrice(e) { - let inputValue = e.parentElement.querySelector('.qty__item').value; - if(!inputValue == 0) { - priceNum += inputValue * data[e.getAttribute('data-btn')].price; - writePrice.innerHTML = priceNum; - priceIndex += Number(inputValue); - writeNum.innerHTML = priceIndex; - } - replaceP(); - replaceN(); -} - -function replaceP() { - if(priceNum === 0) { - writePrice.innerHTML = 'XXX'; - } -} -replaceP() - -function replaceN() { - if(priceIndex === 0) { - writeNum.innerHTML = 'XXX'; - } -} -replaceN() - -function resetFields() { - writePrice.innerHTML = 'XXX'; - writeNum.innerHTML = 'XXX'; -} - -document.querySelector('.btn-check').onclick = () => { - document.querySelector('.modal-wrap').style.display = 'flex'; -} - -send = (e)=> { - e.preventDefault() - var name = document.querySelector('.name').value; - var email = document.querySelector('.email').value; - var spanName = document.querySelector('.name-wrap > .error'); - var spanEmail = document.querySelector('.email-wrap > .error'); - var nameErr = 'Введите мининмум 5 символов'; - var emailErr = 'Введите верный email'; - - function validateEmail(email) { - var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; - return re.test(String(email).toLowerCase()); - } - - var statusN = false; - var statusE = false; - - if(name.length < 5) { - spanName.innerHTML = nameErr; - } else { - spanName.innerHTML = ''; - statusN = true - } - if (!validateEmail(email)) { - spanEmail.innerHTML = emailErr; - } else { - spanEmail.innerHTML = ''; - statusE = true - } - - if(statusN && statusE) { - document.querySelector('.modal-wrap').style.display = 'none'; - resetFields(); - document.getElementById("myForm").reset(); - setTimeout(()=>alert('Спасибо за покупку'),500) - } -} - -document.getElementById('send').addEventListener('click', send) - -function start() { - var template = editData.map(data=> - `
    -

    ${data.name}

    -
    - -
    -
    -

    ${data.price} грн.

    -
    - Кол -
    - -
    -
    ` - ).join(''); - - render(template, document.querySelector('#main')); -} - -start() diff --git a/04/artur_kudaev/2/public/js/script.js b/04/artur_kudaev/2/public/js/script.js new file mode 100644 index 0000000..87f8f19 --- /dev/null +++ b/04/artur_kudaev/2/public/js/script.js @@ -0,0 +1,60 @@ +try { + const send = document.getElementById('send') + + send.addEventListener('click', function (e) { + e.preventDefault(); + const inputName = document.getElementsByName('userName')[0]; + const inputAge = document.getElementsByName('age')[0]; + if(inputName.value == '' || inputAge.value == '') return; + const data = { + userName: inputName.value, + age: inputAge.value + }; + fetch('/save', { + method: 'post', + body: JSON.stringify(data), + headers: { + 'Content-Type': 'application/json' + } + }).then(() => { + document.getElementById('form').reset(); + console.log(JSON.stringify(data), 'send..'); + const list = document.getElementById('list'); + let li = document.createElement('li'); + li.innerText = data.userName; + list.appendChild(li) + }) + }); + +}catch (e) { + console.log(e) +} + + +try { + let btn = document.querySelectorAll('.user'); + btn.forEach(el=> { + el.addEventListener('click', function (e) { + const tag = e.target; + if(tag.classList.contains('del')) { + const element = tag.parentNode; + const id = element.getAttribute('data-id'); + const data = { + id: id + }; + fetch('/del', { + method: 'post', + body: JSON.stringify(data), + headers: { + 'Content-Type': 'application/json' + } + }).then(() => { + element.remove(); + console.log(JSON.stringify(data), 'del..') + }) + } + }) + }); +}catch (e) { + console.log(e) +} diff --git a/04/artur_kudaev/2/views/index.hbs b/04/artur_kudaev/2/views/index.hbs new file mode 100644 index 0000000..f332b07 --- /dev/null +++ b/04/artur_kudaev/2/views/index.hbs @@ -0,0 +1,18 @@ + + + + Пользователи + + + + + +Форма +
    +

    Список пользователей

    +{{>users}} + + + + + diff --git a/04/artur_kudaev/2/views/partials/users.hbs b/04/artur_kudaev/2/views/partials/users.hbs new file mode 100644 index 0000000..11ad665 --- /dev/null +++ b/04/artur_kudaev/2/views/partials/users.hbs @@ -0,0 +1,8 @@ +{{#arr}} +
    +
    + Имя: {{name}} | Возраст: {{age}} ---- +
    +
    +{{/arr}} +
    From 60082f8804f00d2d58e5f9b401bd867c555a6040 Mon Sep 17 00:00:00 2001 From: xxx44552 Date: Fri, 17 Jan 2020 00:10:34 +0200 Subject: [PATCH 03/19] save --- 04/artur_kudaev/2/index.js | 8 +- 04/artur_kudaev/2/public/page.html | 33 -- 04/artur_kudaev/2/utils.js | 59 -- 04/artur_kudaev/2/views/partials/body.hbs | 3 - 04/artur_kudaev/2/views/partials/footer.hbs | 3 - 04/artur_kudaev/2/views/partials/header.hbs | 7 - 04/artur_kudaev/2/views/partials/users.hbs | 4 +- 04/artur_kudaev/2/views/weather.hbs | 5 - 08/task-manager/artur_kudaev/index.js | 23 + .../artur_kudaev/package-lock.json | 72 +++ 08/task-manager/artur_kudaev/package.json | 14 + 09/artur_kudaev/index.js | 17 + 09/artur_kudaev/package-lock.json | 157 ++++++ 09/artur_kudaev/package.json | 14 + practice/group777/index.js | 60 ++ practice/group777/models/task.js | 13 + practice/group777/models/user.js | 13 + practice/group777/package-lock.json | 515 ++++++++++++++++++ practice/group777/package.json | 16 + 19 files changed, 921 insertions(+), 115 deletions(-) delete mode 100644 04/artur_kudaev/2/public/page.html delete mode 100644 04/artur_kudaev/2/utils.js delete mode 100644 04/artur_kudaev/2/views/partials/body.hbs delete mode 100644 04/artur_kudaev/2/views/partials/footer.hbs delete mode 100644 04/artur_kudaev/2/views/partials/header.hbs delete mode 100644 04/artur_kudaev/2/views/weather.hbs create mode 100644 08/task-manager/artur_kudaev/index.js create mode 100644 08/task-manager/artur_kudaev/package-lock.json create mode 100644 08/task-manager/artur_kudaev/package.json create mode 100644 09/artur_kudaev/index.js create mode 100644 09/artur_kudaev/package-lock.json create mode 100644 09/artur_kudaev/package.json create mode 100644 practice/group777/index.js create mode 100644 practice/group777/models/task.js create mode 100644 practice/group777/models/user.js create mode 100644 practice/group777/package-lock.json create mode 100644 practice/group777/package.json diff --git a/04/artur_kudaev/2/index.js b/04/artur_kudaev/2/index.js index 2b391f5..d2e0860 100644 --- a/04/artur_kudaev/2/index.js +++ b/04/artur_kudaev/2/index.js @@ -56,19 +56,19 @@ app.get('/form', (req, res) => { }); app.post('/save', jsonParser, function(req, res){ - if(!req.body) return res.sendStatus(400); + if(!req.body) return res.sendStatus(500); const user = new User({ name: req.body.userName, age: req.body.age }); - user.save().then(user=>console.log(`Save: ${user}`)) - res.sendStatus(200) + user.save().then(user=>console.log(`Save: ${user}`)); + res.sendStatus(200); }); app.post('/del', jsonParser, function(req, res){ if(!req.body) return res.sendStatus(400); const id = req.body.id; - User.deleteOne({_id: id}).then(del => console.log(del) ) + User.deleteOne({_id: id}).then(del => console.log(del) ); console.log(id) res.sendStatus(200) }); diff --git a/04/artur_kudaev/2/public/page.html b/04/artur_kudaev/2/public/page.html deleted file mode 100644 index 15ccb79..0000000 --- a/04/artur_kudaev/2/public/page.html +++ /dev/null @@ -1,33 +0,0 @@ - - - - test task JavaScript advanced - - - - - - - -City: - - - - - - - \ No newline at end of file diff --git a/04/artur_kudaev/2/utils.js b/04/artur_kudaev/2/utils.js deleted file mode 100644 index 84cf71d..0000000 --- a/04/artur_kudaev/2/utils.js +++ /dev/null @@ -1,59 +0,0 @@ -const request = require('request'); - -const getLocation = (searchQuery, callback) => { - const token = 'pk.eyJ1IjoiYm9uZGlrIiwiYSI6ImNrNGQyem42NzB0aWszbW14bDFmZzI5MngifQ._MESARDPYIA7vKywYjD4Lw'; - const url = `https://api.mapbox.com/geocoding/v5/mapbox.places/${searchQuery}.json?access_token=${token}`; - - request(url , (error, response, body) => { - const locationInfo = JSON.parse(body).features[0]; - const cityName = locationInfo.place_name; - const coordinates = [locationInfo.center[1], locationInfo.center[0]]; - - if (error) { - callback('Conection error!'); - } else if (response.statusCode !== 200) { - callback('Geocoding API error!'); - } else { - callback(undefined, {cityName, coordinates}); - } - }); -}; - -const getWeather = (coords, callback) => { - const token = 'c5b4a80d47ef8ccf58c9cdbdd2f39f4c'; - const url = `https://api.darksky.net/forecast/${token}/${coords[0]},${coords[1]}?units=si`; - - request(url, (error, response, body) => { - const weatherInfo = JSON.parse(body).currently; - - if (error) { - callback('Conection error!'); - } else if (response.statusCode !== 200) { - callback('Weather API error!'); - } else { - callback(undefined, weatherInfo); - } - }); -}; - -const getWeatherByString = (cityName = 'Kiev', callback) => { - getLocation(cityName, (error, location) => { - if (error) { - callback(error); - } else { - getWeather(location.coordinates, (error, weather) => { - if (error) { - callback(error); - } else { - callback(undefined, {location, weather}); - } - }) - } - }) -} - -module.exports = { - getLocation, - getWeather, - getWeatherByString -}; \ No newline at end of file diff --git a/04/artur_kudaev/2/views/partials/body.hbs b/04/artur_kudaev/2/views/partials/body.hbs deleted file mode 100644 index 2b29464..0000000 --- a/04/artur_kudaev/2/views/partials/body.hbs +++ /dev/null @@ -1,3 +0,0 @@ - -

    Контакты

    -

    Электронный адрес: admin@mycorp.com

    \ No newline at end of file diff --git a/04/artur_kudaev/2/views/partials/footer.hbs b/04/artur_kudaev/2/views/partials/footer.hbs deleted file mode 100644 index 9903452..0000000 --- a/04/artur_kudaev/2/views/partials/footer.hbs +++ /dev/null @@ -1,3 +0,0 @@ -
    footer
    - - \ No newline at end of file diff --git a/04/artur_kudaev/2/views/partials/header.hbs b/04/artur_kudaev/2/views/partials/header.hbs deleted file mode 100644 index 85ae241..0000000 --- a/04/artur_kudaev/2/views/partials/header.hbs +++ /dev/null @@ -1,7 +0,0 @@ - - - - Контакты - - - \ No newline at end of file diff --git a/04/artur_kudaev/2/views/partials/users.hbs b/04/artur_kudaev/2/views/partials/users.hbs index 11ad665..e01f805 100644 --- a/04/artur_kudaev/2/views/partials/users.hbs +++ b/04/artur_kudaev/2/views/partials/users.hbs @@ -1,7 +1,9 @@ {{#arr}}
    - Имя: {{name}} | Возраст: {{age}} ---- + Имя: {{name}} | + Возраст: {{age}} + ----
    {{/arr}} diff --git a/04/artur_kudaev/2/views/weather.hbs b/04/artur_kudaev/2/views/weather.hbs deleted file mode 100644 index 4a7aaf8..0000000 --- a/04/artur_kudaev/2/views/weather.hbs +++ /dev/null @@ -1,5 +0,0 @@ -{{> header}} -{{city.location.cityName}} -{{city.weather.icon}} - -{{> footer}} diff --git a/08/task-manager/artur_kudaev/index.js b/08/task-manager/artur_kudaev/index.js new file mode 100644 index 0000000..b276d52 --- /dev/null +++ b/08/task-manager/artur_kudaev/index.js @@ -0,0 +1,23 @@ +const {MongoClient, ObjectID} = require('mongodb'); +const uri = "mongodb://127.0.0.1:27017"; +const client = new MongoClient(uri, { useNewUrlParser: true }); +client.connect((err, client) => { + if(err) { + console.log(err) + } + console.log('Connect mongo..') + const db = client.db("test"); + const collection = db.collection('users'); + // collection.deleteMany({name: 'MyNamg111111'}) + // .then(del=> console.log(del)) + collection.insertOne({name: 'MyNamg123', age: 23}) + .then((data) => { + console.log(data.ops[0]._id) + return collection.deleteOne({name: 'MyNamg123'}) + }) + .then(del=>console.log(del, '-----')) + .catch(err=>console.log(err)) + // collection.find({}).toArray() + // .then(data => console.log(data)) + //client.close(); +}); \ No newline at end of file diff --git a/08/task-manager/artur_kudaev/package-lock.json b/08/task-manager/artur_kudaev/package-lock.json new file mode 100644 index 0000000..6839f3a --- /dev/null +++ b/08/task-manager/artur_kudaev/package-lock.json @@ -0,0 +1,72 @@ +{ + "name": "mongo", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "bson": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.3.tgz", + "integrity": "sha512-TdiJxMVnodVS7r0BdL42y/pqC9cL2iKynVwA0Ho3qbsQYr428veL3l7BQyuqiw+Q5SqqoT0m4srSY/BlZ9AxXg==" + }, + "memory-pager": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", + "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", + "optional": true + }, + "mongodb": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.4.1.tgz", + "integrity": "sha512-juqt5/Z42J4DcE7tG7UdVaTKmUC6zinF4yioPfpeOSNBieWSK6qCY+0tfGQcHLKrauWPDdMZVROHJOa8q2pWsA==", + "requires": { + "bson": "^1.1.1", + "require_optional": "^1.0.1", + "safe-buffer": "^5.1.2", + "saslprep": "^1.0.0" + } + }, + "require_optional": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz", + "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==", + "requires": { + "resolve-from": "^2.0.0", + "semver": "^5.1.0" + } + }, + "resolve-from": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", + "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=" + }, + "safe-buffer": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" + }, + "saslprep": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", + "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==", + "optional": true, + "requires": { + "sparse-bitfield": "^3.0.3" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "sparse-bitfield": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", + "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=", + "optional": true, + "requires": { + "memory-pager": "^1.0.2" + } + } + } +} diff --git a/08/task-manager/artur_kudaev/package.json b/08/task-manager/artur_kudaev/package.json new file mode 100644 index 0000000..8a82934 --- /dev/null +++ b/08/task-manager/artur_kudaev/package.json @@ -0,0 +1,14 @@ +{ + "name": "mongo", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "ISC", + "dependencies": { + "mongodb": "^3.4.1" + } +} diff --git a/09/artur_kudaev/index.js b/09/artur_kudaev/index.js new file mode 100644 index 0000000..198f90a --- /dev/null +++ b/09/artur_kudaev/index.js @@ -0,0 +1,17 @@ +var mongoose = require('mongoose'); +mongoose.connect('mongodb://localhost/tes-api', {useNewUrlParser: true}); + +var db = mongoose.connection; +db.on('error', console.error.bind(console, 'connection error:')); +db.once('open', function() { + console.log('Connect..') + var kittySchema = new mongoose.Schema({ + name: String + }); + + var Kitten = mongoose.model('Kitten', kittySchema); + + var silence = new Kitten({ name: 'Silence' }); + silence.save().then(res=>console.log(res)) + console.log(silence.name); +}); \ No newline at end of file diff --git a/09/artur_kudaev/package-lock.json b/09/artur_kudaev/package-lock.json new file mode 100644 index 0000000..da3a9a6 --- /dev/null +++ b/09/artur_kudaev/package-lock.json @@ -0,0 +1,157 @@ +{ + "name": "artur_kudaev", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "bluebird": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", + "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==" + }, + "bson": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.3.tgz", + "integrity": "sha512-TdiJxMVnodVS7r0BdL42y/pqC9cL2iKynVwA0Ho3qbsQYr428veL3l7BQyuqiw+Q5SqqoT0m4srSY/BlZ9AxXg==" + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "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=" + } + } + }, + "kareem": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.1.tgz", + "integrity": "sha512-l3hLhffs9zqoDe8zjmb/mAN4B8VT3L56EUvKNqLFVs9YlFA+zx7ke1DO8STAdDyYNkeSo1nKmjuvQeI12So8Xw==" + }, + "memory-pager": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", + "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", + "optional": true + }, + "mongodb": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.4.1.tgz", + "integrity": "sha512-juqt5/Z42J4DcE7tG7UdVaTKmUC6zinF4yioPfpeOSNBieWSK6qCY+0tfGQcHLKrauWPDdMZVROHJOa8q2pWsA==", + "requires": { + "bson": "^1.1.1", + "require_optional": "^1.0.1", + "safe-buffer": "^5.1.2", + "saslprep": "^1.0.0" + } + }, + "mongoose": { + "version": "5.8.7", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.8.7.tgz", + "integrity": "sha512-PCCuTrdxpUmO86L1geXWE+9AvJRFuneIrMUT2hB/LXZ+5HIGOIfE6OSMU7cd8wFU7JRINP9V73zZ9YsmAbt+Iw==", + "requires": { + "bson": "~1.1.1", + "kareem": "2.3.1", + "mongodb": "3.4.1", + "mongoose-legacy-pluralize": "1.0.2", + "mpath": "0.6.0", + "mquery": "3.2.2", + "ms": "2.1.2", + "regexp-clone": "1.0.0", + "safe-buffer": "5.1.2", + "sift": "7.0.1", + "sliced": "1.0.1" + } + }, + "mongoose-legacy-pluralize": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz", + "integrity": "sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ==" + }, + "mpath": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.6.0.tgz", + "integrity": "sha512-i75qh79MJ5Xo/sbhxrDrPSEG0H/mr1kcZXJ8dH6URU5jD/knFxCVqVC/gVSW7GIXL/9hHWlT9haLbCXWOll3qw==" + }, + "mquery": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/mquery/-/mquery-3.2.2.tgz", + "integrity": "sha512-XB52992COp0KP230I3qloVUbkLUxJIu328HBP2t2EsxSFtf4W1HPSOBWOXf1bqxK4Xbb66lfMJ+Bpfd9/yZE1Q==", + "requires": { + "bluebird": "3.5.1", + "debug": "3.1.0", + "regexp-clone": "^1.0.0", + "safe-buffer": "5.1.2", + "sliced": "1.0.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "regexp-clone": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-1.0.0.tgz", + "integrity": "sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw==" + }, + "require_optional": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz", + "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==", + "requires": { + "resolve-from": "^2.0.0", + "semver": "^5.1.0" + } + }, + "resolve-from": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", + "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=" + }, + "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==" + }, + "saslprep": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", + "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==", + "optional": true, + "requires": { + "sparse-bitfield": "^3.0.3" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "sift": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/sift/-/sift-7.0.1.tgz", + "integrity": "sha512-oqD7PMJ+uO6jV9EQCl0LrRw1OwsiPsiFQR5AR30heR+4Dl7jBBbDLnNvWiak20tzZlSE1H7RB30SX/1j/YYT7g==" + }, + "sliced": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", + "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=" + }, + "sparse-bitfield": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", + "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=", + "optional": true, + "requires": { + "memory-pager": "^1.0.2" + } + } + } +} diff --git a/09/artur_kudaev/package.json b/09/artur_kudaev/package.json new file mode 100644 index 0000000..31e65bd --- /dev/null +++ b/09/artur_kudaev/package.json @@ -0,0 +1,14 @@ +{ + "name": "artur_kudaev", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "ISC", + "dependencies": { + "mongoose": "^5.8.7" + } +} diff --git a/practice/group777/index.js b/practice/group777/index.js new file mode 100644 index 0000000..e9cb092 --- /dev/null +++ b/practice/group777/index.js @@ -0,0 +1,60 @@ +const express = require('express'); +const app = express(); +const mongoose = require('mongoose'); +const Task = require('./models/task'); +const User = require('./models/user'); +const bodyParser = require("body-parser"); + +mongoose.connect('mongodb://localhost:27017/task-manager-api', {useNewUrlParser: true}); + +const jsonParser = bodyParser.json(); + +//Увеличиваю позволенный размер файла +app.use(bodyParser.json({limit: '50mb'})); +app.use(bodyParser.urlencoded({limit: '50mb', extended: true})); + + +// const user = new User({ +// name: 'Artur', +// age: 30 +// }); +// const task = new Task({ +// title: 'My first task', +// status: false +// }); +// user.save().then(user=>console.log(`Save: ${user}`)); +// task.save().then(task=>console.log(`Save: ${task}`)); + +app.get('/api', function (req, response) { + let users; + let tasks; + User.find() + .then(res=>{ + users = res; + return Task.find() + }) + .then(res=>{ + tasks = res; + const json = [ + { + users: users, + tasks: tasks, + } + ]; + response.send(json) + }) +}); + +app.post('/user', jsonParser, function (req, res) { + if(!req.body) return res.sendStatus(500); + const user = new User({ + name: req.body.userName, + age: req.body.age + }); + user.save().then(user=>console.log(`Save: ${user}`)); + res.sendStatus(200); +}); + +app.listen(3000, function () { + console.log('Example app listening on port 3000!'); +}); \ No newline at end of file diff --git a/practice/group777/models/task.js b/practice/group777/models/task.js new file mode 100644 index 0000000..bf763ff --- /dev/null +++ b/practice/group777/models/task.js @@ -0,0 +1,13 @@ +const mongoose = require('mongoose'); +const Schema = mongoose.Schema; + + +const taskScheme = new Schema({ + title: String, + status: Boolean +}); + +const Task = mongoose.model("Task", taskScheme); + + +module.exports = Task; \ No newline at end of file diff --git a/practice/group777/models/user.js b/practice/group777/models/user.js new file mode 100644 index 0000000..79b41d7 --- /dev/null +++ b/practice/group777/models/user.js @@ -0,0 +1,13 @@ +const mongoose = require('mongoose'); +const Schema = mongoose.Schema; + + +const userScheme = new Schema({ + name: String, + age: Number +}); + +const User = mongoose.model("User", userScheme); + + +module.exports = User; \ No newline at end of file diff --git a/practice/group777/package-lock.json b/practice/group777/package-lock.json new file mode 100644 index 0000000..ac96fa5 --- /dev/null +++ b/practice/group777/package-lock.json @@ -0,0 +1,515 @@ +{ + "name": "group777", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "bluebird": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", + "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==" + }, + "body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "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" + } + }, + "bson": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.3.tgz", + "integrity": "sha512-TdiJxMVnodVS7r0BdL42y/pqC9cL2iKynVwA0Ho3qbsQYr428veL3l7BQyuqiw+Q5SqqoT0m4srSY/BlZ9AxXg==" + }, + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" + }, + "content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "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==" + }, + "cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "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" + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "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" + } + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + }, + "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==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "ipaddr.js": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", + "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==" + }, + "kareem": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.1.tgz", + "integrity": "sha512-l3hLhffs9zqoDe8zjmb/mAN4B8VT3L56EUvKNqLFVs9YlFA+zx7ke1DO8STAdDyYNkeSo1nKmjuvQeI12So8Xw==" + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, + "memory-pager": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", + "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", + "optional": true + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.43.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz", + "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==" + }, + "mime-types": { + "version": "2.1.26", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz", + "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==", + "requires": { + "mime-db": "1.43.0" + } + }, + "mongodb": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.4.1.tgz", + "integrity": "sha512-juqt5/Z42J4DcE7tG7UdVaTKmUC6zinF4yioPfpeOSNBieWSK6qCY+0tfGQcHLKrauWPDdMZVROHJOa8q2pWsA==", + "requires": { + "bson": "^1.1.1", + "require_optional": "^1.0.1", + "safe-buffer": "^5.1.2", + "saslprep": "^1.0.0" + } + }, + "mongoose": { + "version": "5.8.7", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.8.7.tgz", + "integrity": "sha512-PCCuTrdxpUmO86L1geXWE+9AvJRFuneIrMUT2hB/LXZ+5HIGOIfE6OSMU7cd8wFU7JRINP9V73zZ9YsmAbt+Iw==", + "requires": { + "bson": "~1.1.1", + "kareem": "2.3.1", + "mongodb": "3.4.1", + "mongoose-legacy-pluralize": "1.0.2", + "mpath": "0.6.0", + "mquery": "3.2.2", + "ms": "2.1.2", + "regexp-clone": "1.0.0", + "safe-buffer": "5.1.2", + "sift": "7.0.1", + "sliced": "1.0.1" + }, + "dependencies": { + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "mongoose-legacy-pluralize": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz", + "integrity": "sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ==" + }, + "mpath": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.6.0.tgz", + "integrity": "sha512-i75qh79MJ5Xo/sbhxrDrPSEG0H/mr1kcZXJ8dH6URU5jD/knFxCVqVC/gVSW7GIXL/9hHWlT9haLbCXWOll3qw==" + }, + "mquery": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/mquery/-/mquery-3.2.2.tgz", + "integrity": "sha512-XB52992COp0KP230I3qloVUbkLUxJIu328HBP2t2EsxSFtf4W1HPSOBWOXf1bqxK4Xbb66lfMJ+Bpfd9/yZE1Q==", + "requires": { + "bluebird": "3.5.1", + "debug": "3.1.0", + "regexp-clone": "^1.0.0", + "safe-buffer": "5.1.2", + "sliced": "1.0.1" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + } + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "requires": { + "ee-first": "1.1.1" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "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=" + }, + "proxy-addr": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", + "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==", + "requires": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.0" + } + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" + }, + "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==" + }, + "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==", + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "regexp-clone": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-1.0.0.tgz", + "integrity": "sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw==" + }, + "require_optional": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz", + "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==", + "requires": { + "resolve-from": "^2.0.0", + "semver": "^5.1.0" + } + }, + "resolve-from": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", + "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=" + }, + "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==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "saslprep": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", + "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==", + "optional": true, + "requires": { + "sparse-bitfield": "^3.0.3" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "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": { + "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==" + } + } + }, + "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==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + } + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "sift": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/sift/-/sift-7.0.1.tgz", + "integrity": "sha512-oqD7PMJ+uO6jV9EQCl0LrRw1OwsiPsiFQR5AR30heR+4Dl7jBBbDLnNvWiak20tzZlSE1H7RB30SX/1j/YYT7g==" + }, + "sliced": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", + "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=" + }, + "sparse-bitfield": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", + "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=", + "optional": true, + "requires": { + "memory-pager": "^1.0.2" + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + } + } +} diff --git a/practice/group777/package.json b/practice/group777/package.json new file mode 100644 index 0000000..c6f8989 --- /dev/null +++ b/practice/group777/package.json @@ -0,0 +1,16 @@ +{ + "name": "group777", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "ISC", + "dependencies": { + "body-parser": "^1.19.0", + "express": "^4.17.1", + "mongoose": "^5.8.7" + } +} From 0fb78312f7e37c80ec55321dff3fc5397a354b3a Mon Sep 17 00:00:00 2001 From: Artur Kudaev Date: Fri, 17 Jan 2020 17:53:39 +0200 Subject: [PATCH 04/19] home work 08 - manager-task-api --- practice/group777/index.js | 187 +++++++++++++++------- practice/group777/models/task.js | 33 ++-- practice/group777/models/user.js | 34 ++-- practice/group777/package-lock.json | 91 +++++++++++ practice/group777/package.json | 4 +- practice/group777/public/form.html | 27 ++++ practice/group777/public/js/script.js | 107 +++++++++++++ practice/group777/views/index.hbs | 20 +++ practice/group777/views/partials/task.hbs | 9 ++ practice/group777/views/partials/user.hbs | 10 ++ 10 files changed, 435 insertions(+), 87 deletions(-) create mode 100644 practice/group777/public/form.html create mode 100644 practice/group777/public/js/script.js create mode 100644 practice/group777/views/index.hbs create mode 100644 practice/group777/views/partials/task.hbs create mode 100644 practice/group777/views/partials/user.hbs diff --git a/practice/group777/index.js b/practice/group777/index.js index e9cb092..f681a49 100644 --- a/practice/group777/index.js +++ b/practice/group777/index.js @@ -1,60 +1,127 @@ -const express = require('express'); -const app = express(); -const mongoose = require('mongoose'); -const Task = require('./models/task'); -const User = require('./models/user'); -const bodyParser = require("body-parser"); - -mongoose.connect('mongodb://localhost:27017/task-manager-api', {useNewUrlParser: true}); - -const jsonParser = bodyParser.json(); - -//Увеличиваю позволенный размер файла -app.use(bodyParser.json({limit: '50mb'})); -app.use(bodyParser.urlencoded({limit: '50mb', extended: true})); - - -// const user = new User({ -// name: 'Artur', -// age: 30 -// }); -// const task = new Task({ -// title: 'My first task', -// status: false -// }); -// user.save().then(user=>console.log(`Save: ${user}`)); -// task.save().then(task=>console.log(`Save: ${task}`)); - -app.get('/api', function (req, response) { - let users; - let tasks; - User.find() - .then(res=>{ - users = res; - return Task.find() - }) - .then(res=>{ - tasks = res; - const json = [ - { - users: users, - tasks: tasks, - } - ]; - response.send(json) - }) -}); - -app.post('/user', jsonParser, function (req, res) { - if(!req.body) return res.sendStatus(500); - const user = new User({ - name: req.body.userName, - age: req.body.age - }); - user.save().then(user=>console.log(`Save: ${user}`)); - res.sendStatus(200); -}); - -app.listen(3000, function () { - console.log('Example app listening on port 3000!'); -}); \ No newline at end of file +const express = require('express'); +const app = express(); +const mongoose = require('mongoose'); +const Task = require('./models/task'); +const User = require('./models/user'); +const bodyParser = require("body-parser"); +const path = require('path'); +const hbs = require("hbs"); + +mongoose.connect('mongodb://localhost:27017/task-manager-api', {useNewUrlParser: true}); + +const jsonParser = bodyParser.json(); + +app.use(express.static(path.join(__dirname, '/public'), {index: false})); + +//Увеличиваю позволенный размер файла +app.use(bodyParser.json({limit: '50mb'})); +app.use(bodyParser.urlencoded({limit: '50mb', extended: true})); + +app.set("view engine", "hbs"); +hbs.registerPartials(__dirname + "/views/partials"); + +app.get('/', async function (req, res) { + const users = await User.find(); + const tasks = await Task.find(); + res.render('index.hbs', { + tasks: tasks, + users: users + }); +}); + +app.get('/form', (req, res) => { + res.sendFile('form.html' , { root : __dirname+'/public'}); +}); + +app.get('/api', async function (req, res) { + const users = await User.find(); + const tasks = await Task.find(); + const json = [{ + users: users, + tasks: tasks, + } + ]; + res.send(json) +}); + +app.get('/user', async function (req, res) { + const users = await User.find(); + res.send(users) +}); + +app.get('/user/:id', async function (req, res) { + const user = await User.find({_id: req.params.id}); + res.send(user) +}); + +app.post('/user', jsonParser, function (req, res) { + if(!req.body) return res.sendStatus(500); + const user = new User({ + name: req.body.userName, + age: req.body.age + }); + console.log(user) + user.save() + .then(user=>{ + res.sendStatus(200); + console.log(`Save: ${user}`) + }) + .catch((e) => { + if(e.errors['age']) { + console.log(e.errors['age']); + res.sendStatus(525) + }else if(e.errors['name']) { + console.log(e.errors['name']); + res.sendStatus(526) + } + }) +}); + +app.post('/task', jsonParser, function (req, res) { + if(!req.body) return res.sendStatus(500); + const task = new Task({ + title: req.body.title, + status: req.body.status + }); + console.log(task); + task.save() + .then(task=>{ + console.log(`Save: ${task}`); + res.sendStatus(200) + }) + .catch((e) => { + if(e.errors['title']) { + console.log(e.errors['title']); + res.sendStatus(527) + } + }); + ; +}); + +app.get('/task/:id', async function (req, res) { + const task = await Task.find({_id: req.params.id}); + res.send(task) +}); + +app.delete('/del/:id', function (req, res) { + console.log(req.params.id); + User.deleteOne({_id: req.params.id}) + .then(del => { + console.log(del); + }) + .catch(() => { + res.sendStatus(500) + }); + Task.deleteOne({_id: req.params.id}) + .then(del => { + console.log(del); + }) + .catch(() => { + res.sendStatus(500) + }); + res.sendStatus(200); +}); + +app.listen(3000, function () { + console.log('Example app listening on port 3000!'); +}); diff --git a/practice/group777/models/task.js b/practice/group777/models/task.js index bf763ff..be8e976 100644 --- a/practice/group777/models/task.js +++ b/practice/group777/models/task.js @@ -1,13 +1,20 @@ -const mongoose = require('mongoose'); -const Schema = mongoose.Schema; - - -const taskScheme = new Schema({ - title: String, - status: Boolean -}); - -const Task = mongoose.model("Task", taskScheme); - - -module.exports = Task; \ No newline at end of file +const mongoose = require('mongoose'); +const Schema = mongoose.Schema; + + +const taskScheme = new Schema({ + title: { + type: String, + required: true, + minlength: 10 + }, + status: { + type: Boolean, + default: false + } +}); + +const Task = mongoose.model("Task", taskScheme); + + +module.exports = Task; diff --git a/practice/group777/models/user.js b/practice/group777/models/user.js index 79b41d7..00cab7f 100644 --- a/practice/group777/models/user.js +++ b/practice/group777/models/user.js @@ -1,13 +1,21 @@ -const mongoose = require('mongoose'); -const Schema = mongoose.Schema; - - -const userScheme = new Schema({ - name: String, - age: Number -}); - -const User = mongoose.model("User", userScheme); - - -module.exports = User; \ No newline at end of file +const mongoose = require('mongoose'); +const Schema = mongoose.Schema; + + +const userScheme = new Schema({ + name: { + type: String, + required: true, + minlength: 5 + }, + age: { + type: Number, + min: 1, + max: 150 + } +}); + +const User = mongoose.model("User", userScheme); + + +module.exports = User; diff --git a/practice/group777/package-lock.json b/practice/group777/package-lock.json index ac96fa5..ada28dd 100644 --- a/practice/group777/package-lock.json +++ b/practice/group777/package-lock.json @@ -50,6 +50,12 @@ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" }, + "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==", + "optional": true + }, "content-disposition": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", @@ -162,6 +168,11 @@ "unpipe": "~1.0.0" } }, + "foreachasync": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/foreachasync/-/foreachasync-3.0.0.tgz", + "integrity": "sha1-VQKYfchxS+M5IJfzLgBxyd7gfPY=" + }, "forwarded": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", @@ -172,6 +183,26 @@ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" }, + "handlebars": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.5.3.tgz", + "integrity": "sha512-3yPecJoJHK/4c6aZhSvxOyG4vJKDshV36VHp0iVCDVh7o9w2vwi3NSnL2MMPj3YdduqaBcu7cGbggJQM0br9xA==", + "requires": { + "neo-async": "^2.6.0", + "optimist": "^0.6.1", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4" + } + }, + "hbs": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hbs/-/hbs-4.1.0.tgz", + "integrity": "sha512-YDrUBtLpwRl0H5uyCGLE2LGtGJl51VvJFBj/D+Cqyr6XMopCvwXA0ynRpd87u6aVIYCeGYZHESfZzPHbNMkOPA==", + "requires": { + "handlebars": "4.5.3", + "walk": "2.3.14" + } + }, "http-errors": { "version": "1.7.2", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", @@ -246,6 +277,11 @@ "mime-db": "1.43.0" } }, + "minimist": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", + "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=" + }, "mongodb": { "version": "3.4.1", "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.4.1.tgz", @@ -287,6 +323,14 @@ "resolved": "https://registry.npmjs.org/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz", "integrity": "sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ==" }, + "mongoose-validator": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/mongoose-validator/-/mongoose-validator-0.2.2.tgz", + "integrity": "sha1-XjdvXjgJ9pyc3m8E4Pm7yQ5da/k=", + "requires": { + "validator": "~1.2.1" + } + }, "mpath": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.6.0.tgz", @@ -324,6 +368,11 @@ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" }, + "neo-async": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz", + "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==" + }, "on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", @@ -332,6 +381,15 @@ "ee-first": "1.1.1" } }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "requires": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + } + }, "parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -468,6 +526,11 @@ "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=" }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, "sparse-bitfield": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", @@ -496,6 +559,16 @@ "mime-types": "~2.1.24" } }, + "uglify-js": { + "version": "3.7.5", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.7.5.tgz", + "integrity": "sha512-GFZ3EXRptKGvb/C1Sq6nO1iI7AGcjyqmIyOw0DrD0675e+NNbGO72xmMM2iEBdFbxaTLo70NbjM/Wy54uZIlsg==", + "optional": true, + "requires": { + "commander": "~2.20.3", + "source-map": "~0.6.1" + } + }, "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", @@ -506,10 +579,28 @@ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" }, + "validator": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/validator/-/validator-1.2.2.tgz", + "integrity": "sha1-Kj3swhgG4Vjbl51E5ITUO6MAoWQ=" + }, "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "walk": { + "version": "2.3.14", + "resolved": "https://registry.npmjs.org/walk/-/walk-2.3.14.tgz", + "integrity": "sha512-5skcWAUmySj6hkBdH6B6+3ddMjVQYH5Qy9QGbPmN8kVmLteXk+yVXg+yfk1nbX30EYakahLrr8iPcCxJQSCBeg==", + "requires": { + "foreachasync": "^3.0.0" + } + }, + "wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=" } } } diff --git a/practice/group777/package.json b/practice/group777/package.json index c6f8989..38c6c57 100644 --- a/practice/group777/package.json +++ b/practice/group777/package.json @@ -11,6 +11,8 @@ "dependencies": { "body-parser": "^1.19.0", "express": "^4.17.1", - "mongoose": "^5.8.7" + "hbs": "^4.1.0", + "mongoose": "^5.8.7", + "mongoose-validator": "^0.2.2" } } diff --git a/practice/group777/public/form.html b/practice/group777/public/form.html new file mode 100644 index 0000000..b9cb571 --- /dev/null +++ b/practice/group777/public/form.html @@ -0,0 +1,27 @@ + + + + Форма + + + + + + Главная +
    +

    Доавить пользователя

    +
    + + + +
    +
      +

      Доавить пользователя

      +
      + + +
      +
        + + + diff --git a/practice/group777/public/js/script.js b/practice/group777/public/js/script.js new file mode 100644 index 0000000..73e5f60 --- /dev/null +++ b/practice/group777/public/js/script.js @@ -0,0 +1,107 @@ +try { + const send = document.getElementById('send'); + const form = document.getElementById('form'); + + send.addEventListener('click', function (e) { + e.preventDefault(); + const inputName = document.getElementsByName('userName')[0]; + const inputAge = document.getElementsByName('age')[0]; + if(inputName.value == '' || inputAge.value == '') return; + const data = { + userName: inputName.value, + age: inputAge.value + }; + fetch('/user', { + method: 'post', + body: JSON.stringify(data), + headers: { + 'Content-Type': 'application/json' + } + }).then((res) => { + console.log(JSON.stringify(data), 'send..'); + let error = document.createElement('div'); + error.style.color = 'red'; + if(res.status == 525) { + error.innerText = 'мин - 1, макс - 150 для возраста'; + form.appendChild(error); + setTimeout(()=>error.remove(), 1000); + return; + }else if(res.status == 526) { + error.innerText = 'Имя должно быть больше 5 символов'; + form.appendChild(error); + setTimeout(()=>error.remove(), 1000); + return; + }else { + const list = document.getElementById('list'); + let li = document.createElement('li'); + li.innerText = data.userName; + list.appendChild(li); + form.reset(); + } + }) + }); + +}catch (e) { + console.log(e) +} + +try { + const send = document.getElementById('send2'); + const form = document.getElementById('form2'); + + send.addEventListener('click', function (e) { + e.preventDefault(); + const inputTitle = document.getElementsByName('title')[0]; + if(inputTitle.value == '') return; + const data = { + title: inputTitle.value + }; + fetch('/task', { + method: 'post', + body: JSON.stringify(data), + headers: { + 'Content-Type': 'application/json' + } + }).then((res) => { + console.log(JSON.stringify(data), 'send..'); + let error = document.createElement('div'); + error.style.color = 'red'; + if(res.status == 527) { + error.innerText = 'Минимум 10 символов'; + form.appendChild(error); + setTimeout(()=>error.remove(), 1000); + return; + }else { + const list = document.getElementById('list2'); + let li = document.createElement('li'); + li.innerText = data.title; + list.appendChild(li); + form.reset(); + } + }) + }); + +}catch (e) { + console.log(e) +} + +try { + let btn = document.querySelectorAll('.item'); + btn.forEach(el=> { + el.addEventListener('click', function (e) { + const tag = e.target; + if(tag.classList.contains('del')) { + const element = tag.parentNode; + const id = element.getAttribute('data-id'); + fetch(`/del/${id}`, { + method: 'DELETE' + }).then(() => { + element.remove(); + console.log('del..', id) + }) + } + }) + }); +}catch (e) { + console.log(e) +} diff --git a/practice/group777/views/index.hbs b/practice/group777/views/index.hbs new file mode 100644 index 0000000..cad9bce --- /dev/null +++ b/practice/group777/views/index.hbs @@ -0,0 +1,20 @@ + + + + Главная + + + + + +Форма +
        +

        Список пользователей

        +{{>user}} +

        Список задач

        +{{>task}} + + + + + diff --git a/practice/group777/views/partials/task.hbs b/practice/group777/views/partials/task.hbs new file mode 100644 index 0000000..8450140 --- /dev/null +++ b/practice/group777/views/partials/task.hbs @@ -0,0 +1,9 @@ +{{#tasks}} +
        +
        + Имя: {{title}} + ---- +
        +
        +{{/tasks}} +
        diff --git a/practice/group777/views/partials/user.hbs b/practice/group777/views/partials/user.hbs new file mode 100644 index 0000000..491cfc7 --- /dev/null +++ b/practice/group777/views/partials/user.hbs @@ -0,0 +1,10 @@ +{{#users}} +
        +
        + Имя: {{name}} | + Возраст: {{age}} + ---- +
        +
        +{{/users}} +
        From cb943d2d4f5f104a64bb8d90ddacf8b61775f740 Mon Sep 17 00:00:00 2001 From: Artur Kudaev Date: Wed, 22 Jan 2020 18:00:59 +0200 Subject: [PATCH 05/19] gitignore remove dir .idea --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 6f81168..60eac28 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ node_modules build npm-debug.log .env -.DS_Store \ No newline at end of file +.DS_Store +.idea From d51426a1a9eaaf0d8bfc085d77e268537556f071 Mon Sep 17 00:00:00 2001 From: Artur Kudaev Date: Thu, 23 Jan 2020 17:58:52 +0200 Subject: [PATCH 06/19] save --- practice/group777/config.js | 6 + practice/group777/index.js | 135 +++------------------- practice/group777/mangoose/index.js | 3 + practice/group777/midlleware/auth.js | 0 practice/group777/models/user.js | 51 +++++++- practice/group777/package-lock.json | 18 ++- practice/group777/package.json | 4 +- practice/group777/public/form.html | 2 + practice/group777/public/js/script.js | 95 +++++++++++---- practice/group777/public/login.html | 19 +++ practice/group777/routers/api.js | 17 +++ practice/group777/routers/delete.js | 25 ++++ practice/group777/routers/form.js | 8 ++ practice/group777/routers/login.js | 22 ++++ practice/group777/routers/start.js | 15 +++ practice/group777/routers/task.js | 30 +++++ practice/group777/routers/user.js | 35 ++++++ practice/group777/views/index.hbs | 1 + practice/group777/views/partials/user.hbs | 3 +- 19 files changed, 342 insertions(+), 147 deletions(-) create mode 100644 practice/group777/config.js create mode 100644 practice/group777/mangoose/index.js create mode 100644 practice/group777/midlleware/auth.js create mode 100644 practice/group777/public/login.html create mode 100644 practice/group777/routers/api.js create mode 100644 practice/group777/routers/delete.js create mode 100644 practice/group777/routers/form.js create mode 100644 practice/group777/routers/login.js create mode 100644 practice/group777/routers/start.js create mode 100644 practice/group777/routers/task.js create mode 100644 practice/group777/routers/user.js diff --git a/practice/group777/config.js b/practice/group777/config.js new file mode 100644 index 0000000..24ec483 --- /dev/null +++ b/practice/group777/config.js @@ -0,0 +1,6 @@ +const config = { + port: process.env.PORT || 3000, + secret: 'awjkh34oujklw3dkjh' +}; + +module.exports = config; diff --git a/practice/group777/index.js b/practice/group777/index.js index f681a49..6686c37 100644 --- a/practice/group777/index.js +++ b/practice/group777/index.js @@ -1,127 +1,28 @@ const express = require('express'); const app = express(); -const mongoose = require('mongoose'); -const Task = require('./models/task'); -const User = require('./models/user'); -const bodyParser = require("body-parser"); const path = require('path'); const hbs = require("hbs"); - -mongoose.connect('mongodb://localhost:27017/task-manager-api', {useNewUrlParser: true}); - -const jsonParser = bodyParser.json(); +const userRouter = require('./routers/user'); +const taskRouter = require('./routers/task'); +const deleteRouter = require('./routers/delete'); +const apiRouter = require('./routers/api'); +const formRouter = require('./routers/form'); +const startRouter = require('./routers/start'); +const loginRouter = require('./routers/login'); +const {port} = require('./config'); +require('./mangoose'); app.use(express.static(path.join(__dirname, '/public'), {index: false})); - -//Увеличиваю позволенный размер файла -app.use(bodyParser.json({limit: '50mb'})); -app.use(bodyParser.urlencoded({limit: '50mb', extended: true})); - +app.use(express.json()); app.set("view engine", "hbs"); hbs.registerPartials(__dirname + "/views/partials"); -app.get('/', async function (req, res) { - const users = await User.find(); - const tasks = await Task.find(); - res.render('index.hbs', { - tasks: tasks, - users: users - }); -}); - -app.get('/form', (req, res) => { - res.sendFile('form.html' , { root : __dirname+'/public'}); -}); - -app.get('/api', async function (req, res) { - const users = await User.find(); - const tasks = await Task.find(); - const json = [{ - users: users, - tasks: tasks, - } - ]; - res.send(json) -}); - -app.get('/user', async function (req, res) { - const users = await User.find(); - res.send(users) -}); - -app.get('/user/:id', async function (req, res) { - const user = await User.find({_id: req.params.id}); - res.send(user) -}); - -app.post('/user', jsonParser, function (req, res) { - if(!req.body) return res.sendStatus(500); - const user = new User({ - name: req.body.userName, - age: req.body.age - }); - console.log(user) - user.save() - .then(user=>{ - res.sendStatus(200); - console.log(`Save: ${user}`) - }) - .catch((e) => { - if(e.errors['age']) { - console.log(e.errors['age']); - res.sendStatus(525) - }else if(e.errors['name']) { - console.log(e.errors['name']); - res.sendStatus(526) - } - }) -}); - -app.post('/task', jsonParser, function (req, res) { - if(!req.body) return res.sendStatus(500); - const task = new Task({ - title: req.body.title, - status: req.body.status - }); - console.log(task); - task.save() - .then(task=>{ - console.log(`Save: ${task}`); - res.sendStatus(200) - }) - .catch((e) => { - if(e.errors['title']) { - console.log(e.errors['title']); - res.sendStatus(527) - } - }); - ; -}); - -app.get('/task/:id', async function (req, res) { - const task = await Task.find({_id: req.params.id}); - res.send(task) -}); - -app.delete('/del/:id', function (req, res) { - console.log(req.params.id); - User.deleteOne({_id: req.params.id}) - .then(del => { - console.log(del); - }) - .catch(() => { - res.sendStatus(500) - }); - Task.deleteOne({_id: req.params.id}) - .then(del => { - console.log(del); - }) - .catch(() => { - res.sendStatus(500) - }); - res.sendStatus(200); -}); +app.use(userRouter); +app.use(taskRouter); +app.use(deleteRouter); +app.use(formRouter); +app.use(apiRouter); +app.use(startRouter); +app.use(loginRouter); -app.listen(3000, function () { - console.log('Example app listening on port 3000!'); -}); +app.listen(port, () => console.log(`Start listening on port ${port}!`)); diff --git a/practice/group777/mangoose/index.js b/practice/group777/mangoose/index.js new file mode 100644 index 0000000..6d4f0ff --- /dev/null +++ b/practice/group777/mangoose/index.js @@ -0,0 +1,3 @@ +const mongoose = require('mongoose'); + +mongoose.connect('mongodb://localhost:27017/task-manager-api', {useNewUrlParser: true, useCreateIndex: true}); diff --git a/practice/group777/midlleware/auth.js b/practice/group777/midlleware/auth.js new file mode 100644 index 0000000..e69de29 diff --git a/practice/group777/models/user.js b/practice/group777/models/user.js index 00cab7f..6f471e0 100644 --- a/practice/group777/models/user.js +++ b/practice/group777/models/user.js @@ -1,6 +1,8 @@ const mongoose = require('mongoose'); const Schema = mongoose.Schema; - +const validator = require('validator'); +const bcrypt = require('bcryptjs'); +const config = require('./../config') const userScheme = new Schema({ name: { @@ -12,9 +14,54 @@ const userScheme = new Schema({ type: Number, min: 1, max: 150 - } + }, + email: { + type: String, + required: true, + trim: true, + lowercase: true, + unique: true, + validate(value) { + if (!validator.isEmail(value)) { + throw new Error('Email is invalid') + } + } + }, + password: { + type: String, + required: true, + minlength: 7, + trim: true + }, + tokens: [{ + token: { + type: String, + required: true + } + }] + +}); + +userScheme.pre('save', async function f(next) { + const user = this; + user.password = await bcrypt.hash(user.password, 8); + next(); }); +userScheme.methods.findSimilarTypes = function() { + return [1,2,3,4,5]; +};; + +userScheme.methods.generateAuthToken = async function() { + const user = this; + const token = jwt.sign({ _id: user._id.toString() }, config.secret); + + user.tokens = user.tokens.concat({ token }); + await user.save(); + + return token; +}; + const User = mongoose.model("User", userScheme); diff --git a/practice/group777/package-lock.json b/practice/group777/package-lock.json index ada28dd..b74ee51 100644 --- a/practice/group777/package-lock.json +++ b/practice/group777/package-lock.json @@ -18,6 +18,11 @@ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, + "bcryptjs": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", + "integrity": "sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms=" + }, "bluebird": { "version": "3.5.1", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", @@ -329,6 +334,13 @@ "integrity": "sha1-XjdvXjgJ9pyc3m8E4Pm7yQ5da/k=", "requires": { "validator": "~1.2.1" + }, + "dependencies": { + "validator": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/validator/-/validator-1.2.2.tgz", + "integrity": "sha1-Kj3swhgG4Vjbl51E5ITUO6MAoWQ=" + } } }, "mpath": { @@ -580,9 +592,9 @@ "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" }, "validator": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/validator/-/validator-1.2.2.tgz", - "integrity": "sha1-Kj3swhgG4Vjbl51E5ITUO6MAoWQ=" + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-12.1.0.tgz", + "integrity": "sha512-gIC2RBuFRi574Rb9vewGCJ7TCLxHXNx6EKthEgs+Iz0pYa9a9Te1VLG/bGLsAyGWrqR5FfR7tbFUI7FEF2LiGA==" }, "vary": { "version": "1.1.2", diff --git a/practice/group777/package.json b/practice/group777/package.json index 38c6c57..829cb4e 100644 --- a/practice/group777/package.json +++ b/practice/group777/package.json @@ -9,10 +9,12 @@ "author": "", "license": "ISC", "dependencies": { + "bcryptjs": "^2.4.3", "body-parser": "^1.19.0", "express": "^4.17.1", "hbs": "^4.1.0", "mongoose": "^5.8.7", - "mongoose-validator": "^0.2.2" + "mongoose-validator": "^0.2.2", + "validator": "^12.1.0" } } diff --git a/practice/group777/public/form.html b/practice/group777/public/form.html index b9cb571..b156f6c 100644 --- a/practice/group777/public/form.html +++ b/practice/group777/public/form.html @@ -13,6 +13,8 @@

        Доавить пользователя

        + +
          diff --git a/practice/group777/public/js/script.js b/practice/group777/public/js/script.js index 73e5f60..7db274b 100644 --- a/practice/group777/public/js/script.js +++ b/practice/group777/public/js/script.js @@ -6,10 +6,14 @@ try { e.preventDefault(); const inputName = document.getElementsByName('userName')[0]; const inputAge = document.getElementsByName('age')[0]; - if(inputName.value == '' || inputAge.value == '') return; + const inputEmail = document.getElementsByName('email')[0]; + const inputPassword = document.getElementsByName('password')[0]; + if(inputName.value == '' || inputAge.value == '' || inputEmail.value == '' || inputPassword.value == '') return; const data = { userName: inputName.value, - age: inputAge.value + age: inputAge.value, + email: inputEmail.value, + password: inputPassword.value }; fetch('/user', { method: 'post', @@ -17,28 +21,33 @@ try { headers: { 'Content-Type': 'application/json' } - }).then((res) => { - console.log(JSON.stringify(data), 'send..'); - let error = document.createElement('div'); - error.style.color = 'red'; - if(res.status == 525) { - error.innerText = 'мин - 1, макс - 150 для возраста'; - form.appendChild(error); - setTimeout(()=>error.remove(), 1000); - return; - }else if(res.status == 526) { - error.innerText = 'Имя должно быть больше 5 символов'; - form.appendChild(error); - setTimeout(()=>error.remove(), 1000); - return; - }else { - const list = document.getElementById('list'); - let li = document.createElement('li'); - li.innerText = data.userName; - list.appendChild(li); - form.reset(); - } }) + .then(res => { + console.log(JSON.stringify(data), 'send------', res); + }) + .catch(e => console.log(e, 'Err--------')) + // .then((res) => { + // console.log(JSON.stringify(data), 'send..'); + // let error = document.createElement('div'); + // error.style.color = 'red'; + // if(res.status == 525) { + // error.innerText = 'мин - 1, макс - 150 для возраста'; + // form.appendChild(error); + // setTimeout(()=>error.remove(), 1000); + // return; + // }else if(res.status == 526) { + // error.innerText = 'Имя должно быть больше 5 символов'; + // form.appendChild(error); + // setTimeout(()=>error.remove(), 1000); + // return; + // }else { + // const list = document.getElementById('list'); + // let li = document.createElement('li'); + // li.innerText = data.userName; + // list.appendChild(li); + // form.reset(); + // } + // }) }); }catch (e) { @@ -105,3 +114,43 @@ try { }catch (e) { console.log(e) } + + +try { + const form = document.getElementById('auth'); + const send = document.getElementById('login'); + const email = document.getElementsByName('email')[0]; + const password = document.getElementsByName('password')[0]; + + const validateEmail = (email) => /\S+@\S+\.\S+/.test(email); + + send.addEventListener('click', function (e) { + + e.preventDefault(); + + if(!validateEmail(email.value)) return; + if(password.value.length < 8) return; + + const data = { + email: email.value, + password: password.value + }; + + fetch('/login', { + method: 'post', + body: JSON.stringify(data), + headers: { + 'Content-Type': 'application/json' + } + }).then((res) => { + console.log(JSON.stringify(data), res) + if(res.redirected) { + location.href = '/form' + } + }); + + }) + +}catch (e) { + console.log(e) +} diff --git a/practice/group777/public/login.html b/practice/group777/public/login.html new file mode 100644 index 0000000..fac7a6e --- /dev/null +++ b/practice/group777/public/login.html @@ -0,0 +1,19 @@ + + + + Форма + + + + + +Главная +
          +
          + + + +
          + + + diff --git a/practice/group777/routers/api.js b/practice/group777/routers/api.js new file mode 100644 index 0000000..c42ea95 --- /dev/null +++ b/practice/group777/routers/api.js @@ -0,0 +1,17 @@ +const express = require('express'); +const router = express.Router(); +const User = require('./../models/user'); +const Task = require('./../models/task'); + +router.get('/api', async function (req, res) { + const users = await User.find(); + const tasks = await Task.find(); + const json = [{ + users: users, + tasks: tasks, + } + ]; + res.send(json) +}); + +module.exports = router; diff --git a/practice/group777/routers/delete.js b/practice/group777/routers/delete.js new file mode 100644 index 0000000..bf541bd --- /dev/null +++ b/practice/group777/routers/delete.js @@ -0,0 +1,25 @@ +const express = require('express'); +const router = express.Router(); +const User = require('./../models/user'); +const Task = require('./../models/task'); + +router.delete('/del/:id', function (req, res) { + console.log(req.params.id); + User.deleteOne({_id: req.params.id}) + .then(del => { + console.log(del); + }) + .catch(() => { + res.sendStatus(500) + }); + Task.deleteOne({_id: req.params.id}) + .then(del => { + console.log(del); + }) + .catch(() => { + res.sendStatus(500) + }); + res.sendStatus(200); +}); + +module.exports = router; diff --git a/practice/group777/routers/form.js b/practice/group777/routers/form.js new file mode 100644 index 0000000..8fcb068 --- /dev/null +++ b/practice/group777/routers/form.js @@ -0,0 +1,8 @@ +const express = require('express'); +const router = express.Router(); + +router.get('/form', (req, res) => { + res.sendFile('form.html' , { root : __dirname+'/../public'}); +}); + +module.exports = router; diff --git a/practice/group777/routers/login.js b/practice/group777/routers/login.js new file mode 100644 index 0000000..862d80c --- /dev/null +++ b/practice/group777/routers/login.js @@ -0,0 +1,22 @@ +const express = require('express'); +const router = express.Router(); +const User = require('./../models/user'); +const bcrypt = require('bcryptjs'); + +router.get('/login', function (req, res) { + res.sendFile('login.html' , { root : __dirname+'/../public'}); +}); + +router.post('/login', async function (req, res) { + if(!req.body) return res.sendStatus(500); + console.log(req.body) + const user = await User.find({email: req.body.email}); + if(user.length > 0) { + const isMatch = await bcrypt.compare(req.body.password, user[0].password); + isMatch ? res.redirect(301, '/form') : res.status(401).send({ error: 'Please authenticate.' }); + }else { + res.status(401).send({ error: 'No find user' }); + } +}); + +module.exports = router; diff --git a/practice/group777/routers/start.js b/practice/group777/routers/start.js new file mode 100644 index 0000000..9ed1ba2 --- /dev/null +++ b/practice/group777/routers/start.js @@ -0,0 +1,15 @@ +const express = require('express'); +const router = express.Router(); +const User = require('./../models/user'); +const Task = require('./../models/task'); + +router.get('/', async function (req, res) { + const users = await User.find(); + const tasks = await Task.find(); + res.render('index.hbs', { + tasks: tasks, + users: users + }); +}); + +module.exports = router; diff --git a/practice/group777/routers/task.js b/practice/group777/routers/task.js new file mode 100644 index 0000000..e996c6d --- /dev/null +++ b/practice/group777/routers/task.js @@ -0,0 +1,30 @@ +const express = require('express'); +const router = express.Router(); +const Task = require('./../models/task'); + +router.post('/task', function (req, res) { + if(!req.body) return res.sendStatus(500); + const task = new Task({ + title: req.body.title, + status: req.body.status + }); + console.log(task); + task.save() + .then(task=>{ + console.log(`Save: ${task}`); + res.sendStatus(200) + }) + .catch((e) => { + if(e.errors['title']) { + console.log(e.errors['title']); + res.sendStatus(527) + } + }); +}); + +router.get('/task/:id', async function (req, res) { + const task = await Task.find({_id: req.params.id}); + res.send(task) +}); + +module.exports = router; diff --git a/practice/group777/routers/user.js b/practice/group777/routers/user.js new file mode 100644 index 0000000..89e0c01 --- /dev/null +++ b/practice/group777/routers/user.js @@ -0,0 +1,35 @@ +const express = require('express'); +const router = express.Router(); +const User = require('./../models/user'); + +router.get('/user', async function (req, res) { + const users = await User.find(); + res.send(users) +}); + +router.get('/user/:id', async function (req, res) { + const user = await User.find({_id: req.params.id}); + res.send(user) +}); + +router.post('/user', function (req, res) { + if(!req.body) return res.sendStatus(500); + const user = new User({ + name: req.body.userName, + age: req.body.age, + email: req.body.email, + password: req.body.password + }); + console.log('body:', user); + user.save() + .then(user=>{ + res.sendStatus(200); + console.log(`Save: ${user}`); + }) + .catch((e) => { + console.log(e.errmsg); + res.status(501).send([{error: e.errmsg}]); + }) +}); + +module.exports = router; diff --git a/practice/group777/views/index.hbs b/practice/group777/views/index.hbs index cad9bce..a42e338 100644 --- a/practice/group777/views/index.hbs +++ b/practice/group777/views/index.hbs @@ -8,6 +8,7 @@ Форма +Авторизация

          Список пользователей

          {{>user}} diff --git a/practice/group777/views/partials/user.hbs b/practice/group777/views/partials/user.hbs index 491cfc7..74801a4 100644 --- a/practice/group777/views/partials/user.hbs +++ b/practice/group777/views/partials/user.hbs @@ -2,7 +2,8 @@
          Имя: {{name}} | - Возраст: {{age}} + Возраст: {{age}} | + Email: ----
          From f856dbf2f8497fb75aed129c038a79182f8a4b9a Mon Sep 17 00:00:00 2001 From: xxx44552 Date: Thu, 23 Jan 2020 23:20:56 +0200 Subject: [PATCH 07/19] save --- practice/group777/index.js | 1 + practice/group777/models/task.js | 4 ++ practice/group777/models/user.js | 19 +++--- practice/group777/package-lock.json | 91 +++++++++++++++++++++++++++++ practice/group777/package.json | 1 + practice/group777/routers/login.js | 15 ++--- 6 files changed, 115 insertions(+), 16 deletions(-) diff --git a/practice/group777/index.js b/practice/group777/index.js index 6686c37..9318d3e 100644 --- a/practice/group777/index.js +++ b/practice/group777/index.js @@ -10,6 +10,7 @@ const formRouter = require('./routers/form'); const startRouter = require('./routers/start'); const loginRouter = require('./routers/login'); const {port} = require('./config'); +const jwt = require('jsonwebtoken'); require('./mangoose'); app.use(express.static(path.join(__dirname, '/public'), {index: false})); diff --git a/practice/group777/models/task.js b/practice/group777/models/task.js index be8e976..6194fe3 100644 --- a/practice/group777/models/task.js +++ b/practice/group777/models/task.js @@ -11,6 +11,10 @@ const taskScheme = new Schema({ status: { type: Boolean, default: false + }, + owner: { + type: mongoose.Schema.Types.ObjectId, + required: true } }); diff --git a/practice/group777/models/user.js b/practice/group777/models/user.js index 6f471e0..a08df64 100644 --- a/practice/group777/models/user.js +++ b/practice/group777/models/user.js @@ -2,7 +2,8 @@ const mongoose = require('mongoose'); const Schema = mongoose.Schema; const validator = require('validator'); const bcrypt = require('bcryptjs'); -const config = require('./../config') +const config = require('./../config'); +const jwt = require('jsonwebtoken'); const userScheme = new Schema({ name: { @@ -42,15 +43,7 @@ const userScheme = new Schema({ }); -userScheme.pre('save', async function f(next) { - const user = this; - user.password = await bcrypt.hash(user.password, 8); - next(); -}); -userScheme.methods.findSimilarTypes = function() { - return [1,2,3,4,5]; -};; userScheme.methods.generateAuthToken = async function() { const user = this; @@ -62,6 +55,14 @@ userScheme.methods.generateAuthToken = async function() { return token; }; +userScheme.pre('save', async function (next) { + const user = this; + if (user.isModified('password')) { + user.password = await bcrypt.hash(user.password, 8) + } + next(); +}); + const User = mongoose.model("User", userScheme); diff --git a/practice/group777/package-lock.json b/practice/group777/package-lock.json index b74ee51..4d63bda 100644 --- a/practice/group777/package-lock.json +++ b/practice/group777/package-lock.json @@ -50,6 +50,11 @@ "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.3.tgz", "integrity": "sha512-TdiJxMVnodVS7r0BdL42y/pqC9cL2iKynVwA0Ho3qbsQYr428veL3l7BQyuqiw+Q5SqqoT0m4srSY/BlZ9AxXg==" }, + "buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" + }, "bytes": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", @@ -102,6 +107,14 @@ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" }, + "ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -238,11 +251,89 @@ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==" }, + "jsonwebtoken": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", + "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", + "requires": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^5.6.0" + }, + "dependencies": { + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "requires": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "requires": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, "kareem": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.1.tgz", "integrity": "sha512-l3hLhffs9zqoDe8zjmb/mAN4B8VT3L56EUvKNqLFVs9YlFA+zx7ke1DO8STAdDyYNkeSo1nKmjuvQeI12So8Xw==" }, + "lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=" + }, + "lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=" + }, + "lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=" + }, + "lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=" + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" + }, + "lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" + }, + "lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" + }, "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", diff --git a/practice/group777/package.json b/practice/group777/package.json index 829cb4e..b7c3b8e 100644 --- a/practice/group777/package.json +++ b/practice/group777/package.json @@ -13,6 +13,7 @@ "body-parser": "^1.19.0", "express": "^4.17.1", "hbs": "^4.1.0", + "jsonwebtoken": "^8.5.1", "mongoose": "^5.8.7", "mongoose-validator": "^0.2.2", "validator": "^12.1.0" diff --git a/practice/group777/routers/login.js b/practice/group777/routers/login.js index 862d80c..ca87869 100644 --- a/practice/group777/routers/login.js +++ b/practice/group777/routers/login.js @@ -10,13 +10,14 @@ router.get('/login', function (req, res) { router.post('/login', async function (req, res) { if(!req.body) return res.sendStatus(500); console.log(req.body) - const user = await User.find({email: req.body.email}); - if(user.length > 0) { - const isMatch = await bcrypt.compare(req.body.password, user[0].password); - isMatch ? res.redirect(301, '/form') : res.status(401).send({ error: 'Please authenticate.' }); - }else { - res.status(401).send({ error: 'No find user' }); - } + const user = await User.findOne({email: req.body.email}); + console.log(user) + const isMatch = await bcrypt.compare(req.body.password, user.password); + console.log(isMatch, '++++++++') + const token = await user.generateAuthToken(); + console.log(token, '----------'); + isMatch ? res.redirect(301, '/form') : res.status(401).send({ error: 'Please authenticate.' }); + //res.status(401).send({ error: 'No find user' }); }); module.exports = router; From 55f012dde22ba3dc4dd471c09aa8f5f25f5ebe2e Mon Sep 17 00:00:00 2001 From: Artur Kudaev Date: Fri, 24 Jan 2020 18:57:25 +0200 Subject: [PATCH 08/19] save --- practice/group777/dir.js | 11 +++++++++++ practice/group777/midlleware/auth.js | 23 +++++++++++++++++++++++ practice/group777/models/user.js | 4 ---- practice/group777/public/js/script.js | 14 +++++++++----- practice/group777/root/test.js | 0 practice/group777/routers/login.js | 7 ++++++- practice/group777/routers/start.js | 4 +++- practice/group777/views/index.hbs | 14 ++++++++++++++ 8 files changed, 66 insertions(+), 11 deletions(-) create mode 100644 practice/group777/dir.js create mode 100644 practice/group777/root/test.js diff --git a/practice/group777/dir.js b/practice/group777/dir.js new file mode 100644 index 0000000..60e67eb --- /dev/null +++ b/practice/group777/dir.js @@ -0,0 +1,11 @@ +const fs = require('fs'); + +const root = __dirname + '/root'; + +function readDir(dir) { + fs.readdir(dir, function (err, items) { + console.log(items) + }) +} + +readDir(root); diff --git a/practice/group777/midlleware/auth.js b/practice/group777/midlleware/auth.js index e69de29..7fe8944 100644 --- a/practice/group777/midlleware/auth.js +++ b/practice/group777/midlleware/auth.js @@ -0,0 +1,23 @@ +const jwt = require('jsonwebtoken'); +const User = require('../models/user'); +const config = require('./../config'); + +const auth = async(req, res, next) => { + try { + const token = req.header('Authorization').replace('Bearer ', ''); + const decoded = jwt.verify(token, config.secret); + const user = await User.findOne({ _id: decoded._id, 'tokens.token': token }); + + if (!user) { + throw new Error() + } + + req.user = user; + next() + } catch (e) { + res.status(401).send({ error: 'Please authenticate.' }) + //next() + } +} + +module.exports = auth; diff --git a/practice/group777/models/user.js b/practice/group777/models/user.js index a08df64..1f91fe3 100644 --- a/practice/group777/models/user.js +++ b/practice/group777/models/user.js @@ -40,11 +40,8 @@ const userScheme = new Schema({ required: true } }] - }); - - userScheme.methods.generateAuthToken = async function() { const user = this; const token = jwt.sign({ _id: user._id.toString() }, config.secret); @@ -65,5 +62,4 @@ userScheme.pre('save', async function (next) { const User = mongoose.model("User", userScheme); - module.exports = User; diff --git a/practice/group777/public/js/script.js b/practice/group777/public/js/script.js index 7db274b..b44541c 100644 --- a/practice/group777/public/js/script.js +++ b/practice/group777/public/js/script.js @@ -142,11 +142,15 @@ try { headers: { 'Content-Type': 'application/json' } - }).then((res) => { - console.log(JSON.stringify(data), res) - if(res.redirected) { - location.href = '/form' - } + }).then( (res) => { + console.log(JSON.stringify(data), res); + + res.json().then(function(data) { + data.token ? localStorage.setItem('tokenManagerAPI', data.token) : null; + if(data.redirect) { + location.href = data.redirectUrl + } + }); }); }) diff --git a/practice/group777/root/test.js b/practice/group777/root/test.js new file mode 100644 index 0000000..e69de29 diff --git a/practice/group777/routers/login.js b/practice/group777/routers/login.js index ca87869..f156330 100644 --- a/practice/group777/routers/login.js +++ b/practice/group777/routers/login.js @@ -16,7 +16,12 @@ router.post('/login', async function (req, res) { console.log(isMatch, '++++++++') const token = await user.generateAuthToken(); console.log(token, '----------'); - isMatch ? res.redirect(301, '/form') : res.status(401).send({ error: 'Please authenticate.' }); + const data = { + token, + redirect: true, + redirectUrl: '/form' + }; + isMatch ? res.send(data) : res.status(401).send({ error: 'Please authenticate.' }); //res.status(401).send({ error: 'No find user' }); }); diff --git a/practice/group777/routers/start.js b/practice/group777/routers/start.js index 9ed1ba2..11bd8d4 100644 --- a/practice/group777/routers/start.js +++ b/practice/group777/routers/start.js @@ -2,10 +2,12 @@ const express = require('express'); const router = express.Router(); const User = require('./../models/user'); const Task = require('./../models/task'); +const auth = require('./../midlleware/auth') -router.get('/', async function (req, res) { +router.get('/', auth, async function (req, res) { const users = await User.find(); const tasks = await Task.find(); + console.log(req.user, '***') res.render('index.hbs', { tasks: tasks, users: users diff --git a/practice/group777/views/index.hbs b/practice/group777/views/index.hbs index a42e338..8edaebb 100644 --- a/practice/group777/views/index.hbs +++ b/practice/group777/views/index.hbs @@ -5,6 +5,20 @@ + Форма From 77ecd50466999974432d378a81c00f5aab06fffc Mon Sep 17 00:00:00 2001 From: xxx44552 Date: Sun, 26 Jan 2020 17:35:20 +0200 Subject: [PATCH 09/19] save --- practice/group777/midlleware/auth.js | 3 +-- practice/group777/public/index.html | 13 +++++++++++++ practice/group777/public/js/api.js | 21 +++++++++++++++++++++ practice/group777/routers/api.js | 1 + practice/group777/routers/login.js | 4 ---- practice/group777/routers/start.js | 15 ++++++++------- practice/group777/views/index.hbs | 14 -------------- 7 files changed, 44 insertions(+), 27 deletions(-) create mode 100644 practice/group777/public/index.html create mode 100644 practice/group777/public/js/api.js diff --git a/practice/group777/midlleware/auth.js b/practice/group777/midlleware/auth.js index 7fe8944..8eb18d0 100644 --- a/practice/group777/midlleware/auth.js +++ b/practice/group777/midlleware/auth.js @@ -16,8 +16,7 @@ const auth = async(req, res, next) => { next() } catch (e) { res.status(401).send({ error: 'Please authenticate.' }) - //next() } -} +}; module.exports = auth; diff --git a/practice/group777/public/index.html b/practice/group777/public/index.html new file mode 100644 index 0000000..600a538 --- /dev/null +++ b/practice/group777/public/index.html @@ -0,0 +1,13 @@ + + + + Главная + + + + + + +

          123

          + + diff --git a/practice/group777/public/js/api.js b/practice/group777/public/js/api.js new file mode 100644 index 0000000..0563790 --- /dev/null +++ b/practice/group777/public/js/api.js @@ -0,0 +1,21 @@ +if(localStorage.getItem('tokenManagerAPI')) { + (async function () { + const token = localStorage.getItem('tokenManagerAPI'); + const data = await fetch('/api', { + headers: { + 'Content-Type': 'application/json', + 'Authorization': `Bearer ${token}` + } + }) + const json = await data.json(); + const users = json.map(el=>el.users); + const userData = users.map((el) => { + return el.map(({age}) => { + return ` +

          ${age}

          + `; + }) + }) + console.log(userData) + }()) +} \ No newline at end of file diff --git a/practice/group777/routers/api.js b/practice/group777/routers/api.js index c42ea95..211016b 100644 --- a/practice/group777/routers/api.js +++ b/practice/group777/routers/api.js @@ -2,6 +2,7 @@ const express = require('express'); const router = express.Router(); const User = require('./../models/user'); const Task = require('./../models/task'); +const auth = require('./../midlleware/auth'); router.get('/api', async function (req, res) { const users = await User.find(); diff --git a/practice/group777/routers/login.js b/practice/group777/routers/login.js index f156330..834f644 100644 --- a/practice/group777/routers/login.js +++ b/practice/group777/routers/login.js @@ -9,13 +9,9 @@ router.get('/login', function (req, res) { router.post('/login', async function (req, res) { if(!req.body) return res.sendStatus(500); - console.log(req.body) const user = await User.findOne({email: req.body.email}); - console.log(user) const isMatch = await bcrypt.compare(req.body.password, user.password); - console.log(isMatch, '++++++++') const token = await user.generateAuthToken(); - console.log(token, '----------'); const data = { token, redirect: true, diff --git a/practice/group777/routers/start.js b/practice/group777/routers/start.js index 11bd8d4..852f164 100644 --- a/practice/group777/routers/start.js +++ b/practice/group777/routers/start.js @@ -2,16 +2,17 @@ const express = require('express'); const router = express.Router(); const User = require('./../models/user'); const Task = require('./../models/task'); -const auth = require('./../midlleware/auth') +const auth = require('./../midlleware/auth'); -router.get('/', auth, async function (req, res) { +router.get('/', async function (req, res) { const users = await User.find(); const tasks = await Task.find(); - console.log(req.user, '***') - res.render('index.hbs', { - tasks: tasks, - users: users - }); + //console.log(req.user.email, '***') + // res.render('index.hbs', { + // tasks: tasks, + // users: users + // }); + res.sendFile('index.html' , { root : __dirname+'/../public'}); }); module.exports = router; diff --git a/practice/group777/views/index.hbs b/practice/group777/views/index.hbs index 8edaebb..a42e338 100644 --- a/practice/group777/views/index.hbs +++ b/practice/group777/views/index.hbs @@ -5,20 +5,6 @@ - Форма From ed347e2ba62e21648e35bc223efc2c5b42ef1e7c Mon Sep 17 00:00:00 2001 From: xxx44552 Date: Tue, 28 Jan 2020 23:23:54 +0200 Subject: [PATCH 10/19] wad --- practice/group777/client/.gitignore | 23 + practice/group777/client/README.md | 68 + practice/group777/client/package-lock.json | 14078 ++++++++++++++++ practice/group777/client/package.json | 35 + practice/group777/client/public/favicon.ico | Bin 0 -> 3870 bytes practice/group777/client/public/index.html | 43 + practice/group777/client/public/logo192.png | Bin 0 -> 5347 bytes practice/group777/client/public/logo512.png | Bin 0 -> 9664 bytes practice/group777/client/public/manifest.json | 25 + practice/group777/client/public/robots.txt | 2 + practice/group777/client/src/App.js | 22 + practice/group777/client/src/Registration.js | 34 + practice/group777/client/src/index.js | 5 + practice/group777/config.js | 2 +- practice/group777/index.js | 2 +- practice/group777/models/task.js | 4 +- practice/group777/models/user.js | 2 + .../group777/routers/{start.js => index.js} | 2 +- practice/group777/routers/user.js | 20 +- practice/group777/views/index.hbs | 21 - practice/group777/views/partials/task.hbs | 9 - practice/group777/views/partials/user.hbs | 11 - 22 files changed, 14354 insertions(+), 54 deletions(-) create mode 100644 practice/group777/client/.gitignore create mode 100644 practice/group777/client/README.md create mode 100644 practice/group777/client/package-lock.json create mode 100644 practice/group777/client/package.json create mode 100644 practice/group777/client/public/favicon.ico create mode 100644 practice/group777/client/public/index.html create mode 100644 practice/group777/client/public/logo192.png create mode 100644 practice/group777/client/public/logo512.png create mode 100644 practice/group777/client/public/manifest.json create mode 100644 practice/group777/client/public/robots.txt create mode 100644 practice/group777/client/src/App.js create mode 100644 practice/group777/client/src/Registration.js create mode 100644 practice/group777/client/src/index.js rename practice/group777/routers/{start.js => index.js} (90%) delete mode 100644 practice/group777/views/index.hbs delete mode 100644 practice/group777/views/partials/task.hbs delete mode 100644 practice/group777/views/partials/user.hbs diff --git a/practice/group777/client/.gitignore b/practice/group777/client/.gitignore new file mode 100644 index 0000000..4d29575 --- /dev/null +++ b/practice/group777/client/.gitignore @@ -0,0 +1,23 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# production +/build + +# misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/practice/group777/client/README.md b/practice/group777/client/README.md new file mode 100644 index 0000000..859d27a --- /dev/null +++ b/practice/group777/client/README.md @@ -0,0 +1,68 @@ +This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app). + +## Available Scripts + +In the project directory, you can run: + +### `npm start` + +Runs the app in the development mode.
          +Open [http://localhost:3000](http://localhost:3000) to view it in the browser. + +The page will reload if you make edits.
          +You will also see any lint errors in the console. + +### `npm test` + +Launches the test runner in the interactive watch mode.
          +See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information. + +### `npm run build` + +Builds the app for production to the `build` folder.
          +It correctly bundles React in production mode and optimizes the build for the best performance. + +The build is minified and the filenames include the hashes.
          +Your app is ready to be deployed! + +See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information. + +### `npm run eject` + +**Note: this is a one-way operation. Once you `eject`, you can’t go back!** + +If you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project. + +Instead, it will copy all the configuration files and the transitive dependencies (Webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own. + +You don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it. + +## Learn More + +You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started). + +To learn React, check out the [React documentation](https://reactjs.org/). + +### Code Splitting + +This section has moved here: https://facebook.github.io/create-react-app/docs/code-splitting + +### Analyzing the Bundle Size + +This section has moved here: https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size + +### Making a Progressive Web App + +This section has moved here: https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app + +### Advanced Configuration + +This section has moved here: https://facebook.github.io/create-react-app/docs/advanced-configuration + +### Deployment + +This section has moved here: https://facebook.github.io/create-react-app/docs/deployment + +### `npm run build` fails to minify + +This section has moved here: https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify diff --git a/practice/group777/client/package-lock.json b/practice/group777/client/package-lock.json new file mode 100644 index 0000000..2bcfd9b --- /dev/null +++ b/practice/group777/client/package-lock.json @@ -0,0 +1,14078 @@ +{ + "name": "client", + "version": "0.1.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@babel/code-frame": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "requires": { + "@babel/highlight": "^7.8.3" + } + }, + "@babel/compat-data": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.8.1.tgz", + "integrity": "sha512-Z+6ZOXvyOWYxJ50BwxzdhRnRsGST8Y3jaZgxYig575lTjVSs3KtJnmESwZegg6e2Dn0td1eDhoWlp1wI4BTCPw==", + "requires": { + "browserslist": "^4.8.2", + "invariant": "^2.2.4", + "semver": "^5.5.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, + "@babel/core": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.7.4.tgz", + "integrity": "sha512-+bYbx56j4nYBmpsWtnPUsKW3NdnYxbqyfrP2w9wILBuHzdfIKz9prieZK0DFPyIzkjYVUe4QkusGL07r5pXznQ==", + "requires": { + "@babel/code-frame": "^7.5.5", + "@babel/generator": "^7.7.4", + "@babel/helpers": "^7.7.4", + "@babel/parser": "^7.7.4", + "@babel/template": "^7.7.4", + "@babel/traverse": "^7.7.4", + "@babel/types": "^7.7.4", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "json5": "^2.1.0", + "lodash": "^4.17.13", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, + "@babel/generator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.3.tgz", + "integrity": "sha512-WjoPk8hRpDRqqzRpvaR8/gDUPkrnOOeuT2m8cNICJtZH6mwaCo3v0OKMI7Y6SM1pBtyijnLtAL0HDi41pf41ug==", + "requires": { + "@babel/types": "^7.8.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz", + "integrity": "sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw==", + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz", + "integrity": "sha512-5eFOm2SyFPK4Rh3XMMRDjN7lBH0orh3ss0g3rTYZnBQ+r6YPj7lgDyCvPphynHvUrobJmeMignBr6Acw9mAPlw==", + "requires": { + "@babel/helper-explode-assignable-expression": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-builder-react-jsx": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.8.3.tgz", + "integrity": "sha512-JT8mfnpTkKNCboTqZsQTdGo3l3Ik3l7QIt9hh0O9DYiwVel37VoJpILKM4YFbP2euF32nkQSb+F9cUk9b7DDXQ==", + "requires": { + "@babel/types": "^7.8.3", + "esutils": "^2.0.0" + } + }, + "@babel/helper-call-delegate": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.8.3.tgz", + "integrity": "sha512-6Q05px0Eb+N4/GTyKPPvnkig7Lylw+QzihMpws9iiZQv7ZImf84ZsZpQH7QoWN4n4tm81SnSzPgHw2qtO0Zf3A==", + "requires": { + "@babel/helper-hoist-variables": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.3.tgz", + "integrity": "sha512-JLylPCsFjhLN+6uBSSh3iYdxKdeO9MNmoY96PE/99d8kyBFaXLORtAVhqN6iHa+wtPeqxKLghDOZry0+Aiw9Tw==", + "requires": { + "@babel/compat-data": "^7.8.1", + "browserslist": "^4.8.2", + "invariant": "^2.2.4", + "levenary": "^1.1.0", + "semver": "^5.5.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.8.3.tgz", + "integrity": "sha512-qmp4pD7zeTxsv0JNecSBsEmG1ei2MqwJq4YQcK3ZWm/0t07QstWfvuV/vm3Qt5xNMFETn2SZqpMx2MQzbtq+KA==", + "requires": { + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-member-expression-to-functions": "^7.8.3", + "@babel/helper-optimise-call-expression": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.3.tgz", + "integrity": "sha512-Gcsm1OHCUr9o9TcJln57xhWHtdXbA2pgQ58S0Lxlks0WMGNXuki4+GLfX0p+L2ZkINUGZvfkz8rzoqJQSthI+Q==", + "requires": { + "@babel/helper-regex": "^7.8.3", + "regexpu-core": "^4.6.0" + } + }, + "@babel/helper-define-map": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz", + "integrity": "sha512-PoeBYtxoZGtct3md6xZOCWPcKuMuk3IHhgxsRRNtnNShebf4C8YonTSblsK4tvDbm+eJAw2HAPOfCr+Q/YRG/g==", + "requires": { + "@babel/helper-function-name": "^7.8.3", + "@babel/types": "^7.8.3", + "lodash": "^4.17.13" + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.8.3.tgz", + "integrity": "sha512-N+8eW86/Kj147bO9G2uclsg5pwfs/fqqY5rwgIL7eTBklgXjcOJ3btzS5iM6AitJcftnY7pm2lGsrJVYLGjzIw==", + "requires": { + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-function-name": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", + "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", + "requires": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", + "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz", + "integrity": "sha512-ky1JLOjcDUtSc+xkt0xhYff7Z6ILTAHKmZLHPxAhOP0Nd77O+3nCsd6uSVYur6nJnCI029CrNbYlc0LoPfAPQg==", + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz", + "integrity": "sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA==", + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-module-imports": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz", + "integrity": "sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg==", + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-module-transforms": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.8.3.tgz", + "integrity": "sha512-C7NG6B7vfBa/pwCOshpMbOYUmrYQDfCpVL/JCRu0ek8B5p8kue1+BCXpg2vOYs7w5ACB9GTOBYQ5U6NwrMg+3Q==", + "requires": { + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-simple-access": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3", + "lodash": "^4.17.13" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz", + "integrity": "sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ==", + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", + "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==" + }, + "@babel/helper-regex": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.8.3.tgz", + "integrity": "sha512-BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ==", + "requires": { + "lodash": "^4.17.13" + } + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz", + "integrity": "sha512-kgwDmw4fCg7AVgS4DukQR/roGp+jP+XluJE5hsRZwxCYGg+Rv9wSGErDWhlI90FODdYfd4xG4AQRiMDjjN0GzA==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-wrap-function": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-replace-supers": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.3.tgz", + "integrity": "sha512-xOUssL6ho41U81etpLoT2RTdvdus4VfHamCuAm4AHxGr+0it5fnwoVdwUJ7GFEqCsQYzJUhcbsN9wB9apcYKFA==", + "requires": { + "@babel/helper-member-expression-to-functions": "^7.8.3", + "@babel/helper-optimise-call-expression": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-simple-access": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz", + "integrity": "sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw==", + "requires": { + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", + "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-wrap-function": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz", + "integrity": "sha512-LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ==", + "requires": { + "@babel/helper-function-name": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helpers": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.8.3.tgz", + "integrity": "sha512-LmU3q9Pah/XyZU89QvBgGt+BCsTPoQa+73RxAQh8fb8qkDyIfeQnmgs+hvzhTCKTzqOyk7JTkS3MS1S8Mq5yrQ==", + "requires": { + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.3.tgz", + "integrity": "sha512-/V72F4Yp/qmHaTALizEm9Gf2eQHV3QyTL3K0cNfijwnMnb1L+LDlAubb/ZnSdGAVzVSWakujHYs1I26x66sMeQ==" + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz", + "integrity": "sha512-NZ9zLv848JsV3hs8ryEh7Uaz/0KsmPLqv0+PdkDJL1cJy0K4kOCFa8zc1E3mp+RHPQcpdfb/6GovEsW4VDrOMw==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-remap-async-to-generator": "^7.8.3", + "@babel/plugin-syntax-async-generators": "^7.8.0" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.7.4.tgz", + "integrity": "sha512-EcuXeV4Hv1X3+Q1TsuOmyyxeTRiSqurGJ26+I/FW1WbymmRRapVORm6x1Zl3iDIHyRxEs+VXWp6qnlcfcJSbbw==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.7.4", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-proposal-decorators": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.7.4.tgz", + "integrity": "sha512-GftcVDcLCwVdzKmwOBDjATd548+IE+mBo7ttgatqNDR7VG7GqIuZPtRWlMLHbhTXhcnFZiGER8iIYl1n/imtsg==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.7.4", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-decorators": "^7.7.4" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.8.3.tgz", + "integrity": "sha512-NyaBbyLFXFLT9FP+zk0kYlUlA8XtCUbehs67F0nnEg7KICgMc2mNkIeu9TYhKzyXMkrapZFwAhXLdnt4IYHy1w==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-dynamic-import": "^7.8.0" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.8.3.tgz", + "integrity": "sha512-KGhQNZ3TVCQG/MjRbAUwuH+14y9q0tpxs1nWWs3pbSleRdDro9SAMMDyye8HhY1gqZ7/NqIc8SKhya0wRDgP1Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.0" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-TS9MlfzXpXKt6YYomudb/KU7nQI6/xnapG6in1uZxoxDghuSMZsPb6D2fyUwNYSAp4l1iR7QtFOjkqcRYcUsfw==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.7.4.tgz", + "integrity": "sha512-CG605v7lLpVgVldSY6kxsN9ui1DxFOyepBfuX2AzU2TNriMAYApoU55mrGw9Jr4TlrTzPCG10CL8YXyi+E/iPw==", + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-numeric-separator": "^7.7.4" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-8qvuPwU/xxUCt78HocNlv0mXXo0wdh9VT1R04WU8HGOfaOob26pF+9P5/lYjN/q7DHOX1bvX60hnhOvuQUJdbA==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-0gkX7J7E+AtAw9fcwlVQj8peP61qhdg/89D5swOkjYbkboA2CVckn3kiyum1DE0wskGb7KJJxBdyEBApDLLVdw==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.8.3.tgz", + "integrity": "sha512-QIoIR9abkVn+seDE3OjA08jWcs3eZ9+wJCKSRgo3WdEU2csFYgdScb+8qHB3+WXsGJD55u+5hWCISI7ejXS+kg==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.0" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.3.tgz", + "integrity": "sha512-1/1/rEZv2XGweRwwSkLpY+s60za9OZ1hJs4YDqFHCw0kYWYwL5IFljVY1MYBL+weT1l9pokDO2uhSTLVxzoHkQ==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@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==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-decorators": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.8.3.tgz", + "integrity": "sha512-8Hg4dNNT9/LcA1zQlfwuKR8BUc/if7Q7NkTam9sGTcJphLwpf2g4S42uhspQrIrR+dpzE0dtTqBVFoHl8GtnnQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@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==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-flow": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.8.3.tgz", + "integrity": "sha512-innAx3bUbA0KSYj2E2MNFSn9hiCeowOFLxlsuhXzw8hMQnzkDomUr9QCD7E9VF60NmnG1sNTuuv6Qf4f8INYsg==", + "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==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.8.3.tgz", + "integrity": "sha512-WxdW9xyLgBdefoo0Ynn3MRSkhe5tFVxxKNVdnZSh318WrG2e2jH+E9wd/++JsqcLJZPfz87njQJ8j2Upjm0M0A==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@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==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.8.3.tgz", + "integrity": "sha512-H7dCMAdN83PcCmqmkHB5dtp+Xa9a6LKSvA2hiFBC/5alSHxM5VgWZXFqDi0YFe8XNGT6iCa+z4V4zSt/PdZ7Dw==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@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==", + "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==", + "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==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.8.3.tgz", + "integrity": "sha512-kwj1j9lL/6Wd0hROD3b/OZZ7MSrZLqqn9RAZ5+cYYsflQ9HZBIKCUkr3+uL1MEJ1NePiUbf98jjiMQSv0NMR9g==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-typescript": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.8.3.tgz", + "integrity": "sha512-GO1MQ/SGGGoiEXY0e0bSpHimJvxqB7lktLLIq2pv8xG7WZ8IMEle74jIe1FhprHBWjwjZtXHkycDLZXIWM5Wfg==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.8.3.tgz", + "integrity": "sha512-0MRF+KC8EqH4dbuITCWwPSzsyO3HIWWlm30v8BbbpOrS1B++isGxPnnuq/IZvOX5J2D/p7DQalQm+/2PnlKGxg==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz", + "integrity": "sha512-imt9tFLD9ogt56Dd5CI/6XgpukMwd/fLGSrix2httihVe7LOGVPhyhMh1BU5kDM7iHD08i8uUtmV2sWaBFlHVQ==", + "requires": { + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-remap-async-to-generator": "^7.8.3" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.8.3.tgz", + "integrity": "sha512-vo4F2OewqjbB1+yaJ7k2EJFHlTP3jR634Z9Cj9itpqNjuLXvhlVxgnjsHsdRgASR8xYDrx6onw4vW5H6We0Jmg==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz", + "integrity": "sha512-pGnYfm7RNRgYRi7bids5bHluENHqJhrV4bCZRwc5GamaWIIs07N4rZECcmJL6ZClwjDz1GbdMZFtPs27hTB06w==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "lodash": "^4.17.13" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.8.3.tgz", + "integrity": "sha512-SjT0cwFJ+7Rbr1vQsvphAHwUHvSUPmMjMU/0P59G8U2HLFqSa082JO7zkbDNWs9kH/IUqpHI6xWNesGf8haF1w==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-define-map": "^7.8.3", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-optimise-call-expression": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.8.3.tgz", + "integrity": "sha512-O5hiIpSyOGdrQZRQ2ccwtTVkgUDBBiCuK//4RJ6UfePllUTCENOzKxfh6ulckXKc0DixTFLCfb2HVkNA7aDpzA==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.3.tgz", + "integrity": "sha512-H4X646nCkiEcHZUZaRkhE2XVsoz0J/1x3VVujnn96pSoGCtKPA99ZZA+va+gK+92Zycd6OBKCD8tDb/731bhgQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz", + "integrity": "sha512-kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.8.3.tgz", + "integrity": "sha512-s8dHiBUbcbSgipS4SMFuWGqCvyge5V2ZeAWzR6INTVC3Ltjig/Vw1G2Gztv0vU/hRG9X8IvKvYdoksnUfgXOEQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.8.3.tgz", + "integrity": "sha512-zwIpuIymb3ACcInbksHaNcR12S++0MDLKkiqXHl3AzpgdKlFNhog+z/K0+TGW+b0w5pgTq4H6IwV/WhxbGYSjQ==", + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-flow-strip-types": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.7.4.tgz", + "integrity": "sha512-w9dRNlHY5ElNimyMYy0oQowvQpwt/PRHI0QS98ZJCTZU2bvSnKXo5zEiD5u76FBPigTm8TkqzmnUTg16T7qbkA==", + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-flow": "^7.7.4" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.8.3.tgz", + "integrity": "sha512-ZjXznLNTxhpf4Q5q3x1NsngzGA38t9naWH8Gt+0qYZEJAcvPI9waSStSh56u19Ofjr7QmD0wUsQ8hw8s/p1VnA==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.8.3.tgz", + "integrity": "sha512-rO/OnDS78Eifbjn5Py9v8y0aR+aSYhDhqAwVfsTl0ERuMZyr05L1aFSCJnbv2mmsLkit/4ReeQ9N2BgLnOcPCQ==", + "requires": { + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.8.3.tgz", + "integrity": "sha512-3Tqf8JJ/qB7TeldGl+TT55+uQei9JfYaregDcEAyBZ7akutriFrt6C/wLYIer6OYhleVQvH/ntEhjE/xMmy10A==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.8.3.tgz", + "integrity": "sha512-3Wk2EXhnw+rP+IDkK6BdtPKsUE5IeZ6QOGrPYvw52NwBStw9V1ZVzxgK6fSKSxqUvH9eQPR3tm3cOq79HlsKYA==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.8.3.tgz", + "integrity": "sha512-MadJiU3rLKclzT5kBH4yxdry96odTUwuqrZM+GllFI/VhxfPz+k9MshJM+MwhfkCdxxclSbSBbUGciBngR+kEQ==", + "requires": { + "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "babel-plugin-dynamic-import-node": "^2.3.0" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.8.3.tgz", + "integrity": "sha512-JpdMEfA15HZ/1gNuB9XEDlZM1h/gF/YOH7zaZzQu2xCFRfwc01NXBMHHSTT6hRjlXJJs5x/bfODM3LiCk94Sxg==", + "requires": { + "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-simple-access": "^7.8.3", + "babel-plugin-dynamic-import-node": "^2.3.0" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.8.3.tgz", + "integrity": "sha512-8cESMCJjmArMYqa9AO5YuMEkE4ds28tMpZcGZB/jl3n0ZzlsxOAi3mC+SKypTfT8gjMupCnd3YiXCkMjj2jfOg==", + "requires": { + "@babel/helper-hoist-variables": "^7.8.3", + "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "babel-plugin-dynamic-import-node": "^2.3.0" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.8.3.tgz", + "integrity": "sha512-evhTyWhbwbI3/U6dZAnx/ePoV7H6OUG+OjiJFHmhr9FPn0VShjwC2kdxqIuQ/+1P50TMrneGzMeyMTFOjKSnAw==", + "requires": { + "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz", + "integrity": "sha512-f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.8.3" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.8.3.tgz", + "integrity": "sha512-QuSGysibQpyxexRyui2vca+Cmbljo8bcRckgzYV4kRIsHpVeyeC3JDO63pY+xFZ6bWOBn7pfKZTqV4o/ix9sFw==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz", + "integrity": "sha512-57FXk+gItG/GejofIyLIgBKTas4+pEU47IXKDBWFTxdPd7F80H8zybyAY7UoblVfBhBGs2EKM+bJUu2+iUYPDQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.3" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.8.3.tgz", + "integrity": "sha512-/pqngtGb54JwMBZ6S/D3XYylQDFtGjWrnoCF4gXZOUpFV/ujbxnoNGNvDGu6doFWRPBveE72qTx/RRU44j5I/Q==", + "requires": { + "@babel/helper-call-delegate": "^7.8.3", + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.8.3.tgz", + "integrity": "sha512-uGiiXAZMqEoQhRWMK17VospMZh5sXWg+dlh2soffpkAl96KAm+WZuJfa6lcELotSRmooLqg0MWdH6UUq85nmmg==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-react-constant-elements": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.8.3.tgz", + "integrity": "sha512-glrzN2U+egwRfkNFtL34xIBYTxbbUF2qJTP8HD3qETBBqzAWSeNB821X0GjU06+dNpq/UyCIjI72FmGE5NNkQQ==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-react-display-name": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.8.3.tgz", + "integrity": "sha512-3Jy/PCw8Fe6uBKtEgz3M82ljt+lTg+xJaM4og+eyu83qLT87ZUSckn0wy7r31jflURWLO83TW6Ylf7lyXj3m5A==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-react-jsx": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.8.3.tgz", + "integrity": "sha512-r0h+mUiyL595ikykci+fbwm9YzmuOrUBi0b+FDIKmi3fPQyFokWVEMJnRWHJPPQEjyFJyna9WZC6Viv6UHSv1g==", + "requires": { + "@babel/helper-builder-react-jsx": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-jsx": "^7.8.3" + } + }, + "@babel/plugin-transform-react-jsx-self": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.8.3.tgz", + "integrity": "sha512-01OT7s5oa0XTLf2I8XGsL8+KqV9lx3EZV+jxn/L2LQ97CGKila2YMroTkCEIE0HV/FF7CMSRsIAybopdN9NTdg==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-jsx": "^7.8.3" + } + }, + "@babel/plugin-transform-react-jsx-source": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.8.3.tgz", + "integrity": "sha512-PLMgdMGuVDtRS/SzjNEQYUT8f4z1xb2BAT54vM1X5efkVuYBf5WyGUMbpmARcfq3NaglIwz08UVQK4HHHbC6ag==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-jsx": "^7.8.3" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.3.tgz", + "integrity": "sha512-qt/kcur/FxrQrzFR432FGZznkVAjiyFtCOANjkAKwCbt465L6ZCiUQh2oMYGU3Wo8LRFJxNDFwWn106S5wVUNA==", + "requires": { + "regenerator-transform": "^0.14.0" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.8.3.tgz", + "integrity": "sha512-mwMxcycN3omKFDjDQUl+8zyMsBfjRFr0Zn/64I41pmjv4NJuqcYlEtezwYtw9TFd9WR1vN5kiM+O0gMZzO6L0A==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-runtime": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.7.4.tgz", + "integrity": "sha512-O8kSkS5fP74Ad/8pfsCMGa8sBRdLxYoSReaARRNSz3FbFQj3z/QUvoUmJ28gn9BO93YfnXc3j+Xyaqe8cKDNBQ==", + "requires": { + "@babel/helper-module-imports": "^7.7.4", + "@babel/helper-plugin-utils": "^7.0.0", + "resolve": "^1.8.1", + "semver": "^5.5.1" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz", + "integrity": "sha512-I9DI6Odg0JJwxCHzbzW08ggMdCezoWcuQRz3ptdudgwaHxTjxw5HgdFJmZIkIMlRymL6YiZcped4TTCB0JcC8w==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz", + "integrity": "sha512-CkuTU9mbmAoFOI1tklFWYYbzX5qCIZVXPVy0jpXgGwkplCndQAa58s2jr66fTeQnA64bDox0HL4U56CFYoyC7g==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.8.3.tgz", + "integrity": "sha512-9Spq0vGCD5Bb4Z/ZXXSK5wbbLFMG085qd2vhL1JYu1WcQ5bXqZBAYRzU1d+p79GcHs2szYv5pVQCX13QgldaWw==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-regex": "^7.8.3" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.8.3.tgz", + "integrity": "sha512-820QBtykIQOLFT8NZOcTRJ1UNuztIELe4p9DCgvj4NK+PwluSJ49we7s9FB1HIGNIYT7wFUJ0ar2QpCDj0escQ==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.3.tgz", + "integrity": "sha512-3TrkKd4LPqm4jHs6nPtSDI/SV9Cm5PRJkHLUgTcqRQQTMAZ44ZaAdDZJtvWFSaRcvT0a1rTmJ5ZA5tDKjleF3g==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-typescript": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.8.3.tgz", + "integrity": "sha512-Ebj230AxcrKGZPKIp4g4TdQLrqX95TobLUWKd/CwG7X1XHUH1ZpkpFvXuXqWbtGRWb7uuEWNlrl681wsOArAdQ==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-typescript": "^7.8.3" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz", + "integrity": "sha512-+ufgJjYdmWfSQ+6NS9VGUR2ns8cjJjYbrbi11mZBTaWm+Fui/ncTLFF28Ei1okavY+xkojGr1eJxNsWYeA5aZw==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/preset-env": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.8.3.tgz", + "integrity": "sha512-Rs4RPL2KjSLSE2mWAx5/iCH+GC1ikKdxPrhnRS6PfFVaiZeom22VFKN4X8ZthyN61kAaR05tfXTbCvatl9WIQg==", + "requires": { + "@babel/compat-data": "^7.8.0", + "@babel/helper-compilation-targets": "^7.8.3", + "@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.3", + "@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.3", + "@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.3", + "@babel/plugin-transform-property-literals": "^7.8.3", + "@babel/plugin-transform-regenerator": "^7.8.3", + "@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.3", + "@babel/plugin-transform-unicode-regex": "^7.8.3", + "@babel/types": "^7.8.3", + "browserslist": "^4.8.2", + "core-js-compat": "^3.6.2", + "invariant": "^2.2.2", + "levenary": "^1.1.0", + "semver": "^5.5.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, + "@babel/preset-react": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.8.3.tgz", + "integrity": "sha512-9hx0CwZg92jGb7iHYQVgi0tOEHP/kM60CtWJQnmbATSPIQQ2xYzfoCI3EdqAhFBeeJwYMdWQuDUHMsuDbH9hyQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-transform-react-display-name": "^7.8.3", + "@babel/plugin-transform-react-jsx": "^7.8.3", + "@babel/plugin-transform-react-jsx-self": "^7.8.3", + "@babel/plugin-transform-react-jsx-source": "^7.8.3" + } + }, + "@babel/preset-typescript": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.7.4.tgz", + "integrity": "sha512-rqrjxfdiHPsnuPur0jKrIIGQCIgoTWMTjlbWE69G4QJ6TIOVnnRnIJhUxNTL/VwDmEAVX08Tq3B1nirer5341w==", + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-transform-typescript": "^7.7.4" + } + }, + "@babel/runtime": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.7.4.tgz", + "integrity": "sha512-r24eVUUr0QqNZa+qrImUk8fn5SPhHq+IfYvIoIMg0do3GdK9sMdiLKP3GYVVaxpPKORgm8KRKaNTEhAjgIpLMw==", + "requires": { + "regenerator-runtime": "^0.13.2" + } + }, + "@babel/runtime-corejs3": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.8.3.tgz", + "integrity": "sha512-lrIU4aVbmlM/wQPzhEvzvNJskKyYptuXb0fGC0lTQTupTOYtR2Vqbu6/jf8vTr4M8Wt1nIzxVrSvPI5qESa/xA==", + "requires": { + "core-js-pure": "^3.0.0", + "regenerator-runtime": "^0.13.2" + } + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/traverse": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.3.tgz", + "integrity": "sha512-we+a2lti+eEImHmEXp7bM9cTxGzxPmBiVJlLVD+FuuQMeeO7RaDbutbgeheDkw+Xe3mCfJHnGOWLswT74m2IPg==", + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.3", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "@cnakazawa/watch": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.3.tgz", + "integrity": "sha512-r5160ogAvGyHsal38Kux7YYtodEKOj89RGb28ht1jh3SJb08VwRwAKKJL0bGb04Zd/3r9FL3BFIc3bBidYffCA==", + "requires": { + "exec-sh": "^0.3.2", + "minimist": "^1.2.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==" + }, + "@csstools/normalize.css": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-10.1.0.tgz", + "integrity": "sha512-ij4wRiunFfaJxjB0BdrYHIH8FxBJpOwNPhhAcunlmPdXudL1WQV1qoP9un6JsEBAgQH+7UXyyjh0g7jTxXK6tg==" + }, + "@hapi/address": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz", + "integrity": "sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==" + }, + "@hapi/bourne": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-1.3.2.tgz", + "integrity": "sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA==" + }, + "@hapi/hoek": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.0.tgz", + "integrity": "sha512-7XYT10CZfPsH7j9F1Jmg1+d0ezOux2oM2GfArAzLwWe4mE2Dr3hVjsAL6+TFY49RRJlCdJDMw3nJsLFroTc8Kw==" + }, + "@hapi/joi": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz", + "integrity": "sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==", + "requires": { + "@hapi/address": "2.x.x", + "@hapi/bourne": "1.x.x", + "@hapi/hoek": "8.x.x", + "@hapi/topo": "3.x.x" + } + }, + "@hapi/topo": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz", + "integrity": "sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==", + "requires": { + "@hapi/hoek": "^8.3.0" + } + }, + "@jest/console": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-24.9.0.tgz", + "integrity": "sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ==", + "requires": { + "@jest/source-map": "^24.9.0", + "chalk": "^2.0.1", + "slash": "^2.0.0" + } + }, + "@jest/core": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-24.9.0.tgz", + "integrity": "sha512-Fogg3s4wlAr1VX7q+rhV9RVnUv5tD7VuWfYy1+whMiWUrvl7U3QJSJyWcDio9Lq2prqYsZaeTv2Rz24pWGkJ2A==", + "requires": { + "@jest/console": "^24.7.1", + "@jest/reporters": "^24.9.0", + "@jest/test-result": "^24.9.0", + "@jest/transform": "^24.9.0", + "@jest/types": "^24.9.0", + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.1", + "exit": "^0.1.2", + "graceful-fs": "^4.1.15", + "jest-changed-files": "^24.9.0", + "jest-config": "^24.9.0", + "jest-haste-map": "^24.9.0", + "jest-message-util": "^24.9.0", + "jest-regex-util": "^24.3.0", + "jest-resolve": "^24.9.0", + "jest-resolve-dependencies": "^24.9.0", + "jest-runner": "^24.9.0", + "jest-runtime": "^24.9.0", + "jest-snapshot": "^24.9.0", + "jest-util": "^24.9.0", + "jest-validate": "^24.9.0", + "jest-watcher": "^24.9.0", + "micromatch": "^3.1.10", + "p-each-series": "^1.0.0", + "realpath-native": "^1.1.0", + "rimraf": "^2.5.4", + "slash": "^2.0.0", + "strip-ansi": "^5.0.0" + }, + "dependencies": { + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==" + } + } + }, + "@jest/environment": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-24.9.0.tgz", + "integrity": "sha512-5A1QluTPhvdIPFYnO3sZC3smkNeXPVELz7ikPbhUj0bQjB07EoE9qtLrem14ZUYWdVayYbsjVwIiL4WBIMV4aQ==", + "requires": { + "@jest/fake-timers": "^24.9.0", + "@jest/transform": "^24.9.0", + "@jest/types": "^24.9.0", + "jest-mock": "^24.9.0" + } + }, + "@jest/fake-timers": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-24.9.0.tgz", + "integrity": "sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A==", + "requires": { + "@jest/types": "^24.9.0", + "jest-message-util": "^24.9.0", + "jest-mock": "^24.9.0" + } + }, + "@jest/reporters": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-24.9.0.tgz", + "integrity": "sha512-mu4X0yjaHrffOsWmVLzitKmmmWSQ3GGuefgNscUSWNiUNcEOSEQk9k3pERKEQVBb0Cnn88+UESIsZEMH3o88Gw==", + "requires": { + "@jest/environment": "^24.9.0", + "@jest/test-result": "^24.9.0", + "@jest/transform": "^24.9.0", + "@jest/types": "^24.9.0", + "chalk": "^2.0.1", + "exit": "^0.1.2", + "glob": "^7.1.2", + "istanbul-lib-coverage": "^2.0.2", + "istanbul-lib-instrument": "^3.0.1", + "istanbul-lib-report": "^2.0.4", + "istanbul-lib-source-maps": "^3.0.1", + "istanbul-reports": "^2.2.6", + "jest-haste-map": "^24.9.0", + "jest-resolve": "^24.9.0", + "jest-runtime": "^24.9.0", + "jest-util": "^24.9.0", + "jest-worker": "^24.6.0", + "node-notifier": "^5.4.2", + "slash": "^2.0.0", + "source-map": "^0.6.0", + "string-length": "^2.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==" + } + } + }, + "@jest/source-map": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-24.9.0.tgz", + "integrity": "sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg==", + "requires": { + "callsites": "^3.0.0", + "graceful-fs": "^4.1.15", + "source-map": "^0.6.0" + }, + "dependencies": { + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "@jest/test-result": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-24.9.0.tgz", + "integrity": "sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA==", + "requires": { + "@jest/console": "^24.9.0", + "@jest/types": "^24.9.0", + "@types/istanbul-lib-coverage": "^2.0.0" + } + }, + "@jest/test-sequencer": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-24.9.0.tgz", + "integrity": "sha512-6qqsU4o0kW1dvA95qfNog8v8gkRN9ph6Lz7r96IvZpHdNipP2cBcb07J1Z45mz/VIS01OHJ3pY8T5fUY38tg4A==", + "requires": { + "@jest/test-result": "^24.9.0", + "jest-haste-map": "^24.9.0", + "jest-runner": "^24.9.0", + "jest-runtime": "^24.9.0" + } + }, + "@jest/transform": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-24.9.0.tgz", + "integrity": "sha512-TcQUmyNRxV94S0QpMOnZl0++6RMiqpbH/ZMccFB/amku6Uwvyb1cjYX7xkp5nGNkbX4QPH/FcB6q1HBTHynLmQ==", + "requires": { + "@babel/core": "^7.1.0", + "@jest/types": "^24.9.0", + "babel-plugin-istanbul": "^5.1.0", + "chalk": "^2.0.1", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.1.15", + "jest-haste-map": "^24.9.0", + "jest-regex-util": "^24.9.0", + "jest-util": "^24.9.0", + "micromatch": "^3.1.10", + "pirates": "^4.0.1", + "realpath-native": "^1.1.0", + "slash": "^2.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "2.4.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==" + } + } + }, + "@jest/types": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", + "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^13.0.0" + } + }, + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "requires": { + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" + } + }, + "@nodelib/fs.stat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", + "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==" + }, + "@sheerun/mutationobserver-shim": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@sheerun/mutationobserver-shim/-/mutationobserver-shim-0.3.2.tgz", + "integrity": "sha512-vTCdPp/T/Q3oSqwHmZ5Kpa9oI7iLtGl3RQaA/NyLHikvcrPxACkkKVr/XzkSPJWXHRhKGzVvb0urJsbMlRxi1Q==" + }, + "@svgr/babel-plugin-add-jsx-attribute": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-4.2.0.tgz", + "integrity": "sha512-j7KnilGyZzYr/jhcrSYS3FGWMZVaqyCG0vzMCwzvei0coIkczuYMcniK07nI0aHJINciujjH11T72ICW5eL5Ig==" + }, + "@svgr/babel-plugin-remove-jsx-attribute": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-4.2.0.tgz", + "integrity": "sha512-3XHLtJ+HbRCH4n28S7y/yZoEQnRpl0tvTZQsHqvaeNXPra+6vE5tbRliH3ox1yZYPCxrlqaJT/Mg+75GpDKlvQ==" + }, + "@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-4.2.0.tgz", + "integrity": "sha512-yTr2iLdf6oEuUE9MsRdvt0NmdpMBAkgK8Bjhl6epb+eQWk6abBaX3d65UZ3E3FWaOwePyUgNyNCMVG61gGCQ7w==" + }, + "@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-4.2.0.tgz", + "integrity": "sha512-U9m870Kqm0ko8beHawRXLGLvSi/ZMrl89gJ5BNcT452fAjtF2p4uRzXkdzvGJJJYBgx7BmqlDjBN/eCp5AAX2w==" + }, + "@svgr/babel-plugin-svg-dynamic-title": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-4.3.3.tgz", + "integrity": "sha512-w3Be6xUNdwgParsvxkkeZb545VhXEwjGMwExMVBIdPQJeyMQHqm9Msnb2a1teHBqUYL66qtwfhNkbj1iarCG7w==" + }, + "@svgr/babel-plugin-svg-em-dimensions": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-4.2.0.tgz", + "integrity": "sha512-C0Uy+BHolCHGOZ8Dnr1zXy/KgpBOkEUYY9kI/HseHVPeMbluaX3CijJr7D4C5uR8zrc1T64nnq/k63ydQuGt4w==" + }, + "@svgr/babel-plugin-transform-react-native-svg": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-4.2.0.tgz", + "integrity": "sha512-7YvynOpZDpCOUoIVlaaOUU87J4Z6RdD6spYN4eUb5tfPoKGSF9OG2NuhgYnq4jSkAxcpMaXWPf1cePkzmqTPNw==" + }, + "@svgr/babel-plugin-transform-svg-component": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-4.2.0.tgz", + "integrity": "sha512-hYfYuZhQPCBVotABsXKSCfel2slf/yvJY8heTVX1PCTaq/IgASq1IyxPPKJ0chWREEKewIU/JMSsIGBtK1KKxw==" + }, + "@svgr/babel-preset": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-4.3.3.tgz", + "integrity": "sha512-6PG80tdz4eAlYUN3g5GZiUjg2FMcp+Wn6rtnz5WJG9ITGEF1pmFdzq02597Hn0OmnQuCVaBYQE1OVFAnwOl+0A==", + "requires": { + "@svgr/babel-plugin-add-jsx-attribute": "^4.2.0", + "@svgr/babel-plugin-remove-jsx-attribute": "^4.2.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "^4.2.0", + "@svgr/babel-plugin-replace-jsx-attribute-value": "^4.2.0", + "@svgr/babel-plugin-svg-dynamic-title": "^4.3.3", + "@svgr/babel-plugin-svg-em-dimensions": "^4.2.0", + "@svgr/babel-plugin-transform-react-native-svg": "^4.2.0", + "@svgr/babel-plugin-transform-svg-component": "^4.2.0" + } + }, + "@svgr/core": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-4.3.3.tgz", + "integrity": "sha512-qNuGF1QON1626UCaZamWt5yedpgOytvLj5BQZe2j1k1B8DUG4OyugZyfEwBeXozCUwhLEpsrgPrE+eCu4fY17w==", + "requires": { + "@svgr/plugin-jsx": "^4.3.3", + "camelcase": "^5.3.1", + "cosmiconfig": "^5.2.1" + } + }, + "@svgr/hast-util-to-babel-ast": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-4.3.2.tgz", + "integrity": "sha512-JioXclZGhFIDL3ddn4Kiq8qEqYM2PyDKV0aYno8+IXTLuYt6TOgHUbUAAFvqtb0Xn37NwP0BTHglejFoYr8RZg==", + "requires": { + "@babel/types": "^7.4.4" + } + }, + "@svgr/plugin-jsx": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-4.3.3.tgz", + "integrity": "sha512-cLOCSpNWQnDB1/v+SUENHH7a0XY09bfuMKdq9+gYvtuwzC2rU4I0wKGFEp1i24holdQdwodCtDQdFtJiTCWc+w==", + "requires": { + "@babel/core": "^7.4.5", + "@svgr/babel-preset": "^4.3.3", + "@svgr/hast-util-to-babel-ast": "^4.3.2", + "svg-parser": "^2.0.0" + } + }, + "@svgr/plugin-svgo": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-4.3.1.tgz", + "integrity": "sha512-PrMtEDUWjX3Ea65JsVCwTIXuSqa3CG9px+DluF1/eo9mlDrgrtFE7NE/DjdhjJgSM9wenlVBzkzneSIUgfUI/w==", + "requires": { + "cosmiconfig": "^5.2.1", + "merge-deep": "^3.0.2", + "svgo": "^1.2.2" + } + }, + "@svgr/webpack": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-4.3.3.tgz", + "integrity": "sha512-bjnWolZ6KVsHhgyCoYRFmbd26p8XVbulCzSG53BDQqAr+JOAderYK7CuYrB3bDjHJuF6LJ7Wrr42+goLRV9qIg==", + "requires": { + "@babel/core": "^7.4.5", + "@babel/plugin-transform-react-constant-elements": "^7.0.0", + "@babel/preset-env": "^7.4.5", + "@babel/preset-react": "^7.0.0", + "@svgr/core": "^4.3.3", + "@svgr/plugin-jsx": "^4.3.3", + "@svgr/plugin-svgo": "^4.3.1", + "loader-utils": "^1.2.3" + } + }, + "@testing-library/dom": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-6.11.0.tgz", + "integrity": "sha512-Pkx9LMIGshyNbfmecjt18rrAp/ayMqGH674jYER0SXj0iG9xZc+zWRjk2Pg9JgPBDvwI//xGrI/oOQkAi4YEew==", + "requires": { + "@babel/runtime": "^7.6.2", + "@sheerun/mutationobserver-shim": "^0.3.2", + "@types/testing-library__dom": "^6.0.0", + "aria-query": "3.0.0", + "pretty-format": "^24.9.0", + "wait-for-expect": "^3.0.0" + } + }, + "@testing-library/jest-dom": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-4.2.4.tgz", + "integrity": "sha512-j31Bn0rQo12fhCWOUWy9fl7wtqkp7In/YP2p5ZFyRuiiB9Qs3g+hS4gAmDWONbAHcRmVooNJ5eOHQDCOmUFXHg==", + "requires": { + "@babel/runtime": "^7.5.1", + "chalk": "^2.4.1", + "css": "^2.2.3", + "css.escape": "^1.5.1", + "jest-diff": "^24.0.0", + "jest-matcher-utils": "^24.0.0", + "lodash": "^4.17.11", + "pretty-format": "^24.0.0", + "redent": "^3.0.0" + } + }, + "@testing-library/react": { + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-9.4.0.tgz", + "integrity": "sha512-XdhDWkI4GktUPsz0AYyeQ8M9qS/JFie06kcSnUVcpgOwFjAu9vhwR83qBl+lw9yZWkbECjL8Hd+n5hH6C0oWqg==", + "requires": { + "@babel/runtime": "^7.7.6", + "@testing-library/dom": "^6.11.0", + "@types/testing-library__react": "^9.1.2" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.8.3.tgz", + "integrity": "sha512-fVHx1rzEmwB130VTkLnxR+HmxcTjGzH12LYQcFFoBwakMd3aOMD4OsRN7tGG/UOYE2ektgFrS8uACAoRk1CY0w==", + "requires": { + "regenerator-runtime": "^0.13.2" + } + } + } + }, + "@testing-library/user-event": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-7.2.1.tgz", + "integrity": "sha512-oZ0Ib5I4Z2pUEcoo95cT1cr6slco9WY7yiPpG+RGNkj8YcYgJnM7pXmYmorNOReh8MIGcKSqXyeGjxnr8YiZbA==" + }, + "@types/babel__core": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.3.tgz", + "integrity": "sha512-8fBo0UR2CcwWxeX7WIIgJ7lXjasFxoYgRnFHUj+hRvKkpiBJbxhdAPTCY6/ZKM0uxANFVzt4yObSLuTiTnazDA==", + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "@types/babel__generator": { + "version": "7.6.1", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.1.tgz", + "integrity": "sha512-bBKm+2VPJcMRVwNhxKu8W+5/zT7pwNEqeokFOmbvVSqGzFneNxYcEBro9Ac7/N9tlsaPYnZLK8J1LWKkMsLAew==", + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@types/babel__template": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.0.2.tgz", + "integrity": "sha512-/K6zCpeW7Imzgab2bLkLEbz0+1JlFSrUMdw7KoIIu+IUdu51GWaBZpd3y1VXGVXzynvGa4DaIaxNZHiON3GXUg==", + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@types/babel__traverse": { + "version": "7.0.8", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.8.tgz", + "integrity": "sha512-yGeB2dHEdvxjP0y4UbRtQaSkXJ9649fYCmIdRoul5kfAoGCwxuCbMhag0k3RPfnuh9kPGm8x89btcfDEXdVWGw==", + "requires": { + "@babel/types": "^7.3.0" + } + }, + "@types/eslint-visitor-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", + "integrity": "sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==" + }, + "@types/events": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", + "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==" + }, + "@types/glob": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz", + "integrity": "sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==", + "requires": { + "@types/events": "*", + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz", + "integrity": "sha512-hRJD2ahnnpLgsj6KWMYSrmXkM3rm2Dl1qkx6IOFD5FnuNPXJIG5L0dhgKXCYTRMGzU4n0wImQ/xfmRc4POUFlg==" + }, + "@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "requires": { + "@types/istanbul-lib-coverage": "*" + } + }, + "@types/istanbul-reports": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.1.tgz", + "integrity": "sha512-UpYjBi8xefVChsCoBpKShdxTllC9pwISirfoZsUa2AAdQg/Jd2KQGtSbw+ya7GPo7x/wAPlH6JBhKhAsXUEZNA==", + "requires": { + "@types/istanbul-lib-coverage": "*", + "@types/istanbul-lib-report": "*" + } + }, + "@types/json-schema": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.4.tgz", + "integrity": "sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA==" + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==" + }, + "@types/node": { + "version": "13.5.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-13.5.1.tgz", + "integrity": "sha512-Jj2W7VWQ2uM83f8Ls5ON9adxN98MvyJsMSASYFuSvrov8RMRY64Ayay7KV35ph1TSGIJ2gG9ZVDdEq3c3zaydA==" + }, + "@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==" + }, + "@types/prop-types": { + "version": "15.7.3", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz", + "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==" + }, + "@types/q": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz", + "integrity": "sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw==" + }, + "@types/react": { + "version": "16.9.19", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.19.tgz", + "integrity": "sha512-LJV97//H+zqKWMms0kvxaKYJDG05U2TtQB3chRLF8MPNs+MQh/H1aGlyDUxjaHvu08EAGerdX2z4LTBc7ns77A==", + "requires": { + "@types/prop-types": "*", + "csstype": "^2.2.0" + } + }, + "@types/react-dom": { + "version": "16.9.5", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.5.tgz", + "integrity": "sha512-BX6RQ8s9D+2/gDhxrj8OW+YD4R+8hj7FEM/OJHGNR0KipE1h1mSsf39YeyC81qafkq+N3rU3h3RFbLSwE5VqUg==", + "requires": { + "@types/react": "*" + } + }, + "@types/stack-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz", + "integrity": "sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==" + }, + "@types/testing-library__dom": { + "version": "6.11.1", + "resolved": "https://registry.npmjs.org/@types/testing-library__dom/-/testing-library__dom-6.11.1.tgz", + "integrity": "sha512-ImChHtQqmjwraRLqBC2sgSQFtczeFvBmBcfhTYZn/3KwXbyD07LQykEQ0xJo7QHc1GbVvf7pRyGaIe6PkCdxEw==", + "requires": { + "pretty-format": "^24.3.0" + } + }, + "@types/testing-library__react": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/@types/testing-library__react/-/testing-library__react-9.1.2.tgz", + "integrity": "sha512-CYaMqrswQ+cJACy268jsLAw355DZtPZGt3Jwmmotlcu8O/tkoXBI6AeZ84oZBJsIsesozPKzWzmv/0TIU+1E9Q==", + "requires": { + "@types/react-dom": "*", + "@types/testing-library__dom": "*" + } + }, + "@types/yargs": { + "version": "13.0.7", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.7.tgz", + "integrity": "sha512-Sg9kNeJz+V+W+0fugcVhHC+mNHnydDR1RJrW5Qn2jVrDQARF8wfPVqIqwEzZp+bneuEBIm2ClsJ1/je42ZBzSg==", + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz", + "integrity": "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==" + }, + "@typescript-eslint/eslint-plugin": { + "version": "2.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.18.0.tgz", + "integrity": "sha512-kuO8WQjV+RCZvAXVRJfXWiJ8iYEtfHlKgcqqqXg9uUkIolEHuUaMmm8/lcO4xwCOtaw6mY0gStn2Lg4/eUXXYQ==", + "requires": { + "@typescript-eslint/experimental-utils": "2.18.0", + "eslint-utils": "^1.4.3", + "functional-red-black-tree": "^1.0.1", + "regexpp": "^3.0.0", + "tsutils": "^3.17.1" + } + }, + "@typescript-eslint/experimental-utils": { + "version": "2.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.18.0.tgz", + "integrity": "sha512-J6MopKPHuJYmQUkANLip7g9I82ZLe1naCbxZZW3O2sIxTiq/9YYoOELEKY7oPg0hJ0V/AQ225h2z0Yp+RRMXhw==", + "requires": { + "@types/json-schema": "^7.0.3", + "@typescript-eslint/typescript-estree": "2.18.0", + "eslint-scope": "^5.0.0" + } + }, + "@typescript-eslint/parser": { + "version": "2.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.18.0.tgz", + "integrity": "sha512-SJJPxFMEYEWkM6pGfcnjLU+NJIPo+Ko1QrCBL+i0+zV30ggLD90huEmMMhKLHBpESWy9lVEeWlQibweNQzyc+A==", + "requires": { + "@types/eslint-visitor-keys": "^1.0.0", + "@typescript-eslint/experimental-utils": "2.18.0", + "@typescript-eslint/typescript-estree": "2.18.0", + "eslint-visitor-keys": "^1.1.0" + } + }, + "@typescript-eslint/typescript-estree": { + "version": "2.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.18.0.tgz", + "integrity": "sha512-gVHylf7FDb8VSi2ypFuEL3hOtoC4HkZZ5dOjXvVjoyKdRrvXAOPSzpNRnKMfaUUEiSLP8UF9j9X9EDLxC0lfZg==", + "requires": { + "debug": "^4.1.1", + "eslint-visitor-keys": "^1.1.0", + "glob": "^7.1.6", + "is-glob": "^4.0.1", + "lodash": "^4.17.15", + "semver": "^6.3.0", + "tsutils": "^3.17.1" + } + }, + "@webassemblyjs/ast": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.8.5.tgz", + "integrity": "sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ==", + "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==" + }, + "@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==" + }, + "@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==" + }, + "@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==", + "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==" + }, + "@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==", + "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==" + }, + "@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==", + "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==", + "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==", + "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==" + }, + "@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==", + "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==", + "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==", + "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==", + "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==", + "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==", + "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==" + }, + "@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==" + }, + "abab": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.3.tgz", + "integrity": "sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg==" + }, + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "acorn": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.0.tgz", + "integrity": "sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ==" + }, + "acorn-globals": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz", + "integrity": "sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==", + "requires": { + "acorn": "^6.0.1", + "acorn-walk": "^6.0.1" + }, + "dependencies": { + "acorn": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.0.tgz", + "integrity": "sha512-gac8OEcQ2Li1dxIEWGZzsp2BitJxwkwcOm0zHAJLcPJaVvm58FRnk6RkuLRpU1EujipU2ZFODv2P9DLMfnV8mw==" + } + } + }, + "acorn-jsx": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.1.0.tgz", + "integrity": "sha512-tMUqwBWfLFbJbizRmEcWSLw6HnFzfdJs2sOJEOwwtVPMoH/0Ay+E703oZz78VSXZiiDcZrQ5XKjPIUQixhmgVw==" + }, + "acorn-walk": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz", + "integrity": "sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==" + }, + "address": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/address/-/address-1.1.2.tgz", + "integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==" + }, + "adjust-sourcemap-loader": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-2.0.0.tgz", + "integrity": "sha512-4hFsTsn58+YjrU9qKzML2JSSDqKvN8mUGQ0nNIrfPi8hmIONT4L3uUaT6MKdMsZ9AjsU6D2xDkZxCkbQPxChrA==", + "requires": { + "assert": "1.4.1", + "camelcase": "5.0.0", + "loader-utils": "1.2.3", + "object-path": "0.11.4", + "regex-parser": "2.2.10" + }, + "dependencies": { + "camelcase": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", + "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==" + } + } + }, + "aggregate-error": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz", + "integrity": "sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==", + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ajv": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.11.0.tgz", + "integrity": "sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA==", + "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==" + }, + "ajv-keywords": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz", + "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==" + }, + "alphanum-sort": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", + "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=" + }, + "ansi-colors": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", + "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==" + }, + "ansi-escapes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.0.tgz", + "integrity": "sha512-EiYhwo0v255HUL6eDyuLrXEkTi7WwVCLAw+SeOQ7M7qdun1z1pum4DEm/nuqIVbPvi9RPPc9k9LbyBv6H0DwVg==", + "requires": { + "type-fest": "^0.8.1" + } + }, + "ansi-html": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", + "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=" + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "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==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "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=", + "requires": { + "ast-types-flow": "0.0.7", + "commander": "^2.11.0" + } + }, + "arity-n": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arity-n/-/arity-n-1.0.4.tgz", + "integrity": "sha1-2edrEXM+CFacCEeuezmyhgswt0U=" + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + }, + "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==" + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" + }, + "array-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", + "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=" + }, + "array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==" + }, + "array-includes": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz", + "integrity": "sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0", + "is-string": "^1.0.5" + } + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "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=" + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "assert": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", + "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", + "requires": { + "util": "0.10.3" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" + }, + "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=" + }, + "astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==" + }, + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "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==" + }, + "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==" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" + }, + "autoprefixer": { + "version": "9.7.4", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.7.4.tgz", + "integrity": "sha512-g0Ya30YrMBAEZk60lp+qfX5YQllG+S5W3GYCFvyHTvhOki0AEQJLPEcIuGRsqVwLi8FvXPVtwTGhfr38hVpm0g==", + "requires": { + "browserslist": "^4.8.3", + "caniuse-lite": "^1.0.30001020", + "chalk": "^2.4.2", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^7.0.26", + "postcss-value-parser": "^4.0.2" + } + }, + "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=" + }, + "aws4": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", + "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==" + }, + "axobject-query": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.1.1.tgz", + "integrity": "sha512-lF98xa/yvy6j3fBHAgQXIYl+J4eZadOSqsPojemUqClzNbBV38wWGpUbQbVEyf4eUF5yF7eHmGgGA2JiHyjeqw==", + "requires": { + "@babel/runtime": "^7.7.4", + "@babel/runtime-corejs3": "^7.7.4" + } + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "requires": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "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" + } + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + } + } + }, + "babel-eslint": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.0.3.tgz", + "integrity": "sha512-z3U7eMY6r/3f3/JB9mTsLjyxrv0Yb1zb8PCWCLpguxfCzBIZUwy23R1t/XKewP+8mEN2Ck8Dtr4q20z6ce6SoA==", + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.0.0", + "@babel/traverse": "^7.0.0", + "@babel/types": "^7.0.0", + "eslint-visitor-keys": "^1.0.0", + "resolve": "^1.12.0" + } + }, + "babel-extract-comments": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/babel-extract-comments/-/babel-extract-comments-1.0.0.tgz", + "integrity": "sha512-qWWzi4TlddohA91bFwgt6zO/J0X+io7Qp184Fw0m2JYRSTZnJbFR8+07KmzudHCZgOiKRCrjhylwv9Xd8gfhVQ==", + "requires": { + "babylon": "^6.18.0" + } + }, + "babel-jest": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-24.9.0.tgz", + "integrity": "sha512-ntuddfyiN+EhMw58PTNL1ph4C9rECiQXjI4nMMBKBaNjXvqLdkXpPRcMSr4iyBrJg/+wz9brFUD6RhOAT6r4Iw==", + "requires": { + "@jest/transform": "^24.9.0", + "@jest/types": "^24.9.0", + "@types/babel__core": "^7.1.0", + "babel-plugin-istanbul": "^5.1.0", + "babel-preset-jest": "^24.9.0", + "chalk": "^2.4.2", + "slash": "^2.0.0" + } + }, + "babel-loader": { + "version": "8.0.6", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.0.6.tgz", + "integrity": "sha512-4BmWKtBOBm13uoUwd08UwjZlaw3O9GWf456R9j+5YykFZ6LUIjIKLc0zEZf+hauxPOJs96C8k6FvYD09vWzhYw==", + "requires": { + "find-cache-dir": "^2.0.0", + "loader-utils": "^1.0.2", + "mkdirp": "^0.5.1", + "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==" + } + } + }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz", + "integrity": "sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ==", + "requires": { + "object.assign": "^4.1.0" + } + }, + "babel-plugin-istanbul": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-5.2.0.tgz", + "integrity": "sha512-5LphC0USA8t4i1zCtjbbNb6jJj/9+X6P37Qfirc/70EQ34xKlMW+a1RHGwxGI+SwWpNwZ27HqvzAobeqaXwiZw==", + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "find-up": "^3.0.0", + "istanbul-lib-instrument": "^3.3.0", + "test-exclude": "^5.2.3" + } + }, + "babel-plugin-jest-hoist": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.9.0.tgz", + "integrity": "sha512-2EMA2P8Vp7lG0RAzr4HXqtYwacfMErOuv1U3wrvxHX6rD1sV6xS3WXG3r8TRQ2r6w8OhvSdWt+z41hQNwNm3Xw==", + "requires": { + "@types/babel__traverse": "^7.0.6" + } + }, + "babel-plugin-macros": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.7.1.tgz", + "integrity": "sha512-HNM284amlKSQ6FddI4jLXD+XTqF0cTYOe5uemOIZxHJHnamC+OhFQ57rMF9sgnYhkJQptVl9U1SKVZsV9/GLQQ==", + "requires": { + "@babel/runtime": "^7.7.2", + "cosmiconfig": "^6.0.0", + "resolve": "^1.12.0" + }, + "dependencies": { + "cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + } + }, + "import-fresh": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", + "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "parse-json": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz", + "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==", + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1", + "lines-and-columns": "^1.1.6" + } + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" + }, + "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==" + } + } + }, + "babel-plugin-named-asset-import": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.5.tgz", + "integrity": "sha512-sGhfINU+AuMw9oFAdIn/nD5sem3pn/WgxAfDZ//Q3CnF+5uaho7C7shh2rKLk6sKE/XkfmyibghocwKdVjLIKg==" + }, + "babel-plugin-syntax-object-rest-spread": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", + "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=" + }, + "babel-plugin-transform-object-rest-spread": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz", + "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=", + "requires": { + "babel-plugin-syntax-object-rest-spread": "^6.8.0", + "babel-runtime": "^6.26.0" + } + }, + "babel-plugin-transform-react-remove-prop-types": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", + "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==" + }, + "babel-preset-jest": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-24.9.0.tgz", + "integrity": "sha512-izTUuhE4TMfTRPF92fFwD2QfdXaZW08qvWTFCI51V8rW5x00UuPgc3ajRoWofXOuxjfcOM5zzSYsQS3H8KGCAg==", + "requires": { + "@babel/plugin-syntax-object-rest-spread": "^7.0.0", + "babel-plugin-jest-hoist": "^24.9.0" + } + }, + "babel-preset-react-app": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-9.1.0.tgz", + "integrity": "sha512-0qMOv/pCcCQWxX1eNyKD9GlzZTdzZIK/Pq3O6TGe65tZSJTSplw1pFlaPujm0GjBj4g3GeCQbP08vvzlH7OGHg==", + "requires": { + "@babel/core": "7.7.4", + "@babel/plugin-proposal-class-properties": "7.7.4", + "@babel/plugin-proposal-decorators": "7.7.4", + "@babel/plugin-proposal-nullish-coalescing-operator": "7.7.4", + "@babel/plugin-proposal-numeric-separator": "7.7.4", + "@babel/plugin-proposal-object-rest-spread": "7.7.4", + "@babel/plugin-proposal-optional-chaining": "7.7.4", + "@babel/plugin-syntax-dynamic-import": "7.7.4", + "@babel/plugin-transform-destructuring": "7.7.4", + "@babel/plugin-transform-flow-strip-types": "7.7.4", + "@babel/plugin-transform-react-display-name": "7.7.4", + "@babel/plugin-transform-runtime": "7.7.4", + "@babel/preset-env": "7.7.4", + "@babel/preset-react": "7.7.4", + "@babel/preset-typescript": "7.7.4", + "@babel/runtime": "7.7.4", + "babel-plugin-dynamic-import-node": "2.3.0", + "babel-plugin-macros": "2.7.1", + "babel-plugin-transform-react-remove-prop-types": "0.4.24" + }, + "dependencies": { + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.7.4.tgz", + "integrity": "sha512-TbYHmr1Gl1UC7Vo2HVuj/Naci5BEGNZ0AJhzqD2Vpr6QPFWpUmBRLrIDjedzx7/CShq0bRDS2gI4FIs77VHLVQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.7.4" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.7.4.tgz", + "integrity": "sha512-rnpnZR3/iWKmiQyJ3LKJpSwLDcX/nSXhdLk4Aq/tXOApIvyu7qoabrige0ylsAJffaUC51WiBu209Q0U+86OWQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-object-rest-spread": "^7.7.4" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.7.4.tgz", + "integrity": "sha512-JmgaS+ygAWDR/STPe3/7y0lNlHgS+19qZ9aC06nYLwQ/XB7c0q5Xs+ksFU3EDnp9EiEsO0dnRAOKeyLHTZuW3A==", + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-optional-chaining": "^7.7.4" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.7.4.tgz", + "integrity": "sha512-jHQW0vbRGvwQNgyVxwDh4yuXu4bH1f5/EICJLAhl1SblLs2CDhrsmCk+v5XLdE9wxtAFRyxx+P//Iw+a5L/tTg==", + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.7.4.tgz", + "integrity": "sha512-4jFMXI1Cu2aXbcXXl8Lr6YubCn6Oc7k9lLsu8v61TZh+1jny2BWmdtvY9zSUlLdGUvcy9DMAWyZEOqjsbeg/wA==", + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-react-display-name": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.7.4.tgz", + "integrity": "sha512-sBbIvqYkthai0X0vkD2xsAwluBp+LtNHH+/V4a5ydifmTtb8KOVOlrMIk/MYmIc4uTYDnjZUHQildYNo36SRJw==", + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/preset-env": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.7.4.tgz", + "integrity": "sha512-Dg+ciGJjwvC1NIe/DGblMbcGq1HOtKbw8RLl4nIjlfcILKEOkWT/vRqPpumswABEBVudii6dnVwrBtzD7ibm4g==", + "requires": { + "@babel/helper-module-imports": "^7.7.4", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-async-generator-functions": "^7.7.4", + "@babel/plugin-proposal-dynamic-import": "^7.7.4", + "@babel/plugin-proposal-json-strings": "^7.7.4", + "@babel/plugin-proposal-object-rest-spread": "^7.7.4", + "@babel/plugin-proposal-optional-catch-binding": "^7.7.4", + "@babel/plugin-proposal-unicode-property-regex": "^7.7.4", + "@babel/plugin-syntax-async-generators": "^7.7.4", + "@babel/plugin-syntax-dynamic-import": "^7.7.4", + "@babel/plugin-syntax-json-strings": "^7.7.4", + "@babel/plugin-syntax-object-rest-spread": "^7.7.4", + "@babel/plugin-syntax-optional-catch-binding": "^7.7.4", + "@babel/plugin-syntax-top-level-await": "^7.7.4", + "@babel/plugin-transform-arrow-functions": "^7.7.4", + "@babel/plugin-transform-async-to-generator": "^7.7.4", + "@babel/plugin-transform-block-scoped-functions": "^7.7.4", + "@babel/plugin-transform-block-scoping": "^7.7.4", + "@babel/plugin-transform-classes": "^7.7.4", + "@babel/plugin-transform-computed-properties": "^7.7.4", + "@babel/plugin-transform-destructuring": "^7.7.4", + "@babel/plugin-transform-dotall-regex": "^7.7.4", + "@babel/plugin-transform-duplicate-keys": "^7.7.4", + "@babel/plugin-transform-exponentiation-operator": "^7.7.4", + "@babel/plugin-transform-for-of": "^7.7.4", + "@babel/plugin-transform-function-name": "^7.7.4", + "@babel/plugin-transform-literals": "^7.7.4", + "@babel/plugin-transform-member-expression-literals": "^7.7.4", + "@babel/plugin-transform-modules-amd": "^7.7.4", + "@babel/plugin-transform-modules-commonjs": "^7.7.4", + "@babel/plugin-transform-modules-systemjs": "^7.7.4", + "@babel/plugin-transform-modules-umd": "^7.7.4", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.7.4", + "@babel/plugin-transform-new-target": "^7.7.4", + "@babel/plugin-transform-object-super": "^7.7.4", + "@babel/plugin-transform-parameters": "^7.7.4", + "@babel/plugin-transform-property-literals": "^7.7.4", + "@babel/plugin-transform-regenerator": "^7.7.4", + "@babel/plugin-transform-reserved-words": "^7.7.4", + "@babel/plugin-transform-shorthand-properties": "^7.7.4", + "@babel/plugin-transform-spread": "^7.7.4", + "@babel/plugin-transform-sticky-regex": "^7.7.4", + "@babel/plugin-transform-template-literals": "^7.7.4", + "@babel/plugin-transform-typeof-symbol": "^7.7.4", + "@babel/plugin-transform-unicode-regex": "^7.7.4", + "@babel/types": "^7.7.4", + "browserslist": "^4.6.0", + "core-js-compat": "^3.1.1", + "invariant": "^2.2.2", + "js-levenshtein": "^1.1.3", + "semver": "^5.5.0" + } + }, + "@babel/preset-react": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.7.4.tgz", + "integrity": "sha512-j+vZtg0/8pQr1H8wKoaJyGL2IEk3rG/GIvua7Sec7meXVIvGycihlGMx5xcU00kqCJbwzHs18xTu3YfREOqQ+g==", + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-transform-react-display-name": "^7.7.4", + "@babel/plugin-transform-react-jsx": "^7.7.4", + "@babel/plugin-transform-react-jsx-self": "^7.7.4", + "@babel/plugin-transform-react-jsx-source": "^7.7.4" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + }, + "dependencies": { + "core-js": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", + "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==" + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + } + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "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=", + "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==", + "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==", + "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==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "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==" + } + } + }, + "base64-js": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=" + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "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==" + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==" + }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + }, + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" + }, + "body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "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==" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" + } + } + }, + "bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "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=" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "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=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + }, + "browser-process-hrtime": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz", + "integrity": "sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw==" + }, + "browser-resolve": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", + "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", + "requires": { + "resolve": "1.1.7" + }, + "dependencies": { + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=" + } + } + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "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==", + "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==", + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "requires": { + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" + } + }, + "browserify-sign": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", + "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", + "requires": { + "bn.js": "^4.1.1", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.2", + "elliptic": "^6.0.0", + "inherits": "^2.0.1", + "parse-asn1": "^5.0.0" + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "requires": { + "pako": "~1.0.5" + } + }, + "browserslist": { + "version": "4.8.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.8.5.tgz", + "integrity": "sha512-4LMHuicxkabIB+n9874jZX/az1IaZ5a+EUuvD7KFOu9x/Bd5YHyO0DIz2ls/Kl8g0ItS4X/ilEgf4T1Br0lgSg==", + "requires": { + "caniuse-lite": "^1.0.30001022", + "electron-to-chromium": "^1.3.338", + "node-releases": "^1.1.46" + } + }, + "bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "requires": { + "node-int64": "^0.4.0" + } + }, + "buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "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==" + }, + "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==" + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" + }, + "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=" + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" + }, + "cacache": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-13.0.1.tgz", + "integrity": "sha512-5ZvAxd05HDDU+y9BVvcqYu2LLXmPnQ0hW62h32g4xBTgL/MppR4/04NHfj/ycM2y6lmTnbw6HVi+1eN0Psba6w==", + "requires": { + "chownr": "^1.1.2", + "figgy-pudding": "^3.5.1", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.2", + "infer-owner": "^1.0.4", + "lru-cache": "^5.1.1", + "minipass": "^3.0.0", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "p-map": "^3.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^2.7.1", + "ssri": "^7.0.0", + "unique-filename": "^1.1.1" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "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-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=" + }, + "caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "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=", + "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=" + }, + "camel-case": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", + "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", + "requires": { + "no-case": "^2.2.0", + "upper-case": "^1.1.1" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "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==", + "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.30001023", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001023.tgz", + "integrity": "sha512-C5TDMiYG11EOhVOA62W1p3UsJ2z4DsHtMBQtjzp3ZsUglcQn62WOUgW0y795c7A5uZ+GCEIvzkMatLIlAsbNTA==" + }, + "capture-exit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz", + "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==", + "requires": { + "rsvp": "^4.8.4" + } + }, + "case-sensitive-paths-webpack-plugin": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.2.0.tgz", + "integrity": "sha512-u5ElzokS8A1pm9vM3/iDgTcI3xqHxuCao94Oz8etI3cf0Tio0p8izkDYbTIn09uP3yUUr6+veaE6IkjnTYS46g==" + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "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==" + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "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" + }, + "dependencies": { + "fsevents": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.11.tgz", + "integrity": "sha512-+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw==", + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1", + "node-pre-gyp": "*" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "optional": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "bundled": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "optional": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.1.3", + "bundled": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "optional": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "optional": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "optional": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "debug": { + "version": "3.2.6", + "bundled": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + }, + "deep-extend": { + "version": "0.6.0", + "bundled": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.7", + "bundled": true, + "optional": true, + "requires": { + "minipass": "^2.6.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.6", + "bundled": true, + "optional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.24", + "bundled": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore-walk": { + "version": "3.0.3", + "bundled": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "bundled": true, + "optional": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "optional": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "optional": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "optional": true + }, + "minipass": { + "version": "2.9.0", + "bundled": true, + "optional": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.3.3", + "bundled": true, + "optional": true, + "requires": { + "minipass": "^2.9.0" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "optional": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.1.2", + "bundled": true, + "optional": true + }, + "needle": { + "version": "2.4.0", + "bundled": true, + "optional": true, + "requires": { + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.14.0", + "bundled": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4.4.2" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.1.1", + "bundled": true, + "optional": true, + "requires": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-normalize-package-bin": { + "version": "1.0.1", + "bundled": true, + "optional": true + }, + "npm-packlist": { + "version": "1.4.7", + "bundled": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "optional": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "rc": { + "version": "1.2.8", + "bundled": true, + "optional": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rimraf": { + "version": "2.7.1", + "bundled": true, + "optional": true, + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "optional": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "optional": true + }, + "semver": { + "version": "5.7.1", + "bundled": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "optional": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "optional": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "tar": { + "version": "4.4.13", + "bundled": true, + "optional": 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" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "wide-align": { + "version": "1.1.3", + "bundled": true, + "optional": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "yallist": { + "version": "3.1.1", + "bundled": 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=", + "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=", + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + } + } + }, + "chownr": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz", + "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==" + }, + "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==", + "requires": { + "tslib": "^1.9.0" + } + }, + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" + }, + "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==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "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==", + "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=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "clean-css": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz", + "integrity": "sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==", + "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==" + } + } + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-width": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=" + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + }, + "dependencies": { + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + }, + "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=" + }, + "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==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + } + } + }, + "clone-deep": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-0.2.4.tgz", + "integrity": "sha1-TnPdCen7lxzDhnDF3O2cGJZIHMY=", + "requires": { + "for-own": "^0.1.3", + "is-plain-object": "^2.0.1", + "kind-of": "^3.0.2", + "lazy-cache": "^1.0.3", + "shallow-clone": "^0.1.2" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + }, + "coa": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", + "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", + "requires": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + } + }, + "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=" + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/color/-/color-3.1.2.tgz", + "integrity": "sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg==", + "requires": { + "color-convert": "^1.9.1", + "color-string": "^1.5.2" + } + }, + "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==", + "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=" + }, + "color-string": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz", + "integrity": "sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==", + "requires": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "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==" + }, + "common-tags": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz", + "integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==" + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + }, + "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==" + }, + "compose-function": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/compose-function/-/compose-function-3.0.3.tgz", + "integrity": "sha1-ntZ18TzFRQHTCVCkhv9qe6OrGF8=", + "requires": { + "arity-n": "^1.0.4" + } + }, + "compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "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==", + "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==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.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==", + "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" + } + } + } + }, + "confusing-browser-globals": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.9.tgz", + "integrity": "sha512-KbS1Y0jMtyPgIxjO7ZzMAuUpAKMt1SzCL9fsrKsX6b0zJPTaT0SiSPmewwVZg9UAO83HVIlEhZF84LIjZ0lmAw==" + }, + "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==" + }, + "console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==" + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" + }, + "contains-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", + "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=" + }, + "content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "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==" + }, + "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==", + "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==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" + }, + "core-js": { + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.4.tgz", + "integrity": "sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw==" + }, + "core-js-compat": { + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.4.tgz", + "integrity": "sha512-zAa3IZPvsJ0slViBQ2z+vgyyTuhd3MFn1rBQjZSKVEgB0UMYhUkCj9jJUVPgGTGqWvsBVmfnruXgTcNyTlEiSA==", + "requires": { + "browserslist": "^4.8.3", + "semver": "7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==" + } + } + }, + "core-js-pure": { + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.6.4.tgz", + "integrity": "sha512-epIhRLkXdgv32xIUFaaAry2wdxZYBi6bgM7cB136dzzXXa+dFyRLTZeLUJxnd8ShrmyVXBub63n2NHo2JAt8Cw==" + }, + "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=" + }, + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + } + }, + "create-ecdh": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", + "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.0.0" + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "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==", + "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": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "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==" + } + } + }, + "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==", + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "css": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", + "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", + "requires": { + "inherits": "^2.0.3", + "source-map": "^0.6.1", + "source-map-resolve": "^0.5.2", + "urix": "^0.1.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "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==", + "requires": { + "postcss": "^7.0.5" + } + }, + "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=" + }, + "css-declaration-sorter": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz", + "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==", + "requires": { + "postcss": "^7.0.1", + "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==", + "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==" + }, + "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==", + "requires": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "css-loader": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-3.2.0.tgz", + "integrity": "sha512-QTF3Ud5H7DaZotgdcJjGMvyDj5F3Pn1j/sC6VBEOVp94cbwqyIBdcs/quzj4MC1BKQSrTpQznegH/5giYbhnCQ==", + "requires": { + "camelcase": "^5.3.1", + "cssesc": "^3.0.0", + "icss-utils": "^4.1.1", + "loader-utils": "^1.2.3", + "normalize-path": "^3.0.0", + "postcss": "^7.0.17", + "postcss-modules-extract-imports": "^2.0.0", + "postcss-modules-local-by-default": "^3.0.2", + "postcss-modules-scope": "^2.1.0", + "postcss-modules-values": "^3.0.0", + "postcss-value-parser": "^4.0.0", + "schema-utils": "^2.0.0" + }, + "dependencies": { + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + } + } + }, + "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==", + "requires": { + "postcss": "^7.0.5" + } + }, + "css-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "requires": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==" + }, + "css-tree": { + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", + "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", + "requires": { + "mdn-data": "2.0.4", + "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==" + } + } + }, + "css-unit-converter": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.1.tgz", + "integrity": "sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY=" + }, + "css-what": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.2.1.tgz", + "integrity": "sha512-WwOrosiQTvyms+Ti5ZC5vGEK0Vod3FTt1ca+payZqvKuGJF+dq7bG63DstxtN0dpm6FxY27a/zS3Wten+gEtGw==" + }, + "css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=" + }, + "cssdb": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-4.4.0.tgz", + "integrity": "sha512-LsTAR1JPEM9TpGhl/0p3nQecC2LJ0kD8X5YARu1hk/9I1gril5vDtMZyNxcEpxxDj34YNck/ucjuoUd66K03oQ==" + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" + }, + "cssnano": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz", + "integrity": "sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==", + "requires": { + "cosmiconfig": "^5.0.0", + "cssnano-preset-default": "^4.0.7", + "is-resolvable": "^1.0.0", + "postcss": "^7.0.0" + } + }, + "cssnano-preset-default": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz", + "integrity": "sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==", + "requires": { + "css-declaration-sorter": "^4.0.1", + "cssnano-util-raw-cache": "^4.0.1", + "postcss": "^7.0.0", + "postcss-calc": "^7.0.1", + "postcss-colormin": "^4.0.3", + "postcss-convert-values": "^4.0.1", + "postcss-discard-comments": "^4.0.2", + "postcss-discard-duplicates": "^4.0.2", + "postcss-discard-empty": "^4.0.1", + "postcss-discard-overridden": "^4.0.1", + "postcss-merge-longhand": "^4.0.11", + "postcss-merge-rules": "^4.0.3", + "postcss-minify-font-values": "^4.0.2", + "postcss-minify-gradients": "^4.0.2", + "postcss-minify-params": "^4.0.2", + "postcss-minify-selectors": "^4.0.2", + "postcss-normalize-charset": "^4.0.1", + "postcss-normalize-display-values": "^4.0.2", + "postcss-normalize-positions": "^4.0.2", + "postcss-normalize-repeat-style": "^4.0.2", + "postcss-normalize-string": "^4.0.2", + "postcss-normalize-timing-functions": "^4.0.2", + "postcss-normalize-unicode": "^4.0.1", + "postcss-normalize-url": "^4.0.1", + "postcss-normalize-whitespace": "^4.0.2", + "postcss-ordered-values": "^4.1.2", + "postcss-reduce-initial": "^4.0.3", + "postcss-reduce-transforms": "^4.0.2", + "postcss-svgo": "^4.0.2", + "postcss-unique-selectors": "^4.0.1" + } + }, + "cssnano-util-get-arguments": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", + "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=" + }, + "cssnano-util-get-match": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz", + "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=" + }, + "cssnano-util-raw-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz", + "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==", + "requires": { + "postcss": "^7.0.0" + } + }, + "cssnano-util-same-parent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz", + "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==" + }, + "csso": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.0.2.tgz", + "integrity": "sha512-kS7/oeNVXkHWxby5tHVxlhjizRCSv8QdU7hB2FpdAibDU8FjTAolhNjKNTiLzXtUrKT6HwClE81yXwEk1309wg==", + "requires": { + "css-tree": "1.0.0-alpha.37" + } + }, + "cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" + }, + "cssstyle": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.4.0.tgz", + "integrity": "sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA==", + "requires": { + "cssom": "0.3.x" + } + }, + "csstype": { + "version": "2.6.8", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.8.tgz", + "integrity": "sha512-msVS9qTuMT5zwAGCVm4mxfrZ18BNc6Csd0oJAtiFMZ1FAx1CCvy2+5MDmYoix63LM/6NDbNtodCiGYGmFgO0dA==" + }, + "cyclist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=" + }, + "d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "requires": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "damerau-levenshtein": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz", + "integrity": "sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug==" + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "data-urls": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz", + "integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==", + "requires": { + "abab": "^2.0.0", + "whatwg-mimetype": "^2.2.0", + "whatwg-url": "^7.0.0" + }, + "dependencies": { + "whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + } + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + }, + "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=" + }, + "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==", + "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" + } + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" + }, + "default-gateway": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", + "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", + "requires": { + "execa": "^1.0.0", + "ip-regex": "^2.1.0" + } + }, + "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==", + "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==", + "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==", + "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==", + "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==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "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==" + } + } + }, + "del": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", + "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", + "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": { + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "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=" + } + } + }, + "p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==" + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "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=" + }, + "detect-newline": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", + "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=" + }, + "detect-node": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", + "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==" + }, + "detect-port-alt": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", + "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", + "requires": { + "address": "^1.0.1", + "debug": "^2.6.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "diff-sequences": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-24.9.0.tgz", + "integrity": "sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew==" + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "dir-glob": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", + "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", + "requires": { + "arrify": "^1.0.1", + "path-type": "^3.0.0" + } + }, + "dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=" + }, + "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==", + "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=", + "requires": { + "buffer-indexof": "^1.0.0" + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "requires": { + "esutils": "^2.0.2" + } + }, + "dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "requires": { + "utila": "~0.4" + } + }, + "dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "requires": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + }, + "dependencies": { + "domelementtype": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz", + "integrity": "sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==" + } + } + }, + "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==" + }, + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" + }, + "domexception": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", + "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", + "requires": { + "webidl-conversions": "^4.0.2" + } + }, + "domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "requires": { + "domelementtype": "1" + } + }, + "domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "dot-prop": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", + "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "requires": { + "is-obj": "^1.0.0" + } + }, + "dotenv": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz", + "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==" + }, + "dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==" + }, + "duplexer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", + "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=" + }, + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.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==", + "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" + } + } + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "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=" + }, + "electron-to-chromium": { + "version": "1.3.340", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.340.tgz", + "integrity": "sha512-hRFBAglhcj5iVYH+o8QU0+XId1WGoc0VGowJB1cuJAt3exHGrivZvWeAO5BRgBZqwZtwxjm8a5MQeGoT/Su3ww==" + }, + "elliptic": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.2.tgz", + "integrity": "sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw==", + "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" + } + }, + "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==" + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + }, + "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==", + "requires": { + "once": "^1.4.0" + } + }, + "enhanced-resolve": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz", + "integrity": "sha512-98p2zE+rL7/g/DzMHMTF4zZlCgeVdJ7yr6xzEpJRYwFYrGi9ANdn5DnJURg6RpBkyk60XYDnWIv51VfIhfNGuA==", + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + }, + "dependencies": { + "memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", + "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "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" + } + } + } + }, + "entities": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz", + "integrity": "sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==" + }, + "errno": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", + "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "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==", + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.17.4", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz", + "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==", + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.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==", + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "es5-ext": { + "version": "0.10.53", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", + "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", + "requires": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.3", + "next-tick": "~1.0.0" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "requires": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "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=" + }, + "escodegen": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.13.0.tgz", + "integrity": "sha512-eYk2dCkxR07DsHA/X2hRBj0CFAZeri/LyDMc0C8JT1Hqi6JnVpMhJ7XFITbb0+yZS3lVkaPL2oCkZ3AVmeVbMw==", + "requires": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "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==", + "optional": true + } + } + }, + "eslint": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", + "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", + "requires": { + "@babel/code-frame": "^7.0.0", + "ajv": "^6.10.0", + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "eslint-scope": "^5.0.0", + "eslint-utils": "^1.4.3", + "eslint-visitor-keys": "^1.1.0", + "espree": "^6.1.2", + "esquery": "^1.0.1", + "esutils": "^2.0.2", + "file-entry-cache": "^5.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.0.0", + "globals": "^12.1.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "inquirer": "^7.0.0", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.14", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.3", + "progress": "^2.0.0", + "regexpp": "^2.0.1", + "semver": "^6.1.2", + "strip-ansi": "^5.2.0", + "strip-json-comments": "^3.0.1", + "table": "^5.2.3", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "globals": { + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.3.0.tgz", + "integrity": "sha512-wAfjdLgFsPZsklLJvOBUBmzYE8/CwhEqSBEMRXA3qxIiNtyqvjYurAtIfDh6chlEPUfmTY3MnZh5Hfh4q0UlIw==", + "requires": { + "type-fest": "^0.8.1" + } + }, + "import-fresh": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", + "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "regexpp": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", + "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==" + }, + "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==" + } + } + }, + "eslint-config-react-app": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-5.1.0.tgz", + "integrity": "sha512-hBaxisHC6HXRVvxX+/t1n8mOdmCVIKgkXsf2WoUkJi7upHJTwYTsdCmx01QPOjKNT34QMQQ9sL0tVBlbiMFjxA==", + "requires": { + "confusing-browser-globals": "^1.0.9" + } + }, + "eslint-import-resolver-node": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.3.tgz", + "integrity": "sha512-b8crLDo0M5RSe5YG8Pu2DYBj71tSB6OvXkfzwbJU2w7y8P4/yo0MyF8jU26IEuEuHF2K5/gcAJE3LhQGqBBbVg==", + "requires": { + "debug": "^2.6.9", + "resolve": "^1.13.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "resolve": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.0.tgz", + "integrity": "sha512-+hTmAldEGE80U2wJJDC1lebb5jWqvTYAfm3YZ1ckk1gBr0MnCqUKlwK1e+anaFljIl+F5tR5IoZcm4ZDA1zMQw==", + "requires": { + "path-parse": "^1.0.6" + } + } + } + }, + "eslint-loader": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-3.0.2.tgz", + "integrity": "sha512-S5VnD+UpVY1PyYRqeBd/4pgsmkvSokbHqTXAQMpvCyRr3XN2tvSLo9spm2nEpqQqh9dezw3os/0zWihLeOg2Rw==", + "requires": { + "fs-extra": "^8.1.0", + "loader-fs-cache": "^1.0.2", + "loader-utils": "^1.2.3", + "object-hash": "^1.3.1", + "schema-utils": "^2.2.0" + } + }, + "eslint-module-utils": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.5.2.tgz", + "integrity": "sha512-LGScZ/JSlqGKiT8OC+cYRxseMjyqt6QO54nl281CK93unD89ijSeRV6An8Ci/2nvWVKe8K/Tqdm75RQoIOCr+Q==", + "requires": { + "debug": "^2.6.9", + "pkg-dir": "^2.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + }, + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "requires": { + "find-up": "^2.1.0" + } + } + } + }, + "eslint-plugin-flowtype": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-3.13.0.tgz", + "integrity": "sha512-bhewp36P+t7cEV0b6OdmoRWJCBYRiHFlqPZAG1oS3SF+Y0LQkeDvFSM4oxoxvczD1OdONCXMlJfQFiWLcV9urw==", + "requires": { + "lodash": "^4.17.15" + } + }, + "eslint-plugin-import": { + "version": "2.18.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.18.2.tgz", + "integrity": "sha512-5ohpsHAiUBRNaBWAF08izwUGlbrJoJJ+W9/TBwsGoR1MnlgfwMIKrFeSjWbt6moabiXW9xNvtFz+97KHRfI4HQ==", + "requires": { + "array-includes": "^3.0.3", + "contains-path": "^0.1.0", + "debug": "^2.6.9", + "doctrine": "1.5.0", + "eslint-import-resolver-node": "^0.3.2", + "eslint-module-utils": "^2.4.0", + "has": "^1.0.3", + "minimatch": "^3.0.4", + "object.values": "^1.1.0", + "read-pkg-up": "^2.0.0", + "resolve": "^1.11.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "doctrine": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "requires": { + "esutils": "^2.0.2", + "isarray": "^1.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "requires": { + "locate-path": "^2.0.0" + } + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "requires": { + "error-ex": "^1.2.0" + } + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "requires": { + "pify": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "requires": { + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + } + } + } + }, + "eslint-plugin-jsx-a11y": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.2.3.tgz", + "integrity": "sha512-CawzfGt9w83tyuVekn0GDPU9ytYtxyxyFZ3aSWROmnRRFQFT2BiPJd7jvRdzNDi6oLWaS2asMeYSNMjWTV4eNg==", + "requires": { + "@babel/runtime": "^7.4.5", + "aria-query": "^3.0.0", + "array-includes": "^3.0.3", + "ast-types-flow": "^0.0.7", + "axobject-query": "^2.0.2", + "damerau-levenshtein": "^1.0.4", + "emoji-regex": "^7.0.2", + "has": "^1.0.3", + "jsx-ast-utils": "^2.2.1" + }, + "dependencies": { + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + } + } + }, + "eslint-plugin-react": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.16.0.tgz", + "integrity": "sha512-GacBAATewhhptbK3/vTP09CbFrgUJmBSaaRcWdbQLFvUZy9yVcQxigBNHGPU/KE2AyHpzj3AWXpxoMTsIDiHug==", + "requires": { + "array-includes": "^3.0.3", + "doctrine": "^2.1.0", + "has": "^1.0.3", + "jsx-ast-utils": "^2.2.1", + "object.entries": "^1.1.0", + "object.fromentries": "^2.0.0", + "object.values": "^1.1.0", + "prop-types": "^15.7.2", + "resolve": "^1.12.0" + }, + "dependencies": { + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "requires": { + "esutils": "^2.0.2" + } + } + } + }, + "eslint-plugin-react-hooks": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-1.7.0.tgz", + "integrity": "sha512-iXTCFcOmlWvw4+TOE8CLWj6yX1GwzT0Y6cUfHHZqWnSk144VmVIRcVGtUAzrLES7C798lmvnt02C7rxaOX1HNA==" + }, + "eslint-scope": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz", + "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==", + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", + "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "eslint-visitor-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz", + "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==" + }, + "espree": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-6.1.2.tgz", + "integrity": "sha512-2iUPuuPP+yW1PZaMSDM9eyVf8D5P0Hi8h83YtZ5bPc/zHYjII5khoixIUTMO794NOY8F/ThF1Bo8ncZILarUTA==", + "requires": { + "acorn": "^7.1.0", + "acorn-jsx": "^5.1.0", + "eslint-visitor-keys": "^1.1.0" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, + "esquery": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", + "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", + "requires": { + "estraverse": "^4.0.0" + } + }, + "esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "requires": { + "estraverse": "^4.1.0" + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "eventemitter3": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.0.tgz", + "integrity": "sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg==" + }, + "events": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.1.0.tgz", + "integrity": "sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg==" + }, + "eventsource": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz", + "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==", + "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==", + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "exec-sh": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.4.tgz", + "integrity": "sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A==" + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "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" + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=" + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "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==", + "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=", + "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=", + "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=" + } + } + }, + "expect": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-24.9.0.tgz", + "integrity": "sha512-wvVAx8XIol3Z5m9zvZXiyZOQ+sRJqNTIm6sGjdWlaZIeupQGO3WbYI+15D/AmEwZywL6wtJkbAbJtzkOfBuR0Q==", + "requires": { + "@jest/types": "^24.9.0", + "ansi-styles": "^3.2.0", + "jest-get-type": "^24.9.0", + "jest-matcher-utils": "^24.9.0", + "jest-message-util": "^24.9.0", + "jest-regex-util": "^24.9.0" + } + }, + "express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "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=" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" + } + } + }, + "ext": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", + "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", + "requires": { + "type": "^2.0.0" + }, + "dependencies": { + "type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.0.0.tgz", + "integrity": "sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow==" + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "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==", + "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==", + "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==", + "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=", + "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=", + "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==", + "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==", + "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==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "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==" + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + }, + "fast-deep-equal": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==" + }, + "fast-glob": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", + "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", + "requires": { + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.1.2", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.3", + "micromatch": "^3.1.10" + }, + "dependencies": { + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "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=", + "requires": { + "is-extglob": "^2.1.0" + } + } + } + } + } + }, + "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==" + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + }, + "faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", + "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "fb-watchman": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", + "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "requires": { + "bser": "2.1.1" + } + }, + "figgy-pudding": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz", + "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==" + }, + "figures": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.1.0.tgz", + "integrity": "sha512-ravh8VRXqHuMvZt/d8GblBeqDMkdJMBdv/2KntFH+ra5MXkO7nxNKpzQ3n6QD/2da1kH0aWmNISdvhM7gl2gVg==", + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-entry-cache": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", + "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "requires": { + "flat-cache": "^2.0.1" + } + }, + "file-loader": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-4.3.0.tgz", + "integrity": "sha512-aKrYPYjF1yG3oX0kWRrqrSMfgftm7oJW5M+m4owoldH5C51C0RkIwB++JbRvEW3IU6/ZG5n8UvEcdgwOt2UOWA==", + "requires": { + "loader-utils": "^1.2.3", + "schema-utils": "^2.5.0" + } + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "optional": true + }, + "filesize": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz", + "integrity": "sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==" + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "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=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "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==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "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==", + "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==", + "requires": { + "locate-path": "^3.0.0" + } + }, + "flat-cache": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", + "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "requires": { + "flatted": "^2.0.0", + "rimraf": "2.6.3", + "write": "1.0.3" + } + }, + "flatted": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz", + "integrity": "sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==" + }, + "flatten": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz", + "integrity": "sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==" + }, + "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==", + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.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==", + "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" + } + } + } + }, + "follow-redirects": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.10.0.tgz", + "integrity": "sha512-4eyLK6s6lH32nOvLLwlIOnr9zrL8Sm+OvW4pVTJNoXeGzYIkHVf+pADQi+OJ0E67hiuSLezPVPyBcIZO50TmmQ==", + "requires": { + "debug": "^3.0.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" + }, + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "requires": { + "for-in": "^1.0.1" + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + }, + "fork-ts-checker-webpack-plugin": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-3.1.0.tgz", + "integrity": "sha512-6OkRfjuNMNqb14f01xokcWcKV5Ekknc2FvziNpcTYru+kxIYFA2MtuuBI19MHThZnjSBhoi35Dcq+I0oUkFjmQ==", + "requires": { + "babel-code-frame": "^6.22.0", + "chalk": "^2.4.1", + "chokidar": "^2.0.4", + "micromatch": "^3.1.10", + "minimatch": "^3.0.4", + "semver": "^5.6.0", + "tapable": "^1.0.0", + "worker-rpc": "^0.1.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, + "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==", + "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=" + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "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=" + }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.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==", + "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" + } + } + } + }, + "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==", + "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==", + "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=", + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + }, + "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" + } + } + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz", + "integrity": "sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==", + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" + }, + "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==" + }, + "get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==" + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "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=" + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "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==", + "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.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz", + "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==", + "requires": { + "is-glob": "^4.0.1" + } + }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=" + }, + "global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "requires": { + "global-prefix": "^3.0.0" + } + }, + "global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "requires": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "dependencies": { + "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==" + } + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + }, + "globby": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz", + "integrity": "sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w==", + "requires": { + "array-union": "^1.0.1", + "dir-glob": "2.0.0", + "fast-glob": "^2.0.2", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" + }, + "dependencies": { + "ignore": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==" + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" + } + } + }, + "graceful-fs": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==" + }, + "growly": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", + "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=" + }, + "gzip-size": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz", + "integrity": "sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==", + "requires": { + "duplexer": "^0.1.1", + "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==" + } + } + }, + "handle-thing": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.0.tgz", + "integrity": "sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ==" + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + }, + "har-validator": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", + "requires": { + "ajv": "^6.5.5", + "har-schema": "^2.0.0" + } + }, + "harmony-reflect": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.1.tgz", + "integrity": "sha512-WJTeyp0JzGtHcuMsi7rw2VwtkvLa+JyfEKJCFyfcS0+CDkjQ5lHPu7zEhFZP+PDSRrEgXa5Ah0l1MbgbE41XjA==" + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "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=", + "requires": { + "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + } + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "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==" + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "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=", + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hash-base": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" + }, + "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==" + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "hosted-git-info": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.5.tgz", + "integrity": "sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==" + }, + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "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==", + "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" + } + } + } + }, + "hsl-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", + "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=" + }, + "hsla-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", + "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=" + }, + "html-comment-regex": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz", + "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==" + }, + "html-encoding-sniffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", + "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", + "requires": { + "whatwg-encoding": "^1.0.1" + } + }, + "html-entities": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz", + "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=" + }, + "html-escaper": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.0.tgz", + "integrity": "sha512-a4u9BeERWGu/S8JiWEAQcdrg9v4QArtP9keViQjGMdff20fBdd8waotXaNmODqBe6uZ3Nafi7K/ho4gCQHV3Ig==" + }, + "html-minifier": { + "version": "3.5.21", + "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.21.tgz", + "integrity": "sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA==", + "requires": { + "camel-case": "3.0.x", + "clean-css": "4.2.x", + "commander": "2.17.x", + "he": "1.2.x", + "param-case": "2.1.x", + "relateurl": "0.2.x", + "uglify-js": "3.4.x" + }, + "dependencies": { + "commander": { + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==" + } + } + }, + "html-webpack-plugin": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.0.0-beta.5.tgz", + "integrity": "sha512-y5l4lGxOW3pz3xBTFdfB9rnnrWRPVxlAhX6nrBYIcW+2k2zC3mSp/3DxlWVCMBfnO6UAnoF8OcFn0IMy6kaKAQ==", + "requires": { + "html-minifier": "^3.5.20", + "loader-utils": "^1.1.0", + "lodash": "^4.17.11", + "pretty-error": "^2.1.1", + "tapable": "^1.1.0", + "util.promisify": "1.0.0" + }, + "dependencies": { + "util.promisify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", + "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", + "requires": { + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" + } + } + } + }, + "htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", + "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "requires": { + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" + }, + "dependencies": { + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" + } + } + }, + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=" + }, + "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==", + "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=" + } + } + }, + "http-parser-js": { + "version": "0.4.10", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.10.tgz", + "integrity": "sha1-ksnBN0w1CF912zWexWzCV8u5P6Q=" + }, + "http-proxy": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.0.tgz", + "integrity": "sha512-84I2iJM/n1d4Hdgc6y2+qY5mDaz2PUVjlg9znE9byl+q0uC3DeByqBGReQu5tpLK0TAqTIXScRUV+dg7+bUPpQ==", + "requires": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + } + }, + "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==", + "requires": { + "http-proxy": "^1.17.0", + "is-glob": "^4.0.0", + "lodash": "^4.17.11", + "micromatch": "^3.1.10" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "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=" + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "icss-utils": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz", + "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==", + "requires": { + "postcss": "^7.0.14" + } + }, + "identity-obj-proxy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", + "integrity": "sha1-lNK9qWCERT7zb7xarsN+D3nx/BQ=", + "requires": { + "harmony-reflect": "^1.4.6" + } + }, + "ieee754": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" + }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==" + }, + "immer": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/immer/-/immer-1.10.0.tgz", + "integrity": "sha512-O3sR1/opvCDGLEVcvrGTMtLac8GJ5IwZC4puPrLuRj3l7ICKvkmA0vGuU9OW8mV9WIBRnaxp5GJh9IEAaNOoYg==" + }, + "import-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", + "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", + "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=", + "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=", + "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==", + "requires": { + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + }, + "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==" + }, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=" + }, + "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==" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "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==" + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" + }, + "inquirer": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.0.4.tgz", + "integrity": "sha512-Bu5Td5+j11sCkqfqmUTiwv+tWisMtP0L7Q8WrqA2C/BbBhy1YTdFrvjjlrKq8oagA/tLQBski2Gcx/Sqyi2qSQ==", + "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.5.3", + "string-width": "^4.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" + } + }, + "internal-ip": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", + "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", + "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==", + "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==" + }, + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" + }, + "ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=" + }, + "ipaddr.js": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", + "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==" + }, + "is-absolute-url": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", + "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=" + }, + "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=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-arguments": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", + "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==" + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + }, + "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=", + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "is-callable": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==" + }, + "is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "requires": { + "ci-info": "^2.0.0" + } + }, + "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=", + "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" + } + }, + "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=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "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==" + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "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==" + } + } + }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=" + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + }, + "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==" + }, + "is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==" + }, + "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==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" + }, + "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==" + }, + "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==", + "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==", + "requires": { + "path-is-inside": "^1.0.2" + } + }, + "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=" + }, + "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==", + "requires": { + "isobject": "^3.0.1" + } + }, + "is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" + }, + "is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "requires": { + "has": "^1.0.3" + } + }, + "is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=" + }, + "is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==" + }, + "is-root": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", + "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==" + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "is-string": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", + "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==" + }, + "is-svg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz", + "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==", + "requires": { + "html-comment-regex": "^1.1.0" + } + }, + "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==", + "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=" + }, + "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==" + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "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==" + }, + "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==", + "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" + } + }, + "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==", + "requires": { + "istanbul-lib-coverage": "^2.0.5", + "make-dir": "^2.1.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==", + "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==", + "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": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "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==", + "requires": { + "html-escaper": "^2.0.0" + } + }, + "jest": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-24.9.0.tgz", + "integrity": "sha512-YvkBL1Zm7d2B1+h5fHEOdyjCG+sGMz4f8D86/0HiqJ6MB4MnDc8FgP5vdWsGnemOQro7lnYo8UakZ3+5A0jxGw==", + "requires": { + "import-local": "^2.0.0", + "jest-cli": "^24.9.0" + }, + "dependencies": { + "jest-cli": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-24.9.0.tgz", + "integrity": "sha512-+VLRKyitT3BWoMeSUIHRxV/2g8y9gw91Jh5z2UmXZzkZKpbC08CSehVxgHUwTpy+HwGcns/tqafQDJW7imYvGg==", + "requires": { + "@jest/core": "^24.9.0", + "@jest/test-result": "^24.9.0", + "@jest/types": "^24.9.0", + "chalk": "^2.0.1", + "exit": "^0.1.2", + "import-local": "^2.0.0", + "is-ci": "^2.0.0", + "jest-config": "^24.9.0", + "jest-util": "^24.9.0", + "jest-validate": "^24.9.0", + "prompts": "^2.0.1", + "realpath-native": "^1.1.0", + "yargs": "^13.3.0" + } + } + } + }, + "jest-changed-files": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-24.9.0.tgz", + "integrity": "sha512-6aTWpe2mHF0DhL28WjdkO8LyGjs3zItPET4bMSeXU6T3ub4FPMw+mcOcbdGXQOAfmLcxofD23/5Bl9Z4AkFwqg==", + "requires": { + "@jest/types": "^24.9.0", + "execa": "^1.0.0", + "throat": "^4.0.0" + } + }, + "jest-config": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-24.9.0.tgz", + "integrity": "sha512-RATtQJtVYQrp7fvWg6f5y3pEFj9I+H8sWw4aKxnDZ96mob5i5SD6ZEGWgMLXQ4LE8UurrjbdlLWdUeo+28QpfQ==", + "requires": { + "@babel/core": "^7.1.0", + "@jest/test-sequencer": "^24.9.0", + "@jest/types": "^24.9.0", + "babel-jest": "^24.9.0", + "chalk": "^2.0.1", + "glob": "^7.1.1", + "jest-environment-jsdom": "^24.9.0", + "jest-environment-node": "^24.9.0", + "jest-get-type": "^24.9.0", + "jest-jasmine2": "^24.9.0", + "jest-regex-util": "^24.3.0", + "jest-resolve": "^24.9.0", + "jest-util": "^24.9.0", + "jest-validate": "^24.9.0", + "micromatch": "^3.1.10", + "pretty-format": "^24.9.0", + "realpath-native": "^1.1.0" + } + }, + "jest-diff": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-24.9.0.tgz", + "integrity": "sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ==", + "requires": { + "chalk": "^2.0.1", + "diff-sequences": "^24.9.0", + "jest-get-type": "^24.9.0", + "pretty-format": "^24.9.0" + } + }, + "jest-docblock": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-24.9.0.tgz", + "integrity": "sha512-F1DjdpDMJMA1cN6He0FNYNZlo3yYmOtRUnktrT9Q37njYzC5WEaDdmbynIgy0L/IvXvvgsG8OsqhLPXTpfmZAA==", + "requires": { + "detect-newline": "^2.1.0" + } + }, + "jest-each": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-24.9.0.tgz", + "integrity": "sha512-ONi0R4BvW45cw8s2Lrx8YgbeXL1oCQ/wIDwmsM3CqM/nlblNCPmnC3IPQlMbRFZu3wKdQ2U8BqM6lh3LJ5Bsog==", + "requires": { + "@jest/types": "^24.9.0", + "chalk": "^2.0.1", + "jest-get-type": "^24.9.0", + "jest-util": "^24.9.0", + "pretty-format": "^24.9.0" + } + }, + "jest-environment-jsdom": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-24.9.0.tgz", + "integrity": "sha512-Zv9FV9NBRzLuALXjvRijO2351DRQeLYXtpD4xNvfoVFw21IOKNhZAEUKcbiEtjTkm2GsJ3boMVgkaR7rN8qetA==", + "requires": { + "@jest/environment": "^24.9.0", + "@jest/fake-timers": "^24.9.0", + "@jest/types": "^24.9.0", + "jest-mock": "^24.9.0", + "jest-util": "^24.9.0", + "jsdom": "^11.5.1" + } + }, + "jest-environment-jsdom-fourteen": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom-fourteen/-/jest-environment-jsdom-fourteen-0.1.0.tgz", + "integrity": "sha512-4vtoRMg7jAstitRzL4nbw83VmGH8Rs13wrND3Ud2o1fczDhMUF32iIrNKwYGgeOPUdfvZU4oy8Bbv+ni1fgVCA==", + "requires": { + "jest-mock": "^24.5.0", + "jest-util": "^24.5.0", + "jsdom": "^14.0.0" + }, + "dependencies": { + "acorn": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.0.tgz", + "integrity": "sha512-gac8OEcQ2Li1dxIEWGZzsp2BitJxwkwcOm0zHAJLcPJaVvm58FRnk6RkuLRpU1EujipU2ZFODv2P9DLMfnV8mw==" + }, + "jsdom": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-14.1.0.tgz", + "integrity": "sha512-O901mfJSuTdwU2w3Sn+74T+RnDVP+FuV5fH8tcPWyqrseRAb0s5xOtPgCFiPOtLcyK7CLIJwPyD83ZqQWvA5ng==", + "requires": { + "abab": "^2.0.0", + "acorn": "^6.0.4", + "acorn-globals": "^4.3.0", + "array-equal": "^1.0.0", + "cssom": "^0.3.4", + "cssstyle": "^1.1.1", + "data-urls": "^1.1.0", + "domexception": "^1.0.1", + "escodegen": "^1.11.0", + "html-encoding-sniffer": "^1.0.2", + "nwsapi": "^2.1.3", + "parse5": "5.1.0", + "pn": "^1.1.0", + "request": "^2.88.0", + "request-promise-native": "^1.0.5", + "saxes": "^3.1.9", + "symbol-tree": "^3.2.2", + "tough-cookie": "^2.5.0", + "w3c-hr-time": "^1.0.1", + "w3c-xmlserializer": "^1.1.2", + "webidl-conversions": "^4.0.2", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^7.0.0", + "ws": "^6.1.2", + "xml-name-validator": "^3.0.0" + } + }, + "parse5": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.0.tgz", + "integrity": "sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==" + }, + "whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "ws": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", + "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", + "requires": { + "async-limiter": "~1.0.0" + } + } + } + }, + "jest-environment-node": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-24.9.0.tgz", + "integrity": "sha512-6d4V2f4nxzIzwendo27Tr0aFm+IXWa0XEUnaH6nU0FMaozxovt+sfRvh4J47wL1OvF83I3SSTu0XK+i4Bqe7uA==", + "requires": { + "@jest/environment": "^24.9.0", + "@jest/fake-timers": "^24.9.0", + "@jest/types": "^24.9.0", + "jest-mock": "^24.9.0", + "jest-util": "^24.9.0" + } + }, + "jest-get-type": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.9.0.tgz", + "integrity": "sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q==" + }, + "jest-haste-map": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-24.9.0.tgz", + "integrity": "sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ==", + "requires": { + "@jest/types": "^24.9.0", + "anymatch": "^2.0.0", + "fb-watchman": "^2.0.0", + "fsevents": "^1.2.7", + "graceful-fs": "^4.1.15", + "invariant": "^2.2.4", + "jest-serializer": "^24.9.0", + "jest-util": "^24.9.0", + "jest-worker": "^24.9.0", + "micromatch": "^3.1.10", + "sane": "^4.0.3", + "walker": "^1.0.7" + }, + "dependencies": { + "fsevents": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.11.tgz", + "integrity": "sha512-+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw==", + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1", + "node-pre-gyp": "*" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "optional": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "bundled": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "optional": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.1.3", + "bundled": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "optional": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "optional": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "optional": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "debug": { + "version": "3.2.6", + "bundled": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + }, + "deep-extend": { + "version": "0.6.0", + "bundled": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.7", + "bundled": true, + "optional": true, + "requires": { + "minipass": "^2.6.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.6", + "bundled": true, + "optional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.24", + "bundled": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore-walk": { + "version": "3.0.3", + "bundled": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "bundled": true, + "optional": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "optional": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "optional": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "optional": true + }, + "minipass": { + "version": "2.9.0", + "bundled": true, + "optional": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.3.3", + "bundled": true, + "optional": true, + "requires": { + "minipass": "^2.9.0" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "optional": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.1.2", + "bundled": true, + "optional": true + }, + "needle": { + "version": "2.4.0", + "bundled": true, + "optional": true, + "requires": { + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.14.0", + "bundled": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4.4.2" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.1.1", + "bundled": true, + "optional": true, + "requires": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-normalize-package-bin": { + "version": "1.0.1", + "bundled": true, + "optional": true + }, + "npm-packlist": { + "version": "1.4.7", + "bundled": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "optional": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "rc": { + "version": "1.2.8", + "bundled": true, + "optional": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rimraf": { + "version": "2.7.1", + "bundled": true, + "optional": true, + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "optional": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "optional": true + }, + "semver": { + "version": "5.7.1", + "bundled": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "optional": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "optional": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "tar": { + "version": "4.4.13", + "bundled": true, + "optional": 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" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "wide-align": { + "version": "1.1.3", + "bundled": true, + "optional": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "yallist": { + "version": "3.1.1", + "bundled": true, + "optional": true + } + } + } + } + }, + "jest-jasmine2": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-24.9.0.tgz", + "integrity": "sha512-Cq7vkAgaYKp+PsX+2/JbTarrk0DmNhsEtqBXNwUHkdlbrTBLtMJINADf2mf5FkowNsq8evbPc07/qFO0AdKTzw==", + "requires": { + "@babel/traverse": "^7.1.0", + "@jest/environment": "^24.9.0", + "@jest/test-result": "^24.9.0", + "@jest/types": "^24.9.0", + "chalk": "^2.0.1", + "co": "^4.6.0", + "expect": "^24.9.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^24.9.0", + "jest-matcher-utils": "^24.9.0", + "jest-message-util": "^24.9.0", + "jest-runtime": "^24.9.0", + "jest-snapshot": "^24.9.0", + "jest-util": "^24.9.0", + "pretty-format": "^24.9.0", + "throat": "^4.0.0" + } + }, + "jest-leak-detector": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-24.9.0.tgz", + "integrity": "sha512-tYkFIDsiKTGwb2FG1w8hX9V0aUb2ot8zY/2nFg087dUageonw1zrLMP4W6zsRO59dPkTSKie+D4rhMuP9nRmrA==", + "requires": { + "jest-get-type": "^24.9.0", + "pretty-format": "^24.9.0" + } + }, + "jest-matcher-utils": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz", + "integrity": "sha512-OZz2IXsu6eaiMAwe67c1T+5tUAtQyQx27/EMEkbFAGiw52tB9em+uGbzpcgYVpA8wl0hlxKPZxrly4CXU/GjHA==", + "requires": { + "chalk": "^2.0.1", + "jest-diff": "^24.9.0", + "jest-get-type": "^24.9.0", + "pretty-format": "^24.9.0" + } + }, + "jest-message-util": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-24.9.0.tgz", + "integrity": "sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw==", + "requires": { + "@babel/code-frame": "^7.0.0", + "@jest/test-result": "^24.9.0", + "@jest/types": "^24.9.0", + "@types/stack-utils": "^1.0.1", + "chalk": "^2.0.1", + "micromatch": "^3.1.10", + "slash": "^2.0.0", + "stack-utils": "^1.0.1" + } + }, + "jest-mock": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-24.9.0.tgz", + "integrity": "sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w==", + "requires": { + "@jest/types": "^24.9.0" + } + }, + "jest-pnp-resolver": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.1.tgz", + "integrity": "sha512-pgFw2tm54fzgYvc/OHrnysABEObZCUNFnhjoRjaVOCN8NYc032/gVjPaHD4Aq6ApkSieWtfKAFQtmDKAmhupnQ==" + }, + "jest-regex-util": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-24.9.0.tgz", + "integrity": "sha512-05Cmb6CuxaA+Ys6fjr3PhvV3bGQmO+2p2La4hFbU+W5uOc479f7FdLXUWXw4pYMAhhSZIuKHwSXSu6CsSBAXQA==" + }, + "jest-resolve": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-24.9.0.tgz", + "integrity": "sha512-TaLeLVL1l08YFZAt3zaPtjiVvyy4oSA6CRe+0AFPPVX3Q/VI0giIWWoAvoS5L96vj9Dqxj4fB5p2qrHCmTU/MQ==", + "requires": { + "@jest/types": "^24.9.0", + "browser-resolve": "^1.11.3", + "chalk": "^2.0.1", + "jest-pnp-resolver": "^1.2.1", + "realpath-native": "^1.1.0" + } + }, + "jest-resolve-dependencies": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-24.9.0.tgz", + "integrity": "sha512-Fm7b6AlWnYhT0BXy4hXpactHIqER7erNgIsIozDXWl5dVm+k8XdGVe1oTg1JyaFnOxarMEbax3wyRJqGP2Pq+g==", + "requires": { + "@jest/types": "^24.9.0", + "jest-regex-util": "^24.3.0", + "jest-snapshot": "^24.9.0" + } + }, + "jest-runner": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-24.9.0.tgz", + "integrity": "sha512-KksJQyI3/0mhcfspnxxEOBueGrd5E4vV7ADQLT9ESaCzz02WnbdbKWIf5Mkaucoaj7obQckYPVX6JJhgUcoWWg==", + "requires": { + "@jest/console": "^24.7.1", + "@jest/environment": "^24.9.0", + "@jest/test-result": "^24.9.0", + "@jest/types": "^24.9.0", + "chalk": "^2.4.2", + "exit": "^0.1.2", + "graceful-fs": "^4.1.15", + "jest-config": "^24.9.0", + "jest-docblock": "^24.3.0", + "jest-haste-map": "^24.9.0", + "jest-jasmine2": "^24.9.0", + "jest-leak-detector": "^24.9.0", + "jest-message-util": "^24.9.0", + "jest-resolve": "^24.9.0", + "jest-runtime": "^24.9.0", + "jest-util": "^24.9.0", + "jest-worker": "^24.6.0", + "source-map-support": "^0.5.6", + "throat": "^4.0.0" + } + }, + "jest-runtime": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-24.9.0.tgz", + "integrity": "sha512-8oNqgnmF3v2J6PVRM2Jfuj8oX3syKmaynlDMMKQ4iyzbQzIG6th5ub/lM2bCMTmoTKM3ykcUYI2Pw9xwNtjMnw==", + "requires": { + "@jest/console": "^24.7.1", + "@jest/environment": "^24.9.0", + "@jest/source-map": "^24.3.0", + "@jest/transform": "^24.9.0", + "@jest/types": "^24.9.0", + "@types/yargs": "^13.0.0", + "chalk": "^2.0.1", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.1.15", + "jest-config": "^24.9.0", + "jest-haste-map": "^24.9.0", + "jest-message-util": "^24.9.0", + "jest-mock": "^24.9.0", + "jest-regex-util": "^24.3.0", + "jest-resolve": "^24.9.0", + "jest-snapshot": "^24.9.0", + "jest-util": "^24.9.0", + "jest-validate": "^24.9.0", + "realpath-native": "^1.1.0", + "slash": "^2.0.0", + "strip-bom": "^3.0.0", + "yargs": "^13.3.0" + } + }, + "jest-serializer": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-24.9.0.tgz", + "integrity": "sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ==" + }, + "jest-snapshot": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-24.9.0.tgz", + "integrity": "sha512-uI/rszGSs73xCM0l+up7O7a40o90cnrk429LOiK3aeTvfC0HHmldbd81/B7Ix81KSFe1lwkbl7GnBGG4UfuDew==", + "requires": { + "@babel/types": "^7.0.0", + "@jest/types": "^24.9.0", + "chalk": "^2.0.1", + "expect": "^24.9.0", + "jest-diff": "^24.9.0", + "jest-get-type": "^24.9.0", + "jest-matcher-utils": "^24.9.0", + "jest-message-util": "^24.9.0", + "jest-resolve": "^24.9.0", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "pretty-format": "^24.9.0", + "semver": "^6.2.0" + } + }, + "jest-util": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-24.9.0.tgz", + "integrity": "sha512-x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg==", + "requires": { + "@jest/console": "^24.9.0", + "@jest/fake-timers": "^24.9.0", + "@jest/source-map": "^24.9.0", + "@jest/test-result": "^24.9.0", + "@jest/types": "^24.9.0", + "callsites": "^3.0.0", + "chalk": "^2.0.1", + "graceful-fs": "^4.1.15", + "is-ci": "^2.0.0", + "mkdirp": "^0.5.1", + "slash": "^2.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "jest-validate": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-24.9.0.tgz", + "integrity": "sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ==", + "requires": { + "@jest/types": "^24.9.0", + "camelcase": "^5.3.1", + "chalk": "^2.0.1", + "jest-get-type": "^24.9.0", + "leven": "^3.1.0", + "pretty-format": "^24.9.0" + } + }, + "jest-watch-typeahead": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-0.4.2.tgz", + "integrity": "sha512-f7VpLebTdaXs81rg/oj4Vg/ObZy2QtGzAmGLNsqUS5G5KtSN68tFcIsbvNODfNyQxU78g7D8x77o3bgfBTR+2Q==", + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^2.4.1", + "jest-regex-util": "^24.9.0", + "jest-watcher": "^24.3.0", + "slash": "^3.0.0", + "string-length": "^3.1.0", + "strip-ansi": "^5.0.0" + }, + "dependencies": { + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + }, + "string-length": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-3.1.0.tgz", + "integrity": "sha512-Ttp5YvkGm5v9Ijagtaz1BnN+k9ObpvS0eIBblPMp2YWL8FBmi9qblQ9fexc2k/CXFgrTIteU3jAw3payCnwSTA==", + "requires": { + "astral-regex": "^1.0.0", + "strip-ansi": "^5.2.0" + } + } + } + }, + "jest-watcher": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-24.9.0.tgz", + "integrity": "sha512-+/fLOfKPXXYJDYlks62/4R4GoT+GU1tYZed99JSCOsmzkkF7727RqKrjNAxtfO4YpGv11wybgRvCjR73lK2GZw==", + "requires": { + "@jest/test-result": "^24.9.0", + "@jest/types": "^24.9.0", + "@types/yargs": "^13.0.0", + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.1", + "jest-util": "^24.9.0", + "string-length": "^2.0.0" + }, + "dependencies": { + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==" + } + } + }, + "jest-worker": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz", + "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==", + "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==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "js-levenshtein": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", + "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==" + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "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=" + }, + "jsdom": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-11.12.0.tgz", + "integrity": "sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw==", + "requires": { + "abab": "^2.0.0", + "acorn": "^5.5.3", + "acorn-globals": "^4.1.0", + "array-equal": "^1.0.0", + "cssom": ">= 0.3.2 < 0.4.0", + "cssstyle": "^1.0.0", + "data-urls": "^1.0.0", + "domexception": "^1.0.1", + "escodegen": "^1.9.1", + "html-encoding-sniffer": "^1.0.2", + "left-pad": "^1.3.0", + "nwsapi": "^2.0.7", + "parse5": "4.0.0", + "pn": "^1.1.0", + "request": "^2.87.0", + "request-promise-native": "^1.0.5", + "sax": "^1.2.4", + "symbol-tree": "^3.2.2", + "tough-cookie": "^2.3.4", + "w3c-hr-time": "^1.0.1", + "webidl-conversions": "^4.0.2", + "whatwg-encoding": "^1.0.3", + "whatwg-mimetype": "^2.1.0", + "whatwg-url": "^6.4.1", + "ws": "^5.2.0", + "xml-name-validator": "^3.0.0" + }, + "dependencies": { + "acorn": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", + "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==" + } + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" + }, + "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==" + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, + "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==" + }, + "json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "requires": { + "jsonify": "~0.0.0" + } + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" + }, + "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=" + }, + "json3": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", + "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==" + }, + "json5": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", + "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", + "requires": { + "minimist": "^1.2.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "jsx-ast-utils": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.2.3.tgz", + "integrity": "sha512-EdIHFMm+1BPynpKOpdPqiOsvnIrInRGJD7bzPZdPkjitQEqpdpUuFpq4T0npZFKTiB3RhWFdGN+oqOJIdhDhQA==", + "requires": { + "array-includes": "^3.0.3", + "object.assign": "^4.1.0" + } + }, + "killable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", + "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==" + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" + }, + "last-call-webpack-plugin": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz", + "integrity": "sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w==", + "requires": { + "lodash": "^4.17.5", + "webpack-sources": "^1.1.0" + } + }, + "lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=" + }, + "lcid": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", + "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", + "requires": { + "invert-kv": "^2.0.0" + } + }, + "left-pad": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz", + "integrity": "sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==" + }, + "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==" + }, + "levenary": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz", + "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", + "requires": { + "leven": "^3.1.0" + } + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "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=" + }, + "load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + } + }, + "loader-fs-cache": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/loader-fs-cache/-/loader-fs-cache-1.0.2.tgz", + "integrity": "sha512-70IzT/0/L+M20jUlEqZhZyArTU6VKLRTYRDAYN26g4jfzpJqjipLL3/hgYpySqI9PwsVRHHFja0LfEmsx9X2Cw==", + "requires": { + "find-cache-dir": "^0.1.1", + "mkdirp": "0.5.1" + }, + "dependencies": { + "find-cache-dir": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", + "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", + "requires": { + "commondir": "^1.0.1", + "mkdirp": "^0.5.1", + "pkg-dir": "^1.0.0" + } + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "pkg-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", + "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", + "requires": { + "find-up": "^1.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==" + }, + "loader-utils": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "^1.2.0" + } + } + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" + }, + "lodash._reinterpolate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=" + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=" + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" + }, + "lodash.template": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", + "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", + "requires": { + "lodash._reinterpolate": "^3.0.0", + "lodash.templatesettings": "^4.0.0" + } + }, + "lodash.templatesettings": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", + "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", + "requires": { + "lodash._reinterpolate": "^3.0.0" + } + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=" + }, + "loglevel": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.6.tgz", + "integrity": "sha512-Sgr5lbboAUBo3eXCSPL4/KoVz3ROKquOjcctxmHIt+vol2DrqTQe3SwkKKuYhEiWB5kYa13YyopJ69deJ1irzQ==" + }, + "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==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=" + }, + "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==", + "requires": { + "yallist": "^3.0.2" + }, + "dependencies": { + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + } + } + }, + "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==", + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "dependencies": { + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, + "makeerror": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", + "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", + "requires": { + "tmpl": "1.0.x" + } + }, + "mamacro": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz", + "integrity": "sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==" + }, + "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==", + "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=" + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "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==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==" + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, + "mem": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", + "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", + "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=", + "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==", + "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" + } + } + } + }, + "merge-deep": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/merge-deep/-/merge-deep-3.0.2.tgz", + "integrity": "sha512-T7qC8kg4Zoti1cFd8Cr0M+qaZfOwjlPDEdZIIPPB2JZctjaPM4fX+i7HOId69tAti2fvO6X5ldfYUONDODsrkA==", + "requires": { + "arr-union": "^3.1.0", + "clone-deep": "^0.2.4", + "kind-of": "^3.0.2" + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "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==" + }, + "merge2": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.3.0.tgz", + "integrity": "sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw==" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "microevent.ts": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/microevent.ts/-/microevent.ts-0.1.1.tgz", + "integrity": "sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g==" + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "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" + }, + "dependencies": { + "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==" + } + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + } + }, + "mime": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", + "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==" + }, + "mime-db": { + "version": "1.43.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz", + "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==" + }, + "mime-types": { + "version": "2.1.26", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz", + "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==", + "requires": { + "mime-db": "1.43.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + }, + "min-indent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.0.tgz", + "integrity": "sha1-z8RcN+nsDY8KDsPdTvf3w6vjklY=" + }, + "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==", + "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==", + "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==" + }, + "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=" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + }, + "minipass": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.1.tgz", + "integrity": "sha512-UFqVihv6PQgwj8/yTGvl9kPz7xIAY+R5z6XYjRInD3Gk3qx6QGSD6zEcpeG4Dy/lQnv1J6zv8ejV90hyYIKf3w==", + "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==", + "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==", + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-pipeline": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.2.tgz", + "integrity": "sha512-3JS5A2DKhD2g0Gg8x3yamO0pj7YeKGwVlDS90pF++kxptwx/F+B//roxf9SqYil5tQo65bijy+dAuAFZmYOouA==", + "requires": { + "minipass": "^3.0.0" + } + }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "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==", + "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==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mixin-object": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", + "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=", + "requires": { + "for-in": "^0.1.3", + "is-extendable": "^0.1.1" + }, + "dependencies": { + "for-in": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz", + "integrity": "sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=" + } + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + } + } + }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "multicast-dns": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", + "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "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=" + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" + }, + "nan": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", + "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", + "optional": true + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "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" + }, + "dependencies": { + "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==" + } + } + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" + }, + "neo-async": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz", + "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==" + }, + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" + }, + "no-case": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "requires": { + "lower-case": "^1.1.1" + } + }, + "node-forge": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.9.0.tgz", + "integrity": "sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ==" + }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" + }, + "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==", + "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=" + }, + "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" + }, + "dependencies": { + "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" + } + } + } + }, + "util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "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=" + } + } + } + } + }, + "node-modules-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", + "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=" + }, + "node-notifier": { + "version": "5.4.3", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.3.tgz", + "integrity": "sha512-M4UBGcs4jeOK9CjTsYwkvH6/MzuUmGCyTW+kCY7uO+1ZVr0+FHGdPdIf5CCLqAaxnRrWidyoQlNkMIIVwbKB8Q==", + "requires": { + "growly": "^1.3.0", + "is-wsl": "^1.1.0", + "semver": "^5.5.0", + "shellwords": "^0.1.1", + "which": "^1.3.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, + "node-releases": { + "version": "1.1.47", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.47.tgz", + "integrity": "sha512-k4xjVPx5FpwBUj0Gw7uvFOTF4Ep8Hok1I6qjwL3pLfwe7Y0REQSAqOwwv9TWBCUtMHxcXfY4PgRLRozcChvTcA==", + "requires": { + "semver": "^6.3.0" + } + }, + "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==", + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=" + }, + "normalize-url": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", + "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", + "requires": { + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.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=", + "requires": { + "path-key": "^2.0.0" + } + }, + "nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "requires": { + "boolbase": "~1.0.0" + } + }, + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=" + }, + "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=" + }, + "nwsapi": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", + "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==" + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "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=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "object-hash": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.3.1.tgz", + "integrity": "sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA==" + }, + "object-inspect": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", + "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==" + }, + "object-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.2.tgz", + "integrity": "sha512-Epah+btZd5wrrfjkJZq1AOB9O6OxUQto45hzFd7lXGrpHPGE0W1k+426yrZV+k6NJOzLNNW/nVsmZdIWsAqoOQ==" + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + }, + "object-path": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.4.tgz", + "integrity": "sha1-NwrnUvvzfePqcKhhwju6iRVpGUk=" + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "requires": { + "isobject": "^3.0.0" + } + }, + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "requires": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + } + }, + "object.entries": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.1.tgz", + "integrity": "sha512-ilqR7BgdyZetJutmDPfXCDffGa0/Yzl2ivVNpbx/g4UeWrCdRnFDUBrKJGLhGieRHDATnyZXWBeCb29k9CJysQ==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", + "has": "^1.0.3" + } + }, + "object.fromentries": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.2.tgz", + "integrity": "sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", + "has": "^1.0.3" + } + }, + "object.getownpropertydescriptors": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", + "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "requires": { + "isobject": "^3.0.1" + } + }, + "object.values": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", + "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", + "has": "^1.0.3" + } + }, + "obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "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==" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", + "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "open": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/open/-/open-7.0.0.tgz", + "integrity": "sha512-K6EKzYqnwQzk+/dzJAQSBORub3xlBTxMz+ntpZpH/LyCa1o6KjXhuN+2npAaI9jaSmU3R1Q8NWf4KUWcyytGsQ==", + "requires": { + "is-wsl": "^2.1.0" + }, + "dependencies": { + "is-wsl": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.1.1.tgz", + "integrity": "sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog==" + } + } + }, + "opn": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", + "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", + "requires": { + "is-wsl": "^1.1.0" + } + }, + "optimize-css-assets-webpack-plugin": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.3.tgz", + "integrity": "sha512-q9fbvCRS6EYtUKKSwI87qm2IxlyJK5b4dygW1rKUBT6mMDhdG5e5bZT63v6tnJR9F9FB/H5a0HTmtw+laUBxKA==", + "requires": { + "cssnano": "^4.1.10", + "last-call-webpack-plugin": "^3.0.0" + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "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==", + "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=" + }, + "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==", + "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=" + }, + "p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=" + }, + "p-each-series": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-1.0.0.tgz", + "integrity": "sha1-kw89Et0fUOdDRFeiLNbwSsatf3E=", + "requires": { + "p-reduce": "^1.0.0" + } + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + }, + "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==" + }, + "p-limit": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", + "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==", + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "p-reduce": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz", + "integrity": "sha1-GMKw3ZNqRpClKfgjH1ig/bakffo=" + }, + "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==", + "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==" + }, + "pako": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz", + "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==" + }, + "parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "requires": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + }, + "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" + } + } + } + }, + "param-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", + "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", + "requires": { + "no-case": "^2.2.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==", + "requires": { + "callsites": "^3.0.0" + }, + "dependencies": { + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" + } + } + }, + "parse-asn1": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz", + "integrity": "sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==", + "requires": { + "asn1.js": "^4.0.0", + "browserify-aes": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==" + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" + }, + "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==" + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + }, + "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=" + }, + "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=" + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + }, + "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==" + }, + "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=" + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "requires": { + "pify": "^3.0.0" + } + }, + "pbkdf2": { + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", + "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", + "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=" + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "requires": { + "pinkie": "^2.0.0" + } + }, + "pirates": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", + "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", + "requires": { + "node-modules-regexp": "^1.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==", + "requires": { + "find-up": "^3.0.0" + } + }, + "pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", + "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", + "requires": { + "find-up": "^2.1.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + } + } + }, + "pn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", + "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==" + }, + "pnp-webpack-plugin": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.5.0.tgz", + "integrity": "sha512-jd9olUr9D7do+RN8Wspzhpxhgp1n6Vd0NtQ4SFkmIACZoEL1nkyAdW9Ygrinjec0vgDcWjscFQQ1gDW8rsfKTg==", + "requires": { + "ts-pnp": "^1.1.2" + } + }, + "portfinder": { + "version": "1.0.25", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.25.tgz", + "integrity": "sha512-6ElJnHBbxVA1XSLgBp7G1FiCkQdlqGzuF7DswL5tcea+E8UpuvPU7beVAjjRwCioTS9ZluNbu+ZyRvgTsmqEBg==", + "requires": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.1" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "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=" + }, + "postcss": { + "version": "7.0.26", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.26.tgz", + "integrity": "sha512-IY4oRjpXWYshuTDFxMVkJDtWIk2LhsTlu8bZnbEJA4+bYT16Lvpo8Qv6EvDumhYRgzjZl489pmsY3qVgJQ08nA==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "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==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "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==", + "requires": { + "postcss": "^7.0.2", + "postcss-selector-parser": "^6.0.2" + } + }, + "postcss-browser-comments": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-browser-comments/-/postcss-browser-comments-3.0.0.tgz", + "integrity": "sha512-qfVjLfq7HFd2e0HW4s1dvU8X080OZdG46fFbIBFjW7US7YPDcWfRvdElvwMJr2LI6hMmD+7LnH2HcmXTs+uOig==", + "requires": { + "postcss": "^7" + } + }, + "postcss-calc": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.1.tgz", + "integrity": "sha512-oXqx0m6tb4N3JGdmeMSc/i91KppbYsFZKdH0xMOqK8V1rJlzrKlTdokz8ozUXLVejydRN6u2IddxpcijRj2FqQ==", + "requires": { + "css-unit-converter": "^1.1.1", + "postcss": "^7.0.5", + "postcss-selector-parser": "^5.0.0-rc.4", + "postcss-value-parser": "^3.3.1" + }, + "dependencies": { + "cssesc": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", + "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==" + }, + "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==", + "requires": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "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==" + } + } + }, + "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==", + "requires": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.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==", + "requires": { + "@csstools/convert-colors": "^1.4.0", + "postcss": "^7.0.5", + "postcss-values-parser": "^2.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==", + "requires": { + "postcss": "^7.0.14", + "postcss-values-parser": "^2.0.1" + } + }, + "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==", + "requires": { + "@csstools/convert-colors": "^1.4.0", + "postcss": "^7.0.2", + "postcss-values-parser": "^2.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==", + "requires": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + } + }, + "postcss-colormin": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", + "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", + "requires": { + "browserslist": "^4.0.0", + "color": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "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==" + } + } + }, + "postcss-convert-values": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", + "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "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==" + } + } + }, + "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==", + "requires": { + "postcss": "^7.0.14" + } + }, + "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==", + "requires": { + "postcss": "^7.0.17", + "postcss-values-parser": "^2.0.1" + } + }, + "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==", + "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==" + }, + "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==", + "requires": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "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==", + "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==" + }, + "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==", + "requires": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-discard-comments": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", + "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-duplicates": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz", + "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==", + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-empty": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", + "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==", + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-overridden": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz", + "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==", + "requires": { + "postcss": "^7.0.0" + } + }, + "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==", + "requires": { + "postcss": "^7.0.5", + "postcss-values-parser": "^2.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==", + "requires": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + } + }, + "postcss-flexbugs-fixes": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.1.0.tgz", + "integrity": "sha512-jr1LHxQvStNNAHlgco6PzY308zvLklh7SJVYuWUwyUQncofaAlD2l+P/gxKHOdqWKe7xJSkVLFF/2Tp+JqMSZA==", + "requires": { + "postcss": "^7.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==", + "requires": { + "postcss": "^7.0.2" + } + }, + "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==", + "requires": { + "postcss": "^7.0.2" + } + }, + "postcss-font-variant": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-4.0.0.tgz", + "integrity": "sha512-M8BFYKOvCrI2aITzDad7kWuXXTm0YhGdP9Q8HanmN4EF1Hmcgs1KK5rSHylt/lUJe8yLxiSwWAHdScoEiIxztg==", + "requires": { + "postcss": "^7.0.2" + } + }, + "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==", + "requires": { + "postcss": "^7.0.2" + } + }, + "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==", + "requires": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + } + }, + "postcss-initial": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-3.0.2.tgz", + "integrity": "sha512-ugA2wKonC0xeNHgirR4D3VWHs2JcU08WAi1KFLVcnb7IN89phID6Qtg2RIctWbnvp1TM2BOmDtX8GGLCKdR8YA==", + "requires": { + "lodash.template": "^4.5.0", + "postcss": "^7.0.2" + } + }, + "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==", + "requires": { + "@csstools/convert-colors": "^1.4.0", + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + } + }, + "postcss-load-config": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.0.tgz", + "integrity": "sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q==", + "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==", + "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==", + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "postcss-logical": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-3.0.0.tgz", + "integrity": "sha512-1SUKdJc2vuMOmeItqGuNaC+N8MzBWFWEkAnRnLpFYj1tGGa7NqyVBujfRtgNa2gXR+6RkGUiB2O5Vmh7E2RmiA==", + "requires": { + "postcss": "^7.0.2" + } + }, + "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==", + "requires": { + "postcss": "^7.0.2" + } + }, + "postcss-merge-longhand": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", + "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", + "requires": { + "css-color-names": "0.0.4", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "stylehacks": "^4.0.0" + }, + "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==" + } + } + }, + "postcss-merge-rules": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", + "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "cssnano-util-same-parent": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0", + "vendors": "^1.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", + "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=", + "requires": { + "dot-prop": "^4.1.1", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-minify-font-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", + "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "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==" + } + } + }, + "postcss-minify-gradients": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", + "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "is-color-stop": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "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==" + } + } + }, + "postcss-minify-params": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", + "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", + "requires": { + "alphanum-sort": "^1.0.0", + "browserslist": "^4.0.0", + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "uniqs": "^2.0.0" + }, + "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==" + } + } + }, + "postcss-minify-selectors": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", + "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", + "requires": { + "alphanum-sort": "^1.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", + "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=", + "requires": { + "dot-prop": "^4.1.1", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-modules-extract-imports": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz", + "integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==", + "requires": { + "postcss": "^7.0.5" + } + }, + "postcss-modules-local-by-default": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.2.tgz", + "integrity": "sha512-jM/V8eqM4oJ/22j0gx4jrp63GSvDH6v86OqyTHHUvk4/k1vceipZsaymiZ5PvocqZOl5SFHiFJqjs3la0wnfIQ==", + "requires": { + "icss-utils": "^4.1.1", + "postcss": "^7.0.16", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.0.0" + } + }, + "postcss-modules-scope": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.1.1.tgz", + "integrity": "sha512-OXRUPecnHCg8b9xWvldG/jUpRIGPNRka0r4D4j0ESUU2/5IOnpsjfPPmDprM3Ih8CgZ8FXjWqaniK5v4rWt3oQ==", + "requires": { + "postcss": "^7.0.6", + "postcss-selector-parser": "^6.0.0" + } + }, + "postcss-modules-values": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz", + "integrity": "sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==", + "requires": { + "icss-utils": "^4.0.0", + "postcss": "^7.0.6" + } + }, + "postcss-nesting": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-7.0.1.tgz", + "integrity": "sha512-FrorPb0H3nuVq0Sff7W2rnc3SmIcruVC6YwpcS+k687VxyxO33iE1amna7wHuRVzM8vfiYofXSBHNAZ3QhLvYg==", + "requires": { + "postcss": "^7.0.2" + } + }, + "postcss-normalize": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize/-/postcss-normalize-8.0.1.tgz", + "integrity": "sha512-rt9JMS/m9FHIRroDDBGSMsyW1c0fkvOJPy62ggxSHUldJO7B195TqFMqIf+lY5ezpDcYOV4j86aUp3/XbxzCCQ==", + "requires": { + "@csstools/normalize.css": "^10.1.0", + "browserslist": "^4.6.2", + "postcss": "^7.0.17", + "postcss-browser-comments": "^3.0.0", + "sanitize.css": "^10.0.0" + } + }, + "postcss-normalize-charset": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", + "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==", + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-normalize-display-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", + "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "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==" + } + } + }, + "postcss-normalize-positions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", + "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "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==" + } + } + }, + "postcss-normalize-repeat-style": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", + "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "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==" + } + } + }, + "postcss-normalize-string": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", + "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", + "requires": { + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "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==" + } + } + }, + "postcss-normalize-timing-functions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", + "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "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==" + } + } + }, + "postcss-normalize-unicode": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", + "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "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==" + } + } + }, + "postcss-normalize-url": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", + "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==", + "requires": { + "is-absolute-url": "^2.0.0", + "normalize-url": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "normalize-url": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", + "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==" + }, + "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==" + } + } + }, + "postcss-normalize-whitespace": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", + "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "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==" + } + } + }, + "postcss-ordered-values": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", + "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "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==" + } + } + }, + "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==", + "requires": { + "postcss": "^7.0.2" + } + }, + "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==", + "requires": { + "postcss": "^7.0.2" + } + }, + "postcss-place": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-4.0.1.tgz", + "integrity": "sha512-Zb6byCSLkgRKLODj/5mQugyuj9bvAAw9LqJJjgwz5cYryGeXfFZfSXoP1UfveccFmeq0b/2xxwcTEVScnqGxBg==", + "requires": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.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==", + "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" + } + }, + "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==", + "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==" + }, + "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==", + "requires": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-reduce-initial": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", + "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==", + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0" + } + }, + "postcss-reduce-transforms": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", + "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", + "requires": { + "cssnano-util-get-match": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "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==" + } + } + }, + "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==", + "requires": { + "postcss": "^7.0.2" + } + }, + "postcss-safe-parser": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-4.0.1.tgz", + "integrity": "sha512-xZsFA3uX8MO3yAda03QrG3/Eg1LN3EPfjjf07vke/46HERLZyHrTsQ9E1r1w1W//fWEhtYNndo2hQplN2cVpCQ==", + "requires": { + "postcss": "^7.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==", + "requires": { + "balanced-match": "^1.0.0", + "postcss": "^7.0.2" + } + }, + "postcss-selector-not": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-4.0.0.tgz", + "integrity": "sha512-W+bkBZRhqJaYN8XAnbbZPLWMvZD1wKTu0UxtFKdhtGjWYmxhkUneoeOhRJKdAE5V7ZTlnbHfCR+6bNwK9e1dTQ==", + "requires": { + "balanced-match": "^1.0.0", + "postcss": "^7.0.2" + } + }, + "postcss-selector-parser": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz", + "integrity": "sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==", + "requires": { + "cssesc": "^3.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "postcss-svgo": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz", + "integrity": "sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==", + "requires": { + "is-svg": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "svgo": "^1.0.0" + }, + "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==" + } + } + }, + "postcss-unique-selectors": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz", + "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==", + "requires": { + "alphanum-sort": "^1.0.0", + "postcss": "^7.0.0", + "uniqs": "^2.0.0" + } + }, + "postcss-value-parser": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz", + "integrity": "sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ==" + }, + "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==", + "requires": { + "flatten": "^1.0.2", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" + }, + "pretty-bytes": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.3.0.tgz", + "integrity": "sha512-hjGrh+P926p4R4WbaB6OckyRtO0F0/lQBiT+0gnxjV+5kjPBrfVBFCsCLbMqVQeydvIoouYTCmmEURiH3R1Bdg==" + }, + "pretty-error": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz", + "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=", + "requires": { + "renderkid": "^2.0.1", + "utila": "~0.4" + } + }, + "pretty-format": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz", + "integrity": "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==", + "requires": { + "@jest/types": "^24.9.0", + "ansi-regex": "^4.0.0", + "ansi-styles": "^3.2.0", + "react-is": "^16.8.4" + }, + "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==" + } + } + }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==" + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" + }, + "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==" + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" + }, + "promise": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.0.3.tgz", + "integrity": "sha512-HeRDUL1RJiLhyA0/grn+PTShlBAcLuh/1BJGtrvjwbvRDCTLLMEz9rOGCV+R3vHY4MixIuoMEd9Yq/XvsTPcjw==", + "requires": { + "asap": "~2.0.6" + } + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" + }, + "prompts": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.3.0.tgz", + "integrity": "sha512-NfbbPPg/74fT7wk2XYQ7hAIp9zJyZp5Fu19iRbORqqy1BhtrkZ0fPafBU+7bmn8ie69DpT0R6QpJIN2oisYjJg==", + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.3" + } + }, + "prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + } + }, + "proxy-addr": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", + "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==", + "requires": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.0" + } + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" + }, + "psl": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.7.0.tgz", + "integrity": "sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ==" + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "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==", + "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==", + "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==" + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + }, + "query-string": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", + "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", + "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=" + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" + }, + "querystringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz", + "integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==" + }, + "raf": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", + "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "requires": { + "performance-now": "^2.1.0" + } + }, + "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==", + "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==" + }, + "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==", + "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==" + } + } + }, + "react": { + "version": "16.12.0", + "resolved": "https://registry.npmjs.org/react/-/react-16.12.0.tgz", + "integrity": "sha512-fglqy3k5E+81pA8s+7K0/T3DBCF0ZDOher1elBFzF7O6arXJgzyu/FW+COxFvAWXJoJN9KIZbT2LXlukwphYTA==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2" + } + }, + "react-app-polyfill": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/react-app-polyfill/-/react-app-polyfill-1.0.5.tgz", + "integrity": "sha512-RcbV6+msbvZJZUIK/LX3UafPtoaDSJgUWu4sqBxHKTVmBsnlU2QWCKJRBRmgjxu+ivW/GPINbPWRM4Ppa6Lbgw==", + "requires": { + "core-js": "^3.4.1", + "object-assign": "^4.1.1", + "promise": "^8.0.3", + "raf": "^3.4.1", + "regenerator-runtime": "^0.13.3", + "whatwg-fetch": "^3.0.0" + } + }, + "react-dev-utils": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-10.0.0.tgz", + "integrity": "sha512-8OKSJvl8ccXJDNf0YGw377L9v1OnT16skD/EuZWm0M/yr255etP4x4kuUCT1EfFfJ7Rhc4ZTpPTfPrvgiXa50Q==", + "requires": { + "@babel/code-frame": "7.5.5", + "address": "1.1.2", + "browserslist": "4.7.3", + "chalk": "2.4.2", + "cross-spawn": "6.0.5", + "detect-port-alt": "1.1.6", + "escape-string-regexp": "1.0.5", + "filesize": "3.6.1", + "find-up": "3.0.0", + "fork-ts-checker-webpack-plugin": "3.1.0", + "global-modules": "2.0.0", + "globby": "8.0.2", + "gzip-size": "5.1.1", + "immer": "1.10.0", + "inquirer": "6.5.0", + "is-root": "2.1.0", + "loader-utils": "1.2.3", + "open": "^7.0.0", + "pkg-up": "2.0.0", + "react-error-overlay": "^6.0.4", + "recursive-readdir": "2.2.2", + "shell-quote": "1.7.2", + "strip-ansi": "5.2.0", + "text-table": "0.2.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", + "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", + "requires": { + "@babel/highlight": "^7.0.0" + } + }, + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==" + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "browserslist": { + "version": "4.7.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.7.3.tgz", + "integrity": "sha512-jWvmhqYpx+9EZm/FxcZSbUZyDEvDTLDi3nSAKbzEkyWvtI0mNSmUosey+5awDW1RUlrgXbQb5A6qY1xQH9U6MQ==", + "requires": { + "caniuse-lite": "^1.0.30001010", + "electron-to-chromium": "^1.3.306", + "node-releases": "^1.1.40" + } + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "inquirer": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.0.tgz", + "integrity": "sha512-scfHejeG/lVZSpvCXpsB4j/wQNPM5JC8kiElOI0OUTwmc1RTpXr4H32/HOlQHcZiYl2z2VElwuCVDRG8vFmbnA==", + "requires": { + "ansi-escapes": "^3.2.0", + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^2.0.0", + "lodash": "^4.17.12", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^2.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" + } + }, + "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=" + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + } + } + }, + "react-dom": { + "version": "16.12.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.12.0.tgz", + "integrity": "sha512-LMxFfAGrcS3kETtQaCkTKjMiifahaMySFDn71fZUNpPHZQEzmk/GiAeIT8JSOrHB23fnuCOMruL2a8NYlw+8Gw==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.18.0" + } + }, + "react-error-overlay": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.4.tgz", + "integrity": "sha512-ueZzLmHltszTshDMwyfELDq8zOA803wQ1ZuzCccXa1m57k1PxSHfflPD5W9YIiTXLs0JTLzoj6o1LuM5N6zzNA==" + }, + "react-is": { + "version": "16.12.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.12.0.tgz", + "integrity": "sha512-rPCkf/mWBtKc97aLL9/txD8DZdemK0vkA3JMLShjlJB3Pj3s+lpf1KaBzMfQrAmhMQB0n1cU/SUGgKKBCe837Q==" + }, + "react-scripts": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-3.3.0.tgz", + "integrity": "sha512-hzPc6bxCc9GnsspWqk494c2Gpd0dRbk/C8q76BNQIENi9GMwoxFljOEcZoZcpFpJgQ45alxFR6QaLt+51qie7g==", + "requires": { + "@babel/core": "7.7.4", + "@svgr/webpack": "4.3.3", + "@typescript-eslint/eslint-plugin": "^2.8.0", + "@typescript-eslint/parser": "^2.8.0", + "babel-eslint": "10.0.3", + "babel-jest": "^24.9.0", + "babel-loader": "8.0.6", + "babel-plugin-named-asset-import": "^0.3.5", + "babel-preset-react-app": "^9.1.0", + "camelcase": "^5.3.1", + "case-sensitive-paths-webpack-plugin": "2.2.0", + "css-loader": "3.2.0", + "dotenv": "8.2.0", + "dotenv-expand": "5.1.0", + "eslint": "^6.6.0", + "eslint-config-react-app": "^5.1.0", + "eslint-loader": "3.0.2", + "eslint-plugin-flowtype": "3.13.0", + "eslint-plugin-import": "2.18.2", + "eslint-plugin-jsx-a11y": "6.2.3", + "eslint-plugin-react": "7.16.0", + "eslint-plugin-react-hooks": "^1.6.1", + "file-loader": "4.3.0", + "fs-extra": "^8.1.0", + "fsevents": "2.1.2", + "html-webpack-plugin": "4.0.0-beta.5", + "identity-obj-proxy": "3.0.0", + "jest": "24.9.0", + "jest-environment-jsdom-fourteen": "0.1.0", + "jest-resolve": "24.9.0", + "jest-watch-typeahead": "0.4.2", + "mini-css-extract-plugin": "0.8.0", + "optimize-css-assets-webpack-plugin": "5.0.3", + "pnp-webpack-plugin": "1.5.0", + "postcss-flexbugs-fixes": "4.1.0", + "postcss-loader": "3.0.0", + "postcss-normalize": "8.0.1", + "postcss-preset-env": "6.7.0", + "postcss-safe-parser": "4.0.1", + "react-app-polyfill": "^1.0.5", + "react-dev-utils": "^10.0.0", + "resolve": "1.12.2", + "resolve-url-loader": "3.1.1", + "sass-loader": "8.0.0", + "semver": "6.3.0", + "style-loader": "1.0.0", + "terser-webpack-plugin": "2.2.1", + "ts-pnp": "1.1.5", + "url-loader": "2.3.0", + "webpack": "4.41.2", + "webpack-dev-server": "3.9.0", + "webpack-manifest-plugin": "2.2.0", + "workbox-webpack-plugin": "4.3.1" + } + }, + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "requires": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + } + }, + "read-pkg-up": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz", + "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==", + "requires": { + "find-up": "^3.0.0", + "read-pkg": "^3.0.0" + } + }, + "readable-stream": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.5.0.tgz", + "integrity": "sha512-gSz026xs2LfxBPudDuI41V1lka8cxg64E66SGe78zJlsUofOg/yqwezdIcdfwik6B4h8LFmWPA9ef9X3FiNFLA==", + "requires": { + "inherits": "^2.0.3", + "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==", + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "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" + } + } + } + }, + "realpath-native": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-1.1.0.tgz", + "integrity": "sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA==", + "requires": { + "util.promisify": "^1.0.0" + } + }, + "recursive-readdir": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz", + "integrity": "sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==", + "requires": { + "minimatch": "3.0.4" + } + }, + "redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "requires": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + } + }, + "regenerate": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", + "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==" + }, + "regenerate-unicode-properties": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz", + "integrity": "sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA==", + "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==" + }, + "regenerator-transform": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.1.tgz", + "integrity": "sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ==", + "requires": { + "private": "^0.1.6" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regex-parser": { + "version": "2.2.10", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.10.tgz", + "integrity": "sha512-8t6074A68gHfU8Neftl0Le6KTDwfGAj7IyjPIMSfikI2wJUTHDMaIq42bUsfVnj8mhx0R+45rdUXHGpN164avA==" + }, + "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==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + } + }, + "regexpp": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.0.0.tgz", + "integrity": "sha512-Z+hNr7RAVWxznLPuA7DIh8UNX1j9CDrUQxskw9IrBE1Dxue2lyXT+shqEIeLUjrokxIP8CMy1WkjgG3rTsd5/g==" + }, + "regexpu-core": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.6.0.tgz", + "integrity": "sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg==", + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.1.0", + "regjsgen": "^0.5.0", + "regjsparser": "^0.6.0", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.1.0" + } + }, + "regjsgen": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz", + "integrity": "sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==" + }, + "regjsparser": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.2.tgz", + "integrity": "sha512-E9ghzUtoLwDekPT0DYCp+c4h+bvuUpe6rRHCTYn6eGoqj1LgKXxT6I0Il4WbjhQkOghzi/V+y03bPKvbllL93Q==", + "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=" + } + } + }, + "relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=" + }, + "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=" + }, + "renderkid": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.3.tgz", + "integrity": "sha512-z8CLQp7EZBPCwCnncgf9C4XAi3WR0dv+uWu/PjIyhhAb5d6IJ/QZqlHFprHeKT+59//V6BNUsLbvN8+2LarxGA==", + "requires": { + "css-select": "^1.1.0", + "dom-converter": "^0.2", + "htmlparser2": "^3.3.0", + "strip-ansi": "^3.0.0", + "utila": "^0.4.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "css-select": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", + "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", + "requires": { + "boolbase": "~1.0.0", + "css-what": "2.1", + "domutils": "1.5.1", + "nth-check": "~1.0.1" + } + }, + "css-what": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", + "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==" + }, + "domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + }, + "request": { + "version": "2.88.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + }, + "tough-cookie": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", + "requires": { + "psl": "^1.1.24", + "punycode": "^1.4.1" + } + } + } + }, + "request-promise-core": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.3.tgz", + "integrity": "sha512-QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ==", + "requires": { + "lodash": "^4.17.15" + } + }, + "request-promise-native": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.8.tgz", + "integrity": "sha512-dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ==", + "requires": { + "request-promise-core": "1.1.3", + "stealthy-require": "^1.1.1", + "tough-cookie": "^2.3.3" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "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==" + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" + }, + "resolve": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.2.tgz", + "integrity": "sha512-cAVTI2VLHWYsGOirfeYVVQ7ZDejtQ9fp4YhYckWDEkFfqbVjaT11iM8k6xSAfGFMM+gDpZjMnFssPu8we+mqFw==", + "requires": { + "path-parse": "^1.0.6" + } + }, + "resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "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=" + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" + }, + "resolve-url-loader": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-3.1.1.tgz", + "integrity": "sha512-K1N5xUjj7v0l2j/3Sgs5b8CjrrgtC70SmdCuZiJ8tSyb5J+uk3FoeZ4b7yTnH6j7ngI+Bc5bldHJIa8hYdu2gQ==", + "requires": { + "adjust-sourcemap-loader": "2.0.0", + "camelcase": "5.3.1", + "compose-function": "3.0.3", + "convert-source-map": "1.7.0", + "es6-iterator": "2.0.3", + "loader-utils": "1.2.3", + "postcss": "7.0.21", + "rework": "1.0.1", + "rework-visit": "1.0.0", + "source-map": "0.6.1" + }, + "dependencies": { + "postcss": { + "version": "7.0.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.21.tgz", + "integrity": "sha512-uIFtJElxJo29QC753JzhidoAhvp/e/Exezkdhfmt8AymWT6/5B7W1WmponYWkHk2eg6sONyTch0A3nkMPun3SQ==", + "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==" + }, + "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==", + "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==", + "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==" + }, + "retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=" + }, + "rework": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rework/-/rework-1.0.1.tgz", + "integrity": "sha1-MIBqhBNCtUUQqkEQhQzUhTQUSqc=", + "requires": { + "convert-source-map": "^0.3.3", + "css": "^2.0.0" + }, + "dependencies": { + "convert-source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-0.3.5.tgz", + "integrity": "sha1-8dgClQr33SYxof6+BZZVDIarMZA=" + } + } + }, + "rework-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rework-visit/-/rework-visit-1.0.0.tgz", + "integrity": "sha1-mUWygD8hni96ygCtuLyfZA+ELJo=" + }, + "rgb-regex": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", + "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=" + }, + "rgba-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", + "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=" + }, + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "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==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "rsvp": { + "version": "4.8.5", + "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", + "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==" + }, + "run-async": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", + "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", + "requires": { + "is-promise": "^2.1.0" + } + }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "requires": { + "aproba": "^1.1.1" + } + }, + "rxjs": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz", + "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==", + "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=", + "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==" + }, + "sane": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz", + "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==", + "requires": { + "@cnakazawa/watch": "^1.0.3", + "anymatch": "^2.0.0", + "capture-exit": "^2.0.0", + "exec-sh": "^0.3.2", + "execa": "^1.0.0", + "fb-watchman": "^2.0.0", + "micromatch": "^3.1.4", + "minimist": "^1.1.1", + "walker": "~1.0.5" + } + }, + "sanitize.css": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/sanitize.css/-/sanitize.css-10.0.0.tgz", + "integrity": "sha512-vTxrZz4dX5W86M6oVWVdOVe72ZiPs41Oi7Z6Km4W5Turyz28mrXSJhhEBZoRtzJWIv3833WKVwLSDWWkEfupMg==" + }, + "sass-loader": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-8.0.0.tgz", + "integrity": "sha512-+qeMu563PN7rPdit2+n5uuYVR0SSVwm0JsOUsaJXzgYcClWSlmX0iHDnmeOobPkf5kUglVot3QS6SyLyaQoJ4w==", + "requires": { + "clone-deep": "^4.0.1", + "loader-utils": "^1.2.3", + "neo-async": "^2.6.1", + "schema-utils": "^2.1.0", + "semver": "^6.3.0" + }, + "dependencies": { + "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==", + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + } + }, + "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==" + }, + "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==", + "requires": { + "kind-of": "^6.0.2" + } + } + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "saxes": { + "version": "3.1.11", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-3.1.11.tgz", + "integrity": "sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g==", + "requires": { + "xmlchars": "^2.1.1" + } + }, + "scheduler": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.18.0.tgz", + "integrity": "sha512-agTSHR1Nbfi6ulI0kYNK0203joW2Y5W4po4l+v03tOoiJKpTBbxpNhWDvqc/4IcOw+KLmSiQLTasZ4cab2/UWQ==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "schema-utils": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.4.tgz", + "integrity": "sha512-VNjcaUxVnEeun6B2fiiUDjXXBtD4ZSH7pdbfIu1pOFwgptDPLMo/z9jr4sUfsjFVPqDCEin/F7IYlq7/E6yDbQ==", + "requires": { + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1" + } + }, + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=" + }, + "selfsigned": { + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.7.tgz", + "integrity": "sha512-8M3wBCzeWIJnQfl43IKwOmC4H/RAp50S8DF60znzjW5GVqTcSe2vWclt7hmYVPkKPlHWOu5EaWOMZ2Y6W8ZXTA==", + "requires": { + "node-forge": "0.9.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + }, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "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==", + "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=" + } + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "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==" + } + } + }, + "serialize-javascript": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz", + "integrity": "sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==" + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "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==", + "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=", + "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=" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + } + } + }, + "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==", + "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=" + }, + "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==", + "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=", + "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=" + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shallow-clone": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-0.1.2.tgz", + "integrity": "sha1-WQnodLp3EG1zrEFM/sH/yofZcGA=", + "requires": { + "is-extendable": "^0.1.1", + "kind-of": "^2.0.1", + "lazy-cache": "^0.2.3", + "mixin-object": "^2.0.1" + }, + "dependencies": { + "kind-of": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-2.0.1.tgz", + "integrity": "sha1-AY7HpM5+OobLkUG+UZ0kyPqpgbU=", + "requires": { + "is-buffer": "^1.0.2" + } + }, + "lazy-cache": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-0.2.7.tgz", + "integrity": "sha1-f+3fLctu23fRHvHRF6tf/fCrG2U=" + } + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "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=" + }, + "shell-quote": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz", + "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==" + }, + "shellwords": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", + "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==" + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + }, + "simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "requires": { + "is-arrayish": "^0.3.1" + }, + "dependencies": { + "is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" + } + } + }, + "sisteransi": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.4.tgz", + "integrity": "sha512-/ekMoM4NJ59ivGSfKapeG+FWtrmWvA1p6FBZwXrqojw90vJu8lBmrTxCMuBCydKtkaUe2zt4PlxeTKpjwMbyig==" + }, + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==" + }, + "slice-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "requires": { + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" + }, + "dependencies": { + "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=" + } + } + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "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==", + "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=", + "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=", + "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=" + } + } + }, + "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==", + "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=", + "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==", + "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==", + "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==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "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==" + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "requires": { + "kind-of": "^3.2.0" + } + }, + "sockjs": { + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz", + "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==", + "requires": { + "faye-websocket": "^0.10.0", + "uuid": "^3.0.1" + } + }, + "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==", + "requires": { + "debug": "^3.2.5", + "eventsource": "^1.0.7", + "faye-websocket": "~0.11.1", + "inherits": "^2.0.3", + "json3": "^3.3.2", + "url-parse": "^1.4.3" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "faye-websocket": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", + "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", + "requires": { + "websocket-driver": ">=0.5.1" + } + } + } + }, + "sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "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==" + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + }, + "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==", + "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.5.16", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz", + "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==", + "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==" + } + } + }, + "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=" + }, + "spdx-correct": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", + "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", + "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==" + }, + "spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", + "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==" + }, + "spdy": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.1.tgz", + "integrity": "sha512-HeZS3PBdMA+sZSu0qwpCxl3DeALD5ASx8pAX0jZdKXSpPWbQ6SYGnlg3BBmYLx5LtiZrmkAZfErCm2oECBcioA==", + "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==", + "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==", + "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=" + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "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": "7.1.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-7.1.0.tgz", + "integrity": "sha512-77/WrDZUWocK0mvA5NTRQyveUf+wsrIc6vyrxpS8tVvYBcX215QbafrJR3KtkpskIzoFLqqNuuYQvxaMjXJ/0g==", + "requires": { + "figgy-pudding": "^3.5.1", + "minipass": "^3.1.1" + } + }, + "stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" + }, + "stack-utils": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.2.tgz", + "integrity": "sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA==" + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "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=", + "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=" + }, + "stealthy-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", + "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=" + }, + "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==", + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + }, + "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" + } + } + } + }, + "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==", + "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==", + "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" + }, + "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" + } + } + } + }, + "stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" + }, + "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=" + }, + "string-length": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz", + "integrity": "sha1-1A27aGo6zpYMHP/KVivyxF+DY+0=", + "requires": { + "astral-regex": "^1.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "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==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "string.prototype.trimleft": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz", + "integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==", + "requires": { + "define-properties": "^1.1.3", + "function-bind": "^1.1.1" + } + }, + "string.prototype.trimright": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz", + "integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==", + "requires": { + "define-properties": "^1.1.3", + "function-bind": "^1.1.1" + } + }, + "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==", + "requires": { + "safe-buffer": "~5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" + } + } + }, + "stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "requires": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.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==", + "requires": { + "ansi-regex": "^4.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + } + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" + }, + "strip-comments": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-1.0.2.tgz", + "integrity": "sha512-kL97alc47hoyIQSV165tTt9rG5dn4w1dNnBhOQ3bOU1Nc1hel09jnXANaHJ7vzHLd4Ju8kseDGzlev96pghLFw==", + "requires": { + "babel-extract-comments": "^1.0.0", + "babel-plugin-transform-object-rest-spread": "^6.26.0" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" + }, + "strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "requires": { + "min-indent": "^1.0.0" + } + }, + "strip-json-comments": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", + "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==" + }, + "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==", + "requires": { + "loader-utils": "^1.2.3", + "schema-utils": "^2.0.1" + } + }, + "stylehacks": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", + "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", + "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=", + "requires": { + "dot-prop": "^4.1.1", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "svg-parser": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.3.tgz", + "integrity": "sha512-fnCWiifNhK8i2Z7b9R5tbNahpxrRdAaQbnoxKlT2KrSCj9Kq/yBSgulCRgBJRhy1dPnSY5slg5ehPUnzpEcHlg==" + }, + "svgo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", + "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", + "requires": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + } + }, + "symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" + }, + "table": { + "version": "5.4.6", + "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", + "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "requires": { + "ajv": "^6.10.2", + "lodash": "^4.17.14", + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" + }, + "dependencies": { + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + }, + "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=" + }, + "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==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + } + } + }, + "tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==" + }, + "terser": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.3.tgz", + "integrity": "sha512-Lw+ieAXmY69d09IIc/yqeBqXpEQIpDGZqT34ui1QWXIUpR2RjbqEkT8X7Lgex19hslSqcWM5iMN2kM11eMsESQ==", + "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==" + } + } + }, + "terser-webpack-plugin": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-2.2.1.tgz", + "integrity": "sha512-jwdauV5Al7zopR6OAYvIIRcxXCSvLjZjr7uZE8l2tIWb/ryrGN48sJftqGf5k9z09tWhajx53ldp0XPI080YnA==", + "requires": { + "cacache": "^13.0.1", + "find-cache-dir": "^3.0.0", + "jest-worker": "^24.9.0", + "schema-utils": "^2.5.0", + "serialize-javascript": "^2.1.0", + "source-map": "^0.6.1", + "terser": "^4.3.9", + "webpack-sources": "^1.4.3" + }, + "dependencies": { + "find-cache-dir": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.2.0.tgz", + "integrity": "sha512-1JKclkYYsf1q9WIJKLZa9S9muC+08RIjzAlLrK4QcYLJMS6mk9yombQ9qf+zJ7H9LS800k0s44L4sDq9VYzqyg==", + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.0", + "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==", + "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==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "make-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.0.tgz", + "integrity": "sha512-grNJDhb8b1Jm1qeqW5R/O63wUo4UXo2v2HMic6YT9i/HBlF93S8jkMgH7yugvY9ABDShH4VZMn8I+U8+fCNegw==", + "requires": { + "semver": "^6.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==", + "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==" + }, + "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==", + "requires": { + "find-up": "^4.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==" + } + } + }, + "test-exclude": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-5.2.3.tgz", + "integrity": "sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g==", + "requires": { + "glob": "^7.1.3", + "minimatch": "^3.0.4", + "read-pkg-up": "^4.0.0", + "require-main-filename": "^2.0.0" + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" + }, + "throat": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz", + "integrity": "sha1-iQN8vJLFarGJJua6TLsgDhVnKmo=" + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "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", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" + }, + "timers-browserify": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz", + "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==", + "requires": { + "setimmediate": "^1.0.4" + } + }, + "timsort": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", + "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=" + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "tmpl": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", + "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=" + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" + }, + "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=" + }, + "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=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + }, + "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==", + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "requires": { + "punycode": "^2.1.0" + } + }, + "ts-pnp": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.1.5.tgz", + "integrity": "sha512-ti7OGMOUOzo66wLF3liskw6YQIaSsBgc4GOAlWRnIEj8htCxJUxskanMUoJOD6MDCRAXo36goXJZch+nOS0VMA==" + }, + "tslib": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", + "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==" + }, + "tsutils": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz", + "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==", + "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=" + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "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=" + }, + "type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "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=" + }, + "uglify-js": { + "version": "3.4.10", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz", + "integrity": "sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==", + "requires": { + "commander": "~2.19.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "commander": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", + "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "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==" + }, + "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==", + "requires": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz", + "integrity": "sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g==" + }, + "unicode-property-aliases-ecmascript": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz", + "integrity": "sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==" + }, + "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==", + "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=" + }, + "uniqs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", + "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=" + }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "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==", + "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==" + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=" + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "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=", + "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=", + "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=" + } + } + }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==" + }, + "upper-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", + "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=" + }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "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=" + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "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=" + } + } + }, + "url-loader": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-2.3.0.tgz", + "integrity": "sha512-goSdg8VY+7nPZKUEChZSEtW5gjbS66USIGCeSJ1OVOJ7Yfuh/36YxCwMi5HVEJh6mqUYOoy3NJ0vlOMrWsSHog==", + "requires": { + "loader-utils": "^1.2.3", + "mime": "^2.4.4", + "schema-utils": "^2.5.0" + } + }, + "url-parse": { + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz", + "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==", + "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==" + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "requires": { + "inherits": "2.0.1" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + } + }, + "utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + }, + "v8-compile-cache": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz", + "integrity": "sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==" + }, + "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==", + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "vendors": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", + "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==" + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "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==" + }, + "w3c-hr-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz", + "integrity": "sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=", + "requires": { + "browser-process-hrtime": "^0.1.2" + } + }, + "w3c-xmlserializer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz", + "integrity": "sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg==", + "requires": { + "domexception": "^1.0.1", + "webidl-conversions": "^4.0.2", + "xml-name-validator": "^3.0.0" + } + }, + "wait-for-expect": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/wait-for-expect/-/wait-for-expect-3.0.1.tgz", + "integrity": "sha512-3Ha7lu+zshEG/CeHdcpmQsZnnZpPj/UsG3DuKO8FskjuDbkx3jE3845H+CuwZjA2YWYDfKMU2KhnCaXMLd3wVw==" + }, + "walker": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", + "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", + "requires": { + "makeerror": "1.0.x" + } + }, + "watchpack": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", + "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", + "requires": { + "chokidar": "^2.0.2", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0" + } + }, + "wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "requires": { + "minimalistic-assert": "^1.0.0" + } + }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" + }, + "webpack": { + "version": "4.41.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.2.tgz", + "integrity": "sha512-Zhw69edTGfbz9/8JJoyRQ/pq8FYUoY0diOXqW0T6yhgdhCv6wr0hra5DwwWexNRns2Z2+gsnrNcbe9hbGBgk/A==", + "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": { + "acorn": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.0.tgz", + "integrity": "sha512-gac8OEcQ2Li1dxIEWGZzsp2BitJxwkwcOm0zHAJLcPJaVvm58FRnk6RkuLRpU1EujipU2ZFODv2P9DLMfnV8mw==" + }, + "cacache": { + "version": "12.0.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.3.tgz", + "integrity": "sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw==", + "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" + } + }, + "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==", + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "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==", + "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==" + }, + "ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "terser-webpack-plugin": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz", + "integrity": "sha512-QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA==", + "requires": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^2.1.2", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + } + } + } + }, + "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==", + "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-dev-server": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.9.0.tgz", + "integrity": "sha512-E6uQ4kRrTX9URN9s/lIbqTAztwEPdvzVrcmHE8EQ9YnuT9J8Es5Wrd8n9BKg1a0oZ5EgEke/EQFgUsp18dSTBw==", + "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.2.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.4", + "opn": "^5.5.0", + "p-retry": "^3.0.1", + "portfinder": "^1.0.25", + "schema-utils": "^1.0.0", + "selfsigned": "^1.10.7", + "semver": "^6.3.0", + "serve-index": "^1.9.1", + "sockjs": "0.3.19", + "sockjs-client": "1.4.0", + "spdy": "^4.0.1", + "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": "12.0.5" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "cliui": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^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==" + }, + "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==" + }, + "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=" + }, + "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=" + }, + "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==", + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^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=", + "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==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "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=", + "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=", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } + } + }, + "ws": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", + "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", + "requires": { + "async-limiter": "~1.0.0" + } + }, + "yargs": { + "version": "12.0.5", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", + "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "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==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.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==", + "requires": { + "ansi-colors": "^3.0.0", + "uuid": "^3.3.2" + } + }, + "webpack-manifest-plugin": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-2.2.0.tgz", + "integrity": "sha512-9S6YyKKKh/Oz/eryM1RyLVDVmy3NSPV0JXMRhZ18fJsq+AwGxUY34X54VNwkzYcEmEkDwNxuEOboCZEebJXBAQ==", + "requires": { + "fs-extra": "^7.0.0", + "lodash": ">=3.5 <5", + "object.entries": "^1.1.0", + "tapable": "^1.0.0" + }, + "dependencies": { + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + } + } + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "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==" + } + } + }, + "websocket-driver": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.3.tgz", + "integrity": "sha512-bpxWlvbbB459Mlipc5GBzzZwhoZgGEZLuqPaR0INBGnPAY1vdBX6hPnoFXiw+3yWxDuHyQjO2oXTMyS8A5haFg==", + "requires": { + "http-parser-js": ">=0.4.0 <0.4.11", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + } + }, + "websocket-extensions": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz", + "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==" + }, + "whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "requires": { + "iconv-lite": "0.4.24" + } + }, + "whatwg-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz", + "integrity": "sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q==" + }, + "whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" + }, + "whatwg-url": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.5.0.tgz", + "integrity": "sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ==", + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "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=" + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" + }, + "workbox-background-sync": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-4.3.1.tgz", + "integrity": "sha512-1uFkvU8JXi7L7fCHVBEEnc3asPpiAL33kO495UMcD5+arew9IbKW2rV5lpzhoWcm/qhGB89YfO4PmB/0hQwPRg==", + "requires": { + "workbox-core": "^4.3.1" + } + }, + "workbox-broadcast-update": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-4.3.1.tgz", + "integrity": "sha512-MTSfgzIljpKLTBPROo4IpKjESD86pPFlZwlvVG32Kb70hW+aob4Jxpblud8EhNb1/L5m43DUM4q7C+W6eQMMbA==", + "requires": { + "workbox-core": "^4.3.1" + } + }, + "workbox-build": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-4.3.1.tgz", + "integrity": "sha512-UHdwrN3FrDvicM3AqJS/J07X0KXj67R8Cg0waq1MKEOqzo89ap6zh6LmaLnRAjpB+bDIz+7OlPye9iii9KBnxw==", + "requires": { + "@babel/runtime": "^7.3.4", + "@hapi/joi": "^15.0.0", + "common-tags": "^1.8.0", + "fs-extra": "^4.0.2", + "glob": "^7.1.3", + "lodash.template": "^4.4.0", + "pretty-bytes": "^5.1.0", + "stringify-object": "^3.3.0", + "strip-comments": "^1.0.2", + "workbox-background-sync": "^4.3.1", + "workbox-broadcast-update": "^4.3.1", + "workbox-cacheable-response": "^4.3.1", + "workbox-core": "^4.3.1", + "workbox-expiration": "^4.3.1", + "workbox-google-analytics": "^4.3.1", + "workbox-navigation-preload": "^4.3.1", + "workbox-precaching": "^4.3.1", + "workbox-range-requests": "^4.3.1", + "workbox-routing": "^4.3.1", + "workbox-strategies": "^4.3.1", + "workbox-streams": "^4.3.1", + "workbox-sw": "^4.3.1", + "workbox-window": "^4.3.1" + }, + "dependencies": { + "fs-extra": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", + "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + } + } + }, + "workbox-cacheable-response": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-4.3.1.tgz", + "integrity": "sha512-Rp5qlzm6z8IOvnQNkCdO9qrDgDpoPNguovs0H8C+wswLuPgSzSp9p2afb5maUt9R1uTIwOXrVQMmPfPypv+npw==", + "requires": { + "workbox-core": "^4.3.1" + } + }, + "workbox-core": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-4.3.1.tgz", + "integrity": "sha512-I3C9jlLmMKPxAC1t0ExCq+QoAMd0vAAHULEgRZ7kieCdUd919n53WC0AfvokHNwqRhGn+tIIj7vcb5duCjs2Kg==" + }, + "workbox-expiration": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-4.3.1.tgz", + "integrity": "sha512-vsJLhgQsQouv9m0rpbXubT5jw0jMQdjpkum0uT+d9tTwhXcEZks7qLfQ9dGSaufTD2eimxbUOJfWLbNQpIDMPw==", + "requires": { + "workbox-core": "^4.3.1" + } + }, + "workbox-google-analytics": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-4.3.1.tgz", + "integrity": "sha512-xzCjAoKuOb55CBSwQrbyWBKqp35yg1vw9ohIlU2wTy06ZrYfJ8rKochb1MSGlnoBfXGWss3UPzxR5QL5guIFdg==", + "requires": { + "workbox-background-sync": "^4.3.1", + "workbox-core": "^4.3.1", + "workbox-routing": "^4.3.1", + "workbox-strategies": "^4.3.1" + } + }, + "workbox-navigation-preload": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-4.3.1.tgz", + "integrity": "sha512-K076n3oFHYp16/C+F8CwrRqD25GitA6Rkd6+qAmLmMv1QHPI2jfDwYqrytOfKfYq42bYtW8Pr21ejZX7GvALOw==", + "requires": { + "workbox-core": "^4.3.1" + } + }, + "workbox-precaching": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-4.3.1.tgz", + "integrity": "sha512-piSg/2csPoIi/vPpp48t1q5JLYjMkmg5gsXBQkh/QYapCdVwwmKlU9mHdmy52KsDGIjVaqEUMFvEzn2LRaigqQ==", + "requires": { + "workbox-core": "^4.3.1" + } + }, + "workbox-range-requests": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-4.3.1.tgz", + "integrity": "sha512-S+HhL9+iTFypJZ/yQSl/x2Bf5pWnbXdd3j57xnb0V60FW1LVn9LRZkPtneODklzYuFZv7qK6riZ5BNyc0R0jZA==", + "requires": { + "workbox-core": "^4.3.1" + } + }, + "workbox-routing": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-4.3.1.tgz", + "integrity": "sha512-FkbtrODA4Imsi0p7TW9u9MXuQ5P4pVs1sWHK4dJMMChVROsbEltuE79fBoIk/BCztvOJ7yUpErMKa4z3uQLX+g==", + "requires": { + "workbox-core": "^4.3.1" + } + }, + "workbox-strategies": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-4.3.1.tgz", + "integrity": "sha512-F/+E57BmVG8dX6dCCopBlkDvvhg/zj6VDs0PigYwSN23L8hseSRwljrceU2WzTvk/+BSYICsWmRq5qHS2UYzhw==", + "requires": { + "workbox-core": "^4.3.1" + } + }, + "workbox-streams": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-4.3.1.tgz", + "integrity": "sha512-4Kisis1f/y0ihf4l3u/+ndMkJkIT4/6UOacU3A4BwZSAC9pQ9vSvJpIi/WFGQRH/uPXvuVjF5c2RfIPQFSS2uA==", + "requires": { + "workbox-core": "^4.3.1" + } + }, + "workbox-sw": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-4.3.1.tgz", + "integrity": "sha512-0jXdusCL2uC5gM3yYFT6QMBzKfBr2XTk0g5TPAV4y8IZDyVNDyj1a8uSXy3/XrvkVTmQvLN4O5k3JawGReXr9w==" + }, + "workbox-webpack-plugin": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-4.3.1.tgz", + "integrity": "sha512-gJ9jd8Mb8wHLbRz9ZvGN57IAmknOipD3W4XNE/Lk/4lqs5Htw4WOQgakQy/o/4CoXQlMCYldaqUg+EJ35l9MEQ==", + "requires": { + "@babel/runtime": "^7.0.0", + "json-stable-stringify": "^1.0.1", + "workbox-build": "^4.3.1" + } + }, + "workbox-window": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-4.3.1.tgz", + "integrity": "sha512-C5gWKh6I58w3GeSc0wp2Ne+rqVw8qwcmZnQGpjiek8A2wpbxSJb1FdCoQVO+jDJs35bFgo/WETgl1fqgsxN0Hg==", + "requires": { + "workbox-core": "^4.3.1" + } + }, + "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==", + "requires": { + "errno": "~0.1.7" + } + }, + "worker-rpc": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/worker-rpc/-/worker-rpc-0.1.1.tgz", + "integrity": "sha512-P1WjMrUB3qgJNI9jfmpZ/htmBEjFh//6l/5y8SD9hg1Ef5zTTVVoRjTrTEzPrNBQvmhMxkoTsjOXN10GWU7aCg==", + "requires": { + "microevent.ts": "~0.1.1" + } + }, + "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==", + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "dependencies": { + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + }, + "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=" + }, + "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==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "write": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", + "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", + "requires": { + "mkdirp": "^0.5.1" + } + }, + "write-file-atomic": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.1.tgz", + "integrity": "sha512-TGHFeZEZMnv+gBFRfjAcxL5bPHrsGKtnb4qsFAws7/vlh+QfwAaySIw4AXP9ZskTTh5GWu3FLuJhsWVdiJPGvg==", + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "ws": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", + "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", + "requires": { + "async-limiter": "~1.0.0" + } + }, + "xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" + }, + "xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "yaml": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.7.2.tgz", + "integrity": "sha512-qXROVp90sb83XtAoqE8bP9RwAkTTZbugRUTm5YeFCBfNRPEp2YzTeqWiz7m5OORHzEvrA/qcGS8hp/E+MMROYw==", + "requires": { + "@babel/runtime": "^7.6.3" + } + }, + "yargs": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz", + "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==", + "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.1" + }, + "dependencies": { + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + }, + "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=" + }, + "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==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + } + } + }, + "yargs-parser": { + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", + "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } +} diff --git a/practice/group777/client/package.json b/practice/group777/client/package.json new file mode 100644 index 0000000..c73b4b3 --- /dev/null +++ b/practice/group777/client/package.json @@ -0,0 +1,35 @@ +{ + "name": "client", + "version": "0.1.0", + "private": true, + "proxy": "http://localhost:5000/", + "dependencies": { + "@testing-library/jest-dom": "^4.2.4", + "@testing-library/react": "^9.4.0", + "@testing-library/user-event": "^7.2.1", + "react": "^16.12.0", + "react-dom": "^16.12.0", + "react-scripts": "3.3.0" + }, + "scripts": { + "start": "react-scripts start", + "build": "react-scripts build", + "test": "react-scripts test", + "eject": "react-scripts eject" + }, + "eslintConfig": { + "extends": "react-app" + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + } +} diff --git a/practice/group777/client/public/favicon.ico b/practice/group777/client/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..a11777cc471a4344702741ab1c8a588998b1311a GIT binary patch literal 3870 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 baj7?x%VD!5Cxk2YbYLNVeiXvvpMCWYo=by@ literal 0 HcmV?d00001 diff --git a/practice/group777/client/public/index.html b/practice/group777/client/public/index.html new file mode 100644 index 0000000..aa069f2 --- /dev/null +++ b/practice/group777/client/public/index.html @@ -0,0 +1,43 @@ + + + + + + + + + + + + + React App + + + +
          + + + diff --git a/practice/group777/client/public/logo192.png b/practice/group777/client/public/logo192.png new file mode 100644 index 0000000000000000000000000000000000000000..fc44b0a3796c0e0a64c3d858ca038bd4570465d9 GIT binary patch literal 5347 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 b{|{}U^kRn2wo}j7|0ATu<;8xA7zX}7|B6mN literal 0 HcmV?d00001 diff --git a/practice/group777/client/public/manifest.json b/practice/group777/client/public/manifest.json new file mode 100644 index 0000000..080d6c7 --- /dev/null +++ b/practice/group777/client/public/manifest.json @@ -0,0 +1,25 @@ +{ + "short_name": "React App", + "name": "Create React App Sample", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + }, + { + "src": "logo192.png", + "type": "image/png", + "sizes": "192x192" + }, + { + "src": "logo512.png", + "type": "image/png", + "sizes": "512x512" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/practice/group777/client/public/robots.txt b/practice/group777/client/public/robots.txt new file mode 100644 index 0000000..01b0f9a --- /dev/null +++ b/practice/group777/client/public/robots.txt @@ -0,0 +1,2 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * diff --git a/practice/group777/client/src/App.js b/practice/group777/client/src/App.js new file mode 100644 index 0000000..e3d792a --- /dev/null +++ b/practice/group777/client/src/App.js @@ -0,0 +1,22 @@ +import React, {useEffect} from 'react'; +import Registration from "./Registration"; + + + +function App() { + + useEffect(() => { + console.log(1) + if(localStorage.getItem('tokenApi')) { + console.log(localStorage.getItem('tokenApi')) + } + }, []); + + return ( + <> + + + ); +} + +export default App; diff --git a/practice/group777/client/src/Registration.js b/practice/group777/client/src/Registration.js new file mode 100644 index 0000000..7191a7b --- /dev/null +++ b/practice/group777/client/src/Registration.js @@ -0,0 +1,34 @@ +import React, {useState} from 'react'; + +export default function Registration() { + + const [name, setName] = useState(null); + const [email, setEmail] = useState(null); + const [age, setAge] = useState(null); + const [password, setPassword] = useState(null); + + function reg(e) { + e.preventDefault(); + console.log(name, age, email, password) + fetch('/registration', { + method: 'post', + body: JSON.stringify({userName: name, age, email, password}), + headers: { + 'Content-Type': 'application/json' + } + }) + .then( res => res.json()) + .then(token => localStorage.setItem('tokenApi', token.token)) + .catch(e=>console.log(e)) + } + + return ( +
          reg(e)}> + setName(e.target.value)} placeholder='Имя'/> + setEmail(e.target.value)} placeholder='Почта'/> + setAge(e.target.value)} placeholder='Возраст'/> + setPassword(e.target.value)} placeholder='Пароль'/> + +
          + ); +} diff --git a/practice/group777/client/src/index.js b/practice/group777/client/src/index.js new file mode 100644 index 0000000..b597a44 --- /dev/null +++ b/practice/group777/client/src/index.js @@ -0,0 +1,5 @@ +import React from 'react'; +import ReactDOM from 'react-dom'; +import App from './App'; + +ReactDOM.render(, document.getElementById('root')); diff --git a/practice/group777/config.js b/practice/group777/config.js index 24ec483..acdef29 100644 --- a/practice/group777/config.js +++ b/practice/group777/config.js @@ -1,5 +1,5 @@ const config = { - port: process.env.PORT || 3000, + port: process.env.PORT || 5000, secret: 'awjkh34oujklw3dkjh' }; diff --git a/practice/group777/index.js b/practice/group777/index.js index 9318d3e..3113b1e 100644 --- a/practice/group777/index.js +++ b/practice/group777/index.js @@ -7,7 +7,7 @@ const taskRouter = require('./routers/task'); const deleteRouter = require('./routers/delete'); const apiRouter = require('./routers/api'); const formRouter = require('./routers/form'); -const startRouter = require('./routers/start'); +const startRouter = require('./routers'); const loginRouter = require('./routers/login'); const {port} = require('./config'); const jwt = require('jsonwebtoken'); diff --git a/practice/group777/models/task.js b/practice/group777/models/task.js index 6194fe3..7267632 100644 --- a/practice/group777/models/task.js +++ b/practice/group777/models/task.js @@ -16,7 +16,9 @@ const taskScheme = new Schema({ type: mongoose.Schema.Types.ObjectId, required: true } -}); +}, { + timestamps: true + }); const Task = mongoose.model("Task", taskScheme); diff --git a/practice/group777/models/user.js b/practice/group777/models/user.js index 1f91fe3..cd803aa 100644 --- a/practice/group777/models/user.js +++ b/practice/group777/models/user.js @@ -40,6 +40,8 @@ const userScheme = new Schema({ required: true } }] +}, { + timestamps: true }); userScheme.methods.generateAuthToken = async function() { diff --git a/practice/group777/routers/start.js b/practice/group777/routers/index.js similarity index 90% rename from practice/group777/routers/start.js rename to practice/group777/routers/index.js index 852f164..aba2c07 100644 --- a/practice/group777/routers/start.js +++ b/practice/group777/routers/index.js @@ -4,7 +4,7 @@ const User = require('./../models/user'); const Task = require('./../models/task'); const auth = require('./../midlleware/auth'); -router.get('/', async function (req, res) { +router.get('/', auth, async function (req, res) { const users = await User.find(); const tasks = await Task.find(); //console.log(req.user.email, '***') diff --git a/practice/group777/routers/user.js b/practice/group777/routers/user.js index 89e0c01..299ed74 100644 --- a/practice/group777/routers/user.js +++ b/practice/group777/routers/user.js @@ -12,7 +12,7 @@ router.get('/user/:id', async function (req, res) { res.send(user) }); -router.post('/user', function (req, res) { +router.post('/registration', async function (req, res) { if(!req.body) return res.sendStatus(500); const user = new User({ name: req.body.userName, @@ -21,15 +21,17 @@ router.post('/user', function (req, res) { password: req.body.password }); console.log('body:', user); + const token = await user.generateAuthToken(); + console.log(token) user.save() - .then(user=>{ - res.sendStatus(200); - console.log(`Save: ${user}`); - }) - .catch((e) => { - console.log(e.errmsg); - res.status(501).send([{error: e.errmsg}]); - }) + .then(user=>{ + res.send({token}); + console.log(`Save: ${user}`); + }) + .catch((e) => { + console.log(e.errmsg); + res.status(501).send([{error: e.errmsg}]); + }) }); module.exports = router; diff --git a/practice/group777/views/index.hbs b/practice/group777/views/index.hbs deleted file mode 100644 index a42e338..0000000 --- a/practice/group777/views/index.hbs +++ /dev/null @@ -1,21 +0,0 @@ - - - - Главная - - - - - -
          Форма -Авторизация -
          -

          Список пользователей

          -{{>user}} -

          Список задач

          -{{>task}} - - - - - diff --git a/practice/group777/views/partials/task.hbs b/practice/group777/views/partials/task.hbs deleted file mode 100644 index 8450140..0000000 --- a/practice/group777/views/partials/task.hbs +++ /dev/null @@ -1,9 +0,0 @@ -{{#tasks}} -
          -
          - Имя: {{title}} - ---- -
          -
          -{{/tasks}} -
          diff --git a/practice/group777/views/partials/user.hbs b/practice/group777/views/partials/user.hbs deleted file mode 100644 index 74801a4..0000000 --- a/practice/group777/views/partials/user.hbs +++ /dev/null @@ -1,11 +0,0 @@ -{{#users}} -
          -
          - Имя: {{name}} | - Возраст: {{age}} | - Email: - ---- -
          -
          -{{/users}} -
          From a230e94ad817417f0989951d4302dbc3ba3be218 Mon Sep 17 00:00:00 2001 From: Artur Kudaev Date: Wed, 29 Jan 2020 17:56:23 +0200 Subject: [PATCH 11/19] save --- practice/group777/client/package-lock.json | 102 +++++++++++++ practice/group777/client/package.json | 2 + practice/group777/client/src/App.js | 44 +++++- practice/group777/client/src/Login.js | 36 +++++ practice/group777/client/src/createTask.js | 78 ++++++++++ practice/group777/dir.js | 11 -- practice/group777/index.js | 11 +- practice/group777/midlleware/auth.js | 2 + practice/group777/package.json | 1 - practice/group777/public/form.html | 29 ---- practice/group777/public/index.html | 13 -- practice/group777/public/js/api.js | 21 --- practice/group777/public/js/script.js | 160 --------------------- practice/group777/public/login.html | 19 --- practice/group777/root/test.js | 0 practice/group777/routers/api.js | 26 ++-- practice/group777/routers/delete.js | 3 +- practice/group777/routers/form.js | 8 -- practice/group777/routers/index.js | 18 --- practice/group777/routers/login.js | 24 ++-- practice/group777/routers/task.js | 12 +- 21 files changed, 294 insertions(+), 326 deletions(-) create mode 100644 practice/group777/client/src/Login.js create mode 100644 practice/group777/client/src/createTask.js delete mode 100644 practice/group777/dir.js delete mode 100644 practice/group777/public/form.html delete mode 100644 practice/group777/public/index.html delete mode 100644 practice/group777/public/js/api.js delete mode 100644 practice/group777/public/js/script.js delete mode 100644 practice/group777/public/login.html delete mode 100644 practice/group777/root/test.js delete mode 100644 practice/group777/routers/form.js delete mode 100644 practice/group777/routers/index.js diff --git a/practice/group777/client/package-lock.json b/practice/group777/client/package-lock.json index 2bcfd9b..997f028 100644 --- a/practice/group777/client/package-lock.json +++ b/practice/group777/client/package-lock.json @@ -6239,6 +6239,11 @@ "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=" }, + "gud": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gud/-/gud-1.0.0.tgz", + "integrity": "sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw==" + }, "gzip-size": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz", @@ -6369,6 +6374,19 @@ "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==" }, + "history": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", + "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", + "requires": { + "@babel/runtime": "^7.1.2", + "loose-envify": "^1.2.0", + "resolve-pathname": "^3.0.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0", + "value-equal": "^1.0.1" + } + }, "hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", @@ -6379,6 +6397,14 @@ "minimalistic-crypto-utils": "^1.0.1" } }, + "hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "requires": { + "react-is": "^16.7.0" + } + }, "hosted-git-info": { "version": "2.8.5", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.5.tgz", @@ -8689,6 +8715,16 @@ "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.0.tgz", "integrity": "sha1-z8RcN+nsDY8KDsPdTvf3w6vjklY=" }, + "mini-create-react-context": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/mini-create-react-context/-/mini-create-react-context-0.3.2.tgz", + "integrity": "sha512-2v+OeetEyliMt5VHMXsBhABoJ0/M4RCe7fatd/fBy6SMiKazUSEt3gxxypfnk2SHMkdBYvorHRoQxuGoiwbzAw==", + "requires": { + "@babel/runtime": "^7.4.0", + "gud": "^1.0.0", + "tiny-warning": "^1.0.2" + } + }, "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", @@ -11089,6 +11125,52 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.12.0.tgz", "integrity": "sha512-rPCkf/mWBtKc97aLL9/txD8DZdemK0vkA3JMLShjlJB3Pj3s+lpf1KaBzMfQrAmhMQB0n1cU/SUGgKKBCe837Q==" }, + "react-router": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.1.2.tgz", + "integrity": "sha512-yjEuMFy1ONK246B+rsa0cUam5OeAQ8pyclRDgpxuSCrAlJ1qN9uZ5IgyKC7gQg0w8OM50NXHEegPh/ks9YuR2A==", + "requires": { + "@babel/runtime": "^7.1.2", + "history": "^4.9.0", + "hoist-non-react-statics": "^3.1.0", + "loose-envify": "^1.3.1", + "mini-create-react-context": "^0.3.0", + "path-to-regexp": "^1.7.0", + "prop-types": "^15.6.2", + "react-is": "^16.6.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "path-to-regexp": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "requires": { + "isarray": "0.0.1" + } + } + } + }, + "react-router-dom": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.1.2.tgz", + "integrity": "sha512-7BPHAaIwWpZS074UKaw1FjVdZBSVWEk8IuDXdB+OkLb8vd/WRQIpA4ag9WQk61aEfQs47wHyjWUoUGGZxpQXew==", + "requires": { + "@babel/runtime": "^7.1.2", + "history": "^4.9.0", + "loose-envify": "^1.3.1", + "prop-types": "^15.6.2", + "react-router": "5.1.2", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + } + }, "react-scripts": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-3.3.0.tgz", @@ -11493,6 +11575,11 @@ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" }, + "resolve-pathname": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", + "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==" + }, "resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", @@ -12842,6 +12929,16 @@ "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=" }, + "tiny-invariant": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.0.6.tgz", + "integrity": "sha512-FOyLWWVjG+aC0UqG76V53yAWdXfH8bO6FNmyZOuUrzDzK8DI3/JRY25UD7+g49JWM1LXwymsKERB+DzI0dTEQA==" + }, + "tiny-warning": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" + }, "tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", @@ -13239,6 +13336,11 @@ "spdx-expression-parse": "^3.0.0" } }, + "value-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", + "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" + }, "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", diff --git a/practice/group777/client/package.json b/practice/group777/client/package.json index c73b4b3..7dac85e 100644 --- a/practice/group777/client/package.json +++ b/practice/group777/client/package.json @@ -9,6 +9,8 @@ "@testing-library/user-event": "^7.2.1", "react": "^16.12.0", "react-dom": "^16.12.0", + "react-router": "^5.1.2", + "react-router-dom": "^5.1.2", "react-scripts": "3.3.0" }, "scripts": { diff --git a/practice/group777/client/src/App.js b/practice/group777/client/src/App.js index e3d792a..093ecf8 100644 --- a/practice/group777/client/src/App.js +++ b/practice/group777/client/src/App.js @@ -1,21 +1,51 @@ -import React, {useEffect} from 'react'; +import React, {useEffect, useState} from 'react'; import Registration from "./Registration"; +import { BrowserRouter, Route } from "react-router-dom"; +import Login from "./Login"; +import isEmpty from "validator/es/lib/isEmpty"; +import CreateTask from "./createTask"; +function App(props) { -function App() { + const [user, setUser] = useState({}); + const [redirectStatus, setRedirectStatus] = useState(true) + const [loader, setLoader] = useState(true); useEffect(() => { - console.log(1) if(localStorage.getItem('tokenApi')) { - console.log(localStorage.getItem('tokenApi')) + const token = localStorage.getItem('tokenApi'); + console.log(token) + fetch('/api', { + headers: { + 'Authorization': `Bearer ${token}`, + 'Content-Type': 'application/json', + 'Accept': 'application/json' + } + }).then( res => res.json()).then(data => { + setUser(data.user) + }) + }else { + //document.location.href ='/login' } + }, []); + + return ( - <> - - + + + + +
          +

          {user.name}

          +

          {user.age}

          +

          {user.email}

          + +
          + }/> +
          ); } diff --git a/practice/group777/client/src/Login.js b/practice/group777/client/src/Login.js new file mode 100644 index 0000000..9b1a5ca --- /dev/null +++ b/practice/group777/client/src/Login.js @@ -0,0 +1,36 @@ +import React, {useState} from 'react'; + +export default function Login(props) { + + const [email, setEmail] = useState(null); + const [password, setPassword] = useState(null); + + function reg(e) { + e.preventDefault(); + console.log(email, password); + fetch('/login', { + method: 'post', + body: JSON.stringify({email, password}), + headers: { + 'Content-Type': 'application/json' + } + }) + .then( res => res.json()) + .then(data => { + localStorage.setItem('tokenApi', data.token); + console.log(data) + if(data.redirect) { + props.history.push(`${data.redirectUrl}`); + } + }) + .catch(e=>console.log(e)) + } + + return ( +
          reg(e)}> + setEmail(e.target.value)} placeholder='Почта'/> + setPassword(e.target.value)} placeholder='Пароль'/> + +
          + ); +} diff --git a/practice/group777/client/src/createTask.js b/practice/group777/client/src/createTask.js new file mode 100644 index 0000000..3b6e93c --- /dev/null +++ b/practice/group777/client/src/createTask.js @@ -0,0 +1,78 @@ +import React, {useState, useEffect} from 'react'; + +export default function CreateTask(props) { + + const [title, setTitle] = useState(null); + const [tasks, setTasks] = useState([]); + const token = localStorage.getItem('tokenApi'); + + useEffect(()=> { + fetch('/api', { + headers: { + 'Authorization': `Bearer ${token}`, + 'Content-Type': 'application/json', + 'Accept': 'application/json' + } + }).then( res => res.json()).then(data => { + setTasks(data.tasks) + }) + }, []) + + function task(e) { + + e.preventDefault(); + fetch('/task', { + method: 'post', + body: JSON.stringify({title}), + headers: { + 'Authorization': `Bearer ${token}`, + 'Content-Type': 'application/json', + 'Accept': 'application/json' + } + }) + .then(res => res.json()) + .then(task => { + console.log(task) + setTasks(tasks.concat(task)) + }) + + } + + function del(e) { + const id = e.target.dataset.id; + fetch('/del/' + id, { + method: 'DELETE', + headers: { + 'Authorization': `Bearer ${token}`, + 'Content-Type': 'application/json', + 'Accept': 'application/json' + } + }) + .then(() => { + setTasks(tasks.filter(el=>el._id != id)) + console.log(id) + }) + } + + return ( + <> +
          +
          task(e)}> + + +
          +
          + { + + tasks.map(({title, status, _id}) => { + return
          +
          + {title} ||| status: {status.toString()} + +
          +
          + }) + } + + ); +} diff --git a/practice/group777/dir.js b/practice/group777/dir.js deleted file mode 100644 index 60e67eb..0000000 --- a/practice/group777/dir.js +++ /dev/null @@ -1,11 +0,0 @@ -const fs = require('fs'); - -const root = __dirname + '/root'; - -function readDir(dir) { - fs.readdir(dir, function (err, items) { - console.log(items) - }) -} - -readDir(root); diff --git a/practice/group777/index.js b/practice/group777/index.js index 3113b1e..e9dad53 100644 --- a/practice/group777/index.js +++ b/practice/group777/index.js @@ -1,29 +1,20 @@ const express = require('express'); const app = express(); -const path = require('path'); -const hbs = require("hbs"); const userRouter = require('./routers/user'); const taskRouter = require('./routers/task'); const deleteRouter = require('./routers/delete'); const apiRouter = require('./routers/api'); -const formRouter = require('./routers/form'); -const startRouter = require('./routers'); const loginRouter = require('./routers/login'); const {port} = require('./config'); -const jwt = require('jsonwebtoken'); + require('./mangoose'); -app.use(express.static(path.join(__dirname, '/public'), {index: false})); app.use(express.json()); -app.set("view engine", "hbs"); -hbs.registerPartials(__dirname + "/views/partials"); app.use(userRouter); app.use(taskRouter); app.use(deleteRouter); -app.use(formRouter); app.use(apiRouter); -app.use(startRouter); app.use(loginRouter); app.listen(port, () => console.log(`Start listening on port ${port}!`)); diff --git a/practice/group777/midlleware/auth.js b/practice/group777/midlleware/auth.js index 8eb18d0..ac4d14e 100644 --- a/practice/group777/midlleware/auth.js +++ b/practice/group777/midlleware/auth.js @@ -13,8 +13,10 @@ const auth = async(req, res, next) => { } req.user = user; + next() } catch (e) { + console.log(e) res.status(401).send({ error: 'Please authenticate.' }) } }; diff --git a/practice/group777/package.json b/practice/group777/package.json index b7c3b8e..518e833 100644 --- a/practice/group777/package.json +++ b/practice/group777/package.json @@ -12,7 +12,6 @@ "bcryptjs": "^2.4.3", "body-parser": "^1.19.0", "express": "^4.17.1", - "hbs": "^4.1.0", "jsonwebtoken": "^8.5.1", "mongoose": "^5.8.7", "mongoose-validator": "^0.2.2", diff --git a/practice/group777/public/form.html b/practice/group777/public/form.html deleted file mode 100644 index b156f6c..0000000 --- a/practice/group777/public/form.html +++ /dev/null @@ -1,29 +0,0 @@ - - - - Форма - - - - - - Главная -
          -

          Доавить пользователя

          -
          - - - - - -
          -
            -

            Доавить пользователя

            -
            - - -
            -
              - - - diff --git a/practice/group777/public/index.html b/practice/group777/public/index.html deleted file mode 100644 index 600a538..0000000 --- a/practice/group777/public/index.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - Главная - - - - - - -

              123

              - - diff --git a/practice/group777/public/js/api.js b/practice/group777/public/js/api.js deleted file mode 100644 index 0563790..0000000 --- a/practice/group777/public/js/api.js +++ /dev/null @@ -1,21 +0,0 @@ -if(localStorage.getItem('tokenManagerAPI')) { - (async function () { - const token = localStorage.getItem('tokenManagerAPI'); - const data = await fetch('/api', { - headers: { - 'Content-Type': 'application/json', - 'Authorization': `Bearer ${token}` - } - }) - const json = await data.json(); - const users = json.map(el=>el.users); - const userData = users.map((el) => { - return el.map(({age}) => { - return ` -

              ${age}

              - `; - }) - }) - console.log(userData) - }()) -} \ No newline at end of file diff --git a/practice/group777/public/js/script.js b/practice/group777/public/js/script.js deleted file mode 100644 index b44541c..0000000 --- a/practice/group777/public/js/script.js +++ /dev/null @@ -1,160 +0,0 @@ -try { - const send = document.getElementById('send'); - const form = document.getElementById('form'); - - send.addEventListener('click', function (e) { - e.preventDefault(); - const inputName = document.getElementsByName('userName')[0]; - const inputAge = document.getElementsByName('age')[0]; - const inputEmail = document.getElementsByName('email')[0]; - const inputPassword = document.getElementsByName('password')[0]; - if(inputName.value == '' || inputAge.value == '' || inputEmail.value == '' || inputPassword.value == '') return; - const data = { - userName: inputName.value, - age: inputAge.value, - email: inputEmail.value, - password: inputPassword.value - }; - fetch('/user', { - method: 'post', - body: JSON.stringify(data), - headers: { - 'Content-Type': 'application/json' - } - }) - .then(res => { - console.log(JSON.stringify(data), 'send------', res); - }) - .catch(e => console.log(e, 'Err--------')) - // .then((res) => { - // console.log(JSON.stringify(data), 'send..'); - // let error = document.createElement('div'); - // error.style.color = 'red'; - // if(res.status == 525) { - // error.innerText = 'мин - 1, макс - 150 для возраста'; - // form.appendChild(error); - // setTimeout(()=>error.remove(), 1000); - // return; - // }else if(res.status == 526) { - // error.innerText = 'Имя должно быть больше 5 символов'; - // form.appendChild(error); - // setTimeout(()=>error.remove(), 1000); - // return; - // }else { - // const list = document.getElementById('list'); - // let li = document.createElement('li'); - // li.innerText = data.userName; - // list.appendChild(li); - // form.reset(); - // } - // }) - }); - -}catch (e) { - console.log(e) -} - -try { - const send = document.getElementById('send2'); - const form = document.getElementById('form2'); - - send.addEventListener('click', function (e) { - e.preventDefault(); - const inputTitle = document.getElementsByName('title')[0]; - if(inputTitle.value == '') return; - const data = { - title: inputTitle.value - }; - fetch('/task', { - method: 'post', - body: JSON.stringify(data), - headers: { - 'Content-Type': 'application/json' - } - }).then((res) => { - console.log(JSON.stringify(data), 'send..'); - let error = document.createElement('div'); - error.style.color = 'red'; - if(res.status == 527) { - error.innerText = 'Минимум 10 символов'; - form.appendChild(error); - setTimeout(()=>error.remove(), 1000); - return; - }else { - const list = document.getElementById('list2'); - let li = document.createElement('li'); - li.innerText = data.title; - list.appendChild(li); - form.reset(); - } - }) - }); - -}catch (e) { - console.log(e) -} - -try { - let btn = document.querySelectorAll('.item'); - btn.forEach(el=> { - el.addEventListener('click', function (e) { - const tag = e.target; - if(tag.classList.contains('del')) { - const element = tag.parentNode; - const id = element.getAttribute('data-id'); - fetch(`/del/${id}`, { - method: 'DELETE' - }).then(() => { - element.remove(); - console.log('del..', id) - }) - } - }) - }); -}catch (e) { - console.log(e) -} - - -try { - const form = document.getElementById('auth'); - const send = document.getElementById('login'); - const email = document.getElementsByName('email')[0]; - const password = document.getElementsByName('password')[0]; - - const validateEmail = (email) => /\S+@\S+\.\S+/.test(email); - - send.addEventListener('click', function (e) { - - e.preventDefault(); - - if(!validateEmail(email.value)) return; - if(password.value.length < 8) return; - - const data = { - email: email.value, - password: password.value - }; - - fetch('/login', { - method: 'post', - body: JSON.stringify(data), - headers: { - 'Content-Type': 'application/json' - } - }).then( (res) => { - console.log(JSON.stringify(data), res); - - res.json().then(function(data) { - data.token ? localStorage.setItem('tokenManagerAPI', data.token) : null; - if(data.redirect) { - location.href = data.redirectUrl - } - }); - }); - - }) - -}catch (e) { - console.log(e) -} diff --git a/practice/group777/public/login.html b/practice/group777/public/login.html deleted file mode 100644 index fac7a6e..0000000 --- a/practice/group777/public/login.html +++ /dev/null @@ -1,19 +0,0 @@ - - - - Форма - - - - - -Главная -
              -
              - - - -
              - - - diff --git a/practice/group777/root/test.js b/practice/group777/root/test.js deleted file mode 100644 index e69de29..0000000 diff --git a/practice/group777/routers/api.js b/practice/group777/routers/api.js index 211016b..6dd686c 100644 --- a/practice/group777/routers/api.js +++ b/practice/group777/routers/api.js @@ -1,18 +1,26 @@ const express = require('express'); +const mongoose = require('mongoose'); const router = express.Router(); const User = require('./../models/user'); const Task = require('./../models/task'); const auth = require('./../midlleware/auth'); -router.get('/api', async function (req, res) { - const users = await User.find(); - const tasks = await Task.find(); - const json = [{ - users: users, - tasks: tasks, - } - ]; - res.send(json) + +router.get('/api', auth, async function (req, res) { + // const users = await User.find(); + const id = mongoose.Types.ObjectId(req.user.id) + console.log(id, '-*-*-') + const tasks = await Task.find({owner: id}); + // const json = [{ + // users: users, + // tasks: tasks, + // } + // ]; + console.log(tasks) + res.send({ + user: req.user, + tasks + }) }); module.exports = router; diff --git a/practice/group777/routers/delete.js b/practice/group777/routers/delete.js index bf541bd..9376cf4 100644 --- a/practice/group777/routers/delete.js +++ b/practice/group777/routers/delete.js @@ -2,8 +2,9 @@ const express = require('express'); const router = express.Router(); const User = require('./../models/user'); const Task = require('./../models/task'); +const auth = require('./../midlleware/auth'); -router.delete('/del/:id', function (req, res) { +router.delete('/del/:id', auth, function (req, res) { console.log(req.params.id); User.deleteOne({_id: req.params.id}) .then(del => { diff --git a/practice/group777/routers/form.js b/practice/group777/routers/form.js deleted file mode 100644 index 8fcb068..0000000 --- a/practice/group777/routers/form.js +++ /dev/null @@ -1,8 +0,0 @@ -const express = require('express'); -const router = express.Router(); - -router.get('/form', (req, res) => { - res.sendFile('form.html' , { root : __dirname+'/../public'}); -}); - -module.exports = router; diff --git a/practice/group777/routers/index.js b/practice/group777/routers/index.js deleted file mode 100644 index aba2c07..0000000 --- a/practice/group777/routers/index.js +++ /dev/null @@ -1,18 +0,0 @@ -const express = require('express'); -const router = express.Router(); -const User = require('./../models/user'); -const Task = require('./../models/task'); -const auth = require('./../midlleware/auth'); - -router.get('/', auth, async function (req, res) { - const users = await User.find(); - const tasks = await Task.find(); - //console.log(req.user.email, '***') - // res.render('index.hbs', { - // tasks: tasks, - // users: users - // }); - res.sendFile('index.html' , { root : __dirname+'/../public'}); -}); - -module.exports = router; diff --git a/practice/group777/routers/login.js b/practice/group777/routers/login.js index 834f644..f03f4be 100644 --- a/practice/group777/routers/login.js +++ b/practice/group777/routers/login.js @@ -3,22 +3,22 @@ const router = express.Router(); const User = require('./../models/user'); const bcrypt = require('bcryptjs'); -router.get('/login', function (req, res) { - res.sendFile('login.html' , { root : __dirname+'/../public'}); -}); - router.post('/login', async function (req, res) { if(!req.body) return res.sendStatus(500); const user = await User.findOne({email: req.body.email}); const isMatch = await bcrypt.compare(req.body.password, user.password); - const token = await user.generateAuthToken(); - const data = { - token, - redirect: true, - redirectUrl: '/form' - }; - isMatch ? res.send(data) : res.status(401).send({ error: 'Please authenticate.' }); - //res.status(401).send({ error: 'No find user' }); + if(isMatch) { + const token = await user.generateAuthToken(); + console.log(token) + const data = { + token, + redirect: true, + redirectUrl: '/' + }; + res.send(data); + }else { + res.status(401).send({ error: 'Please authenticate.' }); + } }); module.exports = router; diff --git a/practice/group777/routers/task.js b/practice/group777/routers/task.js index e996c6d..28c15f5 100644 --- a/practice/group777/routers/task.js +++ b/practice/group777/routers/task.js @@ -1,24 +1,22 @@ const express = require('express'); const router = express.Router(); const Task = require('./../models/task'); +const auth = require('./../midlleware/auth'); -router.post('/task', function (req, res) { +router.post('/task', auth, function (req, res) { if(!req.body) return res.sendStatus(500); const task = new Task({ title: req.body.title, - status: req.body.status + owner: req.user._id }); console.log(task); task.save() .then(task=>{ console.log(`Save: ${task}`); - res.sendStatus(200) + res.send(task) }) .catch((e) => { - if(e.errors['title']) { - console.log(e.errors['title']); - res.sendStatus(527) - } + console.log(e) }); }); From 0b4d956ad83f31fb57e66ed66083ab51a03764f8 Mon Sep 17 00:00:00 2001 From: Artur Kudaev Date: Fri, 31 Jan 2020 18:02:31 +0200 Subject: [PATCH 12/19] save --- practice/group777/client/package-lock.json | 89 ++++++++ practice/group777/client/src/App.js | 37 ++-- practice/group777/client/src/Avatar.js | 32 +++ practice/group777/client/src/createTask.js | 5 +- practice/group777/client/src/index.js | 14 +- practice/group777/client/src/restore.js | 25 +++ practice/group777/email.js | 33 +++ practice/group777/index.js | 4 + practice/group777/models/user.js | 18 +- practice/group777/package-lock.json | 227 ++++++++++++++------- practice/group777/package.json | 2 + practice/group777/routers/restorePass.js | 18 ++ practice/group777/routers/upload.js | 24 +++ practice/group777/routers/user.js | 15 +- 14 files changed, 445 insertions(+), 98 deletions(-) create mode 100644 practice/group777/client/src/Avatar.js create mode 100644 practice/group777/client/src/restore.js create mode 100644 practice/group777/email.js create mode 100644 practice/group777/routers/restorePass.js create mode 100644 practice/group777/routers/upload.js diff --git a/practice/group777/client/package-lock.json b/practice/group777/client/package-lock.json index 997f028..d6cb7e2 100644 --- a/practice/group777/client/package-lock.json +++ b/practice/group777/client/package-lock.json @@ -1970,6 +1970,11 @@ "normalize-path": "^2.1.1" } }, + "append-field": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", + "integrity": "sha1-HjRA6RXwsSA9I3SOeO3XubW0PlY=" + }, "aproba": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", @@ -2907,6 +2912,38 @@ "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" }, + "busboy": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.2.14.tgz", + "integrity": "sha1-bCpiLvz0fFe7vh4qnDetNseSVFM=", + "requires": { + "dicer": "0.2.5", + "readable-stream": "1.1.x" + }, + "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.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "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=" + } + } + }, "bytes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", @@ -4573,6 +4610,38 @@ } } }, + "dicer": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz", + "integrity": "sha1-WZbAhrszIYyBLAkL3cCc0S+stw8=", + "requires": { + "readable-stream": "1.1.x", + "streamsearch": "0.1.2" + }, + "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.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "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=" + } + } + }, "diff-sequences": { "version": "24.9.0", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-24.9.0.tgz", @@ -8888,6 +8957,21 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, + "multer": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.2.tgz", + "integrity": "sha512-xY8pX7V+ybyUpbYMxtjM9KAiD9ixtg5/JkeKUTD6xilfDv0vzzOFcCp4Ljb1UU3tSOM3VTZtKo63OmzOrGi3Cg==", + "requires": { + "append-field": "^1.0.0", + "busboy": "^0.2.11", + "concat-stream": "^1.5.2", + "mkdirp": "^0.5.1", + "object-assign": "^4.1.1", + "on-finished": "^2.3.0", + "type-is": "^1.6.4", + "xtend": "^4.0.0" + } + }, "multicast-dns": { "version": "6.2.3", "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", @@ -12511,6 +12595,11 @@ "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" }, + "streamsearch": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", + "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=" + }, "strict-uri-encode": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", diff --git a/practice/group777/client/src/App.js b/practice/group777/client/src/App.js index 093ecf8..5fec0ba 100644 --- a/practice/group777/client/src/App.js +++ b/practice/group777/client/src/App.js @@ -1,16 +1,13 @@ import React, {useEffect, useState} from 'react'; -import Registration from "./Registration"; -import { BrowserRouter, Route } from "react-router-dom"; import Login from "./Login"; -import isEmpty from "validator/es/lib/isEmpty"; import CreateTask from "./createTask"; +import Avatar from './Avatar' function App(props) { const [user, setUser] = useState({}); - const [redirectStatus, setRedirectStatus] = useState(true) - const [loader, setLoader] = useState(true); + const [status, setStatus] = useState(false); useEffect(() => { if(localStorage.getItem('tokenApi')) { @@ -26,26 +23,26 @@ function App(props) { setUser(data.user) }) }else { - //document.location.href ='/login' + setStatus(true) } }, []); - - return ( - - - - -
              -

              {user.name}

              -

              {user.age}

              -

              {user.email}

              - -
              - }/> -
              + <> + { + status ? + + : +
              +

              {user.name}

              +

              {user.age}

              +

              {user.email}

              + + +
              + } + ); } diff --git a/practice/group777/client/src/Avatar.js b/practice/group777/client/src/Avatar.js new file mode 100644 index 0000000..856c981 --- /dev/null +++ b/practice/group777/client/src/Avatar.js @@ -0,0 +1,32 @@ +import React, {useState} from 'react'; + +export default function Avatar(props) { + + const [file, setFile] = useState(null); + const token = localStorage.getItem('tokenApi'); + + function img(e) { + const data = new FormData(); + data.append('avatar', file); + e.preventDefault() + console.log(file) + fetch('/upload', { + method: 'post', + body: data, + headers: { + 'Authorization': `Bearer ${token}` + } + }).then(file => console.log(file)) + } + + return ( + <> + avatar +
              + setFile(e.target.files[0])}/> + +
              + + + ) +}; diff --git a/practice/group777/client/src/createTask.js b/practice/group777/client/src/createTask.js index 3b6e93c..e22bbe2 100644 --- a/practice/group777/client/src/createTask.js +++ b/practice/group777/client/src/createTask.js @@ -49,15 +49,16 @@ export default function CreateTask(props) { } }) .then(() => { - setTasks(tasks.filter(el=>el._id != id)) + setTasks(tasks.filter(el=>el._id !== id)) console.log(id) }) } return ( + <>
              -
              task(e)}> + task(e)}>
              diff --git a/practice/group777/client/src/index.js b/practice/group777/client/src/index.js index b597a44..6aca889 100644 --- a/practice/group777/client/src/index.js +++ b/practice/group777/client/src/index.js @@ -1,5 +1,17 @@ import React from 'react'; import ReactDOM from 'react-dom'; import App from './App'; +import {Route} from "react-router"; +import Registration from "./Registration"; +import Login from "./Login"; +import Restore from "./restore"; +import {BrowserRouter} from "react-router-dom"; -ReactDOM.render(, document.getElementById('root')); +ReactDOM.render( + + + + + + + , document.getElementById('root')); diff --git a/practice/group777/client/src/restore.js b/practice/group777/client/src/restore.js new file mode 100644 index 0000000..e3028fc --- /dev/null +++ b/practice/group777/client/src/restore.js @@ -0,0 +1,25 @@ +import React, {useState} from 'react'; + +export default function Restore() { + + const [email, setEmail] = useState(null); + + function res(e) { + e.preventDefault() + const data = {email} + fetch('/restore', { + method: 'post', + body: JSON.stringify(data), + headers: { + 'Content-Type': 'application/json' + }}).then(()=>console.log(JSON.stringify(data))) + } + + return ( +
              +

              Восстановление пароля

              + setEmail(e.target.value)} placeholder='Почта'/> + +
              + ); +} diff --git a/practice/group777/email.js b/practice/group777/email.js new file mode 100644 index 0000000..912ca2c --- /dev/null +++ b/practice/group777/email.js @@ -0,0 +1,33 @@ +const nodemailer = require('nodemailer') + +var transporter = nodemailer.createTransport({ + service: 'gmail', + auth: { + user: 'webinme.ru@gmail.com', + pass: '1234567vV' + } +}); + +function restorePassword(email) { + var mailOptions = { + from: 'nodejs', + to: 'xxx44552@gmail.com', + subject: 'Восстановление пароля', + html: ` +

              Для ввостановления пароля перейдите по

              + ссылке + ` + }; + + transporter.sendMail(mailOptions, function(error, info){ + if (error) { + console.log(error) + } else { + console.log(info) + } + }); +} + +restorePassword('xxx44552@gmail.com') + +//module.exports = restorePassword; diff --git a/practice/group777/index.js b/practice/group777/index.js index e9dad53..ab85170 100644 --- a/practice/group777/index.js +++ b/practice/group777/index.js @@ -4,7 +4,9 @@ const userRouter = require('./routers/user'); const taskRouter = require('./routers/task'); const deleteRouter = require('./routers/delete'); const apiRouter = require('./routers/api'); +const uploadRouter = require('./routers/upload'); const loginRouter = require('./routers/login'); +const restoreRouter = require('./routers/restorePass'); const {port} = require('./config'); require('./mangoose'); @@ -16,5 +18,7 @@ app.use(taskRouter); app.use(deleteRouter); app.use(apiRouter); app.use(loginRouter); +app.use(uploadRouter); +app.use(restoreRouter); app.listen(port, () => console.log(`Start listening on port ${port}!`)); diff --git a/practice/group777/models/user.js b/practice/group777/models/user.js index cd803aa..487247a 100644 --- a/practice/group777/models/user.js +++ b/practice/group777/models/user.js @@ -39,7 +39,13 @@ const userScheme = new Schema({ type: String, required: true } - }] + }], + restore: { + type: String, + }, + avatar: { + type: Buffer + } }, { timestamps: true }); @@ -54,6 +60,16 @@ userScheme.methods.generateAuthToken = async function() { return token; }; +userScheme.methods.restoreToken = async function() { + const user = this; + const token = jwt.sign({ _id: user._id.toString() }, config.secret); + + user.restore = token; + await user.save(); + + return token; +}; + userScheme.pre('save', async function (next) { const user = this; if (user.isModified('password')) { diff --git a/practice/group777/package-lock.json b/practice/group777/package-lock.json index 4d63bda..5a61f2a 100644 --- a/practice/group777/package-lock.json +++ b/practice/group777/package-lock.json @@ -13,6 +13,11 @@ "negotiator": "0.6.2" } }, + "append-field": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", + "integrity": "sha1-HjRA6RXwsSA9I3SOeO3XubW0PlY=" + }, "array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", @@ -55,16 +60,64 @@ "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" }, + "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==" + }, + "busboy": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.2.14.tgz", + "integrity": "sha1-bCpiLvz0fFe7vh4qnDetNseSVFM=", + "requires": { + "dicer": "0.2.5", + "readable-stream": "1.1.x" + } + }, "bytes": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" }, - "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==", - "optional": 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==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "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" + } + } + } }, "content-disposition": { "version": "0.5.3", @@ -89,6 +142,11 @@ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" }, + "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=" + }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -107,6 +165,15 @@ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" }, + "dicer": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz", + "integrity": "sha1-WZbAhrszIYyBLAkL3cCc0S+stw8=", + "requires": { + "readable-stream": "1.1.x", + "streamsearch": "0.1.2" + } + }, "ecdsa-sig-formatter": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", @@ -186,11 +253,6 @@ "unpipe": "~1.0.0" } }, - "foreachasync": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/foreachasync/-/foreachasync-3.0.0.tgz", - "integrity": "sha1-VQKYfchxS+M5IJfzLgBxyd7gfPY=" - }, "forwarded": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", @@ -201,26 +263,6 @@ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" }, - "handlebars": { - "version": "4.5.3", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.5.3.tgz", - "integrity": "sha512-3yPecJoJHK/4c6aZhSvxOyG4vJKDshV36VHp0iVCDVh7o9w2vwi3NSnL2MMPj3YdduqaBcu7cGbggJQM0br9xA==", - "requires": { - "neo-async": "^2.6.0", - "optimist": "^0.6.1", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4" - } - }, - "hbs": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hbs/-/hbs-4.1.0.tgz", - "integrity": "sha512-YDrUBtLpwRl0H5uyCGLE2LGtGJl51VvJFBj/D+Cqyr6XMopCvwXA0ynRpd87u6aVIYCeGYZHESfZzPHbNMkOPA==", - "requires": { - "handlebars": "4.5.3", - "walk": "2.3.14" - } - }, "http-errors": { "version": "1.7.2", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", @@ -251,6 +293,11 @@ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==" }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, "jsonwebtoken": { "version": "8.5.1", "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", @@ -373,10 +420,20 @@ "mime-db": "1.43.0" } }, - "minimist": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", - "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=" + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + } + } }, "mongodb": { "version": "3.4.1", @@ -466,15 +523,35 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, + "multer": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.2.tgz", + "integrity": "sha512-xY8pX7V+ybyUpbYMxtjM9KAiD9ixtg5/JkeKUTD6xilfDv0vzzOFcCp4Ljb1UU3tSOM3VTZtKo63OmzOrGi3Cg==", + "requires": { + "append-field": "^1.0.0", + "busboy": "^0.2.11", + "concat-stream": "^1.5.2", + "mkdirp": "^0.5.1", + "object-assign": "^4.1.1", + "on-finished": "^2.3.0", + "type-is": "^1.6.4", + "xtend": "^4.0.0" + } + }, "negotiator": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" }, - "neo-async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz", - "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==" + "nodemailer": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.4.2.tgz", + "integrity": "sha512-g0n4nH1ONGvqYo1v72uSWvF/MRNnnq1LzmSzXb/6EPF3LFb51akOhgG3K2+aETAsJx90/Q5eFNTntu4vBCwyQQ==" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, "on-finished": { "version": "2.3.0", @@ -484,15 +561,6 @@ "ee-first": "1.1.1" } }, - "optimist": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", - "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" - } - }, "parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -503,6 +571,11 @@ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" }, + "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==" + }, "proxy-addr": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", @@ -533,6 +606,17 @@ "unpipe": "1.0.0" } }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, "regexp-clone": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-1.0.0.tgz", @@ -629,11 +713,6 @@ "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=" }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, "sparse-bitfield": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", @@ -648,6 +727,16 @@ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" }, + "streamsearch": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", + "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=" + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + }, "toidentifier": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", @@ -662,21 +751,21 @@ "mime-types": "~2.1.24" } }, - "uglify-js": { - "version": "3.7.5", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.7.5.tgz", - "integrity": "sha512-GFZ3EXRptKGvb/C1Sq6nO1iI7AGcjyqmIyOw0DrD0675e+NNbGO72xmMM2iEBdFbxaTLo70NbjM/Wy54uZIlsg==", - "optional": true, - "requires": { - "commander": "~2.20.3", - "source-map": "~0.6.1" - } + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, "utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", @@ -692,18 +781,10 @@ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" }, - "walk": { - "version": "2.3.14", - "resolved": "https://registry.npmjs.org/walk/-/walk-2.3.14.tgz", - "integrity": "sha512-5skcWAUmySj6hkBdH6B6+3ddMjVQYH5Qy9QGbPmN8kVmLteXk+yVXg+yfk1nbX30EYakahLrr8iPcCxJQSCBeg==", - "requires": { - "foreachasync": "^3.0.0" - } - }, - "wordwrap": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=" + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" } } } diff --git a/practice/group777/package.json b/practice/group777/package.json index 518e833..29efd52 100644 --- a/practice/group777/package.json +++ b/practice/group777/package.json @@ -15,6 +15,8 @@ "jsonwebtoken": "^8.5.1", "mongoose": "^5.8.7", "mongoose-validator": "^0.2.2", + "multer": "^1.4.2", + "nodemailer": "^6.4.2", "validator": "^12.1.0" } } diff --git a/practice/group777/routers/restorePass.js b/practice/group777/routers/restorePass.js new file mode 100644 index 0000000..78a417e --- /dev/null +++ b/practice/group777/routers/restorePass.js @@ -0,0 +1,18 @@ +const express = require('express'); +const router = express.Router(); +const User = require('./../models/user'); + +router.post('/restore', async function (req, res) { + if(!req.body) return res.sendStatus(500); + const {email} = req.body; + if(email) { + console.log(email) + const user = await User.findOne({email}); + const token = await user.restoreToken(); + console.log(token) + } + res.sendStatus(500) +}); + +module.exports = router; + diff --git a/practice/group777/routers/upload.js b/practice/group777/routers/upload.js new file mode 100644 index 0000000..d9f8683 --- /dev/null +++ b/practice/group777/routers/upload.js @@ -0,0 +1,24 @@ +const express = require('express'); +const router = express.Router(); +const User = require('./../models/user'); +const auth = require('./../midlleware/auth'); +const multer = require('multer') +const upload = multer({ + + fileFilter(req, file, callback) { + if(!file.originalname.match(/\.(jpg|jpeg|png)$/)) { + return callback('Error type file') + } + callback(false, true) + } +}); + +router.post('/upload', auth, upload.single('avatar'), async function (req, res) { + console.log(req.file) + req.user.avatar = req.file.buffer; + await req.user.save(); + res.send(200) + +}); + +module.exports = router; diff --git a/practice/group777/routers/user.js b/practice/group777/routers/user.js index 299ed74..e4e5b82 100644 --- a/practice/group777/routers/user.js +++ b/practice/group777/routers/user.js @@ -1,6 +1,7 @@ const express = require('express'); const router = express.Router(); const User = require('./../models/user'); +const auth = require('./../midlleware/auth') router.get('/user', async function (req, res) { const users = await User.find(); @@ -8,7 +9,7 @@ router.get('/user', async function (req, res) { }); router.get('/user/:id', async function (req, res) { - const user = await User.find({_id: req.params.id}); + const user = await User.findOne({_id: req.params.id}); res.send(user) }); @@ -34,4 +35,16 @@ router.post('/registration', async function (req, res) { }) }); +router.get('/user/:id/avatar', async (req, res) => { + try { + const user = await User.findOne({_id: req.params.id}); + if(!user || !user.avatar) throw new Error('Error avatar'); + + res.set('Content-Type', 'image/jpg'); + res.send(user.avatar); + }catch (e) { + console.log(e) + } +}); + module.exports = router; From 3bcd8bc761416d77f8a30f5c40585017c818c1d4 Mon Sep 17 00:00:00 2001 From: Artur Kudaev Date: Fri, 31 Jan 2020 18:09:38 +0200 Subject: [PATCH 13/19] save --- practice/group777/email.js | 11 +++++------ practice/group777/routers/restorePass.js | 9 ++++++--- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/practice/group777/email.js b/practice/group777/email.js index 912ca2c..58346a7 100644 --- a/practice/group777/email.js +++ b/practice/group777/email.js @@ -8,14 +8,15 @@ var transporter = nodemailer.createTransport({ } }); -function restorePassword(email) { +function restorePassword(email, token) { + const url = `/restore/${token}`; var mailOptions = { from: 'nodejs', - to: 'xxx44552@gmail.com', + to: email, subject: 'Восстановление пароля', html: `

              Для ввостановления пароля перейдите по

              - ссылке + ссылке ` }; @@ -28,6 +29,4 @@ function restorePassword(email) { }); } -restorePassword('xxx44552@gmail.com') - -//module.exports = restorePassword; +module.exports = restorePassword; diff --git a/practice/group777/routers/restorePass.js b/practice/group777/routers/restorePass.js index 78a417e..66488bb 100644 --- a/practice/group777/routers/restorePass.js +++ b/practice/group777/routers/restorePass.js @@ -2,16 +2,19 @@ const express = require('express'); const router = express.Router(); const User = require('./../models/user'); +const sendMail = require('./../email'); + router.post('/restore', async function (req, res) { if(!req.body) return res.sendStatus(500); const {email} = req.body; if(email) { - console.log(email) const user = await User.findOne({email}); const token = await user.restoreToken(); - console.log(token) + sendMail(user.email, token); + res.sendStatus(200) + }else { + res.sendStatus(500) } - res.sendStatus(500) }); module.exports = router; From 4cbbedeba9f8cbf2ae300355b4c01a768ab1b170 Mon Sep 17 00:00:00 2001 From: xxx44552 Date: Mon, 3 Feb 2020 02:20:33 +0200 Subject: [PATCH 14/19] save --- practice/group777/client/package-lock.json | 89 ---------------------- practice/group777/send-grid.js | 0 practice/group777/views/restore-form.hbs | 10 +++ 3 files changed, 10 insertions(+), 89 deletions(-) create mode 100644 practice/group777/send-grid.js create mode 100644 practice/group777/views/restore-form.hbs diff --git a/practice/group777/client/package-lock.json b/practice/group777/client/package-lock.json index d6cb7e2..997f028 100644 --- a/practice/group777/client/package-lock.json +++ b/practice/group777/client/package-lock.json @@ -1970,11 +1970,6 @@ "normalize-path": "^2.1.1" } }, - "append-field": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", - "integrity": "sha1-HjRA6RXwsSA9I3SOeO3XubW0PlY=" - }, "aproba": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", @@ -2912,38 +2907,6 @@ "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" }, - "busboy": { - "version": "0.2.14", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.2.14.tgz", - "integrity": "sha1-bCpiLvz0fFe7vh4qnDetNseSVFM=", - "requires": { - "dicer": "0.2.5", - "readable-stream": "1.1.x" - }, - "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.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "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=" - } - } - }, "bytes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", @@ -4610,38 +4573,6 @@ } } }, - "dicer": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz", - "integrity": "sha1-WZbAhrszIYyBLAkL3cCc0S+stw8=", - "requires": { - "readable-stream": "1.1.x", - "streamsearch": "0.1.2" - }, - "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.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "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=" - } - } - }, "diff-sequences": { "version": "24.9.0", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-24.9.0.tgz", @@ -8957,21 +8888,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, - "multer": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.2.tgz", - "integrity": "sha512-xY8pX7V+ybyUpbYMxtjM9KAiD9ixtg5/JkeKUTD6xilfDv0vzzOFcCp4Ljb1UU3tSOM3VTZtKo63OmzOrGi3Cg==", - "requires": { - "append-field": "^1.0.0", - "busboy": "^0.2.11", - "concat-stream": "^1.5.2", - "mkdirp": "^0.5.1", - "object-assign": "^4.1.1", - "on-finished": "^2.3.0", - "type-is": "^1.6.4", - "xtend": "^4.0.0" - } - }, "multicast-dns": { "version": "6.2.3", "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", @@ -12595,11 +12511,6 @@ "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" }, - "streamsearch": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", - "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=" - }, "strict-uri-encode": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", diff --git a/practice/group777/send-grid.js b/practice/group777/send-grid.js new file mode 100644 index 0000000..e69de29 diff --git a/practice/group777/views/restore-form.hbs b/practice/group777/views/restore-form.hbs new file mode 100644 index 0000000..b8d976f --- /dev/null +++ b/practice/group777/views/restore-form.hbs @@ -0,0 +1,10 @@ + + + + + Восстановление пароля + + +

              Test

              + + From 7a4f747378153ddb0c88cf687eafbf00ad12663c Mon Sep 17 00:00:00 2001 From: xxx44552 Date: Mon, 3 Feb 2020 02:22:03 +0200 Subject: [PATCH 15/19] save --- practice/group777/.gitignore | 1 + practice/group777/email.js | 2 +- practice/group777/index.js | 11 + practice/group777/models/user.js | 4 +- practice/group777/package-lock.json | 471 +++++++++++++++++++++++ practice/group777/package.json | 2 + practice/group777/routers/restorePass.js | 31 ++ practice/group777/send-grid.js | 10 + practice/group777/views/restore-form.hbs | 26 +- 9 files changed, 553 insertions(+), 5 deletions(-) create mode 100644 practice/group777/.gitignore diff --git a/practice/group777/.gitignore b/practice/group777/.gitignore new file mode 100644 index 0000000..d5a0f97 --- /dev/null +++ b/practice/group777/.gitignore @@ -0,0 +1 @@ +sendgrid.env diff --git a/practice/group777/email.js b/practice/group777/email.js index 58346a7..80024cb 100644 --- a/practice/group777/email.js +++ b/practice/group777/email.js @@ -9,7 +9,7 @@ var transporter = nodemailer.createTransport({ }); function restorePassword(email, token) { - const url = `/restore/${token}`; + const url = `http://localhost:5000/restore/${token}`; var mailOptions = { from: 'nodejs', to: email, diff --git a/practice/group777/index.js b/practice/group777/index.js index ab85170..b8e0361 100644 --- a/practice/group777/index.js +++ b/practice/group777/index.js @@ -7,10 +7,21 @@ const apiRouter = require('./routers/api'); const uploadRouter = require('./routers/upload'); const loginRouter = require('./routers/login'); const restoreRouter = require('./routers/restorePass'); +const hbs = require('hbs'); +const path = require('path'); + const {port} = require('./config'); require('./mangoose'); +app.set('view engine', 'hbs'); + +app.use(express.static(path.join(__dirname, 'client/build'))); + +app.get("/", function(req, res){ + res.sendFile(path.join(__dirname, 'client/build', 'index.html')); +}); + app.use(express.json()); app.use(userRouter); diff --git a/practice/group777/models/user.js b/practice/group777/models/user.js index 487247a..5a0a493 100644 --- a/practice/group777/models/user.js +++ b/practice/group777/models/user.js @@ -40,9 +40,7 @@ const userScheme = new Schema({ required: true } }], - restore: { - type: String, - }, + restore: String, avatar: { type: Buffer } diff --git a/practice/group777/package-lock.json b/practice/group777/package-lock.json index 5a61f2a..44e8dc5 100644 --- a/practice/group777/package-lock.json +++ b/practice/group777/package-lock.json @@ -4,6 +4,33 @@ "lockfileVersion": 1, "requires": true, "dependencies": { + "@sendgrid/client": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@sendgrid/client/-/client-6.5.1.tgz", + "integrity": "sha512-OooZXSy8wWcUI5ppz7ugddfNdZC66baTHYF1Yz57O64cTjpfhw60+mNmPB0ISKxBchqnHcMiVNZ1SL70eAItlg==", + "requires": { + "@sendgrid/helpers": "^6.5.1", + "request": "^2.88.0" + } + }, + "@sendgrid/helpers": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@sendgrid/helpers/-/helpers-6.5.1.tgz", + "integrity": "sha512-Bd05zxnKRAKtYCXMjDSlXKmlX/RceWMIHYVwU+auMFUk+C8Mx755hGhBl8IHLz0kYL03dF8cSQA0iXlnoMGIpQ==", + "requires": { + "chalk": "^2.0.1", + "deepmerge": "^2.1.1" + } + }, + "@sendgrid/mail": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@sendgrid/mail/-/mail-6.5.1.tgz", + "integrity": "sha512-OVHOrMykAy6Zt1xeOT//RhH6ThdPr6nhvkdzwXrKzSu3Ctr7OihIeWrWOGIh7CjGBOTiBWoMgFgVC6Twgr/jHw==", + "requires": { + "@sendgrid/client": "^6.5.1", + "@sendgrid/helpers": "^6.5.1" + } + }, "accepts": { "version": "1.3.7", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", @@ -13,6 +40,25 @@ "negotiator": "0.6.2" } }, + "ajv": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.11.0.tgz", + "integrity": "sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA==", + "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-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==", + "requires": { + "color-convert": "^1.9.0" + } + }, "append-field": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", @@ -23,6 +69,42 @@ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "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=" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "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=" + }, + "aws4": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", + "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==" + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "requires": { + "tweetnacl": "^0.14.3" + } + }, "bcryptjs": { "version": "2.4.3", "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", @@ -79,6 +161,48 @@ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.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==", + "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=" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "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==", + "optional": true + }, "concat-stream": { "version": "1.6.2", "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", @@ -147,6 +271,14 @@ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "requires": { + "assert-plus": "^1.0.0" + } + }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -155,6 +287,16 @@ "ms": "2.0.0" } }, + "deepmerge": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-2.2.1.tgz", + "integrity": "sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==" + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, "depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", @@ -174,6 +316,15 @@ "streamsearch": "0.1.2" } }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, "ecdsa-sig-formatter": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", @@ -197,6 +348,11 @@ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" }, + "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=" + }, "etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", @@ -239,6 +395,26 @@ "vary": "~1.1.2" } }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + }, + "fast-deep-equal": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==" + }, + "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==" + }, "finalhandler": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", @@ -253,6 +429,26 @@ "unpipe": "~1.0.0" } }, + "foreachasync": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/foreachasync/-/foreachasync-3.0.0.tgz", + "integrity": "sha1-VQKYfchxS+M5IJfzLgBxyd7gfPY=" + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + }, + "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==", + "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", @@ -263,6 +459,53 @@ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "handlebars": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.5.3.tgz", + "integrity": "sha512-3yPecJoJHK/4c6aZhSvxOyG4vJKDshV36VHp0iVCDVh7o9w2vwi3NSnL2MMPj3YdduqaBcu7cGbggJQM0br9xA==", + "requires": { + "neo-async": "^2.6.0", + "optimist": "^0.6.1", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4" + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + }, + "har-validator": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", + "requires": { + "ajv": "^6.5.5", + "har-schema": "^2.0.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "hbs": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hbs/-/hbs-4.1.0.tgz", + "integrity": "sha512-YDrUBtLpwRl0H5uyCGLE2LGtGJl51VvJFBj/D+Cqyr6XMopCvwXA0ynRpd87u6aVIYCeGYZHESfZzPHbNMkOPA==", + "requires": { + "handlebars": "4.5.3", + "walk": "2.3.14" + } + }, "http-errors": { "version": "1.7.2", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", @@ -275,6 +518,16 @@ "toidentifier": "1.0.0" } }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, "iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -293,11 +546,41 @@ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==" }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, "isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, + "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==" + }, + "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=" + }, "jsonwebtoken": { "version": "8.5.1", "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", @@ -322,6 +605,17 @@ } } }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, "jwa": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", @@ -420,6 +714,11 @@ "mime-db": "1.43.0" } }, + "minimist": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", + "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=" + }, "mkdirp": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", @@ -543,11 +842,21 @@ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" }, + "neo-async": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz", + "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==" + }, "nodemailer": { "version": "6.4.2", "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.4.2.tgz", "integrity": "sha512-g0n4nH1ONGvqYo1v72uSWvF/MRNnnq1LzmSzXb/6EPF3LFb51akOhgG3K2+aETAsJx90/Q5eFNTntu4vBCwyQQ==" }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -561,6 +870,15 @@ "ee-first": "1.1.1" } }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "requires": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + } + }, "parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -571,6 +889,11 @@ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -585,6 +908,16 @@ "ipaddr.js": "1.9.0" } }, + "psl": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.7.0.tgz", + "integrity": "sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ==" + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, "qs": { "version": "6.7.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", @@ -622,6 +955,40 @@ "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-1.0.0.tgz", "integrity": "sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw==" }, + "request": { + "version": "2.88.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "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==" + } + } + }, "require_optional": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz", @@ -713,6 +1080,11 @@ "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=" }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, "sparse-bitfield": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", @@ -722,6 +1094,22 @@ "memory-pager": "^1.0.2" } }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "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" + } + }, "statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", @@ -737,11 +1125,48 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + }, "toidentifier": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" }, + "tough-cookie": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", + "requires": { + "psl": "^1.1.24", + "punycode": "^1.4.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + } + } + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "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=" + }, "type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", @@ -756,11 +1181,29 @@ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, + "uglify-js": { + "version": "3.7.6", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.7.6.tgz", + "integrity": "sha512-yYqjArOYSxvqeeiYH2VGjZOqq6SVmhxzaPjJC1W2F9e+bqvFL9QXQ2osQuKUFjM2hGjKG2YclQnRKWQSt/nOTQ==", + "optional": true, + "requires": { + "commander": "~2.20.3", + "source-map": "~0.6.1" + } + }, "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "requires": { + "punycode": "^2.1.0" + } + }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -771,6 +1214,11 @@ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + }, "validator": { "version": "12.1.0", "resolved": "https://registry.npmjs.org/validator/-/validator-12.1.0.tgz", @@ -781,6 +1229,29 @@ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "walk": { + "version": "2.3.14", + "resolved": "https://registry.npmjs.org/walk/-/walk-2.3.14.tgz", + "integrity": "sha512-5skcWAUmySj6hkBdH6B6+3ddMjVQYH5Qy9QGbPmN8kVmLteXk+yVXg+yfk1nbX30EYakahLrr8iPcCxJQSCBeg==", + "requires": { + "foreachasync": "^3.0.0" + } + }, + "wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=" + }, "xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", diff --git a/practice/group777/package.json b/practice/group777/package.json index 29efd52..552cabe 100644 --- a/practice/group777/package.json +++ b/practice/group777/package.json @@ -9,9 +9,11 @@ "author": "", "license": "ISC", "dependencies": { + "@sendgrid/mail": "^6.5.1", "bcryptjs": "^2.4.3", "body-parser": "^1.19.0", "express": "^4.17.1", + "hbs": "^4.1.0", "jsonwebtoken": "^8.5.1", "mongoose": "^5.8.7", "mongoose-validator": "^0.2.2", diff --git a/practice/group777/routers/restorePass.js b/practice/group777/routers/restorePass.js index 66488bb..2f29871 100644 --- a/practice/group777/routers/restorePass.js +++ b/practice/group777/routers/restorePass.js @@ -1,6 +1,7 @@ const express = require('express'); const router = express.Router(); const User = require('./../models/user'); +const jwt = require('jsonwebtoken'); const sendMail = require('./../email'); @@ -17,5 +18,35 @@ router.post('/restore', async function (req, res) { } }); +router.get('/restore/:token', async (req, res) => { + const token = req.params.token; + const decoded = jwt.decode(token) + const user = await User.findOne({_id: decoded._id}); + console.log(user); + if(user) { + res.render('restore-form.hbs', { + token: user.restore + }) + }else { + res.sendStatus(500) + } +}); + +router.post('/restore/:token', async (req, res) => { + const {password} = req.body; + const token = req.params.token; + const decoded = jwt.decode(token) + const user = await User.findOne({_id: decoded._id}); + if(user) { + user.password = password; + delete user.restore; + user.save(); + console.log(password, token, user); + res.redirect(301, '/login'); + }else { + res.sendStatus(500) + } +}); + module.exports = router; diff --git a/practice/group777/send-grid.js b/practice/group777/send-grid.js index e69de29..9842400 100644 --- a/practice/group777/send-grid.js +++ b/practice/group777/send-grid.js @@ -0,0 +1,10 @@ +const sgMail = require('@sendgrid/mail'); +sgMail.setApiKey(process.env.SENDGRID_API_KEY); +const msg = { + to: 'xxx44552@gmail.com', + from: 'xxx44552@gmail.com', + subject: 'Sending with Twilio SendGrid is Fun', + text: 'and easy to do anywhere, even with Node.js', + html: 'and easy to do anywhere, even with Node.js', +}; +sgMail.send(msg); \ No newline at end of file diff --git a/practice/group777/views/restore-form.hbs b/practice/group777/views/restore-form.hbs index b8d976f..3125476 100644 --- a/practice/group777/views/restore-form.hbs +++ b/practice/group777/views/restore-form.hbs @@ -5,6 +5,30 @@ Восстановление пароля -

              Test

              +

              Восстановление пароля

              +
              + + +
              + From 1324f53e1bd850383ca4287f3d35b021738acdb5 Mon Sep 17 00:00:00 2001 From: Artur Kudaev Date: Mon, 3 Feb 2020 17:57:56 +0200 Subject: [PATCH 16/19] save --- practice/group777/client/src/App.js | 4 +- practice/group777/client/src/confirmEmail.js | 7 ++++ practice/group777/email.js | 42 ++++++++++++++++++-- practice/group777/index.js | 2 + practice/group777/models/user.js | 11 +++++ practice/group777/routers/api.js | 2 - practice/group777/routers/confirmEmail.js | 27 +++++++++++++ practice/group777/routers/restorePass.js | 2 +- practice/group777/routers/user.js | 17 ++++++-- 9 files changed, 102 insertions(+), 12 deletions(-) create mode 100644 practice/group777/client/src/confirmEmail.js create mode 100644 practice/group777/routers/confirmEmail.js diff --git a/practice/group777/client/src/App.js b/practice/group777/client/src/App.js index 5fec0ba..3b7bf27 100644 --- a/practice/group777/client/src/App.js +++ b/practice/group777/client/src/App.js @@ -2,6 +2,7 @@ import React, {useEffect, useState} from 'react'; import Login from "./Login"; import CreateTask from "./createTask"; import Avatar from './Avatar' +import Confirm from "./confirmEmail"; function App(props) { @@ -20,7 +21,7 @@ function App(props) { 'Accept': 'application/json' } }).then( res => res.json()).then(data => { - setUser(data.user) + setUser(data.user); }) }else { setStatus(true) @@ -35,6 +36,7 @@ function App(props) { :
              + {user.confirm ? user.confirm.status ? null : : null}

              {user.name}

              {user.age}

              {user.email}

              diff --git a/practice/group777/client/src/confirmEmail.js b/practice/group777/client/src/confirmEmail.js new file mode 100644 index 0000000..935b00a --- /dev/null +++ b/practice/group777/client/src/confirmEmail.js @@ -0,0 +1,7 @@ +import React from 'react'; + +export default function Confirm() { + return ( +
              Подтвердите Email
              + ) +} diff --git a/practice/group777/email.js b/practice/group777/email.js index 80024cb..f4d492f 100644 --- a/practice/group777/email.js +++ b/practice/group777/email.js @@ -10,13 +10,12 @@ var transporter = nodemailer.createTransport({ function restorePassword(email, token) { const url = `http://localhost:5000/restore/${token}`; - var mailOptions = { + const mailOptions = { from: 'nodejs', to: email, subject: 'Восстановление пароля', html: ` -

              Для ввостановления пароля перейдите по

              - ссылке + Для ввостановления пароля перейдите по ссылке ` }; @@ -29,4 +28,39 @@ function restorePassword(email, token) { }); } -module.exports = restorePassword; +function confirmEmail(email, token) { + const url = `http://localhost:5000/confirm/${token}`; + const mailOptions = { + from: 'nodejs', + to: email, + subject: 'Подтверждение почты', + html: ` + Для подтверждение почты перейдите по ссылке + ` + }; + transporter.sendMail(mailOptions, function(error, info){ + if (error) { + console.log(error) + } else { + console.log(info) + } + }); +} + +function sendText(email, text, title) { + const mailOptions = { + from: 'nodejs', + to: email, + subject: title, + text: text + }; + transporter.sendMail(mailOptions, function(error, info){ + if (error) { + console.log(error) + } else { + console.log(info) + } + }); +} + +module.exports = {restorePassword, confirmEmail, sendText}; diff --git a/practice/group777/index.js b/practice/group777/index.js index b8e0361..fde5ffd 100644 --- a/practice/group777/index.js +++ b/practice/group777/index.js @@ -7,6 +7,7 @@ const apiRouter = require('./routers/api'); const uploadRouter = require('./routers/upload'); const loginRouter = require('./routers/login'); const restoreRouter = require('./routers/restorePass'); +const confirmRouter = require('./routers/confirmEmail'); const hbs = require('hbs'); const path = require('path'); @@ -31,5 +32,6 @@ app.use(apiRouter); app.use(loginRouter); app.use(uploadRouter); app.use(restoreRouter); +app.use(confirmRouter); app.listen(port, () => console.log(`Start listening on port ${port}!`)); diff --git a/practice/group777/models/user.js b/practice/group777/models/user.js index 5a0a493..e9ee362 100644 --- a/practice/group777/models/user.js +++ b/practice/group777/models/user.js @@ -16,6 +16,16 @@ const userScheme = new Schema({ min: 1, max: 150 }, + confirm: { + status: { + type: Boolean, + default: false + }, + token: { + type: String + } + } + , email: { type: String, required: true, @@ -68,6 +78,7 @@ userScheme.methods.restoreToken = async function() { return token; }; + userScheme.pre('save', async function (next) { const user = this; if (user.isModified('password')) { diff --git a/practice/group777/routers/api.js b/practice/group777/routers/api.js index 6dd686c..d029c10 100644 --- a/practice/group777/routers/api.js +++ b/practice/group777/routers/api.js @@ -9,14 +9,12 @@ const auth = require('./../midlleware/auth'); router.get('/api', auth, async function (req, res) { // const users = await User.find(); const id = mongoose.Types.ObjectId(req.user.id) - console.log(id, '-*-*-') const tasks = await Task.find({owner: id}); // const json = [{ // users: users, // tasks: tasks, // } // ]; - console.log(tasks) res.send({ user: req.user, tasks diff --git a/practice/group777/routers/confirmEmail.js b/practice/group777/routers/confirmEmail.js new file mode 100644 index 0000000..b24a7ca --- /dev/null +++ b/practice/group777/routers/confirmEmail.js @@ -0,0 +1,27 @@ +const express = require('express'); +const router = express.Router(); +const User = require('./../models/user'); +const jwt = require('jsonwebtoken'); + +const sendMail = require('./../email'); + + +router.get('/confirm/:token', async (req, res) => { + const token = req.params.token; + const decoded = jwt.decode(token); + const user = await User.findOne({email: decoded.email}); + if(user && user.confirm.token == token) { + user.confirm.status = true; + delete user.confirm.token; + await user.save(); + sendMail.sendText(user.email, `${user.email} - адрес подвтержден`, 'Подтверждение email'); + console.log(user, '**********************'); + res.send() + }else { + res.sendStatus(500) + } +}); + + +module.exports = router; + diff --git a/practice/group777/routers/restorePass.js b/practice/group777/routers/restorePass.js index 2f29871..c525ffd 100644 --- a/practice/group777/routers/restorePass.js +++ b/practice/group777/routers/restorePass.js @@ -11,7 +11,7 @@ router.post('/restore', async function (req, res) { if(email) { const user = await User.findOne({email}); const token = await user.restoreToken(); - sendMail(user.email, token); + sendMail.restorePassword(user.email, token); res.sendStatus(200) }else { res.sendStatus(500) diff --git a/practice/group777/routers/user.js b/practice/group777/routers/user.js index e4e5b82..a4c90a7 100644 --- a/practice/group777/routers/user.js +++ b/practice/group777/routers/user.js @@ -1,9 +1,12 @@ const express = require('express'); const router = express.Router(); const User = require('./../models/user'); -const auth = require('./../midlleware/auth') +const auth = require('./../midlleware/auth'); +const config = require('./../config'); +const jwt = require('jsonwebtoken'); +const sendEmail = require('./../email'); -router.get('/user', async function (req, res) { +router.get('/users', async function (req, res) { const users = await User.find(); res.send(users) }); @@ -19,13 +22,17 @@ router.post('/registration', async function (req, res) { name: req.body.userName, age: req.body.age, email: req.body.email, - password: req.body.password + password: req.body.password, + confirm: { + token: jwt.sign({ email: req.body.email }, config.secret) + } }); console.log('body:', user); const token = await user.generateAuthToken(); console.log(token) user.save() .then(user=>{ + sendEmail.confirmEmail(user.email, user.confirm.token) res.send({token}); console.log(`Save: ${user}`); }) @@ -37,7 +44,7 @@ router.post('/registration', async function (req, res) { router.get('/user/:id/avatar', async (req, res) => { try { - const user = await User.findOne({_id: req.params.id}); + const user = await User.findById(req.params.id); if(!user || !user.avatar) throw new Error('Error avatar'); res.set('Content-Type', 'image/jpg'); @@ -47,4 +54,6 @@ router.get('/user/:id/avatar', async (req, res) => { } }); + + module.exports = router; From 04e7db3107b348ed336a97bf0bfff738269e7d59 Mon Sep 17 00:00:00 2001 From: Artur Kudaev Date: Tue, 4 Feb 2020 18:16:51 +0200 Subject: [PATCH 17/19] save --- practice/group777/client/src/App.js | 10 ++--- practice/group777/client/src/Avatar.js | 3 +- practice/group777/client/src/createTask.js | 25 +++++++++++- practice/group777/client/src/editUser.js | 46 ++++++++++++++++++++++ practice/group777/client/src/index.js | 2 + practice/group777/midlleware/auth.js | 2 +- practice/group777/routers/api.js | 2 +- practice/group777/routers/task.js | 10 ++++- practice/group777/routers/user.js | 37 ++++++++++++----- 9 files changed, 115 insertions(+), 22 deletions(-) create mode 100644 practice/group777/client/src/editUser.js diff --git a/practice/group777/client/src/App.js b/practice/group777/client/src/App.js index 3b7bf27..8328934 100644 --- a/practice/group777/client/src/App.js +++ b/practice/group777/client/src/App.js @@ -1,11 +1,12 @@ import React, {useEffect, useState} from 'react'; +import {NavLink} from 'react-router-dom' import Login from "./Login"; import CreateTask from "./createTask"; -import Avatar from './Avatar' import Confirm from "./confirmEmail"; +import Edit from "./editUser"; -function App(props) { +export default function App() { const [user, setUser] = useState({}); const [status, setStatus] = useState(false); @@ -40,12 +41,11 @@ function App(props) {

              {user.name}

              {user.age}

              {user.email}

              - + avatar + Edit user info
              } ); } - -export default App; diff --git a/practice/group777/client/src/Avatar.js b/practice/group777/client/src/Avatar.js index 856c981..919bb4d 100644 --- a/practice/group777/client/src/Avatar.js +++ b/practice/group777/client/src/Avatar.js @@ -1,6 +1,6 @@ import React, {useState} from 'react'; -export default function Avatar(props) { +export default function Avatar() { const [file, setFile] = useState(null); const token = localStorage.getItem('tokenApi'); @@ -21,7 +21,6 @@ export default function Avatar(props) { return ( <> - avatar
              setFile(e.target.files[0])}/> diff --git a/practice/group777/client/src/createTask.js b/practice/group777/client/src/createTask.js index e22bbe2..1a76b80 100644 --- a/practice/group777/client/src/createTask.js +++ b/practice/group777/client/src/createTask.js @@ -5,6 +5,10 @@ export default function CreateTask(props) { const [title, setTitle] = useState(null); const [tasks, setTasks] = useState([]); const token = localStorage.getItem('tokenApi'); + const step = 5; + let skip = step; + + const completedTask = {textDecorationLine: 'line-through'}; useEffect(()=> { fetch('/api', { @@ -52,8 +56,26 @@ export default function CreateTask(props) { setTasks(tasks.filter(el=>el._id !== id)) console.log(id) }) + }; + + function setChecked(e) { + const value = e.target.checked; + const id = e.target.dataset.id; + fetch(`/task/${id}/?completed=${value}`, { + method: 'post', + body: JSON.stringify({completed: value}), + headers: { + 'Authorization': `Bearer ${token}`, + 'Content-Type': 'application/json', + 'Accept': 'application/json' + } + }).then((res)=>console.log(res)) } + function showMoreTask() { + + } + return ( <> @@ -68,12 +90,13 @@ export default function CreateTask(props) { tasks.map(({title, status, _id}) => { return
              - {title} ||| status: {status.toString()} + {title} ||| status:
              }) } + ); } diff --git a/practice/group777/client/src/editUser.js b/practice/group777/client/src/editUser.js new file mode 100644 index 0000000..55ea568 --- /dev/null +++ b/practice/group777/client/src/editUser.js @@ -0,0 +1,46 @@ +import React, {useState} from 'react'; +import Avatar from "./Avatar"; + +export default function Edit () { + const [name, setName] = useState(null); + const [email, setEmail] = useState(null); + const [age, setAge] = useState(null); + const [password, setPassword] = useState(null); + const token = localStorage.getItem('tokenApi'); + + + function changeData(e) { + e.preventDefault(); + const data = { + name, + email, + age, + password + }; + fetch('/user/edit', { + method: 'put', + body: JSON.stringify(data), + headers: { + 'Authorization': `Bearer ${token}`, + 'Content-Type': 'application/json', + 'Accept': 'application/json' + }}) + .then(res => res.json()) + .then(data => console.log(data)) + } + + return ( + <> + +

              Edit user information

              + setName(e.target.value)} placeholder='Name'/> + setEmail(e.target.value)} placeholder='Email' /> + setAge(e.target.value)} placeholder='Age'/> + setPassword(e.target.value)} placeholder='Password'/> + +
              +

              Change user avatar

              + + + ) +}; diff --git a/practice/group777/client/src/index.js b/practice/group777/client/src/index.js index 6aca889..c99b097 100644 --- a/practice/group777/client/src/index.js +++ b/practice/group777/client/src/index.js @@ -6,12 +6,14 @@ import Registration from "./Registration"; import Login from "./Login"; import Restore from "./restore"; import {BrowserRouter} from "react-router-dom"; +import editUser from "./editUser"; ReactDOM.render( + , document.getElementById('root')); diff --git a/practice/group777/midlleware/auth.js b/practice/group777/midlleware/auth.js index ac4d14e..a436a6f 100644 --- a/practice/group777/midlleware/auth.js +++ b/practice/group777/midlleware/auth.js @@ -16,7 +16,7 @@ const auth = async(req, res, next) => { next() } catch (e) { - console.log(e) + console.log(e); res.status(401).send({ error: 'Please authenticate.' }) } }; diff --git a/practice/group777/routers/api.js b/practice/group777/routers/api.js index d029c10..29c046b 100644 --- a/practice/group777/routers/api.js +++ b/practice/group777/routers/api.js @@ -9,7 +9,7 @@ const auth = require('./../midlleware/auth'); router.get('/api', auth, async function (req, res) { // const users = await User.find(); const id = mongoose.Types.ObjectId(req.user.id) - const tasks = await Task.find({owner: id}); + const tasks = await Task.find({owner: id}).limit(5); // const json = [{ // users: users, // tasks: tasks, diff --git a/practice/group777/routers/task.js b/practice/group777/routers/task.js index 28c15f5..30d58b5 100644 --- a/practice/group777/routers/task.js +++ b/practice/group777/routers/task.js @@ -20,8 +20,14 @@ router.post('/task', auth, function (req, res) { }); }); -router.get('/task/:id', async function (req, res) { - const task = await Task.find({_id: req.params.id}); +router.post('/task/:id', auth, async function (req, res) { + const task = await Task.findById(req.params.id); + console.log(req.body.completed) + + task.status = req.body.completed; + await task.save().then(task => console.log(task)); + + res.send(task) }); diff --git a/practice/group777/routers/user.js b/practice/group777/routers/user.js index a4c90a7..62307cb 100644 --- a/practice/group777/routers/user.js +++ b/practice/group777/routers/user.js @@ -6,16 +6,6 @@ const config = require('./../config'); const jwt = require('jsonwebtoken'); const sendEmail = require('./../email'); -router.get('/users', async function (req, res) { - const users = await User.find(); - res.send(users) -}); - -router.get('/user/:id', async function (req, res) { - const user = await User.findOne({_id: req.params.id}); - res.send(user) -}); - router.post('/registration', async function (req, res) { if(!req.body) return res.sendStatus(500); const user = new User({ @@ -54,6 +44,33 @@ router.get('/user/:id/avatar', async (req, res) => { } }); +router.put('/user/edit', auth, async(req, res) => { + const updates = Object.keys(req.body).filter(i=>req.body[i] !== null); + console.log(updates, '---') + const allowedUpdates = ['name', 'email', 'password', 'age']; + const isValidOperation = updates.every((update) => allowedUpdates.includes(update)); + + + + if (!isValidOperation) { + return res.status(400).send({ error: 'Invalid updates!' }); + } + + try { + const user = await User.findById(req.user.id); + + updates.forEach((update) => user[update] = req.body[update]); + + await user.save(); + if (!user) { + return res.status(404).send(); + } + + res.send(user); + } catch (e) { + res.status(400).send(e); + } +}); module.exports = router; From e82c7bf3e49996e490e95d0a88afddd62d955baf Mon Sep 17 00:00:00 2001 From: xxx44552 Date: Tue, 4 Feb 2020 22:27:11 +0200 Subject: [PATCH 18/19] save --- practice/group777/soket/index.js | 32 + practice/group777/soket/package-lock.json | 706 ++++++++++++++++++++++ practice/group777/soket/package.json | 17 + practice/group777/soket/public/index.html | 14 + practice/group777/soket/public/js/chat.js | 15 + 5 files changed, 784 insertions(+) create mode 100644 practice/group777/soket/index.js create mode 100644 practice/group777/soket/package-lock.json create mode 100644 practice/group777/soket/package.json create mode 100644 practice/group777/soket/public/index.html create mode 100644 practice/group777/soket/public/js/chat.js diff --git a/practice/group777/soket/index.js b/practice/group777/soket/index.js new file mode 100644 index 0000000..780f0b1 --- /dev/null +++ b/practice/group777/soket/index.js @@ -0,0 +1,32 @@ +const express = require('express'); +const app = express(); +const socket = require('socket.io'); +const http = require('http'); + +const port = process.env.PORT || 3000; + +const server = http.createServer(app); +const io = socket(server); + +let count = 0; +let msg = [{text: 'Lorem'}]; + +app.use(express.static(__dirname + '/public')); + +io.on('connection', (socket) => { + console.log('New Socket'); + + socket.emit('countUpdated', count); + + socket.on('increment', () => { + count++; + io.emit('countUpdated', count) + }) + + socket.emit('sendMess', msg) + +}); + +server.listen(port, function () { + console.log(`Listening on port ${port}!`); +}); \ No newline at end of file diff --git a/practice/group777/soket/package-lock.json b/practice/group777/soket/package-lock.json new file mode 100644 index 0000000..7d88fd5 --- /dev/null +++ b/practice/group777/soket/package-lock.json @@ -0,0 +1,706 @@ +{ + "name": "soket", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "after": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", + "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=" + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "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==" + }, + "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==" + }, + "backo2": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", + "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=" + }, + "base64-arraybuffer": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", + "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=" + }, + "base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==" + }, + "better-assert": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", + "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", + "requires": { + "callsite": "1.0.0" + } + }, + "blob": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", + "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==" + }, + "body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "requires": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + } + }, + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" + }, + "callsite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", + "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=" + }, + "component-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", + "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=" + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" + }, + "component-inherit": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", + "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=" + }, + "content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "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==" + }, + "cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + }, + "engine.io": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.4.0.tgz", + "integrity": "sha512-XCyYVWzcHnK5cMz7G4VTu2W7zJS7SM1QkcelghyIk/FmobWBtXE7fwhBusEKvCSqc3bMh8fNFMlUkCKTFRxH2w==", + "requires": { + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "0.3.1", + "debug": "~4.1.0", + "engine.io-parser": "~2.2.0", + "ws": "^7.1.2" + }, + "dependencies": { + "cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "engine.io-client": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.0.tgz", + "integrity": "sha512-a4J5QO2k99CM2a0b12IznnyQndoEvtA4UAldhGzKqnHf42I3Qs2W5SPnDvatZRcMaNZs4IevVicBPayxYt6FwA==", + "requires": { + "component-emitter": "1.2.1", + "component-inherit": "0.0.3", + "debug": "~4.1.0", + "engine.io-parser": "~2.2.0", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "ws": "~6.1.0", + "xmlhttprequest-ssl": "~1.5.4", + "yeast": "0.1.2" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "ws": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz", + "integrity": "sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==", + "requires": { + "async-limiter": "~1.0.0" + } + } + } + }, + "engine.io-parser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.0.tgz", + "integrity": "sha512-6I3qD9iUxotsC5HEMuuGsKA0cXerGz+4uGcXQEkfBidgKf0amsjrrtwcbwK/nzpZBxclXlV7gGl9dgWvu4LF6w==", + "requires": { + "after": "0.8.2", + "arraybuffer.slice": "~0.0.7", + "base64-arraybuffer": "0.1.5", + "blob": "0.0.5", + "has-binary2": "~1.0.2" + } + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "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" + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "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" + } + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + }, + "has-binary2": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", + "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", + "requires": { + "isarray": "2.0.1" + } + }, + "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=" + }, + "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==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "ipaddr.js": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", + "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==" + }, + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.43.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz", + "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==" + }, + "mime-types": { + "version": "2.1.26", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz", + "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==", + "requires": { + "mime-db": "1.43.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" + }, + "object-component": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", + "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=" + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "requires": { + "ee-first": "1.1.1" + } + }, + "parseqs": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", + "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", + "requires": { + "better-assert": "~1.0.0" + } + }, + "parseuri": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", + "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", + "requires": { + "better-assert": "~1.0.0" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "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=" + }, + "proxy-addr": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", + "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==", + "requires": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.0" + } + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" + }, + "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==" + }, + "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==", + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.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==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "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": { + "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==" + } + } + }, + "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==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + } + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "socket.io": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.3.0.tgz", + "integrity": "sha512-2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg==", + "requires": { + "debug": "~4.1.0", + "engine.io": "~3.4.0", + "has-binary2": "~1.0.2", + "socket.io-adapter": "~1.1.0", + "socket.io-client": "2.3.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==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "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==" + }, + "socket.io-client": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.3.0.tgz", + "integrity": "sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA==", + "requires": { + "backo2": "1.0.2", + "base64-arraybuffer": "0.1.5", + "component-bind": "1.0.0", + "component-emitter": "1.2.1", + "debug": "~4.1.0", + "engine.io-client": "~3.4.0", + "has-binary2": "~1.0.2", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "object-component": "0.0.3", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "socket.io-parser": "~3.3.0", + "to-array": "0.1.4" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "socket.io-parser": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.0.tgz", + "integrity": "sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng==", + "requires": { + "component-emitter": "1.2.1", + "debug": "~3.1.0", + "isarray": "2.0.1" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + } + } + }, + "socket.io-parser": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.0.tgz", + "integrity": "sha512-/G/VOI+3DBp0+DJKW4KesGnQkQPFmUCbA/oO2QGT6CWxU7hLGWqU3tyuzeSK/dqcyeHsQg1vTe9jiZI8GU9SCQ==", + "requires": { + "component-emitter": "1.2.1", + "debug": "~4.1.0", + "isarray": "2.0.1" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + }, + "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=" + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "ws": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.2.1.tgz", + "integrity": "sha512-sucePNSafamSKoOqoNfBd8V0StlkzJKL2ZAhGQinCfNQ+oacw+Pk7lcdAElecBF2VkLNZRiIb5Oi1Q5lVUVt2A==" + }, + "xmlhttprequest-ssl": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", + "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=" + }, + "yeast": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", + "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=" + } + } +} diff --git a/practice/group777/soket/package.json b/practice/group777/soket/package.json new file mode 100644 index 0000000..b6081d7 --- /dev/null +++ b/practice/group777/soket/package.json @@ -0,0 +1,17 @@ +{ + "name": "soket", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "start": "node index.js", + "dev": "nodemon index.js", + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "ISC", + "dependencies": { + "express": "^4.17.1", + "socket.io": "^2.3.0" + } +} diff --git a/practice/group777/soket/public/index.html b/practice/group777/soket/public/index.html new file mode 100644 index 0000000..4b5b26b --- /dev/null +++ b/practice/group777/soket/public/index.html @@ -0,0 +1,14 @@ + + + + + lorem + + + +
              +
              + + + + diff --git a/practice/group777/soket/public/js/chat.js b/practice/group777/soket/public/js/chat.js new file mode 100644 index 0000000..56f5da2 --- /dev/null +++ b/practice/group777/soket/public/js/chat.js @@ -0,0 +1,15 @@ +const socket = io(); + +socket.on('countUpdated', (count) => { + console.log('Update count', count) + document.getElementById('test').innerHTML = count; +}) + +document.getElementById('btn').onclick = function () { + console.log('Click') + socket.emit('increment') +} + +socket.on('sendMess', (msg) => { + console.log(msg) +}) \ No newline at end of file From 71a2e9da5490edb5c83db994cc734adbbda2c648 Mon Sep 17 00:00:00 2001 From: Artur Kudaev Date: Wed, 5 Feb 2020 18:12:59 +0200 Subject: [PATCH 19/19] save --- practice/group777/client/src/App.js | 2 + practice/group777/client/src/Chat.js | 48 +++ practice/group777/index.js | 38 ++- practice/group777/package-lock.json | 344 ++++++++++++++++++++++ practice/group777/package.json | 1 + practice/group777/routers/user.js | 7 +- practice/group777/socket/index.js | 0 practice/group777/soket/index.js | 15 +- practice/group777/soket/public/index.html | 1 + practice/group777/soket/public/js/chat.js | 21 +- 10 files changed, 461 insertions(+), 16 deletions(-) create mode 100644 practice/group777/client/src/Chat.js create mode 100644 practice/group777/socket/index.js diff --git a/practice/group777/client/src/App.js b/practice/group777/client/src/App.js index 8328934..a9042f0 100644 --- a/practice/group777/client/src/App.js +++ b/practice/group777/client/src/App.js @@ -4,6 +4,7 @@ import Login from "./Login"; import CreateTask from "./createTask"; import Confirm from "./confirmEmail"; import Edit from "./editUser"; +import Chat from "./Chat"; export default function App() { @@ -44,6 +45,7 @@ export default function App() { avatar Edit user info + } diff --git a/practice/group777/client/src/Chat.js b/practice/group777/client/src/Chat.js new file mode 100644 index 0000000..91adc7d --- /dev/null +++ b/practice/group777/client/src/Chat.js @@ -0,0 +1,48 @@ +import React, {useState} from 'react'; +import io from 'socket.io-client'; +let socket = io('http://localhost:5000') + +export default function Chat(props) { + + const [listMess, setListMess] = useState([]); + const [mess, setMess] = useState(''); + const [countClient, setCountClient] = useState(); + + function sendMessage(e) { + e.preventDefault(); + socket.emit('sendMess', {mess, name: props.user.name}); + setMess(''); + e.target.reset() + } + + socket.on('clientCount', count => { + setCountClient(count) + }) + + socket.on('addMess', ({msg}) => { + setListMess(listMess.concat(msg)) + }); + + socket.on('user connected', name => { + console.log(name) + }) + + + return ( + <> +

              Chat

              +
              Колличесвто подключенных пользователей {countClient}
              +
              + { + listMess.map(({name, mess}, i) =>

              {name} - {mess}

              ) + } +
              +
              + + +
              + + + ) +} + diff --git a/practice/group777/index.js b/practice/group777/index.js index fde5ffd..d8eb395 100644 --- a/practice/group777/index.js +++ b/practice/group777/index.js @@ -1,5 +1,6 @@ const express = require('express'); const app = express(); +const server = require('http').Server(app); const userRouter = require('./routers/user'); const taskRouter = require('./routers/task'); const deleteRouter = require('./routers/delete'); @@ -10,6 +11,7 @@ const restoreRouter = require('./routers/restorePass'); const confirmRouter = require('./routers/confirmEmail'); const hbs = require('hbs'); const path = require('path'); +const io = require('socket.io')(server); const {port} = require('./config'); @@ -19,10 +21,6 @@ app.set('view engine', 'hbs'); app.use(express.static(path.join(__dirname, 'client/build'))); -app.get("/", function(req, res){ - res.sendFile(path.join(__dirname, 'client/build', 'index.html')); -}); - app.use(express.json()); app.use(userRouter); @@ -34,4 +32,34 @@ app.use(uploadRouter); app.use(restoreRouter); app.use(confirmRouter); -app.listen(port, () => console.log(`Start listening on port ${port}!`)); +let clientCount = 0; + +io.on('connection', (socket) => { + console.log(`Create new socket with ID: ${socket.id}`); + clientCount = socket.server.engine.clientsCount; + + console.log(clientCount) + + socket.on('sendMess', (msg) => { + console.log(msg) + + io.emit('addMess', {msg}) + }); + + io.emit('clientCount', clientCount); + + socket.broadcast.emit('user connected' , 'name'); + + socket.on('disconnect', function () { + clientCount = socket.server.engine.clientsCount; + io.emit('clientCount', clientCount); + }); + +}); + +server.listen(port, () => console.log(`Start listening on port ${port}!`)); + + + + + diff --git a/practice/group777/package-lock.json b/practice/group777/package-lock.json index 44e8dc5..9c72ac0 100644 --- a/practice/group777/package-lock.json +++ b/practice/group777/package-lock.json @@ -40,6 +40,11 @@ "negotiator": "0.6.2" } }, + "after": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", + "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=" + }, "ajv": { "version": "6.11.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.11.0.tgz", @@ -69,6 +74,11 @@ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, + "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==" + }, "asn1": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", @@ -82,6 +92,11 @@ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" }, + "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==" + }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -97,6 +112,21 @@ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==" }, + "backo2": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", + "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=" + }, + "base64-arraybuffer": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", + "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=" + }, + "base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==" + }, "bcrypt-pbkdf": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", @@ -110,6 +140,19 @@ "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", "integrity": "sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms=" }, + "better-assert": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", + "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", + "requires": { + "callsite": "1.0.0" + } + }, + "blob": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", + "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==" + }, "bluebird": { "version": "3.5.1", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", @@ -161,6 +204,11 @@ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" }, + "callsite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", + "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=" + }, "caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", @@ -203,6 +251,21 @@ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "optional": true }, + "component-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", + "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=" + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" + }, + "component-inherit": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", + "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=" + }, "concat-stream": { "version": "1.6.2", "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", @@ -343,6 +406,92 @@ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" }, + "engine.io": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.4.0.tgz", + "integrity": "sha512-XCyYVWzcHnK5cMz7G4VTu2W7zJS7SM1QkcelghyIk/FmobWBtXE7fwhBusEKvCSqc3bMh8fNFMlUkCKTFRxH2w==", + "requires": { + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "0.3.1", + "debug": "~4.1.0", + "engine.io-parser": "~2.2.0", + "ws": "^7.1.2" + }, + "dependencies": { + "cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "engine.io-client": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.0.tgz", + "integrity": "sha512-a4J5QO2k99CM2a0b12IznnyQndoEvtA4UAldhGzKqnHf42I3Qs2W5SPnDvatZRcMaNZs4IevVicBPayxYt6FwA==", + "requires": { + "component-emitter": "1.2.1", + "component-inherit": "0.0.3", + "debug": "~4.1.0", + "engine.io-parser": "~2.2.0", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "ws": "~6.1.0", + "xmlhttprequest-ssl": "~1.5.4", + "yeast": "0.1.2" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "ws": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz", + "integrity": "sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==", + "requires": { + "async-limiter": "~1.0.0" + } + } + } + }, + "engine.io-parser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.0.tgz", + "integrity": "sha512-6I3qD9iUxotsC5HEMuuGsKA0cXerGz+4uGcXQEkfBidgKf0amsjrrtwcbwK/nzpZBxclXlV7gGl9dgWvu4LF6w==", + "requires": { + "after": "0.8.2", + "arraybuffer.slice": "~0.0.7", + "base64-arraybuffer": "0.1.5", + "blob": "0.0.5", + "has-binary2": "~1.0.2" + } + }, "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", @@ -492,6 +641,26 @@ "har-schema": "^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==", + "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=" + } + } + }, + "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=" + }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -536,6 +705,11 @@ "safer-buffer": ">= 2.1.2 < 3" } }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" + }, "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", @@ -862,6 +1036,11 @@ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, + "object-component": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", + "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=" + }, "on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", @@ -879,6 +1058,22 @@ "wordwrap": "~0.0.2" } }, + "parseqs": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", + "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", + "requires": { + "better-assert": "~1.0.0" + } + }, + "parseuri": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", + "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", + "requires": { + "better-assert": "~1.0.0" + } + }, "parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -1080,6 +1275,135 @@ "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=" }, + "socket.io": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.3.0.tgz", + "integrity": "sha512-2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg==", + "requires": { + "debug": "~4.1.0", + "engine.io": "~3.4.0", + "has-binary2": "~1.0.2", + "socket.io-adapter": "~1.1.0", + "socket.io-client": "2.3.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==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "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==" + }, + "socket.io-client": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.3.0.tgz", + "integrity": "sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA==", + "requires": { + "backo2": "1.0.2", + "base64-arraybuffer": "0.1.5", + "component-bind": "1.0.0", + "component-emitter": "1.2.1", + "debug": "~4.1.0", + "engine.io-client": "~3.4.0", + "has-binary2": "~1.0.2", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "object-component": "0.0.3", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "socket.io-parser": "~3.3.0", + "to-array": "0.1.4" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "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=" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "socket.io-parser": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.0.tgz", + "integrity": "sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng==", + "requires": { + "component-emitter": "1.2.1", + "debug": "~3.1.0", + "isarray": "2.0.1" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + } + } + }, + "socket.io-parser": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.0.tgz", + "integrity": "sha512-/G/VOI+3DBp0+DJKW4KesGnQkQPFmUCbA/oO2QGT6CWxU7hLGWqU3tyuzeSK/dqcyeHsQg1vTe9jiZI8GU9SCQ==", + "requires": { + "component-emitter": "1.2.1", + "debug": "~4.1.0", + "isarray": "2.0.1" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "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=" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -1133,6 +1457,11 @@ "has-flag": "^3.0.0" } }, + "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=" + }, "toidentifier": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", @@ -1252,10 +1581,25 @@ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=" }, + "ws": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.2.1.tgz", + "integrity": "sha512-sucePNSafamSKoOqoNfBd8V0StlkzJKL2ZAhGQinCfNQ+oacw+Pk7lcdAElecBF2VkLNZRiIb5Oi1Q5lVUVt2A==" + }, + "xmlhttprequest-ssl": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", + "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=" + }, "xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, + "yeast": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", + "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=" } } } diff --git a/practice/group777/package.json b/practice/group777/package.json index 552cabe..bddb6c9 100644 --- a/practice/group777/package.json +++ b/practice/group777/package.json @@ -19,6 +19,7 @@ "mongoose-validator": "^0.2.2", "multer": "^1.4.2", "nodemailer": "^6.4.2", + "socket.io": "^2.3.0", "validator": "^12.1.0" } } diff --git a/practice/group777/routers/user.js b/practice/group777/routers/user.js index 62307cb..063584d 100644 --- a/practice/group777/routers/user.js +++ b/practice/group777/routers/user.js @@ -5,6 +5,8 @@ const auth = require('./../midlleware/auth'); const config = require('./../config'); const jwt = require('jsonwebtoken'); const sendEmail = require('./../email'); +const mongoose = require('mongoose'); + router.post('/registration', async function (req, res) { if(!req.body) return res.sendStatus(500); @@ -34,13 +36,14 @@ router.post('/registration', async function (req, res) { router.get('/user/:id/avatar', async (req, res) => { try { - const user = await User.findById(req.params.id); + const user = await User.findOne({ _id: mongoose.Types.ObjectId(req.params.id)}); + if(!user || !user.avatar) throw new Error('Error avatar'); res.set('Content-Type', 'image/jpg'); res.send(user.avatar); }catch (e) { - console.log(e) + //console.log(e) } }); diff --git a/practice/group777/socket/index.js b/practice/group777/socket/index.js new file mode 100644 index 0000000..e69de29 diff --git a/practice/group777/soket/index.js b/practice/group777/soket/index.js index 780f0b1..7093810 100644 --- a/practice/group777/soket/index.js +++ b/practice/group777/soket/index.js @@ -9,12 +9,16 @@ const server = http.createServer(app); const io = socket(server); let count = 0; -let msg = [{text: 'Lorem'}]; +//let msg = [{text: 'Lorem'}]; app.use(express.static(__dirname + '/public')); io.on('connection', (socket) => { console.log('New Socket'); + socket.messArr = []; + + + const color = `#${(Math.random().toString(16) + '000000').substring(2,8).toUpperCase()}`; socket.emit('countUpdated', count); @@ -23,10 +27,15 @@ io.on('connection', (socket) => { io.emit('countUpdated', count) }) - socket.emit('sendMess', msg) + socket.on('sendMess', (msg) => { + socket.messArr.push(msg) + console.log(socket.id, '------') + console.log(msg); + io.emit('addMess', {msg, color}) + }) }); server.listen(port, function () { console.log(`Listening on port ${port}!`); -}); \ No newline at end of file +}); diff --git a/practice/group777/soket/public/index.html b/practice/group777/soket/public/index.html index 4b5b26b..aa8d7fa 100644 --- a/practice/group777/soket/public/index.html +++ b/practice/group777/soket/public/index.html @@ -8,6 +8,7 @@
              + diff --git a/practice/group777/soket/public/js/chat.js b/practice/group777/soket/public/js/chat.js index 56f5da2..f2c33a8 100644 --- a/practice/group777/soket/public/js/chat.js +++ b/practice/group777/soket/public/js/chat.js @@ -1,15 +1,24 @@ const socket = io(); socket.on('countUpdated', (count) => { - console.log('Update count', count) + console.log('Update count', count); document.getElementById('test').innerHTML = count; }) document.getElementById('btn').onclick = function () { - console.log('Click') - socket.emit('increment') + console.log('Click'); + socket.emit('increment'); } -socket.on('sendMess', (msg) => { - console.log(msg) -}) \ No newline at end of file +const text = document.getElementById('text'); +document.getElementById('save').onclick = function () { + console.log(text.value) + socket.emit('sendMess', text.value) + text.value = ''; +} + +socket.on('addMess', (mess) => { + document.getElementById('mess').innerHTML += `

              ${mess.msg}

              `; + console.log(mess) +}); +

              -
              -
              -
              - - Товаров в корзине - XXX, - на сумму XXX грн - -
              -
              - -
              - - - -
              -
              -

              Welcome to our site

              -
              -
              - -
              -
              -
              -
              - - -
              -
              - - -
              -
              - - - -
              - -
              -

              Овсяная каша с фруктами

              -
              - -
              -
              -

              25 грн.

              -
              - Кол -
              - - -
              -
              -
              -

              Яичница глазунья с овощами на сковородке

              -
              - -
              -
              -

              25 грн.

              -
              - Кол -
              - - -
              -
              -
              -

              Сет азербайджанский завтрак

              -
              - -
              -
              -

              30 грн.

              -
              - Кол -
              - - -
              -
              -
              -

              Яичница с помидорами по-бакински

              -
              - -
              -
              -

              45 грн.

              -
              - Кол -
              - - -
              -
              -
              -

              Сырники со сметаной

              -
              - -
              -
              -

              45 грн.

              -
              - Кол -
              - - -
              -
              -
              -

              Шпинатный крем-суп

              -
              - -
              -
              -

              50 грн.

              -
              - Кол -
              - - -
              -
              -
              -

              Суп Пити

              -
              - -
              -
              -

              85 грн.

              -
              - Кол -
              - - -
              -
              -
              -

              Борщ украинский

              -
              - -
              -
              -

              95 грн.

              -
              - Кол -
              - - -
              -
              -
              -

              Суп Кюфта Бозбаш

              -
              - -
              -
              -

              100 грн.

              -
              - Кол -
              - - -
              -
              -
              -

              Картофель фри

              -
              - -
              -
              -

              125 грн.

              -
              - Кол -
              - - -
              -
              -
              -

              Картофель по-домашнему

              -
              - -
              -
              -

              135 грн.

              -
              - Кол -
              - - -
              -
              -
              -

              Рис с овощами

              -
              - -
              -
              -

              150 грн.

              -
              - Кол -
              - - -
              -
              - - -
              - -
              -
              - -
              -