@merchi/product-form 1.19.43 → 1.19.44

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.
@@ -1,5 +1,9 @@
1
1
  'use client';
2
2
 
3
+ function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
4
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
5
+ function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
6
+ function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
3
7
  function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
4
8
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
5
9
  function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
@@ -13,16 +17,61 @@ import VariationLabel from './VariationLabel';
13
17
  import { VariationSelectColour } from './VariationSelectElements';
14
18
  import { useMerchiFormContext } from '../context/MerchiProductFormProvider';
15
19
  import { quoteAfterFieldChange } from './quoteAfterFieldChange';
16
- import { pantoneByCode, searchPantoneColours } from '../utils/pantoneColours';
17
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
18
- export function VariationPantoneSelect(_ref) {
19
- var _variation$variationF;
20
+ import { sortByPosition, splitSelectedOptions } from './utils';
21
+ import { PANTONE_COLOURS, pantoneByCode, searchPantoneColours } from '../utils/pantoneColours';
22
+ import { PantoneColourBrowser } from './PantoneColourBrowser';
23
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
24
+ var LIBRARY_SWATCHES = PANTONE_COLOURS.map(function (colour) {
25
+ return {
26
+ key: colour.code,
27
+ code: colour.code,
28
+ hex: colour.hex,
29
+ book: colour.book
30
+ };
31
+ });
32
+ function isCheckedFlag(value) {
33
+ return typeof value === 'boolean' ? value : value === 'true';
34
+ }
35
+ function allowsMultiple(variation) {
36
+ var field = (variation === null || variation === void 0 ? void 0 : variation.variationField) || {};
37
+ return isCheckedFlag(field.multipleSelect) || isCheckedFlag(field.sellerProductEditable);
38
+ }
39
+ function ViewAllColoursButton(_ref) {
20
40
  var disabled = _ref.disabled,
21
- name = _ref.name,
22
- variation = _ref.variation;
41
+ onClick = _ref.onClick;
42
+ return /*#__PURE__*/_jsx("button", {
43
+ type: "button",
44
+ className: "merchi-pantone-view-all",
45
+ disabled: disabled,
46
+ onClick: onClick,
47
+ children: "View all colours"
48
+ });
49
+ }
50
+ function optionSwatches(variation) {
51
+ return sortByPosition((variation === null || variation === void 0 ? void 0 : variation.selectableOptions) || []).map(function (option) {
52
+ var _option$optionId;
53
+ var id = (_option$optionId = option === null || option === void 0 ? void 0 : option.optionId) !== null && _option$optionId !== void 0 ? _option$optionId : option === null || option === void 0 ? void 0 : option.id;
54
+ if (id == null || id === '') return null;
55
+ var code = String(option.value || '');
56
+ var known = pantoneByCode(code);
57
+ var unavailable = (option === null || option === void 0 ? void 0 : option.isVisible) === false || (option === null || option === void 0 ? void 0 : option.available) === false && (option === null || option === void 0 ? void 0 : option.isVisible) !== false;
58
+ return {
59
+ key: String(id),
60
+ code: (known === null || known === void 0 ? void 0 : known.code) || code || 'Colour',
61
+ hex: (known === null || known === void 0 ? void 0 : known.hex) || (option === null || option === void 0 ? void 0 : option.colour) || '#cccccc',
62
+ book: known === null || known === void 0 ? void 0 : known.book,
63
+ disabled: unavailable
64
+ };
65
+ }).filter(Boolean);
66
+ }
67
+ export function VariationPantoneSelect(_ref2) {
68
+ var _variation$variationF;
69
+ var disabled = _ref2.disabled,
70
+ name = _ref2.name,
71
+ variation = _ref2.variation;
23
72
  var allowAll = Boolean(variation === null || variation === void 0 || (_variation$variationF = variation.variationField) === null || _variation$variationF === void 0 ? void 0 : _variation$variationF.allowAllPantones);
24
73
  if (!allowAll) {
25
- return /*#__PURE__*/_jsx(VariationSelectColour, {
74
+ return /*#__PURE__*/_jsx(PantoneLimitedSelect, {
26
75
  disabled: disabled,
27
76
  name: name,
28
77
  variation: variation
@@ -34,13 +83,11 @@ export function VariationPantoneSelect(_ref) {
34
83
  variation: variation
35
84
  });
36
85
  }
37
- function PantoneLibrarySelect(_ref2) {
38
- var _variation$variationF2;
39
- var disabled = _ref2.disabled,
40
- name = _ref2.name,
41
- variation = _ref2.variation;
86
+ function PantoneLimitedSelect(_ref3) {
87
+ var disabled = _ref3.disabled,
88
+ name = _ref3.name,
89
+ variation = _ref3.variation;
42
90
  var _useMerchiFormContext = useMerchiFormContext(),
43
- classNameInput = _useMerchiFormContext.classNameInput,
44
91
  control = _useMerchiFormContext.control,
45
92
  getQuote = _useMerchiFormContext.getQuote;
46
93
  var _useController = useController({
@@ -50,21 +97,86 @@ function PantoneLibrarySelect(_ref2) {
50
97
  field = _useController.field;
51
98
  var _React$useState = React.useState(false),
52
99
  _React$useState2 = _slicedToArray(_React$useState, 2),
53
- open = _React$useState2[0],
54
- setOpen = _React$useState2[1];
55
- var _React$useState3 = React.useState(''),
100
+ browserOpen = _React$useState2[0],
101
+ setBrowserOpen = _React$useState2[1];
102
+ var swatches = React.useMemo(function () {
103
+ return optionSwatches(variation);
104
+ }, [variation]);
105
+ var multiple = allowsMultiple(variation);
106
+ var selectedKeys = splitSelectedOptions(field.value).map(String).filter(Boolean);
107
+ var choose = function choose(optionId) {
108
+ var updatedIds = _toConsumableArray(selectedKeys);
109
+ if (multiple) {
110
+ updatedIds = updatedIds.includes(optionId) ? updatedIds.filter(function (existingId) {
111
+ return existingId !== optionId;
112
+ }) : [].concat(_toConsumableArray(updatedIds), [optionId]);
113
+ } else {
114
+ updatedIds = [optionId];
115
+ }
116
+ quoteAfterFieldChange(field.onChange, getQuote, updatedIds.filter(Boolean).join(','));
117
+ if (!multiple) setBrowserOpen(false);
118
+ };
119
+ return /*#__PURE__*/_jsx(VariationSelectColour, {
120
+ disabled: disabled,
121
+ name: name,
122
+ variation: variation,
123
+ afterOptions: /*#__PURE__*/_jsxs(_Fragment, {
124
+ children: [/*#__PURE__*/_jsx(ViewAllColoursButton, {
125
+ disabled: disabled,
126
+ onClick: function onClick() {
127
+ return setBrowserOpen(true);
128
+ }
129
+ }), /*#__PURE__*/_jsx(PantoneColourBrowser, {
130
+ open: browserOpen,
131
+ title: "Pantone colours",
132
+ description: "These are the Pantone colours available for this option. Swatches are screen approximations.",
133
+ swatches: swatches,
134
+ selectedKeys: selectedKeys,
135
+ onClose: function onClose() {
136
+ return setBrowserOpen(false);
137
+ },
138
+ onSelect: function onSelect(swatch) {
139
+ if (!swatch.disabled) choose(swatch.key);
140
+ }
141
+ })]
142
+ })
143
+ });
144
+ }
145
+ function PantoneLibrarySelect(_ref4) {
146
+ var _variation$variationF2;
147
+ var disabled = _ref4.disabled,
148
+ name = _ref4.name,
149
+ variation = _ref4.variation;
150
+ var _useMerchiFormContext2 = useMerchiFormContext(),
151
+ classNameInput = _useMerchiFormContext2.classNameInput,
152
+ control = _useMerchiFormContext2.control,
153
+ getQuote = _useMerchiFormContext2.getQuote;
154
+ var _useController2 = useController({
155
+ name: "".concat(name, ".value"),
156
+ control: control
157
+ }),
158
+ field = _useController2.field;
159
+ var _React$useState3 = React.useState(false),
56
160
  _React$useState4 = _slicedToArray(_React$useState3, 2),
57
- query = _React$useState4[0],
58
- setQuery = _React$useState4[1];
59
- var _React$useState5 = React.useState(0),
161
+ open = _React$useState4[0],
162
+ setOpen = _React$useState4[1];
163
+ var _React$useState5 = React.useState(false),
60
164
  _React$useState6 = _slicedToArray(_React$useState5, 2),
61
- activeIndex = _React$useState6[0],
62
- setActiveIndex = _React$useState6[1];
165
+ browserOpen = _React$useState6[0],
166
+ setBrowserOpen = _React$useState6[1];
167
+ var _React$useState7 = React.useState(''),
168
+ _React$useState8 = _slicedToArray(_React$useState7, 2),
169
+ query = _React$useState8[0],
170
+ setQuery = _React$useState8[1];
171
+ var _React$useState9 = React.useState(0),
172
+ _React$useState0 = _slicedToArray(_React$useState9, 2),
173
+ activeIndex = _React$useState0[0],
174
+ setActiveIndex = _React$useState0[1];
63
175
  var rootRef = React.useRef(null);
64
176
  var listId = React.useId();
65
177
  var selected = pantoneByCode(field.value);
66
178
  var matches = searchPantoneColours(query, 20);
67
- var showList = open && query.trim().length > 0;
179
+ var showList = open && query.trim().length > 0 && !browserOpen;
68
180
  React.useEffect(function () {
69
181
  setActiveIndex(0);
70
182
  }, [query]);
@@ -79,7 +191,9 @@ function PantoneLibrarySelect(_ref2) {
79
191
  if (!open) return;
80
192
  var onPointerDown = function onPointerDown(event) {
81
193
  var _rootRef$current;
82
- if (!((_rootRef$current = rootRef.current) !== null && _rootRef$current !== void 0 && _rootRef$current.contains(event.target))) {
194
+ var target = event.target;
195
+ if (target !== null && target !== void 0 && target.closest('.merchi-pantone-browser')) return;
196
+ if (!((_rootRef$current = rootRef.current) !== null && _rootRef$current !== void 0 && _rootRef$current.contains(target))) {
83
197
  setOpen(false);
84
198
  setQuery('');
85
199
  }
@@ -93,6 +207,7 @@ function PantoneLibrarySelect(_ref2) {
93
207
  quoteAfterFieldChange(field.onChange, getQuote, code);
94
208
  setQuery('');
95
209
  setOpen(false);
210
+ setBrowserOpen(false);
96
211
  };
97
212
  var onKeyDown = function onKeyDown(event) {
98
213
  if (event.key === 'ArrowDown') {
@@ -236,9 +351,29 @@ function PantoneLibrarySelect(_ref2) {
236
351
  }, colour.code);
237
352
  })
238
353
  })]
354
+ }), /*#__PURE__*/_jsx(ViewAllColoursButton, {
355
+ disabled: disabled,
356
+ onClick: function onClick() {
357
+ setOpen(false);
358
+ setQuery('');
359
+ setBrowserOpen(true);
360
+ }
361
+ }), /*#__PURE__*/_jsx(PantoneColourBrowser, {
362
+ open: browserOpen,
363
+ title: "All Pantone colours",
364
+ description: "Scroll the library or search for a code. Swatches are screen approximations.",
365
+ swatches: LIBRARY_SWATCHES,
366
+ selectedKeys: selected ? [selected.code] : [],
367
+ showBooks: true,
368
+ onClose: function onClose() {
369
+ return setBrowserOpen(false);
370
+ },
371
+ onSelect: function onSelect(swatch) {
372
+ return choose(swatch.code);
373
+ }
239
374
  }), /*#__PURE__*/_jsx(VariationError, {
240
375
  name: name
241
376
  })]
242
377
  });
243
378
  }
244
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfc2xpY2VkVG9BcnJheSIsInIiLCJlIiwiX2FycmF5V2l0aEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheUxpbWl0IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlUmVzdCIsIlR5cGVFcnJvciIsImEiLCJfYXJyYXlMaWtlVG9BcnJheSIsInQiLCJ0b1N0cmluZyIsImNhbGwiLCJzbGljZSIsImNvbnN0cnVjdG9yIiwibmFtZSIsIkFycmF5IiwiZnJvbSIsInRlc3QiLCJsZW5ndGgiLCJuIiwibCIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiaSIsInUiLCJmIiwibyIsIm5leHQiLCJPYmplY3QiLCJkb25lIiwicHVzaCIsInZhbHVlIiwiaXNBcnJheSIsIlJlYWN0IiwidXNlQ29udHJvbGxlciIsIlZhcmlhdGlvbkVycm9yIiwiVmFyaWF0aW9uTGFiZWwiLCJWYXJpYXRpb25TZWxlY3RDb2xvdXIiLCJ1c2VNZXJjaGlGb3JtQ29udGV4dCIsInF1b3RlQWZ0ZXJGaWVsZENoYW5nZSIsInBhbnRvbmVCeUNvZGUiLCJzZWFyY2hQYW50b25lQ29sb3VycyIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJWYXJpYXRpb25QYW50b25lU2VsZWN0IiwiX3JlZiIsIl92YXJpYXRpb24kdmFyaWF0aW9uRiIsImRpc2FibGVkIiwidmFyaWF0aW9uIiwiYWxsb3dBbGwiLCJCb29sZWFuIiwidmFyaWF0aW9uRmllbGQiLCJhbGxvd0FsbFBhbnRvbmVzIiwiUGFudG9uZUxpYnJhcnlTZWxlY3QiLCJfcmVmMiIsIl92YXJpYXRpb24kdmFyaWF0aW9uRjIiLCJfdXNlTWVyY2hpRm9ybUNvbnRleHQiLCJjbGFzc05hbWVJbnB1dCIsImNvbnRyb2wiLCJnZXRRdW90ZSIsIl91c2VDb250cm9sbGVyIiwiY29uY2F0IiwiZmllbGQiLCJfUmVhY3QkdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl9SZWFjdCR1c2VTdGF0ZTIiLCJvcGVuIiwic2V0T3BlbiIsIl9SZWFjdCR1c2VTdGF0ZTMiLCJfUmVhY3QkdXNlU3RhdGU0IiwicXVlcnkiLCJzZXRRdWVyeSIsIl9SZWFjdCR1c2VTdGF0ZTUiLCJfUmVhY3QkdXNlU3RhdGU2IiwiYWN0aXZlSW5kZXgiLCJzZXRBY3RpdmVJbmRleCIsInJvb3RSZWYiLCJ1c2VSZWYiLCJsaXN0SWQiLCJ1c2VJZCIsInNlbGVjdGVkIiwibWF0Y2hlcyIsInNob3dMaXN0IiwidHJpbSIsInVzZUVmZmVjdCIsIl9kb2N1bWVudCRnZXRFbGVtZW50QiIsImRvY3VtZW50IiwiZ2V0RWxlbWVudEJ5SWQiLCJzY3JvbGxJbnRvVmlldyIsImJsb2NrIiwib25Qb2ludGVyRG93biIsImV2ZW50IiwiX3Jvb3RSZWYkY3VycmVudCIsImN1cnJlbnQiLCJjb250YWlucyIsInRhcmdldCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiY2hvb3NlIiwiY29kZSIsIm9uQ2hhbmdlIiwib25LZXlEb3duIiwia2V5IiwicHJldmVudERlZmF1bHQiLCJpbmRleCIsIk1hdGgiLCJtaW4iLCJtYXgiLCJyZWYiLCJjaGlsZHJlbiIsInZhcmlhdGlvbkNsYXNzTmFtZSIsInN0eWxlIiwicG9zaXRpb24iLCJsZWZ0IiwidG9wIiwid2lkdGgiLCJoZWlnaHQiLCJtYXJnaW5Ub3AiLCJib3JkZXJSYWRpdXMiLCJib3JkZXIiLCJiYWNrZ3JvdW5kIiwiaGV4IiwicG9pbnRlckV2ZW50cyIsInJvbGUiLCJ1bmRlZmluZWQiLCJjbGFzc05hbWUiLCJwbGFjZWhvbGRlciIsInBhZGRpbmdMZWZ0IiwicGFkZGluZ1JpZ2h0IiwidHlwZSIsImF1dG9Db21wbGV0ZSIsIm9uRm9jdXMiLCJyaWdodCIsImJvcmRlckxlZnQiLCJib3JkZXJSaWdodCIsImJvcmRlclRvcCIsIm9wYWNpdHkiLCJpZCIsInpJbmRleCIsIm1heEhlaWdodCIsIm1hcmdpbiIsInBhZGRpbmciLCJvdmVyZmxvd1kiLCJsaXN0U3R5bGUiLCJib3hTaGFkb3ciLCJjb2xvciIsIm1hcCIsImNvbG91ciIsIm9uTW91c2VEb3duIiwib25Nb3VzZUVudGVyIiwiZGlzcGxheSIsImFsaWduSXRlbXMiLCJnYXAiLCJjdXJzb3IiLCJmbGV4Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbXBvbmVudHMvVmFyaWF0aW9uUGFudG9uZVNlbGVjdC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlQ29udHJvbGxlciB9IGZyb20gJ3JlYWN0LWhvb2stZm9ybSc7XG5pbXBvcnQgVmFyaWF0aW9uRXJyb3IgZnJvbSAnLi9WYXJpYXRpb25FcnJvcic7XG5pbXBvcnQgVmFyaWF0aW9uTGFiZWwgZnJvbSAnLi9WYXJpYXRpb25MYWJlbCc7XG5pbXBvcnQgeyBWYXJpYXRpb25TZWxlY3RDb2xvdXIgfSBmcm9tICcuL1ZhcmlhdGlvblNlbGVjdEVsZW1lbnRzJztcbmltcG9ydCB7IHVzZU1lcmNoaUZvcm1Db250ZXh0IH0gZnJvbSAnLi4vY29udGV4dC9NZXJjaGlQcm9kdWN0Rm9ybVByb3ZpZGVyJztcbmltcG9ydCB7IHF1b3RlQWZ0ZXJGaWVsZENoYW5nZSB9IGZyb20gJy4vcXVvdGVBZnRlckZpZWxkQ2hhbmdlJztcbmltcG9ydCB7XG4gIHBhbnRvbmVCeUNvZGUsXG4gIHNlYXJjaFBhbnRvbmVDb2xvdXJzLFxufSBmcm9tICcuLi91dGlscy9wYW50b25lQ29sb3Vycyc7XG5cbmludGVyZmFjZSBQcm9wcyB7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgbmFtZTogc3RyaW5nO1xuICB2YXJpYXRpb246IGFueTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFZhcmlhdGlvblBhbnRvbmVTZWxlY3QoeyBkaXNhYmxlZCwgbmFtZSwgdmFyaWF0aW9uIH06IFByb3BzKSB7XG4gIGNvbnN0IGFsbG93QWxsID0gQm9vbGVhbih2YXJpYXRpb24/LnZhcmlhdGlvbkZpZWxkPy5hbGxvd0FsbFBhbnRvbmVzKTtcbiAgaWYgKCFhbGxvd0FsbCkge1xuICAgIHJldHVybiAoXG4gICAgICA8VmFyaWF0aW9uU2VsZWN0Q29sb3VyXG4gICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgdmFyaWF0aW9uPXt2YXJpYXRpb259XG4gICAgICAvPlxuICAgICk7XG4gIH1cbiAgcmV0dXJuIChcbiAgICA8UGFudG9uZUxpYnJhcnlTZWxlY3RcbiAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgIG5hbWU9e25hbWV9XG4gICAgICB2YXJpYXRpb249e3ZhcmlhdGlvbn1cbiAgICAvPlxuICApO1xufVxuXG5mdW5jdGlvbiBQYW50b25lTGlicmFyeVNlbGVjdCh7IGRpc2FibGVkLCBuYW1lLCB2YXJpYXRpb24gfTogUHJvcHMpIHtcbiAgY29uc3QgeyBjbGFzc05hbWVJbnB1dCwgY29udHJvbCwgZ2V0UXVvdGUgfSA9IHVzZU1lcmNoaUZvcm1Db250ZXh0KCk7XG4gIGNvbnN0IHsgZmllbGQgfSA9IHVzZUNvbnRyb2xsZXIoeyBuYW1lOiBgJHtuYW1lfS52YWx1ZWAsIGNvbnRyb2wgfSk7XG4gIGNvbnN0IFtvcGVuLCBzZXRPcGVuXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW3F1ZXJ5LCBzZXRRdWVyeV0gPSBSZWFjdC51c2VTdGF0ZSgnJyk7XG4gIGNvbnN0IFthY3RpdmVJbmRleCwgc2V0QWN0aXZlSW5kZXhdID0gUmVhY3QudXNlU3RhdGUoMCk7XG4gIGNvbnN0IHJvb3RSZWYgPSBSZWFjdC51c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCBsaXN0SWQgPSBSZWFjdC51c2VJZCgpO1xuICBjb25zdCBzZWxlY3RlZCA9IHBhbnRvbmVCeUNvZGUoZmllbGQudmFsdWUpO1xuICBjb25zdCBtYXRjaGVzID0gc2VhcmNoUGFudG9uZUNvbG91cnMocXVlcnksIDIwKTtcbiAgY29uc3Qgc2hvd0xpc3QgPSBvcGVuICYmIHF1ZXJ5LnRyaW0oKS5sZW5ndGggPiAwO1xuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgc2V0QWN0aXZlSW5kZXgoMCk7XG4gIH0sIFtxdWVyeV0pO1xuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFzaG93TGlzdCkgcmV0dXJuO1xuICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGAke2xpc3RJZH0tJHthY3RpdmVJbmRleH1gKT8uc2Nyb2xsSW50b1ZpZXcoe1xuICAgICAgYmxvY2s6ICduZWFyZXN0JyxcbiAgICB9KTtcbiAgfSwgW2FjdGl2ZUluZGV4LCBsaXN0SWQsIHNob3dMaXN0XSk7XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIW9wZW4pIHJldHVybjtcbiAgICBjb25zdCBvblBvaW50ZXJEb3duID0gKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICBpZiAoIXJvb3RSZWYuY3VycmVudD8uY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIE5vZGUpKSB7XG4gICAgICAgIHNldE9wZW4oZmFsc2UpO1xuICAgICAgICBzZXRRdWVyeSgnJyk7XG4gICAgICB9XG4gICAgfTtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBvblBvaW50ZXJEb3duKTtcbiAgICByZXR1cm4gKCkgPT4gZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgb25Qb2ludGVyRG93bik7XG4gIH0sIFtvcGVuXSk7XG5cbiAgY29uc3QgY2hvb3NlID0gKGNvZGU6IHN0cmluZykgPT4ge1xuICAgIHF1b3RlQWZ0ZXJGaWVsZENoYW5nZShmaWVsZC5vbkNoYW5nZSwgZ2V0UXVvdGUsIGNvZGUpO1xuICAgIHNldFF1ZXJ5KCcnKTtcbiAgICBzZXRPcGVuKGZhbHNlKTtcbiAgfTtcblxuICBjb25zdCBvbktleURvd24gPSAoZXZlbnQ6IFJlYWN0LktleWJvYXJkRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJykge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHNldE9wZW4odHJ1ZSk7XG4gICAgICBzZXRBY3RpdmVJbmRleCgoaW5kZXgpID0+XG4gICAgICAgIE1hdGgubWluKGluZGV4ICsgMSwgTWF0aC5tYXgobWF0Y2hlcy5sZW5ndGggLSAxLCAwKSlcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdBcnJvd1VwJykge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHNldEFjdGl2ZUluZGV4KChpbmRleCkgPT4gTWF0aC5tYXgoaW5kZXggLSAxLCAwKSk7XG4gICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicgJiYgc2hvd0xpc3QgJiYgbWF0Y2hlc1thY3RpdmVJbmRleF0pIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBjaG9vc2UobWF0Y2hlc1thY3RpdmVJbmRleF0uY29kZSk7XG4gICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICBzZXRPcGVuKGZhbHNlKTtcbiAgICAgIHNldFF1ZXJ5KCcnKTtcbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IHJlZj17cm9vdFJlZn0+XG4gICAgICA8VmFyaWF0aW9uTGFiZWxcbiAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgdmFyaWF0aW9uQ2xhc3NOYW1lPSdtZXJjaGktZW1iZWQtZm9ybV9pbnB1dC1zZWxlY3QnXG4gICAgICAgIHZhcmlhdGlvbj17dmFyaWF0aW9ufVxuICAgICAgLz5cbiAgICAgIDxkaXYgc3R5bGU9e3sgcG9zaXRpb246ICdyZWxhdGl2ZScgfX0+XG4gICAgICAgIHtzZWxlY3RlZCAmJiAhb3BlbiAmJiAoXG4gICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgICAgICAgICAgbGVmdDogMTIsXG4gICAgICAgICAgICAgIHRvcDogJzUwJScsXG4gICAgICAgICAgICAgIHdpZHRoOiAxOCxcbiAgICAgICAgICAgICAgaGVpZ2h0OiAxOCxcbiAgICAgICAgICAgICAgbWFyZ2luVG9wOiAtOSxcbiAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiA0LFxuICAgICAgICAgICAgICBib3JkZXI6ICcxcHggc29saWQgcmdiYSgwLDAsMCwwLjEyKScsXG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6IHNlbGVjdGVkLmhleCxcbiAgICAgICAgICAgICAgcG9pbnRlckV2ZW50czogJ25vbmUnLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICByb2xlPSdjb21ib2JveCdcbiAgICAgICAgICBhcmlhLWF1dG9jb21wbGV0ZT0nbGlzdCdcbiAgICAgICAgICBhcmlhLWV4cGFuZGVkPXtzaG93TGlzdH1cbiAgICAgICAgICBhcmlhLWNvbnRyb2xzPXtsaXN0SWR9XG4gICAgICAgICAgYXJpYS1hY3RpdmVkZXNjZW5kYW50PXtcbiAgICAgICAgICAgIHNob3dMaXN0ICYmIG1hdGNoZXNbYWN0aXZlSW5kZXhdXG4gICAgICAgICAgICAgID8gYCR7bGlzdElkfS0ke2FjdGl2ZUluZGV4fWBcbiAgICAgICAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgYXJpYS1sYWJlbD17dmFyaWF0aW9uPy52YXJpYXRpb25GaWVsZD8ubmFtZSB8fCAnUGFudG9uZSBjb2xvdXInfVxuICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lSW5wdXR9XG4gICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgIHBsYWNlaG9sZGVyPSdTZWFyY2ggUGFudG9uZSwgZS5nLiAxODUgQydcbiAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgcGFkZGluZ0xlZnQ6IHNlbGVjdGVkICYmICFvcGVuID8gNDAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBwYWRkaW5nUmlnaHQ6IDMyLFxuICAgICAgICAgIH19XG4gICAgICAgICAgdHlwZT0ndGV4dCdcbiAgICAgICAgICBhdXRvQ29tcGxldGU9J29mZidcbiAgICAgICAgICB2YWx1ZT17b3BlbiA/IHF1ZXJ5IDogc2VsZWN0ZWQ/LmNvZGUgfHwgJyd9XG4gICAgICAgICAgb25Gb2N1cz17KCkgPT4ge1xuICAgICAgICAgICAgc2V0T3Blbih0cnVlKTtcbiAgICAgICAgICAgIHNldFF1ZXJ5KCcnKTtcbiAgICAgICAgICB9fVxuICAgICAgICAgIG9uQ2hhbmdlPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIHNldFF1ZXJ5KGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gICAgICAgICAgICBzZXRPcGVuKHRydWUpO1xuICAgICAgICAgIH19XG4gICAgICAgICAgb25LZXlEb3duPXtvbktleURvd259XG4gICAgICAgIC8+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICAgICAgICByaWdodDogMTIsXG4gICAgICAgICAgICB0b3A6ICc1MCUnLFxuICAgICAgICAgICAgbWFyZ2luVG9wOiAtMixcbiAgICAgICAgICAgIGJvcmRlckxlZnQ6ICc1cHggc29saWQgdHJhbnNwYXJlbnQnLFxuICAgICAgICAgICAgYm9yZGVyUmlnaHQ6ICc1cHggc29saWQgdHJhbnNwYXJlbnQnLFxuICAgICAgICAgICAgYm9yZGVyVG9wOiAnNnB4IHNvbGlkIGN1cnJlbnRDb2xvcicsXG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU1LFxuICAgICAgICAgICAgcG9pbnRlckV2ZW50czogJ25vbmUnLFxuICAgICAgICAgIH19XG4gICAgICAgIC8+XG4gICAgICAgIHtzaG93TGlzdCAmJiAoXG4gICAgICAgICAgPHVsXG4gICAgICAgICAgICBpZD17bGlzdElkfVxuICAgICAgICAgICAgcm9sZT0nbGlzdGJveCdcbiAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICAgICAgICB6SW5kZXg6IDMwLFxuICAgICAgICAgICAgICB0b3A6ICcxMDAlJyxcbiAgICAgICAgICAgICAgbGVmdDogMCxcbiAgICAgICAgICAgICAgcmlnaHQ6IDAsXG4gICAgICAgICAgICAgIG1heEhlaWdodDogMjQwLFxuICAgICAgICAgICAgICBtYXJnaW46ICc0cHggMCAwJyxcbiAgICAgICAgICAgICAgcGFkZGluZzogNCxcbiAgICAgICAgICAgICAgb3ZlcmZsb3dZOiAnYXV0bycsXG4gICAgICAgICAgICAgIGxpc3RTdHlsZTogJ25vbmUnLFxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAnI2ZmZicsXG4gICAgICAgICAgICAgIGJvcmRlcjogJzFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMTIpJyxcbiAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiA4LFxuICAgICAgICAgICAgICBib3hTaGFkb3c6ICcwIDhweCAyNHB4IHJnYmEoMCwwLDAsMC4xMiknLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7bWF0Y2hlcy5sZW5ndGggPT09IDAgPyAoXG4gICAgICAgICAgICAgIDxsaSBzdHlsZT17eyBwYWRkaW5nOiAnOHB4IDEwcHgnLCBjb2xvcjogJyM2YjcyODAnIH19PlxuICAgICAgICAgICAgICAgIE5vIG1hdGNoaW5nIFBhbnRvbmUgY29sb3Vyc1xuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgbWF0Y2hlcy5tYXAoKGNvbG91ciwgaW5kZXgpID0+IChcbiAgICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAgIGtleT17Y29sb3VyLmNvZGV9XG4gICAgICAgICAgICAgICAgICBpZD17YCR7bGlzdElkfS0ke2luZGV4fWB9XG4gICAgICAgICAgICAgICAgICByb2xlPSdvcHRpb24nXG4gICAgICAgICAgICAgICAgICBhcmlhLXNlbGVjdGVkPXtmaWVsZC52YWx1ZSA9PT0gY29sb3VyLmNvZGV9XG4gICAgICAgICAgICAgICAgICBvbk1vdXNlRG93bj17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgIGNob29zZShjb2xvdXIuY29kZSk7XG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgb25Nb3VzZUVudGVyPXsoKSA9PiBzZXRBY3RpdmVJbmRleChpbmRleCl9XG4gICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICBnYXA6IDEwLFxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAnOHB4IDEwcHgnLFxuICAgICAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6IDYsXG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogJ3BvaW50ZXInLFxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgICAgICAgICAgICAgIGluZGV4ID09PSBhY3RpdmVJbmRleFxuICAgICAgICAgICAgICAgICAgICAgICAgPyAncmdiYSgzNywgOTksIDIzNSwgMC4wOCknXG4gICAgICAgICAgICAgICAgICAgICAgICA6ICd0cmFuc3BhcmVudCcsXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE4LFxuICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTgsXG4gICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiA0LFxuICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IGNvbG91ci5oZXgsXG4gICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAnMXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4xMiknLFxuICAgICAgICAgICAgICAgICAgICAgIGZsZXg6ICcwIDAgYXV0bycsXG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAge2NvbG91ci5jb2RlfVxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICkpXG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvdWw+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICAgIDxWYXJpYXRpb25FcnJvciBuYW1lPXtuYW1lfSAvPlxuICAgIDwvZGl2PlxuICApO1xufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxZQUFZOztBQUFDLFNBQUFBLGVBQUFDLENBQUEsRUFBQUMsQ0FBQSxXQUFBQyxlQUFBLENBQUFGLENBQUEsS0FBQUcscUJBQUEsQ0FBQUgsQ0FBQSxFQUFBQyxDQUFBLEtBQUFHLDJCQUFBLENBQUFKLENBQUEsRUFBQUMsQ0FBQSxLQUFBSSxnQkFBQTtBQUFBLFNBQUFBLGlCQUFBLGNBQUFDLFNBQUE7QUFBQSxTQUFBRiw0QkFBQUosQ0FBQSxFQUFBTyxDQUFBLFFBQUFQLENBQUEsMkJBQUFBLENBQUEsU0FBQVEsaUJBQUEsQ0FBQVIsQ0FBQSxFQUFBTyxDQUFBLE9BQUFFLENBQUEsTUFBQUMsUUFBQSxDQUFBQyxJQUFBLENBQUFYLENBQUEsRUFBQVksS0FBQSw2QkFBQUgsQ0FBQSxJQUFBVCxDQUFBLENBQUFhLFdBQUEsS0FBQUosQ0FBQSxHQUFBVCxDQUFBLENBQUFhLFdBQUEsQ0FBQUMsSUFBQSxhQUFBTCxDQUFBLGNBQUFBLENBQUEsR0FBQU0sS0FBQSxDQUFBQyxJQUFBLENBQUFoQixDQUFBLG9CQUFBUyxDQUFBLCtDQUFBUSxJQUFBLENBQUFSLENBQUEsSUFBQUQsaUJBQUEsQ0FBQVIsQ0FBQSxFQUFBTyxDQUFBO0FBQUEsU0FBQUMsa0JBQUFSLENBQUEsRUFBQU8sQ0FBQSxhQUFBQSxDQUFBLElBQUFBLENBQUEsR0FBQVAsQ0FBQSxDQUFBa0IsTUFBQSxNQUFBWCxDQUFBLEdBQUFQLENBQUEsQ0FBQWtCLE1BQUEsWUFBQWpCLENBQUEsTUFBQWtCLENBQUEsR0FBQUosS0FBQSxDQUFBUixDQUFBLEdBQUFOLENBQUEsR0FBQU0sQ0FBQSxFQUFBTixDQUFBLElBQUFrQixDQUFBLENBQUFsQixDQUFBLElBQUFELENBQUEsQ0FBQUMsQ0FBQSxVQUFBa0IsQ0FBQTtBQUFBLFNBQUFoQixzQkFBQUgsQ0FBQSxFQUFBb0IsQ0FBQSxRQUFBWCxDQUFBLFdBQUFULENBQUEsZ0NBQUFxQixNQUFBLElBQUFyQixDQUFBLENBQUFxQixNQUFBLENBQUFDLFFBQUEsS0FBQXRCLENBQUEsNEJBQUFTLENBQUEsUUFBQVIsQ0FBQSxFQUFBa0IsQ0FBQSxFQUFBSSxDQUFBLEVBQUFDLENBQUEsRUFBQWpCLENBQUEsT0FBQWtCLENBQUEsT0FBQUMsQ0FBQSxpQkFBQUgsQ0FBQSxJQUFBZCxDQUFBLEdBQUFBLENBQUEsQ0FBQUUsSUFBQSxDQUFBWCxDQUFBLEdBQUEyQixJQUFBLFFBQUFQLENBQUEsUUFBQVEsTUFBQSxDQUFBbkIsQ0FBQSxNQUFBQSxDQUFBLFVBQUFnQixDQUFBLHVCQUFBQSxDQUFBLElBQUF4QixDQUFBLEdBQUFzQixDQUFBLENBQUFaLElBQUEsQ0FBQUYsQ0FBQSxHQUFBb0IsSUFBQSxNQUFBdEIsQ0FBQSxDQUFBdUIsSUFBQSxDQUFBN0IsQ0FBQSxDQUFBOEIsS0FBQSxHQUFBeEIsQ0FBQSxDQUFBVyxNQUFBLEtBQUFFLENBQUEsR0FBQUssQ0FBQSxpQkFBQXpCLENBQUEsSUFBQTBCLENBQUEsT0FBQVAsQ0FBQSxHQUFBbkIsQ0FBQSx5QkFBQXlCLENBQUEsWUFBQWhCLENBQUEsZUFBQWUsQ0FBQSxHQUFBZixDQUFBLGNBQUFtQixNQUFBLENBQUFKLENBQUEsTUFBQUEsQ0FBQSwyQkFBQUUsQ0FBQSxRQUFBUCxDQUFBLGFBQUFaLENBQUE7QUFBQSxTQUFBTCxnQkFBQUYsQ0FBQSxRQUFBZSxLQUFBLENBQUFpQixPQUFBLENBQUFoQyxDQUFBLFVBQUFBLENBQUE7QUFDYixPQUFPLEtBQUtpQyxLQUFLLE1BQU0sT0FBTztBQUM5QixTQUFTQyxhQUFhLFFBQVEsaUJBQWlCO0FBQy9DLE9BQU9DLGNBQWMsTUFBTSxrQkFBa0I7QUFDN0MsT0FBT0MsY0FBYyxNQUFNLGtCQUFrQjtBQUM3QyxTQUFTQyxxQkFBcUIsUUFBUSwyQkFBMkI7QUFDakUsU0FBU0Msb0JBQW9CLFFBQVEsc0NBQXNDO0FBQzNFLFNBQVNDLHFCQUFxQixRQUFRLHlCQUF5QjtBQUMvRCxTQUNFQyxhQUFhLEVBQ2JDLG9CQUFvQixRQUNmLHlCQUF5QjtBQUFDLFNBQUFDLEdBQUEsSUFBQUMsSUFBQSxFQUFBQyxJQUFBLElBQUFDLEtBQUE7QUFRakMsT0FBTyxTQUFTQyxzQkFBc0JBLENBQUFDLElBQUEsRUFBdUM7RUFBQSxJQUFBQyxxQkFBQTtFQUFBLElBQXBDQyxRQUFRLEdBQUFGLElBQUEsQ0FBUkUsUUFBUTtJQUFFbkMsSUFBSSxHQUFBaUMsSUFBQSxDQUFKakMsSUFBSTtJQUFFb0MsU0FBUyxHQUFBSCxJQUFBLENBQVRHLFNBQVM7RUFDaEUsSUFBTUMsUUFBUSxHQUFHQyxPQUFPLENBQUNGLFNBQVMsYUFBVEEsU0FBUyxnQkFBQUYscUJBQUEsR0FBVEUsU0FBUyxDQUFFRyxjQUFjLGNBQUFMLHFCQUFBLHVCQUF6QkEscUJBQUEsQ0FBMkJNLGdCQUFnQixDQUFDO0VBQ3JFLElBQUksQ0FBQ0gsUUFBUSxFQUFFO0lBQ2Isb0JBQ0VSLElBQUEsQ0FBQ04scUJBQXFCO01BQ3BCWSxRQUFRLEVBQUVBLFFBQVM7TUFDbkJuQyxJQUFJLEVBQUVBLElBQUs7TUFDWG9DLFNBQVMsRUFBRUE7SUFBVSxDQUN0QixDQUFDO0VBRU47RUFDQSxvQkFDRVAsSUFBQSxDQUFDWSxvQkFBb0I7SUFDbkJOLFFBQVEsRUFBRUEsUUFBUztJQUNuQm5DLElBQUksRUFBRUEsSUFBSztJQUNYb0MsU0FBUyxFQUFFQTtFQUFVLENBQ3RCLENBQUM7QUFFTjtBQUVBLFNBQVNLLG9CQUFvQkEsQ0FBQUMsS0FBQSxFQUF1QztFQUFBLElBQUFDLHNCQUFBO0VBQUEsSUFBcENSLFFBQVEsR0FBQU8sS0FBQSxDQUFSUCxRQUFRO0lBQUVuQyxJQUFJLEdBQUEwQyxLQUFBLENBQUoxQyxJQUFJO0lBQUVvQyxTQUFTLEdBQUFNLEtBQUEsQ0FBVE4sU0FBUztFQUN2RCxJQUFBUSxxQkFBQSxHQUE4Q3BCLG9CQUFvQixDQUFDLENBQUM7SUFBNURxQixjQUFjLEdBQUFELHFCQUFBLENBQWRDLGNBQWM7SUFBRUMsT0FBTyxHQUFBRixxQkFBQSxDQUFQRSxPQUFPO0lBQUVDLFFBQVEsR0FBQUgscUJBQUEsQ0FBUkcsUUFBUTtFQUN6QyxJQUFBQyxjQUFBLEdBQWtCNUIsYUFBYSxDQUFDO01BQUVwQixJQUFJLEtBQUFpRCxNQUFBLENBQUtqRCxJQUFJLFdBQVE7TUFBRThDLE9BQU8sRUFBUEE7SUFBUSxDQUFDLENBQUM7SUFBM0RJLEtBQUssR0FBQUYsY0FBQSxDQUFMRSxLQUFLO0VBQ2IsSUFBQUMsZUFBQSxHQUF3QmhDLEtBQUssQ0FBQ2lDLFFBQVEsQ0FBQyxLQUFLLENBQUM7SUFBQUMsZ0JBQUEsR0FBQXBFLGNBQUEsQ0FBQWtFLGVBQUE7SUFBdENHLElBQUksR0FBQUQsZ0JBQUE7SUFBRUUsT0FBTyxHQUFBRixnQkFBQTtFQUNwQixJQUFBRyxnQkFBQSxHQUEwQnJDLEtBQUssQ0FBQ2lDLFFBQVEsQ0FBQyxFQUFFLENBQUM7SUFBQUssZ0JBQUEsR0FBQXhFLGNBQUEsQ0FBQXVFLGdCQUFBO0lBQXJDRSxLQUFLLEdBQUFELGdCQUFBO0lBQUVFLFFBQVEsR0FBQUYsZ0JBQUE7RUFDdEIsSUFBQUcsZ0JBQUEsR0FBc0N6QyxLQUFLLENBQUNpQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQUFTLGdCQUFBLEdBQUE1RSxjQUFBLENBQUEyRSxnQkFBQTtJQUFoREUsV0FBVyxHQUFBRCxnQkFBQTtJQUFFRSxjQUFjLEdBQUFGLGdCQUFBO0VBQ2xDLElBQU1HLE9BQU8sR0FBRzdDLEtBQUssQ0FBQzhDLE1BQU0sQ0FBaUIsSUFBSSxDQUFDO0VBQ2xELElBQU1DLE1BQU0sR0FBRy9DLEtBQUssQ0FBQ2dELEtBQUssQ0FBQyxDQUFDO0VBQzVCLElBQU1DLFFBQVEsR0FBRzFDLGFBQWEsQ0FBQ3dCLEtBQUssQ0FBQ2pDLEtBQUssQ0FBQztFQUMzQyxJQUFNb0QsT0FBTyxHQUFHMUMsb0JBQW9CLENBQUMrQixLQUFLLEVBQUUsRUFBRSxDQUFDO0VBQy9DLElBQU1ZLFFBQVEsR0FBR2hCLElBQUksSUFBSUksS0FBSyxDQUFDYSxJQUFJLENBQUMsQ0FBQyxDQUFDbkUsTUFBTSxHQUFHLENBQUM7RUFFaERlLEtBQUssQ0FBQ3FELFNBQVMsQ0FBQyxZQUFNO0lBQ3BCVCxjQUFjLENBQUMsQ0FBQyxDQUFDO0VBQ25CLENBQUMsRUFBRSxDQUFDTCxLQUFLLENBQUMsQ0FBQztFQUVYdkMsS0FBSyxDQUFDcUQsU0FBUyxDQUFDLFlBQU07SUFBQSxJQUFBQyxxQkFBQTtJQUNwQixJQUFJLENBQUNILFFBQVEsRUFBRTtJQUNmLENBQUFHLHFCQUFBLEdBQUFDLFFBQVEsQ0FBQ0MsY0FBYyxJQUFBMUIsTUFBQSxDQUFJaUIsTUFBTSxPQUFBakIsTUFBQSxDQUFJYSxXQUFXLENBQUUsQ0FBQyxjQUFBVyxxQkFBQSxlQUFuREEscUJBQUEsQ0FBcURHLGNBQWMsQ0FBQztNQUNsRUMsS0FBSyxFQUFFO0lBQ1QsQ0FBQyxDQUFDO0VBQ0osQ0FBQyxFQUFFLENBQUNmLFdBQVcsRUFBRUksTUFBTSxFQUFFSSxRQUFRLENBQUMsQ0FBQztFQUVuQ25ELEtBQUssQ0FBQ3FELFNBQVMsQ0FBQyxZQUFNO0lBQ3BCLElBQUksQ0FBQ2xCLElBQUksRUFBRTtJQUNYLElBQU13QixhQUFhLEdBQUcsU0FBaEJBLGFBQWFBLENBQUlDLEtBQWlCLEVBQUs7TUFBQSxJQUFBQyxnQkFBQTtNQUMzQyxJQUFJLEdBQUFBLGdCQUFBLEdBQUNoQixPQUFPLENBQUNpQixPQUFPLGNBQUFELGdCQUFBLGVBQWZBLGdCQUFBLENBQWlCRSxRQUFRLENBQUNILEtBQUssQ0FBQ0ksTUFBYyxDQUFDLEdBQUU7UUFDcEQ1QixPQUFPLENBQUMsS0FBSyxDQUFDO1FBQ2RJLFFBQVEsQ0FBQyxFQUFFLENBQUM7TUFDZDtJQUNGLENBQUM7SUFDRGUsUUFBUSxDQUFDVSxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUVOLGFBQWEsQ0FBQztJQUNyRCxPQUFPO01BQUEsT0FBTUosUUFBUSxDQUFDVyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUVQLGFBQWEsQ0FBQztJQUFBO0VBQ3ZFLENBQUMsRUFBRSxDQUFDeEIsSUFBSSxDQUFDLENBQUM7RUFFVixJQUFNZ0MsTUFBTSxHQUFHLFNBQVRBLE1BQU1BLENBQUlDLElBQVksRUFBSztJQUMvQjlELHFCQUFxQixDQUFDeUIsS0FBSyxDQUFDc0MsUUFBUSxFQUFFekMsUUFBUSxFQUFFd0MsSUFBSSxDQUFDO0lBQ3JENUIsUUFBUSxDQUFDLEVBQUUsQ0FBQztJQUNaSixPQUFPLENBQUMsS0FBSyxDQUFDO0VBQ2hCLENBQUM7RUFFRCxJQUFNa0MsU0FBUyxHQUFHLFNBQVpBLFNBQVNBLENBQUlWLEtBQTRDLEVBQUs7SUFDbEUsSUFBSUEsS0FBSyxDQUFDVyxHQUFHLEtBQUssV0FBVyxFQUFFO01BQzdCWCxLQUFLLENBQUNZLGNBQWMsQ0FBQyxDQUFDO01BQ3RCcEMsT0FBTyxDQUFDLElBQUksQ0FBQztNQUNiUSxjQUFjLENBQUMsVUFBQzZCLEtBQUs7UUFBQSxPQUNuQkMsSUFBSSxDQUFDQyxHQUFHLENBQUNGLEtBQUssR0FBRyxDQUFDLEVBQUVDLElBQUksQ0FBQ0UsR0FBRyxDQUFDMUIsT0FBTyxDQUFDakUsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztNQUFBLENBQ3RELENBQUM7SUFDSCxDQUFDLE1BQU0sSUFBSTJFLEtBQUssQ0FBQ1csR0FBRyxLQUFLLFNBQVMsRUFBRTtNQUNsQ1gsS0FBSyxDQUFDWSxjQUFjLENBQUMsQ0FBQztNQUN0QjVCLGNBQWMsQ0FBQyxVQUFDNkIsS0FBSztRQUFBLE9BQUtDLElBQUksQ0FBQ0UsR0FBRyxDQUFDSCxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztNQUFBLEVBQUM7SUFDbkQsQ0FBQyxNQUFNLElBQUliLEtBQUssQ0FBQ1csR0FBRyxLQUFLLE9BQU8sSUFBSXBCLFFBQVEsSUFBSUQsT0FBTyxDQUFDUCxXQUFXLENBQUMsRUFBRTtNQUNwRWlCLEtBQUssQ0FBQ1ksY0FBYyxDQUFDLENBQUM7TUFDdEJMLE1BQU0sQ0FBQ2pCLE9BQU8sQ0FBQ1AsV0FBVyxDQUFDLENBQUN5QixJQUFJLENBQUM7SUFDbkMsQ0FBQyxNQUFNLElBQUlSLEtBQUssQ0FBQ1csR0FBRyxLQUFLLFFBQVEsRUFBRTtNQUNqQ25DLE9BQU8sQ0FBQyxLQUFLLENBQUM7TUFDZEksUUFBUSxDQUFDLEVBQUUsQ0FBQztJQUNkO0VBQ0YsQ0FBQztFQUVELG9CQUNFNUIsS0FBQTtJQUFLaUUsR0FBRyxFQUFFaEMsT0FBUTtJQUFBaUMsUUFBQSxnQkFDaEJwRSxJQUFBLENBQUNQLGNBQWM7TUFDYnRCLElBQUksRUFBRUEsSUFBSztNQUNYa0csa0JBQWtCLEVBQUMsZ0NBQWdDO01BQ25EOUQsU0FBUyxFQUFFQTtJQUFVLENBQ3RCLENBQUMsZUFDRkwsS0FBQTtNQUFLb0UsS0FBSyxFQUFFO1FBQUVDLFFBQVEsRUFBRTtNQUFXLENBQUU7TUFBQUgsUUFBQSxHQUNsQzdCLFFBQVEsSUFBSSxDQUFDZCxJQUFJLGlCQUNoQnpCLElBQUE7UUFDRSxtQkFBVztRQUNYc0UsS0FBSyxFQUFFO1VBQ0xDLFFBQVEsRUFBRSxVQUFVO1VBQ3BCQyxJQUFJLEVBQUUsRUFBRTtVQUNSQyxHQUFHLEVBQUUsS0FBSztVQUNWQyxLQUFLLEVBQUUsRUFBRTtVQUNUQyxNQUFNLEVBQUUsRUFBRTtVQUNWQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1VBQ2JDLFlBQVksRUFBRSxDQUFDO1VBQ2ZDLE1BQU0sRUFBRSw0QkFBNEI7VUFDcENDLFVBQVUsRUFBRXhDLFFBQVEsQ0FBQ3lDLEdBQUc7VUFDeEJDLGFBQWEsRUFBRTtRQUNqQjtNQUFFLENBQ0gsQ0FDRixlQUNEakYsSUFBQTtRQUNFa0YsSUFBSSxFQUFDLFVBQVU7UUFDZixxQkFBa0IsTUFBTTtRQUN4QixpQkFBZXpDLFFBQVM7UUFDeEIsaUJBQWVKLE1BQU87UUFDdEIseUJBQ0VJLFFBQVEsSUFBSUQsT0FBTyxDQUFDUCxXQUFXLENBQUMsTUFBQWIsTUFBQSxDQUN6QmlCLE1BQU0sT0FBQWpCLE1BQUEsQ0FBSWEsV0FBVyxJQUN4QmtELFNBQ0w7UUFDRCxjQUFZLENBQUE1RSxTQUFTLGFBQVRBLFNBQVMsZ0JBQUFPLHNCQUFBLEdBQVRQLFNBQVMsQ0FBRUcsY0FBYyxjQUFBSSxzQkFBQSx1QkFBekJBLHNCQUFBLENBQTJCM0MsSUFBSSxLQUFJLGdCQUFpQjtRQUNoRWlILFNBQVMsRUFBRXBFLGNBQWU7UUFDMUJWLFFBQVEsRUFBRUEsUUFBUztRQUNuQitFLFdBQVcsRUFBQyw0QkFBNEI7UUFDeENmLEtBQUssRUFBRTtVQUNMZ0IsV0FBVyxFQUFFL0MsUUFBUSxJQUFJLENBQUNkLElBQUksR0FBRyxFQUFFLEdBQUcwRCxTQUFTO1VBQy9DSSxZQUFZLEVBQUU7UUFDaEIsQ0FBRTtRQUNGQyxJQUFJLEVBQUMsTUFBTTtRQUNYQyxZQUFZLEVBQUMsS0FBSztRQUNsQnJHLEtBQUssRUFBRXFDLElBQUksR0FBR0ksS0FBSyxHQUFHLENBQUFVLFFBQVEsYUFBUkEsUUFBUSx1QkFBUkEsUUFBUSxDQUFFbUIsSUFBSSxLQUFJLEVBQUc7UUFDM0NnQyxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQSxFQUFRO1VBQ2JoRSxPQUFPLENBQUMsSUFBSSxDQUFDO1VBQ2JJLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDZCxDQUFFO1FBQ0Y2QixRQUFRLEVBQUUsU0FBVkEsUUFBUUEsQ0FBR1QsS0FBSyxFQUFLO1VBQ25CcEIsUUFBUSxDQUFDb0IsS0FBSyxDQUFDSSxNQUFNLENBQUNsRSxLQUFLLENBQUM7VUFDNUJzQyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQ2YsQ0FBRTtRQUNGa0MsU0FBUyxFQUFFQTtNQUFVLENBQ3RCLENBQUMsZUFDRjVELElBQUE7UUFDRSxtQkFBVztRQUNYc0UsS0FBSyxFQUFFO1VBQ0xDLFFBQVEsRUFBRSxVQUFVO1VBQ3BCb0IsS0FBSyxFQUFFLEVBQUU7VUFDVGxCLEdBQUcsRUFBRSxLQUFLO1VBQ1ZHLFNBQVMsRUFBRSxDQUFDLENBQUM7VUFDYmdCLFVBQVUsRUFBRSx1QkFBdUI7VUFDbkNDLFdBQVcsRUFBRSx1QkFBdUI7VUFDcENDLFNBQVMsRUFBRSx3QkFBd0I7VUFDbkNDLE9BQU8sRUFBRSxJQUFJO1VBQ2JkLGFBQWEsRUFBRTtRQUNqQjtNQUFFLENBQ0gsQ0FBQyxFQUNEeEMsUUFBUSxpQkFDUHpDLElBQUE7UUFDRWdHLEVBQUUsRUFBRTNELE1BQU87UUFDWDZDLElBQUksRUFBQyxTQUFTO1FBQ2RaLEtBQUssRUFBRTtVQUNMQyxRQUFRLEVBQUUsVUFBVTtVQUNwQjBCLE1BQU0sRUFBRSxFQUFFO1VBQ1Z4QixHQUFHLEVBQUUsTUFBTTtVQUNYRCxJQUFJLEVBQUUsQ0FBQztVQUNQbUIsS0FBSyxFQUFFLENBQUM7VUFDUk8sU0FBUyxFQUFFLEdBQUc7VUFDZEMsTUFBTSxFQUFFLFNBQVM7VUFDakJDLE9BQU8sRUFBRSxDQUFDO1VBQ1ZDLFNBQVMsRUFBRSxNQUFNO1VBQ2pCQyxTQUFTLEVBQUUsTUFBTTtVQUNqQnZCLFVBQVUsRUFBRSxNQUFNO1VBQ2xCRCxNQUFNLEVBQUUsNEJBQTRCO1VBQ3BDRCxZQUFZLEVBQUUsQ0FBQztVQUNmMEIsU0FBUyxFQUFFO1FBQ2IsQ0FBRTtRQUFBbkMsUUFBQSxFQUVENUIsT0FBTyxDQUFDakUsTUFBTSxLQUFLLENBQUMsZ0JBQ25CeUIsSUFBQTtVQUFJc0UsS0FBSyxFQUFFO1lBQUU4QixPQUFPLEVBQUUsVUFBVTtZQUFFSSxLQUFLLEVBQUU7VUFBVSxDQUFFO1VBQUFwQyxRQUFBLEVBQUM7UUFFdEQsQ0FBSSxDQUFDLEdBRUw1QixPQUFPLENBQUNpRSxHQUFHLENBQUMsVUFBQ0MsTUFBTSxFQUFFM0MsS0FBSztVQUFBLG9CQUN4QjdELEtBQUE7WUFFRThGLEVBQUUsS0FBQTVFLE1BQUEsQ0FBS2lCLE1BQU0sT0FBQWpCLE1BQUEsQ0FBSTJDLEtBQUssQ0FBRztZQUN6Qm1CLElBQUksRUFBQyxRQUFRO1lBQ2IsaUJBQWU3RCxLQUFLLENBQUNqQyxLQUFLLEtBQUtzSCxNQUFNLENBQUNoRCxJQUFLO1lBQzNDaUQsV0FBVyxFQUFFLFNBQWJBLFdBQVdBLENBQUd6RCxLQUFLLEVBQUs7Y0FDdEJBLEtBQUssQ0FBQ1ksY0FBYyxDQUFDLENBQUM7Y0FDdEJMLE1BQU0sQ0FBQ2lELE1BQU0sQ0FBQ2hELElBQUksQ0FBQztZQUNyQixDQUFFO1lBQ0ZrRCxZQUFZLEVBQUUsU0FBZEEsWUFBWUEsQ0FBQTtjQUFBLE9BQVExRSxjQUFjLENBQUM2QixLQUFLLENBQUM7WUFBQSxDQUFDO1lBQzFDTyxLQUFLLEVBQUU7Y0FDTHVDLE9BQU8sRUFBRSxNQUFNO2NBQ2ZDLFVBQVUsRUFBRSxRQUFRO2NBQ3BCQyxHQUFHLEVBQUUsRUFBRTtjQUNQWCxPQUFPLEVBQUUsVUFBVTtjQUNuQnZCLFlBQVksRUFBRSxDQUFDO2NBQ2ZtQyxNQUFNLEVBQUUsU0FBUztjQUNqQmpDLFVBQVUsRUFDUmhCLEtBQUssS0FBSzlCLFdBQVcsR0FDakIseUJBQXlCLEdBQ3pCO1lBQ1IsQ0FBRTtZQUFBbUMsUUFBQSxnQkFFRnBFLElBQUE7Y0FDRXNFLEtBQUssRUFBRTtnQkFDTEksS0FBSyxFQUFFLEVBQUU7Z0JBQ1RDLE1BQU0sRUFBRSxFQUFFO2dCQUNWRSxZQUFZLEVBQUUsQ0FBQztnQkFDZkUsVUFBVSxFQUFFMkIsTUFBTSxDQUFDMUIsR0FBRztnQkFDdEJGLE1BQU0sRUFBRSw0QkFBNEI7Z0JBQ3BDbUMsSUFBSSxFQUFFO2NBQ1I7WUFBRSxDQUNILENBQUMsRUFDRFAsTUFBTSxDQUFDaEQsSUFBSTtVQUFBLEdBaENQZ0QsTUFBTSxDQUFDaEQsSUFpQ1YsQ0FBQztRQUFBLENBQ047TUFDRixDQUNDLENBQ0w7SUFBQSxDQUNFLENBQUMsZUFDTjFELElBQUEsQ0FBQ1IsY0FBYztNQUFDckIsSUFBSSxFQUFFQTtJQUFLLENBQUUsQ0FBQztFQUFBLENBQzNCLENBQUM7QUFFViIsImlnbm9yZUxpc3QiOltdfQ==
379
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdG9Db25zdW1hYmxlQXJyYXkiLCJyIiwiX2FycmF5V2l0aG91dEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVNwcmVhZCIsIlR5cGVFcnJvciIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiQXJyYXkiLCJmcm9tIiwiaXNBcnJheSIsIl9hcnJheUxpa2VUb0FycmF5IiwiX3NsaWNlZFRvQXJyYXkiLCJlIiwiX2FycmF5V2l0aEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheUxpbWl0IiwiX25vbkl0ZXJhYmxlUmVzdCIsImEiLCJ0IiwidG9TdHJpbmciLCJjYWxsIiwic2xpY2UiLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJ0ZXN0IiwibGVuZ3RoIiwibiIsImwiLCJpIiwidSIsImYiLCJvIiwibmV4dCIsIk9iamVjdCIsImRvbmUiLCJwdXNoIiwidmFsdWUiLCJSZWFjdCIsInVzZUNvbnRyb2xsZXIiLCJWYXJpYXRpb25FcnJvciIsIlZhcmlhdGlvbkxhYmVsIiwiVmFyaWF0aW9uU2VsZWN0Q29sb3VyIiwidXNlTWVyY2hpRm9ybUNvbnRleHQiLCJxdW90ZUFmdGVyRmllbGRDaGFuZ2UiLCJzb3J0QnlQb3NpdGlvbiIsInNwbGl0U2VsZWN0ZWRPcHRpb25zIiwiUEFOVE9ORV9DT0xPVVJTIiwicGFudG9uZUJ5Q29kZSIsInNlYXJjaFBhbnRvbmVDb2xvdXJzIiwiUGFudG9uZUNvbG91ckJyb3dzZXIiLCJqc3giLCJfanN4IiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJqc3hzIiwiX2pzeHMiLCJMSUJSQVJZX1NXQVRDSEVTIiwibWFwIiwiY29sb3VyIiwia2V5IiwiY29kZSIsImhleCIsImJvb2siLCJpc0NoZWNrZWRGbGFnIiwiYWxsb3dzTXVsdGlwbGUiLCJ2YXJpYXRpb24iLCJmaWVsZCIsInZhcmlhdGlvbkZpZWxkIiwibXVsdGlwbGVTZWxlY3QiLCJzZWxsZXJQcm9kdWN0RWRpdGFibGUiLCJWaWV3QWxsQ29sb3Vyc0J1dHRvbiIsIl9yZWYiLCJkaXNhYmxlZCIsIm9uQ2xpY2siLCJ0eXBlIiwiY2xhc3NOYW1lIiwiY2hpbGRyZW4iLCJvcHRpb25Td2F0Y2hlcyIsInNlbGVjdGFibGVPcHRpb25zIiwib3B0aW9uIiwiX29wdGlvbiRvcHRpb25JZCIsImlkIiwib3B0aW9uSWQiLCJTdHJpbmciLCJrbm93biIsInVuYXZhaWxhYmxlIiwiaXNWaXNpYmxlIiwiYXZhaWxhYmxlIiwiZmlsdGVyIiwiQm9vbGVhbiIsIlZhcmlhdGlvblBhbnRvbmVTZWxlY3QiLCJfcmVmMiIsIl92YXJpYXRpb24kdmFyaWF0aW9uRiIsImFsbG93QWxsIiwiYWxsb3dBbGxQYW50b25lcyIsIlBhbnRvbmVMaW1pdGVkU2VsZWN0IiwiUGFudG9uZUxpYnJhcnlTZWxlY3QiLCJfcmVmMyIsIl91c2VNZXJjaGlGb3JtQ29udGV4dCIsImNvbnRyb2wiLCJnZXRRdW90ZSIsIl91c2VDb250cm9sbGVyIiwiY29uY2F0IiwiX1JlYWN0JHVzZVN0YXRlIiwidXNlU3RhdGUiLCJfUmVhY3QkdXNlU3RhdGUyIiwiYnJvd3Nlck9wZW4iLCJzZXRCcm93c2VyT3BlbiIsInN3YXRjaGVzIiwidXNlTWVtbyIsIm11bHRpcGxlIiwic2VsZWN0ZWRLZXlzIiwiY2hvb3NlIiwidXBkYXRlZElkcyIsImluY2x1ZGVzIiwiZXhpc3RpbmdJZCIsIm9uQ2hhbmdlIiwiam9pbiIsImFmdGVyT3B0aW9ucyIsIm9wZW4iLCJ0aXRsZSIsImRlc2NyaXB0aW9uIiwib25DbG9zZSIsIm9uU2VsZWN0Iiwic3dhdGNoIiwiX3JlZjQiLCJfdmFyaWF0aW9uJHZhcmlhdGlvbkYyIiwiX3VzZU1lcmNoaUZvcm1Db250ZXh0MiIsImNsYXNzTmFtZUlucHV0IiwiX3VzZUNvbnRyb2xsZXIyIiwiX1JlYWN0JHVzZVN0YXRlMyIsIl9SZWFjdCR1c2VTdGF0ZTQiLCJzZXRPcGVuIiwiX1JlYWN0JHVzZVN0YXRlNSIsIl9SZWFjdCR1c2VTdGF0ZTYiLCJfUmVhY3QkdXNlU3RhdGU3IiwiX1JlYWN0JHVzZVN0YXRlOCIsInF1ZXJ5Iiwic2V0UXVlcnkiLCJfUmVhY3QkdXNlU3RhdGU5IiwiX1JlYWN0JHVzZVN0YXRlMCIsImFjdGl2ZUluZGV4Iiwic2V0QWN0aXZlSW5kZXgiLCJyb290UmVmIiwidXNlUmVmIiwibGlzdElkIiwidXNlSWQiLCJzZWxlY3RlZCIsIm1hdGNoZXMiLCJzaG93TGlzdCIsInRyaW0iLCJ1c2VFZmZlY3QiLCJfZG9jdW1lbnQkZ2V0RWxlbWVudEIiLCJkb2N1bWVudCIsImdldEVsZW1lbnRCeUlkIiwic2Nyb2xsSW50b1ZpZXciLCJibG9jayIsIm9uUG9pbnRlckRvd24iLCJldmVudCIsIl9yb290UmVmJGN1cnJlbnQiLCJ0YXJnZXQiLCJjbG9zZXN0IiwiY3VycmVudCIsImNvbnRhaW5zIiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJvbktleURvd24iLCJwcmV2ZW50RGVmYXVsdCIsImluZGV4IiwiTWF0aCIsIm1pbiIsIm1heCIsInJlZiIsInZhcmlhdGlvbkNsYXNzTmFtZSIsInN0eWxlIiwicG9zaXRpb24iLCJsZWZ0IiwidG9wIiwid2lkdGgiLCJoZWlnaHQiLCJtYXJnaW5Ub3AiLCJib3JkZXJSYWRpdXMiLCJib3JkZXIiLCJiYWNrZ3JvdW5kIiwicG9pbnRlckV2ZW50cyIsInJvbGUiLCJ1bmRlZmluZWQiLCJwbGFjZWhvbGRlciIsInBhZGRpbmdMZWZ0IiwicGFkZGluZ1JpZ2h0IiwiYXV0b0NvbXBsZXRlIiwib25Gb2N1cyIsInJpZ2h0IiwiYm9yZGVyTGVmdCIsImJvcmRlclJpZ2h0IiwiYm9yZGVyVG9wIiwib3BhY2l0eSIsInpJbmRleCIsIm1heEhlaWdodCIsIm1hcmdpbiIsInBhZGRpbmciLCJvdmVyZmxvd1kiLCJsaXN0U3R5bGUiLCJib3hTaGFkb3ciLCJjb2xvciIsIm9uTW91c2VEb3duIiwib25Nb3VzZUVudGVyIiwiZGlzcGxheSIsImFsaWduSXRlbXMiLCJnYXAiLCJjdXJzb3IiLCJmbGV4Iiwic2hvd0Jvb2tzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbXBvbmVudHMvVmFyaWF0aW9uUGFudG9uZVNlbGVjdC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlQ29udHJvbGxlciB9IGZyb20gJ3JlYWN0LWhvb2stZm9ybSc7XG5pbXBvcnQgVmFyaWF0aW9uRXJyb3IgZnJvbSAnLi9WYXJpYXRpb25FcnJvcic7XG5pbXBvcnQgVmFyaWF0aW9uTGFiZWwgZnJvbSAnLi9WYXJpYXRpb25MYWJlbCc7XG5pbXBvcnQgeyBWYXJpYXRpb25TZWxlY3RDb2xvdXIgfSBmcm9tICcuL1ZhcmlhdGlvblNlbGVjdEVsZW1lbnRzJztcbmltcG9ydCB7IHVzZU1lcmNoaUZvcm1Db250ZXh0IH0gZnJvbSAnLi4vY29udGV4dC9NZXJjaGlQcm9kdWN0Rm9ybVByb3ZpZGVyJztcbmltcG9ydCB7IHF1b3RlQWZ0ZXJGaWVsZENoYW5nZSB9IGZyb20gJy4vcXVvdGVBZnRlckZpZWxkQ2hhbmdlJztcbmltcG9ydCB7IHNvcnRCeVBvc2l0aW9uLCBzcGxpdFNlbGVjdGVkT3B0aW9ucyB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHtcbiAgUEFOVE9ORV9DT0xPVVJTLFxuICBwYW50b25lQnlDb2RlLFxuICBzZWFyY2hQYW50b25lQ29sb3Vycyxcbn0gZnJvbSAnLi4vdXRpbHMvcGFudG9uZUNvbG91cnMnO1xuaW1wb3J0IHtcbiAgUGFudG9uZUNvbG91ckJyb3dzZXIsXG4gIHR5cGUgUGFudG9uZUJyb3dzZXJTd2F0Y2gsXG59IGZyb20gJy4vUGFudG9uZUNvbG91ckJyb3dzZXInO1xuXG5pbnRlcmZhY2UgUHJvcHMge1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIG5hbWU6IHN0cmluZztcbiAgdmFyaWF0aW9uOiBhbnk7XG59XG5cbmNvbnN0IExJQlJBUllfU1dBVENIRVM6IFBhbnRvbmVCcm93c2VyU3dhdGNoW10gPSBQQU5UT05FX0NPTE9VUlMubWFwKChjb2xvdXIpID0+ICh7XG4gIGtleTogY29sb3VyLmNvZGUsXG4gIGNvZGU6IGNvbG91ci5jb2RlLFxuICBoZXg6IGNvbG91ci5oZXgsXG4gIGJvb2s6IGNvbG91ci5ib29rLFxufSkpO1xuXG5mdW5jdGlvbiBpc0NoZWNrZWRGbGFnKHZhbHVlOiBhbnkpIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nID8gdmFsdWUgOiB2YWx1ZSA9PT0gJ3RydWUnO1xufVxuXG5mdW5jdGlvbiBhbGxvd3NNdWx0aXBsZSh2YXJpYXRpb246IGFueSkge1xuICBjb25zdCBmaWVsZCA9IHZhcmlhdGlvbj8udmFyaWF0aW9uRmllbGQgfHwge307XG4gIHJldHVybiBpc0NoZWNrZWRGbGFnKGZpZWxkLm11bHRpcGxlU2VsZWN0KSB8fCBpc0NoZWNrZWRGbGFnKGZpZWxkLnNlbGxlclByb2R1Y3RFZGl0YWJsZSk7XG59XG5cbmZ1bmN0aW9uIFZpZXdBbGxDb2xvdXJzQnV0dG9uKHtcbiAgZGlzYWJsZWQsXG4gIG9uQ2xpY2ssXG59OiB7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgb25DbGljazogKCkgPT4gdm9pZDtcbn0pIHtcbiAgcmV0dXJuIChcbiAgICA8YnV0dG9uXG4gICAgICB0eXBlPSdidXR0b24nXG4gICAgICBjbGFzc05hbWU9J21lcmNoaS1wYW50b25lLXZpZXctYWxsJ1xuICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgb25DbGljaz17b25DbGlja31cbiAgICA+XG4gICAgICBWaWV3IGFsbCBjb2xvdXJzXG4gICAgPC9idXR0b24+XG4gICk7XG59XG5cbmZ1bmN0aW9uIG9wdGlvblN3YXRjaGVzKHZhcmlhdGlvbjogYW55KTogUGFudG9uZUJyb3dzZXJTd2F0Y2hbXSB7XG4gIHJldHVybiBzb3J0QnlQb3NpdGlvbih2YXJpYXRpb24/LnNlbGVjdGFibGVPcHRpb25zIHx8IFtdKVxuICAgIC5tYXAoKG9wdGlvbjogYW55KSA9PiB7XG4gICAgICBjb25zdCBpZCA9IG9wdGlvbj8ub3B0aW9uSWQgPz8gb3B0aW9uPy5pZDtcbiAgICAgIGlmIChpZCA9PSBudWxsIHx8IGlkID09PSAnJykgcmV0dXJuIG51bGw7XG4gICAgICBjb25zdCBjb2RlID0gU3RyaW5nKG9wdGlvbi52YWx1ZSB8fCAnJyk7XG4gICAgICBjb25zdCBrbm93biA9IHBhbnRvbmVCeUNvZGUoY29kZSk7XG4gICAgICBjb25zdCB1bmF2YWlsYWJsZSA9XG4gICAgICAgIG9wdGlvbj8uaXNWaXNpYmxlID09PSBmYWxzZSB8fFxuICAgICAgICAob3B0aW9uPy5hdmFpbGFibGUgPT09IGZhbHNlICYmIG9wdGlvbj8uaXNWaXNpYmxlICE9PSBmYWxzZSk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBrZXk6IFN0cmluZyhpZCksXG4gICAgICAgIGNvZGU6IGtub3duPy5jb2RlIHx8IGNvZGUgfHwgJ0NvbG91cicsXG4gICAgICAgIGhleDoga25vd24/LmhleCB8fCBvcHRpb24/LmNvbG91ciB8fCAnI2NjY2NjYycsXG4gICAgICAgIGJvb2s6IGtub3duPy5ib29rLFxuICAgICAgICBkaXNhYmxlZDogdW5hdmFpbGFibGUsXG4gICAgICB9O1xuICAgIH0pXG4gICAgLmZpbHRlcihCb29sZWFuKSBhcyBQYW50b25lQnJvd3NlclN3YXRjaFtdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gVmFyaWF0aW9uUGFudG9uZVNlbGVjdCh7IGRpc2FibGVkLCBuYW1lLCB2YXJpYXRpb24gfTogUHJvcHMpIHtcbiAgY29uc3QgYWxsb3dBbGwgPSBCb29sZWFuKHZhcmlhdGlvbj8udmFyaWF0aW9uRmllbGQ/LmFsbG93QWxsUGFudG9uZXMpO1xuICBpZiAoIWFsbG93QWxsKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQYW50b25lTGltaXRlZFNlbGVjdFxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgIHZhcmlhdGlvbj17dmFyaWF0aW9ufVxuICAgICAgLz5cbiAgICApO1xuICB9XG4gIHJldHVybiAoXG4gICAgPFBhbnRvbmVMaWJyYXJ5U2VsZWN0XG4gICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICBuYW1lPXtuYW1lfVxuICAgICAgdmFyaWF0aW9uPXt2YXJpYXRpb259XG4gICAgLz5cbiAgKTtcbn1cblxuZnVuY3Rpb24gUGFudG9uZUxpbWl0ZWRTZWxlY3QoeyBkaXNhYmxlZCwgbmFtZSwgdmFyaWF0aW9uIH06IFByb3BzKSB7XG4gIGNvbnN0IHsgY29udHJvbCwgZ2V0UXVvdGUgfSA9IHVzZU1lcmNoaUZvcm1Db250ZXh0KCk7XG4gIGNvbnN0IHsgZmllbGQgfSA9IHVzZUNvbnRyb2xsZXIoeyBuYW1lOiBgJHtuYW1lfS52YWx1ZWAsIGNvbnRyb2wgfSk7XG4gIGNvbnN0IFticm93c2VyT3Blbiwgc2V0QnJvd3Nlck9wZW5dID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBzd2F0Y2hlcyA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gb3B0aW9uU3dhdGNoZXModmFyaWF0aW9uKSwgW3ZhcmlhdGlvbl0pO1xuICBjb25zdCBtdWx0aXBsZSA9IGFsbG93c011bHRpcGxlKHZhcmlhdGlvbik7XG4gIGNvbnN0IHNlbGVjdGVkS2V5cyA9IHNwbGl0U2VsZWN0ZWRPcHRpb25zKGZpZWxkLnZhbHVlKS5tYXAoU3RyaW5nKS5maWx0ZXIoQm9vbGVhbik7XG5cbiAgY29uc3QgY2hvb3NlID0gKG9wdGlvbklkOiBzdHJpbmcpID0+IHtcbiAgICBsZXQgdXBkYXRlZElkcyA9IFsuLi5zZWxlY3RlZEtleXNdO1xuICAgIGlmIChtdWx0aXBsZSkge1xuICAgICAgdXBkYXRlZElkcyA9IHVwZGF0ZWRJZHMuaW5jbHVkZXMob3B0aW9uSWQpXG4gICAgICAgID8gdXBkYXRlZElkcy5maWx0ZXIoKGV4aXN0aW5nSWQpID0+IGV4aXN0aW5nSWQgIT09IG9wdGlvbklkKVxuICAgICAgICA6IFsuLi51cGRhdGVkSWRzLCBvcHRpb25JZF07XG4gICAgfSBlbHNlIHtcbiAgICAgIHVwZGF0ZWRJZHMgPSBbb3B0aW9uSWRdO1xuICAgIH1cbiAgICBxdW90ZUFmdGVyRmllbGRDaGFuZ2UoXG4gICAgICBmaWVsZC5vbkNoYW5nZSxcbiAgICAgIGdldFF1b3RlLFxuICAgICAgdXBkYXRlZElkcy5maWx0ZXIoQm9vbGVhbikuam9pbignLCcpXG4gICAgKTtcbiAgICBpZiAoIW11bHRpcGxlKSBzZXRCcm93c2VyT3BlbihmYWxzZSk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8VmFyaWF0aW9uU2VsZWN0Q29sb3VyXG4gICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICBuYW1lPXtuYW1lfVxuICAgICAgdmFyaWF0aW9uPXt2YXJpYXRpb259XG4gICAgICBhZnRlck9wdGlvbnM9e1xuICAgICAgICA8PlxuICAgICAgICAgIDxWaWV3QWxsQ29sb3Vyc0J1dHRvblxuICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0QnJvd3Nlck9wZW4odHJ1ZSl9XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8UGFudG9uZUNvbG91ckJyb3dzZXJcbiAgICAgICAgICAgIG9wZW49e2Jyb3dzZXJPcGVufVxuICAgICAgICAgICAgdGl0bGU9J1BhbnRvbmUgY29sb3VycydcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uPSdUaGVzZSBhcmUgdGhlIFBhbnRvbmUgY29sb3VycyBhdmFpbGFibGUgZm9yIHRoaXMgb3B0aW9uLiBTd2F0Y2hlcyBhcmUgc2NyZWVuIGFwcHJveGltYXRpb25zLidcbiAgICAgICAgICAgIHN3YXRjaGVzPXtzd2F0Y2hlc31cbiAgICAgICAgICAgIHNlbGVjdGVkS2V5cz17c2VsZWN0ZWRLZXlzfVxuICAgICAgICAgICAgb25DbG9zZT17KCkgPT4gc2V0QnJvd3Nlck9wZW4oZmFsc2UpfVxuICAgICAgICAgICAgb25TZWxlY3Q9eyhzd2F0Y2gpID0+IHtcbiAgICAgICAgICAgICAgaWYgKCFzd2F0Y2guZGlzYWJsZWQpIGNob29zZShzd2F0Y2gua2V5KTtcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgLz5cbiAgICAgICAgPC8+XG4gICAgICB9XG4gICAgLz5cbiAgKTtcbn1cblxuZnVuY3Rpb24gUGFudG9uZUxpYnJhcnlTZWxlY3QoeyBkaXNhYmxlZCwgbmFtZSwgdmFyaWF0aW9uIH06IFByb3BzKSB7XG4gIGNvbnN0IHsgY2xhc3NOYW1lSW5wdXQsIGNvbnRyb2wsIGdldFF1b3RlIH0gPSB1c2VNZXJjaGlGb3JtQ29udGV4dCgpO1xuICBjb25zdCB7IGZpZWxkIH0gPSB1c2VDb250cm9sbGVyKHsgbmFtZTogYCR7bmFtZX0udmFsdWVgLCBjb250cm9sIH0pO1xuICBjb25zdCBbb3Blbiwgc2V0T3Blbl0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFticm93c2VyT3Blbiwgc2V0QnJvd3Nlck9wZW5dID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbcXVlcnksIHNldFF1ZXJ5XSA9IFJlYWN0LnVzZVN0YXRlKCcnKTtcbiAgY29uc3QgW2FjdGl2ZUluZGV4LCBzZXRBY3RpdmVJbmRleF0gPSBSZWFjdC51c2VTdGF0ZSgwKTtcbiAgY29uc3Qgcm9vdFJlZiA9IFJlYWN0LnVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IGxpc3RJZCA9IFJlYWN0LnVzZUlkKCk7XG4gIGNvbnN0IHNlbGVjdGVkID0gcGFudG9uZUJ5Q29kZShmaWVsZC52YWx1ZSk7XG4gIGNvbnN0IG1hdGNoZXMgPSBzZWFyY2hQYW50b25lQ29sb3VycyhxdWVyeSwgMjApO1xuICBjb25zdCBzaG93TGlzdCA9IG9wZW4gJiYgcXVlcnkudHJpbSgpLmxlbmd0aCA+IDAgJiYgIWJyb3dzZXJPcGVuO1xuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgc2V0QWN0aXZlSW5kZXgoMCk7XG4gIH0sIFtxdWVyeV0pO1xuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFzaG93TGlzdCkgcmV0dXJuO1xuICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGAke2xpc3RJZH0tJHthY3RpdmVJbmRleH1gKT8uc2Nyb2xsSW50b1ZpZXcoe1xuICAgICAgYmxvY2s6ICduZWFyZXN0JyxcbiAgICB9KTtcbiAgfSwgW2FjdGl2ZUluZGV4LCBsaXN0SWQsIHNob3dMaXN0XSk7XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIW9wZW4pIHJldHVybjtcbiAgICBjb25zdCBvblBvaW50ZXJEb3duID0gKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuICAgICAgaWYgKHRhcmdldD8uY2xvc2VzdCgnLm1lcmNoaS1wYW50b25lLWJyb3dzZXInKSkgcmV0dXJuO1xuICAgICAgaWYgKCFyb290UmVmLmN1cnJlbnQ/LmNvbnRhaW5zKHRhcmdldCBhcyBOb2RlKSkge1xuICAgICAgICBzZXRPcGVuKGZhbHNlKTtcbiAgICAgICAgc2V0UXVlcnkoJycpO1xuICAgICAgfVxuICAgIH07XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgb25Qb2ludGVyRG93bik7XG4gICAgcmV0dXJuICgpID0+IGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIG9uUG9pbnRlckRvd24pO1xuICB9LCBbb3Blbl0pO1xuXG4gIGNvbnN0IGNob29zZSA9IChjb2RlOiBzdHJpbmcpID0+IHtcbiAgICBxdW90ZUFmdGVyRmllbGRDaGFuZ2UoZmllbGQub25DaGFuZ2UsIGdldFF1b3RlLCBjb2RlKTtcbiAgICBzZXRRdWVyeSgnJyk7XG4gICAgc2V0T3BlbihmYWxzZSk7XG4gICAgc2V0QnJvd3Nlck9wZW4oZmFsc2UpO1xuICB9O1xuXG4gIGNvbnN0IG9uS2V5RG93biA9IChldmVudDogUmVhY3QuS2V5Ym9hcmRFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4ge1xuICAgIGlmIChldmVudC5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgc2V0T3Blbih0cnVlKTtcbiAgICAgIHNldEFjdGl2ZUluZGV4KChpbmRleCkgPT5cbiAgICAgICAgTWF0aC5taW4oaW5kZXggKyAxLCBNYXRoLm1heChtYXRjaGVzLmxlbmd0aCAtIDEsIDApKVxuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgc2V0QWN0aXZlSW5kZXgoKGluZGV4KSA9PiBNYXRoLm1heChpbmRleCAtIDEsIDApKTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJyAmJiBzaG93TGlzdCAmJiBtYXRjaGVzW2FjdGl2ZUluZGV4XSkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGNob29zZShtYXRjaGVzW2FjdGl2ZUluZGV4XS5jb2RlKTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgIHNldE9wZW4oZmFsc2UpO1xuICAgICAgc2V0UXVlcnkoJycpO1xuICAgIH1cbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgcmVmPXtyb290UmVmfT5cbiAgICAgIDxWYXJpYXRpb25MYWJlbFxuICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICB2YXJpYXRpb25DbGFzc05hbWU9J21lcmNoaS1lbWJlZC1mb3JtX2lucHV0LXNlbGVjdCdcbiAgICAgICAgdmFyaWF0aW9uPXt2YXJpYXRpb259XG4gICAgICAvPlxuICAgICAgPGRpdiBzdHlsZT17eyBwb3NpdGlvbjogJ3JlbGF0aXZlJyB9fT5cbiAgICAgICAge3NlbGVjdGVkICYmICFvcGVuICYmIChcbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICAgICAgICBsZWZ0OiAxMixcbiAgICAgICAgICAgICAgdG9wOiAnNTAlJyxcbiAgICAgICAgICAgICAgd2lkdGg6IDE4LFxuICAgICAgICAgICAgICBoZWlnaHQ6IDE4LFxuICAgICAgICAgICAgICBtYXJnaW5Ub3A6IC05LFxuICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6IDQsXG4gICAgICAgICAgICAgIGJvcmRlcjogJzFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMTIpJyxcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogc2VsZWN0ZWQuaGV4LFxuICAgICAgICAgICAgICBwb2ludGVyRXZlbnRzOiAnbm9uZScsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIHJvbGU9J2NvbWJvYm94J1xuICAgICAgICAgIGFyaWEtYXV0b2NvbXBsZXRlPSdsaXN0J1xuICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9e3Nob3dMaXN0fVxuICAgICAgICAgIGFyaWEtY29udHJvbHM9e2xpc3RJZH1cbiAgICAgICAgICBhcmlhLWFjdGl2ZWRlc2NlbmRhbnQ9e1xuICAgICAgICAgICAgc2hvd0xpc3QgJiYgbWF0Y2hlc1thY3RpdmVJbmRleF1cbiAgICAgICAgICAgICAgPyBgJHtsaXN0SWR9LSR7YWN0aXZlSW5kZXh9YFxuICAgICAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBhcmlhLWxhYmVsPXt2YXJpYXRpb24/LnZhcmlhdGlvbkZpZWxkPy5uYW1lIHx8ICdQYW50b25lIGNvbG91cid9XG4gICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVJbnB1dH1cbiAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgcGxhY2Vob2xkZXI9J1NlYXJjaCBQYW50b25lLCBlLmcuIDE4NSBDJ1xuICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICBwYWRkaW5nTGVmdDogc2VsZWN0ZWQgJiYgIW9wZW4gPyA0MCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHBhZGRpbmdSaWdodDogMzIsXG4gICAgICAgICAgfX1cbiAgICAgICAgICB0eXBlPSd0ZXh0J1xuICAgICAgICAgIGF1dG9Db21wbGV0ZT0nb2ZmJ1xuICAgICAgICAgIHZhbHVlPXtvcGVuID8gcXVlcnkgOiBzZWxlY3RlZD8uY29kZSB8fCAnJ31cbiAgICAgICAgICBvbkZvY3VzPXsoKSA9PiB7XG4gICAgICAgICAgICBzZXRPcGVuKHRydWUpO1xuICAgICAgICAgICAgc2V0UXVlcnkoJycpO1xuICAgICAgICAgIH19XG4gICAgICAgICAgb25DaGFuZ2U9eyhldmVudCkgPT4ge1xuICAgICAgICAgICAgc2V0UXVlcnkoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICAgICAgICAgIHNldE9wZW4odHJ1ZSk7XG4gICAgICAgICAgfX1cbiAgICAgICAgICBvbktleURvd249e29uS2V5RG93bn1cbiAgICAgICAgLz5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBhcmlhLWhpZGRlblxuICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgICAgICAgIHJpZ2h0OiAxMixcbiAgICAgICAgICAgIHRvcDogJzUwJScsXG4gICAgICAgICAgICBtYXJnaW5Ub3A6IC0yLFxuICAgICAgICAgICAgYm9yZGVyTGVmdDogJzVweCBzb2xpZCB0cmFuc3BhcmVudCcsXG4gICAgICAgICAgICBib3JkZXJSaWdodDogJzVweCBzb2xpZCB0cmFuc3BhcmVudCcsXG4gICAgICAgICAgICBib3JkZXJUb3A6ICc2cHggc29saWQgY3VycmVudENvbG9yJyxcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTUsXG4gICAgICAgICAgICBwb2ludGVyRXZlbnRzOiAnbm9uZScsXG4gICAgICAgICAgfX1cbiAgICAgICAgLz5cbiAgICAgICAge3Nob3dMaXN0ICYmIChcbiAgICAgICAgICA8dWxcbiAgICAgICAgICAgIGlkPXtsaXN0SWR9XG4gICAgICAgICAgICByb2xlPSdsaXN0Ym94J1xuICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICAgICAgICAgIHpJbmRleDogMzAsXG4gICAgICAgICAgICAgIHRvcDogJzEwMCUnLFxuICAgICAgICAgICAgICBsZWZ0OiAwLFxuICAgICAgICAgICAgICByaWdodDogMCxcbiAgICAgICAgICAgICAgbWF4SGVpZ2h0OiAyNDAsXG4gICAgICAgICAgICAgIG1hcmdpbjogJzRweCAwIDAnLFxuICAgICAgICAgICAgICBwYWRkaW5nOiA0LFxuICAgICAgICAgICAgICBvdmVyZmxvd1k6ICdhdXRvJyxcbiAgICAgICAgICAgICAgbGlzdFN0eWxlOiAnbm9uZScsXG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6ICcjZmZmJyxcbiAgICAgICAgICAgICAgYm9yZGVyOiAnMXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4xMiknLFxuICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6IDgsXG4gICAgICAgICAgICAgIGJveFNoYWRvdzogJzAgOHB4IDI0cHggcmdiYSgwLDAsMCwwLjEyKScsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHttYXRjaGVzLmxlbmd0aCA9PT0gMCA/IChcbiAgICAgICAgICAgICAgPGxpIHN0eWxlPXt7IHBhZGRpbmc6ICc4cHggMTBweCcsIGNvbG9yOiAnIzZiNzI4MCcgfX0+XG4gICAgICAgICAgICAgICAgTm8gbWF0Y2hpbmcgUGFudG9uZSBjb2xvdXJzXG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICBtYXRjaGVzLm1hcCgoY29sb3VyLCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAga2V5PXtjb2xvdXIuY29kZX1cbiAgICAgICAgICAgICAgICAgIGlkPXtgJHtsaXN0SWR9LSR7aW5kZXh9YH1cbiAgICAgICAgICAgICAgICAgIHJvbGU9J29wdGlvbidcbiAgICAgICAgICAgICAgICAgIGFyaWEtc2VsZWN0ZWQ9e2ZpZWxkLnZhbHVlID09PSBjb2xvdXIuY29kZX1cbiAgICAgICAgICAgICAgICAgIG9uTW91c2VEb3duPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgY2hvb3NlKGNvbG91ci5jb2RlKTtcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICBvbk1vdXNlRW50ZXI9eygpID0+IHNldEFjdGl2ZUluZGV4KGluZGV4KX1cbiAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgICAgIGdhcDogMTAsXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6ICc4cHggMTBweCcsXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1czogNixcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiAncG9pbnRlcicsXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgICAgICAgICAgICAgaW5kZXggPT09IGFjdGl2ZUluZGV4XG4gICAgICAgICAgICAgICAgICAgICAgICA/ICdyZ2JhKDM3LCA5OSwgMjM1LCAwLjA4KSdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJ3RyYW5zcGFyZW50JyxcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTgsXG4gICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxOCxcbiAgICAgICAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6IDQsXG4gICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogY29sb3VyLmhleCxcbiAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6ICcxcHggc29saWQgcmdiYSgwLDAsMCwwLjEyKScsXG4gICAgICAgICAgICAgICAgICAgICAgZmxleDogJzAgMCBhdXRvJyxcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICB7Y29sb3VyLmNvZGV9XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgKSlcbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgICAgPFZpZXdBbGxDb2xvdXJzQnV0dG9uXG4gICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgIHNldE9wZW4oZmFsc2UpO1xuICAgICAgICAgIHNldFF1ZXJ5KCcnKTtcbiAgICAgICAgICBzZXRCcm93c2VyT3Blbih0cnVlKTtcbiAgICAgICAgfX1cbiAgICAgIC8+XG4gICAgICA8UGFudG9uZUNvbG91ckJyb3dzZXJcbiAgICAgICAgb3Blbj17YnJvd3Nlck9wZW59XG4gICAgICAgIHRpdGxlPSdBbGwgUGFudG9uZSBjb2xvdXJzJ1xuICAgICAgICBkZXNjcmlwdGlvbj0nU2Nyb2xsIHRoZSBsaWJyYXJ5IG9yIHNlYXJjaCBmb3IgYSBjb2RlLiBTd2F0Y2hlcyBhcmUgc2NyZWVuIGFwcHJveGltYXRpb25zLidcbiAgICAgICAgc3dhdGNoZXM9e0xJQlJBUllfU1dBVENIRVN9XG4gICAgICAgIHNlbGVjdGVkS2V5cz17c2VsZWN0ZWQgPyBbc2VsZWN0ZWQuY29kZV0gOiBbXX1cbiAgICAgICAgc2hvd0Jvb2tzXG4gICAgICAgIG9uQ2xvc2U9eygpID0+IHNldEJyb3dzZXJPcGVuKGZhbHNlKX1cbiAgICAgICAgb25TZWxlY3Q9eyhzd2F0Y2gpID0+IGNob29zZShzd2F0Y2guY29kZSl9XG4gICAgICAvPlxuICAgICAgPFZhcmlhdGlvbkVycm9yIG5hbWU9e25hbWV9IC8+XG4gICAgPC9kaXY+XG4gICk7XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7O0FBQUMsU0FBQUEsbUJBQUFDLENBQUEsV0FBQUMsa0JBQUEsQ0FBQUQsQ0FBQSxLQUFBRSxnQkFBQSxDQUFBRixDQUFBLEtBQUFHLDJCQUFBLENBQUFILENBQUEsS0FBQUksa0JBQUE7QUFBQSxTQUFBQSxtQkFBQSxjQUFBQyxTQUFBO0FBQUEsU0FBQUgsaUJBQUFGLENBQUEsOEJBQUFNLE1BQUEsWUFBQU4sQ0FBQSxDQUFBTSxNQUFBLENBQUFDLFFBQUEsYUFBQVAsQ0FBQSx1QkFBQVEsS0FBQSxDQUFBQyxJQUFBLENBQUFULENBQUE7QUFBQSxTQUFBQyxtQkFBQUQsQ0FBQSxRQUFBUSxLQUFBLENBQUFFLE9BQUEsQ0FBQVYsQ0FBQSxVQUFBVyxpQkFBQSxDQUFBWCxDQUFBO0FBQUEsU0FBQVksZUFBQVosQ0FBQSxFQUFBYSxDQUFBLFdBQUFDLGVBQUEsQ0FBQWQsQ0FBQSxLQUFBZSxxQkFBQSxDQUFBZixDQUFBLEVBQUFhLENBQUEsS0FBQVYsMkJBQUEsQ0FBQUgsQ0FBQSxFQUFBYSxDQUFBLEtBQUFHLGdCQUFBO0FBQUEsU0FBQUEsaUJBQUEsY0FBQVgsU0FBQTtBQUFBLFNBQUFGLDRCQUFBSCxDQUFBLEVBQUFpQixDQUFBLFFBQUFqQixDQUFBLDJCQUFBQSxDQUFBLFNBQUFXLGlCQUFBLENBQUFYLENBQUEsRUFBQWlCLENBQUEsT0FBQUMsQ0FBQSxNQUFBQyxRQUFBLENBQUFDLElBQUEsQ0FB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
@@ -4,12 +4,14 @@ interface Props {
4
4
  inputType?: string;
5
5
  name: string;
6
6
  variation: any;
7
+ afterOptions?: React.ReactNode;
7
8
  }
8
9
  export declare const VariationSelectElements: React.FC<Props>;
9
10
  interface FieldProps {
10
11
  disabled?: boolean;
11
12
  name: string;
12
13
  variation: any;
14
+ afterOptions?: React.ReactNode;
13
15
  }
14
16
  export declare const VariationSelectImage: (props: FieldProps) => React.JSX.Element;
15
17
  export declare const VariationSelectColour: (props: FieldProps) => React.JSX.Element;
@@ -101,7 +101,8 @@ export var VariationSelectElements = function VariationSelectElements(_ref2) {
101
101
  _ref2$inputType = _ref2.inputType,
102
102
  inputType = _ref2$inputType === void 0 ? 'image' : _ref2$inputType,
103
103
  name = _ref2.name,
104
- variation = _ref2.variation;
104
+ variation = _ref2.variation,
105
+ afterOptions = _ref2.afterOptions;
105
106
  var _variation$selectable = variation.selectableOptions,
106
107
  selectableOptions = _variation$selectable === void 0 ? [] : _variation$selectable;
107
108
  var isImage = inputType === 'image';
@@ -123,7 +124,7 @@ export var VariationSelectElements = function VariationSelectElements(_ref2) {
123
124
  variation: variation
124
125
  }, "variation-option-".concat(option.optionId, "-").concat(index));
125
126
  })
126
- }), /*#__PURE__*/_jsx(VariationError, {
127
+ }), afterOptions, /*#__PURE__*/_jsx(VariationError, {
127
128
  name: name
128
129
  })]
129
130
  });
@@ -138,4 +139,4 @@ export var VariationSelectColour = function VariationSelectColour(props) {
138
139
  inputType: "colour"
139
140
  }));
140
141
  };
141
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdHlwZW9mIiwibyIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiY29uc3RydWN0b3IiLCJwcm90b3R5cGUiLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJfdG9Qcm9wZXJ0eUtleSIsInZhbHVlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJpIiwiX3RvUHJpbWl0aXZlIiwidG9QcmltaXRpdmUiLCJjYWxsIiwiVHlwZUVycm9yIiwiU3RyaW5nIiwiTnVtYmVyIiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiX2FycmF5V2l0aG91dEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVNwcmVhZCIsImEiLCJfYXJyYXlMaWtlVG9BcnJheSIsInRvU3RyaW5nIiwic2xpY2UiLCJuYW1lIiwiQXJyYXkiLCJmcm9tIiwidGVzdCIsImlzQXJyYXkiLCJuIiwiUmVhY3QiLCJ1c2VDb250cm9sbGVyIiwiaXNCb29sZWFuIiwiVmFyaWF0aW9uT3B0aW9uQ29sb3VyIiwiVmFyaWF0aW9uT3B0aW9uSW1hZ2UiLCJWYXJpYXRpb25FcnJvciIsIlZhcmlhdGlvbkxhYmVsIiwidXNlTWVyY2hpRm9ybUNvbnRleHQiLCJxdW90ZUFmdGVyRmllbGRDaGFuZ2UiLCJzb3J0QnlQb3NpdGlvbiIsInNwbGl0U2VsZWN0ZWRPcHRpb25zIiwianN4IiwiX2pzeCIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwianN4cyIsIl9qc3hzIiwiZGV0ZXJtaW5lQm9vbGVhbiIsIm9wdGlvblR5cGUiLCJ2YXJpYXRpb24iLCJfdmFyaWF0aW9uJHZhcmlhdGlvbkYiLCJ2YXJpYXRpb25GaWVsZCIsIm11bHRpcGxlU2VsZWN0Iiwic2VsbGVyUHJvZHVjdEVkaXRhYmxlIiwiVmFyaWF0aW9uRmllbGRPcHRpb25FbGVtZW50IiwiX3JlZiIsImRpc2FibGVkIiwiaW5kZXgiLCJpbnB1dFR5cGUiLCJvcHRpb24iLCJfdXNlTWVyY2hpRm9ybUNvbnRleHQiLCJjb250cm9sIiwiZ2V0UXVvdGUiLCJfdXNlQ29udHJvbGxlciIsImNvbmNhdCIsImZpZWxkIiwib3B0aW9uSWQiLCJpbnB1dElkIiwiYWN0aXZlSWRzIiwibWFwIiwiQm9vbGVhbiIsImlzQWN0aXZlIiwiaW5jbHVkZXMiLCJvcHRpb25JbnB1dFR5cGUiLCJkb0NsaWNrIiwidXBkYXRlZElkcyIsImV4aXN0aW5nSWQiLCJvbkNoYW5nZSIsImpvaW4iLCJjaGlsZHJlbiIsInN0eWxlIiwiZGlzcGxheSIsImNoZWNrZWQiLCJ0eXBlIiwiaWQiLCJpc0NoZWNrZWQiLCJWYXJpYXRpb25TZWxlY3RFbGVtZW50cyIsIl9yZWYyIiwiX3JlZjIkaW5wdXRUeXBlIiwiX3ZhcmlhdGlvbiRzZWxlY3RhYmxlIiwic2VsZWN0YWJsZU9wdGlvbnMiLCJpc0ltYWdlIiwiY2xhc3NOYW1lIiwidmFyaWF0aW9uQ2xhc3NOYW1lIiwiVmFyaWF0aW9uU2VsZWN0SW1hZ2UiLCJwcm9wcyIsIlZhcmlhdGlvblNlbGVjdENvbG91ciJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL1ZhcmlhdGlvblNlbGVjdEVsZW1lbnRzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VDb250cm9sbGVyIH0gZnJvbSAncmVhY3QtaG9vay1mb3JtJztcbmltcG9ydCB7IGlzQm9vbGVhbiB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgVmFyaWF0aW9uT3B0aW9uQ29sb3VyIGZyb20gJy4vVmFyaWF0aW9uT3B0aW9uQ29sb3VyJztcbmltcG9ydCBWYXJpYXRpb25PcHRpb25JbWFnZSBmcm9tICcuL1ZhcmlhdGlvbk9wdGlvbkltYWdlJztcbmltcG9ydCBWYXJpYXRpb25FcnJvciBmcm9tICcuL1ZhcmlhdGlvbkVycm9yJztcbmltcG9ydCBWYXJpYXRpb25MYWJlbCBmcm9tICcuL1ZhcmlhdGlvbkxhYmVsJztcbmltcG9ydCB7IHVzZU1lcmNoaUZvcm1Db250ZXh0IH0gZnJvbSAnLi4vY29udGV4dC9NZXJjaGlQcm9kdWN0Rm9ybVByb3ZpZGVyJztcbmltcG9ydCB7IHF1b3RlQWZ0ZXJGaWVsZENoYW5nZSB9IGZyb20gJy4vcXVvdGVBZnRlckZpZWxkQ2hhbmdlJztcbmltcG9ydCB7IHNvcnRCeVBvc2l0aW9uLCBzcGxpdFNlbGVjdGVkT3B0aW9ucyB9IGZyb20gJy4vdXRpbHMnO1xuXG5mdW5jdGlvbiBkZXRlcm1pbmVCb29sZWFuKHZhbHVlOiBhbnkpIHtcbiAgcmV0dXJuIGlzQm9vbGVhbih2YWx1ZSkgPyB2YWx1ZSA6IHZhbHVlID09PSAndHJ1ZScgPyB0cnVlIDogZmFsc2U7XG59XG5cbmZ1bmN0aW9uIG9wdGlvblR5cGUodmFyaWF0aW9uOiBhbnkpIHtcbiAgY29uc3QgeyBtdWx0aXBsZVNlbGVjdCwgc2VsbGVyUHJvZHVjdEVkaXRhYmxlIH0gPSB2YXJpYXRpb24udmFyaWF0aW9uRmllbGQ7XG4gIHJldHVybiBkZXRlcm1pbmVCb29sZWFuKG11bHRpcGxlU2VsZWN0KSB8fFxuICAgIGRldGVybWluZUJvb2xlYW4oc2VsbGVyUHJvZHVjdEVkaXRhYmxlKVxuICAgID8gJ2NoZWNrYm94J1xuICAgIDogJ3JhZGlvJztcbn1cblxuaW50ZXJmYWNlIE9wdGlvblByb3BzIHtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBpbmRleDogbnVtYmVyO1xuICBpbnB1dFR5cGU6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBvcHRpb246IGFueTtcbiAgdmFyaWF0aW9uOiBhbnk7XG59XG5cbmZ1bmN0aW9uIFZhcmlhdGlvbkZpZWxkT3B0aW9uRWxlbWVudCh7XG4gIGRpc2FibGVkLFxuICBpbmRleCxcbiAgaW5wdXRUeXBlLFxuICBuYW1lLFxuICBvcHRpb24sXG4gIHZhcmlhdGlvbixcbn06IE9wdGlvblByb3BzKSB7XG4gIGNvbnN0IHsgY29udHJvbCwgZ2V0UXVvdGUgfSA9IHVzZU1lcmNoaUZvcm1Db250ZXh0KCk7XG4gIGNvbnN0IHsgZmllbGQgfSA9IHVzZUNvbnRyb2xsZXIoeyBuYW1lOiBgJHtuYW1lfS52YWx1ZWAsIGNvbnRyb2wgfSk7XG4gIGNvbnN0IHsgdmFyaWF0aW9uRmllbGQgfSA9IHZhcmlhdGlvbjtcbiAgY29uc3QgeyBzZWxsZXJQcm9kdWN0RWRpdGFibGUgfSA9IHZhcmlhdGlvbkZpZWxkO1xuICBjb25zdCB7IG9wdGlvbklkIH0gPSBvcHRpb247XG4gIGNvbnN0IGlucHV0SWQgPSBgJHtuYW1lfS5vcHRpb25zLmlkLSR7b3B0aW9uSWR9YDtcbiAgY29uc3QgYWN0aXZlSWRzID0gc3BsaXRTZWxlY3RlZE9wdGlvbnMoZmllbGQudmFsdWUpLm1hcChTdHJpbmcpLmZpbHRlcihCb29sZWFuKTtcbiAgY29uc3QgaXNBY3RpdmUgPSBhY3RpdmVJZHMuaW5jbHVkZXMoU3RyaW5nKG9wdGlvbklkKSk7XG4gIGNvbnN0IG9wdGlvbklucHV0VHlwZSA9IG9wdGlvblR5cGUodmFyaWF0aW9uKTtcbiAgY29uc3QgZG9DbGljayA9ICgpID0+IHtcbiAgICBsZXQgdXBkYXRlZElkcyA9IFsuLi5hY3RpdmVJZHNdO1xuXG4gICAgaWYgKHNlbGxlclByb2R1Y3RFZGl0YWJsZSB8fCBvcHRpb25JbnB1dFR5cGUgPT09ICdjaGVja2JveCcpIHtcbiAgICAgIC8vIENoZWNrYm94IExvZ2ljXG4gICAgICBpZiAoIXVwZGF0ZWRJZHMuaW5jbHVkZXMoU3RyaW5nKG9wdGlvbklkKSkpIHtcbiAgICAgICAgdXBkYXRlZElkcy5wdXNoKFN0cmluZyhvcHRpb25JZCkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdXBkYXRlZElkcyA9IHVwZGF0ZWRJZHMuZmlsdGVyKFxuICAgICAgICAgIChleGlzdGluZ0lkKSA9PiBleGlzdGluZ0lkICE9PSBTdHJpbmcob3B0aW9uSWQpXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChvcHRpb25JbnB1dFR5cGUgPT09ICdyYWRpbycpIHtcbiAgICAgIC8vIFJhZGlvIExvZ2ljXG4gICAgICB1cGRhdGVkSWRzID0gW1N0cmluZyhvcHRpb25JZCldO1xuICAgIH1cbiAgICBxdW90ZUFmdGVyRmllbGRDaGFuZ2UoXG4gICAgICBmaWVsZC5vbkNoYW5nZSxcbiAgICAgIGdldFF1b3RlLFxuICAgICAgdXBkYXRlZElkcy5maWx0ZXIoQm9vbGVhbikuam9pbignLCcpXG4gICAgKTtcbiAgfTtcbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPGlucHV0XG4gICAgICAgIHN0eWxlPXt7IGRpc3BsYXk6ICdub25lJyB9fVxuICAgICAgICBjaGVja2VkPXtpc0FjdGl2ZX1cbiAgICAgICAgdmFsdWU9e29wdGlvbklkfVxuICAgICAgICB0eXBlPXtvcHRpb25JbnB1dFR5cGV9XG4gICAgICAgIGlkPXtpbnB1dElkfVxuICAgICAgICBuYW1lPXtgJHtuYW1lfS52YWx1ZWB9XG4gICAgICAgIG9uQ2hhbmdlPXsoKSA9PiB0cnVlfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAvPlxuICAgICAge2lucHV0VHlwZSA9PT0gJ2ltYWdlJyA/IChcbiAgICAgICAgPFZhcmlhdGlvbk9wdGlvbkltYWdlXG4gICAgICAgICAgZG9DbGljaz17ZG9DbGlja31cbiAgICAgICAgICBpc0NoZWNrZWQ9e2lzQWN0aXZlfVxuICAgICAgICAgIG9wdGlvbj17b3B0aW9ufVxuICAgICAgICAvPlxuICAgICAgKSA6IChcbiAgICAgICAgPFZhcmlhdGlvbk9wdGlvbkNvbG91clxuICAgICAgICAgIGRvQ2xpY2s9e2RvQ2xpY2t9XG4gICAgICAgICAgaXNDaGVja2VkPXtpc0FjdGl2ZX1cbiAgICAgICAgICBvcHRpb249e29wdGlvbn1cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgPC8+XG4gICk7XG59XG5cbmludGVyZmFjZSBQcm9wcyB7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgaW5wdXRUeXBlPzogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHZhcmlhdGlvbjogYW55O1xufVxuXG5leHBvcnQgY29uc3QgVmFyaWF0aW9uU2VsZWN0RWxlbWVudHM6IFJlYWN0LkZDPFByb3BzPiA9ICh7XG4gIGRpc2FibGVkLFxuICBpbnB1dFR5cGUgPSAnaW1hZ2UnLFxuICBuYW1lLFxuICB2YXJpYXRpb24sXG59KSA9PiB7XG4gIGNvbnN0IHsgc2VsZWN0YWJsZU9wdGlvbnMgPSBbXSB9ID0gdmFyaWF0aW9uO1xuICBjb25zdCBpc0ltYWdlID0gaW5wdXRUeXBlID09PSAnaW1hZ2UnO1xuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtpc0ltYWdlID8gJ21lcmNoaS1pbWFnZS1zZWxlY3QtY29udGFpbmVyJyA6ICcnfT5cbiAgICAgIDxWYXJpYXRpb25MYWJlbFxuICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICB2YXJpYXRpb25DbGFzc05hbWU9e2BtZXJjaGktZW1iZWQtZm9ybV9pbnB1dCR7XG4gICAgICAgICAgaXNJbWFnZSA/ICctaW1hZ2UnIDogJydcbiAgICAgICAgfS1zZWxlY3RgfVxuICAgICAgICB2YXJpYXRpb249e3ZhcmlhdGlvbn1cbiAgICAgIC8+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT17XG4gICAgICAgICAgaXNJbWFnZVxuICAgICAgICAgICAgPyAnbWVyY2hpLWVtYmVkLWZvcm1faW1hZ2Utc2VsZWN0LW9wdGlvbi1jb250YWluZXInXG4gICAgICAgICAgICA6ICdtZXJjaGktZW1iZWQtZm9ybV9jb2xvci1zZWxlY3QtY29udGFpbmVyJ1xuICAgICAgICB9XG4gICAgICA+XG4gICAgICAgIHtzb3J0QnlQb3NpdGlvbihzZWxlY3RhYmxlT3B0aW9ucykubWFwKChvcHRpb246IGFueSwgaW5kZXg6IG51bWJlcikgPT4gKFxuICAgICAgICAgIDxWYXJpYXRpb25GaWVsZE9wdGlvbkVsZW1lbnRcbiAgICAgICAgICAgIGtleT17YHZhcmlhdGlvbi1vcHRpb24tJHtvcHRpb24ub3B0aW9uSWR9LSR7aW5kZXh9YH1cbiAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgIGluZGV4PXtpbmRleH1cbiAgICAgICAgICAgIGlucHV0VHlwZT17aW5wdXRUeXBlfVxuICAgICAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgICAgIG9wdGlvbj17b3B0aW9ufVxuICAgICAgICAgICAgdmFyaWF0aW9uPXt2YXJpYXRpb259XG4gICAgICAgICAgLz5cbiAgICAgICAgKSl9XG4gICAgICA8L2Rpdj5cbiAgICAgIDxWYXJpYXRpb25FcnJvciBuYW1lPXtuYW1lfSAvPlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuaW50ZXJmYWNlIEZpZWxkUHJvcHMge1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIG5hbWU6IHN0cmluZztcbiAgdmFyaWF0aW9uOiBhbnk7XG59XG5cbmV4cG9ydCBjb25zdCBWYXJpYXRpb25TZWxlY3RJbWFnZSA9IChwcm9wczogRmllbGRQcm9wcykgPT4gKFxuICA8VmFyaWF0aW9uU2VsZWN0RWxlbWVudHMgey4uLnByb3BzfSBpbnB1dFR5cGU9J2ltYWdlJyAvPlxuKTtcbmV4cG9ydCBjb25zdCBWYXJpYXRpb25TZWxlY3RDb2xvdXIgPSAocHJvcHM6IEZpZWxkUHJvcHMpID0+IChcbiAgPFZhcmlhdGlvblNlbGVjdEVsZW1lbnRzIHsuLi5wcm9wc30gaW5wdXRUeXBlPSdjb2xvdXInIC8+XG4pO1xuIl0sIm1hcHBpbmdzIjoiQUFBQSxZQUFZOztBQUFDLFNBQUFBLFFBQUFDLENBQUEs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
142
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdHlwZW9mIiwibyIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiY29uc3RydWN0b3IiLCJwcm90b3R5cGUiLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJfdG9Qcm9wZXJ0eUtleSIsInZhbHVlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJpIiwiX3RvUHJpbWl0aXZlIiwidG9QcmltaXRpdmUiLCJjYWxsIiwiVHlwZUVycm9yIiwiU3RyaW5nIiwiTnVtYmVyIiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiX2FycmF5V2l0aG91dEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVNwcmVhZCIsImEiLCJfYXJyYXlMaWtlVG9BcnJheSIsInRvU3RyaW5nIiwic2xpY2UiLCJuYW1lIiwiQXJyYXkiLCJmcm9tIiwidGVzdCIsImlzQXJyYXkiLCJuIiwiUmVhY3QiLCJ1c2VDb250cm9sbGVyIiwiaXNCb29sZWFuIiwiVmFyaWF0aW9uT3B0aW9uQ29sb3VyIiwiVmFyaWF0aW9uT3B0aW9uSW1hZ2UiLCJWYXJpYXRpb25FcnJvciIsIlZhcmlhdGlvbkxhYmVsIiwidXNlTWVyY2hpRm9ybUNvbnRleHQiLCJxdW90ZUFmdGVyRmllbGRDaGFuZ2UiLCJzb3J0QnlQb3NpdGlvbiIsInNwbGl0U2VsZWN0ZWRPcHRpb25zIiwianN4IiwiX2pzeCIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwianN4cyIsIl9qc3hzIiwiZGV0ZXJtaW5lQm9vbGVhbiIsIm9wdGlvblR5cGUiLCJ2YXJpYXRpb24iLCJfdmFyaWF0aW9uJHZhcmlhdGlvbkYiLCJ2YXJpYXRpb25GaWVsZCIsIm11bHRpcGxlU2VsZWN0Iiwic2VsbGVyUHJvZHVjdEVkaXRhYmxlIiwiVmFyaWF0aW9uRmllbGRPcHRpb25FbGVtZW50IiwiX3JlZiIsImRpc2FibGVkIiwiaW5kZXgiLCJpbnB1dFR5cGUiLCJvcHRpb24iLCJfdXNlTWVyY2hpRm9ybUNvbnRleHQiLCJjb250cm9sIiwiZ2V0UXVvdGUiLCJfdXNlQ29udHJvbGxlciIsImNvbmNhdCIsImZpZWxkIiwib3B0aW9uSWQiLCJpbnB1dElkIiwiYWN0aXZlSWRzIiwibWFwIiwiQm9vbGVhbiIsImlzQWN0aXZlIiwiaW5jbHVkZXMiLCJvcHRpb25JbnB1dFR5cGUiLCJkb0NsaWNrIiwidXBkYXRlZElkcyIsImV4aXN0aW5nSWQiLCJvbkNoYW5nZSIsImpvaW4iLCJjaGlsZHJlbiIsInN0eWxlIiwiZGlzcGxheSIsImNoZWNrZWQiLCJ0eXBlIiwiaWQiLCJpc0NoZWNrZWQiLCJWYXJpYXRpb25TZWxlY3RFbGVtZW50cyIsIl9yZWYyIiwiX3JlZjIkaW5wdXRUeXBlIiwiYWZ0ZXJPcHRpb25zIiwiX3ZhcmlhdGlvbiRzZWxlY3RhYmxlIiwic2VsZWN0YWJsZU9wdGlvbnMiLCJpc0ltYWdlIiwiY2xhc3NOYW1lIiwidmFyaWF0aW9uQ2xhc3NOYW1lIiwiVmFyaWF0aW9uU2VsZWN0SW1hZ2UiLCJwcm9wcyIsIlZhcmlhdGlvblNlbGVjdENvbG91ciJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL1ZhcmlhdGlvblNlbGVjdEVsZW1lbnRzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VDb250cm9sbGVyIH0gZnJvbSAncmVhY3QtaG9vay1mb3JtJztcbmltcG9ydCB7IGlzQm9vbGVhbiB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgVmFyaWF0aW9uT3B0aW9uQ29sb3VyIGZyb20gJy4vVmFyaWF0aW9uT3B0aW9uQ29sb3VyJztcbmltcG9ydCBWYXJpYXRpb25PcHRpb25JbWFnZSBmcm9tICcuL1ZhcmlhdGlvbk9wdGlvbkltYWdlJztcbmltcG9ydCBWYXJpYXRpb25FcnJvciBmcm9tICcuL1ZhcmlhdGlvbkVycm9yJztcbmltcG9ydCBWYXJpYXRpb25MYWJlbCBmcm9tICcuL1ZhcmlhdGlvbkxhYmVsJztcbmltcG9ydCB7IHVzZU1lcmNoaUZvcm1Db250ZXh0IH0gZnJvbSAnLi4vY29udGV4dC9NZXJjaGlQcm9kdWN0Rm9ybVByb3ZpZGVyJztcbmltcG9ydCB7IHF1b3RlQWZ0ZXJGaWVsZENoYW5nZSB9IGZyb20gJy4vcXVvdGVBZnRlckZpZWxkQ2hhbmdlJztcbmltcG9ydCB7IHNvcnRCeVBvc2l0aW9uLCBzcGxpdFNlbGVjdGVkT3B0aW9ucyB9IGZyb20gJy4vdXRpbHMnO1xuXG5mdW5jdGlvbiBkZXRlcm1pbmVCb29sZWFuKHZhbHVlOiBhbnkpIHtcbiAgcmV0dXJuIGlzQm9vbGVhbih2YWx1ZSkgPyB2YWx1ZSA6IHZhbHVlID09PSAndHJ1ZScgPyB0cnVlIDogZmFsc2U7XG59XG5cbmZ1bmN0aW9uIG9wdGlvblR5cGUodmFyaWF0aW9uOiBhbnkpIHtcbiAgY29uc3QgeyBtdWx0aXBsZVNlbGVjdCwgc2VsbGVyUHJvZHVjdEVkaXRhYmxlIH0gPSB2YXJpYXRpb24udmFyaWF0aW9uRmllbGQ7XG4gIHJldHVybiBkZXRlcm1pbmVCb29sZWFuKG11bHRpcGxlU2VsZWN0KSB8fFxuICAgIGRldGVybWluZUJvb2xlYW4oc2VsbGVyUHJvZHVjdEVkaXRhYmxlKVxuICAgID8gJ2NoZWNrYm94J1xuICAgIDogJ3JhZGlvJztcbn1cblxuaW50ZXJmYWNlIE9wdGlvblByb3BzIHtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBpbmRleDogbnVtYmVyO1xuICBpbnB1dFR5cGU6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBvcHRpb246IGFueTtcbiAgdmFyaWF0aW9uOiBhbnk7XG59XG5cbmZ1bmN0aW9uIFZhcmlhdGlvbkZpZWxkT3B0aW9uRWxlbWVudCh7XG4gIGRpc2FibGVkLFxuICBpbmRleCxcbiAgaW5wdXRUeXBlLFxuICBuYW1lLFxuICBvcHRpb24sXG4gIHZhcmlhdGlvbixcbn06IE9wdGlvblByb3BzKSB7XG4gIGNvbnN0IHsgY29udHJvbCwgZ2V0UXVvdGUgfSA9IHVzZU1lcmNoaUZvcm1Db250ZXh0KCk7XG4gIGNvbnN0IHsgZmllbGQgfSA9IHVzZUNvbnRyb2xsZXIoeyBuYW1lOiBgJHtuYW1lfS52YWx1ZWAsIGNvbnRyb2wgfSk7XG4gIGNvbnN0IHsgdmFyaWF0aW9uRmllbGQgfSA9IHZhcmlhdGlvbjtcbiAgY29uc3QgeyBzZWxsZXJQcm9kdWN0RWRpdGFibGUgfSA9IHZhcmlhdGlvbkZpZWxkO1xuICBjb25zdCB7IG9wdGlvbklkIH0gPSBvcHRpb247XG4gIGNvbnN0IGlucHV0SWQgPSBgJHtuYW1lfS5vcHRpb25zLmlkLSR7b3B0aW9uSWR9YDtcbiAgY29uc3QgYWN0aXZlSWRzID0gc3BsaXRTZWxlY3RlZE9wdGlvbnMoZmllbGQudmFsdWUpLm1hcChTdHJpbmcpLmZpbHRlcihCb29sZWFuKTtcbiAgY29uc3QgaXNBY3RpdmUgPSBhY3RpdmVJZHMuaW5jbHVkZXMoU3RyaW5nKG9wdGlvbklkKSk7XG4gIGNvbnN0IG9wdGlvbklucHV0VHlwZSA9IG9wdGlvblR5cGUodmFyaWF0aW9uKTtcbiAgY29uc3QgZG9DbGljayA9ICgpID0+IHtcbiAgICBsZXQgdXBkYXRlZElkcyA9IFsuLi5hY3RpdmVJZHNdO1xuXG4gICAgaWYgKHNlbGxlclByb2R1Y3RFZGl0YWJsZSB8fCBvcHRpb25JbnB1dFR5cGUgPT09ICdjaGVja2JveCcpIHtcbiAgICAgIC8vIENoZWNrYm94IExvZ2ljXG4gICAgICBpZiAoIXVwZGF0ZWRJZHMuaW5jbHVkZXMoU3RyaW5nKG9wdGlvbklkKSkpIHtcbiAgICAgICAgdXBkYXRlZElkcy5wdXNoKFN0cmluZyhvcHRpb25JZCkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdXBkYXRlZElkcyA9IHVwZGF0ZWRJZHMuZmlsdGVyKFxuICAgICAgICAgIChleGlzdGluZ0lkKSA9PiBleGlzdGluZ0lkICE9PSBTdHJpbmcob3B0aW9uSWQpXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChvcHRpb25JbnB1dFR5cGUgPT09ICdyYWRpbycpIHtcbiAgICAgIC8vIFJhZGlvIExvZ2ljXG4gICAgICB1cGRhdGVkSWRzID0gW1N0cmluZyhvcHRpb25JZCldO1xuICAgIH1cbiAgICBxdW90ZUFmdGVyRmllbGRDaGFuZ2UoXG4gICAgICBmaWVsZC5vbkNoYW5nZSxcbiAgICAgIGdldFF1b3RlLFxuICAgICAgdXBkYXRlZElkcy5maWx0ZXIoQm9vbGVhbikuam9pbignLCcpXG4gICAgKTtcbiAgfTtcbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPGlucHV0XG4gICAgICAgIHN0eWxlPXt7IGRpc3BsYXk6ICdub25lJyB9fVxuICAgICAgICBjaGVja2VkPXtpc0FjdGl2ZX1cbiAgICAgICAgdmFsdWU9e29wdGlvbklkfVxuICAgICAgICB0eXBlPXtvcHRpb25JbnB1dFR5cGV9XG4gICAgICAgIGlkPXtpbnB1dElkfVxuICAgICAgICBuYW1lPXtgJHtuYW1lfS52YWx1ZWB9XG4gICAgICAgIG9uQ2hhbmdlPXsoKSA9PiB0cnVlfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAvPlxuICAgICAge2lucHV0VHlwZSA9PT0gJ2ltYWdlJyA/IChcbiAgICAgICAgPFZhcmlhdGlvbk9wdGlvbkltYWdlXG4gICAgICAgICAgZG9DbGljaz17ZG9DbGlja31cbiAgICAgICAgICBpc0NoZWNrZWQ9e2lzQWN0aXZlfVxuICAgICAgICAgIG9wdGlvbj17b3B0aW9ufVxuICAgICAgICAvPlxuICAgICAgKSA6IChcbiAgICAgICAgPFZhcmlhdGlvbk9wdGlvbkNvbG91clxuICAgICAgICAgIGRvQ2xpY2s9e2RvQ2xpY2t9XG4gICAgICAgICAgaXNDaGVja2VkPXtpc0FjdGl2ZX1cbiAgICAgICAgICBvcHRpb249e29wdGlvbn1cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgPC8+XG4gICk7XG59XG5cbmludGVyZmFjZSBQcm9wcyB7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgaW5wdXRUeXBlPzogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHZhcmlhdGlvbjogYW55O1xuICBhZnRlck9wdGlvbnM/OiBSZWFjdC5SZWFjdE5vZGU7XG59XG5cbmV4cG9ydCBjb25zdCBWYXJpYXRpb25TZWxlY3RFbGVtZW50czogUmVhY3QuRkM8UHJvcHM+ID0gKHtcbiAgZGlzYWJsZWQsXG4gIGlucHV0VHlwZSA9ICdpbWFnZScsXG4gIG5hbWUsXG4gIHZhcmlhdGlvbixcbiAgYWZ0ZXJPcHRpb25zLFxufSkgPT4ge1xuICBjb25zdCB7IHNlbGVjdGFibGVPcHRpb25zID0gW10gfSA9IHZhcmlhdGlvbjtcbiAgY29uc3QgaXNJbWFnZSA9IGlucHV0VHlwZSA9PT0gJ2ltYWdlJztcbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT17aXNJbWFnZSA/ICdtZXJjaGktaW1hZ2Utc2VsZWN0LWNvbnRhaW5lcicgOiAnJ30+XG4gICAgICA8VmFyaWF0aW9uTGFiZWxcbiAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgdmFyaWF0aW9uQ2xhc3NOYW1lPXtgbWVyY2hpLWVtYmVkLWZvcm1faW5wdXQke1xuICAgICAgICAgIGlzSW1hZ2UgPyAnLWltYWdlJyA6ICcnXG4gICAgICAgIH0tc2VsZWN0YH1cbiAgICAgICAgdmFyaWF0aW9uPXt2YXJpYXRpb259XG4gICAgICAvPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzc05hbWU9e1xuICAgICAgICAgIGlzSW1hZ2VcbiAgICAgICAgICAgID8gJ21lcmNoaS1lbWJlZC1mb3JtX2ltYWdlLXNlbGVjdC1vcHRpb24tY29udGFpbmVyJ1xuICAgICAgICAgICAgOiAnbWVyY2hpLWVtYmVkLWZvcm1fY29sb3Itc2VsZWN0LWNvbnRhaW5lcidcbiAgICAgICAgfVxuICAgICAgPlxuICAgICAgICB7c29ydEJ5UG9zaXRpb24oc2VsZWN0YWJsZU9wdGlvbnMpLm1hcCgob3B0aW9uOiBhbnksIGluZGV4OiBudW1iZXIpID0+IChcbiAgICAgICAgICA8VmFyaWF0aW9uRmllbGRPcHRpb25FbGVtZW50XG4gICAgICAgICAgICBrZXk9e2B2YXJpYXRpb24tb3B0aW9uLSR7b3B0aW9uLm9wdGlvbklkfS0ke2luZGV4fWB9XG4gICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICBpbmRleD17aW5kZXh9XG4gICAgICAgICAgICBpbnB1dFR5cGU9e2lucHV0VHlwZX1cbiAgICAgICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgICAgICBvcHRpb249e29wdGlvbn1cbiAgICAgICAgICAgIHZhcmlhdGlvbj17dmFyaWF0aW9ufVxuICAgICAgICAgIC8+XG4gICAgICAgICkpfVxuICAgICAgPC9kaXY+XG4gICAgICB7YWZ0ZXJPcHRpb25zfVxuICAgICAgPFZhcmlhdGlvbkVycm9yIG5hbWU9e25hbWV9IC8+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5pbnRlcmZhY2UgRmllbGRQcm9wcyB7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgbmFtZTogc3RyaW5nO1xuICB2YXJpYXRpb246IGFueTtcbiAgYWZ0ZXJPcHRpb25zPzogUmVhY3QuUmVhY3ROb2RlO1xufVxuXG5leHBvcnQgY29uc3QgVmFyaWF0aW9uU2VsZWN0SW1hZ2UgPSAocHJvcHM6IEZpZWxkUHJvcHMpID0+IChcbiAgPFZhcmlhdGlvblNlbGVjdEVsZW1lbnRzIHsuLi5wcm9wc30gaW5wdXRUeXBlPSdpbWFnZScgLz5cbik7XG5leHBvcnQgY29uc3QgVmFyaWF0aW9uU2VsZWN0Q29sb3VyID0gKHByb3BzOiBGaWVsZFByb3BzKSA9PiAoXG4gIDxWYXJpYXRpb25TZWxlY3RFbGVtZW50cyB7Li4ucHJvcHN9IGlucHV0VHlwZT0nY29sb3VyJyAvPlxuKTtcbiJdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTs7QUFBQyxTQUFBQSxRQUFBQyxDQUFBLHNDQUFBRCxPQUFBLHdCQUFBRSxNQUFBLHVCQUFBQSxNQUFBLENBQUFDLFFBQUEsYUFBQUYsQ0FBQSxrQkFBQUEsQ0FBQSxnQkFBQUEsQ0FBQSxXQUFBQSxDQUFBLHlCQUFBQyxNQUFBLElBQUFELENBQUEsQ0FBQUcsV0FBQSxLQUFBRixNQUFBLElBQUFELENBQUEsS0FBQUMsTUFBQSxDQUFBRyxTQUFBLHFCQUFBSixDQUFBLEtBQUFELE9BQUEsQ0FBQUMsQ0FBQTtBQUFBLFNBQUFLLFFBQUFDLENBQUEsRUFBQUMsQ0FBQSxRQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsSUFBQSxDQUFBSixDQUFBLE9BQUFHLE1BQUEsQ0FBQUUscUJBQUEsUUFBQVgsQ0FBQSxHQUFBUyxNQUFBLENBQUFFLHFCQUFBLENBQUFMLENBQUEsR0FBQUMsQ0FBQSxLQUFBUCxDQUFBLEdBQUFBLENBQUEsQ0FBQVksTUFBQSxXQUFBTCxDQUFBLFdBQUFFLE1BQUEsQ0FBQUksd0JBQUEsQ0FBQVAsQ0FBQSxFQUFBQyxDQUFBLEVBQUFPLFVBQUEsT0FBQU4sQ0FBQSxDQUFBTyxJQUFBLENBQUFDLEtBQUEsQ0FBQVIsQ0FBQSxFQUFBUixDQUFBLFlBQUFRLENBQUE7QUFBQSxTQUFBUyxjQUFBWCxDQUFBLGFBQUFDLENBQUEsTUFBQUEsQ0FBQSxHQUFBVyxTQUFBLENBQUFDLE1BQUEsRUFBQVosQ0FBQSxVQUFBQyxDQUFBLFdBQUFVLFNBQUEsQ0FBQVgsQ0FBQSxJQUFBVyxTQUFBLENBQUFYLENBQUEsUUFBQUEsQ0FBQSxPQUFBRixPQUFBLENBQUFJLE1BQUEsQ0FBQUQsQ0FBQSxPQUFBWSxPQUFBLFdBQUFiLENBQUEsSUFBQWMsZUFBQSxDQUFBZixDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSxDQUFBRCxD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