UNPKG

@apptane/react-ui-charts

Version:
46 lines (41 loc) 343 kB
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties"; import _defineProperty from "@babel/runtime/helpers/defineProperty"; const _excluded = ["arcs", "activeId"]; function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; } import take from "lodash/take"; import { getColorMap, resolveMappedColor, resolvePaletteReference } from "@apptane/react-ui-core"; import { Pane } from "@apptane/react-ui-pane"; import { useColorMode, useTheme } from "@apptane/react-ui-theme"; import { Tooltip } from "@apptane/react-ui-tooltip"; import { Paragraph, Text } from "@apptane/react-ui-typography"; import { css } from "@emotion/react"; import { useCallback, useMemo, useState } from "react"; import { quantize } from "d3-interpolate"; import { scaleQuantize } from "d3-scale"; import { arc, pie } from "d3-shape"; import { getColorInterpolator } from "../common/ColorScheme.js"; import { ChartMarker } from "../parts/ChartMarker.js"; import { PieChartPropTypes } from "./PieChart.types.js"; import { jsx as _jsx } from "@emotion/react/jsx-runtime"; import { jsxs as _jsxs } from "@emotion/react/jsx-runtime"; const StyleContainer = process.env.NODE_ENV === "production" ? { name: "1dzegqf", styles: "display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;overflow:visible" } : { name: "zbdmjx-StyleContainer", styles: "display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;overflow:visible;label:StyleContainer;", map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9waWUvUGllQ2hhcnQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXNCMEIiLCJmaWxlIjoiLi4vLi4vc3JjL3BpZS9QaWVDaGFydC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdGFrZSBmcm9tIFwibG9kYXNoL3Rha2VcIjtcbmltcG9ydCB7XG4gIEFuaW1hdGlvblN0eWxlLFxuICBDb2xvcixcbiAgQ29sb3JNb2RlLFxuICBnZXRDb2xvck1hcCxcbiAgcmVzb2x2ZU1hcHBlZENvbG9yLFxuICByZXNvbHZlUGFsZXR0ZVJlZmVyZW5jZSxcbn0gZnJvbSBcIkBhcHB0YW5lL3JlYWN0LXVpLWNvcmVcIjtcbmltcG9ydCB7IFBhbmUgfSBmcm9tIFwiQGFwcHRhbmUvcmVhY3QtdWktcGFuZVwiO1xuaW1wb3J0IHsgVGhlbWUsIHVzZUNvbG9yTW9kZSwgdXNlVGhlbWUgfSBmcm9tIFwiQGFwcHRhbmUvcmVhY3QtdWktdGhlbWVcIjtcbmltcG9ydCB7IFRvb2x0aXAgfSBmcm9tIFwiQGFwcHRhbmUvcmVhY3QtdWktdG9vbHRpcFwiO1xuaW1wb3J0IHsgUGFyYWdyYXBoLCBUZXh0IH0gZnJvbSBcIkBhcHB0YW5lL3JlYWN0LXVpLXR5cG9ncmFwaHlcIjtcbmltcG9ydCB7IGNzcyB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBxdWFudGl6ZSB9IGZyb20gXCJkMy1pbnRlcnBvbGF0ZVwiO1xuaW1wb3J0IHsgU2NhbGVRdWFudGl6ZSwgc2NhbGVRdWFudGl6ZSB9IGZyb20gXCJkMy1zY2FsZVwiO1xuaW1wb3J0IHsgYXJjLCBwaWUsIFBpZUFyY0RhdHVtIH0gZnJvbSBcImQzLXNoYXBlXCI7XG5pbXBvcnQgeyBnZXRDb2xvckludGVycG9sYXRvciB9IGZyb20gXCIuLi9jb21tb24vQ29sb3JTY2hlbWUuanNcIjtcbmltcG9ydCB7IENoYXJ0TWFya2VyIH0gZnJvbSBcIi4uL3BhcnRzL0NoYXJ0TWFya2VyLmpzXCI7XG5pbXBvcnQgeyBQaWVDaGFydERhdHVtLCBQaWVDaGFydFByb3BzLCBQaWVDaGFydFByb3BUeXBlcyB9IGZyb20gXCIuL1BpZUNoYXJ0LnR5cGVzLmpzXCI7XG5cbmNvbnN0IFN0eWxlQ29udGFpbmVyID0gY3NzYFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG5gO1xuXG5jb25zdCBTdHlsZUludGVyYWN0aXZlID0gY3NzYFxuICBjdXJzb3I6IHBvaW50ZXI7XG5gO1xuXG5jb25zdCBTdHlsZVRvb2x0aXAgPSAoYW5pbWF0aW9uOiBBbmltYXRpb25TdHlsZSkgPT4gY3NzYFxuICA+IGRpdiB7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogJHthbmltYXRpb24uZGVsYXl9bXM7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogJHthbmltYXRpb24uZHVyYXRpb259bXM7XG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ICR7YW5pbWF0aW9uLmZ1bmN0aW9ufTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICB9XG5cbiAgLy8gcHJldmVudHMgdG9vbHRpcCBmcm9tIHRyaWdnZXJpbmcgb25Nb3VzZUxlYXZlXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG5gO1xuXG5jb25zdCBTdHlsZUNoYXJ0ID0gY3NzYFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsZXg6IG5vbmU7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBTdHlsZUNvbnRlbnQgPSBjc3NgXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuYDtcblxuY29uc3QgU3R5bGVBcmNzID0gY3NzYFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gID4gc3ZnIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICA+IGcgPiBwYXRoIHtcbiAgICAgIHN0cm9rZTogbm9uZVxuICAgICAgc3Ryb2tlLXdpZHRoOiAwO1xuICAgIH1cbiAgfVxuYDtcblxuY29uc3QgU3R5bGVBcmNzSG92ZXIgPSBjc3NgXG4gID4gc3ZnID4gZyA+IHBhdGgge1xuICAgIHBvaW50ZXItZXZlbnRzOiB2aXNpYmxlO1xuICB9XG5gO1xuXG5jb25zdCBTdHlsZUxlZ2VuZCA9IChtYXJnaW46IG51bWJlcikgPT4gY3NzYFxuICBmbGV4OiBhdXRvO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nLWxlZnQ6ICR7bWFyZ2lufXB4O1xuYDtcblxuY29uc3QgU3R5bGVMZWdlbmRJdGVtID0gKGhlaWdodDogbnVtYmVyLCBwYWRkaW5nOiBudW1iZXIpID0+IGNzc2BcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGhlaWdodDogJHtoZWlnaHR9cHg7XG4gIHBhZGRpbmc6IDAgJHtwYWRkaW5nfXB4O1xuXG4gID4gZGl2OmZpcnN0LW9mLXR5cGUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleDogYXV0bztcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuYDtcblxuY29uc3QgU3R5bGVMZWdlbmRJdGVtQm9yZGVyID0gKGNvbG9yOiBDb2xvcikgPT4gY3NzYFxuICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggJHtjb2xvcn07XG5gO1xuXG5jb25zdCBTdHlsZUxlZ2VuZEl0ZW1BY3RpdmUgPSAoY29sb3I6IENvbG9yKSA9PiBjc3NgXG4gIGJhY2tncm91bmQ6ICR7Y29sb3J9O1xuYDtcblxuY29uc3QgU3R5bGVMZWdlbmRJdGVtVmFsdWUgPSAoc3BhY2luZzogbnVtYmVyKSA9PiBjc3NgXG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBmbGV4OiBub25lO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgcGFkZGluZy1sZWZ0OiAke3NwYWNpbmd9cHg7XG5gO1xuXG5jb25zdCBTdHlsZUxlZ2VuZEl0ZW1QZXJjZW50ID0gKHNwYWNpbmc6IG51bWJlcikgPT4gY3NzYFxuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgZmxleDogbm9uZTtcbiAgd2lkdGg6ICR7NDAgKyBzcGFjaW5nfXB4O1xuICBwYWRkaW5nLWxlZnQ6ICR7c3BhY2luZ31weDtcbmA7XG5cbmNvbnN0IFBBRF9BTkdMRSA9IDAuMDA4NzI2NjU7IC8vIHJhZGlhbnMgKH4wLjUgZGVncmVlKVxuY29uc3QgUkFESVVTX0JBTkQgPSAwLjk1O1xuY29uc3QgUkFESVVTX0RFQUQgPSAwLjM1O1xuY29uc3QgT1BBQ0lUWV9TSEFET1cgPSAwLjI7XG5jb25zdCBPUEFDSVRZX0lOQUNUSVZFID0gMC41O1xuXG50eXBlIEFyY0RhdGE8RGF0YSA9IHZvaWQ+ID0ge1xuICBkOiBQaWVDaGFydERhdHVtPERhdGE+O1xuICBjOiBDb2xvcjtcbiAgeDogbnVtYmVyO1xuICB5OiBudW1iZXI7XG4gIHA6IG51bWJlcjtcbiAgcGF0aDoge1xuICAgIG91dGVyPzogc3RyaW5nO1xuICAgIGlubmVyPzogc3RyaW5nO1xuICAgIGhvdmVyPzogc3RyaW5nO1xuICB9O1xufTtcblxudHlwZSBQaWVFbXB0eVByb3BzID0ge1xuICBzaXplOiBudW1iZXI7XG4gIGNvbG9yOiBDb2xvcjtcbn07XG5cbmZ1bmN0aW9uIFBpZUVtcHR5KHsgc2l6ZSwgY29sb3IgfTogUGllRW1wdHlQcm9wcykge1xuICBjb25zdCByYWRpdXMgPSBzaXplIC8gMjtcbiAgY29uc3QgcGF0aCA9XG4gICAgYXJjKCkoe1xuICAgICAgb3V0ZXJSYWRpdXM6IHJhZGl1cyxcbiAgICAgIGlubmVyUmFkaXVzOiByYWRpdXMgKiBSQURJVVNfQkFORCxcbiAgICAgIHN0YXJ0QW5nbGU6IDAsXG4gICAgICBlbmRBbmdsZTogMiAqIE1hdGguUEksXG4gICAgfSkgPz8gdW5kZWZpbmVkO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjc3M9e1N0eWxlQXJjc30+XG4gICAgICA8c3ZnIHZpZXdCb3g9e2AwIDAgJHtzaXplfSAke3NpemV9YH0gd2lkdGg9e3NpemV9IGhlaWdodD17c2l6ZX0+XG4gICAgICAgIDxnIHRyYW5zZm9ybT17YHRyYW5zbGF0ZSgke3NpemUgLyAyfSwgJHtzaXplIC8gMn0pYH0+XG4gICAgICAgICAgPHBhdGggZD17cGF0aH0gZmlsbD17Y29sb3J9IC8+XG4gICAgICAgIDwvZz5cbiAgICAgIDwvc3ZnPlxuICAgIDwvZGl2PlxuICApO1xufVxuXG50eXBlIFBpZUFyY3NQcm9wczxEYXRhID0gdm9pZD4gPSB7XG4gIGFyY3M6IEFyY0RhdGE8RGF0YT5bXTtcbiAgc2l6ZTogbnVtYmVyO1xuICBhY3RpdmVJZD86IHN0cmluZztcbiAgc2hhZG93PzogYm9vbGVhbjtcbiAgb25Nb3VzZUVudGVyPzogKGRhdGE6IEFyY0RhdGE8RGF0YT4pID0+IHZvaWQ7XG4gIG9uTW91c2VDbGljaz86IChkYXRhOiBBcmNEYXRhPERhdGE+KSA9PiB2b2lkO1xufTtcblxuZnVuY3Rpb24gUGllQXJjczxEYXRhID0gdm9pZD4oeyBhcmNzLCBzaXplLCBhY3RpdmVJZCwgc2hhZG93LCBvbk1vdXNlRW50ZXIsIG9uTW91c2VDbGljayB9OiBQaWVBcmNzUHJvcHM8RGF0YT4pIHtcbiAgY29uc3QgZWxlbWVudHM6IEpTWC5FbGVtZW50W10gPSBbXTtcbiAgYXJjcy5mb3JFYWNoKChhcmMsIGluZGV4KSA9PiB7XG4gICAgY29uc3Qgb3BhY2l0eSA9IHNoYWRvdyA/IE9QQUNJVFlfU0hBRE9XIDogYWN0aXZlSWQgPT0gbnVsbCB8fCBhY3RpdmVJZCA9PT0gYXJjLmQuaWQgPyAxIDogT1BBQ0lUWV9JTkFDVElWRTtcbiAgICBjb25zdCB2aXNpYmxlID0gIXNoYWRvdyB8fCBhY3RpdmVJZCA9PT0gYXJjLmQuaWQ7XG4gICAgaWYgKHZpc2libGUpIHtcbiAgICAgIGVsZW1lbnRzLnB1c2goXG4gICAgICAgIDxwYXRoXG4gICAgICAgICAga2V5PXtgYXJjJHtpbmRleH1gfVxuICAgICAgICAgIGQ9e3NoYWRvdyA/IGFyYy5wYXRoLmlubmVyIDogYXJjLnBhdGgub3V0ZXJ9XG4gICAgICAgICAgZmlsbD17YXJjLmN9XG4gICAgICAgICAgZmlsbE9wYWNpdHk9e29wYWNpdHl9XG4gICAgICAgICAgb25Nb3VzZUVudGVyPXtvbk1vdXNlRW50ZXIgPyAoKSA9PiBvbk1vdXNlRW50ZXIoYXJjKSA6IHVuZGVmaW5lZH1cbiAgICAgICAgICBvbk1vdXNlRG93bj17b25Nb3VzZUNsaWNrID8gKCkgPT4gb25Nb3VzZUNsaWNrKGFyYykgOiB1bmRlZmluZWR9XG4gICAgICAgIC8+XG4gICAgICApO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNzcz17U3R5bGVBcmNzfT5cbiAgICAgIDxzdmcgdmlld0JveD17YDAgMCAke3NpemV9ICR7c2l6ZX1gfSB3aWR0aD17c2l6ZX0gaGVpZ2h0PXtzaXplfT5cbiAgICAgICAgPGcgdHJhbnNmb3JtPXtgdHJhbnNsYXRlKCR7c2l6ZSAvIDJ9LCAke3NpemUgLyAyfSlgfT57ZWxlbWVudHN9PC9nPlxuICAgICAgPC9zdmc+XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbmZ1bmN0aW9uIFBpZUFyY3NIb3ZlcjxEYXRhID0gdm9pZD4oe1xuICBhcmNzLFxuICBzaXplLFxuICBvbk1vdXNlRW50ZXIsXG4gIG9uTW91c2VDbGljayxcbn06IFBpY2s8UGllQXJjc1Byb3BzPERhdGE+LCBcImFyY3NcIiB8IFwic2l6ZVwiIHwgXCJvbk1vdXNlRW50ZXJcIiB8IFwib25Nb3VzZUNsaWNrXCI+KSB7XG4gIHJldHVybiBvbk1vdXNlRW50ZXIgPyAoXG4gICAgPGRpdiBjc3M9e1tTdHlsZUFyY3MsIFN0eWxlQXJjc0hvdmVyLCBvbk1vdXNlQ2xpY2sgJiYgU3R5bGVJbnRlcmFjdGl2ZV19PlxuICAgICAgPHN2ZyB2aWV3Qm94PXtgMCAwICR7c2l6ZX0gJHtzaXplfWB9IHdpZHRoPXtzaXplfSBoZWlnaHQ9e3NpemV9PlxuICAgICAgICA8ZyB0cmFuc2Zvcm09e2B0cmFuc2xhdGUoJHtzaXplIC8gMn0sICR7c2l6ZSAvIDJ9KWB9PlxuICAgICAgICAgIHthcmNzLm1hcCgoYXJjLCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAga2V5PXtgYXJjJHtpbmRleH1gfVxuICAgICAgICAgICAgICBkPXthcmMucGF0aC5ob3Zlcn1cbiAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgICBvbk1vdXNlRW50ZXI9eygpID0+IG9uTW91c2VFbnRlcihhcmMpfVxuICAgICAgICAgICAgICBvbk1vdXNlRG93bj17b25Nb3VzZUNsaWNrID8gKCkgPT4gb25Nb3VzZUNsaWNrKGFyYykgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICkpfVxuICAgICAgICA8L2c+XG4gICAgICA8L3N2Zz5cbiAgICA8L2Rpdj5cbiAgKSA6IG51bGw7XG59XG5cbnR5cGUgUGllTGVnZW5kSXRlbVByb3BzPERhdGEgPSB2b2lkPiA9IHtcbiAgdGhlbWU6IFRoZW1lO1xuICBjb2xvck1vZGU6IENvbG9yTW9kZTtcbiAgYXJjOiBBcmNEYXRhPERhdGE+O1xuICBmb3JtYXRWYWx1ZT86ICh2YWx1ZTogbnVtYmVyKSA9PiBzdHJpbmc7XG4gIGFjdGl2ZT86IGJvb2xlYW47XG4gIGhhc0JvcmRlcj86IGJvb2xlYW47XG4gIG9uTW91c2VFbnRlcj86IChkYXRhOiBBcmNEYXRhPERhdGE+KSA9PiB2b2lkO1xuICBvbk1vdXNlTGVhdmU/OiAoZGF0YTogQXJjRGF0YTxEYXRhPikgPT4gdm9pZDtcbiAgb25Nb3VzZUNsaWNrPzogKGRhdGE6IEFyY0RhdGE8RGF0YT4pID0+IHZvaWQ7XG59O1xuXG5mdW5jdGlvbiBQaWVMZWdlbmRJdGVtPERhdGEgPSB2b2lkPih7XG4gIHRoZW1lLFxuICBjb2xvck1vZGUsXG4gIGFyYyxcbiAgZm9ybWF0VmFsdWUsXG4gIGFjdGl2ZSxcbiAgaGFzQm9yZGVyLFxuICBvbk1vdXNlRW50ZXIsXG4gIG9uTW91c2VMZWF2ZSxcbiAgb25Nb3VzZUNsaWNrLFxufTogUGllTGVnZW5kSXRlbVByb3BzPERhdGE+KSB7XG4gIGNvbnN0IHZpc3VhbFN0eWxlID0gdGhlbWUuY2hhcnRzLnBpZS5zdHlsZTtcbiAgY29uc3QgdmlzdWFsQXBwZWFyYW5jZSA9IHRoZW1lLmNoYXJ0cy5waWUuYXBwZWFyYW5jZSh0aGVtZS5wYWxldHRlW2NvbG9yTW9kZV0sIGNvbG9yTW9kZSwgdW5kZWZpbmVkLCBcIm5vbmVcIik7XG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgcm9sZT1cInJvd1wiXG4gICAgICBjc3M9e1tcbiAgICAgICAgU3R5bGVMZWdlbmRJdGVtKHZpc3VhbFN0eWxlLmxlZ2VuZC5pdGVtSGVpZ2h0LCB2aXN1YWxTdHlsZS5sZWdlbmQuaXRlbVBhZGRpbmcpLFxuICAgICAgICBvbk1vdXNlQ2xpY2sgJiYgU3R5bGVJbnRlcmFjdGl2ZSxcbiAgICAgICAgYWN0aXZlICYmIFN0eWxlTGVnZW5kSXRlbUFjdGl2ZSh2aXN1YWxBcHBlYXJhbmNlLmxlZ2VuZC5oaWdobGlnaHQpLFxuICAgICAgICBoYXNCb3JkZXIgJiYgU3R5bGVMZWdlbmRJdGVtQm9yZGVyKHZpc3VhbEFwcGVhcmFuY2UubGVnZW5kLmJvcmRlciksXG4gICAgICBdfVxuICAgICAgb25Nb3VzZUVudGVyPXtvbk1vdXNlRW50ZXIgPyAoKSA9PiBvbk1vdXNlRW50ZXIoYXJjKSA6IHVuZGVmaW5lZH1cbiAgICAgIG9uTW91c2VMZWF2ZT17b25Nb3VzZUxlYXZlID8gKCkgPT4gb25Nb3VzZUxlYXZlKGFyYykgOiB1bmRlZmluZWR9XG4gICAgICBvbkNsaWNrPXtvbk1vdXNlQ2xpY2sgPyAoKSA9PiBvbk1vdXNlQ2xpY2soYXJjKSA6IHVuZGVmaW5lZH0+XG4gICAgICA8ZGl2IHJvbGU9XCJncmlkY2VsbFwiPlxuICAgICAgICA8Q2hhcnRNYXJrZXIgdGhlbWU9e3RoZW1lfSBjb2xvck1vZGU9e2NvbG9yTW9kZX0gY29sb3I9e2FyYy5jfSAvPlxuICAgICAgICA8VGV4dFxuICAgICAgICAgIGNvbG9yPXt2aXN1YWxBcHBlYXJhbmNlLmxlZ2VuZC5sYWJlbH1cbiAgICAgICAgICB7Li4udmlzdWFsU3R5bGUuZm9udC5sZWdlbmQubGFiZWx9XG4gICAgICAgICAgbWFyZ2luTGVmdD17dmlzdWFsU3R5bGUubGVnZW5kLm1hcmtlclNwYWNpbmd9XG4gICAgICAgICAgbm93cmFwXG4gICAgICAgICAgZWxsaXBzaXM+XG4gICAgICAgICAge2FyYy5kLmxhYmVsfVxuICAgICAgICA8L1RleHQ+XG4gICAgICAgIDxkaXYgY3NzPXtTdHlsZUxlZ2VuZEl0ZW1WYWx1ZSh2aXN1YWxTdHlsZS5sZWdlbmQuaXRlbVNwYWNpbmcpfT5cbiAgICAgICAgICA8VGV4dCBjb2xvcj17dmlzdWFsQXBwZWFyYW5jZS5sZWdlbmQudmFsdWV9IHsuLi52aXN1YWxTdHlsZS5mb250LmxlZ2VuZC52YWx1ZX0gbm93cmFwPlxuICAgICAgICAgICAge2Zvcm1hdFZhbHVlICE9IG51bGwgPyBmb3JtYXRWYWx1ZShhcmMuZC52YWx1ZSkgOiBhcmMuZC52YWx1ZS50b0xvY2FsZVN0cmluZygpfVxuICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgcm9sZT1cImdyaWRjZWxsXCIgY3NzPXtTdHlsZUxlZ2VuZEl0ZW1QZXJjZW50KHZpc3VhbFN0eWxlLmxlZ2VuZC5pdGVtU3BhY2luZyl9PlxuICAgICAgICA8VGV4dCBjb2xvcj17dmlzdWFsQXBwZWFyYW5jZS5sZWdlbmQucGVyY2VudH0gey4uLnZpc3VhbFN0eWxlLmZvbnQubGVnZW5kLnZhbHVlfSBub3dyYXA+XG4gICAgICAgICAge2FyYy5wLnRvRml4ZWQoMSl9JVxuICAgICAgICA8L1RleHQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxudHlwZSBQaWVMZWdlbmRQcm9wczxEYXRhID0gdm9pZD4gPSB7XG4gIHRoZW1lOiBUaGVtZTtcbiAgY29sb3JNb2RlOiBDb2xvck1vZGU7XG4gIGFyY3M6IEFyY0RhdGE8RGF0YT5bXTtcbiAgZm9ybWF0VmFsdWU/OiAodmFsdWU6IG51bWJlcikgPT4gc3RyaW5nO1xuICBhY3RpdmVJZD86IHN0cmluZztcbiAgb25Nb3VzZUVudGVyPzogKGRhdGE6IEFyY0RhdGE8RGF0YT4pID0+IHZvaWQ7XG4gIG9uTW91c2VMZWF2ZT86IChkYXRhOiBBcmNEYXRhPERhdGE+KSA9PiB2b2lkO1xuICBvbk1vdXNlQ2xpY2s/OiAoZGF0YTogQXJjRGF0YTxEYXRhPikgPT4gdm9pZDtcbn07XG5cbmZ1bmN0aW9uIFBpZUxlZ2VuZDxEYXRhID0gdm9pZD4oeyBhcmNzLCBhY3RpdmVJZCwgLi4ub3RoZXIgfTogUGllTGVnZW5kUHJvcHM8RGF0YT4pIHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2IHJvbGU9XCJncmlkXCIgY3NzPXtTdHlsZUxlZ2VuZChvdGhlci50aGVtZS5jaGFydHMucGllLnN0eWxlLmxlZ2VuZC5tYXJnaW4pfT5cbiAgICAgIHthcmNzLm1hcCgoYXJjLCBpbmRleCkgPT4gKFxuICAgICAgICA8UGllTGVnZW5kSXRlbVxuICAgICAgICAgIGtleT17YGFyYyR7aW5kZXh9YH1cbiAgICAgICAgICBhcmM9e2FyY31cbiAgICAgICAgICBhY3RpdmU9e2FjdGl2ZUlkID09PSBhcmMuZC5pZH1cbiAgICAgICAgICBoYXNCb3JkZXI9e2luZGV4IDwgYXJjcy5sZW5ndGggLSAxfVxuICAgICAgICAgIHsuLi5vdGhlcn1cbiAgICAgICAgLz5cbiAgICAgICkpfVxuICAgIDwvZGl2PlxuICApO1xufVxuXG4vKipcbiAqIGBQaWVDaGFydGAgY29tcG9uZW50IOKAlCByZW5kZXJzIHBpZSBjaGFydCB3aXRoIGFuIG9wdGlvbmFsIGxlZ2VuZCxcbiAqIHN1cHBvcnRzIGludGVyYWN0aXZpdHkgdmlhIGJvdGggbGVnZW5kIGFuZCBwaWUgcHJlc2VudGF0aW9uLlxuICovXG5mdW5jdGlvbiBQaWVDaGFydDxEYXRhID0gdm9pZD4oe1xuICBkYXRhLFxuICBjb2xvclNjaGVtZSxcbiAgY29sb3IsXG4gIHdpZHRoLFxuICBzaXplLFxuICBmb3JtYXRWYWx1ZSxcbiAgdG90YWxWYWx1ZSxcbiAgdG90YWxMYWJlbCxcbiAgZW1wdHlUZXh0LFxuICB0b29sdGlwVmlzaWJsZSA9IHRydWUsXG4gIGxlZ2VuZFZpc2libGUsXG4gIG9uQ2xpY2ssXG4gIGNvbG9yTW9kZSxcbn06IFBpZUNoYXJ0UHJvcHM8RGF0YT4pIHtcbiAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpO1xuICBjb25zdCBhY3R1YWxDb2xvck1vZGUgPSB1c2VDb2xvck1vZGUoY29sb3JNb2RlKTtcbiAgY29uc3QgcGFsZXR0ZSA9IHRoZW1lLnBhbGV0dGVbYWN0dWFsQ29sb3JNb2RlXTtcbiAgY29uc3QgdmlzdWFsU3R5bGUgPSB0aGVtZS5jaGFydHMucGllLnN0eWxlO1xuICBjb25zdCB2aXN1YWxBcHBlYXJhbmNlID0gdGhlbWUuY2hhcnRzLnBpZS5hcHBlYXJhbmNlKHBhbGV0dGUsIGFjdHVhbENvbG9yTW9kZSwgdW5kZWZpbmVkLCBcIm5vbmVcIik7XG5cbiAgY29uc3QgW2FyY3MsIHRvdGFsQWN0dWFsXSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChkYXRhID09IG51bGwgfHwgZGF0YS5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBbW10sIDBdO1xuICAgIH1cblxuICAgIGNvbnN0IG91dGVyUiA9IHNpemUgLyAyO1xuICAgIGNvbnN0IGlubmVyUiA9IG91dGVyUiAqIFJBRElVU19CQU5EO1xuXG4gICAgY29uc3QgZ2VuZXJhdG9yT3V0ZXIgPSBhcmM8UGllQXJjRGF0dW08UGllQ2hhcnREYXR1bTxEYXRhPj4+KClcbiAgICAgIC5vdXRlclJhZGl1cyhvdXRlclIpXG4gICAgICAuaW5uZXJSYWRpdXMob3V0ZXJSICogUkFESVVTX0JBTkQpO1xuXG4gICAgY29uc3QgZ2VuZXJhdG9ySW5uZXIgPSBhcmM8UGllQXJjRGF0dW08UGllQ2hhcnREYXR1bTxEYXRhPj4+KClcbiAgICAgIC5vdXRlclJhZGl1cyhpbm5lclIpXG4gICAgICAuaW5uZXJSYWRpdXMoaW5uZXJSICogUkFESVVTX0JBTkQpO1xuXG4gICAgY29uc3QgZ2VuZXJhdG9ySG92ZXIgPSBhcmM8UGllQXJjRGF0dW08UGllQ2hhcnREYXR1bTxEYXRhPj4+KClcbiAgICAgIC5vdXRlclJhZGl1cyhvdXRlclIpXG4gICAgICAuaW5uZXJSYWRpdXMob3V0ZXJSICogUkFESVVTX0RFQUQpO1xuXG4gICAgY29uc3Qgc2xpY2VzID0gQXJyYXkuZnJvbShkYXRhKTtcbiAgICBjb25zdCBjb3VudCA9IHNsaWNlcy5sZW5ndGg7XG5cbiAgICAvLyBtaW5pbXVtIG51bWJlciBvZiBjb2xvcnMgdG8gcXVhbnRpemUgdGhlIHNwZWN0cnVtIGludG9cbiAgICBjb25zdCBNSU5fU0hBREVTID0gNTtcblxuICAgIGxldCBjb2xvclNjYWxlOiBTY2FsZVF1YW50aXplPENvbG9yPjtcbiAgICBpZiAoY29sb3JTY2hlbWUgIT0gbnVsbCkge1xuICAgICAgY29uc3QgaW50ZXJwb2xhdG9yID0gZ2V0Q29sb3JJbnRlcnBvbGF0b3IocGFsZXR0ZSwgY29sb3JTY2hlbWUpO1xuICAgICAgY29uc3QgcmVkdWNlZCA9ICh0OiBudW1iZXIpID0+IGludGVycG9sYXRvcih0ICogMC44ICsgMC4xKTsgLy8gcmVkdWNlIHJhbmdlIHRvIGF2b2lkIHRvbyBsaWdodC9kYXJrIGNvbG9yc1xuICAgICAgY29sb3JTY2FsZSA9IHNjYWxlUXVhbnRpemUodGFrZShxdWFudGl6ZShyZWR1Y2VkLCBNYXRoLm1heChjb3VudCwgTUlOX1NIQURFUykpLCBjb3VudCkpLmRvbWFpbihbMCwgY291bnRdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgY29sb3JzID0gZ2V0Q29sb3JNYXAocGFsZXR0ZSwgY291bnQpLm1hcCgocikgPT4gcmVzb2x2ZVBhbGV0dGVSZWZlcmVuY2UocGFsZXR0ZSwgcikpO1xuICAgICAgY29sb3JTY2FsZSA9IHNjYWxlUXVhbnRpemUodGFrZShjb2xvcnMsIGNvdW50KSkuZG9tYWluKFswLCBjb3VudF0pO1xuICAgIH1cblxuICAgIGxldCB0b3RhbCA9IDA7XG4gICAgY29uc3QgYXJjczogQXJjRGF0YTxEYXRhPltdID0gW107XG5cbiAgICBjb25zdCBnZW5lcmF0b3IgPSBwaWU8UGllQ2hhcnREYXR1bTxEYXRhPj4oKVxuICAgICAgLnNvcnQobnVsbClcbiAgICAgIC52YWx1ZSgoZCkgPT4gZC52YWx1ZSlcbiAgICAgIC5wYWRBbmdsZShQQURfQU5HTEUpO1xuXG4gICAgZ2VuZXJhdG9yKHNsaWNlcykuZm9yRWFjaCgoZCkgPT4ge1xuICAgICAgY29uc3QgW3gsIHldID0gZ2VuZXJhdG9yT3V0ZXIuY2VudHJvaWQoZCk7XG4gICAgICB0b3RhbCArPSBkLmRhdGEudmFsdWU7XG5cbiAgICAgIGxldCBjID0gZC5kYXRhLmNvbG9yO1xuICAgICAgaWYgKHR5cGVvZiBjb2xvciA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIGMgPSBjb2xvcihkLmRhdGEpO1xuICAgICAgfVxuXG4gICAgICAvLyB1c2UgYXJjIGluZGV4IHRvIGVzdGFibGlzaCB0aGUgY29sb3IgYmFzZWQgb24gdGhlIGNvbG9yIHNjaGVtZVxuICAgICAgaWYgKGMgPT0gbnVsbCkge1xuICAgICAgICBjID0gY29sb3JTY2FsZShkLmluZGV4KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGMgPSByZXNvbHZlTWFwcGVkQ29sb3IocGFsZXR0ZSwgYyk7XG4gICAgICB9XG5cbiAgICAgIGFyY3MucHVzaCh7XG4gICAgICAgIGQ6IGQuZGF0YSxcbiAgICAgICAgYzogYyxcbiAgICAgICAgeDogeCArIG91dGVyUixcbiAgICAgICAgeTogeSArIG91dGVyUixcbiAgICAgICAgcDogZC5kYXRhLnZhbHVlLFxuICAgICAgICBwYXRoOiB7XG4gICAgICAgICAgb3V0ZXI6IGdlbmVyYXRvck91dGVyKGQpID8/IHVuZGVmaW5lZCxcbiAgICAgICAgICBpbm5lcjogZ2VuZXJhdG9ySW5uZXIoZCkgPz8gdW5kZWZpbmVkLFxuICAgICAgICAgIGhvdmVyOiBnZW5lcmF0b3JIb3ZlcihkKSA/PyB1bmRlZmluZWQsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGlmICh0b3RhbCA+IDApIHtcbiAgICAgIGFyY3MuZm9yRWFjaCgoYXJjKSA9PiB7XG4gICAgICAgIGFyYy5wID0gKDEwMCAqIGFyYy5wKSAvIHRvdGFsO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIFthcmNzLCB0b3RhbF07XG4gIH0sIFtkYXRhLCBzaXplLCBjb2xvclNjaGVtZSwgY29sb3IsIHBhbGV0dGVdKTtcblxuICBjb25zdCBbY3VycmVudCwgc2V0Q3VycmVudF0gPSB1c2VTdGF0ZTx7IGFyYzogQXJjRGF0YTxEYXRhPjsgbGVnZW5kOiBib29sZWFuIH0gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgY29uc3Qgb25Nb3VzZUxlYXZlID0gdXNlQ2FsbGJhY2soKCkgPT4gc2V0Q3VycmVudCh1bmRlZmluZWQpLCBbXSk7XG4gIGNvbnN0IG9uTW91c2VFbnRlciA9IHVzZUNhbGxiYWNrKChkOiBBcmNEYXRhPERhdGE+KSA9PiBzZXRDdXJyZW50KHsgYXJjOiBkLCBsZWdlbmQ6IGZhbHNlIH0pLCBbXSk7XG4gIGNvbnN0IG9uTW91c2VDbGljayA9IHVzZUNhbGxiYWNrKFxuICAgIChkOiBBcmNEYXRhPERhdGE+KSA9PiB7XG4gICAgICBpZiAob25DbGljayAhPSBudWxsKSB7XG4gICAgICAgIG9uQ2xpY2soZC5kKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFtvbkNsaWNrXVxuICApO1xuXG4gIGNvbnN0IG9uTW91c2VFbnRlckxlZ2VuZCA9IHVzZUNhbGxiYWNrKChkOiBBcmNEYXRhPERhdGE+KSA9PiBzZXRDdXJyZW50KHsgYXJjOiBkLCBsZWdlbmQ6IHRydWUgfSksIFtdKTtcblxuICBjb25zdCBjaGFydCA9XG4gICAgYXJjcy5sZW5ndGggPT09IDAgPyAoXG4gICAgICA8ZGl2IGNzcz17U3R5bGVDaGFydH0gc3R5bGU9e3sgd2lkdGg6IHNpemUsIGhlaWdodDogc2l6ZSB9fT5cbiAgICAgICAgPFBpZUVtcHR5IHNpemU9e3NpemV9IGNvbG9yPXt2aXN1YWxBcHBlYXJhbmNlLmJsYW5rfSAvPlxuICAgICAgICA8ZGl2IGNzcz17U3R5bGVDb250ZW50fT5cbiAgICAgICAgICA8UGFyYWdyYXBoIGNvbG9yPXt2aXN1YWxBcHBlYXJhbmNlLmVtcHR5fSB7Li4udmlzdWFsU3R5bGUuZm9udC5lbXB0eX0gYWxpZ25tZW50PVwiY2VudGVyXCI+XG4gICAgICAgICAgICB7ZW1wdHlUZXh0fVxuICAgICAgICAgIDwvUGFyYWdyYXBoPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICkgOiAoXG4gICAgICA8ZGl2IGNzcz17U3R5bGVDaGFydH0gc3R5bGU9e3sgd2lkdGg6IHNpemUsIGhlaWdodDogc2l6ZSB9fSBvbk1vdXNlTGVhdmU9e29uTW91c2VMZWF2ZX0+XG4gICAgICAgIHtjdXJyZW50ICYmIDxQaWVBcmNzIGFyY3M9e2FyY3N9IHNpemU9e3NpemV9IGFjdGl2ZUlkPXtjdXJyZW50LmFyYy5kLmlkfSBzaGFkb3cgb25Nb3VzZUVudGVyPXtvbk1vdXNlRW50ZXJ9IC8+fVxuICAgICAgICB7KHRvdGFsVmFsdWUgfHwgdG90YWxBY3R1YWwgPiAwKSAmJiAoXG4gICAgICAgICAgPGRpdiBjc3M9e1N0eWxlQ29udGVudH0+XG4gICAgICAgICAgICA8VGV4dCBjb2xvcj17dmlzdWFsQXBwZWFyYW5jZS52YWx1ZX0gey4uLnZpc3VhbFN0eWxlLmZvbnQudmFsdWV9IGFsaWdubWVudD1cImNlbnRlclwiPlxuICAgICAgICAgICAgICB7dG90YWxWYWx1ZSA/PyAoZm9ybWF0VmFsdWUgIT0gbnVsbCA/IGZvcm1hdFZhbHVlKHRvdGFsQWN0dWFsKSA6IHRvdGFsQWN0dWFsLnRvTG9jYWxlU3RyaW5nKCkpfVxuICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICAge3RvdGFsTGFiZWwgJiYgKFxuICAgICAgICAgICAgICA8UGFyYWdyYXBoIGNvbG9yPXt2aXN1YWxBcHBlYXJhbmNlLnRpdGxlfSB7Li4udmlzdWFsU3R5bGUuZm9udC50aXRsZX0gYWxpZ25tZW50PVwiY2VudGVyXCI+XG4gICAgICAgICAgICAgICAge3RvdGFsTGFiZWx9XG4gICAgICAgICAgICAgIDwvUGFyYWdyYXBoPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKX1cbiAgICAgICAgPFBpZUFyY3MgYXJjcz17YXJjc30gc2l6ZT17c2l6ZX0gYWN0aXZlSWQ9e2N1cnJlbnQ/LmFyYy5kLmlkfSBvbk1vdXNlRW50ZXI9e29uTW91c2VFbnRlcn0gLz5cbiAgICAgICAgPFBpZUFyY3NIb3ZlclxuICAgICAgICAgIGFyY3M9e2FyY3N9XG4gICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICBvbk1vdXNlRW50ZXI9e29uTW91c2VFbnRlcn1cbiAgICAgICAgICBvbk1vdXNlQ2xpY2s9e29uQ2xpY2sgPyBvbk1vdXNlQ2xpY2sgOiB1bmRlZmluZWR9XG4gICAgICAgIC8+XG4gICAgICAgIHt0b29sdGlwVmlzaWJsZSAmJiBjdXJyZW50ICYmICFjdXJyZW50LmxlZ2VuZCAmJiAoXG4gICAgICAgICAgPGRpdiBjc3M9e1N0eWxlVG9vbHRpcCh0aGVtZS5hbmltYXRpb24pfSBzdHlsZT17eyB3aWR0aDogc2l6ZSwgaGVpZ2h0OiBzaXplIH19PlxuICAgICAgICAgICAgPGRpdiBzdHlsZT17eyBsZWZ0OiBNYXRoLnJvdW5kKGN1cnJlbnQuYXJjLngpLCB0b3A6IE1hdGgucm91bmQoY3VycmVudC5hcmMueSkgfX0+XG4gICAgICAgICAgICAgIDxUb29sdGlwIGNvbG9yTW9kZT17YWN0dWFsQ29sb3JNb2RlfT5cbiAgICAgICAgICAgICAgICA8UGFuZSB2ZXJ0aWNhbEFsaWdubWVudD1cImNlbnRlclwiIG9yaWVudGF0aW9uPVwiaG9yaXpvbnRhbFwiPlxuICAgICAgICAgICAgICAgICAgPENoYXJ0TWFya2VyIHRoZW1lPXt0aGVtZX0gY29sb3JNb2RlPXthY3R1YWxDb2xvck1vZGV9IGNvbG9yPXtjdXJyZW50LmFyYy5jfSAvPlxuICAgICAgICAgICAgICAgICAgPFRleHRcbiAgICAgICAgICAgICAgICAgICAgY29sb3I9e3Zpc3VhbEFwcGVhcmFuY2UudG9vbHRpcC5sYWJlbH1cbiAgICAgICAgICAgICAgICAgICAgey4uLnZpc3VhbFN0eWxlLmZvbnQudG9vbHRpcC5sYWJlbH1cbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luTGVmdD17dmlzdWFsU3R5bGUudG9vbHRpcC5tYXJrZXJTcGFjaW5nfVxuICAgICAgICAgICAgICAgICAgICBub3dyYXA+XG4gICAgICAgICAgICAgICAgICAgIHtjdXJyZW50LmFyYy5kLmxhYmVsfVxuICAgICAgICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICAgICAgICAgPFRleHRcbiAgICAgICAgICAgICAgICAgICAgY29sb3I9e3Zpc3VhbEFwcGVhcmFuY2UudG9vbHRpcC52YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgey4uLnZpc3VhbFN0eWxlLmZvbnQudG9vbHRpcC52YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luTGVmdD17dmlzdWFsU3R5bGUudG9vbHRpcC52YWx1ZVNwYWNpbmd9XG4gICAgICAgICAgICAgICAgICAgIG5vd3JhcD5cbiAgICAgICAgICAgICAgICAgICAge2Zvcm1hdFZhbHVlICE9IG51bGwgPyBmb3JtYXRWYWx1ZShjdXJyZW50LmFyYy5kLnZhbHVlKSA6IGN1cnJlbnQuYXJjLmQudmFsdWUudG9Mb2NhbGVTdHJpbmcoKX1cbiAgICAgICAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICAgICAgICA8L1BhbmU+XG4gICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY3NzPXtTdHlsZUNvbnRhaW5lcn0gc3R5bGU9e3sgd2lkdGg6IHdpZHRoLCBtaW5IZWlnaHQ6IHNpemUgfX0+XG4gICAgICB7Y2hhcnR9XG4gICAgICB7bGVnZW5kVmlzaWJsZSAmJiAoXG4gICAgICAgIDxQaWVMZWdlbmRcbiAgICAgICAgICB0aGVtZT17dGhlbWV9XG4gICAgICAgICAgY29sb3JNb2RlPXthY3R1YWxDb2xvck1vZGV9XG4gICAgICAgICAgYXJjcz17YXJjc31cbiAgICAgICAgICBmb3JtYXRWYWx1ZT17Zm9ybWF0VmFsdWV9XG4gICAgICAgICAgYWN0aXZlSWQ9e2N1cnJlbnQ/LmFyYy5kLmlkfVxuICAgICAgICAgIG9uTW91c2VFbnRlcj17b25Nb3VzZUVudGVyTGVnZW5kfVxuICAgICAgICAgIG9uTW91c2VMZWF2ZT17b25Nb3VzZUxlYXZlfVxuICAgICAgICAgIG9uTW91c2VDbGljaz17b25DbGljayA/IG9uTW91c2VDbGljayA6IHVuZGVmaW5lZH1cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgPC9kaXY+XG4gICk7XG59XG5cblBpZUNoYXJ0LmRpc3BsYXlOYW1lID0gXCJQaWVDaGFydFwiO1xuUGllQ2hhcnQucHJvcFR5cGVzID0gUGllQ2hhcnRQcm9wVHlwZXM7XG5cbmV4cG9ydCBkZWZhdWx0IFBpZUNoYXJ0O1xuIl19 */", toString: _EMOTION_STRINGIFIED_CSS_ERROR__ }; const StyleInteractive = process.env.NODE_ENV === "production" ? { name: "e0dnmk", styles: "cursor:pointer" } : { name: "xag3c0-StyleInteractive", styles: "cursor:pointer;label:StyleInteractive;", map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9waWUvUGllQ2hhcnQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThCNEIiLCJmaWxlIjoiLi4vLi4vc3JjL3BpZS9QaWVDaGFydC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdGFrZSBmcm9tIFwibG9kYXNoL3Rha2VcIjtcbmltcG9ydCB7XG4gIEFuaW1hdGlvblN0eWxlLFxuICBDb2xvcixcbiAgQ29sb3JNb2RlLFxuICBnZXRDb2xvck1hcCxcbiAgcmVzb2x2ZU1hcHBlZENvbG9yLFxuICByZXNvbHZlUGFsZXR0ZVJlZmVyZW5jZSxcbn0gZnJvbSBcIkBhcHB0YW5lL3JlYWN0LXVpLWNvcmVcIjtcbmltcG9ydCB7IFBhbmUgfSBmcm9tIFwiQGFwcHRhbmUvcmVhY3QtdWktcGFuZVwiO1xuaW1wb3J0IHsgVGhlbWUsIHVzZUNvbG9yTW9kZSwgdXNlVGhlbWUgfSBmcm9tIFwiQGFwcHRhbmUvcmVhY3QtdWktdGhlbWVcIjtcbmltcG9ydCB7IFRvb2x0aXAgfSBmcm9tIFwiQGFwcHRhbmUvcmVhY3QtdWktdG9vbHRpcFwiO1xuaW1wb3J0IHsgUGFyYWdyYXBoLCBUZXh0IH0gZnJvbSBcIkBhcHB0YW5lL3JlYWN0LXVpLXR5cG9ncmFwaHlcIjtcbmltcG9ydCB7IGNzcyB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBxdWFudGl6ZSB9IGZyb20gXCJkMy1pbnRlcnBvbGF0ZVwiO1xuaW1wb3J0IHsgU2NhbGVRdWFudGl6ZSwgc2NhbGVRdWFudGl6ZSB9IGZyb20gXCJkMy1zY2FsZVwiO1xuaW1wb3J0IHsgYXJjLCBwaWUsIFBpZUFyY0RhdHVtIH0gZnJvbSBcImQzLXNoYXBlXCI7XG5pbXBvcnQgeyBnZXRDb2xvckludGVycG9sYXRvciB9IGZyb20gXCIuLi9jb21tb24vQ29sb3JTY2hlbWUuanNcIjtcbmltcG9ydCB7IENoYXJ0TWFya2VyIH0gZnJvbSBcIi4uL3BhcnRzL0NoYXJ0TWFya2VyLmpzXCI7XG5pbXBvcnQgeyBQaWVDaGFydERhdHVtLCBQaWVDaGFydFByb3BzLCBQaWVDaGFydFByb3BUeXBlcyB9IGZyb20gXCIuL1BpZUNoYXJ0LnR5cGVzLmpzXCI7XG5cbmNvbnN0IFN0eWxlQ29udGFpbmVyID0gY3NzYFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG5gO1xuXG5jb25zdCBTdHlsZUludGVyYWN0aXZlID0gY3NzYFxuICBjdXJzb3I6IHBvaW50ZXI7XG5gO1xuXG5jb25zdCBTdHlsZVRvb2x0aXAgPSAoYW5pbWF0aW9uOiBBbmltYXRpb25TdHlsZSkgPT4gY3NzYFxuICA+IGRpdiB7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogJHthbmltYXRpb24uZGVsYXl9bXM7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogJHthbmltYXRpb24uZHVyYXRpb259bXM7XG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ICR7YW5pbWF0aW9uLmZ1bmN0aW9ufTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICB9XG5cbiAgLy8gcHJldmVudHMgdG9vbHRpcCBmcm9tIHRyaWdnZXJpbmcgb25Nb3VzZUxlYXZlXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG5gO1xuXG5jb25zdCBTdHlsZUNoYXJ0ID0gY3NzYFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsZXg6IG5vbmU7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBTdHlsZUNvbnRlbnQgPSBjc3NgXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuYDtcblxuY29uc3QgU3R5bGVBcmNzID0gY3NzYFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gID4gc3ZnIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICA+IGcgPiBwYXRoIHtcbiAgICAgIHN0cm9rZTogbm9uZVxuICAgICAgc3Ryb2tlLXdpZHRoOiAwO1xuICAgIH1cbiAgfVxuYDtcblxuY29uc3QgU3R5bGVBcmNzSG92ZXIgPSBjc3NgXG4gID4gc3ZnID4gZyA+IHBhdGgge1xuICAgIHBvaW50ZXItZXZlbnRzOiB2aXNpYmxlO1xuICB9XG5gO1xuXG5jb25zdCBTdHlsZUxlZ2VuZCA9IChtYXJnaW46IG51bWJlcikgPT4gY3NzYFxuICBmbGV4OiBhdXRvO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nLWxlZnQ6ICR7bWFyZ2lufXB4O1xuYDtcblxuY29uc3QgU3R5bGVMZWdlbmRJdGVtID0gKGhlaWdodDogbnVtYmVyLCBwYWRkaW5nOiBudW1iZXIpID0+IGNzc2BcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGhlaWdodDogJHtoZWlnaHR9cHg7XG4gIHBhZGRpbmc6IDAgJHtwYWRkaW5nfXB4O1xuXG4gID4gZGl2OmZpcnN0LW9mLXR5cGUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleDogYXV0bztcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuYDtcblxuY29uc3QgU3R5bGVMZWdlbmRJdGVtQm9yZGVyID0gKGNvbG9yOiBDb2xvcikgPT4gY3NzYFxuICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggJHtjb2xvcn07XG5gO1xuXG5jb25zdCBTdHlsZUxlZ2VuZEl0ZW1BY3RpdmUgPSAoY29sb3I6IENvbG9yKSA9PiBjc3NgXG4gIGJhY2tncm91bmQ6ICR7Y29sb3J9O1xuYDtcblxuY29uc3QgU3R5bGVMZWdlbmRJdGVtVmFsdWUgPSAoc3BhY2luZzogbnVtYmVyKSA9PiBjc3NgXG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBmbGV4OiBub25lO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgcGFkZGluZy1sZWZ0OiAke3NwYWNpbmd9cHg7XG5gO1xuXG5jb25zdCBTdHlsZUxlZ2VuZEl0ZW1QZXJjZW50ID0gKHNwYWNpbmc6IG51bWJlcikgPT4gY3NzYFxuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgZmxleDogbm9uZTtcbiAgd2lkdGg6ICR7NDAgKyBzcGFjaW5nfXB4O1xuICBwYWRkaW5nLWxlZnQ6ICR7c3BhY2luZ31weDtcbmA7XG5cbmNvbnN0IFBBRF9BTkdMRSA9IDAuMDA4NzI2NjU7IC8vIHJhZGlhbnMgKH4wLjUgZGVncmVlKVxuY29uc3QgUkFESVVTX0JBTkQgPSAwLjk1O1xuY29uc3QgUkFESVVTX0RFQUQgPSAwLjM1O1xuY29uc3QgT1BBQ0lUWV9TSEFET1cgPSAwLjI7XG5jb25zdCBPUEFDSVRZX0lOQUNUSVZFID0gMC41O1xuXG50eXBlIEFyY0RhdGE8RGF0YSA9IHZvaWQ+ID0ge1xuICBkOiBQaWVDaGFydERhdHVtPERhdGE+O1xuICBjOiBDb2xvcjtcbiAgeDogbnVtYmVyO1xuICB5OiBudW1iZXI7XG4gIHA6IG51bWJlcjtcbiAgcGF0aDoge1xuICAgIG91dGVyPzogc3RyaW5nO1xuICAgIGlubmVyPzogc3RyaW5nO1xuICAgIGhvdmVyPzogc3RyaW5nO1xuICB9O1xufTtcblxudHlwZSBQaWVFbXB0eVByb3BzID0ge1xuICBzaXplOiBudW1iZXI7XG4gIGNvbG9yOiBDb2xvcjtcbn07XG5cbmZ1bmN0aW9uIFBpZUVtcHR5KHsgc2l6ZSwgY29sb3IgfTogUGllRW1wdHlQcm9wcykge1xuICBjb25zdCByYWRpdXMgPSBzaXplIC8gMjtcbiAgY29uc3QgcGF0aCA9XG4gICAgYXJjKCkoe1xuICAgICAgb3V0ZXJSYWRpdXM6IHJhZGl1cyxcbiAgICAgIGlubmVyUmFkaXVzOiByYWRpdXMgKiBSQURJVVNfQkFORCxcbiAgICAgIHN0YXJ0QW5nbGU6IDAsXG4gICAgICBlbmRBbmdsZTogMiAqIE1hdGguUEksXG4gICAgfSkgPz8gdW5kZWZpbmVkO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjc3M9e1N0eWxlQXJjc30+XG4gICAgICA8c3ZnIHZpZXdCb3g9e2AwIDAgJHtzaXplfSAke3NpemV9YH0gd2lkdGg9e3NpemV9IGhlaWdodD17c2l6ZX0+XG4gICAgICAgIDxnIHRyYW5zZm9ybT17YHRyYW5zbGF0ZSgke3NpemUgLyAyfSwgJHtzaXplIC8gMn0pYH0+XG4gICAgICAgICAgPHBhdGggZD17cGF0aH0gZmlsbD17Y29sb3J9IC8+XG4gICAgICAgIDwvZz5cbiAgICAgIDwvc3ZnPlxuICAgIDwvZGl2PlxuICApO1xufVxuXG50eXBlIFBpZUFyY3NQcm9wczxEYXRhID0gdm9pZD4gPSB7XG4gIGFyY3M6IEFyY0RhdGE8RGF0YT5bXTtcbiAgc2l6ZTogbnVtYmVyO1xuICBhY3RpdmVJZD86IHN0cmluZztcbiAgc2hhZG93PzogYm9vbGVhbjtcbiAgb25Nb3VzZUVudGVyPzogKGRhdGE6IEFyY0RhdGE8RGF0YT4pID0+IHZvaWQ7XG4gIG9uTW91c2VDbGljaz86IChkYXRhOiBBcmNEYXRhPERhdGE+KSA9PiB2b2lkO1xufTtcblxuZnVuY3Rpb24gUGllQXJjczxEYXRhID0gdm9pZD4oeyBhcmNzLCBzaXplLCBhY3RpdmVJZCwgc2hhZG93LCBvbk1vdXNlRW50ZXIsIG9uTW91c2VDbGljayB9OiBQaWVBcmNzUHJvcHM8RGF0YT4pIHtcbiAgY29uc3QgZWxlbWVudHM6IEpTWC5FbGVtZW50W10gPSBbXTtcbiAgYXJjcy5mb3JFYWNoKChhcmMsIGluZGV4KSA9PiB7XG4gICAgY29uc3Qgb3BhY2l0eSA9IHNoYWRvdyA/IE9QQUNJVFlfU0hBRE9XIDogYWN0aXZlSWQgPT0gbnVsbCB8fCBhY3RpdmVJZCA9PT0gYXJjLmQuaWQgPyAxIDogT1BBQ0lUWV9JTkFDVElWRTtcbiAgICBjb25zdCB2aXNpYmxlID0gIXNoYWRvdyB8fCBhY3RpdmVJZCA9PT0gYXJjLmQuaWQ7XG4gICAgaWYgKHZpc2libGUpIHtcbiAgICAgIGVsZW1lbnRzLnB1c2goXG4gICAgICAgIDxwYXRoXG4gICAgICAgICAga2V5PXtgYXJjJHtpbmRleH1gfVxuICAgICAgICAgIGQ9e3NoYWRvdyA/IGFyYy5wYXRoLmlubmVyIDogYXJjLnBhdGgub3V0ZXJ9XG4gICAgICAgICAgZmlsbD17YXJjLmN9XG4gICAgICAgICAgZmlsbE9wYWNpdHk9e29wYWNpdHl9XG4gICAgICAgICAgb25Nb3VzZUVudGVyPXtvbk1vdXNlRW50ZXIgPyAoKSA9PiBvbk1vdXNlRW50ZXIoYXJjKSA6IHVuZGVmaW5lZH1cbiAgICAgICAgICBvbk1vdXNlRG93bj17b25Nb3VzZUNsaWNrID8gKCkgPT4gb25Nb3VzZUNsaWNrKGFyYykgOiB1bmRlZmluZWR9XG4gICAgICAgIC8+XG4gICAgICApO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNzcz17U3R5bGVBcmNzfT5cbiAgICAgIDxzdmcgdmlld0JveD17YDAgMCAke3NpemV9ICR7c2l6ZX1gfSB3aWR0aD17c2l6ZX0gaGVpZ2h0PXtzaXplfT5cbiAgICAgICAgPGcgdHJhbnNmb3JtPXtgdHJhbnNsYXRlKCR7c2l6ZSAvIDJ9LCAke3NpemUgLyAyfSlgfT57ZWxlbWVudHN9PC9nPlxuICAgICAgPC9zdmc+XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbmZ1bmN0aW9uIFBpZUFyY3NIb3ZlcjxEYXRhID0gdm9pZD4oe1xuICBhcmNzLFxuICBzaXplLFxuICBvbk1vdXNlRW50ZXIsXG4gIG9uTW91c2VDbGljayxcbn06IFBpY2s8UGllQXJjc1Byb3BzPERhdGE+LCBcImFyY3NcIiB8IFwic2l6ZVwiIHwgXCJvbk1vdXNlRW50ZXJcIiB8IFwib25Nb3VzZUNsaWNrXCI+KSB7XG4gIHJldHVybiBvbk1vdXNlRW50ZXIgPyAoXG4gICAgPGRpdiBjc3M9e1tTdHlsZUFyY3MsIFN0eWxlQXJjc0hvdmVyLCBvbk1vdXNlQ2xpY2sgJiYgU3R5bGVJbnRlcmFjdGl2ZV19PlxuICAgICAgPHN2ZyB2aWV3Qm94PXtgMCAwICR7c2l6ZX0gJHtzaXplfWB9IHdpZHRoPXtzaXplfSBoZWlnaHQ9e3NpemV9PlxuICAgICAgICA8ZyB0cmFuc2Zvcm09e2B0cmFuc2xhdGUoJHtzaXplIC8gMn0sICR7c2l6ZSAvIDJ9KWB9PlxuICAgICAgICAgIHthcmNzLm1hcCgoYXJjLCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAga2V5PXtgYXJjJHtpbmRleH1gfVxuICAgICAgICAgICAgICBkPXthcmMucGF0aC5ob3Zlcn1cbiAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgICBvbk1vdXNlRW50ZXI9eygpID0+IG9uTW91c2VFbnRlcihhcmMpfVxuICAgICAgICAgICAgICBvbk1vdXNlRG93bj17b25Nb3VzZUNsaWNrID8gKCkgPT4gb25Nb3VzZUNsaWNrKGFyYykgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICkpfVxuICAgICAgICA8L2c+XG4gICAgICA8L3N2Zz5cbiAgICA8L2Rpdj5cbiAgKSA6IG51bGw7XG59XG5cbnR5cGUgUGllTGVnZW5kSXRlbVByb3BzPERhdGEgPSB2b2lkPiA9IHtcbiAgdGhlbWU6IFRoZW1lO1xuICBjb2xvck1vZGU6IENvbG9yTW9kZTtcbiAgYXJjOiBBcmNEYXRhPERhdGE+O1xuICBmb3JtYXRWYWx1ZT86ICh2YWx1ZTogbnVtYmVyKSA9PiBzdHJpbmc7XG4gIGFjdGl2ZT86IGJvb2xlYW47XG4gIGhhc0JvcmRlcj86IGJvb2xlYW47XG4gIG9uTW91c2VFbnRlcj86IChkYXRhOiBBcmNEYXRhPERhdGE+KSA9PiB2b2lkO1xuICBvbk1vdXNlTGVhdmU/OiAoZGF0YTogQXJjRGF0YTxEYXRhPikgPT4gdm9pZDtcbiAgb25Nb3VzZUNsaWNrPzogKGRhdGE6IEFyY0RhdGE8RGF0YT4pID0+IHZvaWQ7XG59O1xuXG5mdW5jdGlvbiBQaWVMZWdlbmRJdGVtPERhdGEgPSB2b2lkPih7XG4gIHRoZW1lLFxuICBjb2xvck1vZGUsXG4gIGFyYyxcbiAgZm9ybWF0VmFsdWUsXG4gIGFjdGl2ZSxcbiAgaGFzQm9yZGVyLFxuICBvbk1vdXNlRW50ZXIsXG4gIG9uTW91c2VMZWF2ZSxcbiAgb25Nb3VzZUNsaWNrLFxufTogUGllTGVnZW5kSXRlbVByb3BzPERhdGE+KSB7XG4gIGNvbnN0IHZpc3VhbFN0eWxlID0gdGhlbWUuY2hhcnRzLnBpZS5zdHlsZTtcbiAgY29uc3QgdmlzdWFsQXBwZWFyYW5jZSA9IHRoZW1lLmNoYXJ0cy5waWUuYXBwZWFyYW5jZSh0aGVtZS5wYWxldHRlW2NvbG9yTW9kZV0sIGNvbG9yTW9kZSwgdW5kZWZpbmVkLCBcIm5vbmVcIik7XG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgcm9sZT1cInJvd1wiXG4gICAgICBjc3M9e1tcbiAgICAgICAgU3R5bGVMZWdlbmRJdGVtKHZpc3VhbFN0eWxlLmxlZ2VuZC5pdGVtSGVpZ2h0LCB2aXN1YWxTdHlsZS5sZWdlbmQuaXRlbVBhZGRpbmcpLFxuICAgICAgICBvbk1vdXNlQ2xpY2sgJiYgU3R5bGVJbnRlcmFjdGl2ZSxcbiAgICAgICAgYWN0aXZlICYmIFN0eWxlTGVnZW5kSXRlbUFjdGl2ZSh2aXN1YWxBcHBlYXJhbmNlLmxlZ2VuZC5oaWdobGlnaHQpLFxuICAgICAgICBoYXNCb3JkZXIgJiYgU3R5bGVMZWdlbmRJdGVtQm9yZGVyKHZpc3VhbEFwcGVhcmFuY2UubGVnZW5kLmJvcmRlciksXG4gICAgICBdfVxuICAgICAgb25Nb3VzZUVudGVyPXtvbk1vdXNlRW50ZXIgPyAoKSA9PiBvbk1vdXNlRW50ZXIoYXJjKSA6IHVuZGVmaW5lZH1cbiAgICAgIG9uTW91c2VMZWF2ZT17b25Nb3VzZUxlYXZlID8gKCkgPT4gb25Nb3VzZUxlYXZlKGFyYykgOiB1bmRlZmluZWR9XG4gICAgICBvbkNsaWNrPXtvbk1vdXNlQ2xpY2sgPyAoKSA9PiBvbk1vdXNlQ2xpY2soYXJjKSA6IHVuZGVmaW5lZH0+XG4gICAgICA8ZGl2IHJvbGU9XCJncmlkY2VsbFwiPlxuICAgICAgICA8Q2hhcnRNYXJrZXIgdGhlbWU9e3RoZW1lfSBjb2xvck1vZGU9e2NvbG9yTW9kZX0gY29sb3I9e2FyYy5jfSAvPlxuICAgICAgICA8VGV4dFxuICAgICAgICAgIGNvbG9yPXt2aXN1YWxBcHBlYXJhbmNlLmxlZ2VuZC5sYWJlbH1cbiAgICAgICAgICB7Li4udmlzdWFsU3R5bGUuZm9udC5sZWdlbmQubGFiZWx9XG4gICAgICAgICAgbWFyZ2luTGVmdD17dmlzdWFsU3R5bGUubGVnZW5kLm1hcmtlclNwYWNpbmd9XG4gICAgICAgICAgbm93cmFwXG4gICAgICAgICAgZWxsaXBzaXM+XG4gICAgICAgICAge2FyYy5kLmxhYmVsfVxuICAgICAgICA8L1RleHQ+XG4gICAgICAgIDxkaXYgY3NzPXtTdHlsZUxlZ2VuZEl0ZW1WYWx1ZSh2aXN1YWxTdHlsZS5sZWdlbmQuaXRlbVNwYWNpbmcpfT5cbiAgICAgICAgICA8VGV4dCBjb2xvcj17dmlzdWFsQXBwZWFyYW5jZS5sZWdlbmQudmFsdWV9IHsuLi52aXN1YWxTdHlsZS5mb250LmxlZ2VuZC52YWx1ZX0gbm93cmFwPlxuICAgICAgICAgICAge2Zvcm1hdFZhbHVlICE9IG51bGwgPyBmb3JtYXRWYWx1ZShhcmMuZC52YWx1ZSkgOiBhcmMuZC52YWx1ZS50b0xvY2FsZVN0cmluZygpfVxuICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgcm9sZT1cImdyaWRjZWxsXCIgY3NzPXtTdHlsZUxlZ2VuZEl0ZW1QZXJjZW50KHZpc3VhbFN0eWxlLmxlZ2VuZC5pdGVtU3BhY2luZyl9PlxuICAgICAgICA8VGV4dCBjb2xvcj17dmlzdWFsQXBwZWFyYW5jZS5sZWdlbmQucGVyY2VudH0gey4uLnZpc3VhbFN0eWxlLmZvbnQubGVnZW5kLnZhbHVlfSBub3dyYXA+XG4gICAgICAgICAge2FyYy5wLnRvRml4ZWQoMSl9JVxuICAgICAgICA8L1RleHQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxudHlwZSBQaWVMZWdlbmRQcm9wczxEYXRhID0gdm9pZD4gPSB7XG4gIHRoZW1lOiBUaGVtZTtcbiAgY29sb3JNb2RlOiBDb2xvck1vZGU7XG4gIGFyY3M6IEFyY0RhdGE8RGF0YT5bXTtcbiAgZm9ybWF0VmFsdWU/OiAodmFsdWU6IG51bWJlcikgPT4gc3RyaW5nO1xuICBhY3RpdmVJZD86IHN0cmluZztcbiAgb25Nb3VzZUVudGVyPzogKGRhdGE6IEFyY0RhdGE8RGF0YT4pID0+IHZvaWQ7XG4gIG9uTW91c2VMZWF2ZT86IChkYXRhOiBBcmNEYXRhPERhdGE+KSA9PiB2b2lkO1xuICBvbk1vdXNlQ2xpY2s/OiAoZGF0YTogQXJjRGF0YTxEYXRhPikgPT4gdm9pZDtcbn07XG5cbmZ1bmN0aW9uIFBpZUxlZ2VuZDxEYXRhID0gdm9pZD4oeyBhcmNzLCBhY3RpdmVJZCwgLi4ub3RoZXIgfTogUGllTGVnZW5kUHJvcHM8RGF0YT4pIHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2IHJvbGU9XCJncmlkXCIgY3NzPXtTdHlsZUxlZ2VuZChvdGhlci50aGVtZS5jaGFydHMucGllLnN0eWxlLmxlZ2VuZC5tYXJnaW4pfT5cbiAgICAgIHthcmNzLm1hcCgoYXJjLCBpbmRleCkgPT4gKFxuICAgICAgICA8UGllTGVnZW5kSXRlbVxuICAgICAgICAgIGtleT17YGFyYyR7aW5kZXh9YH1cbiAgICAgICAgICBhcmM9e2FyY31cbiAgICAgICAgICBhY3RpdmU9e2FjdGl2ZUlkID09PSBhcmMuZC5pZH1cbiAgICAgICAgICBoYXNCb3JkZXI9e2luZGV4IDwgYXJjcy5sZW5ndGggLSAxfVxuICAgICAgICAgIHsuLi5vdGhlcn1cbiAgICAgICAgLz5cbiAgICAgICkpfVxuICAgIDwvZGl2PlxuICApO1xufVxuXG4vKipcbiAqIGBQaWVDaGFydGAgY29tcG9uZW50IOKAlCByZW5kZXJzIHBpZSBjaGFydCB3aXRoIGFuIG9wdGlvbmFsIGxlZ2VuZCxcbiAqIHN1cHBvcnRzIGludGVyYWN0aXZpdHkgdmlhIGJvdGggbGVnZW5kIGFuZCBwaWUgcHJlc2VudGF0aW9uLlxuICovXG5mdW5jdGlvbiBQaWVDaGFydDxEYXRhID0gdm9pZD4oe1xuICBkYXRhLFxuICBjb2xvclNjaGVtZSxcbiAgY29sb3IsXG4gIHdpZHRoLFxuICBzaXplLFxuICBmb3JtYXRWYWx1ZSxcbiAgdG90YWxWYWx1ZSxcbiAgdG90YWxMYWJlbCxcbiAgZW1wdHlUZXh0LFxuICB0b29sdGlwVmlzaWJsZSA9IHRydWUsXG4gIGxlZ2VuZFZpc2libGUsXG4gIG9uQ2xpY2ssXG4gIGNvbG9yTW9kZSxcbn06IFBpZUNoYXJ0UHJvcHM8RGF0YT4pIHtcbiAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpO1xuICBjb25zdCBhY3R1YWxDb2xvck1vZGUgPSB1c2VDb2xvck1vZGUoY29sb3JNb2RlKTtcbiAgY29uc3QgcGFsZXR0ZSA9IHRoZW1lLnBhbGV0dGVbYWN0dWFsQ29sb3JNb2RlXTtcbiAgY29uc3QgdmlzdWFsU3R5bGUgPSB0aGVtZS5jaGFydHMucGllLnN0eWxlO1xuICBjb25zdCB2aXN1YWxBcHBlYXJhbmNlID0gdGhlbWUuY2hhcnRzLnBpZS5hcHBlYXJhbmNlKHBhbGV0dGUsIGFjdHVhbENvbG9yTW9kZSwgdW5kZWZpbmVkLCBcIm5vbmVcIik7XG5cbiAgY29uc3QgW2FyY3MsIHRvdGFsQWN0dWFsXSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChkYXRhID09IG51bGwgfHwgZGF0YS5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBbW10sIDBdO1xuICAgIH1cblxuICAgIGNvbnN0IG91dGVyUiA9IHNpemUgLyAyO1xuICAgIGNvbnN0IGlubmVyUiA9IG91dGVyUiAqIFJBRElVU19CQU5EO1xuXG4gICAgY29uc3QgZ2VuZXJhdG9yT3V0ZXIgPSBhcmM8UGllQXJjRGF0dW08UGllQ2hhcnREYXR1bTxEYXRhPj4+KClcbiAgICAgIC5vdXRlclJhZGl1cyhvdXRlclIpXG4gICAgICAuaW5uZXJSYWRpdXMob3V0ZXJSICogUkFESVVTX0JBTkQpO1xuXG4gICAgY29uc3QgZ2VuZXJhdG9ySW5uZXIgPSBhcmM8UGllQXJjRGF0dW08UGllQ2hhcnREYXR1bTxEYXRhPj4+KClcbiAgICAgIC5vdXRlclJhZGl1cyhpbm5lclIpXG4gICAgICAuaW5uZXJSYWRpdXMoaW5uZXJSICogUkFESVVTX0JBTkQpO1xuXG4gICAgY29uc3QgZ2VuZXJhdG9ySG92ZXIgPSBhcmM8UGllQXJjRGF0dW08UGllQ2hhcnREYXR1bTxEYXRhPj4+KClcbiAgICAgIC5vdXRlclJhZGl1cyhvdXRlclIpXG4gICAgICAuaW5uZXJSYWRpdXMob3V0ZXJSICogUkFESVVTX0RFQUQpO1xuXG4gICAgY29uc3Qgc2xpY2VzID0gQXJyYXkuZnJvbShkYXRhKTtcbiAgICBjb25zdCBjb3VudCA9IHNsaWNlcy5sZW5ndGg7XG5cbiAgICAvLyBtaW5pbXVtIG51bWJlciBvZiBjb2xvcnMgdG8gcXVhbnRpemUgdGhlIHNwZWN0cnVtIGludG9cbiAgICBjb25zdCBNSU5fU0hBREVTID0gNTtcblxuICAgIGxldCBjb2xvclNjYWxlOiBTY2FsZVF1YW50aXplPENvbG9yPjtcbiAgICBpZiAoY29sb3JTY2hlbWUgIT0gbnVsbCkge1xuICAgICAgY29uc3QgaW50ZXJwb2xhdG9yID0gZ2V0Q29sb3JJbnRlcnBvbGF0b3IocGFsZXR0ZSwgY29sb3JTY2hlbWUpO1xuICAgICAgY29uc3QgcmVkdWNlZCA9ICh0OiBudW1iZXIpID0+IGludGVycG9sYXRvcih0ICogMC44ICsgMC4xKTsgLy8gcmVkdWNlIHJhbmdlIHRvIGF2b2lkIHRvbyBsaWdodC9kYXJrIGNvbG9yc1xuICAgICAgY29sb3JTY2FsZSA9IHNjYWxlUXVhbnRpemUodGFrZShxdWFudGl6ZShyZWR1Y2VkLCBNYXRoLm1heChjb3VudCwgTUlOX1NIQURFUykpLCBjb3VudCkpLmRvbWFpbihbMCwgY291bnRdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgY29sb3JzID0gZ2V0Q29sb3JNYXAocGFsZXR0ZSwgY291bnQpLm1hcCgocikgPT4gcmVzb2x2ZVBhbGV0dGVSZWZlcmVuY2UocGFsZXR0ZSwgcikpO1xuICAgICAgY29sb3JTY2FsZSA9IHNjYWxlUXVhbnRpemUodGFrZShjb2xvcnMsIGNvdW50KSkuZG9tYWluKFswLCBjb3VudF0pO1xuICAgIH1cblxuICAgIGxldCB0b3RhbCA9IDA7XG4gICAgY29uc3QgYXJjczogQXJjRGF0YTxEYXRhPltdID0gW107XG5cbiAgICBjb25zdCBnZW5lcmF0b3IgPSBwaWU8UGllQ2hhcnREYXR1bTxEYXRhPj4oKVxuICAgICAgLnNvcnQobnVsbClcbiAgICAgIC52YWx1ZSgoZCkgPT4gZC52YWx1ZSlcbiAgICAgIC5wYWRBbmdsZShQQURfQU5HTEUpO1xuXG4gICAgZ2VuZXJhdG9yKHNsaWNlcykuZm9yRWFjaCgoZCkgPT4ge1xuICAgICAgY29uc3QgW3gsIHldID0gZ2VuZXJhdG9yT3V0ZXIuY2VudHJvaWQoZCk7XG4gICAgICB0b3RhbCArPSBkLmRhdGEudmFsdWU7XG5cbiAgICAgIGxldCBjID0gZC5kYXRhLmNvbG9yO1xuICAgICAgaWYgKHR5cGVvZiBjb2xvciA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIGMgPSBjb2xvcihkLmRhdGEpO1xuICAgICAgfVxuXG4gICAgICAvLyB1c2UgYXJjIGluZGV4IHRvIGVzdGFibGlzaCB0aGUgY29sb3IgYmFzZWQgb24gdGhlIGNvbG9yIHNjaGVtZVxuICAgICAgaWYgKGMgPT0gbnVsbCkge1xuICAgICAgICBjID0gY29sb3JTY2FsZShkLmluZGV4KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGMgPSByZXNvbHZlTWFwcGVkQ29sb3IocGFsZXR0ZSwgYyk7XG4gICAgICB9XG5cbiAgICAgIGFyY3MucHVzaCh7XG4gICAgICAgIGQ6IGQuZGF0YSxcbiAgICAgICAgYzogYyxcbiAgICAgICAgeDogeCArIG91dGVyUixcbiAgICAgICAgeTogeSArIG91dGVyUixcbiAgICAgICAgcDogZC5kYXRhLnZhbHVlLFxuICAgICAgICBwYXRoOiB7XG4gICAgICAgICAgb3V0ZXI6IGdlbmVyYXRvck91dGVyKGQpID8/IHVuZGVmaW5lZCxcbiAgICAgICAgICBpbm5lcjogZ2VuZXJhdG9ySW5uZXIoZCkgPz8gdW5kZWZpbmVkLFxuICAgICAgICAgIGhvdmVyOiBnZW5lcmF0b3JIb3ZlcihkKSA/PyB1bmRlZmluZWQsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGlmICh0b3RhbCA+IDApIHtcbiAgICAgIGFyY3MuZm9yRWFjaCgoYXJjKSA9PiB7XG4gICAgICAgIGFyYy5wID0gKDEwMCAqIGFyYy5wKSAvIHRvdGFsO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIFthcmNzLCB0b3RhbF07XG4gIH0sIFtkYXRhLCBzaXplLCBjb2xvclNjaGVtZSwgY29sb3IsIHBhbGV0dGVdKTtcblxuICBjb25zdCBbY3VycmVudCwgc2V0Q3VycmVudF0gPSB1c2VTdGF0ZTx7IGFyYzogQXJjRGF0YTxEYXRhPjsgbGVnZW5kOiBib29sZWFuIH0gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgY29uc3Qgb25Nb3VzZUxlYXZlID0gdXNlQ2FsbGJhY2soKCkgPT4gc2V0Q3VycmVudCh1bmRlZmluZWQpLCBbXSk7XG4gIGNvbnN0IG9uTW91c2VFbnRlciA9IHVzZUNhbGxiYWNrKChkOiBBcmNEYXRhPERhdGE+KSA9PiBzZXRDdXJyZW50KHsgYXJjOiBkLCBsZWdlbmQ6IGZhbHNlIH0pLCBbXSk7XG4gIGNvbnN0IG9uTW91c2VDbGljayA9IHVzZUNhbGxiYWNrKFxuICAgIChkOiBBcmNEYXRhPERhdGE+KSA9PiB7XG4gICAgICBpZiAob25DbGljayAhPSBudWxsKSB7XG4gICAgICAgIG9uQ2xpY2soZC5kKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFtvbkNsaWNrXVxuICApO1xuXG4gIGNvbnN0IG9uTW91c2VFbnRlckxlZ2VuZCA9IHVzZUNhbGxiYWNrKChkOiBBcmNEYXRhPERhdGE+KSA9PiBzZXRDdXJyZW50KHsgYXJjOiBkLCBsZWdlbmQ6IHRydWUgfSksIFtdKTtcblxuICBjb25zdCBjaGFydCA9XG4gICAgYXJjcy5sZW5ndGggPT09IDAgPyAoXG4gICAgICA8ZGl2IGNzcz17U3R5bGVDaGFydH0gc3R5bGU9e3sgd2lkdGg6IHNpemUsIGhlaWdodDogc2l6ZSB9fT5cbiAgICAgICAgPFBpZUVtcHR5IHNpemU9e3NpemV9IGNvbG9yPXt2aXN1YWxBcHBlYXJhbmNlLmJsYW5rfSAvPlxuICAgICAgICA8ZGl2IGNzcz17U3R5bGVDb250ZW50fT5cbiAgICAgICAgICA8UGFyYWdyYXBoIGNvbG9yPXt2aXN1YWxBcHBlYXJhbmNlLmVtcHR5fSB7Li4udmlzdWFsU3R5bGUuZm9udC5lbXB0eX0gYWxpZ25tZW50PVwiY2VudGVyXCI+XG4gICAgICAgICAgICB7ZW1wdHlUZXh0fVxuICAgICAgICAgIDwvUGFyYWdyYXBoPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICkgOiAoXG4gICAgICA8ZGl2IGNzcz17U3R5bGVDaGFydH0gc3R5bGU9e3sgd2lkdGg6IHNpemUsIGhlaWdodDogc2l6ZSB9fSBvbk1vdXNlTGVhdmU9e29uTW91c2VMZWF2ZX0+XG4gICAgICAgIHtjdXJyZW50ICYmIDxQaWVBcmNzIGFyY3M9e2FyY3N9IHNpemU9e3NpemV9IGFjdGl2ZUlkPXtjdXJyZW50LmFyYy5kLmlkfSBzaGFkb3cgb25Nb3VzZUVudGVyPXtvbk1vdXNlRW50ZXJ9IC8+fVxuICAgICAgICB7KHRvdGFsVmFsdWUgfHwgdG90YWxBY3R1YWwgPiAwKSAmJiAoXG4gICAgICAgICAgPGRpdiBjc3M9e1N0eWxlQ29udGVudH0+XG4gICAgICAgICAgICA8VGV4dCBjb2xvcj17dmlzdWFsQXBwZWFyYW5jZS52YWx1ZX0gey4uLnZpc3VhbFN0eWxlLmZvbnQudmFsdWV9IGFsaWdubWVudD1cImNlbnRlclwiPlxuICAgICAgICAgICAgICB7dG90YWxWYWx1ZSA/PyAoZm9ybWF0VmFsdWUgIT0gbnVsbCA/IGZvcm1hdFZhbHVlKHRvdGFsQWN0dWFsKSA6IHRvdGFsQWN0dWFsLnRvTG9jYWxlU3RyaW5nKCkpfVxuICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICAge3RvdGFsTGFiZWwgJiYgKFxuICAgICAgICAgICAgICA8UGFyYWdyYXBoIGNvbG9yPXt2aXN1YWxBcHBlYXJhbmNlLnRpdGxlfSB7Li4udmlzdWFsU3R5bGUuZm9udC50aXRsZX0gYWxpZ25tZW50PVwiY2VudGVyXCI+XG4gICAgICAgICAgICAgICAge3RvdGFsTGFiZWx9XG4gICAgICAgICAgICAgIDwvUGFyYWdyYXBoPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKX1cbiAgICAgICAgPFBpZUFyY3MgYXJjcz17YXJjc30gc2l6ZT17c2l6ZX0gYWN0aXZlSWQ9e2N1cnJlbnQ/LmFyYy5kLmlkfSBvbk1vdXNlRW50ZXI9e29uTW91c2VFbnRlcn0gLz5cbiAgICAgICAgPFBpZUFyY3NIb3ZlclxuICAgICAgICAgIGFyY3M9e2FyY3N9XG4gICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICBvbk1vdXNlRW50ZXI9e29uTW91c2VFbnRlcn1cbiAgICAgICAgICBvbk1vdXNlQ2xpY2s9e29uQ2xpY2sgPyBvbk1vdXNlQ2xpY2sgOiB1bmRlZmluZWR9XG4gICAgICAgIC8+XG4gICAgICAgIHt0b29sdGlwVmlzaWJsZSAmJiBjdXJyZW50ICYmICFjdXJyZW50LmxlZ2VuZCAmJiAoXG4gICAgICAgICAgPGRpdiBjc3M9e1N0eWxlVG9vbHRpcCh0aGVtZS5hbmltYXRpb24pfSBzdHlsZT17eyB3aWR0aDogc2l6ZSwgaGVpZ2h0OiBzaXplIH19PlxuICAgICAgICAgICAgPGRpdiBzdHlsZT17eyBsZWZ0OiBNYXRoLnJvdW5kKGN1cnJlbnQuYXJjLngpLCB0b3A6IE1hdGgucm91bmQoY3VycmVudC5hcmMueSkgfX0+XG4gICAgICAgICAgICAgIDxUb29sdGlwIGNvbG9yTW9kZT17YWN0dWFsQ29sb3JNb2RlfT5cbiAgICAgICAgICAgICAgICA8UGFuZSB2ZXJ0aWNhbEFsaWdubWVudD1cImNlbnRlclwiIG9yaWVudGF0aW9uPVwiaG9yaXpvbnRhbFwiPlxuICAgICAgICAgICAgICAgICAgPENoYXJ0TWFya2VyIHRoZW1lPXt0aGVtZX0gY29sb3JNb2RlPXthY3R1YWxDb2xvck1vZGV9IGNvbG9yPXtjdXJyZW50LmFyYy5jfSAvPlxuICAgICAgICAgICAgICAgICAgPFRleHRcbiAgICAgICAgICAgICAgICAgICAgY29sb3I9e3Zpc3VhbEFwcGVhcmFuY2UudG9vbHRpcC5sYWJlbH1cbiAgICAgICAgICAgICAgICAgICAgey4uLnZpc3VhbFN0eWxlLmZvbnQudG9vbHRpcC5sYWJlbH1cbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luTGVmdD17dmlzdWFsU3R5bGUudG9vbHRpcC5tYXJrZXJTcGFjaW5nfVxuICAgICAgICAgICAgICAgICAgICBub3dyYXA+XG4gICAgICAgICAgICAgICAgICAgIHtjdXJyZW50LmFyYy5kLmxhYmVsfVxuICAgICAgICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICAgICAgICAgPFRleHRcbiAgICAgICAgICAgICAgICAgICAgY29sb3I9e3Zpc3VhbEFwcGVhcmFuY2UudG9vbHRpcC52YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgey4uLnZpc3VhbFN0eWxlLmZvbnQudG9vbHRpcC52YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luTGVmdD17dmlzdWFsU3R5bGUudG9vbHRpcC52YWx1ZVNwYWNpbmd9XG4gICAgICAgICAgICAgICAgICAgIG5vd3JhcD5cbiAgICAgICAgICAgICAgICAgICAge2Zvcm1hdFZhbHVlICE9IG51bGwgPyBmb3JtYXRWYWx1ZShjdXJyZW50LmFyYy5kLnZhbHVlKSA6IGN1cnJlbnQuYXJjLmQudmFsdWUudG9Mb2NhbGVTdHJpbmcoKX1cbiAgICAgICAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICAgICAgICA8L1BhbmU+XG4gICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY3NzPXtTdHlsZUNvbnRhaW5lcn0gc3R5bGU9e3sgd2lkdGg6IHdpZHRoLCBtaW5IZWlnaHQ6IHNpemUgfX0+XG4gICAgICB7Y2hhcnR9XG4gICAgICB7bGVnZW5kVmlzaWJsZSAmJiAoXG4gICAgICAgIDxQaWVMZWdlbmRcbiAgICAgICAgICB0aGVtZT17dGhlbWV9XG4gICAgICAgICAgY29sb3JNb2RlPXthY3R1YWxDb2xvck1vZGV9XG4gICAgICAgICAgYXJjcz17YXJjc31cbiAgICAgICAgICBmb3JtYXRWYWx1ZT17Zm9ybWF0VmFsdWV9XG4gICAgICAgICAgYWN0aXZlSWQ9e2N1cnJlbnQ/LmFyYy5kLmlkfVxuICAgICAgICAgIG9uTW91c2VFbnRlcj17b25Nb3VzZUVudGVyTGVnZW5kfVxuICAgICAgICAgIG9uTW91c2VMZWF2ZT17b25Nb3VzZUxlYXZlfVxuICAgICAgICAgIG9uTW91c2VDbGljaz17b25DbGljayA/IG9uTW91c2VDbGljayA6IHVuZGVmaW5lZH1cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgPC9kaXY+XG4gICk7XG59XG5cblBpZUNoYXJ0LmRpc3BsYXlOYW1lID0gXCJQaWVDaGFydFwiO1xuUGllQ2hhcnQucHJvcFR5cGVzID0gUGllQ2hhcnRQcm9wVHlwZXM7XG5cbmV4cG9ydCBkZWZhdWx0IFBpZUNoYXJ0O1xuIl19 */", toString: _EMOTION_STRINGIFIED_CSS_ERROR__ }; const StyleTooltip = animation => /*#__PURE__*/css(">div{transition-delay:", animation.delay, "ms;transition-duration:", animation.duration, "ms;transition-timing-function:", animation.function, ";position:absolute;transform:translateY(-50%);}pointer-events:none;position:absolute;" + (process.env.NODE_ENV === "production" ? "" : ";label:StyleTooltip;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9waWUvUGllQ2hhcnQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtDdUQiLCJmaWxlIjoiLi4vLi4vc3JjL3BpZS9QaWVDaGFydC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdGFrZSBmcm9tIFwibG9kYXNoL3Rha2VcIjtcbmltcG9ydCB7XG4gIEFuaW1hdGlvblN0eWxlLFxuICBDb2xvcixcbiAgQ29sb3JNb2RlLFxuICBnZXRDb2xvck1hcCxcbiAgcmVzb2x2ZU1hcHBlZENvbG9yLFxuICByZXNvbHZlUGFsZXR0ZVJlZmVyZW5jZSxcbn0gZnJvbSBcIkBhcHB0YW5lL3JlYWN0LXVpLWNvcmVcIjtcbmltcG9ydCB7IFBhbmUgfSBmcm9tIFwiQGFwcHRhbmUvcmVhY3QtdWktcGFuZVwiO1xuaW1wb3J0IHsgVGhlbWUsIHVzZUNvbG9yTW9kZSwgdXNlVGhlbWUgfSBmcm9tIFwiQGFwcHRhbmUvcmVhY3QtdWktdGhlbWVcIjtcbmltcG9ydCB7IFRvb2x0aXAgfSBmcm9tIFwiQGFwcHRhbmUvcmVhY3QtdWktdG9vbHRpcFwiO1xuaW1wb3J0IHsgUGFyYWdyYXBoLCBUZXh0IH0gZnJvbSBcIkBhcHB0YW5lL3JlYWN0LXVpLXR5cG9ncmFwaHlcIjtcbmltcG9ydCB7IGNzcyB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBxdWFudGl6ZSB9IGZyb20gXCJkMy1pbnRlcnBvbGF0ZVwiO1xuaW1wb3J0IHsgU2NhbGVRdWFudGl6ZSwgc2NhbGVRdWFudGl6ZSB9IGZyb20gXCJkMy1zY2FsZVwiO1xuaW1wb3J0IHsgYXJjLCBwaWUsIFBpZUFyY0RhdHVtIH0gZnJvbSBcImQzLXNoYXBlXCI7XG5pbXBvcnQgeyBnZXRDb2xvckludGVycG9sYXRvciB9IGZyb20gXCIuLi9jb21tb24vQ29sb3JTY2hlbWUuanNcIjtcbmltcG9ydCB7IENoYXJ0TWFya2VyIH0gZnJvbSBcIi4uL3BhcnRzL0NoYXJ0TWFya2VyLmpzXCI7XG5pbXBvcnQgeyBQaWVDaGFydERhdHVtLCBQaWVDaGFydFByb3BzLCBQaWVDaGFydFByb3BUeXBlcyB9IGZyb20gXCIuL1BpZUNoYXJ0LnR5cGVzLmpzXCI7XG5cbmNvbnN0IFN0eWxlQ29udGFpbmVyID0gY3NzYFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG5gO1xuXG5jb25zdCBTdHlsZUludGVyYWN0aXZlID0gY3NzYFxuICBjdXJzb3I6IHBvaW50ZXI7XG5gO1xuXG5jb25zdCBTdHlsZVRvb2x0aXAgPSAoYW5pbWF0aW9uOiBBbmltYXRpb25TdHlsZSkgPT4gY3NzYFxuICA+IGRpdiB7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogJHthbmltYXRpb24uZGVsYXl9bXM7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogJHthbmltYXRpb24uZHVyYXRpb259bXM7XG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ICR7YW5pbWF0aW9uLmZ1bmN0aW9ufTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICB9XG5cbiAgLy8gcHJldmVudHMgdG9vbHRpcCBmcm9tIHRyaWdnZXJpbmcgb25Nb3VzZUxlYXZlXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG5gO1xuXG5jb25zdCBTdHlsZUNoYXJ0ID0gY3NzYFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsZXg6IG5vbmU7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBTdHlsZUNvbnRlbnQgPSBjc3NgXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuYDtcblxuY29uc3QgU3R5bGVBcmNzID0gY3NzYFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gID4gc3ZnIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICA+IGcgPiBwYXRoIHtcbiAgICAgIHN0cm9rZTogbm9uZVxuICAgICAgc3Ryb2tlLXdpZHRoOiAwO1xuICAgIH1cbiAgfVxuYDtcblxuY29uc3QgU3R5bGVBcmNzSG92ZXIgPSBjc3NgXG4gID4gc3ZnID4gZyA+IHBhdGgge1xuICAgIHBvaW50ZXItZXZlbnRzOiB2aXNpYmxlO1xuICB9XG5gO1xuXG5jb25zdCBTdHlsZUxlZ2VuZCA9IChtYXJnaW46IG51bWJlcikgPT4gY3NzYFxuICBmbGV4OiBhdXRvO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nLWxlZnQ6ICR7bWFyZ2lufXB4O1xuYDtcblxuY29uc3QgU3R5bGVMZWdlbmRJdGVtID0gKGhlaWdodDogbnVtYmVyLCBwYWRkaW5nOiBudW1iZXIpID0+IGNzc2BcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGhlaWdodDogJHtoZWlnaHR9cHg7XG4gIHBhZGRpbmc6IDAgJHtwYWRkaW5nfXB4O1xuXG4gID4gZGl2OmZpcnN0LW9mLXR5cGUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleDogYXV0bztcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuI