From 92dd4aaaa7fb67c4d65df18e0e69cbc6775575d3 Mon Sep 17 00:00:00 2001
From: lxf <1371462558@qq.com>
Date: Wed, 23 Apr 2025 19:19:13 +0800
Subject: [PATCH] feat 沙特添加石油黄金

---
 package-lock.json                       | 1585 +++++++++++++++++++++++++++++++
 src/page/list/tradingList/data.list.vue |   18 
 src/page/kline/index.vue                |   86 
 src/axios/api.js                        |    5 
 src/eastmoney/HQData.js                 |  174 ++-
 src/page/user/Warehouse.vue             |   52 
 src/page/kline/index copy.vue           |    2 
 src/locales/en.json                     |    3 
 src/page/list/tradingList/tabs.vue      |    2 
 yarn.lock                               |  467 +++++++++
 package.json                            |    1 
 src/axios/api.url.js                    |    4 
 src/locales/kor.json                    |    3 
 src/page/user/favorites.vue             |   82 
 src/locales/hi.json                     |    3 
 src/page/user/Warehouse copy.vue        |   60 
 src/page/list/detail.vue                |  381 ++++---
 src/locales/fra.json                    |    3 
 src/locales/th.json                     |    3 
 19 files changed, 2,492 insertions(+), 442 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index 5e8706c..2c5425e 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -23,6 +23,7 @@
         "lib-flexible": "^0.3.2",
         "lodash": "^4.17.21",
         "mint-ui": "^2.2.13",
+        "module": "^1.2.5",
         "moment": "^2.29.4",
         "moment-timezone": "^0.5.45",
         "pdfjs-dist": "2.2.228",
@@ -263,6 +264,29 @@
         "esutils": "^2.0.2",
         "lodash": "^4.2.0",
         "to-fast-properties": "^2.0.0"
+      }
+    },
+    "node_modules/@gulp-sourcemaps/map-sources": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/map-sources/-/map-sources-1.0.0.tgz",
+      "integrity": "sha512-o/EatdaGt8+x2qpb0vFLC/2Gug/xYPRXb6a+ET1wGYKozKN3krDWC/zZFZAtrzxJHuDL12mwdfEFKcKMNvc55A==",
+      "dependencies": {
+        "normalize-path": "^2.0.1",
+        "through2": "^2.0.3"
+      },
+      "engines": {
+        "node": ">= 0.10"
+      }
+    },
+    "node_modules/@gulp-sourcemaps/map-sources/node_modules/normalize-path": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+      "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==",
+      "dependencies": {
+        "remove-trailing-separator": "^1.0.1"
+      },
+      "engines": {
+        "node": ">=0.10.0"
       }
     },
     "node_modules/@types/json5": {
@@ -2658,6 +2682,11 @@
         "node": ">=0.8"
       }
     },
+    "node_modules/clone-stats": {
+      "version": "0.0.1",
+      "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz",
+      "integrity": "sha512-dhUqc57gSMCo6TX85FLfe51eC/s+Im2MLkAgJwfaRRexR2tA4dd3eLEW4L6efzHc2iNorrRRXITifnDLlRrhaA=="
+    },
     "node_modules/co": {
       "version": "4.6.0",
       "resolved": "https://registry.npmmirror.com/co/-/co-4.6.0.tgz",
@@ -4254,6 +4283,24 @@
         "ms": "2.0.0"
       }
     },
+    "node_modules/debug-fabulous": {
+      "version": "0.0.4",
+      "resolved": "https://registry.npmjs.org/debug-fabulous/-/debug-fabulous-0.0.4.tgz",
+      "integrity": "sha512-mmVKpY/O4UIl6ZDn5Owf8jEauO6uQiuF4Jz9iTuflSmvqNm6/64xARk/qCq5ZJxu141Ic2lCmL1TSMHIYoyiTw==",
+      "dependencies": {
+        "debug": "2.X",
+        "lazy-debug-legacy": "0.0.X",
+        "object-assign": "4.1.0"
+      }
+    },
+    "node_modules/debug-fabulous/node_modules/object-assign": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz",
+      "integrity": "sha512-Lbc7GfN7XFaK30bzUN3cDYLOkT0dH05S0ax1QikylHUD9+Z9PRF3G1iYwX3kcz+6AlzTFGkUgMxz6l3aUwbwTA==",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
     "node_modules/decamelize": {
       "version": "1.2.0",
       "resolved": "https://registry.npmmirror.com/decamelize/-/decamelize-1.2.0.tgz",
@@ -4430,6 +4477,14 @@
         "node": ">=0.10.0"
       }
     },
+    "node_modules/detect-newline": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz",
+      "integrity": "sha512-CwffZFvlJffUg9zZA0uqrjQayUTC8ob94pnr5sFwaVv3IOmkfUHcWH+jXaQK3askE51Cqe8/9Ql/0uXNwqZ8Zg==",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
     "node_modules/detect-node": {
       "version": "2.1.0",
       "resolved": "https://registry.npmmirror.com/detect-node/-/detect-node-2.1.0.tgz",
@@ -4596,7 +4651,6 @@
       "version": "3.7.1",
       "resolved": "https://registry.npmmirror.com/duplexify/-/duplexify-3.7.1.tgz",
       "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==",
-      "dev": true,
       "dependencies": {
         "end-of-stream": "^1.0.0",
         "inherits": "^2.0.1",
@@ -4705,7 +4759,6 @@
       "version": "1.4.4",
       "resolved": "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz",
       "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
-      "dev": true,
       "dependencies": {
         "once": "^1.4.0"
       }
@@ -5655,8 +5708,7 @@
     "node_modules/extend": {
       "version": "3.0.2",
       "resolved": "https://registry.npmmirror.com/extend/-/extend-3.0.2.tgz",
-      "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
-      "dev": true
+      "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
     },
     "node_modules/extend-shallow": {
       "version": "3.0.2",
@@ -5940,6 +5992,14 @@
       },
       "engines": {
         "node": ">=4"
+      }
+    },
+    "node_modules/first-chunk-stream": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz",
+      "integrity": "sha512-ArRi5axuv66gEsyl3UuK80CzW7t56hem73YGNYxNWTGNKFJUadSb9Gu9SHijYEUi8ulQMf1bJomYNwSCPHhtTQ==",
+      "engines": {
+        "node": ">=0.10.0"
       }
     },
     "node_modules/flat-cache": {
@@ -6350,6 +6410,216 @@
         "node": ">= 6"
       }
     },
+    "node_modules/glob-stream": {
+      "version": "5.3.5",
+      "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-5.3.5.tgz",
+      "integrity": "sha512-piN8XVAO2sNxwVLokL4PswgJvK/uQ6+awwXUVRTGF+rRfgCZpn4hOqxiRuTEbU/k3qgKl0DACYQ/0Sge54UMQg==",
+      "dependencies": {
+        "extend": "^3.0.0",
+        "glob": "^5.0.3",
+        "glob-parent": "^3.0.0",
+        "micromatch": "^2.3.7",
+        "ordered-read-streams": "^0.3.0",
+        "through2": "^0.6.0",
+        "to-absolute-glob": "^0.1.1",
+        "unique-stream": "^2.0.2"
+      },
+      "engines": {
+        "node": ">= 0.10"
+      }
+    },
+    "node_modules/glob-stream/node_modules/arr-diff": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
+      "integrity": "sha512-dtXTVMkh6VkEEA7OhXnN1Ecb8aAGFdZ1LFxtOCoqj4qkyOJMt7+qs6Ahdy6p/NQCPYsRSXXivhSB/J5E9jmYKA==",
+      "dependencies": {
+        "arr-flatten": "^1.0.1"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/glob-stream/node_modules/array-unique": {
+      "version": "0.2.1",
+      "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
+      "integrity": "sha512-G2n5bG5fSUCpnsXz4+8FUkYsGPkNfLn9YvS66U5qbTIXI2Ynnlo4Bi42bWv+omKUCqz+ejzfClwne0alJWJPhg==",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/glob-stream/node_modules/braces": {
+      "version": "1.8.5",
+      "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
+      "integrity": "sha512-xU7bpz2ytJl1bH9cgIurjpg/n8Gohy9GTw81heDYLJQ4RU60dlyJsa+atVF2pI0yMMvKxI9HkKwjePCj5XI1hw==",
+      "dependencies": {
+        "expand-range": "^1.8.1",
+        "preserve": "^0.2.0",
+        "repeat-element": "^1.1.2"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/glob-stream/node_modules/expand-brackets": {
+      "version": "0.1.5",
+      "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
+      "integrity": "sha512-hxx03P2dJxss6ceIeri9cmYOT4SRs3Zk3afZwWpOsRqLqprhTR8u++SlC+sFGsQr7WGFPdMF7Gjc1njDLDK6UA==",
+      "dependencies": {
+        "is-posix-bracket": "^0.1.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/glob-stream/node_modules/extglob": {
+      "version": "0.3.2",
+      "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
+      "integrity": "sha512-1FOj1LOwn42TMrruOHGt18HemVnbwAmAak7krWk+wa93KXxGbK+2jpezm+ytJYDaBX0/SPLZFHKM7m+tKobWGg==",
+      "dependencies": {
+        "is-extglob": "^1.0.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/glob-stream/node_modules/extglob/node_modules/is-extglob": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
+      "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/glob-stream/node_modules/glob": {
+      "version": "5.0.15",
+      "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
+      "integrity": "sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==",
+      "deprecated": "Glob versions prior to v9 are no longer supported",
+      "dependencies": {
+        "inflight": "^1.0.4",
+        "inherits": "2",
+        "minimatch": "2 || 3",
+        "once": "^1.3.0",
+        "path-is-absolute": "^1.0.0"
+      },
+      "engines": {
+        "node": "*"
+      }
+    },
+    "node_modules/glob-stream/node_modules/glob-parent": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
+      "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==",
+      "dependencies": {
+        "is-glob": "^3.1.0",
+        "path-dirname": "^1.0.0"
+      }
+    },
+    "node_modules/glob-stream/node_modules/is-glob": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
+      "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==",
+      "dependencies": {
+        "is-extglob": "^2.1.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/glob-stream/node_modules/isarray": {
+      "version": "0.0.1",
+      "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+      "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ=="
+    },
+    "node_modules/glob-stream/node_modules/kind-of": {
+      "version": "3.2.2",
+      "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+      "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+      "dependencies": {
+        "is-buffer": "^1.1.5"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/glob-stream/node_modules/micromatch": {
+      "version": "2.3.11",
+      "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
+      "integrity": "sha512-LnU2XFEk9xxSJ6rfgAry/ty5qwUTyHYOBU0g4R6tIw5ljwgGIBmiKhRWLw5NpMOnrgUNcDJ4WMp8rl3sYVHLNA==",
+      "dependencies": {
+        "arr-diff": "^2.0.0",
+        "array-unique": "^0.2.1",
+        "braces": "^1.8.2",
+        "expand-brackets": "^0.1.4",
+        "extglob": "^0.3.1",
+        "filename-regex": "^2.0.0",
+        "is-extglob": "^1.0.0",
+        "is-glob": "^2.0.1",
+        "kind-of": "^3.0.2",
+        "normalize-path": "^2.0.1",
+        "object.omit": "^2.0.0",
+        "parse-glob": "^3.0.4",
+        "regex-cache": "^0.4.2"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/glob-stream/node_modules/micromatch/node_modules/is-extglob": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
+      "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/glob-stream/node_modules/micromatch/node_modules/is-glob": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
+      "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==",
+      "dependencies": {
+        "is-extglob": "^1.0.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/glob-stream/node_modules/normalize-path": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+      "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==",
+      "dependencies": {
+        "remove-trailing-separator": "^1.0.1"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/glob-stream/node_modules/readable-stream": {
+      "version": "1.0.34",
+      "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
+      "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==",
+      "dependencies": {
+        "core-util-is": "~1.0.0",
+        "inherits": "~2.0.1",
+        "isarray": "0.0.1",
+        "string_decoder": "~0.10.x"
+      }
+    },
+    "node_modules/glob-stream/node_modules/string_decoder": {
+      "version": "0.10.31",
+      "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+      "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ=="
+    },
+    "node_modules/glob-stream/node_modules/through2": {
+      "version": "0.6.5",
+      "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
+      "integrity": "sha512-RkK/CCESdTKQZHdmKICijdKKsCRVHs5KsLZ6pACAmF/1GPUQhonHSXWNERctxEp7RmvjdNbZTL5z9V7nSCXKcg==",
+      "dependencies": {
+        "readable-stream": ">=1.0.33-1 <1.1.0-0",
+        "xtend": ">=4.0.0 <4.1.0-0"
+      }
+    },
     "node_modules/globals": {
       "version": "11.12.0",
       "resolved": "https://registry.npmmirror.com/globals/-/globals-11.12.0.tgz",
@@ -6394,6 +6664,57 @@
       "resolved": "https://registry.npmmirror.com/growly/-/growly-1.3.0.tgz",
       "integrity": "sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==",
       "dev": true
+    },
+    "node_modules/gulp-sourcemaps": {
+      "version": "1.12.1",
+      "resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-1.12.1.tgz",
+      "integrity": "sha512-2NYnMpB67LJhc36sEv+hNY05UOy1lD9DPtLi+en4hbGH+085G9Zzh3cet2VEqrDlQrLk9Eho0MM9dZ3Z+dL0XA==",
+      "dependencies": {
+        "@gulp-sourcemaps/map-sources": "1.X",
+        "acorn": "4.X",
+        "convert-source-map": "1.X",
+        "css": "2.X",
+        "debug-fabulous": "0.0.X",
+        "detect-newline": "2.X",
+        "graceful-fs": "4.X",
+        "source-map": "~0.6.0",
+        "strip-bom": "2.X",
+        "through2": "2.X",
+        "vinyl": "1.X"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/gulp-sourcemaps/node_modules/acorn": {
+      "version": "4.0.13",
+      "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz",
+      "integrity": "sha512-fu2ygVGuMmlzG8ZeRJ0bvR41nsAkxxhbyk8bZ1SS521Z7vmgJFTQQlfz/Mp/nJexGBz+v8sC9bM6+lNgskt4Ug==",
+      "bin": {
+        "acorn": "bin/acorn"
+      },
+      "engines": {
+        "node": ">=0.4.0"
+      }
+    },
+    "node_modules/gulp-sourcemaps/node_modules/source-map": {
+      "version": "0.6.1",
+      "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+      "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/gulp-sourcemaps/node_modules/strip-bom": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
+      "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==",
+      "dependencies": {
+        "is-utf8": "^0.2.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
     },
     "node_modules/gzip-size": {
       "version": "4.1.0",
@@ -7543,6 +7864,14 @@
       "resolved": "https://registry.npmmirror.com/is-utf8/-/is-utf8-0.2.1.tgz",
       "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q=="
     },
+    "node_modules/is-valid-glob": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-0.3.0.tgz",
+      "integrity": "sha512-CvG8EtJZ8FyzVOGPzrDorzyN65W1Ld8BVnqshRCah6pFIsprGx3dKgFtjLn/Vw9kGqR4OlR84U7yhT9ZVTyWIQ==",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
     "node_modules/is-weakref": {
       "version": "1.0.2",
       "resolved": "https://registry.npmmirror.com/is-weakref/-/is-weakref-1.0.2.tgz",
@@ -7662,8 +7991,7 @@
     "node_modules/json-stable-stringify-without-jsonify": {
       "version": "1.0.1",
       "resolved": "https://registry.npmmirror.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
-      "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
-      "dev": true
+      "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw=="
     },
     "node_modules/json3": {
       "version": "3.3.3",
@@ -7716,6 +8044,25 @@
       "integrity": "sha512-RE2g0b5VGZsOCFOCgP7omTRYFqydmZkBwl5oNnQ1lDYC57uyO9KqNnNVxT7COSHTxrRCWVcAVOcbjk+tvh/rgQ==",
       "engines": {
         "node": ">=0.10.0"
+      }
+    },
+    "node_modules/lazy-debug-legacy": {
+      "version": "0.0.1",
+      "resolved": "https://registry.npmjs.org/lazy-debug-legacy/-/lazy-debug-legacy-0.0.1.tgz",
+      "integrity": "sha512-GFWaIBcBjxWWKI5OghwYEsPOR8JFh2xEcc3ZFV0ONYL0oHz0PHINJCfxJyztUq2XzcHncyO7fsRR550Gtfnk6g==",
+      "peerDependencies": {
+        "debug": "*"
+      }
+    },
+    "node_modules/lazystream": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz",
+      "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==",
+      "dependencies": {
+        "readable-stream": "^2.0.5"
+      },
+      "engines": {
+        "node": ">= 0.6.3"
       }
     },
     "node_modules/lcid": {
@@ -8027,10 +8374,20 @@
       "resolved": "https://registry.npmmirror.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz",
       "integrity": "sha512-De+ZbrMu6eThFti/CSzhRvTKMgQToLxbij58LMfM8JnYDNSOjkjTCIaa8ixglOeGh2nyPlakbt5bJWJ7gvpYlQ=="
     },
+    "node_modules/lodash._reinterpolate": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
+      "integrity": "sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA=="
+    },
     "node_modules/lodash.assign": {
       "version": "4.2.0",
       "resolved": "https://registry.npmmirror.com/lodash.assign/-/lodash.assign-4.2.0.tgz",
       "integrity": "sha512-hFuH8TY+Yji7Eja3mGiuAxBqLagejScbG8GbG0j6o9vzn0YL14My+ktnqtZgFTosKymC9/44wP6s7xyuLfnClw=="
+    },
+    "node_modules/lodash.assigninwith": {
+      "version": "4.2.0",
+      "resolved": "https://registry.npmjs.org/lodash.assigninwith/-/lodash.assigninwith-4.2.0.tgz",
+      "integrity": "sha512-oYOjtZzQnecm7PJcxrDbL20OHv3tTtOQdRBSnlor6s0MO6VOFTOC+JyBIJUNUEzsBi1I0oslWtFAAG6QQbFIWQ=="
     },
     "node_modules/lodash.camelcase": {
       "version": "4.3.0",
@@ -8052,6 +8409,12 @@
       "resolved": "https://registry.npmmirror.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz",
       "integrity": "sha512-JwObCrNJuT0Nnbuecmqr5DgtuBppuCvGD9lxjFpAzwnVtdGoDQ1zig+5W8k5/6Gcn0gZ3936HDAlGd28i7sOGQ=="
     },
+    "node_modules/lodash.isequal": {
+      "version": "4.5.0",
+      "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
+      "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==",
+      "deprecated": "This package is deprecated. Use require('node:util').isDeepStrictEqual instead."
+    },
     "node_modules/lodash.keys": {
       "version": "3.1.2",
       "resolved": "https://registry.npmmirror.com/lodash.keys/-/lodash.keys-3.1.2.tgz",
@@ -8067,10 +8430,47 @@
       "resolved": "https://registry.npmmirror.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
       "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag=="
     },
+    "node_modules/lodash.rest": {
+      "version": "4.0.5",
+      "resolved": "https://registry.npmjs.org/lodash.rest/-/lodash.rest-4.0.5.tgz",
+      "integrity": "sha512-hsypEpebNAt0hj1aX9isQqi2CIZoNS1lP6PSWhB3hcMnBivobYzPZRPYq4cr38+RtvrlxQTgaW+sIuHAhBoHrA=="
+    },
     "node_modules/lodash.restparam": {
       "version": "3.6.1",
       "resolved": "https://registry.npmmirror.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz",
       "integrity": "sha512-L4/arjjuq4noiUJpt3yS6KIKDtJwNe2fIYgMqyYYKoeIfV1iEqvPwhCx23o+R9dzouGihDAPN1dTIRWa7zk8tw=="
+    },
+    "node_modules/lodash.template": {
+      "version": "4.2.4",
+      "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.2.4.tgz",
+      "integrity": "sha512-PmEQ9TtYbeYg6lNwJpSjkp4J4KttYLuKF1C6jeFBidyzbOFu0KvVnLicZBf0sGfScARwgOBqxnV/rWuaqRwang==",
+      "deprecated": "This package is deprecated. Use https://socket.dev/npm/package/eta instead.",
+      "dependencies": {
+        "lodash._reinterpolate": "~3.0.0",
+        "lodash.assigninwith": "^4.0.0",
+        "lodash.keys": "^4.0.0",
+        "lodash.rest": "^4.0.0",
+        "lodash.templatesettings": "^4.0.0",
+        "lodash.tostring": "^4.0.0"
+      }
+    },
+    "node_modules/lodash.template/node_modules/lodash.keys": {
+      "version": "4.2.0",
+      "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-4.2.0.tgz",
+      "integrity": "sha512-J79MkJcp7Df5mizHiVNpjoHXLi4HLjh9VLS/M7lQSGoQ+0oQ+lWEigREkqKyizPB1IawvQLLKY8mzEcm1tkyxQ=="
+    },
+    "node_modules/lodash.templatesettings": {
+      "version": "4.2.0",
+      "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz",
+      "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==",
+      "dependencies": {
+        "lodash._reinterpolate": "^3.0.0"
+      }
+    },
+    "node_modules/lodash.tostring": {
+      "version": "4.1.4",
+      "resolved": "https://registry.npmjs.org/lodash.tostring/-/lodash.tostring-4.1.4.tgz",
+      "integrity": "sha512-xWHJ0LY7cSz/C/4ghNNiYA1Ong0VLdzAzrjDHvOzN+eJHzDEHme2+k+w/9Pk8dtdwcASMUbxN1/mtj6mFI25Ng=="
     },
     "node_modules/lodash.uniq": {
       "version": "4.5.0",
@@ -8174,6 +8574,11 @@
         "node": ">=0.10.0"
       }
     },
+    "node_modules/map-stream": {
+      "version": "0.0.6",
+      "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.6.tgz",
+      "integrity": "sha512-RG9wAgznUY0foT30MMfnXh4jS0ObmOuxoGKe/ppYvM55RfquNdIvEEf6e+euczNVVzJIVbkgxg7GJBpYDhQ/Zg=="
+    },
     "node_modules/map-visit": {
       "version": "1.0.0",
       "resolved": "https://registry.npmmirror.com/map-visit/-/map-visit-1.0.0.tgz",
@@ -8263,6 +8668,14 @@
       "version": "1.0.1",
       "resolved": "https://registry.npmmirror.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
       "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w=="
+    },
+    "node_modules/merge-stream": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz",
+      "integrity": "sha512-e6RM36aegd4f+r8BZCcYXlO2P3H6xbUM6ktL2Xmf45GAOit9bI4z6/3VU7JwllVO1L7u0UDSg/EhzQ5lmMLolA==",
+      "dependencies": {
+        "readable-stream": "^2.0.1"
+      }
     },
     "node_modules/methods": {
       "version": "1.1.2",
@@ -8543,6 +8956,220 @@
       },
       "bin": {
         "mkdirp": "bin/cmd.js"
+      }
+    },
+    "node_modules/module": {
+      "version": "1.2.5",
+      "resolved": "https://registry.npmjs.org/module/-/module-1.2.5.tgz",
+      "integrity": "sha512-Y+j9HcHf8V6YtNBkLbPmREAUi5xGbAdb9ycXpo2roABDPrJEzd79kmoH5Ib9lpxcNVsHWa1LhRZJcflUq2+N3w==",
+      "dependencies": {
+        "chalk": "1.1.3",
+        "concat-stream": "1.5.1",
+        "lodash.template": "4.2.4",
+        "map-stream": "0.0.6",
+        "tildify": "1.2.0",
+        "vinyl-fs": "2.4.3",
+        "yargs": "4.6.0"
+      },
+      "bin": {
+        "module": "dist/cli.js"
+      }
+    },
+    "node_modules/module/node_modules/ansi-regex": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+      "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/module/node_modules/ansi-styles": {
+      "version": "2.2.1",
+      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+      "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/module/node_modules/camelcase": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
+      "integrity": "sha512-DLIsRzJVBQu72meAKPkWQOLcujdXT32hwdfnkI1frSiSRMK1MofjKHf+MEx0SB6fjEFXL8fBDv1dKymBlOp4Qw==",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/module/node_modules/chalk": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+      "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==",
+      "dependencies": {
+        "ansi-styles": "^2.2.1",
+        "escape-string-regexp": "^1.0.2",
+        "has-ansi": "^2.0.0",
+        "strip-ansi": "^3.0.0",
+        "supports-color": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/module/node_modules/cliui": {
+      "version": "3.2.0",
+      "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
+      "integrity": "sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==",
+      "dependencies": {
+        "string-width": "^1.0.1",
+        "strip-ansi": "^3.0.1",
+        "wrap-ansi": "^2.0.0"
+      }
+    },
+    "node_modules/module/node_modules/concat-stream": {
+      "version": "1.5.1",
+      "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.1.tgz",
+      "integrity": "sha512-eYF1Q4RxUUwq8ApyPD9ebWsYjVrJmTMLGzbGXv4qTZ5iP7FLm+oWN4x2XIzLEZ745xiwRM9DmIB0Ix1Nz8Epmg==",
+      "engines": [
+        "node >= 0.8"
+      ],
+      "dependencies": {
+        "inherits": "~2.0.1",
+        "readable-stream": "~2.0.0",
+        "typedarray": "~0.0.5"
+      }
+    },
+    "node_modules/module/node_modules/is-fullwidth-code-point": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+      "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==",
+      "dependencies": {
+        "number-is-nan": "^1.0.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/module/node_modules/process-nextick-args": {
+      "version": "1.0.7",
+      "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
+      "integrity": "sha512-yN0WQmuCX63LP/TMvAg31nvT6m4vDqJEiiv2CAZqWOGNWutc9DfDk1NPYYmKUFmaVM2UwDowH4u5AHWYP/jxKw=="
+    },
+    "node_modules/module/node_modules/readable-stream": {
+      "version": "2.0.6",
+      "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz",
+      "integrity": "sha512-TXcFfb63BQe1+ySzsHZI/5v1aJPCShfqvWJ64ayNImXMsN1Cd0YGk/wm8KB7/OeessgPc9QvS9Zou8QTkFzsLw==",
+      "dependencies": {
+        "core-util-is": "~1.0.0",
+        "inherits": "~2.0.1",
+        "isarray": "~1.0.0",
+        "process-nextick-args": "~1.0.6",
+        "string_decoder": "~0.10.x",
+        "util-deprecate": "~1.0.1"
+      }
+    },
+    "node_modules/module/node_modules/require-main-filename": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
+      "integrity": "sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug=="
+    },
+    "node_modules/module/node_modules/string_decoder": {
+      "version": "0.10.31",
+      "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+      "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ=="
+    },
+    "node_modules/module/node_modules/string-width": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+      "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==",
+      "dependencies": {
+        "code-point-at": "^1.0.0",
+        "is-fullwidth-code-point": "^1.0.0",
+        "strip-ansi": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/module/node_modules/strip-ansi": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+      "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==",
+      "dependencies": {
+        "ansi-regex": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/module/node_modules/supports-color": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+      "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==",
+      "engines": {
+        "node": ">=0.8.0"
+      }
+    },
+    "node_modules/module/node_modules/window-size": {
+      "version": "0.2.0",
+      "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.2.0.tgz",
+      "integrity": "sha512-UD7d8HFA2+PZsbKyaOCEy8gMh1oDtHgJh1LfgjQ4zVXmYjAT/kvz3PueITKuqDiIXQe7yzpPnxX3lNc+AhQMyw==",
+      "bin": {
+        "window-size": "cli.js"
+      },
+      "engines": {
+        "node": ">= 0.10.0"
+      }
+    },
+    "node_modules/module/node_modules/wrap-ansi": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
+      "integrity": "sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==",
+      "dependencies": {
+        "string-width": "^1.0.1",
+        "strip-ansi": "^3.0.1"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/module/node_modules/y18n": {
+      "version": "3.2.2",
+      "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz",
+      "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ=="
+    },
+    "node_modules/module/node_modules/yargs": {
+      "version": "4.6.0",
+      "resolved": "https://registry.npmjs.org/yargs/-/yargs-4.6.0.tgz",
+      "integrity": "sha512-KmjJbWBkYiSRUChcOSa4rtBxDXf0j4ISz+tpeNa4LKIBllgKnkemJ3x4yo4Yydp3wPU4/xJTaKTLLZ8V7zhI7A==",
+      "dependencies": {
+        "camelcase": "^2.0.1",
+        "cliui": "^3.2.0",
+        "decamelize": "^1.1.1",
+        "lodash.assign": "^4.0.3",
+        "os-locale": "^1.4.0",
+        "pkg-conf": "^1.1.2",
+        "read-pkg-up": "^1.0.1",
+        "require-main-filename": "^1.0.1",
+        "string-width": "^1.0.1",
+        "window-size": "^0.2.0",
+        "y18n": "^3.2.1",
+        "yargs-parser": "^2.4.0"
+      }
+    },
+    "node_modules/module/node_modules/yargs-parser": {
+      "version": "2.4.1",
+      "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-2.4.1.tgz",
+      "integrity": "sha512-9pIKIJhnI5tonzG6OnCFlz/yln8xHYcGl+pn3xR0Vzff0vzN1PbNRaelgfgRUwZ3s4i3jvxT9WhmUGL4whnasA==",
+      "dependencies": {
+        "camelcase": "^3.0.0",
+        "lodash.assign": "^4.0.6"
+      }
+    },
+    "node_modules/module/node_modules/yargs-parser/node_modules/camelcase": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
+      "integrity": "sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg==",
+      "engines": {
+        "node": ">=0.10.0"
       }
     },
     "node_modules/moment": {
@@ -9251,6 +9878,15 @@
         "node": ">=4"
       }
     },
+    "node_modules/ordered-read-streams": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.3.0.tgz",
+      "integrity": "sha512-xQvd8qvx9U1iYY9aVqPpoF5V9uaWJKV6ZGljkh/jkiNX0DiQsjbWvRumbh10QTMDE8DheaOEU8xi0szbrgjzcw==",
+      "dependencies": {
+        "is-stream": "^1.0.1",
+        "readable-stream": "^2.0.1"
+      }
+    },
     "node_modules/original": {
       "version": "1.0.2",
       "resolved": "https://registry.npmmirror.com/original/-/original-1.0.2.tgz",
@@ -9580,6 +10216,43 @@
       "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==",
       "dependencies": {
         "pinkie": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/pkg-conf": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-1.1.3.tgz",
+      "integrity": "sha512-9hHgE5+Xai/ChrnahNP8Ke0VNF/s41IZIB/d24eMHEaRamdPg+wwlRm2lTb5wMvE8eTIKrYZsrxfuOwt3dpsIQ==",
+      "dependencies": {
+        "find-up": "^1.0.0",
+        "load-json-file": "^1.1.0",
+        "object-assign": "^4.0.1",
+        "symbol": "^0.2.1"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/pkg-conf/node_modules/find-up": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+      "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==",
+      "dependencies": {
+        "path-exists": "^2.0.0",
+        "pinkie-promise": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/pkg-conf/node_modules/path-exists": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+      "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==",
+      "dependencies": {
+        "pinkie-promise": "^2.0.0"
       },
       "engines": {
         "node": ">=0.10.0"
@@ -13456,6 +14129,14 @@
         "node": ">=0.10.0"
       }
     },
+    "node_modules/replace-ext": {
+      "version": "0.0.1",
+      "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz",
+      "integrity": "sha512-AFBWBy9EVRTa/LhEcG8QDP3FvpwZqmvN2QFDuJswFeaVhWnZMp8q3E6Zd90SR04PlIwfGdyVjNyLPyen/ek5CQ==",
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
     "node_modules/require-directory": {
       "version": "2.1.1",
       "resolved": "https://registry.npmmirror.com/require-directory/-/require-directory-2.1.1.tgz",
@@ -14629,8 +15310,7 @@
     "node_modules/stream-shift": {
       "version": "1.0.1",
       "resolved": "https://registry.npmmirror.com/stream-shift/-/stream-shift-1.0.1.tgz",
-      "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==",
-      "dev": true
+      "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ=="
     },
     "node_modules/strict-uri-encode": {
       "version": "1.1.0",
@@ -14716,6 +15396,29 @@
       "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
       "engines": {
         "node": ">=4"
+      }
+    },
+    "node_modules/strip-bom-stream": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-1.0.0.tgz",
+      "integrity": "sha512-7jfJB9YpI2Z0aH3wu10ZqitvYJaE0s5IzFuWE+0pbb4Q/armTloEUShymkDO47YSLnjAW52mlXT//hs9wXNNJQ==",
+      "dependencies": {
+        "first-chunk-stream": "^1.0.0",
+        "strip-bom": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/strip-bom-stream/node_modules/strip-bom": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
+      "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==",
+      "dependencies": {
+        "is-utf8": "^0.2.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
       }
     },
     "node_modules/strip-eof": {
@@ -14942,6 +15645,11 @@
         "js-yaml": "bin/js-yaml.js"
       }
     },
+    "node_modules/symbol": {
+      "version": "0.2.3",
+      "resolved": "https://registry.npmjs.org/symbol/-/symbol-0.2.3.tgz",
+      "integrity": "sha512-IUW+ek7apEaW5bFhS6WpYoNtVpNTlNoqB/PH7YiMWQTxSPeXCzG4PILVakwXivJt3ZXWeO1fIJnUd/L9A/VeGA=="
+    },
     "node_modules/table": {
       "version": "4.0.2",
       "resolved": "https://registry.npmmirror.com/table/-/table-4.0.2.tgz",
@@ -14988,16 +15696,35 @@
       "version": "2.0.5",
       "resolved": "https://registry.npmmirror.com/through2/-/through2-2.0.5.tgz",
       "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
-      "dev": true,
       "dependencies": {
         "readable-stream": "~2.3.6",
         "xtend": "~4.0.1"
+      }
+    },
+    "node_modules/through2-filter": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-2.0.0.tgz",
+      "integrity": "sha512-miwWajb1B80NvIVKXFPN/o7+vJc4jYUvnZCwvhicRAoTxdD9wbcjri70j+BenCrN/JXEPKDjhpw4iY7yiNsCGg==",
+      "dependencies": {
+        "through2": "~2.0.0",
+        "xtend": "~4.0.0"
       }
     },
     "node_modules/thunky": {
       "version": "1.1.0",
       "resolved": "https://registry.npmmirror.com/thunky/-/thunky-1.1.0.tgz",
       "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA=="
+    },
+    "node_modules/tildify": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/tildify/-/tildify-1.2.0.tgz",
+      "integrity": "sha512-Y9q1GaV/BO65Z9Yf4NOGMuwt3SGdptkZBnaaKfTQakrDyCLiuO1Kc5wxW4xLdsjzunRtqtOdhekiUFmZbklwYQ==",
+      "dependencies": {
+        "os-homedir": "^1.0.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
     },
     "node_modules/time-stamp": {
       "version": "2.2.0",
@@ -15039,6 +15766,36 @@
       },
       "engines": {
         "node": ">=0.6.0"
+      }
+    },
+    "node_modules/to-absolute-glob": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-0.1.1.tgz",
+      "integrity": "sha512-Vvl5x6zNf9iVG1QTWeknmWrKzZxaeKfIDRibrZCR3b2V/2NlFJuD2HV7P7AVjaKLZNqLPHqyr0jGrW0fTcxCPQ==",
+      "dependencies": {
+        "extend-shallow": "^2.0.1"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/to-absolute-glob/node_modules/extend-shallow": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+      "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+      "dependencies": {
+        "is-extendable": "^0.1.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/to-absolute-glob/node_modules/is-extendable": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+      "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+      "engines": {
+        "node": ">=0.10.0"
       }
     },
     "node_modules/to-arraybuffer": {
@@ -15205,8 +15962,7 @@
     "node_modules/typedarray": {
       "version": "0.0.6",
       "resolved": "https://registry.npmmirror.com/typedarray/-/typedarray-0.0.6.tgz",
-      "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==",
-      "dev": true
+      "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA=="
     },
     "node_modules/uglify-es": {
       "version": "3.3.9",
@@ -15421,6 +16177,24 @@
         "imurmurhash": "^0.1.4"
       }
     },
+    "node_modules/unique-stream": {
+      "version": "2.3.1",
+      "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz",
+      "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==",
+      "dependencies": {
+        "json-stable-stringify-without-jsonify": "^1.0.1",
+        "through2-filter": "^3.0.0"
+      }
+    },
+    "node_modules/unique-stream/node_modules/through2-filter": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz",
+      "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==",
+      "dependencies": {
+        "through2": "~2.0.0",
+        "xtend": "~4.0.0"
+      }
+    },
     "node_modules/unpipe": {
       "version": "1.0.0",
       "resolved": "https://registry.npmmirror.com/unpipe/-/unpipe-1.0.0.tgz",
@@ -15625,6 +16399,14 @@
         "uuid": "bin/uuid"
       }
     },
+    "node_modules/vali-date": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/vali-date/-/vali-date-1.0.0.tgz",
+      "integrity": "sha512-sgECfZthyaCKW10N0fm27cg8HYTFK5qMWgypqkXMQ4Wbl/zZKx7xZICgcoxIIE+WFAP/MBL2EFwC/YvLxw3Zeg==",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
     "node_modules/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",
@@ -15669,6 +16451,65 @@
       "funding": {
         "type": "github",
         "url": "https://github.com/sponsors/wooorm"
+      }
+    },
+    "node_modules/vinyl": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz",
+      "integrity": "sha512-Ci3wnR2uuSAWFMSglZuB8Z2apBdtOyz8CV7dC6/U1XbltXBC+IuutUkXQISz01P+US2ouBuesSbV6zILZ6BuzQ==",
+      "dependencies": {
+        "clone": "^1.0.0",
+        "clone-stats": "^0.0.1",
+        "replace-ext": "0.0.1"
+      },
+      "engines": {
+        "node": ">= 0.9"
+      }
+    },
+    "node_modules/vinyl-fs": {
+      "version": "2.4.3",
+      "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-2.4.3.tgz",
+      "integrity": "sha512-XxYoy5HpHrVd76tpnI5Vv/+b/xlEVusOmn4LjQ01s2JyiDMNaUm3Rb7Y3xTkRw+YoRBVoUrCs7EAIFNXyIlI8Q==",
+      "dependencies": {
+        "duplexify": "^3.2.0",
+        "glob-stream": "^5.3.2",
+        "graceful-fs": "^4.0.0",
+        "gulp-sourcemaps": "^1.5.2",
+        "is-valid-glob": "^0.3.0",
+        "lazystream": "^1.0.0",
+        "lodash.isequal": "^4.0.0",
+        "merge-stream": "^1.0.0",
+        "mkdirp": "^0.5.0",
+        "object-assign": "^4.0.0",
+        "readable-stream": "^2.0.4",
+        "strip-bom": "^2.0.0",
+        "strip-bom-stream": "^1.0.0",
+        "through2": "^2.0.0",
+        "through2-filter": "^2.0.0",
+        "vali-date": "^1.0.0",
+        "vinyl": "^1.0.0"
+      },
+      "engines": {
+        "node": ">=0.10"
+      }
+    },
+    "node_modules/vinyl-fs/node_modules/strip-bom": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
+      "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==",
+      "dependencies": {
+        "is-utf8": "^0.2.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/vinyl/node_modules/clone": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
+      "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==",
+      "engines": {
+        "node": ">=0.8"
       }
     },
     "node_modules/vm-browserify": {
@@ -18227,6 +19068,25 @@
         "to-fast-properties": "^2.0.0"
       }
     },
+    "@gulp-sourcemaps/map-sources": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/map-sources/-/map-sources-1.0.0.tgz",
+      "integrity": "sha512-o/EatdaGt8+x2qpb0vFLC/2Gug/xYPRXb6a+ET1wGYKozKN3krDWC/zZFZAtrzxJHuDL12mwdfEFKcKMNvc55A==",
+      "requires": {
+        "normalize-path": "^2.0.1",
+        "through2": "^2.0.3"
+      },
+      "dependencies": {
+        "normalize-path": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+          "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==",
+          "requires": {
+            "remove-trailing-separator": "^1.0.1"
+          }
+        }
+      }
+    },
     "@types/json5": {
       "version": "0.0.29",
       "resolved": "https://registry.npmmirror.com/@types/json5/-/json5-0.0.29.tgz",
@@ -20277,6 +21137,11 @@
       "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==",
       "dev": true
     },
+    "clone-stats": {
+      "version": "0.0.1",
+      "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz",
+      "integrity": "sha512-dhUqc57gSMCo6TX85FLfe51eC/s+Im2MLkAgJwfaRRexR2tA4dd3eLEW4L6efzHc2iNorrRRXITifnDLlRrhaA=="
+    },
     "co": {
       "version": "4.6.0",
       "resolved": "https://registry.npmmirror.com/co/-/co-4.6.0.tgz",
@@ -21577,6 +22442,23 @@
         "ms": "2.0.0"
       }
     },
+    "debug-fabulous": {
+      "version": "0.0.4",
+      "resolved": "https://registry.npmjs.org/debug-fabulous/-/debug-fabulous-0.0.4.tgz",
+      "integrity": "sha512-mmVKpY/O4UIl6ZDn5Owf8jEauO6uQiuF4Jz9iTuflSmvqNm6/64xARk/qCq5ZJxu141Ic2lCmL1TSMHIYoyiTw==",
+      "requires": {
+        "debug": "2.X",
+        "lazy-debug-legacy": "0.0.X",
+        "object-assign": "4.1.0"
+      },
+      "dependencies": {
+        "object-assign": {
+          "version": "4.1.0",
+          "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz",
+          "integrity": "sha512-Lbc7GfN7XFaK30bzUN3cDYLOkT0dH05S0ax1QikylHUD9+Z9PRF3G1iYwX3kcz+6AlzTFGkUgMxz6l3aUwbwTA=="
+        }
+      }
+    },
     "decamelize": {
       "version": "1.2.0",
       "resolved": "https://registry.npmmirror.com/decamelize/-/decamelize-1.2.0.tgz",
@@ -21707,6 +22589,11 @@
       "requires": {
         "repeating": "^2.0.0"
       }
+    },
+    "detect-newline": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz",
+      "integrity": "sha512-CwffZFvlJffUg9zZA0uqrjQayUTC8ob94pnr5sFwaVv3IOmkfUHcWH+jXaQK3askE51Cqe8/9Ql/0uXNwqZ8Zg=="
     },
     "detect-node": {
       "version": "2.1.0",
@@ -21845,7 +22732,6 @@
       "version": "3.7.1",
       "resolved": "https://registry.npmmirror.com/duplexify/-/duplexify-3.7.1.tgz",
       "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==",
-      "dev": true,
       "requires": {
         "end-of-stream": "^1.0.0",
         "inherits": "^2.0.1",
@@ -21943,7 +22829,6 @@
       "version": "1.4.4",
       "resolved": "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz",
       "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
-      "dev": true,
       "requires": {
         "once": "^1.4.0"
       }
@@ -22718,8 +23603,7 @@
     "extend": {
       "version": "3.0.2",
       "resolved": "https://registry.npmmirror.com/extend/-/extend-3.0.2.tgz",
-      "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
-      "dev": true
+      "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
     },
     "extend-shallow": {
       "version": "3.0.2",
@@ -22941,6 +23825,11 @@
       "requires": {
         "locate-path": "^2.0.0"
       }
+    },
+    "first-chunk-stream": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz",
+      "integrity": "sha512-ArRi5axuv66gEsyl3UuK80CzW7t56hem73YGNYxNWTGNKFJUadSb9Gu9SHijYEUi8ulQMf1bJomYNwSCPHhtTQ=="
     },
     "flat-cache": {
       "version": "1.3.4",
@@ -23256,6 +24145,179 @@
         "is-glob": "^4.0.1"
       }
     },
+    "glob-stream": {
+      "version": "5.3.5",
+      "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-5.3.5.tgz",
+      "integrity": "sha512-piN8XVAO2sNxwVLokL4PswgJvK/uQ6+awwXUVRTGF+rRfgCZpn4hOqxiRuTEbU/k3qgKl0DACYQ/0Sge54UMQg==",
+      "requires": {
+        "extend": "^3.0.0",
+        "glob": "^5.0.3",
+        "glob-parent": "^3.0.0",
+        "micromatch": "^2.3.7",
+        "ordered-read-streams": "^0.3.0",
+        "through2": "^0.6.0",
+        "to-absolute-glob": "^0.1.1",
+        "unique-stream": "^2.0.2"
+      },
+      "dependencies": {
+        "arr-diff": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
+          "integrity": "sha512-dtXTVMkh6VkEEA7OhXnN1Ecb8aAGFdZ1LFxtOCoqj4qkyOJMt7+qs6Ahdy6p/NQCPYsRSXXivhSB/J5E9jmYKA==",
+          "requires": {
+            "arr-flatten": "^1.0.1"
+          }
+        },
+        "array-unique": {
+          "version": "0.2.1",
+          "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
+          "integrity": "sha512-G2n5bG5fSUCpnsXz4+8FUkYsGPkNfLn9YvS66U5qbTIXI2Ynnlo4Bi42bWv+omKUCqz+ejzfClwne0alJWJPhg=="
+        },
+        "braces": {
+          "version": "1.8.5",
+          "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
+          "integrity": "sha512-xU7bpz2ytJl1bH9cgIurjpg/n8Gohy9GTw81heDYLJQ4RU60dlyJsa+atVF2pI0yMMvKxI9HkKwjePCj5XI1hw==",
+          "requires": {
+            "expand-range": "^1.8.1",
+            "preserve": "^0.2.0",
+            "repeat-element": "^1.1.2"
+          }
+        },
+        "expand-brackets": {
+          "version": "0.1.5",
+          "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
+          "integrity": "sha512-hxx03P2dJxss6ceIeri9cmYOT4SRs3Zk3afZwWpOsRqLqprhTR8u++SlC+sFGsQr7WGFPdMF7Gjc1njDLDK6UA==",
+          "requires": {
+            "is-posix-bracket": "^0.1.0"
+          }
+        },
+        "extglob": {
+          "version": "0.3.2",
+          "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
+          "integrity": "sha512-1FOj1LOwn42TMrruOHGt18HemVnbwAmAak7krWk+wa93KXxGbK+2jpezm+ytJYDaBX0/SPLZFHKM7m+tKobWGg==",
+          "requires": {
+            "is-extglob": "^1.0.0"
+          },
+          "dependencies": {
+            "is-extglob": {
+              "version": "1.0.0",
+              "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
+              "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww=="
+            }
+          }
+        },
+        "glob": {
+          "version": "5.0.15",
+          "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
+          "integrity": "sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==",
+          "requires": {
+            "inflight": "^1.0.4",
+            "inherits": "2",
+            "minimatch": "2 || 3",
+            "once": "^1.3.0",
+            "path-is-absolute": "^1.0.0"
+          }
+        },
+        "glob-parent": {
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
+          "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==",
+          "requires": {
+            "is-glob": "^3.1.0",
+            "path-dirname": "^1.0.0"
+          }
+        },
+        "is-glob": {
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
+          "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==",
+          "requires": {
+            "is-extglob": "^2.1.0"
+          }
+        },
+        "isarray": {
+          "version": "0.0.1",
+          "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+          "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ=="
+        },
+        "kind-of": {
+          "version": "3.2.2",
+          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+          "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+          "requires": {
+            "is-buffer": "^1.1.5"
+          }
+        },
+        "micromatch": {
+          "version": "2.3.11",
+          "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
+          "integrity": "sha512-LnU2XFEk9xxSJ6rfgAry/ty5qwUTyHYOBU0g4R6tIw5ljwgGIBmiKhRWLw5NpMOnrgUNcDJ4WMp8rl3sYVHLNA==",
+          "requires": {
+            "arr-diff": "^2.0.0",
+            "array-unique": "^0.2.1",
+            "braces": "^1.8.2",
+            "expand-brackets": "^0.1.4",
+            "extglob": "^0.3.1",
+            "filename-regex": "^2.0.0",
+            "is-extglob": "^1.0.0",
+            "is-glob": "^2.0.1",
+            "kind-of": "^3.0.2",
+            "normalize-path": "^2.0.1",
+            "object.omit": "^2.0.0",
+            "parse-glob": "^3.0.4",
+            "regex-cache": "^0.4.2"
+          },
+          "dependencies": {
+            "is-extglob": {
+              "version": "1.0.0",
+              "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
+              "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww=="
+            },
+            "is-glob": {
+              "version": "2.0.1",
+              "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
+              "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==",
+              "requires": {
+                "is-extglob": "^1.0.0"
+              }
+            }
+          }
+        },
+        "normalize-path": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+          "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==",
+          "requires": {
+            "remove-trailing-separator": "^1.0.1"
+          }
+        },
+        "readable-stream": {
+          "version": "1.0.34",
+          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
+          "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==",
+          "requires": {
+            "core-util-is": "~1.0.0",
+            "inherits": "~2.0.1",
+            "isarray": "0.0.1",
+            "string_decoder": "~0.10.x"
+          }
+        },
+        "string_decoder": {
+          "version": "0.10.31",
+          "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+          "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ=="
+        },
+        "through2": {
+          "version": "0.6.5",
+          "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
+          "integrity": "sha512-RkK/CCESdTKQZHdmKICijdKKsCRVHs5KsLZ6pACAmF/1GPUQhonHSXWNERctxEp7RmvjdNbZTL5z9V7nSCXKcg==",
+          "requires": {
+            "readable-stream": ">=1.0.33-1 <1.1.0-0",
+            "xtend": ">=4.0.0 <4.1.0-0"
+          }
+        }
+      }
+    },
     "globals": {
       "version": "11.12.0",
       "resolved": "https://registry.npmmirror.com/globals/-/globals-11.12.0.tgz",
@@ -23294,6 +24356,44 @@
       "resolved": "https://registry.npmmirror.com/growly/-/growly-1.3.0.tgz",
       "integrity": "sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==",
       "dev": true
+    },
+    "gulp-sourcemaps": {
+      "version": "1.12.1",
+      "resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-1.12.1.tgz",
+      "integrity": "sha512-2NYnMpB67LJhc36sEv+hNY05UOy1lD9DPtLi+en4hbGH+085G9Zzh3cet2VEqrDlQrLk9Eho0MM9dZ3Z+dL0XA==",
+      "requires": {
+        "@gulp-sourcemaps/map-sources": "1.X",
+        "acorn": "4.X",
+        "convert-source-map": "1.X",
+        "css": "2.X",
+        "debug-fabulous": "0.0.X",
+        "detect-newline": "2.X",
+        "graceful-fs": "4.X",
+        "source-map": "~0.6.0",
+        "strip-bom": "2.X",
+        "through2": "2.X",
+        "vinyl": "1.X"
+      },
+      "dependencies": {
+        "acorn": {
+          "version": "4.0.13",
+          "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz",
+          "integrity": "sha512-fu2ygVGuMmlzG8ZeRJ0bvR41nsAkxxhbyk8bZ1SS521Z7vmgJFTQQlfz/Mp/nJexGBz+v8sC9bM6+lNgskt4Ug=="
+        },
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
+        },
+        "strip-bom": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
+          "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==",
+          "requires": {
+            "is-utf8": "^0.2.0"
+          }
+        }
+      }
     },
     "gzip-size": {
       "version": "4.1.0",
@@ -24150,6 +25250,11 @@
       "resolved": "https://registry.npmmirror.com/is-utf8/-/is-utf8-0.2.1.tgz",
       "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q=="
     },
+    "is-valid-glob": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-0.3.0.tgz",
+      "integrity": "sha512-CvG8EtJZ8FyzVOGPzrDorzyN65W1Ld8BVnqshRCah6pFIsprGx3dKgFtjLn/Vw9kGqR4OlR84U7yhT9ZVTyWIQ=="
+    },
     "is-weakref": {
       "version": "1.0.2",
       "resolved": "https://registry.npmmirror.com/is-weakref/-/is-weakref-1.0.2.tgz",
@@ -24248,8 +25353,7 @@
     "json-stable-stringify-without-jsonify": {
       "version": "1.0.1",
       "resolved": "https://registry.npmmirror.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
-      "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
-      "dev": true
+      "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw=="
     },
     "json3": {
       "version": "3.3.3",
@@ -24294,6 +25398,20 @@
       "version": "1.0.4",
       "resolved": "https://registry.npmmirror.com/lazy-cache/-/lazy-cache-1.0.4.tgz",
       "integrity": "sha512-RE2g0b5VGZsOCFOCgP7omTRYFqydmZkBwl5oNnQ1lDYC57uyO9KqNnNVxT7COSHTxrRCWVcAVOcbjk+tvh/rgQ=="
+    },
+    "lazy-debug-legacy": {
+      "version": "0.0.1",
+      "resolved": "https://registry.npmjs.org/lazy-debug-legacy/-/lazy-debug-legacy-0.0.1.tgz",
+      "integrity": "sha512-GFWaIBcBjxWWKI5OghwYEsPOR8JFh2xEcc3ZFV0ONYL0oHz0PHINJCfxJyztUq2XzcHncyO7fsRR550Gtfnk6g==",
+      "requires": {}
+    },
+    "lazystream": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz",
+      "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==",
+      "requires": {
+        "readable-stream": "^2.0.5"
+      }
     },
     "lcid": {
       "version": "1.0.0",
@@ -24545,10 +25663,20 @@
       "resolved": "https://registry.npmmirror.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz",
       "integrity": "sha512-De+ZbrMu6eThFti/CSzhRvTKMgQToLxbij58LMfM8JnYDNSOjkjTCIaa8ixglOeGh2nyPlakbt5bJWJ7gvpYlQ=="
     },
+    "lodash._reinterpolate": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
+      "integrity": "sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA=="
+    },
     "lodash.assign": {
       "version": "4.2.0",
       "resolved": "https://registry.npmmirror.com/lodash.assign/-/lodash.assign-4.2.0.tgz",
       "integrity": "sha512-hFuH8TY+Yji7Eja3mGiuAxBqLagejScbG8GbG0j6o9vzn0YL14My+ktnqtZgFTosKymC9/44wP6s7xyuLfnClw=="
+    },
+    "lodash.assigninwith": {
+      "version": "4.2.0",
+      "resolved": "https://registry.npmjs.org/lodash.assigninwith/-/lodash.assigninwith-4.2.0.tgz",
+      "integrity": "sha512-oYOjtZzQnecm7PJcxrDbL20OHv3tTtOQdRBSnlor6s0MO6VOFTOC+JyBIJUNUEzsBi1I0oslWtFAAG6QQbFIWQ=="
     },
     "lodash.camelcase": {
       "version": "4.3.0",
@@ -24570,6 +25698,11 @@
       "resolved": "https://registry.npmmirror.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz",
       "integrity": "sha512-JwObCrNJuT0Nnbuecmqr5DgtuBppuCvGD9lxjFpAzwnVtdGoDQ1zig+5W8k5/6Gcn0gZ3936HDAlGd28i7sOGQ=="
     },
+    "lodash.isequal": {
+      "version": "4.5.0",
+      "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
+      "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ=="
+    },
     "lodash.keys": {
       "version": "3.1.2",
       "resolved": "https://registry.npmmirror.com/lodash.keys/-/lodash.keys-3.1.2.tgz",
@@ -24585,10 +25718,48 @@
       "resolved": "https://registry.npmmirror.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
       "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag=="
     },
+    "lodash.rest": {
+      "version": "4.0.5",
+      "resolved": "https://registry.npmjs.org/lodash.rest/-/lodash.rest-4.0.5.tgz",
+      "integrity": "sha512-hsypEpebNAt0hj1aX9isQqi2CIZoNS1lP6PSWhB3hcMnBivobYzPZRPYq4cr38+RtvrlxQTgaW+sIuHAhBoHrA=="
+    },
     "lodash.restparam": {
       "version": "3.6.1",
       "resolved": "https://registry.npmmirror.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz",
       "integrity": "sha512-L4/arjjuq4noiUJpt3yS6KIKDtJwNe2fIYgMqyYYKoeIfV1iEqvPwhCx23o+R9dzouGihDAPN1dTIRWa7zk8tw=="
+    },
+    "lodash.template": {
+      "version": "4.2.4",
+      "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.2.4.tgz",
+      "integrity": "sha512-PmEQ9TtYbeYg6lNwJpSjkp4J4KttYLuKF1C6jeFBidyzbOFu0KvVnLicZBf0sGfScARwgOBqxnV/rWuaqRwang==",
+      "requires": {
+        "lodash._reinterpolate": "~3.0.0",
+        "lodash.assigninwith": "^4.0.0",
+        "lodash.keys": "^4.0.0",
+        "lodash.rest": "^4.0.0",
+        "lodash.templatesettings": "^4.0.0",
+        "lodash.tostring": "^4.0.0"
+      },
+      "dependencies": {
+        "lodash.keys": {
+          "version": "4.2.0",
+          "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-4.2.0.tgz",
+          "integrity": "sha512-J79MkJcp7Df5mizHiVNpjoHXLi4HLjh9VLS/M7lQSGoQ+0oQ+lWEigREkqKyizPB1IawvQLLKY8mzEcm1tkyxQ=="
+        }
+      }
+    },
+    "lodash.templatesettings": {
+      "version": "4.2.0",
+      "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz",
+      "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==",
+      "requires": {
+        "lodash._reinterpolate": "^3.0.0"
+      }
+    },
+    "lodash.tostring": {
+      "version": "4.1.4",
+      "resolved": "https://registry.npmjs.org/lodash.tostring/-/lodash.tostring-4.1.4.tgz",
+      "integrity": "sha512-xWHJ0LY7cSz/C/4ghNNiYA1Ong0VLdzAzrjDHvOzN+eJHzDEHme2+k+w/9Pk8dtdwcASMUbxN1/mtj6mFI25Ng=="
     },
     "lodash.uniq": {
       "version": "4.5.0",
@@ -24663,6 +25834,11 @@
       "version": "1.0.1",
       "resolved": "https://registry.npmmirror.com/map-obj/-/map-obj-1.0.1.tgz",
       "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg=="
+    },
+    "map-stream": {
+      "version": "0.0.6",
+      "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.6.tgz",
+      "integrity": "sha512-RG9wAgznUY0foT30MMfnXh4jS0ObmOuxoGKe/ppYvM55RfquNdIvEEf6e+euczNVVzJIVbkgxg7GJBpYDhQ/Zg=="
     },
     "map-visit": {
       "version": "1.0.0",
@@ -24741,6 +25917,14 @@
       "version": "1.0.1",
       "resolved": "https://registry.npmmirror.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
       "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w=="
+    },
+    "merge-stream": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz",
+      "integrity": "sha512-e6RM36aegd4f+r8BZCcYXlO2P3H6xbUM6ktL2Xmf45GAOit9bI4z6/3VU7JwllVO1L7u0UDSg/EhzQ5lmMLolA==",
+      "requires": {
+        "readable-stream": "^2.0.1"
+      }
     },
     "methods": {
       "version": "1.1.2",
@@ -24959,6 +26143,182 @@
       "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
       "requires": {
         "minimist": "^1.2.6"
+      }
+    },
+    "module": {
+      "version": "1.2.5",
+      "resolved": "https://registry.npmjs.org/module/-/module-1.2.5.tgz",
+      "integrity": "sha512-Y+j9HcHf8V6YtNBkLbPmREAUi5xGbAdb9ycXpo2roABDPrJEzd79kmoH5Ib9lpxcNVsHWa1LhRZJcflUq2+N3w==",
+      "requires": {
+        "chalk": "1.1.3",
+        "concat-stream": "1.5.1",
+        "lodash.template": "4.2.4",
+        "map-stream": "0.0.6",
+        "tildify": "1.2.0",
+        "vinyl-fs": "2.4.3",
+        "yargs": "4.6.0"
+      },
+      "dependencies": {
+        "ansi-regex": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+          "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA=="
+        },
+        "ansi-styles": {
+          "version": "2.2.1",
+          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+          "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA=="
+        },
+        "camelcase": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
+          "integrity": "sha512-DLIsRzJVBQu72meAKPkWQOLcujdXT32hwdfnkI1frSiSRMK1MofjKHf+MEx0SB6fjEFXL8fBDv1dKymBlOp4Qw=="
+        },
+        "chalk": {
+          "version": "1.1.3",
+          "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+          "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==",
+          "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"
+          }
+        },
+        "cliui": {
+          "version": "3.2.0",
+          "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
+          "integrity": "sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==",
+          "requires": {
+            "string-width": "^1.0.1",
+            "strip-ansi": "^3.0.1",
+            "wrap-ansi": "^2.0.0"
+          }
+        },
+        "concat-stream": {
+          "version": "1.5.1",
+          "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.1.tgz",
+          "integrity": "sha512-eYF1Q4RxUUwq8ApyPD9ebWsYjVrJmTMLGzbGXv4qTZ5iP7FLm+oWN4x2XIzLEZ745xiwRM9DmIB0Ix1Nz8Epmg==",
+          "requires": {
+            "inherits": "~2.0.1",
+            "readable-stream": "~2.0.0",
+            "typedarray": "~0.0.5"
+          }
+        },
+        "is-fullwidth-code-point": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+          "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==",
+          "requires": {
+            "number-is-nan": "^1.0.0"
+          }
+        },
+        "process-nextick-args": {
+          "version": "1.0.7",
+          "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
+          "integrity": "sha512-yN0WQmuCX63LP/TMvAg31nvT6m4vDqJEiiv2CAZqWOGNWutc9DfDk1NPYYmKUFmaVM2UwDowH4u5AHWYP/jxKw=="
+        },
+        "readable-stream": {
+          "version": "2.0.6",
+          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz",
+          "integrity": "sha512-TXcFfb63BQe1+ySzsHZI/5v1aJPCShfqvWJ64ayNImXMsN1Cd0YGk/wm8KB7/OeessgPc9QvS9Zou8QTkFzsLw==",
+          "requires": {
+            "core-util-is": "~1.0.0",
+            "inherits": "~2.0.1",
+            "isarray": "~1.0.0",
+            "process-nextick-args": "~1.0.6",
+            "string_decoder": "~0.10.x",
+            "util-deprecate": "~1.0.1"
+          }
+        },
+        "require-main-filename": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
+          "integrity": "sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug=="
+        },
+        "string_decoder": {
+          "version": "0.10.31",
+          "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+          "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ=="
+        },
+        "string-width": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+          "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==",
+          "requires": {
+            "code-point-at": "^1.0.0",
+            "is-fullwidth-code-point": "^1.0.0",
+            "strip-ansi": "^3.0.0"
+          }
+        },
+        "strip-ansi": {
+          "version": "3.0.1",
+          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+          "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==",
+          "requires": {
+            "ansi-regex": "^2.0.0"
+          }
+        },
+        "supports-color": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+          "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g=="
+        },
+        "window-size": {
+          "version": "0.2.0",
+          "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.2.0.tgz",
+          "integrity": "sha512-UD7d8HFA2+PZsbKyaOCEy8gMh1oDtHgJh1LfgjQ4zVXmYjAT/kvz3PueITKuqDiIXQe7yzpPnxX3lNc+AhQMyw=="
+        },
+        "wrap-ansi": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
+          "integrity": "sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==",
+          "requires": {
+            "string-width": "^1.0.1",
+            "strip-ansi": "^3.0.1"
+          }
+        },
+        "y18n": {
+          "version": "3.2.2",
+          "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz",
+          "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ=="
+        },
+        "yargs": {
+          "version": "4.6.0",
+          "resolved": "https://registry.npmjs.org/yargs/-/yargs-4.6.0.tgz",
+          "integrity": "sha512-KmjJbWBkYiSRUChcOSa4rtBxDXf0j4ISz+tpeNa4LKIBllgKnkemJ3x4yo4Yydp3wPU4/xJTaKTLLZ8V7zhI7A==",
+          "requires": {
+            "camelcase": "^2.0.1",
+            "cliui": "^3.2.0",
+            "decamelize": "^1.1.1",
+            "lodash.assign": "^4.0.3",
+            "os-locale": "^1.4.0",
+            "pkg-conf": "^1.1.2",
+            "read-pkg-up": "^1.0.1",
+            "require-main-filename": "^1.0.1",
+            "string-width": "^1.0.1",
+            "window-size": "^0.2.0",
+            "y18n": "^3.2.1",
+            "yargs-parser": "^2.4.0"
+          }
+        },
+        "yargs-parser": {
+          "version": "2.4.1",
+          "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-2.4.1.tgz",
+          "integrity": "sha512-9pIKIJhnI5tonzG6OnCFlz/yln8xHYcGl+pn3xR0Vzff0vzN1PbNRaelgfgRUwZ3s4i3jvxT9WhmUGL4whnasA==",
+          "requires": {
+            "camelcase": "^3.0.0",
+            "lodash.assign": "^4.0.6"
+          },
+          "dependencies": {
+            "camelcase": {
+              "version": "3.0.0",
+              "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
+              "integrity": "sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg=="
+            }
+          }
+        }
       }
     },
     "moment": {
@@ -25527,6 +26887,15 @@
         "log-symbols": "^2.1.0"
       }
     },
+    "ordered-read-streams": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.3.0.tgz",
+      "integrity": "sha512-xQvd8qvx9U1iYY9aVqPpoF5V9uaWJKV6ZGljkh/jkiNX0DiQsjbWvRumbh10QTMDE8DheaOEU8xi0szbrgjzcw==",
+      "requires": {
+        "is-stream": "^1.0.1",
+        "readable-stream": "^2.0.1"
+      }
+    },
     "original": {
       "version": "1.0.2",
       "resolved": "https://registry.npmmirror.com/original/-/original-1.0.2.tgz",
@@ -25783,6 +27152,36 @@
       "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==",
       "requires": {
         "pinkie": "^2.0.0"
+      }
+    },
+    "pkg-conf": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-1.1.3.tgz",
+      "integrity": "sha512-9hHgE5+Xai/ChrnahNP8Ke0VNF/s41IZIB/d24eMHEaRamdPg+wwlRm2lTb5wMvE8eTIKrYZsrxfuOwt3dpsIQ==",
+      "requires": {
+        "find-up": "^1.0.0",
+        "load-json-file": "^1.1.0",
+        "object-assign": "^4.0.1",
+        "symbol": "^0.2.1"
+      },
+      "dependencies": {
+        "find-up": {
+          "version": "1.1.2",
+          "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+          "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==",
+          "requires": {
+            "path-exists": "^2.0.0",
+            "pinkie-promise": "^2.0.0"
+          }
+        },
+        "path-exists": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+          "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==",
+          "requires": {
+            "pinkie-promise": "^2.0.0"
+          }
+        }
       }
     },
     "pkg-dir": {
@@ -28829,6 +30228,11 @@
         "is-finite": "^1.0.0"
       }
     },
+    "replace-ext": {
+      "version": "0.0.1",
+      "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz",
+      "integrity": "sha512-AFBWBy9EVRTa/LhEcG8QDP3FvpwZqmvN2QFDuJswFeaVhWnZMp8q3E6Zd90SR04PlIwfGdyVjNyLPyen/ek5CQ=="
+    },
     "require-directory": {
       "version": "2.1.1",
       "resolved": "https://registry.npmmirror.com/require-directory/-/require-directory-2.1.1.tgz",
@@ -29773,8 +31177,7 @@
     "stream-shift": {
       "version": "1.0.1",
       "resolved": "https://registry.npmmirror.com/stream-shift/-/stream-shift-1.0.1.tgz",
-      "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==",
-      "dev": true
+      "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ=="
     },
     "strict-uri-encode": {
       "version": "1.1.0",
@@ -29845,6 +31248,25 @@
       "version": "3.0.0",
       "resolved": "https://registry.npmmirror.com/strip-bom/-/strip-bom-3.0.0.tgz",
       "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA=="
+    },
+    "strip-bom-stream": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-1.0.0.tgz",
+      "integrity": "sha512-7jfJB9YpI2Z0aH3wu10ZqitvYJaE0s5IzFuWE+0pbb4Q/armTloEUShymkDO47YSLnjAW52mlXT//hs9wXNNJQ==",
+      "requires": {
+        "first-chunk-stream": "^1.0.0",
+        "strip-bom": "^2.0.0"
+      },
+      "dependencies": {
+        "strip-bom": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
+          "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==",
+          "requires": {
+            "is-utf8": "^0.2.0"
+          }
+        }
+      }
     },
     "strip-eof": {
       "version": "1.0.0",
@@ -29987,6 +31409,11 @@
         }
       }
     },
+    "symbol": {
+      "version": "0.2.3",
+      "resolved": "https://registry.npmjs.org/symbol/-/symbol-0.2.3.tgz",
+      "integrity": "sha512-IUW+ek7apEaW5bFhS6WpYoNtVpNTlNoqB/PH7YiMWQTxSPeXCzG4PILVakwXivJt3ZXWeO1fIJnUd/L9A/VeGA=="
+    },
     "table": {
       "version": "4.0.2",
       "resolved": "https://registry.npmmirror.com/table/-/table-4.0.2.tgz",
@@ -30027,16 +31454,32 @@
       "version": "2.0.5",
       "resolved": "https://registry.npmmirror.com/through2/-/through2-2.0.5.tgz",
       "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
-      "dev": true,
       "requires": {
         "readable-stream": "~2.3.6",
         "xtend": "~4.0.1"
+      }
+    },
+    "through2-filter": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-2.0.0.tgz",
+      "integrity": "sha512-miwWajb1B80NvIVKXFPN/o7+vJc4jYUvnZCwvhicRAoTxdD9wbcjri70j+BenCrN/JXEPKDjhpw4iY7yiNsCGg==",
+      "requires": {
+        "through2": "~2.0.0",
+        "xtend": "~4.0.0"
       }
     },
     "thunky": {
       "version": "1.1.0",
       "resolved": "https://registry.npmmirror.com/thunky/-/thunky-1.1.0.tgz",
       "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA=="
+    },
+    "tildify": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/tildify/-/tildify-1.2.0.tgz",
+      "integrity": "sha512-Y9q1GaV/BO65Z9Yf4NOGMuwt3SGdptkZBnaaKfTQakrDyCLiuO1Kc5wxW4xLdsjzunRtqtOdhekiUFmZbklwYQ==",
+      "requires": {
+        "os-homedir": "^1.0.0"
+      }
     },
     "time-stamp": {
       "version": "2.2.0",
@@ -30069,6 +31512,29 @@
       "dev": true,
       "requires": {
         "os-tmpdir": "~1.0.2"
+      }
+    },
+    "to-absolute-glob": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-0.1.1.tgz",
+      "integrity": "sha512-Vvl5x6zNf9iVG1QTWeknmWrKzZxaeKfIDRibrZCR3b2V/2NlFJuD2HV7P7AVjaKLZNqLPHqyr0jGrW0fTcxCPQ==",
+      "requires": {
+        "extend-shallow": "^2.0.1"
+      },
+      "dependencies": {
+        "extend-shallow": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+          "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+          "requires": {
+            "is-extendable": "^0.1.0"
+          }
+        },
+        "is-extendable": {
+          "version": "0.1.1",
+          "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+          "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw=="
+        }
       }
     },
     "to-arraybuffer": {
@@ -30206,8 +31672,7 @@
     "typedarray": {
       "version": "0.0.6",
       "resolved": "https://registry.npmmirror.com/typedarray/-/typedarray-0.0.6.tgz",
-      "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==",
-      "dev": true
+      "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA=="
     },
     "uglify-es": {
       "version": "3.3.9",
@@ -30384,6 +31849,26 @@
         "imurmurhash": "^0.1.4"
       }
     },
+    "unique-stream": {
+      "version": "2.3.1",
+      "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz",
+      "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==",
+      "requires": {
+        "json-stable-stringify-without-jsonify": "^1.0.1",
+        "through2-filter": "^3.0.0"
+      },
+      "dependencies": {
+        "through2-filter": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz",
+          "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==",
+          "requires": {
+            "through2": "~2.0.0",
+            "xtend": "~4.0.0"
+          }
+        }
+      }
+    },
     "unpipe": {
       "version": "1.0.0",
       "resolved": "https://registry.npmmirror.com/unpipe/-/unpipe-1.0.0.tgz",
@@ -30558,6 +32043,11 @@
       "resolved": "https://registry.npmmirror.com/uuid/-/uuid-3.4.0.tgz",
       "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
     },
+    "vali-date": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/vali-date/-/vali-date-1.0.0.tgz",
+      "integrity": "sha512-sgECfZthyaCKW10N0fm27cg8HYTFK5qMWgypqkXMQ4Wbl/zZKx7xZICgcoxIIE+WFAP/MBL2EFwC/YvLxw3Zeg=="
+    },
     "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",
@@ -30596,6 +32086,57 @@
       "resolved": "https://registry.npmmirror.com/vendors/-/vendors-1.0.4.tgz",
       "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w=="
     },
+    "vinyl": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz",
+      "integrity": "sha512-Ci3wnR2uuSAWFMSglZuB8Z2apBdtOyz8CV7dC6/U1XbltXBC+IuutUkXQISz01P+US2ouBuesSbV6zILZ6BuzQ==",
+      "requires": {
+        "clone": "^1.0.0",
+        "clone-stats": "^0.0.1",
+        "replace-ext": "0.0.1"
+      },
+      "dependencies": {
+        "clone": {
+          "version": "1.0.4",
+          "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
+          "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg=="
+        }
+      }
+    },
+    "vinyl-fs": {
+      "version": "2.4.3",
+      "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-2.4.3.tgz",
+      "integrity": "sha512-XxYoy5HpHrVd76tpnI5Vv/+b/xlEVusOmn4LjQ01s2JyiDMNaUm3Rb7Y3xTkRw+YoRBVoUrCs7EAIFNXyIlI8Q==",
+      "requires": {
+        "duplexify": "^3.2.0",
+        "glob-stream": "^5.3.2",
+        "graceful-fs": "^4.0.0",
+        "gulp-sourcemaps": "^1.5.2",
+        "is-valid-glob": "^0.3.0",
+        "lazystream": "^1.0.0",
+        "lodash.isequal": "^4.0.0",
+        "merge-stream": "^1.0.0",
+        "mkdirp": "^0.5.0",
+        "object-assign": "^4.0.0",
+        "readable-stream": "^2.0.4",
+        "strip-bom": "^2.0.0",
+        "strip-bom-stream": "^1.0.0",
+        "through2": "^2.0.0",
+        "through2-filter": "^2.0.0",
+        "vali-date": "^1.0.0",
+        "vinyl": "^1.0.0"
+      },
+      "dependencies": {
+        "strip-bom": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
+          "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==",
+          "requires": {
+            "is-utf8": "^0.2.0"
+          }
+        }
+      }
+    },
     "vm-browserify": {
       "version": "1.1.2",
       "resolved": "https://registry.npmmirror.com/vm-browserify/-/vm-browserify-1.1.2.tgz",
diff --git a/package.json b/package.json
index 2c5a4aa..39cf52e 100644
--- a/package.json
+++ b/package.json
@@ -26,6 +26,7 @@
     "lib-flexible": "^0.3.2",
     "lodash": "^4.17.21",
     "mint-ui": "^2.2.13",
+    "module": "^1.2.5",
     "moment": "^2.29.4",
     "moment-timezone": "^0.5.45",
     "pdfjs-dist": "2.2.228",
diff --git a/src/axios/api.js b/src/axios/api.js
index bd4a673..0c89774 100644
--- a/src/axios/api.js
+++ b/src/axios/api.js
@@ -147,6 +147,11 @@
   return get("/api/stock/getStockByType.do", options);
 }
 
+// 股票列表数据 黄金
+export function getGoldCrudeOil() {
+  return get("/api/stock/getGoldCrudeOil.do");
+}
+
 // 单只股票行情数据
 export function getSingleStock(options) {
   return post("/api/stock/getSingleStock.do", options);
diff --git a/src/axios/api.url.js b/src/axios/api.url.js
index 478481f..203bae5 100644
--- a/src/axios/api.url.js
+++ b/src/axios/api.url.js
@@ -6,11 +6,11 @@
   // baseURL: 'http://localhost:8070',
   /* Util API */
   // baseURL: '/',
-  baseURL: 'https://api.fidelityio.com/',
+  // baseURL: 'https://api.fidelityio.com/',  // 线上
   // 0311
   // baseURL: "https://api.amcfcxn.org/",
   // 本地
-  // baseURL: "http://192.168.10.4:8091/",
+  baseURL: "http://192.168.10.4:8091/",
   util: {
     image: "/util/image.html" // 图片上传
   }
diff --git a/src/eastmoney/HQData.js b/src/eastmoney/HQData.js
index f3ea47e..dc38901 100644
--- a/src/eastmoney/HQData.js
+++ b/src/eastmoney/HQData.js
@@ -21,16 +21,16 @@
 // import Chart from '../../jscommon/umychart.vue/umychart.vue.js'
 // var HQChart={ Chart:Chart };
 
-function HQData() {}
+function HQData() { }
 window.globalVar = apiRrl.baseURL;
 HQData.Explain = "东财财富网接口";
 
-HQChart.Chart.JSConsole.Chart.Log = () => {};
-HQChart.Chart.JSConsole.Complier.Log = () => {};
+HQChart.Chart.JSConsole.Chart.Log = () => { };
+HQChart.Chart.JSConsole.Complier.Log = () => { };
 
 HQData.Log = HQChart.Chart.JSConsole.Chart.Log;
 
-HQData.SetMinuteChartCoordinate = function() {
+HQData.SetMinuteChartCoordinate = function () {
   HQChart.Chart.MARKET_SUFFIX_NAME.IsShowAvPrice = upperSymbol => {
     return HQData.IsShowAvPrice(upperSymbol);
   };
@@ -303,7 +303,7 @@
   }; // 获取市场状态 0=闭市 1=盘前 2=盘中 3=盘后
 };
 
-HQData.NetworkFilter = function(data, callback) {
+HQData.NetworkFilter = function (data, callback) {
   HQData.Log(`[HQData::NetworkFilter] ${HQData.Explain}`, data);
 
   switch (data.Name) {
@@ -333,7 +333,7 @@
   }
 };
 
-HQData.RequestMinuteData = function(data, callback) {
+HQData.RequestMinuteData = function (data, callback) {
   data.PreventDefault = true;
 
   var symbol = data.Request.Data.symbol[0]; // 请求的股票代码
@@ -344,13 +344,13 @@
   $.ajax({
     url: obj.Url,
     type: "GET",
-    success: function(recvData) {
+    success: function (recvData) {
       HQData.RecvMinuteData(recvData, callback, { Data: data, Obj: obj });
     }
   });
 };
 
-HQData.RecvMinuteData = function(recvData, callback, option) {
+HQData.RecvMinuteData = function (recvData, callback, option) {
   // var data = recvData.data
   var stock = { symbol: option.Obj.Symbol, minute: [] };
   // stock.name = data.name
@@ -364,7 +364,12 @@
   var isLME = HQChart.Chart.MARKET_SUFFIX_NAME.IsLME(symbolUpper); // 伦敦金属交易所
   // if (isChinaFutrues) stock.yclearing = data.preSettlement // 期货昨结算价
   // for (var i = 0; i < data.trends.length; ++i) {
-  recvData = JSON.parse(recvData);
+  if (typeof recvData === 'string') {
+    recvData = JSON.parse(recvData);
+  }
+
+  console.log('recvData: ', recvData)
+
   // var date = moment.unix(strItem.t || strItem.id).format("YYYYMMDD");
   // //
   // var open = parseFloat(strItem.o || strItem.open);
@@ -416,7 +421,7 @@
   }
 };
 
-HQData.RequestMinuteDaysData = function(data, callback) {
+HQData.RequestMinuteDaysData = function (data, callback) {
   data.PreventDefault = true;
   var symbol = data.Request.Data.symbol; // 请求的股票代码
   var dayCount = data.Request.Data.daycount;
@@ -427,7 +432,7 @@
   $.ajax({
     url: obj.Url,
     type: "GET",
-    success: function(recvData) {
+    success: function (recvData) {
       if (
         HQChart.Chart.MARKET_SUFFIX_NAME.IsSHFE(symbolUpper) ||
         HQChart.Chart.MARKET_SUFFIX_NAME.IsDCE(symbolUpper) ||
@@ -445,7 +450,7 @@
   });
 };
 
-HQData.RecvMinuteDaysData = function(recvData, callback, option) {
+HQData.RecvMinuteDaysData = function (recvData, callback, option) {
   var data = recvData.data;
   var aryDayData = [];
   var itemDay = null;
@@ -535,7 +540,7 @@
 };
 
 // 期货模式
-HQData.RecvMinuteDaysDataV2 = function(recvData, callback, option) {
+HQData.RecvMinuteDaysDataV2 = function (recvData, callback, option) {
   var data = recvData.data;
   var aryDayData = [];
   var yClose = data.preClose;
@@ -648,7 +653,7 @@
   }
 };
 
-HQData.CorrectMinuteData = function(minuteData, xDatetime) {
+HQData.CorrectMinuteData = function (minuteData, xDatetime) {
   if (minuteData.length === xDatetime.length) return null;
 
   var mapData = new Map();
@@ -676,7 +681,7 @@
   return newMinuteData;
 };
 // HQChart内置代码转成东方财富代码
-HQData.GetInternalSymbol = function(symbol) {
+HQData.GetInternalSymbol = function (symbol) {
   var aryData = symbol.split(".");
   var symbolUpper = symbol.toUpperCase();
   var arySymbol = "";
@@ -815,7 +820,7 @@
     }
     */
 };
-HQData.GetMinuteApiUrl = function(symbol, dayCount) {
+HQData.GetMinuteApiUrl = function (symbol, dayCount) {
   var internalSymbol = HQData.GetInternalSymbol(symbol);
   console.log("查看", internalSymbol);
   // var url=`http://push2his.eastmoney.com/api/qt/stock/trends2/get?fields1=f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13&fields2=f51,f52,f53,f54,f55,f56,f57,f58&secid=${internalSymbol.Market}.${internalSymbol.Symbol}&ndays=1&iscr=0&iscca=0`
@@ -824,9 +829,17 @@
   const kLines = JSON.parse(window.localStorage.getItem("kLine"));
   console.log("kLines===", kLines);
   // if (kLines.type === 'IN' ||kLines.type === 'US') {
-  url =
-    window.globalVar +
-    `api/stock/getKData.do?pid=${kLines.pid}&interval=1&stockType=${kLines.type}`;
+  // debugger;
+  if (kLines.type == "HJ") {
+    url =
+      window.globalVar +
+      `api/stock/getKData.do?pid=8888&interval=1&stockType=${kLines.name}`;
+  } else {
+    url =
+      window.globalVar +
+      `api/stock/getKData.do?pid=${kLines.pid}&interval=1&stockType=${kLines.type}`;
+  }
+
   // }
   // if (kLines.type === 'qh') {
   // url = window.globalVar+`api/stock/getKData.do?symbol=${encodeURIComponent(kLines.pid)}&cmd=history&period=1440&stockType=${kLines.type}`
@@ -844,17 +857,17 @@
   };
 };
 
-HQData.IsSHSZ = function(symbol) {
+HQData.IsSHSZ = function (symbol) {
   // 是否是A股
   return HQChart.Chart.MARKET_SUFFIX_NAME.IsSHSZ(symbol);
 };
 
-HQData.IsChinaFutures = function(symbol) {
+HQData.IsChinaFutures = function (symbol) {
   // 国内期货
   return HQChart.Chart.MARKET_SUFFIX_NAME.IsChinaFutures(symbol);
 };
 
-HQData.IsShowAvPrice = function(upperSymbol) {
+HQData.IsShowAvPrice = function (upperSymbol) {
   // 是否显示均价
   if (HQChart.Chart.MARKET_SUFFIX_NAME.IsLME(upperSymbol)) return false;
   if (upperSymbol === "UDI_100.ET") return false;
@@ -862,7 +875,7 @@
   return true;
 };
 // 是否显示第2个成交量图
-HQData.IsShowVolChart = function(upperSymbol) {
+HQData.IsShowVolChart = function (upperSymbol) {
   if (HQChart.Chart.MARKET_SUFFIX_NAME.IsForeignExchange(upperSymbol))
     return false;
   if (upperSymbol === "UDI_100.ET") return false;
@@ -874,7 +887,7 @@
 //
 //  美国洲际交易所 重柴油
 //
-HQData.GetCustomTradeTimeData = function(key) {
+HQData.GetCustomTradeTimeData = function (key) {
   // 美国洲际交易所 重柴油 数据从7:50开始,是盘前数据吗????
   if (key === "IPE_G") {
     // 7:50-6:00
@@ -971,7 +984,7 @@
 // 美股走势图X轴坐标
 //
 /// /////////////////////////////////////////////////////////////////////////
-HQData.CreateUSAData = function(minuteStringData) {
+HQData.CreateUSAData = function (minuteStringData) {
   const TIME_SPLIT = [
     { Start: 2130, End: 2359 },
     { Start: 0, End: 400 }
@@ -980,7 +993,7 @@
   return minuteStringData.CreateTimeData(TIME_SPLIT);
 };
 
-HQData.GetUSAData = function(upperSymbol, width) {
+HQData.GetUSAData = function (upperSymbol, width) {
   const SHZE_MINUTE_X_COORDINATE = {
     // 完整模式
     Full: [
@@ -1017,7 +1030,7 @@
     Count: 391, //! ! 一共的分钟数据个数,不要填错了
     MiddleCount: 195, // Count/2 就可以。
 
-    GetData: function(width) {
+    GetData: function (width) {
       if (width < 200) return this.Min;
       else if (width < 400) return this.Simple;
 
@@ -1032,7 +1045,7 @@
 // A股走势图X轴坐标
 //
 /// ////////////////////////////////////////////////////////////////////////
-HQData.CreateSHSZData = function(minuteStringData) {
+HQData.CreateSHSZData = function (minuteStringData) {
   const TIME_SPLIT = [
     { Start: 930, End: 1130 },
     { Start: 1301, End: 1500 }
@@ -1041,7 +1054,7 @@
   return minuteStringData.CreateTimeData(TIME_SPLIT);
 };
 
-HQData.GetSHSZData = function(upperSymbol, width) {
+HQData.GetSHSZData = function (upperSymbol, width) {
   const SHZE_MINUTE_X_COORDINATE = {
     // 完整模式
     Full: [
@@ -1073,7 +1086,7 @@
     Count: 241, //! ! 一共的分钟数据个数,不要填错了
     MiddleCount: 121, // Count/2 就可以。
 
-    GetData: function(width) {
+    GetData: function (width) {
       if (width < 200) return this.Min;
       else if (width < 400) return this.Simple;
 
@@ -1088,7 +1101,7 @@
 // 港股走势图X轴坐标
 //
 /// ////////////////////////////////////////////////////////////////////////////////////
-HQData.CreateHKData = function(minuteStringData) {
+HQData.CreateHKData = function (minuteStringData) {
   const TIME_SPLIT = [
     { Start: 930, End: 1200 },
     { Start: 1301, End: 1600 }
@@ -1097,7 +1110,7 @@
   return minuteStringData.CreateTimeData(TIME_SPLIT);
 };
 
-HQData.GetHKData = function(upperSymbol, width) {
+HQData.GetHKData = function (upperSymbol, width) {
   const HK_MINUTE_X_COORDINATE = {
     // 完整模式
     Full: [
@@ -1133,7 +1146,7 @@
     Count: 331,
     MiddleCount: 150,
 
-    GetData: function(width) {
+    GetData: function (width) {
       if (width < 200) return this.Min;
       else if (width < 450) return this.Simple;
 
@@ -1147,7 +1160,7 @@
 //  外汇走势图X轴坐标
 //
 /// /////////////////////////////////////////////////////////////////////////////////////
-HQData.CreateForeignExchangeData = function(minuteStringData) {
+HQData.CreateForeignExchangeData = function (minuteStringData) {
   // 外汇 5:00 - 4:59
   const TIME_SPLIT = [
     { Start: 500, End: 2359 },
@@ -1157,7 +1170,7 @@
   return minuteStringData.CreateTimeData(TIME_SPLIT);
 };
 
-HQData.GetForeignExchangeData = function(upperSymbol, width) {
+HQData.GetForeignExchangeData = function (upperSymbol, width) {
   const FOREX_MINUTE_X_COORDINATE = {
     // 完整模式
     Full: [
@@ -1194,7 +1207,7 @@
     Count: 1440,
     MiddleCount: 600,
 
-    GetData: function(width) {
+    GetData: function (width) {
       if (width < 200) return this.Min;
       else if (width < 450) return this.Simple;
 
@@ -1209,7 +1222,7 @@
 //  美元指数
 //
 /// ////////////////////////////////////////////////////////////////////
-HQData.GetETTimeData = function(upperSymbol, minuteStringData) {
+HQData.GetETTimeData = function (upperSymbol, minuteStringData) {
   if (upperSymbol === "UDI_100.ET") {
     // 美元指数 6:00 - 5:59
     const TIME_SPLIT = [
@@ -1221,7 +1234,7 @@
   }
 };
 
-HQData.GetETData = function(upperSymbol) {
+HQData.GetETData = function (upperSymbol) {
   if (upperSymbol === "UDI_100.ET") {
     const data = {
       // 完整模式
@@ -1260,7 +1273,7 @@
       Count: 1440,
       MiddleCount: 600,
 
-      GetData: function(width) {
+      GetData: function (width) {
         if (width < 200) return this.Min;
         else if (width < 450) return this.Simple;
 
@@ -1272,7 +1285,7 @@
   }
 };
 
-HQData.GetETDecimal = function(symbol) {
+HQData.GetETDecimal = function (symbol) {
   var upperSymbol = symbol.toUpperCase();
   if (upperSymbol === "UDI_100.ET") return 2;
 
@@ -1283,7 +1296,7 @@
 // K线数据对接
 //
 /// //////////////////////////////////////////////////////////////////////////////
-HQData.GetKLineApiUrl = function(symbol, period, right, option) {
+HQData.GetKLineApiUrl = function (symbol, period, right, option) {
   console.log(111111, symbol, period, right, option);
   // https://push2his.eastmoney.com/api/qt/stock/kline/get?fields1=f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13&fields2=f51,f52,f53,f54,f55,f56,f57,f58,f59,f60,f61&beg=0&end=20500101&ut=fa5fd1943c7b386f172d6893dbfba10b&rtntype=6&secid=0.300059&klt=101&fqt=0
 
@@ -1299,9 +1312,18 @@
   const kLines = JSON.parse(window.localStorage.getItem("kLine"));
   // if (kLines.type === 'IN' ||kLines.type === 'US') {
   const interval = ["D", "W", "M"][period];
-  var url =
-    window.globalVar +
-    `api/stock/getKData.do?pid=${kLines.pid}&interval=${interval}&stockType=${kLines.type}`;
+
+  if (kLines.type === 'HJ') {
+    url =
+      window.globalVar +
+      `api/stock/getKData.do?pid=8888&interval=${interval}&stockType=${kLines.name}`;
+  } else {
+    var url = window.globalVar + `api/stock/getKData.do?pid=${kLines.pid}&interval=${interval}&stockType=${kLines.type}`;
+  }
+
+  // var url =
+  //   window.globalVar +
+  //   `api/stock/getKData.do?pid=${kLines.pid}&interval=${interval}&stockType=${kLines.type}`;
   // }
   const interval2 = [1440, 10080, 10080][period];
   // const interval2 = [1440, 10080, 43200][period]
@@ -1328,7 +1350,7 @@
   };
 };
 
-HQData.GetMinuteKLineApiUrl = function(symbol, period, right, option) {
+HQData.GetMinuteKLineApiUrl = function (symbol, period, right, option) {
   var internalSymbol = HQData.GetInternalSymbol(symbol);
   var internalPeriod = HQData.GetInternalPeriod(period);
   var internalRight = HQData.GetInternalRight(right);
@@ -1338,9 +1360,19 @@
     var beginDate = option.End;
   } else {
     const kLines = JSON.parse(window.localStorage.getItem("kLine"));
-    url =
-      window.globalVar +
-      `api/stock/getKData.do?pid=${kLines.pid}&interval=${internalPeriod}&stockType=${kLines.type}`;
+    if (kLines.type === 'HJ') {
+      url =
+        window.globalVar +
+        `api/stock/getKData.do?pid=8888&interval=${internalPeriod}&stockType=${kLines.name}`;
+    } else {
+      url =
+        window.globalVar +
+        `api/stock/getKData.do?pid=${kLines.pid}&interval=${internalPeriod}&stockType=${kLines.type}`;
+    }
+
+    // url =
+    //   window.globalVar +
+    //   `api/stock/getKData.do?pid=${kLines.pid}&interval=${internalPeriod}&stockType=${kLines.type}`;
 
   }
 
@@ -1353,7 +1385,7 @@
   };
 };
 
-HQData.GetInternalPeriod = function(periodID) {
+HQData.GetInternalPeriod = function (periodID) {
   var MAP_PERIOD = new Map([
     [0, 101], // day
     [1, 102], // week
@@ -1369,13 +1401,13 @@
   return MAP_PERIOD.get(periodID);
 };
 
-HQData.GetInternalRight = function(right) {
+HQData.GetInternalRight = function (right) {
   if (right === 0) return 0;
   else if (right === 1) return 1;
   else return 2;
 };
 // 是否支持复权
-HQData.IsEnableRight = function(period, symbol) {
+HQData.IsEnableRight = function (period, symbol) {
   var symbolUpper = null;
   symbolUpper = symbol.toUpperCase();
   // var symbolUpper = symbol.toUpperCase()
@@ -1401,7 +1433,7 @@
   return false;
 };
 
-HQData.RequestFlowCapitalData = function(data, callback) {
+HQData.RequestFlowCapitalData = function (data, callback) {
   data.PreventDefault = true;
   var hqChartData = { code: 0, stock: [] }; // 如果没有数据就填空
 
@@ -1410,7 +1442,7 @@
   }
 };
 
-HQData.RequestHistoryData = function(data, callback) {
+HQData.RequestHistoryData = function (data, callback) {
   data.PreventDefault = true;
   var symbol = data.Request.Data.symbol; // 请求的股票代码
   var period = data.Self.Period; // 周期
@@ -1422,13 +1454,13 @@
   $.ajax({
     url: obj.Url,
     type: "GET",
-    success: function(recvData) {
+    success: function (recvData) {
       HQData.RecvHistoryData(recvData, callback, { Data: data, Obj: obj });
     }
   });
 };
 
-HQData.RecvHistoryData = function(recvData, callback, option) {
+HQData.RecvHistoryData = function (recvData, callback, option) {
   // var data = recvData.data
 
   var hqChartData = { code: 0, data: [] };
@@ -1439,7 +1471,9 @@
   const kLines = JSON.parse(window.localStorage.getItem("kLine"));
   // var yClose = data.preKPrice
   var yClose = "500";
-  recvData = JSON.parse(recvData);
+  if (typeof recvData === 'string') {
+    recvData = JSON.parse(recvData);
+  }
 
   if (kLines.type === "SZHB") {
     recvData = recvData.data;
@@ -1498,7 +1532,7 @@
   }
 };
 
-HQData.RequestRealtimeData = function(data, callback) {
+HQData.RequestRealtimeData = function (data, callback) {
   data.PreventDefault = true;
   var symbol = data.Request.Data.symbol[0]; // 请求的股票代码
   var period = data.Self.Period; // 周期
@@ -1515,13 +1549,13 @@
   $.ajax({
     url: obj.Url,
     type: "GET",
-    success: function(recvData) {
+    success: function (recvData) {
       HQData.RecvRealtimeData(recvData, callback, { Data: data, Obj: obj });
     }
   });
 };
 
-HQData.RecvRealtimeData = function(recvData, callback, option) {
+HQData.RecvRealtimeData = function (recvData, callback, option) {
   var data = recvData.data;
   // var stock = { symbol: option.Obj.Symbol, name: 'K线图' }
   // var stock = { symbol: option.Obj.Symbol, name: data.name || "" };
@@ -1608,23 +1642,23 @@
   var hqchartData = { code: 0, stock: [stock] };
 
   // if (option.Data.Self.IsDestroy === false) {
-    HQData.Log("[HQData.RecvRealtimeData] hqchartData ", hqchartData);
-    callback(hqchartData);
+  HQData.Log("[HQData.RecvRealtimeData] hqchartData ", hqchartData);
+  callback(hqchartData);
   // }
 };
-HQData.RequestHistoryMinuteData = function(data, callback) {
+HQData.RequestHistoryMinuteData = function (data, callback) {
   data.PreventDefault = true;
   var symbol = data.Request.Data.symbol; // 请求的股票代码
   var period = data.Self.Period; // 周期
   var right = data.Self.Right; // 复权
 
-  console.log(`[HQData::RequestHistoryMinuteData] Symbol=${symbol}`);
+  console.log(`[HQData::RequestHistoryMinuteData] Symbol=${symbol}`, data.Request);
   var obj = HQData.GetMinuteKLineApiUrl(symbol, period, right, null);
 
   $.ajax({
     url: obj.Url,
     type: "GET",
-    success: function(recvData) {
+    success: function (recvData) {
       HQData.RecvHistoryMinuteData(recvData, callback, {
         Data: data,
         Obj: obj
@@ -1633,7 +1667,7 @@
   });
 };
 
-HQData.RecvHistoryMinuteData = function(recvData, callback, option) {
+HQData.RecvHistoryMinuteData = function (recvData, callback, option) {
   var hqChartData = { code: 0, data: [] };
   hqChartData.symbol = option.Obj.Symbol;
   // hqChartData.name = data.name
@@ -1642,7 +1676,9 @@
 
   var yClose = "";
   console.log("recvData===data.name22", recvData, kLines);
-  recvData = JSON.parse(recvData);
+  if (typeof recvData === 'string') {
+    recvData = JSON.parse(recvData);
+  }
 
   if (kLines.type === "SZHB") {
     recvData = recvData.data;
@@ -1697,7 +1733,7 @@
   }
 };
 
-HQData.RequestMinuteRealtimeData = function(data, callback) {
+HQData.RequestMinuteRealtimeData = function (data, callback) {
   data.PreventDefault = true;
   var symbol = data.Request.Data.symbol[0]; // 请求的股票代码
   var period = data.Self.Period; // 周期
@@ -1714,7 +1750,7 @@
   $.ajax({
     url: obj.Url,
     type: "GET",
-    success: function(recvData) {
+    success: function (recvData) {
       HQData.RecvMinuteRealtimeData(recvData, callback, {
         Data: data,
         Obj: obj
@@ -1723,7 +1759,7 @@
   });
 };
 
-HQData.RecvMinuteRealtimeData = function(recvData, callback, option) {
+HQData.RecvMinuteRealtimeData = function (recvData, callback, option) {
   var data = recvData.data;
   var hqChartData = {
     code: 0,
diff --git a/src/locales/en.json b/src/locales/en.json
index 30915a8..6c62bb8 100644
--- a/src/locales/en.json
+++ b/src/locales/en.json
@@ -593,5 +593,6 @@
   "电话号码": "telephone number",
   "当前充值渠道已关闭请选择在线客服进行充值。": "The current recharge channel has been closed Please choose online customer service to recharge.",
   "获取验证码": "Get verification code",
-  "重新获取": "Retry"
+  "重新获取": "Retry",
+  "黄金原油": "Gold & Crude Oil"
 }
\ No newline at end of file
diff --git a/src/locales/fra.json b/src/locales/fra.json
index c19f461..180fea2 100644
--- a/src/locales/fra.json
+++ b/src/locales/fra.json
@@ -573,5 +573,6 @@
   "请选择提现金额": "Veuillez sélectionner un montant de retrait",
   "hj100": "Nombre de transactions (actions)",
   "获取验证码": "Obtenir le code de vérification",
-  "重新获取": "Récupérer à nouveau"
+  "重新获取": "Récupérer à nouveau",
+  "黄金原油": "Gold & Crude Oil"
 }
\ No newline at end of file
diff --git a/src/locales/hi.json b/src/locales/hi.json
index 1033d70..08c9539 100644
--- a/src/locales/hi.json
+++ b/src/locales/hi.json
@@ -592,5 +592,6 @@
   "电话号码": "टेलीफोन नंबर",
   "当前充值渠道已关闭请选择在线客服进行充值。": "वर्तमान रिचार्ज चैनल बंद कर दिया गया है कृपया रिचार्ज करने के लिए ऑनलाइन ग्राहक सेवा चुनें।",
   "获取验证码": "सत्यापन कोड प्राप्त करें",
-  "重新获取": "पुनः प्राप्त करें"
+  "重新获取": "पुनः प्राप्त करें",
+  "黄金原油": "सोना और कच्चा तेल"
 }
\ No newline at end of file
diff --git a/src/locales/kor.json b/src/locales/kor.json
index 920ae44..e30321c 100644
--- a/src/locales/kor.json
+++ b/src/locales/kor.json
@@ -574,5 +574,6 @@
   "请选择提现金额": "현금 인출 금액을 선택하십시오.",
   "hj100": "거래 수량(주)",
   "获取验证码": "인증번호 받기",
-  "重新获取": "다시 받기"
+  "重新获取": "다시 받기",
+  "黄金原油": "금 & 원유"
 }
\ No newline at end of file
diff --git a/src/locales/th.json b/src/locales/th.json
index 6a7e30a..0885f32 100644
--- a/src/locales/th.json
+++ b/src/locales/th.json
@@ -574,5 +574,6 @@
   "请选择提现金额": "กรุณาเลือกจำนวนเงินที่ถอน",
   "hj100": "ปริมาณซื้อขาย (หุ้น)",
   "获取验证码": "รับรหัสสัญญาณ",
-  "重新获取": "ขอใหม่"
+  "重新获取": "ขอใหม่",
+  "黄金原油": "ทองคำ & น้ำมันดิบ"
 }
\ No newline at end of file
diff --git a/src/page/kline/index copy.vue b/src/page/kline/index copy.vue
index a5e5405..71ea189 100644
--- a/src/page/kline/index copy.vue
+++ b/src/page/kline/index copy.vue
@@ -577,7 +577,7 @@
     },
     async getSingDetails() {
       let opts = {
-        code: this.kLineDetails.code,
+        code: this.kLineDetails.code || this.kLineDetails.name,
         stockType: this.kLineDetails.type,
       };
       await api.getSingleStock(opts).then((res) => {
diff --git a/src/page/kline/index.vue b/src/page/kline/index.vue
index b06051d..b6e1430 100644
--- a/src/page/kline/index.vue
+++ b/src/page/kline/index.vue
@@ -9,7 +9,10 @@
             </div>
             <div class="right_title">
               <div class="t_t" style="white-space: nowrap">
-                <span>{{ singDetails.name }}({{ singDetails.gid }})</span>
+                <span v-if="singDetails.gid"
+                  >{{ singDetails.name }}({{ singDetails.gid }})</span
+                >
+                <span v-else>{{ singDetails.name }}</span>
               </div>
               <div class="b_t">
                 <span>{{ singDetails.spell }}</span>
@@ -82,7 +85,7 @@
               }}</span> -->
               <span
                 :class="singDetails.hcrate > 0 ? 'price green' : 'price red'"
-                >₹{{ singDetails.nowPrice  }}</span
+                >₹{{ singDetails.nowPrice }}</span
               >
             </div>
             <div class="bottom_now">
@@ -110,7 +113,7 @@
               </div>
             </div>
           </div>
-          <div class="right_ets">
+          <div class="right_ets" v-if="kLineDetails.type != 'HJ'">
             <div class="tops">
               <div class="lefts topes">
                 <span class="titles">{{ $t("hj72") }}</span>
@@ -121,7 +124,7 @@
                   :class="
                     singDetails.hcrate > 0 ? 'number green' : 'number red'
                   "
-                  >₹{{ singDetails.open_px   }}</span
+                  >₹{{ singDetails.open_px }}</span
                 >
               </div>
               <div class="rights topes">
@@ -133,7 +136,7 @@
                   :class="
                     singDetails.hcrate > 0 ? 'number green' : 'number red'
                   "
-                  >₹{{ singDetails.today_max   }}</span
+                  >₹{{ singDetails.today_max }}</span
                 >
               </div>
             </div>
@@ -147,10 +150,10 @@
                   :class="
                     singDetails.hcrate > 0 ? 'number green' : 'number red'
                   "
-                  >₹{{ singDetails.preclose_px   }}</span
+                  >₹{{ singDetails.preclose_px }}</span
                 >
               </div>
-               <div class="rights bots">
+              <div class="rights bots">
                 <span class="titles">{{ $t("hj75") }}</span>
                 <!-- <span :class="singDetails.preclose_px < 0 ? 'number green' : 'number red'">{{
                     singDetails.today_min
@@ -159,7 +162,7 @@
                   :class="
                     singDetails.hcrate > 0 ? 'number green' : 'number red'
                   "
-                  >₹{{ singDetails.today_min  }}</span
+                  >₹{{ singDetails.today_min }}</span
                 >
               </div>
             </div>
@@ -174,9 +177,9 @@
         style="display: none"
         v-if="
           kLineDetails.if_us != 1 &&
-          kLineDetails.type != 'hk' &&
-          kLineDetails.type != 'hk' &&
-          kLineDetails.if_zhishu == 0
+            kLineDetails.type != 'hk' &&
+            kLineDetails.type != 'hk' &&
+            kLineDetails.if_zhishu == 0
         "
       >
         <div class="t_title">
@@ -414,7 +417,7 @@
       <!-- <div class="border_bottom"></div> -->
     </div>
     <div class="btns">
-      <div class="lefts">
+      <div class="lefts" v-if="kLineDetails.type != 'HJ'">
         <div class="left_ca" @click="option()">
           <img
             src="../../assets/img/meishoucang.png"
@@ -424,7 +427,7 @@
           <img src="../../assets/img/shoucangle.png" alt v-else />
         </div>
         <div class="right_xx" @click="handleJj()">
-          <a href="#"><img src="../../assets/img/xiaoxi.png" alt /></a>
+          <a href="#"><img src="../../assets/img/xiaoxi.png" alt/></a>
         </div>
       </div>
       <div class="rights">
@@ -433,15 +436,19 @@
             <span>{{ $t("hj84") }}</span>
           </div>
           <div class="bottom_buy">
-            <span>₹{{ singDetails.nowPrice  }}</span>
+            <span>₹{{ singDetails.nowPrice }}</span>
           </div>
         </div>
-        <div class="sell_btn" @click="goBuy(1)">
+        <div
+          class="sell_btn"
+          @click="goBuy(1)"
+          v-if="kLineDetails.type != 'HJ'"
+        >
           <div class="top_sell">
             <span>{{ $t("hj85") }}</span>
           </div>
           <div class="bottom_sell">
-            <span>₹{{ singDetails.nowPrice  }}</span>
+            <span>₹{{ singDetails.nowPrice }}</span>
           </div>
         </div>
       </div>
@@ -471,11 +478,11 @@
       newsdetailList: [],
       bayType: "",
       timer: null,
-      key:0,
+      key: 0
     };
   },
   components: {
-    Kline,
+    Kline
   },
 
   created() {
@@ -502,7 +509,7 @@
   // },
   methods: {
     async getHknews() {
-      await api.queryIndexNews().then((res) => {
+      await api.queryIndexNews().then(res => {
         if (res.status === 0) {
           this.newsdetailList = res.data.data;
         }
@@ -524,13 +531,13 @@
           this.optionBtn = false;
           this.$message({
             message: this.$t("hj97"),
-            type: "success",
+            type: "success"
           });
         } else {
           this.optionBtn = false;
           this.$message({
             message: data.msg,
-            type: "warning",
+            type: "warning"
           });
         }
       } else {
@@ -540,12 +547,12 @@
           this.optionBtn = false;
           this.$message({
             message: this.$t("hj96"),
-            type: "success",
+            type: "success"
           });
         } else {
           this.$message({
             message: data.msg,
-            type: "warning",
+            type: "warning"
           });
           this.optionBtn = false;
         }
@@ -569,7 +576,7 @@
     },
     async getOpation() {
       let opts = {
-        code: this.$route.query.code,
+        code: this.$route.query.code
       };
       let data = await api.isOption(opts);
       if (data.status === 0) {
@@ -581,10 +588,10 @@
     },
     async getSingDetails() {
       let opts = {
-        code: this.kLineDetails.code,
-        stockType: this.kLineDetails.type,
+        code: this.kLineDetails.code || this.kLineDetails.name,
+        stockType: this.kLineDetails.type
       };
-      await api.getSingleStock(opts).then((res) => {
+      await api.getSingleStock(opts).then(res => {
         if (res.status === 0) {
           this.singDetails = res.data.stock;
           this.bayType = res.data.stock.type;
@@ -595,8 +602,9 @@
             this.jianjie = res.data.indexintroduction;
           }
           const obj = {
-            pid: res.data.stock.code,
-            type: res.data.stock.type,
+            pid: res.data.stock.code || "8888",
+            type: res.data.stock.type || this.kLineDetails.type,
+            name: res.data.stock.name || this.kLineDetails.name
           };
           window.localStorage.setItem("kLine", JSON.stringify(obj));
           // console.log(this.singDetails)
@@ -614,9 +622,9 @@
     async getSingDetailUs() {
       let opts = {
         code: this.kLineDetails.code,
-        stockType: this.kLineDetails.type,
+        stockType: this.kLineDetails.type
       };
-      await api.getUsDetail(opts).then((res) => {
+      await api.getUsDetail(opts).then(res => {
         // console.log(res,1111123);
         // var that = this
         // if(!res){
@@ -660,8 +668,8 @@
       this.$router.push({
         path: "/newPage",
         query: {
-          listid: item.id,
-        },
+          listid: item.id
+        }
       });
     },
     goBuy(index) {
@@ -678,14 +686,14 @@
           spell: this.singDetails.spell,
           if_us: this.kLineDetails.if_us,
           bayType: this.bayType,
-          gid: this.singDetails.gid,
-        },
+          gid: this.singDetails.gid
+        }
       });
       if (navigator.vibrate) {
         // 支持
         navigator.vibrate([55]);
       }
-    },
+    }
   },
   filters: {
     getName(spell) {
@@ -747,8 +755,8 @@
         .replace(/年|月/g, "-")
         .replace(/日/g, " ");
       return beijingDatetime; // 2017-03-31 16:02:06
-    },
-  },
+    }
+  }
 };
 </script>
 
@@ -934,7 +942,7 @@
       font-size: 25px;
       display: flex;
       align-items: center;
-		font-weight: bold;
+      font-weight: bold;
       span {
         font-weight: 500;
       }
diff --git a/src/page/list/detail.vue b/src/page/list/detail.vue
index 5da29fb..c5f7d07 100644
--- a/src/page/list/detail.vue
+++ b/src/page/list/detail.vue
@@ -1,5 +1,7 @@
 <template>
-  <div :class="`wrapper ${$state.theme === 'red' ? 'red-theme' : 'black-theme'}`">
+  <div
+    :class="`wrapper ${$state.theme === 'red' ? 'red-theme' : 'black-theme'}`"
+  >
     <!-- <div class="header">
       <mt-header :title="detail.name+' ('+detail.code+')'">
         <router-link to="/list" slot="left">
@@ -23,56 +25,102 @@
         </div>
       </div>
     </div>
-     <div class="page-part detail-part ">
-                <!-- 明细 -->
-                <div class="clearfix">
-                    <div class="pull-left col-xs-7">
-                        <p :class="detail.nowPrice - detail.preclose_px <0?'price green':'price red'">
-                            {{detail.nowPrice}}</p>
-                        <p :class="detail.nowPrice - detail.preclose_px <0?'gain green':'gain red'">
-                            {{detail.hcrate}}%</p>
-                    </div>
-                    <div class="pull-right col-xs-5">
-                        <ul class="price-detail text-center">
-                            <li>
-                                <p class="title">昨收</p>
-                                <p :class="detail.nowPrice - detail.preclose_px <0?'number green':'number red'">
-                                    {{detail.preclose_px}}</p>
-                            </li>
-                            <li>
-                                <p class="title">今开</p>
-                                <p :class="detail.nowPrice - detail.preclose_px <0?'number green':'number red'">
-                                    {{detail.open_px}}</p>
-                            </li>
-                            <li>
-                                <p class="title">最高</p>
-                                <p :class="detail.nowPrice - detail.preclose_px <0?'number green':'number red'">
-                                    {{detail.today_max}}</p>
-                            </li>
-                            <li>
-                                <p class="title">最低</p>
-                                <p :class="detail.nowPrice - detail.preclose_px <0?'number green':'number red'">
-                                    {{detail.today_min}}</p>
-                            </li>
-                        </ul>
-                    </div>
-                </div>
-                <div class="row detail-list">
-                    <div class="col-xs-4">
-                        <p class="title">成交量</p>
-                        <p class="number">{{(Number(detail.business_amount)/100/10000).toFixed(2)}}万</p>
-                    </div>
-                    <div class="col-xs-6">
-                        <p class="title">成交额</p>
-                        <p class="number">{{(Number(detail.business_balance)/100000000).toFixed(2)}}亿</p>
-                    </div>
-                </div>
-            </div>
+    <div class="page-part detail-part ">
+      <!-- 明细 -->
+      <div class="clearfix">
+        <div class="pull-left col-xs-7">
+          <p
+            :class="
+              detail.nowPrice - detail.preclose_px < 0
+                ? 'price green'
+                : 'price red'
+            "
+          >
+            {{ detail.nowPrice }}
+          </p>
+          <p
+            :class="
+              detail.nowPrice - detail.preclose_px < 0
+                ? 'gain green'
+                : 'gain red'
+            "
+          >
+            {{ detail.hcrate }}%
+          </p>
+        </div>
+        <div class="pull-right col-xs-5">
+          <ul class="price-detail text-center">
+            <li>
+              <p class="title">昨收</p>
+              <p
+                :class="
+                  detail.nowPrice - detail.preclose_px < 0
+                    ? 'number green'
+                    : 'number red'
+                "
+              >
+                {{ detail.preclose_px }}
+              </p>
+            </li>
+            <li>
+              <p class="title">今开</p>
+              <p
+                :class="
+                  detail.nowPrice - detail.preclose_px < 0
+                    ? 'number green'
+                    : 'number red'
+                "
+              >
+                {{ detail.open_px }}
+              </p>
+            </li>
+            <li>
+              <p class="title">最高</p>
+              <p
+                :class="
+                  detail.nowPrice - detail.preclose_px < 0
+                    ? 'number green'
+                    : 'number red'
+                "
+              >
+                {{ detail.today_max }}
+              </p>
+            </li>
+            <li>
+              <p class="title">最低</p>
+              <p
+                :class="
+                  detail.nowPrice - detail.preclose_px < 0
+                    ? 'number green'
+                    : 'number red'
+                "
+              >
+                {{ detail.today_min }}
+              </p>
+            </li>
+          </ul>
+        </div>
+      </div>
+      <div class="row detail-list">
+        <div class="col-xs-4">
+          <p class="title">成交量</p>
+          <p class="number">
+            {{ (Number(detail.business_amount) / 100 / 10000).toFixed(2) }}万
+          </p>
+        </div>
+        <div class="col-xs-6">
+          <p class="title">成交额</p>
+          <p class="number">
+            {{ (Number(detail.business_balance) / 100000000).toFixed(2) }}亿
+          </p>
+        </div>
+      </div>
+    </div>
     <!-- <stockHq /> -->
-       <div class="page-part box-part">
-                <!-- 图 -->
-                <imgBox :code="$route.query.code" :imgList='detail'/>
-            </div>
+    <div class="page-part box-part">
+      <!-- 图 -->
+      <imgBox :code="$route.query.code" :imgList="detail" />
+    </div>
     <!-- tab -->
     <div class="news-tab">
       <mt-navbar v-model="news">
@@ -101,90 +149,65 @@
       <mt-tab-container v-model="news" :swipeable="true">
         <mt-tab-container-item id="tab_0">
           <div class="news-content">
-            <div 
-              class="news-item"
-              v-for="item of newsContent1"
-              :key="item.id"
-            >
-              <p
-                class="news-title"
-                style="-webkit-box-orient: vertical;"
-              >{{item.title}}</p>
+            <div class="news-item" v-for="item of newsContent1" :key="item.id">
+              <p class="news-title" style="-webkit-box-orient: vertical;">
+                {{ item.title }}
+              </p>
               <span class="news-status">
                 <i class="glyphicon glyphicon-eye-open"></i>
-                浏览量:{{item.views}}
+                浏览量:{{ item.views }}
               </span>
             </div>
           </div>
         </mt-tab-container-item>
         <mt-tab-container-item id="tab_1">
           <div class="news-content">
-            <div 
-              class="news-item"
-              v-for="item of newsContent2"
-              :key="item.id"
-            >
-              <p
-                class="news-title"
-                style="-webkit-box-orient: vertical;"
-              >{{item.title}}</p>
+            <div class="news-item" v-for="item of newsContent2" :key="item.id">
+              <p class="news-title" style="-webkit-box-orient: vertical;">
+                {{ item.title }}
+              </p>
               <span class="news-status">
                 <i class="glyphicon glyphicon-eye-open"></i>
-                浏览量:{{item.views}}
+                浏览量:{{ item.views }}
               </span>
             </div>
           </div>
         </mt-tab-container-item>
         <mt-tab-container-item id="tab_2">
           <div class="news-content">
-            <div 
-              class="news-item"
-              v-for="item of newsContent3"
-              :key="item.id"
-            >
-              <p
-                class="news-title"
-                style="-webkit-box-orient: vertical;"
-              >{{item.title}}</p>
+            <div class="news-item" v-for="item of newsContent3" :key="item.id">
+              <p class="news-title" style="-webkit-box-orient: vertical;">
+                {{ item.title }}
+              </p>
               <span class="news-status">
                 <i class="glyphicon glyphicon-eye-open"></i>
-                浏览量:{{item.views}}
+                浏览量:{{ item.views }}
               </span>
             </div>
           </div>
         </mt-tab-container-item>
         <mt-tab-container-item id="tab_3">
           <div class="news-content">
-            <div 
-              class="news-item"
-              v-for="item of newsContent4"
-              :key="item.id"
-            >
-              <p
-                class="news-title"
-                style="-webkit-box-orient: vertical;"
-              >{{item.title}}</p>
+            <div class="news-item" v-for="item of newsContent4" :key="item.id">
+              <p class="news-title" style="-webkit-box-orient: vertical;">
+                {{ item.title }}
+              </p>
               <span class="news-status">
                 <i class="glyphicon glyphicon-eye-open"></i>
-                浏览量:{{item.views}}
+                浏览量:{{ item.views }}
               </span>
             </div>
           </div>
         </mt-tab-container-item>
         <mt-tab-container-item id="tab_4">
           <div class="news-content">
-            <div 
-              class="news-item"
-              v-for="item of newsContent5"
-              :key="item.id"
-            >
-              <p
-                class="news-title"
-                style="-webkit-box-orient: vertical;"
-              >{{item.title}}</p>
+            <div class="news-item" v-for="item of newsContent5" :key="item.id">
+              <p class="news-title" style="-webkit-box-orient: vertical;">
+                {{ item.title }}
+              </p>
               <span class="news-status">
                 <i class="glyphicon glyphicon-eye-open"></i>
-                浏览量:{{item.views}}
+                浏览量:{{ item.views }}
               </span>
             </div>
           </div>
@@ -193,15 +216,15 @@
     </div>
     <div class="btn-list">
       <div class="btn btn1" @click="addOptions">
-        <img :src="btnIcon1" alt="">
+        <img :src="btnIcon1" alt="" />
         自选
       </div>
       <div class="btn btn2" @click="handleTwoBuyClick">
-        <img :src="btnIcon2" alt="">
+        <img :src="btnIcon2" alt="" />
         两融交易
       </div>
       <div class="btn btn3" @click="handleSubBuyClick">
-        <img :src="btnIcon3" alt="">
+        <img :src="btnIcon3" alt="" />
         分仓交易
       </div>
     </div>
@@ -214,7 +237,7 @@
 import stockHq from "./compontent/stock/stockHq";
 import { Toast } from "mint-ui";
 import * as api from "@/axios/api";
-import foot from '@/components/foot/foot'
+import foot from "@/components/foot/foot";
 
 export default {
   components: {
@@ -258,23 +281,23 @@
         sell2_num: "5100",
         sell3_num: "2500",
         sell4_num: "40200",
-        sell5_num: "11500",
+        sell5_num: "11500"
       }, // 详情
       buyList: [
         { price: 33.5, price2: 14323.5 },
         { price: 33.5, price2: 14323.5 },
         { price: 33.5, price2: 14323.5 },
         { price: 33.5, price2: 14323.5 },
-        { price: 33.5, price2: 14323.5 },
+        { price: 33.5, price2: 14323.5 }
       ],
       isOptionOpt: false, // 是否已经添加自选
       timer: null,
       loading: false,
       // 新闻
-      news:'tab_0',
-      btnIcon1: require('../../../static/img/detail/zixuan-icon.png'),
-      btnIcon2: require('../../../static/img/detail/liangrong-icon.png'),
-      btnIcon3: require('../../../static/img/detail/fencang-icon.png'),
+      news: "tab_0",
+      btnIcon1: require("../../../static/img/detail/zixuan-icon.png"),
+      btnIcon2: require("../../../static/img/detail/liangrong-icon.png"),
+      btnIcon3: require("../../../static/img/detail/fencang-icon.png"),
       newsContent1: [], // 财经要闻
       newsContent2: [], // 经济数据
       newsContent3: [], // 全球股市
@@ -293,11 +316,11 @@
     clearInterval(this.timer);
   },
   mounted() {
-    this.getNewsList(1)
-    this.getNewsList(2)
-    this.getNewsList(3)
-    this.getNewsList(4)
-    this.getNewsList(5)
+    this.getNewsList(1);
+    this.getNewsList(2);
+    this.getNewsList(3);
+    this.getNewsList(4);
+    this.getNewsList(5);
     this.getDetail();
     if (this.$store.state.userInfo.phone) {
       // 判断是否登录
@@ -311,42 +334,42 @@
     // 两融交易
     handleTwoBuyClick() {
       this.$router.push({
-        path: '/twoBuy',
+        path: "/twoBuy",
         query: {
           code: this.detail.code
         }
-      })
+      });
     },
     // 分仓交易
     handleSubBuyClick() {
       this.$router.push({
-        path: '/subWarehouseBuy',
+        path: "/subWarehouseBuy",
         query: {
           code: this.detail.code
         }
-      })
+      });
     },
     toSearch() {
       this.$router.push("/searchlist");
     },
     async getNewsList(type) {
       let data = await api.queryNewsList(type);
-      console.log('xinwen:',data)
-      switch(type) {
+      console.log("xinwen:", data);
+      switch (type) {
         case 1:
-          this.newsContent1 = data.data.list
+          this.newsContent1 = data.data.list;
           break;
         case 2:
-          this.newsContent2 = data.data.list
+          this.newsContent2 = data.data.list;
           break;
         case 3:
-          this.newsContent3 = data.data.list
+          this.newsContent3 = data.data.list;
           break;
         case 4:
-          this.newsContent4 = data.data.list
+          this.newsContent4 = data.data.list;
           break;
         case 5:
-          this.newsContent5 = data.data.list
+          this.newsContent5 = data.data.list;
           break;
       }
     },
@@ -369,7 +392,7 @@
     },
     async getOpation() {
       let opts = {
-        code: this.$route.query.code,
+        code: this.$route.query.code
       };
       let data = await api.isOption(opts);
       if (data.status === 0) {
@@ -381,8 +404,8 @@
     },
     async getDetail() {
       let opts = {
-        code: this.$route.query.code,
-        stockType: this.$route.query.stock_type,
+        code: this.$route.query.code || this.$route.query.name,
+        stockType: this.$route.query.stock_type
       };
       let data = await api.getSingleStock(opts);
       this.loading = false;
@@ -424,11 +447,11 @@
           name: this.detail.name,
           code: this.detail.code,
           hcrate: this.detail.hcrate,
-          nowPrice: this.detail.nowPrice,
-        },
+          nowPrice: this.detail.nowPrice
+        }
       });
-    },
-  },
+    }
+  }
 };
 </script>
 <style lang="less" scoped>
@@ -554,7 +577,7 @@
     }
   }
 }
-.btn-list{
+.btn-list {
   display: flex;
   align-items: center;
   justify-content: space-between;
@@ -564,108 +587,108 @@
   position: fixed;
   bottom: 0;
   background-color: #16171d;
-  .btn{
+  .btn {
     width: 2.4rem;
     height: 0.76rem;
     border-radius: 1rem;
     display: flex;
     justify-content: center;
     align-items: center;
-    font-size:0.29rem;
-    font-family:Microsoft YaHei;
-    font-weight:400;
-    color:rgba(255,255,255,1);
-    img{
+    font-size: 0.29rem;
+    font-family: Microsoft YaHei;
+    font-weight: 400;
+    color: rgba(255, 255, 255, 1);
+    img {
       width: 0.28rem;
       margin-right: 0.1rem;
     }
-    &.btn1{
+    &.btn1 {
       width: 1.85rem;
-      background-color: #D63535;
+      background-color: #d63535;
     }
-    &.btn2{
-      background-color: #7266BA;
+    &.btn2 {
+      background-color: #7266ba;
     }
-    &.btn3{
-      background-color: #148EB4;
+    &.btn3 {
+      background-color: #148eb4;
     }
   }
 }
-.red-theme{
-  .exchangeData{
+.red-theme {
+  .exchangeData {
     background-color: white;
-    .overall-item{
-      h4{
+    .overall-item {
+      h4 {
         color: #656565;
       }
-      span{
+      span {
         color: #212121;
       }
     }
   }
-  .news-tab{
-    /deep/.mint-navbar{
+  .news-tab {
+    /deep/.mint-navbar {
       background: white;
-      .mint-tab-item{
+      .mint-tab-item {
         background: white;
-        .mint-tab-item-label{
+        .mint-tab-item-label {
           color: #000000;
         }
-        &.is-selected{
-          .mint-tab-item-label{
-            color: #BB1815;
-            .tab-name{
-              &::after{
-                background-color: #BB1815;
+        &.is-selected {
+          .mint-tab-item-label {
+            color: #bb1815;
+            .tab-name {
+              &::after {
+                background-color: #bb1815;
               }
             }
           }
         }
       }
     }
-    .mint-tab-container{
+    .mint-tab-container {
       background: white;
-      .news-title{
+      .news-title {
         color: #656565;
       }
-      .news-status{
-        border-color: #DFDFDF;
+      .news-status {
+        border-color: #dfdfdf;
       }
     }
   }
-  .btn-list{
+  .btn-list {
     background-color: #e9e9e9;
-    .btn{
-      &.btn1{
-        background-color: #D63535;
+    .btn {
+      &.btn1 {
+        background-color: #d63535;
       }
-      &.btn2{
-        background-color: #7266BA;
+      &.btn2 {
+        background-color: #7266ba;
       }
-      &.btn3{
-        background-color: #138EB4;
+      &.btn3 {
+        background-color: #138eb4;
       }
     }
   }
 }
-.flex{
+.flex {
   display: flex;
 }
-.justify-between{
+.justify-between {
   justify-content: space-between;
 }
-.flex-wrap{
+.flex-wrap {
   flex-wrap: wrap;
 }
-.align-center{
+.align-center {
   align-items: center;
 }
-.detailName{
+.detailName {
   font-size: 0.48rem;
   color: #000;
   font-weight: 700;
 }
-.detailCode{
+.detailCode {
   font-size: 0.16rem;
   color: #bbb;
 }
diff --git a/src/page/list/tradingList/data.list.vue b/src/page/list/tradingList/data.list.vue
index be8151f..96ae478 100644
--- a/src/page/list/tradingList/data.list.vue
+++ b/src/page/list/tradingList/data.list.vue
@@ -73,7 +73,7 @@
               </div>
             </van-col>
 
-            <van-col span="3">
+            <van-col span="3" v-if="active != 'HJ'">
               <div style="text-align: right">
                 {{ (item.gid || item.stockGid).toUpperCase() }}
               </div>
@@ -91,7 +91,7 @@
                 </div>
               </div>
             </van-col>
-            <van-col span="6" v-if="active != 'DZ'">
+            <van-col span="6" v-if="!['DZ', 'HJ'].includes(active)">
               <div style="text-align: right">
                 <div
                   class="tp right_bs"
@@ -221,7 +221,8 @@
       // 点击进入详情
       const obj = {
         pid: item.code || "",
-        type: item.stock_type || ""
+        type: item.stock_type || "",
+        name: item.name || ""
       };
       window.localStorage.setItem("kLine", JSON.stringify(obj));
       // return;
@@ -275,6 +276,16 @@
         if (a == "ST") {
           //沙特
           data = await api.getStockByType(opt);
+        } else if (a == "HJ") {
+          data = await api.getGoldCrudeOil();
+
+          data.data.list = Object.entries(data.data).map(
+            ([name, nowPrice]) => ({
+              name,
+              nowPrice,
+              stock_type: "HJ"
+            })
+          );
         } else {
           //大宗
           opt.stockType = "";
@@ -301,6 +312,7 @@
               this.listArr = data.data.list;
               this.loadings = false;
               // this.finished = true;
+              console.log("listArr", this.listArr);
               if (this.listArr.length % 20) {
                 this.finished = true;
               }
diff --git a/src/page/list/tradingList/tabs.vue b/src/page/list/tradingList/tabs.vue
index b26b42c..19195d8 100644
--- a/src/page/list/tradingList/tabs.vue
+++ b/src/page/list/tradingList/tabs.vue
@@ -50,8 +50,8 @@
     return {
       tabsList: [
         { title: this.$t("hj61"), key: "" },
-        // { title: this.$t("印股"), key: "IN", name: "IN" },
         { title: this.$t("hj52"), key: "ST", name: "ST" },
+        { title: this.$t("黄金原油"), key: "HJ", name: "HJ" },
         { title: this.$t("hj621"), key: "DZ", name: "DZ" }
       ],
       zxtabsList: [{ title: this.$t("hj52"), key: "ST", name: "ST" }],
diff --git a/src/page/user/Warehouse copy.vue b/src/page/user/Warehouse copy.vue
index 8ad4ba2..807dc81 100644
--- a/src/page/user/Warehouse copy.vue
+++ b/src/page/user/Warehouse copy.vue
@@ -602,7 +602,7 @@
                       @click="
                         $router.push({
                           path: '/trading-list',
-                          query: { listid: 5 },
+                          query: { listid: 5 }
                         })
                       "
                     >
@@ -733,7 +733,7 @@
         this.$t("hj2"),
         this.$t("hj109"),
         this.$t("hj136"),
-        this.$t("hj3"),
+        this.$t("hj3")
       ],
       tabsCurrentIndex: 0,
       titleName: this.$t("hj114"),
@@ -766,7 +766,7 @@
       tabsXgArr: [],
       cclist: [],
       loadingXg: false,
-      finishedXg: false,
+      finishedXg: false
     };
   },
   mounted() {
@@ -791,7 +791,7 @@
         state: this.zjtype == 0 ? "0" : "1",
         stockType: this.typeindex == 0 ? "ST" : "US",
         pageNum: this.pageNum,
-        pageSize: this.pageSize,
+        pageSize: this.pageSize
       };
       let data = await api.getchicang(opt);
       if (data.status === 0) {
@@ -803,11 +803,11 @@
     getrenjiao(val) {
       MessageBox.confirm(this.$t("hj251") + "?", this.$t("hj165"), {
         confirmButtonText: this.$t("hj161"),
-        cancelButtonText: this.$t("hj106"),
+        cancelButtonText: this.$t("hj106")
       })
         .then(async () => {
           let opt = {
-            id: val,
+            id: val
           };
           let data = await api.submitSubscribe(opt);
           if (data.status === 0) {
@@ -831,11 +831,11 @@
         // 沪深京
         MessageBox.confirm(this.$t("hj139") + "?", this.$t("hj165"), {
           confirmButtonText: this.$t("hj161"),
-          cancelButtonText: this.$t("hj106"),
+          cancelButtonText: this.$t("hj106")
         })
           .then(async () => {
             let opt = {
-              positionSn: val,
+              positionSn: val
             };
             let data = await api.sell(opt);
             if (data.status === 0) {
@@ -860,11 +860,11 @@
         // 指数
         MessageBox.confirm(this.$t("hj139") + "?", this.$t("hj165"), {
           confirmButtonText: this.$t("hj161"),
-          cancelButtonText: this.$t("hj106"),
+          cancelButtonText: this.$t("hj106")
         })
           .then(async () => {
             let opt = {
-              positionSn: val,
+              positionSn: val
             };
             let data = await api.sellIndex(opt);
             if (data.status === 0) {
@@ -934,7 +934,7 @@
     },
     async gdClose(item) {
       let opts = {
-        id: item.id,
+        id: item.id
       };
       let data = await api.delGuaDan(opts);
       if (data.status === 1) {
@@ -983,8 +983,8 @@
       this.$router.push({
         path: "/trading-list",
         query: {
-          listid: 5,
-        },
+          listid: 5
+        }
       });
     },
     SetTitleIndex(index) {
@@ -1053,7 +1053,7 @@
       let data = await api.getorderList(opts);
       this.loadingss = false;
       if (data.status === 0) {
-        data.data.forEach((element) => {
+        data.data.forEach(element => {
           this.tabsOrderList.push(element);
         });
         this.totalss = data.data.length;
@@ -1116,7 +1116,7 @@
         stockCode: "", // 代码
         stockSpell: "", // 简拼
         pageNum: this.page,
-        pageSize: 15,
+        pageSize: 15
       };
       let data = await api.getOrderList(opt);
       this.loading = false;
@@ -1124,7 +1124,7 @@
         if (data.data.list.length < 15) {
           this.finished = true;
         }
-        data.data.list.forEach((element) => {
+        data.data.list.forEach(element => {
           this.tabsPositionNumArr.push(element);
         });
         this.total = data.data.total;
@@ -1140,7 +1140,7 @@
         stockCode: "", // 代码
         stockSpell: "", // 简拼
         pageNum: this.pageNum,
-        pageSize: this.pageSize,
+        pageSize: this.pageSize
       };
       let data = await api.getIndexOrderList(opt);
       this.loading = false;
@@ -1148,7 +1148,7 @@
         if (data.data.list.length < 15) {
           this.finished = true;
         }
-        data.data.list.forEach((element) => {
+        data.data.list.forEach(element => {
           this.tabsPositionNumArr.push(element);
         });
         this.total = data.data.total;
@@ -1164,7 +1164,7 @@
         fnCode: "", // 代码
         fnName: "", // 简拼
         pageNum: this.pageNum,
-        pageSize: this.pageSize,
+        pageSize: this.pageSize
       };
       let data = await api.getFuturesOrderList(opt);
       this.loading = false;
@@ -1172,7 +1172,7 @@
         if (data.data.list.length < 15) {
           this.finished = true;
         }
-        data.data.list.forEach((element) => {
+        data.data.list.forEach(element => {
           this.tabsPositionNumArr.push(element);
         });
         this.total = data.data.total;
@@ -1188,7 +1188,7 @@
         stockCode: "", // 代码
         stockSpell: "", // 简拼
         pageNum: this.pages,
-        pageSize: 15,
+        pageSize: 15
       };
       let data = await api.getOrderList(opt);
       this.loadings = false;
@@ -1196,7 +1196,7 @@
         if (data.data.list.length < 15) {
           this.finisheds = true;
         }
-        data.data.list.forEach((element) => {
+        data.data.list.forEach(element => {
           this.tabsPcArr.push(element);
         });
         this.totals = data.data.total;
@@ -1212,7 +1212,7 @@
         stockCode: "", // 代码
         stockSpell: "", // 简拼
         pageNum: this.pageNum,
-        pageSize: 15,
+        pageSize: 15
       };
       let data = await api.getIndexOrderList(opt);
       this.loadings = false;
@@ -1220,7 +1220,7 @@
         this.finisheds = true;
       }
       if (data.status === 0) {
-        data.data.list.forEach((element) => {
+        data.data.list.forEach(element => {
           this.tabsPcArr.push(element);
         });
         this.totals = data.data.total;
@@ -1236,7 +1236,7 @@
         fnCode: "", // 代码
         fnName: "", // 简拼
         pageNum: this.pageNum,
-        pageSize: this.pageSize,
+        pageSize: this.pageSize
       };
       let data = await api.getFuturesOrderList(opt);
       this.loadings = false;
@@ -1244,7 +1244,7 @@
         if (data.data.list.length < 15) {
           this.finisheds = true;
         }
-        data.data.list.forEach((element) => {
+        data.data.list.forEach(element => {
           this.tabsPcArr.push(element);
         });
         this.totals = data.data.total;
@@ -1268,7 +1268,7 @@
       } else {
         Toast(data.msg);
       }
-    },
+    }
   },
   filters: {
     gettime(time) {
@@ -1300,8 +1300,8 @@
       // 17:35:2922-06-2022
       // return y + '/' + mm + '/' + d + ' ' + h + ':' + m + ':' + c
       return mm + "/" + d + "/" + y + " " + h + ":" + m + ":" + c;
-    },
-  },
+    }
+  }
 };
 </script>
 
@@ -2086,4 +2086,4 @@
   right: 0.5rem;
   top: calc(50% - 0.15rem);
 }
-</style>
\ No newline at end of file
+</style>
diff --git a/src/page/user/Warehouse.vue b/src/page/user/Warehouse.vue
index 41de0fd..043b761 100644
--- a/src/page/user/Warehouse.vue
+++ b/src/page/user/Warehouse.vue
@@ -1,32 +1,17 @@
 <template>
   <div class="ware">
     <div style="padding: 0 0.4rem 0.4rem">
-      <!-- <div class="tabs-box" onscroll="handleScroll">
-        <div
-          v-for="(item, index) in tabsArr"
-          :key="index"
-          :class="
-            item.name == active ? 'tabs-item-active tabs-item' : 'tabs-item'
-          "
-          @click="onClick(item)"
-        >
-          {{ item.title }}
-        </div>
-      </div> -->
+      <van-tabs v-model="active" color="#0066ed">
+        <van-tab :title="$t('hj52')" name="2"></van-tab>
+        <van-tab :title="$t('黄金原油')" name="1"></van-tab>
+      </van-tabs>
 
-      <template v-if="active === '1'">
-        <div v-for="(item, index) in tabsArr" :key="index">
-          <card :item="item" />
-        </div>
-      </template>
-      <template v-else>
-        <itemCard
-          @closingPosition="closingPosition"
-          :activeObj="activeObj"
-          :itemClick="itemClick"
-        />
-      </template>
-      <div v-show="active !== '1'">
+      <itemCard
+        @closingPosition="closingPosition"
+        :activeObj="activeObj"
+        :itemClick="itemClick"
+      />
+      <div>
         <dataList
           ref="dataListref"
           :activeObj="activeObj"
@@ -60,23 +45,23 @@
         //   symbol: "$",
         // },
         {
-          title: this.$t("ydgs"),
+          title: this.$t("hj52"),
           assname: this.$t("沙特股总资产"),
           name: "2",
           bgc: "rgb(12, 175, 226)",
           laber: "ST",
           symbolCode: "INR",
           symbol: "₹"
-        },
-        //   {
-        //   title: this.$t("ydgs"),
-        //   assname: this.$t("印股总资产"),
+        }
+        // {
+        //   title: this.$t("黄金原油"),
+        //   assname: this.$t("黄金原油"),
         //   name: "2",
         //   bgc: "rgb(12, 175, 226)",
         //   laber: "IN",
         //   symbolCode: "INR",
-        //   symbol: "₹",
-        // },
+        //   symbol: "₹"
+        // }
         // {
         //   title: this.$t("马来西亚"),
         //   assname: this.$t("馬股总资产"),
@@ -107,7 +92,7 @@
       let arr = this.tabsArr.filter(
         item => item.laber == this.$route.query.buyType
       )[0];
-      this.onClick(arr);
+      // this.onClick(arr);
     }
   },
   methods: {
@@ -131,6 +116,7 @@
           });
         });
         let obj = arr.filter(item => item.name == this.active)[0];
+        console.log("getMoneys: ", arr, obj);
         this.activeObj = obj;
         this.tabsArr = arr;
         this.$forceUpdate(); // 强制Vue重新渲染
diff --git a/src/page/user/favorites.vue b/src/page/user/favorites.vue
index 811ef93..05b3eac 100644
--- a/src/page/user/favorites.vue
+++ b/src/page/user/favorites.vue
@@ -296,9 +296,9 @@
                       class="price_color"
                       v-if="
                         tabsItemIndex == 0 ||
-                        tabsItemIndex == 2 ||
-                        tabsItemIndex == 3 ||
-                        tabsItemIndex == 4
+                          tabsItemIndex == 2 ||
+                          tabsItemIndex == 3 ||
+                          tabsItemIndex == 4
                       "
                       :class="item.hcrate > 0 ? 'green' : 'red'"
                     >
@@ -327,9 +327,9 @@
                       class="price_color"
                       v-if="
                         tabsItemIndex == 0 ||
-                        tabsItemIndex == 2 ||
-                        tabsItemIndex == 3 ||
-                        tabsItemIndex == 4
+                          tabsItemIndex == 2 ||
+                          tabsItemIndex == 3 ||
+                          tabsItemIndex == 4
                       "
                       :class="item.hcrate > 0 ? 'green' : 'red'"
                       >{{ item.hcrate }}</span
@@ -432,7 +432,7 @@
 export default {
   components: {
     AllList,
-    GoToLogin,
+    GoToLogin
   },
   props: {},
   data() {
@@ -455,14 +455,14 @@
       orderBy: "",
       bannerImgsArr: [
         {
-          img: banner1,
+          img: banner1
         },
         {
-          img: banner2,
+          img: banner2
         },
         {
-          img: banner3,
-        },
+          img: banner3
+        }
       ],
       announcementMess: "20202/10 - 交易时间安排",
       tabsIndex0010: 0,
@@ -482,7 +482,7 @@
       userInfo: [],
       showPopover: false,
 
-      listArr: [],
+      listArr: []
     };
   },
   computed: {
@@ -490,20 +490,20 @@
       return [
         {
           img: Tops,
-          title: this.$t("hj1"),
+          title: this.$t("hj1")
         },
         {
           img: Rumen,
-          title: this.$t("hj2"),
+          title: this.$t("hj2")
         },
         {
           img: Xuexi,
-          title: this.$t("hj3"),
+          title: this.$t("hj3")
         },
         {
           img: Guanyu,
-          title: this.$t("hj4"),
-        },
+          title: this.$t("hj4")
+        }
         // {
         //   img: dazong,
         //   title: this.$t('hj261')
@@ -513,7 +513,7 @@
         //   title: this.$t('hj279')
         // }
       ];
-    },
+    }
   },
   methods: {
     onLoad() {
@@ -575,7 +575,7 @@
     handleGoToKlineDetail(item) {
       const obj = {
         pid: item.code || "",
-        type: item.stock_type || "",
+        type: item.stock_type || ""
       };
       window.localStorage.setItem("kLine", JSON.stringify(obj));
       var codes = "";
@@ -657,12 +657,12 @@
             sok: soks,
             if_us: ifUs,
             usType: item.type,
-            if_zhishu: ifZhishu,
-          },
+            if_zhishu: ifZhishu
+          }
         });
       }
     },
-    getStock001: handleDt.debounce(async function () {
+    getStock001: handleDt.debounce(async function() {
       let data = await api.getOptionStock();
 
       if (data.status === 0) {
@@ -676,7 +676,7 @@
     getdialog() {
       MessageBox.confirm(this.$t("hj252"), this.$t("hj165"), {
         confirmButtonText: this.$t("hj161"),
-        cancelButtonText: this.$t("hj106"),
+        cancelButtonText: this.$t("hj106")
       })
         .then(async () => {})
         .catch(() => {});
@@ -689,7 +689,7 @@
 
       // });
     },
-    gpinput: handleDt.debounce(function () {
+    gpinput: handleDt.debounce(function() {
       this.pageNum = 1;
       this.listArr = [];
       this.listArr1 = [];
@@ -744,8 +744,8 @@
           code: item.symbol.substring(2, item.symbol.length),
           type: item.market,
           sok: this.filterSH(item.market),
-          if_zhishu: "0",
-        },
+          if_zhishu: "0"
+        }
       });
     },
     filterSH(val) {
@@ -771,8 +771,8 @@
           this.$router.push({
             path: "/trading-list",
             query: {
-              listid: 5,
-            },
+              listid: 5
+            }
           });
           break;
         case 3:
@@ -795,14 +795,14 @@
     async getBanner() {
       // 获取显示的banner
       let result = await api.getBannerByPlat({
-        platType: "m",
+        platType: "m"
       });
       if (result.status === 0) {
         this.bannerList = result.data;
       } else {
         this.$store.commit("elAlertShow", {
           elAlertShow: true,
-          elAlertText: result.msg,
+          elAlertText: result.msg
         });
       }
     },
@@ -822,7 +822,7 @@
       } else {
         this.$store.commit("elAlertShow", {
           elAlertShow: true,
-          elAlertText: data.msg,
+          elAlertText: data.msg
         });
       }
     },
@@ -837,7 +837,7 @@
         stockPlate: this.stockPlate,
         keyWords: this.gpcode,
         stockType: stockType,
-        orderBy: this.orderBy,
+        orderBy: this.orderBy
       };
       let data = await api.getStockByType(opt);
       if (data.status === 0) {
@@ -845,7 +845,7 @@
       } else {
         this.$store.commit("elAlertShow", {
           elAlertShow: true,
-          elAlertText: data.msg,
+          elAlertText: data.msg
         });
       }
     },
@@ -863,7 +863,7 @@
         stockPlate: this.stockPlate,
         keyWords: this.gpcode,
         stockType: stockType,
-        orderBy: this.orderBy,
+        orderBy: this.orderBy
       };
       let data = await api.getOrderList(opt);
       if (data.status === 0) {
@@ -872,7 +872,7 @@
       } else {
         this.$store.commit("elAlertShow", {
           elAlertShow: true,
-          elAlertText: data.msg,
+          elAlertText: data.msg
         });
       }
     },
@@ -990,17 +990,17 @@
     },
     onChange(index) {
       this.currentIndex = index;
-      this.proData[index].forEach((item) => {});
+      this.proData[index].forEach(item => {});
     },
     handleSearchClick() {
       // this.loading = !this.loading;
       this.$router.push({
         path: "/trading-list",
         query: {
-          type: 1,
-        },
+          type: 1
+        }
       });
-    },
+    }
   },
   filters: {
     gettime(time) {
@@ -1031,7 +1031,7 @@
       }
       // 17:35:2922-06-2022
       return y + "-" + mm + "-" + d + " " + h + ":" + m + ":" + c;
-    },
+    }
   },
   created() {
     // this.getdialog()
@@ -1065,7 +1065,7 @@
     setTimeout(() => {
       this.loading = false;
     }, 2000);
-  },
+  }
 };
 </script>
 <style lang="less" scoped>
diff --git a/yarn.lock b/yarn.lock
index 43c9729..eb1f2b5 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -99,6 +99,14 @@
     "lodash" "^4.2.0"
     "to-fast-properties" "^2.0.0"
 
+"@gulp-sourcemaps/map-sources@1.X":
+  "integrity" "sha512-o/EatdaGt8+x2qpb0vFLC/2Gug/xYPRXb6a+ET1wGYKozKN3krDWC/zZFZAtrzxJHuDL12mwdfEFKcKMNvc55A=="
+  "resolved" "https://registry.npmjs.org/@gulp-sourcemaps/map-sources/-/map-sources-1.0.0.tgz"
+  "version" "1.0.0"
+  dependencies:
+    "normalize-path" "^2.0.1"
+    "through2" "^2.0.3"
+
 "@types/json5@^0.0.29":
   "integrity" "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ=="
   "resolved" "https://registry.npmmirror.com/@types/json5/-/json5-0.0.29.tgz"
@@ -174,6 +182,11 @@
   "integrity" "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg=="
   "resolved" "https://registry.npmmirror.com/acorn/-/acorn-5.7.4.tgz"
   "version" "5.7.4"
+
+"acorn@4.X":
+  "integrity" "sha512-fu2ygVGuMmlzG8ZeRJ0bvR41nsAkxxhbyk8bZ1SS521Z7vmgJFTQQlfz/Mp/nJexGBz+v8sC9bM6+lNgskt4Ug=="
+  "resolved" "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz"
+  "version" "4.0.13"
 
 "adjust-sourcemap-loader@^1.1.0":
   "integrity" "sha512-958oaHHVEXMvsY7v7cC5gEkNIcoaAVIhZ4mBReYVZJOTP9IgKmzLjIOhTtzpLMu+qriXvLsVjJ155EeInp45IQ=="
@@ -1720,9 +1733,14 @@
   "resolved" "https://registry.npmmirror.com/camelcase/-/camelcase-2.1.1.tgz"
   "version" "2.1.1"
 
+"camelcase@^2.0.1":
+  "integrity" "sha512-DLIsRzJVBQu72meAKPkWQOLcujdXT32hwdfnkI1frSiSRMK1MofjKHf+MEx0SB6fjEFXL8fBDv1dKymBlOp4Qw=="
+  "resolved" "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz"
+  "version" "2.1.1"
+
 "camelcase@^3.0.0":
   "integrity" "sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg=="
-  "resolved" "https://registry.npmmirror.com/camelcase/-/camelcase-3.0.0.tgz"
+  "resolved" "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz"
   "version" "3.0.0"
 
 "camelcase@^4.1.0":
@@ -1814,6 +1832,17 @@
     "has-ansi" "^0.1.0"
     "strip-ansi" "^0.3.0"
     "supports-color" "^0.2.0"
+
+"chalk@1.1.3":
+  "integrity" "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A=="
+  "resolved" "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz"
+  "version" "1.1.3"
+  dependencies:
+    "ansi-styles" "^2.2.1"
+    "escape-string-regexp" "^1.0.2"
+    "has-ansi" "^2.0.0"
+    "strip-ansi" "^3.0.0"
+    "supports-color" "^2.0.0"
 
 "chardet@^0.4.0":
   "integrity" "sha512-j/Toj7f1z98Hh2cYo2BVr85EpIRWqUi7rtRSGxh/cqUjqrnJe9l9UE7IUGd2vQ2p+kSHLkSzObQPZPLUC6TQwg=="
@@ -1988,6 +2017,16 @@
     "string-width" "^4.2.0"
     "strip-ansi" "^6.0.0"
     "wrap-ansi" "^6.2.0"
+
+"clone-stats@^0.0.1":
+  "integrity" "sha512-dhUqc57gSMCo6TX85FLfe51eC/s+Im2MLkAgJwfaRRexR2tA4dd3eLEW4L6efzHc2iNorrRRXITifnDLlRrhaA=="
+  "resolved" "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz"
+  "version" "0.0.1"
+
+"clone@^1.0.0":
+  "integrity" "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg=="
+  "resolved" "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz"
+  "version" "1.0.4"
 
 "clone@^1.0.2":
   "integrity" "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg=="
@@ -2173,6 +2212,15 @@
     "readable-stream" "^2.2.2"
     "typedarray" "^0.0.6"
 
+"concat-stream@1.5.1":
+  "integrity" "sha512-eYF1Q4RxUUwq8ApyPD9ebWsYjVrJmTMLGzbGXv4qTZ5iP7FLm+oWN4x2XIzLEZ745xiwRM9DmIB0Ix1Nz8Epmg=="
+  "resolved" "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.1.tgz"
+  "version" "1.5.1"
+  dependencies:
+    "inherits" "~2.0.1"
+    "readable-stream" "~2.0.0"
+    "typedarray" "~0.0.5"
+
 "connect-history-api-fallback@^1.3.0":
   "integrity" "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg=="
   "resolved" "https://registry.npmmirror.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz"
@@ -2212,7 +2260,7 @@
   "resolved" "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-0.3.5.tgz"
   "version" "0.3.5"
 
-"convert-source-map@^1.5.1":
+"convert-source-map@^1.5.1", "convert-source-map@1.X":
   "integrity" "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A=="
   "resolved" "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-1.9.0.tgz"
   "version" "1.9.0"
@@ -2489,7 +2537,7 @@
   "resolved" "https://registry.npmmirror.com/css-what/-/css-what-6.1.0.tgz"
   "version" "6.1.0"
 
-"css@^2.0.0", "css@~2.2.0":
+"css@^2.0.0", "css@~2.2.0", "css@2.X":
   "integrity" "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw=="
   "resolved" "https://registry.npmmirror.com/css/-/css-2.2.4.tgz"
   "version" "2.2.4"
@@ -2660,7 +2708,16 @@
   "resolved" "https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz"
   "version" "1.0.2"
 
-"debug@^2.2.0", "debug@^2.3.3", "debug@^2.6.6", "debug@^2.6.8", "debug@^2.6.9", "debug@2.6.9":
+"debug-fabulous@0.0.X":
+  "integrity" "sha512-mmVKpY/O4UIl6ZDn5Owf8jEauO6uQiuF4Jz9iTuflSmvqNm6/64xARk/qCq5ZJxu141Ic2lCmL1TSMHIYoyiTw=="
+  "resolved" "https://registry.npmjs.org/debug-fabulous/-/debug-fabulous-0.0.4.tgz"
+  "version" "0.0.4"
+  dependencies:
+    "debug" "2.X"
+    "lazy-debug-legacy" "0.0.X"
+    "object-assign" "4.1.0"
+
+"debug@*", "debug@^2.2.0", "debug@^2.3.3", "debug@^2.6.6", "debug@^2.6.8", "debug@^2.6.9", "debug@2.6.9", "debug@2.X":
   "integrity" "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="
   "resolved" "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz"
   "version" "2.6.9"
@@ -2816,6 +2873,11 @@
   dependencies:
     "repeating" "^2.0.0"
 
+"detect-newline@2.X":
+  "integrity" "sha512-CwffZFvlJffUg9zZA0uqrjQayUTC8ob94pnr5sFwaVv3IOmkfUHcWH+jXaQK3askE51Cqe8/9Ql/0uXNwqZ8Zg=="
+  "resolved" "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz"
+  "version" "2.1.0"
+
 "detect-node@^2.0.4":
   "integrity" "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g=="
   "resolved" "https://registry.npmmirror.com/detect-node/-/detect-node-2.1.0.tgz"
@@ -2944,7 +3006,7 @@
   "resolved" "https://registry.npmmirror.com/duplexer/-/duplexer-0.1.2.tgz"
   "version" "0.1.2"
 
-"duplexify@^3.4.2", "duplexify@^3.6.0":
+"duplexify@^3.2.0", "duplexify@^3.4.2", "duplexify@^3.6.0":
   "integrity" "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g=="
   "resolved" "https://registry.npmmirror.com/duplexify/-/duplexify-3.7.1.tgz"
   "version" "3.7.1"
@@ -3774,6 +3836,11 @@
     "locate-path" "^5.0.0"
     "path-exists" "^4.0.0"
 
+"first-chunk-stream@^1.0.0":
+  "integrity" "sha512-ArRi5axuv66gEsyl3UuK80CzW7t56hem73YGNYxNWTGNKFJUadSb9Gu9SHijYEUi8ulQMf1bJomYNwSCPHhtTQ=="
+  "resolved" "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz"
+  "version" "1.0.0"
+
 "flat-cache@^1.2.1":
   "integrity" "sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg=="
   "resolved" "https://registry.npmmirror.com/flat-cache/-/flat-cache-1.3.4.tgz"
@@ -3977,6 +4044,14 @@
   dependencies:
     "is-glob" "^2.0.0"
 
+"glob-parent@^3.0.0":
+  "integrity" "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA=="
+  "resolved" "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz"
+  "version" "3.1.0"
+  dependencies:
+    "is-glob" "^3.1.0"
+    "path-dirname" "^1.0.0"
+
 "glob-parent@^3.1.0":
   "integrity" "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA=="
   "resolved" "https://registry.npmmirror.com/glob-parent/-/glob-parent-3.1.0.tgz"
@@ -3991,6 +4066,31 @@
   "version" "5.1.2"
   dependencies:
     "is-glob" "^4.0.1"
+
+"glob-stream@^5.3.2":
+  "integrity" "sha512-piN8XVAO2sNxwVLokL4PswgJvK/uQ6+awwXUVRTGF+rRfgCZpn4hOqxiRuTEbU/k3qgKl0DACYQ/0Sge54UMQg=="
+  "resolved" "https://registry.npmjs.org/glob-stream/-/glob-stream-5.3.5.tgz"
+  "version" "5.3.5"
+  dependencies:
+    "extend" "^3.0.0"
+    "glob" "^5.0.3"
+    "glob-parent" "^3.0.0"
+    "micromatch" "^2.3.7"
+    "ordered-read-streams" "^0.3.0"
+    "through2" "^0.6.0"
+    "to-absolute-glob" "^0.1.1"
+    "unique-stream" "^2.0.2"
+
+"glob@^5.0.3":
+  "integrity" "sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA=="
+  "resolved" "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz"
+  "version" "5.0.15"
+  dependencies:
+    "inflight" "^1.0.4"
+    "inherits" "2"
+    "minimatch" "2 || 3"
+    "once" "^1.3.0"
+    "path-is-absolute" "^1.0.0"
 
 "glob@^7.0.0", "glob@^7.0.3", "glob@^7.1.2", "glob@^7.1.3":
   "integrity" "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="
@@ -4062,7 +4162,7 @@
   dependencies:
     "natives" "^1.1.3"
 
-"graceful-fs@^4.1.11", "graceful-fs@^4.1.2", "graceful-fs@^4.1.6":
+"graceful-fs@^4.0.0", "graceful-fs@^4.1.11", "graceful-fs@^4.1.2", "graceful-fs@^4.1.6", "graceful-fs@4.X":
   "integrity" "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="
   "resolved" "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.10.tgz"
   "version" "4.2.10"
@@ -4071,6 +4171,23 @@
   "integrity" "sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw=="
   "resolved" "https://registry.npmmirror.com/growly/-/growly-1.3.0.tgz"
   "version" "1.3.0"
+
+"gulp-sourcemaps@^1.5.2":
+  "integrity" "sha512-2NYnMpB67LJhc36sEv+hNY05UOy1lD9DPtLi+en4hbGH+085G9Zzh3cet2VEqrDlQrLk9Eho0MM9dZ3Z+dL0XA=="
+  "resolved" "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-1.12.1.tgz"
+  "version" "1.12.1"
+  dependencies:
+    "@gulp-sourcemaps/map-sources" "1.X"
+    "acorn" "4.X"
+    "convert-source-map" "1.X"
+    "css" "2.X"
+    "debug-fabulous" "0.0.X"
+    "detect-newline" "2.X"
+    "graceful-fs" "4.X"
+    "source-map" "~0.6.0"
+    "strip-bom" "2.X"
+    "through2" "2.X"
+    "vinyl" "1.X"
 
 "gzip-size@^4.1.0":
   "integrity" "sha512-1g6EPVvIHuPmpAdBBpsIVYLgjzGV/QqcFRJXpMyrqEWG10JhOaTjQeCcjMDyX0Iqfm/Q5M9twR/mbDk5f5MqkA=="
@@ -4722,7 +4839,7 @@
 
 "is-extglob@^1.0.0":
   "integrity" "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww=="
-  "resolved" "https://registry.npmmirror.com/is-extglob/-/is-extglob-1.0.0.tgz"
+  "resolved" "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz"
   "version" "1.0.0"
 
 "is-extglob@^2.1.0", "is-extglob@^2.1.1":
@@ -4755,6 +4872,13 @@
 "is-glob@^2.0.0", "is-glob@^2.0.1":
   "integrity" "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg=="
   "resolved" "https://registry.npmmirror.com/is-glob/-/is-glob-2.0.1.tgz"
+  "version" "2.0.1"
+  dependencies:
+    "is-extglob" "^1.0.0"
+
+"is-glob@^2.0.1":
+  "integrity" "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg=="
+  "resolved" "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz"
   "version" "2.0.1"
   dependencies:
     "is-extglob" "^1.0.0"
@@ -4875,7 +4999,7 @@
   dependencies:
     "call-bind" "^1.0.2"
 
-"is-stream@^1.1.0":
+"is-stream@^1.0.1", "is-stream@^1.1.0":
   "integrity" "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ=="
   "resolved" "https://registry.npmmirror.com/is-stream/-/is-stream-1.1.0.tgz"
   "version" "1.1.0"
@@ -4906,6 +5030,11 @@
   "resolved" "https://registry.npmmirror.com/is-utf8/-/is-utf8-0.2.1.tgz"
   "version" "0.2.1"
 
+"is-valid-glob@^0.3.0":
+  "integrity" "sha512-CvG8EtJZ8FyzVOGPzrDorzyN65W1Ld8BVnqshRCah6pFIsprGx3dKgFtjLn/Vw9kGqR4OlR84U7yhT9ZVTyWIQ=="
+  "resolved" "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-0.3.0.tgz"
+  "version" "0.3.0"
+
 "is-weakref@^1.0.2":
   "integrity" "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ=="
   "resolved" "https://registry.npmmirror.com/is-weakref/-/is-weakref-1.0.2.tgz"
@@ -4932,6 +5061,11 @@
   "integrity" "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
   "resolved" "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz"
   "version" "1.0.0"
+
+"isarray@0.0.1":
+  "integrity" "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ=="
+  "resolved" "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz"
+  "version" "0.0.1"
 
 "isexe@^2.0.0":
   "integrity" "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
@@ -5104,6 +5238,18 @@
   "resolved" "https://registry.npmmirror.com/lazy-cache/-/lazy-cache-1.0.4.tgz"
   "version" "1.0.4"
 
+"lazy-debug-legacy@0.0.X":
+  "integrity" "sha512-GFWaIBcBjxWWKI5OghwYEsPOR8JFh2xEcc3ZFV0ONYL0oHz0PHINJCfxJyztUq2XzcHncyO7fsRR550Gtfnk6g=="
+  "resolved" "https://registry.npmjs.org/lazy-debug-legacy/-/lazy-debug-legacy-0.0.1.tgz"
+  "version" "0.0.1"
+
+"lazystream@^1.0.0":
+  "integrity" "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw=="
+  "resolved" "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz"
+  "version" "1.0.1"
+  dependencies:
+    "readable-stream" "^2.0.5"
+
 "lcid@^1.0.0":
   "integrity" "sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw=="
   "resolved" "https://registry.npmmirror.com/lcid/-/lcid-1.0.0.tgz"
@@ -5149,7 +5295,7 @@
   "resolved" "https://registry.npmmirror.com/lib-flexible/-/lib-flexible-0.3.2.tgz"
   "version" "0.3.2"
 
-"load-json-file@^1.0.0":
+"load-json-file@^1.0.0", "load-json-file@^1.1.0":
   "integrity" "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A=="
   "resolved" "https://registry.npmmirror.com/load-json-file/-/load-json-file-1.1.0.tgz"
   "version" "1.1.0"
@@ -5274,6 +5420,11 @@
   "resolved" "https://registry.npmmirror.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz"
   "version" "3.0.9"
 
+"lodash._reinterpolate@^3.0.0", "lodash._reinterpolate@~3.0.0":
+  "integrity" "sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA=="
+  "resolved" "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz"
+  "version" "3.0.0"
+
 "lodash.assign@^3.0.0":
   "integrity" "sha512-/VVxzgGBmbphasTg51FrztxQJ/VgAUpol6zmJuSVSGcNg4g7FA4z7rQV8Ovr9V3vFBNWZhvKWHfpAytjTVUfFA=="
   "resolved" "https://registry.npmmirror.com/lodash.assign/-/lodash.assign-3.2.0.tgz"
@@ -5283,9 +5434,14 @@
     "lodash._createassigner" "^3.0.0"
     "lodash.keys" "^3.0.0"
 
-"lodash.assign@^4.0.1":
+"lodash.assign@^4.0.1", "lodash.assign@^4.0.3", "lodash.assign@^4.0.6":
   "integrity" "sha512-hFuH8TY+Yji7Eja3mGiuAxBqLagejScbG8GbG0j6o9vzn0YL14My+ktnqtZgFTosKymC9/44wP6s7xyuLfnClw=="
   "resolved" "https://registry.npmmirror.com/lodash.assign/-/lodash.assign-4.2.0.tgz"
+  "version" "4.2.0"
+
+"lodash.assigninwith@^4.0.0":
+  "integrity" "sha512-oYOjtZzQnecm7PJcxrDbL20OHv3tTtOQdRBSnlor6s0MO6VOFTOC+JyBIJUNUEzsBi1I0oslWtFAAG6QQbFIWQ=="
+  "resolved" "https://registry.npmjs.org/lodash.assigninwith/-/lodash.assigninwith-4.2.0.tgz"
   "version" "4.2.0"
 
 "lodash.camelcase@^4.3.0":
@@ -5316,6 +5472,11 @@
   "resolved" "https://registry.npmmirror.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz"
   "version" "3.0.4"
 
+"lodash.isequal@^4.0.0":
+  "integrity" "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ=="
+  "resolved" "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz"
+  "version" "4.5.0"
+
 "lodash.keys@^3.0.0":
   "integrity" "sha512-CuBsapFjcubOGMn3VD+24HOAPxM79tH+V6ivJL3CHYjtrawauDJHUk//Yew9Hvc6e9rbCrURGk8z6PC+8WJBfQ=="
   "resolved" "https://registry.npmmirror.com/lodash.keys/-/lodash.keys-3.1.2.tgz"
@@ -5325,15 +5486,49 @@
     "lodash.isarguments" "^3.0.0"
     "lodash.isarray" "^3.0.0"
 
+"lodash.keys@^4.0.0":
+  "integrity" "sha512-J79MkJcp7Df5mizHiVNpjoHXLi4HLjh9VLS/M7lQSGoQ+0oQ+lWEigREkqKyizPB1IawvQLLKY8mzEcm1tkyxQ=="
+  "resolved" "https://registry.npmjs.org/lodash.keys/-/lodash.keys-4.2.0.tgz"
+  "version" "4.2.0"
+
 "lodash.memoize@^4.1.2":
   "integrity" "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag=="
   "resolved" "https://registry.npmmirror.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz"
   "version" "4.1.2"
 
+"lodash.rest@^4.0.0":
+  "integrity" "sha512-hsypEpebNAt0hj1aX9isQqi2CIZoNS1lP6PSWhB3hcMnBivobYzPZRPYq4cr38+RtvrlxQTgaW+sIuHAhBoHrA=="
+  "resolved" "https://registry.npmjs.org/lodash.rest/-/lodash.rest-4.0.5.tgz"
+  "version" "4.0.5"
+
 "lodash.restparam@^3.0.0":
   "integrity" "sha512-L4/arjjuq4noiUJpt3yS6KIKDtJwNe2fIYgMqyYYKoeIfV1iEqvPwhCx23o+R9dzouGihDAPN1dTIRWa7zk8tw=="
   "resolved" "https://registry.npmmirror.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz"
   "version" "3.6.1"
+
+"lodash.template@4.2.4":
+  "integrity" "sha512-PmEQ9TtYbeYg6lNwJpSjkp4J4KttYLuKF1C6jeFBidyzbOFu0KvVnLicZBf0sGfScARwgOBqxnV/rWuaqRwang=="
+  "resolved" "https://registry.npmjs.org/lodash.template/-/lodash.template-4.2.4.tgz"
+  "version" "4.2.4"
+  dependencies:
+    "lodash._reinterpolate" "~3.0.0"
+    "lodash.assigninwith" "^4.0.0"
+    "lodash.keys" "^4.0.0"
+    "lodash.rest" "^4.0.0"
+    "lodash.templatesettings" "^4.0.0"
+    "lodash.tostring" "^4.0.0"
+
+"lodash.templatesettings@^4.0.0":
+  "integrity" "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ=="
+  "resolved" "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz"
+  "version" "4.2.0"
+  dependencies:
+    "lodash._reinterpolate" "^3.0.0"
+
+"lodash.tostring@^4.0.0":
+  "integrity" "sha512-xWHJ0LY7cSz/C/4ghNNiYA1Ong0VLdzAzrjDHvOzN+eJHzDEHme2+k+w/9Pk8dtdwcASMUbxN1/mtj6mFI25Ng=="
+  "resolved" "https://registry.npmjs.org/lodash.tostring/-/lodash.tostring-4.1.4.tgz"
+  "version" "4.1.4"
 
 "lodash.uniq@^4.5.0":
   "integrity" "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ=="
@@ -5414,6 +5609,11 @@
   "integrity" "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg=="
   "resolved" "https://registry.npmmirror.com/map-obj/-/map-obj-1.0.1.tgz"
   "version" "1.0.1"
+
+"map-stream@0.0.6":
+  "integrity" "sha512-RG9wAgznUY0foT30MMfnXh4jS0ObmOuxoGKe/ppYvM55RfquNdIvEEf6e+euczNVVzJIVbkgxg7GJBpYDhQ/Zg=="
+  "resolved" "https://registry.npmjs.org/map-stream/-/map-stream-0.0.6.tgz"
+  "version" "0.0.6"
 
 "map-visit@^1.0.0":
   "integrity" "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w=="
@@ -5505,6 +5705,13 @@
   "resolved" "https://registry.npmmirror.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz"
   "version" "1.0.1"
 
+"merge-stream@^1.0.0":
+  "integrity" "sha512-e6RM36aegd4f+r8BZCcYXlO2P3H6xbUM6ktL2Xmf45GAOit9bI4z6/3VU7JwllVO1L7u0UDSg/EhzQ5lmMLolA=="
+  "resolved" "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz"
+  "version" "1.0.1"
+  dependencies:
+    "readable-stream" "^2.0.1"
+
 "methods@~1.1.2":
   "integrity" "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w=="
   "resolved" "https://registry.npmmirror.com/methods/-/methods-1.1.2.tgz"
@@ -5513,6 +5720,25 @@
 "micromatch@^2.1.5":
   "integrity" "sha512-LnU2XFEk9xxSJ6rfgAry/ty5qwUTyHYOBU0g4R6tIw5ljwgGIBmiKhRWLw5NpMOnrgUNcDJ4WMp8rl3sYVHLNA=="
   "resolved" "https://registry.npmmirror.com/micromatch/-/micromatch-2.3.11.tgz"
+  "version" "2.3.11"
+  dependencies:
+    "arr-diff" "^2.0.0"
+    "array-unique" "^0.2.1"
+    "braces" "^1.8.2"
+    "expand-brackets" "^0.1.4"
+    "extglob" "^0.3.1"
+    "filename-regex" "^2.0.0"
+    "is-extglob" "^1.0.0"
+    "is-glob" "^2.0.1"
+    "kind-of" "^3.0.2"
+    "normalize-path" "^2.0.1"
+    "object.omit" "^2.0.0"
+    "parse-glob" "^3.0.4"
+    "regex-cache" "^0.4.2"
+
+"micromatch@^2.3.7":
+  "integrity" "sha512-LnU2XFEk9xxSJ6rfgAry/ty5qwUTyHYOBU0g4R6tIw5ljwgGIBmiKhRWLw5NpMOnrgUNcDJ4WMp8rl3sYVHLNA=="
+  "resolved" "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz"
   "version" "2.3.11"
   dependencies:
     "arr-diff" "^2.0.0"
@@ -5598,7 +5824,7 @@
   "resolved" "https://registry.npmmirror.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz"
   "version" "1.0.1"
 
-"minimatch@^3.0.2", "minimatch@^3.0.4", "minimatch@^3.1.1", "minimatch@^3.1.2":
+"minimatch@^3.0.2", "minimatch@^3.0.4", "minimatch@^3.1.1", "minimatch@^3.1.2", "minimatch@2 || 3":
   "integrity" "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="
   "resolved" "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz"
   "version" "3.1.2"
@@ -5661,6 +5887,19 @@
   "version" "0.5.6"
   dependencies:
     "minimist" "^1.2.6"
+
+"module@^1.2.5":
+  "integrity" "sha512-Y+j9HcHf8V6YtNBkLbPmREAUi5xGbAdb9ycXpo2roABDPrJEzd79kmoH5Ib9lpxcNVsHWa1LhRZJcflUq2+N3w=="
+  "resolved" "https://registry.npmjs.org/module/-/module-1.2.5.tgz"
+  "version" "1.2.5"
+  dependencies:
+    "chalk" "1.1.3"
+    "concat-stream" "1.5.1"
+    "lodash.template" "4.2.4"
+    "map-stream" "0.0.6"
+    "tildify" "1.2.0"
+    "vinyl-fs" "2.4.3"
+    "yargs" "4.6.0"
 
 "moment-timezone@^0.5.45":
   "integrity" "sha512-HIWmqA86KcmCAhnMAN0wuDOARV/525R2+lOLotuGFzn4HO+FH+/645z2wx0Dt3iDv6/p61SIvKnDstISainhLQ=="
@@ -5962,10 +6201,15 @@
   "resolved" "https://registry.npmmirror.com/number-is-nan/-/number-is-nan-1.0.1.tgz"
   "version" "1.0.1"
 
-"object-assign@^4.0.1", "object-assign@^4.1.0", "object-assign@^4.1.1":
+"object-assign@^4.0.0", "object-assign@^4.0.1", "object-assign@^4.1.0", "object-assign@^4.1.1":
   "integrity" "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="
   "resolved" "https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz"
   "version" "4.1.1"
+
+"object-assign@4.1.0":
+  "integrity" "sha512-Lbc7GfN7XFaK30bzUN3cDYLOkT0dH05S0ax1QikylHUD9+Z9PRF3G1iYwX3kcz+6AlzTFGkUgMxz6l3aUwbwTA=="
+  "resolved" "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz"
+  "version" "4.1.0"
 
 "object-copy@^0.1.0":
   "integrity" "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ=="
@@ -6135,6 +6379,14 @@
     "cli-cursor" "^2.1.0"
     "cli-spinners" "^1.0.1"
     "log-symbols" "^2.1.0"
+
+"ordered-read-streams@^0.3.0":
+  "integrity" "sha512-xQvd8qvx9U1iYY9aVqPpoF5V9uaWJKV6ZGljkh/jkiNX0DiQsjbWvRumbh10QTMDE8DheaOEU8xi0szbrgjzcw=="
+  "resolved" "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.3.0.tgz"
+  "version" "0.3.0"
+  dependencies:
+    "is-stream" "^1.0.1"
+    "readable-stream" "^2.0.1"
 
 "original@>=0.0.5":
   "integrity" "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg=="
@@ -6459,6 +6711,16 @@
   "integrity" "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg=="
   "resolved" "https://registry.npmmirror.com/pinkie/-/pinkie-2.0.4.tgz"
   "version" "2.0.4"
+
+"pkg-conf@^1.1.2":
+  "integrity" "sha512-9hHgE5+Xai/ChrnahNP8Ke0VNF/s41IZIB/d24eMHEaRamdPg+wwlRm2lTb5wMvE8eTIKrYZsrxfuOwt3dpsIQ=="
+  "resolved" "https://registry.npmjs.org/pkg-conf/-/pkg-conf-1.1.3.tgz"
+  "version" "1.1.3"
+  dependencies:
+    "find-up" "^1.0.0"
+    "load-json-file" "^1.1.0"
+    "object-assign" "^4.0.1"
+    "symbol" "^0.2.1"
 
 "pkg-dir@^1.0.0":
   "integrity" "sha512-c6pv3OE78mcZ92ckebVDqg0aWSoKhOTbwCV6qbCWMk546mAL9pZln0+QsN/yQ7fkucd4+yJPLrCBXNt8Ruk+Eg=="
@@ -7275,6 +7537,11 @@
   "resolved" "https://registry.npmmirror.com/private/-/private-0.1.8.tgz"
   "version" "0.1.8"
 
+"process-nextick-args@~1.0.6":
+  "integrity" "sha512-yN0WQmuCX63LP/TMvAg31nvT6m4vDqJEiiv2CAZqWOGNWutc9DfDk1NPYYmKUFmaVM2UwDowH4u5AHWYP/jxKw=="
+  "resolved" "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz"
+  "version" "1.0.7"
+
 "process-nextick-args@~2.0.0":
   "integrity" "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
   "resolved" "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz"
@@ -7516,7 +7783,7 @@
     "normalize-package-data" "^2.3.2"
     "path-type" "^2.0.0"
 
-"readable-stream@^2.0.0", "readable-stream@^2.0.1", "readable-stream@^2.0.2", "readable-stream@^2.0.5", "readable-stream@^2.1.5", "readable-stream@^2.2.2", "readable-stream@^2.3.3", "readable-stream@^2.3.6", "readable-stream@~2.3.6", "readable-stream@1 || 2":
+"readable-stream@^2.0.0", "readable-stream@^2.0.1", "readable-stream@^2.0.2", "readable-stream@^2.0.4", "readable-stream@^2.0.5", "readable-stream@^2.1.5", "readable-stream@^2.2.2", "readable-stream@^2.3.3", "readable-stream@^2.3.6", "readable-stream@~2.3.6", "readable-stream@1 || 2":
   "integrity" "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw=="
   "resolved" "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.7.tgz"
   "version" "2.3.7"
@@ -7546,6 +7813,28 @@
     "inherits" "^2.0.3"
     "string_decoder" "^1.1.1"
     "util-deprecate" "^1.0.1"
+
+"readable-stream@>=1.0.33-1 <1.1.0-0":
+  "integrity" "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg=="
+  "resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz"
+  "version" "1.0.34"
+  dependencies:
+    "core-util-is" "~1.0.0"
+    "inherits" "~2.0.1"
+    "isarray" "0.0.1"
+    "string_decoder" "~0.10.x"
+
+"readable-stream@~2.0.0":
+  "integrity" "sha512-TXcFfb63BQe1+ySzsHZI/5v1aJPCShfqvWJ64ayNImXMsN1Cd0YGk/wm8KB7/OeessgPc9QvS9Zou8QTkFzsLw=="
+  "resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz"
+  "version" "2.0.6"
+  dependencies:
+    "core-util-is" "~1.0.0"
+    "inherits" "~2.0.1"
+    "isarray" "~1.0.0"
+    "process-nextick-args" "~1.0.6"
+    "string_decoder" "~0.10.x"
+    "util-deprecate" "~1.0.1"
 
 "readdirp@^2.0.0":
   "integrity" "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ=="
@@ -7719,6 +8008,11 @@
   "version" "2.0.1"
   dependencies:
     "is-finite" "^1.0.0"
+
+"replace-ext@0.0.1":
+  "integrity" "sha512-AFBWBy9EVRTa/LhEcG8QDP3FvpwZqmvN2QFDuJswFeaVhWnZMp8q3E6Zd90SR04PlIwfGdyVjNyLPyen/ek5CQ=="
+  "resolved" "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz"
+  "version" "0.0.1"
 
 "require-directory@^2.1.1":
   "integrity" "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q=="
@@ -8424,6 +8718,11 @@
   dependencies:
     "safe-buffer" "~5.1.0"
 
+"string_decoder@~0.10.x":
+  "integrity" "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ=="
+  "resolved" "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz"
+  "version" "0.10.31"
+
 "string-split-by@^1.0.0":
   "integrity" "sha512-KaJKY+hfpzNyet/emP81PJA9hTVSfxNLS9SFTWxdCnnW1/zOOwiV248+EfoX7IQFcBaOp4G5YE6xTJMF+pLg6A=="
   "resolved" "https://registry.npmmirror.com/string-split-by/-/string-split-by-1.0.0.tgz"
@@ -8512,9 +8811,17 @@
   dependencies:
     "ansi-regex" "^5.0.1"
 
+"strip-bom-stream@^1.0.0":
+  "integrity" "sha512-7jfJB9YpI2Z0aH3wu10ZqitvYJaE0s5IzFuWE+0pbb4Q/armTloEUShymkDO47YSLnjAW52mlXT//hs9wXNNJQ=="
+  "resolved" "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-1.0.0.tgz"
+  "version" "1.0.0"
+  dependencies:
+    "first-chunk-stream" "^1.0.0"
+    "strip-bom" "^2.0.0"
+
 "strip-bom@^2.0.0":
   "integrity" "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g=="
-  "resolved" "https://registry.npmmirror.com/strip-bom/-/strip-bom-2.0.0.tgz"
+  "resolved" "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz"
   "version" "2.0.0"
   dependencies:
     "is-utf8" "^0.2.0"
@@ -8523,6 +8830,13 @@
   "integrity" "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA=="
   "resolved" "https://registry.npmmirror.com/strip-bom/-/strip-bom-3.0.0.tgz"
   "version" "3.0.0"
+
+"strip-bom@2.X":
+  "integrity" "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g=="
+  "resolved" "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz"
+  "version" "2.0.0"
+  dependencies:
+    "is-utf8" "^0.2.0"
 
 "strip-eof@^1.0.0":
   "integrity" "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q=="
@@ -8633,6 +8947,11 @@
     "unquote" "~1.1.1"
     "util.promisify" "~1.0.0"
 
+"symbol@^0.2.1":
+  "integrity" "sha512-IUW+ek7apEaW5bFhS6WpYoNtVpNTlNoqB/PH7YiMWQTxSPeXCzG4PILVakwXivJt3ZXWeO1fIJnUd/L9A/VeGA=="
+  "resolved" "https://registry.npmjs.org/symbol/-/symbol-0.2.3.tgz"
+  "version" "0.2.3"
+
 "table@4.0.2":
   "integrity" "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA=="
   "resolved" "https://registry.npmmirror.com/table/-/table-4.0.2.tgz"
@@ -8670,7 +8989,31 @@
   "resolved" "https://registry.npmmirror.com/through/-/through-2.3.8.tgz"
   "version" "2.3.8"
 
-"through2@^2.0.0":
+"through2-filter@^2.0.0":
+  "integrity" "sha512-miwWajb1B80NvIVKXFPN/o7+vJc4jYUvnZCwvhicRAoTxdD9wbcjri70j+BenCrN/JXEPKDjhpw4iY7yiNsCGg=="
+  "resolved" "https://registry.npmjs.org/through2-filter/-/through2-filter-2.0.0.tgz"
+  "version" "2.0.0"
+  dependencies:
+    "through2" "~2.0.0"
+    "xtend" "~4.0.0"
+
+"through2-filter@^3.0.0":
+  "integrity" "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA=="
+  "resolved" "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz"
+  "version" "3.0.0"
+  dependencies:
+    "through2" "~2.0.0"
+    "xtend" "~4.0.0"
+
+"through2@^0.6.0":
+  "integrity" "sha512-RkK/CCESdTKQZHdmKICijdKKsCRVHs5KsLZ6pACAmF/1GPUQhonHSXWNERctxEp7RmvjdNbZTL5z9V7nSCXKcg=="
+  "resolved" "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz"
+  "version" "0.6.5"
+  dependencies:
+    "readable-stream" ">=1.0.33-1 <1.1.0-0"
+    "xtend" ">=4.0.0 <4.1.0-0"
+
+"through2@^2.0.0", "through2@^2.0.3", "through2@~2.0.0", "through2@2.X":
   "integrity" "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ=="
   "resolved" "https://registry.npmmirror.com/through2/-/through2-2.0.5.tgz"
   "version" "2.0.5"
@@ -8682,6 +9025,13 @@
   "integrity" "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA=="
   "resolved" "https://registry.npmmirror.com/thunky/-/thunky-1.1.0.tgz"
   "version" "1.1.0"
+
+"tildify@1.2.0":
+  "integrity" "sha512-Y9q1GaV/BO65Z9Yf4NOGMuwt3SGdptkZBnaaKfTQakrDyCLiuO1Kc5wxW4xLdsjzunRtqtOdhekiUFmZbklwYQ=="
+  "resolved" "https://registry.npmjs.org/tildify/-/tildify-1.2.0.tgz"
+  "version" "1.2.0"
+  dependencies:
+    "os-homedir" "^1.0.0"
 
 "time-stamp@^2.0.0":
   "integrity" "sha512-zxke8goJQpBeEgD82CXABeMh0LSJcj7CXEd0OHOg45HgcofF7pxNwZm9+RknpxpDhwN4gFpySkApKfFYfRQnUA=="
@@ -8711,6 +9061,13 @@
   "version" "0.0.33"
   dependencies:
     "os-tmpdir" "~1.0.2"
+
+"to-absolute-glob@^0.1.1":
+  "integrity" "sha512-Vvl5x6zNf9iVG1QTWeknmWrKzZxaeKfIDRibrZCR3b2V/2NlFJuD2HV7P7AVjaKLZNqLPHqyr0jGrW0fTcxCPQ=="
+  "resolved" "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-0.1.1.tgz"
+  "version" "0.1.1"
+  dependencies:
+    "extend-shallow" "^2.0.1"
 
 "to-arraybuffer@^1.0.0":
   "integrity" "sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA=="
@@ -8829,7 +9186,7 @@
   "resolved" "https://registry.npmmirror.com/type/-/type-2.7.2.tgz"
   "version" "2.7.2"
 
-"typedarray@^0.0.6":
+"typedarray@^0.0.6", "typedarray@~0.0.5":
   "integrity" "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA=="
   "resolved" "https://registry.npmmirror.com/typedarray/-/typedarray-0.0.6.tgz"
   "version" "0.0.6"
@@ -8941,6 +9298,14 @@
   "version" "2.0.2"
   dependencies:
     "imurmurhash" "^0.1.4"
+
+"unique-stream@^2.0.2":
+  "integrity" "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A=="
+  "resolved" "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz"
+  "version" "2.3.1"
+  dependencies:
+    "json-stable-stringify-without-jsonify" "^1.0.1"
+    "through2-filter" "^3.0.0"
 
 "unpipe@~1.0.0", "unpipe@1.0.0":
   "integrity" "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ=="
@@ -9063,6 +9428,11 @@
   "resolved" "https://registry.npmmirror.com/uuid/-/uuid-3.4.0.tgz"
   "version" "3.4.0"
 
+"vali-date@^1.0.0":
+  "integrity" "sha512-sgECfZthyaCKW10N0fm27cg8HYTFK5qMWgypqkXMQ4Wbl/zZKx7xZICgcoxIIE+WFAP/MBL2EFwC/YvLxw3Zeg=="
+  "resolved" "https://registry.npmjs.org/vali-date/-/vali-date-1.0.0.tgz"
+  "version" "1.0.0"
+
 "validate-npm-package-license@^3.0.1":
   "integrity" "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew=="
   "resolved" "https://registry.npmmirror.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz"
@@ -9091,6 +9461,38 @@
   "integrity" "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w=="
   "resolved" "https://registry.npmmirror.com/vendors/-/vendors-1.0.4.tgz"
   "version" "1.0.4"
+
+"vinyl-fs@2.4.3":
+  "integrity" "sha512-XxYoy5HpHrVd76tpnI5Vv/+b/xlEVusOmn4LjQ01s2JyiDMNaUm3Rb7Y3xTkRw+YoRBVoUrCs7EAIFNXyIlI8Q=="
+  "resolved" "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-2.4.3.tgz"
+  "version" "2.4.3"
+  dependencies:
+    "duplexify" "^3.2.0"
+    "glob-stream" "^5.3.2"
+    "graceful-fs" "^4.0.0"
+    "gulp-sourcemaps" "^1.5.2"
+    "is-valid-glob" "^0.3.0"
+    "lazystream" "^1.0.0"
+    "lodash.isequal" "^4.0.0"
+    "merge-stream" "^1.0.0"
+    "mkdirp" "^0.5.0"
+    "object-assign" "^4.0.0"
+    "readable-stream" "^2.0.4"
+    "strip-bom" "^2.0.0"
+    "strip-bom-stream" "^1.0.0"
+    "through2" "^2.0.0"
+    "through2-filter" "^2.0.0"
+    "vali-date" "^1.0.0"
+    "vinyl" "^1.0.0"
+
+"vinyl@^1.0.0", "vinyl@1.X":
+  "integrity" "sha512-Ci3wnR2uuSAWFMSglZuB8Z2apBdtOyz8CV7dC6/U1XbltXBC+IuutUkXQISz01P+US2ouBuesSbV6zILZ6BuzQ=="
+  "resolved" "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz"
+  "version" "1.2.0"
+  dependencies:
+    "clone" "^1.0.0"
+    "clone-stats" "^0.0.1"
+    "replace-ext" "0.0.1"
 
 "vm-browserify@^1.0.1":
   "integrity" "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ=="
@@ -9476,6 +9878,11 @@
   dependencies:
     "isexe" "^2.0.0"
 
+"window-size@^0.2.0":
+  "integrity" "sha512-UD7d8HFA2+PZsbKyaOCEy8gMh1oDtHgJh1LfgjQ4zVXmYjAT/kvz3PueITKuqDiIXQe7yzpPnxX3lNc+AhQMyw=="
+  "resolved" "https://registry.npmjs.org/window-size/-/window-size-0.2.0.tgz"
+  "version" "0.2.0"
+
 "window-size@0.1.0":
   "integrity" "sha512-1pTPQDKTdd61ozlKGNCjhNRd+KPmgLSGa3mZTHoOliaGcESD8G1PXhh7c1fgiPjVbNVfgy2Faw4BI8/m0cC8Mg=="
   "resolved" "https://registry.npmmirror.com/window-size/-/window-size-0.1.0.tgz"
@@ -9569,7 +9976,7 @@
   "resolved" "https://registry.npmmirror.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz"
   "version" "11.0.1"
 
-"xtend@^4.0.0", "xtend@~4.0.1":
+"xtend@^4.0.0", "xtend@>=4.0.0 <4.1.0-0", "xtend@~4.0.0", "xtend@~4.0.1":
   "integrity" "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
   "resolved" "https://registry.npmmirror.com/xtend/-/xtend-4.0.2.tgz"
   "version" "4.0.2"
@@ -9603,6 +10010,14 @@
   dependencies:
     "camelcase" "^5.0.0"
     "decamelize" "^1.2.0"
+
+"yargs-parser@^2.4.0":
+  "integrity" "sha512-9pIKIJhnI5tonzG6OnCFlz/yln8xHYcGl+pn3xR0Vzff0vzN1PbNRaelgfgRUwZ3s4i3jvxT9WhmUGL4whnasA=="
+  "resolved" "https://registry.npmjs.org/yargs-parser/-/yargs-parser-2.4.1.tgz"
+  "version" "2.4.1"
+  dependencies:
+    "camelcase" "^3.0.0"
+    "lodash.assign" "^4.0.6"
 
 "yargs-parser@^4.2.0":
   "integrity" "sha512-+QQWqC2xeL0N5/TE+TY6OGEqyNRM+g2/r712PDNYgiCdXYCApXf1vzfmDSLBxfGRwV+moTq/V8FnMI24JCm2Yg=="
@@ -9664,6 +10079,24 @@
     "decamelize" "^1.0.0"
     "window-size" "0.1.0"
 
+"yargs@4.6.0":
+  "integrity" "sha512-KmjJbWBkYiSRUChcOSa4rtBxDXf0j4ISz+tpeNa4LKIBllgKnkemJ3x4yo4Yydp3wPU4/xJTaKTLLZ8V7zhI7A=="
+  "resolved" "https://registry.npmjs.org/yargs/-/yargs-4.6.0.tgz"
+  "version" "4.6.0"
+  dependencies:
+    "camelcase" "^2.0.1"
+    "cliui" "^3.2.0"
+    "decamelize" "^1.1.1"
+    "lodash.assign" "^4.0.3"
+    "os-locale" "^1.4.0"
+    "pkg-conf" "^1.1.2"
+    "read-pkg-up" "^1.0.1"
+    "require-main-filename" "^1.0.1"
+    "string-width" "^1.0.1"
+    "window-size" "^0.2.0"
+    "y18n" "^3.2.1"
+    "yargs-parser" "^2.4.0"
+
 "yargs@6.6.0":
   "integrity" "sha512-6/QWTdisjnu5UHUzQGst+UOEuEVwIzFVGBjq3jMTFNs5WJQsH/X6nMURSaScIdF5txylr1Ao9bvbWiKi2yXbwA=="
   "resolved" "https://registry.npmmirror.com/yargs/-/yargs-6.6.0.tgz"

--
Gitblit v1.9.3