schummar-table 0.33.1 → 0.35.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.
- package/dist/cjs/index.js +240 -180
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/mui4Theme.js +3 -3
- package/dist/cjs/mui5Theme.js +3 -3
- package/dist/cjs/tableTheme.js +478 -18
- package/dist/cjs/tableTheme.js.map +1 -1
- package/dist/es/index.js +144 -84
- package/dist/es/index.js.map +1 -1
- package/dist/es/mui4Theme.js +1 -1
- package/dist/es/mui5Theme.js +1 -1
- package/dist/es/tableTheme.js +465 -5
- package/dist/es/tableTheme.js.map +1 -1
- package/dist/types/components/dateFilter.d.ts +2 -2
- package/dist/types/components/datePicker.d.ts +9 -1
- package/dist/types/misc/defaults.d.ts +1 -0
- package/dist/types/types.d.ts +1 -0
- package/package.json +19 -19
package/dist/es/index.js
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { jsxs, jsx, Fragment as Fragment$1 } from "@emotion/react/jsx-runtime";
|
|
2
2
|
import { createContext, useContext, useState, cloneElement, useMemo, useRef, useLayoutEffect, useEffect, Fragment, memo, forwardRef } from "react";
|
|
3
|
-
import { Store, StoreScope } from "
|
|
3
|
+
import { d as darkGray, l as lightGray, P as Popover, S as Store, T as TableThemeContext, g as globalTableTheme, m as mergeThemes, a as gray, b as defaultClasses, c as StoreScope } from "./tableTheme.js";
|
|
4
|
+
import { f, e } from "./tableTheme.js";
|
|
4
5
|
import { css, ClassNames } from "@emotion/react";
|
|
5
|
-
import { d as darkGray, l as lightGray, P as Popover, T as TableThemeContext, g as globalTableTheme, m as mergeThemes, a as gray, b as defaultClasses } from "./tableTheme.js";
|
|
6
|
-
import { e, c } from "./tableTheme.js";
|
|
7
6
|
import { castDraft } from "immer";
|
|
8
7
|
import { nanoid } from "nanoid";
|
|
9
8
|
import { useDayzed } from "dayzed";
|
|
@@ -305,7 +304,8 @@ const defaultTexts = {
|
|
|
305
304
|
deselectAll: "Deselect all",
|
|
306
305
|
resetAll: "Reset table state",
|
|
307
306
|
rangeMin: "Min",
|
|
308
|
-
rangeMax: "Max"
|
|
307
|
+
rangeMax: "Max",
|
|
308
|
+
calendarWeek: "Wk"
|
|
309
309
|
};
|
|
310
310
|
const defaultTableTheme = {
|
|
311
311
|
text: defaultTexts,
|
|
@@ -675,6 +675,17 @@ function useFilter(impl) {
|
|
|
675
675
|
...context
|
|
676
676
|
};
|
|
677
677
|
}
|
|
678
|
+
function defaults(first, ...more) {
|
|
679
|
+
return more.reduce((acc, source) => {
|
|
680
|
+
const copy = {
|
|
681
|
+
...acc
|
|
682
|
+
};
|
|
683
|
+
for (const [key, value] of Object.entries(source)) {
|
|
684
|
+
copy[key] ?? (copy[key] = value);
|
|
685
|
+
}
|
|
686
|
+
return copy;
|
|
687
|
+
}, first);
|
|
688
|
+
}
|
|
678
689
|
function _EMOTION_STRINGIFIED_CSS_ERROR__$e() {
|
|
679
690
|
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).";
|
|
680
691
|
}
|
|
@@ -781,6 +792,7 @@ function Text({
|
|
|
781
792
|
function _EMOTION_STRINGIFIED_CSS_ERROR__$d() {
|
|
782
793
|
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).";
|
|
783
794
|
}
|
|
795
|
+
const DatePickerContext = createContext({});
|
|
784
796
|
const weekDays = [0, 1, 2, 3, 4, 5, 6];
|
|
785
797
|
const startOfDay = (d) => new Date(d.getFullYear(), d.getMonth(), d.getDate());
|
|
786
798
|
const endOfDay = (d) => new Date(d.getFullYear(), d.getMonth(), d.getDate() + 1, 0, 0, 0, -1);
|
|
@@ -836,6 +848,18 @@ const thisYear = (delta = 0) => {
|
|
|
836
848
|
max: endOfDay(max)
|
|
837
849
|
};
|
|
838
850
|
};
|
|
851
|
+
const MS_PER_DAY = 1e3 * 60 * 60 * 24;
|
|
852
|
+
const getCalendarWeek = (date) => {
|
|
853
|
+
const y = date.getFullYear();
|
|
854
|
+
const fdoy = new Date(y, 0, 1);
|
|
855
|
+
const doy = Math.floor((date.getTime() - fdoy.getTime() + (date.getTimezoneOffset() - fdoy.getTimezoneOffset())) / MS_PER_DAY);
|
|
856
|
+
const dow = fdoy.getDay();
|
|
857
|
+
const w = Math.floor((10 + doy - dow) / 7);
|
|
858
|
+
if (w === 0) {
|
|
859
|
+
return getCalendarWeek(new Date(y - 1, 11, 31));
|
|
860
|
+
}
|
|
861
|
+
return w;
|
|
862
|
+
};
|
|
839
863
|
const commonQuickOptions = {
|
|
840
864
|
today: {
|
|
841
865
|
label: /* @__PURE__ */ jsx(Text, { id: "today" }),
|
|
@@ -895,7 +919,7 @@ var _ref$d = process.env.NODE_ENV === "production" ? {
|
|
|
895
919
|
} : {
|
|
896
920
|
name: "kl77zb-DatePicker",
|
|
897
921
|
styles: "display:grid;grid-auto-flow:column;justify-content:center;align-items:baseline;gap:var(--spacing);label:DatePicker;",
|
|
898
|
-
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3NjaHVtbWFyLXRhYmxlL3NjaHVtbWFyLXRhYmxlL3NyYy9jb21wb25lbnRzL2RhdGVQaWNrZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXFTUSIsImZpbGUiOiIvaG9tZS9ydW5uZXIvd29yay9zY2h1bW1hci10YWJsZS9zY2h1bW1hci10YWJsZS9zcmMvY29tcG9uZW50cy9kYXRlUGlja2VyLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZURheXplZCB9IGZyb20gJ2RheXplZCc7XG5pbXBvcnQgdHlwZSB7IFJlYWN0Tm9kZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VUaGVtZSB9IGZyb20gJy4uL2hvb2tzL3VzZVRoZW1lJztcbmltcG9ydCB7IGdyYXkgfSBmcm9tICcuLi90aGVtZS9kZWZhdWx0VGhlbWUvZGVmYXVsdENsYXNzZXMnO1xuaW1wb3J0IHsgdXNlQ3NzVmFyaWFibGVzIH0gZnJvbSAnLi4vdGhlbWUvdXNlQ3NzVmFyaWFibGVzJztcbmltcG9ydCB7IERhdGVJbnB1dCB9IGZyb20gJy4vZGF0ZUlucHV0JztcbmltcG9ydCB7IFRleHQgfSBmcm9tICcuL3RleHQnO1xuXG5leHBvcnQgdHlwZSBEYXRlUmFuZ2UgPSB7IG1pbjogRGF0ZTsgbWF4OiBEYXRlIH07XG5cbmV4cG9ydCB0eXBlIERhdGVQaWNrZXJRdWlja09wdGlvbiA9XG4gIHwgJ3RvZGF5J1xuICB8ICd0aGlzV2VlaydcbiAgfCAndGhpc01vbnRoJ1xuICB8ICd0aGlzWWVhcidcbiAgfCAnbGFzdFNldmVuRGF5cydcbiAgfCAnbGFzdFRoaXJ0eURheXMnXG4gIHwgeyBsYWJlbDogUmVhY3ROb2RlOyB2YWx1ZTogRGF0ZSB8IERhdGVSYW5nZSB8ICgoKSA9PiBEYXRlIHwgRGF0ZVJhbmdlKSB9XG4gIHwgKChvbkNoYW5nZTogKHZhbHVlOiBEYXRlIHwgRGF0ZVJhbmdlIHwgbnVsbCkgPT4gdm9pZCkgPT4gUmVhY3ROb2RlKTtcblxuZXhwb3J0IHR5cGUgRGF0ZVBpY2tlclByb3BzID0ge1xuICAvKiogQ3VycmVudGx5IHNlbGVjdGVkIGRheSBvciByYW5nZSBvZiBkYXlzLiAqL1xuICB2YWx1ZTogRGF0ZSB8IERhdGVSYW5nZSB8IG51bGw7XG4gIC8qKiBDYWxsYmFjayBmb3Igd2hlbiB0aGUgZGF5IChyYW5nZSkgY2hhbmdlcy4gKi9cbiAgb25DaGFuZ2U6ICh2YWx1ZTogRGF0ZSB8IERhdGVSYW5nZSB8IG51bGwpID0+IHZvaWQ7XG4gIC8qKiBJZiBlbmFibGVkLCByYW5nZXMgY2FuIGJlIHNlbGVjdGVkLiAqL1xuICByYW5nZVNlbGVjdD86IGJvb2xlYW47XG4gIC8qKiBXaGljaCBsb2NhbGUgdG8gdXNlIHRvIHJlbmRlciB0aGUgY2FsZW5kYXIuICovXG4gIGxvY2FsZT86IHN0cmluZztcbiAgLyoqIFdoaWNoIGRheSBvZiB0aGUgd2VlayBzaG91bGQgYmUgaW4gdGhlIGZpcnN0IGNvbHVtbi4gKDA9U3VuZGF5LCAxPU1vbmRheSwgLi4uKVxuICAgKiBAZGVmYXVsdCAxXG4gICAqL1xuICBmaXJzdERheU9mV2Vlaz86IDAgfCAxIHwgMiB8IDMgfCA0IHwgNSB8IDY7XG4gIC8qKiBXaGljaCBtb250aCB0byBzaG93IGluaXRpYWxseSAqL1xuICBkZWZhdWx0RGF0ZUluVmlldz86IERhdGU7XG4gIC8qKiBTaG93IGJ1dHRvbnMgdG8gcXVpY2tseSBzZWxlY3Qgc3VnZ2VzdGVkIGRhdGVzIG9yIGRhdGUgcmFuZ2VzICovXG4gIHF1aWNrT3B0aW9ucz86IERhdGVQaWNrZXJRdWlja09wdGlvbltdO1xuICBtaW5EYXRlPzogRGF0ZTtcbiAgbWF4RGF0ZT86IERhdGU7XG59O1xuXG5jb25zdCB3ZWVrRGF5cyA9IFswLCAxLCAyLCAzLCA0LCA1LCA2XSBhcyBjb25zdDtcblxuLyoqIFJvdW5kcyBhIGRhdGUgZG93biB0byB0aGUgc3RhcnQgb2YgdGhlIGRheS4gKi9cbmV4cG9ydCBjb25zdCBzdGFydE9mRGF5ID0gKGQ6IERhdGUpID0+IG5ldyBEYXRlKGQuZ2V0RnVsbFllYXIoKSwgZC5nZXRNb250aCgpLCBkLmdldERhdGUoKSk7XG5cbi8qKiBSb3VuZHMgYSBkYXRlIHVwIHRvIHRoZSBlbmQgb2YgdGhlIGRheS4gKi9cbmV4cG9ydCBjb25zdCBlbmRPZkRheSA9IChkOiBEYXRlKSA9PlxuICBuZXcgRGF0ZShkLmdldEZ1bGxZZWFyKCksIGQuZ2V0TW9udGgoKSwgZC5nZXREYXRlKCkgKyAxLCAwLCAwLCAwLCAtMSk7XG5cbmV4cG9ydCBjb25zdCBsYXN0RGF5cyA9IChkYXlzOiBudW1iZXIpOiBEYXRlUmFuZ2UgPT4ge1xuICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuICBjb25zdCBtaW4gPSBuZXcgRGF0ZShub3cpO1xuICBtaW4uc2V0RGF0ZShtaW4uZ2V0RGF0ZSgpIC0gZGF5cyArIDEpO1xuXG4gIHJldHVybiB7XG4gICAgbWluOiBzdGFydE9mRGF5KG1pbiksXG4gICAgbWF4OiBlbmRPZkRheShub3cpLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHRvZGF5ID0gKCkgPT4gbGFzdERheXMoMSk7XG5cbmV4cG9ydCBjb25zdCB0aGlzV2VlayA9IChkZWx0YSA9IDAsIGZpcnN0RGF5T2ZXZWVrID0gMSk6IERhdGVSYW5nZSA9PiB7XG4gIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG4gIGNvbnN0IG1pbiA9IG5ldyBEYXRlKG5vdyk7XG5cbiAgbGV0IGRpZmYgPSBtaW4uZ2V0RGF5KCkgLSBmaXJzdERheU9mV2VlaztcbiAgaWYgKGRpZmYgPCAwKSB7XG4gICAgZGlmZiArPSA3O1xuICB9XG4gIG1pbi5zZXREYXRlKG1pbi5nZXREYXRlKCkgLSBkaWZmICsgZGVsdGEgKiA3KTtcblxuICBjb25zdCBtYXggPSBuZXcgRGF0ZShtaW4pO1xuICBtYXguc2V0RGF0ZShtYXguZ2V0RGF0ZSgpICsgNik7XG5cbiAgcmV0dXJuIHtcbiAgICBtaW46IHN0YXJ0T2ZEYXkobWluKSxcbiAgICBtYXg6IGVuZE9mRGF5KG1heCksXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgdGhpc01vbnRoID0gKGRlbHRhID0gMCk6IERhdGVSYW5nZSA9PiB7XG4gIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG4gIGNvbnN0IG1pbiA9IG5ldyBEYXRlKG5vdyk7XG4gIG1pbi5zZXREYXRlKDEpO1xuICBtaW4uc2V0TW9udGgobWluLmdldE1vbnRoKCkgKyBkZWx0YSk7XG4gIGNvbnN0IG1heCA9IG5ldyBEYXRlKG1pbik7XG4gIG1heC5zZXRNb250aChtYXguZ2V0TW9udGgoKSArIDEpO1xuICBtYXguc2V0RGF0ZShtYXguZ2V0RGF0ZSgpIC0gMSk7XG5cbiAgcmV0dXJuIHtcbiAgICBtaW46IHN0YXJ0T2ZEYXkobWluKSxcbiAgICBtYXg6IGVuZE9mRGF5KG1heCksXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgdGhpc1llYXIgPSAoZGVsdGEgPSAwKTogRGF0ZVJhbmdlID0+IHtcbiAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgY29uc3QgbWluID0gbmV3IERhdGUobm93KTtcbiAgbWluLnNldERhdGUoMSk7XG4gIG1pbi5zZXRNb250aCgwKTtcbiAgbWluLnNldEZ1bGxZZWFyKG1pbi5nZXRGdWxsWWVhcigpICsgZGVsdGEpO1xuICBjb25zdCBtYXggPSBuZXcgRGF0ZShtaW4pO1xuICBtYXguc2V0RnVsbFllYXIobWF4LmdldEZ1bGxZZWFyKCkgKyAxKTtcbiAgbWF4LnNldERhdGUobWF4LmdldERhdGUoKSAtIDEpO1xuXG4gIHJldHVybiB7XG4gICAgbWluOiBzdGFydE9mRGF5KG1pbiksXG4gICAgbWF4OiBlbmRPZkRheShtYXgpLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGNvbW1vblF1aWNrT3B0aW9ucyA9IHtcbiAgdG9kYXk6IHsgbGFiZWw6IDxUZXh0IGlkPVwidG9kYXlcIiAvPiwgdmFsdWU6IHRvZGF5IH0sXG4gIHRoaXNXZWVrOiB7IGxhYmVsOiA8VGV4dCBpZD1cInRoaXNXZWVrXCIgLz4sIHZhbHVlOiAocHJvcHMpID0+IHRoaXNXZWVrKDAsIHByb3BzLmZpcnN0RGF5T2ZXZWVrKSB9LFxuICB0aGlzTW9udGg6IHsgbGFiZWw6IDxUZXh0IGlkPVwidGhpc01vbnRoXCIgLz4sIHZhbHVlOiAoKSA9PiB0aGlzTW9udGgoKSB9LFxuICB0aGlzWWVhcjogeyBsYWJlbDogPFRleHQgaWQ9XCJ0aGlzWWVhclwiIC8+LCB2YWx1ZTogKCkgPT4gdGhpc1llYXIoKSB9LFxuICBsYXN0U2V2ZW5EYXlzOiB7IGxhYmVsOiA8VGV4dCBpZD1cImxhc3RTZXZlbkRheXNcIiAvPiwgdmFsdWU6ICgpID0+IGxhc3REYXlzKDcpIH0sXG4gIGxhc3RUaGlydHlEYXlzOiB7IGxhYmVsOiA8VGV4dCBpZD1cImxhc3RUaGlydHlEYXlzXCIgLz4sIHZhbHVlOiAoKSA9PiBsYXN0RGF5cygzMCkgfSxcbn0gc2F0aXNmaWVzIFJlY29yZDxcbiAgRGF0ZVBpY2tlclF1aWNrT3B0aW9uICYgc3RyaW5nLFxuICB7IGxhYmVsOiBSZWFjdE5vZGU7IHZhbHVlOiBEYXRlIHwgRGF0ZVJhbmdlIHwgKChwcm9wczogRGF0ZVBpY2tlclByb3BzKSA9PiBEYXRlIHwgRGF0ZVJhbmdlKSB9XG4+O1xuXG4vKiogUmV0dXJucyB3aGV0aGVyIHR3byBkYXRlcyBhbmQvb3IgZGF0ZSByYW5nZXMgaW50ZXJzZWN0LiBJbnRlcnNlY3Rpb24gaXMgY29uc2lkZXJlZCBwZXIgZGF5LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRhdGVJbnRlcnNlY3QoYTogRGF0ZSB8IG51bGwgfCBEYXRlUmFuZ2UsIGI6IERhdGUgfCBudWxsIHwgRGF0ZVJhbmdlKSB7XG4gIGlmIChhIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgIGEgPSB7IG1pbjogYSwgbWF4OiBhIH07XG4gIH1cbiAgaWYgKGIgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgYiA9IHsgbWluOiBiLCBtYXg6IGIgfTtcbiAgfVxuXG4gIGlmICghYT8ubWluIHx8ICFhLm1heCB8fCAhYj8ubWluIHx8ICFiLm1heCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiAhKGVuZE9mRGF5KGEubWF4KSA8IHN0YXJ0T2ZEYXkoYi5taW4pIHx8IHN0YXJ0T2ZEYXkoYS5taW4pID4gZW5kT2ZEYXkoYi5tYXgpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRhdGVDbGFtcChkYXRlOiBEYXRlLCBtaW4/OiBEYXRlLCBtYXg/OiBEYXRlKSB7XG4gIGlmIChtaW4gJiYgZGF0ZSA8IG1pbikge1xuICAgIHJldHVybiBtaW47XG4gIH1cblxuICBpZiAobWF4ICYmIGRhdGUgPiBtYXgpIHtcbiAgICByZXR1cm4gbWF4O1xuICB9XG5cbiAgcmV0dXJuIGRhdGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBEYXRlUGlja2VyKHByb3BzOiBEYXRlUGlja2VyUHJvcHMpIHtcbiAgY29uc3Qge1xuICAgIHZhbHVlLFxuICAgIHJhbmdlU2VsZWN0LFxuICAgIGxvY2FsZSxcbiAgICBmaXJzdERheU9mV2VlayA9IDEsXG4gICAgZGVmYXVsdERhdGVJblZpZXcsXG4gICAgcXVpY2tPcHRpb25zID0gWyd0b2RheScsICd0aGlzV2VlayddLFxuICAgIG1pbkRhdGUsXG4gICAgbWF4RGF0ZSxcbiAgfSA9IHByb3BzO1xuXG4gIGZ1bmN0aW9uIG9uQ2hhbmdlKHZhbHVlOiBEYXRlIHwgRGF0ZVJhbmdlIHwgbnVsbCkge1xuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgIHZhbHVlID0gZGF0ZUNsYW1wKHZhbHVlLCBtaW5EYXRlLCBtYXhEYXRlKTtcbiAgICB9IGVsc2UgaWYgKHZhbHVlKSB7XG4gICAgICB2YWx1ZSA9IHtcbiAgICAgICAgbWluOiBkYXRlQ2xhbXAodmFsdWUubWluLCBtaW5EYXRlLCBtYXhEYXRlKSxcbiAgICAgICAgbWF4OiBkYXRlQ2xhbXAodmFsdWUubWF4LCBtaW5EYXRlLCBtYXhEYXRlKSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcHJvcHMub25DaGFuZ2UodmFsdWUpO1xuICB9XG5cbiAgY29uc3QgQnV0dG9uID0gdXNlVGhlbWUoKHQpID0+IHQuY29tcG9uZW50cy5CdXR0b24pO1xuICBjb25zdCBJY29uQnV0dG9uID0gdXNlVGhlbWUoKHQpID0+IHQuY29tcG9uZW50cy5JY29uQnV0dG9uKTtcbiAgY29uc3QgQ2hldnJvblJpZ2h0ID0gdXNlVGhlbWUoKHQpID0+IHQuaWNvbnMuQ2hldnJvblJpZ2h0KTtcbiAgY29uc3QgY3NzVmFyaWFibGVzID0gdXNlQ3NzVmFyaWFibGVzKCk7XG5cbiAgY29uc3QgbW91bnRUaW1lID0gdXNlTWVtbygoKSA9PiBuZXcgRGF0ZSgpLCBbXSk7XG4gIGNvbnN0IFtkYXRlSW5WaWV3LCBzZXREYXRlSW5WaWV3XSA9IHVzZVN0YXRlPERhdGU+KGRlZmF1bHREYXRlSW5WaWV3ID8/IG1vdW50VGltZSk7XG4gIGNvbnN0IFtkaXJ0eSwgc2V0RGlydHldID0gdXNlU3RhdGU8UGFydGlhbDxEYXRlUmFuZ2U+PigpO1xuICBjb25zdCBbaG92ZXJlZCwgc2V0SG92ZXJlZF0gPSB1c2VTdGF0ZTxEYXRlPigpO1xuXG4gIGNvbnN0IG1pbiA9IGRpcnR5ID8gZGlydHkubWluIDogdmFsdWUgaW5zdGFuY2VvZiBEYXRlID8gdmFsdWUgOiB2YWx1ZT8ubWluO1xuICBjb25zdCBtYXggPSBkaXJ0eSA/IGRpcnR5Lm1heCA6IHZhbHVlIGluc3RhbmNlb2YgRGF0ZSA/IHZhbHVlIDogdmFsdWU/Lm1heDtcblxuICBjb25zdCByZXNvbHZlZFF1aWNrT3B0aW9ucyA9IFsuLi5xdWlja09wdGlvbnMsIHsgbGFiZWw6IDxUZXh0IGlkPVwicmVzZXRcIiAvPiwgdmFsdWU6IG51bGwgfV0ubWFwKFxuICAgIChvcHRpb24sIGluZGV4KSA9PiB7XG4gICAgICBpZiAob3B0aW9uIGluc3RhbmNlb2YgRnVuY3Rpb24pIHtcbiAgICAgICAgcmV0dXJuIG9wdGlvbigodmFsdWUpID0+IHtcbiAgICAgICAgICBzZXREaXJ0eSh1bmRlZmluZWQpO1xuICAgICAgICAgIG9uQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHsgbGFiZWwsIHZhbHVlIH0gPSB0eXBlb2Ygb3B0aW9uID09PSAnc3RyaW5nJyA/IGNvbW1vblF1aWNrT3B0aW9uc1tvcHRpb25dIDogb3B0aW9uO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8QnV0dG9uXG4gICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICB2YXJpYW50PVwidGV4dFwiXG4gICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgc2V0RGlydHkodW5kZWZpbmVkKTtcblxuICAgICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRnVuY3Rpb24pIHtcbiAgICAgICAgICAgICAgb25DaGFuZ2UodmFsdWUocHJvcHMpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIG9uQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAge2xhYmVsfVxuICAgICAgICA8L0J1dHRvbj5cbiAgICAgICk7XG4gICAgfSxcbiAgKTtcblxuICBjb25zdCB7IGNhbGVuZGFycywgZ2V0QmFja1Byb3BzLCBnZXRGb3J3YXJkUHJvcHMsIGdldERhdGVQcm9wcyB9ID0gdXNlRGF5emVkKHtcbiAgICBvbkRhdGVTZWxlY3RlZDogKCkgPT4gdW5kZWZpbmVkLFxuICAgIGZpcnN0RGF5T2ZXZWVrLFxuICAgIHNob3dPdXRzaWRlRGF5czogdHJ1ZSxcbiAgICBkYXRlOiBkYXRlSW5WaWV3LFxuICAgIG9uT2Zmc2V0Q2hhbmdlZDogKG9mZnNldCkgPT5cbiAgICAgIHNldERhdGVJblZpZXcobmV3IERhdGUoZGF0ZUluVmlldy5nZXRGdWxsWWVhcigpLCBkYXRlSW5WaWV3LmdldE1vbnRoKCkgKyBvZmZzZXQpKSxcbiAgICBvZmZzZXQ6IDAsXG4gICAgbWluRGF0ZSxcbiAgICBtYXhEYXRlLFxuICB9KTtcbiAgY29uc3Qgbm93ID0gdXNlTWVtbygoKSA9PiBzdGFydE9mRGF5KG5ldyBEYXRlKCkpLCBbXSk7XG5cbiAgY29uc3QgZm9ybWF0V2Vla2RheSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHsgZm9ybWF0IH0gPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NhbGUsIHsgd2Vla2RheTogJ3Nob3J0JyB9KTtcbiAgICByZXR1cm4gKHdlZWtEYXk6IG51bWJlcikgPT5cbiAgICAgIGZvcm1hdChuZXcgRGF0ZShEYXRlLlVUQygyMDIxLCA3LCAoKHdlZWtEYXkgKyBmaXJzdERheU9mV2VlaykgJSA3KSArIDEpKSk7XG4gIH0sIFtsb2NhbGUsIGZpcnN0RGF5T2ZXZWVrXSk7XG5cbiAgdXNlRWZmZWN0KFxuICAgICgpID0+XG4gICAgICBzZXREYXRlSW5WaWV3KFxuICAgICAgICB2YWx1ZSA9PT0gbnVsbCA/IGRlZmF1bHREYXRlSW5WaWV3ID8/IG1vdW50VGltZSA6IHZhbHVlIGluc3RhbmNlb2YgRGF0ZSA/IHZhbHVlIDogdmFsdWUubWF4LFxuICAgICAgKSxcbiAgICBbdmFsdWUsIGRlZmF1bHREYXRlSW5WaWV3LCBtb3VudFRpbWVdLFxuICApO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFyYW5nZVNlbGVjdCkge1xuICAgICAgc2V0RGlydHkodW5kZWZpbmVkKTtcbiAgICB9XG4gIH0sIFtyYW5nZVNlbGVjdF0pO1xuXG4gIGZ1bmN0aW9uIHNldChtaW4/OiBEYXRlLCBtYXg/OiBEYXRlLCBlZGl0PzogJ21pbicgfCAnbWF4Jykge1xuICAgIGlmICghcmFuZ2VTZWxlY3QpIHtcbiAgICAgIG9uQ2hhbmdlKG1pbiA/PyBudWxsKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAobWluICYmIG1heCAmJiBtaW4gPiBtYXgpIHtcbiAgICAgIGlmIChlZGl0ID09PSAnbWluJykge1xuICAgICAgICBtYXggPSBtaW47XG4gICAgICB9IGVsc2UgaWYgKGVkaXQgPT09ICdtYXgnKSB7XG4gICAgICAgIG1pbiA9IG1heDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIFttaW4sIG1heF0gPSBbbWF4LCBtaW5dO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghbWluID09PSAhbWF4KSB7XG4gICAgICBzZXREaXJ0eSh1bmRlZmluZWQpO1xuICAgICAgb25DaGFuZ2UobWluICYmIG1heCA/IHsgbWluLCBtYXg6IGVuZE9mRGF5KG1heCkgfSA6IG51bGwpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXREaXJ0eSh7IG1pbiwgbWF4IH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGZvcm1hdE1vbnRoID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgeyBmb3JtYXQgfSA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KGxvY2FsZSwgeyBtb250aDogJ2xvbmcnIH0pO1xuICAgIHJldHVybiAobW9udGg6IG51bWJlcikgPT4gZm9ybWF0KG5ldyBEYXRlKDIwMjEsIG1vbnRoKSk7XG4gIH0sIFtsb2NhbGVdKTtcblxuICBjb25zdCBmb3JtYXRZZWFyID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgeyBmb3JtYXQgfSA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KGxvY2FsZSwgeyB5ZWFyOiAnbnVtZXJpYycgfSk7XG4gICAgcmV0dXJuICh5ZWFyOiBudW1iZXIpID0+IGZvcm1hdChuZXcgRGF0ZSh5ZWFyLCAwLCAxKSk7XG4gIH0sIFtsb2NhbGVdKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY3NzPXtjc3NWYXJpYWJsZXN9PlxuICAgICAgPGRpdlxuICAgICAgICBjc3M9e3tcbiAgICAgICAgICBkaXNwbGF5OiAnZ3JpZCcsXG4gICAgICAgICAgZ3JpZEF1dG9GbG93OiAnY29sdW1uJyxcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgYWxpZ25JdGVtczogJ2Jhc2VsaW5lJyxcbiAgICAgICAgICBnYXA6ICd2YXIoLS1zcGFjaW5nKScsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxEYXRlSW5wdXRcbiAgICAgICAgICB2YWx1ZT17bWluID8/IG51bGx9XG4gICAgICAgICAgb25DaGFuZ2U9eyhkYXRlKSA9PiBzZXQoZGF0ZSA/PyB1bmRlZmluZWQsIG1heCwgJ21pbicpfVxuICAgICAgICAgIGxvY2FsZT17bG9jYWxlfVxuICAgICAgICAvPlxuXG4gICAgICAgIHtyYW5nZVNlbGVjdCAmJiAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIHsnIC0gJ31cbiAgICAgICAgICAgIDxEYXRlSW5wdXRcbiAgICAgICAgICAgICAgdmFsdWU9e21heCA/PyBudWxsfVxuICAgICAgICAgICAgICBvbkNoYW5nZT17KGRhdGUpID0+IHNldChtaW4sIGRhdGUgPz8gdW5kZWZpbmVkLCAnbWF4Jyl9XG4gICAgICAgICAgICAgIGxvY2FsZT17bG9jYWxlfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuXG4gICAgICB7Y2FsZW5kYXJzLm1hcCgoeyBtb250aCwgeWVhciwgd2Vla3MgfSkgPT4gKFxuICAgICAgICA8ZGl2IGtleT17YCR7bW9udGh9JHt5ZWFyfWB9IGNzcz17eyBkaXNwbGF5OiAnZ3JpZCcgfX0+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY3NzPXt7XG4gICAgICAgICAgICAgIG1hcmdpbjogJ2NhbGModmFyKC0tc3BhY2luZykgKiA0KSAwJyxcbiAgICAgICAgICAgICAgZGlzcGxheTogJ2dyaWQnLFxuICAgICAgICAgICAgICBncmlkQXV0b0Zsb3c6ICdjb2x1bW4nLFxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ3NwYWNlLWJldHdlZW4nLFxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEljb25CdXR0b24gey4uLmdldEJhY2tQcm9wcyh7IGNhbGVuZGFycyB9KX0+XG4gICAgICAgICAgICAgIDxDaGV2cm9uUmlnaHQgY3NzPXt7IHRyYW5zZm9ybTogJ3JvdGF0ZTNkKDAsIDAsIDEsIDE4MGRlZyknIH19IC8+XG4gICAgICAgICAgICA8L0ljb25CdXR0b24+XG5cbiAgICAgICAgICAgIDxkaXYgY3NzPXt7IGRpc3BsYXk6ICdmbGV4JyB9fT5cbiAgICAgICAgICAgICAge2Zvcm1hdE1vbnRoKG1vbnRoKX0ge2Zvcm1hdFllYXIoeWVhcil9XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPEljb25CdXR0b24gey4uLmdldEZvcndhcmRQcm9wcyh7IGNhbGVuZGFycyB9KX0+XG4gICAgICAgICAgICAgIDxDaGV2cm9uUmlnaHQgLz5cbiAgICAgICAgICAgIDwvSWNvbkJ1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNzcz17e1xuICAgICAgICAgICAgICBqdXN0aWZ5U2VsZjogJ2NlbnRlcicsXG4gICAgICAgICAgICAgIGRpc3BsYXk6ICdncmlkJyxcbiAgICAgICAgICAgICAgZ3JpZFRlbXBsYXRlQ29sdW1uczogJ3JlcGVhdCg3LCBtYXgtY29udGVudCknLFxuICAgICAgICAgICAgICBmb250V2VpZ2h0OiAnYm9sZCcsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt3ZWVrRGF5cy5tYXAoKF92LCB3ZWVrRGF5KSA9PiAoXG4gICAgICAgICAgICAgIDxkaXYga2V5PXt3ZWVrRGF5fSBjc3M9e3sganVzdGlmeVNlbGY6ICdjZW50ZXInLCBtYXJnaW5Cb3R0b206ICd2YXIoLS1zcGFjaW5nKScgfX0+XG4gICAgICAgICAgICAgICAge2Zvcm1hdFdlZWtkYXkod2Vla0RheSl9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKSl9XG5cbiAgICAgICAgICAgIHt3ZWVrcy5tYXAoKHdlZWssIGluZGV4KSA9PlxuICAgICAgICAgICAgICB3ZWVrLm1hcCgoZGF0ZU9iamVjdCwgZGF5SW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIWRhdGVPYmplY3QpIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiA8ZGl2IGtleT17YCR7aW5kZXh9LSR7ZGF5SW5kZXh9YH0gLz47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3QgeyBwcmV2TW9udGgsIG5leHRNb250aCwgZGF0ZSB9ID0gZGF0ZU9iamVjdDtcbiAgICAgICAgICAgICAgICBjb25zdCB0b2RheSA9IHN0YXJ0T2ZEYXkoZGF0ZSkuZ2V0VGltZSgpID09PSBub3cuZ2V0VGltZSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGRpc2FibGVkID0gKG1pbkRhdGUgJiYgZGF0ZSA8IG1pbkRhdGUpIHx8IChtYXhEYXRlICYmIGRhdGUgPiBtYXhEYXRlKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkID1cbiAgICAgICAgICAgICAgICAgIGRhdGUuZ2V0VGltZSgpID09PSBtaW4/LmdldFRpbWUoKSB8fFxuICAgICAgICAgICAgICAgICAgKG1pbiAmJiBtYXggJiYgZGF0ZUludGVyc2VjdChkYXRlLCB7IG1pbiwgbWF4IH0pKTtcbiAgICAgICAgICAgICAgICBjb25zdCBwcmVTZWxlY3RlZCA9XG4gICAgICAgICAgICAgICAgICAhc2VsZWN0ZWQgJiZcbiAgICAgICAgICAgICAgICAgICFkaXNhYmxlZCAmJlxuICAgICAgICAgICAgICAgICAgKGRhdGUuZ2V0VGltZSgpID09PSBob3ZlcmVkPy5nZXRUaW1lKCkgfHxcbiAgICAgICAgICAgICAgICAgICAgKG1pbiAmJlxuICAgICAgICAgICAgICAgICAgICAgICFtYXggJiZcbiAgICAgICAgICAgICAgICAgICAgICBob3ZlcmVkICYmXG4gICAgICAgICAgICAgICAgICAgICAgZGF0ZUludGVyc2VjdChcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBtaW4gPD0gaG92ZXJlZCA/IHsgbWluLCBtYXg6IGhvdmVyZWQgfSA6IHsgbWluOiBob3ZlcmVkLCBtYXg6IG1pbiB9LFxuICAgICAgICAgICAgICAgICAgICAgICkpKTtcblxuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGtleT17YCR7aW5kZXh9LSR7ZGF5SW5kZXh9YH1cbiAgICAgICAgICAgICAgICAgICAgY3NzPXtbXG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMTAsXG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6ICcxcHggc29saWQgdHJhbnNwYXJlbnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJ3RyYW5zcGFyZW50JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnNvcjogJ3BvaW50ZXInLFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgKHByZXZNb250aCB8fCBuZXh0TW9udGgpICYmIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBncmF5LFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgdG9kYXkgJiYge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAnMXB4IHNvbGlkIHZhcigtLXNlY29uZGFyeU1haW4pJyxcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkICYmIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICd2YXIoLS1wcmltYXJ5TWFpbiknLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICd2YXIoLS1wcmltYXJ5Q29udHJhc3RUZXh0KScsXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBwcmVTZWxlY3RlZCAmJiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAndmFyKC0tcHJpbWFyeUxpZ2h0KScsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ3ZhcigtLXByaW1hcnlDb250cmFzdFRleHQpJyxcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBdfVxuICAgICAgICAgICAgICAgICAgICB7Li4uZ2V0RGF0ZVByb3BzKHsgZGF0ZU9iajogZGF0ZU9iamVjdCB9KX1cbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIGlmIChkaXJ0eSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1pbikgc2V0KG1pbiwgZGF0ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHNldChkYXRlLCBtYXgpO1xuICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXQoZGF0ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICBvblBvaW50ZXJPdmVyPXsoKSA9PiBzZXRIb3ZlcmVkKGRhdGUpfVxuICAgICAgICAgICAgICAgICAgICBvblBvaW50ZXJPdXQ9eygpID0+IHNldEhvdmVyZWQodW5kZWZpbmVkKX1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7ZGF0ZS5nZXREYXRlKCl9XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKSl9XG5cbiAgICAgIDxkaXZcbiAgICAgICAgY3NzPXt7XG4gICAgICAgICAgbWFyZ2luVG9wOiAndmFyKC0tc3BhY2luZyknLFxuICAgICAgICAgIGRpc3BsYXk6ICdncmlkJyxcbiAgICAgICAgICBncmlkQXV0b0Zsb3c6ICdjb2x1bW4nLFxuICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAge3Jlc29sdmVkUXVpY2tPcHRpb25zfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICk7XG59XG4iXX0= */",
|
|
922
|
+
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3NjaHVtbWFyLXRhYmxlL3NjaHVtbWFyLXRhYmxlL3NyYy9jb21wb25lbnRzL2RhdGVQaWNrZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9WUSIsImZpbGUiOiIvaG9tZS9ydW5uZXIvd29yay9zY2h1bW1hci10YWJsZS9zY2h1bW1hci10YWJsZS9zcmMvY29tcG9uZW50cy9kYXRlUGlja2VyLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGVPYmosIHVzZURheXplZCB9IGZyb20gJ2RheXplZCc7XG5pbXBvcnQge1xuICBGcmFnbWVudCxcbiAgUmVhY3ROb2RlLFxuICBjcmVhdGVDb250ZXh0LFxuICB1c2VDb250ZXh0LFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVN0YXRlLFxufSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VUaGVtZSB9IGZyb20gJy4uL2hvb2tzL3VzZVRoZW1lJztcbmltcG9ydCB7IGRlZmF1bHRzIH0gZnJvbSAnLi4vbWlzYy9kZWZhdWx0cyc7XG5pbXBvcnQgeyBncmF5IH0gZnJvbSAnLi4vdGhlbWUvZGVmYXVsdFRoZW1lL2RlZmF1bHRDbGFzc2VzJztcbmltcG9ydCB7IHVzZUNzc1ZhcmlhYmxlcyB9IGZyb20gJy4uL3RoZW1lL3VzZUNzc1ZhcmlhYmxlcyc7XG5pbXBvcnQgeyBEYXRlSW5wdXQgfSBmcm9tICcuL2RhdGVJbnB1dCc7XG5pbXBvcnQgeyBUZXh0IH0gZnJvbSAnLi90ZXh0JztcblxuZXhwb3J0IHR5cGUgRGF0ZVJhbmdlID0geyBtaW46IERhdGU7IG1heDogRGF0ZSB9O1xuXG5leHBvcnQgdHlwZSBEYXRlUGlja2VyUXVpY2tPcHRpb24gPVxuICB8ICd0b2RheSdcbiAgfCAndGhpc1dlZWsnXG4gIHwgJ3RoaXNNb250aCdcbiAgfCAndGhpc1llYXInXG4gIHwgJ2xhc3RTZXZlbkRheXMnXG4gIHwgJ2xhc3RUaGlydHlEYXlzJ1xuICB8IHsgbGFiZWw6IFJlYWN0Tm9kZTsgdmFsdWU6IERhdGUgfCBEYXRlUmFuZ2UgfCAoKCkgPT4gRGF0ZSB8IERhdGVSYW5nZSkgfVxuICB8ICgob25DaGFuZ2U6ICh2YWx1ZTogRGF0ZSB8IERhdGVSYW5nZSB8IG51bGwpID0+IHZvaWQpID0+IFJlYWN0Tm9kZSk7XG5cbmV4cG9ydCB0eXBlIERhdGVQaWNrZXJQcm9wcyA9IHtcbiAgLyoqIEN1cnJlbnRseSBzZWxlY3RlZCBkYXkgb3IgcmFuZ2Ugb2YgZGF5cy4gKi9cbiAgdmFsdWU6IERhdGUgfCBEYXRlUmFuZ2UgfCBudWxsO1xuICAvKiogQ2FsbGJhY2sgZm9yIHdoZW4gdGhlIGRheSAocmFuZ2UpIGNoYW5nZXMuICovXG4gIG9uQ2hhbmdlOiAodmFsdWU6IERhdGUgfCBEYXRlUmFuZ2UgfCBudWxsKSA9PiB2b2lkO1xuICAvKiogSWYgZW5hYmxlZCwgcmFuZ2VzIGNhbiBiZSBzZWxlY3RlZC4gKi9cbiAgcmFuZ2VTZWxlY3Q/OiBib29sZWFuO1xuICAvKiogV2hpY2ggbG9jYWxlIHRvIHVzZSB0byByZW5kZXIgdGhlIGNhbGVuZGFyLiAqL1xuICBsb2NhbGU/OiBzdHJpbmc7XG4gIC8qKiBXaGljaCBkYXkgb2YgdGhlIHdlZWsgc2hvdWxkIGJlIGluIHRoZSBmaXJzdCBjb2x1bW4uICgwPVN1bmRheSwgMT1Nb25kYXksIC4uLilcbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgZmlyc3REYXlPZldlZWs/OiAwIHwgMSB8IDIgfCAzIHwgNCB8IDUgfCA2O1xuICAvKiogV2hpY2ggbW9udGggdG8gc2hvdyBpbml0aWFsbHkgKi9cbiAgZGVmYXVsdERhdGVJblZpZXc/OiBEYXRlO1xuICAvKiogU2hvdyBidXR0b25zIHRvIHF1aWNrbHkgc2VsZWN0IHN1Z2dlc3RlZCBkYXRlcyBvciBkYXRlIHJhbmdlcyAqL1xuICBxdWlja09wdGlvbnM/OiBEYXRlUGlja2VyUXVpY2tPcHRpb25bXTtcbiAgLyoqIE1pbmltdW0gc2VsZWN0YWJsZSBkYXRlICovXG4gIG1pbkRhdGU/OiBEYXRlO1xuICAvKiogTWF4aW11bSBzZWxlY3RhYmxlIGRhdGUgKi9cbiAgbWF4RGF0ZT86IERhdGU7XG4gIC8qKiBXaGV0aGVyIHRvIHNob3cgdGhlIGNhbGVuZGFyIHdlZWsgaW4gdGhlIGZpcnN0IGNvbHVtbiAqL1xuICBzaG93Q2FsZW5kYXJXZWVrPzogYm9vbGVhbjtcbn07XG5cbmNvbnN0IERhdGVQaWNrZXJDb250ZXh0ID0gY3JlYXRlQ29udGV4dDxQYXJ0aWFsPE9taXQ8RGF0ZVBpY2tlclByb3BzLCAndmFsdWUnIHwgJ29uQ2hhbmdlJz4+Pih7fSk7XG5cbmV4cG9ydCBmdW5jdGlvbiBEYXRlUGlja2VyUHJvdmlkZXIoe1xuICBjaGlsZHJlbixcbiAgLi4ucHJvcHNcbn06IFBhcnRpYWw8T21pdDxEYXRlUGlja2VyUHJvcHMsICd2YWx1ZScgfCAnb25DaGFuZ2UnPj4gJiB7IGNoaWxkcmVuPzogUmVhY3ROb2RlIH0pIHtcbiAgY29uc3QgdmFsdWUgPSB1c2VNZW1vKCgpID0+IHByb3BzLCBbSlNPTi5zdHJpbmdpZnkocHJvcHMpXSk7XG5cbiAgcmV0dXJuIDxEYXRlUGlja2VyQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17dmFsdWV9PntjaGlsZHJlbn08L0RhdGVQaWNrZXJDb250ZXh0LlByb3ZpZGVyPjtcbn1cblxuY29uc3Qgd2Vla0RheXMgPSBbMCwgMSwgMiwgMywgNCwgNSwgNl0gYXMgY29uc3Q7XG5cbi8qKiBSb3VuZHMgYSBkYXRlIGRvd24gdG8gdGhlIHN0YXJ0IG9mIHRoZSBkYXkuICovXG5leHBvcnQgY29uc3Qgc3RhcnRPZkRheSA9IChkOiBEYXRlKSA9PiBuZXcgRGF0ZShkLmdldEZ1bGxZZWFyKCksIGQuZ2V0TW9udGgoKSwgZC5nZXREYXRlKCkpO1xuXG4vKiogUm91bmRzIGEgZGF0ZSB1cCB0byB0aGUgZW5kIG9mIHRoZSBkYXkuICovXG5leHBvcnQgY29uc3QgZW5kT2ZEYXkgPSAoZDogRGF0ZSkgPT5cbiAgbmV3IERhdGUoZC5nZXRGdWxsWWVhcigpLCBkLmdldE1vbnRoKCksIGQuZ2V0RGF0ZSgpICsgMSwgMCwgMCwgMCwgLTEpO1xuXG5leHBvcnQgY29uc3QgbGFzdERheXMgPSAoZGF5czogbnVtYmVyKTogRGF0ZVJhbmdlID0+IHtcbiAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgY29uc3QgbWluID0gbmV3IERhdGUobm93KTtcbiAgbWluLnNldERhdGUobWluLmdldERhdGUoKSAtIGRheXMgKyAxKTtcblxuICByZXR1cm4ge1xuICAgIG1pbjogc3RhcnRPZkRheShtaW4pLFxuICAgIG1heDogZW5kT2ZEYXkobm93KSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCB0b2RheSA9ICgpID0+IGxhc3REYXlzKDEpO1xuXG5leHBvcnQgY29uc3QgdGhpc1dlZWsgPSAoZGVsdGEgPSAwLCBmaXJzdERheU9mV2VlayA9IDEpOiBEYXRlUmFuZ2UgPT4ge1xuICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuICBjb25zdCBtaW4gPSBuZXcgRGF0ZShub3cpO1xuXG4gIGxldCBkaWZmID0gbWluLmdldERheSgpIC0gZmlyc3REYXlPZldlZWs7XG4gIGlmIChkaWZmIDwgMCkge1xuICAgIGRpZmYgKz0gNztcbiAgfVxuICBtaW4uc2V0RGF0ZShtaW4uZ2V0RGF0ZSgpIC0gZGlmZiArIGRlbHRhICogNyk7XG5cbiAgY29uc3QgbWF4ID0gbmV3IERhdGUobWluKTtcbiAgbWF4LnNldERhdGUobWF4LmdldERhdGUoKSArIDYpO1xuXG4gIHJldHVybiB7XG4gICAgbWluOiBzdGFydE9mRGF5KG1pbiksXG4gICAgbWF4OiBlbmRPZkRheShtYXgpLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHRoaXNNb250aCA9IChkZWx0YSA9IDApOiBEYXRlUmFuZ2UgPT4ge1xuICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuICBjb25zdCBtaW4gPSBuZXcgRGF0ZShub3cpO1xuICBtaW4uc2V0RGF0ZSgxKTtcbiAgbWluLnNldE1vbnRoKG1pbi5nZXRNb250aCgpICsgZGVsdGEpO1xuICBjb25zdCBtYXggPSBuZXcgRGF0ZShtaW4pO1xuICBtYXguc2V0TW9udGgobWF4LmdldE1vbnRoKCkgKyAxKTtcbiAgbWF4LnNldERhdGUobWF4LmdldERhdGUoKSAtIDEpO1xuXG4gIHJldHVybiB7XG4gICAgbWluOiBzdGFydE9mRGF5KG1pbiksXG4gICAgbWF4OiBlbmRPZkRheShtYXgpLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHRoaXNZZWFyID0gKGRlbHRhID0gMCk6IERhdGVSYW5nZSA9PiB7XG4gIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG4gIGNvbnN0IG1pbiA9IG5ldyBEYXRlKG5vdyk7XG4gIG1pbi5zZXREYXRlKDEpO1xuICBtaW4uc2V0TW9udGgoMCk7XG4gIG1pbi5zZXRGdWxsWWVhcihtaW4uZ2V0RnVsbFllYXIoKSArIGRlbHRhKTtcbiAgY29uc3QgbWF4ID0gbmV3IERhdGUobWluKTtcbiAgbWF4LnNldEZ1bGxZZWFyKG1heC5nZXRGdWxsWWVhcigpICsgMSk7XG4gIG1heC5zZXREYXRlKG1heC5nZXREYXRlKCkgLSAxKTtcblxuICByZXR1cm4ge1xuICAgIG1pbjogc3RhcnRPZkRheShtaW4pLFxuICAgIG1heDogZW5kT2ZEYXkobWF4KSxcbiAgfTtcbn07XG5cbmNvbnN0IE1TX1BFUl9EQVkgPSAxMDAwICogNjAgKiA2MCAqIDI0O1xuZXhwb3J0IGNvbnN0IGdldENhbGVuZGFyV2VlayA9IChkYXRlOiBEYXRlKTogbnVtYmVyID0+IHtcbiAgLy8gSVNPIDg2MDE6IFdlZWsgMSBpcyB0aGUgd2VlayB3aXRoIHRoZSBmaXJzdCBUaHVyc2RheSBvZiB0aGUgeWVhci5cbiAgLy8gaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPX3dlZWtfZGF0ZVxuXG4gIGNvbnN0IHkgPSBkYXRlLmdldEZ1bGxZZWFyKCk7XG4gIGNvbnN0IGZkb3kgPSBuZXcgRGF0ZSh5LCAwLCAxKTtcbiAgY29uc3QgZG95ID0gTWF0aC5mbG9vcihcbiAgICAoZGF0ZS5nZXRUaW1lKCkgLSBmZG95LmdldFRpbWUoKSArIChkYXRlLmdldFRpbWV6b25lT2Zmc2V0KCkgLSBmZG95LmdldFRpbWV6b25lT2Zmc2V0KCkpKSAvXG4gICAgICBNU19QRVJfREFZLFxuICApO1xuICBjb25zdCBkb3cgPSBmZG95LmdldERheSgpO1xuICBjb25zdCB3ID0gTWF0aC5mbG9vcigoMTAgKyBkb3kgLSBkb3cpIC8gNyk7XG5cbiAgaWYgKHcgPT09IDApIHtcbiAgICByZXR1cm4gZ2V0Q2FsZW5kYXJXZWVrKG5ldyBEYXRlKHkgLSAxLCAxMSwgMzEpKTtcbiAgfVxuXG4gIHJldHVybiB3O1xufTtcblxuZXhwb3J0IGNvbnN0IGNvbW1vblF1aWNrT3B0aW9ucyA9IHtcbiAgdG9kYXk6IHsgbGFiZWw6IDxUZXh0IGlkPVwidG9kYXlcIiAvPiwgdmFsdWU6IHRvZGF5IH0sXG4gIHRoaXNXZWVrOiB7IGxhYmVsOiA8VGV4dCBpZD1cInRoaXNXZWVrXCIgLz4sIHZhbHVlOiAocHJvcHMpID0+IHRoaXNXZWVrKDAsIHByb3BzLmZpcnN0RGF5T2ZXZWVrKSB9LFxuICB0aGlzTW9udGg6IHsgbGFiZWw6IDxUZXh0IGlkPVwidGhpc01vbnRoXCIgLz4sIHZhbHVlOiAoKSA9PiB0aGlzTW9udGgoKSB9LFxuICB0aGlzWWVhcjogeyBsYWJlbDogPFRleHQgaWQ9XCJ0aGlzWWVhclwiIC8+LCB2YWx1ZTogKCkgPT4gdGhpc1llYXIoKSB9LFxuICBsYXN0U2V2ZW5EYXlzOiB7IGxhYmVsOiA8VGV4dCBpZD1cImxhc3RTZXZlbkRheXNcIiAvPiwgdmFsdWU6ICgpID0+IGxhc3REYXlzKDcpIH0sXG4gIGxhc3RUaGlydHlEYXlzOiB7IGxhYmVsOiA8VGV4dCBpZD1cImxhc3RUaGlydHlEYXlzXCIgLz4sIHZhbHVlOiAoKSA9PiBsYXN0RGF5cygzMCkgfSxcbn0gc2F0aXNmaWVzIFJlY29yZDxcbiAgRGF0ZVBpY2tlclF1aWNrT3B0aW9uICYgc3RyaW5nLFxuICB7IGxhYmVsOiBSZWFjdE5vZGU7IHZhbHVlOiBEYXRlIHwgRGF0ZVJhbmdlIHwgKChwcm9wczogRGF0ZVBpY2tlclByb3BzKSA9PiBEYXRlIHwgRGF0ZVJhbmdlKSB9XG4+O1xuXG4vKiogUmV0dXJucyB3aGV0aGVyIHR3byBkYXRlcyBhbmQvb3IgZGF0ZSByYW5nZXMgaW50ZXJzZWN0LiBJbnRlcnNlY3Rpb24gaXMgY29uc2lkZXJlZCBwZXIgZGF5LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRhdGVJbnRlcnNlY3QoYTogRGF0ZSB8IG51bGwgfCBEYXRlUmFuZ2UsIGI6IERhdGUgfCBudWxsIHwgRGF0ZVJhbmdlKSB7XG4gIGlmIChhIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgIGEgPSB7IG1pbjogYSwgbWF4OiBhIH07XG4gIH1cbiAgaWYgKGIgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgYiA9IHsgbWluOiBiLCBtYXg6IGIgfTtcbiAgfVxuXG4gIGlmICghYT8ubWluIHx8ICFhLm1heCB8fCAhYj8ubWluIHx8ICFiLm1heCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiAhKGVuZE9mRGF5KGEubWF4KSA8IHN0YXJ0T2ZEYXkoYi5taW4pIHx8IHN0YXJ0T2ZEYXkoYS5taW4pID4gZW5kT2ZEYXkoYi5tYXgpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRhdGVDbGFtcChkYXRlOiBEYXRlLCBtaW4/OiBEYXRlLCBtYXg/OiBEYXRlKSB7XG4gIGlmIChtaW4gJiYgZGF0ZSA8IG1pbikge1xuICAgIHJldHVybiBtaW47XG4gIH1cblxuICBpZiAobWF4ICYmIGRhdGUgPiBtYXgpIHtcbiAgICByZXR1cm4gbWF4O1xuICB9XG5cbiAgcmV0dXJuIGRhdGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBEYXRlUGlja2VyKHByb3BzOiBEYXRlUGlja2VyUHJvcHMpIHtcbiAgY29uc3QgY29udGV4dCA9IHVzZUNvbnRleHQoRGF0ZVBpY2tlckNvbnRleHQpO1xuXG4gIGNvbnN0IHtcbiAgICB2YWx1ZSxcbiAgICByYW5nZVNlbGVjdCxcbiAgICBsb2NhbGUsXG4gICAgZmlyc3REYXlPZldlZWsgPSAxLFxuICAgIGRlZmF1bHREYXRlSW5WaWV3LFxuICAgIHF1aWNrT3B0aW9ucyA9IFsndG9kYXknLCAndGhpc1dlZWsnXSxcbiAgICBtaW5EYXRlLFxuICAgIG1heERhdGUsXG4gICAgc2hvd0NhbGVuZGFyV2VlayxcbiAgfSA9IGRlZmF1bHRzPERhdGVQaWNrZXJQcm9wcz4ocHJvcHMsIGNvbnRleHQpO1xuXG4gIGZ1bmN0aW9uIG9uQ2hhbmdlKHZhbHVlOiBEYXRlIHwgRGF0ZVJhbmdlIHwgbnVsbCkge1xuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgIHZhbHVlID0gZGF0ZUNsYW1wKHZhbHVlLCBtaW5EYXRlLCBtYXhEYXRlKTtcbiAgICB9IGVsc2UgaWYgKHZhbHVlKSB7XG4gICAgICB2YWx1ZSA9IHtcbiAgICAgICAgbWluOiBkYXRlQ2xhbXAodmFsdWUubWluLCBtaW5EYXRlLCBtYXhEYXRlKSxcbiAgICAgICAgbWF4OiBkYXRlQ2xhbXAodmFsdWUubWF4LCBtaW5EYXRlLCBtYXhEYXRlKSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcHJvcHMub25DaGFuZ2UodmFsdWUpO1xuICB9XG5cbiAgY29uc3QgQnV0dG9uID0gdXNlVGhlbWUoKHQpID0+IHQuY29tcG9uZW50cy5CdXR0b24pO1xuICBjb25zdCBJY29uQnV0dG9uID0gdXNlVGhlbWUoKHQpID0+IHQuY29tcG9uZW50cy5JY29uQnV0dG9uKTtcbiAgY29uc3QgQ2hldnJvblJpZ2h0ID0gdXNlVGhlbWUoKHQpID0+IHQuaWNvbnMuQ2hldnJvblJpZ2h0KTtcbiAgY29uc3QgY3NzVmFyaWFibGVzID0gdXNlQ3NzVmFyaWFibGVzKCk7XG5cbiAgY29uc3QgbW91bnRUaW1lID0gdXNlTWVtbygoKSA9PiBuZXcgRGF0ZSgpLCBbXSk7XG4gIGNvbnN0IFtkYXRlSW5WaWV3LCBzZXREYXRlSW5WaWV3XSA9IHVzZVN0YXRlPERhdGU+KGRlZmF1bHREYXRlSW5WaWV3ID8/IG1vdW50VGltZSk7XG4gIGNvbnN0IFtkaXJ0eSwgc2V0RGlydHldID0gdXNlU3RhdGU8UGFydGlhbDxEYXRlUmFuZ2U+PigpO1xuICBjb25zdCBbaG92ZXJlZCwgc2V0SG92ZXJlZF0gPSB1c2VTdGF0ZTxEYXRlPigpO1xuXG4gIGNvbnN0IG1pbiA9IGRpcnR5ID8gZGlydHkubWluIDogdmFsdWUgaW5zdGFuY2VvZiBEYXRlID8gdmFsdWUgOiB2YWx1ZT8ubWluO1xuICBjb25zdCBtYXggPSBkaXJ0eSA/IGRpcnR5Lm1heCA6IHZhbHVlIGluc3RhbmNlb2YgRGF0ZSA/IHZhbHVlIDogdmFsdWU/Lm1heDtcblxuICBjb25zdCByZXNvbHZlZFF1aWNrT3B0aW9ucyA9IFsuLi5xdWlja09wdGlvbnMsIHsgbGFiZWw6IDxUZXh0IGlkPVwicmVzZXRcIiAvPiwgdmFsdWU6IG51bGwgfV0ubWFwKFxuICAgIChvcHRpb24sIGluZGV4KSA9PiB7XG4gICAgICBpZiAob3B0aW9uIGluc3RhbmNlb2YgRnVuY3Rpb24pIHtcbiAgICAgICAgcmV0dXJuIG9wdGlvbigodmFsdWUpID0+IHtcbiAgICAgICAgICBzZXREaXJ0eSh1bmRlZmluZWQpO1xuICAgICAgICAgIG9uQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHsgbGFiZWwsIHZhbHVlIH0gPSB0eXBlb2Ygb3B0aW9uID09PSAnc3RyaW5nJyA/IGNvbW1vblF1aWNrT3B0aW9uc1tvcHRpb25dIDogb3B0aW9uO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8QnV0dG9uXG4gICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICB2YXJpYW50PVwidGV4dFwiXG4gICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgc2V0RGlydHkodW5kZWZpbmVkKTtcblxuICAgICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRnVuY3Rpb24pIHtcbiAgICAgICAgICAgICAgb25DaGFuZ2UodmFsdWUocHJvcHMpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIG9uQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAge2xhYmVsfVxuICAgICAgICA8L0J1dHRvbj5cbiAgICAgICk7XG4gICAgfSxcbiAgKTtcblxuICBjb25zdCB7IGNhbGVuZGFycywgZ2V0QmFja1Byb3BzLCBnZXRGb3J3YXJkUHJvcHMsIGdldERhdGVQcm9wcyB9ID0gdXNlRGF5emVkKHtcbiAgICBvbkRhdGVTZWxlY3RlZDogKCkgPT4gdW5kZWZpbmVkLFxuICAgIGZpcnN0RGF5T2ZXZWVrLFxuICAgIHNob3dPdXRzaWRlRGF5czogdHJ1ZSxcbiAgICBkYXRlOiBkYXRlSW5WaWV3LFxuICAgIG9uT2Zmc2V0Q2hhbmdlZDogKG9mZnNldCkgPT5cbiAgICAgIHNldERhdGVJblZpZXcobmV3IERhdGUoZGF0ZUluVmlldy5nZXRGdWxsWWVhcigpLCBkYXRlSW5WaWV3LmdldE1vbnRoKCkgKyBvZmZzZXQpKSxcbiAgICBvZmZzZXQ6IDAsXG4gICAgbWluRGF0ZSxcbiAgICBtYXhEYXRlLFxuICB9KTtcbiAgY29uc3Qgbm93ID0gdXNlTWVtbygoKSA9PiBzdGFydE9mRGF5KG5ldyBEYXRlKCkpLCBbXSk7XG5cbiAgY29uc3QgZm9ybWF0V2Vla2RheSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHsgZm9ybWF0IH0gPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NhbGUsIHsgd2Vla2RheTogJ3Nob3J0JyB9KTtcbiAgICByZXR1cm4gKHdlZWtEYXk6IG51bWJlcikgPT5cbiAgICAgIGZvcm1hdChuZXcgRGF0ZShEYXRlLlVUQygyMDIxLCA3LCAoKHdlZWtEYXkgKyBmaXJzdERheU9mV2VlaykgJSA3KSArIDEpKSk7XG4gIH0sIFtsb2NhbGUsIGZpcnN0RGF5T2ZXZWVrXSk7XG5cbiAgdXNlRWZmZWN0KFxuICAgICgpID0+XG4gICAgICBzZXREYXRlSW5WaWV3KFxuICAgICAgICB2YWx1ZSA9PT0gbnVsbCA/IGRlZmF1bHREYXRlSW5WaWV3ID8/IG1vdW50VGltZSA6IHZhbHVlIGluc3RhbmNlb2YgRGF0ZSA/IHZhbHVlIDogdmFsdWUubWF4LFxuICAgICAgKSxcbiAgICBbdmFsdWUsIGRlZmF1bHREYXRlSW5WaWV3LCBtb3VudFRpbWVdLFxuICApO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFyYW5nZVNlbGVjdCkge1xuICAgICAgc2V0RGlydHkodW5kZWZpbmVkKTtcbiAgICB9XG4gIH0sIFtyYW5nZVNlbGVjdF0pO1xuXG4gIGZ1bmN0aW9uIHNldChtaW4/OiBEYXRlLCBtYXg/OiBEYXRlLCBlZGl0PzogJ21pbicgfCAnbWF4Jykge1xuICAgIGlmICghcmFuZ2VTZWxlY3QpIHtcbiAgICAgIG9uQ2hhbmdlKG1pbiA/PyBudWxsKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAobWluICYmIG1heCAmJiBtaW4gPiBtYXgpIHtcbiAgICAgIGlmIChlZGl0ID09PSAnbWluJykge1xuICAgICAgICBtYXggPSBtaW47XG4gICAgICB9IGVsc2UgaWYgKGVkaXQgPT09ICdtYXgnKSB7XG4gICAgICAgIG1pbiA9IG1heDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIFttaW4sIG1heF0gPSBbbWF4LCBtaW5dO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghbWluID09PSAhbWF4KSB7XG4gICAgICBzZXREaXJ0eSh1bmRlZmluZWQpO1xuICAgICAgb25DaGFuZ2UobWluICYmIG1heCA/IHsgbWluLCBtYXg6IGVuZE9mRGF5KG1heCkgfSA6IG51bGwpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXREaXJ0eSh7IG1pbiwgbWF4IH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGZvcm1hdE1vbnRoID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgeyBmb3JtYXQgfSA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KGxvY2FsZSwgeyBtb250aDogJ2xvbmcnIH0pO1xuICAgIHJldHVybiAobW9udGg6IG51bWJlcikgPT4gZm9ybWF0KG5ldyBEYXRlKDIwMjEsIG1vbnRoKSk7XG4gIH0sIFtsb2NhbGVdKTtcblxuICBjb25zdCBmb3JtYXRZZWFyID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgeyBmb3JtYXQgfSA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KGxvY2FsZSwgeyB5ZWFyOiAnbnVtZXJpYycgfSk7XG4gICAgcmV0dXJuICh5ZWFyOiBudW1iZXIpID0+IGZvcm1hdChuZXcgRGF0ZSh5ZWFyLCAwLCAxKSk7XG4gIH0sIFtsb2NhbGVdKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY3NzPXtjc3NWYXJpYWJsZXN9PlxuICAgICAgPGRpdlxuICAgICAgICBjc3M9e3tcbiAgICAgICAgICBkaXNwbGF5OiAnZ3JpZCcsXG4gICAgICAgICAgZ3JpZEF1dG9GbG93OiAnY29sdW1uJyxcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgYWxpZ25JdGVtczogJ2Jhc2VsaW5lJyxcbiAgICAgICAgICBnYXA6ICd2YXIoLS1zcGFjaW5nKScsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxEYXRlSW5wdXRcbiAgICAgICAgICB2YWx1ZT17bWluID8/IG51bGx9XG4gICAgICAgICAgb25DaGFuZ2U9eyhkYXRlKSA9PiBzZXQoZGF0ZSA/PyB1bmRlZmluZWQsIG1heCwgJ21pbicpfVxuICAgICAgICAgIGxvY2FsZT17bG9jYWxlfVxuICAgICAgICAvPlxuXG4gICAgICAgIHtyYW5nZVNlbGVjdCAmJiAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIHsnIC0gJ31cbiAgICAgICAgICAgIDxEYXRlSW5wdXRcbiAgICAgICAgICAgICAgdmFsdWU9e21heCA/PyBudWxsfVxuICAgICAgICAgICAgICBvbkNoYW5nZT17KGRhdGUpID0+IHNldChtaW4sIGRhdGUgPz8gdW5kZWZpbmVkLCAnbWF4Jyl9XG4gICAgICAgICAgICAgIGxvY2FsZT17bG9jYWxlfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuXG4gICAgICB7Y2FsZW5kYXJzLm1hcCgoeyBtb250aCwgeWVhciwgd2Vla3MgfSkgPT4gKFxuICAgICAgICA8ZGl2IGtleT17YCR7bW9udGh9JHt5ZWFyfWB9IGNzcz17eyBkaXNwbGF5OiAnZ3JpZCcgfX0+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY3NzPXt7XG4gICAgICAgICAgICAgIG1hcmdpbjogJ2NhbGModmFyKC0tc3BhY2luZykgKiA0KSAwJyxcbiAgICAgICAgICAgICAgZGlzcGxheTogJ2dyaWQnLFxuICAgICAgICAgICAgICBncmlkQXV0b0Zsb3c6ICdjb2x1bW4nLFxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ3NwYWNlLWJldHdlZW4nLFxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEljb25CdXR0b24gey4uLmdldEJhY2tQcm9wcyh7IGNhbGVuZGFycyB9KX0+XG4gICAgICAgICAgICAgIDxDaGV2cm9uUmlnaHQgY3NzPXt7IHRyYW5zZm9ybTogJ3JvdGF0ZTNkKDAsIDAsIDEsIDE4MGRlZyknIH19IC8+XG4gICAgICAgICAgICA8L0ljb25CdXR0b24+XG5cbiAgICAgICAgICAgIDxkaXYgY3NzPXt7IGRpc3BsYXk6ICdmbGV4JyB9fT5cbiAgICAgICAgICAgICAge2Zvcm1hdE1vbnRoKG1vbnRoKX0ge2Zvcm1hdFllYXIoeWVhcil9XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPEljb25CdXR0b24gey4uLmdldEZvcndhcmRQcm9wcyh7IGNhbGVuZGFycyB9KX0+XG4gICAgICAgICAgICAgIDxDaGV2cm9uUmlnaHQgLz5cbiAgICAgICAgICAgIDwvSWNvbkJ1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNzcz17e1xuICAgICAgICAgICAgICBqdXN0aWZ5U2VsZjogJ2NlbnRlcicsXG4gICAgICAgICAgICAgIGRpc3BsYXk6ICdncmlkJyxcbiAgICAgICAgICAgICAgZ3JpZFRlbXBsYXRlQ29sdW1uczogJ3JlcGVhdCg4LCBtYXgtY29udGVudCknLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7c2hvd0NhbGVuZGFyV2VlayA/IChcbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNzcz17e1xuICAgICAgICAgICAgICAgICAganVzdGlmeVNlbGY6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgICAgcGFkZGluZzogMTAsXG4gICAgICAgICAgICAgICAgICBib3JkZXJSaWdodDogYDFweCBzb2xpZCAke2dyYXl9YCxcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFRleHQgaWQ9XCJjYWxlbmRhcldlZWtcIiAvPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxkaXYgLz5cbiAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgIHt3ZWVrRGF5cy5tYXAoKF92LCB3ZWVrRGF5KSA9PiAoXG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBrZXk9e3dlZWtEYXl9XG4gICAgICAgICAgICAgICAgY3NzPXt7XG4gICAgICAgICAgICAgICAgICBqdXN0aWZ5U2VsZjogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgICBwYWRkaW5nOiAxMCxcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2Zvcm1hdFdlZWtkYXkod2Vla0RheSl9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKSl9XG5cbiAgICAgICAgICAgIHt3ZWVrcy5tYXAoKHdlZWssIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHdlZWtTdGFydCA9IHdlZWtbMF0gYXMgRGF0ZU9iajtcbiAgICAgICAgICAgICAgY29uc3Qgd2Vla0VuZCA9IHdlZWtbNl0gYXMgRGF0ZU9iajtcbiAgICAgICAgICAgICAgY29uc3Qgd2Vla0Rpc2FibGVkID1cbiAgICAgICAgICAgICAgICAhcmFuZ2VTZWxlY3QgfHxcbiAgICAgICAgICAgICAgICAobWluRGF0ZSAmJiB3ZWVrRW5kLmRhdGUgPCBtaW5EYXRlKSB8fFxuICAgICAgICAgICAgICAgIChtYXhEYXRlICYmIHdlZWtTdGFydC5kYXRlID4gbWF4RGF0ZSk7XG5cbiAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICA8RnJhZ21lbnQga2V5PXtpbmRleH0+XG4gICAgICAgICAgICAgICAgICB7c2hvd0NhbGVuZGFyV2VlayA/IChcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIGNzcz17e1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMTAsXG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6ICdub25lJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICd0cmFuc3BhcmVudCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IHdlZWtEaXNhYmxlZCA/IHVuZGVmaW5lZCA6ICdwb2ludGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQ6ICdpbmhlcml0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlclJpZ2h0OiBgMXB4IHNvbGlkICR7Z3JheX1gLFxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHdlZWtEaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1pbiA9IG1pbkRhdGUgJiYgd2Vla1N0YXJ0LmRhdGUgPCBtaW5EYXRlID8gbWluRGF0ZSA6IHdlZWtTdGFydC5kYXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWF4ID0gbWF4RGF0ZSAmJiB3ZWVrRW5kLmRhdGUgPiBtYXhEYXRlID8gbWF4RGF0ZSA6IHdlZWtFbmQuZGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldChtaW4sIG1heCk7XG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtnZXRDYWxlbmRhcldlZWsoKHdlZWtbMF0gYXMgRGF0ZU9iaikuZGF0ZSl9XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAvPlxuICAgICAgICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgICAgICAge3dlZWsubWFwKChkYXRlT2JqZWN0LCBkYXlJbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWRhdGVPYmplY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gPGRpdiBrZXk9e2RheUluZGV4fSAvPjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgcHJldk1vbnRoLCBuZXh0TW9udGgsIGRhdGUgfSA9IGRhdGVPYmplY3Q7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRvZGF5ID0gc3RhcnRPZkRheShkYXRlKS5nZXRUaW1lKCkgPT09IG5vdy5nZXRUaW1lKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRpc2FibGVkID0gKG1pbkRhdGUgJiYgZGF0ZSA8IG1pbkRhdGUpIHx8IChtYXhEYXRlICYmIGRhdGUgPiBtYXhEYXRlKTtcblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZCA9XG4gICAgICAgICAgICAgICAgICAgICAgZGF0ZS5nZXRUaW1lKCkgPT09IG1pbj8uZ2V0VGltZSgpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgKG1pbiAmJiBtYXggJiYgZGF0ZUludGVyc2VjdChkYXRlLCB7IG1pbiwgbWF4IH0pKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJlU2VsZWN0ZWQgPVxuICAgICAgICAgICAgICAgICAgICAgICFzZWxlY3RlZCAmJlxuICAgICAgICAgICAgICAgICAgICAgICFkaXNhYmxlZCAmJlxuICAgICAgICAgICAgICAgICAgICAgIChkYXRlLmdldFRpbWUoKSA9PT0gaG92ZXJlZD8uZ2V0VGltZSgpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAobWluICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICFtYXggJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaG92ZXJlZCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlSW50ZXJzZWN0KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluIDw9IGhvdmVyZWQgPyB7IG1pbiwgbWF4OiBob3ZlcmVkIH0gOiB7IG1pbjogaG92ZXJlZCwgbWF4OiBtaW4gfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKSkpO1xuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtgJHtpbmRleH0tJHtkYXlJbmRleH1gfVxuICAgICAgICAgICAgICAgICAgICAgICAgY3NzPXtbXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAxMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6ICdub25lJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAndHJhbnNwYXJlbnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnNvcjogZGlzYWJsZWQgPyB1bmRlZmluZWQgOiAncG9pbnRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udDogJ2luaGVyaXQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAocHJldk1vbnRoIHx8IG5leHRNb250aCkgJiYge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBncmF5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICB0b2RheSAmJiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0bGluZTogJzFweCBzb2xpZCB2YXIoLS1zZWNvbmRhcnlNYWluKScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkICYmIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAndmFyKC0tcHJpbWFyeU1haW4pJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ3ZhcigtLXByaW1hcnlDb250cmFzdFRleHQpJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlU2VsZWN0ZWQgJiYge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICd2YXIoLS1wcmltYXJ5TGlnaHQpJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ3ZhcigtLXByaW1hcnlDb250cmFzdFRleHQpJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIF19XG4gICAgICAgICAgICAgICAgICAgICAgICB7Li4uZ2V0RGF0ZVByb3BzKHsgZGF0ZU9iajogZGF0ZU9iamVjdCB9KX1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRpcnR5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1pbikgc2V0KG1pbiwgZGF0ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBzZXQoZGF0ZSwgbWF4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQoZGF0ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICBvblBvaW50ZXJPdmVyPXsoKSA9PiBzZXRIb3ZlcmVkKGRhdGUpfVxuICAgICAgICAgICAgICAgICAgICAgICAgb25Qb2ludGVyT3V0PXsoKSA9PiBzZXRIb3ZlcmVkKHVuZGVmaW5lZCl9XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAge2RhdGUuZ2V0RGF0ZSgpfVxuICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgPC9GcmFnbWVudD5cbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICkpfVxuXG4gICAgICA8ZGl2XG4gICAgICAgIGNzcz17e1xuICAgICAgICAgIG1hcmdpblRvcDogJ3ZhcigtLXNwYWNpbmcpJyxcbiAgICAgICAgICBkaXNwbGF5OiAnZ3JpZCcsXG4gICAgICAgICAgZ3JpZEF1dG9GbG93OiAnY29sdW1uJyxcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIHtyZXNvbHZlZFF1aWNrT3B0aW9uc31cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufVxuIl19 */",
|
|
899
923
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__$d
|
|
900
924
|
};
|
|
901
925
|
var _ref2$4 = process.env.NODE_ENV === "production" ? {
|
|
@@ -904,7 +928,7 @@ var _ref2$4 = process.env.NODE_ENV === "production" ? {
|
|
|
904
928
|
} : {
|
|
905
929
|
name: "7ssa71-DatePicker",
|
|
906
930
|
styles: "display:grid;label:DatePicker;",
|
|
907
|
-
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3NjaHVtbWFyLXRhYmxlL3NjaHVtbWFyLXRhYmxlL3NyYy9jb21wb25lbnRzL2RhdGVQaWNrZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdVcUMiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvc2NodW1tYXItdGFibGUvc2NodW1tYXItdGFibGUvc3JjL2NvbXBvbmVudHMvZGF0ZVBpY2tlci50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VEYXl6ZWQgfSBmcm9tICdkYXl6ZWQnO1xuaW1wb3J0IHR5cGUgeyBSZWFjdE5vZGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICcuLi9ob29rcy91c2VUaGVtZSc7XG5pbXBvcnQgeyBncmF5IH0gZnJvbSAnLi4vdGhlbWUvZGVmYXVsdFRoZW1lL2RlZmF1bHRDbGFzc2VzJztcbmltcG9ydCB7IHVzZUNzc1ZhcmlhYmxlcyB9IGZyb20gJy4uL3RoZW1lL3VzZUNzc1ZhcmlhYmxlcyc7XG5pbXBvcnQgeyBEYXRlSW5wdXQgfSBmcm9tICcuL2RhdGVJbnB1dCc7XG5pbXBvcnQgeyBUZXh0IH0gZnJvbSAnLi90ZXh0JztcblxuZXhwb3J0IHR5cGUgRGF0ZVJhbmdlID0geyBtaW46IERhdGU7IG1heDogRGF0ZSB9O1xuXG5leHBvcnQgdHlwZSBEYXRlUGlja2VyUXVpY2tPcHRpb24gPVxuICB8ICd0b2RheSdcbiAgfCAndGhpc1dlZWsnXG4gIHwgJ3RoaXNNb250aCdcbiAgfCAndGhpc1llYXInXG4gIHwgJ2xhc3RTZXZlbkRheXMnXG4gIHwgJ2xhc3RUaGlydHlEYXlzJ1xuICB8IHsgbGFiZWw6IFJlYWN0Tm9kZTsgdmFsdWU6IERhdGUgfCBEYXRlUmFuZ2UgfCAoKCkgPT4gRGF0ZSB8IERhdGVSYW5nZSkgfVxuICB8ICgob25DaGFuZ2U6ICh2YWx1ZTogRGF0ZSB8IERhdGVSYW5nZSB8IG51bGwpID0+IHZvaWQpID0+IFJlYWN0Tm9kZSk7XG5cbmV4cG9ydCB0eXBlIERhdGVQaWNrZXJQcm9wcyA9IHtcbiAgLyoqIEN1cnJlbnRseSBzZWxlY3RlZCBkYXkgb3IgcmFuZ2Ugb2YgZGF5cy4gKi9cbiAgdmFsdWU6IERhdGUgfCBEYXRlUmFuZ2UgfCBudWxsO1xuICAvKiogQ2FsbGJhY2sgZm9yIHdoZW4gdGhlIGRheSAocmFuZ2UpIGNoYW5nZXMuICovXG4gIG9uQ2hhbmdlOiAodmFsdWU6IERhdGUgfCBEYXRlUmFuZ2UgfCBudWxsKSA9PiB2b2lkO1xuICAvKiogSWYgZW5hYmxlZCwgcmFuZ2VzIGNhbiBiZSBzZWxlY3RlZC4gKi9cbiAgcmFuZ2VTZWxlY3Q/OiBib29sZWFuO1xuICAvKiogV2hpY2ggbG9jYWxlIHRvIHVzZSB0byByZW5kZXIgdGhlIGNhbGVuZGFyLiAqL1xuICBsb2NhbGU/OiBzdHJpbmc7XG4gIC8qKiBXaGljaCBkYXkgb2YgdGhlIHdlZWsgc2hvdWxkIGJlIGluIHRoZSBmaXJzdCBjb2x1bW4uICgwPVN1bmRheSwgMT1Nb25kYXksIC4uLilcbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgZmlyc3REYXlPZldlZWs/OiAwIHwgMSB8IDIgfCAzIHwgNCB8IDUgfCA2O1xuICAvKiogV2hpY2ggbW9udGggdG8gc2hvdyBpbml0aWFsbHkgKi9cbiAgZGVmYXVsdERhdGVJblZpZXc/OiBEYXRlO1xuICAvKiogU2hvdyBidXR0b25zIHRvIHF1aWNrbHkgc2VsZWN0IHN1Z2dlc3RlZCBkYXRlcyBvciBkYXRlIHJhbmdlcyAqL1xuICBxdWlja09wdGlvbnM/OiBEYXRlUGlja2VyUXVpY2tPcHRpb25bXTtcbiAgbWluRGF0ZT86IERhdGU7XG4gIG1heERhdGU/OiBEYXRlO1xufTtcblxuY29uc3Qgd2Vla0RheXMgPSBbMCwgMSwgMiwgMywgNCwgNSwgNl0gYXMgY29uc3Q7XG5cbi8qKiBSb3VuZHMgYSBkYXRlIGRvd24gdG8gdGhlIHN0YXJ0IG9mIHRoZSBkYXkuICovXG5leHBvcnQgY29uc3Qgc3RhcnRPZkRheSA9IChkOiBEYXRlKSA9PiBuZXcgRGF0ZShkLmdldEZ1bGxZZWFyKCksIGQuZ2V0TW9udGgoKSwgZC5nZXREYXRlKCkpO1xuXG4vKiogUm91bmRzIGEgZGF0ZSB1cCB0byB0aGUgZW5kIG9mIHRoZSBkYXkuICovXG5leHBvcnQgY29uc3QgZW5kT2ZEYXkgPSAoZDogRGF0ZSkgPT5cbiAgbmV3IERhdGUoZC5nZXRGdWxsWWVhcigpLCBkLmdldE1vbnRoKCksIGQuZ2V0RGF0ZSgpICsgMSwgMCwgMCwgMCwgLTEpO1xuXG5leHBvcnQgY29uc3QgbGFzdERheXMgPSAoZGF5czogbnVtYmVyKTogRGF0ZVJhbmdlID0+IHtcbiAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgY29uc3QgbWluID0gbmV3IERhdGUobm93KTtcbiAgbWluLnNldERhdGUobWluLmdldERhdGUoKSAtIGRheXMgKyAxKTtcblxuICByZXR1cm4ge1xuICAgIG1pbjogc3RhcnRPZkRheShtaW4pLFxuICAgIG1heDogZW5kT2ZEYXkobm93KSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCB0b2RheSA9ICgpID0+IGxhc3REYXlzKDEpO1xuXG5leHBvcnQgY29uc3QgdGhpc1dlZWsgPSAoZGVsdGEgPSAwLCBmaXJzdERheU9mV2VlayA9IDEpOiBEYXRlUmFuZ2UgPT4ge1xuICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuICBjb25zdCBtaW4gPSBuZXcgRGF0ZShub3cpO1xuXG4gIGxldCBkaWZmID0gbWluLmdldERheSgpIC0gZmlyc3REYXlPZldlZWs7XG4gIGlmIChkaWZmIDwgMCkge1xuICAgIGRpZmYgKz0gNztcbiAgfVxuICBtaW4uc2V0RGF0ZShtaW4uZ2V0RGF0ZSgpIC0gZGlmZiArIGRlbHRhICogNyk7XG5cbiAgY29uc3QgbWF4ID0gbmV3IERhdGUobWluKTtcbiAgbWF4LnNldERhdGUobWF4LmdldERhdGUoKSArIDYpO1xuXG4gIHJldHVybiB7XG4gICAgbWluOiBzdGFydE9mRGF5KG1pbiksXG4gICAgbWF4OiBlbmRPZkRheShtYXgpLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHRoaXNNb250aCA9IChkZWx0YSA9IDApOiBEYXRlUmFuZ2UgPT4ge1xuICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuICBjb25zdCBtaW4gPSBuZXcgRGF0ZShub3cpO1xuICBtaW4uc2V0RGF0ZSgxKTtcbiAgbWluLnNldE1vbnRoKG1pbi5nZXRNb250aCgpICsgZGVsdGEpO1xuICBjb25zdCBtYXggPSBuZXcgRGF0ZShtaW4pO1xuICBtYXguc2V0TW9udGgobWF4LmdldE1vbnRoKCkgKyAxKTtcbiAgbWF4LnNldERhdGUobWF4LmdldERhdGUoKSAtIDEpO1xuXG4gIHJldHVybiB7XG4gICAgbWluOiBzdGFydE9mRGF5KG1pbiksXG4gICAgbWF4OiBlbmRPZkRheShtYXgpLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHRoaXNZZWFyID0gKGRlbHRhID0gMCk6IERhdGVSYW5nZSA9PiB7XG4gIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG4gIGNvbnN0IG1pbiA9IG5ldyBEYXRlKG5vdyk7XG4gIG1pbi5zZXREYXRlKDEpO1xuICBtaW4uc2V0TW9udGgoMCk7XG4gIG1pbi5zZXRGdWxsWWVhcihtaW4uZ2V0RnVsbFllYXIoKSArIGRlbHRhKTtcbiAgY29uc3QgbWF4ID0gbmV3IERhdGUobWluKTtcbiAgbWF4LnNldEZ1bGxZZWFyKG1heC5nZXRGdWxsWWVhcigpICsgMSk7XG4gIG1heC5zZXREYXRlKG1heC5nZXREYXRlKCkgLSAxKTtcblxuICByZXR1cm4ge1xuICAgIG1pbjogc3RhcnRPZkRheShtaW4pLFxuICAgIG1heDogZW5kT2ZEYXkobWF4KSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBjb21tb25RdWlja09wdGlvbnMgPSB7XG4gIHRvZGF5OiB7IGxhYmVsOiA8VGV4dCBpZD1cInRvZGF5XCIgLz4sIHZhbHVlOiB0b2RheSB9LFxuICB0aGlzV2VlazogeyBsYWJlbDogPFRleHQgaWQ9XCJ0aGlzV2Vla1wiIC8+LCB2YWx1ZTogKHByb3BzKSA9PiB0aGlzV2VlaygwLCBwcm9wcy5maXJzdERheU9mV2VlaykgfSxcbiAgdGhpc01vbnRoOiB7IGxhYmVsOiA8VGV4dCBpZD1cInRoaXNNb250aFwiIC8+LCB2YWx1ZTogKCkgPT4gdGhpc01vbnRoKCkgfSxcbiAgdGhpc1llYXI6IHsgbGFiZWw6IDxUZXh0IGlkPVwidGhpc1llYXJcIiAvPiwgdmFsdWU6ICgpID0+IHRoaXNZZWFyKCkgfSxcbiAgbGFzdFNldmVuRGF5czogeyBsYWJlbDogPFRleHQgaWQ9XCJsYXN0U2V2ZW5EYXlzXCIgLz4sIHZhbHVlOiAoKSA9PiBsYXN0RGF5cyg3KSB9LFxuICBsYXN0VGhpcnR5RGF5czogeyBsYWJlbDogPFRleHQgaWQ9XCJsYXN0VGhpcnR5RGF5c1wiIC8+LCB2YWx1ZTogKCkgPT4gbGFzdERheXMoMzApIH0sXG59IHNhdGlzZmllcyBSZWNvcmQ8XG4gIERhdGVQaWNrZXJRdWlja09wdGlvbiAmIHN0cmluZyxcbiAgeyBsYWJlbDogUmVhY3ROb2RlOyB2YWx1ZTogRGF0ZSB8IERhdGVSYW5nZSB8ICgocHJvcHM6IERhdGVQaWNrZXJQcm9wcykgPT4gRGF0ZSB8IERhdGVSYW5nZSkgfVxuPjtcblxuLyoqIFJldHVybnMgd2hldGhlciB0d28gZGF0ZXMgYW5kL29yIGRhdGUgcmFuZ2VzIGludGVyc2VjdC4gSW50ZXJzZWN0aW9uIGlzIGNvbnNpZGVyZWQgcGVyIGRheS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkYXRlSW50ZXJzZWN0KGE6IERhdGUgfCBudWxsIHwgRGF0ZVJhbmdlLCBiOiBEYXRlIHwgbnVsbCB8IERhdGVSYW5nZSkge1xuICBpZiAoYSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICBhID0geyBtaW46IGEsIG1heDogYSB9O1xuICB9XG4gIGlmIChiIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgIGIgPSB7IG1pbjogYiwgbWF4OiBiIH07XG4gIH1cblxuICBpZiAoIWE/Lm1pbiB8fCAhYS5tYXggfHwgIWI/Lm1pbiB8fCAhYi5tYXgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gIShlbmRPZkRheShhLm1heCkgPCBzdGFydE9mRGF5KGIubWluKSB8fCBzdGFydE9mRGF5KGEubWluKSA+IGVuZE9mRGF5KGIubWF4KSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkYXRlQ2xhbXAoZGF0ZTogRGF0ZSwgbWluPzogRGF0ZSwgbWF4PzogRGF0ZSkge1xuICBpZiAobWluICYmIGRhdGUgPCBtaW4pIHtcbiAgICByZXR1cm4gbWluO1xuICB9XG5cbiAgaWYgKG1heCAmJiBkYXRlID4gbWF4KSB7XG4gICAgcmV0dXJuIG1heDtcbiAgfVxuXG4gIHJldHVybiBkYXRlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gRGF0ZVBpY2tlcihwcm9wczogRGF0ZVBpY2tlclByb3BzKSB7XG4gIGNvbnN0IHtcbiAgICB2YWx1ZSxcbiAgICByYW5nZVNlbGVjdCxcbiAgICBsb2NhbGUsXG4gICAgZmlyc3REYXlPZldlZWsgPSAxLFxuICAgIGRlZmF1bHREYXRlSW5WaWV3LFxuICAgIHF1aWNrT3B0aW9ucyA9IFsndG9kYXknLCAndGhpc1dlZWsnXSxcbiAgICBtaW5EYXRlLFxuICAgIG1heERhdGUsXG4gIH0gPSBwcm9wcztcblxuICBmdW5jdGlvbiBvbkNoYW5nZSh2YWx1ZTogRGF0ZSB8IERhdGVSYW5nZSB8IG51bGwpIHtcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICB2YWx1ZSA9IGRhdGVDbGFtcCh2YWx1ZSwgbWluRGF0ZSwgbWF4RGF0ZSk7XG4gICAgfSBlbHNlIGlmICh2YWx1ZSkge1xuICAgICAgdmFsdWUgPSB7XG4gICAgICAgIG1pbjogZGF0ZUNsYW1wKHZhbHVlLm1pbiwgbWluRGF0ZSwgbWF4RGF0ZSksXG4gICAgICAgIG1heDogZGF0ZUNsYW1wKHZhbHVlLm1heCwgbWluRGF0ZSwgbWF4RGF0ZSksXG4gICAgICB9O1xuICAgIH1cblxuICAgIHByb3BzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgfVxuXG4gIGNvbnN0IEJ1dHRvbiA9IHVzZVRoZW1lKCh0KSA9PiB0LmNvbXBvbmVudHMuQnV0dG9uKTtcbiAgY29uc3QgSWNvbkJ1dHRvbiA9IHVzZVRoZW1lKCh0KSA9PiB0LmNvbXBvbmVudHMuSWNvbkJ1dHRvbik7XG4gIGNvbnN0IENoZXZyb25SaWdodCA9IHVzZVRoZW1lKCh0KSA9PiB0Lmljb25zLkNoZXZyb25SaWdodCk7XG4gIGNvbnN0IGNzc1ZhcmlhYmxlcyA9IHVzZUNzc1ZhcmlhYmxlcygpO1xuXG4gIGNvbnN0IG1vdW50VGltZSA9IHVzZU1lbW8oKCkgPT4gbmV3IERhdGUoKSwgW10pO1xuICBjb25zdCBbZGF0ZUluVmlldywgc2V0RGF0ZUluVmlld10gPSB1c2VTdGF0ZTxEYXRlPihkZWZhdWx0RGF0ZUluVmlldyA/PyBtb3VudFRpbWUpO1xuICBjb25zdCBbZGlydHksIHNldERpcnR5XSA9IHVzZVN0YXRlPFBhcnRpYWw8RGF0ZVJhbmdlPj4oKTtcbiAgY29uc3QgW2hvdmVyZWQsIHNldEhvdmVyZWRdID0gdXNlU3RhdGU8RGF0ZT4oKTtcblxuICBjb25zdCBtaW4gPSBkaXJ0eSA/IGRpcnR5Lm1pbiA6IHZhbHVlIGluc3RhbmNlb2YgRGF0ZSA/IHZhbHVlIDogdmFsdWU/Lm1pbjtcbiAgY29uc3QgbWF4ID0gZGlydHkgPyBkaXJ0eS5tYXggOiB2YWx1ZSBpbnN0YW5jZW9mIERhdGUgPyB2YWx1ZSA6IHZhbHVlPy5tYXg7XG5cbiAgY29uc3QgcmVzb2x2ZWRRdWlja09wdGlvbnMgPSBbLi4ucXVpY2tPcHRpb25zLCB7IGxhYmVsOiA8VGV4dCBpZD1cInJlc2V0XCIgLz4sIHZhbHVlOiBudWxsIH1dLm1hcChcbiAgICAob3B0aW9uLCBpbmRleCkgPT4ge1xuICAgICAgaWYgKG9wdGlvbiBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG4gICAgICAgIHJldHVybiBvcHRpb24oKHZhbHVlKSA9PiB7XG4gICAgICAgICAgc2V0RGlydHkodW5kZWZpbmVkKTtcbiAgICAgICAgICBvbkNoYW5nZSh2YWx1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB7IGxhYmVsLCB2YWx1ZSB9ID0gdHlwZW9mIG9wdGlvbiA9PT0gJ3N0cmluZycgPyBjb21tb25RdWlja09wdGlvbnNbb3B0aW9uXSA6IG9wdGlvbjtcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPEJ1dHRvblxuICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgdmFyaWFudD1cInRleHRcIlxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIHNldERpcnR5KHVuZGVmaW5lZCk7XG5cbiAgICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG4gICAgICAgICAgICAgIG9uQ2hhbmdlKHZhbHVlKHByb3BzKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBvbkNoYW5nZSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgPC9CdXR0b24+XG4gICAgICApO1xuICAgIH0sXG4gICk7XG5cbiAgY29uc3QgeyBjYWxlbmRhcnMsIGdldEJhY2tQcm9wcywgZ2V0Rm9yd2FyZFByb3BzLCBnZXREYXRlUHJvcHMgfSA9IHVzZURheXplZCh7XG4gICAgb25EYXRlU2VsZWN0ZWQ6ICgpID0+IHVuZGVmaW5lZCxcbiAgICBmaXJzdERheU9mV2VlayxcbiAgICBzaG93T3V0c2lkZURheXM6IHRydWUsXG4gICAgZGF0ZTogZGF0ZUluVmlldyxcbiAgICBvbk9mZnNldENoYW5nZWQ6IChvZmZzZXQpID0+XG4gICAgICBzZXREYXRlSW5WaWV3KG5ldyBEYXRlKGRhdGVJblZpZXcuZ2V0RnVsbFllYXIoKSwgZGF0ZUluVmlldy5nZXRNb250aCgpICsgb2Zmc2V0KSksXG4gICAgb2Zmc2V0OiAwLFxuICAgIG1pbkRhdGUsXG4gICAgbWF4RGF0ZSxcbiAgfSk7XG4gIGNvbnN0IG5vdyA9IHVzZU1lbW8oKCkgPT4gc3RhcnRPZkRheShuZXcgRGF0ZSgpKSwgW10pO1xuXG4gIGNvbnN0IGZvcm1hdFdlZWtkYXkgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCB7IGZvcm1hdCB9ID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQobG9jYWxlLCB7IHdlZWtkYXk6ICdzaG9ydCcgfSk7XG4gICAgcmV0dXJuICh3ZWVrRGF5OiBudW1iZXIpID0+XG4gICAgICBmb3JtYXQobmV3IERhdGUoRGF0ZS5VVEMoMjAyMSwgNywgKCh3ZWVrRGF5ICsgZmlyc3REYXlPZldlZWspICUgNykgKyAxKSkpO1xuICB9LCBbbG9jYWxlLCBmaXJzdERheU9mV2Vla10pO1xuXG4gIHVzZUVmZmVjdChcbiAgICAoKSA9PlxuICAgICAgc2V0RGF0ZUluVmlldyhcbiAgICAgICAgdmFsdWUgPT09IG51bGwgPyBkZWZhdWx0RGF0ZUluVmlldyA/PyBtb3VudFRpbWUgOiB2YWx1ZSBpbnN0YW5jZW9mIERhdGUgPyB2YWx1ZSA6IHZhbHVlLm1heCxcbiAgICAgICksXG4gICAgW3ZhbHVlLCBkZWZhdWx0RGF0ZUluVmlldywgbW91bnRUaW1lXSxcbiAgKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghcmFuZ2VTZWxlY3QpIHtcbiAgICAgIHNldERpcnR5KHVuZGVmaW5lZCk7XG4gICAgfVxuICB9LCBbcmFuZ2VTZWxlY3RdKTtcblxuICBmdW5jdGlvbiBzZXQobWluPzogRGF0ZSwgbWF4PzogRGF0ZSwgZWRpdD86ICdtaW4nIHwgJ21heCcpIHtcbiAgICBpZiAoIXJhbmdlU2VsZWN0KSB7XG4gICAgICBvbkNoYW5nZShtaW4gPz8gbnVsbCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKG1pbiAmJiBtYXggJiYgbWluID4gbWF4KSB7XG4gICAgICBpZiAoZWRpdCA9PT0gJ21pbicpIHtcbiAgICAgICAgbWF4ID0gbWluO1xuICAgICAgfSBlbHNlIGlmIChlZGl0ID09PSAnbWF4Jykge1xuICAgICAgICBtaW4gPSBtYXg7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBbbWluLCBtYXhdID0gW21heCwgbWluXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIW1pbiA9PT0gIW1heCkge1xuICAgICAgc2V0RGlydHkodW5kZWZpbmVkKTtcbiAgICAgIG9uQ2hhbmdlKG1pbiAmJiBtYXggPyB7IG1pbiwgbWF4OiBlbmRPZkRheShtYXgpIH0gOiBudWxsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0RGlydHkoeyBtaW4sIG1heCB9KTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBmb3JtYXRNb250aCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHsgZm9ybWF0IH0gPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NhbGUsIHsgbW9udGg6ICdsb25nJyB9KTtcbiAgICByZXR1cm4gKG1vbnRoOiBudW1iZXIpID0+IGZvcm1hdChuZXcgRGF0ZSgyMDIxLCBtb250aCkpO1xuICB9LCBbbG9jYWxlXSk7XG5cbiAgY29uc3QgZm9ybWF0WWVhciA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHsgZm9ybWF0IH0gPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NhbGUsIHsgeWVhcjogJ251bWVyaWMnIH0pO1xuICAgIHJldHVybiAoeWVhcjogbnVtYmVyKSA9PiBmb3JtYXQobmV3IERhdGUoeWVhciwgMCwgMSkpO1xuICB9LCBbbG9jYWxlXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNzcz17Y3NzVmFyaWFibGVzfT5cbiAgICAgIDxkaXZcbiAgICAgICAgY3NzPXt7XG4gICAgICAgICAgZGlzcGxheTogJ2dyaWQnLFxuICAgICAgICAgIGdyaWRBdXRvRmxvdzogJ2NvbHVtbicsXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgIGFsaWduSXRlbXM6ICdiYXNlbGluZScsXG4gICAgICAgICAgZ2FwOiAndmFyKC0tc3BhY2luZyknLFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8RGF0ZUlucHV0XG4gICAgICAgICAgdmFsdWU9e21pbiA/PyBudWxsfVxuICAgICAgICAgIG9uQ2hhbmdlPXsoZGF0ZSkgPT4gc2V0KGRhdGUgPz8gdW5kZWZpbmVkLCBtYXgsICdtaW4nKX1cbiAgICAgICAgICBsb2NhbGU9e2xvY2FsZX1cbiAgICAgICAgLz5cblxuICAgICAgICB7cmFuZ2VTZWxlY3QgJiYgKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICB7JyAtICd9XG4gICAgICAgICAgICA8RGF0ZUlucHV0XG4gICAgICAgICAgICAgIHZhbHVlPXttYXggPz8gbnVsbH1cbiAgICAgICAgICAgICAgb25DaGFuZ2U9eyhkYXRlKSA9PiBzZXQobWluLCBkYXRlID8/IHVuZGVmaW5lZCwgJ21heCcpfVxuICAgICAgICAgICAgICBsb2NhbGU9e2xvY2FsZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cblxuICAgICAge2NhbGVuZGFycy5tYXAoKHsgbW9udGgsIHllYXIsIHdlZWtzIH0pID0+IChcbiAgICAgICAgPGRpdiBrZXk9e2Ake21vbnRofSR7eWVhcn1gfSBjc3M9e3sgZGlzcGxheTogJ2dyaWQnIH19PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNzcz17e1xuICAgICAgICAgICAgICBtYXJnaW46ICdjYWxjKHZhcigtLXNwYWNpbmcpICogNCkgMCcsXG4gICAgICAgICAgICAgIGRpc3BsYXk6ICdncmlkJyxcbiAgICAgICAgICAgICAgZ3JpZEF1dG9GbG93OiAnY29sdW1uJyxcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1iZXR3ZWVuJyxcbiAgICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxJY29uQnV0dG9uIHsuLi5nZXRCYWNrUHJvcHMoeyBjYWxlbmRhcnMgfSl9PlxuICAgICAgICAgICAgICA8Q2hldnJvblJpZ2h0IGNzcz17eyB0cmFuc2Zvcm06ICdyb3RhdGUzZCgwLCAwLCAxLCAxODBkZWcpJyB9fSAvPlxuICAgICAgICAgICAgPC9JY29uQnV0dG9uPlxuXG4gICAgICAgICAgICA8ZGl2IGNzcz17eyBkaXNwbGF5OiAnZmxleCcgfX0+XG4gICAgICAgICAgICAgIHtmb3JtYXRNb250aChtb250aCl9IHtmb3JtYXRZZWFyKHllYXIpfVxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxJY29uQnV0dG9uIHsuLi5nZXRGb3J3YXJkUHJvcHMoeyBjYWxlbmRhcnMgfSl9PlxuICAgICAgICAgICAgICA8Q2hldnJvblJpZ2h0IC8+XG4gICAgICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjc3M9e3tcbiAgICAgICAgICAgICAganVzdGlmeVNlbGY6ICdjZW50ZXInLFxuICAgICAgICAgICAgICBkaXNwbGF5OiAnZ3JpZCcsXG4gICAgICAgICAgICAgIGdyaWRUZW1wbGF0ZUNvbHVtbnM6ICdyZXBlYXQoNywgbWF4LWNvbnRlbnQpJyxcbiAgICAgICAgICAgICAgZm9udFdlaWdodDogJ2JvbGQnLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7d2Vla0RheXMubWFwKChfdiwgd2Vla0RheSkgPT4gKFxuICAgICAgICAgICAgICA8ZGl2IGtleT17d2Vla0RheX0gY3NzPXt7IGp1c3RpZnlTZWxmOiAnY2VudGVyJywgbWFyZ2luQm90dG9tOiAndmFyKC0tc3BhY2luZyknIH19PlxuICAgICAgICAgICAgICAgIHtmb3JtYXRXZWVrZGF5KHdlZWtEYXkpfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICkpfVxuXG4gICAgICAgICAgICB7d2Vla3MubWFwKCh3ZWVrLCBpbmRleCkgPT5cbiAgICAgICAgICAgICAgd2Vlay5tYXAoKGRhdGVPYmplY3QsIGRheUluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFkYXRlT2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gPGRpdiBrZXk9e2Ake2luZGV4fS0ke2RheUluZGV4fWB9IC8+O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnN0IHsgcHJldk1vbnRoLCBuZXh0TW9udGgsIGRhdGUgfSA9IGRhdGVPYmplY3Q7XG4gICAgICAgICAgICAgICAgY29uc3QgdG9kYXkgPSBzdGFydE9mRGF5KGRhdGUpLmdldFRpbWUoKSA9PT0gbm93LmdldFRpbWUoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBkaXNhYmxlZCA9IChtaW5EYXRlICYmIGRhdGUgPCBtaW5EYXRlKSB8fCAobWF4RGF0ZSAmJiBkYXRlID4gbWF4RGF0ZSk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZCA9XG4gICAgICAgICAgICAgICAgICBkYXRlLmdldFRpbWUoKSA9PT0gbWluPy5nZXRUaW1lKCkgfHxcbiAgICAgICAgICAgICAgICAgIChtaW4gJiYgbWF4ICYmIGRhdGVJbnRlcnNlY3QoZGF0ZSwgeyBtaW4sIG1heCB9KSk7XG4gICAgICAgICAgICAgICAgY29uc3QgcHJlU2VsZWN0ZWQgPVxuICAgICAgICAgICAgICAgICAgIXNlbGVjdGVkICYmXG4gICAgICAgICAgICAgICAgICAhZGlzYWJsZWQgJiZcbiAgICAgICAgICAgICAgICAgIChkYXRlLmdldFRpbWUoKSA9PT0gaG92ZXJlZD8uZ2V0VGltZSgpIHx8XG4gICAgICAgICAgICAgICAgICAgIChtaW4gJiZcbiAgICAgICAgICAgICAgICAgICAgICAhbWF4ICYmXG4gICAgICAgICAgICAgICAgICAgICAgaG92ZXJlZCAmJlxuICAgICAgICAgICAgICAgICAgICAgIGRhdGVJbnRlcnNlY3QoXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWluIDw9IGhvdmVyZWQgPyB7IG1pbiwgbWF4OiBob3ZlcmVkIH0gOiB7IG1pbjogaG92ZXJlZCwgbWF4OiBtaW4gfSxcbiAgICAgICAgICAgICAgICAgICAgICApKSk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBrZXk9e2Ake2luZGV4fS0ke2RheUluZGV4fWB9XG4gICAgICAgICAgICAgICAgICAgIGNzcz17W1xuICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEwLFxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAnMXB4IHNvbGlkIHRyYW5zcGFyZW50JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICd0cmFuc3BhcmVudCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3I6ICdwb2ludGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIChwcmV2TW9udGggfHwgbmV4dE1vbnRoKSAmJiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogZ3JheSxcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIHRvZGF5ICYmIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogJzFweCBzb2xpZCB2YXIoLS1zZWNvbmRhcnlNYWluKScsXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZCAmJiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAndmFyKC0tcHJpbWFyeU1haW4pJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAndmFyKC0tcHJpbWFyeUNvbnRyYXN0VGV4dCknLFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgcHJlU2VsZWN0ZWQgJiYge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJ3ZhcigtLXByaW1hcnlMaWdodCknLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICd2YXIoLS1wcmltYXJ5Q29udHJhc3RUZXh0KScsXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXX1cbiAgICAgICAgICAgICAgICAgICAgey4uLmdldERhdGVQcm9wcyh7IGRhdGVPYmo6IGRhdGVPYmplY3QgfSl9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoZGlydHkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtaW4pIHNldChtaW4sIGRhdGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBzZXQoZGF0ZSwgbWF4KTtcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0KGRhdGUpO1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgb25Qb2ludGVyT3Zlcj17KCkgPT4gc2V0SG92ZXJlZChkYXRlKX1cbiAgICAgICAgICAgICAgICAgICAgb25Qb2ludGVyT3V0PXsoKSA9PiBzZXRIb3ZlcmVkKHVuZGVmaW5lZCl9XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2RhdGUuZ2V0RGF0ZSgpfVxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICkpfVxuXG4gICAgICA8ZGl2XG4gICAgICAgIGNzcz17e1xuICAgICAgICAgIG1hcmdpblRvcDogJ3ZhcigtLXNwYWNpbmcpJyxcbiAgICAgICAgICBkaXNwbGF5OiAnZ3JpZCcsXG4gICAgICAgICAgZ3JpZEF1dG9GbG93OiAnY29sdW1uJyxcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIHtyZXNvbHZlZFF1aWNrT3B0aW9uc31cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufVxuIl19 */",
|
|
931
|
+
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3NjaHVtbWFyLXRhYmxlL3NjaHVtbWFyLXRhYmxlL3NyYy9jb21wb25lbnRzL2RhdGVQaWNrZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQStXcUMiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvc2NodW1tYXItdGFibGUvc2NodW1tYXItdGFibGUvc3JjL2NvbXBvbmVudHMvZGF0ZVBpY2tlci50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRlT2JqLCB1c2VEYXl6ZWQgfSBmcm9tICdkYXl6ZWQnO1xuaW1wb3J0IHtcbiAgRnJhZ21lbnQsXG4gIFJlYWN0Tm9kZSxcbiAgY3JlYXRlQ29udGV4dCxcbiAgdXNlQ29udGV4dCxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICcuLi9ob29rcy91c2VUaGVtZSc7XG5pbXBvcnQgeyBkZWZhdWx0cyB9IGZyb20gJy4uL21pc2MvZGVmYXVsdHMnO1xuaW1wb3J0IHsgZ3JheSB9IGZyb20gJy4uL3RoZW1lL2RlZmF1bHRUaGVtZS9kZWZhdWx0Q2xhc3Nlcyc7XG5pbXBvcnQgeyB1c2VDc3NWYXJpYWJsZXMgfSBmcm9tICcuLi90aGVtZS91c2VDc3NWYXJpYWJsZXMnO1xuaW1wb3J0IHsgRGF0ZUlucHV0IH0gZnJvbSAnLi9kYXRlSW5wdXQnO1xuaW1wb3J0IHsgVGV4dCB9IGZyb20gJy4vdGV4dCc7XG5cbmV4cG9ydCB0eXBlIERhdGVSYW5nZSA9IHsgbWluOiBEYXRlOyBtYXg6IERhdGUgfTtcblxuZXhwb3J0IHR5cGUgRGF0ZVBpY2tlclF1aWNrT3B0aW9uID1cbiAgfCAndG9kYXknXG4gIHwgJ3RoaXNXZWVrJ1xuICB8ICd0aGlzTW9udGgnXG4gIHwgJ3RoaXNZZWFyJ1xuICB8ICdsYXN0U2V2ZW5EYXlzJ1xuICB8ICdsYXN0VGhpcnR5RGF5cydcbiAgfCB7IGxhYmVsOiBSZWFjdE5vZGU7IHZhbHVlOiBEYXRlIHwgRGF0ZVJhbmdlIHwgKCgpID0+IERhdGUgfCBEYXRlUmFuZ2UpIH1cbiAgfCAoKG9uQ2hhbmdlOiAodmFsdWU6IERhdGUgfCBEYXRlUmFuZ2UgfCBudWxsKSA9PiB2b2lkKSA9PiBSZWFjdE5vZGUpO1xuXG5leHBvcnQgdHlwZSBEYXRlUGlja2VyUHJvcHMgPSB7XG4gIC8qKiBDdXJyZW50bHkgc2VsZWN0ZWQgZGF5IG9yIHJhbmdlIG9mIGRheXMuICovXG4gIHZhbHVlOiBEYXRlIHwgRGF0ZVJhbmdlIHwgbnVsbDtcbiAgLyoqIENhbGxiYWNrIGZvciB3aGVuIHRoZSBkYXkgKHJhbmdlKSBjaGFuZ2VzLiAqL1xuICBvbkNoYW5nZTogKHZhbHVlOiBEYXRlIHwgRGF0ZVJhbmdlIHwgbnVsbCkgPT4gdm9pZDtcbiAgLyoqIElmIGVuYWJsZWQsIHJhbmdlcyBjYW4gYmUgc2VsZWN0ZWQuICovXG4gIHJhbmdlU2VsZWN0PzogYm9vbGVhbjtcbiAgLyoqIFdoaWNoIGxvY2FsZSB0byB1c2UgdG8gcmVuZGVyIHRoZSBjYWxlbmRhci4gKi9cbiAgbG9jYWxlPzogc3RyaW5nO1xuICAvKiogV2hpY2ggZGF5IG9mIHRoZSB3ZWVrIHNob3VsZCBiZSBpbiB0aGUgZmlyc3QgY29sdW1uLiAoMD1TdW5kYXksIDE9TW9uZGF5LCAuLi4pXG4gICAqIEBkZWZhdWx0IDFcbiAgICovXG4gIGZpcnN0RGF5T2ZXZWVrPzogMCB8IDEgfCAyIHwgMyB8IDQgfCA1IHwgNjtcbiAgLyoqIFdoaWNoIG1vbnRoIHRvIHNob3cgaW5pdGlhbGx5ICovXG4gIGRlZmF1bHREYXRlSW5WaWV3PzogRGF0ZTtcbiAgLyoqIFNob3cgYnV0dG9ucyB0byBxdWlja2x5IHNlbGVjdCBzdWdnZXN0ZWQgZGF0ZXMgb3IgZGF0ZSByYW5nZXMgKi9cbiAgcXVpY2tPcHRpb25zPzogRGF0ZVBpY2tlclF1aWNrT3B0aW9uW107XG4gIC8qKiBNaW5pbXVtIHNlbGVjdGFibGUgZGF0ZSAqL1xuICBtaW5EYXRlPzogRGF0ZTtcbiAgLyoqIE1heGltdW0gc2VsZWN0YWJsZSBkYXRlICovXG4gIG1heERhdGU/OiBEYXRlO1xuICAvKiogV2hldGhlciB0byBzaG93IHRoZSBjYWxlbmRhciB3ZWVrIGluIHRoZSBmaXJzdCBjb2x1bW4gKi9cbiAgc2hvd0NhbGVuZGFyV2Vlaz86IGJvb2xlYW47XG59O1xuXG5jb25zdCBEYXRlUGlja2VyQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8UGFydGlhbDxPbWl0PERhdGVQaWNrZXJQcm9wcywgJ3ZhbHVlJyB8ICdvbkNoYW5nZSc+Pj4oe30pO1xuXG5leHBvcnQgZnVuY3Rpb24gRGF0ZVBpY2tlclByb3ZpZGVyKHtcbiAgY2hpbGRyZW4sXG4gIC4uLnByb3BzXG59OiBQYXJ0aWFsPE9taXQ8RGF0ZVBpY2tlclByb3BzLCAndmFsdWUnIHwgJ29uQ2hhbmdlJz4+ICYgeyBjaGlsZHJlbj86IFJlYWN0Tm9kZSB9KSB7XG4gIGNvbnN0IHZhbHVlID0gdXNlTWVtbygoKSA9PiBwcm9wcywgW0pTT04uc3RyaW5naWZ5KHByb3BzKV0pO1xuXG4gIHJldHVybiA8RGF0ZVBpY2tlckNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3ZhbHVlfT57Y2hpbGRyZW59PC9EYXRlUGlja2VyQ29udGV4dC5Qcm92aWRlcj47XG59XG5cbmNvbnN0IHdlZWtEYXlzID0gWzAsIDEsIDIsIDMsIDQsIDUsIDZdIGFzIGNvbnN0O1xuXG4vKiogUm91bmRzIGEgZGF0ZSBkb3duIHRvIHRoZSBzdGFydCBvZiB0aGUgZGF5LiAqL1xuZXhwb3J0IGNvbnN0IHN0YXJ0T2ZEYXkgPSAoZDogRGF0ZSkgPT4gbmV3IERhdGUoZC5nZXRGdWxsWWVhcigpLCBkLmdldE1vbnRoKCksIGQuZ2V0RGF0ZSgpKTtcblxuLyoqIFJvdW5kcyBhIGRhdGUgdXAgdG8gdGhlIGVuZCBvZiB0aGUgZGF5LiAqL1xuZXhwb3J0IGNvbnN0IGVuZE9mRGF5ID0gKGQ6IERhdGUpID0+XG4gIG5ldyBEYXRlKGQuZ2V0RnVsbFllYXIoKSwgZC5nZXRNb250aCgpLCBkLmdldERhdGUoKSArIDEsIDAsIDAsIDAsIC0xKTtcblxuZXhwb3J0IGNvbnN0IGxhc3REYXlzID0gKGRheXM6IG51bWJlcik6IERhdGVSYW5nZSA9PiB7XG4gIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG4gIGNvbnN0IG1pbiA9IG5ldyBEYXRlKG5vdyk7XG4gIG1pbi5zZXREYXRlKG1pbi5nZXREYXRlKCkgLSBkYXlzICsgMSk7XG5cbiAgcmV0dXJuIHtcbiAgICBtaW46IHN0YXJ0T2ZEYXkobWluKSxcbiAgICBtYXg6IGVuZE9mRGF5KG5vdyksXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgdG9kYXkgPSAoKSA9PiBsYXN0RGF5cygxKTtcblxuZXhwb3J0IGNvbnN0IHRoaXNXZWVrID0gKGRlbHRhID0gMCwgZmlyc3REYXlPZldlZWsgPSAxKTogRGF0ZVJhbmdlID0+IHtcbiAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgY29uc3QgbWluID0gbmV3IERhdGUobm93KTtcblxuICBsZXQgZGlmZiA9IG1pbi5nZXREYXkoKSAtIGZpcnN0RGF5T2ZXZWVrO1xuICBpZiAoZGlmZiA8IDApIHtcbiAgICBkaWZmICs9IDc7XG4gIH1cbiAgbWluLnNldERhdGUobWluLmdldERhdGUoKSAtIGRpZmYgKyBkZWx0YSAqIDcpO1xuXG4gIGNvbnN0IG1heCA9IG5ldyBEYXRlKG1pbik7XG4gIG1heC5zZXREYXRlKG1heC5nZXREYXRlKCkgKyA2KTtcblxuICByZXR1cm4ge1xuICAgIG1pbjogc3RhcnRPZkRheShtaW4pLFxuICAgIG1heDogZW5kT2ZEYXkobWF4KSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCB0aGlzTW9udGggPSAoZGVsdGEgPSAwKTogRGF0ZVJhbmdlID0+IHtcbiAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgY29uc3QgbWluID0gbmV3IERhdGUobm93KTtcbiAgbWluLnNldERhdGUoMSk7XG4gIG1pbi5zZXRNb250aChtaW4uZ2V0TW9udGgoKSArIGRlbHRhKTtcbiAgY29uc3QgbWF4ID0gbmV3IERhdGUobWluKTtcbiAgbWF4LnNldE1vbnRoKG1heC5nZXRNb250aCgpICsgMSk7XG4gIG1heC5zZXREYXRlKG1heC5nZXREYXRlKCkgLSAxKTtcblxuICByZXR1cm4ge1xuICAgIG1pbjogc3RhcnRPZkRheShtaW4pLFxuICAgIG1heDogZW5kT2ZEYXkobWF4KSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCB0aGlzWWVhciA9IChkZWx0YSA9IDApOiBEYXRlUmFuZ2UgPT4ge1xuICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuICBjb25zdCBtaW4gPSBuZXcgRGF0ZShub3cpO1xuICBtaW4uc2V0RGF0ZSgxKTtcbiAgbWluLnNldE1vbnRoKDApO1xuICBtaW4uc2V0RnVsbFllYXIobWluLmdldEZ1bGxZZWFyKCkgKyBkZWx0YSk7XG4gIGNvbnN0IG1heCA9IG5ldyBEYXRlKG1pbik7XG4gIG1heC5zZXRGdWxsWWVhcihtYXguZ2V0RnVsbFllYXIoKSArIDEpO1xuICBtYXguc2V0RGF0ZShtYXguZ2V0RGF0ZSgpIC0gMSk7XG5cbiAgcmV0dXJuIHtcbiAgICBtaW46IHN0YXJ0T2ZEYXkobWluKSxcbiAgICBtYXg6IGVuZE9mRGF5KG1heCksXG4gIH07XG59O1xuXG5jb25zdCBNU19QRVJfREFZID0gMTAwMCAqIDYwICogNjAgKiAyNDtcbmV4cG9ydCBjb25zdCBnZXRDYWxlbmRhcldlZWsgPSAoZGF0ZTogRGF0ZSk6IG51bWJlciA9PiB7XG4gIC8vIElTTyA4NjAxOiBXZWVrIDEgaXMgdGhlIHdlZWsgd2l0aCB0aGUgZmlyc3QgVGh1cnNkYXkgb2YgdGhlIHllYXIuXG4gIC8vIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT193ZWVrX2RhdGVcblxuICBjb25zdCB5ID0gZGF0ZS5nZXRGdWxsWWVhcigpO1xuICBjb25zdCBmZG95ID0gbmV3IERhdGUoeSwgMCwgMSk7XG4gIGNvbnN0IGRveSA9IE1hdGguZmxvb3IoXG4gICAgKGRhdGUuZ2V0VGltZSgpIC0gZmRveS5nZXRUaW1lKCkgKyAoZGF0ZS5nZXRUaW1lem9uZU9mZnNldCgpIC0gZmRveS5nZXRUaW1lem9uZU9mZnNldCgpKSkgL1xuICAgICAgTVNfUEVSX0RBWSxcbiAgKTtcbiAgY29uc3QgZG93ID0gZmRveS5nZXREYXkoKTtcbiAgY29uc3QgdyA9IE1hdGguZmxvb3IoKDEwICsgZG95IC0gZG93KSAvIDcpO1xuXG4gIGlmICh3ID09PSAwKSB7XG4gICAgcmV0dXJuIGdldENhbGVuZGFyV2VlayhuZXcgRGF0ZSh5IC0gMSwgMTEsIDMxKSk7XG4gIH1cblxuICByZXR1cm4gdztcbn07XG5cbmV4cG9ydCBjb25zdCBjb21tb25RdWlja09wdGlvbnMgPSB7XG4gIHRvZGF5OiB7IGxhYmVsOiA8VGV4dCBpZD1cInRvZGF5XCIgLz4sIHZhbHVlOiB0b2RheSB9LFxuICB0aGlzV2VlazogeyBsYWJlbDogPFRleHQgaWQ9XCJ0aGlzV2Vla1wiIC8+LCB2YWx1ZTogKHByb3BzKSA9PiB0aGlzV2VlaygwLCBwcm9wcy5maXJzdERheU9mV2VlaykgfSxcbiAgdGhpc01vbnRoOiB7IGxhYmVsOiA8VGV4dCBpZD1cInRoaXNNb250aFwiIC8+LCB2YWx1ZTogKCkgPT4gdGhpc01vbnRoKCkgfSxcbiAgdGhpc1llYXI6IHsgbGFiZWw6IDxUZXh0IGlkPVwidGhpc1llYXJcIiAvPiwgdmFsdWU6ICgpID0+IHRoaXNZZWFyKCkgfSxcbiAgbGFzdFNldmVuRGF5czogeyBsYWJlbDogPFRleHQgaWQ9XCJsYXN0U2V2ZW5EYXlzXCIgLz4sIHZhbHVlOiAoKSA9PiBsYXN0RGF5cyg3KSB9LFxuICBsYXN0VGhpcnR5RGF5czogeyBsYWJlbDogPFRleHQgaWQ9XCJsYXN0VGhpcnR5RGF5c1wiIC8+LCB2YWx1ZTogKCkgPT4gbGFzdERheXMoMzApIH0sXG59IHNhdGlzZmllcyBSZWNvcmQ8XG4gIERhdGVQaWNrZXJRdWlja09wdGlvbiAmIHN0cmluZyxcbiAgeyBsYWJlbDogUmVhY3ROb2RlOyB2YWx1ZTogRGF0ZSB8IERhdGVSYW5nZSB8ICgocHJvcHM6IERhdGVQaWNrZXJQcm9wcykgPT4gRGF0ZSB8IERhdGVSYW5nZSkgfVxuPjtcblxuLyoqIFJldHVybnMgd2hldGhlciB0d28gZGF0ZXMgYW5kL29yIGRhdGUgcmFuZ2VzIGludGVyc2VjdC4gSW50ZXJzZWN0aW9uIGlzIGNvbnNpZGVyZWQgcGVyIGRheS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkYXRlSW50ZXJzZWN0KGE6IERhdGUgfCBudWxsIHwgRGF0ZVJhbmdlLCBiOiBEYXRlIHwgbnVsbCB8IERhdGVSYW5nZSkge1xuICBpZiAoYSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICBhID0geyBtaW46IGEsIG1heDogYSB9O1xuICB9XG4gIGlmIChiIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgIGIgPSB7IG1pbjogYiwgbWF4OiBiIH07XG4gIH1cblxuICBpZiAoIWE/Lm1pbiB8fCAhYS5tYXggfHwgIWI/Lm1pbiB8fCAhYi5tYXgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gIShlbmRPZkRheShhLm1heCkgPCBzdGFydE9mRGF5KGIubWluKSB8fCBzdGFydE9mRGF5KGEubWluKSA+IGVuZE9mRGF5KGIubWF4KSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkYXRlQ2xhbXAoZGF0ZTogRGF0ZSwgbWluPzogRGF0ZSwgbWF4PzogRGF0ZSkge1xuICBpZiAobWluICYmIGRhdGUgPCBtaW4pIHtcbiAgICByZXR1cm4gbWluO1xuICB9XG5cbiAgaWYgKG1heCAmJiBkYXRlID4gbWF4KSB7XG4gICAgcmV0dXJuIG1heDtcbiAgfVxuXG4gIHJldHVybiBkYXRlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gRGF0ZVBpY2tlcihwcm9wczogRGF0ZVBpY2tlclByb3BzKSB7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KERhdGVQaWNrZXJDb250ZXh0KTtcblxuICBjb25zdCB7XG4gICAgdmFsdWUsXG4gICAgcmFuZ2VTZWxlY3QsXG4gICAgbG9jYWxlLFxuICAgIGZpcnN0RGF5T2ZXZWVrID0gMSxcbiAgICBkZWZhdWx0RGF0ZUluVmlldyxcbiAgICBxdWlja09wdGlvbnMgPSBbJ3RvZGF5JywgJ3RoaXNXZWVrJ10sXG4gICAgbWluRGF0ZSxcbiAgICBtYXhEYXRlLFxuICAgIHNob3dDYWxlbmRhcldlZWssXG4gIH0gPSBkZWZhdWx0czxEYXRlUGlja2VyUHJvcHM+KHByb3BzLCBjb250ZXh0KTtcblxuICBmdW5jdGlvbiBvbkNoYW5nZSh2YWx1ZTogRGF0ZSB8IERhdGVSYW5nZSB8IG51bGwpIHtcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICB2YWx1ZSA9IGRhdGVDbGFtcCh2YWx1ZSwgbWluRGF0ZSwgbWF4RGF0ZSk7XG4gICAgfSBlbHNlIGlmICh2YWx1ZSkge1xuICAgICAgdmFsdWUgPSB7XG4gICAgICAgIG1pbjogZGF0ZUNsYW1wKHZhbHVlLm1pbiwgbWluRGF0ZSwgbWF4RGF0ZSksXG4gICAgICAgIG1heDogZGF0ZUNsYW1wKHZhbHVlLm1heCwgbWluRGF0ZSwgbWF4RGF0ZSksXG4gICAgICB9O1xuICAgIH1cblxuICAgIHByb3BzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgfVxuXG4gIGNvbnN0IEJ1dHRvbiA9IHVzZVRoZW1lKCh0KSA9PiB0LmNvbXBvbmVudHMuQnV0dG9uKTtcbiAgY29uc3QgSWNvbkJ1dHRvbiA9IHVzZVRoZW1lKCh0KSA9PiB0LmNvbXBvbmVudHMuSWNvbkJ1dHRvbik7XG4gIGNvbnN0IENoZXZyb25SaWdodCA9IHVzZVRoZW1lKCh0KSA9PiB0Lmljb25zLkNoZXZyb25SaWdodCk7XG4gIGNvbnN0IGNzc1ZhcmlhYmxlcyA9IHVzZUNzc1ZhcmlhYmxlcygpO1xuXG4gIGNvbnN0IG1vdW50VGltZSA9IHVzZU1lbW8oKCkgPT4gbmV3IERhdGUoKSwgW10pO1xuICBjb25zdCBbZGF0ZUluVmlldywgc2V0RGF0ZUluVmlld10gPSB1c2VTdGF0ZTxEYXRlPihkZWZhdWx0RGF0ZUluVmlldyA/PyBtb3VudFRpbWUpO1xuICBjb25zdCBbZGlydHksIHNldERpcnR5XSA9IHVzZVN0YXRlPFBhcnRpYWw8RGF0ZVJhbmdlPj4oKTtcbiAgY29uc3QgW2hvdmVyZWQsIHNldEhvdmVyZWRdID0gdXNlU3RhdGU8RGF0ZT4oKTtcblxuICBjb25zdCBtaW4gPSBkaXJ0eSA/IGRpcnR5Lm1pbiA6IHZhbHVlIGluc3RhbmNlb2YgRGF0ZSA/IHZhbHVlIDogdmFsdWU/Lm1pbjtcbiAgY29uc3QgbWF4ID0gZGlydHkgPyBkaXJ0eS5tYXggOiB2YWx1ZSBpbnN0YW5jZW9mIERhdGUgPyB2YWx1ZSA6IHZhbHVlPy5tYXg7XG5cbiAgY29uc3QgcmVzb2x2ZWRRdWlja09wdGlvbnMgPSBbLi4ucXVpY2tPcHRpb25zLCB7IGxhYmVsOiA8VGV4dCBpZD1cInJlc2V0XCIgLz4sIHZhbHVlOiBudWxsIH1dLm1hcChcbiAgICAob3B0aW9uLCBpbmRleCkgPT4ge1xuICAgICAgaWYgKG9wdGlvbiBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG4gICAgICAgIHJldHVybiBvcHRpb24oKHZhbHVlKSA9PiB7XG4gICAgICAgICAgc2V0RGlydHkodW5kZWZpbmVkKTtcbiAgICAgICAgICBvbkNoYW5nZSh2YWx1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB7IGxhYmVsLCB2YWx1ZSB9ID0gdHlwZW9mIG9wdGlvbiA9PT0gJ3N0cmluZycgPyBjb21tb25RdWlja09wdGlvbnNbb3B0aW9uXSA6IG9wdGlvbjtcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPEJ1dHRvblxuICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgdmFyaWFudD1cInRleHRcIlxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIHNldERpcnR5KHVuZGVmaW5lZCk7XG5cbiAgICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG4gICAgICAgICAgICAgIG9uQ2hhbmdlKHZhbHVlKHByb3BzKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBvbkNoYW5nZSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgPC9CdXR0b24+XG4gICAgICApO1xuICAgIH0sXG4gICk7XG5cbiAgY29uc3QgeyBjYWxlbmRhcnMsIGdldEJhY2tQcm9wcywgZ2V0Rm9yd2FyZFByb3BzLCBnZXREYXRlUHJvcHMgfSA9IHVzZURheXplZCh7XG4gICAgb25EYXRlU2VsZWN0ZWQ6ICgpID0+IHVuZGVmaW5lZCxcbiAgICBmaXJzdERheU9mV2VlayxcbiAgICBzaG93T3V0c2lkZURheXM6IHRydWUsXG4gICAgZGF0ZTogZGF0ZUluVmlldyxcbiAgICBvbk9mZnNldENoYW5nZWQ6IChvZmZzZXQpID0+XG4gICAgICBzZXREYXRlSW5WaWV3KG5ldyBEYXRlKGRhdGVJblZpZXcuZ2V0RnVsbFllYXIoKSwgZGF0ZUluVmlldy5nZXRNb250aCgpICsgb2Zmc2V0KSksXG4gICAgb2Zmc2V0OiAwLFxuICAgIG1pbkRhdGUsXG4gICAgbWF4RGF0ZSxcbiAgfSk7XG4gIGNvbnN0IG5vdyA9IHVzZU1lbW8oKCkgPT4gc3RhcnRPZkRheShuZXcgRGF0ZSgpKSwgW10pO1xuXG4gIGNvbnN0IGZvcm1hdFdlZWtkYXkgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCB7IGZvcm1hdCB9ID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQobG9jYWxlLCB7IHdlZWtkYXk6ICdzaG9ydCcgfSk7XG4gICAgcmV0dXJuICh3ZWVrRGF5OiBudW1iZXIpID0+XG4gICAgICBmb3JtYXQobmV3IERhdGUoRGF0ZS5VVEMoMjAyMSwgNywgKCh3ZWVrRGF5ICsgZmlyc3REYXlPZldlZWspICUgNykgKyAxKSkpO1xuICB9LCBbbG9jYWxlLCBmaXJzdERheU9mV2Vla10pO1xuXG4gIHVzZUVmZmVjdChcbiAgICAoKSA9PlxuICAgICAgc2V0RGF0ZUluVmlldyhcbiAgICAgICAgdmFsdWUgPT09IG51bGwgPyBkZWZhdWx0RGF0ZUluVmlldyA/PyBtb3VudFRpbWUgOiB2YWx1ZSBpbnN0YW5jZW9mIERhdGUgPyB2YWx1ZSA6IHZhbHVlLm1heCxcbiAgICAgICksXG4gICAgW3ZhbHVlLCBkZWZhdWx0RGF0ZUluVmlldywgbW91bnRUaW1lXSxcbiAgKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghcmFuZ2VTZWxlY3QpIHtcbiAgICAgIHNldERpcnR5KHVuZGVmaW5lZCk7XG4gICAgfVxuICB9LCBbcmFuZ2VTZWxlY3RdKTtcblxuICBmdW5jdGlvbiBzZXQobWluPzogRGF0ZSwgbWF4PzogRGF0ZSwgZWRpdD86ICdtaW4nIHwgJ21heCcpIHtcbiAgICBpZiAoIXJhbmdlU2VsZWN0KSB7XG4gICAgICBvbkNoYW5nZShtaW4gPz8gbnVsbCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKG1pbiAmJiBtYXggJiYgbWluID4gbWF4KSB7XG4gICAgICBpZiAoZWRpdCA9PT0gJ21pbicpIHtcbiAgICAgICAgbWF4ID0gbWluO1xuICAgICAgfSBlbHNlIGlmIChlZGl0ID09PSAnbWF4Jykge1xuICAgICAgICBtaW4gPSBtYXg7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBbbWluLCBtYXhdID0gW21heCwgbWluXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIW1pbiA9PT0gIW1heCkge1xuICAgICAgc2V0RGlydHkodW5kZWZpbmVkKTtcbiAgICAgIG9uQ2hhbmdlKG1pbiAmJiBtYXggPyB7IG1pbiwgbWF4OiBlbmRPZkRheShtYXgpIH0gOiBudWxsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0RGlydHkoeyBtaW4sIG1heCB9KTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBmb3JtYXRNb250aCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHsgZm9ybWF0IH0gPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NhbGUsIHsgbW9udGg6ICdsb25nJyB9KTtcbiAgICByZXR1cm4gKG1vbnRoOiBudW1iZXIpID0+IGZvcm1hdChuZXcgRGF0ZSgyMDIxLCBtb250aCkpO1xuICB9LCBbbG9jYWxlXSk7XG5cbiAgY29uc3QgZm9ybWF0WWVhciA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHsgZm9ybWF0IH0gPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NhbGUsIHsgeWVhcjogJ251bWVyaWMnIH0pO1xuICAgIHJldHVybiAoeWVhcjogbnVtYmVyKSA9PiBmb3JtYXQobmV3IERhdGUoeWVhciwgMCwgMSkpO1xuICB9LCBbbG9jYWxlXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNzcz17Y3NzVmFyaWFibGVzfT5cbiAgICAgIDxkaXZcbiAgICAgICAgY3NzPXt7XG4gICAgICAgICAgZGlzcGxheTogJ2dyaWQnLFxuICAgICAgICAgIGdyaWRBdXRvRmxvdzogJ2NvbHVtbicsXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgIGFsaWduSXRlbXM6ICdiYXNlbGluZScsXG4gICAgICAgICAgZ2FwOiAndmFyKC0tc3BhY2luZyknLFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8RGF0ZUlucHV0XG4gICAgICAgICAgdmFsdWU9e21pbiA/PyBudWxsfVxuICAgICAgICAgIG9uQ2hhbmdlPXsoZGF0ZSkgPT4gc2V0KGRhdGUgPz8gdW5kZWZpbmVkLCBtYXgsICdtaW4nKX1cbiAgICAgICAgICBsb2NhbGU9e2xvY2FsZX1cbiAgICAgICAgLz5cblxuICAgICAgICB7cmFuZ2VTZWxlY3QgJiYgKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICB7JyAtICd9XG4gICAgICAgICAgICA8RGF0ZUlucHV0XG4gICAgICAgICAgICAgIHZhbHVlPXttYXggPz8gbnVsbH1cbiAgICAgICAgICAgICAgb25DaGFuZ2U9eyhkYXRlKSA9PiBzZXQobWluLCBkYXRlID8/IHVuZGVmaW5lZCwgJ21heCcpfVxuICAgICAgICAgICAgICBsb2NhbGU9e2xvY2FsZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cblxuICAgICAge2NhbGVuZGFycy5tYXAoKHsgbW9udGgsIHllYXIsIHdlZWtzIH0pID0+IChcbiAgICAgICAgPGRpdiBrZXk9e2Ake21vbnRofSR7eWVhcn1gfSBjc3M9e3sgZGlzcGxheTogJ2dyaWQnIH19PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNzcz17e1xuICAgICAgICAgICAgICBtYXJnaW46ICdjYWxjKHZhcigtLXNwYWNpbmcpICogNCkgMCcsXG4gICAgICAgICAgICAgIGRpc3BsYXk6ICdncmlkJyxcbiAgICAgICAgICAgICAgZ3JpZEF1dG9GbG93OiAnY29sdW1uJyxcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1iZXR3ZWVuJyxcbiAgICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxJY29uQnV0dG9uIHsuLi5nZXRCYWNrUHJvcHMoeyBjYWxlbmRhcnMgfSl9PlxuICAgICAgICAgICAgICA8Q2hldnJvblJpZ2h0IGNzcz17eyB0cmFuc2Zvcm06ICdyb3RhdGUzZCgwLCAwLCAxLCAxODBkZWcpJyB9fSAvPlxuICAgICAgICAgICAgPC9JY29uQnV0dG9uPlxuXG4gICAgICAgICAgICA8ZGl2IGNzcz17eyBkaXNwbGF5OiAnZmxleCcgfX0+XG4gICAgICAgICAgICAgIHtmb3JtYXRNb250aChtb250aCl9IHtmb3JtYXRZZWFyKHllYXIpfVxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxJY29uQnV0dG9uIHsuLi5nZXRGb3J3YXJkUHJvcHMoeyBjYWxlbmRhcnMgfSl9PlxuICAgICAgICAgICAgICA8Q2hldnJvblJpZ2h0IC8+XG4gICAgICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjc3M9e3tcbiAgICAgICAgICAgICAganVzdGlmeVNlbGY6ICdjZW50ZXInLFxuICAgICAgICAgICAgICBkaXNwbGF5OiAnZ3JpZCcsXG4gICAgICAgICAgICAgIGdyaWRUZW1wbGF0ZUNvbHVtbnM6ICdyZXBlYXQoOCwgbWF4LWNvbnRlbnQpJyxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3Nob3dDYWxlbmRhcldlZWsgPyAoXG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjc3M9e3tcbiAgICAgICAgICAgICAgICAgIGp1c3RpZnlTZWxmOiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEwLFxuICAgICAgICAgICAgICAgICAgYm9yZGVyUmlnaHQ6IGAxcHggc29saWQgJHtncmF5fWAsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxUZXh0IGlkPVwiY2FsZW5kYXJXZWVrXCIgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8ZGl2IC8+XG4gICAgICAgICAgICApfVxuXG4gICAgICAgICAgICB7d2Vla0RheXMubWFwKChfdiwgd2Vla0RheSkgPT4gKFxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAga2V5PXt3ZWVrRGF5fVxuICAgICAgICAgICAgICAgIGNzcz17e1xuICAgICAgICAgICAgICAgICAganVzdGlmeVNlbGY6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgICAgcGFkZGluZzogMTAsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtmb3JtYXRXZWVrZGF5KHdlZWtEYXkpfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICkpfVxuXG4gICAgICAgICAgICB7d2Vla3MubWFwKCh3ZWVrLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB3ZWVrU3RhcnQgPSB3ZWVrWzBdIGFzIERhdGVPYmo7XG4gICAgICAgICAgICAgIGNvbnN0IHdlZWtFbmQgPSB3ZWVrWzZdIGFzIERhdGVPYmo7XG4gICAgICAgICAgICAgIGNvbnN0IHdlZWtEaXNhYmxlZCA9XG4gICAgICAgICAgICAgICAgIXJhbmdlU2VsZWN0IHx8XG4gICAgICAgICAgICAgICAgKG1pbkRhdGUgJiYgd2Vla0VuZC5kYXRlIDwgbWluRGF0ZSkgfHxcbiAgICAgICAgICAgICAgICAobWF4RGF0ZSAmJiB3ZWVrU3RhcnQuZGF0ZSA+IG1heERhdGUpO1xuXG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPEZyYWdtZW50IGtleT17aW5kZXh9PlxuICAgICAgICAgICAgICAgICAge3Nob3dDYWxlbmRhcldlZWsgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICBjc3M9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEwLFxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAnbm9uZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAndHJhbnNwYXJlbnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiB3ZWVrRGlzYWJsZWQgPyB1bmRlZmluZWQgOiAncG9pbnRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250OiAnaW5oZXJpdCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJSaWdodDogYDFweCBzb2xpZCAke2dyYXl9YCxcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3ZWVrRGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtaW4gPSBtaW5EYXRlICYmIHdlZWtTdGFydC5kYXRlIDwgbWluRGF0ZSA/IG1pbkRhdGUgOiB3ZWVrU3RhcnQuZGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1heCA9IG1heERhdGUgJiYgd2Vla0VuZC5kYXRlID4gbWF4RGF0ZSA/IG1heERhdGUgOiB3ZWVrRW5kLmRhdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXQobWluLCBtYXgpO1xuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7Z2V0Q2FsZW5kYXJXZWVrKCh3ZWVrWzBdIGFzIERhdGVPYmopLmRhdGUpfVxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgLz5cbiAgICAgICAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgICAgICAgIHt3ZWVrLm1hcCgoZGF0ZU9iamVjdCwgZGF5SW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFkYXRlT2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxkaXYga2V5PXtkYXlJbmRleH0gLz47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHByZXZNb250aCwgbmV4dE1vbnRoLCBkYXRlIH0gPSBkYXRlT2JqZWN0O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0b2RheSA9IHN0YXJ0T2ZEYXkoZGF0ZSkuZ2V0VGltZSgpID09PSBub3cuZ2V0VGltZSgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkaXNhYmxlZCA9IChtaW5EYXRlICYmIGRhdGUgPCBtaW5EYXRlKSB8fCAobWF4RGF0ZSAmJiBkYXRlID4gbWF4RGF0ZSk7XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPVxuICAgICAgICAgICAgICAgICAgICAgIGRhdGUuZ2V0VGltZSgpID09PSBtaW4/LmdldFRpbWUoKSB8fFxuICAgICAgICAgICAgICAgICAgICAgIChtaW4gJiYgbWF4ICYmIGRhdGVJbnRlcnNlY3QoZGF0ZSwgeyBtaW4sIG1heCB9KSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHByZVNlbGVjdGVkID1cbiAgICAgICAgICAgICAgICAgICAgICAhc2VsZWN0ZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAhZGlzYWJsZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAoZGF0ZS5nZXRUaW1lKCkgPT09IGhvdmVyZWQ/LmdldFRpbWUoKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgKG1pbiAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAhbWF4ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGhvdmVyZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZUludGVyc2VjdChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbiA8PSBob3ZlcmVkID8geyBtaW4sIG1heDogaG92ZXJlZCB9IDogeyBtaW46IGhvdmVyZWQsIG1heDogbWluIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICkpKTtcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YCR7aW5kZXh9LSR7ZGF5SW5kZXh9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17W1xuICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMTAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAnbm9uZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJ3RyYW5zcGFyZW50JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IGRpc2FibGVkID8gdW5kZWZpbmVkIDogJ3BvaW50ZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQ6ICdpbmhlcml0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKHByZXZNb250aCB8fCBuZXh0TW9udGgpICYmIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogZ3JheSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kYXkgJiYge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dGxpbmU6ICcxcHggc29saWQgdmFyKC0tc2Vjb25kYXJ5TWFpbiknLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZCAmJiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJ3ZhcigtLXByaW1hcnlNYWluKScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICd2YXIoLS1wcmltYXJ5Q29udHJhc3RUZXh0KScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByZVNlbGVjdGVkICYmIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAndmFyKC0tcHJpbWFyeUxpZ2h0KScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICd2YXIoLS1wcmltYXJ5Q29udHJhc3RUZXh0KScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBdfVxuICAgICAgICAgICAgICAgICAgICAgICAgey4uLmdldERhdGVQcm9wcyh7IGRhdGVPYmo6IGRhdGVPYmplY3QgfSl9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkaXJ0eSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtaW4pIHNldChtaW4sIGRhdGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugc2V0KGRhdGUsIG1heCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0KGRhdGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgb25Qb2ludGVyT3Zlcj17KCkgPT4gc2V0SG92ZXJlZChkYXRlKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uUG9pbnRlck91dD17KCkgPT4gc2V0SG92ZXJlZCh1bmRlZmluZWQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtkYXRlLmdldERhdGUoKX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgIDwvRnJhZ21lbnQ+XG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICApKX1cblxuICAgICAgPGRpdlxuICAgICAgICBjc3M9e3tcbiAgICAgICAgICBtYXJnaW5Ub3A6ICd2YXIoLS1zcGFjaW5nKScsXG4gICAgICAgICAgZGlzcGxheTogJ2dyaWQnLFxuICAgICAgICAgIGdyaWRBdXRvRmxvdzogJ2NvbHVtbicsXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICB7cmVzb2x2ZWRRdWlja09wdGlvbnN9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cbiJdfQ== */",
|
|
908
932
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__$d
|
|
909
933
|
};
|
|
910
934
|
var _ref3$2 = process.env.NODE_ENV === "production" ? {
|
|
@@ -913,7 +937,7 @@ var _ref3$2 = process.env.NODE_ENV === "production" ? {
|
|
|
913
937
|
} : {
|
|
914
938
|
name: "1e48re2-DatePicker",
|
|
915
939
|
styles: "margin:calc(var(--spacing) * 4) 0;display:grid;grid-auto-flow:column;justify-content:space-between;align-items:center;label:DatePicker;",
|
|
916
|
-
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3NjaHVtbWFyLXRhYmxlL3NjaHVtbWFyLXRhYmxlL3NyYy9jb21wb25lbnRzL2RhdGVQaWNrZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtVWSIsImZpbGUiOiIvaG9tZS9ydW5uZXIvd29yay9zY2h1bW1hci10YWJsZS9zY2h1bW1hci10YWJsZS9zcmMvY29tcG9uZW50cy9kYXRlUGlja2VyLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZURheXplZCB9IGZyb20gJ2RheXplZCc7XG5pbXBvcnQgdHlwZSB7IFJlYWN0Tm9kZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VUaGVtZSB9IGZyb20gJy4uL2hvb2tzL3VzZVRoZW1lJztcbmltcG9ydCB7IGdyYXkgfSBmcm9tICcuLi90aGVtZS9kZWZhdWx0VGhlbWUvZGVmYXVsdENsYXNzZXMnO1xuaW1wb3J0IHsgdXNlQ3NzVmFyaWFibGVzIH0gZnJvbSAnLi4vdGhlbWUvdXNlQ3NzVmFyaWFibGVzJztcbmltcG9ydCB7IERhdGVJbnB1dCB9IGZyb20gJy4vZGF0ZUlucHV0JztcbmltcG9ydCB7IFRleHQgfSBmcm9tICcuL3RleHQnO1xuXG5leHBvcnQgdHlwZSBEYXRlUmFuZ2UgPSB7IG1pbjogRGF0ZTsgbWF4OiBEYXRlIH07XG5cbmV4cG9ydCB0eXBlIERhdGVQaWNrZXJRdWlja09wdGlvbiA9XG4gIHwgJ3RvZGF5J1xuICB8ICd0aGlzV2VlaydcbiAgfCAndGhpc01vbnRoJ1xuICB8ICd0aGlzWWVhcidcbiAgfCAnbGFzdFNldmVuRGF5cydcbiAgfCAnbGFzdFRoaXJ0eURheXMnXG4gIHwgeyBsYWJlbDogUmVhY3ROb2RlOyB2YWx1ZTogRGF0ZSB8IERhdGVSYW5nZSB8ICgoKSA9PiBEYXRlIHwgRGF0ZVJhbmdlKSB9XG4gIHwgKChvbkNoYW5nZTogKHZhbHVlOiBEYXRlIHwgRGF0ZVJhbmdlIHwgbnVsbCkgPT4gdm9pZCkgPT4gUmVhY3ROb2RlKTtcblxuZXhwb3J0IHR5cGUgRGF0ZVBpY2tlclByb3BzID0ge1xuICAvKiogQ3VycmVudGx5IHNlbGVjdGVkIGRheSBvciByYW5nZSBvZiBkYXlzLiAqL1xuICB2YWx1ZTogRGF0ZSB8IERhdGVSYW5nZSB8IG51bGw7XG4gIC8qKiBDYWxsYmFjayBmb3Igd2hlbiB0aGUgZGF5IChyYW5nZSkgY2hhbmdlcy4gKi9cbiAgb25DaGFuZ2U6ICh2YWx1ZTogRGF0ZSB8IERhdGVSYW5nZSB8IG51bGwpID0+IHZvaWQ7XG4gIC8qKiBJZiBlbmFibGVkLCByYW5nZXMgY2FuIGJlIHNlbGVjdGVkLiAqL1xuICByYW5nZVNlbGVjdD86IGJvb2xlYW47XG4gIC8qKiBXaGljaCBsb2NhbGUgdG8gdXNlIHRvIHJlbmRlciB0aGUgY2FsZW5kYXIuICovXG4gIGxvY2FsZT86IHN0cmluZztcbiAgLyoqIFdoaWNoIGRheSBvZiB0aGUgd2VlayBzaG91bGQgYmUgaW4gdGhlIGZpcnN0IGNvbHVtbi4gKDA9U3VuZGF5LCAxPU1vbmRheSwgLi4uKVxuICAgKiBAZGVmYXVsdCAxXG4gICAqL1xuICBmaXJzdERheU9mV2Vlaz86IDAgfCAxIHwgMiB8IDMgfCA0IHwgNSB8IDY7XG4gIC8qKiBXaGljaCBtb250aCB0byBzaG93IGluaXRpYWxseSAqL1xuICBkZWZhdWx0RGF0ZUluVmlldz86IERhdGU7XG4gIC8qKiBTaG93IGJ1dHRvbnMgdG8gcXVpY2tseSBzZWxlY3Qgc3VnZ2VzdGVkIGRhdGVzIG9yIGRhdGUgcmFuZ2VzICovXG4gIHF1aWNrT3B0aW9ucz86IERhdGVQaWNrZXJRdWlja09wdGlvbltdO1xuICBtaW5EYXRlPzogRGF0ZTtcbiAgbWF4RGF0ZT86IERhdGU7XG59O1xuXG5jb25zdCB3ZWVrRGF5cyA9IFswLCAxLCAyLCAzLCA0LCA1LCA2XSBhcyBjb25zdDtcblxuLyoqIFJvdW5kcyBhIGRhdGUgZG93biB0byB0aGUgc3RhcnQgb2YgdGhlIGRheS4gKi9cbmV4cG9ydCBjb25zdCBzdGFydE9mRGF5ID0gKGQ6IERhdGUpID0+IG5ldyBEYXRlKGQuZ2V0RnVsbFllYXIoKSwgZC5nZXRNb250aCgpLCBkLmdldERhdGUoKSk7XG5cbi8qKiBSb3VuZHMgYSBkYXRlIHVwIHRvIHRoZSBlbmQgb2YgdGhlIGRheS4gKi9cbmV4cG9ydCBjb25zdCBlbmRPZkRheSA9IChkOiBEYXRlKSA9PlxuICBuZXcgRGF0ZShkLmdldEZ1bGxZZWFyKCksIGQuZ2V0TW9udGgoKSwgZC5nZXREYXRlKCkgKyAxLCAwLCAwLCAwLCAtMSk7XG5cbmV4cG9ydCBjb25zdCBsYXN0RGF5cyA9IChkYXlzOiBudW1iZXIpOiBEYXRlUmFuZ2UgPT4ge1xuICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuICBjb25zdCBtaW4gPSBuZXcgRGF0ZShub3cpO1xuICBtaW4uc2V0RGF0ZShtaW4uZ2V0RGF0ZSgpIC0gZGF5cyArIDEpO1xuXG4gIHJldHVybiB7XG4gICAgbWluOiBzdGFydE9mRGF5KG1pbiksXG4gICAgbWF4OiBlbmRPZkRheShub3cpLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHRvZGF5ID0gKCkgPT4gbGFzdERheXMoMSk7XG5cbmV4cG9ydCBjb25zdCB0aGlzV2VlayA9IChkZWx0YSA9IDAsIGZpcnN0RGF5T2ZXZWVrID0gMSk6IERhdGVSYW5nZSA9PiB7XG4gIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG4gIGNvbnN0IG1pbiA9IG5ldyBEYXRlKG5vdyk7XG5cbiAgbGV0IGRpZmYgPSBtaW4uZ2V0RGF5KCkgLSBmaXJzdERheU9mV2VlaztcbiAgaWYgKGRpZmYgPCAwKSB7XG4gICAgZGlmZiArPSA3O1xuICB9XG4gIG1pbi5zZXREYXRlKG1pbi5nZXREYXRlKCkgLSBkaWZmICsgZGVsdGEgKiA3KTtcblxuICBjb25zdCBtYXggPSBuZXcgRGF0ZShtaW4pO1xuICBtYXguc2V0RGF0ZShtYXguZ2V0RGF0ZSgpICsgNik7XG5cbiAgcmV0dXJuIHtcbiAgICBtaW46IHN0YXJ0T2ZEYXkobWluKSxcbiAgICBtYXg6IGVuZE9mRGF5KG1heCksXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgdGhpc01vbnRoID0gKGRlbHRhID0gMCk6IERhdGVSYW5nZSA9PiB7XG4gIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG4gIGNvbnN0IG1pbiA9IG5ldyBEYXRlKG5vdyk7XG4gIG1pbi5zZXREYXRlKDEpO1xuICBtaW4uc2V0TW9udGgobWluLmdldE1vbnRoKCkgKyBkZWx0YSk7XG4gIGNvbnN0IG1heCA9IG5ldyBEYXRlKG1pbik7XG4gIG1heC5zZXRNb250aChtYXguZ2V0TW9udGgoKSArIDEpO1xuICBtYXguc2V0RGF0ZShtYXguZ2V0RGF0ZSgpIC0gMSk7XG5cbiAgcmV0dXJuIHtcbiAgICBtaW46IHN0YXJ0T2ZEYXkobWluKSxcbiAgICBtYXg6IGVuZE9mRGF5KG1heCksXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgdGhpc1llYXIgPSAoZGVsdGEgPSAwKTogRGF0ZVJhbmdlID0+IHtcbiAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgY29uc3QgbWluID0gbmV3IERhdGUobm93KTtcbiAgbWluLnNldERhdGUoMSk7XG4gIG1pbi5zZXRNb250aCgwKTtcbiAgbWluLnNldEZ1bGxZZWFyKG1pbi5nZXRGdWxsWWVhcigpICsgZGVsdGEpO1xuICBjb25zdCBtYXggPSBuZXcgRGF0ZShtaW4pO1xuICBtYXguc2V0RnVsbFllYXIobWF4LmdldEZ1bGxZZWFyKCkgKyAxKTtcbiAgbWF4LnNldERhdGUobWF4LmdldERhdGUoKSAtIDEpO1xuXG4gIHJldHVybiB7XG4gICAgbWluOiBzdGFydE9mRGF5KG1pbiksXG4gICAgbWF4OiBlbmRPZkRheShtYXgpLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGNvbW1vblF1aWNrT3B0aW9ucyA9IHtcbiAgdG9kYXk6IHsgbGFiZWw6IDxUZXh0IGlkPVwidG9kYXlcIiAvPiwgdmFsdWU6IHRvZGF5IH0sXG4gIHRoaXNXZWVrOiB7IGxhYmVsOiA8VGV4dCBpZD1cInRoaXNXZWVrXCIgLz4sIHZhbHVlOiAocHJvcHMpID0+IHRoaXNXZWVrKDAsIHByb3BzLmZpcnN0RGF5T2ZXZWVrKSB9LFxuICB0aGlzTW9udGg6IHsgbGFiZWw6IDxUZXh0IGlkPVwidGhpc01vbnRoXCIgLz4sIHZhbHVlOiAoKSA9PiB0aGlzTW9udGgoKSB9LFxuICB0aGlzWWVhcjogeyBsYWJlbDogPFRleHQgaWQ9XCJ0aGlzWWVhclwiIC8+LCB2YWx1ZTogKCkgPT4gdGhpc1llYXIoKSB9LFxuICBsYXN0U2V2ZW5EYXlzOiB7IGxhYmVsOiA8VGV4dCBpZD1cImxhc3RTZXZlbkRheXNcIiAvPiwgdmFsdWU6ICgpID0+IGxhc3REYXlzKDcpIH0sXG4gIGxhc3RUaGlydHlEYXlzOiB7IGxhYmVsOiA8VGV4dCBpZD1cImxhc3RUaGlydHlEYXlzXCIgLz4sIHZhbHVlOiAoKSA9PiBsYXN0RGF5cygzMCkgfSxcbn0gc2F0aXNmaWVzIFJlY29yZDxcbiAgRGF0ZVBpY2tlclF1aWNrT3B0aW9uICYgc3RyaW5nLFxuICB7IGxhYmVsOiBSZWFjdE5vZGU7IHZhbHVlOiBEYXRlIHwgRGF0ZVJhbmdlIHwgKChwcm9wczogRGF0ZVBpY2tlclByb3BzKSA9PiBEYXRlIHwgRGF0ZVJhbmdlKSB9XG4+O1xuXG4vKiogUmV0dXJucyB3aGV0aGVyIHR3byBkYXRlcyBhbmQvb3IgZGF0ZSByYW5nZXMgaW50ZXJzZWN0LiBJbnRlcnNlY3Rpb24gaXMgY29uc2lkZXJlZCBwZXIgZGF5LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRhdGVJbnRlcnNlY3QoYTogRGF0ZSB8IG51bGwgfCBEYXRlUmFuZ2UsIGI6IERhdGUgfCBudWxsIHwgRGF0ZVJhbmdlKSB7XG4gIGlmIChhIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgIGEgPSB7IG1pbjogYSwgbWF4OiBhIH07XG4gIH1cbiAgaWYgKGIgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgYiA9IHsgbWluOiBiLCBtYXg6IGIgfTtcbiAgfVxuXG4gIGlmICghYT8ubWluIHx8ICFhLm1heCB8fCAhYj8ubWluIHx8ICFiLm1heCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiAhKGVuZE9mRGF5KGEubWF4KSA8IHN0YXJ0T2ZEYXkoYi5taW4pIHx8IHN0YXJ0T2ZEYXkoYS5taW4pID4gZW5kT2ZEYXkoYi5tYXgpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRhdGVDbGFtcChkYXRlOiBEYXRlLCBtaW4/OiBEYXRlLCBtYXg/OiBEYXRlKSB7XG4gIGlmIChtaW4gJiYgZGF0ZSA8IG1pbikge1xuICAgIHJldHVybiBtaW47XG4gIH1cblxuICBpZiAobWF4ICYmIGRhdGUgPiBtYXgpIHtcbiAgICByZXR1cm4gbWF4O1xuICB9XG5cbiAgcmV0dXJuIGRhdGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBEYXRlUGlja2VyKHByb3BzOiBEYXRlUGlja2VyUHJvcHMpIHtcbiAgY29uc3Qge1xuICAgIHZhbHVlLFxuICAgIHJhbmdlU2VsZWN0LFxuICAgIGxvY2FsZSxcbiAgICBmaXJzdERheU9mV2VlayA9IDEsXG4gICAgZGVmYXVsdERhdGVJblZpZXcsXG4gICAgcXVpY2tPcHRpb25zID0gWyd0b2RheScsICd0aGlzV2VlayddLFxuICAgIG1pbkRhdGUsXG4gICAgbWF4RGF0ZSxcbiAgfSA9IHByb3BzO1xuXG4gIGZ1bmN0aW9uIG9uQ2hhbmdlKHZhbHVlOiBEYXRlIHwgRGF0ZVJhbmdlIHwgbnVsbCkge1xuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgIHZhbHVlID0gZGF0ZUNsYW1wKHZhbHVlLCBtaW5EYXRlLCBtYXhEYXRlKTtcbiAgICB9IGVsc2UgaWYgKHZhbHVlKSB7XG4gICAgICB2YWx1ZSA9IHtcbiAgICAgICAgbWluOiBkYXRlQ2xhbXAodmFsdWUubWluLCBtaW5EYXRlLCBtYXhEYXRlKSxcbiAgICAgICAgbWF4OiBkYXRlQ2xhbXAodmFsdWUubWF4LCBtaW5EYXRlLCBtYXhEYXRlKSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcHJvcHMub25DaGFuZ2UodmFsdWUpO1xuICB9XG5cbiAgY29uc3QgQnV0dG9uID0gdXNlVGhlbWUoKHQpID0+IHQuY29tcG9uZW50cy5CdXR0b24pO1xuICBjb25zdCBJY29uQnV0dG9uID0gdXNlVGhlbWUoKHQpID0+IHQuY29tcG9uZW50cy5JY29uQnV0dG9uKTtcbiAgY29uc3QgQ2hldnJvblJpZ2h0ID0gdXNlVGhlbWUoKHQpID0+IHQuaWNvbnMuQ2hldnJvblJpZ2h0KTtcbiAgY29uc3QgY3NzVmFyaWFibGVzID0gdXNlQ3NzVmFyaWFibGVzKCk7XG5cbiAgY29uc3QgbW91bnRUaW1lID0gdXNlTWVtbygoKSA9PiBuZXcgRGF0ZSgpLCBbXSk7XG4gIGNvbnN0IFtkYXRlSW5WaWV3LCBzZXREYXRlSW5WaWV3XSA9IHVzZVN0YXRlPERhdGU+KGRlZmF1bHREYXRlSW5WaWV3ID8/IG1vdW50VGltZSk7XG4gIGNvbnN0IFtkaXJ0eSwgc2V0RGlydHldID0gdXNlU3RhdGU8UGFydGlhbDxEYXRlUmFuZ2U+PigpO1xuICBjb25zdCBbaG92ZXJlZCwgc2V0SG92ZXJlZF0gPSB1c2VTdGF0ZTxEYXRlPigpO1xuXG4gIGNvbnN0IG1pbiA9IGRpcnR5ID8gZGlydHkubWluIDogdmFsdWUgaW5zdGFuY2VvZiBEYXRlID8gdmFsdWUgOiB2YWx1ZT8ubWluO1xuICBjb25zdCBtYXggPSBkaXJ0eSA/IGRpcnR5Lm1heCA6IHZhbHVlIGluc3RhbmNlb2YgRGF0ZSA/IHZhbHVlIDogdmFsdWU/Lm1heDtcblxuICBjb25zdCByZXNvbHZlZFF1aWNrT3B0aW9ucyA9IFsuLi5xdWlja09wdGlvbnMsIHsgbGFiZWw6IDxUZXh0IGlkPVwicmVzZXRcIiAvPiwgdmFsdWU6IG51bGwgfV0ubWFwKFxuICAgIChvcHRpb24sIGluZGV4KSA9PiB7XG4gICAgICBpZiAob3B0aW9uIGluc3RhbmNlb2YgRnVuY3Rpb24pIHtcbiAgICAgICAgcmV0dXJuIG9wdGlvbigodmFsdWUpID0+IHtcbiAgICAgICAgICBzZXREaXJ0eSh1bmRlZmluZWQpO1xuICAgICAgICAgIG9uQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHsgbGFiZWwsIHZhbHVlIH0gPSB0eXBlb2Ygb3B0aW9uID09PSAnc3RyaW5nJyA/IGNvbW1vblF1aWNrT3B0aW9uc1tvcHRpb25dIDogb3B0aW9uO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8QnV0dG9uXG4gICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICB2YXJpYW50PVwidGV4dFwiXG4gICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgc2V0RGlydHkodW5kZWZpbmVkKTtcblxuICAgICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRnVuY3Rpb24pIHtcbiAgICAgICAgICAgICAgb25DaGFuZ2UodmFsdWUocHJvcHMpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIG9uQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAge2xhYmVsfVxuICAgICAgICA8L0J1dHRvbj5cbiAgICAgICk7XG4gICAgfSxcbiAgKTtcblxuICBjb25zdCB7IGNhbGVuZGFycywgZ2V0QmFja1Byb3BzLCBnZXRGb3J3YXJkUHJvcHMsIGdldERhdGVQcm9wcyB9ID0gdXNlRGF5emVkKHtcbiAgICBvbkRhdGVTZWxlY3RlZDogKCkgPT4gdW5kZWZpbmVkLFxuICAgIGZpcnN0RGF5T2ZXZWVrLFxuICAgIHNob3dPdXRzaWRlRGF5czogdHJ1ZSxcbiAgICBkYXRlOiBkYXRlSW5WaWV3LFxuICAgIG9uT2Zmc2V0Q2hhbmdlZDogKG9mZnNldCkgPT5cbiAgICAgIHNldERhdGVJblZpZXcobmV3IERhdGUoZGF0ZUluVmlldy5nZXRGdWxsWWVhcigpLCBkYXRlSW5WaWV3LmdldE1vbnRoKCkgKyBvZmZzZXQpKSxcbiAgICBvZmZzZXQ6IDAsXG4gICAgbWluRGF0ZSxcbiAgICBtYXhEYXRlLFxuICB9KTtcbiAgY29uc3Qgbm93ID0gdXNlTWVtbygoKSA9PiBzdGFydE9mRGF5KG5ldyBEYXRlKCkpLCBbXSk7XG5cbiAgY29uc3QgZm9ybWF0V2Vla2RheSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHsgZm9ybWF0IH0gPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NhbGUsIHsgd2Vla2RheTogJ3Nob3J0JyB9KTtcbiAgICByZXR1cm4gKHdlZWtEYXk6IG51bWJlcikgPT5cbiAgICAgIGZvcm1hdChuZXcgRGF0ZShEYXRlLlVUQygyMDIxLCA3LCAoKHdlZWtEYXkgKyBmaXJzdERheU9mV2VlaykgJSA3KSArIDEpKSk7XG4gIH0sIFtsb2NhbGUsIGZpcnN0RGF5T2ZXZWVrXSk7XG5cbiAgdXNlRWZmZWN0KFxuICAgICgpID0+XG4gICAgICBzZXREYXRlSW5WaWV3KFxuICAgICAgICB2YWx1ZSA9PT0gbnVsbCA/IGRlZmF1bHREYXRlSW5WaWV3ID8/IG1vdW50VGltZSA6IHZhbHVlIGluc3RhbmNlb2YgRGF0ZSA/IHZhbHVlIDogdmFsdWUubWF4LFxuICAgICAgKSxcbiAgICBbdmFsdWUsIGRlZmF1bHREYXRlSW5WaWV3LCBtb3VudFRpbWVdLFxuICApO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFyYW5nZVNlbGVjdCkge1xuICAgICAgc2V0RGlydHkodW5kZWZpbmVkKTtcbiAgICB9XG4gIH0sIFtyYW5nZVNlbGVjdF0pO1xuXG4gIGZ1bmN0aW9uIHNldChtaW4/OiBEYXRlLCBtYXg/OiBEYXRlLCBlZGl0PzogJ21pbicgfCAnbWF4Jykge1xuICAgIGlmICghcmFuZ2VTZWxlY3QpIHtcbiAgICAgIG9uQ2hhbmdlKG1pbiA/PyBudWxsKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAobWluICYmIG1heCAmJiBtaW4gPiBtYXgpIHtcbiAgICAgIGlmIChlZGl0ID09PSAnbWluJykge1xuICAgICAgICBtYXggPSBtaW47XG4gICAgICB9IGVsc2UgaWYgKGVkaXQgPT09ICdtYXgnKSB7XG4gICAgICAgIG1pbiA9IG1heDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIFttaW4sIG1heF0gPSBbbWF4LCBtaW5dO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghbWluID09PSAhbWF4KSB7XG4gICAgICBzZXREaXJ0eSh1bmRlZmluZWQpO1xuICAgICAgb25DaGFuZ2UobWluICYmIG1heCA/IHsgbWluLCBtYXg6IGVuZE9mRGF5KG1heCkgfSA6IG51bGwpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXREaXJ0eSh7IG1pbiwgbWF4IH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGZvcm1hdE1vbnRoID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgeyBmb3JtYXQgfSA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KGxvY2FsZSwgeyBtb250aDogJ2xvbmcnIH0pO1xuICAgIHJldHVybiAobW9udGg6IG51bWJlcikgPT4gZm9ybWF0KG5ldyBEYXRlKDIwMjEsIG1vbnRoKSk7XG4gIH0sIFtsb2NhbGVdKTtcblxuICBjb25zdCBmb3JtYXRZZWFyID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgeyBmb3JtYXQgfSA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KGxvY2FsZSwgeyB5ZWFyOiAnbnVtZXJpYycgfSk7XG4gICAgcmV0dXJuICh5ZWFyOiBudW1iZXIpID0+IGZvcm1hdChuZXcgRGF0ZSh5ZWFyLCAwLCAxKSk7XG4gIH0sIFtsb2NhbGVdKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY3NzPXtjc3NWYXJpYWJsZXN9PlxuICAgICAgPGRpdlxuICAgICAgICBjc3M9e3tcbiAgICAgICAgICBkaXNwbGF5OiAnZ3JpZCcsXG4gICAgICAgICAgZ3JpZEF1dG9GbG93OiAnY29sdW1uJyxcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgYWxpZ25JdGVtczogJ2Jhc2VsaW5lJyxcbiAgICAgICAgICBnYXA6ICd2YXIoLS1zcGFjaW5nKScsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxEYXRlSW5wdXRcbiAgICAgICAgICB2YWx1ZT17bWluID8/IG51bGx9XG4gICAgICAgICAgb25DaGFuZ2U9eyhkYXRlKSA9PiBzZXQoZGF0ZSA/PyB1bmRlZmluZWQsIG1heCwgJ21pbicpfVxuICAgICAgICAgIGxvY2FsZT17bG9jYWxlfVxuICAgICAgICAvPlxuXG4gICAgICAgIHtyYW5nZVNlbGVjdCAmJiAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIHsnIC0gJ31cbiAgICAgICAgICAgIDxEYXRlSW5wdXRcbiAgICAgICAgICAgICAgdmFsdWU9e21heCA/PyBudWxsfVxuICAgICAgICAgICAgICBvbkNoYW5nZT17KGRhdGUpID0+IHNldChtaW4sIGRhdGUgPz8gdW5kZWZpbmVkLCAnbWF4Jyl9XG4gICAgICAgICAgICAgIGxvY2FsZT17bG9jYWxlfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuXG4gICAgICB7Y2FsZW5kYXJzLm1hcCgoeyBtb250aCwgeWVhciwgd2Vla3MgfSkgPT4gKFxuICAgICAgICA8ZGl2IGtleT17YCR7bW9udGh9JHt5ZWFyfWB9IGNzcz17eyBkaXNwbGF5OiAnZ3JpZCcgfX0+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY3NzPXt7XG4gICAgICAgICAgICAgIG1hcmdpbjogJ2NhbGModmFyKC0tc3BhY2luZykgKiA0KSAwJyxcbiAgICAgICAgICAgICAgZGlzcGxheTogJ2dyaWQnLFxuICAgICAgICAgICAgICBncmlkQXV0b0Zsb3c6ICdjb2x1bW4nLFxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ3NwYWNlLWJldHdlZW4nLFxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEljb25CdXR0b24gey4uLmdldEJhY2tQcm9wcyh7IGNhbGVuZGFycyB9KX0+XG4gICAgICAgICAgICAgIDxDaGV2cm9uUmlnaHQgY3NzPXt7IHRyYW5zZm9ybTogJ3JvdGF0ZTNkKDAsIDAsIDEsIDE4MGRlZyknIH19IC8+XG4gICAgICAgICAgICA8L0ljb25CdXR0b24+XG5cbiAgICAgICAgICAgIDxkaXYgY3NzPXt7IGRpc3BsYXk6ICdmbGV4JyB9fT5cbiAgICAgICAgICAgICAge2Zvcm1hdE1vbnRoKG1vbnRoKX0ge2Zvcm1hdFllYXIoeWVhcil9XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPEljb25CdXR0b24gey4uLmdldEZvcndhcmRQcm9wcyh7IGNhbGVuZGFycyB9KX0+XG4gICAgICAgICAgICAgIDxDaGV2cm9uUmlnaHQgLz5cbiAgICAgICAgICAgIDwvSWNvbkJ1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNzcz17e1xuICAgICAgICAgICAgICBqdXN0aWZ5U2VsZjogJ2NlbnRlcicsXG4gICAgICAgICAgICAgIGRpc3BsYXk6ICdncmlkJyxcbiAgICAgICAgICAgICAgZ3JpZFRlbXBsYXRlQ29sdW1uczogJ3JlcGVhdCg3LCBtYXgtY29udGVudCknLFxuICAgICAgICAgICAgICBmb250V2VpZ2h0OiAnYm9sZCcsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt3ZWVrRGF5cy5tYXAoKF92LCB3ZWVrRGF5KSA9PiAoXG4gICAgICAgICAgICAgIDxkaXYga2V5PXt3ZWVrRGF5fSBjc3M9e3sganVzdGlmeVNlbGY6ICdjZW50ZXInLCBtYXJnaW5Cb3R0b206ICd2YXIoLS1zcGFjaW5nKScgfX0+XG4gICAgICAgICAgICAgICAge2Zvcm1hdFdlZWtkYXkod2Vla0RheSl9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKSl9XG5cbiAgICAgICAgICAgIHt3ZWVrcy5tYXAoKHdlZWssIGluZGV4KSA9PlxuICAgICAgICAgICAgICB3ZWVrLm1hcCgoZGF0ZU9iamVjdCwgZGF5SW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIWRhdGVPYmplY3QpIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiA8ZGl2IGtleT17YCR7aW5kZXh9LSR7ZGF5SW5kZXh9YH0gLz47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3QgeyBwcmV2TW9udGgsIG5leHRNb250aCwgZGF0ZSB9ID0gZGF0ZU9iamVjdDtcbiAgICAgICAgICAgICAgICBjb25zdCB0b2RheSA9IHN0YXJ0T2ZEYXkoZGF0ZSkuZ2V0VGltZSgpID09PSBub3cuZ2V0VGltZSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGRpc2FibGVkID0gKG1pbkRhdGUgJiYgZGF0ZSA8IG1pbkRhdGUpIHx8IChtYXhEYXRlICYmIGRhdGUgPiBtYXhEYXRlKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkID1cbiAgICAgICAgICAgICAgICAgIGRhdGUuZ2V0VGltZSgpID09PSBtaW4/LmdldFRpbWUoKSB8fFxuICAgICAgICAgICAgICAgICAgKG1pbiAmJiBtYXggJiYgZGF0ZUludGVyc2VjdChkYXRlLCB7IG1pbiwgbWF4IH0pKTtcbiAgICAgICAgICAgICAgICBjb25zdCBwcmVTZWxlY3RlZCA9XG4gICAgICAgICAgICAgICAgICAhc2VsZWN0ZWQgJiZcbiAgICAgICAgICAgICAgICAgICFkaXNhYmxlZCAmJlxuICAgICAgICAgICAgICAgICAgKGRhdGUuZ2V0VGltZSgpID09PSBob3ZlcmVkPy5nZXRUaW1lKCkgfHxcbiAgICAgICAgICAgICAgICAgICAgKG1pbiAmJlxuICAgICAgICAgICAgICAgICAgICAgICFtYXggJiZcbiAgICAgICAgICAgICAgICAgICAgICBob3ZlcmVkICYmXG4gICAgICAgICAgICAgICAgICAgICAgZGF0ZUludGVyc2VjdChcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBtaW4gPD0gaG92ZXJlZCA/IHsgbWluLCBtYXg6IGhvdmVyZWQgfSA6IHsgbWluOiBob3ZlcmVkLCBtYXg6IG1pbiB9LFxuICAgICAgICAgICAgICAgICAgICAgICkpKTtcblxuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGtleT17YCR7aW5kZXh9LSR7ZGF5SW5kZXh9YH1cbiAgICAgICAgICAgICAgICAgICAgY3NzPXtbXG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMTAsXG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6ICcxcHggc29saWQgdHJhbnNwYXJlbnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJ3RyYW5zcGFyZW50JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnNvcjogJ3BvaW50ZXInLFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgKHByZXZNb250aCB8fCBuZXh0TW9udGgpICYmIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBncmF5LFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgdG9kYXkgJiYge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAnMXB4IHNvbGlkIHZhcigtLXNlY29uZGFyeU1haW4pJyxcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkICYmIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICd2YXIoLS1wcmltYXJ5TWFpbiknLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICd2YXIoLS1wcmltYXJ5Q29udHJhc3RUZXh0KScsXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBwcmVTZWxlY3RlZCAmJiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAndmFyKC0tcHJpbWFyeUxpZ2h0KScsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ3ZhcigtLXByaW1hcnlDb250cmFzdFRleHQpJyxcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBdfVxuICAgICAgICAgICAgICAgICAgICB7Li4uZ2V0RGF0ZVByb3BzKHsgZGF0ZU9iajogZGF0ZU9iamVjdCB9KX1cbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIGlmIChkaXJ0eSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1pbikgc2V0KG1pbiwgZGF0ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHNldChkYXRlLCBtYXgpO1xuICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXQoZGF0ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICBvblBvaW50ZXJPdmVyPXsoKSA9PiBzZXRIb3ZlcmVkKGRhdGUpfVxuICAgICAgICAgICAgICAgICAgICBvblBvaW50ZXJPdXQ9eygpID0+IHNldEhvdmVyZWQodW5kZWZpbmVkKX1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7ZGF0ZS5nZXREYXRlKCl9XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKSl9XG5cbiAgICAgIDxkaXZcbiAgICAgICAgY3NzPXt7XG4gICAgICAgICAgbWFyZ2luVG9wOiAndmFyKC0tc3BhY2luZyknLFxuICAgICAgICAgIGRpc3BsYXk6ICdncmlkJyxcbiAgICAgICAgICBncmlkQXV0b0Zsb3c6ICdjb2x1bW4nLFxuICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAge3Jlc29sdmVkUXVpY2tPcHRpb25zfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICk7XG59XG4iXX0= */",
|
|
940
|
+
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3NjaHVtbWFyLXRhYmxlL3NjaHVtbWFyLXRhYmxlL3NyYy9jb21wb25lbnRzL2RhdGVQaWNrZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlYWSIsImZpbGUiOiIvaG9tZS9ydW5uZXIvd29yay9zY2h1bW1hci10YWJsZS9zY2h1bW1hci10YWJsZS9zcmMvY29tcG9uZW50cy9kYXRlUGlja2VyLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGVPYmosIHVzZURheXplZCB9IGZyb20gJ2RheXplZCc7XG5pbXBvcnQge1xuICBGcmFnbWVudCxcbiAgUmVhY3ROb2RlLFxuICBjcmVhdGVDb250ZXh0LFxuICB1c2VDb250ZXh0LFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVN0YXRlLFxufSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VUaGVtZSB9IGZyb20gJy4uL2hvb2tzL3VzZVRoZW1lJztcbmltcG9ydCB7IGRlZmF1bHRzIH0gZnJvbSAnLi4vbWlzYy9kZWZhdWx0cyc7XG5pbXBvcnQgeyBncmF5IH0gZnJvbSAnLi4vdGhlbWUvZGVmYXVsdFRoZW1lL2RlZmF1bHRDbGFzc2VzJztcbmltcG9ydCB7IHVzZUNzc1ZhcmlhYmxlcyB9IGZyb20gJy4uL3RoZW1lL3VzZUNzc1ZhcmlhYmxlcyc7XG5pbXBvcnQgeyBEYXRlSW5wdXQgfSBmcm9tICcuL2RhdGVJbnB1dCc7XG5pbXBvcnQgeyBUZXh0IH0gZnJvbSAnLi90ZXh0JztcblxuZXhwb3J0IHR5cGUgRGF0ZVJhbmdlID0geyBtaW46IERhdGU7IG1heDogRGF0ZSB9O1xuXG5leHBvcnQgdHlwZSBEYXRlUGlja2VyUXVpY2tPcHRpb24gPVxuICB8ICd0b2RheSdcbiAgfCAndGhpc1dlZWsnXG4gIHwgJ3RoaXNNb250aCdcbiAgfCAndGhpc1llYXInXG4gIHwgJ2xhc3RTZXZlbkRheXMnXG4gIHwgJ2xhc3RUaGlydHlEYXlzJ1xuICB8IHsgbGFiZWw6IFJlYWN0Tm9kZTsgdmFsdWU6IERhdGUgfCBEYXRlUmFuZ2UgfCAoKCkgPT4gRGF0ZSB8IERhdGVSYW5nZSkgfVxuICB8ICgob25DaGFuZ2U6ICh2YWx1ZTogRGF0ZSB8IERhdGVSYW5nZSB8IG51bGwpID0+IHZvaWQpID0+IFJlYWN0Tm9kZSk7XG5cbmV4cG9ydCB0eXBlIERhdGVQaWNrZXJQcm9wcyA9IHtcbiAgLyoqIEN1cnJlbnRseSBzZWxlY3RlZCBkYXkgb3IgcmFuZ2Ugb2YgZGF5cy4gKi9cbiAgdmFsdWU6IERhdGUgfCBEYXRlUmFuZ2UgfCBudWxsO1xuICAvKiogQ2FsbGJhY2sgZm9yIHdoZW4gdGhlIGRheSAocmFuZ2UpIGNoYW5nZXMuICovXG4gIG9uQ2hhbmdlOiAodmFsdWU6IERhdGUgfCBEYXRlUmFuZ2UgfCBudWxsKSA9PiB2b2lkO1xuICAvKiogSWYgZW5hYmxlZCwgcmFuZ2VzIGNhbiBiZSBzZWxlY3RlZC4gKi9cbiAgcmFuZ2VTZWxlY3Q/OiBib29sZWFuO1xuICAvKiogV2hpY2ggbG9jYWxlIHRvIHVzZSB0byByZW5kZXIgdGhlIGNhbGVuZGFyLiAqL1xuICBsb2NhbGU/OiBzdHJpbmc7XG4gIC8qKiBXaGljaCBkYXkgb2YgdGhlIHdlZWsgc2hvdWxkIGJlIGluIHRoZSBmaXJzdCBjb2x1bW4uICgwPVN1bmRheSwgMT1Nb25kYXksIC4uLilcbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgZmlyc3REYXlPZldlZWs/OiAwIHwgMSB8IDIgfCAzIHwgNCB8IDUgfCA2O1xuICAvKiogV2hpY2ggbW9udGggdG8gc2hvdyBpbml0aWFsbHkgKi9cbiAgZGVmYXVsdERhdGVJblZpZXc/OiBEYXRlO1xuICAvKiogU2hvdyBidXR0b25zIHRvIHF1aWNrbHkgc2VsZWN0IHN1Z2dlc3RlZCBkYXRlcyBvciBkYXRlIHJhbmdlcyAqL1xuICBxdWlja09wdGlvbnM/OiBEYXRlUGlja2VyUXVpY2tPcHRpb25bXTtcbiAgLyoqIE1pbmltdW0gc2VsZWN0YWJsZSBkYXRlICovXG4gIG1pbkRhdGU/OiBEYXRlO1xuICAvKiogTWF4aW11bSBzZWxlY3RhYmxlIGRhdGUgKi9cbiAgbWF4RGF0ZT86IERhdGU7XG4gIC8qKiBXaGV0aGVyIHRvIHNob3cgdGhlIGNhbGVuZGFyIHdlZWsgaW4gdGhlIGZpcnN0IGNvbHVtbiAqL1xuICBzaG93Q2FsZW5kYXJXZWVrPzogYm9vbGVhbjtcbn07XG5cbmNvbnN0IERhdGVQaWNrZXJDb250ZXh0ID0gY3JlYXRlQ29udGV4dDxQYXJ0aWFsPE9taXQ8RGF0ZVBpY2tlclByb3BzLCAndmFsdWUnIHwgJ29uQ2hhbmdlJz4+Pih7fSk7XG5cbmV4cG9ydCBmdW5jdGlvbiBEYXRlUGlja2VyUHJvdmlkZXIoe1xuICBjaGlsZHJlbixcbiAgLi4ucHJvcHNcbn06IFBhcnRpYWw8T21pdDxEYXRlUGlja2VyUHJvcHMsICd2YWx1ZScgfCAnb25DaGFuZ2UnPj4gJiB7IGNoaWxkcmVuPzogUmVhY3ROb2RlIH0pIHtcbiAgY29uc3QgdmFsdWUgPSB1c2VNZW1vKCgpID0+IHByb3BzLCBbSlNPTi5zdHJpbmdpZnkocHJvcHMpXSk7XG5cbiAgcmV0dXJuIDxEYXRlUGlja2VyQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17dmFsdWV9PntjaGlsZHJlbn08L0RhdGVQaWNrZXJDb250ZXh0LlByb3ZpZGVyPjtcbn1cblxuY29uc3Qgd2Vla0RheXMgPSBbMCwgMSwgMiwgMywgNCwgNSwgNl0gYXMgY29uc3Q7XG5cbi8qKiBSb3VuZHMgYSBkYXRlIGRvd24gdG8gdGhlIHN0YXJ0IG9mIHRoZSBkYXkuICovXG5leHBvcnQgY29uc3Qgc3RhcnRPZkRheSA9IChkOiBEYXRlKSA9PiBuZXcgRGF0ZShkLmdldEZ1bGxZZWFyKCksIGQuZ2V0TW9udGgoKSwgZC5nZXREYXRlKCkpO1xuXG4vKiogUm91bmRzIGEgZGF0ZSB1cCB0byB0aGUgZW5kIG9mIHRoZSBkYXkuICovXG5leHBvcnQgY29uc3QgZW5kT2ZEYXkgPSAoZDogRGF0ZSkgPT5cbiAgbmV3IERhdGUoZC5nZXRGdWxsWWVhcigpLCBkLmdldE1vbnRoKCksIGQuZ2V0RGF0ZSgpICsgMSwgMCwgMCwgMCwgLTEpO1xuXG5leHBvcnQgY29uc3QgbGFzdERheXMgPSAoZGF5czogbnVtYmVyKTogRGF0ZVJhbmdlID0+IHtcbiAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgY29uc3QgbWluID0gbmV3IERhdGUobm93KTtcbiAgbWluLnNldERhdGUobWluLmdldERhdGUoKSAtIGRheXMgKyAxKTtcblxuICByZXR1cm4ge1xuICAgIG1pbjogc3RhcnRPZkRheShtaW4pLFxuICAgIG1heDogZW5kT2ZEYXkobm93KSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCB0b2RheSA9ICgpID0+IGxhc3REYXlzKDEpO1xuXG5leHBvcnQgY29uc3QgdGhpc1dlZWsgPSAoZGVsdGEgPSAwLCBmaXJzdERheU9mV2VlayA9IDEpOiBEYXRlUmFuZ2UgPT4ge1xuICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuICBjb25zdCBtaW4gPSBuZXcgRGF0ZShub3cpO1xuXG4gIGxldCBkaWZmID0gbWluLmdldERheSgpIC0gZmlyc3REYXlPZldlZWs7XG4gIGlmIChkaWZmIDwgMCkge1xuICAgIGRpZmYgKz0gNztcbiAgfVxuICBtaW4uc2V0RGF0ZShtaW4uZ2V0RGF0ZSgpIC0gZGlmZiArIGRlbHRhICogNyk7XG5cbiAgY29uc3QgbWF4ID0gbmV3IERhdGUobWluKTtcbiAgbWF4LnNldERhdGUobWF4LmdldERhdGUoKSArIDYpO1xuXG4gIHJldHVybiB7XG4gICAgbWluOiBzdGFydE9mRGF5KG1pbiksXG4gICAgbWF4OiBlbmRPZkRheShtYXgpLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHRoaXNNb250aCA9IChkZWx0YSA9IDApOiBEYXRlUmFuZ2UgPT4ge1xuICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuICBjb25zdCBtaW4gPSBuZXcgRGF0ZShub3cpO1xuICBtaW4uc2V0RGF0ZSgxKTtcbiAgbWluLnNldE1vbnRoKG1pbi5nZXRNb250aCgpICsgZGVsdGEpO1xuICBjb25zdCBtYXggPSBuZXcgRGF0ZShtaW4pO1xuICBtYXguc2V0TW9udGgobWF4LmdldE1vbnRoKCkgKyAxKTtcbiAgbWF4LnNldERhdGUobWF4LmdldERhdGUoKSAtIDEpO1xuXG4gIHJldHVybiB7XG4gICAgbWluOiBzdGFydE9mRGF5KG1pbiksXG4gICAgbWF4OiBlbmRPZkRheShtYXgpLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHRoaXNZZWFyID0gKGRlbHRhID0gMCk6IERhdGVSYW5nZSA9PiB7XG4gIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG4gIGNvbnN0IG1pbiA9IG5ldyBEYXRlKG5vdyk7XG4gIG1pbi5zZXREYXRlKDEpO1xuICBtaW4uc2V0TW9udGgoMCk7XG4gIG1pbi5zZXRGdWxsWWVhcihtaW4uZ2V0RnVsbFllYXIoKSArIGRlbHRhKTtcbiAgY29uc3QgbWF4ID0gbmV3IERhdGUobWluKTtcbiAgbWF4LnNldEZ1bGxZZWFyKG1heC5nZXRGdWxsWWVhcigpICsgMSk7XG4gIG1heC5zZXREYXRlKG1heC5nZXREYXRlKCkgLSAxKTtcblxuICByZXR1cm4ge1xuICAgIG1pbjogc3RhcnRPZkRheShtaW4pLFxuICAgIG1heDogZW5kT2ZEYXkobWF4KSxcbiAgfTtcbn07XG5cbmNvbnN0IE1TX1BFUl9EQVkgPSAxMDAwICogNjAgKiA2MCAqIDI0O1xuZXhwb3J0IGNvbnN0IGdldENhbGVuZGFyV2VlayA9IChkYXRlOiBEYXRlKTogbnVtYmVyID0+IHtcbiAgLy8gSVNPIDg2MDE6IFdlZWsgMSBpcyB0aGUgd2VlayB3aXRoIHRoZSBmaXJzdCBUaHVyc2RheSBvZiB0aGUgeWVhci5cbiAgLy8gaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPX3dlZWtfZGF0ZVxuXG4gIGNvbnN0IHkgPSBkYXRlLmdldEZ1bGxZZWFyKCk7XG4gIGNvbnN0IGZkb3kgPSBuZXcgRGF0ZSh5LCAwLCAxKTtcbiAgY29uc3QgZG95ID0gTWF0aC5mbG9vcihcbiAgICAoZGF0ZS5nZXRUaW1lKCkgLSBmZG95LmdldFRpbWUoKSArIChkYXRlLmdldFRpbWV6b25lT2Zmc2V0KCkgLSBmZG95LmdldFRpbWV6b25lT2Zmc2V0KCkpKSAvXG4gICAgICBNU19QRVJfREFZLFxuICApO1xuICBjb25zdCBkb3cgPSBmZG95LmdldERheSgpO1xuICBjb25zdCB3ID0gTWF0aC5mbG9vcigoMTAgKyBkb3kgLSBkb3cpIC8gNyk7XG5cbiAgaWYgKHcgPT09IDApIHtcbiAgICByZXR1cm4gZ2V0Q2FsZW5kYXJXZWVrKG5ldyBEYXRlKHkgLSAxLCAxMSwgMzEpKTtcbiAgfVxuXG4gIHJldHVybiB3O1xufTtcblxuZXhwb3J0IGNvbnN0IGNvbW1vblF1aWNrT3B0aW9ucyA9IHtcbiAgdG9kYXk6IHsgbGFiZWw6IDxUZXh0IGlkPVwidG9kYXlcIiAvPiwgdmFsdWU6IHRvZGF5IH0sXG4gIHRoaXNXZWVrOiB7IGxhYmVsOiA8VGV4dCBpZD1cInRoaXNXZWVrXCIgLz4sIHZhbHVlOiAocHJvcHMpID0+IHRoaXNXZWVrKDAsIHByb3BzLmZpcnN0RGF5T2ZXZWVrKSB9LFxuICB0aGlzTW9udGg6IHsgbGFiZWw6IDxUZXh0IGlkPVwidGhpc01vbnRoXCIgLz4sIHZhbHVlOiAoKSA9PiB0aGlzTW9udGgoKSB9LFxuICB0aGlzWWVhcjogeyBsYWJlbDogPFRleHQgaWQ9XCJ0aGlzWWVhclwiIC8+LCB2YWx1ZTogKCkgPT4gdGhpc1llYXIoKSB9LFxuICBsYXN0U2V2ZW5EYXlzOiB7IGxhYmVsOiA8VGV4dCBpZD1cImxhc3RTZXZlbkRheXNcIiAvPiwgdmFsdWU6ICgpID0+IGxhc3REYXlzKDcpIH0sXG4gIGxhc3RUaGlydHlEYXlzOiB7IGxhYmVsOiA8VGV4dCBpZD1cImxhc3RUaGlydHlEYXlzXCIgLz4sIHZhbHVlOiAoKSA9PiBsYXN0RGF5cygzMCkgfSxcbn0gc2F0aXNmaWVzIFJlY29yZDxcbiAgRGF0ZVBpY2tlclF1aWNrT3B0aW9uICYgc3RyaW5nLFxuICB7IGxhYmVsOiBSZWFjdE5vZGU7IHZhbHVlOiBEYXRlIHwgRGF0ZVJhbmdlIHwgKChwcm9wczogRGF0ZVBpY2tlclByb3BzKSA9PiBEYXRlIHwgRGF0ZVJhbmdlKSB9XG4+O1xuXG4vKiogUmV0dXJucyB3aGV0aGVyIHR3byBkYXRlcyBhbmQvb3IgZGF0ZSByYW5nZXMgaW50ZXJzZWN0LiBJbnRlcnNlY3Rpb24gaXMgY29uc2lkZXJlZCBwZXIgZGF5LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRhdGVJbnRlcnNlY3QoYTogRGF0ZSB8IG51bGwgfCBEYXRlUmFuZ2UsIGI6IERhdGUgfCBudWxsIHwgRGF0ZVJhbmdlKSB7XG4gIGlmIChhIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgIGEgPSB7IG1pbjogYSwgbWF4OiBhIH07XG4gIH1cbiAgaWYgKGIgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgYiA9IHsgbWluOiBiLCBtYXg6IGIgfTtcbiAgfVxuXG4gIGlmICghYT8ubWluIHx8ICFhLm1heCB8fCAhYj8ubWluIHx8ICFiLm1heCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiAhKGVuZE9mRGF5KGEubWF4KSA8IHN0YXJ0T2ZEYXkoYi5taW4pIHx8IHN0YXJ0T2ZEYXkoYS5taW4pID4gZW5kT2ZEYXkoYi5tYXgpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRhdGVDbGFtcChkYXRlOiBEYXRlLCBtaW4/OiBEYXRlLCBtYXg/OiBEYXRlKSB7XG4gIGlmIChtaW4gJiYgZGF0ZSA8IG1pbikge1xuICAgIHJldHVybiBtaW47XG4gIH1cblxuICBpZiAobWF4ICYmIGRhdGUgPiBtYXgpIHtcbiAgICByZXR1cm4gbWF4O1xuICB9XG5cbiAgcmV0dXJuIGRhdGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBEYXRlUGlja2VyKHByb3BzOiBEYXRlUGlja2VyUHJvcHMpIHtcbiAgY29uc3QgY29udGV4dCA9IHVzZUNvbnRleHQoRGF0ZVBpY2tlckNvbnRleHQpO1xuXG4gIGNvbnN0IHtcbiAgICB2YWx1ZSxcbiAgICByYW5nZVNlbGVjdCxcbiAgICBsb2NhbGUsXG4gICAgZmlyc3REYXlPZldlZWsgPSAxLFxuICAgIGRlZmF1bHREYXRlSW5WaWV3LFxuICAgIHF1aWNrT3B0aW9ucyA9IFsndG9kYXknLCAndGhpc1dlZWsnXSxcbiAgICBtaW5EYXRlLFxuICAgIG1heERhdGUsXG4gICAgc2hvd0NhbGVuZGFyV2VlayxcbiAgfSA9IGRlZmF1bHRzPERhdGVQaWNrZXJQcm9wcz4ocHJvcHMsIGNvbnRleHQpO1xuXG4gIGZ1bmN0aW9uIG9uQ2hhbmdlKHZhbHVlOiBEYXRlIHwgRGF0ZVJhbmdlIHwgbnVsbCkge1xuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgIHZhbHVlID0gZGF0ZUNsYW1wKHZhbHVlLCBtaW5EYXRlLCBtYXhEYXRlKTtcbiAgICB9IGVsc2UgaWYgKHZhbHVlKSB7XG4gICAgICB2YWx1ZSA9IHtcbiAgICAgICAgbWluOiBkYXRlQ2xhbXAodmFsdWUubWluLCBtaW5EYXRlLCBtYXhEYXRlKSxcbiAgICAgICAgbWF4OiBkYXRlQ2xhbXAodmFsdWUubWF4LCBtaW5EYXRlLCBtYXhEYXRlKSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcHJvcHMub25DaGFuZ2UodmFsdWUpO1xuICB9XG5cbiAgY29uc3QgQnV0dG9uID0gdXNlVGhlbWUoKHQpID0+IHQuY29tcG9uZW50cy5CdXR0b24pO1xuICBjb25zdCBJY29uQnV0dG9uID0gdXNlVGhlbWUoKHQpID0+IHQuY29tcG9uZW50cy5JY29uQnV0dG9uKTtcbiAgY29uc3QgQ2hldnJvblJpZ2h0ID0gdXNlVGhlbWUoKHQpID0+IHQuaWNvbnMuQ2hldnJvblJpZ2h0KTtcbiAgY29uc3QgY3NzVmFyaWFibGVzID0gdXNlQ3NzVmFyaWFibGVzKCk7XG5cbiAgY29uc3QgbW91bnRUaW1lID0gdXNlTWVtbygoKSA9PiBuZXcgRGF0ZSgpLCBbXSk7XG4gIGNvbnN0IFtkYXRlSW5WaWV3LCBzZXREYXRlSW5WaWV3XSA9IHVzZVN0YXRlPERhdGU+KGRlZmF1bHREYXRlSW5WaWV3ID8/IG1vdW50VGltZSk7XG4gIGNvbnN0IFtkaXJ0eSwgc2V0RGlydHldID0gdXNlU3RhdGU8UGFydGlhbDxEYXRlUmFuZ2U+PigpO1xuICBjb25zdCBbaG92ZXJlZCwgc2V0SG92ZXJlZF0gPSB1c2VTdGF0ZTxEYXRlPigpO1xuXG4gIGNvbnN0IG1pbiA9IGRpcnR5ID8gZGlydHkubWluIDogdmFsdWUgaW5zdGFuY2VvZiBEYXRlID8gdmFsdWUgOiB2YWx1ZT8ubWluO1xuICBjb25zdCBtYXggPSBkaXJ0eSA/IGRpcnR5Lm1heCA6IHZhbHVlIGluc3RhbmNlb2YgRGF0ZSA/IHZhbHVlIDogdmFsdWU/Lm1heDtcblxuICBjb25zdCByZXNvbHZlZFF1aWNrT3B0aW9ucyA9IFsuLi5xdWlja09wdGlvbnMsIHsgbGFiZWw6IDxUZXh0IGlkPVwicmVzZXRcIiAvPiwgdmFsdWU6IG51bGwgfV0ubWFwKFxuICAgIChvcHRpb24sIGluZGV4KSA9PiB7XG4gICAgICBpZiAob3B0aW9uIGluc3RhbmNlb2YgRnVuY3Rpb24pIHtcbiAgICAgICAgcmV0dXJuIG9wdGlvbigodmFsdWUpID0+IHtcbiAgICAgICAgICBzZXREaXJ0eSh1bmRlZmluZWQpO1xuICAgICAgICAgIG9uQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHsgbGFiZWwsIHZhbHVlIH0gPSB0eXBlb2Ygb3B0aW9uID09PSAnc3RyaW5nJyA/IGNvbW1vblF1aWNrT3B0aW9uc1tvcHRpb25dIDogb3B0aW9uO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8QnV0dG9uXG4gICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICB2YXJpYW50PVwidGV4dFwiXG4gICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgc2V0RGlydHkodW5kZWZpbmVkKTtcblxuICAgICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRnVuY3Rpb24pIHtcbiAgICAgICAgICAgICAgb25DaGFuZ2UodmFsdWUocHJvcHMpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIG9uQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAge2xhYmVsfVxuICAgICAgICA8L0J1dHRvbj5cbiAgICAgICk7XG4gICAgfSxcbiAgKTtcblxuICBjb25zdCB7IGNhbGVuZGFycywgZ2V0QmFja1Byb3BzLCBnZXRGb3J3YXJkUHJvcHMsIGdldERhdGVQcm9wcyB9ID0gdXNlRGF5emVkKHtcbiAgICBvbkRhdGVTZWxlY3RlZDogKCkgPT4gdW5kZWZpbmVkLFxuICAgIGZpcnN0RGF5T2ZXZWVrLFxuICAgIHNob3dPdXRzaWRlRGF5czogdHJ1ZSxcbiAgICBkYXRlOiBkYXRlSW5WaWV3LFxuICAgIG9uT2Zmc2V0Q2hhbmdlZDogKG9mZnNldCkgPT5cbiAgICAgIHNldERhdGVJblZpZXcobmV3IERhdGUoZGF0ZUluVmlldy5nZXRGdWxsWWVhcigpLCBkYXRlSW5WaWV3LmdldE1vbnRoKCkgKyBvZmZzZXQpKSxcbiAgICBvZmZzZXQ6IDAsXG4gICAgbWluRGF0ZSxcbiAgICBtYXhEYXRlLFxuICB9KTtcbiAgY29uc3Qgbm93ID0gdXNlTWVtbygoKSA9PiBzdGFydE9mRGF5KG5ldyBEYXRlKCkpLCBbXSk7XG5cbiAgY29uc3QgZm9ybWF0V2Vla2RheSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHsgZm9ybWF0IH0gPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NhbGUsIHsgd2Vla2RheTogJ3Nob3J0JyB9KTtcbiAgICByZXR1cm4gKHdlZWtEYXk6IG51bWJlcikgPT5cbiAgICAgIGZvcm1hdChuZXcgRGF0ZShEYXRlLlVUQygyMDIxLCA3LCAoKHdlZWtEYXkgKyBmaXJzdERheU9mV2VlaykgJSA3KSArIDEpKSk7XG4gIH0sIFtsb2NhbGUsIGZpcnN0RGF5T2ZXZWVrXSk7XG5cbiAgdXNlRWZmZWN0KFxuICAgICgpID0+XG4gICAgICBzZXREYXRlSW5WaWV3KFxuICAgICAgICB2YWx1ZSA9PT0gbnVsbCA/IGRlZmF1bHREYXRlSW5WaWV3ID8/IG1vdW50VGltZSA6IHZhbHVlIGluc3RhbmNlb2YgRGF0ZSA/IHZhbHVlIDogdmFsdWUubWF4LFxuICAgICAgKSxcbiAgICBbdmFsdWUsIGRlZmF1bHREYXRlSW5WaWV3LCBtb3VudFRpbWVdLFxuICApO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFyYW5nZVNlbGVjdCkge1xuICAgICAgc2V0RGlydHkodW5kZWZpbmVkKTtcbiAgICB9XG4gIH0sIFtyYW5nZVNlbGVjdF0pO1xuXG4gIGZ1bmN0aW9uIHNldChtaW4/OiBEYXRlLCBtYXg/OiBEYXRlLCBlZGl0PzogJ21pbicgfCAnbWF4Jykge1xuICAgIGlmICghcmFuZ2VTZWxlY3QpIHtcbiAgICAgIG9uQ2hhbmdlKG1pbiA/PyBudWxsKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAobWluICYmIG1heCAmJiBtaW4gPiBtYXgpIHtcbiAgICAgIGlmIChlZGl0ID09PSAnbWluJykge1xuICAgICAgICBtYXggPSBtaW47XG4gICAgICB9IGVsc2UgaWYgKGVkaXQgPT09ICdtYXgnKSB7XG4gICAgICAgIG1pbiA9IG1heDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIFttaW4sIG1heF0gPSBbbWF4LCBtaW5dO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghbWluID09PSAhbWF4KSB7XG4gICAgICBzZXREaXJ0eSh1bmRlZmluZWQpO1xuICAgICAgb25DaGFuZ2UobWluICYmIG1heCA/IHsgbWluLCBtYXg6IGVuZE9mRGF5KG1heCkgfSA6IG51bGwpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXREaXJ0eSh7IG1pbiwgbWF4IH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGZvcm1hdE1vbnRoID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgeyBmb3JtYXQgfSA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KGxvY2FsZSwgeyBtb250aDogJ2xvbmcnIH0pO1xuICAgIHJldHVybiAobW9udGg6IG51bWJlcikgPT4gZm9ybWF0KG5ldyBEYXRlKDIwMjEsIG1vbnRoKSk7XG4gIH0sIFtsb2NhbGVdKTtcblxuICBjb25zdCBmb3JtYXRZZWFyID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgeyBmb3JtYXQgfSA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KGxvY2FsZSwgeyB5ZWFyOiAnbnVtZXJpYycgfSk7XG4gICAgcmV0dXJuICh5ZWFyOiBudW1iZXIpID0+IGZvcm1hdChuZXcgRGF0ZSh5ZWFyLCAwLCAxKSk7XG4gIH0sIFtsb2NhbGVdKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY3NzPXtjc3NWYXJpYWJsZXN9PlxuICAgICAgPGRpdlxuICAgICAgICBjc3M9e3tcbiAgICAgICAgICBkaXNwbGF5OiAnZ3JpZCcsXG4gICAgICAgICAgZ3JpZEF1dG9GbG93OiAnY29sdW1uJyxcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgYWxpZ25JdGVtczogJ2Jhc2VsaW5lJyxcbiAgICAgICAgICBnYXA6ICd2YXIoLS1zcGFjaW5nKScsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxEYXRlSW5wdXRcbiAgICAgICAgICB2YWx1ZT17bWluID8/IG51bGx9XG4gICAgICAgICAgb25DaGFuZ2U9eyhkYXRlKSA9PiBzZXQoZGF0ZSA/PyB1bmRlZmluZWQsIG1heCwgJ21pbicpfVxuICAgICAgICAgIGxvY2FsZT17bG9jYWxlfVxuICAgICAgICAvPlxuXG4gICAgICAgIHtyYW5nZVNlbGVjdCAmJiAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIHsnIC0gJ31cbiAgICAgICAgICAgIDxEYXRlSW5wdXRcbiAgICAgICAgICAgICAgdmFsdWU9e21heCA/PyBudWxsfVxuICAgICAgICAgICAgICBvbkNoYW5nZT17KGRhdGUpID0+IHNldChtaW4sIGRhdGUgPz8gdW5kZWZpbmVkLCAnbWF4Jyl9XG4gICAgICAgICAgICAgIGxvY2FsZT17bG9jYWxlfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuXG4gICAgICB7Y2FsZW5kYXJzLm1hcCgoeyBtb250aCwgeWVhciwgd2Vla3MgfSkgPT4gKFxuICAgICAgICA8ZGl2IGtleT17YCR7bW9udGh9JHt5ZWFyfWB9IGNzcz17eyBkaXNwbGF5OiAnZ3JpZCcgfX0+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY3NzPXt7XG4gICAgICAgICAgICAgIG1hcmdpbjogJ2NhbGModmFyKC0tc3BhY2luZykgKiA0KSAwJyxcbiAgICAgICAgICAgICAgZGlzcGxheTogJ2dyaWQnLFxuICAgICAgICAgICAgICBncmlkQXV0b0Zsb3c6ICdjb2x1bW4nLFxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ3NwYWNlLWJldHdlZW4nLFxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEljb25CdXR0b24gey4uLmdldEJhY2tQcm9wcyh7IGNhbGVuZGFycyB9KX0+XG4gICAgICAgICAgICAgIDxDaGV2cm9uUmlnaHQgY3NzPXt7IHRyYW5zZm9ybTogJ3JvdGF0ZTNkKDAsIDAsIDEsIDE4MGRlZyknIH19IC8+XG4gICAgICAgICAgICA8L0ljb25CdXR0b24+XG5cbiAgICAgICAgICAgIDxkaXYgY3NzPXt7IGRpc3BsYXk6ICdmbGV4JyB9fT5cbiAgICAgICAgICAgICAge2Zvcm1hdE1vbnRoKG1vbnRoKX0ge2Zvcm1hdFllYXIoeWVhcil9XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPEljb25CdXR0b24gey4uLmdldEZvcndhcmRQcm9wcyh7IGNhbGVuZGFycyB9KX0+XG4gICAgICAgICAgICAgIDxDaGV2cm9uUmlnaHQgLz5cbiAgICAgICAgICAgIDwvSWNvbkJ1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNzcz17e1xuICAgICAgICAgICAgICBqdXN0aWZ5U2VsZjogJ2NlbnRlcicsXG4gICAgICAgICAgICAgIGRpc3BsYXk6ICdncmlkJyxcbiAgICAgICAgICAgICAgZ3JpZFRlbXBsYXRlQ29sdW1uczogJ3JlcGVhdCg4LCBtYXgtY29udGVudCknLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7c2hvd0NhbGVuZGFyV2VlayA/IChcbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNzcz17e1xuICAgICAgICAgICAgICAgICAganVzdGlmeVNlbGY6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgICAgcGFkZGluZzogMTAsXG4gICAgICAgICAgICAgICAgICBib3JkZXJSaWdodDogYDFweCBzb2xpZCAke2dyYXl9YCxcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFRleHQgaWQ9XCJjYWxlbmRhcldlZWtcIiAvPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxkaXYgLz5cbiAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgIHt3ZWVrRGF5cy5tYXAoKF92LCB3ZWVrRGF5KSA9PiAoXG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBrZXk9e3dlZWtEYXl9XG4gICAgICAgICAgICAgICAgY3NzPXt7XG4gICAgICAgICAgICAgICAgICBqdXN0aWZ5U2VsZjogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgICBwYWRkaW5nOiAxMCxcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2Zvcm1hdFdlZWtkYXkod2Vla0RheSl9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKSl9XG5cbiAgICAgICAgICAgIHt3ZWVrcy5tYXAoKHdlZWssIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHdlZWtTdGFydCA9IHdlZWtbMF0gYXMgRGF0ZU9iajtcbiAgICAgICAgICAgICAgY29uc3Qgd2Vla0VuZCA9IHdlZWtbNl0gYXMgRGF0ZU9iajtcbiAgICAgICAgICAgICAgY29uc3Qgd2Vla0Rpc2FibGVkID1cbiAgICAgICAgICAgICAgICAhcmFuZ2VTZWxlY3QgfHxcbiAgICAgICAgICAgICAgICAobWluRGF0ZSAmJiB3ZWVrRW5kLmRhdGUgPCBtaW5EYXRlKSB8fFxuICAgICAgICAgICAgICAgIChtYXhEYXRlICYmIHdlZWtTdGFydC5kYXRlID4gbWF4RGF0ZSk7XG5cbiAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICA8RnJhZ21lbnQga2V5PXtpbmRleH0+XG4gICAgICAgICAgICAgICAgICB7c2hvd0NhbGVuZGFyV2VlayA/IChcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIGNzcz17e1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMTAsXG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6ICdub25lJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICd0cmFuc3BhcmVudCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IHdlZWtEaXNhYmxlZCA/IHVuZGVmaW5lZCA6ICdwb2ludGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQ6ICdpbmhlcml0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlclJpZ2h0OiBgMXB4IHNvbGlkICR7Z3JheX1gLFxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHdlZWtEaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1pbiA9IG1pbkRhdGUgJiYgd2Vla1N0YXJ0LmRhdGUgPCBtaW5EYXRlID8gbWluRGF0ZSA6IHdlZWtTdGFydC5kYXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWF4ID0gbWF4RGF0ZSAmJiB3ZWVrRW5kLmRhdGUgPiBtYXhEYXRlID8gbWF4RGF0ZSA6IHdlZWtFbmQuZGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldChtaW4sIG1heCk7XG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtnZXRDYWxlbmRhcldlZWsoKHdlZWtbMF0gYXMgRGF0ZU9iaikuZGF0ZSl9XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAvPlxuICAgICAgICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgICAgICAge3dlZWsubWFwKChkYXRlT2JqZWN0LCBkYXlJbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWRhdGVPYmplY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gPGRpdiBrZXk9e2RheUluZGV4fSAvPjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgcHJldk1vbnRoLCBuZXh0TW9udGgsIGRhdGUgfSA9IGRhdGVPYmplY3Q7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRvZGF5ID0gc3RhcnRPZkRheShkYXRlKS5nZXRUaW1lKCkgPT09IG5vdy5nZXRUaW1lKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRpc2FibGVkID0gKG1pbkRhdGUgJiYgZGF0ZSA8IG1pbkRhdGUpIHx8IChtYXhEYXRlICYmIGRhdGUgPiBtYXhEYXRlKTtcblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZCA9XG4gICAgICAgICAgICAgICAgICAgICAgZGF0ZS5nZXRUaW1lKCkgPT09IG1pbj8uZ2V0VGltZSgpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgKG1pbiAmJiBtYXggJiYgZGF0ZUludGVyc2VjdChkYXRlLCB7IG1pbiwgbWF4IH0pKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJlU2VsZWN0ZWQgPVxuICAgICAgICAgICAgICAgICAgICAgICFzZWxlY3RlZCAmJlxuICAgICAgICAgICAgICAgICAgICAgICFkaXNhYmxlZCAmJlxuICAgICAgICAgICAgICAgICAgICAgIChkYXRlLmdldFRpbWUoKSA9PT0gaG92ZXJlZD8uZ2V0VGltZSgpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAobWluICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICFtYXggJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaG92ZXJlZCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlSW50ZXJzZWN0KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluIDw9IGhvdmVyZWQgPyB7IG1pbiwgbWF4OiBob3ZlcmVkIH0gOiB7IG1pbjogaG92ZXJlZCwgbWF4OiBtaW4gfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKSkpO1xuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtgJHtpbmRleH0tJHtkYXlJbmRleH1gfVxuICAgICAgICAgICAgICAgICAgICAgICAgY3NzPXtbXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAxMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6ICdub25lJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAndHJhbnNwYXJlbnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnNvcjogZGlzYWJsZWQgPyB1bmRlZmluZWQgOiAncG9pbnRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udDogJ2luaGVyaXQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAocHJldk1vbnRoIHx8IG5leHRNb250aCkgJiYge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBncmF5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICB0b2RheSAmJiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0bGluZTogJzFweCBzb2xpZCB2YXIoLS1zZWNvbmRhcnlNYWluKScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkICYmIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAndmFyKC0tcHJpbWFyeU1haW4pJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ3ZhcigtLXByaW1hcnlDb250cmFzdFRleHQpJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlU2VsZWN0ZWQgJiYge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICd2YXIoLS1wcmltYXJ5TGlnaHQpJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ3ZhcigtLXByaW1hcnlDb250cmFzdFRleHQpJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIF19XG4gICAgICAgICAgICAgICAgICAgICAgICB7Li4uZ2V0RGF0ZVByb3BzKHsgZGF0ZU9iajogZGF0ZU9iamVjdCB9KX1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRpcnR5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1pbikgc2V0KG1pbiwgZGF0ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBzZXQoZGF0ZSwgbWF4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQoZGF0ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICBvblBvaW50ZXJPdmVyPXsoKSA9PiBzZXRIb3ZlcmVkKGRhdGUpfVxuICAgICAgICAgICAgICAgICAgICAgICAgb25Qb2ludGVyT3V0PXsoKSA9PiBzZXRIb3ZlcmVkKHVuZGVmaW5lZCl9XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAge2RhdGUuZ2V0RGF0ZSgpfVxuICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgPC9GcmFnbWVudD5cbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICkpfVxuXG4gICAgICA8ZGl2XG4gICAgICAgIGNzcz17e1xuICAgICAgICAgIG1hcmdpblRvcDogJ3ZhcigtLXNwYWNpbmcpJyxcbiAgICAgICAgICBkaXNwbGF5OiAnZ3JpZCcsXG4gICAgICAgICAgZ3JpZEF1dG9GbG93OiAnY29sdW1uJyxcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIHtyZXNvbHZlZFF1aWNrT3B0aW9uc31cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufVxuIl19 */",
|
|
917
941
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__$d
|
|
918
942
|
};
|
|
919
943
|
var _ref4$2 = process.env.NODE_ENV === "production" ? {
|
|
@@ -922,7 +946,7 @@ var _ref4$2 = process.env.NODE_ENV === "production" ? {
|
|
|
922
946
|
} : {
|
|
923
947
|
name: "avs0ta-DatePicker",
|
|
924
948
|
styles: "transform:rotate3d(0, 0, 1, 180deg);label:DatePicker;",
|
|
925
|
-
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3NjaHVtbWFyLXRhYmxlL3NjaHVtbWFyLXRhYmxlL3NyYy9jb21wb25lbnRzL2RhdGVQaWNrZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTJVNEIiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvc2NodW1tYXItdGFibGUvc2NodW1tYXItdGFibGUvc3JjL2NvbXBvbmVudHMvZGF0ZVBpY2tlci50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VEYXl6ZWQgfSBmcm9tICdkYXl6ZWQnO1xuaW1wb3J0IHR5cGUgeyBSZWFjdE5vZGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICcuLi9ob29rcy91c2VUaGVtZSc7XG5pbXBvcnQgeyBncmF5IH0gZnJvbSAnLi4vdGhlbWUvZGVmYXVsdFRoZW1lL2RlZmF1bHRDbGFzc2VzJztcbmltcG9ydCB7IHVzZUNzc1ZhcmlhYmxlcyB9IGZyb20gJy4uL3RoZW1lL3VzZUNzc1ZhcmlhYmxlcyc7XG5pbXBvcnQgeyBEYXRlSW5wdXQgfSBmcm9tICcuL2RhdGVJbnB1dCc7XG5pbXBvcnQgeyBUZXh0IH0gZnJvbSAnLi90ZXh0JztcblxuZXhwb3J0IHR5cGUgRGF0ZVJhbmdlID0geyBtaW46IERhdGU7IG1heDogRGF0ZSB9O1xuXG5leHBvcnQgdHlwZSBEYXRlUGlja2VyUXVpY2tPcHRpb24gPVxuICB8ICd0b2RheSdcbiAgfCAndGhpc1dlZWsnXG4gIHwgJ3RoaXNNb250aCdcbiAgfCAndGhpc1llYXInXG4gIHwgJ2xhc3RTZXZlbkRheXMnXG4gIHwgJ2xhc3RUaGlydHlEYXlzJ1xuICB8IHsgbGFiZWw6IFJlYWN0Tm9kZTsgdmFsdWU6IERhdGUgfCBEYXRlUmFuZ2UgfCAoKCkgPT4gRGF0ZSB8IERhdGVSYW5nZSkgfVxuICB8ICgob25DaGFuZ2U6ICh2YWx1ZTogRGF0ZSB8IERhdGVSYW5nZSB8IG51bGwpID0+IHZvaWQpID0+IFJlYWN0Tm9kZSk7XG5cbmV4cG9ydCB0eXBlIERhdGVQaWNrZXJQcm9wcyA9IHtcbiAgLyoqIEN1cnJlbnRseSBzZWxlY3RlZCBkYXkgb3IgcmFuZ2Ugb2YgZGF5cy4gKi9cbiAgdmFsdWU6IERhdGUgfCBEYXRlUmFuZ2UgfCBudWxsO1xuICAvKiogQ2FsbGJhY2sgZm9yIHdoZW4gdGhlIGRheSAocmFuZ2UpIGNoYW5nZXMuICovXG4gIG9uQ2hhbmdlOiAodmFsdWU6IERhdGUgfCBEYXRlUmFuZ2UgfCBudWxsKSA9PiB2b2lkO1xuICAvKiogSWYgZW5hYmxlZCwgcmFuZ2VzIGNhbiBiZSBzZWxlY3RlZC4gKi9cbiAgcmFuZ2VTZWxlY3Q/OiBib29sZWFuO1xuICAvKiogV2hpY2ggbG9jYWxlIHRvIHVzZSB0byByZW5kZXIgdGhlIGNhbGVuZGFyLiAqL1xuICBsb2NhbGU/OiBzdHJpbmc7XG4gIC8qKiBXaGljaCBkYXkgb2YgdGhlIHdlZWsgc2hvdWxkIGJlIGluIHRoZSBmaXJzdCBjb2x1bW4uICgwPVN1bmRheSwgMT1Nb25kYXksIC4uLilcbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgZmlyc3REYXlPZldlZWs/OiAwIHwgMSB8IDIgfCAzIHwgNCB8IDUgfCA2O1xuICAvKiogV2hpY2ggbW9udGggdG8gc2hvdyBpbml0aWFsbHkgKi9cbiAgZGVmYXVsdERhdGVJblZpZXc/OiBEYXRlO1xuICAvKiogU2hvdyBidXR0b25zIHRvIHF1aWNrbHkgc2VsZWN0IHN1Z2dlc3RlZCBkYXRlcyBvciBkYXRlIHJhbmdlcyAqL1xuICBxdWlja09wdGlvbnM/OiBEYXRlUGlja2VyUXVpY2tPcHRpb25bXTtcbiAgbWluRGF0ZT86IERhdGU7XG4gIG1heERhdGU/OiBEYXRlO1xufTtcblxuY29uc3Qgd2Vla0RheXMgPSBbMCwgMSwgMiwgMywgNCwgNSwgNl0gYXMgY29uc3Q7XG5cbi8qKiBSb3VuZHMgYSBkYXRlIGRvd24gdG8gdGhlIHN0YXJ0IG9mIHRoZSBkYXkuICovXG5leHBvcnQgY29uc3Qgc3RhcnRPZkRheSA9IChkOiBEYXRlKSA9PiBuZXcgRGF0ZShkLmdldEZ1bGxZZWFyKCksIGQuZ2V0TW9udGgoKSwgZC5nZXREYXRlKCkpO1xuXG4vKiogUm91bmRzIGEgZGF0ZSB1cCB0byB0aGUgZW5kIG9mIHRoZSBkYXkuICovXG5leHBvcnQgY29uc3QgZW5kT2ZEYXkgPSAoZDogRGF0ZSkgPT5cbiAgbmV3IERhdGUoZC5nZXRGdWxsWWVhcigpLCBkLmdldE1vbnRoKCksIGQuZ2V0RGF0ZSgpICsgMSwgMCwgMCwgMCwgLTEpO1xuXG5leHBvcnQgY29uc3QgbGFzdERheXMgPSAoZGF5czogbnVtYmVyKTogRGF0ZVJhbmdlID0+IHtcbiAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgY29uc3QgbWluID0gbmV3IERhdGUobm93KTtcbiAgbWluLnNldERhdGUobWluLmdldERhdGUoKSAtIGRheXMgKyAxKTtcblxuICByZXR1cm4ge1xuICAgIG1pbjogc3RhcnRPZkRheShtaW4pLFxuICAgIG1heDogZW5kT2ZEYXkobm93KSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCB0b2RheSA9ICgpID0+IGxhc3REYXlzKDEpO1xuXG5leHBvcnQgY29uc3QgdGhpc1dlZWsgPSAoZGVsdGEgPSAwLCBmaXJzdERheU9mV2VlayA9IDEpOiBEYXRlUmFuZ2UgPT4ge1xuICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuICBjb25zdCBtaW4gPSBuZXcgRGF0ZShub3cpO1xuXG4gIGxldCBkaWZmID0gbWluLmdldERheSgpIC0gZmlyc3REYXlPZldlZWs7XG4gIGlmIChkaWZmIDwgMCkge1xuICAgIGRpZmYgKz0gNztcbiAgfVxuICBtaW4uc2V0RGF0ZShtaW4uZ2V0RGF0ZSgpIC0gZGlmZiArIGRlbHRhICogNyk7XG5cbiAgY29uc3QgbWF4ID0gbmV3IERhdGUobWluKTtcbiAgbWF4LnNldERhdGUobWF4LmdldERhdGUoKSArIDYpO1xuXG4gIHJldHVybiB7XG4gICAgbWluOiBzdGFydE9mRGF5KG1pbiksXG4gICAgbWF4OiBlbmRPZkRheShtYXgpLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHRoaXNNb250aCA9IChkZWx0YSA9IDApOiBEYXRlUmFuZ2UgPT4ge1xuICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuICBjb25zdCBtaW4gPSBuZXcgRGF0ZShub3cpO1xuICBtaW4uc2V0RGF0ZSgxKTtcbiAgbWluLnNldE1vbnRoKG1pbi5nZXRNb250aCgpICsgZGVsdGEpO1xuICBjb25zdCBtYXggPSBuZXcgRGF0ZShtaW4pO1xuICBtYXguc2V0TW9udGgobWF4LmdldE1vbnRoKCkgKyAxKTtcbiAgbWF4LnNldERhdGUobWF4LmdldERhdGUoKSAtIDEpO1xuXG4gIHJldHVybiB7XG4gICAgbWluOiBzdGFydE9mRGF5KG1pbiksXG4gICAgbWF4OiBlbmRPZkRheShtYXgpLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHRoaXNZZWFyID0gKGRlbHRhID0gMCk6IERhdGVSYW5nZSA9PiB7XG4gIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG4gIGNvbnN0IG1pbiA9IG5ldyBEYXRlKG5vdyk7XG4gIG1pbi5zZXREYXRlKDEpO1xuICBtaW4uc2V0TW9udGgoMCk7XG4gIG1pbi5zZXRGdWxsWWVhcihtaW4uZ2V0RnVsbFllYXIoKSArIGRlbHRhKTtcbiAgY29uc3QgbWF4ID0gbmV3IERhdGUobWluKTtcbiAgbWF4LnNldEZ1bGxZZWFyKG1heC5nZXRGdWxsWWVhcigpICsgMSk7XG4gIG1heC5zZXREYXRlKG1heC5nZXREYXRlKCkgLSAxKTtcblxuICByZXR1cm4ge1xuICAgIG1pbjogc3RhcnRPZkRheShtaW4pLFxuICAgIG1heDogZW5kT2ZEYXkobWF4KSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBjb21tb25RdWlja09wdGlvbnMgPSB7XG4gIHRvZGF5OiB7IGxhYmVsOiA8VGV4dCBpZD1cInRvZGF5XCIgLz4sIHZhbHVlOiB0b2RheSB9LFxuICB0aGlzV2VlazogeyBsYWJlbDogPFRleHQgaWQ9XCJ0aGlzV2Vla1wiIC8+LCB2YWx1ZTogKHByb3BzKSA9PiB0aGlzV2VlaygwLCBwcm9wcy5maXJzdERheU9mV2VlaykgfSxcbiAgdGhpc01vbnRoOiB7IGxhYmVsOiA8VGV4dCBpZD1cInRoaXNNb250aFwiIC8+LCB2YWx1ZTogKCkgPT4gdGhpc01vbnRoKCkgfSxcbiAgdGhpc1llYXI6IHsgbGFiZWw6IDxUZXh0IGlkPVwidGhpc1llYXJcIiAvPiwgdmFsdWU6ICgpID0+IHRoaXNZZWFyKCkgfSxcbiAgbGFzdFNldmVuRGF5czogeyBsYWJlbDogPFRleHQgaWQ9XCJsYXN0U2V2ZW5EYXlzXCIgLz4sIHZhbHVlOiAoKSA9PiBsYXN0RGF5cyg3KSB9LFxuICBsYXN0VGhpcnR5RGF5czogeyBsYWJlbDogPFRleHQgaWQ9XCJsYXN0VGhpcnR5RGF5c1wiIC8+LCB2YWx1ZTogKCkgPT4gbGFzdERheXMoMzApIH0sXG59IHNhdGlzZmllcyBSZWNvcmQ8XG4gIERhdGVQaWNrZXJRdWlja09wdGlvbiAmIHN0cmluZyxcbiAgeyBsYWJlbDogUmVhY3ROb2RlOyB2YWx1ZTogRGF0ZSB8IERhdGVSYW5nZSB8ICgocHJvcHM6IERhdGVQaWNrZXJQcm9wcykgPT4gRGF0ZSB8IERhdGVSYW5nZSkgfVxuPjtcblxuLyoqIFJldHVybnMgd2hldGhlciB0d28gZGF0ZXMgYW5kL29yIGRhdGUgcmFuZ2VzIGludGVyc2VjdC4gSW50ZXJzZWN0aW9uIGlzIGNvbnNpZGVyZWQgcGVyIGRheS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkYXRlSW50ZXJzZWN0KGE6IERhdGUgfCBudWxsIHwgRGF0ZVJhbmdlLCBiOiBEYXRlIHwgbnVsbCB8IERhdGVSYW5nZSkge1xuICBpZiAoYSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICBhID0geyBtaW46IGEsIG1heDogYSB9O1xuICB9XG4gIGlmIChiIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgIGIgPSB7IG1pbjogYiwgbWF4OiBiIH07XG4gIH1cblxuICBpZiAoIWE/Lm1pbiB8fCAhYS5tYXggfHwgIWI/Lm1pbiB8fCAhYi5tYXgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gIShlbmRPZkRheShhLm1heCkgPCBzdGFydE9mRGF5KGIubWluKSB8fCBzdGFydE9mRGF5KGEubWluKSA+IGVuZE9mRGF5KGIubWF4KSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkYXRlQ2xhbXAoZGF0ZTogRGF0ZSwgbWluPzogRGF0ZSwgbWF4PzogRGF0ZSkge1xuICBpZiAobWluICYmIGRhdGUgPCBtaW4pIHtcbiAgICByZXR1cm4gbWluO1xuICB9XG5cbiAgaWYgKG1heCAmJiBkYXRlID4gbWF4KSB7XG4gICAgcmV0dXJuIG1heDtcbiAgfVxuXG4gIHJldHVybiBkYXRlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gRGF0ZVBpY2tlcihwcm9wczogRGF0ZVBpY2tlclByb3BzKSB7XG4gIGNvbnN0IHtcbiAgICB2YWx1ZSxcbiAgICByYW5nZVNlbGVjdCxcbiAgICBsb2NhbGUsXG4gICAgZmlyc3REYXlPZldlZWsgPSAxLFxuICAgIGRlZmF1bHREYXRlSW5WaWV3LFxuICAgIHF1aWNrT3B0aW9ucyA9IFsndG9kYXknLCAndGhpc1dlZWsnXSxcbiAgICBtaW5EYXRlLFxuICAgIG1heERhdGUsXG4gIH0gPSBwcm9wcztcblxuICBmdW5jdGlvbiBvbkNoYW5nZSh2YWx1ZTogRGF0ZSB8IERhdGVSYW5nZSB8IG51bGwpIHtcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICB2YWx1ZSA9IGRhdGVDbGFtcCh2YWx1ZSwgbWluRGF0ZSwgbWF4RGF0ZSk7XG4gICAgfSBlbHNlIGlmICh2YWx1ZSkge1xuICAgICAgdmFsdWUgPSB7XG4gICAgICAgIG1pbjogZGF0ZUNsYW1wKHZhbHVlLm1pbiwgbWluRGF0ZSwgbWF4RGF0ZSksXG4gICAgICAgIG1heDogZGF0ZUNsYW1wKHZhbHVlLm1heCwgbWluRGF0ZSwgbWF4RGF0ZSksXG4gICAgICB9O1xuICAgIH1cblxuICAgIHByb3BzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgfVxuXG4gIGNvbnN0IEJ1dHRvbiA9IHVzZVRoZW1lKCh0KSA9PiB0LmNvbXBvbmVudHMuQnV0dG9uKTtcbiAgY29uc3QgSWNvbkJ1dHRvbiA9IHVzZVRoZW1lKCh0KSA9PiB0LmNvbXBvbmVudHMuSWNvbkJ1dHRvbik7XG4gIGNvbnN0IENoZXZyb25SaWdodCA9IHVzZVRoZW1lKCh0KSA9PiB0Lmljb25zLkNoZXZyb25SaWdodCk7XG4gIGNvbnN0IGNzc1ZhcmlhYmxlcyA9IHVzZUNzc1ZhcmlhYmxlcygpO1xuXG4gIGNvbnN0IG1vdW50VGltZSA9IHVzZU1lbW8oKCkgPT4gbmV3IERhdGUoKSwgW10pO1xuICBjb25zdCBbZGF0ZUluVmlldywgc2V0RGF0ZUluVmlld10gPSB1c2VTdGF0ZTxEYXRlPihkZWZhdWx0RGF0ZUluVmlldyA/PyBtb3VudFRpbWUpO1xuICBjb25zdCBbZGlydHksIHNldERpcnR5XSA9IHVzZVN0YXRlPFBhcnRpYWw8RGF0ZVJhbmdlPj4oKTtcbiAgY29uc3QgW2hvdmVyZWQsIHNldEhvdmVyZWRdID0gdXNlU3RhdGU8RGF0ZT4oKTtcblxuICBjb25zdCBtaW4gPSBkaXJ0eSA/IGRpcnR5Lm1pbiA6IHZhbHVlIGluc3RhbmNlb2YgRGF0ZSA/IHZhbHVlIDogdmFsdWU/Lm1pbjtcbiAgY29uc3QgbWF4ID0gZGlydHkgPyBkaXJ0eS5tYXggOiB2YWx1ZSBpbnN0YW5jZW9mIERhdGUgPyB2YWx1ZSA6IHZhbHVlPy5tYXg7XG5cbiAgY29uc3QgcmVzb2x2ZWRRdWlja09wdGlvbnMgPSBbLi4ucXVpY2tPcHRpb25zLCB7IGxhYmVsOiA8VGV4dCBpZD1cInJlc2V0XCIgLz4sIHZhbHVlOiBudWxsIH1dLm1hcChcbiAgICAob3B0aW9uLCBpbmRleCkgPT4ge1xuICAgICAgaWYgKG9wdGlvbiBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG4gICAgICAgIHJldHVybiBvcHRpb24oKHZhbHVlKSA9PiB7XG4gICAgICAgICAgc2V0RGlydHkodW5kZWZpbmVkKTtcbiAgICAgICAgICBvbkNoYW5nZSh2YWx1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB7IGxhYmVsLCB2YWx1ZSB9ID0gdHlwZW9mIG9wdGlvbiA9PT0gJ3N0cmluZycgPyBjb21tb25RdWlja09wdGlvbnNbb3B0aW9uXSA6IG9wdGlvbjtcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPEJ1dHRvblxuICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgdmFyaWFudD1cInRleHRcIlxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIHNldERpcnR5KHVuZGVmaW5lZCk7XG5cbiAgICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG4gICAgICAgICAgICAgIG9uQ2hhbmdlKHZhbHVlKHByb3BzKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBvbkNoYW5nZSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgPC9CdXR0b24+XG4gICAgICApO1xuICAgIH0sXG4gICk7XG5cbiAgY29uc3QgeyBjYWxlbmRhcnMsIGdldEJhY2tQcm9wcywgZ2V0Rm9yd2FyZFByb3BzLCBnZXREYXRlUHJvcHMgfSA9IHVzZURheXplZCh7XG4gICAgb25EYXRlU2VsZWN0ZWQ6ICgpID0+IHVuZGVmaW5lZCxcbiAgICBmaXJzdERheU9mV2VlayxcbiAgICBzaG93T3V0c2lkZURheXM6IHRydWUsXG4gICAgZGF0ZTogZGF0ZUluVmlldyxcbiAgICBvbk9mZnNldENoYW5nZWQ6IChvZmZzZXQpID0+XG4gICAgICBzZXREYXRlSW5WaWV3KG5ldyBEYXRlKGRhdGVJblZpZXcuZ2V0RnVsbFllYXIoKSwgZGF0ZUluVmlldy5nZXRNb250aCgpICsgb2Zmc2V0KSksXG4gICAgb2Zmc2V0OiAwLFxuICAgIG1pbkRhdGUsXG4gICAgbWF4RGF0ZSxcbiAgfSk7XG4gIGNvbnN0IG5vdyA9IHVzZU1lbW8oKCkgPT4gc3RhcnRPZkRheShuZXcgRGF0ZSgpKSwgW10pO1xuXG4gIGNvbnN0IGZvcm1hdFdlZWtkYXkgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCB7IGZvcm1hdCB9ID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQobG9jYWxlLCB7IHdlZWtkYXk6ICdzaG9ydCcgfSk7XG4gICAgcmV0dXJuICh3ZWVrRGF5OiBudW1iZXIpID0+XG4gICAgICBmb3JtYXQobmV3IERhdGUoRGF0ZS5VVEMoMjAyMSwgNywgKCh3ZWVrRGF5ICsgZmlyc3REYXlPZldlZWspICUgNykgKyAxKSkpO1xuICB9LCBbbG9jYWxlLCBmaXJzdERheU9mV2Vla10pO1xuXG4gIHVzZUVmZmVjdChcbiAgICAoKSA9PlxuICAgICAgc2V0RGF0ZUluVmlldyhcbiAgICAgICAgdmFsdWUgPT09IG51bGwgPyBkZWZhdWx0RGF0ZUluVmlldyA/PyBtb3VudFRpbWUgOiB2YWx1ZSBpbnN0YW5jZW9mIERhdGUgPyB2YWx1ZSA6IHZhbHVlLm1heCxcbiAgICAgICksXG4gICAgW3ZhbHVlLCBkZWZhdWx0RGF0ZUluVmlldywgbW91bnRUaW1lXSxcbiAgKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghcmFuZ2VTZWxlY3QpIHtcbiAgICAgIHNldERpcnR5KHVuZGVmaW5lZCk7XG4gICAgfVxuICB9LCBbcmFuZ2VTZWxlY3RdKTtcblxuICBmdW5jdGlvbiBzZXQobWluPzogRGF0ZSwgbWF4PzogRGF0ZSwgZWRpdD86ICdtaW4nIHwgJ21heCcpIHtcbiAgICBpZiAoIXJhbmdlU2VsZWN0KSB7XG4gICAgICBvbkNoYW5nZShtaW4gPz8gbnVsbCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKG1pbiAmJiBtYXggJiYgbWluID4gbWF4KSB7XG4gICAgICBpZiAoZWRpdCA9PT0gJ21pbicpIHtcbiAgICAgICAgbWF4ID0gbWluO1xuICAgICAgfSBlbHNlIGlmIChlZGl0ID09PSAnbWF4Jykge1xuICAgICAgICBtaW4gPSBtYXg7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBbbWluLCBtYXhdID0gW21heCwgbWluXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIW1pbiA9PT0gIW1heCkge1xuICAgICAgc2V0RGlydHkodW5kZWZpbmVkKTtcbiAgICAgIG9uQ2hhbmdlKG1pbiAmJiBtYXggPyB7IG1pbiwgbWF4OiBlbmRPZkRheShtYXgpIH0gOiBudWxsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0RGlydHkoeyBtaW4sIG1heCB9KTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBmb3JtYXRNb250aCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHsgZm9ybWF0IH0gPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NhbGUsIHsgbW9udGg6ICdsb25nJyB9KTtcbiAgICByZXR1cm4gKG1vbnRoOiBudW1iZXIpID0+IGZvcm1hdChuZXcgRGF0ZSgyMDIxLCBtb250aCkpO1xuICB9LCBbbG9jYWxlXSk7XG5cbiAgY29uc3QgZm9ybWF0WWVhciA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHsgZm9ybWF0IH0gPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NhbGUsIHsgeWVhcjogJ251bWVyaWMnIH0pO1xuICAgIHJldHVybiAoeWVhcjogbnVtYmVyKSA9PiBmb3JtYXQobmV3IERhdGUoeWVhciwgMCwgMSkpO1xuICB9LCBbbG9jYWxlXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNzcz17Y3NzVmFyaWFibGVzfT5cbiAgICAgIDxkaXZcbiAgICAgICAgY3NzPXt7XG4gICAgICAgICAgZGlzcGxheTogJ2dyaWQnLFxuICAgICAgICAgIGdyaWRBdXRvRmxvdzogJ2NvbHVtbicsXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgIGFsaWduSXRlbXM6ICdiYXNlbGluZScsXG4gICAgICAgICAgZ2FwOiAndmFyKC0tc3BhY2luZyknLFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8RGF0ZUlucHV0XG4gICAgICAgICAgdmFsdWU9e21pbiA/PyBudWxsfVxuICAgICAgICAgIG9uQ2hhbmdlPXsoZGF0ZSkgPT4gc2V0KGRhdGUgPz8gdW5kZWZpbmVkLCBtYXgsICdtaW4nKX1cbiAgICAgICAgICBsb2NhbGU9e2xvY2FsZX1cbiAgICAgICAgLz5cblxuICAgICAgICB7cmFuZ2VTZWxlY3QgJiYgKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICB7JyAtICd9XG4gICAgICAgICAgICA8RGF0ZUlucHV0XG4gICAgICAgICAgICAgIHZhbHVlPXttYXggPz8gbnVsbH1cbiAgICAgICAgICAgICAgb25DaGFuZ2U9eyhkYXRlKSA9PiBzZXQobWluLCBkYXRlID8/IHVuZGVmaW5lZCwgJ21heCcpfVxuICAgICAgICAgICAgICBsb2NhbGU9e2xvY2FsZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cblxuICAgICAge2NhbGVuZGFycy5tYXAoKHsgbW9udGgsIHllYXIsIHdlZWtzIH0pID0+IChcbiAgICAgICAgPGRpdiBrZXk9e2Ake21vbnRofSR7eWVhcn1gfSBjc3M9e3sgZGlzcGxheTogJ2dyaWQnIH19PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNzcz17e1xuICAgICAgICAgICAgICBtYXJnaW46ICdjYWxjKHZhcigtLXNwYWNpbmcpICogNCkgMCcsXG4gICAgICAgICAgICAgIGRpc3BsYXk6ICdncmlkJyxcbiAgICAgICAgICAgICAgZ3JpZEF1dG9GbG93OiAnY29sdW1uJyxcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1iZXR3ZWVuJyxcbiAgICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxJY29uQnV0dG9uIHsuLi5nZXRCYWNrUHJvcHMoeyBjYWxlbmRhcnMgfSl9PlxuICAgICAgICAgICAgICA8Q2hldnJvblJpZ2h0IGNzcz17eyB0cmFuc2Zvcm06ICdyb3RhdGUzZCgwLCAwLCAxLCAxODBkZWcpJyB9fSAvPlxuICAgICAgICAgICAgPC9JY29uQnV0dG9uPlxuXG4gICAgICAgICAgICA8ZGl2IGNzcz17eyBkaXNwbGF5OiAnZmxleCcgfX0+XG4gICAgICAgICAgICAgIHtmb3JtYXRNb250aChtb250aCl9IHtmb3JtYXRZZWFyKHllYXIpfVxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxJY29uQnV0dG9uIHsuLi5nZXRGb3J3YXJkUHJvcHMoeyBjYWxlbmRhcnMgfSl9PlxuICAgICAgICAgICAgICA8Q2hldnJvblJpZ2h0IC8+XG4gICAgICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjc3M9e3tcbiAgICAgICAgICAgICAganVzdGlmeVNlbGY6ICdjZW50ZXInLFxuICAgICAgICAgICAgICBkaXNwbGF5OiAnZ3JpZCcsXG4gICAgICAgICAgICAgIGdyaWRUZW1wbGF0ZUNvbHVtbnM6ICdyZXBlYXQoNywgbWF4LWNvbnRlbnQpJyxcbiAgICAgICAgICAgICAgZm9udFdlaWdodDogJ2JvbGQnLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7d2Vla0RheXMubWFwKChfdiwgd2Vla0RheSkgPT4gKFxuICAgICAgICAgICAgICA8ZGl2IGtleT17d2Vla0RheX0gY3NzPXt7IGp1c3RpZnlTZWxmOiAnY2VudGVyJywgbWFyZ2luQm90dG9tOiAndmFyKC0tc3BhY2luZyknIH19PlxuICAgICAgICAgICAgICAgIHtmb3JtYXRXZWVrZGF5KHdlZWtEYXkpfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICkpfVxuXG4gICAgICAgICAgICB7d2Vla3MubWFwKCh3ZWVrLCBpbmRleCkgPT5cbiAgICAgICAgICAgICAgd2Vlay5tYXAoKGRhdGVPYmplY3QsIGRheUluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFkYXRlT2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gPGRpdiBrZXk9e2Ake2luZGV4fS0ke2RheUluZGV4fWB9IC8+O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnN0IHsgcHJldk1vbnRoLCBuZXh0TW9udGgsIGRhdGUgfSA9IGRhdGVPYmplY3Q7XG4gICAgICAgICAgICAgICAgY29uc3QgdG9kYXkgPSBzdGFydE9mRGF5KGRhdGUpLmdldFRpbWUoKSA9PT0gbm93LmdldFRpbWUoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBkaXNhYmxlZCA9IChtaW5EYXRlICYmIGRhdGUgPCBtaW5EYXRlKSB8fCAobWF4RGF0ZSAmJiBkYXRlID4gbWF4RGF0ZSk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZCA9XG4gICAgICAgICAgICAgICAgICBkYXRlLmdldFRpbWUoKSA9PT0gbWluPy5nZXRUaW1lKCkgfHxcbiAgICAgICAgICAgICAgICAgIChtaW4gJiYgbWF4ICYmIGRhdGVJbnRlcnNlY3QoZGF0ZSwgeyBtaW4sIG1heCB9KSk7XG4gICAgICAgICAgICAgICAgY29uc3QgcHJlU2VsZWN0ZWQgPVxuICAgICAgICAgICAgICAgICAgIXNlbGVjdGVkICYmXG4gICAgICAgICAgICAgICAgICAhZGlzYWJsZWQgJiZcbiAgICAgICAgICAgICAgICAgIChkYXRlLmdldFRpbWUoKSA9PT0gaG92ZXJlZD8uZ2V0VGltZSgpIHx8XG4gICAgICAgICAgICAgICAgICAgIChtaW4gJiZcbiAgICAgICAgICAgICAgICAgICAgICAhbWF4ICYmXG4gICAgICAgICAgICAgICAgICAgICAgaG92ZXJlZCAmJlxuICAgICAgICAgICAgICAgICAgICAgIGRhdGVJbnRlcnNlY3QoXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWluIDw9IGhvdmVyZWQgPyB7IG1pbiwgbWF4OiBob3ZlcmVkIH0gOiB7IG1pbjogaG92ZXJlZCwgbWF4OiBtaW4gfSxcbiAgICAgICAgICAgICAgICAgICAgICApKSk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBrZXk9e2Ake2luZGV4fS0ke2RheUluZGV4fWB9XG4gICAgICAgICAgICAgICAgICAgIGNzcz17W1xuICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEwLFxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAnMXB4IHNvbGlkIHRyYW5zcGFyZW50JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICd0cmFuc3BhcmVudCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3I6ICdwb2ludGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIChwcmV2TW9udGggfHwgbmV4dE1vbnRoKSAmJiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogZ3JheSxcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIHRvZGF5ICYmIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogJzFweCBzb2xpZCB2YXIoLS1zZWNvbmRhcnlNYWluKScsXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZCAmJiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAndmFyKC0tcHJpbWFyeU1haW4pJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAndmFyKC0tcHJpbWFyeUNvbnRyYXN0VGV4dCknLFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgcHJlU2VsZWN0ZWQgJiYge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJ3ZhcigtLXByaW1hcnlMaWdodCknLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICd2YXIoLS1wcmltYXJ5Q29udHJhc3RUZXh0KScsXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXX1cbiAgICAgICAgICAgICAgICAgICAgey4uLmdldERhdGVQcm9wcyh7IGRhdGVPYmo6IGRhdGVPYmplY3QgfSl9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoZGlydHkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtaW4pIHNldChtaW4sIGRhdGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBzZXQoZGF0ZSwgbWF4KTtcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0KGRhdGUpO1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgb25Qb2ludGVyT3Zlcj17KCkgPT4gc2V0SG92ZXJlZChkYXRlKX1cbiAgICAgICAgICAgICAgICAgICAgb25Qb2ludGVyT3V0PXsoKSA9PiBzZXRIb3ZlcmVkKHVuZGVmaW5lZCl9XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2RhdGUuZ2V0RGF0ZSgpfVxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICkpfVxuXG4gICAgICA8ZGl2XG4gICAgICAgIGNzcz17e1xuICAgICAgICAgIG1hcmdpblRvcDogJ3ZhcigtLXNwYWNpbmcpJyxcbiAgICAgICAgICBkaXNwbGF5OiAnZ3JpZCcsXG4gICAgICAgICAgZ3JpZEF1dG9GbG93OiAnY29sdW1uJyxcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIHtyZXNvbHZlZFF1aWNrT3B0aW9uc31cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufVxuIl19 */",
|
|
949
|
+
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3NjaHVtbWFyLXRhYmxlL3NjaHVtbWFyLXRhYmxlL3NyYy9jb21wb25lbnRzL2RhdGVQaWNrZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTBYNEIiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvc2NodW1tYXItdGFibGUvc2NodW1tYXItdGFibGUvc3JjL2NvbXBvbmVudHMvZGF0ZVBpY2tlci50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRlT2JqLCB1c2VEYXl6ZWQgfSBmcm9tICdkYXl6ZWQnO1xuaW1wb3J0IHtcbiAgRnJhZ21lbnQsXG4gIFJlYWN0Tm9kZSxcbiAgY3JlYXRlQ29udGV4dCxcbiAgdXNlQ29udGV4dCxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICcuLi9ob29rcy91c2VUaGVtZSc7XG5pbXBvcnQgeyBkZWZhdWx0cyB9IGZyb20gJy4uL21pc2MvZGVmYXVsdHMnO1xuaW1wb3J0IHsgZ3JheSB9IGZyb20gJy4uL3RoZW1lL2RlZmF1bHRUaGVtZS9kZWZhdWx0Q2xhc3Nlcyc7XG5pbXBvcnQgeyB1c2VDc3NWYXJpYWJsZXMgfSBmcm9tICcuLi90aGVtZS91c2VDc3NWYXJpYWJsZXMnO1xuaW1wb3J0IHsgRGF0ZUlucHV0IH0gZnJvbSAnLi9kYXRlSW5wdXQnO1xuaW1wb3J0IHsgVGV4dCB9IGZyb20gJy4vdGV4dCc7XG5cbmV4cG9ydCB0eXBlIERhdGVSYW5nZSA9IHsgbWluOiBEYXRlOyBtYXg6IERhdGUgfTtcblxuZXhwb3J0IHR5cGUgRGF0ZVBpY2tlclF1aWNrT3B0aW9uID1cbiAgfCAndG9kYXknXG4gIHwgJ3RoaXNXZWVrJ1xuICB8ICd0aGlzTW9udGgnXG4gIHwgJ3RoaXNZZWFyJ1xuICB8ICdsYXN0U2V2ZW5EYXlzJ1xuICB8ICdsYXN0VGhpcnR5RGF5cydcbiAgfCB7IGxhYmVsOiBSZWFjdE5vZGU7IHZhbHVlOiBEYXRlIHwgRGF0ZVJhbmdlIHwgKCgpID0+IERhdGUgfCBEYXRlUmFuZ2UpIH1cbiAgfCAoKG9uQ2hhbmdlOiAodmFsdWU6IERhdGUgfCBEYXRlUmFuZ2UgfCBudWxsKSA9PiB2b2lkKSA9PiBSZWFjdE5vZGUpO1xuXG5leHBvcnQgdHlwZSBEYXRlUGlja2VyUHJvcHMgPSB7XG4gIC8qKiBDdXJyZW50bHkgc2VsZWN0ZWQgZGF5IG9yIHJhbmdlIG9mIGRheXMuICovXG4gIHZhbHVlOiBEYXRlIHwgRGF0ZVJhbmdlIHwgbnVsbDtcbiAgLyoqIENhbGxiYWNrIGZvciB3aGVuIHRoZSBkYXkgKHJhbmdlKSBjaGFuZ2VzLiAqL1xuICBvbkNoYW5nZTogKHZhbHVlOiBEYXRlIHwgRGF0ZVJhbmdlIHwgbnVsbCkgPT4gdm9pZDtcbiAgLyoqIElmIGVuYWJsZWQsIHJhbmdlcyBjYW4gYmUgc2VsZWN0ZWQuICovXG4gIHJhbmdlU2VsZWN0PzogYm9vbGVhbjtcbiAgLyoqIFdoaWNoIGxvY2FsZSB0byB1c2UgdG8gcmVuZGVyIHRoZSBjYWxlbmRhci4gKi9cbiAgbG9jYWxlPzogc3RyaW5nO1xuICAvKiogV2hpY2ggZGF5IG9mIHRoZSB3ZWVrIHNob3VsZCBiZSBpbiB0aGUgZmlyc3QgY29sdW1uLiAoMD1TdW5kYXksIDE9TW9uZGF5LCAuLi4pXG4gICAqIEBkZWZhdWx0IDFcbiAgICovXG4gIGZpcnN0RGF5T2ZXZWVrPzogMCB8IDEgfCAyIHwgMyB8IDQgfCA1IHwgNjtcbiAgLyoqIFdoaWNoIG1vbnRoIHRvIHNob3cgaW5pdGlhbGx5ICovXG4gIGRlZmF1bHREYXRlSW5WaWV3PzogRGF0ZTtcbiAgLyoqIFNob3cgYnV0dG9ucyB0byBxdWlja2x5IHNlbGVjdCBzdWdnZXN0ZWQgZGF0ZXMgb3IgZGF0ZSByYW5nZXMgKi9cbiAgcXVpY2tPcHRpb25zPzogRGF0ZVBpY2tlclF1aWNrT3B0aW9uW107XG4gIC8qKiBNaW5pbXVtIHNlbGVjdGFibGUgZGF0ZSAqL1xuICBtaW5EYXRlPzogRGF0ZTtcbiAgLyoqIE1heGltdW0gc2VsZWN0YWJsZSBkYXRlICovXG4gIG1heERhdGU/OiBEYXRlO1xuICAvKiogV2hldGhlciB0byBzaG93IHRoZSBjYWxlbmRhciB3ZWVrIGluIHRoZSBmaXJzdCBjb2x1bW4gKi9cbiAgc2hvd0NhbGVuZGFyV2Vlaz86IGJvb2xlYW47XG59O1xuXG5jb25zdCBEYXRlUGlja2VyQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8UGFydGlhbDxPbWl0PERhdGVQaWNrZXJQcm9wcywgJ3ZhbHVlJyB8ICdvbkNoYW5nZSc+Pj4oe30pO1xuXG5leHBvcnQgZnVuY3Rpb24gRGF0ZVBpY2tlclByb3ZpZGVyKHtcbiAgY2hpbGRyZW4sXG4gIC4uLnByb3BzXG59OiBQYXJ0aWFsPE9taXQ8RGF0ZVBpY2tlclByb3BzLCAndmFsdWUnIHwgJ29uQ2hhbmdlJz4+ICYgeyBjaGlsZHJlbj86IFJlYWN0Tm9kZSB9KSB7XG4gIGNvbnN0IHZhbHVlID0gdXNlTWVtbygoKSA9PiBwcm9wcywgW0pTT04uc3RyaW5naWZ5KHByb3BzKV0pO1xuXG4gIHJldHVybiA8RGF0ZVBpY2tlckNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3ZhbHVlfT57Y2hpbGRyZW59PC9EYXRlUGlja2VyQ29udGV4dC5Qcm92aWRlcj47XG59XG5cbmNvbnN0IHdlZWtEYXlzID0gWzAsIDEsIDIsIDMsIDQsIDUsIDZdIGFzIGNvbnN0O1xuXG4vKiogUm91bmRzIGEgZGF0ZSBkb3duIHRvIHRoZSBzdGFydCBvZiB0aGUgZGF5LiAqL1xuZXhwb3J0IGNvbnN0IHN0YXJ0T2ZEYXkgPSAoZDogRGF0ZSkgPT4gbmV3IERhdGUoZC5nZXRGdWxsWWVhcigpLCBkLmdldE1vbnRoKCksIGQuZ2V0RGF0ZSgpKTtcblxuLyoqIFJvdW5kcyBhIGRhdGUgdXAgdG8gdGhlIGVuZCBvZiB0aGUgZGF5LiAqL1xuZXhwb3J0IGNvbnN0IGVuZE9mRGF5ID0gKGQ6IERhdGUpID0+XG4gIG5ldyBEYXRlKGQuZ2V0RnVsbFllYXIoKSwgZC5nZXRNb250aCgpLCBkLmdldERhdGUoKSArIDEsIDAsIDAsIDAsIC0xKTtcblxuZXhwb3J0IGNvbnN0IGxhc3REYXlzID0gKGRheXM6IG51bWJlcik6IERhdGVSYW5nZSA9PiB7XG4gIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG4gIGNvbnN0IG1pbiA9IG5ldyBEYXRlKG5vdyk7XG4gIG1pbi5zZXREYXRlKG1pbi5nZXREYXRlKCkgLSBkYXlzICsgMSk7XG5cbiAgcmV0dXJuIHtcbiAgICBtaW46IHN0YXJ0T2ZEYXkobWluKSxcbiAgICBtYXg6IGVuZE9mRGF5KG5vdyksXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgdG9kYXkgPSAoKSA9PiBsYXN0RGF5cygxKTtcblxuZXhwb3J0IGNvbnN0IHRoaXNXZWVrID0gKGRlbHRhID0gMCwgZmlyc3REYXlPZldlZWsgPSAxKTogRGF0ZVJhbmdlID0+IHtcbiAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgY29uc3QgbWluID0gbmV3IERhdGUobm93KTtcblxuICBsZXQgZGlmZiA9IG1pbi5nZXREYXkoKSAtIGZpcnN0RGF5T2ZXZWVrO1xuICBpZiAoZGlmZiA8IDApIHtcbiAgICBkaWZmICs9IDc7XG4gIH1cbiAgbWluLnNldERhdGUobWluLmdldERhdGUoKSAtIGRpZmYgKyBkZWx0YSAqIDcpO1xuXG4gIGNvbnN0IG1heCA9IG5ldyBEYXRlKG1pbik7XG4gIG1heC5zZXREYXRlKG1heC5nZXREYXRlKCkgKyA2KTtcblxuICByZXR1cm4ge1xuICAgIG1pbjogc3RhcnRPZkRheShtaW4pLFxuICAgIG1heDogZW5kT2ZEYXkobWF4KSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCB0aGlzTW9udGggPSAoZGVsdGEgPSAwKTogRGF0ZVJhbmdlID0+IHtcbiAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgY29uc3QgbWluID0gbmV3IERhdGUobm93KTtcbiAgbWluLnNldERhdGUoMSk7XG4gIG1pbi5zZXRNb250aChtaW4uZ2V0TW9udGgoKSArIGRlbHRhKTtcbiAgY29uc3QgbWF4ID0gbmV3IERhdGUobWluKTtcbiAgbWF4LnNldE1vbnRoKG1heC5nZXRNb250aCgpICsgMSk7XG4gIG1heC5zZXREYXRlKG1heC5nZXREYXRlKCkgLSAxKTtcblxuICByZXR1cm4ge1xuICAgIG1pbjogc3RhcnRPZkRheShtaW4pLFxuICAgIG1heDogZW5kT2ZEYXkobWF4KSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCB0aGlzWWVhciA9IChkZWx0YSA9IDApOiBEYXRlUmFuZ2UgPT4ge1xuICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuICBjb25zdCBtaW4gPSBuZXcgRGF0ZShub3cpO1xuICBtaW4uc2V0RGF0ZSgxKTtcbiAgbWluLnNldE1vbnRoKDApO1xuICBtaW4uc2V0RnVsbFllYXIobWluLmdldEZ1bGxZZWFyKCkgKyBkZWx0YSk7XG4gIGNvbnN0IG1heCA9IG5ldyBEYXRlKG1pbik7XG4gIG1heC5zZXRGdWxsWWVhcihtYXguZ2V0RnVsbFllYXIoKSArIDEpO1xuICBtYXguc2V0RGF0ZShtYXguZ2V0RGF0ZSgpIC0gMSk7XG5cbiAgcmV0dXJuIHtcbiAgICBtaW46IHN0YXJ0T2ZEYXkobWluKSxcbiAgICBtYXg6IGVuZE9mRGF5KG1heCksXG4gIH07XG59O1xuXG5jb25zdCBNU19QRVJfREFZID0gMTAwMCAqIDYwICogNjAgKiAyNDtcbmV4cG9ydCBjb25zdCBnZXRDYWxlbmRhcldlZWsgPSAoZGF0ZTogRGF0ZSk6IG51bWJlciA9PiB7XG4gIC8vIElTTyA4NjAxOiBXZWVrIDEgaXMgdGhlIHdlZWsgd2l0aCB0aGUgZmlyc3QgVGh1cnNkYXkgb2YgdGhlIHllYXIuXG4gIC8vIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT193ZWVrX2RhdGVcblxuICBjb25zdCB5ID0gZGF0ZS5nZXRGdWxsWWVhcigpO1xuICBjb25zdCBmZG95ID0gbmV3IERhdGUoeSwgMCwgMSk7XG4gIGNvbnN0IGRveSA9IE1hdGguZmxvb3IoXG4gICAgKGRhdGUuZ2V0VGltZSgpIC0gZmRveS5nZXRUaW1lKCkgKyAoZGF0ZS5nZXRUaW1lem9uZU9mZnNldCgpIC0gZmRveS5nZXRUaW1lem9uZU9mZnNldCgpKSkgL1xuICAgICAgTVNfUEVSX0RBWSxcbiAgKTtcbiAgY29uc3QgZG93ID0gZmRveS5nZXREYXkoKTtcbiAgY29uc3QgdyA9IE1hdGguZmxvb3IoKDEwICsgZG95IC0gZG93KSAvIDcpO1xuXG4gIGlmICh3ID09PSAwKSB7XG4gICAgcmV0dXJuIGdldENhbGVuZGFyV2VlayhuZXcgRGF0ZSh5IC0gMSwgMTEsIDMxKSk7XG4gIH1cblxuICByZXR1cm4gdztcbn07XG5cbmV4cG9ydCBjb25zdCBjb21tb25RdWlja09wdGlvbnMgPSB7XG4gIHRvZGF5OiB7IGxhYmVsOiA8VGV4dCBpZD1cInRvZGF5XCIgLz4sIHZhbHVlOiB0b2RheSB9LFxuICB0aGlzV2VlazogeyBsYWJlbDogPFRleHQgaWQ9XCJ0aGlzV2Vla1wiIC8+LCB2YWx1ZTogKHByb3BzKSA9PiB0aGlzV2VlaygwLCBwcm9wcy5maXJzdERheU9mV2VlaykgfSxcbiAgdGhpc01vbnRoOiB7IGxhYmVsOiA8VGV4dCBpZD1cInRoaXNNb250aFwiIC8+LCB2YWx1ZTogKCkgPT4gdGhpc01vbnRoKCkgfSxcbiAgdGhpc1llYXI6IHsgbGFiZWw6IDxUZXh0IGlkPVwidGhpc1llYXJcIiAvPiwgdmFsdWU6ICgpID0+IHRoaXNZZWFyKCkgfSxcbiAgbGFzdFNldmVuRGF5czogeyBsYWJlbDogPFRleHQgaWQ9XCJsYXN0U2V2ZW5EYXlzXCIgLz4sIHZhbHVlOiAoKSA9PiBsYXN0RGF5cyg3KSB9LFxuICBsYXN0VGhpcnR5RGF5czogeyBsYWJlbDogPFRleHQgaWQ9XCJsYXN0VGhpcnR5RGF5c1wiIC8+LCB2YWx1ZTogKCkgPT4gbGFzdERheXMoMzApIH0sXG59IHNhdGlzZmllcyBSZWNvcmQ8XG4gIERhdGVQaWNrZXJRdWlja09wdGlvbiAmIHN0cmluZyxcbiAgeyBsYWJlbDogUmVhY3ROb2RlOyB2YWx1ZTogRGF0ZSB8IERhdGVSYW5nZSB8ICgocHJvcHM6IERhdGVQaWNrZXJQcm9wcykgPT4gRGF0ZSB8IERhdGVSYW5nZSkgfVxuPjtcblxuLyoqIFJldHVybnMgd2hldGhlciB0d28gZGF0ZXMgYW5kL29yIGRhdGUgcmFuZ2VzIGludGVyc2VjdC4gSW50ZXJzZWN0aW9uIGlzIGNvbnNpZGVyZWQgcGVyIGRheS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkYXRlSW50ZXJzZWN0KGE6IERhdGUgfCBudWxsIHwgRGF0ZVJhbmdlLCBiOiBEYXRlIHwgbnVsbCB8IERhdGVSYW5nZSkge1xuICBpZiAoYSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICBhID0geyBtaW46IGEsIG1heDogYSB9O1xuICB9XG4gIGlmIChiIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgIGIgPSB7IG1pbjogYiwgbWF4OiBiIH07XG4gIH1cblxuICBpZiAoIWE/Lm1pbiB8fCAhYS5tYXggfHwgIWI/Lm1pbiB8fCAhYi5tYXgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gIShlbmRPZkRheShhLm1heCkgPCBzdGFydE9mRGF5KGIubWluKSB8fCBzdGFydE9mRGF5KGEubWluKSA+IGVuZE9mRGF5KGIubWF4KSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkYXRlQ2xhbXAoZGF0ZTogRGF0ZSwgbWluPzogRGF0ZSwgbWF4PzogRGF0ZSkge1xuICBpZiAobWluICYmIGRhdGUgPCBtaW4pIHtcbiAgICByZXR1cm4gbWluO1xuICB9XG5cbiAgaWYgKG1heCAmJiBkYXRlID4gbWF4KSB7XG4gICAgcmV0dXJuIG1heDtcbiAgfVxuXG4gIHJldHVybiBkYXRlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gRGF0ZVBpY2tlcihwcm9wczogRGF0ZVBpY2tlclByb3BzKSB7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KERhdGVQaWNrZXJDb250ZXh0KTtcblxuICBjb25zdCB7XG4gICAgdmFsdWUsXG4gICAgcmFuZ2VTZWxlY3QsXG4gICAgbG9jYWxlLFxuICAgIGZpcnN0RGF5T2ZXZWVrID0gMSxcbiAgICBkZWZhdWx0RGF0ZUluVmlldyxcbiAgICBxdWlja09wdGlvbnMgPSBbJ3RvZGF5JywgJ3RoaXNXZWVrJ10sXG4gICAgbWluRGF0ZSxcbiAgICBtYXhEYXRlLFxuICAgIHNob3dDYWxlbmRhcldlZWssXG4gIH0gPSBkZWZhdWx0czxEYXRlUGlja2VyUHJvcHM+KHByb3BzLCBjb250ZXh0KTtcblxuICBmdW5jdGlvbiBvbkNoYW5nZSh2YWx1ZTogRGF0ZSB8IERhdGVSYW5nZSB8IG51bGwpIHtcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICB2YWx1ZSA9IGRhdGVDbGFtcCh2YWx1ZSwgbWluRGF0ZSwgbWF4RGF0ZSk7XG4gICAgfSBlbHNlIGlmICh2YWx1ZSkge1xuICAgICAgdmFsdWUgPSB7XG4gICAgICAgIG1pbjogZGF0ZUNsYW1wKHZhbHVlLm1pbiwgbWluRGF0ZSwgbWF4RGF0ZSksXG4gICAgICAgIG1heDogZGF0ZUNsYW1wKHZhbHVlLm1heCwgbWluRGF0ZSwgbWF4RGF0ZSksXG4gICAgICB9O1xuICAgIH1cblxuICAgIHByb3BzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgfVxuXG4gIGNvbnN0IEJ1dHRvbiA9IHVzZVRoZW1lKCh0KSA9PiB0LmNvbXBvbmVudHMuQnV0dG9uKTtcbiAgY29uc3QgSWNvbkJ1dHRvbiA9IHVzZVRoZW1lKCh0KSA9PiB0LmNvbXBvbmVudHMuSWNvbkJ1dHRvbik7XG4gIGNvbnN0IENoZXZyb25SaWdodCA9IHVzZVRoZW1lKCh0KSA9PiB0Lmljb25zLkNoZXZyb25SaWdodCk7XG4gIGNvbnN0IGNzc1ZhcmlhYmxlcyA9IHVzZUNzc1ZhcmlhYmxlcygpO1xuXG4gIGNvbnN0IG1vdW50VGltZSA9IHVzZU1lbW8oKCkgPT4gbmV3IERhdGUoKSwgW10pO1xuICBjb25zdCBbZGF0ZUluVmlldywgc2V0RGF0ZUluVmlld10gPSB1c2VTdGF0ZTxEYXRlPihkZWZhdWx0RGF0ZUluVmlldyA/PyBtb3VudFRpbWUpO1xuICBjb25zdCBbZGlydHksIHNldERpcnR5XSA9IHVzZVN0YXRlPFBhcnRpYWw8RGF0ZVJhbmdlPj4oKTtcbiAgY29uc3QgW2hvdmVyZWQsIHNldEhvdmVyZWRdID0gdXNlU3RhdGU8RGF0ZT4oKTtcblxuICBjb25zdCBtaW4gPSBkaXJ0eSA/IGRpcnR5Lm1pbiA6IHZhbHVlIGluc3RhbmNlb2YgRGF0ZSA/IHZhbHVlIDogdmFsdWU/Lm1pbjtcbiAgY29uc3QgbWF4ID0gZGlydHkgPyBkaXJ0eS5tYXggOiB2YWx1ZSBpbnN0YW5jZW9mIERhdGUgPyB2YWx1ZSA6IHZhbHVlPy5tYXg7XG5cbiAgY29uc3QgcmVzb2x2ZWRRdWlja09wdGlvbnMgPSBbLi4ucXVpY2tPcHRpb25zLCB7IGxhYmVsOiA8VGV4dCBpZD1cInJlc2V0XCIgLz4sIHZhbHVlOiBudWxsIH1dLm1hcChcbiAgICAob3B0aW9uLCBpbmRleCkgPT4ge1xuICAgICAgaWYgKG9wdGlvbiBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG4gICAgICAgIHJldHVybiBvcHRpb24oKHZhbHVlKSA9PiB7XG4gICAgICAgICAgc2V0RGlydHkodW5kZWZpbmVkKTtcbiAgICAgICAgICBvbkNoYW5nZSh2YWx1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB7IGxhYmVsLCB2YWx1ZSB9ID0gdHlwZW9mIG9wdGlvbiA9PT0gJ3N0cmluZycgPyBjb21tb25RdWlja09wdGlvbnNbb3B0aW9uXSA6IG9wdGlvbjtcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPEJ1dHRvblxuICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgdmFyaWFudD1cInRleHRcIlxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIHNldERpcnR5KHVuZGVmaW5lZCk7XG5cbiAgICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG4gICAgICAgICAgICAgIG9uQ2hhbmdlKHZhbHVlKHByb3BzKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBvbkNoYW5nZSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgPC9CdXR0b24+XG4gICAgICApO1xuICAgIH0sXG4gICk7XG5cbiAgY29uc3QgeyBjYWxlbmRhcnMsIGdldEJhY2tQcm9wcywgZ2V0Rm9yd2FyZFByb3BzLCBnZXREYXRlUHJvcHMgfSA9IHVzZURheXplZCh7XG4gICAgb25EYXRlU2VsZWN0ZWQ6ICgpID0+IHVuZGVmaW5lZCxcbiAgICBmaXJzdERheU9mV2VlayxcbiAgICBzaG93T3V0c2lkZURheXM6IHRydWUsXG4gICAgZGF0ZTogZGF0ZUluVmlldyxcbiAgICBvbk9mZnNldENoYW5nZWQ6IChvZmZzZXQpID0+XG4gICAgICBzZXREYXRlSW5WaWV3KG5ldyBEYXRlKGRhdGVJblZpZXcuZ2V0RnVsbFllYXIoKSwgZGF0ZUluVmlldy5nZXRNb250aCgpICsgb2Zmc2V0KSksXG4gICAgb2Zmc2V0OiAwLFxuICAgIG1pbkRhdGUsXG4gICAgbWF4RGF0ZSxcbiAgfSk7XG4gIGNvbnN0IG5vdyA9IHVzZU1lbW8oKCkgPT4gc3RhcnRPZkRheShuZXcgRGF0ZSgpKSwgW10pO1xuXG4gIGNvbnN0IGZvcm1hdFdlZWtkYXkgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCB7IGZvcm1hdCB9ID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQobG9jYWxlLCB7IHdlZWtkYXk6ICdzaG9ydCcgfSk7XG4gICAgcmV0dXJuICh3ZWVrRGF5OiBudW1iZXIpID0+XG4gICAgICBmb3JtYXQobmV3IERhdGUoRGF0ZS5VVEMoMjAyMSwgNywgKCh3ZWVrRGF5ICsgZmlyc3REYXlPZldlZWspICUgNykgKyAxKSkpO1xuICB9LCBbbG9jYWxlLCBmaXJzdERheU9mV2Vla10pO1xuXG4gIHVzZUVmZmVjdChcbiAgICAoKSA9PlxuICAgICAgc2V0RGF0ZUluVmlldyhcbiAgICAgICAgdmFsdWUgPT09IG51bGwgPyBkZWZhdWx0RGF0ZUluVmlldyA/PyBtb3VudFRpbWUgOiB2YWx1ZSBpbnN0YW5jZW9mIERhdGUgPyB2YWx1ZSA6IHZhbHVlLm1heCxcbiAgICAgICksXG4gICAgW3ZhbHVlLCBkZWZhdWx0RGF0ZUluVmlldywgbW91bnRUaW1lXSxcbiAgKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghcmFuZ2VTZWxlY3QpIHtcbiAgICAgIHNldERpcnR5KHVuZGVmaW5lZCk7XG4gICAgfVxuICB9LCBbcmFuZ2VTZWxlY3RdKTtcblxuICBmdW5jdGlvbiBzZXQobWluPzogRGF0ZSwgbWF4PzogRGF0ZSwgZWRpdD86ICdtaW4nIHwgJ21heCcpIHtcbiAgICBpZiAoIXJhbmdlU2VsZWN0KSB7XG4gICAgICBvbkNoYW5nZShtaW4gPz8gbnVsbCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKG1pbiAmJiBtYXggJiYgbWluID4gbWF4KSB7XG4gICAgICBpZiAoZWRpdCA9PT0gJ21pbicpIHtcbiAgICAgICAgbWF4ID0gbWluO1xuICAgICAgfSBlbHNlIGlmIChlZGl0ID09PSAnbWF4Jykge1xuICAgICAgICBtaW4gPSBtYXg7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBbbWluLCBtYXhdID0gW21heCwgbWluXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIW1pbiA9PT0gIW1heCkge1xuICAgICAgc2V0RGlydHkodW5kZWZpbmVkKTtcbiAgICAgIG9uQ2hhbmdlKG1pbiAmJiBtYXggPyB7IG1pbiwgbWF4OiBlbmRPZkRheShtYXgpIH0gOiBudWxsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0RGlydHkoeyBtaW4sIG1heCB9KTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBmb3JtYXRNb250aCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHsgZm9ybWF0IH0gPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NhbGUsIHsgbW9udGg6ICdsb25nJyB9KTtcbiAgICByZXR1cm4gKG1vbnRoOiBudW1iZXIpID0+IGZvcm1hdChuZXcgRGF0ZSgyMDIxLCBtb250aCkpO1xuICB9LCBbbG9jYWxlXSk7XG5cbiAgY29uc3QgZm9ybWF0WWVhciA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHsgZm9ybWF0IH0gPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NhbGUsIHsgeWVhcjogJ251bWVyaWMnIH0pO1xuICAgIHJldHVybiAoeWVhcjogbnVtYmVyKSA9PiBmb3JtYXQobmV3IERhdGUoeWVhciwgMCwgMSkpO1xuICB9LCBbbG9jYWxlXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNzcz17Y3NzVmFyaWFibGVzfT5cbiAgICAgIDxkaXZcbiAgICAgICAgY3NzPXt7XG4gICAgICAgICAgZGlzcGxheTogJ2dyaWQnLFxuICAgICAgICAgIGdyaWRBdXRvRmxvdzogJ2NvbHVtbicsXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgIGFsaWduSXRlbXM6ICdiYXNlbGluZScsXG4gICAgICAgICAgZ2FwOiAndmFyKC0tc3BhY2luZyknLFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8RGF0ZUlucHV0XG4gICAgICAgICAgdmFsdWU9e21pbiA/PyBudWxsfVxuICAgICAgICAgIG9uQ2hhbmdlPXsoZGF0ZSkgPT4gc2V0KGRhdGUgPz8gdW5kZWZpbmVkLCBtYXgsICdtaW4nKX1cbiAgICAgICAgICBsb2NhbGU9e2xvY2FsZX1cbiAgICAgICAgLz5cblxuICAgICAgICB7cmFuZ2VTZWxlY3QgJiYgKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICB7JyAtICd9XG4gICAgICAgICAgICA8RGF0ZUlucHV0XG4gICAgICAgICAgICAgIHZhbHVlPXttYXggPz8gbnVsbH1cbiAgICAgICAgICAgICAgb25DaGFuZ2U9eyhkYXRlKSA9PiBzZXQobWluLCBkYXRlID8/IHVuZGVmaW5lZCwgJ21heCcpfVxuICAgICAgICAgICAgICBsb2NhbGU9e2xvY2FsZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cblxuICAgICAge2NhbGVuZGFycy5tYXAoKHsgbW9udGgsIHllYXIsIHdlZWtzIH0pID0+IChcbiAgICAgICAgPGRpdiBrZXk9e2Ake21vbnRofSR7eWVhcn1gfSBjc3M9e3sgZGlzcGxheTogJ2dyaWQnIH19PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNzcz17e1xuICAgICAgICAgICAgICBtYXJnaW46ICdjYWxjKHZhcigtLXNwYWNpbmcpICogNCkgMCcsXG4gICAgICAgICAgICAgIGRpc3BsYXk6ICdncmlkJyxcbiAgICAgICAgICAgICAgZ3JpZEF1dG9GbG93OiAnY29sdW1uJyxcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1iZXR3ZWVuJyxcbiAgICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxJY29uQnV0dG9uIHsuLi5nZXRCYWNrUHJvcHMoeyBjYWxlbmRhcnMgfSl9PlxuICAgICAgICAgICAgICA8Q2hldnJvblJpZ2h0IGNzcz17eyB0cmFuc2Zvcm06ICdyb3RhdGUzZCgwLCAwLCAxLCAxODBkZWcpJyB9fSAvPlxuICAgICAgICAgICAgPC9JY29uQnV0dG9uPlxuXG4gICAgICAgICAgICA8ZGl2IGNzcz17eyBkaXNwbGF5OiAnZmxleCcgfX0+XG4gICAgICAgICAgICAgIHtmb3JtYXRNb250aChtb250aCl9IHtmb3JtYXRZZWFyKHllYXIpfVxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxJY29uQnV0dG9uIHsuLi5nZXRGb3J3YXJkUHJvcHMoeyBjYWxlbmRhcnMgfSl9PlxuICAgICAgICAgICAgICA8Q2hldnJvblJpZ2h0IC8+XG4gICAgICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjc3M9e3tcbiAgICAgICAgICAgICAganVzdGlmeVNlbGY6ICdjZW50ZXInLFxuICAgICAgICAgICAgICBkaXNwbGF5OiAnZ3JpZCcsXG4gICAgICAgICAgICAgIGdyaWRUZW1wbGF0ZUNvbHVtbnM6ICdyZXBlYXQoOCwgbWF4LWNvbnRlbnQpJyxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3Nob3dDYWxlbmRhcldlZWsgPyAoXG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjc3M9e3tcbiAgICAgICAgICAgICAgICAgIGp1c3RpZnlTZWxmOiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEwLFxuICAgICAgICAgICAgICAgICAgYm9yZGVyUmlnaHQ6IGAxcHggc29saWQgJHtncmF5fWAsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxUZXh0IGlkPVwiY2FsZW5kYXJXZWVrXCIgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8ZGl2IC8+XG4gICAgICAgICAgICApfVxuXG4gICAgICAgICAgICB7d2Vla0RheXMubWFwKChfdiwgd2Vla0RheSkgPT4gKFxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAga2V5PXt3ZWVrRGF5fVxuICAgICAgICAgICAgICAgIGNzcz17e1xuICAgICAgICAgICAgICAgICAganVzdGlmeVNlbGY6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgICAgcGFkZGluZzogMTAsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtmb3JtYXRXZWVrZGF5KHdlZWtEYXkpfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICkpfVxuXG4gICAgICAgICAgICB7d2Vla3MubWFwKCh3ZWVrLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB3ZWVrU3RhcnQgPSB3ZWVrWzBdIGFzIERhdGVPYmo7XG4gICAgICAgICAgICAgIGNvbnN0IHdlZWtFbmQgPSB3ZWVrWzZdIGFzIERhdGVPYmo7XG4gICAgICAgICAgICAgIGNvbnN0IHdlZWtEaXNhYmxlZCA9XG4gICAgICAgICAgICAgICAgIXJhbmdlU2VsZWN0IHx8XG4gICAgICAgICAgICAgICAgKG1pbkRhdGUgJiYgd2Vla0VuZC5kYXRlIDwgbWluRGF0ZSkgfHxcbiAgICAgICAgICAgICAgICAobWF4RGF0ZSAmJiB3ZWVrU3RhcnQuZGF0ZSA+IG1heERhdGUpO1xuXG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPEZyYWdtZW50IGtleT17aW5kZXh9PlxuICAgICAgICAgICAgICAgICAge3Nob3dDYWxlbmRhcldlZWsgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICBjc3M9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEwLFxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAnbm9uZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAndHJhbnNwYXJlbnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiB3ZWVrRGlzYWJsZWQgPyB1bmRlZmluZWQgOiAncG9pbnRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250OiAnaW5oZXJpdCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJSaWdodDogYDFweCBzb2xpZCAke2dyYXl9YCxcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3ZWVrRGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtaW4gPSBtaW5EYXRlICYmIHdlZWtTdGFydC5kYXRlIDwgbWluRGF0ZSA/IG1pbkRhdGUgOiB3ZWVrU3RhcnQuZGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1heCA9IG1heERhdGUgJiYgd2Vla0VuZC5kYXRlID4gbWF4RGF0ZSA/IG1heERhdGUgOiB3ZWVrRW5kLmRhdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXQobWluLCBtYXgpO1xuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7Z2V0Q2FsZW5kYXJXZWVrKCh3ZWVrWzBdIGFzIERhdGVPYmopLmRhdGUpfVxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgLz5cbiAgICAgICAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgICAgICAgIHt3ZWVrLm1hcCgoZGF0ZU9iamVjdCwgZGF5SW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFkYXRlT2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxkaXYga2V5PXtkYXlJbmRleH0gLz47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHByZXZNb250aCwgbmV4dE1vbnRoLCBkYXRlIH0gPSBkYXRlT2JqZWN0O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0b2RheSA9IHN0YXJ0T2ZEYXkoZGF0ZSkuZ2V0VGltZSgpID09PSBub3cuZ2V0VGltZSgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkaXNhYmxlZCA9IChtaW5EYXRlICYmIGRhdGUgPCBtaW5EYXRlKSB8fCAobWF4RGF0ZSAmJiBkYXRlID4gbWF4RGF0ZSk7XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPVxuICAgICAgICAgICAgICAgICAgICAgIGRhdGUuZ2V0VGltZSgpID09PSBtaW4/LmdldFRpbWUoKSB8fFxuICAgICAgICAgICAgICAgICAgICAgIChtaW4gJiYgbWF4ICYmIGRhdGVJbnRlcnNlY3QoZGF0ZSwgeyBtaW4sIG1heCB9KSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHByZVNlbGVjdGVkID1cbiAgICAgICAgICAgICAgICAgICAgICAhc2VsZWN0ZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAhZGlzYWJsZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAoZGF0ZS5nZXRUaW1lKCkgPT09IGhvdmVyZWQ/LmdldFRpbWUoKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgKG1pbiAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAhbWF4ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGhvdmVyZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZUludGVyc2VjdChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbiA8PSBob3ZlcmVkID8geyBtaW4sIG1heDogaG92ZXJlZCB9IDogeyBtaW46IGhvdmVyZWQsIG1heDogbWluIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICkpKTtcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YCR7aW5kZXh9LSR7ZGF5SW5kZXh9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17W1xuICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMTAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAnbm9uZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJ3RyYW5zcGFyZW50JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IGRpc2FibGVkID8gdW5kZWZpbmVkIDogJ3BvaW50ZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQ6ICdpbmhlcml0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKHByZXZNb250aCB8fCBuZXh0TW9udGgpICYmIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogZ3JheSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kYXkgJiYge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dGxpbmU6ICcxcHggc29saWQgdmFyKC0tc2Vjb25kYXJ5TWFpbiknLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZCAmJiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJ3ZhcigtLXByaW1hcnlNYWluKScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICd2YXIoLS1wcmltYXJ5Q29udHJhc3RUZXh0KScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByZVNlbGVjdGVkICYmIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAndmFyKC0tcHJpbWFyeUxpZ2h0KScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICd2YXIoLS1wcmltYXJ5Q29udHJhc3RUZXh0KScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBdfVxuICAgICAgICAgICAgICAgICAgICAgICAgey4uLmdldERhdGVQcm9wcyh7IGRhdGVPYmo6IGRhdGVPYmplY3QgfSl9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkaXJ0eSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtaW4pIHNldChtaW4sIGRhdGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugc2V0KGRhdGUsIG1heCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0KGRhdGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgb25Qb2ludGVyT3Zlcj17KCkgPT4gc2V0SG92ZXJlZChkYXRlKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uUG9pbnRlck91dD17KCkgPT4gc2V0SG92ZXJlZCh1bmRlZmluZWQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtkYXRlLmdldERhdGUoKX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgIDwvRnJhZ21lbnQ+XG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICApKX1cblxuICAgICAgPGRpdlxuICAgICAgICBjc3M9e3tcbiAgICAgICAgICBtYXJnaW5Ub3A6ICd2YXIoLS1zcGFjaW5nKScsXG4gICAgICAgICAgZGlzcGxheTogJ2dyaWQnLFxuICAgICAgICAgIGdyaWRBdXRvRmxvdzogJ2NvbHVtbicsXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICB7cmVzb2x2ZWRRdWlja09wdGlvbnN9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cbiJdfQ== */",
|
|
926
950
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__$d
|
|
927
951
|
};
|
|
928
952
|
var _ref5$2 = process.env.NODE_ENV === "production" ? {
|
|
@@ -931,25 +955,25 @@ var _ref5$2 = process.env.NODE_ENV === "production" ? {
|
|
|
931
955
|
} : {
|
|
932
956
|
name: "g57uq1-DatePicker",
|
|
933
957
|
styles: "display:flex;label:DatePicker;",
|
|
934
|
-
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3NjaHVtbWFyLXRhYmxlL3NjaHVtbWFyLXRhYmxlL3NyYy9jb21wb25lbnRzL2RhdGVQaWNrZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThVaUIiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvc2NodW1tYXItdGFibGUvc2NodW1tYXItdGFibGUvc3JjL2NvbXBvbmVudHMvZGF0ZVBpY2tlci50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VEYXl6ZWQgfSBmcm9tICdkYXl6ZWQnO1xuaW1wb3J0IHR5cGUgeyBSZWFjdE5vZGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICcuLi9ob29rcy91c2VUaGVtZSc7XG5pbXBvcnQgeyBncmF5IH0gZnJvbSAnLi4vdGhlbWUvZGVmYXVsdFRoZW1lL2RlZmF1bHRDbGFzc2VzJztcbmltcG9ydCB7IHVzZUNzc1ZhcmlhYmxlcyB9IGZyb20gJy4uL3RoZW1lL3VzZUNzc1ZhcmlhYmxlcyc7XG5pbXBvcnQgeyBEYXRlSW5wdXQgfSBmcm9tICcuL2RhdGVJbnB1dCc7XG5pbXBvcnQgeyBUZXh0IH0gZnJvbSAnLi90ZXh0JztcblxuZXhwb3J0IHR5cGUgRGF0ZVJhbmdlID0geyBtaW46IERhdGU7IG1heDogRGF0ZSB9O1xuXG5leHBvcnQgdHlwZSBEYXRlUGlja2VyUXVpY2tPcHRpb24gPVxuICB8ICd0b2RheSdcbiAgfCAndGhpc1dlZWsnXG4gIHwgJ3RoaXNNb250aCdcbiAgfCAndGhpc1llYXInXG4gIHwgJ2xhc3RTZXZlbkRheXMnXG4gIHwgJ2xhc3RUaGlydHlEYXlzJ1xuICB8IHsgbGFiZWw6IFJlYWN0Tm9kZTsgdmFsdWU6IERhdGUgfCBEYXRlUmFuZ2UgfCAoKCkgPT4gRGF0ZSB8IERhdGVSYW5nZSkgfVxuICB8ICgob25DaGFuZ2U6ICh2YWx1ZTogRGF0ZSB8IERhdGVSYW5nZSB8IG51bGwpID0+IHZvaWQpID0+IFJlYWN0Tm9kZSk7XG5cbmV4cG9ydCB0eXBlIERhdGVQaWNrZXJQcm9wcyA9IHtcbiAgLyoqIEN1cnJlbnRseSBzZWxlY3RlZCBkYXkgb3IgcmFuZ2Ugb2YgZGF5cy4gKi9cbiAgdmFsdWU6IERhdGUgfCBEYXRlUmFuZ2UgfCBudWxsO1xuICAvKiogQ2FsbGJhY2sgZm9yIHdoZW4gdGhlIGRheSAocmFuZ2UpIGNoYW5nZXMuICovXG4gIG9uQ2hhbmdlOiAodmFsdWU6IERhdGUgfCBEYXRlUmFuZ2UgfCBudWxsKSA9PiB2b2lkO1xuICAvKiogSWYgZW5hYmxlZCwgcmFuZ2VzIGNhbiBiZSBzZWxlY3RlZC4gKi9cbiAgcmFuZ2VTZWxlY3Q/OiBib29sZWFuO1xuICAvKiogV2hpY2ggbG9jYWxlIHRvIHVzZSB0byByZW5kZXIgdGhlIGNhbGVuZGFyLiAqL1xuICBsb2NhbGU/OiBzdHJpbmc7XG4gIC8qKiBXaGljaCBkYXkgb2YgdGhlIHdlZWsgc2hvdWxkIGJlIGluIHRoZSBmaXJzdCBjb2x1bW4uICgwPVN1bmRheSwgMT1Nb25kYXksIC4uLilcbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgZmlyc3REYXlPZldlZWs/OiAwIHwgMSB8IDIgfCAzIHwgNCB8IDUgfCA2O1xuICAvKiogV2hpY2ggbW9udGggdG8gc2hvdyBpbml0aWFsbHkgKi9cbiAgZGVmYXVsdERhdGVJblZpZXc/OiBEYXRlO1xuICAvKiogU2hvdyBidXR0b25zIHRvIHF1aWNrbHkgc2VsZWN0IHN1Z2dlc3RlZCBkYXRlcyBvciBkYXRlIHJhbmdlcyAqL1xuICBxdWlja09wdGlvbnM/OiBEYXRlUGlja2VyUXVpY2tPcHRpb25bXTtcbiAgbWluRGF0ZT86IERhdGU7XG4gIG1heERhdGU/OiBEYXRlO1xufTtcblxuY29uc3Qgd2Vla0RheXMgPSBbMCwgMSwgMiwgMywgNCwgNSwgNl0gYXMgY29uc3Q7XG5cbi8qKiBSb3VuZHMgYSBkYXRlIGRvd24gdG8gdGhlIHN0YXJ0IG9mIHRoZSBkYXkuICovXG5leHBvcnQgY29uc3Qgc3RhcnRPZkRheSA9IChkOiBEYXRlKSA9PiBuZXcgRGF0ZShkLmdldEZ1bGxZZWFyKCksIGQuZ2V0TW9udGgoKSwgZC5nZXREYXRlKCkpO1xuXG4vKiogUm91bmRzIGEgZGF0ZSB1cCB0byB0aGUgZW5kIG9mIHRoZSBkYXkuICovXG5leHBvcnQgY29uc3QgZW5kT2ZEYXkgPSAoZDogRGF0ZSkgPT5cbiAgbmV3IERhdGUoZC5nZXRGdWxsWWVhcigpLCBkLmdldE1vbnRoKCksIGQuZ2V0RGF0ZSgpICsgMSwgMCwgMCwgMCwgLTEpO1xuXG5leHBvcnQgY29uc3QgbGFzdERheXMgPSAoZGF5czogbnVtYmVyKTogRGF0ZVJhbmdlID0+IHtcbiAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgY29uc3QgbWluID0gbmV3IERhdGUobm93KTtcbiAgbWluLnNldERhdGUobWluLmdldERhdGUoKSAtIGRheXMgKyAxKTtcblxuICByZXR1cm4ge1xuICAgIG1pbjogc3RhcnRPZkRheShtaW4pLFxuICAgIG1heDogZW5kT2ZEYXkobm93KSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCB0b2RheSA9ICgpID0+IGxhc3REYXlzKDEpO1xuXG5leHBvcnQgY29uc3QgdGhpc1dlZWsgPSAoZGVsdGEgPSAwLCBmaXJzdERheU9mV2VlayA9IDEpOiBEYXRlUmFuZ2UgPT4ge1xuICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuICBjb25zdCBtaW4gPSBuZXcgRGF0ZShub3cpO1xuXG4gIGxldCBkaWZmID0gbWluLmdldERheSgpIC0gZmlyc3REYXlPZldlZWs7XG4gIGlmIChkaWZmIDwgMCkge1xuICAgIGRpZmYgKz0gNztcbiAgfVxuICBtaW4uc2V0RGF0ZShtaW4uZ2V0RGF0ZSgpIC0gZGlmZiArIGRlbHRhICogNyk7XG5cbiAgY29uc3QgbWF4ID0gbmV3IERhdGUobWluKTtcbiAgbWF4LnNldERhdGUobWF4LmdldERhdGUoKSArIDYpO1xuXG4gIHJldHVybiB7XG4gICAgbWluOiBzdGFydE9mRGF5KG1pbiksXG4gICAgbWF4OiBlbmRPZkRheShtYXgpLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHRoaXNNb250aCA9IChkZWx0YSA9IDApOiBEYXRlUmFuZ2UgPT4ge1xuICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuICBjb25zdCBtaW4gPSBuZXcgRGF0ZShub3cpO1xuICBtaW4uc2V0RGF0ZSgxKTtcbiAgbWluLnNldE1vbnRoKG1pbi5nZXRNb250aCgpICsgZGVsdGEpO1xuICBjb25zdCBtYXggPSBuZXcgRGF0ZShtaW4pO1xuICBtYXguc2V0TW9udGgobWF4LmdldE1vbnRoKCkgKyAxKTtcbiAgbWF4LnNldERhdGUobWF4LmdldERhdGUoKSAtIDEpO1xuXG4gIHJldHVybiB7XG4gICAgbWluOiBzdGFydE9mRGF5KG1pbiksXG4gICAgbWF4OiBlbmRPZkRheShtYXgpLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHRoaXNZZWFyID0gKGRlbHRhID0gMCk6IERhdGVSYW5nZSA9PiB7XG4gIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG4gIGNvbnN0IG1pbiA9IG5ldyBEYXRlKG5vdyk7XG4gIG1pbi5zZXREYXRlKDEpO1xuICBtaW4uc2V0TW9udGgoMCk7XG4gIG1pbi5zZXRGdWxsWWVhcihtaW4uZ2V0RnVsbFllYXIoKSArIGRlbHRhKTtcbiAgY29uc3QgbWF4ID0gbmV3IERhdGUobWluKTtcbiAgbWF4LnNldEZ1bGxZZWFyKG1heC5nZXRGdWxsWWVhcigpICsgMSk7XG4gIG1heC5zZXREYXRlKG1heC5nZXREYXRlKCkgLSAxKTtcblxuICByZXR1cm4ge1xuICAgIG1pbjogc3RhcnRPZkRheShtaW4pLFxuICAgIG1heDogZW5kT2ZEYXkobWF4KSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBjb21tb25RdWlja09wdGlvbnMgPSB7XG4gIHRvZGF5OiB7IGxhYmVsOiA8VGV4dCBpZD1cInRvZGF5XCIgLz4sIHZhbHVlOiB0b2RheSB9LFxuICB0aGlzV2VlazogeyBsYWJlbDogPFRleHQgaWQ9XCJ0aGlzV2Vla1wiIC8+LCB2YWx1ZTogKHByb3BzKSA9PiB0aGlzV2VlaygwLCBwcm9wcy5maXJzdERheU9mV2VlaykgfSxcbiAgdGhpc01vbnRoOiB7IGxhYmVsOiA8VGV4dCBpZD1cInRoaXNNb250aFwiIC8+LCB2YWx1ZTogKCkgPT4gdGhpc01vbnRoKCkgfSxcbiAgdGhpc1llYXI6IHsgbGFiZWw6IDxUZXh0IGlkPVwidGhpc1llYXJcIiAvPiwgdmFsdWU6ICgpID0+IHRoaXNZZWFyKCkgfSxcbiAgbGFzdFNldmVuRGF5czogeyBsYWJlbDogPFRleHQgaWQ9XCJsYXN0U2V2ZW5EYXlzXCIgLz4sIHZhbHVlOiAoKSA9PiBsYXN0RGF5cyg3KSB9LFxuICBsYXN0VGhpcnR5RGF5czogeyBsYWJlbDogPFRleHQgaWQ9XCJsYXN0VGhpcnR5RGF5c1wiIC8+LCB2YWx1ZTogKCkgPT4gbGFzdERheXMoMzApIH0sXG59IHNhdGlzZmllcyBSZWNvcmQ8XG4gIERhdGVQaWNrZXJRdWlja09wdGlvbiAmIHN0cmluZyxcbiAgeyBsYWJlbDogUmVhY3ROb2RlOyB2YWx1ZTogRGF0ZSB8IERhdGVSYW5nZSB8ICgocHJvcHM6IERhdGVQaWNrZXJQcm9wcykgPT4gRGF0ZSB8IERhdGVSYW5nZSkgfVxuPjtcblxuLyoqIFJldHVybnMgd2hldGhlciB0d28gZGF0ZXMgYW5kL29yIGRhdGUgcmFuZ2VzIGludGVyc2VjdC4gSW50ZXJzZWN0aW9uIGlzIGNvbnNpZGVyZWQgcGVyIGRheS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkYXRlSW50ZXJzZWN0KGE6IERhdGUgfCBudWxsIHwgRGF0ZVJhbmdlLCBiOiBEYXRlIHwgbnVsbCB8IERhdGVSYW5nZSkge1xuICBpZiAoYSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICBhID0geyBtaW46IGEsIG1heDogYSB9O1xuICB9XG4gIGlmIChiIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgIGIgPSB7IG1pbjogYiwgbWF4OiBiIH07XG4gIH1cblxuICBpZiAoIWE/Lm1pbiB8fCAhYS5tYXggfHwgIWI/Lm1pbiB8fCAhYi5tYXgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gIShlbmRPZkRheShhLm1heCkgPCBzdGFydE9mRGF5KGIubWluKSB8fCBzdGFydE9mRGF5KGEubWluKSA+IGVuZE9mRGF5KGIubWF4KSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkYXRlQ2xhbXAoZGF0ZTogRGF0ZSwgbWluPzogRGF0ZSwgbWF4PzogRGF0ZSkge1xuICBpZiAobWluICYmIGRhdGUgPCBtaW4pIHtcbiAgICByZXR1cm4gbWluO1xuICB9XG5cbiAgaWYgKG1heCAmJiBkYXRlID4gbWF4KSB7XG4gICAgcmV0dXJuIG1heDtcbiAgfVxuXG4gIHJldHVybiBkYXRlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gRGF0ZVBpY2tlcihwcm9wczogRGF0ZVBpY2tlclByb3BzKSB7XG4gIGNvbnN0IHtcbiAgICB2YWx1ZSxcbiAgICByYW5nZVNlbGVjdCxcbiAgICBsb2NhbGUsXG4gICAgZmlyc3REYXlPZldlZWsgPSAxLFxuICAgIGRlZmF1bHREYXRlSW5WaWV3LFxuICAgIHF1aWNrT3B0aW9ucyA9IFsndG9kYXknLCAndGhpc1dlZWsnXSxcbiAgICBtaW5EYXRlLFxuICAgIG1heERhdGUsXG4gIH0gPSBwcm9wcztcblxuICBmdW5jdGlvbiBvbkNoYW5nZSh2YWx1ZTogRGF0ZSB8IERhdGVSYW5nZSB8IG51bGwpIHtcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICB2YWx1ZSA9IGRhdGVDbGFtcCh2YWx1ZSwgbWluRGF0ZSwgbWF4RGF0ZSk7XG4gICAgfSBlbHNlIGlmICh2YWx1ZSkge1xuICAgICAgdmFsdWUgPSB7XG4gICAgICAgIG1pbjogZGF0ZUNsYW1wKHZhbHVlLm1pbiwgbWluRGF0ZSwgbWF4RGF0ZSksXG4gICAgICAgIG1heDogZGF0ZUNsYW1wKHZhbHVlLm1heCwgbWluRGF0ZSwgbWF4RGF0ZSksXG4gICAgICB9O1xuICAgIH1cblxuICAgIHByb3BzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgfVxuXG4gIGNvbnN0IEJ1dHRvbiA9IHVzZVRoZW1lKCh0KSA9PiB0LmNvbXBvbmVudHMuQnV0dG9uKTtcbiAgY29uc3QgSWNvbkJ1dHRvbiA9IHVzZVRoZW1lKCh0KSA9PiB0LmNvbXBvbmVudHMuSWNvbkJ1dHRvbik7XG4gIGNvbnN0IENoZXZyb25SaWdodCA9IHVzZVRoZW1lKCh0KSA9PiB0Lmljb25zLkNoZXZyb25SaWdodCk7XG4gIGNvbnN0IGNzc1ZhcmlhYmxlcyA9IHVzZUNzc1ZhcmlhYmxlcygpO1xuXG4gIGNvbnN0IG1vdW50VGltZSA9IHVzZU1lbW8oKCkgPT4gbmV3IERhdGUoKSwgW10pO1xuICBjb25zdCBbZGF0ZUluVmlldywgc2V0RGF0ZUluVmlld10gPSB1c2VTdGF0ZTxEYXRlPihkZWZhdWx0RGF0ZUluVmlldyA/PyBtb3VudFRpbWUpO1xuICBjb25zdCBbZGlydHksIHNldERpcnR5XSA9IHVzZVN0YXRlPFBhcnRpYWw8RGF0ZVJhbmdlPj4oKTtcbiAgY29uc3QgW2hvdmVyZWQsIHNldEhvdmVyZWRdID0gdXNlU3RhdGU8RGF0ZT4oKTtcblxuICBjb25zdCBtaW4gPSBkaXJ0eSA/IGRpcnR5Lm1pbiA6IHZhbHVlIGluc3RhbmNlb2YgRGF0ZSA/IHZhbHVlIDogdmFsdWU/Lm1pbjtcbiAgY29uc3QgbWF4ID0gZGlydHkgPyBkaXJ0eS5tYXggOiB2YWx1ZSBpbnN0YW5jZW9mIERhdGUgPyB2YWx1ZSA6IHZhbHVlPy5tYXg7XG5cbiAgY29uc3QgcmVzb2x2ZWRRdWlja09wdGlvbnMgPSBbLi4ucXVpY2tPcHRpb25zLCB7IGxhYmVsOiA8VGV4dCBpZD1cInJlc2V0XCIgLz4sIHZhbHVlOiBudWxsIH1dLm1hcChcbiAgICAob3B0aW9uLCBpbmRleCkgPT4ge1xuICAgICAgaWYgKG9wdGlvbiBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG4gICAgICAgIHJldHVybiBvcHRpb24oKHZhbHVlKSA9PiB7XG4gICAgICAgICAgc2V0RGlydHkodW5kZWZpbmVkKTtcbiAgICAgICAgICBvbkNoYW5nZSh2YWx1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB7IGxhYmVsLCB2YWx1ZSB9ID0gdHlwZW9mIG9wdGlvbiA9PT0gJ3N0cmluZycgPyBjb21tb25RdWlja09wdGlvbnNbb3B0aW9uXSA6IG9wdGlvbjtcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPEJ1dHRvblxuICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgdmFyaWFudD1cInRleHRcIlxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIHNldERpcnR5KHVuZGVmaW5lZCk7XG5cbiAgICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG4gICAgICAgICAgICAgIG9uQ2hhbmdlKHZhbHVlKHByb3BzKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBvbkNoYW5nZSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgPC9CdXR0b24+XG4gICAgICApO1xuICAgIH0sXG4gICk7XG5cbiAgY29uc3QgeyBjYWxlbmRhcnMsIGdldEJhY2tQcm9wcywgZ2V0Rm9yd2FyZFByb3BzLCBnZXREYXRlUHJvcHMgfSA9IHVzZURheXplZCh7XG4gICAgb25EYXRlU2VsZWN0ZWQ6ICgpID0+IHVuZGVmaW5lZCxcbiAgICBmaXJzdERheU9mV2VlayxcbiAgICBzaG93T3V0c2lkZURheXM6IHRydWUsXG4gICAgZGF0ZTogZGF0ZUluVmlldyxcbiAgICBvbk9mZnNldENoYW5nZWQ6IChvZmZzZXQpID0+XG4gICAgICBzZXREYXRlSW5WaWV3KG5ldyBEYXRlKGRhdGVJblZpZXcuZ2V0RnVsbFllYXIoKSwgZGF0ZUluVmlldy5nZXRNb250aCgpICsgb2Zmc2V0KSksXG4gICAgb2Zmc2V0OiAwLFxuICAgIG1pbkRhdGUsXG4gICAgbWF4RGF0ZSxcbiAgfSk7XG4gIGNvbnN0IG5vdyA9IHVzZU1lbW8oKCkgPT4gc3RhcnRPZkRheShuZXcgRGF0ZSgpKSwgW10pO1xuXG4gIGNvbnN0IGZvcm1hdFdlZWtkYXkgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCB7IGZvcm1hdCB9ID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQobG9jYWxlLCB7IHdlZWtkYXk6ICdzaG9ydCcgfSk7XG4gICAgcmV0dXJuICh3ZWVrRGF5OiBudW1iZXIpID0+XG4gICAgICBmb3JtYXQobmV3IERhdGUoRGF0ZS5VVEMoMjAyMSwgNywgKCh3ZWVrRGF5ICsgZmlyc3REYXlPZldlZWspICUgNykgKyAxKSkpO1xuICB9LCBbbG9jYWxlLCBmaXJzdERheU9mV2Vla10pO1xuXG4gIHVzZUVmZmVjdChcbiAgICAoKSA9PlxuICAgICAgc2V0RGF0ZUluVmlldyhcbiAgICAgICAgdmFsdWUgPT09IG51bGwgPyBkZWZhdWx0RGF0ZUluVmlldyA/PyBtb3VudFRpbWUgOiB2YWx1ZSBpbnN0YW5jZW9mIERhdGUgPyB2YWx1ZSA6IHZhbHVlLm1heCxcbiAgICAgICksXG4gICAgW3ZhbHVlLCBkZWZhdWx0RGF0ZUluVmlldywgbW91bnRUaW1lXSxcbiAgKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghcmFuZ2VTZWxlY3QpIHtcbiAgICAgIHNldERpcnR5KHVuZGVmaW5lZCk7XG4gICAgfVxuICB9LCBbcmFuZ2VTZWxlY3RdKTtcblxuICBmdW5jdGlvbiBzZXQobWluPzogRGF0ZSwgbWF4PzogRGF0ZSwgZWRpdD86ICdtaW4nIHwgJ21heCcpIHtcbiAgICBpZiAoIXJhbmdlU2VsZWN0KSB7XG4gICAgICBvbkNoYW5nZShtaW4gPz8gbnVsbCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKG1pbiAmJiBtYXggJiYgbWluID4gbWF4KSB7XG4gICAgICBpZiAoZWRpdCA9PT0gJ21pbicpIHtcbiAgICAgICAgbWF4ID0gbWluO1xuICAgICAgfSBlbHNlIGlmIChlZGl0ID09PSAnbWF4Jykge1xuICAgICAgICBtaW4gPSBtYXg7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBbbWluLCBtYXhdID0gW21heCwgbWluXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIW1pbiA9PT0gIW1heCkge1xuICAgICAgc2V0RGlydHkodW5kZWZpbmVkKTtcbiAgICAgIG9uQ2hhbmdlKG1pbiAmJiBtYXggPyB7IG1pbiwgbWF4OiBlbmRPZkRheShtYXgpIH0gOiBudWxsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0RGlydHkoeyBtaW4sIG1heCB9KTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBmb3JtYXRNb250aCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHsgZm9ybWF0IH0gPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NhbGUsIHsgbW9udGg6ICdsb25nJyB9KTtcbiAgICByZXR1cm4gKG1vbnRoOiBudW1iZXIpID0+IGZvcm1hdChuZXcgRGF0ZSgyMDIxLCBtb250aCkpO1xuICB9LCBbbG9jYWxlXSk7XG5cbiAgY29uc3QgZm9ybWF0WWVhciA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHsgZm9ybWF0IH0gPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NhbGUsIHsgeWVhcjogJ251bWVyaWMnIH0pO1xuICAgIHJldHVybiAoeWVhcjogbnVtYmVyKSA9PiBmb3JtYXQobmV3IERhdGUoeWVhciwgMCwgMSkpO1xuICB9LCBbbG9jYWxlXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNzcz17Y3NzVmFyaWFibGVzfT5cbiAgICAgIDxkaXZcbiAgICAgICAgY3NzPXt7XG4gICAgICAgICAgZGlzcGxheTogJ2dyaWQnLFxuICAgICAgICAgIGdyaWRBdXRvRmxvdzogJ2NvbHVtbicsXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgIGFsaWduSXRlbXM6ICdiYXNlbGluZScsXG4gICAgICAgICAgZ2FwOiAndmFyKC0tc3BhY2luZyknLFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8RGF0ZUlucHV0XG4gICAgICAgICAgdmFsdWU9e21pbiA/PyBudWxsfVxuICAgICAgICAgIG9uQ2hhbmdlPXsoZGF0ZSkgPT4gc2V0KGRhdGUgPz8gdW5kZWZpbmVkLCBtYXgsICdtaW4nKX1cbiAgICAgICAgICBsb2NhbGU9e2xvY2FsZX1cbiAgICAgICAgLz5cblxuICAgICAgICB7cmFuZ2VTZWxlY3QgJiYgKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICB7JyAtICd9XG4gICAgICAgICAgICA8RGF0ZUlucHV0XG4gICAgICAgICAgICAgIHZhbHVlPXttYXggPz8gbnVsbH1cbiAgICAgICAgICAgICAgb25DaGFuZ2U9eyhkYXRlKSA9PiBzZXQobWluLCBkYXRlID8/IHVuZGVmaW5lZCwgJ21heCcpfVxuICAgICAgICAgICAgICBsb2NhbGU9e2xvY2FsZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cblxuICAgICAge2NhbGVuZGFycy5tYXAoKHsgbW9udGgsIHllYXIsIHdlZWtzIH0pID0+IChcbiAgICAgICAgPGRpdiBrZXk9e2Ake21vbnRofSR7eWVhcn1gfSBjc3M9e3sgZGlzcGxheTogJ2dyaWQnIH19PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNzcz17e1xuICAgICAgICAgICAgICBtYXJnaW46ICdjYWxjKHZhcigtLXNwYWNpbmcpICogNCkgMCcsXG4gICAgICAgICAgICAgIGRpc3BsYXk6ICdncmlkJyxcbiAgICAgICAgICAgICAgZ3JpZEF1dG9GbG93OiAnY29sdW1uJyxcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1iZXR3ZWVuJyxcbiAgICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxJY29uQnV0dG9uIHsuLi5nZXRCYWNrUHJvcHMoeyBjYWxlbmRhcnMgfSl9PlxuICAgICAgICAgICAgICA8Q2hldnJvblJpZ2h0IGNzcz17eyB0cmFuc2Zvcm06ICdyb3RhdGUzZCgwLCAwLCAxLCAxODBkZWcpJyB9fSAvPlxuICAgICAgICAgICAgPC9JY29uQnV0dG9uPlxuXG4gICAgICAgICAgICA8ZGl2IGNzcz17eyBkaXNwbGF5OiAnZmxleCcgfX0+XG4gICAgICAgICAgICAgIHtmb3JtYXRNb250aChtb250aCl9IHtmb3JtYXRZZWFyKHllYXIpfVxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxJY29uQnV0dG9uIHsuLi5nZXRGb3J3YXJkUHJvcHMoeyBjYWxlbmRhcnMgfSl9PlxuICAgICAgICAgICAgICA8Q2hldnJvblJpZ2h0IC8+XG4gICAgICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjc3M9e3tcbiAgICAgICAgICAgICAganVzdGlmeVNlbGY6ICdjZW50ZXInLFxuICAgICAgICAgICAgICBkaXNwbGF5OiAnZ3JpZCcsXG4gICAgICAgICAgICAgIGdyaWRUZW1wbGF0ZUNvbHVtbnM6ICdyZXBlYXQoNywgbWF4LWNvbnRlbnQpJyxcbiAgICAgICAgICAgICAgZm9udFdlaWdodDogJ2JvbGQnLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7d2Vla0RheXMubWFwKChfdiwgd2Vla0RheSkgPT4gKFxuICAgICAgICAgICAgICA8ZGl2IGtleT17d2Vla0RheX0gY3NzPXt7IGp1c3RpZnlTZWxmOiAnY2VudGVyJywgbWFyZ2luQm90dG9tOiAndmFyKC0tc3BhY2luZyknIH19PlxuICAgICAgICAgICAgICAgIHtmb3JtYXRXZWVrZGF5KHdlZWtEYXkpfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICkpfVxuXG4gICAgICAgICAgICB7d2Vla3MubWFwKCh3ZWVrLCBpbmRleCkgPT5cbiAgICAgICAgICAgICAgd2Vlay5tYXAoKGRhdGVPYmplY3QsIGRheUluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFkYXRlT2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gPGRpdiBrZXk9e2Ake2luZGV4fS0ke2RheUluZGV4fWB9IC8+O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnN0IHsgcHJldk1vbnRoLCBuZXh0TW9udGgsIGRhdGUgfSA9IGRhdGVPYmplY3Q7XG4gICAgICAgICAgICAgICAgY29uc3QgdG9kYXkgPSBzdGFydE9mRGF5KGRhdGUpLmdldFRpbWUoKSA9PT0gbm93LmdldFRpbWUoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBkaXNhYmxlZCA9IChtaW5EYXRlICYmIGRhdGUgPCBtaW5EYXRlKSB8fCAobWF4RGF0ZSAmJiBkYXRlID4gbWF4RGF0ZSk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZCA9XG4gICAgICAgICAgICAgICAgICBkYXRlLmdldFRpbWUoKSA9PT0gbWluPy5nZXRUaW1lKCkgfHxcbiAgICAgICAgICAgICAgICAgIChtaW4gJiYgbWF4ICYmIGRhdGVJbnRlcnNlY3QoZGF0ZSwgeyBtaW4sIG1heCB9KSk7XG4gICAgICAgICAgICAgICAgY29uc3QgcHJlU2VsZWN0ZWQgPVxuICAgICAgICAgICAgICAgICAgIXNlbGVjdGVkICYmXG4gICAgICAgICAgICAgICAgICAhZGlzYWJsZWQgJiZcbiAgICAgICAgICAgICAgICAgIChkYXRlLmdldFRpbWUoKSA9PT0gaG92ZXJlZD8uZ2V0VGltZSgpIHx8XG4gICAgICAgICAgICAgICAgICAgIChtaW4gJiZcbiAgICAgICAgICAgICAgICAgICAgICAhbWF4ICYmXG4gICAgICAgICAgICAgICAgICAgICAgaG92ZXJlZCAmJlxuICAgICAgICAgICAgICAgICAgICAgIGRhdGVJbnRlcnNlY3QoXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWluIDw9IGhvdmVyZWQgPyB7IG1pbiwgbWF4OiBob3ZlcmVkIH0gOiB7IG1pbjogaG92ZXJlZCwgbWF4OiBtaW4gfSxcbiAgICAgICAgICAgICAgICAgICAgICApKSk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBrZXk9e2Ake2luZGV4fS0ke2RheUluZGV4fWB9XG4gICAgICAgICAgICAgICAgICAgIGNzcz17W1xuICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEwLFxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAnMXB4IHNvbGlkIHRyYW5zcGFyZW50JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICd0cmFuc3BhcmVudCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3I6ICdwb2ludGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIChwcmV2TW9udGggfHwgbmV4dE1vbnRoKSAmJiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogZ3JheSxcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIHRvZGF5ICYmIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogJzFweCBzb2xpZCB2YXIoLS1zZWNvbmRhcnlNYWluKScsXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZCAmJiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAndmFyKC0tcHJpbWFyeU1haW4pJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAndmFyKC0tcHJpbWFyeUNvbnRyYXN0VGV4dCknLFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgcHJlU2VsZWN0ZWQgJiYge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJ3ZhcigtLXByaW1hcnlMaWdodCknLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICd2YXIoLS1wcmltYXJ5Q29udHJhc3RUZXh0KScsXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXX1cbiAgICAgICAgICAgICAgICAgICAgey4uLmdldERhdGVQcm9wcyh7IGRhdGVPYmo6IGRhdGVPYmplY3QgfSl9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoZGlydHkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtaW4pIHNldChtaW4sIGRhdGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBzZXQoZGF0ZSwgbWF4KTtcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0KGRhdGUpO1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgb25Qb2ludGVyT3Zlcj17KCkgPT4gc2V0SG92ZXJlZChkYXRlKX1cbiAgICAgICAgICAgICAgICAgICAgb25Qb2ludGVyT3V0PXsoKSA9PiBzZXRIb3ZlcmVkKHVuZGVmaW5lZCl9XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2RhdGUuZ2V0RGF0ZSgpfVxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICkpfVxuXG4gICAgICA8ZGl2XG4gICAgICAgIGNzcz17e1xuICAgICAgICAgIG1hcmdpblRvcDogJ3ZhcigtLXNwYWNpbmcpJyxcbiAgICAgICAgICBkaXNwbGF5OiAnZ3JpZCcsXG4gICAgICAgICAgZ3JpZEF1dG9GbG93OiAnY29sdW1uJyxcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIHtyZXNvbHZlZFF1aWNrT3B0aW9uc31cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufVxuIl19 */",
|
|
958
|
+
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3NjaHVtbWFyLXRhYmxlL3NjaHVtbWFyLXRhYmxlL3NyYy9jb21wb25lbnRzL2RhdGVQaWNrZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTZYaUIiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvc2NodW1tYXItdGFibGUvc2NodW1tYXItdGFibGUvc3JjL2NvbXBvbmVudHMvZGF0ZVBpY2tlci50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRlT2JqLCB1c2VEYXl6ZWQgfSBmcm9tICdkYXl6ZWQnO1xuaW1wb3J0IHtcbiAgRnJhZ21lbnQsXG4gIFJlYWN0Tm9kZSxcbiAgY3JlYXRlQ29udGV4dCxcbiAgdXNlQ29udGV4dCxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICcuLi9ob29rcy91c2VUaGVtZSc7XG5pbXBvcnQgeyBkZWZhdWx0cyB9IGZyb20gJy4uL21pc2MvZGVmYXVsdHMnO1xuaW1wb3J0IHsgZ3JheSB9IGZyb20gJy4uL3RoZW1lL2RlZmF1bHRUaGVtZS9kZWZhdWx0Q2xhc3Nlcyc7XG5pbXBvcnQgeyB1c2VDc3NWYXJpYWJsZXMgfSBmcm9tICcuLi90aGVtZS91c2VDc3NWYXJpYWJsZXMnO1xuaW1wb3J0IHsgRGF0ZUlucHV0IH0gZnJvbSAnLi9kYXRlSW5wdXQnO1xuaW1wb3J0IHsgVGV4dCB9IGZyb20gJy4vdGV4dCc7XG5cbmV4cG9ydCB0eXBlIERhdGVSYW5nZSA9IHsgbWluOiBEYXRlOyBtYXg6IERhdGUgfTtcblxuZXhwb3J0IHR5cGUgRGF0ZVBpY2tlclF1aWNrT3B0aW9uID1cbiAgfCAndG9kYXknXG4gIHwgJ3RoaXNXZWVrJ1xuICB8ICd0aGlzTW9udGgnXG4gIHwgJ3RoaXNZZWFyJ1xuICB8ICdsYXN0U2V2ZW5EYXlzJ1xuICB8ICdsYXN0VGhpcnR5RGF5cydcbiAgfCB7IGxhYmVsOiBSZWFjdE5vZGU7IHZhbHVlOiBEYXRlIHwgRGF0ZVJhbmdlIHwgKCgpID0+IERhdGUgfCBEYXRlUmFuZ2UpIH1cbiAgfCAoKG9uQ2hhbmdlOiAodmFsdWU6IERhdGUgfCBEYXRlUmFuZ2UgfCBudWxsKSA9PiB2b2lkKSA9PiBSZWFjdE5vZGUpO1xuXG5leHBvcnQgdHlwZSBEYXRlUGlja2VyUHJvcHMgPSB7XG4gIC8qKiBDdXJyZW50bHkgc2VsZWN0ZWQgZGF5IG9yIHJhbmdlIG9mIGRheXMuICovXG4gIHZhbHVlOiBEYXRlIHwgRGF0ZVJhbmdlIHwgbnVsbDtcbiAgLyoqIENhbGxiYWNrIGZvciB3aGVuIHRoZSBkYXkgKHJhbmdlKSBjaGFuZ2VzLiAqL1xuICBvbkNoYW5nZTogKHZhbHVlOiBEYXRlIHwgRGF0ZVJhbmdlIHwgbnVsbCkgPT4gdm9pZDtcbiAgLyoqIElmIGVuYWJsZWQsIHJhbmdlcyBjYW4gYmUgc2VsZWN0ZWQuICovXG4gIHJhbmdlU2VsZWN0PzogYm9vbGVhbjtcbiAgLyoqIFdoaWNoIGxvY2FsZSB0byB1c2UgdG8gcmVuZGVyIHRoZSBjYWxlbmRhci4gKi9cbiAgbG9jYWxlPzogc3RyaW5nO1xuICAvKiogV2hpY2ggZGF5IG9mIHRoZSB3ZWVrIHNob3VsZCBiZSBpbiB0aGUgZmlyc3QgY29sdW1uLiAoMD1TdW5kYXksIDE9TW9uZGF5LCAuLi4pXG4gICAqIEBkZWZhdWx0IDFcbiAgICovXG4gIGZpcnN0RGF5T2ZXZWVrPzogMCB8IDEgfCAyIHwgMyB8IDQgfCA1IHwgNjtcbiAgLyoqIFdoaWNoIG1vbnRoIHRvIHNob3cgaW5pdGlhbGx5ICovXG4gIGRlZmF1bHREYXRlSW5WaWV3PzogRGF0ZTtcbiAgLyoqIFNob3cgYnV0dG9ucyB0byBxdWlja2x5IHNlbGVjdCBzdWdnZXN0ZWQgZGF0ZXMgb3IgZGF0ZSByYW5nZXMgKi9cbiAgcXVpY2tPcHRpb25zPzogRGF0ZVBpY2tlclF1aWNrT3B0aW9uW107XG4gIC8qKiBNaW5pbXVtIHNlbGVjdGFibGUgZGF0ZSAqL1xuICBtaW5EYXRlPzogRGF0ZTtcbiAgLyoqIE1heGltdW0gc2VsZWN0YWJsZSBkYXRlICovXG4gIG1heERhdGU/OiBEYXRlO1xuICAvKiogV2hldGhlciB0byBzaG93IHRoZSBjYWxlbmRhciB3ZWVrIGluIHRoZSBmaXJzdCBjb2x1bW4gKi9cbiAgc2hvd0NhbGVuZGFyV2Vlaz86IGJvb2xlYW47XG59O1xuXG5jb25zdCBEYXRlUGlja2VyQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8UGFydGlhbDxPbWl0PERhdGVQaWNrZXJQcm9wcywgJ3ZhbHVlJyB8ICdvbkNoYW5nZSc+Pj4oe30pO1xuXG5leHBvcnQgZnVuY3Rpb24gRGF0ZVBpY2tlclByb3ZpZGVyKHtcbiAgY2hpbGRyZW4sXG4gIC4uLnByb3BzXG59OiBQYXJ0aWFsPE9taXQ8RGF0ZVBpY2tlclByb3BzLCAndmFsdWUnIHwgJ29uQ2hhbmdlJz4+ICYgeyBjaGlsZHJlbj86IFJlYWN0Tm9kZSB9KSB7XG4gIGNvbnN0IHZhbHVlID0gdXNlTWVtbygoKSA9PiBwcm9wcywgW0pTT04uc3RyaW5naWZ5KHByb3BzKV0pO1xuXG4gIHJldHVybiA8RGF0ZVBpY2tlckNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3ZhbHVlfT57Y2hpbGRyZW59PC9EYXRlUGlja2VyQ29udGV4dC5Qcm92aWRlcj47XG59XG5cbmNvbnN0IHdlZWtEYXlzID0gWzAsIDEsIDIsIDMsIDQsIDUsIDZdIGFzIGNvbnN0O1xuXG4vKiogUm91bmRzIGEgZGF0ZSBkb3duIHRvIHRoZSBzdGFydCBvZiB0aGUgZGF5LiAqL1xuZXhwb3J0IGNvbnN0IHN0YXJ0T2ZEYXkgPSAoZDogRGF0ZSkgPT4gbmV3IERhdGUoZC5nZXRGdWxsWWVhcigpLCBkLmdldE1vbnRoKCksIGQuZ2V0RGF0ZSgpKTtcblxuLyoqIFJvdW5kcyBhIGRhdGUgdXAgdG8gdGhlIGVuZCBvZiB0aGUgZGF5LiAqL1xuZXhwb3J0IGNvbnN0IGVuZE9mRGF5ID0gKGQ6IERhdGUpID0+XG4gIG5ldyBEYXRlKGQuZ2V0RnVsbFllYXIoKSwgZC5nZXRNb250aCgpLCBkLmdldERhdGUoKSArIDEsIDAsIDAsIDAsIC0xKTtcblxuZXhwb3J0IGNvbnN0IGxhc3REYXlzID0gKGRheXM6IG51bWJlcik6IERhdGVSYW5nZSA9PiB7XG4gIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG4gIGNvbnN0IG1pbiA9IG5ldyBEYXRlKG5vdyk7XG4gIG1pbi5zZXREYXRlKG1pbi5nZXREYXRlKCkgLSBkYXlzICsgMSk7XG5cbiAgcmV0dXJuIHtcbiAgICBtaW46IHN0YXJ0T2ZEYXkobWluKSxcbiAgICBtYXg6IGVuZE9mRGF5KG5vdyksXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgdG9kYXkgPSAoKSA9PiBsYXN0RGF5cygxKTtcblxuZXhwb3J0IGNvbnN0IHRoaXNXZWVrID0gKGRlbHRhID0gMCwgZmlyc3REYXlPZldlZWsgPSAxKTogRGF0ZVJhbmdlID0+IHtcbiAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgY29uc3QgbWluID0gbmV3IERhdGUobm93KTtcblxuICBsZXQgZGlmZiA9IG1pbi5nZXREYXkoKSAtIGZpcnN0RGF5T2ZXZWVrO1xuICBpZiAoZGlmZiA8IDApIHtcbiAgICBkaWZmICs9IDc7XG4gIH1cbiAgbWluLnNldERhdGUobWluLmdldERhdGUoKSAtIGRpZmYgKyBkZWx0YSAqIDcpO1xuXG4gIGNvbnN0IG1heCA9IG5ldyBEYXRlKG1pbik7XG4gIG1heC5zZXREYXRlKG1heC5nZXREYXRlKCkgKyA2KTtcblxuICByZXR1cm4ge1xuICAgIG1pbjogc3RhcnRPZkRheShtaW4pLFxuICAgIG1heDogZW5kT2ZEYXkobWF4KSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCB0aGlzTW9udGggPSAoZGVsdGEgPSAwKTogRGF0ZVJhbmdlID0+IHtcbiAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgY29uc3QgbWluID0gbmV3IERhdGUobm93KTtcbiAgbWluLnNldERhdGUoMSk7XG4gIG1pbi5zZXRNb250aChtaW4uZ2V0TW9udGgoKSArIGRlbHRhKTtcbiAgY29uc3QgbWF4ID0gbmV3IERhdGUobWluKTtcbiAgbWF4LnNldE1vbnRoKG1heC5nZXRNb250aCgpICsgMSk7XG4gIG1heC5zZXREYXRlKG1heC5nZXREYXRlKCkgLSAxKTtcblxuICByZXR1cm4ge1xuICAgIG1pbjogc3RhcnRPZkRheShtaW4pLFxuICAgIG1heDogZW5kT2ZEYXkobWF4KSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCB0aGlzWWVhciA9IChkZWx0YSA9IDApOiBEYXRlUmFuZ2UgPT4ge1xuICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuICBjb25zdCBtaW4gPSBuZXcgRGF0ZShub3cpO1xuICBtaW4uc2V0RGF0ZSgxKTtcbiAgbWluLnNldE1vbnRoKDApO1xuICBtaW4uc2V0RnVsbFllYXIobWluLmdldEZ1bGxZZWFyKCkgKyBkZWx0YSk7XG4gIGNvbnN0IG1heCA9IG5ldyBEYXRlKG1pbik7XG4gIG1heC5zZXRGdWxsWWVhcihtYXguZ2V0RnVsbFllYXIoKSArIDEpO1xuICBtYXguc2V0RGF0ZShtYXguZ2V0RGF0ZSgpIC0gMSk7XG5cbiAgcmV0dXJuIHtcbiAgICBtaW46IHN0YXJ0T2ZEYXkobWluKSxcbiAgICBtYXg6IGVuZE9mRGF5KG1heCksXG4gIH07XG59O1xuXG5jb25zdCBNU19QRVJfREFZID0gMTAwMCAqIDYwICogNjAgKiAyNDtcbmV4cG9ydCBjb25zdCBnZXRDYWxlbmRhcldlZWsgPSAoZGF0ZTogRGF0ZSk6IG51bWJlciA9PiB7XG4gIC8vIElTTyA4NjAxOiBXZWVrIDEgaXMgdGhlIHdlZWsgd2l0aCB0aGUgZmlyc3QgVGh1cnNkYXkgb2YgdGhlIHllYXIuXG4gIC8vIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT193ZWVrX2RhdGVcblxuICBjb25zdCB5ID0gZGF0ZS5nZXRGdWxsWWVhcigpO1xuICBjb25zdCBmZG95ID0gbmV3IERhdGUoeSwgMCwgMSk7XG4gIGNvbnN0IGRveSA9IE1hdGguZmxvb3IoXG4gICAgKGRhdGUuZ2V0VGltZSgpIC0gZmRveS5nZXRUaW1lKCkgKyAoZGF0ZS5nZXRUaW1lem9uZU9mZnNldCgpIC0gZmRveS5nZXRUaW1lem9uZU9mZnNldCgpKSkgL1xuICAgICAgTVNfUEVSX0RBWSxcbiAgKTtcbiAgY29uc3QgZG93ID0gZmRveS5nZXREYXkoKTtcbiAgY29uc3QgdyA9IE1hdGguZmxvb3IoKDEwICsgZG95IC0gZG93KSAvIDcpO1xuXG4gIGlmICh3ID09PSAwKSB7XG4gICAgcmV0dXJuIGdldENhbGVuZGFyV2VlayhuZXcgRGF0ZSh5IC0gMSwgMTEsIDMxKSk7XG4gIH1cblxuICByZXR1cm4gdztcbn07XG5cbmV4cG9ydCBjb25zdCBjb21tb25RdWlja09wdGlvbnMgPSB7XG4gIHRvZGF5OiB7IGxhYmVsOiA8VGV4dCBpZD1cInRvZGF5XCIgLz4sIHZhbHVlOiB0b2RheSB9LFxuICB0aGlzV2VlazogeyBsYWJlbDogPFRleHQgaWQ9XCJ0aGlzV2Vla1wiIC8+LCB2YWx1ZTogKHByb3BzKSA9PiB0aGlzV2VlaygwLCBwcm9wcy5maXJzdERheU9mV2VlaykgfSxcbiAgdGhpc01vbnRoOiB7IGxhYmVsOiA8VGV4dCBpZD1cInRoaXNNb250aFwiIC8+LCB2YWx1ZTogKCkgPT4gdGhpc01vbnRoKCkgfSxcbiAgdGhpc1llYXI6IHsgbGFiZWw6IDxUZXh0IGlkPVwidGhpc1llYXJcIiAvPiwgdmFsdWU6ICgpID0+IHRoaXNZZWFyKCkgfSxcbiAgbGFzdFNldmVuRGF5czogeyBsYWJlbDogPFRleHQgaWQ9XCJsYXN0U2V2ZW5EYXlzXCIgLz4sIHZhbHVlOiAoKSA9PiBsYXN0RGF5cyg3KSB9LFxuICBsYXN0VGhpcnR5RGF5czogeyBsYWJlbDogPFRleHQgaWQ9XCJsYXN0VGhpcnR5RGF5c1wiIC8+LCB2YWx1ZTogKCkgPT4gbGFzdERheXMoMzApIH0sXG59IHNhdGlzZmllcyBSZWNvcmQ8XG4gIERhdGVQaWNrZXJRdWlja09wdGlvbiAmIHN0cmluZyxcbiAgeyBsYWJlbDogUmVhY3ROb2RlOyB2YWx1ZTogRGF0ZSB8IERhdGVSYW5nZSB8ICgocHJvcHM6IERhdGVQaWNrZXJQcm9wcykgPT4gRGF0ZSB8IERhdGVSYW5nZSkgfVxuPjtcblxuLyoqIFJldHVybnMgd2hldGhlciB0d28gZGF0ZXMgYW5kL29yIGRhdGUgcmFuZ2VzIGludGVyc2VjdC4gSW50ZXJzZWN0aW9uIGlzIGNvbnNpZGVyZWQgcGVyIGRheS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkYXRlSW50ZXJzZWN0KGE6IERhdGUgfCBudWxsIHwgRGF0ZVJhbmdlLCBiOiBEYXRlIHwgbnVsbCB8IERhdGVSYW5nZSkge1xuICBpZiAoYSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICBhID0geyBtaW46IGEsIG1heDogYSB9O1xuICB9XG4gIGlmIChiIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgIGIgPSB7IG1pbjogYiwgbWF4OiBiIH07XG4gIH1cblxuICBpZiAoIWE/Lm1pbiB8fCAhYS5tYXggfHwgIWI/Lm1pbiB8fCAhYi5tYXgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gIShlbmRPZkRheShhLm1heCkgPCBzdGFydE9mRGF5KGIubWluKSB8fCBzdGFydE9mRGF5KGEubWluKSA+IGVuZE9mRGF5KGIubWF4KSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkYXRlQ2xhbXAoZGF0ZTogRGF0ZSwgbWluPzogRGF0ZSwgbWF4PzogRGF0ZSkge1xuICBpZiAobWluICYmIGRhdGUgPCBtaW4pIHtcbiAgICByZXR1cm4gbWluO1xuICB9XG5cbiAgaWYgKG1heCAmJiBkYXRlID4gbWF4KSB7XG4gICAgcmV0dXJuIG1heDtcbiAgfVxuXG4gIHJldHVybiBkYXRlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gRGF0ZVBpY2tlcihwcm9wczogRGF0ZVBpY2tlclByb3BzKSB7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KERhdGVQaWNrZXJDb250ZXh0KTtcblxuICBjb25zdCB7XG4gICAgdmFsdWUsXG4gICAgcmFuZ2VTZWxlY3QsXG4gICAgbG9jYWxlLFxuICAgIGZpcnN0RGF5T2ZXZWVrID0gMSxcbiAgICBkZWZhdWx0RGF0ZUluVmlldyxcbiAgICBxdWlja09wdGlvbnMgPSBbJ3RvZGF5JywgJ3RoaXNXZWVrJ10sXG4gICAgbWluRGF0ZSxcbiAgICBtYXhEYXRlLFxuICAgIHNob3dDYWxlbmRhcldlZWssXG4gIH0gPSBkZWZhdWx0czxEYXRlUGlja2VyUHJvcHM+KHByb3BzLCBjb250ZXh0KTtcblxuICBmdW5jdGlvbiBvbkNoYW5nZSh2YWx1ZTogRGF0ZSB8IERhdGVSYW5nZSB8IG51bGwpIHtcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICB2YWx1ZSA9IGRhdGVDbGFtcCh2YWx1ZSwgbWluRGF0ZSwgbWF4RGF0ZSk7XG4gICAgfSBlbHNlIGlmICh2YWx1ZSkge1xuICAgICAgdmFsdWUgPSB7XG4gICAgICAgIG1pbjogZGF0ZUNsYW1wKHZhbHVlLm1pbiwgbWluRGF0ZSwgbWF4RGF0ZSksXG4gICAgICAgIG1heDogZGF0ZUNsYW1wKHZhbHVlLm1heCwgbWluRGF0ZSwgbWF4RGF0ZSksXG4gICAgICB9O1xuICAgIH1cblxuICAgIHByb3BzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgfVxuXG4gIGNvbnN0IEJ1dHRvbiA9IHVzZVRoZW1lKCh0KSA9PiB0LmNvbXBvbmVudHMuQnV0dG9uKTtcbiAgY29uc3QgSWNvbkJ1dHRvbiA9IHVzZVRoZW1lKCh0KSA9PiB0LmNvbXBvbmVudHMuSWNvbkJ1dHRvbik7XG4gIGNvbnN0IENoZXZyb25SaWdodCA9IHVzZVRoZW1lKCh0KSA9PiB0Lmljb25zLkNoZXZyb25SaWdodCk7XG4gIGNvbnN0IGNzc1ZhcmlhYmxlcyA9IHVzZUNzc1ZhcmlhYmxlcygpO1xuXG4gIGNvbnN0IG1vdW50VGltZSA9IHVzZU1lbW8oKCkgPT4gbmV3IERhdGUoKSwgW10pO1xuICBjb25zdCBbZGF0ZUluVmlldywgc2V0RGF0ZUluVmlld10gPSB1c2VTdGF0ZTxEYXRlPihkZWZhdWx0RGF0ZUluVmlldyA/PyBtb3VudFRpbWUpO1xuICBjb25zdCBbZGlydHksIHNldERpcnR5XSA9IHVzZVN0YXRlPFBhcnRpYWw8RGF0ZVJhbmdlPj4oKTtcbiAgY29uc3QgW2hvdmVyZWQsIHNldEhvdmVyZWRdID0gdXNlU3RhdGU8RGF0ZT4oKTtcblxuICBjb25zdCBtaW4gPSBkaXJ0eSA/IGRpcnR5Lm1pbiA6IHZhbHVlIGluc3RhbmNlb2YgRGF0ZSA/IHZhbHVlIDogdmFsdWU/Lm1pbjtcbiAgY29uc3QgbWF4ID0gZGlydHkgPyBkaXJ0eS5tYXggOiB2YWx1ZSBpbnN0YW5jZW9mIERhdGUgPyB2YWx1ZSA6IHZhbHVlPy5tYXg7XG5cbiAgY29uc3QgcmVzb2x2ZWRRdWlja09wdGlvbnMgPSBbLi4ucXVpY2tPcHRpb25zLCB7IGxhYmVsOiA8VGV4dCBpZD1cInJlc2V0XCIgLz4sIHZhbHVlOiBudWxsIH1dLm1hcChcbiAgICAob3B0aW9uLCBpbmRleCkgPT4ge1xuICAgICAgaWYgKG9wdGlvbiBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG4gICAgICAgIHJldHVybiBvcHRpb24oKHZhbHVlKSA9PiB7XG4gICAgICAgICAgc2V0RGlydHkodW5kZWZpbmVkKTtcbiAgICAgICAgICBvbkNoYW5nZSh2YWx1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB7IGxhYmVsLCB2YWx1ZSB9ID0gdHlwZW9mIG9wdGlvbiA9PT0gJ3N0cmluZycgPyBjb21tb25RdWlja09wdGlvbnNbb3B0aW9uXSA6IG9wdGlvbjtcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPEJ1dHRvblxuICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgdmFyaWFudD1cInRleHRcIlxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIHNldERpcnR5KHVuZGVmaW5lZCk7XG5cbiAgICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG4gICAgICAgICAgICAgIG9uQ2hhbmdlKHZhbHVlKHByb3BzKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBvbkNoYW5nZSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgPC9CdXR0b24+XG4gICAgICApO1xuICAgIH0sXG4gICk7XG5cbiAgY29uc3QgeyBjYWxlbmRhcnMsIGdldEJhY2tQcm9wcywgZ2V0Rm9yd2FyZFByb3BzLCBnZXREYXRlUHJvcHMgfSA9IHVzZURheXplZCh7XG4gICAgb25EYXRlU2VsZWN0ZWQ6ICgpID0+IHVuZGVmaW5lZCxcbiAgICBmaXJzdERheU9mV2VlayxcbiAgICBzaG93T3V0c2lkZURheXM6IHRydWUsXG4gICAgZGF0ZTogZGF0ZUluVmlldyxcbiAgICBvbk9mZnNldENoYW5nZWQ6IChvZmZzZXQpID0+XG4gICAgICBzZXREYXRlSW5WaWV3KG5ldyBEYXRlKGRhdGVJblZpZXcuZ2V0RnVsbFllYXIoKSwgZGF0ZUluVmlldy5nZXRNb250aCgpICsgb2Zmc2V0KSksXG4gICAgb2Zmc2V0OiAwLFxuICAgIG1pbkRhdGUsXG4gICAgbWF4RGF0ZSxcbiAgfSk7XG4gIGNvbnN0IG5vdyA9IHVzZU1lbW8oKCkgPT4gc3RhcnRPZkRheShuZXcgRGF0ZSgpKSwgW10pO1xuXG4gIGNvbnN0IGZvcm1hdFdlZWtkYXkgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCB7IGZvcm1hdCB9ID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQobG9jYWxlLCB7IHdlZWtkYXk6ICdzaG9ydCcgfSk7XG4gICAgcmV0dXJuICh3ZWVrRGF5OiBudW1iZXIpID0+XG4gICAgICBmb3JtYXQobmV3IERhdGUoRGF0ZS5VVEMoMjAyMSwgNywgKCh3ZWVrRGF5ICsgZmlyc3REYXlPZldlZWspICUgNykgKyAxKSkpO1xuICB9LCBbbG9jYWxlLCBmaXJzdERheU9mV2Vla10pO1xuXG4gIHVzZUVmZmVjdChcbiAgICAoKSA9PlxuICAgICAgc2V0RGF0ZUluVmlldyhcbiAgICAgICAgdmFsdWUgPT09IG51bGwgPyBkZWZhdWx0RGF0ZUluVmlldyA/PyBtb3VudFRpbWUgOiB2YWx1ZSBpbnN0YW5jZW9mIERhdGUgPyB2YWx1ZSA6IHZhbHVlLm1heCxcbiAgICAgICksXG4gICAgW3ZhbHVlLCBkZWZhdWx0RGF0ZUluVmlldywgbW91bnRUaW1lXSxcbiAgKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghcmFuZ2VTZWxlY3QpIHtcbiAgICAgIHNldERpcnR5KHVuZGVmaW5lZCk7XG4gICAgfVxuICB9LCBbcmFuZ2VTZWxlY3RdKTtcblxuICBmdW5jdGlvbiBzZXQobWluPzogRGF0ZSwgbWF4PzogRGF0ZSwgZWRpdD86ICdtaW4nIHwgJ21heCcpIHtcbiAgICBpZiAoIXJhbmdlU2VsZWN0KSB7XG4gICAgICBvbkNoYW5nZShtaW4gPz8gbnVsbCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKG1pbiAmJiBtYXggJiYgbWluID4gbWF4KSB7XG4gICAgICBpZiAoZWRpdCA9PT0gJ21pbicpIHtcbiAgICAgICAgbWF4ID0gbWluO1xuICAgICAgfSBlbHNlIGlmIChlZGl0ID09PSAnbWF4Jykge1xuICAgICAgICBtaW4gPSBtYXg7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBbbWluLCBtYXhdID0gW21heCwgbWluXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIW1pbiA9PT0gIW1heCkge1xuICAgICAgc2V0RGlydHkodW5kZWZpbmVkKTtcbiAgICAgIG9uQ2hhbmdlKG1pbiAmJiBtYXggPyB7IG1pbiwgbWF4OiBlbmRPZkRheShtYXgpIH0gOiBudWxsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0RGlydHkoeyBtaW4sIG1heCB9KTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBmb3JtYXRNb250aCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHsgZm9ybWF0IH0gPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NhbGUsIHsgbW9udGg6ICdsb25nJyB9KTtcbiAgICByZXR1cm4gKG1vbnRoOiBudW1iZXIpID0+IGZvcm1hdChuZXcgRGF0ZSgyMDIxLCBtb250aCkpO1xuICB9LCBbbG9jYWxlXSk7XG5cbiAgY29uc3QgZm9ybWF0WWVhciA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHsgZm9ybWF0IH0gPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NhbGUsIHsgeWVhcjogJ251bWVyaWMnIH0pO1xuICAgIHJldHVybiAoeWVhcjogbnVtYmVyKSA9PiBmb3JtYXQobmV3IERhdGUoeWVhciwgMCwgMSkpO1xuICB9LCBbbG9jYWxlXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNzcz17Y3NzVmFyaWFibGVzfT5cbiAgICAgIDxkaXZcbiAgICAgICAgY3NzPXt7XG4gICAgICAgICAgZGlzcGxheTogJ2dyaWQnLFxuICAgICAgICAgIGdyaWRBdXRvRmxvdzogJ2NvbHVtbicsXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgIGFsaWduSXRlbXM6ICdiYXNlbGluZScsXG4gICAgICAgICAgZ2FwOiAndmFyKC0tc3BhY2luZyknLFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8RGF0ZUlucHV0XG4gICAgICAgICAgdmFsdWU9e21pbiA/PyBudWxsfVxuICAgICAgICAgIG9uQ2hhbmdlPXsoZGF0ZSkgPT4gc2V0KGRhdGUgPz8gdW5kZWZpbmVkLCBtYXgsICdtaW4nKX1cbiAgICAgICAgICBsb2NhbGU9e2xvY2FsZX1cbiAgICAgICAgLz5cblxuICAgICAgICB7cmFuZ2VTZWxlY3QgJiYgKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICB7JyAtICd9XG4gICAgICAgICAgICA8RGF0ZUlucHV0XG4gICAgICAgICAgICAgIHZhbHVlPXttYXggPz8gbnVsbH1cbiAgICAgICAgICAgICAgb25DaGFuZ2U9eyhkYXRlKSA9PiBzZXQobWluLCBkYXRlID8/IHVuZGVmaW5lZCwgJ21heCcpfVxuICAgICAgICAgICAgICBsb2NhbGU9e2xvY2FsZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cblxuICAgICAge2NhbGVuZGFycy5tYXAoKHsgbW9udGgsIHllYXIsIHdlZWtzIH0pID0+IChcbiAgICAgICAgPGRpdiBrZXk9e2Ake21vbnRofSR7eWVhcn1gfSBjc3M9e3sgZGlzcGxheTogJ2dyaWQnIH19PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNzcz17e1xuICAgICAgICAgICAgICBtYXJnaW46ICdjYWxjKHZhcigtLXNwYWNpbmcpICogNCkgMCcsXG4gICAgICAgICAgICAgIGRpc3BsYXk6ICdncmlkJyxcbiAgICAgICAgICAgICAgZ3JpZEF1dG9GbG93OiAnY29sdW1uJyxcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1iZXR3ZWVuJyxcbiAgICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxJY29uQnV0dG9uIHsuLi5nZXRCYWNrUHJvcHMoeyBjYWxlbmRhcnMgfSl9PlxuICAgICAgICAgICAgICA8Q2hldnJvblJpZ2h0IGNzcz17eyB0cmFuc2Zvcm06ICdyb3RhdGUzZCgwLCAwLCAxLCAxODBkZWcpJyB9fSAvPlxuICAgICAgICAgICAgPC9JY29uQnV0dG9uPlxuXG4gICAgICAgICAgICA8ZGl2IGNzcz17eyBkaXNwbGF5OiAnZmxleCcgfX0+XG4gICAgICAgICAgICAgIHtmb3JtYXRNb250aChtb250aCl9IHtmb3JtYXRZZWFyKHllYXIpfVxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxJY29uQnV0dG9uIHsuLi5nZXRGb3J3YXJkUHJvcHMoeyBjYWxlbmRhcnMgfSl9PlxuICAgICAgICAgICAgICA8Q2hldnJvblJpZ2h0IC8+XG4gICAgICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjc3M9e3tcbiAgICAgICAgICAgICAganVzdGlmeVNlbGY6ICdjZW50ZXInLFxuICAgICAgICAgICAgICBkaXNwbGF5OiAnZ3JpZCcsXG4gICAgICAgICAgICAgIGdyaWRUZW1wbGF0ZUNvbHVtbnM6ICdyZXBlYXQoOCwgbWF4LWNvbnRlbnQpJyxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3Nob3dDYWxlbmRhcldlZWsgPyAoXG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjc3M9e3tcbiAgICAgICAgICAgICAgICAgIGp1c3RpZnlTZWxmOiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEwLFxuICAgICAgICAgICAgICAgICAgYm9yZGVyUmlnaHQ6IGAxcHggc29saWQgJHtncmF5fWAsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxUZXh0IGlkPVwiY2FsZW5kYXJXZWVrXCIgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8ZGl2IC8+XG4gICAgICAgICAgICApfVxuXG4gICAgICAgICAgICB7d2Vla0RheXMubWFwKChfdiwgd2Vla0RheSkgPT4gKFxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAga2V5PXt3ZWVrRGF5fVxuICAgICAgICAgICAgICAgIGNzcz17e1xuICAgICAgICAgICAgICAgICAganVzdGlmeVNlbGY6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgICAgcGFkZGluZzogMTAsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtmb3JtYXRXZWVrZGF5KHdlZWtEYXkpfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICkpfVxuXG4gICAgICAgICAgICB7d2Vla3MubWFwKCh3ZWVrLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB3ZWVrU3RhcnQgPSB3ZWVrWzBdIGFzIERhdGVPYmo7XG4gICAgICAgICAgICAgIGNvbnN0IHdlZWtFbmQgPSB3ZWVrWzZdIGFzIERhdGVPYmo7XG4gICAgICAgICAgICAgIGNvbnN0IHdlZWtEaXNhYmxlZCA9XG4gICAgICAgICAgICAgICAgIXJhbmdlU2VsZWN0IHx8XG4gICAgICAgICAgICAgICAgKG1pbkRhdGUgJiYgd2Vla0VuZC5kYXRlIDwgbWluRGF0ZSkgfHxcbiAgICAgICAgICAgICAgICAobWF4RGF0ZSAmJiB3ZWVrU3RhcnQuZGF0ZSA+IG1heERhdGUpO1xuXG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPEZyYWdtZW50IGtleT17aW5kZXh9PlxuICAgICAgICAgICAgICAgICAge3Nob3dDYWxlbmRhcldlZWsgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICBjc3M9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEwLFxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAnbm9uZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAndHJhbnNwYXJlbnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiB3ZWVrRGlzYWJsZWQgPyB1bmRlZmluZWQgOiAncG9pbnRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250OiAnaW5oZXJpdCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJSaWdodDogYDFweCBzb2xpZCAke2dyYXl9YCxcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3ZWVrRGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtaW4gPSBtaW5EYXRlICYmIHdlZWtTdGFydC5kYXRlIDwgbWluRGF0ZSA/IG1pbkRhdGUgOiB3ZWVrU3RhcnQuZGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1heCA9IG1heERhdGUgJiYgd2Vla0VuZC5kYXRlID4gbWF4RGF0ZSA/IG1heERhdGUgOiB3ZWVrRW5kLmRhdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXQobWluLCBtYXgpO1xuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7Z2V0Q2FsZW5kYXJXZWVrKCh3ZWVrWzBdIGFzIERhdGVPYmopLmRhdGUpfVxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgLz5cbiAgICAgICAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgICAgICAgIHt3ZWVrLm1hcCgoZGF0ZU9iamVjdCwgZGF5SW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFkYXRlT2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxkaXYga2V5PXtkYXlJbmRleH0gLz47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHByZXZNb250aCwgbmV4dE1vbnRoLCBkYXRlIH0gPSBkYXRlT2JqZWN0O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0b2RheSA9IHN0YXJ0T2ZEYXkoZGF0ZSkuZ2V0VGltZSgpID09PSBub3cuZ2V0VGltZSgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkaXNhYmxlZCA9IChtaW5EYXRlICYmIGRhdGUgPCBtaW5EYXRlKSB8fCAobWF4RGF0ZSAmJiBkYXRlID4gbWF4RGF0ZSk7XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPVxuICAgICAgICAgICAgICAgICAgICAgIGRhdGUuZ2V0VGltZSgpID09PSBtaW4/LmdldFRpbWUoKSB8fFxuICAgICAgICAgICAgICAgICAgICAgIChtaW4gJiYgbWF4ICYmIGRhdGVJbnRlcnNlY3QoZGF0ZSwgeyBtaW4sIG1heCB9KSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHByZVNlbGVjdGVkID1cbiAgICAgICAgICAgICAgICAgICAgICAhc2VsZWN0ZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAhZGlzYWJsZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAoZGF0ZS5nZXRUaW1lKCkgPT09IGhvdmVyZWQ/LmdldFRpbWUoKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgKG1pbiAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAhbWF4ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGhvdmVyZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZUludGVyc2VjdChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbiA8PSBob3ZlcmVkID8geyBtaW4sIG1heDogaG92ZXJlZCB9IDogeyBtaW46IGhvdmVyZWQsIG1heDogbWluIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICkpKTtcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YCR7aW5kZXh9LSR7ZGF5SW5kZXh9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17W1xuICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMTAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAnbm9uZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJ3RyYW5zcGFyZW50JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IGRpc2FibGVkID8gdW5kZWZpbmVkIDogJ3BvaW50ZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQ6ICdpbmhlcml0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKHByZXZNb250aCB8fCBuZXh0TW9udGgpICYmIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogZ3JheSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kYXkgJiYge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dGxpbmU6ICcxcHggc29saWQgdmFyKC0tc2Vjb25kYXJ5TWFpbiknLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZCAmJiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJ3ZhcigtLXByaW1hcnlNYWluKScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICd2YXIoLS1wcmltYXJ5Q29udHJhc3RUZXh0KScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByZVNlbGVjdGVkICYmIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAndmFyKC0tcHJpbWFyeUxpZ2h0KScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICd2YXIoLS1wcmltYXJ5Q29udHJhc3RUZXh0KScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBdfVxuICAgICAgICAgICAgICAgICAgICAgICAgey4uLmdldERhdGVQcm9wcyh7IGRhdGVPYmo6IGRhdGVPYmplY3QgfSl9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkaXJ0eSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtaW4pIHNldChtaW4sIGRhdGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugc2V0KGRhdGUsIG1heCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0KGRhdGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgb25Qb2ludGVyT3Zlcj17KCkgPT4gc2V0SG92ZXJlZChkYXRlKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uUG9pbnRlck91dD17KCkgPT4gc2V0SG92ZXJlZCh1bmRlZmluZWQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtkYXRlLmdldERhdGUoKX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgIDwvRnJhZ21lbnQ+XG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICApKX1cblxuICAgICAgPGRpdlxuICAgICAgICBjc3M9e3tcbiAgICAgICAgICBtYXJnaW5Ub3A6ICd2YXIoLS1zcGFjaW5nKScsXG4gICAgICAgICAgZGlzcGxheTogJ2dyaWQnLFxuICAgICAgICAgIGdyaWRBdXRvRmxvdzogJ2NvbHVtbicsXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICB7cmVzb2x2ZWRRdWlja09wdGlvbnN9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cbiJdfQ== */",
|
|
935
959
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__$d
|
|
936
960
|
};
|
|
937
961
|
var _ref6 = process.env.NODE_ENV === "production" ? {
|
|
938
|
-
name: "
|
|
939
|
-
styles: "justify-self:center;display:grid;grid-template-columns:repeat(
|
|
962
|
+
name: "1gqzcqr",
|
|
963
|
+
styles: "justify-self:center;display:grid;grid-template-columns:repeat(8, max-content)"
|
|
940
964
|
} : {
|
|
941
|
-
name: "
|
|
942
|
-
styles: "justify-self:center;display:grid;grid-template-columns:repeat(
|
|
943
|
-
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3NjaHVtbWFyLXRhYmxlL3NjaHVtbWFyLXRhYmxlL3NyYy9jb21wb25lbnRzL2RhdGVQaWNrZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXdWWSIsImZpbGUiOiIvaG9tZS9ydW5uZXIvd29yay9zY2h1bW1hci10YWJsZS9zY2h1bW1hci10YWJsZS9zcmMvY29tcG9uZW50cy9kYXRlUGlja2VyLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZURheXplZCB9IGZyb20gJ2RheXplZCc7XG5pbXBvcnQgdHlwZSB7IFJlYWN0Tm9kZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VUaGVtZSB9IGZyb20gJy4uL2hvb2tzL3VzZVRoZW1lJztcbmltcG9ydCB7IGdyYXkgfSBmcm9tICcuLi90aGVtZS9kZWZhdWx0VGhlbWUvZGVmYXVsdENsYXNzZXMnO1xuaW1wb3J0IHsgdXNlQ3NzVmFyaWFibGVzIH0gZnJvbSAnLi4vdGhlbWUvdXNlQ3NzVmFyaWFibGVzJztcbmltcG9ydCB7IERhdGVJbnB1dCB9IGZyb20gJy4vZGF0ZUlucHV0JztcbmltcG9ydCB7IFRleHQgfSBmcm9tICcuL3RleHQnO1xuXG5leHBvcnQgdHlwZSBEYXRlUmFuZ2UgPSB7IG1pbjogRGF0ZTsgbWF4OiBEYXRlIH07XG5cbmV4cG9ydCB0eXBlIERhdGVQaWNrZXJRdWlja09wdGlvbiA9XG4gIHwgJ3RvZGF5J1xuICB8ICd0aGlzV2VlaydcbiAgfCAndGhpc01vbnRoJ1xuICB8ICd0aGlzWWVhcidcbiAgfCAnbGFzdFNldmVuRGF5cydcbiAgfCAnbGFzdFRoaXJ0eURheXMnXG4gIHwgeyBsYWJlbDogUmVhY3ROb2RlOyB2YWx1ZTogRGF0ZSB8IERhdGVSYW5nZSB8ICgoKSA9PiBEYXRlIHwgRGF0ZVJhbmdlKSB9XG4gIHwgKChvbkNoYW5nZTogKHZhbHVlOiBEYXRlIHwgRGF0ZVJhbmdlIHwgbnVsbCkgPT4gdm9pZCkgPT4gUmVhY3ROb2RlKTtcblxuZXhwb3J0IHR5cGUgRGF0ZVBpY2tlclByb3BzID0ge1xuICAvKiogQ3VycmVudGx5IHNlbGVjdGVkIGRheSBvciByYW5nZSBvZiBkYXlzLiAqL1xuICB2YWx1ZTogRGF0ZSB8IERhdGVSYW5nZSB8IG51bGw7XG4gIC8qKiBDYWxsYmFjayBmb3Igd2hlbiB0aGUgZGF5IChyYW5nZSkgY2hhbmdlcy4gKi9cbiAgb25DaGFuZ2U6ICh2YWx1ZTogRGF0ZSB8IERhdGVSYW5nZSB8IG51bGwpID0+IHZvaWQ7XG4gIC8qKiBJZiBlbmFibGVkLCByYW5nZXMgY2FuIGJlIHNlbGVjdGVkLiAqL1xuICByYW5nZVNlbGVjdD86IGJvb2xlYW47XG4gIC8qKiBXaGljaCBsb2NhbGUgdG8gdXNlIHRvIHJlbmRlciB0aGUgY2FsZW5kYXIuICovXG4gIGxvY2FsZT86IHN0cmluZztcbiAgLyoqIFdoaWNoIGRheSBvZiB0aGUgd2VlayBzaG91bGQgYmUgaW4gdGhlIGZpcnN0IGNvbHVtbi4gKDA9U3VuZGF5LCAxPU1vbmRheSwgLi4uKVxuICAgKiBAZGVmYXVsdCAxXG4gICAqL1xuICBmaXJzdERheU9mV2Vlaz86IDAgfCAxIHwgMiB8IDMgfCA0IHwgNSB8IDY7XG4gIC8qKiBXaGljaCBtb250aCB0byBzaG93IGluaXRpYWxseSAqL1xuICBkZWZhdWx0RGF0ZUluVmlldz86IERhdGU7XG4gIC8qKiBTaG93IGJ1dHRvbnMgdG8gcXVpY2tseSBzZWxlY3Qgc3VnZ2VzdGVkIGRhdGVzIG9yIGRhdGUgcmFuZ2VzICovXG4gIHF1aWNrT3B0aW9ucz86IERhdGVQaWNrZXJRdWlja09wdGlvbltdO1xuICBtaW5EYXRlPzogRGF0ZTtcbiAgbWF4RGF0ZT86IERhdGU7XG59O1xuXG5jb25zdCB3ZWVrRGF5cyA9IFswLCAxLCAyLCAzLCA0LCA1LCA2XSBhcyBjb25zdDtcblxuLyoqIFJvdW5kcyBhIGRhdGUgZG93biB0byB0aGUgc3RhcnQgb2YgdGhlIGRheS4gKi9cbmV4cG9ydCBjb25zdCBzdGFydE9mRGF5ID0gKGQ6IERhdGUpID0+IG5ldyBEYXRlKGQuZ2V0RnVsbFllYXIoKSwgZC5nZXRNb250aCgpLCBkLmdldERhdGUoKSk7XG5cbi8qKiBSb3VuZHMgYSBkYXRlIHVwIHRvIHRoZSBlbmQgb2YgdGhlIGRheS4gKi9cbmV4cG9ydCBjb25zdCBlbmRPZkRheSA9IChkOiBEYXRlKSA9PlxuICBuZXcgRGF0ZShkLmdldEZ1bGxZZWFyKCksIGQuZ2V0TW9udGgoKSwgZC5nZXREYXRlKCkgKyAxLCAwLCAwLCAwLCAtMSk7XG5cbmV4cG9ydCBjb25zdCBsYXN0RGF5cyA9IChkYXlzOiBudW1iZXIpOiBEYXRlUmFuZ2UgPT4ge1xuICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuICBjb25zdCBtaW4gPSBuZXcgRGF0ZShub3cpO1xuICBtaW4uc2V0RGF0ZShtaW4uZ2V0RGF0ZSgpIC0gZGF5cyArIDEpO1xuXG4gIHJldHVybiB7XG4gICAgbWluOiBzdGFydE9mRGF5KG1pbiksXG4gICAgbWF4OiBlbmRPZkRheShub3cpLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHRvZGF5ID0gKCkgPT4gbGFzdERheXMoMSk7XG5cbmV4cG9ydCBjb25zdCB0aGlzV2VlayA9IChkZWx0YSA9IDAsIGZpcnN0RGF5T2ZXZWVrID0gMSk6IERhdGVSYW5nZSA9PiB7XG4gIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG4gIGNvbnN0IG1pbiA9IG5ldyBEYXRlKG5vdyk7XG5cbiAgbGV0IGRpZmYgPSBtaW4uZ2V0RGF5KCkgLSBmaXJzdERheU9mV2VlaztcbiAgaWYgKGRpZmYgPCAwKSB7XG4gICAgZGlmZiArPSA3O1xuICB9XG4gIG1pbi5zZXREYXRlKG1pbi5nZXREYXRlKCkgLSBkaWZmICsgZGVsdGEgKiA3KTtcblxuICBjb25zdCBtYXggPSBuZXcgRGF0ZShtaW4pO1xuICBtYXguc2V0RGF0ZShtYXguZ2V0RGF0ZSgpICsgNik7XG5cbiAgcmV0dXJuIHtcbiAgICBtaW46IHN0YXJ0T2ZEYXkobWluKSxcbiAgICBtYXg6IGVuZE9mRGF5KG1heCksXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgdGhpc01vbnRoID0gKGRlbHRhID0gMCk6IERhdGVSYW5nZSA9PiB7XG4gIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG4gIGNvbnN0IG1pbiA9IG5ldyBEYXRlKG5vdyk7XG4gIG1pbi5zZXREYXRlKDEpO1xuICBtaW4uc2V0TW9udGgobWluLmdldE1vbnRoKCkgKyBkZWx0YSk7XG4gIGNvbnN0IG1heCA9IG5ldyBEYXRlKG1pbik7XG4gIG1heC5zZXRNb250aChtYXguZ2V0TW9udGgoKSArIDEpO1xuICBtYXguc2V0RGF0ZShtYXguZ2V0RGF0ZSgpIC0gMSk7XG5cbiAgcmV0dXJuIHtcbiAgICBtaW46IHN0YXJ0T2ZEYXkobWluKSxcbiAgICBtYXg6IGVuZE9mRGF5KG1heCksXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgdGhpc1llYXIgPSAoZGVsdGEgPSAwKTogRGF0ZVJhbmdlID0+IHtcbiAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgY29uc3QgbWluID0gbmV3IERhdGUobm93KTtcbiAgbWluLnNldERhdGUoMSk7XG4gIG1pbi5zZXRNb250aCgwKTtcbiAgbWluLnNldEZ1bGxZZWFyKG1pbi5nZXRGdWxsWWVhcigpICsgZGVsdGEpO1xuICBjb25zdCBtYXggPSBuZXcgRGF0ZShtaW4pO1xuICBtYXguc2V0RnVsbFllYXIobWF4LmdldEZ1bGxZZWFyKCkgKyAxKTtcbiAgbWF4LnNldERhdGUobWF4LmdldERhdGUoKSAtIDEpO1xuXG4gIHJldHVybiB7XG4gICAgbWluOiBzdGFydE9mRGF5KG1pbiksXG4gICAgbWF4OiBlbmRPZkRheShtYXgpLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGNvbW1vblF1aWNrT3B0aW9ucyA9IHtcbiAgdG9kYXk6IHsgbGFiZWw6IDxUZXh0IGlkPVwidG9kYXlcIiAvPiwgdmFsdWU6IHRvZGF5IH0sXG4gIHRoaXNXZWVrOiB7IGxhYmVsOiA8VGV4dCBpZD1cInRoaXNXZWVrXCIgLz4sIHZhbHVlOiAocHJvcHMpID0+IHRoaXNXZWVrKDAsIHByb3BzLmZpcnN0RGF5T2ZXZWVrKSB9LFxuICB0aGlzTW9udGg6IHsgbGFiZWw6IDxUZXh0IGlkPVwidGhpc01vbnRoXCIgLz4sIHZhbHVlOiAoKSA9PiB0aGlzTW9udGgoKSB9LFxuICB0aGlzWWVhcjogeyBsYWJlbDogPFRleHQgaWQ9XCJ0aGlzWWVhclwiIC8+LCB2YWx1ZTogKCkgPT4gdGhpc1llYXIoKSB9LFxuICBsYXN0U2V2ZW5EYXlzOiB7IGxhYmVsOiA8VGV4dCBpZD1cImxhc3RTZXZlbkRheXNcIiAvPiwgdmFsdWU6ICgpID0+IGxhc3REYXlzKDcpIH0sXG4gIGxhc3RUaGlydHlEYXlzOiB7IGxhYmVsOiA8VGV4dCBpZD1cImxhc3RUaGlydHlEYXlzXCIgLz4sIHZhbHVlOiAoKSA9PiBsYXN0RGF5cygzMCkgfSxcbn0gc2F0aXNmaWVzIFJlY29yZDxcbiAgRGF0ZVBpY2tlclF1aWNrT3B0aW9uICYgc3RyaW5nLFxuICB7IGxhYmVsOiBSZWFjdE5vZGU7IHZhbHVlOiBEYXRlIHwgRGF0ZVJhbmdlIHwgKChwcm9wczogRGF0ZVBpY2tlclByb3BzKSA9PiBEYXRlIHwgRGF0ZVJhbmdlKSB9XG4+O1xuXG4vKiogUmV0dXJucyB3aGV0aGVyIHR3byBkYXRlcyBhbmQvb3IgZGF0ZSByYW5nZXMgaW50ZXJzZWN0LiBJbnRlcnNlY3Rpb24gaXMgY29uc2lkZXJlZCBwZXIgZGF5LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRhdGVJbnRlcnNlY3QoYTogRGF0ZSB8IG51bGwgfCBEYXRlUmFuZ2UsIGI6IERhdGUgfCBudWxsIHwgRGF0ZVJhbmdlKSB7XG4gIGlmIChhIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgIGEgPSB7IG1pbjogYSwgbWF4OiBhIH07XG4gIH1cbiAgaWYgKGIgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgYiA9IHsgbWluOiBiLCBtYXg6IGIgfTtcbiAgfVxuXG4gIGlmICghYT8ubWluIHx8ICFhLm1heCB8fCAhYj8ubWluIHx8ICFiLm1heCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiAhKGVuZE9mRGF5KGEubWF4KSA8IHN0YXJ0T2ZEYXkoYi5taW4pIHx8IHN0YXJ0T2ZEYXkoYS5taW4pID4gZW5kT2ZEYXkoYi5tYXgpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRhdGVDbGFtcChkYXRlOiBEYXRlLCBtaW4/OiBEYXRlLCBtYXg/OiBEYXRlKSB7XG4gIGlmIChtaW4gJiYgZGF0ZSA8IG1pbikge1xuICAgIHJldHVybiBtaW47XG4gIH1cblxuICBpZiAobWF4ICYmIGRhdGUgPiBtYXgpIHtcbiAgICByZXR1cm4gbWF4O1xuICB9XG5cbiAgcmV0dXJuIGRhdGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBEYXRlUGlja2VyKHByb3BzOiBEYXRlUGlja2VyUHJvcHMpIHtcbiAgY29uc3Qge1xuICAgIHZhbHVlLFxuICAgIHJhbmdlU2VsZWN0LFxuICAgIGxvY2FsZSxcbiAgICBmaXJzdERheU9mV2VlayA9IDEsXG4gICAgZGVmYXVsdERhdGVJblZpZXcsXG4gICAgcXVpY2tPcHRpb25zID0gWyd0b2RheScsICd0aGlzV2VlayddLFxuICAgIG1pbkRhdGUsXG4gICAgbWF4RGF0ZSxcbiAgfSA9IHByb3BzO1xuXG4gIGZ1bmN0aW9uIG9uQ2hhbmdlKHZhbHVlOiBEYXRlIHwgRGF0ZVJhbmdlIHwgbnVsbCkge1xuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgIHZhbHVlID0gZGF0ZUNsYW1wKHZhbHVlLCBtaW5EYXRlLCBtYXhEYXRlKTtcbiAgICB9IGVsc2UgaWYgKHZhbHVlKSB7XG4gICAgICB2YWx1ZSA9IHtcbiAgICAgICAgbWluOiBkYXRlQ2xhbXAodmFsdWUubWluLCBtaW5EYXRlLCBtYXhEYXRlKSxcbiAgICAgICAgbWF4OiBkYXRlQ2xhbXAodmFsdWUubWF4LCBtaW5EYXRlLCBtYXhEYXRlKSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcHJvcHMub25DaGFuZ2UodmFsdWUpO1xuICB9XG5cbiAgY29uc3QgQnV0dG9uID0gdXNlVGhlbWUoKHQpID0+IHQuY29tcG9uZW50cy5CdXR0b24pO1xuICBjb25zdCBJY29uQnV0dG9uID0gdXNlVGhlbWUoKHQpID0+IHQuY29tcG9uZW50cy5JY29uQnV0dG9uKTtcbiAgY29uc3QgQ2hldnJvblJpZ2h0ID0gdXNlVGhlbWUoKHQpID0+IHQuaWNvbnMuQ2hldnJvblJpZ2h0KTtcbiAgY29uc3QgY3NzVmFyaWFibGVzID0gdXNlQ3NzVmFyaWFibGVzKCk7XG5cbiAgY29uc3QgbW91bnRUaW1lID0gdXNlTWVtbygoKSA9PiBuZXcgRGF0ZSgpLCBbXSk7XG4gIGNvbnN0IFtkYXRlSW5WaWV3LCBzZXREYXRlSW5WaWV3XSA9IHVzZVN0YXRlPERhdGU+KGRlZmF1bHREYXRlSW5WaWV3ID8/IG1vdW50VGltZSk7XG4gIGNvbnN0IFtkaXJ0eSwgc2V0RGlydHldID0gdXNlU3RhdGU8UGFydGlhbDxEYXRlUmFuZ2U+PigpO1xuICBjb25zdCBbaG92ZXJlZCwgc2V0SG92ZXJlZF0gPSB1c2VTdGF0ZTxEYXRlPigpO1xuXG4gIGNvbnN0IG1pbiA9IGRpcnR5ID8gZGlydHkubWluIDogdmFsdWUgaW5zdGFuY2VvZiBEYXRlID8gdmFsdWUgOiB2YWx1ZT8ubWluO1xuICBjb25zdCBtYXggPSBkaXJ0eSA/IGRpcnR5Lm1heCA6IHZhbHVlIGluc3RhbmNlb2YgRGF0ZSA/IHZhbHVlIDogdmFsdWU/Lm1heDtcblxuICBjb25zdCByZXNvbHZlZFF1aWNrT3B0aW9ucyA9IFsuLi5xdWlja09wdGlvbnMsIHsgbGFiZWw6IDxUZXh0IGlkPVwicmVzZXRcIiAvPiwgdmFsdWU6IG51bGwgfV0ubWFwKFxuICAgIChvcHRpb24sIGluZGV4KSA9PiB7XG4gICAgICBpZiAob3B0aW9uIGluc3RhbmNlb2YgRnVuY3Rpb24pIHtcbiAgICAgICAgcmV0dXJuIG9wdGlvbigodmFsdWUpID0+IHtcbiAgICAgICAgICBzZXREaXJ0eSh1bmRlZmluZWQpO1xuICAgICAgICAgIG9uQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHsgbGFiZWwsIHZhbHVlIH0gPSB0eXBlb2Ygb3B0aW9uID09PSAnc3RyaW5nJyA/IGNvbW1vblF1aWNrT3B0aW9uc1tvcHRpb25dIDogb3B0aW9uO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8QnV0dG9uXG4gICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICB2YXJpYW50PVwidGV4dFwiXG4gICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgc2V0RGlydHkodW5kZWZpbmVkKTtcblxuICAgICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRnVuY3Rpb24pIHtcbiAgICAgICAgICAgICAgb25DaGFuZ2UodmFsdWUocHJvcHMpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIG9uQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAge2xhYmVsfVxuICAgICAgICA8L0J1dHRvbj5cbiAgICAgICk7XG4gICAgfSxcbiAgKTtcblxuICBjb25zdCB7IGNhbGVuZGFycywgZ2V0QmFja1Byb3BzLCBnZXRGb3J3YXJkUHJvcHMsIGdldERhdGVQcm9wcyB9ID0gdXNlRGF5emVkKHtcbiAgICBvbkRhdGVTZWxlY3RlZDogKCkgPT4gdW5kZWZpbmVkLFxuICAgIGZpcnN0RGF5T2ZXZWVrLFxuICAgIHNob3dPdXRzaWRlRGF5czogdHJ1ZSxcbiAgICBkYXRlOiBkYXRlSW5WaWV3LFxuICAgIG9uT2Zmc2V0Q2hhbmdlZDogKG9mZnNldCkgPT5cbiAgICAgIHNldERhdGVJblZpZXcobmV3IERhdGUoZGF0ZUluVmlldy5nZXRGdWxsWWVhcigpLCBkYXRlSW5WaWV3LmdldE1vbnRoKCkgKyBvZmZzZXQpKSxcbiAgICBvZmZzZXQ6IDAsXG4gICAgbWluRGF0ZSxcbiAgICBtYXhEYXRlLFxuICB9KTtcbiAgY29uc3Qgbm93ID0gdXNlTWVtbygoKSA9PiBzdGFydE9mRGF5KG5ldyBEYXRlKCkpLCBbXSk7XG5cbiAgY29uc3QgZm9ybWF0V2Vla2RheSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHsgZm9ybWF0IH0gPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NhbGUsIHsgd2Vla2RheTogJ3Nob3J0JyB9KTtcbiAgICByZXR1cm4gKHdlZWtEYXk6IG51bWJlcikgPT5cbiAgICAgIGZvcm1hdChuZXcgRGF0ZShEYXRlLlVUQygyMDIxLCA3LCAoKHdlZWtEYXkgKyBmaXJzdERheU9mV2VlaykgJSA3KSArIDEpKSk7XG4gIH0sIFtsb2NhbGUsIGZpcnN0RGF5T2ZXZWVrXSk7XG5cbiAgdXNlRWZmZWN0KFxuICAgICgpID0+XG4gICAgICBzZXREYXRlSW5WaWV3KFxuICAgICAgICB2YWx1ZSA9PT0gbnVsbCA/IGRlZmF1bHREYXRlSW5WaWV3ID8/IG1vdW50VGltZSA6IHZhbHVlIGluc3RhbmNlb2YgRGF0ZSA/IHZhbHVlIDogdmFsdWUubWF4LFxuICAgICAgKSxcbiAgICBbdmFsdWUsIGRlZmF1bHREYXRlSW5WaWV3LCBtb3VudFRpbWVdLFxuICApO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFyYW5nZVNlbGVjdCkge1xuICAgICAgc2V0RGlydHkodW5kZWZpbmVkKTtcbiAgICB9XG4gIH0sIFtyYW5nZVNlbGVjdF0pO1xuXG4gIGZ1bmN0aW9uIHNldChtaW4/OiBEYXRlLCBtYXg/OiBEYXRlLCBlZGl0PzogJ21pbicgfCAnbWF4Jykge1xuICAgIGlmICghcmFuZ2VTZWxlY3QpIHtcbiAgICAgIG9uQ2hhbmdlKG1pbiA/PyBudWxsKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAobWluICYmIG1heCAmJiBtaW4gPiBtYXgpIHtcbiAgICAgIGlmIChlZGl0ID09PSAnbWluJykge1xuICAgICAgICBtYXggPSBtaW47XG4gICAgICB9IGVsc2UgaWYgKGVkaXQgPT09ICdtYXgnKSB7XG4gICAgICAgIG1pbiA9IG1heDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIFttaW4sIG1heF0gPSBbbWF4LCBtaW5dO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghbWluID09PSAhbWF4KSB7XG4gICAgICBzZXREaXJ0eSh1bmRlZmluZWQpO1xuICAgICAgb25DaGFuZ2UobWluICYmIG1heCA/IHsgbWluLCBtYXg6IGVuZE9mRGF5KG1heCkgfSA6IG51bGwpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXREaXJ0eSh7IG1pbiwgbWF4IH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGZvcm1hdE1vbnRoID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgeyBmb3JtYXQgfSA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KGxvY2FsZSwgeyBtb250aDogJ2xvbmcnIH0pO1xuICAgIHJldHVybiAobW9udGg6IG51bWJlcikgPT4gZm9ybWF0KG5ldyBEYXRlKDIwMjEsIG1vbnRoKSk7XG4gIH0sIFtsb2NhbGVdKTtcblxuICBjb25zdCBmb3JtYXRZZWFyID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgeyBmb3JtYXQgfSA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KGxvY2FsZSwgeyB5ZWFyOiAnbnVtZXJpYycgfSk7XG4gICAgcmV0dXJuICh5ZWFyOiBudW1iZXIpID0+IGZvcm1hdChuZXcgRGF0ZSh5ZWFyLCAwLCAxKSk7XG4gIH0sIFtsb2NhbGVdKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY3NzPXtjc3NWYXJpYWJsZXN9PlxuICAgICAgPGRpdlxuICAgICAgICBjc3M9e3tcbiAgICAgICAgICBkaXNwbGF5OiAnZ3JpZCcsXG4gICAgICAgICAgZ3JpZEF1dG9GbG93OiAnY29sdW1uJyxcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgYWxpZ25JdGVtczogJ2Jhc2VsaW5lJyxcbiAgICAgICAgICBnYXA6ICd2YXIoLS1zcGFjaW5nKScsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxEYXRlSW5wdXRcbiAgICAgICAgICB2YWx1ZT17bWluID8/IG51bGx9XG4gICAgICAgICAgb25DaGFuZ2U9eyhkYXRlKSA9PiBzZXQoZGF0ZSA/PyB1bmRlZmluZWQsIG1heCwgJ21pbicpfVxuICAgICAgICAgIGxvY2FsZT17bG9jYWxlfVxuICAgICAgICAvPlxuXG4gICAgICAgIHtyYW5nZVNlbGVjdCAmJiAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIHsnIC0gJ31cbiAgICAgICAgICAgIDxEYXRlSW5wdXRcbiAgICAgICAgICAgICAgdmFsdWU9e21heCA/PyBudWxsfVxuICAgICAgICAgICAgICBvbkNoYW5nZT17KGRhdGUpID0+IHNldChtaW4sIGRhdGUgPz8gdW5kZWZpbmVkLCAnbWF4Jyl9XG4gICAgICAgICAgICAgIGxvY2FsZT17bG9jYWxlfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuXG4gICAgICB7Y2FsZW5kYXJzLm1hcCgoeyBtb250aCwgeWVhciwgd2Vla3MgfSkgPT4gKFxuICAgICAgICA8ZGl2IGtleT17YCR7bW9udGh9JHt5ZWFyfWB9IGNzcz17eyBkaXNwbGF5OiAnZ3JpZCcgfX0+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY3NzPXt7XG4gICAgICAgICAgICAgIG1hcmdpbjogJ2NhbGModmFyKC0tc3BhY2luZykgKiA0KSAwJyxcbiAgICAgICAgICAgICAgZGlzcGxheTogJ2dyaWQnLFxuICAgICAgICAgICAgICBncmlkQXV0b0Zsb3c6ICdjb2x1bW4nLFxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ3NwYWNlLWJldHdlZW4nLFxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEljb25CdXR0b24gey4uLmdldEJhY2tQcm9wcyh7IGNhbGVuZGFycyB9KX0+XG4gICAgICAgICAgICAgIDxDaGV2cm9uUmlnaHQgY3NzPXt7IHRyYW5zZm9ybTogJ3JvdGF0ZTNkKDAsIDAsIDEsIDE4MGRlZyknIH19IC8+XG4gICAgICAgICAgICA8L0ljb25CdXR0b24+XG5cbiAgICAgICAgICAgIDxkaXYgY3NzPXt7IGRpc3BsYXk6ICdmbGV4JyB9fT5cbiAgICAgICAgICAgICAge2Zvcm1hdE1vbnRoKG1vbnRoKX0ge2Zvcm1hdFllYXIoeWVhcil9XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPEljb25CdXR0b24gey4uLmdldEZvcndhcmRQcm9wcyh7IGNhbGVuZGFycyB9KX0+XG4gICAgICAgICAgICAgIDxDaGV2cm9uUmlnaHQgLz5cbiAgICAgICAgICAgIDwvSWNvbkJ1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNzcz17e1xuICAgICAgICAgICAgICBqdXN0aWZ5U2VsZjogJ2NlbnRlcicsXG4gICAgICAgICAgICAgIGRpc3BsYXk6ICdncmlkJyxcbiAgICAgICAgICAgICAgZ3JpZFRlbXBsYXRlQ29sdW1uczogJ3JlcGVhdCg3LCBtYXgtY29udGVudCknLFxuICAgICAgICAgICAgICBmb250V2VpZ2h0OiAnYm9sZCcsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt3ZWVrRGF5cy5tYXAoKF92LCB3ZWVrRGF5KSA9PiAoXG4gICAgICAgICAgICAgIDxkaXYga2V5PXt3ZWVrRGF5fSBjc3M9e3sganVzdGlmeVNlbGY6ICdjZW50ZXInLCBtYXJnaW5Cb3R0b206ICd2YXIoLS1zcGFjaW5nKScgfX0+XG4gICAgICAgICAgICAgICAge2Zvcm1hdFdlZWtkYXkod2Vla0RheSl9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKSl9XG5cbiAgICAgICAgICAgIHt3ZWVrcy5tYXAoKHdlZWssIGluZGV4KSA9PlxuICAgICAgICAgICAgICB3ZWVrLm1hcCgoZGF0ZU9iamVjdCwgZGF5SW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIWRhdGVPYmplY3QpIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiA8ZGl2IGtleT17YCR7aW5kZXh9LSR7ZGF5SW5kZXh9YH0gLz47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3QgeyBwcmV2TW9udGgsIG5leHRNb250aCwgZGF0ZSB9ID0gZGF0ZU9iamVjdDtcbiAgICAgICAgICAgICAgICBjb25zdCB0b2RheSA9IHN0YXJ0T2ZEYXkoZGF0ZSkuZ2V0VGltZSgpID09PSBub3cuZ2V0VGltZSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGRpc2FibGVkID0gKG1pbkRhdGUgJiYgZGF0ZSA8IG1pbkRhdGUpIHx8IChtYXhEYXRlICYmIGRhdGUgPiBtYXhEYXRlKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkID1cbiAgICAgICAgICAgICAgICAgIGRhdGUuZ2V0VGltZSgpID09PSBtaW4/LmdldFRpbWUoKSB8fFxuICAgICAgICAgICAgICAgICAgKG1pbiAmJiBtYXggJiYgZGF0ZUludGVyc2VjdChkYXRlLCB7IG1pbiwgbWF4IH0pKTtcbiAgICAgICAgICAgICAgICBjb25zdCBwcmVTZWxlY3RlZCA9XG4gICAgICAgICAgICAgICAgICAhc2VsZWN0ZWQgJiZcbiAgICAgICAgICAgICAgICAgICFkaXNhYmxlZCAmJlxuICAgICAgICAgICAgICAgICAgKGRhdGUuZ2V0VGltZSgpID09PSBob3ZlcmVkPy5nZXRUaW1lKCkgfHxcbiAgICAgICAgICAgICAgICAgICAgKG1pbiAmJlxuICAgICAgICAgICAgICAgICAgICAgICFtYXggJiZcbiAgICAgICAgICAgICAgICAgICAgICBob3ZlcmVkICYmXG4gICAgICAgICAgICAgICAgICAgICAgZGF0ZUludGVyc2VjdChcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBtaW4gPD0gaG92ZXJlZCA/IHsgbWluLCBtYXg6IGhvdmVyZWQgfSA6IHsgbWluOiBob3ZlcmVkLCBtYXg6IG1pbiB9LFxuICAgICAgICAgICAgICAgICAgICAgICkpKTtcblxuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGtleT17YCR7aW5kZXh9LSR7ZGF5SW5kZXh9YH1cbiAgICAgICAgICAgICAgICAgICAgY3NzPXtbXG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMTAsXG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6ICcxcHggc29saWQgdHJhbnNwYXJlbnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJ3RyYW5zcGFyZW50JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnNvcjogJ3BvaW50ZXInLFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgKHByZXZNb250aCB8fCBuZXh0TW9udGgpICYmIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBncmF5LFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgdG9kYXkgJiYge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAnMXB4IHNvbGlkIHZhcigtLXNlY29uZGFyeU1haW4pJyxcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkICYmIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICd2YXIoLS1wcmltYXJ5TWFpbiknLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICd2YXIoLS1wcmltYXJ5Q29udHJhc3RUZXh0KScsXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBwcmVTZWxlY3RlZCAmJiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAndmFyKC0tcHJpbWFyeUxpZ2h0KScsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ3ZhcigtLXByaW1hcnlDb250cmFzdFRleHQpJyxcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBdfVxuICAgICAgICAgICAgICAgICAgICB7Li4uZ2V0RGF0ZVByb3BzKHsgZGF0ZU9iajogZGF0ZU9iamVjdCB9KX1cbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIGlmIChkaXJ0eSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1pbikgc2V0KG1pbiwgZGF0ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHNldChkYXRlLCBtYXgpO1xuICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXQoZGF0ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICBvblBvaW50ZXJPdmVyPXsoKSA9PiBzZXRIb3ZlcmVkKGRhdGUpfVxuICAgICAgICAgICAgICAgICAgICBvblBvaW50ZXJPdXQ9eygpID0+IHNldEhvdmVyZWQodW5kZWZpbmVkKX1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7ZGF0ZS5nZXREYXRlKCl9XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKSl9XG5cbiAgICAgIDxkaXZcbiAgICAgICAgY3NzPXt7XG4gICAgICAgICAgbWFyZ2luVG9wOiAndmFyKC0tc3BhY2luZyknLFxuICAgICAgICAgIGRpc3BsYXk6ICdncmlkJyxcbiAgICAgICAgICBncmlkQXV0b0Zsb3c6ICdjb2x1bW4nLFxuICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAge3Jlc29sdmVkUXVpY2tPcHRpb25zfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICk7XG59XG4iXX0= */",
|
|
965
|
+
name: "ru3xfb-DatePicker",
|
|
966
|
+
styles: "justify-self:center;display:grid;grid-template-columns:repeat(8, max-content);label:DatePicker;",
|
|
967
|
+
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3NjaHVtbWFyLXRhYmxlL3NjaHVtbWFyLXRhYmxlL3NyYy9jb21wb25lbnRzL2RhdGVQaWNrZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXVZWSIsImZpbGUiOiIvaG9tZS9ydW5uZXIvd29yay9zY2h1bW1hci10YWJsZS9zY2h1bW1hci10YWJsZS9zcmMvY29tcG9uZW50cy9kYXRlUGlja2VyLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGVPYmosIHVzZURheXplZCB9IGZyb20gJ2RheXplZCc7XG5pbXBvcnQge1xuICBGcmFnbWVudCxcbiAgUmVhY3ROb2RlLFxuICBjcmVhdGVDb250ZXh0LFxuICB1c2VDb250ZXh0LFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVN0YXRlLFxufSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VUaGVtZSB9IGZyb20gJy4uL2hvb2tzL3VzZVRoZW1lJztcbmltcG9ydCB7IGRlZmF1bHRzIH0gZnJvbSAnLi4vbWlzYy9kZWZhdWx0cyc7XG5pbXBvcnQgeyBncmF5IH0gZnJvbSAnLi4vdGhlbWUvZGVmYXVsdFRoZW1lL2RlZmF1bHRDbGFzc2VzJztcbmltcG9ydCB7IHVzZUNzc1ZhcmlhYmxlcyB9IGZyb20gJy4uL3RoZW1lL3VzZUNzc1ZhcmlhYmxlcyc7XG5pbXBvcnQgeyBEYXRlSW5wdXQgfSBmcm9tICcuL2RhdGVJbnB1dCc7XG5pbXBvcnQgeyBUZXh0IH0gZnJvbSAnLi90ZXh0JztcblxuZXhwb3J0IHR5cGUgRGF0ZVJhbmdlID0geyBtaW46IERhdGU7IG1heDogRGF0ZSB9O1xuXG5leHBvcnQgdHlwZSBEYXRlUGlja2VyUXVpY2tPcHRpb24gPVxuICB8ICd0b2RheSdcbiAgfCAndGhpc1dlZWsnXG4gIHwgJ3RoaXNNb250aCdcbiAgfCAndGhpc1llYXInXG4gIHwgJ2xhc3RTZXZlbkRheXMnXG4gIHwgJ2xhc3RUaGlydHlEYXlzJ1xuICB8IHsgbGFiZWw6IFJlYWN0Tm9kZTsgdmFsdWU6IERhdGUgfCBEYXRlUmFuZ2UgfCAoKCkgPT4gRGF0ZSB8IERhdGVSYW5nZSkgfVxuICB8ICgob25DaGFuZ2U6ICh2YWx1ZTogRGF0ZSB8IERhdGVSYW5nZSB8IG51bGwpID0+IHZvaWQpID0+IFJlYWN0Tm9kZSk7XG5cbmV4cG9ydCB0eXBlIERhdGVQaWNrZXJQcm9wcyA9IHtcbiAgLyoqIEN1cnJlbnRseSBzZWxlY3RlZCBkYXkgb3IgcmFuZ2Ugb2YgZGF5cy4gKi9cbiAgdmFsdWU6IERhdGUgfCBEYXRlUmFuZ2UgfCBudWxsO1xuICAvKiogQ2FsbGJhY2sgZm9yIHdoZW4gdGhlIGRheSAocmFuZ2UpIGNoYW5nZXMuICovXG4gIG9uQ2hhbmdlOiAodmFsdWU6IERhdGUgfCBEYXRlUmFuZ2UgfCBudWxsKSA9PiB2b2lkO1xuICAvKiogSWYgZW5hYmxlZCwgcmFuZ2VzIGNhbiBiZSBzZWxlY3RlZC4gKi9cbiAgcmFuZ2VTZWxlY3Q/OiBib29sZWFuO1xuICAvKiogV2hpY2ggbG9jYWxlIHRvIHVzZSB0byByZW5kZXIgdGhlIGNhbGVuZGFyLiAqL1xuICBsb2NhbGU/OiBzdHJpbmc7XG4gIC8qKiBXaGljaCBkYXkgb2YgdGhlIHdlZWsgc2hvdWxkIGJlIGluIHRoZSBmaXJzdCBjb2x1bW4uICgwPVN1bmRheSwgMT1Nb25kYXksIC4uLilcbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgZmlyc3REYXlPZldlZWs/OiAwIHwgMSB8IDIgfCAzIHwgNCB8IDUgfCA2O1xuICAvKiogV2hpY2ggbW9udGggdG8gc2hvdyBpbml0aWFsbHkgKi9cbiAgZGVmYXVsdERhdGVJblZpZXc/OiBEYXRlO1xuICAvKiogU2hvdyBidXR0b25zIHRvIHF1aWNrbHkgc2VsZWN0IHN1Z2dlc3RlZCBkYXRlcyBvciBkYXRlIHJhbmdlcyAqL1xuICBxdWlja09wdGlvbnM/OiBEYXRlUGlja2VyUXVpY2tPcHRpb25bXTtcbiAgLyoqIE1pbmltdW0gc2VsZWN0YWJsZSBkYXRlICovXG4gIG1pbkRhdGU/OiBEYXRlO1xuICAvKiogTWF4aW11bSBzZWxlY3RhYmxlIGRhdGUgKi9cbiAgbWF4RGF0ZT86IERhdGU7XG4gIC8qKiBXaGV0aGVyIHRvIHNob3cgdGhlIGNhbGVuZGFyIHdlZWsgaW4gdGhlIGZpcnN0IGNvbHVtbiAqL1xuICBzaG93Q2FsZW5kYXJXZWVrPzogYm9vbGVhbjtcbn07XG5cbmNvbnN0IERhdGVQaWNrZXJDb250ZXh0ID0gY3JlYXRlQ29udGV4dDxQYXJ0aWFsPE9taXQ8RGF0ZVBpY2tlclByb3BzLCAndmFsdWUnIHwgJ29uQ2hhbmdlJz4+Pih7fSk7XG5cbmV4cG9ydCBmdW5jdGlvbiBEYXRlUGlja2VyUHJvdmlkZXIoe1xuICBjaGlsZHJlbixcbiAgLi4ucHJvcHNcbn06IFBhcnRpYWw8T21pdDxEYXRlUGlja2VyUHJvcHMsICd2YWx1ZScgfCAnb25DaGFuZ2UnPj4gJiB7IGNoaWxkcmVuPzogUmVhY3ROb2RlIH0pIHtcbiAgY29uc3QgdmFsdWUgPSB1c2VNZW1vKCgpID0+IHByb3BzLCBbSlNPTi5zdHJpbmdpZnkocHJvcHMpXSk7XG5cbiAgcmV0dXJuIDxEYXRlUGlja2VyQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17dmFsdWV9PntjaGlsZHJlbn08L0RhdGVQaWNrZXJDb250ZXh0LlByb3ZpZGVyPjtcbn1cblxuY29uc3Qgd2Vla0RheXMgPSBbMCwgMSwgMiwgMywgNCwgNSwgNl0gYXMgY29uc3Q7XG5cbi8qKiBSb3VuZHMgYSBkYXRlIGRvd24gdG8gdGhlIHN0YXJ0IG9mIHRoZSBkYXkuICovXG5leHBvcnQgY29uc3Qgc3RhcnRPZkRheSA9IChkOiBEYXRlKSA9PiBuZXcgRGF0ZShkLmdldEZ1bGxZZWFyKCksIGQuZ2V0TW9udGgoKSwgZC5nZXREYXRlKCkpO1xuXG4vKiogUm91bmRzIGEgZGF0ZSB1cCB0byB0aGUgZW5kIG9mIHRoZSBkYXkuICovXG5leHBvcnQgY29uc3QgZW5kT2ZEYXkgPSAoZDogRGF0ZSkgPT5cbiAgbmV3IERhdGUoZC5nZXRGdWxsWWVhcigpLCBkLmdldE1vbnRoKCksIGQuZ2V0RGF0ZSgpICsgMSwgMCwgMCwgMCwgLTEpO1xuXG5leHBvcnQgY29uc3QgbGFzdERheXMgPSAoZGF5czogbnVtYmVyKTogRGF0ZVJhbmdlID0+IHtcbiAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgY29uc3QgbWluID0gbmV3IERhdGUobm93KTtcbiAgbWluLnNldERhdGUobWluLmdldERhdGUoKSAtIGRheXMgKyAxKTtcblxuICByZXR1cm4ge1xuICAgIG1pbjogc3RhcnRPZkRheShtaW4pLFxuICAgIG1heDogZW5kT2ZEYXkobm93KSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCB0b2RheSA9ICgpID0+IGxhc3REYXlzKDEpO1xuXG5leHBvcnQgY29uc3QgdGhpc1dlZWsgPSAoZGVsdGEgPSAwLCBmaXJzdERheU9mV2VlayA9IDEpOiBEYXRlUmFuZ2UgPT4ge1xuICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuICBjb25zdCBtaW4gPSBuZXcgRGF0ZShub3cpO1xuXG4gIGxldCBkaWZmID0gbWluLmdldERheSgpIC0gZmlyc3REYXlPZldlZWs7XG4gIGlmIChkaWZmIDwgMCkge1xuICAgIGRpZmYgKz0gNztcbiAgfVxuICBtaW4uc2V0RGF0ZShtaW4uZ2V0RGF0ZSgpIC0gZGlmZiArIGRlbHRhICogNyk7XG5cbiAgY29uc3QgbWF4ID0gbmV3IERhdGUobWluKTtcbiAgbWF4LnNldERhdGUobWF4LmdldERhdGUoKSArIDYpO1xuXG4gIHJldHVybiB7XG4gICAgbWluOiBzdGFydE9mRGF5KG1pbiksXG4gICAgbWF4OiBlbmRPZkRheShtYXgpLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHRoaXNNb250aCA9IChkZWx0YSA9IDApOiBEYXRlUmFuZ2UgPT4ge1xuICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuICBjb25zdCBtaW4gPSBuZXcgRGF0ZShub3cpO1xuICBtaW4uc2V0RGF0ZSgxKTtcbiAgbWluLnNldE1vbnRoKG1pbi5nZXRNb250aCgpICsgZGVsdGEpO1xuICBjb25zdCBtYXggPSBuZXcgRGF0ZShtaW4pO1xuICBtYXguc2V0TW9udGgobWF4LmdldE1vbnRoKCkgKyAxKTtcbiAgbWF4LnNldERhdGUobWF4LmdldERhdGUoKSAtIDEpO1xuXG4gIHJldHVybiB7XG4gICAgbWluOiBzdGFydE9mRGF5KG1pbiksXG4gICAgbWF4OiBlbmRPZkRheShtYXgpLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHRoaXNZZWFyID0gKGRlbHRhID0gMCk6IERhdGVSYW5nZSA9PiB7XG4gIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG4gIGNvbnN0IG1pbiA9IG5ldyBEYXRlKG5vdyk7XG4gIG1pbi5zZXREYXRlKDEpO1xuICBtaW4uc2V0TW9udGgoMCk7XG4gIG1pbi5zZXRGdWxsWWVhcihtaW4uZ2V0RnVsbFllYXIoKSArIGRlbHRhKTtcbiAgY29uc3QgbWF4ID0gbmV3IERhdGUobWluKTtcbiAgbWF4LnNldEZ1bGxZZWFyKG1heC5nZXRGdWxsWWVhcigpICsgMSk7XG4gIG1heC5zZXREYXRlKG1heC5nZXREYXRlKCkgLSAxKTtcblxuICByZXR1cm4ge1xuICAgIG1pbjogc3RhcnRPZkRheShtaW4pLFxuICAgIG1heDogZW5kT2ZEYXkobWF4KSxcbiAgfTtcbn07XG5cbmNvbnN0IE1TX1BFUl9EQVkgPSAxMDAwICogNjAgKiA2MCAqIDI0O1xuZXhwb3J0IGNvbnN0IGdldENhbGVuZGFyV2VlayA9IChkYXRlOiBEYXRlKTogbnVtYmVyID0+IHtcbiAgLy8gSVNPIDg2MDE6IFdlZWsgMSBpcyB0aGUgd2VlayB3aXRoIHRoZSBmaXJzdCBUaHVyc2RheSBvZiB0aGUgeWVhci5cbiAgLy8gaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPX3dlZWtfZGF0ZVxuXG4gIGNvbnN0IHkgPSBkYXRlLmdldEZ1bGxZZWFyKCk7XG4gIGNvbnN0IGZkb3kgPSBuZXcgRGF0ZSh5LCAwLCAxKTtcbiAgY29uc3QgZG95ID0gTWF0aC5mbG9vcihcbiAgICAoZGF0ZS5nZXRUaW1lKCkgLSBmZG95LmdldFRpbWUoKSArIChkYXRlLmdldFRpbWV6b25lT2Zmc2V0KCkgLSBmZG95LmdldFRpbWV6b25lT2Zmc2V0KCkpKSAvXG4gICAgICBNU19QRVJfREFZLFxuICApO1xuICBjb25zdCBkb3cgPSBmZG95LmdldERheSgpO1xuICBjb25zdCB3ID0gTWF0aC5mbG9vcigoMTAgKyBkb3kgLSBkb3cpIC8gNyk7XG5cbiAgaWYgKHcgPT09IDApIHtcbiAgICByZXR1cm4gZ2V0Q2FsZW5kYXJXZWVrKG5ldyBEYXRlKHkgLSAxLCAxMSwgMzEpKTtcbiAgfVxuXG4gIHJldHVybiB3O1xufTtcblxuZXhwb3J0IGNvbnN0IGNvbW1vblF1aWNrT3B0aW9ucyA9IHtcbiAgdG9kYXk6IHsgbGFiZWw6IDxUZXh0IGlkPVwidG9kYXlcIiAvPiwgdmFsdWU6IHRvZGF5IH0sXG4gIHRoaXNXZWVrOiB7IGxhYmVsOiA8VGV4dCBpZD1cInRoaXNXZWVrXCIgLz4sIHZhbHVlOiAocHJvcHMpID0+IHRoaXNXZWVrKDAsIHByb3BzLmZpcnN0RGF5T2ZXZWVrKSB9LFxuICB0aGlzTW9udGg6IHsgbGFiZWw6IDxUZXh0IGlkPVwidGhpc01vbnRoXCIgLz4sIHZhbHVlOiAoKSA9PiB0aGlzTW9udGgoKSB9LFxuICB0aGlzWWVhcjogeyBsYWJlbDogPFRleHQgaWQ9XCJ0aGlzWWVhclwiIC8+LCB2YWx1ZTogKCkgPT4gdGhpc1llYXIoKSB9LFxuICBsYXN0U2V2ZW5EYXlzOiB7IGxhYmVsOiA8VGV4dCBpZD1cImxhc3RTZXZlbkRheXNcIiAvPiwgdmFsdWU6ICgpID0+IGxhc3REYXlzKDcpIH0sXG4gIGxhc3RUaGlydHlEYXlzOiB7IGxhYmVsOiA8VGV4dCBpZD1cImxhc3RUaGlydHlEYXlzXCIgLz4sIHZhbHVlOiAoKSA9PiBsYXN0RGF5cygzMCkgfSxcbn0gc2F0aXNmaWVzIFJlY29yZDxcbiAgRGF0ZVBpY2tlclF1aWNrT3B0aW9uICYgc3RyaW5nLFxuICB7IGxhYmVsOiBSZWFjdE5vZGU7IHZhbHVlOiBEYXRlIHwgRGF0ZVJhbmdlIHwgKChwcm9wczogRGF0ZVBpY2tlclByb3BzKSA9PiBEYXRlIHwgRGF0ZVJhbmdlKSB9XG4+O1xuXG4vKiogUmV0dXJucyB3aGV0aGVyIHR3byBkYXRlcyBhbmQvb3IgZGF0ZSByYW5nZXMgaW50ZXJzZWN0LiBJbnRlcnNlY3Rpb24gaXMgY29uc2lkZXJlZCBwZXIgZGF5LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRhdGVJbnRlcnNlY3QoYTogRGF0ZSB8IG51bGwgfCBEYXRlUmFuZ2UsIGI6IERhdGUgfCBudWxsIHwgRGF0ZVJhbmdlKSB7XG4gIGlmIChhIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgIGEgPSB7IG1pbjogYSwgbWF4OiBhIH07XG4gIH1cbiAgaWYgKGIgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgYiA9IHsgbWluOiBiLCBtYXg6IGIgfTtcbiAgfVxuXG4gIGlmICghYT8ubWluIHx8ICFhLm1heCB8fCAhYj8ubWluIHx8ICFiLm1heCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiAhKGVuZE9mRGF5KGEubWF4KSA8IHN0YXJ0T2ZEYXkoYi5taW4pIHx8IHN0YXJ0T2ZEYXkoYS5taW4pID4gZW5kT2ZEYXkoYi5tYXgpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRhdGVDbGFtcChkYXRlOiBEYXRlLCBtaW4/OiBEYXRlLCBtYXg/OiBEYXRlKSB7XG4gIGlmIChtaW4gJiYgZGF0ZSA8IG1pbikge1xuICAgIHJldHVybiBtaW47XG4gIH1cblxuICBpZiAobWF4ICYmIGRhdGUgPiBtYXgpIHtcbiAgICByZXR1cm4gbWF4O1xuICB9XG5cbiAgcmV0dXJuIGRhdGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBEYXRlUGlja2VyKHByb3BzOiBEYXRlUGlja2VyUHJvcHMpIHtcbiAgY29uc3QgY29udGV4dCA9IHVzZUNvbnRleHQoRGF0ZVBpY2tlckNvbnRleHQpO1xuXG4gIGNvbnN0IHtcbiAgICB2YWx1ZSxcbiAgICByYW5nZVNlbGVjdCxcbiAgICBsb2NhbGUsXG4gICAgZmlyc3REYXlPZldlZWsgPSAxLFxuICAgIGRlZmF1bHREYXRlSW5WaWV3LFxuICAgIHF1aWNrT3B0aW9ucyA9IFsndG9kYXknLCAndGhpc1dlZWsnXSxcbiAgICBtaW5EYXRlLFxuICAgIG1heERhdGUsXG4gICAgc2hvd0NhbGVuZGFyV2VlayxcbiAgfSA9IGRlZmF1bHRzPERhdGVQaWNrZXJQcm9wcz4ocHJvcHMsIGNvbnRleHQpO1xuXG4gIGZ1bmN0aW9uIG9uQ2hhbmdlKHZhbHVlOiBEYXRlIHwgRGF0ZVJhbmdlIHwgbnVsbCkge1xuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgIHZhbHVlID0gZGF0ZUNsYW1wKHZhbHVlLCBtaW5EYXRlLCBtYXhEYXRlKTtcbiAgICB9IGVsc2UgaWYgKHZhbHVlKSB7XG4gICAgICB2YWx1ZSA9IHtcbiAgICAgICAgbWluOiBkYXRlQ2xhbXAodmFsdWUubWluLCBtaW5EYXRlLCBtYXhEYXRlKSxcbiAgICAgICAgbWF4OiBkYXRlQ2xhbXAodmFsdWUubWF4LCBtaW5EYXRlLCBtYXhEYXRlKSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcHJvcHMub25DaGFuZ2UodmFsdWUpO1xuICB9XG5cbiAgY29uc3QgQnV0dG9uID0gdXNlVGhlbWUoKHQpID0+IHQuY29tcG9uZW50cy5CdXR0b24pO1xuICBjb25zdCBJY29uQnV0dG9uID0gdXNlVGhlbWUoKHQpID0+IHQuY29tcG9uZW50cy5JY29uQnV0dG9uKTtcbiAgY29uc3QgQ2hldnJvblJpZ2h0ID0gdXNlVGhlbWUoKHQpID0+IHQuaWNvbnMuQ2hldnJvblJpZ2h0KTtcbiAgY29uc3QgY3NzVmFyaWFibGVzID0gdXNlQ3NzVmFyaWFibGVzKCk7XG5cbiAgY29uc3QgbW91bnRUaW1lID0gdXNlTWVtbygoKSA9PiBuZXcgRGF0ZSgpLCBbXSk7XG4gIGNvbnN0IFtkYXRlSW5WaWV3LCBzZXREYXRlSW5WaWV3XSA9IHVzZVN0YXRlPERhdGU+KGRlZmF1bHREYXRlSW5WaWV3ID8/IG1vdW50VGltZSk7XG4gIGNvbnN0IFtkaXJ0eSwgc2V0RGlydHldID0gdXNlU3RhdGU8UGFydGlhbDxEYXRlUmFuZ2U+PigpO1xuICBjb25zdCBbaG92ZXJlZCwgc2V0SG92ZXJlZF0gPSB1c2VTdGF0ZTxEYXRlPigpO1xuXG4gIGNvbnN0IG1pbiA9IGRpcnR5ID8gZGlydHkubWluIDogdmFsdWUgaW5zdGFuY2VvZiBEYXRlID8gdmFsdWUgOiB2YWx1ZT8ubWluO1xuICBjb25zdCBtYXggPSBkaXJ0eSA/IGRpcnR5Lm1heCA6IHZhbHVlIGluc3RhbmNlb2YgRGF0ZSA/IHZhbHVlIDogdmFsdWU/Lm1heDtcblxuICBjb25zdCByZXNvbHZlZFF1aWNrT3B0aW9ucyA9IFsuLi5xdWlja09wdGlvbnMsIHsgbGFiZWw6IDxUZXh0IGlkPVwicmVzZXRcIiAvPiwgdmFsdWU6IG51bGwgfV0ubWFwKFxuICAgIChvcHRpb24sIGluZGV4KSA9PiB7XG4gICAgICBpZiAob3B0aW9uIGluc3RhbmNlb2YgRnVuY3Rpb24pIHtcbiAgICAgICAgcmV0dXJuIG9wdGlvbigodmFsdWUpID0+IHtcbiAgICAgICAgICBzZXREaXJ0eSh1bmRlZmluZWQpO1xuICAgICAgICAgIG9uQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHsgbGFiZWwsIHZhbHVlIH0gPSB0eXBlb2Ygb3B0aW9uID09PSAnc3RyaW5nJyA/IGNvbW1vblF1aWNrT3B0aW9uc1tvcHRpb25dIDogb3B0aW9uO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8QnV0dG9uXG4gICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICB2YXJpYW50PVwidGV4dFwiXG4gICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgc2V0RGlydHkodW5kZWZpbmVkKTtcblxuICAgICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRnVuY3Rpb24pIHtcbiAgICAgICAgICAgICAgb25DaGFuZ2UodmFsdWUocHJvcHMpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIG9uQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAge2xhYmVsfVxuICAgICAgICA8L0J1dHRvbj5cbiAgICAgICk7XG4gICAgfSxcbiAgKTtcblxuICBjb25zdCB7IGNhbGVuZGFycywgZ2V0QmFja1Byb3BzLCBnZXRGb3J3YXJkUHJvcHMsIGdldERhdGVQcm9wcyB9ID0gdXNlRGF5emVkKHtcbiAgICBvbkRhdGVTZWxlY3RlZDogKCkgPT4gdW5kZWZpbmVkLFxuICAgIGZpcnN0RGF5T2ZXZWVrLFxuICAgIHNob3dPdXRzaWRlRGF5czogdHJ1ZSxcbiAgICBkYXRlOiBkYXRlSW5WaWV3LFxuICAgIG9uT2Zmc2V0Q2hhbmdlZDogKG9mZnNldCkgPT5cbiAgICAgIHNldERhdGVJblZpZXcobmV3IERhdGUoZGF0ZUluVmlldy5nZXRGdWxsWWVhcigpLCBkYXRlSW5WaWV3LmdldE1vbnRoKCkgKyBvZmZzZXQpKSxcbiAgICBvZmZzZXQ6IDAsXG4gICAgbWluRGF0ZSxcbiAgICBtYXhEYXRlLFxuICB9KTtcbiAgY29uc3Qgbm93ID0gdXNlTWVtbygoKSA9PiBzdGFydE9mRGF5KG5ldyBEYXRlKCkpLCBbXSk7XG5cbiAgY29uc3QgZm9ybWF0V2Vla2RheSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHsgZm9ybWF0IH0gPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NhbGUsIHsgd2Vla2RheTogJ3Nob3J0JyB9KTtcbiAgICByZXR1cm4gKHdlZWtEYXk6IG51bWJlcikgPT5cbiAgICAgIGZvcm1hdChuZXcgRGF0ZShEYXRlLlVUQygyMDIxLCA3LCAoKHdlZWtEYXkgKyBmaXJzdERheU9mV2VlaykgJSA3KSArIDEpKSk7XG4gIH0sIFtsb2NhbGUsIGZpcnN0RGF5T2ZXZWVrXSk7XG5cbiAgdXNlRWZmZWN0KFxuICAgICgpID0+XG4gICAgICBzZXREYXRlSW5WaWV3KFxuICAgICAgICB2YWx1ZSA9PT0gbnVsbCA/IGRlZmF1bHREYXRlSW5WaWV3ID8/IG1vdW50VGltZSA6IHZhbHVlIGluc3RhbmNlb2YgRGF0ZSA/IHZhbHVlIDogdmFsdWUubWF4LFxuICAgICAgKSxcbiAgICBbdmFsdWUsIGRlZmF1bHREYXRlSW5WaWV3LCBtb3VudFRpbWVdLFxuICApO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFyYW5nZVNlbGVjdCkge1xuICAgICAgc2V0RGlydHkodW5kZWZpbmVkKTtcbiAgICB9XG4gIH0sIFtyYW5nZVNlbGVjdF0pO1xuXG4gIGZ1bmN0aW9uIHNldChtaW4/OiBEYXRlLCBtYXg/OiBEYXRlLCBlZGl0PzogJ21pbicgfCAnbWF4Jykge1xuICAgIGlmICghcmFuZ2VTZWxlY3QpIHtcbiAgICAgIG9uQ2hhbmdlKG1pbiA/PyBudWxsKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAobWluICYmIG1heCAmJiBtaW4gPiBtYXgpIHtcbiAgICAgIGlmIChlZGl0ID09PSAnbWluJykge1xuICAgICAgICBtYXggPSBtaW47XG4gICAgICB9IGVsc2UgaWYgKGVkaXQgPT09ICdtYXgnKSB7XG4gICAgICAgIG1pbiA9IG1heDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIFttaW4sIG1heF0gPSBbbWF4LCBtaW5dO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghbWluID09PSAhbWF4KSB7XG4gICAgICBzZXREaXJ0eSh1bmRlZmluZWQpO1xuICAgICAgb25DaGFuZ2UobWluICYmIG1heCA/IHsgbWluLCBtYXg6IGVuZE9mRGF5KG1heCkgfSA6IG51bGwpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXREaXJ0eSh7IG1pbiwgbWF4IH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGZvcm1hdE1vbnRoID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgeyBmb3JtYXQgfSA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KGxvY2FsZSwgeyBtb250aDogJ2xvbmcnIH0pO1xuICAgIHJldHVybiAobW9udGg6IG51bWJlcikgPT4gZm9ybWF0KG5ldyBEYXRlKDIwMjEsIG1vbnRoKSk7XG4gIH0sIFtsb2NhbGVdKTtcblxuICBjb25zdCBmb3JtYXRZZWFyID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgeyBmb3JtYXQgfSA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KGxvY2FsZSwgeyB5ZWFyOiAnbnVtZXJpYycgfSk7XG4gICAgcmV0dXJuICh5ZWFyOiBudW1iZXIpID0+IGZvcm1hdChuZXcgRGF0ZSh5ZWFyLCAwLCAxKSk7XG4gIH0sIFtsb2NhbGVdKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY3NzPXtjc3NWYXJpYWJsZXN9PlxuICAgICAgPGRpdlxuICAgICAgICBjc3M9e3tcbiAgICAgICAgICBkaXNwbGF5OiAnZ3JpZCcsXG4gICAgICAgICAgZ3JpZEF1dG9GbG93OiAnY29sdW1uJyxcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgYWxpZ25JdGVtczogJ2Jhc2VsaW5lJyxcbiAgICAgICAgICBnYXA6ICd2YXIoLS1zcGFjaW5nKScsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxEYXRlSW5wdXRcbiAgICAgICAgICB2YWx1ZT17bWluID8/IG51bGx9XG4gICAgICAgICAgb25DaGFuZ2U9eyhkYXRlKSA9PiBzZXQoZGF0ZSA/PyB1bmRlZmluZWQsIG1heCwgJ21pbicpfVxuICAgICAgICAgIGxvY2FsZT17bG9jYWxlfVxuICAgICAgICAvPlxuXG4gICAgICAgIHtyYW5nZVNlbGVjdCAmJiAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIHsnIC0gJ31cbiAgICAgICAgICAgIDxEYXRlSW5wdXRcbiAgICAgICAgICAgICAgdmFsdWU9e21heCA/PyBudWxsfVxuICAgICAgICAgICAgICBvbkNoYW5nZT17KGRhdGUpID0+IHNldChtaW4sIGRhdGUgPz8gdW5kZWZpbmVkLCAnbWF4Jyl9XG4gICAgICAgICAgICAgIGxvY2FsZT17bG9jYWxlfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuXG4gICAgICB7Y2FsZW5kYXJzLm1hcCgoeyBtb250aCwgeWVhciwgd2Vla3MgfSkgPT4gKFxuICAgICAgICA8ZGl2IGtleT17YCR7bW9udGh9JHt5ZWFyfWB9IGNzcz17eyBkaXNwbGF5OiAnZ3JpZCcgfX0+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY3NzPXt7XG4gICAgICAgICAgICAgIG1hcmdpbjogJ2NhbGModmFyKC0tc3BhY2luZykgKiA0KSAwJyxcbiAgICAgICAgICAgICAgZGlzcGxheTogJ2dyaWQnLFxuICAgICAgICAgICAgICBncmlkQXV0b0Zsb3c6ICdjb2x1bW4nLFxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ3NwYWNlLWJldHdlZW4nLFxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEljb25CdXR0b24gey4uLmdldEJhY2tQcm9wcyh7IGNhbGVuZGFycyB9KX0+XG4gICAgICAgICAgICAgIDxDaGV2cm9uUmlnaHQgY3NzPXt7IHRyYW5zZm9ybTogJ3JvdGF0ZTNkKDAsIDAsIDEsIDE4MGRlZyknIH19IC8+XG4gICAgICAgICAgICA8L0ljb25CdXR0b24+XG5cbiAgICAgICAgICAgIDxkaXYgY3NzPXt7IGRpc3BsYXk6ICdmbGV4JyB9fT5cbiAgICAgICAgICAgICAge2Zvcm1hdE1vbnRoKG1vbnRoKX0ge2Zvcm1hdFllYXIoeWVhcil9XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPEljb25CdXR0b24gey4uLmdldEZvcndhcmRQcm9wcyh7IGNhbGVuZGFycyB9KX0+XG4gICAgICAgICAgICAgIDxDaGV2cm9uUmlnaHQgLz5cbiAgICAgICAgICAgIDwvSWNvbkJ1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNzcz17e1xuICAgICAgICAgICAgICBqdXN0aWZ5U2VsZjogJ2NlbnRlcicsXG4gICAgICAgICAgICAgIGRpc3BsYXk6ICdncmlkJyxcbiAgICAgICAgICAgICAgZ3JpZFRlbXBsYXRlQ29sdW1uczogJ3JlcGVhdCg4LCBtYXgtY29udGVudCknLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7c2hvd0NhbGVuZGFyV2VlayA/IChcbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNzcz17e1xuICAgICAgICAgICAgICAgICAganVzdGlmeVNlbGY6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgICAgcGFkZGluZzogMTAsXG4gICAgICAgICAgICAgICAgICBib3JkZXJSaWdodDogYDFweCBzb2xpZCAke2dyYXl9YCxcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFRleHQgaWQ9XCJjYWxlbmRhcldlZWtcIiAvPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxkaXYgLz5cbiAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgIHt3ZWVrRGF5cy5tYXAoKF92LCB3ZWVrRGF5KSA9PiAoXG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBrZXk9e3dlZWtEYXl9XG4gICAgICAgICAgICAgICAgY3NzPXt7XG4gICAgICAgICAgICAgICAgICBqdXN0aWZ5U2VsZjogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgICBwYWRkaW5nOiAxMCxcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2Zvcm1hdFdlZWtkYXkod2Vla0RheSl9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKSl9XG5cbiAgICAgICAgICAgIHt3ZWVrcy5tYXAoKHdlZWssIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHdlZWtTdGFydCA9IHdlZWtbMF0gYXMgRGF0ZU9iajtcbiAgICAgICAgICAgICAgY29uc3Qgd2Vla0VuZCA9IHdlZWtbNl0gYXMgRGF0ZU9iajtcbiAgICAgICAgICAgICAgY29uc3Qgd2Vla0Rpc2FibGVkID1cbiAgICAgICAgICAgICAgICAhcmFuZ2VTZWxlY3QgfHxcbiAgICAgICAgICAgICAgICAobWluRGF0ZSAmJiB3ZWVrRW5kLmRhdGUgPCBtaW5EYXRlKSB8fFxuICAgICAgICAgICAgICAgIChtYXhEYXRlICYmIHdlZWtTdGFydC5kYXRlID4gbWF4RGF0ZSk7XG5cbiAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICA8RnJhZ21lbnQga2V5PXtpbmRleH0+XG4gICAgICAgICAgICAgICAgICB7c2hvd0NhbGVuZGFyV2VlayA/IChcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIGNzcz17e1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMTAsXG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6ICdub25lJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICd0cmFuc3BhcmVudCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IHdlZWtEaXNhYmxlZCA/IHVuZGVmaW5lZCA6ICdwb2ludGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQ6ICdpbmhlcml0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlclJpZ2h0OiBgMXB4IHNvbGlkICR7Z3JheX1gLFxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHdlZWtEaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1pbiA9IG1pbkRhdGUgJiYgd2Vla1N0YXJ0LmRhdGUgPCBtaW5EYXRlID8gbWluRGF0ZSA6IHdlZWtTdGFydC5kYXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWF4ID0gbWF4RGF0ZSAmJiB3ZWVrRW5kLmRhdGUgPiBtYXhEYXRlID8gbWF4RGF0ZSA6IHdlZWtFbmQuZGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldChtaW4sIG1heCk7XG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtnZXRDYWxlbmRhcldlZWsoKHdlZWtbMF0gYXMgRGF0ZU9iaikuZGF0ZSl9XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAvPlxuICAgICAgICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgICAgICAge3dlZWsubWFwKChkYXRlT2JqZWN0LCBkYXlJbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWRhdGVPYmplY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gPGRpdiBrZXk9e2RheUluZGV4fSAvPjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgcHJldk1vbnRoLCBuZXh0TW9udGgsIGRhdGUgfSA9IGRhdGVPYmplY3Q7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRvZGF5ID0gc3RhcnRPZkRheShkYXRlKS5nZXRUaW1lKCkgPT09IG5vdy5nZXRUaW1lKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRpc2FibGVkID0gKG1pbkRhdGUgJiYgZGF0ZSA8IG1pbkRhdGUpIHx8IChtYXhEYXRlICYmIGRhdGUgPiBtYXhEYXRlKTtcblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZCA9XG4gICAgICAgICAgICAgICAgICAgICAgZGF0ZS5nZXRUaW1lKCkgPT09IG1pbj8uZ2V0VGltZSgpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgKG1pbiAmJiBtYXggJiYgZGF0ZUludGVyc2VjdChkYXRlLCB7IG1pbiwgbWF4IH0pKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJlU2VsZWN0ZWQgPVxuICAgICAgICAgICAgICAgICAgICAgICFzZWxlY3RlZCAmJlxuICAgICAgICAgICAgICAgICAgICAgICFkaXNhYmxlZCAmJlxuICAgICAgICAgICAgICAgICAgICAgIChkYXRlLmdldFRpbWUoKSA9PT0gaG92ZXJlZD8uZ2V0VGltZSgpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAobWluICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICFtYXggJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaG92ZXJlZCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlSW50ZXJzZWN0KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluIDw9IGhvdmVyZWQgPyB7IG1pbiwgbWF4OiBob3ZlcmVkIH0gOiB7IG1pbjogaG92ZXJlZCwgbWF4OiBtaW4gfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKSkpO1xuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtgJHtpbmRleH0tJHtkYXlJbmRleH1gfVxuICAgICAgICAgICAgICAgICAgICAgICAgY3NzPXtbXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAxMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6ICdub25lJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAndHJhbnNwYXJlbnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnNvcjogZGlzYWJsZWQgPyB1bmRlZmluZWQgOiAncG9pbnRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udDogJ2luaGVyaXQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAocHJldk1vbnRoIHx8IG5leHRNb250aCkgJiYge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBncmF5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICB0b2RheSAmJiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0bGluZTogJzFweCBzb2xpZCB2YXIoLS1zZWNvbmRhcnlNYWluKScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkICYmIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAndmFyKC0tcHJpbWFyeU1haW4pJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ3ZhcigtLXByaW1hcnlDb250cmFzdFRleHQpJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlU2VsZWN0ZWQgJiYge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICd2YXIoLS1wcmltYXJ5TGlnaHQpJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ3ZhcigtLXByaW1hcnlDb250cmFzdFRleHQpJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIF19XG4gICAgICAgICAgICAgICAgICAgICAgICB7Li4uZ2V0RGF0ZVByb3BzKHsgZGF0ZU9iajogZGF0ZU9iamVjdCB9KX1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRpcnR5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1pbikgc2V0KG1pbiwgZGF0ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBzZXQoZGF0ZSwgbWF4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQoZGF0ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICBvblBvaW50ZXJPdmVyPXsoKSA9PiBzZXRIb3ZlcmVkKGRhdGUpfVxuICAgICAgICAgICAgICAgICAgICAgICAgb25Qb2ludGVyT3V0PXsoKSA9PiBzZXRIb3ZlcmVkKHVuZGVmaW5lZCl9XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAge2RhdGUuZ2V0RGF0ZSgpfVxuICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgPC9GcmFnbWVudD5cbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICkpfVxuXG4gICAgICA8ZGl2XG4gICAgICAgIGNzcz17e1xuICAgICAgICAgIG1hcmdpblRvcDogJ3ZhcigtLXNwYWNpbmcpJyxcbiAgICAgICAgICBkaXNwbGF5OiAnZ3JpZCcsXG4gICAgICAgICAgZ3JpZEF1dG9GbG93OiAnY29sdW1uJyxcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIHtyZXNvbHZlZFF1aWNrT3B0aW9uc31cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufVxuIl19 */",
|
|
944
968
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__$d
|
|
945
969
|
};
|
|
946
970
|
var _ref7 = process.env.NODE_ENV === "production" ? {
|
|
947
|
-
name: "
|
|
948
|
-
styles: "justify-self:center;
|
|
971
|
+
name: "cnznnn",
|
|
972
|
+
styles: "justify-self:center;padding:10px"
|
|
949
973
|
} : {
|
|
950
|
-
name: "
|
|
951
|
-
styles: "justify-self:center;
|
|
952
|
-
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3NjaHVtbWFyLXRhYmxlL3NjaHVtbWFyLXRhYmxlL3NyYy9jb21wb25lbnRzL2RhdGVQaWNrZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdXaUMiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvc2NodW1tYXItdGFibGUvc2NodW1tYXItdGFibGUvc3JjL2NvbXBvbmVudHMvZGF0ZVBpY2tlci50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VEYXl6ZWQgfSBmcm9tICdkYXl6ZWQnO1xuaW1wb3J0IHR5cGUgeyBSZWFjdE5vZGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICcuLi9ob29rcy91c2VUaGVtZSc7XG5pbXBvcnQgeyBncmF5IH0gZnJvbSAnLi4vdGhlbWUvZGVmYXVsdFRoZW1lL2RlZmF1bHRDbGFzc2VzJztcbmltcG9ydCB7IHVzZUNzc1ZhcmlhYmxlcyB9IGZyb20gJy4uL3RoZW1lL3VzZUNzc1ZhcmlhYmxlcyc7XG5pbXBvcnQgeyBEYXRlSW5wdXQgfSBmcm9tICcuL2RhdGVJbnB1dCc7XG5pbXBvcnQgeyBUZXh0IH0gZnJvbSAnLi90ZXh0JztcblxuZXhwb3J0IHR5cGUgRGF0ZVJhbmdlID0geyBtaW46IERhdGU7IG1heDogRGF0ZSB9O1xuXG5leHBvcnQgdHlwZSBEYXRlUGlja2VyUXVpY2tPcHRpb24gPVxuICB8ICd0b2RheSdcbiAgfCAndGhpc1dlZWsnXG4gIHwgJ3RoaXNNb250aCdcbiAgfCAndGhpc1llYXInXG4gIHwgJ2xhc3RTZXZlbkRheXMnXG4gIHwgJ2xhc3RUaGlydHlEYXlzJ1xuICB8IHsgbGFiZWw6IFJlYWN0Tm9kZTsgdmFsdWU6IERhdGUgfCBEYXRlUmFuZ2UgfCAoKCkgPT4gRGF0ZSB8IERhdGVSYW5nZSkgfVxuICB8ICgob25DaGFuZ2U6ICh2YWx1ZTogRGF0ZSB8IERhdGVSYW5nZSB8IG51bGwpID0+IHZvaWQpID0+IFJlYWN0Tm9kZSk7XG5cbmV4cG9ydCB0eXBlIERhdGVQaWNrZXJQcm9wcyA9IHtcbiAgLyoqIEN1cnJlbnRseSBzZWxlY3RlZCBkYXkgb3IgcmFuZ2Ugb2YgZGF5cy4gKi9cbiAgdmFsdWU6IERhdGUgfCBEYXRlUmFuZ2UgfCBudWxsO1xuICAvKiogQ2FsbGJhY2sgZm9yIHdoZW4gdGhlIGRheSAocmFuZ2UpIGNoYW5nZXMuICovXG4gIG9uQ2hhbmdlOiAodmFsdWU6IERhdGUgfCBEYXRlUmFuZ2UgfCBudWxsKSA9PiB2b2lkO1xuICAvKiogSWYgZW5hYmxlZCwgcmFuZ2VzIGNhbiBiZSBzZWxlY3RlZC4gKi9cbiAgcmFuZ2VTZWxlY3Q/OiBib29sZWFuO1xuICAvKiogV2hpY2ggbG9jYWxlIHRvIHVzZSB0byByZW5kZXIgdGhlIGNhbGVuZGFyLiAqL1xuICBsb2NhbGU/OiBzdHJpbmc7XG4gIC8qKiBXaGljaCBkYXkgb2YgdGhlIHdlZWsgc2hvdWxkIGJlIGluIHRoZSBmaXJzdCBjb2x1bW4uICgwPVN1bmRheSwgMT1Nb25kYXksIC4uLilcbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgZmlyc3REYXlPZldlZWs/OiAwIHwgMSB8IDIgfCAzIHwgNCB8IDUgfCA2O1xuICAvKiogV2hpY2ggbW9udGggdG8gc2hvdyBpbml0aWFsbHkgKi9cbiAgZGVmYXVsdERhdGVJblZpZXc/OiBEYXRlO1xuICAvKiogU2hvdyBidXR0b25zIHRvIHF1aWNrbHkgc2VsZWN0IHN1Z2dlc3RlZCBkYXRlcyBvciBkYXRlIHJhbmdlcyAqL1xuICBxdWlja09wdGlvbnM/OiBEYXRlUGlja2VyUXVpY2tPcHRpb25bXTtcbiAgbWluRGF0ZT86IERhdGU7XG4gIG1heERhdGU/OiBEYXRlO1xufTtcblxuY29uc3Qgd2Vla0RheXMgPSBbMCwgMSwgMiwgMywgNCwgNSwgNl0gYXMgY29uc3Q7XG5cbi8qKiBSb3VuZHMgYSBkYXRlIGRvd24gdG8gdGhlIHN0YXJ0IG9mIHRoZSBkYXkuICovXG5leHBvcnQgY29uc3Qgc3RhcnRPZkRheSA9IChkOiBEYXRlKSA9PiBuZXcgRGF0ZShkLmdldEZ1bGxZZWFyKCksIGQuZ2V0TW9udGgoKSwgZC5nZXREYXRlKCkpO1xuXG4vKiogUm91bmRzIGEgZGF0ZSB1cCB0byB0aGUgZW5kIG9mIHRoZSBkYXkuICovXG5leHBvcnQgY29uc3QgZW5kT2ZEYXkgPSAoZDogRGF0ZSkgPT5cbiAgbmV3IERhdGUoZC5nZXRGdWxsWWVhcigpLCBkLmdldE1vbnRoKCksIGQuZ2V0RGF0ZSgpICsgMSwgMCwgMCwgMCwgLTEpO1xuXG5leHBvcnQgY29uc3QgbGFzdERheXMgPSAoZGF5czogbnVtYmVyKTogRGF0ZVJhbmdlID0+IHtcbiAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgY29uc3QgbWluID0gbmV3IERhdGUobm93KTtcbiAgbWluLnNldERhdGUobWluLmdldERhdGUoKSAtIGRheXMgKyAxKTtcblxuICByZXR1cm4ge1xuICAgIG1pbjogc3RhcnRPZkRheShtaW4pLFxuICAgIG1heDogZW5kT2ZEYXkobm93KSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCB0b2RheSA9ICgpID0+IGxhc3REYXlzKDEpO1xuXG5leHBvcnQgY29uc3QgdGhpc1dlZWsgPSAoZGVsdGEgPSAwLCBmaXJzdERheU9mV2VlayA9IDEpOiBEYXRlUmFuZ2UgPT4ge1xuICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuICBjb25zdCBtaW4gPSBuZXcgRGF0ZShub3cpO1xuXG4gIGxldCBkaWZmID0gbWluLmdldERheSgpIC0gZmlyc3REYXlPZldlZWs7XG4gIGlmIChkaWZmIDwgMCkge1xuICAgIGRpZmYgKz0gNztcbiAgfVxuICBtaW4uc2V0RGF0ZShtaW4uZ2V0RGF0ZSgpIC0gZGlmZiArIGRlbHRhICogNyk7XG5cbiAgY29uc3QgbWF4ID0gbmV3IERhdGUobWluKTtcbiAgbWF4LnNldERhdGUobWF4LmdldERhdGUoKSArIDYpO1xuXG4gIHJldHVybiB7XG4gICAgbWluOiBzdGFydE9mRGF5KG1pbiksXG4gICAgbWF4OiBlbmRPZkRheShtYXgpLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHRoaXNNb250aCA9IChkZWx0YSA9IDApOiBEYXRlUmFuZ2UgPT4ge1xuICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuICBjb25zdCBtaW4gPSBuZXcgRGF0ZShub3cpO1xuICBtaW4uc2V0RGF0ZSgxKTtcbiAgbWluLnNldE1vbnRoKG1pbi5nZXRNb250aCgpICsgZGVsdGEpO1xuICBjb25zdCBtYXggPSBuZXcgRGF0ZShtaW4pO1xuICBtYXguc2V0TW9udGgobWF4LmdldE1vbnRoKCkgKyAxKTtcbiAgbWF4LnNldERhdGUobWF4LmdldERhdGUoKSAtIDEpO1xuXG4gIHJldHVybiB7XG4gICAgbWluOiBzdGFydE9mRGF5KG1pbiksXG4gICAgbWF4OiBlbmRPZkRheShtYXgpLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHRoaXNZZWFyID0gKGRlbHRhID0gMCk6IERhdGVSYW5nZSA9PiB7XG4gIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG4gIGNvbnN0IG1pbiA9IG5ldyBEYXRlKG5vdyk7XG4gIG1pbi5zZXREYXRlKDEpO1xuICBtaW4uc2V0TW9udGgoMCk7XG4gIG1pbi5zZXRGdWxsWWVhcihtaW4uZ2V0RnVsbFllYXIoKSArIGRlbHRhKTtcbiAgY29uc3QgbWF4ID0gbmV3IERhdGUobWluKTtcbiAgbWF4LnNldEZ1bGxZZWFyKG1heC5nZXRGdWxsWWVhcigpICsgMSk7XG4gIG1heC5zZXREYXRlKG1heC5nZXREYXRlKCkgLSAxKTtcblxuICByZXR1cm4ge1xuICAgIG1pbjogc3RhcnRPZkRheShtaW4pLFxuICAgIG1heDogZW5kT2ZEYXkobWF4KSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBjb21tb25RdWlja09wdGlvbnMgPSB7XG4gIHRvZGF5OiB7IGxhYmVsOiA8VGV4dCBpZD1cInRvZGF5XCIgLz4sIHZhbHVlOiB0b2RheSB9LFxuICB0aGlzV2VlazogeyBsYWJlbDogPFRleHQgaWQ9XCJ0aGlzV2Vla1wiIC8+LCB2YWx1ZTogKHByb3BzKSA9PiB0aGlzV2VlaygwLCBwcm9wcy5maXJzdERheU9mV2VlaykgfSxcbiAgdGhpc01vbnRoOiB7IGxhYmVsOiA8VGV4dCBpZD1cInRoaXNNb250aFwiIC8+LCB2YWx1ZTogKCkgPT4gdGhpc01vbnRoKCkgfSxcbiAgdGhpc1llYXI6IHsgbGFiZWw6IDxUZXh0IGlkPVwidGhpc1llYXJcIiAvPiwgdmFsdWU6ICgpID0+IHRoaXNZZWFyKCkgfSxcbiAgbGFzdFNldmVuRGF5czogeyBsYWJlbDogPFRleHQgaWQ9XCJsYXN0U2V2ZW5EYXlzXCIgLz4sIHZhbHVlOiAoKSA9PiBsYXN0RGF5cyg3KSB9LFxuICBsYXN0VGhpcnR5RGF5czogeyBsYWJlbDogPFRleHQgaWQ9XCJsYXN0VGhpcnR5RGF5c1wiIC8+LCB2YWx1ZTogKCkgPT4gbGFzdERheXMoMzApIH0sXG59IHNhdGlzZmllcyBSZWNvcmQ8XG4gIERhdGVQaWNrZXJRdWlja09wdGlvbiAmIHN0cmluZyxcbiAgeyBsYWJlbDogUmVhY3ROb2RlOyB2YWx1ZTogRGF0ZSB8IERhdGVSYW5nZSB8ICgocHJvcHM6IERhdGVQaWNrZXJQcm9wcykgPT4gRGF0ZSB8IERhdGVSYW5nZSkgfVxuPjtcblxuLyoqIFJldHVybnMgd2hldGhlciB0d28gZGF0ZXMgYW5kL29yIGRhdGUgcmFuZ2VzIGludGVyc2VjdC4gSW50ZXJzZWN0aW9uIGlzIGNvbnNpZGVyZWQgcGVyIGRheS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkYXRlSW50ZXJzZWN0KGE6IERhdGUgfCBudWxsIHwgRGF0ZVJhbmdlLCBiOiBEYXRlIHwgbnVsbCB8IERhdGVSYW5nZSkge1xuICBpZiAoYSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICBhID0geyBtaW46IGEsIG1heDogYSB9O1xuICB9XG4gIGlmIChiIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgIGIgPSB7IG1pbjogYiwgbWF4OiBiIH07XG4gIH1cblxuICBpZiAoIWE/Lm1pbiB8fCAhYS5tYXggfHwgIWI/Lm1pbiB8fCAhYi5tYXgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gIShlbmRPZkRheShhLm1heCkgPCBzdGFydE9mRGF5KGIubWluKSB8fCBzdGFydE9mRGF5KGEubWluKSA+IGVuZE9mRGF5KGIubWF4KSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkYXRlQ2xhbXAoZGF0ZTogRGF0ZSwgbWluPzogRGF0ZSwgbWF4PzogRGF0ZSkge1xuICBpZiAobWluICYmIGRhdGUgPCBtaW4pIHtcbiAgICByZXR1cm4gbWluO1xuICB9XG5cbiAgaWYgKG1heCAmJiBkYXRlID4gbWF4KSB7XG4gICAgcmV0dXJuIG1heDtcbiAgfVxuXG4gIHJldHVybiBkYXRlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gRGF0ZVBpY2tlcihwcm9wczogRGF0ZVBpY2tlclByb3BzKSB7XG4gIGNvbnN0IHtcbiAgICB2YWx1ZSxcbiAgICByYW5nZVNlbGVjdCxcbiAgICBsb2NhbGUsXG4gICAgZmlyc3REYXlPZldlZWsgPSAxLFxuICAgIGRlZmF1bHREYXRlSW5WaWV3LFxuICAgIHF1aWNrT3B0aW9ucyA9IFsndG9kYXknLCAndGhpc1dlZWsnXSxcbiAgICBtaW5EYXRlLFxuICAgIG1heERhdGUsXG4gIH0gPSBwcm9wcztcblxuICBmdW5jdGlvbiBvbkNoYW5nZSh2YWx1ZTogRGF0ZSB8IERhdGVSYW5nZSB8IG51bGwpIHtcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICB2YWx1ZSA9IGRhdGVDbGFtcCh2YWx1ZSwgbWluRGF0ZSwgbWF4RGF0ZSk7XG4gICAgfSBlbHNlIGlmICh2YWx1ZSkge1xuICAgICAgdmFsdWUgPSB7XG4gICAgICAgIG1pbjogZGF0ZUNsYW1wKHZhbHVlLm1pbiwgbWluRGF0ZSwgbWF4RGF0ZSksXG4gICAgICAgIG1heDogZGF0ZUNsYW1wKHZhbHVlLm1heCwgbWluRGF0ZSwgbWF4RGF0ZSksXG4gICAgICB9O1xuICAgIH1cblxuICAgIHByb3BzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgfVxuXG4gIGNvbnN0IEJ1dHRvbiA9IHVzZVRoZW1lKCh0KSA9PiB0LmNvbXBvbmVudHMuQnV0dG9uKTtcbiAgY29uc3QgSWNvbkJ1dHRvbiA9IHVzZVRoZW1lKCh0KSA9PiB0LmNvbXBvbmVudHMuSWNvbkJ1dHRvbik7XG4gIGNvbnN0IENoZXZyb25SaWdodCA9IHVzZVRoZW1lKCh0KSA9PiB0Lmljb25zLkNoZXZyb25SaWdodCk7XG4gIGNvbnN0IGNzc1ZhcmlhYmxlcyA9IHVzZUNzc1ZhcmlhYmxlcygpO1xuXG4gIGNvbnN0IG1vdW50VGltZSA9IHVzZU1lbW8oKCkgPT4gbmV3IERhdGUoKSwgW10pO1xuICBjb25zdCBbZGF0ZUluVmlldywgc2V0RGF0ZUluVmlld10gPSB1c2VTdGF0ZTxEYXRlPihkZWZhdWx0RGF0ZUluVmlldyA/PyBtb3VudFRpbWUpO1xuICBjb25zdCBbZGlydHksIHNldERpcnR5XSA9IHVzZVN0YXRlPFBhcnRpYWw8RGF0ZVJhbmdlPj4oKTtcbiAgY29uc3QgW2hvdmVyZWQsIHNldEhvdmVyZWRdID0gdXNlU3RhdGU8RGF0ZT4oKTtcblxuICBjb25zdCBtaW4gPSBkaXJ0eSA/IGRpcnR5Lm1pbiA6IHZhbHVlIGluc3RhbmNlb2YgRGF0ZSA/IHZhbHVlIDogdmFsdWU/Lm1pbjtcbiAgY29uc3QgbWF4ID0gZGlydHkgPyBkaXJ0eS5tYXggOiB2YWx1ZSBpbnN0YW5jZW9mIERhdGUgPyB2YWx1ZSA6IHZhbHVlPy5tYXg7XG5cbiAgY29uc3QgcmVzb2x2ZWRRdWlja09wdGlvbnMgPSBbLi4ucXVpY2tPcHRpb25zLCB7IGxhYmVsOiA8VGV4dCBpZD1cInJlc2V0XCIgLz4sIHZhbHVlOiBudWxsIH1dLm1hcChcbiAgICAob3B0aW9uLCBpbmRleCkgPT4ge1xuICAgICAgaWYgKG9wdGlvbiBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG4gICAgICAgIHJldHVybiBvcHRpb24oKHZhbHVlKSA9PiB7XG4gICAgICAgICAgc2V0RGlydHkodW5kZWZpbmVkKTtcbiAgICAgICAgICBvbkNoYW5nZSh2YWx1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB7IGxhYmVsLCB2YWx1ZSB9ID0gdHlwZW9mIG9wdGlvbiA9PT0gJ3N0cmluZycgPyBjb21tb25RdWlja09wdGlvbnNbb3B0aW9uXSA6IG9wdGlvbjtcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPEJ1dHRvblxuICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgdmFyaWFudD1cInRleHRcIlxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIHNldERpcnR5KHVuZGVmaW5lZCk7XG5cbiAgICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG4gICAgICAgICAgICAgIG9uQ2hhbmdlKHZhbHVlKHByb3BzKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBvbkNoYW5nZSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgPC9CdXR0b24+XG4gICAgICApO1xuICAgIH0sXG4gICk7XG5cbiAgY29uc3QgeyBjYWxlbmRhcnMsIGdldEJhY2tQcm9wcywgZ2V0Rm9yd2FyZFByb3BzLCBnZXREYXRlUHJvcHMgfSA9IHVzZURheXplZCh7XG4gICAgb25EYXRlU2VsZWN0ZWQ6ICgpID0+IHVuZGVmaW5lZCxcbiAgICBmaXJzdERheU9mV2VlayxcbiAgICBzaG93T3V0c2lkZURheXM6IHRydWUsXG4gICAgZGF0ZTogZGF0ZUluVmlldyxcbiAgICBvbk9mZnNldENoYW5nZWQ6IChvZmZzZXQpID0+XG4gICAgICBzZXREYXRlSW5WaWV3KG5ldyBEYXRlKGRhdGVJblZpZXcuZ2V0RnVsbFllYXIoKSwgZGF0ZUluVmlldy5nZXRNb250aCgpICsgb2Zmc2V0KSksXG4gICAgb2Zmc2V0OiAwLFxuICAgIG1pbkRhdGUsXG4gICAgbWF4RGF0ZSxcbiAgfSk7XG4gIGNvbnN0IG5vdyA9IHVzZU1lbW8oKCkgPT4gc3RhcnRPZkRheShuZXcgRGF0ZSgpKSwgW10pO1xuXG4gIGNvbnN0IGZvcm1hdFdlZWtkYXkgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCB7IGZvcm1hdCB9ID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQobG9jYWxlLCB7IHdlZWtkYXk6ICdzaG9ydCcgfSk7XG4gICAgcmV0dXJuICh3ZWVrRGF5OiBudW1iZXIpID0+XG4gICAgICBmb3JtYXQobmV3IERhdGUoRGF0ZS5VVEMoMjAyMSwgNywgKCh3ZWVrRGF5ICsgZmlyc3REYXlPZldlZWspICUgNykgKyAxKSkpO1xuICB9LCBbbG9jYWxlLCBmaXJzdERheU9mV2Vla10pO1xuXG4gIHVzZUVmZmVjdChcbiAgICAoKSA9PlxuICAgICAgc2V0RGF0ZUluVmlldyhcbiAgICAgICAgdmFsdWUgPT09IG51bGwgPyBkZWZhdWx0RGF0ZUluVmlldyA/PyBtb3VudFRpbWUgOiB2YWx1ZSBpbnN0YW5jZW9mIERhdGUgPyB2YWx1ZSA6IHZhbHVlLm1heCxcbiAgICAgICksXG4gICAgW3ZhbHVlLCBkZWZhdWx0RGF0ZUluVmlldywgbW91bnRUaW1lXSxcbiAgKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghcmFuZ2VTZWxlY3QpIHtcbiAgICAgIHNldERpcnR5KHVuZGVmaW5lZCk7XG4gICAgfVxuICB9LCBbcmFuZ2VTZWxlY3RdKTtcblxuICBmdW5jdGlvbiBzZXQobWluPzogRGF0ZSwgbWF4PzogRGF0ZSwgZWRpdD86ICdtaW4nIHwgJ21heCcpIHtcbiAgICBpZiAoIXJhbmdlU2VsZWN0KSB7XG4gICAgICBvbkNoYW5nZShtaW4gPz8gbnVsbCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKG1pbiAmJiBtYXggJiYgbWluID4gbWF4KSB7XG4gICAgICBpZiAoZWRpdCA9PT0gJ21pbicpIHtcbiAgICAgICAgbWF4ID0gbWluO1xuICAgICAgfSBlbHNlIGlmIChlZGl0ID09PSAnbWF4Jykge1xuICAgICAgICBtaW4gPSBtYXg7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBbbWluLCBtYXhdID0gW21heCwgbWluXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIW1pbiA9PT0gIW1heCkge1xuICAgICAgc2V0RGlydHkodW5kZWZpbmVkKTtcbiAgICAgIG9uQ2hhbmdlKG1pbiAmJiBtYXggPyB7IG1pbiwgbWF4OiBlbmRPZkRheShtYXgpIH0gOiBudWxsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0RGlydHkoeyBtaW4sIG1heCB9KTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBmb3JtYXRNb250aCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHsgZm9ybWF0IH0gPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NhbGUsIHsgbW9udGg6ICdsb25nJyB9KTtcbiAgICByZXR1cm4gKG1vbnRoOiBudW1iZXIpID0+IGZvcm1hdChuZXcgRGF0ZSgyMDIxLCBtb250aCkpO1xuICB9LCBbbG9jYWxlXSk7XG5cbiAgY29uc3QgZm9ybWF0WWVhciA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHsgZm9ybWF0IH0gPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NhbGUsIHsgeWVhcjogJ251bWVyaWMnIH0pO1xuICAgIHJldHVybiAoeWVhcjogbnVtYmVyKSA9PiBmb3JtYXQobmV3IERhdGUoeWVhciwgMCwgMSkpO1xuICB9LCBbbG9jYWxlXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNzcz17Y3NzVmFyaWFibGVzfT5cbiAgICAgIDxkaXZcbiAgICAgICAgY3NzPXt7XG4gICAgICAgICAgZGlzcGxheTogJ2dyaWQnLFxuICAgICAgICAgIGdyaWRBdXRvRmxvdzogJ2NvbHVtbicsXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgIGFsaWduSXRlbXM6ICdiYXNlbGluZScsXG4gICAgICAgICAgZ2FwOiAndmFyKC0tc3BhY2luZyknLFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8RGF0ZUlucHV0XG4gICAgICAgICAgdmFsdWU9e21pbiA/PyBudWxsfVxuICAgICAgICAgIG9uQ2hhbmdlPXsoZGF0ZSkgPT4gc2V0KGRhdGUgPz8gdW5kZWZpbmVkLCBtYXgsICdtaW4nKX1cbiAgICAgICAgICBsb2NhbGU9e2xvY2FsZX1cbiAgICAgICAgLz5cblxuICAgICAgICB7cmFuZ2VTZWxlY3QgJiYgKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICB7JyAtICd9XG4gICAgICAgICAgICA8RGF0ZUlucHV0XG4gICAgICAgICAgICAgIHZhbHVlPXttYXggPz8gbnVsbH1cbiAgICAgICAgICAgICAgb25DaGFuZ2U9eyhkYXRlKSA9PiBzZXQobWluLCBkYXRlID8/IHVuZGVmaW5lZCwgJ21heCcpfVxuICAgICAgICAgICAgICBsb2NhbGU9e2xvY2FsZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cblxuICAgICAge2NhbGVuZGFycy5tYXAoKHsgbW9udGgsIHllYXIsIHdlZWtzIH0pID0+IChcbiAgICAgICAgPGRpdiBrZXk9e2Ake21vbnRofSR7eWVhcn1gfSBjc3M9e3sgZGlzcGxheTogJ2dyaWQnIH19PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNzcz17e1xuICAgICAgICAgICAgICBtYXJnaW46ICdjYWxjKHZhcigtLXNwYWNpbmcpICogNCkgMCcsXG4gICAgICAgICAgICAgIGRpc3BsYXk6ICdncmlkJyxcbiAgICAgICAgICAgICAgZ3JpZEF1dG9GbG93OiAnY29sdW1uJyxcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1iZXR3ZWVuJyxcbiAgICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxJY29uQnV0dG9uIHsuLi5nZXRCYWNrUHJvcHMoeyBjYWxlbmRhcnMgfSl9PlxuICAgICAgICAgICAgICA8Q2hldnJvblJpZ2h0IGNzcz17eyB0cmFuc2Zvcm06ICdyb3RhdGUzZCgwLCAwLCAxLCAxODBkZWcpJyB9fSAvPlxuICAgICAgICAgICAgPC9JY29uQnV0dG9uPlxuXG4gICAgICAgICAgICA8ZGl2IGNzcz17eyBkaXNwbGF5OiAnZmxleCcgfX0+XG4gICAgICAgICAgICAgIHtmb3JtYXRNb250aChtb250aCl9IHtmb3JtYXRZZWFyKHllYXIpfVxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxJY29uQnV0dG9uIHsuLi5nZXRGb3J3YXJkUHJvcHMoeyBjYWxlbmRhcnMgfSl9PlxuICAgICAgICAgICAgICA8Q2hldnJvblJpZ2h0IC8+XG4gICAgICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjc3M9e3tcbiAgICAgICAgICAgICAganVzdGlmeVNlbGY6ICdjZW50ZXInLFxuICAgICAgICAgICAgICBkaXNwbGF5OiAnZ3JpZCcsXG4gICAgICAgICAgICAgIGdyaWRUZW1wbGF0ZUNvbHVtbnM6ICdyZXBlYXQoNywgbWF4LWNvbnRlbnQpJyxcbiAgICAgICAgICAgICAgZm9udFdlaWdodDogJ2JvbGQnLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7d2Vla0RheXMubWFwKChfdiwgd2Vla0RheSkgPT4gKFxuICAgICAgICAgICAgICA8ZGl2IGtleT17d2Vla0RheX0gY3NzPXt7IGp1c3RpZnlTZWxmOiAnY2VudGVyJywgbWFyZ2luQm90dG9tOiAndmFyKC0tc3BhY2luZyknIH19PlxuICAgICAgICAgICAgICAgIHtmb3JtYXRXZWVrZGF5KHdlZWtEYXkpfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICkpfVxuXG4gICAgICAgICAgICB7d2Vla3MubWFwKCh3ZWVrLCBpbmRleCkgPT5cbiAgICAgICAgICAgICAgd2Vlay5tYXAoKGRhdGVPYmplY3QsIGRheUluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFkYXRlT2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gPGRpdiBrZXk9e2Ake2luZGV4fS0ke2RheUluZGV4fWB9IC8+O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnN0IHsgcHJldk1vbnRoLCBuZXh0TW9udGgsIGRhdGUgfSA9IGRhdGVPYmplY3Q7XG4gICAgICAgICAgICAgICAgY29uc3QgdG9kYXkgPSBzdGFydE9mRGF5KGRhdGUpLmdldFRpbWUoKSA9PT0gbm93LmdldFRpbWUoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBkaXNhYmxlZCA9IChtaW5EYXRlICYmIGRhdGUgPCBtaW5EYXRlKSB8fCAobWF4RGF0ZSAmJiBkYXRlID4gbWF4RGF0ZSk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZCA9XG4gICAgICAgICAgICAgICAgICBkYXRlLmdldFRpbWUoKSA9PT0gbWluPy5nZXRUaW1lKCkgfHxcbiAgICAgICAgICAgICAgICAgIChtaW4gJiYgbWF4ICYmIGRhdGVJbnRlcnNlY3QoZGF0ZSwgeyBtaW4sIG1heCB9KSk7XG4gICAgICAgICAgICAgICAgY29uc3QgcHJlU2VsZWN0ZWQgPVxuICAgICAgICAgICAgICAgICAgIXNlbGVjdGVkICYmXG4gICAgICAgICAgICAgICAgICAhZGlzYWJsZWQgJiZcbiAgICAgICAgICAgICAgICAgIChkYXRlLmdldFRpbWUoKSA9PT0gaG92ZXJlZD8uZ2V0VGltZSgpIHx8XG4gICAgICAgICAgICAgICAgICAgIChtaW4gJiZcbiAgICAgICAgICAgICAgICAgICAgICAhbWF4ICYmXG4gICAgICAgICAgICAgICAgICAgICAgaG92ZXJlZCAmJlxuICAgICAgICAgICAgICAgICAgICAgIGRhdGVJbnRlcnNlY3QoXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWluIDw9IGhvdmVyZWQgPyB7IG1pbiwgbWF4OiBob3ZlcmVkIH0gOiB7IG1pbjogaG92ZXJlZCwgbWF4OiBtaW4gfSxcbiAgICAgICAgICAgICAgICAgICAgICApKSk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBrZXk9e2Ake2luZGV4fS0ke2RheUluZGV4fWB9XG4gICAgICAgICAgICAgICAgICAgIGNzcz17W1xuICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEwLFxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAnMXB4IHNvbGlkIHRyYW5zcGFyZW50JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICd0cmFuc3BhcmVudCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3I6ICdwb2ludGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIChwcmV2TW9udGggfHwgbmV4dE1vbnRoKSAmJiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogZ3JheSxcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIHRvZGF5ICYmIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogJzFweCBzb2xpZCB2YXIoLS1zZWNvbmRhcnlNYWluKScsXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZCAmJiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAndmFyKC0tcHJpbWFyeU1haW4pJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAndmFyKC0tcHJpbWFyeUNvbnRyYXN0VGV4dCknLFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgcHJlU2VsZWN0ZWQgJiYge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJ3ZhcigtLXByaW1hcnlMaWdodCknLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICd2YXIoLS1wcmltYXJ5Q29udHJhc3RUZXh0KScsXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXX1cbiAgICAgICAgICAgICAgICAgICAgey4uLmdldERhdGVQcm9wcyh7IGRhdGVPYmo6IGRhdGVPYmplY3QgfSl9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoZGlydHkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtaW4pIHNldChtaW4sIGRhdGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBzZXQoZGF0ZSwgbWF4KTtcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0KGRhdGUpO1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgb25Qb2ludGVyT3Zlcj17KCkgPT4gc2V0SG92ZXJlZChkYXRlKX1cbiAgICAgICAgICAgICAgICAgICAgb25Qb2ludGVyT3V0PXsoKSA9PiBzZXRIb3ZlcmVkKHVuZGVmaW5lZCl9XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2RhdGUuZ2V0RGF0ZSgpfVxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICkpfVxuXG4gICAgICA8ZGl2XG4gICAgICAgIGNzcz17e1xuICAgICAgICAgIG1hcmdpblRvcDogJ3ZhcigtLXNwYWNpbmcpJyxcbiAgICAgICAgICBkaXNwbGF5OiAnZ3JpZCcsXG4gICAgICAgICAgZ3JpZEF1dG9GbG93OiAnY29sdW1uJyxcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIHtyZXNvbHZlZFF1aWNrT3B0aW9uc31cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufVxuIl19 */",
|
|
974
|
+
name: "5a0dsf-DatePicker",
|
|
975
|
+
styles: "justify-self:center;padding:10px;label:DatePicker;",
|
|
976
|
+
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3NjaHVtbWFyLXRhYmxlL3NjaHVtbWFyLXRhYmxlL3NyYy9jb21wb25lbnRzL2RhdGVQaWNrZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThaZ0IiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvc2NodW1tYXItdGFibGUvc2NodW1tYXItdGFibGUvc3JjL2NvbXBvbmVudHMvZGF0ZVBpY2tlci50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRlT2JqLCB1c2VEYXl6ZWQgfSBmcm9tICdkYXl6ZWQnO1xuaW1wb3J0IHtcbiAgRnJhZ21lbnQsXG4gIFJlYWN0Tm9kZSxcbiAgY3JlYXRlQ29udGV4dCxcbiAgdXNlQ29udGV4dCxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICcuLi9ob29rcy91c2VUaGVtZSc7XG5pbXBvcnQgeyBkZWZhdWx0cyB9IGZyb20gJy4uL21pc2MvZGVmYXVsdHMnO1xuaW1wb3J0IHsgZ3JheSB9IGZyb20gJy4uL3RoZW1lL2RlZmF1bHRUaGVtZS9kZWZhdWx0Q2xhc3Nlcyc7XG5pbXBvcnQgeyB1c2VDc3NWYXJpYWJsZXMgfSBmcm9tICcuLi90aGVtZS91c2VDc3NWYXJpYWJsZXMnO1xuaW1wb3J0IHsgRGF0ZUlucHV0IH0gZnJvbSAnLi9kYXRlSW5wdXQnO1xuaW1wb3J0IHsgVGV4dCB9IGZyb20gJy4vdGV4dCc7XG5cbmV4cG9ydCB0eXBlIERhdGVSYW5nZSA9IHsgbWluOiBEYXRlOyBtYXg6IERhdGUgfTtcblxuZXhwb3J0IHR5cGUgRGF0ZVBpY2tlclF1aWNrT3B0aW9uID1cbiAgfCAndG9kYXknXG4gIHwgJ3RoaXNXZWVrJ1xuICB8ICd0aGlzTW9udGgnXG4gIHwgJ3RoaXNZZWFyJ1xuICB8ICdsYXN0U2V2ZW5EYXlzJ1xuICB8ICdsYXN0VGhpcnR5RGF5cydcbiAgfCB7IGxhYmVsOiBSZWFjdE5vZGU7IHZhbHVlOiBEYXRlIHwgRGF0ZVJhbmdlIHwgKCgpID0+IERhdGUgfCBEYXRlUmFuZ2UpIH1cbiAgfCAoKG9uQ2hhbmdlOiAodmFsdWU6IERhdGUgfCBEYXRlUmFuZ2UgfCBudWxsKSA9PiB2b2lkKSA9PiBSZWFjdE5vZGUpO1xuXG5leHBvcnQgdHlwZSBEYXRlUGlja2VyUHJvcHMgPSB7XG4gIC8qKiBDdXJyZW50bHkgc2VsZWN0ZWQgZGF5IG9yIHJhbmdlIG9mIGRheXMuICovXG4gIHZhbHVlOiBEYXRlIHwgRGF0ZVJhbmdlIHwgbnVsbDtcbiAgLyoqIENhbGxiYWNrIGZvciB3aGVuIHRoZSBkYXkgKHJhbmdlKSBjaGFuZ2VzLiAqL1xuICBvbkNoYW5nZTogKHZhbHVlOiBEYXRlIHwgRGF0ZVJhbmdlIHwgbnVsbCkgPT4gdm9pZDtcbiAgLyoqIElmIGVuYWJsZWQsIHJhbmdlcyBjYW4gYmUgc2VsZWN0ZWQuICovXG4gIHJhbmdlU2VsZWN0PzogYm9vbGVhbjtcbiAgLyoqIFdoaWNoIGxvY2FsZSB0byB1c2UgdG8gcmVuZGVyIHRoZSBjYWxlbmRhci4gKi9cbiAgbG9jYWxlPzogc3RyaW5nO1xuICAvKiogV2hpY2ggZGF5IG9mIHRoZSB3ZWVrIHNob3VsZCBiZSBpbiB0aGUgZmlyc3QgY29sdW1uLiAoMD1TdW5kYXksIDE9TW9uZGF5LCAuLi4pXG4gICAqIEBkZWZhdWx0IDFcbiAgICovXG4gIGZpcnN0RGF5T2ZXZWVrPzogMCB8IDEgfCAyIHwgMyB8IDQgfCA1IHwgNjtcbiAgLyoqIFdoaWNoIG1vbnRoIHRvIHNob3cgaW5pdGlhbGx5ICovXG4gIGRlZmF1bHREYXRlSW5WaWV3PzogRGF0ZTtcbiAgLyoqIFNob3cgYnV0dG9ucyB0byBxdWlja2x5IHNlbGVjdCBzdWdnZXN0ZWQgZGF0ZXMgb3IgZGF0ZSByYW5nZXMgKi9cbiAgcXVpY2tPcHRpb25zPzogRGF0ZVBpY2tlclF1aWNrT3B0aW9uW107XG4gIC8qKiBNaW5pbXVtIHNlbGVjdGFibGUgZGF0ZSAqL1xuICBtaW5EYXRlPzogRGF0ZTtcbiAgLyoqIE1heGltdW0gc2VsZWN0YWJsZSBkYXRlICovXG4gIG1heERhdGU/OiBEYXRlO1xuICAvKiogV2hldGhlciB0byBzaG93IHRoZSBjYWxlbmRhciB3ZWVrIGluIHRoZSBmaXJzdCBjb2x1bW4gKi9cbiAgc2hvd0NhbGVuZGFyV2Vlaz86IGJvb2xlYW47XG59O1xuXG5jb25zdCBEYXRlUGlja2VyQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8UGFydGlhbDxPbWl0PERhdGVQaWNrZXJQcm9wcywgJ3ZhbHVlJyB8ICdvbkNoYW5nZSc+Pj4oe30pO1xuXG5leHBvcnQgZnVuY3Rpb24gRGF0ZVBpY2tlclByb3ZpZGVyKHtcbiAgY2hpbGRyZW4sXG4gIC4uLnByb3BzXG59OiBQYXJ0aWFsPE9taXQ8RGF0ZVBpY2tlclByb3BzLCAndmFsdWUnIHwgJ29uQ2hhbmdlJz4+ICYgeyBjaGlsZHJlbj86IFJlYWN0Tm9kZSB9KSB7XG4gIGNvbnN0IHZhbHVlID0gdXNlTWVtbygoKSA9PiBwcm9wcywgW0pTT04uc3RyaW5naWZ5KHByb3BzKV0pO1xuXG4gIHJldHVybiA8RGF0ZVBpY2tlckNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3ZhbHVlfT57Y2hpbGRyZW59PC9EYXRlUGlja2VyQ29udGV4dC5Qcm92aWRlcj47XG59XG5cbmNvbnN0IHdlZWtEYXlzID0gWzAsIDEsIDIsIDMsIDQsIDUsIDZdIGFzIGNvbnN0O1xuXG4vKiogUm91bmRzIGEgZGF0ZSBkb3duIHRvIHRoZSBzdGFydCBvZiB0aGUgZGF5LiAqL1xuZXhwb3J0IGNvbnN0IHN0YXJ0T2ZEYXkgPSAoZDogRGF0ZSkgPT4gbmV3IERhdGUoZC5nZXRGdWxsWWVhcigpLCBkLmdldE1vbnRoKCksIGQuZ2V0RGF0ZSgpKTtcblxuLyoqIFJvdW5kcyBhIGRhdGUgdXAgdG8gdGhlIGVuZCBvZiB0aGUgZGF5LiAqL1xuZXhwb3J0IGNvbnN0IGVuZE9mRGF5ID0gKGQ6IERhdGUpID0+XG4gIG5ldyBEYXRlKGQuZ2V0RnVsbFllYXIoKSwgZC5nZXRNb250aCgpLCBkLmdldERhdGUoKSArIDEsIDAsIDAsIDAsIC0xKTtcblxuZXhwb3J0IGNvbnN0IGxhc3REYXlzID0gKGRheXM6IG51bWJlcik6IERhdGVSYW5nZSA9PiB7XG4gIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG4gIGNvbnN0IG1pbiA9IG5ldyBEYXRlKG5vdyk7XG4gIG1pbi5zZXREYXRlKG1pbi5nZXREYXRlKCkgLSBkYXlzICsgMSk7XG5cbiAgcmV0dXJuIHtcbiAgICBtaW46IHN0YXJ0T2ZEYXkobWluKSxcbiAgICBtYXg6IGVuZE9mRGF5KG5vdyksXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgdG9kYXkgPSAoKSA9PiBsYXN0RGF5cygxKTtcblxuZXhwb3J0IGNvbnN0IHRoaXNXZWVrID0gKGRlbHRhID0gMCwgZmlyc3REYXlPZldlZWsgPSAxKTogRGF0ZVJhbmdlID0+IHtcbiAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgY29uc3QgbWluID0gbmV3IERhdGUobm93KTtcblxuICBsZXQgZGlmZiA9IG1pbi5nZXREYXkoKSAtIGZpcnN0RGF5T2ZXZWVrO1xuICBpZiAoZGlmZiA8IDApIHtcbiAgICBkaWZmICs9IDc7XG4gIH1cbiAgbWluLnNldERhdGUobWluLmdldERhdGUoKSAtIGRpZmYgKyBkZWx0YSAqIDcpO1xuXG4gIGNvbnN0IG1heCA9IG5ldyBEYXRlKG1pbik7XG4gIG1heC5zZXREYXRlKG1heC5nZXREYXRlKCkgKyA2KTtcblxuICByZXR1cm4ge1xuICAgIG1pbjogc3RhcnRPZkRheShtaW4pLFxuICAgIG1heDogZW5kT2ZEYXkobWF4KSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCB0aGlzTW9udGggPSAoZGVsdGEgPSAwKTogRGF0ZVJhbmdlID0+IHtcbiAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgY29uc3QgbWluID0gbmV3IERhdGUobm93KTtcbiAgbWluLnNldERhdGUoMSk7XG4gIG1pbi5zZXRNb250aChtaW4uZ2V0TW9udGgoKSArIGRlbHRhKTtcbiAgY29uc3QgbWF4ID0gbmV3IERhdGUobWluKTtcbiAgbWF4LnNldE1vbnRoKG1heC5nZXRNb250aCgpICsgMSk7XG4gIG1heC5zZXREYXRlKG1heC5nZXREYXRlKCkgLSAxKTtcblxuICByZXR1cm4ge1xuICAgIG1pbjogc3RhcnRPZkRheShtaW4pLFxuICAgIG1heDogZW5kT2ZEYXkobWF4KSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCB0aGlzWWVhciA9IChkZWx0YSA9IDApOiBEYXRlUmFuZ2UgPT4ge1xuICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuICBjb25zdCBtaW4gPSBuZXcgRGF0ZShub3cpO1xuICBtaW4uc2V0RGF0ZSgxKTtcbiAgbWluLnNldE1vbnRoKDApO1xuICBtaW4uc2V0RnVsbFllYXIobWluLmdldEZ1bGxZZWFyKCkgKyBkZWx0YSk7XG4gIGNvbnN0IG1heCA9IG5ldyBEYXRlKG1pbik7XG4gIG1heC5zZXRGdWxsWWVhcihtYXguZ2V0RnVsbFllYXIoKSArIDEpO1xuICBtYXguc2V0RGF0ZShtYXguZ2V0RGF0ZSgpIC0gMSk7XG5cbiAgcmV0dXJuIHtcbiAgICBtaW46IHN0YXJ0T2ZEYXkobWluKSxcbiAgICBtYXg6IGVuZE9mRGF5KG1heCksXG4gIH07XG59O1xuXG5jb25zdCBNU19QRVJfREFZID0gMTAwMCAqIDYwICogNjAgKiAyNDtcbmV4cG9ydCBjb25zdCBnZXRDYWxlbmRhcldlZWsgPSAoZGF0ZTogRGF0ZSk6IG51bWJlciA9PiB7XG4gIC8vIElTTyA4NjAxOiBXZWVrIDEgaXMgdGhlIHdlZWsgd2l0aCB0aGUgZmlyc3QgVGh1cnNkYXkgb2YgdGhlIHllYXIuXG4gIC8vIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT193ZWVrX2RhdGVcblxuICBjb25zdCB5ID0gZGF0ZS5nZXRGdWxsWWVhcigpO1xuICBjb25zdCBmZG95ID0gbmV3IERhdGUoeSwgMCwgMSk7XG4gIGNvbnN0IGRveSA9IE1hdGguZmxvb3IoXG4gICAgKGRhdGUuZ2V0VGltZSgpIC0gZmRveS5nZXRUaW1lKCkgKyAoZGF0ZS5nZXRUaW1lem9uZU9mZnNldCgpIC0gZmRveS5nZXRUaW1lem9uZU9mZnNldCgpKSkgL1xuICAgICAgTVNfUEVSX0RBWSxcbiAgKTtcbiAgY29uc3QgZG93ID0gZmRveS5nZXREYXkoKTtcbiAgY29uc3QgdyA9IE1hdGguZmxvb3IoKDEwICsgZG95IC0gZG93KSAvIDcpO1xuXG4gIGlmICh3ID09PSAwKSB7XG4gICAgcmV0dXJuIGdldENhbGVuZGFyV2VlayhuZXcgRGF0ZSh5IC0gMSwgMTEsIDMxKSk7XG4gIH1cblxuICByZXR1cm4gdztcbn07XG5cbmV4cG9ydCBjb25zdCBjb21tb25RdWlja09wdGlvbnMgPSB7XG4gIHRvZGF5OiB7IGxhYmVsOiA8VGV4dCBpZD1cInRvZGF5XCIgLz4sIHZhbHVlOiB0b2RheSB9LFxuICB0aGlzV2VlazogeyBsYWJlbDogPFRleHQgaWQ9XCJ0aGlzV2Vla1wiIC8+LCB2YWx1ZTogKHByb3BzKSA9PiB0aGlzV2VlaygwLCBwcm9wcy5maXJzdERheU9mV2VlaykgfSxcbiAgdGhpc01vbnRoOiB7IGxhYmVsOiA8VGV4dCBpZD1cInRoaXNNb250aFwiIC8+LCB2YWx1ZTogKCkgPT4gdGhpc01vbnRoKCkgfSxcbiAgdGhpc1llYXI6IHsgbGFiZWw6IDxUZXh0IGlkPVwidGhpc1llYXJcIiAvPiwgdmFsdWU6ICgpID0+IHRoaXNZZWFyKCkgfSxcbiAgbGFzdFNldmVuRGF5czogeyBsYWJlbDogPFRleHQgaWQ9XCJsYXN0U2V2ZW5EYXlzXCIgLz4sIHZhbHVlOiAoKSA9PiBsYXN0RGF5cyg3KSB9LFxuICBsYXN0VGhpcnR5RGF5czogeyBsYWJlbDogPFRleHQgaWQ9XCJsYXN0VGhpcnR5RGF5c1wiIC8+LCB2YWx1ZTogKCkgPT4gbGFzdERheXMoMzApIH0sXG59IHNhdGlzZmllcyBSZWNvcmQ8XG4gIERhdGVQaWNrZXJRdWlja09wdGlvbiAmIHN0cmluZyxcbiAgeyBsYWJlbDogUmVhY3ROb2RlOyB2YWx1ZTogRGF0ZSB8IERhdGVSYW5nZSB8ICgocHJvcHM6IERhdGVQaWNrZXJQcm9wcykgPT4gRGF0ZSB8IERhdGVSYW5nZSkgfVxuPjtcblxuLyoqIFJldHVybnMgd2hldGhlciB0d28gZGF0ZXMgYW5kL29yIGRhdGUgcmFuZ2VzIGludGVyc2VjdC4gSW50ZXJzZWN0aW9uIGlzIGNvbnNpZGVyZWQgcGVyIGRheS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkYXRlSW50ZXJzZWN0KGE6IERhdGUgfCBudWxsIHwgRGF0ZVJhbmdlLCBiOiBEYXRlIHwgbnVsbCB8IERhdGVSYW5nZSkge1xuICBpZiAoYSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICBhID0geyBtaW46IGEsIG1heDogYSB9O1xuICB9XG4gIGlmIChiIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgIGIgPSB7IG1pbjogYiwgbWF4OiBiIH07XG4gIH1cblxuICBpZiAoIWE/Lm1pbiB8fCAhYS5tYXggfHwgIWI/Lm1pbiB8fCAhYi5tYXgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gIShlbmRPZkRheShhLm1heCkgPCBzdGFydE9mRGF5KGIubWluKSB8fCBzdGFydE9mRGF5KGEubWluKSA+IGVuZE9mRGF5KGIubWF4KSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkYXRlQ2xhbXAoZGF0ZTogRGF0ZSwgbWluPzogRGF0ZSwgbWF4PzogRGF0ZSkge1xuICBpZiAobWluICYmIGRhdGUgPCBtaW4pIHtcbiAgICByZXR1cm4gbWluO1xuICB9XG5cbiAgaWYgKG1heCAmJiBkYXRlID4gbWF4KSB7XG4gICAgcmV0dXJuIG1heDtcbiAgfVxuXG4gIHJldHVybiBkYXRlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gRGF0ZVBpY2tlcihwcm9wczogRGF0ZVBpY2tlclByb3BzKSB7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KERhdGVQaWNrZXJDb250ZXh0KTtcblxuICBjb25zdCB7XG4gICAgdmFsdWUsXG4gICAgcmFuZ2VTZWxlY3QsXG4gICAgbG9jYWxlLFxuICAgIGZpcnN0RGF5T2ZXZWVrID0gMSxcbiAgICBkZWZhdWx0RGF0ZUluVmlldyxcbiAgICBxdWlja09wdGlvbnMgPSBbJ3RvZGF5JywgJ3RoaXNXZWVrJ10sXG4gICAgbWluRGF0ZSxcbiAgICBtYXhEYXRlLFxuICAgIHNob3dDYWxlbmRhcldlZWssXG4gIH0gPSBkZWZhdWx0czxEYXRlUGlja2VyUHJvcHM+KHByb3BzLCBjb250ZXh0KTtcblxuICBmdW5jdGlvbiBvbkNoYW5nZSh2YWx1ZTogRGF0ZSB8IERhdGVSYW5nZSB8IG51bGwpIHtcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICB2YWx1ZSA9IGRhdGVDbGFtcCh2YWx1ZSwgbWluRGF0ZSwgbWF4RGF0ZSk7XG4gICAgfSBlbHNlIGlmICh2YWx1ZSkge1xuICAgICAgdmFsdWUgPSB7XG4gICAgICAgIG1pbjogZGF0ZUNsYW1wKHZhbHVlLm1pbiwgbWluRGF0ZSwgbWF4RGF0ZSksXG4gICAgICAgIG1heDogZGF0ZUNsYW1wKHZhbHVlLm1heCwgbWluRGF0ZSwgbWF4RGF0ZSksXG4gICAgICB9O1xuICAgIH1cblxuICAgIHByb3BzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgfVxuXG4gIGNvbnN0IEJ1dHRvbiA9IHVzZVRoZW1lKCh0KSA9PiB0LmNvbXBvbmVudHMuQnV0dG9uKTtcbiAgY29uc3QgSWNvbkJ1dHRvbiA9IHVzZVRoZW1lKCh0KSA9PiB0LmNvbXBvbmVudHMuSWNvbkJ1dHRvbik7XG4gIGNvbnN0IENoZXZyb25SaWdodCA9IHVzZVRoZW1lKCh0KSA9PiB0Lmljb25zLkNoZXZyb25SaWdodCk7XG4gIGNvbnN0IGNzc1ZhcmlhYmxlcyA9IHVzZUNzc1ZhcmlhYmxlcygpO1xuXG4gIGNvbnN0IG1vdW50VGltZSA9IHVzZU1lbW8oKCkgPT4gbmV3IERhdGUoKSwgW10pO1xuICBjb25zdCBbZGF0ZUluVmlldywgc2V0RGF0ZUluVmlld10gPSB1c2VTdGF0ZTxEYXRlPihkZWZhdWx0RGF0ZUluVmlldyA/PyBtb3VudFRpbWUpO1xuICBjb25zdCBbZGlydHksIHNldERpcnR5XSA9IHVzZVN0YXRlPFBhcnRpYWw8RGF0ZVJhbmdlPj4oKTtcbiAgY29uc3QgW2hvdmVyZWQsIHNldEhvdmVyZWRdID0gdXNlU3RhdGU8RGF0ZT4oKTtcblxuICBjb25zdCBtaW4gPSBkaXJ0eSA/IGRpcnR5Lm1pbiA6IHZhbHVlIGluc3RhbmNlb2YgRGF0ZSA/IHZhbHVlIDogdmFsdWU/Lm1pbjtcbiAgY29uc3QgbWF4ID0gZGlydHkgPyBkaXJ0eS5tYXggOiB2YWx1ZSBpbnN0YW5jZW9mIERhdGUgPyB2YWx1ZSA6IHZhbHVlPy5tYXg7XG5cbiAgY29uc3QgcmVzb2x2ZWRRdWlja09wdGlvbnMgPSBbLi4ucXVpY2tPcHRpb25zLCB7IGxhYmVsOiA8VGV4dCBpZD1cInJlc2V0XCIgLz4sIHZhbHVlOiBudWxsIH1dLm1hcChcbiAgICAob3B0aW9uLCBpbmRleCkgPT4ge1xuICAgICAgaWYgKG9wdGlvbiBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG4gICAgICAgIHJldHVybiBvcHRpb24oKHZhbHVlKSA9PiB7XG4gICAgICAgICAgc2V0RGlydHkodW5kZWZpbmVkKTtcbiAgICAgICAgICBvbkNoYW5nZSh2YWx1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB7IGxhYmVsLCB2YWx1ZSB9ID0gdHlwZW9mIG9wdGlvbiA9PT0gJ3N0cmluZycgPyBjb21tb25RdWlja09wdGlvbnNbb3B0aW9uXSA6IG9wdGlvbjtcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPEJ1dHRvblxuICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgdmFyaWFudD1cInRleHRcIlxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIHNldERpcnR5KHVuZGVmaW5lZCk7XG5cbiAgICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG4gICAgICAgICAgICAgIG9uQ2hhbmdlKHZhbHVlKHByb3BzKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBvbkNoYW5nZSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgPC9CdXR0b24+XG4gICAgICApO1xuICAgIH0sXG4gICk7XG5cbiAgY29uc3QgeyBjYWxlbmRhcnMsIGdldEJhY2tQcm9wcywgZ2V0Rm9yd2FyZFByb3BzLCBnZXREYXRlUHJvcHMgfSA9IHVzZURheXplZCh7XG4gICAgb25EYXRlU2VsZWN0ZWQ6ICgpID0+IHVuZGVmaW5lZCxcbiAgICBmaXJzdERheU9mV2VlayxcbiAgICBzaG93T3V0c2lkZURheXM6IHRydWUsXG4gICAgZGF0ZTogZGF0ZUluVmlldyxcbiAgICBvbk9mZnNldENoYW5nZWQ6IChvZmZzZXQpID0+XG4gICAgICBzZXREYXRlSW5WaWV3KG5ldyBEYXRlKGRhdGVJblZpZXcuZ2V0RnVsbFllYXIoKSwgZGF0ZUluVmlldy5nZXRNb250aCgpICsgb2Zmc2V0KSksXG4gICAgb2Zmc2V0OiAwLFxuICAgIG1pbkRhdGUsXG4gICAgbWF4RGF0ZSxcbiAgfSk7XG4gIGNvbnN0IG5vdyA9IHVzZU1lbW8oKCkgPT4gc3RhcnRPZkRheShuZXcgRGF0ZSgpKSwgW10pO1xuXG4gIGNvbnN0IGZvcm1hdFdlZWtkYXkgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCB7IGZvcm1hdCB9ID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQobG9jYWxlLCB7IHdlZWtkYXk6ICdzaG9ydCcgfSk7XG4gICAgcmV0dXJuICh3ZWVrRGF5OiBudW1iZXIpID0+XG4gICAgICBmb3JtYXQobmV3IERhdGUoRGF0ZS5VVEMoMjAyMSwgNywgKCh3ZWVrRGF5ICsgZmlyc3REYXlPZldlZWspICUgNykgKyAxKSkpO1xuICB9LCBbbG9jYWxlLCBmaXJzdERheU9mV2Vla10pO1xuXG4gIHVzZUVmZmVjdChcbiAgICAoKSA9PlxuICAgICAgc2V0RGF0ZUluVmlldyhcbiAgICAgICAgdmFsdWUgPT09IG51bGwgPyBkZWZhdWx0RGF0ZUluVmlldyA/PyBtb3VudFRpbWUgOiB2YWx1ZSBpbnN0YW5jZW9mIERhdGUgPyB2YWx1ZSA6IHZhbHVlLm1heCxcbiAgICAgICksXG4gICAgW3ZhbHVlLCBkZWZhdWx0RGF0ZUluVmlldywgbW91bnRUaW1lXSxcbiAgKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghcmFuZ2VTZWxlY3QpIHtcbiAgICAgIHNldERpcnR5KHVuZGVmaW5lZCk7XG4gICAgfVxuICB9LCBbcmFuZ2VTZWxlY3RdKTtcblxuICBmdW5jdGlvbiBzZXQobWluPzogRGF0ZSwgbWF4PzogRGF0ZSwgZWRpdD86ICdtaW4nIHwgJ21heCcpIHtcbiAgICBpZiAoIXJhbmdlU2VsZWN0KSB7XG4gICAgICBvbkNoYW5nZShtaW4gPz8gbnVsbCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKG1pbiAmJiBtYXggJiYgbWluID4gbWF4KSB7XG4gICAgICBpZiAoZWRpdCA9PT0gJ21pbicpIHtcbiAgICAgICAgbWF4ID0gbWluO1xuICAgICAgfSBlbHNlIGlmIChlZGl0ID09PSAnbWF4Jykge1xuICAgICAgICBtaW4gPSBtYXg7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBbbWluLCBtYXhdID0gW21heCwgbWluXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIW1pbiA9PT0gIW1heCkge1xuICAgICAgc2V0RGlydHkodW5kZWZpbmVkKTtcbiAgICAgIG9uQ2hhbmdlKG1pbiAmJiBtYXggPyB7IG1pbiwgbWF4OiBlbmRPZkRheShtYXgpIH0gOiBudWxsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0RGlydHkoeyBtaW4sIG1heCB9KTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBmb3JtYXRNb250aCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHsgZm9ybWF0IH0gPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NhbGUsIHsgbW9udGg6ICdsb25nJyB9KTtcbiAgICByZXR1cm4gKG1vbnRoOiBudW1iZXIpID0+IGZvcm1hdChuZXcgRGF0ZSgyMDIxLCBtb250aCkpO1xuICB9LCBbbG9jYWxlXSk7XG5cbiAgY29uc3QgZm9ybWF0WWVhciA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHsgZm9ybWF0IH0gPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NhbGUsIHsgeWVhcjogJ251bWVyaWMnIH0pO1xuICAgIHJldHVybiAoeWVhcjogbnVtYmVyKSA9PiBmb3JtYXQobmV3IERhdGUoeWVhciwgMCwgMSkpO1xuICB9LCBbbG9jYWxlXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNzcz17Y3NzVmFyaWFibGVzfT5cbiAgICAgIDxkaXZcbiAgICAgICAgY3NzPXt7XG4gICAgICAgICAgZGlzcGxheTogJ2dyaWQnLFxuICAgICAgICAgIGdyaWRBdXRvRmxvdzogJ2NvbHVtbicsXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgIGFsaWduSXRlbXM6ICdiYXNlbGluZScsXG4gICAgICAgICAgZ2FwOiAndmFyKC0tc3BhY2luZyknLFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8RGF0ZUlucHV0XG4gICAgICAgICAgdmFsdWU9e21pbiA/PyBudWxsfVxuICAgICAgICAgIG9uQ2hhbmdlPXsoZGF0ZSkgPT4gc2V0KGRhdGUgPz8gdW5kZWZpbmVkLCBtYXgsICdtaW4nKX1cbiAgICAgICAgICBsb2NhbGU9e2xvY2FsZX1cbiAgICAgICAgLz5cblxuICAgICAgICB7cmFuZ2VTZWxlY3QgJiYgKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICB7JyAtICd9XG4gICAgICAgICAgICA8RGF0ZUlucHV0XG4gICAgICAgICAgICAgIHZhbHVlPXttYXggPz8gbnVsbH1cbiAgICAgICAgICAgICAgb25DaGFuZ2U9eyhkYXRlKSA9PiBzZXQobWluLCBkYXRlID8/IHVuZGVmaW5lZCwgJ21heCcpfVxuICAgICAgICAgICAgICBsb2NhbGU9e2xvY2FsZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cblxuICAgICAge2NhbGVuZGFycy5tYXAoKHsgbW9udGgsIHllYXIsIHdlZWtzIH0pID0+IChcbiAgICAgICAgPGRpdiBrZXk9e2Ake21vbnRofSR7eWVhcn1gfSBjc3M9e3sgZGlzcGxheTogJ2dyaWQnIH19PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNzcz17e1xuICAgICAgICAgICAgICBtYXJnaW46ICdjYWxjKHZhcigtLXNwYWNpbmcpICogNCkgMCcsXG4gICAgICAgICAgICAgIGRpc3BsYXk6ICdncmlkJyxcbiAgICAgICAgICAgICAgZ3JpZEF1dG9GbG93OiAnY29sdW1uJyxcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1iZXR3ZWVuJyxcbiAgICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxJY29uQnV0dG9uIHsuLi5nZXRCYWNrUHJvcHMoeyBjYWxlbmRhcnMgfSl9PlxuICAgICAgICAgICAgICA8Q2hldnJvblJpZ2h0IGNzcz17eyB0cmFuc2Zvcm06ICdyb3RhdGUzZCgwLCAwLCAxLCAxODBkZWcpJyB9fSAvPlxuICAgICAgICAgICAgPC9JY29uQnV0dG9uPlxuXG4gICAgICAgICAgICA8ZGl2IGNzcz17eyBkaXNwbGF5OiAnZmxleCcgfX0+XG4gICAgICAgICAgICAgIHtmb3JtYXRNb250aChtb250aCl9IHtmb3JtYXRZZWFyKHllYXIpfVxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxJY29uQnV0dG9uIHsuLi5nZXRGb3J3YXJkUHJvcHMoeyBjYWxlbmRhcnMgfSl9PlxuICAgICAgICAgICAgICA8Q2hldnJvblJpZ2h0IC8+XG4gICAgICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjc3M9e3tcbiAgICAgICAgICAgICAganVzdGlmeVNlbGY6ICdjZW50ZXInLFxuICAgICAgICAgICAgICBkaXNwbGF5OiAnZ3JpZCcsXG4gICAgICAgICAgICAgIGdyaWRUZW1wbGF0ZUNvbHVtbnM6ICdyZXBlYXQoOCwgbWF4LWNvbnRlbnQpJyxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3Nob3dDYWxlbmRhcldlZWsgPyAoXG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjc3M9e3tcbiAgICAgICAgICAgICAgICAgIGp1c3RpZnlTZWxmOiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEwLFxuICAgICAgICAgICAgICAgICAgYm9yZGVyUmlnaHQ6IGAxcHggc29saWQgJHtncmF5fWAsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxUZXh0IGlkPVwiY2FsZW5kYXJXZWVrXCIgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8ZGl2IC8+XG4gICAgICAgICAgICApfVxuXG4gICAgICAgICAgICB7d2Vla0RheXMubWFwKChfdiwgd2Vla0RheSkgPT4gKFxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAga2V5PXt3ZWVrRGF5fVxuICAgICAgICAgICAgICAgIGNzcz17e1xuICAgICAgICAgICAgICAgICAganVzdGlmeVNlbGY6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgICAgcGFkZGluZzogMTAsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtmb3JtYXRXZWVrZGF5KHdlZWtEYXkpfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICkpfVxuXG4gICAgICAgICAgICB7d2Vla3MubWFwKCh3ZWVrLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB3ZWVrU3RhcnQgPSB3ZWVrWzBdIGFzIERhdGVPYmo7XG4gICAgICAgICAgICAgIGNvbnN0IHdlZWtFbmQgPSB3ZWVrWzZdIGFzIERhdGVPYmo7XG4gICAgICAgICAgICAgIGNvbnN0IHdlZWtEaXNhYmxlZCA9XG4gICAgICAgICAgICAgICAgIXJhbmdlU2VsZWN0IHx8XG4gICAgICAgICAgICAgICAgKG1pbkRhdGUgJiYgd2Vla0VuZC5kYXRlIDwgbWluRGF0ZSkgfHxcbiAgICAgICAgICAgICAgICAobWF4RGF0ZSAmJiB3ZWVrU3RhcnQuZGF0ZSA+IG1heERhdGUpO1xuXG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPEZyYWdtZW50IGtleT17aW5kZXh9PlxuICAgICAgICAgICAgICAgICAge3Nob3dDYWxlbmRhcldlZWsgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICBjc3M9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEwLFxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAnbm9uZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAndHJhbnNwYXJlbnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiB3ZWVrRGlzYWJsZWQgPyB1bmRlZmluZWQgOiAncG9pbnRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250OiAnaW5oZXJpdCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJSaWdodDogYDFweCBzb2xpZCAke2dyYXl9YCxcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3ZWVrRGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtaW4gPSBtaW5EYXRlICYmIHdlZWtTdGFydC5kYXRlIDwgbWluRGF0ZSA/IG1pbkRhdGUgOiB3ZWVrU3RhcnQuZGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1heCA9IG1heERhdGUgJiYgd2Vla0VuZC5kYXRlID4gbWF4RGF0ZSA/IG1heERhdGUgOiB3ZWVrRW5kLmRhdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXQobWluLCBtYXgpO1xuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7Z2V0Q2FsZW5kYXJXZWVrKCh3ZWVrWzBdIGFzIERhdGVPYmopLmRhdGUpfVxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgLz5cbiAgICAgICAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgICAgICAgIHt3ZWVrLm1hcCgoZGF0ZU9iamVjdCwgZGF5SW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFkYXRlT2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxkaXYga2V5PXtkYXlJbmRleH0gLz47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHByZXZNb250aCwgbmV4dE1vbnRoLCBkYXRlIH0gPSBkYXRlT2JqZWN0O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0b2RheSA9IHN0YXJ0T2ZEYXkoZGF0ZSkuZ2V0VGltZSgpID09PSBub3cuZ2V0VGltZSgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkaXNhYmxlZCA9IChtaW5EYXRlICYmIGRhdGUgPCBtaW5EYXRlKSB8fCAobWF4RGF0ZSAmJiBkYXRlID4gbWF4RGF0ZSk7XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPVxuICAgICAgICAgICAgICAgICAgICAgIGRhdGUuZ2V0VGltZSgpID09PSBtaW4/LmdldFRpbWUoKSB8fFxuICAgICAgICAgICAgICAgICAgICAgIChtaW4gJiYgbWF4ICYmIGRhdGVJbnRlcnNlY3QoZGF0ZSwgeyBtaW4sIG1heCB9KSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHByZVNlbGVjdGVkID1cbiAgICAgICAgICAgICAgICAgICAgICAhc2VsZWN0ZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAhZGlzYWJsZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAoZGF0ZS5nZXRUaW1lKCkgPT09IGhvdmVyZWQ/LmdldFRpbWUoKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgKG1pbiAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAhbWF4ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGhvdmVyZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZUludGVyc2VjdChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbiA8PSBob3ZlcmVkID8geyBtaW4sIG1heDogaG92ZXJlZCB9IDogeyBtaW46IGhvdmVyZWQsIG1heDogbWluIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICkpKTtcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YCR7aW5kZXh9LSR7ZGF5SW5kZXh9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17W1xuICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMTAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAnbm9uZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJ3RyYW5zcGFyZW50JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IGRpc2FibGVkID8gdW5kZWZpbmVkIDogJ3BvaW50ZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQ6ICdpbmhlcml0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKHByZXZNb250aCB8fCBuZXh0TW9udGgpICYmIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogZ3JheSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kYXkgJiYge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dGxpbmU6ICcxcHggc29saWQgdmFyKC0tc2Vjb25kYXJ5TWFpbiknLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZCAmJiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJ3ZhcigtLXByaW1hcnlNYWluKScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICd2YXIoLS1wcmltYXJ5Q29udHJhc3RUZXh0KScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByZVNlbGVjdGVkICYmIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAndmFyKC0tcHJpbWFyeUxpZ2h0KScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICd2YXIoLS1wcmltYXJ5Q29udHJhc3RUZXh0KScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBdfVxuICAgICAgICAgICAgICAgICAgICAgICAgey4uLmdldERhdGVQcm9wcyh7IGRhdGVPYmo6IGRhdGVPYmplY3QgfSl9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkaXJ0eSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtaW4pIHNldChtaW4sIGRhdGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugc2V0KGRhdGUsIG1heCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0KGRhdGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgb25Qb2ludGVyT3Zlcj17KCkgPT4gc2V0SG92ZXJlZChkYXRlKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uUG9pbnRlck91dD17KCkgPT4gc2V0SG92ZXJlZCh1bmRlZmluZWQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtkYXRlLmdldERhdGUoKX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgIDwvRnJhZ21lbnQ+XG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICApKX1cblxuICAgICAgPGRpdlxuICAgICAgICBjc3M9e3tcbiAgICAgICAgICBtYXJnaW5Ub3A6ICd2YXIoLS1zcGFjaW5nKScsXG4gICAgICAgICAgZGlzcGxheTogJ2dyaWQnLFxuICAgICAgICAgIGdyaWRBdXRvRmxvdzogJ2NvbHVtbicsXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICB7cmVzb2x2ZWRRdWlja09wdGlvbnN9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cbiJdfQ== */",
|
|
953
977
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__$d
|
|
954
978
|
};
|
|
955
979
|
var _ref8 = process.env.NODE_ENV === "production" ? {
|
|
@@ -958,10 +982,11 @@ var _ref8 = process.env.NODE_ENV === "production" ? {
|
|
|
958
982
|
} : {
|
|
959
983
|
name: "1lzq5di-DatePicker",
|
|
960
984
|
styles: "margin-top:var(--spacing);display:grid;grid-auto-flow:column;justify-content:center;label:DatePicker;",
|
|
961
|
-
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3NjaHVtbWFyLXRhYmxlL3NjaHVtbWFyLXRhYmxlL3NyYy9jb21wb25lbnRzL2RhdGVQaWNrZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThhUSIsImZpbGUiOiIvaG9tZS9ydW5uZXIvd29yay9zY2h1bW1hci10YWJsZS9zY2h1bW1hci10YWJsZS9zcmMvY29tcG9uZW50cy9kYXRlUGlja2VyLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZURheXplZCB9IGZyb20gJ2RheXplZCc7XG5pbXBvcnQgdHlwZSB7IFJlYWN0Tm9kZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VUaGVtZSB9IGZyb20gJy4uL2hvb2tzL3VzZVRoZW1lJztcbmltcG9ydCB7IGdyYXkgfSBmcm9tICcuLi90aGVtZS9kZWZhdWx0VGhlbWUvZGVmYXVsdENsYXNzZXMnO1xuaW1wb3J0IHsgdXNlQ3NzVmFyaWFibGVzIH0gZnJvbSAnLi4vdGhlbWUvdXNlQ3NzVmFyaWFibGVzJztcbmltcG9ydCB7IERhdGVJbnB1dCB9IGZyb20gJy4vZGF0ZUlucHV0JztcbmltcG9ydCB7IFRleHQgfSBmcm9tICcuL3RleHQnO1xuXG5leHBvcnQgdHlwZSBEYXRlUmFuZ2UgPSB7IG1pbjogRGF0ZTsgbWF4OiBEYXRlIH07XG5cbmV4cG9ydCB0eXBlIERhdGVQaWNrZXJRdWlja09wdGlvbiA9XG4gIHwgJ3RvZGF5J1xuICB8ICd0aGlzV2VlaydcbiAgfCAndGhpc01vbnRoJ1xuICB8ICd0aGlzWWVhcidcbiAgfCAnbGFzdFNldmVuRGF5cydcbiAgfCAnbGFzdFRoaXJ0eURheXMnXG4gIHwgeyBsYWJlbDogUmVhY3ROb2RlOyB2YWx1ZTogRGF0ZSB8IERhdGVSYW5nZSB8ICgoKSA9PiBEYXRlIHwgRGF0ZVJhbmdlKSB9XG4gIHwgKChvbkNoYW5nZTogKHZhbHVlOiBEYXRlIHwgRGF0ZVJhbmdlIHwgbnVsbCkgPT4gdm9pZCkgPT4gUmVhY3ROb2RlKTtcblxuZXhwb3J0IHR5cGUgRGF0ZVBpY2tlclByb3BzID0ge1xuICAvKiogQ3VycmVudGx5IHNlbGVjdGVkIGRheSBvciByYW5nZSBvZiBkYXlzLiAqL1xuICB2YWx1ZTogRGF0ZSB8IERhdGVSYW5nZSB8IG51bGw7XG4gIC8qKiBDYWxsYmFjayBmb3Igd2hlbiB0aGUgZGF5IChyYW5nZSkgY2hhbmdlcy4gKi9cbiAgb25DaGFuZ2U6ICh2YWx1ZTogRGF0ZSB8IERhdGVSYW5nZSB8IG51bGwpID0+IHZvaWQ7XG4gIC8qKiBJZiBlbmFibGVkLCByYW5nZXMgY2FuIGJlIHNlbGVjdGVkLiAqL1xuICByYW5nZVNlbGVjdD86IGJvb2xlYW47XG4gIC8qKiBXaGljaCBsb2NhbGUgdG8gdXNlIHRvIHJlbmRlciB0aGUgY2FsZW5kYXIuICovXG4gIGxvY2FsZT86IHN0cmluZztcbiAgLyoqIFdoaWNoIGRheSBvZiB0aGUgd2VlayBzaG91bGQgYmUgaW4gdGhlIGZpcnN0IGNvbHVtbi4gKDA9U3VuZGF5LCAxPU1vbmRheSwgLi4uKVxuICAgKiBAZGVmYXVsdCAxXG4gICAqL1xuICBmaXJzdERheU9mV2Vlaz86IDAgfCAxIHwgMiB8IDMgfCA0IHwgNSB8IDY7XG4gIC8qKiBXaGljaCBtb250aCB0byBzaG93IGluaXRpYWxseSAqL1xuICBkZWZhdWx0RGF0ZUluVmlldz86IERhdGU7XG4gIC8qKiBTaG93IGJ1dHRvbnMgdG8gcXVpY2tseSBzZWxlY3Qgc3VnZ2VzdGVkIGRhdGVzIG9yIGRhdGUgcmFuZ2VzICovXG4gIHF1aWNrT3B0aW9ucz86IERhdGVQaWNrZXJRdWlja09wdGlvbltdO1xuICBtaW5EYXRlPzogRGF0ZTtcbiAgbWF4RGF0ZT86IERhdGU7XG59O1xuXG5jb25zdCB3ZWVrRGF5cyA9IFswLCAxLCAyLCAzLCA0LCA1LCA2XSBhcyBjb25zdDtcblxuLyoqIFJvdW5kcyBhIGRhdGUgZG93biB0byB0aGUgc3RhcnQgb2YgdGhlIGRheS4gKi9cbmV4cG9ydCBjb25zdCBzdGFydE9mRGF5ID0gKGQ6IERhdGUpID0+IG5ldyBEYXRlKGQuZ2V0RnVsbFllYXIoKSwgZC5nZXRNb250aCgpLCBkLmdldERhdGUoKSk7XG5cbi8qKiBSb3VuZHMgYSBkYXRlIHVwIHRvIHRoZSBlbmQgb2YgdGhlIGRheS4gKi9cbmV4cG9ydCBjb25zdCBlbmRPZkRheSA9IChkOiBEYXRlKSA9PlxuICBuZXcgRGF0ZShkLmdldEZ1bGxZZWFyKCksIGQuZ2V0TW9udGgoKSwgZC5nZXREYXRlKCkgKyAxLCAwLCAwLCAwLCAtMSk7XG5cbmV4cG9ydCBjb25zdCBsYXN0RGF5cyA9IChkYXlzOiBudW1iZXIpOiBEYXRlUmFuZ2UgPT4ge1xuICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuICBjb25zdCBtaW4gPSBuZXcgRGF0ZShub3cpO1xuICBtaW4uc2V0RGF0ZShtaW4uZ2V0RGF0ZSgpIC0gZGF5cyArIDEpO1xuXG4gIHJldHVybiB7XG4gICAgbWluOiBzdGFydE9mRGF5KG1pbiksXG4gICAgbWF4OiBlbmRPZkRheShub3cpLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHRvZGF5ID0gKCkgPT4gbGFzdERheXMoMSk7XG5cbmV4cG9ydCBjb25zdCB0aGlzV2VlayA9IChkZWx0YSA9IDAsIGZpcnN0RGF5T2ZXZWVrID0gMSk6IERhdGVSYW5nZSA9PiB7XG4gIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG4gIGNvbnN0IG1pbiA9IG5ldyBEYXRlKG5vdyk7XG5cbiAgbGV0IGRpZmYgPSBtaW4uZ2V0RGF5KCkgLSBmaXJzdERheU9mV2VlaztcbiAgaWYgKGRpZmYgPCAwKSB7XG4gICAgZGlmZiArPSA3O1xuICB9XG4gIG1pbi5zZXREYXRlKG1pbi5nZXREYXRlKCkgLSBkaWZmICsgZGVsdGEgKiA3KTtcblxuICBjb25zdCBtYXggPSBuZXcgRGF0ZShtaW4pO1xuICBtYXguc2V0RGF0ZShtYXguZ2V0RGF0ZSgpICsgNik7XG5cbiAgcmV0dXJuIHtcbiAgICBtaW46IHN0YXJ0T2ZEYXkobWluKSxcbiAgICBtYXg6IGVuZE9mRGF5KG1heCksXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgdGhpc01vbnRoID0gKGRlbHRhID0gMCk6IERhdGVSYW5nZSA9PiB7XG4gIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG4gIGNvbnN0IG1pbiA9IG5ldyBEYXRlKG5vdyk7XG4gIG1pbi5zZXREYXRlKDEpO1xuICBtaW4uc2V0TW9udGgobWluLmdldE1vbnRoKCkgKyBkZWx0YSk7XG4gIGNvbnN0IG1heCA9IG5ldyBEYXRlKG1pbik7XG4gIG1heC5zZXRNb250aChtYXguZ2V0TW9udGgoKSArIDEpO1xuICBtYXguc2V0RGF0ZShtYXguZ2V0RGF0ZSgpIC0gMSk7XG5cbiAgcmV0dXJuIHtcbiAgICBtaW46IHN0YXJ0T2ZEYXkobWluKSxcbiAgICBtYXg6IGVuZE9mRGF5KG1heCksXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgdGhpc1llYXIgPSAoZGVsdGEgPSAwKTogRGF0ZVJhbmdlID0+IHtcbiAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgY29uc3QgbWluID0gbmV3IERhdGUobm93KTtcbiAgbWluLnNldERhdGUoMSk7XG4gIG1pbi5zZXRNb250aCgwKTtcbiAgbWluLnNldEZ1bGxZZWFyKG1pbi5nZXRGdWxsWWVhcigpICsgZGVsdGEpO1xuICBjb25zdCBtYXggPSBuZXcgRGF0ZShtaW4pO1xuICBtYXguc2V0RnVsbFllYXIobWF4LmdldEZ1bGxZZWFyKCkgKyAxKTtcbiAgbWF4LnNldERhdGUobWF4LmdldERhdGUoKSAtIDEpO1xuXG4gIHJldHVybiB7XG4gICAgbWluOiBzdGFydE9mRGF5KG1pbiksXG4gICAgbWF4OiBlbmRPZkRheShtYXgpLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGNvbW1vblF1aWNrT3B0aW9ucyA9IHtcbiAgdG9kYXk6IHsgbGFiZWw6IDxUZXh0IGlkPVwidG9kYXlcIiAvPiwgdmFsdWU6IHRvZGF5IH0sXG4gIHRoaXNXZWVrOiB7IGxhYmVsOiA8VGV4dCBpZD1cInRoaXNXZWVrXCIgLz4sIHZhbHVlOiAocHJvcHMpID0+IHRoaXNXZWVrKDAsIHByb3BzLmZpcnN0RGF5T2ZXZWVrKSB9LFxuICB0aGlzTW9udGg6IHsgbGFiZWw6IDxUZXh0IGlkPVwidGhpc01vbnRoXCIgLz4sIHZhbHVlOiAoKSA9PiB0aGlzTW9udGgoKSB9LFxuICB0aGlzWWVhcjogeyBsYWJlbDogPFRleHQgaWQ9XCJ0aGlzWWVhclwiIC8+LCB2YWx1ZTogKCkgPT4gdGhpc1llYXIoKSB9LFxuICBsYXN0U2V2ZW5EYXlzOiB7IGxhYmVsOiA8VGV4dCBpZD1cImxhc3RTZXZlbkRheXNcIiAvPiwgdmFsdWU6ICgpID0+IGxhc3REYXlzKDcpIH0sXG4gIGxhc3RUaGlydHlEYXlzOiB7IGxhYmVsOiA8VGV4dCBpZD1cImxhc3RUaGlydHlEYXlzXCIgLz4sIHZhbHVlOiAoKSA9PiBsYXN0RGF5cygzMCkgfSxcbn0gc2F0aXNmaWVzIFJlY29yZDxcbiAgRGF0ZVBpY2tlclF1aWNrT3B0aW9uICYgc3RyaW5nLFxuICB7IGxhYmVsOiBSZWFjdE5vZGU7IHZhbHVlOiBEYXRlIHwgRGF0ZVJhbmdlIHwgKChwcm9wczogRGF0ZVBpY2tlclByb3BzKSA9PiBEYXRlIHwgRGF0ZVJhbmdlKSB9XG4+O1xuXG4vKiogUmV0dXJucyB3aGV0aGVyIHR3byBkYXRlcyBhbmQvb3IgZGF0ZSByYW5nZXMgaW50ZXJzZWN0LiBJbnRlcnNlY3Rpb24gaXMgY29uc2lkZXJlZCBwZXIgZGF5LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRhdGVJbnRlcnNlY3QoYTogRGF0ZSB8IG51bGwgfCBEYXRlUmFuZ2UsIGI6IERhdGUgfCBudWxsIHwgRGF0ZVJhbmdlKSB7XG4gIGlmIChhIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgIGEgPSB7IG1pbjogYSwgbWF4OiBhIH07XG4gIH1cbiAgaWYgKGIgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgYiA9IHsgbWluOiBiLCBtYXg6IGIgfTtcbiAgfVxuXG4gIGlmICghYT8ubWluIHx8ICFhLm1heCB8fCAhYj8ubWluIHx8ICFiLm1heCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiAhKGVuZE9mRGF5KGEubWF4KSA8IHN0YXJ0T2ZEYXkoYi5taW4pIHx8IHN0YXJ0T2ZEYXkoYS5taW4pID4gZW5kT2ZEYXkoYi5tYXgpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRhdGVDbGFtcChkYXRlOiBEYXRlLCBtaW4/OiBEYXRlLCBtYXg/OiBEYXRlKSB7XG4gIGlmIChtaW4gJiYgZGF0ZSA8IG1pbikge1xuICAgIHJldHVybiBtaW47XG4gIH1cblxuICBpZiAobWF4ICYmIGRhdGUgPiBtYXgpIHtcbiAgICByZXR1cm4gbWF4O1xuICB9XG5cbiAgcmV0dXJuIGRhdGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBEYXRlUGlja2VyKHByb3BzOiBEYXRlUGlja2VyUHJvcHMpIHtcbiAgY29uc3Qge1xuICAgIHZhbHVlLFxuICAgIHJhbmdlU2VsZWN0LFxuICAgIGxvY2FsZSxcbiAgICBmaXJzdERheU9mV2VlayA9IDEsXG4gICAgZGVmYXVsdERhdGVJblZpZXcsXG4gICAgcXVpY2tPcHRpb25zID0gWyd0b2RheScsICd0aGlzV2VlayddLFxuICAgIG1pbkRhdGUsXG4gICAgbWF4RGF0ZSxcbiAgfSA9IHByb3BzO1xuXG4gIGZ1bmN0aW9uIG9uQ2hhbmdlKHZhbHVlOiBEYXRlIHwgRGF0ZVJhbmdlIHwgbnVsbCkge1xuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgIHZhbHVlID0gZGF0ZUNsYW1wKHZhbHVlLCBtaW5EYXRlLCBtYXhEYXRlKTtcbiAgICB9IGVsc2UgaWYgKHZhbHVlKSB7XG4gICAgICB2YWx1ZSA9IHtcbiAgICAgICAgbWluOiBkYXRlQ2xhbXAodmFsdWUubWluLCBtaW5EYXRlLCBtYXhEYXRlKSxcbiAgICAgICAgbWF4OiBkYXRlQ2xhbXAodmFsdWUubWF4LCBtaW5EYXRlLCBtYXhEYXRlKSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcHJvcHMub25DaGFuZ2UodmFsdWUpO1xuICB9XG5cbiAgY29uc3QgQnV0dG9uID0gdXNlVGhlbWUoKHQpID0+IHQuY29tcG9uZW50cy5CdXR0b24pO1xuICBjb25zdCBJY29uQnV0dG9uID0gdXNlVGhlbWUoKHQpID0+IHQuY29tcG9uZW50cy5JY29uQnV0dG9uKTtcbiAgY29uc3QgQ2hldnJvblJpZ2h0ID0gdXNlVGhlbWUoKHQpID0+IHQuaWNvbnMuQ2hldnJvblJpZ2h0KTtcbiAgY29uc3QgY3NzVmFyaWFibGVzID0gdXNlQ3NzVmFyaWFibGVzKCk7XG5cbiAgY29uc3QgbW91bnRUaW1lID0gdXNlTWVtbygoKSA9PiBuZXcgRGF0ZSgpLCBbXSk7XG4gIGNvbnN0IFtkYXRlSW5WaWV3LCBzZXREYXRlSW5WaWV3XSA9IHVzZVN0YXRlPERhdGU+KGRlZmF1bHREYXRlSW5WaWV3ID8/IG1vdW50VGltZSk7XG4gIGNvbnN0IFtkaXJ0eSwgc2V0RGlydHldID0gdXNlU3RhdGU8UGFydGlhbDxEYXRlUmFuZ2U+PigpO1xuICBjb25zdCBbaG92ZXJlZCwgc2V0SG92ZXJlZF0gPSB1c2VTdGF0ZTxEYXRlPigpO1xuXG4gIGNvbnN0IG1pbiA9IGRpcnR5ID8gZGlydHkubWluIDogdmFsdWUgaW5zdGFuY2VvZiBEYXRlID8gdmFsdWUgOiB2YWx1ZT8ubWluO1xuICBjb25zdCBtYXggPSBkaXJ0eSA/IGRpcnR5Lm1heCA6IHZhbHVlIGluc3RhbmNlb2YgRGF0ZSA/IHZhbHVlIDogdmFsdWU/Lm1heDtcblxuICBjb25zdCByZXNvbHZlZFF1aWNrT3B0aW9ucyA9IFsuLi5xdWlja09wdGlvbnMsIHsgbGFiZWw6IDxUZXh0IGlkPVwicmVzZXRcIiAvPiwgdmFsdWU6IG51bGwgfV0ubWFwKFxuICAgIChvcHRpb24sIGluZGV4KSA9PiB7XG4gICAgICBpZiAob3B0aW9uIGluc3RhbmNlb2YgRnVuY3Rpb24pIHtcbiAgICAgICAgcmV0dXJuIG9wdGlvbigodmFsdWUpID0+IHtcbiAgICAgICAgICBzZXREaXJ0eSh1bmRlZmluZWQpO1xuICAgICAgICAgIG9uQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHsgbGFiZWwsIHZhbHVlIH0gPSB0eXBlb2Ygb3B0aW9uID09PSAnc3RyaW5nJyA/IGNvbW1vblF1aWNrT3B0aW9uc1tvcHRpb25dIDogb3B0aW9uO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8QnV0dG9uXG4gICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICB2YXJpYW50PVwidGV4dFwiXG4gICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgc2V0RGlydHkodW5kZWZpbmVkKTtcblxuICAgICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRnVuY3Rpb24pIHtcbiAgICAgICAgICAgICAgb25DaGFuZ2UodmFsdWUocHJvcHMpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIG9uQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAge2xhYmVsfVxuICAgICAgICA8L0J1dHRvbj5cbiAgICAgICk7XG4gICAgfSxcbiAgKTtcblxuICBjb25zdCB7IGNhbGVuZGFycywgZ2V0QmFja1Byb3BzLCBnZXRGb3J3YXJkUHJvcHMsIGdldERhdGVQcm9wcyB9ID0gdXNlRGF5emVkKHtcbiAgICBvbkRhdGVTZWxlY3RlZDogKCkgPT4gdW5kZWZpbmVkLFxuICAgIGZpcnN0RGF5T2ZXZWVrLFxuICAgIHNob3dPdXRzaWRlRGF5czogdHJ1ZSxcbiAgICBkYXRlOiBkYXRlSW5WaWV3LFxuICAgIG9uT2Zmc2V0Q2hhbmdlZDogKG9mZnNldCkgPT5cbiAgICAgIHNldERhdGVJblZpZXcobmV3IERhdGUoZGF0ZUluVmlldy5nZXRGdWxsWWVhcigpLCBkYXRlSW5WaWV3LmdldE1vbnRoKCkgKyBvZmZzZXQpKSxcbiAgICBvZmZzZXQ6IDAsXG4gICAgbWluRGF0ZSxcbiAgICBtYXhEYXRlLFxuICB9KTtcbiAgY29uc3Qgbm93ID0gdXNlTWVtbygoKSA9PiBzdGFydE9mRGF5KG5ldyBEYXRlKCkpLCBbXSk7XG5cbiAgY29uc3QgZm9ybWF0V2Vla2RheSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHsgZm9ybWF0IH0gPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NhbGUsIHsgd2Vla2RheTogJ3Nob3J0JyB9KTtcbiAgICByZXR1cm4gKHdlZWtEYXk6IG51bWJlcikgPT5cbiAgICAgIGZvcm1hdChuZXcgRGF0ZShEYXRlLlVUQygyMDIxLCA3LCAoKHdlZWtEYXkgKyBmaXJzdERheU9mV2VlaykgJSA3KSArIDEpKSk7XG4gIH0sIFtsb2NhbGUsIGZpcnN0RGF5T2ZXZWVrXSk7XG5cbiAgdXNlRWZmZWN0KFxuICAgICgpID0+XG4gICAgICBzZXREYXRlSW5WaWV3KFxuICAgICAgICB2YWx1ZSA9PT0gbnVsbCA/IGRlZmF1bHREYXRlSW5WaWV3ID8/IG1vdW50VGltZSA6IHZhbHVlIGluc3RhbmNlb2YgRGF0ZSA/IHZhbHVlIDogdmFsdWUubWF4LFxuICAgICAgKSxcbiAgICBbdmFsdWUsIGRlZmF1bHREYXRlSW5WaWV3LCBtb3VudFRpbWVdLFxuICApO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFyYW5nZVNlbGVjdCkge1xuICAgICAgc2V0RGlydHkodW5kZWZpbmVkKTtcbiAgICB9XG4gIH0sIFtyYW5nZVNlbGVjdF0pO1xuXG4gIGZ1bmN0aW9uIHNldChtaW4/OiBEYXRlLCBtYXg/OiBEYXRlLCBlZGl0PzogJ21pbicgfCAnbWF4Jykge1xuICAgIGlmICghcmFuZ2VTZWxlY3QpIHtcbiAgICAgIG9uQ2hhbmdlKG1pbiA/PyBudWxsKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAobWluICYmIG1heCAmJiBtaW4gPiBtYXgpIHtcbiAgICAgIGlmIChlZGl0ID09PSAnbWluJykge1xuICAgICAgICBtYXggPSBtaW47XG4gICAgICB9IGVsc2UgaWYgKGVkaXQgPT09ICdtYXgnKSB7XG4gICAgICAgIG1pbiA9IG1heDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIFttaW4sIG1heF0gPSBbbWF4LCBtaW5dO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghbWluID09PSAhbWF4KSB7XG4gICAgICBzZXREaXJ0eSh1bmRlZmluZWQpO1xuICAgICAgb25DaGFuZ2UobWluICYmIG1heCA/IHsgbWluLCBtYXg6IGVuZE9mRGF5KG1heCkgfSA6IG51bGwpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXREaXJ0eSh7IG1pbiwgbWF4IH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGZvcm1hdE1vbnRoID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgeyBmb3JtYXQgfSA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KGxvY2FsZSwgeyBtb250aDogJ2xvbmcnIH0pO1xuICAgIHJldHVybiAobW9udGg6IG51bWJlcikgPT4gZm9ybWF0KG5ldyBEYXRlKDIwMjEsIG1vbnRoKSk7XG4gIH0sIFtsb2NhbGVdKTtcblxuICBjb25zdCBmb3JtYXRZZWFyID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgeyBmb3JtYXQgfSA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KGxvY2FsZSwgeyB5ZWFyOiAnbnVtZXJpYycgfSk7XG4gICAgcmV0dXJuICh5ZWFyOiBudW1iZXIpID0+IGZvcm1hdChuZXcgRGF0ZSh5ZWFyLCAwLCAxKSk7XG4gIH0sIFtsb2NhbGVdKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY3NzPXtjc3NWYXJpYWJsZXN9PlxuICAgICAgPGRpdlxuICAgICAgICBjc3M9e3tcbiAgICAgICAgICBkaXNwbGF5OiAnZ3JpZCcsXG4gICAgICAgICAgZ3JpZEF1dG9GbG93OiAnY29sdW1uJyxcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgYWxpZ25JdGVtczogJ2Jhc2VsaW5lJyxcbiAgICAgICAgICBnYXA6ICd2YXIoLS1zcGFjaW5nKScsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxEYXRlSW5wdXRcbiAgICAgICAgICB2YWx1ZT17bWluID8/IG51bGx9XG4gICAgICAgICAgb25DaGFuZ2U9eyhkYXRlKSA9PiBzZXQoZGF0ZSA/PyB1bmRlZmluZWQsIG1heCwgJ21pbicpfVxuICAgICAgICAgIGxvY2FsZT17bG9jYWxlfVxuICAgICAgICAvPlxuXG4gICAgICAgIHtyYW5nZVNlbGVjdCAmJiAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIHsnIC0gJ31cbiAgICAgICAgICAgIDxEYXRlSW5wdXRcbiAgICAgICAgICAgICAgdmFsdWU9e21heCA/PyBudWxsfVxuICAgICAgICAgICAgICBvbkNoYW5nZT17KGRhdGUpID0+IHNldChtaW4sIGRhdGUgPz8gdW5kZWZpbmVkLCAnbWF4Jyl9XG4gICAgICAgICAgICAgIGxvY2FsZT17bG9jYWxlfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuXG4gICAgICB7Y2FsZW5kYXJzLm1hcCgoeyBtb250aCwgeWVhciwgd2Vla3MgfSkgPT4gKFxuICAgICAgICA8ZGl2IGtleT17YCR7bW9udGh9JHt5ZWFyfWB9IGNzcz17eyBkaXNwbGF5OiAnZ3JpZCcgfX0+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY3NzPXt7XG4gICAgICAgICAgICAgIG1hcmdpbjogJ2NhbGModmFyKC0tc3BhY2luZykgKiA0KSAwJyxcbiAgICAgICAgICAgICAgZGlzcGxheTogJ2dyaWQnLFxuICAgICAgICAgICAgICBncmlkQXV0b0Zsb3c6ICdjb2x1bW4nLFxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ3NwYWNlLWJldHdlZW4nLFxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEljb25CdXR0b24gey4uLmdldEJhY2tQcm9wcyh7IGNhbGVuZGFycyB9KX0+XG4gICAgICAgICAgICAgIDxDaGV2cm9uUmlnaHQgY3NzPXt7IHRyYW5zZm9ybTogJ3JvdGF0ZTNkKDAsIDAsIDEsIDE4MGRlZyknIH19IC8+XG4gICAgICAgICAgICA8L0ljb25CdXR0b24+XG5cbiAgICAgICAgICAgIDxkaXYgY3NzPXt7IGRpc3BsYXk6ICdmbGV4JyB9fT5cbiAgICAgICAgICAgICAge2Zvcm1hdE1vbnRoKG1vbnRoKX0ge2Zvcm1hdFllYXIoeWVhcil9XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPEljb25CdXR0b24gey4uLmdldEZvcndhcmRQcm9wcyh7IGNhbGVuZGFycyB9KX0+XG4gICAgICAgICAgICAgIDxDaGV2cm9uUmlnaHQgLz5cbiAgICAgICAgICAgIDwvSWNvbkJ1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNzcz17e1xuICAgICAgICAgICAgICBqdXN0aWZ5U2VsZjogJ2NlbnRlcicsXG4gICAgICAgICAgICAgIGRpc3BsYXk6ICdncmlkJyxcbiAgICAgICAgICAgICAgZ3JpZFRlbXBsYXRlQ29sdW1uczogJ3JlcGVhdCg3LCBtYXgtY29udGVudCknLFxuICAgICAgICAgICAgICBmb250V2VpZ2h0OiAnYm9sZCcsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt3ZWVrRGF5cy5tYXAoKF92LCB3ZWVrRGF5KSA9PiAoXG4gICAgICAgICAgICAgIDxkaXYga2V5PXt3ZWVrRGF5fSBjc3M9e3sganVzdGlmeVNlbGY6ICdjZW50ZXInLCBtYXJnaW5Cb3R0b206ICd2YXIoLS1zcGFjaW5nKScgfX0+XG4gICAgICAgICAgICAgICAge2Zvcm1hdFdlZWtkYXkod2Vla0RheSl9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKSl9XG5cbiAgICAgICAgICAgIHt3ZWVrcy5tYXAoKHdlZWssIGluZGV4KSA9PlxuICAgICAgICAgICAgICB3ZWVrLm1hcCgoZGF0ZU9iamVjdCwgZGF5SW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIWRhdGVPYmplY3QpIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiA8ZGl2IGtleT17YCR7aW5kZXh9LSR7ZGF5SW5kZXh9YH0gLz47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3QgeyBwcmV2TW9udGgsIG5leHRNb250aCwgZGF0ZSB9ID0gZGF0ZU9iamVjdDtcbiAgICAgICAgICAgICAgICBjb25zdCB0b2RheSA9IHN0YXJ0T2ZEYXkoZGF0ZSkuZ2V0VGltZSgpID09PSBub3cuZ2V0VGltZSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGRpc2FibGVkID0gKG1pbkRhdGUgJiYgZGF0ZSA8IG1pbkRhdGUpIHx8IChtYXhEYXRlICYmIGRhdGUgPiBtYXhEYXRlKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkID1cbiAgICAgICAgICAgICAgICAgIGRhdGUuZ2V0VGltZSgpID09PSBtaW4/LmdldFRpbWUoKSB8fFxuICAgICAgICAgICAgICAgICAgKG1pbiAmJiBtYXggJiYgZGF0ZUludGVyc2VjdChkYXRlLCB7IG1pbiwgbWF4IH0pKTtcbiAgICAgICAgICAgICAgICBjb25zdCBwcmVTZWxlY3RlZCA9XG4gICAgICAgICAgICAgICAgICAhc2VsZWN0ZWQgJiZcbiAgICAgICAgICAgICAgICAgICFkaXNhYmxlZCAmJlxuICAgICAgICAgICAgICAgICAgKGRhdGUuZ2V0VGltZSgpID09PSBob3ZlcmVkPy5nZXRUaW1lKCkgfHxcbiAgICAgICAgICAgICAgICAgICAgKG1pbiAmJlxuICAgICAgICAgICAgICAgICAgICAgICFtYXggJiZcbiAgICAgICAgICAgICAgICAgICAgICBob3ZlcmVkICYmXG4gICAgICAgICAgICAgICAgICAgICAgZGF0ZUludGVyc2VjdChcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBtaW4gPD0gaG92ZXJlZCA/IHsgbWluLCBtYXg6IGhvdmVyZWQgfSA6IHsgbWluOiBob3ZlcmVkLCBtYXg6IG1pbiB9LFxuICAgICAgICAgICAgICAgICAgICAgICkpKTtcblxuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGtleT17YCR7aW5kZXh9LSR7ZGF5SW5kZXh9YH1cbiAgICAgICAgICAgICAgICAgICAgY3NzPXtbXG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMTAsXG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6ICcxcHggc29saWQgdHJhbnNwYXJlbnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJ3RyYW5zcGFyZW50JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnNvcjogJ3BvaW50ZXInLFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgKHByZXZNb250aCB8fCBuZXh0TW9udGgpICYmIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBncmF5LFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgdG9kYXkgJiYge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAnMXB4IHNvbGlkIHZhcigtLXNlY29uZGFyeU1haW4pJyxcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkICYmIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICd2YXIoLS1wcmltYXJ5TWFpbiknLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICd2YXIoLS1wcmltYXJ5Q29udHJhc3RUZXh0KScsXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBwcmVTZWxlY3RlZCAmJiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAndmFyKC0tcHJpbWFyeUxpZ2h0KScsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ3ZhcigtLXByaW1hcnlDb250cmFzdFRleHQpJyxcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBdfVxuICAgICAgICAgICAgICAgICAgICB7Li4uZ2V0RGF0ZVByb3BzKHsgZGF0ZU9iajogZGF0ZU9iamVjdCB9KX1cbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIGlmIChkaXJ0eSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1pbikgc2V0KG1pbiwgZGF0ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHNldChkYXRlLCBtYXgpO1xuICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXQoZGF0ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICBvblBvaW50ZXJPdmVyPXsoKSA9PiBzZXRIb3ZlcmVkKGRhdGUpfVxuICAgICAgICAgICAgICAgICAgICBvblBvaW50ZXJPdXQ9eygpID0+IHNldEhvdmVyZWQodW5kZWZpbmVkKX1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7ZGF0ZS5nZXREYXRlKCl9XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKSl9XG5cbiAgICAgIDxkaXZcbiAgICAgICAgY3NzPXt7XG4gICAgICAgICAgbWFyZ2luVG9wOiAndmFyKC0tc3BhY2luZyknLFxuICAgICAgICAgIGRpc3BsYXk6ICdncmlkJyxcbiAgICAgICAgICBncmlkQXV0b0Zsb3c6ICdjb2x1bW4nLFxuICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAge3Jlc29sdmVkUXVpY2tPcHRpb25zfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICk7XG59XG4iXX0= */",
|
|
985
|
+
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3NjaHVtbWFyLXRhYmxlL3NjaHVtbWFyLXRhYmxlL3NyYy9jb21wb25lbnRzL2RhdGVQaWNrZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXNoQlEiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvc2NodW1tYXItdGFibGUvc2NodW1tYXItdGFibGUvc3JjL2NvbXBvbmVudHMvZGF0ZVBpY2tlci50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRlT2JqLCB1c2VEYXl6ZWQgfSBmcm9tICdkYXl6ZWQnO1xuaW1wb3J0IHtcbiAgRnJhZ21lbnQsXG4gIFJlYWN0Tm9kZSxcbiAgY3JlYXRlQ29udGV4dCxcbiAgdXNlQ29udGV4dCxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICcuLi9ob29rcy91c2VUaGVtZSc7XG5pbXBvcnQgeyBkZWZhdWx0cyB9IGZyb20gJy4uL21pc2MvZGVmYXVsdHMnO1xuaW1wb3J0IHsgZ3JheSB9IGZyb20gJy4uL3RoZW1lL2RlZmF1bHRUaGVtZS9kZWZhdWx0Q2xhc3Nlcyc7XG5pbXBvcnQgeyB1c2VDc3NWYXJpYWJsZXMgfSBmcm9tICcuLi90aGVtZS91c2VDc3NWYXJpYWJsZXMnO1xuaW1wb3J0IHsgRGF0ZUlucHV0IH0gZnJvbSAnLi9kYXRlSW5wdXQnO1xuaW1wb3J0IHsgVGV4dCB9IGZyb20gJy4vdGV4dCc7XG5cbmV4cG9ydCB0eXBlIERhdGVSYW5nZSA9IHsgbWluOiBEYXRlOyBtYXg6IERhdGUgfTtcblxuZXhwb3J0IHR5cGUgRGF0ZVBpY2tlclF1aWNrT3B0aW9uID1cbiAgfCAndG9kYXknXG4gIHwgJ3RoaXNXZWVrJ1xuICB8ICd0aGlzTW9udGgnXG4gIHwgJ3RoaXNZZWFyJ1xuICB8ICdsYXN0U2V2ZW5EYXlzJ1xuICB8ICdsYXN0VGhpcnR5RGF5cydcbiAgfCB7IGxhYmVsOiBSZWFjdE5vZGU7IHZhbHVlOiBEYXRlIHwgRGF0ZVJhbmdlIHwgKCgpID0+IERhdGUgfCBEYXRlUmFuZ2UpIH1cbiAgfCAoKG9uQ2hhbmdlOiAodmFsdWU6IERhdGUgfCBEYXRlUmFuZ2UgfCBudWxsKSA9PiB2b2lkKSA9PiBSZWFjdE5vZGUpO1xuXG5leHBvcnQgdHlwZSBEYXRlUGlja2VyUHJvcHMgPSB7XG4gIC8qKiBDdXJyZW50bHkgc2VsZWN0ZWQgZGF5IG9yIHJhbmdlIG9mIGRheXMuICovXG4gIHZhbHVlOiBEYXRlIHwgRGF0ZVJhbmdlIHwgbnVsbDtcbiAgLyoqIENhbGxiYWNrIGZvciB3aGVuIHRoZSBkYXkgKHJhbmdlKSBjaGFuZ2VzLiAqL1xuICBvbkNoYW5nZTogKHZhbHVlOiBEYXRlIHwgRGF0ZVJhbmdlIHwgbnVsbCkgPT4gdm9pZDtcbiAgLyoqIElmIGVuYWJsZWQsIHJhbmdlcyBjYW4gYmUgc2VsZWN0ZWQuICovXG4gIHJhbmdlU2VsZWN0PzogYm9vbGVhbjtcbiAgLyoqIFdoaWNoIGxvY2FsZSB0byB1c2UgdG8gcmVuZGVyIHRoZSBjYWxlbmRhci4gKi9cbiAgbG9jYWxlPzogc3RyaW5nO1xuICAvKiogV2hpY2ggZGF5IG9mIHRoZSB3ZWVrIHNob3VsZCBiZSBpbiB0aGUgZmlyc3QgY29sdW1uLiAoMD1TdW5kYXksIDE9TW9uZGF5LCAuLi4pXG4gICAqIEBkZWZhdWx0IDFcbiAgICovXG4gIGZpcnN0RGF5T2ZXZWVrPzogMCB8IDEgfCAyIHwgMyB8IDQgfCA1IHwgNjtcbiAgLyoqIFdoaWNoIG1vbnRoIHRvIHNob3cgaW5pdGlhbGx5ICovXG4gIGRlZmF1bHREYXRlSW5WaWV3PzogRGF0ZTtcbiAgLyoqIFNob3cgYnV0dG9ucyB0byBxdWlja2x5IHNlbGVjdCBzdWdnZXN0ZWQgZGF0ZXMgb3IgZGF0ZSByYW5nZXMgKi9cbiAgcXVpY2tPcHRpb25zPzogRGF0ZVBpY2tlclF1aWNrT3B0aW9uW107XG4gIC8qKiBNaW5pbXVtIHNlbGVjdGFibGUgZGF0ZSAqL1xuICBtaW5EYXRlPzogRGF0ZTtcbiAgLyoqIE1heGltdW0gc2VsZWN0YWJsZSBkYXRlICovXG4gIG1heERhdGU/OiBEYXRlO1xuICAvKiogV2hldGhlciB0byBzaG93IHRoZSBjYWxlbmRhciB3ZWVrIGluIHRoZSBmaXJzdCBjb2x1bW4gKi9cbiAgc2hvd0NhbGVuZGFyV2Vlaz86IGJvb2xlYW47XG59O1xuXG5jb25zdCBEYXRlUGlja2VyQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8UGFydGlhbDxPbWl0PERhdGVQaWNrZXJQcm9wcywgJ3ZhbHVlJyB8ICdvbkNoYW5nZSc+Pj4oe30pO1xuXG5leHBvcnQgZnVuY3Rpb24gRGF0ZVBpY2tlclByb3ZpZGVyKHtcbiAgY2hpbGRyZW4sXG4gIC4uLnByb3BzXG59OiBQYXJ0aWFsPE9taXQ8RGF0ZVBpY2tlclByb3BzLCAndmFsdWUnIHwgJ29uQ2hhbmdlJz4+ICYgeyBjaGlsZHJlbj86IFJlYWN0Tm9kZSB9KSB7XG4gIGNvbnN0IHZhbHVlID0gdXNlTWVtbygoKSA9PiBwcm9wcywgW0pTT04uc3RyaW5naWZ5KHByb3BzKV0pO1xuXG4gIHJldHVybiA8RGF0ZVBpY2tlckNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3ZhbHVlfT57Y2hpbGRyZW59PC9EYXRlUGlja2VyQ29udGV4dC5Qcm92aWRlcj47XG59XG5cbmNvbnN0IHdlZWtEYXlzID0gWzAsIDEsIDIsIDMsIDQsIDUsIDZdIGFzIGNvbnN0O1xuXG4vKiogUm91bmRzIGEgZGF0ZSBkb3duIHRvIHRoZSBzdGFydCBvZiB0aGUgZGF5LiAqL1xuZXhwb3J0IGNvbnN0IHN0YXJ0T2ZEYXkgPSAoZDogRGF0ZSkgPT4gbmV3IERhdGUoZC5nZXRGdWxsWWVhcigpLCBkLmdldE1vbnRoKCksIGQuZ2V0RGF0ZSgpKTtcblxuLyoqIFJvdW5kcyBhIGRhdGUgdXAgdG8gdGhlIGVuZCBvZiB0aGUgZGF5LiAqL1xuZXhwb3J0IGNvbnN0IGVuZE9mRGF5ID0gKGQ6IERhdGUpID0+XG4gIG5ldyBEYXRlKGQuZ2V0RnVsbFllYXIoKSwgZC5nZXRNb250aCgpLCBkLmdldERhdGUoKSArIDEsIDAsIDAsIDAsIC0xKTtcblxuZXhwb3J0IGNvbnN0IGxhc3REYXlzID0gKGRheXM6IG51bWJlcik6IERhdGVSYW5nZSA9PiB7XG4gIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG4gIGNvbnN0IG1pbiA9IG5ldyBEYXRlKG5vdyk7XG4gIG1pbi5zZXREYXRlKG1pbi5nZXREYXRlKCkgLSBkYXlzICsgMSk7XG5cbiAgcmV0dXJuIHtcbiAgICBtaW46IHN0YXJ0T2ZEYXkobWluKSxcbiAgICBtYXg6IGVuZE9mRGF5KG5vdyksXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgdG9kYXkgPSAoKSA9PiBsYXN0RGF5cygxKTtcblxuZXhwb3J0IGNvbnN0IHRoaXNXZWVrID0gKGRlbHRhID0gMCwgZmlyc3REYXlPZldlZWsgPSAxKTogRGF0ZVJhbmdlID0+IHtcbiAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgY29uc3QgbWluID0gbmV3IERhdGUobm93KTtcblxuICBsZXQgZGlmZiA9IG1pbi5nZXREYXkoKSAtIGZpcnN0RGF5T2ZXZWVrO1xuICBpZiAoZGlmZiA8IDApIHtcbiAgICBkaWZmICs9IDc7XG4gIH1cbiAgbWluLnNldERhdGUobWluLmdldERhdGUoKSAtIGRpZmYgKyBkZWx0YSAqIDcpO1xuXG4gIGNvbnN0IG1heCA9IG5ldyBEYXRlKG1pbik7XG4gIG1heC5zZXREYXRlKG1heC5nZXREYXRlKCkgKyA2KTtcblxuICByZXR1cm4ge1xuICAgIG1pbjogc3RhcnRPZkRheShtaW4pLFxuICAgIG1heDogZW5kT2ZEYXkobWF4KSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCB0aGlzTW9udGggPSAoZGVsdGEgPSAwKTogRGF0ZVJhbmdlID0+IHtcbiAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgY29uc3QgbWluID0gbmV3IERhdGUobm93KTtcbiAgbWluLnNldERhdGUoMSk7XG4gIG1pbi5zZXRNb250aChtaW4uZ2V0TW9udGgoKSArIGRlbHRhKTtcbiAgY29uc3QgbWF4ID0gbmV3IERhdGUobWluKTtcbiAgbWF4LnNldE1vbnRoKG1heC5nZXRNb250aCgpICsgMSk7XG4gIG1heC5zZXREYXRlKG1heC5nZXREYXRlKCkgLSAxKTtcblxuICByZXR1cm4ge1xuICAgIG1pbjogc3RhcnRPZkRheShtaW4pLFxuICAgIG1heDogZW5kT2ZEYXkobWF4KSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCB0aGlzWWVhciA9IChkZWx0YSA9IDApOiBEYXRlUmFuZ2UgPT4ge1xuICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuICBjb25zdCBtaW4gPSBuZXcgRGF0ZShub3cpO1xuICBtaW4uc2V0RGF0ZSgxKTtcbiAgbWluLnNldE1vbnRoKDApO1xuICBtaW4uc2V0RnVsbFllYXIobWluLmdldEZ1bGxZZWFyKCkgKyBkZWx0YSk7XG4gIGNvbnN0IG1heCA9IG5ldyBEYXRlKG1pbik7XG4gIG1heC5zZXRGdWxsWWVhcihtYXguZ2V0RnVsbFllYXIoKSArIDEpO1xuICBtYXguc2V0RGF0ZShtYXguZ2V0RGF0ZSgpIC0gMSk7XG5cbiAgcmV0dXJuIHtcbiAgICBtaW46IHN0YXJ0T2ZEYXkobWluKSxcbiAgICBtYXg6IGVuZE9mRGF5KG1heCksXG4gIH07XG59O1xuXG5jb25zdCBNU19QRVJfREFZID0gMTAwMCAqIDYwICogNjAgKiAyNDtcbmV4cG9ydCBjb25zdCBnZXRDYWxlbmRhcldlZWsgPSAoZGF0ZTogRGF0ZSk6IG51bWJlciA9PiB7XG4gIC8vIElTTyA4NjAxOiBXZWVrIDEgaXMgdGhlIHdlZWsgd2l0aCB0aGUgZmlyc3QgVGh1cnNkYXkgb2YgdGhlIHllYXIuXG4gIC8vIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT193ZWVrX2RhdGVcblxuICBjb25zdCB5ID0gZGF0ZS5nZXRGdWxsWWVhcigpO1xuICBjb25zdCBmZG95ID0gbmV3IERhdGUoeSwgMCwgMSk7XG4gIGNvbnN0IGRveSA9IE1hdGguZmxvb3IoXG4gICAgKGRhdGUuZ2V0VGltZSgpIC0gZmRveS5nZXRUaW1lKCkgKyAoZGF0ZS5nZXRUaW1lem9uZU9mZnNldCgpIC0gZmRveS5nZXRUaW1lem9uZU9mZnNldCgpKSkgL1xuICAgICAgTVNfUEVSX0RBWSxcbiAgKTtcbiAgY29uc3QgZG93ID0gZmRveS5nZXREYXkoKTtcbiAgY29uc3QgdyA9IE1hdGguZmxvb3IoKDEwICsgZG95IC0gZG93KSAvIDcpO1xuXG4gIGlmICh3ID09PSAwKSB7XG4gICAgcmV0dXJuIGdldENhbGVuZGFyV2VlayhuZXcgRGF0ZSh5IC0gMSwgMTEsIDMxKSk7XG4gIH1cblxuICByZXR1cm4gdztcbn07XG5cbmV4cG9ydCBjb25zdCBjb21tb25RdWlja09wdGlvbnMgPSB7XG4gIHRvZGF5OiB7IGxhYmVsOiA8VGV4dCBpZD1cInRvZGF5XCIgLz4sIHZhbHVlOiB0b2RheSB9LFxuICB0aGlzV2VlazogeyBsYWJlbDogPFRleHQgaWQ9XCJ0aGlzV2Vla1wiIC8+LCB2YWx1ZTogKHByb3BzKSA9PiB0aGlzV2VlaygwLCBwcm9wcy5maXJzdERheU9mV2VlaykgfSxcbiAgdGhpc01vbnRoOiB7IGxhYmVsOiA8VGV4dCBpZD1cInRoaXNNb250aFwiIC8+LCB2YWx1ZTogKCkgPT4gdGhpc01vbnRoKCkgfSxcbiAgdGhpc1llYXI6IHsgbGFiZWw6IDxUZXh0IGlkPVwidGhpc1llYXJcIiAvPiwgdmFsdWU6ICgpID0+IHRoaXNZZWFyKCkgfSxcbiAgbGFzdFNldmVuRGF5czogeyBsYWJlbDogPFRleHQgaWQ9XCJsYXN0U2V2ZW5EYXlzXCIgLz4sIHZhbHVlOiAoKSA9PiBsYXN0RGF5cyg3KSB9LFxuICBsYXN0VGhpcnR5RGF5czogeyBsYWJlbDogPFRleHQgaWQ9XCJsYXN0VGhpcnR5RGF5c1wiIC8+LCB2YWx1ZTogKCkgPT4gbGFzdERheXMoMzApIH0sXG59IHNhdGlzZmllcyBSZWNvcmQ8XG4gIERhdGVQaWNrZXJRdWlja09wdGlvbiAmIHN0cmluZyxcbiAgeyBsYWJlbDogUmVhY3ROb2RlOyB2YWx1ZTogRGF0ZSB8IERhdGVSYW5nZSB8ICgocHJvcHM6IERhdGVQaWNrZXJQcm9wcykgPT4gRGF0ZSB8IERhdGVSYW5nZSkgfVxuPjtcblxuLyoqIFJldHVybnMgd2hldGhlciB0d28gZGF0ZXMgYW5kL29yIGRhdGUgcmFuZ2VzIGludGVyc2VjdC4gSW50ZXJzZWN0aW9uIGlzIGNvbnNpZGVyZWQgcGVyIGRheS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkYXRlSW50ZXJzZWN0KGE6IERhdGUgfCBudWxsIHwgRGF0ZVJhbmdlLCBiOiBEYXRlIHwgbnVsbCB8IERhdGVSYW5nZSkge1xuICBpZiAoYSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICBhID0geyBtaW46IGEsIG1heDogYSB9O1xuICB9XG4gIGlmIChiIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgIGIgPSB7IG1pbjogYiwgbWF4OiBiIH07XG4gIH1cblxuICBpZiAoIWE/Lm1pbiB8fCAhYS5tYXggfHwgIWI/Lm1pbiB8fCAhYi5tYXgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gIShlbmRPZkRheShhLm1heCkgPCBzdGFydE9mRGF5KGIubWluKSB8fCBzdGFydE9mRGF5KGEubWluKSA+IGVuZE9mRGF5KGIubWF4KSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkYXRlQ2xhbXAoZGF0ZTogRGF0ZSwgbWluPzogRGF0ZSwgbWF4PzogRGF0ZSkge1xuICBpZiAobWluICYmIGRhdGUgPCBtaW4pIHtcbiAgICByZXR1cm4gbWluO1xuICB9XG5cbiAgaWYgKG1heCAmJiBkYXRlID4gbWF4KSB7XG4gICAgcmV0dXJuIG1heDtcbiAgfVxuXG4gIHJldHVybiBkYXRlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gRGF0ZVBpY2tlcihwcm9wczogRGF0ZVBpY2tlclByb3BzKSB7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KERhdGVQaWNrZXJDb250ZXh0KTtcblxuICBjb25zdCB7XG4gICAgdmFsdWUsXG4gICAgcmFuZ2VTZWxlY3QsXG4gICAgbG9jYWxlLFxuICAgIGZpcnN0RGF5T2ZXZWVrID0gMSxcbiAgICBkZWZhdWx0RGF0ZUluVmlldyxcbiAgICBxdWlja09wdGlvbnMgPSBbJ3RvZGF5JywgJ3RoaXNXZWVrJ10sXG4gICAgbWluRGF0ZSxcbiAgICBtYXhEYXRlLFxuICAgIHNob3dDYWxlbmRhcldlZWssXG4gIH0gPSBkZWZhdWx0czxEYXRlUGlja2VyUHJvcHM+KHByb3BzLCBjb250ZXh0KTtcblxuICBmdW5jdGlvbiBvbkNoYW5nZSh2YWx1ZTogRGF0ZSB8IERhdGVSYW5nZSB8IG51bGwpIHtcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICB2YWx1ZSA9IGRhdGVDbGFtcCh2YWx1ZSwgbWluRGF0ZSwgbWF4RGF0ZSk7XG4gICAgfSBlbHNlIGlmICh2YWx1ZSkge1xuICAgICAgdmFsdWUgPSB7XG4gICAgICAgIG1pbjogZGF0ZUNsYW1wKHZhbHVlLm1pbiwgbWluRGF0ZSwgbWF4RGF0ZSksXG4gICAgICAgIG1heDogZGF0ZUNsYW1wKHZhbHVlLm1heCwgbWluRGF0ZSwgbWF4RGF0ZSksXG4gICAgICB9O1xuICAgIH1cblxuICAgIHByb3BzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgfVxuXG4gIGNvbnN0IEJ1dHRvbiA9IHVzZVRoZW1lKCh0KSA9PiB0LmNvbXBvbmVudHMuQnV0dG9uKTtcbiAgY29uc3QgSWNvbkJ1dHRvbiA9IHVzZVRoZW1lKCh0KSA9PiB0LmNvbXBvbmVudHMuSWNvbkJ1dHRvbik7XG4gIGNvbnN0IENoZXZyb25SaWdodCA9IHVzZVRoZW1lKCh0KSA9PiB0Lmljb25zLkNoZXZyb25SaWdodCk7XG4gIGNvbnN0IGNzc1ZhcmlhYmxlcyA9IHVzZUNzc1ZhcmlhYmxlcygpO1xuXG4gIGNvbnN0IG1vdW50VGltZSA9IHVzZU1lbW8oKCkgPT4gbmV3IERhdGUoKSwgW10pO1xuICBjb25zdCBbZGF0ZUluVmlldywgc2V0RGF0ZUluVmlld10gPSB1c2VTdGF0ZTxEYXRlPihkZWZhdWx0RGF0ZUluVmlldyA/PyBtb3VudFRpbWUpO1xuICBjb25zdCBbZGlydHksIHNldERpcnR5XSA9IHVzZVN0YXRlPFBhcnRpYWw8RGF0ZVJhbmdlPj4oKTtcbiAgY29uc3QgW2hvdmVyZWQsIHNldEhvdmVyZWRdID0gdXNlU3RhdGU8RGF0ZT4oKTtcblxuICBjb25zdCBtaW4gPSBkaXJ0eSA/IGRpcnR5Lm1pbiA6IHZhbHVlIGluc3RhbmNlb2YgRGF0ZSA/IHZhbHVlIDogdmFsdWU/Lm1pbjtcbiAgY29uc3QgbWF4ID0gZGlydHkgPyBkaXJ0eS5tYXggOiB2YWx1ZSBpbnN0YW5jZW9mIERhdGUgPyB2YWx1ZSA6IHZhbHVlPy5tYXg7XG5cbiAgY29uc3QgcmVzb2x2ZWRRdWlja09wdGlvbnMgPSBbLi4ucXVpY2tPcHRpb25zLCB7IGxhYmVsOiA8VGV4dCBpZD1cInJlc2V0XCIgLz4sIHZhbHVlOiBudWxsIH1dLm1hcChcbiAgICAob3B0aW9uLCBpbmRleCkgPT4ge1xuICAgICAgaWYgKG9wdGlvbiBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG4gICAgICAgIHJldHVybiBvcHRpb24oKHZhbHVlKSA9PiB7XG4gICAgICAgICAgc2V0RGlydHkodW5kZWZpbmVkKTtcbiAgICAgICAgICBvbkNoYW5nZSh2YWx1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB7IGxhYmVsLCB2YWx1ZSB9ID0gdHlwZW9mIG9wdGlvbiA9PT0gJ3N0cmluZycgPyBjb21tb25RdWlja09wdGlvbnNbb3B0aW9uXSA6IG9wdGlvbjtcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPEJ1dHRvblxuICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgdmFyaWFudD1cInRleHRcIlxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIHNldERpcnR5KHVuZGVmaW5lZCk7XG5cbiAgICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG4gICAgICAgICAgICAgIG9uQ2hhbmdlKHZhbHVlKHByb3BzKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBvbkNoYW5nZSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgPC9CdXR0b24+XG4gICAgICApO1xuICAgIH0sXG4gICk7XG5cbiAgY29uc3QgeyBjYWxlbmRhcnMsIGdldEJhY2tQcm9wcywgZ2V0Rm9yd2FyZFByb3BzLCBnZXREYXRlUHJvcHMgfSA9IHVzZURheXplZCh7XG4gICAgb25EYXRlU2VsZWN0ZWQ6ICgpID0+IHVuZGVmaW5lZCxcbiAgICBmaXJzdERheU9mV2VlayxcbiAgICBzaG93T3V0c2lkZURheXM6IHRydWUsXG4gICAgZGF0ZTogZGF0ZUluVmlldyxcbiAgICBvbk9mZnNldENoYW5nZWQ6IChvZmZzZXQpID0+XG4gICAgICBzZXREYXRlSW5WaWV3KG5ldyBEYXRlKGRhdGVJblZpZXcuZ2V0RnVsbFllYXIoKSwgZGF0ZUluVmlldy5nZXRNb250aCgpICsgb2Zmc2V0KSksXG4gICAgb2Zmc2V0OiAwLFxuICAgIG1pbkRhdGUsXG4gICAgbWF4RGF0ZSxcbiAgfSk7XG4gIGNvbnN0IG5vdyA9IHVzZU1lbW8oKCkgPT4gc3RhcnRPZkRheShuZXcgRGF0ZSgpKSwgW10pO1xuXG4gIGNvbnN0IGZvcm1hdFdlZWtkYXkgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCB7IGZvcm1hdCB9ID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQobG9jYWxlLCB7IHdlZWtkYXk6ICdzaG9ydCcgfSk7XG4gICAgcmV0dXJuICh3ZWVrRGF5OiBudW1iZXIpID0+XG4gICAgICBmb3JtYXQobmV3IERhdGUoRGF0ZS5VVEMoMjAyMSwgNywgKCh3ZWVrRGF5ICsgZmlyc3REYXlPZldlZWspICUgNykgKyAxKSkpO1xuICB9LCBbbG9jYWxlLCBmaXJzdERheU9mV2Vla10pO1xuXG4gIHVzZUVmZmVjdChcbiAgICAoKSA9PlxuICAgICAgc2V0RGF0ZUluVmlldyhcbiAgICAgICAgdmFsdWUgPT09IG51bGwgPyBkZWZhdWx0RGF0ZUluVmlldyA/PyBtb3VudFRpbWUgOiB2YWx1ZSBpbnN0YW5jZW9mIERhdGUgPyB2YWx1ZSA6IHZhbHVlLm1heCxcbiAgICAgICksXG4gICAgW3ZhbHVlLCBkZWZhdWx0RGF0ZUluVmlldywgbW91bnRUaW1lXSxcbiAgKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghcmFuZ2VTZWxlY3QpIHtcbiAgICAgIHNldERpcnR5KHVuZGVmaW5lZCk7XG4gICAgfVxuICB9LCBbcmFuZ2VTZWxlY3RdKTtcblxuICBmdW5jdGlvbiBzZXQobWluPzogRGF0ZSwgbWF4PzogRGF0ZSwgZWRpdD86ICdtaW4nIHwgJ21heCcpIHtcbiAgICBpZiAoIXJhbmdlU2VsZWN0KSB7XG4gICAgICBvbkNoYW5nZShtaW4gPz8gbnVsbCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKG1pbiAmJiBtYXggJiYgbWluID4gbWF4KSB7XG4gICAgICBpZiAoZWRpdCA9PT0gJ21pbicpIHtcbiAgICAgICAgbWF4ID0gbWluO1xuICAgICAgfSBlbHNlIGlmIChlZGl0ID09PSAnbWF4Jykge1xuICAgICAgICBtaW4gPSBtYXg7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBbbWluLCBtYXhdID0gW21heCwgbWluXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIW1pbiA9PT0gIW1heCkge1xuICAgICAgc2V0RGlydHkodW5kZWZpbmVkKTtcbiAgICAgIG9uQ2hhbmdlKG1pbiAmJiBtYXggPyB7IG1pbiwgbWF4OiBlbmRPZkRheShtYXgpIH0gOiBudWxsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0RGlydHkoeyBtaW4sIG1heCB9KTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBmb3JtYXRNb250aCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHsgZm9ybWF0IH0gPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NhbGUsIHsgbW9udGg6ICdsb25nJyB9KTtcbiAgICByZXR1cm4gKG1vbnRoOiBudW1iZXIpID0+IGZvcm1hdChuZXcgRGF0ZSgyMDIxLCBtb250aCkpO1xuICB9LCBbbG9jYWxlXSk7XG5cbiAgY29uc3QgZm9ybWF0WWVhciA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHsgZm9ybWF0IH0gPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NhbGUsIHsgeWVhcjogJ251bWVyaWMnIH0pO1xuICAgIHJldHVybiAoeWVhcjogbnVtYmVyKSA9PiBmb3JtYXQobmV3IERhdGUoeWVhciwgMCwgMSkpO1xuICB9LCBbbG9jYWxlXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNzcz17Y3NzVmFyaWFibGVzfT5cbiAgICAgIDxkaXZcbiAgICAgICAgY3NzPXt7XG4gICAgICAgICAgZGlzcGxheTogJ2dyaWQnLFxuICAgICAgICAgIGdyaWRBdXRvRmxvdzogJ2NvbHVtbicsXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgIGFsaWduSXRlbXM6ICdiYXNlbGluZScsXG4gICAgICAgICAgZ2FwOiAndmFyKC0tc3BhY2luZyknLFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8RGF0ZUlucHV0XG4gICAgICAgICAgdmFsdWU9e21pbiA/PyBudWxsfVxuICAgICAgICAgIG9uQ2hhbmdlPXsoZGF0ZSkgPT4gc2V0KGRhdGUgPz8gdW5kZWZpbmVkLCBtYXgsICdtaW4nKX1cbiAgICAgICAgICBsb2NhbGU9e2xvY2FsZX1cbiAgICAgICAgLz5cblxuICAgICAgICB7cmFuZ2VTZWxlY3QgJiYgKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICB7JyAtICd9XG4gICAgICAgICAgICA8RGF0ZUlucHV0XG4gICAgICAgICAgICAgIHZhbHVlPXttYXggPz8gbnVsbH1cbiAgICAgICAgICAgICAgb25DaGFuZ2U9eyhkYXRlKSA9PiBzZXQobWluLCBkYXRlID8/IHVuZGVmaW5lZCwgJ21heCcpfVxuICAgICAgICAgICAgICBsb2NhbGU9e2xvY2FsZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cblxuICAgICAge2NhbGVuZGFycy5tYXAoKHsgbW9udGgsIHllYXIsIHdlZWtzIH0pID0+IChcbiAgICAgICAgPGRpdiBrZXk9e2Ake21vbnRofSR7eWVhcn1gfSBjc3M9e3sgZGlzcGxheTogJ2dyaWQnIH19PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNzcz17e1xuICAgICAgICAgICAgICBtYXJnaW46ICdjYWxjKHZhcigtLXNwYWNpbmcpICogNCkgMCcsXG4gICAgICAgICAgICAgIGRpc3BsYXk6ICdncmlkJyxcbiAgICAgICAgICAgICAgZ3JpZEF1dG9GbG93OiAnY29sdW1uJyxcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1iZXR3ZWVuJyxcbiAgICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxJY29uQnV0dG9uIHsuLi5nZXRCYWNrUHJvcHMoeyBjYWxlbmRhcnMgfSl9PlxuICAgICAgICAgICAgICA8Q2hldnJvblJpZ2h0IGNzcz17eyB0cmFuc2Zvcm06ICdyb3RhdGUzZCgwLCAwLCAxLCAxODBkZWcpJyB9fSAvPlxuICAgICAgICAgICAgPC9JY29uQnV0dG9uPlxuXG4gICAgICAgICAgICA8ZGl2IGNzcz17eyBkaXNwbGF5OiAnZmxleCcgfX0+XG4gICAgICAgICAgICAgIHtmb3JtYXRNb250aChtb250aCl9IHtmb3JtYXRZZWFyKHllYXIpfVxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxJY29uQnV0dG9uIHsuLi5nZXRGb3J3YXJkUHJvcHMoeyBjYWxlbmRhcnMgfSl9PlxuICAgICAgICAgICAgICA8Q2hldnJvblJpZ2h0IC8+XG4gICAgICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjc3M9e3tcbiAgICAgICAgICAgICAganVzdGlmeVNlbGY6ICdjZW50ZXInLFxuICAgICAgICAgICAgICBkaXNwbGF5OiAnZ3JpZCcsXG4gICAgICAgICAgICAgIGdyaWRUZW1wbGF0ZUNvbHVtbnM6ICdyZXBlYXQoOCwgbWF4LWNvbnRlbnQpJyxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3Nob3dDYWxlbmRhcldlZWsgPyAoXG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjc3M9e3tcbiAgICAgICAgICAgICAgICAgIGp1c3RpZnlTZWxmOiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEwLFxuICAgICAgICAgICAgICAgICAgYm9yZGVyUmlnaHQ6IGAxcHggc29saWQgJHtncmF5fWAsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxUZXh0IGlkPVwiY2FsZW5kYXJXZWVrXCIgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8ZGl2IC8+XG4gICAgICAgICAgICApfVxuXG4gICAgICAgICAgICB7d2Vla0RheXMubWFwKChfdiwgd2Vla0RheSkgPT4gKFxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAga2V5PXt3ZWVrRGF5fVxuICAgICAgICAgICAgICAgIGNzcz17e1xuICAgICAgICAgICAgICAgICAganVzdGlmeVNlbGY6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgICAgcGFkZGluZzogMTAsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtmb3JtYXRXZWVrZGF5KHdlZWtEYXkpfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICkpfVxuXG4gICAgICAgICAgICB7d2Vla3MubWFwKCh3ZWVrLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB3ZWVrU3RhcnQgPSB3ZWVrWzBdIGFzIERhdGVPYmo7XG4gICAgICAgICAgICAgIGNvbnN0IHdlZWtFbmQgPSB3ZWVrWzZdIGFzIERhdGVPYmo7XG4gICAgICAgICAgICAgIGNvbnN0IHdlZWtEaXNhYmxlZCA9XG4gICAgICAgICAgICAgICAgIXJhbmdlU2VsZWN0IHx8XG4gICAgICAgICAgICAgICAgKG1pbkRhdGUgJiYgd2Vla0VuZC5kYXRlIDwgbWluRGF0ZSkgfHxcbiAgICAgICAgICAgICAgICAobWF4RGF0ZSAmJiB3ZWVrU3RhcnQuZGF0ZSA+IG1heERhdGUpO1xuXG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPEZyYWdtZW50IGtleT17aW5kZXh9PlxuICAgICAgICAgICAgICAgICAge3Nob3dDYWxlbmRhcldlZWsgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICBjc3M9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEwLFxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAnbm9uZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAndHJhbnNwYXJlbnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiB3ZWVrRGlzYWJsZWQgPyB1bmRlZmluZWQgOiAncG9pbnRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250OiAnaW5oZXJpdCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJSaWdodDogYDFweCBzb2xpZCAke2dyYXl9YCxcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3ZWVrRGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtaW4gPSBtaW5EYXRlICYmIHdlZWtTdGFydC5kYXRlIDwgbWluRGF0ZSA/IG1pbkRhdGUgOiB3ZWVrU3RhcnQuZGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1heCA9IG1heERhdGUgJiYgd2Vla0VuZC5kYXRlID4gbWF4RGF0ZSA/IG1heERhdGUgOiB3ZWVrRW5kLmRhdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXQobWluLCBtYXgpO1xuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7Z2V0Q2FsZW5kYXJXZWVrKCh3ZWVrWzBdIGFzIERhdGVPYmopLmRhdGUpfVxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgLz5cbiAgICAgICAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgICAgICAgIHt3ZWVrLm1hcCgoZGF0ZU9iamVjdCwgZGF5SW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFkYXRlT2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxkaXYga2V5PXtkYXlJbmRleH0gLz47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHByZXZNb250aCwgbmV4dE1vbnRoLCBkYXRlIH0gPSBkYXRlT2JqZWN0O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0b2RheSA9IHN0YXJ0T2ZEYXkoZGF0ZSkuZ2V0VGltZSgpID09PSBub3cuZ2V0VGltZSgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkaXNhYmxlZCA9IChtaW5EYXRlICYmIGRhdGUgPCBtaW5EYXRlKSB8fCAobWF4RGF0ZSAmJiBkYXRlID4gbWF4RGF0ZSk7XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPVxuICAgICAgICAgICAgICAgICAgICAgIGRhdGUuZ2V0VGltZSgpID09PSBtaW4/LmdldFRpbWUoKSB8fFxuICAgICAgICAgICAgICAgICAgICAgIChtaW4gJiYgbWF4ICYmIGRhdGVJbnRlcnNlY3QoZGF0ZSwgeyBtaW4sIG1heCB9KSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHByZVNlbGVjdGVkID1cbiAgICAgICAgICAgICAgICAgICAgICAhc2VsZWN0ZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAhZGlzYWJsZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAoZGF0ZS5nZXRUaW1lKCkgPT09IGhvdmVyZWQ/LmdldFRpbWUoKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgKG1pbiAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAhbWF4ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGhvdmVyZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZUludGVyc2VjdChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbiA8PSBob3ZlcmVkID8geyBtaW4sIG1heDogaG92ZXJlZCB9IDogeyBtaW46IGhvdmVyZWQsIG1heDogbWluIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICkpKTtcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YCR7aW5kZXh9LSR7ZGF5SW5kZXh9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17W1xuICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMTAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAnbm9uZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJ3RyYW5zcGFyZW50JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IGRpc2FibGVkID8gdW5kZWZpbmVkIDogJ3BvaW50ZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQ6ICdpbmhlcml0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKHByZXZNb250aCB8fCBuZXh0TW9udGgpICYmIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogZ3JheSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kYXkgJiYge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dGxpbmU6ICcxcHggc29saWQgdmFyKC0tc2Vjb25kYXJ5TWFpbiknLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZCAmJiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJ3ZhcigtLXByaW1hcnlNYWluKScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICd2YXIoLS1wcmltYXJ5Q29udHJhc3RUZXh0KScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByZVNlbGVjdGVkICYmIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAndmFyKC0tcHJpbWFyeUxpZ2h0KScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICd2YXIoLS1wcmltYXJ5Q29udHJhc3RUZXh0KScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBdfVxuICAgICAgICAgICAgICAgICAgICAgICAgey4uLmdldERhdGVQcm9wcyh7IGRhdGVPYmo6IGRhdGVPYmplY3QgfSl9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkaXJ0eSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtaW4pIHNldChtaW4sIGRhdGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugc2V0KGRhdGUsIG1heCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0KGRhdGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgb25Qb2ludGVyT3Zlcj17KCkgPT4gc2V0SG92ZXJlZChkYXRlKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uUG9pbnRlck91dD17KCkgPT4gc2V0SG92ZXJlZCh1bmRlZmluZWQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtkYXRlLmdldERhdGUoKX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgIDwvRnJhZ21lbnQ+XG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICApKX1cblxuICAgICAgPGRpdlxuICAgICAgICBjc3M9e3tcbiAgICAgICAgICBtYXJnaW5Ub3A6ICd2YXIoLS1zcGFjaW5nKScsXG4gICAgICAgICAgZGlzcGxheTogJ2dyaWQnLFxuICAgICAgICAgIGdyaWRBdXRvRmxvdzogJ2NvbHVtbicsXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICB7cmVzb2x2ZWRRdWlja09wdGlvbnN9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cbiJdfQ== */",
|
|
962
986
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__$d
|
|
963
987
|
};
|
|
964
988
|
function DatePicker(props) {
|
|
989
|
+
const context = useContext(DatePickerContext);
|
|
965
990
|
const {
|
|
966
991
|
value,
|
|
967
992
|
rangeSelect,
|
|
@@ -970,8 +995,9 @@ function DatePicker(props) {
|
|
|
970
995
|
defaultDateInView,
|
|
971
996
|
quickOptions = ["today", "thisWeek"],
|
|
972
997
|
minDate,
|
|
973
|
-
maxDate
|
|
974
|
-
|
|
998
|
+
maxDate,
|
|
999
|
+
showCalendarWeek
|
|
1000
|
+
} = defaults(props, context);
|
|
975
1001
|
function onChange(value2) {
|
|
976
1002
|
if (value2 instanceof Date) {
|
|
977
1003
|
value2 = dateClamp(value2, minDate, maxDate);
|
|
@@ -1116,52 +1142,85 @@ function DatePicker(props) {
|
|
|
1116
1142
|
}), children: /* @__PURE__ */ jsx(ChevronRight2, {}) })
|
|
1117
1143
|
] }),
|
|
1118
1144
|
/* @__PURE__ */ jsxs("div", { css: _ref6, children: [
|
|
1145
|
+
showCalendarWeek ? /* @__PURE__ */ jsx("div", { css: /* @__PURE__ */ css({
|
|
1146
|
+
justifySelf: "center",
|
|
1147
|
+
padding: 10,
|
|
1148
|
+
borderRight: `1px solid ${gray}`
|
|
1149
|
+
}, process.env.NODE_ENV === "production" ? "" : ";label:DatePicker;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3NjaHVtbWFyLXRhYmxlL3NjaHVtbWFyLXRhYmxlL3NyYy9jb21wb25lbnRzL2RhdGVQaWNrZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQStZZ0IiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvc2NodW1tYXItdGFibGUvc2NodW1tYXItdGFibGUvc3JjL2NvbXBvbmVudHMvZGF0ZVBpY2tlci50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRlT2JqLCB1c2VEYXl6ZWQgfSBmcm9tICdkYXl6ZWQnO1xuaW1wb3J0IHtcbiAgRnJhZ21lbnQsXG4gIFJlYWN0Tm9kZSxcbiAgY3JlYXRlQ29udGV4dCxcbiAgdXNlQ29udGV4dCxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICcuLi9ob29rcy91c2VUaGVtZSc7XG5pbXBvcnQgeyBkZWZhdWx0cyB9IGZyb20gJy4uL21pc2MvZGVmYXVsdHMnO1xuaW1wb3J0IHsgZ3JheSB9IGZyb20gJy4uL3RoZW1lL2RlZmF1bHRUaGVtZS9kZWZhdWx0Q2xhc3Nlcyc7XG5pbXBvcnQgeyB1c2VDc3NWYXJpYWJsZXMgfSBmcm9tICcuLi90aGVtZS91c2VDc3NWYXJpYWJsZXMnO1xuaW1wb3J0IHsgRGF0ZUlucHV0IH0gZnJvbSAnLi9kYXRlSW5wdXQnO1xuaW1wb3J0IHsgVGV4dCB9IGZyb20gJy4vdGV4dCc7XG5cbmV4cG9ydCB0eXBlIERhdGVSYW5nZSA9IHsgbWluOiBEYXRlOyBtYXg6IERhdGUgfTtcblxuZXhwb3J0IHR5cGUgRGF0ZVBpY2tlclF1aWNrT3B0aW9uID1cbiAgfCAndG9kYXknXG4gIHwgJ3RoaXNXZWVrJ1xuICB8ICd0aGlzTW9udGgnXG4gIHwgJ3RoaXNZZWFyJ1xuICB8ICdsYXN0U2V2ZW5EYXlzJ1xuICB8ICdsYXN0VGhpcnR5RGF5cydcbiAgfCB7IGxhYmVsOiBSZWFjdE5vZGU7IHZhbHVlOiBEYXRlIHwgRGF0ZVJhbmdlIHwgKCgpID0+IERhdGUgfCBEYXRlUmFuZ2UpIH1cbiAgfCAoKG9uQ2hhbmdlOiAodmFsdWU6IERhdGUgfCBEYXRlUmFuZ2UgfCBudWxsKSA9PiB2b2lkKSA9PiBSZWFjdE5vZGUpO1xuXG5leHBvcnQgdHlwZSBEYXRlUGlja2VyUHJvcHMgPSB7XG4gIC8qKiBDdXJyZW50bHkgc2VsZWN0ZWQgZGF5IG9yIHJhbmdlIG9mIGRheXMuICovXG4gIHZhbHVlOiBEYXRlIHwgRGF0ZVJhbmdlIHwgbnVsbDtcbiAgLyoqIENhbGxiYWNrIGZvciB3aGVuIHRoZSBkYXkgKHJhbmdlKSBjaGFuZ2VzLiAqL1xuICBvbkNoYW5nZTogKHZhbHVlOiBEYXRlIHwgRGF0ZVJhbmdlIHwgbnVsbCkgPT4gdm9pZDtcbiAgLyoqIElmIGVuYWJsZWQsIHJhbmdlcyBjYW4gYmUgc2VsZWN0ZWQuICovXG4gIHJhbmdlU2VsZWN0PzogYm9vbGVhbjtcbiAgLyoqIFdoaWNoIGxvY2FsZSB0byB1c2UgdG8gcmVuZGVyIHRoZSBjYWxlbmRhci4gKi9cbiAgbG9jYWxlPzogc3RyaW5nO1xuICAvKiogV2hpY2ggZGF5IG9mIHRoZSB3ZWVrIHNob3VsZCBiZSBpbiB0aGUgZmlyc3QgY29sdW1uLiAoMD1TdW5kYXksIDE9TW9uZGF5LCAuLi4pXG4gICAqIEBkZWZhdWx0IDFcbiAgICovXG4gIGZpcnN0RGF5T2ZXZWVrPzogMCB8IDEgfCAyIHwgMyB8IDQgfCA1IHwgNjtcbiAgLyoqIFdoaWNoIG1vbnRoIHRvIHNob3cgaW5pdGlhbGx5ICovXG4gIGRlZmF1bHREYXRlSW5WaWV3PzogRGF0ZTtcbiAgLyoqIFNob3cgYnV0dG9ucyB0byBxdWlja2x5IHNlbGVjdCBzdWdnZXN0ZWQgZGF0ZXMgb3IgZGF0ZSByYW5nZXMgKi9cbiAgcXVpY2tPcHRpb25zPzogRGF0ZVBpY2tlclF1aWNrT3B0aW9uW107XG4gIC8qKiBNaW5pbXVtIHNlbGVjdGFibGUgZGF0ZSAqL1xuICBtaW5EYXRlPzogRGF0ZTtcbiAgLyoqIE1heGltdW0gc2VsZWN0YWJsZSBkYXRlICovXG4gIG1heERhdGU/OiBEYXRlO1xuICAvKiogV2hldGhlciB0byBzaG93IHRoZSBjYWxlbmRhciB3ZWVrIGluIHRoZSBmaXJzdCBjb2x1bW4gKi9cbiAgc2hvd0NhbGVuZGFyV2Vlaz86IGJvb2xlYW47XG59O1xuXG5jb25zdCBEYXRlUGlja2VyQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8UGFydGlhbDxPbWl0PERhdGVQaWNrZXJQcm9wcywgJ3ZhbHVlJyB8ICdvbkNoYW5nZSc+Pj4oe30pO1xuXG5leHBvcnQgZnVuY3Rpb24gRGF0ZVBpY2tlclByb3ZpZGVyKHtcbiAgY2hpbGRyZW4sXG4gIC4uLnByb3BzXG59OiBQYXJ0aWFsPE9taXQ8RGF0ZVBpY2tlclByb3BzLCAndmFsdWUnIHwgJ29uQ2hhbmdlJz4+ICYgeyBjaGlsZHJlbj86IFJlYWN0Tm9kZSB9KSB7XG4gIGNvbnN0IHZhbHVlID0gdXNlTWVtbygoKSA9PiBwcm9wcywgW0pTT04uc3RyaW5naWZ5KHByb3BzKV0pO1xuXG4gIHJldHVybiA8RGF0ZVBpY2tlckNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3ZhbHVlfT57Y2hpbGRyZW59PC9EYXRlUGlja2VyQ29udGV4dC5Qcm92aWRlcj47XG59XG5cbmNvbnN0IHdlZWtEYXlzID0gWzAsIDEsIDIsIDMsIDQsIDUsIDZdIGFzIGNvbnN0O1xuXG4vKiogUm91bmRzIGEgZGF0ZSBkb3duIHRvIHRoZSBzdGFydCBvZiB0aGUgZGF5LiAqL1xuZXhwb3J0IGNvbnN0IHN0YXJ0T2ZEYXkgPSAoZDogRGF0ZSkgPT4gbmV3IERhdGUoZC5nZXRGdWxsWWVhcigpLCBkLmdldE1vbnRoKCksIGQuZ2V0RGF0ZSgpKTtcblxuLyoqIFJvdW5kcyBhIGRhdGUgdXAgdG8gdGhlIGVuZCBvZiB0aGUgZGF5LiAqL1xuZXhwb3J0IGNvbnN0IGVuZE9mRGF5ID0gKGQ6IERhdGUpID0+XG4gIG5ldyBEYXRlKGQuZ2V0RnVsbFllYXIoKSwgZC5nZXRNb250aCgpLCBkLmdldERhdGUoKSArIDEsIDAsIDAsIDAsIC0xKTtcblxuZXhwb3J0IGNvbnN0IGxhc3REYXlzID0gKGRheXM6IG51bWJlcik6IERhdGVSYW5nZSA9PiB7XG4gIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG4gIGNvbnN0IG1pbiA9IG5ldyBEYXRlKG5vdyk7XG4gIG1pbi5zZXREYXRlKG1pbi5nZXREYXRlKCkgLSBkYXlzICsgMSk7XG5cbiAgcmV0dXJuIHtcbiAgICBtaW46IHN0YXJ0T2ZEYXkobWluKSxcbiAgICBtYXg6IGVuZE9mRGF5KG5vdyksXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgdG9kYXkgPSAoKSA9PiBsYXN0RGF5cygxKTtcblxuZXhwb3J0IGNvbnN0IHRoaXNXZWVrID0gKGRlbHRhID0gMCwgZmlyc3REYXlPZldlZWsgPSAxKTogRGF0ZVJhbmdlID0+IHtcbiAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgY29uc3QgbWluID0gbmV3IERhdGUobm93KTtcblxuICBsZXQgZGlmZiA9IG1pbi5nZXREYXkoKSAtIGZpcnN0RGF5T2ZXZWVrO1xuICBpZiAoZGlmZiA8IDApIHtcbiAgICBkaWZmICs9IDc7XG4gIH1cbiAgbWluLnNldERhdGUobWluLmdldERhdGUoKSAtIGRpZmYgKyBkZWx0YSAqIDcpO1xuXG4gIGNvbnN0IG1heCA9IG5ldyBEYXRlKG1pbik7XG4gIG1heC5zZXREYXRlKG1heC5nZXREYXRlKCkgKyA2KTtcblxuICByZXR1cm4ge1xuICAgIG1pbjogc3RhcnRPZkRheShtaW4pLFxuICAgIG1heDogZW5kT2ZEYXkobWF4KSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCB0aGlzTW9udGggPSAoZGVsdGEgPSAwKTogRGF0ZVJhbmdlID0+IHtcbiAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgY29uc3QgbWluID0gbmV3IERhdGUobm93KTtcbiAgbWluLnNldERhdGUoMSk7XG4gIG1pbi5zZXRNb250aChtaW4uZ2V0TW9udGgoKSArIGRlbHRhKTtcbiAgY29uc3QgbWF4ID0gbmV3IERhdGUobWluKTtcbiAgbWF4LnNldE1vbnRoKG1heC5nZXRNb250aCgpICsgMSk7XG4gIG1heC5zZXREYXRlKG1heC5nZXREYXRlKCkgLSAxKTtcblxuICByZXR1cm4ge1xuICAgIG1pbjogc3RhcnRPZkRheShtaW4pLFxuICAgIG1heDogZW5kT2ZEYXkobWF4KSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCB0aGlzWWVhciA9IChkZWx0YSA9IDApOiBEYXRlUmFuZ2UgPT4ge1xuICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuICBjb25zdCBtaW4gPSBuZXcgRGF0ZShub3cpO1xuICBtaW4uc2V0RGF0ZSgxKTtcbiAgbWluLnNldE1vbnRoKDApO1xuICBtaW4uc2V0RnVsbFllYXIobWluLmdldEZ1bGxZZWFyKCkgKyBkZWx0YSk7XG4gIGNvbnN0IG1heCA9IG5ldyBEYXRlKG1pbik7XG4gIG1heC5zZXRGdWxsWWVhcihtYXguZ2V0RnVsbFllYXIoKSArIDEpO1xuICBtYXguc2V0RGF0ZShtYXguZ2V0RGF0ZSgpIC0gMSk7XG5cbiAgcmV0dXJuIHtcbiAgICBtaW46IHN0YXJ0T2ZEYXkobWluKSxcbiAgICBtYXg6IGVuZE9mRGF5KG1heCksXG4gIH07XG59O1xuXG5jb25zdCBNU19QRVJfREFZID0gMTAwMCAqIDYwICogNjAgKiAyNDtcbmV4cG9ydCBjb25zdCBnZXRDYWxlbmRhcldlZWsgPSAoZGF0ZTogRGF0ZSk6IG51bWJlciA9PiB7XG4gIC8vIElTTyA4NjAxOiBXZWVrIDEgaXMgdGhlIHdlZWsgd2l0aCB0aGUgZmlyc3QgVGh1cnNkYXkgb2YgdGhlIHllYXIuXG4gIC8vIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT193ZWVrX2RhdGVcblxuICBjb25zdCB5ID0gZGF0ZS5nZXRGdWxsWWVhcigpO1xuICBjb25zdCBmZG95ID0gbmV3IERhdGUoeSwgMCwgMSk7XG4gIGNvbnN0IGRveSA9IE1hdGguZmxvb3IoXG4gICAgKGRhdGUuZ2V0VGltZSgpIC0gZmRveS5nZXRUaW1lKCkgKyAoZGF0ZS5nZXRUaW1lem9uZU9mZnNldCgpIC0gZmRveS5nZXRUaW1lem9uZU9mZnNldCgpKSkgL1xuICAgICAgTVNfUEVSX0RBWSxcbiAgKTtcbiAgY29uc3QgZG93ID0gZmRveS5nZXREYXkoKTtcbiAgY29uc3QgdyA9IE1hdGguZmxvb3IoKDEwICsgZG95IC0gZG93KSAvIDcpO1xuXG4gIGlmICh3ID09PSAwKSB7XG4gICAgcmV0dXJuIGdldENhbGVuZGFyV2VlayhuZXcgRGF0ZSh5IC0gMSwgMTEsIDMxKSk7XG4gIH1cblxuICByZXR1cm4gdztcbn07XG5cbmV4cG9ydCBjb25zdCBjb21tb25RdWlja09wdGlvbnMgPSB7XG4gIHRvZGF5OiB7IGxhYmVsOiA8VGV4dCBpZD1cInRvZGF5XCIgLz4sIHZhbHVlOiB0b2RheSB9LFxuICB0aGlzV2VlazogeyBsYWJlbDogPFRleHQgaWQ9XCJ0aGlzV2Vla1wiIC8+LCB2YWx1ZTogKHByb3BzKSA9PiB0aGlzV2VlaygwLCBwcm9wcy5maXJzdERheU9mV2VlaykgfSxcbiAgdGhpc01vbnRoOiB7IGxhYmVsOiA8VGV4dCBpZD1cInRoaXNNb250aFwiIC8+LCB2YWx1ZTogKCkgPT4gdGhpc01vbnRoKCkgfSxcbiAgdGhpc1llYXI6IHsgbGFiZWw6IDxUZXh0IGlkPVwidGhpc1llYXJcIiAvPiwgdmFsdWU6ICgpID0+IHRoaXNZZWFyKCkgfSxcbiAgbGFzdFNldmVuRGF5czogeyBsYWJlbDogPFRleHQgaWQ9XCJsYXN0U2V2ZW5EYXlzXCIgLz4sIHZhbHVlOiAoKSA9PiBsYXN0RGF5cyg3KSB9LFxuICBsYXN0VGhpcnR5RGF5czogeyBsYWJlbDogPFRleHQgaWQ9XCJsYXN0VGhpcnR5RGF5c1wiIC8+LCB2YWx1ZTogKCkgPT4gbGFzdERheXMoMzApIH0sXG59IHNhdGlzZmllcyBSZWNvcmQ8XG4gIERhdGVQaWNrZXJRdWlja09wdGlvbiAmIHN0cmluZyxcbiAgeyBsYWJlbDogUmVhY3ROb2RlOyB2YWx1ZTogRGF0ZSB8IERhdGVSYW5nZSB8ICgocHJvcHM6IERhdGVQaWNrZXJQcm9wcykgPT4gRGF0ZSB8IERhdGVSYW5nZSkgfVxuPjtcblxuLyoqIFJldHVybnMgd2hldGhlciB0d28gZGF0ZXMgYW5kL29yIGRhdGUgcmFuZ2VzIGludGVyc2VjdC4gSW50ZXJzZWN0aW9uIGlzIGNvbnNpZGVyZWQgcGVyIGRheS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkYXRlSW50ZXJzZWN0KGE6IERhdGUgfCBudWxsIHwgRGF0ZVJhbmdlLCBiOiBEYXRlIHwgbnVsbCB8IERhdGVSYW5nZSkge1xuICBpZiAoYSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICBhID0geyBtaW46IGEsIG1heDogYSB9O1xuICB9XG4gIGlmIChiIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgIGIgPSB7IG1pbjogYiwgbWF4OiBiIH07XG4gIH1cblxuICBpZiAoIWE/Lm1pbiB8fCAhYS5tYXggfHwgIWI/Lm1pbiB8fCAhYi5tYXgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gIShlbmRPZkRheShhLm1heCkgPCBzdGFydE9mRGF5KGIubWluKSB8fCBzdGFydE9mRGF5KGEubWluKSA+IGVuZE9mRGF5KGIubWF4KSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkYXRlQ2xhbXAoZGF0ZTogRGF0ZSwgbWluPzogRGF0ZSwgbWF4PzogRGF0ZSkge1xuICBpZiAobWluICYmIGRhdGUgPCBtaW4pIHtcbiAgICByZXR1cm4gbWluO1xuICB9XG5cbiAgaWYgKG1heCAmJiBkYXRlID4gbWF4KSB7XG4gICAgcmV0dXJuIG1heDtcbiAgfVxuXG4gIHJldHVybiBkYXRlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gRGF0ZVBpY2tlcihwcm9wczogRGF0ZVBpY2tlclByb3BzKSB7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KERhdGVQaWNrZXJDb250ZXh0KTtcblxuICBjb25zdCB7XG4gICAgdmFsdWUsXG4gICAgcmFuZ2VTZWxlY3QsXG4gICAgbG9jYWxlLFxuICAgIGZpcnN0RGF5T2ZXZWVrID0gMSxcbiAgICBkZWZhdWx0RGF0ZUluVmlldyxcbiAgICBxdWlja09wdGlvbnMgPSBbJ3RvZGF5JywgJ3RoaXNXZWVrJ10sXG4gICAgbWluRGF0ZSxcbiAgICBtYXhEYXRlLFxuICAgIHNob3dDYWxlbmRhcldlZWssXG4gIH0gPSBkZWZhdWx0czxEYXRlUGlja2VyUHJvcHM+KHByb3BzLCBjb250ZXh0KTtcblxuICBmdW5jdGlvbiBvbkNoYW5nZSh2YWx1ZTogRGF0ZSB8IERhdGVSYW5nZSB8IG51bGwpIHtcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICB2YWx1ZSA9IGRhdGVDbGFtcCh2YWx1ZSwgbWluRGF0ZSwgbWF4RGF0ZSk7XG4gICAgfSBlbHNlIGlmICh2YWx1ZSkge1xuICAgICAgdmFsdWUgPSB7XG4gICAgICAgIG1pbjogZGF0ZUNsYW1wKHZhbHVlLm1pbiwgbWluRGF0ZSwgbWF4RGF0ZSksXG4gICAgICAgIG1heDogZGF0ZUNsYW1wKHZhbHVlLm1heCwgbWluRGF0ZSwgbWF4RGF0ZSksXG4gICAgICB9O1xuICAgIH1cblxuICAgIHByb3BzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgfVxuXG4gIGNvbnN0IEJ1dHRvbiA9IHVzZVRoZW1lKCh0KSA9PiB0LmNvbXBvbmVudHMuQnV0dG9uKTtcbiAgY29uc3QgSWNvbkJ1dHRvbiA9IHVzZVRoZW1lKCh0KSA9PiB0LmNvbXBvbmVudHMuSWNvbkJ1dHRvbik7XG4gIGNvbnN0IENoZXZyb25SaWdodCA9IHVzZVRoZW1lKCh0KSA9PiB0Lmljb25zLkNoZXZyb25SaWdodCk7XG4gIGNvbnN0IGNzc1ZhcmlhYmxlcyA9IHVzZUNzc1ZhcmlhYmxlcygpO1xuXG4gIGNvbnN0IG1vdW50VGltZSA9IHVzZU1lbW8oKCkgPT4gbmV3IERhdGUoKSwgW10pO1xuICBjb25zdCBbZGF0ZUluVmlldywgc2V0RGF0ZUluVmlld10gPSB1c2VTdGF0ZTxEYXRlPihkZWZhdWx0RGF0ZUluVmlldyA/PyBtb3VudFRpbWUpO1xuICBjb25zdCBbZGlydHksIHNldERpcnR5XSA9IHVzZVN0YXRlPFBhcnRpYWw8RGF0ZVJhbmdlPj4oKTtcbiAgY29uc3QgW2hvdmVyZWQsIHNldEhvdmVyZWRdID0gdXNlU3RhdGU8RGF0ZT4oKTtcblxuICBjb25zdCBtaW4gPSBkaXJ0eSA/IGRpcnR5Lm1pbiA6IHZhbHVlIGluc3RhbmNlb2YgRGF0ZSA/IHZhbHVlIDogdmFsdWU/Lm1pbjtcbiAgY29uc3QgbWF4ID0gZGlydHkgPyBkaXJ0eS5tYXggOiB2YWx1ZSBpbnN0YW5jZW9mIERhdGUgPyB2YWx1ZSA6IHZhbHVlPy5tYXg7XG5cbiAgY29uc3QgcmVzb2x2ZWRRdWlja09wdGlvbnMgPSBbLi4ucXVpY2tPcHRpb25zLCB7IGxhYmVsOiA8VGV4dCBpZD1cInJlc2V0XCIgLz4sIHZhbHVlOiBudWxsIH1dLm1hcChcbiAgICAob3B0aW9uLCBpbmRleCkgPT4ge1xuICAgICAgaWYgKG9wdGlvbiBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG4gICAgICAgIHJldHVybiBvcHRpb24oKHZhbHVlKSA9PiB7XG4gICAgICAgICAgc2V0RGlydHkodW5kZWZpbmVkKTtcbiAgICAgICAgICBvbkNoYW5nZSh2YWx1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB7IGxhYmVsLCB2YWx1ZSB9ID0gdHlwZW9mIG9wdGlvbiA9PT0gJ3N0cmluZycgPyBjb21tb25RdWlja09wdGlvbnNbb3B0aW9uXSA6IG9wdGlvbjtcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPEJ1dHRvblxuICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgdmFyaWFudD1cInRleHRcIlxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIHNldERpcnR5KHVuZGVmaW5lZCk7XG5cbiAgICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG4gICAgICAgICAgICAgIG9uQ2hhbmdlKHZhbHVlKHByb3BzKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBvbkNoYW5nZSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgPC9CdXR0b24+XG4gICAgICApO1xuICAgIH0sXG4gICk7XG5cbiAgY29uc3QgeyBjYWxlbmRhcnMsIGdldEJhY2tQcm9wcywgZ2V0Rm9yd2FyZFByb3BzLCBnZXREYXRlUHJvcHMgfSA9IHVzZURheXplZCh7XG4gICAgb25EYXRlU2VsZWN0ZWQ6ICgpID0+IHVuZGVmaW5lZCxcbiAgICBmaXJzdERheU9mV2VlayxcbiAgICBzaG93T3V0c2lkZURheXM6IHRydWUsXG4gICAgZGF0ZTogZGF0ZUluVmlldyxcbiAgICBvbk9mZnNldENoYW5nZWQ6IChvZmZzZXQpID0+XG4gICAgICBzZXREYXRlSW5WaWV3KG5ldyBEYXRlKGRhdGVJblZpZXcuZ2V0RnVsbFllYXIoKSwgZGF0ZUluVmlldy5nZXRNb250aCgpICsgb2Zmc2V0KSksXG4gICAgb2Zmc2V0OiAwLFxuICAgIG1pbkRhdGUsXG4gICAgbWF4RGF0ZSxcbiAgfSk7XG4gIGNvbnN0IG5vdyA9IHVzZU1lbW8oKCkgPT4gc3RhcnRPZkRheShuZXcgRGF0ZSgpKSwgW10pO1xuXG4gIGNvbnN0IGZvcm1hdFdlZWtkYXkgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCB7IGZvcm1hdCB9ID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQobG9jYWxlLCB7IHdlZWtkYXk6ICdzaG9ydCcgfSk7XG4gICAgcmV0dXJuICh3ZWVrRGF5OiBudW1iZXIpID0+XG4gICAgICBmb3JtYXQobmV3IERhdGUoRGF0ZS5VVEMoMjAyMSwgNywgKCh3ZWVrRGF5ICsgZmlyc3REYXlPZldlZWspICUgNykgKyAxKSkpO1xuICB9LCBbbG9jYWxlLCBmaXJzdERheU9mV2Vla10pO1xuXG4gIHVzZUVmZmVjdChcbiAgICAoKSA9PlxuICAgICAgc2V0RGF0ZUluVmlldyhcbiAgICAgICAgdmFsdWUgPT09IG51bGwgPyBkZWZhdWx0RGF0ZUluVmlldyA/PyBtb3VudFRpbWUgOiB2YWx1ZSBpbnN0YW5jZW9mIERhdGUgPyB2YWx1ZSA6IHZhbHVlLm1heCxcbiAgICAgICksXG4gICAgW3ZhbHVlLCBkZWZhdWx0RGF0ZUluVmlldywgbW91bnRUaW1lXSxcbiAgKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghcmFuZ2VTZWxlY3QpIHtcbiAgICAgIHNldERpcnR5KHVuZGVmaW5lZCk7XG4gICAgfVxuICB9LCBbcmFuZ2VTZWxlY3RdKTtcblxuICBmdW5jdGlvbiBzZXQobWluPzogRGF0ZSwgbWF4PzogRGF0ZSwgZWRpdD86ICdtaW4nIHwgJ21heCcpIHtcbiAgICBpZiAoIXJhbmdlU2VsZWN0KSB7XG4gICAgICBvbkNoYW5nZShtaW4gPz8gbnVsbCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKG1pbiAmJiBtYXggJiYgbWluID4gbWF4KSB7XG4gICAgICBpZiAoZWRpdCA9PT0gJ21pbicpIHtcbiAgICAgICAgbWF4ID0gbWluO1xuICAgICAgfSBlbHNlIGlmIChlZGl0ID09PSAnbWF4Jykge1xuICAgICAgICBtaW4gPSBtYXg7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBbbWluLCBtYXhdID0gW21heCwgbWluXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIW1pbiA9PT0gIW1heCkge1xuICAgICAgc2V0RGlydHkodW5kZWZpbmVkKTtcbiAgICAgIG9uQ2hhbmdlKG1pbiAmJiBtYXggPyB7IG1pbiwgbWF4OiBlbmRPZkRheShtYXgpIH0gOiBudWxsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0RGlydHkoeyBtaW4sIG1heCB9KTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBmb3JtYXRNb250aCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHsgZm9ybWF0IH0gPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NhbGUsIHsgbW9udGg6ICdsb25nJyB9KTtcbiAgICByZXR1cm4gKG1vbnRoOiBudW1iZXIpID0+IGZvcm1hdChuZXcgRGF0ZSgyMDIxLCBtb250aCkpO1xuICB9LCBbbG9jYWxlXSk7XG5cbiAgY29uc3QgZm9ybWF0WWVhciA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHsgZm9ybWF0IH0gPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NhbGUsIHsgeWVhcjogJ251bWVyaWMnIH0pO1xuICAgIHJldHVybiAoeWVhcjogbnVtYmVyKSA9PiBmb3JtYXQobmV3IERhdGUoeWVhciwgMCwgMSkpO1xuICB9LCBbbG9jYWxlXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNzcz17Y3NzVmFyaWFibGVzfT5cbiAgICAgIDxkaXZcbiAgICAgICAgY3NzPXt7XG4gICAgICAgICAgZGlzcGxheTogJ2dyaWQnLFxuICAgICAgICAgIGdyaWRBdXRvRmxvdzogJ2NvbHVtbicsXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgIGFsaWduSXRlbXM6ICdiYXNlbGluZScsXG4gICAgICAgICAgZ2FwOiAndmFyKC0tc3BhY2luZyknLFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8RGF0ZUlucHV0XG4gICAgICAgICAgdmFsdWU9e21pbiA/PyBudWxsfVxuICAgICAgICAgIG9uQ2hhbmdlPXsoZGF0ZSkgPT4gc2V0KGRhdGUgPz8gdW5kZWZpbmVkLCBtYXgsICdtaW4nKX1cbiAgICAgICAgICBsb2NhbGU9e2xvY2FsZX1cbiAgICAgICAgLz5cblxuICAgICAgICB7cmFuZ2VTZWxlY3QgJiYgKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICB7JyAtICd9XG4gICAgICAgICAgICA8RGF0ZUlucHV0XG4gICAgICAgICAgICAgIHZhbHVlPXttYXggPz8gbnVsbH1cbiAgICAgICAgICAgICAgb25DaGFuZ2U9eyhkYXRlKSA9PiBzZXQobWluLCBkYXRlID8/IHVuZGVmaW5lZCwgJ21heCcpfVxuICAgICAgICAgICAgICBsb2NhbGU9e2xvY2FsZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cblxuICAgICAge2NhbGVuZGFycy5tYXAoKHsgbW9udGgsIHllYXIsIHdlZWtzIH0pID0+IChcbiAgICAgICAgPGRpdiBrZXk9e2Ake21vbnRofSR7eWVhcn1gfSBjc3M9e3sgZGlzcGxheTogJ2dyaWQnIH19PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNzcz17e1xuICAgICAgICAgICAgICBtYXJnaW46ICdjYWxjKHZhcigtLXNwYWNpbmcpICogNCkgMCcsXG4gICAgICAgICAgICAgIGRpc3BsYXk6ICdncmlkJyxcbiAgICAgICAgICAgICAgZ3JpZEF1dG9GbG93OiAnY29sdW1uJyxcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1iZXR3ZWVuJyxcbiAgICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxJY29uQnV0dG9uIHsuLi5nZXRCYWNrUHJvcHMoeyBjYWxlbmRhcnMgfSl9PlxuICAgICAgICAgICAgICA8Q2hldnJvblJpZ2h0IGNzcz17eyB0cmFuc2Zvcm06ICdyb3RhdGUzZCgwLCAwLCAxLCAxODBkZWcpJyB9fSAvPlxuICAgICAgICAgICAgPC9JY29uQnV0dG9uPlxuXG4gICAgICAgICAgICA8ZGl2IGNzcz17eyBkaXNwbGF5OiAnZmxleCcgfX0+XG4gICAgICAgICAgICAgIHtmb3JtYXRNb250aChtb250aCl9IHtmb3JtYXRZZWFyKHllYXIpfVxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxJY29uQnV0dG9uIHsuLi5nZXRGb3J3YXJkUHJvcHMoeyBjYWxlbmRhcnMgfSl9PlxuICAgICAgICAgICAgICA8Q2hldnJvblJpZ2h0IC8+XG4gICAgICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjc3M9e3tcbiAgICAgICAgICAgICAganVzdGlmeVNlbGY6ICdjZW50ZXInLFxuICAgICAgICAgICAgICBkaXNwbGF5OiAnZ3JpZCcsXG4gICAgICAgICAgICAgIGdyaWRUZW1wbGF0ZUNvbHVtbnM6ICdyZXBlYXQoOCwgbWF4LWNvbnRlbnQpJyxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3Nob3dDYWxlbmRhcldlZWsgPyAoXG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjc3M9e3tcbiAgICAgICAgICAgICAgICAgIGp1c3RpZnlTZWxmOiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEwLFxuICAgICAgICAgICAgICAgICAgYm9yZGVyUmlnaHQ6IGAxcHggc29saWQgJHtncmF5fWAsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxUZXh0IGlkPVwiY2FsZW5kYXJXZWVrXCIgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8ZGl2IC8+XG4gICAgICAgICAgICApfVxuXG4gICAgICAgICAgICB7d2Vla0RheXMubWFwKChfdiwgd2Vla0RheSkgPT4gKFxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAga2V5PXt3ZWVrRGF5fVxuICAgICAgICAgICAgICAgIGNzcz17e1xuICAgICAgICAgICAgICAgICAganVzdGlmeVNlbGY6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgICAgcGFkZGluZzogMTAsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtmb3JtYXRXZWVrZGF5KHdlZWtEYXkpfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICkpfVxuXG4gICAgICAgICAgICB7d2Vla3MubWFwKCh3ZWVrLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB3ZWVrU3RhcnQgPSB3ZWVrWzBdIGFzIERhdGVPYmo7XG4gICAgICAgICAgICAgIGNvbnN0IHdlZWtFbmQgPSB3ZWVrWzZdIGFzIERhdGVPYmo7XG4gICAgICAgICAgICAgIGNvbnN0IHdlZWtEaXNhYmxlZCA9XG4gICAgICAgICAgICAgICAgIXJhbmdlU2VsZWN0IHx8XG4gICAgICAgICAgICAgICAgKG1pbkRhdGUgJiYgd2Vla0VuZC5kYXRlIDwgbWluRGF0ZSkgfHxcbiAgICAgICAgICAgICAgICAobWF4RGF0ZSAmJiB3ZWVrU3RhcnQuZGF0ZSA+IG1heERhdGUpO1xuXG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPEZyYWdtZW50IGtleT17aW5kZXh9PlxuICAgICAgICAgICAgICAgICAge3Nob3dDYWxlbmRhcldlZWsgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICBjc3M9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEwLFxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAnbm9uZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAndHJhbnNwYXJlbnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiB3ZWVrRGlzYWJsZWQgPyB1bmRlZmluZWQgOiAncG9pbnRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250OiAnaW5oZXJpdCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJSaWdodDogYDFweCBzb2xpZCAke2dyYXl9YCxcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3ZWVrRGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtaW4gPSBtaW5EYXRlICYmIHdlZWtTdGFydC5kYXRlIDwgbWluRGF0ZSA/IG1pbkRhdGUgOiB3ZWVrU3RhcnQuZGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1heCA9IG1heERhdGUgJiYgd2Vla0VuZC5kYXRlID4gbWF4RGF0ZSA/IG1heERhdGUgOiB3ZWVrRW5kLmRhdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXQobWluLCBtYXgpO1xuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7Z2V0Q2FsZW5kYXJXZWVrKCh3ZWVrWzBdIGFzIERhdGVPYmopLmRhdGUpfVxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgLz5cbiAgICAgICAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgICAgICAgIHt3ZWVrLm1hcCgoZGF0ZU9iamVjdCwgZGF5SW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFkYXRlT2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxkaXYga2V5PXtkYXlJbmRleH0gLz47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHByZXZNb250aCwgbmV4dE1vbnRoLCBkYXRlIH0gPSBkYXRlT2JqZWN0O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0b2RheSA9IHN0YXJ0T2ZEYXkoZGF0ZSkuZ2V0VGltZSgpID09PSBub3cuZ2V0VGltZSgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkaXNhYmxlZCA9IChtaW5EYXRlICYmIGRhdGUgPCBtaW5EYXRlKSB8fCAobWF4RGF0ZSAmJiBkYXRlID4gbWF4RGF0ZSk7XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPVxuICAgICAgICAgICAgICAgICAgICAgIGRhdGUuZ2V0VGltZSgpID09PSBtaW4/LmdldFRpbWUoKSB8fFxuICAgICAgICAgICAgICAgICAgICAgIChtaW4gJiYgbWF4ICYmIGRhdGVJbnRlcnNlY3QoZGF0ZSwgeyBtaW4sIG1heCB9KSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHByZVNlbGVjdGVkID1cbiAgICAgICAgICAgICAgICAgICAgICAhc2VsZWN0ZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAhZGlzYWJsZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAoZGF0ZS5nZXRUaW1lKCkgPT09IGhvdmVyZWQ/LmdldFRpbWUoKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgKG1pbiAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAhbWF4ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGhvdmVyZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZUludGVyc2VjdChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbiA8PSBob3ZlcmVkID8geyBtaW4sIG1heDogaG92ZXJlZCB9IDogeyBtaW46IGhvdmVyZWQsIG1heDogbWluIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICkpKTtcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YCR7aW5kZXh9LSR7ZGF5SW5kZXh9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17W1xuICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMTAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAnbm9uZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJ3RyYW5zcGFyZW50JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IGRpc2FibGVkID8gdW5kZWZpbmVkIDogJ3BvaW50ZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQ6ICdpbmhlcml0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKHByZXZNb250aCB8fCBuZXh0TW9udGgpICYmIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogZ3JheSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kYXkgJiYge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dGxpbmU6ICcxcHggc29saWQgdmFyKC0tc2Vjb25kYXJ5TWFpbiknLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZCAmJiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJ3ZhcigtLXByaW1hcnlNYWluKScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICd2YXIoLS1wcmltYXJ5Q29udHJhc3RUZXh0KScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByZVNlbGVjdGVkICYmIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAndmFyKC0tcHJpbWFyeUxpZ2h0KScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICd2YXIoLS1wcmltYXJ5Q29udHJhc3RUZXh0KScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBdfVxuICAgICAgICAgICAgICAgICAgICAgICAgey4uLmdldERhdGVQcm9wcyh7IGRhdGVPYmo6IGRhdGVPYmplY3QgfSl9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkaXJ0eSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtaW4pIHNldChtaW4sIGRhdGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugc2V0KGRhdGUsIG1heCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0KGRhdGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgb25Qb2ludGVyT3Zlcj17KCkgPT4gc2V0SG92ZXJlZChkYXRlKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uUG9pbnRlck91dD17KCkgPT4gc2V0SG92ZXJlZCh1bmRlZmluZWQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtkYXRlLmdldERhdGUoKX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgIDwvRnJhZ21lbnQ+XG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICApKX1cblxuICAgICAgPGRpdlxuICAgICAgICBjc3M9e3tcbiAgICAgICAgICBtYXJnaW5Ub3A6ICd2YXIoLS1zcGFjaW5nKScsXG4gICAgICAgICAgZGlzcGxheTogJ2dyaWQnLFxuICAgICAgICAgIGdyaWRBdXRvRmxvdzogJ2NvbHVtbicsXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICB7cmVzb2x2ZWRRdWlja09wdGlvbnN9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cbiJdfQ== */"), children: /* @__PURE__ */ jsx(Text, { id: "calendarWeek" }) }) : /* @__PURE__ */ jsx("div", {}),
|
|
1119
1150
|
weekDays.map((_v, weekDay) => /* @__PURE__ */ jsx("div", { css: _ref7, children: formatWeekday(weekDay) }, weekDay)),
|
|
1120
|
-
weeks.map((week, index) =>
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
min,
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
}, process.env.NODE_ENV === "production" ? "" : ";label:DatePicker;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3NjaHVtbWFyLXRhYmxlL3NjaHVtbWFyLXRhYmxlL3NyYy9jb21wb25lbnRzL2RhdGVQaWNrZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlZb0IiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvc2NodW1tYXItdGFibGUvc2NodW1tYXItdGFibGUvc3JjL2NvbXBvbmVudHMvZGF0ZVBpY2tlci50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VEYXl6ZWQgfSBmcm9tICdkYXl6ZWQnO1xuaW1wb3J0IHR5cGUgeyBSZWFjdE5vZGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICcuLi9ob29rcy91c2VUaGVtZSc7XG5pbXBvcnQgeyBncmF5IH0gZnJvbSAnLi4vdGhlbWUvZGVmYXVsdFRoZW1lL2RlZmF1bHRDbGFzc2VzJztcbmltcG9ydCB7IHVzZUNzc1ZhcmlhYmxlcyB9IGZyb20gJy4uL3RoZW1lL3VzZUNzc1ZhcmlhYmxlcyc7XG5pbXBvcnQgeyBEYXRlSW5wdXQgfSBmcm9tICcuL2RhdGVJbnB1dCc7XG5pbXBvcnQgeyBUZXh0IH0gZnJvbSAnLi90ZXh0JztcblxuZXhwb3J0IHR5cGUgRGF0ZVJhbmdlID0geyBtaW46IERhdGU7IG1heDogRGF0ZSB9O1xuXG5leHBvcnQgdHlwZSBEYXRlUGlja2VyUXVpY2tPcHRpb24gPVxuICB8ICd0b2RheSdcbiAgfCAndGhpc1dlZWsnXG4gIHwgJ3RoaXNNb250aCdcbiAgfCAndGhpc1llYXInXG4gIHwgJ2xhc3RTZXZlbkRheXMnXG4gIHwgJ2xhc3RUaGlydHlEYXlzJ1xuICB8IHsgbGFiZWw6IFJlYWN0Tm9kZTsgdmFsdWU6IERhdGUgfCBEYXRlUmFuZ2UgfCAoKCkgPT4gRGF0ZSB8IERhdGVSYW5nZSkgfVxuICB8ICgob25DaGFuZ2U6ICh2YWx1ZTogRGF0ZSB8IERhdGVSYW5nZSB8IG51bGwpID0+IHZvaWQpID0+IFJlYWN0Tm9kZSk7XG5cbmV4cG9ydCB0eXBlIERhdGVQaWNrZXJQcm9wcyA9IHtcbiAgLyoqIEN1cnJlbnRseSBzZWxlY3RlZCBkYXkgb3IgcmFuZ2Ugb2YgZGF5cy4gKi9cbiAgdmFsdWU6IERhdGUgfCBEYXRlUmFuZ2UgfCBudWxsO1xuICAvKiogQ2FsbGJhY2sgZm9yIHdoZW4gdGhlIGRheSAocmFuZ2UpIGNoYW5nZXMuICovXG4gIG9uQ2hhbmdlOiAodmFsdWU6IERhdGUgfCBEYXRlUmFuZ2UgfCBudWxsKSA9PiB2b2lkO1xuICAvKiogSWYgZW5hYmxlZCwgcmFuZ2VzIGNhbiBiZSBzZWxlY3RlZC4gKi9cbiAgcmFuZ2VTZWxlY3Q/OiBib29sZWFuO1xuICAvKiogV2hpY2ggbG9jYWxlIHRvIHVzZSB0byByZW5kZXIgdGhlIGNhbGVuZGFyLiAqL1xuICBsb2NhbGU/OiBzdHJpbmc7XG4gIC8qKiBXaGljaCBkYXkgb2YgdGhlIHdlZWsgc2hvdWxkIGJlIGluIHRoZSBmaXJzdCBjb2x1bW4uICgwPVN1bmRheSwgMT1Nb25kYXksIC4uLilcbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgZmlyc3REYXlPZldlZWs/OiAwIHwgMSB8IDIgfCAzIHwgNCB8IDUgfCA2O1xuICAvKiogV2hpY2ggbW9udGggdG8gc2hvdyBpbml0aWFsbHkgKi9cbiAgZGVmYXVsdERhdGVJblZpZXc/OiBEYXRlO1xuICAvKiogU2hvdyBidXR0b25zIHRvIHF1aWNrbHkgc2VsZWN0IHN1Z2dlc3RlZCBkYXRlcyBvciBkYXRlIHJhbmdlcyAqL1xuICBxdWlja09wdGlvbnM/OiBEYXRlUGlja2VyUXVpY2tPcHRpb25bXTtcbiAgbWluRGF0ZT86IERhdGU7XG4gIG1heERhdGU/OiBEYXRlO1xufTtcblxuY29uc3Qgd2Vla0RheXMgPSBbMCwgMSwgMiwgMywgNCwgNSwgNl0gYXMgY29uc3Q7XG5cbi8qKiBSb3VuZHMgYSBkYXRlIGRvd24gdG8gdGhlIHN0YXJ0IG9mIHRoZSBkYXkuICovXG5leHBvcnQgY29uc3Qgc3RhcnRPZkRheSA9IChkOiBEYXRlKSA9PiBuZXcgRGF0ZShkLmdldEZ1bGxZZWFyKCksIGQuZ2V0TW9udGgoKSwgZC5nZXREYXRlKCkpO1xuXG4vKiogUm91bmRzIGEgZGF0ZSB1cCB0byB0aGUgZW5kIG9mIHRoZSBkYXkuICovXG5leHBvcnQgY29uc3QgZW5kT2ZEYXkgPSAoZDogRGF0ZSkgPT5cbiAgbmV3IERhdGUoZC5nZXRGdWxsWWVhcigpLCBkLmdldE1vbnRoKCksIGQuZ2V0RGF0ZSgpICsgMSwgMCwgMCwgMCwgLTEpO1xuXG5leHBvcnQgY29uc3QgbGFzdERheXMgPSAoZGF5czogbnVtYmVyKTogRGF0ZVJhbmdlID0+IHtcbiAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgY29uc3QgbWluID0gbmV3IERhdGUobm93KTtcbiAgbWluLnNldERhdGUobWluLmdldERhdGUoKSAtIGRheXMgKyAxKTtcblxuICByZXR1cm4ge1xuICAgIG1pbjogc3RhcnRPZkRheShtaW4pLFxuICAgIG1heDogZW5kT2ZEYXkobm93KSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCB0b2RheSA9ICgpID0+IGxhc3REYXlzKDEpO1xuXG5leHBvcnQgY29uc3QgdGhpc1dlZWsgPSAoZGVsdGEgPSAwLCBmaXJzdERheU9mV2VlayA9IDEpOiBEYXRlUmFuZ2UgPT4ge1xuICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuICBjb25zdCBtaW4gPSBuZXcgRGF0ZShub3cpO1xuXG4gIGxldCBkaWZmID0gbWluLmdldERheSgpIC0gZmlyc3REYXlPZldlZWs7XG4gIGlmIChkaWZmIDwgMCkge1xuICAgIGRpZmYgKz0gNztcbiAgfVxuICBtaW4uc2V0RGF0ZShtaW4uZ2V0RGF0ZSgpIC0gZGlmZiArIGRlbHRhICogNyk7XG5cbiAgY29uc3QgbWF4ID0gbmV3IERhdGUobWluKTtcbiAgbWF4LnNldERhdGUobWF4LmdldERhdGUoKSArIDYpO1xuXG4gIHJldHVybiB7XG4gICAgbWluOiBzdGFydE9mRGF5KG1pbiksXG4gICAgbWF4OiBlbmRPZkRheShtYXgpLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHRoaXNNb250aCA9IChkZWx0YSA9IDApOiBEYXRlUmFuZ2UgPT4ge1xuICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuICBjb25zdCBtaW4gPSBuZXcgRGF0ZShub3cpO1xuICBtaW4uc2V0RGF0ZSgxKTtcbiAgbWluLnNldE1vbnRoKG1pbi5nZXRNb250aCgpICsgZGVsdGEpO1xuICBjb25zdCBtYXggPSBuZXcgRGF0ZShtaW4pO1xuICBtYXguc2V0TW9udGgobWF4LmdldE1vbnRoKCkgKyAxKTtcbiAgbWF4LnNldERhdGUobWF4LmdldERhdGUoKSAtIDEpO1xuXG4gIHJldHVybiB7XG4gICAgbWluOiBzdGFydE9mRGF5KG1pbiksXG4gICAgbWF4OiBlbmRPZkRheShtYXgpLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHRoaXNZZWFyID0gKGRlbHRhID0gMCk6IERhdGVSYW5nZSA9PiB7XG4gIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG4gIGNvbnN0IG1pbiA9IG5ldyBEYXRlKG5vdyk7XG4gIG1pbi5zZXREYXRlKDEpO1xuICBtaW4uc2V0TW9udGgoMCk7XG4gIG1pbi5zZXRGdWxsWWVhcihtaW4uZ2V0RnVsbFllYXIoKSArIGRlbHRhKTtcbiAgY29uc3QgbWF4ID0gbmV3IERhdGUobWluKTtcbiAgbWF4LnNldEZ1bGxZZWFyKG1heC5nZXRGdWxsWWVhcigpICsgMSk7XG4gIG1heC5zZXREYXRlKG1heC5nZXREYXRlKCkgLSAxKTtcblxuICByZXR1cm4ge1xuICAgIG1pbjogc3RhcnRPZkRheShtaW4pLFxuICAgIG1heDogZW5kT2ZEYXkobWF4KSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBjb21tb25RdWlja09wdGlvbnMgPSB7XG4gIHRvZGF5OiB7IGxhYmVsOiA8VGV4dCBpZD1cInRvZGF5XCIgLz4sIHZhbHVlOiB0b2RheSB9LFxuICB0aGlzV2VlazogeyBsYWJlbDogPFRleHQgaWQ9XCJ0aGlzV2Vla1wiIC8+LCB2YWx1ZTogKHByb3BzKSA9PiB0aGlzV2VlaygwLCBwcm9wcy5maXJzdERheU9mV2VlaykgfSxcbiAgdGhpc01vbnRoOiB7IGxhYmVsOiA8VGV4dCBpZD1cInRoaXNNb250aFwiIC8+LCB2YWx1ZTogKCkgPT4gdGhpc01vbnRoKCkgfSxcbiAgdGhpc1llYXI6IHsgbGFiZWw6IDxUZXh0IGlkPVwidGhpc1llYXJcIiAvPiwgdmFsdWU6ICgpID0+IHRoaXNZZWFyKCkgfSxcbiAgbGFzdFNldmVuRGF5czogeyBsYWJlbDogPFRleHQgaWQ9XCJsYXN0U2V2ZW5EYXlzXCIgLz4sIHZhbHVlOiAoKSA9PiBsYXN0RGF5cyg3KSB9LFxuICBsYXN0VGhpcnR5RGF5czogeyBsYWJlbDogPFRleHQgaWQ9XCJsYXN0VGhpcnR5RGF5c1wiIC8+LCB2YWx1ZTogKCkgPT4gbGFzdERheXMoMzApIH0sXG59IHNhdGlzZmllcyBSZWNvcmQ8XG4gIERhdGVQaWNrZXJRdWlja09wdGlvbiAmIHN0cmluZyxcbiAgeyBsYWJlbDogUmVhY3ROb2RlOyB2YWx1ZTogRGF0ZSB8IERhdGVSYW5nZSB8ICgocHJvcHM6IERhdGVQaWNrZXJQcm9wcykgPT4gRGF0ZSB8IERhdGVSYW5nZSkgfVxuPjtcblxuLyoqIFJldHVybnMgd2hldGhlciB0d28gZGF0ZXMgYW5kL29yIGRhdGUgcmFuZ2VzIGludGVyc2VjdC4gSW50ZXJzZWN0aW9uIGlzIGNvbnNpZGVyZWQgcGVyIGRheS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkYXRlSW50ZXJzZWN0KGE6IERhdGUgfCBudWxsIHwgRGF0ZVJhbmdlLCBiOiBEYXRlIHwgbnVsbCB8IERhdGVSYW5nZSkge1xuICBpZiAoYSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICBhID0geyBtaW46IGEsIG1heDogYSB9O1xuICB9XG4gIGlmIChiIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgIGIgPSB7IG1pbjogYiwgbWF4OiBiIH07XG4gIH1cblxuICBpZiAoIWE/Lm1pbiB8fCAhYS5tYXggfHwgIWI/Lm1pbiB8fCAhYi5tYXgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gIShlbmRPZkRheShhLm1heCkgPCBzdGFydE9mRGF5KGIubWluKSB8fCBzdGFydE9mRGF5KGEubWluKSA+IGVuZE9mRGF5KGIubWF4KSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkYXRlQ2xhbXAoZGF0ZTogRGF0ZSwgbWluPzogRGF0ZSwgbWF4PzogRGF0ZSkge1xuICBpZiAobWluICYmIGRhdGUgPCBtaW4pIHtcbiAgICByZXR1cm4gbWluO1xuICB9XG5cbiAgaWYgKG1heCAmJiBkYXRlID4gbWF4KSB7XG4gICAgcmV0dXJuIG1heDtcbiAgfVxuXG4gIHJldHVybiBkYXRlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gRGF0ZVBpY2tlcihwcm9wczogRGF0ZVBpY2tlclByb3BzKSB7XG4gIGNvbnN0IHtcbiAgICB2YWx1ZSxcbiAgICByYW5nZVNlbGVjdCxcbiAgICBsb2NhbGUsXG4gICAgZmlyc3REYXlPZldlZWsgPSAxLFxuICAgIGRlZmF1bHREYXRlSW5WaWV3LFxuICAgIHF1aWNrT3B0aW9ucyA9IFsndG9kYXknLCAndGhpc1dlZWsnXSxcbiAgICBtaW5EYXRlLFxuICAgIG1heERhdGUsXG4gIH0gPSBwcm9wcztcblxuICBmdW5jdGlvbiBvbkNoYW5nZSh2YWx1ZTogRGF0ZSB8IERhdGVSYW5nZSB8IG51bGwpIHtcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICB2YWx1ZSA9IGRhdGVDbGFtcCh2YWx1ZSwgbWluRGF0ZSwgbWF4RGF0ZSk7XG4gICAgfSBlbHNlIGlmICh2YWx1ZSkge1xuICAgICAgdmFsdWUgPSB7XG4gICAgICAgIG1pbjogZGF0ZUNsYW1wKHZhbHVlLm1pbiwgbWluRGF0ZSwgbWF4RGF0ZSksXG4gICAgICAgIG1heDogZGF0ZUNsYW1wKHZhbHVlLm1heCwgbWluRGF0ZSwgbWF4RGF0ZSksXG4gICAgICB9O1xuICAgIH1cblxuICAgIHByb3BzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgfVxuXG4gIGNvbnN0IEJ1dHRvbiA9IHVzZVRoZW1lKCh0KSA9PiB0LmNvbXBvbmVudHMuQnV0dG9uKTtcbiAgY29uc3QgSWNvbkJ1dHRvbiA9IHVzZVRoZW1lKCh0KSA9PiB0LmNvbXBvbmVudHMuSWNvbkJ1dHRvbik7XG4gIGNvbnN0IENoZXZyb25SaWdodCA9IHVzZVRoZW1lKCh0KSA9PiB0Lmljb25zLkNoZXZyb25SaWdodCk7XG4gIGNvbnN0IGNzc1ZhcmlhYmxlcyA9IHVzZUNzc1ZhcmlhYmxlcygpO1xuXG4gIGNvbnN0IG1vdW50VGltZSA9IHVzZU1lbW8oKCkgPT4gbmV3IERhdGUoKSwgW10pO1xuICBjb25zdCBbZGF0ZUluVmlldywgc2V0RGF0ZUluVmlld10gPSB1c2VTdGF0ZTxEYXRlPihkZWZhdWx0RGF0ZUluVmlldyA/PyBtb3VudFRpbWUpO1xuICBjb25zdCBbZGlydHksIHNldERpcnR5XSA9IHVzZVN0YXRlPFBhcnRpYWw8RGF0ZVJhbmdlPj4oKTtcbiAgY29uc3QgW2hvdmVyZWQsIHNldEhvdmVyZWRdID0gdXNlU3RhdGU8RGF0ZT4oKTtcblxuICBjb25zdCBtaW4gPSBkaXJ0eSA/IGRpcnR5Lm1pbiA6IHZhbHVlIGluc3RhbmNlb2YgRGF0ZSA/IHZhbHVlIDogdmFsdWU/Lm1pbjtcbiAgY29uc3QgbWF4ID0gZGlydHkgPyBkaXJ0eS5tYXggOiB2YWx1ZSBpbnN0YW5jZW9mIERhdGUgPyB2YWx1ZSA6IHZhbHVlPy5tYXg7XG5cbiAgY29uc3QgcmVzb2x2ZWRRdWlja09wdGlvbnMgPSBbLi4ucXVpY2tPcHRpb25zLCB7IGxhYmVsOiA8VGV4dCBpZD1cInJlc2V0XCIgLz4sIHZhbHVlOiBudWxsIH1dLm1hcChcbiAgICAob3B0aW9uLCBpbmRleCkgPT4ge1xuICAgICAgaWYgKG9wdGlvbiBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG4gICAgICAgIHJldHVybiBvcHRpb24oKHZhbHVlKSA9PiB7XG4gICAgICAgICAgc2V0RGlydHkodW5kZWZpbmVkKTtcbiAgICAgICAgICBvbkNoYW5nZSh2YWx1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB7IGxhYmVsLCB2YWx1ZSB9ID0gdHlwZW9mIG9wdGlvbiA9PT0gJ3N0cmluZycgPyBjb21tb25RdWlja09wdGlvbnNbb3B0aW9uXSA6IG9wdGlvbjtcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPEJ1dHRvblxuICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgdmFyaWFudD1cInRleHRcIlxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIHNldERpcnR5KHVuZGVmaW5lZCk7XG5cbiAgICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG4gICAgICAgICAgICAgIG9uQ2hhbmdlKHZhbHVlKHByb3BzKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBvbkNoYW5nZSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgPC9CdXR0b24+XG4gICAgICApO1xuICAgIH0sXG4gICk7XG5cbiAgY29uc3QgeyBjYWxlbmRhcnMsIGdldEJhY2tQcm9wcywgZ2V0Rm9yd2FyZFByb3BzLCBnZXREYXRlUHJvcHMgfSA9IHVzZURheXplZCh7XG4gICAgb25EYXRlU2VsZWN0ZWQ6ICgpID0+IHVuZGVmaW5lZCxcbiAgICBmaXJzdERheU9mV2VlayxcbiAgICBzaG93T3V0c2lkZURheXM6IHRydWUsXG4gICAgZGF0ZTogZGF0ZUluVmlldyxcbiAgICBvbk9mZnNldENoYW5nZWQ6IChvZmZzZXQpID0+XG4gICAgICBzZXREYXRlSW5WaWV3KG5ldyBEYXRlKGRhdGVJblZpZXcuZ2V0RnVsbFllYXIoKSwgZGF0ZUluVmlldy5nZXRNb250aCgpICsgb2Zmc2V0KSksXG4gICAgb2Zmc2V0OiAwLFxuICAgIG1pbkRhdGUsXG4gICAgbWF4RGF0ZSxcbiAgfSk7XG4gIGNvbnN0IG5vdyA9IHVzZU1lbW8oKCkgPT4gc3RhcnRPZkRheShuZXcgRGF0ZSgpKSwgW10pO1xuXG4gIGNvbnN0IGZvcm1hdFdlZWtkYXkgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCB7IGZvcm1hdCB9ID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQobG9jYWxlLCB7IHdlZWtkYXk6ICdzaG9ydCcgfSk7XG4gICAgcmV0dXJuICh3ZWVrRGF5OiBudW1iZXIpID0+XG4gICAgICBmb3JtYXQobmV3IERhdGUoRGF0ZS5VVEMoMjAyMSwgNywgKCh3ZWVrRGF5ICsgZmlyc3REYXlPZldlZWspICUgNykgKyAxKSkpO1xuICB9LCBbbG9jYWxlLCBmaXJzdERheU9mV2Vla10pO1xuXG4gIHVzZUVmZmVjdChcbiAgICAoKSA9PlxuICAgICAgc2V0RGF0ZUluVmlldyhcbiAgICAgICAgdmFsdWUgPT09IG51bGwgPyBkZWZhdWx0RGF0ZUluVmlldyA/PyBtb3VudFRpbWUgOiB2YWx1ZSBpbnN0YW5jZW9mIERhdGUgPyB2YWx1ZSA6IHZhbHVlLm1heCxcbiAgICAgICksXG4gICAgW3ZhbHVlLCBkZWZhdWx0RGF0ZUluVmlldywgbW91bnRUaW1lXSxcbiAgKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghcmFuZ2VTZWxlY3QpIHtcbiAgICAgIHNldERpcnR5KHVuZGVmaW5lZCk7XG4gICAgfVxuICB9LCBbcmFuZ2VTZWxlY3RdKTtcblxuICBmdW5jdGlvbiBzZXQobWluPzogRGF0ZSwgbWF4PzogRGF0ZSwgZWRpdD86ICdtaW4nIHwgJ21heCcpIHtcbiAgICBpZiAoIXJhbmdlU2VsZWN0KSB7XG4gICAgICBvbkNoYW5nZShtaW4gPz8gbnVsbCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKG1pbiAmJiBtYXggJiYgbWluID4gbWF4KSB7XG4gICAgICBpZiAoZWRpdCA9PT0gJ21pbicpIHtcbiAgICAgICAgbWF4ID0gbWluO1xuICAgICAgfSBlbHNlIGlmIChlZGl0ID09PSAnbWF4Jykge1xuICAgICAgICBtaW4gPSBtYXg7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBbbWluLCBtYXhdID0gW21heCwgbWluXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIW1pbiA9PT0gIW1heCkge1xuICAgICAgc2V0RGlydHkodW5kZWZpbmVkKTtcbiAgICAgIG9uQ2hhbmdlKG1pbiAmJiBtYXggPyB7IG1pbiwgbWF4OiBlbmRPZkRheShtYXgpIH0gOiBudWxsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0RGlydHkoeyBtaW4sIG1heCB9KTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBmb3JtYXRNb250aCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHsgZm9ybWF0IH0gPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NhbGUsIHsgbW9udGg6ICdsb25nJyB9KTtcbiAgICByZXR1cm4gKG1vbnRoOiBudW1iZXIpID0+IGZvcm1hdChuZXcgRGF0ZSgyMDIxLCBtb250aCkpO1xuICB9LCBbbG9jYWxlXSk7XG5cbiAgY29uc3QgZm9ybWF0WWVhciA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHsgZm9ybWF0IH0gPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NhbGUsIHsgeWVhcjogJ251bWVyaWMnIH0pO1xuICAgIHJldHVybiAoeWVhcjogbnVtYmVyKSA9PiBmb3JtYXQobmV3IERhdGUoeWVhciwgMCwgMSkpO1xuICB9LCBbbG9jYWxlXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNzcz17Y3NzVmFyaWFibGVzfT5cbiAgICAgIDxkaXZcbiAgICAgICAgY3NzPXt7XG4gICAgICAgICAgZGlzcGxheTogJ2dyaWQnLFxuICAgICAgICAgIGdyaWRBdXRvRmxvdzogJ2NvbHVtbicsXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgIGFsaWduSXRlbXM6ICdiYXNlbGluZScsXG4gICAgICAgICAgZ2FwOiAndmFyKC0tc3BhY2luZyknLFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8RGF0ZUlucHV0XG4gICAgICAgICAgdmFsdWU9e21pbiA/PyBudWxsfVxuICAgICAgICAgIG9uQ2hhbmdlPXsoZGF0ZSkgPT4gc2V0KGRhdGUgPz8gdW5kZWZpbmVkLCBtYXgsICdtaW4nKX1cbiAgICAgICAgICBsb2NhbGU9e2xvY2FsZX1cbiAgICAgICAgLz5cblxuICAgICAgICB7cmFuZ2VTZWxlY3QgJiYgKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICB7JyAtICd9XG4gICAgICAgICAgICA8RGF0ZUlucHV0XG4gICAgICAgICAgICAgIHZhbHVlPXttYXggPz8gbnVsbH1cbiAgICAgICAgICAgICAgb25DaGFuZ2U9eyhkYXRlKSA9PiBzZXQobWluLCBkYXRlID8/IHVuZGVmaW5lZCwgJ21heCcpfVxuICAgICAgICAgICAgICBsb2NhbGU9e2xvY2FsZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cblxuICAgICAge2NhbGVuZGFycy5tYXAoKHsgbW9udGgsIHllYXIsIHdlZWtzIH0pID0+IChcbiAgICAgICAgPGRpdiBrZXk9e2Ake21vbnRofSR7eWVhcn1gfSBjc3M9e3sgZGlzcGxheTogJ2dyaWQnIH19PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNzcz17e1xuICAgICAgICAgICAgICBtYXJnaW46ICdjYWxjKHZhcigtLXNwYWNpbmcpICogNCkgMCcsXG4gICAgICAgICAgICAgIGRpc3BsYXk6ICdncmlkJyxcbiAgICAgICAgICAgICAgZ3JpZEF1dG9GbG93OiAnY29sdW1uJyxcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1iZXR3ZWVuJyxcbiAgICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxJY29uQnV0dG9uIHsuLi5nZXRCYWNrUHJvcHMoeyBjYWxlbmRhcnMgfSl9PlxuICAgICAgICAgICAgICA8Q2hldnJvblJpZ2h0IGNzcz17eyB0cmFuc2Zvcm06ICdyb3RhdGUzZCgwLCAwLCAxLCAxODBkZWcpJyB9fSAvPlxuICAgICAgICAgICAgPC9JY29uQnV0dG9uPlxuXG4gICAgICAgICAgICA8ZGl2IGNzcz17eyBkaXNwbGF5OiAnZmxleCcgfX0+XG4gICAgICAgICAgICAgIHtmb3JtYXRNb250aChtb250aCl9IHtmb3JtYXRZZWFyKHllYXIpfVxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxJY29uQnV0dG9uIHsuLi5nZXRGb3J3YXJkUHJvcHMoeyBjYWxlbmRhcnMgfSl9PlxuICAgICAgICAgICAgICA8Q2hldnJvblJpZ2h0IC8+XG4gICAgICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjc3M9e3tcbiAgICAgICAgICAgICAganVzdGlmeVNlbGY6ICdjZW50ZXInLFxuICAgICAgICAgICAgICBkaXNwbGF5OiAnZ3JpZCcsXG4gICAgICAgICAgICAgIGdyaWRUZW1wbGF0ZUNvbHVtbnM6ICdyZXBlYXQoNywgbWF4LWNvbnRlbnQpJyxcbiAgICAgICAgICAgICAgZm9udFdlaWdodDogJ2JvbGQnLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7d2Vla0RheXMubWFwKChfdiwgd2Vla0RheSkgPT4gKFxuICAgICAgICAgICAgICA8ZGl2IGtleT17d2Vla0RheX0gY3NzPXt7IGp1c3RpZnlTZWxmOiAnY2VudGVyJywgbWFyZ2luQm90dG9tOiAndmFyKC0tc3BhY2luZyknIH19PlxuICAgICAgICAgICAgICAgIHtmb3JtYXRXZWVrZGF5KHdlZWtEYXkpfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICkpfVxuXG4gICAgICAgICAgICB7d2Vla3MubWFwKCh3ZWVrLCBpbmRleCkgPT5cbiAgICAgICAgICAgICAgd2Vlay5tYXAoKGRhdGVPYmplY3QsIGRheUluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFkYXRlT2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gPGRpdiBrZXk9e2Ake2luZGV4fS0ke2RheUluZGV4fWB9IC8+O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnN0IHsgcHJldk1vbnRoLCBuZXh0TW9udGgsIGRhdGUgfSA9IGRhdGVPYmplY3Q7XG4gICAgICAgICAgICAgICAgY29uc3QgdG9kYXkgPSBzdGFydE9mRGF5KGRhdGUpLmdldFRpbWUoKSA9PT0gbm93LmdldFRpbWUoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBkaXNhYmxlZCA9IChtaW5EYXRlICYmIGRhdGUgPCBtaW5EYXRlKSB8fCAobWF4RGF0ZSAmJiBkYXRlID4gbWF4RGF0ZSk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZCA9XG4gICAgICAgICAgICAgICAgICBkYXRlLmdldFRpbWUoKSA9PT0gbWluPy5nZXRUaW1lKCkgfHxcbiAgICAgICAgICAgICAgICAgIChtaW4gJiYgbWF4ICYmIGRhdGVJbnRlcnNlY3QoZGF0ZSwgeyBtaW4sIG1heCB9KSk7XG4gICAgICAgICAgICAgICAgY29uc3QgcHJlU2VsZWN0ZWQgPVxuICAgICAgICAgICAgICAgICAgIXNlbGVjdGVkICYmXG4gICAgICAgICAgICAgICAgICAhZGlzYWJsZWQgJiZcbiAgICAgICAgICAgICAgICAgIChkYXRlLmdldFRpbWUoKSA9PT0gaG92ZXJlZD8uZ2V0VGltZSgpIHx8XG4gICAgICAgICAgICAgICAgICAgIChtaW4gJiZcbiAgICAgICAgICAgICAgICAgICAgICAhbWF4ICYmXG4gICAgICAgICAgICAgICAgICAgICAgaG92ZXJlZCAmJlxuICAgICAgICAgICAgICAgICAgICAgIGRhdGVJbnRlcnNlY3QoXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWluIDw9IGhvdmVyZWQgPyB7IG1pbiwgbWF4OiBob3ZlcmVkIH0gOiB7IG1pbjogaG92ZXJlZCwgbWF4OiBtaW4gfSxcbiAgICAgICAgICAgICAgICAgICAgICApKSk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBrZXk9e2Ake2luZGV4fS0ke2RheUluZGV4fWB9XG4gICAgICAgICAgICAgICAgICAgIGNzcz17W1xuICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEwLFxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAnMXB4IHNvbGlkIHRyYW5zcGFyZW50JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICd0cmFuc3BhcmVudCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3I6ICdwb2ludGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIChwcmV2TW9udGggfHwgbmV4dE1vbnRoKSAmJiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogZ3JheSxcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIHRvZGF5ICYmIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogJzFweCBzb2xpZCB2YXIoLS1zZWNvbmRhcnlNYWluKScsXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZCAmJiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAndmFyKC0tcHJpbWFyeU1haW4pJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAndmFyKC0tcHJpbWFyeUNvbnRyYXN0VGV4dCknLFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgcHJlU2VsZWN0ZWQgJiYge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJ3ZhcigtLXByaW1hcnlMaWdodCknLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICd2YXIoLS1wcmltYXJ5Q29udHJhc3RUZXh0KScsXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXX1cbiAgICAgICAgICAgICAgICAgICAgey4uLmdldERhdGVQcm9wcyh7IGRhdGVPYmo6IGRhdGVPYmplY3QgfSl9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoZGlydHkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtaW4pIHNldChtaW4sIGRhdGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBzZXQoZGF0ZSwgbWF4KTtcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0KGRhdGUpO1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgb25Qb2ludGVyT3Zlcj17KCkgPT4gc2V0SG92ZXJlZChkYXRlKX1cbiAgICAgICAgICAgICAgICAgICAgb25Qb2ludGVyT3V0PXsoKSA9PiBzZXRIb3ZlcmVkKHVuZGVmaW5lZCl9XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2RhdGUuZ2V0RGF0ZSgpfVxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICkpfVxuXG4gICAgICA8ZGl2XG4gICAgICAgIGNzcz17e1xuICAgICAgICAgIG1hcmdpblRvcDogJ3ZhcigtLXNwYWNpbmcpJyxcbiAgICAgICAgICBkaXNwbGF5OiAnZ3JpZCcsXG4gICAgICAgICAgZ3JpZEF1dG9GbG93OiAnY29sdW1uJyxcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIHtyZXNvbHZlZFF1aWNrT3B0aW9uc31cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufVxuIl19 */"], ...getDateProps({
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
|
|
1151
|
+
weeks.map((week, index) => {
|
|
1152
|
+
const weekStart = week[0];
|
|
1153
|
+
const weekEnd = week[6];
|
|
1154
|
+
const weekDisabled = !rangeSelect || minDate && weekEnd.date < minDate || maxDate && weekStart.date > maxDate;
|
|
1155
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1156
|
+
showCalendarWeek ? /* @__PURE__ */ jsx("button", { css: /* @__PURE__ */ css({
|
|
1157
|
+
padding: 10,
|
|
1158
|
+
border: "none",
|
|
1159
|
+
background: "transparent",
|
|
1160
|
+
cursor: weekDisabled ? void 0 : "pointer",
|
|
1161
|
+
font: "inherit",
|
|
1162
|
+
borderRight: `1px solid ${gray}`
|
|
1163
|
+
}, process.env.NODE_ENV === "production" ? "" : ";label:DatePicker;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3NjaHVtbWFyLXRhYmxlL3NjaHVtbWFyLXRhYmxlL3NyYy9jb21wb25lbnRzL2RhdGVQaWNrZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW1ic0IiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvc2NodW1tYXItdGFibGUvc2NodW1tYXItdGFibGUvc3JjL2NvbXBvbmVudHMvZGF0ZVBpY2tlci50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRlT2JqLCB1c2VEYXl6ZWQgfSBmcm9tICdkYXl6ZWQnO1xuaW1wb3J0IHtcbiAgRnJhZ21lbnQsXG4gIFJlYWN0Tm9kZSxcbiAgY3JlYXRlQ29udGV4dCxcbiAgdXNlQ29udGV4dCxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICcuLi9ob29rcy91c2VUaGVtZSc7XG5pbXBvcnQgeyBkZWZhdWx0cyB9IGZyb20gJy4uL21pc2MvZGVmYXVsdHMnO1xuaW1wb3J0IHsgZ3JheSB9IGZyb20gJy4uL3RoZW1lL2RlZmF1bHRUaGVtZS9kZWZhdWx0Q2xhc3Nlcyc7XG5pbXBvcnQgeyB1c2VDc3NWYXJpYWJsZXMgfSBmcm9tICcuLi90aGVtZS91c2VDc3NWYXJpYWJsZXMnO1xuaW1wb3J0IHsgRGF0ZUlucHV0IH0gZnJvbSAnLi9kYXRlSW5wdXQnO1xuaW1wb3J0IHsgVGV4dCB9IGZyb20gJy4vdGV4dCc7XG5cbmV4cG9ydCB0eXBlIERhdGVSYW5nZSA9IHsgbWluOiBEYXRlOyBtYXg6IERhdGUgfTtcblxuZXhwb3J0IHR5cGUgRGF0ZVBpY2tlclF1aWNrT3B0aW9uID1cbiAgfCAndG9kYXknXG4gIHwgJ3RoaXNXZWVrJ1xuICB8ICd0aGlzTW9udGgnXG4gIHwgJ3RoaXNZZWFyJ1xuICB8ICdsYXN0U2V2ZW5EYXlzJ1xuICB8ICdsYXN0VGhpcnR5RGF5cydcbiAgfCB7IGxhYmVsOiBSZWFjdE5vZGU7IHZhbHVlOiBEYXRlIHwgRGF0ZVJhbmdlIHwgKCgpID0+IERhdGUgfCBEYXRlUmFuZ2UpIH1cbiAgfCAoKG9uQ2hhbmdlOiAodmFsdWU6IERhdGUgfCBEYXRlUmFuZ2UgfCBudWxsKSA9PiB2b2lkKSA9PiBSZWFjdE5vZGUpO1xuXG5leHBvcnQgdHlwZSBEYXRlUGlja2VyUHJvcHMgPSB7XG4gIC8qKiBDdXJyZW50bHkgc2VsZWN0ZWQgZGF5IG9yIHJhbmdlIG9mIGRheXMuICovXG4gIHZhbHVlOiBEYXRlIHwgRGF0ZVJhbmdlIHwgbnVsbDtcbiAgLyoqIENhbGxiYWNrIGZvciB3aGVuIHRoZSBkYXkgKHJhbmdlKSBjaGFuZ2VzLiAqL1xuICBvbkNoYW5nZTogKHZhbHVlOiBEYXRlIHwgRGF0ZVJhbmdlIHwgbnVsbCkgPT4gdm9pZDtcbiAgLyoqIElmIGVuYWJsZWQsIHJhbmdlcyBjYW4gYmUgc2VsZWN0ZWQuICovXG4gIHJhbmdlU2VsZWN0PzogYm9vbGVhbjtcbiAgLyoqIFdoaWNoIGxvY2FsZSB0byB1c2UgdG8gcmVuZGVyIHRoZSBjYWxlbmRhci4gKi9cbiAgbG9jYWxlPzogc3RyaW5nO1xuICAvKiogV2hpY2ggZGF5IG9mIHRoZSB3ZWVrIHNob3VsZCBiZSBpbiB0aGUgZmlyc3QgY29sdW1uLiAoMD1TdW5kYXksIDE9TW9uZGF5LCAuLi4pXG4gICAqIEBkZWZhdWx0IDFcbiAgICovXG4gIGZpcnN0RGF5T2ZXZWVrPzogMCB8IDEgfCAyIHwgMyB8IDQgfCA1IHwgNjtcbiAgLyoqIFdoaWNoIG1vbnRoIHRvIHNob3cgaW5pdGlhbGx5ICovXG4gIGRlZmF1bHREYXRlSW5WaWV3PzogRGF0ZTtcbiAgLyoqIFNob3cgYnV0dG9ucyB0byBxdWlja2x5IHNlbGVjdCBzdWdnZXN0ZWQgZGF0ZXMgb3IgZGF0ZSByYW5nZXMgKi9cbiAgcXVpY2tPcHRpb25zPzogRGF0ZVBpY2tlclF1aWNrT3B0aW9uW107XG4gIC8qKiBNaW5pbXVtIHNlbGVjdGFibGUgZGF0ZSAqL1xuICBtaW5EYXRlPzogRGF0ZTtcbiAgLyoqIE1heGltdW0gc2VsZWN0YWJsZSBkYXRlICovXG4gIG1heERhdGU/OiBEYXRlO1xuICAvKiogV2hldGhlciB0byBzaG93IHRoZSBjYWxlbmRhciB3ZWVrIGluIHRoZSBmaXJzdCBjb2x1bW4gKi9cbiAgc2hvd0NhbGVuZGFyV2Vlaz86IGJvb2xlYW47XG59O1xuXG5jb25zdCBEYXRlUGlja2VyQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8UGFydGlhbDxPbWl0PERhdGVQaWNrZXJQcm9wcywgJ3ZhbHVlJyB8ICdvbkNoYW5nZSc+Pj4oe30pO1xuXG5leHBvcnQgZnVuY3Rpb24gRGF0ZVBpY2tlclByb3ZpZGVyKHtcbiAgY2hpbGRyZW4sXG4gIC4uLnByb3BzXG59OiBQYXJ0aWFsPE9taXQ8RGF0ZVBpY2tlclByb3BzLCAndmFsdWUnIHwgJ29uQ2hhbmdlJz4+ICYgeyBjaGlsZHJlbj86IFJlYWN0Tm9kZSB9KSB7XG4gIGNvbnN0IHZhbHVlID0gdXNlTWVtbygoKSA9PiBwcm9wcywgW0pTT04uc3RyaW5naWZ5KHByb3BzKV0pO1xuXG4gIHJldHVybiA8RGF0ZVBpY2tlckNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3ZhbHVlfT57Y2hpbGRyZW59PC9EYXRlUGlja2VyQ29udGV4dC5Qcm92aWRlcj47XG59XG5cbmNvbnN0IHdlZWtEYXlzID0gWzAsIDEsIDIsIDMsIDQsIDUsIDZdIGFzIGNvbnN0O1xuXG4vKiogUm91bmRzIGEgZGF0ZSBkb3duIHRvIHRoZSBzdGFydCBvZiB0aGUgZGF5LiAqL1xuZXhwb3J0IGNvbnN0IHN0YXJ0T2ZEYXkgPSAoZDogRGF0ZSkgPT4gbmV3IERhdGUoZC5nZXRGdWxsWWVhcigpLCBkLmdldE1vbnRoKCksIGQuZ2V0RGF0ZSgpKTtcblxuLyoqIFJvdW5kcyBhIGRhdGUgdXAgdG8gdGhlIGVuZCBvZiB0aGUgZGF5LiAqL1xuZXhwb3J0IGNvbnN0IGVuZE9mRGF5ID0gKGQ6IERhdGUpID0+XG4gIG5ldyBEYXRlKGQuZ2V0RnVsbFllYXIoKSwgZC5nZXRNb250aCgpLCBkLmdldERhdGUoKSArIDEsIDAsIDAsIDAsIC0xKTtcblxuZXhwb3J0IGNvbnN0IGxhc3REYXlzID0gKGRheXM6IG51bWJlcik6IERhdGVSYW5nZSA9PiB7XG4gIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG4gIGNvbnN0IG1pbiA9IG5ldyBEYXRlKG5vdyk7XG4gIG1pbi5zZXREYXRlKG1pbi5nZXREYXRlKCkgLSBkYXlzICsgMSk7XG5cbiAgcmV0dXJuIHtcbiAgICBtaW46IHN0YXJ0T2ZEYXkobWluKSxcbiAgICBtYXg6IGVuZE9mRGF5KG5vdyksXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgdG9kYXkgPSAoKSA9PiBsYXN0RGF5cygxKTtcblxuZXhwb3J0IGNvbnN0IHRoaXNXZWVrID0gKGRlbHRhID0gMCwgZmlyc3REYXlPZldlZWsgPSAxKTogRGF0ZVJhbmdlID0+IHtcbiAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgY29uc3QgbWluID0gbmV3IERhdGUobm93KTtcblxuICBsZXQgZGlmZiA9IG1pbi5nZXREYXkoKSAtIGZpcnN0RGF5T2ZXZWVrO1xuICBpZiAoZGlmZiA8IDApIHtcbiAgICBkaWZmICs9IDc7XG4gIH1cbiAgbWluLnNldERhdGUobWluLmdldERhdGUoKSAtIGRpZmYgKyBkZWx0YSAqIDcpO1xuXG4gIGNvbnN0IG1heCA9IG5ldyBEYXRlKG1pbik7XG4gIG1heC5zZXREYXRlKG1heC5nZXREYXRlKCkgKyA2KTtcblxuICByZXR1cm4ge1xuICAgIG1pbjogc3RhcnRPZkRheShtaW4pLFxuICAgIG1heDogZW5kT2ZEYXkobWF4KSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCB0aGlzTW9udGggPSAoZGVsdGEgPSAwKTogRGF0ZVJhbmdlID0+IHtcbiAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgY29uc3QgbWluID0gbmV3IERhdGUobm93KTtcbiAgbWluLnNldERhdGUoMSk7XG4gIG1pbi5zZXRNb250aChtaW4uZ2V0TW9udGgoKSArIGRlbHRhKTtcbiAgY29uc3QgbWF4ID0gbmV3IERhdGUobWluKTtcbiAgbWF4LnNldE1vbnRoKG1heC5nZXRNb250aCgpICsgMSk7XG4gIG1heC5zZXREYXRlKG1heC5nZXREYXRlKCkgLSAxKTtcblxuICByZXR1cm4ge1xuICAgIG1pbjogc3RhcnRPZkRheShtaW4pLFxuICAgIG1heDogZW5kT2ZEYXkobWF4KSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCB0aGlzWWVhciA9IChkZWx0YSA9IDApOiBEYXRlUmFuZ2UgPT4ge1xuICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuICBjb25zdCBtaW4gPSBuZXcgRGF0ZShub3cpO1xuICBtaW4uc2V0RGF0ZSgxKTtcbiAgbWluLnNldE1vbnRoKDApO1xuICBtaW4uc2V0RnVsbFllYXIobWluLmdldEZ1bGxZZWFyKCkgKyBkZWx0YSk7XG4gIGNvbnN0IG1heCA9IG5ldyBEYXRlKG1pbik7XG4gIG1heC5zZXRGdWxsWWVhcihtYXguZ2V0RnVsbFllYXIoKSArIDEpO1xuICBtYXguc2V0RGF0ZShtYXguZ2V0RGF0ZSgpIC0gMSk7XG5cbiAgcmV0dXJuIHtcbiAgICBtaW46IHN0YXJ0T2ZEYXkobWluKSxcbiAgICBtYXg6IGVuZE9mRGF5KG1heCksXG4gIH07XG59O1xuXG5jb25zdCBNU19QRVJfREFZID0gMTAwMCAqIDYwICogNjAgKiAyNDtcbmV4cG9ydCBjb25zdCBnZXRDYWxlbmRhcldlZWsgPSAoZGF0ZTogRGF0ZSk6IG51bWJlciA9PiB7XG4gIC8vIElTTyA4NjAxOiBXZWVrIDEgaXMgdGhlIHdlZWsgd2l0aCB0aGUgZmlyc3QgVGh1cnNkYXkgb2YgdGhlIHllYXIuXG4gIC8vIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT193ZWVrX2RhdGVcblxuICBjb25zdCB5ID0gZGF0ZS5nZXRGdWxsWWVhcigpO1xuICBjb25zdCBmZG95ID0gbmV3IERhdGUoeSwgMCwgMSk7XG4gIGNvbnN0IGRveSA9IE1hdGguZmxvb3IoXG4gICAgKGRhdGUuZ2V0VGltZSgpIC0gZmRveS5nZXRUaW1lKCkgKyAoZGF0ZS5nZXRUaW1lem9uZU9mZnNldCgpIC0gZmRveS5nZXRUaW1lem9uZU9mZnNldCgpKSkgL1xuICAgICAgTVNfUEVSX0RBWSxcbiAgKTtcbiAgY29uc3QgZG93ID0gZmRveS5nZXREYXkoKTtcbiAgY29uc3QgdyA9IE1hdGguZmxvb3IoKDEwICsgZG95IC0gZG93KSAvIDcpO1xuXG4gIGlmICh3ID09PSAwKSB7XG4gICAgcmV0dXJuIGdldENhbGVuZGFyV2VlayhuZXcgRGF0ZSh5IC0gMSwgMTEsIDMxKSk7XG4gIH1cblxuICByZXR1cm4gdztcbn07XG5cbmV4cG9ydCBjb25zdCBjb21tb25RdWlja09wdGlvbnMgPSB7XG4gIHRvZGF5OiB7IGxhYmVsOiA8VGV4dCBpZD1cInRvZGF5XCIgLz4sIHZhbHVlOiB0b2RheSB9LFxuICB0aGlzV2VlazogeyBsYWJlbDogPFRleHQgaWQ9XCJ0aGlzV2Vla1wiIC8+LCB2YWx1ZTogKHByb3BzKSA9PiB0aGlzV2VlaygwLCBwcm9wcy5maXJzdERheU9mV2VlaykgfSxcbiAgdGhpc01vbnRoOiB7IGxhYmVsOiA8VGV4dCBpZD1cInRoaXNNb250aFwiIC8+LCB2YWx1ZTogKCkgPT4gdGhpc01vbnRoKCkgfSxcbiAgdGhpc1llYXI6IHsgbGFiZWw6IDxUZXh0IGlkPVwidGhpc1llYXJcIiAvPiwgdmFsdWU6ICgpID0+IHRoaXNZZWFyKCkgfSxcbiAgbGFzdFNldmVuRGF5czogeyBsYWJlbDogPFRleHQgaWQ9XCJsYXN0U2V2ZW5EYXlzXCIgLz4sIHZhbHVlOiAoKSA9PiBsYXN0RGF5cyg3KSB9LFxuICBsYXN0VGhpcnR5RGF5czogeyBsYWJlbDogPFRleHQgaWQ9XCJsYXN0VGhpcnR5RGF5c1wiIC8+LCB2YWx1ZTogKCkgPT4gbGFzdERheXMoMzApIH0sXG59IHNhdGlzZmllcyBSZWNvcmQ8XG4gIERhdGVQaWNrZXJRdWlja09wdGlvbiAmIHN0cmluZyxcbiAgeyBsYWJlbDogUmVhY3ROb2RlOyB2YWx1ZTogRGF0ZSB8IERhdGVSYW5nZSB8ICgocHJvcHM6IERhdGVQaWNrZXJQcm9wcykgPT4gRGF0ZSB8IERhdGVSYW5nZSkgfVxuPjtcblxuLyoqIFJldHVybnMgd2hldGhlciB0d28gZGF0ZXMgYW5kL29yIGRhdGUgcmFuZ2VzIGludGVyc2VjdC4gSW50ZXJzZWN0aW9uIGlzIGNvbnNpZGVyZWQgcGVyIGRheS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkYXRlSW50ZXJzZWN0KGE6IERhdGUgfCBudWxsIHwgRGF0ZVJhbmdlLCBiOiBEYXRlIHwgbnVsbCB8IERhdGVSYW5nZSkge1xuICBpZiAoYSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICBhID0geyBtaW46IGEsIG1heDogYSB9O1xuICB9XG4gIGlmIChiIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgIGIgPSB7IG1pbjogYiwgbWF4OiBiIH07XG4gIH1cblxuICBpZiAoIWE/Lm1pbiB8fCAhYS5tYXggfHwgIWI/Lm1pbiB8fCAhYi5tYXgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gIShlbmRPZkRheShhLm1heCkgPCBzdGFydE9mRGF5KGIubWluKSB8fCBzdGFydE9mRGF5KGEubWluKSA+IGVuZE9mRGF5KGIubWF4KSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkYXRlQ2xhbXAoZGF0ZTogRGF0ZSwgbWluPzogRGF0ZSwgbWF4PzogRGF0ZSkge1xuICBpZiAobWluICYmIGRhdGUgPCBtaW4pIHtcbiAgICByZXR1cm4gbWluO1xuICB9XG5cbiAgaWYgKG1heCAmJiBkYXRlID4gbWF4KSB7XG4gICAgcmV0dXJuIG1heDtcbiAgfVxuXG4gIHJldHVybiBkYXRlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gRGF0ZVBpY2tlcihwcm9wczogRGF0ZVBpY2tlclByb3BzKSB7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KERhdGVQaWNrZXJDb250ZXh0KTtcblxuICBjb25zdCB7XG4gICAgdmFsdWUsXG4gICAgcmFuZ2VTZWxlY3QsXG4gICAgbG9jYWxlLFxuICAgIGZpcnN0RGF5T2ZXZWVrID0gMSxcbiAgICBkZWZhdWx0RGF0ZUluVmlldyxcbiAgICBxdWlja09wdGlvbnMgPSBbJ3RvZGF5JywgJ3RoaXNXZWVrJ10sXG4gICAgbWluRGF0ZSxcbiAgICBtYXhEYXRlLFxuICAgIHNob3dDYWxlbmRhcldlZWssXG4gIH0gPSBkZWZhdWx0czxEYXRlUGlja2VyUHJvcHM+KHByb3BzLCBjb250ZXh0KTtcblxuICBmdW5jdGlvbiBvbkNoYW5nZSh2YWx1ZTogRGF0ZSB8IERhdGVSYW5nZSB8IG51bGwpIHtcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICB2YWx1ZSA9IGRhdGVDbGFtcCh2YWx1ZSwgbWluRGF0ZSwgbWF4RGF0ZSk7XG4gICAgfSBlbHNlIGlmICh2YWx1ZSkge1xuICAgICAgdmFsdWUgPSB7XG4gICAgICAgIG1pbjogZGF0ZUNsYW1wKHZhbHVlLm1pbiwgbWluRGF0ZSwgbWF4RGF0ZSksXG4gICAgICAgIG1heDogZGF0ZUNsYW1wKHZhbHVlLm1heCwgbWluRGF0ZSwgbWF4RGF0ZSksXG4gICAgICB9O1xuICAgIH1cblxuICAgIHByb3BzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgfVxuXG4gIGNvbnN0IEJ1dHRvbiA9IHVzZVRoZW1lKCh0KSA9PiB0LmNvbXBvbmVudHMuQnV0dG9uKTtcbiAgY29uc3QgSWNvbkJ1dHRvbiA9IHVzZVRoZW1lKCh0KSA9PiB0LmNvbXBvbmVudHMuSWNvbkJ1dHRvbik7XG4gIGNvbnN0IENoZXZyb25SaWdodCA9IHVzZVRoZW1lKCh0KSA9PiB0Lmljb25zLkNoZXZyb25SaWdodCk7XG4gIGNvbnN0IGNzc1ZhcmlhYmxlcyA9IHVzZUNzc1ZhcmlhYmxlcygpO1xuXG4gIGNvbnN0IG1vdW50VGltZSA9IHVzZU1lbW8oKCkgPT4gbmV3IERhdGUoKSwgW10pO1xuICBjb25zdCBbZGF0ZUluVmlldywgc2V0RGF0ZUluVmlld10gPSB1c2VTdGF0ZTxEYXRlPihkZWZhdWx0RGF0ZUluVmlldyA/PyBtb3VudFRpbWUpO1xuICBjb25zdCBbZGlydHksIHNldERpcnR5XSA9IHVzZVN0YXRlPFBhcnRpYWw8RGF0ZVJhbmdlPj4oKTtcbiAgY29uc3QgW2hvdmVyZWQsIHNldEhvdmVyZWRdID0gdXNlU3RhdGU8RGF0ZT4oKTtcblxuICBjb25zdCBtaW4gPSBkaXJ0eSA/IGRpcnR5Lm1pbiA6IHZhbHVlIGluc3RhbmNlb2YgRGF0ZSA/IHZhbHVlIDogdmFsdWU/Lm1pbjtcbiAgY29uc3QgbWF4ID0gZGlydHkgPyBkaXJ0eS5tYXggOiB2YWx1ZSBpbnN0YW5jZW9mIERhdGUgPyB2YWx1ZSA6IHZhbHVlPy5tYXg7XG5cbiAgY29uc3QgcmVzb2x2ZWRRdWlja09wdGlvbnMgPSBbLi4ucXVpY2tPcHRpb25zLCB7IGxhYmVsOiA8VGV4dCBpZD1cInJlc2V0XCIgLz4sIHZhbHVlOiBudWxsIH1dLm1hcChcbiAgICAob3B0aW9uLCBpbmRleCkgPT4ge1xuICAgICAgaWYgKG9wdGlvbiBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG4gICAgICAgIHJldHVybiBvcHRpb24oKHZhbHVlKSA9PiB7XG4gICAgICAgICAgc2V0RGlydHkodW5kZWZpbmVkKTtcbiAgICAgICAgICBvbkNoYW5nZSh2YWx1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB7IGxhYmVsLCB2YWx1ZSB9ID0gdHlwZW9mIG9wdGlvbiA9PT0gJ3N0cmluZycgPyBjb21tb25RdWlja09wdGlvbnNbb3B0aW9uXSA6IG9wdGlvbjtcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPEJ1dHRvblxuICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgdmFyaWFudD1cInRleHRcIlxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIHNldERpcnR5KHVuZGVmaW5lZCk7XG5cbiAgICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG4gICAgICAgICAgICAgIG9uQ2hhbmdlKHZhbHVlKHByb3BzKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBvbkNoYW5nZSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgPC9CdXR0b24+XG4gICAgICApO1xuICAgIH0sXG4gICk7XG5cbiAgY29uc3QgeyBjYWxlbmRhcnMsIGdldEJhY2tQcm9wcywgZ2V0Rm9yd2FyZFByb3BzLCBnZXREYXRlUHJvcHMgfSA9IHVzZURheXplZCh7XG4gICAgb25EYXRlU2VsZWN0ZWQ6ICgpID0+IHVuZGVmaW5lZCxcbiAgICBmaXJzdERheU9mV2VlayxcbiAgICBzaG93T3V0c2lkZURheXM6IHRydWUsXG4gICAgZGF0ZTogZGF0ZUluVmlldyxcbiAgICBvbk9mZnNldENoYW5nZWQ6IChvZmZzZXQpID0+XG4gICAgICBzZXREYXRlSW5WaWV3KG5ldyBEYXRlKGRhdGVJblZpZXcuZ2V0RnVsbFllYXIoKSwgZGF0ZUluVmlldy5nZXRNb250aCgpICsgb2Zmc2V0KSksXG4gICAgb2Zmc2V0OiAwLFxuICAgIG1pbkRhdGUsXG4gICAgbWF4RGF0ZSxcbiAgfSk7XG4gIGNvbnN0IG5vdyA9IHVzZU1lbW8oKCkgPT4gc3RhcnRPZkRheShuZXcgRGF0ZSgpKSwgW10pO1xuXG4gIGNvbnN0IGZvcm1hdFdlZWtkYXkgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCB7IGZvcm1hdCB9ID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQobG9jYWxlLCB7IHdlZWtkYXk6ICdzaG9ydCcgfSk7XG4gICAgcmV0dXJuICh3ZWVrRGF5OiBudW1iZXIpID0+XG4gICAgICBmb3JtYXQobmV3IERhdGUoRGF0ZS5VVEMoMjAyMSwgNywgKCh3ZWVrRGF5ICsgZmlyc3REYXlPZldlZWspICUgNykgKyAxKSkpO1xuICB9LCBbbG9jYWxlLCBmaXJzdERheU9mV2Vla10pO1xuXG4gIHVzZUVmZmVjdChcbiAgICAoKSA9PlxuICAgICAgc2V0RGF0ZUluVmlldyhcbiAgICAgICAgdmFsdWUgPT09IG51bGwgPyBkZWZhdWx0RGF0ZUluVmlldyA/PyBtb3VudFRpbWUgOiB2YWx1ZSBpbnN0YW5jZW9mIERhdGUgPyB2YWx1ZSA6IHZhbHVlLm1heCxcbiAgICAgICksXG4gICAgW3ZhbHVlLCBkZWZhdWx0RGF0ZUluVmlldywgbW91bnRUaW1lXSxcbiAgKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghcmFuZ2VTZWxlY3QpIHtcbiAgICAgIHNldERpcnR5KHVuZGVmaW5lZCk7XG4gICAgfVxuICB9LCBbcmFuZ2VTZWxlY3RdKTtcblxuICBmdW5jdGlvbiBzZXQobWluPzogRGF0ZSwgbWF4PzogRGF0ZSwgZWRpdD86ICdtaW4nIHwgJ21heCcpIHtcbiAgICBpZiAoIXJhbmdlU2VsZWN0KSB7XG4gICAgICBvbkNoYW5nZShtaW4gPz8gbnVsbCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKG1pbiAmJiBtYXggJiYgbWluID4gbWF4KSB7XG4gICAgICBpZiAoZWRpdCA9PT0gJ21pbicpIHtcbiAgICAgICAgbWF4ID0gbWluO1xuICAgICAgfSBlbHNlIGlmIChlZGl0ID09PSAnbWF4Jykge1xuICAgICAgICBtaW4gPSBtYXg7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBbbWluLCBtYXhdID0gW21heCwgbWluXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIW1pbiA9PT0gIW1heCkge1xuICAgICAgc2V0RGlydHkodW5kZWZpbmVkKTtcbiAgICAgIG9uQ2hhbmdlKG1pbiAmJiBtYXggPyB7IG1pbiwgbWF4OiBlbmRPZkRheShtYXgpIH0gOiBudWxsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0RGlydHkoeyBtaW4sIG1heCB9KTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBmb3JtYXRNb250aCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHsgZm9ybWF0IH0gPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NhbGUsIHsgbW9udGg6ICdsb25nJyB9KTtcbiAgICByZXR1cm4gKG1vbnRoOiBudW1iZXIpID0+IGZvcm1hdChuZXcgRGF0ZSgyMDIxLCBtb250aCkpO1xuICB9LCBbbG9jYWxlXSk7XG5cbiAgY29uc3QgZm9ybWF0WWVhciA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHsgZm9ybWF0IH0gPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NhbGUsIHsgeWVhcjogJ251bWVyaWMnIH0pO1xuICAgIHJldHVybiAoeWVhcjogbnVtYmVyKSA9PiBmb3JtYXQobmV3IERhdGUoeWVhciwgMCwgMSkpO1xuICB9LCBbbG9jYWxlXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNzcz17Y3NzVmFyaWFibGVzfT5cbiAgICAgIDxkaXZcbiAgICAgICAgY3NzPXt7XG4gICAgICAgICAgZGlzcGxheTogJ2dyaWQnLFxuICAgICAgICAgIGdyaWRBdXRvRmxvdzogJ2NvbHVtbicsXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgIGFsaWduSXRlbXM6ICdiYXNlbGluZScsXG4gICAgICAgICAgZ2FwOiAndmFyKC0tc3BhY2luZyknLFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8RGF0ZUlucHV0XG4gICAgICAgICAgdmFsdWU9e21pbiA/PyBudWxsfVxuICAgICAgICAgIG9uQ2hhbmdlPXsoZGF0ZSkgPT4gc2V0KGRhdGUgPz8gdW5kZWZpbmVkLCBtYXgsICdtaW4nKX1cbiAgICAgICAgICBsb2NhbGU9e2xvY2FsZX1cbiAgICAgICAgLz5cblxuICAgICAgICB7cmFuZ2VTZWxlY3QgJiYgKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICB7JyAtICd9XG4gICAgICAgICAgICA8RGF0ZUlucHV0XG4gICAgICAgICAgICAgIHZhbHVlPXttYXggPz8gbnVsbH1cbiAgICAgICAgICAgICAgb25DaGFuZ2U9eyhkYXRlKSA9PiBzZXQobWluLCBkYXRlID8/IHVuZGVmaW5lZCwgJ21heCcpfVxuICAgICAgICAgICAgICBsb2NhbGU9e2xvY2FsZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cblxuICAgICAge2NhbGVuZGFycy5tYXAoKHsgbW9udGgsIHllYXIsIHdlZWtzIH0pID0+IChcbiAgICAgICAgPGRpdiBrZXk9e2Ake21vbnRofSR7eWVhcn1gfSBjc3M9e3sgZGlzcGxheTogJ2dyaWQnIH19PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNzcz17e1xuICAgICAgICAgICAgICBtYXJnaW46ICdjYWxjKHZhcigtLXNwYWNpbmcpICogNCkgMCcsXG4gICAgICAgICAgICAgIGRpc3BsYXk6ICdncmlkJyxcbiAgICAgICAgICAgICAgZ3JpZEF1dG9GbG93OiAnY29sdW1uJyxcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1iZXR3ZWVuJyxcbiAgICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxJY29uQnV0dG9uIHsuLi5nZXRCYWNrUHJvcHMoeyBjYWxlbmRhcnMgfSl9PlxuICAgICAgICAgICAgICA8Q2hldnJvblJpZ2h0IGNzcz17eyB0cmFuc2Zvcm06ICdyb3RhdGUzZCgwLCAwLCAxLCAxODBkZWcpJyB9fSAvPlxuICAgICAgICAgICAgPC9JY29uQnV0dG9uPlxuXG4gICAgICAgICAgICA8ZGl2IGNzcz17eyBkaXNwbGF5OiAnZmxleCcgfX0+XG4gICAgICAgICAgICAgIHtmb3JtYXRNb250aChtb250aCl9IHtmb3JtYXRZZWFyKHllYXIpfVxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxJY29uQnV0dG9uIHsuLi5nZXRGb3J3YXJkUHJvcHMoeyBjYWxlbmRhcnMgfSl9PlxuICAgICAgICAgICAgICA8Q2hldnJvblJpZ2h0IC8+XG4gICAgICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjc3M9e3tcbiAgICAgICAgICAgICAganVzdGlmeVNlbGY6ICdjZW50ZXInLFxuICAgICAgICAgICAgICBkaXNwbGF5OiAnZ3JpZCcsXG4gICAgICAgICAgICAgIGdyaWRUZW1wbGF0ZUNvbHVtbnM6ICdyZXBlYXQoOCwgbWF4LWNvbnRlbnQpJyxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3Nob3dDYWxlbmRhcldlZWsgPyAoXG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjc3M9e3tcbiAgICAgICAgICAgICAgICAgIGp1c3RpZnlTZWxmOiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEwLFxuICAgICAgICAgICAgICAgICAgYm9yZGVyUmlnaHQ6IGAxcHggc29saWQgJHtncmF5fWAsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxUZXh0IGlkPVwiY2FsZW5kYXJXZWVrXCIgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8ZGl2IC8+XG4gICAgICAgICAgICApfVxuXG4gICAgICAgICAgICB7d2Vla0RheXMubWFwKChfdiwgd2Vla0RheSkgPT4gKFxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAga2V5PXt3ZWVrRGF5fVxuICAgICAgICAgICAgICAgIGNzcz17e1xuICAgICAgICAgICAgICAgICAganVzdGlmeVNlbGY6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgICAgcGFkZGluZzogMTAsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtmb3JtYXRXZWVrZGF5KHdlZWtEYXkpfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICkpfVxuXG4gICAgICAgICAgICB7d2Vla3MubWFwKCh3ZWVrLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB3ZWVrU3RhcnQgPSB3ZWVrWzBdIGFzIERhdGVPYmo7XG4gICAgICAgICAgICAgIGNvbnN0IHdlZWtFbmQgPSB3ZWVrWzZdIGFzIERhdGVPYmo7XG4gICAgICAgICAgICAgIGNvbnN0IHdlZWtEaXNhYmxlZCA9XG4gICAgICAgICAgICAgICAgIXJhbmdlU2VsZWN0IHx8XG4gICAgICAgICAgICAgICAgKG1pbkRhdGUgJiYgd2Vla0VuZC5kYXRlIDwgbWluRGF0ZSkgfHxcbiAgICAgICAgICAgICAgICAobWF4RGF0ZSAmJiB3ZWVrU3RhcnQuZGF0ZSA+IG1heERhdGUpO1xuXG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPEZyYWdtZW50IGtleT17aW5kZXh9PlxuICAgICAgICAgICAgICAgICAge3Nob3dDYWxlbmRhcldlZWsgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICBjc3M9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEwLFxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAnbm9uZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAndHJhbnNwYXJlbnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiB3ZWVrRGlzYWJsZWQgPyB1bmRlZmluZWQgOiAncG9pbnRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250OiAnaW5oZXJpdCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJSaWdodDogYDFweCBzb2xpZCAke2dyYXl9YCxcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3ZWVrRGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtaW4gPSBtaW5EYXRlICYmIHdlZWtTdGFydC5kYXRlIDwgbWluRGF0ZSA/IG1pbkRhdGUgOiB3ZWVrU3RhcnQuZGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1heCA9IG1heERhdGUgJiYgd2Vla0VuZC5kYXRlID4gbWF4RGF0ZSA/IG1heERhdGUgOiB3ZWVrRW5kLmRhdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXQobWluLCBtYXgpO1xuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7Z2V0Q2FsZW5kYXJXZWVrKCh3ZWVrWzBdIGFzIERhdGVPYmopLmRhdGUpfVxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgLz5cbiAgICAgICAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgICAgICAgIHt3ZWVrLm1hcCgoZGF0ZU9iamVjdCwgZGF5SW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFkYXRlT2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxkaXYga2V5PXtkYXlJbmRleH0gLz47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHByZXZNb250aCwgbmV4dE1vbnRoLCBkYXRlIH0gPSBkYXRlT2JqZWN0O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0b2RheSA9IHN0YXJ0T2ZEYXkoZGF0ZSkuZ2V0VGltZSgpID09PSBub3cuZ2V0VGltZSgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkaXNhYmxlZCA9IChtaW5EYXRlICYmIGRhdGUgPCBtaW5EYXRlKSB8fCAobWF4RGF0ZSAmJiBkYXRlID4gbWF4RGF0ZSk7XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPVxuICAgICAgICAgICAgICAgICAgICAgIGRhdGUuZ2V0VGltZSgpID09PSBtaW4/LmdldFRpbWUoKSB8fFxuICAgICAgICAgICAgICAgICAgICAgIChtaW4gJiYgbWF4ICYmIGRhdGVJbnRlcnNlY3QoZGF0ZSwgeyBtaW4sIG1heCB9KSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHByZVNlbGVjdGVkID1cbiAgICAgICAgICAgICAgICAgICAgICAhc2VsZWN0ZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAhZGlzYWJsZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAoZGF0ZS5nZXRUaW1lKCkgPT09IGhvdmVyZWQ/LmdldFRpbWUoKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgKG1pbiAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAhbWF4ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGhvdmVyZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZUludGVyc2VjdChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbiA8PSBob3ZlcmVkID8geyBtaW4sIG1heDogaG92ZXJlZCB9IDogeyBtaW46IGhvdmVyZWQsIG1heDogbWluIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICkpKTtcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YCR7aW5kZXh9LSR7ZGF5SW5kZXh9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17W1xuICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMTAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAnbm9uZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJ3RyYW5zcGFyZW50JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IGRpc2FibGVkID8gdW5kZWZpbmVkIDogJ3BvaW50ZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQ6ICdpbmhlcml0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKHByZXZNb250aCB8fCBuZXh0TW9udGgpICYmIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogZ3JheSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kYXkgJiYge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dGxpbmU6ICcxcHggc29saWQgdmFyKC0tc2Vjb25kYXJ5TWFpbiknLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZCAmJiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJ3ZhcigtLXByaW1hcnlNYWluKScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICd2YXIoLS1wcmltYXJ5Q29udHJhc3RUZXh0KScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByZVNlbGVjdGVkICYmIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAndmFyKC0tcHJpbWFyeUxpZ2h0KScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICd2YXIoLS1wcmltYXJ5Q29udHJhc3RUZXh0KScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBdfVxuICAgICAgICAgICAgICAgICAgICAgICAgey4uLmdldERhdGVQcm9wcyh7IGRhdGVPYmo6IGRhdGVPYmplY3QgfSl9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkaXJ0eSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtaW4pIHNldChtaW4sIGRhdGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugc2V0KGRhdGUsIG1heCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0KGRhdGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgb25Qb2ludGVyT3Zlcj17KCkgPT4gc2V0SG92ZXJlZChkYXRlKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uUG9pbnRlck91dD17KCkgPT4gc2V0SG92ZXJlZCh1bmRlZmluZWQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtkYXRlLmdldERhdGUoKX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgIDwvRnJhZ21lbnQ+XG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICApKX1cblxuICAgICAgPGRpdlxuICAgICAgICBjc3M9e3tcbiAgICAgICAgICBtYXJnaW5Ub3A6ICd2YXIoLS1zcGFjaW5nKScsXG4gICAgICAgICAgZGlzcGxheTogJ2dyaWQnLFxuICAgICAgICAgIGdyaWRBdXRvRmxvdzogJ2NvbHVtbicsXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICB7cmVzb2x2ZWRRdWlja09wdGlvbnN9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cbiJdfQ== */"), onClick: () => {
|
|
1164
|
+
if (weekDisabled) {
|
|
1165
|
+
return;
|
|
1166
|
+
}
|
|
1167
|
+
const min2 = minDate && weekStart.date < minDate ? minDate : weekStart.date;
|
|
1168
|
+
const max2 = maxDate && weekEnd.date > maxDate ? maxDate : weekEnd.date;
|
|
1169
|
+
set(min2, max2);
|
|
1170
|
+
}, children: getCalendarWeek(week[0].date) }) : /* @__PURE__ */ jsx("div", {}),
|
|
1171
|
+
week.map((dateObject, dayIndex) => {
|
|
1172
|
+
if (!dateObject) {
|
|
1173
|
+
return /* @__PURE__ */ jsx("div", {}, dayIndex);
|
|
1174
|
+
}
|
|
1175
|
+
const {
|
|
1176
|
+
prevMonth,
|
|
1177
|
+
nextMonth,
|
|
1178
|
+
date
|
|
1179
|
+
} = dateObject;
|
|
1180
|
+
const today2 = startOfDay(date).getTime() === now.getTime();
|
|
1181
|
+
const disabled = minDate && date < minDate || maxDate && date > maxDate;
|
|
1182
|
+
const selected = date.getTime() === (min == null ? void 0 : min.getTime()) || min && max && dateIntersect(date, {
|
|
1183
|
+
min,
|
|
1184
|
+
max
|
|
1185
|
+
});
|
|
1186
|
+
const preSelected = !selected && !disabled && (date.getTime() === (hovered == null ? void 0 : hovered.getTime()) || min && !max && hovered && dateIntersect(date, min <= hovered ? {
|
|
1187
|
+
min,
|
|
1188
|
+
max: hovered
|
|
1189
|
+
} : {
|
|
1190
|
+
min: hovered,
|
|
1191
|
+
max: min
|
|
1192
|
+
}));
|
|
1193
|
+
return /* @__PURE__ */ jsx("button", { css: [{
|
|
1194
|
+
padding: 10,
|
|
1195
|
+
border: "none",
|
|
1196
|
+
background: "transparent",
|
|
1197
|
+
cursor: disabled ? void 0 : "pointer",
|
|
1198
|
+
font: "inherit"
|
|
1199
|
+
}, (prevMonth || nextMonth) && {
|
|
1200
|
+
color: gray
|
|
1201
|
+
}, today2 && {
|
|
1202
|
+
outline: "1px solid var(--secondaryMain)"
|
|
1203
|
+
}, selected && {
|
|
1204
|
+
background: "var(--primaryMain)",
|
|
1205
|
+
color: "var(--primaryContrastText)"
|
|
1206
|
+
}, preSelected && {
|
|
1207
|
+
background: "var(--primaryLight)",
|
|
1208
|
+
color: "var(--primaryContrastText)"
|
|
1209
|
+
}, process.env.NODE_ENV === "production" ? "" : ";label:DatePicker;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3NjaHVtbWFyLXRhYmxlL3NjaHVtbWFyLXRhYmxlL3NyYy9jb21wb25lbnRzL2RhdGVQaWNrZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXNld0IiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvc2NodW1tYXItdGFibGUvc2NodW1tYXItdGFibGUvc3JjL2NvbXBvbmVudHMvZGF0ZVBpY2tlci50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRlT2JqLCB1c2VEYXl6ZWQgfSBmcm9tICdkYXl6ZWQnO1xuaW1wb3J0IHtcbiAgRnJhZ21lbnQsXG4gIFJlYWN0Tm9kZSxcbiAgY3JlYXRlQ29udGV4dCxcbiAgdXNlQ29udGV4dCxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICcuLi9ob29rcy91c2VUaGVtZSc7XG5pbXBvcnQgeyBkZWZhdWx0cyB9IGZyb20gJy4uL21pc2MvZGVmYXVsdHMnO1xuaW1wb3J0IHsgZ3JheSB9IGZyb20gJy4uL3RoZW1lL2RlZmF1bHRUaGVtZS9kZWZhdWx0Q2xhc3Nlcyc7XG5pbXBvcnQgeyB1c2VDc3NWYXJpYWJsZXMgfSBmcm9tICcuLi90aGVtZS91c2VDc3NWYXJpYWJsZXMnO1xuaW1wb3J0IHsgRGF0ZUlucHV0IH0gZnJvbSAnLi9kYXRlSW5wdXQnO1xuaW1wb3J0IHsgVGV4dCB9IGZyb20gJy4vdGV4dCc7XG5cbmV4cG9ydCB0eXBlIERhdGVSYW5nZSA9IHsgbWluOiBEYXRlOyBtYXg6IERhdGUgfTtcblxuZXhwb3J0IHR5cGUgRGF0ZVBpY2tlclF1aWNrT3B0aW9uID1cbiAgfCAndG9kYXknXG4gIHwgJ3RoaXNXZWVrJ1xuICB8ICd0aGlzTW9udGgnXG4gIHwgJ3RoaXNZZWFyJ1xuICB8ICdsYXN0U2V2ZW5EYXlzJ1xuICB8ICdsYXN0VGhpcnR5RGF5cydcbiAgfCB7IGxhYmVsOiBSZWFjdE5vZGU7IHZhbHVlOiBEYXRlIHwgRGF0ZVJhbmdlIHwgKCgpID0+IERhdGUgfCBEYXRlUmFuZ2UpIH1cbiAgfCAoKG9uQ2hhbmdlOiAodmFsdWU6IERhdGUgfCBEYXRlUmFuZ2UgfCBudWxsKSA9PiB2b2lkKSA9PiBSZWFjdE5vZGUpO1xuXG5leHBvcnQgdHlwZSBEYXRlUGlja2VyUHJvcHMgPSB7XG4gIC8qKiBDdXJyZW50bHkgc2VsZWN0ZWQgZGF5IG9yIHJhbmdlIG9mIGRheXMuICovXG4gIHZhbHVlOiBEYXRlIHwgRGF0ZVJhbmdlIHwgbnVsbDtcbiAgLyoqIENhbGxiYWNrIGZvciB3aGVuIHRoZSBkYXkgKHJhbmdlKSBjaGFuZ2VzLiAqL1xuICBvbkNoYW5nZTogKHZhbHVlOiBEYXRlIHwgRGF0ZVJhbmdlIHwgbnVsbCkgPT4gdm9pZDtcbiAgLyoqIElmIGVuYWJsZWQsIHJhbmdlcyBjYW4gYmUgc2VsZWN0ZWQuICovXG4gIHJhbmdlU2VsZWN0PzogYm9vbGVhbjtcbiAgLyoqIFdoaWNoIGxvY2FsZSB0byB1c2UgdG8gcmVuZGVyIHRoZSBjYWxlbmRhci4gKi9cbiAgbG9jYWxlPzogc3RyaW5nO1xuICAvKiogV2hpY2ggZGF5IG9mIHRoZSB3ZWVrIHNob3VsZCBiZSBpbiB0aGUgZmlyc3QgY29sdW1uLiAoMD1TdW5kYXksIDE9TW9uZGF5LCAuLi4pXG4gICAqIEBkZWZhdWx0IDFcbiAgICovXG4gIGZpcnN0RGF5T2ZXZWVrPzogMCB8IDEgfCAyIHwgMyB8IDQgfCA1IHwgNjtcbiAgLyoqIFdoaWNoIG1vbnRoIHRvIHNob3cgaW5pdGlhbGx5ICovXG4gIGRlZmF1bHREYXRlSW5WaWV3PzogRGF0ZTtcbiAgLyoqIFNob3cgYnV0dG9ucyB0byBxdWlja2x5IHNlbGVjdCBzdWdnZXN0ZWQgZGF0ZXMgb3IgZGF0ZSByYW5nZXMgKi9cbiAgcXVpY2tPcHRpb25zPzogRGF0ZVBpY2tlclF1aWNrT3B0aW9uW107XG4gIC8qKiBNaW5pbXVtIHNlbGVjdGFibGUgZGF0ZSAqL1xuICBtaW5EYXRlPzogRGF0ZTtcbiAgLyoqIE1heGltdW0gc2VsZWN0YWJsZSBkYXRlICovXG4gIG1heERhdGU/OiBEYXRlO1xuICAvKiogV2hldGhlciB0byBzaG93IHRoZSBjYWxlbmRhciB3ZWVrIGluIHRoZSBmaXJzdCBjb2x1bW4gKi9cbiAgc2hvd0NhbGVuZGFyV2Vlaz86IGJvb2xlYW47XG59O1xuXG5jb25zdCBEYXRlUGlja2VyQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8UGFydGlhbDxPbWl0PERhdGVQaWNrZXJQcm9wcywgJ3ZhbHVlJyB8ICdvbkNoYW5nZSc+Pj4oe30pO1xuXG5leHBvcnQgZnVuY3Rpb24gRGF0ZVBpY2tlclByb3ZpZGVyKHtcbiAgY2hpbGRyZW4sXG4gIC4uLnByb3BzXG59OiBQYXJ0aWFsPE9taXQ8RGF0ZVBpY2tlclByb3BzLCAndmFsdWUnIHwgJ29uQ2hhbmdlJz4+ICYgeyBjaGlsZHJlbj86IFJlYWN0Tm9kZSB9KSB7XG4gIGNvbnN0IHZhbHVlID0gdXNlTWVtbygoKSA9PiBwcm9wcywgW0pTT04uc3RyaW5naWZ5KHByb3BzKV0pO1xuXG4gIHJldHVybiA8RGF0ZVBpY2tlckNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3ZhbHVlfT57Y2hpbGRyZW59PC9EYXRlUGlja2VyQ29udGV4dC5Qcm92aWRlcj47XG59XG5cbmNvbnN0IHdlZWtEYXlzID0gWzAsIDEsIDIsIDMsIDQsIDUsIDZdIGFzIGNvbnN0O1xuXG4vKiogUm91bmRzIGEgZGF0ZSBkb3duIHRvIHRoZSBzdGFydCBvZiB0aGUgZGF5LiAqL1xuZXhwb3J0IGNvbnN0IHN0YXJ0T2ZEYXkgPSAoZDogRGF0ZSkgPT4gbmV3IERhdGUoZC5nZXRGdWxsWWVhcigpLCBkLmdldE1vbnRoKCksIGQuZ2V0RGF0ZSgpKTtcblxuLyoqIFJvdW5kcyBhIGRhdGUgdXAgdG8gdGhlIGVuZCBvZiB0aGUgZGF5LiAqL1xuZXhwb3J0IGNvbnN0IGVuZE9mRGF5ID0gKGQ6IERhdGUpID0+XG4gIG5ldyBEYXRlKGQuZ2V0RnVsbFllYXIoKSwgZC5nZXRNb250aCgpLCBkLmdldERhdGUoKSArIDEsIDAsIDAsIDAsIC0xKTtcblxuZXhwb3J0IGNvbnN0IGxhc3REYXlzID0gKGRheXM6IG51bWJlcik6IERhdGVSYW5nZSA9PiB7XG4gIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG4gIGNvbnN0IG1pbiA9IG5ldyBEYXRlKG5vdyk7XG4gIG1pbi5zZXREYXRlKG1pbi5nZXREYXRlKCkgLSBkYXlzICsgMSk7XG5cbiAgcmV0dXJuIHtcbiAgICBtaW46IHN0YXJ0T2ZEYXkobWluKSxcbiAgICBtYXg6IGVuZE9mRGF5KG5vdyksXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgdG9kYXkgPSAoKSA9PiBsYXN0RGF5cygxKTtcblxuZXhwb3J0IGNvbnN0IHRoaXNXZWVrID0gKGRlbHRhID0gMCwgZmlyc3REYXlPZldlZWsgPSAxKTogRGF0ZVJhbmdlID0+IHtcbiAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgY29uc3QgbWluID0gbmV3IERhdGUobm93KTtcblxuICBsZXQgZGlmZiA9IG1pbi5nZXREYXkoKSAtIGZpcnN0RGF5T2ZXZWVrO1xuICBpZiAoZGlmZiA8IDApIHtcbiAgICBkaWZmICs9IDc7XG4gIH1cbiAgbWluLnNldERhdGUobWluLmdldERhdGUoKSAtIGRpZmYgKyBkZWx0YSAqIDcpO1xuXG4gIGNvbnN0IG1heCA9IG5ldyBEYXRlKG1pbik7XG4gIG1heC5zZXREYXRlKG1heC5nZXREYXRlKCkgKyA2KTtcblxuICByZXR1cm4ge1xuICAgIG1pbjogc3RhcnRPZkRheShtaW4pLFxuICAgIG1heDogZW5kT2ZEYXkobWF4KSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCB0aGlzTW9udGggPSAoZGVsdGEgPSAwKTogRGF0ZVJhbmdlID0+IHtcbiAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgY29uc3QgbWluID0gbmV3IERhdGUobm93KTtcbiAgbWluLnNldERhdGUoMSk7XG4gIG1pbi5zZXRNb250aChtaW4uZ2V0TW9udGgoKSArIGRlbHRhKTtcbiAgY29uc3QgbWF4ID0gbmV3IERhdGUobWluKTtcbiAgbWF4LnNldE1vbnRoKG1heC5nZXRNb250aCgpICsgMSk7XG4gIG1heC5zZXREYXRlKG1heC5nZXREYXRlKCkgLSAxKTtcblxuICByZXR1cm4ge1xuICAgIG1pbjogc3RhcnRPZkRheShtaW4pLFxuICAgIG1heDogZW5kT2ZEYXkobWF4KSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCB0aGlzWWVhciA9IChkZWx0YSA9IDApOiBEYXRlUmFuZ2UgPT4ge1xuICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuICBjb25zdCBtaW4gPSBuZXcgRGF0ZShub3cpO1xuICBtaW4uc2V0RGF0ZSgxKTtcbiAgbWluLnNldE1vbnRoKDApO1xuICBtaW4uc2V0RnVsbFllYXIobWluLmdldEZ1bGxZZWFyKCkgKyBkZWx0YSk7XG4gIGNvbnN0IG1heCA9IG5ldyBEYXRlKG1pbik7XG4gIG1heC5zZXRGdWxsWWVhcihtYXguZ2V0RnVsbFllYXIoKSArIDEpO1xuICBtYXguc2V0RGF0ZShtYXguZ2V0RGF0ZSgpIC0gMSk7XG5cbiAgcmV0dXJuIHtcbiAgICBtaW46IHN0YXJ0T2ZEYXkobWluKSxcbiAgICBtYXg6IGVuZE9mRGF5KG1heCksXG4gIH07XG59O1xuXG5jb25zdCBNU19QRVJfREFZID0gMTAwMCAqIDYwICogNjAgKiAyNDtcbmV4cG9ydCBjb25zdCBnZXRDYWxlbmRhcldlZWsgPSAoZGF0ZTogRGF0ZSk6IG51bWJlciA9PiB7XG4gIC8vIElTTyA4NjAxOiBXZWVrIDEgaXMgdGhlIHdlZWsgd2l0aCB0aGUgZmlyc3QgVGh1cnNkYXkgb2YgdGhlIHllYXIuXG4gIC8vIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT193ZWVrX2RhdGVcblxuICBjb25zdCB5ID0gZGF0ZS5nZXRGdWxsWWVhcigpO1xuICBjb25zdCBmZG95ID0gbmV3IERhdGUoeSwgMCwgMSk7XG4gIGNvbnN0IGRveSA9IE1hdGguZmxvb3IoXG4gICAgKGRhdGUuZ2V0VGltZSgpIC0gZmRveS5nZXRUaW1lKCkgKyAoZGF0ZS5nZXRUaW1lem9uZU9mZnNldCgpIC0gZmRveS5nZXRUaW1lem9uZU9mZnNldCgpKSkgL1xuICAgICAgTVNfUEVSX0RBWSxcbiAgKTtcbiAgY29uc3QgZG93ID0gZmRveS5nZXREYXkoKTtcbiAgY29uc3QgdyA9IE1hdGguZmxvb3IoKDEwICsgZG95IC0gZG93KSAvIDcpO1xuXG4gIGlmICh3ID09PSAwKSB7XG4gICAgcmV0dXJuIGdldENhbGVuZGFyV2VlayhuZXcgRGF0ZSh5IC0gMSwgMTEsIDMxKSk7XG4gIH1cblxuICByZXR1cm4gdztcbn07XG5cbmV4cG9ydCBjb25zdCBjb21tb25RdWlja09wdGlvbnMgPSB7XG4gIHRvZGF5OiB7IGxhYmVsOiA8VGV4dCBpZD1cInRvZGF5XCIgLz4sIHZhbHVlOiB0b2RheSB9LFxuICB0aGlzV2VlazogeyBsYWJlbDogPFRleHQgaWQ9XCJ0aGlzV2Vla1wiIC8+LCB2YWx1ZTogKHByb3BzKSA9PiB0aGlzV2VlaygwLCBwcm9wcy5maXJzdERheU9mV2VlaykgfSxcbiAgdGhpc01vbnRoOiB7IGxhYmVsOiA8VGV4dCBpZD1cInRoaXNNb250aFwiIC8+LCB2YWx1ZTogKCkgPT4gdGhpc01vbnRoKCkgfSxcbiAgdGhpc1llYXI6IHsgbGFiZWw6IDxUZXh0IGlkPVwidGhpc1llYXJcIiAvPiwgdmFsdWU6ICgpID0+IHRoaXNZZWFyKCkgfSxcbiAgbGFzdFNldmVuRGF5czogeyBsYWJlbDogPFRleHQgaWQ9XCJsYXN0U2V2ZW5EYXlzXCIgLz4sIHZhbHVlOiAoKSA9PiBsYXN0RGF5cyg3KSB9LFxuICBsYXN0VGhpcnR5RGF5czogeyBsYWJlbDogPFRleHQgaWQ9XCJsYXN0VGhpcnR5RGF5c1wiIC8+LCB2YWx1ZTogKCkgPT4gbGFzdERheXMoMzApIH0sXG59IHNhdGlzZmllcyBSZWNvcmQ8XG4gIERhdGVQaWNrZXJRdWlja09wdGlvbiAmIHN0cmluZyxcbiAgeyBsYWJlbDogUmVhY3ROb2RlOyB2YWx1ZTogRGF0ZSB8IERhdGVSYW5nZSB8ICgocHJvcHM6IERhdGVQaWNrZXJQcm9wcykgPT4gRGF0ZSB8IERhdGVSYW5nZSkgfVxuPjtcblxuLyoqIFJldHVybnMgd2hldGhlciB0d28gZGF0ZXMgYW5kL29yIGRhdGUgcmFuZ2VzIGludGVyc2VjdC4gSW50ZXJzZWN0aW9uIGlzIGNvbnNpZGVyZWQgcGVyIGRheS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkYXRlSW50ZXJzZWN0KGE6IERhdGUgfCBudWxsIHwgRGF0ZVJhbmdlLCBiOiBEYXRlIHwgbnVsbCB8IERhdGVSYW5nZSkge1xuICBpZiAoYSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICBhID0geyBtaW46IGEsIG1heDogYSB9O1xuICB9XG4gIGlmIChiIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgIGIgPSB7IG1pbjogYiwgbWF4OiBiIH07XG4gIH1cblxuICBpZiAoIWE/Lm1pbiB8fCAhYS5tYXggfHwgIWI/Lm1pbiB8fCAhYi5tYXgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gIShlbmRPZkRheShhLm1heCkgPCBzdGFydE9mRGF5KGIubWluKSB8fCBzdGFydE9mRGF5KGEubWluKSA+IGVuZE9mRGF5KGIubWF4KSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkYXRlQ2xhbXAoZGF0ZTogRGF0ZSwgbWluPzogRGF0ZSwgbWF4PzogRGF0ZSkge1xuICBpZiAobWluICYmIGRhdGUgPCBtaW4pIHtcbiAgICByZXR1cm4gbWluO1xuICB9XG5cbiAgaWYgKG1heCAmJiBkYXRlID4gbWF4KSB7XG4gICAgcmV0dXJuIG1heDtcbiAgfVxuXG4gIHJldHVybiBkYXRlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gRGF0ZVBpY2tlcihwcm9wczogRGF0ZVBpY2tlclByb3BzKSB7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KERhdGVQaWNrZXJDb250ZXh0KTtcblxuICBjb25zdCB7XG4gICAgdmFsdWUsXG4gICAgcmFuZ2VTZWxlY3QsXG4gICAgbG9jYWxlLFxuICAgIGZpcnN0RGF5T2ZXZWVrID0gMSxcbiAgICBkZWZhdWx0RGF0ZUluVmlldyxcbiAgICBxdWlja09wdGlvbnMgPSBbJ3RvZGF5JywgJ3RoaXNXZWVrJ10sXG4gICAgbWluRGF0ZSxcbiAgICBtYXhEYXRlLFxuICAgIHNob3dDYWxlbmRhcldlZWssXG4gIH0gPSBkZWZhdWx0czxEYXRlUGlja2VyUHJvcHM+KHByb3BzLCBjb250ZXh0KTtcblxuICBmdW5jdGlvbiBvbkNoYW5nZSh2YWx1ZTogRGF0ZSB8IERhdGVSYW5nZSB8IG51bGwpIHtcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICB2YWx1ZSA9IGRhdGVDbGFtcCh2YWx1ZSwgbWluRGF0ZSwgbWF4RGF0ZSk7XG4gICAgfSBlbHNlIGlmICh2YWx1ZSkge1xuICAgICAgdmFsdWUgPSB7XG4gICAgICAgIG1pbjogZGF0ZUNsYW1wKHZhbHVlLm1pbiwgbWluRGF0ZSwgbWF4RGF0ZSksXG4gICAgICAgIG1heDogZGF0ZUNsYW1wKHZhbHVlLm1heCwgbWluRGF0ZSwgbWF4RGF0ZSksXG4gICAgICB9O1xuICAgIH1cblxuICAgIHByb3BzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgfVxuXG4gIGNvbnN0IEJ1dHRvbiA9IHVzZVRoZW1lKCh0KSA9PiB0LmNvbXBvbmVudHMuQnV0dG9uKTtcbiAgY29uc3QgSWNvbkJ1dHRvbiA9IHVzZVRoZW1lKCh0KSA9PiB0LmNvbXBvbmVudHMuSWNvbkJ1dHRvbik7XG4gIGNvbnN0IENoZXZyb25SaWdodCA9IHVzZVRoZW1lKCh0KSA9PiB0Lmljb25zLkNoZXZyb25SaWdodCk7XG4gIGNvbnN0IGNzc1ZhcmlhYmxlcyA9IHVzZUNzc1ZhcmlhYmxlcygpO1xuXG4gIGNvbnN0IG1vdW50VGltZSA9IHVzZU1lbW8oKCkgPT4gbmV3IERhdGUoKSwgW10pO1xuICBjb25zdCBbZGF0ZUluVmlldywgc2V0RGF0ZUluVmlld10gPSB1c2VTdGF0ZTxEYXRlPihkZWZhdWx0RGF0ZUluVmlldyA/PyBtb3VudFRpbWUpO1xuICBjb25zdCBbZGlydHksIHNldERpcnR5XSA9IHVzZVN0YXRlPFBhcnRpYWw8RGF0ZVJhbmdlPj4oKTtcbiAgY29uc3QgW2hvdmVyZWQsIHNldEhvdmVyZWRdID0gdXNlU3RhdGU8RGF0ZT4oKTtcblxuICBjb25zdCBtaW4gPSBkaXJ0eSA/IGRpcnR5Lm1pbiA6IHZhbHVlIGluc3RhbmNlb2YgRGF0ZSA/IHZhbHVlIDogdmFsdWU/Lm1pbjtcbiAgY29uc3QgbWF4ID0gZGlydHkgPyBkaXJ0eS5tYXggOiB2YWx1ZSBpbnN0YW5jZW9mIERhdGUgPyB2YWx1ZSA6IHZhbHVlPy5tYXg7XG5cbiAgY29uc3QgcmVzb2x2ZWRRdWlja09wdGlvbnMgPSBbLi4ucXVpY2tPcHRpb25zLCB7IGxhYmVsOiA8VGV4dCBpZD1cInJlc2V0XCIgLz4sIHZhbHVlOiBudWxsIH1dLm1hcChcbiAgICAob3B0aW9uLCBpbmRleCkgPT4ge1xuICAgICAgaWYgKG9wdGlvbiBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG4gICAgICAgIHJldHVybiBvcHRpb24oKHZhbHVlKSA9PiB7XG4gICAgICAgICAgc2V0RGlydHkodW5kZWZpbmVkKTtcbiAgICAgICAgICBvbkNoYW5nZSh2YWx1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB7IGxhYmVsLCB2YWx1ZSB9ID0gdHlwZW9mIG9wdGlvbiA9PT0gJ3N0cmluZycgPyBjb21tb25RdWlja09wdGlvbnNbb3B0aW9uXSA6IG9wdGlvbjtcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPEJ1dHRvblxuICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgdmFyaWFudD1cInRleHRcIlxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIHNldERpcnR5KHVuZGVmaW5lZCk7XG5cbiAgICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG4gICAgICAgICAgICAgIG9uQ2hhbmdlKHZhbHVlKHByb3BzKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBvbkNoYW5nZSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgPC9CdXR0b24+XG4gICAgICApO1xuICAgIH0sXG4gICk7XG5cbiAgY29uc3QgeyBjYWxlbmRhcnMsIGdldEJhY2tQcm9wcywgZ2V0Rm9yd2FyZFByb3BzLCBnZXREYXRlUHJvcHMgfSA9IHVzZURheXplZCh7XG4gICAgb25EYXRlU2VsZWN0ZWQ6ICgpID0+IHVuZGVmaW5lZCxcbiAgICBmaXJzdERheU9mV2VlayxcbiAgICBzaG93T3V0c2lkZURheXM6IHRydWUsXG4gICAgZGF0ZTogZGF0ZUluVmlldyxcbiAgICBvbk9mZnNldENoYW5nZWQ6IChvZmZzZXQpID0+XG4gICAgICBzZXREYXRlSW5WaWV3KG5ldyBEYXRlKGRhdGVJblZpZXcuZ2V0RnVsbFllYXIoKSwgZGF0ZUluVmlldy5nZXRNb250aCgpICsgb2Zmc2V0KSksXG4gICAgb2Zmc2V0OiAwLFxuICAgIG1pbkRhdGUsXG4gICAgbWF4RGF0ZSxcbiAgfSk7XG4gIGNvbnN0IG5vdyA9IHVzZU1lbW8oKCkgPT4gc3RhcnRPZkRheShuZXcgRGF0ZSgpKSwgW10pO1xuXG4gIGNvbnN0IGZvcm1hdFdlZWtkYXkgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCB7IGZvcm1hdCB9ID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQobG9jYWxlLCB7IHdlZWtkYXk6ICdzaG9ydCcgfSk7XG4gICAgcmV0dXJuICh3ZWVrRGF5OiBudW1iZXIpID0+XG4gICAgICBmb3JtYXQobmV3IERhdGUoRGF0ZS5VVEMoMjAyMSwgNywgKCh3ZWVrRGF5ICsgZmlyc3REYXlPZldlZWspICUgNykgKyAxKSkpO1xuICB9LCBbbG9jYWxlLCBmaXJzdERheU9mV2Vla10pO1xuXG4gIHVzZUVmZmVjdChcbiAgICAoKSA9PlxuICAgICAgc2V0RGF0ZUluVmlldyhcbiAgICAgICAgdmFsdWUgPT09IG51bGwgPyBkZWZhdWx0RGF0ZUluVmlldyA/PyBtb3VudFRpbWUgOiB2YWx1ZSBpbnN0YW5jZW9mIERhdGUgPyB2YWx1ZSA6IHZhbHVlLm1heCxcbiAgICAgICksXG4gICAgW3ZhbHVlLCBkZWZhdWx0RGF0ZUluVmlldywgbW91bnRUaW1lXSxcbiAgKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghcmFuZ2VTZWxlY3QpIHtcbiAgICAgIHNldERpcnR5KHVuZGVmaW5lZCk7XG4gICAgfVxuICB9LCBbcmFuZ2VTZWxlY3RdKTtcblxuICBmdW5jdGlvbiBzZXQobWluPzogRGF0ZSwgbWF4PzogRGF0ZSwgZWRpdD86ICdtaW4nIHwgJ21heCcpIHtcbiAgICBpZiAoIXJhbmdlU2VsZWN0KSB7XG4gICAgICBvbkNoYW5nZShtaW4gPz8gbnVsbCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKG1pbiAmJiBtYXggJiYgbWluID4gbWF4KSB7XG4gICAgICBpZiAoZWRpdCA9PT0gJ21pbicpIHtcbiAgICAgICAgbWF4ID0gbWluO1xuICAgICAgfSBlbHNlIGlmIChlZGl0ID09PSAnbWF4Jykge1xuICAgICAgICBtaW4gPSBtYXg7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBbbWluLCBtYXhdID0gW21heCwgbWluXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIW1pbiA9PT0gIW1heCkge1xuICAgICAgc2V0RGlydHkodW5kZWZpbmVkKTtcbiAgICAgIG9uQ2hhbmdlKG1pbiAmJiBtYXggPyB7IG1pbiwgbWF4OiBlbmRPZkRheShtYXgpIH0gOiBudWxsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0RGlydHkoeyBtaW4sIG1heCB9KTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBmb3JtYXRNb250aCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHsgZm9ybWF0IH0gPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NhbGUsIHsgbW9udGg6ICdsb25nJyB9KTtcbiAgICByZXR1cm4gKG1vbnRoOiBudW1iZXIpID0+IGZvcm1hdChuZXcgRGF0ZSgyMDIxLCBtb250aCkpO1xuICB9LCBbbG9jYWxlXSk7XG5cbiAgY29uc3QgZm9ybWF0WWVhciA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHsgZm9ybWF0IH0gPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NhbGUsIHsgeWVhcjogJ251bWVyaWMnIH0pO1xuICAgIHJldHVybiAoeWVhcjogbnVtYmVyKSA9PiBmb3JtYXQobmV3IERhdGUoeWVhciwgMCwgMSkpO1xuICB9LCBbbG9jYWxlXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNzcz17Y3NzVmFyaWFibGVzfT5cbiAgICAgIDxkaXZcbiAgICAgICAgY3NzPXt7XG4gICAgICAgICAgZGlzcGxheTogJ2dyaWQnLFxuICAgICAgICAgIGdyaWRBdXRvRmxvdzogJ2NvbHVtbicsXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgIGFsaWduSXRlbXM6ICdiYXNlbGluZScsXG4gICAgICAgICAgZ2FwOiAndmFyKC0tc3BhY2luZyknLFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8RGF0ZUlucHV0XG4gICAgICAgICAgdmFsdWU9e21pbiA/PyBudWxsfVxuICAgICAgICAgIG9uQ2hhbmdlPXsoZGF0ZSkgPT4gc2V0KGRhdGUgPz8gdW5kZWZpbmVkLCBtYXgsICdtaW4nKX1cbiAgICAgICAgICBsb2NhbGU9e2xvY2FsZX1cbiAgICAgICAgLz5cblxuICAgICAgICB7cmFuZ2VTZWxlY3QgJiYgKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICB7JyAtICd9XG4gICAgICAgICAgICA8RGF0ZUlucHV0XG4gICAgICAgICAgICAgIHZhbHVlPXttYXggPz8gbnVsbH1cbiAgICAgICAgICAgICAgb25DaGFuZ2U9eyhkYXRlKSA9PiBzZXQobWluLCBkYXRlID8/IHVuZGVmaW5lZCwgJ21heCcpfVxuICAgICAgICAgICAgICBsb2NhbGU9e2xvY2FsZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cblxuICAgICAge2NhbGVuZGFycy5tYXAoKHsgbW9udGgsIHllYXIsIHdlZWtzIH0pID0+IChcbiAgICAgICAgPGRpdiBrZXk9e2Ake21vbnRofSR7eWVhcn1gfSBjc3M9e3sgZGlzcGxheTogJ2dyaWQnIH19PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNzcz17e1xuICAgICAgICAgICAgICBtYXJnaW46ICdjYWxjKHZhcigtLXNwYWNpbmcpICogNCkgMCcsXG4gICAgICAgICAgICAgIGRpc3BsYXk6ICdncmlkJyxcbiAgICAgICAgICAgICAgZ3JpZEF1dG9GbG93OiAnY29sdW1uJyxcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1iZXR3ZWVuJyxcbiAgICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxJY29uQnV0dG9uIHsuLi5nZXRCYWNrUHJvcHMoeyBjYWxlbmRhcnMgfSl9PlxuICAgICAgICAgICAgICA8Q2hldnJvblJpZ2h0IGNzcz17eyB0cmFuc2Zvcm06ICdyb3RhdGUzZCgwLCAwLCAxLCAxODBkZWcpJyB9fSAvPlxuICAgICAgICAgICAgPC9JY29uQnV0dG9uPlxuXG4gICAgICAgICAgICA8ZGl2IGNzcz17eyBkaXNwbGF5OiAnZmxleCcgfX0+XG4gICAgICAgICAgICAgIHtmb3JtYXRNb250aChtb250aCl9IHtmb3JtYXRZZWFyKHllYXIpfVxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxJY29uQnV0dG9uIHsuLi5nZXRGb3J3YXJkUHJvcHMoeyBjYWxlbmRhcnMgfSl9PlxuICAgICAgICAgICAgICA8Q2hldnJvblJpZ2h0IC8+XG4gICAgICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjc3M9e3tcbiAgICAgICAgICAgICAganVzdGlmeVNlbGY6ICdjZW50ZXInLFxuICAgICAgICAgICAgICBkaXNwbGF5OiAnZ3JpZCcsXG4gICAgICAgICAgICAgIGdyaWRUZW1wbGF0ZUNvbHVtbnM6ICdyZXBlYXQoOCwgbWF4LWNvbnRlbnQpJyxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3Nob3dDYWxlbmRhcldlZWsgPyAoXG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjc3M9e3tcbiAgICAgICAgICAgICAgICAgIGp1c3RpZnlTZWxmOiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEwLFxuICAgICAgICAgICAgICAgICAgYm9yZGVyUmlnaHQ6IGAxcHggc29saWQgJHtncmF5fWAsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxUZXh0IGlkPVwiY2FsZW5kYXJXZWVrXCIgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8ZGl2IC8+XG4gICAgICAgICAgICApfVxuXG4gICAgICAgICAgICB7d2Vla0RheXMubWFwKChfdiwgd2Vla0RheSkgPT4gKFxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAga2V5PXt3ZWVrRGF5fVxuICAgICAgICAgICAgICAgIGNzcz17e1xuICAgICAgICAgICAgICAgICAganVzdGlmeVNlbGY6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgICAgcGFkZGluZzogMTAsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtmb3JtYXRXZWVrZGF5KHdlZWtEYXkpfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICkpfVxuXG4gICAgICAgICAgICB7d2Vla3MubWFwKCh3ZWVrLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB3ZWVrU3RhcnQgPSB3ZWVrWzBdIGFzIERhdGVPYmo7XG4gICAgICAgICAgICAgIGNvbnN0IHdlZWtFbmQgPSB3ZWVrWzZdIGFzIERhdGVPYmo7XG4gICAgICAgICAgICAgIGNvbnN0IHdlZWtEaXNhYmxlZCA9XG4gICAgICAgICAgICAgICAgIXJhbmdlU2VsZWN0IHx8XG4gICAgICAgICAgICAgICAgKG1pbkRhdGUgJiYgd2Vla0VuZC5kYXRlIDwgbWluRGF0ZSkgfHxcbiAgICAgICAgICAgICAgICAobWF4RGF0ZSAmJiB3ZWVrU3RhcnQuZGF0ZSA+IG1heERhdGUpO1xuXG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPEZyYWdtZW50IGtleT17aW5kZXh9PlxuICAgICAgICAgICAgICAgICAge3Nob3dDYWxlbmRhcldlZWsgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICBjc3M9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEwLFxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAnbm9uZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAndHJhbnNwYXJlbnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiB3ZWVrRGlzYWJsZWQgPyB1bmRlZmluZWQgOiAncG9pbnRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250OiAnaW5oZXJpdCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJSaWdodDogYDFweCBzb2xpZCAke2dyYXl9YCxcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3ZWVrRGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtaW4gPSBtaW5EYXRlICYmIHdlZWtTdGFydC5kYXRlIDwgbWluRGF0ZSA/IG1pbkRhdGUgOiB3ZWVrU3RhcnQuZGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1heCA9IG1heERhdGUgJiYgd2Vla0VuZC5kYXRlID4gbWF4RGF0ZSA/IG1heERhdGUgOiB3ZWVrRW5kLmRhdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXQobWluLCBtYXgpO1xuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7Z2V0Q2FsZW5kYXJXZWVrKCh3ZWVrWzBdIGFzIERhdGVPYmopLmRhdGUpfVxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgLz5cbiAgICAgICAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgICAgICAgIHt3ZWVrLm1hcCgoZGF0ZU9iamVjdCwgZGF5SW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFkYXRlT2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxkaXYga2V5PXtkYXlJbmRleH0gLz47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHByZXZNb250aCwgbmV4dE1vbnRoLCBkYXRlIH0gPSBkYXRlT2JqZWN0O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0b2RheSA9IHN0YXJ0T2ZEYXkoZGF0ZSkuZ2V0VGltZSgpID09PSBub3cuZ2V0VGltZSgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkaXNhYmxlZCA9IChtaW5EYXRlICYmIGRhdGUgPCBtaW5EYXRlKSB8fCAobWF4RGF0ZSAmJiBkYXRlID4gbWF4RGF0ZSk7XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPVxuICAgICAgICAgICAgICAgICAgICAgIGRhdGUuZ2V0VGltZSgpID09PSBtaW4/LmdldFRpbWUoKSB8fFxuICAgICAgICAgICAgICAgICAgICAgIChtaW4gJiYgbWF4ICYmIGRhdGVJbnRlcnNlY3QoZGF0ZSwgeyBtaW4sIG1heCB9KSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHByZVNlbGVjdGVkID1cbiAgICAgICAgICAgICAgICAgICAgICAhc2VsZWN0ZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAhZGlzYWJsZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAoZGF0ZS5nZXRUaW1lKCkgPT09IGhvdmVyZWQ/LmdldFRpbWUoKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgKG1pbiAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAhbWF4ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGhvdmVyZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZUludGVyc2VjdChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbiA8PSBob3ZlcmVkID8geyBtaW4sIG1heDogaG92ZXJlZCB9IDogeyBtaW46IGhvdmVyZWQsIG1heDogbWluIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICkpKTtcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YCR7aW5kZXh9LSR7ZGF5SW5kZXh9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17W1xuICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMTAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAnbm9uZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJ3RyYW5zcGFyZW50JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IGRpc2FibGVkID8gdW5kZWZpbmVkIDogJ3BvaW50ZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQ6ICdpbmhlcml0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKHByZXZNb250aCB8fCBuZXh0TW9udGgpICYmIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogZ3JheSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kYXkgJiYge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dGxpbmU6ICcxcHggc29saWQgdmFyKC0tc2Vjb25kYXJ5TWFpbiknLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZCAmJiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJ3ZhcigtLXByaW1hcnlNYWluKScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICd2YXIoLS1wcmltYXJ5Q29udHJhc3RUZXh0KScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByZVNlbGVjdGVkICYmIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAndmFyKC0tcHJpbWFyeUxpZ2h0KScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICd2YXIoLS1wcmltYXJ5Q29udHJhc3RUZXh0KScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBdfVxuICAgICAgICAgICAgICAgICAgICAgICAgey4uLmdldERhdGVQcm9wcyh7IGRhdGVPYmo6IGRhdGVPYmplY3QgfSl9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkaXJ0eSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtaW4pIHNldChtaW4sIGRhdGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugc2V0KGRhdGUsIG1heCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0KGRhdGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgb25Qb2ludGVyT3Zlcj17KCkgPT4gc2V0SG92ZXJlZChkYXRlKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uUG9pbnRlck91dD17KCkgPT4gc2V0SG92ZXJlZCh1bmRlZmluZWQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtkYXRlLmdldERhdGUoKX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgIDwvRnJhZ21lbnQ+XG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICApKX1cblxuICAgICAgPGRpdlxuICAgICAgICBjc3M9e3tcbiAgICAgICAgICBtYXJnaW5Ub3A6ICd2YXIoLS1zcGFjaW5nKScsXG4gICAgICAgICAgZGlzcGxheTogJ2dyaWQnLFxuICAgICAgICAgIGdyaWRBdXRvRmxvdzogJ2NvbHVtbicsXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICB7cmVzb2x2ZWRRdWlja09wdGlvbnN9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cbiJdfQ== */"], ...getDateProps({
|
|
1210
|
+
dateObj: dateObject
|
|
1211
|
+
}), onClick: () => {
|
|
1212
|
+
if (dirty) {
|
|
1213
|
+
if (min)
|
|
1214
|
+
set(min, date);
|
|
1215
|
+
else
|
|
1216
|
+
set(date, max);
|
|
1217
|
+
} else {
|
|
1218
|
+
set(date);
|
|
1219
|
+
}
|
|
1220
|
+
}, onPointerOver: () => setHovered(date), onPointerOut: () => setHovered(void 0), disabled, children: date.getDate() }, `${index}-${dayIndex}`);
|
|
1221
|
+
})
|
|
1222
|
+
] }, index);
|
|
1223
|
+
})
|
|
1165
1224
|
] })
|
|
1166
1225
|
] }, `${month}${year}`)),
|
|
1167
1226
|
/* @__PURE__ */ jsx("div", { css: _ref8, children: resolvedQuickOptions })
|
|
@@ -1198,7 +1257,7 @@ var _ref$c = process.env.NODE_ENV === "production" ? {
|
|
|
1198
1257
|
} : {
|
|
1199
1258
|
name: "vangi7-DateFilter",
|
|
1200
1259
|
styles: "padding:calc(var(--spacing) * 2);display:grid;label:DateFilter;",
|
|
1201
|
-
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
1260
|
+
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3NjaHVtbWFyLXRhYmxlL3NjaHVtbWFyLXRhYmxlL3NyYy9jb21wb25lbnRzL2RhdGVGaWx0ZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXFFTSIsImZpbGUiOiIvaG9tZS9ydW5uZXIvd29yay9zY2h1bW1hci10YWJsZS9zY2h1bW1hci10YWJsZS9zcmMvY29tcG9uZW50cy9kYXRlRmlsdGVyLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZUZpbHRlciB9IGZyb20gJy4uL2hvb2tzL3VzZUZpbHRlcic7XG5pbXBvcnQgdHlwZSB7IENvbW1vbkZpbHRlclByb3BzIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHR5cGUgeyBEYXRlUGlja2VyUHJvcHMsIERhdGVSYW5nZSB9IGZyb20gJy4vZGF0ZVBpY2tlcic7XG5pbXBvcnQgeyBkYXRlSW50ZXJzZWN0LCBEYXRlUGlja2VyIH0gZnJvbSAnLi9kYXRlUGlja2VyJztcblxuZnVuY3Rpb24gY29udmVydERhdGUoeDogdW5rbm93bik6IERhdGUgfCBudWxsIHtcbiAgaWYgKHggaW5zdGFuY2VvZiBEYXRlKSByZXR1cm4geDtcbiAgaWYgKHR5cGVvZiB4ID09PSAnbnVtYmVyJyB8fCB0eXBlb2YgeCA9PT0gJ3N0cmluZycpIHJldHVybiBuZXcgRGF0ZSh4KTtcbiAgcmV0dXJuIG51bGw7XG59XG5cbmZ1bmN0aW9uIGNvbnZlcnREYXRlT3JSYW5nZSh4OiB1bmtub3duKTogRGF0ZSB8IERhdGVSYW5nZSB8IG51bGwge1xuICBpZiAoeCBpbnN0YW5jZW9mIE9iamVjdCAmJiAnbWluJyBpbiB4ICYmICdtYXgnIGluIHgpIHtcbiAgICBjb25zdCByYW5nZSA9IHtcbiAgICAgIG1pbjogY29udmVydERhdGUoKHggYXMgYW55KS5taW4pLFxuICAgICAgbWF4OiBjb252ZXJ0RGF0ZSgoeCBhcyBhbnkpLm1heCksXG4gICAgfTtcbiAgICByZXR1cm4gcmFuZ2UubWluICYmIHJhbmdlLm1heCA/IChyYW5nZSBhcyBEYXRlUmFuZ2UpIDogbnVsbDtcbiAgfVxuICByZXR1cm4gY29udmVydERhdGUoeCk7XG59XG5cbmZ1bmN0aW9uIGNvbnZlcnREYXRlT3JBcnJheSh4OiB1bmtub3duKTogRGF0ZSB8IERhdGVSYW5nZSB8IChEYXRlIHwgRGF0ZVJhbmdlKVtdIHwgbnVsbCB7XG4gIGlmIChBcnJheS5pc0FycmF5KHgpKSByZXR1cm4geC5tYXAoY29udmVydERhdGVPclJhbmdlKS5maWx0ZXIoQm9vbGVhbikgYXMgKERhdGUgfCBEYXRlUmFuZ2UpW107XG4gIHJldHVybiBjb252ZXJ0RGF0ZU9yUmFuZ2UoeCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBEYXRlRmlsdGVyPFQsIFY+KHtcbiAgbG9jYWxlLFxuICBmaXJzdERheU9mV2VlayxcbiAgZGVmYXVsdERhdGVJblZpZXcsXG4gIHF1aWNrT3B0aW9ucyxcbiAgc2luZ2xlU2VsZWN0LFxuICBmaWx0ZXJCeSA9IGNvbnZlcnREYXRlT3JBcnJheSxcbiAgbWluRGF0ZSxcbiAgbWF4RGF0ZSxcbiAgc2hvd0NhbGVuZGFyV2VlayxcbiAgLi4ucHJvcHNcbn06IHtcbiAgLyoqIElmIGVuYWJsZWQsIG9ubHkgc2luZ2xlIGRheXMgY2FuIGJlIHNlbGVjdGVkLiBSYW5nZXMgb3RoZXJ3aXNlLiAqL1xuICBzaW5nbGVTZWxlY3Q/OiBib29sZWFuO1xufSAmIFBpY2s8XG4gIERhdGVQaWNrZXJQcm9wcyxcbiAgfCAnbG9jYWxlJ1xuICB8ICdmaXJzdERheU9mV2VlaydcbiAgfCAnZGVmYXVsdERhdGVJblZpZXcnXG4gIHwgJ3F1aWNrT3B0aW9ucydcbiAgfCAnbWluRGF0ZSdcbiAgfCAnbWF4RGF0ZSdcbiAgfCAnc2hvd0NhbGVuZGFyV2Vlaydcbj4gJlxuICBDb21tb25GaWx0ZXJQcm9wczxULCBWLCBEYXRlIHwgRGF0ZVJhbmdlIHwgbnVsbCwgRGF0ZSB8IERhdGVSYW5nZSB8IG51bGw+KTogSlNYLkVsZW1lbnQge1xuICBjb25zdCB7IHZhbHVlID0gbnVsbCwgb25DaGFuZ2UgfSA9IHVzZUZpbHRlcih7XG4gICAgLi4ucHJvcHMsXG4gICAgZmlsdGVyQnksXG5cbiAgICBpZDogJ2RhdGVGaWx0ZXInLFxuXG4gICAgaXNBY3RpdmUoZmlsdGVyVmFsdWUpIHtcbiAgICAgIHJldHVybiAhIWZpbHRlclZhbHVlO1xuICAgIH0sXG5cbiAgICB0ZXN0KGZpbHRlclZhbHVlLCB2YWx1ZSkge1xuICAgICAgcmV0dXJuIGRhdGVJbnRlcnNlY3QoZmlsdGVyVmFsdWUsIHZhbHVlKTtcbiAgICB9LFxuICB9KTtcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNzcz17e1xuICAgICAgICBwYWRkaW5nOiAnY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDIpJyxcbiAgICAgICAgZGlzcGxheTogJ2dyaWQnLFxuICAgICAgfX1cbiAgICA+XG4gICAgICA8RGF0ZVBpY2tlclxuICAgICAgICByYW5nZVNlbGVjdD17IXNpbmdsZVNlbGVjdH1cbiAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICBvbkNoYW5nZT17b25DaGFuZ2V9XG4gICAgICAgIGxvY2FsZT17bG9jYWxlfVxuICAgICAgICBmaXJzdERheU9mV2Vlaz17Zmlyc3REYXlPZldlZWt9XG4gICAgICAgIGRlZmF1bHREYXRlSW5WaWV3PXtkZWZhdWx0RGF0ZUluVmlld31cbiAgICAgICAgcXVpY2tPcHRpb25zPXtxdWlja09wdGlvbnN9XG4gICAgICAgIG1pbkRhdGU9e21pbkRhdGV9XG4gICAgICAgIG1heERhdGU9e21heERhdGV9XG4gICAgICAgIHNob3dDYWxlbmRhcldlZWs9e3Nob3dDYWxlbmRhcldlZWt9XG4gICAgICAvPlxuICAgIDwvZGl2PlxuICApO1xufVxuIl19 */",
|
|
1202
1261
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__$c
|
|
1203
1262
|
};
|
|
1204
1263
|
function DateFilter({
|
|
@@ -1210,6 +1269,7 @@ function DateFilter({
|
|
|
1210
1269
|
filterBy = convertDateOrArray,
|
|
1211
1270
|
minDate,
|
|
1212
1271
|
maxDate,
|
|
1272
|
+
showCalendarWeek,
|
|
1213
1273
|
...props
|
|
1214
1274
|
}) {
|
|
1215
1275
|
const {
|
|
@@ -1226,7 +1286,7 @@ function DateFilter({
|
|
|
1226
1286
|
return dateIntersect(filterValue, value2);
|
|
1227
1287
|
}
|
|
1228
1288
|
});
|
|
1229
|
-
return /* @__PURE__ */ jsx("div", { css: _ref$c, children: /* @__PURE__ */ jsx(DatePicker, { rangeSelect: !singleSelect, value, onChange, locale, firstDayOfWeek, defaultDateInView, quickOptions, minDate, maxDate }) });
|
|
1289
|
+
return /* @__PURE__ */ jsx("div", { css: _ref$c, children: /* @__PURE__ */ jsx(DatePicker, { rangeSelect: !singleSelect, value, onChange, locale, firstDayOfWeek, defaultDateInView, quickOptions, minDate, maxDate, showCalendarWeek }) });
|
|
1230
1290
|
}
|
|
1231
1291
|
const Pattern = /^-?\d*(?:[.,]\d*)?$/;
|
|
1232
1292
|
const printNumber = (value, locale) => {
|
|
@@ -1322,7 +1382,7 @@ function RangeFilter({
|
|
|
1322
1382
|
if (typeof min === "number" && typeof max === "number") {
|
|
1323
1383
|
return [min, max];
|
|
1324
1384
|
}
|
|
1325
|
-
const column = state.activeColumns.find((
|
|
1385
|
+
const column = state.activeColumns.find((c) => c.id === columnId);
|
|
1326
1386
|
if (!column) {
|
|
1327
1387
|
return [0, 100];
|
|
1328
1388
|
}
|
|
@@ -2001,24 +2061,24 @@ function calcProps(props) {
|
|
|
2001
2061
|
}, index) => {
|
|
2002
2062
|
const id2 = _id ?? index;
|
|
2003
2063
|
const cacheKey = typeof id2 === "string" ? `s${id2}` : `n${id2}`;
|
|
2004
|
-
const
|
|
2064
|
+
const defaults2 = {
|
|
2005
2065
|
...globalDefaults,
|
|
2006
2066
|
...columnProps == null ? void 0 : columnProps(id2)
|
|
2007
2067
|
};
|
|
2008
2068
|
return {
|
|
2009
2069
|
id: id2,
|
|
2010
|
-
header: header ?? (
|
|
2011
|
-
footer: footer ?? (
|
|
2070
|
+
header: header ?? (defaults2 == null ? void 0 : defaults2.header) ?? null,
|
|
2071
|
+
footer: footer ?? (defaults2 == null ? void 0 : defaults2.footer) ?? null,
|
|
2012
2072
|
value: cache(`columns.${cacheKey}.value`, value),
|
|
2013
|
-
renderCell: cache(`columns.${cacheKey}.renderCell`, renderCell ?? (
|
|
2014
|
-
exportCell: exportCell ?? (
|
|
2015
|
-
sortBy: (sortBy ?? (
|
|
2073
|
+
renderCell: cache(`columns.${cacheKey}.renderCell`, renderCell ?? (defaults2 == null ? void 0 : defaults2.renderCell) ?? asString),
|
|
2074
|
+
exportCell: exportCell ?? (defaults2 == null ? void 0 : defaults2.exportCell) ?? asString,
|
|
2075
|
+
sortBy: (sortBy ?? (defaults2 == null ? void 0 : defaults2.sortBy) ?? [(v) => typeof v === "number" || v instanceof Date ? v : v === null || v === void 0 ? "" : String(v)]).map((function_, i) => cache(`columns.${cacheKey}.sortBy.${i}`, function_)),
|
|
2016
2076
|
disableSort,
|
|
2017
|
-
hidden: hidden ?? (
|
|
2018
|
-
classes: classes ?? (
|
|
2019
|
-
styles: styles ?? (
|
|
2020
|
-
filter: filter ?? (
|
|
2021
|
-
width: width ?? (
|
|
2077
|
+
hidden: hidden ?? (defaults2 == null ? void 0 : defaults2.hidden),
|
|
2078
|
+
classes: classes ?? (defaults2 == null ? void 0 : defaults2.classes),
|
|
2079
|
+
styles: styles ?? (defaults2 == null ? void 0 : defaults2.styles),
|
|
2080
|
+
filter: filter ?? (defaults2 == null ? void 0 : defaults2.filter),
|
|
2081
|
+
width: width ?? (defaults2 == null ? void 0 : defaults2.width)
|
|
2022
2082
|
};
|
|
2023
2083
|
};
|
|
2024
2084
|
const columns = inputColumns.map(mapColumn);
|
|
@@ -2682,7 +2742,7 @@ function csvExport(data, {
|
|
|
2682
2742
|
const cells = data.map((line) => line.map((value) => {
|
|
2683
2743
|
if (typeof value === "number")
|
|
2684
2744
|
return String(value);
|
|
2685
|
-
if (![separator, quote, eol].some((
|
|
2745
|
+
if (![separator, quote, eol].some((c) => value.includes(c)))
|
|
2686
2746
|
return value;
|
|
2687
2747
|
const clean = value.replace(new RegExp(quote, "g"), `${quote}${quote}`);
|
|
2688
2748
|
return `${quote}${clean}${quote}`;
|
|
@@ -3315,10 +3375,10 @@ export {
|
|
|
3315
3375
|
TableContext,
|
|
3316
3376
|
TableResetContext,
|
|
3317
3377
|
TableThemeContext,
|
|
3318
|
-
|
|
3378
|
+
f as TableThemeProvider,
|
|
3319
3379
|
TextFilter,
|
|
3320
3380
|
commonQuickOptions,
|
|
3321
|
-
|
|
3381
|
+
e as configureTableTheme,
|
|
3322
3382
|
dateIntersect,
|
|
3323
3383
|
endOfDay,
|
|
3324
3384
|
helpers,
|