@infomaximum/ui-kit 0.12.12 → 0.13.1

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.
Files changed (105) hide show
  1. package/dist/components/BaseSelect/BaseSelect.d.ts +5 -0
  2. package/dist/components/BaseSelect/BaseSelect.js +360 -0
  3. package/dist/components/{Select/Select.styles.d.ts → BaseSelect/BaseSelect.styles.d.ts} +20 -4
  4. package/dist/components/{Select/Select.styles.js → BaseSelect/BaseSelect.styles.js} +23 -10
  5. package/dist/components/BaseSelect/BaseSelect.types.d.ts +99 -0
  6. package/dist/components/BaseSelect/BaseSelect.utils.d.ts +8 -0
  7. package/dist/components/BaseSelect/BaseSelect.utils.js +39 -0
  8. package/dist/components/BaseSelect/components/BaseSelectOptionList/BaseSelectOptionList.types.d.ts +11 -0
  9. package/dist/components/BaseSelect/components/SelectOptionList/SelectOptionList.d.ts +4 -0
  10. package/dist/components/BaseSelect/components/SelectOptionList/SelectOptionList.js +120 -0
  11. package/dist/components/{Select → BaseSelect}/components/SelectOptionList/SelectOptionList.styles.d.ts +13 -4
  12. package/dist/components/{Select → BaseSelect}/components/SelectOptionList/SelectOptionList.styles.js +13 -7
  13. package/dist/components/BaseSelect/components/SelectOptionList/SelectOptionList.types.d.ts +20 -0
  14. package/dist/components/BaseSelect/components/SelectTag/SelectTag.d.ts +4 -0
  15. package/dist/components/{Select → BaseSelect}/components/SelectTag/SelectTag.js +9 -5
  16. package/dist/components/BaseSelect/components/SelectTag/SelectTag.styles.d.ts +16 -0
  17. package/dist/components/{Select → BaseSelect}/components/SelectTag/SelectTag.styles.js +13 -3
  18. package/dist/components/BaseSelect/components/SelectTag/SelectTag.types.d.ts +11 -0
  19. package/dist/components/BaseSelect/contexts/BaseSelectContext.d.ts +33 -0
  20. package/dist/components/BaseSelect/contexts/BaseSelectContext.js +8 -0
  21. package/dist/components/BaseSelect/hooks/useCurrentValue.d.ts +7 -0
  22. package/dist/components/{Select → BaseSelect}/hooks/useCurrentValue.js +15 -0
  23. package/dist/components/BaseSelect/hooks/useDefaultCurrentValue.d.ts +2 -0
  24. package/dist/components/{Select → BaseSelect}/hooks/useDefaultCurrentValue.js +1 -1
  25. package/dist/components/BaseSelect/hooks/useDefaultSelectIndex.d.ts +2 -0
  26. package/dist/components/BaseSelect/hooks/useHideElements.d.ts +6 -0
  27. package/dist/components/{Select → BaseSelect}/hooks/useHideElements.js +11 -3
  28. package/dist/components/BaseSelect/hooks/useSearch.d.ts +10 -0
  29. package/dist/components/{Select → BaseSelect}/hooks/useSearch.js +4 -16
  30. package/dist/components/Checkbox/Checkbox.js +12 -8
  31. package/dist/components/Checkbox/Checkbox.utils.d.ts +2 -0
  32. package/dist/components/Checkbox/Checkbox.utils.js +5 -0
  33. package/dist/components/Checkbox/index.d.ts +1 -0
  34. package/dist/components/Input/Input.d.ts +2 -2
  35. package/dist/components/Input/Input.js +35 -10
  36. package/dist/components/Input/Input.styles.d.ts +7 -0
  37. package/dist/components/Input/Input.styles.js +9 -5
  38. package/dist/components/Input/Input.types.d.ts +16 -6
  39. package/dist/components/Input/components/InputPassword/InputPassword.d.ts +2 -1
  40. package/dist/components/Input/components/InputTextArea/InputTextArea.d.ts +2 -2
  41. package/dist/components/Input/components/InputTextArea/InputTextArea.js +27 -5
  42. package/dist/components/Input/components/InputTextArea/InputTextArea.types.d.ts +10 -2
  43. package/dist/components/Input/index.d.ts +3 -1
  44. package/dist/components/Select/Select.d.ts +2 -2
  45. package/dist/components/Select/Select.js +39 -281
  46. package/dist/components/Select/Select.types.d.ts +6 -85
  47. package/dist/components/Select/Select.utils.d.ts +1 -9
  48. package/dist/components/Select/Select.utils.js +1 -46
  49. package/dist/components/Select/components/SelectOption/SelectOption.js +20 -23
  50. package/dist/components/Select/components/SelectOption/SelectOption.styles.js +1 -1
  51. package/dist/components/Select/components/SelectOption/SelectOption.types.d.ts +13 -15
  52. package/dist/components/Select/hooks/useKeyControl.d.ts +7 -3
  53. package/dist/components/Select/hooks/useKeyControl.js +48 -13
  54. package/dist/components/TreeSelect/TreeSelect.d.ts +3 -0
  55. package/dist/components/TreeSelect/TreeSelect.js +189 -0
  56. package/dist/components/TreeSelect/TreeSelect.tokens.d.ts +30 -0
  57. package/dist/components/TreeSelect/TreeSelect.tokens.js +31 -0
  58. package/dist/components/TreeSelect/TreeSelect.types.d.ts +69 -0
  59. package/dist/components/TreeSelect/TreeSelect.utils.d.ts +13 -0
  60. package/dist/components/TreeSelect/TreeSelect.utils.js +192 -0
  61. package/dist/components/TreeSelect/components/TreeSelectOption/TreeSelectOption.d.ts +3 -0
  62. package/dist/components/TreeSelect/components/TreeSelectOption/TreeSelectOption.js +117 -0
  63. package/dist/components/TreeSelect/components/TreeSelectOption/TreeSelectOption.styles.d.ts +83 -0
  64. package/dist/components/TreeSelect/components/TreeSelectOption/TreeSelectOption.styles.js +111 -0
  65. package/dist/components/TreeSelect/components/TreeSelectOption/TreeSelectOption.types.d.ts +27 -0
  66. package/dist/components/TreeSelect/contexts/treeSelectContext.d.ts +14 -0
  67. package/dist/components/TreeSelect/contexts/treeSelectContext.js +5 -0
  68. package/dist/components/TreeSelect/forStories/dataForExamples.d.ts +32 -0
  69. package/dist/components/TreeSelect/hooks/useAsyncLoading.d.ts +8 -0
  70. package/dist/components/TreeSelect/hooks/useAsyncLoading.js +39 -0
  71. package/dist/components/TreeSelect/hooks/useElementSizesController.d.ts +6 -0
  72. package/dist/components/TreeSelect/hooks/useElementSizesController.js +21 -0
  73. package/dist/components/TreeSelect/hooks/useExtendController.d.ts +19 -0
  74. package/dist/components/TreeSelect/hooks/useExtendController.js +65 -0
  75. package/dist/components/TreeSelect/hooks/useKeyControl.d.ts +11 -0
  76. package/dist/components/TreeSelect/hooks/useKeyControl.js +75 -0
  77. package/dist/components/TreeSelect/hooks/useTreeCheckable.d.ts +6 -0
  78. package/dist/components/TreeSelect/hooks/useTreeCheckable.js +56 -0
  79. package/dist/components/TreeSelect/hooks/useTreeData.d.ts +8 -0
  80. package/dist/components/TreeSelect/hooks/useTreeData.js +33 -0
  81. package/dist/components/TreeSelect/index.d.ts +2 -0
  82. package/dist/index.d.ts +5 -4
  83. package/dist/index.js +4 -0
  84. package/package.json +1 -1
  85. package/dist/components/Select/components/SelectOptionList/SelectOptionList.d.ts +0 -3
  86. package/dist/components/Select/components/SelectOptionList/SelectOptionList.js +0 -139
  87. package/dist/components/Select/components/SelectOptionList/SelectOptionList.types.d.ts +0 -42
  88. package/dist/components/Select/components/SelectOptionList/SelectOptionList.utils.d.ts +0 -1
  89. package/dist/components/Select/components/SelectOptionList/SelectOptionList.utils.js +0 -4
  90. package/dist/components/Select/components/SelectTag/SelectTag.d.ts +0 -3
  91. package/dist/components/Select/components/SelectTag/SelectTag.styles.d.ts +0 -8
  92. package/dist/components/Select/components/SelectTag/SelectTag.types.d.ts +0 -10
  93. package/dist/components/Select/hooks/useCurrentValue.d.ts +0 -8
  94. package/dist/components/Select/hooks/useDefaultCurrentValue.d.ts +0 -3
  95. package/dist/components/Select/hooks/useDefaultSelectIndex.d.ts +0 -2
  96. package/dist/components/Select/hooks/useDefaultSelectIndex.js +0 -17
  97. package/dist/components/Select/hooks/useHideElements.d.ts +0 -5
  98. package/dist/components/Select/hooks/useSearch.d.ts +0 -11
  99. /package/dist/components/{Select/Select.tokens.d.ts → BaseSelect/BaseSelect.tokens.d.ts} +0 -0
  100. /package/dist/components/{Select/Select.tokens.js → BaseSelect/BaseSelect.tokens.js} +0 -0
  101. /package/dist/components/{Select → BaseSelect}/components/TagPlaceholder/TagPlaceholder.d.ts +0 -0
  102. /package/dist/components/{Select → BaseSelect}/components/TagPlaceholder/TagPlaceholder.js +0 -0
  103. /package/dist/components/{Select → BaseSelect}/components/TagPlaceholder/TagPlaceholder.styles.d.ts +0 -0
  104. /package/dist/components/{Select → BaseSelect}/components/TagPlaceholder/TagPlaceholder.styles.js +0 -0
  105. /package/dist/components/{Select → BaseSelect}/components/TagPlaceholder/TagPlaceholder.types.d.ts +0 -0
@@ -0,0 +1,360 @@
1
+ import { jsx, jsxs, Fragment } from "@emotion/react/jsx-runtime";
2
+ import { memo, useState, useRef, useCallback, useEffect, useMemo } from "react";
3
+ import { getSelectDefaultStyle, getSelectSearchInputWidthStyle } from "./BaseSelect.styles.js";
4
+ import { CloseCircleFilled, DownOutlined, BarsOutlined, SearchOutlined } from "@infomaximum/icons";
5
+ import { isUndefined, isFunction, isNull, isNumber } from "lodash-es";
6
+ import { useFloating, autoUpdate, offset, flip } from "@floating-ui/react";
7
+ import { convertSelectPlacement, getLabel, getVisibleLabels } from "./BaseSelect.utils.js";
8
+ import { useSearch } from "./hooks/useSearch.js";
9
+ import { useCurrentValue } from "./hooks/useCurrentValue.js";
10
+ import { SelectTag } from "./components/SelectTag/SelectTag.js";
11
+ import { useHideElements } from "./hooks/useHideElements.js";
12
+ import { TagPlaceholder, tagPlaceholderDataElement } from "./components/TagPlaceholder/TagPlaceholder.js";
13
+ import { SelectOptionList } from "./components/SelectOptionList/SelectOptionList.js";
14
+ import { createBaseSelectContext } from "./contexts/BaseSelectContext.js";
15
+ import { useTheme } from "../../hooks/useTheme/useTheme.js";
16
+ const BaseSelectComponent = ({
17
+ options = [],
18
+ mode = "single",
19
+ variant = "outlined",
20
+ defaultValue,
21
+ defaultOpen = false,
22
+ defaultActiveFirstOption,
23
+ value,
24
+ open,
25
+ placeholder,
26
+ dropdownMinWidth = 120,
27
+ dropdownMaxHeight = 414,
28
+ allowClear = false,
29
+ autoFocus,
30
+ prefix,
31
+ suffixIcon = /* @__PURE__ */ jsx(DownOutlined, {}),
32
+ status = "default",
33
+ disabled = false,
34
+ dropdownPrompt,
35
+ loading = false,
36
+ dropdownClassName,
37
+ styles,
38
+ dropdownMatchSelectWidth = true,
39
+ placement = "bottomLeft",
40
+ virtual = true,
41
+ emptyContent = "",
42
+ showSearch = mode === "single" ? false : true,
43
+ searchValue,
44
+ notFoundContent = "Not found",
45
+ optionLabelProp = "title",
46
+ drawer = false,
47
+ autoClearSearchValue = true,
48
+ maxTagCount,
49
+ maxTagTextLength,
50
+ maxTagPlaceholder,
51
+ currentSelectingIndex,
52
+ getCurrentSelectingValue,
53
+ onKeyControl,
54
+ getOptionByValue,
55
+ virtualizerEstimateSize,
56
+ filterOptions,
57
+ filterSort,
58
+ valuesFilter,
59
+ dropdownRender,
60
+ optionRender,
61
+ labelRender,
62
+ onBlur,
63
+ onChange,
64
+ onClear,
65
+ onDropdownVisibleChange,
66
+ onFocus,
67
+ onInputKeyDown,
68
+ onSelect,
69
+ getPopupContainer = () => document.body,
70
+ onSearch,
71
+ tagRender,
72
+ onDeselect,
73
+ renderDropdownItem,
74
+ onTagClose
75
+ }) => {
76
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i;
77
+ const theme = useTheme();
78
+ const baseSelectContext = createBaseSelectContext();
79
+ const {
80
+ filteredAndSortedOptions,
81
+ searchInputValue,
82
+ searchHandle,
83
+ clearSearchValue
84
+ } = useSearch({
85
+ options,
86
+ searchValue,
87
+ onSearch,
88
+ filterSort,
89
+ filterOptions
90
+ });
91
+ const {
92
+ currentValue,
93
+ changeCurrentValue,
94
+ removeValue,
95
+ clearCurrentValue
96
+ } = useCurrentValue(mode, defaultValue, defaultActiveFirstOption, options, onDeselect);
97
+ const [isSelectOpen, setIsSelectOpen] = useState(defaultOpen);
98
+ const [isHover, setIsHover] = useState(false);
99
+ const isInitialMount = useRef(true);
100
+ const controlRef = useRef(null);
101
+ const inputRef = useRef(null);
102
+ const referenceOffsetWidth = (_a = controlRef.current) == null ? void 0 : _a.offsetWidth;
103
+ const {
104
+ refs,
105
+ floatingStyles
106
+ } = useFloating({
107
+ whileElementsMounted: autoUpdate,
108
+ placement: convertSelectPlacement(placement),
109
+ middleware: [offset(4), flip()]
110
+ });
111
+ const returnFocusToWrapper = useCallback(() => {
112
+ setTimeout(() => {
113
+ var _a2;
114
+ (_a2 = controlRef.current) == null ? void 0 : _a2.focus();
115
+ });
116
+ }, []);
117
+ const returnFocusToInput = useCallback(() => {
118
+ setTimeout(() => {
119
+ var _a2;
120
+ (_a2 = inputRef.current) == null ? void 0 : _a2.focus();
121
+ });
122
+ }, []);
123
+ useEffect(() => {
124
+ if (!isInitialMount.current) {
125
+ const options2 = currentValue.reduce((acc, value2) => {
126
+ const option = getOptionByValue(value2);
127
+ if (isUndefined(option)) {
128
+ return acc;
129
+ }
130
+ return [...acc, option];
131
+ }, []);
132
+ onChange == null ? void 0 : onChange(currentValue, options2);
133
+ }
134
+ }, [currentValue, getOptionByValue, onChange]);
135
+ useEffect(() => {
136
+ if (isInitialMount.current) {
137
+ isInitialMount.current = false;
138
+ } else {
139
+ onDropdownVisibleChange == null ? void 0 : onDropdownVisibleChange();
140
+ }
141
+ }, [isSelectOpen, onDropdownVisibleChange]);
142
+ const activeValues = useMemo(() => {
143
+ return Array.isArray(value) ? value : isUndefined(value) ? currentValue : [value];
144
+ }, [currentValue, value]);
145
+ const selectDefaultStyle = getSelectDefaultStyle({
146
+ status,
147
+ disabled,
148
+ variant,
149
+ multiple: mode === "multiple",
150
+ isHover,
151
+ maxTagCount,
152
+ withPrefix: !!prefix,
153
+ isEmpty: activeValues.length === 0
154
+ });
155
+ const filteredActiveValues = useMemo(() => {
156
+ return isFunction(valuesFilter) ? valuesFilter(activeValues) : activeValues;
157
+ }, [activeValues, valuesFilter]);
158
+ const {
159
+ containerRef,
160
+ isItemHidden
161
+ } = useHideElements(filteredActiveValues, theme.spaceXS, inputRef, maxTagCount);
162
+ const currentLabel = getLabel(filteredActiveValues, getOptionByValue, optionLabelProp);
163
+ const withDrawer = mode === "multiple" && drawer;
164
+ const withAutoClear = mode === "single" || autoClearSearchValue;
165
+ const clickHandle = () => {
166
+ if (disabled) {
167
+ return;
168
+ }
169
+ setIsSelectOpen((prev) => !prev);
170
+ };
171
+ const changeHandle = useCallback((value2) => {
172
+ changeCurrentValue(value2);
173
+ if (Array.isArray(value2)) {
174
+ return;
175
+ }
176
+ const option = getOptionByValue(value2);
177
+ if (withAutoClear) {
178
+ clearSearchValue();
179
+ }
180
+ if (option) {
181
+ onSelect == null ? void 0 : onSelect(value2, option);
182
+ }
183
+ }, [changeCurrentValue, clearSearchValue, getOptionByValue, onSelect, withAutoClear]);
184
+ const closeOptionList = useCallback(() => {
185
+ setIsSelectOpen(false);
186
+ }, []);
187
+ const blurHandle = (e) => {
188
+ var _a2;
189
+ const isFocusOnOptionList = (_a2 = refs.floating.current) == null ? void 0 : _a2.contains(e.relatedTarget);
190
+ const isFocusOnSearchInput = !isNull(inputRef.current) && e.relatedTarget === inputRef.current;
191
+ const isFocusOnControl = e.relatedTarget === controlRef.current;
192
+ if (isFocusOnOptionList || isFocusOnSearchInput || isFocusOnControl) {
193
+ if (showSearch) {
194
+ returnFocusToInput();
195
+ } else {
196
+ returnFocusToWrapper();
197
+ }
198
+ return;
199
+ }
200
+ onBlur == null ? void 0 : onBlur(e);
201
+ clearSearchValue();
202
+ closeOptionList();
203
+ };
204
+ const clearSelect = useCallback((e) => {
205
+ e.preventDefault();
206
+ e.stopPropagation();
207
+ clearCurrentValue();
208
+ onClear == null ? void 0 : onClear();
209
+ }, [clearCurrentValue, onClear]);
210
+ const keyDownHandler = (e) => {
211
+ if (e.key === "Enter") {
212
+ if (isSelectOpen) {
213
+ const value2 = getCurrentSelectingValue();
214
+ if (!value2) {
215
+ return;
216
+ }
217
+ if (currentValue.includes(value2)) {
218
+ removeValue(value2);
219
+ } else {
220
+ changeCurrentValue(value2);
221
+ }
222
+ if (withAutoClear) {
223
+ clearSearchValue();
224
+ }
225
+ }
226
+ clickHandle();
227
+ }
228
+ setIsSelectOpen(true);
229
+ onKeyControl(e);
230
+ onInputKeyDown == null ? void 0 : onInputKeyDown(e);
231
+ };
232
+ const mouseOverHandle = () => {
233
+ setIsHover(true);
234
+ };
235
+ const mouseOutHandle = () => {
236
+ setIsHover(false);
237
+ };
238
+ const focusHandle = (e) => {
239
+ onFocus == null ? void 0 : onFocus(e);
240
+ if (!showSearch) {
241
+ return;
242
+ }
243
+ returnFocusToInput();
244
+ };
245
+ const renderTagPlaceholder = (hiddenElementsCounter) => {
246
+ if (isUndefined(maxTagPlaceholder)) {
247
+ return /* @__PURE__ */ jsx(TagPlaceholder, { hiddenElementsCounter });
248
+ }
249
+ if (!isFunction(maxTagPlaceholder)) {
250
+ return /* @__PURE__ */ jsx("span", { "data-element": tagPlaceholderDataElement, children: maxTagPlaceholder });
251
+ }
252
+ const hiddenElements = currentValue.reduce((acc, value2) => {
253
+ const isHidden = isItemHidden.get(value2);
254
+ const option = getOptionByValue(value2);
255
+ if (!isHidden || isUndefined(option)) {
256
+ return acc;
257
+ }
258
+ acc.push(option);
259
+ return acc;
260
+ }, []);
261
+ return /* @__PURE__ */ jsx("span", { "data-element": tagPlaceholderDataElement, children: maxTagPlaceholder(hiddenElements) });
262
+ };
263
+ const renderLabel = (values, currentLabel2) => {
264
+ const visibleLabels = getVisibleLabels(currentLabel2, maxTagCount);
265
+ const label = visibleLabels.map((label2, index) => {
266
+ const value2 = values[index];
267
+ if (isFunction(labelRender)) {
268
+ return labelRender({
269
+ label: label2,
270
+ value: value2
271
+ });
272
+ }
273
+ if (mode === "single") {
274
+ return label2;
275
+ }
276
+ if (isFunction(tagRender)) {
277
+ return tagRender(label2);
278
+ }
279
+ const isHidden = !!isItemHidden.get(value2);
280
+ return /* @__PURE__ */ jsx(SelectTag, { value: value2, label: label2, removeValue, maxTagTextLength, isBorderless: variant === "borderless", isError: status === "error", disabled, isHidden, onTagClose }, value2 == null ? void 0 : value2.toString());
281
+ });
282
+ const hiddenElementsCounter = isNumber(maxTagCount) ? isItemHidden.size - maxTagCount : Array.from(isItemHidden.values()).reduce((acc, isHidden) => isHidden ? acc + 1 : acc, 0);
283
+ const withTagPlaceholder = !isUndefined(maxTagCount) && mode === "multiple" && hiddenElementsCounter > 0;
284
+ if (label.length === 0) {
285
+ return null;
286
+ }
287
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
288
+ label,
289
+ withTagPlaceholder && renderTagPlaceholder(hiddenElementsCounter)
290
+ ] });
291
+ };
292
+ const renderSuffix = () => {
293
+ var _a2;
294
+ if (withDrawer) {
295
+ return /* @__PURE__ */ jsx(BarsOutlined, { onClick: clickHandle, css: [selectDefaultStyle.drawerIcon(theme), (_a2 = styles == null ? void 0 : styles.drawerIcon) == null ? void 0 : _a2.call(styles, theme), process.env.NODE_ENV === "production" ? "" : ";label:renderSuffix;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvZnJvbnRlbmQvbGlicy91aS1raXQvc3JjL2NvbXBvbmVudHMvQmFzZVNlbGVjdC9CYXNlU2VsZWN0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE0WVUiLCJmaWxlIjoiL2J1aWxkcy9mcm9udGVuZC9saWJzL3VpLWtpdC9zcmMvY29tcG9uZW50cy9CYXNlU2VsZWN0L0Jhc2VTZWxlY3QudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgdHlwZSBGb2N1c0V2ZW50LFxuICB0eXBlIEtleWJvYXJkRXZlbnQsXG4gIG1lbW8sXG4gIHR5cGUgTW91c2VFdmVudCxcbiAgdHlwZSBQcm9wc1dpdGhDaGlsZHJlbixcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBnZXRTZWxlY3REZWZhdWx0U3R5bGUsIGdldFNlbGVjdFNlYXJjaElucHV0V2lkdGhTdHlsZSB9IGZyb20gXCIuL0Jhc2VTZWxlY3Quc3R5bGVzXCI7XG5pbXBvcnQgeyB1c2VUaGVtZSB9IGZyb20gXCJob29rcy91c2VUaGVtZVwiO1xuaW1wb3J0IHsgQmFyc091dGxpbmVkLCBDbG9zZUNpcmNsZUZpbGxlZCwgRG93bk91dGxpbmVkLCBTZWFyY2hPdXRsaW5lZCB9IGZyb20gXCJAaW5mb21heGltdW0vaWNvbnNcIjtcbmltcG9ydCB7IGlzRnVuY3Rpb24sIGlzTnVsbCwgaXNOdW1iZXIsIGlzVW5kZWZpbmVkIH0gZnJvbSBcImxvZGFzaC1lc1wiO1xuaW1wb3J0IHsgYXV0b1VwZGF0ZSwgZmxpcCwgb2Zmc2V0LCB1c2VGbG9hdGluZyB9IGZyb20gXCJAZmxvYXRpbmctdWkvcmVhY3RcIjtcbmltcG9ydCB7IGNvbnZlcnRTZWxlY3RQbGFjZW1lbnQsIGdldExhYmVsLCBnZXRWaXNpYmxlTGFiZWxzIH0gZnJvbSBcIi4vQmFzZVNlbGVjdC51dGlsc1wiO1xuaW1wb3J0IHsgdXNlU2VhcmNoIH0gZnJvbSBcIi4vaG9va3MvdXNlU2VhcmNoXCI7XG5pbXBvcnQgeyB1c2VDdXJyZW50VmFsdWUgfSBmcm9tIFwiLi9ob29rcy91c2VDdXJyZW50VmFsdWVcIjtcbmltcG9ydCB7IFNlbGVjdFRhZyB9IGZyb20gXCIuL2NvbXBvbmVudHMvU2VsZWN0VGFnL1NlbGVjdFRhZ1wiO1xuaW1wb3J0IHsgdXNlSGlkZUVsZW1lbnRzIH0gZnJvbSBcIi4vaG9va3MvdXNlSGlkZUVsZW1lbnRzXCI7XG5pbXBvcnQge1xuICBUYWdQbGFjZWhvbGRlcixcbiAgdGFnUGxhY2Vob2xkZXJEYXRhRWxlbWVudCxcbn0gZnJvbSBcIi4vY29tcG9uZW50cy9UYWdQbGFjZWhvbGRlci9UYWdQbGFjZWhvbGRlclwiO1xuaW1wb3J0IHR5cGUgeyBCYXNlU2VsZWN0T3B0aW9uSW50ZXJmYWNlLCBCYXNlU2VsZWN0UHJvcHMgfSBmcm9tIFwiLi9CYXNlU2VsZWN0LnR5cGVzXCI7XG5pbXBvcnQgeyBTZWxlY3RPcHRpb25MaXN0IH0gZnJvbSBcIi4vY29tcG9uZW50cy9TZWxlY3RPcHRpb25MaXN0L1NlbGVjdE9wdGlvbkxpc3RcIjtcbmltcG9ydCB7IGNyZWF0ZUJhc2VTZWxlY3RDb250ZXh0LCB0eXBlIEJhc2VTZWxlY3RDb250ZXh0U2hhcGUgfSBmcm9tIFwiLi9jb250ZXh0cy9CYXNlU2VsZWN0Q29udGV4dFwiO1xuXG5jb25zdCBCYXNlU2VsZWN0Q29tcG9uZW50ID0gPE9wdGlvbiBleHRlbmRzIEJhc2VTZWxlY3RPcHRpb25JbnRlcmZhY2U8T3B0aW9uVmFsdWU+LCBPcHRpb25WYWx1ZT4oe1xuICBvcHRpb25zID0gW10sXG4gIG1vZGUgPSBcInNpbmdsZVwiLFxuICB2YXJpYW50ID0gXCJvdXRsaW5lZFwiLFxuICBkZWZhdWx0VmFsdWUsXG4gIGRlZmF1bHRPcGVuID0gZmFsc2UsXG4gIGRlZmF1bHRBY3RpdmVGaXJzdE9wdGlvbixcbiAgdmFsdWUsXG4gIG9wZW4sXG4gIHBsYWNlaG9sZGVyLFxuICBkcm9wZG93bk1pbldpZHRoID0gMTIwLFxuICBkcm9wZG93bk1heEhlaWdodCA9IDQxNCxcbiAgYWxsb3dDbGVhciA9IGZhbHNlLFxuICBhdXRvRm9jdXMsXG4gIHByZWZpeCxcbiAgc3VmZml4SWNvbiA9IDxEb3duT3V0bGluZWQgLz4sXG4gIHN0YXR1cyA9IFwiZGVmYXVsdFwiLFxuICBkaXNhYmxlZCA9IGZhbHNlLFxuICBkcm9wZG93blByb21wdCxcbiAgbG9hZGluZyA9IGZhbHNlLFxuICBkcm9wZG93bkNsYXNzTmFtZSxcbiAgc3R5bGVzLFxuICBkcm9wZG93bk1hdGNoU2VsZWN0V2lkdGggPSB0cnVlLFxuICBwbGFjZW1lbnQgPSBcImJvdHRvbUxlZnRcIixcbiAgdmlydHVhbCA9IHRydWUsXG4gIGVtcHR5Q29udGVudCA9IFwiXCIsXG4gIHNob3dTZWFyY2ggPSBtb2RlID09PSBcInNpbmdsZVwiID8gZmFsc2UgOiB0cnVlLFxuICBzZWFyY2hWYWx1ZSxcbiAgbm90Rm91bmRDb250ZW50ID0gXCJOb3QgZm91bmRcIixcbiAgb3B0aW9uTGFiZWxQcm9wID0gXCJ0aXRsZVwiLFxuICBkcmF3ZXIgPSBmYWxzZSxcbiAgYXV0b0NsZWFyU2VhcmNoVmFsdWUgPSB0cnVlLFxuICBtYXhUYWdDb3VudCxcbiAgbWF4VGFnVGV4dExlbmd0aCxcbiAgbWF4VGFnUGxhY2Vob2xkZXIsXG4gIGN1cnJlbnRTZWxlY3RpbmdJbmRleCxcbiAgZ2V0Q3VycmVudFNlbGVjdGluZ1ZhbHVlLFxuICBvbktleUNvbnRyb2wsXG4gIGdldE9wdGlvbkJ5VmFsdWUsXG4gIHZpcnR1YWxpemVyRXN0aW1hdGVTaXplLFxuICBmaWx0ZXJPcHRpb25zLFxuICBmaWx0ZXJTb3J0LFxuICB2YWx1ZXNGaWx0ZXIsXG4gIGRyb3Bkb3duUmVuZGVyLFxuICBvcHRpb25SZW5kZXIsXG4gIGxhYmVsUmVuZGVyLFxuICBvbkJsdXIsXG4gIG9uQ2hhbmdlLFxuICBvbkNsZWFyLFxuICBvbkRyb3Bkb3duVmlzaWJsZUNoYW5nZSxcbiAgb25Gb2N1cyxcbiAgb25JbnB1dEtleURvd24sXG4gIG9uU2VsZWN0LFxuICBnZXRQb3B1cENvbnRhaW5lciA9ICgpID0+IGRvY3VtZW50LmJvZHksXG4gIG9uU2VhcmNoLFxuICB0YWdSZW5kZXIsXG4gIG9uRGVzZWxlY3QsXG4gIHJlbmRlckRyb3Bkb3duSXRlbSxcbiAgb25UYWdDbG9zZSxcbn06IFByb3BzV2l0aENoaWxkcmVuPEJhc2VTZWxlY3RQcm9wczxPcHRpb24sIE9wdGlvblZhbHVlPj4pID0+IHtcbiAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpO1xuICBjb25zdCBiYXNlU2VsZWN0Q29udGV4dCA9IGNyZWF0ZUJhc2VTZWxlY3RDb250ZXh0PE9wdGlvblZhbHVlPigpO1xuXG4gIGNvbnN0IHsgZmlsdGVyZWRBbmRTb3J0ZWRPcHRpb25zLCBzZWFyY2hJbnB1dFZhbHVlLCBzZWFyY2hIYW5kbGUsIGNsZWFyU2VhcmNoVmFsdWUgfSA9IHVzZVNlYXJjaDxcbiAgICBPcHRpb24sXG4gICAgT3B0aW9uVmFsdWVcbiAgPih7XG4gICAgb3B0aW9ucyxcbiAgICBzZWFyY2hWYWx1ZSxcbiAgICBvblNlYXJjaCxcbiAgICBmaWx0ZXJTb3J0LFxuICAgIGZpbHRlck9wdGlvbnMsXG4gIH0pO1xuXG4gIGNvbnN0IHsgY3VycmVudFZhbHVlLCBjaGFuZ2VDdXJyZW50VmFsdWUsIHJlbW92ZVZhbHVlLCBjbGVhckN1cnJlbnRWYWx1ZSB9ID0gdXNlQ3VycmVudFZhbHVlKFxuICAgIG1vZGUsXG4gICAgZGVmYXVsdFZhbHVlLFxuICAgIGRlZmF1bHRBY3RpdmVGaXJzdE9wdGlvbixcbiAgICBvcHRpb25zLFxuICAgIG9uRGVzZWxlY3RcbiAgKTtcblxuICBjb25zdCBbaXNTZWxlY3RPcGVuLCBzZXRJc1NlbGVjdE9wZW5dID0gdXNlU3RhdGUoZGVmYXVsdE9wZW4pO1xuICBjb25zdCBbaXNIb3Zlciwgc2V0SXNIb3Zlcl0gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgY29uc3QgaXNJbml0aWFsTW91bnQgPSB1c2VSZWYodHJ1ZSk7XG4gIGNvbnN0IGNvbnRyb2xSZWYgPSB1c2VSZWY8SFRNTFNwYW5FbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IGlucHV0UmVmID0gdXNlUmVmPEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsPihudWxsKTtcblxuICBjb25zdCByZWZlcmVuY2VPZmZzZXRXaWR0aCA9IGNvbnRyb2xSZWYuY3VycmVudD8ub2Zmc2V0V2lkdGg7XG5cbiAgY29uc3QgeyByZWZzLCBmbG9hdGluZ1N0eWxlcyB9ID0gdXNlRmxvYXRpbmc8SFRNTFNwYW5FbGVtZW50Pih7XG4gICAgd2hpbGVFbGVtZW50c01vdW50ZWQ6IGF1dG9VcGRhdGUsXG4gICAgcGxhY2VtZW50OiBjb252ZXJ0U2VsZWN0UGxhY2VtZW50KHBsYWNlbWVudCksXG4gICAgbWlkZGxld2FyZTogW29mZnNldCg0KSwgZmxpcCgpXSxcbiAgfSk7XG5cbiAgY29uc3QgcmV0dXJuRm9jdXNUb1dyYXBwZXIgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBjb250cm9sUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgfSk7XG4gIH0sIFtdKTtcblxuICBjb25zdCByZXR1cm5Gb2N1c1RvSW5wdXQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpbnB1dFJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgIH0pO1xuICB9LCBbXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWlzSW5pdGlhbE1vdW50LmN1cnJlbnQpIHtcbiAgICAgIGNvbnN0IG9wdGlvbnMgPSBjdXJyZW50VmFsdWUucmVkdWNlKChhY2M6IE9wdGlvbltdLCB2YWx1ZSkgPT4ge1xuICAgICAgICBjb25zdCBvcHRpb24gPSBnZXRPcHRpb25CeVZhbHVlKHZhbHVlKTtcblxuICAgICAgICBpZiAoaXNVbmRlZmluZWQob3B0aW9uKSkge1xuICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gWy4uLmFjYywgb3B0aW9uXTtcbiAgICAgIH0sIFtdKTtcblxuICAgICAgb25DaGFuZ2U/LihjdXJyZW50VmFsdWUsIG9wdGlvbnMpO1xuICAgIH1cbiAgfSwgW2N1cnJlbnRWYWx1ZSwgZ2V0T3B0aW9uQnlWYWx1ZSwgb25DaGFuZ2VdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpc0luaXRpYWxNb3VudC5jdXJyZW50KSB7XG4gICAgICBpc0luaXRpYWxNb3VudC5jdXJyZW50ID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIG9uRHJvcGRvd25WaXNpYmxlQ2hhbmdlPy4oKTtcbiAgICB9XG4gIH0sIFtpc1NlbGVjdE9wZW4sIG9uRHJvcGRvd25WaXNpYmxlQ2hhbmdlXSk7XG5cbiAgY29uc3QgYWN0aXZlVmFsdWVzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBpc1VuZGVmaW5lZCh2YWx1ZSkgPyBjdXJyZW50VmFsdWUgOiBbdmFsdWVdO1xuICB9LCBbY3VycmVudFZhbHVlLCB2YWx1ZV0pO1xuXG4gIGNvbnN0IHNlbGVjdERlZmF1bHRTdHlsZSA9IGdldFNlbGVjdERlZmF1bHRTdHlsZSh7XG4gICAgc3RhdHVzLFxuICAgIGRpc2FibGVkLFxuICAgIHZhcmlhbnQsXG4gICAgbXVsdGlwbGU6IG1vZGUgPT09IFwibXVsdGlwbGVcIixcbiAgICBpc0hvdmVyLFxuICAgIG1heFRhZ0NvdW50LFxuICAgIHdpdGhQcmVmaXg6ICEhcHJlZml4LFxuICAgIGlzRW1wdHk6IGFjdGl2ZVZhbHVlcy5sZW5ndGggPT09IDAsXG4gIH0pO1xuXG4gIGNvbnN0IGZpbHRlcmVkQWN0aXZlVmFsdWVzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIGlzRnVuY3Rpb24odmFsdWVzRmlsdGVyKSA/IHZhbHVlc0ZpbHRlcihhY3RpdmVWYWx1ZXMpIDogYWN0aXZlVmFsdWVzO1xuICB9LCBbYWN0aXZlVmFsdWVzLCB2YWx1ZXNGaWx0ZXJdKTtcblxuICBjb25zdCB7IGNvbnRhaW5lclJlZiwgaXNJdGVtSGlkZGVuIH0gPSB1c2VIaWRlRWxlbWVudHMoXG4gICAgZmlsdGVyZWRBY3RpdmVWYWx1ZXMsXG4gICAgdGhlbWUuc3BhY2VYUyxcbiAgICBpbnB1dFJlZixcbiAgICBtYXhUYWdDb3VudFxuICApO1xuXG4gIGNvbnN0IGN1cnJlbnRMYWJlbCA9IGdldExhYmVsPE9wdGlvbiwgT3B0aW9uVmFsdWU+KFxuICAgIGZpbHRlcmVkQWN0aXZlVmFsdWVzLFxuICAgIGdldE9wdGlvbkJ5VmFsdWUsXG4gICAgb3B0aW9uTGFiZWxQcm9wXG4gICk7XG5cbiAgY29uc3Qgd2l0aERyYXdlciA9IG1vZGUgPT09IFwibXVsdGlwbGVcIiAmJiBkcmF3ZXI7XG4gIGNvbnN0IHdpdGhBdXRvQ2xlYXIgPSBtb2RlID09PSBcInNpbmdsZVwiIHx8IGF1dG9DbGVhclNlYXJjaFZhbHVlO1xuXG4gIGNvbnN0IGNsaWNrSGFuZGxlID0gKCkgPT4ge1xuICAgIGlmIChkaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHNldElzU2VsZWN0T3BlbigocHJldikgPT4gIXByZXYpO1xuICB9O1xuXG4gIGNvbnN0IGNoYW5nZUhhbmRsZSA9IHVzZUNhbGxiYWNrKFxuICAgICh2YWx1ZTogT3B0aW9uVmFsdWUgfCBPcHRpb25WYWx1ZVtdKSA9PiB7XG4gICAgICBjaGFuZ2VDdXJyZW50VmFsdWUodmFsdWUpO1xuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBvcHRpb24gPSBnZXRPcHRpb25CeVZhbHVlKHZhbHVlKTtcblxuICAgICAgaWYgKHdpdGhBdXRvQ2xlYXIpIHtcbiAgICAgICAgY2xlYXJTZWFyY2hWYWx1ZSgpO1xuICAgICAgfVxuXG4gICAgICBpZiAob3B0aW9uKSB7XG4gICAgICAgIG9uU2VsZWN0Py4odmFsdWUsIG9wdGlvbik7XG4gICAgICB9XG4gICAgfSxcbiAgICBbY2hhbmdlQ3VycmVudFZhbHVlLCBjbGVhclNlYXJjaFZhbHVlLCBnZXRPcHRpb25CeVZhbHVlLCBvblNlbGVjdCwgd2l0aEF1dG9DbGVhcl1cbiAgKTtcblxuICBjb25zdCBjbG9zZU9wdGlvbkxpc3QgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0SXNTZWxlY3RPcGVuKGZhbHNlKTtcbiAgfSwgW10pO1xuXG4gIGNvbnN0IGJsdXJIYW5kbGUgPSAoZTogRm9jdXNFdmVudCkgPT4ge1xuICAgIGNvbnN0IGlzRm9jdXNPbk9wdGlvbkxpc3QgPSByZWZzLmZsb2F0aW5nLmN1cnJlbnQ/LmNvbnRhaW5zKGUucmVsYXRlZFRhcmdldCk7XG4gICAgY29uc3QgaXNGb2N1c09uU2VhcmNoSW5wdXQgPSAhaXNOdWxsKGlucHV0UmVmLmN1cnJlbnQpICYmIGUucmVsYXRlZFRhcmdldCA9PT0gaW5wdXRSZWYuY3VycmVudDtcbiAgICBjb25zdCBpc0ZvY3VzT25Db250cm9sID0gZS5yZWxhdGVkVGFyZ2V0ID09PSBjb250cm9sUmVmLmN1cnJlbnQ7XG5cbiAgICBpZiAoaXNGb2N1c09uT3B0aW9uTGlzdCB8fCBpc0ZvY3VzT25TZWFyY2hJbnB1dCB8fCBpc0ZvY3VzT25Db250cm9sKSB7XG4gICAgICBpZiAoc2hvd1NlYXJjaCkge1xuICAgICAgICByZXR1cm5Gb2N1c1RvSW5wdXQoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybkZvY3VzVG9XcmFwcGVyKCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBvbkJsdXI/LihlKTtcbiAgICBjbGVhclNlYXJjaFZhbHVlKCk7XG4gICAgY2xvc2VPcHRpb25MaXN0KCk7XG4gIH07XG5cbiAgY29uc3QgY2xlYXJTZWxlY3QgPSB1c2VDYWxsYmFjayhcbiAgICAoZTogTW91c2VFdmVudCkgPT4ge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgY2xlYXJDdXJyZW50VmFsdWUoKTtcbiAgICAgIG9uQ2xlYXI/LigpO1xuICAgIH0sXG4gICAgW2NsZWFyQ3VycmVudFZhbHVlLCBvbkNsZWFyXVxuICApO1xuXG4gIGNvbnN0IGtleURvd25IYW5kbGVyID0gKGU6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICBpZiAoZS5rZXkgPT09IFwiRW50ZXJcIikge1xuICAgICAgaWYgKGlzU2VsZWN0T3Blbikge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGdldEN1cnJlbnRTZWxlY3RpbmdWYWx1ZSgpO1xuXG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY3VycmVudFZhbHVlLmluY2x1ZGVzKHZhbHVlKSkge1xuICAgICAgICAgIHJlbW92ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjaGFuZ2VDdXJyZW50VmFsdWUodmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHdpdGhBdXRvQ2xlYXIpIHtcbiAgICAgICAgICBjbGVhclNlYXJjaFZhbHVlKCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY2xpY2tIYW5kbGUoKTtcbiAgICB9XG5cbiAgICBzZXRJc1NlbGVjdE9wZW4odHJ1ZSk7XG5cbiAgICBvbktleUNvbnRyb2woZSk7XG4gICAgb25JbnB1dEtleURvd24/LihlKTtcbiAgfTtcblxuICBjb25zdCBtb3VzZU92ZXJIYW5kbGUgPSAoKSA9PiB7XG4gICAgc2V0SXNIb3Zlcih0cnVlKTtcbiAgfTtcblxuICBjb25zdCBtb3VzZU91dEhhbmRsZSA9ICgpID0+IHtcbiAgICBzZXRJc0hvdmVyKGZhbHNlKTtcbiAgfTtcblxuICBjb25zdCBmb2N1c0hhbmRsZSA9IChlOiBGb2N1c0V2ZW50KSA9PiB7XG4gICAgb25Gb2N1cz8uKGUpO1xuXG4gICAgaWYgKCFzaG93U2VhcmNoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcmV0dXJuRm9jdXNUb0lucHV0KCk7XG4gIH07XG5cbiAgY29uc3QgcmVuZGVyVGFnUGxhY2Vob2xkZXIgPSAoaGlkZGVuRWxlbWVudHNDb3VudGVyOiBudW1iZXIpID0+IHtcbiAgICBpZiAoaXNVbmRlZmluZWQobWF4VGFnUGxhY2Vob2xkZXIpKSB7XG4gICAgICByZXR1cm4gPFRhZ1BsYWNlaG9sZGVyIGhpZGRlbkVsZW1lbnRzQ291bnRlcj17aGlkZGVuRWxlbWVudHNDb3VudGVyfSAvPjtcbiAgICB9XG5cbiAgICBpZiAoIWlzRnVuY3Rpb24obWF4VGFnUGxhY2Vob2xkZXIpKSB7XG4gICAgICByZXR1cm4gPHNwYW4gZGF0YS1lbGVtZW50PXt0YWdQbGFjZWhvbGRlckRhdGFFbGVtZW50fT57bWF4VGFnUGxhY2Vob2xkZXJ9PC9zcGFuPjtcbiAgICB9XG5cbiAgICBjb25zdCBoaWRkZW5FbGVtZW50cyA9IGN1cnJlbnRWYWx1ZS5yZWR1Y2UoKGFjYzogT3B0aW9uW10sIHZhbHVlKSA9PiB7XG4gICAgICBjb25zdCBpc0hpZGRlbiA9IGlzSXRlbUhpZGRlbi5nZXQodmFsdWUpO1xuICAgICAgY29uc3Qgb3B0aW9uID0gZ2V0T3B0aW9uQnlWYWx1ZSh2YWx1ZSk7XG5cbiAgICAgIGlmICghaXNIaWRkZW4gfHwgaXNVbmRlZmluZWQob3B0aW9uKSkge1xuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfVxuXG4gICAgICBhY2MucHVzaChvcHRpb24pO1xuXG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIFtdKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8c3BhbiBkYXRhLWVsZW1lbnQ9e3RhZ1BsYWNlaG9sZGVyRGF0YUVsZW1lbnR9PnttYXhUYWdQbGFjZWhvbGRlcihoaWRkZW5FbGVtZW50cyl9PC9zcGFuPlxuICAgICk7XG4gIH07XG5cbiAgY29uc3QgcmVuZGVyTGFiZWwgPSAodmFsdWVzOiBPcHRpb25WYWx1ZVtdLCBjdXJyZW50TGFiZWw6IHN0cmluZ1tdKSA9PiB7XG4gICAgY29uc3QgdmlzaWJsZUxhYmVscyA9IGdldFZpc2libGVMYWJlbHMoY3VycmVudExhYmVsLCBtYXhUYWdDb3VudCk7XG5cbiAgICBjb25zdCBsYWJlbCA9IHZpc2libGVMYWJlbHMubWFwKChsYWJlbCwgaW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdmFsdWVzW2luZGV4XSBhcyBPcHRpb25WYWx1ZTtcblxuICAgICAgaWYgKGlzRnVuY3Rpb24obGFiZWxSZW5kZXIpKSB7XG4gICAgICAgIHJldHVybiBsYWJlbFJlbmRlcih7IGxhYmVsLCB2YWx1ZSB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKG1vZGUgPT09IFwic2luZ2xlXCIpIHtcbiAgICAgICAgcmV0dXJuIGxhYmVsO1xuICAgICAgfVxuXG4gICAgICBpZiAoaXNGdW5jdGlvbih0YWdSZW5kZXIpKSB7XG4gICAgICAgIHJldHVybiB0YWdSZW5kZXIobGFiZWwpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBpc0hpZGRlbiA9ICEhaXNJdGVtSGlkZGVuLmdldCh2YWx1ZSk7XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTZWxlY3RUYWc8T3B0aW9uVmFsdWU+XG4gICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgIGxhYmVsPXtsYWJlbH1cbiAgICAgICAgICByZW1vdmVWYWx1ZT17cmVtb3ZlVmFsdWV9XG4gICAgICAgICAgbWF4VGFnVGV4dExlbmd0aD17bWF4VGFnVGV4dExlbmd0aH1cbiAgICAgICAgICBpc0JvcmRlcmxlc3M9e3ZhcmlhbnQgPT09IFwiYm9yZGVybGVzc1wifVxuICAgICAgICAgIGlzRXJyb3I9e3N0YXR1cyA9PT0gXCJlcnJvclwifVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBpc0hpZGRlbj17aXNIaWRkZW59XG4gICAgICAgICAgb25UYWdDbG9zZT17b25UYWdDbG9zZX1cbiAgICAgICAgICBrZXk9e3ZhbHVlPy50b1N0cmluZygpfVxuICAgICAgICAvPlxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGhpZGRlbkVsZW1lbnRzQ291bnRlciA9IGlzTnVtYmVyKG1heFRhZ0NvdW50KVxuICAgICAgPyBpc0l0ZW1IaWRkZW4uc2l6ZSAtIG1heFRhZ0NvdW50XG4gICAgICA6IEFycmF5LmZyb20oaXNJdGVtSGlkZGVuLnZhbHVlcygpKS5yZWR1Y2UoKGFjYywgaXNIaWRkZW4pID0+IChpc0hpZGRlbiA/IGFjYyArIDEgOiBhY2MpLCAwKTtcblxuICAgIGNvbnN0IHdpdGhUYWdQbGFjZWhvbGRlciA9XG4gICAgICAhaXNVbmRlZmluZWQobWF4VGFnQ291bnQpICYmIG1vZGUgPT09IFwibXVsdGlwbGVcIiAmJiBoaWRkZW5FbGVtZW50c0NvdW50ZXIgPiAwO1xuXG4gICAgaWYgKGxhYmVsLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIHtsYWJlbH1cbiAgICAgICAge3dpdGhUYWdQbGFjZWhvbGRlciAmJiByZW5kZXJUYWdQbGFjZWhvbGRlcihoaWRkZW5FbGVtZW50c0NvdW50ZXIpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICBjb25zdCByZW5kZXJTdWZmaXggPSAoKSA9PiB7XG4gICAgaWYgKHdpdGhEcmF3ZXIpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxCYXJzT3V0bGluZWRcbiAgICAgICAgICBvbkNsaWNrPXtjbGlja0hhbmRsZX1cbiAgICAgICAgICBjc3M9e1tzZWxlY3REZWZhdWx0U3R5bGUuZHJhd2VySWNvbih0aGVtZSksIHN0eWxlcz8uZHJhd2VySWNvbj8uKHRoZW1lKV19XG4gICAgICAgIC8+XG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChzaG93U2VhcmNoICYmIGlzU2VsZWN0T3Blbikge1xuICAgICAgcmV0dXJuIDxTZWFyY2hPdXRsaW5lZCAvPjtcbiAgICB9XG5cbiAgICByZXR1cm4gc3VmZml4SWNvbjtcbiAgfTtcblxuICBjb25zdCByZW5kZXJQbGFjZWhvbGRlciA9ICgpID0+IChcbiAgICA8c3BhbiBjc3M9e1tzZWxlY3REZWZhdWx0U3R5bGUucGxhY2Vob2xkZXIodGhlbWUpLCBzdHlsZXM/LnBsYWNlaG9sZGVyPy4odGhlbWUpXX0+XG4gICAgICB7cGxhY2Vob2xkZXJ9XG4gICAgPC9zcGFuPlxuICApO1xuXG4gIGNvbnN0IHdpdGhDbGVhckJ1dHRvbiA9IGFsbG93Q2xlYXIgJiYgISFmaWx0ZXJlZEFjdGl2ZVZhbHVlcy5sZW5ndGg7XG5cbiAgY29uc3QgaW5wdXRWYWx1ZSA9XG4gICAgbW9kZSA9PT0gXCJtdWx0aXBsZVwiIHx8IGlzU2VsZWN0T3BlblxuICAgICAgPyAoc2VhcmNoVmFsdWUgPz8gc2VhcmNoSW5wdXRWYWx1ZSlcbiAgICAgIDogY3VycmVudExhYmVsWzBdPy50b1N0cmluZygpO1xuXG4gIGNvbnN0IGlzRW1wdHkgPSBmaWx0ZXJlZEFjdGl2ZVZhbHVlcy5sZW5ndGggPT09IDA7XG4gIGNvbnN0IHNpbmdsZU1vZFBsYWNlaG9sZGVyID0gY3VycmVudExhYmVsWzBdID8/IHBsYWNlaG9sZGVyID8/IFwiXCI7XG4gIGNvbnN0IG11bHRpcGxlTW9kUGxhY2Vob2xkZXIgPSBpc0VtcHR5ID8gcGxhY2Vob2xkZXIgOiB1bmRlZmluZWQ7XG5cbiAgY29uc3Qgc2VhcmNoSW5wdXRQbGFjZWhvbGRlciA9IG1vZGUgPT09IFwic2luZ2xlXCIgPyBzaW5nbGVNb2RQbGFjZWhvbGRlciA6IG11bHRpcGxlTW9kUGxhY2Vob2xkZXI7XG5cbiAgY29uc3QgbGV0dGVyc051bWJlciA9IChpbnB1dFZhbHVlPy5sZW5ndGggPz8gMCkgKyAxO1xuXG4gIGNvbnN0IGhhc0ljb25QcmVmaXggPSB0eXBlb2YgcHJlZml4ID09PSBcIm9iamVjdFwiO1xuXG4gIGNvbnN0IGNvbnRleHRWYWx1ZTogQmFzZVNlbGVjdENvbnRleHRTaGFwZTxPcHRpb25WYWx1ZT4gPSB7XG4gICAgY3VycmVudFZhbHVlOiBhY3RpdmVWYWx1ZXMsXG4gICAgc2hvd09wdGlvbkxpc3Q6IG9wZW4gPz8gaXNTZWxlY3RPcGVuLFxuICAgIHNldFZhbHVlOiBjaGFuZ2VIYW5kbGUsXG4gICAgY2xvc2VPcHRpb25MaXN0LFxuICAgIGRyb3Bkb3duTWluV2lkdGgsXG4gICAgZHJvcGRvd25NYXhIZWlnaHQsXG4gICAgZHJvcGRvd25Qcm9tcHQsXG4gICAgbG9hZGluZyxcbiAgICBkcm9wZG93bkNsYXNzTmFtZSxcbiAgICBkcm9wZG93blJlbmRlcixcbiAgICBkcm9wZG93bk1hdGNoU2VsZWN0V2lkdGgsXG4gICAgcmVmZXJlbmNlT2Zmc2V0V2lkdGgsXG4gICAgZmxvYXRpbmdTdHlsZXMsXG4gICAgc2V0RmxvYXRpbmc6IHJlZnMuc2V0RmxvYXRpbmcsXG4gICAgZmxvYXRpbmdSZWY6IHJlZnMuZmxvYXRpbmcsXG4gICAgZ2V0UG9wdXBDb250YWluZXIsXG4gICAgdmlydHVhbCxcbiAgICBjdXJyZW50U2VsZWN0aW5nSW5kZXgsXG4gICAgZW1wdHlDb250ZW50LFxuICAgIG5vdEZvdW5kQ29udGVudCxcbiAgICBzZWFyY2hWYWx1ZTogc2VhcmNoVmFsdWUgPz8gc2VhcmNoSW5wdXRWYWx1ZSxcbiAgICBzaG93U2VhcmNoLFxuICAgIG1vZGUsXG4gICAgcmVtb3ZlVmFsdWUsXG4gICAgaXNJdGVtSGlkZGVuLFxuICAgIGdldEN1cnJlbnRTZWxlY3RpbmdWYWx1ZSxcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxiYXNlU2VsZWN0Q29udGV4dC5Qcm92aWRlciB2YWx1ZT17Y29udGV4dFZhbHVlfT5cbiAgICAgIDxzcGFuXG4gICAgICAgIGNzcz17W3NlbGVjdERlZmF1bHRTdHlsZS53cmFwcGVyKHRoZW1lKSwgc3R5bGVzPy53cmFwcGVyPy4odGhlbWUpXX1cbiAgICAgICAgdGFiSW5kZXg9ezF9XG4gICAgICAgIG9uS2V5RG93bj17a2V5RG93bkhhbmRsZXJ9XG4gICAgICAgIG9uTW91c2VPdmVyPXttb3VzZU92ZXJIYW5kbGV9XG4gICAgICAgIG9uTW91c2VPdXQ9e21vdXNlT3V0SGFuZGxlfVxuICAgICAgICBvbkZvY3VzPXtmb2N1c0hhbmRsZX1cbiAgICAgICAgb25CbHVyPXtibHVySGFuZGxlfVxuICAgICAgICBhdXRvRm9jdXM9e2F1dG9Gb2N1c31cbiAgICAgICAgcmVmPXtjb250cm9sUmVmfVxuICAgICAgPlxuICAgICAgICA8c3BhblxuICAgICAgICAgIGNzcz17W3NlbGVjdERlZmF1bHRTdHlsZS5ib2R5KHRoZW1lKSwgc3R5bGVzPy5ib2R5Py4odGhlbWUpXX1cbiAgICAgICAgICBvbkNsaWNrPXshd2l0aERyYXdlciA/IGNsaWNrSGFuZGxlIDogdW5kZWZpbmVkfVxuICAgICAgICAgIHJlZj17cmVmcy5zZXRSZWZlcmVuY2V9XG4gICAgICAgID5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgY3NzPXtbc2VsZWN0RGVmYXVsdFN0eWxlLnByZWZpeEFuZENvbnRlbnQodGhlbWUpLCBzdHlsZXM/LnByZWZpeEFuZENvbnRlbnQ/Lih0aGVtZSldfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtwcmVmaXggJiYgKFxuICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgIGNzcz17W3NlbGVjdERlZmF1bHRTdHlsZS5wcmVmaXgoaGFzSWNvblByZWZpeCkodGhlbWUpLCBzdHlsZXM/LnByZWZpeD8uKHRoZW1lKV19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7cHJlZml4fVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICApfVxuXG4gICAgICAgICAgICB7c2hvd1NlYXJjaCA/IChcbiAgICAgICAgICAgICAgPHNwYW4gcmVmPXtjb250YWluZXJSZWZ9IGNzcz17c2VsZWN0RGVmYXVsdFN0eWxlLmNvbnRlbnQodGhlbWUpfT5cbiAgICAgICAgICAgICAgICB7bW9kZSA9PT0gXCJtdWx0aXBsZVwiICYmIHJlbmRlckxhYmVsKGZpbHRlcmVkQWN0aXZlVmFsdWVzLCBjdXJyZW50TGFiZWwpfVxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgY3NzPXtzZWxlY3REZWZhdWx0U3R5bGUuc2VhcmNoSW5wdXQodGhlbWUpfVxuICAgICAgICAgICAgICAgICAgdmFsdWU9e2lucHV0VmFsdWUgPz8gXCJcIn1cbiAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtzZWFyY2hIYW5kbGV9XG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17c2VhcmNoSW5wdXRQbGFjZWhvbGRlcj8udG9TdHJpbmcoKX1cbiAgICAgICAgICAgICAgICAgIHJlZj17aW5wdXRSZWZ9XG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICBzdHlsZT17Z2V0U2VsZWN0U2VhcmNoSW5wdXRXaWR0aFN0eWxlKFxuICAgICAgICAgICAgICAgICAgICBtb2RlID09PSBcIm11bHRpcGxlXCIsXG4gICAgICAgICAgICAgICAgICAgIGlzRW1wdHksXG4gICAgICAgICAgICAgICAgICAgIGxldHRlcnNOdW1iZXJcbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICBkYXRhLWVsZW1lbnQ9XCJzZWFyY2gtaW5wdXRcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgcmVmPXtjb250YWluZXJSZWZ9XG4gICAgICAgICAgICAgICAgY3NzPXtbc2VsZWN0RGVmYXVsdFN0eWxlLmNvbnRlbnQodGhlbWUpLCBzdHlsZXM/LmNvbnRlbnQ/Lih0aGVtZSldfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3JlbmRlckxhYmVsKGZpbHRlcmVkQWN0aXZlVmFsdWVzLCBjdXJyZW50TGFiZWwpID8/IHJlbmRlclBsYWNlaG9sZGVyKCl9XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAge3dpdGhDbGVhckJ1dHRvbiAmJiAoXG4gICAgICAgICAgICA8Q2xvc2VDaXJjbGVGaWxsZWRcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiY2xlYW4tYnV0dG9uXCJcbiAgICAgICAgICAgICAgb25DbGljaz17Y2xlYXJTZWxlY3R9XG4gICAgICAgICAgICAgIGNzcz17W3NlbGVjdERlZmF1bHRTdHlsZS5jbGVhbkljb24odGhlbWUpLCBzdHlsZXM/LmNsZWFuSWNvbj8uKHRoZW1lKV19XG4gICAgICAgICAgICAgIGRhdGEtZWxlbWVudD1cImNsZWFuLWJ1dHRvblwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG4gICAgICAgICAgPHNwYW4gY3NzPXtbc2VsZWN0RGVmYXVsdFN0eWxlLnN1ZmZpeEljb24odGhlbWUpLCBzdHlsZXM/LnN1ZmZpeEljb24/Lih0aGVtZSldfT5cbiAgICAgICAgICAgIHtyZW5kZXJTdWZmaXgoKX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvc3Bhbj5cblxuICAgICAgICA8U2VsZWN0T3B0aW9uTGlzdDxPcHRpb24sIE9wdGlvblZhbHVlPlxuICAgICAgICAgIG9wdGlvbnM9e2ZpbHRlcmVkQW5kU29ydGVkT3B0aW9uc31cbiAgICAgICAgICByZW5kZXJEcm9wZG93bkl0ZW09e3JlbmRlckRyb3Bkb3duSXRlbX1cbiAgICAgICAgICBvcHRpb25SZW5kZXI9e29wdGlvblJlbmRlcn1cbiAgICAgICAgICB2aXJ0dWFsaXplckVzdGltYXRlU2l6ZT17dmlydHVhbGl6ZXJFc3RpbWF0ZVNpemV9XG4gICAgICAgICAgc3R5bGVzPXtzdHlsZXM/LmRyb3Bkb3duU3R5bGV9XG4gICAgICAgIC8+XG4gICAgICA8L3NwYW4+XG4gICAgPC9iYXNlU2VsZWN0Q29udGV4dC5Qcm92aWRlcj5cbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBCYXNlU2VsZWN0ID0gbWVtbyhCYXNlU2VsZWN0Q29tcG9uZW50KSBhcyB0eXBlb2YgQmFzZVNlbGVjdENvbXBvbmVudDtcbiJdfQ== */"] });
296
+ }
297
+ if (showSearch && isSelectOpen) {
298
+ return /* @__PURE__ */ jsx(SearchOutlined, {});
299
+ }
300
+ return suffixIcon;
301
+ };
302
+ const renderPlaceholder = () => {
303
+ var _a2;
304
+ return /* @__PURE__ */ jsx("span", { css: [selectDefaultStyle.placeholder(theme), (_a2 = styles == null ? void 0 : styles.placeholder) == null ? void 0 : _a2.call(styles, theme), process.env.NODE_ENV === "production" ? "" : ";label:renderPlaceholder;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvZnJvbnRlbmQvbGlicy91aS1raXQvc3JjL2NvbXBvbmVudHMvQmFzZVNlbGVjdC9CYXNlU2VsZWN0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF5WlUiLCJmaWxlIjoiL2J1aWxkcy9mcm9udGVuZC9saWJzL3VpLWtpdC9zcmMvY29tcG9uZW50cy9CYXNlU2VsZWN0L0Jhc2VTZWxlY3QudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgdHlwZSBGb2N1c0V2ZW50LFxuICB0eXBlIEtleWJvYXJkRXZlbnQsXG4gIG1lbW8sXG4gIHR5cGUgTW91c2VFdmVudCxcbiAgdHlwZSBQcm9wc1dpdGhDaGlsZHJlbixcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBnZXRTZWxlY3REZWZhdWx0U3R5bGUsIGdldFNlbGVjdFNlYXJjaElucHV0V2lkdGhTdHlsZSB9IGZyb20gXCIuL0Jhc2VTZWxlY3Quc3R5bGVzXCI7XG5pbXBvcnQgeyB1c2VUaGVtZSB9IGZyb20gXCJob29rcy91c2VUaGVtZVwiO1xuaW1wb3J0IHsgQmFyc091dGxpbmVkLCBDbG9zZUNpcmNsZUZpbGxlZCwgRG93bk91dGxpbmVkLCBTZWFyY2hPdXRsaW5lZCB9IGZyb20gXCJAaW5mb21heGltdW0vaWNvbnNcIjtcbmltcG9ydCB7IGlzRnVuY3Rpb24sIGlzTnVsbCwgaXNOdW1iZXIsIGlzVW5kZWZpbmVkIH0gZnJvbSBcImxvZGFzaC1lc1wiO1xuaW1wb3J0IHsgYXV0b1VwZGF0ZSwgZmxpcCwgb2Zmc2V0LCB1c2VGbG9hdGluZyB9IGZyb20gXCJAZmxvYXRpbmctdWkvcmVhY3RcIjtcbmltcG9ydCB7IGNvbnZlcnRTZWxlY3RQbGFjZW1lbnQsIGdldExhYmVsLCBnZXRWaXNpYmxlTGFiZWxzIH0gZnJvbSBcIi4vQmFzZVNlbGVjdC51dGlsc1wiO1xuaW1wb3J0IHsgdXNlU2VhcmNoIH0gZnJvbSBcIi4vaG9va3MvdXNlU2VhcmNoXCI7XG5pbXBvcnQgeyB1c2VDdXJyZW50VmFsdWUgfSBmcm9tIFwiLi9ob29rcy91c2VDdXJyZW50VmFsdWVcIjtcbmltcG9ydCB7IFNlbGVjdFRhZyB9IGZyb20gXCIuL2NvbXBvbmVudHMvU2VsZWN0VGFnL1NlbGVjdFRhZ1wiO1xuaW1wb3J0IHsgdXNlSGlkZUVsZW1lbnRzIH0gZnJvbSBcIi4vaG9va3MvdXNlSGlkZUVsZW1lbnRzXCI7XG5pbXBvcnQge1xuICBUYWdQbGFjZWhvbGRlcixcbiAgdGFnUGxhY2Vob2xkZXJEYXRhRWxlbWVudCxcbn0gZnJvbSBcIi4vY29tcG9uZW50cy9UYWdQbGFjZWhvbGRlci9UYWdQbGFjZWhvbGRlclwiO1xuaW1wb3J0IHR5cGUgeyBCYXNlU2VsZWN0T3B0aW9uSW50ZXJmYWNlLCBCYXNlU2VsZWN0UHJvcHMgfSBmcm9tIFwiLi9CYXNlU2VsZWN0LnR5cGVzXCI7XG5pbXBvcnQgeyBTZWxlY3RPcHRpb25MaXN0IH0gZnJvbSBcIi4vY29tcG9uZW50cy9TZWxlY3RPcHRpb25MaXN0L1NlbGVjdE9wdGlvbkxpc3RcIjtcbmltcG9ydCB7IGNyZWF0ZUJhc2VTZWxlY3RDb250ZXh0LCB0eXBlIEJhc2VTZWxlY3RDb250ZXh0U2hhcGUgfSBmcm9tIFwiLi9jb250ZXh0cy9CYXNlU2VsZWN0Q29udGV4dFwiO1xuXG5jb25zdCBCYXNlU2VsZWN0Q29tcG9uZW50ID0gPE9wdGlvbiBleHRlbmRzIEJhc2VTZWxlY3RPcHRpb25JbnRlcmZhY2U8T3B0aW9uVmFsdWU+LCBPcHRpb25WYWx1ZT4oe1xuICBvcHRpb25zID0gW10sXG4gIG1vZGUgPSBcInNpbmdsZVwiLFxuICB2YXJpYW50ID0gXCJvdXRsaW5lZFwiLFxuICBkZWZhdWx0VmFsdWUsXG4gIGRlZmF1bHRPcGVuID0gZmFsc2UsXG4gIGRlZmF1bHRBY3RpdmVGaXJzdE9wdGlvbixcbiAgdmFsdWUsXG4gIG9wZW4sXG4gIHBsYWNlaG9sZGVyLFxuICBkcm9wZG93bk1pbldpZHRoID0gMTIwLFxuICBkcm9wZG93bk1heEhlaWdodCA9IDQxNCxcbiAgYWxsb3dDbGVhciA9IGZhbHNlLFxuICBhdXRvRm9jdXMsXG4gIHByZWZpeCxcbiAgc3VmZml4SWNvbiA9IDxEb3duT3V0bGluZWQgLz4sXG4gIHN0YXR1cyA9IFwiZGVmYXVsdFwiLFxuICBkaXNhYmxlZCA9IGZhbHNlLFxuICBkcm9wZG93blByb21wdCxcbiAgbG9hZGluZyA9IGZhbHNlLFxuICBkcm9wZG93bkNsYXNzTmFtZSxcbiAgc3R5bGVzLFxuICBkcm9wZG93bk1hdGNoU2VsZWN0V2lkdGggPSB0cnVlLFxuICBwbGFjZW1lbnQgPSBcImJvdHRvbUxlZnRcIixcbiAgdmlydHVhbCA9IHRydWUsXG4gIGVtcHR5Q29udGVudCA9IFwiXCIsXG4gIHNob3dTZWFyY2ggPSBtb2RlID09PSBcInNpbmdsZVwiID8gZmFsc2UgOiB0cnVlLFxuICBzZWFyY2hWYWx1ZSxcbiAgbm90Rm91bmRDb250ZW50ID0gXCJOb3QgZm91bmRcIixcbiAgb3B0aW9uTGFiZWxQcm9wID0gXCJ0aXRsZVwiLFxuICBkcmF3ZXIgPSBmYWxzZSxcbiAgYXV0b0NsZWFyU2VhcmNoVmFsdWUgPSB0cnVlLFxuICBtYXhUYWdDb3VudCxcbiAgbWF4VGFnVGV4dExlbmd0aCxcbiAgbWF4VGFnUGxhY2Vob2xkZXIsXG4gIGN1cnJlbnRTZWxlY3RpbmdJbmRleCxcbiAgZ2V0Q3VycmVudFNlbGVjdGluZ1ZhbHVlLFxuICBvbktleUNvbnRyb2wsXG4gIGdldE9wdGlvbkJ5VmFsdWUsXG4gIHZpcnR1YWxpemVyRXN0aW1hdGVTaXplLFxuICBmaWx0ZXJPcHRpb25zLFxuICBmaWx0ZXJTb3J0LFxuICB2YWx1ZXNGaWx0ZXIsXG4gIGRyb3Bkb3duUmVuZGVyLFxuICBvcHRpb25SZW5kZXIsXG4gIGxhYmVsUmVuZGVyLFxuICBvbkJsdXIsXG4gIG9uQ2hhbmdlLFxuICBvbkNsZWFyLFxuICBvbkRyb3Bkb3duVmlzaWJsZUNoYW5nZSxcbiAgb25Gb2N1cyxcbiAgb25JbnB1dEtleURvd24sXG4gIG9uU2VsZWN0LFxuICBnZXRQb3B1cENvbnRhaW5lciA9ICgpID0+IGRvY3VtZW50LmJvZHksXG4gIG9uU2VhcmNoLFxuICB0YWdSZW5kZXIsXG4gIG9uRGVzZWxlY3QsXG4gIHJlbmRlckRyb3Bkb3duSXRlbSxcbiAgb25UYWdDbG9zZSxcbn06IFByb3BzV2l0aENoaWxkcmVuPEJhc2VTZWxlY3RQcm9wczxPcHRpb24sIE9wdGlvblZhbHVlPj4pID0+IHtcbiAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpO1xuICBjb25zdCBiYXNlU2VsZWN0Q29udGV4dCA9IGNyZWF0ZUJhc2VTZWxlY3RDb250ZXh0PE9wdGlvblZhbHVlPigpO1xuXG4gIGNvbnN0IHsgZmlsdGVyZWRBbmRTb3J0ZWRPcHRpb25zLCBzZWFyY2hJbnB1dFZhbHVlLCBzZWFyY2hIYW5kbGUsIGNsZWFyU2VhcmNoVmFsdWUgfSA9IHVzZVNlYXJjaDxcbiAgICBPcHRpb24sXG4gICAgT3B0aW9uVmFsdWVcbiAgPih7XG4gICAgb3B0aW9ucyxcbiAgICBzZWFyY2hWYWx1ZSxcbiAgICBvblNlYXJjaCxcbiAgICBmaWx0ZXJTb3J0LFxuICAgIGZpbHRlck9wdGlvbnMsXG4gIH0pO1xuXG4gIGNvbnN0IHsgY3VycmVudFZhbHVlLCBjaGFuZ2VDdXJyZW50VmFsdWUsIHJlbW92ZVZhbHVlLCBjbGVhckN1cnJlbnRWYWx1ZSB9ID0gdXNlQ3VycmVudFZhbHVlKFxuICAgIG1vZGUsXG4gICAgZGVmYXVsdFZhbHVlLFxuICAgIGRlZmF1bHRBY3RpdmVGaXJzdE9wdGlvbixcbiAgICBvcHRpb25zLFxuICAgIG9uRGVzZWxlY3RcbiAgKTtcblxuICBjb25zdCBbaXNTZWxlY3RPcGVuLCBzZXRJc1NlbGVjdE9wZW5dID0gdXNlU3RhdGUoZGVmYXVsdE9wZW4pO1xuICBjb25zdCBbaXNIb3Zlciwgc2V0SXNIb3Zlcl0gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgY29uc3QgaXNJbml0aWFsTW91bnQgPSB1c2VSZWYodHJ1ZSk7XG4gIGNvbnN0IGNvbnRyb2xSZWYgPSB1c2VSZWY8SFRNTFNwYW5FbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IGlucHV0UmVmID0gdXNlUmVmPEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsPihudWxsKTtcblxuICBjb25zdCByZWZlcmVuY2VPZmZzZXRXaWR0aCA9IGNvbnRyb2xSZWYuY3VycmVudD8ub2Zmc2V0V2lkdGg7XG5cbiAgY29uc3QgeyByZWZzLCBmbG9hdGluZ1N0eWxlcyB9ID0gdXNlRmxvYXRpbmc8SFRNTFNwYW5FbGVtZW50Pih7XG4gICAgd2hpbGVFbGVtZW50c01vdW50ZWQ6IGF1dG9VcGRhdGUsXG4gICAgcGxhY2VtZW50OiBjb252ZXJ0U2VsZWN0UGxhY2VtZW50KHBsYWNlbWVudCksXG4gICAgbWlkZGxld2FyZTogW29mZnNldCg0KSwgZmxpcCgpXSxcbiAgfSk7XG5cbiAgY29uc3QgcmV0dXJuRm9jdXNUb1dyYXBwZXIgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBjb250cm9sUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgfSk7XG4gIH0sIFtdKTtcblxuICBjb25zdCByZXR1cm5Gb2N1c1RvSW5wdXQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpbnB1dFJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgIH0pO1xuICB9LCBbXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWlzSW5pdGlhbE1vdW50LmN1cnJlbnQpIHtcbiAgICAgIGNvbnN0IG9wdGlvbnMgPSBjdXJyZW50VmFsdWUucmVkdWNlKChhY2M6IE9wdGlvbltdLCB2YWx1ZSkgPT4ge1xuICAgICAgICBjb25zdCBvcHRpb24gPSBnZXRPcHRpb25CeVZhbHVlKHZhbHVlKTtcblxuICAgICAgICBpZiAoaXNVbmRlZmluZWQob3B0aW9uKSkge1xuICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gWy4uLmFjYywgb3B0aW9uXTtcbiAgICAgIH0sIFtdKTtcblxuICAgICAgb25DaGFuZ2U/LihjdXJyZW50VmFsdWUsIG9wdGlvbnMpO1xuICAgIH1cbiAgfSwgW2N1cnJlbnRWYWx1ZSwgZ2V0T3B0aW9uQnlWYWx1ZSwgb25DaGFuZ2VdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpc0luaXRpYWxNb3VudC5jdXJyZW50KSB7XG4gICAgICBpc0luaXRpYWxNb3VudC5jdXJyZW50ID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIG9uRHJvcGRvd25WaXNpYmxlQ2hhbmdlPy4oKTtcbiAgICB9XG4gIH0sIFtpc1NlbGVjdE9wZW4sIG9uRHJvcGRvd25WaXNpYmxlQ2hhbmdlXSk7XG5cbiAgY29uc3QgYWN0aXZlVmFsdWVzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBpc1VuZGVmaW5lZCh2YWx1ZSkgPyBjdXJyZW50VmFsdWUgOiBbdmFsdWVdO1xuICB9LCBbY3VycmVudFZhbHVlLCB2YWx1ZV0pO1xuXG4gIGNvbnN0IHNlbGVjdERlZmF1bHRTdHlsZSA9IGdldFNlbGVjdERlZmF1bHRTdHlsZSh7XG4gICAgc3RhdHVzLFxuICAgIGRpc2FibGVkLFxuICAgIHZhcmlhbnQsXG4gICAgbXVsdGlwbGU6IG1vZGUgPT09IFwibXVsdGlwbGVcIixcbiAgICBpc0hvdmVyLFxuICAgIG1heFRhZ0NvdW50LFxuICAgIHdpdGhQcmVmaXg6ICEhcHJlZml4LFxuICAgIGlzRW1wdHk6IGFjdGl2ZVZhbHVlcy5sZW5ndGggPT09IDAsXG4gIH0pO1xuXG4gIGNvbnN0IGZpbHRlcmVkQWN0aXZlVmFsdWVzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIGlzRnVuY3Rpb24odmFsdWVzRmlsdGVyKSA/IHZhbHVlc0ZpbHRlcihhY3RpdmVWYWx1ZXMpIDogYWN0aXZlVmFsdWVzO1xuICB9LCBbYWN0aXZlVmFsdWVzLCB2YWx1ZXNGaWx0ZXJdKTtcblxuICBjb25zdCB7IGNvbnRhaW5lclJlZiwgaXNJdGVtSGlkZGVuIH0gPSB1c2VIaWRlRWxlbWVudHMoXG4gICAgZmlsdGVyZWRBY3RpdmVWYWx1ZXMsXG4gICAgdGhlbWUuc3BhY2VYUyxcbiAgICBpbnB1dFJlZixcbiAgICBtYXhUYWdDb3VudFxuICApO1xuXG4gIGNvbnN0IGN1cnJlbnRMYWJlbCA9IGdldExhYmVsPE9wdGlvbiwgT3B0aW9uVmFsdWU+KFxuICAgIGZpbHRlcmVkQWN0aXZlVmFsdWVzLFxuICAgIGdldE9wdGlvbkJ5VmFsdWUsXG4gICAgb3B0aW9uTGFiZWxQcm9wXG4gICk7XG5cbiAgY29uc3Qgd2l0aERyYXdlciA9IG1vZGUgPT09IFwibXVsdGlwbGVcIiAmJiBkcmF3ZXI7XG4gIGNvbnN0IHdpdGhBdXRvQ2xlYXIgPSBtb2RlID09PSBcInNpbmdsZVwiIHx8IGF1dG9DbGVhclNlYXJjaFZhbHVlO1xuXG4gIGNvbnN0IGNsaWNrSGFuZGxlID0gKCkgPT4ge1xuICAgIGlmIChkaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHNldElzU2VsZWN0T3BlbigocHJldikgPT4gIXByZXYpO1xuICB9O1xuXG4gIGNvbnN0IGNoYW5nZUhhbmRsZSA9IHVzZUNhbGxiYWNrKFxuICAgICh2YWx1ZTogT3B0aW9uVmFsdWUgfCBPcHRpb25WYWx1ZVtdKSA9PiB7XG4gICAgICBjaGFuZ2VDdXJyZW50VmFsdWUodmFsdWUpO1xuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBvcHRpb24gPSBnZXRPcHRpb25CeVZhbHVlKHZhbHVlKTtcblxuICAgICAgaWYgKHdpdGhBdXRvQ2xlYXIpIHtcbiAgICAgICAgY2xlYXJTZWFyY2hWYWx1ZSgpO1xuICAgICAgfVxuXG4gICAgICBpZiAob3B0aW9uKSB7XG4gICAgICAgIG9uU2VsZWN0Py4odmFsdWUsIG9wdGlvbik7XG4gICAgICB9XG4gICAgfSxcbiAgICBbY2hhbmdlQ3VycmVudFZhbHVlLCBjbGVhclNlYXJjaFZhbHVlLCBnZXRPcHRpb25CeVZhbHVlLCBvblNlbGVjdCwgd2l0aEF1dG9DbGVhcl1cbiAgKTtcblxuICBjb25zdCBjbG9zZU9wdGlvbkxpc3QgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0SXNTZWxlY3RPcGVuKGZhbHNlKTtcbiAgfSwgW10pO1xuXG4gIGNvbnN0IGJsdXJIYW5kbGUgPSAoZTogRm9jdXNFdmVudCkgPT4ge1xuICAgIGNvbnN0IGlzRm9jdXNPbk9wdGlvbkxpc3QgPSByZWZzLmZsb2F0aW5nLmN1cnJlbnQ/LmNvbnRhaW5zKGUucmVsYXRlZFRhcmdldCk7XG4gICAgY29uc3QgaXNGb2N1c09uU2VhcmNoSW5wdXQgPSAhaXNOdWxsKGlucHV0UmVmLmN1cnJlbnQpICYmIGUucmVsYXRlZFRhcmdldCA9PT0gaW5wdXRSZWYuY3VycmVudDtcbiAgICBjb25zdCBpc0ZvY3VzT25Db250cm9sID0gZS5yZWxhdGVkVGFyZ2V0ID09PSBjb250cm9sUmVmLmN1cnJlbnQ7XG5cbiAgICBpZiAoaXNGb2N1c09uT3B0aW9uTGlzdCB8fCBpc0ZvY3VzT25TZWFyY2hJbnB1dCB8fCBpc0ZvY3VzT25Db250cm9sKSB7XG4gICAgICBpZiAoc2hvd1NlYXJjaCkge1xuICAgICAgICByZXR1cm5Gb2N1c1RvSW5wdXQoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybkZvY3VzVG9XcmFwcGVyKCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBvbkJsdXI/LihlKTtcbiAgICBjbGVhclNlYXJjaFZhbHVlKCk7XG4gICAgY2xvc2VPcHRpb25MaXN0KCk7XG4gIH07XG5cbiAgY29uc3QgY2xlYXJTZWxlY3QgPSB1c2VDYWxsYmFjayhcbiAgICAoZTogTW91c2VFdmVudCkgPT4ge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgY2xlYXJDdXJyZW50VmFsdWUoKTtcbiAgICAgIG9uQ2xlYXI/LigpO1xuICAgIH0sXG4gICAgW2NsZWFyQ3VycmVudFZhbHVlLCBvbkNsZWFyXVxuICApO1xuXG4gIGNvbnN0IGtleURvd25IYW5kbGVyID0gKGU6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICBpZiAoZS5rZXkgPT09IFwiRW50ZXJcIikge1xuICAgICAgaWYgKGlzU2VsZWN0T3Blbikge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGdldEN1cnJlbnRTZWxlY3RpbmdWYWx1ZSgpO1xuXG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY3VycmVudFZhbHVlLmluY2x1ZGVzKHZhbHVlKSkge1xuICAgICAgICAgIHJlbW92ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjaGFuZ2VDdXJyZW50VmFsdWUodmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHdpdGhBdXRvQ2xlYXIpIHtcbiAgICAgICAgICBjbGVhclNlYXJjaFZhbHVlKCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY2xpY2tIYW5kbGUoKTtcbiAgICB9XG5cbiAgICBzZXRJc1NlbGVjdE9wZW4odHJ1ZSk7XG5cbiAgICBvbktleUNvbnRyb2woZSk7XG4gICAgb25JbnB1dEtleURvd24/LihlKTtcbiAgfTtcblxuICBjb25zdCBtb3VzZU92ZXJIYW5kbGUgPSAoKSA9PiB7XG4gICAgc2V0SXNIb3Zlcih0cnVlKTtcbiAgfTtcblxuICBjb25zdCBtb3VzZU91dEhhbmRsZSA9ICgpID0+IHtcbiAgICBzZXRJc0hvdmVyKGZhbHNlKTtcbiAgfTtcblxuICBjb25zdCBmb2N1c0hhbmRsZSA9IChlOiBGb2N1c0V2ZW50KSA9PiB7XG4gICAgb25Gb2N1cz8uKGUpO1xuXG4gICAgaWYgKCFzaG93U2VhcmNoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcmV0dXJuRm9jdXNUb0lucHV0KCk7XG4gIH07XG5cbiAgY29uc3QgcmVuZGVyVGFnUGxhY2Vob2xkZXIgPSAoaGlkZGVuRWxlbWVudHNDb3VudGVyOiBudW1iZXIpID0+IHtcbiAgICBpZiAoaXNVbmRlZmluZWQobWF4VGFnUGxhY2Vob2xkZXIpKSB7XG4gICAgICByZXR1cm4gPFRhZ1BsYWNlaG9sZGVyIGhpZGRlbkVsZW1lbnRzQ291bnRlcj17aGlkZGVuRWxlbWVudHNDb3VudGVyfSAvPjtcbiAgICB9XG5cbiAgICBpZiAoIWlzRnVuY3Rpb24obWF4VGFnUGxhY2Vob2xkZXIpKSB7XG4gICAgICByZXR1cm4gPHNwYW4gZGF0YS1lbGVtZW50PXt0YWdQbGFjZWhvbGRlckRhdGFFbGVtZW50fT57bWF4VGFnUGxhY2Vob2xkZXJ9PC9zcGFuPjtcbiAgICB9XG5cbiAgICBjb25zdCBoaWRkZW5FbGVtZW50cyA9IGN1cnJlbnRWYWx1ZS5yZWR1Y2UoKGFjYzogT3B0aW9uW10sIHZhbHVlKSA9PiB7XG4gICAgICBjb25zdCBpc0hpZGRlbiA9IGlzSXRlbUhpZGRlbi5nZXQodmFsdWUpO1xuICAgICAgY29uc3Qgb3B0aW9uID0gZ2V0T3B0aW9uQnlWYWx1ZSh2YWx1ZSk7XG5cbiAgICAgIGlmICghaXNIaWRkZW4gfHwgaXNVbmRlZmluZWQob3B0aW9uKSkge1xuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfVxuXG4gICAgICBhY2MucHVzaChvcHRpb24pO1xuXG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIFtdKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8c3BhbiBkYXRhLWVsZW1lbnQ9e3RhZ1BsYWNlaG9sZGVyRGF0YUVsZW1lbnR9PnttYXhUYWdQbGFjZWhvbGRlcihoaWRkZW5FbGVtZW50cyl9PC9zcGFuPlxuICAgICk7XG4gIH07XG5cbiAgY29uc3QgcmVuZGVyTGFiZWwgPSAodmFsdWVzOiBPcHRpb25WYWx1ZVtdLCBjdXJyZW50TGFiZWw6IHN0cmluZ1tdKSA9PiB7XG4gICAgY29uc3QgdmlzaWJsZUxhYmVscyA9IGdldFZpc2libGVMYWJlbHMoY3VycmVudExhYmVsLCBtYXhUYWdDb3VudCk7XG5cbiAgICBjb25zdCBsYWJlbCA9IHZpc2libGVMYWJlbHMubWFwKChsYWJlbCwgaW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdmFsdWVzW2luZGV4XSBhcyBPcHRpb25WYWx1ZTtcblxuICAgICAgaWYgKGlzRnVuY3Rpb24obGFiZWxSZW5kZXIpKSB7XG4gICAgICAgIHJldHVybiBsYWJlbFJlbmRlcih7IGxhYmVsLCB2YWx1ZSB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKG1vZGUgPT09IFwic2luZ2xlXCIpIHtcbiAgICAgICAgcmV0dXJuIGxhYmVsO1xuICAgICAgfVxuXG4gICAgICBpZiAoaXNGdW5jdGlvbih0YWdSZW5kZXIpKSB7XG4gICAgICAgIHJldHVybiB0YWdSZW5kZXIobGFiZWwpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBpc0hpZGRlbiA9ICEhaXNJdGVtSGlkZGVuLmdldCh2YWx1ZSk7XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTZWxlY3RUYWc8T3B0aW9uVmFsdWU+XG4gICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgIGxhYmVsPXtsYWJlbH1cbiAgICAgICAgICByZW1vdmVWYWx1ZT17cmVtb3ZlVmFsdWV9XG4gICAgICAgICAgbWF4VGFnVGV4dExlbmd0aD17bWF4VGFnVGV4dExlbmd0aH1cbiAgICAgICAgICBpc0JvcmRlcmxlc3M9e3ZhcmlhbnQgPT09IFwiYm9yZGVybGVzc1wifVxuICAgICAgICAgIGlzRXJyb3I9e3N0YXR1cyA9PT0gXCJlcnJvclwifVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBpc0hpZGRlbj17aXNIaWRkZW59XG4gICAgICAgICAgb25UYWdDbG9zZT17b25UYWdDbG9zZX1cbiAgICAgICAgICBrZXk9e3ZhbHVlPy50b1N0cmluZygpfVxuICAgICAgICAvPlxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGhpZGRlbkVsZW1lbnRzQ291bnRlciA9IGlzTnVtYmVyKG1heFRhZ0NvdW50KVxuICAgICAgPyBpc0l0ZW1IaWRkZW4uc2l6ZSAtIG1heFRhZ0NvdW50XG4gICAgICA6IEFycmF5LmZyb20oaXNJdGVtSGlkZGVuLnZhbHVlcygpKS5yZWR1Y2UoKGFjYywgaXNIaWRkZW4pID0+IChpc0hpZGRlbiA/IGFjYyArIDEgOiBhY2MpLCAwKTtcblxuICAgIGNvbnN0IHdpdGhUYWdQbGFjZWhvbGRlciA9XG4gICAgICAhaXNVbmRlZmluZWQobWF4VGFnQ291bnQpICYmIG1vZGUgPT09IFwibXVsdGlwbGVcIiAmJiBoaWRkZW5FbGVtZW50c0NvdW50ZXIgPiAwO1xuXG4gICAgaWYgKGxhYmVsLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIHtsYWJlbH1cbiAgICAgICAge3dpdGhUYWdQbGFjZWhvbGRlciAmJiByZW5kZXJUYWdQbGFjZWhvbGRlcihoaWRkZW5FbGVtZW50c0NvdW50ZXIpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICBjb25zdCByZW5kZXJTdWZmaXggPSAoKSA9PiB7XG4gICAgaWYgKHdpdGhEcmF3ZXIpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxCYXJzT3V0bGluZWRcbiAgICAgICAgICBvbkNsaWNrPXtjbGlja0hhbmRsZX1cbiAgICAgICAgICBjc3M9e1tzZWxlY3REZWZhdWx0U3R5bGUuZHJhd2VySWNvbih0aGVtZSksIHN0eWxlcz8uZHJhd2VySWNvbj8uKHRoZW1lKV19XG4gICAgICAgIC8+XG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChzaG93U2VhcmNoICYmIGlzU2VsZWN0T3Blbikge1xuICAgICAgcmV0dXJuIDxTZWFyY2hPdXRsaW5lZCAvPjtcbiAgICB9XG5cbiAgICByZXR1cm4gc3VmZml4SWNvbjtcbiAgfTtcblxuICBjb25zdCByZW5kZXJQbGFjZWhvbGRlciA9ICgpID0+IChcbiAgICA8c3BhbiBjc3M9e1tzZWxlY3REZWZhdWx0U3R5bGUucGxhY2Vob2xkZXIodGhlbWUpLCBzdHlsZXM/LnBsYWNlaG9sZGVyPy4odGhlbWUpXX0+XG4gICAgICB7cGxhY2Vob2xkZXJ9XG4gICAgPC9zcGFuPlxuICApO1xuXG4gIGNvbnN0IHdpdGhDbGVhckJ1dHRvbiA9IGFsbG93Q2xlYXIgJiYgISFmaWx0ZXJlZEFjdGl2ZVZhbHVlcy5sZW5ndGg7XG5cbiAgY29uc3QgaW5wdXRWYWx1ZSA9XG4gICAgbW9kZSA9PT0gXCJtdWx0aXBsZVwiIHx8IGlzU2VsZWN0T3BlblxuICAgICAgPyAoc2VhcmNoVmFsdWUgPz8gc2VhcmNoSW5wdXRWYWx1ZSlcbiAgICAgIDogY3VycmVudExhYmVsWzBdPy50b1N0cmluZygpO1xuXG4gIGNvbnN0IGlzRW1wdHkgPSBmaWx0ZXJlZEFjdGl2ZVZhbHVlcy5sZW5ndGggPT09IDA7XG4gIGNvbnN0IHNpbmdsZU1vZFBsYWNlaG9sZGVyID0gY3VycmVudExhYmVsWzBdID8/IHBsYWNlaG9sZGVyID8/IFwiXCI7XG4gIGNvbnN0IG11bHRpcGxlTW9kUGxhY2Vob2xkZXIgPSBpc0VtcHR5ID8gcGxhY2Vob2xkZXIgOiB1bmRlZmluZWQ7XG5cbiAgY29uc3Qgc2VhcmNoSW5wdXRQbGFjZWhvbGRlciA9IG1vZGUgPT09IFwic2luZ2xlXCIgPyBzaW5nbGVNb2RQbGFjZWhvbGRlciA6IG11bHRpcGxlTW9kUGxhY2Vob2xkZXI7XG5cbiAgY29uc3QgbGV0dGVyc051bWJlciA9IChpbnB1dFZhbHVlPy5sZW5ndGggPz8gMCkgKyAxO1xuXG4gIGNvbnN0IGhhc0ljb25QcmVmaXggPSB0eXBlb2YgcHJlZml4ID09PSBcIm9iamVjdFwiO1xuXG4gIGNvbnN0IGNvbnRleHRWYWx1ZTogQmFzZVNlbGVjdENvbnRleHRTaGFwZTxPcHRpb25WYWx1ZT4gPSB7XG4gICAgY3VycmVudFZhbHVlOiBhY3RpdmVWYWx1ZXMsXG4gICAgc2hvd09wdGlvbkxpc3Q6IG9wZW4gPz8gaXNTZWxlY3RPcGVuLFxuICAgIHNldFZhbHVlOiBjaGFuZ2VIYW5kbGUsXG4gICAgY2xvc2VPcHRpb25MaXN0LFxuICAgIGRyb3Bkb3duTWluV2lkdGgsXG4gICAgZHJvcGRvd25NYXhIZWlnaHQsXG4gICAgZHJvcGRvd25Qcm9tcHQsXG4gICAgbG9hZGluZyxcbiAgICBkcm9wZG93bkNsYXNzTmFtZSxcbiAgICBkcm9wZG93blJlbmRlcixcbiAgICBkcm9wZG93bk1hdGNoU2VsZWN0V2lkdGgsXG4gICAgcmVmZXJlbmNlT2Zmc2V0V2lkdGgsXG4gICAgZmxvYXRpbmdTdHlsZXMsXG4gICAgc2V0RmxvYXRpbmc6IHJlZnMuc2V0RmxvYXRpbmcsXG4gICAgZmxvYXRpbmdSZWY6IHJlZnMuZmxvYXRpbmcsXG4gICAgZ2V0UG9wdXBDb250YWluZXIsXG4gICAgdmlydHVhbCxcbiAgICBjdXJyZW50U2VsZWN0aW5nSW5kZXgsXG4gICAgZW1wdHlDb250ZW50LFxuICAgIG5vdEZvdW5kQ29udGVudCxcbiAgICBzZWFyY2hWYWx1ZTogc2VhcmNoVmFsdWUgPz8gc2VhcmNoSW5wdXRWYWx1ZSxcbiAgICBzaG93U2VhcmNoLFxuICAgIG1vZGUsXG4gICAgcmVtb3ZlVmFsdWUsXG4gICAgaXNJdGVtSGlkZGVuLFxuICAgIGdldEN1cnJlbnRTZWxlY3RpbmdWYWx1ZSxcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxiYXNlU2VsZWN0Q29udGV4dC5Qcm92aWRlciB2YWx1ZT17Y29udGV4dFZhbHVlfT5cbiAgICAgIDxzcGFuXG4gICAgICAgIGNzcz17W3NlbGVjdERlZmF1bHRTdHlsZS53cmFwcGVyKHRoZW1lKSwgc3R5bGVzPy53cmFwcGVyPy4odGhlbWUpXX1cbiAgICAgICAgdGFiSW5kZXg9ezF9XG4gICAgICAgIG9uS2V5RG93bj17a2V5RG93bkhhbmRsZXJ9XG4gICAgICAgIG9uTW91c2VPdmVyPXttb3VzZU92ZXJIYW5kbGV9XG4gICAgICAgIG9uTW91c2VPdXQ9e21vdXNlT3V0SGFuZGxlfVxuICAgICAgICBvbkZvY3VzPXtmb2N1c0hhbmRsZX1cbiAgICAgICAgb25CbHVyPXtibHVySGFuZGxlfVxuICAgICAgICBhdXRvRm9jdXM9e2F1dG9Gb2N1c31cbiAgICAgICAgcmVmPXtjb250cm9sUmVmfVxuICAgICAgPlxuICAgICAgICA8c3BhblxuICAgICAgICAgIGNzcz17W3NlbGVjdERlZmF1bHRTdHlsZS5ib2R5KHRoZW1lKSwgc3R5bGVzPy5ib2R5Py4odGhlbWUpXX1cbiAgICAgICAgICBvbkNsaWNrPXshd2l0aERyYXdlciA/IGNsaWNrSGFuZGxlIDogdW5kZWZpbmVkfVxuICAgICAgICAgIHJlZj17cmVmcy5zZXRSZWZlcmVuY2V9XG4gICAgICAgID5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgY3NzPXtbc2VsZWN0RGVmYXVsdFN0eWxlLnByZWZpeEFuZENvbnRlbnQodGhlbWUpLCBzdHlsZXM/LnByZWZpeEFuZENvbnRlbnQ/Lih0aGVtZSldfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtwcmVmaXggJiYgKFxuICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgIGNzcz17W3NlbGVjdERlZmF1bHRTdHlsZS5wcmVmaXgoaGFzSWNvblByZWZpeCkodGhlbWUpLCBzdHlsZXM/LnByZWZpeD8uKHRoZW1lKV19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7cHJlZml4fVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICApfVxuXG4gICAgICAgICAgICB7c2hvd1NlYXJjaCA/IChcbiAgICAgICAgICAgICAgPHNwYW4gcmVmPXtjb250YWluZXJSZWZ9IGNzcz17c2VsZWN0RGVmYXVsdFN0eWxlLmNvbnRlbnQodGhlbWUpfT5cbiAgICAgICAgICAgICAgICB7bW9kZSA9PT0gXCJtdWx0aXBsZVwiICYmIHJlbmRlckxhYmVsKGZpbHRlcmVkQWN0aXZlVmFsdWVzLCBjdXJyZW50TGFiZWwpfVxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgY3NzPXtzZWxlY3REZWZhdWx0U3R5bGUuc2VhcmNoSW5wdXQodGhlbWUpfVxuICAgICAgICAgICAgICAgICAgdmFsdWU9e2lucHV0VmFsdWUgPz8gXCJcIn1cbiAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtzZWFyY2hIYW5kbGV9XG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17c2VhcmNoSW5wdXRQbGFjZWhvbGRlcj8udG9TdHJpbmcoKX1cbiAgICAgICAgICAgICAgICAgIHJlZj17aW5wdXRSZWZ9XG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICBzdHlsZT17Z2V0U2VsZWN0U2VhcmNoSW5wdXRXaWR0aFN0eWxlKFxuICAgICAgICAgICAgICAgICAgICBtb2RlID09PSBcIm11bHRpcGxlXCIsXG4gICAgICAgICAgICAgICAgICAgIGlzRW1wdHksXG4gICAgICAgICAgICAgICAgICAgIGxldHRlcnNOdW1iZXJcbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICBkYXRhLWVsZW1lbnQ9XCJzZWFyY2gtaW5wdXRcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgcmVmPXtjb250YWluZXJSZWZ9XG4gICAgICAgICAgICAgICAgY3NzPXtbc2VsZWN0RGVmYXVsdFN0eWxlLmNvbnRlbnQodGhlbWUpLCBzdHlsZXM/LmNvbnRlbnQ/Lih0aGVtZSldfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3JlbmRlckxhYmVsKGZpbHRlcmVkQWN0aXZlVmFsdWVzLCBjdXJyZW50TGFiZWwpID8/IHJlbmRlclBsYWNlaG9sZGVyKCl9XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAge3dpdGhDbGVhckJ1dHRvbiAmJiAoXG4gICAgICAgICAgICA8Q2xvc2VDaXJjbGVGaWxsZWRcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiY2xlYW4tYnV0dG9uXCJcbiAgICAgICAgICAgICAgb25DbGljaz17Y2xlYXJTZWxlY3R9XG4gICAgICAgICAgICAgIGNzcz17W3NlbGVjdERlZmF1bHRTdHlsZS5jbGVhbkljb24odGhlbWUpLCBzdHlsZXM/LmNsZWFuSWNvbj8uKHRoZW1lKV19XG4gICAgICAgICAgICAgIGRhdGEtZWxlbWVudD1cImNsZWFuLWJ1dHRvblwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG4gICAgICAgICAgPHNwYW4gY3NzPXtbc2VsZWN0RGVmYXVsdFN0eWxlLnN1ZmZpeEljb24odGhlbWUpLCBzdHlsZXM/LnN1ZmZpeEljb24/Lih0aGVtZSldfT5cbiAgICAgICAgICAgIHtyZW5kZXJTdWZmaXgoKX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvc3Bhbj5cblxuICAgICAgICA8U2VsZWN0T3B0aW9uTGlzdDxPcHRpb24sIE9wdGlvblZhbHVlPlxuICAgICAgICAgIG9wdGlvbnM9e2ZpbHRlcmVkQW5kU29ydGVkT3B0aW9uc31cbiAgICAgICAgICByZW5kZXJEcm9wZG93bkl0ZW09e3JlbmRlckRyb3Bkb3duSXRlbX1cbiAgICAgICAgICBvcHRpb25SZW5kZXI9e29wdGlvblJlbmRlcn1cbiAgICAgICAgICB2aXJ0dWFsaXplckVzdGltYXRlU2l6ZT17dmlydHVhbGl6ZXJFc3RpbWF0ZVNpemV9XG4gICAgICAgICAgc3R5bGVzPXtzdHlsZXM/LmRyb3Bkb3duU3R5bGV9XG4gICAgICAgIC8+XG4gICAgICA8L3NwYW4+XG4gICAgPC9iYXNlU2VsZWN0Q29udGV4dC5Qcm92aWRlcj5cbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBCYXNlU2VsZWN0ID0gbWVtbyhCYXNlU2VsZWN0Q29tcG9uZW50KSBhcyB0eXBlb2YgQmFzZVNlbGVjdENvbXBvbmVudDtcbiJdfQ== */"], children: placeholder });
305
+ };
306
+ const withClearButton = allowClear && !!filteredActiveValues.length;
307
+ const inputValue = mode === "multiple" || isSelectOpen ? searchValue ?? searchInputValue : (_b = currentLabel[0]) == null ? void 0 : _b.toString();
308
+ const isEmpty = filteredActiveValues.length === 0;
309
+ const singleModPlaceholder = currentLabel[0] ?? placeholder ?? "";
310
+ const multipleModPlaceholder = isEmpty ? placeholder : void 0;
311
+ const searchInputPlaceholder = mode === "single" ? singleModPlaceholder : multipleModPlaceholder;
312
+ const lettersNumber = ((inputValue == null ? void 0 : inputValue.length) ?? 0) + 1;
313
+ const hasIconPrefix = typeof prefix === "object";
314
+ const contextValue = {
315
+ currentValue: activeValues,
316
+ showOptionList: open ?? isSelectOpen,
317
+ setValue: changeHandle,
318
+ closeOptionList,
319
+ dropdownMinWidth,
320
+ dropdownMaxHeight,
321
+ dropdownPrompt,
322
+ loading,
323
+ dropdownClassName,
324
+ dropdownRender,
325
+ dropdownMatchSelectWidth,
326
+ referenceOffsetWidth,
327
+ floatingStyles,
328
+ setFloating: refs.setFloating,
329
+ floatingRef: refs.floating,
330
+ getPopupContainer,
331
+ virtual,
332
+ currentSelectingIndex,
333
+ emptyContent,
334
+ notFoundContent,
335
+ searchValue: searchValue ?? searchInputValue,
336
+ showSearch,
337
+ mode,
338
+ removeValue,
339
+ isItemHidden,
340
+ getCurrentSelectingValue
341
+ };
342
+ return /* @__PURE__ */ jsx(baseSelectContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsxs("span", { css: [selectDefaultStyle.wrapper(theme), (_c = styles == null ? void 0 : styles.wrapper) == null ? void 0 : _c.call(styles, theme), process.env.NODE_ENV === "production" ? "" : ";label:BaseSelectComponent;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvZnJvbnRlbmQvbGlicy91aS1raXQvc3JjL2NvbXBvbmVudHMvQmFzZVNlbGVjdC9CYXNlU2VsZWN0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUErY1EiLCJmaWxlIjoiL2J1aWxkcy9mcm9udGVuZC9saWJzL3VpLWtpdC9zcmMvY29tcG9uZW50cy9CYXNlU2VsZWN0L0Jhc2VTZWxlY3QudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgdHlwZSBGb2N1c0V2ZW50LFxuICB0eXBlIEtleWJvYXJkRXZlbnQsXG4gIG1lbW8sXG4gIHR5cGUgTW91c2VFdmVudCxcbiAgdHlwZSBQcm9wc1dpdGhDaGlsZHJlbixcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBnZXRTZWxlY3REZWZhdWx0U3R5bGUsIGdldFNlbGVjdFNlYXJjaElucHV0V2lkdGhTdHlsZSB9IGZyb20gXCIuL0Jhc2VTZWxlY3Quc3R5bGVzXCI7XG5pbXBvcnQgeyB1c2VUaGVtZSB9IGZyb20gXCJob29rcy91c2VUaGVtZVwiO1xuaW1wb3J0IHsgQmFyc091dGxpbmVkLCBDbG9zZUNpcmNsZUZpbGxlZCwgRG93bk91dGxpbmVkLCBTZWFyY2hPdXRsaW5lZCB9IGZyb20gXCJAaW5mb21heGltdW0vaWNvbnNcIjtcbmltcG9ydCB7IGlzRnVuY3Rpb24sIGlzTnVsbCwgaXNOdW1iZXIsIGlzVW5kZWZpbmVkIH0gZnJvbSBcImxvZGFzaC1lc1wiO1xuaW1wb3J0IHsgYXV0b1VwZGF0ZSwgZmxpcCwgb2Zmc2V0LCB1c2VGbG9hdGluZyB9IGZyb20gXCJAZmxvYXRpbmctdWkvcmVhY3RcIjtcbmltcG9ydCB7IGNvbnZlcnRTZWxlY3RQbGFjZW1lbnQsIGdldExhYmVsLCBnZXRWaXNpYmxlTGFiZWxzIH0gZnJvbSBcIi4vQmFzZVNlbGVjdC51dGlsc1wiO1xuaW1wb3J0IHsgdXNlU2VhcmNoIH0gZnJvbSBcIi4vaG9va3MvdXNlU2VhcmNoXCI7XG5pbXBvcnQgeyB1c2VDdXJyZW50VmFsdWUgfSBmcm9tIFwiLi9ob29rcy91c2VDdXJyZW50VmFsdWVcIjtcbmltcG9ydCB7IFNlbGVjdFRhZyB9IGZyb20gXCIuL2NvbXBvbmVudHMvU2VsZWN0VGFnL1NlbGVjdFRhZ1wiO1xuaW1wb3J0IHsgdXNlSGlkZUVsZW1lbnRzIH0gZnJvbSBcIi4vaG9va3MvdXNlSGlkZUVsZW1lbnRzXCI7XG5pbXBvcnQge1xuICBUYWdQbGFjZWhvbGRlcixcbiAgdGFnUGxhY2Vob2xkZXJEYXRhRWxlbWVudCxcbn0gZnJvbSBcIi4vY29tcG9uZW50cy9UYWdQbGFjZWhvbGRlci9UYWdQbGFjZWhvbGRlclwiO1xuaW1wb3J0IHR5cGUgeyBCYXNlU2VsZWN0T3B0aW9uSW50ZXJmYWNlLCBCYXNlU2VsZWN0UHJvcHMgfSBmcm9tIFwiLi9CYXNlU2VsZWN0LnR5cGVzXCI7XG5pbXBvcnQgeyBTZWxlY3RPcHRpb25MaXN0IH0gZnJvbSBcIi4vY29tcG9uZW50cy9TZWxlY3RPcHRpb25MaXN0L1NlbGVjdE9wdGlvbkxpc3RcIjtcbmltcG9ydCB7IGNyZWF0ZUJhc2VTZWxlY3RDb250ZXh0LCB0eXBlIEJhc2VTZWxlY3RDb250ZXh0U2hhcGUgfSBmcm9tIFwiLi9jb250ZXh0cy9CYXNlU2VsZWN0Q29udGV4dFwiO1xuXG5jb25zdCBCYXNlU2VsZWN0Q29tcG9uZW50ID0gPE9wdGlvbiBleHRlbmRzIEJhc2VTZWxlY3RPcHRpb25JbnRlcmZhY2U8T3B0aW9uVmFsdWU+LCBPcHRpb25WYWx1ZT4oe1xuICBvcHRpb25zID0gW10sXG4gIG1vZGUgPSBcInNpbmdsZVwiLFxuICB2YXJpYW50ID0gXCJvdXRsaW5lZFwiLFxuICBkZWZhdWx0VmFsdWUsXG4gIGRlZmF1bHRPcGVuID0gZmFsc2UsXG4gIGRlZmF1bHRBY3RpdmVGaXJzdE9wdGlvbixcbiAgdmFsdWUsXG4gIG9wZW4sXG4gIHBsYWNlaG9sZGVyLFxuICBkcm9wZG93bk1pbldpZHRoID0gMTIwLFxuICBkcm9wZG93bk1heEhlaWdodCA9IDQxNCxcbiAgYWxsb3dDbGVhciA9IGZhbHNlLFxuICBhdXRvRm9jdXMsXG4gIHByZWZpeCxcbiAgc3VmZml4SWNvbiA9IDxEb3duT3V0bGluZWQgLz4sXG4gIHN0YXR1cyA9IFwiZGVmYXVsdFwiLFxuICBkaXNhYmxlZCA9IGZhbHNlLFxuICBkcm9wZG93blByb21wdCxcbiAgbG9hZGluZyA9IGZhbHNlLFxuICBkcm9wZG93bkNsYXNzTmFtZSxcbiAgc3R5bGVzLFxuICBkcm9wZG93bk1hdGNoU2VsZWN0V2lkdGggPSB0cnVlLFxuICBwbGFjZW1lbnQgPSBcImJvdHRvbUxlZnRcIixcbiAgdmlydHVhbCA9IHRydWUsXG4gIGVtcHR5Q29udGVudCA9IFwiXCIsXG4gIHNob3dTZWFyY2ggPSBtb2RlID09PSBcInNpbmdsZVwiID8gZmFsc2UgOiB0cnVlLFxuICBzZWFyY2hWYWx1ZSxcbiAgbm90Rm91bmRDb250ZW50ID0gXCJOb3QgZm91bmRcIixcbiAgb3B0aW9uTGFiZWxQcm9wID0gXCJ0aXRsZVwiLFxuICBkcmF3ZXIgPSBmYWxzZSxcbiAgYXV0b0NsZWFyU2VhcmNoVmFsdWUgPSB0cnVlLFxuICBtYXhUYWdDb3VudCxcbiAgbWF4VGFnVGV4dExlbmd0aCxcbiAgbWF4VGFnUGxhY2Vob2xkZXIsXG4gIGN1cnJlbnRTZWxlY3RpbmdJbmRleCxcbiAgZ2V0Q3VycmVudFNlbGVjdGluZ1ZhbHVlLFxuICBvbktleUNvbnRyb2wsXG4gIGdldE9wdGlvbkJ5VmFsdWUsXG4gIHZpcnR1YWxpemVyRXN0aW1hdGVTaXplLFxuICBmaWx0ZXJPcHRpb25zLFxuICBmaWx0ZXJTb3J0LFxuICB2YWx1ZXNGaWx0ZXIsXG4gIGRyb3Bkb3duUmVuZGVyLFxuICBvcHRpb25SZW5kZXIsXG4gIGxhYmVsUmVuZGVyLFxuICBvbkJsdXIsXG4gIG9uQ2hhbmdlLFxuICBvbkNsZWFyLFxuICBvbkRyb3Bkb3duVmlzaWJsZUNoYW5nZSxcbiAgb25Gb2N1cyxcbiAgb25JbnB1dEtleURvd24sXG4gIG9uU2VsZWN0LFxuICBnZXRQb3B1cENvbnRhaW5lciA9ICgpID0+IGRvY3VtZW50LmJvZHksXG4gIG9uU2VhcmNoLFxuICB0YWdSZW5kZXIsXG4gIG9uRGVzZWxlY3QsXG4gIHJlbmRlckRyb3Bkb3duSXRlbSxcbiAgb25UYWdDbG9zZSxcbn06IFByb3BzV2l0aENoaWxkcmVuPEJhc2VTZWxlY3RQcm9wczxPcHRpb24sIE9wdGlvblZhbHVlPj4pID0+IHtcbiAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpO1xuICBjb25zdCBiYXNlU2VsZWN0Q29udGV4dCA9IGNyZWF0ZUJhc2VTZWxlY3RDb250ZXh0PE9wdGlvblZhbHVlPigpO1xuXG4gIGNvbnN0IHsgZmlsdGVyZWRBbmRTb3J0ZWRPcHRpb25zLCBzZWFyY2hJbnB1dFZhbHVlLCBzZWFyY2hIYW5kbGUsIGNsZWFyU2VhcmNoVmFsdWUgfSA9IHVzZVNlYXJjaDxcbiAgICBPcHRpb24sXG4gICAgT3B0aW9uVmFsdWVcbiAgPih7XG4gICAgb3B0aW9ucyxcbiAgICBzZWFyY2hWYWx1ZSxcbiAgICBvblNlYXJjaCxcbiAgICBmaWx0ZXJTb3J0LFxuICAgIGZpbHRlck9wdGlvbnMsXG4gIH0pO1xuXG4gIGNvbnN0IHsgY3VycmVudFZhbHVlLCBjaGFuZ2VDdXJyZW50VmFsdWUsIHJlbW92ZVZhbHVlLCBjbGVhckN1cnJlbnRWYWx1ZSB9ID0gdXNlQ3VycmVudFZhbHVlKFxuICAgIG1vZGUsXG4gICAgZGVmYXVsdFZhbHVlLFxuICAgIGRlZmF1bHRBY3RpdmVGaXJzdE9wdGlvbixcbiAgICBvcHRpb25zLFxuICAgIG9uRGVzZWxlY3RcbiAgKTtcblxuICBjb25zdCBbaXNTZWxlY3RPcGVuLCBzZXRJc1NlbGVjdE9wZW5dID0gdXNlU3RhdGUoZGVmYXVsdE9wZW4pO1xuICBjb25zdCBbaXNIb3Zlciwgc2V0SXNIb3Zlcl0gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgY29uc3QgaXNJbml0aWFsTW91bnQgPSB1c2VSZWYodHJ1ZSk7XG4gIGNvbnN0IGNvbnRyb2xSZWYgPSB1c2VSZWY8SFRNTFNwYW5FbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IGlucHV0UmVmID0gdXNlUmVmPEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsPihudWxsKTtcblxuICBjb25zdCByZWZlcmVuY2VPZmZzZXRXaWR0aCA9IGNvbnRyb2xSZWYuY3VycmVudD8ub2Zmc2V0V2lkdGg7XG5cbiAgY29uc3QgeyByZWZzLCBmbG9hdGluZ1N0eWxlcyB9ID0gdXNlRmxvYXRpbmc8SFRNTFNwYW5FbGVtZW50Pih7XG4gICAgd2hpbGVFbGVtZW50c01vdW50ZWQ6IGF1dG9VcGRhdGUsXG4gICAgcGxhY2VtZW50OiBjb252ZXJ0U2VsZWN0UGxhY2VtZW50KHBsYWNlbWVudCksXG4gICAgbWlkZGxld2FyZTogW29mZnNldCg0KSwgZmxpcCgpXSxcbiAgfSk7XG5cbiAgY29uc3QgcmV0dXJuRm9jdXNUb1dyYXBwZXIgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBjb250cm9sUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgfSk7XG4gIH0sIFtdKTtcblxuICBjb25zdCByZXR1cm5Gb2N1c1RvSW5wdXQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpbnB1dFJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgIH0pO1xuICB9LCBbXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWlzSW5pdGlhbE1vdW50LmN1cnJlbnQpIHtcbiAgICAgIGNvbnN0IG9wdGlvbnMgPSBjdXJyZW50VmFsdWUucmVkdWNlKChhY2M6IE9wdGlvbltdLCB2YWx1ZSkgPT4ge1xuICAgICAgICBjb25zdCBvcHRpb24gPSBnZXRPcHRpb25CeVZhbHVlKHZhbHVlKTtcblxuICAgICAgICBpZiAoaXNVbmRlZmluZWQob3B0aW9uKSkge1xuICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gWy4uLmFjYywgb3B0aW9uXTtcbiAgICAgIH0sIFtdKTtcblxuICAgICAgb25DaGFuZ2U/LihjdXJyZW50VmFsdWUsIG9wdGlvbnMpO1xuICAgIH1cbiAgfSwgW2N1cnJlbnRWYWx1ZSwgZ2V0T3B0aW9uQnlWYWx1ZSwgb25DaGFuZ2VdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpc0luaXRpYWxNb3VudC5jdXJyZW50KSB7XG4gICAgICBpc0luaXRpYWxNb3VudC5jdXJyZW50ID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIG9uRHJvcGRvd25WaXNpYmxlQ2hhbmdlPy4oKTtcbiAgICB9XG4gIH0sIFtpc1NlbGVjdE9wZW4sIG9uRHJvcGRvd25WaXNpYmxlQ2hhbmdlXSk7XG5cbiAgY29uc3QgYWN0aXZlVmFsdWVzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBpc1VuZGVmaW5lZCh2YWx1ZSkgPyBjdXJyZW50VmFsdWUgOiBbdmFsdWVdO1xuICB9LCBbY3VycmVudFZhbHVlLCB2YWx1ZV0pO1xuXG4gIGNvbnN0IHNlbGVjdERlZmF1bHRTdHlsZSA9IGdldFNlbGVjdERlZmF1bHRTdHlsZSh7XG4gICAgc3RhdHVzLFxuICAgIGRpc2FibGVkLFxuICAgIHZhcmlhbnQsXG4gICAgbXVsdGlwbGU6IG1vZGUgPT09IFwibXVsdGlwbGVcIixcbiAgICBpc0hvdmVyLFxuICAgIG1heFRhZ0NvdW50LFxuICAgIHdpdGhQcmVmaXg6ICEhcHJlZml4LFxuICAgIGlzRW1wdHk6IGFjdGl2ZVZhbHVlcy5sZW5ndGggPT09IDAsXG4gIH0pO1xuXG4gIGNvbnN0IGZpbHRlcmVkQWN0aXZlVmFsdWVzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIGlzRnVuY3Rpb24odmFsdWVzRmlsdGVyKSA/IHZhbHVlc0ZpbHRlcihhY3RpdmVWYWx1ZXMpIDogYWN0aXZlVmFsdWVzO1xuICB9LCBbYWN0aXZlVmFsdWVzLCB2YWx1ZXNGaWx0ZXJdKTtcblxuICBjb25zdCB7IGNvbnRhaW5lclJlZiwgaXNJdGVtSGlkZGVuIH0gPSB1c2VIaWRlRWxlbWVudHMoXG4gICAgZmlsdGVyZWRBY3RpdmVWYWx1ZXMsXG4gICAgdGhlbWUuc3BhY2VYUyxcbiAgICBpbnB1dFJlZixcbiAgICBtYXhUYWdDb3VudFxuICApO1xuXG4gIGNvbnN0IGN1cnJlbnRMYWJlbCA9IGdldExhYmVsPE9wdGlvbiwgT3B0aW9uVmFsdWU+KFxuICAgIGZpbHRlcmVkQWN0aXZlVmFsdWVzLFxuICAgIGdldE9wdGlvbkJ5VmFsdWUsXG4gICAgb3B0aW9uTGFiZWxQcm9wXG4gICk7XG5cbiAgY29uc3Qgd2l0aERyYXdlciA9IG1vZGUgPT09IFwibXVsdGlwbGVcIiAmJiBkcmF3ZXI7XG4gIGNvbnN0IHdpdGhBdXRvQ2xlYXIgPSBtb2RlID09PSBcInNpbmdsZVwiIHx8IGF1dG9DbGVhclNlYXJjaFZhbHVlO1xuXG4gIGNvbnN0IGNsaWNrSGFuZGxlID0gKCkgPT4ge1xuICAgIGlmIChkaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHNldElzU2VsZWN0T3BlbigocHJldikgPT4gIXByZXYpO1xuICB9O1xuXG4gIGNvbnN0IGNoYW5nZUhhbmRsZSA9IHVzZUNhbGxiYWNrKFxuICAgICh2YWx1ZTogT3B0aW9uVmFsdWUgfCBPcHRpb25WYWx1ZVtdKSA9PiB7XG4gICAgICBjaGFuZ2VDdXJyZW50VmFsdWUodmFsdWUpO1xuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBvcHRpb24gPSBnZXRPcHRpb25CeVZhbHVlKHZhbHVlKTtcblxuICAgICAgaWYgKHdpdGhBdXRvQ2xlYXIpIHtcbiAgICAgICAgY2xlYXJTZWFyY2hWYWx1ZSgpO1xuICAgICAgfVxuXG4gICAgICBpZiAob3B0aW9uKSB7XG4gICAgICAgIG9uU2VsZWN0Py4odmFsdWUsIG9wdGlvbik7XG4gICAgICB9XG4gICAgfSxcbiAgICBbY2hhbmdlQ3VycmVudFZhbHVlLCBjbGVhclNlYXJjaFZhbHVlLCBnZXRPcHRpb25CeVZhbHVlLCBvblNlbGVjdCwgd2l0aEF1dG9DbGVhcl1cbiAgKTtcblxuICBjb25zdCBjbG9zZU9wdGlvbkxpc3QgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0SXNTZWxlY3RPcGVuKGZhbHNlKTtcbiAgfSwgW10pO1xuXG4gIGNvbnN0IGJsdXJIYW5kbGUgPSAoZTogRm9jdXNFdmVudCkgPT4ge1xuICAgIGNvbnN0IGlzRm9jdXNPbk9wdGlvbkxpc3QgPSByZWZzLmZsb2F0aW5nLmN1cnJlbnQ/LmNvbnRhaW5zKGUucmVsYXRlZFRhcmdldCk7XG4gICAgY29uc3QgaXNGb2N1c09uU2VhcmNoSW5wdXQgPSAhaXNOdWxsKGlucHV0UmVmLmN1cnJlbnQpICYmIGUucmVsYXRlZFRhcmdldCA9PT0gaW5wdXRSZWYuY3VycmVudDtcbiAgICBjb25zdCBpc0ZvY3VzT25Db250cm9sID0gZS5yZWxhdGVkVGFyZ2V0ID09PSBjb250cm9sUmVmLmN1cnJlbnQ7XG5cbiAgICBpZiAoaXNGb2N1c09uT3B0aW9uTGlzdCB8fCBpc0ZvY3VzT25TZWFyY2hJbnB1dCB8fCBpc0ZvY3VzT25Db250cm9sKSB7XG4gICAgICBpZiAoc2hvd1NlYXJjaCkge1xuICAgICAgICByZXR1cm5Gb2N1c1RvSW5wdXQoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybkZvY3VzVG9XcmFwcGVyKCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBvbkJsdXI/LihlKTtcbiAgICBjbGVhclNlYXJjaFZhbHVlKCk7XG4gICAgY2xvc2VPcHRpb25MaXN0KCk7XG4gIH07XG5cbiAgY29uc3QgY2xlYXJTZWxlY3QgPSB1c2VDYWxsYmFjayhcbiAgICAoZTogTW91c2VFdmVudCkgPT4ge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgY2xlYXJDdXJyZW50VmFsdWUoKTtcbiAgICAgIG9uQ2xlYXI/LigpO1xuICAgIH0sXG4gICAgW2NsZWFyQ3VycmVudFZhbHVlLCBvbkNsZWFyXVxuICApO1xuXG4gIGNvbnN0IGtleURvd25IYW5kbGVyID0gKGU6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICBpZiAoZS5rZXkgPT09IFwiRW50ZXJcIikge1xuICAgICAgaWYgKGlzU2VsZWN0T3Blbikge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGdldEN1cnJlbnRTZWxlY3RpbmdWYWx1ZSgpO1xuXG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY3VycmVudFZhbHVlLmluY2x1ZGVzKHZhbHVlKSkge1xuICAgICAgICAgIHJlbW92ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjaGFuZ2VDdXJyZW50VmFsdWUodmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHdpdGhBdXRvQ2xlYXIpIHtcbiAgICAgICAgICBjbGVhclNlYXJjaFZhbHVlKCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY2xpY2tIYW5kbGUoKTtcbiAgICB9XG5cbiAgICBzZXRJc1NlbGVjdE9wZW4odHJ1ZSk7XG5cbiAgICBvbktleUNvbnRyb2woZSk7XG4gICAgb25JbnB1dEtleURvd24/LihlKTtcbiAgfTtcblxuICBjb25zdCBtb3VzZU92ZXJIYW5kbGUgPSAoKSA9PiB7XG4gICAgc2V0SXNIb3Zlcih0cnVlKTtcbiAgfTtcblxuICBjb25zdCBtb3VzZU91dEhhbmRsZSA9ICgpID0+IHtcbiAgICBzZXRJc0hvdmVyKGZhbHNlKTtcbiAgfTtcblxuICBjb25zdCBmb2N1c0hhbmRsZSA9IChlOiBGb2N1c0V2ZW50KSA9PiB7XG4gICAgb25Gb2N1cz8uKGUpO1xuXG4gICAgaWYgKCFzaG93U2VhcmNoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcmV0dXJuRm9jdXNUb0lucHV0KCk7XG4gIH07XG5cbiAgY29uc3QgcmVuZGVyVGFnUGxhY2Vob2xkZXIgPSAoaGlkZGVuRWxlbWVudHNDb3VudGVyOiBudW1iZXIpID0+IHtcbiAgICBpZiAoaXNVbmRlZmluZWQobWF4VGFnUGxhY2Vob2xkZXIpKSB7XG4gICAgICByZXR1cm4gPFRhZ1BsYWNlaG9sZGVyIGhpZGRlbkVsZW1lbnRzQ291bnRlcj17aGlkZGVuRWxlbWVudHNDb3VudGVyfSAvPjtcbiAgICB9XG5cbiAgICBpZiAoIWlzRnVuY3Rpb24obWF4VGFnUGxhY2Vob2xkZXIpKSB7XG4gICAgICByZXR1cm4gPHNwYW4gZGF0YS1lbGVtZW50PXt0YWdQbGFjZWhvbGRlckRhdGFFbGVtZW50fT57bWF4VGFnUGxhY2Vob2xkZXJ9PC9zcGFuPjtcbiAgICB9XG5cbiAgICBjb25zdCBoaWRkZW5FbGVtZW50cyA9IGN1cnJlbnRWYWx1ZS5yZWR1Y2UoKGFjYzogT3B0aW9uW10sIHZhbHVlKSA9PiB7XG4gICAgICBjb25zdCBpc0hpZGRlbiA9IGlzSXRlbUhpZGRlbi5nZXQodmFsdWUpO1xuICAgICAgY29uc3Qgb3B0aW9uID0gZ2V0T3B0aW9uQnlWYWx1ZSh2YWx1ZSk7XG5cbiAgICAgIGlmICghaXNIaWRkZW4gfHwgaXNVbmRlZmluZWQob3B0aW9uKSkge1xuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfVxuXG4gICAgICBhY2MucHVzaChvcHRpb24pO1xuXG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIFtdKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8c3BhbiBkYXRhLWVsZW1lbnQ9e3RhZ1BsYWNlaG9sZGVyRGF0YUVsZW1lbnR9PnttYXhUYWdQbGFjZWhvbGRlcihoaWRkZW5FbGVtZW50cyl9PC9zcGFuPlxuICAgICk7XG4gIH07XG5cbiAgY29uc3QgcmVuZGVyTGFiZWwgPSAodmFsdWVzOiBPcHRpb25WYWx1ZVtdLCBjdXJyZW50TGFiZWw6IHN0cmluZ1tdKSA9PiB7XG4gICAgY29uc3QgdmlzaWJsZUxhYmVscyA9IGdldFZpc2libGVMYWJlbHMoY3VycmVudExhYmVsLCBtYXhUYWdDb3VudCk7XG5cbiAgICBjb25zdCBsYWJlbCA9IHZpc2libGVMYWJlbHMubWFwKChsYWJlbCwgaW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdmFsdWVzW2luZGV4XSBhcyBPcHRpb25WYWx1ZTtcblxuICAgICAgaWYgKGlzRnVuY3Rpb24obGFiZWxSZW5kZXIpKSB7XG4gICAgICAgIHJldHVybiBsYWJlbFJlbmRlcih7IGxhYmVsLCB2YWx1ZSB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKG1vZGUgPT09IFwic2luZ2xlXCIpIHtcbiAgICAgICAgcmV0dXJuIGxhYmVsO1xuICAgICAgfVxuXG4gICAgICBpZiAoaXNGdW5jdGlvbih0YWdSZW5kZXIpKSB7XG4gICAgICAgIHJldHVybiB0YWdSZW5kZXIobGFiZWwpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBpc0hpZGRlbiA9ICEhaXNJdGVtSGlkZGVuLmdldCh2YWx1ZSk7XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTZWxlY3RUYWc8T3B0aW9uVmFsdWU+XG4gICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgIGxhYmVsPXtsYWJlbH1cbiAgICAgICAgICByZW1vdmVWYWx1ZT17cmVtb3ZlVmFsdWV9XG4gICAgICAgICAgbWF4VGFnVGV4dExlbmd0aD17bWF4VGFnVGV4dExlbmd0aH1cbiAgICAgICAgICBpc0JvcmRlcmxlc3M9e3ZhcmlhbnQgPT09IFwiYm9yZGVybGVzc1wifVxuICAgICAgICAgIGlzRXJyb3I9e3N0YXR1cyA9PT0gXCJlcnJvclwifVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBpc0hpZGRlbj17aXNIaWRkZW59XG4gICAgICAgICAgb25UYWdDbG9zZT17b25UYWdDbG9zZX1cbiAgICAgICAgICBrZXk9e3ZhbHVlPy50b1N0cmluZygpfVxuICAgICAgICAvPlxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGhpZGRlbkVsZW1lbnRzQ291bnRlciA9IGlzTnVtYmVyKG1heFRhZ0NvdW50KVxuICAgICAgPyBpc0l0ZW1IaWRkZW4uc2l6ZSAtIG1heFRhZ0NvdW50XG4gICAgICA6IEFycmF5LmZyb20oaXNJdGVtSGlkZGVuLnZhbHVlcygpKS5yZWR1Y2UoKGFjYywgaXNIaWRkZW4pID0+IChpc0hpZGRlbiA/IGFjYyArIDEgOiBhY2MpLCAwKTtcblxuICAgIGNvbnN0IHdpdGhUYWdQbGFjZWhvbGRlciA9XG4gICAgICAhaXNVbmRlZmluZWQobWF4VGFnQ291bnQpICYmIG1vZGUgPT09IFwibXVsdGlwbGVcIiAmJiBoaWRkZW5FbGVtZW50c0NvdW50ZXIgPiAwO1xuXG4gICAgaWYgKGxhYmVsLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIHtsYWJlbH1cbiAgICAgICAge3dpdGhUYWdQbGFjZWhvbGRlciAmJiByZW5kZXJUYWdQbGFjZWhvbGRlcihoaWRkZW5FbGVtZW50c0NvdW50ZXIpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICBjb25zdCByZW5kZXJTdWZmaXggPSAoKSA9PiB7XG4gICAgaWYgKHdpdGhEcmF3ZXIpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxCYXJzT3V0bGluZWRcbiAgICAgICAgICBvbkNsaWNrPXtjbGlja0hhbmRsZX1cbiAgICAgICAgICBjc3M9e1tzZWxlY3REZWZhdWx0U3R5bGUuZHJhd2VySWNvbih0aGVtZSksIHN0eWxlcz8uZHJhd2VySWNvbj8uKHRoZW1lKV19XG4gICAgICAgIC8+XG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChzaG93U2VhcmNoICYmIGlzU2VsZWN0T3Blbikge1xuICAgICAgcmV0dXJuIDxTZWFyY2hPdXRsaW5lZCAvPjtcbiAgICB9XG5cbiAgICByZXR1cm4gc3VmZml4SWNvbjtcbiAgfTtcblxuICBjb25zdCByZW5kZXJQbGFjZWhvbGRlciA9ICgpID0+IChcbiAgICA8c3BhbiBjc3M9e1tzZWxlY3REZWZhdWx0U3R5bGUucGxhY2Vob2xkZXIodGhlbWUpLCBzdHlsZXM/LnBsYWNlaG9sZGVyPy4odGhlbWUpXX0+XG4gICAgICB7cGxhY2Vob2xkZXJ9XG4gICAgPC9zcGFuPlxuICApO1xuXG4gIGNvbnN0IHdpdGhDbGVhckJ1dHRvbiA9IGFsbG93Q2xlYXIgJiYgISFmaWx0ZXJlZEFjdGl2ZVZhbHVlcy5sZW5ndGg7XG5cbiAgY29uc3QgaW5wdXRWYWx1ZSA9XG4gICAgbW9kZSA9PT0gXCJtdWx0aXBsZVwiIHx8IGlzU2VsZWN0T3BlblxuICAgICAgPyAoc2VhcmNoVmFsdWUgPz8gc2VhcmNoSW5wdXRWYWx1ZSlcbiAgICAgIDogY3VycmVudExhYmVsWzBdPy50b1N0cmluZygpO1xuXG4gIGNvbnN0IGlzRW1wdHkgPSBmaWx0ZXJlZEFjdGl2ZVZhbHVlcy5sZW5ndGggPT09IDA7XG4gIGNvbnN0IHNpbmdsZU1vZFBsYWNlaG9sZGVyID0gY3VycmVudExhYmVsWzBdID8/IHBsYWNlaG9sZGVyID8/IFwiXCI7XG4gIGNvbnN0IG11bHRpcGxlTW9kUGxhY2Vob2xkZXIgPSBpc0VtcHR5ID8gcGxhY2Vob2xkZXIgOiB1bmRlZmluZWQ7XG5cbiAgY29uc3Qgc2VhcmNoSW5wdXRQbGFjZWhvbGRlciA9IG1vZGUgPT09IFwic2luZ2xlXCIgPyBzaW5nbGVNb2RQbGFjZWhvbGRlciA6IG11bHRpcGxlTW9kUGxhY2Vob2xkZXI7XG5cbiAgY29uc3QgbGV0dGVyc051bWJlciA9IChpbnB1dFZhbHVlPy5sZW5ndGggPz8gMCkgKyAxO1xuXG4gIGNvbnN0IGhhc0ljb25QcmVmaXggPSB0eXBlb2YgcHJlZml4ID09PSBcIm9iamVjdFwiO1xuXG4gIGNvbnN0IGNvbnRleHRWYWx1ZTogQmFzZVNlbGVjdENvbnRleHRTaGFwZTxPcHRpb25WYWx1ZT4gPSB7XG4gICAgY3VycmVudFZhbHVlOiBhY3RpdmVWYWx1ZXMsXG4gICAgc2hvd09wdGlvbkxpc3Q6IG9wZW4gPz8gaXNTZWxlY3RPcGVuLFxuICAgIHNldFZhbHVlOiBjaGFuZ2VIYW5kbGUsXG4gICAgY2xvc2VPcHRpb25MaXN0LFxuICAgIGRyb3Bkb3duTWluV2lkdGgsXG4gICAgZHJvcGRvd25NYXhIZWlnaHQsXG4gICAgZHJvcGRvd25Qcm9tcHQsXG4gICAgbG9hZGluZyxcbiAgICBkcm9wZG93bkNsYXNzTmFtZSxcbiAgICBkcm9wZG93blJlbmRlcixcbiAgICBkcm9wZG93bk1hdGNoU2VsZWN0V2lkdGgsXG4gICAgcmVmZXJlbmNlT2Zmc2V0V2lkdGgsXG4gICAgZmxvYXRpbmdTdHlsZXMsXG4gICAgc2V0RmxvYXRpbmc6IHJlZnMuc2V0RmxvYXRpbmcsXG4gICAgZmxvYXRpbmdSZWY6IHJlZnMuZmxvYXRpbmcsXG4gICAgZ2V0UG9wdXBDb250YWluZXIsXG4gICAgdmlydHVhbCxcbiAgICBjdXJyZW50U2VsZWN0aW5nSW5kZXgsXG4gICAgZW1wdHlDb250ZW50LFxuICAgIG5vdEZvdW5kQ29udGVudCxcbiAgICBzZWFyY2hWYWx1ZTogc2VhcmNoVmFsdWUgPz8gc2VhcmNoSW5wdXRWYWx1ZSxcbiAgICBzaG93U2VhcmNoLFxuICAgIG1vZGUsXG4gICAgcmVtb3ZlVmFsdWUsXG4gICAgaXNJdGVtSGlkZGVuLFxuICAgIGdldEN1cnJlbnRTZWxlY3RpbmdWYWx1ZSxcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxiYXNlU2VsZWN0Q29udGV4dC5Qcm92aWRlciB2YWx1ZT17Y29udGV4dFZhbHVlfT5cbiAgICAgIDxzcGFuXG4gICAgICAgIGNzcz17W3NlbGVjdERlZmF1bHRTdHlsZS53cmFwcGVyKHRoZW1lKSwgc3R5bGVzPy53cmFwcGVyPy4odGhlbWUpXX1cbiAgICAgICAgdGFiSW5kZXg9ezF9XG4gICAgICAgIG9uS2V5RG93bj17a2V5RG93bkhhbmRsZXJ9XG4gICAgICAgIG9uTW91c2VPdmVyPXttb3VzZU92ZXJIYW5kbGV9XG4gICAgICAgIG9uTW91c2VPdXQ9e21vdXNlT3V0SGFuZGxlfVxuICAgICAgICBvbkZvY3VzPXtmb2N1c0hhbmRsZX1cbiAgICAgICAgb25CbHVyPXtibHVySGFuZGxlfVxuICAgICAgICBhdXRvRm9jdXM9e2F1dG9Gb2N1c31cbiAgICAgICAgcmVmPXtjb250cm9sUmVmfVxuICAgICAgPlxuICAgICAgICA8c3BhblxuICAgICAgICAgIGNzcz17W3NlbGVjdERlZmF1bHRTdHlsZS5ib2R5KHRoZW1lKSwgc3R5bGVzPy5ib2R5Py4odGhlbWUpXX1cbiAgICAgICAgICBvbkNsaWNrPXshd2l0aERyYXdlciA/IGNsaWNrSGFuZGxlIDogdW5kZWZpbmVkfVxuICAgICAgICAgIHJlZj17cmVmcy5zZXRSZWZlcmVuY2V9XG4gICAgICAgID5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgY3NzPXtbc2VsZWN0RGVmYXVsdFN0eWxlLnByZWZpeEFuZENvbnRlbnQodGhlbWUpLCBzdHlsZXM/LnByZWZpeEFuZENvbnRlbnQ/Lih0aGVtZSldfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtwcmVmaXggJiYgKFxuICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgIGNzcz17W3NlbGVjdERlZmF1bHRTdHlsZS5wcmVmaXgoaGFzSWNvblByZWZpeCkodGhlbWUpLCBzdHlsZXM/LnByZWZpeD8uKHRoZW1lKV19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7cHJlZml4fVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICApfVxuXG4gICAgICAgICAgICB7c2hvd1NlYXJjaCA/IChcbiAgICAgICAgICAgICAgPHNwYW4gcmVmPXtjb250YWluZXJSZWZ9IGNzcz17c2VsZWN0RGVmYXVsdFN0eWxlLmNvbnRlbnQodGhlbWUpfT5cbiAgICAgICAgICAgICAgICB7bW9kZSA9PT0gXCJtdWx0aXBsZVwiICYmIHJlbmRlckxhYmVsKGZpbHRlcmVkQWN0aXZlVmFsdWVzLCBjdXJyZW50TGFiZWwpfVxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgY3NzPXtzZWxlY3REZWZhdWx0U3R5bGUuc2VhcmNoSW5wdXQodGhlbWUpfVxuICAgICAgICAgICAgICAgICAgdmFsdWU9e2lucHV0VmFsdWUgPz8gXCJcIn1cbiAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtzZWFyY2hIYW5kbGV9XG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17c2VhcmNoSW5wdXRQbGFjZWhvbGRlcj8udG9TdHJpbmcoKX1cbiAgICAgICAgICAgICAgICAgIHJlZj17aW5wdXRSZWZ9XG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICBzdHlsZT17Z2V0U2VsZWN0U2VhcmNoSW5wdXRXaWR0aFN0eWxlKFxuICAgICAgICAgICAgICAgICAgICBtb2RlID09PSBcIm11bHRpcGxlXCIsXG4gICAgICAgICAgICAgICAgICAgIGlzRW1wdHksXG4gICAgICAgICAgICAgICAgICAgIGxldHRlcnNOdW1iZXJcbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICBkYXRhLWVsZW1lbnQ9XCJzZWFyY2gtaW5wdXRcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgcmVmPXtjb250YWluZXJSZWZ9XG4gICAgICAgICAgICAgICAgY3NzPXtbc2VsZWN0RGVmYXVsdFN0eWxlLmNvbnRlbnQodGhlbWUpLCBzdHlsZXM/LmNvbnRlbnQ/Lih0aGVtZSldfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3JlbmRlckxhYmVsKGZpbHRlcmVkQWN0aXZlVmFsdWVzLCBjdXJyZW50TGFiZWwpID8/IHJlbmRlclBsYWNlaG9sZGVyKCl9XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAge3dpdGhDbGVhckJ1dHRvbiAmJiAoXG4gICAgICAgICAgICA8Q2xvc2VDaXJjbGVGaWxsZWRcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiY2xlYW4tYnV0dG9uXCJcbiAgICAgICAgICAgICAgb25DbGljaz17Y2xlYXJTZWxlY3R9XG4gICAgICAgICAgICAgIGNzcz17W3NlbGVjdERlZmF1bHRTdHlsZS5jbGVhbkljb24odGhlbWUpLCBzdHlsZXM/LmNsZWFuSWNvbj8uKHRoZW1lKV19XG4gICAgICAgICAgICAgIGRhdGEtZWxlbWVudD1cImNsZWFuLWJ1dHRvblwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG4gICAgICAgICAgPHNwYW4gY3NzPXtbc2VsZWN0RGVmYXVsdFN0eWxlLnN1ZmZpeEljb24odGhlbWUpLCBzdHlsZXM/LnN1ZmZpeEljb24/Lih0aGVtZSldfT5cbiAgICAgICAgICAgIHtyZW5kZXJTdWZmaXgoKX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvc3Bhbj5cblxuICAgICAgICA8U2VsZWN0T3B0aW9uTGlzdDxPcHRpb24sIE9wdGlvblZhbHVlPlxuICAgICAgICAgIG9wdGlvbnM9e2ZpbHRlcmVkQW5kU29ydGVkT3B0aW9uc31cbiAgICAgICAgICByZW5kZXJEcm9wZG93bkl0ZW09e3JlbmRlckRyb3Bkb3duSXRlbX1cbiAgICAgICAgICBvcHRpb25SZW5kZXI9e29wdGlvblJlbmRlcn1cbiAgICAgICAgICB2aXJ0dWFsaXplckVzdGltYXRlU2l6ZT17dmlydHVhbGl6ZXJFc3RpbWF0ZVNpemV9XG4gICAgICAgICAgc3R5bGVzPXtzdHlsZXM/LmRyb3Bkb3duU3R5bGV9XG4gICAgICAgIC8+XG4gICAgICA8L3NwYW4+XG4gICAgPC9iYXNlU2VsZWN0Q29udGV4dC5Qcm92aWRlcj5cbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBCYXNlU2VsZWN0ID0gbWVtbyhCYXNlU2VsZWN0Q29tcG9uZW50KSBhcyB0eXBlb2YgQmFzZVNlbGVjdENvbXBvbmVudDtcbiJdfQ== */"], tabIndex: 1, onKeyDown: keyDownHandler, onMouseOver: mouseOverHandle, onMouseOut: mouseOutHandle, onFocus: focusHandle, onBlur: blurHandle, autoFocus, ref: controlRef, children: [
343
+ /* @__PURE__ */ jsxs("span", { css: [selectDefaultStyle.body(theme), (_d = styles == null ? void 0 : styles.body) == null ? void 0 : _d.call(styles, theme), process.env.NODE_ENV === "production" ? "" : ";label:BaseSelectComponent;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvZnJvbnRlbmQvbGlicy91aS1raXQvc3JjL2NvbXBvbmVudHMvQmFzZVNlbGVjdC9CYXNlU2VsZWN0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEwZFUiLCJmaWxlIjoiL2J1aWxkcy9mcm9udGVuZC9saWJzL3VpLWtpdC9zcmMvY29tcG9uZW50cy9CYXNlU2VsZWN0L0Jhc2VTZWxlY3QudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgdHlwZSBGb2N1c0V2ZW50LFxuICB0eXBlIEtleWJvYXJkRXZlbnQsXG4gIG1lbW8sXG4gIHR5cGUgTW91c2VFdmVudCxcbiAgdHlwZSBQcm9wc1dpdGhDaGlsZHJlbixcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBnZXRTZWxlY3REZWZhdWx0U3R5bGUsIGdldFNlbGVjdFNlYXJjaElucHV0V2lkdGhTdHlsZSB9IGZyb20gXCIuL0Jhc2VTZWxlY3Quc3R5bGVzXCI7XG5pbXBvcnQgeyB1c2VUaGVtZSB9IGZyb20gXCJob29rcy91c2VUaGVtZVwiO1xuaW1wb3J0IHsgQmFyc091dGxpbmVkLCBDbG9zZUNpcmNsZUZpbGxlZCwgRG93bk91dGxpbmVkLCBTZWFyY2hPdXRsaW5lZCB9IGZyb20gXCJAaW5mb21heGltdW0vaWNvbnNcIjtcbmltcG9ydCB7IGlzRnVuY3Rpb24sIGlzTnVsbCwgaXNOdW1iZXIsIGlzVW5kZWZpbmVkIH0gZnJvbSBcImxvZGFzaC1lc1wiO1xuaW1wb3J0IHsgYXV0b1VwZGF0ZSwgZmxpcCwgb2Zmc2V0LCB1c2VGbG9hdGluZyB9IGZyb20gXCJAZmxvYXRpbmctdWkvcmVhY3RcIjtcbmltcG9ydCB7IGNvbnZlcnRTZWxlY3RQbGFjZW1lbnQsIGdldExhYmVsLCBnZXRWaXNpYmxlTGFiZWxzIH0gZnJvbSBcIi4vQmFzZVNlbGVjdC51dGlsc1wiO1xuaW1wb3J0IHsgdXNlU2VhcmNoIH0gZnJvbSBcIi4vaG9va3MvdXNlU2VhcmNoXCI7XG5pbXBvcnQgeyB1c2VDdXJyZW50VmFsdWUgfSBmcm9tIFwiLi9ob29rcy91c2VDdXJyZW50VmFsdWVcIjtcbmltcG9ydCB7IFNlbGVjdFRhZyB9IGZyb20gXCIuL2NvbXBvbmVudHMvU2VsZWN0VGFnL1NlbGVjdFRhZ1wiO1xuaW1wb3J0IHsgdXNlSGlkZUVsZW1lbnRzIH0gZnJvbSBcIi4vaG9va3MvdXNlSGlkZUVsZW1lbnRzXCI7XG5pbXBvcnQge1xuICBUYWdQbGFjZWhvbGRlcixcbiAgdGFnUGxhY2Vob2xkZXJEYXRhRWxlbWVudCxcbn0gZnJvbSBcIi4vY29tcG9uZW50cy9UYWdQbGFjZWhvbGRlci9UYWdQbGFjZWhvbGRlclwiO1xuaW1wb3J0IHR5cGUgeyBCYXNlU2VsZWN0T3B0aW9uSW50ZXJmYWNlLCBCYXNlU2VsZWN0UHJvcHMgfSBmcm9tIFwiLi9CYXNlU2VsZWN0LnR5cGVzXCI7XG5pbXBvcnQgeyBTZWxlY3RPcHRpb25MaXN0IH0gZnJvbSBcIi4vY29tcG9uZW50cy9TZWxlY3RPcHRpb25MaXN0L1NlbGVjdE9wdGlvbkxpc3RcIjtcbmltcG9ydCB7IGNyZWF0ZUJhc2VTZWxlY3RDb250ZXh0LCB0eXBlIEJhc2VTZWxlY3RDb250ZXh0U2hhcGUgfSBmcm9tIFwiLi9jb250ZXh0cy9CYXNlU2VsZWN0Q29udGV4dFwiO1xuXG5jb25zdCBCYXNlU2VsZWN0Q29tcG9uZW50ID0gPE9wdGlvbiBleHRlbmRzIEJhc2VTZWxlY3RPcHRpb25JbnRlcmZhY2U8T3B0aW9uVmFsdWU+LCBPcHRpb25WYWx1ZT4oe1xuICBvcHRpb25zID0gW10sXG4gIG1vZGUgPSBcInNpbmdsZVwiLFxuICB2YXJpYW50ID0gXCJvdXRsaW5lZFwiLFxuICBkZWZhdWx0VmFsdWUsXG4gIGRlZmF1bHRPcGVuID0gZmFsc2UsXG4gIGRlZmF1bHRBY3RpdmVGaXJzdE9wdGlvbixcbiAgdmFsdWUsXG4gIG9wZW4sXG4gIHBsYWNlaG9sZGVyLFxuICBkcm9wZG93bk1pbldpZHRoID0gMTIwLFxuICBkcm9wZG93bk1heEhlaWdodCA9IDQxNCxcbiAgYWxsb3dDbGVhciA9IGZhbHNlLFxuICBhdXRvRm9jdXMsXG4gIHByZWZpeCxcbiAgc3VmZml4SWNvbiA9IDxEb3duT3V0bGluZWQgLz4sXG4gIHN0YXR1cyA9IFwiZGVmYXVsdFwiLFxuICBkaXNhYmxlZCA9IGZhbHNlLFxuICBkcm9wZG93blByb21wdCxcbiAgbG9hZGluZyA9IGZhbHNlLFxuICBkcm9wZG93bkNsYXNzTmFtZSxcbiAgc3R5bGVzLFxuICBkcm9wZG93bk1hdGNoU2VsZWN0V2lkdGggPSB0cnVlLFxuICBwbGFjZW1lbnQgPSBcImJvdHRvbUxlZnRcIixcbiAgdmlydHVhbCA9IHRydWUsXG4gIGVtcHR5Q29udGVudCA9IFwiXCIsXG4gIHNob3dTZWFyY2ggPSBtb2RlID09PSBcInNpbmdsZVwiID8gZmFsc2UgOiB0cnVlLFxuICBzZWFyY2hWYWx1ZSxcbiAgbm90Rm91bmRDb250ZW50ID0gXCJOb3QgZm91bmRcIixcbiAgb3B0aW9uTGFiZWxQcm9wID0gXCJ0aXRsZVwiLFxuICBkcmF3ZXIgPSBmYWxzZSxcbiAgYXV0b0NsZWFyU2VhcmNoVmFsdWUgPSB0cnVlLFxuICBtYXhUYWdDb3VudCxcbiAgbWF4VGFnVGV4dExlbmd0aCxcbiAgbWF4VGFnUGxhY2Vob2xkZXIsXG4gIGN1cnJlbnRTZWxlY3RpbmdJbmRleCxcbiAgZ2V0Q3VycmVudFNlbGVjdGluZ1ZhbHVlLFxuICBvbktleUNvbnRyb2wsXG4gIGdldE9wdGlvbkJ5VmFsdWUsXG4gIHZpcnR1YWxpemVyRXN0aW1hdGVTaXplLFxuICBmaWx0ZXJPcHRpb25zLFxuICBmaWx0ZXJTb3J0LFxuICB2YWx1ZXNGaWx0ZXIsXG4gIGRyb3Bkb3duUmVuZGVyLFxuICBvcHRpb25SZW5kZXIsXG4gIGxhYmVsUmVuZGVyLFxuICBvbkJsdXIsXG4gIG9uQ2hhbmdlLFxuICBvbkNsZWFyLFxuICBvbkRyb3Bkb3duVmlzaWJsZUNoYW5nZSxcbiAgb25Gb2N1cyxcbiAgb25JbnB1dEtleURvd24sXG4gIG9uU2VsZWN0LFxuICBnZXRQb3B1cENvbnRhaW5lciA9ICgpID0+IGRvY3VtZW50LmJvZHksXG4gIG9uU2VhcmNoLFxuICB0YWdSZW5kZXIsXG4gIG9uRGVzZWxlY3QsXG4gIHJlbmRlckRyb3Bkb3duSXRlbSxcbiAgb25UYWdDbG9zZSxcbn06IFByb3BzV2l0aENoaWxkcmVuPEJhc2VTZWxlY3RQcm9wczxPcHRpb24sIE9wdGlvblZhbHVlPj4pID0+IHtcbiAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpO1xuICBjb25zdCBiYXNlU2VsZWN0Q29udGV4dCA9IGNyZWF0ZUJhc2VTZWxlY3RDb250ZXh0PE9wdGlvblZhbHVlPigpO1xuXG4gIGNvbnN0IHsgZmlsdGVyZWRBbmRTb3J0ZWRPcHRpb25zLCBzZWFyY2hJbnB1dFZhbHVlLCBzZWFyY2hIYW5kbGUsIGNsZWFyU2VhcmNoVmFsdWUgfSA9IHVzZVNlYXJjaDxcbiAgICBPcHRpb24sXG4gICAgT3B0aW9uVmFsdWVcbiAgPih7XG4gICAgb3B0aW9ucyxcbiAgICBzZWFyY2hWYWx1ZSxcbiAgICBvblNlYXJjaCxcbiAgICBmaWx0ZXJTb3J0LFxuICAgIGZpbHRlck9wdGlvbnMsXG4gIH0pO1xuXG4gIGNvbnN0IHsgY3VycmVudFZhbHVlLCBjaGFuZ2VDdXJyZW50VmFsdWUsIHJlbW92ZVZhbHVlLCBjbGVhckN1cnJlbnRWYWx1ZSB9ID0gdXNlQ3VycmVudFZhbHVlKFxuICAgIG1vZGUsXG4gICAgZGVmYXVsdFZhbHVlLFxuICAgIGRlZmF1bHRBY3RpdmVGaXJzdE9wdGlvbixcbiAgICBvcHRpb25zLFxuICAgIG9uRGVzZWxlY3RcbiAgKTtcblxuICBjb25zdCBbaXNTZWxlY3RPcGVuLCBzZXRJc1NlbGVjdE9wZW5dID0gdXNlU3RhdGUoZGVmYXVsdE9wZW4pO1xuICBjb25zdCBbaXNIb3Zlciwgc2V0SXNIb3Zlcl0gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgY29uc3QgaXNJbml0aWFsTW91bnQgPSB1c2VSZWYodHJ1ZSk7XG4gIGNvbnN0IGNvbnRyb2xSZWYgPSB1c2VSZWY8SFRNTFNwYW5FbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IGlucHV0UmVmID0gdXNlUmVmPEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsPihudWxsKTtcblxuICBjb25zdCByZWZlcmVuY2VPZmZzZXRXaWR0aCA9IGNvbnRyb2xSZWYuY3VycmVudD8ub2Zmc2V0V2lkdGg7XG5cbiAgY29uc3QgeyByZWZzLCBmbG9hdGluZ1N0eWxlcyB9ID0gdXNlRmxvYXRpbmc8SFRNTFNwYW5FbGVtZW50Pih7XG4gICAgd2hpbGVFbGVtZW50c01vdW50ZWQ6IGF1dG9VcGRhdGUsXG4gICAgcGxhY2VtZW50OiBjb252ZXJ0U2VsZWN0UGxhY2VtZW50KHBsYWNlbWVudCksXG4gICAgbWlkZGxld2FyZTogW29mZnNldCg0KSwgZmxpcCgpXSxcbiAgfSk7XG5cbiAgY29uc3QgcmV0dXJuRm9jdXNUb1dyYXBwZXIgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBjb250cm9sUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgfSk7XG4gIH0sIFtdKTtcblxuICBjb25zdCByZXR1cm5Gb2N1c1RvSW5wdXQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpbnB1dFJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgIH0pO1xuICB9LCBbXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWlzSW5pdGlhbE1vdW50LmN1cnJlbnQpIHtcbiAgICAgIGNvbnN0IG9wdGlvbnMgPSBjdXJyZW50VmFsdWUucmVkdWNlKChhY2M6IE9wdGlvbltdLCB2YWx1ZSkgPT4ge1xuICAgICAgICBjb25zdCBvcHRpb24gPSBnZXRPcHRpb25CeVZhbHVlKHZhbHVlKTtcblxuICAgICAgICBpZiAoaXNVbmRlZmluZWQob3B0aW9uKSkge1xuICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gWy4uLmFjYywgb3B0aW9uXTtcbiAgICAgIH0sIFtdKTtcblxuICAgICAgb25DaGFuZ2U/LihjdXJyZW50VmFsdWUsIG9wdGlvbnMpO1xuICAgIH1cbiAgfSwgW2N1cnJlbnRWYWx1ZSwgZ2V0T3B0aW9uQnlWYWx1ZSwgb25DaGFuZ2VdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpc0luaXRpYWxNb3VudC5jdXJyZW50KSB7XG4gICAgICBpc0luaXRpYWxNb3VudC5jdXJyZW50ID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIG9uRHJvcGRvd25WaXNpYmxlQ2hhbmdlPy4oKTtcbiAgICB9XG4gIH0sIFtpc1NlbGVjdE9wZW4sIG9uRHJvcGRvd25WaXNpYmxlQ2hhbmdlXSk7XG5cbiAgY29uc3QgYWN0aXZlVmFsdWVzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBpc1VuZGVmaW5lZCh2YWx1ZSkgPyBjdXJyZW50VmFsdWUgOiBbdmFsdWVdO1xuICB9LCBbY3VycmVudFZhbHVlLCB2YWx1ZV0pO1xuXG4gIGNvbnN0IHNlbGVjdERlZmF1bHRTdHlsZSA9IGdldFNlbGVjdERlZmF1bHRTdHlsZSh7XG4gICAgc3RhdHVzLFxuICAgIGRpc2FibGVkLFxuICAgIHZhcmlhbnQsXG4gICAgbXVsdGlwbGU6IG1vZGUgPT09IFwibXVsdGlwbGVcIixcbiAgICBpc0hvdmVyLFxuICAgIG1heFRhZ0NvdW50LFxuICAgIHdpdGhQcmVmaXg6ICEhcHJlZml4LFxuICAgIGlzRW1wdHk6IGFjdGl2ZVZhbHVlcy5sZW5ndGggPT09IDAsXG4gIH0pO1xuXG4gIGNvbnN0IGZpbHRlcmVkQWN0aXZlVmFsdWVzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIGlzRnVuY3Rpb24odmFsdWVzRmlsdGVyKSA/IHZhbHVlc0ZpbHRlcihhY3RpdmVWYWx1ZXMpIDogYWN0aXZlVmFsdWVzO1xuICB9LCBbYWN0aXZlVmFsdWVzLCB2YWx1ZXNGaWx0ZXJdKTtcblxuICBjb25zdCB7IGNvbnRhaW5lclJlZiwgaXNJdGVtSGlkZGVuIH0gPSB1c2VIaWRlRWxlbWVudHMoXG4gICAgZmlsdGVyZWRBY3RpdmVWYWx1ZXMsXG4gICAgdGhlbWUuc3BhY2VYUyxcbiAgICBpbnB1dFJlZixcbiAgICBtYXhUYWdDb3VudFxuICApO1xuXG4gIGNvbnN0IGN1cnJlbnRMYWJlbCA9IGdldExhYmVsPE9wdGlvbiwgT3B0aW9uVmFsdWU+KFxuICAgIGZpbHRlcmVkQWN0aXZlVmFsdWVzLFxuICAgIGdldE9wdGlvbkJ5VmFsdWUsXG4gICAgb3B0aW9uTGFiZWxQcm9wXG4gICk7XG5cbiAgY29uc3Qgd2l0aERyYXdlciA9IG1vZGUgPT09IFwibXVsdGlwbGVcIiAmJiBkcmF3ZXI7XG4gIGNvbnN0IHdpdGhBdXRvQ2xlYXIgPSBtb2RlID09PSBcInNpbmdsZVwiIHx8IGF1dG9DbGVhclNlYXJjaFZhbHVlO1xuXG4gIGNvbnN0IGNsaWNrSGFuZGxlID0gKCkgPT4ge1xuICAgIGlmIChkaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHNldElzU2VsZWN0T3BlbigocHJldikgPT4gIXByZXYpO1xuICB9O1xuXG4gIGNvbnN0IGNoYW5nZUhhbmRsZSA9IHVzZUNhbGxiYWNrKFxuICAgICh2YWx1ZTogT3B0aW9uVmFsdWUgfCBPcHRpb25WYWx1ZVtdKSA9PiB7XG4gICAgICBjaGFuZ2VDdXJyZW50VmFsdWUodmFsdWUpO1xuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBvcHRpb24gPSBnZXRPcHRpb25CeVZhbHVlKHZhbHVlKTtcblxuICAgICAgaWYgKHdpdGhBdXRvQ2xlYXIpIHtcbiAgICAgICAgY2xlYXJTZWFyY2hWYWx1ZSgpO1xuICAgICAgfVxuXG4gICAgICBpZiAob3B0aW9uKSB7XG4gICAgICAgIG9uU2VsZWN0Py4odmFsdWUsIG9wdGlvbik7XG4gICAgICB9XG4gICAgfSxcbiAgICBbY2hhbmdlQ3VycmVudFZhbHVlLCBjbGVhclNlYXJjaFZhbHVlLCBnZXRPcHRpb25CeVZhbHVlLCBvblNlbGVjdCwgd2l0aEF1dG9DbGVhcl1cbiAgKTtcblxuICBjb25zdCBjbG9zZU9wdGlvbkxpc3QgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0SXNTZWxlY3RPcGVuKGZhbHNlKTtcbiAgfSwgW10pO1xuXG4gIGNvbnN0IGJsdXJIYW5kbGUgPSAoZTogRm9jdXNFdmVudCkgPT4ge1xuICAgIGNvbnN0IGlzRm9jdXNPbk9wdGlvbkxpc3QgPSByZWZzLmZsb2F0aW5nLmN1cnJlbnQ/LmNvbnRhaW5zKGUucmVsYXRlZFRhcmdldCk7XG4gICAgY29uc3QgaXNGb2N1c09uU2VhcmNoSW5wdXQgPSAhaXNOdWxsKGlucHV0UmVmLmN1cnJlbnQpICYmIGUucmVsYXRlZFRhcmdldCA9PT0gaW5wdXRSZWYuY3VycmVudDtcbiAgICBjb25zdCBpc0ZvY3VzT25Db250cm9sID0gZS5yZWxhdGVkVGFyZ2V0ID09PSBjb250cm9sUmVmLmN1cnJlbnQ7XG5cbiAgICBpZiAoaXNGb2N1c09uT3B0aW9uTGlzdCB8fCBpc0ZvY3VzT25TZWFyY2hJbnB1dCB8fCBpc0ZvY3VzT25Db250cm9sKSB7XG4gICAgICBpZiAoc2hvd1NlYXJjaCkge1xuICAgICAgICByZXR1cm5Gb2N1c1RvSW5wdXQoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybkZvY3VzVG9XcmFwcGVyKCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBvbkJsdXI/LihlKTtcbiAgICBjbGVhclNlYXJjaFZhbHVlKCk7XG4gICAgY2xvc2VPcHRpb25MaXN0KCk7XG4gIH07XG5cbiAgY29uc3QgY2xlYXJTZWxlY3QgPSB1c2VDYWxsYmFjayhcbiAgICAoZTogTW91c2VFdmVudCkgPT4ge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgY2xlYXJDdXJyZW50VmFsdWUoKTtcbiAgICAgIG9uQ2xlYXI/LigpO1xuICAgIH0sXG4gICAgW2NsZWFyQ3VycmVudFZhbHVlLCBvbkNsZWFyXVxuICApO1xuXG4gIGNvbnN0IGtleURvd25IYW5kbGVyID0gKGU6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICBpZiAoZS5rZXkgPT09IFwiRW50ZXJcIikge1xuICAgICAgaWYgKGlzU2VsZWN0T3Blbikge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGdldEN1cnJlbnRTZWxlY3RpbmdWYWx1ZSgpO1xuXG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY3VycmVudFZhbHVlLmluY2x1ZGVzKHZhbHVlKSkge1xuICAgICAgICAgIHJlbW92ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjaGFuZ2VDdXJyZW50VmFsdWUodmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHdpdGhBdXRvQ2xlYXIpIHtcbiAgICAgICAgICBjbGVhclNlYXJjaFZhbHVlKCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY2xpY2tIYW5kbGUoKTtcbiAgICB9XG5cbiAgICBzZXRJc1NlbGVjdE9wZW4odHJ1ZSk7XG5cbiAgICBvbktleUNvbnRyb2woZSk7XG4gICAgb25JbnB1dEtleURvd24/LihlKTtcbiAgfTtcblxuICBjb25zdCBtb3VzZU92ZXJIYW5kbGUgPSAoKSA9PiB7XG4gICAgc2V0SXNIb3Zlcih0cnVlKTtcbiAgfTtcblxuICBjb25zdCBtb3VzZU91dEhhbmRsZSA9ICgpID0+IHtcbiAgICBzZXRJc0hvdmVyKGZhbHNlKTtcbiAgfTtcblxuICBjb25zdCBmb2N1c0hhbmRsZSA9IChlOiBGb2N1c0V2ZW50KSA9PiB7XG4gICAgb25Gb2N1cz8uKGUpO1xuXG4gICAgaWYgKCFzaG93U2VhcmNoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcmV0dXJuRm9jdXNUb0lucHV0KCk7XG4gIH07XG5cbiAgY29uc3QgcmVuZGVyVGFnUGxhY2Vob2xkZXIgPSAoaGlkZGVuRWxlbWVudHNDb3VudGVyOiBudW1iZXIpID0+IHtcbiAgICBpZiAoaXNVbmRlZmluZWQobWF4VGFnUGxhY2Vob2xkZXIpKSB7XG4gICAgICByZXR1cm4gPFRhZ1BsYWNlaG9sZGVyIGhpZGRlbkVsZW1lbnRzQ291bnRlcj17aGlkZGVuRWxlbWVudHNDb3VudGVyfSAvPjtcbiAgICB9XG5cbiAgICBpZiAoIWlzRnVuY3Rpb24obWF4VGFnUGxhY2Vob2xkZXIpKSB7XG4gICAgICByZXR1cm4gPHNwYW4gZGF0YS1lbGVtZW50PXt0YWdQbGFjZWhvbGRlckRhdGFFbGVtZW50fT57bWF4VGFnUGxhY2Vob2xkZXJ9PC9zcGFuPjtcbiAgICB9XG5cbiAgICBjb25zdCBoaWRkZW5FbGVtZW50cyA9IGN1cnJlbnRWYWx1ZS5yZWR1Y2UoKGFjYzogT3B0aW9uW10sIHZhbHVlKSA9PiB7XG4gICAgICBjb25zdCBpc0hpZGRlbiA9IGlzSXRlbUhpZGRlbi5nZXQodmFsdWUpO1xuICAgICAgY29uc3Qgb3B0aW9uID0gZ2V0T3B0aW9uQnlWYWx1ZSh2YWx1ZSk7XG5cbiAgICAgIGlmICghaXNIaWRkZW4gfHwgaXNVbmRlZmluZWQob3B0aW9uKSkge1xuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfVxuXG4gICAgICBhY2MucHVzaChvcHRpb24pO1xuXG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIFtdKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8c3BhbiBkYXRhLWVsZW1lbnQ9e3RhZ1BsYWNlaG9sZGVyRGF0YUVsZW1lbnR9PnttYXhUYWdQbGFjZWhvbGRlcihoaWRkZW5FbGVtZW50cyl9PC9zcGFuPlxuICAgICk7XG4gIH07XG5cbiAgY29uc3QgcmVuZGVyTGFiZWwgPSAodmFsdWVzOiBPcHRpb25WYWx1ZVtdLCBjdXJyZW50TGFiZWw6IHN0cmluZ1tdKSA9PiB7XG4gICAgY29uc3QgdmlzaWJsZUxhYmVscyA9IGdldFZpc2libGVMYWJlbHMoY3VycmVudExhYmVsLCBtYXhUYWdDb3VudCk7XG5cbiAgICBjb25zdCBsYWJlbCA9IHZpc2libGVMYWJlbHMubWFwKChsYWJlbCwgaW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdmFsdWVzW2luZGV4XSBhcyBPcHRpb25WYWx1ZTtcblxuICAgICAgaWYgKGlzRnVuY3Rpb24obGFiZWxSZW5kZXIpKSB7XG4gICAgICAgIHJldHVybiBsYWJlbFJlbmRlcih7IGxhYmVsLCB2YWx1ZSB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKG1vZGUgPT09IFwic2luZ2xlXCIpIHtcbiAgICAgICAgcmV0dXJuIGxhYmVsO1xuICAgICAgfVxuXG4gICAgICBpZiAoaXNGdW5jdGlvbih0YWdSZW5kZXIpKSB7XG4gICAgICAgIHJldHVybiB0YWdSZW5kZXIobGFiZWwpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBpc0hpZGRlbiA9ICEhaXNJdGVtSGlkZGVuLmdldCh2YWx1ZSk7XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTZWxlY3RUYWc8T3B0aW9uVmFsdWU+XG4gICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgIGxhYmVsPXtsYWJlbH1cbiAgICAgICAgICByZW1vdmVWYWx1ZT17cmVtb3ZlVmFsdWV9XG4gICAgICAgICAgbWF4VGFnVGV4dExlbmd0aD17bWF4VGFnVGV4dExlbmd0aH1cbiAgICAgICAgICBpc0JvcmRlcmxlc3M9e3ZhcmlhbnQgPT09IFwiYm9yZGVybGVzc1wifVxuICAgICAgICAgIGlzRXJyb3I9e3N0YXR1cyA9PT0gXCJlcnJvclwifVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBpc0hpZGRlbj17aXNIaWRkZW59XG4gICAgICAgICAgb25UYWdDbG9zZT17b25UYWdDbG9zZX1cbiAgICAgICAgICBrZXk9e3ZhbHVlPy50b1N0cmluZygpfVxuICAgICAgICAvPlxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGhpZGRlbkVsZW1lbnRzQ291bnRlciA9IGlzTnVtYmVyKG1heFRhZ0NvdW50KVxuICAgICAgPyBpc0l0ZW1IaWRkZW4uc2l6ZSAtIG1heFRhZ0NvdW50XG4gICAgICA6IEFycmF5LmZyb20oaXNJdGVtSGlkZGVuLnZhbHVlcygpKS5yZWR1Y2UoKGFjYywgaXNIaWRkZW4pID0+IChpc0hpZGRlbiA/IGFjYyArIDEgOiBhY2MpLCAwKTtcblxuICAgIGNvbnN0IHdpdGhUYWdQbGFjZWhvbGRlciA9XG4gICAgICAhaXNVbmRlZmluZWQobWF4VGFnQ291bnQpICYmIG1vZGUgPT09IFwibXVsdGlwbGVcIiAmJiBoaWRkZW5FbGVtZW50c0NvdW50ZXIgPiAwO1xuXG4gICAgaWYgKGxhYmVsLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIHtsYWJlbH1cbiAgICAgICAge3dpdGhUYWdQbGFjZWhvbGRlciAmJiByZW5kZXJUYWdQbGFjZWhvbGRlcihoaWRkZW5FbGVtZW50c0NvdW50ZXIpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICBjb25zdCByZW5kZXJTdWZmaXggPSAoKSA9PiB7XG4gICAgaWYgKHdpdGhEcmF3ZXIpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxCYXJzT3V0bGluZWRcbiAgICAgICAgICBvbkNsaWNrPXtjbGlja0hhbmRsZX1cbiAgICAgICAgICBjc3M9e1tzZWxlY3REZWZhdWx0U3R5bGUuZHJhd2VySWNvbih0aGVtZSksIHN0eWxlcz8uZHJhd2VySWNvbj8uKHRoZW1lKV19XG4gICAgICAgIC8+XG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChzaG93U2VhcmNoICYmIGlzU2VsZWN0T3Blbikge1xuICAgICAgcmV0dXJuIDxTZWFyY2hPdXRsaW5lZCAvPjtcbiAgICB9XG5cbiAgICByZXR1cm4gc3VmZml4SWNvbjtcbiAgfTtcblxuICBjb25zdCByZW5kZXJQbGFjZWhvbGRlciA9ICgpID0+IChcbiAgICA8c3BhbiBjc3M9e1tzZWxlY3REZWZhdWx0U3R5bGUucGxhY2Vob2xkZXIodGhlbWUpLCBzdHlsZXM/LnBsYWNlaG9sZGVyPy4odGhlbWUpXX0+XG4gICAgICB7cGxhY2Vob2xkZXJ9XG4gICAgPC9zcGFuPlxuICApO1xuXG4gIGNvbnN0IHdpdGhDbGVhckJ1dHRvbiA9IGFsbG93Q2xlYXIgJiYgISFmaWx0ZXJlZEFjdGl2ZVZhbHVlcy5sZW5ndGg7XG5cbiAgY29uc3QgaW5wdXRWYWx1ZSA9XG4gICAgbW9kZSA9PT0gXCJtdWx0aXBsZVwiIHx8IGlzU2VsZWN0T3BlblxuICAgICAgPyAoc2VhcmNoVmFsdWUgPz8gc2VhcmNoSW5wdXRWYWx1ZSlcbiAgICAgIDogY3VycmVudExhYmVsWzBdPy50b1N0cmluZygpO1xuXG4gIGNvbnN0IGlzRW1wdHkgPSBmaWx0ZXJlZEFjdGl2ZVZhbHVlcy5sZW5ndGggPT09IDA7XG4gIGNvbnN0IHNpbmdsZU1vZFBsYWNlaG9sZGVyID0gY3VycmVudExhYmVsWzBdID8/IHBsYWNlaG9sZGVyID8/IFwiXCI7XG4gIGNvbnN0IG11bHRpcGxlTW9kUGxhY2Vob2xkZXIgPSBpc0VtcHR5ID8gcGxhY2Vob2xkZXIgOiB1bmRlZmluZWQ7XG5cbiAgY29uc3Qgc2VhcmNoSW5wdXRQbGFjZWhvbGRlciA9IG1vZGUgPT09IFwic2luZ2xlXCIgPyBzaW5nbGVNb2RQbGFjZWhvbGRlciA6IG11bHRpcGxlTW9kUGxhY2Vob2xkZXI7XG5cbiAgY29uc3QgbGV0dGVyc051bWJlciA9IChpbnB1dFZhbHVlPy5sZW5ndGggPz8gMCkgKyAxO1xuXG4gIGNvbnN0IGhhc0ljb25QcmVmaXggPSB0eXBlb2YgcHJlZml4ID09PSBcIm9iamVjdFwiO1xuXG4gIGNvbnN0IGNvbnRleHRWYWx1ZTogQmFzZVNlbGVjdENvbnRleHRTaGFwZTxPcHRpb25WYWx1ZT4gPSB7XG4gICAgY3VycmVudFZhbHVlOiBhY3RpdmVWYWx1ZXMsXG4gICAgc2hvd09wdGlvbkxpc3Q6IG9wZW4gPz8gaXNTZWxlY3RPcGVuLFxuICAgIHNldFZhbHVlOiBjaGFuZ2VIYW5kbGUsXG4gICAgY2xvc2VPcHRpb25MaXN0LFxuICAgIGRyb3Bkb3duTWluV2lkdGgsXG4gICAgZHJvcGRvd25NYXhIZWlnaHQsXG4gICAgZHJvcGRvd25Qcm9tcHQsXG4gICAgbG9hZGluZyxcbiAgICBkcm9wZG93bkNsYXNzTmFtZSxcbiAgICBkcm9wZG93blJlbmRlcixcbiAgICBkcm9wZG93bk1hdGNoU2VsZWN0V2lkdGgsXG4gICAgcmVmZXJlbmNlT2Zmc2V0V2lkdGgsXG4gICAgZmxvYXRpbmdTdHlsZXMsXG4gICAgc2V0RmxvYXRpbmc6IHJlZnMuc2V0RmxvYXRpbmcsXG4gICAgZmxvYXRpbmdSZWY6IHJlZnMuZmxvYXRpbmcsXG4gICAgZ2V0UG9wdXBDb250YWluZXIsXG4gICAgdmlydHVhbCxcbiAgICBjdXJyZW50U2VsZWN0aW5nSW5kZXgsXG4gICAgZW1wdHlDb250ZW50LFxuICAgIG5vdEZvdW5kQ29udGVudCxcbiAgICBzZWFyY2hWYWx1ZTogc2VhcmNoVmFsdWUgPz8gc2VhcmNoSW5wdXRWYWx1ZSxcbiAgICBzaG93U2VhcmNoLFxuICAgIG1vZGUsXG4gICAgcmVtb3ZlVmFsdWUsXG4gICAgaXNJdGVtSGlkZGVuLFxuICAgIGdldEN1cnJlbnRTZWxlY3RpbmdWYWx1ZSxcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxiYXNlU2VsZWN0Q29udGV4dC5Qcm92aWRlciB2YWx1ZT17Y29udGV4dFZhbHVlfT5cbiAgICAgIDxzcGFuXG4gICAgICAgIGNzcz17W3NlbGVjdERlZmF1bHRTdHlsZS53cmFwcGVyKHRoZW1lKSwgc3R5bGVzPy53cmFwcGVyPy4odGhlbWUpXX1cbiAgICAgICAgdGFiSW5kZXg9ezF9XG4gICAgICAgIG9uS2V5RG93bj17a2V5RG93bkhhbmRsZXJ9XG4gICAgICAgIG9uTW91c2VPdmVyPXttb3VzZU92ZXJIYW5kbGV9XG4gICAgICAgIG9uTW91c2VPdXQ9e21vdXNlT3V0SGFuZGxlfVxuICAgICAgICBvbkZvY3VzPXtmb2N1c0hhbmRsZX1cbiAgICAgICAgb25CbHVyPXtibHVySGFuZGxlfVxuICAgICAgICBhdXRvRm9jdXM9e2F1dG9Gb2N1c31cbiAgICAgICAgcmVmPXtjb250cm9sUmVmfVxuICAgICAgPlxuICAgICAgICA8c3BhblxuICAgICAgICAgIGNzcz17W3NlbGVjdERlZmF1bHRTdHlsZS5ib2R5KHRoZW1lKSwgc3R5bGVzPy5ib2R5Py4odGhlbWUpXX1cbiAgICAgICAgICBvbkNsaWNrPXshd2l0aERyYXdlciA/IGNsaWNrSGFuZGxlIDogdW5kZWZpbmVkfVxuICAgICAgICAgIHJlZj17cmVmcy5zZXRSZWZlcmVuY2V9XG4gICAgICAgID5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgY3NzPXtbc2VsZWN0RGVmYXVsdFN0eWxlLnByZWZpeEFuZENvbnRlbnQodGhlbWUpLCBzdHlsZXM/LnByZWZpeEFuZENvbnRlbnQ/Lih0aGVtZSldfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtwcmVmaXggJiYgKFxuICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgIGNzcz17W3NlbGVjdERlZmF1bHRTdHlsZS5wcmVmaXgoaGFzSWNvblByZWZpeCkodGhlbWUpLCBzdHlsZXM/LnByZWZpeD8uKHRoZW1lKV19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7cHJlZml4fVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICApfVxuXG4gICAgICAgICAgICB7c2hvd1NlYXJjaCA/IChcbiAgICAgICAgICAgICAgPHNwYW4gcmVmPXtjb250YWluZXJSZWZ9IGNzcz17c2VsZWN0RGVmYXVsdFN0eWxlLmNvbnRlbnQodGhlbWUpfT5cbiAgICAgICAgICAgICAgICB7bW9kZSA9PT0gXCJtdWx0aXBsZVwiICYmIHJlbmRlckxhYmVsKGZpbHRlcmVkQWN0aXZlVmFsdWVzLCBjdXJyZW50TGFiZWwpfVxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgY3NzPXtzZWxlY3REZWZhdWx0U3R5bGUuc2VhcmNoSW5wdXQodGhlbWUpfVxuICAgICAgICAgICAgICAgICAgdmFsdWU9e2lucHV0VmFsdWUgPz8gXCJcIn1cbiAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtzZWFyY2hIYW5kbGV9XG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17c2VhcmNoSW5wdXRQbGFjZWhvbGRlcj8udG9TdHJpbmcoKX1cbiAgICAgICAgICAgICAgICAgIHJlZj17aW5wdXRSZWZ9XG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICBzdHlsZT17Z2V0U2VsZWN0U2VhcmNoSW5wdXRXaWR0aFN0eWxlKFxuICAgICAgICAgICAgICAgICAgICBtb2RlID09PSBcIm11bHRpcGxlXCIsXG4gICAgICAgICAgICAgICAgICAgIGlzRW1wdHksXG4gICAgICAgICAgICAgICAgICAgIGxldHRlcnNOdW1iZXJcbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICBkYXRhLWVsZW1lbnQ9XCJzZWFyY2gtaW5wdXRcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgcmVmPXtjb250YWluZXJSZWZ9XG4gICAgICAgICAgICAgICAgY3NzPXtbc2VsZWN0RGVmYXVsdFN0eWxlLmNvbnRlbnQodGhlbWUpLCBzdHlsZXM/LmNvbnRlbnQ/Lih0aGVtZSldfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3JlbmRlckxhYmVsKGZpbHRlcmVkQWN0aXZlVmFsdWVzLCBjdXJyZW50TGFiZWwpID8/IHJlbmRlclBsYWNlaG9sZGVyKCl9XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAge3dpdGhDbGVhckJ1dHRvbiAmJiAoXG4gICAgICAgICAgICA8Q2xvc2VDaXJjbGVGaWxsZWRcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiY2xlYW4tYnV0dG9uXCJcbiAgICAgICAgICAgICAgb25DbGljaz17Y2xlYXJTZWxlY3R9XG4gICAgICAgICAgICAgIGNzcz17W3NlbGVjdERlZmF1bHRTdHlsZS5jbGVhbkljb24odGhlbWUpLCBzdHlsZXM/LmNsZWFuSWNvbj8uKHRoZW1lKV19XG4gICAgICAgICAgICAgIGRhdGEtZWxlbWVudD1cImNsZWFuLWJ1dHRvblwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG4gICAgICAgICAgPHNwYW4gY3NzPXtbc2VsZWN0RGVmYXVsdFN0eWxlLnN1ZmZpeEljb24odGhlbWUpLCBzdHlsZXM/LnN1ZmZpeEljb24/Lih0aGVtZSldfT5cbiAgICAgICAgICAgIHtyZW5kZXJTdWZmaXgoKX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvc3Bhbj5cblxuICAgICAgICA8U2VsZWN0T3B0aW9uTGlzdDxPcHRpb24sIE9wdGlvblZhbHVlPlxuICAgICAgICAgIG9wdGlvbnM9e2ZpbHRlcmVkQW5kU29ydGVkT3B0aW9uc31cbiAgICAgICAgICByZW5kZXJEcm9wZG93bkl0ZW09e3JlbmRlckRyb3Bkb3duSXRlbX1cbiAgICAgICAgICBvcHRpb25SZW5kZXI9e29wdGlvblJlbmRlcn1cbiAgICAgICAgICB2aXJ0dWFsaXplckVzdGltYXRlU2l6ZT17dmlydHVhbGl6ZXJFc3RpbWF0ZVNpemV9XG4gICAgICAgICAgc3R5bGVzPXtzdHlsZXM/LmRyb3Bkb3duU3R5bGV9XG4gICAgICAgIC8+XG4gICAgICA8L3NwYW4+XG4gICAgPC9iYXNlU2VsZWN0Q29udGV4dC5Qcm92aWRlcj5cbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBCYXNlU2VsZWN0ID0gbWVtbyhCYXNlU2VsZWN0Q29tcG9uZW50KSBhcyB0eXBlb2YgQmFzZVNlbGVjdENvbXBvbmVudDtcbiJdfQ== */"], onClick: !withDrawer ? clickHandle : void 0, ref: refs.setReference, children: [
344
+ /* @__PURE__ */ jsxs("span", { css: [selectDefaultStyle.prefixAndContent(theme), (_e = styles == null ? void 0 : styles.prefixAndContent) == null ? void 0 : _e.call(styles, theme), process.env.NODE_ENV === "production" ? "" : ";label:BaseSelectComponent;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvZnJvbnRlbmQvbGlicy91aS1raXQvc3JjL2NvbXBvbmVudHMvQmFzZVNlbGVjdC9CYXNlU2VsZWN0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUErZFkiLCJmaWxlIjoiL2J1aWxkcy9mcm9udGVuZC9saWJzL3VpLWtpdC9zcmMvY29tcG9uZW50cy9CYXNlU2VsZWN0L0Jhc2VTZWxlY3QudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgdHlwZSBGb2N1c0V2ZW50LFxuICB0eXBlIEtleWJvYXJkRXZlbnQsXG4gIG1lbW8sXG4gIHR5cGUgTW91c2VFdmVudCxcbiAgdHlwZSBQcm9wc1dpdGhDaGlsZHJlbixcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBnZXRTZWxlY3REZWZhdWx0U3R5bGUsIGdldFNlbGVjdFNlYXJjaElucHV0V2lkdGhTdHlsZSB9IGZyb20gXCIuL0Jhc2VTZWxlY3Quc3R5bGVzXCI7XG5pbXBvcnQgeyB1c2VUaGVtZSB9IGZyb20gXCJob29rcy91c2VUaGVtZVwiO1xuaW1wb3J0IHsgQmFyc091dGxpbmVkLCBDbG9zZUNpcmNsZUZpbGxlZCwgRG93bk91dGxpbmVkLCBTZWFyY2hPdXRsaW5lZCB9IGZyb20gXCJAaW5mb21heGltdW0vaWNvbnNcIjtcbmltcG9ydCB7IGlzRnVuY3Rpb24sIGlzTnVsbCwgaXNOdW1iZXIsIGlzVW5kZWZpbmVkIH0gZnJvbSBcImxvZGFzaC1lc1wiO1xuaW1wb3J0IHsgYXV0b1VwZGF0ZSwgZmxpcCwgb2Zmc2V0LCB1c2VGbG9hdGluZyB9IGZyb20gXCJAZmxvYXRpbmctdWkvcmVhY3RcIjtcbmltcG9ydCB7IGNvbnZlcnRTZWxlY3RQbGFjZW1lbnQsIGdldExhYmVsLCBnZXRWaXNpYmxlTGFiZWxzIH0gZnJvbSBcIi4vQmFzZVNlbGVjdC51dGlsc1wiO1xuaW1wb3J0IHsgdXNlU2VhcmNoIH0gZnJvbSBcIi4vaG9va3MvdXNlU2VhcmNoXCI7XG5pbXBvcnQgeyB1c2VDdXJyZW50VmFsdWUgfSBmcm9tIFwiLi9ob29rcy91c2VDdXJyZW50VmFsdWVcIjtcbmltcG9ydCB7IFNlbGVjdFRhZyB9IGZyb20gXCIuL2NvbXBvbmVudHMvU2VsZWN0VGFnL1NlbGVjdFRhZ1wiO1xuaW1wb3J0IHsgdXNlSGlkZUVsZW1lbnRzIH0gZnJvbSBcIi4vaG9va3MvdXNlSGlkZUVsZW1lbnRzXCI7XG5pbXBvcnQge1xuICBUYWdQbGFjZWhvbGRlcixcbiAgdGFnUGxhY2Vob2xkZXJEYXRhRWxlbWVudCxcbn0gZnJvbSBcIi4vY29tcG9uZW50cy9UYWdQbGFjZWhvbGRlci9UYWdQbGFjZWhvbGRlclwiO1xuaW1wb3J0IHR5cGUgeyBCYXNlU2VsZWN0T3B0aW9uSW50ZXJmYWNlLCBCYXNlU2VsZWN0UHJvcHMgfSBmcm9tIFwiLi9CYXNlU2VsZWN0LnR5cGVzXCI7XG5pbXBvcnQgeyBTZWxlY3RPcHRpb25MaXN0IH0gZnJvbSBcIi4vY29tcG9uZW50cy9TZWxlY3RPcHRpb25MaXN0L1NlbGVjdE9wdGlvbkxpc3RcIjtcbmltcG9ydCB7IGNyZWF0ZUJhc2VTZWxlY3RDb250ZXh0LCB0eXBlIEJhc2VTZWxlY3RDb250ZXh0U2hhcGUgfSBmcm9tIFwiLi9jb250ZXh0cy9CYXNlU2VsZWN0Q29udGV4dFwiO1xuXG5jb25zdCBCYXNlU2VsZWN0Q29tcG9uZW50ID0gPE9wdGlvbiBleHRlbmRzIEJhc2VTZWxlY3RPcHRpb25JbnRlcmZhY2U8T3B0aW9uVmFsdWU+LCBPcHRpb25WYWx1ZT4oe1xuICBvcHRpb25zID0gW10sXG4gIG1vZGUgPSBcInNpbmdsZVwiLFxuICB2YXJpYW50ID0gXCJvdXRsaW5lZFwiLFxuICBkZWZhdWx0VmFsdWUsXG4gIGRlZmF1bHRPcGVuID0gZmFsc2UsXG4gIGRlZmF1bHRBY3RpdmVGaXJzdE9wdGlvbixcbiAgdmFsdWUsXG4gIG9wZW4sXG4gIHBsYWNlaG9sZGVyLFxuICBkcm9wZG93bk1pbldpZHRoID0gMTIwLFxuICBkcm9wZG93bk1heEhlaWdodCA9IDQxNCxcbiAgYWxsb3dDbGVhciA9IGZhbHNlLFxuICBhdXRvRm9jdXMsXG4gIHByZWZpeCxcbiAgc3VmZml4SWNvbiA9IDxEb3duT3V0bGluZWQgLz4sXG4gIHN0YXR1cyA9IFwiZGVmYXVsdFwiLFxuICBkaXNhYmxlZCA9IGZhbHNlLFxuICBkcm9wZG93blByb21wdCxcbiAgbG9hZGluZyA9IGZhbHNlLFxuICBkcm9wZG93bkNsYXNzTmFtZSxcbiAgc3R5bGVzLFxuICBkcm9wZG93bk1hdGNoU2VsZWN0V2lkdGggPSB0cnVlLFxuICBwbGFjZW1lbnQgPSBcImJvdHRvbUxlZnRcIixcbiAgdmlydHVhbCA9IHRydWUsXG4gIGVtcHR5Q29udGVudCA9IFwiXCIsXG4gIHNob3dTZWFyY2ggPSBtb2RlID09PSBcInNpbmdsZVwiID8gZmFsc2UgOiB0cnVlLFxuICBzZWFyY2hWYWx1ZSxcbiAgbm90Rm91bmRDb250ZW50ID0gXCJOb3QgZm91bmRcIixcbiAgb3B0aW9uTGFiZWxQcm9wID0gXCJ0aXRsZVwiLFxuICBkcmF3ZXIgPSBmYWxzZSxcbiAgYXV0b0NsZWFyU2VhcmNoVmFsdWUgPSB0cnVlLFxuICBtYXhUYWdDb3VudCxcbiAgbWF4VGFnVGV4dExlbmd0aCxcbiAgbWF4VGFnUGxhY2Vob2xkZXIsXG4gIGN1cnJlbnRTZWxlY3RpbmdJbmRleCxcbiAgZ2V0Q3VycmVudFNlbGVjdGluZ1ZhbHVlLFxuICBvbktleUNvbnRyb2wsXG4gIGdldE9wdGlvbkJ5VmFsdWUsXG4gIHZpcnR1YWxpemVyRXN0aW1hdGVTaXplLFxuICBmaWx0ZXJPcHRpb25zLFxuICBmaWx0ZXJTb3J0LFxuICB2YWx1ZXNGaWx0ZXIsXG4gIGRyb3Bkb3duUmVuZGVyLFxuICBvcHRpb25SZW5kZXIsXG4gIGxhYmVsUmVuZGVyLFxuICBvbkJsdXIsXG4gIG9uQ2hhbmdlLFxuICBvbkNsZWFyLFxuICBvbkRyb3Bkb3duVmlzaWJsZUNoYW5nZSxcbiAgb25Gb2N1cyxcbiAgb25JbnB1dEtleURvd24sXG4gIG9uU2VsZWN0LFxuICBnZXRQb3B1cENvbnRhaW5lciA9ICgpID0+IGRvY3VtZW50LmJvZHksXG4gIG9uU2VhcmNoLFxuICB0YWdSZW5kZXIsXG4gIG9uRGVzZWxlY3QsXG4gIHJlbmRlckRyb3Bkb3duSXRlbSxcbiAgb25UYWdDbG9zZSxcbn06IFByb3BzV2l0aENoaWxkcmVuPEJhc2VTZWxlY3RQcm9wczxPcHRpb24sIE9wdGlvblZhbHVlPj4pID0+IHtcbiAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpO1xuICBjb25zdCBiYXNlU2VsZWN0Q29udGV4dCA9IGNyZWF0ZUJhc2VTZWxlY3RDb250ZXh0PE9wdGlvblZhbHVlPigpO1xuXG4gIGNvbnN0IHsgZmlsdGVyZWRBbmRTb3J0ZWRPcHRpb25zLCBzZWFyY2hJbnB1dFZhbHVlLCBzZWFyY2hIYW5kbGUsIGNsZWFyU2VhcmNoVmFsdWUgfSA9IHVzZVNlYXJjaDxcbiAgICBPcHRpb24sXG4gICAgT3B0aW9uVmFsdWVcbiAgPih7XG4gICAgb3B0aW9ucyxcbiAgICBzZWFyY2hWYWx1ZSxcbiAgICBvblNlYXJjaCxcbiAgICBmaWx0ZXJTb3J0LFxuICAgIGZpbHRlck9wdGlvbnMsXG4gIH0pO1xuXG4gIGNvbnN0IHsgY3VycmVudFZhbHVlLCBjaGFuZ2VDdXJyZW50VmFsdWUsIHJlbW92ZVZhbHVlLCBjbGVhckN1cnJlbnRWYWx1ZSB9ID0gdXNlQ3VycmVudFZhbHVlKFxuICAgIG1vZGUsXG4gICAgZGVmYXVsdFZhbHVlLFxuICAgIGRlZmF1bHRBY3RpdmVGaXJzdE9wdGlvbixcbiAgICBvcHRpb25zLFxuICAgIG9uRGVzZWxlY3RcbiAgKTtcblxuICBjb25zdCBbaXNTZWxlY3RPcGVuLCBzZXRJc1NlbGVjdE9wZW5dID0gdXNlU3RhdGUoZGVmYXVsdE9wZW4pO1xuICBjb25zdCBbaXNIb3Zlciwgc2V0SXNIb3Zlcl0gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgY29uc3QgaXNJbml0aWFsTW91bnQgPSB1c2VSZWYodHJ1ZSk7XG4gIGNvbnN0IGNvbnRyb2xSZWYgPSB1c2VSZWY8SFRNTFNwYW5FbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IGlucHV0UmVmID0gdXNlUmVmPEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsPihudWxsKTtcblxuICBjb25zdCByZWZlcmVuY2VPZmZzZXRXaWR0aCA9IGNvbnRyb2xSZWYuY3VycmVudD8ub2Zmc2V0V2lkdGg7XG5cbiAgY29uc3QgeyByZWZzLCBmbG9hdGluZ1N0eWxlcyB9ID0gdXNlRmxvYXRpbmc8SFRNTFNwYW5FbGVtZW50Pih7XG4gICAgd2hpbGVFbGVtZW50c01vdW50ZWQ6IGF1dG9VcGRhdGUsXG4gICAgcGxhY2VtZW50OiBjb252ZXJ0U2VsZWN0UGxhY2VtZW50KHBsYWNlbWVudCksXG4gICAgbWlkZGxld2FyZTogW29mZnNldCg0KSwgZmxpcCgpXSxcbiAgfSk7XG5cbiAgY29uc3QgcmV0dXJuRm9jdXNUb1dyYXBwZXIgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBjb250cm9sUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgfSk7XG4gIH0sIFtdKTtcblxuICBjb25zdCByZXR1cm5Gb2N1c1RvSW5wdXQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpbnB1dFJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgIH0pO1xuICB9LCBbXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWlzSW5pdGlhbE1vdW50LmN1cnJlbnQpIHtcbiAgICAgIGNvbnN0IG9wdGlvbnMgPSBjdXJyZW50VmFsdWUucmVkdWNlKChhY2M6IE9wdGlvbltdLCB2YWx1ZSkgPT4ge1xuICAgICAgICBjb25zdCBvcHRpb24gPSBnZXRPcHRpb25CeVZhbHVlKHZhbHVlKTtcblxuICAgICAgICBpZiAoaXNVbmRlZmluZWQob3B0aW9uKSkge1xuICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gWy4uLmFjYywgb3B0aW9uXTtcbiAgICAgIH0sIFtdKTtcblxuICAgICAgb25DaGFuZ2U/LihjdXJyZW50VmFsdWUsIG9wdGlvbnMpO1xuICAgIH1cbiAgfSwgW2N1cnJlbnRWYWx1ZSwgZ2V0T3B0aW9uQnlWYWx1ZSwgb25DaGFuZ2VdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpc0luaXRpYWxNb3VudC5jdXJyZW50KSB7XG4gICAgICBpc0luaXRpYWxNb3VudC5jdXJyZW50ID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIG9uRHJvcGRvd25WaXNpYmxlQ2hhbmdlPy4oKTtcbiAgICB9XG4gIH0sIFtpc1NlbGVjdE9wZW4sIG9uRHJvcGRvd25WaXNpYmxlQ2hhbmdlXSk7XG5cbiAgY29uc3QgYWN0aXZlVmFsdWVzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBpc1VuZGVmaW5lZCh2YWx1ZSkgPyBjdXJyZW50VmFsdWUgOiBbdmFsdWVdO1xuICB9LCBbY3VycmVudFZhbHVlLCB2YWx1ZV0pO1xuXG4gIGNvbnN0IHNlbGVjdERlZmF1bHRTdHlsZSA9IGdldFNlbGVjdERlZmF1bHRTdHlsZSh7XG4gICAgc3RhdHVzLFxuICAgIGRpc2FibGVkLFxuICAgIHZhcmlhbnQsXG4gICAgbXVsdGlwbGU6IG1vZGUgPT09IFwibXVsdGlwbGVcIixcbiAgICBpc0hvdmVyLFxuICAgIG1heFRhZ0NvdW50LFxuICAgIHdpdGhQcmVmaXg6ICEhcHJlZml4LFxuICAgIGlzRW1wdHk6IGFjdGl2ZVZhbHVlcy5sZW5ndGggPT09IDAsXG4gIH0pO1xuXG4gIGNvbnN0IGZpbHRlcmVkQWN0aXZlVmFsdWVzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIGlzRnVuY3Rpb24odmFsdWVzRmlsdGVyKSA/IHZhbHVlc0ZpbHRlcihhY3RpdmVWYWx1ZXMpIDogYWN0aXZlVmFsdWVzO1xuICB9LCBbYWN0aXZlVmFsdWVzLCB2YWx1ZXNGaWx0ZXJdKTtcblxuICBjb25zdCB7IGNvbnRhaW5lclJlZiwgaXNJdGVtSGlkZGVuIH0gPSB1c2VIaWRlRWxlbWVudHMoXG4gICAgZmlsdGVyZWRBY3RpdmVWYWx1ZXMsXG4gICAgdGhlbWUuc3BhY2VYUyxcbiAgICBpbnB1dFJlZixcbiAgICBtYXhUYWdDb3VudFxuICApO1xuXG4gIGNvbnN0IGN1cnJlbnRMYWJlbCA9IGdldExhYmVsPE9wdGlvbiwgT3B0aW9uVmFsdWU+KFxuICAgIGZpbHRlcmVkQWN0aXZlVmFsdWVzLFxuICAgIGdldE9wdGlvbkJ5VmFsdWUsXG4gICAgb3B0aW9uTGFiZWxQcm9wXG4gICk7XG5cbiAgY29uc3Qgd2l0aERyYXdlciA9IG1vZGUgPT09IFwibXVsdGlwbGVcIiAmJiBkcmF3ZXI7XG4gIGNvbnN0IHdpdGhBdXRvQ2xlYXIgPSBtb2RlID09PSBcInNpbmdsZVwiIHx8IGF1dG9DbGVhclNlYXJjaFZhbHVlO1xuXG4gIGNvbnN0IGNsaWNrSGFuZGxlID0gKCkgPT4ge1xuICAgIGlmIChkaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHNldElzU2VsZWN0T3BlbigocHJldikgPT4gIXByZXYpO1xuICB9O1xuXG4gIGNvbnN0IGNoYW5nZUhhbmRsZSA9IHVzZUNhbGxiYWNrKFxuICAgICh2YWx1ZTogT3B0aW9uVmFsdWUgfCBPcHRpb25WYWx1ZVtdKSA9PiB7XG4gICAgICBjaGFuZ2VDdXJyZW50VmFsdWUodmFsdWUpO1xuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBvcHRpb24gPSBnZXRPcHRpb25CeVZhbHVlKHZhbHVlKTtcblxuICAgICAgaWYgKHdpdGhBdXRvQ2xlYXIpIHtcbiAgICAgICAgY2xlYXJTZWFyY2hWYWx1ZSgpO1xuICAgICAgfVxuXG4gICAgICBpZiAob3B0aW9uKSB7XG4gICAgICAgIG9uU2VsZWN0Py4odmFsdWUsIG9wdGlvbik7XG4gICAgICB9XG4gICAgfSxcbiAgICBbY2hhbmdlQ3VycmVudFZhbHVlLCBjbGVhclNlYXJjaFZhbHVlLCBnZXRPcHRpb25CeVZhbHVlLCBvblNlbGVjdCwgd2l0aEF1dG9DbGVhcl1cbiAgKTtcblxuICBjb25zdCBjbG9zZU9wdGlvbkxpc3QgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0SXNTZWxlY3RPcGVuKGZhbHNlKTtcbiAgfSwgW10pO1xuXG4gIGNvbnN0IGJsdXJIYW5kbGUgPSAoZTogRm9jdXNFdmVudCkgPT4ge1xuICAgIGNvbnN0IGlzRm9jdXNPbk9wdGlvbkxpc3QgPSByZWZzLmZsb2F0aW5nLmN1cnJlbnQ/LmNvbnRhaW5zKGUucmVsYXRlZFRhcmdldCk7XG4gICAgY29uc3QgaXNGb2N1c09uU2VhcmNoSW5wdXQgPSAhaXNOdWxsKGlucHV0UmVmLmN1cnJlbnQpICYmIGUucmVsYXRlZFRhcmdldCA9PT0gaW5wdXRSZWYuY3VycmVudDtcbiAgICBjb25zdCBpc0ZvY3VzT25Db250cm9sID0gZS5yZWxhdGVkVGFyZ2V0ID09PSBjb250cm9sUmVmLmN1cnJlbnQ7XG5cbiAgICBpZiAoaXNGb2N1c09uT3B0aW9uTGlzdCB8fCBpc0ZvY3VzT25TZWFyY2hJbnB1dCB8fCBpc0ZvY3VzT25Db250cm9sKSB7XG4gICAgICBpZiAoc2hvd1NlYXJjaCkge1xuICAgICAgICByZXR1cm5Gb2N1c1RvSW5wdXQoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybkZvY3VzVG9XcmFwcGVyKCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBvbkJsdXI/LihlKTtcbiAgICBjbGVhclNlYXJjaFZhbHVlKCk7XG4gICAgY2xvc2VPcHRpb25MaXN0KCk7XG4gIH07XG5cbiAgY29uc3QgY2xlYXJTZWxlY3QgPSB1c2VDYWxsYmFjayhcbiAgICAoZTogTW91c2VFdmVudCkgPT4ge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgY2xlYXJDdXJyZW50VmFsdWUoKTtcbiAgICAgIG9uQ2xlYXI/LigpO1xuICAgIH0sXG4gICAgW2NsZWFyQ3VycmVudFZhbHVlLCBvbkNsZWFyXVxuICApO1xuXG4gIGNvbnN0IGtleURvd25IYW5kbGVyID0gKGU6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICBpZiAoZS5rZXkgPT09IFwiRW50ZXJcIikge1xuICAgICAgaWYgKGlzU2VsZWN0T3Blbikge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGdldEN1cnJlbnRTZWxlY3RpbmdWYWx1ZSgpO1xuXG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY3VycmVudFZhbHVlLmluY2x1ZGVzKHZhbHVlKSkge1xuICAgICAgICAgIHJlbW92ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjaGFuZ2VDdXJyZW50VmFsdWUodmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHdpdGhBdXRvQ2xlYXIpIHtcbiAgICAgICAgICBjbGVhclNlYXJjaFZhbHVlKCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY2xpY2tIYW5kbGUoKTtcbiAgICB9XG5cbiAgICBzZXRJc1NlbGVjdE9wZW4odHJ1ZSk7XG5cbiAgICBvbktleUNvbnRyb2woZSk7XG4gICAgb25JbnB1dEtleURvd24/LihlKTtcbiAgfTtcblxuICBjb25zdCBtb3VzZU92ZXJIYW5kbGUgPSAoKSA9PiB7XG4gICAgc2V0SXNIb3Zlcih0cnVlKTtcbiAgfTtcblxuICBjb25zdCBtb3VzZU91dEhhbmRsZSA9ICgpID0+IHtcbiAgICBzZXRJc0hvdmVyKGZhbHNlKTtcbiAgfTtcblxuICBjb25zdCBmb2N1c0hhbmRsZSA9IChlOiBGb2N1c0V2ZW50KSA9PiB7XG4gICAgb25Gb2N1cz8uKGUpO1xuXG4gICAgaWYgKCFzaG93U2VhcmNoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcmV0dXJuRm9jdXNUb0lucHV0KCk7XG4gIH07XG5cbiAgY29uc3QgcmVuZGVyVGFnUGxhY2Vob2xkZXIgPSAoaGlkZGVuRWxlbWVudHNDb3VudGVyOiBudW1iZXIpID0+IHtcbiAgICBpZiAoaXNVbmRlZmluZWQobWF4VGFnUGxhY2Vob2xkZXIpKSB7XG4gICAgICByZXR1cm4gPFRhZ1BsYWNlaG9sZGVyIGhpZGRlbkVsZW1lbnRzQ291bnRlcj17aGlkZGVuRWxlbWVudHNDb3VudGVyfSAvPjtcbiAgICB9XG5cbiAgICBpZiAoIWlzRnVuY3Rpb24obWF4VGFnUGxhY2Vob2xkZXIpKSB7XG4gICAgICByZXR1cm4gPHNwYW4gZGF0YS1lbGVtZW50PXt0YWdQbGFjZWhvbGRlckRhdGFFbGVtZW50fT57bWF4VGFnUGxhY2Vob2xkZXJ9PC9zcGFuPjtcbiAgICB9XG5cbiAgICBjb25zdCBoaWRkZW5FbGVtZW50cyA9IGN1cnJlbnRWYWx1ZS5yZWR1Y2UoKGFjYzogT3B0aW9uW10sIHZhbHVlKSA9PiB7XG4gICAgICBjb25zdCBpc0hpZGRlbiA9IGlzSXRlbUhpZGRlbi5nZXQodmFsdWUpO1xuICAgICAgY29uc3Qgb3B0aW9uID0gZ2V0T3B0aW9uQnlWYWx1ZSh2YWx1ZSk7XG5cbiAgICAgIGlmICghaXNIaWRkZW4gfHwgaXNVbmRlZmluZWQob3B0aW9uKSkge1xuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfVxuXG4gICAgICBhY2MucHVzaChvcHRpb24pO1xuXG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIFtdKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8c3BhbiBkYXRhLWVsZW1lbnQ9e3RhZ1BsYWNlaG9sZGVyRGF0YUVsZW1lbnR9PnttYXhUYWdQbGFjZWhvbGRlcihoaWRkZW5FbGVtZW50cyl9PC9zcGFuPlxuICAgICk7XG4gIH07XG5cbiAgY29uc3QgcmVuZGVyTGFiZWwgPSAodmFsdWVzOiBPcHRpb25WYWx1ZVtdLCBjdXJyZW50TGFiZWw6IHN0cmluZ1tdKSA9PiB7XG4gICAgY29uc3QgdmlzaWJsZUxhYmVscyA9IGdldFZpc2libGVMYWJlbHMoY3VycmVudExhYmVsLCBtYXhUYWdDb3VudCk7XG5cbiAgICBjb25zdCBsYWJlbCA9IHZpc2libGVMYWJlbHMubWFwKChsYWJlbCwgaW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdmFsdWVzW2luZGV4XSBhcyBPcHRpb25WYWx1ZTtcblxuICAgICAgaWYgKGlzRnVuY3Rpb24obGFiZWxSZW5kZXIpKSB7XG4gICAgICAgIHJldHVybiBsYWJlbFJlbmRlcih7IGxhYmVsLCB2YWx1ZSB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKG1vZGUgPT09IFwic2luZ2xlXCIpIHtcbiAgICAgICAgcmV0dXJuIGxhYmVsO1xuICAgICAgfVxuXG4gICAgICBpZiAoaXNGdW5jdGlvbih0YWdSZW5kZXIpKSB7XG4gICAgICAgIHJldHVybiB0YWdSZW5kZXIobGFiZWwpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBpc0hpZGRlbiA9ICEhaXNJdGVtSGlkZGVuLmdldCh2YWx1ZSk7XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTZWxlY3RUYWc8T3B0aW9uVmFsdWU+XG4gICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgIGxhYmVsPXtsYWJlbH1cbiAgICAgICAgICByZW1vdmVWYWx1ZT17cmVtb3ZlVmFsdWV9XG4gICAgICAgICAgbWF4VGFnVGV4dExlbmd0aD17bWF4VGFnVGV4dExlbmd0aH1cbiAgICAgICAgICBpc0JvcmRlcmxlc3M9e3ZhcmlhbnQgPT09IFwiYm9yZGVybGVzc1wifVxuICAgICAgICAgIGlzRXJyb3I9e3N0YXR1cyA9PT0gXCJlcnJvclwifVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBpc0hpZGRlbj17aXNIaWRkZW59XG4gICAgICAgICAgb25UYWdDbG9zZT17b25UYWdDbG9zZX1cbiAgICAgICAgICBrZXk9e3ZhbHVlPy50b1N0cmluZygpfVxuICAgICAgICAvPlxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGhpZGRlbkVsZW1lbnRzQ291bnRlciA9IGlzTnVtYmVyKG1heFRhZ0NvdW50KVxuICAgICAgPyBpc0l0ZW1IaWRkZW4uc2l6ZSAtIG1heFRhZ0NvdW50XG4gICAgICA6IEFycmF5LmZyb20oaXNJdGVtSGlkZGVuLnZhbHVlcygpKS5yZWR1Y2UoKGFjYywgaXNIaWRkZW4pID0+IChpc0hpZGRlbiA/IGFjYyArIDEgOiBhY2MpLCAwKTtcblxuICAgIGNvbnN0IHdpdGhUYWdQbGFjZWhvbGRlciA9XG4gICAgICAhaXNVbmRlZmluZWQobWF4VGFnQ291bnQpICYmIG1vZGUgPT09IFwibXVsdGlwbGVcIiAmJiBoaWRkZW5FbGVtZW50c0NvdW50ZXIgPiAwO1xuXG4gICAgaWYgKGxhYmVsLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIHtsYWJlbH1cbiAgICAgICAge3dpdGhUYWdQbGFjZWhvbGRlciAmJiByZW5kZXJUYWdQbGFjZWhvbGRlcihoaWRkZW5FbGVtZW50c0NvdW50ZXIpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICBjb25zdCByZW5kZXJTdWZmaXggPSAoKSA9PiB7XG4gICAgaWYgKHdpdGhEcmF3ZXIpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxCYXJzT3V0bGluZWRcbiAgICAgICAgICBvbkNsaWNrPXtjbGlja0hhbmRsZX1cbiAgICAgICAgICBjc3M9e1tzZWxlY3REZWZhdWx0U3R5bGUuZHJhd2VySWNvbih0aGVtZSksIHN0eWxlcz8uZHJhd2VySWNvbj8uKHRoZW1lKV19XG4gICAgICAgIC8+XG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChzaG93U2VhcmNoICYmIGlzU2VsZWN0T3Blbikge1xuICAgICAgcmV0dXJuIDxTZWFyY2hPdXRsaW5lZCAvPjtcbiAgICB9XG5cbiAgICByZXR1cm4gc3VmZml4SWNvbjtcbiAgfTtcblxuICBjb25zdCByZW5kZXJQbGFjZWhvbGRlciA9ICgpID0+IChcbiAgICA8c3BhbiBjc3M9e1tzZWxlY3REZWZhdWx0U3R5bGUucGxhY2Vob2xkZXIodGhlbWUpLCBzdHlsZXM/LnBsYWNlaG9sZGVyPy4odGhlbWUpXX0+XG4gICAgICB7cGxhY2Vob2xkZXJ9XG4gICAgPC9zcGFuPlxuICApO1xuXG4gIGNvbnN0IHdpdGhDbGVhckJ1dHRvbiA9IGFsbG93Q2xlYXIgJiYgISFmaWx0ZXJlZEFjdGl2ZVZhbHVlcy5sZW5ndGg7XG5cbiAgY29uc3QgaW5wdXRWYWx1ZSA9XG4gICAgbW9kZSA9PT0gXCJtdWx0aXBsZVwiIHx8IGlzU2VsZWN0T3BlblxuICAgICAgPyAoc2VhcmNoVmFsdWUgPz8gc2VhcmNoSW5wdXRWYWx1ZSlcbiAgICAgIDogY3VycmVudExhYmVsWzBdPy50b1N0cmluZygpO1xuXG4gIGNvbnN0IGlzRW1wdHkgPSBmaWx0ZXJlZEFjdGl2ZVZhbHVlcy5sZW5ndGggPT09IDA7XG4gIGNvbnN0IHNpbmdsZU1vZFBsYWNlaG9sZGVyID0gY3VycmVudExhYmVsWzBdID8/IHBsYWNlaG9sZGVyID8/IFwiXCI7XG4gIGNvbnN0IG11bHRpcGxlTW9kUGxhY2Vob2xkZXIgPSBpc0VtcHR5ID8gcGxhY2Vob2xkZXIgOiB1bmRlZmluZWQ7XG5cbiAgY29uc3Qgc2VhcmNoSW5wdXRQbGFjZWhvbGRlciA9IG1vZGUgPT09IFwic2luZ2xlXCIgPyBzaW5nbGVNb2RQbGFjZWhvbGRlciA6IG11bHRpcGxlTW9kUGxhY2Vob2xkZXI7XG5cbiAgY29uc3QgbGV0dGVyc051bWJlciA9IChpbnB1dFZhbHVlPy5sZW5ndGggPz8gMCkgKyAxO1xuXG4gIGNvbnN0IGhhc0ljb25QcmVmaXggPSB0eXBlb2YgcHJlZml4ID09PSBcIm9iamVjdFwiO1xuXG4gIGNvbnN0IGNvbnRleHRWYWx1ZTogQmFzZVNlbGVjdENvbnRleHRTaGFwZTxPcHRpb25WYWx1ZT4gPSB7XG4gICAgY3VycmVudFZhbHVlOiBhY3RpdmVWYWx1ZXMsXG4gICAgc2hvd09wdGlvbkxpc3Q6IG9wZW4gPz8gaXNTZWxlY3RPcGVuLFxuICAgIHNldFZhbHVlOiBjaGFuZ2VIYW5kbGUsXG4gICAgY2xvc2VPcHRpb25MaXN0LFxuICAgIGRyb3Bkb3duTWluV2lkdGgsXG4gICAgZHJvcGRvd25NYXhIZWlnaHQsXG4gICAgZHJvcGRvd25Qcm9tcHQsXG4gICAgbG9hZGluZyxcbiAgICBkcm9wZG93bkNsYXNzTmFtZSxcbiAgICBkcm9wZG93blJlbmRlcixcbiAgICBkcm9wZG93bk1hdGNoU2VsZWN0V2lkdGgsXG4gICAgcmVmZXJlbmNlT2Zmc2V0V2lkdGgsXG4gICAgZmxvYXRpbmdTdHlsZXMsXG4gICAgc2V0RmxvYXRpbmc6IHJlZnMuc2V0RmxvYXRpbmcsXG4gICAgZmxvYXRpbmdSZWY6IHJlZnMuZmxvYXRpbmcsXG4gICAgZ2V0UG9wdXBDb250YWluZXIsXG4gICAgdmlydHVhbCxcbiAgICBjdXJyZW50U2VsZWN0aW5nSW5kZXgsXG4gICAgZW1wdHlDb250ZW50LFxuICAgIG5vdEZvdW5kQ29udGVudCxcbiAgICBzZWFyY2hWYWx1ZTogc2VhcmNoVmFsdWUgPz8gc2VhcmNoSW5wdXRWYWx1ZSxcbiAgICBzaG93U2VhcmNoLFxuICAgIG1vZGUsXG4gICAgcmVtb3ZlVmFsdWUsXG4gICAgaXNJdGVtSGlkZGVuLFxuICAgIGdldEN1cnJlbnRTZWxlY3RpbmdWYWx1ZSxcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxiYXNlU2VsZWN0Q29udGV4dC5Qcm92aWRlciB2YWx1ZT17Y29udGV4dFZhbHVlfT5cbiAgICAgIDxzcGFuXG4gICAgICAgIGNzcz17W3NlbGVjdERlZmF1bHRTdHlsZS53cmFwcGVyKHRoZW1lKSwgc3R5bGVzPy53cmFwcGVyPy4odGhlbWUpXX1cbiAgICAgICAgdGFiSW5kZXg9ezF9XG4gICAgICAgIG9uS2V5RG93bj17a2V5RG93bkhhbmRsZXJ9XG4gICAgICAgIG9uTW91c2VPdmVyPXttb3VzZU92ZXJIYW5kbGV9XG4gICAgICAgIG9uTW91c2VPdXQ9e21vdXNlT3V0SGFuZGxlfVxuICAgICAgICBvbkZvY3VzPXtmb2N1c0hhbmRsZX1cbiAgICAgICAgb25CbHVyPXtibHVySGFuZGxlfVxuICAgICAgICBhdXRvRm9jdXM9e2F1dG9Gb2N1c31cbiAgICAgICAgcmVmPXtjb250cm9sUmVmfVxuICAgICAgPlxuICAgICAgICA8c3BhblxuICAgICAgICAgIGNzcz17W3NlbGVjdERlZmF1bHRTdHlsZS5ib2R5KHRoZW1lKSwgc3R5bGVzPy5ib2R5Py4odGhlbWUpXX1cbiAgICAgICAgICBvbkNsaWNrPXshd2l0aERyYXdlciA/IGNsaWNrSGFuZGxlIDogdW5kZWZpbmVkfVxuICAgICAgICAgIHJlZj17cmVmcy5zZXRSZWZlcmVuY2V9XG4gICAgICAgID5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgY3NzPXtbc2VsZWN0RGVmYXVsdFN0eWxlLnByZWZpeEFuZENvbnRlbnQodGhlbWUpLCBzdHlsZXM/LnByZWZpeEFuZENvbnRlbnQ/Lih0aGVtZSldfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtwcmVmaXggJiYgKFxuICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgIGNzcz17W3NlbGVjdERlZmF1bHRTdHlsZS5wcmVmaXgoaGFzSWNvblByZWZpeCkodGhlbWUpLCBzdHlsZXM/LnByZWZpeD8uKHRoZW1lKV19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7cHJlZml4fVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICApfVxuXG4gICAgICAgICAgICB7c2hvd1NlYXJjaCA/IChcbiAgICAgICAgICAgICAgPHNwYW4gcmVmPXtjb250YWluZXJSZWZ9IGNzcz17c2VsZWN0RGVmYXVsdFN0eWxlLmNvbnRlbnQodGhlbWUpfT5cbiAgICAgICAgICAgICAgICB7bW9kZSA9PT0gXCJtdWx0aXBsZVwiICYmIHJlbmRlckxhYmVsKGZpbHRlcmVkQWN0aXZlVmFsdWVzLCBjdXJyZW50TGFiZWwpfVxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgY3NzPXtzZWxlY3REZWZhdWx0U3R5bGUuc2VhcmNoSW5wdXQodGhlbWUpfVxuICAgICAgICAgICAgICAgICAgdmFsdWU9e2lucHV0VmFsdWUgPz8gXCJcIn1cbiAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtzZWFyY2hIYW5kbGV9XG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17c2VhcmNoSW5wdXRQbGFjZWhvbGRlcj8udG9TdHJpbmcoKX1cbiAgICAgICAgICAgICAgICAgIHJlZj17aW5wdXRSZWZ9XG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICBzdHlsZT17Z2V0U2VsZWN0U2VhcmNoSW5wdXRXaWR0aFN0eWxlKFxuICAgICAgICAgICAgICAgICAgICBtb2RlID09PSBcIm11bHRpcGxlXCIsXG4gICAgICAgICAgICAgICAgICAgIGlzRW1wdHksXG4gICAgICAgICAgICAgICAgICAgIGxldHRlcnNOdW1iZXJcbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICBkYXRhLWVsZW1lbnQ9XCJzZWFyY2gtaW5wdXRcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgcmVmPXtjb250YWluZXJSZWZ9XG4gICAgICAgICAgICAgICAgY3NzPXtbc2VsZWN0RGVmYXVsdFN0eWxlLmNvbnRlbnQodGhlbWUpLCBzdHlsZXM/LmNvbnRlbnQ/Lih0aGVtZSldfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3JlbmRlckxhYmVsKGZpbHRlcmVkQWN0aXZlVmFsdWVzLCBjdXJyZW50TGFiZWwpID8/IHJlbmRlclBsYWNlaG9sZGVyKCl9XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAge3dpdGhDbGVhckJ1dHRvbiAmJiAoXG4gICAgICAgICAgICA8Q2xvc2VDaXJjbGVGaWxsZWRcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiY2xlYW4tYnV0dG9uXCJcbiAgICAgICAgICAgICAgb25DbGljaz17Y2xlYXJTZWxlY3R9XG4gICAgICAgICAgICAgIGNzcz17W3NlbGVjdERlZmF1bHRTdHlsZS5jbGVhbkljb24odGhlbWUpLCBzdHlsZXM/LmNsZWFuSWNvbj8uKHRoZW1lKV19XG4gICAgICAgICAgICAgIGRhdGEtZWxlbWVudD1cImNsZWFuLWJ1dHRvblwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG4gICAgICAgICAgPHNwYW4gY3NzPXtbc2VsZWN0RGVmYXVsdFN0eWxlLnN1ZmZpeEljb24odGhlbWUpLCBzdHlsZXM/LnN1ZmZpeEljb24/Lih0aGVtZSldfT5cbiAgICAgICAgICAgIHtyZW5kZXJTdWZmaXgoKX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvc3Bhbj5cblxuICAgICAgICA8U2VsZWN0T3B0aW9uTGlzdDxPcHRpb24sIE9wdGlvblZhbHVlPlxuICAgICAgICAgIG9wdGlvbnM9e2ZpbHRlcmVkQW5kU29ydGVkT3B0aW9uc31cbiAgICAgICAgICByZW5kZXJEcm9wZG93bkl0ZW09e3JlbmRlckRyb3Bkb3duSXRlbX1cbiAgICAgICAgICBvcHRpb25SZW5kZXI9e29wdGlvblJlbmRlcn1cbiAgICAgICAgICB2aXJ0dWFsaXplckVzdGltYXRlU2l6ZT17dmlydHVhbGl6ZXJFc3RpbWF0ZVNpemV9XG4gICAgICAgICAgc3R5bGVzPXtzdHlsZXM/LmRyb3Bkb3duU3R5bGV9XG4gICAgICAgIC8+XG4gICAgICA8L3NwYW4+XG4gICAgPC9iYXNlU2VsZWN0Q29udGV4dC5Qcm92aWRlcj5cbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBCYXNlU2VsZWN0ID0gbWVtbyhCYXNlU2VsZWN0Q29tcG9uZW50KSBhcyB0eXBlb2YgQmFzZVNlbGVjdENvbXBvbmVudDtcbiJdfQ== */"], children: [
345
+ prefix && /* @__PURE__ */ jsx("span", { css: [selectDefaultStyle.prefix(hasIconPrefix)(theme), (_f = styles == null ? void 0 : styles.prefix) == null ? void 0 : _f.call(styles, theme), process.env.NODE_ENV === "production" ? "" : ";label:BaseSelectComponent;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvZnJvbnRlbmQvbGlicy91aS1raXQvc3JjL2NvbXBvbmVudHMvQmFzZVNlbGVjdC9CYXNlU2VsZWN0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtZWdCIiwiZmlsZSI6Ii9idWlsZHMvZnJvbnRlbmQvbGlicy91aS1raXQvc3JjL2NvbXBvbmVudHMvQmFzZVNlbGVjdC9CYXNlU2VsZWN0LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIHR5cGUgRm9jdXNFdmVudCxcbiAgdHlwZSBLZXlib2FyZEV2ZW50LFxuICBtZW1vLFxuICB0eXBlIE1vdXNlRXZlbnQsXG4gIHR5cGUgUHJvcHNXaXRoQ2hpbGRyZW4sXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZixcbiAgdXNlU3RhdGUsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgZ2V0U2VsZWN0RGVmYXVsdFN0eWxlLCBnZXRTZWxlY3RTZWFyY2hJbnB1dFdpZHRoU3R5bGUgfSBmcm9tIFwiLi9CYXNlU2VsZWN0LnN0eWxlc1wiO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tIFwiaG9va3MvdXNlVGhlbWVcIjtcbmltcG9ydCB7IEJhcnNPdXRsaW5lZCwgQ2xvc2VDaXJjbGVGaWxsZWQsIERvd25PdXRsaW5lZCwgU2VhcmNoT3V0bGluZWQgfSBmcm9tIFwiQGluZm9tYXhpbXVtL2ljb25zXCI7XG5pbXBvcnQgeyBpc0Z1bmN0aW9uLCBpc051bGwsIGlzTnVtYmVyLCBpc1VuZGVmaW5lZCB9IGZyb20gXCJsb2Rhc2gtZXNcIjtcbmltcG9ydCB7IGF1dG9VcGRhdGUsIGZsaXAsIG9mZnNldCwgdXNlRmxvYXRpbmcgfSBmcm9tIFwiQGZsb2F0aW5nLXVpL3JlYWN0XCI7XG5pbXBvcnQgeyBjb252ZXJ0U2VsZWN0UGxhY2VtZW50LCBnZXRMYWJlbCwgZ2V0VmlzaWJsZUxhYmVscyB9IGZyb20gXCIuL0Jhc2VTZWxlY3QudXRpbHNcIjtcbmltcG9ydCB7IHVzZVNlYXJjaCB9IGZyb20gXCIuL2hvb2tzL3VzZVNlYXJjaFwiO1xuaW1wb3J0IHsgdXNlQ3VycmVudFZhbHVlIH0gZnJvbSBcIi4vaG9va3MvdXNlQ3VycmVudFZhbHVlXCI7XG5pbXBvcnQgeyBTZWxlY3RUYWcgfSBmcm9tIFwiLi9jb21wb25lbnRzL1NlbGVjdFRhZy9TZWxlY3RUYWdcIjtcbmltcG9ydCB7IHVzZUhpZGVFbGVtZW50cyB9IGZyb20gXCIuL2hvb2tzL3VzZUhpZGVFbGVtZW50c1wiO1xuaW1wb3J0IHtcbiAgVGFnUGxhY2Vob2xkZXIsXG4gIHRhZ1BsYWNlaG9sZGVyRGF0YUVsZW1lbnQsXG59IGZyb20gXCIuL2NvbXBvbmVudHMvVGFnUGxhY2Vob2xkZXIvVGFnUGxhY2Vob2xkZXJcIjtcbmltcG9ydCB0eXBlIHsgQmFzZVNlbGVjdE9wdGlvbkludGVyZmFjZSwgQmFzZVNlbGVjdFByb3BzIH0gZnJvbSBcIi4vQmFzZVNlbGVjdC50eXBlc1wiO1xuaW1wb3J0IHsgU2VsZWN0T3B0aW9uTGlzdCB9IGZyb20gXCIuL2NvbXBvbmVudHMvU2VsZWN0T3B0aW9uTGlzdC9TZWxlY3RPcHRpb25MaXN0XCI7XG5pbXBvcnQgeyBjcmVhdGVCYXNlU2VsZWN0Q29udGV4dCwgdHlwZSBCYXNlU2VsZWN0Q29udGV4dFNoYXBlIH0gZnJvbSBcIi4vY29udGV4dHMvQmFzZVNlbGVjdENvbnRleHRcIjtcblxuY29uc3QgQmFzZVNlbGVjdENvbXBvbmVudCA9IDxPcHRpb24gZXh0ZW5kcyBCYXNlU2VsZWN0T3B0aW9uSW50ZXJmYWNlPE9wdGlvblZhbHVlPiwgT3B0aW9uVmFsdWU+KHtcbiAgb3B0aW9ucyA9IFtdLFxuICBtb2RlID0gXCJzaW5nbGVcIixcbiAgdmFyaWFudCA9IFwib3V0bGluZWRcIixcbiAgZGVmYXVsdFZhbHVlLFxuICBkZWZhdWx0T3BlbiA9IGZhbHNlLFxuICBkZWZhdWx0QWN0aXZlRmlyc3RPcHRpb24sXG4gIHZhbHVlLFxuICBvcGVuLFxuICBwbGFjZWhvbGRlcixcbiAgZHJvcGRvd25NaW5XaWR0aCA9IDEyMCxcbiAgZHJvcGRvd25NYXhIZWlnaHQgPSA0MTQsXG4gIGFsbG93Q2xlYXIgPSBmYWxzZSxcbiAgYXV0b0ZvY3VzLFxuICBwcmVmaXgsXG4gIHN1ZmZpeEljb24gPSA8RG93bk91dGxpbmVkIC8+LFxuICBzdGF0dXMgPSBcImRlZmF1bHRcIixcbiAgZGlzYWJsZWQgPSBmYWxzZSxcbiAgZHJvcGRvd25Qcm9tcHQsXG4gIGxvYWRpbmcgPSBmYWxzZSxcbiAgZHJvcGRvd25DbGFzc05hbWUsXG4gIHN0eWxlcyxcbiAgZHJvcGRvd25NYXRjaFNlbGVjdFdpZHRoID0gdHJ1ZSxcbiAgcGxhY2VtZW50ID0gXCJib3R0b21MZWZ0XCIsXG4gIHZpcnR1YWwgPSB0cnVlLFxuICBlbXB0eUNvbnRlbnQgPSBcIlwiLFxuICBzaG93U2VhcmNoID0gbW9kZSA9PT0gXCJzaW5nbGVcIiA/IGZhbHNlIDogdHJ1ZSxcbiAgc2VhcmNoVmFsdWUsXG4gIG5vdEZvdW5kQ29udGVudCA9IFwiTm90IGZvdW5kXCIsXG4gIG9wdGlvbkxhYmVsUHJvcCA9IFwidGl0bGVcIixcbiAgZHJhd2VyID0gZmFsc2UsXG4gIGF1dG9DbGVhclNlYXJjaFZhbHVlID0gdHJ1ZSxcbiAgbWF4VGFnQ291bnQsXG4gIG1heFRhZ1RleHRMZW5ndGgsXG4gIG1heFRhZ1BsYWNlaG9sZGVyLFxuICBjdXJyZW50U2VsZWN0aW5nSW5kZXgsXG4gIGdldEN1cnJlbnRTZWxlY3RpbmdWYWx1ZSxcbiAgb25LZXlDb250cm9sLFxuICBnZXRPcHRpb25CeVZhbHVlLFxuICB2aXJ0dWFsaXplckVzdGltYXRlU2l6ZSxcbiAgZmlsdGVyT3B0aW9ucyxcbiAgZmlsdGVyU29ydCxcbiAgdmFsdWVzRmlsdGVyLFxuICBkcm9wZG93blJlbmRlcixcbiAgb3B0aW9uUmVuZGVyLFxuICBsYWJlbFJlbmRlcixcbiAgb25CbHVyLFxuICBvbkNoYW5nZSxcbiAgb25DbGVhcixcbiAgb25Ecm9wZG93blZpc2libGVDaGFuZ2UsXG4gIG9uRm9jdXMsXG4gIG9uSW5wdXRLZXlEb3duLFxuICBvblNlbGVjdCxcbiAgZ2V0UG9wdXBDb250YWluZXIgPSAoKSA9PiBkb2N1bWVudC5ib2R5LFxuICBvblNlYXJjaCxcbiAgdGFnUmVuZGVyLFxuICBvbkRlc2VsZWN0LFxuICByZW5kZXJEcm9wZG93bkl0ZW0sXG4gIG9uVGFnQ2xvc2UsXG59OiBQcm9wc1dpdGhDaGlsZHJlbjxCYXNlU2VsZWN0UHJvcHM8T3B0aW9uLCBPcHRpb25WYWx1ZT4+KSA9PiB7XG4gIGNvbnN0IHRoZW1lID0gdXNlVGhlbWUoKTtcbiAgY29uc3QgYmFzZVNlbGVjdENvbnRleHQgPSBjcmVhdGVCYXNlU2VsZWN0Q29udGV4dDxPcHRpb25WYWx1ZT4oKTtcblxuICBjb25zdCB7IGZpbHRlcmVkQW5kU29ydGVkT3B0aW9ucywgc2VhcmNoSW5wdXRWYWx1ZSwgc2VhcmNoSGFuZGxlLCBjbGVhclNlYXJjaFZhbHVlIH0gPSB1c2VTZWFyY2g8XG4gICAgT3B0aW9uLFxuICAgIE9wdGlvblZhbHVlXG4gID4oe1xuICAgIG9wdGlvbnMsXG4gICAgc2VhcmNoVmFsdWUsXG4gICAgb25TZWFyY2gsXG4gICAgZmlsdGVyU29ydCxcbiAgICBmaWx0ZXJPcHRpb25zLFxuICB9KTtcblxuICBjb25zdCB7IGN1cnJlbnRWYWx1ZSwgY2hhbmdlQ3VycmVudFZhbHVlLCByZW1vdmVWYWx1ZSwgY2xlYXJDdXJyZW50VmFsdWUgfSA9IHVzZUN1cnJlbnRWYWx1ZShcbiAgICBtb2RlLFxuICAgIGRlZmF1bHRWYWx1ZSxcbiAgICBkZWZhdWx0QWN0aXZlRmlyc3RPcHRpb24sXG4gICAgb3B0aW9ucyxcbiAgICBvbkRlc2VsZWN0XG4gICk7XG5cbiAgY29uc3QgW2lzU2VsZWN0T3Blbiwgc2V0SXNTZWxlY3RPcGVuXSA9IHVzZVN0YXRlKGRlZmF1bHRPcGVuKTtcbiAgY29uc3QgW2lzSG92ZXIsIHNldElzSG92ZXJdID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gIGNvbnN0IGlzSW5pdGlhbE1vdW50ID0gdXNlUmVmKHRydWUpO1xuICBjb25zdCBjb250cm9sUmVmID0gdXNlUmVmPEhUTUxTcGFuRWxlbWVudCB8IG51bGw+KG51bGwpO1xuICBjb25zdCBpbnB1dFJlZiA9IHVzZVJlZjxIVE1MSW5wdXRFbGVtZW50IHwgbnVsbD4obnVsbCk7XG5cbiAgY29uc3QgcmVmZXJlbmNlT2Zmc2V0V2lkdGggPSBjb250cm9sUmVmLmN1cnJlbnQ/Lm9mZnNldFdpZHRoO1xuXG4gIGNvbnN0IHsgcmVmcywgZmxvYXRpbmdTdHlsZXMgfSA9IHVzZUZsb2F0aW5nPEhUTUxTcGFuRWxlbWVudD4oe1xuICAgIHdoaWxlRWxlbWVudHNNb3VudGVkOiBhdXRvVXBkYXRlLFxuICAgIHBsYWNlbWVudDogY29udmVydFNlbGVjdFBsYWNlbWVudChwbGFjZW1lbnQpLFxuICAgIG1pZGRsZXdhcmU6IFtvZmZzZXQoNCksIGZsaXAoKV0sXG4gIH0pO1xuXG4gIGNvbnN0IHJldHVybkZvY3VzVG9XcmFwcGVyID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29udHJvbFJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgIH0pO1xuICB9LCBbXSk7XG5cbiAgY29uc3QgcmV0dXJuRm9jdXNUb0lucHV0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaW5wdXRSZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICB9KTtcbiAgfSwgW10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFpc0luaXRpYWxNb3VudC5jdXJyZW50KSB7XG4gICAgICBjb25zdCBvcHRpb25zID0gY3VycmVudFZhbHVlLnJlZHVjZSgoYWNjOiBPcHRpb25bXSwgdmFsdWUpID0+IHtcbiAgICAgICAgY29uc3Qgb3B0aW9uID0gZ2V0T3B0aW9uQnlWYWx1ZSh2YWx1ZSk7XG5cbiAgICAgICAgaWYgKGlzVW5kZWZpbmVkKG9wdGlvbikpIHtcbiAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFsuLi5hY2MsIG9wdGlvbl07XG4gICAgICB9LCBbXSk7XG5cbiAgICAgIG9uQ2hhbmdlPy4oY3VycmVudFZhbHVlLCBvcHRpb25zKTtcbiAgICB9XG4gIH0sIFtjdXJyZW50VmFsdWUsIGdldE9wdGlvbkJ5VmFsdWUsIG9uQ2hhbmdlXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaXNJbml0aWFsTW91bnQuY3VycmVudCkge1xuICAgICAgaXNJbml0aWFsTW91bnQuY3VycmVudCA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICBvbkRyb3Bkb3duVmlzaWJsZUNoYW5nZT8uKCk7XG4gICAgfVxuICB9LCBbaXNTZWxlY3RPcGVuLCBvbkRyb3Bkb3duVmlzaWJsZUNoYW5nZV0pO1xuXG4gIGNvbnN0IGFjdGl2ZVZhbHVlcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogaXNVbmRlZmluZWQodmFsdWUpID8gY3VycmVudFZhbHVlIDogW3ZhbHVlXTtcbiAgfSwgW2N1cnJlbnRWYWx1ZSwgdmFsdWVdKTtcblxuICBjb25zdCBzZWxlY3REZWZhdWx0U3R5bGUgPSBnZXRTZWxlY3REZWZhdWx0U3R5bGUoe1xuICAgIHN0YXR1cyxcbiAgICBkaXNhYmxlZCxcbiAgICB2YXJpYW50LFxuICAgIG11bHRpcGxlOiBtb2RlID09PSBcIm11bHRpcGxlXCIsXG4gICAgaXNIb3ZlcixcbiAgICBtYXhUYWdDb3VudCxcbiAgICB3aXRoUHJlZml4OiAhIXByZWZpeCxcbiAgICBpc0VtcHR5OiBhY3RpdmVWYWx1ZXMubGVuZ3RoID09PSAwLFxuICB9KTtcblxuICBjb25zdCBmaWx0ZXJlZEFjdGl2ZVZhbHVlcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiBpc0Z1bmN0aW9uKHZhbHVlc0ZpbHRlcikgPyB2YWx1ZXNGaWx0ZXIoYWN0aXZlVmFsdWVzKSA6IGFjdGl2ZVZhbHVlcztcbiAgfSwgW2FjdGl2ZVZhbHVlcywgdmFsdWVzRmlsdGVyXSk7XG5cbiAgY29uc3QgeyBjb250YWluZXJSZWYsIGlzSXRlbUhpZGRlbiB9ID0gdXNlSGlkZUVsZW1lbnRzKFxuICAgIGZpbHRlcmVkQWN0aXZlVmFsdWVzLFxuICAgIHRoZW1lLnNwYWNlWFMsXG4gICAgaW5wdXRSZWYsXG4gICAgbWF4VGFnQ291bnRcbiAgKTtcblxuICBjb25zdCBjdXJyZW50TGFiZWwgPSBnZXRMYWJlbDxPcHRpb24sIE9wdGlvblZhbHVlPihcbiAgICBmaWx0ZXJlZEFjdGl2ZVZhbHVlcyxcbiAgICBnZXRPcHRpb25CeVZhbHVlLFxuICAgIG9wdGlvbkxhYmVsUHJvcFxuICApO1xuXG4gIGNvbnN0IHdpdGhEcmF3ZXIgPSBtb2RlID09PSBcIm11bHRpcGxlXCIgJiYgZHJhd2VyO1xuICBjb25zdCB3aXRoQXV0b0NsZWFyID0gbW9kZSA9PT0gXCJzaW5nbGVcIiB8fCBhdXRvQ2xlYXJTZWFyY2hWYWx1ZTtcblxuICBjb25zdCBjbGlja0hhbmRsZSA9ICgpID0+IHtcbiAgICBpZiAoZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzZXRJc1NlbGVjdE9wZW4oKHByZXYpID0+ICFwcmV2KTtcbiAgfTtcblxuICBjb25zdCBjaGFuZ2VIYW5kbGUgPSB1c2VDYWxsYmFjayhcbiAgICAodmFsdWU6IE9wdGlvblZhbHVlIHwgT3B0aW9uVmFsdWVbXSkgPT4ge1xuICAgICAgY2hhbmdlQ3VycmVudFZhbHVlKHZhbHVlKTtcblxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgb3B0aW9uID0gZ2V0T3B0aW9uQnlWYWx1ZSh2YWx1ZSk7XG5cbiAgICAgIGlmICh3aXRoQXV0b0NsZWFyKSB7XG4gICAgICAgIGNsZWFyU2VhcmNoVmFsdWUoKTtcbiAgICAgIH1cblxuICAgICAgaWYgKG9wdGlvbikge1xuICAgICAgICBvblNlbGVjdD8uKHZhbHVlLCBvcHRpb24pO1xuICAgICAgfVxuICAgIH0sXG4gICAgW2NoYW5nZUN1cnJlbnRWYWx1ZSwgY2xlYXJTZWFyY2hWYWx1ZSwgZ2V0T3B0aW9uQnlWYWx1ZSwgb25TZWxlY3QsIHdpdGhBdXRvQ2xlYXJdXG4gICk7XG5cbiAgY29uc3QgY2xvc2VPcHRpb25MaXN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldElzU2VsZWN0T3BlbihmYWxzZSk7XG4gIH0sIFtdKTtcblxuICBjb25zdCBibHVySGFuZGxlID0gKGU6IEZvY3VzRXZlbnQpID0+IHtcbiAgICBjb25zdCBpc0ZvY3VzT25PcHRpb25MaXN0ID0gcmVmcy5mbG9hdGluZy5jdXJyZW50Py5jb250YWlucyhlLnJlbGF0ZWRUYXJnZXQpO1xuICAgIGNvbnN0IGlzRm9jdXNPblNlYXJjaElucHV0ID0gIWlzTnVsbChpbnB1dFJlZi5jdXJyZW50KSAmJiBlLnJlbGF0ZWRUYXJnZXQgPT09IGlucHV0UmVmLmN1cnJlbnQ7XG4gICAgY29uc3QgaXNGb2N1c09uQ29udHJvbCA9IGUucmVsYXRlZFRhcmdldCA9PT0gY29udHJvbFJlZi5jdXJyZW50O1xuXG4gICAgaWYgKGlzRm9jdXNPbk9wdGlvbkxpc3QgfHwgaXNGb2N1c09uU2VhcmNoSW5wdXQgfHwgaXNGb2N1c09uQ29udHJvbCkge1xuICAgICAgaWYgKHNob3dTZWFyY2gpIHtcbiAgICAgICAgcmV0dXJuRm9jdXNUb0lucHV0KCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm5Gb2N1c1RvV3JhcHBlcigpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgb25CbHVyPy4oZSk7XG4gICAgY2xlYXJTZWFyY2hWYWx1ZSgpO1xuICAgIGNsb3NlT3B0aW9uTGlzdCgpO1xuICB9O1xuXG4gIGNvbnN0IGNsZWFyU2VsZWN0ID0gdXNlQ2FsbGJhY2soXG4gICAgKGU6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgIGNsZWFyQ3VycmVudFZhbHVlKCk7XG4gICAgICBvbkNsZWFyPy4oKTtcbiAgICB9LFxuICAgIFtjbGVhckN1cnJlbnRWYWx1ZSwgb25DbGVhcl1cbiAgKTtcblxuICBjb25zdCBrZXlEb3duSGFuZGxlciA9IChlOiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgaWYgKGUua2V5ID09PSBcIkVudGVyXCIpIHtcbiAgICAgIGlmIChpc1NlbGVjdE9wZW4pIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBnZXRDdXJyZW50U2VsZWN0aW5nVmFsdWUoKTtcblxuICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGN1cnJlbnRWYWx1ZS5pbmNsdWRlcyh2YWx1ZSkpIHtcbiAgICAgICAgICByZW1vdmVWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY2hhbmdlQ3VycmVudFZhbHVlKHZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh3aXRoQXV0b0NsZWFyKSB7XG4gICAgICAgICAgY2xlYXJTZWFyY2hWYWx1ZSgpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNsaWNrSGFuZGxlKCk7XG4gICAgfVxuXG4gICAgc2V0SXNTZWxlY3RPcGVuKHRydWUpO1xuXG4gICAgb25LZXlDb250cm9sKGUpO1xuICAgIG9uSW5wdXRLZXlEb3duPy4oZSk7XG4gIH07XG5cbiAgY29uc3QgbW91c2VPdmVySGFuZGxlID0gKCkgPT4ge1xuICAgIHNldElzSG92ZXIodHJ1ZSk7XG4gIH07XG5cbiAgY29uc3QgbW91c2VPdXRIYW5kbGUgPSAoKSA9PiB7XG4gICAgc2V0SXNIb3ZlcihmYWxzZSk7XG4gIH07XG5cbiAgY29uc3QgZm9jdXNIYW5kbGUgPSAoZTogRm9jdXNFdmVudCkgPT4ge1xuICAgIG9uRm9jdXM/LihlKTtcblxuICAgIGlmICghc2hvd1NlYXJjaCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHJldHVybkZvY3VzVG9JbnB1dCgpO1xuICB9O1xuXG4gIGNvbnN0IHJlbmRlclRhZ1BsYWNlaG9sZGVyID0gKGhpZGRlbkVsZW1lbnRzQ291bnRlcjogbnVtYmVyKSA9PiB7XG4gICAgaWYgKGlzVW5kZWZpbmVkKG1heFRhZ1BsYWNlaG9sZGVyKSkge1xuICAgICAgcmV0dXJuIDxUYWdQbGFjZWhvbGRlciBoaWRkZW5FbGVtZW50c0NvdW50ZXI9e2hpZGRlbkVsZW1lbnRzQ291bnRlcn0gLz47XG4gICAgfVxuXG4gICAgaWYgKCFpc0Z1bmN0aW9uKG1heFRhZ1BsYWNlaG9sZGVyKSkge1xuICAgICAgcmV0dXJuIDxzcGFuIGRhdGEtZWxlbWVudD17dGFnUGxhY2Vob2xkZXJEYXRhRWxlbWVudH0+e21heFRhZ1BsYWNlaG9sZGVyfTwvc3Bhbj47XG4gICAgfVxuXG4gICAgY29uc3QgaGlkZGVuRWxlbWVudHMgPSBjdXJyZW50VmFsdWUucmVkdWNlKChhY2M6IE9wdGlvbltdLCB2YWx1ZSkgPT4ge1xuICAgICAgY29uc3QgaXNIaWRkZW4gPSBpc0l0ZW1IaWRkZW4uZ2V0KHZhbHVlKTtcbiAgICAgIGNvbnN0IG9wdGlvbiA9IGdldE9wdGlvbkJ5VmFsdWUodmFsdWUpO1xuXG4gICAgICBpZiAoIWlzSGlkZGVuIHx8IGlzVW5kZWZpbmVkKG9wdGlvbikpIHtcbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH1cblxuICAgICAgYWNjLnB1c2gob3B0aW9uKTtcblxuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCBbXSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPHNwYW4gZGF0YS1lbGVtZW50PXt0YWdQbGFjZWhvbGRlckRhdGFFbGVtZW50fT57bWF4VGFnUGxhY2Vob2xkZXIoaGlkZGVuRWxlbWVudHMpfTwvc3Bhbj5cbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IHJlbmRlckxhYmVsID0gKHZhbHVlczogT3B0aW9uVmFsdWVbXSwgY3VycmVudExhYmVsOiBzdHJpbmdbXSkgPT4ge1xuICAgIGNvbnN0IHZpc2libGVMYWJlbHMgPSBnZXRWaXNpYmxlTGFiZWxzKGN1cnJlbnRMYWJlbCwgbWF4VGFnQ291bnQpO1xuXG4gICAgY29uc3QgbGFiZWwgPSB2aXNpYmxlTGFiZWxzLm1hcCgobGFiZWwsIGluZGV4KSA9PiB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHZhbHVlc1tpbmRleF0gYXMgT3B0aW9uVmFsdWU7XG5cbiAgICAgIGlmIChpc0Z1bmN0aW9uKGxhYmVsUmVuZGVyKSkge1xuICAgICAgICByZXR1cm4gbGFiZWxSZW5kZXIoeyBsYWJlbCwgdmFsdWUgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChtb2RlID09PSBcInNpbmdsZVwiKSB7XG4gICAgICAgIHJldHVybiBsYWJlbDtcbiAgICAgIH1cblxuICAgICAgaWYgKGlzRnVuY3Rpb24odGFnUmVuZGVyKSkge1xuICAgICAgICByZXR1cm4gdGFnUmVuZGVyKGxhYmVsKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgaXNIaWRkZW4gPSAhIWlzSXRlbUhpZGRlbi5nZXQodmFsdWUpO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U2VsZWN0VGFnPE9wdGlvblZhbHVlPlxuICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICBsYWJlbD17bGFiZWx9XG4gICAgICAgICAgcmVtb3ZlVmFsdWU9e3JlbW92ZVZhbHVlfVxuICAgICAgICAgIG1heFRhZ1RleHRMZW5ndGg9e21heFRhZ1RleHRMZW5ndGh9XG4gICAgICAgICAgaXNCb3JkZXJsZXNzPXt2YXJpYW50ID09PSBcImJvcmRlcmxlc3NcIn1cbiAgICAgICAgICBpc0Vycm9yPXtzdGF0dXMgPT09IFwiZXJyb3JcIn1cbiAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgaXNIaWRkZW49e2lzSGlkZGVufVxuICAgICAgICAgIG9uVGFnQ2xvc2U9e29uVGFnQ2xvc2V9XG4gICAgICAgICAga2V5PXt2YWx1ZT8udG9TdHJpbmcoKX1cbiAgICAgICAgLz5cbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBoaWRkZW5FbGVtZW50c0NvdW50ZXIgPSBpc051bWJlcihtYXhUYWdDb3VudClcbiAgICAgID8gaXNJdGVtSGlkZGVuLnNpemUgLSBtYXhUYWdDb3VudFxuICAgICAgOiBBcnJheS5mcm9tKGlzSXRlbUhpZGRlbi52YWx1ZXMoKSkucmVkdWNlKChhY2MsIGlzSGlkZGVuKSA9PiAoaXNIaWRkZW4gPyBhY2MgKyAxIDogYWNjKSwgMCk7XG5cbiAgICBjb25zdCB3aXRoVGFnUGxhY2Vob2xkZXIgPVxuICAgICAgIWlzVW5kZWZpbmVkKG1heFRhZ0NvdW50KSAmJiBtb2RlID09PSBcIm11bHRpcGxlXCIgJiYgaGlkZGVuRWxlbWVudHNDb3VudGVyID4gMDtcblxuICAgIGlmIChsYWJlbC5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7bGFiZWx9XG4gICAgICAgIHt3aXRoVGFnUGxhY2Vob2xkZXIgJiYgcmVuZGVyVGFnUGxhY2Vob2xkZXIoaGlkZGVuRWxlbWVudHNDb3VudGVyKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgY29uc3QgcmVuZGVyU3VmZml4ID0gKCkgPT4ge1xuICAgIGlmICh3aXRoRHJhd2VyKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8QmFyc091dGxpbmVkXG4gICAgICAgICAgb25DbGljaz17Y2xpY2tIYW5kbGV9XG4gICAgICAgICAgY3NzPXtbc2VsZWN0RGVmYXVsdFN0eWxlLmRyYXdlckljb24odGhlbWUpLCBzdHlsZXM/LmRyYXdlckljb24/Lih0aGVtZSldfVxuICAgICAgICAvPlxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoc2hvd1NlYXJjaCAmJiBpc1NlbGVjdE9wZW4pIHtcbiAgICAgIHJldHVybiA8U2VhcmNoT3V0bGluZWQgLz47XG4gICAgfVxuXG4gICAgcmV0dXJuIHN1ZmZpeEljb247XG4gIH07XG5cbiAgY29uc3QgcmVuZGVyUGxhY2Vob2xkZXIgPSAoKSA9PiAoXG4gICAgPHNwYW4gY3NzPXtbc2VsZWN0RGVmYXVsdFN0eWxlLnBsYWNlaG9sZGVyKHRoZW1lKSwgc3R5bGVzPy5wbGFjZWhvbGRlcj8uKHRoZW1lKV19PlxuICAgICAge3BsYWNlaG9sZGVyfVxuICAgIDwvc3Bhbj5cbiAgKTtcblxuICBjb25zdCB3aXRoQ2xlYXJCdXR0b24gPSBhbGxvd0NsZWFyICYmICEhZmlsdGVyZWRBY3RpdmVWYWx1ZXMubGVuZ3RoO1xuXG4gIGNvbnN0IGlucHV0VmFsdWUgPVxuICAgIG1vZGUgPT09IFwibXVsdGlwbGVcIiB8fCBpc1NlbGVjdE9wZW5cbiAgICAgID8gKHNlYXJjaFZhbHVlID8/IHNlYXJjaElucHV0VmFsdWUpXG4gICAgICA6IGN1cnJlbnRMYWJlbFswXT8udG9TdHJpbmcoKTtcblxuICBjb25zdCBpc0VtcHR5ID0gZmlsdGVyZWRBY3RpdmVWYWx1ZXMubGVuZ3RoID09PSAwO1xuICBjb25zdCBzaW5nbGVNb2RQbGFjZWhvbGRlciA9IGN1cnJlbnRMYWJlbFswXSA/PyBwbGFjZWhvbGRlciA/PyBcIlwiO1xuICBjb25zdCBtdWx0aXBsZU1vZFBsYWNlaG9sZGVyID0gaXNFbXB0eSA/IHBsYWNlaG9sZGVyIDogdW5kZWZpbmVkO1xuXG4gIGNvbnN0IHNlYXJjaElucHV0UGxhY2Vob2xkZXIgPSBtb2RlID09PSBcInNpbmdsZVwiID8gc2luZ2xlTW9kUGxhY2Vob2xkZXIgOiBtdWx0aXBsZU1vZFBsYWNlaG9sZGVyO1xuXG4gIGNvbnN0IGxldHRlcnNOdW1iZXIgPSAoaW5wdXRWYWx1ZT8ubGVuZ3RoID8/IDApICsgMTtcblxuICBjb25zdCBoYXNJY29uUHJlZml4ID0gdHlwZW9mIHByZWZpeCA9PT0gXCJvYmplY3RcIjtcblxuICBjb25zdCBjb250ZXh0VmFsdWU6IEJhc2VTZWxlY3RDb250ZXh0U2hhcGU8T3B0aW9uVmFsdWU+ID0ge1xuICAgIGN1cnJlbnRWYWx1ZTogYWN0aXZlVmFsdWVzLFxuICAgIHNob3dPcHRpb25MaXN0OiBvcGVuID8/IGlzU2VsZWN0T3BlbixcbiAgICBzZXRWYWx1ZTogY2hhbmdlSGFuZGxlLFxuICAgIGNsb3NlT3B0aW9uTGlzdCxcbiAgICBkcm9wZG93bk1pbldpZHRoLFxuICAgIGRyb3Bkb3duTWF4SGVpZ2h0LFxuICAgIGRyb3Bkb3duUHJvbXB0LFxuICAgIGxvYWRpbmcsXG4gICAgZHJvcGRvd25DbGFzc05hbWUsXG4gICAgZHJvcGRvd25SZW5kZXIsXG4gICAgZHJvcGRvd25NYXRjaFNlbGVjdFdpZHRoLFxuICAgIHJlZmVyZW5jZU9mZnNldFdpZHRoLFxuICAgIGZsb2F0aW5nU3R5bGVzLFxuICAgIHNldEZsb2F0aW5nOiByZWZzLnNldEZsb2F0aW5nLFxuICAgIGZsb2F0aW5nUmVmOiByZWZzLmZsb2F0aW5nLFxuICAgIGdldFBvcHVwQ29udGFpbmVyLFxuICAgIHZpcnR1YWwsXG4gICAgY3VycmVudFNlbGVjdGluZ0luZGV4LFxuICAgIGVtcHR5Q29udGVudCxcbiAgICBub3RGb3VuZENvbnRlbnQsXG4gICAgc2VhcmNoVmFsdWU6IHNlYXJjaFZhbHVlID8/IHNlYXJjaElucHV0VmFsdWUsXG4gICAgc2hvd1NlYXJjaCxcbiAgICBtb2RlLFxuICAgIHJlbW92ZVZhbHVlLFxuICAgIGlzSXRlbUhpZGRlbixcbiAgICBnZXRDdXJyZW50U2VsZWN0aW5nVmFsdWUsXG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8YmFzZVNlbGVjdENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e2NvbnRleHRWYWx1ZX0+XG4gICAgICA8c3BhblxuICAgICAgICBjc3M9e1tzZWxlY3REZWZhdWx0U3R5bGUud3JhcHBlcih0aGVtZSksIHN0eWxlcz8ud3JhcHBlcj8uKHRoZW1lKV19XG4gICAgICAgIHRhYkluZGV4PXsxfVxuICAgICAgICBvbktleURvd249e2tleURvd25IYW5kbGVyfVxuICAgICAgICBvbk1vdXNlT3Zlcj17bW91c2VPdmVySGFuZGxlfVxuICAgICAgICBvbk1vdXNlT3V0PXttb3VzZU91dEhhbmRsZX1cbiAgICAgICAgb25Gb2N1cz17Zm9jdXNIYW5kbGV9XG4gICAgICAgIG9uQmx1cj17Ymx1ckhhbmRsZX1cbiAgICAgICAgYXV0b0ZvY3VzPXthdXRvRm9jdXN9XG4gICAgICAgIHJlZj17Y29udHJvbFJlZn1cbiAgICAgID5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBjc3M9e1tzZWxlY3REZWZhdWx0U3R5bGUuYm9keSh0aGVtZSksIHN0eWxlcz8uYm9keT8uKHRoZW1lKV19XG4gICAgICAgICAgb25DbGljaz17IXdpdGhEcmF3ZXIgPyBjbGlja0hhbmRsZSA6IHVuZGVmaW5lZH1cbiAgICAgICAgICByZWY9e3JlZnMuc2V0UmVmZXJlbmNlfVxuICAgICAgICA+XG4gICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGNzcz17W3NlbGVjdERlZmF1bHRTdHlsZS5wcmVmaXhBbmRDb250ZW50KHRoZW1lKSwgc3R5bGVzPy5wcmVmaXhBbmRDb250ZW50Py4odGhlbWUpXX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7cHJlZml4ICYmIChcbiAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICBjc3M9e1tzZWxlY3REZWZhdWx0U3R5bGUucHJlZml4KGhhc0ljb25QcmVmaXgpKHRoZW1lKSwgc3R5bGVzPy5wcmVmaXg/Lih0aGVtZSldfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3ByZWZpeH1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAge3Nob3dTZWFyY2ggPyAoXG4gICAgICAgICAgICAgIDxzcGFuIHJlZj17Y29udGFpbmVyUmVmfSBjc3M9e3NlbGVjdERlZmF1bHRTdHlsZS5jb250ZW50KHRoZW1lKX0+XG4gICAgICAgICAgICAgICAge21vZGUgPT09IFwibXVsdGlwbGVcIiAmJiByZW5kZXJMYWJlbChmaWx0ZXJlZEFjdGl2ZVZhbHVlcywgY3VycmVudExhYmVsKX1cbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgIGNzcz17c2VsZWN0RGVmYXVsdFN0eWxlLnNlYXJjaElucHV0KHRoZW1lKX1cbiAgICAgICAgICAgICAgICAgIHZhbHVlPXtpbnB1dFZhbHVlID8/IFwiXCJ9XG4gICAgICAgICAgICAgICAgICBvbkNoYW5nZT17c2VhcmNoSGFuZGxlfVxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e3NlYXJjaElucHV0UGxhY2Vob2xkZXI/LnRvU3RyaW5nKCl9XG4gICAgICAgICAgICAgICAgICByZWY9e2lucHV0UmVmfVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgc3R5bGU9e2dldFNlbGVjdFNlYXJjaElucHV0V2lkdGhTdHlsZShcbiAgICAgICAgICAgICAgICAgICAgbW9kZSA9PT0gXCJtdWx0aXBsZVwiLFxuICAgICAgICAgICAgICAgICAgICBpc0VtcHR5LFxuICAgICAgICAgICAgICAgICAgICBsZXR0ZXJzTnVtYmVyXG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgZGF0YS1lbGVtZW50PVwic2VhcmNoLWlucHV0XCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxuICAgICAgICAgICAgICAgIGNzcz17W3NlbGVjdERlZmF1bHRTdHlsZS5jb250ZW50KHRoZW1lKSwgc3R5bGVzPy5jb250ZW50Py4odGhlbWUpXX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtyZW5kZXJMYWJlbChmaWx0ZXJlZEFjdGl2ZVZhbHVlcywgY3VycmVudExhYmVsKSA/PyByZW5kZXJQbGFjZWhvbGRlcigpfVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgIHt3aXRoQ2xlYXJCdXR0b24gJiYgKFxuICAgICAgICAgICAgPENsb3NlQ2lyY2xlRmlsbGVkXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cImNsZWFuLWJ1dHRvblwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e2NsZWFyU2VsZWN0fVxuICAgICAgICAgICAgICBjc3M9e1tzZWxlY3REZWZhdWx0U3R5bGUuY2xlYW5JY29uKHRoZW1lKSwgc3R5bGVzPy5jbGVhbkljb24/Lih0aGVtZSldfVxuICAgICAgICAgICAgICBkYXRhLWVsZW1lbnQ9XCJjbGVhbi1idXR0b25cIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxzcGFuIGNzcz17W3NlbGVjdERlZmF1bHRTdHlsZS5zdWZmaXhJY29uKHRoZW1lKSwgc3R5bGVzPy5zdWZmaXhJY29uPy4odGhlbWUpXX0+XG4gICAgICAgICAgICB7cmVuZGVyU3VmZml4KCl9XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgPFNlbGVjdE9wdGlvbkxpc3Q8T3B0aW9uLCBPcHRpb25WYWx1ZT5cbiAgICAgICAgICBvcHRpb25zPXtmaWx0ZXJlZEFuZFNvcnRlZE9wdGlvbnN9XG4gICAgICAgICAgcmVuZGVyRHJvcGRvd25JdGVtPXtyZW5kZXJEcm9wZG93bkl0ZW19XG4gICAgICAgICAgb3B0aW9uUmVuZGVyPXtvcHRpb25SZW5kZXJ9XG4gICAgICAgICAgdmlydHVhbGl6ZXJFc3RpbWF0ZVNpemU9e3ZpcnR1YWxpemVyRXN0aW1hdGVTaXplfVxuICAgICAgICAgIHN0eWxlcz17c3R5bGVzPy5kcm9wZG93blN0eWxlfVxuICAgICAgICAvPlxuICAgICAgPC9zcGFuPlxuICAgIDwvYmFzZVNlbGVjdENvbnRleHQuUHJvdmlkZXI+XG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgQmFzZVNlbGVjdCA9IG1lbW8oQmFzZVNlbGVjdENvbXBvbmVudCkgYXMgdHlwZW9mIEJhc2VTZWxlY3RDb21wb25lbnQ7XG4iXX0= */"], children: prefix }),
346
+ showSearch ? /* @__PURE__ */ jsxs("span", { ref: containerRef, css: selectDefaultStyle.content(theme), children: [
347
+ mode === "multiple" && renderLabel(filteredActiveValues, currentLabel),
348
+ /* @__PURE__ */ jsx("input", { css: selectDefaultStyle.searchInput(theme), value: inputValue ?? "", onChange: searchHandle, placeholder: searchInputPlaceholder == null ? void 0 : searchInputPlaceholder.toString(), ref: inputRef, disabled, style: getSelectSearchInputWidthStyle(mode === "multiple", isEmpty, lettersNumber), "data-element": "search-input" })
349
+ ] }) : /* @__PURE__ */ jsx("span", { ref: containerRef, css: [selectDefaultStyle.content(theme), (_g = styles == null ? void 0 : styles.content) == null ? void 0 : _g.call(styles, theme), process.env.NODE_ENV === "production" ? "" : ";label:BaseSelectComponent;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvZnJvbnRlbmQvbGlicy91aS1raXQvc3JjL2NvbXBvbmVudHMvQmFzZVNlbGVjdC9CYXNlU2VsZWN0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE4ZmdCIiwiZmlsZSI6Ii9idWlsZHMvZnJvbnRlbmQvbGlicy91aS1raXQvc3JjL2NvbXBvbmVudHMvQmFzZVNlbGVjdC9CYXNlU2VsZWN0LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIHR5cGUgRm9jdXNFdmVudCxcbiAgdHlwZSBLZXlib2FyZEV2ZW50LFxuICBtZW1vLFxuICB0eXBlIE1vdXNlRXZlbnQsXG4gIHR5cGUgUHJvcHNXaXRoQ2hpbGRyZW4sXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZixcbiAgdXNlU3RhdGUsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgZ2V0U2VsZWN0RGVmYXVsdFN0eWxlLCBnZXRTZWxlY3RTZWFyY2hJbnB1dFdpZHRoU3R5bGUgfSBmcm9tIFwiLi9CYXNlU2VsZWN0LnN0eWxlc1wiO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tIFwiaG9va3MvdXNlVGhlbWVcIjtcbmltcG9ydCB7IEJhcnNPdXRsaW5lZCwgQ2xvc2VDaXJjbGVGaWxsZWQsIERvd25PdXRsaW5lZCwgU2VhcmNoT3V0bGluZWQgfSBmcm9tIFwiQGluZm9tYXhpbXVtL2ljb25zXCI7XG5pbXBvcnQgeyBpc0Z1bmN0aW9uLCBpc051bGwsIGlzTnVtYmVyLCBpc1VuZGVmaW5lZCB9IGZyb20gXCJsb2Rhc2gtZXNcIjtcbmltcG9ydCB7IGF1dG9VcGRhdGUsIGZsaXAsIG9mZnNldCwgdXNlRmxvYXRpbmcgfSBmcm9tIFwiQGZsb2F0aW5nLXVpL3JlYWN0XCI7XG5pbXBvcnQgeyBjb252ZXJ0U2VsZWN0UGxhY2VtZW50LCBnZXRMYWJlbCwgZ2V0VmlzaWJsZUxhYmVscyB9IGZyb20gXCIuL0Jhc2VTZWxlY3QudXRpbHNcIjtcbmltcG9ydCB7IHVzZVNlYXJjaCB9IGZyb20gXCIuL2hvb2tzL3VzZVNlYXJjaFwiO1xuaW1wb3J0IHsgdXNlQ3VycmVudFZhbHVlIH0gZnJvbSBcIi4vaG9va3MvdXNlQ3VycmVudFZhbHVlXCI7XG5pbXBvcnQgeyBTZWxlY3RUYWcgfSBmcm9tIFwiLi9jb21wb25lbnRzL1NlbGVjdFRhZy9TZWxlY3RUYWdcIjtcbmltcG9ydCB7IHVzZUhpZGVFbGVtZW50cyB9IGZyb20gXCIuL2hvb2tzL3VzZUhpZGVFbGVtZW50c1wiO1xuaW1wb3J0IHtcbiAgVGFnUGxhY2Vob2xkZXIsXG4gIHRhZ1BsYWNlaG9sZGVyRGF0YUVsZW1lbnQsXG59IGZyb20gXCIuL2NvbXBvbmVudHMvVGFnUGxhY2Vob2xkZXIvVGFnUGxhY2Vob2xkZXJcIjtcbmltcG9ydCB0eXBlIHsgQmFzZVNlbGVjdE9wdGlvbkludGVyZmFjZSwgQmFzZVNlbGVjdFByb3BzIH0gZnJvbSBcIi4vQmFzZVNlbGVjdC50eXBlc1wiO1xuaW1wb3J0IHsgU2VsZWN0T3B0aW9uTGlzdCB9IGZyb20gXCIuL2NvbXBvbmVudHMvU2VsZWN0T3B0aW9uTGlzdC9TZWxlY3RPcHRpb25MaXN0XCI7XG5pbXBvcnQgeyBjcmVhdGVCYXNlU2VsZWN0Q29udGV4dCwgdHlwZSBCYXNlU2VsZWN0Q29udGV4dFNoYXBlIH0gZnJvbSBcIi4vY29udGV4dHMvQmFzZVNlbGVjdENvbnRleHRcIjtcblxuY29uc3QgQmFzZVNlbGVjdENvbXBvbmVudCA9IDxPcHRpb24gZXh0ZW5kcyBCYXNlU2VsZWN0T3B0aW9uSW50ZXJmYWNlPE9wdGlvblZhbHVlPiwgT3B0aW9uVmFsdWU+KHtcbiAgb3B0aW9ucyA9IFtdLFxuICBtb2RlID0gXCJzaW5nbGVcIixcbiAgdmFyaWFudCA9IFwib3V0bGluZWRcIixcbiAgZGVmYXVsdFZhbHVlLFxuICBkZWZhdWx0T3BlbiA9IGZhbHNlLFxuICBkZWZhdWx0QWN0aXZlRmlyc3RPcHRpb24sXG4gIHZhbHVlLFxuICBvcGVuLFxuICBwbGFjZWhvbGRlcixcbiAgZHJvcGRvd25NaW5XaWR0aCA9IDEyMCxcbiAgZHJvcGRvd25NYXhIZWlnaHQgPSA0MTQsXG4gIGFsbG93Q2xlYXIgPSBmYWxzZSxcbiAgYXV0b0ZvY3VzLFxuICBwcmVmaXgsXG4gIHN1ZmZpeEljb24gPSA8RG93bk91dGxpbmVkIC8+LFxuICBzdGF0dXMgPSBcImRlZmF1bHRcIixcbiAgZGlzYWJsZWQgPSBmYWxzZSxcbiAgZHJvcGRvd25Qcm9tcHQsXG4gIGxvYWRpbmcgPSBmYWxzZSxcbiAgZHJvcGRvd25DbGFzc05hbWUsXG4gIHN0eWxlcyxcbiAgZHJvcGRvd25NYXRjaFNlbGVjdFdpZHRoID0gdHJ1ZSxcbiAgcGxhY2VtZW50ID0gXCJib3R0b21MZWZ0XCIsXG4gIHZpcnR1YWwgPSB0cnVlLFxuICBlbXB0eUNvbnRlbnQgPSBcIlwiLFxuICBzaG93U2VhcmNoID0gbW9kZSA9PT0gXCJzaW5nbGVcIiA/IGZhbHNlIDogdHJ1ZSxcbiAgc2VhcmNoVmFsdWUsXG4gIG5vdEZvdW5kQ29udGVudCA9IFwiTm90IGZvdW5kXCIsXG4gIG9wdGlvbkxhYmVsUHJvcCA9IFwidGl0bGVcIixcbiAgZHJhd2VyID0gZmFsc2UsXG4gIGF1dG9DbGVhclNlYXJjaFZhbHVlID0gdHJ1ZSxcbiAgbWF4VGFnQ291bnQsXG4gIG1heFRhZ1RleHRMZW5ndGgsXG4gIG1heFRhZ1BsYWNlaG9sZGVyLFxuICBjdXJyZW50U2VsZWN0aW5nSW5kZXgsXG4gIGdldEN1cnJlbnRTZWxlY3RpbmdWYWx1ZSxcbiAgb25LZXlDb250cm9sLFxuICBnZXRPcHRpb25CeVZhbHVlLFxuICB2aXJ0dWFsaXplckVzdGltYXRlU2l6ZSxcbiAgZmlsdGVyT3B0aW9ucyxcbiAgZmlsdGVyU29ydCxcbiAgdmFsdWVzRmlsdGVyLFxuICBkcm9wZG93blJlbmRlcixcbiAgb3B0aW9uUmVuZGVyLFxuICBsYWJlbFJlbmRlcixcbiAgb25CbHVyLFxuICBvbkNoYW5nZSxcbiAgb25DbGVhcixcbiAgb25Ecm9wZG93blZpc2libGVDaGFuZ2UsXG4gIG9uRm9jdXMsXG4gIG9uSW5wdXRLZXlEb3duLFxuICBvblNlbGVjdCxcbiAgZ2V0UG9wdXBDb250YWluZXIgPSAoKSA9PiBkb2N1bWVudC5ib2R5LFxuICBvblNlYXJjaCxcbiAgdGFnUmVuZGVyLFxuICBvbkRlc2VsZWN0LFxuICByZW5kZXJEcm9wZG93bkl0ZW0sXG4gIG9uVGFnQ2xvc2UsXG59OiBQcm9wc1dpdGhDaGlsZHJlbjxCYXNlU2VsZWN0UHJvcHM8T3B0aW9uLCBPcHRpb25WYWx1ZT4+KSA9PiB7XG4gIGNvbnN0IHRoZW1lID0gdXNlVGhlbWUoKTtcbiAgY29uc3QgYmFzZVNlbGVjdENvbnRleHQgPSBjcmVhdGVCYXNlU2VsZWN0Q29udGV4dDxPcHRpb25WYWx1ZT4oKTtcblxuICBjb25zdCB7IGZpbHRlcmVkQW5kU29ydGVkT3B0aW9ucywgc2VhcmNoSW5wdXRWYWx1ZSwgc2VhcmNoSGFuZGxlLCBjbGVhclNlYXJjaFZhbHVlIH0gPSB1c2VTZWFyY2g8XG4gICAgT3B0aW9uLFxuICAgIE9wdGlvblZhbHVlXG4gID4oe1xuICAgIG9wdGlvbnMsXG4gICAgc2VhcmNoVmFsdWUsXG4gICAgb25TZWFyY2gsXG4gICAgZmlsdGVyU29ydCxcbiAgICBmaWx0ZXJPcHRpb25zLFxuICB9KTtcblxuICBjb25zdCB7IGN1cnJlbnRWYWx1ZSwgY2hhbmdlQ3VycmVudFZhbHVlLCByZW1vdmVWYWx1ZSwgY2xlYXJDdXJyZW50VmFsdWUgfSA9IHVzZUN1cnJlbnRWYWx1ZShcbiAgICBtb2RlLFxuICAgIGRlZmF1bHRWYWx1ZSxcbiAgICBkZWZhdWx0QWN0aXZlRmlyc3RPcHRpb24sXG4gICAgb3B0aW9ucyxcbiAgICBvbkRlc2VsZWN0XG4gICk7XG5cbiAgY29uc3QgW2lzU2VsZWN0T3Blbiwgc2V0SXNTZWxlY3RPcGVuXSA9IHVzZVN0YXRlKGRlZmF1bHRPcGVuKTtcbiAgY29uc3QgW2lzSG92ZXIsIHNldElzSG92ZXJdID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gIGNvbnN0IGlzSW5pdGlhbE1vdW50ID0gdXNlUmVmKHRydWUpO1xuICBjb25zdCBjb250cm9sUmVmID0gdXNlUmVmPEhUTUxTcGFuRWxlbWVudCB8IG51bGw+KG51bGwpO1xuICBjb25zdCBpbnB1dFJlZiA9IHVzZVJlZjxIVE1MSW5wdXRFbGVtZW50IHwgbnVsbD4obnVsbCk7XG5cbiAgY29uc3QgcmVmZXJlbmNlT2Zmc2V0V2lkdGggPSBjb250cm9sUmVmLmN1cnJlbnQ/Lm9mZnNldFdpZHRoO1xuXG4gIGNvbnN0IHsgcmVmcywgZmxvYXRpbmdTdHlsZXMgfSA9IHVzZUZsb2F0aW5nPEhUTUxTcGFuRWxlbWVudD4oe1xuICAgIHdoaWxlRWxlbWVudHNNb3VudGVkOiBhdXRvVXBkYXRlLFxuICAgIHBsYWNlbWVudDogY29udmVydFNlbGVjdFBsYWNlbWVudChwbGFjZW1lbnQpLFxuICAgIG1pZGRsZXdhcmU6IFtvZmZzZXQoNCksIGZsaXAoKV0sXG4gIH0pO1xuXG4gIGNvbnN0IHJldHVybkZvY3VzVG9XcmFwcGVyID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29udHJvbFJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgIH0pO1xuICB9LCBbXSk7XG5cbiAgY29uc3QgcmV0dXJuRm9jdXNUb0lucHV0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaW5wdXRSZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICB9KTtcbiAgfSwgW10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFpc0luaXRpYWxNb3VudC5jdXJyZW50KSB7XG4gICAgICBjb25zdCBvcHRpb25zID0gY3VycmVudFZhbHVlLnJlZHVjZSgoYWNjOiBPcHRpb25bXSwgdmFsdWUpID0+IHtcbiAgICAgICAgY29uc3Qgb3B0aW9uID0gZ2V0T3B0aW9uQnlWYWx1ZSh2YWx1ZSk7XG5cbiAgICAgICAgaWYgKGlzVW5kZWZpbmVkKG9wdGlvbikpIHtcbiAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFsuLi5hY2MsIG9wdGlvbl07XG4gICAgICB9LCBbXSk7XG5cbiAgICAgIG9uQ2hhbmdlPy4oY3VycmVudFZhbHVlLCBvcHRpb25zKTtcbiAgICB9XG4gIH0sIFtjdXJyZW50VmFsdWUsIGdldE9wdGlvbkJ5VmFsdWUsIG9uQ2hhbmdlXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaXNJbml0aWFsTW91bnQuY3VycmVudCkge1xuICAgICAgaXNJbml0aWFsTW91bnQuY3VycmVudCA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICBvbkRyb3Bkb3duVmlzaWJsZUNoYW5nZT8uKCk7XG4gICAgfVxuICB9LCBbaXNTZWxlY3RPcGVuLCBvbkRyb3Bkb3duVmlzaWJsZUNoYW5nZV0pO1xuXG4gIGNvbnN0IGFjdGl2ZVZhbHVlcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogaXNVbmRlZmluZWQodmFsdWUpID8gY3VycmVudFZhbHVlIDogW3ZhbHVlXTtcbiAgfSwgW2N1cnJlbnRWYWx1ZSwgdmFsdWVdKTtcblxuICBjb25zdCBzZWxlY3REZWZhdWx0U3R5bGUgPSBnZXRTZWxlY3REZWZhdWx0U3R5bGUoe1xuICAgIHN0YXR1cyxcbiAgICBkaXNhYmxlZCxcbiAgICB2YXJpYW50LFxuICAgIG11bHRpcGxlOiBtb2RlID09PSBcIm11bHRpcGxlXCIsXG4gICAgaXNIb3ZlcixcbiAgICBtYXhUYWdDb3VudCxcbiAgICB3aXRoUHJlZml4OiAhIXByZWZpeCxcbiAgICBpc0VtcHR5OiBhY3RpdmVWYWx1ZXMubGVuZ3RoID09PSAwLFxuICB9KTtcblxuICBjb25zdCBmaWx0ZXJlZEFjdGl2ZVZhbHVlcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiBpc0Z1bmN0aW9uKHZhbHVlc0ZpbHRlcikgPyB2YWx1ZXNGaWx0ZXIoYWN0aXZlVmFsdWVzKSA6IGFjdGl2ZVZhbHVlcztcbiAgfSwgW2FjdGl2ZVZhbHVlcywgdmFsdWVzRmlsdGVyXSk7XG5cbiAgY29uc3QgeyBjb250YWluZXJSZWYsIGlzSXRlbUhpZGRlbiB9ID0gdXNlSGlkZUVsZW1lbnRzKFxuICAgIGZpbHRlcmVkQWN0aXZlVmFsdWVzLFxuICAgIHRoZW1lLnNwYWNlWFMsXG4gICAgaW5wdXRSZWYsXG4gICAgbWF4VGFnQ291bnRcbiAgKTtcblxuICBjb25zdCBjdXJyZW50TGFiZWwgPSBnZXRMYWJlbDxPcHRpb24sIE9wdGlvblZhbHVlPihcbiAgICBmaWx0ZXJlZEFjdGl2ZVZhbHVlcyxcbiAgICBnZXRPcHRpb25CeVZhbHVlLFxuICAgIG9wdGlvbkxhYmVsUHJvcFxuICApO1xuXG4gIGNvbnN0IHdpdGhEcmF3ZXIgPSBtb2RlID09PSBcIm11bHRpcGxlXCIgJiYgZHJhd2VyO1xuICBjb25zdCB3aXRoQXV0b0NsZWFyID0gbW9kZSA9PT0gXCJzaW5nbGVcIiB8fCBhdXRvQ2xlYXJTZWFyY2hWYWx1ZTtcblxuICBjb25zdCBjbGlja0hhbmRsZSA9ICgpID0+IHtcbiAgICBpZiAoZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzZXRJc1NlbGVjdE9wZW4oKHByZXYpID0+ICFwcmV2KTtcbiAgfTtcblxuICBjb25zdCBjaGFuZ2VIYW5kbGUgPSB1c2VDYWxsYmFjayhcbiAgICAodmFsdWU6IE9wdGlvblZhbHVlIHwgT3B0aW9uVmFsdWVbXSkgPT4ge1xuICAgICAgY2hhbmdlQ3VycmVudFZhbHVlKHZhbHVlKTtcblxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgb3B0aW9uID0gZ2V0T3B0aW9uQnlWYWx1ZSh2YWx1ZSk7XG5cbiAgICAgIGlmICh3aXRoQXV0b0NsZWFyKSB7XG4gICAgICAgIGNsZWFyU2VhcmNoVmFsdWUoKTtcbiAgICAgIH1cblxuICAgICAgaWYgKG9wdGlvbikge1xuICAgICAgICBvblNlbGVjdD8uKHZhbHVlLCBvcHRpb24pO1xuICAgICAgfVxuICAgIH0sXG4gICAgW2NoYW5nZUN1cnJlbnRWYWx1ZSwgY2xlYXJTZWFyY2hWYWx1ZSwgZ2V0T3B0aW9uQnlWYWx1ZSwgb25TZWxlY3QsIHdpdGhBdXRvQ2xlYXJdXG4gICk7XG5cbiAgY29uc3QgY2xvc2VPcHRpb25MaXN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldElzU2VsZWN0T3BlbihmYWxzZSk7XG4gIH0sIFtdKTtcblxuICBjb25zdCBibHVySGFuZGxlID0gKGU6IEZvY3VzRXZlbnQpID0+IHtcbiAgICBjb25zdCBpc0ZvY3VzT25PcHRpb25MaXN0ID0gcmVmcy5mbG9hdGluZy5jdXJyZW50Py5jb250YWlucyhlLnJlbGF0ZWRUYXJnZXQpO1xuICAgIGNvbnN0IGlzRm9jdXNPblNlYXJjaElucHV0ID0gIWlzTnVsbChpbnB1dFJlZi5jdXJyZW50KSAmJiBlLnJlbGF0ZWRUYXJnZXQgPT09IGlucHV0UmVmLmN1cnJlbnQ7XG4gICAgY29uc3QgaXNGb2N1c09uQ29udHJvbCA9IGUucmVsYXRlZFRhcmdldCA9PT0gY29udHJvbFJlZi5jdXJyZW50O1xuXG4gICAgaWYgKGlzRm9jdXNPbk9wdGlvbkxpc3QgfHwgaXNGb2N1c09uU2VhcmNoSW5wdXQgfHwgaXNGb2N1c09uQ29udHJvbCkge1xuICAgICAgaWYgKHNob3dTZWFyY2gpIHtcbiAgICAgICAgcmV0dXJuRm9jdXNUb0lucHV0KCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm5Gb2N1c1RvV3JhcHBlcigpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgb25CbHVyPy4oZSk7XG4gICAgY2xlYXJTZWFyY2hWYWx1ZSgpO1xuICAgIGNsb3NlT3B0aW9uTGlzdCgpO1xuICB9O1xuXG4gIGNvbnN0IGNsZWFyU2VsZWN0ID0gdXNlQ2FsbGJhY2soXG4gICAgKGU6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgIGNsZWFyQ3VycmVudFZhbHVlKCk7XG4gICAgICBvbkNsZWFyPy4oKTtcbiAgICB9LFxuICAgIFtjbGVhckN1cnJlbnRWYWx1ZSwgb25DbGVhcl1cbiAgKTtcblxuICBjb25zdCBrZXlEb3duSGFuZGxlciA9IChlOiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgaWYgKGUua2V5ID09PSBcIkVudGVyXCIpIHtcbiAgICAgIGlmIChpc1NlbGVjdE9wZW4pIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBnZXRDdXJyZW50U2VsZWN0aW5nVmFsdWUoKTtcblxuICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGN1cnJlbnRWYWx1ZS5pbmNsdWRlcyh2YWx1ZSkpIHtcbiAgICAgICAgICByZW1vdmVWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY2hhbmdlQ3VycmVudFZhbHVlKHZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh3aXRoQXV0b0NsZWFyKSB7XG4gICAgICAgICAgY2xlYXJTZWFyY2hWYWx1ZSgpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNsaWNrSGFuZGxlKCk7XG4gICAgfVxuXG4gICAgc2V0SXNTZWxlY3RPcGVuKHRydWUpO1xuXG4gICAgb25LZXlDb250cm9sKGUpO1xuICAgIG9uSW5wdXRLZXlEb3duPy4oZSk7XG4gIH07XG5cbiAgY29uc3QgbW91c2VPdmVySGFuZGxlID0gKCkgPT4ge1xuICAgIHNldElzSG92ZXIodHJ1ZSk7XG4gIH07XG5cbiAgY29uc3QgbW91c2VPdXRIYW5kbGUgPSAoKSA9PiB7XG4gICAgc2V0SXNIb3ZlcihmYWxzZSk7XG4gIH07XG5cbiAgY29uc3QgZm9jdXNIYW5kbGUgPSAoZTogRm9jdXNFdmVudCkgPT4ge1xuICAgIG9uRm9jdXM/LihlKTtcblxuICAgIGlmICghc2hvd1NlYXJjaCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHJldHVybkZvY3VzVG9JbnB1dCgpO1xuICB9O1xuXG4gIGNvbnN0IHJlbmRlclRhZ1BsYWNlaG9sZGVyID0gKGhpZGRlbkVsZW1lbnRzQ291bnRlcjogbnVtYmVyKSA9PiB7XG4gICAgaWYgKGlzVW5kZWZpbmVkKG1heFRhZ1BsYWNlaG9sZGVyKSkge1xuICAgICAgcmV0dXJuIDxUYWdQbGFjZWhvbGRlciBoaWRkZW5FbGVtZW50c0NvdW50ZXI9e2hpZGRlbkVsZW1lbnRzQ291bnRlcn0gLz47XG4gICAgfVxuXG4gICAgaWYgKCFpc0Z1bmN0aW9uKG1heFRhZ1BsYWNlaG9sZGVyKSkge1xuICAgICAgcmV0dXJuIDxzcGFuIGRhdGEtZWxlbWVudD17dGFnUGxhY2Vob2xkZXJEYXRhRWxlbWVudH0+e21heFRhZ1BsYWNlaG9sZGVyfTwvc3Bhbj47XG4gICAgfVxuXG4gICAgY29uc3QgaGlkZGVuRWxlbWVudHMgPSBjdXJyZW50VmFsdWUucmVkdWNlKChhY2M6IE9wdGlvbltdLCB2YWx1ZSkgPT4ge1xuICAgICAgY29uc3QgaXNIaWRkZW4gPSBpc0l0ZW1IaWRkZW4uZ2V0KHZhbHVlKTtcbiAgICAgIGNvbnN0IG9wdGlvbiA9IGdldE9wdGlvbkJ5VmFsdWUodmFsdWUpO1xuXG4gICAgICBpZiAoIWlzSGlkZGVuIHx8IGlzVW5kZWZpbmVkKG9wdGlvbikpIHtcbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH1cblxuICAgICAgYWNjLnB1c2gob3B0aW9uKTtcblxuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCBbXSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPHNwYW4gZGF0YS1lbGVtZW50PXt0YWdQbGFjZWhvbGRlckRhdGFFbGVtZW50fT57bWF4VGFnUGxhY2Vob2xkZXIoaGlkZGVuRWxlbWVudHMpfTwvc3Bhbj5cbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IHJlbmRlckxhYmVsID0gKHZhbHVlczogT3B0aW9uVmFsdWVbXSwgY3VycmVudExhYmVsOiBzdHJpbmdbXSkgPT4ge1xuICAgIGNvbnN0IHZpc2libGVMYWJlbHMgPSBnZXRWaXNpYmxlTGFiZWxzKGN1cnJlbnRMYWJlbCwgbWF4VGFnQ291bnQpO1xuXG4gICAgY29uc3QgbGFiZWwgPSB2aXNpYmxlTGFiZWxzLm1hcCgobGFiZWwsIGluZGV4KSA9PiB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHZhbHVlc1tpbmRleF0gYXMgT3B0aW9uVmFsdWU7XG5cbiAgICAgIGlmIChpc0Z1bmN0aW9uKGxhYmVsUmVuZGVyKSkge1xuICAgICAgICByZXR1cm4gbGFiZWxSZW5kZXIoeyBsYWJlbCwgdmFsdWUgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChtb2RlID09PSBcInNpbmdsZVwiKSB7XG4gICAgICAgIHJldHVybiBsYWJlbDtcbiAgICAgIH1cblxuICAgICAgaWYgKGlzRnVuY3Rpb24odGFnUmVuZGVyKSkge1xuICAgICAgICByZXR1cm4gdGFnUmVuZGVyKGxhYmVsKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgaXNIaWRkZW4gPSAhIWlzSXRlbUhpZGRlbi5nZXQodmFsdWUpO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U2VsZWN0VGFnPE9wdGlvblZhbHVlPlxuICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICBsYWJlbD17bGFiZWx9XG4gICAgICAgICAgcmVtb3ZlVmFsdWU9e3JlbW92ZVZhbHVlfVxuICAgICAgICAgIG1heFRhZ1RleHRMZW5ndGg9e21heFRhZ1RleHRMZW5ndGh9XG4gICAgICAgICAgaXNCb3JkZXJsZXNzPXt2YXJpYW50ID09PSBcImJvcmRlcmxlc3NcIn1cbiAgICAgICAgICBpc0Vycm9yPXtzdGF0dXMgPT09IFwiZXJyb3JcIn1cbiAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgaXNIaWRkZW49e2lzSGlkZGVufVxuICAgICAgICAgIG9uVGFnQ2xvc2U9e29uVGFnQ2xvc2V9XG4gICAgICAgICAga2V5PXt2YWx1ZT8udG9TdHJpbmcoKX1cbiAgICAgICAgLz5cbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBoaWRkZW5FbGVtZW50c0NvdW50ZXIgPSBpc051bWJlcihtYXhUYWdDb3VudClcbiAgICAgID8gaXNJdGVtSGlkZGVuLnNpemUgLSBtYXhUYWdDb3VudFxuICAgICAgOiBBcnJheS5mcm9tKGlzSXRlbUhpZGRlbi52YWx1ZXMoKSkucmVkdWNlKChhY2MsIGlzSGlkZGVuKSA9PiAoaXNIaWRkZW4gPyBhY2MgKyAxIDogYWNjKSwgMCk7XG5cbiAgICBjb25zdCB3aXRoVGFnUGxhY2Vob2xkZXIgPVxuICAgICAgIWlzVW5kZWZpbmVkKG1heFRhZ0NvdW50KSAmJiBtb2RlID09PSBcIm11bHRpcGxlXCIgJiYgaGlkZGVuRWxlbWVudHNDb3VudGVyID4gMDtcblxuICAgIGlmIChsYWJlbC5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7bGFiZWx9XG4gICAgICAgIHt3aXRoVGFnUGxhY2Vob2xkZXIgJiYgcmVuZGVyVGFnUGxhY2Vob2xkZXIoaGlkZGVuRWxlbWVudHNDb3VudGVyKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgY29uc3QgcmVuZGVyU3VmZml4ID0gKCkgPT4ge1xuICAgIGlmICh3aXRoRHJhd2VyKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8QmFyc091dGxpbmVkXG4gICAgICAgICAgb25DbGljaz17Y2xpY2tIYW5kbGV9XG4gICAgICAgICAgY3NzPXtbc2VsZWN0RGVmYXVsdFN0eWxlLmRyYXdlckljb24odGhlbWUpLCBzdHlsZXM/LmRyYXdlckljb24/Lih0aGVtZSldfVxuICAgICAgICAvPlxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoc2hvd1NlYXJjaCAmJiBpc1NlbGVjdE9wZW4pIHtcbiAgICAgIHJldHVybiA8U2VhcmNoT3V0bGluZWQgLz47XG4gICAgfVxuXG4gICAgcmV0dXJuIHN1ZmZpeEljb247XG4gIH07XG5cbiAgY29uc3QgcmVuZGVyUGxhY2Vob2xkZXIgPSAoKSA9PiAoXG4gICAgPHNwYW4gY3NzPXtbc2VsZWN0RGVmYXVsdFN0eWxlLnBsYWNlaG9sZGVyKHRoZW1lKSwgc3R5bGVzPy5wbGFjZWhvbGRlcj8uKHRoZW1lKV19PlxuICAgICAge3BsYWNlaG9sZGVyfVxuICAgIDwvc3Bhbj5cbiAgKTtcblxuICBjb25zdCB3aXRoQ2xlYXJCdXR0b24gPSBhbGxvd0NsZWFyICYmICEhZmlsdGVyZWRBY3RpdmVWYWx1ZXMubGVuZ3RoO1xuXG4gIGNvbnN0IGlucHV0VmFsdWUgPVxuICAgIG1vZGUgPT09IFwibXVsdGlwbGVcIiB8fCBpc1NlbGVjdE9wZW5cbiAgICAgID8gKHNlYXJjaFZhbHVlID8/IHNlYXJjaElucHV0VmFsdWUpXG4gICAgICA6IGN1cnJlbnRMYWJlbFswXT8udG9TdHJpbmcoKTtcblxuICBjb25zdCBpc0VtcHR5ID0gZmlsdGVyZWRBY3RpdmVWYWx1ZXMubGVuZ3RoID09PSAwO1xuICBjb25zdCBzaW5nbGVNb2RQbGFjZWhvbGRlciA9IGN1cnJlbnRMYWJlbFswXSA/PyBwbGFjZWhvbGRlciA/PyBcIlwiO1xuICBjb25zdCBtdWx0aXBsZU1vZFBsYWNlaG9sZGVyID0gaXNFbXB0eSA/IHBsYWNlaG9sZGVyIDogdW5kZWZpbmVkO1xuXG4gIGNvbnN0IHNlYXJjaElucHV0UGxhY2Vob2xkZXIgPSBtb2RlID09PSBcInNpbmdsZVwiID8gc2luZ2xlTW9kUGxhY2Vob2xkZXIgOiBtdWx0aXBsZU1vZFBsYWNlaG9sZGVyO1xuXG4gIGNvbnN0IGxldHRlcnNOdW1iZXIgPSAoaW5wdXRWYWx1ZT8ubGVuZ3RoID8/IDApICsgMTtcblxuICBjb25zdCBoYXNJY29uUHJlZml4ID0gdHlwZW9mIHByZWZpeCA9PT0gXCJvYmplY3RcIjtcblxuICBjb25zdCBjb250ZXh0VmFsdWU6IEJhc2VTZWxlY3RDb250ZXh0U2hhcGU8T3B0aW9uVmFsdWU+ID0ge1xuICAgIGN1cnJlbnRWYWx1ZTogYWN0aXZlVmFsdWVzLFxuICAgIHNob3dPcHRpb25MaXN0OiBvcGVuID8/IGlzU2VsZWN0T3BlbixcbiAgICBzZXRWYWx1ZTogY2hhbmdlSGFuZGxlLFxuICAgIGNsb3NlT3B0aW9uTGlzdCxcbiAgICBkcm9wZG93bk1pbldpZHRoLFxuICAgIGRyb3Bkb3duTWF4SGVpZ2h0LFxuICAgIGRyb3Bkb3duUHJvbXB0LFxuICAgIGxvYWRpbmcsXG4gICAgZHJvcGRvd25DbGFzc05hbWUsXG4gICAgZHJvcGRvd25SZW5kZXIsXG4gICAgZHJvcGRvd25NYXRjaFNlbGVjdFdpZHRoLFxuICAgIHJlZmVyZW5jZU9mZnNldFdpZHRoLFxuICAgIGZsb2F0aW5nU3R5bGVzLFxuICAgIHNldEZsb2F0aW5nOiByZWZzLnNldEZsb2F0aW5nLFxuICAgIGZsb2F0aW5nUmVmOiByZWZzLmZsb2F0aW5nLFxuICAgIGdldFBvcHVwQ29udGFpbmVyLFxuICAgIHZpcnR1YWwsXG4gICAgY3VycmVudFNlbGVjdGluZ0luZGV4LFxuICAgIGVtcHR5Q29udGVudCxcbiAgICBub3RGb3VuZENvbnRlbnQsXG4gICAgc2VhcmNoVmFsdWU6IHNlYXJjaFZhbHVlID8/IHNlYXJjaElucHV0VmFsdWUsXG4gICAgc2hvd1NlYXJjaCxcbiAgICBtb2RlLFxuICAgIHJlbW92ZVZhbHVlLFxuICAgIGlzSXRlbUhpZGRlbixcbiAgICBnZXRDdXJyZW50U2VsZWN0aW5nVmFsdWUsXG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8YmFzZVNlbGVjdENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e2NvbnRleHRWYWx1ZX0+XG4gICAgICA8c3BhblxuICAgICAgICBjc3M9e1tzZWxlY3REZWZhdWx0U3R5bGUud3JhcHBlcih0aGVtZSksIHN0eWxlcz8ud3JhcHBlcj8uKHRoZW1lKV19XG4gICAgICAgIHRhYkluZGV4PXsxfVxuICAgICAgICBvbktleURvd249e2tleURvd25IYW5kbGVyfVxuICAgICAgICBvbk1vdXNlT3Zlcj17bW91c2VPdmVySGFuZGxlfVxuICAgICAgICBvbk1vdXNlT3V0PXttb3VzZU91dEhhbmRsZX1cbiAgICAgICAgb25Gb2N1cz17Zm9jdXNIYW5kbGV9XG4gICAgICAgIG9uQmx1cj17Ymx1ckhhbmRsZX1cbiAgICAgICAgYXV0b0ZvY3VzPXthdXRvRm9jdXN9XG4gICAgICAgIHJlZj17Y29udHJvbFJlZn1cbiAgICAgID5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBjc3M9e1tzZWxlY3REZWZhdWx0U3R5bGUuYm9keSh0aGVtZSksIHN0eWxlcz8uYm9keT8uKHRoZW1lKV19XG4gICAgICAgICAgb25DbGljaz17IXdpdGhEcmF3ZXIgPyBjbGlja0hhbmRsZSA6IHVuZGVmaW5lZH1cbiAgICAgICAgICByZWY9e3JlZnMuc2V0UmVmZXJlbmNlfVxuICAgICAgICA+XG4gICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGNzcz17W3NlbGVjdERlZmF1bHRTdHlsZS5wcmVmaXhBbmRDb250ZW50KHRoZW1lKSwgc3R5bGVzPy5wcmVmaXhBbmRDb250ZW50Py4odGhlbWUpXX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7cHJlZml4ICYmIChcbiAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICBjc3M9e1tzZWxlY3REZWZhdWx0U3R5bGUucHJlZml4KGhhc0ljb25QcmVmaXgpKHRoZW1lKSwgc3R5bGVzPy5wcmVmaXg/Lih0aGVtZSldfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3ByZWZpeH1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAge3Nob3dTZWFyY2ggPyAoXG4gICAgICAgICAgICAgIDxzcGFuIHJlZj17Y29udGFpbmVyUmVmfSBjc3M9e3NlbGVjdERlZmF1bHRTdHlsZS5jb250ZW50KHRoZW1lKX0+XG4gICAgICAgICAgICAgICAge21vZGUgPT09IFwibXVsdGlwbGVcIiAmJiByZW5kZXJMYWJlbChmaWx0ZXJlZEFjdGl2ZVZhbHVlcywgY3VycmVudExhYmVsKX1cbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgIGNzcz17c2VsZWN0RGVmYXVsdFN0eWxlLnNlYXJjaElucHV0KHRoZW1lKX1cbiAgICAgICAgICAgICAgICAgIHZhbHVlPXtpbnB1dFZhbHVlID8/IFwiXCJ9XG4gICAgICAgICAgICAgICAgICBvbkNoYW5nZT17c2VhcmNoSGFuZGxlfVxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e3NlYXJjaElucHV0UGxhY2Vob2xkZXI/LnRvU3RyaW5nKCl9XG4gICAgICAgICAgICAgICAgICByZWY9e2lucHV0UmVmfVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgc3R5bGU9e2dldFNlbGVjdFNlYXJjaElucHV0V2lkdGhTdHlsZShcbiAgICAgICAgICAgICAgICAgICAgbW9kZSA9PT0gXCJtdWx0aXBsZVwiLFxuICAgICAgICAgICAgICAgICAgICBpc0VtcHR5LFxuICAgICAgICAgICAgICAgICAgICBsZXR0ZXJzTnVtYmVyXG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgZGF0YS1lbGVtZW50PVwic2VhcmNoLWlucHV0XCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxuICAgICAgICAgICAgICAgIGNzcz17W3NlbGVjdERlZmF1bHRTdHlsZS5jb250ZW50KHRoZW1lKSwgc3R5bGVzPy5jb250ZW50Py4odGhlbWUpXX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtyZW5kZXJMYWJlbChmaWx0ZXJlZEFjdGl2ZVZhbHVlcywgY3VycmVudExhYmVsKSA/PyByZW5kZXJQbGFjZWhvbGRlcigpfVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgIHt3aXRoQ2xlYXJCdXR0b24gJiYgKFxuICAgICAgICAgICAgPENsb3NlQ2lyY2xlRmlsbGVkXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cImNsZWFuLWJ1dHRvblwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e2NsZWFyU2VsZWN0fVxuICAgICAgICAgICAgICBjc3M9e1tzZWxlY3REZWZhdWx0U3R5bGUuY2xlYW5JY29uKHRoZW1lKSwgc3R5bGVzPy5jbGVhbkljb24/Lih0aGVtZSldfVxuICAgICAgICAgICAgICBkYXRhLWVsZW1lbnQ9XCJjbGVhbi1idXR0b25cIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxzcGFuIGNzcz17W3NlbGVjdERlZmF1bHRTdHlsZS5zdWZmaXhJY29uKHRoZW1lKSwgc3R5bGVzPy5zdWZmaXhJY29uPy4odGhlbWUpXX0+XG4gICAgICAgICAgICB7cmVuZGVyU3VmZml4KCl9XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgPFNlbGVjdE9wdGlvbkxpc3Q8T3B0aW9uLCBPcHRpb25WYWx1ZT5cbiAgICAgICAgICBvcHRpb25zPXtmaWx0ZXJlZEFuZFNvcnRlZE9wdGlvbnN9XG4gICAgICAgICAgcmVuZGVyRHJvcGRvd25JdGVtPXtyZW5kZXJEcm9wZG93bkl0ZW19XG4gICAgICAgICAgb3B0aW9uUmVuZGVyPXtvcHRpb25SZW5kZXJ9XG4gICAgICAgICAgdmlydHVhbGl6ZXJFc3RpbWF0ZVNpemU9e3ZpcnR1YWxpemVyRXN0aW1hdGVTaXplfVxuICAgICAgICAgIHN0eWxlcz17c3R5bGVzPy5kcm9wZG93blN0eWxlfVxuICAgICAgICAvPlxuICAgICAgPC9zcGFuPlxuICAgIDwvYmFzZVNlbGVjdENvbnRleHQuUHJvdmlkZXI+XG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgQmFzZVNlbGVjdCA9IG1lbW8oQmFzZVNlbGVjdENvbXBvbmVudCkgYXMgdHlwZW9mIEJhc2VTZWxlY3RDb21wb25lbnQ7XG4iXX0= */"], children: renderLabel(filteredActiveValues, currentLabel) ?? renderPlaceholder() })
350
+ ] }),
351
+ withClearButton && /* @__PURE__ */ jsx(CloseCircleFilled, { className: "clean-button", onClick: clearSelect, css: [selectDefaultStyle.cleanIcon(theme), (_h = styles == null ? void 0 : styles.cleanIcon) == null ? void 0 : _h.call(styles, theme), process.env.NODE_ENV === "production" ? "" : ";label:BaseSelectComponent;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvZnJvbnRlbmQvbGlicy91aS1raXQvc3JjL2NvbXBvbmVudHMvQmFzZVNlbGVjdC9CYXNlU2VsZWN0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF5Z0JjIiwiZmlsZSI6Ii9idWlsZHMvZnJvbnRlbmQvbGlicy91aS1raXQvc3JjL2NvbXBvbmVudHMvQmFzZVNlbGVjdC9CYXNlU2VsZWN0LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIHR5cGUgRm9jdXNFdmVudCxcbiAgdHlwZSBLZXlib2FyZEV2ZW50LFxuICBtZW1vLFxuICB0eXBlIE1vdXNlRXZlbnQsXG4gIHR5cGUgUHJvcHNXaXRoQ2hpbGRyZW4sXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZixcbiAgdXNlU3RhdGUsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgZ2V0U2VsZWN0RGVmYXVsdFN0eWxlLCBnZXRTZWxlY3RTZWFyY2hJbnB1dFdpZHRoU3R5bGUgfSBmcm9tIFwiLi9CYXNlU2VsZWN0LnN0eWxlc1wiO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tIFwiaG9va3MvdXNlVGhlbWVcIjtcbmltcG9ydCB7IEJhcnNPdXRsaW5lZCwgQ2xvc2VDaXJjbGVGaWxsZWQsIERvd25PdXRsaW5lZCwgU2VhcmNoT3V0bGluZWQgfSBmcm9tIFwiQGluZm9tYXhpbXVtL2ljb25zXCI7XG5pbXBvcnQgeyBpc0Z1bmN0aW9uLCBpc051bGwsIGlzTnVtYmVyLCBpc1VuZGVmaW5lZCB9IGZyb20gXCJsb2Rhc2gtZXNcIjtcbmltcG9ydCB7IGF1dG9VcGRhdGUsIGZsaXAsIG9mZnNldCwgdXNlRmxvYXRpbmcgfSBmcm9tIFwiQGZsb2F0aW5nLXVpL3JlYWN0XCI7XG5pbXBvcnQgeyBjb252ZXJ0U2VsZWN0UGxhY2VtZW50LCBnZXRMYWJlbCwgZ2V0VmlzaWJsZUxhYmVscyB9IGZyb20gXCIuL0Jhc2VTZWxlY3QudXRpbHNcIjtcbmltcG9ydCB7IHVzZVNlYXJjaCB9IGZyb20gXCIuL2hvb2tzL3VzZVNlYXJjaFwiO1xuaW1wb3J0IHsgdXNlQ3VycmVudFZhbHVlIH0gZnJvbSBcIi4vaG9va3MvdXNlQ3VycmVudFZhbHVlXCI7XG5pbXBvcnQgeyBTZWxlY3RUYWcgfSBmcm9tIFwiLi9jb21wb25lbnRzL1NlbGVjdFRhZy9TZWxlY3RUYWdcIjtcbmltcG9ydCB7IHVzZUhpZGVFbGVtZW50cyB9IGZyb20gXCIuL2hvb2tzL3VzZUhpZGVFbGVtZW50c1wiO1xuaW1wb3J0IHtcbiAgVGFnUGxhY2Vob2xkZXIsXG4gIHRhZ1BsYWNlaG9sZGVyRGF0YUVsZW1lbnQsXG59IGZyb20gXCIuL2NvbXBvbmVudHMvVGFnUGxhY2Vob2xkZXIvVGFnUGxhY2Vob2xkZXJcIjtcbmltcG9ydCB0eXBlIHsgQmFzZVNlbGVjdE9wdGlvbkludGVyZmFjZSwgQmFzZVNlbGVjdFByb3BzIH0gZnJvbSBcIi4vQmFzZVNlbGVjdC50eXBlc1wiO1xuaW1wb3J0IHsgU2VsZWN0T3B0aW9uTGlzdCB9IGZyb20gXCIuL2NvbXBvbmVudHMvU2VsZWN0T3B0aW9uTGlzdC9TZWxlY3RPcHRpb25MaXN0XCI7XG5pbXBvcnQgeyBjcmVhdGVCYXNlU2VsZWN0Q29udGV4dCwgdHlwZSBCYXNlU2VsZWN0Q29udGV4dFNoYXBlIH0gZnJvbSBcIi4vY29udGV4dHMvQmFzZVNlbGVjdENvbnRleHRcIjtcblxuY29uc3QgQmFzZVNlbGVjdENvbXBvbmVudCA9IDxPcHRpb24gZXh0ZW5kcyBCYXNlU2VsZWN0T3B0aW9uSW50ZXJmYWNlPE9wdGlvblZhbHVlPiwgT3B0aW9uVmFsdWU+KHtcbiAgb3B0aW9ucyA9IFtdLFxuICBtb2RlID0gXCJzaW5nbGVcIixcbiAgdmFyaWFudCA9IFwib3V0bGluZWRcIixcbiAgZGVmYXVsdFZhbHVlLFxuICBkZWZhdWx0T3BlbiA9IGZhbHNlLFxuICBkZWZhdWx0QWN0aXZlRmlyc3RPcHRpb24sXG4gIHZhbHVlLFxuICBvcGVuLFxuICBwbGFjZWhvbGRlcixcbiAgZHJvcGRvd25NaW5XaWR0aCA9IDEyMCxcbiAgZHJvcGRvd25NYXhIZWlnaHQgPSA0MTQsXG4gIGFsbG93Q2xlYXIgPSBmYWxzZSxcbiAgYXV0b0ZvY3VzLFxuICBwcmVmaXgsXG4gIHN1ZmZpeEljb24gPSA8RG93bk91dGxpbmVkIC8+LFxuICBzdGF0dXMgPSBcImRlZmF1bHRcIixcbiAgZGlzYWJsZWQgPSBmYWxzZSxcbiAgZHJvcGRvd25Qcm9tcHQsXG4gIGxvYWRpbmcgPSBmYWxzZSxcbiAgZHJvcGRvd25DbGFzc05hbWUsXG4gIHN0eWxlcyxcbiAgZHJvcGRvd25NYXRjaFNlbGVjdFdpZHRoID0gdHJ1ZSxcbiAgcGxhY2VtZW50ID0gXCJib3R0b21MZWZ0XCIsXG4gIHZpcnR1YWwgPSB0cnVlLFxuICBlbXB0eUNvbnRlbnQgPSBcIlwiLFxuICBzaG93U2VhcmNoID0gbW9kZSA9PT0gXCJzaW5nbGVcIiA/IGZhbHNlIDogdHJ1ZSxcbiAgc2VhcmNoVmFsdWUsXG4gIG5vdEZvdW5kQ29udGVudCA9IFwiTm90IGZvdW5kXCIsXG4gIG9wdGlvbkxhYmVsUHJvcCA9IFwidGl0bGVcIixcbiAgZHJhd2VyID0gZmFsc2UsXG4gIGF1dG9DbGVhclNlYXJjaFZhbHVlID0gdHJ1ZSxcbiAgbWF4VGFnQ291bnQsXG4gIG1heFRhZ1RleHRMZW5ndGgsXG4gIG1heFRhZ1BsYWNlaG9sZGVyLFxuICBjdXJyZW50U2VsZWN0aW5nSW5kZXgsXG4gIGdldEN1cnJlbnRTZWxlY3RpbmdWYWx1ZSxcbiAgb25LZXlDb250cm9sLFxuICBnZXRPcHRpb25CeVZhbHVlLFxuICB2aXJ0dWFsaXplckVzdGltYXRlU2l6ZSxcbiAgZmlsdGVyT3B0aW9ucyxcbiAgZmlsdGVyU29ydCxcbiAgdmFsdWVzRmlsdGVyLFxuICBkcm9wZG93blJlbmRlcixcbiAgb3B0aW9uUmVuZGVyLFxuICBsYWJlbFJlbmRlcixcbiAgb25CbHVyLFxuICBvbkNoYW5nZSxcbiAgb25DbGVhcixcbiAgb25Ecm9wZG93blZpc2libGVDaGFuZ2UsXG4gIG9uRm9jdXMsXG4gIG9uSW5wdXRLZXlEb3duLFxuICBvblNlbGVjdCxcbiAgZ2V0UG9wdXBDb250YWluZXIgPSAoKSA9PiBkb2N1bWVudC5ib2R5LFxuICBvblNlYXJjaCxcbiAgdGFnUmVuZGVyLFxuICBvbkRlc2VsZWN0LFxuICByZW5kZXJEcm9wZG93bkl0ZW0sXG4gIG9uVGFnQ2xvc2UsXG59OiBQcm9wc1dpdGhDaGlsZHJlbjxCYXNlU2VsZWN0UHJvcHM8T3B0aW9uLCBPcHRpb25WYWx1ZT4+KSA9PiB7XG4gIGNvbnN0IHRoZW1lID0gdXNlVGhlbWUoKTtcbiAgY29uc3QgYmFzZVNlbGVjdENvbnRleHQgPSBjcmVhdGVCYXNlU2VsZWN0Q29udGV4dDxPcHRpb25WYWx1ZT4oKTtcblxuICBjb25zdCB7IGZpbHRlcmVkQW5kU29ydGVkT3B0aW9ucywgc2VhcmNoSW5wdXRWYWx1ZSwgc2VhcmNoSGFuZGxlLCBjbGVhclNlYXJjaFZhbHVlIH0gPSB1c2VTZWFyY2g8XG4gICAgT3B0aW9uLFxuICAgIE9wdGlvblZhbHVlXG4gID4oe1xuICAgIG9wdGlvbnMsXG4gICAgc2VhcmNoVmFsdWUsXG4gICAgb25TZWFyY2gsXG4gICAgZmlsdGVyU29ydCxcbiAgICBmaWx0ZXJPcHRpb25zLFxuICB9KTtcblxuICBjb25zdCB7IGN1cnJlbnRWYWx1ZSwgY2hhbmdlQ3VycmVudFZhbHVlLCByZW1vdmVWYWx1ZSwgY2xlYXJDdXJyZW50VmFsdWUgfSA9IHVzZUN1cnJlbnRWYWx1ZShcbiAgICBtb2RlLFxuICAgIGRlZmF1bHRWYWx1ZSxcbiAgICBkZWZhdWx0QWN0aXZlRmlyc3RPcHRpb24sXG4gICAgb3B0aW9ucyxcbiAgICBvbkRlc2VsZWN0XG4gICk7XG5cbiAgY29uc3QgW2lzU2VsZWN0T3Blbiwgc2V0SXNTZWxlY3RPcGVuXSA9IHVzZVN0YXRlKGRlZmF1bHRPcGVuKTtcbiAgY29uc3QgW2lzSG92ZXIsIHNldElzSG92ZXJdID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gIGNvbnN0IGlzSW5pdGlhbE1vdW50ID0gdXNlUmVmKHRydWUpO1xuICBjb25zdCBjb250cm9sUmVmID0gdXNlUmVmPEhUTUxTcGFuRWxlbWVudCB8IG51bGw+KG51bGwpO1xuICBjb25zdCBpbnB1dFJlZiA9IHVzZVJlZjxIVE1MSW5wdXRFbGVtZW50IHwgbnVsbD4obnVsbCk7XG5cbiAgY29uc3QgcmVmZXJlbmNlT2Zmc2V0V2lkdGggPSBjb250cm9sUmVmLmN1cnJlbnQ/Lm9mZnNldFdpZHRoO1xuXG4gIGNvbnN0IHsgcmVmcywgZmxvYXRpbmdTdHlsZXMgfSA9IHVzZUZsb2F0aW5nPEhUTUxTcGFuRWxlbWVudD4oe1xuICAgIHdoaWxlRWxlbWVudHNNb3VudGVkOiBhdXRvVXBkYXRlLFxuICAgIHBsYWNlbWVudDogY29udmVydFNlbGVjdFBsYWNlbWVudChwbGFjZW1lbnQpLFxuICAgIG1pZGRsZXdhcmU6IFtvZmZzZXQoNCksIGZsaXAoKV0sXG4gIH0pO1xuXG4gIGNvbnN0IHJldHVybkZvY3VzVG9XcmFwcGVyID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29udHJvbFJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgIH0pO1xuICB9LCBbXSk7XG5cbiAgY29uc3QgcmV0dXJuRm9jdXNUb0lucHV0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaW5wdXRSZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICB9KTtcbiAgfSwgW10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFpc0luaXRpYWxNb3VudC5jdXJyZW50KSB7XG4gICAgICBjb25zdCBvcHRpb25zID0gY3VycmVudFZhbHVlLnJlZHVjZSgoYWNjOiBPcHRpb25bXSwgdmFsdWUpID0+IHtcbiAgICAgICAgY29uc3Qgb3B0aW9uID0gZ2V0T3B0aW9uQnlWYWx1ZSh2YWx1ZSk7XG5cbiAgICAgICAgaWYgKGlzVW5kZWZpbmVkKG9wdGlvbikpIHtcbiAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFsuLi5hY2MsIG9wdGlvbl07XG4gICAgICB9LCBbXSk7XG5cbiAgICAgIG9uQ2hhbmdlPy4oY3VycmVudFZhbHVlLCBvcHRpb25zKTtcbiAgICB9XG4gIH0sIFtjdXJyZW50VmFsdWUsIGdldE9wdGlvbkJ5VmFsdWUsIG9uQ2hhbmdlXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaXNJbml0aWFsTW91bnQuY3VycmVudCkge1xuICAgICAgaXNJbml0aWFsTW91bnQuY3VycmVudCA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICBvbkRyb3Bkb3duVmlzaWJsZUNoYW5nZT8uKCk7XG4gICAgfVxuICB9LCBbaXNTZWxlY3RPcGVuLCBvbkRyb3Bkb3duVmlzaWJsZUNoYW5nZV0pO1xuXG4gIGNvbnN0IGFjdGl2ZVZhbHVlcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogaXNVbmRlZmluZWQodmFsdWUpID8gY3VycmVudFZhbHVlIDogW3ZhbHVlXTtcbiAgfSwgW2N1cnJlbnRWYWx1ZSwgdmFsdWVdKTtcblxuICBjb25zdCBzZWxlY3REZWZhdWx0U3R5bGUgPSBnZXRTZWxlY3REZWZhdWx0U3R5bGUoe1xuICAgIHN0YXR1cyxcbiAgICBkaXNhYmxlZCxcbiAgICB2YXJpYW50LFxuICAgIG11bHRpcGxlOiBtb2RlID09PSBcIm11bHRpcGxlXCIsXG4gICAgaXNIb3ZlcixcbiAgICBtYXhUYWdDb3VudCxcbiAgICB3aXRoUHJlZml4OiAhIXByZWZpeCxcbiAgICBpc0VtcHR5OiBhY3RpdmVWYWx1ZXMubGVuZ3RoID09PSAwLFxuICB9KTtcblxuICBjb25zdCBmaWx0ZXJlZEFjdGl2ZVZhbHVlcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiBpc0Z1bmN0aW9uKHZhbHVlc0ZpbHRlcikgPyB2YWx1ZXNGaWx0ZXIoYWN0aXZlVmFsdWVzKSA6IGFjdGl2ZVZhbHVlcztcbiAgfSwgW2FjdGl2ZVZhbHVlcywgdmFsdWVzRmlsdGVyXSk7XG5cbiAgY29uc3QgeyBjb250YWluZXJSZWYsIGlzSXRlbUhpZGRlbiB9ID0gdXNlSGlkZUVsZW1lbnRzKFxuICAgIGZpbHRlcmVkQWN0aXZlVmFsdWVzLFxuICAgIHRoZW1lLnNwYWNlWFMsXG4gICAgaW5wdXRSZWYsXG4gICAgbWF4VGFnQ291bnRcbiAgKTtcblxuICBjb25zdCBjdXJyZW50TGFiZWwgPSBnZXRMYWJlbDxPcHRpb24sIE9wdGlvblZhbHVlPihcbiAgICBmaWx0ZXJlZEFjdGl2ZVZhbHVlcyxcbiAgICBnZXRPcHRpb25CeVZhbHVlLFxuICAgIG9wdGlvbkxhYmVsUHJvcFxuICApO1xuXG4gIGNvbnN0IHdpdGhEcmF3ZXIgPSBtb2RlID09PSBcIm11bHRpcGxlXCIgJiYgZHJhd2VyO1xuICBjb25zdCB3aXRoQXV0b0NsZWFyID0gbW9kZSA9PT0gXCJzaW5nbGVcIiB8fCBhdXRvQ2xlYXJTZWFyY2hWYWx1ZTtcblxuICBjb25zdCBjbGlja0hhbmRsZSA9ICgpID0+IHtcbiAgICBpZiAoZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzZXRJc1NlbGVjdE9wZW4oKHByZXYpID0+ICFwcmV2KTtcbiAgfTtcblxuICBjb25zdCBjaGFuZ2VIYW5kbGUgPSB1c2VDYWxsYmFjayhcbiAgICAodmFsdWU6IE9wdGlvblZhbHVlIHwgT3B0aW9uVmFsdWVbXSkgPT4ge1xuICAgICAgY2hhbmdlQ3VycmVudFZhbHVlKHZhbHVlKTtcblxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgb3B0aW9uID0gZ2V0T3B0aW9uQnlWYWx1ZSh2YWx1ZSk7XG5cbiAgICAgIGlmICh3aXRoQXV0b0NsZWFyKSB7XG4gICAgICAgIGNsZWFyU2VhcmNoVmFsdWUoKTtcbiAgICAgIH1cblxuICAgICAgaWYgKG9wdGlvbikge1xuICAgICAgICBvblNlbGVjdD8uKHZhbHVlLCBvcHRpb24pO1xuICAgICAgfVxuICAgIH0sXG4gICAgW2NoYW5nZUN1cnJlbnRWYWx1ZSwgY2xlYXJTZWFyY2hWYWx1ZSwgZ2V0T3B0aW9uQnlWYWx1ZSwgb25TZWxlY3QsIHdpdGhBdXRvQ2xlYXJdXG4gICk7XG5cbiAgY29uc3QgY2xvc2VPcHRpb25MaXN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldElzU2VsZWN0T3BlbihmYWxzZSk7XG4gIH0sIFtdKTtcblxuICBjb25zdCBibHVySGFuZGxlID0gKGU6IEZvY3VzRXZlbnQpID0+IHtcbiAgICBjb25zdCBpc0ZvY3VzT25PcHRpb25MaXN0ID0gcmVmcy5mbG9hdGluZy5jdXJyZW50Py5jb250YWlucyhlLnJlbGF0ZWRUYXJnZXQpO1xuICAgIGNvbnN0IGlzRm9jdXNPblNlYXJjaElucHV0ID0gIWlzTnVsbChpbnB1dFJlZi5jdXJyZW50KSAmJiBlLnJlbGF0ZWRUYXJnZXQgPT09IGlucHV0UmVmLmN1cnJlbnQ7XG4gICAgY29uc3QgaXNGb2N1c09uQ29udHJvbCA9IGUucmVsYXRlZFRhcmdldCA9PT0gY29udHJvbFJlZi5jdXJyZW50O1xuXG4gICAgaWYgKGlzRm9jdXNPbk9wdGlvbkxpc3QgfHwgaXNGb2N1c09uU2VhcmNoSW5wdXQgfHwgaXNGb2N1c09uQ29udHJvbCkge1xuICAgICAgaWYgKHNob3dTZWFyY2gpIHtcbiAgICAgICAgcmV0dXJuRm9jdXNUb0lucHV0KCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm5Gb2N1c1RvV3JhcHBlcigpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgb25CbHVyPy4oZSk7XG4gICAgY2xlYXJTZWFyY2hWYWx1ZSgpO1xuICAgIGNsb3NlT3B0aW9uTGlzdCgpO1xuICB9O1xuXG4gIGNvbnN0IGNsZWFyU2VsZWN0ID0gdXNlQ2FsbGJhY2soXG4gICAgKGU6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgIGNsZWFyQ3VycmVudFZhbHVlKCk7XG4gICAgICBvbkNsZWFyPy4oKTtcbiAgICB9LFxuICAgIFtjbGVhckN1cnJlbnRWYWx1ZSwgb25DbGVhcl1cbiAgKTtcblxuICBjb25zdCBrZXlEb3duSGFuZGxlciA9IChlOiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgaWYgKGUua2V5ID09PSBcIkVudGVyXCIpIHtcbiAgICAgIGlmIChpc1NlbGVjdE9wZW4pIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBnZXRDdXJyZW50U2VsZWN0aW5nVmFsdWUoKTtcblxuICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGN1cnJlbnRWYWx1ZS5pbmNsdWRlcyh2YWx1ZSkpIHtcbiAgICAgICAgICByZW1vdmVWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY2hhbmdlQ3VycmVudFZhbHVlKHZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh3aXRoQXV0b0NsZWFyKSB7XG4gICAgICAgICAgY2xlYXJTZWFyY2hWYWx1ZSgpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNsaWNrSGFuZGxlKCk7XG4gICAgfVxuXG4gICAgc2V0SXNTZWxlY3RPcGVuKHRydWUpO1xuXG4gICAgb25LZXlDb250cm9sKGUpO1xuICAgIG9uSW5wdXRLZXlEb3duPy4oZSk7XG4gIH07XG5cbiAgY29uc3QgbW91c2VPdmVySGFuZGxlID0gKCkgPT4ge1xuICAgIHNldElzSG92ZXIodHJ1ZSk7XG4gIH07XG5cbiAgY29uc3QgbW91c2VPdXRIYW5kbGUgPSAoKSA9PiB7XG4gICAgc2V0SXNIb3ZlcihmYWxzZSk7XG4gIH07XG5cbiAgY29uc3QgZm9jdXNIYW5kbGUgPSAoZTogRm9jdXNFdmVudCkgPT4ge1xuICAgIG9uRm9jdXM/LihlKTtcblxuICAgIGlmICghc2hvd1NlYXJjaCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHJldHVybkZvY3VzVG9JbnB1dCgpO1xuICB9O1xuXG4gIGNvbnN0IHJlbmRlclRhZ1BsYWNlaG9sZGVyID0gKGhpZGRlbkVsZW1lbnRzQ291bnRlcjogbnVtYmVyKSA9PiB7XG4gICAgaWYgKGlzVW5kZWZpbmVkKG1heFRhZ1BsYWNlaG9sZGVyKSkge1xuICAgICAgcmV0dXJuIDxUYWdQbGFjZWhvbGRlciBoaWRkZW5FbGVtZW50c0NvdW50ZXI9e2hpZGRlbkVsZW1lbnRzQ291bnRlcn0gLz47XG4gICAgfVxuXG4gICAgaWYgKCFpc0Z1bmN0aW9uKG1heFRhZ1BsYWNlaG9sZGVyKSkge1xuICAgICAgcmV0dXJuIDxzcGFuIGRhdGEtZWxlbWVudD17dGFnUGxhY2Vob2xkZXJEYXRhRWxlbWVudH0+e21heFRhZ1BsYWNlaG9sZGVyfTwvc3Bhbj47XG4gICAgfVxuXG4gICAgY29uc3QgaGlkZGVuRWxlbWVudHMgPSBjdXJyZW50VmFsdWUucmVkdWNlKChhY2M6IE9wdGlvbltdLCB2YWx1ZSkgPT4ge1xuICAgICAgY29uc3QgaXNIaWRkZW4gPSBpc0l0ZW1IaWRkZW4uZ2V0KHZhbHVlKTtcbiAgICAgIGNvbnN0IG9wdGlvbiA9IGdldE9wdGlvbkJ5VmFsdWUodmFsdWUpO1xuXG4gICAgICBpZiAoIWlzSGlkZGVuIHx8IGlzVW5kZWZpbmVkKG9wdGlvbikpIHtcbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH1cblxuICAgICAgYWNjLnB1c2gob3B0aW9uKTtcblxuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCBbXSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPHNwYW4gZGF0YS1lbGVtZW50PXt0YWdQbGFjZWhvbGRlckRhdGFFbGVtZW50fT57bWF4VGFnUGxhY2Vob2xkZXIoaGlkZGVuRWxlbWVudHMpfTwvc3Bhbj5cbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IHJlbmRlckxhYmVsID0gKHZhbHVlczogT3B0aW9uVmFsdWVbXSwgY3VycmVudExhYmVsOiBzdHJpbmdbXSkgPT4ge1xuICAgIGNvbnN0IHZpc2libGVMYWJlbHMgPSBnZXRWaXNpYmxlTGFiZWxzKGN1cnJlbnRMYWJlbCwgbWF4VGFnQ291bnQpO1xuXG4gICAgY29uc3QgbGFiZWwgPSB2aXNpYmxlTGFiZWxzLm1hcCgobGFiZWwsIGluZGV4KSA9PiB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHZhbHVlc1tpbmRleF0gYXMgT3B0aW9uVmFsdWU7XG5cbiAgICAgIGlmIChpc0Z1bmN0aW9uKGxhYmVsUmVuZGVyKSkge1xuICAgICAgICByZXR1cm4gbGFiZWxSZW5kZXIoeyBsYWJlbCwgdmFsdWUgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChtb2RlID09PSBcInNpbmdsZVwiKSB7XG4gICAgICAgIHJldHVybiBsYWJlbDtcbiAgICAgIH1cblxuICAgICAgaWYgKGlzRnVuY3Rpb24odGFnUmVuZGVyKSkge1xuICAgICAgICByZXR1cm4gdGFnUmVuZGVyKGxhYmVsKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgaXNIaWRkZW4gPSAhIWlzSXRlbUhpZGRlbi5nZXQodmFsdWUpO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U2VsZWN0VGFnPE9wdGlvblZhbHVlPlxuICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICBsYWJlbD17bGFiZWx9XG4gICAgICAgICAgcmVtb3ZlVmFsdWU9e3JlbW92ZVZhbHVlfVxuICAgICAgICAgIG1heFRhZ1RleHRMZW5ndGg9e21heFRhZ1RleHRMZW5ndGh9XG4gICAgICAgICAgaXNCb3JkZXJsZXNzPXt2YXJpYW50ID09PSBcImJvcmRlcmxlc3NcIn1cbiAgICAgICAgICBpc0Vycm9yPXtzdGF0dXMgPT09IFwiZXJyb3JcIn1cbiAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgaXNIaWRkZW49e2lzSGlkZGVufVxuICAgICAgICAgIG9uVGFnQ2xvc2U9e29uVGFnQ2xvc2V9XG4gICAgICAgICAga2V5PXt2YWx1ZT8udG9TdHJpbmcoKX1cbiAgICAgICAgLz5cbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBoaWRkZW5FbGVtZW50c0NvdW50ZXIgPSBpc051bWJlcihtYXhUYWdDb3VudClcbiAgICAgID8gaXNJdGVtSGlkZGVuLnNpemUgLSBtYXhUYWdDb3VudFxuICAgICAgOiBBcnJheS5mcm9tKGlzSXRlbUhpZGRlbi52YWx1ZXMoKSkucmVkdWNlKChhY2MsIGlzSGlkZGVuKSA9PiAoaXNIaWRkZW4gPyBhY2MgKyAxIDogYWNjKSwgMCk7XG5cbiAgICBjb25zdCB3aXRoVGFnUGxhY2Vob2xkZXIgPVxuICAgICAgIWlzVW5kZWZpbmVkKG1heFRhZ0NvdW50KSAmJiBtb2RlID09PSBcIm11bHRpcGxlXCIgJiYgaGlkZGVuRWxlbWVudHNDb3VudGVyID4gMDtcblxuICAgIGlmIChsYWJlbC5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7bGFiZWx9XG4gICAgICAgIHt3aXRoVGFnUGxhY2Vob2xkZXIgJiYgcmVuZGVyVGFnUGxhY2Vob2xkZXIoaGlkZGVuRWxlbWVudHNDb3VudGVyKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgY29uc3QgcmVuZGVyU3VmZml4ID0gKCkgPT4ge1xuICAgIGlmICh3aXRoRHJhd2VyKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8QmFyc091dGxpbmVkXG4gICAgICAgICAgb25DbGljaz17Y2xpY2tIYW5kbGV9XG4gICAgICAgICAgY3NzPXtbc2VsZWN0RGVmYXVsdFN0eWxlLmRyYXdlckljb24odGhlbWUpLCBzdHlsZXM/LmRyYXdlckljb24/Lih0aGVtZSldfVxuICAgICAgICAvPlxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoc2hvd1NlYXJjaCAmJiBpc1NlbGVjdE9wZW4pIHtcbiAgICAgIHJldHVybiA8U2VhcmNoT3V0bGluZWQgLz47XG4gICAgfVxuXG4gICAgcmV0dXJuIHN1ZmZpeEljb247XG4gIH07XG5cbiAgY29uc3QgcmVuZGVyUGxhY2Vob2xkZXIgPSAoKSA9PiAoXG4gICAgPHNwYW4gY3NzPXtbc2VsZWN0RGVmYXVsdFN0eWxlLnBsYWNlaG9sZGVyKHRoZW1lKSwgc3R5bGVzPy5wbGFjZWhvbGRlcj8uKHRoZW1lKV19PlxuICAgICAge3BsYWNlaG9sZGVyfVxuICAgIDwvc3Bhbj5cbiAgKTtcblxuICBjb25zdCB3aXRoQ2xlYXJCdXR0b24gPSBhbGxvd0NsZWFyICYmICEhZmlsdGVyZWRBY3RpdmVWYWx1ZXMubGVuZ3RoO1xuXG4gIGNvbnN0IGlucHV0VmFsdWUgPVxuICAgIG1vZGUgPT09IFwibXVsdGlwbGVcIiB8fCBpc1NlbGVjdE9wZW5cbiAgICAgID8gKHNlYXJjaFZhbHVlID8/IHNlYXJjaElucHV0VmFsdWUpXG4gICAgICA6IGN1cnJlbnRMYWJlbFswXT8udG9TdHJpbmcoKTtcblxuICBjb25zdCBpc0VtcHR5ID0gZmlsdGVyZWRBY3RpdmVWYWx1ZXMubGVuZ3RoID09PSAwO1xuICBjb25zdCBzaW5nbGVNb2RQbGFjZWhvbGRlciA9IGN1cnJlbnRMYWJlbFswXSA/PyBwbGFjZWhvbGRlciA/PyBcIlwiO1xuICBjb25zdCBtdWx0aXBsZU1vZFBsYWNlaG9sZGVyID0gaXNFbXB0eSA/IHBsYWNlaG9sZGVyIDogdW5kZWZpbmVkO1xuXG4gIGNvbnN0IHNlYXJjaElucHV0UGxhY2Vob2xkZXIgPSBtb2RlID09PSBcInNpbmdsZVwiID8gc2luZ2xlTW9kUGxhY2Vob2xkZXIgOiBtdWx0aXBsZU1vZFBsYWNlaG9sZGVyO1xuXG4gIGNvbnN0IGxldHRlcnNOdW1iZXIgPSAoaW5wdXRWYWx1ZT8ubGVuZ3RoID8/IDApICsgMTtcblxuICBjb25zdCBoYXNJY29uUHJlZml4ID0gdHlwZW9mIHByZWZpeCA9PT0gXCJvYmplY3RcIjtcblxuICBjb25zdCBjb250ZXh0VmFsdWU6IEJhc2VTZWxlY3RDb250ZXh0U2hhcGU8T3B0aW9uVmFsdWU+ID0ge1xuICAgIGN1cnJlbnRWYWx1ZTogYWN0aXZlVmFsdWVzLFxuICAgIHNob3dPcHRpb25MaXN0OiBvcGVuID8/IGlzU2VsZWN0T3BlbixcbiAgICBzZXRWYWx1ZTogY2hhbmdlSGFuZGxlLFxuICAgIGNsb3NlT3B0aW9uTGlzdCxcbiAgICBkcm9wZG93bk1pbldpZHRoLFxuICAgIGRyb3Bkb3duTWF4SGVpZ2h0LFxuICAgIGRyb3Bkb3duUHJvbXB0LFxuICAgIGxvYWRpbmcsXG4gICAgZHJvcGRvd25DbGFzc05hbWUsXG4gICAgZHJvcGRvd25SZW5kZXIsXG4gICAgZHJvcGRvd25NYXRjaFNlbGVjdFdpZHRoLFxuICAgIHJlZmVyZW5jZU9mZnNldFdpZHRoLFxuICAgIGZsb2F0aW5nU3R5bGVzLFxuICAgIHNldEZsb2F0aW5nOiByZWZzLnNldEZsb2F0aW5nLFxuICAgIGZsb2F0aW5nUmVmOiByZWZzLmZsb2F0aW5nLFxuICAgIGdldFBvcHVwQ29udGFpbmVyLFxuICAgIHZpcnR1YWwsXG4gICAgY3VycmVudFNlbGVjdGluZ0luZGV4LFxuICAgIGVtcHR5Q29udGVudCxcbiAgICBub3RGb3VuZENvbnRlbnQsXG4gICAgc2VhcmNoVmFsdWU6IHNlYXJjaFZhbHVlID8/IHNlYXJjaElucHV0VmFsdWUsXG4gICAgc2hvd1NlYXJjaCxcbiAgICBtb2RlLFxuICAgIHJlbW92ZVZhbHVlLFxuICAgIGlzSXRlbUhpZGRlbixcbiAgICBnZXRDdXJyZW50U2VsZWN0aW5nVmFsdWUsXG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8YmFzZVNlbGVjdENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e2NvbnRleHRWYWx1ZX0+XG4gICAgICA8c3BhblxuICAgICAgICBjc3M9e1tzZWxlY3REZWZhdWx0U3R5bGUud3JhcHBlcih0aGVtZSksIHN0eWxlcz8ud3JhcHBlcj8uKHRoZW1lKV19XG4gICAgICAgIHRhYkluZGV4PXsxfVxuICAgICAgICBvbktleURvd249e2tleURvd25IYW5kbGVyfVxuICAgICAgICBvbk1vdXNlT3Zlcj17bW91c2VPdmVySGFuZGxlfVxuICAgICAgICBvbk1vdXNlT3V0PXttb3VzZU91dEhhbmRsZX1cbiAgICAgICAgb25Gb2N1cz17Zm9jdXNIYW5kbGV9XG4gICAgICAgIG9uQmx1cj17Ymx1ckhhbmRsZX1cbiAgICAgICAgYXV0b0ZvY3VzPXthdXRvRm9jdXN9XG4gICAgICAgIHJlZj17Y29udHJvbFJlZn1cbiAgICAgID5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBjc3M9e1tzZWxlY3REZWZhdWx0U3R5bGUuYm9keSh0aGVtZSksIHN0eWxlcz8uYm9keT8uKHRoZW1lKV19XG4gICAgICAgICAgb25DbGljaz17IXdpdGhEcmF3ZXIgPyBjbGlja0hhbmRsZSA6IHVuZGVmaW5lZH1cbiAgICAgICAgICByZWY9e3JlZnMuc2V0UmVmZXJlbmNlfVxuICAgICAgICA+XG4gICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGNzcz17W3NlbGVjdERlZmF1bHRTdHlsZS5wcmVmaXhBbmRDb250ZW50KHRoZW1lKSwgc3R5bGVzPy5wcmVmaXhBbmRDb250ZW50Py4odGhlbWUpXX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7cHJlZml4ICYmIChcbiAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICBjc3M9e1tzZWxlY3REZWZhdWx0U3R5bGUucHJlZml4KGhhc0ljb25QcmVmaXgpKHRoZW1lKSwgc3R5bGVzPy5wcmVmaXg/Lih0aGVtZSldfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3ByZWZpeH1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAge3Nob3dTZWFyY2ggPyAoXG4gICAgICAgICAgICAgIDxzcGFuIHJlZj17Y29udGFpbmVyUmVmfSBjc3M9e3NlbGVjdERlZmF1bHRTdHlsZS5jb250ZW50KHRoZW1lKX0+XG4gICAgICAgICAgICAgICAge21vZGUgPT09IFwibXVsdGlwbGVcIiAmJiByZW5kZXJMYWJlbChmaWx0ZXJlZEFjdGl2ZVZhbHVlcywgY3VycmVudExhYmVsKX1cbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgIGNzcz17c2VsZWN0RGVmYXVsdFN0eWxlLnNlYXJjaElucHV0KHRoZW1lKX1cbiAgICAgICAgICAgICAgICAgIHZhbHVlPXtpbnB1dFZhbHVlID8/IFwiXCJ9XG4gICAgICAgICAgICAgICAgICBvbkNoYW5nZT17c2VhcmNoSGFuZGxlfVxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e3NlYXJjaElucHV0UGxhY2Vob2xkZXI/LnRvU3RyaW5nKCl9XG4gICAgICAgICAgICAgICAgICByZWY9e2lucHV0UmVmfVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgc3R5bGU9e2dldFNlbGVjdFNlYXJjaElucHV0V2lkdGhTdHlsZShcbiAgICAgICAgICAgICAgICAgICAgbW9kZSA9PT0gXCJtdWx0aXBsZVwiLFxuICAgICAgICAgICAgICAgICAgICBpc0VtcHR5LFxuICAgICAgICAgICAgICAgICAgICBsZXR0ZXJzTnVtYmVyXG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgZGF0YS1lbGVtZW50PVwic2VhcmNoLWlucHV0XCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxuICAgICAgICAgICAgICAgIGNzcz17W3NlbGVjdERlZmF1bHRTdHlsZS5jb250ZW50KHRoZW1lKSwgc3R5bGVzPy5jb250ZW50Py4odGhlbWUpXX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtyZW5kZXJMYWJlbChmaWx0ZXJlZEFjdGl2ZVZhbHVlcywgY3VycmVudExhYmVsKSA/PyByZW5kZXJQbGFjZWhvbGRlcigpfVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgIHt3aXRoQ2xlYXJCdXR0b24gJiYgKFxuICAgICAgICAgICAgPENsb3NlQ2lyY2xlRmlsbGVkXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cImNsZWFuLWJ1dHRvblwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e2NsZWFyU2VsZWN0fVxuICAgICAgICAgICAgICBjc3M9e1tzZWxlY3REZWZhdWx0U3R5bGUuY2xlYW5JY29uKHRoZW1lKSwgc3R5bGVzPy5jbGVhbkljb24/Lih0aGVtZSldfVxuICAgICAgICAgICAgICBkYXRhLWVsZW1lbnQ9XCJjbGVhbi1idXR0b25cIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxzcGFuIGNzcz17W3NlbGVjdERlZmF1bHRTdHlsZS5zdWZmaXhJY29uKHRoZW1lKSwgc3R5bGVzPy5zdWZmaXhJY29uPy4odGhlbWUpXX0+XG4gICAgICAgICAgICB7cmVuZGVyU3VmZml4KCl9XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgPFNlbGVjdE9wdGlvbkxpc3Q8T3B0aW9uLCBPcHRpb25WYWx1ZT5cbiAgICAgICAgICBvcHRpb25zPXtmaWx0ZXJlZEFuZFNvcnRlZE9wdGlvbnN9XG4gICAgICAgICAgcmVuZGVyRHJvcGRvd25JdGVtPXtyZW5kZXJEcm9wZG93bkl0ZW19XG4gICAgICAgICAgb3B0aW9uUmVuZGVyPXtvcHRpb25SZW5kZXJ9XG4gICAgICAgICAgdmlydHVhbGl6ZXJFc3RpbWF0ZVNpemU9e3ZpcnR1YWxpemVyRXN0aW1hdGVTaXplfVxuICAgICAgICAgIHN0eWxlcz17c3R5bGVzPy5kcm9wZG93blN0eWxlfVxuICAgICAgICAvPlxuICAgICAgPC9zcGFuPlxuICAgIDwvYmFzZVNlbGVjdENvbnRleHQuUHJvdmlkZXI+XG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgQmFzZVNlbGVjdCA9IG1lbW8oQmFzZVNlbGVjdENvbXBvbmVudCkgYXMgdHlwZW9mIEJhc2VTZWxlY3RDb21wb25lbnQ7XG4iXX0= */"], "data-element": "clean-button" }),
352
+ /* @__PURE__ */ jsx("span", { css: [selectDefaultStyle.suffixIcon(theme), (_i = styles == null ? void 0 : styles.suffixIcon) == null ? void 0 : _i.call(styles, theme), process.env.NODE_ENV === "production" ? "" : ";label:BaseSelectComponent;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvZnJvbnRlbmQvbGlicy91aS1raXQvc3JjL2NvbXBvbmVudHMvQmFzZVNlbGVjdC9CYXNlU2VsZWN0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE2Z0JnQiIsImZpbGUiOiIvYnVpbGRzL2Zyb250ZW5kL2xpYnMvdWkta2l0L3NyYy9jb21wb25lbnRzL0Jhc2VTZWxlY3QvQmFzZVNlbGVjdC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB0eXBlIEZvY3VzRXZlbnQsXG4gIHR5cGUgS2V5Ym9hcmRFdmVudCxcbiAgbWVtbyxcbiAgdHlwZSBNb3VzZUV2ZW50LFxuICB0eXBlIFByb3BzV2l0aENoaWxkcmVuLFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VSZWYsXG4gIHVzZVN0YXRlLFxufSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGdldFNlbGVjdERlZmF1bHRTdHlsZSwgZ2V0U2VsZWN0U2VhcmNoSW5wdXRXaWR0aFN0eWxlIH0gZnJvbSBcIi4vQmFzZVNlbGVjdC5zdHlsZXNcIjtcbmltcG9ydCB7IHVzZVRoZW1lIH0gZnJvbSBcImhvb2tzL3VzZVRoZW1lXCI7XG5pbXBvcnQgeyBCYXJzT3V0bGluZWQsIENsb3NlQ2lyY2xlRmlsbGVkLCBEb3duT3V0bGluZWQsIFNlYXJjaE91dGxpbmVkIH0gZnJvbSBcIkBpbmZvbWF4aW11bS9pY29uc1wiO1xuaW1wb3J0IHsgaXNGdW5jdGlvbiwgaXNOdWxsLCBpc051bWJlciwgaXNVbmRlZmluZWQgfSBmcm9tIFwibG9kYXNoLWVzXCI7XG5pbXBvcnQgeyBhdXRvVXBkYXRlLCBmbGlwLCBvZmZzZXQsIHVzZUZsb2F0aW5nIH0gZnJvbSBcIkBmbG9hdGluZy11aS9yZWFjdFwiO1xuaW1wb3J0IHsgY29udmVydFNlbGVjdFBsYWNlbWVudCwgZ2V0TGFiZWwsIGdldFZpc2libGVMYWJlbHMgfSBmcm9tIFwiLi9CYXNlU2VsZWN0LnV0aWxzXCI7XG5pbXBvcnQgeyB1c2VTZWFyY2ggfSBmcm9tIFwiLi9ob29rcy91c2VTZWFyY2hcIjtcbmltcG9ydCB7IHVzZUN1cnJlbnRWYWx1ZSB9IGZyb20gXCIuL2hvb2tzL3VzZUN1cnJlbnRWYWx1ZVwiO1xuaW1wb3J0IHsgU2VsZWN0VGFnIH0gZnJvbSBcIi4vY29tcG9uZW50cy9TZWxlY3RUYWcvU2VsZWN0VGFnXCI7XG5pbXBvcnQgeyB1c2VIaWRlRWxlbWVudHMgfSBmcm9tIFwiLi9ob29rcy91c2VIaWRlRWxlbWVudHNcIjtcbmltcG9ydCB7XG4gIFRhZ1BsYWNlaG9sZGVyLFxuICB0YWdQbGFjZWhvbGRlckRhdGFFbGVtZW50LFxufSBmcm9tIFwiLi9jb21wb25lbnRzL1RhZ1BsYWNlaG9sZGVyL1RhZ1BsYWNlaG9sZGVyXCI7XG5pbXBvcnQgdHlwZSB7IEJhc2VTZWxlY3RPcHRpb25JbnRlcmZhY2UsIEJhc2VTZWxlY3RQcm9wcyB9IGZyb20gXCIuL0Jhc2VTZWxlY3QudHlwZXNcIjtcbmltcG9ydCB7IFNlbGVjdE9wdGlvbkxpc3QgfSBmcm9tIFwiLi9jb21wb25lbnRzL1NlbGVjdE9wdGlvbkxpc3QvU2VsZWN0T3B0aW9uTGlzdFwiO1xuaW1wb3J0IHsgY3JlYXRlQmFzZVNlbGVjdENvbnRleHQsIHR5cGUgQmFzZVNlbGVjdENvbnRleHRTaGFwZSB9IGZyb20gXCIuL2NvbnRleHRzL0Jhc2VTZWxlY3RDb250ZXh0XCI7XG5cbmNvbnN0IEJhc2VTZWxlY3RDb21wb25lbnQgPSA8T3B0aW9uIGV4dGVuZHMgQmFzZVNlbGVjdE9wdGlvbkludGVyZmFjZTxPcHRpb25WYWx1ZT4sIE9wdGlvblZhbHVlPih7XG4gIG9wdGlvbnMgPSBbXSxcbiAgbW9kZSA9IFwic2luZ2xlXCIsXG4gIHZhcmlhbnQgPSBcIm91dGxpbmVkXCIsXG4gIGRlZmF1bHRWYWx1ZSxcbiAgZGVmYXVsdE9wZW4gPSBmYWxzZSxcbiAgZGVmYXVsdEFjdGl2ZUZpcnN0T3B0aW9uLFxuICB2YWx1ZSxcbiAgb3BlbixcbiAgcGxhY2Vob2xkZXIsXG4gIGRyb3Bkb3duTWluV2lkdGggPSAxMjAsXG4gIGRyb3Bkb3duTWF4SGVpZ2h0ID0gNDE0LFxuICBhbGxvd0NsZWFyID0gZmFsc2UsXG4gIGF1dG9Gb2N1cyxcbiAgcHJlZml4LFxuICBzdWZmaXhJY29uID0gPERvd25PdXRsaW5lZCAvPixcbiAgc3RhdHVzID0gXCJkZWZhdWx0XCIsXG4gIGRpc2FibGVkID0gZmFsc2UsXG4gIGRyb3Bkb3duUHJvbXB0LFxuICBsb2FkaW5nID0gZmFsc2UsXG4gIGRyb3Bkb3duQ2xhc3NOYW1lLFxuICBzdHlsZXMsXG4gIGRyb3Bkb3duTWF0Y2hTZWxlY3RXaWR0aCA9IHRydWUsXG4gIHBsYWNlbWVudCA9IFwiYm90dG9tTGVmdFwiLFxuICB2aXJ0dWFsID0gdHJ1ZSxcbiAgZW1wdHlDb250ZW50ID0gXCJcIixcbiAgc2hvd1NlYXJjaCA9IG1vZGUgPT09IFwic2luZ2xlXCIgPyBmYWxzZSA6IHRydWUsXG4gIHNlYXJjaFZhbHVlLFxuICBub3RGb3VuZENvbnRlbnQgPSBcIk5vdCBmb3VuZFwiLFxuICBvcHRpb25MYWJlbFByb3AgPSBcInRpdGxlXCIsXG4gIGRyYXdlciA9IGZhbHNlLFxuICBhdXRvQ2xlYXJTZWFyY2hWYWx1ZSA9IHRydWUsXG4gIG1heFRhZ0NvdW50LFxuICBtYXhUYWdUZXh0TGVuZ3RoLFxuICBtYXhUYWdQbGFjZWhvbGRlcixcbiAgY3VycmVudFNlbGVjdGluZ0luZGV4LFxuICBnZXRDdXJyZW50U2VsZWN0aW5nVmFsdWUsXG4gIG9uS2V5Q29udHJvbCxcbiAgZ2V0T3B0aW9uQnlWYWx1ZSxcbiAgdmlydHVhbGl6ZXJFc3RpbWF0ZVNpemUsXG4gIGZpbHRlck9wdGlvbnMsXG4gIGZpbHRlclNvcnQsXG4gIHZhbHVlc0ZpbHRlcixcbiAgZHJvcGRvd25SZW5kZXIsXG4gIG9wdGlvblJlbmRlcixcbiAgbGFiZWxSZW5kZXIsXG4gIG9uQmx1cixcbiAgb25DaGFuZ2UsXG4gIG9uQ2xlYXIsXG4gIG9uRHJvcGRvd25WaXNpYmxlQ2hhbmdlLFxuICBvbkZvY3VzLFxuICBvbklucHV0S2V5RG93bixcbiAgb25TZWxlY3QsXG4gIGdldFBvcHVwQ29udGFpbmVyID0gKCkgPT4gZG9jdW1lbnQuYm9keSxcbiAgb25TZWFyY2gsXG4gIHRhZ1JlbmRlcixcbiAgb25EZXNlbGVjdCxcbiAgcmVuZGVyRHJvcGRvd25JdGVtLFxuICBvblRhZ0Nsb3NlLFxufTogUHJvcHNXaXRoQ2hpbGRyZW48QmFzZVNlbGVjdFByb3BzPE9wdGlvbiwgT3B0aW9uVmFsdWU+PikgPT4ge1xuICBjb25zdCB0aGVtZSA9IHVzZVRoZW1lKCk7XG4gIGNvbnN0IGJhc2VTZWxlY3RDb250ZXh0ID0gY3JlYXRlQmFzZVNlbGVjdENvbnRleHQ8T3B0aW9uVmFsdWU+KCk7XG5cbiAgY29uc3QgeyBmaWx0ZXJlZEFuZFNvcnRlZE9wdGlvbnMsIHNlYXJjaElucHV0VmFsdWUsIHNlYXJjaEhhbmRsZSwgY2xlYXJTZWFyY2hWYWx1ZSB9ID0gdXNlU2VhcmNoPFxuICAgIE9wdGlvbixcbiAgICBPcHRpb25WYWx1ZVxuICA+KHtcbiAgICBvcHRpb25zLFxuICAgIHNlYXJjaFZhbHVlLFxuICAgIG9uU2VhcmNoLFxuICAgIGZpbHRlclNvcnQsXG4gICAgZmlsdGVyT3B0aW9ucyxcbiAgfSk7XG5cbiAgY29uc3QgeyBjdXJyZW50VmFsdWUsIGNoYW5nZUN1cnJlbnRWYWx1ZSwgcmVtb3ZlVmFsdWUsIGNsZWFyQ3VycmVudFZhbHVlIH0gPSB1c2VDdXJyZW50VmFsdWUoXG4gICAgbW9kZSxcbiAgICBkZWZhdWx0VmFsdWUsXG4gICAgZGVmYXVsdEFjdGl2ZUZpcnN0T3B0aW9uLFxuICAgIG9wdGlvbnMsXG4gICAgb25EZXNlbGVjdFxuICApO1xuXG4gIGNvbnN0IFtpc1NlbGVjdE9wZW4sIHNldElzU2VsZWN0T3Blbl0gPSB1c2VTdGF0ZShkZWZhdWx0T3Blbik7XG4gIGNvbnN0IFtpc0hvdmVyLCBzZXRJc0hvdmVyXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICBjb25zdCBpc0luaXRpYWxNb3VudCA9IHVzZVJlZih0cnVlKTtcbiAgY29uc3QgY29udHJvbFJlZiA9IHVzZVJlZjxIVE1MU3BhbkVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgY29uc3QgaW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudCB8IG51bGw+KG51bGwpO1xuXG4gIGNvbnN0IHJlZmVyZW5jZU9mZnNldFdpZHRoID0gY29udHJvbFJlZi5jdXJyZW50Py5vZmZzZXRXaWR0aDtcblxuICBjb25zdCB7IHJlZnMsIGZsb2F0aW5nU3R5bGVzIH0gPSB1c2VGbG9hdGluZzxIVE1MU3BhbkVsZW1lbnQ+KHtcbiAgICB3aGlsZUVsZW1lbnRzTW91bnRlZDogYXV0b1VwZGF0ZSxcbiAgICBwbGFjZW1lbnQ6IGNvbnZlcnRTZWxlY3RQbGFjZW1lbnQocGxhY2VtZW50KSxcbiAgICBtaWRkbGV3YXJlOiBbb2Zmc2V0KDQpLCBmbGlwKCldLFxuICB9KTtcblxuICBjb25zdCByZXR1cm5Gb2N1c1RvV3JhcHBlciA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGNvbnRyb2xSZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICB9KTtcbiAgfSwgW10pO1xuXG4gIGNvbnN0IHJldHVybkZvY3VzVG9JbnB1dCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlucHV0UmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgfSk7XG4gIH0sIFtdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghaXNJbml0aWFsTW91bnQuY3VycmVudCkge1xuICAgICAgY29uc3Qgb3B0aW9ucyA9IGN1cnJlbnRWYWx1ZS5yZWR1Y2UoKGFjYzogT3B0aW9uW10sIHZhbHVlKSA9PiB7XG4gICAgICAgIGNvbnN0IG9wdGlvbiA9IGdldE9wdGlvbkJ5VmFsdWUodmFsdWUpO1xuXG4gICAgICAgIGlmIChpc1VuZGVmaW5lZChvcHRpb24pKSB7XG4gICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBbLi4uYWNjLCBvcHRpb25dO1xuICAgICAgfSwgW10pO1xuXG4gICAgICBvbkNoYW5nZT8uKGN1cnJlbnRWYWx1ZSwgb3B0aW9ucyk7XG4gICAgfVxuICB9LCBbY3VycmVudFZhbHVlLCBnZXRPcHRpb25CeVZhbHVlLCBvbkNoYW5nZV0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlzSW5pdGlhbE1vdW50LmN1cnJlbnQpIHtcbiAgICAgIGlzSW5pdGlhbE1vdW50LmN1cnJlbnQgPSBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgb25Ecm9wZG93blZpc2libGVDaGFuZ2U/LigpO1xuICAgIH1cbiAgfSwgW2lzU2VsZWN0T3Blbiwgb25Ecm9wZG93blZpc2libGVDaGFuZ2VdKTtcblxuICBjb25zdCBhY3RpdmVWYWx1ZXMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IGlzVW5kZWZpbmVkKHZhbHVlKSA/IGN1cnJlbnRWYWx1ZSA6IFt2YWx1ZV07XG4gIH0sIFtjdXJyZW50VmFsdWUsIHZhbHVlXSk7XG5cbiAgY29uc3Qgc2VsZWN0RGVmYXVsdFN0eWxlID0gZ2V0U2VsZWN0RGVmYXVsdFN0eWxlKHtcbiAgICBzdGF0dXMsXG4gICAgZGlzYWJsZWQsXG4gICAgdmFyaWFudCxcbiAgICBtdWx0aXBsZTogbW9kZSA9PT0gXCJtdWx0aXBsZVwiLFxuICAgIGlzSG92ZXIsXG4gICAgbWF4VGFnQ291bnQsXG4gICAgd2l0aFByZWZpeDogISFwcmVmaXgsXG4gICAgaXNFbXB0eTogYWN0aXZlVmFsdWVzLmxlbmd0aCA9PT0gMCxcbiAgfSk7XG5cbiAgY29uc3QgZmlsdGVyZWRBY3RpdmVWYWx1ZXMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4gaXNGdW5jdGlvbih2YWx1ZXNGaWx0ZXIpID8gdmFsdWVzRmlsdGVyKGFjdGl2ZVZhbHVlcykgOiBhY3RpdmVWYWx1ZXM7XG4gIH0sIFthY3RpdmVWYWx1ZXMsIHZhbHVlc0ZpbHRlcl0pO1xuXG4gIGNvbnN0IHsgY29udGFpbmVyUmVmLCBpc0l0ZW1IaWRkZW4gfSA9IHVzZUhpZGVFbGVtZW50cyhcbiAgICBmaWx0ZXJlZEFjdGl2ZVZhbHVlcyxcbiAgICB0aGVtZS5zcGFjZVhTLFxuICAgIGlucHV0UmVmLFxuICAgIG1heFRhZ0NvdW50XG4gICk7XG5cbiAgY29uc3QgY3VycmVudExhYmVsID0gZ2V0TGFiZWw8T3B0aW9uLCBPcHRpb25WYWx1ZT4oXG4gICAgZmlsdGVyZWRBY3RpdmVWYWx1ZXMsXG4gICAgZ2V0T3B0aW9uQnlWYWx1ZSxcbiAgICBvcHRpb25MYWJlbFByb3BcbiAgKTtcblxuICBjb25zdCB3aXRoRHJhd2VyID0gbW9kZSA9PT0gXCJtdWx0aXBsZVwiICYmIGRyYXdlcjtcbiAgY29uc3Qgd2l0aEF1dG9DbGVhciA9IG1vZGUgPT09IFwic2luZ2xlXCIgfHwgYXV0b0NsZWFyU2VhcmNoVmFsdWU7XG5cbiAgY29uc3QgY2xpY2tIYW5kbGUgPSAoKSA9PiB7XG4gICAgaWYgKGRpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc2V0SXNTZWxlY3RPcGVuKChwcmV2KSA9PiAhcHJldik7XG4gIH07XG5cbiAgY29uc3QgY2hhbmdlSGFuZGxlID0gdXNlQ2FsbGJhY2soXG4gICAgKHZhbHVlOiBPcHRpb25WYWx1ZSB8IE9wdGlvblZhbHVlW10pID0+IHtcbiAgICAgIGNoYW5nZUN1cnJlbnRWYWx1ZSh2YWx1ZSk7XG5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG9wdGlvbiA9IGdldE9wdGlvbkJ5VmFsdWUodmFsdWUpO1xuXG4gICAgICBpZiAod2l0aEF1dG9DbGVhcikge1xuICAgICAgICBjbGVhclNlYXJjaFZhbHVlKCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChvcHRpb24pIHtcbiAgICAgICAgb25TZWxlY3Q/Lih2YWx1ZSwgb3B0aW9uKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFtjaGFuZ2VDdXJyZW50VmFsdWUsIGNsZWFyU2VhcmNoVmFsdWUsIGdldE9wdGlvbkJ5VmFsdWUsIG9uU2VsZWN0LCB3aXRoQXV0b0NsZWFyXVxuICApO1xuXG4gIGNvbnN0IGNsb3NlT3B0aW9uTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZXRJc1NlbGVjdE9wZW4oZmFsc2UpO1xuICB9LCBbXSk7XG5cbiAgY29uc3QgYmx1ckhhbmRsZSA9IChlOiBGb2N1c0V2ZW50KSA9PiB7XG4gICAgY29uc3QgaXNGb2N1c09uT3B0aW9uTGlzdCA9IHJlZnMuZmxvYXRpbmcuY3VycmVudD8uY29udGFpbnMoZS5yZWxhdGVkVGFyZ2V0KTtcbiAgICBjb25zdCBpc0ZvY3VzT25TZWFyY2hJbnB1dCA9ICFpc051bGwoaW5wdXRSZWYuY3VycmVudCkgJiYgZS5yZWxhdGVkVGFyZ2V0ID09PSBpbnB1dFJlZi5jdXJyZW50O1xuICAgIGNvbnN0IGlzRm9jdXNPbkNvbnRyb2wgPSBlLnJlbGF0ZWRUYXJnZXQgPT09IGNvbnRyb2xSZWYuY3VycmVudDtcblxuICAgIGlmIChpc0ZvY3VzT25PcHRpb25MaXN0IHx8IGlzRm9jdXNPblNlYXJjaElucHV0IHx8IGlzRm9jdXNPbkNvbnRyb2wpIHtcbiAgICAgIGlmIChzaG93U2VhcmNoKSB7XG4gICAgICAgIHJldHVybkZvY3VzVG9JbnB1dCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuRm9jdXNUb1dyYXBwZXIoKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIG9uQmx1cj8uKGUpO1xuICAgIGNsZWFyU2VhcmNoVmFsdWUoKTtcbiAgICBjbG9zZU9wdGlvbkxpc3QoKTtcbiAgfTtcblxuICBjb25zdCBjbGVhclNlbGVjdCA9IHVzZUNhbGxiYWNrKFxuICAgIChlOiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICBjbGVhckN1cnJlbnRWYWx1ZSgpO1xuICAgICAgb25DbGVhcj8uKCk7XG4gICAgfSxcbiAgICBbY2xlYXJDdXJyZW50VmFsdWUsIG9uQ2xlYXJdXG4gICk7XG5cbiAgY29uc3Qga2V5RG93bkhhbmRsZXIgPSAoZTogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgIGlmIChlLmtleSA9PT0gXCJFbnRlclwiKSB7XG4gICAgICBpZiAoaXNTZWxlY3RPcGVuKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gZ2V0Q3VycmVudFNlbGVjdGluZ1ZhbHVlKCk7XG5cbiAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjdXJyZW50VmFsdWUuaW5jbHVkZXModmFsdWUpKSB7XG4gICAgICAgICAgcmVtb3ZlVmFsdWUodmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNoYW5nZUN1cnJlbnRWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAod2l0aEF1dG9DbGVhcikge1xuICAgICAgICAgIGNsZWFyU2VhcmNoVmFsdWUoKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjbGlja0hhbmRsZSgpO1xuICAgIH1cblxuICAgIHNldElzU2VsZWN0T3Blbih0cnVlKTtcblxuICAgIG9uS2V5Q29udHJvbChlKTtcbiAgICBvbklucHV0S2V5RG93bj8uKGUpO1xuICB9O1xuXG4gIGNvbnN0IG1vdXNlT3ZlckhhbmRsZSA9ICgpID0+IHtcbiAgICBzZXRJc0hvdmVyKHRydWUpO1xuICB9O1xuXG4gIGNvbnN0IG1vdXNlT3V0SGFuZGxlID0gKCkgPT4ge1xuICAgIHNldElzSG92ZXIoZmFsc2UpO1xuICB9O1xuXG4gIGNvbnN0IGZvY3VzSGFuZGxlID0gKGU6IEZvY3VzRXZlbnQpID0+IHtcbiAgICBvbkZvY3VzPy4oZSk7XG5cbiAgICBpZiAoIXNob3dTZWFyY2gpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICByZXR1cm5Gb2N1c1RvSW5wdXQoKTtcbiAgfTtcblxuICBjb25zdCByZW5kZXJUYWdQbGFjZWhvbGRlciA9IChoaWRkZW5FbGVtZW50c0NvdW50ZXI6IG51bWJlcikgPT4ge1xuICAgIGlmIChpc1VuZGVmaW5lZChtYXhUYWdQbGFjZWhvbGRlcikpIHtcbiAgICAgIHJldHVybiA8VGFnUGxhY2Vob2xkZXIgaGlkZGVuRWxlbWVudHNDb3VudGVyPXtoaWRkZW5FbGVtZW50c0NvdW50ZXJ9IC8+O1xuICAgIH1cblxuICAgIGlmICghaXNGdW5jdGlvbihtYXhUYWdQbGFjZWhvbGRlcikpIHtcbiAgICAgIHJldHVybiA8c3BhbiBkYXRhLWVsZW1lbnQ9e3RhZ1BsYWNlaG9sZGVyRGF0YUVsZW1lbnR9PnttYXhUYWdQbGFjZWhvbGRlcn08L3NwYW4+O1xuICAgIH1cblxuICAgIGNvbnN0IGhpZGRlbkVsZW1lbnRzID0gY3VycmVudFZhbHVlLnJlZHVjZSgoYWNjOiBPcHRpb25bXSwgdmFsdWUpID0+IHtcbiAgICAgIGNvbnN0IGlzSGlkZGVuID0gaXNJdGVtSGlkZGVuLmdldCh2YWx1ZSk7XG4gICAgICBjb25zdCBvcHRpb24gPSBnZXRPcHRpb25CeVZhbHVlKHZhbHVlKTtcblxuICAgICAgaWYgKCFpc0hpZGRlbiB8fCBpc1VuZGVmaW5lZChvcHRpb24pKSB7XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9XG5cbiAgICAgIGFjYy5wdXNoKG9wdGlvbik7XG5cbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwgW10pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxzcGFuIGRhdGEtZWxlbWVudD17dGFnUGxhY2Vob2xkZXJEYXRhRWxlbWVudH0+e21heFRhZ1BsYWNlaG9sZGVyKGhpZGRlbkVsZW1lbnRzKX08L3NwYW4+XG4gICAgKTtcbiAgfTtcblxuICBjb25zdCByZW5kZXJMYWJlbCA9ICh2YWx1ZXM6IE9wdGlvblZhbHVlW10sIGN1cnJlbnRMYWJlbDogc3RyaW5nW10pID0+IHtcbiAgICBjb25zdCB2aXNpYmxlTGFiZWxzID0gZ2V0VmlzaWJsZUxhYmVscyhjdXJyZW50TGFiZWwsIG1heFRhZ0NvdW50KTtcblxuICAgIGNvbnN0IGxhYmVsID0gdmlzaWJsZUxhYmVscy5tYXAoKGxhYmVsLCBpbmRleCkgPT4ge1xuICAgICAgY29uc3QgdmFsdWUgPSB2YWx1ZXNbaW5kZXhdIGFzIE9wdGlvblZhbHVlO1xuXG4gICAgICBpZiAoaXNGdW5jdGlvbihsYWJlbFJlbmRlcikpIHtcbiAgICAgICAgcmV0dXJuIGxhYmVsUmVuZGVyKHsgbGFiZWwsIHZhbHVlIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAobW9kZSA9PT0gXCJzaW5nbGVcIikge1xuICAgICAgICByZXR1cm4gbGFiZWw7XG4gICAgICB9XG5cbiAgICAgIGlmIChpc0Z1bmN0aW9uKHRhZ1JlbmRlcikpIHtcbiAgICAgICAgcmV0dXJuIHRhZ1JlbmRlcihsYWJlbCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGlzSGlkZGVuID0gISFpc0l0ZW1IaWRkZW4uZ2V0KHZhbHVlKTtcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFNlbGVjdFRhZzxPcHRpb25WYWx1ZT5cbiAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgbGFiZWw9e2xhYmVsfVxuICAgICAgICAgIHJlbW92ZVZhbHVlPXtyZW1vdmVWYWx1ZX1cbiAgICAgICAgICBtYXhUYWdUZXh0TGVuZ3RoPXttYXhUYWdUZXh0TGVuZ3RofVxuICAgICAgICAgIGlzQm9yZGVybGVzcz17dmFyaWFudCA9PT0gXCJib3JkZXJsZXNzXCJ9XG4gICAgICAgICAgaXNFcnJvcj17c3RhdHVzID09PSBcImVycm9yXCJ9XG4gICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgIGlzSGlkZGVuPXtpc0hpZGRlbn1cbiAgICAgICAgICBvblRhZ0Nsb3NlPXtvblRhZ0Nsb3NlfVxuICAgICAgICAgIGtleT17dmFsdWU/LnRvU3RyaW5nKCl9XG4gICAgICAgIC8+XG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgY29uc3QgaGlkZGVuRWxlbWVudHNDb3VudGVyID0gaXNOdW1iZXIobWF4VGFnQ291bnQpXG4gICAgICA/IGlzSXRlbUhpZGRlbi5zaXplIC0gbWF4VGFnQ291bnRcbiAgICAgIDogQXJyYXkuZnJvbShpc0l0ZW1IaWRkZW4udmFsdWVzKCkpLnJlZHVjZSgoYWNjLCBpc0hpZGRlbikgPT4gKGlzSGlkZGVuID8gYWNjICsgMSA6IGFjYyksIDApO1xuXG4gICAgY29uc3Qgd2l0aFRhZ1BsYWNlaG9sZGVyID1cbiAgICAgICFpc1VuZGVmaW5lZChtYXhUYWdDb3VudCkgJiYgbW9kZSA9PT0gXCJtdWx0aXBsZVwiICYmIGhpZGRlbkVsZW1lbnRzQ291bnRlciA+IDA7XG5cbiAgICBpZiAobGFiZWwubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAge2xhYmVsfVxuICAgICAgICB7d2l0aFRhZ1BsYWNlaG9sZGVyICYmIHJlbmRlclRhZ1BsYWNlaG9sZGVyKGhpZGRlbkVsZW1lbnRzQ291bnRlcil9XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IHJlbmRlclN1ZmZpeCA9ICgpID0+IHtcbiAgICBpZiAod2l0aERyYXdlcikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPEJhcnNPdXRsaW5lZFxuICAgICAgICAgIG9uQ2xpY2s9e2NsaWNrSGFuZGxlfVxuICAgICAgICAgIGNzcz17W3NlbGVjdERlZmF1bHRTdHlsZS5kcmF3ZXJJY29uKHRoZW1lKSwgc3R5bGVzPy5kcmF3ZXJJY29uPy4odGhlbWUpXX1cbiAgICAgICAgLz5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHNob3dTZWFyY2ggJiYgaXNTZWxlY3RPcGVuKSB7XG4gICAgICByZXR1cm4gPFNlYXJjaE91dGxpbmVkIC8+O1xuICAgIH1cblxuICAgIHJldHVybiBzdWZmaXhJY29uO1xuICB9O1xuXG4gIGNvbnN0IHJlbmRlclBsYWNlaG9sZGVyID0gKCkgPT4gKFxuICAgIDxzcGFuIGNzcz17W3NlbGVjdERlZmF1bHRTdHlsZS5wbGFjZWhvbGRlcih0aGVtZSksIHN0eWxlcz8ucGxhY2Vob2xkZXI/Lih0aGVtZSldfT5cbiAgICAgIHtwbGFjZWhvbGRlcn1cbiAgICA8L3NwYW4+XG4gICk7XG5cbiAgY29uc3Qgd2l0aENsZWFyQnV0dG9uID0gYWxsb3dDbGVhciAmJiAhIWZpbHRlcmVkQWN0aXZlVmFsdWVzLmxlbmd0aDtcblxuICBjb25zdCBpbnB1dFZhbHVlID1cbiAgICBtb2RlID09PSBcIm11bHRpcGxlXCIgfHwgaXNTZWxlY3RPcGVuXG4gICAgICA/IChzZWFyY2hWYWx1ZSA/PyBzZWFyY2hJbnB1dFZhbHVlKVxuICAgICAgOiBjdXJyZW50TGFiZWxbMF0/LnRvU3RyaW5nKCk7XG5cbiAgY29uc3QgaXNFbXB0eSA9IGZpbHRlcmVkQWN0aXZlVmFsdWVzLmxlbmd0aCA9PT0gMDtcbiAgY29uc3Qgc2luZ2xlTW9kUGxhY2Vob2xkZXIgPSBjdXJyZW50TGFiZWxbMF0gPz8gcGxhY2Vob2xkZXIgPz8gXCJcIjtcbiAgY29uc3QgbXVsdGlwbGVNb2RQbGFjZWhvbGRlciA9IGlzRW1wdHkgPyBwbGFjZWhvbGRlciA6IHVuZGVmaW5lZDtcblxuICBjb25zdCBzZWFyY2hJbnB1dFBsYWNlaG9sZGVyID0gbW9kZSA9PT0gXCJzaW5nbGVcIiA/IHNpbmdsZU1vZFBsYWNlaG9sZGVyIDogbXVsdGlwbGVNb2RQbGFjZWhvbGRlcjtcblxuICBjb25zdCBsZXR0ZXJzTnVtYmVyID0gKGlucHV0VmFsdWU/Lmxlbmd0aCA/PyAwKSArIDE7XG5cbiAgY29uc3QgaGFzSWNvblByZWZpeCA9IHR5cGVvZiBwcmVmaXggPT09IFwib2JqZWN0XCI7XG5cbiAgY29uc3QgY29udGV4dFZhbHVlOiBCYXNlU2VsZWN0Q29udGV4dFNoYXBlPE9wdGlvblZhbHVlPiA9IHtcbiAgICBjdXJyZW50VmFsdWU6IGFjdGl2ZVZhbHVlcyxcbiAgICBzaG93T3B0aW9uTGlzdDogb3BlbiA/PyBpc1NlbGVjdE9wZW4sXG4gICAgc2V0VmFsdWU6IGNoYW5nZUhhbmRsZSxcbiAgICBjbG9zZU9wdGlvbkxpc3QsXG4gICAgZHJvcGRvd25NaW5XaWR0aCxcbiAgICBkcm9wZG93bk1heEhlaWdodCxcbiAgICBkcm9wZG93blByb21wdCxcbiAgICBsb2FkaW5nLFxuICAgIGRyb3Bkb3duQ2xhc3NOYW1lLFxuICAgIGRyb3Bkb3duUmVuZGVyLFxuICAgIGRyb3Bkb3duTWF0Y2hTZWxlY3RXaWR0aCxcbiAgICByZWZlcmVuY2VPZmZzZXRXaWR0aCxcbiAgICBmbG9hdGluZ1N0eWxlcyxcbiAgICBzZXRGbG9hdGluZzogcmVmcy5zZXRGbG9hdGluZyxcbiAgICBmbG9hdGluZ1JlZjogcmVmcy5mbG9hdGluZyxcbiAgICBnZXRQb3B1cENvbnRhaW5lcixcbiAgICB2aXJ0dWFsLFxuICAgIGN1cnJlbnRTZWxlY3RpbmdJbmRleCxcbiAgICBlbXB0eUNvbnRlbnQsXG4gICAgbm90Rm91bmRDb250ZW50LFxuICAgIHNlYXJjaFZhbHVlOiBzZWFyY2hWYWx1ZSA/PyBzZWFyY2hJbnB1dFZhbHVlLFxuICAgIHNob3dTZWFyY2gsXG4gICAgbW9kZSxcbiAgICByZW1vdmVWYWx1ZSxcbiAgICBpc0l0ZW1IaWRkZW4sXG4gICAgZ2V0Q3VycmVudFNlbGVjdGluZ1ZhbHVlLFxuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPGJhc2VTZWxlY3RDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtjb250ZXh0VmFsdWV9PlxuICAgICAgPHNwYW5cbiAgICAgICAgY3NzPXtbc2VsZWN0RGVmYXVsdFN0eWxlLndyYXBwZXIodGhlbWUpLCBzdHlsZXM/LndyYXBwZXI/Lih0aGVtZSldfVxuICAgICAgICB0YWJJbmRleD17MX1cbiAgICAgICAgb25LZXlEb3duPXtrZXlEb3duSGFuZGxlcn1cbiAgICAgICAgb25Nb3VzZU92ZXI9e21vdXNlT3ZlckhhbmRsZX1cbiAgICAgICAgb25Nb3VzZU91dD17bW91c2VPdXRIYW5kbGV9XG4gICAgICAgIG9uRm9jdXM9e2ZvY3VzSGFuZGxlfVxuICAgICAgICBvbkJsdXI9e2JsdXJIYW5kbGV9XG4gICAgICAgIGF1dG9Gb2N1cz17YXV0b0ZvY3VzfVxuICAgICAgICByZWY9e2NvbnRyb2xSZWZ9XG4gICAgICA+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgY3NzPXtbc2VsZWN0RGVmYXVsdFN0eWxlLmJvZHkodGhlbWUpLCBzdHlsZXM/LmJvZHk/Lih0aGVtZSldfVxuICAgICAgICAgIG9uQ2xpY2s9eyF3aXRoRHJhd2VyID8gY2xpY2tIYW5kbGUgOiB1bmRlZmluZWR9XG4gICAgICAgICAgcmVmPXtyZWZzLnNldFJlZmVyZW5jZX1cbiAgICAgICAgPlxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICBjc3M9e1tzZWxlY3REZWZhdWx0U3R5bGUucHJlZml4QW5kQ29udGVudCh0aGVtZSksIHN0eWxlcz8ucHJlZml4QW5kQ29udGVudD8uKHRoZW1lKV19XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3ByZWZpeCAmJiAoXG4gICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgY3NzPXtbc2VsZWN0RGVmYXVsdFN0eWxlLnByZWZpeChoYXNJY29uUHJlZml4KSh0aGVtZSksIHN0eWxlcz8ucHJlZml4Py4odGhlbWUpXX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtwcmVmaXh9XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgIHtzaG93U2VhcmNoID8gKFxuICAgICAgICAgICAgICA8c3BhbiByZWY9e2NvbnRhaW5lclJlZn0gY3NzPXtzZWxlY3REZWZhdWx0U3R5bGUuY29udGVudCh0aGVtZSl9PlxuICAgICAgICAgICAgICAgIHttb2RlID09PSBcIm11bHRpcGxlXCIgJiYgcmVuZGVyTGFiZWwoZmlsdGVyZWRBY3RpdmVWYWx1ZXMsIGN1cnJlbnRMYWJlbCl9XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICBjc3M9e3NlbGVjdERlZmF1bHRTdHlsZS5zZWFyY2hJbnB1dCh0aGVtZSl9XG4gICAgICAgICAgICAgICAgICB2YWx1ZT17aW5wdXRWYWx1ZSA/PyBcIlwifVxuICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e3NlYXJjaEhhbmRsZX1cbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtzZWFyY2hJbnB1dFBsYWNlaG9sZGVyPy50b1N0cmluZygpfVxuICAgICAgICAgICAgICAgICAgcmVmPXtpbnB1dFJlZn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHN0eWxlPXtnZXRTZWxlY3RTZWFyY2hJbnB1dFdpZHRoU3R5bGUoXG4gICAgICAgICAgICAgICAgICAgIG1vZGUgPT09IFwibXVsdGlwbGVcIixcbiAgICAgICAgICAgICAgICAgICAgaXNFbXB0eSxcbiAgICAgICAgICAgICAgICAgICAgbGV0dGVyc051bWJlclxuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgIGRhdGEtZWxlbWVudD1cInNlYXJjaC1pbnB1dFwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICByZWY9e2NvbnRhaW5lclJlZn1cbiAgICAgICAgICAgICAgICBjc3M9e1tzZWxlY3REZWZhdWx0U3R5bGUuY29udGVudCh0aGVtZSksIHN0eWxlcz8uY29udGVudD8uKHRoZW1lKV19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7cmVuZGVyTGFiZWwoZmlsdGVyZWRBY3RpdmVWYWx1ZXMsIGN1cnJlbnRMYWJlbCkgPz8gcmVuZGVyUGxhY2Vob2xkZXIoKX1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICB7d2l0aENsZWFyQnV0dG9uICYmIChcbiAgICAgICAgICAgIDxDbG9zZUNpcmNsZUZpbGxlZFxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJjbGVhbi1idXR0b25cIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtjbGVhclNlbGVjdH1cbiAgICAgICAgICAgICAgY3NzPXtbc2VsZWN0RGVmYXVsdFN0eWxlLmNsZWFuSWNvbih0aGVtZSksIHN0eWxlcz8uY2xlYW5JY29uPy4odGhlbWUpXX1cbiAgICAgICAgICAgICAgZGF0YS1lbGVtZW50PVwiY2xlYW4tYnV0dG9uXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgICA8c3BhbiBjc3M9e1tzZWxlY3REZWZhdWx0U3R5bGUuc3VmZml4SWNvbih0aGVtZSksIHN0eWxlcz8uc3VmZml4SWNvbj8uKHRoZW1lKV19PlxuICAgICAgICAgICAge3JlbmRlclN1ZmZpeCgpfVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgIDxTZWxlY3RPcHRpb25MaXN0PE9wdGlvbiwgT3B0aW9uVmFsdWU+XG4gICAgICAgICAgb3B0aW9ucz17ZmlsdGVyZWRBbmRTb3J0ZWRPcHRpb25zfVxuICAgICAgICAgIHJlbmRlckRyb3Bkb3duSXRlbT17cmVuZGVyRHJvcGRvd25JdGVtfVxuICAgICAgICAgIG9wdGlvblJlbmRlcj17b3B0aW9uUmVuZGVyfVxuICAgICAgICAgIHZpcnR1YWxpemVyRXN0aW1hdGVTaXplPXt2aXJ0dWFsaXplckVzdGltYXRlU2l6ZX1cbiAgICAgICAgICBzdHlsZXM9e3N0eWxlcz8uZHJvcGRvd25TdHlsZX1cbiAgICAgICAgLz5cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Jhc2VTZWxlY3RDb250ZXh0LlByb3ZpZGVyPlxuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IEJhc2VTZWxlY3QgPSBtZW1vKEJhc2VTZWxlY3RDb21wb25lbnQpIGFzIHR5cGVvZiBCYXNlU2VsZWN0Q29tcG9uZW50O1xuIl19 */"], children: renderSuffix() })
353
+ ] }),
354
+ /* @__PURE__ */ jsx(SelectOptionList, { options: filteredAndSortedOptions, renderDropdownItem, optionRender, virtualizerEstimateSize, styles: styles == null ? void 0 : styles.dropdownStyle })
355
+ ] }) });
356
+ };
357
+ const BaseSelect = memo(BaseSelectComponent);
358
+ export {
359
+ BaseSelect
360
+ };