You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
83 KiB
JavaScript
65 lines
83 KiB
JavaScript
"use strict";
|
|
/*
|
|
* ATTENTION: An "eval-source-map" devtool has been used.
|
|
* This devtool is neither made for production nor for readable output files.
|
|
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
|
|
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
|
|
* or disable the default devtool with "devtool: false".
|
|
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
|
|
*/
|
|
exports.id = "vendor-chunks/d3-brush";
|
|
exports.ids = ["vendor-chunks/d3-brush"];
|
|
exports.modules = {
|
|
|
|
/***/ "(ssr)/./node_modules/d3-brush/src/brush.js":
|
|
/*!********************************************!*\
|
|
!*** ./node_modules/d3-brush/src/brush.js ***!
|
|
\********************************************/
|
|
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ brushSelection: () => (/* binding */ brushSelection),\n/* harmony export */ brushX: () => (/* binding */ brushX),\n/* harmony export */ brushY: () => (/* binding */ brushY),\n/* harmony export */ \"default\": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var d3_dispatch__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! d3-dispatch */ \"(ssr)/./node_modules/d3-dispatch/src/dispatch.js\");\n/* harmony import */ var d3_drag__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! d3-drag */ \"(ssr)/./node_modules/d3-drag/src/nodrag.js\");\n/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! d3-interpolate */ \"(ssr)/./node_modules/d3-interpolate/src/value.js\");\n/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! d3-selection */ \"(ssr)/./node_modules/d3-selection/src/select.js\");\n/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! d3-selection */ \"(ssr)/./node_modules/d3-selection/src/pointer.js\");\n/* harmony import */ var d3_transition__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-transition */ \"(ssr)/./node_modules/d3-transition/src/index.js\");\n/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constant.js */ \"(ssr)/./node_modules/d3-brush/src/constant.js\");\n/* harmony import */ var _event_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./event.js */ \"(ssr)/./node_modules/d3-brush/src/event.js\");\n/* harmony import */ var _noevent_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./noevent.js */ \"(ssr)/./node_modules/d3-brush/src/noevent.js\");\n\n\n\n\n\n\n\n\nvar MODE_DRAG = {\n name: \"drag\"\n}, MODE_SPACE = {\n name: \"space\"\n}, MODE_HANDLE = {\n name: \"handle\"\n}, MODE_CENTER = {\n name: \"center\"\n};\nconst { abs, max, min } = Math;\nfunction number1(e) {\n return [\n +e[0],\n +e[1]\n ];\n}\nfunction number2(e) {\n return [\n number1(e[0]),\n number1(e[1])\n ];\n}\nvar X = {\n name: \"x\",\n handles: [\n \"w\",\n \"e\"\n ].map(type),\n input: function(x, e) {\n return x == null ? null : [\n [\n +x[0],\n e[0][1]\n ],\n [\n +x[1],\n e[1][1]\n ]\n ];\n },\n output: function(xy) {\n return xy && [\n xy[0][0],\n xy[1][0]\n ];\n }\n};\nvar Y = {\n name: \"y\",\n handles: [\n \"n\",\n \"s\"\n ].map(type),\n input: function(y, e) {\n return y == null ? null : [\n [\n e[0][0],\n +y[0]\n ],\n [\n e[1][0],\n +y[1]\n ]\n ];\n },\n output: function(xy) {\n return xy && [\n xy[0][1],\n xy[1][1]\n ];\n }\n};\nvar XY = {\n name: \"xy\",\n handles: [\n \"n\",\n \"w\",\n \"e\",\n \"s\",\n \"nw\",\n \"ne\",\n \"sw\",\n \"se\"\n ].map(type),\n input: function(xy) {\n return xy == null ? null : number2(xy);\n },\n output: function(xy) {\n return xy;\n }\n};\nvar cursors = {\n overlay: \"crosshair\",\n selection: \"move\",\n n: \"ns-resize\",\n e: \"ew-resize\",\n s: \"ns-resize\",\n w: \"ew-resize\",\n nw: \"nwse-resize\",\n ne: \"nesw-resize\",\n se: \"nwse-resize\",\n sw: \"nesw-resize\"\n};\nvar flipX = {\n e: \"w\",\n w: \"e\",\n nw: \"ne\",\n ne: \"nw\",\n se: \"sw\",\n sw: \"se\"\n};\nvar flipY = {\n n: \"s\",\n s: \"n\",\n nw: \"sw\",\n ne: \"se\",\n se: \"ne\",\n sw: \"nw\"\n};\nvar signsX = {\n overlay: +1,\n selection: +1,\n n: null,\n e: +1,\n s: null,\n w: -1,\n nw: -1,\n ne: +1,\n se: +1,\n sw: -1\n};\nvar signsY = {\n overlay: +1,\n selection: +1,\n n: -1,\n e: null,\n s: +1,\n w: null,\n nw: -1,\n ne: -1,\n se: +1,\n sw: +1\n};\nfunction type(t) {\n return {\n type: t\n };\n}\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter(event) {\n return !event.ctrlKey && !event.button;\n}\nfunction defaultExtent() {\n var svg = this.ownerSVGElement || this;\n if (svg.hasAttribute(\"viewBox\")) {\n svg = svg.viewBox.baseVal;\n return [\n [\n svg.x,\n svg.y\n ],\n [\n svg.x + svg.width,\n svg.y + svg.height\n ]\n ];\n }\n return [\n [\n 0,\n 0\n ],\n [\n svg.width.baseVal.value,\n svg.height.baseVal.value\n ]\n ];\n}\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || \"ontouchstart\" in this;\n}\n// Like d3.local, but with the name “__brush” rather than auto-generated.\nfunction local(node) {\n while(!node.__brush)if (!(node = node.parentNode)) return;\n return node.__brush;\n}\nfunction empty(extent) {\n return extent[0][0] === extent[1][0] || extent[0][1] === extent[1][1];\n}\nfunction brushSelection(node) {\n var state = node.__brush;\n return state ? state.dim.output(state.selection) : null;\n}\nfunction brushX() {\n return brush(X);\n}\nfunction brushY() {\n return brush(Y);\n}\n/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {\n return brush(XY);\n}\nfunction brush(dim) {\n var extent = defaultExtent, filter = defaultFilter, touchable = defaultTouchable, keys = true, listeners = (0,d3_dispatch__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(\"start\", \"brush\", \"end\"), handleSize = 6, touchending;\n function brush(group) {\n var overlay = group.property(\"__brush\", initialize).selectAll(\".overlay\").data([\n type(\"overlay\")\n ]);\n overlay.enter().append(\"rect\").attr(\"class\", \"overlay\").attr(\"pointer-events\", \"all\").attr(\"cursor\", cursors.overlay).merge(overlay).each(function() {\n var extent = local(this).extent;\n (0,d3_selection__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(this).attr(\"x\", extent[0][0]).attr(\"y\", extent[0][1]).attr(\"width\", extent[1][0] - extent[0][0]).attr(\"height\", extent[1][1] - extent[0][1]);\n });\n group.selectAll(\".selection\").data([\n type(\"selection\")\n ]).enter().append(\"rect\").attr(\"class\", \"selection\").attr(\"cursor\", cursors.selection).attr(\"fill\", \"#777\").attr(\"fill-opacity\", 0.3).attr(\"stroke\", \"#fff\").attr(\"shape-rendering\", \"crispEdges\");\n var handle = group.selectAll(\".handle\").data(dim.handles, function(d) {\n return d.type;\n });\n handle.exit().remove();\n handle.enter().append(\"rect\").attr(\"class\", function(d) {\n return \"handle handle--\" + d.type;\n }).attr(\"cursor\", function(d) {\n return cursors[d.type];\n });\n group.each(redraw).attr(\"fill\", \"none\").attr(\"pointer-events\", \"all\").on(\"mousedown.brush\", started).filter(touchable).on(\"touchstart.brush\", started).on(\"touchmove.brush\", touchmoved).on(\"touchend.brush touchcancel.brush\", touchended).style(\"touch-action\", \"none\").style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n brush.move = function(group, selection, event) {\n if (group.tween) {\n group.on(\"start.brush\", function(event) {\n emitter(this, arguments).beforestart().start(event);\n }).on(\"interrupt.brush end.brush\", function(event) {\n emitter(this, arguments).end(event);\n }).tween(\"brush\", function() {\n var that = this, state = that.__brush, emit = emitter(that, arguments), selection0 = state.selection, selection1 = dim.input(typeof selection === \"function\" ? selection.apply(this, arguments) : selection, state.extent), i = (0,d3_interpolate__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(selection0, selection1);\n function tween(t) {\n state.selection = t === 1 && selection1 === null ? null : i(t);\n redraw.call(that);\n emit.brush();\n }\n return selection0 !== null && selection1 !== null ? tween : tween(1);\n });\n } else {\n group.each(function() {\n var that = this, args = arguments, state = that.__brush, selection1 = dim.input(typeof selection === \"function\" ? selection.apply(that, args) : selection, state.extent), emit = emitter(that, args).beforestart();\n (0,d3_transition__WEBPACK_IMPORTED_MODULE_0__.interrupt)(that);\n state.selection = selection1 === null ? null : selection1;\n redraw.call(that);\n emit.start(event).brush(event).end(event);\n });\n }\n };\n brush.clear = function(group, event) {\n brush.move(group, null, event);\n };\n function redraw() {\n var group = (0,d3_selection__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(this), selection = local(this).selection;\n if (selection) {\n group.selectAll(\".selection\").style(\"display\", null).attr(\"x\", selection[0][0]).attr(\"y\", selection[0][1]).attr(\"width\", selection[1][0] - selection[0][0]).attr(\"height\", selection[1][1] - selection[0][1]);\n group.selectAll(\".handle\").style(\"display\", null).attr(\"x\", function(d) {\n return d.type[d.type.length - 1] === \"e\" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2;\n }).attr(\"y\", function(d) {\n return d.type[0] === \"s\" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2;\n }).attr(\"width\", function(d) {\n return d.type === \"n\" || d.type === \"s\" ? selection[1][0] - selection[0][0] + handleSize : handleSize;\n }).attr(\"height\", function(d) {\n return d.type === \"e\" || d.type === \"w\" ? selection[1][1] - selection[0][1] + handleSize : handleSize;\n });\n } else {\n group.selectAll(\".selection,.handle\").style(\"display\", \"none\").attr(\"x\", null).attr(\"y\", null).attr(\"width\", null).attr(\"height\", null);\n }\n }\n function emitter(that, args, clean) {\n var emit = that.__brush.emitter;\n return emit && (!clean || !emit.clean) ? emit : new Emitter(that, args, clean);\n }\n function Emitter(that, args, clean) {\n this.that = that;\n this.args = args;\n this.state = that.__brush;\n this.active = 0;\n this.clean = clean;\n }\n Emitter.prototype = {\n beforestart: function() {\n if (++this.active === 1) this.state.emitter = this, this.starting = true;\n return this;\n },\n start: function(event, mode) {\n if (this.starting) this.starting = false, this.emit(\"start\", event, mode);\n else this.emit(\"brush\", event);\n return this;\n },\n brush: function(event, mode) {\n this.emit(\"brush\", event, mode);\n return this;\n },\n end: function(event, mode) {\n if (--this.active === 0) delete this.state.emitter, this.emit(\"end\", event, mode);\n return this;\n },\n emit: function(type, event, mode) {\n var d = (0,d3_selection__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(this.that).datum();\n listeners.call(type, this.that, new _event_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"](type, {\n sourceEvent: event,\n target: brush,\n selection: dim.output(this.state.selection),\n mode,\n dispatch: listeners\n }), d);\n }\n };\n function started(event) {\n if (touchending && !event.touches) return;\n if (!filter.apply(this, arguments)) return;\n var that = this, type = event.target.__data__.type, mode = (keys && event.metaKey ? type = \"overlay\" : type) === \"selection\" ? MODE_DRAG : keys && event.altKey ? MODE_CENTER : MODE_HANDLE, signX = dim === Y ? null : signsX[type], signY = dim === X ? null : signsY[type], state = local(that), extent = state.extent, selection = state.selection, W = extent[0][0], w0, w1, N = extent[0][1], n0, n1, E = extent[1][0], e0, e1, S = extent[1][1], s0, s1, dx = 0, dy = 0, moving, shifting = signX && signY && keys && event.shiftKey, lockX, lockY, points = Array.from(event.touches || [\n event\n ], (t)=>{\n const i = t.identifier;\n t = (0,d3_selection__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(t, that);\n t.point0 = t.slice();\n t.identifier = i;\n return t;\n });\n (0,d3_transition__WEBPACK_IMPORTED_MODULE_0__.interrupt)(that);\n var emit = emitter(that, arguments, true).beforestart();\n if (type === \"overlay\") {\n if (selection) moving = true;\n const pts = [\n points[0],\n points[1] || points[0]\n ];\n state.selection = selection = [\n [\n w0 = dim === Y ? W : min(pts[0][0], pts[1][0]),\n n0 = dim === X ? N : min(pts[0][1], pts[1][1])\n ],\n [\n e0 = dim === Y ? E : max(pts[0][0], pts[1][0]),\n s0 = dim === X ? S : max(pts[0][1], pts[1][1])\n ]\n ];\n if (points.length > 1) move(event);\n } else {\n w0 = selection[0][0];\n n0 = selection[0][1];\n e0 = selection[1][0];\n s0 = selection[1][1];\n }\n w1 = w0;\n n1 = n0;\n e1 = e0;\n s1 = s0;\n var group = (0,d3_selection__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(that).attr(\"pointer-events\", \"none\");\n var overlay = group.selectAll(\".overlay\").attr(\"cursor\", cursors[type]);\n if (event.touches) {\n emit.moved = moved;\n emit.ended = ended;\n } else {\n var view = (0,d3_selection__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(event.view).on(\"mousemove.brush\", moved, true).on(\"mouseup.brush\", ended, true);\n if (keys) view.on(\"keydown.brush\", keydowned, true).on(\"keyup.brush\", keyupped, true);\n (0,d3_drag__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(event.view);\n }\n redraw.call(that);\n emit.start(event, mode.name);\n function moved(event) {\n for (const p of event.changedTouches || [\n event\n ]){\n for (const d of points)if (d.identifier === p.identifier) d.cur = (0,d3_selection__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(p, that);\n }\n if (shifting && !lockX && !lockY && points.length === 1) {\n const point = points[0];\n if (abs(point.cur[0] - point[0]) > abs(point.cur[1] - point[1])) lockY = true;\n else lockX = true;\n }\n for (const point of points)if (point.cur) point[0] = point.cur[0], point[1] = point.cur[1];\n moving = true;\n (0,_noevent_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(event);\n move(event);\n }\n function move(event) {\n const point = points[0], point0 = point.point0;\n var t;\n dx = point[0] - point0[0];\n dy = point[1] - point0[1];\n switch(mode){\n case MODE_SPACE:\n case MODE_DRAG:\n {\n if (signX) dx = max(W - w0, min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx;\n if (signY) dy = max(N - n0, min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy;\n break;\n }\n case MODE_HANDLE:\n {\n if (points[1]) {\n if (signX) w1 = max(W, min(E, points[0][0])), e1 = max(W, min(E, points[1][0])), signX = 1;\n if (signY) n1 = max(N, min(S, points[0][1])), s1 = max(N, min(S, points[1][1])), signY = 1;\n } else {\n if (signX < 0) dx = max(W - w0, min(E - w0, dx)), w1 = w0 + dx, e1 = e0;\n else if (signX > 0) dx = max(W - e0, min(E - e0, dx)), w1 = w0, e1 = e0 + dx;\n if (signY < 0) dy = max(N - n0, min(S - n0, dy)), n1 = n0 + dy, s1 = s0;\n else if (signY > 0) dy = max(N - s0, min(S - s0, dy)), n1 = n0, s1 = s0 + dy;\n }\n break;\n }\n case MODE_CENTER:\n {\n if (signX) w1 = max(W, min(E, w0 - dx * signX)), e1 = max(W, min(E, e0 + dx * signX));\n if (signY) n1 = max(N, min(S, n0 - dy * signY)), s1 = max(N, min(S, s0 + dy * signY));\n break;\n }\n }\n if (e1 < w1) {\n signX *= -1;\n t = w0, w0 = e0, e0 = t;\n t = w1, w1 = e1, e1 = t;\n if (type in flipX) overlay.attr(\"cursor\", cursors[type = flipX[type]]);\n }\n if (s1 < n1) {\n signY *= -1;\n t = n0, n0 = s0, s0 = t;\n t = n1, n1 = s1, s1 = t;\n if (type in flipY) overlay.attr(\"cursor\", cursors[type = flipY[type]]);\n }\n if (state.selection) selection = state.selection; // May be set by brush.move!\n if (lockX) w1 = selection[0][0], e1 = selection[1][0];\n if (lockY) n1 = selection[0][1], s1 = selection[1][1];\n if (selection[0][0] !== w1 || selection[0][1] !== n1 || selection[1][0] !== e1 || selection[1][1] !== s1) {\n state.selection = [\n [\n w1,\n n1\n ],\n [\n e1,\n s1\n ]\n ];\n redraw.call(that);\n emit.brush(event, mode.name);\n }\n }\n function ended(event) {\n (0,_noevent_js__WEBPACK_IMPORTED_MODULE_3__.nopropagation)(event);\n if (event.touches) {\n if (event.touches.length) return;\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() {\n touchending = null;\n }, 500); // Ghost clicks are delayed!\n } else {\n (0,d3_drag__WEBPACK_IMPORTED_MODULE_8__.yesdrag)(event.view, moving);\n view.on(\"keydown.brush keyup.brush mousemove.brush mouseup.brush\", null);\n }\n group.attr(\"pointer-events\", \"all\");\n overlay.attr(\"cursor\", cursors.overlay);\n if (state.selection) selection = state.selection; // May be set by brush.move (on start)!\n if (empty(selection)) state.selection = null, redraw.call(that);\n emit.end(event, mode.name);\n }\n function keydowned(event) {\n switch(event.keyCode){\n case 16:\n {\n shifting = signX && signY;\n break;\n }\n case 18:\n {\n if (mode === MODE_HANDLE) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n move(event);\n }\n break;\n }\n case 32:\n {\n if (mode === MODE_HANDLE || mode === MODE_CENTER) {\n if (signX < 0) e0 = e1 - dx;\n else if (signX > 0) w0 = w1 - dx;\n if (signY < 0) s0 = s1 - dy;\n else if (signY > 0) n0 = n1 - dy;\n mode = MODE_SPACE;\n overlay.attr(\"cursor\", cursors.selection);\n move(event);\n }\n break;\n }\n default:\n return;\n }\n (0,_noevent_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(event);\n }\n function keyupped(event) {\n switch(event.keyCode){\n case 16:\n {\n if (shifting) {\n lockX = lockY = shifting = false;\n move(event);\n }\n break;\n }\n case 18:\n {\n if (mode === MODE_CENTER) {\n if (signX < 0) e0 = e1;\n else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1;\n else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n move(event);\n }\n break;\n }\n case 32:\n {\n if (mode === MODE_SPACE) {\n if (event.altKey) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n } else {\n if (signX < 0) e0 = e1;\n else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1;\n else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n }\n overlay.attr(\"cursor\", cursors[type]);\n move(event);\n }\n break;\n }\n default:\n return;\n }\n (0,_noevent_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(event);\n }\n }\n function touchmoved(event) {\n emitter(this, arguments).moved(event);\n }\n function touchended(event) {\n emitter(this, arguments).ended(event);\n }\n function initialize() {\n var state = this.__brush || {\n selection: null\n };\n state.extent = number2(extent.apply(this, arguments));\n state.dim = dim;\n return state;\n }\n brush.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(number2(_)), brush) : extent;\n };\n brush.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(!!_), brush) : filter;\n };\n brush.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(!!_), brush) : touchable;\n };\n brush.handleSize = function(_) {\n return arguments.length ? (handleSize = +_, brush) : handleSize;\n };\n brush.keyModifiers = function(_) {\n return arguments.length ? (keys = !!_, brush) : keys;\n };\n brush.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? brush : value;\n };\n return brush;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZDMtYnJ1c2gvc3JjL2JydXNoLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBcUM7QUFDVztBQUNMO0FBQ0U7QUFDTDtBQUNIO0FBQ0Q7QUFDZ0I7QUFFcEQsSUFBSVcsWUFBWTtJQUFDQyxNQUFNO0FBQU0sR0FDekJDLGFBQWE7SUFBQ0QsTUFBTTtBQUFPLEdBQzNCRSxjQUFjO0lBQUNGLE1BQU07QUFBUSxHQUM3QkcsY0FBYztJQUFDSCxNQUFNO0FBQVE7QUFFakMsTUFBTSxFQUFDSSxHQUFHLEVBQUVDLEdBQUcsRUFBRUMsR0FBRyxFQUFDLEdBQUdDO0FBRXhCLFNBQVNDLFFBQVFDLENBQUM7SUFDaEIsT0FBTztRQUFDLENBQUNBLENBQUMsQ0FBQyxFQUFFO1FBQUUsQ0FBQ0EsQ0FBQyxDQUFDLEVBQUU7S0FBQztBQUN2QjtBQUVBLFNBQVNDLFFBQVFELENBQUM7SUFDaEIsT0FBTztRQUFDRCxRQUFRQyxDQUFDLENBQUMsRUFBRTtRQUFHRCxRQUFRQyxDQUFDLENBQUMsRUFBRTtLQUFFO0FBQ3ZDO0FBRUEsSUFBSUUsSUFBSTtJQUNOWCxNQUFNO0lBQ05ZLFNBQVM7UUFBQztRQUFLO0tBQUksQ0FBQ0MsR0FBRyxDQUFDQztJQUN4QkMsT0FBTyxTQUFTQyxDQUFDLEVBQUVQLENBQUM7UUFBSSxPQUFPTyxLQUFLLE9BQU8sT0FBTztZQUFDO2dCQUFDLENBQUNBLENBQUMsQ0FBQyxFQUFFO2dCQUFFUCxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUU7YUFBQztZQUFFO2dCQUFDLENBQUNPLENBQUMsQ0FBQyxFQUFFO2dCQUFFUCxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUU7YUFBQztTQUFDO0lBQUU7SUFDeEZRLFFBQVEsU0FBU0MsRUFBRTtRQUFJLE9BQU9BLE1BQU07WUFBQ0EsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQUVBLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRTtTQUFDO0lBQUU7QUFDNUQ7QUFF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VWEsTUFBTSxHQUFJdEMsQ0FBQUEsYUFBYSxDQUFDNEYsR0FBR2xHLEtBQUksSUFBS007SUFDdkQ7SUFFQU4sTUFBTW1HLFlBQVksR0FBRyxTQUFTRCxDQUFDO1FBQzdCLE9BQU9uRSxVQUFVYSxNQUFNLEdBQUl4QyxDQUFBQSxPQUFPLENBQUMsQ0FBQzhGLEdBQUdsRyxLQUFJLElBQUtJO0lBQ2xEO0lBRUFKLE1BQU11QixFQUFFLEdBQUc7UUFDVCxJQUFJckMsUUFBUW1CLFVBQVVrQixFQUFFLENBQUNnQixLQUFLLENBQUNsQyxXQUFXMEI7UUFDMUMsT0FBTzdDLFVBQVVtQixZQUFZTCxRQUFRZDtJQUN2QztJQUVBLE9BQU9jO0FBQ1QiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9uZXh0Y2hhdC8uL25vZGVfbW9kdWxlcy9kMy1icnVzaC9zcmMvYnJ1c2guanM/ODQ4NSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2Rpc3BhdGNofSBmcm9tIFwiZDMtZGlzcGF0Y2hcIjtcbmltcG9ydCB7ZHJhZ0Rpc2FibGUsIGRyYWdFbmFibGV9IGZyb20gXCJkMy1kcmFnXCI7XG5pbXBvcnQge2ludGVycG9sYXRlfSBmcm9tIFwiZDMtaW50ZXJwb2xhdGVcIjtcbmltcG9ydCB7cG9pbnRlciwgc2VsZWN0fSBmcm9tIFwiZDMtc2VsZWN0aW9uXCI7XG5pbXBvcnQge2ludGVycnVwdH0gZnJvbSBcImQzLXRyYW5zaXRpb25cIjtcbmltcG9ydCBjb25zdGFudCBmcm9tIFwiLi9jb25zdGFudC5qc1wiO1xuaW1wb3J0IEJydXNoRXZlbnQgZnJvbSBcIi4vZXZlbnQuanNcIjtcbmltcG9ydCBub2V2ZW50LCB7bm9wcm9wYWdhdGlvbn0gZnJvbSBcIi4vbm9ldmVudC5qc1wiO1xuXG52YXIgTU9ERV9EUkFHID0ge25hbWU6IFwiZHJhZ1wifSxcbiAgICBNT0RFX1NQQUNFID0ge25hbWU6IFwic3BhY2VcIn0sXG4gICAgTU9ERV9IQU5ETEUgPSB7bmFtZTogXCJoYW5kbGVcIn0sXG4gICAgTU9ERV9DRU5URVIgPSB7bmFtZTogXCJjZW50ZXJcIn07XG5cbmNvbnN0IHthYnMsIG1heCwgbWlufSA9IE1hdGg7XG5cbmZ1bmN0aW9uIG51bWJlcjEoZSkge1xuICByZXR1cm4gWytlWzBdLCArZVsxXV07XG59XG5cbmZ1bmN0aW9uIG51bWJlcjIoZSkge1xuICByZXR1cm4gW251bWJlcjEoZVswXSksIG51bWJlcjEoZVsxXSldO1xufVxuXG52YXIgWCA9IHtcbiAgbmFtZTogXCJ4XCIsXG4gIGhhbmRsZXM6IFtcIndcIiwgXCJlXCJdLm1hcCh0eXBlKSxcbiAgaW5wdXQ6IGZ1bmN0aW9uKHgsIGUpIHsgcmV0dXJuIHggPT0gbnVsbCA/IG51bGwgOiBbWyt4WzBdLCBlWzBdWzFdXSwgWyt4WzFdLCBlWzFdWzFdXV07IH0sXG4gIG91dHB1dDogZnVuY3Rpb24oeHkpIHsgcmV0dXJuIHh5ICYmIFt4eVswXVswXSwgeHlbMV1bMF1dOyB9XG59O1xuXG52YXIgWSA9IHtcbiAgbmFtZTogXCJ5XCIsXG4gIGhhbmRsZXM6IFtcIm5cIiwgXCJzXCJdLm1hcCh0eXBlKSxcbiAgaW5wdXQ6IGZ1bmN0aW9uKHksIGUpIHsgcmV0dXJuIHkgPT0gbnVsbCA/IG51bGwgOiBbW2VbMF1bMF0sICt5WzBdXSwgW2VbMV1bMF0sICt5WzFdXV07IH0sXG4gIG91dHB1dDogZnVuY3Rpb24oeHkpIHsgcmV0dXJuIHh5ICYmIFt4eVswXVsxXSwgeHlbMV1bMV1dOyB9XG59O1xuXG52YXIgWFkgPSB7XG4gIG5hbWU6IFwieHlcIixcbiAgaGFuZGxlczogW1wiblwiLCBcIndcIiwgXCJlXCIsIFwic1wiLCBcIm53XCIsIFwibmVcIiwgXCJzd1wiLCBcInNlXCJdLm1hcCh0eXBlKSxcbiAgaW5wdXQ6IGZ1bmN0aW9uKHh5KSB7IHJldHVybiB4eSA9PSBudWxsID8gbnVsbCA6IG51bWJlcjIoeHkpOyB9LFxuICBvdXRwdXQ6IGZ1bmN0aW9uKHh5KSB7IHJldHVybiB4eTsgfVxufTtcblxudmFyIGN1cnNvcnMgPSB7XG4gIG92ZXJsYXk6IFwiY3Jvc3NoYWlyXCIsXG4gIHNlbGVjdGlvbjogXCJtb3ZlXCIsXG4gIG46IFwibnMtcmVzaXplXCIsXG4gIGU6IFwiZXctcmVzaXplXCIsXG4gIHM6IFwibnMtcmVzaXplXCIsXG4gIHc6IFwiZXctcmVzaXplXCIsXG4gIG53OiBcIm53c2UtcmVzaXplXCIsXG4gIG5lOiBcIm5lc3ctcmVzaXplXCIsXG4gIHNlOiBcIm53c2UtcmVzaXplXCIsXG4gIHN3OiBcIm5lc3ctcmVzaXplXCJcbn07XG5cbnZhciBmbGlwWCA9IHtcbiAgZTogXCJ3XCIsXG4gIHc6IFwiZVwiLFxuICBudzogXCJuZVwiLFxuICBuZTogXCJud1wiLFxuICBzZTogXCJzd1wiLFxuICBzdzogXCJzZVwiXG59O1xuXG52YXIgZmxpcFkgPSB7XG4gIG46IFwic1wiLFxuICBzOiBcIm5cIixcbiAgbnc6IFwic3dcIixcbiAgbmU6IFwic2VcIixcbiAgc2U6IFwibmVcIixcbiAgc3c6IFwibndcIlxufTtcblxudmFyIHNpZ25zWCA9IHtcbiAgb3ZlcmxheTogKzEsXG4gIHNlbGVjdGlvbjogKzEsXG4gIG46IG51bGwsXG4gIGU6ICsxLFxuICBzOiBudWxsLFxuICB3OiAtMSxcbiAgbnc6IC0xLFxuICBuZTogKzEsXG4gIHNlOiArMSxcbiAgc3c6IC0xXG59O1xuXG52YXIgc2lnbnNZID0ge1xuICBvdmVybGF5OiArMSxcbiAgc2VsZWN0aW9uOiArMSxcbiAgbjogLTEsXG4gIGU6IG51bGwsXG4gIHM6ICsxLFxuICB3OiBudWxsLFxuICBudzogLTEsXG4gIG5lOiAtMSxcbiAgc2U6ICsxLFxuICBzdzogKzFcbn07XG5cbmZ1bmN0aW9uIHR5cGUodCkge1xuICByZXR1cm4ge3R5cGU6IHR9O1xufVxuXG4vLyBJZ25vcmUgcmlnaHQtY2xpY2ssIHNpbmNlIHRoYXQgc2hvdWxkIG9wZW4gdGhlIGNvbnRleHQgbWVudS5cbmZ1bmN0aW9uIGRlZmF1bHRGaWx0ZXIoZXZlbnQpIHtcbiAgcmV0dXJuICFldmVudC5jdHJsS2V5ICYmICFldmVudC5idXR0b247XG59XG5cbmZ1bmN0aW9uIGRlZmF1bHRFeHRlbnQoKSB7XG4gIHZhciBzdmcgPSB0aGlzLm93bmVyU1ZHRWxlbWVudCB8fCB0aGlzO1xuICBpZiAoc3ZnLmhhc0F0dHJpYnV0ZShcInZpZXdCb3hcIikpIHtcbiAgICBzdmcgPSBzdmcudmlld0JveC5iYXNlVmFsO1xuICAgIHJldHVybiBbW3N2Zy54LCBzdmcueV0sIFtzdmcueCArIHN2Zy53aWR0aCwgc3ZnLnkgKyBzdmcuaGVpZ2h0XV07XG4gIH1cbiAgcmV0dXJuIFtbMCwgMF0sIFtzdmcud2lkdGguYmFzZVZhbC52YWx1ZSwgc3ZnLmhlaWdodC5iYXNlVmFsLnZhbHVlXV07XG59XG5cbmZ1bmN0aW9uIGRlZmF1bHRUb3VjaGFibGUoKSB7XG4gIHJldHVybiBuYXZpZ2F0b3IubWF4VG91Y2hQb2ludHMgfHwgKFwib250b3VjaHN0YXJ0XCIgaW4gdGhpcyk7XG59XG5cbi8vIExpa2UgZDMubG9jYWwsIGJ1dCB3aXRoIHRoZSBuYW1lIOKAnF9fYnJ1c2jigJ0gcmF0aGVyIHRoYW4gYXV0by1nZW5lcmF0ZWQuXG5mdW5jdGlvbiBsb2NhbChub2RlKSB7XG4gIHdoaWxlICghbm9kZS5fX2JydXNoKSBpZiAoIShub2RlID0gbm9kZS5wYXJlbnROb2RlKSkgcmV0dXJuO1xuICByZXR1cm4gbm9kZS5fX2JydXNoO1xufVxuXG5mdW5jdGlvbiBlbXB0eShleHRlbnQpIHtcbiAgcmV0dXJuIGV4dGVudFswXVswXSA9PT0gZXh0ZW50WzFdWzBdXG4gICAgICB8fCBleHRlbnRbMF1bMV0gPT09IGV4dGVudFsxXVsxXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJydXNoU2VsZWN0aW9uKG5vZGUpIHtcbiAgdmFyIHN0YXRlID0gbm9kZS5fX2JydXNoO1xuICByZXR1cm4gc3RhdGUgPyBzdGF0ZS5kaW0ub3V0cHV0KHN0YXRlLnNlbGVjdGlvbikgOiBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYnJ1c2hYKCkge1xuICByZXR1cm4gYnJ1c2goWCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBicnVzaFkoKSB7XG4gIHJldHVybiBicnVzaChZKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oKSB7XG4gIHJldHVybiBicnVzaChYWSk7XG59XG5cbmZ1bmN0aW9uIGJydXNoKGRpbSkge1xuICB2YXIgZXh0ZW50ID0gZGVmYXVsdEV4dGVudCxcbiAgICAgIGZpbHRlciA9IGRlZmF1bHRGaWx0ZXIsXG4gICAgICB0b3VjaGFibGUgPSBkZWZhdWx0VG91Y2hhYmxlLFxuICAgICAga2V5cyA9IHRydWUsXG4gICAgICBsaXN0ZW5lcnMgPSBkaXNwYXRjaChcInN0YXJ0XCIsIFwiYnJ1c2hcIiwgXCJlbmRcIiksXG4gICAgICBoYW5kbGVTaXplID0gNixcbiAgICAgIHRvdWNoZW5kaW5nO1xuXG4gIGZ1bmN0aW9uIGJydXNoKGdyb3VwKSB7XG4gICAgdmFyIG92ZXJsYXkgPSBncm91cFxuICAgICAgICAucHJvcGVydHkoXCJfX2JydXNoXCIsIGluaXRpYWxpemUpXG4gICAgICAuc2VsZWN0QWxsKFwiLm92ZXJsYXlcIilcbiAgICAgIC5kYXRhKFt0eXBlKFwib3ZlcmxheVwiKV0pO1xuXG4gICAgb3ZlcmxheS5lbnRlcigpLmFwcGVuZChcInJlY3RcIilcbiAgICAgICAgLmF0dHIoXCJjbGFzc1wiLCBcIm92ZXJsYXlcIilcbiAgICAgICAgLmF0dHIoXCJwb2ludGVyLWV2ZW50c1wiLCBcImFsbFwiKVxuICAgICAgICAuYXR0cihcImN1cnNvclwiLCBjdXJzb3JzLm92ZXJsYXkpXG4gICAgICAubWVyZ2Uob3ZlcmxheSlcbiAgICAgICAgLmVhY2goZnVuY3Rpb24oKSB7XG4gICAgICAgICAgdmFyIGV4dGVudCA9IGxvY2FsKHRoaXMpLmV4dGVudDtcbiAgICAgICAgICBzZWxlY3QodGhpcylcbiAgICAgICAgICAgICAgLmF0dHIoXCJ4XCIsIGV4dGVudFswXVswXSlcbiAgICAgICAgICAgICAgLmF0dHIoXCJ5XCIsIGV4dGVudFswXVsxXSlcbiAgICAgICAgICAgICAgLmF0dHIoXCJ3aWR0aFwiLCBleHRlbnRbMV1bMF0gLSBleHRlbnRbMF1bMF0pXG4gICAgICAgICAgICAgIC5hdHRyKFwiaGVpZ2h0XCIsIGV4dGVudFsxXVsxXSAtIGV4dGVudFswXVsxXSk7XG4gICAgICAgIH0pO1xuXG4gICAgZ3JvdXAuc2VsZWN0QWxsKFwiLnNlbGVjdGlvblwiKVxuICAgICAgLmRhdGEoW3R5cGUoXCJzZWxlY3Rpb25cIildKVxuICAgICAgLmVudGVyKCkuYXBwZW5kKFwicmVjdFwiKVxuICAgICAgICAuYXR0cihcImNsYXNzXCIsIFwic2VsZWN0aW9uXCIpXG4gICAgICAgIC5hdHRyKFwiY3Vyc29yXCIsIGN1cnNvcnMuc2VsZWN0aW9uKVxuICAgICAgICAuYXR0cihcImZpbGxcIiwgXCIjNzc3XCIpXG4gICAgICAgIC5hdHRyKFwiZmlsbC1vcGFjaXR5XCIsIDAuMylcbiAgICAgICAgLmF0dHIoXCJzdHJva2VcIiwgXCIjZmZmXCIpXG4gICAgICAgIC5hdHRyKFwic2hhcGUtcmVuZGVyaW5nXCIsIFwiY3Jpc3BFZGdlc1wiKTtcblxuICAgIHZhciBoYW5kbGUgPSBncm91cC5zZWxlY3RBbGwoXCIuaGFuZGxlXCIpXG4gICAgICAuZGF0YShkaW0uaGFuZGxlcywgZnVuY3Rpb24oZCkgeyByZXR1cm4gZC50eXBlOyB9KTtcblxuICAgIGhhbmRsZS5leGl0KCkucmVtb3ZlKCk7XG5cbiAgICBoYW5kbGUuZW50ZXIoKS5hcHBlbmQoXCJyZWN0XCIpXG4gICAgICAgIC5hdHRyKFwiY2xhc3NcIiwgZnVuY3Rpb24oZCkgeyByZXR1cm4gXCJoYW5kbGUgaGFuZGxlLS1cIiArIGQudHlwZTsgfSlcbiAgICAgICAgLmF0dHIoXCJjdXJzb3JcIiwgZnVuY3Rpb24oZCkgeyByZXR1cm4gY3Vyc29yc1tkLnR5cGVdOyB9KTtcblxuICAgIGdyb3VwXG4gICAgICAgIC5lYWNoKHJlZHJhdylcbiAgICAgICAgLmF0dHIoXCJmaWxsXCIsIFwibm9uZVwiKVxuICAgICAgICAuYXR0cihcInBvaW50ZXItZXZlbnRzXCIsIFwiYWxsXCIpXG4gICAgICAgIC5vbihcIm1vdXNlZG93bi5icnVzaFwiLCBzdGFydGVkKVxuICAgICAgLmZpbHRlcih0b3VjaGFibGUpXG4gICAgICAgIC5vbihcInRvdWNoc3RhcnQuYnJ1c2hcIiwgc3RhcnRlZClcbiAgICAgICAgLm9uKFwidG91Y2htb3ZlLmJydXNoXCIsIHRvdWNobW92ZWQpXG4gICAgICAgIC5vbihcInRvdWNoZW5kLmJydXNoIHRvdWNoY2FuY2VsLmJydXNoXCIsIHRvdWNoZW5kZWQpXG4gICAgICAgIC5zdHlsZShcInRvdWNoLWFjdGlvblwiLCBcIm5vbmVcIilcbiAgICAgICAgLnN0eWxlKFwiLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yXCIsIFwicmdiYSgwLDAsMCwwKVwiKTtcbiAgfVxuXG4gIGJydXNoLm1vdmUgPSBmdW5jdGlvbihncm91cCwgc2VsZWN0aW9uLCBldmVudCkge1xuICAgIGlmIChncm91cC50d2Vlbikge1xuICAgICAgZ3JvdXBcbiAgICAgICAgICAub24oXCJzdGFydC5icnVzaFwiLCBmdW5jdGlvbihldmVudCkgeyBlbWl0dGVyKHRoaXMsIGFyZ3VtZW50cykuYmVmb3Jlc3RhcnQoKS5zdGFydChldmVudCk7IH0pXG4gICAgICAgICAgLm9uKFwiaW50ZXJydXB0LmJydXNoIGVuZC5icnVzaFwiLCBmdW5jdGlvbihldmVudCkgeyBlbWl0dGVyKHRoaXMsIGFyZ3VtZW50cykuZW5kKGV2ZW50KTsgfSlcbiAgICAgICAgICAudHdlZW4oXCJicnVzaFwiLCBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHZhciB0aGF0ID0gdGhpcyxcbiAgICAgICAgICAgICAgICBzdGF0ZSA9IHRoYXQuX19icnVzaCxcbiAgICAgICAgICAgICAgICBlbWl0ID0gZW1pdHRlcih0aGF0LCBhcmd1bWVudHMpLFxuICAgICAgICAgICAgICAgIHNlbGVjdGlvbjAgPSBzdGF0ZS5zZWxlY3Rpb24sXG4gICAgICAgICAgICAgICAgc2VsZWN0aW9uMSA9IGRpbS5pbnB1dCh0eXBlb2Ygc2VsZWN0aW9uID09PSBcImZ1bmN0aW9uXCIgPyBzZWxlY3Rpb24uYXBwbHkodGhpcywgYXJndW1lbnRzKSA6IHNlbGVjdGlvbiwgc3RhdGUuZXh0ZW50KSxcbiAgICAgICAgICAgICAgICBpID0gaW50ZXJwb2xhdGUoc2VsZWN0aW9uMCwgc2VsZWN0aW9uMSk7XG5cbiAgICAgICAgICAgIGZ1bmN0aW9uIHR3ZWVuKHQpIHtcbiAgICAgICAgICAgICAgc3RhdGUuc2VsZWN0aW9uID0gdCA9PT0gMSAmJiBzZWxlY3Rpb24xID09PSBudWxsID8gbnVsbCA6IGkodCk7XG4gICAgICAgICAgICAgIHJlZHJhdy5jYWxsKHRoYXQpO1xuICAgICAgICAgICAgICBlbWl0LmJydXNoKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBzZWxlY3Rpb24wICE9PSBudWxsICYmIHNlbGVjdGlvbjEgIT09IG51bGwgPyB0d2VlbiA6IHR3ZWVuKDEpO1xuICAgICAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBncm91cFxuICAgICAgICAgIC5lYWNoKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyIHRoYXQgPSB0aGlzLFxuICAgICAgICAgICAgICAgIGFyZ3MgPSBhcmd1bWVudHMsXG4gICAgICAgICAgICAgICAgc3RhdGUgPSB0aGF0Ll9fYnJ1c2gsXG4gICAgICAgICAgICAgICAgc2VsZWN0aW9uMSA9IGRpbS5pbnB1dCh0eXBlb2Ygc2VsZWN0aW9uID09PSBcImZ1bmN0aW9uXCIgPyBzZWxlY3Rpb24uYXBwbHkodGhhdCwgYXJncykgOiBzZWxlY3Rpb24sIHN0YXRlLmV4dGVudCksXG4gICAgICAgICAgICAgICAgZW1pdCA9IGVtaXR0ZXIodGhhdCwgYXJncykuYmVmb3Jlc3RhcnQoKTtcblxuICAgICAgICAgICAgaW50ZXJydXB0KHRoYXQpO1xuICAgICAgICAgICAgc3RhdGUuc2VsZWN0aW9uID0gc2VsZWN0aW9uMSA9PT0gbnVsbCA/IG51bGwgOiBzZWxlY3Rpb24xO1xuICAgICAgICAgICAgcmVkcmF3LmNhbGwodGhhdCk7XG4gICAgICAgICAgICBlbWl0LnN0YXJ0KGV2ZW50KS5icnVzaChldmVudCkuZW5kKGV2ZW50KTtcbiAgICAgICAgICB9KTtcbiAgICB9XG4gIH07XG5cbiAgYnJ1c2guY2xlYXIgPSBmdW5jdGlvbihncm91cCwgZXZlbnQpIHtcbiAgICBicnVzaC5tb3ZlKGdyb3VwLCBudWxsLCBldmVudCk7XG4gIH07XG5cbiAgZnVuY3Rpb24gcmVkcmF3KCkge1xuICAgIHZhciBncm91cCA9IHNlbGVjdCh0aGlzKSxcbiAgICAgICAgc2VsZWN0aW9uID0gbG9jYWwodGhpcykuc2VsZWN0aW9uO1xuXG4gICAgaWYgKHNlbGVjdGlvbikge1xuICAgICAgZ3JvdXAuc2VsZWN0QWxsKFwiLnNlbGVjdGlvblwiKVxuICAgICAgICAgIC5zdHlsZShcImRpc3BsYXlcIiwgbnVsbClcbiAgICAgICAgICAuYXR0cihcInhcIiwgc2VsZWN0aW9uWzBdWzBdKVxuICAgICAgICAgIC5hdHRyKFwieVwiLCBzZWxlY3Rpb25bMF1bMV0pXG4gICAgICAgICAgLmF0dHIoXCJ3aWR0aFwiLCBzZWxlY3Rpb25bMV1bMF0gLSBzZWxlY3Rpb25bMF1bMF0pXG4gICAgICAgICAgLmF0dHIoXCJoZWlnaHRcIiwgc2VsZWN0aW9uWzFdWzFdIC0gc2VsZWN0aW9uWzBdWzFdKTtcblxuICAgICAgZ3JvdXAuc2VsZWN0QWxsKFwiLmhhbmRsZVwiKVxuICAgICAgICAgIC5zdHlsZShcImRpc3BsYXlcIiwgbnVsbClcbiAgICAgICAgICAuYXR0cihcInhcIiwgZnVuY3Rpb24oZCkgeyByZXR1cm4gZC50eXBlW2QudHlwZS5sZW5ndGggLSAxXSA9PT0gXCJlXCIgPyBzZWxlY3Rpb25bMV1bMF0gLSBoYW5kbGVTaXplIC8gMiA6IHNlbGVjdGlvblswXVswXSAtIGhhbmRsZVNpemUgLyAyOyB9KVxuICAgICAgICAgIC5hdHRyKFwieVwiLCBmdW5jdGlvbihkKSB7IHJldHVybiBkLnR5cGVbMF0gPT09IFwic1wiID8gc2VsZWN0aW9uWzFdWzFdIC0gaGFuZGxlU2l6ZSAvIDIgOiBzZWxlY3Rpb25bMF1bMV0gLSBoYW5kbGVTaXplIC8gMjsgfSlcbiAgICAgICAgICAuYXR0cihcIndpZHRoXCIsIGZ1bmN0aW9uKGQpIHsgcmV0dXJuIGQudHlwZSA9PT0gXCJuXCIgfHwgZC50eXBlID09PSBcInNcIiA/IHNlbGVjdGlvblsxXVswXSAtIHNlbGVjdGlvblswXVswXSArIGhhbmRsZVNpemUgOiBoYW5kbGVTaXplOyB9KVxuICAgICAgICAgIC5hdHRyKFwiaGVpZ2h0XCIsIGZ1bmN0aW9uKGQpIHsgcmV0dXJuIGQudHlwZSA9PT0gXCJlXCIgfHwgZC50eXBlID09PSBcIndcIiA/IHNlbGVjdGlvblsxXVsxXSAtIHNlbGVjdGlvblswXVsxXSArIGhhbmRsZVNpemUgOiBoYW5kbGVTaXplOyB9KTtcbiAgICB9XG5cbiAgICBlbHNlIHtcbiAgICAgIGdyb3VwLnNlbGVjdEFsbChcIi5zZWxlY3Rpb24sLmhhbmRsZVwiKVxuICAgICAgICAgIC5zdHlsZShcImRpc3BsYXlcIiwgXCJub25lXCIpXG4gICAgICAgICAgLmF0dHIoXCJ4XCIsIG51bGwpXG4gICAgICAgICAgLmF0dHIoXCJ5XCIsIG51bGwpXG4gICAgICAgICAgLmF0dHIoXCJ3aWR0aFwiLCBudWxsKVxuICAgICAgICAgIC5hdHRyKFwiaGVpZ2h0XCIsIG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGVtaXR0ZXIodGhhdCwgYXJncywgY2xlYW4pIHtcbiAgICB2YXIgZW1pdCA9IHRoYXQuX19icnVzaC5lbWl0dGVyO1xuICAgIHJldHVybiBlbWl0ICYmICghY2xlYW4gfHwgIWVtaXQuY2xlYW4pID8gZW1pdCA6IG5ldyBFbWl0dGVyKHRoYXQsIGFyZ3MsIGNsZWFuKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIEVtaXR0ZXIodGhhdCwgYXJncywgY2xlYW4pIHtcbiAgICB0aGlzLnRoYXQgPSB0aGF0O1xuICAgIHRoaXMuYXJncyA9IGFyZ3M7XG4gICAgdGhpcy5zdGF0ZSA9IHRoYXQuX19icnVzaDtcbiAgICB0aGlzLmFjdGl2ZSA9IDA7XG4gICAgdGhpcy5jbGVhbiA9IGNsZWFuO1xuICB9XG5cbiAgRW1pdHRlci5wcm90b3R5cGUgPSB7XG4gICAgYmVmb3Jlc3RhcnQ6IGZ1bmN0aW9uKCkge1xuICAgICAgaWYgKCsrdGhpcy5hY3RpdmUgPT09IDEpIHRoaXMuc3RhdGUuZW1pdHRlciA9IHRoaXMsIHRoaXMuc3RhcnRpbmcgPSB0cnVlO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSxcbiAgICBzdGFydDogZnVuY3Rpb24oZXZlbnQsIG1vZGUpIHtcbiAgICAgIGlmICh0aGlzLnN0YXJ0aW5nKSB0aGlzLnN0YXJ0aW5nID0gZmFsc2UsIHRoaXMuZW1pdChcInN0YXJ0XCIsIGV2ZW50LCBtb2RlKTtcbiAgICAgIGVsc2UgdGhpcy5lbWl0KFwiYnJ1c2hcIiwgZXZlbnQpO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSxcbiAgICBicnVzaDogZnVuY3Rpb24oZXZlbnQsIG1vZGUpIHtcbiAgICAgIHRoaXMuZW1pdChcImJydXNoXCIsIGV2ZW50LCBtb2RlKTtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH0sXG4gICAgZW5kOiBmdW5jdGlvbihldmVudCwgbW9kZSkge1xuICAgICAgaWYgKC0tdGhpcy5hY3RpdmUgPT09IDApIGRlbGV0ZSB0aGlzLnN0YXRlLmVtaXR0ZXIsIHRoaXMuZW1pdChcImVuZFwiLCBldmVudCwgbW9kZSk7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9LFxuICAgIGVtaXQ6IGZ1bmN0aW9uKHR5cGUsIGV2ZW50LCBtb2RlKSB7XG4gICAgICB2YXIgZCA9IHNlbGVjdCh0aGlzLnRoYXQpLmRhdHVtKCk7XG4gICAgICBsaXN0ZW5lcnMuY2FsbChcbiAgICAgICAgdHlwZSxcbiAgICAgICAgdGhpcy50aGF0LFxuICAgICAgICBuZXcgQnJ1c2hFdmVudCh0eXBlLCB7XG4gICAgICAgICAgc291cmNlRXZlbnQ6IGV2ZW50LFxuICAgICAgICAgIHRhcmdldDogYnJ1c2gsXG4gICAgICAgICAgc2VsZWN0aW9uOiBkaW0ub3V0cHV0KHRoaXMuc3RhdGUuc2VsZWN0aW9uKSxcbiAgICAgICAgICBtb2RlLFxuICAgICAgICAgIGRpc3BhdGNoOiBsaXN0ZW5lcnNcbiAgICAgICAgfSksXG4gICAgICAgIGRcbiAgICAgICk7XG4gICAgfVxuICB9O1xuXG4gIGZ1bmN0aW9uIHN0YXJ0ZWQoZXZlbnQpIHtcbiAgICBpZiAodG91Y2hlbmRpbmcgJiYgIWV2ZW50LnRvdWNoZXMpIHJldHVybjtcbiAgICBpZiAoIWZpbHRlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpKSByZXR1cm47XG5cbiAgICB2YXIgdGhhdCA9IHRoaXMsXG4gICAgICAgIHR5cGUgPSBldmVudC50YXJnZXQuX19kYXRhX18udHlwZSxcbiAgICAgICAgbW9kZSA9IChrZXlzICYmIGV2ZW50Lm1ldGFLZXkgPyB0eXBlID0gXCJvdmVybGF5XCIgOiB0eXBlKSA9PT0gXCJzZWxlY3Rpb25cIiA/IE1PREVfRFJBRyA6IChrZXlzICYmIGV2ZW50LmFsdEtleSA/IE1PREVfQ0VOVEVSIDogTU9ERV9IQU5ETEUpLFxuICAgICAgICBzaWduWCA9IGRpbSA9PT0gWSA/IG51bGwgOiBzaWduc1hbdHlwZV0sXG4gICAgICAgIHNpZ25ZID0gZGltID09PSBYID8gbnVsbCA6IHNpZ25zWVt0eXBlXSxcbiAgICAgICAgc3RhdGUgPSBsb2NhbCh0aGF0KSxcbiAgICAgICAgZXh0ZW50ID0gc3RhdGUuZXh0ZW50LFxuICAgICAgICBzZWxlY3Rpb24gPSBzdGF0ZS5zZWxlY3Rpb24sXG4gICAgICAgIFcgPSBleHRlbnRbMF1bMF0sIHcwLCB3MSxcbiAgICAgICAgTiA9IGV4dGVudFswXVsxXSwgbjAsIG4xLFxuICAgICAgICBFID0gZXh0ZW50WzFdWzBdLCBlMCwgZTEsXG4gICAgICAgIFMgPSBleHRlbnRbMV1bMV0sIHMwLCBzMSxcbiAgICAgICAgZHggPSAwLFxuICAgICAgICBkeSA9IDAsXG4gICAgICAgIG1vdmluZyxcbiAgICAgICAgc2hpZnRpbmcgPSBzaWduWCAmJiBzaWduWSAmJiBrZXlzICYmIGV2ZW50LnNoaWZ0S2V5LFxuICAgICAgICBsb2NrWCxcbiAgICAgICAgbG9ja1ksXG4gICAgICAgIHBvaW50cyA9IEFycmF5LmZyb20oZXZlbnQudG91Y2hlcyB8fCBbZXZlbnRdLCB0ID0+IHtcbiAgICAgICAgICBjb25zdCBpID0gdC5pZGVudGlmaWVyO1xuICAgICAgICAgIHQgPSBwb2ludGVyKHQsIHRoYXQpO1xuICAgICAgICAgIHQucG9pbnQwID0gdC5zbGljZSgpO1xuICAgICAgICAgIHQuaWRlbnRpZmllciA9IGk7XG4gICAgICAgICAgcmV0dXJuIHQ7XG4gICAgICAgIH0pO1xuXG4gICAgaW50ZXJydXB0KHRoYXQpO1xuICAgIHZhciBlbWl0ID0gZW1pdHRlcih0aGF0LCBhcmd1bWVudHMsIHRydWUpLmJlZm9yZXN0YXJ0KCk7XG5cbiAgICBpZiAodHlwZSA9PT0gXCJvdmVybGF5XCIpIHtcbiAgICAgIGlmIChzZWxlY3Rpb24pIG1vdmluZyA9IHRydWU7XG4gICAgICBjb25zdCBwdHMgPSBbcG9pbnRzWzBdLCBwb2ludHNbMV0gfHwgcG9pbnRzWzBdXTtcbiAgICAgIHN0YXRlLnNlbGVjdGlvbiA9IHNlbGVjdGlvbiA9IFtbXG4gICAgICAgICAgdzAgPSBkaW0gPT09IFkgPyBXIDogbWluKHB0c1swXVswXSwgcHRzWzFdWzBdKSxcbiAgICAgICAgICBuMCA9IGRpbSA9PT0gWCA/IE4gOiBtaW4ocHRzWzBdWzFdLCBwdHNbMV1bMV0pXG4gICAgICAgIF0sIFtcbiAgICAgICAgICBlMCA9IGRpbSA9PT0gWSA/IEUgOiBtYXgocHRzWzBdWzBdLCBwdHNbMV1bMF0pLFxuICAgICAgICAgIHMwID0gZGltID09PSBYID8gUyA6IG1heChwdHNbMF1bMV0sIHB0c1sxXVsxXSlcbiAgICAgICAgXV07XG4gICAgICBpZiAocG9pbnRzLmxlbmd0aCA+IDEpIG1vdmUoZXZlbnQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB3MCA9IHNlbGVjdGlvblswXVswXTtcbiAgICAgIG4wID0gc2VsZWN0aW9uWzBdWzFdO1xuICAgICAgZTAgPSBzZWxlY3Rpb25bMV1bMF07XG4gICAgICBzMCA9IHNlbGVjdGlvblsxXVsxXTtcbiAgICB9XG5cbiAgICB3MSA9IHcwO1xuICAgIG4xID0gbjA7XG4gICAgZTEgPSBlMDtcbiAgICBzMSA9IHMwO1xuXG4gICAgdmFyIGdyb3VwID0gc2VsZWN0KHRoYXQpXG4gICAgICAgIC5hdHRyKFwicG9pbnRlci1ldmVudHNcIiwgXCJub25lXCIpO1xuXG4gICAgdmFyIG92ZXJsYXkgPSBncm91cC5zZWxlY3RBbGwoXCIub3ZlcmxheVwiKVxuICAgICAgICAuYXR0cihcImN1cnNvclwiLCBjdXJzb3JzW3R5cGVdKTtcblxuICAgIGlmIChldmVudC50b3VjaGVzKSB7XG4gICAgICBlbWl0Lm1vdmVkID0gbW92ZWQ7XG4gICAgICBlbWl0LmVuZGVkID0gZW5kZWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciB2aWV3ID0gc2VsZWN0KGV2ZW50LnZpZXcpXG4gICAgICAgICAgLm9uKFwibW91c2Vtb3ZlLmJydXNoXCIsIG1vdmVkLCB0cnVlKVxuICAgICAgICAgIC5vbihcIm1vdXNldXAuYnJ1c2hcIiwgZW5kZWQsIHRydWUpO1xuICAgICAgaWYgKGtleXMpIHZpZXdcbiAgICAgICAgICAub24oXCJrZXlkb3duLmJydXNoXCIsIGtleWRvd25lZCwgdHJ1ZSlcbiAgICAgICAgICAub24oXCJrZXl1cC5icnVzaFwiLCBrZXl1cHBlZCwgdHJ1ZSlcblxuICAgICAgZHJhZ0Rpc2FibGUoZXZlbnQudmlldyk7XG4gICAgfVxuXG4gICAgcmVkcmF3LmNhbGwodGhhdCk7XG4gICAgZW1pdC5zdGFydChldmVudCwgbW9kZS5uYW1lKTtcblxuICAgIGZ1bmN0aW9uIG1vdmVkKGV2ZW50KSB7XG4gICAgICBmb3IgKGNvbnN0IHAgb2YgZXZlbnQuY2hhbmdlZFRvdWNoZXMgfHwgW2V2ZW50XSkge1xuICAgICAgICBmb3IgKGNvbnN0IGQgb2YgcG9pbnRzKVxuICAgICAgICAgIGlmIChkLmlkZW50aWZpZXIgPT09IHAuaWRlbnRpZmllcikgZC5jdXIgPSBwb2ludGVyKHAsIHRoYXQpO1xuICAgICAgfVxuICAgICAgaWYgKHNoaWZ0aW5nICYmICFsb2NrWCAmJiAhbG9ja1kgJiYgcG9pbnRzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICBjb25zdCBwb2ludCA9IHBvaW50c1swXTtcbiAgICAgICAgaWYgKGFicyhwb2ludC5jdXJbMF0gLSBwb2ludFswXSkgPiBhYnMocG9pbnQuY3VyWzFdIC0gcG9pbnRbMV0pKVxuICAgICAgICAgIGxvY2tZID0gdHJ1ZTtcbiAgICAgICAgZWxzZVxuICAgICAgICAgIGxvY2tYID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGZvciAoY29uc3QgcG9pbnQgb2YgcG9pbnRzKVxuICAgICAgICBpZiAocG9pbnQuY3VyKSBwb2ludFswXSA9IHBvaW50LmN1clswXSwgcG9pbnRbMV0gPSBwb2ludC5jdXJbMV07XG4gICAgICBtb3ZpbmcgPSB0cnVlO1xuICAgICAgbm9ldmVudChldmVudCk7XG4gICAgICBtb3ZlKGV2ZW50KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBtb3ZlKGV2ZW50KSB7XG4gICAgICBjb25zdCBwb2ludCA9IHBvaW50c1swXSwgcG9pbnQwID0gcG9pbnQucG9pbnQwO1xuICAgICAgdmFyIHQ7XG5cbiAgICAgIGR4ID0gcG9pbnRbMF0gLSBwb2ludDBbMF07XG4gICAgICBkeSA9IHBvaW50WzFdIC0gcG9pbnQwWzFdO1xuXG4gICAgICBzd2l0Y2ggKG1vZGUpIHtcbiAgICAgICAgY2FzZSBNT0RFX1NQQUNFOlxuICAgICAgICBjYXNlIE1PREVfRFJBRzoge1xuICAgICAgICAgIGlmIChzaWduWCkgZHggPSBtYXgoVyAtIHcwLCBtaW4oRSAtIGUwLCBkeCkpLCB3MSA9IHcwICsgZHgsIGUxID0gZTAgKyBkeDtcbiAgICAgICAgICBpZiAoc2lnblkpIGR5ID0gbWF4KE4gLSBuMCwgbWluKFMgLSBzMCwgZHkpKSwgbjEgPSBuMCArIGR5LCBzMSA9IHMwICsgZHk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBNT0RFX0hBTkRMRToge1xuICAgICAgICAgIGlmIChwb2ludHNbMV0pIHtcbiAgICAgICAgICAgIGlmIChzaWduWCkgdzEgPSBtYXgoVywgbWluKEUsIHBvaW50c1swXVswXSkpLCBlMSA9IG1heChXLCBtaW4oRSwgcG9pbnRzWzFdWzBdKSksIHNpZ25YID0gMTtcbiAgICAgICAgICAgIGlmIChzaWduWSkgbjEgPSBtYXgoTiwgbWluKFMsIHBvaW50c1swXVsxXSkpLCBzMSA9IG1heChOLCBtaW4oUywgcG9pbnRzWzFdWzFdKSksIHNpZ25ZID0gMTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHNpZ25YIDwgMCkgZHggPSBtYXgoVyAtIHcwLCBtaW4oRSAtIHcwLCBkeCkpLCB3MSA9IHcwICsgZHgsIGUxID0gZTA7XG4gICAgICAgICAgICBlbHNlIGlmIChzaWduWCA+IDApIGR4ID0gbWF4KFcgLSBlMCwgbWluKEUgLSBlMCwgZHgpKSwgdzEgPSB3MCwgZTEgPSBlMCArIGR4O1xuICAgICAgICAgICAgaWYgKHNpZ25ZIDwgMCkgZHkgPSBtYXgoTiAtIG4wLCBtaW4oUyAtIG4wLCBkeSkpLCBuMSA9IG4wICsgZHksIHMxID0gczA7XG4gICAgICAgICAgICBlbHNlIGlmIChzaWduWSA+IDApIGR5ID0gbWF4KE4gLSBzMCwgbWluKFMgLSBzMCwgZHkpKSwgbjEgPSBuMCwgczEgPSBzMCArIGR5O1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIE1PREVfQ0VOVEVSOiB7XG4gICAgICAgICAgaWYgKHNpZ25YKSB3MSA9IG1heChXLCBtaW4oRSwgdzAgLSBkeCAqIHNpZ25YKSksIGUxID0gbWF4KFcsIG1pbihFLCBlMCArIGR4ICogc2lnblgpKTtcbiAgICAgICAgICBpZiAoc2lnblkpIG4xID0gbWF4KE4sIG1pbihTLCBuMCAtIGR5ICogc2lnblkpKSwgczEgPSBtYXgoTiwgbWluKFMsIHMwICsgZHkgKiBzaWduWSkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChlMSA8IHcxKSB7XG4gICAgICAgIHNpZ25YICo9IC0xO1xuICAgICAgICB0ID0gdzAsIHcwID0gZTAsIGUwID0gdDtcbiAgICAgICAgdCA9IHcxLCB3MSA9IGUxLCBlMSA9IHQ7XG4gICAgICAgIGlmICh0eXBlIGluIGZsaXBYKSBvdmVybGF5LmF0dHIoXCJjdXJzb3JcIiwgY3Vyc29yc1t0eXBlID0gZmxpcFhbdHlwZV1dKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHMxIDwgbjEpIHtcbiAgICAgICAgc2lnblkgKj0gLTE7XG4gICAgICAgIHQgPSBuMCwgbjAgPSBzMCwgczAgPSB0O1xuICAgICAgICB0ID0gbjEsIG4xID0gczEsIHMxID0gdDtcbiAgICAgICAgaWYgKHR5cGUgaW4gZmxpcFkpIG92ZXJsYXkuYXR0cihcImN1cnNvclwiLCBjdXJzb3JzW3R5cGUgPSBmbGlwWVt0eXBlXV0pO1xuICAgICAgfVxuXG4gICAgICBpZiAoc3RhdGUuc2VsZWN0aW9uKSBzZWxlY3Rpb24gPSBzdGF0ZS5zZWxlY3Rpb247IC8vIE1heSBiZSBzZXQgYnkgYnJ1c2gubW92ZSFcbiAgICAgIGlmIChsb2NrWCkgdzEgPSBzZWxlY3Rpb25bMF1bMF0sIGUxID0gc2VsZWN0aW9uWzFdWzBdO1xuICAgICAgaWYgKGxvY2tZKSBuMSA9IHNlbGVjdGlvblswXVsxXSwgczEgPSBzZWxlY3Rpb25bMV1bMV07XG5cbiAgICAgIGlmIChzZWxlY3Rpb25bMF1bMF0gIT09IHcxXG4gICAgICAgICAgfHwgc2VsZWN0aW9uWzBdWzFdICE9PSBuMVxuICAgICAgICAgIHx8IHNlbGVjdGlvblsxXVswXSAhPT0gZTFcbiAgICAgICAgICB8fCBzZWxlY3Rpb25bMV1bMV0gIT09IHMxKSB7XG4gICAgICAgIHN0YXRlLnNlbGVjdGlvbiA9IFtbdzEsIG4xXSwgW2UxLCBzMV1dO1xuICAgICAgICByZWRyYXcuY2FsbCh0aGF0KTtcbiAgICAgICAgZW1pdC5icnVzaChldmVudCwgbW9kZS5uYW1lKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBlbmRlZChldmVudCkge1xuICAgICAgbm9wcm9wYWdhdGlvbihldmVudCk7XG4gICAgICBpZiAoZXZlbnQudG91Y2hlcykge1xuICAgICAgICBpZiAoZXZlbnQudG91Y2hlcy5sZW5ndGgpIHJldHVybjtcbiAgICAgICAgaWYgKHRvdWNoZW5kaW5nKSBjbGVhclRpbWVvdXQodG91Y2hlbmRpbmcpO1xuICAgICAgICB0b3VjaGVuZGluZyA9IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IHRvdWNoZW5kaW5nID0gbnVsbDsgfSwgNTAwKTsgLy8gR2hvc3QgY2xpY2tzIGFyZSBkZWxheWVkIVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZHJhZ0VuYWJsZShldmVudC52aWV3LCBtb3ZpbmcpO1xuICAgICAgICB2aWV3Lm9uKFwia2V5ZG93bi5icnVzaCBrZXl1cC5icnVzaCBtb3VzZW1vdmUuYnJ1c2ggbW91c2V1cC5icnVzaFwiLCBudWxsKTtcbiAgICAgIH1cbiAgICAgIGdyb3VwLmF0dHIoXCJwb2ludGVyLWV2ZW50c1wiLCBcImFsbFwiKTtcbiAgICAgIG92ZXJsYXkuYXR0cihcImN1cnNvclwiLCBjdXJzb3JzLm92ZXJsYXkpO1xuICAgICAgaWYgKHN0YXRlLnNlbGVjdGlvbikgc2VsZWN0aW9uID0gc3RhdGUuc2VsZWN0aW9uOyAvLyBNYXkgYmUgc2V0IGJ5IGJydXNoLm1vdmUgKG9uIHN0YXJ0KSFcbiAgICAgIGlmIChlbXB0eShzZWxlY3Rpb24pKSBzdGF0ZS5zZWxlY3Rpb24gPSBudWxsLCByZWRyYXcuY2FsbCh0aGF0KTtcbiAgICAgIGVtaXQuZW5kKGV2ZW50LCBtb2RlLm5hbWUpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGtleWRvd25lZChldmVudCkge1xuICAgICAgc3dpdGNoIChldmVudC5rZXlDb2RlKSB7XG4gICAgICAgIGNhc2UgMTY6IHsgLy8gU0hJRlRcbiAgICAgICAgICBzaGlmdGluZyA9IHNpZ25YICYmIHNpZ25ZO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgMTg6IHsgLy8gQUxUXG4gICAgICAgICAgaWYgKG1vZGUgPT09IE1PREVfSEFORExFKSB7XG4gICAgICAgICAgICBpZiAoc2lnblgpIGUwID0gZTEgLSBkeCAqIHNpZ25YLCB3MCA9IHcxICsgZHggKiBzaWduWDtcbiAgICAgICAgICAgIGlmIChzaWduWSkgczAgPSBzMSAtIGR5ICogc2lnblksIG4wID0gbjEgKyBkeSAqIHNpZ25ZO1xuICAgICAgICAgICAgbW9kZSA9IE1PREVfQ0VOVEVSO1xuICAgICAgICAgICAgbW92ZShldmVudCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgMzI6IHsgLy8gU1BBQ0U7IHRha2VzIHByaW9yaXR5IG92ZXIgQUxUXG4gICAgICAgICAgaWYgKG1vZGUgPT09IE1PREVfSEFORExFIHx8IG1vZGUgPT09IE1PREVfQ0VOVEVSKSB7XG4gICAgICAgICAgICBpZiAoc2lnblggPCAwKSBlMCA9IGUxIC0gZHg7IGVsc2UgaWYgKHNpZ25YID4gMCkgdzAgPSB3MSAtIGR4O1xuICAgICAgICAgICAgaWYgKHNpZ25ZIDwgMCkgczAgPSBzMSAtIGR5OyBlbHNlIGlmIChzaWduWSA+IDApIG4wID0gbjEgLSBkeTtcbiAgICAgICAgICAgIG1vZGUgPSBNT0RFX1NQQUNFO1xuICAgICAgICAgICAgb3ZlcmxheS5hdHRyKFwiY3Vyc29yXCIsIGN1cnNvcnMuc2VsZWN0aW9uKTtcbiAgICAgICAgICAgIG1vdmUoZXZlbnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiByZXR1cm47XG4gICAgICB9XG4gICAgICBub2V2ZW50KGV2ZW50KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBrZXl1cHBlZChldmVudCkge1xuICAgICAgc3dpdGNoIChldmVudC5rZXlDb2RlKSB7XG4gICAgICAgIGNhc2UgMTY6IHsgLy8gU0hJRlRcbiAgICAgICAgICBpZiAoc2hpZnRpbmcpIHtcbiAgICAgICAgICAgIGxvY2tYID0gbG9ja1kgPSBzaGlmdGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgbW92ZShldmVudCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgMTg6IHsgLy8gQUxUXG4gICAgICAgICAgaWYgKG1vZGUgPT09IE1PREVfQ0VOVEVSKSB7XG4gICAgICAgICAgICBpZiAoc2lnblggPCAwKSBlMCA9IGUxOyBlbHNlIGlmIChzaWduWCA+IDApIHcwID0gdzE7XG4gICAgICAgICAgICBpZiAoc2lnblkgPCAwKSBzMCA9IHMxOyBlbHNlIGlmIChzaWduWSA+IDApIG4wID0gbjE7XG4gICAgICAgICAgICBtb2RlID0gTU9ERV9IQU5ETEU7XG4gICAgICAgICAgICBtb3ZlKGV2ZW50KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAzMjogeyAvLyBTUEFDRVxuICAgICAgICAgIGlmIChtb2RlID09PSBNT0RFX1NQQUNFKSB7XG4gICAgICAgICAgICBpZiAoZXZlbnQuYWx0S2V5KSB7XG4gICAgICAgICAgICAgIGlmIChzaWduWCkgZTAgPSBlMSAtIGR4ICogc2lnblgsIHcwID0gdzEgKyBkeCAqIHNpZ25YO1xuICAgICAgICAgICAgICBpZiAoc2lnblkpIHMwID0gczEgLSBkeSAqIHNpZ25ZLCBuMCA9IG4xICsgZHkgKiBzaWduWTtcbiAgICAgICAgICAgICAgbW9kZSA9IE1PREVfQ0VOVEVSO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgaWYgKHNpZ25YIDwgMCkgZTAgPSBlMTsgZWxzZSBpZiAoc2lnblggPiAwKSB3MCA9IHcxO1xuICAgICAgICAgICAgICBpZiAoc2lnblkgPCAwKSBzMCA9IHMxOyBlbHNlIGlmIChzaWduWSA+IDApIG4wID0gbjE7XG4gICAgICAgICAgICAgIG1vZGUgPSBNT0RFX0hBTkRMRTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG92ZXJsYXkuYXR0cihcImN1cnNvclwiLCBjdXJzb3JzW3R5cGVdKTtcbiAgICAgICAgICAgIG1vdmUoZXZlbnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiByZXR1cm47XG4gICAgICB9XG4gICAgICBub2V2ZW50KGV2ZW50KTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiB0b3VjaG1vdmVkKGV2ZW50KSB7XG4gICAgZW1pdHRlcih0aGlzLCBhcmd1bWVudHMpLm1vdmVkKGV2ZW50KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHRvdWNoZW5kZWQoZXZlbnQpIHtcbiAgICBlbWl0dGVyKHRoaXMsIGFyZ3VtZW50cykuZW5kZWQoZXZlbnQpO1xuICB9XG5cbiAgZnVuY3Rpb24gaW5pdGlhbGl6ZSgpIHtcbiAgICB2YXIgc3RhdGUgPSB0aGlzLl9fYnJ1c2ggfHwge3NlbGVjdGlvbjogbnVsbH07XG4gICAgc3RhdGUuZXh0ZW50ID0gbnVtYmVyMihleHRlbnQuYXBwbHkodGhpcywgYXJndW1lbnRzKSk7XG4gICAgc3RhdGUuZGltID0gZGltO1xuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxuXG4gIGJydXNoLmV4dGVudCA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChleHRlbnQgPSB0eXBlb2YgXyA9PT0gXCJmdW5jdGlvblwiID8gXyA6IGNvbnN0YW50KG51bWJlcjIoXykpLCBicnVzaCkgOiBleHRlbnQ7XG4gIH07XG5cbiAgYnJ1c2guZmlsdGVyID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKGZpbHRlciA9IHR5cGVvZiBfID09PSBcImZ1bmN0aW9uXCIgPyBfIDogY29uc3RhbnQoISFfKSwgYnJ1c2gpIDogZmlsdGVyO1xuICB9O1xuXG4gIGJydXNoLnRvdWNoYWJsZSA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/ICh0b3VjaGFibGUgPSB0eXBlb2YgXyA9PT0gXCJmdW5jdGlvblwiID8gXyA6IGNvbnN0YW50KCEhXyksIGJydXNoKSA6IHRvdWNoYWJsZTtcbiAgfTtcblxuICBicnVzaC5oYW5kbGVTaXplID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKGhhbmRsZVNpemUgPSArXywgYnJ1c2gpIDogaGFuZGxlU2l6ZTtcbiAgfTtcblxuICBicnVzaC5rZXlNb2RpZmllcnMgPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAoa2V5cyA9ICEhXywgYnJ1c2gpIDoga2V5cztcbiAgfTtcblxuICBicnVzaC5vbiA9IGZ1bmN0aW9uKCkge1xuICAgIHZhciB2YWx1ZSA9IGxpc3RlbmVycy5vbi5hcHBseShsaXN0ZW5lcnMsIGFyZ3VtZW50cyk7XG4gICAgcmV0dXJuIHZhbHVlID09PSBsaXN0ZW5lcnMgPyBicnVzaCA6IHZhbHVlO1xuICB9O1xuXG4gIHJldHVybiBicnVzaDtcbn1cbiJdLCJuYW1lcyI6WyJkaXNwYXRjaCIsImRyYWdEaXNhYmxlIiwiZHJhZ0VuYWJsZSIsImludGVycG9sYXRlIiwicG9pbnRlciIsInNlbGVjdCIsImludGVycnVwdCIsImNvbnN0YW50IiwiQnJ1c2hFdmVudCIsIm5vZXZlbnQiLCJub3Byb3BhZ2F0aW9uIiwiTU9ERV9EUkFHIiwibmFtZSIsIk1PREVfU1BBQ0UiLCJNT0RFX0hBTkRMRSIsIk1PREVfQ0VOVEVSIiwiYWJzIiwibWF4IiwibWluIiwiTWF0aCIsIm51bWJlcjEiLCJlIiwibnVtYmVyMiIsIlgiLCJoYW5kbGVzIiwibWFwIiwidHlwZSIsImlucHV0IiwieCIsIm91dHB1dCIsInh5IiwiWSIsInkiLCJYWSIsImN1cnNvcnMiLCJvdmVybGF5Iiwic2VsZWN0aW9uIiwibiIsInMiLCJ3IiwibnciLCJuZSIsInNlIiwic3ciLCJmbGlwWCIsImZsaXBZIiwic2lnbnNYIiwic2lnbnNZIiwidCIsImRlZmF1bHRGaWx0ZXIiLCJldmVudCIsImN0cmxLZXkiLCJidXR0b24iLCJkZWZhdWx0RXh0ZW50Iiwic3ZnIiwib3duZXJTVkdFbGVtZW50IiwiaGFzQXR0cmlidXRlIiwidmlld0JveCIsImJhc2VWYWwiLCJ3aWR0aCIsImhlaWdodCIsInZhbHVlIiwiZGVmYXVsdFRvdWNoYWJsZSIsIm5hdmlnYXRvciIsIm1heFRvdWNoUG9pbnRzIiwibG9jYWwiLCJub2RlIiwiX19icnVzaCIsInBhcmVudE5vZGUiLCJlbXB0eSIsImV4dGVudCIsImJydXNoU2VsZWN0aW9uIiwic3RhdGUiLCJkaW0iLCJicnVzaFgiLCJicnVzaCIsImJydXNoWSIsImZpbHRlciIsInRvdWNoYWJsZSIsImtleXMiLCJsaXN0ZW5lcnMiLCJoYW5kbGVTaXplIiwidG91Y2hlbmRpbmciLCJncm91cCIsInByb3BlcnR5IiwiaW5pdGlhbGl6ZSIsInNlbGVjdEFsbCIsImRhdGEiLCJlbnRlciIsImFwcGVuZCIsImF0dHIiLCJtZXJnZSIsImVhY2giLCJoYW5kbGUiLCJkIiwiZXhpdCIsInJlbW92ZSIsInJlZHJhdyIsIm9uIiwic3RhcnRlZCIsInRvdWNobW92ZWQiLCJ0b3VjaGVuZGVkIiwic3R5bGUiLCJtb3ZlIiwidHdlZW4iLCJlbWl0dGVyIiwiYXJndW1lbnRzIiwiYmVmb3Jlc3RhcnQiLCJzdGFydCIsImVuZCIsInRoYXQiLCJlbWl0Iiwic2VsZWN0aW9uMCIsInNlbGVjdGlvbjEiLCJhcHBseSIsImkiLCJjYWxsIiwiYXJncyIsImNsZWFyIiwibGVuZ3RoIiwiY2xlYW4iLCJFbWl0dGVyIiwiYWN0aXZlIiwicHJvdG90eXBlIiwic3RhcnRpbmciLCJtb2RlIiwiZGF0dW0iLCJzb3VyY2VFdmVudCIsInRhcmdldCIsInRvdWNoZXMiLCJfX2RhdGFfXyIsIm1ldGFLZXkiLCJhbHRLZXkiLCJzaWduWCIsInNpZ25ZIiwiVyIsIncwIiwidzEiLCJOIiwibjAiLCJuMSIsIkUiLCJlMCIsImUxIiwiUyIsInMwIiwiczEiLCJkeCIsImR5IiwibW92aW5nIiwic2hpZnRpbmciLCJzaGlmdEtleSIsImxvY2tYIiwibG9ja1kiLCJwb2ludHMiLCJBcnJheSIsImZyb20iLCJpZGVudGlmaWVyIiwicG9pbnQwIiwic2xpY2UiLCJwdHMiLCJtb3ZlZCIsImVuZGVkIiwidmlldyIsImtleWRvd25lZCIsImtleXVwcGVkIiwicCIsImNoYW5nZWRUb3VjaGVzIiwiY3VyIiwicG9pbnQiLCJjbGVhclRpbWVvdXQiLCJzZXRUaW1lb3V0Iiwia2V5Q29kZSIsIl8iLCJrZXlNb2RpZmllcnMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/d3-brush/src/brush.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(ssr)/./node_modules/d3-brush/src/constant.js":
|
|
/*!***********************************************!*\
|
|
!*** ./node_modules/d3-brush/src/constant.js ***!
|
|
\***********************************************/
|
|
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((x)=>()=>x);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZDMtYnJ1c2gvc3JjL2NvbnN0YW50LmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQSxpRUFBZUEsQ0FBQUEsSUFBSyxJQUFNQSxDQUFBQSxFQUFFIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbmV4dGNoYXQvLi9ub2RlX21vZHVsZXMvZDMtYnJ1c2gvc3JjL2NvbnN0YW50LmpzPzdhMDkiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgeCA9PiAoKSA9PiB4O1xuIl0sIm5hbWVzIjpbIngiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/d3-brush/src/constant.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(ssr)/./node_modules/d3-brush/src/event.js":
|
|
/*!********************************************!*\
|
|
!*** ./node_modules/d3-brush/src/event.js ***!
|
|
\********************************************/
|
|
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ BrushEvent)\n/* harmony export */ });\nfunction BrushEvent(type, { sourceEvent, target, selection, mode, dispatch }) {\n Object.defineProperties(this, {\n type: {\n value: type,\n enumerable: true,\n configurable: true\n },\n sourceEvent: {\n value: sourceEvent,\n enumerable: true,\n configurable: true\n },\n target: {\n value: target,\n enumerable: true,\n configurable: true\n },\n selection: {\n value: selection,\n enumerable: true,\n configurable: true\n },\n mode: {\n value: mode,\n enumerable: true,\n configurable: true\n },\n _: {\n value: dispatch\n }\n });\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZDMtYnJ1c2gvc3JjL2V2ZW50LmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBZSxTQUFTQSxXQUFXQyxJQUFJLEVBQUUsRUFDdkNDLFdBQVcsRUFDWEMsTUFBTSxFQUNOQyxTQUFTLEVBQ1RDLElBQUksRUFDSkMsUUFBUSxFQUNUO0lBQ0NDLE9BQU9DLGdCQUFnQixDQUFDLElBQUksRUFBRTtRQUM1QlAsTUFBTTtZQUFDUSxPQUFPUjtZQUFNUyxZQUFZO1lBQU1DLGNBQWM7UUFBSTtRQUN4RFQsYUFBYTtZQUFDTyxPQUFPUDtZQUFhUSxZQUFZO1lBQU1DLGNBQWM7UUFBSTtRQUN0RVIsUUFBUTtZQUFDTSxPQUFPTjtZQUFRTyxZQUFZO1lBQU1DLGNBQWM7UUFBSTtRQUM1RFAsV0FBVztZQUFDSyxPQUFPTDtZQUFXTSxZQUFZO1lBQU1DLGNBQWM7UUFBSTtRQUNsRU4sTUFBTTtZQUFDSSxPQUFPSjtZQUFNSyxZQUFZO1lBQU1DLGNBQWM7UUFBSTtRQUN4REMsR0FBRztZQUFDSCxPQUFPSDtRQUFRO0lBQ3JCO0FBQ0YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9uZXh0Y2hhdC8uL25vZGVfbW9kdWxlcy9kMy1icnVzaC9zcmMvZXZlbnQuanM/MGE1OCJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBCcnVzaEV2ZW50KHR5cGUsIHtcbiAgc291cmNlRXZlbnQsXG4gIHRhcmdldCxcbiAgc2VsZWN0aW9uLFxuICBtb2RlLFxuICBkaXNwYXRjaFxufSkge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyh0aGlzLCB7XG4gICAgdHlwZToge3ZhbHVlOiB0eXBlLCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWV9LFxuICAgIHNvdXJjZUV2ZW50OiB7dmFsdWU6IHNvdXJjZUV2ZW50LCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWV9LFxuICAgIHRhcmdldDoge3ZhbHVlOiB0YXJnZXQsIGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZX0sXG4gICAgc2VsZWN0aW9uOiB7dmFsdWU6IHNlbGVjdGlvbiwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlfSxcbiAgICBtb2RlOiB7dmFsdWU6IG1vZGUsIGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZX0sXG4gICAgXzoge3ZhbHVlOiBkaXNwYXRjaH1cbiAgfSk7XG59XG4iXSwibmFtZXMiOlsiQnJ1c2hFdmVudCIsInR5cGUiLCJzb3VyY2VFdmVudCIsInRhcmdldCIsInNlbGVjdGlvbiIsIm1vZGUiLCJkaXNwYXRjaCIsIk9iamVjdCIsImRlZmluZVByb3BlcnRpZXMiLCJ2YWx1ZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJfIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/d3-brush/src/event.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(ssr)/./node_modules/d3-brush/src/index.js":
|
|
/*!********************************************!*\
|
|
!*** ./node_modules/d3-brush/src/index.js ***!
|
|
\********************************************/
|
|
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ brush: () => (/* reexport safe */ _brush_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]),\n/* harmony export */ brushSelection: () => (/* reexport safe */ _brush_js__WEBPACK_IMPORTED_MODULE_0__.brushSelection),\n/* harmony export */ brushX: () => (/* reexport safe */ _brush_js__WEBPACK_IMPORTED_MODULE_0__.brushX),\n/* harmony export */ brushY: () => (/* reexport safe */ _brush_js__WEBPACK_IMPORTED_MODULE_0__.brushY)\n/* harmony export */ });\n/* harmony import */ var _brush_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./brush.js */ \"(ssr)/./node_modules/d3-brush/src/brush.js\");\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZDMtYnJ1c2gvc3JjL2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBS29CIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbmV4dGNoYXQvLi9ub2RlX21vZHVsZXMvZDMtYnJ1c2gvc3JjL2luZGV4LmpzP2MxOTciXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHtcbiAgZGVmYXVsdCBhcyBicnVzaCxcbiAgYnJ1c2hYLFxuICBicnVzaFksXG4gIGJydXNoU2VsZWN0aW9uXG59IGZyb20gXCIuL2JydXNoLmpzXCI7XG4iXSwibmFtZXMiOlsiZGVmYXVsdCIsImJydXNoIiwiYnJ1c2hYIiwiYnJ1c2hZIiwiYnJ1c2hTZWxlY3Rpb24iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/d3-brush/src/index.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(ssr)/./node_modules/d3-brush/src/noevent.js":
|
|
/*!**********************************************!*\
|
|
!*** ./node_modules/d3-brush/src/noevent.js ***!
|
|
\**********************************************/
|
|
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ nopropagation: () => (/* binding */ nopropagation)\n/* harmony export */ });\nfunction nopropagation(event) {\n event.stopImmediatePropagation();\n}\n/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZDMtYnJ1c2gvc3JjL25vZXZlbnQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBTyxTQUFTQSxjQUFjQyxLQUFLO0lBQ2pDQSxNQUFNQyx3QkFBd0I7QUFDaEM7QUFFQSw2QkFBZSxvQ0FBU0QsS0FBSztJQUMzQkEsTUFBTUUsY0FBYztJQUNwQkYsTUFBTUMsd0JBQXdCO0FBQ2hDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbmV4dGNoYXQvLi9ub2RlX21vZHVsZXMvZDMtYnJ1c2gvc3JjL25vZXZlbnQuanM/OTk3OCJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gbm9wcm9wYWdhdGlvbihldmVudCkge1xuICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oZXZlbnQpIHtcbiAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG59XG4iXSwibmFtZXMiOlsibm9wcm9wYWdhdGlvbiIsImV2ZW50Iiwic3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uIiwicHJldmVudERlZmF1bHQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/d3-brush/src/noevent.js\n");
|
|
|
|
/***/ })
|
|
|
|
};
|
|
; |