]> zoso.dev Git - libnemo.git/commitdiff
webpack bundle and changed requires to imports
authorMiro Metsänheimo <miro@metsanheimo.fi>
Mon, 14 Oct 2019 19:17:38 +0000 (22:17 +0300)
committerMiro Metsänheimo <miro@metsanheimo.fi>
Mon, 14 Oct 2019 19:49:39 +0000 (22:49 +0300)
.npmignore
README.md
lib/bip32-key-derivation.ts
lib/bip39-mnemonic.ts
lib/block-signer.ts
lib/ed25519.ts
lib/nano-address.ts
package-lock.json
package.json
webpack.config.js [new file with mode: 0644]

index 3eb626b8df35d211cbd9d4cce9327f8a8bc6ee93..0be59bb0bd10cff72e93fd217498a53433ebbafe 100644 (file)
@@ -1,8 +1,10 @@
 .git/
 node_modules/
 test/
+src/
 .gitignore
 .editorconfig
 .travis.yml
-src
-tsconfig.json
\ No newline at end of file
+webpack.config.json
+tsconfig.json
+package-lock.json
index c433e9cc75d569cac7466f77f6d4cb8808b0424c..1fb0faf1b14de3a2d90bd6002d33f7b7b36d6900 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,5 +1,7 @@
 # nanocurrency-web
 [![Build Status](https://travis-ci.org/numsu/nanocurrency-web-js.svg?branch=master)](https://travis-ci.org/numsu/nanocurrency-web-js)
+[![GitHub license](https://img.shields.io/github/license/numsu/nanocurrency-web-js)](https://github.com/numsu/nanocurrency-web-js/blob/master/LICENSE)
+[![npm version](https://badge.fury.io/js/nanocurrency-web.svg)](https://badge.fury.io/js/nanocurrency-web)
 
 Toolkit for Nano cryptocurrency client side offline implementations allowing you to build web- and mobile applications using Nano without compromising the user's keys by sending them out of their own device.
 
index 5494dbe62888c124f53b0dd6a832ebbfb98495d0..5c739137a29c333262037a84033f2b1a3cf3cbb3 100644 (file)
@@ -1,6 +1,7 @@
 import { Convert } from './util/convert'
 
-const CryptoJS = require('crypto-js')
+//@ts-ignore
+import { enc, algo } from 'crypto-js'
 
 const ED25519_CURVE = 'ed25519 seed'
 const HARDENED_OFFSET = 0x80000000
@@ -30,8 +31,8 @@ export default class Bip32KeyDerivation {
 
        private getKeyFromSeed = (): Chain => {
                return this.derive(
-                       CryptoJS.enc.Hex.parse(this.seed),
-                       CryptoJS.enc.Utf8.parse(ED25519_CURVE))
+                       enc.Hex.parse(this.seed),
+                       enc.Utf8.parse(ED25519_CURVE))
        }
 
        private CKDPriv = ({ key, chainCode }: Chain, index: number) => {
@@ -43,12 +44,12 @@ export default class Bip32KeyDerivation {
                const data = '00' + key + Convert.ab2hex(new Uint8Array(ib).buffer)
 
                return this.derive(
-                       CryptoJS.enc.Hex.parse(data),
-                       CryptoJS.enc.Hex.parse(chainCode))
+                       enc.Hex.parse(data),
+                       enc.Hex.parse(chainCode))
        }
 
        private derive = (data: string, base: string): Chain => {
-               const hmac = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA512, base)
+               const hmac = algo.HMAC.create(algo.SHA512, base)
                const I = hmac.update(data).finalize().toString()
                const IL = I.slice(0, I.length / 2)
                const IR = I.slice(I.length / 2)
index 548537bf1df18b5cef3fa5ad91f151e58ed5e3ff..94dc7520c7b8243c4c763b86950ba76af7de0017 100644 (file)
@@ -2,7 +2,8 @@ import words from './words'
 import { Util } from './util/util'
 import { Convert } from './util/convert'
 
-const CryptoJS = require('crypto-js')
+//@ts-ignore
+import { algo, enc, lib, PBKDF2, SHA256 } from 'crypto-js'
 
 export default class Bip39Mnemonic {
 
@@ -82,23 +83,23 @@ export default class Bip39Mnemonic {
                const normalizedMnemonic = Util.normalizeUTF8(mnemonic)
                const normalizedPassword = 'mnemonic' + Util.normalizeUTF8(this.password)
 
-               return CryptoJS.PBKDF2(
+               return PBKDF2(
                        normalizedMnemonic,
                        normalizedPassword,
                        {
                                keySize: 512 / 32,
                                iterations: 2048,
-                               hasher: CryptoJS.algo.SHA512,
+                               hasher: algo.SHA512,
                        })
-                       .toString(CryptoJS.enc.Hex)
+                       .toString(enc.Hex)
        }
 
        private randomHex = (length: number): string => {
-               return CryptoJS.lib.WordArray.random(length / 2).toString()
+               return lib.WordArray.random(length / 2).toString()
        }
 
        private calculateChecksum = (entropyHex: string): string => {
-               const entropySha256 = CryptoJS.SHA256(CryptoJS.enc.Hex.parse(entropyHex)).toString()
+               const entropySha256 = SHA256(enc.Hex.parse(entropyHex)).toString()
                return entropySha256.substr(0, entropySha256.length / 32)
        }
 
index c1cd4f7f6de73645abe366d01ec9d29ea333cf53..27c87b82a32c72b29e2d10d05214f10a384d44e7 100644 (file)
@@ -4,7 +4,8 @@ import { NanoAddress } from './nano-address'
 import NanoConverter from './nano-converter'
 import { Convert } from './util/convert'
 
-const blake = require('blakejs')
+//@ts-ignore
+import { blake2b, blake2bInit, blake2bUpdate, blake2bFinal } from 'blakejs'
 
 export default class BlockSigner {
 
@@ -44,14 +45,14 @@ export default class BlockSigner {
        }
 
        private generateHash(preamble: string, account: string, previous: string, representative: string, balance: string, link: string) {
-               const ctx = blake.blake2bInit(32, undefined)
-               blake.blake2bUpdate(ctx, Convert.hex2ab(preamble))
-               blake.blake2bUpdate(ctx, Convert.hex2ab(account))
-               blake.blake2bUpdate(ctx, Convert.hex2ab(previous))
-               blake.blake2bUpdate(ctx, Convert.hex2ab(representative))
-               blake.blake2bUpdate(ctx, Convert.hex2ab(balance))
-               blake.blake2bUpdate(ctx, Convert.hex2ab(link))
-               return blake.blake2bFinal(ctx)
+               const ctx = blake2bInit(32, undefined)
+               blake2bUpdate(ctx, Convert.hex2ab(preamble))
+               blake2bUpdate(ctx, Convert.hex2ab(account))
+               blake2bUpdate(ctx, Convert.hex2ab(previous))
+               blake2bUpdate(ctx, Convert.hex2ab(representative))
+               blake2bUpdate(ctx, Convert.hex2ab(balance))
+               blake2bUpdate(ctx, Convert.hex2ab(link))
+               return blake2bFinal(ctx)
        }
 
        private nanoAddressToHexString(addr: string): string {
@@ -60,7 +61,7 @@ export default class BlockSigner {
                if (isValid) {
                        const keyBytes = this.nanoAddress.decodeNanoBase32(addr.substring(0, 52))
                        const hashBytes = this.nanoAddress.decodeNanoBase32(addr.substring(52, 60))
-                       const blakeHash = blake.blake2b(keyBytes, undefined, 5).reverse()
+                       const blakeHash = blake2b(keyBytes, undefined, 5).reverse()
                        if (Convert.ab2hex(hashBytes) == Convert.ab2hex(blakeHash)) {
                                const key = Convert.ab2hex(keyBytes).toUpperCase()
                                return key
index 0b8821bc7cf6256f51cbac66f853a2ccbdea71ea..4797ef1d167b7bc3d9ab8102e490d915b44bb77c 100644 (file)
@@ -1,7 +1,8 @@
 import { Convert } from './util/convert'
 import { Curve25519 } from './util/curve25519'
 
-const blake = require('blakejs')
+//@ts-ignore
+import { blake2b } from 'blakejs'
 
 export class Ed25519 {
 
@@ -101,9 +102,7 @@ export class Ed25519 {
        generateKeys(seed: string): KeyPair {
                const pk = new Uint8Array(32)
                const p = [this.curve.gf(), this.curve.gf(), this.curve.gf(), this.curve.gf()]
-               const h = blake
-                       .blake2b(Convert.hex2ab(seed), undefined, 64)
-                       .slice(0, 32)
+               const h = blake2b(Convert.hex2ab(seed), undefined, 64).slice(0, 32)
 
                h[0] &= 0xf8
                h[31] &= 0x7f
@@ -210,7 +209,7 @@ export class Ed25519 {
                        input[i] = m[i]
                }
 
-               const hash = blake.blake2b(input)
+               const hash = blake2b(input)
                for (let i = 0; i < 64; ++i) {
                        out[i] = hash[i]
                }
index 7a4e9e4aa6e9dd667ad7ec43fccc044b10646e73..407945832363dc2fab010cd4c450dee700c6893c 100644 (file)
@@ -1,6 +1,7 @@
 import { Convert } from './util/convert'
 
-const blake = require('blakejs')
+//@ts-ignore
+import { blake2b } from 'blakejs'
 
 export class NanoAddress {
 
@@ -9,10 +10,7 @@ export class NanoAddress {
 
        deriveAddress = (publicKey: string): string => {
                const publicKeyBytes = Convert.hex2ab(publicKey)
-               const checksum = blake
-                       .blake2b(publicKeyBytes, undefined, 5)
-                       .reverse()
-
+               const checksum = blake2b(publicKeyBytes, undefined, 5).reverse()
                const encoded = this.encodeNanoBase32(publicKeyBytes)
                const encodedChecksum = this.encodeNanoBase32(checksum)
 
index cebcf1bf3b2b6962dca9e484205b3f1d6739eb90..2a21c66fd956f8fc533fcde8b1e47f440249a54d 100644 (file)
@@ -1,6 +1,6 @@
 {
        "name": "nanocurrency-web",
-       "version": "1.0.0",
+       "version": "1.0.1",
        "lockfileVersion": 1,
        "requires": true,
        "dependencies": {
                        "integrity": "sha512-KPYGmfD0/b1eXurQ59fXD1GBzhSQfz6/lKBxkaHX9dKTzjXbK68Zt7yGUxUsCS1jeTy/8aL+d9JEr+S54mpkWQ==",
                        "dev": true
                },
+               "@webassemblyjs/ast": {
+                       "version": "1.8.5",
+                       "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.8.5.tgz",
+                       "integrity": "sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ==",
+                       "dev": true,
+                       "requires": {
+                               "@webassemblyjs/helper-module-context": "1.8.5",
+                               "@webassemblyjs/helper-wasm-bytecode": "1.8.5",
+                               "@webassemblyjs/wast-parser": "1.8.5"
+                       }
+               },
+               "@webassemblyjs/floating-point-hex-parser": {
+                       "version": "1.8.5",
+                       "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz",
+                       "integrity": "sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ==",
+                       "dev": true
+               },
+               "@webassemblyjs/helper-api-error": {
+                       "version": "1.8.5",
+                       "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz",
+                       "integrity": "sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA==",
+                       "dev": true
+               },
+               "@webassemblyjs/helper-buffer": {
+                       "version": "1.8.5",
+                       "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz",
+                       "integrity": "sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q==",
+                       "dev": true
+               },
+               "@webassemblyjs/helper-code-frame": {
+                       "version": "1.8.5",
+                       "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz",
+                       "integrity": "sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ==",
+                       "dev": true,
+                       "requires": {
+                               "@webassemblyjs/wast-printer": "1.8.5"
+                       }
+               },
+               "@webassemblyjs/helper-fsm": {
+                       "version": "1.8.5",
+                       "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz",
+                       "integrity": "sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow==",
+                       "dev": true
+               },
+               "@webassemblyjs/helper-module-context": {
+                       "version": "1.8.5",
+                       "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz",
+                       "integrity": "sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g==",
+                       "dev": true,
+                       "requires": {
+                               "@webassemblyjs/ast": "1.8.5",
+                               "mamacro": "0.0.3"
+                       }
+               },
+               "@webassemblyjs/helper-wasm-bytecode": {
+                       "version": "1.8.5",
+                       "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz",
+                       "integrity": "sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ==",
+                       "dev": true
+               },
+               "@webassemblyjs/helper-wasm-section": {
+                       "version": "1.8.5",
+                       "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz",
+                       "integrity": "sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA==",
+                       "dev": true,
+                       "requires": {
+                               "@webassemblyjs/ast": "1.8.5",
+                               "@webassemblyjs/helper-buffer": "1.8.5",
+                               "@webassemblyjs/helper-wasm-bytecode": "1.8.5",
+                               "@webassemblyjs/wasm-gen": "1.8.5"
+                       }
+               },
+               "@webassemblyjs/ieee754": {
+                       "version": "1.8.5",
+                       "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz",
+                       "integrity": "sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g==",
+                       "dev": true,
+                       "requires": {
+                               "@xtuc/ieee754": "1.2.0"
+                       }
+               },
+               "@webassemblyjs/leb128": {
+                       "version": "1.8.5",
+                       "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.8.5.tgz",
+                       "integrity": "sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A==",
+                       "dev": true,
+                       "requires": {
+                               "@xtuc/long": "4.2.2"
+                       }
+               },
+               "@webassemblyjs/utf8": {
+                       "version": "1.8.5",
+                       "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.8.5.tgz",
+                       "integrity": "sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw==",
+                       "dev": true
+               },
+               "@webassemblyjs/wasm-edit": {
+                       "version": "1.8.5",
+                       "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz",
+                       "integrity": "sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q==",
+                       "dev": true,
+                       "requires": {
+                               "@webassemblyjs/ast": "1.8.5",
+                               "@webassemblyjs/helper-buffer": "1.8.5",
+                               "@webassemblyjs/helper-wasm-bytecode": "1.8.5",
+                               "@webassemblyjs/helper-wasm-section": "1.8.5",
+                               "@webassemblyjs/wasm-gen": "1.8.5",
+                               "@webassemblyjs/wasm-opt": "1.8.5",
+                               "@webassemblyjs/wasm-parser": "1.8.5",
+                               "@webassemblyjs/wast-printer": "1.8.5"
+                       }
+               },
+               "@webassemblyjs/wasm-gen": {
+                       "version": "1.8.5",
+                       "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz",
+                       "integrity": "sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg==",
+                       "dev": true,
+                       "requires": {
+                               "@webassemblyjs/ast": "1.8.5",
+                               "@webassemblyjs/helper-wasm-bytecode": "1.8.5",
+                               "@webassemblyjs/ieee754": "1.8.5",
+                               "@webassemblyjs/leb128": "1.8.5",
+                               "@webassemblyjs/utf8": "1.8.5"
+                       }
+               },
+               "@webassemblyjs/wasm-opt": {
+                       "version": "1.8.5",
+                       "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz",
+                       "integrity": "sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q==",
+                       "dev": true,
+                       "requires": {
+                               "@webassemblyjs/ast": "1.8.5",
+                               "@webassemblyjs/helper-buffer": "1.8.5",
+                               "@webassemblyjs/wasm-gen": "1.8.5",
+                               "@webassemblyjs/wasm-parser": "1.8.5"
+                       }
+               },
+               "@webassemblyjs/wasm-parser": {
+                       "version": "1.8.5",
+                       "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz",
+                       "integrity": "sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw==",
+                       "dev": true,
+                       "requires": {
+                               "@webassemblyjs/ast": "1.8.5",
+                               "@webassemblyjs/helper-api-error": "1.8.5",
+                               "@webassemblyjs/helper-wasm-bytecode": "1.8.5",
+                               "@webassemblyjs/ieee754": "1.8.5",
+                               "@webassemblyjs/leb128": "1.8.5",
+                               "@webassemblyjs/utf8": "1.8.5"
+                       }
+               },
+               "@webassemblyjs/wast-parser": {
+                       "version": "1.8.5",
+                       "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz",
+                       "integrity": "sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg==",
+                       "dev": true,
+                       "requires": {
+                               "@webassemblyjs/ast": "1.8.5",
+                               "@webassemblyjs/floating-point-hex-parser": "1.8.5",
+                               "@webassemblyjs/helper-api-error": "1.8.5",
+                               "@webassemblyjs/helper-code-frame": "1.8.5",
+                               "@webassemblyjs/helper-fsm": "1.8.5",
+                               "@xtuc/long": "4.2.2"
+                       }
+               },
+               "@webassemblyjs/wast-printer": {
+                       "version": "1.8.5",
+                       "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz",
+                       "integrity": "sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg==",
+                       "dev": true,
+                       "requires": {
+                               "@webassemblyjs/ast": "1.8.5",
+                               "@webassemblyjs/wast-parser": "1.8.5",
+                               "@xtuc/long": "4.2.2"
+                       }
+               },
+               "@xtuc/ieee754": {
+                       "version": "1.2.0",
+                       "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
+                       "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==",
+                       "dev": true
+               },
+               "@xtuc/long": {
+                       "version": "4.2.2",
+                       "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
+                       "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
+                       "dev": true
+               },
+               "acorn": {
+                       "version": "6.3.0",
+                       "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.3.0.tgz",
+                       "integrity": "sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA==",
+                       "dev": true
+               },
+               "ajv": {
+                       "version": "6.10.2",
+                       "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
+                       "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==",
+                       "dev": true,
+                       "requires": {
+                               "fast-deep-equal": "2.0.1",
+                               "fast-json-stable-stringify": "2.0.0",
+                               "json-schema-traverse": "0.4.1",
+                               "uri-js": "4.2.2"
+                       }
+               },
+               "ajv-errors": {
+                       "version": "1.0.1",
+                       "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz",
+                       "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==",
+                       "dev": true
+               },
+               "ajv-keywords": {
+                       "version": "3.4.1",
+                       "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz",
+                       "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==",
+                       "dev": true
+               },
                "ansi-colors": {
                        "version": "3.2.3",
                        "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz",
                                "color-convert": "1.9.3"
                        }
                },
+               "anymatch": {
+                       "version": "2.0.0",
+                       "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
+                       "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
+                       "dev": true,
+                       "requires": {
+                               "micromatch": "3.1.10",
+                               "normalize-path": "2.1.1"
+                       },
+                       "dependencies": {
+                               "braces": {
+                                       "version": "2.3.2",
+                                       "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+                                       "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+                                       "dev": true,
+                                       "requires": {
+                                               "arr-flatten": "1.1.0",
+                                               "array-unique": "0.3.2",
+                                               "extend-shallow": "2.0.1",
+                                               "fill-range": "4.0.0",
+                                               "isobject": "3.0.1",
+                                               "repeat-element": "1.1.3",
+                                               "snapdragon": "0.8.2",
+                                               "snapdragon-node": "2.1.1",
+                                               "split-string": "3.1.0",
+                                               "to-regex": "3.0.2"
+                                       },
+                                       "dependencies": {
+                                               "extend-shallow": {
+                                                       "version": "2.0.1",
+                                                       "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+                                                       "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+                                                       "dev": true,
+                                                       "requires": {
+                                                               "is-extendable": "0.1.1"
+                                                       }
+                                               }
+                                       }
+                               },
+                               "fill-range": {
+                                       "version": "4.0.0",
+                                       "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+                                       "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
+                                       "dev": true,
+                                       "requires": {
+                                               "extend-shallow": "2.0.1",
+                                               "is-number": "3.0.0",
+                                               "repeat-string": "1.6.1",
+                                               "to-regex-range": "2.1.1"
+                                       },
+                                       "dependencies": {
+                                               "extend-shallow": {
+                                                       "version": "2.0.1",
+                                                       "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+                                                       "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+                                                       "dev": true,
+                                                       "requires": {
+                                                               "is-extendable": "0.1.1"
+                                                       }
+                                               }
+                                       }
+                               },
+                               "is-buffer": {
+                                       "version": "1.1.6",
+                                       "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+                                       "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
+                                       "dev": true
+                               },
+                               "is-number": {
+                                       "version": "3.0.0",
+                                       "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+                                       "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+                                       "dev": true,
+                                       "requires": {
+                                               "kind-of": "3.2.2"
+                                       },
+                                       "dependencies": {
+                                               "kind-of": {
+                                                       "version": "3.2.2",
+                                                       "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+                                                       "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+                                                       "dev": true,
+                                                       "requires": {
+                                                               "is-buffer": "1.1.6"
+                                                       }
+                                               }
+                                       }
+                               },
+                               "micromatch": {
+                                       "version": "3.1.10",
+                                       "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+                                       "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+                                       "dev": true,
+                                       "requires": {
+                                               "arr-diff": "4.0.0",
+                                               "array-unique": "0.3.2",
+                                               "braces": "2.3.2",
+                                               "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.13",
+                                               "object.pick": "1.3.0",
+                                               "regex-not": "1.0.2",
+                                               "snapdragon": "0.8.2",
+                                               "to-regex": "3.0.2"
+                                       }
+                               },
+                               "normalize-path": {
+                                       "version": "2.1.1",
+                                       "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+                                       "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+                                       "dev": true,
+                                       "requires": {
+                                               "remove-trailing-separator": "1.1.0"
+                                       }
+                               },
+                               "to-regex-range": {
+                                       "version": "2.1.1",
+                                       "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
+                                       "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
+                                       "dev": true,
+                                       "requires": {
+                                               "is-number": "3.0.0",
+                                               "repeat-string": "1.6.1"
+                                       }
+                               }
+                       }
+               },
+               "aproba": {
+                       "version": "1.2.0",
+                       "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
+                       "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
+                       "dev": true
+               },
                "argparse": {
                        "version": "1.0.10",
                        "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
                                "sprintf-js": "1.0.3"
                        }
                },
+               "arr-diff": {
+                       "version": "4.0.0",
+                       "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
+                       "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
+                       "dev": true
+               },
+               "arr-flatten": {
+                       "version": "1.1.0",
+                       "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
+                       "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
+                       "dev": true
+               },
+               "arr-union": {
+                       "version": "3.1.0",
+                       "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
+                       "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=",
+                       "dev": true
+               },
+               "array-unique": {
+                       "version": "0.3.2",
+                       "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+                       "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
+                       "dev": true
+               },
+               "asn1.js": {
+                       "version": "4.10.1",
+                       "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz",
+                       "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==",
+                       "dev": true,
+                       "requires": {
+                               "bn.js": "4.11.8",
+                               "inherits": "2.0.4",
+                               "minimalistic-assert": "1.0.1"
+                       }
+               },
+               "assert": {
+                       "version": "1.5.0",
+                       "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz",
+                       "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==",
+                       "dev": true,
+                       "requires": {
+                               "object-assign": "4.1.1",
+                               "util": "0.10.3"
+                       },
+                       "dependencies": {
+                               "inherits": {
+                                       "version": "2.0.1",
+                                       "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+                                       "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=",
+                                       "dev": true
+                               },
+                               "util": {
+                                       "version": "0.10.3",
+                                       "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
+                                       "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
+                                       "dev": true,
+                                       "requires": {
+                                               "inherits": "2.0.1"
+                                       }
+                               }
+                       }
+               },
                "assertion-error": {
                        "version": "1.1.0",
                        "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
                        "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
                        "dev": true
                },
+               "assign-symbols": {
+                       "version": "1.0.0",
+                       "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
+                       "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=",
+                       "dev": true
+               },
+               "async-each": {
+                       "version": "1.0.3",
+                       "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz",
+                       "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==",
+                       "dev": true
+               },
+               "atob": {
+                       "version": "2.1.2",
+                       "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
+                       "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
+                       "dev": true
+               },
                "balanced-match": {
                        "version": "1.0.0",
                        "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
                        "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
                        "dev": true
                },
+               "base": {
+                       "version": "0.11.2",
+                       "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
+                       "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
+                       "dev": true,
+                       "requires": {
+                               "cache-base": "1.0.1",
+                               "class-utils": "0.3.6",
+                               "component-emitter": "1.3.0",
+                               "define-property": "1.0.0",
+                               "isobject": "3.0.1",
+                               "mixin-deep": "1.3.2",
+                               "pascalcase": "0.1.1"
+                       },
+                       "dependencies": {
+                               "define-property": {
+                                       "version": "1.0.0",
+                                       "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+                                       "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+                                       "dev": true,
+                                       "requires": {
+                                               "is-descriptor": "1.0.2"
+                                       }
+                               },
+                               "is-accessor-descriptor": {
+                                       "version": "1.0.0",
+                                       "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+                                       "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+                                       "dev": true,
+                                       "requires": {
+                                               "kind-of": "6.0.2"
+                                       }
+                               },
+                               "is-data-descriptor": {
+                                       "version": "1.0.0",
+                                       "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+                                       "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+                                       "dev": true,
+                                       "requires": {
+                                               "kind-of": "6.0.2"
+                                       }
+                               },
+                               "is-descriptor": {
+                                       "version": "1.0.2",
+                                       "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+                                       "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+                                       "dev": true,
+                                       "requires": {
+                                               "is-accessor-descriptor": "1.0.0",
+                                               "is-data-descriptor": "1.0.0",
+                                               "kind-of": "6.0.2"
+                                       }
+                               }
+                       }
+               },
+               "base64-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==",
+                       "dev": true
+               },
+               "big.js": {
+                       "version": "5.2.2",
+                       "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
+                       "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
+                       "dev": true
+               },
                "bignumber.js": {
                        "version": "9.0.0",
                        "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz",
                        "integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A=="
                },
+               "binary-extensions": {
+                       "version": "1.13.1",
+                       "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
+                       "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==",
+                       "dev": true
+               },
                "blakejs": {
                        "version": "1.1.0",
                        "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.1.0.tgz",
                        "integrity": "sha1-ad+S75U6qIylGjLfarHFShVfx6U="
                },
+               "bluebird": {
+                       "version": "3.7.0",
+                       "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.0.tgz",
+                       "integrity": "sha512-aBQ1FxIa7kSWCcmKHlcHFlT2jt6J/l4FzC7KcPELkOJOsPOb/bccdhmIrKDfXhwFrmc7vDoDrrepFvGqjyXGJg==",
+                       "dev": true
+               },
+               "bn.js": {
+                       "version": "4.11.8",
+                       "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
+                       "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==",
+                       "dev": true
+               },
                "brace-expansion": {
                        "version": "1.1.11",
                        "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
                                "concat-map": "0.0.1"
                        }
                },
+               "braces": {
+                       "version": "3.0.2",
+                       "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+                       "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+                       "dev": true,
+                       "requires": {
+                               "fill-range": "7.0.1"
+                       }
+               },
+               "brorand": {
+                       "version": "1.1.0",
+                       "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
+                       "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=",
+                       "dev": true
+               },
                "browser-stdout": {
                        "version": "1.3.1",
                        "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
                        "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
                        "dev": true
                },
+               "browserify-aes": {
+                       "version": "1.2.0",
+                       "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
+                       "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
+                       "dev": true,
+                       "requires": {
+                               "buffer-xor": "1.0.3",
+                               "cipher-base": "1.0.4",
+                               "create-hash": "1.2.0",
+                               "evp_bytestokey": "1.0.3",
+                               "inherits": "2.0.4",
+                               "safe-buffer": "5.1.2"
+                       }
+               },
+               "browserify-cipher": {
+                       "version": "1.0.1",
+                       "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz",
+                       "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==",
+                       "dev": true,
+                       "requires": {
+                               "browserify-aes": "1.2.0",
+                               "browserify-des": "1.0.2",
+                               "evp_bytestokey": "1.0.3"
+                       }
+               },
+               "browserify-des": {
+                       "version": "1.0.2",
+                       "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz",
+                       "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==",
+                       "dev": true,
+                       "requires": {
+                               "cipher-base": "1.0.4",
+                               "des.js": "1.0.0",
+                               "inherits": "2.0.4",
+                               "safe-buffer": "5.1.2"
+                       }
+               },
+               "browserify-rsa": {
+                       "version": "4.0.1",
+                       "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz",
+                       "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=",
+                       "dev": true,
+                       "requires": {
+                               "bn.js": "4.11.8",
+                               "randombytes": "2.1.0"
+                       }
+               },
+               "browserify-sign": {
+                       "version": "4.0.4",
+                       "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz",
+                       "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=",
+                       "dev": true,
+                       "requires": {
+                               "bn.js": "4.11.8",
+                               "browserify-rsa": "4.0.1",
+                               "create-hash": "1.2.0",
+                               "create-hmac": "1.1.7",
+                               "elliptic": "6.5.1",
+                               "inherits": "2.0.4",
+                               "parse-asn1": "5.1.5"
+                       }
+               },
+               "browserify-zlib": {
+                       "version": "0.2.0",
+                       "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz",
+                       "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==",
+                       "dev": true,
+                       "requires": {
+                               "pako": "1.0.10"
+                       }
+               },
+               "buffer": {
+                       "version": "4.9.1",
+                       "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz",
+                       "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=",
+                       "dev": true,
+                       "requires": {
+                               "base64-js": "1.3.1",
+                               "ieee754": "1.1.13",
+                               "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==",
+                       "dev": true
+               },
+               "buffer-xor": {
+                       "version": "1.0.3",
+                       "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
+                       "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=",
+                       "dev": true
+               },
+               "builtin-status-codes": {
+                       "version": "3.0.0",
+                       "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
+                       "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=",
+                       "dev": true
+               },
+               "cacache": {
+                       "version": "12.0.3",
+                       "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.3.tgz",
+                       "integrity": "sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw==",
+                       "dev": true,
+                       "requires": {
+                               "bluebird": "3.7.0",
+                               "chownr": "1.1.3",
+                               "figgy-pudding": "3.5.1",
+                               "glob": "7.1.4",
+                               "graceful-fs": "4.2.2",
+                               "infer-owner": "1.0.4",
+                               "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.7.1",
+                               "ssri": "6.0.1",
+                               "unique-filename": "1.1.1",
+                               "y18n": "4.0.0"
+                       },
+                       "dependencies": {
+                               "glob": {
+                                       "version": "7.1.4",
+                                       "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz",
+                                       "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==",
+                                       "dev": true,
+                                       "requires": {
+                                               "fs.realpath": "1.0.0",
+                                               "inflight": "1.0.6",
+                                               "inherits": "2.0.4",
+                                               "minimatch": "3.0.4",
+                                               "once": "1.4.0",
+                                               "path-is-absolute": "1.0.1"
+                                       }
+                               }
+                       }
+               },
+               "cache-base": {
+                       "version": "1.0.1",
+                       "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
+                       "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
+                       "dev": true,
+                       "requires": {
+                               "collection-visit": "1.0.0",
+                               "component-emitter": "1.3.0",
+                               "get-value": "2.0.6",
+                               "has-value": "1.0.0",
+                               "isobject": "3.0.1",
+                               "set-value": "2.0.1",
+                               "to-object-path": "0.3.0",
+                               "union-value": "1.0.1",
+                               "unset-value": "1.0.0"
+                       }
+               },
                "camelcase": {
                        "version": "5.3.1",
                        "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
                        "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=",
                        "dev": true
                },
-               "cliui": {
-                       "version": "5.0.0",
-                       "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
-                       "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
+               "chokidar": {
+                       "version": "2.1.8",
+                       "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz",
+                       "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==",
                        "dev": true,
                        "requires": {
-                               "string-width": "3.1.0",
-                               "strip-ansi": "5.2.0",
-                               "wrap-ansi": "5.1.0"
+                               "anymatch": "2.0.0",
+                               "async-each": "1.0.3",
+                               "braces": "2.3.2",
+                               "fsevents": "1.2.9",
+                               "glob-parent": "3.1.0",
+                               "inherits": "2.0.4",
+                               "is-binary-path": "1.0.1",
+                               "is-glob": "4.0.1",
+                               "normalize-path": "3.0.0",
+                               "path-is-absolute": "1.0.1",
+                               "readdirp": "2.2.1",
+                               "upath": "1.2.0"
                        },
                        "dependencies": {
-                               "ansi-regex": {
+                               "braces": {
+                                       "version": "2.3.2",
+                                       "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+                                       "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+                                       "dev": true,
+                                       "requires": {
+                                               "arr-flatten": "1.1.0",
+                                               "array-unique": "0.3.2",
+                                               "extend-shallow": "2.0.1",
+                                               "fill-range": "4.0.0",
+                                               "isobject": "3.0.1",
+                                               "repeat-element": "1.1.3",
+                                               "snapdragon": "0.8.2",
+                                               "snapdragon-node": "2.1.1",
+                                               "split-string": "3.1.0",
+                                               "to-regex": "3.0.2"
+                                       }
+                               },
+                               "extend-shallow": {
+                                       "version": "2.0.1",
+                                       "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+                                       "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+                                       "dev": true,
+                                       "requires": {
+                                               "is-extendable": "0.1.1"
+                                       }
+                               },
+                               "fill-range": {
+                                       "version": "4.0.0",
+                                       "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+                                       "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
+                                       "dev": true,
+                                       "requires": {
+                                               "extend-shallow": "2.0.1",
+                                               "is-number": "3.0.0",
+                                               "repeat-string": "1.6.1",
+                                               "to-regex-range": "2.1.1"
+                                       }
+                               },
+                               "is-buffer": {
+                                       "version": "1.1.6",
+                                       "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+                                       "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
+                                       "dev": true
+                               },
+                               "is-number": {
+                                       "version": "3.0.0",
+                                       "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+                                       "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+                                       "dev": true,
+                                       "requires": {
+                                               "kind-of": "3.2.2"
+                                       }
+                               },
+                               "kind-of": {
+                                       "version": "3.2.2",
+                                       "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+                                       "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+                                       "dev": true,
+                                       "requires": {
+                                               "is-buffer": "1.1.6"
+                                       }
+                               },
+                               "to-regex-range": {
+                                       "version": "2.1.1",
+                                       "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
+                                       "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
+                                       "dev": true,
+                                       "requires": {
+                                               "is-number": "3.0.0",
+                                               "repeat-string": "1.6.1"
+                                       }
+                               }
+                       }
+               },
+               "chownr": {
+                       "version": "1.1.3",
+                       "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz",
+                       "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==",
+                       "dev": true
+               },
+               "chrome-trace-event": {
+                       "version": "1.0.2",
+                       "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz",
+                       "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==",
+                       "dev": true,
+                       "requires": {
+                               "tslib": "1.10.0"
+                       }
+               },
+               "cipher-base": {
+                       "version": "1.0.4",
+                       "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
+                       "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
+                       "dev": true,
+                       "requires": {
+                               "inherits": "2.0.4",
+                               "safe-buffer": "5.1.2"
+                       }
+               },
+               "class-utils": {
+                       "version": "0.3.6",
+                       "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
+                       "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
+                       "dev": true,
+                       "requires": {
+                               "arr-union": "3.1.0",
+                               "define-property": "0.2.5",
+                               "isobject": "3.0.1",
+                               "static-extend": "0.1.2"
+                       },
+                       "dependencies": {
+                               "define-property": {
+                                       "version": "0.2.5",
+                                       "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+                                       "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+                                       "dev": true,
+                                       "requires": {
+                                               "is-descriptor": "0.1.6"
+                                       }
+                               }
+                       }
+               },
+               "cliui": {
+                       "version": "5.0.0",
+                       "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
+                       "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
+                       "dev": true,
+                       "requires": {
+                               "string-width": "3.1.0",
+                               "strip-ansi": "5.2.0",
+                               "wrap-ansi": "5.1.0"
+                       },
+                       "dependencies": {
+                               "ansi-regex": {
                                        "version": "4.1.0",
                                        "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
                                        "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
                                }
                        }
                },
+               "collection-visit": {
+                       "version": "1.0.0",
+                       "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
+                       "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
+                       "dev": true,
+                       "requires": {
+                               "map-visit": "1.0.0",
+                               "object-visit": "1.0.1"
+                       }
+               },
                "color-convert": {
                        "version": "1.9.3",
                        "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
                        "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
                        "dev": true
                },
+               "commander": {
+                       "version": "2.20.3",
+                       "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+                       "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
+                       "dev": true
+               },
+               "commondir": {
+                       "version": "1.0.1",
+                       "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
+                       "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
+                       "dev": true
+               },
+               "component-emitter": {
+                       "version": "1.3.0",
+                       "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
+                       "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==",
+                       "dev": true
+               },
                "concat-map": {
                        "version": "0.0.1",
                        "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
                        "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
                        "dev": true
                },
+               "concat-stream": {
+                       "version": "1.6.2",
+                       "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
+                       "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
+                       "dev": true,
+                       "requires": {
+                               "buffer-from": "1.1.1",
+                               "inherits": "2.0.4",
+                               "readable-stream": "2.3.6",
+                               "typedarray": "0.0.6"
+                       }
+               },
+               "console-browserify": {
+                       "version": "1.1.0",
+                       "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz",
+                       "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=",
+                       "dev": true,
+                       "requires": {
+                               "date-now": "0.1.4"
+                       }
+               },
+               "constants-browserify": {
+                       "version": "1.0.0",
+                       "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
+                       "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=",
+                       "dev": true
+               },
+               "copy-concurrently": {
+                       "version": "1.0.5",
+                       "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz",
+                       "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==",
+                       "dev": true,
+                       "requires": {
+                               "aproba": "1.2.0",
+                               "fs-write-stream-atomic": "1.0.10",
+                               "iferr": "0.1.5",
+                               "mkdirp": "0.5.1",
+                               "rimraf": "2.7.1",
+                               "run-queue": "1.0.3"
+                       }
+               },
+               "copy-descriptor": {
+                       "version": "0.1.1",
+                       "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
+                       "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
+                       "dev": true
+               },
+               "core-util-is": {
+                       "version": "1.0.2",
+                       "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+                       "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
+                       "dev": true
+               },
+               "create-ecdh": {
+                       "version": "4.0.3",
+                       "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz",
+                       "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==",
+                       "dev": true,
+                       "requires": {
+                               "bn.js": "4.11.8",
+                               "elliptic": "6.5.1"
+                       }
+               },
+               "create-hash": {
+                       "version": "1.2.0",
+                       "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
+                       "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
+                       "dev": true,
+                       "requires": {
+                               "cipher-base": "1.0.4",
+                               "inherits": "2.0.4",
+                               "md5.js": "1.3.5",
+                               "ripemd160": "2.0.2",
+                               "sha.js": "2.4.11"
+                       }
+               },
+               "create-hmac": {
+                       "version": "1.1.7",
+                       "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
+                       "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
+                       "dev": true,
+                       "requires": {
+                               "cipher-base": "1.0.4",
+                               "create-hash": "1.2.0",
+                               "inherits": "2.0.4",
+                               "ripemd160": "2.0.2",
+                               "safe-buffer": "5.1.2",
+                               "sha.js": "2.4.11"
+                       }
+               },
+               "cross-spawn": {
+                       "version": "6.0.5",
+                       "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+                       "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+                       "dev": true,
+                       "requires": {
+                               "nice-try": "1.0.5",
+                               "path-key": "2.0.1",
+                               "semver": "5.7.1",
+                               "shebang-command": "1.2.0",
+                               "which": "1.3.1"
+                       }
+               },
+               "crypto-browserify": {
+                       "version": "3.12.0",
+                       "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz",
+                       "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==",
+                       "dev": true,
+                       "requires": {
+                               "browserify-cipher": "1.0.1",
+                               "browserify-sign": "4.0.4",
+                               "create-ecdh": "4.0.3",
+                               "create-hash": "1.2.0",
+                               "create-hmac": "1.1.7",
+                               "diffie-hellman": "5.0.3",
+                               "inherits": "2.0.4",
+                               "pbkdf2": "3.0.17",
+                               "public-encrypt": "4.0.3",
+                               "randombytes": "2.1.0",
+                               "randomfill": "1.0.4"
+                       }
+               },
                "crypto-js": {
                        "version": "3.1.9-1",
                        "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-3.1.9-1.tgz",
                        "integrity": "sha1-/aGedh/Ad+Af+/3G6f38WeiAbNg="
                },
+               "cyclist": {
+                       "version": "1.0.1",
+                       "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz",
+                       "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=",
+                       "dev": true
+               },
+               "date-now": {
+                       "version": "0.1.4",
+                       "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz",
+                       "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=",
+                       "dev": true
+               },
                "debug": {
                        "version": "3.2.6",
                        "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
                        "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
                        "dev": true
                },
+               "decode-uri-component": {
+                       "version": "0.2.0",
+                       "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
+                       "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
+                       "dev": true
+               },
                "deep-eql": {
                        "version": "3.0.1",
                        "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz",
                                "object-keys": "1.1.1"
                        }
                },
+               "define-property": {
+                       "version": "2.0.2",
+                       "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
+                       "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
+                       "dev": true,
+                       "requires": {
+                               "is-descriptor": "1.0.2",
+                               "isobject": "3.0.1"
+                       },
+                       "dependencies": {
+                               "is-accessor-descriptor": {
+                                       "version": "1.0.0",
+                                       "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+                                       "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+                                       "dev": true,
+                                       "requires": {
+                                               "kind-of": "6.0.2"
+                                       }
+                               },
+                               "is-data-descriptor": {
+                                       "version": "1.0.0",
+                                       "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+                                       "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+                                       "dev": true,
+                                       "requires": {
+                                               "kind-of": "6.0.2"
+                                       }
+                               },
+                               "is-descriptor": {
+                                       "version": "1.0.2",
+                                       "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+                                       "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+                                       "dev": true,
+                                       "requires": {
+                                               "is-accessor-descriptor": "1.0.0",
+                                               "is-data-descriptor": "1.0.0",
+                                               "kind-of": "6.0.2"
+                                       }
+                               }
+                       }
+               },
+               "des.js": {
+                       "version": "1.0.0",
+                       "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz",
+                       "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=",
+                       "dev": true,
+                       "requires": {
+                               "inherits": "2.0.4",
+                               "minimalistic-assert": "1.0.1"
+                       }
+               },
+               "detect-file": {
+                       "version": "1.0.0",
+                       "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz",
+                       "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=",
+                       "dev": true
+               },
                "diff": {
                        "version": "3.5.0",
                        "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
                        "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
                        "dev": true
                },
+               "diffie-hellman": {
+                       "version": "5.0.3",
+                       "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
+                       "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==",
+                       "dev": true,
+                       "requires": {
+                               "bn.js": "4.11.8",
+                               "miller-rabin": "4.0.1",
+                               "randombytes": "2.1.0"
+                       }
+               },
+               "domain-browser": {
+                       "version": "1.2.0",
+                       "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz",
+                       "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==",
+                       "dev": true
+               },
+               "duplexify": {
+                       "version": "3.7.1",
+                       "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz",
+                       "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==",
+                       "dev": true,
+                       "requires": {
+                               "end-of-stream": "1.4.4",
+                               "inherits": "2.0.4",
+                               "readable-stream": "2.3.6",
+                               "stream-shift": "1.0.0"
+                       }
+               },
+               "elliptic": {
+                       "version": "6.5.1",
+                       "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.1.tgz",
+                       "integrity": "sha512-xvJINNLbTeWQjrl6X+7eQCrIy/YPv5XCpKW6kB5mKvtnGILoLDcySuwomfdzt0BMdLNVnuRNTuzKNHj0bva1Cg==",
+                       "dev": true,
+                       "requires": {
+                               "bn.js": "4.11.8",
+                               "brorand": "1.1.0",
+                               "hash.js": "1.1.7",
+                               "hmac-drbg": "1.0.1",
+                               "inherits": "2.0.4",
+                               "minimalistic-assert": "1.0.1",
+                               "minimalistic-crypto-utils": "1.0.1"
+                       }
+               },
                "emoji-regex": {
                        "version": "7.0.3",
                        "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
                        "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
                        "dev": true
                },
+               "emojis-list": {
+                       "version": "2.1.0",
+                       "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
+                       "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=",
+                       "dev": true
+               },
+               "end-of-stream": {
+                       "version": "1.4.4",
+                       "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+                       "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+                       "dev": true,
+                       "requires": {
+                               "once": "1.4.0"
+                       }
+               },
+               "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==",
+                       "dev": true,
+                       "requires": {
+                               "graceful-fs": "4.2.2",
+                               "memory-fs": "0.5.0",
+                               "tapable": "1.1.3"
+                       }
+               },
+               "errno": {
+                       "version": "0.1.7",
+                       "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz",
+                       "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==",
+                       "dev": true,
+                       "requires": {
+                               "prr": "1.0.1"
+                       }
+               },
                "es-abstract": {
                        "version": "1.15.0",
                        "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.15.0.tgz",
                        "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
                        "dev": true
                },
+               "eslint-scope": {
+                       "version": "4.0.3",
+                       "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz",
+                       "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==",
+                       "dev": true,
+                       "requires": {
+                               "esrecurse": "4.2.1",
+                               "estraverse": "4.3.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==",
                        "dev": true
                },
-               "find-up": {
-                       "version": "3.0.0",
-                       "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
-                       "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
-                       "dev": true,
-                       "requires": {
-                               "locate-path": "3.0.0"
-                       }
-               },
-               "flat": {
-                       "version": "4.1.0",
-                       "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz",
-                       "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==",
+               "esrecurse": {
+                       "version": "4.2.1",
+                       "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz",
+                       "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==",
                        "dev": true,
                        "requires": {
-                               "is-buffer": "2.0.4"
+                               "estraverse": "4.3.0"
                        }
                },
-               "fs.realpath": {
-                       "version": "1.0.0",
-                       "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
-                       "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
-                       "dev": true
-               },
-               "function-bind": {
-                       "version": "1.1.1",
-                       "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
-                       "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
-                       "dev": true
-               },
-               "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==",
+               "estraverse": {
+                       "version": "4.3.0",
+                       "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+                       "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
                        "dev": true
                },
-               "get-func-name": {
-                       "version": "2.0.0",
-                       "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz",
-                       "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=",
+               "events": {
+                       "version": "3.0.0",
+                       "resolved": "https://registry.npmjs.org/events/-/events-3.0.0.tgz",
+                       "integrity": "sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA==",
                        "dev": true
                },
-               "glob": {
-                       "version": "7.1.3",
-                       "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
-                       "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
+               "evp_bytestokey": {
+                       "version": "1.0.3",
+                       "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
+                       "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
                        "dev": true,
                        "requires": {
-                               "fs.realpath": "1.0.0",
-                               "inflight": "1.0.6",
-                               "inherits": "2.0.4",
-                               "minimatch": "3.0.4",
-                               "once": "1.4.0",
-                               "path-is-absolute": "1.0.1"
+                               "md5.js": "1.3.5",
+                               "safe-buffer": "5.1.2"
                        }
                },
-               "growl": {
-                       "version": "1.10.5",
-                       "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz",
-                       "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==",
-                       "dev": true
-               },
-               "has": {
-                       "version": "1.0.3",
-                       "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
-                       "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+               "execa": {
+                       "version": "1.0.0",
+                       "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
+                       "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
                        "dev": true,
                        "requires": {
-                               "function-bind": "1.1.1"
+                               "cross-spawn": "6.0.5",
+                               "get-stream": "4.1.0",
+                               "is-stream": "1.1.0",
+                               "npm-run-path": "2.0.2",
+                               "p-finally": "1.0.0",
+                               "signal-exit": "3.0.2",
+                               "strip-eof": "1.0.0"
                        }
                },
-               "has-flag": {
-                       "version": "3.0.0",
-                       "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
-                       "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+               "expand-brackets": {
+                       "version": "2.1.4",
+                       "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
+                       "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
+                       "dev": true,
+                       "requires": {
+                               "debug": "2.6.9",
+                               "define-property": "0.2.5",
+                               "extend-shallow": "2.0.1",
+                               "posix-character-classes": "0.1.1",
+                               "regex-not": "1.0.2",
+                               "snapdragon": "0.8.2",
+                               "to-regex": "3.0.2"
+                       },
+                       "dependencies": {
+                               "debug": {
+                                       "version": "2.6.9",
+                                       "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+                                       "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+                                       "dev": true,
+                                       "requires": {
+                                               "ms": "2.0.0"
+                                       }
+                               },
+                               "define-property": {
+                                       "version": "0.2.5",
+                                       "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+                                       "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+                                       "dev": true,
+                                       "requires": {
+                                               "is-descriptor": "0.1.6"
+                                       }
+                               },
+                               "extend-shallow": {
+                                       "version": "2.0.1",
+                                       "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+                                       "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+                                       "dev": true,
+                                       "requires": {
+                                               "is-extendable": "0.1.1"
+                                       }
+                               },
+                               "ms": {
+                                       "version": "2.0.0",
+                                       "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+                                       "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+                                       "dev": true
+                               }
+                       }
+               },
+               "expand-tilde": {
+                       "version": "2.0.2",
+                       "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz",
+                       "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=",
+                       "dev": true,
+                       "requires": {
+                               "homedir-polyfill": "1.0.3"
+                       }
+               },
+               "extend-shallow": {
+                       "version": "3.0.2",
+                       "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+                       "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
+                       "dev": true,
+                       "requires": {
+                               "assign-symbols": "1.0.0",
+                               "is-extendable": "1.0.1"
+                       },
+                       "dependencies": {
+                               "is-extendable": {
+                                       "version": "1.0.1",
+                                       "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+                                       "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+                                       "dev": true,
+                                       "requires": {
+                                               "is-plain-object": "2.0.4"
+                                       }
+                               }
+                       }
+               },
+               "extglob": {
+                       "version": "2.0.4",
+                       "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
+                       "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
+                       "dev": true,
+                       "requires": {
+                               "array-unique": "0.3.2",
+                               "define-property": "1.0.0",
+                               "expand-brackets": "2.1.4",
+                               "extend-shallow": "2.0.1",
+                               "fragment-cache": "0.2.1",
+                               "regex-not": "1.0.2",
+                               "snapdragon": "0.8.2",
+                               "to-regex": "3.0.2"
+                       },
+                       "dependencies": {
+                               "define-property": {
+                                       "version": "1.0.0",
+                                       "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+                                       "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+                                       "dev": true,
+                                       "requires": {
+                                               "is-descriptor": "1.0.2"
+                                       }
+                               },
+                               "extend-shallow": {
+                                       "version": "2.0.1",
+                                       "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+                                       "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+                                       "dev": true,
+                                       "requires": {
+                                               "is-extendable": "0.1.1"
+                                       }
+                               },
+                               "is-accessor-descriptor": {
+                                       "version": "1.0.0",
+                                       "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+                                       "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+                                       "dev": true,
+                                       "requires": {
+                                               "kind-of": "6.0.2"
+                                       }
+                               },
+                               "is-data-descriptor": {
+                                       "version": "1.0.0",
+                                       "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+                                       "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+                                       "dev": true,
+                                       "requires": {
+                                               "kind-of": "6.0.2"
+                                       }
+                               },
+                               "is-descriptor": {
+                                       "version": "1.0.2",
+                                       "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+                                       "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+                                       "dev": true,
+                                       "requires": {
+                                               "is-accessor-descriptor": "1.0.0",
+                                               "is-data-descriptor": "1.0.0",
+                                               "kind-of": "6.0.2"
+                                       }
+                               }
+                       }
+               },
+               "fast-deep-equal": {
+                       "version": "2.0.1",
+                       "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
+                       "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
+                       "dev": true
+               },
+               "fast-json-stable-stringify": {
+                       "version": "2.0.0",
+                       "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
+                       "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
+                       "dev": true
+               },
+               "figgy-pudding": {
+                       "version": "3.5.1",
+                       "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz",
+                       "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==",
+                       "dev": true
+               },
+               "fill-range": {
+                       "version": "7.0.1",
+                       "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+                       "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+                       "dev": true,
+                       "requires": {
+                               "to-regex-range": "5.0.1"
+                       }
+               },
+               "find-cache-dir": {
+                       "version": "2.1.0",
+                       "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz",
+                       "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==",
+                       "dev": true,
+                       "requires": {
+                               "commondir": "1.0.1",
+                               "make-dir": "2.1.0",
+                               "pkg-dir": "3.0.0"
+                       }
+               },
+               "find-up": {
+                       "version": "3.0.0",
+                       "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+                       "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+                       "dev": true,
+                       "requires": {
+                               "locate-path": "3.0.0"
+                       }
+               },
+               "findup-sync": {
+                       "version": "3.0.0",
+                       "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz",
+                       "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==",
+                       "dev": true,
+                       "requires": {
+                               "detect-file": "1.0.0",
+                               "is-glob": "4.0.1",
+                               "micromatch": "3.1.10",
+                               "resolve-dir": "1.0.1"
+                       },
+                       "dependencies": {
+                               "braces": {
+                                       "version": "2.3.2",
+                                       "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+                                       "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+                                       "dev": true,
+                                       "requires": {
+                                               "arr-flatten": "1.1.0",
+                                               "array-unique": "0.3.2",
+                                               "extend-shallow": "2.0.1",
+                                               "fill-range": "4.0.0",
+                                               "isobject": "3.0.1",
+                                               "repeat-element": "1.1.3",
+                                               "snapdragon": "0.8.2",
+                                               "snapdragon-node": "2.1.1",
+                                               "split-string": "3.1.0",
+                                               "to-regex": "3.0.2"
+                                       },
+                                       "dependencies": {
+                                               "extend-shallow": {
+                                                       "version": "2.0.1",
+                                                       "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+                                                       "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+                                                       "dev": true,
+                                                       "requires": {
+                                                               "is-extendable": "0.1.1"
+                                                       }
+                                               }
+                                       }
+                               },
+                               "fill-range": {
+                                       "version": "4.0.0",
+                                       "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+                                       "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
+                                       "dev": true,
+                                       "requires": {
+                                               "extend-shallow": "2.0.1",
+                                               "is-number": "3.0.0",
+                                               "repeat-string": "1.6.1",
+                                               "to-regex-range": "2.1.1"
+                                       },
+                                       "dependencies": {
+                                               "extend-shallow": {
+                                                       "version": "2.0.1",
+                                                       "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+                                                       "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+                                                       "dev": true,
+                                                       "requires": {
+                                                               "is-extendable": "0.1.1"
+                                                       }
+                                               }
+                                       }
+                               },
+                               "is-buffer": {
+                                       "version": "1.1.6",
+                                       "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+                                       "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
+                                       "dev": true
+                               },
+                               "is-number": {
+                                       "version": "3.0.0",
+                                       "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+                                       "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+                                       "dev": true,
+                                       "requires": {
+                                               "kind-of": "3.2.2"
+                                       },
+                                       "dependencies": {
+                                               "kind-of": {
+                                                       "version": "3.2.2",
+                                                       "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+                                                       "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+                                                       "dev": true,
+                                                       "requires": {
+                                                               "is-buffer": "1.1.6"
+                                                       }
+                                               }
+                                       }
+                               },
+                               "micromatch": {
+                                       "version": "3.1.10",
+                                       "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+                                       "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+                                       "dev": true,
+                                       "requires": {
+                                               "arr-diff": "4.0.0",
+                                               "array-unique": "0.3.2",
+                                               "braces": "2.3.2",
+                                               "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.13",
+                                               "object.pick": "1.3.0",
+                                               "regex-not": "1.0.2",
+                                               "snapdragon": "0.8.2",
+                                               "to-regex": "3.0.2"
+                                       }
+                               },
+                               "to-regex-range": {
+                                       "version": "2.1.1",
+                                       "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
+                                       "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
+                                       "dev": true,
+                                       "requires": {
+                                               "is-number": "3.0.0",
+                                               "repeat-string": "1.6.1"
+                                       }
+                               }
+                       }
+               },
+               "flat": {
+                       "version": "4.1.0",
+                       "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz",
+                       "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==",
+                       "dev": true,
+                       "requires": {
+                               "is-buffer": "2.0.4"
+                       }
+               },
+               "flush-write-stream": {
+                       "version": "1.1.1",
+                       "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz",
+                       "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==",
+                       "dev": true,
+                       "requires": {
+                               "inherits": "2.0.4",
+                               "readable-stream": "2.3.6"
+                       }
+               },
+               "for-in": {
+                       "version": "1.0.2",
+                       "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
+                       "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
+                       "dev": true
+               },
+               "fragment-cache": {
+                       "version": "0.2.1",
+                       "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
+                       "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
+                       "dev": true,
+                       "requires": {
+                               "map-cache": "0.2.2"
+                       }
+               },
+               "from2": {
+                       "version": "2.3.0",
+                       "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz",
+                       "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=",
+                       "dev": true,
+                       "requires": {
+                               "inherits": "2.0.4",
+                               "readable-stream": "2.3.6"
+                       }
+               },
+               "fs-write-stream-atomic": {
+                       "version": "1.0.10",
+                       "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz",
+                       "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=",
+                       "dev": true,
+                       "requires": {
+                               "graceful-fs": "4.2.2",
+                               "iferr": "0.1.5",
+                               "imurmurhash": "0.1.4",
+                               "readable-stream": "2.3.6"
+                       }
+               },
+               "fs.realpath": {
+                       "version": "1.0.0",
+                       "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+                       "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
+                       "dev": true
+               },
+               "fsevents": {
+                       "version": "1.2.9",
+                       "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz",
+                       "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==",
+                       "dev": true,
+                       "optional": true,
+                       "requires": {
+                               "nan": "2.14.0",
+                               "node-pre-gyp": "0.12.0"
+                       },
+                       "dependencies": {
+                               "abbrev": {
+                                       "version": "1.1.1",
+                                       "bundled": true,
+                                       "dev": true,
+                                       "optional": true
+                               },
+                               "ansi-regex": {
+                                       "version": "2.1.1",
+                                       "bundled": true,
+                                       "dev": true
+                               },
+                               "aproba": {
+                                       "version": "1.2.0",
+                                       "bundled": true,
+                                       "dev": true,
+                                       "optional": true
+                               },
+                               "are-we-there-yet": {
+                                       "version": "1.1.5",
+                                       "bundled": true,
+                                       "dev": true,
+                                       "optional": true,
+                                       "requires": {
+                                               "delegates": "1.0.0",
+                                               "readable-stream": "2.3.6"
+                                       }
+                               },
+                               "balanced-match": {
+                                       "version": "1.0.0",
+                                       "bundled": true,
+                                       "dev": true
+                               },
+                               "brace-expansion": {
+                                       "version": "1.1.11",
+                                       "bundled": true,
+                                       "dev": true,
+                                       "requires": {
+                                               "balanced-match": "1.0.0",
+                                               "concat-map": "0.0.1"
+                                       }
+                               },
+                               "chownr": {
+                                       "version": "1.1.1",
+                                       "bundled": true,
+                                       "dev": true,
+                                       "optional": true
+                               },
+                               "code-point-at": {
+                                       "version": "1.1.0",
+                                       "bundled": true,
+                                       "dev": true
+                               },
+                               "concat-map": {
+                                       "version": "0.0.1",
+                                       "bundled": true,
+                                       "dev": true
+                               },
+                               "console-control-strings": {
+                                       "version": "1.1.0",
+                                       "bundled": true,
+                                       "dev": true
+                               },
+                               "core-util-is": {
+                                       "version": "1.0.2",
+                                       "bundled": true,
+                                       "dev": true,
+                                       "optional": true
+                               },
+                               "debug": {
+                                       "version": "4.1.1",
+                                       "bundled": true,
+                                       "dev": true,
+                                       "optional": true,
+                                       "requires": {
+                                               "ms": "2.1.1"
+                                       }
+                               },
+                               "deep-extend": {
+                                       "version": "0.6.0",
+                                       "bundled": true,
+                                       "dev": true,
+                                       "optional": true
+                               },
+                               "delegates": {
+                                       "version": "1.0.0",
+                                       "bundled": true,
+                                       "dev": true,
+                                       "optional": true
+                               },
+                               "detect-libc": {
+                                       "version": "1.0.3",
+                                       "bundled": true,
+                                       "dev": true,
+                                       "optional": true
+                               },
+                               "fs-minipass": {
+                                       "version": "1.2.5",
+                                       "bundled": true,
+                                       "dev": true,
+                                       "optional": true,
+                                       "requires": {
+                                               "minipass": "2.3.5"
+                                       }
+                               },
+                               "fs.realpath": {
+                                       "version": "1.0.0",
+                                       "bundled": true,
+                                       "dev": true,
+                                       "optional": true
+                               },
+                               "gauge": {
+                                       "version": "2.7.4",
+                                       "bundled": true,
+                                       "dev": true,
+                                       "optional": true,
+                                       "requires": {
+                                               "aproba": "1.2.0",
+                                               "console-control-strings": "1.1.0",
+                                               "has-unicode": "2.0.1",
+                                               "object-assign": "4.1.1",
+                                               "signal-exit": "3.0.2",
+                                               "string-width": "1.0.2",
+                                               "strip-ansi": "3.0.1",
+                                               "wide-align": "1.1.3"
+                                       }
+                               },
+                               "glob": {
+                                       "version": "7.1.3",
+                                       "bundled": true,
+                                       "dev": true,
+                                       "optional": true,
+                                       "requires": {
+                                               "fs.realpath": "1.0.0",
+                                               "inflight": "1.0.6",
+                                               "inherits": "2.0.3",
+                                               "minimatch": "3.0.4",
+                                               "once": "1.4.0",
+                                               "path-is-absolute": "1.0.1"
+                                       }
+                               },
+                               "has-unicode": {
+                                       "version": "2.0.1",
+                                       "bundled": true,
+                                       "dev": true,
+                                       "optional": true
+                               },
+                               "iconv-lite": {
+                                       "version": "0.4.24",
+                                       "bundled": true,
+                                       "dev": true,
+                                       "optional": true,
+                                       "requires": {
+                                               "safer-buffer": "2.1.2"
+                                       }
+                               },
+                               "ignore-walk": {
+                                       "version": "3.0.1",
+                                       "bundled": true,
+                                       "dev": true,
+                                       "optional": true,
+                                       "requires": {
+                                               "minimatch": "3.0.4"
+                                       }
+                               },
+                               "inflight": {
+                                       "version": "1.0.6",
+                                       "bundled": true,
+                                       "dev": true,
+                                       "optional": true,
+                                       "requires": {
+                                               "once": "1.4.0",
+                                               "wrappy": "1.0.2"
+                                       }
+                               },
+                               "inherits": {
+                                       "version": "2.0.3",
+                                       "bundled": true,
+                                       "dev": true
+                               },
+                               "ini": {
+                                       "version": "1.3.5",
+                                       "bundled": true,
+                                       "dev": true,
+                                       "optional": true
+                               },
+                               "is-fullwidth-code-point": {
+                                       "version": "1.0.0",
+                                       "bundled": true,
+                                       "dev": true,
+                                       "requires": {
+                                               "number-is-nan": "1.0.1"
+                                       }
+                               },
+                               "isarray": {
+                                       "version": "1.0.0",
+                                       "bundled": true,
+                                       "dev": true,
+                                       "optional": true
+                               },
+                               "minimatch": {
+                                       "version": "3.0.4",
+                                       "bundled": true,
+                                       "dev": true,
+                                       "requires": {
+                                               "brace-expansion": "1.1.11"
+                                       }
+                               },
+                               "minimist": {
+                                       "version": "0.0.8",
+                                       "bundled": true,
+                                       "dev": true
+                               },
+                               "minipass": {
+                                       "version": "2.3.5",
+                                       "bundled": true,
+                                       "dev": true,
+                                       "requires": {
+                                               "safe-buffer": "5.1.2",
+                                               "yallist": "3.0.3"
+                                       }
+                               },
+                               "minizlib": {
+                                       "version": "1.2.1",
+                                       "bundled": true,
+                                       "dev": true,
+                                       "optional": true,
+                                       "requires": {
+                                               "minipass": "2.3.5"
+                                       }
+                               },
+                               "mkdirp": {
+                                       "version": "0.5.1",
+                                       "bundled": true,
+                                       "dev": true,
+                                       "requires": {
+                                               "minimist": "0.0.8"
+                                       }
+                               },
+                               "ms": {
+                                       "version": "2.1.1",
+                                       "bundled": true,
+                                       "dev": true,
+                                       "optional": true
+                               },
+                               "needle": {
+                                       "version": "2.3.0",
+                                       "bundled": true,
+                                       "dev": true,
+                                       "optional": true,
+                                       "requires": {
+                                               "debug": "4.1.1",
+                                               "iconv-lite": "0.4.24",
+                                               "sax": "1.2.4"
+                                       }
+                               },
+                               "node-pre-gyp": {
+                                       "version": "0.12.0",
+                                       "bundled": true,
+                                       "dev": true,
+                                       "optional": true,
+                                       "requires": {
+                                               "detect-libc": "1.0.3",
+                                               "mkdirp": "0.5.1",
+                                               "needle": "2.3.0",
+                                               "nopt": "4.0.1",
+                                               "npm-packlist": "1.4.1",
+                                               "npmlog": "4.1.2",
+                                               "rc": "1.2.8",
+                                               "rimraf": "2.6.3",
+                                               "semver": "5.7.0",
+                                               "tar": "4.4.8"
+                                       }
+                               },
+                               "nopt": {
+                                       "version": "4.0.1",
+                                       "bundled": true,
+                                       "dev": true,
+                                       "optional": true,
+                                       "requires": {
+                                               "abbrev": "1.1.1",
+                                               "osenv": "0.1.5"
+                                       }
+                               },
+                               "npm-bundled": {
+                                       "version": "1.0.6",
+                                       "bundled": true,
+                                       "dev": true,
+                                       "optional": true
+                               },
+                               "npm-packlist": {
+                                       "version": "1.4.1",
+                                       "bundled": true,
+                                       "dev": true,
+                                       "optional": true,
+                                       "requires": {
+                                               "ignore-walk": "3.0.1",
+                                               "npm-bundled": "1.0.6"
+                                       }
+                               },
+                               "npmlog": {
+                                       "version": "4.1.2",
+                                       "bundled": true,
+                                       "dev": true,
+                                       "optional": true,
+                                       "requires": {
+                                               "are-we-there-yet": "1.1.5",
+                                               "console-control-strings": "1.1.0",
+                                               "gauge": "2.7.4",
+                                               "set-blocking": "2.0.0"
+                                       }
+                               },
+                               "number-is-nan": {
+                                       "version": "1.0.1",
+                                       "bundled": true,
+                                       "dev": true
+                               },
+                               "object-assign": {
+                                       "version": "4.1.1",
+                                       "bundled": true,
+                                       "dev": true,
+                                       "optional": true
+                               },
+                               "once": {
+                                       "version": "1.4.0",
+                                       "bundled": true,
+                                       "dev": true,
+                                       "requires": {
+                                               "wrappy": "1.0.2"
+                                       }
+                               },
+                               "os-homedir": {
+                                       "version": "1.0.2",
+                                       "bundled": true,
+                                       "dev": true,
+                                       "optional": true
+                               },
+                               "os-tmpdir": {
+                                       "version": "1.0.2",
+                                       "bundled": true,
+                                       "dev": true,
+                                       "optional": true
+                               },
+                               "osenv": {
+                                       "version": "0.1.5",
+                                       "bundled": true,
+                                       "dev": true,
+                                       "optional": true,
+                                       "requires": {
+                                               "os-homedir": "1.0.2",
+                                               "os-tmpdir": "1.0.2"
+                                       }
+                               },
+                               "path-is-absolute": {
+                                       "version": "1.0.1",
+                                       "bundled": true,
+                                       "dev": true,
+                                       "optional": true
+                               },
+                               "process-nextick-args": {
+                                       "version": "2.0.0",
+                                       "bundled": true,
+                                       "dev": true,
+                                       "optional": true
+                               },
+                               "rc": {
+                                       "version": "1.2.8",
+                                       "bundled": true,
+                                       "dev": true,
+                                       "optional": true,
+                                       "requires": {
+                                               "deep-extend": "0.6.0",
+                                               "ini": "1.3.5",
+                                               "minimist": "1.2.0",
+                                               "strip-json-comments": "2.0.1"
+                                       },
+                                       "dependencies": {
+                                               "minimist": {
+                                                       "version": "1.2.0",
+                                                       "bundled": true,
+                                                       "dev": true,
+                                                       "optional": true
+                                               }
+                                       }
+                               },
+                               "readable-stream": {
+                                       "version": "2.3.6",
+                                       "bundled": true,
+                                       "dev": true,
+                                       "optional": true,
+                                       "requires": {
+                                               "core-util-is": "1.0.2",
+                                               "inherits": "2.0.3",
+                                               "isarray": "1.0.0",
+                                               "process-nextick-args": "2.0.0",
+                                               "safe-buffer": "5.1.2",
+                                               "string_decoder": "1.1.1",
+                                               "util-deprecate": "1.0.2"
+                                       }
+                               },
+                               "rimraf": {
+                                       "version": "2.6.3",
+                                       "bundled": true,
+                                       "dev": true,
+                                       "optional": true,
+                                       "requires": {
+                                               "glob": "7.1.3"
+                                       }
+                               },
+                               "safe-buffer": {
+                                       "version": "5.1.2",
+                                       "bundled": true,
+                                       "dev": true
+                               },
+                               "safer-buffer": {
+                                       "version": "2.1.2",
+                                       "bundled": true,
+                                       "dev": true,
+                                       "optional": true
+                               },
+                               "sax": {
+                                       "version": "1.2.4",
+                                       "bundled": true,
+                                       "dev": true,
+                                       "optional": true
+                               },
+                               "semver": {
+                                       "version": "5.7.0",
+                                       "bundled": true,
+                                       "dev": true,
+                                       "optional": true
+                               },
+                               "set-blocking": {
+                                       "version": "2.0.0",
+                                       "bundled": true,
+                                       "dev": true,
+                                       "optional": true
+                               },
+                               "signal-exit": {
+                                       "version": "3.0.2",
+                                       "bundled": true,
+                                       "dev": true,
+                                       "optional": true
+                               },
+                               "string-width": {
+                                       "version": "1.0.2",
+                                       "bundled": true,
+                                       "dev": true,
+                                       "requires": {
+                                               "code-point-at": "1.1.0",
+                                               "is-fullwidth-code-point": "1.0.0",
+                                               "strip-ansi": "3.0.1"
+                                       }
+                               },
+                               "string_decoder": {
+                                       "version": "1.1.1",
+                                       "bundled": true,
+                                       "dev": true,
+                                       "optional": true,
+                                       "requires": {
+                                               "safe-buffer": "5.1.2"
+                                       }
+                               },
+                               "strip-ansi": {
+                                       "version": "3.0.1",
+                                       "bundled": true,
+                                       "dev": true,
+                                       "requires": {
+                                               "ansi-regex": "2.1.1"
+                                       }
+                               },
+                               "strip-json-comments": {
+                                       "version": "2.0.1",
+                                       "bundled": true,
+                                       "dev": true,
+                                       "optional": true
+                               },
+                               "tar": {
+                                       "version": "4.4.8",
+                                       "bundled": true,
+                                       "dev": true,
+                                       "optional": true,
+                                       "requires": {
+                                               "chownr": "1.1.1",
+                                               "fs-minipass": "1.2.5",
+                                               "minipass": "2.3.5",
+                                               "minizlib": "1.2.1",
+                                               "mkdirp": "0.5.1",
+                                               "safe-buffer": "5.1.2",
+                                               "yallist": "3.0.3"
+                                       }
+                               },
+                               "util-deprecate": {
+                                       "version": "1.0.2",
+                                       "bundled": true,
+                                       "dev": true,
+                                       "optional": true
+                               },
+                               "wide-align": {
+                                       "version": "1.1.3",
+                                       "bundled": true,
+                                       "dev": true,
+                                       "optional": true,
+                                       "requires": {
+                                               "string-width": "1.0.2"
+                                       }
+                               },
+                               "wrappy": {
+                                       "version": "1.0.2",
+                                       "bundled": true,
+                                       "dev": true
+                               },
+                               "yallist": {
+                                       "version": "3.0.3",
+                                       "bundled": true,
+                                       "dev": true
+                               }
+                       }
+               },
+               "function-bind": {
+                       "version": "1.1.1",
+                       "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+                       "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
+                       "dev": true
+               },
+               "get-caller-file": {
+                       "version": "2.0.5",
+                       "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+                       "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+                       "dev": true
+               },
+               "get-func-name": {
+                       "version": "2.0.0",
+                       "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz",
+                       "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=",
+                       "dev": true
+               },
+               "get-stream": {
+                       "version": "4.1.0",
+                       "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+                       "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+                       "dev": true,
+                       "requires": {
+                               "pump": "3.0.0"
+                       }
+               },
+               "get-value": {
+                       "version": "2.0.6",
+                       "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
+                       "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=",
+                       "dev": true
+               },
+               "glob": {
+                       "version": "7.1.3",
+                       "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
+                       "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
+                       "dev": true,
+                       "requires": {
+                               "fs.realpath": "1.0.0",
+                               "inflight": "1.0.6",
+                               "inherits": "2.0.4",
+                               "minimatch": "3.0.4",
+                               "once": "1.4.0",
+                               "path-is-absolute": "1.0.1"
+                       }
+               },
+               "glob-parent": {
+                       "version": "3.1.0",
+                       "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
+                       "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
+                       "dev": true,
+                       "requires": {
+                               "is-glob": "3.1.0",
+                               "path-dirname": "1.0.2"
+                       },
+                       "dependencies": {
+                               "is-glob": {
+                                       "version": "3.1.0",
+                                       "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
+                                       "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
+                                       "dev": true,
+                                       "requires": {
+                                               "is-extglob": "2.1.1"
+                                       }
+                               }
+                       }
+               },
+               "global-modules": {
+                       "version": "2.0.0",
+                       "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz",
+                       "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==",
+                       "dev": true,
+                       "requires": {
+                               "global-prefix": "3.0.0"
+                       },
+                       "dependencies": {
+                               "global-prefix": {
+                                       "version": "3.0.0",
+                                       "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz",
+                                       "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==",
+                                       "dev": true,
+                                       "requires": {
+                                               "ini": "1.3.5",
+                                               "kind-of": "6.0.2",
+                                               "which": "1.3.1"
+                                       }
+                               }
+                       }
+               },
+               "global-prefix": {
+                       "version": "1.0.2",
+                       "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz",
+                       "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=",
+                       "dev": true,
+                       "requires": {
+                               "expand-tilde": "2.0.2",
+                               "homedir-polyfill": "1.0.3",
+                               "ini": "1.3.5",
+                               "is-windows": "1.0.2",
+                               "which": "1.3.1"
+                       }
+               },
+               "graceful-fs": {
+                       "version": "4.2.2",
+                       "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz",
+                       "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==",
+                       "dev": true
+               },
+               "growl": {
+                       "version": "1.10.5",
+                       "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz",
+                       "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==",
+                       "dev": true
+               },
+               "has": {
+                       "version": "1.0.3",
+                       "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+                       "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+                       "dev": true,
+                       "requires": {
+                               "function-bind": "1.1.1"
+                       }
+               },
+               "has-flag": {
+                       "version": "3.0.0",
+                       "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+                       "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+                       "dev": true
+               },
+               "has-symbols": {
+                       "version": "1.0.0",
+                       "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz",
+                       "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=",
+                       "dev": true
+               },
+               "has-value": {
+                       "version": "1.0.0",
+                       "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
+                       "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
+                       "dev": true,
+                       "requires": {
+                               "get-value": "2.0.6",
+                               "has-values": "1.0.0",
+                               "isobject": "3.0.1"
+                       }
+               },
+               "has-values": {
+                       "version": "1.0.0",
+                       "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
+                       "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
+                       "dev": true,
+                       "requires": {
+                               "is-number": "3.0.0",
+                               "kind-of": "4.0.0"
+                       },
+                       "dependencies": {
+                               "is-buffer": {
+                                       "version": "1.1.6",
+                                       "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+                                       "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
+                                       "dev": true
+                               },
+                               "is-number": {
+                                       "version": "3.0.0",
+                                       "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+                                       "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+                                       "dev": true,
+                                       "requires": {
+                                               "kind-of": "3.2.2"
+                                       },
+                                       "dependencies": {
+                                               "kind-of": {
+                                                       "version": "3.2.2",
+                                                       "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+                                                       "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+                                                       "dev": true,
+                                                       "requires": {
+                                                               "is-buffer": "1.1.6"
+                                                       }
+                                               }
+                                       }
+                               },
+                               "kind-of": {
+                                       "version": "4.0.0",
+                                       "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
+                                       "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
+                                       "dev": true,
+                                       "requires": {
+                                               "is-buffer": "1.1.6"
+                                       }
+                               }
+                       }
+               },
+               "hash-base": {
+                       "version": "3.0.4",
+                       "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz",
+                       "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=",
+                       "dev": true,
+                       "requires": {
+                               "inherits": "2.0.4",
+                               "safe-buffer": "5.1.2"
+                       }
+               },
+               "hash.js": {
+                       "version": "1.1.7",
+                       "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
+                       "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
+                       "dev": true,
+                       "requires": {
+                               "inherits": "2.0.4",
+                               "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==",
+                       "dev": true
+               },
+               "hmac-drbg": {
+                       "version": "1.0.1",
+                       "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
+                       "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=",
+                       "dev": true,
+                       "requires": {
+                               "hash.js": "1.1.7",
+                               "minimalistic-assert": "1.0.1",
+                               "minimalistic-crypto-utils": "1.0.1"
+                       }
+               },
+               "homedir-polyfill": {
+                       "version": "1.0.3",
+                       "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz",
+                       "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==",
+                       "dev": true,
+                       "requires": {
+                               "parse-passwd": "1.0.0"
+                       }
+               },
+               "https-browserify": {
+                       "version": "1.0.0",
+                       "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
+                       "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=",
+                       "dev": true
+               },
+               "ieee754": {
+                       "version": "1.1.13",
+                       "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz",
+                       "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==",
+                       "dev": true
+               },
+               "iferr": {
+                       "version": "0.1.5",
+                       "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz",
+                       "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=",
+                       "dev": true
+               },
+               "import-local": {
+                       "version": "2.0.0",
+                       "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz",
+                       "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==",
+                       "dev": true,
+                       "requires": {
+                               "pkg-dir": "3.0.0",
+                               "resolve-cwd": "2.0.0"
+                       }
+               },
+               "imurmurhash": {
+                       "version": "0.1.4",
+                       "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+                       "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
+                       "dev": true
+               },
+               "infer-owner": {
+                       "version": "1.0.4",
+                       "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz",
+                       "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==",
+                       "dev": true
+               },
+               "inflight": {
+                       "version": "1.0.6",
+                       "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+                       "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+                       "dev": true,
+                       "requires": {
+                               "once": "1.4.0",
+                               "wrappy": "1.0.2"
+                       }
+               },
+               "inherits": {
+                       "version": "2.0.4",
+                       "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+                       "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+                       "dev": true
+               },
+               "ini": {
+                       "version": "1.3.5",
+                       "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
+                       "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
+                       "dev": true
+               },
+               "interpret": {
+                       "version": "1.2.0",
+                       "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz",
+                       "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==",
+                       "dev": true
+               },
+               "invert-kv": {
+                       "version": "2.0.0",
+                       "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz",
+                       "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==",
+                       "dev": true
+               },
+               "is-accessor-descriptor": {
+                       "version": "0.1.6",
+                       "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+                       "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+                       "dev": true,
+                       "requires": {
+                               "kind-of": "3.2.2"
+                       },
+                       "dependencies": {
+                               "is-buffer": {
+                                       "version": "1.1.6",
+                                       "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+                                       "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
+                                       "dev": true
+                               },
+                               "kind-of": {
+                                       "version": "3.2.2",
+                                       "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+                                       "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+                                       "dev": true,
+                                       "requires": {
+                                               "is-buffer": "1.1.6"
+                                       }
+                               }
+                       }
+               },
+               "is-binary-path": {
+                       "version": "1.0.1",
+                       "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
+                       "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
+                       "dev": true,
+                       "requires": {
+                               "binary-extensions": "1.13.1"
+                       }
+               },
+               "is-buffer": {
+                       "version": "2.0.4",
+                       "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz",
+                       "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==",
+                       "dev": true
+               },
+               "is-callable": {
+                       "version": "1.1.4",
+                       "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz",
+                       "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==",
+                       "dev": true
+               },
+               "is-data-descriptor": {
+                       "version": "0.1.4",
+                       "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+                       "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+                       "dev": true,
+                       "requires": {
+                               "kind-of": "3.2.2"
+                       },
+                       "dependencies": {
+                               "is-buffer": {
+                                       "version": "1.1.6",
+                                       "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+                                       "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
+                                       "dev": true
+                               },
+                               "kind-of": {
+                                       "version": "3.2.2",
+                                       "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+                                       "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+                                       "dev": true,
+                                       "requires": {
+                                               "is-buffer": "1.1.6"
+                                       }
+                               }
+                       }
+               },
+               "is-date-object": {
+                       "version": "1.0.1",
+                       "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz",
+                       "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=",
+                       "dev": true
+               },
+               "is-descriptor": {
+                       "version": "0.1.6",
+                       "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+                       "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+                       "dev": true,
+                       "requires": {
+                               "is-accessor-descriptor": "0.1.6",
+                               "is-data-descriptor": "0.1.4",
+                               "kind-of": "5.1.0"
+                       },
+                       "dependencies": {
+                               "kind-of": {
+                                       "version": "5.1.0",
+                                       "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+                                       "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
+                                       "dev": true
+                               }
+                       }
+               },
+               "is-extendable": {
+                       "version": "0.1.1",
+                       "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+                       "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
+                       "dev": true
+               },
+               "is-extglob": {
+                       "version": "2.1.1",
+                       "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+                       "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
+                       "dev": true
+               },
+               "is-fullwidth-code-point": {
+                       "version": "2.0.0",
+                       "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+                       "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+                       "dev": true
+               },
+               "is-glob": {
+                       "version": "4.0.1",
+                       "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
+                       "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
+                       "dev": true,
+                       "requires": {
+                               "is-extglob": "2.1.1"
+                       }
+               },
+               "is-number": {
+                       "version": "7.0.0",
+                       "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+                       "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+                       "dev": true
+               },
+               "is-plain-object": {
+                       "version": "2.0.4",
+                       "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
+                       "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+                       "dev": true,
+                       "requires": {
+                               "isobject": "3.0.1"
+                       }
+               },
+               "is-regex": {
+                       "version": "1.0.4",
+                       "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz",
+                       "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
+                       "dev": true,
+                       "requires": {
+                               "has": "1.0.3"
+                       }
+               },
+               "is-stream": {
+                       "version": "1.1.0",
+                       "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+                       "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
+                       "dev": true
+               },
+               "is-symbol": {
+                       "version": "1.0.2",
+                       "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz",
+                       "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==",
+                       "dev": true,
+                       "requires": {
+                               "has-symbols": "1.0.0"
+                       }
+               },
+               "is-windows": {
+                       "version": "1.0.2",
+                       "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
+                       "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
+                       "dev": true
+               },
+               "is-wsl": {
+                       "version": "1.1.0",
+                       "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
+                       "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=",
+                       "dev": true
+               },
+               "isarray": {
+                       "version": "1.0.0",
+                       "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+                       "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+                       "dev": true
+               },
+               "isexe": {
+                       "version": "2.0.0",
+                       "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+                       "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
+                       "dev": true
+               },
+               "isobject": {
+                       "version": "3.0.1",
+                       "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+                       "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+                       "dev": true
+               },
+               "js-yaml": {
+                       "version": "3.13.1",
+                       "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
+                       "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
+                       "dev": true,
+                       "requires": {
+                               "argparse": "1.0.10",
+                               "esprima": "4.0.1"
+                       }
+               },
+               "json-parse-better-errors": {
+                       "version": "1.0.2",
+                       "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
+                       "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
+                       "dev": true
+               },
+               "json-schema-traverse": {
+                       "version": "0.4.1",
+                       "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+                       "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+                       "dev": true
+               },
+               "json5": {
+                       "version": "1.0.1",
+                       "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+                       "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+                       "dev": true,
+                       "requires": {
+                               "minimist": "1.2.0"
+                       },
+                       "dependencies": {
+                               "minimist": {
+                                       "version": "1.2.0",
+                                       "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+                                       "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+                                       "dev": true
+                               }
+                       }
+               },
+               "kind-of": {
+                       "version": "6.0.2",
+                       "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+                       "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
+                       "dev": true
+               },
+               "lcid": {
+                       "version": "2.0.0",
+                       "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz",
+                       "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==",
+                       "dev": true,
+                       "requires": {
+                               "invert-kv": "2.0.0"
+                       }
+               },
+               "loader-runner": {
+                       "version": "2.4.0",
+                       "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz",
+                       "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==",
+                       "dev": true
+               },
+               "loader-utils": {
+                       "version": "1.2.3",
+                       "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz",
+                       "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==",
+                       "dev": true,
+                       "requires": {
+                               "big.js": "5.2.2",
+                               "emojis-list": "2.1.0",
+                               "json5": "1.0.1"
+                       }
+               },
+               "locate-path": {
+                       "version": "3.0.0",
+                       "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+                       "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+                       "dev": true,
+                       "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==",
+                       "dev": true
+               },
+               "log-symbols": {
+                       "version": "2.2.0",
+                       "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz",
+                       "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==",
+                       "dev": true,
+                       "requires": {
+                               "chalk": "2.4.2"
+                       }
+               },
+               "lru-cache": {
+                       "version": "5.1.1",
+                       "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+                       "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+                       "dev": true,
+                       "requires": {
+                               "yallist": "3.1.1"
+                       }
+               },
+               "make-dir": {
+                       "version": "2.1.0",
+                       "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
+                       "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
+                       "dev": true,
+                       "requires": {
+                               "pify": "4.0.1",
+                               "semver": "5.7.1"
+                       }
+               },
+               "mamacro": {
+                       "version": "0.0.3",
+                       "resolved": "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz",
+                       "integrity": "sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==",
+                       "dev": true
+               },
+               "map-age-cleaner": {
+                       "version": "0.1.3",
+                       "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz",
+                       "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==",
+                       "dev": true,
+                       "requires": {
+                               "p-defer": "1.0.0"
+                       }
+               },
+               "map-cache": {
+                       "version": "0.2.2",
+                       "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
+                       "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=",
+                       "dev": true
+               },
+               "map-visit": {
+                       "version": "1.0.0",
+                       "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
+                       "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
+                       "dev": true,
+                       "requires": {
+                               "object-visit": "1.0.1"
+                       }
+               },
+               "md5.js": {
+                       "version": "1.3.5",
+                       "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
+                       "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
+                       "dev": true,
+                       "requires": {
+                               "hash-base": "3.0.4",
+                               "inherits": "2.0.4",
+                               "safe-buffer": "5.1.2"
+                       }
+               },
+               "mem": {
+                       "version": "4.3.0",
+                       "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz",
+                       "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==",
+                       "dev": true,
+                       "requires": {
+                               "map-age-cleaner": "0.1.3",
+                               "mimic-fn": "2.1.0",
+                               "p-is-promise": "2.1.0"
+                       }
+               },
+               "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==",
+                       "dev": true,
+                       "requires": {
+                               "errno": "0.1.7",
+                               "readable-stream": "2.3.6"
+                       }
+               },
+               "micromatch": {
+                       "version": "4.0.2",
+                       "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
+                       "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
+                       "dev": true,
+                       "requires": {
+                               "braces": "3.0.2",
+                               "picomatch": "2.0.7"
+                       }
+               },
+               "miller-rabin": {
+                       "version": "4.0.1",
+                       "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz",
+                       "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==",
+                       "dev": true,
+                       "requires": {
+                               "bn.js": "4.11.8",
+                               "brorand": "1.1.0"
+                       }
+               },
+               "mimic-fn": {
+                       "version": "2.1.0",
+                       "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+                       "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
+                       "dev": true
+               },
+               "minimalistic-assert": {
+                       "version": "1.0.1",
+                       "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
+                       "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==",
+                       "dev": true
+               },
+               "minimalistic-crypto-utils": {
+                       "version": "1.0.1",
+                       "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
+                       "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=",
+                       "dev": true
+               },
+               "minimatch": {
+                       "version": "3.0.4",
+                       "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+                       "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+                       "dev": true,
+                       "requires": {
+                               "brace-expansion": "1.1.11"
+                       }
+               },
+               "minimist": {
+                       "version": "0.0.8",
+                       "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+                       "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
+                       "dev": true
+               },
+               "mississippi": {
+                       "version": "3.0.0",
+                       "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz",
+                       "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==",
+                       "dev": true,
+                       "requires": {
+                               "concat-stream": "1.6.2",
+                               "duplexify": "3.7.1",
+                               "end-of-stream": "1.4.4",
+                               "flush-write-stream": "1.1.1",
+                               "from2": "2.3.0",
+                               "parallel-transform": "1.2.0",
+                               "pump": "3.0.0",
+                               "pumpify": "1.5.1",
+                               "stream-each": "1.2.3",
+                               "through2": "2.0.5"
+                       }
+               },
+               "mixin-deep": {
+                       "version": "1.3.2",
+                       "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
+                       "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
+                       "dev": true,
+                       "requires": {
+                               "for-in": "1.0.2",
+                               "is-extendable": "1.0.1"
+                       },
+                       "dependencies": {
+                               "is-extendable": {
+                                       "version": "1.0.1",
+                                       "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+                                       "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+                                       "dev": true,
+                                       "requires": {
+                                               "is-plain-object": "2.0.4"
+                                       }
+                               }
+                       }
+               },
+               "mkdirp": {
+                       "version": "0.5.1",
+                       "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+                       "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+                       "dev": true,
+                       "requires": {
+                               "minimist": "0.0.8"
+                       }
+               },
+               "mocha": {
+                       "version": "6.2.1",
+                       "resolved": "https://registry.npmjs.org/mocha/-/mocha-6.2.1.tgz",
+                       "integrity": "sha512-VCcWkLHwk79NYQc8cxhkmI8IigTIhsCwZ6RTxQsqK6go4UvEhzJkYuHm8B2YtlSxcYq2fY+ucr4JBwoD6ci80A==",
+                       "dev": true,
+                       "requires": {
+                               "ansi-colors": "3.2.3",
+                               "browser-stdout": "1.3.1",
+                               "debug": "3.2.6",
+                               "diff": "3.5.0",
+                               "escape-string-regexp": "1.0.5",
+                               "find-up": "3.0.0",
+                               "glob": "7.1.3",
+                               "growl": "1.10.5",
+                               "he": "1.2.0",
+                               "js-yaml": "3.13.1",
+                               "log-symbols": "2.2.0",
+                               "minimatch": "3.0.4",
+                               "mkdirp": "0.5.1",
+                               "ms": "2.1.1",
+                               "node-environment-flags": "1.0.5",
+                               "object.assign": "4.1.0",
+                               "strip-json-comments": "2.0.1",
+                               "supports-color": "6.0.0",
+                               "which": "1.3.1",
+                               "wide-align": "1.1.3",
+                               "yargs": "13.3.0",
+                               "yargs-parser": "13.1.1",
+                               "yargs-unparser": "1.6.0"
+                       }
+               },
+               "move-concurrently": {
+                       "version": "1.0.1",
+                       "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz",
+                       "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=",
+                       "dev": true,
+                       "requires": {
+                               "aproba": "1.2.0",
+                               "copy-concurrently": "1.0.5",
+                               "fs-write-stream-atomic": "1.0.10",
+                               "mkdirp": "0.5.1",
+                               "rimraf": "2.7.1",
+                               "run-queue": "1.0.3"
+                       }
+               },
+               "ms": {
+                       "version": "2.1.1",
+                       "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
+                       "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
+                       "dev": true
+               },
+               "nan": {
+                       "version": "2.14.0",
+                       "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz",
+                       "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==",
+                       "dev": true,
+                       "optional": true
+               },
+               "nanomatch": {
+                       "version": "1.2.13",
+                       "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
+                       "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
+                       "dev": true,
+                       "requires": {
+                               "arr-diff": "4.0.0",
+                               "array-unique": "0.3.2",
+                               "define-property": "2.0.2",
+                               "extend-shallow": "3.0.2",
+                               "fragment-cache": "0.2.1",
+                               "is-windows": "1.0.2",
+                               "kind-of": "6.0.2",
+                               "object.pick": "1.3.0",
+                               "regex-not": "1.0.2",
+                               "snapdragon": "0.8.2",
+                               "to-regex": "3.0.2"
+                       }
+               },
+               "neo-async": {
+                       "version": "2.6.1",
+                       "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz",
+                       "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==",
+                       "dev": true
+               },
+               "nice-try": {
+                       "version": "1.0.5",
+                       "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
+                       "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
+                       "dev": true
+               },
+               "node-environment-flags": {
+                       "version": "1.0.5",
+                       "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.5.tgz",
+                       "integrity": "sha512-VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ==",
+                       "dev": true,
+                       "requires": {
+                               "object.getownpropertydescriptors": "2.0.3",
+                               "semver": "5.7.1"
+                       }
+               },
+               "node-libs-browser": {
+                       "version": "2.2.1",
+                       "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz",
+                       "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==",
+                       "dev": true,
+                       "requires": {
+                               "assert": "1.5.0",
+                               "browserify-zlib": "0.2.0",
+                               "buffer": "4.9.1",
+                               "console-browserify": "1.1.0",
+                               "constants-browserify": "1.0.0",
+                               "crypto-browserify": "3.12.0",
+                               "domain-browser": "1.2.0",
+                               "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.4.1",
+                               "querystring-es3": "0.2.1",
+                               "readable-stream": "2.3.6",
+                               "stream-browserify": "2.0.2",
+                               "stream-http": "2.8.3",
+                               "string_decoder": "1.1.1",
+                               "timers-browserify": "2.0.11",
+                               "tty-browserify": "0.0.0",
+                               "url": "0.11.0",
+                               "util": "0.11.1",
+                               "vm-browserify": "1.1.0"
+                       },
+                       "dependencies": {
+                               "punycode": {
+                                       "version": "1.4.1",
+                                       "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+                                       "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
+                                       "dev": true
+                               }
+                       }
+               },
+               "normalize-path": {
+                       "version": "3.0.0",
+                       "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+                       "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+                       "dev": true
+               },
+               "npm-run-path": {
+                       "version": "2.0.2",
+                       "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
+                       "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
+                       "dev": true,
+                       "requires": {
+                               "path-key": "2.0.1"
+                       }
+               },
+               "object-assign": {
+                       "version": "4.1.1",
+                       "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+                       "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+                       "dev": true
+               },
+               "object-copy": {
+                       "version": "0.1.0",
+                       "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
+                       "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
+                       "dev": true,
+                       "requires": {
+                               "copy-descriptor": "0.1.1",
+                               "define-property": "0.2.5",
+                               "kind-of": "3.2.2"
+                       },
+                       "dependencies": {
+                               "define-property": {
+                                       "version": "0.2.5",
+                                       "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+                                       "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+                                       "dev": true,
+                                       "requires": {
+                                               "is-descriptor": "0.1.6"
+                                       }
+                               },
+                               "is-buffer": {
+                                       "version": "1.1.6",
+                                       "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+                                       "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
+                                       "dev": true
+                               },
+                               "kind-of": {
+                                       "version": "3.2.2",
+                                       "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+                                       "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+                                       "dev": true,
+                                       "requires": {
+                                               "is-buffer": "1.1.6"
+                                       }
+                               }
+                       }
+               },
+               "object-inspect": {
+                       "version": "1.6.0",
+                       "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz",
+                       "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==",
+                       "dev": true
+               },
+               "object-keys": {
+                       "version": "1.1.1",
+                       "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+                       "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+                       "dev": true
+               },
+               "object-visit": {
+                       "version": "1.0.1",
+                       "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
+                       "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
+                       "dev": true,
+                       "requires": {
+                               "isobject": "3.0.1"
+                       }
+               },
+               "object.assign": {
+                       "version": "4.1.0",
+                       "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
+                       "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
+                       "dev": true,
+                       "requires": {
+                               "define-properties": "1.1.3",
+                               "function-bind": "1.1.1",
+                               "has-symbols": "1.0.0",
+                               "object-keys": "1.1.1"
+                       }
+               },
+               "object.getownpropertydescriptors": {
+                       "version": "2.0.3",
+                       "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz",
+                       "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=",
+                       "dev": true,
+                       "requires": {
+                               "define-properties": "1.1.3",
+                               "es-abstract": "1.15.0"
+                       }
+               },
+               "object.pick": {
+                       "version": "1.3.0",
+                       "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
+                       "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
+                       "dev": true,
+                       "requires": {
+                               "isobject": "3.0.1"
+                       }
+               },
+               "once": {
+                       "version": "1.4.0",
+                       "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+                       "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+                       "dev": true,
+                       "requires": {
+                               "wrappy": "1.0.2"
+                       }
+               },
+               "os-browserify": {
+                       "version": "0.3.0",
+                       "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz",
+                       "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=",
                        "dev": true
                },
-               "has-symbols": {
+               "os-locale": {
+                       "version": "3.1.0",
+                       "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz",
+                       "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==",
+                       "dev": true,
+                       "requires": {
+                               "execa": "1.0.0",
+                               "lcid": "2.0.0",
+                               "mem": "4.3.0"
+                       }
+               },
+               "p-defer": {
                        "version": "1.0.0",
-                       "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz",
-                       "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=",
+                       "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz",
+                       "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=",
                        "dev": true
                },
-               "he": {
+               "p-finally": {
+                       "version": "1.0.0",
+                       "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
+                       "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
+                       "dev": true
+               },
+               "p-is-promise": {
+                       "version": "2.1.0",
+                       "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz",
+                       "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==",
+                       "dev": true
+               },
+               "p-limit": {
+                       "version": "2.2.1",
+                       "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz",
+                       "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==",
+                       "dev": true,
+                       "requires": {
+                               "p-try": "2.2.0"
+                       }
+               },
+               "p-locate": {
+                       "version": "3.0.0",
+                       "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+                       "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+                       "dev": true,
+                       "requires": {
+                               "p-limit": "2.2.1"
+                       }
+               },
+               "p-try": {
+                       "version": "2.2.0",
+                       "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+                       "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+                       "dev": true
+               },
+               "pako": {
+                       "version": "1.0.10",
+                       "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz",
+                       "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==",
+                       "dev": true
+               },
+               "parallel-transform": {
                        "version": "1.2.0",
-                       "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
-                       "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
+                       "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz",
+                       "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==",
+                       "dev": true,
+                       "requires": {
+                               "cyclist": "1.0.1",
+                               "inherits": "2.0.4",
+                               "readable-stream": "2.3.6"
+                       }
+               },
+               "parse-asn1": {
+                       "version": "5.1.5",
+                       "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz",
+                       "integrity": "sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==",
+                       "dev": true,
+                       "requires": {
+                               "asn1.js": "4.10.1",
+                               "browserify-aes": "1.2.0",
+                               "create-hash": "1.2.0",
+                               "evp_bytestokey": "1.0.3",
+                               "pbkdf2": "3.0.17",
+                               "safe-buffer": "5.1.2"
+                       }
+               },
+               "parse-passwd": {
+                       "version": "1.0.0",
+                       "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz",
+                       "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=",
                        "dev": true
                },
-               "inflight": {
-                       "version": "1.0.6",
-                       "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
-                       "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+               "pascalcase": {
+                       "version": "0.1.1",
+                       "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
+                       "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=",
+                       "dev": true
+               },
+               "path-browserify": {
+                       "version": "0.0.1",
+                       "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz",
+                       "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==",
+                       "dev": true
+               },
+               "path-dirname": {
+                       "version": "1.0.2",
+                       "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
+                       "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=",
+                       "dev": true
+               },
+               "path-exists": {
+                       "version": "3.0.0",
+                       "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+                       "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+                       "dev": true
+               },
+               "path-is-absolute": {
+                       "version": "1.0.1",
+                       "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+                       "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+                       "dev": true
+               },
+               "path-key": {
+                       "version": "2.0.1",
+                       "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+                       "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
+                       "dev": true
+               },
+               "pathval": {
+                       "version": "1.1.0",
+                       "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz",
+                       "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=",
+                       "dev": true
+               },
+               "pbkdf2": {
+                       "version": "3.0.17",
+                       "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz",
+                       "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==",
                        "dev": true,
                        "requires": {
-                               "once": "1.4.0",
-                               "wrappy": "1.0.2"
+                               "create-hash": "1.2.0",
+                               "create-hmac": "1.1.7",
+                               "ripemd160": "2.0.2",
+                               "safe-buffer": "5.1.2",
+                               "sha.js": "2.4.11"
                        }
                },
-               "inherits": {
-                       "version": "2.0.4",
-                       "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
-                       "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+               "picomatch": {
+                       "version": "2.0.7",
+                       "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.0.7.tgz",
+                       "integrity": "sha512-oLHIdio3tZ0qH76NybpeneBhYVj0QFTfXEFTc/B3zKQspYfYYkWYgFsmzo+4kvId/bQRcNkVeguI3y+CD22BtA==",
                        "dev": true
                },
-               "is-buffer": {
-                       "version": "2.0.4",
-                       "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz",
-                       "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==",
+               "pify": {
+                       "version": "4.0.1",
+                       "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+                       "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
                        "dev": true
                },
-               "is-callable": {
-                       "version": "1.1.4",
-                       "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz",
-                       "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==",
+               "pkg-dir": {
+                       "version": "3.0.0",
+                       "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
+                       "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
+                       "dev": true,
+                       "requires": {
+                               "find-up": "3.0.0"
+                       }
+               },
+               "posix-character-classes": {
+                       "version": "0.1.1",
+                       "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
+                       "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=",
                        "dev": true
                },
-               "is-date-object": {
+               "process": {
+                       "version": "0.11.10",
+                       "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
+                       "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=",
+                       "dev": true
+               },
+               "process-nextick-args": {
+                       "version": "2.0.1",
+                       "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+                       "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
+                       "dev": true
+               },
+               "promise-inflight": {
                        "version": "1.0.1",
-                       "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz",
-                       "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=",
+                       "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
+                       "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=",
                        "dev": true
                },
-               "is-fullwidth-code-point": {
-                       "version": "2.0.0",
-                       "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
-                       "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+               "prr": {
+                       "version": "1.0.1",
+                       "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
+                       "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=",
                        "dev": true
                },
-               "is-regex": {
+               "public-encrypt": {
+                       "version": "4.0.3",
+                       "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz",
+                       "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==",
+                       "dev": true,
+                       "requires": {
+                               "bn.js": "4.11.8",
+                               "browserify-rsa": "4.0.1",
+                               "create-hash": "1.2.0",
+                               "parse-asn1": "5.1.5",
+                               "randombytes": "2.1.0",
+                               "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==",
+                       "dev": true,
+                       "requires": {
+                               "end-of-stream": "1.4.4",
+                               "once": "1.4.0"
+                       }
+               },
+               "pumpify": {
+                       "version": "1.5.1",
+                       "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz",
+                       "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==",
+                       "dev": true,
+                       "requires": {
+                               "duplexify": "3.7.1",
+                               "inherits": "2.0.4",
+                               "pump": "2.0.1"
+                       },
+                       "dependencies": {
+                               "pump": {
+                                       "version": "2.0.1",
+                                       "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz",
+                                       "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==",
+                                       "dev": true,
+                                       "requires": {
+                                               "end-of-stream": "1.4.4",
+                                               "once": "1.4.0"
+                                       }
+                               }
+                       }
+               },
+               "punycode": {
+                       "version": "2.1.1",
+                       "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+                       "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
+                       "dev": true
+               },
+               "querystring": {
+                       "version": "0.2.0",
+                       "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
+                       "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=",
+                       "dev": true
+               },
+               "querystring-es3": {
+                       "version": "0.2.1",
+                       "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz",
+                       "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=",
+                       "dev": true
+               },
+               "randombytes": {
+                       "version": "2.1.0",
+                       "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
+                       "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
+                       "dev": true,
+                       "requires": {
+                               "safe-buffer": "5.1.2"
+                       }
+               },
+               "randomfill": {
                        "version": "1.0.4",
-                       "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz",
-                       "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
+                       "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz",
+                       "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==",
                        "dev": true,
                        "requires": {
-                               "has": "1.0.3"
+                               "randombytes": "2.1.0",
+                               "safe-buffer": "5.1.2"
                        }
                },
-               "is-symbol": {
+               "readable-stream": {
+                       "version": "2.3.6",
+                       "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+                       "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
+                       "dev": true,
+                       "requires": {
+                               "core-util-is": "1.0.2",
+                               "inherits": "2.0.4",
+                               "isarray": "1.0.0",
+                               "process-nextick-args": "2.0.1",
+                               "safe-buffer": "5.1.2",
+                               "string_decoder": "1.1.1",
+                               "util-deprecate": "1.0.2"
+                       }
+               },
+               "readdirp": {
+                       "version": "2.2.1",
+                       "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
+                       "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==",
+                       "dev": true,
+                       "requires": {
+                               "graceful-fs": "4.2.2",
+                               "micromatch": "3.1.10",
+                               "readable-stream": "2.3.6"
+                       },
+                       "dependencies": {
+                               "braces": {
+                                       "version": "2.3.2",
+                                       "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+                                       "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+                                       "dev": true,
+                                       "requires": {
+                                               "arr-flatten": "1.1.0",
+                                               "array-unique": "0.3.2",
+                                               "extend-shallow": "2.0.1",
+                                               "fill-range": "4.0.0",
+                                               "isobject": "3.0.1",
+                                               "repeat-element": "1.1.3",
+                                               "snapdragon": "0.8.2",
+                                               "snapdragon-node": "2.1.1",
+                                               "split-string": "3.1.0",
+                                               "to-regex": "3.0.2"
+                                       },
+                                       "dependencies": {
+                                               "extend-shallow": {
+                                                       "version": "2.0.1",
+                                                       "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+                                                       "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+                                                       "dev": true,
+                                                       "requires": {
+                                                               "is-extendable": "0.1.1"
+                                                       }
+                                               }
+                                       }
+                               },
+                               "fill-range": {
+                                       "version": "4.0.0",
+                                       "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+                                       "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
+                                       "dev": true,
+                                       "requires": {
+                                               "extend-shallow": "2.0.1",
+                                               "is-number": "3.0.0",
+                                               "repeat-string": "1.6.1",
+                                               "to-regex-range": "2.1.1"
+                                       },
+                                       "dependencies": {
+                                               "extend-shallow": {
+                                                       "version": "2.0.1",
+                                                       "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+                                                       "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+                                                       "dev": true,
+                                                       "requires": {
+                                                               "is-extendable": "0.1.1"
+                                                       }
+                                               }
+                                       }
+                               },
+                               "is-buffer": {
+                                       "version": "1.1.6",
+                                       "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+                                       "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
+                                       "dev": true
+                               },
+                               "is-number": {
+                                       "version": "3.0.0",
+                                       "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+                                       "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+                                       "dev": true,
+                                       "requires": {
+                                               "kind-of": "3.2.2"
+                                       },
+                                       "dependencies": {
+                                               "kind-of": {
+                                                       "version": "3.2.2",
+                                                       "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+                                                       "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+                                                       "dev": true,
+                                                       "requires": {
+                                                               "is-buffer": "1.1.6"
+                                                       }
+                                               }
+                                       }
+                               },
+                               "micromatch": {
+                                       "version": "3.1.10",
+                                       "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+                                       "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+                                       "dev": true,
+                                       "requires": {
+                                               "arr-diff": "4.0.0",
+                                               "array-unique": "0.3.2",
+                                               "braces": "2.3.2",
+                                               "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.13",
+                                               "object.pick": "1.3.0",
+                                               "regex-not": "1.0.2",
+                                               "snapdragon": "0.8.2",
+                                               "to-regex": "3.0.2"
+                                       }
+                               },
+                               "to-regex-range": {
+                                       "version": "2.1.1",
+                                       "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
+                                       "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
+                                       "dev": true,
+                                       "requires": {
+                                               "is-number": "3.0.0",
+                                               "repeat-string": "1.6.1"
+                                       }
+                               }
+                       }
+               },
+               "regex-not": {
                        "version": "1.0.2",
-                       "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz",
-                       "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==",
+                       "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
+                       "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
                        "dev": true,
                        "requires": {
-                               "has-symbols": "1.0.0"
+                               "extend-shallow": "3.0.2",
+                               "safe-regex": "1.1.0"
                        }
                },
-               "isexe": {
+               "remove-trailing-separator": {
+                       "version": "1.1.0",
+                       "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
+                       "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
+                       "dev": true
+               },
+               "repeat-element": {
+                       "version": "1.1.3",
+                       "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
+                       "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==",
+                       "dev": true
+               },
+               "repeat-string": {
+                       "version": "1.6.1",
+                       "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
+                       "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
+                       "dev": true
+               },
+               "require-directory": {
+                       "version": "2.1.1",
+                       "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+                       "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
+                       "dev": true
+               },
+               "require-main-filename": {
                        "version": "2.0.0",
-                       "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
-                       "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
+                       "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
+                       "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
+                       "dev": true
+               },
+               "resolve-cwd": {
+                       "version": "2.0.0",
+                       "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz",
+                       "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=",
+                       "dev": true,
+                       "requires": {
+                               "resolve-from": "3.0.0"
+                       }
+               },
+               "resolve-dir": {
+                       "version": "1.0.1",
+                       "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz",
+                       "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=",
+                       "dev": true,
+                       "requires": {
+                               "expand-tilde": "2.0.2",
+                               "global-modules": "1.0.0"
+                       },
+                       "dependencies": {
+                               "global-modules": {
+                                       "version": "1.0.0",
+                                       "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz",
+                                       "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==",
+                                       "dev": true,
+                                       "requires": {
+                                               "global-prefix": "1.0.2",
+                                               "is-windows": "1.0.2",
+                                               "resolve-dir": "1.0.1"
+                                       }
+                               }
+                       }
+               },
+               "resolve-from": {
+                       "version": "3.0.0",
+                       "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
+                       "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=",
+                       "dev": true
+               },
+               "resolve-url": {
+                       "version": "0.2.1",
+                       "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
+                       "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
                        "dev": true
                },
-               "js-yaml": {
-                       "version": "3.13.1",
-                       "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
-                       "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
+               "ret": {
+                       "version": "0.1.15",
+                       "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
+                       "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
+                       "dev": true
+               },
+               "rimraf": {
+                       "version": "2.7.1",
+                       "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+                       "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
                        "dev": true,
                        "requires": {
-                               "argparse": "1.0.10",
-                               "esprima": "4.0.1"
+                               "glob": "7.1.3"
                        }
                },
-               "locate-path": {
-                       "version": "3.0.0",
-                       "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
-                       "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+               "ripemd160": {
+                       "version": "2.0.2",
+                       "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz",
+                       "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
                        "dev": true,
                        "requires": {
-                               "p-locate": "3.0.0",
-                               "path-exists": "3.0.0"
+                               "hash-base": "3.0.4",
+                               "inherits": "2.0.4"
                        }
                },
-               "lodash": {
-                       "version": "4.17.15",
-                       "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
-                       "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
+               "run-queue": {
+                       "version": "1.0.3",
+                       "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz",
+                       "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=",
+                       "dev": true,
+                       "requires": {
+                               "aproba": "1.2.0"
+                       }
+               },
+               "safe-buffer": {
+                       "version": "5.1.2",
+                       "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+                       "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
                        "dev": true
                },
-               "log-symbols": {
-                       "version": "2.2.0",
-                       "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz",
-                       "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==",
+               "safe-regex": {
+                       "version": "1.1.0",
+                       "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
+                       "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
                        "dev": true,
                        "requires": {
-                               "chalk": "2.4.2"
+                               "ret": "0.1.15"
                        }
                },
-               "minimatch": {
-                       "version": "3.0.4",
-                       "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
-                       "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+               "schema-utils": {
+                       "version": "1.0.0",
+                       "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
+                       "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
                        "dev": true,
                        "requires": {
-                               "brace-expansion": "1.1.11"
+                               "ajv": "6.10.2",
+                               "ajv-errors": "1.0.1",
+                               "ajv-keywords": "3.4.1"
                        }
                },
-               "minimist": {
-                       "version": "0.0.8",
-                       "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
-                       "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
+               "semver": {
+                       "version": "5.7.1",
+                       "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+                       "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
                        "dev": true
                },
-               "mkdirp": {
-                       "version": "0.5.1",
-                       "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
-                       "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+               "serialize-javascript": {
+                       "version": "1.9.1",
+                       "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.9.1.tgz",
+                       "integrity": "sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A==",
+                       "dev": true
+               },
+               "set-blocking": {
+                       "version": "2.0.0",
+                       "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+                       "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
+                       "dev": true
+               },
+               "set-value": {
+                       "version": "2.0.1",
+                       "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
+                       "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
                        "dev": true,
                        "requires": {
-                               "minimist": "0.0.8"
+                               "extend-shallow": "2.0.1",
+                               "is-extendable": "0.1.1",
+                               "is-plain-object": "2.0.4",
+                               "split-string": "3.1.0"
+                       },
+                       "dependencies": {
+                               "extend-shallow": {
+                                       "version": "2.0.1",
+                                       "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+                                       "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+                                       "dev": true,
+                                       "requires": {
+                                               "is-extendable": "0.1.1"
+                                       }
+                               }
                        }
                },
-               "mocha": {
-                       "version": "6.2.1",
-                       "resolved": "https://registry.npmjs.org/mocha/-/mocha-6.2.1.tgz",
-                       "integrity": "sha512-VCcWkLHwk79NYQc8cxhkmI8IigTIhsCwZ6RTxQsqK6go4UvEhzJkYuHm8B2YtlSxcYq2fY+ucr4JBwoD6ci80A==",
+               "setimmediate": {
+                       "version": "1.0.5",
+                       "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
+                       "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=",
+                       "dev": true
+               },
+               "sha.js": {
+                       "version": "2.4.11",
+                       "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
+                       "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
                        "dev": true,
                        "requires": {
-                               "ansi-colors": "3.2.3",
-                               "browser-stdout": "1.3.1",
-                               "debug": "3.2.6",
-                               "diff": "3.5.0",
-                               "escape-string-regexp": "1.0.5",
-                               "find-up": "3.0.0",
-                               "glob": "7.1.3",
-                               "growl": "1.10.5",
-                               "he": "1.2.0",
-                               "js-yaml": "3.13.1",
-                               "log-symbols": "2.2.0",
-                               "minimatch": "3.0.4",
-                               "mkdirp": "0.5.1",
-                               "ms": "2.1.1",
-                               "node-environment-flags": "1.0.5",
-                               "object.assign": "4.1.0",
-                               "strip-json-comments": "2.0.1",
-                               "supports-color": "6.0.0",
-                               "which": "1.3.1",
-                               "wide-align": "1.1.3",
-                               "yargs": "13.3.0",
-                               "yargs-parser": "13.1.1",
-                               "yargs-unparser": "1.6.0"
+                               "inherits": "2.0.4",
+                               "safe-buffer": "5.1.2"
                        }
                },
-               "ms": {
-                       "version": "2.1.1",
-                       "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
-                       "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
-                       "dev": true
-               },
-               "node-environment-flags": {
-                       "version": "1.0.5",
-                       "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.5.tgz",
-                       "integrity": "sha512-VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ==",
+               "shebang-command": {
+                       "version": "1.2.0",
+                       "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+                       "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
                        "dev": true,
                        "requires": {
-                               "object.getownpropertydescriptors": "2.0.3",
-                               "semver": "5.7.1"
+                               "shebang-regex": "1.0.0"
                        }
                },
-               "object-inspect": {
-                       "version": "1.6.0",
-                       "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz",
-                       "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==",
+               "shebang-regex": {
+                       "version": "1.0.0",
+                       "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+                       "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
                        "dev": true
                },
-               "object-keys": {
-                       "version": "1.1.1",
-                       "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
-                       "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+               "signal-exit": {
+                       "version": "3.0.2",
+                       "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
+                       "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
                        "dev": true
                },
-               "object.assign": {
-                       "version": "4.1.0",
-                       "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
-                       "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
+               "snapdragon": {
+                       "version": "0.8.2",
+                       "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
+                       "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
                        "dev": true,
                        "requires": {
-                               "define-properties": "1.1.3",
-                               "function-bind": "1.1.1",
-                               "has-symbols": "1.0.0",
-                               "object-keys": "1.1.1"
+                               "base": "0.11.2",
+                               "debug": "2.6.9",
+                               "define-property": "0.2.5",
+                               "extend-shallow": "2.0.1",
+                               "map-cache": "0.2.2",
+                               "source-map": "0.5.7",
+                               "source-map-resolve": "0.5.2",
+                               "use": "3.1.1"
+                       },
+                       "dependencies": {
+                               "debug": {
+                                       "version": "2.6.9",
+                                       "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+                                       "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+                                       "dev": true,
+                                       "requires": {
+                                               "ms": "2.0.0"
+                                       }
+                               },
+                               "define-property": {
+                                       "version": "0.2.5",
+                                       "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+                                       "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+                                       "dev": true,
+                                       "requires": {
+                                               "is-descriptor": "0.1.6"
+                                       }
+                               },
+                               "extend-shallow": {
+                                       "version": "2.0.1",
+                                       "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+                                       "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+                                       "dev": true,
+                                       "requires": {
+                                               "is-extendable": "0.1.1"
+                                       }
+                               },
+                               "ms": {
+                                       "version": "2.0.0",
+                                       "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+                                       "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+                                       "dev": true
+                               }
                        }
                },
-               "object.getownpropertydescriptors": {
-                       "version": "2.0.3",
-                       "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz",
-                       "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=",
+               "snapdragon-node": {
+                       "version": "2.1.1",
+                       "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
+                       "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
                        "dev": true,
                        "requires": {
-                               "define-properties": "1.1.3",
-                               "es-abstract": "1.15.0"
+                               "define-property": "1.0.0",
+                               "isobject": "3.0.1",
+                               "snapdragon-util": "3.0.1"
+                       },
+                       "dependencies": {
+                               "define-property": {
+                                       "version": "1.0.0",
+                                       "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+                                       "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+                                       "dev": true,
+                                       "requires": {
+                                               "is-descriptor": "1.0.2"
+                                       }
+                               },
+                               "is-accessor-descriptor": {
+                                       "version": "1.0.0",
+                                       "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+                                       "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+                                       "dev": true,
+                                       "requires": {
+                                               "kind-of": "6.0.2"
+                                       }
+                               },
+                               "is-data-descriptor": {
+                                       "version": "1.0.0",
+                                       "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+                                       "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+                                       "dev": true,
+                                       "requires": {
+                                               "kind-of": "6.0.2"
+                                       }
+                               },
+                               "is-descriptor": {
+                                       "version": "1.0.2",
+                                       "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+                                       "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+                                       "dev": true,
+                                       "requires": {
+                                               "is-accessor-descriptor": "1.0.0",
+                                               "is-data-descriptor": "1.0.0",
+                                               "kind-of": "6.0.2"
+                                       }
+                               }
                        }
                },
-               "once": {
-                       "version": "1.4.0",
-                       "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
-                       "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+               "snapdragon-util": {
+                       "version": "3.0.1",
+                       "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
+                       "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
                        "dev": true,
                        "requires": {
-                               "wrappy": "1.0.2"
+                               "kind-of": "3.2.2"
+                       },
+                       "dependencies": {
+                               "is-buffer": {
+                                       "version": "1.1.6",
+                                       "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+                                       "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
+                                       "dev": true
+                               },
+                               "kind-of": {
+                                       "version": "3.2.2",
+                                       "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+                                       "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+                                       "dev": true,
+                                       "requires": {
+                                               "is-buffer": "1.1.6"
+                                       }
+                               }
                        }
                },
-               "p-limit": {
-                       "version": "2.2.1",
-                       "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz",
-                       "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==",
+               "source-list-map": {
+                       "version": "2.0.1",
+                       "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz",
+                       "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==",
+                       "dev": true
+               },
+               "source-map": {
+                       "version": "0.5.7",
+                       "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+                       "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+                       "dev": true
+               },
+               "source-map-resolve": {
+                       "version": "0.5.2",
+                       "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz",
+                       "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==",
                        "dev": true,
                        "requires": {
-                               "p-try": "2.2.0"
+                               "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"
                        }
                },
-               "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==",
+               "source-map-support": {
+                       "version": "0.5.13",
+                       "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz",
+                       "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==",
                        "dev": true,
                        "requires": {
-                               "p-limit": "2.2.1"
+                               "buffer-from": "1.1.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==",
+                                       "dev": true
+                               }
                        }
                },
-               "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==",
+               "source-map-url": {
+                       "version": "0.4.0",
+                       "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
+                       "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=",
                        "dev": true
                },
-               "path-exists": {
-                       "version": "3.0.0",
-                       "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
-                       "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
-                       "dev": true
+               "split-string": {
+                       "version": "3.1.0",
+                       "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
+                       "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
+                       "dev": true,
+                       "requires": {
+                               "extend-shallow": "3.0.2"
+                       }
                },
-               "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=",
+               "sprintf-js": {
+                       "version": "1.0.3",
+                       "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+                       "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
                        "dev": true
                },
-               "pathval": {
-                       "version": "1.1.0",
-                       "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz",
-                       "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=",
-                       "dev": true
+               "ssri": {
+                       "version": "6.0.1",
+                       "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz",
+                       "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==",
+                       "dev": true,
+                       "requires": {
+                               "figgy-pudding": "3.5.1"
+                       }
                },
-               "require-directory": {
-                       "version": "2.1.1",
-                       "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
-                       "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
-                       "dev": true
+               "static-extend": {
+                       "version": "0.1.2",
+                       "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
+                       "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
+                       "dev": true,
+                       "requires": {
+                               "define-property": "0.2.5",
+                               "object-copy": "0.1.0"
+                       },
+                       "dependencies": {
+                               "define-property": {
+                                       "version": "0.2.5",
+                                       "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+                                       "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+                                       "dev": true,
+                                       "requires": {
+                                               "is-descriptor": "0.1.6"
+                                       }
+                               }
+                       }
                },
-               "require-main-filename": {
-                       "version": "2.0.0",
-                       "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
-                       "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
-                       "dev": true
+               "stream-browserify": {
+                       "version": "2.0.2",
+                       "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz",
+                       "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==",
+                       "dev": true,
+                       "requires": {
+                               "inherits": "2.0.4",
+                               "readable-stream": "2.3.6"
+                       }
                },
-               "semver": {
-                       "version": "5.7.1",
-                       "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
-                       "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
-                       "dev": true
+               "stream-each": {
+                       "version": "1.2.3",
+                       "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz",
+                       "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==",
+                       "dev": true,
+                       "requires": {
+                               "end-of-stream": "1.4.4",
+                               "stream-shift": "1.0.0"
+                       }
                },
-               "set-blocking": {
-                       "version": "2.0.0",
-                       "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
-                       "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
-                       "dev": true
+               "stream-http": {
+                       "version": "2.8.3",
+                       "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz",
+                       "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==",
+                       "dev": true,
+                       "requires": {
+                               "builtin-status-codes": "3.0.0",
+                               "inherits": "2.0.4",
+                               "readable-stream": "2.3.6",
+                               "to-arraybuffer": "1.0.1",
+                               "xtend": "4.0.2"
+                       }
                },
-               "sprintf-js": {
-                       "version": "1.0.3",
-                       "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
-                       "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
+               "stream-shift": {
+                       "version": "1.0.0",
+                       "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz",
+                       "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=",
                        "dev": true
                },
                "string-width": {
                                "function-bind": "1.1.1"
                        }
                },
+               "string_decoder": {
+                       "version": "1.1.1",
+                       "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+                       "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+                       "dev": true,
+                       "requires": {
+                               "safe-buffer": "5.1.2"
+                       }
+               },
                "strip-ansi": {
                        "version": "4.0.0",
                        "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
                                "ansi-regex": "3.0.0"
                        }
                },
+               "strip-eof": {
+                       "version": "1.0.0",
+                       "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
+                       "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
+                       "dev": true
+               },
                "strip-json-comments": {
                        "version": "2.0.1",
                        "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
                                "has-flag": "3.0.0"
                        }
                },
+               "tapable": {
+                       "version": "1.1.3",
+                       "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz",
+                       "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==",
+                       "dev": true
+               },
+               "terser": {
+                       "version": "4.3.8",
+                       "resolved": "https://registry.npmjs.org/terser/-/terser-4.3.8.tgz",
+                       "integrity": "sha512-otmIRlRVmLChAWsnSFNO0Bfk6YySuBp6G9qrHiJwlLDd4mxe2ta4sjI7TzIR+W1nBMjilzrMcPOz9pSusgx3hQ==",
+                       "dev": true,
+                       "requires": {
+                               "commander": "2.20.3",
+                               "source-map": "0.6.1",
+                               "source-map-support": "0.5.13"
+                       },
+                       "dependencies": {
+                               "source-map": {
+                                       "version": "0.6.1",
+                                       "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+                                       "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+                                       "dev": true
+                               }
+                       }
+               },
+               "terser-webpack-plugin": {
+                       "version": "1.4.1",
+                       "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.1.tgz",
+                       "integrity": "sha512-ZXmmfiwtCLfz8WKZyYUuuHf3dMYEjg8NrjHMb0JqHVHVOSkzp3cW2/XG1fP3tRhqEqSzMwzzRQGtAPbs4Cncxg==",
+                       "dev": true,
+                       "requires": {
+                               "cacache": "12.0.3",
+                               "find-cache-dir": "2.1.0",
+                               "is-wsl": "1.1.0",
+                               "schema-utils": "1.0.0",
+                               "serialize-javascript": "1.9.1",
+                               "source-map": "0.6.1",
+                               "terser": "4.3.8",
+                               "webpack-sources": "1.4.3",
+                               "worker-farm": "1.7.0"
+                       },
+                       "dependencies": {
+                               "source-map": {
+                                       "version": "0.6.1",
+                                       "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+                                       "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+                                       "dev": true
+                               }
+                       }
+               },
+               "through2": {
+                       "version": "2.0.5",
+                       "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
+                       "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
+                       "dev": true,
+                       "requires": {
+                               "readable-stream": "2.3.6",
+                               "xtend": "4.0.2"
+                       }
+               },
+               "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==",
+                       "dev": true,
+                       "requires": {
+                               "setimmediate": "1.0.5"
+                       }
+               },
+               "to-arraybuffer": {
+                       "version": "1.0.1",
+                       "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
+                       "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=",
+                       "dev": true
+               },
+               "to-object-path": {
+                       "version": "0.3.0",
+                       "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
+                       "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
+                       "dev": true,
+                       "requires": {
+                               "kind-of": "3.2.2"
+                       },
+                       "dependencies": {
+                               "is-buffer": {
+                                       "version": "1.1.6",
+                                       "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+                                       "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
+                                       "dev": true
+                               },
+                               "kind-of": {
+                                       "version": "3.2.2",
+                                       "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+                                       "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+                                       "dev": true,
+                                       "requires": {
+                                               "is-buffer": "1.1.6"
+                                       }
+                               }
+                       }
+               },
+               "to-regex": {
+                       "version": "3.0.2",
+                       "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
+                       "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
+                       "dev": true,
+                       "requires": {
+                               "define-property": "2.0.2",
+                               "extend-shallow": "3.0.2",
+                               "regex-not": "1.0.2",
+                               "safe-regex": "1.1.0"
+                       }
+               },
+               "to-regex-range": {
+                       "version": "5.0.1",
+                       "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+                       "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+                       "dev": true,
+                       "requires": {
+                               "is-number": "7.0.0"
+                       }
+               },
+               "ts-loader": {
+                       "version": "6.2.0",
+                       "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-6.2.0.tgz",
+                       "integrity": "sha512-Da8h3fD+HiZ9GvZJydqzk3mTC9nuOKYlJcpuk+Zv6Y1DPaMvBL+56GRzZFypx2cWrZFMsQr869+Ua2slGoLxvQ==",
+                       "dev": true,
+                       "requires": {
+                               "chalk": "2.4.2",
+                               "enhanced-resolve": "4.1.1",
+                               "loader-utils": "1.2.3",
+                               "micromatch": "4.0.2",
+                               "semver": "6.3.0"
+                       },
+                       "dependencies": {
+                               "semver": {
+                                       "version": "6.3.0",
+                                       "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+                                       "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+                                       "dev": true
+                               }
+                       }
+               },
+               "tslib": {
+                       "version": "1.10.0",
+                       "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz",
+                       "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==",
+                       "dev": true
+               },
+               "tty-browserify": {
+                       "version": "0.0.0",
+                       "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz",
+                       "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=",
+                       "dev": true
+               },
                "type-detect": {
                        "version": "4.0.8",
                        "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
                        "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
                        "dev": true
                },
+               "typedarray": {
+                       "version": "0.0.6",
+                       "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+                       "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
+                       "dev": true
+               },
                "typescript": {
                        "version": "3.6.3",
                        "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.6.3.tgz",
                        "integrity": "sha512-N7bceJL1CtRQ2RiG0AQME13ksR7DiuQh/QehubYcghzv20tnh+MQnQIuJddTmsbqYj+dztchykemz0zFzlvdQw==",
                        "dev": true
                },
+               "union-value": {
+                       "version": "1.0.1",
+                       "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
+                       "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==",
+                       "dev": true,
+                       "requires": {
+                               "arr-union": "3.1.0",
+                               "get-value": "2.0.6",
+                               "is-extendable": "0.1.1",
+                               "set-value": "2.0.1"
+                       }
+               },
+               "unique-filename": {
+                       "version": "1.1.1",
+                       "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz",
+                       "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==",
+                       "dev": true,
+                       "requires": {
+                               "unique-slug": "2.0.2"
+                       }
+               },
+               "unique-slug": {
+                       "version": "2.0.2",
+                       "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz",
+                       "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==",
+                       "dev": true,
+                       "requires": {
+                               "imurmurhash": "0.1.4"
+                       }
+               },
+               "unset-value": {
+                       "version": "1.0.0",
+                       "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
+                       "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
+                       "dev": true,
+                       "requires": {
+                               "has-value": "0.3.1",
+                               "isobject": "3.0.1"
+                       },
+                       "dependencies": {
+                               "has-value": {
+                                       "version": "0.3.1",
+                                       "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
+                                       "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
+                                       "dev": true,
+                                       "requires": {
+                                               "get-value": "2.0.6",
+                                               "has-values": "0.1.4",
+                                               "isobject": "2.1.0"
+                                       },
+                                       "dependencies": {
+                                               "isobject": {
+                                                       "version": "2.1.0",
+                                                       "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
+                                                       "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
+                                                       "dev": true,
+                                                       "requires": {
+                                                               "isarray": "1.0.0"
+                                                       }
+                                               }
+                                       }
+                               },
+                               "has-values": {
+                                       "version": "0.1.4",
+                                       "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
+                                       "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=",
+                                       "dev": true
+                               }
+                       }
+               },
+               "upath": {
+                       "version": "1.2.0",
+                       "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz",
+                       "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==",
+                       "dev": true
+               },
+               "uri-js": {
+                       "version": "4.2.2",
+                       "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
+                       "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
+                       "dev": true,
+                       "requires": {
+                               "punycode": "2.1.1"
+                       }
+               },
+               "urix": {
+                       "version": "0.1.0",
+                       "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
+                       "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
+                       "dev": true
+               },
+               "url": {
+                       "version": "0.11.0",
+                       "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
+                       "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
+                       "dev": true,
+                       "requires": {
+                               "punycode": "1.3.2",
+                               "querystring": "0.2.0"
+                       },
+                       "dependencies": {
+                               "punycode": {
+                                       "version": "1.3.2",
+                                       "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
+                                       "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=",
+                                       "dev": true
+                               }
+                       }
+               },
+               "use": {
+                       "version": "3.1.1",
+                       "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
+                       "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
+                       "dev": true
+               },
+               "util": {
+                       "version": "0.11.1",
+                       "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz",
+                       "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==",
+                       "dev": true,
+                       "requires": {
+                               "inherits": "2.0.3"
+                       },
+                       "dependencies": {
+                               "inherits": {
+                                       "version": "2.0.3",
+                                       "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+                                       "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+                                       "dev": true
+                               }
+                       }
+               },
+               "util-deprecate": {
+                       "version": "1.0.2",
+                       "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+                       "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
+                       "dev": true
+               },
+               "v8-compile-cache": {
+                       "version": "2.0.3",
+                       "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz",
+                       "integrity": "sha512-CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w==",
+                       "dev": true
+               },
+               "vm-browserify": {
+                       "version": "1.1.0",
+                       "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.0.tgz",
+                       "integrity": "sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw==",
+                       "dev": true
+               },
+               "watchpack": {
+                       "version": "1.6.0",
+                       "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz",
+                       "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==",
+                       "dev": true,
+                       "requires": {
+                               "chokidar": "2.1.8",
+                               "graceful-fs": "4.2.2",
+                               "neo-async": "2.6.1"
+                       }
+               },
+               "webpack": {
+                       "version": "4.41.1",
+                       "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.1.tgz",
+                       "integrity": "sha512-ak7u4tUu/U63sCVxA571IuPZO/Q0pZ9cEXKg+R/woxkDzVovq57uB6L2Hlg/pC8LCU+TWpvtcYwsstivQwMJmw==",
+                       "dev": true,
+                       "requires": {
+                               "@webassemblyjs/ast": "1.8.5",
+                               "@webassemblyjs/helper-module-context": "1.8.5",
+                               "@webassemblyjs/wasm-edit": "1.8.5",
+                               "@webassemblyjs/wasm-parser": "1.8.5",
+                               "acorn": "6.3.0",
+                               "ajv": "6.10.2",
+                               "ajv-keywords": "3.4.1",
+                               "chrome-trace-event": "1.0.2",
+                               "enhanced-resolve": "4.1.1",
+                               "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.3"
+                       },
+                       "dependencies": {
+                               "braces": {
+                                       "version": "2.3.2",
+                                       "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+                                       "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+                                       "dev": true,
+                                       "requires": {
+                                               "arr-flatten": "1.1.0",
+                                               "array-unique": "0.3.2",
+                                               "extend-shallow": "2.0.1",
+                                               "fill-range": "4.0.0",
+                                               "isobject": "3.0.1",
+                                               "repeat-element": "1.1.3",
+                                               "snapdragon": "0.8.2",
+                                               "snapdragon-node": "2.1.1",
+                                               "split-string": "3.1.0",
+                                               "to-regex": "3.0.2"
+                                       },
+                                       "dependencies": {
+                                               "extend-shallow": {
+                                                       "version": "2.0.1",
+                                                       "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+                                                       "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+                                                       "dev": true,
+                                                       "requires": {
+                                                               "is-extendable": "0.1.1"
+                                                       }
+                                               }
+                                       }
+                               },
+                               "fill-range": {
+                                       "version": "4.0.0",
+                                       "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+                                       "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
+                                       "dev": true,
+                                       "requires": {
+                                               "extend-shallow": "2.0.1",
+                                               "is-number": "3.0.0",
+                                               "repeat-string": "1.6.1",
+                                               "to-regex-range": "2.1.1"
+                                       },
+                                       "dependencies": {
+                                               "extend-shallow": {
+                                                       "version": "2.0.1",
+                                                       "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+                                                       "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+                                                       "dev": true,
+                                                       "requires": {
+                                                               "is-extendable": "0.1.1"
+                                                       }
+                                               }
+                                       }
+                               },
+                               "is-buffer": {
+                                       "version": "1.1.6",
+                                       "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+                                       "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
+                                       "dev": true
+                               },
+                               "is-number": {
+                                       "version": "3.0.0",
+                                       "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+                                       "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+                                       "dev": true,
+                                       "requires": {
+                                               "kind-of": "3.2.2"
+                                       },
+                                       "dependencies": {
+                                               "kind-of": {
+                                                       "version": "3.2.2",
+                                                       "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+                                                       "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+                                                       "dev": true,
+                                                       "requires": {
+                                                               "is-buffer": "1.1.6"
+                                                       }
+                                               }
+                                       }
+                               },
+                               "memory-fs": {
+                                       "version": "0.4.1",
+                                       "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz",
+                                       "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=",
+                                       "dev": true,
+                                       "requires": {
+                                               "errno": "0.1.7",
+                                               "readable-stream": "2.3.6"
+                                       }
+                               },
+                               "micromatch": {
+                                       "version": "3.1.10",
+                                       "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+                                       "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+                                       "dev": true,
+                                       "requires": {
+                                               "arr-diff": "4.0.0",
+                                               "array-unique": "0.3.2",
+                                               "braces": "2.3.2",
+                                               "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.13",
+                                               "object.pick": "1.3.0",
+                                               "regex-not": "1.0.2",
+                                               "snapdragon": "0.8.2",
+                                               "to-regex": "3.0.2"
+                                       }
+                               },
+                               "to-regex-range": {
+                                       "version": "2.1.1",
+                                       "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
+                                       "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
+                                       "dev": true,
+                                       "requires": {
+                                               "is-number": "3.0.0",
+                                               "repeat-string": "1.6.1"
+                                       }
+                               }
+                       }
+               },
+               "webpack-cli": {
+                       "version": "3.3.9",
+                       "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.9.tgz",
+                       "integrity": "sha512-xwnSxWl8nZtBl/AFJCOn9pG7s5CYUYdZxmmukv+fAHLcBIHM36dImfpQg3WfShZXeArkWlf6QRw24Klcsv8a5A==",
+                       "dev": true,
+                       "requires": {
+                               "chalk": "2.4.2",
+                               "cross-spawn": "6.0.5",
+                               "enhanced-resolve": "4.1.0",
+                               "findup-sync": "3.0.0",
+                               "global-modules": "2.0.0",
+                               "import-local": "2.0.0",
+                               "interpret": "1.2.0",
+                               "loader-utils": "1.2.3",
+                               "supports-color": "6.1.0",
+                               "v8-compile-cache": "2.0.3",
+                               "yargs": "13.2.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==",
+                                       "dev": true
+                               },
+                               "enhanced-resolve": {
+                                       "version": "4.1.0",
+                                       "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz",
+                                       "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==",
+                                       "dev": true,
+                                       "requires": {
+                                               "graceful-fs": "4.2.2",
+                                               "memory-fs": "0.4.1",
+                                               "tapable": "1.1.3"
+                                       }
+                               },
+                               "memory-fs": {
+                                       "version": "0.4.1",
+                                       "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz",
+                                       "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=",
+                                       "dev": true,
+                                       "requires": {
+                                               "errno": "0.1.7",
+                                               "readable-stream": "2.3.6"
+                                       }
+                               },
+                               "string-width": {
+                                       "version": "3.1.0",
+                                       "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+                                       "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+                                       "dev": true,
+                                       "requires": {
+                                               "emoji-regex": "7.0.3",
+                                               "is-fullwidth-code-point": "2.0.0",
+                                               "strip-ansi": "5.2.0"
+                                       }
+                               },
+                               "strip-ansi": {
+                                       "version": "5.2.0",
+                                       "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+                                       "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+                                       "dev": true,
+                                       "requires": {
+                                               "ansi-regex": "4.1.0"
+                                       }
+                               },
+                               "supports-color": {
+                                       "version": "6.1.0",
+                                       "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+                                       "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+                                       "dev": true,
+                                       "requires": {
+                                               "has-flag": "3.0.0"
+                                       }
+                               },
+                               "yargs": {
+                                       "version": "13.2.4",
+                                       "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.2.4.tgz",
+                                       "integrity": "sha512-HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg==",
+                                       "dev": true,
+                                       "requires": {
+                                               "cliui": "5.0.0",
+                                               "find-up": "3.0.0",
+                                               "get-caller-file": "2.0.5",
+                                               "os-locale": "3.1.0",
+                                               "require-directory": "2.1.1",
+                                               "require-main-filename": "2.0.0",
+                                               "set-blocking": "2.0.0",
+                                               "string-width": "3.1.0",
+                                               "which-module": "2.0.0",
+                                               "y18n": "4.0.0",
+                                               "yargs-parser": "13.1.1"
+                                       }
+                               }
+                       }
+               },
+               "webpack-sources": {
+                       "version": "1.4.3",
+                       "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz",
+                       "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==",
+                       "dev": true,
+                       "requires": {
+                               "source-list-map": "2.0.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==",
+                                       "dev": true
+                               }
+                       }
+               },
                "which": {
                        "version": "1.3.1",
                        "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
                                "string-width": "2.1.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==",
+                       "dev": true,
+                       "requires": {
+                               "errno": "0.1.7"
+                       }
+               },
                "wrap-ansi": {
                        "version": "5.1.0",
                        "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
                        "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
                        "dev": true
                },
+               "xtend": {
+                       "version": "4.0.2",
+                       "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+                       "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
+                       "dev": true
+               },
                "y18n": {
                        "version": "4.0.0",
                        "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
                        "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
                        "dev": true
                },
+               "yallist": {
+                       "version": "3.1.1",
+                       "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+                       "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+                       "dev": true
+               },
                "yargs": {
                        "version": "13.3.0",
                        "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz",
index 39c97ae948cb979ff085b80088154d306ac6c710..a2dd3c43674508fa03bdee6501b6b9d90c9ce0a5 100644 (file)
@@ -1,6 +1,6 @@
 {
        "name": "nanocurrency-web",
-       "version": "1.0.1",
+       "version": "1.0.2",
        "description": "Toolset for Nano cryptocurrency client side offline integrations",
        "author": "Miro Metsänheimo <miro@metsanheimo.fi>",
        "license": "MIT",
        "bugs": {
                "url": "https://github.com/numsu/nanocurrency-web-js/issues"
        },
+       "keywords": [
+               "nano",
+               "currency",
+               "mnemonic",
+               "crypto"
+       ],
        "main": "dist/index.js",
        "types": "dist/index.d.ts",
+       "unpkg": "dist/index.min.js",
        "scripts": {
-               "build": "tsc",
+               "build": "tsc && npm run build:webpack",
+               "build:webpack": "webpack",
                "test": "mocha --reporter spec"
        },
        "dependencies": {
@@ -27,6 +35,9 @@
                "@types/node": "12.7.12",
                "chai": "4.2.0",
                "mocha": "6.2.1",
-               "typescript": "3.6.3"
+               "ts-loader": "6.2.0",
+               "typescript": "3.6.3",
+               "webpack": "4.41.1",
+               "webpack-cli": "3.3.9"
        }
 }
diff --git a/webpack.config.js b/webpack.config.js
new file mode 100644 (file)
index 0000000..d8192ae
--- /dev/null
@@ -0,0 +1,23 @@
+const path = require('path')
+
+module.exports = {
+       entry: './index.ts',
+       mode: 'production',
+       module: {
+               rules: [
+                       {
+                               test: /\.ts?$/,
+                               use: 'ts-loader',
+                               exclude: /node_modules/,
+                       },
+               ],
+       },
+       resolve: {
+               extensions: ['.ts', '.js', '.json'],
+       },
+       output: {
+               filename: 'index.min.js',
+               path: path.resolve(__dirname, 'dist'),
+               libraryTarget: 'commonjs2',
+       },
+}
\ No newline at end of file