diff --git a/package-lock.json b/package-lock.json
index 9d7652ec68..90404c010f 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1316,7 +1316,6 @@
 			"version": "3.2.0",
 			"resolved": "https://registry.npmjs.org/archive-type/-/archive-type-3.2.0.tgz",
 			"integrity": "sha1-nNnABpV+vpX62tW9YJiUKoE3N/Y=",
-			"optional": true,
 			"requires": {
 				"file-type": "^3.1.0"
 			},
@@ -1324,8 +1323,7 @@
 				"file-type": {
 					"version": "3.9.0",
 					"resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz",
-					"integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek=",
-					"optional": true
+					"integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek="
 				}
 			}
 		},
@@ -1418,8 +1416,7 @@
 		"array-find-index": {
 			"version": "1.0.2",
 			"resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
-			"integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
-			"optional": true
+			"integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E="
 		},
 		"array-map": {
 			"version": "0.0.0",
@@ -2079,7 +2076,7 @@
 		},
 		"browserify-aes": {
 			"version": "1.2.0",
-			"resolved": "http://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
+			"resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
 			"integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
 			"requires": {
 				"buffer-xor": "^1.0.3",
@@ -2113,7 +2110,7 @@
 		},
 		"browserify-rsa": {
 			"version": "4.0.1",
-			"resolved": "http://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz",
+			"resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz",
 			"integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=",
 			"requires": {
 				"bn.js": "^4.1.0",
@@ -2158,7 +2155,7 @@
 		},
 		"buffer": {
 			"version": "4.9.1",
-			"resolved": "http://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz",
+			"resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz",
 			"integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=",
 			"requires": {
 				"base64-js": "^1.0.2",
@@ -2190,8 +2187,7 @@
 		"buffer-crc32": {
 			"version": "0.2.13",
 			"resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
-			"integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=",
-			"optional": true
+			"integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI="
 		},
 		"buffer-equal": {
 			"version": "1.0.0",
@@ -2222,7 +2218,6 @@
 			"version": "1.1.0",
 			"resolved": "https://registry.npmjs.org/buffer-to-vinyl/-/buffer-to-vinyl-1.1.0.tgz",
 			"integrity": "sha1-APFfruOreh3aLN5tkSG//dB7ImI=",
-			"optional": true,
 			"requires": {
 				"file-type": "^3.1.0",
 				"readable-stream": "^2.0.2",
@@ -2233,20 +2228,17 @@
 				"file-type": {
 					"version": "3.9.0",
 					"resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz",
-					"integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek=",
-					"optional": true
+					"integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek="
 				},
 				"isarray": {
 					"version": "1.0.0",
 					"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
-					"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
-					"optional": true
+					"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
 				},
 				"readable-stream": {
 					"version": "2.3.6",
 					"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
 					"integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
-					"optional": true,
 					"requires": {
 						"core-util-is": "~1.0.0",
 						"inherits": "~2.0.3",
@@ -2261,7 +2253,6 @@
 					"version": "1.1.1",
 					"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
 					"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
-					"optional": true,
 					"requires": {
 						"safe-buffer": "~5.1.0"
 					}
@@ -2269,14 +2260,12 @@
 				"uuid": {
 					"version": "2.0.3",
 					"resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz",
-					"integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=",
-					"optional": true
+					"integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho="
 				},
 				"vinyl": {
 					"version": "1.2.0",
 					"resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz",
 					"integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=",
-					"optional": true,
 					"requires": {
 						"clone": "^1.0.0",
 						"clone-stats": "^0.0.1",
@@ -2405,14 +2394,12 @@
 		"camelcase": {
 			"version": "2.1.1",
 			"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
-			"integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
-			"optional": true
+			"integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8="
 		},
 		"camelcase-keys": {
 			"version": "2.1.0",
 			"resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
 			"integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
-			"optional": true,
 			"requires": {
 				"camelcase": "^2.0.0",
 				"map-obj": "^1.0.0"
@@ -2445,8 +2432,7 @@
 		"capture-stack-trace": {
 			"version": "1.0.0",
 			"resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz",
-			"integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0=",
-			"optional": true
+			"integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0="
 		},
 		"caseless": {
 			"version": "0.12.0",
@@ -2457,7 +2443,6 @@
 			"version": "1.2.0",
 			"resolved": "https://registry.npmjs.org/caw/-/caw-1.2.0.tgz",
 			"integrity": "sha1-/7Im/n78VHKI3GLuPpcHPCEtEDQ=",
-			"optional": true,
 			"requires": {
 				"get-proxy": "^1.0.1",
 				"is-obj": "^1.0.0",
@@ -2468,8 +2453,7 @@
 				"object-assign": {
 					"version": "3.0.0",
 					"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz",
-					"integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=",
-					"optional": true
+					"integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I="
 				}
 			}
 		},
@@ -2877,8 +2861,7 @@
 		"co": {
 			"version": "3.1.0",
 			"resolved": "https://registry.npmjs.org/co/-/co-3.1.0.tgz",
-			"integrity": "sha1-TqVOpaCJOBUxheFSEMaNkJK8G3g=",
-			"optional": true
+			"integrity": "sha1-TqVOpaCJOBUxheFSEMaNkJK8G3g="
 		},
 		"co-body": {
 			"version": "6.0.0",
@@ -3204,14 +3187,13 @@
 			"version": "3.0.2",
 			"resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz",
 			"integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=",
-			"optional": true,
 			"requires": {
 				"capture-stack-trace": "^1.0.0"
 			}
 		},
 		"create-hash": {
 			"version": "1.2.0",
-			"resolved": "http://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
+			"resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
 			"integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
 			"requires": {
 				"cipher-base": "^1.0.1",
@@ -3223,7 +3205,7 @@
 		},
 		"create-hmac": {
 			"version": "1.1.7",
-			"resolved": "http://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
+			"resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
 			"integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
 			"requires": {
 				"cipher-base": "^1.0.3",
@@ -3506,7 +3488,6 @@
 			"version": "0.4.1",
 			"resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
 			"integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
-			"optional": true,
 			"requires": {
 				"array-find-index": "^1.0.1"
 			}
@@ -3604,7 +3585,6 @@
 			"version": "3.0.0",
 			"resolved": "https://registry.npmjs.org/decompress/-/decompress-3.0.0.tgz",
 			"integrity": "sha1-rx3VDQbjv8QyRh033hGzjA2ZG+0=",
-			"optional": true,
 			"requires": {
 				"buffer-to-vinyl": "^1.0.0",
 				"concat-stream": "^1.4.6",
@@ -3621,7 +3601,6 @@
 					"version": "2.0.0",
 					"resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
 					"integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
-					"optional": true,
 					"requires": {
 						"arr-flatten": "^1.0.1"
 					}
@@ -3629,14 +3608,12 @@
 				"array-unique": {
 					"version": "0.2.1",
 					"resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
-					"integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=",
-					"optional": true
+					"integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM="
 				},
 				"braces": {
 					"version": "1.8.5",
 					"resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
 					"integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
-					"optional": true,
 					"requires": {
 						"expand-range": "^1.8.1",
 						"preserve": "^0.2.0",
@@ -3647,7 +3624,6 @@
 					"version": "0.1.5",
 					"resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
 					"integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
-					"optional": true,
 					"requires": {
 						"is-posix-bracket": "^0.1.0"
 					}
@@ -3656,7 +3632,6 @@
 					"version": "0.3.2",
 					"resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
 					"integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
-					"optional": true,
 					"requires": {
 						"is-extglob": "^1.0.0"
 					}
@@ -3665,7 +3640,6 @@
 					"version": "5.0.15",
 					"resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
 					"integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
-					"optional": true,
 					"requires": {
 						"inflight": "^1.0.4",
 						"inherits": "2",
@@ -3678,7 +3652,6 @@
 					"version": "5.3.5",
 					"resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-5.3.5.tgz",
 					"integrity": "sha1-pVZlqajM3EGRWofHAeMtTgFvrSI=",
-					"optional": true,
 					"requires": {
 						"extend": "^3.0.0",
 						"glob": "^5.0.3",
@@ -3693,14 +3666,12 @@
 						"isarray": {
 							"version": "0.0.1",
 							"resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
-							"integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
-							"optional": true
+							"integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
 						},
 						"readable-stream": {
 							"version": "1.0.34",
 							"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
 							"integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
-							"optional": true,
 							"requires": {
 								"core-util-is": "~1.0.0",
 								"inherits": "~2.0.1",
@@ -3711,14 +3682,12 @@
 						"string_decoder": {
 							"version": "0.10.31",
 							"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
-							"integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
-							"optional": true
+							"integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
 						},
 						"through2": {
 							"version": "0.6.5",
 							"resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
 							"integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=",
-							"optional": true,
 							"requires": {
 								"readable-stream": ">=1.0.33-1 <1.1.0-0",
 								"xtend": ">=4.0.0 <4.1.0-0"
@@ -3730,7 +3699,6 @@
 					"version": "1.6.0",
 					"resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-1.6.0.tgz",
 					"integrity": "sha1-uG/zSdgBzrVuHZ59x7vLS33uYAw=",
-					"optional": true,
 					"requires": {
 						"convert-source-map": "^1.1.1",
 						"graceful-fs": "^4.1.2",
@@ -3742,14 +3710,12 @@
 				"is-extglob": {
 					"version": "1.0.0",
 					"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
-					"integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
-					"optional": true
+					"integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA="
 				},
 				"is-glob": {
 					"version": "2.0.1",
 					"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
 					"integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
-					"optional": true,
 					"requires": {
 						"is-extglob": "^1.0.0"
 					}
@@ -3757,14 +3723,12 @@
 				"isarray": {
 					"version": "1.0.0",
 					"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
-					"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
-					"optional": true
+					"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
 				},
 				"kind-of": {
 					"version": "3.2.2",
 					"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
 					"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-					"optional": true,
 					"requires": {
 						"is-buffer": "^1.1.5"
 					}
@@ -3773,7 +3737,6 @@
 					"version": "2.3.11",
 					"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
 					"integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
-					"optional": true,
 					"requires": {
 						"arr-diff": "^2.0.0",
 						"array-unique": "^0.2.1",
@@ -3794,7 +3757,6 @@
 					"version": "0.3.0",
 					"resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.3.0.tgz",
 					"integrity": "sha1-cTfmmzKYuzQiR6G77jiByA4v14s=",
-					"optional": true,
 					"requires": {
 						"is-stream": "^1.0.1",
 						"readable-stream": "^2.0.1"
@@ -3804,7 +3766,6 @@
 					"version": "2.3.6",
 					"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
 					"integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
-					"optional": true,
 					"requires": {
 						"core-util-is": "~1.0.0",
 						"inherits": "~2.0.3",
@@ -3819,7 +3780,6 @@
 					"version": "1.1.1",
 					"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
 					"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
-					"optional": true,
 					"requires": {
 						"safe-buffer": "~5.1.0"
 					}
@@ -3828,7 +3788,6 @@
 					"version": "2.0.0",
 					"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
 					"integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
-					"optional": true,
 					"requires": {
 						"is-utf8": "^0.2.0"
 					}
@@ -3837,7 +3796,6 @@
 					"version": "2.2.1",
 					"resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.2.1.tgz",
 					"integrity": "sha1-WqADz76Uxf+GbE59ZouxxNuts2k=",
-					"optional": true,
 					"requires": {
 						"json-stable-stringify": "^1.0.0",
 						"through2-filter": "^2.0.0"
@@ -3847,7 +3805,6 @@
 					"version": "1.2.0",
 					"resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz",
 					"integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=",
-					"optional": true,
 					"requires": {
 						"clone": "^1.0.0",
 						"clone-stats": "^0.0.1",
@@ -3858,7 +3815,6 @@
 					"version": "2.4.4",
 					"resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-2.4.4.tgz",
 					"integrity": "sha1-vm/zJwy1Xf19MGNkDegfJddTIjk=",
-					"optional": true,
 					"requires": {
 						"duplexify": "^3.2.0",
 						"glob-stream": "^5.3.2",
@@ -3893,7 +3849,6 @@
 			"version": "3.1.0",
 			"resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-3.1.0.tgz",
 			"integrity": "sha1-IXx4n5uURQ76rcXF5TeXj8MzxGY=",
-			"optional": true,
 			"requires": {
 				"is-tar": "^1.0.0",
 				"object-assign": "^2.0.0",
@@ -3906,20 +3861,17 @@
 				"clone": {
 					"version": "0.2.0",
 					"resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz",
-					"integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=",
-					"optional": true
+					"integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8="
 				},
 				"object-assign": {
 					"version": "2.1.1",
 					"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz",
-					"integrity": "sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo=",
-					"optional": true
+					"integrity": "sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo="
 				},
 				"readable-stream": {
 					"version": "1.0.34",
 					"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
 					"integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
-					"optional": true,
 					"requires": {
 						"core-util-is": "~1.0.0",
 						"inherits": "~2.0.1",
@@ -3931,7 +3883,6 @@
 					"version": "0.6.5",
 					"resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
 					"integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=",
-					"optional": true,
 					"requires": {
 						"readable-stream": ">=1.0.33-1 <1.1.0-0",
 						"xtend": ">=4.0.0 <4.1.0-0"
@@ -3941,7 +3892,6 @@
 					"version": "0.4.6",
 					"resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz",
 					"integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=",
-					"optional": true,
 					"requires": {
 						"clone": "^0.2.0",
 						"clone-stats": "^0.0.1"
@@ -3953,7 +3903,6 @@
 			"version": "3.1.0",
 			"resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-3.1.0.tgz",
 			"integrity": "sha1-iyOTVoE1X58YnYclag+L3ZbZZm0=",
-			"optional": true,
 			"requires": {
 				"is-bzip2": "^1.0.0",
 				"object-assign": "^2.0.0",
@@ -3967,20 +3916,17 @@
 				"clone": {
 					"version": "0.2.0",
 					"resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz",
-					"integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=",
-					"optional": true
+					"integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8="
 				},
 				"object-assign": {
 					"version": "2.1.1",
 					"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz",
-					"integrity": "sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo=",
-					"optional": true
+					"integrity": "sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo="
 				},
 				"readable-stream": {
 					"version": "1.0.34",
 					"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
 					"integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
-					"optional": true,
 					"requires": {
 						"core-util-is": "~1.0.0",
 						"inherits": "~2.0.1",
@@ -3992,7 +3938,6 @@
 					"version": "0.6.5",
 					"resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
 					"integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=",
-					"optional": true,
 					"requires": {
 						"readable-stream": ">=1.0.33-1 <1.1.0-0",
 						"xtend": ">=4.0.0 <4.1.0-0"
@@ -4002,7 +3947,6 @@
 					"version": "0.4.6",
 					"resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz",
 					"integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=",
-					"optional": true,
 					"requires": {
 						"clone": "^0.2.0",
 						"clone-stats": "^0.0.1"
@@ -4014,7 +3958,6 @@
 			"version": "3.1.0",
 			"resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-3.1.0.tgz",
 			"integrity": "sha1-ssE9+YFmJomRtxXWRH9kLpaW9aA=",
-			"optional": true,
 			"requires": {
 				"is-gzip": "^1.0.0",
 				"object-assign": "^2.0.0",
@@ -4027,20 +3970,17 @@
 				"clone": {
 					"version": "0.2.0",
 					"resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz",
-					"integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=",
-					"optional": true
+					"integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8="
 				},
 				"object-assign": {
 					"version": "2.1.1",
 					"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz",
-					"integrity": "sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo=",
-					"optional": true
+					"integrity": "sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo="
 				},
 				"readable-stream": {
 					"version": "1.0.34",
 					"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
 					"integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
-					"optional": true,
 					"requires": {
 						"core-util-is": "~1.0.0",
 						"inherits": "~2.0.1",
@@ -4052,7 +3992,6 @@
 					"version": "0.6.5",
 					"resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
 					"integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=",
-					"optional": true,
 					"requires": {
 						"readable-stream": ">=1.0.33-1 <1.1.0-0",
 						"xtend": ">=4.0.0 <4.1.0-0"
@@ -4062,7 +4001,6 @@
 					"version": "0.4.6",
 					"resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz",
 					"integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=",
-					"optional": true,
 					"requires": {
 						"clone": "^0.2.0",
 						"clone-stats": "^0.0.1"
@@ -4074,7 +4012,6 @@
 			"version": "3.4.0",
 			"resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-3.4.0.tgz",
 			"integrity": "sha1-YUdbQVIGa74/7hL51inRX+ZHjus=",
-			"optional": true,
 			"requires": {
 				"is-zip": "^1.0.0",
 				"read-all-stream": "^3.0.0",
@@ -4089,7 +4026,6 @@
 					"version": "1.2.0",
 					"resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz",
 					"integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=",
-					"optional": true,
 					"requires": {
 						"clone": "^1.0.0",
 						"clone-stats": "^0.0.1",
@@ -4268,7 +4204,7 @@
 		},
 		"diffie-hellman": {
 			"version": "5.0.3",
-			"resolved": "http://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
+			"resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
 			"integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==",
 			"requires": {
 				"bn.js": "^4.1.0",
@@ -4375,7 +4311,6 @@
 			"version": "4.4.3",
 			"resolved": "https://registry.npmjs.org/download/-/download-4.4.3.tgz",
 			"integrity": "sha1-qlX9rTktldS2jowr4D4MKqIbqaw=",
-			"optional": true,
 			"requires": {
 				"caw": "^1.0.1",
 				"concat-stream": "^1.4.7",
@@ -4398,7 +4333,6 @@
 					"version": "2.0.0",
 					"resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
 					"integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
-					"optional": true,
 					"requires": {
 						"arr-flatten": "^1.0.1"
 					}
@@ -4406,14 +4340,12 @@
 				"array-unique": {
 					"version": "0.2.1",
 					"resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
-					"integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=",
-					"optional": true
+					"integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM="
 				},
 				"braces": {
 					"version": "1.8.5",
 					"resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
 					"integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
-					"optional": true,
 					"requires": {
 						"expand-range": "^1.8.1",
 						"preserve": "^0.2.0",
@@ -4424,7 +4356,6 @@
 					"version": "0.1.5",
 					"resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
 					"integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
-					"optional": true,
 					"requires": {
 						"is-posix-bracket": "^0.1.0"
 					}
@@ -4433,7 +4364,6 @@
 					"version": "0.3.2",
 					"resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
 					"integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
-					"optional": true,
 					"requires": {
 						"is-extglob": "^1.0.0"
 					}
@@ -4442,7 +4372,6 @@
 					"version": "5.0.15",
 					"resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
 					"integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
-					"optional": true,
 					"requires": {
 						"inflight": "^1.0.4",
 						"inherits": "2",
@@ -4455,7 +4384,6 @@
 					"version": "5.3.5",
 					"resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-5.3.5.tgz",
 					"integrity": "sha1-pVZlqajM3EGRWofHAeMtTgFvrSI=",
-					"optional": true,
 					"requires": {
 						"extend": "^3.0.0",
 						"glob": "^5.0.3",
@@ -4470,14 +4398,12 @@
 						"isarray": {
 							"version": "0.0.1",
 							"resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
-							"integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
-							"optional": true
+							"integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
 						},
 						"readable-stream": {
 							"version": "1.0.34",
 							"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
 							"integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
-							"optional": true,
 							"requires": {
 								"core-util-is": "~1.0.0",
 								"inherits": "~2.0.1",
@@ -4488,14 +4414,12 @@
 						"string_decoder": {
 							"version": "0.10.31",
 							"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
-							"integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
-							"optional": true
+							"integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
 						},
 						"through2": {
 							"version": "0.6.5",
 							"resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
 							"integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=",
-							"optional": true,
 							"requires": {
 								"readable-stream": ">=1.0.33-1 <1.1.0-0",
 								"xtend": ">=4.0.0 <4.1.0-0"
@@ -4507,7 +4431,6 @@
 					"version": "1.6.0",
 					"resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-1.6.0.tgz",
 					"integrity": "sha1-uG/zSdgBzrVuHZ59x7vLS33uYAw=",
-					"optional": true,
 					"requires": {
 						"convert-source-map": "^1.1.1",
 						"graceful-fs": "^4.1.2",
@@ -4519,14 +4442,12 @@
 				"is-extglob": {
 					"version": "1.0.0",
 					"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
-					"integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
-					"optional": true
+					"integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA="
 				},
 				"is-glob": {
 					"version": "2.0.1",
 					"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
 					"integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
-					"optional": true,
 					"requires": {
 						"is-extglob": "^1.0.0"
 					}
@@ -4534,14 +4455,12 @@
 				"isarray": {
 					"version": "1.0.0",
 					"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
-					"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
-					"optional": true
+					"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
 				},
 				"kind-of": {
 					"version": "3.2.2",
 					"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
 					"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-					"optional": true,
 					"requires": {
 						"is-buffer": "^1.1.5"
 					}
@@ -4550,7 +4469,6 @@
 					"version": "2.3.11",
 					"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
 					"integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
-					"optional": true,
 					"requires": {
 						"arr-diff": "^2.0.0",
 						"array-unique": "^0.2.1",
@@ -4571,7 +4489,6 @@
 					"version": "0.3.0",
 					"resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.3.0.tgz",
 					"integrity": "sha1-cTfmmzKYuzQiR6G77jiByA4v14s=",
-					"optional": true,
 					"requires": {
 						"is-stream": "^1.0.1",
 						"readable-stream": "^2.0.1"
@@ -4581,7 +4498,6 @@
 					"version": "2.3.6",
 					"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
 					"integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
-					"optional": true,
 					"requires": {
 						"core-util-is": "~1.0.0",
 						"inherits": "~2.0.3",
@@ -4596,7 +4512,6 @@
 					"version": "1.1.1",
 					"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
 					"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
-					"optional": true,
 					"requires": {
 						"safe-buffer": "~5.1.0"
 					}
@@ -4605,7 +4520,6 @@
 					"version": "2.0.0",
 					"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
 					"integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
-					"optional": true,
 					"requires": {
 						"is-utf8": "^0.2.0"
 					}
@@ -4614,7 +4528,6 @@
 					"version": "2.2.1",
 					"resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.2.1.tgz",
 					"integrity": "sha1-WqADz76Uxf+GbE59ZouxxNuts2k=",
-					"optional": true,
 					"requires": {
 						"json-stable-stringify": "^1.0.0",
 						"through2-filter": "^2.0.0"
@@ -4624,7 +4537,6 @@
 					"version": "1.2.0",
 					"resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz",
 					"integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=",
-					"optional": true,
 					"requires": {
 						"clone": "^1.0.0",
 						"clone-stats": "^0.0.1",
@@ -4635,7 +4547,6 @@
 					"version": "2.4.4",
 					"resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-2.4.4.tgz",
 					"integrity": "sha1-vm/zJwy1Xf19MGNkDegfJddTIjk=",
-					"optional": true,
 					"requires": {
 						"duplexify": "^3.2.0",
 						"glob-stream": "^5.3.2",
@@ -4718,7 +4629,6 @@
 			"version": "1.1.1",
 			"resolved": "https://registry.npmjs.org/each-async/-/each-async-1.1.1.tgz",
 			"integrity": "sha1-3uUim98KtrogEqOV4bhpq/iBNHM=",
-			"optional": true,
 			"requires": {
 				"onetime": "^1.0.0",
 				"set-immediate-shim": "^1.0.0"
@@ -4727,8 +4637,7 @@
 				"onetime": {
 					"version": "1.1.0",
 					"resolved": "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
-					"integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=",
-					"optional": true
+					"integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k="
 				}
 			}
 		},
@@ -5246,7 +5155,7 @@
 		},
 		"events": {
 			"version": "1.1.1",
-			"resolved": "http://registry.npmjs.org/events/-/events-1.1.1.tgz",
+			"resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz",
 			"integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ="
 		},
 		"evp_bytestokey": {
@@ -5333,11 +5242,6 @@
 				"meow": "^3.1.0"
 			}
 		},
-		"exif-js": {
-			"version": "2.3.0",
-			"resolved": "https://registry.npmjs.org/exif-js/-/exif-js-2.3.0.tgz",
-			"integrity": "sha1-nRCBm/Vx+HOBPnZAJBJVq5zhqBQ="
-		},
 		"exit-on-epipe": {
 			"version": "1.0.1",
 			"resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz",
@@ -5392,7 +5296,6 @@
 			"version": "1.8.2",
 			"resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
 			"integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
-			"optional": true,
 			"requires": {
 				"fill-range": "^2.1.0"
 			},
@@ -5401,7 +5304,6 @@
 					"version": "2.2.4",
 					"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz",
 					"integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==",
-					"optional": true,
 					"requires": {
 						"is-number": "^2.1.0",
 						"isobject": "^2.0.0",
@@ -5414,7 +5316,6 @@
 					"version": "2.1.0",
 					"resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
 					"integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
-					"optional": true,
 					"requires": {
 						"kind-of": "^3.0.2"
 					}
@@ -5422,14 +5323,12 @@
 				"isarray": {
 					"version": "1.0.0",
 					"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
-					"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
-					"optional": true
+					"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
 				},
 				"isobject": {
 					"version": "2.1.0",
 					"resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
 					"integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
-					"optional": true,
 					"requires": {
 						"isarray": "1.0.0"
 					}
@@ -5438,7 +5337,6 @@
 					"version": "3.2.2",
 					"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
 					"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-					"optional": true,
 					"requires": {
 						"is-buffer": "^1.1.5"
 					}
@@ -5595,7 +5493,6 @@
 			"version": "1.1.0",
 			"resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
 			"integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=",
-			"optional": true,
 			"requires": {
 				"pend": "~1.2.0"
 			}
@@ -5646,20 +5543,17 @@
 		"filename-regex": {
 			"version": "2.0.1",
 			"resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
-			"integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=",
-			"optional": true
+			"integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY="
 		},
 		"filename-reserved-regex": {
 			"version": "1.0.0",
 			"resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-1.0.0.tgz",
-			"integrity": "sha1-5hz4BfDeHJhFZ9A4bcXfUO5a9+Q=",
-			"optional": true
+			"integrity": "sha1-5hz4BfDeHJhFZ9A4bcXfUO5a9+Q="
 		},
 		"filenamify": {
 			"version": "1.2.1",
 			"resolved": "https://registry.npmjs.org/filenamify/-/filenamify-1.2.1.tgz",
 			"integrity": "sha1-qfL/0RxQO+0wABUCknI3jx8TZaU=",
-			"optional": true,
 			"requires": {
 				"filename-reserved-regex": "^1.0.0",
 				"strip-outer": "^1.0.0",
@@ -5706,7 +5600,6 @@
 			"version": "1.1.2",
 			"resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
 			"integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
-			"optional": true,
 			"requires": {
 				"path-exists": "^2.0.0",
 				"pinkie-promise": "^2.0.0"
@@ -5878,7 +5771,7 @@
 				},
 				"readable-stream": {
 					"version": "2.3.6",
-					"resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+					"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
 					"integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
 					"requires": {
 						"core-util-is": "~1.0.0",
@@ -5988,13 +5881,11 @@
 				},
 				"balanced-match": {
 					"version": "1.0.0",
-					"bundled": true,
-					"optional": true
+					"bundled": true
 				},
 				"brace-expansion": {
 					"version": "1.1.11",
 					"bundled": true,
-					"optional": true,
 					"requires": {
 						"balanced-match": "^1.0.0",
 						"concat-map": "0.0.1"
@@ -6007,18 +5898,15 @@
 				},
 				"code-point-at": {
 					"version": "1.1.0",
-					"bundled": true,
-					"optional": true
+					"bundled": true
 				},
 				"concat-map": {
 					"version": "0.0.1",
-					"bundled": true,
-					"optional": true
+					"bundled": true
 				},
 				"console-control-strings": {
 					"version": "1.1.0",
-					"bundled": true,
-					"optional": true
+					"bundled": true
 				},
 				"core-util-is": {
 					"version": "1.0.2",
@@ -6121,8 +6009,7 @@
 				},
 				"inherits": {
 					"version": "2.0.3",
-					"bundled": true,
-					"optional": true
+					"bundled": true
 				},
 				"ini": {
 					"version": "1.3.5",
@@ -6132,7 +6019,6 @@
 				"is-fullwidth-code-point": {
 					"version": "1.0.0",
 					"bundled": true,
-					"optional": true,
 					"requires": {
 						"number-is-nan": "^1.0.0"
 					}
@@ -6145,20 +6031,17 @@
 				"minimatch": {
 					"version": "3.0.4",
 					"bundled": true,
-					"optional": true,
 					"requires": {
 						"brace-expansion": "^1.1.7"
 					}
 				},
 				"minimist": {
 					"version": "0.0.8",
-					"bundled": true,
-					"optional": true
+					"bundled": true
 				},
 				"minipass": {
 					"version": "2.2.4",
 					"bundled": true,
-					"optional": true,
 					"requires": {
 						"safe-buffer": "^5.1.1",
 						"yallist": "^3.0.0"
@@ -6175,7 +6058,6 @@
 				"mkdirp": {
 					"version": "0.5.1",
 					"bundled": true,
-					"optional": true,
 					"requires": {
 						"minimist": "0.0.8"
 					}
@@ -6248,8 +6130,7 @@
 				},
 				"number-is-nan": {
 					"version": "1.0.1",
-					"bundled": true,
-					"optional": true
+					"bundled": true
 				},
 				"object-assign": {
 					"version": "4.1.1",
@@ -6259,7 +6140,6 @@
 				"once": {
 					"version": "1.4.0",
 					"bundled": true,
-					"optional": true,
 					"requires": {
 						"wrappy": "1"
 					}
@@ -6365,7 +6245,6 @@
 				"string-width": {
 					"version": "1.0.2",
 					"bundled": true,
-					"optional": true,
 					"requires": {
 						"code-point-at": "^1.0.0",
 						"is-fullwidth-code-point": "^1.0.0",
@@ -6509,7 +6388,6 @@
 			"version": "1.1.0",
 			"resolved": "https://registry.npmjs.org/get-proxy/-/get-proxy-1.1.0.tgz",
 			"integrity": "sha1-iUhUSRvFkbDxR9euVw9cZ4tyVus=",
-			"optional": true,
 			"requires": {
 				"rc": "^1.1.2"
 			}
@@ -6517,8 +6395,7 @@
 		"get-stdin": {
 			"version": "4.0.1",
 			"resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
-			"integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
-			"optional": true
+			"integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4="
 		},
 		"get-stream": {
 			"version": "3.0.0",
@@ -6571,7 +6448,6 @@
 			"version": "0.3.0",
 			"resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",
 			"integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
-			"optional": true,
 			"requires": {
 				"glob-parent": "^2.0.0",
 				"is-glob": "^2.0.0"
@@ -6581,7 +6457,6 @@
 					"version": "2.0.0",
 					"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
 					"integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
-					"optional": true,
 					"requires": {
 						"is-glob": "^2.0.0"
 					}
@@ -6589,14 +6464,12 @@
 				"is-extglob": {
 					"version": "1.0.0",
 					"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
-					"integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
-					"optional": true
+					"integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA="
 				},
 				"is-glob": {
 					"version": "2.0.1",
 					"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
 					"integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
-					"optional": true,
 					"requires": {
 						"is-extglob": "^1.0.0"
 					}
@@ -6785,7 +6658,6 @@
 			"version": "5.7.1",
 			"resolved": "https://registry.npmjs.org/got/-/got-5.7.1.tgz",
 			"integrity": "sha1-X4FjWmHkplifGAVp6k44FoClHzU=",
-			"optional": true,
 			"requires": {
 				"create-error-class": "^3.0.1",
 				"duplexer2": "^0.1.4",
@@ -6808,7 +6680,6 @@
 					"version": "0.1.4",
 					"resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
 					"integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=",
-					"optional": true,
 					"requires": {
 						"readable-stream": "^2.0.2"
 					}
@@ -6816,14 +6687,12 @@
 				"isarray": {
 					"version": "1.0.0",
 					"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
-					"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
-					"optional": true
+					"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
 				},
 				"readable-stream": {
 					"version": "2.3.6",
 					"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
 					"integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
-					"optional": true,
 					"requires": {
 						"core-util-is": "~1.0.0",
 						"inherits": "~2.0.3",
@@ -6838,7 +6707,6 @@
 					"version": "1.1.1",
 					"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
 					"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
-					"optional": true,
 					"requires": {
 						"safe-buffer": "~5.1.0"
 					}
@@ -6853,8 +6721,7 @@
 		"graceful-readlink": {
 			"version": "1.0.1",
 			"resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
-			"integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=",
-			"optional": true
+			"integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU="
 		},
 		"growl": {
 			"version": "1.10.5",
@@ -6926,7 +6793,6 @@
 			"version": "1.2.0",
 			"resolved": "https://registry.npmjs.org/gulp-decompress/-/gulp-decompress-1.2.0.tgz",
 			"integrity": "sha1-jutlpeAV+O2FMsr+KEVJYGJvDcc=",
-			"optional": true,
 			"requires": {
 				"archive-type": "^3.0.0",
 				"decompress": "^3.0.0",
@@ -6937,14 +6803,12 @@
 				"isarray": {
 					"version": "1.0.0",
 					"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
-					"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
-					"optional": true
+					"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
 				},
 				"readable-stream": {
 					"version": "2.3.6",
 					"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
 					"integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
-					"optional": true,
 					"requires": {
 						"core-util-is": "~1.0.0",
 						"inherits": "~2.0.3",
@@ -6959,7 +6823,6 @@
 					"version": "1.1.1",
 					"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
 					"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
-					"optional": true,
 					"requires": {
 						"safe-buffer": "~5.1.0"
 					}
@@ -7692,11 +7555,6 @@
 			"resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz",
 			"integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0="
 		},
-		"highlight.js": {
-			"version": "9.13.1",
-			"resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.13.1.tgz",
-			"integrity": "sha512-Sc28JNQNDzaH6PORtRLMvif9RSn1mYuOoX3omVjnb0+HbpPygU2ALBI0R/wsiqCb4/fcp07Gdo8g+fhtFrQl6A=="
-		},
 		"highlightjs": {
 			"version": "9.10.0",
 			"resolved": "https://registry.npmjs.org/highlightjs/-/highlightjs-9.10.0.tgz",
@@ -8130,7 +7988,6 @@
 			"version": "2.1.0",
 			"resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
 			"integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
-			"optional": true,
 			"requires": {
 				"repeating": "^2.0.0"
 			}
@@ -8476,8 +8333,7 @@
 		"is-bzip2": {
 			"version": "1.0.0",
 			"resolved": "https://registry.npmjs.org/is-bzip2/-/is-bzip2-1.0.0.tgz",
-			"integrity": "sha1-XuWOqlounIDiFAe+3yOuWsCRs/w=",
-			"optional": true
+			"integrity": "sha1-XuWOqlounIDiFAe+3yOuWsCRs/w="
 		},
 		"is-callable": {
 			"version": "1.1.4",
@@ -8527,14 +8383,12 @@
 		"is-dotfile": {
 			"version": "1.0.3",
 			"resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz",
-			"integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=",
-			"optional": true
+			"integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE="
 		},
 		"is-equal-shallow": {
 			"version": "0.1.3",
 			"resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz",
 			"integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
-			"optional": true,
 			"requires": {
 				"is-primitive": "^2.0.0"
 			}
@@ -8569,7 +8423,6 @@
 			"version": "1.0.2",
 			"resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
 			"integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
-			"optional": true,
 			"requires": {
 				"number-is-nan": "^1.0.0"
 			}
@@ -8601,8 +8454,7 @@
 		"is-gzip": {
 			"version": "1.0.0",
 			"resolved": "https://registry.npmjs.org/is-gzip/-/is-gzip-1.0.0.tgz",
-			"integrity": "sha1-bKiwe5nHeZgCWQDlVc7Y7YCHmoM=",
-			"optional": true
+			"integrity": "sha1-bKiwe5nHeZgCWQDlVc7Y7YCHmoM="
 		},
 		"is-ip": {
 			"version": "2.0.0",
@@ -8628,8 +8480,7 @@
 		"is-natural-number": {
 			"version": "2.1.1",
 			"resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-2.1.1.tgz",
-			"integrity": "sha1-fUxXKDd+84bD4ZSpkRv1fG3DNec=",
-			"optional": true
+			"integrity": "sha1-fUxXKDd+84bD4ZSpkRv1fG3DNec="
 		},
 		"is-negated-glob": {
 			"version": "1.0.0",
@@ -8710,14 +8561,12 @@
 		"is-posix-bracket": {
 			"version": "0.1.1",
 			"resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz",
-			"integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=",
-			"optional": true
+			"integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q="
 		},
 		"is-primitive": {
 			"version": "2.0.0",
 			"resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz",
-			"integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=",
-			"optional": true
+			"integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU="
 		},
 		"is-promise": {
 			"version": "2.1.0",
@@ -8727,8 +8576,7 @@
 		"is-redirect": {
 			"version": "1.0.0",
 			"resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz",
-			"integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=",
-			"optional": true
+			"integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ="
 		},
 		"is-regex": {
 			"version": "1.0.4",
@@ -8754,8 +8602,7 @@
 		"is-retry-allowed": {
 			"version": "1.1.0",
 			"resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz",
-			"integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=",
-			"optional": true
+			"integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ="
 		},
 		"is-root": {
 			"version": "2.0.0",
@@ -8783,8 +8630,7 @@
 		"is-tar": {
 			"version": "1.0.0",
 			"resolved": "https://registry.npmjs.org/is-tar/-/is-tar-1.0.0.tgz",
-			"integrity": "sha1-L2suF5LB9bs2UZrKqdZcDSb+hT0=",
-			"optional": true
+			"integrity": "sha1-L2suF5LB9bs2UZrKqdZcDSb+hT0="
 		},
 		"is-typedarray": {
 			"version": "1.0.0",
@@ -8812,8 +8658,7 @@
 		"is-valid-glob": {
 			"version": "0.3.0",
 			"resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-0.3.0.tgz",
-			"integrity": "sha1-1LVcafUYhvm2XHDWwmItN+KfSP4=",
-			"optional": true
+			"integrity": "sha1-1LVcafUYhvm2XHDWwmItN+KfSP4="
 		},
 		"is-whitespace": {
 			"version": "0.3.0",
@@ -8828,8 +8673,7 @@
 		"is-zip": {
 			"version": "1.0.0",
 			"resolved": "https://registry.npmjs.org/is-zip/-/is-zip-1.0.0.tgz",
-			"integrity": "sha1-R7Co/004p2QxzP2ZqOFaTIa6IyU=",
-			"optional": true
+			"integrity": "sha1-R7Co/004p2QxzP2ZqOFaTIa6IyU="
 		},
 		"isarray": {
 			"version": "0.0.1",
@@ -9510,7 +9354,6 @@
 			"version": "1.1.0",
 			"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
 			"integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
-			"optional": true,
 			"requires": {
 				"graceful-fs": "^4.1.2",
 				"parse-json": "^2.2.0",
@@ -9523,7 +9366,6 @@
 					"version": "2.0.0",
 					"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
 					"integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
-					"optional": true,
 					"requires": {
 						"is-utf8": "^0.2.0"
 					}
@@ -9723,8 +9565,7 @@
 		"lodash.isequal": {
 			"version": "4.5.0",
 			"resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
-			"integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=",
-			"optional": true
+			"integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA="
 		},
 		"lodash.isfinite": {
 			"version": "3.3.2",
@@ -9877,7 +9718,6 @@
 			"version": "1.6.0",
 			"resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
 			"integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
-			"optional": true,
 			"requires": {
 				"currently-unhandled": "^0.4.1",
 				"signal-exit": "^3.0.0"
@@ -9891,8 +9731,7 @@
 		"lowercase-keys": {
 			"version": "1.0.1",
 			"resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
-			"integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==",
-			"optional": true
+			"integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA=="
 		},
 		"lpad-align": {
 			"version": "1.1.2",
@@ -9971,8 +9810,7 @@
 		"map-obj": {
 			"version": "1.0.1",
 			"resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
-			"integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
-			"optional": true
+			"integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0="
 		},
 		"map-stream": {
 			"version": "0.0.7",
@@ -10000,8 +9838,7 @@
 		"math-random": {
 			"version": "1.0.1",
 			"resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz",
-			"integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=",
-			"optional": true
+			"integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w="
 		},
 		"md5.js": {
 			"version": "1.3.5",
@@ -10102,7 +9939,6 @@
 			"version": "3.7.0",
 			"resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
 			"integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
-			"optional": true,
 			"requires": {
 				"camelcase-keys": "^2.0.0",
 				"decamelize": "^1.1.2",
@@ -10136,7 +9972,6 @@
 			"version": "1.0.1",
 			"resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz",
 			"integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=",
-			"optional": true,
 			"requires": {
 				"readable-stream": "^2.0.1"
 			},
@@ -10144,14 +9979,12 @@
 				"isarray": {
 					"version": "1.0.0",
 					"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
-					"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
-					"optional": true
+					"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
 				},
 				"readable-stream": {
 					"version": "2.3.6",
 					"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
 					"integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
-					"optional": true,
 					"requires": {
 						"core-util-is": "~1.0.0",
 						"inherits": "~2.0.3",
@@ -10166,7 +9999,6 @@
 					"version": "1.1.1",
 					"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
 					"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
-					"optional": true,
 					"requires": {
 						"safe-buffer": "~5.1.0"
 					}
@@ -10791,7 +10623,7 @@
 				},
 				"readable-stream": {
 					"version": "2.3.6",
-					"resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+					"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
 					"integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
 					"requires": {
 						"core-util-is": "~1.0.0",
@@ -10821,8 +10653,7 @@
 		"node-status-codes": {
 			"version": "1.0.0",
 			"resolved": "https://registry.npmjs.org/node-status-codes/-/node-status-codes-1.0.0.tgz",
-			"integrity": "sha1-WuVUHQJGRdMqWPzdyc7s6nrjrC8=",
-			"optional": true
+			"integrity": "sha1-WuVUHQJGRdMqWPzdyc7s6nrjrC8="
 		},
 		"nomnom": {
 			"version": "1.8.1",
@@ -11063,7 +10894,6 @@
 			"version": "2.0.1",
 			"resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
 			"integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=",
-			"optional": true,
 			"requires": {
 				"for-own": "^0.1.4",
 				"is-extendable": "^0.1.1"
@@ -11073,7 +10903,6 @@
 					"version": "0.1.5",
 					"resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
 					"integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
-					"optional": true,
 					"requires": {
 						"for-in": "^1.0.1"
 					}
@@ -11312,7 +11141,7 @@
 				},
 				"readable-stream": {
 					"version": "2.3.6",
-					"resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+					"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
 					"integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
 					"requires": {
 						"core-util-is": "~1.0.0",
@@ -11344,7 +11173,7 @@
 		},
 		"parse-asn1": {
 			"version": "5.1.1",
-			"resolved": "http://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.1.tgz",
+			"resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.1.tgz",
 			"integrity": "sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw==",
 			"requires": {
 				"asn1.js": "^4.0.0",
@@ -11380,7 +11209,6 @@
 			"version": "3.0.4",
 			"resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
 			"integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
-			"optional": true,
 			"requires": {
 				"glob-base": "^0.3.0",
 				"is-dotfile": "^1.0.0",
@@ -11391,14 +11219,12 @@
 				"is-extglob": {
 					"version": "1.0.0",
 					"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
-					"integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
-					"optional": true
+					"integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA="
 				},
 				"is-glob": {
 					"version": "2.0.1",
 					"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
 					"integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
-					"optional": true,
 					"requires": {
 						"is-extglob": "^1.0.0"
 					}
@@ -11452,7 +11278,6 @@
 			"version": "2.1.0",
 			"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
 			"integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
-			"optional": true,
 			"requires": {
 				"pinkie-promise": "^2.0.0"
 			}
@@ -11502,7 +11327,6 @@
 			"version": "1.1.0",
 			"resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
 			"integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
-			"optional": true,
 			"requires": {
 				"graceful-fs": "^4.1.2",
 				"pify": "^2.0.0",
@@ -11529,8 +11353,7 @@
 		"pend": {
 			"version": "1.2.0",
 			"resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
-			"integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=",
-			"optional": true
+			"integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA="
 		},
 		"performance-now": {
 			"version": "2.1.0",
@@ -13367,8 +13190,7 @@
 		"preserve": {
 			"version": "0.2.0",
 			"resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
-			"integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=",
-			"optional": true
+			"integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks="
 		},
 		"prettier": {
 			"version": "1.14.2",
@@ -13918,7 +13740,6 @@
 			"version": "3.1.0",
 			"resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.0.tgz",
 			"integrity": "sha512-KnGPVE0lo2WoXxIZ7cPR8YBpiol4gsSuOwDSg410oHh80ZMp5EiypNqL2K4Z77vJn6lB5rap7IkAmcUlalcnBQ==",
-			"optional": true,
 			"requires": {
 				"is-number": "^4.0.0",
 				"kind-of": "^6.0.0",
@@ -13928,8 +13749,7 @@
 				"is-number": {
 					"version": "4.0.0",
 					"resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz",
-					"integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==",
-					"optional": true
+					"integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ=="
 				}
 			}
 		},
@@ -13999,7 +13819,6 @@
 			"version": "3.1.0",
 			"resolved": "https://registry.npmjs.org/read-all-stream/-/read-all-stream-3.1.0.tgz",
 			"integrity": "sha1-NcPhd/IHjveJ7kv6+kNzB06u9Po=",
-			"optional": true,
 			"requires": {
 				"pinkie-promise": "^2.0.0",
 				"readable-stream": "^2.0.0"
@@ -14008,14 +13827,12 @@
 				"isarray": {
 					"version": "1.0.0",
 					"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
-					"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
-					"optional": true
+					"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
 				},
 				"readable-stream": {
 					"version": "2.3.6",
 					"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
 					"integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
-					"optional": true,
 					"requires": {
 						"core-util-is": "~1.0.0",
 						"inherits": "~2.0.3",
@@ -14030,7 +13847,6 @@
 					"version": "1.1.1",
 					"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
 					"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
-					"optional": true,
 					"requires": {
 						"safe-buffer": "~5.1.0"
 					}
@@ -14041,7 +13857,6 @@
 			"version": "1.1.0",
 			"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
 			"integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
-			"optional": true,
 			"requires": {
 				"load-json-file": "^1.0.0",
 				"normalize-package-data": "^2.3.2",
@@ -14052,7 +13867,6 @@
 			"version": "1.0.1",
 			"resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
 			"integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
-			"optional": true,
 			"requires": {
 				"find-up": "^1.0.0",
 				"read-pkg": "^1.0.0"
@@ -14086,7 +13900,7 @@
 				},
 				"readable-stream": {
 					"version": "2.3.6",
-					"resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+					"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
 					"integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
 					"requires": {
 						"core-util-is": "~1.0.0",
@@ -14134,7 +13948,6 @@
 			"version": "1.0.0",
 			"resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
 			"integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
-			"optional": true,
 			"requires": {
 				"indent-string": "^2.1.0",
 				"strip-indent": "^1.0.1"
@@ -14206,7 +14019,6 @@
 			"version": "0.4.4",
 			"resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz",
 			"integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==",
-			"optional": true,
 			"requires": {
 				"is-equal-shallow": "^0.1.3"
 			}
@@ -14291,7 +14103,6 @@
 			"version": "2.0.1",
 			"resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
 			"integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
-			"optional": true,
 			"requires": {
 				"is-finite": "^1.0.0"
 			}
@@ -14688,7 +14499,6 @@
 			"version": "1.0.5",
 			"resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.5.tgz",
 			"integrity": "sha1-z+kXyz0nS8/6x5J1ivUxc+sfq9w=",
-			"optional": true,
 			"requires": {
 				"commander": "~2.8.1"
 			},
@@ -14697,7 +14507,6 @@
 					"version": "2.8.1",
 					"resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz",
 					"integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=",
-					"optional": true,
 					"requires": {
 						"graceful-readlink": ">= 1.0.0"
 					}
@@ -14742,8 +14551,7 @@
 		"set-immediate-shim": {
 			"version": "1.0.1",
 			"resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz",
-			"integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=",
-			"optional": true
+			"integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E="
 		},
 		"set-value": {
 			"version": "2.0.0",
@@ -14778,7 +14586,7 @@
 		},
 		"sha.js": {
 			"version": "2.4.11",
-			"resolved": "http://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
+			"resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
 			"integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
 			"requires": {
 				"inherits": "^2.0.1",
@@ -15408,8 +15216,7 @@
 		"stat-mode": {
 			"version": "0.2.2",
 			"resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-0.2.2.tgz",
-			"integrity": "sha1-5sgLYjEj19gM8TLOU480YokHJQI=",
-			"optional": true
+			"integrity": "sha1-5sgLYjEj19gM8TLOU480YokHJQI="
 		},
 		"static-extend": {
 			"version": "0.1.2",
@@ -15456,7 +15263,7 @@
 				},
 				"readable-stream": {
 					"version": "2.3.6",
-					"resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+					"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
 					"integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
 					"requires": {
 						"core-util-is": "~1.0.0",
@@ -15482,7 +15289,6 @@
 			"version": "1.1.1",
 			"resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz",
 			"integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=",
-			"optional": true,
 			"requires": {
 				"duplexer2": "~0.1.0",
 				"readable-stream": "^2.0.2"
@@ -15492,7 +15298,6 @@
 					"version": "0.1.4",
 					"resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
 					"integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=",
-					"optional": true,
 					"requires": {
 						"readable-stream": "^2.0.2"
 					}
@@ -15500,14 +15305,12 @@
 				"isarray": {
 					"version": "1.0.0",
 					"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
-					"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
-					"optional": true
+					"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
 				},
 				"readable-stream": {
 					"version": "2.3.6",
 					"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
 					"integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
-					"optional": true,
 					"requires": {
 						"core-util-is": "~1.0.0",
 						"inherits": "~2.0.3",
@@ -15522,7 +15325,6 @@
 					"version": "1.1.1",
 					"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
 					"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
-					"optional": true,
 					"requires": {
 						"safe-buffer": "~5.1.0"
 					}
@@ -15572,7 +15374,7 @@
 				},
 				"readable-stream": {
 					"version": "2.3.6",
-					"resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+					"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
 					"integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
 					"requires": {
 						"core-util-is": "~1.0.0",
@@ -15667,7 +15469,6 @@
 			"version": "1.0.0",
 			"resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-1.0.0.tgz",
 			"integrity": "sha1-5xRDmFd9Uaa+0PoZlPoF9D/ZiO4=",
-			"optional": true,
 			"requires": {
 				"first-chunk-stream": "^1.0.0",
 				"strip-bom": "^2.0.0"
@@ -15677,7 +15478,6 @@
 					"version": "2.0.0",
 					"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
 					"integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
-					"optional": true,
 					"requires": {
 						"is-utf8": "^0.2.0"
 					}
@@ -15693,7 +15493,6 @@
 			"version": "1.1.1",
 			"resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-1.1.1.tgz",
 			"integrity": "sha1-lgu9EoeETzl1pFWKoQOoJV4kVqA=",
-			"optional": true,
 			"requires": {
 				"chalk": "^1.0.0",
 				"get-stdin": "^4.0.1",
@@ -15706,14 +15505,12 @@
 				"ansi-styles": {
 					"version": "2.2.1",
 					"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
-					"integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
-					"optional": true
+					"integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
 				},
 				"chalk": {
 					"version": "1.1.3",
 					"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
 					"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
-					"optional": true,
 					"requires": {
 						"ansi-styles": "^2.2.1",
 						"escape-string-regexp": "^1.0.2",
@@ -15726,7 +15523,6 @@
 					"version": "0.1.7",
 					"resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-0.1.7.tgz",
 					"integrity": "sha1-hHSREZ/MtftDYhfMc39/qtUPYD8=",
-					"optional": true,
 					"requires": {
 						"is-relative": "^0.1.0"
 					}
@@ -15734,14 +15530,12 @@
 				"is-relative": {
 					"version": "0.1.3",
 					"resolved": "https://registry.npmjs.org/is-relative/-/is-relative-0.1.3.tgz",
-					"integrity": "sha1-kF/uiuhvRbPsYUvDwVyGnfCHboI=",
-					"optional": true
+					"integrity": "sha1-kF/uiuhvRbPsYUvDwVyGnfCHboI="
 				},
 				"supports-color": {
 					"version": "2.0.0",
 					"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
-					"integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
-					"optional": true
+					"integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
 				}
 			}
 		},
@@ -15754,7 +15548,6 @@
 			"version": "1.0.1",
 			"resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
 			"integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
-			"optional": true,
 			"requires": {
 				"get-stdin": "^4.0.1"
 			}
@@ -15768,7 +15561,6 @@
 			"version": "1.0.1",
 			"resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz",
 			"integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==",
-			"optional": true,
 			"requires": {
 				"escape-string-regexp": "^1.0.2"
 			}
@@ -15856,7 +15648,6 @@
 			"version": "1.0.3",
 			"resolved": "https://registry.npmjs.org/sum-up/-/sum-up-1.0.3.tgz",
 			"integrity": "sha1-HGYfZnBX9jvLeHWqFDi8FiUlFW4=",
-			"optional": true,
 			"requires": {
 				"chalk": "^1.0.0"
 			},
@@ -15864,14 +15655,12 @@
 				"ansi-styles": {
 					"version": "2.2.1",
 					"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
-					"integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
-					"optional": true
+					"integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
 				},
 				"chalk": {
 					"version": "1.1.3",
 					"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
 					"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
-					"optional": true,
 					"requires": {
 						"ansi-styles": "^2.2.1",
 						"escape-string-regexp": "^1.0.2",
@@ -15883,8 +15672,7 @@
 				"supports-color": {
 					"version": "2.0.0",
 					"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
-					"integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
-					"optional": true
+					"integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
 				}
 			}
 		},
@@ -16429,8 +16217,7 @@
 		"timed-out": {
 			"version": "3.1.3",
 			"resolved": "https://registry.npmjs.org/timed-out/-/timed-out-3.1.3.tgz",
-			"integrity": "sha1-lYYL/MXHbCd/j4Mm/Q9bLiDrohc=",
-			"optional": true
+			"integrity": "sha1-lYYL/MXHbCd/j4Mm/Q9bLiDrohc="
 		},
 		"timers-browserify": {
 			"version": "2.0.10",
@@ -16466,7 +16253,6 @@
 			"version": "0.1.1",
 			"resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-0.1.1.tgz",
 			"integrity": "sha1-HN+kcqnvUMI57maZm2YsoOs5k38=",
-			"optional": true,
 			"requires": {
 				"extend-shallow": "^2.0.1"
 			},
@@ -16475,7 +16261,6 @@
 					"version": "2.0.1",
 					"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
 					"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-					"optional": true,
 					"requires": {
 						"is-extendable": "^0.1.0"
 					}
@@ -16585,14 +16370,12 @@
 		"trim-newlines": {
 			"version": "1.0.0",
 			"resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
-			"integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=",
-			"optional": true
+			"integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM="
 		},
 		"trim-repeated": {
 			"version": "1.0.0",
 			"resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz",
 			"integrity": "sha1-42RqLqTokTEr9+rObPsFOAvAHCE=",
-			"optional": true,
 			"requires": {
 				"escape-string-regexp": "^1.0.2"
 			}
@@ -16664,8 +16447,7 @@
 		"tunnel-agent": {
 			"version": "0.4.3",
 			"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz",
-			"integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=",
-			"optional": true
+			"integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us="
 		},
 		"tweetnacl": {
 			"version": "0.14.5",
@@ -17144,8 +16926,7 @@
 		"unzip-response": {
 			"version": "1.0.2",
 			"resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-1.0.2.tgz",
-			"integrity": "sha1-uYTwh3/AqJwsdzzB73tbIytbBv4=",
-			"optional": true
+			"integrity": "sha1-uYTwh3/AqJwsdzzB73tbIytbBv4="
 		},
 		"upath": {
 			"version": "1.1.0",
@@ -17217,7 +16998,6 @@
 			"version": "1.0.0",
 			"resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz",
 			"integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=",
-			"optional": true,
 			"requires": {
 				"prepend-http": "^1.0.1"
 			}
@@ -17294,8 +17074,7 @@
 		"vali-date": {
 			"version": "1.0.0",
 			"resolved": "https://registry.npmjs.org/vali-date/-/vali-date-1.0.0.tgz",
-			"integrity": "sha1-G5BKWWCfsyjvB4E4Qgk09rhnCaY=",
-			"optional": true
+			"integrity": "sha1-G5BKWWCfsyjvB4E4Qgk09rhnCaY="
 		},
 		"valid-url": {
 			"version": "1.0.9",
@@ -17350,7 +17129,6 @@
 			"version": "1.2.1",
 			"resolved": "https://registry.npmjs.org/vinyl-assign/-/vinyl-assign-1.2.1.tgz",
 			"integrity": "sha1-TRmIkbVRWRHXcajNnFSApGoHSkU=",
-			"optional": true,
 			"requires": {
 				"object-assign": "^4.0.1",
 				"readable-stream": "^2.0.0"
@@ -17359,14 +17137,12 @@
 				"isarray": {
 					"version": "1.0.0",
 					"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
-					"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
-					"optional": true
+					"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
 				},
 				"readable-stream": {
 					"version": "2.3.6",
 					"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
 					"integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
-					"optional": true,
 					"requires": {
 						"core-util-is": "~1.0.0",
 						"inherits": "~2.0.3",
@@ -17381,7 +17157,6 @@
 					"version": "1.1.1",
 					"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
 					"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
-					"optional": true,
 					"requires": {
 						"safe-buffer": "~5.1.0"
 					}
@@ -17839,7 +17614,6 @@
 			"version": "1.3.0",
 			"resolved": "https://registry.npmjs.org/ware/-/ware-1.3.0.tgz",
 			"integrity": "sha1-0bFPOdLiy0q4xAmPdW/ksWTkc9Q=",
-			"optional": true,
 			"requires": {
 				"wrap-fn": "^0.1.0"
 			}
@@ -18240,7 +18014,6 @@
 			"version": "0.1.5",
 			"resolved": "https://registry.npmjs.org/wrap-fn/-/wrap-fn-0.1.5.tgz",
 			"integrity": "sha1-8htuQQFv9KfjFyDbxjoJAWvfmEU=",
-			"optional": true,
 			"requires": {
 				"co": "3.1.0"
 			}
@@ -18390,7 +18163,6 @@
 			"version": "2.10.0",
 			"resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
 			"integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=",
-			"optional": true,
 			"requires": {
 				"buffer-crc32": "~0.2.3",
 				"fd-slicer": "~1.1.0"
diff --git a/package.json b/package.json
index 0d33469d0a..03b5bd1dfa 100644
--- a/package.json
+++ b/package.json
@@ -112,7 +112,6 @@
 		"eslint": "5.7.0",
 		"eslint-plugin-vue": "4.7.1",
 		"eventemitter3": "3.1.0",
-		"exif-js": "2.3.0",
 		"file-loader": "2.0.0",
 		"file-type": "10.1.0",
 		"fuckadblock": "3.2.1",
@@ -131,7 +130,6 @@
 		"gulp-uglify": "3.0.1",
 		"gulp-util": "3.0.8",
 		"hard-source-webpack-plugin": "0.12.0",
-		"highlight.js": "9.13.1",
 		"html-minifier": "3.5.20",
 		"http-signature": "1.2.0",
 		"insert-text-at-cursor": "0.1.1",
diff --git a/src/client/app/mobile/views/components/drive.file-detail.vue b/src/client/app/mobile/views/components/drive.file-detail.vue
index 872f2f59b1..c80cb61fa9 100644
--- a/src/client/app/mobile/views/components/drive.file-detail.vue
+++ b/src/client/app/mobile/views/components/drive.file-detail.vue
@@ -5,7 +5,6 @@
 			:src="file.url"
 			:alt="file.name"
 			:title="file.name"
-			@load="onImageLoaded"
 			:style="style">
 		<template v-if="kind != 'image'">%fa:file%</template>
 		<footer v-if="kind == 'image' && file.properties && file.properties.width && file.properties.height">
@@ -46,14 +45,6 @@
 			<ui-button @click="del">%fa:trash-alt R% %i18n:@delete%</ui-button>
 		</div>
 	</div>
-	<div class="exif" v-show="exif">
-		<div>
-			<p>
-				%fa:camera%%i18n:@exif%
-			</p>
-			<pre ref="exif" class="json">{{ exif ? JSON.stringify(exif, null, 2) : '' }}</pre>
-		</div>
-	</div>
 	<div class="hash">
 		<div>
 			<p>
@@ -67,8 +58,6 @@
 
 <script lang="ts">
 import Vue from 'vue';
-import * as EXIF from 'exif-js';
-import * as hljs from 'highlight.js';
 import { gcd } from '../../../../../prelude/math';
 
 export default Vue.extend({
@@ -139,15 +128,6 @@ export default Vue.extend({
 
 		showCreatedAt() {
 			alert(new Date(this.file.createdAt).toLocaleString());
-		},
-
-		onImageLoaded() {
-			const self = this;
-			EXIF.getData(this.$refs.img, function(this: any) {
-				const allMetaData = EXIF.getAllTags(this);
-				self.exif = allMetaData;
-				hljs.highlightBlock(self.$refs.exif);
-			});
 		}
 	}
 });
@@ -256,34 +236,4 @@ export default Vue.extend({
 				border-radius 2px
 				background #f5f5f5
 
-	> .exif
-		padding 14px
-		border-top solid 1px var(--faceDivider)
-
-		> div
-			max-width 500px
-			margin 0 auto
-
-			> p
-				display block
-				margin 0
-				padding 0
-				color var(--text)
-				font-size 0.9em
-
-				> [data-fa]
-					margin-right 4px
-
-			> pre
-				display block
-				width 100%
-				margin 6px 0 0 0
-				padding 8px
-				height 128px
-				overflow auto
-				font-size 0.9em
-				border solid 1px #dfdfdf
-				border-radius 2px
-				background #f5f5f5
-
 </style>