summaryrefslogtreecommitdiff
path: root/build/server
diff options
context:
space:
mode:
authorKirill Rogovoy <[email protected]>2021-07-23 16:41:09 +0300
committerKirill Rogovoy <[email protected]>2021-07-23 16:41:09 +0300
commit7f3943439a7a5e20df1cca1578140a25eb973ad0 (patch)
treed7c00989db05c87ee948c4fa0ef05abd02ae0aa2 /build/server
parentc20eff6f40a994945f8b24d095c4f6f2f270c925 (diff)
Bring physics back
Diffstat (limited to 'build/server')
-rw-r--r--build/server/chunks/624.js2510
-rw-r--r--build/server/font-manifest.json1
-rw-r--r--build/server/pages-manifest.json7
-rw-r--r--build/server/pages/404.html1
-rw-r--r--build/server/pages/500.html1
-rw-r--r--build/server/pages/_app.js66
-rw-r--r--build/server/pages/_document.js1209
-rw-r--r--build/server/pages/_error.js151
-rw-r--r--build/server/pages/index.html1
-rw-r--r--build/server/webpack-runtime.js160
10 files changed, 0 insertions, 4107 deletions
diff --git a/build/server/chunks/624.js b/build/server/chunks/624.js
deleted file mode 100644
index 8fd3f14..0000000
--- a/build/server/chunks/624.js
+++ /dev/null
@@ -1,2510 +0,0 @@
-exports.id = 624;
-exports.ids = [624];
-exports.modules = {
-
-/***/ 265:
-/***/ (function(__unused_webpack_module, exports) {
-
-// https://github.com/vasturiano/d3-binarytree v0.2.0 Copyright 2021 Vasco Asturiano
-(function (global, factory) {
- true ? factory(exports) : 0;
-})(this, function (exports) {
- 'use strict';
-
- function tree_add(d) {
- var x = +this._x.call(null, d);
- return add(this.cover(x), x, d);
- }
-
- function add(tree, x, d) {
- if (isNaN(x)) return tree; // ignore invalid points
-
- var parent,
- node = tree._root,
- leaf = {
- data: d
- },
- x0 = tree._x0,
- x1 = tree._x1,
- xm,
- xp,
- right,
- i,
- j; // If the tree is empty, initialize the root as a leaf.
-
- if (!node) return tree._root = leaf, tree; // Find the existing leaf for the new point, or add it.
-
- while (node.length) {
- if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm;else x1 = xm;
- if (parent = node, !(node = node[i = +right])) return parent[i] = leaf, tree;
- } // Is the new point is exactly coincident with the existing point?
-
-
- xp = +tree._x.call(null, node.data);
- if (x === xp) return leaf.next = node, parent ? parent[i] = leaf : tree._root = leaf, tree; // Otherwise, split the leaf node until the old and new point are separated.
-
- do {
- parent = parent ? parent[i] = new Array(2) : tree._root = new Array(2);
- if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm;else x1 = xm;
- } while ((i = +right) === (j = +(xp >= xm)));
-
- return parent[j] = node, parent[i] = leaf, tree;
- }
-
- function addAll(data) {
- var i,
- n = data.length,
- x,
- xz = new Array(n),
- x0 = Infinity,
- x1 = -Infinity; // Compute the points and their extent.
-
- for (i = 0; i < n; ++i) {
- if (isNaN(x = +this._x.call(null, data[i]))) continue;
- xz[i] = x;
- if (x < x0) x0 = x;
- if (x > x1) x1 = x;
- } // If there were no (valid) points, abort.
-
-
- if (x0 > x1) return this; // Expand the tree to cover the new points.
-
- this.cover(x0).cover(x1); // Add the new points.
-
- for (i = 0; i < n; ++i) {
- add(this, xz[i], data[i]);
- }
-
- return this;
- }
-
- function tree_cover(x) {
- if (isNaN(x = +x)) return this; // ignore invalid points
-
- var x0 = this._x0,
- x1 = this._x1; // If the binarytree has no extent, initialize them.
- // Integer extent are necessary so that if we later double the extent,
- // the existing half boundaries don’t change due to floating point error!
-
- if (isNaN(x0)) {
- x1 = (x0 = Math.floor(x)) + 1;
- } // Otherwise, double repeatedly to cover.
- else {
- var z = x1 - x0 || 1,
- node = this._root,
- parent,
- i;
-
- while (x0 > x || x >= x1) {
- i = +(x < x0);
- parent = new Array(2), parent[i] = node, node = parent, z *= 2;
-
- switch (i) {
- case 0:
- x1 = x0 + z;
- break;
-
- case 1:
- x0 = x1 - z;
- break;
- }
- }
-
- if (this._root && this._root.length) this._root = node;
- }
-
- this._x0 = x0;
- this._x1 = x1;
- return this;
- }
-
- function tree_data() {
- var data = [];
- this.visit(function (node) {
- if (!node.length) do data.push(node.data); while (node = node.next);
- });
- return data;
- }
-
- function tree_extent(_) {
- return arguments.length ? this.cover(+_[0][0]).cover(+_[1][0]) : isNaN(this._x0) ? undefined : [[this._x0], [this._x1]];
- }
-
- function Half(node, x0, x1) {
- this.node = node;
- this.x0 = x0;
- this.x1 = x1;
- }
-
- function tree_find(x, radius) {
- var data,
- x0 = this._x0,
- x1,
- x2,
- x3 = this._x1,
- halves = [],
- node = this._root,
- q,
- i;
- if (node) halves.push(new Half(node, x0, x3));
- if (radius == null) radius = Infinity;else {
- x0 = x - radius;
- x3 = x + radius;
- }
-
- while (q = halves.pop()) {
- // Stop searching if this half can’t contain a closer node.
- if (!(node = q.node) || (x1 = q.x0) > x3 || (x2 = q.x1) < x0) continue; // Bisect the current half.
-
- if (node.length) {
- var xm = (x1 + x2) / 2;
- halves.push(new Half(node[1], xm, x2), new Half(node[0], x1, xm)); // Visit the closest half first.
-
- if (i = +(x >= xm)) {
- q = halves[halves.length - 1];
- halves[halves.length - 1] = halves[halves.length - 1 - i];
- halves[halves.length - 1 - i] = q;
- }
- } // Visit this point. (Visiting coincident points isn’t necessary!)
- else {
- var d = Math.abs(x - +this._x.call(null, node.data));
-
- if (d < radius) {
- radius = d;
- x0 = x - d;
- x3 = x + d;
- data = node.data;
- }
- }
- }
-
- return data;
- }
-
- function tree_remove(d) {
- if (isNaN(x = +this._x.call(null, d))) return this; // ignore invalid points
-
- var parent,
- node = this._root,
- retainer,
- previous,
- next,
- x0 = this._x0,
- x1 = this._x1,
- x,
- xm,
- right,
- i,
- j; // If the tree is empty, initialize the root as a leaf.
-
- if (!node) return this; // Find the leaf node for the point.
- // While descending, also retain the deepest parent with a non-removed sibling.
-
- if (node.length) while (true) {
- if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm;else x1 = xm;
- if (!(parent = node, node = node[i = +right])) return this;
- if (!node.length) break;
- if (parent[i + 1 & 1]) retainer = parent, j = i;
- } // Find the point to remove.
-
- while (node.data !== d) if (!(previous = node, node = node.next)) return this;
-
- if (next = node.next) delete node.next; // If there are multiple coincident points, remove just the point.
-
- if (previous) return next ? previous.next = next : delete previous.next, this; // If this is the root point, remove it.
-
- if (!parent) return this._root = next, this; // Remove this leaf.
-
- next ? parent[i] = next : delete parent[i]; // If the parent now contains exactly one leaf, collapse superfluous parents.
-
- if ((node = parent[0] || parent[1]) && node === (parent[1] || parent[0]) && !node.length) {
- if (retainer) retainer[j] = node;else this._root = node;
- }
-
- return this;
- }
-
- function removeAll(data) {
- for (var i = 0, n = data.length; i < n; ++i) this.remove(data[i]);
-
- return this;
- }
-
- function tree_root() {
- return this._root;
- }
-
- function tree_size() {
- var size = 0;
- this.visit(function (node) {
- if (!node.length) do ++size; while (node = node.next);
- });
- return size;
- }
-
- function tree_visit(callback) {
- var halves = [],
- q,
- node = this._root,
- child,
- x0,
- x1;
- if (node) halves.push(new Half(node, this._x0, this._x1));
-
- while (q = halves.pop()) {
- if (!callback(node = q.node, x0 = q.x0, x1 = q.x1) && node.length) {
- var xm = (x0 + x1) / 2;
- if (child = node[1]) halves.push(new Half(child, xm, x1));
- if (child = node[0]) halves.push(new Half(child, x0, xm));
- }
- }
-
- return this;
- }
-
- function tree_visitAfter(callback) {
- var halves = [],
- next = [],
- q;
- if (this._root) halves.push(new Half(this._root, this._x0, this._x1));
-
- while (q = halves.pop()) {
- var node = q.node;
-
- if (node.length) {
- var child,
- x0 = q.x0,
- x1 = q.x1,
- xm = (x0 + x1) / 2;
- if (child = node[0]) halves.push(new Half(child, x0, xm));
- if (child = node[1]) halves.push(new Half(child, xm, x1));
- }
-
- next.push(q);
- }
-
- while (q = next.pop()) {
- callback(q.node, q.x0, q.x1);
- }
-
- return this;
- }
-
- function defaultX(d) {
- return d[0];
- }
-
- function tree_x(_) {
- return arguments.length ? (this._x = _, this) : this._x;
- }
-
- function binarytree(nodes, x) {
- var tree = new Binarytree(x == null ? defaultX : x, NaN, NaN);
- return nodes == null ? tree : tree.addAll(nodes);
- }
-
- function Binarytree(x, x0, x1) {
- this._x = x;
- this._x0 = x0;
- this._x1 = x1;
- this._root = undefined;
- }
-
- function leaf_copy(leaf) {
- var copy = {
- data: leaf.data
- },
- next = copy;
-
- while (leaf = leaf.next) next = next.next = {
- data: leaf.data
- };
-
- return copy;
- }
-
- var treeProto = binarytree.prototype = Binarytree.prototype;
-
- treeProto.copy = function () {
- var copy = new Binarytree(this._x, this._x0, this._x1),
- node = this._root,
- nodes,
- child;
- if (!node) return copy;
- if (!node.length) return copy._root = leaf_copy(node), copy;
- nodes = [{
- source: node,
- target: copy._root = new Array(2)
- }];
-
- while (node = nodes.pop()) {
- for (var i = 0; i < 2; ++i) {
- if (child = node.source[i]) {
- if (child.length) nodes.push({
- source: child,
- target: node.target[i] = new Array(2)
- });else node.target[i] = leaf_copy(child);
- }
- }
- }
-
- return copy;
- };
-
- treeProto.add = tree_add;
- treeProto.addAll = addAll;
- treeProto.cover = tree_cover;
- treeProto.data = tree_data;
- treeProto.extent = tree_extent;
- treeProto.find = tree_find;
- treeProto.remove = tree_remove;
- treeProto.removeAll = removeAll;
- treeProto.root = tree_root;
- treeProto.size = tree_size;
- treeProto.visit = tree_visit;
- treeProto.visitAfter = tree_visitAfter;
- treeProto.x = tree_x;
- exports.binarytree = binarytree;
- Object.defineProperty(exports, '__esModule', {
- value: true
- });
-});
-
-/***/ }),
-
-/***/ 624:
-/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-// ESM COMPAT FLAG
-__webpack_require__.r(__webpack_exports__);
-
-// EXPORTS
-__webpack_require__.d(__webpack_exports__, {
- "forceCenter": function() { return /* reexport */ center; },
- "forceCollide": function() { return /* reexport */ collide; },
- "forceLink": function() { return /* reexport */ src_link; },
- "forceManyBody": function() { return /* reexport */ manyBody; },
- "forceRadial": function() { return /* reexport */ radial; },
- "forceSimulation": function() { return /* reexport */ simulation; },
- "forceX": function() { return /* reexport */ src_x; },
- "forceY": function() { return /* reexport */ src_y; },
- "forceZ": function() { return /* reexport */ src_z; }
-});
-
-;// CONCATENATED MODULE: ./node_modules/d3-force-3d/src/center.js
-/* harmony default export */ function center(x, y, z) {
- var nodes,
- strength = 1;
- if (x == null) x = 0;
- if (y == null) y = 0;
- if (z == null) z = 0;
-
- function force() {
- var i,
- n = nodes.length,
- node,
- sx = 0,
- sy = 0,
- sz = 0;
-
- for (i = 0; i < n; ++i) {
- node = nodes[i], sx += node.x || 0, sy += node.y || 0, sz += node.z || 0;
- }
-
- for (sx = (sx / n - x) * strength, sy = (sy / n - y) * strength, sz = (sz / n - z) * strength, i = 0; i < n; ++i) {
- node = nodes[i];
-
- if (sx) {
- node.x -= sx;
- }
-
- if (sy) {
- node.y -= sy;
- }
-
- if (sz) {
- node.z -= sz;
- }
- }
- }
-
- force.initialize = function (_) {
- nodes = _;
- };
-
- force.x = function (_) {
- return arguments.length ? (x = +_, force) : x;
- };
-
- force.y = function (_) {
- return arguments.length ? (y = +_, force) : y;
- };
-
- force.z = function (_) {
- return arguments.length ? (z = +_, force) : z;
- };
-
- force.strength = function (_) {
- return arguments.length ? (strength = +_, force) : strength;
- };
-
- return force;
-}
-// EXTERNAL MODULE: ./node_modules/d3-binarytree/dist/d3-binarytree.js
-var d3_binarytree = __webpack_require__(265);
-;// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/add.js
-/* harmony default export */ function add(d) {
- const x = +this._x.call(null, d),
- y = +this._y.call(null, d);
- return add_add(this.cover(x, y), x, y, d);
-}
-
-function add_add(tree, x, y, d) {
- if (isNaN(x) || isNaN(y)) return tree; // ignore invalid points
-
- var parent,
- node = tree._root,
- leaf = {
- data: d
- },
- x0 = tree._x0,
- y0 = tree._y0,
- x1 = tree._x1,
- y1 = tree._y1,
- xm,
- ym,
- xp,
- yp,
- right,
- bottom,
- i,
- j; // If the tree is empty, initialize the root as a leaf.
-
- if (!node) return tree._root = leaf, tree; // Find the existing leaf for the new point, or add it.
-
- while (node.length) {
- if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm;else x1 = xm;
- if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym;else y1 = ym;
- if (parent = node, !(node = node[i = bottom << 1 | right])) return parent[i] = leaf, tree;
- } // Is the new point is exactly coincident with the existing point?
-
-
- xp = +tree._x.call(null, node.data);
- yp = +tree._y.call(null, node.data);
- if (x === xp && y === yp) return leaf.next = node, parent ? parent[i] = leaf : tree._root = leaf, tree; // Otherwise, split the leaf node until the old and new point are separated.
-
- do {
- parent = parent ? parent[i] = new Array(4) : tree._root = new Array(4);
- if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm;else x1 = xm;
- if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym;else y1 = ym;
- } while ((i = bottom << 1 | right) === (j = (yp >= ym) << 1 | xp >= xm));
-
- return parent[j] = node, parent[i] = leaf, tree;
-}
-
-function addAll(data) {
- var d,
- i,
- n = data.length,
- x,
- y,
- xz = new Array(n),
- yz = new Array(n),
- x0 = Infinity,
- y0 = Infinity,
- x1 = -Infinity,
- y1 = -Infinity; // Compute the points and their extent.
-
- for (i = 0; i < n; ++i) {
- if (isNaN(x = +this._x.call(null, d = data[i])) || isNaN(y = +this._y.call(null, d))) continue;
- xz[i] = x;
- yz[i] = y;
- if (x < x0) x0 = x;
- if (x > x1) x1 = x;
- if (y < y0) y0 = y;
- if (y > y1) y1 = y;
- } // If there were no (valid) points, abort.
-
-
- if (x0 > x1 || y0 > y1) return this; // Expand the tree to cover the new points.
-
- this.cover(x0, y0).cover(x1, y1); // Add the new points.
-
- for (i = 0; i < n; ++i) {
- add_add(this, xz[i], yz[i], data[i]);
- }
-
- return this;
-}
-;// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/cover.js
-/* harmony default export */ function cover(x, y) {
- if (isNaN(x = +x) || isNaN(y = +y)) return this; // ignore invalid points
-
- var x0 = this._x0,
- y0 = this._y0,
- x1 = this._x1,
- y1 = this._y1; // If the quadtree has no extent, initialize them.
- // Integer extent are necessary so that if we later double the extent,
- // the existing quadrant boundaries don’t change due to floating point error!
-
- if (isNaN(x0)) {
- x1 = (x0 = Math.floor(x)) + 1;
- y1 = (y0 = Math.floor(y)) + 1;
- } // Otherwise, double repeatedly to cover.
- else {
- var z = x1 - x0 || 1,
- node = this._root,
- parent,
- i;
-
- while (x0 > x || x >= x1 || y0 > y || y >= y1) {
- i = (y < y0) << 1 | x < x0;
- parent = new Array(4), parent[i] = node, node = parent, z *= 2;
-
- switch (i) {
- case 0:
- x1 = x0 + z, y1 = y0 + z;
- break;
-
- case 1:
- x0 = x1 - z, y1 = y0 + z;
- break;
-
- case 2:
- x1 = x0 + z, y0 = y1 - z;
- break;
-
- case 3:
- x0 = x1 - z, y0 = y1 - z;
- break;
- }
- }
-
- if (this._root && this._root.length) this._root = node;
- }
-
- this._x0 = x0;
- this._y0 = y0;
- this._x1 = x1;
- this._y1 = y1;
- return this;
-}
-;// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/data.js
-/* harmony default export */ function data() {
- var data = [];
- this.visit(function (node) {
- if (!node.length) do data.push(node.data); while (node = node.next);
- });
- return data;
-}
-;// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/extent.js
-/* harmony default export */ function extent(_) {
- return arguments.length ? this.cover(+_[0][0], +_[0][1]).cover(+_[1][0], +_[1][1]) : isNaN(this._x0) ? undefined : [[this._x0, this._y0], [this._x1, this._y1]];
-}
-;// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/quad.js
-/* harmony default export */ function quad(node, x0, y0, x1, y1) {
- this.node = node;
- this.x0 = x0;
- this.y0 = y0;
- this.x1 = x1;
- this.y1 = y1;
-}
-;// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/find.js
-
-/* harmony default export */ function find(x, y, radius) {
- var data,
- x0 = this._x0,
- y0 = this._y0,
- x1,
- y1,
- x2,
- y2,
- x3 = this._x1,
- y3 = this._y1,
- quads = [],
- node = this._root,
- q,
- i;
- if (node) quads.push(new quad(node, x0, y0, x3, y3));
- if (radius == null) radius = Infinity;else {
- x0 = x - radius, y0 = y - radius;
- x3 = x + radius, y3 = y + radius;
- radius *= radius;
- }
-
- while (q = quads.pop()) {
- // Stop searching if this quadrant can’t contain a closer node.
- if (!(node = q.node) || (x1 = q.x0) > x3 || (y1 = q.y0) > y3 || (x2 = q.x1) < x0 || (y2 = q.y1) < y0) continue; // Bisect the current quadrant.
-
- if (node.length) {
- var xm = (x1 + x2) / 2,
- ym = (y1 + y2) / 2;
- quads.push(new quad(node[3], xm, ym, x2, y2), new quad(node[2], x1, ym, xm, y2), new quad(node[1], xm, y1, x2, ym), new quad(node[0], x1, y1, xm, ym)); // Visit the closest quadrant first.
-
- if (i = (y >= ym) << 1 | x >= xm) {
- q = quads[quads.length - 1];
- quads[quads.length - 1] = quads[quads.length - 1 - i];
- quads[quads.length - 1 - i] = q;
- }
- } // Visit this point. (Visiting coincident points isn’t necessary!)
- else {
- var dx = x - +this._x.call(null, node.data),
- dy = y - +this._y.call(null, node.data),
- d2 = dx * dx + dy * dy;
-
- if (d2 < radius) {
- var d = Math.sqrt(radius = d2);
- x0 = x - d, y0 = y - d;
- x3 = x + d, y3 = y + d;
- data = node.data;
- }
- }
- }
-
- return data;
-}
-;// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/remove.js
-/* harmony default export */ function remove(d) {
- if (isNaN(x = +this._x.call(null, d)) || isNaN(y = +this._y.call(null, d))) return this; // ignore invalid points
-
- var parent,
- node = this._root,
- retainer,
- previous,
- next,
- x0 = this._x0,
- y0 = this._y0,
- x1 = this._x1,
- y1 = this._y1,
- x,
- y,
- xm,
- ym,
- right,
- bottom,
- i,
- j; // If the tree is empty, initialize the root as a leaf.
-
- if (!node) return this; // Find the leaf node for the point.
- // While descending, also retain the deepest parent with a non-removed sibling.
-
- if (node.length) while (true) {
- if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm;else x1 = xm;
- if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym;else y1 = ym;
- if (!(parent = node, node = node[i = bottom << 1 | right])) return this;
- if (!node.length) break;
- if (parent[i + 1 & 3] || parent[i + 2 & 3] || parent[i + 3 & 3]) retainer = parent, j = i;
- } // Find the point to remove.
-
- while (node.data !== d) if (!(previous = node, node = node.next)) return this;
-
- if (next = node.next) delete node.next; // If there are multiple coincident points, remove just the point.
-
- if (previous) return next ? previous.next = next : delete previous.next, this; // If this is the root point, remove it.
-
- if (!parent) return this._root = next, this; // Remove this leaf.
-
- next ? parent[i] = next : delete parent[i]; // If the parent now contains exactly one leaf, collapse superfluous parents.
-
- if ((node = parent[0] || parent[1] || parent[2] || parent[3]) && node === (parent[3] || parent[2] || parent[1] || parent[0]) && !node.length) {
- if (retainer) retainer[j] = node;else this._root = node;
- }
-
- return this;
-}
-function removeAll(data) {
- for (var i = 0, n = data.length; i < n; ++i) this.remove(data[i]);
-
- return this;
-}
-;// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/root.js
-/* harmony default export */ function root() {
- return this._root;
-}
-;// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/size.js
-/* harmony default export */ function size() {
- var size = 0;
- this.visit(function (node) {
- if (!node.length) do ++size; while (node = node.next);
- });
- return size;
-}
-;// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/visit.js
-
-/* harmony default export */ function visit(callback) {
- var quads = [],
- q,
- node = this._root,
- child,
- x0,
- y0,
- x1,
- y1;
- if (node) quads.push(new quad(node, this._x0, this._y0, this._x1, this._y1));
-
- while (q = quads.pop()) {
- if (!callback(node = q.node, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1) && node.length) {
- var xm = (x0 + x1) / 2,
- ym = (y0 + y1) / 2;
- if (child = node[3]) quads.push(new quad(child, xm, ym, x1, y1));
- if (child = node[2]) quads.push(new quad(child, x0, ym, xm, y1));
- if (child = node[1]) quads.push(new quad(child, xm, y0, x1, ym));
- if (child = node[0]) quads.push(new quad(child, x0, y0, xm, ym));
- }
- }
-
- return this;
-}
-;// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/visitAfter.js
-
-/* harmony default export */ function visitAfter(callback) {
- var quads = [],
- next = [],
- q;
- if (this._root) quads.push(new quad(this._root, this._x0, this._y0, this._x1, this._y1));
-
- while (q = quads.pop()) {
- var node = q.node;
-
- if (node.length) {
- var child,
- x0 = q.x0,
- y0 = q.y0,
- x1 = q.x1,
- y1 = q.y1,
- xm = (x0 + x1) / 2,
- ym = (y0 + y1) / 2;
- if (child = node[0]) quads.push(new quad(child, x0, y0, xm, ym));
- if (child = node[1]) quads.push(new quad(child, xm, y0, x1, ym));
- if (child = node[2]) quads.push(new quad(child, x0, ym, xm, y1));
- if (child = node[3]) quads.push(new quad(child, xm, ym, x1, y1));
- }
-
- next.push(q);
- }
-
- while (q = next.pop()) {
- callback(q.node, q.x0, q.y0, q.x1, q.y1);
- }
-
- return this;
-}
-;// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/x.js
-function defaultX(d) {
- return d[0];
-}
-/* harmony default export */ function x(_) {
- return arguments.length ? (this._x = _, this) : this._x;
-}
-;// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/y.js
-function defaultY(d) {
- return d[1];
-}
-/* harmony default export */ function y(_) {
- return arguments.length ? (this._y = _, this) : this._y;
-}
-;// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/quadtree.js
-
-
-
-
-
-
-
-
-
-
-
-
-function quadtree(nodes, x, y) {
- var tree = new Quadtree(x == null ? defaultX : x, y == null ? defaultY : y, NaN, NaN, NaN, NaN);
- return nodes == null ? tree : tree.addAll(nodes);
-}
-
-function Quadtree(x, y, x0, y0, x1, y1) {
- this._x = x;
- this._y = y;
- this._x0 = x0;
- this._y0 = y0;
- this._x1 = x1;
- this._y1 = y1;
- this._root = undefined;
-}
-
-function leaf_copy(leaf) {
- var copy = {
- data: leaf.data
- },
- next = copy;
-
- while (leaf = leaf.next) next = next.next = {
- data: leaf.data
- };
-
- return copy;
-}
-
-var treeProto = quadtree.prototype = Quadtree.prototype;
-
-treeProto.copy = function () {
- var copy = new Quadtree(this._x, this._y, this._x0, this._y0, this._x1, this._y1),
- node = this._root,
- nodes,
- child;
- if (!node) return copy;
- if (!node.length) return copy._root = leaf_copy(node), copy;
- nodes = [{
- source: node,
- target: copy._root = new Array(4)
- }];
-
- while (node = nodes.pop()) {
- for (var i = 0; i < 4; ++i) {
- if (child = node.source[i]) {
- if (child.length) nodes.push({
- source: child,
- target: node.target[i] = new Array(4)
- });else node.target[i] = leaf_copy(child);
- }
- }
- }
-
- return copy;
-};
-
-treeProto.add = add;
-treeProto.addAll = addAll;
-treeProto.cover = cover;
-treeProto.data = data;
-treeProto.extent = extent;
-treeProto.find = find;
-treeProto.remove = remove;
-treeProto.removeAll = removeAll;
-treeProto.root = root;
-treeProto.size = size;
-treeProto.visit = visit;
-treeProto.visitAfter = visitAfter;
-treeProto.x = x;
-treeProto.y = y;
-// EXTERNAL MODULE: ./node_modules/d3-octree/dist/d3-octree.js
-var d3_octree = __webpack_require__(681);
-;// CONCATENATED MODULE: ./node_modules/d3-force-3d/src/constant.js
-/* harmony default export */ function constant(x) {
- return function () {
- return x;
- };
-}
-;// CONCATENATED MODULE: ./node_modules/d3-force-3d/src/jiggle.js
-/* harmony default export */ function jiggle(random) {
- return (random() - 0.5) * 1e-6;
-}
-;// CONCATENATED MODULE: ./node_modules/d3-force-3d/src/collide.js
-
-
-
-
-
-
-function collide_x(d) {
- return d.x + d.vx;
-}
-
-function collide_y(d) {
- return d.y + d.vy;
-}
-
-function z(d) {
- return d.z + d.vz;
-}
-
-/* harmony default export */ function collide(radius) {
- var nodes,
- nDim,
- radii,
- random,
- strength = 1,
- iterations = 1;
- if (typeof radius !== "function") radius = constant(radius == null ? 1 : +radius);
-
- function force() {
- var i,
- n = nodes.length,
- tree,
- node,
- xi,
- yi,
- zi,
- ri,
- ri2;
-
- for (var k = 0; k < iterations; ++k) {
- tree = (nDim === 1 ? (0,d3_binarytree.binarytree)(nodes, collide_x) : nDim === 2 ? quadtree(nodes, collide_x, collide_y) : nDim === 3 ? (0,d3_octree.octree)(nodes, collide_x, collide_y, z) : null).visitAfter(prepare);
-
- for (i = 0; i < n; ++i) {
- node = nodes[i];
- ri = radii[node.index], ri2 = ri * ri;
- xi = node.x + node.vx;
-
- if (nDim > 1) {
- yi = node.y + node.vy;
- }
-
- if (nDim > 2) {
- zi = node.z + node.vz;
- }
-
- tree.visit(apply);
- }
- }
-
- function apply(treeNode, arg1, arg2, arg3, arg4, arg5, arg6) {
- var args = [arg1, arg2, arg3, arg4, arg5, arg6];
- var x0 = args[0],
- y0 = args[1],
- z0 = args[2],
- x1 = args[nDim],
- y1 = args[nDim + 1],
- z1 = args[nDim + 2];
- var data = treeNode.data,
- rj = treeNode.r,
- r = ri + rj;
-
- if (data) {
- if (data.index > node.index) {
- var x = xi - data.x - data.vx,
- y = nDim > 1 ? yi - data.y - data.vy : 0,
- z = nDim > 2 ? zi - data.z - data.vz : 0,
- l = x * x + y * y + z * z;
-
- if (l < r * r) {
- if (x === 0) x = jiggle(random), l += x * x;
- if (nDim > 1 && y === 0) y = jiggle(random), l += y * y;
- if (nDim > 2 && z === 0) z = jiggle(random), l += z * z;
- l = (r - (l = Math.sqrt(l))) / l * strength;
- node.vx += (x *= l) * (r = (rj *= rj) / (ri2 + rj));
-
- if (nDim > 1) {
- node.vy += (y *= l) * r;
- }
-
- if (nDim > 2) {
- node.vz += (z *= l) * r;
- }
-
- data.vx -= x * (r = 1 - r);
-
- if (nDim > 1) {
- data.vy -= y * r;
- }
-
- if (nDim > 2) {
- data.vz -= z * r;
- }
- }
- }
-
- return;
- }
-
- return x0 > xi + r || x1 < xi - r || nDim > 1 && (y0 > yi + r || y1 < yi - r) || nDim > 2 && (z0 > zi + r || z1 < zi - r);
- }
- }
-
- function prepare(treeNode) {
- if (treeNode.data) return treeNode.r = radii[treeNode.data.index];
-
- for (var i = treeNode.r = 0; i < Math.pow(2, nDim); ++i) {
- if (treeNode[i] && treeNode[i].r > treeNode.r) {
- treeNode.r = treeNode[i].r;
- }
- }
- }
-
- function initialize() {
- if (!nodes) return;
- var i,
- n = nodes.length,
- node;
- radii = new Array(n);
-
- for (i = 0; i < n; ++i) node = nodes[i], radii[node.index] = +radius(node, i, nodes);
- }
-
- force.initialize = function (_nodes, ...args) {
- nodes = _nodes;
- random = args.find(arg => typeof arg === 'function') || Math.random;
- nDim = args.find(arg => [1, 2, 3].includes(arg)) || 2;
- initialize();
- };
-
- force.iterations = function (_) {
- return arguments.length ? (iterations = +_, force) : iterations;
- };
-
- force.strength = function (_) {
- return arguments.length ? (strength = +_, force) : strength;
- };
-
- force.radius = function (_) {
- return arguments.length ? (radius = typeof _ === "function" ? _ : constant(+_), initialize(), force) : radius;
- };
-
- return force;
-}
-;// CONCATENATED MODULE: ./node_modules/d3-force-3d/src/link.js
-
-
-
-function index(d) {
- return d.index;
-}
-
-function link_find(nodeById, nodeId) {
- var node = nodeById.get(nodeId);
- if (!node) throw new Error("node not found: " + nodeId);
- return node;
-}
-
-/* harmony default export */ function src_link(links) {
- var id = index,
- strength = defaultStrength,
- strengths,
- distance = constant(30),
- distances,
- nodes,
- nDim,
- count,
- bias,
- random,
- iterations = 1;
- if (links == null) links = [];
-
- function defaultStrength(link) {
- return 1 / Math.min(count[link.source.index], count[link.target.index]);
- }
-
- function force(alpha) {
- for (var k = 0, n = links.length; k < iterations; ++k) {
- for (var i = 0, link, source, target, x = 0, y = 0, z = 0, l, b; i < n; ++i) {
- link = links[i], source = link.source, target = link.target;
- x = target.x + target.vx - source.x - source.vx || jiggle(random);
-
- if (nDim > 1) {
- y = target.y + target.vy - source.y - source.vy || jiggle(random);
- }
-
- if (nDim > 2) {
- z = target.z + target.vz - source.z - source.vz || jiggle(random);
- }
-
- l = Math.sqrt(x * x + y * y + z * z);
- l = (l - distances[i]) / l * alpha * strengths[i];
- x *= l, y *= l, z *= l;
- target.vx -= x * (b = bias[i]);
-
- if (nDim > 1) {
- target.vy -= y * b;
- }
-
- if (nDim > 2) {
- target.vz -= z * b;
- }
-
- source.vx += x * (b = 1 - b);
-
- if (nDim > 1) {
- source.vy += y * b;
- }
-
- if (nDim > 2) {
- source.vz += z * b;
- }
- }
- }
- }
-
- function initialize() {
- if (!nodes) return;
- var i,
- n = nodes.length,
- m = links.length,
- nodeById = new Map(nodes.map((d, i) => [id(d, i, nodes), d])),
- link;
-
- for (i = 0, count = new Array(n); i < m; ++i) {
- link = links[i], link.index = i;
- if (typeof link.source !== "object") link.source = link_find(nodeById, link.source);
- if (typeof link.target !== "object") link.target = link_find(nodeById, link.target);
- count[link.source.index] = (count[link.source.index] || 0) + 1;
- count[link.target.index] = (count[link.target.index] || 0) + 1;
- }
-
- for (i = 0, bias = new Array(m); i < m; ++i) {
- link = links[i], bias[i] = count[link.source.index] / (count[link.source.index] + count[link.target.index]);
- }
-
- strengths = new Array(m), initializeStrength();
- distances = new Array(m), initializeDistance();
- }
-
- function initializeStrength() {
- if (!nodes) return;
-
- for (var i = 0, n = links.length; i < n; ++i) {
- strengths[i] = +strength(links[i], i, links);
- }
- }
-
- function initializeDistance() {
- if (!nodes) return;
-
- for (var i = 0, n = links.length; i < n; ++i) {
- distances[i] = +distance(links[i], i, links);
- }
- }
-
- force.initialize = function (_nodes, ...args) {
- nodes = _nodes;
- random = args.find(arg => typeof arg === 'function') || Math.random;
- nDim = args.find(arg => [1, 2, 3].includes(arg)) || 2;
- initialize();
- };
-
- force.links = function (_) {
- return arguments.length ? (links = _, initialize(), force) : links;
- };
-
- force.id = function (_) {
- return arguments.length ? (id = _, force) : id;
- };
-
- force.iterations = function (_) {
- return arguments.length ? (iterations = +_, force) : iterations;
- };
-
- force.strength = function (_) {
- return arguments.length ? (strength = typeof _ === "function" ? _ : constant(+_), initializeStrength(), force) : strength;
- };
-
- force.distance = function (_) {
- return arguments.length ? (distance = typeof _ === "function" ? _ : constant(+_), initializeDistance(), force) : distance;
- };
-
- return force;
-}
-;// CONCATENATED MODULE: ./node_modules/d3-dispatch/src/dispatch.js
-var noop = {
- value: () => {}
-};
-
-function dispatch() {
- for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {
- if (!(t = arguments[i] + "") || t in _ || /[\s.]/.test(t)) throw new Error("illegal type: " + t);
- _[t] = [];
- }
-
- return new Dispatch(_);
-}
-
-function Dispatch(_) {
- this._ = _;
-}
-
-function parseTypenames(typenames, types) {
- return typenames.trim().split(/^|\s+/).map(function (t) {
- var name = "",
- i = t.indexOf(".");
- if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);
- if (t && !types.hasOwnProperty(t)) throw new Error("unknown type: " + t);
- return {
- type: t,
- name: name
- };
- });
-}
-
-Dispatch.prototype = dispatch.prototype = {
- constructor: Dispatch,
- on: function (typename, callback) {
- var _ = this._,
- T = parseTypenames(typename + "", _),
- t,
- i = -1,
- n = T.length; // If no callback was specified, return the callback of the given type and name.
-
- if (arguments.length < 2) {
- while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;
-
- return;
- } // If a type was specified, set the callback for the given type and name.
- // Otherwise, if a null callback was specified, remove callbacks of the given name.
-
-
- if (callback != null && typeof callback !== "function") throw new Error("invalid callback: " + callback);
-
- while (++i < n) {
- if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);
- }
-
- return this;
- },
- copy: function () {
- var copy = {},
- _ = this._;
-
- for (var t in _) copy[t] = _[t].slice();
-
- return new Dispatch(copy);
- },
- call: function (type, that) {
- if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];
- if (!this._.hasOwnProperty(type)) throw new Error("unknown type: " + type);
-
- for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);
- },
- apply: function (type, that, args) {
- if (!this._.hasOwnProperty(type)) throw new Error("unknown type: " + type);
-
- for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);
- }
-};
-
-function get(type, name) {
- for (var i = 0, n = type.length, c; i < n; ++i) {
- if ((c = type[i]).name === name) {
- return c.value;
- }
- }
-}
-
-function set(type, name, callback) {
- for (var i = 0, n = type.length; i < n; ++i) {
- if (type[i].name === name) {
- type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));
- break;
- }
- }
-
- if (callback != null) type.push({
- name: name,
- value: callback
- });
- return type;
-}
-
-/* harmony default export */ var src_dispatch = (dispatch);
-;// CONCATENATED MODULE: ./node_modules/d3-timer/src/timer.js
-var timer_frame = 0,
- // is an animation frame pending?
-timeout = 0,
- // is a timeout pending?
-interval = 0,
- // are any timers active?
-pokeDelay = 1000,
- // how frequently we check for clock skew
-taskHead,
- taskTail,
- clockLast = 0,
- clockNow = 0,
- clockSkew = 0,
- clock = typeof performance === "object" && performance.now ? performance : Date,
- setFrame = false ? 0 : function (f) {
- setTimeout(f, 17);
-};
-function now() {
- return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);
-}
-
-function clearNow() {
- clockNow = 0;
-}
-
-function Timer() {
- this._call = this._time = this._next = null;
-}
-Timer.prototype = timer.prototype = {
- constructor: Timer,
- restart: function (callback, delay, time) {
- if (typeof callback !== "function") throw new TypeError("callback is not a function");
- time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);
-
- if (!this._next && taskTail !== this) {
- if (taskTail) taskTail._next = this;else taskHead = this;
- taskTail = this;
- }
-
- this._call = callback;
- this._time = time;
- sleep();
- },
- stop: function () {
- if (this._call) {
- this._call = null;
- this._time = Infinity;
- sleep();
- }
- }
-};
-function timer(callback, delay, time) {
- var t = new Timer();
- t.restart(callback, delay, time);
- return t;
-}
-function timerFlush() {
- now(); // Get the current time, if not already set.
-
- ++timer_frame; // Pretend we’ve set an alarm, if we haven’t already.
-
- var t = taskHead,
- e;
-
- while (t) {
- if ((e = clockNow - t._time) >= 0) t._call.call(undefined, e);
- t = t._next;
- }
-
- --timer_frame;
-}
-
-function wake() {
- clockNow = (clockLast = clock.now()) + clockSkew;
- timer_frame = timeout = 0;
-
- try {
- timerFlush();
- } finally {
- timer_frame = 0;
- nap();
- clockNow = 0;
- }
-}
-
-function poke() {
- var now = clock.now(),
- delay = now - clockLast;
- if (delay > pokeDelay) clockSkew -= delay, clockLast = now;
-}
-
-function nap() {
- var t0,
- t1 = taskHead,
- t2,
- time = Infinity;
-
- while (t1) {
- if (t1._call) {
- if (time > t1._time) time = t1._time;
- t0 = t1, t1 = t1._next;
- } else {
- t2 = t1._next, t1._next = null;
- t1 = t0 ? t0._next = t2 : taskHead = t2;
- }
- }
-
- taskTail = t0;
- sleep(time);
-}
-
-function sleep(time) {
- if (timer_frame) return; // Soonest alarm already set, or will be.
-
- if (timeout) timeout = clearTimeout(timeout);
- var delay = time - clockNow; // Strictly less than if we recomputed clockNow.
-
- if (delay > 24) {
- if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);
- if (interval) interval = clearInterval(interval);
- } else {
- if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);
- timer_frame = 1, setFrame(wake);
- }
-}
-;// CONCATENATED MODULE: ./node_modules/d3-force-3d/src/lcg.js
-// https://en.wikipedia.org/wiki/Linear_congruential_generator#Parameters_in_common_use
-const a = 1664525;
-const c = 1013904223;
-const m = 4294967296; // 2^32
-
-/* harmony default export */ function lcg() {
- let s = 1;
- return () => (s = (a * s + c) % m) / m;
-}
-;// CONCATENATED MODULE: ./node_modules/d3-force-3d/src/simulation.js
-
-
-
-var MAX_DIMENSIONS = 3;
-function simulation_x(d) {
- return d.x;
-}
-function simulation_y(d) {
- return d.y;
-}
-function simulation_z(d) {
- return d.z;
-}
-var initialRadius = 10,
- initialAngleRoll = Math.PI * (3 - Math.sqrt(5)),
- // Golden ratio angle
-initialAngleYaw = Math.PI * 20 / (9 + Math.sqrt(221)); // Markov irrational number
-
-/* harmony default export */ function simulation(nodes, numDimensions) {
- numDimensions = numDimensions || 2;
- var nDim = Math.min(MAX_DIMENSIONS, Math.max(1, Math.round(numDimensions))),
- simulation,
- alpha = 1,
- alphaMin = 0.001,
- alphaDecay = 1 - Math.pow(alphaMin, 1 / 300),
- alphaTarget = 0,
- velocityDecay = 0.6,
- forces = new Map(),
- stepper = timer(step),
- event = src_dispatch("tick", "end"),
- random = lcg();
- if (nodes == null) nodes = [];
-
- function step() {
- tick();
- event.call("tick", simulation);
-
- if (alpha < alphaMin) {
- stepper.stop();
- event.call("end", simulation);
- }
- }
-
- function tick(iterations) {
- var i,
- n = nodes.length,
- node;
- if (iterations === undefined) iterations = 1;
-
- for (var k = 0; k < iterations; ++k) {
- alpha += (alphaTarget - alpha) * alphaDecay;
- forces.forEach(function (force) {
- force(alpha);
- });
-
- for (i = 0; i < n; ++i) {
- node = nodes[i];
- if (node.fx == null) node.x += node.vx *= velocityDecay;else node.x = node.fx, node.vx = 0;
-
- if (nDim > 1) {
- if (node.fy == null) node.y += node.vy *= velocityDecay;else node.y = node.fy, node.vy = 0;
- }
-
- if (nDim > 2) {
- if (node.fz == null) node.z += node.vz *= velocityDecay;else node.z = node.fz, node.vz = 0;
- }
- }
- }
-
- return simulation;
- }
-
- function initializeNodes() {
- for (var i = 0, n = nodes.length, node; i < n; ++i) {
- node = nodes[i], node.index = i;
- if (node.fx != null) node.x = node.fx;
- if (node.fy != null) node.y = node.fy;
- if (node.fz != null) node.z = node.fz;
-
- if (isNaN(node.x) || nDim > 1 && isNaN(node.y) || nDim > 2 && isNaN(node.z)) {
- var radius = initialRadius * (nDim > 2 ? Math.cbrt(0.5 + i) : nDim > 1 ? Math.sqrt(0.5 + i) : i),
- rollAngle = i * initialAngleRoll,
- yawAngle = i * initialAngleYaw;
-
- if (nDim === 1) {
- node.x = radius;
- } else if (nDim === 2) {
- node.x = radius * Math.cos(rollAngle);
- node.y = radius * Math.sin(rollAngle);
- } else {
- // 3 dimensions: use spherical distribution along 2 irrational number angles
- node.x = radius * Math.sin(rollAngle) * Math.cos(yawAngle);
- node.y = radius * Math.cos(rollAngle);
- node.z = radius * Math.sin(rollAngle) * Math.sin(yawAngle);
- }
- }
-
- if (isNaN(node.vx) || nDim > 1 && isNaN(node.vy) || nDim > 2 && isNaN(node.vz)) {
- node.vx = 0;
-
- if (nDim > 1) {
- node.vy = 0;
- }
-
- if (nDim > 2) {
- node.vz = 0;
- }
- }
- }
- }
-
- function initializeForce(force) {
- if (force.initialize) force.initialize(nodes, random, nDim);
- return force;
- }
-
- initializeNodes();
- return simulation = {
- tick: tick,
- restart: function () {
- return stepper.restart(step), simulation;
- },
- stop: function () {
- return stepper.stop(), simulation;
- },
- numDimensions: function (_) {
- return arguments.length ? (nDim = Math.min(MAX_DIMENSIONS, Math.max(1, Math.round(_))), forces.forEach(initializeForce), simulation) : nDim;
- },
- nodes: function (_) {
- return arguments.length ? (nodes = _, initializeNodes(), forces.forEach(initializeForce), simulation) : nodes;
- },
- alpha: function (_) {
- return arguments.length ? (alpha = +_, simulation) : alpha;
- },
- alphaMin: function (_) {
- return arguments.length ? (alphaMin = +_, simulation) : alphaMin;
- },
- alphaDecay: function (_) {
- return arguments.length ? (alphaDecay = +_, simulation) : +alphaDecay;
- },
- alphaTarget: function (_) {
- return arguments.length ? (alphaTarget = +_, simulation) : alphaTarget;
- },
- velocityDecay: function (_) {
- return arguments.length ? (velocityDecay = 1 - _, simulation) : 1 - velocityDecay;
- },
- randomSource: function (_) {
- return arguments.length ? (random = _, forces.forEach(initializeForce), simulation) : random;
- },
- force: function (name, _) {
- return arguments.length > 1 ? (_ == null ? forces.delete(name) : forces.set(name, initializeForce(_)), simulation) : forces.get(name);
- },
- find: function () {
- var args = Array.prototype.slice.call(arguments);
- var x = args.shift() || 0,
- y = (nDim > 1 ? args.shift() : null) || 0,
- z = (nDim > 2 ? args.shift() : null) || 0,
- radius = args.shift() || Infinity;
- var i = 0,
- n = nodes.length,
- dx,
- dy,
- dz,
- d2,
- node,
- closest;
- radius *= radius;
-
- for (i = 0; i < n; ++i) {
- node = nodes[i];
- dx = x - node.x;
- dy = y - (node.y || 0);
- dz = z - (node.z || 0);
- d2 = dx * dx + dy * dy + dz * dz;
- if (d2 < radius) closest = node, radius = d2;
- }
-
- return closest;
- },
- on: function (name, _) {
- return arguments.length > 1 ? (event.on(name, _), simulation) : event.on(name);
- }
- };
-}
-;// CONCATENATED MODULE: ./node_modules/d3-force-3d/src/manyBody.js
-
-
-
-
-
-
-/* harmony default export */ function manyBody() {
- var nodes,
- nDim,
- node,
- random,
- alpha,
- strength = constant(-30),
- strengths,
- distanceMin2 = 1,
- distanceMax2 = Infinity,
- theta2 = 0.81;
-
- function force(_) {
- var i,
- n = nodes.length,
- tree = (nDim === 1 ? (0,d3_binarytree.binarytree)(nodes, simulation_x) : nDim === 2 ? quadtree(nodes, simulation_x, simulation_y) : nDim === 3 ? (0,d3_octree.octree)(nodes, simulation_x, simulation_y, simulation_z) : null).visitAfter(accumulate);
-
- for (alpha = _, i = 0; i < n; ++i) node = nodes[i], tree.visit(apply);
- }
-
- function initialize() {
- if (!nodes) return;
- var i,
- n = nodes.length,
- node;
- strengths = new Array(n);
-
- for (i = 0; i < n; ++i) node = nodes[i], strengths[node.index] = +strength(node, i, nodes);
- }
-
- function accumulate(treeNode) {
- var strength = 0,
- q,
- c,
- weight = 0,
- x,
- y,
- z,
- i;
- var numChildren = treeNode.length; // For internal nodes, accumulate forces from children.
-
- if (numChildren) {
- for (x = y = z = i = 0; i < numChildren; ++i) {
- if ((q = treeNode[i]) && (c = Math.abs(q.value))) {
- strength += q.value, weight += c, x += c * (q.x || 0), y += c * (q.y || 0), z += c * (q.z || 0);
- }
- }
-
- strength *= Math.sqrt(4 / numChildren); // scale accumulated strength according to number of dimensions
-
- treeNode.x = x / weight;
-
- if (nDim > 1) {
- treeNode.y = y / weight;
- }
-
- if (nDim > 2) {
- treeNode.z = z / weight;
- }
- } // For leaf nodes, accumulate forces from coincident nodes.
- else {
- q = treeNode;
- q.x = q.data.x;
-
- if (nDim > 1) {
- q.y = q.data.y;
- }
-
- if (nDim > 2) {
- q.z = q.data.z;
- }
-
- do strength += strengths[q.data.index]; while (q = q.next);
- }
-
- treeNode.value = strength;
- }
-
- function apply(treeNode, x1, arg1, arg2, arg3) {
- if (!treeNode.value) return true;
- var x2 = [arg1, arg2, arg3][nDim - 1];
- var x = treeNode.x - node.x,
- y = nDim > 1 ? treeNode.y - node.y : 0,
- z = nDim > 2 ? treeNode.z - node.z : 0,
- w = x2 - x1,
- l = x * x + y * y + z * z; // Apply the Barnes-Hut approximation if possible.
- // Limit forces for very close nodes; randomize direction if coincident.
-
- if (w * w / theta2 < l) {
- if (l < distanceMax2) {
- if (x === 0) x = jiggle(random), l += x * x;
- if (nDim > 1 && y === 0) y = jiggle(random), l += y * y;
- if (nDim > 2 && z === 0) z = jiggle(random), l += z * z;
- if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);
- node.vx += x * treeNode.value * alpha / l;
-
- if (nDim > 1) {
- node.vy += y * treeNode.value * alpha / l;
- }
-
- if (nDim > 2) {
- node.vz += z * treeNode.value * alpha / l;
- }
- }
-
- return true;
- } // Otherwise, process points directly.
- else if (treeNode.length || l >= distanceMax2) return; // Limit forces for very close nodes; randomize direction if coincident.
-
-
- if (treeNode.data !== node || treeNode.next) {
- if (x === 0) x = jiggle(random), l += x * x;
- if (nDim > 1 && y === 0) y = jiggle(random), l += y * y;
- if (nDim > 2 && z === 0) z = jiggle(random), l += z * z;
- if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);
- }
-
- do if (treeNode.data !== node) {
- w = strengths[treeNode.data.index] * alpha / l;
- node.vx += x * w;
-
- if (nDim > 1) {
- node.vy += y * w;
- }
-
- if (nDim > 2) {
- node.vz += z * w;
- }
- } while (treeNode = treeNode.next);
- }
-
- force.initialize = function (_nodes, ...args) {
- nodes = _nodes;
- random = args.find(arg => typeof arg === 'function') || Math.random;
- nDim = args.find(arg => [1, 2, 3].includes(arg)) || 2;
- initialize();
- };
-
- force.strength = function (_) {
- return arguments.length ? (strength = typeof _ === "function" ? _ : constant(+_), initialize(), force) : strength;
- };
-
- force.distanceMin = function (_) {
- return arguments.length ? (distanceMin2 = _ * _, force) : Math.sqrt(distanceMin2);
- };
-
- force.distanceMax = function (_) {
- return arguments.length ? (distanceMax2 = _ * _, force) : Math.sqrt(distanceMax2);
- };
-
- force.theta = function (_) {
- return arguments.length ? (theta2 = _ * _, force) : Math.sqrt(theta2);
- };
-
- return force;
-}
-;// CONCATENATED MODULE: ./node_modules/d3-force-3d/src/radial.js
-
-/* harmony default export */ function radial(radius, x, y, z) {
- var nodes,
- nDim,
- strength = constant(0.1),
- strengths,
- radiuses;
- if (typeof radius !== "function") radius = constant(+radius);
- if (x == null) x = 0;
- if (y == null) y = 0;
- if (z == null) z = 0;
-
- function force(alpha) {
- for (var i = 0, n = nodes.length; i < n; ++i) {
- var node = nodes[i],
- dx = node.x - x || 1e-6,
- dy = (node.y || 0) - y || 1e-6,
- dz = (node.z || 0) - z || 1e-6,
- r = Math.sqrt(dx * dx + dy * dy + dz * dz),
- k = (radiuses[i] - r) * strengths[i] * alpha / r;
- node.vx += dx * k;
-
- if (nDim > 1) {
- node.vy += dy * k;
- }
-
- if (nDim > 2) {
- node.vz += dz * k;
- }
- }
- }
-
- function initialize() {
- if (!nodes) return;
- var i,
- n = nodes.length;
- strengths = new Array(n);
- radiuses = new Array(n);
-
- for (i = 0; i < n; ++i) {
- radiuses[i] = +radius(nodes[i], i, nodes);
- strengths[i] = isNaN(radiuses[i]) ? 0 : +strength(nodes[i], i, nodes);
- }
- }
-
- force.initialize = function (initNodes, ...args) {
- nodes = initNodes;
- nDim = args.find(arg => [1, 2, 3].includes(arg)) || 2;
- initialize();
- };
-
- force.strength = function (_) {
- return arguments.length ? (strength = typeof _ === "function" ? _ : constant(+_), initialize(), force) : strength;
- };
-
- force.radius = function (_) {
- return arguments.length ? (radius = typeof _ === "function" ? _ : constant(+_), initialize(), force) : radius;
- };
-
- force.x = function (_) {
- return arguments.length ? (x = +_, force) : x;
- };
-
- force.y = function (_) {
- return arguments.length ? (y = +_, force) : y;
- };
-
- force.z = function (_) {
- return arguments.length ? (z = +_, force) : z;
- };
-
- return force;
-}
-;// CONCATENATED MODULE: ./node_modules/d3-force-3d/src/x.js
-
-/* harmony default export */ function src_x(x) {
- var strength = constant(0.1),
- nodes,
- strengths,
- xz;
- if (typeof x !== "function") x = constant(x == null ? 0 : +x);
-
- function force(alpha) {
- for (var i = 0, n = nodes.length, node; i < n; ++i) {
- node = nodes[i], node.vx += (xz[i] - node.x) * strengths[i] * alpha;
- }
- }
-
- function initialize() {
- if (!nodes) return;
- var i,
- n = nodes.length;
- strengths = new Array(n);
- xz = new Array(n);
-
- for (i = 0; i < n; ++i) {
- strengths[i] = isNaN(xz[i] = +x(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);
- }
- }
-
- force.initialize = function (_) {
- nodes = _;
- initialize();
- };
-
- force.strength = function (_) {
- return arguments.length ? (strength = typeof _ === "function" ? _ : constant(+_), initialize(), force) : strength;
- };
-
- force.x = function (_) {
- return arguments.length ? (x = typeof _ === "function" ? _ : constant(+_), initialize(), force) : x;
- };
-
- return force;
-}
-;// CONCATENATED MODULE: ./node_modules/d3-force-3d/src/y.js
-
-/* harmony default export */ function src_y(y) {
- var strength = constant(0.1),
- nodes,
- strengths,
- yz;
- if (typeof y !== "function") y = constant(y == null ? 0 : +y);
-
- function force(alpha) {
- for (var i = 0, n = nodes.length, node; i < n; ++i) {
- node = nodes[i], node.vy += (yz[i] - node.y) * strengths[i] * alpha;
- }
- }
-
- function initialize() {
- if (!nodes) return;
- var i,
- n = nodes.length;
- strengths = new Array(n);
- yz = new Array(n);
-
- for (i = 0; i < n; ++i) {
- strengths[i] = isNaN(yz[i] = +y(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);
- }
- }
-
- force.initialize = function (_) {
- nodes = _;
- initialize();
- };
-
- force.strength = function (_) {
- return arguments.length ? (strength = typeof _ === "function" ? _ : constant(+_), initialize(), force) : strength;
- };
-
- force.y = function (_) {
- return arguments.length ? (y = typeof _ === "function" ? _ : constant(+_), initialize(), force) : y;
- };
-
- return force;
-}
-;// CONCATENATED MODULE: ./node_modules/d3-force-3d/src/z.js
-
-/* harmony default export */ function src_z(z) {
- var strength = constant(0.1),
- nodes,
- strengths,
- zz;
- if (typeof z !== "function") z = constant(z == null ? 0 : +z);
-
- function force(alpha) {
- for (var i = 0, n = nodes.length, node; i < n; ++i) {
- node = nodes[i], node.vz += (zz[i] - node.z) * strengths[i] * alpha;
- }
- }
-
- function initialize() {
- if (!nodes) return;
- var i,
- n = nodes.length;
- strengths = new Array(n);
- zz = new Array(n);
-
- for (i = 0; i < n; ++i) {
- strengths[i] = isNaN(zz[i] = +z(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);
- }
- }
-
- force.initialize = function (_) {
- nodes = _;
- initialize();
- };
-
- force.strength = function (_) {
- return arguments.length ? (strength = typeof _ === "function" ? _ : constant(+_), initialize(), force) : strength;
- };
-
- force.z = function (_) {
- return arguments.length ? (z = typeof _ === "function" ? _ : constant(+_), initialize(), force) : z;
- };
-
- return force;
-}
-;// CONCATENATED MODULE: ./node_modules/d3-force-3d/src/index.js
-
-
-
-
-
-
-
-
-
-
-/***/ }),
-
-/***/ 681:
-/***/ (function(__unused_webpack_module, exports) {
-
-// https://github.com/vasturiano/d3-octree v0.2.0 Copyright 2021 Vasco Asturiano
-(function (global, factory) {
- true ? factory(exports) : 0;
-})(this, function (exports) {
- 'use strict';
-
- function tree_add(d) {
- var x = +this._x.call(null, d),
- y = +this._y.call(null, d),
- z = +this._z.call(null, d);
- return add(this.cover(x, y, z), x, y, z, d);
- }
-
- function add(tree, x, y, z, d) {
- if (isNaN(x) || isNaN(y) || isNaN(z)) return tree; // ignore invalid points
-
- var parent,
- node = tree._root,
- leaf = {
- data: d
- },
- x0 = tree._x0,
- y0 = tree._y0,
- z0 = tree._z0,
- x1 = tree._x1,
- y1 = tree._y1,
- z1 = tree._z1,
- xm,
- ym,
- zm,
- xp,
- yp,
- zp,
- right,
- bottom,
- deep,
- i,
- j; // If the tree is empty, initialize the root as a leaf.
-
- if (!node) return tree._root = leaf, tree; // Find the existing leaf for the new point, or add it.
-
- while (node.length) {
- if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm;else x1 = xm;
- if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym;else y1 = ym;
- if (deep = z >= (zm = (z0 + z1) / 2)) z0 = zm;else z1 = zm;
- if (parent = node, !(node = node[i = deep << 2 | bottom << 1 | right])) return parent[i] = leaf, tree;
- } // Is the new point is exactly coincident with the existing point?
-
-
- xp = +tree._x.call(null, node.data);
- yp = +tree._y.call(null, node.data);
- zp = +tree._z.call(null, node.data);
- if (x === xp && y === yp && z === zp) return leaf.next = node, parent ? parent[i] = leaf : tree._root = leaf, tree; // Otherwise, split the leaf node until the old and new point are separated.
-
- do {
- parent = parent ? parent[i] = new Array(8) : tree._root = new Array(8);
- if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm;else x1 = xm;
- if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym;else y1 = ym;
- if (deep = z >= (zm = (z0 + z1) / 2)) z0 = zm;else z1 = zm;
- } while ((i = deep << 2 | bottom << 1 | right) === (j = (zp >= zm) << 2 | (yp >= ym) << 1 | xp >= xm));
-
- return parent[j] = node, parent[i] = leaf, tree;
- }
-
- function addAll(data) {
- var d,
- i,
- n = data.length,
- x,
- y,
- z,
- xz = new Array(n),
- yz = new Array(n),
- zz = new Array(n),
- x0 = Infinity,
- y0 = Infinity,
- z0 = Infinity,
- x1 = -Infinity,
- y1 = -Infinity,
- z1 = -Infinity; // Compute the points and their extent.
-
- for (i = 0; i < n; ++i) {
- if (isNaN(x = +this._x.call(null, d = data[i])) || isNaN(y = +this._y.call(null, d)) || isNaN(z = +this._z.call(null, d))) continue;
- xz[i] = x;
- yz[i] = y;
- zz[i] = z;
- if (x < x0) x0 = x;
- if (x > x1) x1 = x;
- if (y < y0) y0 = y;
- if (y > y1) y1 = y;
- if (z < z0) z0 = z;
- if (z > z1) z1 = z;
- } // If there were no (valid) points, abort.
-
-
- if (x0 > x1 || y0 > y1 || z0 > z1) return this; // Expand the tree to cover the new points.
-
- this.cover(x0, y0, z0).cover(x1, y1, z1); // Add the new points.
-
- for (i = 0; i < n; ++i) {
- add(this, xz[i], yz[i], zz[i], data[i]);
- }
-
- return this;
- }
-
- function tree_cover(x, y, z) {
- if (isNaN(x = +x) || isNaN(y = +y) || isNaN(z = +z)) return this; // ignore invalid points
-
- var x0 = this._x0,
- y0 = this._y0,
- z0 = this._z0,
- x1 = this._x1,
- y1 = this._y1,
- z1 = this._z1; // If the octree has no extent, initialize them.
- // Integer extent are necessary so that if we later double the extent,
- // the existing octant boundaries don’t change due to floating point error!
-
- if (isNaN(x0)) {
- x1 = (x0 = Math.floor(x)) + 1;
- y1 = (y0 = Math.floor(y)) + 1;
- z1 = (z0 = Math.floor(z)) + 1;
- } // Otherwise, double repeatedly to cover.
- else {
- var t = x1 - x0 || 1,
- node = this._root,
- parent,
- i;
-
- while (x0 > x || x >= x1 || y0 > y || y >= y1 || z0 > z || z >= z1) {
- i = (z < z0) << 2 | (y < y0) << 1 | x < x0;
- parent = new Array(8), parent[i] = node, node = parent, t *= 2;
-
- switch (i) {
- case 0:
- x1 = x0 + t, y1 = y0 + t, z1 = z0 + t;
- break;
-
- case 1:
- x0 = x1 - t, y1 = y0 + t, z1 = z0 + t;
- break;
-
- case 2:
- x1 = x0 + t, y0 = y1 - t, z1 = z0 + t;
- break;
-
- case 3:
- x0 = x1 - t, y0 = y1 - t, z1 = z0 + t;
- break;
-
- case 4:
- x1 = x0 + t, y1 = y0 + t, z0 = z1 - t;
- break;
-
- case 5:
- x0 = x1 - t, y1 = y0 + t, z0 = z1 - t;
- break;
-
- case 6:
- x1 = x0 + t, y0 = y1 - t, z0 = z1 - t;
- break;
-
- case 7:
- x0 = x1 - t, y0 = y1 - t, z0 = z1 - t;
- break;
- }
- }
-
- if (this._root && this._root.length) this._root = node;
- }
-
- this._x0 = x0;
- this._y0 = y0;
- this._z0 = z0;
- this._x1 = x1;
- this._y1 = y1;
- this._z1 = z1;
- return this;
- }
-
- function tree_data() {
- var data = [];
- this.visit(function (node) {
- if (!node.length) do data.push(node.data); while (node = node.next);
- });
- return data;
- }
-
- function tree_extent(_) {
- return arguments.length ? this.cover(+_[0][0], +_[0][1], +_[0][2]).cover(+_[1][0], +_[1][1], +_[1][2]) : isNaN(this._x0) ? undefined : [[this._x0, this._y0, this._z0], [this._x1, this._y1, this._z1]];
- }
-
- function Octant(node, x0, y0, z0, x1, y1, z1) {
- this.node = node;
- this.x0 = x0;
- this.y0 = y0;
- this.z0 = z0;
- this.x1 = x1;
- this.y1 = y1;
- this.z1 = z1;
- }
-
- function tree_find(x, y, z, radius) {
- var data,
- x0 = this._x0,
- y0 = this._y0,
- z0 = this._z0,
- x1,
- y1,
- z1,
- x2,
- y2,
- z2,
- x3 = this._x1,
- y3 = this._y1,
- z3 = this._z1,
- octs = [],
- node = this._root,
- q,
- i;
- if (node) octs.push(new Octant(node, x0, y0, z0, x3, y3, z3));
- if (radius == null) radius = Infinity;else {
- x0 = x - radius, y0 = y - radius, z0 = z - radius;
- x3 = x + radius, y3 = y + radius, z3 = z + radius;
- radius *= radius;
- }
-
- while (q = octs.pop()) {
- // Stop searching if this octant can’t contain a closer node.
- if (!(node = q.node) || (x1 = q.x0) > x3 || (y1 = q.y0) > y3 || (z1 = q.z0) > z3 || (x2 = q.x1) < x0 || (y2 = q.y1) < y0 || (z2 = q.z1) < z0) continue; // Bisect the current octant.
-
- if (node.length) {
- var xm = (x1 + x2) / 2,
- ym = (y1 + y2) / 2,
- zm = (z1 + z2) / 2;
- octs.push(new Octant(node[7], xm, ym, zm, x2, y2, z2), new Octant(node[6], x1, ym, zm, xm, y2, z2), new Octant(node[5], xm, y1, zm, x2, ym, z2), new Octant(node[4], x1, y1, zm, xm, ym, z2), new Octant(node[3], xm, ym, z1, x2, y2, zm), new Octant(node[2], x1, ym, z1, xm, y2, zm), new Octant(node[1], xm, y1, z1, x2, ym, zm), new Octant(node[0], x1, y1, z1, xm, ym, zm)); // Visit the closest octant first.
-
- if (i = (z >= zm) << 2 | (y >= ym) << 1 | x >= xm) {
- q = octs[octs.length - 1];
- octs[octs.length - 1] = octs[octs.length - 1 - i];
- octs[octs.length - 1 - i] = q;
- }
- } // Visit this point. (Visiting coincident points isn’t necessary!)
- else {
- var dx = x - +this._x.call(null, node.data),
- dy = y - +this._y.call(null, node.data),
- dz = z - +this._z.call(null, node.data),
- d2 = dx * dx + dy * dy + dz * dz;
-
- if (d2 < radius) {
- var d = Math.sqrt(radius = d2);
- x0 = x - d, y0 = y - d, z0 = z - d;
- x3 = x + d, y3 = y + d, z3 = z + d;
- data = node.data;
- }
- }
- }
-
- return data;
- }
-
- function tree_remove(d) {
- if (isNaN(x = +this._x.call(null, d)) || isNaN(y = +this._y.call(null, d)) || isNaN(z = +this._z.call(null, d))) return this; // ignore invalid points
-
- var parent,
- node = this._root,
- retainer,
- previous,
- next,
- x0 = this._x0,
- y0 = this._y0,
- z0 = this._z0,
- x1 = this._x1,
- y1 = this._y1,
- z1 = this._z1,
- x,
- y,
- z,
- xm,
- ym,
- zm,
- right,
- bottom,
- deep,
- i,
- j; // If the tree is empty, initialize the root as a leaf.
-
- if (!node) return this; // Find the leaf node for the point.
- // While descending, also retain the deepest parent with a non-removed sibling.
-
- if (node.length) while (true) {
- if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm;else x1 = xm;
- if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym;else y1 = ym;
- if (deep = z >= (zm = (z0 + z1) / 2)) z0 = zm;else z1 = zm;
- if (!(parent = node, node = node[i = deep << 2 | bottom << 1 | right])) return this;
- if (!node.length) break;
- if (parent[i + 1 & 7] || parent[i + 2 & 7] || parent[i + 3 & 7] || parent[i + 4 & 7] || parent[i + 5 & 7] || parent[i + 6 & 7] || parent[i + 7 & 7]) retainer = parent, j = i;
- } // Find the point to remove.
-
- while (node.data !== d) if (!(previous = node, node = node.next)) return this;
-
- if (next = node.next) delete node.next; // If there are multiple coincident points, remove just the point.
-
- if (previous) return next ? previous.next = next : delete previous.next, this; // If this is the root point, remove it.
-
- if (!parent) return this._root = next, this; // Remove this leaf.
-
- next ? parent[i] = next : delete parent[i]; // If the parent now contains exactly one leaf, collapse superfluous parents.
-
- if ((node = parent[0] || parent[1] || parent[2] || parent[3] || parent[4] || parent[5] || parent[6] || parent[7]) && node === (parent[7] || parent[6] || parent[5] || parent[4] || parent[3] || parent[2] || parent[1] || parent[0]) && !node.length) {
- if (retainer) retainer[j] = node;else this._root = node;
- }
-
- return this;
- }
-
- function removeAll(data) {
- for (var i = 0, n = data.length; i < n; ++i) this.remove(data[i]);
-
- return this;
- }
-
- function tree_root() {
- return this._root;
- }
-
- function tree_size() {
- var size = 0;
- this.visit(function (node) {
- if (!node.length) do ++size; while (node = node.next);
- });
- return size;
- }
-
- function tree_visit(callback) {
- var octs = [],
- q,
- node = this._root,
- child,
- x0,
- y0,
- z0,
- x1,
- y1,
- z1;
- if (node) octs.push(new Octant(node, this._x0, this._y0, this._z0, this._x1, this._y1, this._z1));
-
- while (q = octs.pop()) {
- if (!callback(node = q.node, x0 = q.x0, y0 = q.y0, z0 = q.z0, x1 = q.x1, y1 = q.y1, z1 = q.z1) && node.length) {
- var xm = (x0 + x1) / 2,
- ym = (y0 + y1) / 2,
- zm = (z0 + z1) / 2;
- if (child = node[7]) octs.push(new Octant(child, xm, ym, zm, x1, y1, z1));
- if (child = node[6]) octs.push(new Octant(child, x0, ym, zm, xm, y1, z1));
- if (child = node[5]) octs.push(new Octant(child, xm, y0, zm, x1, ym, z1));
- if (child = node[4]) octs.push(new Octant(child, x0, y0, zm, xm, ym, z1));
- if (child = node[3]) octs.push(new Octant(child, xm, ym, z0, x1, y1, zm));
- if (child = node[2]) octs.push(new Octant(child, x0, ym, z0, xm, y1, zm));
- if (child = node[1]) octs.push(new Octant(child, xm, y0, z0, x1, ym, zm));
- if (child = node[0]) octs.push(new Octant(child, x0, y0, z0, xm, ym, zm));
- }
- }
-
- return this;
- }
-
- function tree_visitAfter(callback) {
- var octs = [],
- next = [],
- q;
- if (this._root) octs.push(new Octant(this._root, this._x0, this._y0, this._z0, this._x1, this._y1, this._z1));
-
- while (q = octs.pop()) {
- var node = q.node;
-
- if (node.length) {
- var child,
- x0 = q.x0,
- y0 = q.y0,
- z0 = q.z0,
- x1 = q.x1,
- y1 = q.y1,
- z1 = q.z1,
- xm = (x0 + x1) / 2,
- ym = (y0 + y1) / 2,
- zm = (z0 + z1) / 2;
- if (child = node[0]) octs.push(new Octant(child, x0, y0, z0, xm, ym, zm));
- if (child = node[1]) octs.push(new Octant(child, xm, y0, z0, x1, ym, zm));
- if (child = node[2]) octs.push(new Octant(child, x0, ym, z0, xm, y1, zm));
- if (child = node[3]) octs.push(new Octant(child, xm, ym, z0, x1, y1, zm));
- if (child = node[4]) octs.push(new Octant(child, x0, y0, zm, xm, ym, z1));
- if (child = node[5]) octs.push(new Octant(child, xm, y0, zm, x1, ym, z1));
- if (child = node[6]) octs.push(new Octant(child, x0, ym, zm, xm, y1, z1));
- if (child = node[7]) octs.push(new Octant(child, xm, ym, zm, x1, y1, z1));
- }
-
- next.push(q);
- }
-
- while (q = next.pop()) {
- callback(q.node, q.x0, q.y0, q.z0, q.x1, q.y1, q.z1);
- }
-
- return this;
- }
-
- function defaultX(d) {
- return d[0];
- }
-
- function tree_x(_) {
- return arguments.length ? (this._x = _, this) : this._x;
- }
-
- function defaultY(d) {
- return d[1];
- }
-
- function tree_y(_) {
- return arguments.length ? (this._y = _, this) : this._y;
- }
-
- function defaultZ(d) {
- return d[2];
- }
-
- function tree_z(_) {
- return arguments.length ? (this._z = _, this) : this._z;
- }
-
- function octree(nodes, x, y, z) {
- var tree = new Octree(x == null ? defaultX : x, y == null ? defaultY : y, z == null ? defaultZ : z, NaN, NaN, NaN, NaN, NaN, NaN);
- return nodes == null ? tree : tree.addAll(nodes);
- }
-
- function Octree(x, y, z, x0, y0, z0, x1, y1, z1) {
- this._x = x;
- this._y = y;
- this._z = z;
- this._x0 = x0;
- this._y0 = y0;
- this._z0 = z0;
- this._x1 = x1;
- this._y1 = y1;
- this._z1 = z1;
- this._root = undefined;
- }
-
- function leaf_copy(leaf) {
- var copy = {
- data: leaf.data
- },
- next = copy;
-
- while (leaf = leaf.next) next = next.next = {
- data: leaf.data
- };
-
- return copy;
- }
-
- var treeProto = octree.prototype = Octree.prototype;
-
- treeProto.copy = function () {
- var copy = new Octree(this._x, this._y, this._z, this._x0, this._y0, this._z0, this._x1, this._y1, this._z1),
- node = this._root,
- nodes,
- child;
- if (!node) return copy;
- if (!node.length) return copy._root = leaf_copy(node), copy;
- nodes = [{
- source: node,
- target: copy._root = new Array(8)
- }];
-
- while (node = nodes.pop()) {
- for (var i = 0; i < 8; ++i) {
- if (child = node.source[i]) {
- if (child.length) nodes.push({
- source: child,
- target: node.target[i] = new Array(8)
- });else node.target[i] = leaf_copy(child);
- }
- }
- }
-
- return copy;
- };
-
- treeProto.add = tree_add;
- treeProto.addAll = addAll;
- treeProto.cover = tree_cover;
- treeProto.data = tree_data;
- treeProto.extent = tree_extent;
- treeProto.find = tree_find;
- treeProto.remove = tree_remove;
- treeProto.removeAll = removeAll;
- treeProto.root = tree_root;
- treeProto.size = tree_size;
- treeProto.visit = tree_visit;
- treeProto.visitAfter = tree_visitAfter;
- treeProto.x = tree_x;
- treeProto.y = tree_y;
- treeProto.z = tree_z;
- exports.octree = octree;
- Object.defineProperty(exports, '__esModule', {
- value: true
- });
-});
-
-/***/ })
-
-};
-; \ No newline at end of file
diff --git a/build/server/font-manifest.json b/build/server/font-manifest.json
deleted file mode 100644
index 0637a08..0000000
--- a/build/server/font-manifest.json
+++ /dev/null
@@ -1 +0,0 @@
-[] \ No newline at end of file
diff --git a/build/server/pages-manifest.json b/build/server/pages-manifest.json
deleted file mode 100644
index bfb04b4..0000000
--- a/build/server/pages-manifest.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "/_app": "pages/_app.js",
- "/": "pages/index.html",
- "/_error": "pages/_error.js",
- "/_document": "pages/_document.js",
- "/404": "pages/404.html"
-} \ No newline at end of file
diff --git a/build/server/pages/404.html b/build/server/pages/404.html
deleted file mode 100644
index d3dfff6..0000000
--- a/build/server/pages/404.html
+++ /dev/null
@@ -1 +0,0 @@
-<!DOCTYPE html><html><head><meta name="viewport" content="width=device-width"/><meta charSet="utf-8"/><title>404: This page could not be found</title><meta name="next-head-count" content="3"/><link rel="preload" href="/_next/static/css/120f2e2270820d49a21f.css" as="style"/><link rel="stylesheet" href="/_next/static/css/120f2e2270820d49a21f.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-a54b4f32bdc1ef890ddd.js"></script><script src="/_next/static/chunks/webpack-f6b94a473b4a21f6bdce.js" defer=""></script><script src="/_next/static/chunks/framework-0441fae7fd130f37dee1.js" defer=""></script><script src="/_next/static/chunks/main-a3a79aff3ff232b41814.js" defer=""></script><script src="/_next/static/chunks/pages/_app-5bb503dca4dae114eb0c.js" defer=""></script><script src="/_next/static/chunks/pages/_error-a0e21b9b223f827fe1f2.js" defer=""></script><script src="/_next/static/Ci3EcXz8ajkhs7MVidKTf/_buildManifest.js" defer=""></script><script src="/_next/static/Ci3EcXz8ajkhs7MVidKTf/_ssgManifest.js" defer=""></script></head><body><div id="__next"><style data-emotion="css-global o7558t">:host,:root{--chakra-ring-inset:var(--chakra-empty,/*!*/ /*!*/);--chakra-ring-offset-width:0px;--chakra-ring-offset-color:#fff;--chakra-ring-color:rgba(66, 153, 225, 0.6);--chakra-ring-offset-shadow:0 0 #0000;--chakra-ring-shadow:0 0 #0000;--chakra-space-x-reverse:0;--chakra-space-y-reverse:0;--chakra-colors-transparent:transparent;--chakra-colors-current:currentColor;--chakra-colors-black:#000000;--chakra-colors-white:#FFFFFF;--chakra-colors-whiteAlpha-50:rgba(255, 255, 255, 0.04);--chakra-colors-whiteAlpha-100:rgba(255, 255, 255, 0.06);--chakra-colors-whiteAlpha-200:rgba(255, 255, 255, 0.08);--chakra-colors-whiteAlpha-300:rgba(255, 255, 255, 0.16);--chakra-colors-whiteAlpha-400:rgba(255, 255, 255, 0.24);--chakra-colors-whiteAlpha-500:rgba(255, 255, 255, 0.36);--chakra-colors-whiteAlpha-600:rgba(255, 255, 255, 0.48);--chakra-colors-whiteAlpha-700:rgba(255, 255, 255, 0.64);--chakra-colors-whiteAlpha-800:rgba(255, 255, 255, 0.80);--chakra-colors-whiteAlpha-900:rgba(255, 255, 255, 0.92);--chakra-colors-blackAlpha-50:rgba(0, 0, 0, 0.04);--chakra-colors-blackAlpha-100:rgba(0, 0, 0, 0.06);--chakra-colors-blackAlpha-200:rgba(0, 0, 0, 0.08);--chakra-colors-blackAlpha-300:rgba(0, 0, 0, 0.16);--chakra-colors-blackAlpha-400:rgba(0, 0, 0, 0.24);--chakra-colors-blackAlpha-500:rgba(0, 0, 0, 0.36);--chakra-colors-blackAlpha-600:rgba(0, 0, 0, 0.48);--chakra-colors-blackAlpha-700:rgba(0, 0, 0, 0.64);--chakra-colors-blackAlpha-800:rgba(0, 0, 0, 0.80);--chakra-colors-blackAlpha-900:rgba(0, 0, 0, 0.92);--chakra-colors-gray-50:#F7FAFC;--chakra-colors-gray-100:#EDF2F7;--chakra-colors-gray-200:#E2E8F0;--chakra-colors-gray-300:#CBD5E0;--chakra-colors-gray-400:#A0AEC0;--chakra-colors-gray-500:#718096;--chakra-colors-gray-600:#4A5568;--chakra-colors-gray-700:#2D3748;--chakra-colors-gray-800:#1A202C;--chakra-colors-gray-900:#171923;--chakra-colors-red-50:#FFF5F5;--chakra-colors-red-100:#FED7D7;--chakra-colors-red-200:#FEB2B2;--chakra-colors-red-300:#FC8181;--chakra-colors-red-400:#F56565;--chakra-colors-red-500:#E53E3E;--chakra-colors-red-600:#C53030;--chakra-colors-red-700:#9B2C2C;--chakra-colors-red-800:#822727;--chakra-colors-red-900:#63171B;--chakra-colors-orange-50:#FFFAF0;--chakra-colors-orange-100:#FEEBC8;--chakra-colors-orange-200:#FBD38D;--chakra-colors-orange-300:#F6AD55;--chakra-colors-orange-400:#ED8936;--chakra-colors-orange-500:#DD6B20;--chakra-colors-orange-600:#C05621;--chakra-colors-orange-700:#9C4221;--chakra-colors-orange-800:#7B341E;--chakra-colors-orange-900:#652B19;--chakra-colors-yellow-50:#FFFFF0;--chakra-colors-yellow-100:#FEFCBF;--chakra-colors-yellow-200:#FAF089;--chakra-colors-yellow-300:#F6E05E;--chakra-colors-yellow-400:#ECC94B;--chakra-colors-yellow-500:#D69E2E;--chakra-colors-yellow-600:#B7791F;--chakra-colors-yellow-700:#975A16;--chakra-colors-yellow-800:#744210;--chakra-colors-yellow-900:#5F370E;--chakra-colors-green-50:#F0FFF4;--chakra-colors-green-100:#C6F6D5;--chakra-colors-green-200:#9AE6B4;--chakra-colors-green-300:#68D391;--chakra-colors-green-400:#48BB78;--chakra-colors-green-500:#38A169;--chakra-colors-green-600:#2F855A;--chakra-colors-green-700:#276749;--chakra-colors-green-800:#22543D;--chakra-colors-green-900:#1C4532;--chakra-colors-teal-50:#E6FFFA;--chakra-colors-teal-100:#B2F5EA;--chakra-colors-teal-200:#81E6D9;--chakra-colors-teal-300:#4FD1C5;--chakra-colors-teal-400:#38B2AC;--chakra-colors-teal-500:#319795;--chakra-colors-teal-600:#2C7A7B;--chakra-colors-teal-700:#285E61;--chakra-colors-teal-800:#234E52;--chakra-colors-teal-900:#1D4044;--chakra-colors-blue-50:#ebf8ff;--chakra-colors-blue-100:#bee3f8;--chakra-colors-blue-200:#90cdf4;--chakra-colors-blue-300:#63b3ed;--chakra-colors-blue-400:#4299e1;--chakra-colors-blue-500:#3182ce;--chakra-colors-blue-600:#2b6cb0;--chakra-colors-blue-700:#2c5282;--chakra-colors-blue-800:#2a4365;--chakra-colors-blue-900:#1A365D;--chakra-colors-cyan-50:#EDFDFD;--chakra-colors-cyan-100:#C4F1F9;--chakra-colors-cyan-200:#9DECF9;--chakra-colors-cyan-300:#76E4F7;--chakra-colors-cyan-400:#0BC5EA;--chakra-colors-cyan-500:#00B5D8;--chakra-colors-cyan-600:#00A3C4;--chakra-colors-cyan-700:#0987A0;--chakra-colors-cyan-800:#086F83;--chakra-colors-cyan-900:#065666;--chakra-colors-purple-50:#FAF5FF;--chakra-colors-purple-100:#E9D8FD;--chakra-colors-purple-200:#D6BCFA;--chakra-colors-purple-300:#B794F4;--chakra-colors-purple-400:#9F7AEA;--chakra-colors-purple-500:#805AD5;--chakra-colors-purple-600:#6B46C1;--chakra-colors-purple-700:#553C9A;--chakra-colors-purple-800:#44337A;--chakra-colors-purple-900:#322659;--chakra-colors-pink-50:#FFF5F7;--chakra-colors-pink-100:#FED7E2;--chakra-colors-pink-200:#FBB6CE;--chakra-colors-pink-300:#F687B3;--chakra-colors-pink-400:#ED64A6;--chakra-colors-pink-500:#D53F8C;--chakra-colors-pink-600:#B83280;--chakra-colors-pink-700:#97266D;--chakra-colors-pink-800:#702459;--chakra-colors-pink-900:#521B41;--chakra-colors-linkedin-50:#E8F4F9;--chakra-colors-linkedin-100:#CFEDFB;--chakra-colors-linkedin-200:#9BDAF3;--chakra-colors-linkedin-300:#68C7EC;--chakra-colors-linkedin-400:#34B3E4;--chakra-colors-linkedin-500:#00A0DC;--chakra-colors-linkedin-600:#008CC9;--chakra-colors-linkedin-700:#0077B5;--chakra-colors-linkedin-800:#005E93;--chakra-colors-linkedin-900:#004471;--chakra-colors-facebook-50:#E8F4F9;--chakra-colors-facebook-100:#D9DEE9;--chakra-colors-facebook-200:#B7C2DA;--chakra-colors-facebook-300:#6482C0;--chakra-colors-facebook-400:#4267B2;--chakra-colors-facebook-500:#385898;--chakra-colors-facebook-600:#314E89;--chakra-colors-facebook-700:#29487D;--chakra-colors-facebook-800:#223B67;--chakra-colors-facebook-900:#1E355B;--chakra-colors-messenger-50:#D0E6FF;--chakra-colors-messenger-100:#B9DAFF;--chakra-colors-messenger-200:#A2CDFF;--chakra-colors-messenger-300:#7AB8FF;--chakra-colors-messenger-400:#2E90FF;--chakra-colors-messenger-500:#0078FF;--chakra-colors-messenger-600:#0063D1;--chakra-colors-messenger-700:#0052AC;--chakra-colors-messenger-800:#003C7E;--chakra-colors-messenger-900:#002C5C;--chakra-colors-whatsapp-50:#dffeec;--chakra-colors-whatsapp-100:#b9f5d0;--chakra-colors-whatsapp-200:#90edb3;--chakra-colors-whatsapp-300:#65e495;--chakra-colors-whatsapp-400:#3cdd78;--chakra-colors-whatsapp-500:#22c35e;--chakra-colors-whatsapp-600:#179848;--chakra-colors-whatsapp-700:#0c6c33;--chakra-colors-whatsapp-800:#01421c;--chakra-colors-whatsapp-900:#001803;--chakra-colors-twitter-50:#E5F4FD;--chakra-colors-twitter-100:#C8E9FB;--chakra-colors-twitter-200:#A8DCFA;--chakra-colors-twitter-300:#83CDF7;--chakra-colors-twitter-400:#57BBF5;--chakra-colors-twitter-500:#1DA1F2;--chakra-colors-twitter-600:#1A94DA;--chakra-colors-twitter-700:#1681BF;--chakra-colors-twitter-800:#136B9E;--chakra-colors-twitter-900:#0D4D71;--chakra-colors-telegram-50:#E3F2F9;--chakra-colors-telegram-100:#C5E4F3;--chakra-colors-telegram-200:#A2D4EC;--chakra-colors-telegram-300:#7AC1E4;--chakra-colors-telegram-400:#47A9DA;--chakra-colors-telegram-500:#0088CC;--chakra-colors-telegram-600:#007AB8;--chakra-colors-telegram-700:#006BA1;--chakra-colors-telegram-800:#005885;--chakra-colors-telegram-900:#003F5E;--chakra-borders-none:0;--chakra-borders-1px:1px solid;--chakra-borders-2px:2px solid;--chakra-borders-4px:4px solid;--chakra-borders-8px:8px solid;--chakra-fonts-heading:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--chakra-fonts-body:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--chakra-fonts-mono:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--chakra-fontSizes-xs:0.75rem;--chakra-fontSizes-sm:0.875rem;--chakra-fontSizes-md:1rem;--chakra-fontSizes-lg:1.125rem;--chakra-fontSizes-xl:1.25rem;--chakra-fontSizes-2xl:1.5rem;--chakra-fontSizes-3xl:1.875rem;--chakra-fontSizes-4xl:2.25rem;--chakra-fontSizes-5xl:3rem;--chakra-fontSizes-6xl:3.75rem;--chakra-fontSizes-7xl:4.5rem;--chakra-fontSizes-8xl:6rem;--chakra-fontSizes-9xl:8rem;--chakra-fontWeights-hairline:100;--chakra-fontWeights-thin:200;--chakra-fontWeights-light:300;--chakra-fontWeights-normal:400;--chakra-fontWeights-medium:500;--chakra-fontWeights-semibold:600;--chakra-fontWeights-bold:700;--chakra-fontWeights-extrabold:800;--chakra-fontWeights-black:900;--chakra-letterSpacings-tighter:-0.05em;--chakra-letterSpacings-tight:-0.025em;--chakra-letterSpacings-normal:0;--chakra-letterSpacings-wide:0.025em;--chakra-letterSpacings-wider:0.05em;--chakra-letterSpacings-widest:0.1em;--chakra-lineHeights-3:.75rem;--chakra-lineHeights-4:1rem;--chakra-lineHeights-5:1.25rem;--chakra-lineHeights-6:1.5rem;--chakra-lineHeights-7:1.75rem;--chakra-lineHeights-8:2rem;--chakra-lineHeights-9:2.25rem;--chakra-lineHeights-10:2.5rem;--chakra-lineHeights-normal:normal;--chakra-lineHeights-none:1;--chakra-lineHeights-shorter:1.25;--chakra-lineHeights-short:1.375;--chakra-lineHeights-base:1.5;--chakra-lineHeights-tall:1.625;--chakra-lineHeights-taller:2;--chakra-radii-none:0;--chakra-radii-sm:0.125rem;--chakra-radii-base:0.25rem;--chakra-radii-md:0.375rem;--chakra-radii-lg:0.5rem;--chakra-radii-xl:0.75rem;--chakra-radii-2xl:1rem;--chakra-radii-3xl:1.5rem;--chakra-radii-full:9999px;--chakra-space-1:0.25rem;--chakra-space-2:0.5rem;--chakra-space-3:0.75rem;--chakra-space-4:1rem;--chakra-space-5:1.25rem;--chakra-space-6:1.5rem;--chakra-space-7:1.75rem;--chakra-space-8:2rem;--chakra-space-9:2.25rem;--chakra-space-10:2.5rem;--chakra-space-12:3rem;--chakra-space-14:3.5rem;--chakra-space-16:4rem;--chakra-space-20:5rem;--chakra-space-24:6rem;--chakra-space-28:7rem;--chakra-space-32:8rem;--chakra-space-36:9rem;--chakra-space-40:10rem;--chakra-space-44:11rem;--chakra-space-48:12rem;--chakra-space-52:13rem;--chakra-space-56:14rem;--chakra-space-60:15rem;--chakra-space-64:16rem;--chakra-space-72:18rem;--chakra-space-80:20rem;--chakra-space-96:24rem;--chakra-space-px:1px;--chakra-space-0\.5:0.125rem;--chakra-space-1\.5:0.375rem;--chakra-space-2\.5:0.625rem;--chakra-space-3\.5:0.875rem;--chakra-shadows-xs:0 0 0 1px rgba(0, 0, 0, 0.05);--chakra-shadows-sm:0 1px 2px 0 rgba(0, 0, 0, 0.05);--chakra-shadows-base:0 1px 3px 0 rgba(0, 0, 0, 0.1),0 1px 2px 0 rgba(0, 0, 0, 0.06);--chakra-shadows-md:0 4px 6px -1px rgba(0, 0, 0, 0.1),0 2px 4px -1px rgba(0, 0, 0, 0.06);--chakra-shadows-lg:0 10px 15px -3px rgba(0, 0, 0, 0.1),0 4px 6px -2px rgba(0, 0, 0, 0.05);--chakra-shadows-xl:0 20px 25px -5px rgba(0, 0, 0, 0.1),0 10px 10px -5px rgba(0, 0, 0, 0.04);--chakra-shadows-2xl:0 25px 50px -12px rgba(0, 0, 0, 0.25);--chakra-shadows-outline:0 0 0 3px rgba(66, 153, 225, 0.6);--chakra-shadows-inner:inset 0 2px 4px 0 rgba(0,0,0,0.06);--chakra-shadows-none:none;--chakra-shadows-dark-lg:rgba(0, 0, 0, 0.1) 0px 0px 0px 1px,rgba(0, 0, 0, 0.2) 0px 5px 10px,rgba(0, 0, 0, 0.4) 0px 15px 40px;--chakra-sizes-1:0.25rem;--chakra-sizes-2:0.5rem;--chakra-sizes-3:0.75rem;--chakra-sizes-4:1rem;--chakra-sizes-5:1.25rem;--chakra-sizes-6:1.5rem;--chakra-sizes-7:1.75rem;--chakra-sizes-8:2rem;--chakra-sizes-9:2.25rem;--chakra-sizes-10:2.5rem;--chakra-sizes-12:3rem;--chakra-sizes-14:3.5rem;--chakra-sizes-16:4rem;--chakra-sizes-20:5rem;--chakra-sizes-24:6rem;--chakra-sizes-28:7rem;--chakra-sizes-32:8rem;--chakra-sizes-36:9rem;--chakra-sizes-40:10rem;--chakra-sizes-44:11rem;--chakra-sizes-48:12rem;--chakra-sizes-52:13rem;--chakra-sizes-56:14rem;--chakra-sizes-60:15rem;--chakra-sizes-64:16rem;--chakra-sizes-72:18rem;--chakra-sizes-80:20rem;--chakra-sizes-96:24rem;--chakra-sizes-px:1px;--chakra-sizes-0\.5:0.125rem;--chakra-sizes-1\.5:0.375rem;--chakra-sizes-2\.5:0.625rem;--chakra-sizes-3\.5:0.875rem;--chakra-sizes-max:max-content;--chakra-sizes-min:min-content;--chakra-sizes-full:100%;--chakra-sizes-3xs:14rem;--chakra-sizes-2xs:16rem;--chakra-sizes-xs:20rem;--chakra-sizes-sm:24rem;--chakra-sizes-md:28rem;--chakra-sizes-lg:32rem;--chakra-sizes-xl:36rem;--chakra-sizes-2xl:42rem;--chakra-sizes-3xl:48rem;--chakra-sizes-4xl:56rem;--chakra-sizes-5xl:64rem;--chakra-sizes-6xl:72rem;--chakra-sizes-7xl:80rem;--chakra-sizes-8xl:90rem;--chakra-sizes-container-sm:640px;--chakra-sizes-container-md:768px;--chakra-sizes-container-lg:1024px;--chakra-sizes-container-xl:1280px;--chakra-zIndices-hide:-1;--chakra-zIndices-auto:auto;--chakra-zIndices-base:0;--chakra-zIndices-docked:10;--chakra-zIndices-dropdown:1000;--chakra-zIndices-sticky:1100;--chakra-zIndices-banner:1200;--chakra-zIndices-overlay:1300;--chakra-zIndices-modal:1400;--chakra-zIndices-popover:1500;--chakra-zIndices-skipLink:1600;--chakra-zIndices-toast:1700;--chakra-zIndices-tooltip:1800;--chakra-transition-property-common:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform;--chakra-transition-property-colors:background-color,border-color,color,fill,stroke;--chakra-transition-property-dimensions:width,height;--chakra-transition-property-position:left,right,top,bottom;--chakra-transition-property-background:background-color,background-image,background-position;--chakra-transition-easing-ease-in:cubic-bezier(0.4, 0, 1, 1);--chakra-transition-easing-ease-out:cubic-bezier(0, 0, 0.2, 1);--chakra-transition-easing-ease-in-out:cubic-bezier(0.4, 0, 0.2, 1);--chakra-transition-duration-ultra-fast:50ms;--chakra-transition-duration-faster:100ms;--chakra-transition-duration-fast:150ms;--chakra-transition-duration-normal:200ms;--chakra-transition-duration-slow:300ms;--chakra-transition-duration-slower:400ms;--chakra-transition-duration-ultra-slow:500ms;--chakra-blur-none:0;--chakra-blur-sm:4px;--chakra-blur-base:8px;--chakra-blur-md:12px;--chakra-blur-lg:16px;--chakra-blur-xl:24px;--chakra-blur-2xl:40px;--chakra-blur-3xl:64px;}</style><style data-emotion="css-global 1syi0wy">html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:system-ui,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;touch-action:manipulation;}body{position:relative;min-height:100%;font-feature-settings:'kern';}*,*::before,*::after{border-width:0;border-style:solid;box-sizing:border-box;}main{display:block;}hr{border-top-width:1px;box-sizing:content-box;height:0;overflow:visible;}pre,code,kbd,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:1em;}a{background-color:transparent;color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit;}abbr[title]{border-bottom:none;-webkit-text-decoration:underline;text-decoration:underline;-webkit-text-decoration:underline dotted;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bold;}small{font-size:80%;}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline;}sub{bottom:-0.25em;}sup{top:-0.5em;}img{border-style:none;}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible;}button,select{text-transform:none;}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0;}fieldset{padding:0.35em 0.75em 0.625em;}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline;}textarea{overflow:auto;}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{-webkit-appearance:none!important;}input[type="number"]{-moz-appearance:textfield;}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none!important;}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block;}summary{display:-webkit-box;display:-webkit-list-item;display:-ms-list-itembox;display:list-item;}template{display:none;}[hidden]{display:none!important;}body,blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0;}button{background:transparent;padding:0;}fieldset{margin:0;padding:0;}ol,ul{margin:0;padding:0;}textarea{resize:vertical;}button,[role="button"]{cursor:pointer;}button::-moz-focus-inner{border:0!important;}table{border-collapse:collapse;}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit;}button,input,optgroup,select,textarea{padding:0;line-height:inherit;color:inherit;}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle;}img,video{max-width:100%;height:auto;}[data-js-focus-visible] :focus:not([data-focus-visible-added]){outline:none;box-shadow:none;}select::-ms-expand{display:none;}</style><style data-emotion="css-global 1baqkrf">body{font-family:var(--chakra-fonts-body);color:var(--chakra-colors-gray-800);background:var(--chakra-colors-white);transition-property:background-color;transition-duration:var(--chakra-transition-duration-normal);line-height:var(--chakra-lineHeights-base);}*::-webkit-input-placeholder{color:var(--chakra-colors-gray-400);}*::-moz-placeholder{color:var(--chakra-colors-gray-400);}*:-ms-input-placeholder{color:var(--chakra-colors-gray-400);}*::placeholder{color:var(--chakra-colors-gray-400);}*,*::before,::after{border-color:var(--chakra-colors-gray-200);word-wrap:break-word;}</style><div style="color:#000;background:#fff;font-family:-apple-system, BlinkMacSystemFont, Roboto, &quot;Segoe UI&quot;, &quot;Fira Sans&quot;, Avenir, &quot;Helvetica Neue&quot;, &quot;Lucida Grande&quot;, sans-serif;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body { margin: 0 }</style><h1 style="display:inline-block;border-right:1px solid rgba(0, 0, 0,.3);margin:0;margin-right:20px;padding:10px 23px 10px 0;font-size:24px;font-weight:500;vertical-align:top">404</h1><div style="display:inline-block;text-align:left;line-height:49px;height:49px;vertical-align:middle"><h2 style="font-size:14px;font-weight:normal;line-height:inherit;margin:0;padding:0">This page could not be found<!-- -->.</h2></div></div></div><span></span></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404}},"page":"/_error","query":{},"buildId":"Ci3EcXz8ajkhs7MVidKTf","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html> \ No newline at end of file
diff --git a/build/server/pages/500.html b/build/server/pages/500.html
deleted file mode 100644
index 2ec9c31..0000000
--- a/build/server/pages/500.html
+++ /dev/null
@@ -1 +0,0 @@
-<!DOCTYPE html><html><head><meta name="viewport" content="width=device-width"/><meta charSet="utf-8"/><title>500: Internal Server Error</title><meta name="next-head-count" content="3"/><link rel="preload" href="/_next/static/css/120f2e2270820d49a21f.css" as="style"/><link rel="stylesheet" href="/_next/static/css/120f2e2270820d49a21f.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-a54b4f32bdc1ef890ddd.js"></script><script src="/_next/static/chunks/webpack-f6b94a473b4a21f6bdce.js" defer=""></script><script src="/_next/static/chunks/framework-0441fae7fd130f37dee1.js" defer=""></script><script src="/_next/static/chunks/main-a3a79aff3ff232b41814.js" defer=""></script><script src="/_next/static/chunks/pages/_app-5bb503dca4dae114eb0c.js" defer=""></script><script src="/_next/static/chunks/pages/_error-a0e21b9b223f827fe1f2.js" defer=""></script><script src="/_next/static/Ci3EcXz8ajkhs7MVidKTf/_buildManifest.js" defer=""></script><script src="/_next/static/Ci3EcXz8ajkhs7MVidKTf/_ssgManifest.js" defer=""></script></head><body><div id="__next"><style data-emotion="css-global o7558t">:host,:root{--chakra-ring-inset:var(--chakra-empty,/*!*/ /*!*/);--chakra-ring-offset-width:0px;--chakra-ring-offset-color:#fff;--chakra-ring-color:rgba(66, 153, 225, 0.6);--chakra-ring-offset-shadow:0 0 #0000;--chakra-ring-shadow:0 0 #0000;--chakra-space-x-reverse:0;--chakra-space-y-reverse:0;--chakra-colors-transparent:transparent;--chakra-colors-current:currentColor;--chakra-colors-black:#000000;--chakra-colors-white:#FFFFFF;--chakra-colors-whiteAlpha-50:rgba(255, 255, 255, 0.04);--chakra-colors-whiteAlpha-100:rgba(255, 255, 255, 0.06);--chakra-colors-whiteAlpha-200:rgba(255, 255, 255, 0.08);--chakra-colors-whiteAlpha-300:rgba(255, 255, 255, 0.16);--chakra-colors-whiteAlpha-400:rgba(255, 255, 255, 0.24);--chakra-colors-whiteAlpha-500:rgba(255, 255, 255, 0.36);--chakra-colors-whiteAlpha-600:rgba(255, 255, 255, 0.48);--chakra-colors-whiteAlpha-700:rgba(255, 255, 255, 0.64);--chakra-colors-whiteAlpha-800:rgba(255, 255, 255, 0.80);--chakra-colors-whiteAlpha-900:rgba(255, 255, 255, 0.92);--chakra-colors-blackAlpha-50:rgba(0, 0, 0, 0.04);--chakra-colors-blackAlpha-100:rgba(0, 0, 0, 0.06);--chakra-colors-blackAlpha-200:rgba(0, 0, 0, 0.08);--chakra-colors-blackAlpha-300:rgba(0, 0, 0, 0.16);--chakra-colors-blackAlpha-400:rgba(0, 0, 0, 0.24);--chakra-colors-blackAlpha-500:rgba(0, 0, 0, 0.36);--chakra-colors-blackAlpha-600:rgba(0, 0, 0, 0.48);--chakra-colors-blackAlpha-700:rgba(0, 0, 0, 0.64);--chakra-colors-blackAlpha-800:rgba(0, 0, 0, 0.80);--chakra-colors-blackAlpha-900:rgba(0, 0, 0, 0.92);--chakra-colors-gray-50:#F7FAFC;--chakra-colors-gray-100:#EDF2F7;--chakra-colors-gray-200:#E2E8F0;--chakra-colors-gray-300:#CBD5E0;--chakra-colors-gray-400:#A0AEC0;--chakra-colors-gray-500:#718096;--chakra-colors-gray-600:#4A5568;--chakra-colors-gray-700:#2D3748;--chakra-colors-gray-800:#1A202C;--chakra-colors-gray-900:#171923;--chakra-colors-red-50:#FFF5F5;--chakra-colors-red-100:#FED7D7;--chakra-colors-red-200:#FEB2B2;--chakra-colors-red-300:#FC8181;--chakra-colors-red-400:#F56565;--chakra-colors-red-500:#E53E3E;--chakra-colors-red-600:#C53030;--chakra-colors-red-700:#9B2C2C;--chakra-colors-red-800:#822727;--chakra-colors-red-900:#63171B;--chakra-colors-orange-50:#FFFAF0;--chakra-colors-orange-100:#FEEBC8;--chakra-colors-orange-200:#FBD38D;--chakra-colors-orange-300:#F6AD55;--chakra-colors-orange-400:#ED8936;--chakra-colors-orange-500:#DD6B20;--chakra-colors-orange-600:#C05621;--chakra-colors-orange-700:#9C4221;--chakra-colors-orange-800:#7B341E;--chakra-colors-orange-900:#652B19;--chakra-colors-yellow-50:#FFFFF0;--chakra-colors-yellow-100:#FEFCBF;--chakra-colors-yellow-200:#FAF089;--chakra-colors-yellow-300:#F6E05E;--chakra-colors-yellow-400:#ECC94B;--chakra-colors-yellow-500:#D69E2E;--chakra-colors-yellow-600:#B7791F;--chakra-colors-yellow-700:#975A16;--chakra-colors-yellow-800:#744210;--chakra-colors-yellow-900:#5F370E;--chakra-colors-green-50:#F0FFF4;--chakra-colors-green-100:#C6F6D5;--chakra-colors-green-200:#9AE6B4;--chakra-colors-green-300:#68D391;--chakra-colors-green-400:#48BB78;--chakra-colors-green-500:#38A169;--chakra-colors-green-600:#2F855A;--chakra-colors-green-700:#276749;--chakra-colors-green-800:#22543D;--chakra-colors-green-900:#1C4532;--chakra-colors-teal-50:#E6FFFA;--chakra-colors-teal-100:#B2F5EA;--chakra-colors-teal-200:#81E6D9;--chakra-colors-teal-300:#4FD1C5;--chakra-colors-teal-400:#38B2AC;--chakra-colors-teal-500:#319795;--chakra-colors-teal-600:#2C7A7B;--chakra-colors-teal-700:#285E61;--chakra-colors-teal-800:#234E52;--chakra-colors-teal-900:#1D4044;--chakra-colors-blue-50:#ebf8ff;--chakra-colors-blue-100:#bee3f8;--chakra-colors-blue-200:#90cdf4;--chakra-colors-blue-300:#63b3ed;--chakra-colors-blue-400:#4299e1;--chakra-colors-blue-500:#3182ce;--chakra-colors-blue-600:#2b6cb0;--chakra-colors-blue-700:#2c5282;--chakra-colors-blue-800:#2a4365;--chakra-colors-blue-900:#1A365D;--chakra-colors-cyan-50:#EDFDFD;--chakra-colors-cyan-100:#C4F1F9;--chakra-colors-cyan-200:#9DECF9;--chakra-colors-cyan-300:#76E4F7;--chakra-colors-cyan-400:#0BC5EA;--chakra-colors-cyan-500:#00B5D8;--chakra-colors-cyan-600:#00A3C4;--chakra-colors-cyan-700:#0987A0;--chakra-colors-cyan-800:#086F83;--chakra-colors-cyan-900:#065666;--chakra-colors-purple-50:#FAF5FF;--chakra-colors-purple-100:#E9D8FD;--chakra-colors-purple-200:#D6BCFA;--chakra-colors-purple-300:#B794F4;--chakra-colors-purple-400:#9F7AEA;--chakra-colors-purple-500:#805AD5;--chakra-colors-purple-600:#6B46C1;--chakra-colors-purple-700:#553C9A;--chakra-colors-purple-800:#44337A;--chakra-colors-purple-900:#322659;--chakra-colors-pink-50:#FFF5F7;--chakra-colors-pink-100:#FED7E2;--chakra-colors-pink-200:#FBB6CE;--chakra-colors-pink-300:#F687B3;--chakra-colors-pink-400:#ED64A6;--chakra-colors-pink-500:#D53F8C;--chakra-colors-pink-600:#B83280;--chakra-colors-pink-700:#97266D;--chakra-colors-pink-800:#702459;--chakra-colors-pink-900:#521B41;--chakra-colors-linkedin-50:#E8F4F9;--chakra-colors-linkedin-100:#CFEDFB;--chakra-colors-linkedin-200:#9BDAF3;--chakra-colors-linkedin-300:#68C7EC;--chakra-colors-linkedin-400:#34B3E4;--chakra-colors-linkedin-500:#00A0DC;--chakra-colors-linkedin-600:#008CC9;--chakra-colors-linkedin-700:#0077B5;--chakra-colors-linkedin-800:#005E93;--chakra-colors-linkedin-900:#004471;--chakra-colors-facebook-50:#E8F4F9;--chakra-colors-facebook-100:#D9DEE9;--chakra-colors-facebook-200:#B7C2DA;--chakra-colors-facebook-300:#6482C0;--chakra-colors-facebook-400:#4267B2;--chakra-colors-facebook-500:#385898;--chakra-colors-facebook-600:#314E89;--chakra-colors-facebook-700:#29487D;--chakra-colors-facebook-800:#223B67;--chakra-colors-facebook-900:#1E355B;--chakra-colors-messenger-50:#D0E6FF;--chakra-colors-messenger-100:#B9DAFF;--chakra-colors-messenger-200:#A2CDFF;--chakra-colors-messenger-300:#7AB8FF;--chakra-colors-messenger-400:#2E90FF;--chakra-colors-messenger-500:#0078FF;--chakra-colors-messenger-600:#0063D1;--chakra-colors-messenger-700:#0052AC;--chakra-colors-messenger-800:#003C7E;--chakra-colors-messenger-900:#002C5C;--chakra-colors-whatsapp-50:#dffeec;--chakra-colors-whatsapp-100:#b9f5d0;--chakra-colors-whatsapp-200:#90edb3;--chakra-colors-whatsapp-300:#65e495;--chakra-colors-whatsapp-400:#3cdd78;--chakra-colors-whatsapp-500:#22c35e;--chakra-colors-whatsapp-600:#179848;--chakra-colors-whatsapp-700:#0c6c33;--chakra-colors-whatsapp-800:#01421c;--chakra-colors-whatsapp-900:#001803;--chakra-colors-twitter-50:#E5F4FD;--chakra-colors-twitter-100:#C8E9FB;--chakra-colors-twitter-200:#A8DCFA;--chakra-colors-twitter-300:#83CDF7;--chakra-colors-twitter-400:#57BBF5;--chakra-colors-twitter-500:#1DA1F2;--chakra-colors-twitter-600:#1A94DA;--chakra-colors-twitter-700:#1681BF;--chakra-colors-twitter-800:#136B9E;--chakra-colors-twitter-900:#0D4D71;--chakra-colors-telegram-50:#E3F2F9;--chakra-colors-telegram-100:#C5E4F3;--chakra-colors-telegram-200:#A2D4EC;--chakra-colors-telegram-300:#7AC1E4;--chakra-colors-telegram-400:#47A9DA;--chakra-colors-telegram-500:#0088CC;--chakra-colors-telegram-600:#007AB8;--chakra-colors-telegram-700:#006BA1;--chakra-colors-telegram-800:#005885;--chakra-colors-telegram-900:#003F5E;--chakra-borders-none:0;--chakra-borders-1px:1px solid;--chakra-borders-2px:2px solid;--chakra-borders-4px:4px solid;--chakra-borders-8px:8px solid;--chakra-fonts-heading:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--chakra-fonts-body:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--chakra-fonts-mono:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--chakra-fontSizes-xs:0.75rem;--chakra-fontSizes-sm:0.875rem;--chakra-fontSizes-md:1rem;--chakra-fontSizes-lg:1.125rem;--chakra-fontSizes-xl:1.25rem;--chakra-fontSizes-2xl:1.5rem;--chakra-fontSizes-3xl:1.875rem;--chakra-fontSizes-4xl:2.25rem;--chakra-fontSizes-5xl:3rem;--chakra-fontSizes-6xl:3.75rem;--chakra-fontSizes-7xl:4.5rem;--chakra-fontSizes-8xl:6rem;--chakra-fontSizes-9xl:8rem;--chakra-fontWeights-hairline:100;--chakra-fontWeights-thin:200;--chakra-fontWeights-light:300;--chakra-fontWeights-normal:400;--chakra-fontWeights-medium:500;--chakra-fontWeights-semibold:600;--chakra-fontWeights-bold:700;--chakra-fontWeights-extrabold:800;--chakra-fontWeights-black:900;--chakra-letterSpacings-tighter:-0.05em;--chakra-letterSpacings-tight:-0.025em;--chakra-letterSpacings-normal:0;--chakra-letterSpacings-wide:0.025em;--chakra-letterSpacings-wider:0.05em;--chakra-letterSpacings-widest:0.1em;--chakra-lineHeights-3:.75rem;--chakra-lineHeights-4:1rem;--chakra-lineHeights-5:1.25rem;--chakra-lineHeights-6:1.5rem;--chakra-lineHeights-7:1.75rem;--chakra-lineHeights-8:2rem;--chakra-lineHeights-9:2.25rem;--chakra-lineHeights-10:2.5rem;--chakra-lineHeights-normal:normal;--chakra-lineHeights-none:1;--chakra-lineHeights-shorter:1.25;--chakra-lineHeights-short:1.375;--chakra-lineHeights-base:1.5;--chakra-lineHeights-tall:1.625;--chakra-lineHeights-taller:2;--chakra-radii-none:0;--chakra-radii-sm:0.125rem;--chakra-radii-base:0.25rem;--chakra-radii-md:0.375rem;--chakra-radii-lg:0.5rem;--chakra-radii-xl:0.75rem;--chakra-radii-2xl:1rem;--chakra-radii-3xl:1.5rem;--chakra-radii-full:9999px;--chakra-space-1:0.25rem;--chakra-space-2:0.5rem;--chakra-space-3:0.75rem;--chakra-space-4:1rem;--chakra-space-5:1.25rem;--chakra-space-6:1.5rem;--chakra-space-7:1.75rem;--chakra-space-8:2rem;--chakra-space-9:2.25rem;--chakra-space-10:2.5rem;--chakra-space-12:3rem;--chakra-space-14:3.5rem;--chakra-space-16:4rem;--chakra-space-20:5rem;--chakra-space-24:6rem;--chakra-space-28:7rem;--chakra-space-32:8rem;--chakra-space-36:9rem;--chakra-space-40:10rem;--chakra-space-44:11rem;--chakra-space-48:12rem;--chakra-space-52:13rem;--chakra-space-56:14rem;--chakra-space-60:15rem;--chakra-space-64:16rem;--chakra-space-72:18rem;--chakra-space-80:20rem;--chakra-space-96:24rem;--chakra-space-px:1px;--chakra-space-0\.5:0.125rem;--chakra-space-1\.5:0.375rem;--chakra-space-2\.5:0.625rem;--chakra-space-3\.5:0.875rem;--chakra-shadows-xs:0 0 0 1px rgba(0, 0, 0, 0.05);--chakra-shadows-sm:0 1px 2px 0 rgba(0, 0, 0, 0.05);--chakra-shadows-base:0 1px 3px 0 rgba(0, 0, 0, 0.1),0 1px 2px 0 rgba(0, 0, 0, 0.06);--chakra-shadows-md:0 4px 6px -1px rgba(0, 0, 0, 0.1),0 2px 4px -1px rgba(0, 0, 0, 0.06);--chakra-shadows-lg:0 10px 15px -3px rgba(0, 0, 0, 0.1),0 4px 6px -2px rgba(0, 0, 0, 0.05);--chakra-shadows-xl:0 20px 25px -5px rgba(0, 0, 0, 0.1),0 10px 10px -5px rgba(0, 0, 0, 0.04);--chakra-shadows-2xl:0 25px 50px -12px rgba(0, 0, 0, 0.25);--chakra-shadows-outline:0 0 0 3px rgba(66, 153, 225, 0.6);--chakra-shadows-inner:inset 0 2px 4px 0 rgba(0,0,0,0.06);--chakra-shadows-none:none;--chakra-shadows-dark-lg:rgba(0, 0, 0, 0.1) 0px 0px 0px 1px,rgba(0, 0, 0, 0.2) 0px 5px 10px,rgba(0, 0, 0, 0.4) 0px 15px 40px;--chakra-sizes-1:0.25rem;--chakra-sizes-2:0.5rem;--chakra-sizes-3:0.75rem;--chakra-sizes-4:1rem;--chakra-sizes-5:1.25rem;--chakra-sizes-6:1.5rem;--chakra-sizes-7:1.75rem;--chakra-sizes-8:2rem;--chakra-sizes-9:2.25rem;--chakra-sizes-10:2.5rem;--chakra-sizes-12:3rem;--chakra-sizes-14:3.5rem;--chakra-sizes-16:4rem;--chakra-sizes-20:5rem;--chakra-sizes-24:6rem;--chakra-sizes-28:7rem;--chakra-sizes-32:8rem;--chakra-sizes-36:9rem;--chakra-sizes-40:10rem;--chakra-sizes-44:11rem;--chakra-sizes-48:12rem;--chakra-sizes-52:13rem;--chakra-sizes-56:14rem;--chakra-sizes-60:15rem;--chakra-sizes-64:16rem;--chakra-sizes-72:18rem;--chakra-sizes-80:20rem;--chakra-sizes-96:24rem;--chakra-sizes-px:1px;--chakra-sizes-0\.5:0.125rem;--chakra-sizes-1\.5:0.375rem;--chakra-sizes-2\.5:0.625rem;--chakra-sizes-3\.5:0.875rem;--chakra-sizes-max:max-content;--chakra-sizes-min:min-content;--chakra-sizes-full:100%;--chakra-sizes-3xs:14rem;--chakra-sizes-2xs:16rem;--chakra-sizes-xs:20rem;--chakra-sizes-sm:24rem;--chakra-sizes-md:28rem;--chakra-sizes-lg:32rem;--chakra-sizes-xl:36rem;--chakra-sizes-2xl:42rem;--chakra-sizes-3xl:48rem;--chakra-sizes-4xl:56rem;--chakra-sizes-5xl:64rem;--chakra-sizes-6xl:72rem;--chakra-sizes-7xl:80rem;--chakra-sizes-8xl:90rem;--chakra-sizes-container-sm:640px;--chakra-sizes-container-md:768px;--chakra-sizes-container-lg:1024px;--chakra-sizes-container-xl:1280px;--chakra-zIndices-hide:-1;--chakra-zIndices-auto:auto;--chakra-zIndices-base:0;--chakra-zIndices-docked:10;--chakra-zIndices-dropdown:1000;--chakra-zIndices-sticky:1100;--chakra-zIndices-banner:1200;--chakra-zIndices-overlay:1300;--chakra-zIndices-modal:1400;--chakra-zIndices-popover:1500;--chakra-zIndices-skipLink:1600;--chakra-zIndices-toast:1700;--chakra-zIndices-tooltip:1800;--chakra-transition-property-common:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform;--chakra-transition-property-colors:background-color,border-color,color,fill,stroke;--chakra-transition-property-dimensions:width,height;--chakra-transition-property-position:left,right,top,bottom;--chakra-transition-property-background:background-color,background-image,background-position;--chakra-transition-easing-ease-in:cubic-bezier(0.4, 0, 1, 1);--chakra-transition-easing-ease-out:cubic-bezier(0, 0, 0.2, 1);--chakra-transition-easing-ease-in-out:cubic-bezier(0.4, 0, 0.2, 1);--chakra-transition-duration-ultra-fast:50ms;--chakra-transition-duration-faster:100ms;--chakra-transition-duration-fast:150ms;--chakra-transition-duration-normal:200ms;--chakra-transition-duration-slow:300ms;--chakra-transition-duration-slower:400ms;--chakra-transition-duration-ultra-slow:500ms;--chakra-blur-none:0;--chakra-blur-sm:4px;--chakra-blur-base:8px;--chakra-blur-md:12px;--chakra-blur-lg:16px;--chakra-blur-xl:24px;--chakra-blur-2xl:40px;--chakra-blur-3xl:64px;}</style><style data-emotion="css-global 1syi0wy">html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:system-ui,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;touch-action:manipulation;}body{position:relative;min-height:100%;font-feature-settings:'kern';}*,*::before,*::after{border-width:0;border-style:solid;box-sizing:border-box;}main{display:block;}hr{border-top-width:1px;box-sizing:content-box;height:0;overflow:visible;}pre,code,kbd,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:1em;}a{background-color:transparent;color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit;}abbr[title]{border-bottom:none;-webkit-text-decoration:underline;text-decoration:underline;-webkit-text-decoration:underline dotted;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bold;}small{font-size:80%;}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline;}sub{bottom:-0.25em;}sup{top:-0.5em;}img{border-style:none;}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible;}button,select{text-transform:none;}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0;}fieldset{padding:0.35em 0.75em 0.625em;}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline;}textarea{overflow:auto;}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{-webkit-appearance:none!important;}input[type="number"]{-moz-appearance:textfield;}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none!important;}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block;}summary{display:-webkit-box;display:-webkit-list-item;display:-ms-list-itembox;display:list-item;}template{display:none;}[hidden]{display:none!important;}body,blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0;}button{background:transparent;padding:0;}fieldset{margin:0;padding:0;}ol,ul{margin:0;padding:0;}textarea{resize:vertical;}button,[role="button"]{cursor:pointer;}button::-moz-focus-inner{border:0!important;}table{border-collapse:collapse;}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit;}button,input,optgroup,select,textarea{padding:0;line-height:inherit;color:inherit;}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle;}img,video{max-width:100%;height:auto;}[data-js-focus-visible] :focus:not([data-focus-visible-added]){outline:none;box-shadow:none;}select::-ms-expand{display:none;}</style><style data-emotion="css-global 1baqkrf">body{font-family:var(--chakra-fonts-body);color:var(--chakra-colors-gray-800);background:var(--chakra-colors-white);transition-property:background-color;transition-duration:var(--chakra-transition-duration-normal);line-height:var(--chakra-lineHeights-base);}*::-webkit-input-placeholder{color:var(--chakra-colors-gray-400);}*::-moz-placeholder{color:var(--chakra-colors-gray-400);}*:-ms-input-placeholder{color:var(--chakra-colors-gray-400);}*::placeholder{color:var(--chakra-colors-gray-400);}*,*::before,::after{border-color:var(--chakra-colors-gray-200);word-wrap:break-word;}</style><div style="color:#000;background:#fff;font-family:-apple-system, BlinkMacSystemFont, Roboto, &quot;Segoe UI&quot;, &quot;Fira Sans&quot;, Avenir, &quot;Helvetica Neue&quot;, &quot;Lucida Grande&quot;, sans-serif;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body { margin: 0 }</style><h1 style="display:inline-block;border-right:1px solid rgba(0, 0, 0,.3);margin:0;margin-right:20px;padding:10px 23px 10px 0;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block;text-align:left;line-height:49px;height:49px;vertical-align:middle"><h2 style="font-size:14px;font-weight:normal;line-height:inherit;margin:0;padding:0">Internal Server Error<!-- -->.</h2></div></div></div><span></span></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":500}},"page":"/_error","query":{},"buildId":"Ci3EcXz8ajkhs7MVidKTf","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html> \ No newline at end of file
diff --git a/build/server/pages/_app.js b/build/server/pages/_app.js
deleted file mode 100644
index 75dc828..0000000
--- a/build/server/pages/_app.js
+++ /dev/null
@@ -1,66 +0,0 @@
-(function() {
-var exports = {};
-exports.id = 888;
-exports.ids = [888];
-exports.modules = {
-
-/***/ 476:
-/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(282);
-/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _chakra_ui_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(426);
-/* harmony import */ var _chakra_ui_react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_chakra_ui_react__WEBPACK_IMPORTED_MODULE_1__);
-
-
-function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
-
-function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
-
-function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
-
-
-
-
-function MyApp({
- Component,
- pageProps
-}) {
- return /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_chakra_ui_react__WEBPACK_IMPORTED_MODULE_1__.ChakraProvider, {
- children: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(Component, _objectSpread({}, pageProps))
- });
-}
-
-/* harmony default export */ __webpack_exports__["default"] = (MyApp);
-
-/***/ }),
-
-/***/ 426:
-/***/ (function(module) {
-
-"use strict";
-module.exports = require("@chakra-ui/react");;
-
-/***/ }),
-
-/***/ 282:
-/***/ (function(module) {
-
-"use strict";
-module.exports = require("react/jsx-runtime");;
-
-/***/ })
-
-};
-;
-
-// load runtime
-var __webpack_require__ = require("../webpack-runtime.js");
-__webpack_require__.C(exports);
-var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }
-var __webpack_exports__ = (__webpack_exec__(476));
-module.exports = __webpack_exports__;
-
-})(); \ No newline at end of file
diff --git a/build/server/pages/_document.js b/build/server/pages/_document.js
deleted file mode 100644
index f4167fc..0000000
--- a/build/server/pages/_document.js
+++ /dev/null
@@ -1,1209 +0,0 @@
-(function() {
-var exports = {};
-exports.id = 660;
-exports.ids = [660];
-exports.modules = {
-
-/***/ 154:
-/***/ (function(module) {
-
-function _extends() {
- module.exports = _extends = Object.assign || function (target) {
- for (var i = 1; i < arguments.length; i++) {
- var source = arguments[i];
-
- for (var key in source) {
- if (Object.prototype.hasOwnProperty.call(source, key)) {
- target[key] = source[key];
- }
- }
- }
-
- return target;
- };
-
- return _extends.apply(this, arguments);
-}
-
-module.exports = _extends;
-
-/***/ }),
-
-/***/ 318:
-/***/ (function(module) {
-
-function _interopRequireDefault(obj) {
- return obj && obj.__esModule ? obj : {
- "default": obj
- };
-}
-
-module.exports = _interopRequireDefault;
-
-/***/ }),
-
-/***/ 316:
-/***/ (function(module) {
-
-function _objectWithoutPropertiesLoose(source, excluded) {
- if (source == null) return {};
- var target = {};
- var sourceKeys = Object.keys(source);
- var key, i;
-
- for (i = 0; i < sourceKeys.length; i++) {
- key = sourceKeys[i];
- if (excluded.indexOf(key) >= 0) continue;
- target[key] = source[key];
- }
-
- return target;
-}
-
-module.exports = _objectWithoutPropertiesLoose;
-
-/***/ }),
-
-/***/ 792:
-/***/ (function(__unused_webpack_module, exports) {
-
-"use strict";
-
-
-exports.__esModule = true;
-exports.default = initHeadManager;
-exports.DOMAttributeNames = void 0;
-const DOMAttributeNames = {
- acceptCharset: 'accept-charset',
- className: 'class',
- htmlFor: 'for',
- httpEquiv: 'http-equiv',
- noModule: 'noModule'
-};
-exports.DOMAttributeNames = DOMAttributeNames;
-
-function reactElementToDOM({
- type,
- props
-}) {
- const el = document.createElement(type);
-
- for (const p in props) {
- if (!props.hasOwnProperty(p)) continue;
- if (p === 'children' || p === 'dangerouslySetInnerHTML') continue; // we don't render undefined props to the DOM
-
- if (props[p] === undefined) continue;
- const attr = DOMAttributeNames[p] || p.toLowerCase();
-
- if (type === 'script' && (attr === 'async' || attr === 'defer' || attr === 'noModule')) {
- ;
- el[attr] = !!props[p];
- } else {
- el.setAttribute(attr, props[p]);
- }
- }
-
- const {
- children,
- dangerouslySetInnerHTML
- } = props;
-
- if (dangerouslySetInnerHTML) {
- el.innerHTML = dangerouslySetInnerHTML.__html || '';
- } else if (children) {
- el.textContent = typeof children === 'string' ? children : Array.isArray(children) ? children.join('') : '';
- }
-
- return el;
-}
-
-function updateElements(type, components) {
- const headEl = document.getElementsByTagName('head')[0];
- const headCountEl = headEl.querySelector('meta[name=next-head-count]');
-
- if (false) {}
-
- const headCount = Number(headCountEl.content);
- const oldTags = [];
-
- for (let i = 0, j = headCountEl.previousElementSibling; i < headCount; i++, j = j.previousElementSibling) {
- if (j.tagName.toLowerCase() === type) {
- oldTags.push(j);
- }
- }
-
- const newTags = components.map(reactElementToDOM).filter(newTag => {
- for (let k = 0, len = oldTags.length; k < len; k++) {
- const oldTag = oldTags[k];
-
- if (oldTag.isEqualNode(newTag)) {
- oldTags.splice(k, 1);
- return false;
- }
- }
-
- return true;
- });
- oldTags.forEach(t => t.parentNode.removeChild(t));
- newTags.forEach(t => headEl.insertBefore(t, headCountEl));
- headCountEl.content = (headCount - oldTags.length + newTags.length).toString();
-}
-
-function initHeadManager() {
- let updatePromise = null;
- return {
- mountedInstances: new Set(),
- updateHead: head => {
- const promise = updatePromise = Promise.resolve().then(() => {
- if (promise !== updatePromise) return;
- updatePromise = null;
- const tags = {};
- head.forEach(h => {
- if ( // If the font tag is loaded only on client navigation
- // it won't be inlined. In this case revert to the original behavior
- h.type === 'link' && h.props['data-optimized-fonts'] && !document.querySelector(`style[data-href="${h.props['data-href']}"]`)) {
- h.props.href = h.props['data-href'];
- h.props['data-href'] = undefined;
- }
-
- const components = tags[h.type] || [];
- components.push(h);
- tags[h.type] = components;
- });
- const titleComponent = tags.title ? tags.title[0] : null;
- let title = '';
-
- if (titleComponent) {
- const {
- children
- } = titleComponent.props;
- title = typeof children === 'string' ? children : Array.isArray(children) ? children.join('') : '';
- }
-
- if (title !== document.title) document.title = title;
- ['meta', 'base', 'link', 'style', 'script'].forEach(type => {
- updateElements(type, tags[type] || []);
- });
- });
- }
- };
-}
-
-/***/ }),
-
-/***/ 447:
-/***/ (function(__unused_webpack_module, exports) {
-
-"use strict";
-
-
-exports.__esModule = true;
-exports.cancelIdleCallback = exports.requestIdleCallback = void 0;
-
-const requestIdleCallback = typeof self !== 'undefined' && self.requestIdleCallback || function (cb) {
- let start = Date.now();
- return setTimeout(function () {
- cb({
- didTimeout: false,
- timeRemaining: function () {
- return Math.max(0, 50 - (Date.now() - start));
- }
- });
- }, 1);
-};
-
-exports.requestIdleCallback = requestIdleCallback;
-
-const cancelIdleCallback = typeof self !== 'undefined' && self.cancelIdleCallback || function (id) {
- return clearTimeout(id);
-};
-
-exports.cancelIdleCallback = cancelIdleCallback;
-
-/***/ }),
-
-/***/ 926:
-/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var _interopRequireDefault = __webpack_require__(318);
-
-exports.__esModule = true;
-exports.initScriptLoader = initScriptLoader;
-exports.default = void 0;
-
-var _extends2 = _interopRequireDefault(__webpack_require__(154));
-
-var _objectWithoutPropertiesLoose2 = _interopRequireDefault(__webpack_require__(316));
-
-var _react = __webpack_require__(297);
-
-var _headManagerContext = __webpack_require__(816);
-
-var _headManager = __webpack_require__(792);
-
-var _requestIdleCallback = __webpack_require__(447);
-
-const ScriptCache = new Map();
-const LoadCache = new Set();
-const ignoreProps = ['onLoad', 'dangerouslySetInnerHTML', 'children', 'onError', 'strategy'];
-
-const loadScript = props => {
- const {
- src,
- id,
- onLoad = () => {},
- dangerouslySetInnerHTML,
- children = '',
- onError
- } = props;
- const cacheKey = id || src;
-
- if (ScriptCache.has(src)) {
- if (!LoadCache.has(cacheKey)) {
- LoadCache.add(cacheKey); // Execute onLoad since the script loading has begun
-
- ScriptCache.get(src).then(onLoad, onError);
- }
-
- return;
- }
-
- const el = document.createElement('script');
- const loadPromise = new Promise((resolve, reject) => {
- el.addEventListener('load', function () {
- resolve();
-
- if (onLoad) {
- onLoad.call(this);
- }
- });
- el.addEventListener('error', function () {
- reject();
-
- if (onError) {
- onError();
- }
- });
- });
-
- if (src) {
- ScriptCache.set(src, loadPromise);
- LoadCache.add(cacheKey);
- }
-
- if (dangerouslySetInnerHTML) {
- el.innerHTML = dangerouslySetInnerHTML.__html || '';
- } else if (children) {
- el.textContent = typeof children === 'string' ? children : Array.isArray(children) ? children.join('') : '';
- } else if (src) {
- el.src = src;
- }
-
- for (const [k, value] of Object.entries(props)) {
- if (value === undefined || ignoreProps.includes(k)) {
- continue;
- }
-
- const attr = _headManager.DOMAttributeNames[k] || k.toLowerCase();
- el.setAttribute(attr, value);
- }
-
- document.body.appendChild(el);
-};
-
-function handleClientScriptLoad(props) {
- const {
- strategy = 'afterInteractive'
- } = props;
-
- if (strategy === 'afterInteractive') {
- loadScript(props);
- } else if (strategy === 'lazyOnload') {
- window.addEventListener('load', () => {
- (0, _requestIdleCallback.requestIdleCallback)(() => loadScript(props));
- });
- }
-}
-
-function loadLazyScript(props) {
- if (document.readyState === 'complete') {
- (0, _requestIdleCallback.requestIdleCallback)(() => loadScript(props));
- } else {
- window.addEventListener('load', () => {
- (0, _requestIdleCallback.requestIdleCallback)(() => loadScript(props));
- });
- }
-}
-
-function initScriptLoader(scriptLoaderItems) {
- scriptLoaderItems.forEach(handleClientScriptLoad);
-}
-
-function Script(props) {
- const {
- src = '',
- onLoad = () => {},
- strategy = 'afterInteractive',
- onError
- } = props,
- restProps = (0, _objectWithoutPropertiesLoose2.default)(props, ["src", "onLoad", "dangerouslySetInnerHTML", "strategy", "onError"]); // Context is available only during SSR
-
- const {
- updateScripts,
- scripts
- } = (0, _react.useContext)(_headManagerContext.HeadManagerContext);
- (0, _react.useEffect)(() => {
- if (strategy === 'afterInteractive') {
- loadScript(props);
- } else if (strategy === 'lazyOnload') {
- loadLazyScript(props);
- }
- }, [props, strategy]);
-
- if (strategy === 'beforeInteractive') {
- if (updateScripts) {
- scripts.beforeInteractive = (scripts.beforeInteractive || []).concat([(0, _extends2.default)({
- src,
- onLoad,
- onError
- }, restProps)]);
- updateScripts(scripts);
- }
- }
-
- return null;
-}
-
-var _default = Script;
-exports.default = _default;
-
-/***/ }),
-
-/***/ 881:
-/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
-
-"use strict";
-
-
-function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
-
-function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
-
-function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
-
-function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
-
-function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
-
-exports.__esModule = true;
-exports.Html = Html;
-exports.Main = Main;
-exports.NextScript = exports.Head = exports.default = void 0;
-
-var _propTypes = _interopRequireDefault(__webpack_require__(229));
-
-var _react = _interopRequireWildcard(__webpack_require__(297));
-
-var _server = _interopRequireDefault(__webpack_require__(168));
-
-var _constants = __webpack_require__(227);
-
-var _documentContext = __webpack_require__(932);
-
-var _utils = __webpack_require__(579);
-
-exports.DocumentContext = _utils.DocumentContext;
-exports.DocumentInitialProps = _utils.DocumentInitialProps;
-exports.DocumentProps = _utils.DocumentProps;
-
-var _getPageFiles = __webpack_require__(171);
-
-var _utils2 = __webpack_require__(105);
-
-var _htmlescape = __webpack_require__(630);
-
-var _script = _interopRequireDefault(__webpack_require__(926));
-
-function _getRequireWildcardCache() {
- if (typeof WeakMap !== "function") return null;
- var cache = new WeakMap();
-
- _getRequireWildcardCache = function () {
- return cache;
- };
-
- return cache;
-}
-
-function _interopRequireWildcard(obj) {
- if (obj && obj.__esModule) {
- return obj;
- }
-
- if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
- return {
- default: obj
- };
- }
-
- var cache = _getRequireWildcardCache();
-
- if (cache && cache.has(obj)) {
- return cache.get(obj);
- }
-
- var newObj = {};
- var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
-
- for (var key in obj) {
- if (Object.prototype.hasOwnProperty.call(obj, key)) {
- var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
-
- if (desc && (desc.get || desc.set)) {
- Object.defineProperty(newObj, key, desc);
- } else {
- newObj[key] = obj[key];
- }
- }
- }
-
- newObj.default = obj;
-
- if (cache) {
- cache.set(obj, newObj);
- }
-
- return newObj;
-}
-
-function _interopRequireDefault(obj) {
- return obj && obj.__esModule ? obj : {
- default: obj
- };
-}
-
-function getDocumentFiles(buildManifest, pathname, inAmpMode) {
- const sharedFiles = (0, _getPageFiles.getPageFiles)(buildManifest, '/_app');
- const pageFiles = inAmpMode ? [] : (0, _getPageFiles.getPageFiles)(buildManifest, pathname);
- return {
- sharedFiles,
- pageFiles,
- allFiles: [...new Set([...sharedFiles, ...pageFiles])]
- };
-}
-
-function getPolyfillScripts(context, props) {
- // polyfills.js has to be rendered as nomodule without async
- // It also has to be the first script to load
- const {
- assetPrefix,
- buildManifest,
- devOnlyCacheBusterQueryString,
- disableOptimizedLoading
- } = context;
- return buildManifest.polyfillFiles.filter(polyfill => polyfill.endsWith('.js') && !polyfill.endsWith('.module.js')).map(polyfill => /*#__PURE__*/_react.default.createElement("script", {
- key: polyfill,
- defer: !disableOptimizedLoading,
- nonce: props.nonce,
- crossOrigin: props.crossOrigin || undefined,
- noModule: true,
- src: `${assetPrefix}/_next/${polyfill}${devOnlyCacheBusterQueryString}`
- }));
-}
-
-function getPreNextScripts(context, props) {
- const {
- scriptLoader,
- disableOptimizedLoading
- } = context;
- return (scriptLoader.beforeInteractive || []).map(file => {
- const {
- strategy
- } = file,
- scriptProps = _objectWithoutProperties(file, ["strategy"]);
-
- return /*#__PURE__*/_react.default.createElement("script", Object.assign({}, scriptProps, {
- defer: !disableOptimizedLoading,
- nonce: props.nonce,
- crossOrigin: props.crossOrigin || undefined
- }));
- });
-}
-
-function getDynamicChunks(context, props, files) {
- const {
- dynamicImports,
- assetPrefix,
- isDevelopment,
- devOnlyCacheBusterQueryString,
- disableOptimizedLoading
- } = context;
- return dynamicImports.map(file => {
- if (!file.endsWith('.js') || files.allFiles.includes(file)) return null;
- return /*#__PURE__*/_react.default.createElement("script", {
- async: !isDevelopment && disableOptimizedLoading,
- defer: !disableOptimizedLoading,
- key: file,
- src: `${assetPrefix}/_next/${encodeURI(file)}${devOnlyCacheBusterQueryString}`,
- nonce: props.nonce,
- crossOrigin: props.crossOrigin || undefined
- });
- });
-}
-
-function getScripts(context, props, files) {
- var _buildManifest$lowPri;
-
- const {
- assetPrefix,
- buildManifest,
- isDevelopment,
- devOnlyCacheBusterQueryString,
- disableOptimizedLoading
- } = context;
- const normalScripts = files.allFiles.filter(file => file.endsWith('.js'));
- const lowPriorityScripts = (_buildManifest$lowPri = buildManifest.lowPriorityFiles) == null ? void 0 : _buildManifest$lowPri.filter(file => file.endsWith('.js'));
- return [...normalScripts, ...lowPriorityScripts].map(file => {
- return /*#__PURE__*/_react.default.createElement("script", {
- key: file,
- src: `${assetPrefix}/_next/${encodeURI(file)}${devOnlyCacheBusterQueryString}`,
- nonce: props.nonce,
- async: !isDevelopment && disableOptimizedLoading,
- defer: !disableOptimizedLoading,
- crossOrigin: props.crossOrigin || undefined
- });
- });
-}
-/**
-* `Document` component handles the initial `document` markup and renders only on the server side.
-* Commonly used for implementing server side rendering for `css-in-js` libraries.
-*/
-
-
-class Document extends _react.Component {
- /**
- * `getInitialProps` hook returns the context object with the addition of `renderPage`.
- * `renderPage` callback executes `React` rendering logic synchronously to support server-rendering wrappers
- */
- static async getInitialProps(ctx) {
- const enhanceApp = App => {
- return props => /*#__PURE__*/_react.default.createElement(App, props);
- };
-
- const {
- html,
- head
- } = await ctx.renderPage({
- enhanceApp
- });
- const styles = [...(0, _server.default)()];
- return {
- html,
- head,
- styles
- };
- }
-
- static renderDocument(DocumentComponent, props) {
- return /*#__PURE__*/_react.default.createElement(_documentContext.DocumentContext.Provider, {
- value: props
- }, /*#__PURE__*/_react.default.createElement(DocumentComponent, props));
- }
-
- render() {
- return /*#__PURE__*/_react.default.createElement(Html, null, /*#__PURE__*/_react.default.createElement(Head, null), /*#__PURE__*/_react.default.createElement("body", null, /*#__PURE__*/_react.default.createElement(Main, null), /*#__PURE__*/_react.default.createElement(NextScript, null)));
- }
-
-}
-
-exports.default = Document;
-
-function Html(props) {
- const {
- inAmpMode,
- docComponentsRendered,
- locale
- } = (0, _react.useContext)(_documentContext.DocumentContext);
- docComponentsRendered.Html = true;
- return /*#__PURE__*/_react.default.createElement("html", Object.assign({}, props, {
- lang: props.lang || locale || undefined,
- amp: inAmpMode ? '' : undefined,
- "data-ampdevmode": inAmpMode && false ? '' : undefined
- }));
-}
-
-class Head extends _react.Component {
- constructor(...args) {
- super(...args);
- this.context = void 0;
- }
-
- getCssLinks(files) {
- const {
- assetPrefix,
- devOnlyCacheBusterQueryString,
- dynamicImports
- } = this.context;
- const cssFiles = files.allFiles.filter(f => f.endsWith('.css'));
- const sharedFiles = new Set(files.sharedFiles); // Unmanaged files are CSS files that will be handled directly by the
- // webpack runtime (`mini-css-extract-plugin`).
-
- let unmangedFiles = new Set([]);
- let dynamicCssFiles = Array.from(new Set(dynamicImports.filter(file => file.endsWith('.css'))));
-
- if (dynamicCssFiles.length) {
- const existing = new Set(cssFiles);
- dynamicCssFiles = dynamicCssFiles.filter(f => !(existing.has(f) || sharedFiles.has(f)));
- unmangedFiles = new Set(dynamicCssFiles);
- cssFiles.push(...dynamicCssFiles);
- }
-
- let cssLinkElements = [];
- cssFiles.forEach(file => {
- const isSharedFile = sharedFiles.has(file);
-
- if (true) {
- cssLinkElements.push( /*#__PURE__*/_react.default.createElement("link", {
- key: `${file}-preload`,
- nonce: this.props.nonce,
- rel: "preload",
- href: `${assetPrefix}/_next/${encodeURI(file)}${devOnlyCacheBusterQueryString}`,
- as: "style",
- crossOrigin: this.props.crossOrigin || undefined
- }));
- }
-
- const isUnmanagedFile = unmangedFiles.has(file);
- cssLinkElements.push( /*#__PURE__*/_react.default.createElement("link", {
- key: file,
- nonce: this.props.nonce,
- rel: "stylesheet",
- href: `${assetPrefix}/_next/${encodeURI(file)}${devOnlyCacheBusterQueryString}`,
- crossOrigin: this.props.crossOrigin || undefined,
- "data-n-g": isUnmanagedFile ? undefined : isSharedFile ? '' : undefined,
- "data-n-p": isUnmanagedFile ? undefined : isSharedFile ? undefined : ''
- }));
- });
-
- if (true) {
- cssLinkElements = this.makeStylesheetInert(cssLinkElements);
- }
-
- return cssLinkElements.length === 0 ? null : cssLinkElements;
- }
-
- getPreloadDynamicChunks() {
- const {
- dynamicImports,
- assetPrefix,
- devOnlyCacheBusterQueryString
- } = this.context;
- return dynamicImports.map(file => {
- if (!file.endsWith('.js')) {
- return null;
- }
-
- return /*#__PURE__*/_react.default.createElement("link", {
- rel: "preload",
- key: file,
- href: `${assetPrefix}/_next/${encodeURI(file)}${devOnlyCacheBusterQueryString}`,
- as: "script",
- nonce: this.props.nonce,
- crossOrigin: this.props.crossOrigin || undefined
- });
- }) // Filter out nulled scripts
- .filter(Boolean);
- }
-
- getPreloadMainLinks(files) {
- const {
- assetPrefix,
- devOnlyCacheBusterQueryString,
- scriptLoader
- } = this.context;
- const preloadFiles = files.allFiles.filter(file => {
- return file.endsWith('.js');
- });
- return [...(scriptLoader.beforeInteractive || []).map(file => /*#__PURE__*/_react.default.createElement("link", {
- key: file.src,
- nonce: this.props.nonce,
- rel: "preload",
- href: file.src,
- as: "script",
- crossOrigin: this.props.crossOrigin || undefined
- })), ...preloadFiles.map(file => /*#__PURE__*/_react.default.createElement("link", {
- key: file,
- nonce: this.props.nonce,
- rel: "preload",
- href: `${assetPrefix}/_next/${encodeURI(file)}${devOnlyCacheBusterQueryString}`,
- as: "script",
- crossOrigin: this.props.crossOrigin || undefined
- }))];
- }
-
- getDynamicChunks(files) {
- return getDynamicChunks(this.context, this.props, files);
- }
-
- getPreNextScripts() {
- return getPreNextScripts(this.context, this.props);
- }
-
- getScripts(files) {
- return getScripts(this.context, this.props, files);
- }
-
- getPolyfillScripts() {
- return getPolyfillScripts(this.context, this.props);
- }
-
- handleDocumentScriptLoaderItems(children) {
- const {
- scriptLoader
- } = this.context;
- const scriptLoaderItems = [];
- const filteredChildren = [];
-
- _react.default.Children.forEach(children, child => {
- if (child.type === _script.default) {
- if (child.props.strategy === 'beforeInteractive') {
- scriptLoader.beforeInteractive = (scriptLoader.beforeInteractive || []).concat([_objectSpread({}, child.props)]);
- return;
- } else if (['lazyOnload', 'afterInteractive'].includes(child.props.strategy)) {
- scriptLoaderItems.push(child.props);
- return;
- }
- }
-
- filteredChildren.push(child);
- });
-
- this.context.__NEXT_DATA__.scriptLoader = scriptLoaderItems;
- return filteredChildren;
- }
-
- makeStylesheetInert(node) {
- return _react.default.Children.map(node, c => {
- if (c.type === 'link' && c.props['href'] && _constants.OPTIMIZED_FONT_PROVIDERS.some(({
- url
- }) => c.props['href'].startsWith(url))) {
- const newProps = _objectSpread({}, c.props || {});
-
- newProps['data-href'] = newProps['href'];
- newProps['href'] = undefined;
- return /*#__PURE__*/_react.default.cloneElement(c, newProps);
- } else if (c.props && c.props['children']) {
- c.props['children'] = this.makeStylesheetInert(c.props['children']);
- }
-
- return c;
- });
- }
-
- render() {
- var _this$props$nonce, _this$props$nonce2;
-
- const {
- styles,
- ampPath,
- inAmpMode,
- hybridAmp,
- canonicalBase,
- __NEXT_DATA__,
- dangerousAsPath,
- headTags,
- unstable_runtimeJS,
- unstable_JsPreload,
- disableOptimizedLoading
- } = this.context;
- const disableRuntimeJS = unstable_runtimeJS === false;
- const disableJsPreload = unstable_JsPreload === false || !disableOptimizedLoading;
- this.context.docComponentsRendered.Head = true;
- let {
- head
- } = this.context;
- let cssPreloads = [];
- let otherHeadElements = [];
-
- if (head) {
- head.forEach(c => {
- if (c && c.type === 'link' && c.props['rel'] === 'preload' && c.props['as'] === 'style') {
- cssPreloads.push(c);
- } else {
- c && otherHeadElements.push(c);
- }
- });
- head = cssPreloads.concat(otherHeadElements);
- }
-
- let children = _react.default.Children.toArray(this.props.children).filter(Boolean); // show a warning if Head contains <title> (only in development)
-
-
- if (false) {}
-
- if ( true && !inAmpMode) {
- children = this.makeStylesheetInert(children);
- }
-
- children = this.handleDocumentScriptLoaderItems(children);
- let hasAmphtmlRel = false;
- let hasCanonicalRel = false; // show warning and remove conflicting amp head tags
-
- head = _react.default.Children.map(head || [], child => {
- if (!child) return child;
- const {
- type,
- props
- } = child;
-
- if (inAmpMode) {
- let badProp = '';
-
- if (type === 'meta' && props.name === 'viewport') {
- badProp = 'name="viewport"';
- } else if (type === 'link' && props.rel === 'canonical') {
- hasCanonicalRel = true;
- } else if (type === 'script') {
- // only block if
- // 1. it has a src and isn't pointing to ampproject's CDN
- // 2. it is using dangerouslySetInnerHTML without a type or
- // a type of text/javascript
- if (props.src && props.src.indexOf('ampproject') < -1 || props.dangerouslySetInnerHTML && (!props.type || props.type === 'text/javascript')) {
- badProp = '<script';
- Object.keys(props).forEach(prop => {
- badProp += ` ${prop}="${props[prop]}"`;
- });
- badProp += '/>';
- }
- }
-
- if (badProp) {
- console.warn(`Found conflicting amp tag "${child.type}" with conflicting prop ${badProp} in ${__NEXT_DATA__.page}. https://nextjs.org/docs/messages/conflicting-amp-tag`);
- return null;
- }
- } else {
- // non-amp mode
- if (type === 'link' && props.rel === 'amphtml') {
- hasAmphtmlRel = true;
- }
- }
-
- return child;
- }); // try to parse styles from fragment for backwards compat
-
- const curStyles = Array.isArray(styles) ? styles : [];
-
- if (inAmpMode && styles && // @ts-ignore Property 'props' does not exist on type ReactElement
- styles.props && // @ts-ignore Property 'props' does not exist on type ReactElement
- Array.isArray(styles.props.children)) {
- const hasStyles = el => {
- var _el$props, _el$props$dangerously;
-
- return el == null ? void 0 : (_el$props = el.props) == null ? void 0 : (_el$props$dangerously = _el$props.dangerouslySetInnerHTML) == null ? void 0 : _el$props$dangerously.__html;
- }; // @ts-ignore Property 'props' does not exist on type ReactElement
-
-
- styles.props.children.forEach(child => {
- if (Array.isArray(child)) {
- child.forEach(el => hasStyles(el) && curStyles.push(el));
- } else if (hasStyles(child)) {
- curStyles.push(child);
- }
- });
- }
-
- const files = getDocumentFiles(this.context.buildManifest, this.context.__NEXT_DATA__.page, inAmpMode);
- return /*#__PURE__*/_react.default.createElement("head", this.props, this.context.isDevelopment && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("style", {
- "data-next-hide-fouc": true,
- "data-ampdevmode": inAmpMode ? 'true' : undefined,
- dangerouslySetInnerHTML: {
- __html: `body{display:none}`
- }
- }), /*#__PURE__*/_react.default.createElement("noscript", {
- "data-next-hide-fouc": true,
- "data-ampdevmode": inAmpMode ? 'true' : undefined
- }, /*#__PURE__*/_react.default.createElement("style", {
- dangerouslySetInnerHTML: {
- __html: `body{display:block}`
- }
- }))), children, true && /*#__PURE__*/_react.default.createElement("meta", {
- name: "next-font-preconnect"
- }), head, /*#__PURE__*/_react.default.createElement("meta", {
- name: "next-head-count",
- content: _react.default.Children.count(head || []).toString()
- }), inAmpMode && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("meta", {
- name: "viewport",
- content: "width=device-width,minimum-scale=1,initial-scale=1"
- }), !hasCanonicalRel && /*#__PURE__*/_react.default.createElement("link", {
- rel: "canonical",
- href: canonicalBase + (0, _utils2.cleanAmpPath)(dangerousAsPath)
- }), /*#__PURE__*/_react.default.createElement("link", {
- rel: "preload",
- as: "script",
- href: "https://cdn.ampproject.org/v0.js"
- }), styles && /*#__PURE__*/_react.default.createElement("style", {
- "amp-custom": "",
- dangerouslySetInnerHTML: {
- __html: curStyles.map(style => style.props.dangerouslySetInnerHTML.__html).join('').replace(/\/\*# sourceMappingURL=.*\*\//g, '').replace(/\/\*@ sourceURL=.*?\*\//g, '')
- }
- }), /*#__PURE__*/_react.default.createElement("style", {
- "amp-boilerplate": "",
- dangerouslySetInnerHTML: {
- __html: `body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s steps(1,end) 0s 1 normal both}@-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}`
- }
- }), /*#__PURE__*/_react.default.createElement("noscript", null, /*#__PURE__*/_react.default.createElement("style", {
- "amp-boilerplate": "",
- dangerouslySetInnerHTML: {
- __html: `body{-webkit-animation:none;-moz-animation:none;-ms-animation:none;animation:none}`
- }
- })), /*#__PURE__*/_react.default.createElement("script", {
- async: true,
- src: "https://cdn.ampproject.org/v0.js"
- })), !inAmpMode && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, !hasAmphtmlRel && hybridAmp && /*#__PURE__*/_react.default.createElement("link", {
- rel: "amphtml",
- href: canonicalBase + getAmpPath(ampPath, dangerousAsPath)
- }), true && this.getCssLinks(files), true && /*#__PURE__*/_react.default.createElement("noscript", {
- "data-n-css": (_this$props$nonce = this.props.nonce) != null ? _this$props$nonce : ''
- }), false && /*#__PURE__*/0, !disableRuntimeJS && !disableJsPreload && this.getPreloadDynamicChunks(), !disableRuntimeJS && !disableJsPreload && this.getPreloadMainLinks(files), !disableOptimizedLoading && !disableRuntimeJS && this.getPolyfillScripts(), !disableOptimizedLoading && !disableRuntimeJS && this.getPreNextScripts(), !disableOptimizedLoading && !disableRuntimeJS && this.getDynamicChunks(files), !disableOptimizedLoading && !disableRuntimeJS && this.getScripts(files), false && 0, false && /*#__PURE__*/0, this.context.isDevelopment &&
- /*#__PURE__*/
- // this element is used to mount development styles so the
- // ordering matches production
- // (by default, style-loader injects at the bottom of <head />)
- _react.default.createElement("noscript", {
- id: "__next_css__DO_NOT_USE__"
- }), styles || null), /*#__PURE__*/_react.default.createElement(_react.default.Fragment, {}, ...(headTags || [])));
- }
-
-}
-
-exports.Head = Head;
-Head.contextType = _documentContext.DocumentContext;
-Head.propTypes = {
- nonce: _propTypes.default.string,
- crossOrigin: _propTypes.default.string
-};
-
-function Main() {
- const {
- inAmpMode,
- html,
- docComponentsRendered
- } = (0, _react.useContext)(_documentContext.DocumentContext);
- docComponentsRendered.Main = true;
- if (inAmpMode) return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, _constants.AMP_RENDER_TARGET);
- return /*#__PURE__*/_react.default.createElement("div", {
- id: "__next",
- dangerouslySetInnerHTML: {
- __html: html
- }
- });
-}
-
-class NextScript extends _react.Component {
- constructor(...args) {
- super(...args);
- this.context = void 0;
- }
-
- getDynamicChunks(files) {
- return getDynamicChunks(this.context, this.props, files);
- }
-
- getPreNextScripts() {
- return getPreNextScripts(this.context, this.props);
- }
-
- getScripts(files) {
- return getScripts(this.context, this.props, files);
- }
-
- getPolyfillScripts() {
- return getPolyfillScripts(this.context, this.props);
- }
-
- static getInlineScriptSource(documentProps) {
- const {
- __NEXT_DATA__
- } = documentProps;
-
- try {
- const data = JSON.stringify(__NEXT_DATA__);
- return (0, _htmlescape.htmlEscapeJsonString)(data);
- } catch (err) {
- if (err.message.indexOf('circular structure')) {
- throw new Error(`Circular structure in "getInitialProps" result of page "${__NEXT_DATA__.page}". https://nextjs.org/docs/messages/circular-structure`);
- }
-
- throw err;
- }
- }
-
- render() {
- const {
- assetPrefix,
- inAmpMode,
- buildManifest,
- unstable_runtimeJS,
- docComponentsRendered,
- devOnlyCacheBusterQueryString,
- disableOptimizedLoading
- } = this.context;
- const disableRuntimeJS = unstable_runtimeJS === false;
- docComponentsRendered.NextScript = true;
-
- if (inAmpMode) {
- if (true) {
- return null;
- }
-
- const ampDevFiles = [...buildManifest.devFiles, ...buildManifest.polyfillFiles, ...buildManifest.ampDevFiles];
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, disableRuntimeJS ? null : /*#__PURE__*/_react.default.createElement("script", {
- id: "__NEXT_DATA__",
- type: "application/json",
- nonce: this.props.nonce,
- crossOrigin: this.props.crossOrigin || undefined,
- dangerouslySetInnerHTML: {
- __html: NextScript.getInlineScriptSource(this.context)
- },
- "data-ampdevmode": true
- }), ampDevFiles.map(file => /*#__PURE__*/_react.default.createElement("script", {
- key: file,
- src: `${assetPrefix}/_next/${file}${devOnlyCacheBusterQueryString}`,
- nonce: this.props.nonce,
- crossOrigin: this.props.crossOrigin || undefined,
- "data-ampdevmode": true
- })));
- }
-
- if (false) {}
-
- const files = getDocumentFiles(this.context.buildManifest, this.context.__NEXT_DATA__.page, inAmpMode);
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, !disableRuntimeJS && buildManifest.devFiles ? buildManifest.devFiles.map(file => /*#__PURE__*/_react.default.createElement("script", {
- key: file,
- src: `${assetPrefix}/_next/${encodeURI(file)}${devOnlyCacheBusterQueryString}`,
- nonce: this.props.nonce,
- crossOrigin: this.props.crossOrigin || undefined
- })) : null, disableRuntimeJS ? null : /*#__PURE__*/_react.default.createElement("script", {
- id: "__NEXT_DATA__",
- type: "application/json",
- nonce: this.props.nonce,
- crossOrigin: this.props.crossOrigin || undefined,
- dangerouslySetInnerHTML: {
- __html: NextScript.getInlineScriptSource(this.context)
- }
- }), disableOptimizedLoading && !disableRuntimeJS && this.getPolyfillScripts(), disableOptimizedLoading && !disableRuntimeJS && this.getPreNextScripts(), disableOptimizedLoading && !disableRuntimeJS && this.getDynamicChunks(files), disableOptimizedLoading && !disableRuntimeJS && this.getScripts(files));
- }
-
-}
-
-exports.NextScript = NextScript;
-NextScript.contextType = _documentContext.DocumentContext;
-NextScript.propTypes = {
- nonce: _propTypes.default.string,
- crossOrigin: _propTypes.default.string
-};
-NextScript.safariNomoduleFix = '!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();';
-
-function getAmpPath(ampPath, asPath) {
- return ampPath || `${asPath}${asPath.includes('?') ? '&' : '?'}amp=1`;
-}
-
-/***/ }),
-
-/***/ 630:
-/***/ (function(__unused_webpack_module, exports) {
-
-"use strict";
-exports.__esModule=true;exports.htmlEscapeJsonString=htmlEscapeJsonString;// This utility is based on https://github.com/zertosh/htmlescape
-// License: https://github.com/zertosh/htmlescape/blob/0527ca7156a524d256101bb310a9f970f63078ad/LICENSE
-const ESCAPE_LOOKUP={'&':'\\u0026','>':'\\u003e','<':'\\u003c','\u2028':'\\u2028','\u2029':'\\u2029'};const ESCAPE_REGEX=/[&><\u2028\u2029]/g;function htmlEscapeJsonString(str){return str.replace(ESCAPE_REGEX,match=>ESCAPE_LOOKUP[match]);}
-//# sourceMappingURL=htmlescape.js.map
-
-/***/ }),
-
-/***/ 227:
-/***/ (function(module) {
-
-"use strict";
-module.exports = require("next/dist/next-server/lib/constants.js");;
-
-/***/ }),
-
-/***/ 932:
-/***/ (function(module) {
-
-"use strict";
-module.exports = require("next/dist/next-server/lib/document-context.js");;
-
-/***/ }),
-
-/***/ 816:
-/***/ (function(module) {
-
-"use strict";
-module.exports = require("next/dist/next-server/lib/head-manager-context.js");;
-
-/***/ }),
-
-/***/ 579:
-/***/ (function(module) {
-
-"use strict";
-module.exports = require("next/dist/next-server/lib/utils.js");;
-
-/***/ }),
-
-/***/ 171:
-/***/ (function(module) {
-
-"use strict";
-module.exports = require("next/dist/next-server/server/get-page-files.js");;
-
-/***/ }),
-
-/***/ 105:
-/***/ (function(module) {
-
-"use strict";
-module.exports = require("next/dist/next-server/server/utils.js");;
-
-/***/ }),
-
-/***/ 229:
-/***/ (function(module) {
-
-"use strict";
-module.exports = require("prop-types");;
-
-/***/ }),
-
-/***/ 297:
-/***/ (function(module) {
-
-"use strict";
-module.exports = require("react");;
-
-/***/ }),
-
-/***/ 168:
-/***/ (function(module) {
-
-"use strict";
-module.exports = require("styled-jsx/server");;
-
-/***/ })
-
-};
-;
-
-// load runtime
-var __webpack_require__ = require("../webpack-runtime.js");
-__webpack_require__.C(exports);
-var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }
-var __webpack_exports__ = (__webpack_exec__(881));
-module.exports = __webpack_exports__;
-
-})(); \ No newline at end of file
diff --git a/build/server/pages/_error.js b/build/server/pages/_error.js
deleted file mode 100644
index d9c78d4..0000000
--- a/build/server/pages/_error.js
+++ /dev/null
@@ -1,151 +0,0 @@
-(function() {
-var exports = {};
-exports.id = 820;
-exports.ids = [820];
-exports.modules = {
-
-/***/ 318:
-/***/ (function(module) {
-
-function _interopRequireDefault(obj) {
- return obj && obj.__esModule ? obj : {
- "default": obj
- };
-}
-
-module.exports = _interopRequireDefault;
-
-/***/ }),
-
-/***/ 359:
-/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var _interopRequireDefault = __webpack_require__(318);
-
-exports.__esModule = true;
-exports.default = void 0;
-
-var _react = _interopRequireDefault(__webpack_require__(297));
-
-var _head = _interopRequireDefault(__webpack_require__(273));
-
-const statusCodes = {
- 400: 'Bad Request',
- 404: 'This page could not be found',
- 405: 'Method Not Allowed',
- 500: 'Internal Server Error'
-};
-
-function _getInitialProps({
- res,
- err
-}) {
- const statusCode = res && res.statusCode ? res.statusCode : err ? err.statusCode : 404;
- return {
- statusCode
- };
-}
-/**
-* `Error` component used for handling errors.
-*/
-
-
-class Error extends _react.default.Component {
- render() {
- const {
- statusCode
- } = this.props;
- const title = this.props.title || statusCodes[statusCode] || 'An unexpected error has occurred';
- return /*#__PURE__*/_react.default.createElement("div", {
- style: styles.error
- }, /*#__PURE__*/_react.default.createElement(_head.default, null, /*#__PURE__*/_react.default.createElement("title", null, statusCode ? `${statusCode}: ${title}` : 'Application error: a client-side exception has occurred')), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("style", {
- dangerouslySetInnerHTML: {
- __html: 'body { margin: 0 }'
- }
- }), statusCode ? /*#__PURE__*/_react.default.createElement("h1", {
- style: styles.h1
- }, statusCode) : null, /*#__PURE__*/_react.default.createElement("div", {
- style: styles.desc
- }, /*#__PURE__*/_react.default.createElement("h2", {
- style: styles.h2
- }, this.props.title || statusCode ? title : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, "Application error: a client-side exception has occurred (", /*#__PURE__*/_react.default.createElement("a", {
- href: "https://nextjs.org/docs/messages/client-side-exception-occurred"
- }, "developer guidance"), ")"), "."))));
- }
-
-}
-
-exports.default = Error;
-Error.displayName = 'ErrorPage';
-Error.getInitialProps = _getInitialProps;
-Error.origGetInitialProps = _getInitialProps;
-const styles = {
- error: {
- color: '#000',
- background: '#fff',
- fontFamily: '-apple-system, BlinkMacSystemFont, Roboto, "Segoe UI", "Fira Sans", Avenir, "Helvetica Neue", "Lucida Grande", sans-serif',
- height: '100vh',
- textAlign: 'center',
- display: 'flex',
- flexDirection: 'column',
- alignItems: 'center',
- justifyContent: 'center'
- },
- desc: {
- display: 'inline-block',
- textAlign: 'left',
- lineHeight: '49px',
- height: '49px',
- verticalAlign: 'middle'
- },
- h1: {
- display: 'inline-block',
- borderRight: '1px solid rgba(0, 0, 0,.3)',
- margin: 0,
- marginRight: '20px',
- padding: '10px 23px 10px 0',
- fontSize: '24px',
- fontWeight: 500,
- verticalAlign: 'top'
- },
- h2: {
- fontSize: '14px',
- fontWeight: 'normal',
- lineHeight: 'inherit',
- margin: 0,
- padding: 0
- }
-};
-
-/***/ }),
-
-/***/ 273:
-/***/ (function(module) {
-
-"use strict";
-module.exports = require("next/dist/next-server/lib/head.js");;
-
-/***/ }),
-
-/***/ 297:
-/***/ (function(module) {
-
-"use strict";
-module.exports = require("react");;
-
-/***/ })
-
-};
-;
-
-// load runtime
-var __webpack_require__ = require("../webpack-runtime.js");
-__webpack_require__.C(exports);
-var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }
-var __webpack_exports__ = (__webpack_exec__(359));
-module.exports = __webpack_exports__;
-
-})(); \ No newline at end of file
diff --git a/build/server/pages/index.html b/build/server/pages/index.html
deleted file mode 100644
index c733d59..0000000
--- a/build/server/pages/index.html
+++ /dev/null
@@ -1 +0,0 @@
-<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/_next/static/css/120f2e2270820d49a21f.css" as="style"/><link rel="stylesheet" href="/_next/static/css/120f2e2270820d49a21f.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-a54b4f32bdc1ef890ddd.js"></script><script src="/_next/static/chunks/webpack-f6b94a473b4a21f6bdce.js" defer=""></script><script src="/_next/static/chunks/framework-0441fae7fd130f37dee1.js" defer=""></script><script src="/_next/static/chunks/main-a3a79aff3ff232b41814.js" defer=""></script><script src="/_next/static/chunks/pages/_app-5bb503dca4dae114eb0c.js" defer=""></script><script src="/_next/static/chunks/fb7d5399-a8c606efbc9e7c0edf90.js" defer=""></script><script src="/_next/static/chunks/d25bd147-65fcc4c92edba8b370fb.js" defer=""></script><script src="/_next/static/chunks/283-1d245e6e2271fd76c328.js" defer=""></script><script src="/_next/static/chunks/pages/index-b7e9a3c26de1eb7c41cc.js" defer=""></script><script src="/_next/static/Ci3EcXz8ajkhs7MVidKTf/_buildManifest.js" defer=""></script><script src="/_next/static/Ci3EcXz8ajkhs7MVidKTf/_ssgManifest.js" defer=""></script></head><body><div id="__next"><style data-emotion="css-global o7558t">:host,:root{--chakra-ring-inset:var(--chakra-empty,/*!*/ /*!*/);--chakra-ring-offset-width:0px;--chakra-ring-offset-color:#fff;--chakra-ring-color:rgba(66, 153, 225, 0.6);--chakra-ring-offset-shadow:0 0 #0000;--chakra-ring-shadow:0 0 #0000;--chakra-space-x-reverse:0;--chakra-space-y-reverse:0;--chakra-colors-transparent:transparent;--chakra-colors-current:currentColor;--chakra-colors-black:#000000;--chakra-colors-white:#FFFFFF;--chakra-colors-whiteAlpha-50:rgba(255, 255, 255, 0.04);--chakra-colors-whiteAlpha-100:rgba(255, 255, 255, 0.06);--chakra-colors-whiteAlpha-200:rgba(255, 255, 255, 0.08);--chakra-colors-whiteAlpha-300:rgba(255, 255, 255, 0.16);--chakra-colors-whiteAlpha-400:rgba(255, 255, 255, 0.24);--chakra-colors-whiteAlpha-500:rgba(255, 255, 255, 0.36);--chakra-colors-whiteAlpha-600:rgba(255, 255, 255, 0.48);--chakra-colors-whiteAlpha-700:rgba(255, 255, 255, 0.64);--chakra-colors-whiteAlpha-800:rgba(255, 255, 255, 0.80);--chakra-colors-whiteAlpha-900:rgba(255, 255, 255, 0.92);--chakra-colors-blackAlpha-50:rgba(0, 0, 0, 0.04);--chakra-colors-blackAlpha-100:rgba(0, 0, 0, 0.06);--chakra-colors-blackAlpha-200:rgba(0, 0, 0, 0.08);--chakra-colors-blackAlpha-300:rgba(0, 0, 0, 0.16);--chakra-colors-blackAlpha-400:rgba(0, 0, 0, 0.24);--chakra-colors-blackAlpha-500:rgba(0, 0, 0, 0.36);--chakra-colors-blackAlpha-600:rgba(0, 0, 0, 0.48);--chakra-colors-blackAlpha-700:rgba(0, 0, 0, 0.64);--chakra-colors-blackAlpha-800:rgba(0, 0, 0, 0.80);--chakra-colors-blackAlpha-900:rgba(0, 0, 0, 0.92);--chakra-colors-gray-50:#F7FAFC;--chakra-colors-gray-100:#EDF2F7;--chakra-colors-gray-200:#E2E8F0;--chakra-colors-gray-300:#CBD5E0;--chakra-colors-gray-400:#A0AEC0;--chakra-colors-gray-500:#718096;--chakra-colors-gray-600:#4A5568;--chakra-colors-gray-700:#2D3748;--chakra-colors-gray-800:#1A202C;--chakra-colors-gray-900:#171923;--chakra-colors-red-50:#FFF5F5;--chakra-colors-red-100:#FED7D7;--chakra-colors-red-200:#FEB2B2;--chakra-colors-red-300:#FC8181;--chakra-colors-red-400:#F56565;--chakra-colors-red-500:#E53E3E;--chakra-colors-red-600:#C53030;--chakra-colors-red-700:#9B2C2C;--chakra-colors-red-800:#822727;--chakra-colors-red-900:#63171B;--chakra-colors-orange-50:#FFFAF0;--chakra-colors-orange-100:#FEEBC8;--chakra-colors-orange-200:#FBD38D;--chakra-colors-orange-300:#F6AD55;--chakra-colors-orange-400:#ED8936;--chakra-colors-orange-500:#DD6B20;--chakra-colors-orange-600:#C05621;--chakra-colors-orange-700:#9C4221;--chakra-colors-orange-800:#7B341E;--chakra-colors-orange-900:#652B19;--chakra-colors-yellow-50:#FFFFF0;--chakra-colors-yellow-100:#FEFCBF;--chakra-colors-yellow-200:#FAF089;--chakra-colors-yellow-300:#F6E05E;--chakra-colors-yellow-400:#ECC94B;--chakra-colors-yellow-500:#D69E2E;--chakra-colors-yellow-600:#B7791F;--chakra-colors-yellow-700:#975A16;--chakra-colors-yellow-800:#744210;--chakra-colors-yellow-900:#5F370E;--chakra-colors-green-50:#F0FFF4;--chakra-colors-green-100:#C6F6D5;--chakra-colors-green-200:#9AE6B4;--chakra-colors-green-300:#68D391;--chakra-colors-green-400:#48BB78;--chakra-colors-green-500:#38A169;--chakra-colors-green-600:#2F855A;--chakra-colors-green-700:#276749;--chakra-colors-green-800:#22543D;--chakra-colors-green-900:#1C4532;--chakra-colors-teal-50:#E6FFFA;--chakra-colors-teal-100:#B2F5EA;--chakra-colors-teal-200:#81E6D9;--chakra-colors-teal-300:#4FD1C5;--chakra-colors-teal-400:#38B2AC;--chakra-colors-teal-500:#319795;--chakra-colors-teal-600:#2C7A7B;--chakra-colors-teal-700:#285E61;--chakra-colors-teal-800:#234E52;--chakra-colors-teal-900:#1D4044;--chakra-colors-blue-50:#ebf8ff;--chakra-colors-blue-100:#bee3f8;--chakra-colors-blue-200:#90cdf4;--chakra-colors-blue-300:#63b3ed;--chakra-colors-blue-400:#4299e1;--chakra-colors-blue-500:#3182ce;--chakra-colors-blue-600:#2b6cb0;--chakra-colors-blue-700:#2c5282;--chakra-colors-blue-800:#2a4365;--chakra-colors-blue-900:#1A365D;--chakra-colors-cyan-50:#EDFDFD;--chakra-colors-cyan-100:#C4F1F9;--chakra-colors-cyan-200:#9DECF9;--chakra-colors-cyan-300:#76E4F7;--chakra-colors-cyan-400:#0BC5EA;--chakra-colors-cyan-500:#00B5D8;--chakra-colors-cyan-600:#00A3C4;--chakra-colors-cyan-700:#0987A0;--chakra-colors-cyan-800:#086F83;--chakra-colors-cyan-900:#065666;--chakra-colors-purple-50:#FAF5FF;--chakra-colors-purple-100:#E9D8FD;--chakra-colors-purple-200:#D6BCFA;--chakra-colors-purple-300:#B794F4;--chakra-colors-purple-400:#9F7AEA;--chakra-colors-purple-500:#805AD5;--chakra-colors-purple-600:#6B46C1;--chakra-colors-purple-700:#553C9A;--chakra-colors-purple-800:#44337A;--chakra-colors-purple-900:#322659;--chakra-colors-pink-50:#FFF5F7;--chakra-colors-pink-100:#FED7E2;--chakra-colors-pink-200:#FBB6CE;--chakra-colors-pink-300:#F687B3;--chakra-colors-pink-400:#ED64A6;--chakra-colors-pink-500:#D53F8C;--chakra-colors-pink-600:#B83280;--chakra-colors-pink-700:#97266D;--chakra-colors-pink-800:#702459;--chakra-colors-pink-900:#521B41;--chakra-colors-linkedin-50:#E8F4F9;--chakra-colors-linkedin-100:#CFEDFB;--chakra-colors-linkedin-200:#9BDAF3;--chakra-colors-linkedin-300:#68C7EC;--chakra-colors-linkedin-400:#34B3E4;--chakra-colors-linkedin-500:#00A0DC;--chakra-colors-linkedin-600:#008CC9;--chakra-colors-linkedin-700:#0077B5;--chakra-colors-linkedin-800:#005E93;--chakra-colors-linkedin-900:#004471;--chakra-colors-facebook-50:#E8F4F9;--chakra-colors-facebook-100:#D9DEE9;--chakra-colors-facebook-200:#B7C2DA;--chakra-colors-facebook-300:#6482C0;--chakra-colors-facebook-400:#4267B2;--chakra-colors-facebook-500:#385898;--chakra-colors-facebook-600:#314E89;--chakra-colors-facebook-700:#29487D;--chakra-colors-facebook-800:#223B67;--chakra-colors-facebook-900:#1E355B;--chakra-colors-messenger-50:#D0E6FF;--chakra-colors-messenger-100:#B9DAFF;--chakra-colors-messenger-200:#A2CDFF;--chakra-colors-messenger-300:#7AB8FF;--chakra-colors-messenger-400:#2E90FF;--chakra-colors-messenger-500:#0078FF;--chakra-colors-messenger-600:#0063D1;--chakra-colors-messenger-700:#0052AC;--chakra-colors-messenger-800:#003C7E;--chakra-colors-messenger-900:#002C5C;--chakra-colors-whatsapp-50:#dffeec;--chakra-colors-whatsapp-100:#b9f5d0;--chakra-colors-whatsapp-200:#90edb3;--chakra-colors-whatsapp-300:#65e495;--chakra-colors-whatsapp-400:#3cdd78;--chakra-colors-whatsapp-500:#22c35e;--chakra-colors-whatsapp-600:#179848;--chakra-colors-whatsapp-700:#0c6c33;--chakra-colors-whatsapp-800:#01421c;--chakra-colors-whatsapp-900:#001803;--chakra-colors-twitter-50:#E5F4FD;--chakra-colors-twitter-100:#C8E9FB;--chakra-colors-twitter-200:#A8DCFA;--chakra-colors-twitter-300:#83CDF7;--chakra-colors-twitter-400:#57BBF5;--chakra-colors-twitter-500:#1DA1F2;--chakra-colors-twitter-600:#1A94DA;--chakra-colors-twitter-700:#1681BF;--chakra-colors-twitter-800:#136B9E;--chakra-colors-twitter-900:#0D4D71;--chakra-colors-telegram-50:#E3F2F9;--chakra-colors-telegram-100:#C5E4F3;--chakra-colors-telegram-200:#A2D4EC;--chakra-colors-telegram-300:#7AC1E4;--chakra-colors-telegram-400:#47A9DA;--chakra-colors-telegram-500:#0088CC;--chakra-colors-telegram-600:#007AB8;--chakra-colors-telegram-700:#006BA1;--chakra-colors-telegram-800:#005885;--chakra-colors-telegram-900:#003F5E;--chakra-borders-none:0;--chakra-borders-1px:1px solid;--chakra-borders-2px:2px solid;--chakra-borders-4px:4px solid;--chakra-borders-8px:8px solid;--chakra-fonts-heading:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--chakra-fonts-body:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--chakra-fonts-mono:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--chakra-fontSizes-xs:0.75rem;--chakra-fontSizes-sm:0.875rem;--chakra-fontSizes-md:1rem;--chakra-fontSizes-lg:1.125rem;--chakra-fontSizes-xl:1.25rem;--chakra-fontSizes-2xl:1.5rem;--chakra-fontSizes-3xl:1.875rem;--chakra-fontSizes-4xl:2.25rem;--chakra-fontSizes-5xl:3rem;--chakra-fontSizes-6xl:3.75rem;--chakra-fontSizes-7xl:4.5rem;--chakra-fontSizes-8xl:6rem;--chakra-fontSizes-9xl:8rem;--chakra-fontWeights-hairline:100;--chakra-fontWeights-thin:200;--chakra-fontWeights-light:300;--chakra-fontWeights-normal:400;--chakra-fontWeights-medium:500;--chakra-fontWeights-semibold:600;--chakra-fontWeights-bold:700;--chakra-fontWeights-extrabold:800;--chakra-fontWeights-black:900;--chakra-letterSpacings-tighter:-0.05em;--chakra-letterSpacings-tight:-0.025em;--chakra-letterSpacings-normal:0;--chakra-letterSpacings-wide:0.025em;--chakra-letterSpacings-wider:0.05em;--chakra-letterSpacings-widest:0.1em;--chakra-lineHeights-3:.75rem;--chakra-lineHeights-4:1rem;--chakra-lineHeights-5:1.25rem;--chakra-lineHeights-6:1.5rem;--chakra-lineHeights-7:1.75rem;--chakra-lineHeights-8:2rem;--chakra-lineHeights-9:2.25rem;--chakra-lineHeights-10:2.5rem;--chakra-lineHeights-normal:normal;--chakra-lineHeights-none:1;--chakra-lineHeights-shorter:1.25;--chakra-lineHeights-short:1.375;--chakra-lineHeights-base:1.5;--chakra-lineHeights-tall:1.625;--chakra-lineHeights-taller:2;--chakra-radii-none:0;--chakra-radii-sm:0.125rem;--chakra-radii-base:0.25rem;--chakra-radii-md:0.375rem;--chakra-radii-lg:0.5rem;--chakra-radii-xl:0.75rem;--chakra-radii-2xl:1rem;--chakra-radii-3xl:1.5rem;--chakra-radii-full:9999px;--chakra-space-1:0.25rem;--chakra-space-2:0.5rem;--chakra-space-3:0.75rem;--chakra-space-4:1rem;--chakra-space-5:1.25rem;--chakra-space-6:1.5rem;--chakra-space-7:1.75rem;--chakra-space-8:2rem;--chakra-space-9:2.25rem;--chakra-space-10:2.5rem;--chakra-space-12:3rem;--chakra-space-14:3.5rem;--chakra-space-16:4rem;--chakra-space-20:5rem;--chakra-space-24:6rem;--chakra-space-28:7rem;--chakra-space-32:8rem;--chakra-space-36:9rem;--chakra-space-40:10rem;--chakra-space-44:11rem;--chakra-space-48:12rem;--chakra-space-52:13rem;--chakra-space-56:14rem;--chakra-space-60:15rem;--chakra-space-64:16rem;--chakra-space-72:18rem;--chakra-space-80:20rem;--chakra-space-96:24rem;--chakra-space-px:1px;--chakra-space-0\.5:0.125rem;--chakra-space-1\.5:0.375rem;--chakra-space-2\.5:0.625rem;--chakra-space-3\.5:0.875rem;--chakra-shadows-xs:0 0 0 1px rgba(0, 0, 0, 0.05);--chakra-shadows-sm:0 1px 2px 0 rgba(0, 0, 0, 0.05);--chakra-shadows-base:0 1px 3px 0 rgba(0, 0, 0, 0.1),0 1px 2px 0 rgba(0, 0, 0, 0.06);--chakra-shadows-md:0 4px 6px -1px rgba(0, 0, 0, 0.1),0 2px 4px -1px rgba(0, 0, 0, 0.06);--chakra-shadows-lg:0 10px 15px -3px rgba(0, 0, 0, 0.1),0 4px 6px -2px rgba(0, 0, 0, 0.05);--chakra-shadows-xl:0 20px 25px -5px rgba(0, 0, 0, 0.1),0 10px 10px -5px rgba(0, 0, 0, 0.04);--chakra-shadows-2xl:0 25px 50px -12px rgba(0, 0, 0, 0.25);--chakra-shadows-outline:0 0 0 3px rgba(66, 153, 225, 0.6);--chakra-shadows-inner:inset 0 2px 4px 0 rgba(0,0,0,0.06);--chakra-shadows-none:none;--chakra-shadows-dark-lg:rgba(0, 0, 0, 0.1) 0px 0px 0px 1px,rgba(0, 0, 0, 0.2) 0px 5px 10px,rgba(0, 0, 0, 0.4) 0px 15px 40px;--chakra-sizes-1:0.25rem;--chakra-sizes-2:0.5rem;--chakra-sizes-3:0.75rem;--chakra-sizes-4:1rem;--chakra-sizes-5:1.25rem;--chakra-sizes-6:1.5rem;--chakra-sizes-7:1.75rem;--chakra-sizes-8:2rem;--chakra-sizes-9:2.25rem;--chakra-sizes-10:2.5rem;--chakra-sizes-12:3rem;--chakra-sizes-14:3.5rem;--chakra-sizes-16:4rem;--chakra-sizes-20:5rem;--chakra-sizes-24:6rem;--chakra-sizes-28:7rem;--chakra-sizes-32:8rem;--chakra-sizes-36:9rem;--chakra-sizes-40:10rem;--chakra-sizes-44:11rem;--chakra-sizes-48:12rem;--chakra-sizes-52:13rem;--chakra-sizes-56:14rem;--chakra-sizes-60:15rem;--chakra-sizes-64:16rem;--chakra-sizes-72:18rem;--chakra-sizes-80:20rem;--chakra-sizes-96:24rem;--chakra-sizes-px:1px;--chakra-sizes-0\.5:0.125rem;--chakra-sizes-1\.5:0.375rem;--chakra-sizes-2\.5:0.625rem;--chakra-sizes-3\.5:0.875rem;--chakra-sizes-max:max-content;--chakra-sizes-min:min-content;--chakra-sizes-full:100%;--chakra-sizes-3xs:14rem;--chakra-sizes-2xs:16rem;--chakra-sizes-xs:20rem;--chakra-sizes-sm:24rem;--chakra-sizes-md:28rem;--chakra-sizes-lg:32rem;--chakra-sizes-xl:36rem;--chakra-sizes-2xl:42rem;--chakra-sizes-3xl:48rem;--chakra-sizes-4xl:56rem;--chakra-sizes-5xl:64rem;--chakra-sizes-6xl:72rem;--chakra-sizes-7xl:80rem;--chakra-sizes-8xl:90rem;--chakra-sizes-container-sm:640px;--chakra-sizes-container-md:768px;--chakra-sizes-container-lg:1024px;--chakra-sizes-container-xl:1280px;--chakra-zIndices-hide:-1;--chakra-zIndices-auto:auto;--chakra-zIndices-base:0;--chakra-zIndices-docked:10;--chakra-zIndices-dropdown:1000;--chakra-zIndices-sticky:1100;--chakra-zIndices-banner:1200;--chakra-zIndices-overlay:1300;--chakra-zIndices-modal:1400;--chakra-zIndices-popover:1500;--chakra-zIndices-skipLink:1600;--chakra-zIndices-toast:1700;--chakra-zIndices-tooltip:1800;--chakra-transition-property-common:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform;--chakra-transition-property-colors:background-color,border-color,color,fill,stroke;--chakra-transition-property-dimensions:width,height;--chakra-transition-property-position:left,right,top,bottom;--chakra-transition-property-background:background-color,background-image,background-position;--chakra-transition-easing-ease-in:cubic-bezier(0.4, 0, 1, 1);--chakra-transition-easing-ease-out:cubic-bezier(0, 0, 0.2, 1);--chakra-transition-easing-ease-in-out:cubic-bezier(0.4, 0, 0.2, 1);--chakra-transition-duration-ultra-fast:50ms;--chakra-transition-duration-faster:100ms;--chakra-transition-duration-fast:150ms;--chakra-transition-duration-normal:200ms;--chakra-transition-duration-slow:300ms;--chakra-transition-duration-slower:400ms;--chakra-transition-duration-ultra-slow:500ms;--chakra-blur-none:0;--chakra-blur-sm:4px;--chakra-blur-base:8px;--chakra-blur-md:12px;--chakra-blur-lg:16px;--chakra-blur-xl:24px;--chakra-blur-2xl:40px;--chakra-blur-3xl:64px;}</style><style data-emotion="css-global 1syi0wy">html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:system-ui,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;touch-action:manipulation;}body{position:relative;min-height:100%;font-feature-settings:'kern';}*,*::before,*::after{border-width:0;border-style:solid;box-sizing:border-box;}main{display:block;}hr{border-top-width:1px;box-sizing:content-box;height:0;overflow:visible;}pre,code,kbd,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:1em;}a{background-color:transparent;color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit;}abbr[title]{border-bottom:none;-webkit-text-decoration:underline;text-decoration:underline;-webkit-text-decoration:underline dotted;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bold;}small{font-size:80%;}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline;}sub{bottom:-0.25em;}sup{top:-0.5em;}img{border-style:none;}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible;}button,select{text-transform:none;}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0;}fieldset{padding:0.35em 0.75em 0.625em;}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline;}textarea{overflow:auto;}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{-webkit-appearance:none!important;}input[type="number"]{-moz-appearance:textfield;}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none!important;}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block;}summary{display:-webkit-box;display:-webkit-list-item;display:-ms-list-itembox;display:list-item;}template{display:none;}[hidden]{display:none!important;}body,blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0;}button{background:transparent;padding:0;}fieldset{margin:0;padding:0;}ol,ul{margin:0;padding:0;}textarea{resize:vertical;}button,[role="button"]{cursor:pointer;}button::-moz-focus-inner{border:0!important;}table{border-collapse:collapse;}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit;}button,input,optgroup,select,textarea{padding:0;line-height:inherit;color:inherit;}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle;}img,video{max-width:100%;height:auto;}[data-js-focus-visible] :focus:not([data-focus-visible-added]){outline:none;box-shadow:none;}select::-ms-expand{display:none;}</style><style data-emotion="css-global 1baqkrf">body{font-family:var(--chakra-fonts-body);color:var(--chakra-colors-gray-800);background:var(--chakra-colors-white);transition-property:background-color;transition-duration:var(--chakra-transition-duration-normal);line-height:var(--chakra-lineHeights-base);}*::-webkit-input-placeholder{color:var(--chakra-colors-gray-400);}*::-moz-placeholder{color:var(--chakra-colors-gray-400);}*:-ms-input-placeholder{color:var(--chakra-colors-gray-400);}*::placeholder{color:var(--chakra-colors-gray-400);}*,*::before,::after{border-color:var(--chakra-colors-gray-200);word-wrap:break-word;}</style><span></span></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/","query":{},"buildId":"Ci3EcXz8ajkhs7MVidKTf","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html> \ No newline at end of file
diff --git a/build/server/webpack-runtime.js b/build/server/webpack-runtime.js
deleted file mode 100644
index ee76987..0000000
--- a/build/server/webpack-runtime.js
+++ /dev/null
@@ -1,160 +0,0 @@
-/******/ (function() { // webpackBootstrap
-/******/ "use strict";
-/******/ var __webpack_modules__ = ({});
-/************************************************************************/
-/******/ // The module cache
-/******/ var __webpack_module_cache__ = {};
-/******/
-/******/ // The require function
-/******/ function __webpack_require__(moduleId) {
-/******/ // Check if module is in cache
-/******/ var cachedModule = __webpack_module_cache__[moduleId];
-/******/ if (cachedModule !== undefined) {
-/******/ return cachedModule.exports;
-/******/ }
-/******/ // Create a new module (and put it into the cache)
-/******/ var module = __webpack_module_cache__[moduleId] = {
-/******/ // no module.id needed
-/******/ // no module.loaded needed
-/******/ exports: {}
-/******/ };
-/******/
-/******/ // Execute the module function
-/******/ var threw = true;
-/******/ try {
-/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-/******/ threw = false;
-/******/ } finally {
-/******/ if(threw) delete __webpack_module_cache__[moduleId];
-/******/ }
-/******/
-/******/ // Return the exports of the module
-/******/ return module.exports;
-/******/ }
-/******/
-/******/ // expose the modules object (__webpack_modules__)
-/******/ __webpack_require__.m = __webpack_modules__;
-/******/
-/************************************************************************/
-/******/ /* webpack/runtime/compat get default export */
-/******/ !function() {
-/******/ // getDefaultExport function for compatibility with non-harmony modules
-/******/ __webpack_require__.n = function(module) {
-/******/ var getter = module && module.__esModule ?
-/******/ function() { return module['default']; } :
-/******/ function() { return module; };
-/******/ __webpack_require__.d(getter, { a: getter });
-/******/ return getter;
-/******/ };
-/******/ }();
-/******/
-/******/ /* webpack/runtime/define property getters */
-/******/ !function() {
-/******/ // define getter functions for harmony exports
-/******/ __webpack_require__.d = function(exports, definition) {
-/******/ for(var key in definition) {
-/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
-/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
-/******/ }
-/******/ }
-/******/ };
-/******/ }();
-/******/
-/******/ /* webpack/runtime/ensure chunk */
-/******/ !function() {
-/******/ __webpack_require__.f = {};
-/******/ // This file contains only the entry chunk.
-/******/ // The chunk loading function for additional chunks
-/******/ __webpack_require__.e = function(chunkId) {
-/******/ return Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {
-/******/ __webpack_require__.f[key](chunkId, promises);
-/******/ return promises;
-/******/ }, []));
-/******/ };
-/******/ }();
-/******/
-/******/ /* webpack/runtime/get javascript chunk filename */
-/******/ !function() {
-/******/ // This function allow to reference async chunks and sibling chunks for the entrypoint
-/******/ __webpack_require__.u = function(chunkId) {
-/******/ // return url for filenames based on template
-/******/ return "" + chunkId + ".js";
-/******/ };
-/******/ }();
-/******/
-/******/ /* webpack/runtime/hasOwnProperty shorthand */
-/******/ !function() {
-/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
-/******/ }();
-/******/
-/******/ /* webpack/runtime/make namespace object */
-/******/ !function() {
-/******/ // define __esModule on exports
-/******/ __webpack_require__.r = function(exports) {
-/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
-/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-/******/ }
-/******/ Object.defineProperty(exports, '__esModule', { value: true });
-/******/ };
-/******/ }();
-/******/
-/******/ /* webpack/runtime/startup entrypoint */
-/******/ !function() {
-/******/ __webpack_require__.X = function(result, chunkIds, fn) {
-/******/ // arguments: chunkIds, moduleId are deprecated
-/******/ var moduleId = chunkIds;
-/******/ if(!fn) chunkIds = result, fn = function() { return __webpack_require__(__webpack_require__.s = moduleId); };
-/******/ chunkIds.map(__webpack_require__.e, __webpack_require__)
-/******/ var r = fn();
-/******/ return r === undefined ? result : r;
-/******/ }
-/******/ }();
-/******/
-/******/ /* webpack/runtime/require chunk loading */
-/******/ !function() {
-/******/ // no baseURI
-/******/
-/******/ // object to store loaded chunks
-/******/ // "1" means "loaded", otherwise not loaded yet
-/******/ var installedChunks = {
-/******/ 658: 1
-/******/ };
-/******/
-/******/ // no on chunks loaded
-/******/
-/******/ var installChunk = function(chunk) {
-/******/ var moreModules = chunk.modules, chunkIds = chunk.ids, runtime = chunk.runtime;
-/******/ for(var moduleId in moreModules) {
-/******/ if(__webpack_require__.o(moreModules, moduleId)) {
-/******/ __webpack_require__.m[moduleId] = moreModules[moduleId];
-/******/ }
-/******/ }
-/******/ if(runtime) runtime(__webpack_require__);
-/******/ for(var i = 0; i < chunkIds.length; i++)
-/******/ installedChunks[chunkIds[i]] = 1;
-/******/
-/******/ };
-/******/
-/******/ // require() chunk loading for javascript
-/******/ __webpack_require__.f.require = function(chunkId, promises) {
-/******/ // "1" is the signal for "already loaded"
-/******/ if(!installedChunks[chunkId]) {
-/******/ if(658 != chunkId) {
-/******/ installChunk(require("./chunks/" + __webpack_require__.u(chunkId)));
-/******/ } else installedChunks[chunkId] = 1;
-/******/ }
-/******/ };
-/******/
-/******/ module.exports = __webpack_require__;
-/******/ __webpack_require__.C = installChunk;
-/******/
-/******/ // no HMR
-/******/
-/******/ // no HMR manifest
-/******/ }();
-/******/
-/************************************************************************/
-/******/
-/******/
-/******/ })()
-; \ No newline at end of file