@preply/ds-docs 0.55.1 → 0.56.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[21],{"../../node_modules/color-convert/conversions.js":function(module,exports,__webpack_require__){eval('function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\n__webpack_require__("../../node_modules/core-js/modules/es.object.keys.js");\n\n__webpack_require__("../../node_modules/core-js/modules/es.object.define-property.js");\n\n__webpack_require__("../../node_modules/core-js/modules/es.object.to-string.js");\n\n__webpack_require__("../../node_modules/core-js/modules/es.regexp.to-string.js");\n\n__webpack_require__("../../node_modules/core-js/modules/es.date.to-string.js");\n\n__webpack_require__("../../node_modules/core-js/modules/es.string.match.js");\n\n__webpack_require__("../../node_modules/core-js/modules/es.regexp.exec.js");\n\n__webpack_require__("../../node_modules/core-js/modules/es.array.join.js");\n\n__webpack_require__("../../node_modules/core-js/modules/es.array.map.js");\n\n__webpack_require__("../../node_modules/core-js/modules/es.string.split.js");\n\n__webpack_require__("../../node_modules/core-js/modules/es.parse-int.js");\n\n__webpack_require__("../../node_modules/core-js/modules/es.array.is-array.js");\n\n__webpack_require__("../../node_modules/core-js/modules/es.symbol.js");\n\n__webpack_require__("../../node_modules/core-js/modules/es.symbol.description.js");\n\n__webpack_require__("../../node_modules/core-js/modules/es.symbol.iterator.js");\n\n__webpack_require__("../../node_modules/core-js/modules/es.string.iterator.js");\n\n__webpack_require__("../../node_modules/core-js/modules/es.array.iterator.js");\n\n__webpack_require__("../../node_modules/core-js/modules/web.dom-collections.iterator.js");\n\n__webpack_require__("../../node_modules/core-js/modules/es.array.slice.js");\n\n__webpack_require__("../../node_modules/core-js/modules/es.function.name.js");\n\n__webpack_require__("../../node_modules/core-js/modules/es.array.from.js");\n\n/* MIT license */\n\n/* eslint-disable no-mixed-operators */\nvar cssKeywords = __webpack_require__("../../node_modules/color-convert/node_modules/color-name/index.js"); // NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\n\nvar reverseKeywords = {};\n\nfor (var _i = 0, _Object$keys = Object.keys(cssKeywords); _i < _Object$keys.length; _i++) {\n var key = _Object$keys[_i];\n reverseKeywords[cssKeywords[key]] = key;\n}\n\nvar convert = {\n rgb: {\n channels: 3,\n labels: \'rgb\'\n },\n hsl: {\n channels: 3,\n labels: \'hsl\'\n },\n hsv: {\n channels: 3,\n labels: \'hsv\'\n },\n hwb: {\n channels: 3,\n labels: \'hwb\'\n },\n cmyk: {\n channels: 4,\n labels: \'cmyk\'\n },\n xyz: {\n channels: 3,\n labels: \'xyz\'\n },\n lab: {\n channels: 3,\n labels: \'lab\'\n },\n lch: {\n channels: 3,\n labels: \'lch\'\n },\n hex: {\n channels: 1,\n labels: [\'hex\']\n },\n keyword: {\n channels: 1,\n labels: [\'keyword\']\n },\n ansi16: {\n channels: 1,\n labels: [\'ansi16\']\n },\n ansi256: {\n channels: 1,\n labels: [\'ansi256\']\n },\n hcg: {\n channels: 3,\n labels: [\'h\', \'c\', \'g\']\n },\n apple: {\n channels: 3,\n labels: [\'r16\', \'g16\', \'b16\']\n },\n gray: {\n channels: 1,\n labels: [\'gray\']\n }\n};\nmodule.exports = convert; // Hide .channels and .labels properties\n\nfor (var _i2 = 0, _Object$keys2 = Object.keys(convert); _i2 < _Object$keys2.length; _i2++) {\n var model = _Object$keys2[_i2];\n\n if (!(\'channels\' in convert[model])) {\n throw new Error(\'missing channels property: \' + model);\n }\n\n if (!(\'labels\' in convert[model])) {\n throw new Error(\'missing channel labels property: \' + model);\n }\n\n if (convert[model].labels.length !== convert[model].channels) {\n throw new Error(\'channel and label counts mismatch: \' + model);\n }\n\n var _convert$model = convert[model],\n channels = _convert$model.channels,\n labels = _convert$model.labels;\n delete convert[model].channels;\n delete convert[model].labels;\n Object.defineProperty(convert[model], \'channels\', {\n value: channels\n });\n Object.defineProperty(convert[model], \'labels\', {\n value: labels\n });\n}\n\nconvert.rgb.hsl = function (rgb) {\n var r = rgb[0] / 255;\n var g = rgb[1] / 255;\n var b = rgb[2] / 255;\n var min = Math.min(r, g, b);\n var max = Math.max(r, g, b);\n var delta = max - min;\n var h;\n var s;\n\n if (max === min) {\n h = 0;\n } else if (r === max) {\n h = (g - b) / delta;\n } else if (g === max) {\n h = 2 + (b - r) / delta;\n } else if (b === max) {\n h = 4 + (r - g) / delta;\n }\n\n h = Math.min(h * 60, 360);\n\n if (h < 0) {\n h += 360;\n }\n\n var l = (min + max) / 2;\n\n if (max === min) {\n s = 0;\n } else if (l <= 0.5) {\n s = delta / (max + min);\n } else {\n s = delta / (2 - max - min);\n }\n\n return [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n var rdif;\n var gdif;\n var bdif;\n var h;\n var s;\n var r = rgb[0] / 255;\n var g = rgb[1] / 255;\n var b = rgb[2] / 255;\n var v = Math.max(r, g, b);\n var diff = v - Math.min(r, g, b);\n\n var diffc = function diffc(c) {\n return (v - c) / 6 / diff + 1 / 2;\n };\n\n if (diff === 0) {\n h = 0;\n s = 0;\n } else {\n s = diff / v;\n rdif = diffc(r);\n gdif = diffc(g);\n bdif = diffc(b);\n\n if (r === v) {\n h = bdif - gdif;\n } else if (g === v) {\n h = 1 / 3 + rdif - bdif;\n } else if (b === v) {\n h = 2 / 3 + gdif - rdif;\n }\n\n if (h < 0) {\n h += 1;\n } else if (h > 1) {\n h -= 1;\n }\n }\n\n return [h * 360, s * 100, v * 100];\n};\n\nconvert.rgb.hwb = function (rgb) {\n var r = rgb[0];\n var g = rgb[1];\n var b = rgb[2];\n var h = convert.rgb.hsl(rgb)[0];\n var w = 1 / 255 * Math.min(r, Math.min(g, b));\n b = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n return [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n var r = rgb[0] / 255;\n var g = rgb[1] / 255;\n var b = rgb[2] / 255;\n var k = Math.min(1 - r, 1 - g, 1 - b);\n var c = (1 - r - k) / (1 - k) || 0;\n var m = (1 - g - k) / (1 - k) || 0;\n var y = (1 - b - k) / (1 - k) || 0;\n return [c * 100, m * 100, y * 100, k * 100];\n};\n\nfunction comparativeDistance(x, y) {\n /*\n \tSee https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n */\n return Math.pow(x[0] - y[0], 2) + Math.pow(x[1] - y[1], 2) + Math.pow(x[2] - y[2], 2);\n}\n\nconvert.rgb.keyword = function (rgb) {\n var reversed = reverseKeywords[rgb];\n\n if (reversed) {\n return reversed;\n }\n\n var currentClosestDistance = Infinity;\n var currentClosestKeyword;\n\n for (var _i3 = 0, _Object$keys3 = Object.keys(cssKeywords); _i3 < _Object$keys3.length; _i3++) {\n var keyword = _Object$keys3[_i3];\n var value = cssKeywords[keyword]; // Compute comparative distance\n\n var distance = comparativeDistance(rgb, value); // Check if its less, if so set as closest\n\n if (distance < currentClosestDistance) {\n currentClosestDistance = distance;\n currentClosestKeyword = keyword;\n }\n }\n\n return currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n return cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n var r = rgb[0] / 255;\n var g = rgb[1] / 255;\n var b = rgb[2] / 255; // Assume sRGB\n\n r = r > 0.04045 ? Math.pow((r + 0.055) / 1.055, 2.4) : r / 12.92;\n g = g > 0.04045 ? Math.pow((g + 0.055) / 1.055, 2.4) : g / 12.92;\n b = b > 0.04045 ? Math.pow((b + 0.055) / 1.055, 2.4) : b / 12.92;\n var x = r * 0.4124 + g * 0.3576 + b * 0.1805;\n var y = r * 0.2126 + g * 0.7152 + b * 0.0722;\n var z = r * 0.0193 + g * 0.1192 + b * 0.9505;\n return [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n var xyz = convert.rgb.xyz(rgb);\n var x = xyz[0];\n var y = xyz[1];\n var z = xyz[2];\n x /= 95.047;\n y /= 100;\n z /= 108.883;\n x = x > 0.008856 ? Math.pow(x, 1 / 3) : 7.787 * x + 16 / 116;\n y = y > 0.008856 ? Math.pow(y, 1 / 3) : 7.787 * y + 16 / 116;\n z = z > 0.008856 ? Math.pow(z, 1 / 3) : 7.787 * z + 16 / 116;\n var l = 116 * y - 16;\n var a = 500 * (x - y);\n var b = 200 * (y - z);\n return [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n var h = hsl[0] / 360;\n var s = hsl[1] / 100;\n var l = hsl[2] / 100;\n var t2;\n var t3;\n var val;\n\n if (s === 0) {\n val = l * 255;\n return [val, val, val];\n }\n\n if (l < 0.5) {\n t2 = l * (1 + s);\n } else {\n t2 = l + s - l * s;\n }\n\n var t1 = 2 * l - t2;\n var rgb = [0, 0, 0];\n\n for (var i = 0; i < 3; i++) {\n t3 = h + 1 / 3 * -(i - 1);\n\n if (t3 < 0) {\n t3++;\n }\n\n if (t3 > 1) {\n t3--;\n }\n\n if (6 * t3 < 1) {\n val = t1 + (t2 - t1) * 6 * t3;\n } else if (2 * t3 < 1) {\n val = t2;\n } else if (3 * t3 < 2) {\n val = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n } else {\n val = t1;\n }\n\n rgb[i] = val * 255;\n }\n\n return rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n var h = hsl[0];\n var s = hsl[1] / 100;\n var l = hsl[2] / 100;\n var smin = s;\n var lmin = Math.max(l, 0.01);\n l *= 2;\n s *= l <= 1 ? l : 2 - l;\n smin *= lmin <= 1 ? lmin : 2 - lmin;\n var v = (l + s) / 2;\n var sv = l === 0 ? 2 * smin / (lmin + smin) : 2 * s / (l + s);\n return [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n var h = hsv[0] / 60;\n var s = hsv[1] / 100;\n var v = hsv[2] / 100;\n var hi = Math.floor(h) % 6;\n var f = h - Math.floor(h);\n var p = 255 * v * (1 - s);\n var q = 255 * v * (1 - s * f);\n var t = 255 * v * (1 - s * (1 - f));\n v *= 255;\n\n switch (hi) {\n case 0:\n return [v, t, p];\n\n case 1:\n return [q, v, p];\n\n case 2:\n return [p, v, t];\n\n case 3:\n return [p, q, v];\n\n case 4:\n return [t, p, v];\n\n case 5:\n return [v, p, q];\n }\n};\n\nconvert.hsv.hsl = function (hsv) {\n var h = hsv[0];\n var s = hsv[1] / 100;\n var v = hsv[2] / 100;\n var vmin = Math.max(v, 0.01);\n var sl;\n var l;\n l = (2 - s) * v;\n var lmin = (2 - s) * vmin;\n sl = s * vmin;\n sl /= lmin <= 1 ? lmin : 2 - lmin;\n sl = sl || 0;\n l /= 2;\n return [h, sl * 100, l * 100];\n}; // http://dev.w3.org/csswg/css-color/#hwb-to-rgb\n\n\nconvert.hwb.rgb = function (hwb) {\n var h = hwb[0] / 360;\n var wh = hwb[1] / 100;\n var bl = hwb[2] / 100;\n var ratio = wh + bl;\n var f; // Wh + bl cant be > 1\n\n if (ratio > 1) {\n wh /= ratio;\n bl /= ratio;\n }\n\n var i = Math.floor(6 * h);\n var v = 1 - bl;\n f = 6 * h - i;\n\n if ((i & 0x01) !== 0) {\n f = 1 - f;\n }\n\n var n = wh + f * (v - wh); // Linear interpolation\n\n var r;\n var g;\n var b;\n /* eslint-disable max-statements-per-line,no-multi-spaces */\n\n switch (i) {\n default:\n case 6:\n case 0:\n r = v;\n g = n;\n b = wh;\n break;\n\n case 1:\n r = n;\n g = v;\n b = wh;\n break;\n\n case 2:\n r = wh;\n g = v;\n b = n;\n break;\n\n case 3:\n r = wh;\n g = n;\n b = v;\n break;\n\n case 4:\n r = n;\n g = wh;\n b = v;\n break;\n\n case 5:\n r = v;\n g = wh;\n b = n;\n break;\n }\n /* eslint-enable max-statements-per-line,no-multi-spaces */\n\n\n return [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n var c = cmyk[0] / 100;\n var m = cmyk[1] / 100;\n var y = cmyk[2] / 100;\n var k = cmyk[3] / 100;\n var r = 1 - Math.min(1, c * (1 - k) + k);\n var g = 1 - Math.min(1, m * (1 - k) + k);\n var b = 1 - Math.min(1, y * (1 - k) + k);\n return [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n var x = xyz[0] / 100;\n var y = xyz[1] / 100;\n var z = xyz[2] / 100;\n var r;\n var g;\n var b;\n r = x * 3.2406 + y * -1.5372 + z * -0.4986;\n g = x * -0.9689 + y * 1.8758 + z * 0.0415;\n b = x * 0.0557 + y * -0.2040 + z * 1.0570; // Assume sRGB\n\n r = r > 0.0031308 ? 1.055 * Math.pow(r, 1.0 / 2.4) - 0.055 : r * 12.92;\n g = g > 0.0031308 ? 1.055 * Math.pow(g, 1.0 / 2.4) - 0.055 : g * 12.92;\n b = b > 0.0031308 ? 1.055 * Math.pow(b, 1.0 / 2.4) - 0.055 : b * 12.92;\n r = Math.min(Math.max(0, r), 1);\n g = Math.min(Math.max(0, g), 1);\n b = Math.min(Math.max(0, b), 1);\n return [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n var x = xyz[0];\n var y = xyz[1];\n var z = xyz[2];\n x /= 95.047;\n y /= 100;\n z /= 108.883;\n x = x > 0.008856 ? Math.pow(x, 1 / 3) : 7.787 * x + 16 / 116;\n y = y > 0.008856 ? Math.pow(y, 1 / 3) : 7.787 * y + 16 / 116;\n z = z > 0.008856 ? Math.pow(z, 1 / 3) : 7.787 * z + 16 / 116;\n var l = 116 * y - 16;\n var a = 500 * (x - y);\n var b = 200 * (y - z);\n return [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n var l = lab[0];\n var a = lab[1];\n var b = lab[2];\n var x;\n var y;\n var z;\n y = (l + 16) / 116;\n x = a / 500 + y;\n z = y - b / 200;\n var y2 = Math.pow(y, 3);\n var x2 = Math.pow(x, 3);\n var z2 = Math.pow(z, 3);\n y = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n x = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n z = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n x *= 95.047;\n y *= 100;\n z *= 108.883;\n return [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n var l = lab[0];\n var a = lab[1];\n var b = lab[2];\n var h;\n var hr = Math.atan2(b, a);\n h = hr * 360 / 2 / Math.PI;\n\n if (h < 0) {\n h += 360;\n }\n\n var c = Math.sqrt(a * a + b * b);\n return [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n var l = lch[0];\n var c = lch[1];\n var h = lch[2];\n var hr = h / 360 * 2 * Math.PI;\n var a = c * Math.cos(hr);\n var b = c * Math.sin(hr);\n return [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args) {\n var saturation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n var _args = _slicedToArray(args, 3),\n r = _args[0],\n g = _args[1],\n b = _args[2];\n\n var value = saturation === null ? convert.rgb.hsv(args)[2] : saturation; // Hsv -> ansi16 optimization\n\n value = Math.round(value / 50);\n\n if (value === 0) {\n return 30;\n }\n\n var ansi = 30 + (Math.round(b / 255) << 2 | Math.round(g / 255) << 1 | Math.round(r / 255));\n\n if (value === 2) {\n ansi += 60;\n }\n\n return ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n // Optimization here; we already know the value and don\'t need to get\n // it converted for us.\n return convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n var r = args[0];\n var g = args[1];\n var b = args[2]; // We use the extended greyscale palette here, with the exception of\n // black and white. normal palette only has 4 greyscale shades.\n\n if (r === g && g === b) {\n if (r < 8) {\n return 16;\n }\n\n if (r > 248) {\n return 231;\n }\n\n return Math.round((r - 8) / 247 * 24) + 232;\n }\n\n var ansi = 16 + 36 * Math.round(r / 255 * 5) + 6 * Math.round(g / 255 * 5) + Math.round(b / 255 * 5);\n return ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n var color = args % 10; // Handle greyscale\n\n if (color === 0 || color === 7) {\n if (args > 50) {\n color += 3.5;\n }\n\n color = color / 10.5 * 255;\n return [color, color, color];\n }\n\n var mult = (~~(args > 50) + 1) * 0.5;\n var r = (color & 1) * mult * 255;\n var g = (color >> 1 & 1) * mult * 255;\n var b = (color >> 2 & 1) * mult * 255;\n return [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n // Handle greyscale\n if (args >= 232) {\n var c = (args - 232) * 10 + 8;\n return [c, c, c];\n }\n\n args -= 16;\n var rem;\n var r = Math.floor(args / 36) / 5 * 255;\n var g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n var b = rem % 6 / 5 * 255;\n return [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n var integer = ((Math.round(args[0]) & 0xFF) << 16) + ((Math.round(args[1]) & 0xFF) << 8) + (Math.round(args[2]) & 0xFF);\n var string = integer.toString(16).toUpperCase();\n return \'000000\'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n var match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\n if (!match) {\n return [0, 0, 0];\n }\n\n var colorString = match[0];\n\n if (match[0].length === 3) {\n colorString = colorString.split(\'\').map(function (char) {\n return char + char;\n }).join(\'\');\n }\n\n var integer = parseInt(colorString, 16);\n var r = integer >> 16 & 0xFF;\n var g = integer >> 8 & 0xFF;\n var b = integer & 0xFF;\n return [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n var r = rgb[0] / 255;\n var g = rgb[1] / 255;\n var b = rgb[2] / 255;\n var max = Math.max(Math.max(r, g), b);\n var min = Math.min(Math.min(r, g), b);\n var chroma = max - min;\n var grayscale;\n var hue;\n\n if (chroma < 1) {\n grayscale = min / (1 - chroma);\n } else {\n grayscale = 0;\n }\n\n if (chroma <= 0) {\n hue = 0;\n } else if (max === r) {\n hue = (g - b) / chroma % 6;\n } else if (max === g) {\n hue = 2 + (b - r) / chroma;\n } else {\n hue = 4 + (r - g) / chroma;\n }\n\n hue /= 6;\n hue %= 1;\n return [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n var s = hsl[1] / 100;\n var l = hsl[2] / 100;\n var c = l < 0.5 ? 2.0 * s * l : 2.0 * s * (1.0 - l);\n var f = 0;\n\n if (c < 1.0) {\n f = (l - 0.5 * c) / (1.0 - c);\n }\n\n return [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n var s = hsv[1] / 100;\n var v = hsv[2] / 100;\n var c = s * v;\n var f = 0;\n\n if (c < 1.0) {\n f = (v - c) / (1 - c);\n }\n\n return [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n var h = hcg[0] / 360;\n var c = hcg[1] / 100;\n var g = hcg[2] / 100;\n\n if (c === 0.0) {\n return [g * 255, g * 255, g * 255];\n }\n\n var pure = [0, 0, 0];\n var hi = h % 1 * 6;\n var v = hi % 1;\n var w = 1 - v;\n var mg = 0;\n /* eslint-disable max-statements-per-line */\n\n switch (Math.floor(hi)) {\n case 0:\n pure[0] = 1;\n pure[1] = v;\n pure[2] = 0;\n break;\n\n case 1:\n pure[0] = w;\n pure[1] = 1;\n pure[2] = 0;\n break;\n\n case 2:\n pure[0] = 0;\n pure[1] = 1;\n pure[2] = v;\n break;\n\n case 3:\n pure[0] = 0;\n pure[1] = w;\n pure[2] = 1;\n break;\n\n case 4:\n pure[0] = v;\n pure[1] = 0;\n pure[2] = 1;\n break;\n\n default:\n pure[0] = 1;\n pure[1] = 0;\n pure[2] = w;\n }\n /* eslint-enable max-statements-per-line */\n\n\n mg = (1.0 - c) * g;\n return [(c * pure[0] + mg) * 255, (c * pure[1] + mg) * 255, (c * pure[2] + mg) * 255];\n};\n\nconvert.hcg.hsv = function (hcg) {\n var c = hcg[1] / 100;\n var g = hcg[2] / 100;\n var v = c + g * (1.0 - c);\n var f = 0;\n\n if (v > 0.0) {\n f = c / v;\n }\n\n return [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n var c = hcg[1] / 100;\n var g = hcg[2] / 100;\n var l = g * (1.0 - c) + 0.5 * c;\n var s = 0;\n\n if (l > 0.0 && l < 0.5) {\n s = c / (2 * l);\n } else if (l >= 0.5 && l < 1.0) {\n s = c / (2 * (1 - l));\n }\n\n return [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n var c = hcg[1] / 100;\n var g = hcg[2] / 100;\n var v = c + g * (1.0 - c);\n return [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n var w = hwb[1] / 100;\n var b = hwb[2] / 100;\n var v = 1 - b;\n var c = v - w;\n var g = 0;\n\n if (c < 1) {\n g = (v - c) / (1 - c);\n }\n\n return [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n return [apple[0] / 65535 * 255, apple[1] / 65535 * 255, apple[2] / 65535 * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n return [rgb[0] / 255 * 65535, rgb[1] / 255 * 65535, rgb[2] / 255 * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = function (args) {\n return [0, 0, args[0]];\n};\n\nconvert.gray.hsv = convert.gray.hsl;\n\nconvert.gray.hwb = function (gray) {\n return [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n return [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n return [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n var val = Math.round(gray[0] / 100 * 255) & 0xFF;\n var integer = (val << 16) + (val << 8) + val;\n var string = integer.toString(16).toUpperCase();\n return \'000000\'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n var val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n return [val / 255 * 100];\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vL2hvbWUvamVua2lucy93b3Jrc3BhY2UvZGVzaWduLXN5c3RlbV9tYWluL25vZGVfbW9kdWxlcy9jb2xvci1jb252ZXJ0L2NvbnZlcnNpb25zLmpzPzc5YzMiXSwibmFtZXMiOlsiY3NzS2V5d29yZHMiLCJyZXF1aXJlIiwicmV2ZXJzZUtleXdvcmRzIiwiT2JqZWN0Iiwia2V5cyIsImtleSIsImNvbnZlcnQiLCJyZ2IiLCJjaGFubmVscyIsImxhYmVscyIsImhzbCIsImhzdiIsImh3YiIsImNteWsiLCJ4eXoiLCJsYWIiLCJsY2giLCJoZXgiLCJrZXl3b3JkIiwiYW5zaTE2IiwiYW5zaTI1NiIsImhjZyIsImFwcGxlIiwiZ3JheSIsIm1vZHVsZSIsImV4cG9ydHMiLCJtb2RlbCIsIkVycm9yIiwibGVuZ3RoIiwiZGVmaW5lUHJvcGVydHkiLCJ2YWx1ZSIsInIiLCJnIiwiYiIsIm1pbiIsIk1hdGgiLCJtYXgiLCJkZWx0YSIsImgiLCJzIiwibCIsInJkaWYiLCJnZGlmIiwiYmRpZiIsInYiLCJkaWZmIiwiZGlmZmMiLCJjIiwidyIsImsiLCJtIiwieSIsImNvbXBhcmF0aXZlRGlzdGFuY2UiLCJ4IiwicmV2ZXJzZWQiLCJjdXJyZW50Q2xvc2VzdERpc3RhbmNlIiwiSW5maW5pdHkiLCJjdXJyZW50Q2xvc2VzdEtleXdvcmQiLCJkaXN0YW5jZSIsInoiLCJhIiwidDIiLCJ0MyIsInZhbCIsInQxIiwiaSIsInNtaW4iLCJsbWluIiwic3YiLCJoaSIsImZsb29yIiwiZiIsInAiLCJxIiwidCIsInZtaW4iLCJzbCIsIndoIiwiYmwiLCJyYXRpbyIsIm4iLCJ5MiIsIngyIiwiejIiLCJociIsImF0YW4yIiwiUEkiLCJzcXJ0IiwiY29zIiwic2luIiwiYXJncyIsInNhdHVyYXRpb24iLCJyb3VuZCIsImFuc2kiLCJjb2xvciIsIm11bHQiLCJyZW0iLCJpbnRlZ2VyIiwic3RyaW5nIiwidG9TdHJpbmciLCJ0b1VwcGVyQ2FzZSIsInN1YnN0cmluZyIsIm1hdGNoIiwiY29sb3JTdHJpbmciLCJzcGxpdCIsIm1hcCIsImNoYXIiLCJqb2luIiwicGFyc2VJbnQiLCJjaHJvbWEiLCJncmF5c2NhbGUiLCJodWUiLCJwdXJlIiwibWciXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBO0FBQ0EsSUFBTUEsV0FBVyxHQUFHQyxtQkFBTyxDQUFDLG1FQUFELENBQTNCLEMsQ0FFQTtBQUNBO0FBQ0E7OztBQUVBLElBQU1DLGVBQWUsR0FBRyxFQUF4Qjs7QUFDQSxnQ0FBa0JDLE1BQU0sQ0FBQ0MsSUFBUCxDQUFZSixXQUFaLENBQWxCLGtDQUE0QztBQUF2QyxNQUFNSyxHQUFHLG1CQUFUO0FBQ0pILGlCQUFlLENBQUNGLFdBQVcsQ0FBQ0ssR0FBRCxDQUFaLENBQWYsR0FBb0NBLEdBQXBDO0FBQ0E7O0FBRUQsSUFBTUMsT0FBTyxHQUFHO0FBQ2ZDLEtBQUcsRUFBRTtBQUFDQyxZQUFRLEVBQUUsQ0FBWDtBQUFjQyxVQUFNLEVBQUU7QUFBdEIsR0FEVTtBQUVmQyxLQUFHLEVBQUU7QUFBQ0YsWUFBUSxFQUFFLENBQVg7QUFBY0MsVUFBTSxFQUFFO0FBQXRCLEdBRlU7QUFHZkUsS0FBRyxFQUFFO0FBQUNILFlBQVEsRUFBRSxDQUFYO0FBQWNDLFVBQU0sRUFBRTtBQUF0QixHQUhVO0FBSWZHLEtBQUcsRUFBRTtBQUFDSixZQUFRLEVBQUUsQ0FBWDtBQUFjQyxVQUFNLEVBQUU7QUFBdEIsR0FKVTtBQUtmSSxNQUFJLEVBQUU7QUFBQ0wsWUFBUSxFQUFFLENBQVg7QUFBY0MsVUFBTSxFQUFFO0FBQXRCLEdBTFM7QUFNZkssS0FBRyxFQUFFO0FBQUNOLFlBQVEsRUFBRSxDQUFYO0FBQWNDLFVBQU0sRUFBRTtBQUF0QixHQU5VO0FBT2ZNLEtBQUcsRUFBRTtBQUFDUCxZQUFRLEVBQUUsQ0FBWDtBQUFjQyxVQUFNLEVBQUU7QUFBdEIsR0FQVTtBQVFmTyxLQUFHLEVBQUU7QUFB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QixJQUEyQkEsR0FBM0M7QUFFQSxNQUFNbUMsTUFBTSxHQUFHRCxPQUFPLENBQUNFLFFBQVIsQ0FBaUIsRUFBakIsRUFBcUJDLFdBQXJCLEVBQWY7QUFDQSxTQUFPLFNBQVNDLFNBQVQsQ0FBbUJILE1BQU0sQ0FBQ3RFLE1BQTFCLElBQW9Dc0UsTUFBM0M7QUFDQSxDQU5EOztBQVFBNUYsT0FBTyxDQUFDQyxHQUFSLENBQVlnQixJQUFaLEdBQW1CLFVBQVVoQixHQUFWLEVBQWU7QUFDakMsTUFBTXdELEdBQUcsR0FBRyxDQUFDeEQsR0FBRyxDQUFDLENBQUQsQ0FBSCxHQUFTQSxHQUFHLENBQUMsQ0FBRCxDQUFaLEdBQWtCQSxHQUFHLENBQUMsQ0FBRCxDQUF0QixJQUE2QixDQUF6QztBQUNBLFNBQU8sQ0FBQ3dELEdBQUcsR0FBRyxHQUFOLEdBQVksR0FBYixDQUFQO0FBQ0EsQ0FIRCIsImZpbGUiOiIuLi8uLi9ub2RlX21vZHVsZXMvY29sb3ItY29udmVydC9jb252ZXJzaW9ucy5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIE1JVCBsaWNlbnNlICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1taXhlZC1vcGVyYXRvcnMgKi9cbmNvbnN0IGNzc0tleXdvcmRzID0gcmVxdWlyZSgnY29sb3ItbmFtZScpO1xuXG4vLyBOT1RFOiBjb252ZXJzaW9ucyBzaG91bGQgb25seSByZXR1cm4gcHJpbWl0aXZlIHZhbHVlcyAoaS5lLiBhcnJheXMsIG9yXG4vLyAgICAgICB2YWx1ZXMgdGhhdCBnaXZlIGNvcnJlY3QgYHR5cGVvZmAgcmVzdWx0cykuXG4vLyAgICAgICBkbyBub3QgdXNlIGJveCB2YWx1ZXMgdHlwZXMgKGkuZS4gTnVtYmVyKCksIFN0cmluZygpLCBldGMuKVxuXG5jb25zdCByZXZlcnNlS2V5d29yZHMgPSB7fTtcbmZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGNzc0tleXdvcmRzKSkge1xuXHRyZXZlcnNlS2V5d29yZHNbY3NzS2V5d29yZHNba2V5XV0gPSBrZXk7XG59XG5cbmNvbnN0IGNvbnZlcnQgPSB7XG5cdHJnYjoge2NoYW5uZWxzOiAzLCBsYWJlbHM6ICdyZ2InfSxcblx0aHNsOiB7Y2hhbm5lbHM6IDMsIGxhYmVsczogJ2hzbCd9LFxuXHRoc3Y6IHtjaGFubmVsczogMywgbGFiZWxzOiAnaHN2J30sXG5cdGh3Yjoge2NoYW5uZWxzOiAzLCBsYWJlbHM6ICdod2InfSxcblx0Y215azoge2NoYW5uZWxzOiA0LCBsYWJlbHM6ICdjbXlrJ30sXG5cdHh5ejoge2NoYW5uZWxzOiAzLCBsYWJlbHM6ICd4eXonfSxcblx0bGFiOiB7Y2hhbm5lbHM6IDMsIGxhYmVsczogJ2xhYid9LFxuXHRsY2g6IHtjaGFubmVsczogMywgbGFiZWxzOiAnbGNoJ30sXG5cdGhleDoge2NoYW5uZWxzOiAxLCBsYWJlbHM6IFsnaGV4J119LFxuXHRrZXl3b3JkOiB7Y2hhbm5lbHM6IDEsIGxhYmVsczogWydrZXl3b3JkJ119LFxuXHRhbnNpMTY6IHtjaGFubmVsczogMSwgbGFiZWxzOiBbJ2Fuc2kxNiddfSxcblx0YW5zaTI1Njoge2NoYW5uZWxzOiAxLCBsYWJlbHM6IFsnYW5zaTI1NiddfSxcblx0aGNnOiB7Y2hhbm5lbHM6IDMsIGxhYmVsczogWydoJywgJ2MnLCAnZyddfSxcblx0YXBwbGU6IHtjaGFubmVsczogMywgbGFiZWxzOiBbJ3IxNicsICdnMTYnLCAnYjE2J119LFxuXHRncmF5OiB7Y2hhbm5lbHM6IDEsIGxhYmVsczogWydncmF5J119XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGNvbnZlcnQ7XG5cbi8vIEhpZGUgLmNoYW5uZWxzIGFuZCAubGFiZWxzIHByb3BlcnRpZXNcbmZvciAoY29uc3QgbW9kZWwgb2YgT2JqZWN0LmtleXMoY29udmVydCkpIHtcblx0aWYgKCEoJ2NoYW5uZWxzJyBpbiBjb252ZXJ0W21vZGVsXSkpIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoJ21pc3NpbmcgY2hhbm5lbHMgcHJvcGVydHk6ICcgKyBtb2RlbCk7XG5cdH1cblxuXHRpZiAoISgnbGFiZWxzJyBpbiBjb252ZXJ0W21vZGVsXSkpIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoJ21pc3NpbmcgY2hhbm5lbCBsYWJlbHMgcHJvcGVydHk6ICcgKyBtb2RlbCk7XG5cdH1cblxuXHRpZiAoY29udmVydFttb2RlbF0ubGFiZWxzLmxlbmd0aCAhPT0gY29udmVydFttb2RlbF0uY2hhbm5lbHMpIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoJ2NoYW5uZWwgYW5kIGxhYmVsIGNvdW50cyBtaXNtYXRjaDogJyArIG1vZGVsKTtcblx0fVxuXG5cdGNvbnN0IHtjaGFubmVscywgbGFiZWxzfSA9IGNvbnZlcnRbbW9kZWxdO1xuXHRkZWxldGUgY29udmVydFttb2RlbF0uY2hhbm5lbHM7XG5cdGRlbGV0ZSBjb252ZXJ0W21vZGVsXS5sYWJlbHM7XG5cdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjb252ZXJ0W21vZGVsXSwgJ2NoYW5uZWxzJywge3ZhbHVlOiBjaGFubmVsc30pO1xuXHRPYmplY3QuZGVmaW5lUHJvcGVydHkoY29udmVydFttb2RlbF0sICdsYWJlbHMnLCB7dmFsdWU6IGxhYmVsc30pO1xufVxuXG5jb252ZXJ0LnJnYi5oc2wgPSBmdW5jdGlvbiAocmdiKSB7XG5cdGNvbnN0IHIgPSByZ2JbMF0gLyAyNTU7XG5cdGNvbnN0IGcgPSByZ2JbMV0gLyAyNTU7XG5cdGNvbnN0IGIgPSByZ2JbMl0gLyAyNTU7XG5cdGNvbnN0IG1pbiA9IE1hdGgubWluKHIsIGcsIGIpO1xuXHRjb25zdCBtYXggPSBNYXRoLm1heChyLCBnLCBiKTtcblx0Y29uc3QgZGVsdGEgPSBtYXggLSBtaW47XG5cdGxldCBoO1xuXHRsZXQgcztcblxuXHRpZiAobWF4ID09PSBtaW4pIHtcblx0XHRoID0gMDtcblx0fSBlbHNlIGlmIChyID09PSBtYXgpIHtcblx0XHRoID0gKGcgLSBiKSAvIGRlbHRhO1xuXHR9IGVsc2UgaWYgKGcgPT09IG1heCkge1xuXHRcdGggPSAyICsgKGIgLSByKSAvIGRlbHRhO1xuXHR9IGVsc2UgaWYgKGIgPT09IG1heCkge1xuXHRcdGggPSA0ICsgKHIgLSBnKSAvIGRlbHRhO1xuXHR9XG5cblx0aCA9IE1hdGgubWluKGggKiA2MCwgMzYwKTtcblxuXHRpZiAoaCA8IDApIHtcblx0XHRoICs9IDM2MDtcblx0fVxuXG5cdGNvbnN0IGwgPSAobWluICsgbWF4KSAvIDI7XG5cblx0aWYgKG1heCA9PT0gbWluKSB7XG5cdFx0cyA9IDA7XG5cdH0gZWxzZSBpZiAobCA8PSAwLjUpIHtcblx0XHRzID0gZGVsdGEgLyAobWF4ICsgbWluKTtcblx0fSBlbHNlIHtcblx0XHRzID0gZGVsdGEgLyAoMiAtIG1heCAtIG1pbik7XG5cdH1cblxuXHRyZXR1cm4gW2gsIHMgKiAxMDAsIGwgKiAxMDBdO1xufTtcblxuY29udmVydC5yZ2IuaHN2ID0gZnVuY3Rpb24gKHJnYikge1xuXHRsZXQgcmRpZjtcblx0bGV0IGdkaWY7XG5cdGxldCBiZGlmO1xuXHRsZXQgaDtcblx0bGV0IHM7XG5cblx0Y29uc3QgciA9IHJnYlswXSAvIDI1NTtcblx0Y29uc3QgZyA9IHJnYlsxXSAvIDI1NTtcblx0Y29uc3QgYiA9IHJnYlsyXSAvIDI1NTtcblx0Y29uc3QgdiA9IE1hdGgubWF4KHIsIGcsIGIpO1xuXHRjb25zdCBkaWZmID0gdiAtIE1hdGgubWluKHIsIGcsIGIpO1xuXHRjb25zdCBkaWZmYyA9IGZ1bmN0aW9uIChjKSB7XG5cdFx0cmV0dXJuICh2IC0gYykgLyA2IC8gZGlmZiArIDEgLyAyO1xuXHR9O1xuXG5cdGlmIChkaWZmID09PSAwKSB7XG5cdFx0aCA9IDA7XG5cdFx0cyA9IDA7XG5cdH0gZWxzZSB7XG5cdFx0cyA9IGRpZmYgLyB2O1xuXHRcdHJkaWYgPSBkaWZmYyhyKTtcblx0XHRnZGlmID0gZGlmZmMoZyk7XG5cdFx0YmRpZiA9IGRpZmZjKGIpO1xuXG5cdFx0aWYgKHIgPT09IHYpIHtcblx0XHRcdGggPSBiZGlmIC0gZ2RpZjtcblx0XHR9IGVsc2UgaWYgKGcgPT09IHYpIHtcblx0XHRcdGggPSAoMSAvIDMpICsgcmRpZiAtIGJkaWY7XG5cdFx0fSBlbHNlIGlmIChiID09PSB2KSB7XG5cdFx0XHRoID0gKDIgLyAzKSArIGdkaWYgLSByZGlmO1xuXHRcdH1cblxuXHRcdGlmIChoIDwgMCkge1xuXHRcdFx0aCArPSAxO1xuXHRcdH0gZWxzZSBpZiAoaCA+IDEpIHtcblx0XHRcdGggLT0gMTtcblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gW1xuXHRcdGggKiAzNjAsXG5cdFx0cyAqIDEwMCxcblx0XHR2ICogMTAwXG5cdF07XG59O1xuXG5jb252ZXJ0LnJnYi5od2IgPSBmdW5jdGlvbiAocmdiKSB7XG5cdGNvbnN0IHIgPSByZ2JbMF07XG5cdGNvbnN0IGcgPSByZ2JbMV07XG5cdGxldCBiID0gcmdiWzJdO1xuXHRjb25zdCBoID0gY29udmVydC5yZ2IuaHNsKHJnYilbMF07XG5cdGNvbnN0IHcgPSAxIC8gMjU1ICogTWF0aC5taW4ociwgTWF0aC5taW4oZywgYikpO1xuXG5cdGIgPSAxIC0gMSAvIDI1NSAqIE1hdGgubWF4KHIsIE1hdGgubWF4KGcsIGIpKTtcblxuXHRyZXR1cm4gW2gsIHcgKiAxMDAsIGIgKiAxMDBdO1xufTtcblxuY29udmVydC5yZ2IuY215ayA9IGZ1bmN0aW9uIChyZ2IpIHtcblx0Y29uc3QgciA9IHJnYlswXSAvIDI1NTtcblx0Y29uc3QgZyA9IHJnYlsxXSAvIDI1NTtcblx0Y29uc3QgYiA9IHJnYlsyXSAvIDI1NTtcblxuXHRjb25zdCBrID0gTWF0aC5taW4oMSAtIHIsIDEgLSBnLCAxIC0gYik7XG5cdGNvbnN0IGMgPSAoMSAtIHIgLSBrKSAvICgxIC0gaykgfHwgMDtcblx0Y29uc3QgbSA9ICgxIC0gZyAtIGspIC8gKDEgLSBrKSB8fCAwO1xuXHRjb25zdCB5ID0gKDEgLSBiIC0gaykgLyAoMSAtIGspIHx8IDA7XG5cblx0cmV0dXJuIFtjICogMTAwLCBtICogMTAwLCB5ICogMTAwLCBrICogMTAwXTtcbn07XG5cbmZ1bmN0aW9uIGNvbXBhcmF0aXZlRGlzdGFuY2UoeCwgeSkge1xuXHQvKlxuXHRcdFNlZSBodHRwczovL2VuLm0ud2lraXBlZGlhLm9yZy93aWtpL0V1Y2xpZGVhbl9kaXN0YW5jZSNTcXVhcmVkX0V1Y2xpZGVhbl9kaXN0YW5jZVxuXHQqL1xuXHRyZXR1cm4gKFxuXHRcdCgoeFswXSAtIHlbMF0pICoqIDIpICtcblx0XHQoKHhbMV0gLSB5WzFdKSAqKiAyKSArXG5cdFx0KCh4WzJdIC0geVsyXSkgKiogMilcblx0KTtcbn1cblxuY29udmVydC5yZ2Iua2V5d29yZCA9IGZ1bmN0aW9uIChyZ2IpIHtcblx0Y29uc3QgcmV2ZXJzZWQgPSByZXZlcnNlS2V5d29yZHNbcmdiXTtcblx0aWYgKHJldmVyc2VkKSB7XG5cdFx0cmV0dXJuIHJldmVyc2VkO1xuXHR9XG5cblx0bGV0IGN1cnJlbnRDbG9zZXN0RGlzdGFuY2UgPSBJbmZpbml0eTtcblx0bGV0IGN1cnJlbnRDbG9zZXN0S2V5d29yZDtcblxuXHRmb3IgKGNvbnN0IGtleXdvcmQgb2YgT2JqZWN0LmtleXMoY3NzS2V5d29yZHMpKSB7XG5cdFx0Y29uc3QgdmFsdWUgPSBjc3NLZXl3b3Jkc1trZXl3b3JkXTtcblxuXHRcdC8vIENvbXB1dGUgY29tcGFyYXRpdmUgZGlzdGFuY2Vcblx0XHRjb25zdCBkaXN0YW5jZSA9IGNvbXBhcmF0aXZlRGlzdGFuY2UocmdiLCB2YWx1ZSk7XG5cblx0XHQvLyBDaGVjayBpZiBpdHMgbGVzcywgaWYgc28gc2V0IGFzIGNsb3Nlc3Rcblx0XHRpZiAoZGlzdGFuY2UgPCBjdXJyZW50Q2xvc2VzdERpc3RhbmNlKSB7XG5cdFx0XHRjdXJyZW50Q2xvc2VzdERpc3RhbmNlID0gZGlzdGFuY2U7XG5cdFx0XHRjdXJyZW50Q2xvc2VzdEtleXdvcmQgPSBrZXl3b3JkO1xuXHRcdH1cblx0fVxuXG5cdHJldHVybiBjdXJyZW50Q2xvc2VzdEtleXdvcmQ7XG59O1xuXG5jb252ZXJ0LmtleXdvcmQucmdiID0gZnVuY3Rpb24gKGtleXdvcmQpIHtcblx0cmV0dXJuIGNzc0tleXdvcmRzW2tleXdvcmRdO1xufTtcblxuY29udmVydC5yZ2IueHl6ID0gZnVuY3Rpb24gKHJnYikge1xuXHRsZXQgciA9IHJnYlswXSAvIDI1NTtcblx0bGV0IGcgPSByZ2JbMV0gLyAyNTU7XG5cdGxldCBiID0gcmdiWzJdIC8gMjU1O1xuXG5cdC8vIEFzc3VtZSBzUkdCXG5cdHIgPSByID4gMC4wNDA0NSA/ICgoKHIgKyAwLjA1NSkgLyAxLjA1NSkgKiogMi40KSA6IChyIC8gMTIuOTIpO1xuXHRnID0gZyA+IDAuMDQwNDUgPyAoKChnICsgMC4wNTUpIC8gMS4wNTUpICoqIDIuNCkgOiAoZyAvIDEyLjkyKTtcblx0YiA9IGIgPiAwLjA0MDQ1ID8gKCgoYiArIDAuMDU1KSAvIDEuMDU1KSAqKiAyLjQpIDogKGIgLyAxMi45Mik7XG5cblx0Y29uc3QgeCA9IChyICogMC40MTI0KSArIChnICogMC4zNTc2KSArIChiICogMC4xODA1KTtcblx0Y29uc3QgeSA9IChyICogMC4yMTI2KSArIChnICogMC43MTUyKSArIChiICogMC4wNzIyKTtcblx0Y29uc3QgeiA9IChyICogMC4wMTkzKSArIChnICogMC4xMTkyKSArIChiICogMC45NTA1KTtcblxuXHRyZXR1cm4gW3ggKiAxMDAsIHkgKiAxMDAsIHogKiAxMDBdO1xufTtcblxuY29udmVydC5yZ2IubGFiID0gZnVuY3Rpb24gKHJnYikge1xuXHRjb25zdCB4eXogPSBjb252ZXJ0LnJnYi54eXoocmdiKTtcblx0bGV0IHggPSB4eXpbMF07XG5cdGxldCB5ID0geHl6WzFdO1xuXHRsZXQgeiA9IHh5elsyXTtcblxuXHR4IC89IDk1LjA0Nztcblx0eSAvPSAxMDA7XG5cdHogLz0gMTA4Ljg4MztcblxuXHR4ID0geCA+IDAuMDA4ODU2ID8gKHggKiogKDEgLyAzKSkgOiAoNy43ODcgKiB4KSArICgxNiAvIDExNik7XG5cdHkgPSB5ID4gMC4wMDg4NTYgPyAoeSAqKiAoMSAvIDMpKSA6ICg3Ljc4NyAqIHkpICsgKDE2IC8gMTE2KTtcblx0eiA9IHogPiAwLjAwODg1NiA/ICh6ICoqICgxIC8gMykpIDogKDcuNzg3ICogeikgKyAoMTYgLyAxMTYpO1xuXG5cdGNvbnN0IGwgPSAoMTE2ICogeSkgLSAxNjtcblx0Y29uc3QgYSA9IDUwMCAqICh4IC0geSk7XG5cdGNvbnN0IGIgPSAyMDAgKiAoeSAtIHopO1xuXG5cdHJldHVybiBbbCwgYSwgYl07XG59O1xuXG5jb252ZXJ0LmhzbC5yZ2IgPSBmdW5jdGlvbiAoaHNsKSB7XG5cdGNvbnN0IGggPSBoc2xbMF0gLyAzNjA7XG5cdGNvbnN0IHMgPSBoc2xbMV0gLyAxMDA7XG5cdGNvbnN0IGwgPSBoc2xbMl0gLyAxMDA7XG5cdGxldCB0Mjtcblx0bGV0IHQzO1xuXHRsZXQgdmFsO1xuXG5cdGlmIChzID09PSAwKSB7XG5cdFx0dmFsID0gbCAqIDI1NTtcblx0XHRyZXR1cm4gW3ZhbCwgdmFsLCB2YWxdO1xuXHR9XG5cblx0aWYgKGwgPCAwLjUpIHtcblx0XHR0MiA9IGwgKiAoMSArIHMpO1xuXHR9IGVsc2Uge1xuXHRcdHQyID0gbCArIHMgLSBsICogcztcblx0fVxuXG5cdGNvbnN0IHQxID0gMiAqIGwgLSB0MjtcblxuXHRjb25zdCByZ2IgPSBbMCwgMCwgMF07XG5cdGZvciAobGV0IGkgPSAwOyBpIDwgMzsgaSsrKSB7XG5cdFx0dDMgPSBoICsgMSAvIDMgKiAtKGkgLSAxKTtcblx0XHRpZiAodDMgPCAwKSB7XG5cdFx0XHR0MysrO1xuXHRcdH1cblxuXHRcdGlmICh0MyA+IDEpIHtcblx0XHRcdHQzLS07XG5cdFx0fVxuXG5cdFx0aWYgKDYgKiB0MyA8IDEpIHtcblx0XHRcdHZhbCA9IHQxICsgKHQyIC0gdDEpICogNiAqIHQzO1xuXHRcdH0gZWxzZSBpZiAoMiAqIHQzIDwgMSkge1xuXHRcdFx0dmFsID0gdDI7XG5cdFx0fSBlbHNlIGlmICgzICogdDMgPCAyKSB7XG5cdFx0XHR2YWwgPSB0MSArICh0MiAtIHQxKSAqICgyIC8gMyAtIHQzKSAqIDY7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHZhbCA9IHQxO1xuXHRcdH1cblxuXHRcdHJnYltpXSA9IHZhbCAqIDI1NTtcblx0fVxuXG5cdHJldHVybiByZ2I7XG59O1xuXG5jb252ZXJ0LmhzbC5oc3YgPSBmdW5jdGlvbiAoaHNsKSB7XG5cdGNvbnN0IGggPSBoc2xbMF07XG5cdGxldCBzID0gaHNsWzFdIC8gMTAwO1xuXHRsZXQgbCA9IGhzbFsyXSAvIDEwMDtcblx0bGV0IHNtaW4gPSBzO1xuXHRjb25zdCBsbWluID0gTWF0aC5tYXgobCwgMC4wMSk7XG5cblx0bCAqPSAyO1xuXHRzICo9IChsIDw9IDEpID8gbCA6IDIgLSBsO1xuXHRzbWluICo9IGxtaW4gPD0gMSA/IGxtaW4gOiAyIC0gbG1pbjtcblx0Y29uc3QgdiA9IChsICsgcykgLyAyO1xuXHRjb25zdCBzdiA9IGwgPT09IDAgPyAoMiAqIHNtaW4pIC8gKGxtaW4gKyBzbWluKSA6ICgyICogcykgLyAobCArIHMpO1xuXG5cdHJldHVybiBbaCwgc3YgKiAxMDAsIHYgKiAxMDBdO1xufTtcblxuY29udmVydC5oc3YucmdiID0gZnVuY3Rpb24gKGhzdikge1xuXHRjb25zdCBoID0gaHN2WzBdIC8gNjA7XG5cdGNvbnN0IHMgPSBoc3ZbMV0gLyAxMDA7XG5cdGxldCB2ID0gaHN2WzJdIC8gMTAwO1xuXHRjb25zdCBoaSA9IE1hdGguZmxvb3IoaCkgJSA2O1xuXG5cdGNvbnN0IGYgPSBoIC0gTWF0aC5mbG9vcihoKTtcblx0Y29uc3QgcCA9IDI1NSAqIHYgKiAoMSAtIHMpO1xuXHRjb25zdCBxID0gMjU1ICogdiAqICgxIC0gKHMgKiBmKSk7XG5cdGNvbnN0IHQgPSAyNTUgKiB2ICogKDEgLSAocyAqICgxIC0gZikpKTtcblx0diAqPSAyNTU7XG5cblx0c3dpdGNoIChoaSkge1xuXHRcdGNhc2UgMDpcblx0XHRcdHJldHVybiBbdiwgdCwgcF07XG5cdFx0Y2FzZSAxOlxuXHRcdFx0cmV0dXJuIFtxLCB2LCBwXTtcblx0XHRjYXNlIDI6XG5cdFx0XHRyZXR1cm4gW3AsIHYsIHRdO1xuXHRcdGNhc2UgMzpcblx0XHRcdHJldHVybiBbcCwgcSwgdl07XG5cdFx0Y2FzZSA0OlxuXHRcdFx0cmV0dXJuIFt0LCBwLCB2XTtcblx0XHRjYXNlIDU6XG5cdFx0XHRyZXR1cm4gW3YsIHAsIHFdO1xuXHR9XG59O1xuXG5jb252ZXJ0Lmhzdi5oc2wgPSBmdW5jdGlvbiAoaHN2KSB7XG5cdGNvbnN0IGggPSBoc3ZbMF07XG5cdGNvbnN0IHMgPSBoc3ZbMV0gLyAxMDA7XG5cdGNvbnN0IHYgPSBoc3ZbMl0gLyAxMDA7XG5cdGNvbnN0IHZtaW4gPSBNYXRoLm1heCh2LCAwLjAxKTtcblx0bGV0IHNsO1xuXHRsZXQgbDtcblxuXHRsID0gKDIgLSBzKSAqIHY7XG5cdGNvbnN0IGxtaW4gPSAoMiAtIHMpICogdm1pbjtcblx0c2wgPSBzICogdm1pbjtcblx0c2wgLz0gKGxtaW4gPD0gMSkgPyBsbWluIDogMiAtIGxtaW47XG5cdHNsID0gc2wgfHwgMDtcblx0bCAvPSAyO1xuXG5cdHJldHVybiBbaCwgc2wgKiAxMDAsIGwgKiAxMDBdO1xufTtcblxuLy8gaHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3NzLWNvbG9yLyNod2ItdG8tcmdiXG5jb252ZXJ0Lmh3Yi5yZ2IgPSBmdW5jdGlvbiAoaHdiKSB7XG5cdGNvbnN0IGggPSBod2JbMF0gLyAzNjA7XG5cdGxldCB3aCA9IGh3YlsxXSAvIDEwMDtcblx0bGV0IGJsID0gaHdiWzJdIC8gMTAwO1xuXHRjb25zdCByYXRpbyA9IHdoICsgYmw7XG5cdGxldCBmO1xuXG5cdC8vIFdoICsgYmwgY2FudCBiZSA+IDFcblx0aWYgKHJhdGlvID4gMSkge1xuXHRcdHdoIC89IHJhdGlvO1xuXHRcdGJsIC89IHJhdGlvO1xuXHR9XG5cblx0Y29uc3QgaSA9IE1hdGguZmxvb3IoNiAqIGgpO1xuXHRjb25zdCB2ID0gMSAtIGJsO1xuXHRmID0gNiAqIGggLSBpO1xuXG5cdGlmICgoaSAmIDB4MDEpICE9PSAwKSB7XG5cdFx0ZiA9IDEgLSBmO1xuXHR9XG5cblx0Y29uc3QgbiA9IHdoICsgZiAqICh2IC0gd2gpOyAvLyBMaW5lYXIgaW50ZXJwb2xhdGlvblxuXG5cdGxldCByO1xuXHRsZXQgZztcblx0bGV0IGI7XG5cdC8qIGVzbGludC1kaXNhYmxlIG1heC1zdGF0ZW1lbnRzLXBlci1saW5lLG5vLW11bHRpLXNwYWNlcyAqL1xuXHRzd2l0Y2ggKGkpIHtcblx0XHRkZWZhdWx0OlxuXHRcdGNhc2UgNjpcblx0XHRjYXNlIDA6IHIgPSB2OyAgZyA9IG47ICBiID0gd2g7IGJyZWFrO1xuXHRcdGNhc2UgMTogciA9IG47ICBnID0gdjsgIGIgPSB3aDsgYnJlYWs7XG5cdFx0Y2FzZSAyOiByID0gd2g7IGcgPSB2OyAgYiA9IG47IGJyZWFrO1xuXHRcdGNhc2UgMzogciA9IHdoOyBnID0gbjsgIGIgPSB2OyBicmVhaztcblx0XHRjYXNlIDQ6IHIgPSBuOyAgZyA9IHdoOyBiID0gdjsgYnJlYWs7XG5cdFx0Y2FzZSA1OiByID0gdjsgIGcgPSB3aDsgYiA9IG47IGJyZWFrO1xuXHR9XG5cdC8qIGVzbGludC1lbmFibGUgbWF4LXN0YXRlbWVudHMtcGVyLWxpbmUsbm8tbXVsdGktc3BhY2VzICovXG5cblx0cmV0dXJuIFtyICogMjU1LCBnICogMjU1LCBiICogMjU1XTtcbn07XG5cbmNvbnZlcnQuY215ay5yZ2IgPSBmdW5jdGlvbiAoY215aykge1xuXHRjb25zdCBjID0gY215a1swXSAvIDEwMDtcblx0Y29uc3QgbSA9IGNteWtbMV0gLyAxMDA7XG5cdGNvbnN0IHkgPSBjbXlrWzJdIC8gMTAwO1xuXHRjb25zdCBrID0gY215a1szXSAvIDEwMDtcblxuXHRjb25zdCByID0gMSAtIE1hdGgubWluKDEsIGMgKiAoMSAtIGspICsgayk7XG5cdGNvbnN0IGcgPSAxIC0gTWF0aC5taW4oMSwgbSAqICgxIC0gaykgKyBrKTtcblx0Y29uc3QgYiA9IDEgLSBNYXRoLm1pbigxLCB5ICogKDEgLSBrKSArIGspO1xuXG5cdHJldHVybiBbciAqIDI1NSwgZyAqIDI1NSwgYiAqIDI1NV07XG59O1xuXG5jb252ZXJ0Lnh5ei5yZ2IgPSBmdW5jdGlvbiAoeHl6KSB7XG5cdGNvbnN0IHggPSB4eXpbMF0gLyAxMDA7XG5cdGNvbnN0IHkgPSB4eXpbMV0gLyAxMDA7XG5cdGNvbnN0IHogPSB4eXpbMl0gLyAxMDA7XG5cdGxldCByO1xuXHRsZXQgZztcblx0bGV0IGI7XG5cblx0ciA9ICh4ICogMy4yNDA2KSArICh5ICogLTEuNTM3MikgKyAoeiAqIC0wLjQ5ODYpO1xuXHRnID0gKHggKiAtMC45Njg5KSArICh5ICogMS44NzU4KSArICh6ICogMC4wNDE1KTtcblx0YiA9ICh4ICogMC4wNTU3KSArICh5ICogLTAuMjA0MCkgKyAoeiAqIDEuMDU3MCk7XG5cblx0Ly8gQXNzdW1lIHNSR0Jcblx0ciA9IHIgPiAwLjAwMzEzMDhcblx0XHQ/ICgoMS4wNTUgKiAociAqKiAoMS4wIC8gMi40KSkpIC0gMC4wNTUpXG5cdFx0OiByICogMTIuOTI7XG5cblx0ZyA9IGcgPiAwLjAwMzEzMDhcblx0XHQ/ICgoMS4wNTUgKiAoZyAqKiAoMS4wIC8gMi40KSkpIC0gMC4wNTUpXG5cdFx0OiBnICogMTIuOTI7XG5cblx0YiA9IGIgPiAwLjAwMzEzMDhcblx0XHQ/ICgoMS4wNTUgKiAoYiAqKiAoMS4wIC8gMi40KSkpIC0gMC4wNTUpXG5cdFx0OiBiICogMTIuOTI7XG5cblx0ciA9IE1hdGgubWluKE1hdGgubWF4KDAsIHIpLCAxKTtcblx0ZyA9IE1hdGgubWluKE1hdGgubWF4KDAsIGcpLCAxKTtcblx0YiA9IE1hdGgubWluKE1hdGgubWF4KDAsIGIpLCAxKTtcblxuXHRyZXR1cm4gW3IgKiAyNTUsIGcgKiAyNTUsIGIgKiAyNTVdO1xufTtcblxuY29udmVydC54eXoubGFiID0gZnVuY3Rpb24gKHh5eikge1xuXHRsZXQgeCA9IHh5elswXTtcblx0bGV0IHkgPSB4eXpbMV07XG5cdGxldCB6ID0geHl6WzJdO1xuXG5cdHggLz0gOTUuMDQ3O1xuXHR5IC89IDEwMDtcblx0eiAvPSAxMDguODgzO1xuXG5cdHggPSB4ID4gMC4wMDg4NTYgPyAoeCAqKiAoMSAvIDMpKSA6ICg3Ljc4NyAqIHgpICsgKDE2IC8gMTE2KTtcblx0eSA9IHkgPiAwLjAwODg1NiA/ICh5ICoqICgxIC8gMykpIDogKDcuNzg3ICogeSkgKyAoMTYgLyAxMTYpO1xuXHR6ID0geiA+IDAuMDA4ODU2ID8gKHogKiogKDEgLyAzKSkgOiAoNy43ODcgKiB6KSArICgxNiAvIDExNik7XG5cblx0Y29uc3QgbCA9ICgxMTYgKiB5KSAtIDE2O1xuXHRjb25zdCBhID0gNTAwICogKHggLSB5KTtcblx0Y29uc3QgYiA9IDIwMCAqICh5IC0geik7XG5cblx0cmV0dXJuIFtsLCBhLCBiXTtcbn07XG5cbmNvbnZlcnQubGFiLnh5eiA9IGZ1bmN0aW9uIChsYWIpIHtcblx0Y29uc3QgbCA9IGxhYlswXTtcblx0Y29uc3QgYSA9IGxhYlsxXTtcblx0Y29uc3QgYiA9IGxhYlsyXTtcblx0bGV0IHg7XG5cdGxldCB5O1xuXHRsZXQgejtcblxuXHR5ID0gKGwgKyAxNikgLyAxMTY7XG5cdHggPSBhIC8gNTAwICsgeTtcblx0eiA9IHkgLSBiIC8gMjAwO1xuXG5cdGNvbnN0IHkyID0geSAqKiAzO1xuXHRjb25zdCB4MiA9IHggKiogMztcblx0Y29uc3QgejIgPSB6ICoqIDM7XG5cdHkgPSB5MiA+IDAuMDA4ODU2ID8geTIgOiAoeSAtIDE2IC8gMTE2KSAvIDcuNzg3O1xuXHR4ID0geDIgPiAwLjAwODg1NiA/IHgyIDogKHggLSAxNiAvIDExNikgLyA3Ljc4Nztcblx0eiA9IHoyID4gMC4wMDg4NTYgPyB6MiA6ICh6IC0gMTYgLyAxMTYpIC8gNy43ODc7XG5cblx0eCAqPSA5NS4wNDc7XG5cdHkgKj0gMTAwO1xuXHR6ICo9IDEwOC44ODM7XG5cblx0cmV0dXJuIFt4LCB5LCB6XTtcbn07XG5cbmNvbnZlcnQubGFiLmxjaCA9IGZ1bmN0aW9uIChsYWIpIHtcblx0Y29uc3QgbCA9IGxhYlswXTtcblx0Y29uc3QgYSA9IGxhYlsxXTtcblx0Y29uc3QgYiA9IGxhYlsyXTtcblx0bGV0IGg7XG5cblx0Y29uc3QgaHIgPSBNYXRoLmF0YW4yKGIsIGEpO1xuXHRoID0gaHIgKiAzNjAgLyAyIC8gTWF0aC5QSTtcblxuXHRpZiAoaCA8IDApIHtcblx0XHRoICs9IDM2MDtcblx0fVxuXG5cdGNvbnN0IGMgPSBNYXRoLnNxcnQoYSAqIGEgKyBiICogYik7XG5cblx0cmV0dXJuIFtsLCBjLCBoXTtcbn07XG5cbmNvbnZlcnQubGNoLmxhYiA9IGZ1bmN0aW9uIChsY2gpIHtcblx0Y29uc3QgbCA9IGxjaFswXTtcblx0Y29uc3QgYyA9IGxjaFsxXTtcblx0Y29uc3QgaCA9IGxjaFsyXTtcblxuXHRjb25zdCBociA9IGggLyAzNjAgKiAyICogTWF0aC5QSTtcblx0Y29uc3QgYSA9IGMgKiBNYXRoLmNvcyhocik7XG5cdGNvbnN0IGIgPSBjICogTWF0aC5zaW4oaHIpO1xuXG5cdHJldHVybiBbbCwgYSwgYl07XG59O1xuXG5jb252ZXJ0LnJnYi5hbnNpMTYgPSBmdW5jdGlvbiAoYXJncywgc2F0dXJhdGlvbiA9IG51bGwpIHtcblx0Y29uc3QgW3IsIGcsIGJdID0gYXJncztcblx0bGV0IHZhbHVlID0gc2F0dXJhdGlvbiA9PT0gbnVsbCA/IGNvbnZlcnQucmdiLmhzdihhcmdzKVsyXSA6IHNhdHVyYXRpb247IC8vIEhzdiAtPiBhbnNpMTYgb3B0aW1pemF0aW9uXG5cblx0dmFsdWUgPSBNYXRoLnJvdW5kKHZhbHVlIC8gNTApO1xuXG5cdGlmICh2YWx1ZSA9PT0gMCkge1xuXHRcdHJldHVybiAzMDtcblx0fVxuXG5cdGxldCBhbnNpID0gMzBcblx0XHQrICgoTWF0aC5yb3VuZChiIC8gMjU1KSA8PCAyKVxuXHRcdHwgKE1hdGgucm91bmQoZyAvIDI1NSkgPDwgMSlcblx0XHR8IE1hdGgucm91bmQociAvIDI1NSkpO1xuXG5cdGlmICh2YWx1ZSA9PT0gMikge1xuXHRcdGFuc2kgKz0gNjA7XG5cdH1cblxuXHRyZXR1cm4gYW5zaTtcbn07XG5cbmNvbnZlcnQuaHN2LmFuc2kxNiA9IGZ1bmN0aW9uIChhcmdzKSB7XG5cdC8vIE9wdGltaXphdGlvbiBoZXJlOyB3ZSBhbHJlYWR5IGtub3cgdGhlIHZhbHVlIGFuZCBkb24ndCBuZWVkIHRvIGdldFxuXHQvLyBpdCBjb252ZXJ0ZWQgZm9yIHVzLlxuXHRyZXR1cm4gY29udmVydC5yZ2IuYW5zaTE2KGNvbnZlcnQuaHN2LnJnYihhcmdzKSwgYXJnc1syXSk7XG59O1xuXG5jb252ZXJ0LnJnYi5hbnNpMjU2ID0gZnVuY3Rpb24gKGFyZ3MpIHtcblx0Y29uc3QgciA9IGFyZ3NbMF07XG5cdGNvbnN0IGcgPSBhcmdzWzFdO1xuXHRjb25zdCBiID0gYXJnc1syXTtcblxuXHQvLyBXZSB1c2UgdGhlIGV4dGVuZGVkIGdyZXlzY2FsZSBwYWxldHRlIGhlcmUsIHdpdGggdGhlIGV4Y2VwdGlvbiBvZlxuXHQvLyBibGFjayBhbmQgd2hpdGUuIG5vcm1hbCBwYWxldHRlIG9ubHkgaGFzIDQgZ3JleXNjYWxlIHNoYWRlcy5cblx0aWYgKHIgPT09IGcgJiYgZyA9PT0gYikge1xuXHRcdGlmIChyIDwgOCkge1xuXHRcdFx0cmV0dXJuIDE2O1xuXHRcdH1cblxuXHRcdGlmIChyID4gMjQ4KSB7XG5cdFx0XHRyZXR1cm4gMjMxO1xuXHRcdH1cblxuXHRcdHJldHVybiBNYXRoLnJvdW5kKCgociAtIDgpIC8gMjQ3KSAqIDI0KSArIDIzMjtcblx0fVxuXG5cdGNvbnN0IGFuc2kgPSAxNlxuXHRcdCsgKDM2ICogTWF0aC5yb3VuZChyIC8gMjU1ICogNSkpXG5cdFx0KyAoNiAqIE1hdGgucm91bmQoZyAvIDI1NSAqIDUpKVxuXHRcdCsgTWF0aC5yb3VuZChiIC8gMjU1ICogNSk7XG5cblx0cmV0dXJuIGFuc2k7XG59O1xuXG5jb252ZXJ0LmFuc2kxNi5yZ2IgPSBmdW5jdGlvbiAoYXJncykge1xuXHRsZXQgY29sb3IgPSBhcmdzICUgMTA7XG5cblx0Ly8gSGFuZGxlIGdyZXlzY2FsZVxuXHRpZiAoY29sb3IgPT09IDAgfHwgY29sb3IgPT09IDcpIHtcblx0XHRpZiAoYXJncyA+IDUwKSB7XG5cdFx0XHRjb2xvciArPSAzLjU7XG5cdFx0fVxuXG5cdFx0Y29sb3IgPSBjb2xvciAvIDEwLjUgKiAyNTU7XG5cblx0XHRyZXR1cm4gW2NvbG9yLCBjb2xvciwgY29sb3JdO1xuXHR9XG5cblx0Y29uc3QgbXVsdCA9ICh+fihhcmdzID4gNTApICsgMSkgKiAwLjU7XG5cdGNvbnN0IHIgPSAoKGNvbG9yICYgMSkgKiBtdWx0KSAqIDI1NTtcblx0Y29uc3QgZyA9ICgoKGNvbG9yID4+IDEpICYgMSkgKiBtdWx0KSAqIDI1NTtcblx0Y29uc3QgYiA9ICgoKGNvbG9yID4+IDIpICYgMSkgKiBtdWx0KSAqIDI1NTtcblxuXHRyZXR1cm4gW3IsIGcsIGJdO1xufTtcblxuY29udmVydC5hbnNpMjU2LnJnYiA9IGZ1bmN0aW9uIChhcmdzKSB7XG5cdC8vIEhhbmRsZSBncmV5c2NhbGVcblx0aWYgKGFyZ3MgPj0gMjMyKSB7XG5cdFx0Y29uc3QgYyA9IChhcmdzIC0gMjMyKSAqIDEwICsgODtcblx0XHRyZXR1cm4gW2MsIGMsIGNdO1xuXHR9XG5cblx0YXJncyAtPSAxNjtcblxuXHRsZXQgcmVtO1xuXHRjb25zdCByID0gTWF0aC5mbG9vcihhcmdzIC8gMzYpIC8gNSAqIDI1NTtcblx0Y29uc3QgZyA9IE1hdGguZmxvb3IoKHJlbSA9IGFyZ3MgJSAzNikgLyA2KSAvIDUgKiAyNTU7XG5cdGNvbnN0IGIgPSAocmVtICUgNikgLyA1ICogMjU1O1xuXG5cdHJldHVybiBbciwgZywgYl07XG59O1xuXG5jb252ZXJ0LnJnYi5oZXggPSBmdW5jdGlvbiAoYXJncykge1xuXHRjb25zdCBpbnRlZ2VyID0gKChNYXRoLnJvdW5kKGFyZ3NbMF0pICYgMHhGRikgPDwgMTYpXG5cdFx0KyAoKE1hdGgucm91bmQoYXJnc1sxXSkgJiAweEZGKSA8PCA4KVxuXHRcdCsgKE1hdGgucm91bmQoYXJnc1syXSkgJiAweEZGKTtcblxuXHRjb25zdCBzdHJpbmcgPSBpbnRlZ2VyLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpO1xuXHRyZXR1cm4gJzAwMDAwMCcuc3Vic3RyaW5nKHN0cmluZy5sZW5ndGgpICsgc3RyaW5nO1xufTtcblxuY29udmVydC5oZXgucmdiID0gZnVuY3Rpb24gKGFyZ3MpIHtcblx0Y29uc3QgbWF0Y2ggPSBhcmdzLnRvU3RyaW5nKDE2KS5tYXRjaCgvW2EtZjAtOV17Nn18W2EtZjAtOV17M30vaSk7XG5cdGlmICghbWF0Y2gpIHtcblx0XHRyZXR1cm4gWzAsIDAsIDBdO1xuXHR9XG5cblx0bGV0IGNvbG9yU3RyaW5nID0gbWF0Y2hbMF07XG5cblx0aWYgKG1hdGNoWzBdLmxlbmd0aCA9PT0gMykge1xuXHRcdGNvbG9yU3RyaW5nID0gY29sb3JTdHJpbmcuc3BsaXQoJycpLm1hcChjaGFyID0+IHtcblx0XHRcdHJldHVybiBjaGFyICsgY2hhcjtcblx0XHR9KS5qb2luKCcnKTtcblx0fVxuXG5cdGNvbnN0IGludGVnZXIgPSBwYXJzZUludChjb2xvclN0cmluZywgMTYpO1xuXHRjb25zdCByID0gKGludGVnZXIgPj4gMTYpICYgMHhGRjtcblx0Y29uc3QgZyA9IChpbnRlZ2VyID4+IDgpICYgMHhGRjtcblx0Y29uc3QgYiA9IGludGVnZXIgJiAweEZGO1xuXG5cdHJldHVybiBbciwgZywgYl07XG59O1xuXG5jb252ZXJ0LnJnYi5oY2cgPSBmdW5jdGlvbiAocmdiKSB7XG5cdGNvbnN0IHIgPSByZ2JbMF0gLyAyNTU7XG5cdGNvbnN0IGcgPSByZ2JbMV0gLyAyNTU7XG5cdGNvbnN0IGIgPSByZ2JbMl0gLyAyNTU7XG5cdGNvbnN0IG1heCA9IE1hdGgubWF4KE1hdGgubWF4KHIsIGcpLCBiKTtcblx0Y29uc3QgbWluID0gTWF0aC5taW4oTWF0aC5taW4ociwgZyksIGIpO1xuXHRjb25zdCBjaHJvbWEgPSAobWF4IC0gbWluKTtcblx0bGV0IGdyYXlzY2FsZTtcblx0bGV0IGh1ZTtcblxuXHRpZiAoY2hyb21hIDwgMSkge1xuXHRcdGdyYXlzY2FsZSA9IG1pbiAvICgxIC0gY2hyb21hKTtcblx0fSBlbHNlIHtcblx0XHRncmF5c2NhbGUgPSAwO1xuXHR9XG5cblx0aWYgKGNocm9tYSA8PSAwKSB7XG5cdFx0aHVlID0gMDtcblx0fSBlbHNlXG5cdGlmIChtYXggPT09IHIpIHtcblx0XHRodWUgPSAoKGcgLSBiKSAvIGNocm9tYSkgJSA2O1xuXHR9IGVsc2Vcblx0aWYgKG1heCA9PT0gZykge1xuXHRcdGh1ZSA9IDIgKyAoYiAtIHIpIC8gY2hyb21hO1xuXHR9IGVsc2Uge1xuXHRcdGh1ZSA9IDQgKyAociAtIGcpIC8gY2hyb21hO1xuXHR9XG5cblx0aHVlIC89IDY7XG5cdGh1ZSAlPSAxO1xuXG5cdHJldHVybiBbaHVlICogMzYwLCBjaHJvbWEgKiAxMDAsIGdyYXlzY2FsZSAqIDEwMF07XG59O1xuXG5jb252ZXJ0LmhzbC5oY2cgPSBmdW5jdGlvbiAoaHNsKSB7XG5cdGNvbnN0IHMgPSBoc2xbMV0gLyAxMDA7XG5cdGNvbnN0IGwgPSBoc2xbMl0gLyAxMDA7XG5cblx0Y29uc3QgYyA9IGwgPCAwLjUgPyAoMi4wICogcyAqIGwpIDogKDIuMCAqIHMgKiAoMS4wIC0gbCkpO1xuXG5cdGxldCBmID0gMDtcblx0aWYgKGMgPCAxLjApIHtcblx0XHRmID0gKGwgLSAwLjUgKiBjKSAvICgxLjAgLSBjKTtcblx0fVxuXG5cdHJldHVybiBbaHNsWzBdLCBjICogMTAwLCBmICogMTAwXTtcbn07XG5cbmNvbnZlcnQuaHN2LmhjZyA9IGZ1bmN0aW9uIChoc3YpIHtcblx0Y29uc3QgcyA9IGhzdlsxXSAvIDEwMDtcblx0Y29uc3QgdiA9IGhzdlsyXSAvIDEwMDtcblxuXHRjb25zdCBjID0gcyAqIHY7XG5cdGxldCBmID0gMDtcblxuXHRpZiAoYyA8IDEuMCkge1xuXHRcdGYgPSAodiAtIGMpIC8gKDEgLSBjKTtcblx0fVxuXG5cdHJldHVybiBbaHN2WzBdLCBjICogMTAwLCBmICogMTAwXTtcbn07XG5cbmNvbnZlcnQuaGNnLnJnYiA9IGZ1bmN0aW9uIChoY2cpIHtcblx0Y29uc3QgaCA9IGhjZ1swXSAvIDM2MDtcblx0Y29uc3QgYyA9IGhjZ1sxXSAvIDEwMDtcblx0Y29uc3QgZyA9IGhjZ1syXSAvIDEwMDtcblxuXHRpZiAoYyA9PT0gMC4wKSB7XG5cdFx0cmV0dXJuIFtnICogMjU1LCBnICogMjU1LCBnICogMjU1XTtcblx0fVxuXG5cdGNvbnN0IHB1cmUgPSBbMCwgMCwgMF07XG5cdGNvbnN0IGhpID0gKGggJSAxKSAqIDY7XG5cdGNvbnN0IHYgPSBoaSAlIDE7XG5cdGNvbnN0IHcgPSAxIC0gdjtcblx0bGV0IG1nID0gMDtcblxuXHQvKiBlc2xpbnQtZGlzYWJsZSBtYXgtc3RhdGVtZW50cy1wZXItbGluZSAqL1xuXHRzd2l0Y2ggKE1hdGguZmxvb3IoaGkpKSB7XG5cdFx0Y2FzZSAwOlxuXHRcdFx0cHVyZVswXSA9IDE7IHB1cmVbMV0gPSB2OyBwdXJlWzJdID0gMDsgYnJlYWs7XG5cdFx0Y2FzZSAxOlxuXHRcdFx0cHVyZVswXSA9IHc7IHB1cmVbMV0gPSAxOyBwdXJlWzJdID0gMDsgYnJlYWs7XG5cdFx0Y2FzZSAyOlxuXHRcdFx0cHVyZVswXSA9IDA7IHB1cmVbMV0gPSAxOyBwdXJlWzJdID0gdjsgYnJlYWs7XG5cdFx0Y2FzZSAzOlxuXHRcdFx0cHVyZVswXSA9IDA7IHB1cmVbMV0gPSB3OyBwdXJlWzJdID0gMTsgYnJlYWs7XG5cdFx0Y2FzZSA0OlxuXHRcdFx0cHVyZVswXSA9IHY7IHB1cmVbMV0gPSAwOyBwdXJlWzJdID0gMTsgYnJlYWs7XG5cdFx0ZGVmYXVsdDpcblx0XHRcdHB1cmVbMF0gPSAxOyBwdXJlWzFdID0gMDsgcHVyZVsyXSA9IHc7XG5cdH1cblx0LyogZXNsaW50LWVuYWJsZSBtYXgtc3RhdGVtZW50cy1wZXItbGluZSAqL1xuXG5cdG1nID0gKDEuMCAtIGMpICogZztcblxuXHRyZXR1cm4gW1xuXHRcdChjICogcHVyZVswXSArIG1nKSAqIDI1NSxcblx0XHQoYyAqIHB1cmVbMV0gKyBtZykgKiAyNTUsXG5cdFx0KGMgKiBwdXJlWzJdICsgbWcpICogMjU1XG5cdF07XG59O1xuXG5jb252ZXJ0LmhjZy5oc3YgPSBmdW5jdGlvbiAoaGNnKSB7XG5cdGNvbnN0IGMgPSBoY2dbMV0gLyAxMDA7XG5cdGNvbnN0IGcgPSBoY2dbMl0gLyAxMDA7XG5cblx0Y29uc3QgdiA9IGMgKyBnICogKDEuMCAtIGMpO1xuXHRsZXQgZiA9IDA7XG5cblx0aWYgKHYgPiAwLjApIHtcblx0XHRmID0gYyAvIHY7XG5cdH1cblxuXHRyZXR1cm4gW2hjZ1swXSwgZiAqIDEwMCwgdiAqIDEwMF07XG59O1xuXG5jb252ZXJ0LmhjZy5oc2wgPSBmdW5jdGlvbiAoaGNnKSB7XG5cdGNvbnN0IGMgPSBoY2dbMV0gLyAxMDA7XG5cdGNvbnN0IGcgPSBoY2dbMl0gLyAxMDA7XG5cblx0Y29uc3QgbCA9IGcgKiAoMS4wIC0gYykgKyAwLjUgKiBjO1xuXHRsZXQgcyA9IDA7XG5cblx0aWYgKGwgPiAwLjAgJiYgbCA8IDAuNSkge1xuXHRcdHMgPSBjIC8gKDIgKiBsKTtcblx0fSBlbHNlXG5cdGlmIChsID49IDAuNSAmJiBsIDwgMS4wKSB7XG5cdFx0cyA9IGMgLyAoMiAqICgxIC0gbCkpO1xuXHR9XG5cblx0cmV0dXJuIFtoY2dbMF0sIHMgKiAxMDAsIGwgKiAxMDBdO1xufTtcblxuY29udmVydC5oY2cuaHdiID0gZnVuY3Rpb24gKGhjZykge1xuXHRjb25zdCBjID0gaGNnWzFdIC8gMTAwO1xuXHRjb25zdCBnID0gaGNnWzJdIC8gMTAwO1xuXHRjb25zdCB2ID0gYyArIGcgKiAoMS4wIC0gYyk7XG5cdHJldHVybiBbaGNnWzBdLCAodiAtIGMpICogMTAwLCAoMSAtIHYpICogMTAwXTtcbn07XG5cbmNvbnZlcnQuaHdiLmhjZyA9IGZ1bmN0aW9uIChod2IpIHtcblx0Y29uc3QgdyA9IGh3YlsxXSAvIDEwMDtcblx0Y29uc3QgYiA9IGh3YlsyXSAvIDEwMDtcblx0Y29uc3QgdiA9IDEgLSBiO1xuXHRjb25zdCBjID0gdiAtIHc7XG5cdGxldCBnID0gMDtcblxuXHRpZiAoYyA8IDEpIHtcblx0XHRnID0gKHYgLSBjKSAvICgxIC0gYyk7XG5cdH1cblxuXHRyZXR1cm4gW2h3YlswXSwgYyAqIDEwMCwgZyAqIDEwMF07XG59O1xuXG5jb252ZXJ0LmFwcGxlLnJnYiA9IGZ1bmN0aW9uIChhcHBsZSkge1xuXHRyZXR1cm4gWyhhcHBsZVswXSAvIDY1NTM1KSAqIDI1NSwgKGFwcGxlWzFdIC8gNjU1MzUpICogMjU1LCAoYXBwbGVbMl0gLyA2NTUzNSkgKiAyNTVdO1xufTtcblxuY29udmVydC5yZ2IuYXBwbGUgPSBmdW5jdGlvbiAocmdiKSB7XG5cdHJldHVybiBbKHJnYlswXSAvIDI1NSkgKiA2NTUzNSwgKHJnYlsxXSAvIDI1NSkgKiA2NTUzNSwgKHJnYlsyXSAvIDI1NSkgKiA2NTUzNV07XG59O1xuXG5jb252ZXJ0LmdyYXkucmdiID0gZnVuY3Rpb24gKGFyZ3MpIHtcblx0cmV0dXJuIFthcmdzWzBdIC8gMTAwICogMjU1LCBhcmdzWzBdIC8gMTAwICogMjU1LCBhcmdzWzBdIC8gMTAwICogMjU1XTtcbn07XG5cbmNvbnZlcnQuZ3JheS5oc2wgPSBmdW5jdGlvbiAoYXJncykge1xuXHRyZXR1cm4gWzAsIDAsIGFyZ3NbMF1dO1xufTtcblxuY29udmVydC5ncmF5LmhzdiA9IGNvbnZlcnQuZ3JheS5oc2w7XG5cbmNvbnZlcnQuZ3JheS5od2IgPSBmdW5jdGlvbiAoZ3JheSkge1xuXHRyZXR1cm4gWzAsIDEwMCwgZ3JheVswXV07XG59O1xuXG5jb252ZXJ0LmdyYXkuY215ayA9IGZ1bmN0aW9uIChncmF5KSB7XG5cdHJldHVybiBbMCwgMCwgMCwgZ3JheVswXV07XG59O1xuXG5jb252ZXJ0LmdyYXkubGFiID0gZnVuY3Rpb24gKGdyYXkpIHtcblx0cmV0dXJuIFtncmF5WzBdLCAwLCAwXTtcbn07XG5cbmNvbnZlcnQuZ3JheS5oZXggPSBmdW5jdGlvbiAoZ3JheSkge1xuXHRjb25zdCB2YWwgPSBNYXRoLnJvdW5kKGdyYXlbMF0gLyAxMDAgKiAyNTUpICYgMHhGRjtcblx0Y29uc3QgaW50ZWdlciA9ICh2YWwgPDwgMTYpICsgKHZhbCA8PCA4KSArIHZhbDtcblxuXHRjb25zdCBzdHJpbmcgPSBpbnRlZ2VyLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpO1xuXHRyZXR1cm4gJzAwMDAwMCcuc3Vic3RyaW5nKHN0cmluZy5sZW5ndGgpICsgc3RyaW5nO1xufTtcblxuY29udmVydC5yZ2IuZ3JheSA9IGZ1bmN0aW9uIChyZ2IpIHtcblx0Y29uc3QgdmFsID0gKHJnYlswXSArIHJnYlsxXSArIHJnYlsyXSkgLyAzO1xuXHRyZXR1cm4gW3ZhbCAvIDI1NSAqIDEwMF07XG59O1xuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../node_modules/color-convert/conversions.js\n')},"../../node_modules/color-convert/index.js":function(module,exports,__webpack_require__){eval("__webpack_require__(\"../../node_modules/core-js/modules/es.object.keys.js\");\n\n__webpack_require__(\"../../node_modules/core-js/modules/es.array.for-each.js\");\n\n__webpack_require__(\"../../node_modules/core-js/modules/web.dom-collections.for-each.js\");\n\n__webpack_require__(\"../../node_modules/core-js/modules/es.object.define-property.js\");\n\nvar conversions = __webpack_require__(\"../../node_modules/color-convert/conversions.js\");\n\nvar route = __webpack_require__(\"../../node_modules/color-convert/route.js\");\n\nvar convert = {};\nvar models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n var wrappedFn = function wrappedFn() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var arg0 = args[0];\n\n if (arg0 === undefined || arg0 === null) {\n return arg0;\n }\n\n if (arg0.length > 1) {\n args = arg0;\n }\n\n return fn(args);\n }; // Preserve .conversion property if there is one\n\n\n if ('conversion' in fn) {\n wrappedFn.conversion = fn.conversion;\n }\n\n return wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n var wrappedFn = function wrappedFn() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var arg0 = args[0];\n\n if (arg0 === undefined || arg0 === null) {\n return arg0;\n }\n\n if (arg0.length > 1) {\n args = arg0;\n }\n\n var result = fn(args); // We're assuming the result is an array here.\n // see notice in conversions.js; don't use box types\n // in conversion functions.\n\n if (typeof result === 'object') {\n for (var len = result.length, i = 0; i < len; i++) {\n result[i] = Math.round(result[i]);\n }\n }\n\n return result;\n }; // Preserve .conversion property if there is one\n\n\n if ('conversion' in fn) {\n wrappedFn.conversion = fn.conversion;\n }\n\n return wrappedFn;\n}\n\nmodels.forEach(function (fromModel) {\n convert[fromModel] = {};\n Object.defineProperty(convert[fromModel], 'channels', {\n value: conversions[fromModel].channels\n });\n Object.defineProperty(convert[fromModel], 'labels', {\n value: conversions[fromModel].labels\n });\n var routes = route(fromModel);\n var routeModels = Object.keys(routes);\n routeModels.forEach(function (toModel) {\n var fn = routes[toModel];\n convert[fromModel][toModel] = wrapRounded(fn);\n convert[fromModel][toModel].raw = wrapRaw(fn);\n });\n});\nmodule.exports = convert;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vL2hvbWUvamVua2lucy93b3Jrc3BhY2UvZGVzaWduLXN5c3RlbV9tYWluL25vZGVfbW9kdWxlcy9jb2xvci1jb252ZXJ0L2luZGV4LmpzP2Y2YTYiXSwibmFtZXMiOlsiY29udmVyc2lvbnMiLCJyZXF1aXJlIiwicm91dGUiLCJjb252ZXJ0IiwibW9kZWxzIiwiT2JqZWN0Iiwia2V5cyIsIndyYXBSYXciLCJmbiIsIndyYXBwZWRGbiIsImFyZ3MiLCJhcmcwIiwidW5kZWZpbmVkIiwibGVuZ3RoIiwiY29udmVyc2lvbiIsIndyYXBSb3VuZGVkIiwicmVzdWx0IiwibGVuIiwiaSIsIk1hdGgiLCJyb3VuZCIsImZvckVhY2giLCJmcm9tTW9kZWwiLCJkZWZpbmVQcm9wZXJ0eSIsInZhbHVlIiwiY2hhbm5lbHMiLCJsYWJlbHMiLCJyb3V0ZXMiLCJyb3V0ZU1vZGVscyIsInRvTW9kZWwiLCJyYXciLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQU1BLFdBQVcsR0FBR0MsbUJBQU8sQ0FBQyxpREFBRCxDQUEzQjs7QUFDQSxJQUFNQyxLQUFLLEdBQUdELG1CQUFPLENBQUMsMkNBQUQsQ0FBckI7O0FBRUEsSUFBTUUsT0FBTyxHQUFHLEVBQWhCO0FBRUEsSUFBTUMsTUFBTSxHQUFHQyxNQUFNLENBQUNDLElBQVAsQ0FBWU4sV0FBWixDQUFmOztBQUVBLFNBQVNPLE9BQVQsQ0FBaUJDLEVBQWpCLEVBQXFCO0FBQ3BCLE1BQU1DLFNBQVMsR0FBRyxTQUFaQSxTQUFZLEdBQW1CO0FBQUEsc0NBQU5DLElBQU07QUFBTkEsVUFBTTtBQUFBOztBQUNwQyxRQUFNQyxJQUFJLEdBQUdELElBQUksQ0FBQyxDQUFELENBQWpCOztBQUNBLFFBQUlDLElBQUksS0FBS0MsU0FBVCxJQUFzQkQsSUFBSSxLQUFLLElBQW5DLEVBQXlDO0FBQ3hDLGFBQU9BLElBQVA7QUFDQTs7QUFFRCxRQUFJQSxJQUFJLENBQUNFLE1BQUws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bnQiOlsiY29uc3QgY29udmVyc2lvbnMgPSByZXF1aXJlKCcuL2NvbnZlcnNpb25zJyk7XG5jb25zdCByb3V0ZSA9IHJlcXVpcmUoJy4vcm91dGUnKTtcblxuY29uc3QgY29udmVydCA9IHt9O1xuXG5jb25zdCBtb2RlbHMgPSBPYmplY3Qua2V5cyhjb252ZXJzaW9ucyk7XG5cbmZ1bmN0aW9uIHdyYXBSYXcoZm4pIHtcblx0Y29uc3Qgd3JhcHBlZEZuID0gZnVuY3Rpb24gKC4uLmFyZ3MpIHtcblx0XHRjb25zdCBhcmcwID0gYXJnc1swXTtcblx0XHRpZiAoYXJnMCA9PT0gdW5kZWZpbmVkIHx8IGFyZzAgPT09IG51bGwpIHtcblx0XHRcdHJldHVybiBhcmcwO1xuXHRcdH1cblxuXHRcdGlmIChhcmcwLmxlbmd0aCA+IDEpIHtcblx0XHRcdGFyZ3MgPSBhcmcwO1xuXHRcdH1cblxuXHRcdHJldHVybiBmbihhcmdzKTtcblx0fTtcblxuXHQvLyBQcmVzZXJ2ZSAuY29udmVyc2lvbiBwcm9wZXJ0eSBpZiB0aGVyZSBpcyBvbmVcblx0aWYgKCdjb252ZXJzaW9uJyBpbiBmbikge1xuXHRcdHdyYXBwZWRGbi5jb252ZXJzaW9uID0gZm4uY29udmVyc2lvbjtcblx0fVxuXG5cdHJldHVybiB3cmFwcGVkRm47XG59XG5cbmZ1bmN0aW9uIHdyYXBSb3VuZGVkKGZuKSB7XG5cdGNvbnN0IHdyYXBwZWRGbiA9IGZ1bmN0aW9uICguLi5hcmdzKSB7XG5cdFx0Y29uc3QgYXJnMCA9IGFyZ3NbMF07XG5cblx0XHRpZiAoYXJnMCA9PT0gdW5kZWZpbmVkIHx8IGFyZzAgPT09IG51bGwpIHtcblx0XHRcdHJldHVybiBhcmcwO1xuXHRcdH1cblxuXHRcdGlmIChhcmcwLmxlbmd0aCA+IDEpIHtcblx0XHRcdGFyZ3MgPSBhcmcwO1xuXHRcdH1cblxuXHRcdGNvbnN0IHJlc3VsdCA9IGZuKGFyZ3MpO1xuXG5cdFx0Ly8gV2UncmUgYXNzdW1pbmcgdGhlIHJlc3VsdCBpcyBhbiBhcnJheSBoZXJlLlxuXHRcdC8vIHNlZSBub3RpY2UgaW4gY29udmVyc2lvbnMuanM7IGRvbid0IHVzZSBib3ggdHlwZXNcblx0XHQvLyBpbiBjb252ZXJzaW9uIGZ1bmN0aW9ucy5cblx0XHRpZiAodHlwZW9mIHJlc3VsdCA9PT0gJ29iamVjdCcpIHtcblx0XHRcdGZvciAobGV0IGxlbiA9IHJlc3VsdC5sZW5ndGgsIGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcblx0XHRcdFx0cmVzdWx0W2ldID0gTWF0aC5yb3VuZChyZXN1bHRbaV0pO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiByZXN1bHQ7XG5cdH07XG5cblx0Ly8gUHJlc2VydmUgLmNvbnZlcnNpb24gcHJvcGVydHkgaWYgdGhlcmUgaXMgb25lXG5cdGlmICgnY29udmVyc2lvbicgaW4gZm4pIHtcblx0XHR3cmFwcGVkRm4uY29udmVyc2lvbiA9IGZuLmNvbnZlcnNpb247XG5cdH1cblxuXHRyZXR1cm4gd3JhcHBlZEZuO1xufVxuXG5tb2RlbHMuZm9yRWFjaChmcm9tTW9kZWwgPT4ge1xuXHRjb252ZXJ0W2Zyb21Nb2RlbF0gPSB7fTtcblxuXHRPYmplY3QuZGVmaW5lUHJvcGVydHkoY29udmVydFtmcm9tTW9kZWxdLCAnY2hhbm5lbHMnLCB7dmFsdWU6IGNvbnZlcnNpb25zW2Zyb21Nb2RlbF0uY2hhbm5lbHN9KTtcblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGNvbnZlcnRbZnJvbU1vZGVsXSwgJ2xhYmVscycsIHt2YWx1ZTogY29udmVyc2lvbnNbZnJvbU1vZGVsXS5sYWJlbHN9KTtcblxuXHRjb25zdCByb3V0ZXMgPSByb3V0ZShmcm9tTW9kZWwpO1xuXHRjb25zdCByb3V0ZU1vZGVscyA9IE9iamVjdC5rZXlzKHJvdXRlcyk7XG5cblx0cm91dGVNb2RlbHMuZm9yRWFjaCh0b01vZGVsID0+IHtcblx0XHRjb25zdCBmbiA9IHJvdXRlc1t0b01vZGVsXTtcblxuXHRcdGNvbnZlcnRbZnJvbU1vZGVsXVt0b01vZGVsXSA9IHdyYXBSb3VuZGVkKGZuKTtcblx0XHRjb252ZXJ0W2Zyb21Nb2RlbF1bdG9Nb2RlbF0ucmF3ID0gd3JhcFJhdyhmbik7XG5cdH0pO1xufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gY29udmVydDtcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../node_modules/color-convert/index.js\n")},"../../node_modules/color-convert/node_modules/color-name/index.js":function(module,exports,__webpack_require__){"use strict";eval('\n\nmodule.exports = {\n "aliceblue": [240, 248, 255],\n "antiquewhite": [250, 235, 215],\n "aqua": [0, 255, 255],\n "aquamarine": [127, 255, 212],\n "azure": [240, 255, 255],\n "beige": [245, 245, 220],\n "bisque": [255, 228, 196],\n "black": [0, 0, 0],\n "blanchedalmond": [255, 235, 205],\n "blue": [0, 0, 255],\n "blueviolet": [138, 43, 226],\n "brown": [165, 42, 42],\n "burlywood": [222, 184, 135],\n "cadetblue": [95, 158, 160],\n "chartreuse": [127, 255, 0],\n "chocolate": [210, 105, 30],\n "coral": [255, 127, 80],\n "cornflowerblue": [100, 149, 237],\n "cornsilk": [255, 248, 220],\n "crimson": [220, 20, 60],\n "cyan": [0, 255, 255],\n "darkblue": [0, 0, 139],\n "darkcyan": [0, 139, 139],\n "darkgoldenrod": [184, 134, 11],\n "darkgray": [169, 169, 169],\n "darkgreen": [0, 100, 0],\n "darkgrey": [169, 169, 169],\n "darkkhaki": [189, 183, 107],\n "darkmagenta": [139, 0, 139],\n "darkolivegreen": [85, 107, 47],\n "darkorange": [255, 140, 0],\n "darkorchid": [153, 50, 204],\n "darkred": [139, 0, 0],\n "darksalmon": [233, 150, 122],\n "darkseagreen": [143, 188, 143],\n "darkslateblue": [72, 61, 139],\n "darkslategray": [47, 79, 79],\n "darkslategrey": [47, 79, 79],\n "darkturquoise": [0, 206, 209],\n "darkviolet": [148, 0, 211],\n "deeppink": [255, 20, 147],\n "deepskyblue": [0, 191, 255],\n "dimgray": [105, 105, 105],\n "dimgrey": [105, 105, 105],\n "dodgerblue": [30, 144, 255],\n "firebrick": [178, 34, 34],\n "floralwhite": [255, 250, 240],\n "forestgreen": [34, 139, 34],\n "fuchsia": [255, 0, 255],\n "gainsboro": [220, 220, 220],\n "ghostwhite": [248, 248, 255],\n "gold": [255, 215, 0],\n "goldenrod": [218, 165, 32],\n "gray": [128, 128, 128],\n "green": [0, 128, 0],\n "greenyellow": [173, 255, 47],\n "grey": [128, 128, 128],\n "honeydew": [240, 255, 240],\n "hotpink": [255, 105, 180],\n "indianred": [205, 92, 92],\n "indigo": [75, 0, 130],\n "ivory": [255, 255, 240],\n "khaki": [240, 230, 140],\n "lavender": [230, 230, 250],\n "lavenderblush": [255, 240, 245],\n "lawngreen": [124, 252, 0],\n "lemonchiffon": [255, 250, 205],\n "lightblue": [173, 216, 230],\n "lightcoral": [240, 128, 128],\n "lightcyan": [224, 255, 255],\n "lightgoldenrodyellow": [250, 250, 210],\n "lightgray": [211, 211, 211],\n "lightgreen": [144, 238, 144],\n "lightgrey": [211, 211, 211],\n "lightpink": [255, 182, 193],\n "lightsalmon": [255, 160, 122],\n "lightseagreen": [32, 178, 170],\n "lightskyblue": [135, 206, 250],\n "lightslategray": [119, 136, 153],\n "lightslategrey": [119, 136, 153],\n "lightsteelblue": [176, 196, 222],\n "lightyellow": [255, 255, 224],\n "lime": [0, 255, 0],\n "limegreen": [50, 205, 50],\n "linen": [250, 240, 230],\n "magenta": [255, 0, 255],\n "maroon": [128, 0, 0],\n "mediumaquamarine": [102, 205, 170],\n "mediumblue": [0, 0, 205],\n "mediumorchid": [186, 85, 211],\n "mediumpurple": [147, 112, 219],\n "mediumseagreen": [60, 179, 113],\n "mediumslateblue": [123, 104, 238],\n "mediumspringgreen": [0, 250, 154],\n "mediumturquoise": [72, 209, 204],\n "mediumvioletred": [199, 21, 133],\n "midnightblue": [25, 25, 112],\n "mintcream": [245, 255, 250],\n "mistyrose": [255, 228, 225],\n "moccasin": [255, 228, 181],\n "navajowhite": [255, 222, 173],\n "navy": [0, 0, 128],\n "oldlace": [253, 245, 230],\n "olive": [128, 128, 0],\n "olivedrab": [107, 142, 35],\n "orange": [255, 165, 0],\n "orangered": [255, 69, 0],\n "orchid": [218, 112, 214],\n "palegoldenrod": [238, 232, 170],\n "palegreen": [152, 251, 152],\n "paleturquoise": [175, 238, 238],\n "palevioletred": [219, 112, 147],\n "papayawhip": [255, 239, 213],\n "peachpuff": [255, 218, 185],\n "peru": [205, 133, 63],\n "pink": [255, 192, 203],\n "plum": [221, 160, 221],\n "powderblue": [176, 224, 230],\n "purple": [128, 0, 128],\n "rebeccapurple": [102, 51, 153],\n "red": [255, 0, 0],\n "rosybrown": [188, 143, 143],\n "royalblue": [65, 105, 225],\n "saddlebrown": [139, 69, 19],\n "salmon": [250, 128, 114],\n "sandybrown": [244, 164, 96],\n "seagreen": [46, 139, 87],\n "seashell": [255, 245, 238],\n "sienna": [160, 82, 45],\n "silver": [192, 192, 192],\n "skyblue": [135, 206, 235],\n "slateblue": [106, 90, 205],\n "slategray": [112, 128, 144],\n "slategrey": [112, 128, 144],\n "snow": [255, 250, 250],\n "springgreen": [0, 255, 127],\n "steelblue": [70, 130, 180],\n "tan": [210, 180, 140],\n "teal": [0, 128, 128],\n "thistle": [216, 191, 216],\n "tomato": [255, 99, 71],\n "turquoise": [64, 224, 208],\n "violet": [238, 130, 238],\n "wheat": [245, 222, 179],\n "white": [255, 255, 255],\n "whitesmoke": [245, 245, 245],\n "yellow": [255, 255, 0],\n "yellowgreen": [154, 205, 50]\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vL2hvbWUvamVua2lucy93b3Jrc3BhY2UvZGVzaWduLXN5c3RlbV9tYWluL25vZGVfbW9kdWxlcy9jb2xvci1jb252ZXJ0L25vZGVfbW9kdWxlcy9jb2xvci1uYW1lL2luZGV4LmpzPzBmMjkiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUFBLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQjtBQUNoQixlQUFhLENBQUMsR0FBRCxFQUFNLEdBQU4sRUFBVyxHQUFYLENBREc7QUFFaEIsa0JBQWdCLENBQUMsR0FBRCxFQUFNLEdBQU4sRUFBVyxHQUFYLENBRkE7QUFHaEIsVUFBUSxDQUFDLENBQUQsRUFBSSxHQUFKLEVBQVMsR0FBVCxDQUhRO0FBSWhCLGdCQUFjLENBQUMsR0FBRCxFQUFNLEdBQU4sRUFBVyxHQUFYLENBSkU7QUFLaEIsV0FBUyxDQUFDLEdBQUQsRUFBTSxHQUFOLEVBQVcsR0FBWCxDQUxPO0FBTWhCLFdBQVMsQ0FBQyxHQUFELEVBQU0sR0FBTixFQUFXLEdBQVgsQ0FOTztBQU9oQixZQUFVLENBQUMsR0FBRCxFQUFNLEdBQU4sRUFBVyxHQUFYLENBUE07QUFRaEIsV0FBUyxDQUFDLENBQUQsRUFBSSxDQUFKLEVBQU8sQ0FBUCxDQVJPO0FBU2hCLG9CQUFrQixDQUFDLEdBQUQsRUFBTSxHQUFOLEVBQVcsR0FBWCxDQVRGO0FBVWhCLFVBQVEsQ0FBQyxDQUFELEVBQUksQ0FBSixFQUFPLEdBQVAsQ0FWUTtBQVdoQixnQkFBYyxDQUFDLEdBQUQsRUFBTSxFQUFOLEVBQVUsR0FBVixDQVhFO0FBWWhCLFdBQVMsQ0FBQyxHQUFELEVBQU0sRUFBTixFQUFVLEVBQVYsQ0FaTztBQWFoQixlQUFhLENBQUMsR0FBRCxFQUFNLEdBQU4sRUFBVyxHQUFYLENBYkc7QUFjaEIsZUFBYSxDQUFDLEVBQUQsRUFBSyxHQUFMLEVBQVUsR0FBVixDQWRHO0FBZWhCLGdCQUFjLENBQUMsR0FBRCxFQUFNLEdB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UyxDQUFDLEdBQUQsRUFBTSxHQUFOLEVBQVcsR0FBWCxDQWpKTztBQWtKaEIsZ0JBQWMsQ0FBQyxHQUFELEVBQU0sR0FBTixFQUFXLEdBQVgsQ0FsSkU7QUFtSmhCLFlBQVUsQ0FBQyxHQUFELEVBQU0sR0FBTixFQUFXLENBQVgsQ0FuSk07QUFvSmhCLGlCQUFlLENBQUMsR0FBRCxFQUFNLEdBQU4sRUFBVyxFQUFYO0FBcEpDLENBQWpCIiwiZmlsZSI6Ii4uLy4uL25vZGVfbW9kdWxlcy9jb2xvci1jb252ZXJ0L25vZGVfbW9kdWxlcy9jb2xvci1uYW1lL2luZGV4LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnXHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHtcclxuXHRcImFsaWNlYmx1ZVwiOiBbMjQwLCAyNDgsIDI1NV0sXHJcblx0XCJhbnRpcXVld2hpdGVcIjogWzI1MCwgMjM1LCAyMTVdLFxyXG5cdFwiYXF1YVwiOiBbMCwgMjU1LCAyNTVdLFxyXG5cdFwiYXF1YW1hcmluZVwiOiBbMTI3LCAyNTUsIDIxMl0sXHJcblx0XCJhenVyZVwiOiBbMjQwLCAyNTUsIDI1NV0sXHJcblx0XCJiZWlnZVwiOiBbMjQ1LCAyNDUsIDIyMF0sXHJcblx0XCJiaXNxdWVcIjogWzI1NSwgMjI4LCAxOTZdLFxyXG5cdFwiYmxhY2tcIjogWzAsIDAsIDBdLFxyXG5cdFwiYmxhbmNoZWRhbG1vbmRcIjogWzI1NSwgMjM1LCAyMDVdLFxyXG5cdFwiYmx1ZVwiOiBbMCwgMCwgMjU1XSxcclxuXHRcImJsdWV2aW9sZXRcIjogWzEzOCwgNDMsIDIyNl0sXHJcblx0XCJicm93blwiOiBbMTY1LCA0MiwgNDJdLFxyXG5cdFwiYnVybHl3b29kXCI6IFsyMjIsIDE4NCwgMTM1XSxcclxuXHRcImNhZGV0Ymx1ZVwiOiBbOTUsIDE1OCwgMTYwXSxcclxuXHRcImNoYXJ0cmV1c2VcIjogWzEyNywgMjU1LCAwXSxcclxuXHRcImNob2NvbGF0ZVwiOiBbMjEwLCAxMDUsIDMwXSxcclxuXHRcImNvcmFsXCI6IFsyNTUsIDEyNywgODBdLFxyXG5cdFwiY29ybmZsb3dlcmJsdWVcIjogWzEwMCwgMTQ5LCAyMzddLFxyXG5cdFwiY29ybnNpbGtcIjogWzI1NSwgMjQ4LCAyMjBdLFxyXG5cdFwiY3JpbXNvblwiOiBbMjIwLCAyMCwgNjBdLFxyXG5cdFwiY3lhblwiOiBbMCwgMjU1LCAyNTVdLFxyXG5cdFwiZGFya2JsdWVcIjogWzAsIDAsIDEzOV0sXHJcblx0XCJkYXJrY3lhblwiOiBbMCwgMTM5LCAxMzldLFxyXG5cdFwiZGFya2dvbGRlbnJvZFwiOiBbMTg0LCAxMzQsIDExXSxcclxuXHRcImRhcmtncmF5XCI6IFsxNjksIDE2OSwgMTY5XSxcclxuXHRcImRhcmtncmVlblwiOiBbMCwgMTAwLCAwXSxcclxuXHRcImRhcmtncmV5XCI6IFsxNjksIDE2OSwgMTY5XSxcclxuXHRcImRhcmtraGFraVwiOiBbMTg5LCAxODMsIDEwN10sXHJcblx0XCJkYXJrbWFnZW50YVwiOiBbMTM5LCAwLCAxMzldLFxyXG5cdFwiZGFya29saXZlZ3JlZW5cIjogWzg1LCAxMDcsIDQ3XSxcclxuXHRcImRhcmtvcmFuZ2VcIjogWzI1NSwgMTQwLCAwXSxcclxuXHRcImRhcmtvcmNoaWRcIjogWzE1MywgNTAsIDIwNF0sXHJcblx0XCJkYXJrcmVkXCI6IFsxMzksIDAsIDBdLFxyXG5cdFwiZGFya3NhbG1vblwiOiBbMjMzLCAxNTAsIDEyMl0sXHJcblx0XCJkYXJrc2VhZ3JlZW5cIjogWzE0MywgMTg4LCAxNDNdLFxyXG5cdFwiZGFya3NsYXRlYmx1ZVwiOiBbNzIsIDYxLCAxMzldLFxyXG5cdFwiZGFya3NsYXRlZ3JheVwiOiBbNDcsIDc5LCA3OV0sXHJcblx0XCJkYXJrc2xhdGVncmV5XCI6IFs0NywgNzksIDc5XSxcclxuXHRcImRhcmt0dXJxdW9pc2VcIjogWzAsIDIwNiwgMjA5XSxcclxuXHRcImRhcmt2aW9sZXRcIjogWzE0OCwgMCwgMjExXSxcclxuXHRcImRlZXBwaW5rXCI6IFsyNTUsIDIwLCAxNDddLFxyXG5cdFwiZGVlcHNreWJsdWVcIjogWzAsIDE5MSwgMjU1XSxcclxuXHRcImRpbWdyYXlcIjogWzEwNSwgMTA1LCAxMDVdLFxyXG5cdFwiZGltZ3JleVwiOiBbMTA1LCAxMDUsIDEwNV0sXHJcblx0XCJkb2RnZXJibHVlXCI6IFszMCwgMTQ0LCAyNTVdLFxyXG5cdFwiZmlyZWJyaWNrXCI6IFsxNzgsIDM0LCAzNF0sXHJcblx0XCJmbG9yYWx3aGl0ZVwiOiBbMjU1LCAyNTAsIDI0MF0sXHJcblx0XCJmb3Jlc3RncmVlblwiOiBbMzQsIDEzOSwgMzRdLFxyXG5cdFwiZnVjaHNpYVwiOiBbMjU1LCAwLCAyNTVdLFxyXG5cdFwiZ2FpbnNib3JvXCI6IFsyMjAsIDIyMCwgMjIwXSxcclxuXHRcImdob3N0d2hpdGVcIjogWzI0OCwgMjQ4LCAyNTVdLFxyXG5cdFwiZ29sZFwiOiBbMjU1LCAyMTUsIDBdLFxyXG5cdFwiZ29sZGVucm9kXCI6IFsyMTgsIDE2NSwgMzJdLFxyXG5cdFwiZ3JheVwiOiBbMTI4LCAxMjgsIDEyOF0sXHJcblx0XCJncmVlblwiOiBbMCwgMTI4LCAwXSxcclxuXHRcImdyZWVueWVsbG93XCI6IFsxNzMsIDI1NSwgNDddLFxyXG5cdFwiZ3JleVwiOiBbMTI4LCAxMjgsIDEyOF0sXHJcblx0XCJob25leWRld1wiOiBbMjQwLCAyNTUsIDI0MF0sXHJcblx0XCJob3RwaW5rXCI6IFsyNTUsIDEwNSwgMTgwXSxcclxuXHRcImluZGlhbnJlZFwiOiBbMjA1LCA5MiwgOTJdLFxyXG5cdFwiaW5kaWdvXCI6IFs3NSwgMCwgMTMwXSxcclxuXHRcIml2b3J5XCI6IFsyNTUsIDI1NSwgMjQwXSxcclxuXHRcImtoYWtpXCI6IFsyNDAsIDIzMCwgMTQwXSxcclxuXHRcImxhdmVuZGVyXCI6IFsyMzAsIDIzMCwgMjUwXSxcclxuXHRcImxhdmVuZGVyYmx1c2hcIjogWzI1NSwgMjQwLCAyNDVdLFxyXG5cdFwibGF3bmdyZWVuXCI6IFsxMjQsIDI1MiwgMF0sXHJcblx0XCJsZW1vbmNoaWZmb25cIjogWzI1NSwgMjUwLCAyMDVdLFxyXG5cdFwibGlnaHRibHVlXCI6IFsxNzMsIDIxNiwgMjMwXSxcclxuXHRcImxpZ2h0Y29yYWxcIjogWzI0MCwgMTI4LCAxMjhdLFxyXG5cdFwibGlnaHRjeWFuXCI6IFsyMjQsIDI1NSwgMjU1XSxcclxuXHRcImxpZ2h0Z29sZGVucm9keWVsbG93XCI6IFsyNTAsIDI1MCwgMjEwXSxcclxuXHRcImxpZ2h0Z3JheVwiOiBbMjExLCAyMTEsIDIxMV0sXHJcblx0XCJsaWdodGdyZWVuXCI6IFsxNDQsIDIzOCwgMTQ0XSxcclxuXHRcImxpZ2h0Z3JleVwiOiBbMjExLCAyMTEsIDIxMV0sXHJcblx0XCJsaWdodHBpbmtcIjogWzI1NSwgMTgyLCAxOTNdLFxyXG5cdFwibGlnaHRzYWxtb25cIjogWzI1NSwgMTYwLCAxMjJdLFxyXG5cdFwibGlnaHRzZWFncmVlblwiOiBbMzIsIDE3OCwgMTcwXSxcclxuXHRcImxpZ2h0c2t5Ymx1ZVwiOiBbMTM1LCAyMDYsIDI1MF0sXHJcblx0XCJsaWdodHNsYXRlZ3JheVwiOiBbMTE5LCAxMzYsIDE1M10sXHJcblx0XCJsaWdodHNsYXRlZ3JleVwiOiBbMTE5LCAxMzYsIDE1M10sXHJcblx0XCJsaWdodHN0ZWVsYmx1ZVwiOiBbMTc2LCAxOTYsIDIyMl0sXHJcblx0XCJsaWdodHllbGxvd1wiOiBbMjU1LCAyNTUsIDIyNF0sXHJcblx0XCJsaW1lXCI6IFswLCAyNTUsIDBdLFxyXG5cdFwibGltZWdyZWVuXCI6IFs1MCwgMjA1LCA1MF0sXHJcblx0XCJsaW5lblwiOiBbMjUwLCAyNDAsIDIzMF0sXHJcblx0XCJtYWdlbnRhXCI6IFsyNTUsIDAsIDI1NV0sXHJcblx0XCJtYXJvb25cIjogWzEyOCwgMCwgMF0sXHJcblx0XCJtZWRpdW1hcXVhbWFyaW5lXCI6IFsxMDIsIDIwNSwgMTcwXSxcclxuXHRcIm1lZGl1bWJsdWVcIjogWzAsIDAsIDIwNV0sXHJcblx0XCJtZWRpdW1vcmNoaWRcIjogWzE4NiwgODUsIDIxMV0sXHJcblx0XCJtZWRpdW1wdXJwbGVcIjogWzE0NywgMTEyLCAyMTldLFxyXG5cdFwibWVkaXVtc2VhZ3JlZW5cIjogWzYwLCAxNzksIDExM10sXHJcblx0XCJtZWRpdW1zbGF0ZWJsdWVcIjogWzEyMywgMTA0LCAyMzhdLFxyXG5cdFwibWVkaXVtc3ByaW5nZ3JlZW5cIjogWzAsIDI1MCwgMTU0XSxcclxuXHRcIm1lZGl1bXR1cnF1b2lzZVwiOiBbNzIsIDIwOSwgMjA0XSxcclxuXHRcIm1lZGl1bXZpb2xldHJlZFwiOiBbMTk5LCAyMSwgMTMzXSxcclxuXHRcIm1pZG5pZ2h0Ymx1ZVwiOiBbMjUsIDI1LCAxMTJdLFxyXG5cdFwibWludGNyZWFtXCI6IFsyNDUsIDI1NSwgMjUwXSxcclxuXHRcIm1pc3R5cm9zZVwiOiBbMjU1LCAyMjgsIDIyNV0sXHJcblx0XCJtb2NjYXNpblwiOiBbMjU1LCAyMjgsIDE4MV0sXHJcblx0XCJuYXZham93aGl0ZVwiOiBbMjU1LCAyMjIsIDE3M10sXHJcblx0XCJuYXZ5XCI6IFswLCAwLCAxMjhdLFxyXG5cdFwib2xkbGFjZVwiOiBbMjUzLCAyNDUsIDIzMF0sXHJcblx0XCJvbGl2ZVwiOiBbMTI4LCAxMjgsIDBdLFxyXG5cdFwib2xpdmVkcmFiXCI6IFsxMDcsIDE0MiwgMzVdLFxyXG5cdFwib3JhbmdlXCI6IFsyNTUsIDE2NSwgMF0sXHJcblx0XCJvcmFuZ2VyZWRcIjogWzI1NSwgNjksIDBdLFxyXG5cdFwib3JjaGlkXCI6IFsyMTgsIDExMiwgMjE0XSxcclxuXHRcInBhbGVnb2xkZW5yb2RcIjogWzIzOCwgMjMyLCAxNzBdLFxyXG5cdFwicGFsZWdyZWVuXCI6IFsxNTIsIDI1MSwgMTUyXSxcclxuXHRcInBhbGV0dXJxdW9pc2VcIjogWzE3NSwgMjM4LCAyMzhdLFxyXG5cdFwicGFsZXZpb2xldHJlZFwiOiBbMjE5LCAxMTIsIDE0N10sXHJcblx0XCJwYXBheWF3aGlwXCI6IFsyNTUsIDIzOSwgMjEzXSxcclxuXHRcInBlYWNocHVmZlwiOiBbMjU1LCAyMTgsIDE4NV0sXHJcblx0XCJwZXJ1XCI6IFsyMDUsIDEzMywgNjNdLFxyXG5cdFwicGlua1wiOiBbMjU1LCAxOTIsIDIwM10sXHJcblx0XCJwbHVtXCI6IFsyMjEsIDE2MCwgMjIxXSxcclxuXHRcInBvd2RlcmJsdWVcIjogWzE3NiwgMjI0LCAyMzBdLFxyXG5cdFwicHVycGxlXCI6IFsxMjgsIDAsIDEyOF0sXHJcblx0XCJyZWJlY2NhcHVycGxlXCI6IFsxMDIsIDUxLCAxNTNdLFxyXG5cdFwicmVkXCI6IFsyNTUsIDAsIDBdLFxyXG5cdFwicm9zeWJyb3duXCI6IFsxODgsIDE0MywgMTQzXSxcclxuXHRcInJveWFsYmx1ZVwiOiBbNjUsIDEwNSwgMjI1XSxcclxuXHRcInNhZGRsZWJyb3duXCI6IFsxMzksIDY5LCAxOV0sXHJcblx0XCJzYWxtb25cIjogWzI1MCwgMTI4LCAxMTRdLFxyXG5cdFwic2FuZHlicm93blwiOiBbMjQ0LCAxNjQsIDk2XSxcclxuXHRcInNlYWdyZWVuXCI6IFs0NiwgMTM5LCA4N10sXHJcblx0XCJzZWFzaGVsbFwiOiBbMjU1LCAyNDUsIDIzOF0sXHJcblx0XCJzaWVubmFcIjogWzE2MCwgODIsIDQ1XSxcclxuXHRcInNpbHZlclwiOiBbMTkyLCAxOTIsIDE5Ml0sXHJcblx0XCJza3libHVlXCI6IFsxMzUsIDIwNiwgMjM1XSxcclxuXHRcInNsYXRlYmx1ZVwiOiBbMTA2LCA5MCwgMjA1XSxcclxuXHRcInNsYXRlZ3JheVwiOiBbMTEyLCAxMjgsIDE0NF0sXHJcblx0XCJzbGF0ZWdyZXlcIjogWzExMiwgMTI4LCAxNDRdLFxyXG5cdFwic25vd1wiOiBbMjU1LCAyNTAsIDI1MF0sXHJcblx0XCJzcHJpbmdncmVlblwiOiBbMCwgMjU1LCAxMjddLFxyXG5cdFwic3RlZWxibHVlXCI6IFs3MCwgMTMwLCAxODBdLFxyXG5cdFwidGFuXCI6IFsyMTAsIDE4MCwgMTQwXSxcclxuXHRcInRlYWxcIjogWzAsIDEyOCwgMTI4XSxcclxuXHRcInRoaXN0bGVcIjogWzIxNiwgMTkxLCAyMTZdLFxyXG5cdFwidG9tYXRvXCI6IFsyNTUsIDk5LCA3MV0sXHJcblx0XCJ0dXJxdW9pc2VcIjogWzY0LCAyMjQsIDIwOF0sXHJcblx0XCJ2aW9sZXRcIjogWzIzOCwgMTMwLCAyMzhdLFxyXG5cdFwid2hlYXRcIjogWzI0NSwgMjIyLCAxNzldLFxyXG5cdFwid2hpdGVcIjogWzI1NSwgMjU1LCAyNTVdLFxyXG5cdFwid2hpdGVzbW9rZVwiOiBbMjQ1LCAyNDUsIDI0NV0sXHJcblx0XCJ5ZWxsb3dcIjogWzI1NSwgMjU1LCAwXSxcclxuXHRcInllbGxvd2dyZWVuXCI6IFsxNTQsIDIwNSwgNTBdXHJcbn07XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../node_modules/color-convert/node_modules/color-name/index.js\n')},"../../node_modules/color-convert/route.js":function(module,exports,__webpack_require__){eval("__webpack_require__(\"../../node_modules/core-js/modules/es.object.keys.js\");\n\nvar conversions = __webpack_require__(\"../../node_modules/color-convert/conversions.js\");\n/*\n\tThis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\n\nfunction buildGraph() {\n var graph = {}; // https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\n var models = Object.keys(conversions);\n\n for (var len = models.length, i = 0; i < len; i++) {\n graph[models[i]] = {\n // http://jsperf.com/1-vs-infinity\n // micro-opt, but this is simple.\n distance: -1,\n parent: null\n };\n }\n\n return graph;\n} // https://en.wikipedia.org/wiki/Breadth-first_search\n\n\nfunction deriveBFS(fromModel) {\n var graph = buildGraph();\n var queue = [fromModel]; // Unshift -> queue -> pop\n\n graph[fromModel].distance = 0;\n\n while (queue.length) {\n var current = queue.pop();\n var adjacents = Object.keys(conversions[current]);\n\n for (var len = adjacents.length, i = 0; i < len; i++) {\n var adjacent = adjacents[i];\n var node = graph[adjacent];\n\n if (node.distance === -1) {\n node.distance = graph[current].distance + 1;\n node.parent = current;\n queue.unshift(adjacent);\n }\n }\n }\n\n return graph;\n}\n\nfunction link(from, to) {\n return function (args) {\n return to(from(args));\n };\n}\n\nfunction wrapConversion(toModel, graph) {\n var path = [graph[toModel].parent, toModel];\n var fn = conversions[graph[toModel].parent][toModel];\n var cur = graph[toModel].parent;\n\n while (graph[cur].parent) {\n path.unshift(graph[cur].parent);\n fn = link(conversions[graph[cur].parent][cur], fn);\n cur = graph[cur].parent;\n }\n\n fn.conversion = path;\n return fn;\n}\n\nmodule.exports = function (fromModel) {\n var graph = deriveBFS(fromModel);\n var conversion = {};\n var models = Object.keys(graph);\n\n for (var len = models.length, i = 0; i < len; i++) {\n var toModel = models[i];\n var node = graph[toModel];\n\n if (node.parent === null) {\n // No possible conversion, or this node is the source model.\n continue;\n }\n\n conversion[toModel] = wrapConversion(toModel, graph);\n }\n\n return conversion;\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vL2hvbWUvamVua2lucy93b3Jrc3BhY2UvZGVzaWduLXN5c3RlbV9tYWluL25vZGVfbW9kdWxlcy9jb2xvci1jb252ZXJ0L3JvdXRlLmpzP2VjYTMiXSwibmFtZXMiOlsiY29udmVyc2lvbnMiLCJyZXF1aXJlIiwiYnVpbGRHcmFwaCIsImdyYXBoIiwibW9kZWxzIiwiT2JqZWN0Iiwia2V5cyIsImxlbiIsImxlbmd0aCIsImkiLCJkaXN0YW5jZSIsInBhcmVudCIsImRlcml2ZUJGUyIsImZyb21Nb2RlbCIsInF1ZXVlIiwiY3VycmVudCIsInBvcCIsImFkamFjZW50cyIsImFkamFjZW50Iiwibm9kZSIsInVuc2hpZnQiLCJsaW5rIiwiZnJvbSIsInRvIiwiYXJncyIsIndyYXBDb252ZXJzaW9uIiwidG9Nb2RlbCIsInBhdGgiLCJmbiIsImN1ciIsImNvbnZlcnNpb24iLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiOztBQUFBLElBQU1BLFdBQVcsR0FBR0MsbUJBQU8sQ0FBQyxpREFBRCxDQUEzQjtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFFQSxTQUFTQyxVQUFULEdBQXNCO0FBQ3JCLE1BQU1DLEtBQUssR0FBRyxFQUFkLENBRHFCLENBRXJCOztBQUNBLE1BQU1DLE1BQU0sR0FBR0MsTUFBTSxDQUFDQyxJQUFQLENBQVlOLFdBQVosQ0FBZjs7QUFFQSxPQUFLLElBQUlPLEdBQUcsR0FBR0gsTUFBTSxDQUFDSSxNQUFqQixFQUF5QkMsQ0FBQyxHQUFHLENBQWxDLEVBQXFDQSxDQUFDLEdBQUdGLEdBQXpDLEVBQThDRSxDQUFDLEVBQS9DLEVBQW1EO0FBQ2xETixTQUFLLENBQUNDLE1BQU0sQ0FBQ0ssQ0FBRCxDQUFQLENBQUwsR0FBbUI7QUFDbEI7QUFDQTtBQUNBQyxjQUFRLEVBQUUsQ0FBQyxDQUhPO0FBSWxCQyxZQUFNLEVBQUU7QUFKVSxLQUFuQjtBQU1BOztBQUVELFNBQU9SLEtBQVA7QUFDQSxDLENBRUQ7OztBQUNBLFNBQVNTLFNBQVQsQ0FBbUJDLFNBQW5CLEVBQThCO0FBQzdCLE1BQU1WLEtBQUssR0FBR0QsVUFBVSxFQUF4QjtBQUNBLE1BQU1ZLEtBQUssR0FBRyxDQUFDRCxTQUFELENBQWQsQ0FGNkIsQ0FFRjs7QUFFM0JWLE9BQUssQ0FBQ1UsU0FBRCxDQUFMLENBQWlCSCxRQUFqQixHQUE0QixDQUE1Qjs7QUFFQSxTQUFPSSxLQUFLLENBQUNOLE1BQWIsRUFBcUI7QUFDcEIsUUFBTU8sT0FBTyxHQUFHRCxLQUFLLENBQUNFLEdBQU4sRUFBaEI7QUFDQSxRQUFNQyxTQUFTLEdBQUdaLE1BQU0sQ0FBQ0MsSUFBUCxDQUFZTixXQUFXLENBQUNlLE9BQUQsQ0FBdkIsQ0FBbEI7O0FBRUEsU0FBSyxJQUFJUixHQUFHLEdBQUdVLFNBQVMsQ0FBQ1QsTUFBcEIsRUFBNEJDLENBQUMsR0FBRyxDQUFyQyxFQUF3Q0EsQ0FBQyxHQUFHRixHQUE1QyxFQUFpREUsQ0FBQyxFQUFsRCxFQUFzRDtBQUNyRCxVQUFNUyxRQUFRLEdBQUdELFNBQVMsQ0FBQ1IsQ0FBRCxDQUExQjtBQUNBLFVBQU1VLElBQUksR0FBR2hCLEtBQUssQ0FBQ2UsUUFBRCxDQUFsQjs7QUFFQSxVQUFJQyxJQUFJLENBQUNULFFBQUwsS0FBa0IsQ0FBQyxDQUF2QixFQUEwQjtBQUN6QlMsWUFBSSxDQUFDVCxRQUFMLEdBQWdCUCxLQUFLLENBQUNZLE9BQUQsQ0FBTCxDQUFlTCxRQUFmLEdBQTBCLENBQTFDO0FBQ0FTLFlBQUksQ0FBQ1IsTUFBTCxHQUFjSSxPQUFkO0FBQ0FELGFBQUssQ0FBQ00sT0FBTixDQUFjRixRQUFkO0FBQ0E7QUFDRDtBQUNEOztBQUVELFNBQU9mLEtBQVA7QUFDQTs7QUFFRCxTQUFTa0IsSUFBVCxDQUFjQyxJQUFkLEVBQW9CQyxFQUFwQixFQUF3QjtBQUN2QixTQUFPLFVBQVVDLElBQVYsRUFBZ0I7QUFDdEIsV0FBT0QsRUFBRSxDQUFDRCxJQUFJLENBQUNFLElBQUQsQ0FBTCxDQUFUO0FBQ0EsR0FGRDtBQUdBOztBQUVELFNBQVNDLGNBQVQsQ0FBd0JDLE9BQXhCLEVBQWlDdkIsS0FBakMsRUFBd0M7QUFDdkMsTUFBTXdCLElBQUksR0FBRyxDQUFDeEIsS0FBSyxDQUFDdUIsT0FBRCxDQUFMLENBQWVmLE1BQWhCLEVBQXdCZSxPQUF4QixDQUFiO0FBQ0EsTUFBSUUsRUFBRSxHQUFHNUIsV0FBVyxDQUFDRyxLQUFLLENBQUN1QixPQUFELENBQUwsQ0FBZWYsTUFBaEIsQ0FBWCxDQUFtQ2UsT0FBbkMsQ0FBVDtBQUVBLE1BQUlHLEdBQUcsR0FBRzFCLEtBQUssQ0FBQ3VCLE9BQUQsQ0FBTCxDQUFlZixNQUF6Qjs7QUFDQSxTQUFPUixLQUFLLENBQUMwQixHQUFELENBQUwsQ0FBV2xCLE1BQWxCLEVBQTBCO0FBQ3pCZ0IsUUFBSSxDQUFDUCxPQUFMLENBQWFqQixLQUFLLENBQUMwQixHQUFELENBQUwsQ0FBV2xCLE1BQXhCO0FBQ0FpQixNQUFFLEdBQUdQLElBQUksQ0FBQ3JCLFdBQVcsQ0FBQ0csS0FBSyxDQUFDMEIsR0FBRCxDQUFMLENBQVdsQixNQUFaLENBQVgsQ0FBK0JrQixHQUEvQixDQUFELEVBQXNDRCxFQUF0QyxDQUFUO0FBQ0FDLE9BQUcsR0FBRzFCLEtBQUssQ0FBQzBCLEdBQUQsQ0FBTCxDQUFXbEIsTUFBakI7QUFDQTs7QUFFRGlCLElBQUUsQ0FBQ0UsVUFBSCxHQUFnQkgsSUFBaEI7QUFDQSxTQUFPQyxFQUFQO0FBQ0E7O0FBRURHLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQixVQUFVbkIsU0FBVixFQUFxQjtBQUNyQyxNQUFNVixLQUFLLEdBQUdTLFNBQVMsQ0FBQ0MsU0FBRCxDQUF2QjtBQUNBLE1BQU1pQixVQUFVLEdBQUcsRUFBbkI7QUFFQSxNQUFNMUIsTUFBTSxHQUFHQyxNQUFNLENBQUNDLElBQVAsQ0FBWUgsS0FBWixDQUFmOztBQUNBLE9BQUssSUFBSUksR0FBRyxHQUFHSCxNQUFNLENBQUNJLE1BQWpCLEVBQXlCQyxDQUFDLEdBQUcsQ0FBbEMsRUFBcUNBLENBQUMsR0FBR0YsR0FBekMsRUFBOENFLENBQUMsRUFBL0MsRUFBbUQ7QUFDbEQsUUFBTWlCLE9BQU8sR0FBR3RCLE1BQU0sQ0FBQ0ssQ0FBRCxDQUF0QjtBQUNBLFFBQU1VLElBQUksR0FBR2hCLEtBQUssQ0FBQ3VCLE9BQUQsQ0FBbEI7O0FBRUEsUUFBSVAsSUFBSSxDQUFDUixNQUFMLEtBQWdCLElBQXBCLEVBQTBCO0FBQ3pCO0FBQ0E7QUFDQTs7QUFFRG1CLGNBQVUsQ0FBQ0osT0FBRCxDQUFWLEdBQXNCRCxjQUFjLENBQUNDLE9BQUQsRUFBVXZCLEtBQVYsQ0FBcEM7QUFDQTs7QUFFRCxTQUFPMkIsVUFBUDtBQUNBLENBbEJEIiwiZmlsZSI6Ii4uLy4uL25vZGVfbW9kdWxlcy9jb2xvci1jb252ZXJ0L3JvdXRlLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgY29udmVyc2lvbnMgPSByZXF1aXJlKCcuL2NvbnZlcnNpb25zJyk7XG5cbi8qXG5cdFRoaXMgZnVuY3Rpb24gcm91dGVzIGEgbW9kZWwgdG8gYWxsIG90aGVyIG1vZGVscy5cblxuXHRhbGwgZnVuY3Rpb25zIHRoYXQgYXJlIHJvdXRlZCBoYXZlIGEgcHJvcGVydHkgYC5jb252ZXJzaW9uYCBhdHRhY2hlZFxuXHR0byB0aGUgcmV0dXJuZWQgc3ludGhldGljIGZ1bmN0aW9uLiBUaGlzIHByb3BlcnR5IGlzIGFuIGFycmF5XG5cdG9mIHN0cmluZ3MsIGVhY2ggd2l0aCB0aGUgc3RlcHMgaW4gYmV0d2VlbiB0aGUgJ2Zyb20nIGFuZCAndG8nXG5cdGNvbG9yIG1vZGVscyAoaW5jbHVzaXZlKS5cblxuXHRjb252ZXJzaW9ucyB0aGF0IGFyZSBub3QgcG9zc2libGUgc2ltcGx5IGFyZSBub3QgaW5jbHVkZWQuXG4qL1xuXG5mdW5jdGlvbiBidWlsZEdyYXBoKCkge1xuXHRjb25zdCBncmFwaCA9IHt9O1xuXHQvLyBodHRwczovL2pzcGVyZi5jb20vb2JqZWN0LWtleXMtdnMtZm9yLWluLXdpdGgtY2xvc3VyZS8zXG5cdGNvbnN0IG1vZGVscyA9IE9iamVjdC5rZXlzKGNvbnZlcnNpb25zKTtcblxuXHRmb3IgKGxldCBsZW4gPSBtb2RlbHMubGVuZ3RoLCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG5cdFx0Z3JhcGhbbW9kZWxzW2ldXSA9IHtcblx0XHRcdC8vIGh0dHA6Ly9qc3BlcmYuY29tLzEtdnMtaW5maW5pdHlcblx0XHRcdC8vIG1pY3JvLW9wdCwgYnV0IHRoaXMgaXMgc2ltcGxlLlxuXHRcdFx0ZGlzdGFuY2U6IC0xLFxuXHRcdFx0cGFyZW50OiBudWxsXG5cdFx0fTtcblx0fVxuXG5cdHJldHVybiBncmFwaDtcbn1cblxuLy8gaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQnJlYWR0aC1maXJzdF9zZWFyY2hcbmZ1bmN0aW9uIGRlcml2ZUJGUyhmcm9tTW9kZWwpIHtcblx0Y29uc3QgZ3JhcGggPSBidWlsZEdyYXBoKCk7XG5cdGNvbnN0IHF1ZXVlID0gW2Zyb21Nb2RlbF07IC8vIFVuc2hpZnQgLT4gcXVldWUgLT4gcG9wXG5cblx0Z3JhcGhbZnJvbU1vZGVsXS5kaXN0YW5jZSA9IDA7XG5cblx0d2hpbGUgKHF1ZXVlLmxlbmd0aCkge1xuXHRcdGNvbnN0IGN1cnJlbnQgPSBxdWV1ZS5wb3AoKTtcblx0XHRjb25zdCBhZGphY2VudHMgPSBPYmplY3Qua2V5cyhjb252ZXJzaW9uc1tjdXJyZW50XSk7XG5cblx0XHRmb3IgKGxldCBsZW4gPSBhZGphY2VudHMubGVuZ3RoLCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG5cdFx0XHRjb25zdCBhZGphY2VudCA9IGFkamFjZW50c1tpXTtcblx0XHRcdGNvbnN0IG5vZGUgPSBncmFwaFthZGphY2VudF07XG5cblx0XHRcdGlmIChub2RlLmRpc3RhbmNlID09PSAtMSkge1xuXHRcdFx0XHRub2RlLmRpc3RhbmNlID0gZ3JhcGhbY3VycmVudF0uZGlzdGFuY2UgKyAxO1xuXHRcdFx0XHRub2RlLnBhcmVudCA9IGN1cnJlbnQ7XG5cdFx0XHRcdHF1ZXVlLnVuc2hpZnQoYWRqYWNlbnQpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHJldHVybiBncmFwaDtcbn1cblxuZnVuY3Rpb24gbGluayhmcm9tLCB0bykge1xuXHRyZXR1cm4gZnVuY3Rpb24gKGFyZ3MpIHtcblx0XHRyZXR1cm4gdG8oZnJvbShhcmdzKSk7XG5cdH07XG59XG5cbmZ1bmN0aW9uIHdyYXBDb252ZXJzaW9uKHRvTW9kZWwsIGdyYXBoKSB7XG5cdGNvbnN0IHBhdGggPSBbZ3JhcGhbdG9Nb2RlbF0ucGFyZW50LCB0b01vZGVsXTtcblx0bGV0IGZuID0gY29udmVyc2lvbnNbZ3JhcGhbdG9Nb2RlbF0ucGFyZW50XVt0b01vZGVsXTtcblxuXHRsZXQgY3VyID0gZ3JhcGhbdG9Nb2RlbF0ucGFyZW50O1xuXHR3aGlsZSAoZ3JhcGhbY3VyXS5wYXJlbnQpIHtcblx0XHRwYXRoLnVuc2hpZnQoZ3JhcGhbY3VyXS5wYXJlbnQpO1xuXHRcdGZuID0gbGluayhjb252ZXJzaW9uc1tncmFwaFtjdXJdLnBhcmVudF1bY3VyXSwgZm4pO1xuXHRcdGN1ciA9IGdyYXBoW2N1cl0ucGFyZW50O1xuXHR9XG5cblx0Zm4uY29udmVyc2lvbiA9IHBhdGg7XG5cdHJldHVybiBmbjtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoZnJvbU1vZGVsKSB7XG5cdGNvbnN0IGdyYXBoID0gZGVyaXZlQkZTKGZyb21Nb2RlbCk7XG5cdGNvbnN0IGNvbnZlcnNpb24gPSB7fTtcblxuXHRjb25zdCBtb2RlbHMgPSBPYmplY3Qua2V5cyhncmFwaCk7XG5cdGZvciAobGV0IGxlbiA9IG1vZGVscy5sZW5ndGgsIGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcblx0XHRjb25zdCB0b01vZGVsID0gbW9kZWxzW2ldO1xuXHRcdGNvbnN0IG5vZGUgPSBncmFwaFt0b01vZGVsXTtcblxuXHRcdGlmIChub2RlLnBhcmVudCA9PT0gbnVsbCkge1xuXHRcdFx0Ly8gTm8gcG9zc2libGUgY29udmVyc2lvbiwgb3IgdGhpcyBub2RlIGlzIHRoZSBzb3VyY2UgbW9kZWwuXG5cdFx0XHRjb250aW51ZTtcblx0XHR9XG5cblx0XHRjb252ZXJzaW9uW3RvTW9kZWxdID0gd3JhcENvbnZlcnNpb24odG9Nb2RlbCwgZ3JhcGgpO1xuXHR9XG5cblx0cmV0dXJuIGNvbnZlcnNpb247XG59O1xuXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../../node_modules/color-convert/route.js\n")},"../../node_modules/lodash/_baseTrim.js":function(module,exports,__webpack_require__){eval("var trimmedEndIndex = __webpack_require__(\"../../node_modules/lodash/_trimmedEndIndex.js\");\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vL2hvbWUvamVua2lucy93b3Jrc3BhY2UvZGVzaWduLXN5c3RlbV9tYWluL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VUcmltLmpzPzU4NWMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsc0JBQXNCLG1CQUFPLENBQUMsK0NBQW9COztBQUVsRDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCLGFBQWEsT0FBTztBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJmaWxlIjoiLi4vLi4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZVRyaW0uanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgdHJpbW1lZEVuZEluZGV4ID0gcmVxdWlyZSgnLi9fdHJpbW1lZEVuZEluZGV4Jyk7XG5cbi8qKiBVc2VkIHRvIG1hdGNoIGxlYWRpbmcgd2hpdGVzcGFjZS4gKi9cbnZhciByZVRyaW1TdGFydCA9IC9eXFxzKy87XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8udHJpbWAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmcgVGhlIHN0cmluZyB0byB0cmltLlxuICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgdHJpbW1lZCBzdHJpbmcuXG4gKi9cbmZ1bmN0aW9uIGJhc2VUcmltKHN0cmluZykge1xuICByZXR1cm4gc3RyaW5nXG4gICAgPyBzdHJpbmcuc2xpY2UoMCwgdHJpbW1lZEVuZEluZGV4KHN0cmluZykgKyAxKS5yZXBsYWNlKHJlVHJpbVN0YXJ0LCAnJylcbiAgICA6IHN0cmluZztcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlVHJpbTtcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../node_modules/lodash/_baseTrim.js\n")},"../../node_modules/lodash/_trimmedEndIndex.js":function(module,exports){eval("/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vL2hvbWUvamVua2lucy93b3Jrc3BhY2UvZGVzaWduLXN5c3RlbV9tYWluL25vZGVfbW9kdWxlcy9sb2Rhc2gvX3RyaW1tZWRFbmRJbmRleC5qcz9jODgwIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQixhQUFhLE9BQU87QUFDcEI7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSIsImZpbGUiOiIuLi8uLi9ub2RlX21vZHVsZXMvbG9kYXNoL190cmltbWVkRW5kSW5kZXguanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogVXNlZCB0byBtYXRjaCBhIHNpbmdsZSB3aGl0ZXNwYWNlIGNoYXJhY3Rlci4gKi9cbnZhciByZVdoaXRlc3BhY2UgPSAvXFxzLztcblxuLyoqXG4gKiBVc2VkIGJ5IGBfLnRyaW1gIGFuZCBgXy50cmltRW5kYCB0byBnZXQgdGhlIGluZGV4IG9mIHRoZSBsYXN0IG5vbi13aGl0ZXNwYWNlXG4gKiBjaGFyYWN0ZXIgb2YgYHN0cmluZ2AuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmcgVGhlIHN0cmluZyB0byBpbnNwZWN0LlxuICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGxhc3Qgbm9uLXdoaXRlc3BhY2UgY2hhcmFjdGVyLlxuICovXG5mdW5jdGlvbiB0cmltbWVkRW5kSW5kZXgoc3RyaW5nKSB7XG4gIHZhciBpbmRleCA9IHN0cmluZy5sZW5ndGg7XG5cbiAgd2hpbGUgKGluZGV4LS0gJiYgcmVXaGl0ZXNwYWNlLnRlc3Qoc3RyaW5nLmNoYXJBdChpbmRleCkpKSB7fVxuICByZXR1cm4gaW5kZXg7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gdHJpbW1lZEVuZEluZGV4O1xuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../node_modules/lodash/_trimmedEndIndex.js\n")},"../../node_modules/lodash/debounce.js":function(module,exports,__webpack_require__){eval("var isObject = __webpack_require__(\"../../node_modules/lodash/isObject.js\"),\n now = __webpack_require__(\"../../node_modules/lodash/now.js\"),\n toNumber = __webpack_require__(\"../../node_modules/lodash/toNumber.js\");\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vL2hvbWUvamVua2lucy93b3Jrc3BhY2UvZGVzaWduLXN5c3RlbV9tYWluL25vZGVfbW9kdWxlcy9sb2Rhc2gvZGVib3VuY2UuanM/NjI1MyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxlQUFlLG1CQUFPLENBQUMsdUNBQVk7QUFDbkMsVUFBVSxtQkFBTyxDQUFDLGtDQUFPO0FBQ3pCLGVBQWUsbUJBQU8sQ0FBQyx1Q0FBWTs7QUFFbkM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFNBQVM7QUFDcEIsV0FBVyxPQUFPO0FBQ2xCLFdBQVcsT0FBTyxZQUFZO0FBQzlCLFdBQVcsUUFBUTtBQUNuQjtBQUNBLFdBQVcsT0FBTztBQUNsQjtBQUNBLFdBQVcsUUFBUTtBQUNuQjtBQUNBLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBLDhDQUE4QyxrQkFBa0I7QUFDaEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsImZpbGUiOiIuLi8uLi9ub2RlX21vZHVsZXMvbG9kYXNoL2RlYm91bmNlLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9pc09iamVjdCcpLFxuICAgIG5vdyA9IHJlcXVpcmUoJy4vbm93JyksXG4gICAgdG9OdW1iZXIgPSByZXF1aXJlKCcuL3RvTnVtYmVyJyk7XG5cbi8qKiBFcnJvciBtZXNzYWdlIGNvbnN0YW50cy4gKi9cbnZhciBGVU5DX0VSUk9SX1RFWFQgPSAnRXhwZWN0ZWQgYSBmdW5jdGlvbic7XG5cbi8qIEJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzIGZvciB0aG9zZSB3aXRoIHRoZSBzYW1lIG5hbWUgYXMgb3RoZXIgYGxvZGFzaGAgbWV0aG9kcy4gKi9cbnZhciBuYXRpdmVNYXggPSBNYXRoLm1heCxcbiAgICBuYXRpdmVNaW4gPSBNYXRoLm1pbjtcblxuLyoqXG4gKiBDcmVhdGVzIGEgZGVib3VuY2VkIGZ1bmN0aW9uIHRoYXQgZGVsYXlzIGludm9raW5nIGBmdW5jYCB1bnRpbCBhZnRlciBgd2FpdGBcbiAqIG1pbGxpc2Vjb25kcyBoYXZlIGVsYXBzZWQgc2luY2UgdGhlIGxhc3QgdGltZSB0aGUgZGVib3VuY2VkIGZ1bmN0aW9uIHdhc1xuICogaW52b2tlZC4gVGhlIGRlYm91bmNlZCBmdW5jdGlvbiBjb21lcyB3aXRoIGEgYGNhbmNlbGAgbWV0aG9kIHRvIGNhbmNlbFxuICogZGVsYXllZCBgZnVuY2AgaW52b2NhdGlvbnMgYW5kIGEgYGZsdXNoYCBtZXRob2QgdG8gaW1tZWRpYXRlbHkgaW52b2tlIHRoZW0uXG4gKiBQcm92aWRlIGBvcHRpb25zYCB0byBpbmRpY2F0ZSB3aGV0aGVyIGBmdW5jYCBzaG91bGQgYmUgaW52b2tlZCBvbiB0aGVcbiAqIGxlYWRpbmcgYW5kL29yIHRyYWlsaW5nIGVkZ2Ugb2YgdGhlIGB3YWl0YCB0aW1lb3V0LiBUaGUgYGZ1bmNgIGlzIGludm9rZWRcbiAqIHdpdGggdGhlIGxhc3QgYXJndW1lbnRzIHByb3ZpZGVkIHRvIHRoZSBkZWJvdW5jZWQgZnVuY3Rpb24uIFN1YnNlcXVlbnRcbiAqIGNhbGxzIHRvIHRoZSBkZWJvdW5jZWQgZnVuY3Rpb24gcmV0dXJuIHRoZSByZXN1bHQgb2YgdGhlIGxhc3QgYGZ1bmNgXG4gKiBpbnZvY2F0aW9uLlxuICpcbiAqICoqTm90ZToqKiBJZiBgbGVhZGluZ2AgYW5kIGB0cmFpbGluZ2Agb3B0aW9ucyBhcmUgYHRydWVgLCBgZnVuY2AgaXNcbiAqIGludm9rZWQgb24gdGhlIHRyYWlsaW5nIGVkZ2Ugb2YgdGhlIHRpbWVvdXQgb25seSBpZiB0aGUgZGVib3VuY2VkIGZ1bmN0aW9uXG4gKiBpcyBpbnZva2VkIG1vcmUgdGhhbiBvbmNlIGR1cmluZyB0aGUgYHdhaXRgIHRpbWVvdXQuXG4gKlxuICogSWYgYHdhaXRgIGlzIGAwYCBhbmQgYGxlYWRpbmdgIGlzIGBmYWxzZWAsIGBmdW5jYCBpbnZvY2F0aW9uIGlzIGRlZmVycmVkXG4gKiB1bnRpbCB0byB0aGUgbmV4dCB0aWNrLCBzaW1pbGFyIHRvIGBzZXRUaW1lb3V0YCB3aXRoIGEgdGltZW91dCBvZiBgMGAuXG4gKlxuICogU2VlIFtEYXZpZCBDb3JiYWNobydzIGFydGljbGVdKGh0dHBzOi8vY3NzLXRyaWNrcy5jb20vZGVib3VuY2luZy10aHJvdHRsaW5nLWV4cGxhaW5lZC1leGFtcGxlcy8pXG4gKiBmb3IgZGV0YWlscyBvdmVyIHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIGBfLmRlYm91bmNlYCBhbmQgYF8udGhyb3R0bGVgLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gZGVib3VuY2UuXG4gKiBAcGFyYW0ge251bWJlcn0gW3dhaXQ9MF0gVGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgdG8gZGVsYXkuXG4gKiBAcGFyYW0ge09iamVjdH0gW29wdGlvbnM9e31dIFRoZSBvcHRpb25zIG9iamVjdC5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMubGVhZGluZz1mYWxzZV1cbiAqICBTcGVjaWZ5IGludm9raW5nIG9uIHRoZSBsZWFkaW5nIGVkZ2Ugb2YgdGhlIHRpbWVvdXQuXG4gKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMubWF4V2FpdF1cbiAqICBUaGUgbWF4aW11bSB0aW1lIGBmdW5jYCBpcyBhbGxvd2VkIHRvIGJlIGRlbGF5ZWQgYmVmb3JlIGl0J3MgaW52b2tlZC5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMudHJhaWxpbmc9dHJ1ZV1cbiAqICBTcGVjaWZ5IGludm9raW5nIG9uIHRoZSB0cmFpbGluZyBlZGdlIG9mIHRoZSB0aW1lb3V0LlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZGVib3VuY2VkIGZ1bmN0aW9uLlxuICogQGV4YW1wbGVcbiAqXG4gKiAvLyBBdm9pZCBjb3N0bHkgY2FsY3VsYXRpb25zIHdoaWxlIHRoZSB3aW5kb3cgc2l6ZSBpcyBpbiBmbHV4LlxuICogalF1ZXJ5KHdpbmRvdykub24oJ3Jlc2l6ZScsIF8uZGVib3VuY2UoY2FsY3VsYXRlTGF5b3V0LCAxNTApKTtcbiAqXG4gKiAvLyBJbnZva2UgYHNlbmRNYWlsYCB3aGVuIGNsaWNrZWQsIGRlYm91bmNpbmcgc3Vic2VxdWVudCBjYWxscy5cbiAqIGpRdWVyeShlbGVtZW50KS5vbignY2xpY2snLCBfLmRlYm91bmNlKHNlbmRNYWlsLCAzMDAsIHtcbiAqICAgJ2xlYWRpbmcnOiB0cnVlLFxuICogICAndHJhaWxpbmcnOiBmYWxzZVxuICogfSkpO1xuICpcbiAqIC8vIEVuc3VyZSBgYmF0Y2hMb2dgIGlzIGludm9rZWQgb25jZSBhZnRlciAxIHNlY29uZCBvZiBkZWJvdW5jZWQgY2FsbHMuXG4gKiB2YXIgZGVib3VuY2VkID0gXy5kZWJvdW5jZShiYXRjaExvZywgMjUwLCB7ICdtYXhXYWl0JzogMTAwMCB9KTtcbiAqIHZhciBzb3VyY2UgPSBuZXcgRXZlbnRTb3VyY2UoJy9zdHJlYW0nKTtcbiAqIGpRdWVyeShzb3VyY2UpLm9uKCdtZXNzYWdlJywgZGVib3VuY2VkKTtcbiAqXG4gKiAvLyBDYW5jZWwgdGhlIHRyYWlsaW5nIGRlYm91bmNlZCBpbnZvY2F0aW9uLlxuICogalF1ZXJ5KHdpbmRvdykub24oJ3BvcHN0YXRlJywgZGVib3VuY2VkLmNhbmNlbCk7XG4gKi9cbmZ1bmN0aW9uIGRlYm91bmNlKGZ1bmMsIHdhaXQsIG9wdGlvbnMpIHtcbiAgdmFyIGxhc3RBcmdzLFxuICAgICAgbGFzdFRoaXMsXG4gICAgICBtYXhXYWl0LFxuICAgICAgcmVzdWx0LFxuICAgICAgdGltZXJJZCxcbiAgICAgIGxhc3RDYWxsVGltZSxcbiAgICAgIGxhc3RJbnZva2VUaW1lID0gMCxcbiAgICAgIGxlYWRpbmcgPSBmYWxzZSxcbiAgICAgIG1heGluZyA9IGZhbHNlLFxuICAgICAgdHJhaWxpbmcgPSB0cnVlO1xuXG4gIGlmICh0eXBlb2YgZnVuYyAhPSAnZnVuY3Rpb24nKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihGVU5DX0VSUk9SX1RFWFQpO1xuICB9XG4gIHdhaXQgPSB0b051bWJlcih3YWl0KSB8fCAwO1xuICBpZiAoaXNPYmplY3Qob3B0aW9ucykpIHtcbiAgICBsZWFkaW5nID0gISFvcHRpb25zLmxlYWRpbmc7XG4gICAgbWF4aW5nID0gJ21heFdhaXQnIGluIG9wdGlvbnM7XG4gICAgbWF4V2FpdCA9IG1heGluZyA/IG5hdGl2ZU1heCh0b051bWJlcihvcHRpb25zLm1heFdhaXQpIHx8IDAsIHdhaXQpIDogbWF4V2FpdDtcbiAgICB0cmFpbGluZyA9ICd0cmFpbGluZycgaW4gb3B0aW9ucyA/ICEhb3B0aW9ucy50cmFpbGluZyA6IHRyYWlsaW5nO1xuICB9XG5cbiAgZnVuY3Rpb24gaW52b2tlRnVuYyh0aW1lKSB7XG4gICAgdmFyIGFyZ3MgPSBsYXN0QXJncyxcbiAgICAgICAgdGhpc0FyZyA9IGxhc3RUaGlzO1xuXG4gICAgbGFzdEFyZ3MgPSBsYXN0VGhpcyA9IHVuZGVmaW5lZDtcbiAgICBsYXN0SW52b2tlVGltZSA9IHRpbWU7XG4gICAgcmVzdWx0ID0gZnVuYy5hcHBseSh0aGlzQXJnLCBhcmdzKTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgZnVuY3Rpb24gbGVhZGluZ0VkZ2UodGltZSkge1xuICAgIC8vIFJlc2V0IGFueSBgbWF4V2FpdGAgdGltZXIuXG4gICAgbGFzdEludm9rZVRpbWUgPSB0aW1lO1xuICAgIC8vIFN0YXJ0IHRoZSB0aW1lciBmb3IgdGhlIHRyYWlsaW5nIGVkZ2UuXG4gICAgdGltZXJJZCA9IHNldFRpbWVvdXQodGltZXJFeHBpcmVkLCB3YWl0KTtcbiAgICAvLyBJbnZva2UgdGhlIGxlYWRpbmcgZWRnZS5cbiAgICByZXR1cm4gbGVhZGluZyA/IGludm9rZUZ1bmModGltZSkgOiByZXN1bHQ7XG4gIH1cblxuICBmdW5jdGlvbiByZW1haW5pbmdXYWl0KHRpbWUpIHtcbiAgICB2YXIgdGltZVNpbmNlTGFzdENhbGwgPSB0aW1lIC0gbGFzdENhbGxUaW1lLFxuICAgICAgICB0aW1lU2luY2VMYXN0SW52b2tlID0gdGltZSAtIGxhc3RJbnZva2VUaW1lLFxuICAgICAgICB0aW1lV2FpdGluZyA9IHdhaXQgLSB0aW1lU2luY2VMYXN0Q2FsbDtcblxuICAgIHJldHVybiBtYXhpbmdcbiAgICAgID8gbmF0aXZlTWluKHRpbWVXYWl0aW5nLCBtYXhXYWl0IC0gdGltZVNpbmNlTGFzdEludm9rZSlcbiAgICAgIDogdGltZVdhaXRpbmc7XG4gIH1cblxuICBmdW5jdGlvbiBzaG91bGRJbnZva2UodGltZSkge1xuICAgIHZhciB0aW1lU2luY2VMYXN0Q2FsbCA9IHRpbWUgLSBsYXN0Q2FsbFRpbWUsXG4gICAgICAgIHRpbWVTaW5jZUxhc3RJbnZva2UgPSB0aW1lIC0gbGFzdEludm9rZVRpbWU7XG5cbiAgICAvLyBFaXRoZXIgdGhpcyBpcyB0aGUgZmlyc3QgY2FsbCwgYWN0aXZpdHkgaGFzIHN0b3BwZWQgYW5kIHdlJ3JlIGF0IHRoZVxuICAgIC8vIHRyYWlsaW5nIGVkZ2UsIHRoZSBzeXN0ZW0gdGltZSBoYXMgZ29uZSBiYWNrd2FyZHMgYW5kIHdlJ3JlIHRyZWF0aW5nXG4gICAgLy8gaXQgYXMgdGhlIHRyYWlsaW5nIGVkZ2UsIG9yIHdlJ3ZlIGhpdCB0aGUgYG1heFdhaXRgIGxpbWl0LlxuICAgIHJldHVybiAobGFzdENhbGxUaW1lID09PSB1bmRlZmluZWQgfHwgKHRpbWVTaW5jZUxhc3RDYWxsID49IHdhaXQpIHx8XG4gICAgICAodGltZVNpbmNlTGFzdENhbGwgPCAwKSB8fCAobWF4aW5nICYmIHRpbWVTaW5jZUxhc3RJbnZva2UgPj0gbWF4V2FpdCkpO1xuICB9XG5cbiAgZnVuY3Rpb24gdGltZXJFeHBpcmVkKCkge1xuICAgIHZhciB0aW1lID0gbm93KCk7XG4gICAgaWYgKHNob3VsZEludm9rZSh0aW1lKSkge1xuICAgICAgcmV0dXJuIHRyYWlsaW5nRWRnZSh0aW1lKTtcbiAgICB9XG4gICAgLy8gUmVzdGFydCB0aGUgdGltZXIuXG4gICAgdGltZXJJZCA9IHNldFRpbWVvdXQodGltZXJFeHBpcmVkLCByZW1haW5pbmdXYWl0KHRpbWUpKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHRyYWlsaW5nRWRnZSh0aW1lKSB7XG4gICAgdGltZXJJZCA9IHVuZGVmaW5lZDtcblxuICAgIC8vIE9ubHkgaW52b2tlIGlmIHdlIGhhdmUgYGxhc3RBcmdzYCB3aGljaCBtZWFucyBgZnVuY2AgaGFzIGJlZW5cbiAgICAvLyBkZWJvdW5jZWQgYXQgbGVhc3Qgb25jZS5cbiAgICBpZiAodHJhaWxpbmcgJiYgbGFzdEFyZ3MpIHtcbiAgICAgIHJldHVybiBpbnZva2VGdW5jKHRpbWUpO1xuICAgIH1cbiAgICBsYXN0QXJncyA9IGxhc3RUaGlzID0gdW5kZWZpbmVkO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBmdW5jdGlvbiBjYW5jZWwoKSB7XG4gICAgaWYgKHRpbWVySWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRpbWVySWQpO1xuICAgIH1cbiAgICBsYXN0SW52b2tlVGltZSA9IDA7XG4gICAgbGFzdEFyZ3MgPSBsYXN0Q2FsbFRpbWUgPSBsYXN0VGhpcyA9IHRpbWVySWQgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBmdW5jdGlvbiBmbHVzaCgpIHtcbiAgICByZXR1cm4gdGltZXJJZCA9PT0gdW5kZWZpbmVkID8gcmVzdWx0IDogdHJhaWxpbmdFZGdlKG5vdygpKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGRlYm91bmNlZCgpIHtcbiAgICB2YXIgdGltZSA9IG5vdygpLFxuICAgICAgICBpc0ludm9raW5nID0gc2hvdWxkSW52b2tlKHRpbWUpO1xuXG4gICAgbGFzdEFyZ3MgPSBhcmd1bWVudHM7XG4gICAgbGFzdFRoaXMgPSB0aGlzO1xuICAgIGxhc3RDYWxsVGltZSA9IHRpbWU7XG5cbiAgICBpZiAoaXNJbnZva2luZykge1xuICAgICAgaWYgKHRpbWVySWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gbGVhZGluZ0VkZ2UobGFzdENhbGxUaW1lKTtcbiAgICAgIH1cbiAgICAgIGlmIChtYXhpbmcpIHtcbiAgICAgICAgLy8gSGFuZGxlIGludm9jYXRpb25zIGluIGEgdGlnaHQgbG9vcC5cbiAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVySWQpO1xuICAgICAgICB0aW1lcklkID0gc2V0VGltZW91dCh0aW1lckV4cGlyZWQsIHdhaXQpO1xuICAgICAgICByZXR1cm4gaW52b2tlRnVuYyhsYXN0Q2FsbFRpbWUpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGltZXJJZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aW1lcklkID0gc2V0VGltZW91dCh0aW1lckV4cGlyZWQsIHdhaXQpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG4gIGRlYm91bmNlZC5jYW5jZWwgPSBjYW5jZWw7XG4gIGRlYm91bmNlZC5mbHVzaCA9IGZsdXNoO1xuICByZXR1cm4gZGVib3VuY2VkO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGRlYm91bmNlO1xuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../node_modules/lodash/debounce.js\n")},"../../node_modules/lodash/now.js":function(module,exports,__webpack_require__){eval('var root = __webpack_require__("../../node_modules/lodash/_root.js");\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vL2hvbWUvamVua2lucy93b3Jrc3BhY2UvZGVzaWduLXN5c3RlbV9tYWluL25vZGVfbW9kdWxlcy9sb2Rhc2gvbm93LmpzPzgyZDEiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsV0FBVyxtQkFBTyxDQUFDLG9DQUFTOztBQUU1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxPQUFPO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJmaWxlIjoiLi4vLi4vbm9kZV9tb2R1bGVzL2xvZGFzaC9ub3cuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgcm9vdCA9IHJlcXVpcmUoJy4vX3Jvb3QnKTtcblxuLyoqXG4gKiBHZXRzIHRoZSB0aW1lc3RhbXAgb2YgdGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgdGhhdCBoYXZlIGVsYXBzZWQgc2luY2VcbiAqIHRoZSBVbml4IGVwb2NoICgxIEphbnVhcnkgMTk3MCAwMDowMDowMCBVVEMpLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMi40LjBcbiAqIEBjYXRlZ29yeSBEYXRlXG4gKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSB0aW1lc3RhbXAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uZGVmZXIoZnVuY3Rpb24oc3RhbXApIHtcbiAqICAgY29uc29sZS5sb2coXy5ub3coKSAtIHN0YW1wKTtcbiAqIH0sIF8ubm93KCkpO1xuICogLy8gPT4gTG9ncyB0aGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBpdCB0b29rIGZvciB0aGUgZGVmZXJyZWQgaW52b2NhdGlvbi5cbiAqL1xudmFyIG5vdyA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gcm9vdC5EYXRlLm5vdygpO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBub3c7XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../../node_modules/lodash/now.js\n')},"../../node_modules/lodash/throttle.js":function(module,exports,__webpack_require__){eval("var debounce = __webpack_require__(\"../../node_modules/lodash/debounce.js\"),\n isObject = __webpack_require__(\"../../node_modules/lodash/isObject.js\");\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nmodule.exports = throttle;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vL2hvbWUvamVua2lucy93b3Jrc3BhY2UvZGVzaWduLXN5c3RlbV9tYWluL25vZGVfbW9kdWxlcy9sb2Rhc2gvdGhyb3R0bGUuanM/YmVmOSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxlQUFlLG1CQUFPLENBQUMsdUNBQVk7QUFDbkMsZUFBZSxtQkFBTyxDQUFDLHVDQUFZOztBQUVuQztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsU0FBUztBQUNwQixXQUFXLE9BQU87QUFDbEIsV0FBVyxPQUFPLFlBQVk7QUFDOUIsV0FBVyxRQUFRO0FBQ25CO0FBQ0EsV0FBVyxRQUFRO0FBQ25CO0FBQ0EsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1EQUFtRCxvQkFBb0I7QUFDdkU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIOztBQUVBIiwiZmlsZSI6Ii4uLy4uL25vZGVfbW9kdWxlcy9sb2Rhc2gvdGhyb3R0bGUuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgZGVib3VuY2UgPSByZXF1aXJlKCcuL2RlYm91bmNlJyksXG4gICAgaXNPYmplY3QgPSByZXF1aXJlKCcuL2lzT2JqZWN0Jyk7XG5cbi8qKiBFcnJvciBtZXNzYWdlIGNvbnN0YW50cy4gKi9cbnZhciBGVU5DX0VSUk9SX1RFWFQgPSAnRXhwZWN0ZWQgYSBmdW5jdGlvbic7XG5cbi8qKlxuICogQ3JlYXRlcyBhIHRocm90dGxlZCBmdW5jdGlvbiB0aGF0IG9ubHkgaW52b2tlcyBgZnVuY2AgYXQgbW9zdCBvbmNlIHBlclxuICogZXZlcnkgYHdhaXRgIG1pbGxpc2Vjb25kcy4gVGhlIHRocm90dGxlZCBmdW5jdGlvbiBjb21lcyB3aXRoIGEgYGNhbmNlbGBcbiAqIG1ldGhvZCB0byBjYW5jZWwgZGVsYXllZCBgZnVuY2AgaW52b2NhdGlvbnMgYW5kIGEgYGZsdXNoYCBtZXRob2QgdG9cbiAqIGltbWVkaWF0ZWx5IGludm9rZSB0aGVtLiBQcm92aWRlIGBvcHRpb25zYCB0byBpbmRpY2F0ZSB3aGV0aGVyIGBmdW5jYFxuICogc2hvdWxkIGJlIGludm9rZWQgb24gdGhlIGxlYWRpbmcgYW5kL29yIHRyYWlsaW5nIGVkZ2Ugb2YgdGhlIGB3YWl0YFxuICogdGltZW91dC4gVGhlIGBmdW5jYCBpcyBpbnZva2VkIHdpdGggdGhlIGxhc3QgYXJndW1lbnRzIHByb3ZpZGVkIHRvIHRoZVxuICogdGhyb3R0bGVkIGZ1bmN0aW9uLiBTdWJzZXF1ZW50IGNhbGxzIHRvIHRoZSB0aHJvdHRsZWQgZnVuY3Rpb24gcmV0dXJuIHRoZVxuICogcmVzdWx0IG9mIHRoZSBsYXN0IGBmdW5jYCBpbnZvY2F0aW9uLlxuICpcbiAqICoqTm90ZToqKiBJZiBgbGVhZGluZ2AgYW5kIGB0cmFpbGluZ2Agb3B0aW9ucyBhcmUgYHRydWVgLCBgZnVuY2AgaXNcbiAqIGludm9rZWQgb24gdGhlIHRyYWlsaW5nIGVkZ2Ugb2YgdGhlIHRpbWVvdXQgb25seSBpZiB0aGUgdGhyb3R0bGVkIGZ1bmN0aW9uXG4gKiBpcyBpbnZva2VkIG1vcmUgdGhhbiBvbmNlIGR1cmluZyB0aGUgYHdhaXRgIHRpbWVvdXQuXG4gKlxuICogSWYgYHdhaXRgIGlzIGAwYCBhbmQgYGxlYWRpbmdgIGlzIGBmYWxzZWAsIGBmdW5jYCBpbnZvY2F0aW9uIGlzIGRlZmVycmVkXG4gKiB1bnRpbCB0byB0aGUgbmV4dCB0aWNrLCBzaW1pbGFyIHRvIGBzZXRUaW1lb3V0YCB3aXRoIGEgdGltZW91dCBvZiBgMGAuXG4gKlxuICogU2VlIFtEYXZpZCBDb3JiYWNobydzIGFydGljbGVdKGh0dHBzOi8vY3NzLXRyaWNrcy5jb20vZGVib3VuY2luZy10aHJvdHRsaW5nLWV4cGxhaW5lZC1leGFtcGxlcy8pXG4gKiBmb3IgZGV0YWlscyBvdmVyIHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIGBfLnRocm90dGxlYCBhbmQgYF8uZGVib3VuY2VgLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gdGhyb3R0bGUuXG4gKiBAcGFyYW0ge251bWJlcn0gW3dhaXQ9MF0gVGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgdG8gdGhyb3R0bGUgaW52b2NhdGlvbnMgdG8uXG4gKiBAcGFyYW0ge09iamVjdH0gW29wdGlvbnM9e31dIFRoZSBvcHRpb25zIG9iamVjdC5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMubGVhZGluZz10cnVlXVxuICogIFNwZWNpZnkgaW52b2tpbmcgb24gdGhlIGxlYWRpbmcgZWRnZSBvZiB0aGUgdGltZW91dC5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMudHJhaWxpbmc9dHJ1ZV1cbiAqICBTcGVjaWZ5IGludm9raW5nIG9uIHRoZSB0cmFpbGluZyBlZGdlIG9mIHRoZSB0aW1lb3V0LlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgdGhyb3R0bGVkIGZ1bmN0aW9uLlxuICogQGV4YW1wbGVcbiAqXG4gKiAvLyBBdm9pZCBleGNlc3NpdmVseSB1cGRhdGluZyB0aGUgcG9zaXRpb24gd2hpbGUgc2Nyb2xsaW5nLlxuICogalF1ZXJ5KHdpbmRvdykub24oJ3Njcm9sbCcsIF8udGhyb3R0bGUodXBkYXRlUG9zaXRpb24sIDEwMCkpO1xuICpcbiAqIC8vIEludm9rZSBgcmVuZXdUb2tlbmAgd2hlbiB0aGUgY2xpY2sgZXZlbnQgaXMgZmlyZWQsIGJ1dCBub3QgbW9yZSB0aGFuIG9uY2UgZXZlcnkgNSBtaW51dGVzLlxuICogdmFyIHRocm90dGxlZCA9IF8udGhyb3R0bGUocmVuZXdUb2tlbiwgMzAwMDAwLCB7ICd0cmFpbGluZyc6IGZhbHNlIH0pO1xuICogalF1ZXJ5KGVsZW1lbnQpLm9uKCdjbGljaycsIHRocm90dGxlZCk7XG4gKlxuICogLy8gQ2FuY2VsIHRoZSB0cmFpbGluZyB0aHJvdHRsZWQgaW52b2NhdGlvbi5cbiAqIGpRdWVyeSh3aW5kb3cpLm9uKCdwb3BzdGF0ZScsIHRocm90dGxlZC5jYW5jZWwpO1xuICovXG5mdW5jdGlvbiB0aHJvdHRsZShmdW5jLCB3YWl0LCBvcHRpb25zKSB7XG4gIHZhciBsZWFkaW5nID0gdHJ1ZSxcbiAgICAgIHRyYWlsaW5nID0gdHJ1ZTtcblxuICBpZiAodHlwZW9mIGZ1bmMgIT0gJ2Z1bmN0aW9uJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoRlVOQ19FUlJPUl9URVhUKTtcbiAgfVxuICBpZiAoaXNPYmplY3Qob3B0aW9ucykpIHtcbiAgICBsZWFkaW5nID0gJ2xlYWRpbmcnIGluIG9wdGlvbnMgPyAhIW9wdGlvbnMubGVhZGluZyA6IGxlYWRpbmc7XG4gICAgdHJhaWxpbmcgPSAndHJhaWxpbmcnIGluIG9wdGlvbnMgPyAhIW9wdGlvbnMudHJhaWxpbmcgOiB0cmFpbGluZztcbiAgfVxuICByZXR1cm4gZGVib3VuY2UoZnVuYywgd2FpdCwge1xuICAgICdsZWFkaW5nJzogbGVhZGluZyxcbiAgICAnbWF4V2FpdCc6IHdhaXQsXG4gICAgJ3RyYWlsaW5nJzogdHJhaWxpbmdcbiAgfSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gdGhyb3R0bGU7XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../../node_modules/lodash/throttle.js\n")},"../../node_modules/lodash/toNumber.js":function(module,exports,__webpack_require__){eval("var baseTrim = __webpack_require__(\"../../node_modules/lodash/_baseTrim.js\"),\n isObject = __webpack_require__(\"../../node_modules/lodash/isObject.js\"),\n isSymbol = __webpack_require__(\"../../node_modules/lodash/isSymbol.js\");\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vL2hvbWUvamVua2lucy93b3Jrc3BhY2UvZGVzaWduLXN5c3RlbV9tYWluL25vZGVfbW9kdWxlcy9sb2Rhc2gvdG9OdW1iZXIuanM/NjM4MyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxlQUFlLG1CQUFPLENBQUMsd0NBQWE7QUFDcEMsZUFBZSxtQkFBTyxDQUFDLHVDQUFZO0FBQ25DLGVBQWUsbUJBQU8sQ0FBQyx1Q0FBWTs7QUFFbkM7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxFQUFFO0FBQ2IsYUFBYSxPQUFPO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwiZmlsZSI6Ii4uLy4uL25vZGVfbW9kdWxlcy9sb2Rhc2gvdG9OdW1iZXIuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgYmFzZVRyaW0gPSByZXF1aXJlKCcuL19iYXNlVHJpbScpLFxuICAgIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9pc09iamVjdCcpLFxuICAgIGlzU3ltYm9sID0gcmVxdWlyZSgnLi9pc1N5bWJvbCcpO1xuXG4vKiogVXNlZCBhcyByZWZlcmVuY2VzIGZvciB2YXJpb3VzIGBOdW1iZXJgIGNvbnN0YW50cy4gKi9cbnZhciBOQU4gPSAwIC8gMDtcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IGJhZCBzaWduZWQgaGV4YWRlY2ltYWwgc3RyaW5nIHZhbHVlcy4gKi9cbnZhciByZUlzQmFkSGV4ID0gL15bLStdMHhbMC05YS1mXSskL2k7XG5cbi8qKiBVc2VkIHRvIGRldGVjdCBiaW5hcnkgc3RyaW5nIHZhbHVlcy4gKi9cbnZhciByZUlzQmluYXJ5ID0gL14wYlswMV0rJC9pO1xuXG4vKiogVXNlZCB0byBkZXRlY3Qgb2N0YWwgc3RyaW5nIHZhbHVlcy4gKi9cbnZhciByZUlzT2N0YWwgPSAvXjBvWzAtN10rJC9pO1xuXG4vKiogQnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMgd2l0aG91dCBhIGRlcGVuZGVuY3kgb24gYHJvb3RgLiAqL1xudmFyIGZyZWVQYXJzZUludCA9IHBhcnNlSW50O1xuXG4vKipcbiAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gYSBudW1iZXIuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHByb2Nlc3MuXG4gKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBudW1iZXIuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8udG9OdW1iZXIoMy4yKTtcbiAqIC8vID0+IDMuMlxuICpcbiAqIF8udG9OdW1iZXIoTnVtYmVyLk1JTl9WQUxVRSk7XG4gKiAvLyA9PiA1ZS0zMjRcbiAqXG4gKiBfLnRvTnVtYmVyKEluZmluaXR5KTtcbiAqIC8vID0+IEluZmluaXR5XG4gKlxuICogXy50b051bWJlcignMy4yJyk7XG4gKiAvLyA9PiAzLjJcbiAqL1xuZnVuY3Rpb24gdG9OdW1iZXIodmFsdWUpIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PSAnbnVtYmVyJykge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICBpZiAoaXNTeW1ib2wodmFsdWUpKSB7XG4gICAgcmV0dXJuIE5BTjtcbiAgfVxuICBpZiAoaXNPYmplY3QodmFsdWUpKSB7XG4gICAgdmFyIG90aGVyID0gdHlwZW9mIHZhbHVlLnZhbHVlT2YgPT0gJ2Z1bmN0aW9uJyA/IHZhbHVlLnZhbHVlT2YoKSA6IHZhbHVlO1xuICAgIHZhbHVlID0gaXNPYmplY3Qob3RoZXIpID8gKG90aGVyICsgJycpIDogb3RoZXI7XG4gIH1cbiAgaWYgKHR5cGVvZiB2YWx1ZSAhPSAnc3RyaW5nJykge1xuICAgIHJldHVybiB2YWx1ZSA9PT0gMCA/IHZhbHVlIDogK3ZhbHVlO1xuICB9XG4gIHZhbHVlID0gYmFzZVRyaW0odmFsdWUpO1xuICB2YXIgaXNCaW5hcnkgPSByZUlzQmluYXJ5LnRlc3QodmFsdWUpO1xuICByZXR1cm4gKGlzQmluYXJ5IHx8IHJlSXNPY3RhbC50ZXN0KHZhbHVlKSlcbiAgICA/IGZyZWVQYXJzZUludCh2YWx1ZS5zbGljZSgyKSwgaXNCaW5hcnkgPyAyIDogOClcbiAgICA6IChyZUlzQmFkSGV4LnRlc3QodmFsdWUpID8gTkFOIDogK3ZhbHVlKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB0b051bWJlcjtcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../node_modules/lodash/toNumber.js\n")},"./node_modules/@storybook/components/dist/esm/controls/Color.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, "ColorControl", function() { return /* binding */ Color_ColorControl; });\n\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/core-js/modules/es.object.keys.js\nvar es_object_keys = __webpack_require__("../../node_modules/core-js/modules/es.object.keys.js");\n\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/core-js/modules/es.symbol.js\nvar es_symbol = __webpack_require__("../../node_modules/core-js/modules/es.symbol.js");\n\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/core-js/modules/es.symbol.description.js\nvar es_symbol_description = __webpack_require__("../../node_modules/core-js/modules/es.symbol.description.js");\n\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/core-js/modules/es.object.to-string.js\nvar es_object_to_string = __webpack_require__("../../node_modules/core-js/modules/es.object.to-string.js");\n\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/core-js/modules/es.symbol.iterator.js\nvar es_symbol_iterator = __webpack_require__("../../node_modules/core-js/modules/es.symbol.iterator.js");\n\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/core-js/modules/es.string.iterator.js\nvar es_string_iterator = __webpack_require__("../../node_modules/core-js/modules/es.string.iterator.js");\n\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/core-js/modules/es.array.iterator.js\nvar es_array_iterator = __webpack_require__("../../node_modules/core-js/modules/es.array.iterator.js");\n\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/core-js/modules/web.dom-collections.iterator.js\nvar web_dom_collections_iterator = __webpack_require__("../../node_modules/core-js/modules/web.dom-collections.iterator.js");\n\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/core-js/modules/es.array.from.js\nvar es_array_from = __webpack_require__("../../node_modules/core-js/modules/es.array.from.js");\n\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/core-js/modules/es.array.concat.js\nvar es_array_concat = __webpack_require__("../../node_modules/core-js/modules/es.array.concat.js");\n\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/core-js/modules/es.object.assign.js\nvar es_object_assign = __webpack_require__("../../node_modules/core-js/modules/es.object.assign.js");\n\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/core-js/modules/es.object.values.js\nvar es_object_values = __webpack_require__("../../node_modules/core-js/modules/es.object.values.js");\n\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/core-js/modules/es.string.match.js\nvar es_string_match = __webpack_require__("../../node_modules/core-js/modules/es.string.match.js");\n\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/core-js/modules/es.regexp.exec.js\nvar es_regexp_exec = __webpack_require__("../../node_modules/core-js/modules/es.regexp.exec.js");\n\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/core-js/modules/es.array.map.js\nvar es_array_map = __webpack_require__("../../node_modules/core-js/modules/es.array.map.js");\n\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/core-js/modules/es.number.constructor.js\nvar es_number_constructor = __webpack_require__("../../node_modules/core-js/modules/es.number.constructor.js");\n\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/core-js/modules/es.string.replace.js\nvar es_string_replace = __webpack_require__("../../node_modules/core-js/modules/es.string.replace.js");\n\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/core-js/modules/es.string.starts-with.js\nvar es_string_starts_with = __webpack_require__("../../node_modules/core-js/modules/es.string.starts-with.js");\n\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/core-js/modules/es.string.split.js\nvar es_string_split = __webpack_require__("../../node_modules/core-js/modules/es.string.split.js");\n\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/core-js/modules/es.array.slice.js\nvar es_array_slice = __webpack_require__("../../node_modules/core-js/modules/es.array.slice.js");\n\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/core-js/modules/es.array.filter.js\nvar es_array_filter = __webpack_require__("../../node_modules/core-js/modules/es.array.filter.js");\n\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/core-js/modules/es.function.name.js\nvar es_function_name = __webpack_require__("../../node_modules/core-js/modules/es.function.name.js");\n\n// EXTERNAL MODULE: ./node_modules/react/index.js\nvar react = __webpack_require__("./node_modules/react/index.js");\nvar react_default = /*#__PURE__*/__webpack_require__.n(react);\n\n// CONCATENATED MODULE: ./node_modules/react-colorful/dist/index.module.js\nfunction index_module_u(){return(index_module_u=Object.assign||function(e){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])}return e}).apply(this,arguments)}function index_module_c(e,r){if(null==e)return{};var t,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r.indexOf(t=a[n])>=0||(o[t]=e[t]);return o}function index_module_i(e){var t=Object(react["useRef"])(e),n=Object(react["useRef"])(function(e){t.current&&t.current(e)});return t.current=e,n.current}var index_module_s=function(e,r,t){return void 0===r&&(r=0),void 0===t&&(t=1),e>t?t:e<r?r:e},index_module_f=function(e){return"touches"in e},index_module_v=function(e){return e&&e.ownerDocument.defaultView||self},index_module_d=function(e,r,t){var n=e.getBoundingClientRect(),o=index_module_f(r)?function(e,r){for(var t=0;t<e.length;t++)if(e[t].identifier===r)return e[t];return e[0]}(r.touches,t):r;return{left:index_module_s((o.pageX-(n.left+index_module_v(e).pageXOffset))/n.width),top:index_module_s((o.pageY-(n.top+index_module_v(e).pageYOffset))/n.height)}},index_module_h=function(e){!index_module_f(e)&&e.preventDefault()},index_module_m=react_default.a.memo(function(o){var a=o.onMove,l=o.onKey,s=index_module_c(o,["onMove","onKey"]),m=Object(react["useRef"])(null),g=index_module_i(a),p=index_module_i(l),b=Object(react["useRef"])(null),_=Object(react["useRef"])(!1),x=Object(react["useMemo"])(function(){var e=function(e){index_module_h(e),(index_module_f(e)?e.touches.length>0:e.buttons>0)&&m.current?g(index_module_d(m.current,e,b.current)):t(!1)},r=function(){return t(!1)};function t(t){var n=_.current,o=index_module_v(m.current),a=t?o.addEventListener:o.removeEventListener;a(n?"touchmove":"mousemove",e),a(n?"touchend":"mouseup",r)}return[function(e){var r=e.nativeEvent,n=m.current;if(n&&(index_module_h(r),!function(e,r){return r&&!index_module_f(e)}(r,_.current)&&n)){if(index_module_f(r)){_.current=!0;var o=r.changedTouches||[];o.length&&(b.current=o[0].identifier)}n.focus(),g(index_module_d(n,r,b.current)),t(!0)}},function(e){var r=e.which||e.keyCode;r<37||r>40||(e.preventDefault(),p({left:39===r?.05:37===r?-.05:0,top:40===r?.05:38===r?-.05:0}))},t]},[p,g]),C=x[0],E=x[1],H=x[2];return Object(react["useEffect"])(function(){return H},[H]),react_default.a.createElement("div",index_module_u({},s,{onTouchStart:C,onMouseDown:C,className:"react-colorful__interactive",ref:m,onKeyDown:E,tabIndex:0,role:"slider"}))}),index_module_g=function(e){return e.filter(Boolean).join(" ")},index_module_p=function(r){var t=r.color,n=r.left,o=r.top,a=void 0===o?.5:o,l=index_module_g(["react-colorful__pointer",r.className]);return react_default.a.createElement("div",{className:l,style:{top:100*a+"%",left:100*n+"%"}},react_default.a.createElement("div",{className:"react-colorful__pointer-fill",style:{backgroundColor:t}}))},index_module_b=function(e,r,t){return void 0===r&&(r=0),void 0===t&&(t=Math.pow(10,r)),Math.round(t*e)/t},index_module_={grad:.9,turn:360,rad:360/(2*Math.PI)},index_module_x=function(e){return"#"===e[0]&&(e=e.substr(1)),e.length<6?{r:parseInt(e[0]+e[0],16),g:parseInt(e[1]+e[1],16),b:parseInt(e[2]+e[2],16),a:1}:{r:parseInt(e.substr(0,2),16),g:parseInt(e.substr(2,2),16),b:parseInt(e.substr(4,2),16),a:1}},index_module_C=function(e,r){return void 0===r&&(r="deg"),Number(e)*(index_module_[r]||1)},index_module_E=function(e){var r=/hsla?\\(?\\s*(-?\\d*\\.?\\d+)(deg|rad|grad|turn)?[,\\s]+(-?\\d*\\.?\\d+)%?[,\\s]+(-?\\d*\\.?\\d+)%?,?\\s*[/\\s]*(-?\\d*\\.?\\d+)?(%)?\\s*\\)?/i.exec(e);return r?M({h:index_module_C(r[1],r[2]),s:Number(r[3]),l:Number(r[4]),a:void 0===r[5]?1:Number(r[5])/(r[6]?100:1)}):{h:0,s:0,v:0,a:1}},index_module_H=index_module_E,M=function(e){var r=e.s,t=e.l;return{h:e.h,s:(r*=(t<50?t:100-t)/100)>0?2*r/(t+r)*100:0,v:t+r,a:e.a}},N=function(e){var r=e.s,t=e.v,n=e.a,o=(200-r)*t/100;return{h:index_module_b(e.h),s:index_module_b(o>0&&o<200?r*t/100/(o<=100?o:200-o)*100:0),l:index_module_b(o/2),a:index_module_b(n,2)}},w=function(e){var r=N(e);return"hsl("+r.h+", "+r.s+"%, "+r.l+"%)"},y=function(e){var r=N(e);return"hsla("+r.h+", "+r.s+"%, "+r.l+"%, "+r.a+")"},q=function(e){var r=e.h,t=e.s,n=e.v,o=e.a;r=r/360*6,t/=100,n/=100;var a=Math.floor(r),l=n*(1-t),u=n*(1-(r-a)*t),c=n*(1-(1-r+a)*t),i=a%6;return{r:index_module_b(255*[n,u,l,l,c,n][i]),g:index_module_b(255*[c,n,n,u,l,l][i]),b:index_module_b(255*[l,l,c,n,n,u][i]),a:index_module_b(o,2)}},k=function(e){var r=/hsva?\\(?\\s*(-?\\d*\\.?\\d+)(deg|rad|grad|turn)?[,\\s]+(-?\\d*\\.?\\d+)%?[,\\s]+(-?\\d*\\.?\\d+)%?,?\\s*[/\\s]*(-?\\d*\\.?\\d+)?(%)?\\s*\\)?/i.exec(e);return r?D({h:index_module_C(r[1],r[2]),s:Number(r[3]),v:Number(r[4]),a:void 0===r[5]?1:Number(r[5])/(r[6]?100:1)}):{h:0,s:0,v:0,a:1}},O=k,I=function(e){var r=/rgba?\\(?\\s*(-?\\d*\\.?\\d+)(%)?[,\\s]+(-?\\d*\\.?\\d+)(%)?[,\\s]+(-?\\d*\\.?\\d+)(%)?,?\\s*[/\\s]*(-?\\d*\\.?\\d+)?(%)?\\s*\\)?/i.exec(e);return r?B({r:Number(r[1])/(r[2]?100/255:1),g:Number(r[3])/(r[4]?100/255:1),b:Number(r[5])/(r[6]?100/255:1),a:void 0===r[7]?1:Number(r[7])/(r[8]?100:1)}):{h:0,s:0,v:0,a:1}},j=I,z=function(e){var r=e.toString(16);return r.length<2?"0"+r:r},B=function(e){var r=e.r,t=e.g,n=e.b,o=e.a,a=Math.max(r,t,n),l=a-Math.min(r,t,n),u=l?a===r?(t-n)/l:a===t?2+(n-r)/l:4+(r-t)/l:0;return{h:index_module_b(60*(u<0?u+6:u)),s:index_module_b(a?l/a*100:0),v:index_module_b(a/255*100),a:o}},D=function(e){return{h:index_module_b(e.h),s:index_module_b(e.s),v:index_module_b(e.v),a:index_module_b(e.a,2)}},K=react_default.a.memo(function(r){var t=r.hue,n=r.onChange,o=index_module_g(["react-colorful__hue",r.className]);return react_default.a.createElement("div",{className:o},react_default.a.createElement(index_module_m,{onMove:function(e){n({h:360*e.left})},onKey:function(e){n({h:index_module_s(t+360*e.left,0,360)})},"aria-label":"Hue","aria-valuetext":index_module_b(t)},react_default.a.createElement(index_module_p,{className:"react-colorful__hue-pointer",left:t/360,color:w({h:t,s:100,v:100,a:1})})))}),L=react_default.a.memo(function(r){var t=r.hsva,n=r.onChange,o={backgroundColor:w({h:t.h,s:100,v:100,a:1})};return react_default.a.createElement("div",{className:"react-colorful__saturation",style:o},react_default.a.createElement(index_module_m,{onMove:function(e){n({s:100*e.left,v:100-100*e.top})},onKey:function(e){n({s:index_module_s(t.s+100*e.left,0,100),v:index_module_s(t.v-100*e.top,0,100)})},"aria-label":"Color","aria-valuetext":"Saturation "+index_module_b(t.s)+"%, Brightness "+index_module_b(t.v)+"%"},react_default.a.createElement(index_module_p,{className:"react-colorful__saturation-pointer",top:1-t.v/100,left:t.s/100,color:w(t)})))}),A=function(e,r){if(e===r)return!0;for(var t in e)if(e[t]!==r[t])return!1;return!0},S=function(e,r){return e.replace(/\\s/g,"")===r.replace(/\\s/g,"")};function T(e,t,l){var u=index_module_i(l),c=Object(react["useState"])(function(){return e.toHsva(t)}),s=c[0],f=c[1],v=Object(react["useRef"])({color:t,hsva:s});Object(react["useEffect"])(function(){if(!e.equal(t,v.current.color)){var r=e.toHsva(t);v.current={hsva:r,color:t},f(r)}},[t,e]),Object(react["useEffect"])(function(){var r;A(s,v.current.hsva)||e.equal(r=e.fromHsva(s),v.current.color)||(v.current={hsva:s,color:r},u(r))},[s,e,u]);var d=Object(react["useCallback"])(function(e){f(function(r){return Object.assign({},r,e)})},[]);return[s,d]}var F,P="undefined"!=typeof window?react["useLayoutEffect"]:react["useEffect"],X=function(){return F||( true?__webpack_require__.nc:undefined)},Y=function(e){F=e},R=new Map,V=function(e){P(function(){var r=e.current?e.current.ownerDocument:document;if(void 0!==r&&!R.has(r)){var t=r.createElement("style");t.innerHTML=\'.react-colorful{position:relative;display:flex;flex-direction:column;width:200px;height:200px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.react-colorful__saturation{position:relative;flex-grow:1;border-color:transparent;border-bottom:12px solid #000;border-radius:8px 8px 0 0;background-image:linear-gradient(0deg,#000,transparent),linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.react-colorful__alpha-gradient,.react-colorful__pointer-fill{content:"";position:absolute;left:0;top:0;right:0;bottom:0;pointer-events:none;border-radius:inherit}.react-colorful__alpha-gradient,.react-colorful__saturation{box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}.react-colorful__alpha,.react-colorful__hue{position:relative;height:24px}.react-colorful__hue{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.react-colorful__last-control{border-radius:0 0 8px 8px}.react-colorful__interactive{position:absolute;left:0;top:0;right:0;bottom:0;border-radius:inherit;outline:none;touch-action:none}.react-colorful__pointer{position:absolute;z-index:1;box-sizing:border-box;width:28px;height:28px;transform:translate(-50%,-50%);background-color:#fff;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.2)}.react-colorful__interactive:focus .react-colorful__pointer{transform:translate(-50%,-50%) scale(1.1)}.react-colorful__alpha,.react-colorful__alpha-pointer{background-color:#fff;background-image:url(\\\'data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill-opacity=".05"><path d="M8 0h8v8H8zM0 8h8v8H0z"/></svg>\\\')}.react-colorful__saturation-pointer{z-index:3}.react-colorful__hue-pointer{z-index:2}\',R.set(r,t);var n=X();n&&t.setAttribute("nonce",n),r.head.appendChild(t)}},[])},$=function(t){var n=t.className,o=t.colorModel,a=t.color,l=void 0===a?o.defaultColor:a,i=t.onChange,s=index_module_c(t,["className","colorModel","color","onChange"]),f=Object(react["useRef"])(null);V(f);var v=T(o,l,i),d=v[0],h=v[1],m=index_module_g(["react-colorful",n]);return react_default.a.createElement("div",index_module_u({},s,{ref:f,className:m}),react_default.a.createElement(L,{hsva:d,onChange:h}),react_default.a.createElement(K,{hue:d.h,onChange:h,className:"react-colorful__last-control"}))},G={defaultColor:"000",toHsva:function(e){return B(index_module_x(e))},fromHsva:function(e){return t=(r=q(e)).g,n=r.b,"#"+z(r.r)+z(t)+z(n);var r,t,n},equal:function(e,r){return e.toLowerCase()===r.toLowerCase()||A(index_module_x(e),index_module_x(r))}},J=function(r){return react_default.a.createElement($,index_module_u({},r,{colorModel:G}))},Q=function(r){var t=r.className,n=r.hsva,o=r.onChange,a={backgroundImage:"linear-gradient(90deg, "+y(Object.assign({},n,{a:0}))+", "+y(Object.assign({},n,{a:1}))+")"},l=index_module_g(["react-colorful__alpha",t]);return react_default.a.createElement("div",{className:l},react_default.a.createElement("div",{className:"react-colorful__alpha-gradient",style:a}),react_default.a.createElement(index_module_m,{onMove:function(e){o({a:e.left})},onKey:function(e){o({a:index_module_s(n.a+e.left)})},"aria-label":"Alpha","aria-valuetext":index_module_b(100*n.a)+"%"},react_default.a.createElement(index_module_p,{className:"react-colorful__alpha-pointer",left:n.a,color:y(n)})))},U=function(t){var n=t.className,o=t.colorModel,a=t.color,l=void 0===a?o.defaultColor:a,i=t.onChange,s=index_module_c(t,["className","colorModel","color","onChange"]),f=Object(react["useRef"])(null);V(f);var v=T(o,l,i),d=v[0],h=v[1],m=index_module_g(["react-colorful",n]);return react_default.a.createElement("div",index_module_u({},s,{ref:f,className:m}),react_default.a.createElement(L,{hsva:d,onChange:h}),react_default.a.createElement(K,{hue:d.h,onChange:h}),react_default.a.createElement(Q,{hsva:d,onChange:h,className:"react-colorful__last-control"}))},W={defaultColor:{h:0,s:0,l:0,a:1},toHsva:M,fromHsva:N,equal:A},Z=function(r){return react_default.a.createElement(U,index_module_u({},r,{colorModel:W}))},ee={defaultColor:"hsla(0, 0%, 0%, 1)",toHsva:index_module_E,fromHsva:y,equal:S},re=function(r){return react_default.a.createElement(U,index_module_u({},r,{colorModel:ee}))},te={defaultColor:{h:0,s:0,l:0},toHsva:function(e){return M({h:e.h,s:e.s,l:e.l,a:1})},fromHsva:function(e){return{h:(r=N(e)).h,s:r.s,l:r.l};var r},equal:A},ne=function(r){return react_default.a.createElement($,index_module_u({},r,{colorModel:te}))},oe={defaultColor:"hsl(0, 0%, 0%)",toHsva:index_module_H,fromHsva:w,equal:S},ae=function(r){return react_default.a.createElement($,index_module_u({},r,{colorModel:oe}))},le={defaultColor:{h:0,s:0,v:0,a:1},toHsva:function(e){return e},fromHsva:D,equal:A},ue=function(r){return react_default.a.createElement(U,index_module_u({},r,{colorModel:le}))},ce={defaultColor:"hsva(0, 0%, 0%, 1)",toHsva:k,fromHsva:function(e){var r=D(e);return"hsva("+r.h+", "+r.s+"%, "+r.v+"%, "+r.a+")"},equal:S},ie=function(r){return react_default.a.createElement(U,index_module_u({},r,{colorModel:ce}))},se={defaultColor:{h:0,s:0,v:0},toHsva:function(e){return{h:e.h,s:e.s,v:e.v,a:1}},fromHsva:function(e){var r=D(e);return{h:r.h,s:r.s,v:r.v}},equal:A},fe=function(r){return react_default.a.createElement($,index_module_u({},r,{colorModel:se}))},ve={defaultColor:"hsv(0, 0%, 0%)",toHsva:O,fromHsva:function(e){var r=D(e);return"hsv("+r.h+", "+r.s+"%, "+r.v+"%)"},equal:S},de=function(r){return react_default.a.createElement($,index_module_u({},r,{colorModel:ve}))},he={defaultColor:{r:0,g:0,b:0,a:1},toHsva:B,fromHsva:q,equal:A},me=function(r){return react_default.a.createElement(U,index_module_u({},r,{colorModel:he}))},ge={defaultColor:"rgba(0, 0, 0, 1)",toHsva:I,fromHsva:function(e){var r=q(e);return"rgba("+r.r+", "+r.g+", "+r.b+", "+r.a+")"},equal:S},pe=function(r){return react_default.a.createElement(U,index_module_u({},r,{colorModel:ge}))},be={defaultColor:{r:0,g:0,b:0},toHsva:function(e){return B({r:e.r,g:e.g,b:e.b,a:1})},fromHsva:function(e){return{r:(r=q(e)).r,g:r.g,b:r.b};var r},equal:A},_e=function(r){return react_default.a.createElement($,index_module_u({},r,{colorModel:be}))},xe={defaultColor:"rgb(0, 0, 0)",toHsva:j,fromHsva:function(e){var r=q(e);return"rgb("+r.r+", "+r.g+", "+r.b+")"},equal:S},Ce=function(r){return react_default.a.createElement($,index_module_u({},r,{colorModel:xe}))},Ee=/^#?([0-9A-F]{3,8})$/i,He=function(r){var t=r.color,l=void 0===t?"":t,s=r.onChange,f=r.onBlur,v=r.escape,d=r.validate,h=r.format,m=r.process,g=index_module_c(r,["color","onChange","onBlur","escape","validate","format","process"]),p=Object(react["useState"])(function(){return v(l)}),b=p[0],_=p[1],x=index_module_i(s),C=index_module_i(f),E=Object(react["useCallback"])(function(e){var r=v(e.target.value);_(r),d(r)&&x(m?m(r):r)},[v,m,d,x]),H=Object(react["useCallback"])(function(e){d(e.target.value)||_(v(l)),C(e)},[l,v,d,C]);return Object(react["useEffect"])(function(){_(v(l))},[l,v]),react_default.a.createElement("input",index_module_u({},g,{value:h?h(b):b,spellCheck:"false",onChange:E,onBlur:H}))},Me=function(e){return"#"+e},Ne=function(r){var t=r.prefixed,n=r.alpha,o=index_module_c(r,["prefixed","alpha"]),l=Object(react["useCallback"])(function(e){return e.replace(/([^0-9A-F]+)/gi,"").substr(0,n?8:6)},[n]),i=Object(react["useCallback"])(function(e){return function(e,r){var t=Ee.exec(e),n=t?t[1].length:0;return 3===n||6===n||!!r&&4===n||!!r&&8===n}(e,n)},[n]);return react_default.a.createElement(He,index_module_u({},o,{escape:l,format:t?Me:void 0,process:Me,validate:i}))};\n\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/color-convert/index.js\nvar color_convert = __webpack_require__("../../node_modules/color-convert/index.js");\nvar color_convert_default = /*#__PURE__*/__webpack_require__.n(color_convert);\n\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/lodash/throttle.js\nvar throttle = __webpack_require__("../../node_modules/lodash/throttle.js");\nvar throttle_default = /*#__PURE__*/__webpack_require__.n(throttle);\n\n// EXTERNAL MODULE: ./node_modules/@storybook/theming/dist/esm/index.js\nvar esm = __webpack_require__("./node_modules/@storybook/theming/dist/esm/index.js");\n\n// EXTERNAL MODULE: ./node_modules/@storybook/components/dist/esm/tooltip/TooltipNote.js\nvar TooltipNote = __webpack_require__("./node_modules/@storybook/components/dist/esm/tooltip/TooltipNote.js");\n\n// EXTERNAL MODULE: ./node_modules/@storybook/components/dist/esm/tooltip/lazy-WithTooltip.js\nvar lazy_WithTooltip = __webpack_require__("./node_modules/@storybook/components/dist/esm/tooltip/lazy-WithTooltip.js");\n\n// EXTERNAL MODULE: ./node_modules/@storybook/components/dist/esm/form/index.js + 2 modules\nvar esm_form = __webpack_require__("./node_modules/@storybook/components/dist/esm/form/index.js");\n\n// EXTERNAL MODULE: ./node_modules/@storybook/components/dist/esm/icon/icon.js + 2 modules\nvar icon = __webpack_require__("./node_modules/@storybook/components/dist/esm/icon/icon.js");\n\n// EXTERNAL MODULE: ./node_modules/@storybook/components/dist/esm/controls/helpers.js\nvar helpers = __webpack_require__("./node_modules/@storybook/components/dist/esm/controls/helpers.js");\n\n// CONCATENATED MODULE: ./node_modules/@storybook/components/dist/esm/controls/Color.js\n\n\n\n\n\n\n\n\n\n\nvar _ColorPicker, _fallbackColor;\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _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; }\n\nfunction _extends() { _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); }\n\nfunction _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; }\n\nfunction _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; }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar Wrapper = esm["styled"].div({\n position: \'relative\',\n maxWidth: 250\n});\nvar PickerTooltip = Object(esm["styled"])(lazy_WithTooltip["a" /* WithTooltip */])({\n position: \'absolute\',\n zIndex: 1,\n top: 4,\n left: 4\n});\nvar TooltipContent = esm["styled"].div({\n width: 200,\n margin: 5,\n \'.react-colorful__saturation\': {\n borderRadius: \'4px 4px 0 0\'\n },\n \'.react-colorful__hue\': {\n boxShadow: \'inset 0 0 0 1px rgb(0 0 0 / 5%)\'\n },\n \'.react-colorful__last-control\': {\n borderRadius: \'0 0 4px 4px\'\n }\n});\nvar Note = Object(esm["styled"])(TooltipNote["a" /* TooltipNote */])(function (_ref) {\n var theme = _ref.theme;\n return {\n fontFamily: theme.typography.fonts.base\n };\n});\nvar Swatches = esm["styled"].div({\n display: \'grid\',\n gridTemplateColumns: \'repeat(9, 16px)\',\n gap: 6,\n padding: 3,\n marginTop: 5,\n width: 200\n});\nvar SwatchColor = esm["styled"].div(function (_ref2) {\n var theme = _ref2.theme,\n active = _ref2.active;\n return {\n width: 16,\n height: 16,\n boxShadow: active ? "".concat(theme.appBorderColor, " 0 0 0 1px inset, ").concat(theme.color.mediumdark, "50 0 0 0 4px") : "".concat(theme.appBorderColor, " 0 0 0 1px inset"),\n borderRadius: theme.appBorderRadius\n };\n});\nvar swatchBackground = "url(\'data:image/svg+xml;charset=utf-8,<svg xmlns=\\"http://www.w3.org/2000/svg\\" width=\\"16\\" height=\\"16\\" fill-opacity=\\".05\\"><path d=\\"M8 0h8v8H8zM0 8h8v8H0z\\"/></svg>\')";\n\nvar Color_Swatch = function Swatch(_ref3) {\n var value = _ref3.value,\n active = _ref3.active,\n onClick = _ref3.onClick,\n style = _ref3.style,\n props = _objectWithoutProperties(_ref3, ["value", "active", "onClick", "style"]);\n\n var backgroundImage = "linear-gradient(".concat(value, ", ").concat(value, "), ").concat(swatchBackground, ", linear-gradient(#fff, #fff)");\n return /*#__PURE__*/react_default.a.createElement(SwatchColor, _extends({}, props, {\n active: active,\n onClick: onClick,\n style: Object.assign({}, style, {\n backgroundImage: backgroundImage\n })\n }));\n};\n\nColor_Swatch.displayName = "Swatch";\nvar Input = Object(esm["styled"])(esm_form["a" /* Form */].Input)(function (_ref4) {\n var theme = _ref4.theme;\n return {\n width: \'100%\',\n paddingLeft: 30,\n paddingRight: 30,\n boxSizing: \'border-box\',\n fontFamily: theme.typography.fonts.base\n };\n});\nvar ToggleIcon = Object(esm["styled"])(icon["a" /* Icons */])(function (_ref5) {\n var theme = _ref5.theme;\n return {\n position: \'absolute\',\n zIndex: 1,\n top: 6,\n right: 7,\n width: 20,\n height: 20,\n padding: 4,\n boxSizing: \'border-box\',\n cursor: \'pointer\',\n color: theme.input.color\n };\n});\nvar ColorSpace;\n\n(function (ColorSpace) {\n ColorSpace["RGB"] = "rgb";\n ColorSpace["HSL"] = "hsl";\n ColorSpace["HEX"] = "hex";\n})(ColorSpace || (ColorSpace = {}));\n\nvar COLOR_SPACES = Object.values(ColorSpace);\nvar COLOR_REGEXP = /\\(([0-9]+),\\s*([0-9]+)%?,\\s*([0-9]+)%?,?\\s*([0-9.]+)?\\)/;\nvar RGB_REGEXP = /^\\s*rgba?\\(([0-9]+),\\s*([0-9]+),\\s*([0-9]+),?\\s*([0-9.]+)?\\)\\s*$/i;\nvar HSL_REGEXP = /^\\s*hsla?\\(([0-9]+),\\s*([0-9]+)%,\\s*([0-9]+)%,?\\s*([0-9.]+)?\\)\\s*$/i;\nvar HEX_REGEXP = /^\\s*#?([0-9a-f]{3}|[0-9a-f]{6})\\s*$/i;\nvar SHORTHEX_REGEXP = /^\\s*#?([0-9a-f]{3})\\s*$/i;\nvar ColorPicker = (_ColorPicker = {}, _defineProperty(_ColorPicker, ColorSpace.HEX, J), _defineProperty(_ColorPicker, ColorSpace.RGB, pe), _defineProperty(_ColorPicker, ColorSpace.HSL, re), _ColorPicker);\nvar fallbackColor = (_fallbackColor = {}, _defineProperty(_fallbackColor, ColorSpace.HEX, \'transparent\'), _defineProperty(_fallbackColor, ColorSpace.RGB, \'rgba(0, 0, 0, 0)\'), _defineProperty(_fallbackColor, ColorSpace.HSL, \'hsla(0, 0%, 0%, 0)\'), _fallbackColor);\n\nvar stringToArgs = function stringToArgs(value) {\n var match = value === null || value === void 0 ? void 0 : value.match(COLOR_REGEXP);\n if (!match) return [0, 0, 0, 1];\n\n var _match = _slicedToArray(match, 5),\n x = _match[1],\n y = _match[2],\n z = _match[3],\n _match$ = _match[4],\n a = _match$ === void 0 ? 1 : _match$;\n\n return [x, y, z, a].map(Number);\n};\n\nvar Color_parseValue = function parseValue(value) {\n var _ref12;\n\n if (!value) return undefined;\n var valid = true;\n\n if (RGB_REGEXP.test(value)) {\n var _ref8;\n\n var _stringToArgs = stringToArgs(value),\n _stringToArgs2 = _slicedToArray(_stringToArgs, 4),\n r = _stringToArgs2[0],\n g = _stringToArgs2[1],\n b = _stringToArgs2[2],\n a = _stringToArgs2[3];\n\n var _ref6 = color_convert_default.a.rgb.hsl([r, g, b]) || [0, 0, 0],\n _ref7 = _slicedToArray(_ref6, 3),\n h = _ref7[0],\n s = _ref7[1],\n l = _ref7[2];\n\n return _ref8 = {\n valid: valid,\n value: value,\n keyword: color_convert_default.a.rgb.keyword([r, g, b]),\n colorSpace: ColorSpace.RGB\n }, _defineProperty(_ref8, ColorSpace.RGB, value), _defineProperty(_ref8, ColorSpace.HSL, "hsla(".concat(h, ", ").concat(s, "%, ").concat(l, "%, ").concat(a, ")")), _defineProperty(_ref8, ColorSpace.HEX, "#".concat(color_convert_default.a.rgb.hex([r, g, b]).toLowerCase())), _ref8;\n }\n\n if (HSL_REGEXP.test(value)) {\n var _ref11;\n\n var _stringToArgs3 = stringToArgs(value),\n _stringToArgs4 = _slicedToArray(_stringToArgs3, 4),\n _h = _stringToArgs4[0],\n _s2 = _stringToArgs4[1],\n _l = _stringToArgs4[2],\n _a = _stringToArgs4[3];\n\n var _ref9 = color_convert_default.a.hsl.rgb([_h, _s2, _l]) || [0, 0, 0],\n _ref10 = _slicedToArray(_ref9, 3),\n _r = _ref10[0],\n _g = _ref10[1],\n _b = _ref10[2];\n\n return _ref11 = {\n valid: valid,\n value: value,\n keyword: color_convert_default.a.hsl.keyword([_h, _s2, _l]),\n colorSpace: ColorSpace.HSL\n }, _defineProperty(_ref11, ColorSpace.RGB, "rgba(".concat(_r, ", ").concat(_g, ", ").concat(_b, ", ").concat(_a, ")")), _defineProperty(_ref11, ColorSpace.HSL, value), _defineProperty(_ref11, ColorSpace.HEX, "#".concat(color_convert_default.a.hsl.hex([_h, _s2, _l]).toLowerCase())), _ref11;\n }\n\n var plain = value.replace(\'#\', \'\');\n var rgb = color_convert_default.a.keyword.rgb(plain) || color_convert_default.a.hex.rgb(plain);\n var hsl = color_convert_default.a.rgb.hsl(rgb);\n var mapped = value;\n if (/[^#a-f0-9]/i.test(value)) mapped = plain;else if (HEX_REGEXP.test(value)) mapped = "#".concat(plain);\n\n if (mapped.startsWith(\'#\')) {\n valid = HEX_REGEXP.test(mapped);\n } else {\n try {\n color_convert_default.a.keyword.hex(mapped);\n } catch (e) {\n valid = false;\n }\n }\n\n return _ref12 = {\n valid: valid,\n value: mapped,\n keyword: color_convert_default.a.rgb.keyword(rgb),\n colorSpace: ColorSpace.HEX\n }, _defineProperty(_ref12, ColorSpace.RGB, "rgba(".concat(rgb[0], ", ").concat(rgb[1], ", ").concat(rgb[2], ", 1)")), _defineProperty(_ref12, ColorSpace.HSL, "hsla(".concat(hsl[0], ", ").concat(hsl[1], "%, ").concat(hsl[2], "%, 1)")), _defineProperty(_ref12, ColorSpace.HEX, mapped), _ref12;\n};\n\nvar Color_getRealValue = function getRealValue(value, color, colorSpace) {\n if (!value || !(color !== null && color !== void 0 && color.valid)) return fallbackColor[colorSpace];\n if (colorSpace !== ColorSpace.HEX) return (color === null || color === void 0 ? void 0 : color[colorSpace]) || fallbackColor[colorSpace];\n\n if (!color.hex.startsWith(\'#\')) {\n try {\n return "#".concat(color_convert_default.a.keyword.hex(color.hex));\n } catch (e) {\n return fallbackColor.hex;\n }\n }\n\n var short = color.hex.match(SHORTHEX_REGEXP);\n if (!short) return HEX_REGEXP.test(color.hex) ? color.hex : fallbackColor.hex;\n\n var _short$1$split = short[1].split(\'\'),\n _short$1$split2 = _slicedToArray(_short$1$split, 3),\n r = _short$1$split2[0],\n g = _short$1$split2[1],\n b = _short$1$split2[2];\n\n return "#".concat(r).concat(r).concat(g).concat(g).concat(b).concat(b);\n};\n\nvar Color_useColorInput = function useColorInput(initialValue, onChange) {\n var _useState = Object(react["useState"])(initialValue || \'\'),\n _useState2 = _slicedToArray(_useState, 2),\n value = _useState2[0],\n setValue = _useState2[1];\n\n var _useState3 = Object(react["useState"])(function () {\n return Color_parseValue(value);\n }),\n _useState4 = _slicedToArray(_useState3, 2),\n color = _useState4[0],\n setColor = _useState4[1];\n\n var _useState5 = Object(react["useState"])((color === null || color === void 0 ? void 0 : color.colorSpace) || ColorSpace.HEX),\n _useState6 = _slicedToArray(_useState5, 2),\n colorSpace = _useState6[0],\n setColorSpace = _useState6[1]; // Reset state when initialValue becomes undefined (when resetting controls)\n\n\n Object(react["useEffect"])(function () {\n if (initialValue !== undefined) return;\n setValue(\'\');\n setColor(undefined);\n setColorSpace(ColorSpace.HEX);\n }, [initialValue]);\n var realValue = Object(react["useMemo"])(function () {\n return Color_getRealValue(value, color, colorSpace).toLowerCase();\n }, [value, color, colorSpace]);\n var updateValue = Object(react["useCallback"])(function (update) {\n var parsed = Color_parseValue(update);\n setValue((parsed === null || parsed === void 0 ? void 0 : parsed.value) || update || \'\');\n if (!parsed) return;\n setColor(parsed);\n setColorSpace(parsed.colorSpace);\n onChange(parsed.value);\n }, [onChange]);\n var cycleColorSpace = Object(react["useCallback"])(function () {\n var next = COLOR_SPACES.indexOf(colorSpace) + 1;\n if (next >= COLOR_SPACES.length) next = 0;\n setColorSpace(COLOR_SPACES[next]);\n var update = (color === null || color === void 0 ? void 0 : color[COLOR_SPACES[next]]) || \'\';\n setValue(update);\n onChange(update);\n }, [color, colorSpace, onChange]);\n return {\n value: value,\n realValue: realValue,\n updateValue: updateValue,\n color: color,\n colorSpace: colorSpace,\n cycleColorSpace: cycleColorSpace\n };\n};\n\nvar id = function id(value) {\n return value.replace(/\\s*/, \'\').toLowerCase();\n};\n\nvar Color_usePresets = function usePresets(presetColors, currentColor, colorSpace) {\n var _useState7 = Object(react["useState"])(currentColor !== null && currentColor !== void 0 && currentColor.valid ? [currentColor] : []),\n _useState8 = _slicedToArray(_useState7, 2),\n selectedColors = _useState8[0],\n setSelectedColors = _useState8[1]; // Reset state when currentColor becomes undefined (when resetting controls)\n\n\n Object(react["useEffect"])(function () {\n if (currentColor !== undefined) return;\n setSelectedColors([]);\n }, [currentColor]);\n var presets = Object(react["useMemo"])(function () {\n var initialPresets = (presetColors || []).map(function (preset) {\n if (typeof preset === \'string\') return Color_parseValue(preset);\n if (preset.title) return Object.assign({}, Color_parseValue(preset.color), {\n keyword: preset.title\n });\n return Color_parseValue(preset.color);\n });\n return initialPresets.concat(selectedColors).filter(Boolean).slice(-27);\n }, [presetColors, selectedColors]);\n var addPreset = Object(react["useCallback"])(function (color) {\n if (!(color !== null && color !== void 0 && color.valid)) return;\n if (presets.some(function (preset) {\n return id(preset[colorSpace]) === id(color[colorSpace]);\n })) return;\n setSelectedColors(function (arr) {\n return arr.concat(color);\n });\n }, [colorSpace, presets]);\n return {\n presets: presets,\n addPreset: addPreset\n };\n};\n\nvar Color_ColorControl = function ColorControl(_ref13) {\n var name = _ref13.name,\n initialValue = _ref13.value,\n onChange = _ref13.onChange,\n onFocus = _ref13.onFocus,\n onBlur = _ref13.onBlur,\n presetColors = _ref13.presetColors,\n startOpen = _ref13.startOpen;\n\n var _useColorInput = Color_useColorInput(initialValue, throttle_default()(onChange, 200)),\n value = _useColorInput.value,\n realValue = _useColorInput.realValue,\n updateValue = _useColorInput.updateValue,\n color = _useColorInput.color,\n colorSpace = _useColorInput.colorSpace,\n cycleColorSpace = _useColorInput.cycleColorSpace;\n\n var _usePresets = Color_usePresets(presetColors, color, colorSpace),\n presets = _usePresets.presets,\n addPreset = _usePresets.addPreset;\n\n var Picker = ColorPicker[colorSpace];\n return /*#__PURE__*/react_default.a.createElement(Wrapper, null, /*#__PURE__*/react_default.a.createElement(PickerTooltip, {\n trigger: "click",\n startOpen: startOpen,\n closeOnClick: true,\n onVisibilityChange: function onVisibilityChange() {\n return addPreset(color);\n },\n tooltip: /*#__PURE__*/react_default.a.createElement(TooltipContent, null, /*#__PURE__*/react_default.a.createElement(Picker, {\n color: realValue === \'transparent\' ? \'#000000\' : realValue,\n onChange: updateValue,\n onFocus: onFocus,\n onBlur: onBlur\n }), presets.length > 0 && /*#__PURE__*/react_default.a.createElement(Swatches, null, presets.map(function (preset, index) {\n return /*#__PURE__*/react_default.a.createElement(lazy_WithTooltip["a" /* WithTooltip */] // eslint-disable-next-line react/no-array-index-key\n , {\n key: "".concat(preset.value, "-").concat(index),\n hasChrome: false,\n tooltip: /*#__PURE__*/react_default.a.createElement(Note, {\n note: preset.keyword || preset.value\n })\n }, /*#__PURE__*/react_default.a.createElement(Color_Swatch, {\n value: preset[colorSpace],\n active: color && id(preset[colorSpace]) === id(color[colorSpace]),\n onClick: function onClick() {\n return updateValue(preset.value);\n }\n }));\n })))\n }, /*#__PURE__*/react_default.a.createElement(Color_Swatch, {\n value: realValue,\n style: {\n margin: 4\n }\n })), /*#__PURE__*/react_default.a.createElement(Input, {\n id: Object(helpers["a" /* getControlId */])(name),\n value: value,\n onChange: function onChange(e) {\n return updateValue(e.target.value);\n },\n onFocus: function onFocus(e) {\n return e.target.select();\n },\n placeholder: "Choose color..."\n }), value ? /*#__PURE__*/react_default.a.createElement(ToggleIcon, {\n icon: "markup",\n onClick: cycleColorSpace\n }) : null);\n};\nColor_ColorControl.displayName = "ColorControl";\n/* harmony default export */ var Color = __webpack_exports__["default"] = (Color_ColorControl);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtY29sb3JmdWwvc3JjL2hvb2tzL3VzZUV2ZW50Q2FsbGJhY2sudHM/MmM3YyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtY29sb3JmdWwvc3JjL3V0aWxzL2NsYW1wLnRzPzI3MTkiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWNvbG9yZnVsL3NyYy9jb21wb25lbnRzL2NvbW1vbi9JbnRlcmFjdGl2ZS50c3g/MjFkOSIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtY29sb3JmdWwvc3JjL3V0aWxzL2Zvcm1hdC50cz82MWIxIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yZWFjdC1jb2xvcmZ1bC9zcmMvY29tcG9uZW50cy9jb21tb24vUG9pbnRlci50c3g/ODM1YyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtY29sb3JmdWwvc3JjL3V0aWxzL3JvdW5kLnRzPzU5ZDkiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWNvbG9yZnVsL3NyYy91dGlscy9jb252ZXJ0LnRzP2NiMzkiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWNvbG9yZnVsL3NyYy9jb21wb25lbnRzL2NvbW1vbi9IdWUudHN4P2NlNzEiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWNvbG9yZnVsL3NyYy9jb21wb25lbnRzL2NvbW1vbi9TYXR1cmF0aW9uLnRzeD8wNGVhIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yZWFjdC1jb2xvcmZ1bC9zcmMvdXRpbHMvY29tcGFyZS50cz9lZjM1Iiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yZWFjdC1jb2xvcmZ1bC9zcmMvaG9va3MvdXNlQ29sb3JNYW5pcHVsYXRpb24udHM/YzM4YiIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtY29sb3JmdWwvc3JjL3V0aWxzL25vbmNlLnRzPzU5MjMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWNvbG9yZnVsL3NyYy9ob29rcy91c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0LnRzP2I5NDkiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWNvbG9yZnVsL3NyYy9ob29rcy91c2VTdHlsZVNoZWV0LnRzPzNlMzciLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWNvbG9yZnVsL3NyYy9jb21wb25lbnRzL2NvbW1vbi9Db2xvclBpY2tlci50c3g/YjhjOSIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtY29sb3JmdWwvc3JjL2NvbXBvbmVudHMvSGV4Q29sb3JQaWNrZXIudHN4PzM1ZmIiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWNvbG9yZnVsL3NyYy9jb21wb25lbnRzL2NvbW1vbi9BbHBoYS50c3g/NWQ0OCIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtY29sb3JmdWwvc3JjL2NvbXBvbmVudHMvY29tbW9uL0FscGhhQ29sb3JQaWNrZXIudHN4P2YzZjEiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWNvbG9yZnVsL3NyYy9jb21wb25lbnRzL0hzbGFDb2xvclBpY2tlci50c3g/MzA1MCIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtY29sb3JmdWwvc3JjL2NvbXBvbmVudHMvSHNsYVN0cmluZ0NvbG9yUGlja2VyLnRzeD9mYTEwIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yZWFjdC1jb2xvcmZ1bC9zcmMvY29tcG9uZW50cy9Ic2xDb2xvclBpY2tlci50c3g/Mzg4NiIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtY29sb3JmdWwvc3JjL2NvbXBvbmVudHMvSHNsU3RyaW5nQ29sb3JQaWNrZXIudHN4PzI0NWMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWNvbG9yZnVsL3NyYy9jb21wb25lbnRzL0hzdmFDb2xvclBpY2tlci50c3g/N2RmZiIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtY29sb3JmdWwvc3JjL2NvbXBvbmVudHMvSHN2YVN0cmluZ0NvbG9yUGlja2VyLnRzeD9kYTQ5Iiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yZWFjdC1jb2xvcmZ1bC9zcmMvY29tcG9uZW50cy9Ic3ZDb2xvclBpY2tlci50c3g/OTJmYyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtY29sb3JmdWwvc3JjL2NvbXBvbmVudHMvSHN2U3RyaW5nQ29sb3JQaWNrZXIudHN4P2IyOTAiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWNvbG9yZnVsL3NyYy9jb21wb25lbnRzL1JnYmFDb2xvclBpY2tlci50c3g/ZmQzNiIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtY29sb3JmdWwvc3JjL2NvbXBvbmVudHMvUmdiYVN0cmluZ0NvbG9yUGlja2VyLnRzeD8xNzJkIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yZWFjdC1jb2xvcmZ1bC9zcmMvY29tcG9uZW50cy9SZ2JDb2xvclBpY2tlci50c3g/NDg2OCIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtY29sb3JmdWwvc3JjL2NvbXBvbmVudHMvUmdiU3RyaW5nQ29sb3JQaWNrZXIudHN4PzQ5YmUiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWNvbG9yZnVsL3NyYy91dGlscy92YWxpZGF0ZS50cz80OGM1Iiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yZWFjdC1jb2xvcmZ1bC9zcmMvY29tcG9uZW50cy9jb21tb24vQ29sb3JJbnB1dC50c3g/NmQ2MiIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtY29sb3JmdWwvc3JjL2NvbXBvbmVudHMvSGV4Q29sb3JJbnB1dC50c3g/ZmY0MCIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHN0b3J5Ym9vay9jb21wb25lbnRzL2Rpc3QvZXNtL2NvbnRyb2xzL0NvbG9yLmpzPzk3MmMiXSwibmFtZXMiOlsidXNlRXZlbnRDYWxsYmFjayIsImhhbmRsZXIiLCJjYWxsYmFja1JlZiIsInVzZVJlZiIsImZuIiwidmFsdWUiLCJjdXJyZW50IiwiY2xhbXAiLCJudW1iZXIiLCJtaW4iLCJtYXgiLCJpc1RvdWNoIiwiZXZlbnQiLCJnZXRQYXJlbnRXaW5kb3ciLCJub2RlIiwib3duZXJEb2N1bWVudCIsImRlZmF1bHRWaWV3Iiwic2VsZiIsImdldFJlbGF0aXZlUG9zaXRpb24iLCJ0b3VjaElkIiwicmVjdCIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsInBvaW50ZXIiLCJ0b3VjaGVzIiwiaSIsImxlbmd0aCIsImlkZW50aWZpZXIiLCJnZXRUb3VjaFBvaW50IiwibGVmdCIsInBhZ2VYIiwicGFnZVhPZmZzZXQiLCJ3aWR0aCIsInRvcCIsInBhZ2VZIiwicGFnZVlPZmZzZXQiLCJoZWlnaHQiLCJwcmV2ZW50RGVmYXVsdE1vdmUiLCJwcmV2ZW50RGVmYXVsdCIsIkludGVyYWN0aXZlIiwiUmVhY3QiLCJtZW1vIiwib25Nb3ZlIiwib25LZXkiLCJyZXN0IiwiY29udGFpbmVyIiwib25Nb3ZlQ2FsbGJhY2siLCJvbktleUNhbGxiYWNrIiwiaGFzVG91Y2giLCJ1c2VNZW1vIiwiaGFuZGxlTW92ZSIsImJ1dHRvbnMiLCJ0b2dnbGVEb2N1bWVudEV2ZW50cyIsImhhbmRsZU1vdmVFbmQiLCJzdGF0ZSIsInRvdWNoIiwicGFyZW50V2luZG93IiwidG9nZ2xlRXZlbnQiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsIm5hdGl2ZUV2ZW50IiwiZWwiLCJpc0ludmFsaWQiLCJjaGFuZ2VkVG91Y2hlcyIsImZvY3VzIiwia2V5Q29kZSIsIndoaWNoIiwiaGFuZGxlTW92ZVN0YXJ0IiwiaGFuZGxlS2V5RG93biIsInVzZUVmZmVjdCIsIm9uVG91Y2hTdGFydCIsIm9uTW91c2VEb3duIiwiY2xhc3NOYW1lIiwicmVmIiwib25LZXlEb3duIiwidGFiSW5kZXgiLCJyb2xlIiwiZm9ybWF0Q2xhc3NOYW1lIiwibmFtZXMiLCJmaWx0ZXIiLCJCb29sZWFuIiwiam9pbiIsIlBvaW50ZXIiLCJjb2xvciIsIm5vZGVDbGFzc05hbWUiLCJzdHlsZSIsImJhY2tncm91bmRDb2xvciIsInJvdW5kIiwiZGlnaXRzIiwiYmFzZSIsIk1hdGgiLCJwb3ciLCJhbmdsZVVuaXRzIiwiZ3JhZCIsInR1cm4iLCJyYWQiLCJQSSIsImhleFRvUmdiYSIsImhleCIsInN1YnN0ciIsInIiLCJwYXJzZUludCIsImciLCJiIiwiYSIsInBhcnNlSHVlIiwidW5pdCIsIk51bWJlciIsImhzbGFTdHJpbmdUb0hzdmEiLCJoc2xTdHJpbmciLCJtYXRjaCIsImV4ZWMiLCJoc2xhVG9Ic3ZhIiwiaCIsInMiLCJsIiwidW5kZWZpbmVkIiwidiIsImhzbFN0cmluZ1RvSHN2YSIsImhzdmFUb0hzbGEiLCJoaCIsImhzdmFUb0hzbFN0cmluZyIsImhzdmEiLCJoc3ZhVG9Ic2xhU3RyaW5nIiwiaHN2YVRvUmdiYSIsImZsb29yIiwiYyIsImQiLCJtb2R1bGUiLCJoc3ZhU3RyaW5nVG9Ic3ZhIiwiaHN2U3RyaW5nIiwicm91bmRIc3ZhIiwiaHN2U3RyaW5nVG9Ic3ZhIiwicmdiYVN0cmluZ1RvSHN2YSIsInJnYmFTdHJpbmciLCJyZ2JhVG9Ic3ZhIiwicmdiU3RyaW5nVG9Ic3ZhIiwiZm9ybWF0IiwidG9TdHJpbmciLCJkZWx0YSIsIkh1ZSIsImh1ZSIsIm9uQ2hhbmdlIiwiaW50ZXJhY3Rpb24iLCJvZmZzZXQiLCJhcmlhLWxhYmVsIiwiYXJpYS12YWx1ZXRleHQiLCJTYXR1cmF0aW9uIiwiY29udGFpbmVyU3R5bGUiLCJlcXVhbENvbG9yT2JqZWN0cyIsImZpcnN0Iiwic2Vjb25kIiwicHJvcCIsImVxdWFsQ29sb3JTdHJpbmciLCJyZXBsYWNlIiwidXNlQ29sb3JNYW5pcHVsYXRpb24iLCJjb2xvck1vZGVsIiwib25DaGFuZ2VDYWxsYmFjayIsInVzZVN0YXRlIiwidG9Ic3ZhIiwidXBkYXRlSHN2YSIsImNhY2hlIiwiZXF1YWwiLCJuZXdIc3ZhIiwibmV3Q29sb3IiLCJmcm9tSHN2YSIsImhhbmRsZUNoYW5nZSIsInVzZUNhbGxiYWNrIiwicGFyYW1zIiwiT2JqZWN0IiwiYXNzaWduIiwibm9uY2UiLCJ1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0Iiwid2luZG93IiwidXNlTGF5b3V0RWZmZWN0IiwiZ2V0Tm9uY2UiLCJfX3dlYnBhY2tfbm9uY2VfXyIsInNldE5vbmNlIiwiaGFzaCIsInN0eWxlRWxlbWVudE1hcCIsIk1hcCIsInVzZVN0eWxlU2hlZXQiLCJub2RlUmVmIiwicGFyZW50RG9jdW1lbnQiLCJkb2N1bWVudCIsImhhcyIsInN0eWxlRWxlbWVudCIsImNyZWF0ZUVsZW1lbnQiLCJpbm5lckhUTUwiLCJzZXQiLCJzZXRBdHRyaWJ1dGUiLCJoZWFkIiwiYXBwZW5kQ2hpbGQiLCJDb2xvclBpY2tlciIsImRlZmF1bHRDb2xvciIsInRvTG93ZXJDYXNlIiwiSGV4Q29sb3JQaWNrZXIiLCJwcm9wcyIsIkFscGhhIiwiZ3JhZGllbnRTdHlsZSIsImJhY2tncm91bmRJbWFnZSIsIkFscGhhQ29sb3JQaWNrZXIiLCJIc2xhQ29sb3JQaWNrZXIiLCJIc2xhU3RyaW5nQ29sb3JQaWNrZXIiLCJIc2xDb2xvclBpY2tlciIsIkhzbFN0cmluZ0NvbG9yUGlja2VyIiwiSHN2YUNvbG9yUGlja2VyIiwiSHN2YVN0cmluZ0NvbG9yUGlja2VyIiwiSHN2Q29sb3JQaWNrZXIiLCJIc3ZTdHJpbmdDb2xvclBpY2tlciIsIlJnYmFDb2xvclBpY2tlciIsIlJnYmFTdHJpbmdDb2xvclBpY2tlciIsIlJnYkNvbG9yUGlja2VyIiwiUmdiU3RyaW5nQ29sb3JQaWNrZXIiLCJtYXRjaGVyIiwiQ29sb3JJbnB1dCIsIm9uQmx1ciIsImVzY2FwZSIsInZhbGlkYXRlIiwicHJvY2VzcyIsInNldFZhbHVlIiwib25CbHVyQ2FsbGJhY2siLCJlIiwiaW5wdXRWYWx1ZSIsInRhcmdldCIsImhhbmRsZUJsdXIiLCJzcGVsbENoZWNrIiwicHJlZml4IiwiSGV4Q29sb3JJbnB1dCIsInByZWZpeGVkIiwiYWxwaGEiLCJ2YWxpZEhleCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7bVlBR2dCQSxlQUFvQkMsR0FDbEMsSUFBTUMsRUFBY0Msd0JBQU9GLEdBQ3JCRyxFQUFLRCx3QkFBTyxTQUFDRSxHQUNqQkgsRUFBWUksU0FBV0osRUFBWUksUUFBUUQsS0FJN0MsT0FGQUgsRUFBWUksUUFBVUwsRUFFZkcsRUFBR0UsWUNQQ0MsZUFBUSxTQUFDQyxFQUFnQkMsRUFBU0MsR0FDN0MsZ0JBRG9DRCxNQUFNLFlBQUdDLE1BQU0sR0FDNUNGLEVBQVNFLEVBQU1BLEVBQU1GLEVBQVNDLEVBQU1BLEVBQU1ELEdDTzdDRyxlQUFVLFNBQUNDLFNBQXdELFlBQWFBLEdBV2hGQyxlQUFrQixTQUFDQyxHQUN2QixPQUFRQSxHQUFRQSxFQUFLQyxjQUFjQyxhQUFnQkMsTUFJL0NDLGVBQXNCLFNBQzFCSixFQUNBRixFQUNBTyxHQUVBLElBQU1DLEVBQU9OLEVBQUtPLHdCQUdaQyxFQUFVWCxlQUFRQyxHQXJCSixTQUFDVyxFQUFvQkosR0FDekMsSUFBSyxJQUFJSyxFQUFJLEVBQUdBLEVBQUlELEVBQVFFLE9BQVFELElBQ2xDLEdBQUlELEVBQVFDLEdBQUdFLGFBQWVQLEVBQVMsT0FBT0ksRUFBUUMsR0FFeEQsT0FBT0QsRUFBUSxHQWlCa0JJLENBQWNmLEVBQU1XLFFBQVNKLEdBQVlQLEVBRTFFLE1BQU8sQ0FDTGdCLEtBQU1yQixnQkFBT2UsRUFBUU8sT0FBU1QsRUFBS1EsS0FBT2YsZUFBZ0JDLEdBQU1nQixjQUFnQlYsRUFBS1csT0FDckZDLElBQUt6QixnQkFBT2UsRUFBUVcsT0FBU2IsRUFBS1ksSUFBTW5CLGVBQWdCQyxHQUFNb0Is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Q3ZCLEtBQUs7QUFDTDtBQUNBLEdBQUc7QUFDSCxrQkFBa0IsNEJBQVc7QUFDN0I7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRU8sSUFBSSxrQkFBWTtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSx1QkFBdUIsbUJBQWEsZUFBZSxrQkFBUTtBQUMzRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsb0JBQW9CLGdCQUFVO0FBQzlCO0FBQ0E7O0FBRUE7QUFDQSxzQkFBc0IsZUFBSywyQ0FBMkMsZUFBSztBQUMzRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLDBCQUEwQixlQUFLLGtEQUFrRCxlQUFLO0FBQ3RGO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSyxzQ0FBc0MsZUFBSztBQUNoRCwwQkFBMEIsZUFBSyxlQUFlLHVDQUFXO0FBQ3pEO0FBQ0E7QUFDQTtBQUNBLDhCQUE4QixlQUFLO0FBQ25DO0FBQ0EsU0FBUztBQUNULE9BQU8sZUFBZSxlQUFLLGVBQWUsWUFBTTtBQUNoRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLEtBQUs7QUFDTCxHQUFHLGVBQWUsZUFBSyxlQUFlLFlBQU07QUFDNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLGlCQUFpQixlQUFLO0FBQ3pCLFFBQVEsdUNBQVk7QUFDcEI7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSxHQUFHLHdCQUF3QixlQUFLO0FBQ2hDO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxrQkFBWTtBQUNHLDZGQUFZIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL0BzdG9yeWJvb2svY29tcG9uZW50cy9kaXN0L2VzbS9jb250cm9scy9Db2xvci5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZVJlZiB9IGZyb20gXCJyZWFjdFwiO1xuXG4vLyBTYXZlcyBpbmNvbWluZyBoYW5kbGVyIHRvIHRoZSByZWYgaW4gb3JkZXIgdG8gYXZvaWQgXCJ1c2VDYWxsYmFjayBoZWxsXCJcbmV4cG9ydCBmdW5jdGlvbiB1c2VFdmVudENhbGxiYWNrPFQ+KGhhbmRsZXI/OiAodmFsdWU6IFQpID0+IHZvaWQpOiAodmFsdWU6IFQpID0+IHZvaWQge1xuICBjb25zdCBjYWxsYmFja1JlZiA9IHVzZVJlZihoYW5kbGVyKTtcbiAgY29uc3QgZm4gPSB1c2VSZWYoKHZhbHVlOiBUKSA9PiB7XG4gICAgY2FsbGJhY2tSZWYuY3VycmVudCAmJiBjYWxsYmFja1JlZi5jdXJyZW50KHZhbHVlKTtcbiAgfSk7XG4gIGNhbGxiYWNrUmVmLmN1cnJlbnQgPSBoYW5kbGVyO1xuXG4gIHJldHVybiBmbi5jdXJyZW50O1xufVxuIiwiLy8gQ2xhbXBzIGEgdmFsdWUgYmV0d2VlbiBhbiB1cHBlciBhbmQgbG93ZXIgYm91bmQuXG4vLyBXZSB1c2UgdGVybmFyeSBvcGVyYXRvcnMgYmVjYXVzZSBpdCBtYWtlcyB0aGUgbWluaWZpZWQgY29kZVxuLy8gMiB0aW1lcyBzaG9ydGVyIHRoZW4gYE1hdGgubWluKE1hdGgubWF4KGEsYiksYylgXG5leHBvcnQgY29uc3QgY2xhbXAgPSAobnVtYmVyOiBudW1iZXIsIG1pbiA9IDAsIG1heCA9IDEpOiBudW1iZXIgPT4ge1xuICByZXR1cm4gbnVtYmVyID4gbWF4ID8gbWF4IDogbnVtYmVyIDwgbWluID8gbWluIDogbnVtYmVyO1xufTtcbiIsImltcG9ydCBSZWFjdCwgeyB1c2VSZWYsIHVzZU1lbW8sIHVzZUVmZmVjdCB9IGZyb20gXCJyZWFjdFwiO1xuXG5pbXBvcnQgeyB1c2VFdmVudENhbGxiYWNrIH0gZnJvbSBcIi4uLy4uL2hvb2tzL3VzZUV2ZW50Q2FsbGJhY2tcIjtcbmltcG9ydCB7IGNsYW1wIH0gZnJvbSBcIi4uLy4uL3V0aWxzL2NsYW1wXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW50ZXJhY3Rpb24ge1xuICBsZWZ0OiBudW1iZXI7XG4gIHRvcDogbnVtYmVyO1xufVxuXG4vLyBDaGVjayBpZiBhbiBldmVudCB3YXMgdHJpZ2dlcmVkIGJ5IHRvdWNoXG5jb25zdCBpc1RvdWNoID0gKGV2ZW50OiBNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCk6IGV2ZW50IGlzIFRvdWNoRXZlbnQgPT4gXCJ0b3VjaGVzXCIgaW4gZXZlbnQ7XG5cbi8vIEZpbmRzIGEgcHJvcGVyIHRvdWNoIHBvaW50IGJ5IGl0cyBpZGVudGlmaWVyXG5jb25zdCBnZXRUb3VjaFBvaW50ID0gKHRvdWNoZXM6IFRvdWNoTGlzdCwgdG91Y2hJZDogbnVsbCB8IG51bWJlcik6IFRvdWNoID0+IHtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCB0b3VjaGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKHRvdWNoZXNbaV0uaWRlbnRpZmllciA9PT0gdG91Y2hJZCkgcmV0dXJuIHRvdWNoZXNbaV07XG4gIH1cbiAgcmV0dXJuIHRvdWNoZXNbMF07XG59O1xuXG4vLyBGaW5kcyB0aGUgcHJvcGVyIHdpbmRvdyBvYmplY3QgdG8gZml4IGlmcmFtZSBlbWJlZGRpbmcgaXNzdWVzXG5jb25zdCBnZXRQYXJlbnRXaW5kb3cgPSAobm9kZT86IEhUTUxEaXZFbGVtZW50IHwgbnVsbCk6IFdpbmRvdyA9PiB7XG4gIHJldHVybiAobm9kZSAmJiBub2RlLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcpIHx8IHNlbGY7XG59O1xuXG4vLyBSZXR1cm5zIGEgcmVsYXRpdmUgcG9zaXRpb24gb2YgdGhlIHBvaW50ZXIgaW5zaWRlIHRoZSBub2RlJ3MgYm91bmRpbmcgYm94XG5jb25zdCBnZXRSZWxhdGl2ZVBvc2l0aW9uID0gKFxuICBub2RlOiBIVE1MRGl2RWxlbWVudCxcbiAgZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50LFxuICB0b3VjaElkOiBudWxsIHwgbnVtYmVyXG4pOiBJbnRlcmFjdGlvbiA9PiB7XG4gIGNvbnN0IHJlY3QgPSBub2RlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gIC8vIEdldCB1c2VyJ3MgcG9pbnRlciBwb3NpdGlvbiBmcm9tIGB0b3VjaGVzYCBhcnJheSBpZiBpdCdzIGEgYFRvdWNoRXZlbnRgXG4gIGNvbnN0IHBvaW50ZXIgPSBpc1RvdWNoKGV2ZW50KSA/IGdldFRvdWNoUG9pbnQoZXZlbnQudG91Y2hlcywgdG91Y2hJZCkgOiAoZXZlbnQgYXMgTW91c2VFdmVudCk7XG5cbiAgcmV0dXJuIHtcbiAgICBsZWZ0OiBjbGFtcCgocG9pbnRlci5wYWdlWCAtIChyZWN0LmxlZnQgKyBnZXRQYXJlbnRXaW5kb3cobm9kZSkucGFnZVhPZmZzZXQpKSAvIHJlY3Qud2lkdGgpLFxuICAgIHRvcDogY2xhbXAoKHBvaW50ZXIucGFnZVkgLSAocmVjdC50b3AgKyBnZXRQYXJlbnRXaW5kb3cobm9kZSkucGFnZVlPZmZzZXQpKSAvIHJlY3QuaGVpZ2h0KSxcbiAgfTtcbn07XG5cbi8vIEJyb3dzZXJzIGludHJvZHVjZWQgYW4gaW50ZXJ2ZW50aW9uLCBtYWtpbmcgdG91Y2ggZXZlbnRzIHBhc3NpdmUgYnkgZGVmYXVsdC5cbi8vIFRoaXMgd29ya2Fyb3VuZCByZW1vdmVzIGBwcmV2ZW50RGVmYXVsdGAgY2FsbCBmcm9tIHRoZSB0b3VjaCBoYW5kbGVycy5cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvMTk2NTFcbmNvbnN0IHByZXZlbnREZWZhdWx0TW92ZSA9IChldmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQpOiB2b2lkID0+IHtcbiAgIWlzVG91Y2goZXZlbnQpICYmIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG59O1xuXG4vLyBQcmV2ZW50IG1vYmlsZSBicm93c2VycyBmcm9tIGhhbmRsaW5nIG1vdXNlIGV2ZW50cyAoY29uZmxpY3Rpbmcgd2l0aCB0b3VjaCBvbmVzKS5cbi8vIElmIHdlIGRldGVjdGVkIGEgdG91Y2ggaW50ZXJhY3Rpb24gYmVmb3JlLCB3ZSBwcmVmZXIgcmVhY3RpbmcgdG8gdG91Y2ggZXZlbnRzIG9ubHkuXG5jb25zdCBpc0ludmFsaWQgPSAoZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50LCBoYXNUb3VjaDogYm9vbGVhbik6IGJvb2xlYW4gPT4ge1xuICByZXR1cm4gaGFzVG91Y2ggJiYgIWlzVG91Y2goZXZlbnQpO1xufTtcblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgb25Nb3ZlOiAoaW50ZXJhY3Rpb246IEludGVyYWN0aW9uKSA9PiB2b2lkO1xuICBvbktleTogKG9mZnNldDogSW50ZXJhY3Rpb24pID0+IHZvaWQ7XG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGU7XG59XG5cbmNvbnN0IEludGVyYWN0aXZlQmFzZSA9ICh7IG9uTW92ZSwgb25LZXksIC4uLnJlc3QgfTogUHJvcHMpID0+IHtcbiAgY29uc3QgY29udGFpbmVyID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgY29uc3Qgb25Nb3ZlQ2FsbGJhY2sgPSB1c2VFdmVudENhbGxiYWNrPEludGVyYWN0aW9uPihvbk1vdmUpO1xuICBjb25zdCBvbktleUNhbGxiYWNrID0gdXNlRXZlbnRDYWxsYmFjazxJbnRlcmFjdGlvbj4ob25LZXkpO1xuICBjb25zdCB0b3VjaElkID0gdXNlUmVmPG51bGwgfCBudW1iZXI+KG51bGwpO1xuICBjb25zdCBoYXNUb3VjaCA9IHVzZVJlZihmYWxzZSk7XG5cbiAgY29uc3QgW2hhbmRsZU1vdmVTdGFydCwgaGFuZGxlS2V5RG93biwgdG9nZ2xlRG9jdW1lbnRFdmVudHNdID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlTW92ZVN0YXJ0ID0gKHsgbmF0aXZlRXZlbnQgfTogUmVhY3QuTW91c2VFdmVudCB8IFJlYWN0LlRvdWNoRXZlbnQpID0+IHtcbiAgICAgIGNvbnN0IGVsID0gY29udGFpbmVyLmN1cnJlbnQ7XG4gICAgICBpZiAoIWVsKSByZXR1cm47XG5cbiAgICAgIC8vIFByZXZlbnQgdGV4dCBzZWxlY3Rpb25cbiAgICAgIHByZXZlbnREZWZhdWx0TW92ZShuYXRpdmVFdmVudCk7XG5cbiAgICAgIGlmIChpc0ludmFsaWQobmF0aXZlRXZlbnQsIGhhc1RvdWNoLmN1cnJlbnQpIHx8ICFlbCkgcmV0dXJuO1xuXG4gICAgICBpZiAoaXNUb3VjaChuYXRpdmVFdmVudCkpIHtcbiAgICAgICAgaGFzVG91Y2guY3VycmVudCA9IHRydWU7XG4gICAgICAgIGNvbnN0IGNoYW5nZWRUb3VjaGVzID0gbmF0aXZlRXZlbnQuY2hhbmdlZFRvdWNoZXMgfHwgW107XG4gICAgICAgIGlmIChjaGFuZ2VkVG91Y2hlcy5sZW5ndGgpIHRvdWNoSWQuY3VycmVudCA9IGNoYW5nZWRUb3VjaGVzWzBdLmlkZW50aWZpZXI7XG4gICAgICB9XG5cbiAgICAgIGVsLmZvY3VzKCk7XG4gICAgICBvbk1vdmVDYWxsYmFjayhnZXRSZWxhdGl2ZVBvc2l0aW9uKGVsLCBuYXRpdmVFdmVudCwgdG91Y2hJZC5jdXJyZW50KSk7XG4gICAgICB0b2dnbGVEb2N1bWVudEV2ZW50cyh0cnVlKTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlTW92ZSA9IChldmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQpID0+IHtcbiAgICAgIC8vIFByZXZlbnQgdGV4dCBzZWxlY3Rpb25cbiAgICAgIHByZXZlbnREZWZhdWx0TW92ZShldmVudCk7XG5cbiAgICAgIC8vIElmIHVzZXIgbW92ZXMgdGhlIHBvaW50ZXIgb3V0c2lkZSBvZiB0aGUgd2luZG93IG9yIGlmcmFtZSBib3VuZHMgYW5kIHJlbGVhc2UgaXQgdGhlcmUsXG4gICAgICAvLyBgbW91c2V1cGAvYHRvdWNoZW5kYCB3b24ndCBiZSBmaXJlZC4gSW4gb3JkZXIgdG8gc3RvcCB0aGUgcGlja2VyIGZyb20gZm9sbG93aW5nIHRoZSBjdXJzb3JcbiAgICAgIC8vIGFmdGVyIHRoZSB1c2VyIGhhcyBtb3ZlZCB0aGUgbW91c2UvZmluZ2VyIGJhY2sgdG8gdGhlIGRvY3VtZW50LCB3ZSBjaGVjayBgZXZlbnQuYnV0dG9uc2BcbiAgICAgIC8vIGFuZCBgZXZlbnQudG91Y2hlc2AuIEl0IGFsbG93cyB1cyB0byBkZXRlY3QgdGhhdCB0aGUgdXNlciBpcyBqdXN0IG1vdmluZyBoaXMgcG9pbnRlclxuICAgICAgLy8gd2l0aG91dCBwcmVzc2luZyBpdCBkb3duXG4gICAgICBjb25zdCBpc0Rvd24gPSBpc1RvdWNoKGV2ZW50KSA/IGV2ZW50LnRvdWNoZXMubGVuZ3RoID4gMCA6IGV2ZW50LmJ1dHRvbnMgPiAwO1xuXG4gICAgICBpZiAoaXNEb3duICYmIGNvbnRhaW5lci5jdXJyZW50KSB7XG4gICAgICAgIG9uTW92ZUNhbGxiYWNrKGdldFJlbGF0aXZlUG9zaXRpb24oY29udGFpbmVyLmN1cnJlbnQsIGV2ZW50LCB0b3VjaElkLmN1cnJlbnQpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRvZ2dsZURvY3VtZW50RXZlbnRzKGZhbHNlKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlTW92ZUVuZCA9ICgpID0+IHRvZ2dsZURvY3VtZW50RXZlbnRzKGZhbHNlKTtcblxuICAgIGNvbnN0IGhhbmRsZUtleURvd24gPSAoZXZlbnQ6IFJlYWN0LktleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgIGNvbnN0IGtleUNvZGUgPSBldmVudC53aGljaCB8fCBldmVudC5rZXlDb2RlO1xuXG4gICAgICAvLyBJZ25vcmUgYWxsIGtleXMgZXhjZXB0IGFycm93IG9uZXNcbiAgICAgIGlmIChrZXlDb2RlIDwgMzcgfHwga2V5Q29kZSA+IDQwKSByZXR1cm47XG4gICAgICAvLyBEbyBub3Qgc2Nyb2xsIHBhZ2UgYnkgYXJyb3cga2V5cyB3aGVuIGRvY3VtZW50IGlzIGZvY3VzZWQgb24gdGhlIGVsZW1lbnRcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAvLyBTZW5kIHJlbGF0aXZlIG9mZnNldCB0byB0aGUgcGFyZW50IGNvbXBvbmVudC5cbiAgICAgIC8vIFdlIHVzZSBjb2RlcyAoMzfihpAsIDM44oaRLCAzOeKGkiwgNDDihpMpIGluc3RlYWQgb2Yga2V5cyAoJ0Fycm93UmlnaHQnLCAnQXJyb3dEb3duJywgZXRjKVxuICAgICAgLy8gdG8gcmVkdWNlIHRoZSBzaXplIG9mIHRoZSBsaWJyYXJ5XG4gICAgICBvbktleUNhbGxiYWNrKHtcbiAgICAgICAgbGVmdDoga2V5Q29kZSA9PT0gMzkgPyAwLjA1IDoga2V5Q29kZSA9PT0gMzcgPyAtMC4wNSA6IDAsXG4gICAgICAgIHRvcDoga2V5Q29kZSA9PT0gNDAgPyAwLjA1IDoga2V5Q29kZSA9PT0gMzggPyAtMC4wNSA6IDAsXG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgZnVuY3Rpb24gdG9nZ2xlRG9jdW1lbnRFdmVudHMoc3RhdGU/OiBib29sZWFuKSB7XG4gICAgICBjb25zdCB0b3VjaCA9IGhhc1RvdWNoLmN1cnJlbnQ7XG4gICAgICBjb25zdCBlbCA9IGNvbnRhaW5lci5jdXJyZW50O1xuICAgICAgY29uc3QgcGFyZW50V2luZG93ID0gZ2V0UGFyZW50V2luZG93KGVsKTtcblxuICAgICAgLy8gQWRkIG9yIHJlbW92ZSBhZGRpdGlvbmFsIHBvaW50ZXIgZXZlbnQgbGlzdGVuZXJzXG4gICAgICBjb25zdCB0b2dnbGVFdmVudCA9IHN0YXRlID8gcGFyZW50V2luZG93LmFkZEV2ZW50TGlzdGVuZXIgOiBwYXJlbnRXaW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcjtcbiAgICAgIHRvZ2dsZUV2ZW50KHRvdWNoID8gXCJ0b3VjaG1vdmVcIiA6IFwibW91c2Vtb3ZlXCIsIGhhbmRsZU1vdmUpO1xuICAgICAgdG9nZ2xlRXZlbnQodG91Y2ggPyBcInRvdWNoZW5kXCIgOiBcIm1vdXNldXBcIiwgaGFuZGxlTW92ZUVuZCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIFtoYW5kbGVNb3ZlU3RhcnQsIGhhbmRsZUtleURvd24sIHRvZ2dsZURvY3VtZW50RXZlbnRzXTtcbiAgfSwgW29uS2V5Q2FsbGJhY2ssIG9uTW92ZUNhbGxiYWNrXSk7XG5cbiAgLy8gUmVtb3ZlIHdpbmRvdyBldmVudCBsaXN0ZW5lcnMgYmVmb3JlIHVubW91bnRpbmdcbiAgdXNlRWZmZWN0KCgpID0+IHRvZ2dsZURvY3VtZW50RXZlbnRzLCBbdG9nZ2xlRG9jdW1lbnRFdmVudHNdKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIHsuLi5yZXN0fVxuICAgICAgb25Ub3VjaFN0YXJ0PXtoYW5kbGVNb3ZlU3RhcnR9XG4gICAgICBvbk1vdXNlRG93bj17aGFuZGxlTW92ZVN0YXJ0fVxuICAgICAgY2xhc3NOYW1lPVwicmVhY3QtY29sb3JmdWxfX2ludGVyYWN0aXZlXCJcbiAgICAgIHJlZj17Y29udGFpbmVyfVxuICAgICAgb25LZXlEb3duPXtoYW5kbGVLZXlEb3dufVxuICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICByb2xlPVwic2xpZGVyXCJcbiAgICAvPlxuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IEludGVyYWN0aXZlID0gUmVhY3QubWVtbyhJbnRlcmFjdGl2ZUJhc2UpO1xuIiwiZXhwb3J0IGNvbnN0IGZvcm1hdENsYXNzTmFtZSA9IChuYW1lczogdW5rbm93bltdKTogc3RyaW5nID0+IG5hbWVzLmZpbHRlcihCb29sZWFuKS5qb2luKFwiIFwiKTtcbiIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGZvcm1hdENsYXNzTmFtZSB9IGZyb20gXCIuLi8uLi91dGlscy9mb3JtYXRcIjtcblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICB0b3A/OiBudW1iZXI7XG4gIGxlZnQ6IG51bWJlcjtcbiAgY29sb3I6IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IFBvaW50ZXIgPSAoeyBjbGFzc05hbWUsIGNvbG9yLCBsZWZ0LCB0b3AgPSAwLjUgfTogUHJvcHMpOiBKU1guRWxlbWVudCA9PiB7XG4gIGNvbnN0IG5vZGVDbGFzc05hbWUgPSBmb3JtYXRDbGFzc05hbWUoW1wicmVhY3QtY29sb3JmdWxfX3BvaW50ZXJcIiwgY2xhc3NOYW1lXSk7XG5cbiAgY29uc3Qgc3R5bGUgPSB7XG4gICAgdG9wOiBgJHt0b3AgKiAxMDB9JWAsXG4gICAgbGVmdDogYCR7bGVmdCAqIDEwMH0lYCxcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtub2RlQ2xhc3NOYW1lfSBzdHlsZT17c3R5bGV9PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJyZWFjdC1jb2xvcmZ1bF9fcG9pbnRlci1maWxsXCIgc3R5bGU9e3sgYmFja2dyb3VuZENvbG9yOiBjb2xvciB9fSAvPlxuICAgIDwvZGl2PlxuICApO1xufTtcbiIsImV4cG9ydCBjb25zdCByb3VuZCA9IChudW1iZXI6IG51bWJlciwgZGlnaXRzID0gMCwgYmFzZSA9IE1hdGgucG93KDEwLCBkaWdpdHMpKTogbnVtYmVyID0+IHtcbiAgcmV0dXJuIE1hdGgucm91bmQoYmFzZSAqIG51bWJlcikgLyBiYXNlO1xufTtcbiIsImltcG9ydCB7IHJvdW5kIH0gZnJvbSBcIi4vcm91bmRcIjtcbmltcG9ydCB7IFJnYmFDb2xvciwgUmdiQ29sb3IsIEhzbGFDb2xvciwgSHNsQ29sb3IsIEhzdmFDb2xvciwgSHN2Q29sb3IgfSBmcm9tIFwiLi4vdHlwZXNcIjtcblxuLyoqXG4gKiBWYWxpZCBDU1MgPGFuZ2xlPiB1bml0cy5cbiAqIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9hbmdsZVxuICovXG5jb25zdCBhbmdsZVVuaXRzOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+ID0ge1xuICBncmFkOiAzNjAgLyA0MDAsXG4gIHR1cm46IDM2MCxcbiAgcmFkOiAzNjAgLyAoTWF0aC5QSSAqIDIpLFxufTtcblxuZXhwb3J0IGNvbnN0IGhleFRvSHN2YSA9IChoZXg6IHN0cmluZyk6IEhzdmFDb2xvciA9PiByZ2JhVG9Ic3ZhKGhleFRvUmdiYShoZXgpKTtcblxuZXhwb3J0IGNvbnN0IGhleFRvUmdiYSA9IChoZXg6IHN0cmluZyk6IFJnYmFDb2xvciA9PiB7XG4gIGlmIChoZXhbMF0gPT09IFwiI1wiKSBoZXggPSBoZXguc3Vic3RyKDEpO1xuXG4gIGlmIChoZXgubGVuZ3RoIDwgNikge1xuICAgIHJldHVybiB7XG4gICAgICByOiBwYXJzZUludChoZXhbMF0gKyBoZXhbMF0sIDE2KSxcbiAgICAgIGc6IHBhcnNlSW50KGhleFsxXSArIGhleFsxXSwgMTYpLFxuICAgICAgYjogcGFyc2VJbnQoaGV4WzJdICsgaGV4WzJdLCAxNiksXG4gICAgICBhOiAxLFxuICAgIH07XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHI6IHBhcnNlSW50KGhleC5zdWJzdHIoMCwgMiksIDE2KSxcbiAgICBnOiBwYXJzZUludChoZXguc3Vic3RyKDIsIDIpLCAxNiksXG4gICAgYjogcGFyc2VJbnQoaGV4LnN1YnN0cig0LCAyKSwgMTYpLFxuICAgIGE6IDEsXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgcGFyc2VIdWUgPSAodmFsdWU6IHN0cmluZywgdW5pdCA9IFwiZGVnXCIpOiBudW1iZXIgPT4ge1xuICByZXR1cm4gTnVtYmVyKHZhbHVlKSAqIChhbmdsZVVuaXRzW3VuaXRdIHx8IDEpO1xufTtcblxuZXhwb3J0IGNvbnN0IGhzbGFTdHJpbmdUb0hzdmEgPSAoaHNsU3RyaW5nOiBzdHJpbmcpOiBIc3ZhQ29sb3IgPT4ge1xuICBjb25zdCBtYXRjaGVyID0gL2hzbGE/XFwoP1xccyooLT9cXGQqXFwuP1xcZCspKGRlZ3xyYWR8Z3JhZHx0dXJuKT9bLFxcc10rKC0/XFxkKlxcLj9cXGQrKSU/WyxcXHNdKygtP1xcZCpcXC4/XFxkKyklPyw/XFxzKlsvXFxzXSooLT9cXGQqXFwuP1xcZCspPyglKT9cXHMqXFwpPy9pO1xuICBjb25zdCBtYXRjaCA9IG1hdGNoZXIuZXhlYyhoc2xTdHJpbmcpO1xuXG4gIGlmICghbWF0Y2gpIHJldHVybiB7IGg6IDAsIHM6IDAsIHY6IDAsIGE6IDEgfTtcblxuICByZXR1cm4gaHNsYVRvSHN2YSh7XG4gICAgaDogcGFyc2VIdWUobWF0Y2hbMV0sIG1hdGNoWzJdKSxcbiAgICBzOiBOdW1iZXIobWF0Y2hbM10pLFxuICAgIGw6IE51bWJlcihtYXRjaFs0XSksXG4gICAgYTogbWF0Y2hbNV0gPT09IHVuZGVmaW5lZCA/IDEgOiBOdW1iZXIobWF0Y2hbNV0pIC8gKG1hdGNoWzZdID8gMTAwIDogMSksXG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGhzbFN0cmluZ1RvSHN2YSA9IGhzbGFTdHJpbmdUb0hzdmE7XG5cbmV4cG9ydCBjb25zdCBoc2xhVG9Ic3ZhID0gKHsgaCwgcywgbCwgYSB9OiBIc2xhQ29sb3IpOiBIc3ZhQ29sb3IgPT4ge1xuICBzICo9IChsIDwgNTAgPyBsIDogMTAwIC0gbCkgLyAxMDA7XG5cbiAgcmV0dXJuIHtcbiAgICBoOiBoLFxuICAgIHM6IHMgPiAwID8gKCgyICogcykgLyAobCArIHMpKSAqIDEwMCA6IDAsXG4gICAgdjogbCArIHMsXG4gICAgYSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBoc3ZhVG9IZXggPSAoaHN2YTogSHN2YUNvbG9yKTogc3RyaW5nID0+IHJnYmFUb0hleChoc3ZhVG9SZ2JhKGhzdmEpKTtcblxuZXhwb3J0IGNvbnN0IGhzdmFUb0hzbGEgPSAoeyBoLCBzLCB2LCBhIH06IEhzdmFDb2xvcik6IEhzbGFDb2xvciA9PiB7XG4gIGNvbnN0IGhoID0gKCgyMDAgLSBzKSAqIHYpIC8gMTAwO1xuXG4gIHJldHVybiB7XG4gICAgaDogcm91bmQoaCksXG4gICAgczogcm91bmQoaGggPiAwICYmIGhoIDwgMjAwID8gKChzICogdikgLyAxMDAgLyAoaGggPD0gMTAwID8gaGggOiAyMDAgLSBoaCkpICogMTAwIDogMCksXG4gICAgbDogcm91bmQoaGggLyAyKSxcbiAgICBhOiByb3VuZChhLCAyKSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBoc3ZhVG9Ic2xTdHJpbmcgPSAoaHN2YTogSHN2YUNvbG9yKTogc3RyaW5nID0+IHtcbiAgY29uc3QgeyBoLCBzLCBsIH0gPSBoc3ZhVG9Ic2xhKGhzdmEpO1xuICByZXR1cm4gYGhzbCgke2h9LCAke3N9JSwgJHtsfSUpYDtcbn07XG5cbmV4cG9ydCBjb25zdCBoc3ZhVG9Ic3ZTdHJpbmcgPSAoaHN2YTogSHN2YUNvbG9yKTogc3RyaW5nID0+IHtcbiAgY29uc3QgeyBoLCBzLCB2IH0gPSByb3VuZEhzdmEoaHN2YSk7XG4gIHJldHVybiBgaHN2KCR7aH0sICR7c30lLCAke3Z9JSlgO1xufTtcblxuZXhwb3J0IGNvbnN0IGhzdmFUb0hzdmFTdHJpbmcgPSAoaHN2YTogSHN2YUNvbG9yKTogc3RyaW5nID0+IHtcbiAgY29uc3QgeyBoLCBzLCB2LCBhIH0gPSByb3VuZEhzdmEoaHN2YSk7XG4gIHJldHVybiBgaHN2YSgke2h9LCAke3N9JSwgJHt2fSUsICR7YX0pYDtcbn07XG5cbmV4cG9ydCBjb25zdCBoc3ZhVG9Ic2xhU3RyaW5nID0gKGhzdmE6IEhzdmFDb2xvcik6IHN0cmluZyA9PiB7XG4gIGNvbnN0IHsgaCwgcywgbCwgYSB9ID0gaHN2YVRvSHNsYShoc3ZhKTtcbiAgcmV0dXJuIGBoc2xhKCR7aH0sICR7c30lLCAke2x9JSwgJHthfSlgO1xufTtcblxuZXhwb3J0IGNvbnN0IGhzdmFUb1JnYmEgPSAoeyBoLCBzLCB2LCBhIH06IEhzdmFDb2xvcik6IFJnYmFDb2xvciA9PiB7XG4gIGggPSAoaCAvIDM2MCkgKiA2O1xuICBzID0gcyAvIDEwMDtcbiAgdiA9IHYgLyAxMDA7XG5cbiAgY29uc3QgaGggPSBNYXRoLmZsb29yKGgpLFxuICAgIGIgPSB2ICogKDEgLSBzKSxcbiAgICBjID0gdiAqICgxIC0gKGggLSBoaCkgKiBzKSxcbiAgICBkID0gdiAqICgxIC0gKDEgLSBoICsgaGgpICogcyksXG4gICAgbW9kdWxlID0gaGggJSA2O1xuXG4gIHJldHVybiB7XG4gICAgcjogcm91bmQoW3YsIGMsIGIsIGIsIGQsIHZdW21vZHVsZV0gKiAyNTUpLFxuICAgIGc6IHJvdW5kKFtkLCB2LCB2LCBjLCBiLCBiXVttb2R1bGVdICogMjU1KSxcbiAgICBiOiByb3VuZChbYiwgYiwgZCwgdiwgdiwgY11bbW9kdWxlXSAqIDI1NSksXG4gICAgYTogcm91bmQoYSwgMiksXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgaHN2YVRvUmdiU3RyaW5nID0gKGhzdmE6IEhzdmFDb2xvcik6IHN0cmluZyA9PiB7XG4gIGNvbnN0IHsgciwgZywgYiB9ID0gaHN2YVRvUmdiYShoc3ZhKTtcbiAgcmV0dXJuIGByZ2IoJHtyfSwgJHtnfSwgJHtifSlgO1xufTtcblxuZXhwb3J0IGNvbnN0IGhzdmFUb1JnYmFTdHJpbmcgPSAoaHN2YTogSHN2YUNvbG9yKTogc3RyaW5nID0+IHtcbiAgY29uc3QgeyByLCBnLCBiLCBhIH0gPSBoc3ZhVG9SZ2JhKGhzdmEpO1xuICByZXR1cm4gYHJnYmEoJHtyfSwgJHtnfSwgJHtifSwgJHthfSlgO1xufTtcblxuZXhwb3J0IGNvbnN0IGhzdmFTdHJpbmdUb0hzdmEgPSAoaHN2U3RyaW5nOiBzdHJpbmcpOiBIc3ZhQ29sb3IgPT4ge1xuICBjb25zdCBtYXRjaGVyID0gL2hzdmE/XFwoP1xccyooLT9cXGQqXFwuP1xcZCspKGRlZ3xyYWR8Z3JhZHx0dXJuKT9bLFxcc10rKC0/XFxkKlxcLj9cXGQrKSU/WyxcXHNdKygtP1xcZCpcXC4/XFxkKyklPyw/XFxzKlsvXFxzXSooLT9cXGQqXFwuP1xcZCspPyglKT9cXHMqXFwpPy9pO1xuICBjb25zdCBtYXRjaCA9IG1hdGNoZXIuZXhlYyhoc3ZTdHJpbmcpO1xuXG4gIGlmICghbWF0Y2gpIHJldHVybiB7IGg6IDAsIHM6IDAsIHY6IDAsIGE6IDEgfTtcblxuICByZXR1cm4gcm91bmRIc3ZhKHtcbiAgICBoOiBwYXJzZUh1ZShtYXRjaFsxXSwgbWF0Y2hbMl0pLFxuICAgIHM6IE51bWJlcihtYXRjaFszXSksXG4gICAgdjogTnVtYmVyKG1hdGNoWzRdKSxcbiAgICBhOiBtYXRjaFs1XSA9PT0gdW5kZWZpbmVkID8gMSA6IE51bWJlcihtYXRjaFs1XSkgLyAobWF0Y2hbNl0gPyAxMDAgOiAxKSxcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgaHN2U3RyaW5nVG9Ic3ZhID0gaHN2YVN0cmluZ1RvSHN2YTtcblxuZXhwb3J0IGNvbnN0IHJnYmFTdHJpbmdUb0hzdmEgPSAocmdiYVN0cmluZzogc3RyaW5nKTogSHN2YUNvbG9yID0+IHtcbiAgY29uc3QgbWF0Y2hlciA9IC9yZ2JhP1xcKD9cXHMqKC0/XFxkKlxcLj9cXGQrKSglKT9bLFxcc10rKC0/XFxkKlxcLj9cXGQrKSglKT9bLFxcc10rKC0/XFxkKlxcLj9cXGQrKSglKT8sP1xccypbL1xcc10qKC0/XFxkKlxcLj9cXGQrKT8oJSk/XFxzKlxcKT8vaTtcbiAgY29uc3QgbWF0Y2ggPSBtYXRjaGVyLmV4ZWMocmdiYVN0cmluZyk7XG5cbiAgaWYgKCFtYXRjaCkgcmV0dXJuIHsgaDogMCwgczogMCwgdjogMCwgYTogMSB9O1xuXG4gIHJldHVybiByZ2JhVG9Ic3ZhKHtcbiAgICByOiBOdW1iZXIobWF0Y2hbMV0pIC8gKG1hdGNoWzJdID8gMTAwIC8gMjU1IDogMSksXG4gICAgZzogTnVtYmVyKG1hdGNoWzNdKSAvIChtYXRjaFs0XSA/IDEwMCAvIDI1NSA6IDEpLFxuICAgIGI6IE51bWJlcihtYXRjaFs1XSkgLyAobWF0Y2hbNl0gPyAxMDAgLyAyNTUgOiAxKSxcbiAgICBhOiBtYXRjaFs3XSA9PT0gdW5kZWZpbmVkID8gMSA6IE51bWJlcihtYXRjaFs3XSkgLyAobWF0Y2hbOF0gPyAxMDAgOiAxKSxcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgcmdiU3RyaW5nVG9Ic3ZhID0gcmdiYVN0cmluZ1RvSHN2YTtcblxuY29uc3QgZm9ybWF0ID0gKG51bWJlcjogbnVtYmVyKSA9PiB7XG4gIGNvbnN0IGhleCA9IG51bWJlci50b1N0cmluZygxNik7XG4gIHJldHVybiBoZXgubGVuZ3RoIDwgMiA/IFwiMFwiICsgaGV4IDogaGV4O1xufTtcblxuZXhwb3J0IGNvbnN0IHJnYmFUb0hleCA9ICh7IHIsIGcsIGIgfTogUmdiYUNvbG9yKTogc3RyaW5nID0+IHtcbiAgcmV0dXJuIFwiI1wiICsgZm9ybWF0KHIpICsgZm9ybWF0KGcpICsgZm9ybWF0KGIpO1xufTtcblxuZXhwb3J0IGNvbnN0IHJnYmFUb0hzdmEgPSAoeyByLCBnLCBiLCBhIH06IFJnYmFDb2xvcik6IEhzdmFDb2xvciA9PiB7XG4gIGNvbnN0IG1heCA9IE1hdGgubWF4KHIsIGcsIGIpO1xuICBjb25zdCBkZWx0YSA9IG1heCAtIE1hdGgubWluKHIsIGcsIGIpO1xuXG4gIC8vIHByZXR0aWVyLWlnbm9yZVxuICBjb25zdCBoaCA9IGRlbHRhXG4gICAgPyBtYXggPT09IHJcbiAgICAgID8gKGcgLSBiKSAvIGRlbHRhXG4gICAgICA6IG1heCA9PT0gZ1xuICAgICAgICA/IDIgKyAoYiAtIHIpIC8gZGVsdGFcbiAgICAgICAgOiA0ICsgKHIgLSBnKSAvIGRlbHRhXG4gICAgOiAwO1xuXG4gIHJldHVybiB7XG4gICAgaDogcm91bmQoNjAgKiAoaGggPCAwID8gaGggKyA2IDogaGgpKSxcbiAgICBzOiByb3VuZChtYXggPyAoZGVsdGEgLyBtYXgpICogMTAwIDogMCksXG4gICAgdjogcm91bmQoKG1heCAvIDI1NSkgKiAxMDApLFxuICAgIGEsXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3Qgcm91bmRIc3ZhID0gKGhzdmE6IEhzdmFDb2xvcik6IEhzdmFDb2xvciA9PiAoe1xuICBoOiByb3VuZChoc3ZhLmgpLFxuICBzOiByb3VuZChoc3ZhLnMpLFxuICB2OiByb3VuZChoc3ZhLnYpLFxuICBhOiByb3VuZChoc3ZhLmEsIDIpLFxufSk7XG5cbmV4cG9ydCBjb25zdCByZ2JhVG9SZ2IgPSAoeyByLCBnLCBiIH06IFJnYmFDb2xvcik6IFJnYkNvbG9yID0+ICh7IHIsIGcsIGIgfSk7XG5cbmV4cG9ydCBjb25zdCBoc2xhVG9Ic2wgPSAoeyBoLCBzLCBsIH06IEhzbGFDb2xvcik6IEhzbENvbG9yID0+ICh7IGgsIHMsIGwgfSk7XG5cbmV4cG9ydCBjb25zdCBoc3ZhVG9Ic3YgPSAoaHN2YTogSHN2YUNvbG9yKTogSHN2Q29sb3IgPT4ge1xuICBjb25zdCB7IGgsIHMsIHYgfSA9IHJvdW5kSHN2YShoc3ZhKTtcbiAgcmV0dXJuIHsgaCwgcywgdiB9O1xufTtcbiIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IHsgSW50ZXJhY3RpdmUsIEludGVyYWN0aW9uIH0gZnJvbSBcIi4vSW50ZXJhY3RpdmVcIjtcbmltcG9ydCB7IFBvaW50ZXIgfSBmcm9tIFwiLi9Qb2ludGVyXCI7XG5cbmltcG9ydCB7IGhzdmFUb0hzbFN0cmluZyB9IGZyb20gXCIuLi8uLi91dGlscy9jb252ZXJ0XCI7XG5pbXBvcnQgeyBmb3JtYXRDbGFzc05hbWUgfSBmcm9tIFwiLi4vLi4vdXRpbHMvZm9ybWF0XCI7XG5pbXBvcnQgeyBjbGFtcCB9IGZyb20gXCIuLi8uLi91dGlscy9jbGFtcFwiO1xuaW1wb3J0IHsgcm91bmQgfSBmcm9tIFwiLi4vLi4vdXRpbHMvcm91bmRcIjtcblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICBodWU6IG51bWJlcjtcbiAgb25DaGFuZ2U6IChuZXdIdWU6IHsgaDogbnVtYmVyIH0pID0+IHZvaWQ7XG59XG5cbmNvbnN0IEh1ZUJhc2UgPSAoeyBjbGFzc05hbWUsIGh1ZSwgb25DaGFuZ2UgfTogUHJvcHMpID0+IHtcbiAgY29uc3QgaGFuZGxlTW92ZSA9IChpbnRlcmFjdGlvbjogSW50ZXJhY3Rpb24pID0+IHtcbiAgICBvbkNoYW5nZSh7IGg6IDM2MCAqIGludGVyYWN0aW9uLmxlZnQgfSk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlS2V5ID0gKG9mZnNldDogSW50ZXJhY3Rpb24pID0+IHtcbiAgICAvLyBIdWUgbWVhc3VyZWQgaW4gZGVncmVlcyBvZiB0aGUgY29sb3IgY2lyY2xlIHJhbmdpbmcgZnJvbSAwIHRvIDM2MFxuICAgIG9uQ2hhbmdlKHtcbiAgICAgIGg6IGNsYW1wKGh1ZSArIG9mZnNldC5sZWZ0ICogMzYwLCAwLCAzNjApLFxuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IG5vZGVDbGFzc05hbWUgPSBmb3JtYXRDbGFzc05hbWUoW1wicmVhY3QtY29sb3JmdWxfX2h1ZVwiLCBjbGFzc05hbWVdKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtub2RlQ2xhc3NOYW1lfT5cbiAgICAgIDxJbnRlcmFjdGl2ZVxuICAgICAgICBvbk1vdmU9e2hhbmRsZU1vdmV9XG4gICAgICAgIG9uS2V5PXtoYW5kbGVLZXl9XG4gICAgICAgIGFyaWEtbGFiZWw9XCJIdWVcIlxuICAgICAgICBhcmlhLXZhbHVldGV4dD17cm91bmQoaHVlKX1cbiAgICAgID5cbiAgICAgICAgPFBvaW50ZXJcbiAgICAgICAgICBjbGFzc05hbWU9XCJyZWFjdC1jb2xvcmZ1bF9faHVlLXBvaW50ZXJcIlxuICAgICAgICAgIGxlZnQ9e2h1ZSAvIDM2MH1cbiAgICAgICAgICBjb2xvcj17aHN2YVRvSHNsU3RyaW5nKHsgaDogaHVlLCBzOiAxMDAsIHY6IDEwMCwgYTogMSB9KX1cbiAgICAgICAgLz5cbiAgICAgIDwvSW50ZXJhY3RpdmU+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgSHVlID0gUmVhY3QubWVtbyhIdWVCYXNlKTtcbiIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IEludGVyYWN0aXZlLCBJbnRlcmFjdGlvbiB9IGZyb20gXCIuL0ludGVyYWN0aXZlXCI7XG5pbXBvcnQgeyBQb2ludGVyIH0gZnJvbSBcIi4vUG9pbnRlclwiO1xuaW1wb3J0IHsgSHN2YUNvbG9yIH0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XG5pbXBvcnQgeyBoc3ZhVG9Ic2xTdHJpbmcgfSBmcm9tIFwiLi4vLi4vdXRpbHMvY29udmVydFwiO1xuaW1wb3J0IHsgY2xhbXAgfSBmcm9tIFwiLi4vLi4vdXRpbHMvY2xhbXBcIjtcbmltcG9ydCB7IHJvdW5kIH0gZnJvbSBcIi4uLy4uL3V0aWxzL3JvdW5kXCI7XG5cbmludGVyZmFjZSBQcm9wcyB7XG4gIGhzdmE6IEhzdmFDb2xvcjtcbiAgb25DaGFuZ2U6IChuZXdDb2xvcjogeyBzOiBudW1iZXI7IHY6IG51bWJlciB9KSA9PiB2b2lkO1xufVxuXG5jb25zdCBTYXR1cmF0aW9uQmFzZSA9ICh7IGhzdmEsIG9uQ2hhbmdlIH06IFByb3BzKSA9PiB7XG4gIGNvbnN0IGhhbmRsZU1vdmUgPSAoaW50ZXJhY3Rpb246IEludGVyYWN0aW9uKSA9PiB7XG4gICAgb25DaGFuZ2Uoe1xuICAgICAgczogaW50ZXJhY3Rpb24ubGVmdCAqIDEwMCxcbiAgICAgIHY6IDEwMCAtIGludGVyYWN0aW9uLnRvcCAqIDEwMCxcbiAgICB9KTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVLZXkgPSAob2Zmc2V0OiBJbnRlcmFjdGlvbikgPT4ge1xuICAgIC8vIFNhdHVyYXRpb24gYW5kIGJyaWdodG5lc3MgYWx3YXlzIGZpdCBpbnRvIFswLCAxMDBdIHJhbmdlXG4gICAgb25DaGFuZ2Uoe1xuICAgICAgczogY2xhbXAoaHN2YS5zICsgb2Zmc2V0LmxlZnQgKiAxMDAsIDAsIDEwMCksXG4gICAgICB2OiBjbGFtcChoc3ZhLnYgLSBvZmZzZXQudG9wICogMTAwLCAwLCAxMDApLFxuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IGNvbnRhaW5lclN0eWxlID0ge1xuICAgIGJhY2tncm91bmRDb2xvcjogaHN2YVRvSHNsU3RyaW5nKHsgaDogaHN2YS5oLCBzOiAxMDAsIHY6IDEwMCwgYTogMSB9KSxcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwicmVhY3QtY29sb3JmdWxfX3NhdHVyYXRpb25cIiBzdHlsZT17Y29udGFpbmVyU3R5bGV9PlxuICAgICAgPEludGVyYWN0aXZlXG4gICAgICAgIG9uTW92ZT17aGFuZGxlTW92ZX1cbiAgICAgICAgb25LZXk9e2hhbmRsZUtleX1cbiAgICAgICAgYXJpYS1sYWJlbD1cIkNvbG9yXCJcbiAgICAgICAgYXJpYS12YWx1ZXRleHQ9e2BTYXR1cmF0aW9uICR7cm91bmQoaHN2YS5zKX0lLCBCcmlnaHRuZXNzICR7cm91bmQoaHN2YS52KX0lYH1cbiAgICAgID5cbiAgICAgICAgPFBvaW50ZXJcbiAgICAgICAgICBjbGFzc05hbWU9XCJyZWFjdC1jb2xvcmZ1bF9fc2F0dXJhdGlvbi1wb2ludGVyXCJcbiAgICAgICAgICB0b3A9ezEgLSBoc3ZhLnYgLyAxMDB9XG4gICAgICAgICAgbGVmdD17aHN2YS5zIC8gMTAwfVxuICAgICAgICAgIGNvbG9yPXtoc3ZhVG9Ic2xTdHJpbmcoaHN2YSl9XG4gICAgICAgIC8+XG4gICAgICA8L0ludGVyYWN0aXZlPlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IFNhdHVyYXRpb24gPSBSZWFjdC5tZW1vKFNhdHVyYXRpb25CYXNlKTtcbiIsImltcG9ydCB7IGhleFRvUmdiYSB9IGZyb20gXCIuL2NvbnZlcnRcIjtcbmltcG9ydCB7IE9iamVjdENvbG9yIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5cbmV4cG9ydCBjb25zdCBlcXVhbENvbG9yT2JqZWN0cyA9IChmaXJzdDogT2JqZWN0Q29sb3IsIHNlY29uZDogT2JqZWN0Q29sb3IpOiBib29sZWFuID0+IHtcbiAgaWYgKGZpcnN0ID09PSBzZWNvbmQpIHJldHVybiB0cnVlO1xuXG4gIGZvciAoY29uc3QgcHJvcCBpbiBmaXJzdCkge1xuICAgIC8vIFRoZSBmb2xsb3dpbmcgYWxsb3dzIGZvciBhIHR5cGUtc2FmZSBjYWxsaW5nIG9mIHRoaXMgZnVuY3Rpb24gKGZpcnN0ICYgc2Vjb25kIGhhdmUgdG8gYmUgSFNMLCBIU1YsIG9yIFJHQilcbiAgICAvLyB3aXRoIHR5cGUtdW5zYWZlIGl0ZXJhdGluZyBvdmVyIG9iamVjdCBrZXlzLiBUUyBkb2VzIG5vdCBhbGxvdyB0aGlzIHdpdGhvdXQgYW4gaW5kZXggKGBba2V5OiBzdHJpbmddOiBudW1iZXJgKVxuICAgIC8vIG9uIGFuIG9iamVjdCB0byBkZWZpbmUgaG93IGl0ZXJhdGlvbiBpcyBub3JtYWxseSBkb25lLiBUbyBlbnN1cmUgZXh0cmEga2V5cyBhcmUgbm90IGFsbG93ZWQgb24gb3VyIHR5cGVzLFxuICAgIC8vIHdlIG11c3QgY2FzdCBvdXIgb2JqZWN0IHRvIHVua25vd24gKGFzIFJHQiBkZW1hbmRzIGByYCBiZSBhIGtleSwgd2hpbGUgYFJlY29yZDxzdHJpbmcsIHg+YCBkb2VzIG5vdCBjYXJlIGlmXG4gICAgLy8gdGhlcmUgaXMgb3Igbm90KSwgYW5kIHRoZW4gYXMgYSB0eXBlIFRTIGNhbiBpdGVyYXRlIG92ZXIuXG4gICAgaWYgKFxuICAgICAgKChmaXJzdCBhcyB1bmtub3duKSBhcyBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+KVtwcm9wXSAhPT1cbiAgICAgICgoc2Vjb25kIGFzIHVua25vd24pIGFzIFJlY29yZDxzdHJpbmcsIG51bWJlcj4pW3Byb3BdXG4gICAgKVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuXG5leHBvcnQgY29uc3QgZXF1YWxDb2xvclN0cmluZyA9IChmaXJzdDogc3RyaW5nLCBzZWNvbmQ6IHN0cmluZyk6IGJvb2xlYW4gPT4ge1xuICByZXR1cm4gZmlyc3QucmVwbGFjZSgvXFxzL2csIFwiXCIpID09PSBzZWNvbmQucmVwbGFjZSgvXFxzL2csIFwiXCIpO1xufTtcblxuZXhwb3J0IGNvbnN0IGVxdWFsSGV4ID0gKGZpcnN0OiBzdHJpbmcsIHNlY29uZDogc3RyaW5nKTogYm9vbGVhbiA9PiB7XG4gIGlmIChmaXJzdC50b0xvd2VyQ2FzZSgpID09PSBzZWNvbmQudG9Mb3dlckNhc2UoKSkgcmV0dXJuIHRydWU7XG5cbiAgLy8gVG8gY29tcGFyZSBjb2xvcnMgbGlrZSBgI0ZGRmAgYW5kIGBmZmZmZmZgIHdlIGNvbnZlcnQgdGhlbSBpbnRvIFJHQiBvYmplY3RzXG4gIHJldHVybiBlcXVhbENvbG9yT2JqZWN0cyhoZXhUb1JnYmEoZmlyc3QpLCBoZXhUb1JnYmEoc2Vjb25kKSk7XG59O1xuIiwiaW1wb3J0IHsgdXNlU3RhdGUsIHVzZUVmZmVjdCwgdXNlQ2FsbGJhY2ssIHVzZVJlZiB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgQ29sb3JNb2RlbCwgQW55Q29sb3IsIEhzdmFDb2xvciB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHsgZXF1YWxDb2xvck9iamVjdHMgfSBmcm9tIFwiLi4vdXRpbHMvY29tcGFyZVwiO1xuaW1wb3J0IHsgdXNlRXZlbnRDYWxsYmFjayB9IGZyb20gXCIuL3VzZUV2ZW50Q2FsbGJhY2tcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHVzZUNvbG9yTWFuaXB1bGF0aW9uPFQgZXh0ZW5kcyBBbnlDb2xvcj4oXG4gIGNvbG9yTW9kZWw6IENvbG9yTW9kZWw8VD4sXG4gIGNvbG9yOiBULFxuICBvbkNoYW5nZT86IChjb2xvcjogVCkgPT4gdm9pZFxuKTogW0hzdmFDb2xvciwgKGNvbG9yOiBQYXJ0aWFsPEhzdmFDb2xvcj4pID0+IHZvaWRdIHtcbiAgLy8gU2F2ZSBvbkNoYW5nZSBjYWxsYmFjayBpbiB0aGUgcmVmIGZvciBhdm9pZGluZyBcInVzZUNhbGxiYWNrIGhlbGxcIlxuICBjb25zdCBvbkNoYW5nZUNhbGxiYWNrID0gdXNlRXZlbnRDYWxsYmFjazxUPihvbkNoYW5nZSk7XG5cbiAgLy8gTm8gbWF0dGVyIHdoaWNoIGNvbG9yIG1vZGVsIGlzIHVzZWQgKEhFWCwgUkdCKEEpIG9yIEhTTChBKSksXG4gIC8vIGFsbCBpbnRlcm5hbCBjYWxjdWxhdGlvbnMgYXJlIGJhc2VkIG9uIEhTVkEgbW9kZWxcbiAgY29uc3QgW2hzdmEsIHVwZGF0ZUhzdmFdID0gdXNlU3RhdGU8SHN2YUNvbG9yPigoKSA9PiBjb2xvck1vZGVsLnRvSHN2YShjb2xvcikpO1xuXG4gIC8vIEJ5IHVzaW5nIHRoaXMgcmVmIHdlJ3JlIGFibGUgdG8gcHJldmVudCBleHRyYSB1cGRhdGVzXG4gIC8vIGFuZCB0aGUgZWZmZWN0cyByZWN1cnNpb24gZHVyaW5nIHRoZSBjb2xvciBjb252ZXJzaW9uXG4gIGNvbnN0IGNhY2hlID0gdXNlUmVmKHsgY29sb3IsIGhzdmEgfSk7XG5cbiAgLy8gVXBkYXRlIGxvY2FsIEhTVkEtdmFsdWUgaWYgYGNvbG9yYCBwcm9wZXJ0eSB2YWx1ZSBpcyBjaGFuZ2VkLFxuICAvLyBidXQgb25seSBpZiB0aGF0J3Mgbm90IHRoZSBzYW1lIGNvbG9yIHRoYXQgd2UganVzdCBzZW50IHRvIHRoZSBwYXJlbnRcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWNvbG9yTW9kZWwuZXF1YWwoY29sb3IsIGNhY2hlLmN1cnJlbnQuY29sb3IpKSB7XG4gICAgICBjb25zdCBuZXdIc3ZhID0gY29sb3JNb2RlbC50b0hzdmEoY29sb3IpO1xuICAgICAgY2FjaGUuY3VycmVudCA9IHsgaHN2YTogbmV3SHN2YSwgY29sb3IgfTtcbiAgICAgIHVwZGF0ZUhzdmEobmV3SHN2YSk7XG4gICAgfVxuICB9LCBbY29sb3IsIGNvbG9yTW9kZWxdKTtcblxuICAvLyBUcmlnZ2VyIGBvbkNoYW5nZWAgY2FsbGJhY2sgb25seSBpZiBhbiB1cGRhdGVkIGNvbG9yIGlzIGRpZmZlcmVudCBmcm9tIGNhY2hlZCBvbmU7XG4gIC8vIHNhdmUgdGhlIG5ldyBjb2xvciB0byB0aGUgcmVmIHRvIHByZXZlbnQgdW5uZWNlc3NhcnkgdXBkYXRlc1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGxldCBuZXdDb2xvcjtcbiAgICBpZiAoXG4gICAgICAhZXF1YWxDb2xvck9iamVjdHMoaHN2YSwgY2FjaGUuY3VycmVudC5oc3ZhKSAmJlxuICAgICAgIWNvbG9yTW9kZWwuZXF1YWwoKG5ld0NvbG9yID0gY29sb3JNb2RlbC5mcm9tSHN2YShoc3ZhKSksIGNhY2hlLmN1cnJlbnQuY29sb3IpXG4gICAgKSB7XG4gICAgICBjYWNoZS5jdXJyZW50ID0geyBoc3ZhLCBjb2xvcjogbmV3Q29sb3IgfTtcbiAgICAgIG9uQ2hhbmdlQ2FsbGJhY2sobmV3Q29sb3IpO1xuICAgIH1cbiAgfSwgW2hzdmEsIGNvbG9yTW9kZWwsIG9uQ2hhbmdlQ2FsbGJhY2tdKTtcblxuICAvLyBNZXJnZSB0aGUgY3VycmVudCBIU1ZBIGNvbG9yIG9iamVjdCB3aXRoIHVwZGF0ZWQgcGFyYW1zLlxuICAvLyBGb3IgZXhhbXBsZSwgd2hlbiBhIGNoaWxkIGNvbXBvbmVudCBzZW5kcyBgaGAgb3IgYHNgIG9ubHlcbiAgY29uc3QgaGFuZGxlQ2hhbmdlID0gdXNlQ2FsbGJhY2soKHBhcmFtczogUGFydGlhbDxIc3ZhQ29sb3I+KSA9PiB7XG4gICAgdXBkYXRlSHN2YSgoY3VycmVudCkgPT4gT2JqZWN0LmFzc2lnbih7fSwgY3VycmVudCwgcGFyYW1zKSk7XG4gIH0sIFtdKTtcblxuICByZXR1cm4gW2hzdmEsIGhhbmRsZUNoYW5nZV07XG59XG4iLCJkZWNsYXJlIGNvbnN0IF9fd2VicGFja19ub25jZV9fOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5sZXQgbm9uY2U6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuLyoqXG4gKiBSZXR1cm5zIGEgbm9uY2UgaGFzaCBpbmNsdWRlZCBieSBXZWJwYWNrIG9yIHRoZSBvbmUgZGVmaW5lZCBtYW51YWxseSBieSBkZXZlbG9wZXIuXG4gKiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9IVE1ML0dsb2JhbF9hdHRyaWJ1dGVzL25vbmNlXG4gKiBodHRwczovL3dlYnBhY2suanMub3JnL2d1aWRlcy9jc3AvXG4gKi9cbmV4cG9ydCBjb25zdCBnZXROb25jZSA9ICgpOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4ge1xuICBpZiAobm9uY2UpIHJldHVybiBub25jZTtcbiAgaWYgKHR5cGVvZiBfX3dlYnBhY2tfbm9uY2VfXyAhPT0gXCJ1bmRlZmluZWRcIikgcmV0dXJuIF9fd2VicGFja19ub25jZV9fO1xuICByZXR1cm4gdW5kZWZpbmVkO1xufTtcblxuLyoqXG4gKiBTaWducyB0aGUgc3R5bGUgdGFnIHdpdGggYSBiYXNlNjQtZW5jb2RlZCBzdHJpbmcgKG5vbmNlKSB0byBjb25mb3JtcyB0byBDb250ZW50IFNlY3VyaXR5IFBvbGljaWVzLlxuICogVGhpcyBmdW5jdGlvbiBoYXMgdG8gYmUgaW52b2tlZCBiZWZvcmUgYW55IHBpY2tlciBpcyByZW5kZXJlZCBpZiB5b3UgYXJlbid0IHVzaW5nIFdlYnBhY2sgZm9yIENTUC5cbiAqL1xuZXhwb3J0IGNvbnN0IHNldE5vbmNlID0gKGhhc2g6IHN0cmluZyk6IHZvaWQgPT4ge1xuICBub25jZSA9IGhhc2g7XG59O1xuIiwiaW1wb3J0IHsgdXNlTGF5b3V0RWZmZWN0LCB1c2VFZmZlY3QgfSBmcm9tIFwicmVhY3RcIjtcblxuLy8gUmVhY3QgY3VycmVudGx5IHRocm93cyBhIHdhcm5pbmcgd2hlbiB1c2luZyB1c2VMYXlvdXRFZmZlY3Qgb24gdGhlIHNlcnZlci5cbi8vIFRvIGdldCBhcm91bmQgaXQsIHdlIGNhbiBjb25kaXRpb25hbGx5IHVzZUVmZmVjdCBvbiB0aGUgc2VydmVyIChuby1vcCkgYW5kXG4vLyB1c2VMYXlvdXRFZmZlY3QgaW4gdGhlIGJyb3dzZXIuXG5leHBvcnQgY29uc3QgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCA9XG4gIHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgPyB1c2VMYXlvdXRFZmZlY3QgOiB1c2VFZmZlY3Q7XG4iLCJpbXBvcnQgeyBSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IHsgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCB9IGZyb20gXCIuL3VzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3RcIjtcbmltcG9ydCB7IGdldE5vbmNlIH0gZnJvbSBcIi4uL3V0aWxzL25vbmNlXCI7XG5cbi8vIEJ1bmRsZXIgaXMgY29uZmlndXJlZCB0byBsb2FkIHRoaXMgYXMgYSBwcm9jZXNzZWQgbWluaWZpZWQgQ1NTLXN0cmluZ1xuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi4vY3NzL3N0eWxlcy5jc3NcIjtcblxuY29uc3Qgc3R5bGVFbGVtZW50TWFwOiBNYXA8RG9jdW1lbnQsIEhUTUxTdHlsZUVsZW1lbnQ+ID0gbmV3IE1hcCgpO1xuXG4vKipcbiAqIEluamVjdHMgQ1NTIGNvZGUgaW50byB0aGUgZG9jdW1lbnQncyA8aGVhZD5cbiAqL1xuZXhwb3J0IGNvbnN0IHVzZVN0eWxlU2hlZXQgPSAobm9kZVJlZjogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50Pik6IHZvaWQgPT4ge1xuICB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBwYXJlbnREb2N1bWVudCA9IG5vZGVSZWYuY3VycmVudCA/IG5vZGVSZWYuY3VycmVudC5vd25lckRvY3VtZW50IDogZG9jdW1lbnQ7XG5cbiAgICBpZiAodHlwZW9mIHBhcmVudERvY3VtZW50ICE9PSBcInVuZGVmaW5lZFwiICYmICFzdHlsZUVsZW1lbnRNYXAuaGFzKHBhcmVudERvY3VtZW50KSkge1xuICAgICAgY29uc3Qgc3R5bGVFbGVtZW50ID0gcGFyZW50RG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInN0eWxlXCIpO1xuICAgICAgc3R5bGVFbGVtZW50LmlubmVySFRNTCA9IHN0eWxlcztcbiAgICAgIHN0eWxlRWxlbWVudE1hcC5zZXQocGFyZW50RG9jdW1lbnQsIHN0eWxlRWxlbWVudCk7XG5cbiAgICAgIC8vIENvbmZvcm0gdG8gQ1NQIHJ1bGVzIGJ5IHNldHRpbmcgYG5vbmNlYCBhdHRyaWJ1dGUgdG8gdGhlIGlubGluZSBzdHlsZXNcbiAgICAgIGNvbnN0IG5vbmNlID0gZ2V0Tm9uY2UoKTtcbiAgICAgIGlmIChub25jZSkgc3R5bGVFbGVtZW50LnNldEF0dHJpYnV0ZShcIm5vbmNlXCIsIG5vbmNlKTtcblxuICAgICAgcGFyZW50RG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzdHlsZUVsZW1lbnQpO1xuICAgIH1cbiAgfSwgW10pO1xufTtcbiIsImltcG9ydCBSZWFjdCwgeyB1c2VSZWYgfSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IHsgSHVlIH0gZnJvbSBcIi4vSHVlXCI7XG5pbXBvcnQgeyBTYXR1cmF0aW9uIH0gZnJvbSBcIi4vU2F0dXJhdGlvblwiO1xuXG5pbXBvcnQgeyBDb2xvck1vZGVsLCBDb2xvclBpY2tlckJhc2VQcm9wcywgQW55Q29sb3IgfSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcbmltcG9ydCB7IHVzZUNvbG9yTWFuaXB1bGF0aW9uIH0gZnJvbSBcIi4uLy4uL2hvb2tzL3VzZUNvbG9yTWFuaXB1bGF0aW9uXCI7XG5pbXBvcnQgeyB1c2VTdHlsZVNoZWV0IH0gZnJvbSBcIi4uLy4uL2hvb2tzL3VzZVN0eWxlU2hlZXRcIjtcbmltcG9ydCB7IGZvcm1hdENsYXNzTmFtZSB9IGZyb20gXCIuLi8uLi91dGlscy9mb3JtYXRcIjtcblxuaW50ZXJmYWNlIFByb3BzPFQgZXh0ZW5kcyBBbnlDb2xvcj4gZXh0ZW5kcyBQYXJ0aWFsPENvbG9yUGlja2VyQmFzZVByb3BzPFQ+PiB7XG4gIGNvbG9yTW9kZWw6IENvbG9yTW9kZWw8VD47XG59XG5cbmV4cG9ydCBjb25zdCBDb2xvclBpY2tlciA9IDxUIGV4dGVuZHMgQW55Q29sb3I+KHtcbiAgY2xhc3NOYW1lLFxuICBjb2xvck1vZGVsLFxuICBjb2xvciA9IGNvbG9yTW9kZWwuZGVmYXVsdENvbG9yLFxuICBvbkNoYW5nZSxcbiAgLi4ucmVzdFxufTogUHJvcHM8VD4pOiBKU1guRWxlbWVudCA9PiB7XG4gIGNvbnN0IG5vZGVSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICB1c2VTdHlsZVNoZWV0KG5vZGVSZWYpO1xuXG4gIGNvbnN0IFtoc3ZhLCB1cGRhdGVIc3ZhXSA9IHVzZUNvbG9yTWFuaXB1bGF0aW9uPFQ+KGNvbG9yTW9kZWwsIGNvbG9yLCBvbkNoYW5nZSk7XG5cbiAgY29uc3Qgbm9kZUNsYXNzTmFtZSA9IGZvcm1hdENsYXNzTmFtZShbXCJyZWFjdC1jb2xvcmZ1bFwiLCBjbGFzc05hbWVdKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgey4uLnJlc3R9IHJlZj17bm9kZVJlZn0gY2xhc3NOYW1lPXtub2RlQ2xhc3NOYW1lfT5cbiAgICAgIDxTYXR1cmF0aW9uIGhzdmE9e2hzdmF9IG9uQ2hhbmdlPXt1cGRhdGVIc3ZhfSAvPlxuICAgICAgPEh1ZSBodWU9e2hzdmEuaH0gb25DaGFuZ2U9e3VwZGF0ZUhzdmF9IGNsYXNzTmFtZT1cInJlYWN0LWNvbG9yZnVsX19sYXN0LWNvbnRyb2xcIiAvPlxuICAgIDwvZGl2PlxuICApO1xufTtcbiIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IHsgQ29sb3JQaWNrZXIgfSBmcm9tIFwiLi9jb21tb24vQ29sb3JQaWNrZXJcIjtcbmltcG9ydCB7IENvbG9yTW9kZWwsIENvbG9yUGlja2VyQmFzZVByb3BzIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5pbXBvcnQgeyBlcXVhbEhleCB9IGZyb20gXCIuLi91dGlscy9jb21wYXJlXCI7XG5pbXBvcnQgeyBoZXhUb0hzdmEsIGhzdmFUb0hleCB9IGZyb20gXCIuLi91dGlscy9jb252ZXJ0XCI7XG5cbmNvbnN0IGNvbG9yTW9kZWw6IENvbG9yTW9kZWw8c3RyaW5nPiA9IHtcbiAgZGVmYXVsdENvbG9yOiBcIjAwMFwiLFxuICB0b0hzdmE6IGhleFRvSHN2YSxcbiAgZnJvbUhzdmE6IGhzdmFUb0hleCxcbiAgZXF1YWw6IGVxdWFsSGV4LFxufTtcblxuZXhwb3J0IGNvbnN0IEhleENvbG9yUGlja2VyID0gKHByb3BzOiBQYXJ0aWFsPENvbG9yUGlja2VyQmFzZVByb3BzPHN0cmluZz4+KTogSlNYLkVsZW1lbnQgPT4gKFxuICA8Q29sb3JQaWNrZXIgey4uLnByb3BzfSBjb2xvck1vZGVsPXtjb2xvck1vZGVsfSAvPlxuKTtcbiIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IHsgSW50ZXJhY3RpdmUsIEludGVyYWN0aW9uIH0gZnJvbSBcIi4vSW50ZXJhY3RpdmVcIjtcbmltcG9ydCB7IFBvaW50ZXIgfSBmcm9tIFwiLi9Qb2ludGVyXCI7XG5cbmltcG9ydCB7IGhzdmFUb0hzbGFTdHJpbmcgfSBmcm9tIFwiLi4vLi4vdXRpbHMvY29udmVydFwiO1xuaW1wb3J0IHsgZm9ybWF0Q2xhc3NOYW1lIH0gZnJvbSBcIi4uLy4uL3V0aWxzL2Zvcm1hdFwiO1xuaW1wb3J0IHsgY2xhbXAgfSBmcm9tIFwiLi4vLi4vdXRpbHMvY2xhbXBcIjtcbmltcG9ydCB7IHJvdW5kIH0gZnJvbSBcIi4uLy4uL3V0aWxzL3JvdW5kXCI7XG5pbXBvcnQgeyBIc3ZhQ29sb3IgfSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICBoc3ZhOiBIc3ZhQ29sb3I7XG4gIG9uQ2hhbmdlOiAobmV3QWxwaGE6IHsgYTogbnVtYmVyIH0pID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBjb25zdCBBbHBoYSA9ICh7IGNsYXNzTmFtZSwgaHN2YSwgb25DaGFuZ2UgfTogUHJvcHMpOiBKU1guRWxlbWVudCA9PiB7XG4gIGNvbnN0IGhhbmRsZU1vdmUgPSAoaW50ZXJhY3Rpb246IEludGVyYWN0aW9uKSA9PiB7XG4gICAgb25DaGFuZ2UoeyBhOiBpbnRlcmFjdGlvbi5sZWZ0IH0pO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUtleSA9IChvZmZzZXQ6IEludGVyYWN0aW9uKSA9PiB7XG4gICAgLy8gQWxwaGEgYWx3YXlzIGZpdCBpbnRvIFswLCAxXSByYW5nZVxuICAgIG9uQ2hhbmdlKHsgYTogY2xhbXAoaHN2YS5hICsgb2Zmc2V0LmxlZnQpIH0pO1xuICB9O1xuXG4gIC8vIFdlIHVzZSBgT2JqZWN0LmFzc2lnbmAgaW5zdGVhZCBvZiB0aGUgc3ByZWFkIG9wZXJhdG9yXG4gIC8vIHRvIHByZXZlbnQgYWRkaW5nIHRoZSBwb2x5ZmlsbCAoYWJvdXQgMTUwIGJ5dGVzIGd6aXBwZWQpXG4gIGNvbnN0IGNvbG9yRnJvbSA9IGhzdmFUb0hzbGFTdHJpbmcoT2JqZWN0LmFzc2lnbih7fSwgaHN2YSwgeyBhOiAwIH0pKTtcbiAgY29uc3QgY29sb3JUbyA9IGhzdmFUb0hzbGFTdHJpbmcoT2JqZWN0LmFzc2lnbih7fSwgaHN2YSwgeyBhOiAxIH0pKTtcblxuICBjb25zdCBncmFkaWVudFN0eWxlID0ge1xuICAgIGJhY2tncm91bmRJbWFnZTogYGxpbmVhci1ncmFkaWVudCg5MGRlZywgJHtjb2xvckZyb219LCAke2NvbG9yVG99KWAsXG4gIH07XG5cbiAgY29uc3Qgbm9kZUNsYXNzTmFtZSA9IGZvcm1hdENsYXNzTmFtZShbXCJyZWFjdC1jb2xvcmZ1bF9fYWxwaGFcIiwgY2xhc3NOYW1lXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT17bm9kZUNsYXNzTmFtZX0+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInJlYWN0LWNvbG9yZnVsX19hbHBoYS1ncmFkaWVudFwiIHN0eWxlPXtncmFkaWVudFN0eWxlfSAvPlxuICAgICAgPEludGVyYWN0aXZlXG4gICAgICAgIG9uTW92ZT17aGFuZGxlTW92ZX1cbiAgICAgICAgb25LZXk9e2hhbmRsZUtleX1cbiAgICAgICAgYXJpYS1sYWJlbD1cIkFscGhhXCJcbiAgICAgICAgYXJpYS12YWx1ZXRleHQ9e2Ake3JvdW5kKGhzdmEuYSAqIDEwMCl9JWB9XG4gICAgICA+XG4gICAgICAgIDxQb2ludGVyXG4gICAgICAgICAgY2xhc3NOYW1lPVwicmVhY3QtY29sb3JmdWxfX2FscGhhLXBvaW50ZXJcIlxuICAgICAgICAgIGxlZnQ9e2hzdmEuYX1cbiAgICAgICAgICBjb2xvcj17aHN2YVRvSHNsYVN0cmluZyhoc3ZhKX1cbiAgICAgICAgLz5cbiAgICAgIDwvSW50ZXJhY3RpdmU+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuIiwiaW1wb3J0IFJlYWN0LCB7IHVzZVJlZiB9IGZyb20gXCJyZWFjdFwiO1xuXG5pbXBvcnQgeyBIdWUgfSBmcm9tIFwiLi9IdWVcIjtcbmltcG9ydCB7IFNhdHVyYXRpb24gfSBmcm9tIFwiLi9TYXR1cmF0aW9uXCI7XG5pbXBvcnQgeyBBbHBoYSB9IGZyb20gXCIuL0FscGhhXCI7XG5cbmltcG9ydCB7IENvbG9yTW9kZWwsIENvbG9yUGlja2VyQmFzZVByb3BzLCBBbnlDb2xvciB9IGZyb20gXCIuLi8uLi90eXBlc1wiO1xuaW1wb3J0IHsgdXNlQ29sb3JNYW5pcHVsYXRpb24gfSBmcm9tIFwiLi4vLi4vaG9va3MvdXNlQ29sb3JNYW5pcHVsYXRpb25cIjtcbmltcG9ydCB7IHVzZVN0eWxlU2hlZXQgfSBmcm9tIFwiLi4vLi4vaG9va3MvdXNlU3R5bGVTaGVldFwiO1xuaW1wb3J0IHsgZm9ybWF0Q2xhc3NOYW1lIH0gZnJvbSBcIi4uLy4uL3V0aWxzL2Zvcm1hdFwiO1xuXG5pbnRlcmZhY2UgUHJvcHM8VCBleHRlbmRzIEFueUNvbG9yPiBleHRlbmRzIFBhcnRpYWw8Q29sb3JQaWNrZXJCYXNlUHJvcHM8VD4+IHtcbiAgY29sb3JNb2RlbDogQ29sb3JNb2RlbDxUPjtcbn1cblxuZXhwb3J0IGNvbnN0IEFscGhhQ29sb3JQaWNrZXIgPSA8VCBleHRlbmRzIEFueUNvbG9yPih7XG4gIGNsYXNzTmFtZSxcbiAgY29sb3JNb2RlbCxcbiAgY29sb3IgPSBjb2xvck1vZGVsLmRlZmF1bHRDb2xvcixcbiAgb25DaGFuZ2UsXG4gIC4uLnJlc3Rcbn06IFByb3BzPFQ+KTogSlNYLkVsZW1lbnQgPT4ge1xuICBjb25zdCBub2RlUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgdXNlU3R5bGVTaGVldChub2RlUmVmKTtcblxuICBjb25zdCBbaHN2YSwgdXBkYXRlSHN2YV0gPSB1c2VDb2xvck1hbmlwdWxhdGlvbjxUPihjb2xvck1vZGVsLCBjb2xvciwgb25DaGFuZ2UpO1xuXG4gIGNvbnN0IG5vZGVDbGFzc05hbWUgPSBmb3JtYXRDbGFzc05hbWUoW1wicmVhY3QtY29sb3JmdWxcIiwgY2xhc3NOYW1lXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IHsuLi5yZXN0fSByZWY9e25vZGVSZWZ9IGNsYXNzTmFtZT17bm9kZUNsYXNzTmFtZX0+XG4gICAgICA8U2F0dXJhdGlvbiBoc3ZhPXtoc3ZhfSBvbkNoYW5nZT17dXBkYXRlSHN2YX0gLz5cbiAgICAgIDxIdWUgaHVlPXtoc3ZhLmh9IG9uQ2hhbmdlPXt1cGRhdGVIc3ZhfSAvPlxuICAgICAgPEFscGhhIGhzdmE9e2hzdmF9IG9uQ2hhbmdlPXt1cGRhdGVIc3ZhfSBjbGFzc05hbWU9XCJyZWFjdC1jb2xvcmZ1bF9fbGFzdC1jb250cm9sXCIgLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5cbmltcG9ydCB7IEFscGhhQ29sb3JQaWNrZXIgfSBmcm9tIFwiLi9jb21tb24vQWxwaGFDb2xvclBpY2tlclwiO1xuaW1wb3J0IHsgQ29sb3JNb2RlbCwgQ29sb3JQaWNrZXJCYXNlUHJvcHMsIEhzbGFDb2xvciB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHsgZXF1YWxDb2xvck9iamVjdHMgfSBmcm9tIFwiLi4vdXRpbHMvY29tcGFyZVwiO1xuaW1wb3J0IHsgaHNsYVRvSHN2YSwgaHN2YVRvSHNsYSB9IGZyb20gXCIuLi91dGlscy9jb252ZXJ0XCI7XG5cbmNvbnN0IGNvbG9yTW9kZWw6IENvbG9yTW9kZWw8SHNsYUNvbG9yPiA9IHtcbiAgZGVmYXVsdENvbG9yOiB7IGg6IDAsIHM6IDAsIGw6IDAsIGE6IDEgfSxcbiAgdG9Ic3ZhOiBoc2xhVG9Ic3ZhLFxuICBmcm9tSHN2YTogaHN2YVRvSHNsYSxcbiAgZXF1YWw6IGVxdWFsQ29sb3JPYmplY3RzLFxufTtcblxuZXhwb3J0IGNvbnN0IEhzbGFDb2xvclBpY2tlciA9IChwcm9wczogUGFydGlhbDxDb2xvclBpY2tlckJhc2VQcm9wczxIc2xhQ29sb3I+Pik6IEpTWC5FbGVtZW50ID0+IChcbiAgPEFscGhhQ29sb3JQaWNrZXIgey4uLnByb3BzfSBjb2xvck1vZGVsPXtjb2xvck1vZGVsfSAvPlxuKTtcbiIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IHsgQWxwaGFDb2xvclBpY2tlciB9IGZyb20gXCIuL2NvbW1vbi9BbHBoYUNvbG9yUGlja2VyXCI7XG5pbXBvcnQgeyBDb2xvck1vZGVsLCBDb2xvclBpY2tlckJhc2VQcm9wcyB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHsgZXF1YWxDb2xvclN0cmluZyB9IGZyb20gXCIuLi91dGlscy9jb21wYXJlXCI7XG5pbXBvcnQgeyBoc2xhU3RyaW5nVG9Ic3ZhLCBoc3ZhVG9Ic2xhU3RyaW5nIH0gZnJvbSBcIi4uL3V0aWxzL2NvbnZlcnRcIjtcblxuY29uc3QgY29sb3JNb2RlbDogQ29sb3JNb2RlbDxzdHJpbmc+ID0ge1xuICBkZWZhdWx0Q29sb3I6IFwiaHNsYSgwLCAwJSwgMCUsIDEpXCIsXG4gIHRvSHN2YTogaHNsYVN0cmluZ1RvSHN2YSxcbiAgZnJvbUhzdmE6IGhzdmFUb0hzbGFTdHJpbmcsXG4gIGVxdWFsOiBlcXVhbENvbG9yU3RyaW5nLFxufTtcblxuZXhwb3J0IGNvbnN0IEhzbGFTdHJpbmdDb2xvclBpY2tlciA9IChcbiAgcHJvcHM6IFBhcnRpYWw8Q29sb3JQaWNrZXJCYXNlUHJvcHM8c3RyaW5nPj5cbik6IEpTWC5FbGVtZW50ID0+IDxBbHBoYUNvbG9yUGlja2VyIHsuLi5wcm9wc30gY29sb3JNb2RlbD17Y29sb3JNb2RlbH0gLz47XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5cbmltcG9ydCB7IENvbG9yUGlja2VyIH0gZnJvbSBcIi4vY29tbW9uL0NvbG9yUGlja2VyXCI7XG5pbXBvcnQgeyBDb2xvck1vZGVsLCBDb2xvclBpY2tlckJhc2VQcm9wcywgSHNsQ29sb3IgfSBmcm9tIFwiLi4vdHlwZXNcIjtcbmltcG9ydCB7IGVxdWFsQ29sb3JPYmplY3RzIH0gZnJvbSBcIi4uL3V0aWxzL2NvbXBhcmVcIjtcbmltcG9ydCB7IGhzbGFUb0hzdmEsIGhzdmFUb0hzbGEsIGhzbGFUb0hzbCB9IGZyb20gXCIuLi91dGlscy9jb252ZXJ0XCI7XG5cbmNvbnN0IGNvbG9yTW9kZWw6IENvbG9yTW9kZWw8SHNsQ29sb3I+ID0ge1xuICBkZWZhdWx0Q29sb3I6IHsgaDogMCwgczogMCwgbDogMCB9LFxuICB0b0hzdmE6ICh7IGgsIHMsIGwgfSkgPT4gaHNsYVRvSHN2YSh7IGgsIHMsIGwsIGE6IDEgfSksXG4gIGZyb21Ic3ZhOiAoaHN2YSkgPT4gaHNsYVRvSHNsKGhzdmFUb0hzbGEoaHN2YSkpLFxuICBlcXVhbDogZXF1YWxDb2xvck9iamVjdHMsXG59O1xuXG5leHBvcnQgY29uc3QgSHNsQ29sb3JQaWNrZXIgPSAocHJvcHM6IFBhcnRpYWw8Q29sb3JQaWNrZXJCYXNlUHJvcHM8SHNsQ29sb3I+Pik6IEpTWC5FbGVtZW50ID0+IChcbiAgPENvbG9yUGlja2VyIHsuLi5wcm9wc30gY29sb3JNb2RlbD17Y29sb3JNb2RlbH0gLz5cbik7XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5cbmltcG9ydCB7IENvbG9yUGlja2VyIH0gZnJvbSBcIi4vY29tbW9uL0NvbG9yUGlja2VyXCI7XG5pbXBvcnQgeyBDb2xvck1vZGVsLCBDb2xvclBpY2tlckJhc2VQcm9wcyB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHsgZXF1YWxDb2xvclN0cmluZyB9IGZyb20gXCIuLi91dGlscy9jb21wYXJlXCI7XG5pbXBvcnQgeyBoc2xTdHJpbmdUb0hzdmEsIGhzdmFUb0hzbFN0cmluZyB9IGZyb20gXCIuLi91dGlscy9jb252ZXJ0XCI7XG5cbmNvbnN0IGNvbG9yTW9kZWw6IENvbG9yTW9kZWw8c3RyaW5nPiA9IHtcbiAgZGVmYXVsdENvbG9yOiBcImhzbCgwLCAwJSwgMCUpXCIsXG4gIHRvSHN2YTogaHNsU3RyaW5nVG9Ic3ZhLFxuICBmcm9tSHN2YTogaHN2YVRvSHNsU3RyaW5nLFxuICBlcXVhbDogZXF1YWxDb2xvclN0cmluZyxcbn07XG5cbmV4cG9ydCBjb25zdCBIc2xTdHJpbmdDb2xvclBpY2tlciA9IChwcm9wczogUGFydGlhbDxDb2xvclBpY2tlckJhc2VQcm9wczxzdHJpbmc+Pik6IEpTWC5FbGVtZW50ID0+IChcbiAgPENvbG9yUGlja2VyIHsuLi5wcm9wc30gY29sb3JNb2RlbD17Y29sb3JNb2RlbH0gLz5cbik7XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5cbmltcG9ydCB7IEFscGhhQ29sb3JQaWNrZXIgfSBmcm9tIFwiLi9jb21tb24vQWxwaGFDb2xvclBpY2tlclwiO1xuaW1wb3J0IHsgQ29sb3JNb2RlbCwgQ29sb3JQaWNrZXJCYXNlUHJvcHMsIEhzdmFDb2xvciB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHsgZXF1YWxDb2xvck9iamVjdHMgfSBmcm9tIFwiLi4vdXRpbHMvY29tcGFyZVwiO1xuaW1wb3J0IHsgcm91bmRIc3ZhIH0gZnJvbSBcIi4uL3V0aWxzL2NvbnZlcnRcIjtcblxuY29uc3QgY29sb3JNb2RlbDogQ29sb3JNb2RlbDxIc3ZhQ29sb3I+ID0ge1xuICBkZWZhdWx0Q29sb3I6IHsgaDogMCwgczogMCwgdjogMCwgYTogMSB9LFxuICB0b0hzdmE6IChoc3ZhKSA9PiBoc3ZhLFxuICBmcm9tSHN2YTogcm91bmRIc3ZhLFxuICBlcXVhbDogZXF1YWxDb2xvck9iamVjdHMsXG59O1xuXG5leHBvcnQgY29uc3QgSHN2YUNvbG9yUGlja2VyID0gKHByb3BzOiBQYXJ0aWFsPENvbG9yUGlja2VyQmFzZVByb3BzPEhzdmFDb2xvcj4+KTogSlNYLkVsZW1lbnQgPT4gKFxuICA8QWxwaGFDb2xvclBpY2tlciB7Li4ucHJvcHN9IGNvbG9yTW9kZWw9e2NvbG9yTW9kZWx9IC8+XG4pO1xuIiwiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuXG5pbXBvcnQgeyBBbHBoYUNvbG9yUGlja2VyIH0gZnJvbSBcIi4vY29tbW9uL0FscGhhQ29sb3JQaWNrZXJcIjtcbmltcG9ydCB7IENvbG9yTW9kZWwsIENvbG9yUGlja2VyQmFzZVByb3BzIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5pbXBvcnQgeyBlcXVhbENvbG9yU3RyaW5nIH0gZnJvbSBcIi4uL3V0aWxzL2NvbXBhcmVcIjtcbmltcG9ydCB7IGhzdmFTdHJpbmdUb0hzdmEsIGhzdmFUb0hzdmFTdHJpbmcgfSBmcm9tIFwiLi4vdXRpbHMvY29udmVydFwiO1xuXG5jb25zdCBjb2xvck1vZGVsOiBDb2xvck1vZGVsPHN0cmluZz4gPSB7XG4gIGRlZmF1bHRDb2xvcjogXCJoc3ZhKDAsIDAlLCAwJSwgMSlcIixcbiAgdG9Ic3ZhOiBoc3ZhU3RyaW5nVG9Ic3ZhLFxuICBmcm9tSHN2YTogaHN2YVRvSHN2YVN0cmluZyxcbiAgZXF1YWw6IGVxdWFsQ29sb3JTdHJpbmcsXG59O1xuXG5leHBvcnQgY29uc3QgSHN2YVN0cmluZ0NvbG9yUGlja2VyID0gKFxuICBwcm9wczogUGFydGlhbDxDb2xvclBpY2tlckJhc2VQcm9wczxzdHJpbmc+PlxuKTogSlNYLkVsZW1lbnQgPT4gPEFscGhhQ29sb3JQaWNrZXIgey4uLnByb3BzfSBjb2xvck1vZGVsPXtjb2xvck1vZGVsfSAvPjtcbiIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IHsgQ29sb3JQaWNrZXIgfSBmcm9tIFwiLi9jb21tb24vQ29sb3JQaWNrZXJcIjtcbmltcG9ydCB7IENvbG9yTW9kZWwsIENvbG9yUGlja2VyQmFzZVByb3BzLCBIc3ZDb2xvciB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHsgZXF1YWxDb2xvck9iamVjdHMgfSBmcm9tIFwiLi4vdXRpbHMvY29tcGFyZVwiO1xuaW1wb3J0IHsgaHN2YVRvSHN2IH0gZnJvbSBcIi4uL3V0aWxzL2NvbnZlcnRcIjtcblxuY29uc3QgY29sb3JNb2RlbDogQ29sb3JNb2RlbDxIc3ZDb2xvcj4gPSB7XG4gIGRlZmF1bHRDb2xvcjogeyBoOiAwLCBzOiAwLCB2OiAwIH0sXG4gIHRvSHN2YTogKHsgaCwgcywgdiB9KSA9PiAoeyBoLCBzLCB2LCBhOiAxIH0pLFxuICBmcm9tSHN2YTogaHN2YVRvSHN2LFxuICBlcXVhbDogZXF1YWxDb2xvck9iamVjdHMsXG59O1xuXG5leHBvcnQgY29uc3QgSHN2Q29sb3JQaWNrZXIgPSAocHJvcHM6IFBhcnRpYWw8Q29sb3JQaWNrZXJCYXNlUHJvcHM8SHN2Q29sb3I+Pik6IEpTWC5FbGVtZW50ID0+IChcbiAgPENvbG9yUGlja2VyIHsuLi5wcm9wc30gY29sb3JNb2RlbD17Y29sb3JNb2RlbH0gLz5cbik7XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5cbmltcG9ydCB7IENvbG9yUGlja2VyIH0gZnJvbSBcIi4vY29tbW9uL0NvbG9yUGlja2VyXCI7XG5pbXBvcnQgeyBDb2xvck1vZGVsLCBDb2xvclBpY2tlckJhc2VQcm9wcyB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHsgZXF1YWxDb2xvclN0cmluZyB9IGZyb20gXCIuLi91dGlscy9jb21wYXJlXCI7XG5pbXBvcnQgeyBoc3ZTdHJpbmdUb0hzdmEsIGhzdmFUb0hzdlN0cmluZyB9IGZyb20gXCIuLi91dGlscy9jb252ZXJ0XCI7XG5cbmNvbnN0IGNvbG9yTW9kZWw6IENvbG9yTW9kZWw8c3RyaW5nPiA9IHtcbiAgZGVmYXVsdENvbG9yOiBcImhzdigwLCAwJSwgMCUpXCIsXG4gIHRvSHN2YTogaHN2U3RyaW5nVG9Ic3ZhLFxuICBmcm9tSHN2YTogaHN2YVRvSHN2U3RyaW5nLFxuICBlcXVhbDogZXF1YWxDb2xvclN0cmluZyxcbn07XG5cbmV4cG9ydCBjb25zdCBIc3ZTdHJpbmdDb2xvclBpY2tlciA9IChwcm9wczogUGFydGlhbDxDb2xvclBpY2tlckJhc2VQcm9wczxzdHJpbmc+Pik6IEpTWC5FbGVtZW50ID0+IChcbiAgPENvbG9yUGlja2VyIHsuLi5wcm9wc30gY29sb3JNb2RlbD17Y29sb3JNb2RlbH0gLz5cbik7XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5cbmltcG9ydCB7IEFscGhhQ29sb3JQaWNrZXIgfSBmcm9tIFwiLi9jb21tb24vQWxwaGFDb2xvclBpY2tlclwiO1xuaW1wb3J0IHsgQ29sb3JNb2RlbCwgQ29sb3JQaWNrZXJCYXNlUHJvcHMsIFJnYmFDb2xvciB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHsgZXF1YWxDb2xvck9iamVjdHMgfSBmcm9tIFwiLi4vdXRpbHMvY29tcGFyZVwiO1xuaW1wb3J0IHsgcmdiYVRvSHN2YSwgaHN2YVRvUmdiYSB9IGZyb20gXCIuLi91dGlscy9jb252ZXJ0XCI7XG5cbmNvbnN0IGNvbG9yTW9kZWw6IENvbG9yTW9kZWw8UmdiYUNvbG9yPiA9IHtcbiAgZGVmYXVsdENvbG9yOiB7IHI6IDAsIGc6IDAsIGI6IDAsIGE6IDEgfSxcbiAgdG9Ic3ZhOiByZ2JhVG9Ic3ZhLFxuICBmcm9tSHN2YTogaHN2YVRvUmdiYSxcbiAgZXF1YWw6IGVxdWFsQ29sb3JPYmplY3RzLFxufTtcblxuZXhwb3J0IGNvbnN0IFJnYmFDb2xvclBpY2tlciA9IChwcm9wczogUGFydGlhbDxDb2xvclBpY2tlckJhc2VQcm9wczxSZ2JhQ29sb3I+Pik6IEpTWC5FbGVtZW50ID0+IChcbiAgPEFscGhhQ29sb3JQaWNrZXIgey4uLnByb3BzfSBjb2xvck1vZGVsPXtjb2xvck1vZGVsfSAvPlxuKTtcbiIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IHsgQWxwaGFDb2xvclBpY2tlciB9IGZyb20gXCIuL2NvbW1vbi9BbHBoYUNvbG9yUGlja2VyXCI7XG5pbXBvcnQgeyBDb2xvck1vZGVsLCBDb2xvclBpY2tlckJhc2VQcm9wcyB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHsgZXF1YWxDb2xvclN0cmluZyB9IGZyb20gXCIuLi91dGlscy9jb21wYXJlXCI7XG5pbXBvcnQgeyByZ2JhU3RyaW5nVG9Ic3ZhLCBoc3ZhVG9SZ2JhU3RyaW5nIH0gZnJvbSBcIi4uL3V0aWxzL2NvbnZlcnRcIjtcblxuY29uc3QgY29sb3JNb2RlbDogQ29sb3JNb2RlbDxzdHJpbmc+ID0ge1xuICBkZWZhdWx0Q29sb3I6IFwicmdiYSgwLCAwLCAwLCAxKVwiLFxuICB0b0hzdmE6IHJnYmFTdHJpbmdUb0hzdmEsXG4gIGZyb21Ic3ZhOiBoc3ZhVG9SZ2JhU3RyaW5nLFxuICBlcXVhbDogZXF1YWxDb2xvclN0cmluZyxcbn07XG5cbmV4cG9ydCBjb25zdCBSZ2JhU3RyaW5nQ29sb3JQaWNrZXIgPSAoXG4gIHByb3BzOiBQYXJ0aWFsPENvbG9yUGlja2VyQmFzZVByb3BzPHN0cmluZz4+XG4pOiBKU1guRWxlbWVudCA9PiA8QWxwaGFDb2xvclBpY2tlciB7Li4ucHJvcHN9IGNvbG9yTW9kZWw9e2NvbG9yTW9kZWx9IC8+O1xuIiwiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuXG5pbXBvcnQgeyBDb2xvclBpY2tlciB9IGZyb20gXCIuL2NvbW1vbi9Db2xvclBpY2tlclwiO1xuaW1wb3J0IHsgQ29sb3JNb2RlbCwgQ29sb3JQaWNrZXJCYXNlUHJvcHMsIFJnYkNvbG9yIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5pbXBvcnQgeyBlcXVhbENvbG9yT2JqZWN0cyB9IGZyb20gXCIuLi91dGlscy9jb21wYXJlXCI7XG5pbXBvcnQgeyByZ2JhVG9Ic3ZhLCBoc3ZhVG9SZ2JhLCByZ2JhVG9SZ2IgfSBmcm9tIFwiLi4vdXRpbHMvY29udmVydFwiO1xuXG5jb25zdCBjb2xvck1vZGVsOiBDb2xvck1vZGVsPFJnYkNvbG9yPiA9IHtcbiAgZGVmYXVsdENvbG9yOiB7IHI6IDAsIGc6IDAsIGI6IDAgfSxcbiAgdG9Ic3ZhOiAoeyByLCBnLCBiIH0pID0+IHJnYmFUb0hzdmEoeyByLCBnLCBiLCBhOiAxIH0pLFxuICBmcm9tSHN2YTogKGhzdmEpID0+IHJnYmFUb1JnYihoc3ZhVG9SZ2JhKGhzdmEpKSxcbiAgZXF1YWw6IGVxdWFsQ29sb3JPYmplY3RzLFxufTtcblxuZXhwb3J0IGNvbnN0IFJnYkNvbG9yUGlja2VyID0gKHByb3BzOiBQYXJ0aWFsPENvbG9yUGlja2VyQmFzZVByb3BzPFJnYkNvbG9yPj4pOiBKU1guRWxlbWVudCA9PiAoXG4gIDxDb2xvclBpY2tlciB7Li4ucHJvcHN9IGNvbG9yTW9kZWw9e2NvbG9yTW9kZWx9IC8+XG4pO1xuIiwiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuXG5pbXBvcnQgeyBDb2xvclBpY2tlciB9IGZyb20gXCIuL2NvbW1vbi9Db2xvclBpY2tlclwiO1xuaW1wb3J0IHsgQ29sb3JNb2RlbCwgQ29sb3JQaWNrZXJCYXNlUHJvcHMgfSBmcm9tIFwiLi4vdHlwZXNcIjtcbmltcG9ydCB7IGVxdWFsQ29sb3JTdHJpbmcgfSBmcm9tIFwiLi4vdXRpbHMvY29tcGFyZVwiO1xuaW1wb3J0IHsgcmdiU3RyaW5nVG9Ic3ZhLCBoc3ZhVG9SZ2JTdHJpbmcgfSBmcm9tIFwiLi4vdXRpbHMvY29udmVydFwiO1xuXG5jb25zdCBjb2xvck1vZGVsOiBDb2xvck1vZGVsPHN0cmluZz4gPSB7XG4gIGRlZmF1bHRDb2xvcjogXCJyZ2IoMCwgMCwgMClcIixcbiAgdG9Ic3ZhOiByZ2JTdHJpbmdUb0hzdmEsXG4gIGZyb21Ic3ZhOiBoc3ZhVG9SZ2JTdHJpbmcsXG4gIGVxdWFsOiBlcXVhbENvbG9yU3RyaW5nLFxufTtcblxuZXhwb3J0IGNvbnN0IFJnYlN0cmluZ0NvbG9yUGlja2VyID0gKHByb3BzOiBQYXJ0aWFsPENvbG9yUGlja2VyQmFzZVByb3BzPHN0cmluZz4+KTogSlNYLkVsZW1lbnQgPT4gKFxuICA8Q29sb3JQaWNrZXIgey4uLnByb3BzfSBjb2xvck1vZGVsPXtjb2xvck1vZGVsfSAvPlxuKTtcbiIsImNvbnN0IG1hdGNoZXIgPSAvXiM/KFswLTlBLUZdezMsOH0pJC9pO1xuXG5leHBvcnQgY29uc3QgdmFsaWRIZXggPSAodmFsdWU6IHN0cmluZywgYWxwaGE/OiBib29sZWFuKTogYm9vbGVhbiA9PiB7XG4gIGNvbnN0IG1hdGNoID0gbWF0Y2hlci5leGVjKHZhbHVlKTtcbiAgY29uc3QgbGVuZ3RoID0gbWF0Y2ggPyBtYXRjaFsxXS5sZW5ndGggOiAwO1xuXG4gIHJldHVybiAoXG4gICAgbGVuZ3RoID09PSAzIHx8IC8vICcjcmdiJyBmb3JtYXRcbiAgICBsZW5ndGggPT09IDYgfHwgLy8gJyNycmdnYmInIGZvcm1hdFxuICAgICghIWFscGhhICYmIGxlbmd0aCA9PT0gNCkgfHwgLy8gJyNyZ2JhJyBmb3JtYXRcbiAgICAoISFhbHBoYSAmJiBsZW5ndGggPT09IDgpIC8vICcjcnJnZ2JiYWEnIGZvcm1hdFxuICApO1xufTtcbiIsImltcG9ydCBSZWFjdCwgeyB1c2VTdGF0ZSwgdXNlRWZmZWN0LCB1c2VDYWxsYmFjayB9IGZyb20gXCJyZWFjdFwiO1xuXG5pbXBvcnQgeyB1c2VFdmVudENhbGxiYWNrIH0gZnJvbSBcIi4uLy4uL2hvb2tzL3VzZUV2ZW50Q2FsbGJhY2tcIjtcbmltcG9ydCB7IENvbG9ySW5wdXRCYXNlUHJvcHMgfSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcblxuaW50ZXJmYWNlIFByb3BzIGV4dGVuZHMgQ29sb3JJbnB1dEJhc2VQcm9wcyB7XG4gIC8qKiBCbG9ja3MgdHlwaW5nIGludmFsaWQgY2hhcmFjdGVycyBhbmQgbGltaXRzIHN0cmluZyBsZW5ndGggKi9cbiAgZXNjYXBlOiAodmFsdWU6IHN0cmluZykgPT4gc3RyaW5nO1xuICAvKiogQ2hlY2tzIHRoYXQgdmFsdWUgaXMgdmFsaWQgY29sb3Igc3RyaW5nICovXG4gIHZhbGlkYXRlOiAodmFsdWU6IHN0cmluZykgPT4gYm9vbGVhbjtcbiAgLyoqIFByb2Nlc3NlcyB2YWx1ZSBiZWZvcmUgZGlzcGxheWluZyBpdCBpbiB0aGUgaW5wdXQgKi9cbiAgZm9ybWF0PzogKHZhbHVlOiBzdHJpbmcpID0+IHN0cmluZztcbiAgLyoqIFByb2Nlc3NlcyB2YWx1ZSBiZWZvcmUgc2VuZGluZyBpdCBpbiBgb25DaGFuZ2VgICovXG4gIHByb2Nlc3M/OiAodmFsdWU6IHN0cmluZykgPT4gc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgQ29sb3JJbnB1dCA9IChwcm9wczogUHJvcHMpOiBKU1guRWxlbWVudCA9PiB7XG4gIGNvbnN0IHsgY29sb3IgPSBcIlwiLCBvbkNoYW5nZSwgb25CbHVyLCBlc2NhcGUsIHZhbGlkYXRlLCBmb3JtYXQsIHByb2Nlc3MsIC4uLnJlc3QgfSA9IHByb3BzO1xuICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlKCgpID0+IGVzY2FwZShjb2xvcikpO1xuICBjb25zdCBvbkNoYW5nZUNhbGxiYWNrID0gdXNlRXZlbnRDYWxsYmFjazxzdHJpbmc+KG9uQ2hhbmdlKTtcbiAgY29uc3Qgb25CbHVyQ2FsbGJhY2sgPSB1c2VFdmVudENhbGxiYWNrPFJlYWN0LkZvY3VzRXZlbnQ8SFRNTElucHV0RWxlbWVudD4+KG9uQmx1cik7XG5cbiAgLy8gVHJpZ2dlciBgb25DaGFuZ2VgIGhhbmRsZXIgb25seSBpZiB0aGUgaW5wdXQgdmFsdWUgaXMgYSB2YWxpZCBjb2xvclxuICBjb25zdCBoYW5kbGVDaGFuZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAoZTogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHtcbiAgICAgIGNvbnN0IGlucHV0VmFsdWUgPSBlc2NhcGUoZS50YXJnZXQudmFsdWUpO1xuICAgICAgc2V0VmFsdWUoaW5wdXRWYWx1ZSk7XG4gICAgICBpZiAodmFsaWRhdGUoaW5wdXRWYWx1ZSkpIG9uQ2hhbmdlQ2FsbGJhY2socHJvY2VzcyA/IHByb2Nlc3MoaW5wdXRWYWx1ZSkgOiBpbnB1dFZhbHVlKTtcbiAgICB9LFxuICAgIFtlc2NhcGUsIHByb2Nlc3MsIHZhbGlkYXRlLCBvbkNoYW5nZUNhbGxiYWNrXVxuICApO1xuXG4gIC8vIFRha2UgdGhlIGNvbG9yIGZyb20gcHJvcHMgaWYgdGhlIGxhc3QgdHlwZWQgY29sb3IgKGluIGxvY2FsIHN0YXRlKSBpcyBub3QgdmFsaWRcbiAgY29uc3QgaGFuZGxlQmx1ciA9IHVzZUNhbGxiYWNrKFxuICAgIChlOiBSZWFjdC5Gb2N1c0V2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB7XG4gICAgICBpZiAoIXZhbGlkYXRlKGUudGFyZ2V0LnZhbHVlKSkgc2V0VmFsdWUoZXNjYXBlKGNvbG9yKSk7XG4gICAgICBvbkJsdXJDYWxsYmFjayhlKTtcbiAgICB9LFxuICAgIFtjb2xvciwgZXNjYXBlLCB2YWxpZGF0ZSwgb25CbHVyQ2FsbGJhY2tdXG4gICk7XG5cbiAgLy8gVXBkYXRlIHRoZSBsb2NhbCBzdGF0ZSB3aGVuIGBjb2xvcmAgcHJvcGVydHkgdmFsdWUgaXMgY2hhbmdlZFxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNldFZhbHVlKGVzY2FwZShjb2xvcikpO1xuICB9LCBbY29sb3IsIGVzY2FwZV0pO1xuXG4gIHJldHVybiAoXG4gICAgPGlucHV0XG4gICAgICB7Li4ucmVzdH1cbiAgICAgIHZhbHVlPXtmb3JtYXQgPyBmb3JtYXQodmFsdWUpIDogdmFsdWV9XG4gICAgICBzcGVsbENoZWNrPVwiZmFsc2VcIiAvLyB0aGUgZWxlbWVudCBzaG91bGQgbm90IGJlIGNoZWNrZWQgZm9yIHNwZWxsaW5nIGVycm9yc1xuICAgICAgb25DaGFuZ2U9e2hhbmRsZUNoYW5nZX1cbiAgICAgIG9uQmx1cj17aGFuZGxlQmx1cn1cbiAgICAvPlxuICApO1xufTtcbiIsImltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjayB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgQ29sb3JJbnB1dEJhc2VQcm9wcyB9IGZyb20gXCIuLi90eXBlc1wiO1xuXG5pbXBvcnQgeyB2YWxpZEhleCB9IGZyb20gXCIuLi91dGlscy92YWxpZGF0ZVwiO1xuaW1wb3J0IHsgQ29sb3JJbnB1dCB9IGZyb20gXCIuL2NvbW1vbi9Db2xvcklucHV0XCI7XG5cbmludGVyZmFjZSBIZXhDb2xvcklucHV0UHJvcHMgZXh0ZW5kcyBDb2xvcklucHV0QmFzZVByb3BzIHtcbiAgLyoqIEVuYWJsZXMgYCNgIHByZWZpeCBkaXNwbGF5aW5nICovXG4gIHByZWZpeGVkPzogYm9vbGVhbjtcbiAgLyoqIEFsbG93cyBgI3JnYmFgIGFuZCBgI3JyZ2diYmFhYCBjb2xvciBmb3JtYXRzICovXG4gIGFscGhhPzogYm9vbGVhbjtcbn1cblxuLyoqIEFkZHMgXCIjXCIgc3ltYm9sIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHN0cmluZyAqL1xuY29uc3QgcHJlZml4ID0gKHZhbHVlOiBzdHJpbmcpID0+IFwiI1wiICsgdmFsdWU7XG5cbmV4cG9ydCBjb25zdCBIZXhDb2xvcklucHV0ID0gKHByb3BzOiBIZXhDb2xvcklucHV0UHJvcHMpOiBKU1guRWxlbWVudCA9PiB7XG4gIGNvbnN0IHsgcHJlZml4ZWQsIGFscGhhLCAuLi5yZXN0IH0gPSBwcm9wcztcblxuICAvKiogRXNjYXBlcyBhbGwgbm9uLWhleGFkZWNpbWFsIGNoYXJhY3RlcnMgaW5jbHVkaW5nIFwiI1wiICovXG4gIGNvbnN0IGVzY2FwZSA9IHVzZUNhbGxiYWNrKFxuICAgICh2YWx1ZTogc3RyaW5nKSA9PiB2YWx1ZS5yZXBsYWNlKC8oW14wLTlBLUZdKykvZ2ksIFwiXCIpLnN1YnN0cigwLCBhbHBoYSA/IDggOiA2KSxcbiAgICBbYWxwaGFdXG4gICk7XG5cbiAgLyoqIFZhbGlkYXRlcyBoZXhhZGVjaW1hbCBzdHJpbmdzICovXG4gIGNvbnN0IHZhbGlkYXRlID0gdXNlQ2FsbGJhY2soKHZhbHVlOiBzdHJpbmcpID0+IHZhbGlkSGV4KHZhbHVlLCBhbHBoYSksIFthbHBoYV0pO1xuXG4gIHJldHVybiAoXG4gICAgPENvbG9ySW5wdXRcbiAgICAgIHsuLi5yZXN0fVxuICAgICAgZXNjYXBlPXtlc2NhcGV9XG4gICAgICBmb3JtYXQ9e3ByZWZpeGVkID8gcHJlZml4IDogdW5kZWZpbmVkfVxuICAgICAgcHJvY2Vzcz17cHJlZml4fVxuICAgICAgdmFsaWRhdGU9e3ZhbGlkYXRlfVxuICAgIC8+XG4gICk7XG59O1xuIiwiaW1wb3J0IFwiY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC5rZXlzLmpzXCI7XG5pbXBvcnQgXCJjb3JlLWpzL21vZHVsZXMvZXMuc3ltYm9sLmpzXCI7XG5pbXBvcnQgXCJjb3JlLWpzL21vZHVsZXMvZXMuc3ltYm9sLmRlc2NyaXB0aW9uLmpzXCI7XG5pbXBvcnQgXCJjb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LnRvLXN0cmluZy5qc1wiO1xuaW1wb3J0IFwiY29yZS1qcy9tb2R1bGVzL2VzLnN5bWJvbC5pdGVyYXRvci5qc1wiO1xuaW1wb3J0IFwiY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5pdGVyYXRvci5qc1wiO1xuaW1wb3J0IFwiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5Lml0ZXJhdG9yLmpzXCI7XG5pbXBvcnQgXCJjb3JlLWpzL21vZHVsZXMvd2ViLmRvbS1jb2xsZWN0aW9ucy5pdGVyYXRvci5qc1wiO1xuaW1wb3J0IFwiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LmZyb20uanNcIjtcblxudmFyIF9Db2xvclBpY2tlciwgX2ZhbGxiYWNrQ29sb3I7XG5cbmZ1bmN0aW9uIF9zbGljZWRUb0FycmF5KGFyciwgaSkgeyByZXR1cm4gX2FycmF5V2l0aEhvbGVzKGFycikgfHwgX2l0ZXJhYmxlVG9BcnJheUxpbWl0KGFyciwgaSkgfHwgX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5KGFyciwgaSkgfHwgX25vbkl0ZXJhYmxlUmVzdCgpOyB9XG5cbmZ1bmN0aW9uIF9ub25JdGVyYWJsZVJlc3QoKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIik7IH1cblxuZnVuY3Rpb24gX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5KG8sIG1pbkxlbikgeyBpZiAoIW8pIHJldHVybjsgaWYgKHR5cGVvZiBvID09PSBcInN0cmluZ1wiKSByZXR1cm4gX2FycmF5TGlrZVRvQXJyYXkobywgbWluTGVuKTsgdmFyIG4gPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobykuc2xpY2UoOCwgLTEpOyBpZiAobiA9PT0gXCJPYmplY3RcIiAmJiBvLmNvbnN0cnVjdG9yKSBuID0gby5jb25zdHJ1Y3Rvci5uYW1lOyBpZiAobiA9PT0gXCJNYXBcIiB8fCBuID09PSBcIlNldFwiKSByZXR1cm4gQXJyYXkuZnJvbShvKTsgaWYgKG4gPT09IFwiQXJndW1lbnRzXCIgfHwgL14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QobikpIHJldHVybiBfYXJyYXlMaWtlVG9BcnJheShvLCBtaW5MZW4pOyB9XG5cbmZ1bmN0aW9uIF9hcnJheUxpa2VUb0FycmF5KGFyciwgbGVuKSB7IGlmIChsZW4gPT0gbnVsbCB8fCBsZW4gPiBhcnIubGVuZ3RoKSBsZW4gPSBhcnIubGVuZ3RoOyBmb3IgKHZhciBpID0gMCwgYXJyMiA9IG5ldyBBcnJheShsZW4pOyBpIDwgbGVuOyBpKyspIHsgYXJyMltpXSA9IGFycltpXTsgfSByZXR1cm4gYXJyMjsgfVxuXG5mdW5jdGlvbiBfaXRlcmFibGVUb0FycmF5TGltaXQoYXJyLCBpKSB7IGlmICh0eXBlb2YgU3ltYm9sID09PSBcInVuZGVmaW5lZFwiIHx8ICEoU3ltYm9sLml0ZXJhdG9yIGluIE9iamVjdChhcnIpKSkgcmV0dXJuOyB2YXIgX2FyciA9IFtdOyB2YXIgX24gPSB0cnVlOyB2YXIgX2QgPSBmYWxzZTsgdmFyIF9lID0gdW5kZWZpbmVkOyB0cnkgeyBmb3IgKHZhciBfaSA9IGFycltTeW1ib2wuaXRlcmF0b3JdKCksIF9zOyAhKF9uID0gKF9zID0gX2kubmV4dCgpKS5kb25lKTsgX24gPSB0cnVlKSB7IF9hcnIucHVzaChfcy52YWx1ZSk7IGlmIChpICYmIF9hcnIubGVuZ3RoID09PSBpKSBicmVhazsgfSB9IGNhdGNoIChlcnIpIHsgX2QgPSB0cnVlOyBfZSA9IGVycjsgfSBmaW5hbGx5IHsgdHJ5IHsgaWYgKCFfbiAmJiBfaVtcInJldHVyblwiXSAhPSBudWxsKSBfaVtcInJldHVyblwiXSgpOyB9IGZpbmFsbHkgeyBpZiAoX2QpIHRocm93IF9lOyB9IH0gcmV0dXJuIF9hcnI7IH1cblxuZnVuY3Rpb24gX2FycmF5V2l0aEhvbGVzKGFycikgeyBpZiAoQXJyYXkuaXNBcnJheShhcnIpKSByZXR1cm4gYXJyOyB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpIHsgaWYgKGtleSBpbiBvYmopIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7IHZhbHVlOiB2YWx1ZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSB9KTsgfSBlbHNlIHsgb2JqW2tleV0gPSB2YWx1ZTsgfSByZXR1cm4gb2JqOyB9XG5cbmZ1bmN0aW9uIF9leHRlbmRzKCkgeyBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07IHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9XG5cbmZ1bmN0aW9uIF9vYmplY3RXaXRob3V0UHJvcGVydGllcyhzb3VyY2UsIGV4Y2x1ZGVkKSB7IGlmIChzb3VyY2UgPT0gbnVsbCkgcmV0dXJuIHt9OyB2YXIgdGFyZ2V0ID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2Uoc291cmNlLCBleGNsdWRlZCk7IHZhciBrZXksIGk7IGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7IHZhciBzb3VyY2VTeW1ib2xLZXlzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzb3VyY2UpOyBmb3IgKGkgPSAwOyBpIDwgc291cmNlU3ltYm9sS2V5cy5sZW5ndGg7IGkrKykgeyBrZXkgPSBzb3VyY2VTeW1ib2xLZXlzW2ldOyBpZiAoZXhjbHVkZWQuaW5kZXhPZihrZXkpID49IDApIGNvbnRpbnVlOyBpZiAoIU9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzb3VyY2UsIGtleSkpIGNvbnRpbnVlOyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gcmV0dXJuIHRhcmdldDsgfVxuXG5mdW5jdGlvbiBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShzb3VyY2UsIGV4Y2x1ZGVkKSB7IGlmIChzb3VyY2UgPT0gbnVsbCkgcmV0dXJuIHt9OyB2YXIgdGFyZ2V0ID0ge307IHZhciBzb3VyY2VLZXlzID0gT2JqZWN0LmtleXMoc291cmNlKTsgdmFyIGtleSwgaTsgZm9yIChpID0gMDsgaSA8IHNvdXJjZUtleXMubGVuZ3RoOyBpKyspIHsga2V5ID0gc291cmNlS2V5c1tpXTsgaWYgKGV4Y2x1ZGVkLmluZGV4T2Yoa2V5KSA+PSAwKSBjb250aW51ZTsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSByZXR1cm4gdGFyZ2V0OyB9XG5cbmltcG9ydCBcImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5jb25jYXQuanNcIjtcbmltcG9ydCBcImNvcmUtanMvbW9kdWxlcy9lcy5vYmplY3QuYXNzaWduLmpzXCI7XG5pbXBvcnQgXCJjb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LnZhbHVlcy5qc1wiO1xuaW1wb3J0IFwiY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5tYXRjaC5qc1wiO1xuaW1wb3J0IFwiY29yZS1qcy9tb2R1bGVzL2VzLnJlZ2V4cC5leGVjLmpzXCI7XG5pbXBvcnQgXCJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkubWFwLmpzXCI7XG5pbXBvcnQgXCJjb3JlLWpzL21vZHVsZXMvZXMubnVtYmVyLmNvbnN0cnVjdG9yLmpzXCI7XG5pbXBvcnQgXCJjb3JlLWpzL21vZHVsZXMvZXMuc3RyaW5nLnJlcGxhY2UuanNcIjtcbmltcG9ydCBcImNvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcuc3RhcnRzLXdpdGguanNcIjtcbmltcG9ydCBcImNvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcuc3BsaXQuanNcIjtcbmltcG9ydCBcImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5zbGljZS5qc1wiO1xuaW1wb3J0IFwiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LmZpbHRlci5qc1wiO1xuaW1wb3J0IFwiY29yZS1qcy9tb2R1bGVzL2VzLmZ1bmN0aW9uLm5hbWUuanNcIjtcbmltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEhleENvbG9yUGlja2VyLCBIc2xhU3RyaW5nQ29sb3JQaWNrZXIsIFJnYmFTdHJpbmdDb2xvclBpY2tlciB9IGZyb20gJ3JlYWN0LWNvbG9yZnVsJztcbmltcG9ydCBjb252ZXJ0IGZyb20gJ2NvbG9yLWNvbnZlcnQnO1xuaW1wb3J0IHRocm90dGxlIGZyb20gJ2xvZGFzaC90aHJvdHRsZSc7XG5pbXBvcnQgeyBzdHlsZWQgfSBmcm9tICdAc3Rvcnlib29rL3RoZW1pbmcnO1xuaW1wb3J0IHsgVG9vbHRpcE5vdGUgfSBmcm9tICcuLi90b29sdGlwL1Rvb2x0aXBOb3RlJztcbmltcG9ydCB7IFdpdGhUb29sdGlwIH0gZnJvbSAnLi4vdG9vbHRpcC9sYXp5LVdpdGhUb29sdGlwJztcbmltcG9ydCB7IEZvcm0gfSBmcm9tICcuLi9mb3JtJztcbmltcG9ydCB7IEljb25zIH0gZnJvbSAnLi4vaWNvbi9pY29uJztcbmltcG9ydCB7IGdldENvbnRyb2xJZCB9IGZyb20gJy4vaGVscGVycyc7XG52YXIgV3JhcHBlciA9IHN0eWxlZC5kaXYoe1xuICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgbWF4V2lkdGg6IDI1MFxufSk7XG52YXIgUGlja2VyVG9vbHRpcCA9IHN0eWxlZChXaXRoVG9vbHRpcCkoe1xuICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgekluZGV4OiAxLFxuICB0b3A6IDQsXG4gIGxlZnQ6IDRcbn0pO1xudmFyIFRvb2x0aXBDb250ZW50ID0gc3R5bGVkLmRpdih7XG4gIHdpZHRoOiAyMDAsXG4gIG1hcmdpbjogNSxcbiAgJy5yZWFjdC1jb2xvcmZ1bF9fc2F0dXJhdGlvbic6IHtcbiAgICBib3JkZXJSYWRpdXM6ICc0cHggNHB4IDAgMCdcbiAgfSxcbiAgJy5yZWFjdC1jb2xvcmZ1bF9faHVlJzoge1xuICAgIGJveFNoYWRvdzogJ2luc2V0IDAgMCAwIDFweCByZ2IoMCAwIDAgLyA1JSknXG4gIH0sXG4gICcucmVhY3QtY29sb3JmdWxfX2xhc3QtY29udHJvbCc6IHtcbiAgICBib3JkZXJSYWRpdXM6ICcwIDAgNHB4IDRweCdcbiAgfVxufSk7XG52YXIgTm90ZSA9IHN0eWxlZChUb29sdGlwTm90ZSkoZnVuY3Rpb24gKF9yZWYpIHtcbiAgdmFyIHRoZW1lID0gX3JlZi50aGVtZTtcbiAgcmV0dXJuIHtcbiAgICBmb250RmFtaWx5OiB0aGVtZS50eXBvZ3JhcGh5LmZvbnRzLmJhc2VcbiAgfTtcbn0pO1xudmFyIFN3YXRjaGVzID0gc3R5bGVkLmRpdih7XG4gIGRpc3BsYXk6ICdncmlkJyxcbiAgZ3JpZFRlbXBsYXRlQ29sdW1uczogJ3JlcGVhdCg5LCAxNnB4KScsXG4gIGdhcDogNixcbiAgcGFkZGluZzogMyxcbiAgbWFyZ2luVG9wOiA1LFxuICB3aWR0aDogMjAwXG59KTtcbnZhciBTd2F0Y2hDb2xvciA9IHN0eWxlZC5kaXYoZnVuY3Rpb24gKF9yZWYyKSB7XG4gIHZhciB0aGVtZSA9IF9yZWYyLnRoZW1lLFxuICAgICAgYWN0aXZlID0gX3JlZjIuYWN0aXZlO1xuICByZXR1cm4ge1xuICAgIHdpZHRoOiAxNixcbiAgICBoZWlnaHQ6IDE2LFxuICAgIGJveFNoYWRvdzogYWN0aXZlID8gXCJcIi5jb25jYXQodGhlbWUuYXBwQm9yZGVyQ29sb3IsIFwiIDAgMCAwIDFweCBpbnNldCwgXCIpLmNvbmNhdCh0aGVtZS5jb2xvci5tZWRpdW1kYXJrLCBcIjUwIDAgMCAwIDRweFwiKSA6IFwiXCIuY29uY2F0KHRoZW1lLmFwcEJvcmRlckNvbG9yLCBcIiAwIDAgMCAxcHggaW5zZXRcIiksXG4gICAgYm9yZGVyUmFkaXVzOiB0aGVtZS5hcHBCb3JkZXJSYWRpdXNcbiAgfTtcbn0pO1xudmFyIHN3YXRjaEJhY2tncm91bmQgPSBcInVybCgnZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTgsPHN2ZyB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiIHdpZHRoPVxcXCIxNlxcXCIgaGVpZ2h0PVxcXCIxNlxcXCIgZmlsbC1vcGFjaXR5PVxcXCIuMDVcXFwiPjxwYXRoIGQ9XFxcIk04IDBoOHY4SDh6TTAgOGg4djhIMHpcXFwiLz48L3N2Zz4nKVwiO1xuXG52YXIgU3dhdGNoID0gZnVuY3Rpb24gU3dhdGNoKF9yZWYzKSB7XG4gIHZhciB2YWx1ZSA9IF9yZWYzLnZhbHVlLFxuICAgICAgYWN0aXZlID0gX3JlZjMuYWN0aXZlLFxuICAgICAgb25DbGljayA9IF9yZWYzLm9uQ2xpY2ssXG4gICAgICBzdHlsZSA9IF9yZWYzLnN0eWxlLFxuICAgICAgcHJvcHMgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMoX3JlZjMsIFtcInZhbHVlXCIsIFwiYWN0aXZlXCIsIFwib25DbGlja1wiLCBcInN0eWxlXCJdKTtcblxuICB2YXIgYmFja2dyb3VuZEltYWdlID0gXCJsaW5lYXItZ3JhZGllbnQoXCIuY29uY2F0KHZhbHVlLCBcIiwgXCIpLmNvbmNhdCh2YWx1ZSwgXCIpLCBcIikuY29uY2F0KHN3YXRjaEJhY2tncm91bmQsIFwiLCBsaW5lYXItZ3JhZGllbnQoI2ZmZiwgI2ZmZilcIik7XG4gIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChTd2F0Y2hDb2xvciwgX2V4dGVuZHMoe30sIHByb3BzLCB7XG4gICAgYWN0aXZlOiBhY3RpdmUsXG4gICAgb25DbGljazogb25DbGljayxcbiAgICBzdHlsZTogT2JqZWN0LmFzc2lnbih7fSwgc3R5bGUsIHtcbiAgICAgIGJhY2tncm91bmRJbWFnZTogYmFja2dyb3VuZEltYWdlXG4gICAgfSlcbiAgfSkpO1xufTtcblxuU3dhdGNoLmRpc3BsYXlOYW1lID0gXCJTd2F0Y2hcIjtcbnZhciBJbnB1dCA9IHN0eWxlZChGb3JtLklucHV0KShmdW5jdGlvbiAoX3JlZjQpIHtcbiAgdmFyIHRoZW1lID0gX3JlZjQudGhlbWU7XG4gIHJldHVybiB7XG4gICAgd2lkdGg6ICcxMDAlJyxcbiAgICBwYWRkaW5nTGVmdDogMzAsXG4gICAgcGFkZGluZ1JpZ2h0OiAzMCxcbiAgICBib3hTaXppbmc6ICdib3JkZXItYm94JyxcbiAgICBmb250RmFtaWx5OiB0aGVtZS50eXBvZ3JhcGh5LmZvbnRzLmJhc2VcbiAgfTtcbn0pO1xudmFyIFRvZ2dsZUljb24gPSBzdHlsZWQoSWNvbnMpKGZ1bmN0aW9uIChfcmVmNSkge1xuICB2YXIgdGhlbWUgPSBfcmVmNS50aGVtZTtcbiAgcmV0dXJuIHtcbiAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICB6SW5kZXg6IDEsXG4gICAgdG9wOiA2LFxuICAgIHJpZ2h0OiA3LFxuICAgIHdpZHRoOiAyMCxcbiAgICBoZWlnaHQ6IDIwLFxuICAgIHBhZGRpbmc6IDQsXG4gICAgYm94U2l6aW5nOiAnYm9yZGVyLWJveCcsXG4gICAgY3Vyc29yOiAncG9pbnRlcicsXG4gICAgY29sb3I6IHRoZW1lLmlucHV0LmNvbG9yXG4gIH07XG59KTtcbnZhciBDb2xvclNwYWNlO1xuXG4oZnVuY3Rpb24gKENvbG9yU3BhY2UpIHtcbiAgQ29sb3JTcGFjZVtcIlJHQlwiXSA9IFwicmdiXCI7XG4gIENvbG9yU3BhY2VbXCJIU0xcIl0gPSBcImhzbFwiO1xuICBDb2xvclNwYWNlW1wiSEVYXCJdID0gXCJoZXhcIjtcbn0pKENvbG9yU3BhY2UgfHwgKENvbG9yU3BhY2UgPSB7fSkpO1xuXG52YXIgQ09MT1JfU1BBQ0VTID0gT2JqZWN0LnZhbHVlcyhDb2xvclNwYWNlKTtcbnZhciBDT0xPUl9SRUdFWFAgPSAvXFwoKFswLTldKyksXFxzKihbMC05XSspJT8sXFxzKihbMC05XSspJT8sP1xccyooWzAtOS5dKyk/XFwpLztcbnZhciBSR0JfUkVHRVhQID0gL15cXHMqcmdiYT9cXCgoWzAtOV0rKSxcXHMqKFswLTldKyksXFxzKihbMC05XSspLD9cXHMqKFswLTkuXSspP1xcKVxccyokL2k7XG52YXIgSFNMX1JFR0VYUCA9IC9eXFxzKmhzbGE/XFwoKFswLTldKyksXFxzKihbMC05XSspJSxcXHMqKFswLTldKyklLD9cXHMqKFswLTkuXSspP1xcKVxccyokL2k7XG52YXIgSEVYX1JFR0VYUCA9IC9eXFxzKiM/KFswLTlhLWZdezN9fFswLTlhLWZdezZ9KVxccyokL2k7XG52YXIgU0hPUlRIRVhfUkVHRVhQID0gL15cXHMqIz8oWzAtOWEtZl17M30pXFxzKiQvaTtcbnZhciBDb2xvclBpY2tlciA9IChfQ29sb3JQaWNrZXIgPSB7fSwgX2RlZmluZVByb3BlcnR5KF9Db2xvclBpY2tlciwgQ29sb3JTcGFjZS5IRVgsIEhleENvbG9yUGlja2VyKSwgX2RlZmluZVByb3BlcnR5KF9Db2xvclBpY2tlciwgQ29sb3JTcGFjZS5SR0IsIFJnYmFTdHJpbmdDb2xvclBpY2tlciksIF9kZWZpbmVQcm9wZXJ0eShfQ29sb3JQaWNrZXIsIENvbG9yU3BhY2UuSFNMLCBIc2xhU3RyaW5nQ29sb3JQaWNrZXIpLCBfQ29sb3JQaWNrZXIpO1xudmFyIGZhbGxiYWNrQ29sb3IgPSAoX2ZhbGxiYWNrQ29sb3IgPSB7fSwgX2RlZmluZVByb3BlcnR5KF9mYWxsYmFja0NvbG9yLCBDb2xvclNwYWNlLkhFWCwgJ3RyYW5zcGFyZW50JyksIF9kZWZpbmVQcm9wZXJ0eShfZmFsbGJhY2tDb2xvciwgQ29sb3JTcGFjZS5SR0IsICdyZ2JhKDAsIDAsIDAsIDApJyksIF9kZWZpbmVQcm9wZXJ0eShfZmFsbGJhY2tDb2xvciwgQ29sb3JTcGFjZS5IU0wsICdoc2xhKDAsIDAlLCAwJSwgMCknKSwgX2ZhbGxiYWNrQ29sb3IpO1xuXG52YXIgc3RyaW5nVG9BcmdzID0gZnVuY3Rpb24gc3RyaW5nVG9BcmdzKHZhbHVlKSB7XG4gIHZhciBtYXRjaCA9IHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB2b2lkIDAgPyB2b2lkIDAgOiB2YWx1ZS5tYXRjaChDT0xPUl9SRUdFWFApO1xuICBpZiAoIW1hdGNoKSByZXR1cm4gWzAsIDAsIDAsIDFdO1xuXG4gIHZhciBfbWF0Y2ggPSBfc2xpY2VkVG9BcnJheShtYXRjaCwgNSksXG4gICAgICB4ID0gX21hdGNoWzFdLFxuICAgICAgeSA9IF9tYXRjaFsyXSxcbiAgICAgIHogPSBfbWF0Y2hbM10sXG4gICAgICBfbWF0Y2gkID0gX21hdGNoWzRdLFxuICAgICAgYSA9IF9tYXRjaCQgPT09IHZvaWQgMCA/IDEgOiBfbWF0Y2gkO1xuXG4gIHJldHVybiBbeCwgeSwgeiwgYV0ubWFwKE51bWJlcik7XG59O1xuXG52YXIgcGFyc2VWYWx1ZSA9IGZ1bmN0aW9uIHBhcnNlVmFsdWUodmFsdWUpIHtcbiAgdmFyIF9yZWYxMjtcblxuICBpZiAoIXZhbHVlKSByZXR1cm4gdW5kZWZpbmVkO1xuICB2YXIgdmFsaWQgPSB0cnVlO1xuXG4gIGlmIChSR0JfUkVHRVhQLnRlc3QodmFsdWUpKSB7XG4gICAgdmFyIF9yZWY4O1xuXG4gICAgdmFyIF9zdHJpbmdUb0FyZ3MgPSBzdHJpbmdUb0FyZ3ModmFsdWUpLFxuICAgICAgICBfc3RyaW5nVG9BcmdzMiA9IF9zbGljZWRUb0FycmF5KF9zdHJpbmdUb0FyZ3MsIDQpLFxuICAgICAgICByID0gX3N0cmluZ1RvQXJnczJbMF0sXG4gICAgICAgIGcgPSBfc3RyaW5nVG9BcmdzMlsxXSxcbiAgICAgICAgYiA9IF9zdHJpbmdUb0FyZ3MyWzJdLFxuICAgICAgICBhID0gX3N0cmluZ1RvQXJnczJbM107XG5cbiAgICB2YXIgX3JlZjYgPSBjb252ZXJ0LnJnYi5oc2woW3IsIGcsIGJdKSB8fCBbMCwgMCwgMF0sXG4gICAgICAgIF9yZWY3ID0gX3NsaWNlZFRvQXJyYXkoX3JlZjYsIDMpLFxuICAgICAgICBoID0gX3JlZjdbMF0sXG4gICAgICAgIHMgPSBfcmVmN1sxXSxcbiAgICAgICAgbCA9IF9yZWY3WzJdO1xuXG4gICAgcmV0dXJuIF9yZWY4ID0ge1xuICAgICAgdmFsaWQ6IHZhbGlkLFxuICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAga2V5d29yZDogY29udmVydC5yZ2Iua2V5d29yZChbciwgZywgYl0pLFxuICAgICAgY29sb3JTcGFjZTogQ29sb3JTcGFjZS5SR0JcbiAgICB9LCBfZGVmaW5lUHJvcGVydHkoX3JlZjgsIENvbG9yU3BhY2UuUkdCLCB2YWx1ZSksIF9kZWZpbmVQcm9wZXJ0eShfcmVmOCwgQ29sb3JTcGFjZS5IU0wsIFwiaHNsYShcIi5jb25jYXQoaCwgXCIsIFwiKS5jb25jYXQocywgXCIlLCBcIikuY29uY2F0KGwsIFwiJSwgXCIpLmNvbmNhdChhLCBcIilcIikpLCBfZGVmaW5lUHJvcGVydHkoX3JlZjgsIENvbG9yU3BhY2UuSEVYLCBcIiNcIi5jb25jYXQoY29udmVydC5yZ2IuaGV4KFtyLCBnLCBiXSkudG9Mb3dlckNhc2UoKSkpLCBfcmVmODtcbiAgfVxuXG4gIGlmIChIU0xfUkVHRVhQLnRlc3QodmFsdWUpKSB7XG4gICAgdmFyIF9yZWYxMTtcblxuICAgIHZhciBfc3RyaW5nVG9BcmdzMyA9IHN0cmluZ1RvQXJncyh2YWx1ZSksXG4gICAgICAgIF9zdHJpbmdUb0FyZ3M0ID0gX3NsaWNlZFRvQXJyYXkoX3N0cmluZ1RvQXJnczMsIDQpLFxuICAgICAgICBfaCA9IF9zdHJpbmdUb0FyZ3M0WzBdLFxuICAgICAgICBfczIgPSBfc3RyaW5nVG9BcmdzNFsxXSxcbiAgICAgICAgX2wgPSBfc3RyaW5nVG9BcmdzNFsyXSxcbiAgICAgICAgX2EgPSBfc3RyaW5nVG9BcmdzNFszXTtcblxuICAgIHZhciBfcmVmOSA9IGNvbnZlcnQuaHNsLnJnYihbX2gsIF9zMiwgX2xdKSB8fCBbMCwgMCwgMF0sXG4gICAgICAgIF9yZWYxMCA9IF9zbGljZWRUb0FycmF5KF9yZWY5LCAzKSxcbiAgICAgICAgX3IgPSBfcmVmMTBbMF0sXG4gICAgICAgIF9nID0gX3JlZjEwWzFdLFxuICAgICAgICBfYiA9IF9yZWYxMFsyXTtcblxuICAgIHJldHVybiBfcmVmMTEgPSB7XG4gICAgICB2YWxpZDogdmFsaWQsXG4gICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICBrZXl3b3JkOiBjb252ZXJ0LmhzbC5rZXl3b3JkKFtfaCwgX3MyLCBfbF0pLFxuICAgICAgY29sb3JTcGFjZTogQ29sb3JTcGFjZS5IU0xcbiAgICB9LCBfZGVmaW5lUHJvcGVydHkoX3JlZjExLCBDb2xvclNwYWNlLlJHQiwgXCJyZ2JhKFwiLmNvbmNhdChfciwgXCIsIFwiKS5jb25jYXQoX2csIFwiLCBcIikuY29uY2F0KF9iLCBcIiwgXCIpLmNvbmNhdChfYSwgXCIpXCIpKSwgX2RlZmluZVByb3BlcnR5KF9yZWYxMSwgQ29sb3JTcGFjZS5IU0wsIHZhbHVlKSwgX2RlZmluZVByb3BlcnR5KF9yZWYxMSwgQ29sb3JTcGFjZS5IRVgsIFwiI1wiLmNvbmNhdChjb252ZXJ0LmhzbC5oZXgoW19oLCBfczIsIF9sXSkudG9Mb3dlckNhc2UoKSkpLCBfcmVmMTE7XG4gIH1cblxuICB2YXIgcGxhaW4gPSB2YWx1ZS5yZXBsYWNlKCcjJywgJycpO1xuICB2YXIgcmdiID0gY29udmVydC5rZXl3b3JkLnJnYihwbGFpbikgfHwgY29udmVydC5oZXgucmdiKHBsYWluKTtcbiAgdmFyIGhzbCA9IGNvbnZlcnQucmdiLmhzbChyZ2IpO1xuICB2YXIgbWFwcGVkID0gdmFsdWU7XG4gIGlmICgvW14jYS1mMC05XS9pLnRlc3QodmFsdWUpKSBtYXBwZWQgPSBwbGFpbjtlbHNlIGlmIChIRVhfUkVHRVhQLnRlc3QodmFsdWUpKSBtYXBwZWQgPSBcIiNcIi5jb25jYXQocGxhaW4pO1xuXG4gIGlmIChtYXBwZWQuc3RhcnRzV2l0aCgnIycpKSB7XG4gICAgdmFsaWQgPSBIRVhfUkVHRVhQLnRlc3QobWFwcGVkKTtcbiAgfSBlbHNlIHtcbiAgICB0cnkge1xuICAgICAgY29udmVydC5rZXl3b3JkLmhleChtYXBwZWQpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHZhbGlkID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIF9yZWYxMiA9IHtcbiAgICB2YWxpZDogdmFsaWQsXG4gICAgdmFsdWU6IG1hcHBlZCxcbiAgICBrZXl3b3JkOiBjb252ZXJ0LnJnYi5rZXl3b3JkKHJnYiksXG4gICAgY29sb3JTcGFjZTogQ29sb3JTcGFjZS5IRVhcbiAgfSwgX2RlZmluZVByb3BlcnR5KF9yZWYxMiwgQ29sb3JTcGFjZS5SR0IsIFwicmdiYShcIi5jb25jYXQocmdiWzBdLCBcIiwgXCIpLmNvbmNhdChyZ2JbMV0sIFwiLCBcIikuY29uY2F0KHJnYlsyXSwgXCIsIDEpXCIpKSwgX2RlZmluZVByb3BlcnR5KF9yZWYxMiwgQ29sb3JTcGFjZS5IU0wsIFwiaHNsYShcIi5jb25jYXQoaHNsWzBdLCBcIiwgXCIpLmNvbmNhdChoc2xbMV0sIFwiJSwgXCIpLmNvbmNhdChoc2xbMl0sIFwiJSwgMSlcIikpLCBfZGVmaW5lUHJvcGVydHkoX3JlZjEyLCBDb2xvclNwYWNlLkhFWCwgbWFwcGVkKSwgX3JlZjEyO1xufTtcblxudmFyIGdldFJlYWxWYWx1ZSA9IGZ1bmN0aW9uIGdldFJlYWxWYWx1ZSh2YWx1ZSwgY29sb3IsIGNvbG9yU3BhY2UpIHtcbiAgaWYgKCF2YWx1ZSB8fCAhKGNvbG9yICE9PSBudWxsICYmIGNvbG9yICE9PSB2b2lkIDAgJiYgY29sb3IudmFsaWQpKSByZXR1cm4gZmFsbGJhY2tDb2xvcltjb2xvclNwYWNlXTtcbiAgaWYgKGNvbG9yU3BhY2UgIT09IENvbG9yU3BhY2UuSEVYKSByZXR1cm4gKGNvbG9yID09PSBudWxsIHx8IGNvbG9yID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjb2xvcltjb2xvclNwYWNlXSkgfHwgZmFsbGJhY2tDb2xvcltjb2xvclNwYWNlXTtcblxuICBpZiAoIWNvbG9yLmhleC5zdGFydHNXaXRoKCcjJykpIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIFwiI1wiLmNvbmNhdChjb252ZXJ0LmtleXdvcmQuaGV4KGNvbG9yLmhleCkpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiBmYWxsYmFja0NvbG9yLmhleDtcbiAgICB9XG4gIH1cblxuICB2YXIgc2hvcnQgPSBjb2xvci5oZXgubWF0Y2goU0hPUlRIRVhfUkVHRVhQKTtcbiAgaWYgKCFzaG9ydCkgcmV0dXJuIEhFWF9SRUdFWFAudGVzdChjb2xvci5oZXgpID8gY29sb3IuaGV4IDogZmFsbGJhY2tDb2xvci5oZXg7XG5cbiAgdmFyIF9zaG9ydCQxJHNwbGl0ID0gc2hvcnRbMV0uc3BsaXQoJycpLFxuICAgICAgX3Nob3J0JDEkc3BsaXQyID0gX3NsaWNlZFRvQXJyYXkoX3Nob3J0JDEkc3BsaXQsIDMpLFxuICAgICAgciA9IF9zaG9ydCQxJHNwbGl0MlswXSxcbiAgICAgIGcgPSBfc2hvcnQkMSRzcGxpdDJbMV0sXG4gICAgICBiID0gX3Nob3J0JDEkc3BsaXQyWzJdO1xuXG4gIHJldHVybiBcIiNcIi5jb25jYXQocikuY29uY2F0KHIpLmNvbmNhdChnKS5jb25jYXQoZykuY29uY2F0KGIpLmNvbmNhdChiKTtcbn07XG5cbnZhciB1c2VDb2xvcklucHV0ID0gZnVuY3Rpb24gdXNlQ29sb3JJbnB1dChpbml0aWFsVmFsdWUsIG9uQ2hhbmdlKSB7XG4gIHZhciBfdXNlU3RhdGUgPSB1c2VTdGF0ZShpbml0aWFsVmFsdWUgfHwgJycpLFxuICAgICAgX3VzZVN0YXRlMiA9IF9zbGljZWRUb0FycmF5KF91c2VTdGF0ZSwgMiksXG4gICAgICB2YWx1ZSA9IF91c2VTdGF0ZTJbMF0sXG4gICAgICBzZXRWYWx1ZSA9IF91c2VTdGF0ZTJbMV07XG5cbiAgdmFyIF91c2VTdGF0ZTMgPSB1c2VTdGF0ZShmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHBhcnNlVmFsdWUodmFsdWUpO1xuICB9KSxcbiAgICAgIF91c2VTdGF0ZTQgPSBfc2xpY2VkVG9BcnJheShfdXNlU3RhdGUzLCAyKSxcbiAgICAgIGNvbG9yID0gX3VzZVN0YXRlNFswXSxcbiAgICAgIHNldENvbG9yID0gX3VzZVN0YXRlNFsxXTtcblxuICB2YXIgX3VzZVN0YXRlNSA9IHVzZVN0YXRlKChjb2xvciA9PT0gbnVsbCB8fCBjb2xvciA9PT0gdm9pZCAwID8gdm9pZCAwIDogY29sb3IuY29sb3JTcGFjZSkgfHwgQ29sb3JTcGFjZS5IRVgpLFxuICAgICAgX3VzZVN0YXRlNiA9IF9zbGljZWRUb0FycmF5KF91c2VTdGF0ZTUsIDIpLFxuICAgICAgY29sb3JTcGFjZSA9IF91c2VTdGF0ZTZbMF0sXG4gICAgICBzZXRDb2xvclNwYWNlID0gX3VzZVN0YXRlNlsxXTsgLy8gUmVzZXQgc3RhdGUgd2hlbiBpbml0aWFsVmFsdWUgYmVjb21lcyB1bmRlZmluZWQgKHdoZW4gcmVzZXR0aW5nIGNvbnRyb2xzKVxuXG5cbiAgdXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoaW5pdGlhbFZhbHVlICE9PSB1bmRlZmluZWQpIHJldHVybjtcbiAgICBzZXRWYWx1ZSgnJyk7XG4gICAgc2V0Q29sb3IodW5kZWZpbmVkKTtcbiAgICBzZXRDb2xvclNwYWNlKENvbG9yU3BhY2UuSEVYKTtcbiAgfSwgW2luaXRpYWxWYWx1ZV0pO1xuICB2YXIgcmVhbFZhbHVlID0gdXNlTWVtbyhmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIGdldFJlYWxWYWx1ZSh2YWx1ZSwgY29sb3IsIGNvbG9yU3BhY2UpLnRvTG93ZXJDYXNlKCk7XG4gIH0sIFt2YWx1ZSwgY29sb3IsIGNvbG9yU3BhY2VdKTtcbiAgdmFyIHVwZGF0ZVZhbHVlID0gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKHVwZGF0ZSkge1xuICAgIHZhciBwYXJzZWQgPSBwYXJzZVZhbHVlKHVwZGF0ZSk7XG4gICAgc2V0VmFsdWUoKHBhcnNlZCA9PT0gbnVsbCB8fCBwYXJzZWQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHBhcnNlZC52YWx1ZSkgfHwgdXBkYXRlIHx8ICcnKTtcbiAgICBpZiAoIXBhcnNlZCkgcmV0dXJuO1xuICAgIHNldENvbG9yKHBhcnNlZCk7XG4gICAgc2V0Q29sb3JTcGFjZShwYXJzZWQuY29sb3JTcGFjZSk7XG4gICAgb25DaGFuZ2UocGFyc2VkLnZhbHVlKTtcbiAgfSwgW29uQ2hhbmdlXSk7XG4gIHZhciBjeWNsZUNvbG9yU3BhY2UgPSB1c2VDYWxsYmFjayhmdW5jdGlvbiAoKSB7XG4gICAgdmFyIG5leHQgPSBDT0xPUl9TUEFDRVMuaW5kZXhPZihjb2xvclNwYWNlKSArIDE7XG4gICAgaWYgKG5leHQgPj0gQ09MT1JfU1BBQ0VTLmxlbmd0aCkgbmV4dCA9IDA7XG4gICAgc2V0Q29sb3JTcGFjZShDT0xPUl9TUEFDRVNbbmV4dF0pO1xuICAgIHZhciB1cGRhdGUgPSAoY29sb3IgPT09IG51bGwgfHwgY29sb3IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNvbG9yW0NPTE9SX1NQQUNFU1tuZXh0XV0pIHx8ICcnO1xuICAgIHNldFZhbHVlKHVwZGF0ZSk7XG4gICAgb25DaGFuZ2UodXBkYXRlKTtcbiAgfSwgW2NvbG9yLCBjb2xvclNwYWNlLCBvbkNoYW5nZV0pO1xuICByZXR1cm4ge1xuICAgIHZhbHVlOiB2YWx1ZSxcbiAgICByZWFsVmFsdWU6IHJlYWxWYWx1ZSxcbiAgICB1cGRhdGVWYWx1ZTogdXBkYXRlVmFsdWUsXG4gICAgY29sb3I6IGNvbG9yLFxuICAgIGNvbG9yU3BhY2U6IGNvbG9yU3BhY2UsXG4gICAgY3ljbGVDb2xvclNwYWNlOiBjeWNsZUNvbG9yU3BhY2VcbiAgfTtcbn07XG5cbnZhciBpZCA9IGZ1bmN0aW9uIGlkKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZS5yZXBsYWNlKC9cXHMqLywgJycpLnRvTG93ZXJDYXNlKCk7XG59O1xuXG52YXIgdXNlUHJlc2V0cyA9IGZ1bmN0aW9uIHVzZVByZXNldHMocHJlc2V0Q29sb3JzLCBjdXJyZW50Q29sb3IsIGNvbG9yU3BhY2UpIHtcbiAgdmFyIF91c2VTdGF0ZTcgPSB1c2VTdGF0ZShjdXJyZW50Q29sb3IgIT09IG51bGwgJiYgY3VycmVudENvbG9yICE9PSB2b2lkIDAgJiYgY3VycmVudENvbG9yLnZhbGlkID8gW2N1cnJlbnRDb2xvcl0gOiBbXSksXG4gICAgICBfdXNlU3RhdGU4ID0gX3NsaWNlZFRvQXJyYXkoX3VzZVN0YXRlNywgMiksXG4gICAgICBzZWxlY3RlZENvbG9ycyA9IF91c2VTdGF0ZThbMF0sXG4gICAgICBzZXRTZWxlY3RlZENvbG9ycyA9IF91c2VTdGF0ZThbMV07IC8vIFJlc2V0IHN0YXRlIHdoZW4gY3VycmVudENvbG9yIGJlY29tZXMgdW5kZWZpbmVkICh3aGVuIHJlc2V0dGluZyBjb250cm9scylcblxuXG4gIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgaWYgKGN1cnJlbnRDb2xvciAhPT0gdW5kZWZpbmVkKSByZXR1cm47XG4gICAgc2V0U2VsZWN0ZWRDb2xvcnMoW10pO1xuICB9LCBbY3VycmVudENvbG9yXSk7XG4gIHZhciBwcmVzZXRzID0gdXNlTWVtbyhmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGluaXRpYWxQcmVzZXRzID0gKHByZXNldENvbG9ycyB8fCBbXSkubWFwKGZ1bmN0aW9uIChwcmVzZXQpIHtcbiAgICAgIGlmICh0eXBlb2YgcHJlc2V0ID09PSAnc3RyaW5nJykgcmV0dXJuIHBhcnNlVmFsdWUocHJlc2V0KTtcbiAgICAgIGlmIChwcmVzZXQudGl0bGUpIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBwYXJzZVZhbHVlKHByZXNldC5jb2xvciksIHtcbiAgICAgICAga2V5d29yZDogcHJlc2V0LnRpdGxlXG4gICAgICB9KTtcbiAgICAgIHJldHVybiBwYXJzZVZhbHVlKHByZXNldC5jb2xvcik7XG4gICAgfSk7XG4gICAgcmV0dXJuIGluaXRpYWxQcmVzZXRzLmNvbmNhdChzZWxlY3RlZENvbG9ycykuZmlsdGVyKEJvb2xlYW4pLnNsaWNlKC0yNyk7XG4gIH0sIFtwcmVzZXRDb2xvcnMsIHNlbGVjdGVkQ29sb3JzXSk7XG4gIHZhciBhZGRQcmVzZXQgPSB1c2VDYWxsYmFjayhmdW5jdGlvbiAoY29sb3IpIHtcbiAgICBpZiAoIShjb2xvciAhPT0gbnVsbCAmJiBjb2xvciAhPT0gdm9pZCAwICYmIGNvbG9yLnZhbGlkKSkgcmV0dXJuO1xuICAgIGlmIChwcmVzZXRzLnNvbWUoZnVuY3Rpb24gKHByZXNldCkge1xuICAgICAgcmV0dXJuIGlkKHByZXNldFtjb2xvclNwYWNlXSkgPT09IGlkKGNvbG9yW2NvbG9yU3BhY2VdKTtcbiAgICB9KSkgcmV0dXJuO1xuICAgIHNldFNlbGVjdGVkQ29sb3JzKGZ1bmN0aW9uIChhcnIpIHtcbiAgICAgIHJldHVybiBhcnIuY29uY2F0KGNvbG9yKTtcbiAgICB9KTtcbiAgfSwgW2NvbG9yU3BhY2UsIHByZXNldHNdKTtcbiAgcmV0dXJuIHtcbiAgICBwcmVzZXRzOiBwcmVzZXRzLFxuICAgIGFkZFByZXNldDogYWRkUHJlc2V0XG4gIH07XG59O1xuXG5leHBvcnQgdmFyIENvbG9yQ29udHJvbCA9IGZ1bmN0aW9uIENvbG9yQ29udHJvbChfcmVmMTMpIHtcbiAgdmFyIG5hbWUgPSBfcmVmMTMubmFtZSxcbiAgICAgIGluaXRpYWxWYWx1ZSA9IF9yZWYxMy52YWx1ZSxcbiAgICAgIG9uQ2hhbmdlID0gX3JlZjEzLm9uQ2hhbmdlLFxuICAgICAgb25Gb2N1cyA9IF9yZWYxMy5vbkZvY3VzLFxuICAgICAgb25CbHVyID0gX3JlZjEzLm9uQmx1cixcbiAgICAgIHByZXNldENvbG9ycyA9IF9yZWYxMy5wcmVzZXRDb2xvcnMsXG4gICAgICBzdGFydE9wZW4gPSBfcmVmMTMuc3RhcnRPcGVuO1xuXG4gIHZhciBfdXNlQ29sb3JJbnB1dCA9IHVzZUNvbG9ySW5wdXQoaW5pdGlhbFZhbHVlLCB0aHJvdHRsZShvbkNoYW5nZSwgMjAwKSksXG4gICAgICB2YWx1ZSA9IF91c2VDb2xvcklucHV0LnZhbHVlLFxuICAgICAgcmVhbFZhbHVlID0gX3VzZUNvbG9ySW5wdXQucmVhbFZhbHVlLFxuICAgICAgdXBkYXRlVmFsdWUgPSBfdXNlQ29sb3JJbnB1dC51cGRhdGVWYWx1ZSxcbiAgICAgIGNvbG9yID0gX3VzZUNvbG9ySW5wdXQuY29sb3IsXG4gICAgICBjb2xvclNwYWNlID0gX3VzZUNvbG9ySW5wdXQuY29sb3JTcGFjZSxcbiAgICAgIGN5Y2xlQ29sb3JTcGFjZSA9IF91c2VDb2xvcklucHV0LmN5Y2xlQ29sb3JTcGFjZTtcblxuICB2YXIgX3VzZVByZXNldHMgPSB1c2VQcmVzZXRzKHByZXNldENvbG9ycywgY29sb3IsIGNvbG9yU3BhY2UpLFxuICAgICAgcHJlc2V0cyA9IF91c2VQcmVzZXRzLnByZXNldHMsXG4gICAgICBhZGRQcmVzZXQgPSBfdXNlUHJlc2V0cy5hZGRQcmVzZXQ7XG5cbiAgdmFyIFBpY2tlciA9IENvbG9yUGlja2VyW2NvbG9yU3BhY2VdO1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoV3JhcHBlciwgbnVsbCwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoUGlja2VyVG9vbHRpcCwge1xuICAgIHRyaWdnZXI6IFwiY2xpY2tcIixcbiAgICBzdGFydE9wZW46IHN0YXJ0T3BlbixcbiAgICBjbG9zZU9uQ2xpY2s6IHRydWUsXG4gICAgb25WaXNpYmlsaXR5Q2hhbmdlOiBmdW5jdGlvbiBvblZpc2liaWxpdHlDaGFuZ2UoKSB7XG4gICAgICByZXR1cm4gYWRkUHJlc2V0KGNvbG9yKTtcbiAgICB9LFxuICAgIHRvb2x0aXA6IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFRvb2x0aXBDb250ZW50LCBudWxsLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChQaWNrZXIsIHtcbiAgICAgIGNvbG9yOiByZWFsVmFsdWUgPT09ICd0cmFuc3BhcmVudCcgPyAnIzAwMDAwMCcgOiByZWFsVmFsdWUsXG4gICAgICBvbkNoYW5nZTogdXBkYXRlVmFsdWUsXG4gICAgICBvbkZvY3VzOiBvbkZvY3VzLFxuICAgICAgb25CbHVyOiBvbkJsdXJcbiAgICB9KSwgcHJlc2V0cy5sZW5ndGggPiAwICYmIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFN3YXRjaGVzLCBudWxsLCBwcmVzZXRzLm1hcChmdW5jdGlvbiAocHJlc2V0LCBpbmRleCkge1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFdpdGhUb29sdGlwIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC9uby1hcnJheS1pbmRleC1rZXlcbiAgICAgICwge1xuICAgICAgICBrZXk6IFwiXCIuY29uY2F0KHByZXNldC52YWx1ZSwgXCItXCIpLmNvbmNhdChpbmRleCksXG4gICAgICAgIGhhc0Nocm9tZTogZmFsc2UsXG4gICAgICAgIHRvb2x0aXA6IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KE5vdGUsIHtcbiAgICAgICAgICBub3RlOiBwcmVzZXQua2V5d29yZCB8fCBwcmVzZXQudmFsdWVcbiAgICAgICAgfSlcbiAgICAgIH0sIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFN3YXRjaCwge1xuICAgICAgICB2YWx1ZTogcHJlc2V0W2NvbG9yU3BhY2VdLFxuICAgICAgICBhY3RpdmU6IGNvbG9yICYmIGlkKHByZXNldFtjb2xvclNwYWNlXSkgPT09IGlkKGNvbG9yW2NvbG9yU3BhY2VdKSxcbiAgICAgICAgb25DbGljazogZnVuY3Rpb24gb25DbGljaygpIHtcbiAgICAgICAgICByZXR1cm4gdXBkYXRlVmFsdWUocHJlc2V0LnZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfSkpO1xuICAgIH0pKSlcbiAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoU3dhdGNoLCB7XG4gICAgdmFsdWU6IHJlYWxWYWx1ZSxcbiAgICBzdHlsZToge1xuICAgICAgbWFyZ2luOiA0XG4gICAgfVxuICB9KSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KElucHV0LCB7XG4gICAgaWQ6IGdldENvbnRyb2xJZChuYW1lKSxcbiAgICB2YWx1ZTogdmFsdWUsXG4gICAgb25DaGFuZ2U6IGZ1bmN0aW9uIG9uQ2hhbmdlKGUpIHtcbiAgICAgIHJldHVybiB1cGRhdGVWYWx1ZShlLnRhcmdldC52YWx1ZSk7XG4gICAgfSxcbiAgICBvbkZvY3VzOiBmdW5jdGlvbiBvbkZvY3VzKGUpIHtcbiAgICAgIHJldHVybiBlLnRhcmdldC5zZWxlY3QoKTtcbiAgICB9LFxuICAgIHBsYWNlaG9sZGVyOiBcIkNob29zZSBjb2xvci4uLlwiXG4gIH0pLCB2YWx1ZSA/IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFRvZ2dsZUljb24sIHtcbiAgICBpY29uOiBcIm1hcmt1cFwiLFxuICAgIG9uQ2xpY2s6IGN5Y2xlQ29sb3JTcGFjZVxuICB9KSA6IG51bGwpO1xufTtcbkNvbG9yQ29udHJvbC5kaXNwbGF5TmFtZSA9IFwiQ29sb3JDb250cm9sXCI7XG5leHBvcnQgZGVmYXVsdCBDb2xvckNvbnRyb2w7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@storybook/components/dist/esm/controls/Color.js\n')},"./node_modules/@storybook/components/dist/esm/tooltip/TooltipNote.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return TooltipNote; });\n/* harmony import */ var core_js_modules_es_string_bold_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/core-js/modules/es.string.bold.js");\n/* harmony import */ var core_js_modules_es_string_bold_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_bold_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_object_keys_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("../../node_modules/core-js/modules/es.object.keys.js");\n/* harmony import */ var core_js_modules_es_object_keys_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_keys_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("../../node_modules/core-js/modules/es.symbol.js");\n/* harmony import */ var core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./node_modules/react/index.js");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _storybook_theming__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./node_modules/@storybook/theming/dist/esm/index.js");\nfunction _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; }\n\nfunction _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; }\n\n\n\n\n\n\nvar Note = _storybook_theming__WEBPACK_IMPORTED_MODULE_4__["styled"].div(function (_ref) {\n var theme = _ref.theme;\n return {\n padding: \'2px 6px\',\n lineHeight: \'16px\',\n fontSize: 10,\n fontWeight: theme.typography.weight.bold,\n color: theme.color.lightest,\n boxShadow: \'0 0 5px 0 rgba(0, 0, 0, 0.3)\',\n borderRadius: 4,\n whiteSpace: \'nowrap\',\n pointerEvents: \'none\',\n zIndex: -1,\n background: theme.base === \'light\' ? \'rgba(60, 60, 60, 0.9)\' : \'rgba(20, 20, 20, 0.85)\',\n margin: 6\n };\n});\nvar TooltipNote = function TooltipNote(_ref2) {\n var note = _ref2.note,\n props = _objectWithoutProperties(_ref2, ["note"]);\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(Note, props, note);\n};\nTooltipNote.displayName = "TooltipNote";//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHN0b3J5Ym9vay9jb21wb25lbnRzL2Rpc3QvZXNtL3Rvb2x0aXAvVG9vbHRpcE5vdGUuanM/N2Q5NSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHFEQUFxRCwrQkFBK0IsOERBQThELFlBQVksb0NBQW9DLDZEQUE2RCxZQUFZLDZCQUE2QixPQUFPLDJCQUEyQiwwQ0FBMEMsd0VBQXdFLDJCQUEyQixFQUFFLEVBQUUsZUFBZTs7QUFFMWUsMERBQTBELCtCQUErQixpQkFBaUIsc0NBQXNDLFlBQVksWUFBWSx1QkFBdUIsT0FBTyxxQkFBcUIsMENBQTBDLDJCQUEyQixFQUFFLGVBQWU7O0FBRXRRO0FBQ0E7QUFDTDtBQUNaO0FBQ2tCO0FBQzVDLFdBQVcseURBQU07QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNNO0FBQ1A7QUFDQTs7QUFFQSxzQkFBc0IsNENBQUs7QUFDM0I7QUFDQSIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9Ac3Rvcnlib29rL2NvbXBvbmVudHMvZGlzdC9lc20vdG9vbHRpcC9Ub29sdGlwTm90ZS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIF9vYmplY3RXaXRob3V0UHJvcGVydGllcyhzb3VyY2UsIGV4Y2x1ZGVkKSB7IGlmIChzb3VyY2UgPT0gbnVsbCkgcmV0dXJuIHt9OyB2YXIgdGFyZ2V0ID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2Uoc291cmNlLCBleGNsdWRlZCk7IHZhciBrZXksIGk7IGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7IHZhciBzb3VyY2VTeW1ib2xLZXlzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzb3VyY2UpOyBmb3IgKGkgPSAwOyBpIDwgc291cmNlU3ltYm9sS2V5cy5sZW5ndGg7IGkrKykgeyBrZXkgPSBzb3VyY2VTeW1ib2xLZXlzW2ldOyBpZiAoZXhjbHVkZWQuaW5kZXhPZihrZXkpID49IDApIGNvbnRpbnVlOyBpZiAoIU9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzb3VyY2UsIGtleSkpIGNvbnRpbnVlOyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gcmV0dXJuIHRhcmdldDsgfVxuXG5mdW5jdGlvbiBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShzb3VyY2UsIGV4Y2x1ZGVkKSB7IGlmIChzb3VyY2UgPT0gbnVsbCkgcmV0dXJuIHt9OyB2YXIgdGFyZ2V0ID0ge307IHZhciBzb3VyY2VLZXlzID0gT2JqZWN0LmtleXMoc291cmNlKTsgdmFyIGtleSwgaTsgZm9yIChpID0gMDsgaSA8IHNvdXJjZUtleXMubGVuZ3RoOyBpKyspIHsga2V5ID0gc291cmNlS2V5c1tpXTsgaWYgKGV4Y2x1ZGVkLmluZGV4T2Yoa2V5KSA+PSAwKSBjb250aW51ZTsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSByZXR1cm4gdGFyZ2V0OyB9XG5cbmltcG9ydCBcImNvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcuYm9sZC5qc1wiO1xuaW1wb3J0IFwiY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC5rZXlzLmpzXCI7XG5pbXBvcnQgXCJjb3JlLWpzL21vZHVsZXMvZXMuc3ltYm9sLmpzXCI7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgc3R5bGVkIH0gZnJvbSAnQHN0b3J5Ym9vay90aGVtaW5nJztcbnZhciBOb3RlID0gc3R5bGVkLmRpdihmdW5jdGlvbiAoX3JlZikge1xuICB2YXIgdGhlbWUgPSBfcmVmLnRoZW1lO1xuICByZXR1cm4ge1xuICAgIHBhZGRpbmc6ICcycHggNnB4JyxcbiAgICBsaW5lSGVpZ2h0OiAnMTZweCcsXG4gICAgZm9udFNpemU6IDEwLFxuICAgIGZvbnRXZWlnaHQ6IHRoZW1lLnR5cG9ncmFwaHkud2VpZ2h0LmJvbGQsXG4gICAgY29sb3I6IHRoZW1lLmNvbG9yLmxpZ2h0ZXN0LFxuICAgIGJveFNoYWRvdzogJzAgMCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMyknLFxuICAgIGJvcmRlclJhZGl1czogNCxcbiAgICB3aGl0ZVNwYWNlOiAnbm93cmFwJyxcbiAgICBwb2ludGVyRXZlbnRzOiAnbm9uZScsXG4gICAgekluZGV4OiAtMSxcbiAgICBiYWNrZ3JvdW5kOiB0aGVtZS5iYXNlID09PSAnbGlnaHQnID8gJ3JnYmEoNjAsIDYwLCA2MCwgMC45KScgOiAncmdiYSgyMCwgMjAsIDIwLCAwLjg1KScsXG4gICAgbWFyZ2luOiA2XG4gIH07XG59KTtcbmV4cG9ydCB2YXIgVG9vbHRpcE5vdGUgPSBmdW5jdGlvbiBUb29sdGlwTm90ZShfcmVmMikge1xuICB2YXIgbm90ZSA9IF9yZWYyLm5vdGUsXG4gICAgICBwcm9wcyA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyhfcmVmMiwgW1wibm90ZVwiXSk7XG5cbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KE5vdGUsIHByb3BzLCBub3RlKTtcbn07XG5Ub29sdGlwTm90ZS5kaXNwbGF5TmFtZSA9IFwiVG9vbHRpcE5vdGVcIjsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@storybook/components/dist/esm/tooltip/TooltipNote.js\n')}}]);