diff --git a/Dockerfile b/Dockerfile
index 91f74a34b651c3379f3d8a287db84327818f2473..bfa35568c479504f038cabbb0ffb3237f1ff1473 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -11,4 +11,4 @@ WORKDIR /usr/share/nginx/html
 
 COPY . .
 
-RUN cp nginx.conf /etc/nginx/nginx.conf
\ No newline at end of file
+# RUN cp nginx.conf /etc/nginx/nginx.conf
\ No newline at end of file
diff --git a/Makefile b/Makefile
index ac2f4355d22c0a87c3c1e400975070cb28252ef9..5e5af06dc2c3d3418fbfd70807b1e0aa4b1c958f 100644
--- a/Makefile
+++ b/Makefile
@@ -5,7 +5,7 @@ run:
 	docker run -p 80:80 \
 	-it \
 	--name kuadrado \
-	--mount type=bind,source="$(shell pwd)",target=/usr/share/nginx/html \
+	--mount type=bind,source="$(shell pwd)/public",target=/usr/share/nginx/html \
 	-d kuadradoimg
 
 start:
diff --git a/build.js b/build.js
index 6afd065013b844db771ac72aae94abd88e4bb692..54b9abea4a4e8c86ca1102eb516c689be27764c5 100644
--- a/build.js
+++ b/build.js
@@ -2,6 +2,10 @@
 
 "use strict";
 
+const build_conf = {
+    protected_dirs: ["assets", "style"],
+};
+
 const fs = require("fs");
 const browserify = require("browserify");
 const curDir = process.cwd();
@@ -22,7 +26,7 @@ function getPageHtml(pagename) {
         <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1" />
         <title>Kuadrado Software - ${pagename}</title>
         <link rel="icon" type="image/svg+xml" href="/favicon.svg">
-        <link href="../../style/style.css" rel="stylesheet" />
+        <link href="/style/style.css" rel="stylesheet" />
     </head>
     <body>
         <main></main>
@@ -54,6 +58,7 @@ for (const p of pages) {
 
 // If pages have been deleted in source, remove them in output directory too.
 for (const dir of fs.readdirSync(`${curDir}/public`).filter(f => {
+    if (build_conf.protected_dirs.includes(f)) return false;
     const stats = fs.statSync(`${curDir}/public/${f}`);
     return stats.isDirectory();
 })) {
diff --git a/nginx.conf b/nginx.conf
index 886be57637c7b1ac506b55677b67742c230fd187..e3c57f0dc5733efe743399653bf6e7f320d90556 100644
--- a/nginx.conf
+++ b/nginx.conf
@@ -28,12 +28,10 @@ http {
 	
     include /etc/nginx/conf.d/*.conf;
 
-	server {
-        listen 80;
-        root /public;
-		location / {
-			root /public;
-		}
-	}
+	# server {
+	# 	location / {
+	# 		root /public;
+	# 	}
+	# }
 }
 
diff --git a/package-lock.json b/package-lock.json
deleted file mode 100644
index 608ceced56c36033815258ca6933f4faca93995d..0000000000000000000000000000000000000000
--- a/package-lock.json
+++ /dev/null
@@ -1,1668 +0,0 @@
-{
-    "name": "kuadrado-website",
-    "version": "0.1.0",
-    "lockfileVersion": 1,
-    "requires": true,
-    "dependencies": {
-        "JSONStream": {
-            "version": "1.3.5",
-            "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz",
-            "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==",
-            "dev": true,
-            "requires": {
-                "jsonparse": "1.3.1",
-                "through": "2.3.8"
-            }
-        },
-        "acorn": {
-            "version": "7.4.1",
-            "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
-            "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
-            "dev": true
-        },
-        "acorn-node": {
-            "version": "1.8.2",
-            "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz",
-            "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==",
-            "dev": true,
-            "requires": {
-                "acorn": "7.4.1",
-                "acorn-walk": "7.2.0",
-                "xtend": "4.0.2"
-            }
-        },
-        "acorn-walk": {
-            "version": "7.2.0",
-            "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz",
-            "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==",
-            "dev": true
-        },
-        "anymatch": {
-            "version": "3.1.1",
-            "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz",
-            "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==",
-            "dev": true,
-            "requires": {
-                "normalize-path": "3.0.0",
-                "picomatch": "2.2.2"
-            }
-        },
-        "array-filter": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz",
-            "integrity": "sha1-uveeYubvTCpMC4MSMtr/7CUfnYM=",
-            "dev": true
-        },
-        "asn1.js": {
-            "version": "5.4.1",
-            "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz",
-            "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==",
-            "dev": true,
-            "requires": {
-                "bn.js": "4.11.9",
-                "inherits": "2.0.4",
-                "minimalistic-assert": "1.0.1",
-                "safer-buffer": "2.1.2"
-            },
-            "dependencies": {
-                "bn.js": {
-                    "version": "4.11.9",
-                    "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
-                    "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==",
-                    "dev": true
-                }
-            }
-        },
-        "assert": {
-            "version": "1.5.0",
-            "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz",
-            "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==",
-            "dev": true,
-            "requires": {
-                "object-assign": "4.1.1",
-                "util": "0.10.3"
-            },
-            "dependencies": {
-                "inherits": {
-                    "version": "2.0.1",
-                    "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
-                    "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=",
-                    "dev": true
-                },
-                "util": {
-                    "version": "0.10.3",
-                    "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
-                    "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
-                    "dev": true,
-                    "requires": {
-                        "inherits": "2.0.1"
-                    }
-                }
-            }
-        },
-        "available-typed-arrays": {
-            "version": "1.0.2",
-            "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.2.tgz",
-            "integrity": "sha512-XWX3OX8Onv97LMk/ftVyBibpGwY5a8SmuxZPzeOxqmuEqUCOM9ZE+uIaD1VNJ5QnvU2UQusvmKbuM1FR8QWGfQ==",
-            "dev": true,
-            "requires": {
-                "array-filter": "1.0.0"
-            }
-        },
-        "balanced-match": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
-            "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
-            "dev": true
-        },
-        "base64-js": {
-            "version": "1.5.1",
-            "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
-            "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
-            "dev": true
-        },
-        "binary-extensions": {
-            "version": "2.1.0",
-            "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz",
-            "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==",
-            "dev": true
-        },
-        "bn.js": {
-            "version": "5.1.3",
-            "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz",
-            "integrity": "sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==",
-            "dev": true
-        },
-        "brace-expansion": {
-            "version": "1.1.11",
-            "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
-            "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
-            "dev": true,
-            "requires": {
-                "balanced-match": "1.0.0",
-                "concat-map": "0.0.1"
-            }
-        },
-        "braces": {
-            "version": "3.0.2",
-            "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
-            "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
-            "dev": true,
-            "requires": {
-                "fill-range": "7.0.1"
-            }
-        },
-        "brorand": {
-            "version": "1.1.0",
-            "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
-            "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=",
-            "dev": true
-        },
-        "browser-pack": {
-            "version": "6.1.0",
-            "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.1.0.tgz",
-            "integrity": "sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==",
-            "dev": true,
-            "requires": {
-                "JSONStream": "1.3.5",
-                "combine-source-map": "0.8.0",
-                "defined": "1.0.0",
-                "safe-buffer": "5.2.1",
-                "through2": "2.0.5",
-                "umd": "3.0.3"
-            }
-        },
-        "browser-resolve": {
-            "version": "2.0.0",
-            "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-2.0.0.tgz",
-            "integrity": "sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ==",
-            "dev": true,
-            "requires": {
-                "resolve": "1.19.0"
-            }
-        },
-        "browserify": {
-            "version": "17.0.0",
-            "resolved": "https://registry.npmjs.org/browserify/-/browserify-17.0.0.tgz",
-            "integrity": "sha512-SaHqzhku9v/j6XsQMRxPyBrSP3gnwmE27gLJYZgMT2GeK3J0+0toN+MnuNYDfHwVGQfLiMZ7KSNSIXHemy905w==",
-            "dev": true,
-            "requires": {
-                "JSONStream": "1.3.5",
-                "assert": "1.5.0",
-                "browser-pack": "6.1.0",
-                "browser-resolve": "2.0.0",
-                "browserify-zlib": "0.2.0",
-                "buffer": "5.2.1",
-                "cached-path-relative": "1.0.2",
-                "concat-stream": "1.6.2",
-                "console-browserify": "1.2.0",
-                "constants-browserify": "1.0.0",
-                "crypto-browserify": "3.12.0",
-                "defined": "1.0.0",
-                "deps-sort": "2.0.1",
-                "domain-browser": "1.2.0",
-                "duplexer2": "0.1.4",
-                "events": "3.2.0",
-                "glob": "7.1.6",
-                "has": "1.0.3",
-                "htmlescape": "1.1.1",
-                "https-browserify": "1.0.0",
-                "inherits": "2.0.4",
-                "insert-module-globals": "7.2.1",
-                "labeled-stream-splicer": "2.0.2",
-                "mkdirp-classic": "0.5.3",
-                "module-deps": "6.2.3",
-                "os-browserify": "0.3.0",
-                "parents": "1.0.1",
-                "path-browserify": "1.0.1",
-                "process": "0.11.10",
-                "punycode": "1.4.1",
-                "querystring-es3": "0.2.1",
-                "read-only-stream": "2.0.0",
-                "readable-stream": "2.3.7",
-                "resolve": "1.19.0",
-                "shasum-object": "1.0.0",
-                "shell-quote": "1.7.2",
-                "stream-browserify": "3.0.0",
-                "stream-http": "3.1.1",
-                "string_decoder": "1.3.0",
-                "subarg": "1.0.0",
-                "syntax-error": "1.4.0",
-                "through2": "2.0.5",
-                "timers-browserify": "1.4.2",
-                "tty-browserify": "0.0.1",
-                "url": "0.11.0",
-                "util": "0.12.3",
-                "vm-browserify": "1.1.2",
-                "xtend": "4.0.2"
-            }
-        },
-        "browserify-aes": {
-            "version": "1.2.0",
-            "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
-            "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
-            "dev": true,
-            "requires": {
-                "buffer-xor": "1.0.3",
-                "cipher-base": "1.0.4",
-                "create-hash": "1.2.0",
-                "evp_bytestokey": "1.0.3",
-                "inherits": "2.0.4",
-                "safe-buffer": "5.2.1"
-            }
-        },
-        "browserify-cipher": {
-            "version": "1.0.1",
-            "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz",
-            "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==",
-            "dev": true,
-            "requires": {
-                "browserify-aes": "1.2.0",
-                "browserify-des": "1.0.2",
-                "evp_bytestokey": "1.0.3"
-            }
-        },
-        "browserify-des": {
-            "version": "1.0.2",
-            "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz",
-            "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==",
-            "dev": true,
-            "requires": {
-                "cipher-base": "1.0.4",
-                "des.js": "1.0.1",
-                "inherits": "2.0.4",
-                "safe-buffer": "5.2.1"
-            }
-        },
-        "browserify-rsa": {
-            "version": "4.1.0",
-            "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz",
-            "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==",
-            "dev": true,
-            "requires": {
-                "bn.js": "5.1.3",
-                "randombytes": "2.1.0"
-            }
-        },
-        "browserify-sign": {
-            "version": "4.2.1",
-            "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz",
-            "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==",
-            "dev": true,
-            "requires": {
-                "bn.js": "5.1.3",
-                "browserify-rsa": "4.1.0",
-                "create-hash": "1.2.0",
-                "create-hmac": "1.1.7",
-                "elliptic": "6.5.3",
-                "inherits": "2.0.4",
-                "parse-asn1": "5.1.6",
-                "readable-stream": "3.6.0",
-                "safe-buffer": "5.2.1"
-            },
-            "dependencies": {
-                "readable-stream": {
-                    "version": "3.6.0",
-                    "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
-                    "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
-                    "dev": true,
-                    "requires": {
-                        "inherits": "2.0.4",
-                        "string_decoder": "1.3.0",
-                        "util-deprecate": "1.0.2"
-                    }
-                }
-            }
-        },
-        "browserify-zlib": {
-            "version": "0.2.0",
-            "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz",
-            "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==",
-            "dev": true,
-            "requires": {
-                "pako": "1.0.11"
-            }
-        },
-        "buffer": {
-            "version": "5.2.1",
-            "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz",
-            "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==",
-            "dev": true,
-            "requires": {
-                "base64-js": "1.5.1",
-                "ieee754": "1.2.1"
-            }
-        },
-        "buffer-from": {
-            "version": "1.1.1",
-            "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
-            "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
-            "dev": true
-        },
-        "buffer-xor": {
-            "version": "1.0.3",
-            "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
-            "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=",
-            "dev": true
-        },
-        "builtin-status-codes": {
-            "version": "3.0.0",
-            "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
-            "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=",
-            "dev": true
-        },
-        "cached-path-relative": {
-            "version": "1.0.2",
-            "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.0.2.tgz",
-            "integrity": "sha512-5r2GqsoEb4qMTTN9J+WzXfjov+hjxT+j3u5K+kIVNIwAd99DLCJE9pBIMP1qVeybV6JiijL385Oz0DcYxfbOIg==",
-            "dev": true
-        },
-        "call-bind": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz",
-            "integrity": "sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==",
-            "dev": true,
-            "requires": {
-                "function-bind": "1.1.1",
-                "get-intrinsic": "1.0.2"
-            }
-        },
-        "chokidar": {
-            "version": "3.4.3",
-            "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz",
-            "integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==",
-            "dev": true,
-            "requires": {
-                "anymatch": "3.1.1",
-                "braces": "3.0.2",
-                "fsevents": "2.1.3",
-                "glob-parent": "5.1.1",
-                "is-binary-path": "2.1.0",
-                "is-glob": "4.0.1",
-                "normalize-path": "3.0.0",
-                "readdirp": "3.5.0"
-            }
-        },
-        "cipher-base": {
-            "version": "1.0.4",
-            "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
-            "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
-            "dev": true,
-            "requires": {
-                "inherits": "2.0.4",
-                "safe-buffer": "5.2.1"
-            }
-        },
-        "combine-source-map": {
-            "version": "0.8.0",
-            "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz",
-            "integrity": "sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos=",
-            "dev": true,
-            "requires": {
-                "convert-source-map": "1.1.3",
-                "inline-source-map": "0.6.2",
-                "lodash.memoize": "3.0.4",
-                "source-map": "0.5.7"
-            }
-        },
-        "concat-map": {
-            "version": "0.0.1",
-            "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
-            "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
-            "dev": true
-        },
-        "concat-stream": {
-            "version": "1.6.2",
-            "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
-            "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
-            "dev": true,
-            "requires": {
-                "buffer-from": "1.1.1",
-                "inherits": "2.0.4",
-                "readable-stream": "2.3.7",
-                "typedarray": "0.0.6"
-            }
-        },
-        "console-browserify": {
-            "version": "1.2.0",
-            "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz",
-            "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==",
-            "dev": true
-        },
-        "constants-browserify": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
-            "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=",
-            "dev": true
-        },
-        "convert-source-map": {
-            "version": "1.1.3",
-            "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz",
-            "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=",
-            "dev": true
-        },
-        "core-util-is": {
-            "version": "1.0.2",
-            "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
-            "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
-            "dev": true
-        },
-        "create-ecdh": {
-            "version": "4.0.4",
-            "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz",
-            "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==",
-            "dev": true,
-            "requires": {
-                "bn.js": "4.11.9",
-                "elliptic": "6.5.3"
-            },
-            "dependencies": {
-                "bn.js": {
-                    "version": "4.11.9",
-                    "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
-                    "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==",
-                    "dev": true
-                }
-            }
-        },
-        "create-hash": {
-            "version": "1.2.0",
-            "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
-            "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
-            "dev": true,
-            "requires": {
-                "cipher-base": "1.0.4",
-                "inherits": "2.0.4",
-                "md5.js": "1.3.5",
-                "ripemd160": "2.0.2",
-                "sha.js": "2.4.11"
-            }
-        },
-        "create-hmac": {
-            "version": "1.1.7",
-            "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
-            "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
-            "dev": true,
-            "requires": {
-                "cipher-base": "1.0.4",
-                "create-hash": "1.2.0",
-                "inherits": "2.0.4",
-                "ripemd160": "2.0.2",
-                "safe-buffer": "5.2.1",
-                "sha.js": "2.4.11"
-            }
-        },
-        "crypto-browserify": {
-            "version": "3.12.0",
-            "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz",
-            "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==",
-            "dev": true,
-            "requires": {
-                "browserify-cipher": "1.0.1",
-                "browserify-sign": "4.2.1",
-                "create-ecdh": "4.0.4",
-                "create-hash": "1.2.0",
-                "create-hmac": "1.1.7",
-                "diffie-hellman": "5.0.3",
-                "inherits": "2.0.4",
-                "pbkdf2": "3.1.1",
-                "public-encrypt": "4.0.3",
-                "randombytes": "2.1.0",
-                "randomfill": "1.0.4"
-            }
-        },
-        "dash-ast": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz",
-            "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==",
-            "dev": true
-        },
-        "define-properties": {
-            "version": "1.1.3",
-            "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
-            "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
-            "dev": true,
-            "requires": {
-                "object-keys": "1.1.1"
-            }
-        },
-        "defined": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
-            "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=",
-            "dev": true
-        },
-        "deps-sort": {
-            "version": "2.0.1",
-            "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.1.tgz",
-            "integrity": "sha512-1orqXQr5po+3KI6kQb9A4jnXT1PBwggGl2d7Sq2xsnOeI9GPcE/tGcF9UiSZtZBM7MukY4cAh7MemS6tZYipfw==",
-            "dev": true,
-            "requires": {
-                "JSONStream": "1.3.5",
-                "shasum-object": "1.0.0",
-                "subarg": "1.0.0",
-                "through2": "2.0.5"
-            }
-        },
-        "des.js": {
-            "version": "1.0.1",
-            "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz",
-            "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==",
-            "dev": true,
-            "requires": {
-                "inherits": "2.0.4",
-                "minimalistic-assert": "1.0.1"
-            }
-        },
-        "detective": {
-            "version": "5.2.0",
-            "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz",
-            "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==",
-            "dev": true,
-            "requires": {
-                "acorn-node": "1.8.2",
-                "defined": "1.0.0",
-                "minimist": "1.2.5"
-            }
-        },
-        "diffie-hellman": {
-            "version": "5.0.3",
-            "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
-            "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==",
-            "dev": true,
-            "requires": {
-                "bn.js": "4.11.9",
-                "miller-rabin": "4.0.1",
-                "randombytes": "2.1.0"
-            },
-            "dependencies": {
-                "bn.js": {
-                    "version": "4.11.9",
-                    "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
-                    "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==",
-                    "dev": true
-                }
-            }
-        },
-        "domain-browser": {
-            "version": "1.2.0",
-            "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz",
-            "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==",
-            "dev": true
-        },
-        "duplexer2": {
-            "version": "0.1.4",
-            "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
-            "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=",
-            "dev": true,
-            "requires": {
-                "readable-stream": "2.3.7"
-            }
-        },
-        "elliptic": {
-            "version": "6.5.3",
-            "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz",
-            "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==",
-            "dev": true,
-            "requires": {
-                "bn.js": "4.11.9",
-                "brorand": "1.1.0",
-                "hash.js": "1.1.7",
-                "hmac-drbg": "1.0.1",
-                "inherits": "2.0.4",
-                "minimalistic-assert": "1.0.1",
-                "minimalistic-crypto-utils": "1.0.1"
-            },
-            "dependencies": {
-                "bn.js": {
-                    "version": "4.11.9",
-                    "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
-                    "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==",
-                    "dev": true
-                }
-            }
-        },
-        "es-abstract": {
-            "version": "1.18.0-next.1",
-            "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz",
-            "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==",
-            "dev": true,
-            "requires": {
-                "es-to-primitive": "1.2.1",
-                "function-bind": "1.1.1",
-                "has": "1.0.3",
-                "has-symbols": "1.0.1",
-                "is-callable": "1.2.2",
-                "is-negative-zero": "2.0.1",
-                "is-regex": "1.1.1",
-                "object-inspect": "1.9.0",
-                "object-keys": "1.1.1",
-                "object.assign": "4.1.2",
-                "string.prototype.trimend": "1.0.3",
-                "string.prototype.trimstart": "1.0.3"
-            }
-        },
-        "es-to-primitive": {
-            "version": "1.2.1",
-            "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
-            "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
-            "dev": true,
-            "requires": {
-                "is-callable": "1.2.2",
-                "is-date-object": "1.0.2",
-                "is-symbol": "1.0.3"
-            }
-        },
-        "events": {
-            "version": "3.2.0",
-            "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz",
-            "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==",
-            "dev": true
-        },
-        "evp_bytestokey": {
-            "version": "1.0.3",
-            "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
-            "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
-            "dev": true,
-            "requires": {
-                "md5.js": "1.3.5",
-                "safe-buffer": "5.2.1"
-            }
-        },
-        "fast-safe-stringify": {
-            "version": "2.0.7",
-            "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz",
-            "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==",
-            "dev": true
-        },
-        "fill-range": {
-            "version": "7.0.1",
-            "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
-            "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
-            "dev": true,
-            "requires": {
-                "to-regex-range": "5.0.1"
-            }
-        },
-        "foreach": {
-            "version": "2.0.5",
-            "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz",
-            "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=",
-            "dev": true
-        },
-        "fs.realpath": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
-            "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
-            "dev": true
-        },
-        "fsevents": {
-            "version": "2.1.3",
-            "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz",
-            "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==",
-            "dev": true,
-            "optional": true
-        },
-        "function-bind": {
-            "version": "1.1.1",
-            "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
-            "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
-            "dev": true
-        },
-        "get-assigned-identifiers": {
-            "version": "1.2.0",
-            "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz",
-            "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==",
-            "dev": true
-        },
-        "get-intrinsic": {
-            "version": "1.0.2",
-            "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.2.tgz",
-            "integrity": "sha512-aeX0vrFm21ILl3+JpFFRNe9aUvp6VFZb2/CTbgLb8j75kOhvoNYjt9d8KA/tJG4gSo8nzEDedRl0h7vDmBYRVg==",
-            "dev": true,
-            "requires": {
-                "function-bind": "1.1.1",
-                "has": "1.0.3",
-                "has-symbols": "1.0.1"
-            }
-        },
-        "glob": {
-            "version": "7.1.6",
-            "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
-            "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
-            "dev": true,
-            "requires": {
-                "fs.realpath": "1.0.0",
-                "inflight": "1.0.6",
-                "inherits": "2.0.4",
-                "minimatch": "3.0.4",
-                "once": "1.4.0",
-                "path-is-absolute": "1.0.1"
-            }
-        },
-        "glob-parent": {
-            "version": "5.1.1",
-            "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz",
-            "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==",
-            "dev": true,
-            "requires": {
-                "is-glob": "4.0.1"
-            }
-        },
-        "has": {
-            "version": "1.0.3",
-            "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
-            "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
-            "dev": true,
-            "requires": {
-                "function-bind": "1.1.1"
-            }
-        },
-        "has-symbols": {
-            "version": "1.0.1",
-            "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
-            "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
-            "dev": true
-        },
-        "hash-base": {
-            "version": "3.1.0",
-            "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz",
-            "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==",
-            "dev": true,
-            "requires": {
-                "inherits": "2.0.4",
-                "readable-stream": "3.6.0",
-                "safe-buffer": "5.2.1"
-            },
-            "dependencies": {
-                "readable-stream": {
-                    "version": "3.6.0",
-                    "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
-                    "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
-                    "dev": true,
-                    "requires": {
-                        "inherits": "2.0.4",
-                        "string_decoder": "1.3.0",
-                        "util-deprecate": "1.0.2"
-                    }
-                }
-            }
-        },
-        "hash.js": {
-            "version": "1.1.7",
-            "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
-            "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
-            "dev": true,
-            "requires": {
-                "inherits": "2.0.4",
-                "minimalistic-assert": "1.0.1"
-            }
-        },
-        "hmac-drbg": {
-            "version": "1.0.1",
-            "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
-            "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=",
-            "dev": true,
-            "requires": {
-                "hash.js": "1.1.7",
-                "minimalistic-assert": "1.0.1",
-                "minimalistic-crypto-utils": "1.0.1"
-            }
-        },
-        "htmlescape": {
-            "version": "1.1.1",
-            "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz",
-            "integrity": "sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E=",
-            "dev": true
-        },
-        "https-browserify": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
-            "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=",
-            "dev": true
-        },
-        "ieee754": {
-            "version": "1.2.1",
-            "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
-            "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
-            "dev": true
-        },
-        "inflight": {
-            "version": "1.0.6",
-            "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
-            "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
-            "dev": true,
-            "requires": {
-                "once": "1.4.0",
-                "wrappy": "1.0.2"
-            }
-        },
-        "inherits": {
-            "version": "2.0.4",
-            "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
-            "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
-            "dev": true
-        },
-        "inline-source-map": {
-            "version": "0.6.2",
-            "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz",
-            "integrity": "sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=",
-            "dev": true,
-            "requires": {
-                "source-map": "0.5.7"
-            }
-        },
-        "insert-module-globals": {
-            "version": "7.2.1",
-            "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.1.tgz",
-            "integrity": "sha512-ufS5Qq9RZN+Bu899eA9QCAYThY+gGW7oRkmb0vC93Vlyu/CFGcH0OYPEjVkDXA5FEbTt1+VWzdoOD3Ny9N+8tg==",
-            "dev": true,
-            "requires": {
-                "JSONStream": "1.3.5",
-                "acorn-node": "1.8.2",
-                "combine-source-map": "0.8.0",
-                "concat-stream": "1.6.2",
-                "is-buffer": "1.1.6",
-                "path-is-absolute": "1.0.1",
-                "process": "0.11.10",
-                "through2": "2.0.5",
-                "undeclared-identifiers": "1.1.3",
-                "xtend": "4.0.2"
-            }
-        },
-        "is-arguments": {
-            "version": "1.1.0",
-            "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz",
-            "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==",
-            "dev": true,
-            "requires": {
-                "call-bind": "1.0.0"
-            }
-        },
-        "is-binary-path": {
-            "version": "2.1.0",
-            "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
-            "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
-            "dev": true,
-            "requires": {
-                "binary-extensions": "2.1.0"
-            }
-        },
-        "is-buffer": {
-            "version": "1.1.6",
-            "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
-            "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
-            "dev": true
-        },
-        "is-callable": {
-            "version": "1.2.2",
-            "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz",
-            "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==",
-            "dev": true
-        },
-        "is-core-module": {
-            "version": "2.2.0",
-            "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz",
-            "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==",
-            "dev": true,
-            "requires": {
-                "has": "1.0.3"
-            }
-        },
-        "is-date-object": {
-            "version": "1.0.2",
-            "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz",
-            "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==",
-            "dev": true
-        },
-        "is-extglob": {
-            "version": "2.1.1",
-            "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
-            "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
-            "dev": true
-        },
-        "is-generator-function": {
-            "version": "1.0.8",
-            "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.8.tgz",
-            "integrity": "sha512-2Omr/twNtufVZFr1GhxjOMFPAj2sjc/dKaIqBhvo4qciXfJmITGH6ZGd8eZYNHza8t1y0e01AuqRhJwfWp26WQ==",
-            "dev": true
-        },
-        "is-glob": {
-            "version": "4.0.1",
-            "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
-            "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
-            "dev": true,
-            "requires": {
-                "is-extglob": "2.1.1"
-            }
-        },
-        "is-negative-zero": {
-            "version": "2.0.1",
-            "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz",
-            "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==",
-            "dev": true
-        },
-        "is-number": {
-            "version": "7.0.0",
-            "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
-            "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
-            "dev": true
-        },
-        "is-regex": {
-            "version": "1.1.1",
-            "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz",
-            "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==",
-            "dev": true,
-            "requires": {
-                "has-symbols": "1.0.1"
-            }
-        },
-        "is-symbol": {
-            "version": "1.0.3",
-            "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz",
-            "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==",
-            "dev": true,
-            "requires": {
-                "has-symbols": "1.0.1"
-            }
-        },
-        "is-typed-array": {
-            "version": "1.1.4",
-            "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.4.tgz",
-            "integrity": "sha512-ILaRgn4zaSrVNXNGtON6iFNotXW3hAPF3+0fB1usg2jFlWqo5fEDdmJkz0zBfoi7Dgskr8Khi2xZ8cXqZEfXNA==",
-            "dev": true,
-            "requires": {
-                "available-typed-arrays": "1.0.2",
-                "call-bind": "1.0.0",
-                "es-abstract": "1.18.0-next.1",
-                "foreach": "2.0.5",
-                "has-symbols": "1.0.1"
-            }
-        },
-        "isarray": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
-            "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
-            "dev": true
-        },
-        "jsonparse": {
-            "version": "1.3.1",
-            "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz",
-            "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=",
-            "dev": true
-        },
-        "labeled-stream-splicer": {
-            "version": "2.0.2",
-            "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz",
-            "integrity": "sha512-Ca4LSXFFZUjPScRaqOcFxneA0VpKZr4MMYCljyQr4LIewTLb3Y0IUTIsnBBsVubIeEfxeSZpSjSsRM8APEQaAw==",
-            "dev": true,
-            "requires": {
-                "inherits": "2.0.4",
-                "stream-splicer": "2.0.1"
-            }
-        },
-        "lodash.memoize": {
-            "version": "3.0.4",
-            "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz",
-            "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=",
-            "dev": true
-        },
-        "md5.js": {
-            "version": "1.3.5",
-            "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
-            "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
-            "dev": true,
-            "requires": {
-                "hash-base": "3.1.0",
-                "inherits": "2.0.4",
-                "safe-buffer": "5.2.1"
-            }
-        },
-        "miller-rabin": {
-            "version": "4.0.1",
-            "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz",
-            "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==",
-            "dev": true,
-            "requires": {
-                "bn.js": "4.11.9",
-                "brorand": "1.1.0"
-            },
-            "dependencies": {
-                "bn.js": {
-                    "version": "4.11.9",
-                    "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
-                    "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==",
-                    "dev": true
-                }
-            }
-        },
-        "minimalistic-assert": {
-            "version": "1.0.1",
-            "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
-            "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==",
-            "dev": true
-        },
-        "minimalistic-crypto-utils": {
-            "version": "1.0.1",
-            "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
-            "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=",
-            "dev": true
-        },
-        "minimatch": {
-            "version": "3.0.4",
-            "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
-            "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
-            "dev": true,
-            "requires": {
-                "brace-expansion": "1.1.11"
-            }
-        },
-        "minimist": {
-            "version": "1.2.5",
-            "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
-            "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
-            "dev": true
-        },
-        "mkdirp-classic": {
-            "version": "0.5.3",
-            "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
-            "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==",
-            "dev": true
-        },
-        "module-deps": {
-            "version": "6.2.3",
-            "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.3.tgz",
-            "integrity": "sha512-fg7OZaQBcL4/L+AK5f4iVqf9OMbCclXfy/znXRxTVhJSeW5AIlS9AwheYwDaXM3lVW7OBeaeUEY3gbaC6cLlSA==",
-            "dev": true,
-            "requires": {
-                "JSONStream": "1.3.5",
-                "browser-resolve": "2.0.0",
-                "cached-path-relative": "1.0.2",
-                "concat-stream": "1.6.2",
-                "defined": "1.0.0",
-                "detective": "5.2.0",
-                "duplexer2": "0.1.4",
-                "inherits": "2.0.4",
-                "parents": "1.0.1",
-                "readable-stream": "2.3.7",
-                "resolve": "1.19.0",
-                "stream-combiner2": "1.1.1",
-                "subarg": "1.0.0",
-                "through2": "2.0.5",
-                "xtend": "4.0.2"
-            }
-        },
-        "normalize-path": {
-            "version": "3.0.0",
-            "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
-            "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
-            "dev": true
-        },
-        "object-assign": {
-            "version": "4.1.1",
-            "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
-            "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
-            "dev": true
-        },
-        "object-inspect": {
-            "version": "1.9.0",
-            "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz",
-            "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==",
-            "dev": true
-        },
-        "object-keys": {
-            "version": "1.1.1",
-            "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
-            "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
-            "dev": true
-        },
-        "object.assign": {
-            "version": "4.1.2",
-            "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz",
-            "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==",
-            "dev": true,
-            "requires": {
-                "call-bind": "1.0.0",
-                "define-properties": "1.1.3",
-                "has-symbols": "1.0.1",
-                "object-keys": "1.1.1"
-            }
-        },
-        "once": {
-            "version": "1.4.0",
-            "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
-            "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
-            "dev": true,
-            "requires": {
-                "wrappy": "1.0.2"
-            }
-        },
-        "os-browserify": {
-            "version": "0.3.0",
-            "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz",
-            "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=",
-            "dev": true
-        },
-        "pako": {
-            "version": "1.0.11",
-            "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
-            "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==",
-            "dev": true
-        },
-        "parents": {
-            "version": "1.0.1",
-            "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz",
-            "integrity": "sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=",
-            "dev": true,
-            "requires": {
-                "path-platform": "0.11.15"
-            }
-        },
-        "parse-asn1": {
-            "version": "5.1.6",
-            "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz",
-            "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==",
-            "dev": true,
-            "requires": {
-                "asn1.js": "5.4.1",
-                "browserify-aes": "1.2.0",
-                "evp_bytestokey": "1.0.3",
-                "pbkdf2": "3.1.1",
-                "safe-buffer": "5.2.1"
-            }
-        },
-        "path-browserify": {
-            "version": "1.0.1",
-            "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz",
-            "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==",
-            "dev": true
-        },
-        "path-is-absolute": {
-            "version": "1.0.1",
-            "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
-            "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
-            "dev": true
-        },
-        "path-parse": {
-            "version": "1.0.6",
-            "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
-            "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
-            "dev": true
-        },
-        "path-platform": {
-            "version": "0.11.15",
-            "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz",
-            "integrity": "sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I=",
-            "dev": true
-        },
-        "pbkdf2": {
-            "version": "3.1.1",
-            "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz",
-            "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==",
-            "dev": true,
-            "requires": {
-                "create-hash": "1.2.0",
-                "create-hmac": "1.1.7",
-                "ripemd160": "2.0.2",
-                "safe-buffer": "5.2.1",
-                "sha.js": "2.4.11"
-            }
-        },
-        "picomatch": {
-            "version": "2.2.2",
-            "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
-            "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==",
-            "dev": true
-        },
-        "process": {
-            "version": "0.11.10",
-            "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
-            "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=",
-            "dev": true
-        },
-        "process-nextick-args": {
-            "version": "2.0.1",
-            "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
-            "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
-            "dev": true
-        },
-        "public-encrypt": {
-            "version": "4.0.3",
-            "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz",
-            "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==",
-            "dev": true,
-            "requires": {
-                "bn.js": "4.11.9",
-                "browserify-rsa": "4.1.0",
-                "create-hash": "1.2.0",
-                "parse-asn1": "5.1.6",
-                "randombytes": "2.1.0",
-                "safe-buffer": "5.2.1"
-            },
-            "dependencies": {
-                "bn.js": {
-                    "version": "4.11.9",
-                    "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
-                    "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==",
-                    "dev": true
-                }
-            }
-        },
-        "punycode": {
-            "version": "1.4.1",
-            "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
-            "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
-            "dev": true
-        },
-        "querystring": {
-            "version": "0.2.0",
-            "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
-            "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=",
-            "dev": true
-        },
-        "querystring-es3": {
-            "version": "0.2.1",
-            "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz",
-            "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=",
-            "dev": true
-        },
-        "randombytes": {
-            "version": "2.1.0",
-            "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
-            "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
-            "dev": true,
-            "requires": {
-                "safe-buffer": "5.2.1"
-            }
-        },
-        "randomfill": {
-            "version": "1.0.4",
-            "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz",
-            "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==",
-            "dev": true,
-            "requires": {
-                "randombytes": "2.1.0",
-                "safe-buffer": "5.2.1"
-            }
-        },
-        "read-only-stream": {
-            "version": "2.0.0",
-            "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz",
-            "integrity": "sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A=",
-            "dev": true,
-            "requires": {
-                "readable-stream": "2.3.7"
-            }
-        },
-        "readable-stream": {
-            "version": "2.3.7",
-            "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
-            "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
-            "dev": true,
-            "requires": {
-                "core-util-is": "1.0.2",
-                "inherits": "2.0.4",
-                "isarray": "1.0.0",
-                "process-nextick-args": "2.0.1",
-                "safe-buffer": "5.1.2",
-                "string_decoder": "1.1.1",
-                "util-deprecate": "1.0.2"
-            },
-            "dependencies": {
-                "safe-buffer": {
-                    "version": "5.1.2",
-                    "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
-                    "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
-                    "dev": true
-                },
-                "string_decoder": {
-                    "version": "1.1.1",
-                    "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
-                    "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
-                    "dev": true,
-                    "requires": {
-                        "safe-buffer": "5.1.2"
-                    }
-                }
-            }
-        },
-        "readdirp": {
-            "version": "3.5.0",
-            "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz",
-            "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==",
-            "dev": true,
-            "requires": {
-                "picomatch": "2.2.2"
-            }
-        },
-        "resolve": {
-            "version": "1.19.0",
-            "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz",
-            "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==",
-            "dev": true,
-            "requires": {
-                "is-core-module": "2.2.0",
-                "path-parse": "1.0.6"
-            }
-        },
-        "ripemd160": {
-            "version": "2.0.2",
-            "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz",
-            "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
-            "dev": true,
-            "requires": {
-                "hash-base": "3.1.0",
-                "inherits": "2.0.4"
-            }
-        },
-        "safe-buffer": {
-            "version": "5.2.1",
-            "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
-            "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
-            "dev": true
-        },
-        "safer-buffer": {
-            "version": "2.1.2",
-            "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
-            "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
-            "dev": true
-        },
-        "sass": {
-            "version": "1.32.0",
-            "resolved": "https://registry.npmjs.org/sass/-/sass-1.32.0.tgz",
-            "integrity": "sha512-fhyqEbMIycQA4blrz/C0pYhv2o4x2y6FYYAH0CshBw3DXh5D5wyERgxw0ptdau1orc/GhNrhF7DFN2etyOCEng==",
-            "dev": true,
-            "requires": {
-                "chokidar": "3.4.3"
-            }
-        },
-        "sha.js": {
-            "version": "2.4.11",
-            "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
-            "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
-            "dev": true,
-            "requires": {
-                "inherits": "2.0.4",
-                "safe-buffer": "5.2.1"
-            }
-        },
-        "shasum-object": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/shasum-object/-/shasum-object-1.0.0.tgz",
-            "integrity": "sha512-Iqo5rp/3xVi6M4YheapzZhhGPVs0yZwHj7wvwQ1B9z8H6zk+FEnI7y3Teq7qwnekfEhu8WmG2z0z4iWZaxLWVg==",
-            "dev": true,
-            "requires": {
-                "fast-safe-stringify": "2.0.7"
-            }
-        },
-        "shell-quote": {
-            "version": "1.7.2",
-            "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz",
-            "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==",
-            "dev": true
-        },
-        "simple-concat": {
-            "version": "1.0.1",
-            "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
-            "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==",
-            "dev": true
-        },
-        "source-map": {
-            "version": "0.5.7",
-            "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
-            "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
-            "dev": true
-        },
-        "stream-browserify": {
-            "version": "3.0.0",
-            "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz",
-            "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==",
-            "dev": true,
-            "requires": {
-                "inherits": "2.0.4",
-                "readable-stream": "3.6.0"
-            },
-            "dependencies": {
-                "readable-stream": {
-                    "version": "3.6.0",
-                    "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
-                    "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
-                    "dev": true,
-                    "requires": {
-                        "inherits": "2.0.4",
-                        "string_decoder": "1.3.0",
-                        "util-deprecate": "1.0.2"
-                    }
-                }
-            }
-        },
-        "stream-combiner2": {
-            "version": "1.1.1",
-            "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz",
-            "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=",
-            "dev": true,
-            "requires": {
-                "duplexer2": "0.1.4",
-                "readable-stream": "2.3.7"
-            }
-        },
-        "stream-http": {
-            "version": "3.1.1",
-            "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.1.1.tgz",
-            "integrity": "sha512-S7OqaYu0EkFpgeGFb/NPOoPLxFko7TPqtEeFg5DXPB4v/KETHG0Ln6fRFrNezoelpaDKmycEmmZ81cC9DAwgYg==",
-            "dev": true,
-            "requires": {
-                "builtin-status-codes": "3.0.0",
-                "inherits": "2.0.4",
-                "readable-stream": "3.6.0",
-                "xtend": "4.0.2"
-            },
-            "dependencies": {
-                "readable-stream": {
-                    "version": "3.6.0",
-                    "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
-                    "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
-                    "dev": true,
-                    "requires": {
-                        "inherits": "2.0.4",
-                        "string_decoder": "1.3.0",
-                        "util-deprecate": "1.0.2"
-                    }
-                }
-            }
-        },
-        "stream-splicer": {
-            "version": "2.0.1",
-            "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.1.tgz",
-            "integrity": "sha512-Xizh4/NPuYSyAXyT7g8IvdJ9HJpxIGL9PjyhtywCZvvP0OPIdqyrr4dMikeuvY8xahpdKEBlBTySe583totajg==",
-            "dev": true,
-            "requires": {
-                "inherits": "2.0.4",
-                "readable-stream": "2.3.7"
-            }
-        },
-        "string.prototype.trimend": {
-            "version": "1.0.3",
-            "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz",
-            "integrity": "sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==",
-            "dev": true,
-            "requires": {
-                "call-bind": "1.0.0",
-                "define-properties": "1.1.3"
-            }
-        },
-        "string.prototype.trimstart": {
-            "version": "1.0.3",
-            "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz",
-            "integrity": "sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==",
-            "dev": true,
-            "requires": {
-                "call-bind": "1.0.0",
-                "define-properties": "1.1.3"
-            }
-        },
-        "string_decoder": {
-            "version": "1.3.0",
-            "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
-            "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
-            "dev": true,
-            "requires": {
-                "safe-buffer": "5.2.1"
-            }
-        },
-        "subarg": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz",
-            "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=",
-            "dev": true,
-            "requires": {
-                "minimist": "1.2.5"
-            }
-        },
-        "syntax-error": {
-            "version": "1.4.0",
-            "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz",
-            "integrity": "sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==",
-            "dev": true,
-            "requires": {
-                "acorn-node": "1.8.2"
-            }
-        },
-        "through": {
-            "version": "2.3.8",
-            "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
-            "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
-            "dev": true
-        },
-        "through2": {
-            "version": "2.0.5",
-            "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
-            "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
-            "dev": true,
-            "requires": {
-                "readable-stream": "2.3.7",
-                "xtend": "4.0.2"
-            }
-        },
-        "timers-browserify": {
-            "version": "1.4.2",
-            "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz",
-            "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=",
-            "dev": true,
-            "requires": {
-                "process": "0.11.10"
-            }
-        },
-        "to-regex-range": {
-            "version": "5.0.1",
-            "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
-            "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
-            "dev": true,
-            "requires": {
-                "is-number": "7.0.0"
-            }
-        },
-        "tty-browserify": {
-            "version": "0.0.1",
-            "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz",
-            "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==",
-            "dev": true
-        },
-        "typedarray": {
-            "version": "0.0.6",
-            "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
-            "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
-            "dev": true
-        },
-        "umd": {
-            "version": "3.0.3",
-            "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz",
-            "integrity": "sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==",
-            "dev": true
-        },
-        "undeclared-identifiers": {
-            "version": "1.1.3",
-            "resolved": "https://registry.npmjs.org/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz",
-            "integrity": "sha512-pJOW4nxjlmfwKApE4zvxLScM/njmwj/DiUBv7EabwE4O8kRUy+HIwxQtZLBPll/jx1LJyBcqNfB3/cpv9EZwOw==",
-            "dev": true,
-            "requires": {
-                "acorn-node": "1.8.2",
-                "dash-ast": "1.0.0",
-                "get-assigned-identifiers": "1.2.0",
-                "simple-concat": "1.0.1",
-                "xtend": "4.0.2"
-            }
-        },
-        "url": {
-            "version": "0.11.0",
-            "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
-            "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
-            "dev": true,
-            "requires": {
-                "punycode": "1.3.2",
-                "querystring": "0.2.0"
-            },
-            "dependencies": {
-                "punycode": {
-                    "version": "1.3.2",
-                    "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
-                    "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=",
-                    "dev": true
-                }
-            }
-        },
-        "util": {
-            "version": "0.12.3",
-            "resolved": "https://registry.npmjs.org/util/-/util-0.12.3.tgz",
-            "integrity": "sha512-I8XkoQwE+fPQEhy9v012V+TSdH2kp9ts29i20TaaDUXsg7x/onePbhFJUExBfv/2ay1ZOp/Vsm3nDlmnFGSAog==",
-            "dev": true,
-            "requires": {
-                "inherits": "2.0.4",
-                "is-arguments": "1.1.0",
-                "is-generator-function": "1.0.8",
-                "is-typed-array": "1.1.4",
-                "safe-buffer": "5.2.1",
-                "which-typed-array": "1.1.4"
-            }
-        },
-        "util-deprecate": {
-            "version": "1.0.2",
-            "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
-            "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
-            "dev": true
-        },
-        "vm-browserify": {
-            "version": "1.1.2",
-            "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz",
-            "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==",
-            "dev": true
-        },
-        "which-typed-array": {
-            "version": "1.1.4",
-            "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.4.tgz",
-            "integrity": "sha512-49E0SpUe90cjpoc7BOJwyPHRqSAd12c10Qm2amdEZrJPCY2NDxaW01zHITrem+rnETY3dwrbH3UUrUwagfCYDA==",
-            "dev": true,
-            "requires": {
-                "available-typed-arrays": "1.0.2",
-                "call-bind": "1.0.0",
-                "es-abstract": "1.18.0-next.1",
-                "foreach": "2.0.5",
-                "function-bind": "1.1.1",
-                "has-symbols": "1.0.1",
-                "is-typed-array": "1.1.4"
-            }
-        },
-        "wrappy": {
-            "version": "1.0.2",
-            "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
-            "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
-            "dev": true
-        },
-        "xtend": {
-            "version": "4.0.2",
-            "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
-            "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
-            "dev": true
-        }
-    }
-}
diff --git a/fiche-inscription.pdf b/public/assets/documents/fiche-inscription.pdf
similarity index 100%
rename from fiche-inscription.pdf
rename to public/assets/documents/fiche-inscription.pdf
diff --git a/assets/images/game_studio_banner.png b/public/assets/images/game_studio_banner.png
similarity index 100%
rename from assets/images/game_studio_banner.png
rename to public/assets/images/game_studio_banner.png
diff --git a/assets/images/learning_theme_2d.png b/public/assets/images/learning_theme_2d.png
similarity index 100%
rename from assets/images/learning_theme_2d.png
rename to public/assets/images/learning_theme_2d.png
diff --git a/assets/images/learning_theme_coding.png b/public/assets/images/learning_theme_coding.png
similarity index 100%
rename from assets/images/learning_theme_coding.png
rename to public/assets/images/learning_theme_coding.png
diff --git a/assets/images/learning_theme_conception.png b/public/assets/images/learning_theme_conception.png
similarity index 100%
rename from assets/images/learning_theme_conception.png
rename to public/assets/images/learning_theme_conception.png
diff --git a/assets/images/learning_theme_linux.png b/public/assets/images/learning_theme_linux.png
similarity index 100%
rename from assets/images/learning_theme_linux.png
rename to public/assets/images/learning_theme_linux.png
diff --git a/assets/images/learning_theme_math.png b/public/assets/images/learning_theme_math.png
similarity index 100%
rename from assets/images/learning_theme_math.png
rename to public/assets/images/learning_theme_math.png
diff --git a/assets/images/learning_theme_pc.png b/public/assets/images/learning_theme_pc.png
similarity index 100%
rename from assets/images/learning_theme_pc.png
rename to public/assets/images/learning_theme_pc.png
diff --git a/assets/images/learning_theme_sound.png b/public/assets/images/learning_theme_sound.png
similarity index 100%
rename from assets/images/learning_theme_sound.png
rename to public/assets/images/learning_theme_sound.png
diff --git a/assets/images/learning_theme_team.png b/public/assets/images/learning_theme_team.png
similarity index 100%
rename from assets/images/learning_theme_team.png
rename to public/assets/images/learning_theme_team.png
diff --git a/assets/images/learning_theme_web.png b/public/assets/images/learning_theme_web.png
similarity index 100%
rename from assets/images/learning_theme_web.png
rename to public/assets/images/learning_theme_web.png
diff --git a/assets/images/learning_theme_write.png b/public/assets/images/learning_theme_write.png
similarity index 100%
rename from assets/images/learning_theme_write.png
rename to public/assets/images/learning_theme_write.png
diff --git a/assets/images/logo_kuadrado.png b/public/assets/images/logo_kuadrado.png
similarity index 100%
rename from assets/images/logo_kuadrado.png
rename to public/assets/images/logo_kuadrado.png
diff --git a/assets/images/logo_kuadrado.svg b/public/assets/images/logo_kuadrado.svg
similarity index 100%
rename from assets/images/logo_kuadrado.svg
rename to public/assets/images/logo_kuadrado.svg
diff --git a/assets/images/logo_kuadrado_l.png b/public/assets/images/logo_kuadrado_l.png
similarity index 100%
rename from assets/images/logo_kuadrado_l.png
rename to public/assets/images/logo_kuadrado_l.png
diff --git a/assets/images/logo_kuadrado_l64.png b/public/assets/images/logo_kuadrado_l64.png
similarity index 100%
rename from assets/images/logo_kuadrado_l64.png
rename to public/assets/images/logo_kuadrado_l64.png
diff --git a/assets/images/logo_kuadrado_s32.png b/public/assets/images/logo_kuadrado_s32.png
similarity index 100%
rename from assets/images/logo_kuadrado_s32.png
rename to public/assets/images/logo_kuadrado_s32.png
diff --git a/assets/images/logo_kuadrado_xs16.png b/public/assets/images/logo_kuadrado_xs16.png
similarity index 100%
rename from assets/images/logo_kuadrado_xs16.png
rename to public/assets/images/logo_kuadrado_xs16.png
diff --git a/assets/images/popularization_banner.png b/public/assets/images/popularization_banner.png
similarity index 100%
rename from assets/images/popularization_banner.png
rename to public/assets/images/popularization_banner.png
diff --git a/assets/images/wallpaper_binary.png b/public/assets/images/wallpaper_binary.png
similarity index 100%
rename from assets/images/wallpaper_binary.png
rename to public/assets/images/wallpaper_binary.png
diff --git a/assets/images/wallpaper_binary_light.png b/public/assets/images/wallpaper_binary_light.png
similarity index 100%
rename from assets/images/wallpaper_binary_light.png
rename to public/assets/images/wallpaper_binary_light.png
diff --git a/assets/images/wallpaper_binary_white.png b/public/assets/images/wallpaper_binary_white.png
similarity index 100%
rename from assets/images/wallpaper_binary_white.png
rename to public/assets/images/wallpaper_binary_white.png
diff --git a/public/education/education.js b/public/education/education.js
index b1ae3c319ba42237fe5f82607fc9471c10eebc83..6b5614b0b41238d4617c02a70e78164b020736b9 100644
--- a/public/education/education.js
+++ b/public/education/education.js
@@ -703,15 +703,15 @@ const { images_url } = require("../../../constants");
 
 const HOME_LOGO = "logo_kuadrado.svg";
 const NAV_MENU_ITEMS = [
-    ["/public/games/", "Jeux"],
-    ["/public/software-development/", "Software"],
+    ["/games/", "Jeux"],
+    ["/software-development/", "Software"],
     [
-        "/public/education/",
+        "/education/",
         "Pédagogie",
         [
             // submenu
-            ["/public/education/#game-studio-club", "Game Studio Club"],
-            ["/public/education/#popularization", "Vulgarisation numérique"],
+            ["/education/#game-studio-club", "Game Studio Club"],
+            ["/education/#popularization", "Vulgarisation numérique"],
         ],
     ],
 ];
@@ -744,7 +744,7 @@ class NavBar {
             contents: [
                 {
                     tag: "a",
-                    href: "/public/",
+                    href: "/",
                     contents: [
                         {
                             tag: "img",
diff --git a/public/education/index.html b/public/education/index.html
index bc5fec552e4ae723c4535706cc649affd9067777..590b18a320bfe192b348ac1078fa2b1ea46177d5 100644
--- a/public/education/index.html
+++ b/public/education/index.html
@@ -6,7 +6,7 @@
         <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1" />
         <title>Kuadrado Software - education</title>
         <link rel="icon" type="image/svg+xml" href="/favicon.svg">
-        <link href="../../style/style.css" rel="stylesheet" />
+        <link href="/style/style.css" rel="stylesheet" />
     </head>
     <body>
         <main></main>
diff --git a/favicon.ico b/public/favicon.ico
similarity index 100%
rename from favicon.ico
rename to public/favicon.ico
diff --git a/favicon.svg b/public/favicon.svg
similarity index 100%
rename from favicon.svg
rename to public/favicon.svg
diff --git a/public/games/games.js b/public/games/games.js
index 5ce496502a1b71dfe1f915ca47e53acf7fe3bcc8..ad0584df9c4ef3efd08cd5c92c091fa36161261a 100644
--- a/public/games/games.js
+++ b/public/games/games.js
@@ -156,15 +156,15 @@ const { images_url } = require("../../../constants");
 
 const HOME_LOGO = "logo_kuadrado.svg";
 const NAV_MENU_ITEMS = [
-    ["/public/games/", "Jeux"],
-    ["/public/software-development/", "Software"],
+    ["/games/", "Jeux"],
+    ["/software-development/", "Software"],
     [
-        "/public/education/",
+        "/education/",
         "Pédagogie",
         [
             // submenu
-            ["/public/education/#game-studio-club", "Game Studio Club"],
-            ["/public/education/#popularization", "Vulgarisation numérique"],
+            ["/education/#game-studio-club", "Game Studio Club"],
+            ["/education/#popularization", "Vulgarisation numérique"],
         ],
     ],
 ];
@@ -197,7 +197,7 @@ class NavBar {
             contents: [
                 {
                     tag: "a",
-                    href: "/public/",
+                    href: "/",
                     contents: [
                         {
                             tag: "img",
diff --git a/public/games/index.html b/public/games/index.html
index 4362afcd322e75ccb322e55b3012a85e69aac5c0..8dd6a7fa82cf61a6f0ed0b81cef707cb6780d800 100644
--- a/public/games/index.html
+++ b/public/games/index.html
@@ -6,7 +6,7 @@
         <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1" />
         <title>Kuadrado Software - games</title>
         <link rel="icon" type="image/svg+xml" href="/favicon.svg">
-        <link href="../../style/style.css" rel="stylesheet" />
+        <link href="/style/style.css" rel="stylesheet" />
     </head>
     <body>
         <main></main>
diff --git a/public/index.html b/public/index.html
index fc830e396412d00b10383af495d78ab8eeef3da8..c9f6a1b3503f9beccf9206a12335b7f26a82fc3d 100644
--- a/public/index.html
+++ b/public/index.html
@@ -5,7 +5,7 @@
         <title>Kuadrado Software</title>
         <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1" />
         <link rel="icon" type="image/svg+xml" href="/favicon.svg">
-        <link href="../style/style.css" rel="stylesheet" />
+        <link href="/style/style.css" rel="stylesheet" />
     </head>
     <body>
         <main></main>
diff --git a/public/main.js b/public/main.js
index d3fe1383827936afc7a85ca7264a16aaeeaa6a6f..a1e60d06374d4dd531ec753d853618c76addda15 100644
--- a/public/main.js
+++ b/public/main.js
@@ -156,15 +156,15 @@ const { images_url } = require("../../../constants");
 
 const HOME_LOGO = "logo_kuadrado.svg";
 const NAV_MENU_ITEMS = [
-    ["/public/games/", "Jeux"],
-    ["/public/software-development/", "Software"],
+    ["/games/", "Jeux"],
+    ["/software-development/", "Software"],
     [
-        "/public/education/",
+        "/education/",
         "Pédagogie",
         [
             // submenu
-            ["/public/education/#game-studio-club", "Game Studio Club"],
-            ["/public/education/#popularization", "Vulgarisation numérique"],
+            ["/education/#game-studio-club", "Game Studio Club"],
+            ["/education/#popularization", "Vulgarisation numérique"],
         ],
     ],
 ];
@@ -197,7 +197,7 @@ class NavBar {
             contents: [
                 {
                     tag: "a",
-                    href: "/public/",
+                    href: "/",
                     contents: [
                         {
                             tag: "img",
diff --git a/public/software-development/index.html b/public/software-development/index.html
index f8aa4957c4ea7fd7a59ac3dfc7ab6f4bcfb5e0b6..4772d88c2a057caeee45af5b7261affab2889039 100644
--- a/public/software-development/index.html
+++ b/public/software-development/index.html
@@ -6,7 +6,7 @@
         <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1" />
         <title>Kuadrado Software - software-development</title>
         <link rel="icon" type="image/svg+xml" href="/favicon.svg">
-        <link href="../../style/style.css" rel="stylesheet" />
+        <link href="/style/style.css" rel="stylesheet" />
     </head>
     <body>
         <main></main>
diff --git a/public/software-development/software-development.js b/public/software-development/software-development.js
index f623e3468cef22a22c7598788e4fae362be0e9a4..41ac9568cddbd26fee78e3190a637ea6332eb903 100644
--- a/public/software-development/software-development.js
+++ b/public/software-development/software-development.js
@@ -156,15 +156,15 @@ const { images_url } = require("../../../constants");
 
 const HOME_LOGO = "logo_kuadrado.svg";
 const NAV_MENU_ITEMS = [
-    ["/public/games/", "Jeux"],
-    ["/public/software-development/", "Software"],
+    ["/games/", "Jeux"],
+    ["/software-development/", "Software"],
     [
-        "/public/education/",
+        "/education/",
         "Pédagogie",
         [
             // submenu
-            ["/public/education/#game-studio-club", "Game Studio Club"],
-            ["/public/education/#popularization", "Vulgarisation numérique"],
+            ["/education/#game-studio-club", "Game Studio Club"],
+            ["/education/#popularization", "Vulgarisation numérique"],
         ],
     ],
 ];
@@ -197,7 +197,7 @@ class NavBar {
             contents: [
                 {
                     tag: "a",
-                    href: "/public/",
+                    href: "/",
                     contents: [
                         {
                             tag: "img",
diff --git a/style/pages/education/education.css b/public/style/pages/education/education.css
similarity index 100%
rename from style/pages/education/education.css
rename to public/style/pages/education/education.css
diff --git a/style/style.css b/public/style/style.css
similarity index 100%
rename from style/style.css
rename to public/style/style.css
diff --git a/style/theme.css b/public/style/theme.css
similarity index 100%
rename from style/theme.css
rename to public/style/theme.css
diff --git a/src/pages/education/education.scss b/src/pages/education/education.scss
index b91628e5e343797a846ff5379543884985d8007c..163dea9d2b3d7da994ada31d811acc2137f23472 100644
--- a/src/pages/education/education.scss
+++ b/src/pages/education/education.scss
@@ -20,10 +20,10 @@
         height: 15vw;
         min-height: 250px;
         &.game-banner {
-            background-image: url("../../../assets/images/game_studio_banner.png");
+            background-image: url("/assets/images/game_studio_banner.png");
         }
         &.popu-banner {
-            background-image: url("../../../assets/images/popularization_banner.png");
+            background-image: url("/assets/images/popularization_banner.png");
         }
         background-size: cover;
         background-repeat: no-repeat;
diff --git a/src/style.scss b/src/style.scss
index a9908237dd8607a4e7cd3fa267a5d7cbf04dbecd..2959fd68fb9be5542c2d3e6ae294575e330d22bd 100644
--- a/src/style.scss
+++ b/src/style.scss
@@ -26,7 +26,7 @@ body {
 }
 
 main {
-    background: url("../assets/images/wallpaper_binary_white.png");
+    background: url("/assets/images/wallpaper_binary_white.png");
     display: flex;
     flex-direction: column;
     align-items: center;
diff --git a/src/template/components/navbar.js b/src/template/components/navbar.js
index d32ebdba74325a623b916a049dd44d7976b9eb08..9a77dc0ebdbfb6b003865ac780fcc26027b62d64 100644
--- a/src/template/components/navbar.js
+++ b/src/template/components/navbar.js
@@ -4,15 +4,15 @@ const { images_url } = require("../../../constants");
 
 const HOME_LOGO = "logo_kuadrado.svg";
 const NAV_MENU_ITEMS = [
-    ["/public/games/", "Jeux"],
-    ["/public/software-development/", "Software"],
+    ["/games/", "Jeux"],
+    ["/software-development/", "Software"],
     [
-        "/public/education/",
+        "/education/",
         "Pédagogie",
         [
             // submenu
-            ["/public/education/#game-studio-club", "Game Studio Club"],
-            ["/public/education/#popularization", "Vulgarisation numérique"],
+            ["/education/#game-studio-club", "Game Studio Club"],
+            ["/education/#popularization", "Vulgarisation numérique"],
         ],
     ],
 ];
@@ -45,7 +45,7 @@ class NavBar {
             contents: [
                 {
                     tag: "a",
-                    href: "/public/",
+                    href: "/",
                     contents: [
                         {
                             tag: "img",
diff --git a/style/style.css.map b/style/style.css.map
deleted file mode 100644
index 15c767961bd96c6edd8409599ff6d3f0895848e0..0000000000000000000000000000000000000000
--- a/style/style.css.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sourceRoot":"","sources":["../src/style.scss","../src/theme.scss","../src/pages/education/education.scss"],"names":[],"mappings":"AAEA;EAKI;EACA;;AALA;EACI;EACA,OCLC;;ADSL;EACI;EACA;EACA;;AAEJ;EACI,OCHC;EDID;;AACA;EACI,OCLH;;ADSL;EACI,OCXC;;;ADeT;EACI;EACA;EACA;EACA;EACA;;AACA;EACI;;AACA;EACI;EACA;EACA,QCXI;EDYJ;;AACA;EACI;;AACA;EACI;;AAGR;EACI;EACA;EACA;EACA;;AACA;EACI;;AACA;EACI;EACA;EACA;EACA;EACA,OCrDd;EDsDc;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGA;EACI,OC7EnB;ED8EmB;;AAIJ;EACI,OCnFnB;;ADsFe;EACI;EACA;;AACA;EACI,OCtFtB;EDuFsB;;AAII;EACI,OChG/B;;ADwGG;EACI;;AAEJ;EAzEJ;IA0EQ;;EACA;IACI;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,OCxHX;IDyHW;;EAEJ;IACI;;EACA;IACI;IACA;IACA;IACA;IACA;IACA,KC1GR;ID2GQ;IACA;IACA;;EAGQ;IACI;;EAGR;IACI;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAQA;;EANI;IACI;IACA;IACA,OCvJ9B;;;ADkKN;EACI;EACA;EACA;EACA;;AE1KJ;EACI;EACA;;AAGA;EACI;;AAGR;EACI;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;EACA;EAOA;EACA;EACA;;AARA;EACI;;AAEJ;EACI;;AAKJ;EACI;EACA;EACA;EACA;;AAGR;EACI;EACA;EACA;EACA;EACA;;AACA;EACI;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA,kBDhDF;ECiDE;;AACA;EACI;EACA;EACA;EACA;;AACA;EACI;;AAEJ;AAAA;EAEI;;AAIZ;EACI;EACA;;AACA;EACI;EACA;EACA;;AACA;EACI;EACA;EACA;EACA;EACA;;AACA;EACI,ODjFf;ECkFe;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACI;;AACA;EACI,ODjHlB;;ACoHU;EACI;EACA;EACA;;AACA;EACI,ODzHlB;;AC8HU;EACI;EACA;;AAOpB;EACI;EACA;EACA,kBDzIF;EC0IE;;AACA;AAAA;EAEI;EACA;EACA;EACA;;AACA;AAAA;EACI;;AAGA;AAAA;EACI;EACA;;AACA;AAAA;EACI;EACA;;AAIZ;AAAA;EACI;EACA;EACA;EACA;;AAKhB;EAGY;IACI;;EACA;IACI;IACA;;EACA;IACI;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EACA;IACI;IACA;IACA;;EAOpB;IACI;;;AAKZ;EACI;IACI;IACA;;EAGA;IACI;;EAGR;IACI;IACA;;EAEJ;IACI;IACA;;EACA;IACI;IACA;IACA;;EAGR;IACI;IACA;;EACA;IACI;;EAEJ;IACI;IACA;IACA;IACA;;EAGA;IACI;IACA;IACA;;EACA;IACI;;EACA;IACI;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAMhB;IACI;IACA;;EACA;AAAA;IAEI;IACA;IACA;IACA;;EAEI;AAAA;IACI;;EACA;AAAA;IACI;IACA;;;AFtG5B;EACI;EACA;EACA","file":"style.css"}
\ No newline at end of file