diff --git a/effectFramesGenerator.html b/effectFramesGenerator.html
index bca7457..3da64dd 100644
--- a/effectFramesGenerator.html
+++ b/effectFramesGenerator.html
@@ -21,11 +21,12 @@
Effect frames generator (for animated effects PHP script)
(Enable Developer console in webbrowser to get more information about problems/progress)
-Client Version: (format 860, NOT 8.60)
+Client Version: (format 860, NOT 8.60, clients: 740 - 1099, type 1099 for latest .dat+.spr version [ex. from 12+])
Sprite file:
Dat file:
Force enable extended sprites: (for old clients .dat and .spr
with this feature enabled)
+Enable transparency: (OTC feature 'GameSpritesAlphaChannel')
LOAD FILES
diff --git a/effectFramesGenerator.ts b/effectFramesGenerator.ts
index af97e5f..4bc427c 100644
--- a/effectFramesGenerator.ts
+++ b/effectFramesGenerator.ts
@@ -7,17 +7,22 @@ import {WebsiteImageGeneratorBase} from "./websiteImageGeneratorBase";
class EffectFramesGenerator extends WebsiteImageGeneratorBase {
private forceEnableExtendedSpritesCheckbox: HTMLInputElement;
+ private enableTransparencyCheckbox: HTMLInputElement;
init() {
this.otbRequired = false;
super.init();
this.forceEnableExtendedSpritesCheckbox = document.getElementById('forceEnableExtendedSprites');
+ this.enableTransparencyCheckbox = document.getElementById('enableTransparency');
}
afterSetClientVersion() {
if (this.forceEnableExtendedSpritesCheckbox.checked) {
this.client.enableFeature(GameFeature.GameSpritesU32);
}
+ if (this.enableTransparencyCheckbox.checked) {
+ this.client.enableFeature(GameFeature.GameSpritesAlphaChannel);
+ }
}
startImageGenerator(imageGenerator: ImageGenerator, otbManager: OtbManager, datManager: DatManager, spriteManager: SpriteManager, zip) {
diff --git a/itemImageFramesGenerator.html b/itemImageFramesGenerator.html
index 153e77d..fc4dcff 100644
--- a/itemImageFramesGenerator.html
+++ b/itemImageFramesGenerator.html
@@ -1,42 +1,44 @@
-
-
- Item Image Frames Generator - OpenTibiaLibrary
-
-
-
-Item image frames generator (for animated items PHP script)
-
- How to use:
- 1. Type version of Tibia client.
- 2. Select SPR, DAT and OTB files.
- 3. Click "LOAD FILES", watch "Progress".
- 4. Click "GENERATE IMAGES", wait for ZIP file download.
- 5. Convert generated PNG images into animations using:
- https://item-images.ots.me/png-to-gif-converter/
- You can also download https://github.com/gesior/open-tibia-library
- and use command line PHP script "tools/item-image-frames-to-animated-gif-converter/cli_convert.php"
- to convert it to animations on your PC
-
- FILES ARE NOT SEND TO SERVER! EVERYTHING IS GENERATED ON YOUR COMPUTER.
-
- (Enable Developer console in webbrowser to get more information about problems/progress)
-
-Client Version: (format 860, NOT 8.60)
-Sprite file:
-Dat file:
-Otb file:
-Only pickable items:
-Force enable extended sprites: (for old clients .dat and .spr
-with this feature enabled)
-
-LOAD FILES
-
-
-GENERATE IMAGES
-
-
-Progress: Not running
-
-
-
-
+
+
+ Item Image Frames Generator - OpenTibiaLibrary
+
+
+
+Item image frames generator (for animated items PHP script)
+
+ How to use:
+ 1. Type version of Tibia client.
+ 2. Select SPR, DAT and OTB files.
+ 3. Click "LOAD FILES", watch "Progress".
+ 4. Click "GENERATE IMAGES", wait for ZIP file download.
+ 5. Convert generated PNG images into animations using:
+ https://item-images.ots.me/png-to-gif-converter/
+ You can also download https://github.com/gesior/open-tibia-library
+ and use command line PHP script "tools/item-image-frames-to-animated-gif-converter/cli_convert.php"
+ to convert it to animations on your PC
+
+ FILES ARE NOT SEND TO SERVER! EVERYTHING IS GENERATED ON YOUR COMPUTER.
+
+ (Enable Developer console in webbrowser to get more information about problems/progress)
+
+Client Version: (format 860, NOT 8.60, clients: 740 - 1099, type 1099 for latest .dat+.spr version [ex. from 12+])
+Sprite file:
+Dat file:
+Otb file:
+Only pickable items:
+Force enable extended sprites: (for old clients .dat and .spr
+with this feature enabled)
+Enable transparency: (OTC feature 'GameSpritesAlphaChannel')
+Use .dat item IDs as image IDs: (no 'items.otb' required)
+
+LOAD FILES
+
+
+GENERATE IMAGES
+
+
+Progress: Not running
+
+
+
+
diff --git a/itemImageFramesGenerator.ts b/itemImageFramesGenerator.ts
index ffe14d7..bc16257 100644
--- a/itemImageFramesGenerator.ts
+++ b/itemImageFramesGenerator.ts
@@ -2,36 +2,51 @@ import {DatManager} from "./modules/datFile/datManager";
import {OtbManager} from "./modules/otbFile/otbManager";
import {SpriteManager} from "./modules/sprFile/spriteManager";
import {ImageGenerator} from "./modules/imageGenerator/imageGenerator";
-import {GameFeature} from "./modules/constants/const";
+import {DatThingCategory, GameFeature} from "./modules/constants/const";
import {WebsiteImageGeneratorBase} from "./websiteImageGeneratorBase";
class ItemImageGenerator extends WebsiteImageGeneratorBase {
- private onlyPickupableCheckbox: HTMLInputElement;
+ private onlyPickableCheckbox: HTMLInputElement;
private forceEnableExtendedSpritesCheckbox: HTMLInputElement;
+ private enableTransparencyCheckbox: HTMLInputElement;
+ private useDatItemIdsAsImageIdsCheckbox: HTMLInputElement;
- private onlyPickupable = true;
+ private onlyPickable = true;
+ private useDatItemIdsAsImageIds = false;
init() {
super.init();
- this.onlyPickupableCheckbox = document.getElementById('onlyPickupable');
+ this.onlyPickableCheckbox = document.getElementById('onlyPickable');
this.forceEnableExtendedSpritesCheckbox = document.getElementById('forceEnableExtendedSprites');
+ this.enableTransparencyCheckbox = document.getElementById('enableTransparency');
+ this.useDatItemIdsAsImageIdsCheckbox = document.getElementById('useDatItemIdsAsImageIds');
}
afterSetClientVersion() {
if (this.forceEnableExtendedSpritesCheckbox.checked) {
this.client.enableFeature(GameFeature.GameSpritesU32);
}
+ if (this.enableTransparencyCheckbox.checked) {
+ this.client.enableFeature(GameFeature.GameSpritesAlphaChannel);
+ }
+ this.otbRequired = !this.useDatItemIdsAsImageIdsCheckbox.checked;
}
startImageGenerator(imageGenerator: ImageGenerator, otbManager: OtbManager, datManager: DatManager, spriteManager: SpriteManager, zip) {
- this.onlyPickupable = this.onlyPickupableCheckbox.checked;
+ this.onlyPickable = this.onlyPickableCheckbox.checked;
+ this.useDatItemIdsAsImageIds = this.useDatItemIdsAsImageIdsCheckbox.checked;
this.generateItemImage(imageGenerator, zip, 0);
}
generateItemImage(imageGenerator: ImageGenerator, zip, serverId: number) {
const self = this;
- this.progressValue(serverId, this.otbManager.getLastId());
- if (serverId > this.otbManager.getLastId()) {
+ if (this.useDatItemIdsAsImageIds) {
+ this.progressValue(serverId, this.datManager.getCategory(DatThingCategory.ThingCategoryItem).length);
+ } else {
+ this.progressValue(serverId, this.otbManager.getLastId());
+ }
+ if ((this.useDatItemIdsAsImageIds && serverId > this.datManager.getCategory(DatThingCategory.ThingCategoryItem).length) ||
+ (!this.useDatItemIdsAsImageIds && serverId > this.otbManager.getLastId())) {
this.progressText('Packing images to ZIP file, please wait (it may take a while)');
zip.generateAsync({type: "blob"}).then(function (blob: Blob) {
console.log('zip size', blob.size);
@@ -41,21 +56,25 @@ class ItemImageGenerator extends WebsiteImageGeneratorBase {
return;
}
- if (!this.otbManager.isValidOtbId(serverId)) {
- setTimeout(function () {
- self.generateItemImage(imageGenerator, zip, serverId + 1);
- }, 1);
- return;
- }
+ let clientItemId = serverId;
+ if (!this.useDatItemIdsAsImageIds) {
+ if (!this.otbManager.isValidOtbId(serverId)) {
+ setTimeout(function () {
+ self.generateItemImage(imageGenerator, zip, serverId + 1);
+ }, 1);
+ return;
+ }
- const clientItemId = this.otbManager.getItem(serverId).getClientId();
- if (!clientItemId) {
- console.log('otb ID not mapped to any dat ID', serverId);
- setTimeout(function () {
- self.generateItemImage(imageGenerator, zip, serverId + 1);
- }, 1);
- return;
+ clientItemId = this.otbManager.getItem(serverId).getClientId();
+ if (!clientItemId) {
+ console.log('otb ID not mapped to any dat ID', serverId);
+ setTimeout(function () {
+ self.generateItemImage(imageGenerator, zip, serverId + 1);
+ }, 1);
+ return;
+ }
}
+
let itemThingType = this.datManager.getItem(clientItemId);
if (!itemThingType) {
console.log('dat ID not found in dat file', serverId, clientItemId);
@@ -64,15 +83,20 @@ class ItemImageGenerator extends WebsiteImageGeneratorBase {
}, 1);
return;
}
- if (this.onlyPickupable && !itemThingType.isPickupable()) {
- console.log('skip not pickupable', serverId);
+ if (this.onlyPickable && !itemThingType.isPickupable()) {
+ console.log('skip not pickable', serverId);
setTimeout(function () {
self.generateItemImage(imageGenerator, zip, serverId + 1);
}, 1);
return;
}
- const itemSprites = imageGenerator.generateItemImagesByServerId(serverId);
+ let itemSprites = null;
+ if (this.useDatItemIdsAsImageIds) {
+ itemSprites = imageGenerator.generateItemImagesByClientId(serverId);
+ } else {
+ itemSprites = imageGenerator.generateItemImagesByServerId(serverId);
+ }
if (!itemSprites || itemSprites.length == 0) {
setTimeout(function () {
self.generateItemImage(imageGenerator, zip, serverId + 1);
diff --git a/itemImageGenerator.html b/itemImageGenerator.html
index 898eb4e..4c65e2a 100644
--- a/itemImageGenerator.html
+++ b/itemImageGenerator.html
@@ -1,37 +1,39 @@
-
-
- Item Image Generator - OpenTibiaLibrary
-
-
-
-Item images generator
-
- How to use:
- 1. Type version of Tibia client.
- 2. Select SPR, DAT and OTB files.
- 3. Click "LOAD FILES", watch "Progress".
- 4. Click "GENERATE IMAGES", wait for ZIP file download.
-
- FILES ARE NOT SEND TO SERVER! EVERYTHING IS GENERATED ON YOUR COMPUTER.
-
- (Enable Developer console in webbrowser to get more information about problems/progress)
-
-Client Version: (format 860, NOT 8.60)
-Sprite file:
-Dat file:
-Otb file:
-Only pickable items:
-Force enable extended sprites: (for old clients .dat and .spr
-with this feature enabled)
-
-LOAD FILES
-
-
-GENERATE IMAGES
-
-
-Progress: Not running
-
-
-
-
+
+
+ Item Image Generator - OpenTibiaLibrary
+
+
+
+Item images generator
+
+ How to use:
+ 1. Type version of Tibia client.
+ 2. Select SPR, DAT and OTB files.
+ 3. Click "LOAD FILES", watch "Progress".
+ 4. Click "GENERATE IMAGES", wait for ZIP file download.
+
+ FILES ARE NOT SEND TO SERVER! EVERYTHING IS GENERATED ON YOUR COMPUTER.
+
+ (Enable Developer console in webbrowser to get more information about problems/progress)
+
+Client Version: (format 860, NOT 8.60, clients: 740 - 1099, type 1099 for latest .dat+.spr version [ex. from 12+])
+Sprite file:
+Dat file:
+Otb file:
+Only pickable items:
+Force enable extended sprites: (for old clients .dat and .spr
+with this feature enabled)
+Enable transparency: (OTC feature 'GameSpritesAlphaChannel')
+Use .dat item IDs as image IDs: (no 'items.otb' required)
+
+LOAD FILES
+
+
+GENERATE IMAGES
+
+
+Progress: Not running
+
+
+
+
diff --git a/itemImageGenerator.ts b/itemImageGenerator.ts
index f8c69d4..d67652b 100755
--- a/itemImageGenerator.ts
+++ b/itemImageGenerator.ts
@@ -1,131 +1,155 @@
-import {ImageGenerator} from "./modules/imageGenerator/imageGenerator";
-import {GameFeature} from "./modules/constants/const";
-import {WebsiteImageGeneratorBase} from "./websiteImageGeneratorBase";
-import {OtbManager} from "./modules/otbFile/otbManager";
-import {DatManager} from "./modules/datFile/datManager";
-import {SpriteManager} from "./modules/sprFile/spriteManager";
-
-let GIF = require('gif.js');
-
-class ItemImageGenerator extends WebsiteImageGeneratorBase {
- private onlyPickupableCheckbox: HTMLInputElement;
- private forceEnableExtendedSpritesCheckbox: HTMLInputElement;
-
- private onlyPickupable = true;
-
- init() {
- super.init();
- this.onlyPickupableCheckbox = document.getElementById('onlyPickupable');
- this.forceEnableExtendedSpritesCheckbox = document.getElementById('forceEnableExtendedSprites');
- }
-
- afterSetClientVersion() {
- if (this.forceEnableExtendedSpritesCheckbox.checked) {
- this.client.enableFeature(GameFeature.GameSpritesU32);
- }
- }
-
- startImageGenerator(imageGenerator: ImageGenerator, otbManager: OtbManager, datManager: DatManager, spriteManager: SpriteManager, zip) {
- this.onlyPickupable = this.onlyPickupableCheckbox.checked;
- this.generateItemImage(imageGenerator, zip, 0);
- }
-
- generateItemImage(imageGenerator: ImageGenerator, zip, serverId: number) {
- const self = this;
- this.progressValue(serverId, this.otbManager.getLastId());
- if (serverId > this.otbManager.getLastId()) {
- this.progressText('Packing images to ZIP file, please wait (it may take a while)');
- zip.generateAsync({type: "blob"}).then(function (blob: Blob) {
- console.log('zip size', blob.size);
- self.progressText('ZIP generated, it should start download now.');
- self.downloadBlob('items.zip', blob);
- });
- return;
- }
-
- if (!this.otbManager.isValidOtbId(serverId)) {
- setTimeout(function () {
- self.generateItemImage(imageGenerator, zip, serverId + 1);
- }, 1);
- return;
- }
-
- const clientItemId = this.otbManager.getItem(serverId).getClientId();
- if (!clientItemId) {
- console.log('otb ID not mapped to any dat ID', serverId);
- setTimeout(function () {
- self.generateItemImage(imageGenerator, zip, serverId + 1);
- }, 1);
- return;
- }
- let itemThingType = this.datManager.getItem(clientItemId);
- if (!itemThingType) {
- console.log('dat ID not found in dat file', serverId, clientItemId);
- setTimeout(function () {
- self.generateItemImage(imageGenerator, zip, serverId + 1);
- }, 1);
- return;
- }
- if (this.onlyPickupable && !itemThingType.isPickupable()) {
- console.log('skip not pickupable', serverId);
- setTimeout(function () {
- self.generateItemImage(imageGenerator, zip, serverId + 1);
- }, 1);
- return;
- }
-
- const itemSprite = imageGenerator.generateItemImageByServerId(serverId);
- if (!itemSprite) {
- setTimeout(function () {
- self.generateItemImage(imageGenerator, zip, serverId + 1);
- }, 1);
- return;
- }
-
- const canvas = document.createElement('canvas');
- canvas.width = itemSprite.getWidth();
- canvas.height = itemSprite.getHeight();
- document.getElementsByTagName('body')[0].appendChild(canvas);
- const ctx = canvas.getContext("2d");
- const palette = ctx.getImageData(0, 0, itemSprite.getWidth(), itemSprite.getHeight());
- palette.data.set(new Uint8ClampedArray(itemSprite.getPixels().m_buffer.buffer));
- ctx.putImageData(palette, 0, 0);
-
- if (self.imageFormat == 'png') {
- const callback = function (blob) {
- canvas.remove();
- zip.file('items/' + serverId + '.png', blob);
- setTimeout(function () {
- self.generateItemImage(imageGenerator, zip, serverId + 1);
- }, 1);
-
- };
- canvas.toBlob(callback);
- } else {
- const gif = new GIF({
- workers: 1,
- quality: 10,
- width: itemSprite.getWidth(),
- height: itemSprite.getHeight(),
- workerScript: './js/gif.worker.js',
- transparent: 'rgba(0,0,0,0)'
- });
-
- gif.addFrame(canvas, {copy: true});
- canvas.remove();
-
- gif.on('finished', function (blob) {
- zip.file(serverId + '.gif', blob);
- setTimeout(function () {
- self.generateItemImage(imageGenerator, zip, serverId + 1);
- }, 1);
-
- });
-
- gif.render();
- }
- }
-}
-
-const itemImageGenerator = new ItemImageGenerator();
-itemImageGenerator.init();
+import {ImageGenerator} from "./modules/imageGenerator/imageGenerator";
+import {DatThingCategory, GameFeature} from "./modules/constants/const";
+import {WebsiteImageGeneratorBase} from "./websiteImageGeneratorBase";
+import {OtbManager} from "./modules/otbFile/otbManager";
+import {DatManager} from "./modules/datFile/datManager";
+import {SpriteManager} from "./modules/sprFile/spriteManager";
+
+let GIF = require('gif.js');
+
+class ItemImageGenerator extends WebsiteImageGeneratorBase {
+ private onlyPickableCheckbox: HTMLInputElement;
+ private forceEnableExtendedSpritesCheckbox: HTMLInputElement;
+ private enableTransparencyCheckbox: HTMLInputElement;
+ private useDatItemIdsAsImageIdsCheckbox: HTMLInputElement;
+
+ private onlyPickable = true;
+ private useDatItemIdsAsImageIds = false;
+
+ init() {
+ super.init();
+ this.onlyPickableCheckbox = document.getElementById('onlyPickable');
+ this.forceEnableExtendedSpritesCheckbox = document.getElementById('forceEnableExtendedSprites');
+ this.enableTransparencyCheckbox = document.getElementById('enableTransparency');
+ this.useDatItemIdsAsImageIdsCheckbox = document.getElementById('useDatItemIdsAsImageIds');
+ }
+
+ afterSetClientVersion() {
+ if (this.forceEnableExtendedSpritesCheckbox.checked) {
+ this.client.enableFeature(GameFeature.GameSpritesU32);
+ }
+ if (this.enableTransparencyCheckbox.checked) {
+ this.client.enableFeature(GameFeature.GameSpritesAlphaChannel);
+ }
+ this.otbRequired = !this.useDatItemIdsAsImageIdsCheckbox.checked;
+ }
+
+ startImageGenerator(imageGenerator: ImageGenerator, otbManager: OtbManager, datManager: DatManager, spriteManager: SpriteManager, zip) {
+ this.onlyPickable = this.onlyPickableCheckbox.checked;
+ this.useDatItemIdsAsImageIds = this.useDatItemIdsAsImageIdsCheckbox.checked;
+ this.generateItemImage(imageGenerator, zip, 0);
+ }
+
+ generateItemImage(imageGenerator: ImageGenerator, zip, serverId: number) {
+ const self = this;
+ if (this.useDatItemIdsAsImageIds) {
+ this.progressValue(serverId, this.datManager.getCategory(DatThingCategory.ThingCategoryItem).length);
+ } else {
+ this.progressValue(serverId, this.otbManager.getLastId());
+ }
+ if ((this.useDatItemIdsAsImageIds && serverId > this.datManager.getCategory(DatThingCategory.ThingCategoryItem).length) ||
+ (!this.useDatItemIdsAsImageIds && serverId > this.otbManager.getLastId())) {
+ this.progressText('Packing images to ZIP file, please wait (it may take a while)');
+ zip.generateAsync({type: "blob"}).then(function (blob: Blob) {
+ console.log('zip size', blob.size);
+ self.progressText('ZIP generated, it should start download now.');
+ self.downloadBlob('items.zip', blob);
+ });
+ return;
+ }
+
+ let clientItemId = serverId;
+ if (!this.useDatItemIdsAsImageIds) {
+ if (!this.otbManager.isValidOtbId(serverId)) {
+ setTimeout(function () {
+ self.generateItemImage(imageGenerator, zip, serverId + 1);
+ }, 1);
+ return;
+ }
+
+ clientItemId = this.otbManager.getItem(serverId).getClientId();
+ if (!clientItemId) {
+ console.log('otb ID not mapped to any dat ID', serverId);
+ setTimeout(function () {
+ self.generateItemImage(imageGenerator, zip, serverId + 1);
+ }, 1);
+ return;
+ }
+ }
+
+ let itemThingType = this.datManager.getItem(clientItemId);
+ if (!itemThingType) {
+ console.log('dat ID not found in dat file', serverId, clientItemId);
+ setTimeout(function () {
+ self.generateItemImage(imageGenerator, zip, serverId + 1);
+ }, 1);
+ return;
+ }
+ if (this.onlyPickable && !itemThingType.isPickupable()) {
+ console.log('skip not pickable', serverId);
+ setTimeout(function () {
+ self.generateItemImage(imageGenerator, zip, serverId + 1);
+ }, 1);
+ return;
+ }
+
+ let itemSprite = null;
+ if (this.useDatItemIdsAsImageIds) {
+ itemSprite = imageGenerator.generateItemImageByClientId(serverId);
+ } else {
+ itemSprite = imageGenerator.generateItemImageByServerId(serverId);
+ }
+ if (!itemSprite) {
+ setTimeout(function () {
+ self.generateItemImage(imageGenerator, zip, serverId + 1);
+ }, 1);
+ return;
+ }
+
+ const canvas = document.createElement('canvas');
+ canvas.width = itemSprite.getWidth();
+ canvas.height = itemSprite.getHeight();
+ document.getElementsByTagName('body')[0].appendChild(canvas);
+ const ctx = canvas.getContext("2d");
+ const palette = ctx.getImageData(0, 0, itemSprite.getWidth(), itemSprite.getHeight());
+ palette.data.set(new Uint8ClampedArray(itemSprite.getPixels().m_buffer.buffer));
+ ctx.putImageData(palette, 0, 0);
+
+ if (self.imageFormat == 'png') {
+ const callback = function (blob) {
+ canvas.remove();
+ zip.file('items/' + serverId + '.png', blob);
+ setTimeout(function () {
+ self.generateItemImage(imageGenerator, zip, serverId + 1);
+ }, 1);
+
+ };
+ canvas.toBlob(callback);
+ } else {
+ const gif = new GIF({
+ workers: 1,
+ quality: 10,
+ width: itemSprite.getWidth(),
+ height: itemSprite.getHeight(),
+ workerScript: './js/gif.worker.js',
+ transparent: 'rgba(0,0,0,0)'
+ });
+
+ gif.addFrame(canvas, {copy: true});
+ canvas.remove();
+
+ gif.on('finished', function (blob) {
+ zip.file(serverId + '.gif', blob);
+ setTimeout(function () {
+ self.generateItemImage(imageGenerator, zip, serverId + 1);
+ }, 1);
+
+ });
+
+ gif.render();
+ }
+ }
+}
+
+const itemImageGenerator = new ItemImageGenerator();
+itemImageGenerator.init();
diff --git a/missileFramesGenerator.html b/missileFramesGenerator.html
index 3fb138e..a518ba0 100644
--- a/missileFramesGenerator.html
+++ b/missileFramesGenerator.html
@@ -21,11 +21,12 @@ Missile frames generator
(Enable Developer console in webbrowser to get more information about problems/progress)
-Client Version: (format 860, NOT 8.60)
+Client Version: (format 860, NOT 8.60, clients: 740 - 1099, type 1099 for latest .dat+.spr version [ex. from 12+])
Sprite file:
Dat file:
Force enable extended sprites: (for old clients .dat and .spr
with this feature enabled)
+Enable transparency: (OTC feature 'GameSpritesAlphaChannel')
LOAD FILES
diff --git a/missileFramesGenerator.ts b/missileFramesGenerator.ts
index b3e6697..d8fa317 100644
--- a/missileFramesGenerator.ts
+++ b/missileFramesGenerator.ts
@@ -7,17 +7,22 @@ import {WebsiteImageGeneratorBase} from "./websiteImageGeneratorBase";
class MissileFramesGenerator extends WebsiteImageGeneratorBase {
private forceEnableExtendedSpritesCheckbox: HTMLInputElement;
+ private enableTransparencyCheckbox: HTMLInputElement;
init() {
this.otbRequired = false;
super.init();
this.forceEnableExtendedSpritesCheckbox = document.getElementById('forceEnableExtendedSprites');
+ this.enableTransparencyCheckbox = document.getElementById('enableTransparency');
}
afterSetClientVersion() {
if (this.forceEnableExtendedSpritesCheckbox.checked) {
this.client.enableFeature(GameFeature.GameSpritesU32);
}
+ if (this.enableTransparencyCheckbox.checked) {
+ this.client.enableFeature(GameFeature.GameSpritesAlphaChannel);
+ }
}
startImageGenerator(imageGenerator: ImageGenerator, otbManager: OtbManager, datManager: DatManager, spriteManager: SpriteManager, zip) {
diff --git a/modules/constants/const.ts b/modules/constants/const.ts
index dd553b6..63de182 100755
--- a/modules/constants/const.ts
+++ b/modules/constants/const.ts
@@ -1,240 +1,241 @@
-export enum Direction {
- North = 0,
- East,
- South,
- West,
-}
-
-export enum GameFeature {
- GameProtocolChecksum = 1,
- GameAccountNames = 2,
- GameChallengeOnLogin = 3,
- GamePenalityOnDeath = 4,
- GameNameOnNpcTrade = 5,
- GameDoubleFreeCapacity = 6,
- GameDoubleExperience = 7,
- GameTotalCapacity = 8,
- GameSkillsBase = 9,
- GamePlayerRegenerationTime = 10,
- GameChannelPlayerList = 11,
- GamePlayerMounts = 12,
- GameEnvironmentEffect = 13,
- GameCreatureEmblems = 14,
- GameItemAnimationPhase = 15,
- GameMagicEffectU16 = 16,
- GamePlayerMarket = 17,
- GameSpritesU32 = 18,
- // 19 unused
- GameOfflineTrainingTime = 20,
- GamePurseSlot = 21,
- GameFormatCreatureName = 22,
- GameSpellList = 23,
- GameClientPing = 24,
- GameExtendedClientPing = 25,
- GameDoubleHealth = 28,
- GameDoubleSkills = 29,
- GameChangeMapAwareRange = 30,
- GameMapMovePosition = 31,
- GameAttackSeq = 32,
- GameBlueNpcNameColor = 33,
- GameDiagonalAnimatedText = 34,
- GameLoginPending = 35,
- GameNewSpeedLaw = 36,
- GameForceFirstAutoWalkStep = 37,
- GameMinimapRemove = 38,
- GameDoubleShopSellAmount = 39,
- GameContainerPagination = 40,
- GameThingMarks = 41,
- GameLooktypeU16 = 42,
- GamePlayerStamina = 43,
- GamePlayerAddons = 44,
- GameMessageStatements = 45,
- GameMessageLevel = 46,
- GameNewFluids = 47,
- GamePlayerStateU16 = 48,
- GameNewOutfitProtocol = 49,
- GamePVPMode = 50,
- GameWritableDate = 51,
- GameAdditionalVipInfo = 52,
- GameBaseSkillU16 = 53,
- GameCreatureIcons = 54,
- GameHideNpcNames = 55,
- GameSpritesAlphaChannel = 56,
- GamePremiumExpiration = 57,
- GameBrowseField = 58,
- GameEnhancedAnimations = 59,
- GameOGLInformation = 60,
- GameMessageSizeCheck = 61,
- GamePreviewState = 62,
- GameLoginPacketEncryption = 63,
- GameClientVersion = 64,
- GameContentRevision = 65,
- GameExperienceBonus = 66,
- GameAuthenticator = 67,
- GameUnjustifiedPoints = 68,
- GameSessionKey = 69,
- GameDeathType = 70,
- GameIdleAnimations = 71,
- GameKeepUnawareTiles = 72,
- GameIngameStore = 73,
- GameIngameStoreHighlights = 74,
- GameIngameStoreServiceType = 75,
- GameAdditionalSkills = 76,
-
- LastGameFeature = 101
-}
-
-export enum FrameGroupType {
- FrameGroupDefault = 0,
- FrameGroupIdle = FrameGroupDefault,
- FrameGroupMoving
-}
-
-export enum DatThingCategory {
- ThingCategoryItem = 0,
- ThingCategoryCreature,
- ThingCategoryEffect,
- ThingCategoryMissile,
- ThingInvalidCategory,
- ThingLastCategory = ThingInvalidCategory
-}
-
-export enum DatThingAttr {
- ThingAttrGround = 0,
- ThingAttrGroundBorder = 1,
- ThingAttrOnBottom = 2,
- ThingAttrOnTop = 3,
- ThingAttrContainer = 4,
- ThingAttrStackable = 5,
- ThingAttrForceUse = 6,
- ThingAttrMultiUse = 7,
- ThingAttrWritable = 8,
- ThingAttrWritableOnce = 9,
- ThingAttrFluidContainer = 10,
- ThingAttrSplash = 11,
- ThingAttrNotWalkable = 12,
- ThingAttrNotMoveable = 13,
- ThingAttrBlockProjectile = 14,
- ThingAttrNotPathable = 15,
- ThingAttrPickupable = 16,
- ThingAttrHangable = 17,
- ThingAttrHookSouth = 18,
- ThingAttrHookEast = 19,
- ThingAttrRotateable = 20,
- ThingAttrLight = 21,
- ThingAttrDontHide = 22,
- ThingAttrTranslucent = 23,
- ThingAttrDisplacement = 24,
- ThingAttrElevation = 25,
- ThingAttrLyingCorpse = 26,
- ThingAttrAnimateAlways = 27,
- ThingAttrMinimapColor = 28,
- ThingAttrLensHelp = 29,
- ThingAttrFullGround = 30,
- ThingAttrLook = 31,
- ThingAttrCloth = 32,
- ThingAttrMarket = 33,
- ThingAttrUsable = 34,
- ThingAttrWrapable = 35,
- ThingAttrUnwrapable = 36,
- ThingAttrTopEffect = 37,
-
- // additional
- ThingAttrOpacity = 100,
- ThingAttrNotPreWalkable = 101,
-
- ThingAttrFloorChange = 252,
- ThingAttrNoMoveAnimation = 253, // 10.10: real value is 16, but we need to do this for backwards compatibility
- ThingAttrChargeable = 254, // deprecated
- ThingLastAttr = 255
-}
-
-export enum OtbItemCategory {
- ItemCategoryInvalid = 0,
- ItemCategoryGround = 1,
- ItemCategoryContainer = 2,
- ItemCategoryWeapon = 3,
- ItemCategoryAmmunition = 4,
- ItemCategoryArmor = 5,
- ItemCategoryCharges = 6,
- ItemCategoryTeleport = 7,
- ItemCategoryMagicField = 8,
- ItemCategoryWritable = 9,
- ItemCategoryKey = 10,
- ItemCategorySplash = 11,
- ItemCategoryFluid = 12,
- ItemCategoryDoor = 13,
- ItemCategoryDeprecated = 14,
- ItemCategoryLast = 15
-}
-
-export enum OtbItemTypeAttr {
- ItemTypeAttrServerId = 16,
- ItemTypeAttrClientId = 17,
- ItemTypeAttrName = 18, // deprecated
- ItemTypeAttrDesc = 19, // deprecated
- ItemTypeAttrSpeed = 20,
- ItemTypeAttrSlot = 21, // deprecated
- ItemTypeAttrMaxItems = 22, // deprecated
- ItemTypeAttrWeight = 23, // deprecated
- ItemTypeAttrWeapon = 24, // deprecated
- ItemTypeAttrAmmunition = 25, // deprecated
- ItemTypeAttrArmor = 26, // deprecated
- ItemTypeAttrMagicLevel = 27, // deprecated
- ItemTypeAttrMagicField = 28, // deprecated
- ItemTypeAttrWritable = 29, // deprecated
- ItemTypeAttrRotateTo = 30, // deprecated
- ItemTypeAttrDecay = 31, // deprecated
- ItemTypeAttrSpriteHash = 32,
- ItemTypeAttrMinimapColor = 33,
- ItemTypeAttr07 = 34,
- ItemTypeAttr08 = 35,
- ItemTypeAttrLight = 36,
- ItemTypeAttrDecay2 = 37, // deprecated
- ItemTypeAttrWeapon2 = 38, // deprecated
- ItemTypeAttrAmmunition2 = 39, // deprecated
- ItemTypeAttrArmor2 = 40, // deprecated
- ItemTypeAttrWritable2 = 41, // deprecated
- ItemTypeAttrLight2 = 42,
- ItemTypeAttrTopOrder = 43,
- ItemTypeAttrWrtiable3 = 44, // deprecated
- ItemTypeAttrWareId = 45,
- ItemTypeAttrLast = 46
-}
-
-export enum OtbItemFlags {
- FlagBlockSolid = 1 << 0,
- FlagBlockProjectile = 1 << 1,
- FlagBlockPathfind = 1 << 2,
- FlagHasHeight = 1 << 3,
- FlagUseable = 1 << 4,
- FlagPickupable = 1 << 5,
- FlagMoveable = 1 << 6,
- FlagStackable = 1 << 7,
- FlagFloorchangedown = 1 << 8, // unused
- FlagFloorchangenorth = 1 << 9, // unused
- FlagFloorchangeeast = 1 << 10, // unused
- FlagFloorchangesouth = 1 << 11, // unused
- FlagFloorchangewest = 1 << 12, // unused
- FlagAlwaysontop = 1 << 13,
- FlagReadable = 1 << 14,
- FlagRotatable = 1 << 15,
- FlagHangable = 1 << 16,
- FlagVertical = 1 << 17,
- FlagHorizontal = 1 << 18,
- FlagCannotdecay = 1 << 19, // unused
- FlagAllowdistread = 1 << 20,
- FlagUnused = 1 << 21, // unused
- FlagClientcharges = 1 << 22, // deprecated
- FlagLookthrough = 1 << 23,
- FlagAnimation = 1 << 24,
- FlagFulltile = 1 << 25, // unused
- FlagForceuse = 1 << 26,
-}
-
-export enum SpriteMask {
- SpriteMaskRed = 1,
- SpriteMaskGreen,
- SpriteMaskBlue,
- SpriteMaskYellow
-}
+export enum Direction {
+ North = 0,
+ East,
+ South,
+ West,
+}
+
+export enum GameFeature {
+ GameProtocolChecksum = 1,
+ GameAccountNames = 2,
+ GameChallengeOnLogin = 3,
+ GamePenalityOnDeath = 4,
+ GameNameOnNpcTrade = 5,
+ GameDoubleFreeCapacity = 6,
+ GameDoubleExperience = 7,
+ GameTotalCapacity = 8,
+ GameSkillsBase = 9,
+ GamePlayerRegenerationTime = 10,
+ GameChannelPlayerList = 11,
+ GamePlayerMounts = 12,
+ GameEnvironmentEffect = 13,
+ GameCreatureEmblems = 14,
+ GameItemAnimationPhase = 15,
+ GameMagicEffectU16 = 16,
+ GamePlayerMarket = 17,
+ GameSpritesU32 = 18,
+ // 19 unused
+ GameOfflineTrainingTime = 20,
+ GamePurseSlot = 21,
+ GameFormatCreatureName = 22,
+ GameSpellList = 23,
+ GameClientPing = 24,
+ GameExtendedClientPing = 25,
+ GameDoubleHealth = 28,
+ GameDoubleSkills = 29,
+ GameChangeMapAwareRange = 30,
+ GameMapMovePosition = 31,
+ GameAttackSeq = 32,
+ GameBlueNpcNameColor = 33,
+ GameDiagonalAnimatedText = 34,
+ GameLoginPending = 35,
+ GameNewSpeedLaw = 36,
+ GameForceFirstAutoWalkStep = 37,
+ GameMinimapRemove = 38,
+ GameDoubleShopSellAmount = 39,
+ GameContainerPagination = 40,
+ GameThingMarks = 41,
+ GameLooktypeU16 = 42,
+ GamePlayerStamina = 43,
+ GamePlayerAddons = 44,
+ GameMessageStatements = 45,
+ GameMessageLevel = 46,
+ GameNewFluids = 47,
+ GamePlayerStateU16 = 48,
+ GameNewOutfitProtocol = 49,
+ GamePVPMode = 50,
+ GameWritableDate = 51,
+ GameAdditionalVipInfo = 52,
+ GameBaseSkillU16 = 53,
+ GameCreatureIcons = 54,
+ GameHideNpcNames = 55,
+ GameSpritesAlphaChannel = 56,
+ GamePremiumExpiration = 57,
+ GameBrowseField = 58,
+ GameEnhancedAnimations = 59,
+ GameOGLInformation = 60,
+ GameMessageSizeCheck = 61,
+ GamePreviewState = 62,
+ GameLoginPacketEncryption = 63,
+ GameClientVersion = 64,
+ GameContentRevision = 65,
+ GameExperienceBonus = 66,
+ GameAuthenticator = 67,
+ GameUnjustifiedPoints = 68,
+ GameSessionKey = 69,
+ GameDeathType = 70,
+ GameIdleAnimations = 71,
+ GameKeepUnawareTiles = 72,
+ GameIngameStore = 73,
+ GameIngameStoreHighlights = 74,
+ GameIngameStoreServiceType = 75,
+ GameAdditionalSkills = 76,
+
+ LastGameFeature = 101
+}
+
+export enum FrameGroupType {
+ FrameGroupDefault = 0,
+ FrameGroupIdle = FrameGroupDefault,
+ FrameGroupMoving
+}
+
+export enum DatThingCategory {
+ ThingCategoryItem = 0,
+ ThingCategoryCreature,
+ ThingCategoryEffect,
+ ThingCategoryMissile,
+ ThingInvalidCategory,
+ ThingLastCategory = ThingInvalidCategory
+}
+
+export enum DatThingAttr {
+ ThingAttrGround = 0,
+ ThingAttrGroundBorder = 1,
+ ThingAttrOnBottom = 2,
+ ThingAttrOnTop = 3,
+ ThingAttrContainer = 4,
+ ThingAttrStackable = 5,
+ ThingAttrForceUse = 6,
+ ThingAttrMultiUse = 7,
+ ThingAttrWritable = 8,
+ ThingAttrWritableOnce = 9,
+ ThingAttrFluidContainer = 10,
+ ThingAttrSplash = 11,
+ ThingAttrNotWalkable = 12,
+ ThingAttrNotMoveable = 13,
+ ThingAttrBlockProjectile = 14,
+ ThingAttrNotPathable = 15,
+ ThingAttrPickupable = 16,
+ ThingAttrHangable = 17,
+ ThingAttrHookSouth = 18,
+ ThingAttrHookEast = 19,
+ ThingAttrRotateable = 20,
+ ThingAttrLight = 21,
+ ThingAttrDontHide = 22,
+ ThingAttrTranslucent = 23,
+ ThingAttrDisplacement = 24,
+ ThingAttrElevation = 25,
+ ThingAttrLyingCorpse = 26,
+ ThingAttrAnimateAlways = 27,
+ ThingAttrMinimapColor = 28,
+ ThingAttrLensHelp = 29,
+ ThingAttrFullGround = 30,
+ ThingAttrLook = 31,
+ ThingAttrCloth = 32,
+ ThingAttrMarket = 33,
+ ThingAttrUsable = 34,
+ ThingAttrWrapable = 35,
+ ThingAttrUnwrapable = 36,
+ ThingAttrTopEffect = 37,
+ ThingAttrBones = 38, // OTCv8 feature
+
+ // additional
+ ThingAttrOpacity = 100,
+ ThingAttrNotPreWalkable = 101,
+
+ ThingAttrFloorChange = 252,
+ ThingAttrNoMoveAnimation = 253, // 10.10: real value is 16, but we need to do this for backwards compatibility
+ ThingAttrChargeable = 254, // deprecated
+ ThingLastAttr = 255
+}
+
+export enum OtbItemCategory {
+ ItemCategoryInvalid = 0,
+ ItemCategoryGround = 1,
+ ItemCategoryContainer = 2,
+ ItemCategoryWeapon = 3,
+ ItemCategoryAmmunition = 4,
+ ItemCategoryArmor = 5,
+ ItemCategoryCharges = 6,
+ ItemCategoryTeleport = 7,
+ ItemCategoryMagicField = 8,
+ ItemCategoryWritable = 9,
+ ItemCategoryKey = 10,
+ ItemCategorySplash = 11,
+ ItemCategoryFluid = 12,
+ ItemCategoryDoor = 13,
+ ItemCategoryDeprecated = 14,
+ ItemCategoryLast = 15
+}
+
+export enum OtbItemTypeAttr {
+ ItemTypeAttrServerId = 16,
+ ItemTypeAttrClientId = 17,
+ ItemTypeAttrName = 18, // deprecated
+ ItemTypeAttrDesc = 19, // deprecated
+ ItemTypeAttrSpeed = 20,
+ ItemTypeAttrSlot = 21, // deprecated
+ ItemTypeAttrMaxItems = 22, // deprecated
+ ItemTypeAttrWeight = 23, // deprecated
+ ItemTypeAttrWeapon = 24, // deprecated
+ ItemTypeAttrAmmunition = 25, // deprecated
+ ItemTypeAttrArmor = 26, // deprecated
+ ItemTypeAttrMagicLevel = 27, // deprecated
+ ItemTypeAttrMagicField = 28, // deprecated
+ ItemTypeAttrWritable = 29, // deprecated
+ ItemTypeAttrRotateTo = 30, // deprecated
+ ItemTypeAttrDecay = 31, // deprecated
+ ItemTypeAttrSpriteHash = 32,
+ ItemTypeAttrMinimapColor = 33,
+ ItemTypeAttr07 = 34,
+ ItemTypeAttr08 = 35,
+ ItemTypeAttrLight = 36,
+ ItemTypeAttrDecay2 = 37, // deprecated
+ ItemTypeAttrWeapon2 = 38, // deprecated
+ ItemTypeAttrAmmunition2 = 39, // deprecated
+ ItemTypeAttrArmor2 = 40, // deprecated
+ ItemTypeAttrWritable2 = 41, // deprecated
+ ItemTypeAttrLight2 = 42,
+ ItemTypeAttrTopOrder = 43,
+ ItemTypeAttrWrtiable3 = 44, // deprecated
+ ItemTypeAttrWareId = 45,
+ ItemTypeAttrLast = 46
+}
+
+export enum OtbItemFlags {
+ FlagBlockSolid = 1 << 0,
+ FlagBlockProjectile = 1 << 1,
+ FlagBlockPathfind = 1 << 2,
+ FlagHasHeight = 1 << 3,
+ FlagUseable = 1 << 4,
+ FlagPickupable = 1 << 5,
+ FlagMoveable = 1 << 6,
+ FlagStackable = 1 << 7,
+ FlagFloorchangedown = 1 << 8, // unused
+ FlagFloorchangenorth = 1 << 9, // unused
+ FlagFloorchangeeast = 1 << 10, // unused
+ FlagFloorchangesouth = 1 << 11, // unused
+ FlagFloorchangewest = 1 << 12, // unused
+ FlagAlwaysontop = 1 << 13,
+ FlagReadable = 1 << 14,
+ FlagRotatable = 1 << 15,
+ FlagHangable = 1 << 16,
+ FlagVertical = 1 << 17,
+ FlagHorizontal = 1 << 18,
+ FlagCannotdecay = 1 << 19, // unused
+ FlagAllowdistread = 1 << 20,
+ FlagUnused = 1 << 21, // unused
+ FlagClientcharges = 1 << 22, // deprecated
+ FlagLookthrough = 1 << 23,
+ FlagAnimation = 1 << 24,
+ FlagFulltile = 1 << 25, // unused
+ FlagForceuse = 1 << 26,
+}
+
+export enum SpriteMask {
+ SpriteMaskRed = 1,
+ SpriteMaskGreen,
+ SpriteMaskBlue,
+ SpriteMaskYellow
+}
diff --git a/modules/datFile/datThingType.ts b/modules/datFile/datThingType.ts
index f7642bf..bbaa6cd 100644
--- a/modules/datFile/datThingType.ts
+++ b/modules/datFile/datThingType.ts
@@ -1,505 +1,531 @@
-import {DatThingAttr, DatThingCategory, FrameGroupType, GameFeature} from "../constants/const";
-import {Client} from "../client";
-import {InputFile} from "../fileHandlers/inputFile";
-import {error} from "../log";
-import {Animator} from "./animator";
-import {Color} from "../structures/color";
-import {DatThingTypeAttributes} from "./datThingTypeAttributes";
-import {Size} from "../structures/size";
-import {Point} from "../structures/point";
-import {MarketData} from "../structures/marketData";
-import {Light} from "../structures/light";
-import {OutputFile} from "../fileHandlers/outputFile";
-import {FrameGroup} from "./frameGroup";
-
-export class DatThingType {
- static maskColors = [Color.red, Color.green, Color.blue, Color.yellow];
-
- private m_category: DatThingCategory;
- private m_id: number = 0;
- private m_null: boolean = true;
- private m_attribs: DatThingTypeAttributes = new DatThingTypeAttributes();
-
- private m_displacement: Point = new Point();
- private m_elevation: number = 0;
-
- private m_frameGroups: FrameGroup[] = [];
-
- serialize(fin: OutputFile, category: DatThingCategory, client: Client, clientAttributeTranslator) {
- for (let clientAttrString in clientAttributeTranslator) {
- if (clientAttributeTranslator.hasOwnProperty(clientAttrString)) {
- let clientDatAttr = parseInt(clientAttrString);
- let thingAttr = parseInt(clientAttributeTranslator[clientDatAttr]);
- if (!this.hasAttr(thingAttr))
- continue;
-
- fin.addU8(clientDatAttr);
- switch (thingAttr) {
- case DatThingAttr.ThingAttrDisplacement: {
- if (client.getClientVersion() >= 755) {
- fin.addU16(this.m_displacement.x);
- fin.addU16(this.m_displacement.y);
- }
- break;
- }
- case DatThingAttr.ThingAttrLight: {
- const light: Light = this.m_attribs.get(thingAttr);
- fin.addU16(light.intensity);
- fin.addU16(light.color);
- break;
- }
- case DatThingAttr.ThingAttrMarket: {
- const market: MarketData = this.m_attribs.get(thingAttr);
- fin.addU16(market.category);
- fin.addU16(market.tradeAs);
- fin.addU16(market.showAs);
- fin.addString(market.name);
- fin.addU16(market.restrictVocation);
- fin.addU16(market.requiredLevel);
- break;
- }
- case DatThingAttr.ThingAttrUsable:
- case DatThingAttr.ThingAttrElevation:
- case DatThingAttr.ThingAttrGround:
- case DatThingAttr.ThingAttrWritable:
- case DatThingAttr.ThingAttrWritableOnce:
- case DatThingAttr.ThingAttrMinimapColor:
- case DatThingAttr.ThingAttrCloth:
- case DatThingAttr.ThingAttrLensHelp:
- fin.addU16(this.m_attribs.get(thingAttr));
- break;
- default:
- break;
- }
- }
- }
- fin.addU8(DatThingAttr.ThingLastAttr);
-
- let hasFrameGroups = (category == DatThingCategory.ThingCategoryCreature && client.getFeature(GameFeature.GameIdleAnimations));
- if (hasFrameGroups)
- fin.addU8(this.m_frameGroups.length);
-
- for (let frameGroupType in this.m_frameGroups) {
- if (hasFrameGroups)
- fin.addU8(Number(frameGroupType));
-
- const frameGroup = this.m_frameGroups[frameGroupType];
- fin.addU8(frameGroup.m_size.width());
- fin.addU8(frameGroup.m_size.height());
-
- if (frameGroup.m_size.width() > 1 || frameGroup.m_size.height() > 1)
- fin.addU8(frameGroup.m_realSize);
-
- fin.addU8(frameGroup.m_layers);
- fin.addU8(frameGroup.m_numPatternX);
- fin.addU8(frameGroup.m_numPatternY);
- if (client.getClientVersion() >= 755)
- fin.addU8(frameGroup.m_numPatternZ);
- fin.addU8(frameGroup.m_animationPhases);
-
- if (client.getFeature(GameFeature.GameEnhancedAnimations)) {
- if (frameGroup.m_animationPhases > 1 && frameGroup.m_animator != null) {
- frameGroup.m_animator.serialize(fin);
- }
- }
-
- for (let i2 = 0; i2 < frameGroup.m_spritesIndex.length; i2++) {
- if (client.getFeature(GameFeature.GameSpritesU32))
- fin.addU32(frameGroup.m_spritesIndex[i2]);
- else
- fin.addU16(frameGroup.m_spritesIndex[i2]);
- }
- }
- }
-
- unserialize(clientId: number, category: DatThingCategory, fin: InputFile, client: Client, clientTranslationArray) {
- this.m_null = false;
- this.m_id = clientId;
- this.m_category = category;
-
- let count = 0;
- let attr = -1;
- let done = false;
- for (let i = 0; i < DatThingAttr.ThingLastAttr; ++i) {
- count++;
- attr = fin.getU8();
- if (attr == DatThingAttr.ThingLastAttr) {
- done = true;
- break;
- }
-
- attr = clientTranslationArray[attr];
- switch (attr) {
- case DatThingAttr.ThingAttrDisplacement: {
- this.m_displacement = new Point(0, 0);
- if (client.getClientVersion() >= 755) {
- this.m_displacement.x = fin.getU16();
- this.m_displacement.y = fin.getU16();
- } else {
- this.m_displacement.x = 8;
- this.m_displacement.y = 8;
- }
- this.m_attribs.set(attr, true);
- break;
- }
- case DatThingAttr.ThingAttrLight: {
- let light = new Light();
- light.intensity = fin.getU16();
- light.color = fin.getU16();
- this.m_attribs.set(attr, light);
- break;
- }
- case DatThingAttr.ThingAttrMarket: {
- let market = new MarketData();
- market.category = fin.getU16();
- market.tradeAs = fin.getU16();
- market.showAs = fin.getU16();
- market.name = fin.getString();
- market.restrictVocation = fin.getU16();
- market.requiredLevel = fin.getU16();
- this.m_attribs.set(attr, market);
- break;
- }
- case DatThingAttr.ThingAttrElevation: {
- this.m_elevation = fin.getU16();
- this.m_attribs.set(attr, this.m_elevation);
- break;
- }
- case DatThingAttr.ThingAttrUsable:
- case DatThingAttr.ThingAttrGround:
- case DatThingAttr.ThingAttrWritable:
- case DatThingAttr.ThingAttrWritableOnce:
- case DatThingAttr.ThingAttrMinimapColor:
- case DatThingAttr.ThingAttrCloth:
- case DatThingAttr.ThingAttrLensHelp:
- this.m_attribs.set(attr, fin.getU16());
- break;
- default:
- this.m_attribs.set(attr, true);
- break;
- }
- }
-
- if (!done)
- error("corrupt data (id: %d, category: %d, count: %d, lastAttr: %d)", this.m_id, this.m_category, count, attr);
-
- let hasFrameGroups = (category == DatThingCategory.ThingCategoryCreature && client.getFeature(GameFeature.GameIdleAnimations));
- let groupCount = hasFrameGroups ? fin.getU8() : 1;
-
- for (let i = 0; i < groupCount; ++i) {
- let frameGroupType = (category == DatThingCategory.ThingCategoryCreature) ? FrameGroupType.FrameGroupMoving : FrameGroupType.FrameGroupIdle;
- if (hasFrameGroups)
- frameGroupType = fin.getU8();
-
- const frameGroup = new FrameGroup();
-
- let width = fin.getU8();
- let height = fin.getU8();
- frameGroup.m_size = new Size(width, height);
- if (width > 1 || height > 1) {
- frameGroup.m_realSize = fin.getU8();
- frameGroup.m_exactSize = Math.min(frameGroup.m_realSize, Math.max(width * 32, height * 32));
- } else
- frameGroup.m_exactSize = 32;
-
- frameGroup.m_layers = fin.getU8();
- frameGroup.m_numPatternX = fin.getU8();
- frameGroup.m_numPatternY = fin.getU8();
- if (client.getClientVersion() >= 755)
- frameGroup.m_numPatternZ = fin.getU8();
- else
- frameGroup.m_numPatternZ = 1;
-
- let groupAnimationsPhases = fin.getU8();
- frameGroup.m_animationPhases = groupAnimationsPhases;
-
- if (groupAnimationsPhases > 1 && client.getFeature(GameFeature.GameEnhancedAnimations)) {
- frameGroup.m_animator = new Animator();
- frameGroup.m_animator.unserialize(groupAnimationsPhases, fin);
- }
-
- let totalSprites = frameGroup.m_size.area() * frameGroup.m_layers * frameGroup.m_numPatternX * frameGroup.m_numPatternY * frameGroup.m_numPatternZ * groupAnimationsPhases;
-
- if (totalSprites > 4096)
- error("a thing type has more than 4096 sprites", totalSprites, frameGroup.m_size.area(), frameGroup.m_layers, frameGroup.m_numPatternX, frameGroup.m_numPatternY, frameGroup.m_numPatternZ, groupAnimationsPhases);
-
- frameGroup.m_spritesIndex = [];
- for (let i = 0; i < totalSprites; i++) {
- frameGroup.m_spritesIndex[i] = client.getFeature(GameFeature.GameSpritesU32) ? fin.getU32() : fin.getU16();
- }
-
- //console.log('spr', this.m_spritesIndex);
-
- this.m_frameGroups[frameGroupType] = frameGroup;
- }
- }
-
- getId(): number {
- return this.m_id;
- }
-
- getCategory(): DatThingCategory {
- return this.m_category;
- }
-
- isNull(): boolean {
- return this.m_null;
- }
-
- hasAttr(attr: DatThingAttr): boolean {
- return this.m_attribs.has(attr);
- }
-
- getDisplacement(): Point {
- return this.m_displacement;
- }
-
- getDisplacementX(): number {
- return this.getDisplacement().x;
- }
-
- getDisplacementY(): number {
- return this.getDisplacement().y;
- }
-
- getElevation(): number {
- return this.m_elevation;
- }
-
- getFrameGroups(): FrameGroup[] {
- return this.m_frameGroups;
- }
-
- getFrameGroup(frameGroupType: FrameGroupType): FrameGroup {
- return this.m_frameGroups[frameGroupType];
- }
-
- getGroundSpeed(): number {
- return this.m_attribs.get(DatThingAttr.ThingAttrGround);
- }
-
- getMaxTextLength(): number {
- return this.m_attribs.has(DatThingAttr.ThingAttrWritableOnce) ? this.m_attribs.get(DatThingAttr.ThingAttrWritableOnce) : this.m_attribs.get(DatThingAttr.ThingAttrWritable);
- }
-
- getLight(): Light {
- return this.m_attribs.get(DatThingAttr.ThingAttrLight);
- }
-
- getMinimapColor(): number {
- return this.m_attribs.get(DatThingAttr.ThingAttrMinimapColor);
- }
-
- getLensHelp(): number {
- return this.m_attribs.get(DatThingAttr.ThingAttrLensHelp);
- }
-
- getClothSlot(): number {
- return this.m_attribs.get(DatThingAttr.ThingAttrCloth);
- }
-
- getMarketData(): MarketData {
- return this.m_attribs.get(DatThingAttr.ThingAttrMarket);
- }
-
- isGround(): boolean {
- return this.m_attribs.has(DatThingAttr.ThingAttrGround);
- }
-
- isGroundBorder(): boolean {
- return this.m_attribs.has(DatThingAttr.ThingAttrGroundBorder);
- }
-
- isOnBottom(): boolean {
- return this.m_attribs.has(DatThingAttr.ThingAttrOnBottom);
- }
-
- isOnTop(): boolean {
- return this.m_attribs.has(DatThingAttr.ThingAttrOnTop);
- }
-
- isContainer(): boolean {
- return this.m_attribs.has(DatThingAttr.ThingAttrContainer);
- }
-
- isStackable(): boolean {
- return this.m_attribs.has(DatThingAttr.ThingAttrStackable);
- }
-
- isForceUse(): boolean {
- return this.m_attribs.has(DatThingAttr.ThingAttrForceUse);
- }
-
- isMultiUse(): boolean {
- return this.m_attribs.has(DatThingAttr.ThingAttrMultiUse);
- }
-
- isWritable(): boolean {
- return this.m_attribs.has(DatThingAttr.ThingAttrWritable);
- }
-
- isChargeable(): boolean {
- return this.m_attribs.has(DatThingAttr.ThingAttrChargeable);
- }
-
- isWritableOnce(): boolean {
- return this.m_attribs.has(DatThingAttr.ThingAttrWritableOnce);
- }
-
- isFluidContainer(): boolean {
- return this.m_attribs.has(DatThingAttr.ThingAttrFluidContainer);
- }
-
- isSplash(): boolean {
- return this.m_attribs.has(DatThingAttr.ThingAttrSplash);
- }
-
- isNotWalkable(): boolean {
- return this.m_attribs.has(DatThingAttr.ThingAttrNotWalkable);
- }
-
- isNotMoveable(): boolean {
- return this.m_attribs.has(DatThingAttr.ThingAttrNotMoveable);
- }
-
- blockProjectile(): boolean {
- return this.m_attribs.has(DatThingAttr.ThingAttrBlockProjectile);
- }
-
- isNotPathable(): boolean {
- return this.m_attribs.has(DatThingAttr.ThingAttrNotPathable);
- }
-
- isPickupable(): boolean {
- return this.m_attribs.has(DatThingAttr.ThingAttrPickupable);
- }
-
- isHangable(): boolean {
- return this.m_attribs.has(DatThingAttr.ThingAttrHangable);
- }
-
- isHookSouth(): boolean {
- return this.m_attribs.has(DatThingAttr.ThingAttrHookSouth);
- }
-
- isHookEast(): boolean {
- return this.m_attribs.has(DatThingAttr.ThingAttrHookEast);
- }
-
- isRotateable(): boolean {
- return this.m_attribs.has(DatThingAttr.ThingAttrRotateable);
- }
-
- hasLight(): boolean {
- return this.m_attribs.has(DatThingAttr.ThingAttrLight);
- }
-
- isDontHide(): boolean {
- return this.m_attribs.has(DatThingAttr.ThingAttrDontHide);
- }
-
- isTranslucent(): boolean {
- return this.m_attribs.has(DatThingAttr.ThingAttrTranslucent);
- }
-
- hasDisplacement(): boolean {
- return this.m_attribs.has(DatThingAttr.ThingAttrDisplacement);
- }
-
- hasElevation(): boolean {
- return this.m_attribs.has(DatThingAttr.ThingAttrElevation);
- }
-
- isLyingCorpse(): boolean {
- return this.m_attribs.has(DatThingAttr.ThingAttrLyingCorpse);
- }
-
- isAnimateAlways(): boolean {
- return this.m_attribs.has(DatThingAttr.ThingAttrAnimateAlways);
- }
-
- hasMiniMapColor(): boolean {
- return this.m_attribs.has(DatThingAttr.ThingAttrMinimapColor);
- }
-
- hasLensHelp(): boolean {
- return this.m_attribs.has(DatThingAttr.ThingAttrLensHelp);
- }
-
- isFullGround(): boolean {
- return this.m_attribs.has(DatThingAttr.ThingAttrFullGround);
- }
-
- isIgnoreLook(): boolean {
- return this.m_attribs.has(DatThingAttr.ThingAttrLook);
- }
-
- isCloth(): boolean {
- return this.m_attribs.has(DatThingAttr.ThingAttrCloth);
- }
-
- isMarketable(): boolean {
- return this.m_attribs.has(DatThingAttr.ThingAttrMarket);
- }
-
- isUsable(): boolean {
- return this.m_attribs.has(DatThingAttr.ThingAttrUsable);
- }
-
- isWrapable(): boolean {
- return this.m_attribs.has(DatThingAttr.ThingAttrWrapable);
- }
-
- isUnwrapable(): boolean {
- return this.m_attribs.has(DatThingAttr.ThingAttrUnwrapable);
- }
-
- isTopEffect(): boolean {
- return this.m_attribs.has(DatThingAttr.ThingAttrTopEffect);
- }
-
- isNotPreWalkable(): boolean {
- return this.m_attribs.has(DatThingAttr.ThingAttrNotPreWalkable);
- }
-
- setPathable(v: boolean) {
- if (v == true)
- this.m_attribs.remove(DatThingAttr.ThingAttrNotPathable);
- else
- this.m_attribs.set(DatThingAttr.ThingAttrNotPathable, true);
- }
-
- getBestTextureDimension(w: number, h: number, count: number): Size {
- const MAX = 32;
-
- let k = 1;
- while (k < w)
- k <<= 1;
- w = k;
-
- k = 1;
- while (k < h)
- k <<= 1;
- h = k;
-
- let numSprites = w * h * count;
- /*
- assert(numSprites <= MAX*MAX);
- assert(w <= MAX);
- assert(h <= MAX);
- */
- let bestDimension = new Size(MAX, MAX);
- for (let i = w; i <= MAX; i <<= 1) {
- for (let j = h; j <= MAX; j <<= 1) {
- let candidateDimension = new Size(i, j);
- if (candidateDimension.area() < numSprites)
- continue;
- if ((candidateDimension.area() < bestDimension.area()) ||
- (candidateDimension.area() == bestDimension.area() && candidateDimension.width() + candidateDimension.height() < bestDimension.width() + bestDimension.height()))
- bestDimension = candidateDimension;
- }
- }
-
- return bestDimension;
- }
-}
+import {DatThingAttr, DatThingCategory, FrameGroupType, GameFeature} from "../constants/const";
+import {Client} from "../client";
+import {InputFile} from "../fileHandlers/inputFile";
+import {error} from "../log";
+import {Animator} from "./animator";
+import {Color} from "../structures/color";
+import {DatThingTypeAttributes} from "./datThingTypeAttributes";
+import {Size} from "../structures/size";
+import {Point} from "../structures/point";
+import {MarketData} from "../structures/marketData";
+import {Light} from "../structures/light";
+import {OutputFile} from "../fileHandlers/outputFile";
+import {FrameGroup} from "./frameGroup";
+import {BonesData} from "../structures/bonesData";
+
+export class DatThingType {
+ static maskColors = [Color.red, Color.green, Color.blue, Color.yellow];
+
+ private m_category: DatThingCategory;
+ private m_id: number = 0;
+ private m_null: boolean = true;
+ private m_attribs: DatThingTypeAttributes = new DatThingTypeAttributes();
+
+ private m_displacement: Point = new Point();
+ private m_elevation: number = 0;
+
+ private m_frameGroups: FrameGroup[] = [];
+
+ serialize(fin: OutputFile, category: DatThingCategory, client: Client, clientAttributeTranslator) {
+ for (let clientAttrString in clientAttributeTranslator) {
+ if (clientAttributeTranslator.hasOwnProperty(clientAttrString)) {
+ let clientDatAttr = parseInt(clientAttrString);
+ let thingAttr = parseInt(clientAttributeTranslator[clientDatAttr]);
+ if (!this.hasAttr(thingAttr))
+ continue;
+
+ fin.addU8(clientDatAttr);
+ switch (thingAttr) {
+ case DatThingAttr.ThingAttrDisplacement: {
+ if (client.getClientVersion() >= 755) {
+ fin.addU16(this.m_displacement.x);
+ fin.addU16(this.m_displacement.y);
+ }
+ break;
+ }
+ case DatThingAttr.ThingAttrLight: {
+ const light: Light = this.m_attribs.get(thingAttr);
+ fin.addU16(light.intensity);
+ fin.addU16(light.color);
+ break;
+ }
+ case DatThingAttr.ThingAttrMarket: {
+ const market: MarketData = this.m_attribs.get(thingAttr);
+ fin.addU16(market.category);
+ fin.addU16(market.tradeAs);
+ fin.addU16(market.showAs);
+ fin.addString(market.name);
+ fin.addU16(market.restrictVocation);
+ fin.addU16(market.requiredLevel);
+ break;
+ }
+ case DatThingAttr.ThingAttrBones: { // 'Oen44' OTCv8 extra parameter for Wings, 8x U16
+ const bones: BonesData = this.m_attribs.get(thingAttr);
+ fin.addU16(bones.north_x);
+ fin.addU16(bones.north_y);
+ fin.addU16(bones.south_x);
+ fin.addU16(bones.south_y);
+ fin.addU16(bones.east_x);
+ fin.addU16(bones.east_y);
+ fin.addU16(bones.west_x);
+ fin.addU16(bones.west_y);
+ break;
+ }
+ case DatThingAttr.ThingAttrUsable:
+ case DatThingAttr.ThingAttrElevation:
+ case DatThingAttr.ThingAttrGround:
+ case DatThingAttr.ThingAttrWritable:
+ case DatThingAttr.ThingAttrWritableOnce:
+ case DatThingAttr.ThingAttrMinimapColor:
+ case DatThingAttr.ThingAttrCloth:
+ case DatThingAttr.ThingAttrLensHelp:
+ fin.addU16(this.m_attribs.get(thingAttr));
+ break;
+ default:
+ break;
+ }
+ }
+ }
+ fin.addU8(DatThingAttr.ThingLastAttr);
+
+ let hasFrameGroups = (category == DatThingCategory.ThingCategoryCreature && client.getFeature(GameFeature.GameIdleAnimations));
+ if (hasFrameGroups)
+ fin.addU8(this.m_frameGroups.length);
+
+ for (let frameGroupType in this.m_frameGroups) {
+ if (hasFrameGroups)
+ fin.addU8(Number(frameGroupType));
+
+ const frameGroup = this.m_frameGroups[frameGroupType];
+ fin.addU8(frameGroup.m_size.width());
+ fin.addU8(frameGroup.m_size.height());
+
+ if (frameGroup.m_size.width() > 1 || frameGroup.m_size.height() > 1)
+ fin.addU8(frameGroup.m_realSize);
+
+ fin.addU8(frameGroup.m_layers);
+ fin.addU8(frameGroup.m_numPatternX);
+ fin.addU8(frameGroup.m_numPatternY);
+ if (client.getClientVersion() >= 755)
+ fin.addU8(frameGroup.m_numPatternZ);
+ fin.addU8(frameGroup.m_animationPhases);
+
+ if (client.getFeature(GameFeature.GameEnhancedAnimations)) {
+ if (frameGroup.m_animationPhases > 1 && frameGroup.m_animator != null) {
+ frameGroup.m_animator.serialize(fin);
+ }
+ }
+
+ for (let i2 = 0; i2 < frameGroup.m_spritesIndex.length; i2++) {
+ if (client.getFeature(GameFeature.GameSpritesU32))
+ fin.addU32(frameGroup.m_spritesIndex[i2]);
+ else
+ fin.addU16(frameGroup.m_spritesIndex[i2]);
+ }
+ }
+ }
+
+ unserialize(clientId: number, category: DatThingCategory, fin: InputFile, client: Client, clientTranslationArray) {
+ this.m_null = false;
+ this.m_id = clientId;
+ this.m_category = category;
+
+ let count = 0;
+ let attr = -1;
+ let done = false;
+ for (let i = 0; i < DatThingAttr.ThingLastAttr; ++i) {
+ count++;
+ attr = fin.getU8();
+ if (attr == DatThingAttr.ThingLastAttr) {
+ done = true;
+ break;
+ }
+
+ attr = clientTranslationArray[attr];
+ switch (attr) {
+ case DatThingAttr.ThingAttrDisplacement: {
+ this.m_displacement = new Point(0, 0);
+ if (client.getClientVersion() >= 755) {
+ this.m_displacement.x = fin.getU16();
+ this.m_displacement.y = fin.getU16();
+ } else {
+ this.m_displacement.x = 8;
+ this.m_displacement.y = 8;
+ }
+ this.m_attribs.set(attr, true);
+ break;
+ }
+ case DatThingAttr.ThingAttrLight: {
+ let light = new Light();
+ light.intensity = fin.getU16();
+ light.color = fin.getU16();
+ this.m_attribs.set(attr, light);
+ break;
+ }
+ case DatThingAttr.ThingAttrMarket: {
+ let market = new MarketData();
+ market.category = fin.getU16();
+ market.tradeAs = fin.getU16();
+ market.showAs = fin.getU16();
+ market.name = fin.getString();
+ market.restrictVocation = fin.getU16();
+ market.requiredLevel = fin.getU16();
+ this.m_attribs.set(attr, market);
+ break;
+ }
+ case DatThingAttr.ThingAttrBones: { // 'Oen44' OTCv8 extra parameter for Wings, 8x U16
+ let bones = new BonesData();
+ bones.north_x = fin.getU16();
+ bones.north_y = fin.getU16();
+ bones.south_x = fin.getU16();
+ bones.south_y = fin.getU16();
+ bones.east_x = fin.getU16();
+ bones.east_y = fin.getU16();
+ bones.west_x = fin.getU16();
+ bones.west_y = fin.getU16();
+ this.m_attribs.set(attr, bones);
+ break;
+ }
+ case DatThingAttr.ThingAttrElevation: {
+ this.m_elevation = fin.getU16();
+ this.m_attribs.set(attr, this.m_elevation);
+ break;
+ }
+ case DatThingAttr.ThingAttrUsable:
+ case DatThingAttr.ThingAttrGround:
+ case DatThingAttr.ThingAttrWritable:
+ case DatThingAttr.ThingAttrWritableOnce:
+ case DatThingAttr.ThingAttrMinimapColor:
+ case DatThingAttr.ThingAttrCloth:
+ case DatThingAttr.ThingAttrLensHelp:
+ this.m_attribs.set(attr, fin.getU16());
+ break;
+ default:
+ this.m_attribs.set(attr, true);
+ break;
+ }
+ }
+
+ if (!done)
+ error("corrupt data (id: %d, category: %d, count: %d, lastAttr: %d)", this.m_id, this.m_category, count, attr);
+
+ let hasFrameGroups = (category == DatThingCategory.ThingCategoryCreature && client.getFeature(GameFeature.GameIdleAnimations));
+ let groupCount = hasFrameGroups ? fin.getU8() : 1;
+
+ for (let i = 0; i < groupCount; ++i) {
+ let frameGroupType = (category == DatThingCategory.ThingCategoryCreature) ? FrameGroupType.FrameGroupMoving : FrameGroupType.FrameGroupIdle;
+ if (hasFrameGroups)
+ frameGroupType = fin.getU8();
+
+ const frameGroup = new FrameGroup();
+
+ let width = fin.getU8();
+ let height = fin.getU8();
+ frameGroup.m_size = new Size(width, height);
+ if (width > 1 || height > 1) {
+ frameGroup.m_realSize = fin.getU8();
+ frameGroup.m_exactSize = Math.min(frameGroup.m_realSize, Math.max(width * 32, height * 32));
+ } else
+ frameGroup.m_exactSize = 32;
+
+ frameGroup.m_layers = fin.getU8();
+ frameGroup.m_numPatternX = fin.getU8();
+ frameGroup.m_numPatternY = fin.getU8();
+ if (client.getClientVersion() >= 755)
+ frameGroup.m_numPatternZ = fin.getU8();
+ else
+ frameGroup.m_numPatternZ = 1;
+
+ let groupAnimationsPhases = fin.getU8();
+ frameGroup.m_animationPhases = groupAnimationsPhases;
+
+ if (groupAnimationsPhases > 1 && client.getFeature(GameFeature.GameEnhancedAnimations)) {
+ frameGroup.m_animator = new Animator();
+ frameGroup.m_animator.unserialize(groupAnimationsPhases, fin);
+ }
+
+ let totalSprites = frameGroup.m_size.area() * frameGroup.m_layers * frameGroup.m_numPatternX * frameGroup.m_numPatternY * frameGroup.m_numPatternZ * groupAnimationsPhases;
+
+ if (totalSprites > 4096)
+ error("a thing type has more than 4096 sprites", totalSprites, frameGroup.m_size.area(), frameGroup.m_layers, frameGroup.m_numPatternX, frameGroup.m_numPatternY, frameGroup.m_numPatternZ, groupAnimationsPhases);
+
+ frameGroup.m_spritesIndex = [];
+ for (let i = 0; i < totalSprites; i++) {
+ frameGroup.m_spritesIndex[i] = client.getFeature(GameFeature.GameSpritesU32) ? fin.getU32() : fin.getU16();
+ }
+
+ //console.log('spr', this.m_spritesIndex);
+
+ this.m_frameGroups[frameGroupType] = frameGroup;
+ }
+ }
+
+ getId(): number {
+ return this.m_id;
+ }
+
+ getCategory(): DatThingCategory {
+ return this.m_category;
+ }
+
+ isNull(): boolean {
+ return this.m_null;
+ }
+
+ hasAttr(attr: DatThingAttr): boolean {
+ return this.m_attribs.has(attr);
+ }
+
+ getDisplacement(): Point {
+ return this.m_displacement;
+ }
+
+ getDisplacementX(): number {
+ return this.getDisplacement().x;
+ }
+
+ getDisplacementY(): number {
+ return this.getDisplacement().y;
+ }
+
+ getElevation(): number {
+ return this.m_elevation;
+ }
+
+ getFrameGroups(): FrameGroup[] {
+ return this.m_frameGroups;
+ }
+
+ getFrameGroup(frameGroupType: FrameGroupType): FrameGroup {
+ return this.m_frameGroups[frameGroupType];
+ }
+
+ getGroundSpeed(): number {
+ return this.m_attribs.get(DatThingAttr.ThingAttrGround);
+ }
+
+ getMaxTextLength(): number {
+ return this.m_attribs.has(DatThingAttr.ThingAttrWritableOnce) ? this.m_attribs.get(DatThingAttr.ThingAttrWritableOnce) : this.m_attribs.get(DatThingAttr.ThingAttrWritable);
+ }
+
+ getLight(): Light {
+ return this.m_attribs.get(DatThingAttr.ThingAttrLight);
+ }
+
+ getMinimapColor(): number {
+ return this.m_attribs.get(DatThingAttr.ThingAttrMinimapColor);
+ }
+
+ getLensHelp(): number {
+ return this.m_attribs.get(DatThingAttr.ThingAttrLensHelp);
+ }
+
+ getClothSlot(): number {
+ return this.m_attribs.get(DatThingAttr.ThingAttrCloth);
+ }
+
+ getMarketData(): MarketData {
+ return this.m_attribs.get(DatThingAttr.ThingAttrMarket);
+ }
+
+ isGround(): boolean {
+ return this.m_attribs.has(DatThingAttr.ThingAttrGround);
+ }
+
+ isGroundBorder(): boolean {
+ return this.m_attribs.has(DatThingAttr.ThingAttrGroundBorder);
+ }
+
+ isOnBottom(): boolean {
+ return this.m_attribs.has(DatThingAttr.ThingAttrOnBottom);
+ }
+
+ isOnTop(): boolean {
+ return this.m_attribs.has(DatThingAttr.ThingAttrOnTop);
+ }
+
+ isContainer(): boolean {
+ return this.m_attribs.has(DatThingAttr.ThingAttrContainer);
+ }
+
+ isStackable(): boolean {
+ return this.m_attribs.has(DatThingAttr.ThingAttrStackable);
+ }
+
+ isForceUse(): boolean {
+ return this.m_attribs.has(DatThingAttr.ThingAttrForceUse);
+ }
+
+ isMultiUse(): boolean {
+ return this.m_attribs.has(DatThingAttr.ThingAttrMultiUse);
+ }
+
+ isWritable(): boolean {
+ return this.m_attribs.has(DatThingAttr.ThingAttrWritable);
+ }
+
+ isChargeable(): boolean {
+ return this.m_attribs.has(DatThingAttr.ThingAttrChargeable);
+ }
+
+ isWritableOnce(): boolean {
+ return this.m_attribs.has(DatThingAttr.ThingAttrWritableOnce);
+ }
+
+ isFluidContainer(): boolean {
+ return this.m_attribs.has(DatThingAttr.ThingAttrFluidContainer);
+ }
+
+ isSplash(): boolean {
+ return this.m_attribs.has(DatThingAttr.ThingAttrSplash);
+ }
+
+ isNotWalkable(): boolean {
+ return this.m_attribs.has(DatThingAttr.ThingAttrNotWalkable);
+ }
+
+ isNotMoveable(): boolean {
+ return this.m_attribs.has(DatThingAttr.ThingAttrNotMoveable);
+ }
+
+ blockProjectile(): boolean {
+ return this.m_attribs.has(DatThingAttr.ThingAttrBlockProjectile);
+ }
+
+ isNotPathable(): boolean {
+ return this.m_attribs.has(DatThingAttr.ThingAttrNotPathable);
+ }
+
+ isPickupable(): boolean {
+ return this.m_attribs.has(DatThingAttr.ThingAttrPickupable);
+ }
+
+ isHangable(): boolean {
+ return this.m_attribs.has(DatThingAttr.ThingAttrHangable);
+ }
+
+ isHookSouth(): boolean {
+ return this.m_attribs.has(DatThingAttr.ThingAttrHookSouth);
+ }
+
+ isHookEast(): boolean {
+ return this.m_attribs.has(DatThingAttr.ThingAttrHookEast);
+ }
+
+ isRotateable(): boolean {
+ return this.m_attribs.has(DatThingAttr.ThingAttrRotateable);
+ }
+
+ hasLight(): boolean {
+ return this.m_attribs.has(DatThingAttr.ThingAttrLight);
+ }
+
+ isDontHide(): boolean {
+ return this.m_attribs.has(DatThingAttr.ThingAttrDontHide);
+ }
+
+ isTranslucent(): boolean {
+ return this.m_attribs.has(DatThingAttr.ThingAttrTranslucent);
+ }
+
+ hasDisplacement(): boolean {
+ return this.m_attribs.has(DatThingAttr.ThingAttrDisplacement);
+ }
+
+ hasElevation(): boolean {
+ return this.m_attribs.has(DatThingAttr.ThingAttrElevation);
+ }
+
+ isLyingCorpse(): boolean {
+ return this.m_attribs.has(DatThingAttr.ThingAttrLyingCorpse);
+ }
+
+ isAnimateAlways(): boolean {
+ return this.m_attribs.has(DatThingAttr.ThingAttrAnimateAlways);
+ }
+
+ hasMiniMapColor(): boolean {
+ return this.m_attribs.has(DatThingAttr.ThingAttrMinimapColor);
+ }
+
+ hasLensHelp(): boolean {
+ return this.m_attribs.has(DatThingAttr.ThingAttrLensHelp);
+ }
+
+ isFullGround(): boolean {
+ return this.m_attribs.has(DatThingAttr.ThingAttrFullGround);
+ }
+
+ isIgnoreLook(): boolean {
+ return this.m_attribs.has(DatThingAttr.ThingAttrLook);
+ }
+
+ isCloth(): boolean {
+ return this.m_attribs.has(DatThingAttr.ThingAttrCloth);
+ }
+
+ isMarketable(): boolean {
+ return this.m_attribs.has(DatThingAttr.ThingAttrMarket);
+ }
+
+ isUsable(): boolean {
+ return this.m_attribs.has(DatThingAttr.ThingAttrUsable);
+ }
+
+ isWrapable(): boolean {
+ return this.m_attribs.has(DatThingAttr.ThingAttrWrapable);
+ }
+
+ isUnwrapable(): boolean {
+ return this.m_attribs.has(DatThingAttr.ThingAttrUnwrapable);
+ }
+
+ isTopEffect(): boolean {
+ return this.m_attribs.has(DatThingAttr.ThingAttrTopEffect);
+ }
+
+ isNotPreWalkable(): boolean {
+ return this.m_attribs.has(DatThingAttr.ThingAttrNotPreWalkable);
+ }
+
+ setPathable(v: boolean) {
+ if (v == true)
+ this.m_attribs.remove(DatThingAttr.ThingAttrNotPathable);
+ else
+ this.m_attribs.set(DatThingAttr.ThingAttrNotPathable, true);
+ }
+
+ getBestTextureDimension(w: number, h: number, count: number): Size {
+ const MAX = 32;
+
+ let k = 1;
+ while (k < w)
+ k <<= 1;
+ w = k;
+
+ k = 1;
+ while (k < h)
+ k <<= 1;
+ h = k;
+
+ let numSprites = w * h * count;
+ /*
+ assert(numSprites <= MAX*MAX);
+ assert(w <= MAX);
+ assert(h <= MAX);
+ */
+ let bestDimension = new Size(MAX, MAX);
+ for (let i = w; i <= MAX; i <<= 1) {
+ for (let j = h; j <= MAX; j <<= 1) {
+ let candidateDimension = new Size(i, j);
+ if (candidateDimension.area() < numSprites)
+ continue;
+ if ((candidateDimension.area() < bestDimension.area()) ||
+ (candidateDimension.area() == bestDimension.area() && candidateDimension.width() + candidateDimension.height() < bestDimension.width() + bestDimension.height()))
+ bestDimension = candidateDimension;
+ }
+ }
+
+ return bestDimension;
+ }
+}
diff --git a/modules/structures/bonesData.ts b/modules/structures/bonesData.ts
new file mode 100644
index 0000000..5343340
--- /dev/null
+++ b/modules/structures/bonesData.ts
@@ -0,0 +1,10 @@
+export class BonesData {
+ north_x: number;
+ north_y: number;
+ south_x: number;
+ south_y: number;
+ east_x: number;
+ east_y: number;
+ west_x: number;
+ west_y: number;
+}
diff --git a/outfitImageGenerator.html b/outfitImageGenerator.html
index f1bd4c0..91a5b2d 100644
--- a/outfitImageGenerator.html
+++ b/outfitImageGenerator.html
@@ -16,12 +16,13 @@ Outfit images generator
(Enable Developer console in webbrowser to get more information about problems/progress)
-Client Version: (format 860, NOT 8.60)
+Client Version: (format 860, NOT 8.60, clients: 740 - 1099, type 1099 for latest .dat+.spr version [ex. from 12+])
Sprite file:
Dat file:
Load idle animation when possible:
Force enable extended sprites: (for old clients .dat and .spr
with this feature enabled)
+Enable transparency: (OTC feature 'GameSpritesAlphaChannel')
LOAD FILES
diff --git a/outfitImageGenerator.ts b/outfitImageGenerator.ts
index ba7662f..89c0dda 100644
--- a/outfitImageGenerator.ts
+++ b/outfitImageGenerator.ts
@@ -9,6 +9,7 @@ import {OutfitImagePhpGeneratorCode} from "./outfitImagePhpGeneratorCode";
class OutfitImageGenerator extends WebsiteImageGeneratorBase {
private idleAnimationCheckbox: HTMLInputElement;
private forceEnableExtendedSpritesCheckbox: HTMLInputElement;
+ private enableTransparencyCheckbox: HTMLInputElement;
private idleAnimation = true;
@@ -17,12 +18,16 @@ class OutfitImageGenerator extends WebsiteImageGeneratorBase {
super.init();
this.idleAnimationCheckbox = document.getElementById('idleAnimation');
this.forceEnableExtendedSpritesCheckbox = document.getElementById('forceEnableExtendedSprites');
+ this.enableTransparencyCheckbox = document.getElementById('enableTransparency');
}
afterSetClientVersion() {
if (this.forceEnableExtendedSpritesCheckbox.checked) {
this.client.enableFeature(GameFeature.GameSpritesU32);
}
+ if (this.enableTransparencyCheckbox.checked) {
+ this.client.enableFeature(GameFeature.GameSpritesAlphaChannel);
+ }
}
startImageGenerator(imageGenerator: ImageGenerator, otbManager: OtbManager, datManager: DatManager, spriteManager: SpriteManager, zip) {
diff --git a/outfitImagePhpGeneratorCode.ts b/outfitImagePhpGeneratorCode.ts
index 44b6ee8..3d63fd7 100644
--- a/outfitImagePhpGeneratorCode.ts
+++ b/outfitImagePhpGeneratorCode.ts
@@ -1,5 +1,5 @@
export class OutfitImagePhpGeneratorCode {
- public version = '0.1.4';
+ public version = '0.1.6';
private files = {
"libs\/gifCreator.php": "PD9waHANCg0KLyoqDQogKiBDcmVhdGUgYW4gYW5pbWF0ZWQgR0lGIGZyb20gbXVsdGlwbGUgaW1hZ2VzDQogKg0KICogQHVwZGF0ZSBieSBnZXNpb3IsIHBocCA4LjAgY29tcGF0aWJpbGl0eQ0KICoNCiAqIEB2ZXJzaW9uIDEuMA0KICogQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL1N5YmlvL0dpZkNyZWF0b3INCiAqIEBhdXRob3IgU3liaW8gKENsw6ltZW50IEd1aWxsZW1haW4gIC8gQFN5YmlvMDEpDQogKiBAbGljZW5zZSBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvZ3BsLWxpY2Vuc2UucGhwIEdOVSBQdWJsaWMgTGljZW5zZQ0KICogQGNvcHlyaWdodCBDbMOpbWVudCBHdWlsbGVtYWluDQogKi8NCmNsYXNzIEdpZkNyZWF0b3INCnsNCiAgICAvKioNCiAgICAgKiBAdmFyIHN0cmluZyBUaGUgZ2lmIHN0cmluZyBzb3VyY2UgKG9sZDogdGhpcy0+R0lGKQ0KICAgICAqLw0KICAgIHByaXZhdGUgJGdpZjsNCg0KICAgIC8qKg0KICAgICAqIEB2YXIgc3RyaW5nIEVuY29kZXIgdmVyc2lvbiAob2xkOiB0aGlzLT5WRVIpDQogICAgICovDQogICAgcHJpdmF0ZSAkdmVyc2lvbjsNCg0KICAgIC8qKg0KICAgICAqIEB2YXIgYm9vbGVhbiBDaGVjayB0aGUgaW1hZ2UgaXMgYnVpbGQgb3Igbm90IChvbGQ6IHRoaXMtPklNRykNCiAgICAgKi8NCiAgICBwcml2YXRlICRpbWdCdWlsdDsNCg0KICAgIC8qKg0KICAgICAqIEB2YXIgYXJyYXkgRnJhbWVzIHN0cmluZyBzb3VyY2VzIChvbGQ6IHRoaXMtPkJVRikNCiAgICAgKi8NCiAgICBwcml2YXRlICRmcmFtZVNvdXJjZXM7DQoNCiAgICAvKioNCiAgICAgKiBAdmFyIGludGVnZXIgR2lmIGxvb3AgKG9sZDogdGhpcy0+TE9QKQ0KICAgICAqLw0KICAgIHByaXZhdGUgJGxvb3A7DQoNCiAgICAvKioNCiAgICAgKiBAdmFyIGludGVnZXIgR2lmIGRpcyAob2xkOiB0aGlzLT5ESVMpDQogICAgICovDQogICAgcHJpdmF0ZSAkZGlzOw0KDQogICAgLyoqDQogICAgICogQHZhciBpbnRlZ2VyIEdpZiBjb2xvciAob2xkOiB0aGlzLT5DT0wpDQogICAgICovDQogICAgcHJpdmF0ZSAkY29sb3VyOw0KDQogICAgLyoqDQogICAgICogQHZhciBhcnJheSAob2xkOiB0aGlzLT5FUlIpDQogICAgICovDQogICAgcHJpdmF0ZSAkZXJyb3JzOw0KDQogICAgLy8gTWV0aG9kcw0KICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQoNCiAgICAvKioNCiAgICAgKiBDb25zdHJ1Y3Rvcg0KICAgICAqLw0KICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpDQogICAgew0KICAgICAgICAkdGhpcy0+cmVzZXQoKTsNCg0KICAgICAgICAvLyBTdGF0aWMgZGF0YQ0KICAgICAgICAkdGhpcy0+dmVyc2lvbiA9ICdHaWZDcmVhdG9yOiBVbmRlciBkZXZlbG9wbWVudCc7DQogICAgICAgICR0aGlzLT5lcnJvcnMgPSBhcnJheSgNCiAgICAgICAgICAgICdFUlIwMCcgPT4gJ0RvZXMgbm90IHN1cHBvcnRlZCBmdW5jdGlvbiBmb3Igb25seSBvbmUgaW1hZ2UuJywNCiAgICAgICAgICAgICdFUlIwMScgPT4gJ1NvdXJjZSBpcyBub3QgYSBHSUYgaW1hZ2UuJywNCiAgICAgICAgICAgICdFUlIwMicgPT4gJ1lvdSBoYXZlIHRvIGdpdmUgcmVzb3VyY2UgaW1hZ2UgdmFyaWFibGVzLCBpbWFnZSBVUkwgb3IgaW1hZ2UgYmluYXJ5IHNvdXJjZXMgaW4gJGZyYW1lcyBhcnJheS4nLA0KICAgICAgICAgICAgJ0VSUjAzJyA9PiAnRG9lcyBub3QgbWFrZSBhbmltYXRpb24gZnJvbSBhbmltYXRlZCBHSUYgc291cmNlLicsDQogICAgICAgICk7DQogICAgfQ0KDQogICAgLyoqDQogICAgICogQ3JlYXRlIHRoZSBHSUYgc3RyaW5nIChvbGQ6IEdJRkVuY29kZXIpDQogICAgICoNCiAgICAgKiBAcGFyYW0gYXJyYXkgJGZyYW1lcyBBbiBhcnJheSBvZiBmcmFtZTogY2FuIGJlIGZpbGUgcGF0aHMsIHJlc291cmNlIGltYWdlIHZhcmlhYmxlcywgYmluYXJ5IHNvdXJjZXMgb3IgaW1hZ2UgVVJMcw0KICAgICAqIEBwYXJhbSBhcnJheSAkZHVyYXRpb25zIEFuIGFycmF5IGNvbnRhaW5pbmcgdGhlIGR1cmF0aW9uIG9mIGVhY2ggZnJhbWUNCiAgICAgKiBAcGFyYW0gaW50ZWdlciAkbG9vcCBOdW1iZXIgb2YgR0lGIGxvb3BzIGJlZm9yZSBzdG9wcGluZyBhbmltYXRpb24gKFNldCAwIHRvIGdldCBhbiBpbmZpbml0ZSBsb29wKQ0KICAgICAqDQogICAgICogQHJldHVybiBzdHJpbmcgVGhlIEdJRiBzdHJpbmcgc291cmNlDQogICAgICovDQogICAgcHVibGljIGZ1bmN0aW9uIGNyZWF0ZSgkZnJhbWVzID0gYXJyYXkoKSwgJGR1cmF0aW9ucyA9IGFycmF5KCksICRsb29wID0gMCkNCiAgICB7DQogICAgICAgIGlmICghaXNfYXJyYXkoJGZyYW1lcykgJiYgIWlzX2FycmF5KCRkdXJhdGlvbnMpKSB7DQogICAgICAgICAgICB0aHJvdyBuZXcgXEV4Y2VwdGlvbigkdGhpcy0+dmVyc2lvbiAuICc6ICcgLiAkdGhpcy0+ZXJyb3JzWydFUlIwMCddKTsNCiAgICAgICAgfQ0KDQogICAgICAgICR0aGlzLT5sb29wID0gKCRsb29wID4gLTEpID8gJGxvb3AgOiAwOw0KICAgICAgICAkdGhpcy0+ZGlzID0gMjsNCg0KICAgICAgICBmb3IgKCRpID0gMDsgJGkgPCBjb3VudCgkZnJhbWVzKTsgJGkrKykgew0KICAgICAgICAgICAgaWYgKCRmcmFtZXNbJGldIGluc3RhbmNlb2YgR2RJbWFnZSB8fCBpc19yZXNvdXJjZSgkZnJhbWVzWyRpXSkpIHsgLy8gUmVzb3VyY2UgdmFyDQoNCiAgICAgICAgICAgICAgICAkcmVzb3VyY2VJbWcgPSAkZnJhbWVzWyRpXTsNCg0KICAgICAgICAgICAgICAgIG9iX3N0YXJ0KCk7DQogICAgICAgICAgICAgICAgaW1hZ2VnaWYoJGZyYW1lc1skaV0pOw0KICAgICAgICAgICAgICAgICR0aGlzLT5mcmFtZVNvdXJjZXNbXSA9IG9iX2dldF9jb250ZW50cygpOw0KICAgICAgICAgICAgICAgIG9iX2VuZF9jbGVhbigpOw0KICAgICAgICAgICAgfSBlbHNlaWYgKGlzX3N0cmluZygkZnJhbWVzWyRpXSkpIHsgLy8gRmlsZSBwYXRoIG9yIFVSTCBvciBCaW5hcnkgc291cmNlIGNvZGUNCg0KICAgICAgICAgICAgICAgIGlmIChmaWxlX2V4aXN0cygkZnJhbWVzWyRpXSkgfHwgZmlsdGVyX3ZhcigkZnJhbWVzWyRpXSwgRklMVEVSX1ZBTElEQVRFX1VSTCkpIHsgLy8gRmlsZSBwYXRoDQoNCiAgICAgICAgICAgICAgICAgICAgJGZyYW1lc1skaV0gPSBmaWxlX2dldF9jb250ZW50cygkZnJhbWVzWyRpXSk7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgJHJlc291cmNlSW1nID0gaW1hZ2VjcmVhdGVmcm9tc3RyaW5nKCRmcmFtZXNbJGldKTsNCg0KICAgICAgICAgICAgICAgIG9iX3N0YXJ0KCk7DQogICAgICAgICAgICAgICAgaW1hZ2VnaWYoJHJlc291cmNlSW1nKTsNCiAgICAgICAgICAgICAgICAkdGhpcy0+ZnJhbWVTb3VyY2VzW10gPSBvYl9nZXRfY29udGVudHMoKTsNCiAgICAgICAgICAgICAgICBvYl9lbmRfY2xlYW4oKTsNCiAgICAgICAgICAgIH0gZWxzZSB7IC8vIEZhaWwNCg0KICAgICAgICAgICAgICAgIHRocm93IG5ldyBcRXhjZXB0aW9uKCR0aGlzLT52ZXJzaW9uIC4gJzogJyAuICR0aGlzLT5lcnJvcnNbJ0VSUjAyJ10pOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoJGkgPT0gMCkgew0KICAgICAgICAgICAgICAgICRjb2xvdXIgPSBpbWFnZWNvbG9ydHJhbnNwYXJlbnQoJHJlc291cmNlSW1nKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKHN1YnN0cigkdGhpcy0+ZnJhbWVTb3VyY2VzWyRpXSwgMCwgNikgIT0gJ0dJRjg3YScgJiYgc3Vic3RyKA0KICAgICAgICAgICAgICAgICAgICAkdGhpcy0+ZnJhbWVTb3VyY2VzWyRpXSwNCiAgICAgICAgICAgICAgICAgICAgMCwNCiAgICAgICAgICAgICAgICAgICAgNg0KICAgICAgICAgICAgICAgICkgIT0gJ0dJRjg5YScpIHsNCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgXEV4Y2VwdGlvbigkdGhpcy0+dmVyc2lvbiAuICc6ICcgLiAkaSAuICcgJyAuICR0aGlzLT5lcnJvcnNbJ0VSUjAxJ10pOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBmb3IgKCRqID0gKDEzICsgMyAqICgyIDw8IChvcmQoJHRoaXMtPmZyYW1lU291cmNlc1skaV0gWzEwXSkgJiAweDA3KSkpLCAkayA9IHRydWU7ICRrOyAkaisrKSB7DQogICAgICAgICAgICAgICAgc3dpdGNoICgkdGhpcy0+ZnJhbWVTb3VyY2VzWyRpXSBbJGpdKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgJyEnOg0KDQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoKHN1YnN0cigkdGhpcy0+ZnJhbWVTb3VyY2VzWyRpXSwgKCRqICsgMyksIDgpKSA9PSAnTkVUU0NBUEUnKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFxFeGNlcHRpb24oDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT52ZXJzaW9uIC4gJzogJyAuICR0aGlzLT5lcnJvcnNbJ0VSUjAzJ10gLiAnICgnIC4gKCRpICsgMSkgLiAnIHNvdXJjZSkuJw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KDQogICAgICAgICAgICAgICAgICAgIGNhc2UgJzsnOg0KDQogICAgICAgICAgICAgICAgICAgICAgICAkayA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICB1bnNldCgkcmVzb3VyY2VJbWcpOw0KICAgICAgICB9DQoNCiAgICAgICAgaWYgKGlzc2V0KCRjb2xvdXIpKSB7DQogICAgICAgICAgICAkdGhpcy0+Y29sb3VyID0gJGNvbG91cjsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICRyZWQgPSAkZ3JlZW4gPSAkYmx1ZSA9IDA7DQogICAgICAgICAgICAkdGhpcy0+Y29sb3VyID0gKCRyZWQgPiAtMSAmJiAkZ3JlZW4gPiAtMSAmJiAkYmx1ZSA+IC0xKSA\/ICgkcmVkIHwgKCRncmVlbiA8PCA4KSB8ICgkYmx1ZSA8PCAxNikpIDogLTE7DQogICAgICAgIH0NCg0KICAgICAgICAkdGhpcy0+Z2lmQWRkSGVhZGVyKCk7DQoNCiAgICAgICAgZm9yICgkaSA9IDA7ICRpIDwgY291bnQoJHRoaXMtPmZyYW1lU291cmNlcyk7ICRpKyspIHsNCiAgICAgICAgICAgICR0aGlzLT5hZGRHaWZGcmFtZXMoJGksICRkdXJhdGlvbnNbJGldKTsNCiAgICAgICAgfQ0KDQogICAgICAgICR0aGlzLT5naWZBZGRGb290ZXIoKTsNCg0KICAgICAgICByZXR1cm4gJHRoaXMtPmdpZjsNCiAgICB9DQoNCiAgICAvLyBJbnRlcm5hbHMNCiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KDQogICAgLyoqDQogICAgICogQWRkIHRoZSBoZWFkZXIgZ2lmIHN0cmluZyBpbiBpdHMgc291cmNlIChvbGQ6IEdJRkFkZEhlYWRlcikNCiAgICAgKi8NCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2lmQWRkSGVhZGVyKCkNCiAgICB7DQogICAgICAgICRjbWFwID0gMDsNCg0KICAgICAgICBpZiAob3JkKCR0aGlzLT5mcmFtZVNvdXJjZXNbMF0gWzEwXSkgJiAweDgwKSB7DQogICAgICAgICAgICAkY21hcCA9IDMgKiAoMiA8PCAob3JkKCR0aGlzLT5mcmFtZVNvdXJjZXNbMF0gWzEwXSkgJiAweDA3KSk7DQoNCiAgICAgICAgICAgICR0aGlzLT5naWYgLj0gc3Vic3RyKCR0aGlzLT5mcmFtZVNvdXJjZXNbMF0sIDYsIDcpOw0KICAgICAgICAgICAgJHRoaXMtPmdpZiAuPSBzdWJzdHIoJHRoaXMtPmZyYW1lU291cmNlc1swXSwgMTMsICRjbWFwKTsNCiAgICAgICAgICAgICR0aGlzLT5naWYgLj0gIiFcMzc3XDEzTkVUU0NBUEUyLjBcM1wxIiAuICR0aGlzLT5lbmNvZGVBc2NpaVRvQ2hhcigkdGhpcy0+bG9vcCkgLiAiXDAiOw0KICAgICAgICB9DQogICAgfQ0KDQogICAgLyoqDQogICAgICogQWRkIHRoZSBmcmFtZSBzb3VyY2VzIHRvIHRoZSBHSUYgc3RyaW5nIChvbGQ6IEdJRkFkZEZyYW1lcykNCiAgICAgKg0KICAgICAqIEBwYXJhbSBpbnRlZ2VyICRpDQogICAgICogQHBhcmFtIGludGVnZXIgJGQNCiAgICAgKi8NCiAgICBwdWJsaWMgZnVuY3Rpb24gYWRkR2lmRnJhbWVzKCRpLCAkZCkNCiAgICB7DQogICAgICAgICRMb2NhbHNfc3RyID0gMTMgKyAzICogKDIgPDwgKG9yZCgkdGhpcy0+ZnJhbWVTb3VyY2VzWyRpXSBbMTBdKSAmIDB4MDcpKTsNCg0KICAgICAgICAkTG9jYWxzX2VuZCA9IHN0cmxlbigkdGhpcy0+ZnJhbWVTb3VyY2VzWyRpXSkgLSAkTG9jYWxzX3N0ciAtIDE7DQogICAgICAgICRMb2NhbHNfdG1wID0gc3Vic3RyKCR0aGlzLT5mcmFtZVNvdXJjZXNbJGldLCAkTG9jYWxzX3N0ciwgJExvY2Fsc19lbmQpOw0KDQogICAgICAgICRHbG9iYWxfbGVuID0gMiA8PCAob3JkKCR0aGlzLT5mcmFtZVNvdXJjZXNbMF0gWzEwXSkgJiAweDA3KTsNCiAgICAgICAgJExvY2Fsc19sZW4gPSAyIDw8IChvcmQoJHRoaXMtPmZyYW1lU291cmNlc1skaV0gWzEwXSkgJiAweDA3KTsNCg0KICAgICAgICAkR2xvYmFsX3JnYiA9IHN1YnN0cigkdGhpcy0+ZnJhbWVTb3VyY2VzWzBdLCAxMywgMyAqICgyIDw8IChvcmQoJHRoaXMtPmZyYW1lU291cmNlc1swXSBbMTBdKSAmIDB4MDcpKSk7DQogICAgICAgICRMb2NhbHNfcmdiID0gc3Vic3RyKCR0aGlzLT5mcmFtZVNvdXJjZXNbJGldLCAxMywgMyAqICgyIDw8IChvcmQoJHRoaXMtPmZyYW1lU291cmNlc1skaV0gWzEwXSkgJiAweDA3KSkpOw0KDQogICAgICAgICRMb2NhbHNfZXh0ID0gIiFceEY5XHgwNCIgLiBjaHIoKCR0aGlzLT5kaXMgPDwgMikgKyAwKSAuIGNocigoJGQgPj4gMCkgJiAweEZGKSAuIGNocigNCiAgICAgICAgICAgICAgICAoJGQgPj4gOCkgJiAweEZGDQogICAgICAgICAgICApIC4gIlx4MFx4MCI7DQoNCiAgICAgICAgaWYgKCR0aGlzLT5jb2xvdXIgPiAtMSAmJiBvcmQoJHRoaXMtPmZyYW1lU291cmNlc1skaV0gWzEwXSkgJiAweDgwKSB7DQogICAgICAgICAgICBmb3IgKCRqID0gMDsgJGogPCAoMiA8PCAob3JkKCR0aGlzLT5mcmFtZVNvdXJjZXNbJGldIFsxMF0pICYgMHgwNykpOyAkaisrKSB7DQogICAgICAgICAgICAgICAgaWYgKG9yZCgkTG9jYWxzX3JnYiBbMyAqICRqICsgMF0pID09ICgoJHRoaXMtPmNvbG91ciA+PiAxNikgJiAweEZGKSAmJg0KICAgICAgICAgICAgICAgICAgICBvcmQoJExvY2Fsc19yZ2IgWzMgKiAkaiArIDFdKSA9PSAoKCR0aGlzLT5jb2xvdXIgPj4gOCkgJiAweEZGKSAmJg0KICAgICAgICAgICAgICAgICAgICBvcmQoJExvY2Fsc19yZ2IgWzMgKiAkaiArIDJdKSA9PSAoKCR0aGlzLT5jb2xvdXIgPj4gMCkgJiAweEZGKQ0KICAgICAgICAgICAgICAgICkgew0KICAgICAgICAgICAgICAgICAgICAkTG9jYWxzX2V4dCA9ICIhXHhGOVx4MDQiIC4gY2hyKCgkdGhpcy0+ZGlzIDw8IDIpICsgMSkgLiBjaHIoKCRkID4+IDApICYgMHhGRikgLiBjaHIoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKCRkID4+IDgpICYgMHhGRg0KICAgICAgICAgICAgICAgICAgICAgICAgKSAuIGNocigkaikgLiAiXHgwIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgc3dpdGNoICgkTG9jYWxzX3RtcCBbMF0pIHsNCiAgICAgICAgICAgIGNhc2UgJyEnOg0KDQogICAgICAgICAgICAgICAgJExvY2Fsc19pbWcgPSBzdWJzdHIoJExvY2Fsc190bXAsIDgsIDEwKTsNCiAgICAgICAgICAgICAgICAkTG9jYWxzX3RtcCA9IHN1YnN0cigkTG9jYWxzX3RtcCwgMTgsIHN0cmxlbigkTG9jYWxzX3RtcCkgLSAxOCk7DQoNCiAgICAgICAgICAgICAgICBicmVhazsNCg0KICAgICAgICAgICAgY2FzZSAnLCc6DQoNCiAgICAgICAgICAgICAgICAkTG9jYWxzX2ltZyA9IHN1YnN0cigkTG9jYWxzX3RtcCwgMCwgMTApOw0KICAgICAgICAgICAgICAgICRMb2NhbHNfdG1wID0gc3Vic3RyKCRMb2NhbHNfdG1wLCAxMCwgc3RybGVuKCRMb2NhbHNfdG1wKSAtIDEwKTsNCg0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQoNCiAgICAgICAgaWYgKG9yZCgkdGhpcy0+ZnJhbWVTb3VyY2VzWyRpXSBbMTBdKSAmIDB4ODAgJiYgJHRoaXMtPmltZ0J1aWx0KSB7DQogICAgICAgICAgICBpZiAoJEdsb2JhbF9sZW4gPT0gJExvY2Fsc19sZW4pIHsNCiAgICAgICAgICAgICAgICBpZiAoJHRoaXMtPmdpZkJsb2NrQ29tcGFyZSgkR2xvYmFsX3JnYiwgJExvY2Fsc19yZ2IsICRHbG9iYWxfbGVuKSkgew0KICAgICAgICAgICAgICAgICAgICAkdGhpcy0+Z2lmIC49ICRMb2NhbHNfZXh0IC4gJExvY2Fsc19pbWcgLiAkTG9jYWxzX3RtcDsNCiAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAkYnl0ZSA9IG9yZCgkTG9jYWxzX2ltZyBbOV0pOw0KICAgICAgICAgICAgICAgICAgICAkYnl0ZSB8PSAweDgwOw0KICAgICAgICAgICAgICAgICAgICAkYnl0ZSAmPSAweEY4Ow0KICAgICAgICAgICAgICAgICAgICAkYnl0ZSB8PSAob3JkKCR0aGlzLT5mcmFtZVNvdXJjZXNbMF0gWzEwXSkgJiAweDA3KTsNCiAgICAgICAgICAgICAgICAgICAgJExvY2Fsc19pbWcgWzldID0gY2hyKCRieXRlKTsNCiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmdpZiAuPSAkTG9jYWxzX2V4dCAuICRMb2NhbHNfaW1nIC4gJExvY2Fsc19yZ2IgLiAkTG9jYWxzX3RtcDsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICRieXRlID0gb3JkKCRMb2NhbHNfaW1nIFs5XSk7DQogICAgICAgICAgICAgICAgJGJ5dGUgfD0gMHg4MDsNCiAgICAgICAgICAgICAgICAkYnl0ZSAmPSAweEY4Ow0KICAgICAgICAgICAgICAgICRieXRlIHw9IChvcmQoJHRoaXMtPmZyYW1lU291cmNlc1skaV0gWzEwXSkgJiAweDA3KTsNCiAgICAgICAgICAgICAgICAkTG9jYWxzX2ltZyBbOV0gPSBjaHIoJGJ5dGUpOw0KICAgICAgICAgICAgICAgICR0aGlzLT5naWYgLj0gJExvY2Fsc19leHQgLiAkTG9jYWxzX2ltZyAuICRMb2NhbHNfcmdiIC4gJExvY2Fsc190bXA7DQogICAgICAgICAgICB9DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAkdGhpcy0+Z2lmIC49ICRMb2NhbHNfZXh0IC4gJExvY2Fsc19pbWcgLiAkTG9jYWxzX3RtcDsNCiAgICAgICAgfQ0KDQogICAgICAgICR0aGlzLT5pbWdCdWlsdCA9IHRydWU7DQogICAgfQ0KDQogICAgLyoqDQogICAgICogQWRkIHRoZSBnaWYgc3RyaW5nIGZvb3RlciBjaGFyIChvbGQ6IEdJRkFkZEZvb3RlcikNCiAgICAgKi8NCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2lmQWRkRm9vdGVyKCkNCiAgICB7DQogICAgICAgICR0aGlzLT5naWYgLj0gJzsnOw0KICAgIH0NCg0KICAgIC8qKg0KICAgICAqIENvbXBhcmUgdHdvIGJsb2NrIGFuZCByZXR1cm4gdGhlIHZlcnNpb24gKG9sZDogR0lGQmxvY2tDb21wYXJlKQ0KICAgICAqDQogICAgICogQHBhcmFtIHN0cmluZyAkZ2xvYmFsQmxvY2sNCiAgICAgKiBAcGFyYW0gc3RyaW5nICRsb2NhbEJsb2NrDQogICAgICogQHBhcmFtIGludGVnZXIgJGxlbmd0aA0KICAgICAqDQogICAgICogQHJldHVybiBpbnRlZ2VyDQogICAgICovDQogICAgcHVibGljIGZ1bmN0aW9uIGdpZkJsb2NrQ29tcGFyZSgkZ2xvYmFsQmxvY2ssICRsb2NhbEJsb2NrLCAkbGVuZ3RoKQ0KICAgIHsNCiAgICAgICAgZm9yICgkaSA9IDA7ICRpIDwgJGxlbmd0aDsgJGkrKykgew0KICAgICAgICAgICAgaWYgKCRnbG9iYWxCbG9jayBbMyAqICRpICsgMF0gIT0gJGxvY2FsQmxvY2sgWzMgKiAkaSArIDBdIHx8DQogICAgICAgICAgICAgICAgJGdsb2JhbEJsb2NrIFszICogJGkgKyAxXSAhPSAkbG9jYWxCbG9jayBbMyAqICRpICsgMV0gfHwNCiAgICAgICAgICAgICAgICAkZ2xvYmFsQmxvY2sgWzMgKiAkaSArIDJdICE9ICRsb2NhbEJsb2NrIFszICogJGkgKyAyXSkgew0KICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgcmV0dXJuIDE7DQogICAgfQ0KDQogICAgLyoqDQogICAgICogRW5jb2RlIGFuIEFTQ0lJIGNoYXIgaW50byBhIHN0cmluZyBjaGFyIChvbGQ6IEdJRldvcmQpDQogICAgICoNCiAgICAgKiAkcGFyYW0gaW50ZWdlciAkY2hhciBBU0NJSSBjaGFyDQogICAgICoNCiAgICAgKiBAcmV0dXJuIHN0cmluZw0KICAgICAqLw0KICAgIHB1YmxpYyBmdW5jdGlvbiBlbmNvZGVBc2NpaVRvQ2hhcigkY2hhcikNCiAgICB7DQogICAgICAgIHJldHVybiAoY2hyKCRjaGFyICYgMHhGRikgLiBjaHIoKCRjaGFyID4+IDgpICYgMHhGRikpOw0KICAgIH0NCg0KICAgIC8qKg0KICAgICAqIFJlc2V0IGFuZCBjbGVhbiB0aGUgY3VycmVudCBvYmplY3QNCiAgICAgKi8NCiAgICBwdWJsaWMgZnVuY3Rpb24gcmVzZXQoKQ0KICAgIHsNCiAgICAgICAgJHRoaXMtPmZyYW1lU291cmNlczsNCiAgICAgICAgJHRoaXMtPmdpZiA9ICdHSUY4OWEnOyAvLyB0aGUgR0lGIGhlYWRlcg0KICAgICAgICAkdGhpcy0+aW1nQnVpbHQgPSBmYWxzZTsNCiAgICAgICAgJHRoaXMtPmxvb3AgPSAwOw0KICAgICAgICAkdGhpcy0+ZGlzID0gMjsNCiAgICAgICAgJHRoaXMtPmNvbG91ciA9IC0xOw0KICAgIH0NCg0KICAgIC8vIEdldHRlciAvIFNldHRlcg0KICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQoNCiAgICAvKioNCiAgICAgKiBHZXQgdGhlIGZpbmFsIEdJRiBpbWFnZSBzdHJpbmcgKG9sZDogR2V0QW5pbWF0aW9uKQ0KICAgICAqDQogICAgICogQHJldHVybiBzdHJpbmcNCiAgICAgKi8NCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0R2lmKCkNCiAgICB7DQogICAgICAgIHJldHVybiAkdGhpcy0+Z2lmOw0KICAgIH0NCn0=",
"libs\/outfitter.php": "PD9waHANCi8qKg0KICogQGF1dGhvciBLYW1pbCBLYXJrdXMgPGtha2VyQHdwLmV1Pg0KICogQGF1dGhvciBHZXNpb3IucGwgPHBob293bmVkQHdwLnBsPg0KICogQGNvcHlyaWdodCBDb3B5cmlnaHQgKGMpIDIwMTIsIEthbWlsIEthcmt1cw0KICogQHZlcnNpb24gNCAtIGZpeGVkIHJlbmRlcmluZyB3aXRoIGludmFsaWQgcGFyYW1ldGVycw0KICovDQoNCmNsYXNzIE91dGZpdHRlciB7DQoJcHJvdGVjdGVkIHN0YXRpYyAkaW5zdGFuY2UgPSBudWxsOw0KCXByb3RlY3RlZCBzdGF0aWMgJG91dGZpdENvbG9ycyA9IGFycmF5KA0KCQkweEZGRkZGRiwgMHhGRkQ0QkYsIDB4RkZFOUJGLCAweEZGRkZCRiwgMHhFOUZGQkYsIDB4RDRGRkJGLA0KCQkweEJGRkZCRiwgMHhCRkZGRDQsIDB4QkZGRkU5LCAweEJGRkZGRiwgMHhCRkU5RkYsIDB4QkZENEZGLA0KCQkweEJGQkZGRiwgMHhENEJGRkYsIDB4RTlCRkZGLCAweEZGQkZGRiwgMHhGRkJGRTksIDB4RkZCRkQ0LA0KCQkweEZGQkZCRiwgMHhEQURBREEsIDB4QkY5RjhGLCAweEJGQUY4RiwgMHhCRkJGOEYsIDB4QUZCRjhGLA0KCQkweDlGQkY4RiwgMHg4RkJGOEYsIDB4OEZCRjlGLCAweDhGQkZBRiwgMHg4RkJGQkYsIDB4OEZBRkJGLA0KCQkweDhGOUZCRiwgMHg4RjhGQkYsIDB4OUY4RkJGLCAweEFGOEZCRiwgMHhCRjhGQkYsIDB4QkY4RkFGLA0KCQkweEJGOEY5RiwgMHhCRjhGOEYsIDB4QjZCNkI2LCAweEJGN0Y1RiwgMHhCRkFGOEYsIDB4QkZCRjVGLA0KCQkweDlGQkY1RiwgMHg3RkJGNUYsIDB4NUZCRjVGLCAweDVGQkY3RiwgMHg1RkJGOUYsIDB4NUZCRkJGLA0KCQkweDVGOUZCRiwgMHg1RjdGQkYsIDB4NUY1RkJGLCAweDdGNUZCRiwgMHg5RjVGQkYsIDB4QkY1RkJGLA0KCQkweEJGNUY5RiwgMHhCRjVGN0YsIDB4QkY1RjVGLCAweDkxOTE5MSwgMHhCRjZBM0YsIDB4QkY5NDNGLA0KCQkweEJGQkYzRiwgMHg5NEJGM0YsIDB4NkFCRjNGLCAweDNGQkYzRiwgMHgzRkJGNkEsIDB4M0ZCRjk0LA0KCQkweDNGQkZCRiwgMHgzRjk0QkYsIDB4M0Y2QUJGLCAweDNGM0ZCRiwgMHg2QTNGQkYsIDB4OTQzRkJGLA0KCQkweEJGM0ZCRiwgMHhCRjNGOTQsIDB4QkYzRjZBLCAweEJGM0YzRiwgMHg2RDZENkQsIDB4RkY1NTAwLA0KCQkweEZGQUEwMCwgMHhGRkZGMDAsIDB4QUFGRjAwLCAweDU0RkYwMCwgMHgwMEZGMDAsIDB4MDBGRjU0LA0KCQkweDAwRkZBQSwgMHgwMEZGRkYsIDB4MDBBOUZGLCAweDAwNTVGRiwgMHgwMDAwRkYsIDB4NTUwMEZGLA0KCQkweEE5MDBGRiwgMHhGRTAwRkYsIDB4RkYwMEFBLCAweEZGMDA1NSwgMHhGRjAwMDAsIDB4NDg0ODQ4LA0KCQkweEJGM0YwMCwgMHhCRjdGMDAsIDB4QkZCRjAwLCAweDdGQkYwMCwgMHgzRkJGMDAsIDB4MDBCRjAwLA0KCQkweDAwQkYzRiwgMHgwMEJGN0YsIDB4MDBCRkJGLCAweDAwN0ZCRiwgMHgwMDNGQkYsIDB4MDAwMEJGLA0KCQkweDNGMDBCRiwgMHg3RjAwQkYsIDB4QkYwMEJGLCAweEJGMDA3RiwgMHhCRjAwM0YsIDB4QkYwMDAwLA0KCQkweDI0MjQyNCwgMHg3RjJBMDAsIDB4N0Y1NTAwLCAweDdGN0YwMCwgMHg1NTdGMDAsIDB4MkE3RjAwLA0KCQkweDAwN0YwMCwgMHgwMDdGMkEsIDB4MDA3RjU1LCAweDAwN0Y3RiwgMHgwMDU0N0YsIDB4MDAyQTdGLA0KCQkweDAwMDA3RiwgMHgyQTAwN0YsIDB4NTQwMDdGLCAweDdGMDA3RiwgMHg3RjAwNTUsIDB4N0YwMDJBLA0KCQkweDdGMDAwMCwNCgkpOw0KCXB1YmxpYyBzdGF0aWMgJG1vdW50c1RGUyA9IFsNCgkgICAgMSA9PiAzNjgsIDIgPT4gMzY5LCAzID0+IDM3MCwgNCA9PiAzNzEsIDUgPT4gMzcyLCA2ID0+IDM3MywgNyA9PiAzNzQsIDggPT4gMzc1LA0KICAgICAgICA5ID0+IDM3NiwgMTAgPT4gMzc3LCAxMSA9PiAzNzgsIDEyID0+IDM3OSwgMTMgPT4gMzg3LCAxNCA9PiAzODgsIDE1ID0+IDM4OSwgMTYgPT4gMzkwLCAxNyA9PiAzOTIsDQogICAgICAgIDE4ID0+IDQwMSwgMTkgPT4gNDAyLCAyMCA9PiA0MDUsIDIxID0+IDQwNiwgMjIgPT4gNDIxLCAyMyA9PiA0MjYsIDI0ID0+IDQyNywgMjUgPT4gNDM3LCAyNiA9PiA0MzgsDQogICAgICAgIDI3ID0+IDQ0NywgMjggPT4gNDUwLCAyOSA9PiA1MDIsIDMwID0+IDUwMywgMzEgPT4gNTA2LCAzMiA9PiA1MTUsIDMzID0+IDUyMSwgMzQgPT4gNTIyLCAzNSA9PiA1MjYsDQogICAgICAgIDM2ID0+IDU0NiwgMzcgPT4gNTQ3LCAzOCA9PiA1NDgsIDM5ID0+IDU1OSwgNDAgPT4gNTcxLCA0MSA9PiA1NzIsIDQyID0+IDU4MCwgNDMgPT4gNjA2LCA0NCA9PiA2MjEsDQogICAgICAgIDQ1ID0+IDYyMiwgNDYgPT4gNjI0LCA0NyA9PiA2MjYsIDQ4ID0+IDYyNywgNDkgPT4gNjI4LCA1MCA9PiA2MjksIDUxID0+IDYzMCwgNTIgPT4gNjMxLCA1MyA9PiA2NDQsDQogICAgICAgIDU0ID0+IDY0NywgNTUgPT4gNjQ4LCA1NiA9PiA2NDksIDU3ID0+IDY1MCwgNTggPT4gNjUxLCA1OSA9PiA2NjksIDYwID0+IDY3MCwgNjEgPT4gNjcxLCA2MiA9PiA2NzIsDQogICAgICAgIDYzID0+IDY3MywgNjQgPT4gNjc0LCA2NSA9PiA2ODgsIDY2ID0+IDY4OSwgNjcgPT4gNjkwLCA2OCA9PiA2OTEsIDY5ID0+IDY5MiwgNzAgPT4gNjkzLCA3MSA9PiA2ODIsDQogICAgICAgIDcyID0+IDY4NSwgNzMgPT4gNjg2LCA3NCA9PiA2ODcsIDc1ID0+IDcyNiwgNzYgPT4gNzI3LCA3NyA9PiA3MjgsIDc4ID0+IDczNCwgNzkgPT4gNzM1LCA4MCA9PiA3MzYsDQogICAgICAgIDgxID0+IDczOCwgODIgPT4gNzM5LCA4MyA9PiA3NDAsIDg0ID0+IDc2MSwgODUgPT4gNzYyLCA4NiA9PiA3NjMsIDg3ID0+IDg0OCwgODggPT4gODQ5LCA4OSA9PiA4NTAsDQogICAgICAgIDkwID0+IDg1MSwgOTEgPT4gODY4LCA5MiA9PiA4NjksIDkzID0+IDg3MCwgOTQgPT4gODgzLCA5NSA9PiA4ODYsIDk2ID0+IDg4NywgOTcgPT4gODg4LCA5OCA9PiA4ODksDQogICAgICAgIDk5ID0+IDg5MCwgMTAwID0+IDkwMSwgMTAxID0+IDkwMiwgMTAyID0+IDkwMywgMTAzID0+IDkwNSwgMTA0ID0+IDkwNiwgMTA1ID0+IDkwNywgMTA2ID0+IDkzNywNCiAgICAgICAgMTA3ID0+IDk1MCwgMTA4ID0+IDk1MSwgMTA5ID0+IDk1MiwgMTEwID0+IDk1OSwgMTExID0+IDk2MCwgMTEyID0+IDk2MSwgMTEzID0+IDEwMTcsIDExNCA9PiAxMDE4LA0KICAgICAgICAxMTUgPT4gMTAxOSwgMTE2ID0+IDEwMjUsIDExNyA9PiAxMDI2LCAxMTggPT4gMTAyNywgMTE5ID0+IDEwNDksIDEyMCA9PiAxMDUyLCAxMjEgPT4gMTA1MywNCiAgICAgICAgMTIyID0+IDEwNTQsIDEyMyA9PiAxMDkxLCAxMjQgPT4gMTA5MiwgMTI1ID0+IDEwOTMsIDEyNiA9PiAxMTAxLCAxMjcgPT4gMTEwNCwgMTI4ID0+IDExMDUsDQogICAgICAgIDEyOSA9PiAxMTA2LCAxMzAgPT4gMTE1MCwgMTMxID0+IDExNTEsIDEzMiA9PiAxMTYzLCAxMzMgPT4gMTE2NCwgMTM0ID0+IDExNjUsIDEzNSA9PiAxMTY3LA0KICAgICAgICAxMzYgPT4gMTE2OCwgMTM3ID0+IDExNjksIDEzOCA9PiAxMTc5LCAxMzkgPT4gMTE4MCwgMTQwID0+IDExODEsIDE0MSA9PiAxMTgzLCAxNDIgPT4gMTE4NCwNCiAgICAgICAgMTQzID0+IDExODUsIDE0NCA9PiAxMTkxLCAxNDUgPT4gMTIwOCwgMTQ2ID0+IDEyMDksIDE0NyA9PiAxMjI5LCAxNDggPT4gMTIzMCwgMTQ5ID0+IDEyMzEsDQogICAgICAgIDE1MCA9PiAxMjMyLCAxNTEgPT4gMTIzMywgMTUyID0+IDEyMzQsIDE1MyA9PiAxMjQ3LCAxNTQgPT4gMTI0OCwgMTU1ID0+IDEyNDksIDE1NiA9PiAxMjU3LA0KICAgICAgICAxNTcgPT4gMTI1OCwgMTU4ID0+IDEyNTksIDE1OSA9PiAxMjY0LCAxNjAgPT4gMTI2NSwgMTYxID0+IDEyNjYsIDE2MiA9PiAxMjY5LCAxNjMgPT4gMTI4MSwNCiAgICAgICAgMTY0ID0+IDEyODQsIDE2NSA9PiAxMjg1LCAxNjYgPT4gMTI4NiwgMTY3ID0+IDEzMjEsIDE2OCA9PiAxMzI0LCAxNjkgPT4gMTMyNSwgMTcwID0+IDEzMjYsDQogICAgICAgIDE3MSA9PiAxMzMzLCAxNzIgPT4gMTMzNCwgMTczID0+IDEzMzUsIDE3NCA9PiAxMzM2LCAxNzUgPT4gMTM2MywgMTc2ID0+IDEzNzksIDE3NyA9PiAxMzgwLA0KICAgICAgICAxNzggPT4gMTM4MSwgMTc5ID0+IDEzODksIDE4MCA9PiAxMzkwLCAxODEgPT4gMTM5MSwgMTgyID0+IDE0MTcsIDE4MyA9PiAxNDMwLCAxODQgPT4gMTQzMSwNCiAgICAgICAgMTg1ID0+IDE0MzksIDE4NiA9PiAxNDQwLCAxODcgPT4gMTQ0MQ0KICAgIF07DQoNCglwdWJsaWMgc3RhdGljICRkYXRhID0gW107DQoJcHJpdmF0ZSBzdGF0aWMgJHRyYW5zcGFyZW50QmFja2dyb3VuZENvbG9yID0gYXJyYXkoMjU1LCAyNTUsIDI1NSk7DQoJcHVibGljIHN0YXRpYyAkb3V0Zml0UGF0aDsNCglwdWJsaWMgc3RhdGljICRyZXNpemVBbGxPdXRmaXRzVG82NHB4ID0gZmFsc2U7DQoNCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGluc3RhbmNlKCkgew0KCQlpZiAoIWlzc2V0KHNlbGY6OiRpbnN0YW5jZSkpDQoJCQlzZWxmOjokaW5zdGFuY2UgPSBuZXcgc2VsZigpOw0KCQlyZXR1cm4gc2VsZjo6JGluc3RhbmNlOw0KCX0NCg0KCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gc2V0UmVzaXplQWxsT3V0Zml0c1RvNjRweCgkdmFsdWUpIHsNCgkJc2VsZjo6JHJlc2l6ZUFsbE91dGZpdHNUbzY0cHggPSAoYm9vbCkkdmFsdWU7DQoJfQ0KDQoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBsb2FkRGF0YSgkb3V0Zml0SWQsICRpc01vdW50ID0gZmFsc2UpDQoJew0KCQlpZigkaXNNb3VudCkNCgkJew0KCQkJJG1vdW50ID0gJG91dGZpdElkOw0KCQkJaWYoJG1vdW50ID09IDAgfHwgJG1vdW50ID49IDY1NTM1KQ0KCQkJew0KICAgICAgICAgICAgICAgICRvdXRmaXRJZCA9ICgkbW91bnQgJiAweEZGRkYpOw0KCQkJfQ0KCQkJZWxzZWlmKCRtb3VudCA8IDMwMCkNCgkJCXsNCgkJCQkvLyB0ZnMgMS54IG1vdW50IHN5c3RlbQ0KICAgICAgICAgICAgICAgICRvdXRmaXRJZCA9IHNlbGY6OiRtb3VudHNURlNbJG1vdW50XTsNCgkJCX0NCgkJfQ0KCQlpZihmaWxlX2V4aXN0cyhzZWxmOjokb3V0Zml0UGF0aCAuICRvdXRmaXRJZCAuICcvb3V0Zml0LmRhdGEudHh0JykpDQoJCXsNCgkJCWlmKCRpc01vdW50KQ0KCQkJew0KCQkJCSR0bXAgPSB1bnNlcmlhbGl6ZShmaWxlX2dldF9jb250ZW50cyhzZWxmOjokb3V0Zml0UGF0aCAuICRvdXRmaXRJZCAuICcvb3V0Zml0LmRhdGEudHh0JykpOw0KCQkJCXNlbGY6OiRkYXRhWydmaWxlcyddID0gYXJyYXlfbWVyZ2Uoc2VsZjo6JGRhdGFbJ2ZpbGVzJ10sICR0bXBbJ2ZpbGVzJ10pOw0KCQkJCXNlbGY6OiRkYXRhWydtb3VudEZyYW1lc051bWJlciddID0gJHRtcFsnZnJhbWVzTnVtYmVyJ107DQoJCQl9DQoJCQllbHNlDQoJCQl7DQoJCQkJc2VsZjo6JGRhdGEgPSB1bnNlcmlhbGl6ZShmaWxlX2dldF9jb250ZW50cyhzZWxmOjokb3V0Zml0UGF0aCAuICRvdXRmaXRJZCAuICcvb3V0Zml0LmRhdGEudHh0JykpOw0KCQkJCXNlbGY6OiRkYXRhWydtb3VudEZyYW1lc051bWJlciddID0gMTsNCgkJCX0NCgkJCXJldHVybiB0cnVlOw0KCQl9DQoJCXJldHVybiBmYWxzZTsNCgl9DQoNCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldE91dGZpdEZyYW1lc051bWJlcigpDQoJew0KCQlyZXR1cm4gc2VsZjo6JGRhdGFbJ2ZyYW1lc051bWJlciddOw0KCX0NCg0KCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZmlsZV9leGlzdHMoJGZpbGVQYXRoKQ0KCXsNCgkJcmV0dXJuIGluX2FycmF5KHRyaW0odHJpbShzdHJfcmVwbGFjZSgnXFwnLCAnLycsICRmaWxlUGF0aCksICcuJyksICcvJyksIHNlbGY6OiRkYXRhWydmaWxlcyddKTsNCgl9DQoNCglwdWJsaWMgZnVuY3Rpb24gb3V0Zml0KCRvdXRmaXQsICRhZGRvbnMsICRoZWFkLCAkYm9keSwgJGxlZ3MsICRmZWV0LCAkbW91bnQsICRkaXJlY3Rpb24gPSAzLCAkYW5pbWF0aW9uID0gMSkgew0KCQlpZigkbW91bnQgPT0gMCB8fCAkbW91bnQgPj0gNjU1MzUpDQoJCXsNCgkJCS8vIG9sZCBtb3VudCBzeXN0ZW0NCgkJCSRtb3VudElkID0gKCRtb3VudCAmIDB4RkZGRik7DQoJCQkkbW91bnRTdGF0ZSA9ICgoJG1vdW50ICYgMHhGRkZGMDAwMCkgIT0gMCkgPyAyIDogMTsNCgkJfQ0KCQllbHNlaWYoJG1vdW50IDwgMzAwKQ0KCQl7DQoJCQkvLyB0ZnMgMS54IG1vdW50IHN5c3RlbQ0KCQkJJG1vdW50SWQgPSBzZWxmOjokbW91bnRzVEZTWyRtb3VudF07DQoJCQkkbW91bnRTdGF0ZSA9IDI7DQoJCX0NCgkJZWxzZQ0KCQl7DQoJCQkkbW91bnRJZCA9ICRtb3VudDsNCgkJCSRtb3VudFN0YXRlID0gMjsNCgkJfQ0KDQogICAgICAgIGlmIChzZWxmOjpmaWxlX2V4aXN0cyhzZWxmOjokb3V0Zml0UGF0aCAuICRvdXRmaXQgLiAnLycuJGFuaW1hdGlvbi4nXycgLiAkbW91bnRTdGF0ZSAuICdfMV8nLiRkaXJlY3Rpb24uJy5wbmcnKSkgew0KICAgICAgICAgICAgJGltYWdlX291dGZpdCA9IGltYWdlY3JlYXRlZnJvbXBuZyhzZWxmOjokb3V0Zml0UGF0aCAuICRvdXRmaXQgLiAnLycgLiAkYW5pbWF0aW9uIC4gJ18nIC4gJG1vdW50U3RhdGUgLiAnXzFfJyAuICRkaXJlY3Rpb24gLiAnLnBuZycpOw0KICAgICAgICAgICAgaWYgKGZpbGVfZXhpc3RzKHNlbGY6OiRvdXRmaXRQYXRoIC4gJG91dGZpdCAuICcvJyAuICRhbmltYXRpb24gLiAnXycgLiAkbW91bnRTdGF0ZSAuICdfMV8nIC4gJGRpcmVjdGlvbiAuICdfdGVtcGxhdGUucG5nJykpIHsNCiAgICAgICAgICAgICAgICAkaW1hZ2VfdGVtcGxhdGUgPSBpbWFnZWNyZWF0ZWZyb21wbmcoc2VsZjo6JG91dGZpdFBhdGggLiAkb3V0Zml0IC4gJy8nIC4gJGFuaW1hdGlvbiAuICdfJyAuICRtb3VudFN0YXRlIC4gJ18xXycgLiAkZGlyZWN0aW9uIC4gJ190ZW1wbGF0ZS5wbmcnKTsNCiAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgJGltYWdlX3RlbXBsYXRlID0gaW1hZ2VjcmVhdGV0cnVlY29sb3IoaW1hZ2VzeCgkaW1hZ2Vfb3V0Zml0KSwgaW1hZ2VzeSgkaW1hZ2Vfb3V0Zml0KSk7DQogICAgICAgICAgICAgICAgJGJnY29sb3IgPSBpbWFnZWNvbG9yYWxsb2NhdGUoJGltYWdlX3RlbXBsYXRlLCBzZWxmOjokdHJhbnNwYXJlbnRCYWNrZ3JvdW5kQ29sb3JbMF0sIHNlbGY6OiR0cmFuc3BhcmVudEJhY2tncm91bmRDb2xvclsxXSwgc2VsZjo6JHRyYW5zcGFyZW50QmFja2dyb3VuZENvbG9yWzJdKTsNCiAgICAgICAgICAgICAgICBpbWFnZWNvbG9ydHJhbnNwYXJlbnQoJGltYWdlX3RlbXBsYXRlLCAkYmdjb2xvcik7DQoNCiAgICAgICAgICAgICAgICBpbWFnZWFscGhhYmxlbmRpbmcoJGltYWdlX3RlbXBsYXRlLCBmYWxzZSk7DQogICAgICAgICAgICAgICAgaW1hZ2VzYXZlYWxwaGEoJGltYWdlX3RlbXBsYXRlLCB0cnVlKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKCRhZGRvbnMgPT0gMSB8fCAkYWRkb25zID09IDMpIHsNCiAgICAgICAgICAgICAgICBpZiAoc2VsZjo6ZmlsZV9leGlzdHMoc2VsZjo6JG91dGZpdFBhdGggLiAkb3V0Zml0IC4gJy8nIC4gJGFuaW1hdGlvbiAuICdfJyAuICRtb3VudFN0YXRlIC4gJ18yXycgLiAkZGlyZWN0aW9uIC4gJy5wbmcnKSkgew0KICAgICAgICAgICAgICAgICAgICAkaW1hZ2VfZmlyc3QgPSBpbWFnZWNyZWF0ZWZyb21wbmcoc2VsZjo6JG91dGZpdFBhdGggLiAkb3V0Zml0IC4gJy8nIC4gJGFuaW1hdGlvbiAuICdfJyAuICRtb3VudFN0YXRlIC4gJ18yXycgLiAkZGlyZWN0aW9uIC4gJy5wbmcnKTsNCiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmFscGhhT3ZlcmxheSgkaW1hZ2Vfb3V0Zml0LCAkaW1hZ2VfZmlyc3QsIDY0LCA2NCk7DQogICAgICAgICAgICAgICAgICAgIGltYWdlZGVzdHJveSgkaW1hZ2VfZmlyc3QpOw0KICAgICAgICAgICAgICAgICAgICBpZiAoc2VsZjo6ZmlsZV9leGlzdHMoc2VsZjo6JG91dGZpdFBhdGggLiAkb3V0Zml0IC4gJy8nIC4gJGFuaW1hdGlvbiAuICdfJyAuICRtb3VudFN0YXRlIC4gJ18yXycgLiAkZGlyZWN0aW9uIC4gJ190ZW1wbGF0ZS5wbmcnKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgJGltYWdlX2ZpcnN0X3RlbXBsYXRlID0gaW1hZ2VjcmVhdGVmcm9tcG5nKHNlbGY6OiRvdXRmaXRQYXRoIC4gJG91dGZpdCAuICcvJyAuICRhbmltYXRpb24gLiAnXycgLiAkbW91bnRTdGF0ZSAuICdfMl8nIC4gJGRpcmVjdGlvbiAuICdfdGVtcGxhdGUucG5nJyk7DQogICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+YWxwaGFPdmVybGF5KCRpbWFnZV90ZW1wbGF0ZSwgJGltYWdlX2ZpcnN0X3RlbXBsYXRlLCA2NCwgNjQpOw0KICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2VkZXN0cm95KCRpbWFnZV9maXJzdF90ZW1wbGF0ZSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoJGFkZG9ucyA9PSAyIHx8ICRhZGRvbnMgPT0gMykgew0KICAgICAgICAgICAgICAgIGlmIChzZWxmOjpmaWxlX2V4aXN0cyhzZWxmOjokb3V0Zml0UGF0aCAuICRvdXRmaXQgLiAnLycgLiAkYW5pbWF0aW9uIC4gJ18nIC4gJG1vdW50U3RhdGUgLiAnXzNfJyAuICRkaXJlY3Rpb24gLiAnLnBuZycpKSB7DQogICAgICAgICAgICAgICAgICAgICRpbWFnZV9zZWNvbmQgPSBpbWFnZWNyZWF0ZWZyb21wbmcoc2VsZjo6JG91dGZpdFBhdGggLiAkb3V0Zml0IC4gJy8nIC4gJGFuaW1hdGlvbiAuICdfJyAuICRtb3VudFN0YXRlIC4gJ18zXycgLiAkZGlyZWN0aW9uIC4gJy5wbmcnKTsNCiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmFscGhhT3ZlcmxheSgkaW1hZ2Vfb3V0Zml0LCAkaW1hZ2Vfc2Vjb25kLCA2NCwgNjQpOw0KICAgICAgICAgICAgICAgICAgICBpbWFnZWRlc3Ryb3koJGltYWdlX3NlY29uZCk7DQogICAgICAgICAgICAgICAgICAgIGlmIChzZWxmOjpmaWxlX2V4aXN0cyhzZWxmOjokb3V0Zml0UGF0aCAuICRvdXRmaXQgLiAnLycgLiAkYW5pbWF0aW9uIC4gJ18nIC4gJG1vdW50U3RhdGUgLiAnXzNfJyAuICRkaXJlY3Rpb24gLiAnX3RlbXBsYXRlLnBuZycpKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAkaW1hZ2Vfc2Vjb25kX3RlbXBsYXRlID0gaW1hZ2VjcmVhdGVmcm9tcG5nKHNlbGY6OiRvdXRmaXRQYXRoIC4gJG91dGZpdCAuICcvJyAuICRhbmltYXRpb24gLiAnXycgLiAkbW91bnRTdGF0ZSAuICdfM18nIC4gJGRpcmVjdGlvbiAuICdfdGVtcGxhdGUucG5nJyk7DQogICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+YWxwaGFPdmVybGF5KCRpbWFnZV90ZW1wbGF0ZSwgJGltYWdlX3NlY29uZF90ZW1wbGF0ZSwgNjQsIDY0KTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlZGVzdHJveSgkaW1hZ2Vfc2Vjb25kX3RlbXBsYXRlKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgJHRoaXMtPmNvbG9yaXplKCRpbWFnZV90ZW1wbGF0ZSwgJGltYWdlX291dGZpdCwgJGhlYWQsICRib2R5LCAkbGVncywgJGZlZXQpOw0KICAgICAgICB9DQoNCgkJJG1vdW50QW5pbWF0aW9uRnJhbWUgPSAkYW5pbWF0aW9uOw0KCQl3aGlsZSAoJG1vdW50QW5pbWF0aW9uRnJhbWUgPiBzZWxmOjokZGF0YVsnbW91bnRGcmFtZXNOdW1iZXInXSkgew0KCQkJJG1vdW50QW5pbWF0aW9uRnJhbWUgLT0gc2VsZjo6JGRhdGFbJ21vdW50RnJhbWVzTnVtYmVyJ107DQoJCX0NCg0KCQlpZiAoJG1vdW50U3RhdGUgPT0gMiAmJiBzZWxmOjpmaWxlX2V4aXN0cyhzZWxmOjokb3V0Zml0UGF0aCAuICRtb3VudElkIC4gJy8nLiRtb3VudEFuaW1hdGlvbkZyYW1lLidfMV8xXycuJGRpcmVjdGlvbi4nLnBuZycpKSB7DQoJCQkkbW91bnQgPSBpbWFnZWNyZWF0ZWZyb21wbmcoc2VsZjo6JG91dGZpdFBhdGggLiAkbW91bnRJZCAuICcvJy4kbW91bnRBbmltYXRpb25GcmFtZS4nXzFfMV8nLiRkaXJlY3Rpb24uJy5wbmcnKTsNCgkJCSR0aGlzLT5hbHBoYU92ZXJsYXkoJG1vdW50LCAkaW1hZ2Vfb3V0Zml0LCA2NCwgNjQpOw0KICAgICAgICAgICAgaWYgKCRpbWFnZV9vdXRmaXQpIHsNCiAgICAgICAgICAgICAgICBpbWFnZWRlc3Ryb3koJGltYWdlX291dGZpdCk7DQogICAgICAgICAgICB9DQoJCQkkaW1hZ2Vfb3V0Zml0ID0gJG1vdW50Ow0KCQl9DQoNCgkJJHdpZHRoID0gaW1hZ2VzeCgkaW1hZ2Vfb3V0Zml0KTsNCgkJJGhlaWdodCA9IGltYWdlc3koJGltYWdlX291dGZpdCk7DQoJCWlmIChzZWxmOjokcmVzaXplQWxsT3V0Zml0c1RvNjRweCkgew0KCQkJJGltYWdlX291dGZpdFQgPSBpbWFnZWNyZWF0ZXRydWVjb2xvcig2NCwgNjQpOw0KCQl9IGVsc2Ugew0KCQkJJGltYWdlX291dGZpdFQgPSBpbWFnZWNyZWF0ZXRydWVjb2xvcigkd2lkdGgsICRoZWlnaHQpOw0KCQl9DQoJCWltYWdlZmlsbCgkaW1hZ2Vfb3V0Zml0VCwgMCwgMCwgJGJnY29sb3IgPSBpbWFnZWNvbG9yYWxsb2NhdGUoJGltYWdlX291dGZpdFQsIHNlbGY6OiR0cmFuc3BhcmVudEJhY2tncm91bmRDb2xvclswXSwgc2VsZjo6JHRyYW5zcGFyZW50QmFja2dyb3VuZENvbG9yWzFdLCBzZWxmOjokdHJhbnNwYXJlbnRCYWNrZ3JvdW5kQ29sb3JbMl0pKTsNCg0KCQlpbWFnZWNvcHlyZXNhbXBsZWQoJGltYWdlX291dGZpdFQsICRpbWFnZV9vdXRmaXQsIGltYWdlc3goJGltYWdlX291dGZpdFQpLSR3aWR0aCwgaW1hZ2VzeSgkaW1hZ2Vfb3V0Zml0VCktJGhlaWdodCwgMCwgMCwgJHdpZHRoLCAkaGVpZ2h0LCAkd2lkdGgsICRoZWlnaHQpOw0KDQoJCWltYWdlY29sb3J0cmFuc3BhcmVudCgkaW1hZ2Vfb3V0Zml0VCwgJGJnY29sb3IpOw0KDQoJCWltYWdlYWxwaGFibGVuZGluZygkaW1hZ2Vfb3V0Zml0VCwgZmFsc2UpOw0KCQlpbWFnZXNhdmVhbHBoYSgkaW1hZ2Vfb3V0Zml0VCwgdHJ1ZSk7DQoJCWltYWdlZGVzdHJveSgkaW1hZ2Vfb3V0Zml0KTsNCgkJaWYgKGlzc2V0KCRpbWFnZV90ZW1wbGF0ZSkgJiYgJGltYWdlX3RlbXBsYXRlKSB7DQoJCQlpbWFnZWRlc3Ryb3koJGltYWdlX3RlbXBsYXRlKTsNCgkJfQ0KCQlyZXR1cm4gJGltYWdlX291dGZpdFQ7DQoJfQ0KDQoJcHJvdGVjdGVkIGZ1bmN0aW9uIGNvbG9yaXplUGl4ZWwoJF9jb2xvciwgJiRfciwgJiRfZywgJiRfYikgew0KCQlpZiAoJF9jb2xvciA8IGNvdW50KHNlbGY6OiRvdXRmaXRDb2xvcnMpKQ0KCQkJJHZhbHVlID0gc2VsZjo6JG91dGZpdENvbG9yc1skX2NvbG9yXTsNCgkJZWxzZQ0KCQkJJHZhbHVlID0gMDsNCgkJJHJvID0gKCR2YWx1ZSAmIDB4RkYwMDAwKSA+PiAxNjsgLy8gcmdiIG91dGZpdA0KCQkkZ28gPSAoJHZhbHVlICYgMHhGRjAwKSA+PiA4Ow0KCQkkYm8gPSAoJHZhbHVlICYgMHhGRik7DQoJCSRfciA9IChpbnQpICgkX3IgKiAoJHJvIC8gMjU1KSk7DQoJCSRfZyA9IChpbnQpICgkX2cgKiAoJGdvIC8gMjU1KSk7DQoJCSRfYiA9IChpbnQpICgkX2IgKiAoJGJvIC8gMjU1KSk7DQoJfQ0KDQoJcHJvdGVjdGVkIGZ1bmN0aW9uIGNvbG9yaXplKCYkX2ltYWdlX3RlbXBsYXRlLCAmJF9pbWFnZV9vdXRmaXQsICRfaGVhZCwgJF9ib2R5LCAkX2xlZ3MsICRfZmVldCkgew0KICAgICAgICBpZiAoISRfaW1hZ2VfdGVtcGxhdGUpIHsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgfQ0KDQoJCWZvciAoJGkgPSAwOyAkaSA8IGltYWdlc3koJF9pbWFnZV90ZW1wbGF0ZSk7ICRpKyspIHsNCgkJCWZvciAoJGogPSAwOyAkaiA8IGltYWdlc3goJF9pbWFnZV90ZW1wbGF0ZSk7ICRqKyspIHsNCgkJCQkkdGVtcGxhdGVwaXhlbCA9IGltYWdlY29sb3JhdCgkX2ltYWdlX3RlbXBsYXRlLCAkaiwgJGkpOw0KCQkJCSRvdXRmaXQgPSBpbWFnZWNvbG9yYXQoJF9pbWFnZV9vdXRmaXQsICRqLCAkaSk7DQoNCgkJCQlpZiAoJHRlbXBsYXRlcGl4ZWwgPT0gJG91dGZpdCkNCgkJCQkJY29udGludWU7DQoNCgkJCQkkcnQgPSAoJHRlbXBsYXRlcGl4ZWwgPj4gMTYpICYgMHhGRjsNCgkJCQkkZ3QgPSAoJHRlbXBsYXRlcGl4ZWwgPj4gOCkgJiAweEZGOw0KCQkJCSRidCA9ICR0ZW1wbGF0ZXBpeGVsICYgMHhGRjsNCgkJCQkkcm8gPSAoJG91dGZpdCA+PiAxNikgJiAweEZGOw0KCQkJCSRnbyA9ICgkb3V0Zml0ID4+IDgpICYgMHhGRjsNCgkJCQkkYm8gPSAkb3V0Zml0ICYgMHhGRjsNCg0KCQkJCWlmICgkcnQgJiYgJGd0ICYmICEkYnQpIHsgLy8geWVsbG93ID09IGhlYWQNCgkJCQkJJHRoaXMtPmNvbG9yaXplUGl4ZWwoJF9oZWFkLCAkcm8sICRnbywgJGJvKTsNCgkJCQl9IGVsc2UgaWYgKCRydCAmJiAhJGd0ICYmICEkYnQpIHsgLy8gcmVkID09IGJvZHkNCgkJCQkJJHRoaXMtPmNvbG9yaXplUGl4ZWwoJF9ib2R5LCAkcm8sICRnbywgJGJvKTsNCgkJCQl9IGVsc2UgaWYgKCEkcnQgJiYgJGd0ICYmICEkYnQpIHsgLy8gZ3JlZW4gPT0gbGVncw0KCQkJCQkkdGhpcy0+Y29sb3JpemVQaXhlbCgkX2xlZ3MsICRybywgJGdvLCAkYm8pOw0KCQkJCX0gZWxzZSBpZiAoISRydCAmJiAhJGd0ICYmICRidCkgeyAvLyBibHVlID09IGZlZXQNCgkJCQkJJHRoaXMtPmNvbG9yaXplUGl4ZWwoJF9mZWV0LCAkcm8sICRnbywgJGJvKTsNCgkJCQl9IGVsc2Ugew0KCQkJCQljb250aW51ZTsgLy8gaWYgbm90aGluZyBjaGFuZ2VkLCBza2lwIHRoZSBjaGFuZ2Ugb2YgcGl4ZWwNCgkJCQl9DQoNCgkJCQlpbWFnZXNldHBpeGVsKCRfaW1hZ2Vfb3V0Zml0LCAkaiwgJGksIGltYWdlY29sb3JhbGxvY2F0ZSgkX2ltYWdlX291dGZpdCwgJHJvLCAkZ28sICRibykpOw0KCQkJfQ0KCQl9DQoJfQ0KDQoJcHJvdGVjdGVkIGZ1bmN0aW9uIGFscGhhT3ZlcmxheSgmJGRlc3RJbWcsICYkb3ZlcmxheUltZywgJGltZ1csICRpbWdIKSB7DQogICAgICAgIGlmICghJG92ZXJsYXlJbWcpIHsNCiAgICAgICAgICAgIHJldHVybiAkZGVzdEltZzsNCiAgICAgICAgfQ0KDQoJCWZvciAoJHkgPSAwOyAkeSA8ICRpbWdIOyAkeSsrKSB7DQoJCQlmb3IgKCR4ID0gMDsgJHggPCAkaW1nVzsgJHgrKykgew0KCQkJCSRvdnJBUkdCID0gaW1hZ2Vjb2xvcmF0KCRvdmVybGF5SW1nLCAkeCwgJHkpOw0KCQkJCSRvdnJBID0gKCRvdnJBUkdCID4+IDI0KSA8PCAxOw0KCQkJCSRvdnJSID0gJG92ckFSR0IgPj4gMTYgJiAweEZGOw0KCQkJCSRvdnJHID0gJG92ckFSR0IgPj4gOCAmIDB4RkY7DQoJCQkJJG92ckIgPSAkb3ZyQVJHQiAmIDB4RkY7DQoNCgkJCQkkY2hhbmdlID0gZmFsc2U7DQoJCQkJaWYgKCRvdnJBID09IDApIHsNCgkJCQkJJGRzdFIgPSAkb3ZyUjsNCgkJCQkJJGRzdEcgPSAkb3ZyRzsNCgkJCQkJJGRzdEIgPSAkb3ZyQjsNCgkJCQkJJGNoYW5nZSA9IHRydWU7DQoJCQkJfSBlbHNlaWYgKCRvdnJBIDwgMjU0KSB7DQoJCQkJCSRkc3RBUkdCID0gaW1hZ2Vjb2xvcmF0KCRkZXN0SW1nLCAkeCwgJHkpOw0KCQkJCQkkZHN0UiA9ICRkc3RBUkdCID4+IDE2ICYgMHhGRjsNCgkJCQkJJGRzdEcgPSAkZHN0QVJHQiA+PiA4ICYgMHhGRjsNCgkJCQkJJGRzdEIgPSAkZHN0QVJHQiAmIDB4RkY7DQoNCgkJCQkJJGRzdFIgPSAoKCRvdnJSICogKDB4RkYgLSAkb3ZyQSkpID4+IDgpICsgKCgkZHN0UiAqICRvdnJBKSA+PiA4KTsNCgkJCQkJJGRzdEcgPSAoKCRvdnJHICogKDB4RkYgLSAkb3ZyQSkpID4+IDgpICsgKCgkZHN0RyAqICRvdnJBKSA+PiA4KTsNCgkJCQkJJGRzdEIgPSAoKCRvdnJCICogKDB4RkYgLSAkb3ZyQSkpID4+IDgpICsgKCgkZHN0QiAqICRvdnJBKSA+PiA4KTsNCgkJCQkJJGNoYW5nZSA9IHRydWU7DQoJCQkJfQ0KCQkJCWlmICgkY2hhbmdlKSB7DQoJCQkJCSRkc3RSR0IgPSBpbWFnZWNvbG9yYWxsb2NhdGVhbHBoYSgkZGVzdEltZywgJGRzdFIsICRkc3RHLCAkZHN0QiwgMCk7DQoJCQkJCWltYWdlc2V0cGl4ZWwoJGRlc3RJbWcsICR4LCAkeSwgJGRzdFJHQik7DQoJCQkJfQ0KCQkJfQ0KCQl9DQoJCXJldHVybiAkZGVzdEltZzsNCgl9DQp9",
diff --git a/package-lock.json b/package-lock.json
index 05eefbf..ee7eca8 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,8 +1,6773 @@
{
"name": "open-tibia-library",
- "version": "0.1.4",
- "lockfileVersion": 1,
+ "version": "0.1.6",
+ "lockfileVersion": 2,
"requires": true,
+ "packages": {
+ "": {
+ "version": "0.1.6",
+ "license": "MIT",
+ "dependencies": {
+ "gif.js": "^0.2.0",
+ "jszip": "^3.2.2"
+ },
+ "devDependencies": {
+ "@types/jszip": "*",
+ "@types/node": "*",
+ "babel-core": "^6.26.3",
+ "babel-loader": "^7.0",
+ "babel-polyfill": "^6.3.0",
+ "babel-preset-env": "^1.7.0",
+ "copy-webpack-plugin": "^4.0",
+ "path": "*",
+ "ts-loader": "^3.0",
+ "typescript": "^2.6",
+ "webpack": "^3.12",
+ "webpack-cli": "^3.3"
+ }
+ },
+ "node_modules/@types/jszip": {
+ "version": "3.1.7",
+ "resolved": "https://registry.npmjs.org/@types/jszip/-/jszip-3.1.7.tgz",
+ "integrity": "sha512-+XQKNI5zpxutK05hO67huUTw/2imXCuJWjnFdU63tRES/xXSX1yVR9cv/QAdO6Rii2y2tTHbzjQ4i2apLfuK0Q==",
+ "dev": true,
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/node": {
+ "version": "13.9.0",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-13.9.0.tgz",
+ "integrity": "sha512-0ARSQootUG1RljH2HncpsY2TJBfGQIKOOi7kxzUY6z54ePu/ZD+wJA8zI2Q6v8rol2qpG/rvqsReco8zNMPvhQ==",
+ "dev": true
+ },
+ "node_modules/acorn": {
+ "version": "5.7.4",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz",
+ "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==",
+ "dev": true,
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/acorn-dynamic-import": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz",
+ "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=",
+ "dev": true,
+ "dependencies": {
+ "acorn": "^4.0.3"
+ }
+ },
+ "node_modules/acorn-dynamic-import/node_modules/acorn": {
+ "version": "4.0.13",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz",
+ "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=",
+ "dev": true,
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/ajv": {
+ "version": "6.12.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz",
+ "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==",
+ "dev": true,
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "node_modules/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
+ },
+ "node_modules/align-text": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
+ "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
+ "dev": true,
+ "dependencies": {
+ "kind-of": "^3.0.2",
+ "longest": "^1.0.1",
+ "repeat-string": "^1.5.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/align-text/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/anymatch": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
+ "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
+ "dev": true,
+ "dependencies": {
+ "micromatch": "^3.1.4",
+ "normalize-path": "^2.1.1"
+ }
+ },
+ "node_modules/anymatch/node_modules/normalize-path": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+ "dev": true,
+ "dependencies": {
+ "remove-trailing-separator": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/aproba": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
+ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
+ "dev": true
+ },
+ "node_modules/arr-diff": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
+ "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/arr-flatten": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
+ "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/arr-union": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
+ "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/array-union": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
+ "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
+ "dev": true,
+ "dependencies": {
+ "array-uniq": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/array-uniq": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
+ "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/array-unique": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/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,
+ "dependencies": {
+ "bn.js": "^4.0.0",
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0"
+ }
+ },
+ "node_modules/assert": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz",
+ "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==",
+ "dev": true,
+ "dependencies": {
+ "object-assign": "^4.1.1",
+ "util": "0.10.3"
+ }
+ },
+ "node_modules/assert/node_modules/inherits": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+ "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=",
+ "dev": true
+ },
+ "node_modules/assert/node_modules/util": {
+ "version": "0.10.3",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
+ "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
+ "dev": true,
+ "dependencies": {
+ "inherits": "2.0.1"
+ }
+ },
+ "node_modules/assign-symbols": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
+ "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/async": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz",
+ "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==",
+ "dev": true,
+ "dependencies": {
+ "lodash": "^4.17.14"
+ }
+ },
+ "node_modules/async-each": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz",
+ "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==",
+ "dev": true
+ },
+ "node_modules/atob": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
+ "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
+ "dev": true,
+ "bin": {
+ "atob": "bin/atob.js"
+ },
+ "engines": {
+ "node": ">= 4.5.0"
+ }
+ },
+ "node_modules/babel-code-frame": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
+ "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^1.1.3",
+ "esutils": "^2.0.2",
+ "js-tokens": "^3.0.2"
+ }
+ },
+ "node_modules/babel-core": {
+ "version": "6.26.3",
+ "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz",
+ "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==",
+ "dev": true,
+ "dependencies": {
+ "babel-code-frame": "^6.26.0",
+ "babel-generator": "^6.26.0",
+ "babel-helpers": "^6.24.1",
+ "babel-messages": "^6.23.0",
+ "babel-register": "^6.26.0",
+ "babel-runtime": "^6.26.0",
+ "babel-template": "^6.26.0",
+ "babel-traverse": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "babylon": "^6.18.0",
+ "convert-source-map": "^1.5.1",
+ "debug": "^2.6.9",
+ "json5": "^0.5.1",
+ "lodash": "^4.17.4",
+ "minimatch": "^3.0.4",
+ "path-is-absolute": "^1.0.1",
+ "private": "^0.1.8",
+ "slash": "^1.0.0",
+ "source-map": "^0.5.7"
+ }
+ },
+ "node_modules/babel-generator": {
+ "version": "6.26.1",
+ "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz",
+ "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==",
+ "dev": true,
+ "dependencies": {
+ "babel-messages": "^6.23.0",
+ "babel-runtime": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "detect-indent": "^4.0.0",
+ "jsesc": "^1.3.0",
+ "lodash": "^4.17.4",
+ "source-map": "^0.5.7",
+ "trim-right": "^1.0.1"
+ }
+ },
+ "node_modules/babel-helper-builder-binary-assignment-operator-visitor": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz",
+ "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=",
+ "dev": true,
+ "dependencies": {
+ "babel-helper-explode-assignable-expression": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "node_modules/babel-helper-call-delegate": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz",
+ "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=",
+ "dev": true,
+ "dependencies": {
+ "babel-helper-hoist-variables": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "node_modules/babel-helper-define-map": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz",
+ "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=",
+ "dev": true,
+ "dependencies": {
+ "babel-helper-function-name": "^6.24.1",
+ "babel-runtime": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "lodash": "^4.17.4"
+ }
+ },
+ "node_modules/babel-helper-explode-assignable-expression": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz",
+ "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=",
+ "dev": true,
+ "dependencies": {
+ "babel-runtime": "^6.22.0",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "node_modules/babel-helper-function-name": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz",
+ "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=",
+ "dev": true,
+ "dependencies": {
+ "babel-helper-get-function-arity": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "node_modules/babel-helper-get-function-arity": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz",
+ "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=",
+ "dev": true,
+ "dependencies": {
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "node_modules/babel-helper-hoist-variables": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz",
+ "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=",
+ "dev": true,
+ "dependencies": {
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "node_modules/babel-helper-optimise-call-expression": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz",
+ "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=",
+ "dev": true,
+ "dependencies": {
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "node_modules/babel-helper-regex": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz",
+ "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=",
+ "dev": true,
+ "dependencies": {
+ "babel-runtime": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "lodash": "^4.17.4"
+ }
+ },
+ "node_modules/babel-helper-remap-async-to-generator": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz",
+ "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=",
+ "dev": true,
+ "dependencies": {
+ "babel-helper-function-name": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "node_modules/babel-helper-replace-supers": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz",
+ "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=",
+ "dev": true,
+ "dependencies": {
+ "babel-helper-optimise-call-expression": "^6.24.1",
+ "babel-messages": "^6.23.0",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "node_modules/babel-helpers": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz",
+ "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=",
+ "dev": true,
+ "dependencies": {
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1"
+ }
+ },
+ "node_modules/babel-loader": {
+ "version": "7.1.5",
+ "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.5.tgz",
+ "integrity": "sha512-iCHfbieL5d1LfOQeeVJEUyD9rTwBcP/fcEbRCfempxTDuqrKpu0AZjLAQHEQa3Yqyj9ORKe2iHfoj4rHLf7xpw==",
+ "dev": true,
+ "dependencies": {
+ "find-cache-dir": "^1.0.0",
+ "loader-utils": "^1.0.2",
+ "mkdirp": "^0.5.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/babel-messages": {
+ "version": "6.23.0",
+ "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz",
+ "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=",
+ "dev": true,
+ "dependencies": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "node_modules/babel-plugin-check-es2015-constants": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz",
+ "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=",
+ "dev": true,
+ "dependencies": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "node_modules/babel-plugin-syntax-async-functions": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz",
+ "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=",
+ "dev": true
+ },
+ "node_modules/babel-plugin-syntax-exponentiation-operator": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz",
+ "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=",
+ "dev": true
+ },
+ "node_modules/babel-plugin-syntax-trailing-function-commas": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz",
+ "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=",
+ "dev": true
+ },
+ "node_modules/babel-plugin-transform-async-to-generator": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz",
+ "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=",
+ "dev": true,
+ "dependencies": {
+ "babel-helper-remap-async-to-generator": "^6.24.1",
+ "babel-plugin-syntax-async-functions": "^6.8.0",
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "node_modules/babel-plugin-transform-es2015-arrow-functions": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz",
+ "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=",
+ "dev": true,
+ "dependencies": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "node_modules/babel-plugin-transform-es2015-block-scoped-functions": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz",
+ "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=",
+ "dev": true,
+ "dependencies": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "node_modules/babel-plugin-transform-es2015-block-scoping": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz",
+ "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=",
+ "dev": true,
+ "dependencies": {
+ "babel-runtime": "^6.26.0",
+ "babel-template": "^6.26.0",
+ "babel-traverse": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "lodash": "^4.17.4"
+ }
+ },
+ "node_modules/babel-plugin-transform-es2015-classes": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz",
+ "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=",
+ "dev": true,
+ "dependencies": {
+ "babel-helper-define-map": "^6.24.1",
+ "babel-helper-function-name": "^6.24.1",
+ "babel-helper-optimise-call-expression": "^6.24.1",
+ "babel-helper-replace-supers": "^6.24.1",
+ "babel-messages": "^6.23.0",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "node_modules/babel-plugin-transform-es2015-computed-properties": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz",
+ "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=",
+ "dev": true,
+ "dependencies": {
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1"
+ }
+ },
+ "node_modules/babel-plugin-transform-es2015-destructuring": {
+ "version": "6.23.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz",
+ "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=",
+ "dev": true,
+ "dependencies": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "node_modules/babel-plugin-transform-es2015-duplicate-keys": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz",
+ "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=",
+ "dev": true,
+ "dependencies": {
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "node_modules/babel-plugin-transform-es2015-for-of": {
+ "version": "6.23.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz",
+ "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=",
+ "dev": true,
+ "dependencies": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "node_modules/babel-plugin-transform-es2015-function-name": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz",
+ "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=",
+ "dev": true,
+ "dependencies": {
+ "babel-helper-function-name": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "node_modules/babel-plugin-transform-es2015-literals": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz",
+ "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=",
+ "dev": true,
+ "dependencies": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "node_modules/babel-plugin-transform-es2015-modules-amd": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz",
+ "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=",
+ "dev": true,
+ "dependencies": {
+ "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1"
+ }
+ },
+ "node_modules/babel-plugin-transform-es2015-modules-commonjs": {
+ "version": "6.26.2",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz",
+ "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==",
+ "dev": true,
+ "dependencies": {
+ "babel-plugin-transform-strict-mode": "^6.24.1",
+ "babel-runtime": "^6.26.0",
+ "babel-template": "^6.26.0",
+ "babel-types": "^6.26.0"
+ }
+ },
+ "node_modules/babel-plugin-transform-es2015-modules-systemjs": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz",
+ "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=",
+ "dev": true,
+ "dependencies": {
+ "babel-helper-hoist-variables": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1"
+ }
+ },
+ "node_modules/babel-plugin-transform-es2015-modules-umd": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz",
+ "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=",
+ "dev": true,
+ "dependencies": {
+ "babel-plugin-transform-es2015-modules-amd": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1"
+ }
+ },
+ "node_modules/babel-plugin-transform-es2015-object-super": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz",
+ "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=",
+ "dev": true,
+ "dependencies": {
+ "babel-helper-replace-supers": "^6.24.1",
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "node_modules/babel-plugin-transform-es2015-parameters": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz",
+ "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=",
+ "dev": true,
+ "dependencies": {
+ "babel-helper-call-delegate": "^6.24.1",
+ "babel-helper-get-function-arity": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "node_modules/babel-plugin-transform-es2015-shorthand-properties": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz",
+ "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=",
+ "dev": true,
+ "dependencies": {
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "node_modules/babel-plugin-transform-es2015-spread": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz",
+ "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=",
+ "dev": true,
+ "dependencies": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "node_modules/babel-plugin-transform-es2015-sticky-regex": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz",
+ "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=",
+ "dev": true,
+ "dependencies": {
+ "babel-helper-regex": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "node_modules/babel-plugin-transform-es2015-template-literals": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz",
+ "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=",
+ "dev": true,
+ "dependencies": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "node_modules/babel-plugin-transform-es2015-typeof-symbol": {
+ "version": "6.23.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz",
+ "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=",
+ "dev": true,
+ "dependencies": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "node_modules/babel-plugin-transform-es2015-unicode-regex": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz",
+ "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=",
+ "dev": true,
+ "dependencies": {
+ "babel-helper-regex": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "regexpu-core": "^2.0.0"
+ }
+ },
+ "node_modules/babel-plugin-transform-exponentiation-operator": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz",
+ "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=",
+ "dev": true,
+ "dependencies": {
+ "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1",
+ "babel-plugin-syntax-exponentiation-operator": "^6.8.0",
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "node_modules/babel-plugin-transform-regenerator": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz",
+ "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=",
+ "dev": true,
+ "dependencies": {
+ "regenerator-transform": "^0.10.0"
+ }
+ },
+ "node_modules/babel-plugin-transform-strict-mode": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz",
+ "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=",
+ "dev": true,
+ "dependencies": {
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "node_modules/babel-polyfill": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz",
+ "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=",
+ "dev": true,
+ "dependencies": {
+ "babel-runtime": "^6.26.0",
+ "core-js": "^2.5.0",
+ "regenerator-runtime": "^0.10.5"
+ }
+ },
+ "node_modules/babel-polyfill/node_modules/regenerator-runtime": {
+ "version": "0.10.5",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz",
+ "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=",
+ "dev": true
+ },
+ "node_modules/babel-preset-env": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz",
+ "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==",
+ "dev": true,
+ "dependencies": {
+ "babel-plugin-check-es2015-constants": "^6.22.0",
+ "babel-plugin-syntax-trailing-function-commas": "^6.22.0",
+ "babel-plugin-transform-async-to-generator": "^6.22.0",
+ "babel-plugin-transform-es2015-arrow-functions": "^6.22.0",
+ "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0",
+ "babel-plugin-transform-es2015-block-scoping": "^6.23.0",
+ "babel-plugin-transform-es2015-classes": "^6.23.0",
+ "babel-plugin-transform-es2015-computed-properties": "^6.22.0",
+ "babel-plugin-transform-es2015-destructuring": "^6.23.0",
+ "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0",
+ "babel-plugin-transform-es2015-for-of": "^6.23.0",
+ "babel-plugin-transform-es2015-function-name": "^6.22.0",
+ "babel-plugin-transform-es2015-literals": "^6.22.0",
+ "babel-plugin-transform-es2015-modules-amd": "^6.22.0",
+ "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0",
+ "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0",
+ "babel-plugin-transform-es2015-modules-umd": "^6.23.0",
+ "babel-plugin-transform-es2015-object-super": "^6.22.0",
+ "babel-plugin-transform-es2015-parameters": "^6.23.0",
+ "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0",
+ "babel-plugin-transform-es2015-spread": "^6.22.0",
+ "babel-plugin-transform-es2015-sticky-regex": "^6.22.0",
+ "babel-plugin-transform-es2015-template-literals": "^6.22.0",
+ "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0",
+ "babel-plugin-transform-es2015-unicode-regex": "^6.22.0",
+ "babel-plugin-transform-exponentiation-operator": "^6.22.0",
+ "babel-plugin-transform-regenerator": "^6.22.0",
+ "browserslist": "^3.2.6",
+ "invariant": "^2.2.2",
+ "semver": "^5.3.0"
+ }
+ },
+ "node_modules/babel-register": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz",
+ "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=",
+ "dev": true,
+ "dependencies": {
+ "babel-core": "^6.26.0",
+ "babel-runtime": "^6.26.0",
+ "core-js": "^2.5.0",
+ "home-or-tmp": "^2.0.0",
+ "lodash": "^4.17.4",
+ "mkdirp": "^0.5.1",
+ "source-map-support": "^0.4.15"
+ }
+ },
+ "node_modules/babel-runtime": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
+ "dev": true,
+ "dependencies": {
+ "core-js": "^2.4.0",
+ "regenerator-runtime": "^0.11.0"
+ }
+ },
+ "node_modules/babel-template": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz",
+ "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=",
+ "dev": true,
+ "dependencies": {
+ "babel-runtime": "^6.26.0",
+ "babel-traverse": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "babylon": "^6.18.0",
+ "lodash": "^4.17.4"
+ }
+ },
+ "node_modules/babel-traverse": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz",
+ "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=",
+ "dev": true,
+ "dependencies": {
+ "babel-code-frame": "^6.26.0",
+ "babel-messages": "^6.23.0",
+ "babel-runtime": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "babylon": "^6.18.0",
+ "debug": "^2.6.8",
+ "globals": "^9.18.0",
+ "invariant": "^2.2.2",
+ "lodash": "^4.17.4"
+ }
+ },
+ "node_modules/babel-types": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
+ "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
+ "dev": true,
+ "dependencies": {
+ "babel-runtime": "^6.26.0",
+ "esutils": "^2.0.2",
+ "lodash": "^4.17.4",
+ "to-fast-properties": "^1.0.3"
+ }
+ },
+ "node_modules/babylon": {
+ "version": "6.18.0",
+ "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
+ "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==",
+ "dev": true,
+ "bin": {
+ "babylon": "bin/babylon.js"
+ }
+ },
+ "node_modules/balanced-match": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
+ "dev": true
+ },
+ "node_modules/base": {
+ "version": "0.11.2",
+ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
+ "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
+ "dev": true,
+ "dependencies": {
+ "cache-base": "^1.0.1",
+ "class-utils": "^0.3.5",
+ "component-emitter": "^1.2.1",
+ "define-property": "^1.0.0",
+ "isobject": "^3.0.1",
+ "mixin-deep": "^1.2.0",
+ "pascalcase": "^0.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/base/node_modules/define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "dev": true,
+ "dependencies": {
+ "is-descriptor": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/base/node_modules/is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
+ "dependencies": {
+ "kind-of": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/base/node_modules/is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "dependencies": {
+ "kind-of": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/base/node_modules/is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
+ "dependencies": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/base64-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
+ },
+ "node_modules/big.js": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
+ "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
+ "dev": true,
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/binary-extensions": {
+ "version": "1.13.1",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
+ "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/bindings": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
+ "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
+ "dev": true,
+ "optional": true,
+ "dependencies": {
+ "file-uri-to-path": "1.0.0"
+ }
+ },
+ "node_modules/bluebird": {
+ "version": "3.7.2",
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
+ "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==",
+ "dev": true
+ },
+ "node_modules/bn.js": {
+ "version": "4.11.8",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
+ "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==",
+ "dev": true
+ },
+ "node_modules/brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/braces": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+ "dev": true,
+ "dependencies": {
+ "arr-flatten": "^1.1.0",
+ "array-unique": "^0.3.2",
+ "extend-shallow": "^2.0.1",
+ "fill-range": "^4.0.0",
+ "isobject": "^3.0.1",
+ "repeat-element": "^1.1.2",
+ "snapdragon": "^0.8.1",
+ "snapdragon-node": "^2.0.1",
+ "split-string": "^3.0.2",
+ "to-regex": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/braces/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/brorand": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
+ "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=",
+ "dev": true
+ },
+ "node_modules/browserify-aes": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
+ "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
+ "dev": true,
+ "dependencies": {
+ "buffer-xor": "^1.0.3",
+ "cipher-base": "^1.0.0",
+ "create-hash": "^1.1.0",
+ "evp_bytestokey": "^1.0.3",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "node_modules/browserify-cipher": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz",
+ "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==",
+ "dev": true,
+ "dependencies": {
+ "browserify-aes": "^1.0.4",
+ "browserify-des": "^1.0.0",
+ "evp_bytestokey": "^1.0.0"
+ }
+ },
+ "node_modules/browserify-des": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz",
+ "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==",
+ "dev": true,
+ "dependencies": {
+ "cipher-base": "^1.0.1",
+ "des.js": "^1.0.0",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.1.2"
+ }
+ },
+ "node_modules/browserify-rsa": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz",
+ "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=",
+ "dev": true,
+ "dependencies": {
+ "bn.js": "^4.1.0",
+ "randombytes": "^2.0.1"
+ }
+ },
+ "node_modules/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,
+ "dependencies": {
+ "bn.js": "^4.1.1",
+ "browserify-rsa": "^4.0.0",
+ "create-hash": "^1.1.0",
+ "create-hmac": "^1.1.2",
+ "elliptic": "^6.0.0",
+ "inherits": "^2.0.1",
+ "parse-asn1": "^5.0.0"
+ }
+ },
+ "node_modules/browserify-zlib": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz",
+ "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==",
+ "dev": true,
+ "dependencies": {
+ "pako": "~1.0.5"
+ }
+ },
+ "node_modules/browserslist": {
+ "version": "3.2.8",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz",
+ "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==",
+ "dev": true,
+ "dependencies": {
+ "caniuse-lite": "^1.0.30000844",
+ "electron-to-chromium": "^1.3.47"
+ },
+ "bin": {
+ "browserslist": "cli.js"
+ }
+ },
+ "node_modules/buffer": {
+ "version": "4.9.2",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz",
+ "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==",
+ "dev": true,
+ "dependencies": {
+ "base64-js": "^1.0.2",
+ "ieee754": "^1.1.4",
+ "isarray": "^1.0.0"
+ }
+ },
+ "node_modules/buffer-from": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
+ "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
+ "dev": true
+ },
+ "node_modules/buffer-xor": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
+ "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=",
+ "dev": true
+ },
+ "node_modules/builtin-status-codes": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
+ "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=",
+ "dev": true
+ },
+ "node_modules/cacache": {
+ "version": "10.0.4",
+ "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz",
+ "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==",
+ "dev": true,
+ "dependencies": {
+ "bluebird": "^3.5.1",
+ "chownr": "^1.0.1",
+ "glob": "^7.1.2",
+ "graceful-fs": "^4.1.11",
+ "lru-cache": "^4.1.1",
+ "mississippi": "^2.0.0",
+ "mkdirp": "^0.5.1",
+ "move-concurrently": "^1.0.1",
+ "promise-inflight": "^1.0.1",
+ "rimraf": "^2.6.2",
+ "ssri": "^5.2.4",
+ "unique-filename": "^1.1.0",
+ "y18n": "^4.0.0"
+ }
+ },
+ "node_modules/cache-base": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
+ "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
+ "dev": true,
+ "dependencies": {
+ "collection-visit": "^1.0.0",
+ "component-emitter": "^1.2.1",
+ "get-value": "^2.0.6",
+ "has-value": "^1.0.0",
+ "isobject": "^3.0.1",
+ "set-value": "^2.0.0",
+ "to-object-path": "^0.3.0",
+ "union-value": "^1.0.0",
+ "unset-value": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/camelcase": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
+ "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/caniuse-lite": {
+ "version": "1.0.30001033",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001033.tgz",
+ "integrity": "sha512-8Ibzxee6ibc5q88cM1usPsMpJOG5CTq0s/dKOmlekPbDGKt+UrnOOTPSjQz3kVo6yL7N4SB5xd+FGLHQmbzh6A==",
+ "dev": true
+ },
+ "node_modules/center-align": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
+ "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
+ "dev": true,
+ "dependencies": {
+ "align-text": "^0.1.3",
+ "lazy-cache": "^1.0.3"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/chokidar": {
+ "version": "2.1.8",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz",
+ "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==",
+ "dev": true,
+ "dependencies": {
+ "anymatch": "^2.0.0",
+ "async-each": "^1.0.1",
+ "braces": "^2.3.2",
+ "glob-parent": "^3.1.0",
+ "inherits": "^2.0.3",
+ "is-binary-path": "^1.0.0",
+ "is-glob": "^4.0.0",
+ "normalize-path": "^3.0.0",
+ "path-is-absolute": "^1.0.0",
+ "readdirp": "^2.2.1",
+ "upath": "^1.1.1"
+ },
+ "optionalDependencies": {
+ "fsevents": "^1.2.7"
+ }
+ },
+ "node_modules/chownr": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
+ "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
+ "dev": true
+ },
+ "node_modules/cipher-base": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
+ "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
+ "dev": true,
+ "dependencies": {
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "node_modules/class-utils": {
+ "version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
+ "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
+ "dev": true,
+ "dependencies": {
+ "arr-union": "^3.1.0",
+ "define-property": "^0.2.5",
+ "isobject": "^3.0.0",
+ "static-extend": "^0.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/class-utils/node_modules/define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "dependencies": {
+ "is-descriptor": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/cliui": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
+ "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
+ "dev": true,
+ "dependencies": {
+ "center-align": "^0.1.1",
+ "right-align": "^0.1.1",
+ "wordwrap": "0.0.2"
+ }
+ },
+ "node_modules/code-point-at": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
+ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/collection-visit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
+ "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
+ "dev": true,
+ "dependencies": {
+ "map-visit": "^1.0.0",
+ "object-visit": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "1.1.3"
+ }
+ },
+ "node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
+ "dev": true
+ },
+ "node_modules/commondir": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
+ "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
+ "dev": true
+ },
+ "node_modules/component-emitter": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
+ "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==",
+ "dev": true
+ },
+ "node_modules/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
+ },
+ "node_modules/concat-stream": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
+ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
+ "dev": true,
+ "engines": [
+ "node >= 0.8"
+ ],
+ "dependencies": {
+ "buffer-from": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.2.2",
+ "typedarray": "^0.0.6"
+ }
+ },
+ "node_modules/console-browserify": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz",
+ "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==",
+ "dev": true
+ },
+ "node_modules/constants-browserify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
+ "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=",
+ "dev": true
+ },
+ "node_modules/convert-source-map": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz",
+ "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==",
+ "dev": true,
+ "dependencies": {
+ "safe-buffer": "~5.1.1"
+ }
+ },
+ "node_modules/copy-concurrently": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz",
+ "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==",
+ "dev": true,
+ "dependencies": {
+ "aproba": "^1.1.1",
+ "fs-write-stream-atomic": "^1.0.8",
+ "iferr": "^0.1.5",
+ "mkdirp": "^0.5.1",
+ "rimraf": "^2.5.4",
+ "run-queue": "^1.0.0"
+ }
+ },
+ "node_modules/copy-descriptor": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
+ "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/copy-webpack-plugin": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.6.0.tgz",
+ "integrity": "sha512-Y+SQCF+0NoWQryez2zXn5J5knmr9z/9qSQt7fbL78u83rxmigOy8X5+BFn8CFSuX+nKT8gpYwJX68ekqtQt6ZA==",
+ "dev": true,
+ "dependencies": {
+ "cacache": "^10.0.4",
+ "find-cache-dir": "^1.0.0",
+ "globby": "^7.1.1",
+ "is-glob": "^4.0.0",
+ "loader-utils": "^1.1.0",
+ "minimatch": "^3.0.4",
+ "p-limit": "^1.0.0",
+ "serialize-javascript": "^1.4.0"
+ },
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/core-js": {
+ "version": "2.6.11",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz",
+ "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==",
+ "dev": true
+ },
+ "node_modules/core-util-is": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
+ },
+ "node_modules/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,
+ "dependencies": {
+ "bn.js": "^4.1.0",
+ "elliptic": "^6.0.0"
+ }
+ },
+ "node_modules/create-hash": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
+ "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
+ "dev": true,
+ "dependencies": {
+ "cipher-base": "^1.0.1",
+ "inherits": "^2.0.1",
+ "md5.js": "^1.3.4",
+ "ripemd160": "^2.0.1",
+ "sha.js": "^2.4.0"
+ }
+ },
+ "node_modules/create-hmac": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
+ "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
+ "dev": true,
+ "dependencies": {
+ "cipher-base": "^1.0.3",
+ "create-hash": "^1.1.0",
+ "inherits": "^2.0.1",
+ "ripemd160": "^2.0.0",
+ "safe-buffer": "^5.0.1",
+ "sha.js": "^2.4.8"
+ }
+ },
+ "node_modules/cross-spawn": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
+ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^4.0.1",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ }
+ },
+ "node_modules/crypto-browserify": {
+ "version": "3.12.0",
+ "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz",
+ "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==",
+ "dev": true,
+ "dependencies": {
+ "browserify-cipher": "^1.0.0",
+ "browserify-sign": "^4.0.0",
+ "create-ecdh": "^4.0.0",
+ "create-hash": "^1.1.0",
+ "create-hmac": "^1.1.0",
+ "diffie-hellman": "^5.0.0",
+ "inherits": "^2.0.1",
+ "pbkdf2": "^3.0.3",
+ "public-encrypt": "^4.0.0",
+ "randombytes": "^2.0.0",
+ "randomfill": "^1.0.3"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/cyclist": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz",
+ "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=",
+ "dev": true
+ },
+ "node_modules/d": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz",
+ "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==",
+ "dev": true,
+ "dependencies": {
+ "es5-ext": "^0.10.50",
+ "type": "^1.0.1"
+ }
+ },
+ "node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/decode-uri-component": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
+ "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/define-property": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
+ "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
+ "dev": true,
+ "dependencies": {
+ "is-descriptor": "^1.0.2",
+ "isobject": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/define-property/node_modules/is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
+ "dependencies": {
+ "kind-of": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/define-property/node_modules/is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "dependencies": {
+ "kind-of": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/define-property/node_modules/is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
+ "dependencies": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/des.js": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz",
+ "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==",
+ "dev": true,
+ "dependencies": {
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0"
+ }
+ },
+ "node_modules/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,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/detect-indent": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz",
+ "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=",
+ "dev": true,
+ "dependencies": {
+ "repeating": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/diffie-hellman": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
+ "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==",
+ "dev": true,
+ "dependencies": {
+ "bn.js": "^4.1.0",
+ "miller-rabin": "^4.0.0",
+ "randombytes": "^2.0.0"
+ }
+ },
+ "node_modules/dir-glob": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz",
+ "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==",
+ "dev": true,
+ "dependencies": {
+ "path-type": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/domain-browser": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz",
+ "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.4",
+ "npm": ">=1.2"
+ }
+ },
+ "node_modules/duplexify": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz",
+ "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==",
+ "dev": true,
+ "dependencies": {
+ "end-of-stream": "^1.0.0",
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.0",
+ "stream-shift": "^1.0.0"
+ }
+ },
+ "node_modules/electron-to-chromium": {
+ "version": "1.3.374",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.374.tgz",
+ "integrity": "sha512-M4Y9onOJ4viRk3A4M/LH+r9+1zQioRZJvGJn/S/o7KaBJQLgFiaHMUlDwM0QMJd5ki6hFxKiWdC6jp5Ub0zMmw==",
+ "dev": true
+ },
+ "node_modules/elliptic": {
+ "version": "6.5.2",
+ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.2.tgz",
+ "integrity": "sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw==",
+ "dev": true,
+ "dependencies": {
+ "bn.js": "^4.4.0",
+ "brorand": "^1.0.1",
+ "hash.js": "^1.0.0",
+ "hmac-drbg": "^1.0.0",
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0",
+ "minimalistic-crypto-utils": "^1.0.0"
+ }
+ },
+ "node_modules/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
+ },
+ "node_modules/emojis-list": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz",
+ "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
+ "dev": true,
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/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,
+ "dependencies": {
+ "once": "^1.4.0"
+ }
+ },
+ "node_modules/enhanced-resolve": {
+ "version": "3.4.1",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz",
+ "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=",
+ "dev": true,
+ "dependencies": {
+ "graceful-fs": "^4.1.2",
+ "memory-fs": "^0.4.0",
+ "object-assign": "^4.0.1",
+ "tapable": "^0.2.7"
+ },
+ "engines": {
+ "node": ">=4.3.0 <5.0.0 || >=5.10"
+ }
+ },
+ "node_modules/errno": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz",
+ "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==",
+ "dev": true,
+ "dependencies": {
+ "prr": "~1.0.1"
+ },
+ "bin": {
+ "errno": "cli.js"
+ }
+ },
+ "node_modules/error-ex": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
+ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "dev": true,
+ "dependencies": {
+ "is-arrayish": "^0.2.1"
+ }
+ },
+ "node_modules/es5-ext": {
+ "version": "0.10.53",
+ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz",
+ "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==",
+ "dev": true,
+ "dependencies": {
+ "es6-iterator": "~2.0.3",
+ "es6-symbol": "~3.1.3",
+ "next-tick": "~1.0.0"
+ }
+ },
+ "node_modules/es6-iterator": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
+ "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=",
+ "dev": true,
+ "dependencies": {
+ "d": "1",
+ "es5-ext": "^0.10.35",
+ "es6-symbol": "^3.1.1"
+ }
+ },
+ "node_modules/es6-map": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz",
+ "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=",
+ "dev": true,
+ "dependencies": {
+ "d": "1",
+ "es5-ext": "~0.10.14",
+ "es6-iterator": "~2.0.1",
+ "es6-set": "~0.1.5",
+ "es6-symbol": "~3.1.1",
+ "event-emitter": "~0.3.5"
+ }
+ },
+ "node_modules/es6-set": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz",
+ "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=",
+ "dev": true,
+ "dependencies": {
+ "d": "1",
+ "es5-ext": "~0.10.14",
+ "es6-iterator": "~2.0.1",
+ "es6-symbol": "3.1.1",
+ "event-emitter": "~0.3.5"
+ }
+ },
+ "node_modules/es6-set/node_modules/es6-symbol": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
+ "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=",
+ "dev": true,
+ "dependencies": {
+ "d": "1",
+ "es5-ext": "~0.10.14"
+ }
+ },
+ "node_modules/es6-symbol": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz",
+ "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==",
+ "dev": true,
+ "dependencies": {
+ "d": "^1.0.1",
+ "ext": "^1.1.2"
+ }
+ },
+ "node_modules/es6-weak-map": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz",
+ "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==",
+ "dev": true,
+ "dependencies": {
+ "d": "1",
+ "es5-ext": "^0.10.46",
+ "es6-iterator": "^2.0.3",
+ "es6-symbol": "^3.1.1"
+ }
+ },
+ "node_modules/escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/escope": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz",
+ "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=",
+ "dev": true,
+ "dependencies": {
+ "es6-map": "^0.1.3",
+ "es6-weak-map": "^2.0.1",
+ "esrecurse": "^4.1.0",
+ "estraverse": "^4.1.1"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/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,
+ "dependencies": {
+ "estraverse": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/estraverse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+ "dev": true,
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/esutils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/event-emitter": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
+ "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=",
+ "dev": true,
+ "dependencies": {
+ "d": "1",
+ "es5-ext": "~0.10.14"
+ }
+ },
+ "node_modules/events": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/events/-/events-3.1.0.tgz",
+ "integrity": "sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8.x"
+ }
+ },
+ "node_modules/evp_bytestokey": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
+ "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
+ "dev": true,
+ "dependencies": {
+ "md5.js": "^1.3.4",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "node_modules/execa": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
+ "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
+ "dev": true,
+ "dependencies": {
+ "cross-spawn": "^5.0.1",
+ "get-stream": "^3.0.0",
+ "is-stream": "^1.1.0",
+ "npm-run-path": "^2.0.0",
+ "p-finally": "^1.0.0",
+ "signal-exit": "^3.0.0",
+ "strip-eof": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/expand-brackets": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
+ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
+ "dev": true,
+ "dependencies": {
+ "debug": "^2.3.3",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "posix-character-classes": "^0.1.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/expand-brackets/node_modules/define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "dependencies": {
+ "is-descriptor": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/expand-brackets/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/expand-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,
+ "dependencies": {
+ "homedir-polyfill": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/ext": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz",
+ "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==",
+ "dev": true,
+ "dependencies": {
+ "type": "^2.0.0"
+ }
+ },
+ "node_modules/ext/node_modules/type": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/type/-/type-2.0.0.tgz",
+ "integrity": "sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow==",
+ "dev": true
+ },
+ "node_modules/extend-shallow": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+ "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
+ "dev": true,
+ "dependencies": {
+ "assign-symbols": "^1.0.0",
+ "is-extendable": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/extend-shallow/node_modules/is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "dev": true,
+ "dependencies": {
+ "is-plain-object": "^2.0.4"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/extglob": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
+ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
+ "dev": true,
+ "dependencies": {
+ "array-unique": "^0.3.2",
+ "define-property": "^1.0.0",
+ "expand-brackets": "^2.1.4",
+ "extend-shallow": "^2.0.1",
+ "fragment-cache": "^0.2.1",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/extglob/node_modules/define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "dev": true,
+ "dependencies": {
+ "is-descriptor": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/extglob/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/extglob/node_modules/is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
+ "dependencies": {
+ "kind-of": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/extglob/node_modules/is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "dependencies": {
+ "kind-of": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/extglob/node_modules/is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
+ "dependencies": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fast-deep-equal": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
+ "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==",
+ "dev": true
+ },
+ "node_modules/fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
+ "dev": true
+ },
+ "node_modules/file-uri-to-path": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
+ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
+ "dev": true,
+ "optional": true
+ },
+ "node_modules/fill-range": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
+ "dev": true,
+ "dependencies": {
+ "extend-shallow": "^2.0.1",
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1",
+ "to-regex-range": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fill-range/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/find-cache-dir": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz",
+ "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=",
+ "dev": true,
+ "dependencies": {
+ "commondir": "^1.0.1",
+ "make-dir": "^1.0.0",
+ "pkg-dir": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/find-up": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+ "dev": true,
+ "dependencies": {
+ "locate-path": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/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,
+ "dependencies": {
+ "detect-file": "^1.0.0",
+ "is-glob": "^4.0.0",
+ "micromatch": "^3.0.4",
+ "resolve-dir": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/flush-write-stream": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz",
+ "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==",
+ "dev": true,
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.3.6"
+ }
+ },
+ "node_modules/for-in": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
+ "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fragment-cache": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
+ "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
+ "dev": true,
+ "dependencies": {
+ "map-cache": "^0.2.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/from2": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz",
+ "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=",
+ "dev": true,
+ "dependencies": {
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.0"
+ }
+ },
+ "node_modules/fs-write-stream-atomic": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz",
+ "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=",
+ "dev": true,
+ "dependencies": {
+ "graceful-fs": "^4.1.2",
+ "iferr": "^0.1.5",
+ "imurmurhash": "^0.1.4",
+ "readable-stream": "1 || 2"
+ }
+ },
+ "node_modules/fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
+ "dev": true
+ },
+ "node_modules/fsevents": {
+ "version": "1.2.11",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.11.tgz",
+ "integrity": "sha512-+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw==",
+ "bundleDependencies": [
+ "abbrev",
+ "ansi-regex",
+ "aproba",
+ "are-we-there-yet",
+ "balanced-match",
+ "brace-expansion",
+ "chownr",
+ "code-point-at",
+ "concat-map",
+ "console-control-strings",
+ "core-util-is",
+ "debug",
+ "deep-extend",
+ "delegates",
+ "detect-libc",
+ "fs-minipass",
+ "fs.realpath",
+ "gauge",
+ "glob",
+ "has-unicode",
+ "iconv-lite",
+ "ignore-walk",
+ "inflight",
+ "inherits",
+ "ini",
+ "is-fullwidth-code-point",
+ "isarray",
+ "minimatch",
+ "minimist",
+ "minipass",
+ "minizlib",
+ "mkdirp",
+ "ms",
+ "needle",
+ "node-pre-gyp",
+ "nopt",
+ "npm-bundled",
+ "npm-normalize-package-bin",
+ "npm-packlist",
+ "npmlog",
+ "number-is-nan",
+ "object-assign",
+ "once",
+ "os-homedir",
+ "os-tmpdir",
+ "osenv",
+ "path-is-absolute",
+ "process-nextick-args",
+ "rc",
+ "readable-stream",
+ "rimraf",
+ "safe-buffer",
+ "safer-buffer",
+ "sax",
+ "semver",
+ "set-blocking",
+ "signal-exit",
+ "string-width",
+ "string_decoder",
+ "strip-ansi",
+ "strip-json-comments",
+ "tar",
+ "util-deprecate",
+ "wide-align",
+ "wrappy",
+ "yallist"
+ ],
+ "dev": true,
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "dependencies": {
+ "bindings": "^1.5.0",
+ "nan": "^2.12.1",
+ "node-pre-gyp": "*"
+ },
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/fsevents/node_modules/abbrev": {
+ "version": "1.1.1",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true
+ },
+ "node_modules/fsevents/node_modules/ansi-regex": {
+ "version": "2.1.1",
+ "dev": true,
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fsevents/node_modules/aproba": {
+ "version": "1.2.0",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true
+ },
+ "node_modules/fsevents/node_modules/are-we-there-yet": {
+ "version": "1.1.5",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "delegates": "^1.0.0",
+ "readable-stream": "^2.0.6"
+ }
+ },
+ "node_modules/fsevents/node_modules/balanced-match": {
+ "version": "1.0.0",
+ "dev": true,
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/fsevents/node_modules/brace-expansion": {
+ "version": "1.1.11",
+ "dev": true,
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/fsevents/node_modules/chownr": {
+ "version": "1.1.3",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true
+ },
+ "node_modules/fsevents/node_modules/code-point-at": {
+ "version": "1.1.0",
+ "dev": true,
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fsevents/node_modules/concat-map": {
+ "version": "0.0.1",
+ "dev": true,
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/fsevents/node_modules/console-control-strings": {
+ "version": "1.1.0",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true
+ },
+ "node_modules/fsevents/node_modules/core-util-is": {
+ "version": "1.0.2",
+ "dev": true,
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/fsevents/node_modules/debug": {
+ "version": "3.2.6",
+ "dev": true,
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "ms": "^2.1.1"
+ }
+ },
+ "node_modules/fsevents/node_modules/deep-extend": {
+ "version": "0.6.0",
+ "dev": true,
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/fsevents/node_modules/delegates": {
+ "version": "1.0.0",
+ "dev": true,
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/fsevents/node_modules/detect-libc": {
+ "version": "1.0.3",
+ "dev": true,
+ "inBundle": true,
+ "license": "Apache-2.0",
+ "optional": true,
+ "bin": {
+ "detect-libc": "bin/detect-libc.js"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/fsevents/node_modules/fs-minipass": {
+ "version": "1.2.7",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "minipass": "^2.6.0"
+ }
+ },
+ "node_modules/fsevents/node_modules/fs.realpath": {
+ "version": "1.0.0",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true
+ },
+ "node_modules/fsevents/node_modules/gauge": {
+ "version": "2.7.4",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "aproba": "^1.0.3",
+ "console-control-strings": "^1.0.0",
+ "has-unicode": "^2.0.0",
+ "object-assign": "^4.1.0",
+ "signal-exit": "^3.0.0",
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1",
+ "wide-align": "^1.1.0"
+ }
+ },
+ "node_modules/fsevents/node_modules/glob": {
+ "version": "7.1.6",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/fsevents/node_modules/has-unicode": {
+ "version": "2.0.1",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true
+ },
+ "node_modules/fsevents/node_modules/iconv-lite": {
+ "version": "0.4.24",
+ "dev": true,
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fsevents/node_modules/ignore-walk": {
+ "version": "3.0.3",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "minimatch": "^3.0.4"
+ }
+ },
+ "node_modules/fsevents/node_modules/inflight": {
+ "version": "1.0.6",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "node_modules/fsevents/node_modules/inherits": {
+ "version": "2.0.4",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true
+ },
+ "node_modules/fsevents/node_modules/ini": {
+ "version": "1.3.5",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true,
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/fsevents/node_modules/is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "dev": true,
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "number-is-nan": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fsevents/node_modules/isarray": {
+ "version": "1.0.0",
+ "dev": true,
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/fsevents/node_modules/minimatch": {
+ "version": "3.0.4",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/fsevents/node_modules/minimist": {
+ "version": "0.0.8",
+ "dev": true,
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/fsevents/node_modules/minipass": {
+ "version": "2.9.0",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "safe-buffer": "^5.1.2",
+ "yallist": "^3.0.0"
+ }
+ },
+ "node_modules/fsevents/node_modules/minizlib": {
+ "version": "1.3.3",
+ "dev": true,
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "minipass": "^2.9.0"
+ }
+ },
+ "node_modules/fsevents/node_modules/mkdirp": {
+ "version": "0.5.1",
+ "dev": true,
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "minimist": "0.0.8"
+ },
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ }
+ },
+ "node_modules/fsevents/node_modules/ms": {
+ "version": "2.1.2",
+ "dev": true,
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/fsevents/node_modules/needle": {
+ "version": "2.4.0",
+ "dev": true,
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "debug": "^3.2.6",
+ "iconv-lite": "^0.4.4",
+ "sax": "^1.2.4"
+ },
+ "bin": {
+ "needle": "bin/needle"
+ },
+ "engines": {
+ "node": ">= 4.4.x"
+ }
+ },
+ "node_modules/fsevents/node_modules/node-pre-gyp": {
+ "version": "0.14.0",
+ "dev": true,
+ "inBundle": true,
+ "license": "BSD-3-Clause",
+ "optional": true,
+ "dependencies": {
+ "detect-libc": "^1.0.2",
+ "mkdirp": "^0.5.1",
+ "needle": "^2.2.1",
+ "nopt": "^4.0.1",
+ "npm-packlist": "^1.1.6",
+ "npmlog": "^4.0.2",
+ "rc": "^1.2.7",
+ "rimraf": "^2.6.1",
+ "semver": "^5.3.0",
+ "tar": "^4.4.2"
+ },
+ "bin": {
+ "node-pre-gyp": "bin/node-pre-gyp"
+ }
+ },
+ "node_modules/fsevents/node_modules/nopt": {
+ "version": "4.0.1",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "abbrev": "1",
+ "osenv": "^0.1.4"
+ },
+ "bin": {
+ "nopt": "bin/nopt.js"
+ }
+ },
+ "node_modules/fsevents/node_modules/npm-bundled": {
+ "version": "1.1.1",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "npm-normalize-package-bin": "^1.0.1"
+ }
+ },
+ "node_modules/fsevents/node_modules/npm-normalize-package-bin": {
+ "version": "1.0.1",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true
+ },
+ "node_modules/fsevents/node_modules/npm-packlist": {
+ "version": "1.4.7",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "ignore-walk": "^3.0.1",
+ "npm-bundled": "^1.0.1"
+ }
+ },
+ "node_modules/fsevents/node_modules/npmlog": {
+ "version": "4.1.2",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "are-we-there-yet": "~1.1.2",
+ "console-control-strings": "~1.1.0",
+ "gauge": "~2.7.3",
+ "set-blocking": "~2.0.0"
+ }
+ },
+ "node_modules/fsevents/node_modules/number-is-nan": {
+ "version": "1.0.1",
+ "dev": true,
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fsevents/node_modules/object-assign": {
+ "version": "4.1.1",
+ "dev": true,
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fsevents/node_modules/once": {
+ "version": "1.4.0",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "wrappy": "1"
+ }
+ },
+ "node_modules/fsevents/node_modules/os-homedir": {
+ "version": "1.0.2",
+ "dev": true,
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fsevents/node_modules/os-tmpdir": {
+ "version": "1.0.2",
+ "dev": true,
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fsevents/node_modules/osenv": {
+ "version": "0.1.5",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "os-homedir": "^1.0.0",
+ "os-tmpdir": "^1.0.0"
+ }
+ },
+ "node_modules/fsevents/node_modules/path-is-absolute": {
+ "version": "1.0.1",
+ "dev": true,
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fsevents/node_modules/process-nextick-args": {
+ "version": "2.0.1",
+ "dev": true,
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/fsevents/node_modules/rc": {
+ "version": "1.2.8",
+ "dev": true,
+ "inBundle": true,
+ "license": "(BSD-2-Clause OR MIT OR Apache-2.0)",
+ "optional": true,
+ "dependencies": {
+ "deep-extend": "^0.6.0",
+ "ini": "~1.3.0",
+ "minimist": "^1.2.0",
+ "strip-json-comments": "~2.0.1"
+ },
+ "bin": {
+ "rc": "cli.js"
+ }
+ },
+ "node_modules/fsevents/node_modules/rc/node_modules/minimist": {
+ "version": "1.2.0",
+ "dev": true,
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/fsevents/node_modules/readable-stream": {
+ "version": "2.3.6",
+ "dev": true,
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "node_modules/fsevents/node_modules/rimraf": {
+ "version": "2.7.1",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ }
+ },
+ "node_modules/fsevents/node_modules/safe-buffer": {
+ "version": "5.1.2",
+ "dev": true,
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/fsevents/node_modules/safer-buffer": {
+ "version": "2.1.2",
+ "dev": true,
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/fsevents/node_modules/sax": {
+ "version": "1.2.4",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true
+ },
+ "node_modules/fsevents/node_modules/semver": {
+ "version": "5.7.1",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true,
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/fsevents/node_modules/set-blocking": {
+ "version": "2.0.0",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true
+ },
+ "node_modules/fsevents/node_modules/signal-exit": {
+ "version": "3.0.2",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true
+ },
+ "node_modules/fsevents/node_modules/string_decoder": {
+ "version": "1.1.1",
+ "dev": true,
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "node_modules/fsevents/node_modules/string-width": {
+ "version": "1.0.2",
+ "dev": true,
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fsevents/node_modules/strip-ansi": {
+ "version": "3.0.1",
+ "dev": true,
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "ansi-regex": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fsevents/node_modules/strip-json-comments": {
+ "version": "2.0.1",
+ "dev": true,
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fsevents/node_modules/tar": {
+ "version": "4.4.13",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "chownr": "^1.1.1",
+ "fs-minipass": "^1.2.5",
+ "minipass": "^2.8.6",
+ "minizlib": "^1.2.1",
+ "mkdirp": "^0.5.0",
+ "safe-buffer": "^5.1.2",
+ "yallist": "^3.0.3"
+ },
+ "engines": {
+ "node": ">=4.5"
+ }
+ },
+ "node_modules/fsevents/node_modules/util-deprecate": {
+ "version": "1.0.2",
+ "dev": true,
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/fsevents/node_modules/wide-align": {
+ "version": "1.1.3",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "string-width": "^1.0.2 || 2"
+ }
+ },
+ "node_modules/fsevents/node_modules/wrappy": {
+ "version": "1.0.2",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true
+ },
+ "node_modules/fsevents/node_modules/yallist": {
+ "version": "3.1.1",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true
+ },
+ "node_modules/get-caller-file": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
+ "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==",
+ "dev": true
+ },
+ "node_modules/get-stream": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
+ "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/get-value": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
+ "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/gif.js": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/gif.js/-/gif.js-0.2.0.tgz",
+ "integrity": "sha1-YV5uN4iFDNOiDIX+nwlTnnhJA+g="
+ },
+ "node_modules/glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "dev": true,
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/glob-parent": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
+ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
+ "dev": true,
+ "dependencies": {
+ "is-glob": "^3.1.0",
+ "path-dirname": "^1.0.0"
+ }
+ },
+ "node_modules/glob-parent/node_modules/is-glob": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
+ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
+ "dev": true,
+ "dependencies": {
+ "is-extglob": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/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,
+ "dependencies": {
+ "global-prefix": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/global-modules/node_modules/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,
+ "dependencies": {
+ "ini": "^1.3.5",
+ "kind-of": "^6.0.2",
+ "which": "^1.3.1"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/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,
+ "dependencies": {
+ "expand-tilde": "^2.0.2",
+ "homedir-polyfill": "^1.0.1",
+ "ini": "^1.3.4",
+ "is-windows": "^1.0.1",
+ "which": "^1.2.14"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/globals": {
+ "version": "9.18.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",
+ "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/globby": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz",
+ "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=",
+ "dev": true,
+ "dependencies": {
+ "array-union": "^1.0.1",
+ "dir-glob": "^2.0.0",
+ "glob": "^7.1.2",
+ "ignore": "^3.3.5",
+ "pify": "^3.0.0",
+ "slash": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/graceful-fs": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
+ "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
+ "dev": true
+ },
+ "node_modules/has-ansi": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/has-value": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
+ "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
+ "dev": true,
+ "dependencies": {
+ "get-value": "^2.0.6",
+ "has-values": "^1.0.0",
+ "isobject": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/has-values": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
+ "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
+ "dev": true,
+ "dependencies": {
+ "is-number": "^3.0.0",
+ "kind-of": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/has-values/node_modules/kind-of": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
+ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
+ "dev": true,
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/hash-base": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz",
+ "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=",
+ "dev": true,
+ "dependencies": {
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/hash.js": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
+ "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
+ "dev": true,
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "minimalistic-assert": "^1.0.1"
+ }
+ },
+ "node_modules/hmac-drbg": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
+ "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=",
+ "dev": true,
+ "dependencies": {
+ "hash.js": "^1.0.3",
+ "minimalistic-assert": "^1.0.0",
+ "minimalistic-crypto-utils": "^1.0.1"
+ }
+ },
+ "node_modules/home-or-tmp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz",
+ "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=",
+ "dev": true,
+ "dependencies": {
+ "os-homedir": "^1.0.0",
+ "os-tmpdir": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/homedir-polyfill": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz",
+ "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==",
+ "dev": true,
+ "dependencies": {
+ "parse-passwd": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/hosted-git-info": {
+ "version": "2.8.8",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz",
+ "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==",
+ "dev": true
+ },
+ "node_modules/https-browserify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
+ "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=",
+ "dev": true
+ },
+ "node_modules/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
+ },
+ "node_modules/iferr": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz",
+ "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=",
+ "dev": true
+ },
+ "node_modules/ignore": {
+ "version": "3.3.10",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz",
+ "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==",
+ "dev": true
+ },
+ "node_modules/immediate": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
+ "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps="
+ },
+ "node_modules/import-local": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz",
+ "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==",
+ "dev": true,
+ "dependencies": {
+ "pkg-dir": "^3.0.0",
+ "resolve-cwd": "^2.0.0"
+ },
+ "bin": {
+ "import-local-fixture": "fixtures/cli.js"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/import-local/node_modules/find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "dev": true,
+ "dependencies": {
+ "locate-path": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/import-local/node_modules/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,
+ "dependencies": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/import-local/node_modules/p-limit": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz",
+ "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==",
+ "dev": true,
+ "dependencies": {
+ "p-try": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/import-local/node_modules/p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "dev": true,
+ "dependencies": {
+ "p-limit": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/import-local/node_modules/p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/import-local/node_modules/pkg-dir": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
+ "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
+ "dev": true,
+ "dependencies": {
+ "find-up": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8.19"
+ }
+ },
+ "node_modules/inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "dev": true,
+ "dependencies": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "node_modules/inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+ },
+ "node_modules/ini": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
+ "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
+ "dev": true,
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/interpret": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz",
+ "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/invariant": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
+ "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
+ "dev": true,
+ "dependencies": {
+ "loose-envify": "^1.0.0"
+ }
+ },
+ "node_modules/invert-kv": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
+ "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+ "dev": true,
+ "dependencies": {
+ "kind-of": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-accessor-descriptor/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
+ "dev": true
+ },
+ "node_modules/is-binary-path": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
+ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
+ "dev": true,
+ "dependencies": {
+ "binary-extensions": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-buffer": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
+ "dev": true
+ },
+ "node_modules/is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+ "dev": true,
+ "dependencies": {
+ "kind-of": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-data-descriptor/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "dev": true,
+ "dependencies": {
+ "is-accessor-descriptor": "^0.1.6",
+ "is-data-descriptor": "^0.1.4",
+ "kind-of": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-descriptor/node_modules/kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-finite": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz",
+ "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "dev": true,
+ "dependencies": {
+ "number-is-nan": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-glob": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
+ "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
+ "dev": true,
+ "dependencies": {
+ "is-extglob": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+ "dev": true,
+ "dependencies": {
+ "kind-of": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-number/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-plain-object": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+ "dev": true,
+ "dependencies": {
+ "isobject": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-stream": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-windows": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
+ "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
+ },
+ "node_modules/isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
+ "dev": true
+ },
+ "node_modules/isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/js-tokens": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
+ "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
+ "dev": true
+ },
+ "node_modules/jsesc": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz",
+ "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=",
+ "dev": true,
+ "bin": {
+ "jsesc": "bin/jsesc"
+ }
+ },
+ "node_modules/json-loader": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz",
+ "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==",
+ "dev": true
+ },
+ "node_modules/json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "dev": true
+ },
+ "node_modules/json5": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
+ "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=",
+ "dev": true,
+ "bin": {
+ "json5": "lib/cli.js"
+ }
+ },
+ "node_modules/jszip": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.2.2.tgz",
+ "integrity": "sha512-NmKajvAFQpbg3taXQXr/ccS2wcucR1AZ+NtyWp2Nq7HHVsXhcJFR8p0Baf32C2yVvBylFWVeKf+WI2AnvlPhpA==",
+ "dependencies": {
+ "lie": "~3.3.0",
+ "pako": "~1.0.2",
+ "readable-stream": "~2.3.6",
+ "set-immediate-shim": "~1.0.1"
+ }
+ },
+ "node_modules/kind-of": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/lazy-cache": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
+ "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/lcid": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
+ "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
+ "dev": true,
+ "dependencies": {
+ "invert-kv": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/lie": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz",
+ "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==",
+ "dependencies": {
+ "immediate": "~3.0.5"
+ }
+ },
+ "node_modules/load-json-file": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
+ "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
+ "dev": true,
+ "dependencies": {
+ "graceful-fs": "^4.1.2",
+ "parse-json": "^2.2.0",
+ "pify": "^2.0.0",
+ "strip-bom": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/load-json-file/node_modules/pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/loader-runner": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz",
+ "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==",
+ "dev": true,
+ "engines": {
+ "node": ">=4.3.0 <5.0.0 || >=5.10"
+ }
+ },
+ "node_modules/loader-utils": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
+ "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
+ "dev": true,
+ "dependencies": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/loader-utils/node_modules/json5": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+ "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+ "dev": true,
+ "dependencies": {
+ "minimist": "^1.2.0"
+ },
+ "bin": {
+ "json5": "lib/cli.js"
+ }
+ },
+ "node_modules/loader-utils/node_modules/minimist": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.3.tgz",
+ "integrity": "sha512-+bMdgqjMN/Z77a6NlY/I3U5LlRDbnmaAk6lDveAPKwSpcPM4tKAuYsvYF8xjhOPXhOYGe/73vVLVez5PW+jqhw==",
+ "dev": true
+ },
+ "node_modules/locate-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
+ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
+ "dev": true,
+ "dependencies": {
+ "p-locate": "^2.0.0",
+ "path-exists": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/lodash": {
+ "version": "4.17.15",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
+ "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
+ "dev": true
+ },
+ "node_modules/longest": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
+ "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/loose-envify": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
+ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
+ "dev": true,
+ "dependencies": {
+ "js-tokens": "^3.0.0 || ^4.0.0"
+ },
+ "bin": {
+ "loose-envify": "cli.js"
+ }
+ },
+ "node_modules/lru-cache": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
+ "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
+ "dev": true,
+ "dependencies": {
+ "pseudomap": "^1.0.2",
+ "yallist": "^2.1.2"
+ }
+ },
+ "node_modules/make-dir": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
+ "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
+ "dev": true,
+ "dependencies": {
+ "pify": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/map-age-cleaner": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz",
+ "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==",
+ "dev": true,
+ "dependencies": {
+ "p-defer": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/map-cache": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
+ "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/map-visit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
+ "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
+ "dev": true,
+ "dependencies": {
+ "object-visit": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/md5.js": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
+ "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
+ "dev": true,
+ "dependencies": {
+ "hash-base": "^3.0.0",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.1.2"
+ }
+ },
+ "node_modules/mem": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz",
+ "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=",
+ "dev": true,
+ "dependencies": {
+ "mimic-fn": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/memory-fs": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz",
+ "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=",
+ "dev": true,
+ "dependencies": {
+ "errno": "^0.1.3",
+ "readable-stream": "^2.0.1"
+ }
+ },
+ "node_modules/micromatch": {
+ "version": "3.1.10",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+ "dev": true,
+ "dependencies": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "braces": "^2.3.1",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "extglob": "^2.0.4",
+ "fragment-cache": "^0.2.1",
+ "kind-of": "^6.0.2",
+ "nanomatch": "^1.2.9",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/miller-rabin": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz",
+ "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==",
+ "dev": true,
+ "dependencies": {
+ "bn.js": "^4.0.0",
+ "brorand": "^1.0.1"
+ },
+ "bin": {
+ "miller-rabin": "bin/miller-rabin"
+ }
+ },
+ "node_modules/mimic-fn": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
+ "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/minimalistic-assert": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
+ "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==",
+ "dev": true
+ },
+ "node_modules/minimalistic-crypto-utils": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
+ "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=",
+ "dev": true
+ },
+ "node_modules/minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/minimist": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
+ "dev": true
+ },
+ "node_modules/mississippi": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz",
+ "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==",
+ "dev": true,
+ "dependencies": {
+ "concat-stream": "^1.5.0",
+ "duplexify": "^3.4.2",
+ "end-of-stream": "^1.1.0",
+ "flush-write-stream": "^1.0.0",
+ "from2": "^2.1.0",
+ "parallel-transform": "^1.1.0",
+ "pump": "^2.0.1",
+ "pumpify": "^1.3.3",
+ "stream-each": "^1.1.0",
+ "through2": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/mixin-deep": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
+ "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
+ "dev": true,
+ "dependencies": {
+ "for-in": "^1.0.2",
+ "is-extendable": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/mixin-deep/node_modules/is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "dev": true,
+ "dependencies": {
+ "is-plain-object": "^2.0.4"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/mkdirp": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "dev": true,
+ "dependencies": {
+ "minimist": "0.0.8"
+ },
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ }
+ },
+ "node_modules/move-concurrently": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz",
+ "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=",
+ "dev": true,
+ "dependencies": {
+ "aproba": "^1.1.1",
+ "copy-concurrently": "^1.0.0",
+ "fs-write-stream-atomic": "^1.0.8",
+ "mkdirp": "^0.5.1",
+ "rimraf": "^2.5.4",
+ "run-queue": "^1.0.3"
+ }
+ },
+ "node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ },
+ "node_modules/nan": {
+ "version": "2.14.0",
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz",
+ "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==",
+ "dev": true,
+ "optional": true
+ },
+ "node_modules/nanomatch": {
+ "version": "1.2.13",
+ "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
+ "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
+ "dev": true,
+ "dependencies": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "fragment-cache": "^0.2.1",
+ "is-windows": "^1.0.2",
+ "kind-of": "^6.0.2",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/neo-async": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz",
+ "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==",
+ "dev": true
+ },
+ "node_modules/next-tick": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
+ "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=",
+ "dev": true
+ },
+ "node_modules/nice-try": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
+ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
+ "dev": true
+ },
+ "node_modules/node-libs-browser": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz",
+ "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==",
+ "dev": true,
+ "dependencies": {
+ "assert": "^1.1.1",
+ "browserify-zlib": "^0.2.0",
+ "buffer": "^4.3.0",
+ "console-browserify": "^1.1.0",
+ "constants-browserify": "^1.0.0",
+ "crypto-browserify": "^3.11.0",
+ "domain-browser": "^1.1.1",
+ "events": "^3.0.0",
+ "https-browserify": "^1.0.0",
+ "os-browserify": "^0.3.0",
+ "path-browserify": "0.0.1",
+ "process": "^0.11.10",
+ "punycode": "^1.2.4",
+ "querystring-es3": "^0.2.0",
+ "readable-stream": "^2.3.3",
+ "stream-browserify": "^2.0.1",
+ "stream-http": "^2.7.2",
+ "string_decoder": "^1.0.0",
+ "timers-browserify": "^2.0.4",
+ "tty-browserify": "0.0.0",
+ "url": "^0.11.0",
+ "util": "^0.11.0",
+ "vm-browserify": "^1.0.1"
+ }
+ },
+ "node_modules/node-libs-browser/node_modules/inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+ "dev": true
+ },
+ "node_modules/node-libs-browser/node_modules/punycode": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+ "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
+ "dev": true
+ },
+ "node_modules/node-libs-browser/node_modules/util": {
+ "version": "0.11.1",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz",
+ "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==",
+ "dev": true,
+ "dependencies": {
+ "inherits": "2.0.3"
+ }
+ },
+ "node_modules/normalize-package-data": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
+ "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
+ "dev": true,
+ "dependencies": {
+ "hosted-git-info": "^2.1.4",
+ "resolve": "^1.10.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
+ }
+ },
+ "node_modules/normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/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,
+ "dependencies": {
+ "path-key": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/number-is-nan": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-copy": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
+ "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
+ "dev": true,
+ "dependencies": {
+ "copy-descriptor": "^0.1.0",
+ "define-property": "^0.2.5",
+ "kind-of": "^3.0.3"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-copy/node_modules/define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "dependencies": {
+ "is-descriptor": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-copy/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-visit": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
+ "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
+ "dev": true,
+ "dependencies": {
+ "isobject": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object.pick": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
+ "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
+ "dev": true,
+ "dependencies": {
+ "isobject": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "dev": true,
+ "dependencies": {
+ "wrappy": "1"
+ }
+ },
+ "node_modules/os-browserify": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz",
+ "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=",
+ "dev": true
+ },
+ "node_modules/os-homedir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+ "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/os-locale": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz",
+ "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==",
+ "dev": true,
+ "dependencies": {
+ "execa": "^0.7.0",
+ "lcid": "^1.0.0",
+ "mem": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/os-tmpdir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/p-defer": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz",
+ "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/p-finally": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
+ "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/p-is-promise": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz",
+ "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/p-limit": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
+ "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
+ "dev": true,
+ "dependencies": {
+ "p-try": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/p-locate": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
+ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
+ "dev": true,
+ "dependencies": {
+ "p-limit": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/p-try": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
+ "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/pako": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
+ "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw=="
+ },
+ "node_modules/parallel-transform": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz",
+ "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==",
+ "dev": true,
+ "dependencies": {
+ "cyclist": "^1.0.1",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.1.5"
+ }
+ },
+ "node_modules/parse-asn1": {
+ "version": "5.1.5",
+ "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz",
+ "integrity": "sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==",
+ "dev": true,
+ "dependencies": {
+ "asn1.js": "^4.0.0",
+ "browserify-aes": "^1.0.0",
+ "create-hash": "^1.1.0",
+ "evp_bytestokey": "^1.0.0",
+ "pbkdf2": "^3.0.3",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "node_modules/parse-json": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
+ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
+ "dev": true,
+ "dependencies": {
+ "error-ex": "^1.2.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/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,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/pascalcase": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
+ "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/path": {
+ "version": "0.12.7",
+ "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz",
+ "integrity": "sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8=",
+ "dev": true,
+ "dependencies": {
+ "process": "^0.11.1",
+ "util": "^0.10.3"
+ }
+ },
+ "node_modules/path-browserify": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz",
+ "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==",
+ "dev": true
+ },
+ "node_modules/path-dirname": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
+ "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=",
+ "dev": true
+ },
+ "node_modules/path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/path-parse": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
+ "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
+ "dev": true
+ },
+ "node_modules/path-type": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
+ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
+ "dev": true,
+ "dependencies": {
+ "pify": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/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,
+ "dependencies": {
+ "create-hash": "^1.1.2",
+ "create-hmac": "^1.1.4",
+ "ripemd160": "^2.0.1",
+ "safe-buffer": "^5.0.1",
+ "sha.js": "^2.4.8"
+ },
+ "engines": {
+ "node": ">=0.12"
+ }
+ },
+ "node_modules/pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/pkg-dir": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz",
+ "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=",
+ "dev": true,
+ "dependencies": {
+ "find-up": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/posix-character-classes": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
+ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/private": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz",
+ "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/process": {
+ "version": "0.11.10",
+ "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
+ "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.6.0"
+ }
+ },
+ "node_modules/process-nextick-args": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
+ },
+ "node_modules/promise-inflight": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
+ "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=",
+ "dev": true
+ },
+ "node_modules/prr": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
+ "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=",
+ "dev": true
+ },
+ "node_modules/pseudomap": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
+ "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
+ "dev": true
+ },
+ "node_modules/public-encrypt": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz",
+ "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==",
+ "dev": true,
+ "dependencies": {
+ "bn.js": "^4.1.0",
+ "browserify-rsa": "^4.0.0",
+ "create-hash": "^1.1.0",
+ "parse-asn1": "^5.0.0",
+ "randombytes": "^2.0.1",
+ "safe-buffer": "^5.1.2"
+ }
+ },
+ "node_modules/pump": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz",
+ "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==",
+ "dev": true,
+ "dependencies": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "node_modules/pumpify": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz",
+ "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==",
+ "dev": true,
+ "dependencies": {
+ "duplexify": "^3.6.0",
+ "inherits": "^2.0.3",
+ "pump": "^2.0.0"
+ }
+ },
+ "node_modules/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,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/querystring": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
+ "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.4.x"
+ }
+ },
+ "node_modules/querystring-es3": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz",
+ "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.4.x"
+ }
+ },
+ "node_modules/randombytes": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
+ "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
+ "dev": true,
+ "dependencies": {
+ "safe-buffer": "^5.1.0"
+ }
+ },
+ "node_modules/randomfill": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz",
+ "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==",
+ "dev": true,
+ "dependencies": {
+ "randombytes": "^2.0.5",
+ "safe-buffer": "^5.1.0"
+ }
+ },
+ "node_modules/read-pkg": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
+ "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
+ "dev": true,
+ "dependencies": {
+ "load-json-file": "^2.0.0",
+ "normalize-package-data": "^2.3.2",
+ "path-type": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/read-pkg-up": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
+ "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
+ "dev": true,
+ "dependencies": {
+ "find-up": "^2.0.0",
+ "read-pkg": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/read-pkg/node_modules/path-type": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
+ "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
+ "dev": true,
+ "dependencies": {
+ "pify": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/read-pkg/node_modules/pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/readable-stream": {
+ "version": "2.3.7",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "dependencies": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "node_modules/readdirp": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
+ "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==",
+ "dev": true,
+ "dependencies": {
+ "graceful-fs": "^4.1.11",
+ "micromatch": "^3.1.10",
+ "readable-stream": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/regenerate": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz",
+ "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==",
+ "dev": true
+ },
+ "node_modules/regenerator-runtime": {
+ "version": "0.11.1",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
+ "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==",
+ "dev": true
+ },
+ "node_modules/regenerator-transform": {
+ "version": "0.10.1",
+ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz",
+ "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==",
+ "dev": true,
+ "dependencies": {
+ "babel-runtime": "^6.18.0",
+ "babel-types": "^6.19.0",
+ "private": "^0.1.6"
+ }
+ },
+ "node_modules/regex-not": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
+ "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
+ "dev": true,
+ "dependencies": {
+ "extend-shallow": "^3.0.2",
+ "safe-regex": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/regexpu-core": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz",
+ "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=",
+ "dev": true,
+ "dependencies": {
+ "regenerate": "^1.2.1",
+ "regjsgen": "^0.2.0",
+ "regjsparser": "^0.1.4"
+ }
+ },
+ "node_modules/regjsgen": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz",
+ "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=",
+ "dev": true
+ },
+ "node_modules/regjsparser": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz",
+ "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=",
+ "dev": true,
+ "dependencies": {
+ "jsesc": "~0.5.0"
+ },
+ "bin": {
+ "regjsparser": "bin/parser"
+ }
+ },
+ "node_modules/regjsparser/node_modules/jsesc": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
+ "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
+ "dev": true,
+ "bin": {
+ "jsesc": "bin/jsesc"
+ }
+ },
+ "node_modules/remove-trailing-separator": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
+ "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
+ "dev": true
+ },
+ "node_modules/repeat-element": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
+ "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/repeat-string": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
+ "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/repeating": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
+ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
+ "dev": true,
+ "dependencies": {
+ "is-finite": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/require-directory": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/require-main-filename": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
+ "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=",
+ "dev": true
+ },
+ "node_modules/resolve": {
+ "version": "1.15.1",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz",
+ "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==",
+ "dev": true,
+ "dependencies": {
+ "path-parse": "^1.0.6"
+ }
+ },
+ "node_modules/resolve-cwd": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz",
+ "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=",
+ "dev": true,
+ "dependencies": {
+ "resolve-from": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/resolve-dir": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz",
+ "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=",
+ "dev": true,
+ "dependencies": {
+ "expand-tilde": "^2.0.0",
+ "global-modules": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/resolve-dir/node_modules/global-modules": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz",
+ "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==",
+ "dev": true,
+ "dependencies": {
+ "global-prefix": "^1.0.1",
+ "is-windows": "^1.0.1",
+ "resolve-dir": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/resolve-from": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
+ "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/resolve-url": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
+ "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
+ "dev": true
+ },
+ "node_modules/ret": {
+ "version": "0.1.15",
+ "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
+ "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.12"
+ }
+ },
+ "node_modules/right-align": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
+ "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
+ "dev": true,
+ "dependencies": {
+ "align-text": "^0.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "dev": true,
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ }
+ },
+ "node_modules/ripemd160": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz",
+ "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
+ "dev": true,
+ "dependencies": {
+ "hash-base": "^3.0.0",
+ "inherits": "^2.0.1"
+ }
+ },
+ "node_modules/run-queue": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz",
+ "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=",
+ "dev": true,
+ "dependencies": {
+ "aproba": "^1.1.1"
+ }
+ },
+ "node_modules/safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+ },
+ "node_modules/safe-regex": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
+ "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
+ "dev": true,
+ "dependencies": {
+ "ret": "~0.1.10"
+ }
+ },
+ "node_modules/semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/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
+ },
+ "node_modules/set-blocking": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
+ "dev": true
+ },
+ "node_modules/set-immediate-shim": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz",
+ "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/set-value": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
+ "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
+ "dev": true,
+ "dependencies": {
+ "extend-shallow": "^2.0.1",
+ "is-extendable": "^0.1.1",
+ "is-plain-object": "^2.0.3",
+ "split-string": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/set-value/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/setimmediate": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
+ "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=",
+ "dev": true
+ },
+ "node_modules/sha.js": {
+ "version": "2.4.11",
+ "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
+ "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
+ "dev": true,
+ "dependencies": {
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ },
+ "bin": {
+ "sha.js": "bin.js"
+ }
+ },
+ "node_modules/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,
+ "dependencies": {
+ "shebang-regex": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/signal-exit": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
+ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
+ "dev": true
+ },
+ "node_modules/slash": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
+ "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
+ "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
+ "dev": true,
+ "dependencies": {
+ "base": "^0.11.1",
+ "debug": "^2.2.0",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "map-cache": "^0.2.2",
+ "source-map": "^0.5.6",
+ "source-map-resolve": "^0.5.0",
+ "use": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon-node": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
+ "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
+ "dev": true,
+ "dependencies": {
+ "define-property": "^1.0.0",
+ "isobject": "^3.0.0",
+ "snapdragon-util": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon-node/node_modules/define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "dev": true,
+ "dependencies": {
+ "is-descriptor": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon-node/node_modules/is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
+ "dependencies": {
+ "kind-of": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon-node/node_modules/is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "dependencies": {
+ "kind-of": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon-node/node_modules/is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
+ "dependencies": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon-util": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
+ "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
+ "dev": true,
+ "dependencies": {
+ "kind-of": "^3.2.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon-util/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon/node_modules/define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "dependencies": {
+ "is-descriptor": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/source-list-map": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz",
+ "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==",
+ "dev": true
+ },
+ "node_modules/source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/source-map-resolve": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz",
+ "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==",
+ "dev": true,
+ "dependencies": {
+ "atob": "^2.1.2",
+ "decode-uri-component": "^0.2.0",
+ "resolve-url": "^0.2.1",
+ "source-map-url": "^0.4.0",
+ "urix": "^0.1.0"
+ }
+ },
+ "node_modules/source-map-support": {
+ "version": "0.4.18",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz",
+ "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==",
+ "dev": true,
+ "dependencies": {
+ "source-map": "^0.5.6"
+ }
+ },
+ "node_modules/source-map-url": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
+ "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=",
+ "dev": true
+ },
+ "node_modules/spdx-correct": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz",
+ "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==",
+ "dev": true,
+ "dependencies": {
+ "spdx-expression-parse": "^3.0.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "node_modules/spdx-exceptions": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz",
+ "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==",
+ "dev": true
+ },
+ "node_modules/spdx-expression-parse": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz",
+ "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==",
+ "dev": true,
+ "dependencies": {
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "node_modules/spdx-license-ids": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz",
+ "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==",
+ "dev": true
+ },
+ "node_modules/split-string": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
+ "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
+ "dev": true,
+ "dependencies": {
+ "extend-shallow": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/ssri": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz",
+ "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==",
+ "dev": true,
+ "dependencies": {
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "node_modules/static-extend": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
+ "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
+ "dev": true,
+ "dependencies": {
+ "define-property": "^0.2.5",
+ "object-copy": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/static-extend/node_modules/define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "dependencies": {
+ "is-descriptor": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/stream-browserify": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz",
+ "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==",
+ "dev": true,
+ "dependencies": {
+ "inherits": "~2.0.1",
+ "readable-stream": "^2.0.2"
+ }
+ },
+ "node_modules/stream-each": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz",
+ "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==",
+ "dev": true,
+ "dependencies": {
+ "end-of-stream": "^1.1.0",
+ "stream-shift": "^1.0.0"
+ }
+ },
+ "node_modules/stream-http": {
+ "version": "2.8.3",
+ "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz",
+ "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==",
+ "dev": true,
+ "dependencies": {
+ "builtin-status-codes": "^3.0.0",
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.3.6",
+ "to-arraybuffer": "^1.0.0",
+ "xtend": "^4.0.0"
+ }
+ },
+ "node_modules/stream-shift": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz",
+ "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==",
+ "dev": true
+ },
+ "node_modules/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==",
+ "dependencies": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "node_modules/string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "dev": true,
+ "dependencies": {
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/string-width/node_modules/ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/string-width/node_modules/is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/string-width/node_modules/strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/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,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/tapable": {
+ "version": "0.2.9",
+ "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.9.tgz",
+ "integrity": "sha512-2wsvQ+4GwBvLPLWsNfLCDYGsW6xb7aeC6utq2Qh0PFwgEy7K7dsma9Jsmb2zSQj7GvYAyUGSntLtsv++GmgL1A==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.6"
+ }
+ },
+ "node_modules/through2": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
+ "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
+ "dev": true,
+ "dependencies": {
+ "readable-stream": "~2.3.6",
+ "xtend": "~4.0.1"
+ }
+ },
+ "node_modules/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,
+ "dependencies": {
+ "setimmediate": "^1.0.4"
+ },
+ "engines": {
+ "node": ">=0.6.0"
+ }
+ },
+ "node_modules/to-arraybuffer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
+ "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=",
+ "dev": true
+ },
+ "node_modules/to-fast-properties": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz",
+ "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/to-object-path": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
+ "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
+ "dev": true,
+ "dependencies": {
+ "kind-of": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/to-object-path/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/to-regex": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
+ "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
+ "dev": true,
+ "dependencies": {
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "regex-not": "^1.0.2",
+ "safe-regex": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/to-regex-range": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
+ "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
+ "dev": true,
+ "dependencies": {
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/trim-right": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz",
+ "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/ts-loader": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-3.5.0.tgz",
+ "integrity": "sha512-JTia3kObhTk36wPFgy0RnkZReiusYx7Le9IhcUWRrCTcFcr6Dy1zGsFd3x8DG4gevlbN65knI8W50FfoykXcng==",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^2.3.0",
+ "enhanced-resolve": "^3.0.0",
+ "loader-utils": "^1.0.2",
+ "micromatch": "^3.1.4",
+ "semver": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=4.3.0 <5.0.0 || >=5.10"
+ }
+ },
+ "node_modules/ts-loader/node_modules/ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/ts-loader/node_modules/chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/ts-loader/node_modules/supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/tty-browserify": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz",
+ "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=",
+ "dev": true
+ },
+ "node_modules/type": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz",
+ "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==",
+ "dev": true
+ },
+ "node_modules/typedarray": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
+ "dev": true
+ },
+ "node_modules/typescript": {
+ "version": "2.9.2",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz",
+ "integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==",
+ "dev": true,
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=4.2.0"
+ }
+ },
+ "node_modules/uglify-js": {
+ "version": "2.8.29",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
+ "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
+ "dev": true,
+ "dependencies": {
+ "source-map": "~0.5.1",
+ "yargs": "~3.10.0"
+ },
+ "bin": {
+ "uglifyjs": "bin/uglifyjs"
+ },
+ "engines": {
+ "node": ">=0.8.0"
+ },
+ "optionalDependencies": {
+ "uglify-to-browserify": "~1.0.0"
+ }
+ },
+ "node_modules/uglify-js/node_modules/yargs": {
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
+ "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
+ "dev": true,
+ "dependencies": {
+ "camelcase": "^1.0.2",
+ "cliui": "^2.1.0",
+ "decamelize": "^1.0.0",
+ "window-size": "0.1.0"
+ }
+ },
+ "node_modules/uglify-to-browserify": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
+ "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
+ "dev": true,
+ "optional": true
+ },
+ "node_modules/uglifyjs-webpack-plugin": {
+ "version": "0.4.6",
+ "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz",
+ "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=",
+ "dev": true,
+ "dependencies": {
+ "source-map": "^0.5.6",
+ "uglify-js": "^2.8.29",
+ "webpack-sources": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4.3.0 <5.0.0 || >=5.10"
+ }
+ },
+ "node_modules/union-value": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
+ "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==",
+ "dev": true,
+ "dependencies": {
+ "arr-union": "^3.1.0",
+ "get-value": "^2.0.6",
+ "is-extendable": "^0.1.1",
+ "set-value": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/unique-filename": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz",
+ "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==",
+ "dev": true,
+ "dependencies": {
+ "unique-slug": "^2.0.0"
+ }
+ },
+ "node_modules/unique-slug": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz",
+ "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==",
+ "dev": true,
+ "dependencies": {
+ "imurmurhash": "^0.1.4"
+ }
+ },
+ "node_modules/unset-value": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
+ "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
+ "dev": true,
+ "dependencies": {
+ "has-value": "^0.3.1",
+ "isobject": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/unset-value/node_modules/has-value": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
+ "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
+ "dev": true,
+ "dependencies": {
+ "get-value": "^2.0.3",
+ "has-values": "^0.1.4",
+ "isobject": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/unset-value/node_modules/has-value/node_modules/isobject": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
+ "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
+ "dev": true,
+ "dependencies": {
+ "isarray": "1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/unset-value/node_modules/has-values": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
+ "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/upath": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz",
+ "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==",
+ "dev": true,
+ "engines": {
+ "node": ">=4",
+ "yarn": "*"
+ }
+ },
+ "node_modules/uri-js": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
+ "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
+ "dev": true,
+ "dependencies": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "node_modules/urix": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
+ "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
+ "dev": true
+ },
+ "node_modules/url": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
+ "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
+ "dev": true,
+ "dependencies": {
+ "punycode": "1.3.2",
+ "querystring": "0.2.0"
+ }
+ },
+ "node_modules/url/node_modules/punycode": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
+ "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=",
+ "dev": true
+ },
+ "node_modules/use": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
+ "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/util": {
+ "version": "0.10.4",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz",
+ "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==",
+ "dev": true,
+ "dependencies": {
+ "inherits": "2.0.3"
+ }
+ },
+ "node_modules/util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
+ },
+ "node_modules/util/node_modules/inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+ "dev": true
+ },
+ "node_modules/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
+ },
+ "node_modules/validate-npm-package-license": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
+ "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
+ "dev": true,
+ "dependencies": {
+ "spdx-correct": "^3.0.0",
+ "spdx-expression-parse": "^3.0.0"
+ }
+ },
+ "node_modules/vm-browserify": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz",
+ "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==",
+ "dev": true
+ },
+ "node_modules/watchpack": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz",
+ "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==",
+ "dev": true,
+ "dependencies": {
+ "chokidar": "^2.0.2",
+ "graceful-fs": "^4.1.2",
+ "neo-async": "^2.5.0"
+ }
+ },
+ "node_modules/webpack": {
+ "version": "3.12.0",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.12.0.tgz",
+ "integrity": "sha512-Sw7MdIIOv/nkzPzee4o0EdvCuPmxT98+vVpIvwtcwcF1Q4SDSNp92vwcKc4REe7NItH9f1S4ra9FuQ7yuYZ8bQ==",
+ "dev": true,
+ "dependencies": {
+ "acorn": "^5.0.0",
+ "acorn-dynamic-import": "^2.0.0",
+ "ajv": "^6.1.0",
+ "ajv-keywords": "^3.1.0",
+ "async": "^2.1.2",
+ "enhanced-resolve": "^3.4.0",
+ "escope": "^3.6.0",
+ "interpret": "^1.0.0",
+ "json-loader": "^0.5.4",
+ "json5": "^0.5.1",
+ "loader-runner": "^2.3.0",
+ "loader-utils": "^1.1.0",
+ "memory-fs": "~0.4.1",
+ "mkdirp": "~0.5.0",
+ "node-libs-browser": "^2.0.0",
+ "source-map": "^0.5.3",
+ "supports-color": "^4.2.1",
+ "tapable": "^0.2.7",
+ "uglifyjs-webpack-plugin": "^0.4.6",
+ "watchpack": "^1.4.0",
+ "webpack-sources": "^1.0.1",
+ "yargs": "^8.0.2"
+ },
+ "bin": {
+ "webpack": "bin/webpack.js"
+ },
+ "engines": {
+ "node": ">=4.3.0 <5.0.0 || >=5.10"
+ }
+ },
+ "node_modules/webpack-cli": {
+ "version": "3.3.11",
+ "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.11.tgz",
+ "integrity": "sha512-dXlfuml7xvAFwYUPsrtQAA9e4DOe58gnzSxhgrO/ZM/gyXTBowrsYeubyN4mqGhYdpXMFNyQ6emjJS9M7OBd4g==",
+ "dev": true,
+ "dependencies": {
+ "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"
+ },
+ "bin": {
+ "webpack-cli": "bin/cli.js"
+ },
+ "engines": {
+ "node": ">=6.11.5"
+ }
+ },
+ "node_modules/webpack-cli/node_modules/ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/webpack-cli/node_modules/ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/webpack-cli/node_modules/camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/webpack-cli/node_modules/chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/webpack-cli/node_modules/chalk/node_modules/supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/webpack-cli/node_modules/cliui": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
+ "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
+ "dev": true,
+ "dependencies": {
+ "string-width": "^3.1.0",
+ "strip-ansi": "^5.2.0",
+ "wrap-ansi": "^5.1.0"
+ }
+ },
+ "node_modules/webpack-cli/node_modules/cross-spawn": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+ "dev": true,
+ "dependencies": {
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ },
+ "engines": {
+ "node": ">=4.8"
+ }
+ },
+ "node_modules/webpack-cli/node_modules/emojis-list": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
+ "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/webpack-cli/node_modules/enhanced-resolve": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz",
+ "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==",
+ "dev": true,
+ "dependencies": {
+ "graceful-fs": "^4.1.2",
+ "memory-fs": "^0.4.0",
+ "tapable": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/webpack-cli/node_modules/execa": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
+ "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
+ "dev": true,
+ "dependencies": {
+ "cross-spawn": "^6.0.0",
+ "get-stream": "^4.0.0",
+ "is-stream": "^1.1.0",
+ "npm-run-path": "^2.0.0",
+ "p-finally": "^1.0.0",
+ "signal-exit": "^3.0.0",
+ "strip-eof": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/webpack-cli/node_modules/find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "dev": true,
+ "dependencies": {
+ "locate-path": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/webpack-cli/node_modules/get-caller-file": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+ "dev": true,
+ "engines": {
+ "node": "6.* || 8.* || >= 10.*"
+ }
+ },
+ "node_modules/webpack-cli/node_modules/get-stream": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+ "dev": true,
+ "dependencies": {
+ "pump": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/webpack-cli/node_modules/invert-kv": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz",
+ "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/webpack-cli/node_modules/is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/webpack-cli/node_modules/json5": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+ "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+ "dev": true,
+ "dependencies": {
+ "minimist": "^1.2.0"
+ },
+ "bin": {
+ "json5": "lib/cli.js"
+ }
+ },
+ "node_modules/webpack-cli/node_modules/lcid": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz",
+ "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==",
+ "dev": true,
+ "dependencies": {
+ "invert-kv": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/webpack-cli/node_modules/loader-utils": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz",
+ "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==",
+ "dev": true,
+ "dependencies": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^2.0.0",
+ "json5": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/webpack-cli/node_modules/locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "dev": true,
+ "dependencies": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/webpack-cli/node_modules/mem": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz",
+ "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==",
+ "dev": true,
+ "dependencies": {
+ "map-age-cleaner": "^0.1.1",
+ "mimic-fn": "^2.0.0",
+ "p-is-promise": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/webpack-cli/node_modules/mimic-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/webpack-cli/node_modules/minimist": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.3.tgz",
+ "integrity": "sha512-+bMdgqjMN/Z77a6NlY/I3U5LlRDbnmaAk6lDveAPKwSpcPM4tKAuYsvYF8xjhOPXhOYGe/73vVLVez5PW+jqhw==",
+ "dev": true
+ },
+ "node_modules/webpack-cli/node_modules/os-locale": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz",
+ "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==",
+ "dev": true,
+ "dependencies": {
+ "execa": "^1.0.0",
+ "lcid": "^2.0.0",
+ "mem": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/webpack-cli/node_modules/p-limit": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz",
+ "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==",
+ "dev": true,
+ "dependencies": {
+ "p-try": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/webpack-cli/node_modules/p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "dev": true,
+ "dependencies": {
+ "p-limit": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/webpack-cli/node_modules/p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/webpack-cli/node_modules/pump": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "dev": true,
+ "dependencies": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "node_modules/webpack-cli/node_modules/require-main-filename": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
+ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
+ "dev": true
+ },
+ "node_modules/webpack-cli/node_modules/string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "dev": true,
+ "dependencies": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/webpack-cli/node_modules/strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/webpack-cli/node_modules/supports-color": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+ "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/webpack-cli/node_modules/tapable": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz",
+ "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/webpack-cli/node_modules/wrap-ansi": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
+ "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^3.2.0",
+ "string-width": "^3.0.0",
+ "strip-ansi": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/webpack-cli/node_modules/yargs": {
+ "version": "13.2.4",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.2.4.tgz",
+ "integrity": "sha512-HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg==",
+ "dev": true,
+ "dependencies": {
+ "cliui": "^5.0.0",
+ "find-up": "^3.0.0",
+ "get-caller-file": "^2.0.1",
+ "os-locale": "^3.1.0",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^2.0.0",
+ "set-blocking": "^2.0.0",
+ "string-width": "^3.0.0",
+ "which-module": "^2.0.0",
+ "y18n": "^4.0.0",
+ "yargs-parser": "^13.1.0"
+ }
+ },
+ "node_modules/webpack-cli/node_modules/yargs-parser": {
+ "version": "13.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz",
+ "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==",
+ "dev": true,
+ "dependencies": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ }
+ },
+ "node_modules/webpack-sources": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz",
+ "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==",
+ "dev": true,
+ "dependencies": {
+ "source-list-map": "^2.0.0",
+ "source-map": "~0.6.1"
+ }
+ },
+ "node_modules/webpack-sources/node_modules/source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/webpack/node_modules/has-flag": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
+ "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/webpack/node_modules/supports-color": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
+ "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/which": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "dev": true,
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "which": "bin/which"
+ }
+ },
+ "node_modules/which-module": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
+ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
+ "dev": true
+ },
+ "node_modules/window-size": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
+ "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/wordwrap": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
+ "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/wrap-ansi": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
+ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
+ "dev": true,
+ "dependencies": {
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/wrap-ansi/node_modules/string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "dev": true,
+ "dependencies": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+ "dev": true
+ },
+ "node_modules/xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.4"
+ }
+ },
+ "node_modules/y18n": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
+ "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
+ "dev": true
+ },
+ "node_modules/yallist": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
+ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
+ "dev": true
+ },
+ "node_modules/yargs": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz",
+ "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=",
+ "dev": true,
+ "dependencies": {
+ "camelcase": "^4.1.0",
+ "cliui": "^3.2.0",
+ "decamelize": "^1.1.1",
+ "get-caller-file": "^1.0.1",
+ "os-locale": "^2.0.0",
+ "read-pkg-up": "^2.0.0",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^1.0.1",
+ "set-blocking": "^2.0.0",
+ "string-width": "^2.0.0",
+ "which-module": "^2.0.0",
+ "y18n": "^3.2.1",
+ "yargs-parser": "^7.0.0"
+ }
+ },
+ "node_modules/yargs-parser": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz",
+ "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=",
+ "dev": true,
+ "dependencies": {
+ "camelcase": "^4.1.0"
+ }
+ },
+ "node_modules/yargs-parser/node_modules/camelcase": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
+ "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/yargs/node_modules/camelcase": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
+ "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/yargs/node_modules/cliui": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
+ "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
+ "dev": true,
+ "dependencies": {
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1",
+ "wrap-ansi": "^2.0.0"
+ }
+ },
+ "node_modules/yargs/node_modules/cliui/node_modules/string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "dev": true,
+ "dependencies": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/yargs/node_modules/y18n": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
+ "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=",
+ "dev": true
+ }
+ },
"dependencies": {
"@types/jszip": {
"version": "3.1.7",
@@ -2592,24 +9357,24 @@
"dev": true,
"optional": true
},
- "string-width": {
- "version": "1.0.2",
+ "string_decoder": {
+ "version": "1.1.1",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
- "code-point-at": "^1.0.0",
- "is-fullwidth-code-point": "^1.0.0",
- "strip-ansi": "^3.0.0"
+ "safe-buffer": "~5.1.0"
}
},
- "string_decoder": {
- "version": "1.1.1",
+ "string-width": {
+ "version": "1.0.2",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
- "safe-buffer": "~5.1.0"
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
}
},
"strip-ansi": {
@@ -4706,6 +11471,14 @@
"integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==",
"dev": true
},
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
"string-width": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
@@ -4739,14 +11512,6 @@
}
}
},
- "string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "requires": {
- "safe-buffer": "~5.1.0"
- }
- },
"strip-ansi": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
diff --git a/package.json b/package.json
index e6185ef..af7a918 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "open-tibia-library",
- "version": "0.1.4",
+ "version": "0.1.6",
"description": "OpenTibiaLibrary",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",