From 3ab330b8aefb3cd781c9b8730b4ab7ac65e7e9d7 Mon Sep 17 00:00:00 2001
From: chenlu <1320612696@qq.com>
Date: 星期五, 07 三月 2025 09:14:08 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10105/r/ERP_override

---
 north-glass-erp/northglass-erp/src/router/index.js                                       |    5 
 .gitignore                                                                               |   21 
 north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/ComputeCard.vue           |  107 
 north-glass-erp/northglass-erp/src/views/pp/glassOptimize/OptimizePrint.vue              |   14 
 north-glass-erp/northglass-erp/src/hook/mouseMove.ts                                     |    7 
 north-glass-erp/northglass-erp/src/components/sd/order/OrderDetail.vue                   |   14 
 north-glass-erp/src/main/resources/mapper/sd/OrderGlassDetailMapper.xml                  |    7 
 north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java              |    2 
 north-glass-erp/src/main/java/com/example/erp/mapper/pp/GlassOptimizeMapper.java         |    9 
 north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/Compute.vue               |  278 +
 north-glass-erp/northglass-erp/src/views/pp/report/OrderReportingWorks.vue               |   11 
 north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml                                |    1 
 north-glass-erp/northglass-erp/src/components/pp/MockData.js                             | 1491 +++++++++
 north-glass-erp/northglass-erp/src/components/sd/order/OrderCraftDetail.vue              |    8 
 north-glass-erp/northglass-erp/package-lock.json                                         | 6912 ++++++++++++++++++++++++++++++++++++++++++
 north-glass-erp/src/test/java/com/example/erp/service/pp/GlassOptimizeServiceTest.java   |   20 
 north-glass-erp/src/main/java/com/example/erp/entity/sd/OrderDetail.java                 |    2 
 north-glass-erp/northglass-erp/src/views/pp/glassOptimize/RectRenderer.vue               |  180 +
 north-glass-erp/northglass-erp/src/views/pp/glassOptimize/Optimize.vue                   |    6 
 north-glass-erp/src/main/java/com/example/erp/common/RabbitMQUtil.java                   |   68 
 north-glass-erp/src/main/java/com/example/erp/mapper/mm/MaterialInventoryMapper.java     |    5 
 north-glass-erp/src/main/java/com/example/erp/service/pp/GlassOptimizeService.java       |   51 
 north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml                           |  135 
 north-glass-erp/northglass-erp/src/views/pp/glassOptimize/GlassComputed.vue              |  175 +
 north-glass-erp/northglass-erp/package.json                                              |    2 
 north-glass-erp/northglass-erp/src/views/pp/glassOptimize/OptimizeMove.vue               |  159 
 north-glass-erp/src/main/java/com/example/erp/controller/pp/GlassOptimizeController.java |   38 
 north-glass-erp/src/main/java/com/example/erp/service/mm/MaterialInventoryService.java   |   12 
 north-glass-erp/pom.xml                                                                  |    5 
 north-glass-erp/src/main/resources/mapper/mm/MaterialInventory.xml                       |   16 
 north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/ComputeDetail.vue         |   16 
 north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java            |    4 
 32 files changed, 9,629 insertions(+), 152 deletions(-)

diff --git a/.gitignore b/.gitignore
index bd40ce4..fdb835f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -11,7 +11,24 @@
 # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
 hs_err_pid*
 
-# Ignore .idea files
-**/.idea/
+# Ignore .idea files**/.idea/
 ../idea/*
 **/target/
+/north-glass-erp/erp.iml
+
+/north-glass-erp/src/test/test.iml
+
+/north-glass-erp/src/main/resources/mapper/sd/OrderGlassDetailMapper.xml
+/north-glass-erp/.idea/.gitignore
+/north-glass-erp/.idea/compiler.xml
+/north-glass-erp/.idea/dataSources.xml
+/north-glass-erp/.idea/encodings.xml
+/north-glass-erp/.idea/google-java-format.xml
+/north-glass-erp/.idea/inspectionProfiles/Project_Default.xml
+/north-glass-erp/.idea/jarRepositories.xml
+/north-glass-erp/.idea/jsLibraryMappings.xml
+/north-glass-erp/.idea/misc.xml
+/north-glass-erp/.idea/north-glass-erp.iml
+/north-glass-erp/.idea/sqldialects.xml
+/north-glass-erp/.idea/uiDesigner.xml
+/north-glass-erp/.idea/vcs.xml
diff --git a/north-glass-erp/northglass-erp/package-lock.json b/north-glass-erp/northglass-erp/package-lock.json
index 9d7ae22..8c8f312 100644
--- a/north-glass-erp/northglass-erp/package-lock.json
+++ b/north-glass-erp/northglass-erp/package-lock.json
@@ -15,6 +15,7 @@
         "element-plus": "^2.9.3",
         "file-saver": "^2.0.5",
         "moment": "^2.30.1",
+        "northglass-erp": "file:",
         "pinia": "^2.1.6",
         "pinia-plugin-persistedstate": "^3.2.0",
         "qrcode": "^1.5.3",
@@ -25,6 +26,7 @@
         "vue-i18n": "^9.10.1",
         "vue-plugin-hiprint": "^0.0.56",
         "vue-router": "^4.2.4",
+        "vue3-grid-layout": "^1.0.0",
         "vue3-print-nb": "^0.1.4",
         "vxe-pc-ui": "^4.0.78",
         "vxe-table": "^4.7.57",
@@ -1880,6 +1882,10 @@
       "version": "1.2.0",
       "resolved": "https://registry.npmjs.org/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz",
       "integrity": "sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw=="
+    },
+    "node_modules/northglass-erp": {
+      "resolved": "",
+      "link": true
     },
     "node_modules/nzh": {
       "version": "1.0.12",
@@ -7406,6 +7412,20 @@
         "vue": "^3.2.0"
       }
     },
+    "node_modules/vue3-grid-layout": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmmirror.com/vue3-grid-layout/-/vue3-grid-layout-1.0.0.tgz",
+      "integrity": "sha512-rFiHnlBFxkY9ojh0YB+cSKCE9A9/mhdbgaPARWD7r2yHPWxV9tHDPbMAN+uycsIDF7ikBpNgeQ9PfeiGaXHUWw==",
+      "dependencies": {
+        "@interactjs/actions": "^1.10.2",
+        "@interactjs/auto-start": "^1.10.2",
+        "@interactjs/dev-tools": "^1.10.2",
+        "@interactjs/interactjs": "^1.10.2",
+        "@interactjs/modifiers": "^1.10.2",
+        "element-resize-detector": "^1.2.1",
+        "lodash": "^4.17.21"
+      }
+    },
     "node_modules/vue3-print-nb": {
       "version": "0.1.4",
       "resolved": "https://registry.npmmirror.com/vue3-print-nb/-/vue3-print-nb-0.1.4.tgz",
@@ -8811,6 +8831,6884 @@
       "version": "1.2.0",
       "resolved": "https://registry.npmjs.org/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz",
       "integrity": "sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw=="
+    },
+    "northglass-erp": {
+      "version": "file:",
+      "requires": {
+        "@element-plus/icons-vue": "^2.1.0",
+        "@types/node": "^20.11.30",
+        "@types/sortablejs": "^1.15.7",
+        "@vitejs/plugin-vue": "^4.3.4",
+        "@vue-macros/reactivity-transform": "^0.3.23",
+        "axios": "^1.5.1",
+        "decimal.js": "^10.4.3",
+        "dom-zindex": "^1.0.4",
+        "element-plus": "^2.9.3",
+        "file-saver": "^2.0.5",
+        "moment": "^2.30.1",
+        "northglass-erp": "file:",
+        "pinia": "^2.1.6",
+        "pinia-plugin-persistedstate": "^3.2.0",
+        "qrcode": "^1.5.3",
+        "sortablejs": "^1.15.1",
+        "vite": "^4.4.9",
+        "vue": "^3.3.4",
+        "vue-draggable-plus": "^0.5.0",
+        "vue-grid-layout": "^3.0.0-beta1",
+        "vue-i18n": "^9.10.1",
+        "vue-plugin-hiprint": "^0.0.56",
+        "vue-router": "^4.2.4",
+        "vue3-grid-layout": "^1.0.0",
+        "vue3-print-nb": "^0.1.4",
+        "vxe-pc-ui": "^4.0.78",
+        "vxe-table": "^4.7.57",
+        "xe-utils": "^3.5.14",
+        "xlsx": "^0.18.5"
+      },
+      "dependencies": {
+        "@babel/helper-string-parser": {
+          "version": "7.22.5",
+          "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz",
+          "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw=="
+        },
+        "@babel/helper-validator-identifier": {
+          "version": "7.22.20",
+          "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
+          "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A=="
+        },
+        "@babel/parser": {
+          "version": "7.23.0",
+          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz",
+          "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw=="
+        },
+        "@babel/runtime": {
+          "version": "7.25.0",
+          "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.25.0.tgz",
+          "integrity": "sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==",
+          "requires": {
+            "regenerator-runtime": "^0.14.0"
+          },
+          "dependencies": {
+            "regenerator-runtime": {
+              "version": "0.14.1",
+              "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
+              "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw=="
+            }
+          }
+        },
+        "@babel/types": {
+          "version": "7.23.0",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz",
+          "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==",
+          "requires": {
+            "@babel/helper-string-parser": "^7.22.5",
+            "@babel/helper-validator-identifier": "^7.22.20",
+            "to-fast-properties": "^2.0.0"
+          }
+        },
+        "@claviska/jquery-minicolors": {
+          "version": "2.3.6",
+          "resolved": "https://registry.npmmirror.com/@claviska/jquery-minicolors/-/jquery-minicolors-2.3.6.tgz",
+          "integrity": "sha512-8Ro6D4GCrmOl41+6w4NFhEOpx8vjxwVRI69bulXsFDt49uVRKhLU5TnzEV7AmOJrylkVq+ugnYNMiGHBieeKUQ==",
+          "requires": {}
+        },
+        "@ctrl/tinycolor": {
+          "version": "3.6.1",
+          "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz",
+          "integrity": "sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA=="
+        },
+        "@element-plus/icons-vue": {
+          "version": "2.3.1",
+          "resolved": "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.3.1.tgz",
+          "integrity": "sha512-XxVUZv48RZAd87ucGS48jPf6pKu0yV5UCg9f4FFwtrYxXOwWuVJo6wOvSLKEoMQKjv8GsX/mhP6UsC1lRwbUWg==",
+          "requires": {}
+        },
+        "@esbuild/android-arm": {
+          "version": "0.18.20",
+          "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz",
+          "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==",
+          "dev": true,
+          "optional": true
+        },
+        "@esbuild/android-arm64": {
+          "version": "0.18.20",
+          "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz",
+          "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==",
+          "dev": true,
+          "optional": true
+        },
+        "@esbuild/android-x64": {
+          "version": "0.18.20",
+          "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz",
+          "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==",
+          "dev": true,
+          "optional": true
+        },
+        "@esbuild/darwin-arm64": {
+          "version": "0.18.20",
+          "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz",
+          "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==",
+          "dev": true,
+          "optional": true
+        },
+        "@esbuild/darwin-x64": {
+          "version": "0.18.20",
+          "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz",
+          "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==",
+          "dev": true,
+          "optional": true
+        },
+        "@esbuild/freebsd-arm64": {
+          "version": "0.18.20",
+          "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz",
+          "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==",
+          "dev": true,
+          "optional": true
+        },
+        "@esbuild/freebsd-x64": {
+          "version": "0.18.20",
+          "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz",
+          "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==",
+          "dev": true,
+          "optional": true
+        },
+        "@esbuild/linux-arm": {
+          "version": "0.18.20",
+          "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz",
+          "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==",
+          "dev": true,
+          "optional": true
+        },
+        "@esbuild/linux-arm64": {
+          "version": "0.18.20",
+          "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz",
+          "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==",
+          "dev": true,
+          "optional": true
+        },
+        "@esbuild/linux-ia32": {
+          "version": "0.18.20",
+          "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz",
+          "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==",
+          "dev": true,
+          "optional": true
+        },
+        "@esbuild/linux-loong64": {
+          "version": "0.18.20",
+          "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz",
+          "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==",
+          "dev": true,
+          "optional": true
+        },
+        "@esbuild/linux-mips64el": {
+          "version": "0.18.20",
+          "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz",
+          "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==",
+          "dev": true,
+          "optional": true
+        },
+        "@esbuild/linux-ppc64": {
+          "version": "0.18.20",
+          "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz",
+          "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==",
+          "dev": true,
+          "optional": true
+        },
+        "@esbuild/linux-riscv64": {
+          "version": "0.18.20",
+          "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz",
+          "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==",
+          "dev": true,
+          "optional": true
+        },
+        "@esbuild/linux-s390x": {
+          "version": "0.18.20",
+          "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz",
+          "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==",
+          "dev": true,
+          "optional": true
+        },
+        "@esbuild/linux-x64": {
+          "version": "0.18.20",
+          "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz",
+          "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==",
+          "dev": true,
+          "optional": true
+        },
+        "@esbuild/netbsd-x64": {
+          "version": "0.18.20",
+          "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz",
+          "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==",
+          "dev": true,
+          "optional": true
+        },
+        "@esbuild/openbsd-x64": {
+          "version": "0.18.20",
+          "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz",
+          "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==",
+          "dev": true,
+          "optional": true
+        },
+        "@esbuild/sunos-x64": {
+          "version": "0.18.20",
+          "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz",
+          "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==",
+          "dev": true,
+          "optional": true
+        },
+        "@esbuild/win32-arm64": {
+          "version": "0.18.20",
+          "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz",
+          "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==",
+          "dev": true,
+          "optional": true
+        },
+        "@esbuild/win32-ia32": {
+          "version": "0.18.20",
+          "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz",
+          "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==",
+          "dev": true,
+          "optional": true
+        },
+        "@esbuild/win32-x64": {
+          "version": "0.18.20",
+          "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz",
+          "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==",
+          "dev": true,
+          "optional": true
+        },
+        "@floating-ui/core": {
+          "version": "1.5.0",
+          "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.5.0.tgz",
+          "integrity": "sha512-kK1h4m36DQ0UHGj5Ah4db7R0rHemTqqO0QLvUqi1/mUUp3LuAWbWxdxSIf/XsnH9VS6rRVPLJCncjRzUvyCLXg==",
+          "requires": {
+            "@floating-ui/utils": "^0.1.3"
+          }
+        },
+        "@floating-ui/dom": {
+          "version": "1.5.3",
+          "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.5.3.tgz",
+          "integrity": "sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA==",
+          "requires": {
+            "@floating-ui/core": "^1.4.2",
+            "@floating-ui/utils": "^0.1.3"
+          }
+        },
+        "@floating-ui/utils": {
+          "version": "0.1.6",
+          "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.1.6.tgz",
+          "integrity": "sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A=="
+        },
+        "@interactjs/actions": {
+          "version": "1.10.2",
+          "resolved": "https://registry.npmmirror.com/@interactjs/actions/-/actions-1.10.2.tgz",
+          "integrity": "sha512-BHJcW84WCMf/LsKmha/1Yog7aH3+QBXbLvowvZvwYvgjdUIb3xCa1a7FUYXuWAeKNMyKPVjFun+WPce75B+1tA==",
+          "requires": {
+            "@interactjs/interact": "1.10.2"
+          }
+        },
+        "@interactjs/arrange": {
+          "version": "1.10.2",
+          "resolved": "https://registry.npmmirror.com/@interactjs/arrange/-/arrange-1.10.2.tgz",
+          "integrity": "sha512-pPLA9o4RWMFN0VfalklOFSRLL4WqqXcD9no4XEuqV00goZPCxLBbMTztaWwnutlRy7evtOhUjUH+pZVsS+dZ4Q=="
+        },
+        "@interactjs/auto-scroll": {
+          "version": "1.10.2",
+          "resolved": "https://registry.npmmirror.com/@interactjs/auto-scroll/-/auto-scroll-1.10.2.tgz",
+          "integrity": "sha512-yYqzOawwvWd1NNnlqZdzrXoOMFafQ2/ws85erpJqdaNMQE221z2uP+QYhFRLQRgYUlTbHFfmjDpzhuJgq4uA8Q==",
+          "requires": {
+            "@interactjs/interact": "1.10.2"
+          }
+        },
+        "@interactjs/auto-start": {
+          "version": "1.10.2",
+          "resolved": "https://registry.npmmirror.com/@interactjs/auto-start/-/auto-start-1.10.2.tgz",
+          "integrity": "sha512-nZudj8VzJzz+uEyDHqXwtKpvUYr+Oj1+xBrJEu21CywroHQWM2J4fCIiCgeCo3d5/p/TrzFk5b+YfAWePKiLxA==",
+          "requires": {
+            "@interactjs/interact": "1.10.2"
+          }
+        },
+        "@interactjs/clone": {
+          "version": "1.10.2",
+          "resolved": "https://registry.npmmirror.com/@interactjs/clone/-/clone-1.10.2.tgz",
+          "integrity": "sha512-XzA8BRHSCwvysOegZ1kopg+IJF3erh4qzY6DRoZsIJovKAXawoa176E58IAzDbgYPJ2yoaSGT+XyzT2C0wa3pQ=="
+        },
+        "@interactjs/core": {
+          "version": "1.10.2",
+          "resolved": "https://registry.npmmirror.com/@interactjs/core/-/core-1.10.2.tgz",
+          "integrity": "sha512-SA5KRGo+gFJOhBj1Z2dLHhAf0/2nyHNd4SQ460aIQ3jj/QhqbJW6kGzmh7hBa2FzVGgxLhcQu7NZaP4rnDfUNw==",
+          "requires": {}
+        },
+        "@interactjs/dev-tools": {
+          "version": "1.10.2",
+          "resolved": "https://registry.npmmirror.com/@interactjs/dev-tools/-/dev-tools-1.10.2.tgz",
+          "integrity": "sha512-aAd9NgTAGA3yVdFCYcAAYrM4TYQFuVqEvsF+xj+g5SlGyrJ7+GTjPZ2rScOyAsABY4Tz64L2pXvWmXMG87dncA==",
+          "requires": {
+            "@interactjs/interact": "1.10.2",
+            "@interactjs/utils": "1.10.2"
+          }
+        },
+        "@interactjs/feedback": {
+          "version": "1.10.2",
+          "resolved": "https://registry.npmmirror.com/@interactjs/feedback/-/feedback-1.10.2.tgz",
+          "integrity": "sha512-XlcoICGrFeUwwRtDgOpstOOvlU42WZoEg7gJHK3LwF7j0IctPd1+3blXofFlBeVvodle8MvUMepm5CRXz741fA=="
+        },
+        "@interactjs/inertia": {
+          "version": "1.10.2",
+          "resolved": "https://registry.npmmirror.com/@interactjs/inertia/-/inertia-1.10.2.tgz",
+          "integrity": "sha512-ZmN1joN6J36Q6SOp3V0iZOisXZOBMSAUj0STo8wbwCKy7K8IrC9vjUBbO2JM52cT6o7hg5ebHsp5c8FrebSHlg==",
+          "requires": {
+            "@interactjs/interact": "1.10.2",
+            "@interactjs/offset": "1.10.2"
+          }
+        },
+        "@interactjs/interact": {
+          "version": "1.10.2",
+          "resolved": "https://registry.npmmirror.com/@interactjs/interact/-/interact-1.10.2.tgz",
+          "integrity": "sha512-Ms5uVCY9IobVYpQyBnBdkP6Bk6iDY7TkC7GupsdUPUxzAvYSQCTEAGr/1PwxSrSS6dN/8O8TuyUWPbCaylr/JA==",
+          "requires": {
+            "@interactjs/core": "1.10.2",
+            "@interactjs/types": "1.10.2",
+            "@interactjs/utils": "1.10.2"
+          }
+        },
+        "@interactjs/interactjs": {
+          "version": "1.10.2",
+          "resolved": "https://registry.npmmirror.com/@interactjs/interactjs/-/interactjs-1.10.2.tgz",
+          "integrity": "sha512-OwLl70af6lfZOOg/bvWKSNm1DS1nDI72QnzDYljSKfc2D8stqLIGDO1wPY2rhZudUG5q3t50EhmMUQF76yll/g==",
+          "requires": {
+            "@interactjs/actions": "1.10.2",
+            "@interactjs/arrange": "1.10.2",
+            "@interactjs/auto-scroll": "1.10.2",
+            "@interactjs/auto-start": "1.10.2",
+            "@interactjs/clone": "1.10.2",
+            "@interactjs/core": "1.10.2",
+            "@interactjs/dev-tools": "1.10.2",
+            "@interactjs/feedback": "1.10.2",
+            "@interactjs/inertia": "1.10.2",
+            "@interactjs/interact": "1.10.2",
+            "@interactjs/modifiers": "1.10.2",
+            "@interactjs/multi-target": "1.10.2",
+            "@interactjs/offset": "1.10.2",
+            "@interactjs/pointer-events": "1.10.2",
+            "@interactjs/react": "1.10.2",
+            "@interactjs/reflow": "1.10.2",
+            "@interactjs/utils": "1.10.2",
+            "@interactjs/vue": "1.10.2"
+          }
+        },
+        "@interactjs/modifiers": {
+          "version": "1.10.2",
+          "resolved": "https://registry.npmmirror.com/@interactjs/modifiers/-/modifiers-1.10.2.tgz",
+          "integrity": "sha512-3wYEucvZF2NTIslnVIKw5MWhkn9LM42cGCQaC19o3LZeWnbps7NnHJCyQp6zylJrCbwt7f+CSt4Oj2/s0f6XEA==",
+          "requires": {
+            "@interactjs/interact": "1.10.2",
+            "@interactjs/snappers": "1.10.2"
+          }
+        },
+        "@interactjs/multi-target": {
+          "version": "1.10.2",
+          "resolved": "https://registry.npmmirror.com/@interactjs/multi-target/-/multi-target-1.10.2.tgz",
+          "integrity": "sha512-O2GiIqgZBzjAVTOpL8doTnAcM9AtM3+H/Bb+An12wWKtNutVK7JbqUAO2nYueOk55/PP3yDLY9Qdr15RJns3lQ=="
+        },
+        "@interactjs/offset": {
+          "version": "1.10.2",
+          "resolved": "https://registry.npmmirror.com/@interactjs/offset/-/offset-1.10.2.tgz",
+          "integrity": "sha512-xLgQqinFUY7ZqSX9d9on7XRcxvQdHNEAktj2QFwxMsEwrA6zbKROpPVwt8WQ1yBAeJSFjgYGcmCMPW5K41dT0w==",
+          "requires": {
+            "@interactjs/interact": "1.10.2"
+          }
+        },
+        "@interactjs/pointer-events": {
+          "version": "1.10.2",
+          "resolved": "https://registry.npmmirror.com/@interactjs/pointer-events/-/pointer-events-1.10.2.tgz",
+          "integrity": "sha512-O8s3N399hkGIzWGlcJVy0LJyDn5YWDh6XKjyowh/QivtlZSWPY8eglmlN2uZX0lmiqUYghbKI4CpQYP/cE0ZDA==",
+          "requires": {
+            "@interactjs/interact": "1.10.2"
+          }
+        },
+        "@interactjs/react": {
+          "version": "1.10.2",
+          "resolved": "https://registry.npmmirror.com/@interactjs/react/-/react-1.10.2.tgz",
+          "integrity": "sha512-JXzPdANft+W2vq3SCSzprCwom5UuC8TaiAAhVdt8R+/P6xHbOeAX93XLS5YmDwT8e0Zh9J9jYvz55tkTdwjFZQ=="
+        },
+        "@interactjs/reflow": {
+          "version": "1.10.2",
+          "resolved": "https://registry.npmmirror.com/@interactjs/reflow/-/reflow-1.10.2.tgz",
+          "integrity": "sha512-pc6o6RRhSCYQC4auZexRb7z5FQkdSVev5HzlRfUAjfw4C076qgbcs63ESRKy4YXdSBtUTvARQZxpuWUNGquzJw==",
+          "requires": {
+            "@interactjs/interact": "1.10.2"
+          }
+        },
+        "@interactjs/snappers": {
+          "version": "1.10.2",
+          "resolved": "https://registry.npmmirror.com/@interactjs/snappers/-/snappers-1.10.2.tgz",
+          "integrity": "sha512-wQ41Vn5GRn6VavjIEUtTkd9d5QgdKgC4+CPW0fjKkiQclLBmaic7VibNETO8twN0Jx5e73EoPj9K2nAVHIA0hA==",
+          "requires": {}
+        },
+        "@interactjs/types": {
+          "version": "1.10.2",
+          "resolved": "https://registry.npmmirror.com/@interactjs/types/-/types-1.10.2.tgz",
+          "integrity": "sha512-l0T1bU8OHRv716ztQOYwP+K7b/lA76C0T3r/cdabbUv6CKeAFdFRRFlmNxYOM36SxMGWAiq5VWrN3SeXlB7Fow=="
+        },
+        "@interactjs/utils": {
+          "version": "1.10.2",
+          "resolved": "https://registry.npmmirror.com/@interactjs/utils/-/utils-1.10.2.tgz",
+          "integrity": "sha512-sOr+pu7XGAN4qv+ikajMo3RJygbkbMLegmx0Tv5Qf6e80sF42FjkmHeMGuV7fL98nwat0VmDiWerOFBnKctXow=="
+        },
+        "@interactjs/vue": {
+          "version": "1.10.2",
+          "resolved": "https://registry.npmmirror.com/@interactjs/vue/-/vue-1.10.2.tgz",
+          "integrity": "sha512-msLdc42DFsCPQZt6YBGZrw8Ro23kQcNnj+iLz2OUQcOrp/lma7WjorUuAwwfyFna2DevLtiYlMLbT0dpO/cVhg=="
+        },
+        "@intlify/core-base": {
+          "version": "9.10.1",
+          "resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-9.10.1.tgz",
+          "integrity": "sha512-0+Wtjj04GIyglh5KKiNjRwgjpHrhqqGZhaKY/QVjjogWKZq5WHROrTi84pNVsRN18QynyPmjtsVUWqFKPQ45xQ==",
+          "requires": {
+            "@intlify/message-compiler": "9.10.1",
+            "@intlify/shared": "9.10.1"
+          }
+        },
+        "@intlify/message-compiler": {
+          "version": "9.10.1",
+          "resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-9.10.1.tgz",
+          "integrity": "sha512-b68UTmRhgZfswJZI7VAgW6BXZK5JOpoi5swMLGr4j6ss2XbFY13kiw+Hu+xYAfulMPSapcHzdWHnq21VGnMCnA==",
+          "requires": {
+            "@intlify/shared": "9.10.1",
+            "source-map-js": "^1.0.2"
+          }
+        },
+        "@intlify/shared": {
+          "version": "9.10.1",
+          "resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-9.10.1.tgz",
+          "integrity": "sha512-liyH3UMoglHBUn70iCYcy9CQlInx/lp50W2aeSxqqrvmG+LDj/Jj7tBJhBoQL4fECkldGhbmW0g2ommHfL6Wmw=="
+        },
+        "@jridgewell/sourcemap-codec": {
+          "version": "1.4.15",
+          "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
+          "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
+        },
+        "@popperjs/core": {
+          "version": "npm:@sxzz/popperjs-es@2.11.7",
+          "resolved": "https://registry.npmjs.org/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz",
+          "integrity": "sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ=="
+        },
+        "@rollup/pluginutils": {
+          "version": "5.0.5",
+          "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.5.tgz",
+          "integrity": "sha512-6aEYR910NyP73oHiJglti74iRyOwgFU4x3meH/H8OJx6Ry0j6cOVZ5X/wTvub7G7Ao6qaHBEaNsV3GLJkSsF+Q==",
+          "requires": {
+            "@types/estree": "^1.0.0",
+            "estree-walker": "^2.0.2",
+            "picomatch": "^2.3.1"
+          }
+        },
+        "@socket.io/component-emitter": {
+          "version": "3.1.2",
+          "resolved": "https://registry.npmmirror.com/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz",
+          "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA=="
+        },
+        "@types/estree": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.2.tgz",
+          "integrity": "sha512-VeiPZ9MMwXjO32/Xu7+OwflfmeoRwkE/qzndw42gGtgJwZopBnzy2gD//NN1+go1mADzkDcqf/KnFRSjTJ8xJA=="
+        },
+        "@types/lodash": {
+          "version": "4.14.199",
+          "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.199.tgz",
+          "integrity": "sha512-Vrjz5N5Ia4SEzWWgIVwnHNEnb1UE1XMkvY5DGXrAeOGE9imk0hgTHh5GyDjLDJi9OTCn9oo9dXH1uToK1VRfrg=="
+        },
+        "@types/lodash-es": {
+          "version": "4.17.9",
+          "resolved": "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.9.tgz",
+          "integrity": "sha512-ZTcmhiI3NNU7dEvWLZJkzG6ao49zOIjEgIE0RgV7wbPxU0f2xT3VSAHw2gmst8swH6V0YkLRGp4qPlX/6I90MQ==",
+          "requires": {
+            "@types/lodash": "*"
+          }
+        },
+        "@types/node": {
+          "version": "20.11.30",
+          "resolved": "https://registry.npmmirror.com/@types/node/-/node-20.11.30.tgz",
+          "integrity": "sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw==",
+          "dev": true,
+          "requires": {
+            "undici-types": "~5.26.4"
+          }
+        },
+        "@types/raf": {
+          "version": "3.4.3",
+          "resolved": "https://registry.npmmirror.com/@types/raf/-/raf-3.4.3.tgz",
+          "integrity": "sha512-c4YAvMedbPZ5tEyxzQdMoOhhJ4RD3rngZIdwC2/qDN3d7JpEhB6fiBRKVY1lg5B7Wk+uPBjn5f39j1/2MY1oOw=="
+        },
+        "@types/sortablejs": {
+          "version": "1.15.8",
+          "resolved": "https://registry.npmmirror.com/@types/sortablejs/-/sortablejs-1.15.8.tgz",
+          "integrity": "sha512-b79830lW+RZfwaztgs1aVPgbasJ8e7AXtZYHTELNXZPsERt4ymJdjV4OccDbHQAvHrCcFpbF78jkm0R6h/pZVg=="
+        },
+        "@types/web-bluetooth": {
+          "version": "0.0.16",
+          "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz",
+          "integrity": "sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ=="
+        },
+        "@vitejs/plugin-vue": {
+          "version": "4.4.0",
+          "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.4.0.tgz",
+          "integrity": "sha512-xdguqb+VUwiRpSg+nsc2HtbAUSGak25DXYvpQQi4RVU1Xq1uworyoH/md9Rfd8zMmPR/pSghr309QNcftUVseg==",
+          "dev": true,
+          "requires": {}
+        },
+        "@vue-macros/common": {
+          "version": "1.8.0",
+          "resolved": "https://registry.npmjs.org/@vue-macros/common/-/common-1.8.0.tgz",
+          "integrity": "sha512-auDJJzE0z3uRe3867e0DsqcseKImktNf5ojCZgUKqiVxb2yTlwlgOVAYCgoep9oITqxkXQymSvFeKhedi8PhaA==",
+          "requires": {
+            "@babel/types": "^7.22.17",
+            "@rollup/pluginutils": "^5.0.4",
+            "@vue/compiler-sfc": "^3.3.4",
+            "ast-kit": "^0.11.2",
+            "local-pkg": "^0.4.3",
+            "magic-string-ast": "^0.3.0"
+          }
+        },
+        "@vue-macros/reactivity-transform": {
+          "version": "0.3.23",
+          "resolved": "https://registry.npmjs.org/@vue-macros/reactivity-transform/-/reactivity-transform-0.3.23.tgz",
+          "integrity": "sha512-SubIg1GsNpQdIDJusrcA2FWBgwSY+4jmL0j6SJ6PU85r3rlS+uDhn6AUkqxeZRAdmJnrbGHXDyWUdygOZmWrSg==",
+          "requires": {
+            "@babel/parser": "^7.22.16",
+            "@vue-macros/common": "1.8.0",
+            "@vue/compiler-core": "^3.3.4",
+            "@vue/shared": "^3.3.4",
+            "magic-string": "^0.30.3",
+            "unplugin": "^1.4.0"
+          }
+        },
+        "@vue/compiler-core": {
+          "version": "3.3.4",
+          "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.4.tgz",
+          "integrity": "sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==",
+          "requires": {
+            "@babel/parser": "^7.21.3",
+            "@vue/shared": "3.3.4",
+            "estree-walker": "^2.0.2",
+            "source-map-js": "^1.0.2"
+          }
+        },
+        "@vue/compiler-dom": {
+          "version": "3.3.4",
+          "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz",
+          "integrity": "sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==",
+          "requires": {
+            "@vue/compiler-core": "3.3.4",
+            "@vue/shared": "3.3.4"
+          }
+        },
+        "@vue/compiler-sfc": {
+          "version": "3.3.4",
+          "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz",
+          "integrity": "sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==",
+          "requires": {
+            "@babel/parser": "^7.20.15",
+            "@vue/compiler-core": "3.3.4",
+            "@vue/compiler-dom": "3.3.4",
+            "@vue/compiler-ssr": "3.3.4",
+            "@vue/reactivity-transform": "3.3.4",
+            "@vue/shared": "3.3.4",
+            "estree-walker": "^2.0.2",
+            "magic-string": "^0.30.0",
+            "postcss": "^8.1.10",
+            "source-map-js": "^1.0.2"
+          }
+        },
+        "@vue/compiler-ssr": {
+          "version": "3.3.4",
+          "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz",
+          "integrity": "sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==",
+          "requires": {
+            "@vue/compiler-dom": "3.3.4",
+            "@vue/shared": "3.3.4"
+          }
+        },
+        "@vue/devtools-api": {
+          "version": "6.5.1",
+          "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.1.tgz",
+          "integrity": "sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA=="
+        },
+        "@vue/reactivity": {
+          "version": "3.3.4",
+          "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.4.tgz",
+          "integrity": "sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==",
+          "requires": {
+            "@vue/shared": "3.3.4"
+          }
+        },
+        "@vue/reactivity-transform": {
+          "version": "3.3.4",
+          "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz",
+          "integrity": "sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==",
+          "requires": {
+            "@babel/parser": "^7.20.15",
+            "@vue/compiler-core": "3.3.4",
+            "@vue/shared": "3.3.4",
+            "estree-walker": "^2.0.2",
+            "magic-string": "^0.30.0"
+          }
+        },
+        "@vue/runtime-core": {
+          "version": "3.3.4",
+          "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.4.tgz",
+          "integrity": "sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==",
+          "requires": {
+            "@vue/reactivity": "3.3.4",
+            "@vue/shared": "3.3.4"
+          }
+        },
+        "@vue/runtime-dom": {
+          "version": "3.3.4",
+          "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz",
+          "integrity": "sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==",
+          "requires": {
+            "@vue/runtime-core": "3.3.4",
+            "@vue/shared": "3.3.4",
+            "csstype": "^3.1.1"
+          }
+        },
+        "@vue/server-renderer": {
+          "version": "3.3.4",
+          "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.4.tgz",
+          "integrity": "sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==",
+          "requires": {
+            "@vue/compiler-ssr": "3.3.4",
+            "@vue/shared": "3.3.4"
+          }
+        },
+        "@vue/shared": {
+          "version": "3.3.4",
+          "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.4.tgz",
+          "integrity": "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ=="
+        },
+        "@vueuse/core": {
+          "version": "9.13.0",
+          "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-9.13.0.tgz",
+          "integrity": "sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==",
+          "requires": {
+            "@types/web-bluetooth": "^0.0.16",
+            "@vueuse/metadata": "9.13.0",
+            "@vueuse/shared": "9.13.0",
+            "vue-demi": "*"
+          },
+          "dependencies": {
+            "vue-demi": {
+              "version": "0.14.6",
+              "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.6.tgz",
+              "integrity": "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==",
+              "requires": {}
+            }
+          }
+        },
+        "@vueuse/metadata": {
+          "version": "9.13.0",
+          "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-9.13.0.tgz",
+          "integrity": "sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ=="
+        },
+        "@vueuse/shared": {
+          "version": "9.13.0",
+          "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-9.13.0.tgz",
+          "integrity": "sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==",
+          "requires": {
+            "vue-demi": "*"
+          },
+          "dependencies": {
+            "vue-demi": {
+              "version": "0.14.6",
+              "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.6.tgz",
+              "integrity": "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==",
+              "requires": {}
+            }
+          }
+        },
+        "@vxe-ui/core": {
+          "version": "4.0.29",
+          "resolved": "https://registry.npmmirror.com/@vxe-ui/core/-/core-4.0.29.tgz",
+          "integrity": "sha512-F6ZJ7+x48qBDx7ME/GdmRN5OECha9wnNy0IIA8AAWHrjhTFY5yBBE+t2ULO6wgwkFB2E74CtYF/2/nprpGrdlA==",
+          "requires": {
+            "dom-zindex": "^1.0.6",
+            "xe-utils": "^3.7.0"
+          }
+        },
+        "acorn": {
+          "version": "8.10.0",
+          "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz",
+          "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw=="
+        },
+        "adler-32": {
+          "version": "1.3.1",
+          "resolved": "https://registry.npmmirror.com/adler-32/-/adler-32-1.3.1.tgz",
+          "integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A=="
+        },
+        "ansi-regex": {
+          "version": "5.0.1",
+          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+          "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
+        },
+        "ansi-styles": {
+          "version": "4.3.0",
+          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+          "requires": {
+            "color-convert": "^2.0.1"
+          }
+        },
+        "anymatch": {
+          "version": "3.1.3",
+          "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+          "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+          "requires": {
+            "normalize-path": "^3.0.0",
+            "picomatch": "^2.0.4"
+          }
+        },
+        "ast-kit": {
+          "version": "0.11.2",
+          "resolved": "https://registry.npmjs.org/ast-kit/-/ast-kit-0.11.2.tgz",
+          "integrity": "sha512-Q0DjXK4ApbVoIf9GLyCo252tUH44iTnD/hiJ2TQaJeydYWSpKk0sI34+WMel8S9Wt5pbLgG02oJ+gkgX5DV3sQ==",
+          "requires": {
+            "@babel/parser": "^7.22.14",
+            "@rollup/pluginutils": "^5.0.4",
+            "pathe": "^1.1.1"
+          }
+        },
+        "async-validator": {
+          "version": "4.2.5",
+          "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-4.2.5.tgz",
+          "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg=="
+        },
+        "asynckit": {
+          "version": "0.4.0",
+          "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+          "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
+        },
+        "atob": {
+          "version": "2.1.2",
+          "resolved": "https://registry.npmmirror.com/atob/-/atob-2.1.2.tgz",
+          "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg=="
+        },
+        "axios": {
+          "version": "1.5.1",
+          "resolved": "https://registry.npmjs.org/axios/-/axios-1.5.1.tgz",
+          "integrity": "sha512-Q28iYCWzNHjAm+yEAot5QaAMxhMghWLFVf7rRdwhUI+c2jix2DUXjAHXVi+s1ibs3mjPO/cCgbA++3BjD0vP/A==",
+          "requires": {
+            "follow-redirects": "^1.15.0",
+            "form-data": "^4.0.0",
+            "proxy-from-env": "^1.1.0"
+          }
+        },
+        "base64-arraybuffer": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmmirror.com/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz",
+          "integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ=="
+        },
+        "batch-processor": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmmirror.com/batch-processor/-/batch-processor-1.0.0.tgz",
+          "integrity": "sha512-xoLQD8gmmR32MeuBHgH0Tzd5PuSZx71ZsbhVxOCRbgktZEPe4SQy7s9Z50uPp0F/f7iw2XmkHN2xkgbMfckMDA=="
+        },
+        "binary-extensions": {
+          "version": "2.2.0",
+          "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
+          "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA=="
+        },
+        "braces": {
+          "version": "3.0.2",
+          "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+          "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+          "requires": {
+            "fill-range": "^7.0.1"
+          }
+        },
+        "btoa": {
+          "version": "1.2.1",
+          "resolved": "https://registry.npmmirror.com/btoa/-/btoa-1.2.1.tgz",
+          "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g=="
+        },
+        "bwip-js": {
+          "version": "4.5.0",
+          "resolved": "https://registry.npmmirror.com/bwip-js/-/bwip-js-4.5.0.tgz",
+          "integrity": "sha512-B+CnmGWZ5rf0CnlMjOW2u/xyl+B7nylK1GAHI2NrF1DZfsdwBbMqBK50xlJPtMtOltvALPIbyznhWFGnCQbH+A=="
+        },
+        "camelcase": {
+          "version": "5.3.1",
+          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+          "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
+        },
+        "canvg": {
+          "version": "3.0.10",
+          "resolved": "https://registry.npmmirror.com/canvg/-/canvg-3.0.10.tgz",
+          "integrity": "sha512-qwR2FRNO9NlzTeKIPIKpnTY6fqwuYSequ8Ru8c0YkYU7U0oW+hLUvWadLvAu1Rl72OMNiFhoLu4f8eUjQ7l/+Q==",
+          "requires": {
+            "@babel/runtime": "^7.12.5",
+            "@types/raf": "^3.4.0",
+            "core-js": "^3.8.3",
+            "raf": "^3.4.1",
+            "regenerator-runtime": "^0.13.7",
+            "rgbcolor": "^1.0.1",
+            "stackblur-canvas": "^2.0.0",
+            "svg-pathdata": "^6.0.3"
+          }
+        },
+        "cfb": {
+          "version": "1.2.2",
+          "resolved": "https://registry.npmmirror.com/cfb/-/cfb-1.2.2.tgz",
+          "integrity": "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==",
+          "requires": {
+            "adler-32": "~1.3.0",
+            "crc-32": "~1.2.0"
+          }
+        },
+        "chokidar": {
+          "version": "3.5.3",
+          "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
+          "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
+          "requires": {
+            "anymatch": "~3.1.2",
+            "braces": "~3.0.2",
+            "fsevents": "~2.3.2",
+            "glob-parent": "~5.1.2",
+            "is-binary-path": "~2.1.0",
+            "is-glob": "~4.0.1",
+            "normalize-path": "~3.0.0",
+            "readdirp": "~3.6.0"
+          }
+        },
+        "cliui": {
+          "version": "6.0.0",
+          "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
+          "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
+          "requires": {
+            "string-width": "^4.2.0",
+            "strip-ansi": "^6.0.0",
+            "wrap-ansi": "^6.2.0"
+          }
+        },
+        "codepage": {
+          "version": "1.15.0",
+          "resolved": "https://registry.npmmirror.com/codepage/-/codepage-1.15.0.tgz",
+          "integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA=="
+        },
+        "color-convert": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+          "requires": {
+            "color-name": "~1.1.4"
+          }
+        },
+        "color-name": {
+          "version": "1.1.4",
+          "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+        },
+        "combined-stream": {
+          "version": "1.0.8",
+          "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+          "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+          "requires": {
+            "delayed-stream": "~1.0.0"
+          }
+        },
+        "core-js": {
+          "version": "3.37.1",
+          "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.37.1.tgz",
+          "integrity": "sha512-Xn6qmxrQZyB0FFY8E3bgRXei3lWDJHhvI+u0q9TKIYM49G8pAr0FgnnrFRAmsbptZL1yxRADVXn+x5AGsbBfyw=="
+        },
+        "crc-32": {
+          "version": "1.2.2",
+          "resolved": "https://registry.npmmirror.com/crc-32/-/crc-32-1.2.2.tgz",
+          "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ=="
+        },
+        "css-line-break": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmmirror.com/css-line-break/-/css-line-break-2.1.0.tgz",
+          "integrity": "sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==",
+          "requires": {
+            "utrie": "^1.0.2"
+          }
+        },
+        "csstype": {
+          "version": "3.1.2",
+          "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz",
+          "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ=="
+        },
+        "dayjs": {
+          "version": "1.11.13",
+          "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.13.tgz",
+          "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg=="
+        },
+        "debug": {
+          "version": "4.3.6",
+          "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.6.tgz",
+          "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==",
+          "requires": {
+            "ms": "2.1.2"
+          }
+        },
+        "decamelize": {
+          "version": "1.2.0",
+          "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+          "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA=="
+        },
+        "decimal.js": {
+          "version": "10.4.3",
+          "resolved": "https://registry.npmmirror.com/decimal.js/-/decimal.js-10.4.3.tgz",
+          "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA=="
+        },
+        "delayed-stream": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+          "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="
+        },
+        "dijkstrajs": {
+          "version": "1.0.3",
+          "resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.3.tgz",
+          "integrity": "sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA=="
+        },
+        "dom-zindex": {
+          "version": "1.0.6",
+          "resolved": "https://registry.npmmirror.com/dom-zindex/-/dom-zindex-1.0.6.tgz",
+          "integrity": "sha512-FKWIhiU96bi3xpP9ewRMgANsoVmMUBnMnmpCT6dPMZOunVYJQmJhSRruoI0XSPoHeIif3kyEuiHbFrOJwEJaEA=="
+        },
+        "dompurify": {
+          "version": "2.5.6",
+          "resolved": "https://registry.npmmirror.com/dompurify/-/dompurify-2.5.6.tgz",
+          "integrity": "sha512-zUTaUBO8pY4+iJMPE1B9XlO2tXVYIcEA4SNGtvDELzTSCQO7RzH+j7S180BmhmJId78lqGU2z19vgVx2Sxs/PQ==",
+          "optional": true
+        },
+        "element-plus": {
+          "version": "2.9.3",
+          "resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.9.3.tgz",
+          "integrity": "sha512-6tSLp5XytDS4TMZ0P3aGZnr7MXTagfNycepNfIDitd9IgwM9y01+Ssu6mglNi8RiXYhek6LBWNOd/cvpIO12+w==",
+          "requires": {
+            "@ctrl/tinycolor": "^3.4.1",
+            "@element-plus/icons-vue": "^2.3.1",
+            "@floating-ui/dom": "^1.0.1",
+            "@popperjs/core": "npm:@sxzz/popperjs-es@^2.11.7",
+            "@types/lodash": "^4.14.182",
+            "@types/lodash-es": "^4.17.6",
+            "@vueuse/core": "^9.1.0",
+            "async-validator": "^4.2.5",
+            "dayjs": "^1.11.13",
+            "escape-html": "^1.0.3",
+            "lodash": "^4.17.21",
+            "lodash-es": "^4.17.21",
+            "lodash-unified": "^1.0.2",
+            "memoize-one": "^6.0.0",
+            "normalize-wheel-es": "^1.2.0"
+          }
+        },
+        "element-resize-detector": {
+          "version": "1.2.4",
+          "resolved": "https://registry.npmmirror.com/element-resize-detector/-/element-resize-detector-1.2.4.tgz",
+          "integrity": "sha512-Fl5Ftk6WwXE0wqCgNoseKWndjzZlDCwuPTcoVZfCP9R3EHQF8qUtr3YUPNETegRBOKqQKPW3n4kiIWngGi8tKg==",
+          "requires": {
+            "batch-processor": "1.0.0"
+          }
+        },
+        "emoji-regex": {
+          "version": "8.0.0",
+          "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+          "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
+        },
+        "encode-utf8": {
+          "version": "1.0.3",
+          "resolved": "https://registry.npmjs.org/encode-utf8/-/encode-utf8-1.0.3.tgz",
+          "integrity": "sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw=="
+        },
+        "engine.io-client": {
+          "version": "6.5.4",
+          "resolved": "https://registry.npmmirror.com/engine.io-client/-/engine.io-client-6.5.4.tgz",
+          "integrity": "sha512-GeZeeRjpD2qf49cZQ0Wvh/8NJNfeXkXXcoGh+F77oEAgo9gUHwT1fCRxSNU+YEEaysOJTnsFHmM5oAcPy4ntvQ==",
+          "requires": {
+            "@socket.io/component-emitter": "~3.1.0",
+            "debug": "~4.3.1",
+            "engine.io-parser": "~5.2.1",
+            "ws": "~8.17.1",
+            "xmlhttprequest-ssl": "~2.0.0"
+          }
+        },
+        "engine.io-parser": {
+          "version": "5.2.3",
+          "resolved": "https://registry.npmmirror.com/engine.io-parser/-/engine.io-parser-5.2.3.tgz",
+          "integrity": "sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q=="
+        },
+        "esbuild": {
+          "version": "0.18.20",
+          "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz",
+          "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==",
+          "dev": true,
+          "requires": {
+            "@esbuild/android-arm": "0.18.20",
+            "@esbuild/android-arm64": "0.18.20",
+            "@esbuild/android-x64": "0.18.20",
+            "@esbuild/darwin-arm64": "0.18.20",
+            "@esbuild/darwin-x64": "0.18.20",
+            "@esbuild/freebsd-arm64": "0.18.20",
+            "@esbuild/freebsd-x64": "0.18.20",
+            "@esbuild/linux-arm": "0.18.20",
+            "@esbuild/linux-arm64": "0.18.20",
+            "@esbuild/linux-ia32": "0.18.20",
+            "@esbuild/linux-loong64": "0.18.20",
+            "@esbuild/linux-mips64el": "0.18.20",
+            "@esbuild/linux-ppc64": "0.18.20",
+            "@esbuild/linux-riscv64": "0.18.20",
+            "@esbuild/linux-s390x": "0.18.20",
+            "@esbuild/linux-x64": "0.18.20",
+            "@esbuild/netbsd-x64": "0.18.20",
+            "@esbuild/openbsd-x64": "0.18.20",
+            "@esbuild/sunos-x64": "0.18.20",
+            "@esbuild/win32-arm64": "0.18.20",
+            "@esbuild/win32-ia32": "0.18.20",
+            "@esbuild/win32-x64": "0.18.20"
+          }
+        },
+        "escape-html": {
+          "version": "1.0.3",
+          "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+          "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
+        },
+        "estree-walker": {
+          "version": "2.0.2",
+          "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
+          "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
+        },
+        "fflate": {
+          "version": "0.4.8",
+          "resolved": "https://registry.npmmirror.com/fflate/-/fflate-0.4.8.tgz",
+          "integrity": "sha512-FJqqoDBR00Mdj9ppamLa/Y7vxm+PRmNWA67N846RvsoYVMKB4q3y/de5PA7gUmRMYK/8CMz2GDZQmCRN1wBcWA=="
+        },
+        "file-saver": {
+          "version": "2.0.5",
+          "resolved": "https://registry.npmmirror.com/file-saver/-/file-saver-2.0.5.tgz",
+          "integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA=="
+        },
+        "fill-range": {
+          "version": "7.0.1",
+          "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+          "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+          "requires": {
+            "to-regex-range": "^5.0.1"
+          }
+        },
+        "find-up": {
+          "version": "4.1.0",
+          "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+          "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+          "requires": {
+            "locate-path": "^5.0.0",
+            "path-exists": "^4.0.0"
+          }
+        },
+        "follow-redirects": {
+          "version": "1.15.3",
+          "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz",
+          "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q=="
+        },
+        "form-data": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
+          "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
+          "requires": {
+            "asynckit": "^0.4.0",
+            "combined-stream": "^1.0.8",
+            "mime-types": "^2.1.12"
+          }
+        },
+        "frac": {
+          "version": "1.1.2",
+          "resolved": "https://registry.npmmirror.com/frac/-/frac-1.1.2.tgz",
+          "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA=="
+        },
+        "fsevents": {
+          "version": "2.3.3",
+          "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+          "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+          "optional": true
+        },
+        "get-caller-file": {
+          "version": "2.0.5",
+          "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+          "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
+        },
+        "glob-parent": {
+          "version": "5.1.2",
+          "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+          "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+          "requires": {
+            "is-glob": "^4.0.1"
+          }
+        },
+        "html2canvas": {
+          "version": "1.4.1",
+          "resolved": "https://registry.npmmirror.com/html2canvas/-/html2canvas-1.4.1.tgz",
+          "integrity": "sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==",
+          "requires": {
+            "css-line-break": "^2.1.0",
+            "text-segmentation": "^1.0.3"
+          }
+        },
+        "is-binary-path": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+          "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+          "requires": {
+            "binary-extensions": "^2.0.0"
+          }
+        },
+        "is-extglob": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+          "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="
+        },
+        "is-fullwidth-code-point": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+          "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
+        },
+        "is-glob": {
+          "version": "4.0.3",
+          "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+          "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+          "requires": {
+            "is-extglob": "^2.1.1"
+          }
+        },
+        "is-number": {
+          "version": "7.0.0",
+          "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+          "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
+        },
+        "jquery": {
+          "version": "3.7.1",
+          "resolved": "https://registry.npmmirror.com/jquery/-/jquery-3.7.1.tgz",
+          "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg=="
+        },
+        "jsbarcode": {
+          "version": "3.11.6",
+          "resolved": "https://registry.npmmirror.com/jsbarcode/-/jsbarcode-3.11.6.tgz",
+          "integrity": "sha512-G5TKGyKY1zJo0ZQKFM1IIMfy0nF2rs92BLlCz+cU4/TazIc4ZH+X1GYeDRt7TKjrYqmPfTjwTBkU/QnQlsYiuA=="
+        },
+        "jspdf": {
+          "version": "2.5.1",
+          "resolved": "https://registry.npmmirror.com/jspdf/-/jspdf-2.5.1.tgz",
+          "integrity": "sha512-hXObxz7ZqoyhxET78+XR34Xu2qFGrJJ2I2bE5w4SM8eFaFEkW2xcGRVUss360fYelwRSid/jT078kbNvmoW0QA==",
+          "requires": {
+            "@babel/runtime": "^7.14.0",
+            "atob": "^2.1.2",
+            "btoa": "^1.2.1",
+            "canvg": "^3.0.6",
+            "core-js": "^3.6.0",
+            "dompurify": "^2.2.0",
+            "fflate": "^0.4.8",
+            "html2canvas": "^1.0.0-rc.5"
+          }
+        },
+        "local-pkg": {
+          "version": "0.4.3",
+          "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz",
+          "integrity": "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g=="
+        },
+        "locate-path": {
+          "version": "5.0.0",
+          "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+          "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+          "requires": {
+            "p-locate": "^4.1.0"
+          }
+        },
+        "lodash": {
+          "version": "4.17.21",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+          "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
+        },
+        "lodash-es": {
+          "version": "4.17.21",
+          "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz",
+          "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw=="
+        },
+        "lodash-unified": {
+          "version": "1.0.3",
+          "resolved": "https://registry.npmjs.org/lodash-unified/-/lodash-unified-1.0.3.tgz",
+          "integrity": "sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==",
+          "requires": {}
+        },
+        "magic-string": {
+          "version": "0.30.5",
+          "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz",
+          "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==",
+          "requires": {
+            "@jridgewell/sourcemap-codec": "^1.4.15"
+          }
+        },
+        "magic-string-ast": {
+          "version": "0.3.0",
+          "resolved": "https://registry.npmjs.org/magic-string-ast/-/magic-string-ast-0.3.0.tgz",
+          "integrity": "sha512-0shqecEPgdFpnI3AP90epXyxZy9g6CRZ+SZ7BcqFwYmtFEnZ1jpevcV5HoyVnlDS9gCnc1UIg3Rsvp3Ci7r8OA==",
+          "requires": {
+            "magic-string": "^0.30.2"
+          }
+        },
+        "memoize-one": {
+          "version": "6.0.0",
+          "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz",
+          "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw=="
+        },
+        "mime-db": {
+          "version": "1.52.0",
+          "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+          "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
+        },
+        "mime-types": {
+          "version": "2.1.35",
+          "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+          "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+          "requires": {
+            "mime-db": "1.52.0"
+          }
+        },
+        "mitt": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmmirror.com/mitt/-/mitt-2.1.0.tgz",
+          "integrity": "sha512-ILj2TpLiysu2wkBbWjAmww7TkZb65aiQO+DkVdUTBpBXq+MHYiETENkKFMtsJZX1Lf4pe4QOrTSjIfUwN5lRdg=="
+        },
+        "moment": {
+          "version": "2.30.1",
+          "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz",
+          "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how=="
+        },
+        "ms": {
+          "version": "2.1.2",
+          "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz",
+          "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+        },
+        "nanoid": {
+          "version": "3.3.6",
+          "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
+          "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA=="
+        },
+        "normalize-path": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+          "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
+        },
+        "normalize-wheel-es": {
+          "version": "1.2.0",
+          "resolved": "https://registry.npmjs.org/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz",
+          "integrity": "sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw=="
+        },
+        "nzh": {
+          "version": "1.0.12",
+          "resolved": "https://registry.npmmirror.com/nzh/-/nzh-1.0.12.tgz",
+          "integrity": "sha512-6nOlvAv9qFg0itfqNDJoOUHsItO/bTTGyHUi7DsgX10KG8iY6u8xz3oI7jfu+/v5xcVXIQIucuaoiQ7LI2RRIA==",
+          "dependencies": {
+            "@types/estree": {
+              "version": "0.0.39",
+              "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-0.0.39.tgz",
+              "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==",
+              "extraneous": true
+            },
+            "@types/node": {
+              "version": "20.2.5",
+              "resolved": "https://registry.npmmirror.com/@types/node/-/node-20.2.5.tgz",
+              "integrity": "sha512-JJulVEQXmiY9Px5axXHeYGLSjhkZEnD+MDPDGbCbIAbMslkKwmygtZFy1X6s/075Yo94sf8GuSlFfPzysQrWZQ==",
+              "extraneous": true
+            },
+            "acorn": {
+              "version": "4.0.13",
+              "resolved": "https://registry.npmmirror.com/acorn/-/acorn-4.0.13.tgz",
+              "integrity": "sha512-fu2ygVGuMmlzG8ZeRJ0bvR41nsAkxxhbyk8bZ1SS521Z7vmgJFTQQlfz/Mp/nJexGBz+v8sC9bM6+lNgskt4Ug==",
+              "extraneous": true
+            },
+            "ajv": {
+              "version": "6.12.6",
+              "resolved": "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz",
+              "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+              "extraneous": true,
+              "requires": {
+                "fast-deep-equal": "^3.1.1",
+                "fast-json-stable-stringify": "^2.0.0",
+                "json-schema-traverse": "^0.4.1",
+                "uri-js": "^4.2.2"
+              }
+            },
+            "align-text": {
+              "version": "0.1.4",
+              "resolved": "https://registry.npmmirror.com/align-text/-/align-text-0.1.4.tgz",
+              "integrity": "sha512-GrTZLRpmp6wIC2ztrWW9MjjTgSKccffgFagbNDOX95/dcjEcYZibYTeaOntySQLcdw1ztBoFkviiUvTMbb9MYg==",
+              "extraneous": true,
+              "requires": {
+                "kind-of": "^3.0.2",
+                "longest": "^1.0.1",
+                "repeat-string": "^1.5.2"
+              },
+              "dependencies": {
+                "kind-of": {
+                  "version": "3.2.2",
+                  "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz",
+                  "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+                  "extraneous": true,
+                  "requires": {
+                    "is-buffer": "^1.1.5"
+                  }
+                }
+              }
+            },
+            "amdefine": {
+              "version": "1.0.1",
+              "resolved": "https://registry.npmmirror.com/amdefine/-/amdefine-1.0.1.tgz",
+              "integrity": "sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==",
+              "extraneous": true
+            },
+            "ansi-gray": {
+              "version": "0.1.1",
+              "resolved": "https://registry.npmmirror.com/ansi-gray/-/ansi-gray-0.1.1.tgz",
+              "integrity": "sha512-HrgGIZUl8h2EHuZaU9hTR/cU5nhKxpVE1V6kdGsQ8e4zirElJ5fvtfc8N7Q1oq1aatO275i8pUFUCpNWCAnVWw==",
+              "extraneous": true,
+              "requires": {
+                "ansi-wrap": "0.1.0"
+              }
+            },
+            "ansi-regex": {
+              "version": "2.1.1",
+              "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-2.1.1.tgz",
+              "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==",
+              "extraneous": true
+            },
+            "ansi-styles": {
+              "version": "2.2.1",
+              "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-2.2.1.tgz",
+              "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==",
+              "extraneous": true
+            },
+            "ansi-wrap": {
+              "version": "0.1.0",
+              "resolved": "https://registry.npmmirror.com/ansi-wrap/-/ansi-wrap-0.1.0.tgz",
+              "integrity": "sha512-ZyznvL8k/FZeQHr2T6LzcJ/+vBApDnMNZvfVFy3At0knswWd6rJ3/0Hhmpu8oqa6C92npmozs890sX9Dl6q+Qw==",
+              "extraneous": true
+            },
+            "archy": {
+              "version": "1.0.0",
+              "resolved": "https://registry.npmmirror.com/archy/-/archy-1.0.0.tgz",
+              "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==",
+              "extraneous": true
+            },
+            "arr-diff": {
+              "version": "4.0.0",
+              "resolved": "https://registry.npmmirror.com/arr-diff/-/arr-diff-4.0.0.tgz",
+              "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==",
+              "extraneous": true
+            },
+            "arr-flatten": {
+              "version": "1.1.0",
+              "resolved": "https://registry.npmmirror.com/arr-flatten/-/arr-flatten-1.1.0.tgz",
+              "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
+              "extraneous": true
+            },
+            "arr-union": {
+              "version": "3.1.0",
+              "resolved": "https://registry.npmmirror.com/arr-union/-/arr-union-3.1.0.tgz",
+              "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==",
+              "extraneous": true
+            },
+            "array-differ": {
+              "version": "1.0.0",
+              "resolved": "https://registry.npmmirror.com/array-differ/-/array-differ-1.0.0.tgz",
+              "integrity": "sha512-LeZY+DZDRnvP7eMuQ6LHfCzUGxAAIViUBliK24P3hWXL6y4SortgR6Nim6xrkfSLlmH0+k+9NYNwVC2s53ZrYQ==",
+              "extraneous": true
+            },
+            "array-each": {
+              "version": "1.0.1",
+              "resolved": "https://registry.npmmirror.com/array-each/-/array-each-1.0.1.tgz",
+              "integrity": "sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==",
+              "extraneous": true
+            },
+            "array-find-index": {
+              "version": "1.0.2",
+              "resolved": "https://registry.npmmirror.com/array-find-index/-/array-find-index-1.0.2.tgz",
+              "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==",
+              "extraneous": true
+            },
+            "array-slice": {
+              "version": "1.1.0",
+              "resolved": "https://registry.npmmirror.com/array-slice/-/array-slice-1.1.0.tgz",
+              "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==",
+              "extraneous": true
+            },
+            "array-uniq": {
+              "version": "1.0.3",
+              "resolved": "https://registry.npmmirror.com/array-uniq/-/array-uniq-1.0.3.tgz",
+              "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==",
+              "extraneous": true
+            },
+            "array-unique": {
+              "version": "0.3.2",
+              "resolved": "https://registry.npmmirror.com/array-unique/-/array-unique-0.3.2.tgz",
+              "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==",
+              "extraneous": true
+            },
+            "asn1": {
+              "version": "0.2.6",
+              "resolved": "https://registry.npmmirror.com/asn1/-/asn1-0.2.6.tgz",
+              "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==",
+              "extraneous": true,
+              "requires": {
+                "safer-buffer": "~2.1.0"
+              }
+            },
+            "assert": {
+              "version": "1.1.2",
+              "resolved": "https://registry.npmmirror.com/assert/-/assert-1.1.2.tgz",
+              "integrity": "sha512-pSLN/C6u6JFR8L+0TzQ0Elc+VboxUXFtNw11RI1UcTcHEktQqIKIKK5S4nAZX4j8mpTpnCtmqpR+thPfqT11Kg==",
+              "extraneous": true,
+              "requires": {
+                "util": "0.10.3"
+              },
+              "dependencies": {
+                "inherits": {
+                  "version": "2.0.1",
+                  "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.1.tgz",
+                  "integrity": "sha512-8nWq2nLTAwd02jTqJExUYFSD/fKq6VH9Y/oG2accc/kdI0V98Bag8d5a4gi3XHz73rDWa2PvTtvcWYquKqSENA==",
+                  "extraneous": true
+                },
+                "util": {
+                  "version": "0.10.3",
+                  "resolved": "https://registry.npmmirror.com/util/-/util-0.10.3.tgz",
+                  "integrity": "sha512-5KiHfsmkqacuKjkRkdV7SsfDJ2EGiPsK92s2MhNSY0craxjTdKTtqKsJaCWp4LW33ZZ0OPUv1WO/TFvNQRiQxQ==",
+                  "extraneous": true,
+                  "requires": {
+                    "inherits": "2.0.1"
+                  }
+                }
+              }
+            },
+            "assert-plus": {
+              "version": "1.0.0",
+              "resolved": "https://registry.npmmirror.com/assert-plus/-/assert-plus-1.0.0.tgz",
+              "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==",
+              "extraneous": true
+            },
+            "assign-symbols": {
+              "version": "1.0.0",
+              "resolved": "https://registry.npmmirror.com/assign-symbols/-/assign-symbols-1.0.0.tgz",
+              "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==",
+              "extraneous": true
+            },
+            "astw": {
+              "version": "2.2.0",
+              "resolved": "https://registry.npmmirror.com/astw/-/astw-2.2.0.tgz",
+              "integrity": "sha512-E/4z//dvN0lfr8zAx8hXeQ8o3nRoQaL/wqI7fAALEvh/40mnyUxfFB9MwyDHYKVDtS3cp3Pow5s96djZR5lkWw==",
+              "extraneous": true,
+              "requires": {
+                "acorn": "^4.0.3"
+              }
+            },
+            "async": {
+              "version": "0.2.10",
+              "resolved": "https://registry.npmmirror.com/async/-/async-0.2.10.tgz",
+              "integrity": "sha512-eAkdoKxU6/LkKDBzLpT+t6Ff5EtfSF4wx1WfJiPEEV7WNLnDaRXk0oVysiEPm262roaachGexwUv94WhSgN5TQ==",
+              "extraneous": true
+            },
+            "asynckit": {
+              "version": "0.4.0",
+              "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz",
+              "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
+              "extraneous": true
+            },
+            "atob": {
+              "version": "2.1.2",
+              "resolved": "https://registry.npmmirror.com/atob/-/atob-2.1.2.tgz",
+              "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
+              "extraneous": true
+            },
+            "aws-sign2": {
+              "version": "0.7.0",
+              "resolved": "https://registry.npmmirror.com/aws-sign2/-/aws-sign2-0.7.0.tgz",
+              "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==",
+              "extraneous": true
+            },
+            "aws4": {
+              "version": "1.12.0",
+              "resolved": "https://registry.npmmirror.com/aws4/-/aws4-1.12.0.tgz",
+              "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==",
+              "extraneous": true
+            },
+            "balanced-match": {
+              "version": "1.0.2",
+              "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz",
+              "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+              "extraneous": true
+            },
+            "base": {
+              "version": "0.11.2",
+              "resolved": "https://registry.npmmirror.com/base/-/base-0.11.2.tgz",
+              "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
+              "extraneous": true,
+              "requires": {
+                "cache-base": "^1.0.1",
+                "class-utils": "^0.3.5",
+                "component-emitter": "^1.2.1",
+                "define-property": "^1.0.0",
+                "isobject": "^3.0.1",
+                "mixin-deep": "^1.2.0",
+                "pascalcase": "^0.1.1"
+              },
+              "dependencies": {
+                "define-property": {
+                  "version": "1.0.0",
+                  "resolved": "https://registry.npmmirror.com/define-property/-/define-property-1.0.0.tgz",
+                  "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==",
+                  "extraneous": true,
+                  "requires": {
+                    "is-descriptor": "^1.0.0"
+                  }
+                },
+                "is-accessor-descriptor": {
+                  "version": "1.0.0",
+                  "resolved": "https://registry.npmmirror.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+                  "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+                  "extraneous": true,
+                  "requires": {
+                    "kind-of": "^6.0.0"
+                  }
+                },
+                "is-data-descriptor": {
+                  "version": "1.0.0",
+                  "resolved": "https://registry.npmmirror.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+                  "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+                  "extraneous": true,
+                  "requires": {
+                    "kind-of": "^6.0.0"
+                  }
+                },
+                "is-descriptor": {
+                  "version": "1.0.2",
+                  "resolved": "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-1.0.2.tgz",
+                  "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+                  "extraneous": true,
+                  "requires": {
+                    "is-accessor-descriptor": "^1.0.0",
+                    "is-data-descriptor": "^1.0.0",
+                    "kind-of": "^6.0.2"
+                  }
+                }
+              }
+            },
+            "Base64": {
+              "version": "0.2.1",
+              "resolved": "https://registry.npmmirror.com/Base64/-/Base64-0.2.1.tgz",
+              "integrity": "sha512-reGEWshDmTDQDsCec/HduOO9Wyj6yMOupMfhIf3ugN1TDlK2NQW4DDJSqNNtp380SNcvRfXtO8HSCQot0d0SMw==",
+              "extraneous": true
+            },
+            "base64-js": {
+              "version": "0.0.8",
+              "resolved": "https://registry.npmmirror.com/base64-js/-/base64-js-0.0.8.tgz",
+              "integrity": "sha512-3XSA2cR/h/73EzlXXdU6YNycmYI7+kicTxks4eJg2g39biHR84slg2+des+p7iHYhbRg/udIS4TD53WabcOUkw==",
+              "extraneous": true
+            },
+            "bcrypt-pbkdf": {
+              "version": "1.0.2",
+              "resolved": "https://registry.npmmirror.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
+              "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==",
+              "extraneous": true,
+              "requires": {
+                "tweetnacl": "^0.14.3"
+              }
+            },
+            "beeper": {
+              "version": "1.1.1",
+              "resolved": "https://registry.npmmirror.com/beeper/-/beeper-1.1.1.tgz",
+              "integrity": "sha512-3vqtKL1N45I5dV0RdssXZG7X6pCqQrWPNOlBPZPrd+QkE2HEhR57Z04m0KtpbsZH73j+a3F8UD1TQnn+ExTvIA==",
+              "extraneous": true
+            },
+            "brace-expansion": {
+              "version": "1.1.11",
+              "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz",
+              "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+              "extraneous": true,
+              "requires": {
+                "balanced-match": "^1.0.0",
+                "concat-map": "0.0.1"
+              }
+            },
+            "braces": {
+              "version": "2.3.2",
+              "resolved": "https://registry.npmmirror.com/braces/-/braces-2.3.2.tgz",
+              "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+              "extraneous": true,
+              "requires": {
+                "arr-flatten": "^1.1.0",
+                "array-unique": "^0.3.2",
+                "extend-shallow": "^2.0.1",
+                "fill-range": "^4.0.0",
+                "isobject": "^3.0.1",
+                "repeat-element": "^1.1.2",
+                "snapdragon": "^0.8.1",
+                "snapdragon-node": "^2.0.1",
+                "split-string": "^3.0.2",
+                "to-regex": "^3.0.1"
+              },
+              "dependencies": {
+                "extend-shallow": {
+                  "version": "2.0.1",
+                  "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-2.0.1.tgz",
+                  "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+                  "extraneous": true,
+                  "requires": {
+                    "is-extendable": "^0.1.0"
+                  }
+                }
+              }
+            },
+            "browser-pack": {
+              "version": "2.0.1",
+              "resolved": "https://registry.npmmirror.com/browser-pack/-/browser-pack-2.0.1.tgz",
+              "integrity": "sha512-wa2mYzXIk+0MC5N8xDA3sFUiyJx3GyK2ry1fyMSW2ON4XHDUz+YJTYSLAXFrSl6k/JDbfNBwaG8kuELQghAQRQ==",
+              "extraneous": true,
+              "requires": {
+                "combine-source-map": "~0.3.0",
+                "JSONStream": "~0.6.4",
+                "through": "~2.3.4"
+              },
+              "dependencies": {
+                "JSONStream": {
+                  "version": "0.6.4",
+                  "resolved": "https://registry.npmmirror.com/JSONStream/-/JSONStream-0.6.4.tgz",
+                  "integrity": "sha512-ER8YVJ+Xk4a1g+d8Xq9RFe2rjsUHV9eSRqfwe9DS5J5ga8bKWx4FwXZNWXpGDYchuOfqf4NFmDlwuloqHIj/5A==",
+                  "extraneous": true,
+                  "requires": {
+                    "jsonparse": "0.0.5",
+                    "through": "~2.2.7"
+                  },
+                  "dependencies": {
+                    "through": {
+                      "version": "2.2.7",
+                      "resolved": "https://registry.npmmirror.com/through/-/through-2.2.7.tgz",
+                      "integrity": "sha512-JIR0m0ybkmTcR8URann+HbwKmodP+OE8UCbsifQDYMLD5J3em1Cdn3MYPpbEd5elGDwmP98T+WbqP/tvzA5Mjg==",
+                      "extraneous": true
+                    }
+                  }
+                }
+              }
+            },
+            "browser-resolve": {
+              "version": "1.2.4",
+              "resolved": "https://registry.npmmirror.com/browser-resolve/-/browser-resolve-1.2.4.tgz",
+              "integrity": "sha512-z8CRZZEv/MVAuJ9u9/LwzAcGswFtWbdAHh8f8ZkHgThUb88rBZbpwoxYZaQnmbAxvCoOA1gFIONrspStOhldkg==",
+              "extraneous": true,
+              "requires": {
+                "resolve": "0.6.3"
+              },
+              "dependencies": {
+                "resolve": {
+                  "version": "0.6.3",
+                  "resolved": "https://registry.npmmirror.com/resolve/-/resolve-0.6.3.tgz",
+                  "integrity": "sha512-UHBY3viPlJKf85YijDUcikKX6tmF4SokIDp518ZDVT92JNDcG5uKIthaT/owt3Sar0lwtOafsQuwrg22/v2Dwg==",
+                  "extraneous": true
+                }
+              }
+            },
+            "browser-stdout": {
+              "version": "1.3.0",
+              "resolved": "https://registry.npmmirror.com/browser-stdout/-/browser-stdout-1.3.0.tgz",
+              "integrity": "sha512-7Rfk377tpSM9TWBEeHs0FlDZGoAIei2V/4MdZJoFMBFAK6BqLpxAIUepGRHGdPFgGsLb02PXovC4qddyHvQqTg==",
+              "extraneous": true
+            },
+            "browserify": {
+              "version": "3.46.1",
+              "resolved": "https://registry.npmmirror.com/browserify/-/browserify-3.46.1.tgz",
+              "integrity": "sha512-hHl4EM5OgFxTqdWx7fL1FXjqIRpeR7Et9OroBcG/NSZgt9Zgn/37xeHdgJE5OXbnIksow2Et19xQcj/GzfETgw==",
+              "extraneous": true,
+              "requires": {
+                "assert": "~1.1.0",
+                "browser-pack": "~2.0.0",
+                "browser-resolve": "~1.2.1",
+                "browserify-zlib": "~0.1.2",
+                "buffer": "~2.1.4",
+                "builtins": "~0.0.3",
+                "commondir": "0.0.1",
+                "concat-stream": "~1.4.1",
+                "console-browserify": "~1.0.1",
+                "constants-browserify": "~0.0.1",
+                "crypto-browserify": "~1.0.9",
+                "deep-equal": "~0.1.0",
+                "defined": "~0.0.0",
+                "deps-sort": "~0.1.1",
+                "derequire": "~0.8.0",
+                "domain-browser": "~1.1.0",
+                "duplexer": "~0.1.1",
+                "events": "~1.0.0",
+                "glob": "~3.2.8",
+                "http-browserify": "~1.3.1",
+                "https-browserify": "~0.0.0",
+                "inherits": "~2.0.1",
+                "insert-module-globals": "~6.0.0",
+                "JSONStream": "~0.7.1",
+                "module-deps": "~2.0.0",
+                "os-browserify": "~0.1.1",
+                "parents": "~0.0.1",
+                "path-browserify": "~0.0.0",
+                "process": "^0.7.0",
+                "punycode": "~1.2.3",
+                "querystring-es3": "0.2.0",
+                "resolve": "~0.6.1",
+                "shallow-copy": "0.0.1",
+                "shell-quote": "~0.0.1",
+                "stream-browserify": "~0.1.0",
+                "stream-combiner": "~0.0.2",
+                "string_decoder": "~0.0.0",
+                "subarg": "0.0.1",
+                "syntax-error": "~1.1.0",
+                "through2": "~0.4.1",
+                "timers-browserify": "~1.0.1",
+                "tty-browserify": "~0.0.0",
+                "umd": "~2.0.0",
+                "url": "~0.10.1",
+                "util": "~0.10.1",
+                "vm-browserify": "~0.0.1",
+                "xtend": "^3.0.0"
+              },
+              "dependencies": {
+                "glob": {
+                  "version": "3.2.11",
+                  "resolved": "https://registry.npmmirror.com/glob/-/glob-3.2.11.tgz",
+                  "integrity": "sha512-hVb0zwEZwC1FXSKRPFTeOtN7AArJcJlI6ULGLtrstaswKNlrTJqAA+1lYlSUop4vjA423xlBzqfVS3iWGlqJ+g==",
+                  "extraneous": true,
+                  "requires": {
+                    "inherits": "2",
+                    "minimatch": "0.3"
+                  }
+                },
+                "minimatch": {
+                  "version": "0.3.0",
+                  "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-0.3.0.tgz",
+                  "integrity": "sha512-WFX1jI1AaxNTZVOHLBVazwTWKaQjoykSzCBNXB72vDTCzopQGtyP91tKdFK5cv1+qMwPyiTu1HqUriqplI8pcA==",
+                  "extraneous": true,
+                  "requires": {
+                    "lru-cache": "2",
+                    "sigmund": "~1.0.0"
+                  }
+                },
+                "readable-stream": {
+                  "version": "1.0.34",
+                  "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-1.0.34.tgz",
+                  "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==",
+                  "extraneous": true,
+                  "requires": {
+                    "core-util-is": "~1.0.0",
+                    "inherits": "~2.0.1",
+                    "isarray": "0.0.1",
+                    "string_decoder": "~0.10.x"
+                  },
+                  "dependencies": {
+                    "string_decoder": {
+                      "version": "0.10.31",
+                      "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-0.10.31.tgz",
+                      "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==",
+                      "extraneous": true
+                    }
+                  }
+                },
+                "resolve": {
+                  "version": "0.6.3",
+                  "resolved": "https://registry.npmmirror.com/resolve/-/resolve-0.6.3.tgz",
+                  "integrity": "sha512-UHBY3viPlJKf85YijDUcikKX6tmF4SokIDp518ZDVT92JNDcG5uKIthaT/owt3Sar0lwtOafsQuwrg22/v2Dwg==",
+                  "extraneous": true
+                },
+                "string_decoder": {
+                  "version": "0.0.1",
+                  "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-0.0.1.tgz",
+                  "integrity": "sha512-nWi0z/o2vMFV7SJoJDEGqCUPfcpdC/hzCNnbHWhzt6SenBdJ3vVK0aeZuqnVVQ8fPci2h2WXIL6N3O+OJHJhZA==",
+                  "extraneous": true
+                },
+                "through2": {
+                  "version": "0.4.2",
+                  "resolved": "https://registry.npmmirror.com/through2/-/through2-0.4.2.tgz",
+                  "integrity": "sha512-45Llu+EwHKtAZYTPPVn3XZHBgakWMN3rokhEv5hu596XP+cNgplMg+Gj+1nmAvj+L0K7+N49zBKx5rah5u0QIQ==",
+                  "extraneous": true,
+                  "requires": {
+                    "readable-stream": "~1.0.17",
+                    "xtend": "~2.1.1"
+                  },
+                  "dependencies": {
+                    "xtend": {
+                      "version": "2.1.2",
+                      "resolved": "https://registry.npmmirror.com/xtend/-/xtend-2.1.2.tgz",
+                      "integrity": "sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ==",
+                      "extraneous": true,
+                      "requires": {
+                        "object-keys": "~0.4.0"
+                      }
+                    }
+                  }
+                },
+                "xtend": {
+                  "version": "3.0.0",
+                  "resolved": "https://registry.npmmirror.com/xtend/-/xtend-3.0.0.tgz",
+                  "integrity": "sha512-sp/sT9OALMjRW1fKDlPeuSZlDQpkqReA0pyJukniWbTGoEKefHxhGJynE3PNhUMlcM8qWIjPwecwCw4LArS5Eg==",
+                  "extraneous": true
+                }
+              }
+            },
+            "browserify-shim": {
+              "version": "2.0.10",
+              "resolved": "https://registry.npmmirror.com/browserify-shim/-/browserify-shim-2.0.10.tgz",
+              "integrity": "sha512-FM0V6Rxf2enBVLu/LRSo7h8g0tANHYMd555z2w1VTp5lgofxpCi9h9vOIGlMXw6mHhuLTHHwqGWezQPyWKXetw==",
+              "extraneous": true,
+              "requires": {
+                "through": "~2.3.4"
+              }
+            },
+            "browserify-zlib": {
+              "version": "0.1.4",
+              "resolved": "https://registry.npmmirror.com/browserify-zlib/-/browserify-zlib-0.1.4.tgz",
+              "integrity": "sha512-19OEpq7vWgsH6WkvkBJQDFvJS1uPcbFOQ4v9CU839dO+ZZXUZO6XpE6hNCqvlIIj+4fZvRiJ6DsAQ382GwiyTQ==",
+              "extraneous": true,
+              "requires": {
+                "pako": "~0.2.0"
+              }
+            },
+            "buffer": {
+              "version": "2.1.13",
+              "resolved": "https://registry.npmmirror.com/buffer/-/buffer-2.1.13.tgz",
+              "integrity": "sha512-MBwiv6k5+FIvbBMZSCn8ol6hzf//muWr8CuIFEZK3KhSQbClDcm99ayh9mEuZXcOTE9Y3J6wC+iOQyVbpMFmEQ==",
+              "extraneous": true,
+              "requires": {
+                "base64-js": "~0.0.4",
+                "ieee754": "~1.1.1"
+              }
+            },
+            "buffer-crc32": {
+              "version": "0.2.13",
+              "resolved": "https://registry.npmmirror.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
+              "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==",
+              "extraneous": true
+            },
+            "buffer-from": {
+              "version": "1.1.2",
+              "resolved": "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz",
+              "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
+              "extraneous": true
+            },
+            "builtin-modules": {
+              "version": "2.0.0",
+              "resolved": "https://registry.npmmirror.com/builtin-modules/-/builtin-modules-2.0.0.tgz",
+              "integrity": "sha512-3U5kUA5VPsRUA3nofm/BXX7GVHKfxz0hOBAPxXrIvHzlDRkQVqEn6yi8QJegxl4LzOHLdvb7XF5dVawa/VVYBg==",
+              "extraneous": true
+            },
+            "builtins": {
+              "version": "0.0.7",
+              "resolved": "https://registry.npmmirror.com/builtins/-/builtins-0.0.7.tgz",
+              "integrity": "sha512-T8uCGKc0/2aLVt6omt8JxDRBoWEMkku+wFesxnhxnt4NygVZG99zqxo7ciK8eebszceKamGoUiLdkXCgGQyrQw==",
+              "extraneous": true
+            },
+            "cache-base": {
+              "version": "1.0.1",
+              "resolved": "https://registry.npmmirror.com/cache-base/-/cache-base-1.0.1.tgz",
+              "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
+              "extraneous": true,
+              "requires": {
+                "collection-visit": "^1.0.0",
+                "component-emitter": "^1.2.1",
+                "get-value": "^2.0.6",
+                "has-value": "^1.0.0",
+                "isobject": "^3.0.1",
+                "set-value": "^2.0.0",
+                "to-object-path": "^0.3.0",
+                "union-value": "^1.0.0",
+                "unset-value": "^1.0.0"
+              }
+            },
+            "callsite": {
+              "version": "1.0.0",
+              "resolved": "https://registry.npmmirror.com/callsite/-/callsite-1.0.0.tgz",
+              "integrity": "sha512-0vdNRFXn5q+dtOqjfFtmtlI9N2eVZ7LMyEV2iKC5mEEFvSg/69Ml6b/WU2qF8W1nLRa0wiSrDT3Y5jOHZCwKPQ==",
+              "extraneous": true
+            },
+            "camelcase": {
+              "version": "1.2.1",
+              "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-1.2.1.tgz",
+              "integrity": "sha512-wzLkDa4K/mzI1OSITC+DUyjgIl/ETNHE9QvYgy6J6Jvqyyz4C0Xfd+lQhb19sX2jMpZV4IssUn0VDVmglV+s4g==",
+              "extraneous": true
+            },
+            "camelcase-keys": {
+              "version": "2.1.0",
+              "resolved": "https://registry.npmmirror.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
+              "integrity": "sha512-bA/Z/DERHKqoEOrp+qeGKw1QlvEQkGZSc0XaY6VnTxZr+Kv1G5zFwttpjv8qxZ/sBPT4nthwZaAcsAZTJlSKXQ==",
+              "extraneous": true,
+              "requires": {
+                "camelcase": "^2.0.0",
+                "map-obj": "^1.0.0"
+              },
+              "dependencies": {
+                "camelcase": {
+                  "version": "2.1.1",
+                  "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-2.1.1.tgz",
+                  "integrity": "sha512-DLIsRzJVBQu72meAKPkWQOLcujdXT32hwdfnkI1frSiSRMK1MofjKHf+MEx0SB6fjEFXL8fBDv1dKymBlOp4Qw==",
+                  "extraneous": true
+                }
+              }
+            },
+            "caseless": {
+              "version": "0.12.0",
+              "resolved": "https://registry.npmmirror.com/caseless/-/caseless-0.12.0.tgz",
+              "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==",
+              "extraneous": true
+            },
+            "center-align": {
+              "version": "0.1.3",
+              "resolved": "https://registry.npmmirror.com/center-align/-/center-align-0.1.3.tgz",
+              "integrity": "sha512-Baz3aNe2gd2LP2qk5U+sDk/m4oSuwSDcBfayTCTBoWpfIGO5XFxPmjILQII4NGiZjD6DoDI6kf7gKaxkf7s3VQ==",
+              "extraneous": true,
+              "requires": {
+                "align-text": "^0.1.3",
+                "lazy-cache": "^1.0.3"
+              }
+            },
+            "chalk": {
+              "version": "1.1.3",
+              "resolved": "https://registry.npmmirror.com/chalk/-/chalk-1.1.3.tgz",
+              "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==",
+              "extraneous": true,
+              "requires": {
+                "ansi-styles": "^2.2.1",
+                "escape-string-regexp": "^1.0.2",
+                "has-ansi": "^2.0.0",
+                "strip-ansi": "^3.0.0",
+                "supports-color": "^2.0.0"
+              }
+            },
+            "class-utils": {
+              "version": "0.3.6",
+              "resolved": "https://registry.npmmirror.com/class-utils/-/class-utils-0.3.6.tgz",
+              "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
+              "extraneous": true,
+              "requires": {
+                "arr-union": "^3.1.0",
+                "define-property": "^0.2.5",
+                "isobject": "^3.0.0",
+                "static-extend": "^0.1.1"
+              },
+              "dependencies": {
+                "define-property": {
+                  "version": "0.2.5",
+                  "resolved": "https://registry.npmmirror.com/define-property/-/define-property-0.2.5.tgz",
+                  "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
+                  "extraneous": true,
+                  "requires": {
+                    "is-descriptor": "^0.1.0"
+                  }
+                }
+              }
+            },
+            "cliui": {
+              "version": "2.1.0",
+              "resolved": "https://registry.npmmirror.com/cliui/-/cliui-2.1.0.tgz",
+              "integrity": "sha512-GIOYRizG+TGoc7Wgc1LiOTLare95R3mzKgoln+Q/lE4ceiYH19gUpl0l0Ffq4lJDEf3FxujMe6IBfOCs7pfqNA==",
+              "extraneous": true,
+              "requires": {
+                "center-align": "^0.1.1",
+                "right-align": "^0.1.1",
+                "wordwrap": "0.0.2"
+              },
+              "dependencies": {
+                "wordwrap": {
+                  "version": "0.0.2",
+                  "resolved": "https://registry.npmmirror.com/wordwrap/-/wordwrap-0.0.2.tgz",
+                  "integrity": "sha512-xSBsCeh+g+dinoBv3GAOWM4LcVVO68wLXRanibtBSdUvkGWQRGeE9P7IwU9EmDDi4jA6L44lz15CGMwdw9N5+Q==",
+                  "extraneous": true
+                }
+              }
+            },
+            "clone": {
+              "version": "1.0.4",
+              "resolved": "https://registry.npmmirror.com/clone/-/clone-1.0.4.tgz",
+              "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==",
+              "extraneous": true
+            },
+            "clone-stats": {
+              "version": "0.0.1",
+              "resolved": "https://registry.npmmirror.com/clone-stats/-/clone-stats-0.0.1.tgz",
+              "integrity": "sha512-dhUqc57gSMCo6TX85FLfe51eC/s+Im2MLkAgJwfaRRexR2tA4dd3eLEW4L6efzHc2iNorrRRXITifnDLlRrhaA==",
+              "extraneous": true
+            },
+            "collection-visit": {
+              "version": "1.0.0",
+              "resolved": "https://registry.npmmirror.com/collection-visit/-/collection-visit-1.0.0.tgz",
+              "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==",
+              "extraneous": true,
+              "requires": {
+                "map-visit": "^1.0.0",
+                "object-visit": "^1.0.0"
+              }
+            },
+            "color-support": {
+              "version": "1.1.3",
+              "resolved": "https://registry.npmmirror.com/color-support/-/color-support-1.1.3.tgz",
+              "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==",
+              "extraneous": true
+            },
+            "combine-source-map": {
+              "version": "0.3.0",
+              "resolved": "https://registry.npmmirror.com/combine-source-map/-/combine-source-map-0.3.0.tgz",
+              "integrity": "sha512-HRKa6g9SC1xd6ifto8ay6SxvyHaaQ50/8NO1ZONXx2hsIF9t/52qXa7Eeivaf5KFOSowK7Nm8TkIL/VC4khdBA==",
+              "extraneous": true,
+              "requires": {
+                "convert-source-map": "~0.3.0",
+                "inline-source-map": "~0.3.0",
+                "source-map": "~0.1.31"
+              },
+              "dependencies": {
+                "source-map": {
+                  "version": "0.1.43",
+                  "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.1.43.tgz",
+                  "integrity": "sha512-VtCvB9SIQhk3aF6h+N85EaqIaBFIAfZ9Cu+NJHHVvc8BbEcnvDcFw6sqQ2dQrT6SlOrZq3tIvyD9+EGq/lJryQ==",
+                  "extraneous": true,
+                  "requires": {
+                    "amdefine": ">=0.0.4"
+                  }
+                }
+              }
+            },
+            "combined-stream": {
+              "version": "1.0.8",
+              "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz",
+              "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+              "extraneous": true,
+              "requires": {
+                "delayed-stream": "~1.0.0"
+              }
+            },
+            "commander": {
+              "version": "2.9.0",
+              "resolved": "https://registry.npmmirror.com/commander/-/commander-2.9.0.tgz",
+              "integrity": "sha512-bmkUukX8wAOjHdN26xj5c4ctEV22TQ7dQYhSmuckKhToXrkUn0iIaolHdIxYYqD55nhpSPA9zPQ1yP57GdXP2A==",
+              "extraneous": true,
+              "requires": {
+                "graceful-readlink": ">= 1.0.0"
+              }
+            },
+            "commondir": {
+              "version": "0.0.1",
+              "resolved": "https://registry.npmmirror.com/commondir/-/commondir-0.0.1.tgz",
+              "integrity": "sha512-Ghe1LmLv3G3c0XJYu+c88MCRIPqWQ67qaqKY1KvuN4uPAjfUj+y4hvcpZ2kCPrjpRNyklW4dpAZZ8a7vOh50tg==",
+              "extraneous": true
+            },
+            "component-emitter": {
+              "version": "1.3.0",
+              "resolved": "https://registry.npmmirror.com/component-emitter/-/component-emitter-1.3.0.tgz",
+              "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==",
+              "extraneous": true
+            },
+            "concat-map": {
+              "version": "0.0.1",
+              "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz",
+              "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
+              "extraneous": true
+            },
+            "concat-stream": {
+              "version": "1.4.11",
+              "resolved": "https://registry.npmmirror.com/concat-stream/-/concat-stream-1.4.11.tgz",
+              "integrity": "sha512-X3JMh8+4je3U1cQpG87+f9lXHDrqcb2MVLg9L7o8b1UZ0DzhRrUpdn65ttzu10PpJPPI3MQNkis+oha6TSA9Mw==",
+              "extraneous": true,
+              "requires": {
+                "inherits": "~2.0.1",
+                "readable-stream": "~1.1.9",
+                "typedarray": "~0.0.5"
+              }
+            },
+            "concat-with-sourcemaps": {
+              "version": "1.1.0",
+              "resolved": "https://registry.npmmirror.com/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz",
+              "integrity": "sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==",
+              "extraneous": true,
+              "requires": {
+                "source-map": "^0.6.1"
+              },
+              "dependencies": {
+                "source-map": {
+                  "version": "0.6.1",
+                  "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz",
+                  "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+                  "extraneous": true
+                }
+              }
+            },
+            "console-browserify": {
+              "version": "1.0.3",
+              "resolved": "https://registry.npmmirror.com/console-browserify/-/console-browserify-1.0.3.tgz",
+              "integrity": "sha512-mIy/TXtcNHCzckiUr4f8m9MSQkG2rjvtI7QAK5vM7VdSlCjZqsoYUkcx9NaLEFuKBYJqd5+hLKj/YCo33heXOQ==",
+              "extraneous": true
+            },
+            "constants-browserify": {
+              "version": "0.0.1",
+              "resolved": "https://registry.npmmirror.com/constants-browserify/-/constants-browserify-0.0.1.tgz",
+              "integrity": "sha512-FL+diDS9AKR5BAA2M+GNk8lnH64tRE3zepTG9hucxc7o04LgCRhkQZhF7u/OKHZT8LLRT+sZEi9qFzXUchq9pA==",
+              "extraneous": true
+            },
+            "convert-source-map": {
+              "version": "0.3.5",
+              "resolved": "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-0.3.5.tgz",
+              "integrity": "sha512-+4nRk0k3oEpwUB7/CalD7xE2z4VmtEnnq0GO2IPTkrooTrAhEsWvuLF5iWP1dXrwluki/azwXV1ve7gtYuPldg==",
+              "extraneous": true
+            },
+            "copy-descriptor": {
+              "version": "0.1.1",
+              "resolved": "https://registry.npmmirror.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
+              "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==",
+              "extraneous": true
+            },
+            "core-util-is": {
+              "version": "1.0.3",
+              "resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz",
+              "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
+              "extraneous": true
+            },
+            "crypto-browserify": {
+              "version": "1.0.9",
+              "resolved": "https://registry.npmmirror.com/crypto-browserify/-/crypto-browserify-1.0.9.tgz",
+              "integrity": "sha512-fWmkaZPmccreTmANMdpvI0UrF34pzTAZDLKDcF0n5ThwpyeAs+DtSVxyhrZc6kHFiOFdyzjW5uZ8jAWE3kNY6A==",
+              "extraneous": true
+            },
+            "currently-unhandled": {
+              "version": "0.4.1",
+              "resolved": "https://registry.npmmirror.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
+              "integrity": "sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng==",
+              "extraneous": true,
+              "requires": {
+                "array-find-index": "^1.0.1"
+              }
+            },
+            "dashdash": {
+              "version": "1.14.1",
+              "resolved": "https://registry.npmmirror.com/dashdash/-/dashdash-1.14.1.tgz",
+              "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==",
+              "extraneous": true,
+              "requires": {
+                "assert-plus": "^1.0.0"
+              }
+            },
+            "dateformat": {
+              "version": "2.2.0",
+              "resolved": "https://registry.npmmirror.com/dateformat/-/dateformat-2.2.0.tgz",
+              "integrity": "sha512-GODcnWq3YGoTnygPfi02ygEiRxqUxpJwuRHjdhJYuxpcZmDq4rjBiXYmbCCzStxo176ixfLT6i4NPwQooRySnw==",
+              "extraneous": true
+            },
+            "debug": {
+              "version": "2.6.9",
+              "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz",
+              "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+              "extraneous": true,
+              "requires": {
+                "ms": "2.0.0"
+              }
+            },
+            "decamelize": {
+              "version": "1.2.0",
+              "resolved": "https://registry.npmmirror.com/decamelize/-/decamelize-1.2.0.tgz",
+              "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
+              "extraneous": true
+            },
+            "decode-uri-component": {
+              "version": "0.2.2",
+              "resolved": "https://registry.npmmirror.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz",
+              "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==",
+              "extraneous": true
+            },
+            "deep-equal": {
+              "version": "0.1.2",
+              "resolved": "https://registry.npmmirror.com/deep-equal/-/deep-equal-0.1.2.tgz",
+              "integrity": "sha512-rUCt39nKM7s6qUyYgp/reJmtXjgkOS/JbLO24DioMZaBNkD3b7C7cD3zJjSyjclEElNTpetAIRD6fMIbBIbX1Q==",
+              "extraneous": true
+            },
+            "defaults": {
+              "version": "1.0.4",
+              "resolved": "https://registry.npmmirror.com/defaults/-/defaults-1.0.4.tgz",
+              "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==",
+              "extraneous": true,
+              "requires": {
+                "clone": "^1.0.2"
+              }
+            },
+            "define-property": {
+              "version": "2.0.2",
+              "resolved": "https://registry.npmmirror.com/define-property/-/define-property-2.0.2.tgz",
+              "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
+              "extraneous": true,
+              "requires": {
+                "is-descriptor": "^1.0.2",
+                "isobject": "^3.0.1"
+              },
+              "dependencies": {
+                "is-accessor-descriptor": {
+                  "version": "1.0.0",
+                  "resolved": "https://registry.npmmirror.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+                  "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+                  "extraneous": true,
+                  "requires": {
+                    "kind-of": "^6.0.0"
+                  }
+                },
+                "is-data-descriptor": {
+                  "version": "1.0.0",
+                  "resolved": "https://registry.npmmirror.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+                  "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+                  "extraneous": true,
+                  "requires": {
+                    "kind-of": "^6.0.0"
+                  }
+                },
+                "is-descriptor": {
+                  "version": "1.0.2",
+                  "resolved": "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-1.0.2.tgz",
+                  "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+                  "extraneous": true,
+                  "requires": {
+                    "is-accessor-descriptor": "^1.0.0",
+                    "is-data-descriptor": "^1.0.0",
+                    "kind-of": "^6.0.2"
+                  }
+                }
+              }
+            },
+            "defined": {
+              "version": "0.0.0",
+              "resolved": "https://registry.npmmirror.com/defined/-/defined-0.0.0.tgz",
+              "integrity": "sha512-zpqiCT8bODLu3QSmLLic8xJnYWBFjOSu/fBCm189oAiTtPq/PSanNACKZDS7kgSyCJY7P+IcODzlIogBK/9RBg==",
+              "extraneous": true
+            },
+            "delayed-stream": {
+              "version": "1.0.0",
+              "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz",
+              "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
+              "extraneous": true
+            },
+            "deprecated": {
+              "version": "0.0.1",
+              "resolved": "https://registry.npmmirror.com/deprecated/-/deprecated-0.0.1.tgz",
+              "integrity": "sha512-BRACtc6B1mJe2J2mruHFqHWrtLy0Qppu/7LKdqWH3o/9j1L/1phPUaQV+2S3H8ZDW0k6h+NEOKcHBDRikWLiOA==",
+              "extraneous": true
+            },
+            "deps-sort": {
+              "version": "0.1.2",
+              "resolved": "https://registry.npmmirror.com/deps-sort/-/deps-sort-0.1.2.tgz",
+              "integrity": "sha512-bF5sJp2YeGQAx+vI3KBQwn6wHHyuCcsrPS0qvqnNLgGF1NrjhdvopP3exfdLLKaFtS6V5K/CMjQLtzR7C3Wa6A==",
+              "extraneous": true,
+              "requires": {
+                "JSONStream": "~0.6.4",
+                "minimist": "~0.0.1",
+                "through": "~2.3.4"
+              },
+              "dependencies": {
+                "JSONStream": {
+                  "version": "0.6.4",
+                  "resolved": "https://registry.npmmirror.com/JSONStream/-/JSONStream-0.6.4.tgz",
+                  "integrity": "sha512-ER8YVJ+Xk4a1g+d8Xq9RFe2rjsUHV9eSRqfwe9DS5J5ga8bKWx4FwXZNWXpGDYchuOfqf4NFmDlwuloqHIj/5A==",
+                  "extraneous": true,
+                  "requires": {
+                    "jsonparse": "0.0.5",
+                    "through": "~2.2.7"
+                  },
+                  "dependencies": {
+                    "through": {
+                      "version": "2.2.7",
+                      "resolved": "https://registry.npmmirror.com/through/-/through-2.2.7.tgz",
+                      "integrity": "sha512-JIR0m0ybkmTcR8URann+HbwKmodP+OE8UCbsifQDYMLD5J3em1Cdn3MYPpbEd5elGDwmP98T+WbqP/tvzA5Mjg==",
+                      "extraneous": true
+                    }
+                  }
+                },
+                "minimist": {
+                  "version": "0.0.10",
+                  "resolved": "https://registry.npmmirror.com/minimist/-/minimist-0.0.10.tgz",
+                  "integrity": "sha512-iotkTvxc+TwOm5Ieim8VnSNvCDjCK9S8G3scJ50ZthspSxa7jx50jkhYduuAtAjvfDUwSgOwf8+If99AlOEhyw==",
+                  "extraneous": true
+                }
+              }
+            },
+            "derequire": {
+              "version": "0.8.0",
+              "resolved": "https://registry.npmmirror.com/derequire/-/derequire-0.8.0.tgz",
+              "integrity": "sha512-luNtMBeScoqdoYW+Je4ROWJZjF6TLiNtbuqC/NAvBgXMn/s5SF4AUws9/NOoDnTLu/qg5c9oNZBfwzzQftkyOw==",
+              "extraneous": true,
+              "requires": {
+                "esprima-fb": "^3001.1.0-dev-harmony-fb",
+                "esrefactor": "~0.1.0",
+                "estraverse": "~1.5.0"
+              }
+            },
+            "detect-file": {
+              "version": "1.0.0",
+              "resolved": "https://registry.npmmirror.com/detect-file/-/detect-file-1.0.0.tgz",
+              "integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==",
+              "extraneous": true
+            },
+            "detective": {
+              "version": "3.1.0",
+              "resolved": "https://registry.npmmirror.com/detective/-/detective-3.1.0.tgz",
+              "integrity": "sha512-BIvQHuiVSRMufK1OnlpeAzVqF2yXD75ZzYIx8XV4VQiJ48chF/MMYAdsz/NkulhZznwb4fAX8vyi5CUc24I2BA==",
+              "extraneous": true,
+              "requires": {
+                "escodegen": "~1.1.0",
+                "esprima-fb": "3001.1.0-dev-harmony-fb"
+              }
+            },
+            "diff": {
+              "version": "3.2.0",
+              "resolved": "https://registry.npmmirror.com/diff/-/diff-3.2.0.tgz",
+              "integrity": "sha512-597ykPFhtJYaXqPq6fF7Vl1fXTKgPdLOntyxpmdzUOKiYGqK7zcnbplj5088+8qJnWdzXhyeau5iVr8HVo9dgg==",
+              "extraneous": true
+            },
+            "domain-browser": {
+              "version": "1.1.7",
+              "resolved": "https://registry.npmmirror.com/domain-browser/-/domain-browser-1.1.7.tgz",
+              "integrity": "sha512-fJ5MoHxe69h3E4/lJtFRhcWwLb04bhIBSfvCEMS1YDH+/9yEZTqBHTSTgch8nCP5tE5k2gdQEjodUqJzy7qJ9Q==",
+              "extraneous": true
+            },
+            "duplexer": {
+              "version": "0.1.2",
+              "resolved": "https://registry.npmmirror.com/duplexer/-/duplexer-0.1.2.tgz",
+              "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==",
+              "extraneous": true
+            },
+            "duplexer2": {
+              "version": "0.0.2",
+              "resolved": "https://registry.npmmirror.com/duplexer2/-/duplexer2-0.0.2.tgz",
+              "integrity": "sha512-+AWBwjGadtksxjOQSFDhPNQbed7icNXApT4+2BNpsXzcCBiInq2H9XW0O8sfHFaPmnQRs7cg/P0fAr2IWQSW0g==",
+              "extraneous": true,
+              "requires": {
+                "readable-stream": "~1.1.9"
+              }
+            },
+            "ecc-jsbn": {
+              "version": "0.1.2",
+              "resolved": "https://registry.npmmirror.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
+              "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==",
+              "extraneous": true,
+              "requires": {
+                "jsbn": "~0.1.0",
+                "safer-buffer": "^2.1.0"
+              }
+            },
+            "end-of-stream": {
+              "version": "0.1.5",
+              "resolved": "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-0.1.5.tgz",
+              "integrity": "sha512-go5TQkd0YRXYhX+Lc3UrXkoKU5j+m72jEP5lHWr2Nh82L8wfZtH8toKgcg4T10o23ELIMGXQdwCbl+qAXIPDrw==",
+              "extraneous": true,
+              "requires": {
+                "once": "~1.3.0"
+              }
+            },
+            "error-ex": {
+              "version": "1.3.2",
+              "resolved": "https://registry.npmmirror.com/error-ex/-/error-ex-1.3.2.tgz",
+              "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+              "extraneous": true,
+              "requires": {
+                "is-arrayish": "^0.2.1"
+              }
+            },
+            "es6-promise": {
+              "version": "4.2.8",
+              "resolved": "https://registry.npmmirror.com/es6-promise/-/es6-promise-4.2.8.tgz",
+              "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==",
+              "extraneous": true
+            },
+            "escape-string-regexp": {
+              "version": "1.0.5",
+              "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+              "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+              "extraneous": true
+            },
+            "escodegen": {
+              "version": "1.1.0",
+              "resolved": "https://registry.npmmirror.com/escodegen/-/escodegen-1.1.0.tgz",
+              "integrity": "sha512-md+WjA8K+DJELEYe0n4XAOE0XbUYfw2rzb8T+nhZ19OnQxlh+0jMLS6d+z2oqWugIh3uYKu1+KJh6QKeoogLzg==",
+              "extraneous": true,
+              "requires": {
+                "esprima": "~1.0.4",
+                "estraverse": "~1.5.0",
+                "esutils": "~1.0.0",
+                "source-map": "~0.1.30"
+              },
+              "dependencies": {
+                "esprima": {
+                  "version": "1.0.4",
+                  "resolved": "https://registry.npmmirror.com/esprima/-/esprima-1.0.4.tgz",
+                  "integrity": "sha512-rp5dMKN8zEs9dfi9g0X1ClLmV//WRyk/R15mppFNICIFRG5P92VP7Z04p8pk++gABo9W2tY+kHyu6P1mEHgmTA==",
+                  "extraneous": true
+                },
+                "source-map": {
+                  "version": "0.1.43",
+                  "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.1.43.tgz",
+                  "integrity": "sha512-VtCvB9SIQhk3aF6h+N85EaqIaBFIAfZ9Cu+NJHHVvc8BbEcnvDcFw6sqQ2dQrT6SlOrZq3tIvyD9+EGq/lJryQ==",
+                  "extraneous": true,
+                  "requires": {
+                    "amdefine": ">=0.0.4"
+                  }
+                }
+              }
+            },
+            "escope": {
+              "version": "0.0.16",
+              "resolved": "https://registry.npmmirror.com/escope/-/escope-0.0.16.tgz",
+              "integrity": "sha512-3nipzlX/noBWi/vvQSLvifQ4lKalvX570eAVgrbK0TD0Cwlbh3EQ3OpcongoFaD7IeWIaQKsRS16Bt2epx71TQ==",
+              "extraneous": true,
+              "requires": {
+                "estraverse": ">= 0.0.2"
+              }
+            },
+            "esprima-fb": {
+              "version": "3001.1.0-dev-harmony-fb",
+              "resolved": "https://registry.npmmirror.com/esprima-fb/-/esprima-fb-3001.1.0-dev-harmony-fb.tgz",
+              "integrity": "sha512-a3RFiCVBiy8KdO6q/C+8BQiP/sRk8XshBU3QHHDP8tNzjYwR3FKBOImu+PXfVhPoZL0JKtJLBAOWlDMCCFY8SQ==",
+              "extraneous": true
+            },
+            "esrefactor": {
+              "version": "0.1.0",
+              "resolved": "https://registry.npmmirror.com/esrefactor/-/esrefactor-0.1.0.tgz",
+              "integrity": "sha512-QxD1acYl9jmkDI+0xnPcwjhrwiKvfaaAZV5cVXX5uXTSp9uJ7xddqXOfnNPzWP1JoorLwj7OWF+RQOLKh7Vnjw==",
+              "extraneous": true,
+              "requires": {
+                "escope": "~0.0.13",
+                "esprima": "~1.0.2",
+                "estraverse": "~0.0.4"
+              },
+              "dependencies": {
+                "esprima": {
+                  "version": "1.0.4",
+                  "resolved": "https://registry.npmmirror.com/esprima/-/esprima-1.0.4.tgz",
+                  "integrity": "sha512-rp5dMKN8zEs9dfi9g0X1ClLmV//WRyk/R15mppFNICIFRG5P92VP7Z04p8pk++gABo9W2tY+kHyu6P1mEHgmTA==",
+                  "extraneous": true
+                },
+                "estraverse": {
+                  "version": "0.0.4",
+                  "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-0.0.4.tgz",
+                  "integrity": "sha512-21DfBCsFJGb3HZr0vEBH1Wk1tGSbbzA8I/xtSSoy/pRtupHv0OgBmObcNGXM3ec6/pOXTOOUYY9/5bfluzz0sw==",
+                  "extraneous": true
+                }
+              }
+            },
+            "estraverse": {
+              "version": "1.5.1",
+              "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-1.5.1.tgz",
+              "integrity": "sha512-FpCjJDfmo3vsc/1zKSeqR5k42tcIhxFIlvq+h9j0fO2q/h2uLKyweq7rYJ+0CoVvrGQOxIS5wyBrW/+vF58BUQ==",
+              "extraneous": true
+            },
+            "estree-walker": {
+              "version": "0.6.1",
+              "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-0.6.1.tgz",
+              "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==",
+              "extraneous": true
+            },
+            "esutils": {
+              "version": "1.0.0",
+              "resolved": "https://registry.npmmirror.com/esutils/-/esutils-1.0.0.tgz",
+              "integrity": "sha512-x/iYH53X3quDwfHRz4y8rn4XcEwwCJeWsul9pF1zldMbGtgOtMNBEOuYWwB1EQlK2LRa1fev3YAgym/RElp5Cg==",
+              "extraneous": true
+            },
+            "events": {
+              "version": "1.0.2",
+              "resolved": "https://registry.npmmirror.com/events/-/events-1.0.2.tgz",
+              "integrity": "sha512-XK19KwlDJo8XsceooxNDK1pObtcT44+Xte6V/jQc4a+fHq1qEouThyyX2ePmS0hS8RcCulmRxzg+T8jiLKAFFQ==",
+              "extraneous": true
+            },
+            "expand-brackets": {
+              "version": "2.1.4",
+              "resolved": "https://registry.npmmirror.com/expand-brackets/-/expand-brackets-2.1.4.tgz",
+              "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==",
+              "extraneous": true,
+              "requires": {
+                "debug": "^2.3.3",
+                "define-property": "^0.2.5",
+                "extend-shallow": "^2.0.1",
+                "posix-character-classes": "^0.1.0",
+                "regex-not": "^1.0.0",
+                "snapdragon": "^0.8.1",
+                "to-regex": "^3.0.1"
+              },
+              "dependencies": {
+                "define-property": {
+                  "version": "0.2.5",
+                  "resolved": "https://registry.npmmirror.com/define-property/-/define-property-0.2.5.tgz",
+                  "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
+                  "extraneous": true,
+                  "requires": {
+                    "is-descriptor": "^0.1.0"
+                  }
+                },
+                "extend-shallow": {
+                  "version": "2.0.1",
+                  "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-2.0.1.tgz",
+                  "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+                  "extraneous": true,
+                  "requires": {
+                    "is-extendable": "^0.1.0"
+                  }
+                }
+              }
+            },
+            "expand-tilde": {
+              "version": "2.0.2",
+              "resolved": "https://registry.npmmirror.com/expand-tilde/-/expand-tilde-2.0.2.tgz",
+              "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==",
+              "extraneous": true,
+              "requires": {
+                "homedir-polyfill": "^1.0.1"
+              }
+            },
+            "extend": {
+              "version": "3.0.2",
+              "resolved": "https://registry.npmmirror.com/extend/-/extend-3.0.2.tgz",
+              "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
+              "extraneous": true
+            },
+            "extend-shallow": {
+              "version": "3.0.2",
+              "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-3.0.2.tgz",
+              "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==",
+              "extraneous": true,
+              "requires": {
+                "assign-symbols": "^1.0.0",
+                "is-extendable": "^1.0.1"
+              },
+              "dependencies": {
+                "is-extendable": {
+                  "version": "1.0.1",
+                  "resolved": "https://registry.npmmirror.com/is-extendable/-/is-extendable-1.0.1.tgz",
+                  "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+                  "extraneous": true,
+                  "requires": {
+                    "is-plain-object": "^2.0.4"
+                  }
+                }
+              }
+            },
+            "extglob": {
+              "version": "2.0.4",
+              "resolved": "https://registry.npmmirror.com/extglob/-/extglob-2.0.4.tgz",
+              "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
+              "extraneous": true,
+              "requires": {
+                "array-unique": "^0.3.2",
+                "define-property": "^1.0.0",
+                "expand-brackets": "^2.1.4",
+                "extend-shallow": "^2.0.1",
+                "fragment-cache": "^0.2.1",
+                "regex-not": "^1.0.0",
+                "snapdragon": "^0.8.1",
+                "to-regex": "^3.0.1"
+              },
+              "dependencies": {
+                "define-property": {
+                  "version": "1.0.0",
+                  "resolved": "https://registry.npmmirror.com/define-property/-/define-property-1.0.0.tgz",
+                  "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==",
+                  "extraneous": true,
+                  "requires": {
+                    "is-descriptor": "^1.0.0"
+                  }
+                },
+                "extend-shallow": {
+                  "version": "2.0.1",
+                  "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-2.0.1.tgz",
+                  "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+                  "extraneous": true,
+                  "requires": {
+                    "is-extendable": "^0.1.0"
+                  }
+                },
+                "is-accessor-descriptor": {
+                  "version": "1.0.0",
+                  "resolved": "https://registry.npmmirror.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+                  "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+                  "extraneous": true,
+                  "requires": {
+                    "kind-of": "^6.0.0"
+                  }
+                },
+                "is-data-descriptor": {
+                  "version": "1.0.0",
+                  "resolved": "https://registry.npmmirror.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+                  "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+                  "extraneous": true,
+                  "requires": {
+                    "kind-of": "^6.0.0"
+                  }
+                },
+                "is-descriptor": {
+                  "version": "1.0.2",
+                  "resolved": "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-1.0.2.tgz",
+                  "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+                  "extraneous": true,
+                  "requires": {
+                    "is-accessor-descriptor": "^1.0.0",
+                    "is-data-descriptor": "^1.0.0",
+                    "kind-of": "^6.0.2"
+                  }
+                }
+              }
+            },
+            "extract-zip": {
+              "version": "1.7.0",
+              "resolved": "https://registry.npmmirror.com/extract-zip/-/extract-zip-1.7.0.tgz",
+              "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==",
+              "extraneous": true,
+              "requires": {
+                "concat-stream": "^1.6.2",
+                "debug": "^2.6.9",
+                "mkdirp": "^0.5.4",
+                "yauzl": "^2.10.0"
+              },
+              "dependencies": {
+                "concat-stream": {
+                  "version": "1.6.2",
+                  "resolved": "https://registry.npmmirror.com/concat-stream/-/concat-stream-1.6.2.tgz",
+                  "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
+                  "extraneous": true,
+                  "requires": {
+                    "buffer-from": "^1.0.0",
+                    "inherits": "^2.0.3",
+                    "readable-stream": "^2.2.2",
+                    "typedarray": "^0.0.6"
+                  }
+                },
+                "isarray": {
+                  "version": "1.0.0",
+                  "resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz",
+                  "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
+                  "extraneous": true
+                },
+                "readable-stream": {
+                  "version": "2.3.8",
+                  "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz",
+                  "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+                  "extraneous": true,
+                  "requires": {
+                    "core-util-is": "~1.0.0",
+                    "inherits": "~2.0.3",
+                    "isarray": "~1.0.0",
+                    "process-nextick-args": "~2.0.0",
+                    "safe-buffer": "~5.1.1",
+                    "string_decoder": "~1.1.1",
+                    "util-deprecate": "~1.0.1"
+                  }
+                },
+                "string_decoder": {
+                  "version": "1.1.1",
+                  "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz",
+                  "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+                  "extraneous": true,
+                  "requires": {
+                    "safe-buffer": "~5.1.0"
+                  }
+                },
+                "typedarray": {
+                  "version": "0.0.6",
+                  "resolved": "https://registry.npmmirror.com/typedarray/-/typedarray-0.0.6.tgz",
+                  "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==",
+                  "extraneous": true
+                }
+              }
+            },
+            "extsprintf": {
+              "version": "1.3.0",
+              "resolved": "https://registry.npmmirror.com/extsprintf/-/extsprintf-1.3.0.tgz",
+              "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==",
+              "extraneous": true
+            },
+            "fancy-log": {
+              "version": "1.3.3",
+              "resolved": "https://registry.npmmirror.com/fancy-log/-/fancy-log-1.3.3.tgz",
+              "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==",
+              "extraneous": true,
+              "requires": {
+                "ansi-gray": "^0.1.1",
+                "color-support": "^1.1.3",
+                "parse-node-version": "^1.0.0",
+                "time-stamp": "^1.0.0"
+              }
+            },
+            "fast-deep-equal": {
+              "version": "3.1.3",
+              "resolved": "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+              "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
+              "extraneous": true
+            },
+            "fast-json-stable-stringify": {
+              "version": "2.1.0",
+              "resolved": "https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+              "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
+              "extraneous": true
+            },
+            "fd-slicer": {
+              "version": "1.1.0",
+              "resolved": "https://registry.npmmirror.com/fd-slicer/-/fd-slicer-1.1.0.tgz",
+              "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==",
+              "extraneous": true,
+              "requires": {
+                "pend": "~1.2.0"
+              }
+            },
+            "fill-range": {
+              "version": "4.0.0",
+              "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-4.0.0.tgz",
+              "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==",
+              "extraneous": true,
+              "requires": {
+                "extend-shallow": "^2.0.1",
+                "is-number": "^3.0.0",
+                "repeat-string": "^1.6.1",
+                "to-regex-range": "^2.1.0"
+              },
+              "dependencies": {
+                "extend-shallow": {
+                  "version": "2.0.1",
+                  "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-2.0.1.tgz",
+                  "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+                  "extraneous": true,
+                  "requires": {
+                    "is-extendable": "^0.1.0"
+                  }
+                }
+              }
+            },
+            "find-index": {
+              "version": "0.1.1",
+              "resolved": "https://registry.npmmirror.com/find-index/-/find-index-0.1.1.tgz",
+              "integrity": "sha512-uJ5vWrfBKMcE6y2Z8834dwEZj9mNGxYa3t3I53OwFeuZ8D9oc2E5zcsrkuhX6h4iYrjhiv0T3szQmxlAV9uxDg==",
+              "extraneous": true
+            },
+            "find-up": {
+              "version": "1.1.2",
+              "resolved": "https://registry.npmmirror.com/find-up/-/find-up-1.1.2.tgz",
+              "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==",
+              "extraneous": true,
+              "requires": {
+                "path-exists": "^2.0.0",
+                "pinkie-promise": "^2.0.0"
+              }
+            },
+            "findup-sync": {
+              "version": "2.0.0",
+              "resolved": "https://registry.npmmirror.com/findup-sync/-/findup-sync-2.0.0.tgz",
+              "integrity": "sha512-vs+3unmJT45eczmcAZ6zMJtxN3l/QXeccaXQx5cu/MeJMhewVfoWZqibRkOxPnmoR59+Zy5hjabfQc6JLSah4g==",
+              "extraneous": true,
+              "requires": {
+                "detect-file": "^1.0.0",
+                "is-glob": "^3.1.0",
+                "micromatch": "^3.0.4",
+                "resolve-dir": "^1.0.1"
+              }
+            },
+            "fined": {
+              "version": "1.2.0",
+              "resolved": "https://registry.npmmirror.com/fined/-/fined-1.2.0.tgz",
+              "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==",
+              "extraneous": true,
+              "requires": {
+                "expand-tilde": "^2.0.2",
+                "is-plain-object": "^2.0.3",
+                "object.defaults": "^1.1.0",
+                "object.pick": "^1.2.0",
+                "parse-filepath": "^1.0.1"
+              }
+            },
+            "first-chunk-stream": {
+              "version": "1.0.0",
+              "resolved": "https://registry.npmmirror.com/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz",
+              "integrity": "sha512-ArRi5axuv66gEsyl3UuK80CzW7t56hem73YGNYxNWTGNKFJUadSb9Gu9SHijYEUi8ulQMf1bJomYNwSCPHhtTQ==",
+              "extraneous": true
+            },
+            "flagged-respawn": {
+              "version": "1.0.1",
+              "resolved": "https://registry.npmmirror.com/flagged-respawn/-/flagged-respawn-1.0.1.tgz",
+              "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==",
+              "extraneous": true
+            },
+            "for-in": {
+              "version": "1.0.2",
+              "resolved": "https://registry.npmmirror.com/for-in/-/for-in-1.0.2.tgz",
+              "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==",
+              "extraneous": true
+            },
+            "for-own": {
+              "version": "1.0.0",
+              "resolved": "https://registry.npmmirror.com/for-own/-/for-own-1.0.0.tgz",
+              "integrity": "sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==",
+              "extraneous": true,
+              "requires": {
+                "for-in": "^1.0.1"
+              }
+            },
+            "forever-agent": {
+              "version": "0.6.1",
+              "resolved": "https://registry.npmmirror.com/forever-agent/-/forever-agent-0.6.1.tgz",
+              "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==",
+              "extraneous": true
+            },
+            "form-data": {
+              "version": "2.3.3",
+              "resolved": "https://registry.npmmirror.com/form-data/-/form-data-2.3.3.tgz",
+              "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
+              "extraneous": true,
+              "requires": {
+                "asynckit": "^0.4.0",
+                "combined-stream": "^1.0.6",
+                "mime-types": "^2.1.12"
+              }
+            },
+            "fragment-cache": {
+              "version": "0.2.1",
+              "resolved": "https://registry.npmmirror.com/fragment-cache/-/fragment-cache-0.2.1.tgz",
+              "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==",
+              "extraneous": true,
+              "requires": {
+                "map-cache": "^0.2.2"
+              }
+            },
+            "fs-extra": {
+              "version": "1.0.0",
+              "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-1.0.0.tgz",
+              "integrity": "sha512-VerQV6vEKuhDWD2HGOybV6v5I73syoc/cXAbKlgTC7M/oFVEtklWlp9QH2Ijw3IaWDOQcMkldSPa7zXy79Z/UQ==",
+              "extraneous": true,
+              "requires": {
+                "graceful-fs": "^4.1.2",
+                "jsonfile": "^2.1.0",
+                "klaw": "^1.0.0"
+              }
+            },
+            "fs.realpath": {
+              "version": "1.0.0",
+              "resolved": "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz",
+              "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
+              "extraneous": true
+            },
+            "function-bind": {
+              "version": "1.1.1",
+              "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz",
+              "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
+              "extraneous": true
+            },
+            "gaze": {
+              "version": "0.5.2",
+              "resolved": "https://registry.npmmirror.com/gaze/-/gaze-0.5.2.tgz",
+              "integrity": "sha512-3IWbXGkDDHFX8zIlNdfnmhvlSMhpBO6tDr4InB8fGku6dh/gjFPGNqcdsXJajZg05x9jRzXbL6gCnCnuMap4tw==",
+              "extraneous": true,
+              "requires": {
+                "globule": "~0.1.0"
+              }
+            },
+            "get-stdin": {
+              "version": "4.0.1",
+              "resolved": "https://registry.npmmirror.com/get-stdin/-/get-stdin-4.0.1.tgz",
+              "integrity": "sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw==",
+              "extraneous": true
+            },
+            "get-value": {
+              "version": "2.0.6",
+              "resolved": "https://registry.npmmirror.com/get-value/-/get-value-2.0.6.tgz",
+              "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==",
+              "extraneous": true
+            },
+            "getpass": {
+              "version": "0.1.7",
+              "resolved": "https://registry.npmmirror.com/getpass/-/getpass-0.1.7.tgz",
+              "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==",
+              "extraneous": true,
+              "requires": {
+                "assert-plus": "^1.0.0"
+              }
+            },
+            "glob": {
+              "version": "4.5.3",
+              "resolved": "https://registry.npmmirror.com/glob/-/glob-4.5.3.tgz",
+              "integrity": "sha512-I0rTWUKSZKxPSIAIaqhSXTM/DiII6wame+rEC3cFA5Lqmr9YmdL7z6Hj9+bdWtTvoY1Su4/OiMLmb37Y7JzvJQ==",
+              "extraneous": true,
+              "requires": {
+                "inflight": "^1.0.4",
+                "inherits": "2",
+                "minimatch": "^2.0.1",
+                "once": "^1.3.0"
+              }
+            },
+            "glob-stream": {
+              "version": "3.1.18",
+              "resolved": "https://registry.npmmirror.com/glob-stream/-/glob-stream-3.1.18.tgz",
+              "integrity": "sha512-owHtlMMXIAbxLjhUAO0HhW1/TB7kV0AwDduI3BLbYsWCaRzNIcLBu8N0wHZft2Za2SCmUXCEOdpZzC7k/H19eg==",
+              "extraneous": true,
+              "requires": {
+                "glob": "^4.3.1",
+                "glob2base": "^0.0.12",
+                "minimatch": "^2.0.1",
+                "ordered-read-streams": "^0.1.0",
+                "through2": "^0.6.1",
+                "unique-stream": "^1.0.0"
+              },
+              "dependencies": {
+                "readable-stream": {
+                  "version": "1.0.34",
+                  "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-1.0.34.tgz",
+                  "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==",
+                  "extraneous": true,
+                  "requires": {
+                    "core-util-is": "~1.0.0",
+                    "inherits": "~2.0.1",
+                    "isarray": "0.0.1",
+                    "string_decoder": "~0.10.x"
+                  }
+                },
+                "through2": {
+                  "version": "0.6.5",
+                  "resolved": "https://registry.npmmirror.com/through2/-/through2-0.6.5.tgz",
+                  "integrity": "sha512-RkK/CCESdTKQZHdmKICijdKKsCRVHs5KsLZ6pACAmF/1GPUQhonHSXWNERctxEp7RmvjdNbZTL5z9V7nSCXKcg==",
+                  "extraneous": true,
+                  "requires": {
+                    "readable-stream": ">=1.0.33-1 <1.1.0-0",
+                    "xtend": ">=4.0.0 <4.1.0-0"
+                  }
+                }
+              }
+            },
+            "glob-watcher": {
+              "version": "0.0.6",
+              "resolved": "https://registry.npmmirror.com/glob-watcher/-/glob-watcher-0.0.6.tgz",
+              "integrity": "sha512-lzYWq1BJLBmtb9rzT6+lgbFlEW6Sc7B+Qs3RmsNA9lbdFSqLHhebfypPR3nbEOMeEQyawVXqSDH0aqjtImldow==",
+              "extraneous": true,
+              "requires": {
+                "gaze": "^0.5.1"
+              }
+            },
+            "glob2base": {
+              "version": "0.0.12",
+              "resolved": "https://registry.npmmirror.com/glob2base/-/glob2base-0.0.12.tgz",
+              "integrity": "sha512-ZyqlgowMbfj2NPjxaZZ/EtsXlOch28FRXgMd64vqZWk1bT9+wvSRLYD1om9M7QfQru51zJPAT17qXm4/zd+9QA==",
+              "extraneous": true,
+              "requires": {
+                "find-index": "^0.1.1"
+              }
+            },
+            "global-modules": {
+              "version": "1.0.0",
+              "resolved": "https://registry.npmmirror.com/global-modules/-/global-modules-1.0.0.tgz",
+              "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==",
+              "extraneous": true,
+              "requires": {
+                "global-prefix": "^1.0.1",
+                "is-windows": "^1.0.1",
+                "resolve-dir": "^1.0.0"
+              }
+            },
+            "global-prefix": {
+              "version": "1.0.2",
+              "resolved": "https://registry.npmmirror.com/global-prefix/-/global-prefix-1.0.2.tgz",
+              "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==",
+              "extraneous": true,
+              "requires": {
+                "expand-tilde": "^2.0.2",
+                "homedir-polyfill": "^1.0.1",
+                "ini": "^1.3.4",
+                "is-windows": "^1.0.1",
+                "which": "^1.2.14"
+              }
+            },
+            "globule": {
+              "version": "0.1.0",
+              "resolved": "https://registry.npmmirror.com/globule/-/globule-0.1.0.tgz",
+              "integrity": "sha512-3eIcA2OjPCm4VvwIwZPzIxCVssA8HSpM2C6c6kK5ufJH4FGwWoyqL3In19uuX4oe+TwH3w2P1nQDmW56iehO4A==",
+              "extraneous": true,
+              "requires": {
+                "glob": "~3.1.21",
+                "lodash": "~1.0.1",
+                "minimatch": "~0.2.11"
+              },
+              "dependencies": {
+                "glob": {
+                  "version": "3.1.21",
+                  "resolved": "https://registry.npmmirror.com/glob/-/glob-3.1.21.tgz",
+                  "integrity": "sha512-ANhy2V2+tFpRajE3wN4DhkNQ08KDr0Ir1qL12/cUe5+a7STEK8jkW4onUYuY8/06qAFuT5je7mjAqzx0eKI2tQ==",
+                  "extraneous": true,
+                  "requires": {
+                    "graceful-fs": "~1.2.0",
+                    "inherits": "1",
+                    "minimatch": "~0.2.11"
+                  }
+                },
+                "graceful-fs": {
+                  "version": "1.2.3",
+                  "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz",
+                  "integrity": "sha512-iiTUZ5vZ+2ZV+h71XAgwCSu6+NAizhFU3Yw8aC/hH5SQ3SnISqEqAek40imAFGtDcwJKNhXvSY+hzIolnLwcdQ==",
+                  "extraneous": true
+                },
+                "inherits": {
+                  "version": "1.0.2",
+                  "resolved": "https://registry.npmmirror.com/inherits/-/inherits-1.0.2.tgz",
+                  "integrity": "sha512-Al67oatbRSo3RV5hRqIoln6Y5yMVbJSIn4jEJNL7VCImzq/kLr7vvb6sFRJXqr8rpHc/2kJOM+y0sPKN47VdzA==",
+                  "extraneous": true
+                },
+                "minimatch": {
+                  "version": "0.2.14",
+                  "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-0.2.14.tgz",
+                  "integrity": "sha512-zZ+Jy8lVWlvqqeM8iZB7w7KmQkoJn8djM585z88rywrEbzoqawVa9FR5p2hwD+y74nfuKOjmNvi9gtWJNLqHvA==",
+                  "extraneous": true,
+                  "requires": {
+                    "lru-cache": "2",
+                    "sigmund": "~1.0.0"
+                  }
+                }
+              }
+            },
+            "glogg": {
+              "version": "1.0.2",
+              "resolved": "https://registry.npmmirror.com/glogg/-/glogg-1.0.2.tgz",
+              "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==",
+              "extraneous": true,
+              "requires": {
+                "sparkles": "^1.0.0"
+              }
+            },
+            "graceful-fs": {
+              "version": "4.2.2",
+              "resolved": "https://r2.cnpmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz",
+              "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==",
+              "extraneous": true
+            },
+            "graceful-readlink": {
+              "version": "1.0.1",
+              "resolved": "https://registry.npmmirror.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
+              "integrity": "sha512-8tLu60LgxF6XpdbK8OW3FA+IfTNBn1ZHGHKF4KQbEeSkajYw5PlYJcKluntgegDPTg8UkHjpet1T82vk6TQ68w==",
+              "extraneous": true
+            },
+            "growl": {
+              "version": "1.9.2",
+              "resolved": "https://registry.npmmirror.com/growl/-/growl-1.9.2.tgz",
+              "integrity": "sha512-RTBwDHhNuOx4F0hqzItc/siXCasGfC4DeWcBamclWd+6jWtBaeB/SGbMkGf0eiQoW7ib8JpvOgnUsmgMHI3Mfw==",
+              "extraneous": true
+            },
+            "gulp": {
+              "version": "https://registry.npmmirror.com/gulp/-/gulp-3.9.1.tgz",
+              "integrity": "sha512-6FHNdR+VG1LcPz6gZGGqgvimWWGtl4x3FvshAdK/UnAjU7aFOyzft3Fjp35r0Y3ZF4u8vND0S4nGsIB/sxTqzQ==",
+              "extraneous": true,
+              "requires": {
+                "archy": "^1.0.0",
+                "chalk": "^1.0.0",
+                "deprecated": "^0.0.1",
+                "gulp-util": "^3.0.0",
+                "interpret": "^1.0.0",
+                "liftoff": "^2.1.0",
+                "minimist": "^1.1.0",
+                "orchestrator": "^0.3.0",
+                "pretty-hrtime": "^1.0.0",
+                "semver": "^4.1.0",
+                "tildify": "^1.0.0",
+                "v8flags": "^2.0.2",
+                "vinyl-fs": "^0.3.0"
+              }
+            },
+            "gulp-browserify": {
+              "version": "https://registry.npmmirror.com/gulp-browserify/-/gulp-browserify-0.5.1.tgz",
+              "integrity": "sha512-FQyA18sOaWuQgt6YcQ9qdchPaXWu/hb3B6CnrROlr699ATP9dP6QPcL6wbM9OSpKhkvWTJmDeSwFAndcM0CGlQ==",
+              "extraneous": true,
+              "requires": {
+                "browserify": "3.x",
+                "browserify-shim": "~2.0.10",
+                "gulp-util": "~2.2.5",
+                "readable-stream": "~1.1.10",
+                "through2": "~0.4.0"
+              },
+              "dependencies": {
+                "ansi-regex": {
+                  "version": "0.2.1",
+                  "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-0.2.1.tgz",
+                  "integrity": "sha512-sGwIGMjhYdW26/IhwK2gkWWI8DRCVO6uj3hYgHT+zD+QL1pa37tM3ujhyfcJIYSbsxp7Gxhy7zrRW/1AHm4BmA==",
+                  "extraneous": true
+                },
+                "ansi-styles": {
+                  "version": "1.1.0",
+                  "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-1.1.0.tgz",
+                  "integrity": "sha512-f2PKUkN5QngiSemowa6Mrk9MPCdtFiOSmibjZ+j1qhLGHHYsqZwmBMRF3IRMVXo8sybDqx2fJl2d/8OphBoWkA==",
+                  "extraneous": true
+                },
+                "chalk": {
+                  "version": "0.5.1",
+                  "resolved": "https://registry.npmmirror.com/chalk/-/chalk-0.5.1.tgz",
+                  "integrity": "sha512-bIKA54hP8iZhyDT81TOsJiQvR1gW+ZYSXFaZUAvoD4wCHdbHY2actmpTE4x344ZlFqHbvoxKOaESULTZN2gstg==",
+                  "extraneous": true,
+                  "requires": {
+                    "ansi-styles": "^1.1.0",
+                    "escape-string-regexp": "^1.0.0",
+                    "has-ansi": "^0.1.0",
+                    "strip-ansi": "^0.3.0",
+                    "supports-color": "^0.2.0"
+                  }
+                },
+                "dateformat": {
+                  "version": "1.0.12",
+                  "resolved": "https://registry.npmmirror.com/dateformat/-/dateformat-1.0.12.tgz",
+                  "integrity": "sha512-5sFRfAAmbHdIts+eKjR9kYJoF0ViCMVX9yqLu5A7S/v+nd077KgCITOMiirmyCBiZpKLDXbBOkYm6tu7rX/TKg==",
+                  "extraneous": true,
+                  "requires": {
+                    "get-stdin": "^4.0.1",
+                    "meow": "^3.3.0"
+                  }
+                },
+                "gulp-util": {
+                  "version": "2.2.20",
+                  "resolved": "https://registry.npmmirror.com/gulp-util/-/gulp-util-2.2.20.tgz",
+                  "integrity": "sha512-9rtv4sj9EtCWYGD15HQQvWtRBtU9g1t0+w29tphetHxjxEAuBKQJkhGqvlLkHEtUjEgoqIpsVwPKU1yMZAa+wA==",
+                  "extraneous": true,
+                  "requires": {
+                    "chalk": "^0.5.0",
+                    "dateformat": "^1.0.7-1.2.3",
+                    "lodash._reinterpolate": "^2.4.1",
+                    "lodash.template": "^2.4.1",
+                    "minimist": "^0.2.0",
+                    "multipipe": "^0.1.0",
+                    "through2": "^0.5.0",
+                    "vinyl": "^0.2.1"
+                  },
+                  "dependencies": {
+                    "readable-stream": {
+                      "version": "1.0.34",
+                      "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-1.0.34.tgz",
+                      "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==",
+                      "extraneous": true,
+                      "requires": {
+                        "core-util-is": "~1.0.0",
+                        "inherits": "~2.0.1",
+                        "isarray": "0.0.1",
+                        "string_decoder": "~0.10.x"
+                      }
+                    },
+                    "through2": {
+                      "version": "0.5.1",
+                      "resolved": "https://registry.npmmirror.com/through2/-/through2-0.5.1.tgz",
+                      "integrity": "sha512-zexCrAOTbjkBCXGyozn7hhS3aEaqdrc59mAD2E3dKYzV1vFuEGQ1hEDJN2oQMQFwy4he2zyLqPZV+AlfS8ZWJA==",
+                      "extraneous": true,
+                      "requires": {
+                        "readable-stream": "~1.0.17",
+                        "xtend": "~3.0.0"
+                      }
+                    }
+                  }
+                },
+                "has-ansi": {
+                  "version": "0.1.0",
+                  "resolved": "https://registry.npmmirror.com/has-ansi/-/has-ansi-0.1.0.tgz",
+                  "integrity": "sha512-1YsTg1fk2/6JToQhtZkArMkurq8UoWU1Qe0aR3VUHjgij4nOylSWLWAtBXoZ4/dXOmugfLGm1c+QhuD0JyedFA==",
+                  "extraneous": true,
+                  "requires": {
+                    "ansi-regex": "^0.2.0"
+                  }
+                },
+                "lodash._reinterpolate": {
+                  "version": "2.4.1",
+                  "resolved": "https://registry.npmmirror.com/lodash._reinterpolate/-/lodash._reinterpolate-2.4.1.tgz",
+                  "integrity": "sha512-QGEOOjJi7W9LIgDAMVgtGBb8Qgo8ieDlSOCoZjtG45ZNRvDJZjwVMTYlfTIWdNRUiR1I9BjIqQ3Zaf1+DYM94g==",
+                  "extraneous": true
+                },
+                "lodash.escape": {
+                  "version": "2.4.1",
+                  "resolved": "https://registry.npmmirror.com/lodash.escape/-/lodash.escape-2.4.1.tgz",
+                  "integrity": "sha512-PiEStyvZ8gz37qBE+HqME1Yc/ewb/59AMOu8pG7Ztani86foPTxgzckQvMdphmXPY6V5f20Ex/CaNBqHG4/ycQ==",
+                  "extraneous": true,
+                  "requires": {
+                    "lodash._escapehtmlchar": "~2.4.1",
+                    "lodash._reunescapedhtml": "~2.4.1",
+                    "lodash.keys": "~2.4.1"
+                  }
+                },
+                "lodash.keys": {
+                  "version": "2.4.1",
+                  "resolved": "https://registry.npmmirror.com/lodash.keys/-/lodash.keys-2.4.1.tgz",
+                  "integrity": "sha512-ZpJhwvUXHSNL5wYd1RM6CUa2ZuqorG9ngoJ9Ix5Cce+uX7I5O/E06FCJdhSZ33b5dVyeQDnIlWH7B2s5uByZ7g==",
+                  "extraneous": true,
+                  "requires": {
+                    "lodash._isnative": "~2.4.1",
+                    "lodash._shimkeys": "~2.4.1",
+                    "lodash.isobject": "~2.4.1"
+                  }
+                },
+                "lodash.template": {
+                  "version": "2.4.1",
+                  "resolved": "https://registry.npmmirror.com/lodash.template/-/lodash.template-2.4.1.tgz",
+                  "integrity": "sha512-5yLOQwlS69xbaez3g9dA1i0GMAj8pLDHp8lhA4V7M1vRam1lqD76f0jg5EV+65frbqrXo1WH9ZfKalfYBzJ5yQ==",
+                  "extraneous": true,
+                  "requires": {
+                    "lodash._escapestringchar": "~2.4.1",
+                    "lodash._reinterpolate": "~2.4.1",
+                    "lodash.defaults": "~2.4.1",
+                    "lodash.escape": "~2.4.1",
+                    "lodash.keys": "~2.4.1",
+                    "lodash.templatesettings": "~2.4.1",
+                    "lodash.values": "~2.4.1"
+                  }
+                },
+                "lodash.templatesettings": {
+                  "version": "2.4.1",
+                  "resolved": "https://registry.npmmirror.com/lodash.templatesettings/-/lodash.templatesettings-2.4.1.tgz",
+                  "integrity": "sha512-vY3QQ7GxbeLe8XfTvoYDbaMHO5iyTDJS1KIZrxp00PRMmyBKr8yEcObHSl2ppYTwd8MgqPXAarTvLA14hx8ffw==",
+                  "extraneous": true,
+                  "requires": {
+                    "lodash._reinterpolate": "~2.4.1",
+                    "lodash.escape": "~2.4.1"
+                  }
+                },
+                "minimist": {
+                  "version": "0.2.4",
+                  "resolved": "https://registry.npmmirror.com/minimist/-/minimist-0.2.4.tgz",
+                  "integrity": "sha512-Pkrrm8NjyQ8yVt8Am9M+yUt74zE3iokhzbG1bFVNjLB92vwM71hf40RkEsryg98BujhVOncKm/C1xROxZ030LQ==",
+                  "extraneous": true
+                },
+                "strip-ansi": {
+                  "version": "0.3.0",
+                  "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-0.3.0.tgz",
+                  "integrity": "sha512-DerhZL7j6i6/nEnVG0qViKXI0OKouvvpsAiaj7c+LfqZZZxdwZtv8+UiA/w4VUJpT8UzX0pR1dcHOii1GbmruQ==",
+                  "extraneous": true,
+                  "requires": {
+                    "ansi-regex": "^0.2.1"
+                  }
+                },
+                "supports-color": {
+                  "version": "0.2.0",
+                  "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-0.2.0.tgz",
+                  "integrity": "sha512-tdCZ28MnM7k7cJDJc7Eq80A9CsRFAAOZUy41npOZCs++qSjfIy7o5Rh46CBk+Dk5FbKJ33X3Tqg4YrV07N5RaA==",
+                  "extraneous": true
+                },
+                "through2": {
+                  "version": "0.4.2",
+                  "resolved": "https://registry.npmmirror.com/through2/-/through2-0.4.2.tgz",
+                  "integrity": "sha512-45Llu+EwHKtAZYTPPVn3XZHBgakWMN3rokhEv5hu596XP+cNgplMg+Gj+1nmAvj+L0K7+N49zBKx5rah5u0QIQ==",
+                  "extraneous": true,
+                  "requires": {
+                    "readable-stream": "~1.0.17",
+                    "xtend": "~2.1.1"
+                  },
+                  "dependencies": {
+                    "readable-stream": {
+                      "version": "1.0.34",
+                      "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-1.0.34.tgz",
+                      "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==",
+                      "extraneous": true,
+                      "requires": {
+                        "core-util-is": "~1.0.0",
+                        "inherits": "~2.0.1",
+                        "isarray": "0.0.1",
+                        "string_decoder": "~0.10.x"
+                      }
+                    },
+                    "xtend": {
+                      "version": "2.1.2",
+                      "resolved": "https://registry.npmmirror.com/xtend/-/xtend-2.1.2.tgz",
+                      "integrity": "sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ==",
+                      "extraneous": true,
+                      "requires": {
+                        "object-keys": "~0.4.0"
+                      }
+                    }
+                  }
+                },
+                "vinyl": {
+                  "version": "0.2.3",
+                  "resolved": "https://registry.npmmirror.com/vinyl/-/vinyl-0.2.3.tgz",
+                  "integrity": "sha512-4gFk9xrecazOTuFKcUYrE1TjHSYL63dio72D+q0d1mHF51FEcxTT2RHFpHbN5TNJgmPYHuVsBdhvXEOCDcytSA==",
+                  "extraneous": true,
+                  "requires": {
+                    "clone-stats": "~0.0.1"
+                  }
+                },
+                "xtend": {
+                  "version": "3.0.0",
+                  "resolved": "https://registry.npmmirror.com/xtend/-/xtend-3.0.0.tgz",
+                  "integrity": "sha512-sp/sT9OALMjRW1fKDlPeuSZlDQpkqReA0pyJukniWbTGoEKefHxhGJynE3PNhUMlcM8qWIjPwecwCw4LArS5Eg==",
+                  "extraneous": true
+                }
+              }
+            },
+            "gulp-header": {
+              "version": "https://registry.npmmirror.com/gulp-header/-/gulp-header-1.8.12.tgz",
+              "integrity": "sha512-lh9HLdb53sC7XIZOYzTXM4lFuXElv3EVkSDhsd7DoJBj7hm+Ni7D3qYbb+Rr8DuM8nRanBvkVO9d7askreXGnQ==",
+              "extraneous": true,
+              "requires": {
+                "concat-with-sourcemaps": "*",
+                "lodash.template": "^4.4.0",
+                "through2": "^2.0.0"
+              },
+              "dependencies": {
+                "lodash.template": {
+                  "version": "4.5.0",
+                  "resolved": "https://registry.npmmirror.com/lodash.template/-/lodash.template-4.5.0.tgz",
+                  "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==",
+                  "extraneous": true,
+                  "requires": {
+                    "lodash._reinterpolate": "^3.0.0",
+                    "lodash.templatesettings": "^4.0.0"
+                  }
+                },
+                "lodash.templatesettings": {
+                  "version": "4.2.0",
+                  "resolved": "https://registry.npmmirror.com/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz",
+                  "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==",
+                  "extraneous": true,
+                  "requires": {
+                    "lodash._reinterpolate": "^3.0.0"
+                  }
+                }
+              }
+            },
+            "gulp-mocha": {
+              "version": "https://registry.npmmirror.com/gulp-mocha/-/gulp-mocha-3.0.1.tgz",
+              "integrity": "sha512-0q7tFwJrNBOkpQLs8kxRWlANRRaLVFPpoRaHlp8JTwMqhC25K4FrZbKpt14HDkJXDnH4Bpb8Hrk2VTDAtOpPvg==",
+              "extraneous": true,
+              "requires": {
+                "gulp-util": "^3.0.0",
+                "mocha": "^3.0.0",
+                "plur": "^2.1.0",
+                "req-cwd": "^1.0.1",
+                "temp": "^0.8.3",
+                "through": "^2.3.4"
+              }
+            },
+            "gulp-mocha-phantomjs": {
+              "version": "https://registry.npmmirror.com/gulp-mocha-phantomjs/-/gulp-mocha-phantomjs-0.12.2.tgz",
+              "integrity": "sha512-FlJv4kxbKmzgQrbl6NYWXnS/C6HbAtQCWIGdar21eIVYytFzx/wMiDeH6xyIigaDugAN18NC2uj6kd9rjI1hVQ==",
+              "extraneous": true,
+              "requires": {
+                "gulp-util": "^3.0.7",
+                "mocha-phantomjs-core": "^2.0.0",
+                "phantomjs-prebuilt": "^2.1.4",
+                "through2": "^2.0.1"
+              }
+            },
+            "gulp-rename": {
+              "version": "https://registry.npmmirror.com/gulp-rename/-/gulp-rename-1.4.0.tgz",
+              "integrity": "sha512-swzbIGb/arEoFK89tPY58vg3Ok1bw+d35PfUNwWqdo7KM4jkmuGA78JiDNqR+JeZFaeeHnRg9N7aihX3YPmsyg==",
+              "extraneous": true
+            },
+            "gulp-uglify": {
+              "version": "https://registry.npmmirror.com/gulp-uglify/-/gulp-uglify-2.1.2.tgz",
+              "integrity": "sha512-a/3Qp5NDQC7iHY7w0DUP78sMtKTMjLF/9uvTJR9W2FANV8xPhxmbPeHscm+XZmsE2KWZu2u5wuGTDCoODQf9Ow==",
+              "extraneous": true,
+              "requires": {
+                "gulplog": "^1.0.0",
+                "has-gulplog": "^0.1.0",
+                "lodash": "^4.13.1",
+                "make-error-cause": "^1.1.1",
+                "through2": "^2.0.0",
+                "uglify-js": "~2.8.10",
+                "uglify-save-license": "^0.4.1",
+                "vinyl-sourcemaps-apply": "^0.2.0"
+              },
+              "dependencies": {
+                "lodash": {
+                  "version": "4.17.21",
+                  "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz",
+                  "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
+                  "extraneous": true
+                },
+                "uglify-js": {
+                  "version": "2.8.29",
+                  "resolved": "https://registry.npmmirror.com/uglify-js/-/uglify-js-2.8.29.tgz",
+                  "integrity": "sha512-qLq/4y2pjcU3vhlhseXGGJ7VbFO4pBANu0kwl8VCa9KEI0V8VfZIx2Fy3w01iSTA/pGwKZSmu/+I4etLNDdt5w==",
+                  "extraneous": true,
+                  "requires": {
+                    "source-map": "~0.5.1",
+                    "uglify-to-browserify": "~1.0.0",
+                    "yargs": "~3.10.0"
+                  }
+                },
+                "yargs": {
+                  "version": "3.10.0",
+                  "resolved": "https://registry.npmmirror.com/yargs/-/yargs-3.10.0.tgz",
+                  "integrity": "sha512-QFzUah88GAGy9lyDKGBqZdkYApt63rCXYBGYnEP4xDJPXNqXXnBDACnbrXnViV6jRSqAePwrATi2i8mfYm4L1A==",
+                  "extraneous": true,
+                  "requires": {
+                    "camelcase": "^1.0.2",
+                    "cliui": "^2.1.0",
+                    "decamelize": "^1.0.0",
+                    "window-size": "0.1.0"
+                  }
+                }
+              }
+            },
+            "gulp-util": {
+              "version": "3.0.8",
+              "resolved": "https://registry.npmmirror.com/gulp-util/-/gulp-util-3.0.8.tgz",
+              "integrity": "sha512-q5oWPc12lwSFS9h/4VIjG+1NuNDlJ48ywV2JKItY4Ycc/n1fXJeYPVQsfu5ZrhQi7FGSDBalwUCLar/GyHXKGw==",
+              "extraneous": true,
+              "requires": {
+                "array-differ": "^1.0.0",
+                "array-uniq": "^1.0.2",
+                "beeper": "^1.0.0",
+                "chalk": "^1.0.0",
+                "dateformat": "^2.0.0",
+                "fancy-log": "^1.1.0",
+                "gulplog": "^1.0.0",
+                "has-gulplog": "^0.1.0",
+                "lodash._reescape": "^3.0.0",
+                "lodash._reevaluate": "^3.0.0",
+                "lodash._reinterpolate": "^3.0.0",
+                "lodash.template": "^3.0.0",
+                "minimist": "^1.1.0",
+                "multipipe": "^0.1.2",
+                "object-assign": "^3.0.0",
+                "replace-ext": "0.0.1",
+                "through2": "^2.0.0",
+                "vinyl": "^0.5.0"
+              }
+            },
+            "gulplog": {
+              "version": "1.0.0",
+              "resolved": "https://registry.npmmirror.com/gulplog/-/gulplog-1.0.0.tgz",
+              "integrity": "sha512-hm6N8nrm3Y08jXie48jsC55eCZz9mnb4OirAStEk2deqeyhXU3C1otDVh+ccttMuc1sBi6RX6ZJ720hs9RCvgw==",
+              "extraneous": true,
+              "requires": {
+                "glogg": "^1.0.0"
+              }
+            },
+            "har-schema": {
+              "version": "2.0.0",
+              "resolved": "https://registry.npmmirror.com/har-schema/-/har-schema-2.0.0.tgz",
+              "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==",
+              "extraneous": true
+            },
+            "har-validator": {
+              "version": "5.1.5",
+              "resolved": "https://registry.npmmirror.com/har-validator/-/har-validator-5.1.5.tgz",
+              "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
+              "extraneous": true,
+              "requires": {
+                "ajv": "^6.12.3",
+                "har-schema": "^2.0.0"
+              }
+            },
+            "has": {
+              "version": "1.0.3",
+              "resolved": "https://registry.npmmirror.com/has/-/has-1.0.3.tgz",
+              "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+              "extraneous": true,
+              "requires": {
+                "function-bind": "^1.1.1"
+              }
+            },
+            "has-ansi": {
+              "version": "2.0.0",
+              "resolved": "https://registry.npmmirror.com/has-ansi/-/has-ansi-2.0.0.tgz",
+              "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==",
+              "extraneous": true,
+              "requires": {
+                "ansi-regex": "^2.0.0"
+              }
+            },
+            "has-flag": {
+              "version": "1.0.0",
+              "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-1.0.0.tgz",
+              "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==",
+              "extraneous": true
+            },
+            "has-gulplog": {
+              "version": "0.1.0",
+              "resolved": "https://registry.npmmirror.com/has-gulplog/-/has-gulplog-0.1.0.tgz",
+              "integrity": "sha512-+F4GzLjwHNNDEAJW2DC1xXfEoPkRDmUdJ7CBYw4MpqtDwOnqdImJl7GWlpqx+Wko6//J8uKTnIe4wZSv7yCqmw==",
+              "extraneous": true,
+              "requires": {
+                "sparkles": "^1.0.0"
+              }
+            },
+            "has-value": {
+              "version": "1.0.0",
+              "resolved": "https://registry.npmmirror.com/has-value/-/has-value-1.0.0.tgz",
+              "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==",
+              "extraneous": true,
+              "requires": {
+                "get-value": "^2.0.6",
+                "has-values": "^1.0.0",
+                "isobject": "^3.0.0"
+              }
+            },
+            "has-values": {
+              "version": "1.0.0",
+              "resolved": "https://registry.npmmirror.com/has-values/-/has-values-1.0.0.tgz",
+              "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==",
+              "extraneous": true,
+              "requires": {
+                "is-number": "^3.0.0",
+                "kind-of": "^4.0.0"
+              },
+              "dependencies": {
+                "kind-of": {
+                  "version": "4.0.0",
+                  "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-4.0.0.tgz",
+                  "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==",
+                  "extraneous": true,
+                  "requires": {
+                    "is-buffer": "^1.1.5"
+                  }
+                }
+              }
+            },
+            "hasha": {
+              "version": "2.2.0",
+              "resolved": "https://registry.npmmirror.com/hasha/-/hasha-2.2.0.tgz",
+              "integrity": "sha512-jZ38TU/EBiGKrmyTNNZgnvCZHNowiRI4+w/I9noMlekHTZH3KyGgvJLmhSgykeAQ9j2SYPDosM0Bg3wHfzibAQ==",
+              "extraneous": true,
+              "requires": {
+                "is-stream": "^1.0.1",
+                "pinkie-promise": "^2.0.0"
+              }
+            },
+            "he": {
+              "version": "1.1.1",
+              "resolved": "https://registry.npmmirror.com/he/-/he-1.1.1.tgz",
+              "integrity": "sha512-z/GDPjlRMNOa2XJiB4em8wJpuuBfrFOlYKTZxtpkdr1uPdibHI8rYA3MY0KDObpVyaes0e/aunid/t88ZI2EKA==",
+              "extraneous": true
+            },
+            "homedir-polyfill": {
+              "version": "1.0.3",
+              "resolved": "https://registry.npmmirror.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz",
+              "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==",
+              "extraneous": true,
+              "requires": {
+                "parse-passwd": "^1.0.0"
+              }
+            },
+            "hosted-git-info": {
+              "version": "2.8.9",
+              "resolved": "https://registry.npmmirror.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
+              "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==",
+              "extraneous": true
+            },
+            "http-browserify": {
+              "version": "1.3.2",
+              "resolved": "https://registry.npmmirror.com/http-browserify/-/http-browserify-1.3.2.tgz",
+              "integrity": "sha512-RVXRJV5BchDT1obHNo0lCrso0hL56fpjDGknM8Z5OWvZQysZY7pHM5shsmnKyTLLdKNou6sJ1p5a7zo/BLF95g==",
+              "extraneous": true,
+              "requires": {
+                "Base64": "~0.2.0",
+                "inherits": "~2.0.1"
+              }
+            },
+            "http-signature": {
+              "version": "1.2.0",
+              "resolved": "https://registry.npmmirror.com/http-signature/-/http-signature-1.2.0.tgz",
+              "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==",
+              "extraneous": true,
+              "requires": {
+                "assert-plus": "^1.0.0",
+                "jsprim": "^1.2.2",
+                "sshpk": "^1.7.0"
+              }
+            },
+            "https-browserify": {
+              "version": "0.0.1",
+              "resolved": "https://registry.npmmirror.com/https-browserify/-/https-browserify-0.0.1.tgz",
+              "integrity": "sha512-EjDQFbgJr1vDD/175UJeSX3ncQ3+RUnCL5NkthQGHvF4VNHlzTy8ifJfTqz47qiPRqaFH58+CbuG3x51WuB1XQ==",
+              "extraneous": true
+            },
+            "ieee754": {
+              "version": "1.1.13",
+              "resolved": "https://registry.npmmirror.com/ieee754/-/ieee754-1.1.13.tgz",
+              "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==",
+              "extraneous": true
+            },
+            "indent-string": {
+              "version": "2.1.0",
+              "resolved": "https://registry.npmmirror.com/indent-string/-/indent-string-2.1.0.tgz",
+              "integrity": "sha512-aqwDFWSgSgfRaEwao5lg5KEcVd/2a+D1rvoG7NdilmYz0NwRk6StWpWdz/Hpk34MKPpx7s8XxUqimfcQK6gGlg==",
+              "extraneous": true,
+              "requires": {
+                "repeating": "^2.0.0"
+              }
+            },
+            "indexof": {
+              "version": "0.0.1",
+              "resolved": "https://registry.npmmirror.com/indexof/-/indexof-0.0.1.tgz",
+              "integrity": "sha512-i0G7hLJ1z0DE8dsqJa2rycj9dBmNKgXBvotXtZYXakU9oivfB9Uj2ZBC27qqef2U58/ZLwalxa1X/RDCdkHtVg==",
+              "extraneous": true
+            },
+            "inflight": {
+              "version": "1.0.6",
+              "resolved": "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz",
+              "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+              "extraneous": true,
+              "requires": {
+                "once": "^1.3.0",
+                "wrappy": "1"
+              }
+            },
+            "inherits": {
+              "version": "2.0.4",
+              "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz",
+              "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+              "extraneous": true
+            },
+            "ini": {
+              "version": "1.3.8",
+              "resolved": "https://registry.npmmirror.com/ini/-/ini-1.3.8.tgz",
+              "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
+              "extraneous": true
+            },
+            "inline-source-map": {
+              "version": "0.3.1",
+              "resolved": "https://registry.npmmirror.com/inline-source-map/-/inline-source-map-0.3.1.tgz",
+              "integrity": "sha512-RNlldBXZ7BBcVm3HjXIXiwKxih1lnuKbzeLBRDSB/qaqk8/g4JEZBjxpBQMhqEthQyGv7ycu8r/8PKGgBdIqrA==",
+              "extraneous": true,
+              "requires": {
+                "source-map": "~0.3.0"
+              },
+              "dependencies": {
+                "source-map": {
+                  "version": "0.3.0",
+                  "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.3.0.tgz",
+                  "integrity": "sha512-jz8leTIGS8+qJywWiO9mKza0hJxexdeIYXhDHw9avTQcXSNAGk3hiiRMpmI2Qf9dOrZDrDpgH9VNefzuacWC9A==",
+                  "extraneous": true,
+                  "requires": {
+                    "amdefine": ">=0.0.4"
+                  }
+                }
+              }
+            },
+            "insert-module-globals": {
+              "version": "6.0.0",
+              "resolved": "https://registry.npmmirror.com/insert-module-globals/-/insert-module-globals-6.0.0.tgz",
+              "integrity": "sha512-4enFV8Caao6e6ezxe6/2JrLjwLka7adyvyOM39Lird3Z8aOboAY+uCs/RSbwSbVVhzZF/OQMw4h/5KbOB+eo2w==",
+              "extraneous": true,
+              "requires": {
+                "concat-stream": "~1.4.1",
+                "JSONStream": "~0.7.1",
+                "lexical-scope": "~1.1.0",
+                "process": "~0.6.0",
+                "through": "~2.3.4",
+                "xtend": "^3.0.0"
+              },
+              "dependencies": {
+                "process": {
+                  "version": "0.6.0",
+                  "resolved": "https://registry.npmmirror.com/process/-/process-0.6.0.tgz",
+                  "integrity": "sha512-wKdRDRIisD/dfTBK678QFFEwi1oI5Q8U4JCu4lJSRZn7QlTilsXXlE/JytTY5xA8bAIADkwXaU8Vt6zE8ClzVw==",
+                  "extraneous": true
+                },
+                "xtend": {
+                  "version": "3.0.0",
+                  "resolved": "https://registry.npmmirror.com/xtend/-/xtend-3.0.0.tgz",
+                  "integrity": "sha512-sp/sT9OALMjRW1fKDlPeuSZlDQpkqReA0pyJukniWbTGoEKefHxhGJynE3PNhUMlcM8qWIjPwecwCw4LArS5Eg==",
+                  "extraneous": true
+                }
+              }
+            },
+            "interpret": {
+              "version": "1.4.0",
+              "resolved": "https://registry.npmmirror.com/interpret/-/interpret-1.4.0.tgz",
+              "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==",
+              "extraneous": true
+            },
+            "irregular-plurals": {
+              "version": "1.4.0",
+              "resolved": "https://registry.npmmirror.com/irregular-plurals/-/irregular-plurals-1.4.0.tgz",
+              "integrity": "sha512-kniTIJmaZYiwa17eTtWIfm0K342seyugl6vuC8DiiyiRAJWAVlLkqGCI0Im0neo0TkXw+pRcKaBPRdcKHnQJ6Q==",
+              "extraneous": true
+            },
+            "is-absolute": {
+              "version": "1.0.0",
+              "resolved": "https://registry.npmmirror.com/is-absolute/-/is-absolute-1.0.0.tgz",
+              "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==",
+              "extraneous": true,
+              "requires": {
+                "is-relative": "^1.0.0",
+                "is-windows": "^1.0.1"
+              }
+            },
+            "is-accessor-descriptor": {
+              "version": "0.1.6",
+              "resolved": "https://registry.npmmirror.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+              "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==",
+              "extraneous": true,
+              "requires": {
+                "kind-of": "^3.0.2"
+              },
+              "dependencies": {
+                "kind-of": {
+                  "version": "3.2.2",
+                  "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz",
+                  "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+                  "extraneous": true,
+                  "requires": {
+                    "is-buffer": "^1.1.5"
+                  }
+                }
+              }
+            },
+            "is-arrayish": {
+              "version": "0.2.1",
+              "resolved": "https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.2.1.tgz",
+              "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
+              "extraneous": true
+            },
+            "is-buffer": {
+              "version": "1.1.6",
+              "resolved": "https://registry.npmmirror.com/is-buffer/-/is-buffer-1.1.6.tgz",
+              "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
+              "extraneous": true
+            },
+            "is-core-module": {
+              "version": "2.12.1",
+              "resolved": "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.12.1.tgz",
+              "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==",
+              "extraneous": true,
+              "requires": {
+                "has": "^1.0.3"
+              }
+            },
+            "is-data-descriptor": {
+              "version": "0.1.4",
+              "resolved": "https://registry.npmmirror.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+              "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==",
+              "extraneous": true,
+              "requires": {
+                "kind-of": "^3.0.2"
+              },
+              "dependencies": {
+                "kind-of": {
+                  "version": "3.2.2",
+                  "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz",
+                  "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+                  "extraneous": true,
+                  "requires": {
+                    "is-buffer": "^1.1.5"
+                  }
+                }
+              }
+            },
+            "is-descriptor": {
+              "version": "0.1.6",
+              "resolved": "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-0.1.6.tgz",
+              "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+              "extraneous": true,
+              "requires": {
+                "is-accessor-descriptor": "^0.1.6",
+                "is-data-descriptor": "^0.1.4",
+                "kind-of": "^5.0.0"
+              },
+              "dependencies": {
+                "kind-of": {
+                  "version": "5.1.0",
+                  "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-5.1.0.tgz",
+                  "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
+                  "extraneous": true
+                }
+              }
+            },
+            "is-extendable": {
+              "version": "0.1.1",
+              "resolved": "https://registry.npmmirror.com/is-extendable/-/is-extendable-0.1.1.tgz",
+              "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+              "extraneous": true
+            },
+            "is-extglob": {
+              "version": "2.1.1",
+              "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz",
+              "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+              "extraneous": true
+            },
+            "is-finite": {
+              "version": "1.1.0",
+              "resolved": "https://registry.npmmirror.com/is-finite/-/is-finite-1.1.0.tgz",
+              "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==",
+              "extraneous": true
+            },
+            "is-glob": {
+              "version": "3.1.0",
+              "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-3.1.0.tgz",
+              "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==",
+              "extraneous": true,
+              "requires": {
+                "is-extglob": "^2.1.0"
+              }
+            },
+            "is-module": {
+              "version": "1.0.0",
+              "resolved": "https://registry.npmmirror.com/is-module/-/is-module-1.0.0.tgz",
+              "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==",
+              "extraneous": true
+            },
+            "is-number": {
+              "version": "3.0.0",
+              "resolved": "https://registry.npmmirror.com/is-number/-/is-number-3.0.0.tgz",
+              "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==",
+              "extraneous": true,
+              "requires": {
+                "kind-of": "^3.0.2"
+              },
+              "dependencies": {
+                "kind-of": {
+                  "version": "3.2.2",
+                  "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz",
+                  "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+                  "extraneous": true,
+                  "requires": {
+                    "is-buffer": "^1.1.5"
+                  }
+                }
+              }
+            },
+            "is-plain-object": {
+              "version": "2.0.4",
+              "resolved": "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-2.0.4.tgz",
+              "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+              "extraneous": true,
+              "requires": {
+                "isobject": "^3.0.1"
+              }
+            },
+            "is-relative": {
+              "version": "1.0.0",
+              "resolved": "https://registry.npmmirror.com/is-relative/-/is-relative-1.0.0.tgz",
+              "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==",
+              "extraneous": true,
+              "requires": {
+                "is-unc-path": "^1.0.0"
+              }
+            },
+            "is-stream": {
+              "version": "1.1.0",
+              "resolved": "https://registry.npmmirror.com/is-stream/-/is-stream-1.1.0.tgz",
+              "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==",
+              "extraneous": true
+            },
+            "is-typedarray": {
+              "version": "1.0.0",
+              "resolved": "https://registry.npmmirror.com/is-typedarray/-/is-typedarray-1.0.0.tgz",
+              "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==",
+              "extraneous": true
+            },
+            "is-unc-path": {
+              "version": "1.0.0",
+              "resolved": "https://registry.npmmirror.com/is-unc-path/-/is-unc-path-1.0.0.tgz",
+              "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==",
+              "extraneous": true,
+              "requires": {
+                "unc-path-regex": "^0.1.2"
+              }
+            },
+            "is-utf8": {
+              "version": "0.2.1",
+              "resolved": "https://registry.npmmirror.com/is-utf8/-/is-utf8-0.2.1.tgz",
+              "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==",
+              "extraneous": true
+            },
+            "is-windows": {
+              "version": "1.0.2",
+              "resolved": "https://registry.npmmirror.com/is-windows/-/is-windows-1.0.2.tgz",
+              "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
+              "extraneous": true
+            },
+            "isarray": {
+              "version": "0.0.1",
+              "resolved": "https://registry.npmmirror.com/isarray/-/isarray-0.0.1.tgz",
+              "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==",
+              "extraneous": true
+            },
+            "isexe": {
+              "version": "2.0.0",
+              "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz",
+              "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+              "extraneous": true
+            },
+            "isobject": {
+              "version": "3.0.1",
+              "resolved": "https://registry.npmmirror.com/isobject/-/isobject-3.0.1.tgz",
+              "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==",
+              "extraneous": true
+            },
+            "isstream": {
+              "version": "0.1.2",
+              "resolved": "https://registry.npmmirror.com/isstream/-/isstream-0.1.2.tgz",
+              "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==",
+              "extraneous": true
+            },
+            "jsbn": {
+              "version": "0.1.1",
+              "resolved": "https://registry.npmmirror.com/jsbn/-/jsbn-0.1.1.tgz",
+              "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==",
+              "extraneous": true
+            },
+            "json-schema": {
+              "version": "0.4.0",
+              "resolved": "https://registry.npmmirror.com/json-schema/-/json-schema-0.4.0.tgz",
+              "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==",
+              "extraneous": true
+            },
+            "json-schema-traverse": {
+              "version": "0.4.1",
+              "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+              "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+              "extraneous": true
+            },
+            "json-stringify-safe": {
+              "version": "5.0.1",
+              "resolved": "https://registry.npmmirror.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+              "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==",
+              "extraneous": true
+            },
+            "json3": {
+              "version": "3.3.2",
+              "resolved": "https://registry.npmmirror.com/json3/-/json3-3.3.2.tgz",
+              "integrity": "sha512-I5YLeauH3rIaE99EE++UeH2M2gSYo8/2TqDac7oZEH6D/DSQ4Woa628Qrfj1X9/OY5Mk5VvIDQaKCDchXaKrmA==",
+              "extraneous": true
+            },
+            "jsonfile": {
+              "version": "2.4.0",
+              "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-2.4.0.tgz",
+              "integrity": "sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==",
+              "extraneous": true,
+              "requires": {
+                "graceful-fs": "^4.1.6"
+              }
+            },
+            "jsonparse": {
+              "version": "0.0.5",
+              "resolved": "https://registry.npmmirror.com/jsonparse/-/jsonparse-0.0.5.tgz",
+              "integrity": "sha512-fw7Q/8gFR8iSekUi9I+HqWIap6mywuoe7hQIg3buTVjuZgALKj4HAmm0X6f+TaL4c9NJbvyFQdaI2ppr5p6dnQ==",
+              "extraneous": true
+            },
+            "JSONStream": {
+              "version": "0.7.4",
+              "resolved": "https://registry.npmmirror.com/JSONStream/-/JSONStream-0.7.4.tgz",
+              "integrity": "sha512-hVgF0Ox1AtvxJmpwzb2dOEUz2ms1J8DZVbqKUSIGSyPBPy0MuxCJsQxj8y5dadTzsjI+T4TpyyhXORPdz15m9w==",
+              "extraneous": true,
+              "requires": {
+                "jsonparse": "0.0.5",
+                "through": ">=2.2.7 <3"
+              }
+            },
+            "jsprim": {
+              "version": "1.4.2",
+              "resolved": "https://registry.npmmirror.com/jsprim/-/jsprim-1.4.2.tgz",
+              "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==",
+              "extraneous": true,
+              "requires": {
+                "assert-plus": "1.0.0",
+                "extsprintf": "1.3.0",
+                "json-schema": "0.4.0",
+                "verror": "1.10.0"
+              }
+            },
+            "kew": {
+              "version": "0.7.0",
+              "resolved": "https://registry.npmmirror.com/kew/-/kew-0.7.0.tgz",
+              "integrity": "sha512-IG6nm0+QtAMdXt9KvbgbGdvY50RSrw+U4sGZg+KlrSKPJEwVE5JVoI3d7RWfSMdBQneRheeAOj3lIjX5VL/9RQ==",
+              "extraneous": true
+            },
+            "kind-of": {
+              "version": "6.0.3",
+              "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-6.0.3.tgz",
+              "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
+              "extraneous": true
+            },
+            "klaw": {
+              "version": "1.3.1",
+              "resolved": "https://registry.npmmirror.com/klaw/-/klaw-1.3.1.tgz",
+              "integrity": "sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw==",
+              "extraneous": true,
+              "requires": {
+                "graceful-fs": "^4.1.9"
+              }
+            },
+            "lazy-cache": {
+              "version": "1.0.4",
+              "resolved": "https://registry.npmmirror.com/lazy-cache/-/lazy-cache-1.0.4.tgz",
+              "integrity": "sha512-RE2g0b5VGZsOCFOCgP7omTRYFqydmZkBwl5oNnQ1lDYC57uyO9KqNnNVxT7COSHTxrRCWVcAVOcbjk+tvh/rgQ==",
+              "extraneous": true
+            },
+            "lexical-scope": {
+              "version": "1.1.1",
+              "resolved": "https://registry.npmmirror.com/lexical-scope/-/lexical-scope-1.1.1.tgz",
+              "integrity": "sha512-g7yj6l+qIPeVUruqnF1WQ7D4naBvMMY5+1a4B8l7AbJVHGb93AdEB7nk9uVciwFo+Y+SxKW1ZmEXjTuuZEiyYQ==",
+              "extraneous": true,
+              "requires": {
+                "astw": "^2.0.0"
+              }
+            },
+            "liftoff": {
+              "version": "2.5.0",
+              "resolved": "https://registry.npmmirror.com/liftoff/-/liftoff-2.5.0.tgz",
+              "integrity": "sha512-01zfGFqfORP1CGmZZP2Zn51zsqz4RltDi0RDOhbGoLYdUT5Lw+I2gX6QdwXhPITF6hPOHEOp+At6/L24hIg9WQ==",
+              "extraneous": true,
+              "requires": {
+                "extend": "^3.0.0",
+                "findup-sync": "^2.0.0",
+                "fined": "^1.0.1",
+                "flagged-respawn": "^1.0.0",
+                "is-plain-object": "^2.0.4",
+                "object.map": "^1.0.0",
+                "rechoir": "^0.6.2",
+                "resolve": "^1.1.7"
+              }
+            },
+            "load-json-file": {
+              "version": "1.1.0",
+              "resolved": "https://registry.npmmirror.com/load-json-file/-/load-json-file-1.1.0.tgz",
+              "integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==",
+              "extraneous": true,
+              "requires": {
+                "graceful-fs": "^4.1.2",
+                "parse-json": "^2.2.0",
+                "pify": "^2.0.0",
+                "pinkie-promise": "^2.0.0",
+                "strip-bom": "^2.0.0"
+              },
+              "dependencies": {
+                "strip-bom": {
+                  "version": "2.0.0",
+                  "resolved": "https://registry.npmmirror.com/strip-bom/-/strip-bom-2.0.0.tgz",
+                  "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==",
+                  "extraneous": true,
+                  "requires": {
+                    "is-utf8": "^0.2.0"
+                  }
+                }
+              }
+            },
+            "lodash": {
+              "version": "1.0.2",
+              "resolved": "https://registry.npmmirror.com/lodash/-/lodash-1.0.2.tgz",
+              "integrity": "sha512-0VSEDVec/Me2eATuoiQd8IjyBMMX0fahob8YJ96V1go2RjvCk1m1GxmtfXn8RNSaLaTtop7fsuhhu9oLk3hUgA==",
+              "extraneous": true
+            },
+            "lodash._baseassign": {
+              "version": "3.2.0",
+              "resolved": "https://registry.npmmirror.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz",
+              "integrity": "sha512-t3N26QR2IdSN+gqSy9Ds9pBu/J1EAFEshKlUHpJG3rvyJOYgcELIxcIeKKfZk7sjOz11cFfzJRsyFry/JyabJQ==",
+              "extraneous": true,
+              "requires": {
+                "lodash._basecopy": "^3.0.0",
+                "lodash.keys": "^3.0.0"
+              }
+            },
+            "lodash._basecopy": {
+              "version": "3.0.1",
+              "resolved": "https://registry.npmmirror.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz",
+              "integrity": "sha512-rFR6Vpm4HeCK1WPGvjZSJ+7yik8d8PVUdCJx5rT2pogG4Ve/2ZS7kfmO5l5T2o5V2mqlNIfSF5MZlr1+xOoYQQ==",
+              "extraneous": true
+            },
+            "lodash._basecreate": {
+              "version": "3.0.3",
+              "resolved": "https://registry.npmmirror.com/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz",
+              "integrity": "sha512-EDem6C9iQpn7fxnGdmhXmqYGjCkStmDXT4AeyB2Ph8WKbglg4aJZczNkQglj+zWXcOEEkViK8THuV2JvugW47g==",
+              "extraneous": true
+            },
+            "lodash._basetostring": {
+              "version": "3.0.1",
+              "resolved": "https://registry.npmmirror.com/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz",
+              "integrity": "sha512-mTzAr1aNAv/i7W43vOR/uD/aJ4ngbtsRaCubp2BfZhlGU/eORUjg/7F6X0orNMdv33JOrdgGybtvMN/po3EWrA==",
+              "extraneous": true
+            },
+            "lodash._basevalues": {
+              "version": "3.0.0",
+              "resolved": "https://registry.npmmirror.com/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz",
+              "integrity": "sha512-H94wl5P13uEqlCg7OcNNhMQ8KvWSIyqXzOPusRgHC9DK3o54P6P3xtbXlVbRABG4q5gSmp7EDdJ0MSuW9HX6Mg==",
+              "extraneous": true
+            },
+            "lodash._escapehtmlchar": {
+              "version": "2.4.1",
+              "resolved": "https://registry.npmmirror.com/lodash._escapehtmlchar/-/lodash._escapehtmlchar-2.4.1.tgz",
+              "integrity": "sha512-eHm2t2Lg476lq5v4FVmm3B5mCaRlDyTE8fnMfPCEq2o46G4au0qNXIKh7YWhjprm1zgSMLcMSs1XHMgkw02PbQ==",
+              "extraneous": true,
+              "requires": {
+                "lodash._htmlescapes": "~2.4.1"
+              }
+            },
+            "lodash._escapestringchar": {
+              "version": "2.4.1",
+              "resolved": "https://registry.npmmirror.com/lodash._escapestringchar/-/lodash._escapestringchar-2.4.1.tgz",
+              "integrity": "sha512-iZ6Os4iipaE43pr9SBks+UpZgAjJgRC+lGf7onEoByMr1+Nagr1fmR7zCM6Q4RGMB/V3a57raEN0XZl7Uub3/g==",
+              "extraneous": true
+            },
+            "lodash._getnative": {
+              "version": "3.9.1",
+              "resolved": "https://registry.npmmirror.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz",
+              "integrity": "sha512-RrL9VxMEPyDMHOd9uFbvMe8X55X16/cGM5IgOKgRElQZutpX89iS6vwl64duTV1/16w5JY7tuFNXqoekmh1EmA==",
+              "extraneous": true
+            },
+            "lodash._htmlescapes": {
+              "version": "2.4.1",
+              "resolved": "https://registry.npmmirror.com/lodash._htmlescapes/-/lodash._htmlescapes-2.4.1.tgz",
+              "integrity": "sha512-g79hNmMOBVyV+4oKIHM7MWy9Awtk3yqf0Twlawr6f+CmG44nTwBh9I5XiLUnk39KTfYoDBpS66glQGgQCnFIuA==",
+              "extraneous": true
+            },
+            "lodash._isiterateecall": {
+              "version": "3.0.9",
+              "resolved": "https://registry.npmmirror.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz",
+              "integrity": "sha512-De+ZbrMu6eThFti/CSzhRvTKMgQToLxbij58LMfM8JnYDNSOjkjTCIaa8ixglOeGh2nyPlakbt5bJWJ7gvpYlQ==",
+              "extraneous": true
+            },
+            "lodash._isnative": {
+              "version": "2.4.1",
+              "resolved": "https://registry.npmmirror.com/lodash._isnative/-/lodash._isnative-2.4.1.tgz",
+              "integrity": "sha512-BOlKGKNHhCHswGOWtmVb5zBygyxN7EmTuzVOSQI6QSoGhG+kvv71gICFS1TBpnqvT1n53txK8CDK3u5D2/GZxQ==",
+              "extraneous": true
+            },
+            "lodash._objecttypes": {
+              "version": "2.4.1",
+              "resolved": "https://registry.npmmirror.com/lodash._objecttypes/-/lodash._objecttypes-2.4.1.tgz",
+              "integrity": "sha512-XpqGh1e7hhkOzftBfWE7zt+Yn9mVHFkDhicVttvKLsoCMLVVL+xTQjfjB4X4vtznauxv0QZ5ZAeqjvat0dh62Q==",
+              "extraneous": true
+            },
+            "lodash._reescape": {
+              "version": "3.0.0",
+              "resolved": "https://registry.npmmirror.com/lodash._reescape/-/lodash._reescape-3.0.0.tgz",
+              "integrity": "sha512-Sjlavm5y+FUVIF3vF3B75GyXrzsfYV8Dlv3L4mEpuB9leg8N6yf/7rU06iLPx9fY0Mv3khVp9p7Dx0mGV6V5OQ==",
+              "extraneous": true
+            },
+            "lodash._reevaluate": {
+              "version": "3.0.0",
+              "resolved": "https://registry.npmmirror.com/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz",
+              "integrity": "sha512-OrPwdDc65iJiBeUe5n/LIjd7Viy99bKwDdk7Z5ljfZg0uFRFlfQaCy9tZ4YMAag9WAZmlVpe1iZrkIMMSMHD3w==",
+              "extraneous": true
+            },
+            "lodash._reinterpolate": {
+              "version": "3.0.0",
+              "resolved": "https://registry.npmmirror.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
+              "integrity": "sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==",
+              "extraneous": true
+            },
+            "lodash._reunescapedhtml": {
+              "version": "2.4.1",
+              "resolved": "https://registry.npmmirror.com/lodash._reunescapedhtml/-/lodash._reunescapedhtml-2.4.1.tgz",
+              "integrity": "sha512-CfmZRU1Mk4E/5jh+Wu8lc7tuc3VkuwWZYVIgdPDH9NRSHgiL4Or3AA4JCIpgrkVzHOM+jKu2OMkAVquruhRHDQ==",
+              "extraneous": true,
+              "requires": {
+                "lodash._htmlescapes": "~2.4.1",
+                "lodash.keys": "~2.4.1"
+              },
+              "dependencies": {
+                "lodash.keys": {
+                  "version": "2.4.1",
+                  "resolved": "https://registry.npmmirror.com/lodash.keys/-/lodash.keys-2.4.1.tgz",
+                  "integrity": "sha512-ZpJhwvUXHSNL5wYd1RM6CUa2ZuqorG9ngoJ9Ix5Cce+uX7I5O/E06FCJdhSZ33b5dVyeQDnIlWH7B2s5uByZ7g==",
+                  "extraneous": true,
+                  "requires": {
+                    "lodash._isnative": "~2.4.1",
+                    "lodash._shimkeys": "~2.4.1",
+                    "lodash.isobject": "~2.4.1"
+                  }
+                }
+              }
+            },
+            "lodash._root": {
+              "version": "3.0.1",
+              "resolved": "https://registry.npmmirror.com/lodash._root/-/lodash._root-3.0.1.tgz",
+              "integrity": "sha512-O0pWuFSK6x4EXhM1dhZ8gchNtG7JMqBtrHdoUFUWXD7dJnNSUze1GuyQr5sOs0aCvgGeI3o/OJW8f4ca7FDxmQ==",
+              "extraneous": true
+            },
+            "lodash._shimkeys": {
+              "version": "2.4.1",
+              "resolved": "https://registry.npmmirror.com/lodash._shimkeys/-/lodash._shimkeys-2.4.1.tgz",
+              "integrity": "sha512-lBrglYxLD/6KAJ8IEa5Lg+YHgNAL7FyKqXg4XOUI+Du/vtniLs1ZqS+yHNKPkK54waAgkdUnDOYaWf+rv4B+AA==",
+              "extraneous": true,
+              "requires": {
+                "lodash._objecttypes": "~2.4.1"
+              }
+            },
+            "lodash.create": {
+              "version": "3.1.1",
+              "resolved": "https://registry.npmmirror.com/lodash.create/-/lodash.create-3.1.1.tgz",
+              "integrity": "sha512-IUfOYwDEbI8JbhW6psW+Ig01BOVK67dTSCUAbS58M0HBkPcAv/jHuxD+oJVP2tUCo3H9L6f/8GM6rxwY+oc7/w==",
+              "extraneous": true,
+              "requires": {
+                "lodash._baseassign": "^3.0.0",
+                "lodash._basecreate": "^3.0.0",
+                "lodash._isiterateecall": "^3.0.0"
+              }
+            },
+            "lodash.defaults": {
+              "version": "2.4.1",
+              "resolved": "https://registry.npmmirror.com/lodash.defaults/-/lodash.defaults-2.4.1.tgz",
+              "integrity": "sha512-5wTIPWwGGr07JFysAZB8+7JB2NjJKXDIwogSaRX5zED85zyUAQwtOqUk8AsJkkigUcL3akbHYXd5+BPtTGQPZw==",
+              "extraneous": true,
+              "requires": {
+                "lodash._objecttypes": "~2.4.1",
+                "lodash.keys": "~2.4.1"
+              },
+              "dependencies": {
+                "lodash.keys": {
+                  "version": "2.4.1",
+                  "resolved": "https://registry.npmmirror.com/lodash.keys/-/lodash.keys-2.4.1.tgz",
+                  "integrity": "sha512-ZpJhwvUXHSNL5wYd1RM6CUa2ZuqorG9ngoJ9Ix5Cce+uX7I5O/E06FCJdhSZ33b5dVyeQDnIlWH7B2s5uByZ7g==",
+                  "extraneous": true,
+                  "requires": {
+                    "lodash._isnative": "~2.4.1",
+                    "lodash._shimkeys": "~2.4.1",
+                    "lodash.isobject": "~2.4.1"
+                  }
+                }
+              }
+            },
+            "lodash.escape": {
+              "version": "3.2.0",
+              "resolved": "https://registry.npmmirror.com/lodash.escape/-/lodash.escape-3.2.0.tgz",
+              "integrity": "sha512-n1PZMXgaaDWZDSvuNZ/8XOcYO2hOKDqZel5adtR30VKQAtoWs/5AOeFA0vPV8moiPzlqe7F4cP2tzpFewQyelQ==",
+              "extraneous": true,
+              "requires": {
+                "lodash._root": "^3.0.0"
+              }
+            },
+            "lodash.isarguments": {
+              "version": "3.1.0",
+              "resolved": "https://registry.npmmirror.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz",
+              "integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==",
+              "extraneous": true
+            },
+            "lodash.isarray": {
+              "version": "3.0.4",
+              "resolved": "https://registry.npmmirror.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz",
+              "integrity": "sha512-JwObCrNJuT0Nnbuecmqr5DgtuBppuCvGD9lxjFpAzwnVtdGoDQ1zig+5W8k5/6Gcn0gZ3936HDAlGd28i7sOGQ==",
+              "extraneous": true
+            },
+            "lodash.isobject": {
+              "version": "2.4.1",
+              "resolved": "https://registry.npmmirror.com/lodash.isobject/-/lodash.isobject-2.4.1.tgz",
+              "integrity": "sha512-sTebg2a1PoicYEZXD5PBdQcTlIJ6hUslrlWr7iV0O7n+i4596s2NQ9I5CaZ5FbXSfya/9WQsrYLANUJv9paYVA==",
+              "extraneous": true,
+              "requires": {
+                "lodash._objecttypes": "~2.4.1"
+              }
+            },
+            "lodash.keys": {
+              "version": "3.1.2",
+              "resolved": "https://registry.npmmirror.com/lodash.keys/-/lodash.keys-3.1.2.tgz",
+              "integrity": "sha512-CuBsapFjcubOGMn3VD+24HOAPxM79tH+V6ivJL3CHYjtrawauDJHUk//Yew9Hvc6e9rbCrURGk8z6PC+8WJBfQ==",
+              "extraneous": true,
+              "requires": {
+                "lodash._getnative": "^3.0.0",
+                "lodash.isarguments": "^3.0.0",
+                "lodash.isarray": "^3.0.0"
+              }
+            },
+            "lodash.restparam": {
+              "version": "3.6.1",
+              "resolved": "https://registry.npmmirror.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz",
+              "integrity": "sha512-L4/arjjuq4noiUJpt3yS6KIKDtJwNe2fIYgMqyYYKoeIfV1iEqvPwhCx23o+R9dzouGihDAPN1dTIRWa7zk8tw==",
+              "extraneous": true
+            },
+            "lodash.template": {
+              "version": "3.6.2",
+              "resolved": "https://registry.npmmirror.com/lodash.template/-/lodash.template-3.6.2.tgz",
+              "integrity": "sha512-0B4Y53I0OgHUJkt+7RmlDFWKjVAI/YUpWNiL9GQz5ORDr4ttgfQGo+phBWKFLJbBdtOwgMuUkdOHOnPg45jKmQ==",
+              "extraneous": true,
+              "requires": {
+                "lodash._basecopy": "^3.0.0",
+                "lodash._basetostring": "^3.0.0",
+                "lodash._basevalues": "^3.0.0",
+                "lodash._isiterateecall": "^3.0.0",
+                "lodash._reinterpolate": "^3.0.0",
+                "lodash.escape": "^3.0.0",
+                "lodash.keys": "^3.0.0",
+                "lodash.restparam": "^3.0.0",
+                "lodash.templatesettings": "^3.0.0"
+              }
+            },
+            "lodash.templatesettings": {
+              "version": "3.1.1",
+              "resolved": "https://registry.npmmirror.com/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz",
+              "integrity": "sha512-TcrlEr31tDYnWkHFWDCV3dHYroKEXpJZ2YJYvJdhN+y4AkWMDZ5I4I8XDtUKqSAyG81N7w+I1mFEJtcED+tGqQ==",
+              "extraneous": true,
+              "requires": {
+                "lodash._reinterpolate": "^3.0.0",
+                "lodash.escape": "^3.0.0"
+              }
+            },
+            "lodash.values": {
+              "version": "2.4.1",
+              "resolved": "https://registry.npmmirror.com/lodash.values/-/lodash.values-2.4.1.tgz",
+              "integrity": "sha512-fQwubKvj2Nox2gy6YnjFm8C1I6MIlzKUtBB+Pj7JGtloGqDDL5CPRr4DUUFWPwXWwAl2k3f4C3Aw8H1qAPB9ww==",
+              "extraneous": true,
+              "requires": {
+                "lodash.keys": "~2.4.1"
+              },
+              "dependencies": {
+                "lodash.keys": {
+                  "version": "2.4.1",
+                  "resolved": "https://registry.npmmirror.com/lodash.keys/-/lodash.keys-2.4.1.tgz",
+                  "integrity": "sha512-ZpJhwvUXHSNL5wYd1RM6CUa2ZuqorG9ngoJ9Ix5Cce+uX7I5O/E06FCJdhSZ33b5dVyeQDnIlWH7B2s5uByZ7g==",
+                  "extraneous": true,
+                  "requires": {
+                    "lodash._isnative": "~2.4.1",
+                    "lodash._shimkeys": "~2.4.1",
+                    "lodash.isobject": "~2.4.1"
+                  }
+                }
+              }
+            },
+            "longest": {
+              "version": "1.0.1",
+              "resolved": "https://registry.npmmirror.com/longest/-/longest-1.0.1.tgz",
+              "integrity": "sha512-k+yt5n3l48JU4k8ftnKG6V7u32wyH2NfKzeMto9F/QRE0amxy/LayxwlvjjkZEIzqR+19IrtFO8p5kB9QaYUFg==",
+              "extraneous": true
+            },
+            "loud-rejection": {
+              "version": "1.6.0",
+              "resolved": "https://registry.npmmirror.com/loud-rejection/-/loud-rejection-1.6.0.tgz",
+              "integrity": "sha512-RPNliZOFkqFumDhvYqOaNY4Uz9oJM2K9tC6JWsJJsNdhuONW4LQHRBpb0qf4pJApVffI5N39SwzWZJuEhfd7eQ==",
+              "extraneous": true,
+              "requires": {
+                "currently-unhandled": "^0.4.1",
+                "signal-exit": "^3.0.0"
+              }
+            },
+            "lru-cache": {
+              "version": "2.7.3",
+              "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-2.7.3.tgz",
+              "integrity": "sha512-WpibWJ60c3AgAz8a2iYErDrcT2C7OmKnsWhIcHOjkUHFjkXncJhtLxNSqUmxRxRunpb5I8Vprd7aNSd2NtksJQ==",
+              "extraneous": true
+            },
+            "magic-string": {
+              "version": "0.25.9",
+              "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz",
+              "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==",
+              "extraneous": true,
+              "requires": {
+                "sourcemap-codec": "^1.4.8"
+              }
+            },
+            "make-error": {
+              "version": "1.3.6",
+              "resolved": "https://registry.npmmirror.com/make-error/-/make-error-1.3.6.tgz",
+              "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
+              "extraneous": true
+            },
+            "make-error-cause": {
+              "version": "1.2.2",
+              "resolved": "https://registry.npmmirror.com/make-error-cause/-/make-error-cause-1.2.2.tgz",
+              "integrity": "sha512-4TO2Y3HkBnis4c0dxhAgD/jprySYLACf7nwN6V0HAHDx59g12WlRpUmFy1bRHamjGUEEBrEvCq6SUpsEE2lhUg==",
+              "extraneous": true,
+              "requires": {
+                "make-error": "^1.2.0"
+              }
+            },
+            "make-iterator": {
+              "version": "1.0.1",
+              "resolved": "https://registry.npmmirror.com/make-iterator/-/make-iterator-1.0.1.tgz",
+              "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==",
+              "extraneous": true,
+              "requires": {
+                "kind-of": "^6.0.2"
+              }
+            },
+            "map-cache": {
+              "version": "0.2.2",
+              "resolved": "https://registry.npmmirror.com/map-cache/-/map-cache-0.2.2.tgz",
+              "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==",
+              "extraneous": true
+            },
+            "map-obj": {
+              "version": "1.0.1",
+              "resolved": "https://registry.npmmirror.com/map-obj/-/map-obj-1.0.1.tgz",
+              "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==",
+              "extraneous": true
+            },
+            "map-visit": {
+              "version": "1.0.0",
+              "resolved": "https://registry.npmmirror.com/map-visit/-/map-visit-1.0.0.tgz",
+              "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==",
+              "extraneous": true,
+              "requires": {
+                "object-visit": "^1.0.0"
+              }
+            },
+            "meow": {
+              "version": "3.7.0",
+              "resolved": "https://registry.npmmirror.com/meow/-/meow-3.7.0.tgz",
+              "integrity": "sha512-TNdwZs0skRlpPpCUK25StC4VH+tP5GgeY1HQOOGP+lQ2xtdkN2VtT/5tiX9k3IWpkBPV9b3LsAWXn4GGi/PrSA==",
+              "extraneous": true,
+              "requires": {
+                "camelcase-keys": "^2.0.0",
+                "decamelize": "^1.1.2",
+                "loud-rejection": "^1.0.0",
+                "map-obj": "^1.0.1",
+                "minimist": "^1.1.3",
+                "normalize-package-data": "^2.3.4",
+                "object-assign": "^4.0.1",
+                "read-pkg-up": "^1.0.1",
+                "redent": "^1.0.0",
+                "trim-newlines": "^1.0.0"
+              },
+              "dependencies": {
+                "object-assign": {
+                  "version": "4.1.1",
+                  "resolved": "https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz",
+                  "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
+                  "extraneous": true
+                }
+              }
+            },
+            "micromatch": {
+              "version": "3.1.10",
+              "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-3.1.10.tgz",
+              "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+              "extraneous": true,
+              "requires": {
+                "arr-diff": "^4.0.0",
+                "array-unique": "^0.3.2",
+                "braces": "^2.3.1",
+                "define-property": "^2.0.2",
+                "extend-shallow": "^3.0.2",
+                "extglob": "^2.0.4",
+                "fragment-cache": "^0.2.1",
+                "kind-of": "^6.0.2",
+                "nanomatch": "^1.2.9",
+                "object.pick": "^1.3.0",
+                "regex-not": "^1.0.0",
+                "snapdragon": "^0.8.1",
+                "to-regex": "^3.0.2"
+              }
+            },
+            "mime-db": {
+              "version": "1.52.0",
+              "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz",
+              "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+              "extraneous": true
+            },
+            "mime-types": {
+              "version": "2.1.35",
+              "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz",
+              "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+              "extraneous": true,
+              "requires": {
+                "mime-db": "1.52.0"
+              }
+            },
+            "minimatch": {
+              "version": "2.0.10",
+              "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-2.0.10.tgz",
+              "integrity": "sha512-jQo6o1qSVLEWaw3l+bwYA2X0uLuK2KjNh2wjgO7Q/9UJnXr1Q3yQKR8BI0/Bt/rPg75e6SMW4hW/6cBHVTZUjA==",
+              "extraneous": true,
+              "requires": {
+                "brace-expansion": "^1.0.0"
+              }
+            },
+            "minimist": {
+              "version": "1.2.8",
+              "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz",
+              "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+              "extraneous": true
+            },
+            "mixin-deep": {
+              "version": "1.3.2",
+              "resolved": "https://registry.npmmirror.com/mixin-deep/-/mixin-deep-1.3.2.tgz",
+              "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
+              "extraneous": true,
+              "requires": {
+                "for-in": "^1.0.2",
+                "is-extendable": "^1.0.1"
+              },
+              "dependencies": {
+                "is-extendable": {
+                  "version": "1.0.1",
+                  "resolved": "https://registry.npmmirror.com/is-extendable/-/is-extendable-1.0.1.tgz",
+                  "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+                  "extraneous": true,
+                  "requires": {
+                    "is-plain-object": "^2.0.4"
+                  }
+                }
+              }
+            },
+            "mkdirp": {
+              "version": "0.5.6",
+              "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.6.tgz",
+              "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
+              "extraneous": true,
+              "requires": {
+                "minimist": "^1.2.6"
+              }
+            },
+            "mocha": {
+              "version": "3.5.3",
+              "resolved": "https://registry.npmmirror.com/mocha/-/mocha-3.5.3.tgz",
+              "integrity": "sha512-/6na001MJWEtYxHOV1WLfsmR4YIynkUEhBwzsb+fk2qmQ3iqsi258l/Q2MWHJMImAcNpZ8DEdYAK72NHoIQ9Eg==",
+              "extraneous": true,
+              "requires": {
+                "browser-stdout": "1.3.0",
+                "commander": "2.9.0",
+                "debug": "2.6.8",
+                "diff": "3.2.0",
+                "escape-string-regexp": "1.0.5",
+                "glob": "7.1.1",
+                "growl": "1.9.2",
+                "he": "1.1.1",
+                "json3": "3.3.2",
+                "lodash.create": "3.1.1",
+                "mkdirp": "0.5.1",
+                "supports-color": "3.1.2"
+              },
+              "dependencies": {
+                "debug": {
+                  "version": "2.6.8",
+                  "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.8.tgz",
+                  "integrity": "sha512-E22fsyWPt/lr4/UgQLt/pXqerGMDsanhbnmqIS3VAXuDi1v3IpiwXe2oncEIondHSBuPDWRoK/pMjlvi8FuOXQ==",
+                  "extraneous": true,
+                  "requires": {
+                    "ms": "2.0.0"
+                  }
+                },
+                "glob": {
+                  "version": "7.1.1",
+                  "resolved": "https://registry.npmmirror.com/glob/-/glob-7.1.1.tgz",
+                  "integrity": "sha512-mRyN/EsN2SyNhKWykF3eEGhDpeNplMWaW18Bmh76tnOqk5TbELAVwFAYOCmKVssOYFrYvvLMguiA+NXO3ZTuVA==",
+                  "extraneous": true,
+                  "requires": {
+                    "fs.realpath": "^1.0.0",
+                    "inflight": "^1.0.4",
+                    "inherits": "2",
+                    "minimatch": "^3.0.2",
+                    "once": "^1.3.0",
+                    "path-is-absolute": "^1.0.0"
+                  }
+                },
+                "minimatch": {
+                  "version": "3.1.2",
+                  "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz",
+                  "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+                  "extraneous": true,
+                  "requires": {
+                    "brace-expansion": "^1.1.7"
+                  }
+                },
+                "minimist": {
+                  "version": "0.0.8",
+                  "resolved": "https://registry.npmmirror.com/minimist/-/minimist-0.0.8.tgz",
+                  "integrity": "sha512-miQKw5Hv4NS1Psg2517mV4e4dYNaO3++hjAvLOAzKqZ61rH8NS1SK+vbfBWZ5PY/Me/bEWhUwqMghEW5Fb9T7Q==",
+                  "extraneous": true
+                },
+                "mkdirp": {
+                  "version": "0.5.1",
+                  "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.1.tgz",
+                  "integrity": "sha512-SknJC52obPfGQPnjIkXbmA6+5H15E+fR+E4iR2oQ3zzCLbd7/ONua69R/Gw7AgkTLsRG+r5fzksYwWe1AgTyWA==",
+                  "extraneous": true,
+                  "requires": {
+                    "minimist": "0.0.8"
+                  }
+                },
+                "supports-color": {
+                  "version": "3.1.2",
+                  "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-3.1.2.tgz",
+                  "integrity": "sha512-F8dvPrZJtNzvDRX26eNXT4a7AecAvTGljmmnI39xEgSpbHKhQ7N0dO/NTxUExd0wuLHp4zbwYY7lvHq0aKpwrA==",
+                  "extraneous": true,
+                  "requires": {
+                    "has-flag": "^1.0.0"
+                  }
+                }
+              }
+            },
+            "mocha-phantomjs-core": {
+              "version": "2.1.2",
+              "resolved": "https://registry.npmmirror.com/mocha-phantomjs-core/-/mocha-phantomjs-core-2.1.2.tgz",
+              "integrity": "sha512-8n0UoVUWDd39qgGmfrvGgXV2A0dlYTJ15m+QIJp1vIL7elQb/+PwgOEFoCTFURiAfDOZSDyrb4o6BY9PhKGuAg==",
+              "extraneous": true
+            },
+            "module-deps": {
+              "version": "2.0.6",
+              "resolved": "https://registry.npmmirror.com/module-deps/-/module-deps-2.0.6.tgz",
+              "integrity": "sha512-k1pfAH9sicjEbMnj2fkorHZgwZ1PQ6OzgiYVq3jYtk/u7S8qkERjYXin+iY8FQSGdNAdqXGTHi7aHyGKBSSUng==",
+              "extraneous": true,
+              "requires": {
+                "browser-resolve": "~1.2.4",
+                "concat-stream": "~1.4.5",
+                "detective": "~3.1.0",
+                "duplexer2": "0.0.2",
+                "inherits": "~2.0.1",
+                "JSONStream": "~0.7.1",
+                "minimist": "~0.0.9",
+                "parents": "0.0.2",
+                "readable-stream": "^1.0.27-1",
+                "resolve": "~0.6.3",
+                "stream-combiner": "~0.1.0",
+                "through2": "~0.4.1"
+              },
+              "dependencies": {
+                "minimist": {
+                  "version": "0.0.10",
+                  "resolved": "https://registry.npmmirror.com/minimist/-/minimist-0.0.10.tgz",
+                  "integrity": "sha512-iotkTvxc+TwOm5Ieim8VnSNvCDjCK9S8G3scJ50ZthspSxa7jx50jkhYduuAtAjvfDUwSgOwf8+If99AlOEhyw==",
+                  "extraneous": true
+                },
+                "parents": {
+                  "version": "0.0.2",
+                  "resolved": "https://registry.npmmirror.com/parents/-/parents-0.0.2.tgz",
+                  "integrity": "sha512-yrIRMwRkp5H3d6X9f8Pohz4wtiHnn+KTccwE5kj0Q4Tx1i3FIeZCY7avrxVPcDt6Bm+8Mv0Me6yPLbhB+QNGOg==",
+                  "extraneous": true
+                },
+                "resolve": {
+                  "version": "0.6.3",
+                  "resolved": "https://registry.npmmirror.com/resolve/-/resolve-0.6.3.tgz",
+                  "integrity": "sha512-UHBY3viPlJKf85YijDUcikKX6tmF4SokIDp518ZDVT92JNDcG5uKIthaT/owt3Sar0lwtOafsQuwrg22/v2Dwg==",
+                  "extraneous": true
+                },
+                "stream-combiner": {
+                  "version": "0.1.0",
+                  "resolved": "https://registry.npmmirror.com/stream-combiner/-/stream-combiner-0.1.0.tgz",
+                  "integrity": "sha512-/RD3Tuc5XWyB2zLMO1kZlSUC7Pogi64BoYPDbAHEkFJNt5RKmRmsrEU3Kpr0hNxQ1p/KlUWBeJflr5zLtmdYGw==",
+                  "extraneous": true,
+                  "requires": {
+                    "duplexer": "~0.1.1",
+                    "through": "~2.3.4"
+                  }
+                },
+                "through2": {
+                  "version": "0.4.2",
+                  "resolved": "https://registry.npmmirror.com/through2/-/through2-0.4.2.tgz",
+                  "integrity": "sha512-45Llu+EwHKtAZYTPPVn3XZHBgakWMN3rokhEv5hu596XP+cNgplMg+Gj+1nmAvj+L0K7+N49zBKx5rah5u0QIQ==",
+                  "extraneous": true,
+                  "requires": {
+                    "readable-stream": "~1.0.17",
+                    "xtend": "~2.1.1"
+                  },
+                  "dependencies": {
+                    "readable-stream": {
+                      "version": "1.0.34",
+                      "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-1.0.34.tgz",
+                      "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==",
+                      "extraneous": true,
+                      "requires": {
+                        "core-util-is": "~1.0.0",
+                        "inherits": "~2.0.1",
+                        "isarray": "0.0.1",
+                        "string_decoder": "~0.10.x"
+                      }
+                    }
+                  }
+                },
+                "xtend": {
+                  "version": "2.1.2",
+                  "resolved": "https://registry.npmmirror.com/xtend/-/xtend-2.1.2.tgz",
+                  "integrity": "sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ==",
+                  "extraneous": true,
+                  "requires": {
+                    "object-keys": "~0.4.0"
+                  }
+                }
+              }
+            },
+            "ms": {
+              "version": "2.0.0",
+              "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz",
+              "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+              "extraneous": true
+            },
+            "multipipe": {
+              "version": "0.1.2",
+              "resolved": "https://registry.npmmirror.com/multipipe/-/multipipe-0.1.2.tgz",
+              "integrity": "sha512-7ZxrUybYv9NonoXgwoOqtStIu18D1c3eFZj27hqgf5kBrBF8Q+tE8V0MW8dKM5QLkQPh1JhhbKgHLY9kifov4Q==",
+              "extraneous": true,
+              "requires": {
+                "duplexer2": "0.0.2"
+              }
+            },
+            "nanomatch": {
+              "version": "1.2.13",
+              "resolved": "https://registry.npmmirror.com/nanomatch/-/nanomatch-1.2.13.tgz",
+              "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
+              "extraneous": true,
+              "requires": {
+                "arr-diff": "^4.0.0",
+                "array-unique": "^0.3.2",
+                "define-property": "^2.0.2",
+                "extend-shallow": "^3.0.2",
+                "fragment-cache": "^0.2.1",
+                "is-windows": "^1.0.2",
+                "kind-of": "^6.0.2",
+                "object.pick": "^1.3.0",
+                "regex-not": "^1.0.0",
+                "snapdragon": "^0.8.1",
+                "to-regex": "^3.0.1"
+              }
+            },
+            "natives": {
+              "version": "1.1.6",
+              "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.6.tgz",
+              "integrity": "sha512-6+TDFewD4yxY14ptjKaS63GVdtKiES1pTPyxn9Jb0rBqPMZ7VcCiooEhPNsr+mqHtMGxa/5c/HhcC4uPEUw/nA==",
+              "extraneous": true
+            },
+            "normalize-package-data": {
+              "version": "2.5.0",
+              "resolved": "https://registry.npmmirror.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
+              "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
+              "extraneous": true,
+              "requires": {
+                "hosted-git-info": "^2.1.4",
+                "resolve": "^1.10.0",
+                "semver": "2 || 3 || 4 || 5",
+                "validate-npm-package-license": "^3.0.1"
+              }
+            },
+            "oauth-sign": {
+              "version": "0.9.0",
+              "resolved": "https://registry.npmmirror.com/oauth-sign/-/oauth-sign-0.9.0.tgz",
+              "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
+              "extraneous": true
+            },
+            "object-assign": {
+              "version": "3.0.0",
+              "resolved": "https://registry.npmmirror.com/object-assign/-/object-assign-3.0.0.tgz",
+              "integrity": "sha512-jHP15vXVGeVh1HuaA2wY6lxk+whK/x4KBG88VXeRma7CCun7iGD5qPc4eYykQ9sdQvg8jkwFKsSxHln2ybW3xQ==",
+              "extraneous": true
+            },
+            "object-copy": {
+              "version": "0.1.0",
+              "resolved": "https://registry.npmmirror.com/object-copy/-/object-copy-0.1.0.tgz",
+              "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==",
+              "extraneous": true,
+              "requires": {
+                "copy-descriptor": "^0.1.0",
+                "define-property": "^0.2.5",
+                "kind-of": "^3.0.3"
+              },
+              "dependencies": {
+                "define-property": {
+                  "version": "0.2.5",
+                  "resolved": "https://registry.npmmirror.com/define-property/-/define-property-0.2.5.tgz",
+                  "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
+                  "extraneous": true,
+                  "requires": {
+                    "is-descriptor": "^0.1.0"
+                  }
+                },
+                "kind-of": {
+                  "version": "3.2.2",
+                  "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz",
+                  "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+                  "extraneous": true,
+                  "requires": {
+                    "is-buffer": "^1.1.5"
+                  }
+                }
+              }
+            },
+            "object-keys": {
+              "version": "0.4.0",
+              "resolved": "https://registry.npmmirror.com/object-keys/-/object-keys-0.4.0.tgz",
+              "integrity": "sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw==",
+              "extraneous": true
+            },
+            "object-visit": {
+              "version": "1.0.1",
+              "resolved": "https://registry.npmmirror.com/object-visit/-/object-visit-1.0.1.tgz",
+              "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==",
+              "extraneous": true,
+              "requires": {
+                "isobject": "^3.0.0"
+              }
+            },
+            "object.defaults": {
+              "version": "1.1.0",
+              "resolved": "https://registry.npmmirror.com/object.defaults/-/object.defaults-1.1.0.tgz",
+              "integrity": "sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==",
+              "extraneous": true,
+              "requires": {
+                "array-each": "^1.0.1",
+                "array-slice": "^1.0.0",
+                "for-own": "^1.0.0",
+                "isobject": "^3.0.0"
+              }
+            },
+            "object.map": {
+              "version": "1.0.1",
+              "resolved": "https://registry.npmmirror.com/object.map/-/object.map-1.0.1.tgz",
+              "integrity": "sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==",
+              "extraneous": true,
+              "requires": {
+                "for-own": "^1.0.0",
+                "make-iterator": "^1.0.0"
+              }
+            },
+            "object.pick": {
+              "version": "1.3.0",
+              "resolved": "https://registry.npmmirror.com/object.pick/-/object.pick-1.3.0.tgz",
+              "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==",
+              "extraneous": true,
+              "requires": {
+                "isobject": "^3.0.1"
+              }
+            },
+            "once": {
+              "version": "1.3.3",
+              "resolved": "https://registry.npmmirror.com/once/-/once-1.3.3.tgz",
+              "integrity": "sha512-6vaNInhu+CHxtONf3zw3vq4SP2DOQhjBvIa3rNcG0+P7eKWlYH6Peu7rHizSloRU2EwMz6GraLieis9Ac9+p1w==",
+              "extraneous": true,
+              "requires": {
+                "wrappy": "1"
+              }
+            },
+            "optimist": {
+              "version": "0.3.7",
+              "resolved": "https://registry.npmmirror.com/optimist/-/optimist-0.3.7.tgz",
+              "integrity": "sha512-TCx0dXQzVtSCg2OgY/bO9hjM9cV4XYx09TVK+s3+FhkjT6LovsLe+pPMzpWf+6yXK/hUizs2gUoTw3jHM0VaTQ==",
+              "extraneous": true,
+              "requires": {
+                "wordwrap": "~0.0.2"
+              }
+            },
+            "orchestrator": {
+              "version": "0.3.8",
+              "resolved": "https://registry.npmmirror.com/orchestrator/-/orchestrator-0.3.8.tgz",
+              "integrity": "sha512-DrQ43ngaJ0e36j2CHyoDoIg1K4zbc78GnTQESebK9vu6hj4W5/pvfSFO/kgM620Yd0YnhseSNYsLK3/SszZ5NQ==",
+              "extraneous": true,
+              "requires": {
+                "end-of-stream": "~0.1.5",
+                "sequencify": "~0.0.7",
+                "stream-consume": "~0.1.0"
+              }
+            },
+            "ordered-read-streams": {
+              "version": "0.1.0",
+              "resolved": "https://registry.npmmirror.com/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz",
+              "integrity": "sha512-PMX5ehiNri4+lgk9fl09xuPeciGmyPyVUSBwwPT4C/3EHGxoVf7UdgKDE3SLBD4pUDmlzrg1L1cK5igrp+Tyuw==",
+              "extraneous": true
+            },
+            "os-browserify": {
+              "version": "0.1.2",
+              "resolved": "https://registry.npmmirror.com/os-browserify/-/os-browserify-0.1.2.tgz",
+              "integrity": "sha512-aZicJZccvxWOZ0Bja2eAch2L8RIJWBuRYmM8Gwl/JjNtRltH0Itcz4eH/ESyuIWfse8cc93ZCf0XrzhXK2HEDA==",
+              "extraneous": true
+            },
+            "os-homedir": {
+              "version": "1.0.2",
+              "resolved": "https://registry.npmmirror.com/os-homedir/-/os-homedir-1.0.2.tgz",
+              "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==",
+              "extraneous": true
+            },
+            "pako": {
+              "version": "0.2.9",
+              "resolved": "https://registry.npmmirror.com/pako/-/pako-0.2.9.tgz",
+              "integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==",
+              "extraneous": true
+            },
+            "parents": {
+              "version": "0.0.3",
+              "resolved": "https://registry.npmmirror.com/parents/-/parents-0.0.3.tgz",
+              "integrity": "sha512-ASkdjFPS2nrxujzSBZGt8ZCKeG0/K2ZZVKveqXt7XGtXfu+ssnk4DQhnK91KRvt83f36LjfxOfwi0cv1+Re0eA==",
+              "extraneous": true,
+              "requires": {
+                "path-platform": "^0.0.1"
+              }
+            },
+            "parse-filepath": {
+              "version": "1.0.2",
+              "resolved": "https://registry.npmmirror.com/parse-filepath/-/parse-filepath-1.0.2.tgz",
+              "integrity": "sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==",
+              "extraneous": true,
+              "requires": {
+                "is-absolute": "^1.0.0",
+                "map-cache": "^0.2.0",
+                "path-root": "^0.1.1"
+              }
+            },
+            "parse-json": {
+              "version": "2.2.0",
+              "resolved": "https://registry.npmmirror.com/parse-json/-/parse-json-2.2.0.tgz",
+              "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==",
+              "extraneous": true,
+              "requires": {
+                "error-ex": "^1.2.0"
+              }
+            },
+            "parse-node-version": {
+              "version": "1.0.1",
+              "resolved": "https://registry.npmmirror.com/parse-node-version/-/parse-node-version-1.0.1.tgz",
+              "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==",
+              "extraneous": true
+            },
+            "parse-passwd": {
+              "version": "1.0.0",
+              "resolved": "https://registry.npmmirror.com/parse-passwd/-/parse-passwd-1.0.0.tgz",
+              "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==",
+              "extraneous": true
+            },
+            "pascalcase": {
+              "version": "0.1.1",
+              "resolved": "https://registry.npmmirror.com/pascalcase/-/pascalcase-0.1.1.tgz",
+              "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==",
+              "extraneous": true
+            },
+            "path-browserify": {
+              "version": "0.0.1",
+              "resolved": "https://registry.npmmirror.com/path-browserify/-/path-browserify-0.0.1.tgz",
+              "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==",
+              "extraneous": true
+            },
+            "path-exists": {
+              "version": "2.1.0",
+              "resolved": "https://registry.npmmirror.com/path-exists/-/path-exists-2.1.0.tgz",
+              "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==",
+              "extraneous": true,
+              "requires": {
+                "pinkie-promise": "^2.0.0"
+              }
+            },
+            "path-is-absolute": {
+              "version": "1.0.1",
+              "resolved": "https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+              "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
+              "extraneous": true
+            },
+            "path-parse": {
+              "version": "1.0.7",
+              "resolved": "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz",
+              "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+              "extraneous": true
+            },
+            "path-platform": {
+              "version": "0.0.1",
+              "resolved": "https://registry.npmmirror.com/path-platform/-/path-platform-0.0.1.tgz",
+              "integrity": "sha512-ydK1VKZFYwy0mT2JvimJfxt5z6Z6sjBbLfsFMoJczbwZ/ul0AjgpXLHinUzclf4/XYC8mtsWGuFERZ95Rnm8wA==",
+              "extraneous": true
+            },
+            "path-root": {
+              "version": "0.1.1",
+              "resolved": "https://registry.npmmirror.com/path-root/-/path-root-0.1.1.tgz",
+              "integrity": "sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==",
+              "extraneous": true,
+              "requires": {
+                "path-root-regex": "^0.1.0"
+              }
+            },
+            "path-root-regex": {
+              "version": "0.1.2",
+              "resolved": "https://registry.npmmirror.com/path-root-regex/-/path-root-regex-0.1.2.tgz",
+              "integrity": "sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==",
+              "extraneous": true
+            },
+            "path-type": {
+              "version": "1.1.0",
+              "resolved": "https://registry.npmmirror.com/path-type/-/path-type-1.1.0.tgz",
+              "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==",
+              "extraneous": true,
+              "requires": {
+                "graceful-fs": "^4.1.2",
+                "pify": "^2.0.0",
+                "pinkie-promise": "^2.0.0"
+              }
+            },
+            "pend": {
+              "version": "1.2.0",
+              "resolved": "https://registry.npmmirror.com/pend/-/pend-1.2.0.tgz",
+              "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==",
+              "extraneous": true
+            },
+            "performance-now": {
+              "version": "2.1.0",
+              "resolved": "https://registry.npmmirror.com/performance-now/-/performance-now-2.1.0.tgz",
+              "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==",
+              "extraneous": true
+            },
+            "phantomjs-prebuilt": {
+              "version": "2.1.16",
+              "resolved": "https://registry.npmmirror.com/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.16.tgz",
+              "integrity": "sha512-PIiRzBhW85xco2fuj41FmsyuYHKjKuXWmhjy3A/Y+CMpN/63TV+s9uzfVhsUwFe0G77xWtHBG8xmXf5BqEUEuQ==",
+              "extraneous": true,
+              "requires": {
+                "es6-promise": "^4.0.3",
+                "extract-zip": "^1.6.5",
+                "fs-extra": "^1.0.0",
+                "hasha": "^2.2.0",
+                "kew": "^0.7.0",
+                "progress": "^1.1.8",
+                "request": "^2.81.0",
+                "request-progress": "^2.0.1",
+                "which": "^1.2.10"
+              }
+            },
+            "pify": {
+              "version": "2.3.0",
+              "resolved": "https://registry.npmmirror.com/pify/-/pify-2.3.0.tgz",
+              "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
+              "extraneous": true
+            },
+            "pinkie": {
+              "version": "2.0.4",
+              "resolved": "https://registry.npmmirror.com/pinkie/-/pinkie-2.0.4.tgz",
+              "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==",
+              "extraneous": true
+            },
+            "pinkie-promise": {
+              "version": "2.0.1",
+              "resolved": "https://registry.npmmirror.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+              "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==",
+              "extraneous": true,
+              "requires": {
+                "pinkie": "^2.0.0"
+              }
+            },
+            "plur": {
+              "version": "2.1.2",
+              "resolved": "https://registry.npmmirror.com/plur/-/plur-2.1.2.tgz",
+              "integrity": "sha512-WhcHk576xg9y/iv6RWOuroZgsqvCbJN+XGvAypCJwLAYs2iWDp5LUmvaCdV6JR2O0SMBf8l6p7A94AyLCFVMlQ==",
+              "extraneous": true,
+              "requires": {
+                "irregular-plurals": "^1.0.0"
+              }
+            },
+            "posix-character-classes": {
+              "version": "0.1.1",
+              "resolved": "https://registry.npmmirror.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
+              "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==",
+              "extraneous": true
+            },
+            "pretty-hrtime": {
+              "version": "1.0.3",
+              "resolved": "https://registry.npmmirror.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz",
+              "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==",
+              "extraneous": true
+            },
+            "process": {
+              "version": "0.7.0",
+              "resolved": "https://registry.npmmirror.com/process/-/process-0.7.0.tgz",
+              "integrity": "sha512-zJYE4ZXy79hFghxwR6iYQfa6u6hU/790qdv0QKnU5RhUYYDmX0XwPGwGUARR4JGZcIiidlh3q+rjqUNEDlg7nw==",
+              "extraneous": true
+            },
+            "process-nextick-args": {
+              "version": "2.0.1",
+              "resolved": "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+              "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
+              "extraneous": true
+            },
+            "progress": {
+              "version": "1.1.8",
+              "resolved": "https://registry.npmmirror.com/progress/-/progress-1.1.8.tgz",
+              "integrity": "sha512-UdA8mJ4weIkUBO224tIarHzuHs4HuYiJvsuGT7j/SPQiUJVjYvNDBIPa0hAorduOfjGohB/qHWRa/lrrWX/mXw==",
+              "extraneous": true
+            },
+            "psl": {
+              "version": "1.9.0",
+              "resolved": "https://registry.npmmirror.com/psl/-/psl-1.9.0.tgz",
+              "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==",
+              "extraneous": true
+            },
+            "punycode": {
+              "version": "1.2.4",
+              "resolved": "https://registry.npmmirror.com/punycode/-/punycode-1.2.4.tgz",
+              "integrity": "sha512-h/vscxLPvI2l7k/0dFUKZ5I5TgMCJ/Pl+J6rw77PDuQM6UApf/GaRVkjv/YSm2k+fbp7Yw8dxsoe29DolT7h7w==",
+              "extraneous": true
+            },
+            "qs": {
+              "version": "6.5.3",
+              "resolved": "https://registry.npmmirror.com/qs/-/qs-6.5.3.tgz",
+              "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==",
+              "extraneous": true
+            },
+            "querystring": {
+              "version": "0.2.0",
+              "resolved": "https://registry.npmmirror.com/querystring/-/querystring-0.2.0.tgz",
+              "integrity": "sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==",
+              "extraneous": true
+            },
+            "querystring-es3": {
+              "version": "0.2.0",
+              "resolved": "https://registry.npmmirror.com/querystring-es3/-/querystring-es3-0.2.0.tgz",
+              "integrity": "sha512-YODXTP5RSWoSsx4Dyqql8/akWHprR7hQhIbp0STp7JRjWKxwR1vZtVtREXcI3qRh1Jsi5lm15Q/y0GO1OvxEIA==",
+              "extraneous": true
+            },
+            "read-pkg": {
+              "version": "1.1.0",
+              "resolved": "https://registry.npmmirror.com/read-pkg/-/read-pkg-1.1.0.tgz",
+              "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==",
+              "extraneous": true,
+              "requires": {
+                "load-json-file": "^1.0.0",
+                "normalize-package-data": "^2.3.2",
+                "path-type": "^1.0.0"
+              }
+            },
+            "read-pkg-up": {
+              "version": "1.0.1",
+              "resolved": "https://registry.npmmirror.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
+              "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==",
+              "extraneous": true,
+              "requires": {
+                "find-up": "^1.0.0",
+                "read-pkg": "^1.0.0"
+              }
+            },
+            "readable-stream": {
+              "version": "1.1.14",
+              "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-1.1.14.tgz",
+              "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==",
+              "extraneous": true,
+              "requires": {
+                "core-util-is": "~1.0.0",
+                "inherits": "~2.0.1",
+                "isarray": "0.0.1",
+                "string_decoder": "~0.10.x"
+              }
+            },
+            "rechoir": {
+              "version": "0.6.2",
+              "resolved": "https://registry.npmmirror.com/rechoir/-/rechoir-0.6.2.tgz",
+              "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==",
+              "extraneous": true,
+              "requires": {
+                "resolve": "^1.1.6"
+              }
+            },
+            "redent": {
+              "version": "1.0.0",
+              "resolved": "https://registry.npmmirror.com/redent/-/redent-1.0.0.tgz",
+              "integrity": "sha512-qtW5hKzGQZqKoh6JNSD+4lfitfPKGz42e6QwiRmPM5mmKtR0N41AbJRYu0xJi7nhOJ4WDgRkKvAk6tw4WIwR4g==",
+              "extraneous": true,
+              "requires": {
+                "indent-string": "^2.1.0",
+                "strip-indent": "^1.0.1"
+              }
+            },
+            "regex-not": {
+              "version": "1.0.2",
+              "resolved": "https://registry.npmmirror.com/regex-not/-/regex-not-1.0.2.tgz",
+              "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
+              "extraneous": true,
+              "requires": {
+                "extend-shallow": "^3.0.2",
+                "safe-regex": "^1.1.0"
+              }
+            },
+            "repeat-element": {
+              "version": "1.1.4",
+              "resolved": "https://registry.npmmirror.com/repeat-element/-/repeat-element-1.1.4.tgz",
+              "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==",
+              "extraneous": true
+            },
+            "repeat-string": {
+              "version": "1.6.1",
+              "resolved": "https://registry.npmmirror.com/repeat-string/-/repeat-string-1.6.1.tgz",
+              "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==",
+              "extraneous": true
+            },
+            "repeating": {
+              "version": "2.0.1",
+              "resolved": "https://registry.npmmirror.com/repeating/-/repeating-2.0.1.tgz",
+              "integrity": "sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A==",
+              "extraneous": true,
+              "requires": {
+                "is-finite": "^1.0.0"
+              }
+            },
+            "replace-ext": {
+              "version": "0.0.1",
+              "resolved": "https://registry.npmmirror.com/replace-ext/-/replace-ext-0.0.1.tgz",
+              "integrity": "sha512-AFBWBy9EVRTa/LhEcG8QDP3FvpwZqmvN2QFDuJswFeaVhWnZMp8q3E6Zd90SR04PlIwfGdyVjNyLPyen/ek5CQ==",
+              "extraneous": true
+            },
+            "req-cwd": {
+              "version": "1.0.1",
+              "resolved": "https://registry.npmmirror.com/req-cwd/-/req-cwd-1.0.1.tgz",
+              "integrity": "sha512-HiTYxFGOufW9XPjg3XP9cs9M2N4CUUNFbPkEDOU9whslwqL1ApcuLvHbzaX+7Jy77AjVDxnluS9YtZ0tPHr+sQ==",
+              "extraneous": true,
+              "requires": {
+                "req-from": "^1.0.1"
+              }
+            },
+            "req-from": {
+              "version": "1.0.1",
+              "resolved": "https://registry.npmmirror.com/req-from/-/req-from-1.0.1.tgz",
+              "integrity": "sha512-Ek4Uw4MlVg9p6bslygAlCZ6ICub9Jq4+xwapgFn0m5TOpspZNX/ZW676sojFTvwKk9zBESdMFkvZi4OjeNH6TQ==",
+              "extraneous": true,
+              "requires": {
+                "resolve-from": "^2.0.0"
+              }
+            },
+            "request": {
+              "version": "2.88.2",
+              "resolved": "https://registry.npmmirror.com/request/-/request-2.88.2.tgz",
+              "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
+              "extraneous": true,
+              "requires": {
+                "aws-sign2": "~0.7.0",
+                "aws4": "^1.8.0",
+                "caseless": "~0.12.0",
+                "combined-stream": "~1.0.6",
+                "extend": "~3.0.2",
+                "forever-agent": "~0.6.1",
+                "form-data": "~2.3.2",
+                "har-validator": "~5.1.3",
+                "http-signature": "~1.2.0",
+                "is-typedarray": "~1.0.0",
+                "isstream": "~0.1.2",
+                "json-stringify-safe": "~5.0.1",
+                "mime-types": "~2.1.19",
+                "oauth-sign": "~0.9.0",
+                "performance-now": "^2.1.0",
+                "qs": "~6.5.2",
+                "safe-buffer": "^5.1.2",
+                "tough-cookie": "~2.5.0",
+                "tunnel-agent": "^0.6.0",
+                "uuid": "^3.3.2"
+              }
+            },
+            "request-progress": {
+              "version": "2.0.1",
+              "resolved": "https://registry.npmmirror.com/request-progress/-/request-progress-2.0.1.tgz",
+              "integrity": "sha512-dxdraeZVUNEn9AvLrxkgB2k6buTlym71dJk1fk4v8j3Ou3RKNm07BcgbHdj2lLgYGfqX71F+awb1MR+tWPFJzA==",
+              "extraneous": true,
+              "requires": {
+                "throttleit": "^1.0.0"
+              }
+            },
+            "resolve": {
+              "version": "1.22.2",
+              "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.2.tgz",
+              "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==",
+              "extraneous": true,
+              "requires": {
+                "is-core-module": "^2.11.0",
+                "path-parse": "^1.0.7",
+                "supports-preserve-symlinks-flag": "^1.0.0"
+              }
+            },
+            "resolve-dir": {
+              "version": "1.0.1",
+              "resolved": "https://registry.npmmirror.com/resolve-dir/-/resolve-dir-1.0.1.tgz",
+              "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==",
+              "extraneous": true,
+              "requires": {
+                "expand-tilde": "^2.0.0",
+                "global-modules": "^1.0.0"
+              }
+            },
+            "resolve-from": {
+              "version": "2.0.0",
+              "resolved": "https://registry.npmmirror.com/resolve-from/-/resolve-from-2.0.0.tgz",
+              "integrity": "sha512-qpFcKaXsq8+oRoLilkwyc7zHGF5i9Q2/25NIgLQQ/+VVv9rU4qvr6nXVAw1DsnXJyQkZsR4Ytfbtg5ehfcUssQ==",
+              "extraneous": true
+            },
+            "resolve-url": {
+              "version": "0.2.1",
+              "resolved": "https://registry.npmmirror.com/resolve-url/-/resolve-url-0.2.1.tgz",
+              "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==",
+              "extraneous": true
+            },
+            "ret": {
+              "version": "0.1.15",
+              "resolved": "https://registry.npmmirror.com/ret/-/ret-0.1.15.tgz",
+              "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
+              "extraneous": true
+            },
+            "rfile": {
+              "version": "1.0.0",
+              "resolved": "https://registry.npmmirror.com/rfile/-/rfile-1.0.0.tgz",
+              "integrity": "sha512-aNeTpY8g6DYmqPvakau22B0SipQTskO8FtYXzn8qg4X4bN9ExIH8VAhq/L9w7N8HvESYeSSwk3e4GmW+rLLAxQ==",
+              "extraneous": true,
+              "requires": {
+                "callsite": "~1.0.0",
+                "resolve": "~0.3.0"
+              },
+              "dependencies": {
+                "resolve": {
+                  "version": "0.3.1",
+                  "resolved": "https://registry.npmmirror.com/resolve/-/resolve-0.3.1.tgz",
+                  "integrity": "sha512-mxx/I/wLjxtryDBtrrb0ZNzaYERVWaHpJ0W0Arm8N4l8b+jiX/U5yKcsj0zQpF9UuKN1uz80EUTOudON6OPuaQ==",
+                  "extraneous": true
+                }
+              }
+            },
+            "right-align": {
+              "version": "0.1.3",
+              "resolved": "https://registry.npmmirror.com/right-align/-/right-align-0.1.3.tgz",
+              "integrity": "sha512-yqINtL/G7vs2v+dFIZmFUDbnVyFUJFKd6gK22Kgo6R4jfJGFtisKyncWDDULgjfqf4ASQuIQyjJ7XZ+3aWpsAg==",
+              "extraneous": true,
+              "requires": {
+                "align-text": "^0.1.1"
+              }
+            },
+            "rimraf": {
+              "version": "2.6.3",
+              "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-2.6.3.tgz",
+              "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
+              "extraneous": true,
+              "requires": {
+                "glob": "^7.1.3"
+              },
+              "dependencies": {
+                "glob": {
+                  "version": "7.2.3",
+                  "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz",
+                  "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+                  "extraneous": true,
+                  "requires": {
+                    "fs.realpath": "^1.0.0",
+                    "inflight": "^1.0.4",
+                    "inherits": "2",
+                    "minimatch": "^3.1.1",
+                    "once": "^1.3.0",
+                    "path-is-absolute": "^1.0.0"
+                  }
+                },
+                "minimatch": {
+                  "version": "3.1.2",
+                  "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz",
+                  "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+                  "extraneous": true,
+                  "requires": {
+                    "brace-expansion": "^1.1.7"
+                  }
+                }
+              }
+            },
+            "rollup": {
+              "version": "https://registry.npmmirror.com/rollup/-/rollup-0.63.5.tgz",
+              "integrity": "sha512-dFf8LpUNzIj3oE0vCvobX6rqOzHzLBoblyFp+3znPbjiSmSvOoK2kMKx+Fv9jYduG1rvcCfCveSgEaQHjWRF6g==",
+              "extraneous": true,
+              "requires": {
+                "@types/estree": "0.0.39",
+                "@types/node": "*"
+              }
+            },
+            "rollup-plugin-commonjs": {
+              "version": "https://registry.npmmirror.com/rollup-plugin-commonjs/-/rollup-plugin-commonjs-9.3.4.tgz",
+              "integrity": "sha512-DTZOvRoiVIHHLFBCL4pFxOaJt8pagxsVldEXBOn6wl3/V21wVaj17HFfyzTsQUuou3sZL3lEJZVWKPFblJfI6w==",
+              "extraneous": true,
+              "requires": {
+                "estree-walker": "^0.6.0",
+                "magic-string": "^0.25.2",
+                "resolve": "^1.10.0",
+                "rollup-pluginutils": "^2.6.0"
+              }
+            },
+            "rollup-plugin-node-resolve": {
+              "version": "https://registry.npmmirror.com/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-3.4.0.tgz",
+              "integrity": "sha512-PJcd85dxfSBWih84ozRtBkB731OjXk0KnzN0oGp7WOWcarAFkVa71cV5hTJg2qpVsV2U8EUwrzHP3tvy9vS3qg==",
+              "extraneous": true,
+              "requires": {
+                "builtin-modules": "^2.0.0",
+                "is-module": "^1.0.0",
+                "resolve": "^1.1.6"
+              }
+            },
+            "rollup-pluginutils": {
+              "version": "2.8.2",
+              "resolved": "https://registry.npmmirror.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz",
+              "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==",
+              "extraneous": true,
+              "requires": {
+                "estree-walker": "^0.6.1"
+              }
+            },
+            "ruglify": {
+              "version": "1.0.0",
+              "resolved": "https://registry.npmmirror.com/ruglify/-/ruglify-1.0.0.tgz",
+              "integrity": "sha512-XfRj1YJdm/gnZNvmpQ5L+2YGRHglDGMPgJRbitgCxC3GzKVQF/t+ij1aNcNg2AnEXGtLHJDwoSWrAq3TUm0EVg==",
+              "extraneous": true,
+              "requires": {
+                "rfile": "~1.0",
+                "uglify-js": "~2.2"
+              },
+              "dependencies": {
+                "source-map": {
+                  "version": "0.1.43",
+                  "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.1.43.tgz",
+                  "integrity": "sha512-VtCvB9SIQhk3aF6h+N85EaqIaBFIAfZ9Cu+NJHHVvc8BbEcnvDcFw6sqQ2dQrT6SlOrZq3tIvyD9+EGq/lJryQ==",
+                  "extraneous": true,
+                  "requires": {
+                    "amdefine": ">=0.0.4"
+                  }
+                },
+                "uglify-js": {
+                  "version": "2.2.5",
+                  "resolved": "https://registry.npmmirror.com/uglify-js/-/uglify-js-2.2.5.tgz",
+                  "integrity": "sha512-viLk+/8G0zm2aKt1JJAVcz5J/5ytdiNaIsKgrre3yvSUjwVG6ZUujGH7E2TiPigZUwLYCe7eaIUEP2Zka2VJPA==",
+                  "extraneous": true,
+                  "requires": {
+                    "optimist": "~0.3.5",
+                    "source-map": "~0.1.7"
+                  }
+                }
+              }
+            },
+            "safe-buffer": {
+              "version": "5.1.2",
+              "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz",
+              "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+              "extraneous": true
+            },
+            "safe-regex": {
+              "version": "1.1.0",
+              "resolved": "https://registry.npmmirror.com/safe-regex/-/safe-regex-1.1.0.tgz",
+              "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==",
+              "extraneous": true,
+              "requires": {
+                "ret": "~0.1.10"
+              }
+            },
+            "safer-buffer": {
+              "version": "2.1.2",
+              "resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz",
+              "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
+              "extraneous": true
+            },
+            "semver": {
+              "version": "4.3.6",
+              "resolved": "https://registry.npmmirror.com/semver/-/semver-4.3.6.tgz",
+              "integrity": "sha512-IrpJ+yoG4EOH8DFWuVg+8H1kW1Oaof0Wxe7cPcXW3x9BjkN/eVo54F15LyqemnDIUYskQWr9qvl/RihmSy6+xQ==",
+              "extraneous": true
+            },
+            "sequencify": {
+              "version": "0.0.7",
+              "resolved": "https://registry.npmmirror.com/sequencify/-/sequencify-0.0.7.tgz",
+              "integrity": "sha512-YL8BPm0tp6SlXef/VqYpA/ijmTsDP2ZEXzsnqjkaWS7NP7Bfvw18NboL0O8WCIjy67sOCG3MYSK1PB4GC9XdtQ==",
+              "extraneous": true
+            },
+            "set-value": {
+              "version": "2.0.1",
+              "resolved": "https://registry.npmmirror.com/set-value/-/set-value-2.0.1.tgz",
+              "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
+              "extraneous": true,
+              "requires": {
+                "extend-shallow": "^2.0.1",
+                "is-extendable": "^0.1.1",
+                "is-plain-object": "^2.0.3",
+                "split-string": "^3.0.1"
+              },
+              "dependencies": {
+                "extend-shallow": {
+                  "version": "2.0.1",
+                  "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-2.0.1.tgz",
+                  "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+                  "extraneous": true,
+                  "requires": {
+                    "is-extendable": "^0.1.0"
+                  }
+                }
+              }
+            },
+            "shallow-copy": {
+              "version": "0.0.1",
+              "resolved": "https://registry.npmmirror.com/shallow-copy/-/shallow-copy-0.0.1.tgz",
+              "integrity": "sha512-b6i4ZpVuUxB9h5gfCxPiusKYkqTMOjEbBs4wMaFbkfia4yFv92UKZ6Df8WXcKbn08JNL/abvg3FnMAOfakDvUw==",
+              "extraneous": true
+            },
+            "shell-quote": {
+              "version": "0.0.1",
+              "resolved": "https://registry.npmmirror.com/shell-quote/-/shell-quote-0.0.1.tgz",
+              "integrity": "sha512-uEWz7wa9vnCi9w4mvKZMgbHFk3DCKjLQlZcy0tJxUH4NwZjRrPPHXAYIEt2TmJs600Dcgj0Z3fZLZKVPVdGNbQ==",
+              "extraneous": true
+            },
+            "sigmund": {
+              "version": "1.0.1",
+              "resolved": "https://registry.npmmirror.com/sigmund/-/sigmund-1.0.1.tgz",
+              "integrity": "sha512-fCvEXfh6NWpm+YSuY2bpXb/VIihqWA6hLsgboC+0nl71Q7N7o2eaCW8mJa/NLvQhs6jpd3VZV4UiUQlV6+lc8g==",
+              "extraneous": true
+            },
+            "signal-exit": {
+              "version": "3.0.7",
+              "resolved": "https://registry.npmmirror.com/signal-exit/-/signal-exit-3.0.7.tgz",
+              "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
+              "extraneous": true
+            },
+            "snapdragon": {
+              "version": "0.8.2",
+              "resolved": "https://registry.npmmirror.com/snapdragon/-/snapdragon-0.8.2.tgz",
+              "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
+              "extraneous": true,
+              "requires": {
+                "base": "^0.11.1",
+                "debug": "^2.2.0",
+                "define-property": "^0.2.5",
+                "extend-shallow": "^2.0.1",
+                "map-cache": "^0.2.2",
+                "source-map": "^0.5.6",
+                "source-map-resolve": "^0.5.0",
+                "use": "^3.1.0"
+              },
+              "dependencies": {
+                "define-property": {
+                  "version": "0.2.5",
+                  "resolved": "https://registry.npmmirror.com/define-property/-/define-property-0.2.5.tgz",
+                  "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
+                  "extraneous": true,
+                  "requires": {
+                    "is-descriptor": "^0.1.0"
+                  }
+                },
+                "extend-shallow": {
+                  "version": "2.0.1",
+                  "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-2.0.1.tgz",
+                  "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+                  "extraneous": true,
+                  "requires": {
+                    "is-extendable": "^0.1.0"
+                  }
+                }
+              }
+            },
+            "snapdragon-node": {
+              "version": "2.1.1",
+              "resolved": "https://registry.npmmirror.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
+              "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
+              "extraneous": true,
+              "requires": {
+                "define-property": "^1.0.0",
+                "isobject": "^3.0.0",
+                "snapdragon-util": "^3.0.1"
+              },
+              "dependencies": {
+                "define-property": {
+                  "version": "1.0.0",
+                  "resolved": "https://registry.npmmirror.com/define-property/-/define-property-1.0.0.tgz",
+                  "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==",
+                  "extraneous": true,
+                  "requires": {
+                    "is-descriptor": "^1.0.0"
+                  }
+                },
+                "is-accessor-descriptor": {
+                  "version": "1.0.0",
+                  "resolved": "https://registry.npmmirror.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+                  "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+                  "extraneous": true,
+                  "requires": {
+                    "kind-of": "^6.0.0"
+                  }
+                },
+                "is-data-descriptor": {
+                  "version": "1.0.0",
+                  "resolved": "https://registry.npmmirror.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+                  "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+                  "extraneous": true,
+                  "requires": {
+                    "kind-of": "^6.0.0"
+                  }
+                },
+                "is-descriptor": {
+                  "version": "1.0.2",
+                  "resolved": "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-1.0.2.tgz",
+                  "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+                  "extraneous": true,
+                  "requires": {
+                    "is-accessor-descriptor": "^1.0.0",
+                    "is-data-descriptor": "^1.0.0",
+                    "kind-of": "^6.0.2"
+                  }
+                }
+              }
+            },
+            "snapdragon-util": {
+              "version": "3.0.1",
+              "resolved": "https://registry.npmmirror.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
+              "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
+              "extraneous": true,
+              "requires": {
+                "kind-of": "^3.2.0"
+              },
+              "dependencies": {
+                "kind-of": {
+                  "version": "3.2.2",
+                  "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz",
+                  "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+                  "extraneous": true,
+                  "requires": {
+                    "is-buffer": "^1.1.5"
+                  }
+                }
+              }
+            },
+            "source-map": {
+              "version": "0.5.7",
+              "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.5.7.tgz",
+              "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
+              "extraneous": true
+            },
+            "source-map-resolve": {
+              "version": "0.5.3",
+              "resolved": "https://registry.npmmirror.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz",
+              "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==",
+              "extraneous": true,
+              "requires": {
+                "atob": "^2.1.2",
+                "decode-uri-component": "^0.2.0",
+                "resolve-url": "^0.2.1",
+                "source-map-url": "^0.4.0",
+                "urix": "^0.1.0"
+              }
+            },
+            "source-map-url": {
+              "version": "0.4.1",
+              "resolved": "https://registry.npmmirror.com/source-map-url/-/source-map-url-0.4.1.tgz",
+              "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==",
+              "extraneous": true
+            },
+            "sourcemap-codec": {
+              "version": "1.4.8",
+              "resolved": "https://registry.npmmirror.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
+              "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==",
+              "extraneous": true
+            },
+            "sparkles": {
+              "version": "1.0.1",
+              "resolved": "https://registry.npmmirror.com/sparkles/-/sparkles-1.0.1.tgz",
+              "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==",
+              "extraneous": true
+            },
+            "spdx-correct": {
+              "version": "3.2.0",
+              "resolved": "https://registry.npmmirror.com/spdx-correct/-/spdx-correct-3.2.0.tgz",
+              "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==",
+              "extraneous": true,
+              "requires": {
+                "spdx-expression-parse": "^3.0.0",
+                "spdx-license-ids": "^3.0.0"
+              }
+            },
+            "spdx-exceptions": {
+              "version": "2.3.0",
+              "resolved": "https://registry.npmmirror.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz",
+              "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==",
+              "extraneous": true
+            },
+            "spdx-expression-parse": {
+              "version": "3.0.1",
+              "resolved": "https://registry.npmmirror.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
+              "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+              "extraneous": true,
+              "requires": {
+                "spdx-exceptions": "^2.1.0",
+                "spdx-license-ids": "^3.0.0"
+              }
+            },
+            "spdx-license-ids": {
+              "version": "3.0.13",
+              "resolved": "https://registry.npmmirror.com/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz",
+              "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==",
+              "extraneous": true
+            },
+            "split-string": {
+              "version": "3.1.0",
+              "resolved": "https://registry.npmmirror.com/split-string/-/split-string-3.1.0.tgz",
+              "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
+              "extraneous": true,
+              "requires": {
+                "extend-shallow": "^3.0.0"
+              }
+            },
+            "sshpk": {
+              "version": "1.17.0",
+              "resolved": "https://registry.npmmirror.com/sshpk/-/sshpk-1.17.0.tgz",
+              "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==",
+              "extraneous": true,
+              "requires": {
+                "asn1": "~0.2.3",
+                "assert-plus": "^1.0.0",
+                "bcrypt-pbkdf": "^1.0.0",
+                "dashdash": "^1.12.0",
+                "ecc-jsbn": "~0.1.1",
+                "getpass": "^0.1.1",
+                "jsbn": "~0.1.0",
+                "safer-buffer": "^2.0.2",
+                "tweetnacl": "~0.14.0"
+              }
+            },
+            "static-extend": {
+              "version": "0.1.2",
+              "resolved": "https://registry.npmmirror.com/static-extend/-/static-extend-0.1.2.tgz",
+              "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==",
+              "extraneous": true,
+              "requires": {
+                "define-property": "^0.2.5",
+                "object-copy": "^0.1.0"
+              },
+              "dependencies": {
+                "define-property": {
+                  "version": "0.2.5",
+                  "resolved": "https://registry.npmmirror.com/define-property/-/define-property-0.2.5.tgz",
+                  "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
+                  "extraneous": true,
+                  "requires": {
+                    "is-descriptor": "^0.1.0"
+                  }
+                }
+              }
+            },
+            "stream-browserify": {
+              "version": "0.1.3",
+              "resolved": "https://registry.npmmirror.com/stream-browserify/-/stream-browserify-0.1.3.tgz",
+              "integrity": "sha512-kSJCt45VQx5NFfb7pedoQPWSaIDilq74p7H6qlofTB1oj70QKA3OtO9bQbYSBFW40LbF+3/Lgp7rjZt8s+rdKw==",
+              "extraneous": true,
+              "requires": {
+                "inherits": "~2.0.1",
+                "process": "~0.5.1"
+              },
+              "dependencies": {
+                "process": {
+                  "version": "0.5.2",
+                  "resolved": "https://registry.npmmirror.com/process/-/process-0.5.2.tgz",
+                  "integrity": "sha512-oNpcutj+nYX2FjdEW7PGltWhXulAnFlM0My/k48L90hARCOJtvBbQXc/6itV2jDvU5xAAtonP+r6wmQgCcbAUA==",
+                  "extraneous": true
+                }
+              }
+            },
+            "stream-combiner": {
+              "version": "0.0.4",
+              "resolved": "https://registry.npmmirror.com/stream-combiner/-/stream-combiner-0.0.4.tgz",
+              "integrity": "sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==",
+              "extraneous": true,
+              "requires": {
+                "duplexer": "~0.1.1"
+              }
+            },
+            "stream-consume": {
+              "version": "0.1.1",
+              "resolved": "https://registry.npmmirror.com/stream-consume/-/stream-consume-0.1.1.tgz",
+              "integrity": "sha512-tNa3hzgkjEP7XbCkbRXe1jpg+ievoa0O4SCFlMOYEscGSS4JJsckGL8swUyAa/ApGU3Ae4t6Honor4HhL+tRyg==",
+              "extraneous": true
+            },
+            "string_decoder": {
+              "version": "0.10.31",
+              "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-0.10.31.tgz",
+              "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==",
+              "extraneous": true
+            },
+            "strip-ansi": {
+              "version": "3.0.1",
+              "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-3.0.1.tgz",
+              "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==",
+              "extraneous": true,
+              "requires": {
+                "ansi-regex": "^2.0.0"
+              }
+            },
+            "strip-bom": {
+              "version": "1.0.0",
+              "resolved": "https://registry.npmmirror.com/strip-bom/-/strip-bom-1.0.0.tgz",
+              "integrity": "sha512-qVAeAIjblKDp/8Cd0tJdxpe3Iq/HooI7En98alEaMbz4Wedlrcj3WI72dDQSrziRW5IQ0zeBo3JXsmS8RcS9jg==",
+              "extraneous": true,
+              "requires": {
+                "first-chunk-stream": "^1.0.0",
+                "is-utf8": "^0.2.0"
+              }
+            },
+            "strip-indent": {
+              "version": "1.0.1",
+              "resolved": "https://registry.npmmirror.com/strip-indent/-/strip-indent-1.0.1.tgz",
+              "integrity": "sha512-I5iQq6aFMM62fBEAIB/hXzwJD6EEZ0xEGCX2t7oXqaKPIRgt4WruAQ285BISgdkP+HLGWyeGmNJcpIwFeRYRUA==",
+              "extraneous": true,
+              "requires": {
+                "get-stdin": "^4.0.1"
+              }
+            },
+            "subarg": {
+              "version": "0.0.1",
+              "resolved": "https://registry.npmmirror.com/subarg/-/subarg-0.0.1.tgz",
+              "integrity": "sha512-6HUY31sAPDdNBT4Gy1c2a2mfpzRiFPMOsR9eQkqO2ZMIVL11mPzywLgsSSGYJ+UVidEfds6XEsh4RnZiDbM60A==",
+              "extraneous": true,
+              "requires": {
+                "minimist": "~0.0.7"
+              },
+              "dependencies": {
+                "minimist": {
+                  "version": "0.0.10",
+                  "resolved": "https://registry.npmmirror.com/minimist/-/minimist-0.0.10.tgz",
+                  "integrity": "sha512-iotkTvxc+TwOm5Ieim8VnSNvCDjCK9S8G3scJ50ZthspSxa7jx50jkhYduuAtAjvfDUwSgOwf8+If99AlOEhyw==",
+                  "extraneous": true
+                }
+              }
+            },
+            "supports-color": {
+              "version": "2.0.0",
+              "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-2.0.0.tgz",
+              "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==",
+              "extraneous": true
+            },
+            "supports-preserve-symlinks-flag": {
+              "version": "1.0.0",
+              "resolved": "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+              "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+              "extraneous": true
+            },
+            "syntax-error": {
+              "version": "1.1.6",
+              "resolved": "https://registry.npmmirror.com/syntax-error/-/syntax-error-1.1.6.tgz",
+              "integrity": "sha512-PR60b6QEsF95amTCi4TwqwH+FRTLjg90DOHiHBgvtauFafhnc8sDT4fXnNEXAbke1cCqrrJGDbFRlwSmo50mOQ==",
+              "extraneous": true,
+              "requires": {
+                "acorn": "^2.7.0"
+              },
+              "dependencies": {
+                "acorn": {
+                  "version": "2.7.0",
+                  "resolved": "https://registry.npmmirror.com/acorn/-/acorn-2.7.0.tgz",
+                  "integrity": "sha512-pXK8ez/pVjqFdAgBkF1YPVRacuLQ9EXBKaKWaeh58WNfMkCmZhOZzu+NtKSPD5PHmCCHheQ5cD29qM1K4QTxIg==",
+                  "extraneous": true
+                }
+              }
+            },
+            "temp": {
+              "version": "0.8.4",
+              "resolved": "https://registry.npmmirror.com/temp/-/temp-0.8.4.tgz",
+              "integrity": "sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg==",
+              "extraneous": true,
+              "requires": {
+                "rimraf": "~2.6.2"
+              }
+            },
+            "throttleit": {
+              "version": "1.0.0",
+              "resolved": "https://registry.npmmirror.com/throttleit/-/throttleit-1.0.0.tgz",
+              "integrity": "sha512-rkTVqu6IjfQ/6+uNuuc3sZek4CEYxTJom3IktzgdSxcZqdARuebbA/f4QmAxMQIxqq9ZLEUkSYqvuk1I6VKq4g==",
+              "extraneous": true
+            },
+            "through": {
+              "version": "2.3.8",
+              "resolved": "https://registry.npmmirror.com/through/-/through-2.3.8.tgz",
+              "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==",
+              "extraneous": true
+            },
+            "through2": {
+              "version": "2.0.5",
+              "resolved": "https://registry.npmmirror.com/through2/-/through2-2.0.5.tgz",
+              "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
+              "extraneous": true,
+              "requires": {
+                "readable-stream": "~2.3.6",
+                "xtend": "~4.0.1"
+              },
+              "dependencies": {
+                "isarray": {
+                  "version": "1.0.0",
+                  "resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz",
+                  "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
+                  "extraneous": true
+                },
+                "readable-stream": {
+                  "version": "2.3.8",
+                  "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz",
+                  "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+                  "extraneous": true,
+                  "requires": {
+                    "core-util-is": "~1.0.0",
+                    "inherits": "~2.0.3",
+                    "isarray": "~1.0.0",
+                    "process-nextick-args": "~2.0.0",
+                    "safe-buffer": "~5.1.1",
+                    "string_decoder": "~1.1.1",
+                    "util-deprecate": "~1.0.1"
+                  }
+                },
+                "string_decoder": {
+                  "version": "1.1.1",
+                  "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz",
+                  "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+                  "extraneous": true,
+                  "requires": {
+                    "safe-buffer": "~5.1.0"
+                  }
+                }
+              }
+            },
+            "tildify": {
+              "version": "1.2.0",
+              "resolved": "https://registry.npmmirror.com/tildify/-/tildify-1.2.0.tgz",
+              "integrity": "sha512-Y9q1GaV/BO65Z9Yf4NOGMuwt3SGdptkZBnaaKfTQakrDyCLiuO1Kc5wxW4xLdsjzunRtqtOdhekiUFmZbklwYQ==",
+              "extraneous": true,
+              "requires": {
+                "os-homedir": "^1.0.0"
+              }
+            },
+            "time-stamp": {
+              "version": "1.1.0",
+              "resolved": "https://registry.npmmirror.com/time-stamp/-/time-stamp-1.1.0.tgz",
+              "integrity": "sha512-gLCeArryy2yNTRzTGKbZbloctj64jkZ57hj5zdraXue6aFgd6PmvVtEyiUU+hvU0v7q08oVv8r8ev0tRo6bvgw==",
+              "extraneous": true
+            },
+            "timers-browserify": {
+              "version": "1.0.3",
+              "resolved": "https://registry.npmmirror.com/timers-browserify/-/timers-browserify-1.0.3.tgz",
+              "integrity": "sha512-cD8NV/kFxuEuDNT6Aq9mw1KYiWVCegdjSYDA0w9LFXd8bkj7JgMWH71b61dYoQbt48GTtG1eLzx7nSkWTYJhhw==",
+              "extraneous": true,
+              "requires": {
+                "process": "~0.5.1"
+              },
+              "dependencies": {
+                "process": {
+                  "version": "0.5.2",
+                  "resolved": "https://registry.npmmirror.com/process/-/process-0.5.2.tgz",
+                  "integrity": "sha512-oNpcutj+nYX2FjdEW7PGltWhXulAnFlM0My/k48L90hARCOJtvBbQXc/6itV2jDvU5xAAtonP+r6wmQgCcbAUA==",
+                  "extraneous": true
+                }
+              }
+            },
+            "to-object-path": {
+              "version": "0.3.0",
+              "resolved": "https://registry.npmmirror.com/to-object-path/-/to-object-path-0.3.0.tgz",
+              "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==",
+              "extraneous": true,
+              "requires": {
+                "kind-of": "^3.0.2"
+              },
+              "dependencies": {
+                "kind-of": {
+                  "version": "3.2.2",
+                  "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz",
+                  "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+                  "extraneous": true,
+                  "requires": {
+                    "is-buffer": "^1.1.5"
+                  }
+                }
+              }
+            },
+            "to-regex": {
+              "version": "3.0.2",
+              "resolved": "https://registry.npmmirror.com/to-regex/-/to-regex-3.0.2.tgz",
+              "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
+              "extraneous": true,
+              "requires": {
+                "define-property": "^2.0.2",
+                "extend-shallow": "^3.0.2",
+                "regex-not": "^1.0.2",
+                "safe-regex": "^1.1.0"
+              }
+            },
+            "to-regex-range": {
+              "version": "2.1.1",
+              "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-2.1.1.tgz",
+              "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==",
+              "extraneous": true,
+              "requires": {
+                "is-number": "^3.0.0",
+                "repeat-string": "^1.6.1"
+              }
+            },
+            "tough-cookie": {
+              "version": "2.5.0",
+              "resolved": "https://registry.npmmirror.com/tough-cookie/-/tough-cookie-2.5.0.tgz",
+              "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
+              "extraneous": true,
+              "requires": {
+                "psl": "^1.1.28",
+                "punycode": "^2.1.1"
+              },
+              "dependencies": {
+                "punycode": {
+                  "version": "2.3.0",
+                  "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.3.0.tgz",
+                  "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==",
+                  "extraneous": true
+                }
+              }
+            },
+            "trim-newlines": {
+              "version": "1.0.0",
+              "resolved": "https://registry.npmmirror.com/trim-newlines/-/trim-newlines-1.0.0.tgz",
+              "integrity": "sha512-Nm4cF79FhSTzrLKGDMi3I4utBtFv8qKy4sq1enftf2gMdpqI8oVQTAfySkTz5r49giVzDj88SVZXP4CeYQwjaw==",
+              "extraneous": true
+            },
+            "tty-browserify": {
+              "version": "0.0.1",
+              "resolved": "https://registry.npmmirror.com/tty-browserify/-/tty-browserify-0.0.1.tgz",
+              "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==",
+              "extraneous": true
+            },
+            "tunnel-agent": {
+              "version": "0.6.0",
+              "resolved": "https://registry.npmmirror.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+              "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
+              "extraneous": true,
+              "requires": {
+                "safe-buffer": "^5.0.1"
+              }
+            },
+            "tweetnacl": {
+              "version": "0.14.5",
+              "resolved": "https://registry.npmmirror.com/tweetnacl/-/tweetnacl-0.14.5.tgz",
+              "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==",
+              "extraneous": true
+            },
+            "typedarray": {
+              "version": "0.0.7",
+              "resolved": "https://registry.npmmirror.com/typedarray/-/typedarray-0.0.7.tgz",
+              "integrity": "sha512-ueeb9YybpjhivjbHP2LdFDAjbS948fGEPj+ACAMs4xCMmh72OCOMQWBQKlaN4ZNQ04yfLSDLSx1tGRIoWimObQ==",
+              "extraneous": true
+            },
+            "uglify-js": {
+              "version": "2.4.24",
+              "resolved": "https://registry.npmmirror.com/uglify-js/-/uglify-js-2.4.24.tgz",
+              "integrity": "sha512-tktIjwackfZLd893KGJmXc1hrRHH1vH9Po3xFh1XBjjeGAnN02xJ3SuoA+n1L29/ZaCA18KzCFlckS+vfPugiA==",
+              "extraneous": true,
+              "requires": {
+                "async": "~0.2.6",
+                "source-map": "0.1.34",
+                "uglify-to-browserify": "~1.0.0",
+                "yargs": "~3.5.4"
+              },
+              "dependencies": {
+                "source-map": {
+                  "version": "0.1.34",
+                  "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.1.34.tgz",
+                  "integrity": "sha512-yfCwDj0vR9RTwt3pEzglgb3ZgmcXHt6DjG3bjJvzPwTL+5zDQ2MhmSzAcTy0GTiQuCiriSWXvWM1/NhKdXuoQA==",
+                  "extraneous": true,
+                  "requires": {
+                    "amdefine": ">=0.0.4"
+                  }
+                }
+              }
+            },
+            "uglify-save-license": {
+              "version": "0.4.1",
+              "resolved": "https://registry.npmmirror.com/uglify-save-license/-/uglify-save-license-0.4.1.tgz",
+              "integrity": "sha512-ErJczQkCvQKoEk7xxIfJTGp2JHtbKr8lEPtTgeJqm3PVCdF930Ba7x+wwtj3dZKwVu7lDy2nTOwncm3qCD+RMw==",
+              "extraneous": true
+            },
+            "uglify-to-browserify": {
+              "version": "1.0.2",
+              "resolved": "https://registry.npmmirror.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
+              "integrity": "sha512-vb2s1lYx2xBtUgy+ta+b2J/GLVUR+wmpINwHePmPRhOsIVCG2wDzKJ0n14GslH1BifsqVzSOwQhRaCAsZ/nI4Q==",
+              "extraneous": true
+            },
+            "umd": {
+              "version": "2.0.0",
+              "resolved": "https://registry.npmmirror.com/umd/-/umd-2.0.0.tgz",
+              "integrity": "sha512-SlVMYqNP+wxDKiH8Agjsmnuu/Rx1DJOLU7CzbJqUlzeoueskRj+tJlisLAdSoiMFvKj0tYwcl95xoA31+HSgHg==",
+              "extraneous": true,
+              "requires": {
+                "rfile": "~1.0.0",
+                "ruglify": "~1.0.0",
+                "through": "~2.3.4",
+                "uglify-js": "~2.4.0"
+              }
+            },
+            "unc-path-regex": {
+              "version": "0.1.2",
+              "resolved": "https://registry.npmmirror.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
+              "integrity": "sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==",
+              "extraneous": true
+            },
+            "union-value": {
+              "version": "1.0.1",
+              "resolved": "https://registry.npmmirror.com/union-value/-/union-value-1.0.1.tgz",
+              "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==",
+              "extraneous": true,
+              "requires": {
+                "arr-union": "^3.1.0",
+                "get-value": "^2.0.6",
+                "is-extendable": "^0.1.1",
+                "set-value": "^2.0.1"
+              }
+            },
+            "unique-stream": {
+              "version": "1.0.0",
+              "resolved": "https://registry.npmmirror.com/unique-stream/-/unique-stream-1.0.0.tgz",
+              "integrity": "sha512-L8KM6TdpsoBk6TJTXevbmpub3bATS06Znu3BcfVPVQkFtnh1MFeCZ3gFKCQcji7f7YYiigsO5OR99vqhoNT8nQ==",
+              "extraneous": true
+            },
+            "unset-value": {
+              "version": "1.0.0",
+              "resolved": "https://registry.npmmirror.com/unset-value/-/unset-value-1.0.0.tgz",
+              "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==",
+              "extraneous": true,
+              "requires": {
+                "has-value": "^0.3.1",
+                "isobject": "^3.0.0"
+              },
+              "dependencies": {
+                "has-value": {
+                  "version": "0.3.1",
+                  "resolved": "https://registry.npmmirror.com/has-value/-/has-value-0.3.1.tgz",
+                  "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==",
+                  "extraneous": true,
+                  "requires": {
+                    "get-value": "^2.0.3",
+                    "has-values": "^0.1.4",
+                    "isobject": "^2.0.0"
+                  },
+                  "dependencies": {
+                    "isobject": {
+                      "version": "2.1.0",
+                      "resolved": "https://registry.npmmirror.com/isobject/-/isobject-2.1.0.tgz",
+                      "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==",
+                      "extraneous": true,
+                      "requires": {
+                        "isarray": "1.0.0"
+                      }
+                    }
+                  }
+                },
+                "has-values": {
+                  "version": "0.1.4",
+                  "resolved": "https://registry.npmmirror.com/has-values/-/has-values-0.1.4.tgz",
+                  "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==",
+                  "extraneous": true
+                },
+                "isarray": {
+                  "version": "1.0.0",
+                  "resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz",
+                  "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
+                  "extraneous": true
+                }
+              }
+            },
+            "uri-js": {
+              "version": "4.4.1",
+              "resolved": "https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz",
+              "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+              "extraneous": true,
+              "requires": {
+                "punycode": "^2.1.0"
+              },
+              "dependencies": {
+                "punycode": {
+                  "version": "2.3.0",
+                  "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.3.0.tgz",
+                  "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==",
+                  "extraneous": true
+                }
+              }
+            },
+            "urix": {
+              "version": "0.1.0",
+              "resolved": "https://registry.npmmirror.com/urix/-/urix-0.1.0.tgz",
+              "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==",
+              "extraneous": true
+            },
+            "url": {
+              "version": "0.10.3",
+              "resolved": "https://registry.npmmirror.com/url/-/url-0.10.3.tgz",
+              "integrity": "sha512-hzSUW2q06EqL1gKM/a+obYHLIO6ct2hwPuviqTTOcfFVc61UbfJ2Q32+uGL/HCPxKqrdGB5QUwIe7UqlDgwsOQ==",
+              "extraneous": true,
+              "requires": {
+                "punycode": "1.3.2",
+                "querystring": "0.2.0"
+              },
+              "dependencies": {
+                "punycode": {
+                  "version": "1.3.2",
+                  "resolved": "https://registry.npmmirror.com/punycode/-/punycode-1.3.2.tgz",
+                  "integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==",
+                  "extraneous": true
+                }
+              }
+            },
+            "use": {
+              "version": "3.1.1",
+              "resolved": "https://registry.npmmirror.com/use/-/use-3.1.1.tgz",
+              "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
+              "extraneous": true
+            },
+            "user-home": {
+              "version": "1.1.1",
+              "resolved": "https://registry.npmmirror.com/user-home/-/user-home-1.1.1.tgz",
+              "integrity": "sha512-aggiKfEEubv3UwRNqTzLInZpAOmKzwdHqEBmW/hBA/mt99eg+b4VrX6i+IRLxU8+WJYfa33rGwRseg4eElUgsQ==",
+              "extraneous": true
+            },
+            "util": {
+              "version": "0.10.4",
+              "resolved": "https://registry.npmmirror.com/util/-/util-0.10.4.tgz",
+              "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==",
+              "extraneous": true,
+              "requires": {
+                "inherits": "2.0.3"
+              },
+              "dependencies": {
+                "inherits": {
+                  "version": "2.0.3",
+                  "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.3.tgz",
+                  "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==",
+                  "extraneous": true
+                }
+              }
+            },
+            "util-deprecate": {
+              "version": "1.0.2",
+              "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz",
+              "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
+              "extraneous": true
+            },
+            "uuid": {
+              "version": "3.4.0",
+              "resolved": "https://registry.npmmirror.com/uuid/-/uuid-3.4.0.tgz",
+              "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
+              "extraneous": true
+            },
+            "v8flags": {
+              "version": "2.1.1",
+              "resolved": "https://registry.npmmirror.com/v8flags/-/v8flags-2.1.1.tgz",
+              "integrity": "sha512-SKfhk/LlaXzvtowJabLZwD4K6SGRYeoxA7KJeISlUMAB/NT4CBkZjMq3WceX2Ckm4llwqYVo8TICgsDYCBU2tA==",
+              "extraneous": true,
+              "requires": {
+                "user-home": "^1.1.1"
+              }
+            },
+            "validate-npm-package-license": {
+              "version": "3.0.4",
+              "resolved": "https://registry.npmmirror.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
+              "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
+              "extraneous": true,
+              "requires": {
+                "spdx-correct": "^3.0.0",
+                "spdx-expression-parse": "^3.0.0"
+              }
+            },
+            "verror": {
+              "version": "1.10.0",
+              "resolved": "https://registry.npmmirror.com/verror/-/verror-1.10.0.tgz",
+              "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==",
+              "extraneous": true,
+              "requires": {
+                "assert-plus": "^1.0.0",
+                "core-util-is": "1.0.2",
+                "extsprintf": "^1.2.0"
+              },
+              "dependencies": {
+                "core-util-is": {
+                  "version": "1.0.2",
+                  "resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.2.tgz",
+                  "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==",
+                  "extraneous": true
+                }
+              }
+            },
+            "vinyl": {
+              "version": "0.5.3",
+              "resolved": "https://registry.npmmirror.com/vinyl/-/vinyl-0.5.3.tgz",
+              "integrity": "sha512-P5zdf3WB9uzr7IFoVQ2wZTmUwHL8cMZWJGzLBNCHNZ3NB6HTMsYABtt7z8tAGIINLXyAob9B9a1yzVGMFOYKEA==",
+              "extraneous": true,
+              "requires": {
+                "clone": "^1.0.0",
+                "clone-stats": "^0.0.1",
+                "replace-ext": "0.0.1"
+              }
+            },
+            "vinyl-fs": {
+              "version": "0.3.14",
+              "resolved": "https://registry.npmmirror.com/vinyl-fs/-/vinyl-fs-0.3.14.tgz",
+              "integrity": "sha512-9CTKjt8378nhdydwFDTwywKio0n8aqq6xA70g0uypcnTNSCow/gQOwv0L9E2GaKd7EQ3kZl/diBxPSCgcBXESw==",
+              "extraneous": true,
+              "requires": {
+                "defaults": "^1.0.0",
+                "glob-stream": "^3.1.5",
+                "glob-watcher": "^0.0.6",
+                "graceful-fs": "^3.0.0",
+                "mkdirp": "^0.5.0",
+                "strip-bom": "^1.0.0",
+                "through2": "^0.6.1",
+                "vinyl": "^0.4.0"
+              },
+              "dependencies": {
+                "clone": {
+                  "version": "0.2.0",
+                  "resolved": "https://registry.npmmirror.com/clone/-/clone-0.2.0.tgz",
+                  "integrity": "sha512-g62n3Kb9cszeZvmvBUqP/dsEJD/+80pDA8u8KqHnAPrVnQ2Je9rVV6opxkhuWCd1kCn2gOibzDKxCtBvD3q5kA==",
+                  "extraneous": true
+                },
+                "graceful-fs": {
+                  "version": "3.0.12",
+                  "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.12.tgz",
+                  "integrity": "sha512-J55gaCS4iTTJfTXIxSVw3EMQckcqkpdRv3IR7gu6sq0+tbC363Zx6KH/SEwXASK9JRbhyZmVjJEVJIOxYsB3Qg==",
+                  "extraneous": true,
+                  "requires": {
+                    "natives": "^1.1.3"
+                  }
+                },
+                "readable-stream": {
+                  "version": "1.0.34",
+                  "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-1.0.34.tgz",
+                  "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==",
+                  "extraneous": true,
+                  "requires": {
+                    "core-util-is": "~1.0.0",
+                    "inherits": "~2.0.1",
+                    "isarray": "0.0.1",
+                    "string_decoder": "~0.10.x"
+                  }
+                },
+                "through2": {
+                  "version": "0.6.5",
+                  "resolved": "https://registry.npmmirror.com/through2/-/through2-0.6.5.tgz",
+                  "integrity": "sha512-RkK/CCESdTKQZHdmKICijdKKsCRVHs5KsLZ6pACAmF/1GPUQhonHSXWNERctxEp7RmvjdNbZTL5z9V7nSCXKcg==",
+                  "extraneous": true,
+                  "requires": {
+                    "readable-stream": ">=1.0.33-1 <1.1.0-0",
+                    "xtend": ">=4.0.0 <4.1.0-0"
+                  }
+                },
+                "vinyl": {
+                  "version": "0.4.6",
+                  "resolved": "https://registry.npmmirror.com/vinyl/-/vinyl-0.4.6.tgz",
+                  "integrity": "sha512-pmza4M5VA15HOImIQYWhoXGlGNafCm0QK5BpBUXkzzEwrRxKqBsbAhTfkT2zMcJhUX1G1Gkid0xaV8WjOl7DsA==",
+                  "extraneous": true,
+                  "requires": {
+                    "clone": "^0.2.0",
+                    "clone-stats": "^0.0.1"
+                  }
+                }
+              }
+            },
+            "vinyl-sourcemaps-apply": {
+              "version": "0.2.1",
+              "resolved": "https://registry.npmmirror.com/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz",
+              "integrity": "sha512-+oDh3KYZBoZC8hfocrbrxbLUeaYtQK7J5WU5Br9VqWqmCll3tFJqKp97GC9GmMsVIL0qnx2DgEDVxdo5EZ5sSw==",
+              "extraneous": true,
+              "requires": {
+                "source-map": "^0.5.1"
+              }
+            },
+            "vm-browserify": {
+              "version": "0.0.4",
+              "resolved": "https://registry.npmmirror.com/vm-browserify/-/vm-browserify-0.0.4.tgz",
+              "integrity": "sha512-NyZNR3WDah+NPkjh/YmhuWSsT4a0mF0BJYgUmvrJ70zxjTXh5Y2Asobxlh0Nfs0PCFB5FVpRJft7NozAWFMwLQ==",
+              "extraneous": true,
+              "requires": {
+                "indexof": "0.0.1"
+              }
+            },
+            "which": {
+              "version": "1.3.1",
+              "resolved": "https://registry.npmmirror.com/which/-/which-1.3.1.tgz",
+              "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+              "extraneous": true,
+              "requires": {
+                "isexe": "^2.0.0"
+              }
+            },
+            "window-size": {
+              "version": "0.1.0",
+              "resolved": "https://registry.npmmirror.com/window-size/-/window-size-0.1.0.tgz",
+              "integrity": "sha512-1pTPQDKTdd61ozlKGNCjhNRd+KPmgLSGa3mZTHoOliaGcESD8G1PXhh7c1fgiPjVbNVfgy2Faw4BI8/m0cC8Mg==",
+              "extraneous": true
+            },
+            "wordwrap": {
+              "version": "0.0.3",
+              "resolved": "https://registry.npmmirror.com/wordwrap/-/wordwrap-0.0.3.tgz",
+              "integrity": "sha512-1tMA907+V4QmxV7dbRvb4/8MaRALK6q9Abid3ndMYnbyo8piisCmeONVqVSXqQA3KaP4SLt5b7ud6E2sqP8TFw==",
+              "extraneous": true
+            },
+            "wrappy": {
+              "version": "1.0.2",
+              "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz",
+              "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
+              "extraneous": true
+            },
+            "xtend": {
+              "version": "4.0.2",
+              "resolved": "https://registry.npmmirror.com/xtend/-/xtend-4.0.2.tgz",
+              "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
+              "extraneous": true
+            },
+            "yargs": {
+              "version": "3.5.4",
+              "resolved": "https://registry.npmmirror.com/yargs/-/yargs-3.5.4.tgz",
+              "integrity": "sha512-5j382E4xQSs71p/xZQsU1PtRA2HXPAjX0E0DkoGLxwNASMOKX6A9doV1NrZmj85u2Pjquz402qonBzz/yLPbPA==",
+              "extraneous": true,
+              "requires": {
+                "camelcase": "^1.0.2",
+                "decamelize": "^1.0.0",
+                "window-size": "0.1.0",
+                "wordwrap": "0.0.2"
+              },
+              "dependencies": {
+                "wordwrap": {
+                  "version": "0.0.2",
+                  "resolved": "https://registry.npmmirror.com/wordwrap/-/wordwrap-0.0.2.tgz",
+                  "integrity": "sha512-xSBsCeh+g+dinoBv3GAOWM4LcVVO68wLXRanibtBSdUvkGWQRGeE9P7IwU9EmDDi4jA6L44lz15CGMwdw9N5+Q==",
+                  "extraneous": true
+                }
+              }
+            },
+            "yauzl": {
+              "version": "2.10.0",
+              "resolved": "https://registry.npmmirror.com/yauzl/-/yauzl-2.10.0.tgz",
+              "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==",
+              "extraneous": true,
+              "requires": {
+                "buffer-crc32": "~0.2.3",
+                "fd-slicer": "~1.1.0"
+              }
+            }
+          }
+        },
+        "p-limit": {
+          "version": "2.3.0",
+          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+          "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+          "requires": {
+            "p-try": "^2.0.0"
+          }
+        },
+        "p-locate": {
+          "version": "4.1.0",
+          "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+          "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+          "requires": {
+            "p-limit": "^2.2.0"
+          }
+        },
+        "p-try": {
+          "version": "2.2.0",
+          "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+          "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="
+        },
+        "path-exists": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+          "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="
+        },
+        "pathe": {
+          "version": "1.1.1",
+          "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.1.tgz",
+          "integrity": "sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q=="
+        },
+        "performance-now": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmmirror.com/performance-now/-/performance-now-2.1.0.tgz",
+          "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow=="
+        },
+        "picocolors": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
+          "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
+        },
+        "picomatch": {
+          "version": "2.3.1",
+          "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+          "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="
+        },
+        "pinia": {
+          "version": "2.1.7",
+          "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.1.7.tgz",
+          "integrity": "sha512-+C2AHFtcFqjPih0zpYuvof37SFxMQ7OEG2zV9jRI12i9BOy3YQVAHwdKtyyc8pDcDyIc33WCIsZaCFWU7WWxGQ==",
+          "requires": {
+            "@vue/devtools-api": "^6.5.0",
+            "vue-demi": ">=0.14.5"
+          },
+          "dependencies": {
+            "vue-demi": {
+              "version": "0.14.6",
+              "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.6.tgz",
+              "integrity": "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==",
+              "requires": {}
+            }
+          }
+        },
+        "pinia-plugin-persistedstate": {
+          "version": "3.2.0",
+          "resolved": "https://registry.npmmirror.com/pinia-plugin-persistedstate/-/pinia-plugin-persistedstate-3.2.0.tgz",
+          "integrity": "sha512-tZbNGf2vjAQcIm7alK40sE51Qu/m9oWr+rEgNm/2AWr1huFxj72CjvpQcIQzMknDBJEkQznCLAGtJTIcLKrKdw==",
+          "requires": {}
+        },
+        "pngjs": {
+          "version": "5.0.0",
+          "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz",
+          "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw=="
+        },
+        "postcss": {
+          "version": "8.4.31",
+          "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
+          "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
+          "requires": {
+            "nanoid": "^3.3.6",
+            "picocolors": "^1.0.0",
+            "source-map-js": "^1.0.2"
+          }
+        },
+        "proxy-from-env": {
+          "version": "1.1.0",
+          "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+          "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
+        },
+        "qrcode": {
+          "version": "1.5.3",
+          "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.3.tgz",
+          "integrity": "sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==",
+          "requires": {
+            "dijkstrajs": "^1.0.1",
+            "encode-utf8": "^1.0.3",
+            "pngjs": "^5.0.0",
+            "yargs": "^15.3.1"
+          }
+        },
+        "raf": {
+          "version": "3.4.1",
+          "resolved": "https://registry.npmmirror.com/raf/-/raf-3.4.1.tgz",
+          "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==",
+          "requires": {
+            "performance-now": "^2.1.0"
+          }
+        },
+        "readdirp": {
+          "version": "3.6.0",
+          "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+          "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+          "requires": {
+            "picomatch": "^2.2.1"
+          }
+        },
+        "regenerator-runtime": {
+          "version": "0.13.11",
+          "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
+          "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
+        },
+        "require-directory": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+          "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q=="
+        },
+        "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=="
+        },
+        "rgbcolor": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmmirror.com/rgbcolor/-/rgbcolor-1.0.1.tgz",
+          "integrity": "sha512-9aZLIrhRaD97sgVhtJOW6ckOEh6/GnvQtdVNfdZ6s67+3/XwLS9lBcQYzEEhYVeUowN7pRzMLsyGhK2i/xvWbw=="
+        },
+        "rollup": {
+          "version": "3.29.4",
+          "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz",
+          "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==",
+          "devOptional": true,
+          "requires": {
+            "fsevents": "~2.3.2"
+          }
+        },
+        "set-blocking": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+          "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw=="
+        },
+        "socket.io-client": {
+          "version": "4.7.5",
+          "resolved": "https://registry.npmmirror.com/socket.io-client/-/socket.io-client-4.7.5.tgz",
+          "integrity": "sha512-sJ/tqHOCe7Z50JCBCXrsY3I2k03iOiUe+tj1OmKeD2lXPiGH/RUCdTZFoqVyN7l1MnpIzPrGtLcijffmeouNlQ==",
+          "requires": {
+            "@socket.io/component-emitter": "~3.1.0",
+            "debug": "~4.3.2",
+            "engine.io-client": "~6.5.2",
+            "socket.io-parser": "~4.2.4"
+          }
+        },
+        "socket.io-parser": {
+          "version": "4.2.4",
+          "resolved": "https://registry.npmmirror.com/socket.io-parser/-/socket.io-parser-4.2.4.tgz",
+          "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==",
+          "requires": {
+            "@socket.io/component-emitter": "~3.1.0",
+            "debug": "~4.3.1"
+          }
+        },
+        "sortablejs": {
+          "version": "1.15.1",
+          "resolved": "https://registry.npmmirror.com/sortablejs/-/sortablejs-1.15.1.tgz",
+          "integrity": "sha512-P5Cjvb0UG1ZVNiDPj/n4V+DinttXG6K8n7vM/HQf0C25K3YKQTQY6fsr/sEGsJGpQ9exmPxluHxKBc0mLKU1lQ=="
+        },
+        "source-map-js": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
+          "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw=="
+        },
+        "ssf": {
+          "version": "0.11.2",
+          "resolved": "https://registry.npmmirror.com/ssf/-/ssf-0.11.2.tgz",
+          "integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==",
+          "requires": {
+            "frac": "~1.1.2"
+          }
+        },
+        "stackblur-canvas": {
+          "version": "2.7.0",
+          "resolved": "https://registry.npmmirror.com/stackblur-canvas/-/stackblur-canvas-2.7.0.tgz",
+          "integrity": "sha512-yf7OENo23AGJhBriGx0QivY5JP6Y1HbrrDI6WLt6C5auYZXlQrheoY8hD4ibekFKz1HOfE48Ww8kMWMnJD/zcQ=="
+        },
+        "string-width": {
+          "version": "4.2.3",
+          "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+          "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+          "requires": {
+            "emoji-regex": "^8.0.0",
+            "is-fullwidth-code-point": "^3.0.0",
+            "strip-ansi": "^6.0.1"
+          }
+        },
+        "strip-ansi": {
+          "version": "6.0.1",
+          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+          "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+          "requires": {
+            "ansi-regex": "^5.0.1"
+          }
+        },
+        "svg-pathdata": {
+          "version": "6.0.3",
+          "resolved": "https://registry.npmmirror.com/svg-pathdata/-/svg-pathdata-6.0.3.tgz",
+          "integrity": "sha512-qsjeeq5YjBZ5eMdFuUa4ZosMLxgr5RZ+F+Y1OrDhuOCEInRMA3x74XdBtggJcj9kOeInz0WE+LgCPDkZFlBYJw=="
+        },
+        "text-segmentation": {
+          "version": "1.0.3",
+          "resolved": "https://registry.npmmirror.com/text-segmentation/-/text-segmentation-1.0.3.tgz",
+          "integrity": "sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==",
+          "requires": {
+            "utrie": "^1.0.2"
+          }
+        },
+        "to-fast-properties": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
+          "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog=="
+        },
+        "to-regex-range": {
+          "version": "5.0.1",
+          "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+          "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+          "requires": {
+            "is-number": "^7.0.0"
+          }
+        },
+        "undici-types": {
+          "version": "5.26.5",
+          "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-5.26.5.tgz",
+          "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
+          "dev": true
+        },
+        "unplugin": {
+          "version": "1.5.0",
+          "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.5.0.tgz",
+          "integrity": "sha512-9ZdRwbh/4gcm1JTOkp9lAkIDrtOyOxgHmY7cjuwI8L/2RTikMcVG25GsZwNAgRuap3iDw2jeq7eoqtAsz5rW3A==",
+          "requires": {
+            "acorn": "^8.10.0",
+            "chokidar": "^3.5.3",
+            "webpack-sources": "^3.2.3",
+            "webpack-virtual-modules": "^0.5.0"
+          }
+        },
+        "utrie": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmmirror.com/utrie/-/utrie-1.0.2.tgz",
+          "integrity": "sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==",
+          "requires": {
+            "base64-arraybuffer": "^1.0.2"
+          }
+        },
+        "vite": {
+          "version": "4.4.11",
+          "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.11.tgz",
+          "integrity": "sha512-ksNZJlkcU9b0lBwAGZGGaZHCMqHsc8OpgtoYhsQ4/I2v5cnpmmmqe5pM4nv/4Hn6G/2GhTdj0DhZh2e+Er1q5A==",
+          "dev": true,
+          "requires": {
+            "esbuild": "^0.18.10",
+            "fsevents": "~2.3.2",
+            "postcss": "^8.4.27",
+            "rollup": "^3.27.1"
+          }
+        },
+        "vue": {
+          "version": "3.3.4",
+          "resolved": "https://registry.npmjs.org/vue/-/vue-3.3.4.tgz",
+          "integrity": "sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==",
+          "requires": {
+            "@vue/compiler-dom": "3.3.4",
+            "@vue/compiler-sfc": "3.3.4",
+            "@vue/runtime-dom": "3.3.4",
+            "@vue/server-renderer": "3.3.4",
+            "@vue/shared": "3.3.4"
+          }
+        },
+        "vue-draggable-plus": {
+          "version": "0.5.0",
+          "resolved": "https://registry.npmmirror.com/vue-draggable-plus/-/vue-draggable-plus-0.5.0.tgz",
+          "integrity": "sha512-A5TT5+M5JceROSjPO9aDZTsrSN1TetEs419czPlboomarSiGIBIxTp2WD7XH53EHMrbO7Qo+leRiHWV/rMlyjA==",
+          "requires": {
+            "@types/sortablejs": "^1.15.8"
+          }
+        },
+        "vue-grid-layout": {
+          "version": "3.0.0-beta1",
+          "resolved": "https://registry.npmmirror.com/vue-grid-layout/-/vue-grid-layout-3.0.0-beta1.tgz",
+          "integrity": "sha512-MsW0yfYNtnAO/uDhfZvkP6effxSJxvhAFbIL37x6Rn3vW9xf0WHVefKaSbQMLpSq3mXnR6ut0pg2Cd5lqIIZzg==",
+          "requires": {
+            "@interactjs/actions": "^1.10.2",
+            "@interactjs/auto-start": "^1.10.2",
+            "@interactjs/dev-tools": "^1.10.2",
+            "@interactjs/interactjs": "^1.10.2",
+            "@interactjs/modifiers": "^1.10.2",
+            "element-resize-detector": "^1.2.1",
+            "mitt": "^2.1.0"
+          }
+        },
+        "vue-i18n": {
+          "version": "9.10.1",
+          "resolved": "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-9.10.1.tgz",
+          "integrity": "sha512-37HVJQZ/pZaRXGzFmmMomM1u1k7kndv3xCBPYHKEVfv5W3UVK67U/TpBug71ILYLNmjHLHdvTUPRF81pFT5fFg==",
+          "requires": {
+            "@intlify/core-base": "9.10.1",
+            "@intlify/shared": "9.10.1",
+            "@vue/devtools-api": "^6.5.0"
+          }
+        },
+        "vue-plugin-hiprint": {
+          "version": "0.0.56",
+          "resolved": "https://registry.npmmirror.com/vue-plugin-hiprint/-/vue-plugin-hiprint-0.0.56.tgz",
+          "integrity": "sha512-YbJHH/MwdwIV1urL8V86ea+E8ixX1RYp/u/8/giPt4vfREUak9s2KYw4JFzM/Z6th9BCCpWTLPC+SOeoggxBbw==",
+          "requires": {
+            "@claviska/jquery-minicolors": "^2.3.6",
+            "bwip-js": "^4.0.0",
+            "canvg": "^3.0.10",
+            "html2canvas": "^1.4.1",
+            "jquery": "^3.6.0",
+            "jsbarcode": "^3.11.5",
+            "jspdf": "^2.5.1",
+            "nzh": "^1.0.8",
+            "socket.io-client": "^4.5.1"
+          }
+        },
+        "vue-router": {
+          "version": "4.2.5",
+          "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.2.5.tgz",
+          "integrity": "sha512-DIUpKcyg4+PTQKfFPX88UWhlagBEBEfJ5A8XDXRJLUnZOvcpMF8o/dnL90vpVkGaPbjvXazV/rC1qBKrZlFugw==",
+          "requires": {
+            "@vue/devtools-api": "^6.5.0"
+          }
+        },
+        "vue3-grid-layout": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmmirror.com/vue3-grid-layout/-/vue3-grid-layout-1.0.0.tgz",
+          "integrity": "sha512-rFiHnlBFxkY9ojh0YB+cSKCE9A9/mhdbgaPARWD7r2yHPWxV9tHDPbMAN+uycsIDF7ikBpNgeQ9PfeiGaXHUWw==",
+          "requires": {
+            "@interactjs/actions": "^1.10.2",
+            "@interactjs/auto-start": "^1.10.2",
+            "@interactjs/dev-tools": "^1.10.2",
+            "@interactjs/interactjs": "^1.10.2",
+            "@interactjs/modifiers": "^1.10.2",
+            "element-resize-detector": "^1.2.1",
+            "lodash": "^4.17.21"
+          }
+        },
+        "vue3-print-nb": {
+          "version": "0.1.4",
+          "resolved": "https://registry.npmmirror.com/vue3-print-nb/-/vue3-print-nb-0.1.4.tgz",
+          "integrity": "sha512-LExI7viEzplR6ZKQ2b+V4U0cwGYbVD4fut/XHvk3UPGlT5CcvIGs6VlwGp107aKgk6P8Pgx4rco3Rehv2lti3A==",
+          "requires": {
+            "vue": "^3.0.5"
+          }
+        },
+        "vxe-pc-ui": {
+          "version": "4.3.80",
+          "resolved": "https://registry.npmmirror.com/vxe-pc-ui/-/vxe-pc-ui-4.3.80.tgz",
+          "integrity": "sha512-sIwamEzbVHzVXggchylgiKjneU8cozu440ZNhQy8ZG10ENYY4CsdMlZukxAphk75Ygq96t2+JvN5+MRM+mcsCg==",
+          "requires": {
+            "@vxe-ui/core": "^4.0.29"
+          }
+        },
+        "vxe-table": {
+          "version": "4.7.57",
+          "resolved": "https://registry.npmmirror.com/vxe-table/-/vxe-table-4.7.57.tgz",
+          "integrity": "sha512-SZNa31rv0iz5MMfJVs4hVmPBO3q+rsB+2IN2bB5GrPtR3cI3DaJScpA6FpX8U34+eM6coQ3sHpF+li+7z9LvlA==",
+          "requires": {
+            "vxe-pc-ui": "^4.0.78"
+          }
+        },
+        "webpack-sources": {
+          "version": "3.2.3",
+          "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz",
+          "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w=="
+        },
+        "webpack-virtual-modules": {
+          "version": "0.5.0",
+          "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.5.0.tgz",
+          "integrity": "sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw=="
+        },
+        "which-module": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz",
+          "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ=="
+        },
+        "wmf": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmmirror.com/wmf/-/wmf-1.0.2.tgz",
+          "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw=="
+        },
+        "word": {
+          "version": "0.3.0",
+          "resolved": "https://registry.npmmirror.com/word/-/word-0.3.0.tgz",
+          "integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA=="
+        },
+        "wrap-ansi": {
+          "version": "6.2.0",
+          "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+          "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
+          "requires": {
+            "ansi-styles": "^4.0.0",
+            "string-width": "^4.1.0",
+            "strip-ansi": "^6.0.0"
+          }
+        },
+        "ws": {
+          "version": "8.17.1",
+          "resolved": "https://registry.npmmirror.com/ws/-/ws-8.17.1.tgz",
+          "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==",
+          "requires": {}
+        },
+        "xe-utils": {
+          "version": "3.7.0",
+          "resolved": "https://registry.npmmirror.com/xe-utils/-/xe-utils-3.7.0.tgz",
+          "integrity": "sha512-2pndXCEivB7+xWCdCDth/LJ5ngAAstUOoHTGBQauwTqc03M3Cl1tYbNhPUqi4Lcj+UNZnnc8fANbFWjb6TMx6A=="
+        },
+        "xlsx": {
+          "version": "0.18.5",
+          "resolved": "https://registry.npmmirror.com/xlsx/-/xlsx-0.18.5.tgz",
+          "integrity": "sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==",
+          "requires": {
+            "adler-32": "~1.3.0",
+            "cfb": "~1.2.1",
+            "codepage": "~1.15.0",
+            "crc-32": "~1.2.1",
+            "ssf": "~0.11.2",
+            "wmf": "~1.0.1",
+            "word": "~0.3.0"
+          }
+        },
+        "xmlhttprequest-ssl": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmmirror.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz",
+          "integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A=="
+        },
+        "y18n": {
+          "version": "4.0.3",
+          "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
+          "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ=="
+        },
+        "yargs": {
+          "version": "15.4.1",
+          "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
+          "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
+          "requires": {
+            "cliui": "^6.0.0",
+            "decamelize": "^1.2.0",
+            "find-up": "^4.1.0",
+            "get-caller-file": "^2.0.1",
+            "require-directory": "^2.1.1",
+            "require-main-filename": "^2.0.0",
+            "set-blocking": "^2.0.0",
+            "string-width": "^4.2.0",
+            "which-module": "^2.0.0",
+            "y18n": "^4.0.0",
+            "yargs-parser": "^18.1.2"
+          }
+        },
+        "yargs-parser": {
+          "version": "18.1.3",
+          "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
+          "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
+          "requires": {
+            "camelcase": "^5.0.0",
+            "decamelize": "^1.2.0"
+          }
+        }
+      }
     },
     "nzh": {
       "version": "1.0.12",
@@ -14280,6 +21178,20 @@
         "@vue/devtools-api": "^6.5.0"
       }
     },
+    "vue3-grid-layout": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmmirror.com/vue3-grid-layout/-/vue3-grid-layout-1.0.0.tgz",
+      "integrity": "sha512-rFiHnlBFxkY9ojh0YB+cSKCE9A9/mhdbgaPARWD7r2yHPWxV9tHDPbMAN+uycsIDF7ikBpNgeQ9PfeiGaXHUWw==",
+      "requires": {
+        "@interactjs/actions": "^1.10.2",
+        "@interactjs/auto-start": "^1.10.2",
+        "@interactjs/dev-tools": "^1.10.2",
+        "@interactjs/interactjs": "^1.10.2",
+        "@interactjs/modifiers": "^1.10.2",
+        "element-resize-detector": "^1.2.1",
+        "lodash": "^4.17.21"
+      }
+    },
     "vue3-print-nb": {
       "version": "0.1.4",
       "resolved": "https://registry.npmmirror.com/vue3-print-nb/-/vue3-print-nb-0.1.4.tgz",
diff --git a/north-glass-erp/northglass-erp/package.json b/north-glass-erp/northglass-erp/package.json
index cf58729..ee50f21 100644
--- a/north-glass-erp/northglass-erp/package.json
+++ b/north-glass-erp/northglass-erp/package.json
@@ -15,6 +15,7 @@
     "element-plus": "^2.9.3",
     "file-saver": "^2.0.5",
     "moment": "^2.30.1",
+    "northglass-erp": "file:",
     "pinia": "^2.1.6",
     "pinia-plugin-persistedstate": "^3.2.0",
     "qrcode": "^1.5.3",
@@ -25,6 +26,7 @@
     "vue-i18n": "^9.10.1",
     "vue-plugin-hiprint": "^0.0.56",
     "vue-router": "^4.2.4",
+    "vue3-grid-layout": "^1.0.0",
     "vue3-print-nb": "^0.1.4",
     "vxe-pc-ui": "^4.0.78",
     "vxe-table": "^4.7.57",
diff --git a/north-glass-erp/northglass-erp/src/components/pp/MockData.js b/north-glass-erp/northglass-erp/src/components/pp/MockData.js
new file mode 100644
index 0000000..132617b
--- /dev/null
+++ b/north-glass-erp/northglass-erp/src/components/pp/MockData.js
@@ -0,0 +1,1491 @@
+// MockData.js
+const mockLayoutData = {
+    result: "ok",
+    data: {
+      Layouts: [
+        {
+          mnumber: 9,
+          width: 4500,
+          rects: [
+            {
+              isRemain: false,
+              h: 725,
+              DM2: 0,
+              xuhao: "44",
+              DM1: 0,
+              liuchengka: "NG22091408A04",
+              JiaHao: "A04",
+              LM2: 0,
+              LM1: 0,
+              w: 1340,
+              x: 0,
+              y: 1715,
+              rownumber: 44
+            },
+            {
+              isRemain: false,
+              h: 725,
+              DM2: 0,
+              xuhao: "41",
+              DM1: 0,
+              liuchengka: "NG22091408A04",
+              JiaHao: "A04",
+              LM2: 0,
+              LM1: 0,
+              w: 1144,
+              x: 0,
+              y: 990,
+              rownumber: 41
+            },
+            {
+              isRemain: false,
+              h: 725,
+              DM2: 0,
+              xuhao: "24",
+              DM1: 0,
+              liuchengka: "NG22091408A04",
+              JiaHao: "A04",
+              LM2: 0,
+              LM1: 0,
+              w: 1115,
+              x: 0,
+              y: 265,
+              rownumber: 24
+            },
+            {
+              isRemain: true,
+              h: 725,
+              DM2: 0,
+              xuhao: "null",
+              DM1: 0,
+              liuchengka: "null",
+              JiaHao: "null",
+              LM2: 0,
+              LM1: 0,
+              w: 196,
+              x: 1144,
+              y: 990,
+              rownumber: 0
+            },
+            {
+              isRemain: true,
+              h: 265,
+              DM2: 0,
+              xuhao: "null",
+              DM1: 0,
+              liuchengka: "null",
+              JiaHao: "null",
+              LM2: 0,
+              LM1: 0,
+              w: 1115,
+              x: 0,
+              y: 0,
+              rownumber: 0
+            },
+            {
+              isRemain: true,
+              h: 990,
+              DM2: 0,
+              xuhao: "null",
+              DM1: 0,
+              liuchengka: "null",
+              JiaHao: "null",
+              LM2: 0,
+              LM1: 0,
+              w: 225,
+              x: 1115,
+              y: 0,
+              rownumber: 0
+            },
+            {
+              isRemain: true,
+              h: 2440,
+              DM2: 0,
+              xuhao: "null",
+              DM1: 0,
+              liuchengka: "null",
+              JiaHao: "null",
+              LM2: 0,
+              LM1: 0,
+              w: 3160,
+              x: 1340,
+              y: 0,
+              rownumber: 0
+            }
+          ],
+          wuliao: "KC2006145",
+          SameCount: 1,
+          height: 2440
+        }, {
+			"mnumber": 2,
+			"width": 4500,
+			"rects": [{
+				"isRemain": false,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "22",
+				"DM1": 0,
+				"liuchengka": "NG22091408A03",
+				"JiaHao": "A03",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 2070,
+				"x": 0,
+				"y": 1715,
+				"rownumber": 22
+			}, {
+				"isRemain": false,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "22",
+				"DM1": 0,
+				"liuchengka": "NG22091408A03",
+				"JiaHao": "A03",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 2070,
+				"x": 0,
+				"y": 990,
+				"rownumber": 22
+			}, {
+				"isRemain": false,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "22",
+				"DM1": 0,
+				"liuchengka": "NG22091408A03",
+				"JiaHao": "A03",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 2070,
+				"x": 0,
+				"y": 265,
+				"rownumber": 22
+			}, {
+				"isRemain": false,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "22",
+				"DM1": 0,
+				"liuchengka": "NG22091408A03",
+				"JiaHao": "A03",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 2070,
+				"x": 2070,
+				"y": 1715,
+				"rownumber": 22
+			}, {
+				"isRemain": false,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "22",
+				"DM1": 0,
+				"liuchengka": "NG22091408A03",
+				"JiaHao": "A03",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 2070,
+				"x": 2070,
+				"y": 990,
+				"rownumber": 22
+			}, {
+				"isRemain": false,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "22",
+				"DM1": 0,
+				"liuchengka": "NG22091408A03",
+				"JiaHao": "A03",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 2070,
+				"x": 2070,
+				"y": 265,
+				"rownumber": 22
+			}, {
+				"isRemain": true,
+				"h": 265,
+				"DM2": 0,
+				"xuhao": "null",
+				"DM1": 0,
+				"liuchengka": "null",
+				"JiaHao": "null",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 2070,
+				"x": 0,
+				"y": 0,
+				"rownumber": 0
+			}, {
+				"isRemain": true,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "null",
+				"DM1": 0,
+				"liuchengka": "null",
+				"JiaHao": "null",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 360,
+				"x": 4140,
+				"y": 1715,
+				"rownumber": 0
+			}, {
+				"isRemain": true,
+				"h": 265,
+				"DM2": 0,
+				"xuhao": "null",
+				"DM1": 0,
+				"liuchengka": "null",
+				"JiaHao": "null",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 2070,
+				"x": 2070,
+				"y": 0,
+				"rownumber": 0
+			}, {
+				"isRemain": true,
+				"h": 1715,
+				"DM2": 0,
+				"xuhao": "null",
+				"DM1": 0,
+				"liuchengka": "null",
+				"JiaHao": "null",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 360,
+				"x": 4140,
+				"y": 0,
+				"rownumber": 0
+			}],
+			"wuliao": "KC2006145",
+			"SameCount": 1,
+			"height": 2440
+		}, {
+			"mnumber": 3,
+			"width": 4500,
+			"rects": [{
+				"isRemain": false,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "61",
+				"DM1": 0,
+				"liuchengka": "NG22091408A06",
+				"JiaHao": "A06",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 2070,
+				"x": 0,
+				"y": 1715,
+				"rownumber": 61
+			}, {
+				"isRemain": false,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "61",
+				"DM1": 0,
+				"liuchengka": "NG22091408A06",
+				"JiaHao": "A06",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 2070,
+				"x": 0,
+				"y": 990,
+				"rownumber": 61
+			}, {
+				"isRemain": false,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "61",
+				"DM1": 0,
+				"liuchengka": "NG22091408A06",
+				"JiaHao": "A06",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 2070,
+				"x": 0,
+				"y": 265,
+				"rownumber": 61
+			}, {
+				"isRemain": false,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "61",
+				"DM1": 0,
+				"liuchengka": "NG22091408A06",
+				"JiaHao": "A06",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 2070,
+				"x": 2070,
+				"y": 1715,
+				"rownumber": 61
+			}, {
+				"isRemain": false,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "61",
+				"DM1": 0,
+				"liuchengka": "NG22091408A06",
+				"JiaHao": "A06",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 2070,
+				"x": 2070,
+				"y": 990,
+				"rownumber": 61
+			}, {
+				"isRemain": false,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "61",
+				"DM1": 0,
+				"liuchengka": "NG22091408A06",
+				"JiaHao": "A06",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 2070,
+				"x": 2070,
+				"y": 265,
+				"rownumber": 61
+			}, {
+				"isRemain": true,
+				"h": 265,
+				"DM2": 0,
+				"xuhao": "null",
+				"DM1": 0,
+				"liuchengka": "null",
+				"JiaHao": "null",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 2070,
+				"x": 0,
+				"y": 0,
+				"rownumber": 0
+			}, {
+				"isRemain": true,
+				"h": 265,
+				"DM2": 0,
+				"xuhao": "null",
+				"DM1": 0,
+				"liuchengka": "null",
+				"JiaHao": "null",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 2070,
+				"x": 2070,
+				"y": 0,
+				"rownumber": 0
+			}, {
+				"isRemain": true,
+				"h": 2440,
+				"DM2": 0,
+				"xuhao": "null",
+				"DM1": 0,
+				"liuchengka": "null",
+				"JiaHao": "null",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 360,
+				"x": 4140,
+				"y": 0,
+				"rownumber": 0
+			}],
+			"wuliao": "KC2006145",
+			"SameCount": 1,
+			"height": 2440
+		}, {
+			"mnumber": 4,
+			"width": 4500,
+			"rects": [{
+				"isRemain": false,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "61",
+				"DM1": 0,
+				"liuchengka": "NG22091408A06",
+				"JiaHao": "A06",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 2070,
+				"x": 0,
+				"y": 1715,
+				"rownumber": 61
+			}, {
+				"isRemain": false,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "27",
+				"DM1": 0,
+				"liuchengka": "NG22091408A03",
+				"JiaHao": "A03",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 1989,
+				"x": 0,
+				"y": 990,
+				"rownumber": 27
+			}, {
+				"isRemain": false,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "25",
+				"DM1": 0,
+				"liuchengka": "NG22091408A03",
+				"JiaHao": "A03",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 1956,
+				"x": 0,
+				"y": 265,
+				"rownumber": 25
+			}, {
+				"isRemain": false,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "26",
+				"DM1": 0,
+				"liuchengka": "NG22091408A03",
+				"JiaHao": "A03",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 2065,
+				"x": 2070,
+				"y": 1715,
+				"rownumber": 26
+			}, {
+				"isRemain": false,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "64",
+				"DM1": 0,
+				"liuchengka": "NG22091408A06",
+				"JiaHao": "A06",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 1700,
+				"x": 2070,
+				"y": 990,
+				"rownumber": 64
+			}, {
+				"isRemain": false,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "68",
+				"DM1": 0,
+				"liuchengka": "NG22091408A06",
+				"JiaHao": "A06",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 1630,
+				"x": 2070,
+				"y": 265,
+				"rownumber": 68
+			}, {
+				"isRemain": false,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "36",
+				"DM1": 0,
+				"liuchengka": "NG22091408A04",
+				"JiaHao": "A04",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 710,
+				"x": 3770,
+				"y": 990,
+				"rownumber": 36
+			}, {
+				"isRemain": false,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "35",
+				"DM1": 0,
+				"liuchengka": "NG22091408A04",
+				"JiaHao": "A04",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 710,
+				"x": 3770,
+				"y": 265,
+				"rownumber": 35
+			}, {
+				"isRemain": true,
+				"h": 265,
+				"DM2": 0,
+				"xuhao": "null",
+				"DM1": 0,
+				"liuchengka": "null",
+				"JiaHao": "null",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 1956,
+				"x": 0,
+				"y": 0,
+				"rownumber": 0
+			}, {
+				"isRemain": true,
+				"h": 990,
+				"DM2": 0,
+				"xuhao": "null",
+				"DM1": 0,
+				"liuchengka": "null",
+				"JiaHao": "null",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 33,
+				"x": 1956,
+				"y": 0,
+				"rownumber": 0
+			}, {
+				"isRemain": true,
+				"h": 1715,
+				"DM2": 0,
+				"xuhao": "null",
+				"DM1": 0,
+				"liuchengka": "null",
+				"JiaHao": "null",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 81,
+				"x": 1989,
+				"y": 0,
+				"rownumber": 0
+			}, {
+				"isRemain": true,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "null",
+				"DM1": 0,
+				"liuchengka": "null",
+				"JiaHao": "null",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 365,
+				"x": 4135,
+				"y": 1715,
+				"rownumber": 0
+			}, {
+				"isRemain": true,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "null",
+				"DM1": 0,
+				"liuchengka": "null",
+				"JiaHao": "null",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 70,
+				"x": 3700,
+				"y": 265,
+				"rownumber": 0
+			}, {
+				"isRemain": true,
+				"h": 265,
+				"DM2": 0,
+				"xuhao": "null",
+				"DM1": 0,
+				"liuchengka": "null",
+				"JiaHao": "null",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 1700,
+				"x": 2070,
+				"y": 0,
+				"rownumber": 0
+			}, {
+				"isRemain": true,
+				"h": 265,
+				"DM2": 0,
+				"xuhao": "null",
+				"DM1": 0,
+				"liuchengka": "null",
+				"JiaHao": "null",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 710,
+				"x": 3770,
+				"y": 0,
+				"rownumber": 0
+			}, {
+				"isRemain": true,
+				"h": 1715,
+				"DM2": 0,
+				"xuhao": "null",
+				"DM1": 0,
+				"liuchengka": "null",
+				"JiaHao": "null",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 20,
+				"x": 4480,
+				"y": 0,
+				"rownumber": 0
+			}],
+			"wuliao": "KC2006145",
+			"SameCount": 1,
+			"height": 2440
+		}, {
+			"mnumber": 5,
+			"width": 4500,
+			"rects": [{
+				"isRemain": false,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "37",
+				"DM1": 0,
+				"liuchengka": "NG22091408A03",
+				"JiaHao": "A03",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 1770,
+				"x": 0,
+				"y": 1715,
+				"rownumber": 37
+			}, {
+				"isRemain": false,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "34",
+				"DM1": 0,
+				"liuchengka": "NG22091408A04",
+				"JiaHao": "A04",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 1408,
+				"x": 0,
+				"y": 990,
+				"rownumber": 34
+			}, {
+				"isRemain": false,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "37",
+				"DM1": 0,
+				"liuchengka": "NG22091408A03",
+				"JiaHao": "A03",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 1770,
+				"x": 0,
+				"y": 265,
+				"rownumber": 37
+			}, {
+				"isRemain": false,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "72",
+				"DM1": 0,
+				"liuchengka": "NG22091408A06",
+				"JiaHao": "A06",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 2060,
+				"x": 1770,
+				"y": 1715,
+				"rownumber": 72
+			}, {
+				"isRemain": false,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "66",
+				"DM1": 0,
+				"liuchengka": "NG22091408A07",
+				"JiaHao": "A07",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 627,
+				"x": 3830,
+				"y": 1715,
+				"rownumber": 66
+			}, {
+				"isRemain": false,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "59",
+				"DM1": 0,
+				"liuchengka": "NG22091408A06",
+				"JiaHao": "A06",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 2060,
+				"x": 1770,
+				"y": 990,
+				"rownumber": 59
+			}, {
+				"isRemain": false,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "70",
+				"DM1": 0,
+				"liuchengka": "NG22091408A07",
+				"JiaHao": "A07",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 598,
+				"x": 3830,
+				"y": 990,
+				"rownumber": 70
+			}, {
+				"isRemain": false,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "59",
+				"DM1": 0,
+				"liuchengka": "NG22091408A06",
+				"JiaHao": "A06",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 2060,
+				"x": 1770,
+				"y": 265,
+				"rownumber": 59
+			}, {
+				"isRemain": false,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "32",
+				"DM1": 0,
+				"liuchengka": "NG22091408A04",
+				"JiaHao": "A04",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 595,
+				"x": 3830,
+				"y": 265,
+				"rownumber": 32
+			}, {
+				"isRemain": true,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "null",
+				"DM1": 0,
+				"liuchengka": "null",
+				"JiaHao": "null",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 362,
+				"x": 1408,
+				"y": 990,
+				"rownumber": 0
+			}, {
+				"isRemain": true,
+				"h": 265,
+				"DM2": 0,
+				"xuhao": "null",
+				"DM1": 0,
+				"liuchengka": "null",
+				"JiaHao": "null",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 1770,
+				"x": 0,
+				"y": 0,
+				"rownumber": 0
+			}, {
+				"isRemain": true,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "null",
+				"DM1": 0,
+				"liuchengka": "null",
+				"JiaHao": "null",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 43,
+				"x": 4457,
+				"y": 1715,
+				"rownumber": 0
+			}, {
+				"isRemain": true,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "null",
+				"DM1": 0,
+				"liuchengka": "null",
+				"JiaHao": "null",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 72,
+				"x": 4428,
+				"y": 990,
+				"rownumber": 0
+			}, {
+				"isRemain": true,
+				"h": 265,
+				"DM2": 0,
+				"xuhao": "null",
+				"DM1": 0,
+				"liuchengka": "null",
+				"JiaHao": "null",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 2060,
+				"x": 1770,
+				"y": 0,
+				"rownumber": 0
+			}, {
+				"isRemain": true,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "null",
+				"DM1": 0,
+				"liuchengka": "null",
+				"JiaHao": "null",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 75,
+				"x": 4425,
+				"y": 265,
+				"rownumber": 0
+			}, {
+				"isRemain": true,
+				"h": 265,
+				"DM2": 0,
+				"xuhao": "null",
+				"DM1": 0,
+				"liuchengka": "null",
+				"JiaHao": "null",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 670,
+				"x": 3830,
+				"y": 0,
+				"rownumber": 0
+			}],
+			"wuliao": "KC2006145",
+			"SameCount": 1,
+			"height": 2440
+		}, {
+			"mnumber": 6,
+			"width": 4500,
+			"rects": [{
+				"isRemain": false,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "62",
+				"DM1": 0,
+				"liuchengka": "NG22091408A06",
+				"JiaHao": "A06",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 2055,
+				"x": 0,
+				"y": 1715,
+				"rownumber": 62
+			}, {
+				"isRemain": false,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "28",
+				"DM1": 0,
+				"liuchengka": "NG22091408A03",
+				"JiaHao": "A03",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 1992,
+				"x": 2055,
+				"y": 1715,
+				"rownumber": 28
+			}, {
+				"isRemain": false,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "42",
+				"DM1": 0,
+				"liuchengka": "NG22091408A03",
+				"JiaHao": "A03",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 1892,
+				"x": 0,
+				"y": 990,
+				"rownumber": 42
+			}, {
+				"isRemain": false,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "42",
+				"DM1": 0,
+				"liuchengka": "NG22091408A03",
+				"JiaHao": "A03",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 1892,
+				"x": 0,
+				"y": 265,
+				"rownumber": 42
+			}, {
+				"isRemain": false,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "68",
+				"DM1": 0,
+				"liuchengka": "NG22091408A06",
+				"JiaHao": "A06",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 1630,
+				"x": 1892,
+				"y": 990,
+				"rownumber": 68
+			}, {
+				"isRemain": false,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "69",
+				"DM1": 0,
+				"liuchengka": "NG22091408A07",
+				"JiaHao": "A07",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 950,
+				"x": 3522,
+				"y": 990,
+				"rownumber": 69
+			}, {
+				"isRemain": false,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "65",
+				"DM1": 0,
+				"liuchengka": "NG22091408A06",
+				"JiaHao": "A06",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 1970,
+				"x": 1892,
+				"y": 265,
+				"rownumber": 65
+			}, {
+				"isRemain": false,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "31",
+				"DM1": 0,
+				"liuchengka": "NG22091408A04",
+				"JiaHao": "A04",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 590,
+				"x": 3862,
+				"y": 265,
+				"rownumber": 31
+			}, {
+				"isRemain": true,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "null",
+				"DM1": 0,
+				"liuchengka": "null",
+				"JiaHao": "null",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 453,
+				"x": 4047,
+				"y": 1715,
+				"rownumber": 0
+			}, {
+				"isRemain": true,
+				"h": 265,
+				"DM2": 0,
+				"xuhao": "null",
+				"DM1": 0,
+				"liuchengka": "null",
+				"JiaHao": "null",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 1892,
+				"x": 0,
+				"y": 0,
+				"rownumber": 0
+			}, {
+				"isRemain": true,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "null",
+				"DM1": 0,
+				"liuchengka": "null",
+				"JiaHao": "null",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 28,
+				"x": 4472,
+				"y": 990,
+				"rownumber": 0
+			}, {
+				"isRemain": true,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "null",
+				"DM1": 0,
+				"liuchengka": "null",
+				"JiaHao": "null",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 48,
+				"x": 4452,
+				"y": 265,
+				"rownumber": 0
+			}, {
+				"isRemain": true,
+				"h": 265,
+				"DM2": 0,
+				"xuhao": "null",
+				"DM1": 0,
+				"liuchengka": "null",
+				"JiaHao": "null",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 2608,
+				"x": 1892,
+				"y": 0,
+				"rownumber": 0
+			}],
+			"wuliao": "KC2006145",
+			"SameCount": 1,
+			"height": 2440
+		}, {
+			"mnumber": 7,
+			"width": 4500,
+			"rects": [{
+				"isRemain": false,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "68",
+				"DM1": 0,
+				"liuchengka": "NG22091408A06",
+				"JiaHao": "A06",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 1630,
+				"x": 0,
+				"y": 1715,
+				"rownumber": 68
+			}, {
+				"isRemain": false,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "68",
+				"DM1": 0,
+				"liuchengka": "NG22091408A06",
+				"JiaHao": "A06",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 1630,
+				"x": 0,
+				"y": 990,
+				"rownumber": 68
+			}, {
+				"isRemain": false,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "68",
+				"DM1": 0,
+				"liuchengka": "NG22091408A06",
+				"JiaHao": "A06",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 1630,
+				"x": 0,
+				"y": 265,
+				"rownumber": 68
+			}, {
+				"isRemain": false,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "73",
+				"DM1": 0,
+				"liuchengka": "NG22091408A06",
+				"JiaHao": "A06",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 1670,
+				"x": 1630,
+				"y": 1715,
+				"rownumber": 73
+			}, {
+				"isRemain": false,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "68",
+				"DM1": 0,
+				"liuchengka": "NG22091408A06",
+				"JiaHao": "A06",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 1630,
+				"x": 1630,
+				"y": 990,
+				"rownumber": 68
+			}, {
+				"isRemain": false,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "67",
+				"DM1": 0,
+				"liuchengka": "NG22091408A06",
+				"JiaHao": "A06",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 1620,
+				"x": 1630,
+				"y": 265,
+				"rownumber": 67
+			}, {
+				"isRemain": false,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "43",
+				"DM1": 0,
+				"liuchengka": "NG22091408A04",
+				"JiaHao": "A04",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 1148,
+				"x": 3300,
+				"y": 1715,
+				"rownumber": 43
+			}, {
+				"isRemain": false,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "30",
+				"DM1": 0,
+				"liuchengka": "NG22091408A04",
+				"JiaHao": "A04",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 1165,
+				"x": 3300,
+				"y": 990,
+				"rownumber": 30
+			}, {
+				"isRemain": false,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "29",
+				"DM1": 0,
+				"liuchengka": "NG22091408A04",
+				"JiaHao": "A04",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 1150,
+				"x": 3300,
+				"y": 265,
+				"rownumber": 29
+			}, {
+				"isRemain": true,
+				"h": 265,
+				"DM2": 0,
+				"xuhao": "null",
+				"DM1": 0,
+				"liuchengka": "null",
+				"JiaHao": "null",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 1630,
+				"x": 0,
+				"y": 0,
+				"rownumber": 0
+			}, {
+				"isRemain": true,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "null",
+				"DM1": 0,
+				"liuchengka": "null",
+				"JiaHao": "null",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 40,
+				"x": 3260,
+				"y": 990,
+				"rownumber": 0
+			}, {
+				"isRemain": true,
+				"h": 265,
+				"DM2": 0,
+				"xuhao": "null",
+				"DM1": 0,
+				"liuchengka": "null",
+				"JiaHao": "null",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 1620,
+				"x": 1630,
+				"y": 0,
+				"rownumber": 0
+			}, {
+				"isRemain": true,
+				"h": 990,
+				"DM2": 0,
+				"xuhao": "null",
+				"DM1": 0,
+				"liuchengka": "null",
+				"JiaHao": "null",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 50,
+				"x": 3250,
+				"y": 0,
+				"rownumber": 0
+			}, {
+				"isRemain": true,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "null",
+				"DM1": 0,
+				"liuchengka": "null",
+				"JiaHao": "null",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 52,
+				"x": 4448,
+				"y": 1715,
+				"rownumber": 0
+			}, {
+				"isRemain": true,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "null",
+				"DM1": 0,
+				"liuchengka": "null",
+				"JiaHao": "null",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 35,
+				"x": 4465,
+				"y": 990,
+				"rownumber": 0
+			}, {
+				"isRemain": true,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "null",
+				"DM1": 0,
+				"liuchengka": "null",
+				"JiaHao": "null",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 50,
+				"x": 4450,
+				"y": 265,
+				"rownumber": 0
+			}, {
+				"isRemain": true,
+				"h": 265,
+				"DM2": 0,
+				"xuhao": "null",
+				"DM1": 0,
+				"liuchengka": "null",
+				"JiaHao": "null",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 1200,
+				"x": 3300,
+				"y": 0,
+				"rownumber": 0
+			}],
+			"wuliao": "KC2006145",
+			"SameCount": 1,
+			"height": 2440
+		}, {
+			"mnumber": 8,
+			"width": 4500,
+			"rects": [{
+				"isRemain": false,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "65",
+				"DM1": 0,
+				"liuchengka": "NG22091408A06",
+				"JiaHao": "A06",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 1970,
+				"x": 0,
+				"y": 1715,
+				"rownumber": 65
+			}, {
+				"isRemain": false,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "33",
+				"DM1": 0,
+				"liuchengka": "NG22091408A04",
+				"JiaHao": "A04",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 1413,
+				"x": 1970,
+				"y": 1715,
+				"rownumber": 33
+			}, {
+				"isRemain": false,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "38",
+				"DM1": 0,
+				"liuchengka": "NG22091408A04",
+				"JiaHao": "A04",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 1052,
+				"x": 3383,
+				"y": 1715,
+				"rownumber": 38
+			}, {
+				"isRemain": false,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "37",
+				"DM1": 0,
+				"liuchengka": "NG22091408A03",
+				"JiaHao": "A03",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 1770,
+				"x": 0,
+				"y": 990,
+				"rownumber": 37
+			}, {
+				"isRemain": false,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "67",
+				"DM1": 0,
+				"liuchengka": "NG22091408A06",
+				"JiaHao": "A06",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 1620,
+				"x": 1770,
+				"y": 990,
+				"rownumber": 67
+			}, {
+				"isRemain": false,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "69",
+				"DM1": 0,
+				"liuchengka": "NG22091408A07",
+				"JiaHao": "A07",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 950,
+				"x": 3390,
+				"y": 990,
+				"rownumber": 69
+			}, {
+				"isRemain": false,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "40",
+				"DM1": 0,
+				"liuchengka": "NG22091408A04",
+				"JiaHao": "A04",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 1599,
+				"x": 0,
+				"y": 265,
+				"rownumber": 40
+			}, {
+				"isRemain": false,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "39",
+				"DM1": 0,
+				"liuchengka": "NG22091408A04",
+				"JiaHao": "A04",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 1578,
+				"x": 1599,
+				"y": 265,
+				"rownumber": 39
+			}, {
+				"isRemain": false,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "43",
+				"DM1": 0,
+				"liuchengka": "NG22091408A04",
+				"JiaHao": "A04",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 1148,
+				"x": 3177,
+				"y": 265,
+				"rownumber": 43
+			}, {
+				"isRemain": true,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "null",
+				"DM1": 0,
+				"liuchengka": "null",
+				"JiaHao": "null",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 65,
+				"x": 4435,
+				"y": 1715,
+				"rownumber": 0
+			}, {
+				"isRemain": true,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "null",
+				"DM1": 0,
+				"liuchengka": "null",
+				"JiaHao": "null",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 160,
+				"x": 4340,
+				"y": 990,
+				"rownumber": 0
+			}, {
+				"isRemain": true,
+				"h": 725,
+				"DM2": 0,
+				"xuhao": "null",
+				"DM1": 0,
+				"liuchengka": "null",
+				"JiaHao": "null",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 175,
+				"x": 4325,
+				"y": 265,
+				"rownumber": 0
+			}, {
+				"isRemain": true,
+				"h": 265,
+				"DM2": 0,
+				"xuhao": "null",
+				"DM1": 0,
+				"liuchengka": "null",
+				"JiaHao": "null",
+				"LM2": 0,
+				"LM1": 0,
+				"w": 4500,
+				"x": 0,
+				"y": 0,
+				"rownumber": 0
+			}],
+			"wuliao": "KC2006145",
+			"SameCount": 1,
+			"height": 2440
+		}
+      ],
+      method: "getResult"
+    }
+  };
+  
+  export default mockLayoutData;
+  
\ No newline at end of file
diff --git a/north-glass-erp/northglass-erp/src/components/sd/order/OrderCraftDetail.vue b/north-glass-erp/northglass-erp/src/components/sd/order/OrderCraftDetail.vue
index 607cad8..014c5fe 100644
--- a/north-glass-erp/northglass-erp/src/components/sd/order/OrderCraftDetail.vue
+++ b/north-glass-erp/northglass-erp/src/components/sd/order/OrderCraftDetail.vue
@@ -22,12 +22,7 @@
   //scrollX:{ enabled: true,gt:15 },//寮�鍚櫄鎷熸粴鍔�
   mouseConfig:{selected: true},//榧犳爣閫変腑
   keyboardConfig:{
-    isArrow: true,
-    isDel: true,
-    isEnter: true,
-    isTab: true,
-    isEdit: true,
-    isChecked: true
+    isArrow: true
   },
   columnConfig: {
     resizable: true,
@@ -83,7 +78,6 @@
 })
 
 const handleKeyDown = (evnt) =>{
-
   if(evnt.$event.keyCode === 38 ){
     let nextRowIndex = xGrid.value.getRowIndex(xGrid.value.getCurrentRecord()) - 1;
     if (nextRowIndex < xGrid.value.getTableData().fullData.length && nextRowIndex>=0) {
diff --git a/north-glass-erp/northglass-erp/src/components/sd/order/OrderDetail.vue b/north-glass-erp/northglass-erp/src/components/sd/order/OrderDetail.vue
index c5a1698..fdf608d 100644
--- a/north-glass-erp/northglass-erp/src/components/sd/order/OrderDetail.vue
+++ b/north-glass-erp/northglass-erp/src/components/sd/order/OrderDetail.vue
@@ -4,7 +4,7 @@
 import {useI18n} from "vue-i18n"
 import request from "@/utils/request"
 import footSum from "@/hook/footSum";
-import {addListener} from "@/hook/mouseMove";
+import {addListener,destroyAreaBox} from "@/hook/mouseMove";
 const { t } = useI18n()
 const xGrid = ref()
 const gridOptions = reactive({
@@ -18,9 +18,6 @@
   rowConfig: {isCurrent: true, isHover: true,height: 30},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
   virtualScroll: true, // 寮�鍚櫄鎷熸粴鍔ㄥ姛鑳�
   id: 'OrderDetail',
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
   scrollY:{ enabled: true,gt:13 },//寮�鍚櫄鎷熸粴鍔�
   //scrollX:{ enabled: true,gt:15 },//寮�鍚櫄鎷熸粴鍔�
 
@@ -34,12 +31,7 @@
   },
   mouseConfig:{selected: true},//榧犳爣閫変腑
   keyboardConfig:{
-    isArrow: true,
-    isDel: true,
-    isEnter: true,
-    isTab: true,
-    isEdit: true,
-    isChecked: true
+    isArrow: true
   },
 
   columns:[
@@ -130,7 +122,6 @@
 }
 
 const handleKeyDown = (evnt) =>{
-
   if(evnt.$event.keyCode === 38 ){
     let nextRowIndex = xGrid.value.getRowIndex(xGrid.value.getCurrentRecord()) - 1;
     if (nextRowIndex < xGrid.value.getTableData().fullData.length && nextRowIndex>=0) {
@@ -139,6 +130,7 @@
 
   }
   if(evnt.$event.keyCode === 40 ){
+
     let nextRowIndex = xGrid.value.getRowIndex(xGrid.value.getCurrentRecord()) + 1;
     if (nextRowIndex < xGrid.value.getTableData().fullData.length) {
       xGrid.value.setCurrentRow(xGrid.value.getTableData().fullData[nextRowIndex]);
diff --git a/north-glass-erp/northglass-erp/src/hook/mouseMove.ts b/north-glass-erp/northglass-erp/src/hook/mouseMove.ts
index 2c328ea..fcc37f5 100644
--- a/north-glass-erp/northglass-erp/src/hook/mouseMove.ts
+++ b/north-glass-erp/northglass-erp/src/hook/mouseMove.ts
@@ -38,7 +38,7 @@
     //cellarea.value = newElement
     //娣诲姞澶氶�夊垪
     nextTick(() => {
-        window.addEventListener("keypress", ()=>{
+        window.addEventListener("keydown", ()=>{
             destroyAreaBox()
         })
         window.addEventListener("mousedown", tableOutDestroyAreaBox)//缁檞indow娣诲姞榧犳爣鎸変笅浜嬩欢,鍒ゆ柇鏄惁鍦ㄨ〃鏍煎,鏄攢姣�
@@ -106,7 +106,7 @@
 
 //榧犳爣鎸変笅浜嬩欢
 const tbodymousedown = (event: MouseEvent) => {
-    event.stopPropagation()//闃绘鍐掓场
+    //event.stopPropagation()//闃绘鍐掓场
     getTablexGrid().closeMenu()//鎵嬪姩鍏抽棴鍙抽敭鑿滃崟
     //宸﹂敭0,涓敭1,鍙抽敭2
     if (event.button === 0) {//宸﹂敭鎸変笅
@@ -568,5 +568,6 @@
 export {
     addListener,
     toolbarButtonClickEvent,
-    exportData
+    exportData,
+    destroyAreaBox
 }
\ No newline at end of file
diff --git a/north-glass-erp/northglass-erp/src/router/index.js b/north-glass-erp/northglass-erp/src/router/index.js
index 0060c17..3c1527e 100644
--- a/north-glass-erp/northglass-erp/src/router/index.js
+++ b/north-glass-erp/northglass-erp/src/router/index.js
@@ -337,6 +337,11 @@
               component: () => import('../views/pp/glassOptimize/OptimizePrint.vue'),
             },
             {
+              path: 'optimizeMove',
+              name: 'optimizeMove',
+              component: () => import('../views/pp/glassOptimize/OptimizeMove.vue'),
+            },
+            {
               path: '/optimizeProject/:projectNo/:thickNess/:model',
               name: 'optimizeInfo',
               component: () => import('../views/pp/glassOptimize/OptimizeProject.vue')
diff --git a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/GlassComputed.vue b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/GlassComputed.vue
index 72cd1b7..7476340 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/GlassComputed.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/GlassComputed.vue
@@ -3,21 +3,61 @@
 import ComputeDetail from "@/views/pp/glassOptimize/page/ComputeDetail.vue";
 import Compute from "@/views/pp/glassOptimize/page/Compute.vue";
 import {onMounted, ref} from 'vue';
-import {ElMessage} from "element-plus";
+import {ElMessage, ElLoading} from "element-plus";
 import request from "@/utils/request";
 
 const props = defineProps({
   projectNo : String
 });
 
+const computed = ref(null);
+const computedCard = ref(null);
+const computedData = ref({
+  // 瑕佷紶閫掔粰瀛愮粍浠剁殑鏁版嵁
+});
+
+// 鐩戝惉瀛愮粍浠禖omputeCard鐨勬暟鎹�
+
+
+
+
+
+const handleCardData = (data) => {
+
+  computedCard.value = data;
+  // 灏� computed.value 鍚堝苟鍒� computedCard.value 鐨勬渶澶栧眰
+  computedCard.value = {
+    ...computed.value,
+    ...computedCard.value
+  };
+};
+
+// 鐩戝惉瀛愮粍浠禖omputeDetail鐨勬暟鎹�
+const handleData = (data) => {
+  computed.value = data;
+};
+
 onMounted(() => {
   if (props.projectNo) {
     handleFetchData(props.projectNo);
+    handleTableData(data);
+    handleDataReceive(data);
   }
 });
 
+// 鍦ㄧ埗缁勪欢涓畾涔夊鐞嗘帴鏀舵暟鎹殑鍑芥暟
+const handleDataReceive= async (data) => {
+  console.log('鎺ユ敹鍒板瓙缁勪欢鐨勬暟鎹�2:', data);
+  // 澶勭悊鏁版嵁锛屼緥濡傛洿鏂扮埗缁勪欢鐨勭姸鎬佹垨璋冪敤鍚庣API
+ 
+}
+
+
 // 鐢ㄤ簬瀛樺偍浠庡悗绔幏鍙栧埌鐨勬暟鎹紝鍒濆鍖栦负绌烘暟缁�
 const receivedData = ref([]);
+
+
+console.log(receivedData)
 const handleFetchData = async (projectNumber) => {
   try {
     const res = await request.post(`/glassOptimize/selectProjectCompute/${projectNumber}`);
@@ -39,6 +79,129 @@
   }
 };
 
+const  handleTableData= async (data) => {
+  // 澶勭悊鎺ユ敹鍒扮殑琛ㄦ牸鏁版嵁
+  console.log('鐖剁粍浠舵帴鏀跺埌鐨勬暟鎹�1:', data);
+}
+
+const handleSimulation = async () => {
+  const loading = ElLoading.service({
+      lock: true,
+      text: '姝e湪璁$畻涓紝璇风◢鍊�...',
+      background: 'rgba(0, 0, 0, 0.7)'
+    });
+   console.log('鍙戦�佸埌鍚庣鐨勬暟鎹�',computedCard.value)
+  const mockData = {
+      code: 200,
+      data: [
+        {
+          "glass_details": [
+            {
+              "angle": 0.0,
+              "glass_type": 3,
+              "height": 862,
+              "layers_number": 2,
+              "order_number": 33,
+              "process_id": "NG24120028A005",
+              "technology_number": 2,
+              "tempering_feed_sequence": 14,
+              "tempering_layout_id": 15,
+              "width": 814,
+              "x_coordinate": 1582.0,
+              "y_coordinate": 3768.0
+            },
+            {
+              "angle": 0.1,
+              "glass_type": 4,
+              "height": 862,
+              "layers_number": 2,
+              "order_number": 33,
+              "process_id": "NG24120028A005",
+              "technology_number": 2,
+              "tempering_feed_sequence": 14,
+              "tempering_layout_id": 15,
+              "width": 814,
+              "x_coordinate": 1582.0,
+              "y_coordinate": 3768.0
+            }
+          ],
+          "guidance": 15,
+          "rackinfos": [
+            "NG24120026A003-2",
+            "NG24120027A003-2",
+            "NG24120028A005-2"
+          ],
+          "ratioResult": [
+            {
+              "area": 10.53,
+              "glass_total": 15,
+              "ratio": 0.74,
+              "tempering_layout_id": "13"
+            },
+            {
+              "area": 10.53,
+              "glass_total": 15,
+              "ratio": 0.74,
+              "tempering_layout_id": "14"
+            },
+            {
+              "area": 9.82,
+              "glass_total": 14,
+              "ratio": 0.69,
+              "tempering_layout_id": "15"
+            }
+          ],
+          "resultSum": [15.0, 0.74]
+        }
+      ]
+    };
+    if (mockData.code === 200) {
+    loading.close();
+    ElMessage.success('妯℃嫙璁$畻鎴愬姛!');
+    }
+    // 鏇存柊computedData
+    computedData.value = mockData;
+  // try {
+  //   if (!computed.value ) {
+  //     ElMessage.warning('璇峰厛鍔犺浇鏁版嵁鍐嶈繘琛屾ā鎷熻绠�');
+  //     return;
+  //   }
+
+  //   // 鏄剧ず鍔犺浇鎻愮ず
+  //   const loading = ElLoading.service({
+  //     lock: true,
+  //     text: '姝e湪璁$畻涓紝璇风◢鍊�...',
+  //     background: 'rgba(0, 0, 0, 0.7)'
+  //   });
+
+  //   try {
+  //     // 灏嗘暟鎹彁浜ゅ埌鍚庣
+  //     const response = await request.post('/glassOptimize/simulationCalculate', {
+        
+  //       data: computedCard.value
+
+  //     });
+
+  //     if (response.code === 200) {
+  //       ElMessage.success('妯℃嫙璁$畻鎴愬姛!');
+  //     } else {
+  //       ElMessage.error(response.msg || '妯℃嫙璁$畻澶辫触');
+  //     }
+  //   } catch (error) {
+  //     console.error('璇锋眰澶辫触:', error);
+  //     ElMessage.error('缃戠粶寮傚父锛岃绋嶅悗鍐嶈瘯');
+  //   } finally {
+  //     // 鍏抽棴鍔犺浇鎻愮ず
+  //     loading.close();
+  //   }
+  // } catch (error) {
+  //   console.error('璇锋眰澶辫触:', error);
+  //   ElMessage.error('缃戠粶寮傚父锛岃绋嶅悗鍐嶈瘯');
+  // }
+};
+
+
+
 //鎺ュ彈瀛愮粍浠禖omputeCard鐨勬祦绋嬪崱鍙�
 let projectRow = ref({
   processId:null,
@@ -52,22 +215,22 @@
 
 <template>
   <div style="width: 100%; height: 100%;">
-
+   
     <div id="compute">
-      <compute @fetch-data="handleFetchData" :project-no="props.projectNo"/>
+      <compute  :data="computedData" @fetch-data="handleFetchData" :project-no="props.projectNo"  @sendData="handleData"  @simulate-click="handleSimulation" />
     </div>
 
     <div id="computeCard">
       <compute-card :table-data="receivedData"
                     :process-id="projectRow.processId===null?null:projectRow.processId"
-                    @upProcessId="handleUpdateProcessId"
+                    @upProcessId="handleUpdateProcessId" @sendData="handleCardData"
       />
     </div>
 
     <div id="computeDetail">
-      <compute-detail :process-id="projectRow.processId===null?null:projectRow.processId" />
+      <compute-detail :process-id="projectRow.processId===null?null:projectRow.processId"   />
     </div>
-
+   
   </div>
 </template>
 
diff --git a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/Optimize.vue b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/Optimize.vue
index a243556..e40b358 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/Optimize.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/Optimize.vue
@@ -21,11 +21,11 @@
         <el-breadcrumb-item v-show="false" @click="changeRouter(2)" :class="indexFlag===2?'indexTag':''" :to="{ path: '/main/order/createOrder' }">{{$t('order.page.createOrder')}}</el-breadcrumb-item>
         <el-breadcrumb-item @click="changeRouter(3)" :class="indexFlag===3?'indexTag':''" :to="{ path: '/main/glassOptimize/optimizePrint' }">鎵撳嵃
         </el-breadcrumb-item>
-        <el-breadcrumb-item @click="changeRouter(4)" :class="indexFlag===4?'indexTag':''" :to="{ path: '/main/glassOptimize/optimizePrint' }">璋冩暣
+        <el-breadcrumb-item @click="changeRouter(4)" :class="indexFlag===4?'indexTag':''" :to="{ path: '/main/glassOptimize/optimizeMove' }">璋冩暣
         </el-breadcrumb-item>
-        <el-breadcrumb-item @click="changeRouter(5)" :class="indexFlag===5?'indexTag':''" :to="{ path: '/main/glassOptimize/optimizePrint' }">鏁版帶
+        <el-breadcrumb-item @click="changeRouter(5)" :class="indexFlag===5?'indexTag':''" :to="{ path: '/main/glassOptimize/optimizeMove' }">鏁版帶
         </el-breadcrumb-item>
-        <el-breadcrumb-item @click="changeRouter(6)" :class="indexFlag===6?'indexTag':''" :to="{ path: '/main/glassOptimize/optimizePrint' }">璁剧疆
+        <el-breadcrumb-item @click="changeRouter(6)" :class="indexFlag===6?'indexTag':''" :to="{ path: '/main/glassOptimize/optimizeMove' }">璁剧疆
         </el-breadcrumb-item>
         <el-breadcrumb-item></el-breadcrumb-item>
       </el-breadcrumb>
diff --git a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/OptimizeMove.vue b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/OptimizeMove.vue
new file mode 100644
index 0000000..6f857f6
--- /dev/null
+++ b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/OptimizeMove.vue
@@ -0,0 +1,159 @@
+<template>
+    <div style="width:100%;height:2000px;">
+        <div class="layoutJSON">
+            Displayed as <code>[x, y, w, h]</code>:
+            <div class="columns">
+              <div v-for="item in layout" :key="item.i">
+  
+                    <b>{{item.i}}</b>: [{{item.x}}, {{item.y}}, {{item.w}}, {{item.h}}]
+                </div>
+            </div>
+        </div>
+        <hr/>
+        <input type="checkbox" v-model="draggable"/> Draggable
+        <input type="checkbox" v-model="resizable"/> Resizable
+        <input type="checkbox" v-model="responsive"/> Responsive
+        <br/>
+        <div style="width:100%;margin-top: 10px;height:100%;">
+          <grid-layout v-model:layout="layout"
+               :col-num="12"
+               :row-height="30"
+               :is-draggable="draggable"
+               :is-resizable="resizable"
+               :vertical-compact="true"
+               :use-css-transforms="true"
+  >
+  
+            <grid-item v-for="item in layout"
+             :key="item.i"  
+             :static="item.static"
+             :x="item.x"
+             :y="item.y"
+             :w="item.w"
+             :h="item.h"
+             :i="item.i"
+  >
+      <span class="text">{{item.i}}</span>
+  </grid-item>
+  
+            </grid-layout>
+        </div>
+    </div>
+  </template>
+  
+  <script>
+  import { GridLayout, GridItem } from 'vue3-grid-layout';
+  
+  export default {
+    components: {
+      GridLayout,
+      GridItem,
+    },
+    data() {
+        return {
+            layout: [
+                {"x":0,"y":0,"w":2,"h":2,"i":"0666*343"},
+                {"x":2,"y":0,"w":2,"h":4,"i":"1"},
+                {"x":4,"y":0,"w":2,"h":5,"i":"2"},
+                {"x":6,"y":0,"w":2,"h":3,"i":"3"},
+                {"x":8,"y":0,"w":2,"h":3,"i":"4"},
+                {"x":10,"y":0,"w":2,"h":3,"i":"5"},
+                {"x":0,"y":5,"w":2,"h":5,"i":"6"},
+                {"x":2,"y":5,"w":2,"h":5,"i":"7"},
+                {"x":4,"y":5,"w":2,"h":5,"i":"8"},
+                {"x":6,"y":4,"w":2,"h":4,"i":"9"},
+                {"x":8,"y":4,"w":2,"h":4,"i":"10"},
+                {"x":10,"y":4,"w":2,"h":4,"i":"11"},
+                {"x":0,"y":10,"w":2,"h":5,"i":"12"},
+                {"x":2,"y":10,"w":2,"h":5,"i":"13"},
+                {"x":4,"y":8,"w":2,"h":4,"i":"14"},
+                {"x":6,"y":8,"w":2,"h":4,"i":"15"},
+                {"x":8,"y":10,"w":2,"h":5,"i":"16"},
+                {"x":10,"y":4,"w":2,"h":2,"i":"17"},
+                {"x":0,"y":9,"w":2,"h":3,"i":"18"},
+                {"x":2,"y":6,"w":2,"h":2,"i":"19"}
+            ],
+            draggable: true,
+            resizable: true,
+            responsive: true,
+            index: 0
+        }
+    },
+    methods: {
+    }
+  }
+  </script>
+  
+  <style scoped>
+  .vue-grid-layout {
+    background: #eee;
+  }
+  
+  .vue-grid-item:not(.vue-grid-placeholder) {
+    background: #ccc;
+    border: 1px solid black;
+  }
+  
+  .vue-grid-item .resizing {
+    opacity: 0.9;
+  }
+  
+  .vue-grid-item .static {
+    background: #cce;
+  }
+  
+  .vue-grid-item .text {
+    font-size: 24px;
+    text-align: center;
+    position: absolute;
+    top: 0;
+    bottom: 0;
+    left: 0;
+    right: 0;
+    margin: auto;
+    height: 100%;
+    width: 100%;
+  }
+  
+  .vue-grid-item .no-drag {
+    height: 100%;
+    width: 100%;
+  }
+  
+  .vue-grid-item .minMax {
+    font-size: 12px;
+  }
+  
+  .vue-grid-item .add {
+    cursor: pointer;
+  }
+  
+  .vue-draggable-handle {
+    position: absolute;
+    width: 20px;
+    height: 20px;
+    top: 0;
+    left: 0;
+    background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='10'><circle cx='5' cy='5' r='5' fill='#999999'/></svg>") no-repeat;
+    background-position: bottom right;
+    padding: 0 8px 8px 0;
+    background-repeat: no-repeat;
+    background-origin: content-box;
+    box-sizing: border-box;
+    cursor: pointer;
+  }
+  
+  .layoutJSON {
+    background: #ddd;
+    border: 1px solid black;
+    margin-top: 10px;
+    padding: 10px;
+  }
+  
+  .columns {
+    -moz-columns: 120px;
+    -webkit-columns: 120px;
+    columns: 120px;
+  }
+  
+  </style>
\ No newline at end of file
diff --git a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/OptimizePrint.vue b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/OptimizePrint.vue
index 9f6dc5b..e6fd0ff 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/OptimizePrint.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/OptimizePrint.vue
@@ -2,8 +2,8 @@
  import {ref} from "vue";
 
  const layout=ref([
-   {"x":0,"y":0,"w":2,"h":2,"i":"0"},
-   {"x":2,"y":0,"w":2,"h":4,"i":"1"},
+   {"x":0,"y":0,"w":50,"h":50,"i":"0"},
+   /*{"x":2,"y":0,"w":2,"h":4,"i":"1"},
    {"x":4,"y":0,"w":2,"h":5,"i":"2"},
    {"x":6,"y":0,"w":2,"h":3,"i":"3"},
    {"x":8,"y":0,"w":2,"h":3,"i":"4"},
@@ -21,7 +21,7 @@
    {"x":8,"y":10,"w":2,"h":5,"i":"16"},
    {"x":10,"y":4,"w":2,"h":2,"i":"17"},
    {"x":0,"y":9,"w":2,"h":3,"i":"18"},
-   {"x":2,"y":6,"w":2,"h":2,"i":"19"}
+   {"x":2,"y":6,"w":2,"h":2,"i":"19"}*/
  ])
 
  const layoutUpdated = (newLayout) => {
@@ -46,15 +46,15 @@
 
 <template>
   <grid-layout
-      style="border:1px solid black;height: 100%;width: 100%;overflow: hidden;"
+      style="border:1px solid black;height: 244px;width: 366px;overflow: hidden;grid-template-columns: 1px"
       :layout.sync="layout"
-      :col-num="12"
-      :row-height="30"
+      :col-num="366"
+      :row-height="1"
       :is-draggable="true"
       :is-resizable="false"
       :is-mirrored="false"
       :vertical-compact="true"
-      :margin="[2, 2]"
+      :margin="[0, 0]"
       :use-css-transforms="true"
       :autoSize="false"
       @layout-updated="layoutUpdated"
diff --git a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/RectRenderer.vue b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/RectRenderer.vue
new file mode 100644
index 0000000..11e262d
--- /dev/null
+++ b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/RectRenderer.vue
@@ -0,0 +1,180 @@
+<template>
+  <div ref="layoutPanel" :class="panelClass" :style="panelStyle">
+    <div v-for="(layout, layoutIndex) in layouts" :key="layoutIndex" 
+         class="layout-wrapper">
+      
+      <!-- 甯冨眬淇℃伅鏍囩 -->
+      <div class="layout-info" :style="layoutInfoStyle(layoutIndex)">
+        甯冨眬{{ layoutIndex + 1 }}
+      </div>
+
+      <!-- 甯冨眬瀹瑰櫒 -->
+      <div class="layout-container"
+           :style="layoutContainerStyle(layoutIndex)">
+        
+        <div v-for="(rect, rectIndex) in layout.rects" :key="rectIndex" 
+             :ref="(el) => { if (el) rectsElements[layoutIndex + '-' + rectIndex] = el }"
+             :class="rectClass"
+             :style="rectStyle(rect, layoutIndex)"
+             @click="handleRectClick(layoutIndex, rectIndex)">
+          <div v-if="!rect.isRemain" class="rect-content">
+            <div class="size">{{ rect.w }}脳{{ rect.h }}</div>
+            <div class="jia-hao">{{ rect.JiaHao }}</div>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script setup>
+import { ref, reactive, onMounted, onUnmounted } from 'vue';
+
+const props = defineProps({
+  layoutData: {
+    type: Object,
+    required: true
+  },
+  gw: {
+    type: Number,
+    default: 1000
+  },
+  gh: {
+    type: Number,
+    default: 1000
+  },
+  style: {
+    type: String,
+    default: 'width:1000px;height:600px;display:block;background:gray'
+  }
+});
+
+const emit = defineEmits(['rectClicked']);
+
+const layoutPanel = ref(null);
+const rectsElements = ref({});
+const focusIndex = ref(null);
+const layouts = ref([]);
+
+const panelClass = ref('');
+const panelStyle = ref(props.style);
+
+const rectClass = ref('layout-rect');
+
+const layoutContainerStyle = (layoutIndex) => {
+  const containerWidth = (props.gw - 210) / 2; // 涓ゅ垪锛屾瘡鍒楀搴︿负gw鐨勪竴鍗婏紝鍑忓幓鍙宠竟璺�
+  const containerHeight = (props.gh - 100) / 3; // 涓夎锛屾瘡琛岄珮搴︿负gh鐨勪笁鍒嗕箣涓�锛屽噺鍘讳笅杈硅窛
+  const x = (layoutIndex % 2) * (containerWidth + 50); // 妯悜鎺掑垪锛屽姞涓�50px闂磋窛
+  const y = Math.floor(layoutIndex / 2) * (containerHeight + 50); // 绾靛悜鎺掑垪锛屽姞涓�50px闂磋窛
+  return {
+    position: 'absolute',
+    left: `${x}px`,
+    top: `${y}px`,
+    width: `${containerWidth}px`,
+    height: `${containerHeight}px`,
+    overflow: 'visible',
+    border: '1px solid #ccc',
+    background: '#fff'
+  };
+};
+
+const layoutInfoStyle = (layoutIndex) => {
+  const containerWidth = (props.gw - 210) / 2;
+  const containerHeight = (props.gh - 100) / 3;
+  const x = (layoutIndex % 2) * (containerWidth + 50);
+  const y = Math.floor(layoutIndex / 2) * (containerHeight + 50);
+  return {
+    position: 'absolute',
+    left: `${x}px`,
+    top: `${y - 45}px`, // 灏嗘爣绛炬斁鍦ㄧ増鍥惧鍣ㄧ殑涓婃柟
+    background: 'none',
+    textAlign: 'center',
+    zIndex: 1000
+  };
+};
+
+const rectStyle = (rect, layoutIndex) => {
+  const layout = layouts.value[layoutIndex];
+  const containerWidth = (props.gw - 100) / 2;
+  const containerHeight = (props.gh - 100) / 3;
+  const scale = Math.min(
+    containerWidth / layout.width,
+    containerHeight / layout.height
+  );
+  
+  return {
+    position: 'absolute',
+    left: `${rect.x * scale}px`,
+    top: `${rect.y * scale}px`,
+    width: `${rect.w * scale}px`,
+    height: `${rect.h * scale}px`,
+    backgroundColor: rect.isRemain ? '#f0f0f0' : '#a0d8ef',
+    border: '1px solid #000',
+    cursor: 'pointer'
+  };
+};
+
+const handleRectClick = (layoutIndex, rectIndex) => {
+  focusIndex.value = { layoutIndex, rectIndex };
+  emit('rectClicked', layoutIndex, rectIndex);
+};
+
+const updateLayout = () => {
+  if (!layoutPanel.value) return;
+
+  layouts.value = props.layoutData.data.Layouts;
+};
+
+onMounted(() => {
+  updateLayout();
+});
+
+onUnmounted(() => {
+  rectsElements.value = {};
+});
+</script>
+
+<style scoped>
+.layout-wrapper {
+  position: relative;
+  margin-top:50px;
+}
+
+.layout-container {
+  position: relative;
+  overflow: visible;
+}
+
+.layout-info {
+  color: #444;
+  font-size: 12px;
+  background-color: #ffffff;
+  padding: 5px 10px;
+  border-radius: 3px;
+  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
+  font-weight: bold;
+
+}
+
+.rect-content {
+  display: grid;
+  grid-template-columns: 1fr;
+  grid-template-rows: 1fr;
+  padding: 5px;
+}
+
+.size {
+  grid-row: 1;
+  grid-column: 1;
+  color: #444;
+  font-size: 12px;
+}
+
+.jia-hao {
+  grid-row: 2;
+  grid-column: 1;
+  margin: auto;
+  font-size: 14px;
+  font-weight: bold;
+}
+</style>
diff --git a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/Compute.vue b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/Compute.vue
index 4e0033d..8af0dde 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/Compute.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/Compute.vue
@@ -2,10 +2,44 @@
 import {reactive, ref, watch} from "vue";
 import {useI18n} from "vue-i18n";
 import {Platform, Search, SuccessFilled} from "@element-plus/icons-vue";
+import useUserInfoStore from "@/stores/userInfo";
+import request from "@/utils/request";
+import {ElMessage} from "element-plus";
+
+
+const userStore = useUserInfoStore()
+const username = userStore.user.userName
 
 const {t} = useI18n()
 
 const xGrid = ref()
+//鑾峰彇宸ョ▼鍙�
+const props = defineProps({
+  projectNo : String,
+  data: {
+    type: Array,
+    default: () => []
+  }
+});
+// 瀹氫箟鍝嶅簲寮忔暟鎹紝鐢ㄤ簬缁戝畾宸ョ▼鍙疯緭鍏ユ鐨勫��
+const inputValue = ref(props.projectNo);
+
+
+
+// 瀹氫箟娣锋帓绛夌骇
+const optionVal = ref('')
+
+// 瀹氫箟瑁呰浇鐜�
+const percentage1 = ref(80)
+const percentage2 = ref(50)
+
+// 瀹氫箟鍏朵粬琛ㄥ崟鏁版嵁
+const furnaceWidth = ref('') // 鐐夊
+const furnaceLength = ref('') // 鐐夐暱
+const heatingTime = ref('') // 鍔犵儹鏃堕棿
+const spacingLong = ref('') // 闀胯酱闂撮殧
+const spacingWidth = ref('') // 瀹借酱闂撮殧
+
 
 const gridOptions = reactive({
   height: '100%',
@@ -36,14 +70,14 @@
   },
 
   columns: [
-    {field: 'id', width: 70, title: '搴忓彿', filters: [{data: ''}], slots: {default: 'state', filter: 'num2_filter'}},
-    {field: '', width: 100, title: '鐗堝浘鏁�'},
-    {field: '', width: 100, title: '瑁呰浇鐜�'},
-    {field: '', width: 100, title: '娴佺▼鍗℃暟'},
-    {field: '', width: 100, title: '妯℃嫙鐗囨暟'},
+    {field: 'id', width: 70, title: '搴忓彿'},
+    {field: 'layoutsNumber', width: 100, title: '鐗堝浘鏁�'},
+    {field: 'loadingRate', width: 100, title: '瑁呰浇鐜�'},
+    {field: 'processCards', width: 100, title: '娴佺▼鍗℃暟'},
+    {field: 'simulatedPieces', width: 100, title: '妯℃嫙鐗囨暟'},
     {
       field: 'processId',
-      width: 150,
+      width: 350,
       title: t('processCard.processId'),
       filters: [{data: ''}],
       slots: {filter: 'num1_filter'},
@@ -60,12 +94,34 @@
 })
 
 
-// 杩涘害鏉¢鑹插拰鎸夐挳鍔犲噺
-const percentage1 = ref(80)
-const percentage2 = ref(50)
 
-// 娣锋帓绛夌骇
-const optionVal = ref('')
+
+
+// 鐩戝惉鐖剁粍浠朵紶閫掔殑鏁版嵁鍙樺寲
+watch(() => props.data, (newValue) => {
+  if (newValue) {
+    // 澶勭悊鏁版嵁骞舵洿鏂拌〃鏍�
+    const processData = newValue.data[0];
+    console.log('Processed Data:', processData);
+    const processedData = [
+      {
+        id: "1",
+        layoutsNumber: processData.resultSum[0],
+        loadingRate: processData.resultSum[1],
+        processCards: processData.rackinfos.length,
+        simulatedPieces: processData.glass_details.length,
+        processId:processData.rackinfos
+      }
+    ];
+    gridOptions.data = processedData;
+    console.log(gridOptions.data)
+  } else {
+    console.error("鏁版嵁鏍煎紡涓嶆纭垨涓虹┖");
+    gridOptions.data = [];
+  }
+})
+
+
 const options = [
   {
     value: '0',
@@ -85,20 +141,70 @@
   },
 ]
 
-//鑾峰彇宸ョ▼鍙�
-const props = defineProps({
-  projectNo : String
-});
-// 瀹氫箟鍝嶅簲寮忔暟鎹紝鐢ㄤ簬缁戝畾宸ョ▼鍙疯緭鍏ユ鐨勫��
-const inputValue = ref(props.projectNo);
 
-let emit = defineEmits(['fetch-data']);
 
+// let emit = defineEmits(['fetch-data']);
+let emit = defineEmits(['fetch-data', 'sendData'])
+const inputValues = {
+  project_no:inputValue,
+    glass_thickness:"",
+    glass_type:"",
+    chaos_pct: optionVal.value*0.01,//娣锋帓绛夌骇
+    cage_free:percentage2.value*0.01,//鐞嗙墖榫欑┖闂插害
+    tempering_time:heatingTime.value,//閽㈠寲鍔犵儹鏃堕棿
+    heat_mode: 0,//妯″紡閫夋嫨
+    max_load_pct: percentage1.value*0.01,//鏈�澶ц杞界巼
+    max_area: 0,//鏈�澶ч潰绉�
+    max_qty:0,//鏈�澶х墖鏁�
+    load_width:furnaceWidth,
+    load_length: furnaceLength,
+  x_space: spacingWidth,
+  y_space: spacingLong,
+  load_rate: null,
+  };
+
+  // 鍙戦�佹墍鏈夋暟鎹埌鐖剁粍浠�
+  emit('sendData', {
+    ...inputValues
+  });
 const handleSearchClick = () => {
   // 閫氳繃 $emit 瑙﹀彂鑷畾涔変簨浠讹紝灏嗗伐绋嬪彿浼犻�掔粰鐖剁粍浠讹紝鐢辩埗缁勪欢鍘昏皟鐢ㄦ帴鍙h幏鍙栨暟鎹�
   emit('fetch-data', inputValue.value);
+ 
+ 
+};
+const handleSimulationClick = () => {
+  // 瑙﹀彂鐖剁粍浠剁殑 simulate-click 浜嬩欢
+  emit('simulate-click');
+ 
 };
 
+
+
+
+
+const handleSave = () => {
+  
+  if (props.data) {
+ 
+
+    let projectData = ref({
+      projectdetail: props.data,
+      userName : username,
+      inputValues:inputValues
+    })
+   
+    request.post(`/glassOptimize/simulationSave`, projectData.value).then((res) => {
+      if (res.code == 200 && res.data === true) {
+        ElMessage.success(t('basicData.msg.saveSuccess'))
+      
+      } else {
+        ElMessage.warning(res.msg)
+      }
+    })
+
+  }
+}
 
 </script>
 
@@ -106,77 +212,75 @@
   <div style="width: 100%;height: 100%">
     <!--妯℃嫙璁$畻琛ㄥご-->
     <div id="title" style="margin-top: -10px">
-      <span>
-        宸ョ▼缂栧彿
-      <el-input style="width:150px;margin-left: 30px" clearable v-model="inputValue" placeholder="璇疯緭鍏ュ伐绋嬪彿"></el-input>
-      <el-button
-          type="primary"
-          :icon="Search"
-          style="margin-left: 20px"
-          @click="handleSearchClick"
-      >{{ $t('basicData.search') }}
-      </el-button>
+  <span>
+    宸ョ▼缂栧彿
+    <el-input style="width:150px;margin-left: 30px" clearable v-model="inputValue" placeholder="璇疯緭鍏ュ伐绋嬪彿"></el-input>
+    <el-button
+        type="primary"
+        :icon="Search"
+        style="margin-left: 20px"
+        @click="handleSearchClick"
+    >{{ $t('basicData.search') }}
+    </el-button>
+  </span>
+  <span style="float: right ; margin-right: 120px">
+    宸ョ▼娣锋帓绛夌骇
+      <el-select
+          placeholder="閫夋嫨娣锋帓绛夌骇"
+          style="margin-left:10px; width: 200px; "
+          ref="getSelect"
+          v-model="optionVal"
+          clearable
+          class="m-2"
+          @change="getWorkOrder"
+      >
+        <el-option
+            v-for="item in options"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+        />
+      </el-select>
+    <el-button type="primary" style="margin-left: 10px" :icon="Platform"  @click="handleSimulationClick">妯℃嫙璁$畻</el-button>
+    <el-button type="primary" style="margin-left: 20px" :icon="SuccessFilled"  @click="handleSave">淇濆瓨</el-button>
+  </span><br>
+  <div class="demo-progress" style="margin-top: 5px">
+    <div style="display: flex; align-items: center">
+      <span>閽㈠寲鏈�澶ц杞�</span>
+      <!-- 杩涘害鏉¤缃� -->
+      <el-slider
+          style="max-width: 400px; flex: 1; margin-left: 10px"
+          v-model="percentage1"
+          :min="0"
+          :max="100"
+          :step="1"/>
+      <span style="margin-left: 20px ; width: 30px;">{{ percentage1 }}%</span>
+      <span style="float: right ; margin-left: 150px;">
+            瀹借酱闂撮殧 <vxe-input size="small" class="input" clearable v-model="spacingWidth"></vxe-input>
+            鐐夊(mm) <vxe-input size="small" class="input" clearable v-model="furnaceWidth"></vxe-input>
       </span>
-      <span style="float: right ; margin-right: 120px">
-        宸ョ▼娣锋帓绛夌骇
-          <el-select
-              placeholder="閫夋嫨娣锋帓绛夌骇"
-              style="margin-left:10px; width: 200px; "
-              ref="getSelect"
-              v-model="optionVal"
-              clearable
-              class="m-2"
-              @change="getWorkOrder"
-          >
-
-            <el-option
-                v-for="item in options"
-                :key="item.value"
-                :label="item.label"
-                :value="item.value"
-            />
-          </el-select>
-      <el-button type="primary" style="margin-left: 10px" :icon="Platform">妯℃嫙璁$畻</el-button>
-      <el-button type="primary" style="margin-left: 20px" :icon="SuccessFilled">淇濆瓨</el-button>
-      </span><br>
-      <div class="demo-progress" style="margin-top: 5px">
-        <div style="display: flex; align-items: center">
-          <span>閽㈠寲鏈�澶ц杞�</span>
-          <!--杩涘害鏉¤缃�-->
-          <el-slider
-              style="max-width: 400px; flex: 1; margin-left: 10px"
-              v-model="percentage1"
-              :min="0"
-              :max="100"
-              :step="1"/>
-          <span style="margin-left: 20px ; width: 30px;">{{ percentage1 }}%</span>
-          <span style="float: right ; margin-left: 150px;">
-                宸ョ▼鐜荤拑鐗�&nbsp;&nbsp;<vxe-input size="small" class="input" clearable></vxe-input>
-                瀹借酱闂撮殧 <vxe-input size="small" class="input" clearable></vxe-input>
-                鐐夊(mm) <vxe-input size="small" class="input" clearable></vxe-input>
-              </span>
-        </div>
-      </div>
-      <br>
-      <div class="demo-progress" style="margin-top: -10px">
-        <div style="display: flex; align-items: center">
-          <span>鐞嗙墖绗肩┖闂插害</span>
-          <!--杩涘害鏉¤缃�-->
-          <el-slider
-              style="max-width: 400px; flex: 1; margin-left: 10px"
-              v-model="percentage2"
-              :min="0"
-              :max="100"
-              :step="1"/>
-          <span style="margin-left: 20px ; width: 30px;">{{ percentage2 }}%</span>
-          <span style="float: right ; margin-left: 150px;">
-                  鍔犵儹鏃堕棿(绉�)<vxe-input size="small" class="input" clearable></vxe-input>
-                  闀胯酱闂撮殧 <vxe-input size="small" class="input" clearable></vxe-input>
-                  鐐夐暱(mm) <vxe-input size="small" class="input" clearable></vxe-input>
-          </span>
-        </div>
-      </div>
     </div>
+  </div>
+  <br>
+  <div class="demo-progress" style="margin-top: -10px">
+    <div style="display: flex; align-items: center">
+      <span>鐞嗙墖绗肩┖闂插害</span>
+      <!-- 杩涘害鏉¤缃� -->
+      <el-slider
+          style="max-width: 400px; flex: 1; margin-left: 10px"
+          v-model="percentage2"
+          :min="0"
+          :max="100"
+          :step="1"/>
+      <span style="margin-left: 20px ; width: 30px;">{{ percentage2 }}%</span>
+      <span style="float: right ; margin-left: 150px;">
+              鍔犵儹鏃堕棿(绉�)<vxe-input size="small" class="input" clearable v-model="heatingTime"></vxe-input>
+              闀胯酱闂撮殧 <vxe-input size="small" class="input" clearable v-model="spacingLong"></vxe-input>
+              鐐夐暱(mm) <vxe-input size="small" class="input" clearable v-model="furnaceLength"></vxe-input>
+      </span>
+    </div>
+  </div>
+</div>
 
     <vxe-grid
         size="small"
diff --git a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/ComputeCard.vue b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/ComputeCard.vue
index f1a9272..1ba435b 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/ComputeCard.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/ComputeCard.vue
@@ -1,5 +1,6 @@
 <script setup>
 import {nextTick, onMounted, reactive, ref, watch} from "vue";
+import request from "@/utils/request";
 import {useI18n} from "vue-i18n";
 const { t } = useI18n()
 
@@ -70,9 +71,14 @@
   },
 
 })
+
 let emit = defineEmits([
-  'changeDialog','upProcessId'
+  'changeDialog','upProcessId', 'sendData'
 ]);
+
+
+
+
 
 const props = defineProps({
   tableData: Array,
@@ -88,12 +94,111 @@
       if (typeof grid.refresh === 'function') {
         grid.refresh();
       }
+      
+      
+      // 鎻愬彇鎵�鏈夊敮涓�鐨刾rocess_id
+      const processIds = Array.from(new Set(newData.map(item => item.process_id)));
+      
+      // 鍙戣捣鎵�鏈夎姹�
+      const requests = processIds.map(processId => 
+        request.post(`/glassOptimize/selectComputeDetail/${processId}`)
+      );
+      
+      try {
+        const responses = await Promise.all(requests);
+        
+        // 鏁村悎鏁版嵁
+        const processData = responses.reduce((acc, res, index) => {
+          const processId = processIds[index];
+          
+          // 妫�鏌es.data鏄惁涓哄璞★紝骞朵笖鍖呭惈'data'瀛楁
+          if (typeof res.data === 'object' && res.data !== null && 'data' in res.data) {
+            const data = res.data.data;
+            
+            // 妫�鏌ata鏄惁涓烘暟缁�
+            if (!Array.isArray(data)) {
+              console.error(`鍝嶅簲鏁版嵁涓殑'data'瀛楁涓嶆槸鏁扮粍锛宲rocess_id: ${processId}`);
+              return acc;
+            }
+            
+            // 鑾峰彇瀵瑰簲process_id鐨刵ewData鏉$洰
+            const relatedNewData = newData.filter(item => item.process_id === processId);
+           
+            // 鍒濆鍖杙rocess_card瀵硅薄
+            const processCard = {
+  process_no: processId,
+  layers: relatedNewData.technology_number,
+  total_layers: relatedNewData.TotalNumber,
+  total_num: relatedNewData.quantity,
+  total_area: relatedNewData.area,
+  is_must: true,
+  allow_rotate: relatedNewData.check === 1 ? true : false,
+  priority_level: 0,
+  tempering: relatedNewData.check === 2 ? true : false,
+  curtain_wall: relatedNewData.check === 3 ? true : false,
+  patch_state: 0,
+  merge: 0,
+  glass_details: []
+};
+
+            
+            // 鏁村悎glass_details
+            data.forEach(detail => {
+              const matchedNewData = relatedNewData.find(
+                item => item.technology_number === detail.technology_number
+              );
+              
+              processCard.glass_details.push({
+                process_id: processId,
+                technology_number: detail.technology_number,
+                order_number: detail.order_number,
+                layers_number: detail.layers_number,
+                max_width: detail.width,
+                max_height: detail.height,
+                child_width: detail.child_width,
+                child_height: detail.child_height,
+                quantity: matchedNewData ? matchedNewData.quantity : 0,
+                patch_state: 0
+              });
+            });
+            
+            // 灏唒rocessCard娣诲姞鍒癮cc涓�
+            if (!acc.process_cards) {
+              acc.process_cards = [];
+            }
+            acc.process_cards.push(processCard);
+              // 璁剧疆鍏朵粬瀛楁鐨勫��
+          
+          } else {
+            console.error(`鍝嶅簲鏁版嵁鏍煎紡涓嶆纭紝process_id: ${processId}`);
+          }
+          return acc;
+        }, {});
+        if (newData.length > 0) {
+          // 鍋囪鎵�鏈夋潯鐩殑thickness鍜実lassType鐩稿悓
+          processData.glass_thickness = newData[0].thickness;
+          processData.glass_type = newData[0].glassType;
+        } else {
+          processData.glass_thickness = "";
+          processData.glass_type = "";
+        }
+      
+     
+        
+        // 鍙戦�佹暣鍚堝悗鐨勬暟鎹埌鐖剁粍浠�
+        emit('sendData', processData);
+      } catch (error) {
+        console.error('璇锋眰澶辫触:', error);
+      }
     }
   } else {
     console.error('浼犻�掔粰琛ㄦ牸鐨勬暟鎹牸寮忎笉绗﹀悎瑕佹眰锛屾湡鏈涙槸鏁扮粍鏍煎紡');
   }
 });
 
+
+
+
 let process_id = ref()
 //鑾峰彇娴佺▼鍗″彿璇︽儏
 let rowClickIndex = ref(null)
diff --git a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/ComputeDetail.vue b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/ComputeDetail.vue
index 59ef9ec..31550a7 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/ComputeDetail.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/ComputeDetail.vue
@@ -60,17 +60,21 @@
     zoom: true,
     custom: true
   },
-
 })
+
+
+
+
 
 watch(
     () => props.processId,
     (newValue, oldValue) => {
       if (props.processId!=null){
         selectComputeDetail()
+      
       }
-    }
-);
+      
+});
 
 const selectComputeDetail =  () => {
   if (props.processId!=null || props.processId!=""){
@@ -83,7 +87,6 @@
     })
   }
 }
-
 </script>
 
 <template>
@@ -120,14 +123,15 @@
           </div>
         </div>
       </template>
+
+
     </vxe-grid>
   </div>
 </template>
 
 <style scoped>
-
 :deep(.vxe-tools--operate){
   height: 20px;
   margin-top: -20px;
 }
-</style>
\ No newline at end of file
+</style>
diff --git a/north-glass-erp/northglass-erp/src/views/pp/report/OrderReportingWorks.vue b/north-glass-erp/northglass-erp/src/views/pp/report/OrderReportingWorks.vue
index 7c4142c..1db1d0a 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/report/OrderReportingWorks.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/report/OrderReportingWorks.vue
@@ -177,13 +177,12 @@
     {title: t('basicData.operate'), width: 80, slots: { default: 'button_slot' },fixed:"left"},
     {type: 'seq', fixed: "left", title: t('basicData.Number'), width: 50},
     {
-      field: 'order_id', width: 120, title: t('order.orderId'), filters: [{data: ''}],
+      field: 'order_id',  title: t('order.orderId'), filters: [{data: ''}],
       slots: {filter: 'num1_filter'},
       filterMethod: filterChanged
     },
     {
       field: 'customer_name',
-      width: 120,
       title: t('customer.customerName'),
       showOverflow: "ellipsis",
       filters: [{data: ''}],
@@ -192,7 +191,6 @@
     },
     {
       field: 'project',
-      width: 120,
       title: t('order.project'),
       showOverflow: "ellipsis",
       filters: [{data: ''}],
@@ -200,23 +198,22 @@
       filterMethod: filterChanged
     },
     {
-      field: 'batch', width: 130, title: t('order.batch'), filters: [{data: ''}],
+      field: 'batch',  title: t('order.batch'), filters: [{data: ''}],
       slots: {filter: 'num1_filter'},
       filterMethod: filterChanged
     },
     {
-      field: 'quantity', width: 120, title: t('order.quantity'), filters: [{data: ''}],
+      field: 'quantity',  title: t('order.quantity'), filters: [{data: ''}],
       slots: {filter: 'num1_filter'},
       filterMethod: filterChanged
     },
     {
-      field: 'area', width: 100, title: t('order.area'), filters: [{data: ''}],
+      field: 'area',  title: t('order.area'), filters: [{data: ''}],
       slots: {filter: 'num1_filter'},
       filterMethod: filterChanged
     },
     {
       field: 'create_time',
-      width: 100,
       title: t('processCard.splitFrameTime'),
       type: 'date',
       attrs: {placeholder: '', type: 'date'},
diff --git a/north-glass-erp/pom.xml b/north-glass-erp/pom.xml
index 36df194..e6ef4d8 100644
--- a/north-glass-erp/pom.xml
+++ b/north-glass-erp/pom.xml
@@ -149,6 +149,11 @@
             <version>1.37.0</version>
         </dependency>
 
+        <dependency>
+            <groupId>com.rabbitmq</groupId>
+            <artifactId>amqp-client</artifactId>
+            <version>5.14.2</version>
+        </dependency>
 
     </dependencies>
 
diff --git a/north-glass-erp/src/main/java/com/example/erp/common/RabbitMQUtil.java b/north-glass-erp/src/main/java/com/example/erp/common/RabbitMQUtil.java
new file mode 100644
index 0000000..31d8016
--- /dev/null
+++ b/north-glass-erp/src/main/java/com/example/erp/common/RabbitMQUtil.java
@@ -0,0 +1,68 @@
+package com.example.erp.common;
+
+import com.rabbitmq.client.*;
+
+import java.io.IOException;
+import java.util.concurrent.ArrayBlockingQueue;
+import java.util.concurrent.BlockingQueue;
+import java.util.concurrent.TimeoutException;
+
+public class RabbitMQUtil {
+
+    private static final String SEND_QUEUE_NAME = "temperingUsed";
+    private static final String RECEIVE_QUEUE_NAME = "temperingReturn";
+    private static final String HOST = "localhost";
+    private static final String USERNAME = "guest";
+    private static final String PASSWORD = "guest";
+
+    private ConnectionFactory factory;
+    private Connection connection;
+    private Channel sendChannel;
+    private Channel receiveChannel;
+    private BlockingQueue<String> messageQueue;
+
+    public RabbitMQUtil() throws IOException, TimeoutException {
+        factory = new ConnectionFactory();
+        factory.setHost(HOST);
+        factory.setUsername(USERNAME);
+        factory.setPassword(PASSWORD);
+        connection = factory.newConnection();
+
+        sendChannel = connection.createChannel();
+        sendChannel.queueDeclare(SEND_QUEUE_NAME, false, false, false, null);
+
+        receiveChannel = connection.createChannel();
+        receiveChannel.queueDeclare(RECEIVE_QUEUE_NAME, false, false, false, null);
+
+        messageQueue = new ArrayBlockingQueue<>(100); // 璁剧疆闃熷垪澶у皬
+        startConsuming();
+    }
+
+    public void sendMessage(String message) throws IOException {
+        sendChannel.basicPublish("", SEND_QUEUE_NAME, null, message.getBytes());
+    }
+
+    public String receiveMessages() throws InterruptedException {
+        return messageQueue.take(); // 闃诲鐩村埌鏈夋秷鎭彲鐢�
+    }
+
+    private void startConsuming() throws IOException {
+        DeliverCallback deliverCallback = (consumerTag, delivery) -> {
+            String message = new String(delivery.getBody(), "UTF-8");
+            messageQueue.offer(message); // 灏嗘秷鎭斁鍏ラ槦鍒�
+        };
+        receiveChannel.basicConsume(RECEIVE_QUEUE_NAME, true, deliverCallback, consumerTag -> { });
+    }
+
+    public void close() throws IOException, TimeoutException {
+        if (sendChannel != null) {
+            sendChannel.close();
+        }
+        if (receiveChannel != null) {
+            receiveChannel.close();
+        }
+        if (connection != null) {
+            connection.close();
+        }
+    }
+}
diff --git a/north-glass-erp/src/main/java/com/example/erp/controller/pp/GlassOptimizeController.java b/north-glass-erp/src/main/java/com/example/erp/controller/pp/GlassOptimizeController.java
index c8404cb..b7aa8ec 100644
--- a/north-glass-erp/src/main/java/com/example/erp/controller/pp/GlassOptimizeController.java
+++ b/north-glass-erp/src/main/java/com/example/erp/controller/pp/GlassOptimizeController.java
@@ -112,6 +112,44 @@
         return Result.seccess(glassOptimizeService.selectComputeDetailSv(processId));
     }
 
+    @ApiOperation("妯℃嫙璁$畻")
+    @PostMapping("/simulationCalculate")
+    public Result simulationCalculate(@RequestBody Map<String, Object> object) {
+        try {
+            return Result.seccess(glassOptimizeService.SimulationCalculation(object));
+        } catch (Exception e) {
+            e.printStackTrace();
+            return Result.error();
+        }
+    }
+
+    @ApiOperation("妯℃嫙璁$畻淇濆瓨")
+    @PostMapping("/simulationSave")
+    public Result simulationSave(@RequestBody Map<String, Object> object) {
+        try {
+            return Result.seccess(glassOptimizeService.addSimulation(object));
+        } catch (Exception e) {
+            e.printStackTrace();
+            return Result.error();
+        }
+    }
+
+
+
+
+    @ApiOperation("妯℃嫙璁$畻澶氭祦绋嬪崱")
+    @PostMapping("/selectComputeDetailmore")
+    public Result selectComputeDetailmore(@RequestBody Map<String, Object> object) {
+        try {
+            return Result.seccess(glassOptimizeService.SimulationCalculation(object));
+        } catch (Exception e) {
+            e.printStackTrace();
+            return Result.error();
+        }
+    }
+
+
+
     //鍒涘缓宸ョ▼鏌ヨ娴佺▼鍗℃槑缁�
     @ApiOperation("鍒涘缓宸ョ▼鏌ヨ娴佺▼鍗℃槑缁�")
     @PostMapping  ("/getProcessCardDetail/{processId}/{technologyNumber}")
diff --git a/north-glass-erp/src/main/java/com/example/erp/entity/sd/OrderDetail.java b/north-glass-erp/src/main/java/com/example/erp/entity/sd/OrderDetail.java
index 70810ad..b60d7df 100644
--- a/north-glass-erp/src/main/java/com/example/erp/entity/sd/OrderDetail.java
+++ b/north-glass-erp/src/main/java/com/example/erp/entity/sd/OrderDetail.java
@@ -73,5 +73,7 @@
     private String baiscQuantity;
     @TableField(exist= false,select = false)
     private Integer landingSequence;
+    @TableField(exist= false,select = false)
+    private Integer thickness;
 
 }
diff --git a/north-glass-erp/src/main/java/com/example/erp/mapper/mm/MaterialInventoryMapper.java b/north-glass-erp/src/main/java/com/example/erp/mapper/mm/MaterialInventoryMapper.java
index 9a2598c..9e20ef4 100644
--- a/north-glass-erp/src/main/java/com/example/erp/mapper/mm/MaterialInventoryMapper.java
+++ b/north-glass-erp/src/main/java/com/example/erp/mapper/mm/MaterialInventoryMapper.java
@@ -114,6 +114,11 @@
     Boolean updateMaterialInventoryInventoryInt(@Param("inventoryId") Long inventoryId,
                                        @Param("quantity") Integer quantity);
 
+    Boolean updateMaterialInventoryInventoryPlanQuantityOut(@Param("inventoryId") Long inventoryId,
+                                                @Param("quantity") Integer quantity);
+    Boolean updateMaterialInventoryInventoryPlanQuantityInt(@Param("inventoryId") Long inventoryId,
+                                                @Param("quantity") Integer quantity);
+
     Boolean updateMaterialInventoryAvailableInventoryOut(@Param("inventoryId") Long inventoryId,
                                                 @Param("quantity") Integer quantity);
 
diff --git a/north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java b/north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java
index ac9c690..3015522 100644
--- a/north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java
+++ b/north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java
@@ -230,7 +230,7 @@
 
     Map<String,Object> getGlassThicknessByProdutionId(String orderId,String productionId);
 
-    List<OrderDetail>  getOrderDetailByProductionId(String orderId, String productionId,String type,Float inLenMax,Float inLenMin,Float inShortMax,Float inShortMin);
+    List<OrderDetail>  getOrderDetailByProductionId(String orderId, String productionId, String type, Float inLenMax, Float inLenMin, Float inShortMax, Float inShortMin, Float glassThickness);
 
     Boolean revokeComposing(String processId);
 
diff --git a/north-glass-erp/src/main/java/com/example/erp/mapper/pp/GlassOptimizeMapper.java b/north-glass-erp/src/main/java/com/example/erp/mapper/pp/GlassOptimizeMapper.java
index 61f9ed7..8f66d57 100644
--- a/north-glass-erp/src/main/java/com/example/erp/mapper/pp/GlassOptimizeMapper.java
+++ b/north-glass-erp/src/main/java/com/example/erp/mapper/pp/GlassOptimizeMapper.java
@@ -43,6 +43,15 @@
     //妯℃嫙璁$畻娴佺▼鍗¤鎯�
     List<Map<String, Object>> selectComputeDetailMp(String processId);
 
+
+    //妯℃嫙璁$畻淇濆瓨 閽㈠寲鎺掔増璇︽儏
+    void addSimulation(Map<String, Object> object);
+    //妯℃嫙璁$畻淇濆瓨 閽㈠寲鎺掔増
+    void addratioResult(Map<String, Object> object);
+    //妯℃嫙璁$畻淇濆瓨 宸ョ▼淇℃伅
+    void addratioProjectResult(Map<String, Object> object);
+
+
     List<Map<String, Object>> getProcessCardDetailmMp(String processId, Integer technologyNumber);
 
     List<Map<String, Object>> selectGlassTypeMp();
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/mm/MaterialInventoryService.java b/north-glass-erp/src/main/java/com/example/erp/service/mm/MaterialInventoryService.java
index 7f8ba77..f3c8ce6 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/mm/MaterialInventoryService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/mm/MaterialInventoryService.java
@@ -490,10 +490,12 @@
                 List<MaterialOutboundDetail> materialOutboundDetailList = materialInventoryMapper.getIsNotMaterialOutboundDetail(materialOutboundId);
                 if (!materialOutboundDetailList.isEmpty()) {
                     for (MaterialOutboundDetail materialOutboundDetail : materialOutboundDetailList) {
-
+                        if(materialOutboundDetail.getUseId()!=null){
                             //淇敼鐗╂枡搴撳瓨鏁伴噺
+                            materialInventoryMapper.updateMaterialInventoryInventoryPlanQuantityOut(materialOutboundDetail.getInventoryId(), materialOutboundDetail.getOutboundQuantity());
+                        }else{
                             materialInventoryMapper.updateMaterialInventoryInventoryOut(materialOutboundDetail.getInventoryId(), materialOutboundDetail.getOutboundQuantity());
-
+                        }
 
                     }
                 }
@@ -502,9 +504,13 @@
                 List<MaterialOutboundDetail> materialOutboundDetailList = materialInventoryMapper.getIsNotMaterialOutboundDetail(materialOutboundId);
                 if (!materialOutboundDetailList.isEmpty()) {
                     for (MaterialOutboundDetail materialOutboundDetail : materialOutboundDetailList) {
-
+                        if(materialOutboundDetail.getUseId()!=null){
                             //淇敼鐗╂枡搴撳瓨鏁伴噺
+                            materialInventoryMapper.updateMaterialInventoryInventoryPlanQuantityInt(materialOutboundDetail.getInventoryId(), materialOutboundDetail.getOutboundQuantity());
+                        }else{
                             materialInventoryMapper.updateMaterialInventoryInventoryInt(materialOutboundDetail.getInventoryId(), materialOutboundDetail.getOutboundQuantity());
+                        }
+
 
 
                     }
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java b/north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java
index d48b2b1..f7aa975 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java
@@ -1095,8 +1095,8 @@
         Float glassThickness = Float.parseFloat(thickness.get("thickness").toString());
 
         //鑾峰彇姝ゅ伐绋嬪彿璁㈠崟鏄庣粏淇℃伅
-        List<OrderDetail> orderDetails = flowCardMapper.getOrderDetailByProductionId(orderId, productionId,"scope",inLenMax,inLenMin,inShortMax,inShortMin);
-        List<OrderDetail> orderDetailsNotScope = flowCardMapper.getOrderDetailByProductionId(orderId, productionId,"notScope",inLenMax,inLenMin,inShortMax,inShortMin);
+        List<OrderDetail> orderDetails = flowCardMapper.getOrderDetailByProductionId(orderId, productionId,"scope",inLenMax,inLenMin,inShortMax,inShortMin,glassThickness);
+        List<OrderDetail> orderDetailsNotScope = flowCardMapper.getOrderDetailByProductionId(orderId, productionId,"notScope",inLenMax,inLenMin,inShortMax,inShortMin,glassThickness);
 
         //鏍规嵁鐜荤拑鍘氬害鍜屽灚鐗囧帤搴﹀綋鍓嶆灦瀛愭渶澶у彲鏀炬暟閲�
         Integer shelfMaxQuantityByThickness = (int) (shelfThickness / (glassTotalThickness + spacerThickness));
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/pp/GlassOptimizeService.java b/north-glass-erp/src/main/java/com/example/erp/service/pp/GlassOptimizeService.java
index fd963a8..3d5c1f1 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/pp/GlassOptimizeService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/pp/GlassOptimizeService.java
@@ -4,16 +4,21 @@
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.dynamic.datasource.annotation.DS;
+import com.example.erp.common.RabbitMQUtil;
 import com.example.erp.entity.pp.FlowCard;
 import com.example.erp.entity.pp.OptimizeProjectMange;
 import com.example.erp.mapper.pp.GlassOptimizeMapper;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
+import java.io.IOException;
 import java.sql.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.concurrent.TimeoutException;
 
 @Service
 @DS("sd")
@@ -21,7 +26,52 @@
     @Autowired
     GlassOptimizeMapper glassOptimizeMapper;
 
+    RabbitMQUtil rabbitMQUtil;
+    //妯℃嫙璁$畻
 
+    public Map<String, Object> SimulationCalculation(Map<String,Object> message) {
+        Map<String, Object> map = new HashMap<>();
+        try {
+            rabbitMQUtil = new RabbitMQUtil();
+            // 鍙戦�佹秷鎭�
+
+
+            // 鑾峰彇 computeData 鍜� cardData
+            Object computeData = message.get("computeData");
+            Object cardData = message.get("cardData");
+
+           rabbitMQUtil.sendMessage("6");
+            System.out.println("send message: " + message);
+            String date = rabbitMQUtil.receiveMessages();
+            System.out.println("Received message: " + date);
+
+            // 鍏抽棴杩炴帴
+            rabbitMQUtil.close();
+            map.put("data", date);
+
+        } catch (IOException e) {
+            e.printStackTrace();
+        } catch (TimeoutException | InterruptedException e) {
+            e.printStackTrace();
+        }
+
+        return map;
+    }
+
+
+//妯℃嫙璁$畻淇濆瓨
+    public Boolean addSimulation(Map<String, Object> object) {
+        try {
+            glassOptimizeMapper.addSimulation(object);
+            glassOptimizeMapper.addratioResult(object);
+            glassOptimizeMapper.addratioProjectResult(object);
+
+            return true;
+        } catch (Exception e) {
+            e.printStackTrace();
+            return false;
+        }
+    }
     //宸ョ▼淇℃伅
     public Map<String, Object> projectInfoSv(String projectNo) {
         Map<String, Object> map = new HashMap<>();
@@ -29,6 +79,7 @@
         return map;
     }
 
+
     //宸ョ▼淇℃伅娴佺▼鍗�
     public Map<String, Object> getProcessCardSv(String projectNo) {
         Map<String, Object> map = new HashMap<>();
diff --git a/north-glass-erp/src/main/resources/mapper/mm/MaterialInventory.xml b/north-glass-erp/src/main/resources/mapper/mm/MaterialInventory.xml
index 4a0d587..1cfa8bc 100644
--- a/north-glass-erp/src/main/resources/mapper/mm/MaterialInventory.xml
+++ b/north-glass-erp/src/main/resources/mapper/mm/MaterialInventory.xml
@@ -704,18 +704,30 @@
         where id=#{inventoryId}
     </update>
 
-    <update id="updateMaterialInventoryInventoryOut">
+    <update id="updateMaterialInventoryInventoryPlanQuantityOut">
         update mm.material_inventory
         set inventory_quantity=inventory_quantity-#{quantity},plan_quantity=if(plan_quantity-#{quantity}>=0,plan_quantity-#{quantity},0),total_area=inventory_quantity*single_piece_area
         where id=#{inventoryId}
     </update>
 
-    <update id="updateMaterialInventoryInventoryInt">
+    <update id="updateMaterialInventoryInventoryPlanQuantityInt">
         update mm.material_inventory
         set inventory_quantity=inventory_quantity+#{quantity},plan_quantity=plan_quantity+#{quantity},total_area=inventory_quantity*single_piece_area
         where id=#{inventoryId}
     </update>
 
+    <update id="updateMaterialInventoryInventoryOut">
+        update mm.material_inventory
+        set inventory_quantity=inventory_quantity-#{quantity},total_area=inventory_quantity*single_piece_area
+        where id=#{inventoryId}
+    </update>
+
+    <update id="updateMaterialInventoryInventoryInt">
+        update mm.material_inventory
+        set inventory_quantity=inventory_quantity+#{quantity},total_area=inventory_quantity*single_piece_area
+        where id=#{inventoryId}
+    </update>
+
     <update id="updateMaterialInventoryAvailableInventoryOut">
         update mm.material_inventory
         set available_quantity=available_quantity-#{quantity},inventory_quantity=inventory_quantity-#{quantity},total_area=inventory_quantity*single_piece_area
diff --git a/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml b/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
index aff91d4..9719ff7 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
@@ -2900,6 +2900,7 @@
     <select id="getOrderDetailByProductionId">
         select * from (select a.*,
                               a.quantity as 'baiscQuantity',
+                              #{glassThickness} as 'thickness',
         IF(a.height >= a.width, a.height, a.width) as 'long',
         IF(a.height &lt; a.width, a.height, a.width) as 'short'
         from sd.order_detail as a
diff --git a/north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml b/north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml
index 06521a6..7a8eb21 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml
@@ -325,7 +325,9 @@
             ROUND(SUM(od.width * od.height * fc.quantity / 1000000), 2) AS area,
             o.project,
             ogd.glass_child,
-            od.shape
+            od.shape,
+            SUBSTRING(glass_child, 1, LOCATE('mm', glass_child) - 1) as thickness,
+            SUBSTRING(glass_child, LOCATE('mm', glass_child) + 2) as glassType
         FROM
             pp.flow_card AS fc
                 LEFT JOIN sd.`order` AS o ON fc.order_id = o.order_id
@@ -353,7 +355,7 @@
     </select>
 
     <!--妯℃嫙璁$畻娴佺▼鍗¤鎯�-->
-    <select id="selectComputeDetailMp">
+    <select id="selectComputeDetailMp1">
         SELECT
             d.width AS width,
             d.height AS height,
@@ -373,6 +375,39 @@
         WHERE
             p.state IN (1, 2)
           AND f.process_id = #{processId}
+    </select>
+
+
+    <!--妯℃嫙璁$畻娴佺▼鍗¤鎯�2-->
+    <select id="selectComputeDetailMp">
+        SELECT
+            d.width AS width,
+            d.height AS height,
+            f.quantity AS quantity,
+            d.building_number AS `Storey Number`,
+            d.shape AS shape,
+            round(g.area * f.quantity, 4) AS area,
+            g.icon AS `Label type`,
+            dal.patch_status,
+            g.technology_number,
+            g.order_number,
+            fl.layers_number,
+            g.child_width,
+            g.child_height,
+            fl.process_id
+
+        FROM
+            pp.flow_card f
+                LEFT JOIN pp.optimize_project p ON f.project_no = p.project_no
+                LEFT JOIN sd.order o ON f.order_id = o.order_id
+                LEFT JOIN sd.order_detail d ON f.order_id = d.order_id AND f.order_number = d.order_number
+                LEFT JOIN sd.order_glass_detail g ON f.order_id = g.order_id AND f.order_number = g.order_number AND f.technology_number = g.technology_number
+                LEFT JOIN sd.product_detail p2 ON d.product_id = p2.prod_id AND f.technology_number = p2.glass_sort
+                LEFT JOIN pp.optimize_project j ON f.project_no = j.project_no
+                LEFT JOIN pp.damage_details dal ON  dal.order_number = g.order_number AND dal.technology_number = g.technology_number and f.process_id=dal.process_id
+                LEFT JOIN pp.flow_card fl ON fl.order_id = g.order_id AND fl.order_number = g.order_number AND fl.technology_number = g.technology_number
+        WHERE
+          f.process_id = #{processId}
     </select>
 
     <select id="getProcessCardDetailmMp">
@@ -444,4 +479,100 @@
         insert into pp.optimize_project (project_no, project_name, order_glass_type, order_glass_thickness)
         values (#{projectId}, #{projectNmae}, #{glassType}, #{glassThickness})
     </insert>
+
+
+    <insert id="addSimulation" parameterType="map">
+        <foreach collection="projectdetail.data[0].glass_details" item="glass">
+            INSERT INTO pp.optimize_heat_detail (
+            project_no,
+            process_id,
+            width,
+            height,
+            x_axis,
+            y_axis,
+            rotate_angle,
+            creater,
+            create_time,
+            update_time,
+            patch_state,
+            layer,
+            order_sort,
+            layout_id,
+            sort,
+            glass_id,
+            pair_width,
+            pair_height,
+            intRemark,
+            strRemark
+            ) VALUES (
+            #{inputValues.project_no},
+            #{glass.process_id},
+            #{glass.width},
+            #{glass.height},
+            #{glass.x_coordinate},
+            #{glass.y_coordinate},
+            #{glass.angle},
+            #{userName},
+            NOW(),
+            NOW(),
+            0,
+            #{glass.layers_number},
+            #{glass.order_number},
+            #{glass.tempering_layout_id},
+            #{glass.tempering_feed_sequence},
+            null,
+            #{glass.width},
+            #{glass.height},
+            null,
+            null
+            );
+        </foreach>
+    </insert>
+
+    <insert id="addratioResult" parameterType="map">
+        <foreach collection="projectdetail.data[0].ratioResult" item="glass">
+            INSERT INTO pp.optimize_heat_layout (
+            project_no,
+            layout_id,
+            glass_qty,
+            glass_area,
+            layout_rate,
+            creater,
+            create_time,
+            intRemark,
+            strRemark
+            ) VALUES (
+            #{inputValues.project_no},
+            #{glass.tempering_layout_id},
+            #{glass.glass_total},
+            #{glass.area},
+            #{glass.ratio},
+            1,
+            NOW(),
+            null,
+            null
+            );
+        </foreach>
+    </insert>
+
+
+    <update id="addratioProjectResult" parameterType="map">
+        UPDATE pp.optimize_project
+        SET
+            state = 10,
+            chaos_pct = #{inputValues.chaos_pct},
+            max_load_pct = #{inputValues.max_load_pct},
+            max_area=#{inputValues.max_area},
+            max_qty=#{inputValues.max_qty},
+            load_width=#{inputValues.load_width},
+            load_length=#{inputValues.load_length},
+            x_space=#{inputValues.x_space},
+            y_space=#{inputValues.y_space},
+            load_rate=#{inputValues.load_rate}
+        WHERE
+            project_no = #{inputValues.project_no}
+
+    </update>
+
+
 </mapper>
\ No newline at end of file
diff --git a/north-glass-erp/src/main/resources/mapper/sd/OrderGlassDetailMapper.xml b/north-glass-erp/src/main/resources/mapper/sd/OrderGlassDetailMapper.xml
index 81deef7..1e9753c 100644
--- a/north-glass-erp/src/main/resources/mapper/sd/OrderGlassDetailMapper.xml
+++ b/north-glass-erp/src/main/resources/mapper/sd/OrderGlassDetailMapper.xml
@@ -168,11 +168,14 @@
 
     <select id="getDifferentSizeNumber">
        select if(count(id)>1,1,0) from (select
-          id
+          a.id,a.child_width,b.width
         from order_glass_detail as a
+        left join order_detail as b
+        on a.order_id = b.order_id and a.order_number = b.order_number
         where a.order_id = #{orderId}
           and a.order_number = #{orderNumber}
-        group by child_width,child_height) as c
+          and a.child_width != b.width
+        ) as c
     </select>
 
     <select id="getOrderGlassDetailByProductIdGlassChild" >
diff --git a/north-glass-erp/src/test/java/com/example/erp/service/pp/GlassOptimizeServiceTest.java b/north-glass-erp/src/test/java/com/example/erp/service/pp/GlassOptimizeServiceTest.java
new file mode 100644
index 0000000..d5eba6c
--- /dev/null
+++ b/north-glass-erp/src/test/java/com/example/erp/service/pp/GlassOptimizeServiceTest.java
@@ -0,0 +1,20 @@
+package com.example.erp.service.pp;
+
+
+import com.example.erp.service.pp.GlassOptimizeService;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+@SpringBootTest
+class IOrderServiceTest {
+    @Autowired
+    private GlassOptimizeService glassOptimizeService;
+
+    @Test
+    void  testSimulationCalculation() {
+        //glassOptimizeService.SimulationCalculation("666");
+    }
+}
+
+
+

--
Gitblit v1.8.0