@agilemotion/oui-react-js 2.0.21 → 2.0.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/InteractionPortalAppHome.js +18 -2
- package/dist/components/DataGrid.js +48 -7
- package/dist/components/dashboard/FoldingSideTabDashboard.js +5 -6
- package/dist/components/dashboard/components/blackDashboard/sidebar/FoldingTabSidebar.css +1 -2
- package/dist/components/dashboard/components/blackDashboard/sidebar/FoldingTabSidebar.js +133 -13
- package/dist/components/form/CurrencyField.js +121 -37
- package/dist/components/form/TextField.js +2 -1
- package/dist/event/Observable.js +3 -4
- package/dist/view/PortalDashboard.js +219 -6
- package/package.json +1 -1
- package/dist/components/dashboard/FoldingSideTabDashboard.bck.js +0 -333
- package/dist/components/dashboard/components/blackDashboard/sidebar/FoldingTabSidebar.bck.js +0 -316
|
@@ -6,65 +6,148 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _TextField = _interopRequireDefault(require("@mui/material/TextField"));
|
|
9
|
-
var _InputAdornment = _interopRequireDefault(require("@mui/material/InputAdornment"));
|
|
10
9
|
var _BaseField = require("./BaseField");
|
|
11
10
|
var _Utils = _interopRequireDefault(require("../../Utils"));
|
|
12
|
-
var _reactRedux = require("react-redux");
|
|
13
11
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
12
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
15
13
|
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
16
14
|
const CurrencyFieldWrapper = /*#__PURE__*/_react.default.memo(props => {
|
|
17
|
-
var _props$config$attribu, _props$config$attribu2, _props$config$attribu3, _props$config$attribu4, _props$config$attribu5
|
|
15
|
+
var _props$config$attribu, _props$config$attribu2, _props$config$attribu3, _props$config$attribu4, _props$config$attribu5;
|
|
18
16
|
const base = props.base;
|
|
19
17
|
const width = !_Utils.default.isNull((_props$config$attribu = props.config.attributes) === null || _props$config$attribu === void 0 || (_props$config$attribu = _props$config$attribu.style) === null || _props$config$attribu === void 0 ? void 0 : _props$config$attribu.width) ? props.config.attributes.style.width : "100%";
|
|
20
18
|
const maxWidth = !_Utils.default.isNull((_props$config$attribu2 = props.config.attributes) === null || _props$config$attribu2 === void 0 || (_props$config$attribu2 = _props$config$attribu2.style) === null || _props$config$attribu2 === void 0 ? void 0 : _props$config$attribu2.maxWidth) ? props.config.attributes.style.maxWidth : null;
|
|
21
19
|
const minWidth = !_Utils.default.isNull((_props$config$attribu3 = props.config.attributes) === null || _props$config$attribu3 === void 0 || (_props$config$attribu3 = _props$config$attribu3.style) === null || _props$config$attribu3 === void 0 ? void 0 : _props$config$attribu3.minWidth) ? props.config.attributes.style.minWidth : "232px";
|
|
22
20
|
const height = !_Utils.default.isNull((_props$config$attribu4 = props.config.attributes) === null || _props$config$attribu4 === void 0 || (_props$config$attribu4 = _props$config$attribu4.style) === null || _props$config$attribu4 === void 0 ? void 0 : _props$config$attribu4.height) ? props.config.attributes.style.height : null;
|
|
23
|
-
const
|
|
24
|
-
const currencySymbol = !_Utils.default.isNull((_props$config$attribu6 = props.config.attributes) === null || _props$config$attribu6 === void 0 ? void 0 : _props$config$attribu6.currencySymbol) ? props.config.attributes.currencySymbol : "R";
|
|
21
|
+
const currencySymbol = !_Utils.default.isNull((_props$config$attribu5 = props.config.attributes) === null || _props$config$attribu5 === void 0 ? void 0 : _props$config$attribu5.currencySymbol) ? props.config.attributes.currencySymbol : "R";
|
|
25
22
|
const textRef = (0, _react.useRef)(null);
|
|
23
|
+
const caretRef = (0, _react.useRef)(null);
|
|
26
24
|
const [displayValue, setDisplayValue] = (0, _react.useState)("");
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
25
|
+
const [focused, setFocused] = (0, _react.useState)(false);
|
|
26
|
+
|
|
27
|
+
// Sanitised "significant" characters of a string: digits and a single dot.
|
|
28
|
+
const significant = s => s.replace(/[^\d.]/g, "");
|
|
29
|
+
|
|
30
|
+
// Group + symbol a sanitised numeric string while preserving a trailing dot
|
|
31
|
+
// and partial decimals so it can mask live as the user types. e.g.
|
|
32
|
+
// "2000000" -> "R2,000,000"
|
|
33
|
+
// "2000000." -> "R2,000,000."
|
|
34
|
+
// "2000000.7" -> "R2,000,000.7"
|
|
35
|
+
const maskCurrency = (raw, negative) => {
|
|
36
|
+
if (raw === "") {
|
|
37
|
+
return "";
|
|
38
|
+
}
|
|
39
|
+
const hasDot = raw.indexOf(".") !== -1;
|
|
40
|
+
let intPart = hasDot ? raw.slice(0, raw.indexOf(".")) : raw;
|
|
41
|
+
const decPart = hasDot ? raw.slice(raw.indexOf(".") + 1) : null;
|
|
42
|
+
let groupedInt;
|
|
43
|
+
if (intPart === "") {
|
|
44
|
+
groupedInt = "0"; // ".5" reads as "0.5"
|
|
39
45
|
} else {
|
|
40
|
-
|
|
46
|
+
groupedInt = intPart.replace(/^0+(?=\d)/, ""); // drop leading zeros
|
|
47
|
+
groupedInt = groupedInt.replace(/\B(?=(\d{3})+(?!\d))/g, ","); // thousands grouping
|
|
48
|
+
}
|
|
49
|
+
let result = currencySymbol + (negative ? "-" : "") + groupedInt;
|
|
50
|
+
if (hasDot) {
|
|
51
|
+
result += "." + decPart;
|
|
52
|
+
}
|
|
53
|
+
return result;
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
// Canonical, two-decimal display used on blur / external value changes:
|
|
57
|
+
// "R2,000,000.75".
|
|
58
|
+
const formatCurrency = value => {
|
|
59
|
+
const num = Number(value);
|
|
60
|
+
if (value === null || value === undefined || value === "" || isNaN(num)) {
|
|
61
|
+
return "";
|
|
62
|
+
}
|
|
63
|
+
return currencySymbol + num.toLocaleString("en-US", {
|
|
64
|
+
minimumFractionDigits: 2,
|
|
65
|
+
maximumFractionDigits: 2
|
|
66
|
+
});
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
// Keep the display in sync with the model only when not actively editing,
|
|
70
|
+
// so a value change never clobbers what the user is typing.
|
|
71
|
+
(0, _react.useEffect)(() => {
|
|
72
|
+
if (!focused) {
|
|
73
|
+
setDisplayValue(formatCurrency(base.value));
|
|
74
|
+
}
|
|
75
|
+
}, [base.value, focused]);
|
|
76
|
+
|
|
77
|
+
// Restore the caret after a live-mask re-render, counting significant chars
|
|
78
|
+
// so inserted/removed commas don't make the cursor jump.
|
|
79
|
+
(0, _react.useLayoutEffect)(() => {
|
|
80
|
+
if (focused && caretRef.current != null && textRef.current) {
|
|
81
|
+
const pos = caretRef.current;
|
|
82
|
+
try {
|
|
83
|
+
textRef.current.setSelectionRange(pos, pos);
|
|
84
|
+
} catch (e) {
|
|
85
|
+
// input not yet a text type / not focusable — ignore
|
|
86
|
+
}
|
|
87
|
+
caretRef.current = null;
|
|
41
88
|
}
|
|
42
|
-
}
|
|
89
|
+
});
|
|
43
90
|
const handleInputChange = event => {
|
|
44
|
-
const
|
|
45
|
-
const
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
91
|
+
const input = event.target;
|
|
92
|
+
const newRawValue = input.value;
|
|
93
|
+
const caret = input.selectionStart != null ? input.selectionStart : newRawValue.length;
|
|
94
|
+
const negative = newRawValue.trimStart().startsWith("-");
|
|
95
|
+
|
|
96
|
+
// Digits/dot to the LEFT of the caret — drives where the caret lands
|
|
97
|
+
// again after re-masking.
|
|
98
|
+
let leftSignificant = significant(newRawValue.slice(0, caret)).length;
|
|
99
|
+
|
|
100
|
+
// Sanitise: digits + a single dot, at most two decimals.
|
|
101
|
+
let raw = significant(newRawValue);
|
|
102
|
+
const firstDot = raw.indexOf(".");
|
|
103
|
+
if (firstDot !== -1) {
|
|
104
|
+
raw = raw.slice(0, firstDot + 1) + raw.slice(firstDot + 1).replace(/\./g, "");
|
|
105
|
+
const parts = raw.split(".");
|
|
106
|
+
raw = parts[0] + "." + (parts[1] || "").slice(0, 2);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
// Backspacing over a grouping comma removes only the separator, leaving
|
|
110
|
+
// the significant chars unchanged. Treat that as "delete the digit
|
|
111
|
+
// before the comma" so backspace feels natural.
|
|
112
|
+
const oldRaw = significant(displayValue);
|
|
113
|
+
if (raw === oldRaw && newRawValue.length < displayValue.length && leftSignificant > 0) {
|
|
114
|
+
raw = raw.slice(0, leftSignificant - 1) + raw.slice(leftSignificant);
|
|
115
|
+
leftSignificant -= 1;
|
|
116
|
+
}
|
|
117
|
+
const masked = maskCurrency(raw, negative);
|
|
118
|
+
setDisplayValue(masked);
|
|
119
|
+
|
|
120
|
+
// Where to put the caret: advance through the masked string until we've
|
|
121
|
+
// passed the same number of significant chars that were left of it.
|
|
122
|
+
let pos = 0;
|
|
123
|
+
let seen = 0;
|
|
124
|
+
while (pos < masked.length && seen < leftSignificant) {
|
|
125
|
+
if (/[\d.]/.test(masked[pos])) {
|
|
126
|
+
seen += 1;
|
|
54
127
|
}
|
|
55
|
-
|
|
128
|
+
pos += 1;
|
|
129
|
+
}
|
|
130
|
+
caretRef.current = pos;
|
|
131
|
+
|
|
132
|
+
// Push the numeric value to the model.
|
|
133
|
+
if (raw === "" || raw === ".") {
|
|
134
|
+
base.handleValueChange(null);
|
|
135
|
+
return;
|
|
56
136
|
}
|
|
137
|
+
const numeric = parseFloat((negative ? "-" : "") + raw);
|
|
138
|
+
base.handleValueChange(isNaN(numeric) ? null : numeric);
|
|
139
|
+
};
|
|
140
|
+
const handleFocus = () => {
|
|
141
|
+
setFocused(true);
|
|
57
142
|
};
|
|
58
143
|
const handleBlur = () => {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
setDisplayValue("");
|
|
63
|
-
}
|
|
144
|
+
setFocused(false);
|
|
145
|
+
caretRef.current = null;
|
|
146
|
+
setDisplayValue(formatCurrency(base.value));
|
|
64
147
|
};
|
|
65
148
|
return /*#__PURE__*/_react.default.createElement(_TextField.default, {
|
|
66
149
|
id: props.id,
|
|
67
|
-
type:
|
|
150
|
+
type: "text",
|
|
68
151
|
required: base.required,
|
|
69
152
|
inputRef: textRef,
|
|
70
153
|
label: !_Utils.default.isNull(props.config.attributes) ? props.config.attributes['label'] : null,
|
|
@@ -84,6 +167,7 @@ const CurrencyFieldWrapper = /*#__PURE__*/_react.default.memo(props => {
|
|
|
84
167
|
variant: "outlined",
|
|
85
168
|
value: displayValue,
|
|
86
169
|
onChange: handleInputChange,
|
|
170
|
+
onFocus: handleFocus,
|
|
87
171
|
onBlur: handleBlur
|
|
88
172
|
});
|
|
89
173
|
});
|
|
@@ -106,4 +190,4 @@ const CurrencyField = /*#__PURE__*/_react.default.memo(props => {
|
|
|
106
190
|
}, props)));
|
|
107
191
|
});
|
|
108
192
|
var _default = exports.default = CurrencyField;
|
|
109
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfVGV4dEZpZWxkIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9JbnB1dEFkb3JubWVudCIsIl9CYXNlRmllbGQiLCJfVXRpbHMiLCJfcmVhY3RSZWR1eCIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJoYXMiLCJnZXQiLCJzZXQiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIl9leHRlbmRzIiwiYXNzaWduIiwiYmluZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImFwcGx5IiwiQ3VycmVuY3lGaWVsZFdyYXBwZXIiLCJSZWFjdCIsIm1lbW8iLCJwcm9wcyIsIl9wcm9wcyRjb25maWckYXR0cmlidSIsIl9wcm9wcyRjb25maWckYXR0cmlidTIiLCJfcHJvcHMkY29uZmlnJGF0dHJpYnUzIiwiX3Byb3BzJGNvbmZpZyRhdHRyaWJ1NCIsIl9wcm9wcyRjb25maWckYXR0cmlidTUiLCJfcHJvcHMkY29uZmlnJGF0dHJpYnU2IiwiYmFzZSIsIndpZHRoIiwiVXRpbHMiLCJpc051bGwiLCJjb25maWciLCJhdHRyaWJ1dGVzIiwic3R5bGUiLCJtYXhXaWR0aCIsIm1pbldpZHRoIiwiaGVpZ2h0IiwiY3VycmVuY3kiLCJjdXJyZW5jeVN5bWJvbCIsInRleHRSZWYiLCJ1c2VSZWYiLCJkaXNwbGF5VmFsdWUiLCJzZXREaXNwbGF5VmFsdWUiLCJ1c2VTdGF0ZSIsImZvcm1hdHRlciIsIkludGwiLCJOdW1iZXJGb3JtYXQiLCJtaW5pbXVtRnJhY3Rpb25EaWdpdHMiLCJtYXhpbXVtRnJhY3Rpb25EaWdpdHMiLCJmb3JtYXROdW1iZXJXaXRoQ29tbWFzIiwiaW5wdXQiLCJ0b1N0cmluZyIsInJlcGxhY2UiLCJ1c2VFZmZlY3QiLCJ2YWx1ZSIsInVuZGVmaW5lZCIsImhhbmRsZUlucHV0Q2hhbmdlIiwiZXZlbnQiLCJyYXciLCJ0YXJnZXQiLCJwYXJ0cyIsInNwbGl0IiwibWF0Y2giLCJwcmV2ZW50RGVmYXVsdCIsIm51bWVyaWMiLCJwYXJzZUZsb2F0IiwiaXNOYU4iLCJoYW5kbGVWYWx1ZUNoYW5nZSIsImhhbmRsZUJsdXIiLCJmb3JtYXQiLCJjcmVhdGVFbGVtZW50IiwiaWQiLCJ0eXBlIiwicmVxdWlyZWQiLCJpbnB1dFJlZiIsImxhYmVsIiwib25LZXlVcCIsImtleUhhbmRsZXIiLCJlcnJvciIsImhhc0Vycm9yIiwiaGVscGVyVGV4dCIsImVycm9yTWVzc2FnZSIsIm1hcmdpbiIsImRpc2FibGVkIiwic2l6ZSIsImNvbG9yIiwidmFyaWFudCIsIm9uQ2hhbmdlIiwib25CbHVyIiwiQ3VycmVuY3lGaWVsZCIsIkJhc2VGaWVsZCIsImhhbmRsZSIsInZhbHVlUGFyc2VyIiwiaW5ib3VuZCIsIm51bVZhbHVlIiwiTWF0aCIsInJvdW5kIiwiTnVtYmVyIiwiRVBTSUxPTiIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL0N1cnJlbmN5RmllbGQuanN4Il0sInNvdXJjZXNDb250ZW50IjpbIu+7v2ltcG9ydCBSZWFjdCwge3VzZVJlZiwgdXNlU3RhdGUsIHVzZUVmZmVjdH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFRleHRGaWVsZENvbXBvbmVudCBmcm9tICdAbXVpL21hdGVyaWFsL1RleHRGaWVsZCc7XG5pbXBvcnQgSW5wdXRBZG9ybm1lbnQgZnJvbSAnQG11aS9tYXRlcmlhbC9JbnB1dEFkb3JubWVudCc7XG5pbXBvcnQge0Jhc2VGaWVsZH0gZnJvbSBcIi4vQmFzZUZpZWxkXCI7XG5pbXBvcnQgVXRpbHMgZnJvbSBcIi4uLy4uL1V0aWxzXCI7XG5pbXBvcnQgeyB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcblxuY29uc3QgQ3VycmVuY3lGaWVsZFdyYXBwZXIgPSBSZWFjdC5tZW1vKChwcm9wcykgPT4ge1xuICAgIGNvbnN0IGJhc2UgPSBwcm9wcy5iYXNlO1xuICAgIGNvbnN0IHdpZHRoID0gIVV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcuYXR0cmlidXRlcz8uc3R5bGU/LndpZHRoKSA/IHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzLnN0eWxlLndpZHRoIDogXCIxMDAlXCI7XG4gICAgY29uc3QgbWF4V2lkdGggPSAhVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzPy5zdHlsZT8ubWF4V2lkdGgpID8gcHJvcHMuY29uZmlnLmF0dHJpYnV0ZXMuc3R5bGUubWF4V2lkdGggOiBudWxsO1xuICAgIGNvbnN0IG1pbldpZHRoID0gIVV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcuYXR0cmlidXRlcz8uc3R5bGU/Lm1pbldpZHRoKSA/IHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzLnN0eWxlLm1pbldpZHRoIDogXCIyMzJweFwiO1xuICAgIGNvbnN0IGhlaWdodCA9ICFVdGlscy5pc051bGwocHJvcHMuY29uZmlnLmF0dHJpYnV0ZXM/LnN0eWxlPy5oZWlnaHQpID8gcHJvcHMuY29uZmlnLmF0dHJpYnV0ZXMuc3R5bGUuaGVpZ2h0IDogbnVsbDtcbiAgICBjb25zdCBjdXJyZW5jeSA9ICFVdGlscy5pc051bGwocHJvcHMuY29uZmlnLmF0dHJpYnV0ZXM/LmN1cnJlbmN5KSA/IHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzLmN1cnJlbmN5IDogXCJaQVJcIjtcbiAgICBjb25zdCBjdXJyZW5jeVN5bWJvbCA9ICFVdGlscy5pc051bGwocHJvcHMuY29uZmlnLmF0dHJpYnV0ZXM/LmN1cnJlbmN5U3ltYm9sKSA/IHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzLmN1cnJlbmN5U3ltYm9sIDogXCJSXCI7XG4gICAgY29uc3QgdGV4dFJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBbZGlzcGxheVZhbHVlLCBzZXREaXNwbGF5VmFsdWVdID0gdXNlU3RhdGUoXCJcIik7XG5cbiAgICBjb25zdCBmb3JtYXR0ZXIgPSBuZXcgSW50bC5OdW1iZXJGb3JtYXQoXCJlbi1aQVwiLCB7XG4gICAgICAgIHN0eWxlOiBcImN1cnJlbmN5XCIsXG4gICAgICAgIGN1cnJlbmN5OiBjdXJyZW5jeSxcbiAgICAgICAgbWluaW11bUZyYWN0aW9uRGlnaXRzOiAyLFxuICAgICAgICBtYXhpbXVtRnJhY3Rpb25EaWdpdHM6IDIsXG4gICAgfSk7XG5cbiAgICBmdW5jdGlvbiBmb3JtYXROdW1iZXJXaXRoQ29tbWFzKGlucHV0KSB7XG4gICAgICAgIHJldHVybiBpbnB1dC50b1N0cmluZygpLnJlcGxhY2UoL1xcQig/PShcXGR7M30pKyg/IVxcZCkpL2csIFwiLFwiKTtcbiAgICB9XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoYmFzZS52YWx1ZSA9PT0gbnVsbCB8fCBiYXNlLnZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHNldERpc3BsYXlWYWx1ZShcIlwiKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNldERpc3BsYXlWYWx1ZShjdXJyZW5jeVN5bWJvbCArIGZvcm1hdE51bWJlcldpdGhDb21tYXMoYmFzZS52YWx1ZSkpO1xuICAgICAgICB9XG4gICAgfSwgW2Jhc2UudmFsdWVdKTtcblxuICAgIGNvbnN0IGhhbmRsZUlucHV0Q2hhbmdlID0gKGV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IHJhdyA9IGV2ZW50LnRhcmdldC52YWx1ZS5yZXBsYWNlKC9bXlxcZC4tXS9nLCBcIlwiKTtcblxuICAgICAgICBjb25zdCBwYXJ0cyA9IHJhdy5zcGxpdCgnLicpO1xuICAgICAgICBpZiAoKHBhcnRzLmxlbmd0aCA9PT0gMiAmJiBwYXJ0c1sxXS5sZW5ndGggPiAyKSB8fCBVdGlscy5pc051bGwocmF3Lm1hdGNoKFwiXlxcXFxkKyhcXFxcLlxcXFxkezAsMn0pPyRcIikpKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgbnVtZXJpYyA9IHBhcnNlRmxvYXQocmF3KTtcbiAgICAgICAgICAgIGlmICghaXNOYU4obnVtZXJpYykpIHtcbiAgICAgICAgICAgICAgICBiYXNlLmhhbmRsZVZhbHVlQ2hhbmdlKG51bWVyaWMpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBiYXNlLmhhbmRsZVZhbHVlQ2hhbmdlKDApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzZXREaXNwbGF5VmFsdWUoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVCbHVyID0gKCkgPT4ge1xuICAgICAgICBpZiAoYmFzZS52YWx1ZSkge1xuICAgICAgICAgICAgc2V0RGlzcGxheVZhbHVlKGZvcm1hdHRlci5mb3JtYXQoYmFzZS52YWx1ZSkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc2V0RGlzcGxheVZhbHVlKFwiXCIpO1xuICAgICAgICB9XG5cbiAgICB9O1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPFRleHRGaWVsZENvbXBvbmVudFxuICAgICAgICAgICAgaWQ9e3Byb3BzLmlkfVxuICAgICAgICAgICAgdHlwZT17cHJvcHMudHlwZX1cbiAgICAgICAgICAgIHJlcXVpcmVkPXtiYXNlLnJlcXVpcmVkfVxuICAgICAgICAgICAgaW5wdXRSZWY9e3RleHRSZWZ9XG4gICAgICAgICAgICBsYWJlbD17IVV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcuYXR0cmlidXRlcykgPyBwcm9wcy5jb25maWcuYXR0cmlidXRlc1snbGFiZWwnXSA6IG51bGx9XG4gICAgICAgICAgICBvbktleVVwPXtwcm9wcy5rZXlIYW5kbGVyfVxuICAgICAgICAgICAgZXJyb3I9e2Jhc2UuaGFzRXJyb3J9XG4gICAgICAgICAgICBoZWxwZXJUZXh0PXtiYXNlLmVycm9yTWVzc2FnZX1cbiAgICAgICAgICAgIG1hcmdpbj1cImRlbnNlXCJcbiAgICAgICAgICAgIGRpc2FibGVkPXtiYXNlLmRpc2FibGVkfVxuICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgbWluV2lkdGg6IG1pbldpZHRoLFxuICAgICAgICAgICAgICAgIHdpZHRoOiB3aWR0aCxcbiAgICAgICAgICAgICAgICBtYXhXaWR0aDogbWF4V2lkdGgsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBoZWlnaHQsXG4gICAgICAgICAgICAgICAgY29sb3I6ICdzZWNvbmRhcnknXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgdmFyaWFudD1cIm91dGxpbmVkXCJcbiAgICAgICAgICAgIHZhbHVlPXtkaXNwbGF5VmFsdWV9XG4gICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlSW5wdXRDaGFuZ2V9XG4gICAgICAgICAgICBvbkJsdXI9e2hhbmRsZUJsdXJ9XG4gICAgICAgIC8+XG4gICAgKTtcbn0pO1xuXG5jb25zdCBDdXJyZW5jeUZpZWxkID0gUmVhY3QubWVtbygocHJvcHMpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgICA8QmFzZUZpZWxkXG4gICAgICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgICAgICBoYW5kbGU9e3Byb3BzLmhhbmRsZX1cbiAgICAgICAgICAgIHZhbHVlUGFyc2VyPXsodmFsdWUsIGluYm91bmQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gJycpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKGluYm91bmQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbnVtVmFsdWUgPSBwYXJzZUZsb2F0KHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGlzTmFOKG51bVZhbHVlKSA/IG51bGwgOiBNYXRoLnJvdW5kKChudW1WYWx1ZSArIE51bWJlci5FUFNJTE9OKSAqIDEwMCkgLyAxMDA7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH19XG4gICAgICAgID5cbiAgICAgICAgICAgIHtiYXNlID0+XG4gICAgICAgICAgICAgICAgPEN1cnJlbmN5RmllbGRXcmFwcGVyXG4gICAgICAgICAgICAgICAgICAgIGJhc2U9e2Jhc2V9XG4gICAgICAgICAgICAgICAgICAgIHsuLi5wcm9wc31cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9DdXJyZW5jeUZpZWxkV3JhcHBlcj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9CYXNlRmllbGQ+XG4gICAgKTtcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBDdXJyZW5jeUZpZWxkO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQyxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDRCxJQUFBQyxVQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxlQUFBLEdBQUFELHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBSSxVQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxNQUFBLEdBQUFILHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBTSxXQUFBLEdBQUFOLE9BQUE7QUFBMEMsU0FBQUUsdUJBQUFLLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUE7QUFBQSxTQUFBUix3QkFBQVEsQ0FBQSxFQUFBRyxDQUFBLDZCQUFBQyxPQUFBLE1BQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9B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QUFFckQsSUFBSSxDQUFDc0QsWUFBYTtJQUM5QkMsTUFBTSxFQUFDLE9BQU87SUFDZEMsUUFBUSxFQUFFeEQsSUFBSSxDQUFDd0QsUUFBUztJQUN4QkMsSUFBSSxFQUFDLE9BQU87SUFDWm5ELEtBQUssRUFBRTtNQUNIRSxRQUFRLEVBQUVBLFFBQVE7TUFDbEJQLEtBQUssRUFBRUEsS0FBSztNQUNaTSxRQUFRLEVBQUVBLFFBQVE7TUFDbEJFLE1BQU0sRUFBRUEsTUFBTTtNQUNkaUQsS0FBSyxFQUFFO0lBQ1gsQ0FBRTtJQUNGQyxPQUFPLEVBQUMsVUFBVTtJQUNsQmhDLEtBQUssRUFBRWIsWUFBYTtJQUNwQjhDLFFBQVEsRUFBRS9CLGlCQUFrQjtJQUM1QmdDLE1BQU0sRUFBRXBCO0VBQVcsQ0FDdEIsQ0FBQztBQUVWLENBQUMsQ0FBQztBQUVGLE1BQU1xQixhQUFhLGdCQUFHdkUsY0FBSyxDQUFDQyxJQUFJLENBQUVDLEtBQUssSUFBSztFQUN4QyxvQkFDSXJDLE1BQUEsQ0FBQVcsT0FBQSxDQUFBNEUsYUFBQSxDQUFDakYsVUFBQSxDQUFBcUcsU0FBUyxFQUFBL0UsUUFBQSxLQUNGUyxLQUFLO0lBQ1R1RSxNQUFNLEVBQUV2RSxLQUFLLENBQUN1RSxNQUFPO0lBQ3JCQyxXQUFXLEVBQUVBLENBQUN0QyxLQUFLLEVBQUV1QyxPQUFPLEtBQUs7TUFDN0IsSUFBSXZDLEtBQUssS0FBSyxJQUFJLElBQUlBLEtBQUssS0FBS0MsU0FBUyxJQUFJRCxLQUFLLEtBQUssRUFBRSxFQUFFO1FBQ3ZELE9BQU8sSUFBSTtNQUNmO01BRUEsSUFBSXVDLE9BQU8sRUFBRTtRQUNULE1BQU1DLFFBQVEsR0FBRzdCLFVBQVUsQ0FBQ1gsS0FBSyxDQUFDO1FBQ2xDLE9BQU9ZLEtBQUssQ0FBQzRCLFFBQVEsQ0FBQyxHQUFHLElBQUksR0FBR0MsSUFBSSxDQUFDQyxLQUFLLENBQUMsQ0FBQ0YsUUFBUSxHQUFHRyxNQUFNLENBQUNDLE9BQU8sSUFBSSxHQUFHLENBQUMsR0FBRyxHQUFHO01BQ3ZGLENBQUMsTUFBTTtRQUNILE9BQU81QyxLQUFLO01BQ2hCO0lBQ0o7RUFBRSxJQUVEM0IsSUFBSSxpQkFDRDVDLE1BQUEsQ0FBQVcsT0FBQSxDQUFBNEUsYUFBQSxDQUFDckQsb0JBQW9CLEVBQUFOLFFBQUE7SUFDakJnQixJQUFJLEVBQUVBO0VBQUssR0FDUFAsS0FBSyxDQUVTLENBRW5CLENBQUM7QUFFcEIsQ0FBQyxDQUFDO0FBQUMsSUFBQStFLFFBQUEsR0FBQUMsT0FBQSxDQUFBMUcsT0FBQSxHQUVZK0YsYUFBYSIsImlnbm9yZUxpc3QiOltdfQ==
|
|
193
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfVGV4dEZpZWxkIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9CYXNlRmllbGQiLCJfVXRpbHMiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiaGFzIiwiZ2V0Iiwic2V0IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJfZXh0ZW5kcyIsImFzc2lnbiIsImJpbmQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJhcHBseSIsIkN1cnJlbmN5RmllbGRXcmFwcGVyIiwiUmVhY3QiLCJtZW1vIiwicHJvcHMiLCJfcHJvcHMkY29uZmlnJGF0dHJpYnUiLCJfcHJvcHMkY29uZmlnJGF0dHJpYnUyIiwiX3Byb3BzJGNvbmZpZyRhdHRyaWJ1MyIsIl9wcm9wcyRjb25maWckYXR0cmlidTQiLCJfcHJvcHMkY29uZmlnJGF0dHJpYnU1IiwiYmFzZSIsIndpZHRoIiwiVXRpbHMiLCJpc051bGwiLCJjb25maWciLCJhdHRyaWJ1dGVzIiwic3R5bGUiLCJtYXhXaWR0aCIsIm1pbldpZHRoIiwiaGVpZ2h0IiwiY3VycmVuY3lTeW1ib2wiLCJ0ZXh0UmVmIiwidXNlUmVmIiwiY2FyZXRSZWYiLCJkaXNwbGF5VmFsdWUiLCJzZXREaXNwbGF5VmFsdWUiLCJ1c2VTdGF0ZSIsImZvY3VzZWQiLCJzZXRGb2N1c2VkIiwic2lnbmlmaWNhbnQiLCJzIiwicmVwbGFjZSIsIm1hc2tDdXJyZW5jeSIsInJhdyIsIm5lZ2F0aXZlIiwiaGFzRG90IiwiaW5kZXhPZiIsImludFBhcnQiLCJzbGljZSIsImRlY1BhcnQiLCJncm91cGVkSW50IiwicmVzdWx0IiwiZm9ybWF0Q3VycmVuY3kiLCJ2YWx1ZSIsIm51bSIsIk51bWJlciIsInVuZGVmaW5lZCIsImlzTmFOIiwidG9Mb2NhbGVTdHJpbmciLCJtaW5pbXVtRnJhY3Rpb25EaWdpdHMiLCJtYXhpbXVtRnJhY3Rpb25EaWdpdHMiLCJ1c2VFZmZlY3QiLCJ1c2VMYXlvdXRFZmZlY3QiLCJjdXJyZW50IiwicG9zIiwic2V0U2VsZWN0aW9uUmFuZ2UiLCJoYW5kbGVJbnB1dENoYW5nZSIsImV2ZW50IiwiaW5wdXQiLCJ0YXJnZXQiLCJuZXdSYXdWYWx1ZSIsImNhcmV0Iiwic2VsZWN0aW9uU3RhcnQiLCJ0cmltU3RhcnQiLCJzdGFydHNXaXRoIiwibGVmdFNpZ25pZmljYW50IiwiZmlyc3REb3QiLCJwYXJ0cyIsInNwbGl0Iiwib2xkUmF3IiwibWFza2VkIiwic2VlbiIsInRlc3QiLCJoYW5kbGVWYWx1ZUNoYW5nZSIsIm51bWVyaWMiLCJwYXJzZUZsb2F0IiwiaGFuZGxlRm9jdXMiLCJoYW5kbGVCbHVyIiwiY3JlYXRlRWxlbWVudCIsImlkIiwidHlwZSIsInJlcXVpcmVkIiwiaW5wdXRSZWYiLCJsYWJlbCIsIm9uS2V5VXAiLCJrZXlIYW5kbGVyIiwiZXJyb3IiLCJoYXNFcnJvciIsImhlbHBlclRleHQiLCJlcnJvck1lc3NhZ2UiLCJtYXJnaW4iLCJkaXNhYmxlZCIsInNpemUiLCJjb2xvciIsInZhcmlhbnQiLCJvbkNoYW5nZSIsIm9uRm9jdXMiLCJvbkJsdXIiLCJDdXJyZW5jeUZpZWxkIiwiQmFzZUZpZWxkIiwiaGFuZGxlIiwidmFsdWVQYXJzZXIiLCJpbmJvdW5kIiwibnVtVmFsdWUiLCJNYXRoIiwicm91bmQiLCJFUFNJTE9OIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vQ3VycmVuY3lGaWVsZC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7dXNlUmVmLCB1c2VTdGF0ZSwgdXNlRWZmZWN0LCB1c2VMYXlvdXRFZmZlY3R9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBUZXh0RmllbGRDb21wb25lbnQgZnJvbSAnQG11aS9tYXRlcmlhbC9UZXh0RmllbGQnO1xuaW1wb3J0IHtCYXNlRmllbGR9IGZyb20gXCIuL0Jhc2VGaWVsZFwiO1xuaW1wb3J0IFV0aWxzIGZyb20gXCIuLi8uLi9VdGlsc1wiO1xuXG5jb25zdCBDdXJyZW5jeUZpZWxkV3JhcHBlciA9IFJlYWN0Lm1lbW8oKHByb3BzKSA9PiB7XG4gICAgY29uc3QgYmFzZSA9IHByb3BzLmJhc2U7XG4gICAgY29uc3Qgd2lkdGggPSAhVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzPy5zdHlsZT8ud2lkdGgpID8gcHJvcHMuY29uZmlnLmF0dHJpYnV0ZXMuc3R5bGUud2lkdGggOiBcIjEwMCVcIjtcbiAgICBjb25zdCBtYXhXaWR0aCA9ICFVdGlscy5pc051bGwocHJvcHMuY29uZmlnLmF0dHJpYnV0ZXM/LnN0eWxlPy5tYXhXaWR0aCkgPyBwcm9wcy5jb25maWcuYXR0cmlidXRlcy5zdHlsZS5tYXhXaWR0aCA6IG51bGw7XG4gICAgY29uc3QgbWluV2lkdGggPSAhVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzPy5zdHlsZT8ubWluV2lkdGgpID8gcHJvcHMuY29uZmlnLmF0dHJpYnV0ZXMuc3R5bGUubWluV2lkdGggOiBcIjIzMnB4XCI7XG4gICAgY29uc3QgaGVpZ2h0ID0gIVV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcuYXR0cmlidXRlcz8uc3R5bGU/LmhlaWdodCkgPyBwcm9wcy5jb25maWcuYXR0cmlidXRlcy5zdHlsZS5oZWlnaHQgOiBudWxsO1xuICAgIGNvbnN0IGN1cnJlbmN5U3ltYm9sID0gIVV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcuYXR0cmlidXRlcz8uY3VycmVuY3lTeW1ib2wpID8gcHJvcHMuY29uZmlnLmF0dHJpYnV0ZXMuY3VycmVuY3lTeW1ib2wgOiBcIlJcIjtcbiAgICBjb25zdCB0ZXh0UmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IGNhcmV0UmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IFtkaXNwbGF5VmFsdWUsIHNldERpc3BsYXlWYWx1ZV0gPSB1c2VTdGF0ZShcIlwiKTtcbiAgICBjb25zdCBbZm9jdXNlZCwgc2V0Rm9jdXNlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgICAvLyBTYW5pdGlzZWQgXCJzaWduaWZpY2FudFwiIGNoYXJhY3RlcnMgb2YgYSBzdHJpbmc6IGRpZ2l0cyBhbmQgYSBzaW5nbGUgZG90LlxuICAgIGNvbnN0IHNpZ25pZmljYW50ID0gKHMpID0+IHMucmVwbGFjZSgvW15cXGQuXS9nLCBcIlwiKTtcblxuICAgIC8vIEdyb3VwICsgc3ltYm9sIGEgc2FuaXRpc2VkIG51bWVyaWMgc3RyaW5nIHdoaWxlIHByZXNlcnZpbmcgYSB0cmFpbGluZyBkb3RcbiAgICAvLyBhbmQgcGFydGlhbCBkZWNpbWFscyBzbyBpdCBjYW4gbWFzayBsaXZlIGFzIHRoZSB1c2VyIHR5cGVzLiBlLmcuXG4gICAgLy8gXCIyMDAwMDAwXCIgICAtPiBcIlIyLDAwMCwwMDBcIlxuICAgIC8vIFwiMjAwMDAwMC5cIiAgLT4gXCJSMiwwMDAsMDAwLlwiXG4gICAgLy8gXCIyMDAwMDAwLjdcIiAtPiBcIlIyLDAwMCwwMDAuN1wiXG4gICAgY29uc3QgbWFza0N1cnJlbmN5ID0gKHJhdywgbmVnYXRpdmUpID0+IHtcbiAgICAgICAgaWYgKHJhdyA9PT0gXCJcIikge1xuICAgICAgICAgICAgcmV0dXJuIFwiXCI7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaGFzRG90ID0gcmF3LmluZGV4T2YoXCIuXCIpICE9PSAtMTtcbiAgICAgICAgbGV0IGludFBhcnQgPSBoYXNEb3QgPyByYXcuc2xpY2UoMCwgcmF3LmluZGV4T2YoXCIuXCIpKSA6IHJhdztcbiAgICAgICAgY29uc3QgZGVjUGFydCA9IGhhc0RvdCA/IHJhdy5zbGljZShyYXcuaW5kZXhPZihcIi5cIikgKyAxKSA6IG51bGw7XG5cbiAgICAgICAgbGV0IGdyb3VwZWRJbnQ7XG4gICAgICAgIGlmIChpbnRQYXJ0ID09PSBcIlwiKSB7XG4gICAgICAgICAgICBncm91cGVkSW50ID0gXCIwXCI7IC8vIFwiLjVcIiByZWFkcyBhcyBcIjAuNVwiXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBncm91cGVkSW50ID0gaW50UGFydC5yZXBsYWNlKC9eMCsoPz1cXGQpLywgXCJcIik7ICAgICAgICAgICAgICAgICAvLyBkcm9wIGxlYWRpbmcgemVyb3NcbiAgICAgICAgICAgIGdyb3VwZWRJbnQgPSBncm91cGVkSW50LnJlcGxhY2UoL1xcQig/PShcXGR7M30pKyg/IVxcZCkpL2csIFwiLFwiKTsgLy8gdGhvdXNhbmRzIGdyb3VwaW5nXG4gICAgICAgIH1cblxuICAgICAgICBsZXQgcmVzdWx0ID0gY3VycmVuY3lTeW1ib2wgKyAobmVnYXRpdmUgPyBcIi1cIiA6IFwiXCIpICsgZ3JvdXBlZEludDtcbiAgICAgICAgaWYgKGhhc0RvdCkge1xuICAgICAgICAgICAgcmVzdWx0ICs9IFwiLlwiICsgZGVjUGFydDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH07XG5cbiAgICAvLyBDYW5vbmljYWwsIHR3by1kZWNpbWFsIGRpc3BsYXkgdXNlZCBvbiBibHVyIC8gZXh0ZXJuYWwgdmFsdWUgY2hhbmdlczpcbiAgICAvLyBcIlIyLDAwMCwwMDAuNzVcIi5cbiAgICBjb25zdCBmb3JtYXRDdXJyZW5jeSA9ICh2YWx1ZSkgPT4ge1xuICAgICAgICBjb25zdCBudW0gPSBOdW1iZXIodmFsdWUpO1xuICAgICAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gXCJcIiB8fCBpc05hTihudW0pKSB7XG4gICAgICAgICAgICByZXR1cm4gXCJcIjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY3VycmVuY3lTeW1ib2wgKyBudW0udG9Mb2NhbGVTdHJpbmcoXCJlbi1VU1wiLCB7XG4gICAgICAgICAgICBtaW5pbXVtRnJhY3Rpb25EaWdpdHM6IDIsXG4gICAgICAgICAgICBtYXhpbXVtRnJhY3Rpb25EaWdpdHM6IDIsXG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICAvLyBLZWVwIHRoZSBkaXNwbGF5IGluIHN5bmMgd2l0aCB0aGUgbW9kZWwgb25seSB3aGVuIG5vdCBhY3RpdmVseSBlZGl0aW5nLFxuICAgIC8vIHNvIGEgdmFsdWUgY2hhbmdlIG5ldmVyIGNsb2JiZXJzIHdoYXQgdGhlIHVzZXIgaXMgdHlwaW5nLlxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmICghZm9jdXNlZCkge1xuICAgICAgICAgICAgc2V0RGlzcGxheVZhbHVlKGZvcm1hdEN1cnJlbmN5KGJhc2UudmFsdWUpKTtcbiAgICAgICAgfVxuICAgIH0sIFtiYXNlLnZhbHVlLCBmb2N1c2VkXSk7XG5cbiAgICAvLyBSZXN0b3JlIHRoZSBjYXJldCBhZnRlciBhIGxpdmUtbWFzayByZS1yZW5kZXIsIGNvdW50aW5nIHNpZ25pZmljYW50IGNoYXJzXG4gICAgLy8gc28gaW5zZXJ0ZWQvcmVtb3ZlZCBjb21tYXMgZG9uJ3QgbWFrZSB0aGUgY3Vyc29yIGp1bXAuXG4gICAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKGZvY3VzZWQgJiYgY2FyZXRSZWYuY3VycmVudCAhPSBudWxsICYmIHRleHRSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgY29uc3QgcG9zID0gY2FyZXRSZWYuY3VycmVudDtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgdGV4dFJlZi5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKHBvcywgcG9zKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAvLyBpbnB1dCBub3QgeWV0IGEgdGV4dCB0eXBlIC8gbm90IGZvY3VzYWJsZSDigJQgaWdub3JlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXJldFJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgY29uc3QgaGFuZGxlSW5wdXRDaGFuZ2UgPSAoZXZlbnQpID0+IHtcbiAgICAgICAgY29uc3QgaW5wdXQgPSBldmVudC50YXJnZXQ7XG4gICAgICAgIGNvbnN0IG5ld1Jhd1ZhbHVlID0gaW5wdXQudmFsdWU7XG4gICAgICAgIGNvbnN0IGNhcmV0ID0gaW5wdXQuc2VsZWN0aW9uU3RhcnQgIT0gbnVsbCA/IGlucHV0LnNlbGVjdGlvblN0YXJ0IDogbmV3UmF3VmFsdWUubGVuZ3RoO1xuXG4gICAgICAgIGNvbnN0IG5lZ2F0aXZlID0gbmV3UmF3VmFsdWUudHJpbVN0YXJ0KCkuc3RhcnRzV2l0aChcIi1cIik7XG5cbiAgICAgICAgLy8gRGlnaXRzL2RvdCB0byB0aGUgTEVGVCBvZiB0aGUgY2FyZXQg4oCUIGRyaXZlcyB3aGVyZSB0aGUgY2FyZXQgbGFuZHNcbiAgICAgICAgLy8gYWdhaW4gYWZ0ZXIgcmUtbWFza2luZy5cbiAgICAgICAgbGV0IGxlZnRTaWduaWZpY2FudCA9IHNpZ25pZmljYW50KG5ld1Jhd1ZhbHVlLnNsaWNlKDAsIGNhcmV0KSkubGVuZ3RoO1xuXG4gICAgICAgIC8vIFNhbml0aXNlOiBkaWdpdHMgKyBhIHNpbmdsZSBkb3QsIGF0IG1vc3QgdHdvIGRlY2ltYWxzLlxuICAgICAgICBsZXQgcmF3ID0gc2lnbmlmaWNhbnQobmV3UmF3VmFsdWUpO1xuICAgICAgICBjb25zdCBmaXJzdERvdCA9IHJhdy5pbmRleE9mKFwiLlwiKTtcbiAgICAgICAgaWYgKGZpcnN0RG90ICE9PSAtMSkge1xuICAgICAgICAgICAgcmF3ID0gcmF3LnNsaWNlKDAsIGZpcnN0RG90ICsgMSkgKyByYXcuc2xpY2UoZmlyc3REb3QgKyAxKS5yZXBsYWNlKC9cXC4vZywgXCJcIik7XG4gICAgICAgICAgICBjb25zdCBwYXJ0cyA9IHJhdy5zcGxpdChcIi5cIik7XG4gICAgICAgICAgICByYXcgPSBwYXJ0c1swXSArIFwiLlwiICsgKHBhcnRzWzFdIHx8IFwiXCIpLnNsaWNlKDAsIDIpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQmFja3NwYWNpbmcgb3ZlciBhIGdyb3VwaW5nIGNvbW1hIHJlbW92ZXMgb25seSB0aGUgc2VwYXJhdG9yLCBsZWF2aW5nXG4gICAgICAgIC8vIHRoZSBzaWduaWZpY2FudCBjaGFycyB1bmNoYW5nZWQuIFRyZWF0IHRoYXQgYXMgXCJkZWxldGUgdGhlIGRpZ2l0XG4gICAgICAgIC8vIGJlZm9yZSB0aGUgY29tbWFcIiBzbyBiYWNrc3BhY2UgZmVlbHMgbmF0dXJhbC5cbiAgICAgICAgY29uc3Qgb2xkUmF3ID0gc2lnbmlmaWNhbnQoZGlzcGxheVZhbHVlKTtcbiAgICAgICAgaWYgKHJhdyA9PT0gb2xkUmF3ICYmIG5ld1Jhd1ZhbHVlLmxlbmd0aCA8IGRpc3BsYXlWYWx1ZS5sZW5ndGggJiYgbGVmdFNpZ25pZmljYW50ID4gMCkge1xuICAgICAgICAgICAgcmF3ID0gcmF3LnNsaWNlKDAsIGxlZnRTaWduaWZpY2FudCAtIDEpICsgcmF3LnNsaWNlKGxlZnRTaWduaWZpY2FudCk7XG4gICAgICAgICAgICBsZWZ0U2lnbmlmaWNhbnQgLT0gMTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG1hc2tlZCA9IG1hc2tDdXJyZW5jeShyYXcsIG5lZ2F0aXZlKTtcbiAgICAgICAgc2V0RGlzcGxheVZhbHVlKG1hc2tlZCk7XG5cbiAgICAgICAgLy8gV2hlcmUgdG8gcHV0IHRoZSBjYXJldDogYWR2YW5jZSB0aHJvdWdoIHRoZSBtYXNrZWQgc3RyaW5nIHVudGlsIHdlJ3ZlXG4gICAgICAgIC8vIHBhc3NlZCB0aGUgc2FtZSBudW1iZXIgb2Ygc2lnbmlmaWNhbnQgY2hhcnMgdGhhdCB3ZXJlIGxlZnQgb2YgaXQuXG4gICAgICAgIGxldCBwb3MgPSAwO1xuICAgICAgICBsZXQgc2VlbiA9IDA7XG4gICAgICAgIHdoaWxlIChwb3MgPCBtYXNrZWQubGVuZ3RoICYmIHNlZW4gPCBsZWZ0U2lnbmlmaWNhbnQpIHtcbiAgICAgICAgICAgIGlmICgvW1xcZC5dLy50ZXN0KG1hc2tlZFtwb3NdKSkge1xuICAgICAgICAgICAgICAgIHNlZW4gKz0gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBvcyArPSAxO1xuICAgICAgICB9XG4gICAgICAgIGNhcmV0UmVmLmN1cnJlbnQgPSBwb3M7XG5cbiAgICAgICAgLy8gUHVzaCB0aGUgbnVtZXJpYyB2YWx1ZSB0byB0aGUgbW9kZWwuXG4gICAgICAgIGlmIChyYXcgPT09IFwiXCIgfHwgcmF3ID09PSBcIi5cIikge1xuICAgICAgICAgICAgYmFzZS5oYW5kbGVWYWx1ZUNoYW5nZShudWxsKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBudW1lcmljID0gcGFyc2VGbG9hdCgobmVnYXRpdmUgPyBcIi1cIiA6IFwiXCIpICsgcmF3KTtcbiAgICAgICAgYmFzZS5oYW5kbGVWYWx1ZUNoYW5nZShpc05hTihudW1lcmljKSA/IG51bGwgOiBudW1lcmljKTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlRm9jdXMgPSAoKSA9PiB7XG4gICAgICAgIHNldEZvY3VzZWQodHJ1ZSk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUJsdXIgPSAoKSA9PiB7XG4gICAgICAgIHNldEZvY3VzZWQoZmFsc2UpO1xuICAgICAgICBjYXJldFJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICAgICAgc2V0RGlzcGxheVZhbHVlKGZvcm1hdEN1cnJlbmN5KGJhc2UudmFsdWUpKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPFRleHRGaWVsZENvbXBvbmVudFxuICAgICAgICAgICAgaWQ9e3Byb3BzLmlkfVxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgcmVxdWlyZWQ9e2Jhc2UucmVxdWlyZWR9XG4gICAgICAgICAgICBpbnB1dFJlZj17dGV4dFJlZn1cbiAgICAgICAgICAgIGxhYmVsPXshVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzKSA/IHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzWydsYWJlbCddIDogbnVsbH1cbiAgICAgICAgICAgIG9uS2V5VXA9e3Byb3BzLmtleUhhbmRsZXJ9XG4gICAgICAgICAgICBlcnJvcj17YmFzZS5oYXNFcnJvcn1cbiAgICAgICAgICAgIGhlbHBlclRleHQ9e2Jhc2UuZXJyb3JNZXNzYWdlfVxuICAgICAgICAgICAgbWFyZ2luPVwiZGVuc2VcIlxuICAgICAgICAgICAgZGlzYWJsZWQ9e2Jhc2UuZGlzYWJsZWR9XG4gICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICBtaW5XaWR0aDogbWluV2lkdGgsXG4gICAgICAgICAgICAgICAgd2lkdGg6IHdpZHRoLFxuICAgICAgICAgICAgICAgIG1heFdpZHRoOiBtYXhXaWR0aCxcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGhlaWdodCxcbiAgICAgICAgICAgICAgICBjb2xvcjogJ3NlY29uZGFyeSdcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICB2YXJpYW50PVwib3V0bGluZWRcIlxuICAgICAgICAgICAgdmFsdWU9e2Rpc3BsYXlWYWx1ZX1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVJbnB1dENoYW5nZX1cbiAgICAgICAgICAgIG9uRm9jdXM9e2hhbmRsZUZvY3VzfVxuICAgICAgICAgICAgb25CbHVyPXtoYW5kbGVCbHVyfVxuICAgICAgICAvPlxuICAgICk7XG59KTtcblxuY29uc3QgQ3VycmVuY3lGaWVsZCA9IFJlYWN0Lm1lbW8oKHByb3BzKSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgICAgPEJhc2VGaWVsZFxuICAgICAgICAgICAgey4uLnByb3BzfVxuICAgICAgICAgICAgaGFuZGxlPXtwcm9wcy5oYW5kbGV9XG4gICAgICAgICAgICB2YWx1ZVBhcnNlcj17KHZhbHVlLCBpbmJvdW5kKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09ICcnKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChpbmJvdW5kKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG51bVZhbHVlID0gcGFyc2VGbG9hdCh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBpc05hTihudW1WYWx1ZSkgPyBudWxsIDogTWF0aC5yb3VuZCgobnVtVmFsdWUgKyBOdW1iZXIuRVBTSUxPTikgKiAxMDApIC8gMTAwO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAgICB7YmFzZSA9PlxuICAgICAgICAgICAgICAgIDxDdXJyZW5jeUZpZWxkV3JhcHBlclxuICAgICAgICAgICAgICAgICAgICBiYXNlPXtiYXNlfVxuICAgICAgICAgICAgICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwvQ3VycmVuY3lGaWVsZFdyYXBwZXI+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvQmFzZUZpZWxkPlxuICAgICk7XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgQ3VycmVuY3lGaWVsZDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsVUFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsVUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksTUFBQSxHQUFBRixzQkFBQSxDQUFBRixPQUFBO0FBQWdDLFNBQUFFLHVCQUFBRyxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFB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
|
|
@@ -44,6 +44,7 @@ const TextFieldWrapper = /*#__PURE__*/_react.default.memo(props => {
|
|
|
44
44
|
// which treated '' as falsy and could resurrect an external value
|
|
45
45
|
// over the user's clear.
|
|
46
46
|
if (localValue == null) {
|
|
47
|
+
localValueRef.current = base.value;
|
|
47
48
|
setLocalValue(base.value);
|
|
48
49
|
}
|
|
49
50
|
}, [base.value]);
|
|
@@ -108,4 +109,4 @@ const TextField = /*#__PURE__*/_react.default.memo(props => {
|
|
|
108
109
|
}, props)));
|
|
109
110
|
});
|
|
110
111
|
var _default = exports.default = TextField;
|
|
111
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfVGV4dEZpZWxkIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9CYXNlRmllbGQiLCJfVXRpbHMiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiaGFzIiwiZ2V0Iiwic2V0IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJfZXh0ZW5kcyIsImFzc2lnbiIsImJpbmQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJhcHBseSIsIlRleHRGaWVsZFdyYXBwZXIiLCJSZWFjdCIsIm1lbW8iLCJwcm9wcyIsIl9wcm9wcyRjb25maWckYXR0cmlidSIsIl9wcm9wcyRjb25maWckYXR0cmlidTIiLCJfcHJvcHMkY29uZmlnJGF0dHJpYnUzIiwiX3Byb3BzJGNvbmZpZyRhdHRyaWJ1NCIsIl9yZWYiLCJiYXNlIiwibXVsdGlsaW5lIiwidXNlU3RhdGUiLCJ3aWR0aCIsIlV0aWxzIiwiaXNOdWxsIiwiY29uZmlnIiwiYXR0cmlidXRlcyIsInN0eWxlIiwibWF4V2lkdGgiLCJtaW5XaWR0aCIsImhlaWdodCIsInRleHRSZWYiLCJ1c2VSZWYiLCJyb3dzIiwic2V0Um93cyIsImxvY2FsVmFsdWUiLCJzZXRMb2NhbFZhbHVlIiwibG9jYWxWYWx1ZVJlZiIsImRlYm91bmNlUmVmIiwidXNlRWZmZWN0IiwiY3VycmVudCIsImNvbXB1dGVkU3R5bGUiLCJ3aW5kb3ciLCJnZXRDb21wdXRlZFN0eWxlIiwibGluZUhlaWdodCIsInBhcnNlRmxvYXQiLCJjYWxjdWxhdGVkUm93cyIsIk1hdGgiLCJmbG9vciIsInJlcGxhY2UiLCJ2YWx1ZSIsImNyZWF0ZUVsZW1lbnQiLCJpZCIsInR5cGUiLCJyZXF1aXJlZCIsImlucHV0UmVmIiwibGFiZWwiLCJvbkNoYW5nZSIsInRhcmdldCIsImNsZWFyVGltZW91dCIsInNldFRpbWVvdXQiLCJoYW5kbGVWYWx1ZUNoYW5nZSIsIm9uQmx1ciIsInNsb3RQcm9wcyIsImlucHV0IiwiYXV0b0NvbXBsZXRlIiwic3giLCJvbktleVVwIiwia2V5SGFuZGxlciIsImVycm9yIiwiaGFzRXJyb3IiLCJoZWxwZXJUZXh0IiwiZXJyb3JNZXNzYWdlIiwibWFyZ2luIiwiZGlzYWJsZWQiLCJzaXplIiwiY2xhc3NOYW1lIiwiY29sb3IiLCJ2YXJpYW50IiwiVGV4dEZpZWxkIiwiQmFzZUZpZWxkIiwiaGFuZGxlIiwidmFsdWVQYXJzZXIiLCJpbmJvdW5kIiwidG9TdHJpbmciLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9UZXh0RmllbGQuanN4Il0sInNvdXJjZXNDb250ZW50IjpbIu+7v2ltcG9ydCBSZWFjdCwge3VzZVJlZiwgdXNlU3RhdGV9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBUZXh0RmllbGRDb21wb25lbnQgZnJvbSAnQG11aS9tYXRlcmlhbC9UZXh0RmllbGQnO1xuaW1wb3J0IHtCYXNlRmllbGR9IGZyb20gXCIuL0Jhc2VGaWVsZFwiO1xuaW1wb3J0IFV0aWxzIGZyb20gXCIuLi8uLi9VdGlsc1wiO1xuXG5jb25zdCBUZXh0RmllbGRXcmFwcGVyID0gUmVhY3QubWVtbygocHJvcHMpID0+IHtcbiAgICBjb25zdCBiYXNlID0gcHJvcHMuYmFzZTtcbiAgICBjb25zdCBbbXVsdGlsaW5lXSA9IFJlYWN0LnVzZVN0YXRlKHByb3BzLm11bHRpbGluZSk7XG4gICAgY29uc3Qgd2lkdGggPSAhVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzPy5zdHlsZT8ud2lkdGgpID8gcHJvcHMuY29uZmlnLmF0dHJpYnV0ZXMuc3R5bGUud2lkdGggOiBcIjEwMCVcIjtcbiAgICBjb25zdCBtYXhXaWR0aCA9ICFVdGlscy5pc051bGwocHJvcHMuY29uZmlnLmF0dHJpYnV0ZXM/LnN0eWxlPy5tYXhXaWR0aCkgPyBwcm9wcy5jb25maWcuYXR0cmlidXRlcy5zdHlsZS5tYXhXaWR0aCA6IG51bGw7XG4gICAgY29uc3QgbWluV2lkdGggPSAhVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzPy5zdHlsZT8ubWluV2lkdGgpID8gcHJvcHMuY29uZmlnLmF0dHJpYnV0ZXMuc3R5bGUubWluV2lkdGggOiBcIjI0MHB4XCI7XG4gICAgY29uc3QgaGVpZ2h0ID0gIVV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcuYXR0cmlidXRlcz8uc3R5bGU/LmhlaWdodCkgPyBwcm9wcy5jb25maWcuYXR0cmlidXRlcy5zdHlsZS5oZWlnaHQgOiBtdWx0aWxpbmUgPyAnMjAwcHgnIDogbnVsbDtcbiAgICBjb25zdCB0ZXh0UmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IFtyb3dzLCBzZXRSb3dzXSA9IHVzZVN0YXRlKDEpO1xuICAgIGNvbnN0IFtsb2NhbFZhbHVlLCBzZXRMb2NhbFZhbHVlXSA9IHVzZVN0YXRlKG51bGwpO1xuICAgIC8vIFN5bmNocm9ub3VzIG1pcnJvciBvZiBsb2NhbFZhbHVlIHNvIG9uQmx1ciAoYW5kIGFueSBoYW5kbGVyIHRoYXQgZmlyZXNcbiAgICAvLyBiZWZvcmUgUmVhY3QgY29tbWl0cyBhIHBlbmRpbmcgc2V0TG9jYWxWYWx1ZSkgcmVhZHMgdGhlIGxhdGVzdCB0eXBlZFxuICAgIC8vIHZhbHVlLCBub3QgYSBzdGFsZSBjbG9zdXJlIGNhcHR1cmUuIFRoaXMgaXMgd2hhdCBtYWtlcyB0aGUgZGVib3VuY2Ugc2FmZTpcbiAgICAvLyB3aGVuIHRoZSB1c2VyIGNsaWNrcyBzYXZlIG1pZC1kZWJvdW5jZSwgYmx1ciBmaXJlcyB0aGUgb25CbHVyIGhhbmRsZXJcbiAgICAvLyBib3VuZCBvbiBhIHByZXZpb3VzIHJlbmRlciwgYW5kIHdpdGhvdXQgdGhlIHJlZiBpdCB3b3VsZCBwcm9wYWdhdGUgdGhlXG4gICAgLy8gcHJlLWtleXN0cm9rZSB2YWx1ZSAob3IgbnVsbCkgYW5kIGNsb2JiZXIgdGhlIHR5cGVkIHRleHQuXG4gICAgY29uc3QgbG9jYWxWYWx1ZVJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBkZWJvdW5jZVJlZiA9IHVzZVJlZihudWxsKTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmICh0ZXh0UmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbXB1dGVkU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0ZXh0UmVmLmN1cnJlbnQpO1xuICAgICAgICAgICAgY29uc3QgbGluZUhlaWdodCA9IHBhcnNlRmxvYXQoY29tcHV0ZWRTdHlsZS5saW5lSGVpZ2h0KSB8fCAyMDtcbiAgICAgICAgICAgIGNvbnN0IGNhbGN1bGF0ZWRSb3dzID0gTWF0aC5mbG9vciggaGVpZ2h0ID09PSBudWxsID8gMjAgOiBoZWlnaHQucmVwbGFjZSgncHgnLCAnJykgLyBsaW5lSGVpZ2h0KTtcbiAgICAgICAgICAgIHNldFJvd3MoY2FsY3VsYXRlZFJvd3MpO1xuICAgICAgICB9XG4gICAgfSwgW10pO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgLy8gTnVsbGlzaC1vbmx5IGNoZWNrOiBlbXB0eSBzdHJpbmcgJycgaXMgYSBkZWxpYmVyYXRlIHVzZXItY2xlYXJlZFxuICAgICAgICAvLyBzdGF0ZSBhbmQgbXVzdCBOT1QgYmUgcmUtc3luY2VkIGZyb20gYmFzZS52YWx1ZS4gV2FzIGAhbG9jYWxWYWx1ZWBcbiAgICAgICAgLy8gd2hpY2ggdHJlYXRlZCAnJyBhcyBmYWxzeSBhbmQgY291bGQgcmVzdXJyZWN0IGFuIGV4dGVybmFsIHZhbHVlXG4gICAgICAgIC8vIG92ZXIgdGhlIHVzZXIncyBjbGVhci5cbiAgICAgICAgaWYgKGxvY2FsVmFsdWUgPT0gbnVsbCkge1xuICAgICAgICAgICAgc2V0TG9jYWxWYWx1ZShiYXNlLnZhbHVlKTtcbiAgICAgICAgfVxuICAgIH0sIFtiYXNlLnZhbHVlXSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8VGV4dEZpZWxkQ29tcG9uZW50XG4gICAgICAgICAgICBpZD17cHJvcHMuaWR9XG4gICAgICAgICAgICB0eXBlPXtwcm9wcy50eXBlfVxuICAgICAgICAgICAgcmVxdWlyZWQ9e2Jhc2UucmVxdWlyZWR9XG4gICAgICAgICAgICBpbnB1dFJlZj17dGV4dFJlZn1cbiAgICAgICAgICAgIGxhYmVsPXshVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzKSA/IHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzWydsYWJlbCddIDogbnVsbH1cbiAgICAgICAgICAgIHZhbHVlPXtsb2NhbFZhbHVlID8/IGJhc2UudmFsdWUgPz8gJyd9XG4gICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGUudGFyZ2V0LnZhbHVlO1xuICAgICAgICAgICAgICAgIHNldExvY2FsVmFsdWUodmFsdWUpO1xuICAgICAgICAgICAgICAgIGxvY2FsVmFsdWVSZWYuY3VycmVudCA9IHZhbHVlO1xuXG4gICAgICAgICAgICAgICAgaWYgKGRlYm91bmNlUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KGRlYm91bmNlUmVmLmN1cnJlbnQpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGRlYm91bmNlUmVmLmN1cnJlbnQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgYmFzZS5oYW5kbGVWYWx1ZUNoYW5nZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgfSwgMjAwKTtcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICBvbkJsdXI9eygpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZGVib3VuY2VSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgICAgICAgICBjbGVhclRpbWVvdXQoZGVib3VuY2VSZWYuY3VycmVudCk7XG4gICAgICAgICAgICAgICAgICAgIGRlYm91bmNlUmVmLmN1cnJlbnQgPSBudWxsO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGJhc2UuaGFuZGxlVmFsdWVDaGFuZ2UobG9jYWxWYWx1ZVJlZi5jdXJyZW50KTtcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICBzbG90UHJvcHM9e3tcbiAgICAgICAgICAgICAgICBpbnB1dDoge1xuICAgICAgICAgICAgICAgICAgICBhdXRvQ29tcGxldGU6IFwibmV3LXBhc3N3b3JkXCIsXG4gICAgICAgICAgICAgICAgICAgIHN4OiB7fVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgb25LZXlVcD17cHJvcHMua2V5SGFuZGxlcn1cbiAgICAgICAgICAgIGVycm9yPXtiYXNlLmhhc0Vycm9yfVxuICAgICAgICAgICAgaGVscGVyVGV4dD17YmFzZS5lcnJvck1lc3NhZ2V9XG4gICAgICAgICAgICBtYXJnaW49XCJkZW5zZVwiXG4gICAgICAgICAgICBtdWx0aWxpbmU9e211bHRpbGluZX1cbiAgICAgICAgICAgIHJvd3M9e3Jvd3N9XG4gICAgICAgICAgICBkaXNhYmxlZD17YmFzZS5kaXNhYmxlZH1cbiAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICBjbGFzc05hbWU9eydvdWktZm9ybS1pdGVtJ31cbiAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgbWluV2lkdGg6IG1pbldpZHRoLFxuICAgICAgICAgICAgICAgIHdpZHRoOiB3aWR0aCxcbiAgICAgICAgICAgICAgICBtYXhXaWR0aDogbWF4V2lkdGgsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBtdWx0aWxpbmUgPyBudWxsIDogaGVpZ2h0LFxuICAgICAgICAgICAgICAgIGNvbG9yOiAnc2Vjb25kYXJ5J1xuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIHZhcmlhbnQ9XCJvdXRsaW5lZFwiPlxuICAgICAgICA8L1RleHRGaWVsZENvbXBvbmVudD5cbiAgICApO1xufSk7XG5cbmNvbnN0IFRleHRGaWVsZCA9IFJlYWN0Lm1lbW8oKHByb3BzKSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgICAgPEJhc2VGaWVsZCB7Li4ucHJvcHN9IGhhbmRsZT17cHJvcHMuaGFuZGxlfVxuICAgICAgICAgICAgICAgICAgIHZhbHVlUGFyc2VyPXsodmFsdWUsIGluYm91bmQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlID8gdmFsdWUudG9TdHJpbmcoKSA6IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgID5cbiAgICAgICAgICAgIHtiYXNlID0+XG4gICAgICAgICAgICAgICAgPFRleHRGaWVsZFdyYXBwZXJcbiAgICAgICAgICAgICAgICAgICAgYmFzZT17YmFzZX1cbiAgICAgICAgICAgICAgICAgICAgey4uLnByb3BzfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8L1RleHRGaWVsZFdyYXBwZXI+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvQmFzZUZpZWxkPlxuICAgICk7XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgVGV4dEZpZWxkO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQyxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDRCxJQUFBQyxVQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxVQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxNQUFBLEdBQUFGLHNCQUFBLENBQUFGLE9BQUE7QUFBZ0MsU0FBQUUsdUJBQUFHLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUE7QUFBQSxTQUFBTix3QkFBQU0sQ0FBQSxFQUFBRyxDQUFB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
|
|
112
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfVGV4dEZpZWxkIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9CYXNlRmllbGQiLCJfVXRpbHMiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiaGFzIiwiZ2V0Iiwic2V0IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJfZXh0ZW5kcyIsImFzc2lnbiIsImJpbmQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJhcHBseSIsIlRleHRGaWVsZFdyYXBwZXIiLCJSZWFjdCIsIm1lbW8iLCJwcm9wcyIsIl9wcm9wcyRjb25maWckYXR0cmlidSIsIl9wcm9wcyRjb25maWckYXR0cmlidTIiLCJfcHJvcHMkY29uZmlnJGF0dHJpYnUzIiwiX3Byb3BzJGNvbmZpZyRhdHRyaWJ1NCIsIl9yZWYiLCJiYXNlIiwibXVsdGlsaW5lIiwidXNlU3RhdGUiLCJ3aWR0aCIsIlV0aWxzIiwiaXNOdWxsIiwiY29uZmlnIiwiYXR0cmlidXRlcyIsInN0eWxlIiwibWF4V2lkdGgiLCJtaW5XaWR0aCIsImhlaWdodCIsInRleHRSZWYiLCJ1c2VSZWYiLCJyb3dzIiwic2V0Um93cyIsImxvY2FsVmFsdWUiLCJzZXRMb2NhbFZhbHVlIiwibG9jYWxWYWx1ZVJlZiIsImRlYm91bmNlUmVmIiwidXNlRWZmZWN0IiwiY3VycmVudCIsImNvbXB1dGVkU3R5bGUiLCJ3aW5kb3ciLCJnZXRDb21wdXRlZFN0eWxlIiwibGluZUhlaWdodCIsInBhcnNlRmxvYXQiLCJjYWxjdWxhdGVkUm93cyIsIk1hdGgiLCJmbG9vciIsInJlcGxhY2UiLCJ2YWx1ZSIsImNyZWF0ZUVsZW1lbnQiLCJpZCIsInR5cGUiLCJyZXF1aXJlZCIsImlucHV0UmVmIiwibGFiZWwiLCJvbkNoYW5nZSIsInRhcmdldCIsImNsZWFyVGltZW91dCIsInNldFRpbWVvdXQiLCJoYW5kbGVWYWx1ZUNoYW5nZSIsIm9uQmx1ciIsInNsb3RQcm9wcyIsImlucHV0IiwiYXV0b0NvbXBsZXRlIiwic3giLCJvbktleVVwIiwia2V5SGFuZGxlciIsImVycm9yIiwiaGFzRXJyb3IiLCJoZWxwZXJUZXh0IiwiZXJyb3JNZXNzYWdlIiwibWFyZ2luIiwiZGlzYWJsZWQiLCJzaXplIiwiY2xhc3NOYW1lIiwiY29sb3IiLCJ2YXJpYW50IiwiVGV4dEZpZWxkIiwiQmFzZUZpZWxkIiwiaGFuZGxlIiwidmFsdWVQYXJzZXIiLCJpbmJvdW5kIiwidG9TdHJpbmciLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9UZXh0RmllbGQuanN4Il0sInNvdXJjZXNDb250ZW50IjpbIu+7v2ltcG9ydCBSZWFjdCwge3VzZVJlZiwgdXNlU3RhdGV9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBUZXh0RmllbGRDb21wb25lbnQgZnJvbSAnQG11aS9tYXRlcmlhbC9UZXh0RmllbGQnO1xuaW1wb3J0IHtCYXNlRmllbGR9IGZyb20gXCIuL0Jhc2VGaWVsZFwiO1xuaW1wb3J0IFV0aWxzIGZyb20gXCIuLi8uLi9VdGlsc1wiO1xuXG5jb25zdCBUZXh0RmllbGRXcmFwcGVyID0gUmVhY3QubWVtbygocHJvcHMpID0+IHtcbiAgICBjb25zdCBiYXNlID0gcHJvcHMuYmFzZTtcbiAgICBjb25zdCBbbXVsdGlsaW5lXSA9IFJlYWN0LnVzZVN0YXRlKHByb3BzLm11bHRpbGluZSk7XG4gICAgY29uc3Qgd2lkdGggPSAhVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzPy5zdHlsZT8ud2lkdGgpID8gcHJvcHMuY29uZmlnLmF0dHJpYnV0ZXMuc3R5bGUud2lkdGggOiBcIjEwMCVcIjtcbiAgICBjb25zdCBtYXhXaWR0aCA9ICFVdGlscy5pc051bGwocHJvcHMuY29uZmlnLmF0dHJpYnV0ZXM/LnN0eWxlPy5tYXhXaWR0aCkgPyBwcm9wcy5jb25maWcuYXR0cmlidXRlcy5zdHlsZS5tYXhXaWR0aCA6IG51bGw7XG4gICAgY29uc3QgbWluV2lkdGggPSAhVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzPy5zdHlsZT8ubWluV2lkdGgpID8gcHJvcHMuY29uZmlnLmF0dHJpYnV0ZXMuc3R5bGUubWluV2lkdGggOiBcIjI0MHB4XCI7XG4gICAgY29uc3QgaGVpZ2h0ID0gIVV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcuYXR0cmlidXRlcz8uc3R5bGU/LmhlaWdodCkgPyBwcm9wcy5jb25maWcuYXR0cmlidXRlcy5zdHlsZS5oZWlnaHQgOiBtdWx0aWxpbmUgPyAnMjAwcHgnIDogbnVsbDtcbiAgICBjb25zdCB0ZXh0UmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IFtyb3dzLCBzZXRSb3dzXSA9IHVzZVN0YXRlKDEpO1xuICAgIGNvbnN0IFtsb2NhbFZhbHVlLCBzZXRMb2NhbFZhbHVlXSA9IHVzZVN0YXRlKG51bGwpO1xuICAgIC8vIFN5bmNocm9ub3VzIG1pcnJvciBvZiBsb2NhbFZhbHVlIHNvIG9uQmx1ciAoYW5kIGFueSBoYW5kbGVyIHRoYXQgZmlyZXNcbiAgICAvLyBiZWZvcmUgUmVhY3QgY29tbWl0cyBhIHBlbmRpbmcgc2V0TG9jYWxWYWx1ZSkgcmVhZHMgdGhlIGxhdGVzdCB0eXBlZFxuICAgIC8vIHZhbHVlLCBub3QgYSBzdGFsZSBjbG9zdXJlIGNhcHR1cmUuIFRoaXMgaXMgd2hhdCBtYWtlcyB0aGUgZGVib3VuY2Ugc2FmZTpcbiAgICAvLyB3aGVuIHRoZSB1c2VyIGNsaWNrcyBzYXZlIG1pZC1kZWJvdW5jZSwgYmx1ciBmaXJlcyB0aGUgb25CbHVyIGhhbmRsZXJcbiAgICAvLyBib3VuZCBvbiBhIHByZXZpb3VzIHJlbmRlciwgYW5kIHdpdGhvdXQgdGhlIHJlZiBpdCB3b3VsZCBwcm9wYWdhdGUgdGhlXG4gICAgLy8gcHJlLWtleXN0cm9rZSB2YWx1ZSAob3IgbnVsbCkgYW5kIGNsb2JiZXIgdGhlIHR5cGVkIHRleHQuXG4gICAgY29uc3QgbG9jYWxWYWx1ZVJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBkZWJvdW5jZVJlZiA9IHVzZVJlZihudWxsKTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmICh0ZXh0UmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbXB1dGVkU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0ZXh0UmVmLmN1cnJlbnQpO1xuICAgICAgICAgICAgY29uc3QgbGluZUhlaWdodCA9IHBhcnNlRmxvYXQoY29tcHV0ZWRTdHlsZS5saW5lSGVpZ2h0KSB8fCAyMDtcbiAgICAgICAgICAgIGNvbnN0IGNhbGN1bGF0ZWRSb3dzID0gTWF0aC5mbG9vciggaGVpZ2h0ID09PSBudWxsID8gMjAgOiBoZWlnaHQucmVwbGFjZSgncHgnLCAnJykgLyBsaW5lSGVpZ2h0KTtcbiAgICAgICAgICAgIHNldFJvd3MoY2FsY3VsYXRlZFJvd3MpO1xuICAgICAgICB9XG4gICAgfSwgW10pO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgLy8gTnVsbGlzaC1vbmx5IGNoZWNrOiBlbXB0eSBzdHJpbmcgJycgaXMgYSBkZWxpYmVyYXRlIHVzZXItY2xlYXJlZFxuICAgICAgICAvLyBzdGF0ZSBhbmQgbXVzdCBOT1QgYmUgcmUtc3luY2VkIGZyb20gYmFzZS52YWx1ZS4gV2FzIGAhbG9jYWxWYWx1ZWBcbiAgICAgICAgLy8gd2hpY2ggdHJlYXRlZCAnJyBhcyBmYWxzeSBhbmQgY291bGQgcmVzdXJyZWN0IGFuIGV4dGVybmFsIHZhbHVlXG4gICAgICAgIC8vIG92ZXIgdGhlIHVzZXIncyBjbGVhci5cbiAgICAgICAgaWYgKGxvY2FsVmFsdWUgPT0gbnVsbCkge1xuICAgICAgICAgICAgbG9jYWxWYWx1ZVJlZi5jdXJyZW50ID0gYmFzZS52YWx1ZTtcbiAgICAgICAgICAgIHNldExvY2FsVmFsdWUoYmFzZS52YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9LCBbYmFzZS52YWx1ZV0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPFRleHRGaWVsZENvbXBvbmVudFxuICAgICAgICAgICAgaWQ9e3Byb3BzLmlkfVxuICAgICAgICAgICAgdHlwZT17cHJvcHMudHlwZX1cbiAgICAgICAgICAgIHJlcXVpcmVkPXtiYXNlLnJlcXVpcmVkfVxuICAgICAgICAgICAgaW5wdXRSZWY9e3RleHRSZWZ9XG4gICAgICAgICAgICBsYWJlbD17IVV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcuYXR0cmlidXRlcykgPyBwcm9wcy5jb25maWcuYXR0cmlidXRlc1snbGFiZWwnXSA6IG51bGx9XG4gICAgICAgICAgICB2YWx1ZT17bG9jYWxWYWx1ZSA/PyBiYXNlLnZhbHVlID8/ICcnfVxuICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBlLnRhcmdldC52YWx1ZTtcbiAgICAgICAgICAgICAgICBzZXRMb2NhbFZhbHVlKHZhbHVlKTtcbiAgICAgICAgICAgICAgICBsb2NhbFZhbHVlUmVmLmN1cnJlbnQgPSB2YWx1ZTtcblxuICAgICAgICAgICAgICAgIGlmIChkZWJvdW5jZVJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dChkZWJvdW5jZVJlZi5jdXJyZW50KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBkZWJvdW5jZVJlZi5jdXJyZW50ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGJhc2UuaGFuZGxlVmFsdWVDaGFuZ2UodmFsdWUpO1xuICAgICAgICAgICAgICAgIH0sIDIwMCk7XG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgb25CbHVyPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGRlYm91bmNlUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KGRlYm91bmNlUmVmLmN1cnJlbnQpO1xuICAgICAgICAgICAgICAgICAgICBkZWJvdW5jZVJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBiYXNlLmhhbmRsZVZhbHVlQ2hhbmdlKGxvY2FsVmFsdWVSZWYuY3VycmVudCk7XG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgc2xvdFByb3BzPXt7XG4gICAgICAgICAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICAgICAgICAgICAgYXV0b0NvbXBsZXRlOiBcIm5ldy1wYXNzd29yZFwiLFxuICAgICAgICAgICAgICAgICAgICBzeDoge31cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIG9uS2V5VXA9e3Byb3BzLmtleUhhbmRsZXJ9XG4gICAgICAgICAgICBlcnJvcj17YmFzZS5oYXNFcnJvcn1cbiAgICAgICAgICAgIGhlbHBlclRleHQ9e2Jhc2UuZXJyb3JNZXNzYWdlfVxuICAgICAgICAgICAgbWFyZ2luPVwiZGVuc2VcIlxuICAgICAgICAgICAgbXVsdGlsaW5lPXttdWx0aWxpbmV9XG4gICAgICAgICAgICByb3dzPXtyb3dzfVxuICAgICAgICAgICAgZGlzYWJsZWQ9e2Jhc2UuZGlzYWJsZWR9XG4gICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgY2xhc3NOYW1lPXsnb3VpLWZvcm0taXRlbSd9XG4gICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgIG1pbldpZHRoOiBtaW5XaWR0aCxcbiAgICAgICAgICAgICAgICB3aWR0aDogd2lkdGgsXG4gICAgICAgICAgICAgICAgbWF4V2lkdGg6IG1heFdpZHRoLFxuICAgICAgICAgICAgICAgIGhlaWdodDogbXVsdGlsaW5lID8gbnVsbCA6IGhlaWdodCxcbiAgICAgICAgICAgICAgICBjb2xvcjogJ3NlY29uZGFyeSdcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICB2YXJpYW50PVwib3V0bGluZWRcIj5cbiAgICAgICAgPC9UZXh0RmllbGRDb21wb25lbnQ+XG4gICAgKTtcbn0pO1xuXG5jb25zdCBUZXh0RmllbGQgPSBSZWFjdC5tZW1vKChwcm9wcykgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICAgIDxCYXNlRmllbGQgey4uLnByb3BzfSBoYW5kbGU9e3Byb3BzLmhhbmRsZX1cbiAgICAgICAgICAgICAgICAgICB2YWx1ZVBhcnNlcj17KHZhbHVlLCBpbmJvdW5kKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZSA/IHZhbHVlLnRvU3RyaW5nKCkgOiB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAgICB7YmFzZSA9PlxuICAgICAgICAgICAgICAgIDxUZXh0RmllbGRXcmFwcGVyXG4gICAgICAgICAgICAgICAgICAgIGJhc2U9e2Jhc2V9XG4gICAgICAgICAgICAgICAgICAgIHsuLi5wcm9wc31cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9UZXh0RmllbGRXcmFwcGVyPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L0Jhc2VGaWVsZD5cbiAgICApO1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IFRleHRGaWVsZDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUMsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0QsSUFBQUMsVUFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsVUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksTUFBQSxHQUFBRixzQkFBQSxDQUFBRixPQUFBO0FBQWdDLFNBQUFFLHVCQUFBRyxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUs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
|
package/dist/event/Observable.js
CHANGED
|
@@ -119,9 +119,8 @@ class Observable {
|
|
|
119
119
|
*/
|
|
120
120
|
_defineProperty(this, "addSystemGeneratedSubscription", (viewId, publisher, subscriber, callback) => {
|
|
121
121
|
let found = false;
|
|
122
|
-
let currentViewId = _ApplicationManager.default.getView(viewId).config.id;
|
|
123
122
|
for (const systemGeneratedSubscription of this.systemGeneratedSubscriptions) {
|
|
124
|
-
if (publisher === systemGeneratedSubscription.publisher && subscriber === systemGeneratedSubscription.subscriber &&
|
|
123
|
+
if (publisher === systemGeneratedSubscription.publisher && subscriber === systemGeneratedSubscription.subscriber && viewId === systemGeneratedSubscription.viewId) {
|
|
125
124
|
found = true;
|
|
126
125
|
}
|
|
127
126
|
}
|
|
@@ -130,7 +129,7 @@ class Observable {
|
|
|
130
129
|
subscription.publisher = publisher;
|
|
131
130
|
subscription.subscriber = subscriber;
|
|
132
131
|
subscription.callback = callback;
|
|
133
|
-
subscription.viewId =
|
|
132
|
+
subscription.viewId = viewId;
|
|
134
133
|
this.systemGeneratedSubscriptions.push(subscription);
|
|
135
134
|
}
|
|
136
135
|
});
|
|
@@ -243,4 +242,4 @@ class Observable {
|
|
|
243
242
|
const instance = new Observable();
|
|
244
243
|
Object.freeze(instance);
|
|
245
244
|
var _default = exports.default = instance;
|
|
246
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfQWN0aW9uSGFuZGxlcnMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9VdGlscyIsIl9FdmVudExpc3RlbmVyIiwiX0FwcGxpY2F0aW9uTWFuYWdlciIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX0R5bmFtaWNKUyIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsImRlZmF1bHQiLCJoYXMiLCJnZXQiLCJzZXQiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIl9kZWZpbmVQcm9wZXJ0eSIsIl90b1Byb3BlcnR5S2V5IiwidmFsdWUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJfdG9QcmltaXRpdmUiLCJTeW1ib2wiLCJ0b1ByaW1pdGl2ZSIsIlR5cGVFcnJvciIsIlN0cmluZyIsIk51bWJlciIsIk9ic2VydmFibGUiLCJjb25zdHJ1Y3RvciIsInN1YnNjcmlwdGlvbiIsInN1YnNjcmlwdGlvbnMiLCJwdXNoIiwiYXBwbGljYXRpb25Db250ZXh0U3Vic2NyaXB0aW9uIiwiZXZlbnRIYW5kbGluZ0NvbmZpZyIsImNvbXBvbmVudEhhbmRsZSIsInZpZXdJZCIsIlV0aWxzIiwiaXNOdWxsIiwiYWRkU3Vic2NyaXB0aW9uIiwiRXZlbnRTdWJzY3JpcHRpb24iLCJwdWJsaXNoZXIiLCJhcGkiLCJpZCIsImV2ZW50VHlwZSIsImFjdGlvbnMiLCJjb25maWciLCJkaXNhYmxlZCIsIm1hdGNoZXMiLCJtYXRjaCIsIlRFTVBMQVRFX1JFR0VYIiwiY29tcG9uZW50IiwicmVwbGFjZSIsImFkZFN5c3RlbUdlbmVyYXRlZFN1YnNjcmlwdGlvbiIsInZpc2libGUiLCJ2YWxpZGF0b3IiLCJudWxsYWJsZSIsImluZGV4IiwiZmluZEluZGV4Iiwic3ViIiwiaGFuZGxlciIsInNwbGljZSIsImNvbXBvbmVudElkIiwiYXBwbGljYXRpb25NYW5hZ2VyIiwicmVzb2x2ZUNvbXBvbmVudEFwaSIsInN5c3RlbUdlbmVyYXRlZFN1YnNjcmlwdGlvbnMiLCJzdWJzY3JpYmVyIiwiY2FsbGJhY2siLCJyZWZyZXNoIiwiZm91bmQiLCJjdXJyZW50Vmlld0lkIiwiZ2V0VmlldyIsInN5c3RlbUdlbmVyYXRlZFN1YnNjcmlwdGlvbiIsImluc3RhbmNlIiwiZW1pdENvbnRleHRDaGFuZ2VFdmVudCIsImNvbnRleHQiLCJuZXdWYWx1ZXMiLCJvbkNvbnRleHRDaGFuZ2UiLCJmaXJlRXZlbnQiLCJiZSIsImxvZyIsImdldFNvdXJjZSIsInNvdXJjZUlkIiwiZG9tYWluIiwicHVibGlzaGVyRG9tYWluIiwiY29uc29sZSIsIlNZU1RFTV9FVkVOVCIsImdldFB1Ymxpc2hlciIsImdldEV2ZW50VHlwZSIsImdldFZpZXdJZCIsImdldEFjdGlvbnMiLCJqIiwibGVuZ3RoIiwiYWN0aW9uIiwiQWN0aW9uSGFuZGxlcnMiLCJpbnZva2UiLCJnZXRDYWxsYmFjayIsInByb2Nlc3NTeXN0ZW1HZW5lcmF0ZWRTdWJzY3JpcHRpb25zIiwiY2xlYXJBbGxFdmVudExpc3RlbmVycyIsImNsZWFyRXZlbnRMaXN0ZW5lcnMiLCJpbmRleGVzIiwicyIsImNsZWFyQ29tcG9uZW50RXZlbnRMaXN0ZW5lcnMiLCJmcmVlemUiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL2V2ZW50L09ic2VydmFibGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDbGFzcyBmb3Igb2JqZWN0cyB0aGF0IHJlZ2lzdGVyIHN1YnNjcmlwdGlvbnMgYW5kIGZpcmUgZXZlbnRzLlxuICovXG5cbmltcG9ydCBBY3Rpb25IYW5kbGVycyBmcm9tICcuL0FjdGlvbkhhbmRsZXJzJztcbmltcG9ydCBVdGlscyBmcm9tICcuLi9VdGlscyc7XG5pbXBvcnQgRXZlbnRTdWJzY3JpcHRpb24gZnJvbSAnLi9FdmVudExpc3RlbmVyJztcbmltcG9ydCBhcHBsaWNhdGlvbk1hbmFnZXIsIHsgU1lTVEVNX0VWRU5UIH0gZnJvbSAnLi4vQXBwbGljYXRpb25NYW5hZ2VyJztcbmltcG9ydCB7IFRFTVBMQVRFX1JFR0VYIH0gZnJvbSAnLi4vRHluYW1pY0pTJztcblxuY2xhc3MgT2JzZXJ2YWJsZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIGlmICghT2JzZXJ2YWJsZS5pbnN0YW5jZSkge1xuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zID0gW107XG4gICAgICAgICAgICB0aGlzLmFwcGxpY2F0aW9uQ29udGV4dFN1YnNjcmlwdGlvbiA9IFtdO1xuICAgICAgICAgICAgdGhpcy5zeXN0ZW1HZW5lcmF0ZWRTdWJzY3JpcHRpb25zID0gW107XG4gICAgICAgICAgICBPYnNlcnZhYmxlLmluc3RhbmNlID0gdGhpcztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBPYnNlcnZhYmxlLmluc3RhbmNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZHMgYSBzdWJzY3JpcHRpb24gYm91bmQgYnkgdGhlIGdpdmVuIGV2ZW50IHR5cGUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc3Vic2NyaXB0aW9uIHRoZSBzdWJzY3JpcHRpb24gdG8gYmUgYWRkZWRcbiAgICAgKi9cbiAgICBhZGRTdWJzY3JpcHRpb24gPSAoc3Vic2NyaXB0aW9uKSA9PiB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChzdWJzY3JpcHRpb24pO1xuXG4gICAgLyoqXG4gICAgICogQWRkcyBhIHN1YnNjcmlwdGlvbiBib3VuZCBieSB0aGUgZ2l2ZW4gZXZlbnQgdHlwZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzdWJzY3JpcHRpb24gdGhlIHN1YnNjcmlwdGlvbiB0byBiZSBhZGRlZFxuICAgICAqL1xuICAgIGFkZEFwcGxpY2F0aW9uQ29udGV4dFN1YnNjcmlwdGlvbiA9IChzdWJzY3JpcHRpb24pID0+IHRoaXMuYXBwbGljYXRpb25Db250ZXh0U3Vic2NyaXB0aW9uLnB1c2goc3Vic2NyaXB0aW9uKTtcblxuICAgIC8qKlxuICAgICAqIEFkZHMgYSBsaXN0ZW5lciBib3VuZCBieSB0aGUgZ2l2ZW4gZXZlbnQgdHlwZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBldmVudEhhbmRsaW5nQ29uZmlnIHRoZSBsaXN0ZW5lciBjb25maWcgZnJvbSBiYWNrLWVuZFxuICAgICAqIEBwYXJhbSBjb21wb25lbnRIYW5kbGUgcmVmZXJlbmNlIHRvIHRoZSBjb21wb25lbnQgb3duaW5nIHRoZSBldmVudFxuICAgICAqIEBwYXJhbSB2aWV3SWQgdGhlIGlkIG9mIHRoZSB2aWV3IHdoZXJlIHRoZSBjb21wb25lbnQgaXMgcmVuZGVyZWRcbiAgICAgKi9cbiAgICBhZGRTdWJzY3JpcHRpb25zID0gKGV2ZW50SGFuZGxpbmdDb25maWcsIGNvbXBvbmVudEhhbmRsZSwgdmlld0lkKSA9PiB7XG4gICAgICAgIGlmICghVXRpbHMuaXNOdWxsKGV2ZW50SGFuZGxpbmdDb25maWcpKSB7XG4gICAgICAgICAgICBsZXQgc3Vic2NyaXB0aW9ucyA9IGV2ZW50SGFuZGxpbmdDb25maWcuc3Vic2NyaXB0aW9ucztcbiAgICAgICAgICAgIGZvciAoY29uc3Qgc3Vic2NyaXB0aW9uIG9mIHN1YnNjcmlwdGlvbnMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFkZFN1YnNjcmlwdGlvbihuZXcgRXZlbnRTdWJzY3JpcHRpb24oY29tcG9uZW50SGFuZGxlLCB2aWV3SWQsXG4gICAgICAgICAgICAgICAgICAgICFVdGlscy5pc051bGwoc3Vic2NyaXB0aW9uLnB1Ymxpc2hlcikgPyBzdWJzY3JpcHRpb24ucHVibGlzaGVyIDogY29tcG9uZW50SGFuZGxlLmFwaS5pZCxcbiAgICAgICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9uLmV2ZW50VHlwZSwgc3Vic2NyaXB0aW9uLmFjdGlvbnMpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBBZGRzIHN5c3RlbSBnZW5lcmF0ZWQgY29tcG9uZW50IHN1YnNjcmlwdGlvbnMsIHN1Y2ggYXMgdGhlIG9uZXMgdG8gcmUtcnVuIGRpc2FibGVkIGFuZCByZXF1aXJlZCBzY3JpcGxldHMgYWZ0ZXIgZXZlbnRzIGFyZSBmaXJlZFxuICAgICAqXG4gICAgICogQHBhcmFtIHZpZXdJZCB0aGUgY29tcG9uZW50IHZpZXdJZFxuICAgICAqIEBwYXJhbSBjb25maWcgdGhlIGNvbXBvbmVudCBjb25maWdcbiAgICAgKlxuICAgICAqL1xuICAgIGFkZFN5c3RlbVN1YnNjcmlwdGlvbnMgPSAodmlld0lkLCBjb25maWcpID0+IHtcbiAgICAgICAgaWYgKCFVdGlscy5pc051bGwoY29uZmlnLmRpc2FibGVkKSAmJiB0eXBlb2YgY29uZmlnLmRpc2FibGVkID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgbGV0IG1hdGNoZXMgPSBjb25maWcuZGlzYWJsZWQubWF0Y2goVEVNUExBVEVfUkVHRVgpO1xuICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwobWF0Y2hlcykpIHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IG1hdGNoIG9mIG1hdGNoZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGNvbXBvbmVudCA9IG1hdGNoLnJlcGxhY2UoJ0AjeycsICcnKVxuICAgICAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoJ30nLCAnJyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWRkU3lzdGVtR2VuZXJhdGVkU3Vic2NyaXB0aW9uKHZpZXdJZCwgY29tcG9uZW50LCBjb25maWcuaWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghVXRpbHMuaXNOdWxsKGNvbmZpZy52aXNpYmxlKSAmJiB0eXBlb2YgY29uZmlnLnZpc2libGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBsZXQgbWF0Y2hlcyA9IGNvbmZpZy52aXNpYmxlLm1hdGNoKFRFTVBMQVRFX1JFR0VYKTtcbiAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKG1hdGNoZXMpKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBtYXRjaCBvZiBtYXRjaGVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBjb21wb25lbnQgPSBtYXRjaC5yZXBsYWNlKCdAI3snLCAnJylcbiAgICAgICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKCd9JywgJycpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZFN5c3RlbUdlbmVyYXRlZFN1YnNjcmlwdGlvbih2aWV3SWQsIGNvbXBvbmVudCwgY29uZmlnLmlkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChjb25maWcudmFsaWRhdG9yKSAmJiAhVXRpbHMuaXNOdWxsKGNvbmZpZy52YWxpZGF0b3IubnVsbGFibGUpKSB7XG4gICAgICAgICAgICBsZXQgbWF0Y2hlcyA9IGNvbmZpZy52YWxpZGF0b3IubnVsbGFibGUubWF0Y2goVEVNUExBVEVfUkVHRVgpO1xuICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwobWF0Y2hlcykpIHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IG1hdGNoIG9mIG1hdGNoZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGNvbXBvbmVudCA9IG1hdGNoLnJlcGxhY2UoJ0AjeycsICcnKVxuICAgICAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoJ30nLCAnJyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWRkU3lzdGVtR2VuZXJhdGVkU3Vic2NyaXB0aW9uKHZpZXdJZCwgY29tcG9uZW50LCBjb25maWcuaWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG5cbiAgICByZW1vdmVBcHBsaWNhdGlvbkNvbnRleHRTdWJzY3JpcHRpb25zID0gKGlkKSA9PiB7XG4gICAgICAgIGxldCBpbmRleCA9IHRoaXMuYXBwbGljYXRpb25Db250ZXh0U3Vic2NyaXB0aW9uLmZpbmRJbmRleCgoc3ViKSA9PiBzdWIuaGFuZGxlci5pZCA9PT0gaWQpO1xuICAgICAgICBpZihpbmRleCA+PSAwKSB7XG4gICAgICAgICAgICB0aGlzLmFwcGxpY2F0aW9uQ29udGV4dFN1YnNjcmlwdGlvbi5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIGFzeW5jIGVtaXRDb250ZXh0Q2hhbmdlRXZlbnQoY29udGV4dCwgbmV3VmFsdWVzKSB7XG4gICAgICAgIGZvciAoY29uc3QgYXBwbGljYXRpb25Db250ZXh0U3Vic2NyaXB0aW9uIG9mIHRoaXMuYXBwbGljYXRpb25Db250ZXh0U3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICBpZihhcHBsaWNhdGlvbkNvbnRleHRTdWJzY3JpcHRpb24uaGFuZGxlci5hcGkpIHtcbiAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbkNvbnRleHRTdWJzY3JpcHRpb24uaGFuZGxlci5hcGkub25Db250ZXh0Q2hhbmdlKGNvbnRleHQsIG5ld1ZhbHVlcyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uQ29udGV4dFN1YnNjcmlwdGlvbi5oYW5kbGVyLm9uQ29udGV4dENoYW5nZShjb250ZXh0LCBuZXdWYWx1ZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRmlyZXMgYW4gZXZlbnQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZXZlbnRUeXBlIGV2ZW50VHlwZSB0aGUgZXZlbnQgdHlwZVxuICAgICAqIEBwYXJhbSBiZSB0aGUgYmFzZSBldmVudFxuICAgICAqIEBwYXJhbSBsb2cgZGV0ZXJtaW5lIHdoZXRoZXIgdG8gbG9nIGNoZWNrc1xuICAgICAqIEByZXR1cm4gZmFsc2UgaWYgYW55IHN1YnNjcmlwdGlvbnMgY2FuY2VsIHRoZSBldmVudC5cbiAgICAgKi9cbiAgICBhc3luYyBmaXJlRXZlbnQoZXZlbnRUeXBlLCBiZSwgbG9nKSB7XG5cbiAgICAgICAgLy8gQ29tcG9uZW50cyBjb3VsZCBiZSB1bmxvYWRpbmcgb24gdGhlIGNhc2VzIHdoZXJlIHNjcmVlbnMgYXJlIGJ1c3kgY2xvc2luZyxcbiAgICAgICAgLy8gbWVhbmluZyB0aGUgXCJjdXJyZW50XCIgb2JqZWN0IG1heSBiZSBudWxsaWZpZWQsIHNvIHdlIG5lZWQgdGhlIG51bGwgY2hlY2tcbiAgICAgICAgLy8gVGhpcyBoYXBwZW5zIG9uIGFzeW5jIGV2ZW50cyBzdWNoIGFzIFJQQ19DQUxMLiBJZiB0aGVyZSBpcyBubyB2aWV3IG1hc2tpbmcsXG4gICAgICAgIC8vIHRoZSBSRVNUIGNhbGwgbWF5IHJldHVybiB3aGlsZSB0aGUgY29tcG9uZW50IGhhcyBiZWVuIGRlc3Ryb3llZCwgYW5kIHRoZSBzb3VyY2UncyBjdXJyZW50IGNvdWxkIGJlIG51bGxcbiAgICAgICAgLy8gUHJvcGVyIG1hc2tpbmcgd2hlbiBkb2luZyBSRVNUIENBTEwgc2hvdWxkIHByZXZlbnQgdGhpcyBmcm9tIGhhcHBlbmluZy4gVGhlIG51bGwgY2hlY2sgcHJvdmlkZXMgdGhlIHNvcnQgb2YgZGVmZW5jZVxuXG4gICAgICAgIGlmICghVXRpbHMuaXNOdWxsKGJlLmdldFNvdXJjZSgpKSAmJiAhVXRpbHMuaXNOdWxsKGJlLmdldFNvdXJjZSgpLmFwaSkpIHtcbiAgICAgICAgICAgIGxldCBzb3VyY2VJZCA9IGJlLmdldFNvdXJjZSgpLmFwaS5pZDtcbiAgICAgICAgICAgIGxldCB2aWV3SWQgPSBiZS52aWV3SWQ7XG5cbiAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHNvdXJjZUlkKSkge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3Qgc3Vic2NyaXB0aW9uIG9mIHRoaXMuc3Vic2NyaXB0aW9ucykge1xuICAgICAgICAgICAgICAgICAgICBsZXQgZG9tYWluID0gc3Vic2NyaXB0aW9uLnB1Ymxpc2hlckRvbWFpbiA/IHN1YnNjcmlwdGlvbi5wdWJsaXNoZXJEb21haW4gOiB2aWV3SWQ7XG4gICAgICAgICAgICAgICAgICAgIGlmKGxvZyA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJWSUVXIENIRUNLOiBcIiArIGRvbWFpbiArIFwiID09PyBcIiArIHZpZXdJZCArIFwiIC0gXCIgKyAoZG9tYWluID09PSB2aWV3SWQgfHwgU1lTVEVNX0VWRU5UID09PSB2aWV3SWQpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiUFVCTElTSEVSIENIRUNLOiBcIiArIHN1YnNjcmlwdGlvbi5nZXRQdWJsaXNoZXIoKSArIFwiIDogXCIgKyBzb3VyY2VJZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIkVWRU5UIFRZUEUgQ0hFQ0s6IFwiICsgc3Vic2NyaXB0aW9uLmdldEV2ZW50VHlwZSgpICsgXCIgOiBcIiArIGV2ZW50VHlwZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIkZVTEwgQ0hFQ0s6IFwiICsgKChzdWJzY3JpcHRpb24uZ2V0Vmlld0lkKCkgPT09IHZpZXdJZCB8fCBTWVNURU1fRVZFTlQgPT09IHZpZXdJZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiBzdWJzY3JpcHRpb24uZ2V0UHVibGlzaGVyKCkgPT09IHNvdXJjZUlkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgc3Vic2NyaXB0aW9uLmdldEV2ZW50VHlwZSgpID09PSBldmVudFR5cGUpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiXFxuXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKChkb21haW4gPT09IHZpZXdJZCB8fCBTWVNURU1fRVZFTlQgPT09IHZpZXdJZClcbiAgICAgICAgICAgICAgICAgICAgICAgICYmIHN1YnNjcmlwdGlvbi5nZXRQdWJsaXNoZXIoKSA9PT0gc291cmNlSWRcbiAgICAgICAgICAgICAgICAgICAgICAgICYmIHN1YnNjcmlwdGlvbi5nZXRFdmVudFR5cGUoKSA9PT0gZXZlbnRUeXBlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChzdWJzY3JpcHRpb24uZ2V0QWN0aW9ucygpKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgc3Vic2NyaXB0aW9uLmdldEFjdGlvbnMoKS5sZW5ndGg7IGorKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYWN0aW9uID0gc3Vic2NyaXB0aW9uLmdldEFjdGlvbnMoKVtqXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0aW9uSGFuZGxlcnMuaW52b2tlKGFjdGlvbiwgYmUsIHN1YnNjcmlwdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICghVXRpbHMuaXNOdWxsKHN1YnNjcmlwdGlvbi5nZXRDYWxsYmFjaygpKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmlwdGlvbi5nZXRDYWxsYmFjaygpKGJlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMucHJvY2Vzc1N5c3RlbUdlbmVyYXRlZFN1YnNjcmlwdGlvbnMoc291cmNlSWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2xlYXJzIGFsbCBldmVudCBzdWJzY3JpcHRpb25zXG4gICAgICpcbiAgICAgKi9cbiAgICBjbGVhckFsbEV2ZW50TGlzdGVuZXJzKCkge1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuc3BsaWNlKDAsIHRoaXMuc3Vic2NyaXB0aW9ucy5sZW5ndGgpO1xuICAgICAgICB0aGlzLnN5c3RlbUdlbmVyYXRlZFN1YnNjcmlwdGlvbnMuc3BsaWNlKDAsIHRoaXMuc3lzdGVtR2VuZXJhdGVkU3Vic2NyaXB0aW9ucy5sZW5ndGgpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBDbGVhcnMgYWxsIGV2ZW50IHN1YnNjcmlwdGlvbnMgZm9yIHRoZSBzcGVjaWZpZWQgdmlld1xuICAgICAqXG4gICAgICogQHBhcmFtIHZpZXdJZCB0aGUgdmlld1xuICAgICAqL1xuICAgIGNsZWFyRXZlbnRMaXN0ZW5lcnModmlld0lkKSB7XG4gICAgICAgIGxldCBpbmRleGVzID0gW107XG5cbiAgICAgICAgbGV0IGluZGV4O1xuICAgICAgICB3aGlsZSAoKGluZGV4ID0gdGhpcy5zdWJzY3JpcHRpb25zLmZpbmRJbmRleCgocykgPT4gcy52aWV3SWQgPT09IHZpZXdJZCkpICE9PSAtMSkge1xuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbCh0aGlzLnN5c3RlbUdlbmVyYXRlZFN1YnNjcmlwdGlvbnMpKSB7XG4gICAgICAgICAgICB3aGlsZSAoKGluZGV4ID0gdGhpcy5zeXN0ZW1HZW5lcmF0ZWRTdWJzY3JpcHRpb25zLmZpbmRJbmRleCgocykgPT4gcy52aWV3SWQgPT09IHZpZXdJZCkpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3lzdGVtR2VuZXJhdGVkU3Vic2NyaXB0aW9ucy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIENsZWFycyBhbGwgZXZlbnQgc3Vic2NyaXB0aW9ucyBmb3IgdGhlIHNwZWNpZmllZCB2aWV3XG4gICAgICpcbiAgICAgKiBAcGFyYW0gY29tcG9uZW50IHRoZSB2aWV3XG4gICAgICovXG4gICAgY2xlYXJDb21wb25lbnRFdmVudExpc3RlbmVycyhjb21wb25lbnQpIHtcbiAgICAgICAgaWYoY29tcG9uZW50ICYmIGNvbXBvbmVudC5hcGkgJiYgY29tcG9uZW50LmFwaS5pZCkge1xuICAgICAgICAgICAgbGV0IGluZGV4O1xuICAgICAgICAgICAgd2hpbGUgKChpbmRleCA9IHRoaXMuc3Vic2NyaXB0aW9ucy5maW5kSW5kZXgoKHMpID0+IHMuc3Vic2NyaWJlciA9PT0gY29tcG9uZW50LmFwaS5pZCkpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbCh0aGlzLnN5c3RlbUdlbmVyYXRlZFN1YnNjcmlwdGlvbnMpKSB7XG4gICAgICAgICAgICAgICAgd2hpbGUgKChpbmRleCA9IHRoaXMuc3lzdGVtR2VuZXJhdGVkU3Vic2NyaXB0aW9ucy5maW5kSW5kZXgoKHMpID0+IHMuc3Vic2NyaWJlciA9PT0gY29tcG9uZW50LmFwaS5pZCkpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN5c3RlbUdlbmVyYXRlZFN1YnNjcmlwdGlvbnMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY29tcG9uZW50SWRcbiAgICAgKlxuICAgICAqL1xuICAgIHByb2Nlc3NTeXN0ZW1HZW5lcmF0ZWRTdWJzY3JpcHRpb25zID0gKGNvbXBvbmVudElkKSA9PiB7XG4gICAgICAgIGxldCBjb21wb25lbnQgPSBhcHBsaWNhdGlvbk1hbmFnZXIucmVzb2x2ZUNvbXBvbmVudEFwaShjb21wb25lbnRJZCk7XG5cbiAgICAgICAgaWYgKCFVdGlscy5pc051bGwoY29tcG9uZW50KSkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBzdWJzY3JpcHRpb24gb2YgdGhpcy5zeXN0ZW1HZW5lcmF0ZWRTdWJzY3JpcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgaWYgKHN1YnNjcmlwdGlvbi5wdWJsaXNoZXIgPT09IGNvbXBvbmVudElkKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBjb21wb25lbnQgPSBhcHBsaWNhdGlvbk1hbmFnZXIucmVzb2x2ZUNvbXBvbmVudEFwaShzdWJzY3JpcHRpb24uc3Vic2NyaWJlcik7XG4gICAgICAgICAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKGNvbXBvbmVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHN1YnNjcmlwdGlvbi5jYWxsYmFjaykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb24uY2FsbGJhY2soKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIVV0aWxzLmlzTnVsbChjb21wb25lbnQucmVmcmVzaCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnQucmVmcmVzaCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHBhcmFtIHZpZXdJZFxuICAgICAqIEBwYXJhbSBwdWJsaXNoZXJcbiAgICAgKiBAcGFyYW0gc3Vic2NyaWJlclxuICAgICAqIEBwYXJhbSBjYWxsYmFja1xuICAgICAqXG4gICAgICovXG4gICAgYWRkU3lzdGVtR2VuZXJhdGVkU3Vic2NyaXB0aW9uID0gKHZpZXdJZCwgcHVibGlzaGVyLCBzdWJzY3JpYmVyLCBjYWxsYmFjaykgPT4ge1xuICAgICAgICBsZXQgZm91bmQgPSBmYWxzZTtcbiAgICAgICAgbGV0IGN1cnJlbnRWaWV3SWQgPSBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0Vmlldyh2aWV3SWQpLmNvbmZpZy5pZDtcblxuICAgICAgICBmb3IgKGNvbnN0IHN5c3RlbUdlbmVyYXRlZFN1YnNjcmlwdGlvbiBvZiB0aGlzLnN5c3RlbUdlbmVyYXRlZFN1YnNjcmlwdGlvbnMpIHtcbiAgICAgICAgICAgIGlmIChwdWJsaXNoZXIgPT09IHN5c3RlbUdlbmVyYXRlZFN1YnNjcmlwdGlvbi5wdWJsaXNoZXJcbiAgICAgICAgICAgICAgICAmJiBzdWJzY3JpYmVyID09PSBzeXN0ZW1HZW5lcmF0ZWRTdWJzY3JpcHRpb24uc3Vic2NyaWJlclxuICAgICAgICAgICAgICAgICYmIGN1cnJlbnRWaWV3SWQgPT09IHN5c3RlbUdlbmVyYXRlZFN1YnNjcmlwdGlvbi52aWV3SWQpIHtcbiAgICAgICAgICAgICAgICBmb3VuZCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWZvdW5kKSB7XG4gICAgICAgICAgICBsZXQgc3Vic2NyaXB0aW9uID0ge307XG4gICAgICAgICAgICBzdWJzY3JpcHRpb24ucHVibGlzaGVyID0gcHVibGlzaGVyO1xuICAgICAgICAgICAgc3Vic2NyaXB0aW9uLnN1YnNjcmliZXIgPSBzdWJzY3JpYmVyO1xuICAgICAgICAgICAgc3Vic2NyaXB0aW9uLmNhbGxiYWNrID0gY2FsbGJhY2s7XG4gICAgICAgICAgICBzdWJzY3JpcHRpb24udmlld0lkID0gY3VycmVudFZpZXdJZDtcblxuICAgICAgICAgICAgdGhpcy5zeXN0ZW1HZW5lcmF0ZWRTdWJzY3JpcHRpb25zLnB1c2goc3Vic2NyaXB0aW9uKTtcbiAgICAgICAgfVxuICAgIH07XG59XG5cbmNvbnN0IGluc3RhbmNlID0gbmV3IE9ic2VydmFibGUoKTtcbk9iamVjdC5mcmVlemUoaW5zdGFuY2Up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
|
|
245
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfQWN0aW9uSGFuZGxlcnMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9VdGlscyIsIl9FdmVudExpc3RlbmVyIiwiX0FwcGxpY2F0aW9uTWFuYWdlciIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX0R5bmFtaWNKUyIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsImRlZmF1bHQiLCJoYXMiLCJnZXQiLCJzZXQiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIl9kZWZpbmVQcm9wZXJ0eSIsIl90b1Byb3BlcnR5S2V5IiwidmFsdWUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJfdG9QcmltaXRpdmUiLCJTeW1ib2wiLCJ0b1ByaW1pdGl2ZSIsIlR5cGVFcnJvciIsIlN0cmluZyIsIk51bWJlciIsIk9ic2VydmFibGUiLCJjb25zdHJ1Y3RvciIsInN1YnNjcmlwdGlvbiIsInN1YnNjcmlwdGlvbnMiLCJwdXNoIiwiYXBwbGljYXRpb25Db250ZXh0U3Vic2NyaXB0aW9uIiwiZXZlbnRIYW5kbGluZ0NvbmZpZyIsImNvbXBvbmVudEhhbmRsZSIsInZpZXdJZCIsIlV0aWxzIiwiaXNOdWxsIiwiYWRkU3Vic2NyaXB0aW9uIiwiRXZlbnRTdWJzY3JpcHRpb24iLCJwdWJsaXNoZXIiLCJhcGkiLCJpZCIsImV2ZW50VHlwZSIsImFjdGlvbnMiLCJjb25maWciLCJkaXNhYmxlZCIsIm1hdGNoZXMiLCJtYXRjaCIsIlRFTVBMQVRFX1JFR0VYIiwiY29tcG9uZW50IiwicmVwbGFjZSIsImFkZFN5c3RlbUdlbmVyYXRlZFN1YnNjcmlwdGlvbiIsInZpc2libGUiLCJ2YWxpZGF0b3IiLCJudWxsYWJsZSIsImluZGV4IiwiZmluZEluZGV4Iiwic3ViIiwiaGFuZGxlciIsInNwbGljZSIsImNvbXBvbmVudElkIiwiYXBwbGljYXRpb25NYW5hZ2VyIiwicmVzb2x2ZUNvbXBvbmVudEFwaSIsInN5c3RlbUdlbmVyYXRlZFN1YnNjcmlwdGlvbnMiLCJzdWJzY3JpYmVyIiwiY2FsbGJhY2siLCJyZWZyZXNoIiwiZm91bmQiLCJzeXN0ZW1HZW5lcmF0ZWRTdWJzY3JpcHRpb24iLCJpbnN0YW5jZSIsImVtaXRDb250ZXh0Q2hhbmdlRXZlbnQiLCJjb250ZXh0IiwibmV3VmFsdWVzIiwib25Db250ZXh0Q2hhbmdlIiwiZmlyZUV2ZW50IiwiYmUiLCJsb2ciLCJnZXRTb3VyY2UiLCJzb3VyY2VJZCIsImRvbWFpbiIsInB1Ymxpc2hlckRvbWFpbiIsImNvbnNvbGUiLCJTWVNURU1fRVZFTlQiLCJnZXRQdWJsaXNoZXIiLCJnZXRFdmVudFR5cGUiLCJnZXRWaWV3SWQiLCJnZXRBY3Rpb25zIiwiaiIsImxlbmd0aCIsImFjdGlvbiIsIkFjdGlvbkhhbmRsZXJzIiwiaW52b2tlIiwiZ2V0Q2FsbGJhY2siLCJwcm9jZXNzU3lzdGVtR2VuZXJhdGVkU3Vic2NyaXB0aW9ucyIsImNsZWFyQWxsRXZlbnRMaXN0ZW5lcnMiLCJjbGVhckV2ZW50TGlzdGVuZXJzIiwiaW5kZXhlcyIsInMiLCJjbGVhckNvbXBvbmVudEV2ZW50TGlzdGVuZXJzIiwiZnJlZXplIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9ldmVudC9PYnNlcnZhYmxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ2xhc3MgZm9yIG9iamVjdHMgdGhhdCByZWdpc3RlciBzdWJzY3JpcHRpb25zIGFuZCBmaXJlIGV2ZW50cy5cbiAqL1xuXG5pbXBvcnQgQWN0aW9uSGFuZGxlcnMgZnJvbSAnLi9BY3Rpb25IYW5kbGVycyc7XG5pbXBvcnQgVXRpbHMgZnJvbSAnLi4vVXRpbHMnO1xuaW1wb3J0IEV2ZW50U3Vic2NyaXB0aW9uIGZyb20gJy4vRXZlbnRMaXN0ZW5lcic7XG5pbXBvcnQgYXBwbGljYXRpb25NYW5hZ2VyLCB7IFNZU1RFTV9FVkVOVCB9IGZyb20gJy4uL0FwcGxpY2F0aW9uTWFuYWdlcic7XG5pbXBvcnQgeyBURU1QTEFURV9SRUdFWCB9IGZyb20gJy4uL0R5bmFtaWNKUyc7XG5cbmNsYXNzIE9ic2VydmFibGUge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBpZiAoIU9ic2VydmFibGUuaW5zdGFuY2UpIHtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IFtdO1xuICAgICAgICAgICAgdGhpcy5hcHBsaWNhdGlvbkNvbnRleHRTdWJzY3JpcHRpb24gPSBbXTtcbiAgICAgICAgICAgIHRoaXMuc3lzdGVtR2VuZXJhdGVkU3Vic2NyaXB0aW9ucyA9IFtdO1xuICAgICAgICAgICAgT2JzZXJ2YWJsZS5pbnN0YW5jZSA9IHRoaXM7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gT2JzZXJ2YWJsZS5pbnN0YW5jZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGRzIGEgc3Vic2NyaXB0aW9uIGJvdW5kIGJ5IHRoZSBnaXZlbiBldmVudCB0eXBlLlxuICAgICAqXG4gICAgICogQHBhcmFtIHN1YnNjcmlwdGlvbiB0aGUgc3Vic2NyaXB0aW9uIHRvIGJlIGFkZGVkXG4gICAgICovXG4gICAgYWRkU3Vic2NyaXB0aW9uID0gKHN1YnNjcmlwdGlvbikgPT4gdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goc3Vic2NyaXB0aW9uKTtcblxuICAgIC8qKlxuICAgICAqIEFkZHMgYSBzdWJzY3JpcHRpb24gYm91bmQgYnkgdGhlIGdpdmVuIGV2ZW50IHR5cGUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc3Vic2NyaXB0aW9uIHRoZSBzdWJzY3JpcHRpb24gdG8gYmUgYWRkZWRcbiAgICAgKi9cbiAgICBhZGRBcHBsaWNhdGlvbkNvbnRleHRTdWJzY3JpcHRpb24gPSAoc3Vic2NyaXB0aW9uKSA9PiB0aGlzLmFwcGxpY2F0aW9uQ29udGV4dFN1YnNjcmlwdGlvbi5wdXNoKHN1YnNjcmlwdGlvbik7XG5cbiAgICAvKipcbiAgICAgKiBBZGRzIGEgbGlzdGVuZXIgYm91bmQgYnkgdGhlIGdpdmVuIGV2ZW50IHR5cGUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZXZlbnRIYW5kbGluZ0NvbmZpZyB0aGUgbGlzdGVuZXIgY29uZmlnIGZyb20gYmFjay1lbmRcbiAgICAgKiBAcGFyYW0gY29tcG9uZW50SGFuZGxlIHJlZmVyZW5jZSB0byB0aGUgY29tcG9uZW50IG93bmluZyB0aGUgZXZlbnRcbiAgICAgKiBAcGFyYW0gdmlld0lkIHRoZSBpZCBvZiB0aGUgdmlldyB3aGVyZSB0aGUgY29tcG9uZW50IGlzIHJlbmRlcmVkXG4gICAgICovXG4gICAgYWRkU3Vic2NyaXB0aW9ucyA9IChldmVudEhhbmRsaW5nQ29uZmlnLCBjb21wb25lbnRIYW5kbGUsIHZpZXdJZCkgPT4ge1xuICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChldmVudEhhbmRsaW5nQ29uZmlnKSkge1xuICAgICAgICAgICAgbGV0IHN1YnNjcmlwdGlvbnMgPSBldmVudEhhbmRsaW5nQ29uZmlnLnN1YnNjcmlwdGlvbnM7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHN1YnNjcmlwdGlvbiBvZiBzdWJzY3JpcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hZGRTdWJzY3JpcHRpb24obmV3IEV2ZW50U3Vic2NyaXB0aW9uKGNvbXBvbmVudEhhbmRsZSwgdmlld0lkLFxuICAgICAgICAgICAgICAgICAgICAhVXRpbHMuaXNOdWxsKHN1YnNjcmlwdGlvbi5wdWJsaXNoZXIpID8gc3Vic2NyaXB0aW9uLnB1Ymxpc2hlciA6IGNvbXBvbmVudEhhbmRsZS5hcGkuaWQsXG4gICAgICAgICAgICAgICAgICAgIHN1YnNjcmlwdGlvbi5ldmVudFR5cGUsIHN1YnNjcmlwdGlvbi5hY3Rpb25zKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogQWRkcyBzeXN0ZW0gZ2VuZXJhdGVkIGNvbXBvbmVudCBzdWJzY3JpcHRpb25zLCBzdWNoIGFzIHRoZSBvbmVzIHRvIHJlLXJ1biBkaXNhYmxlZCBhbmQgcmVxdWlyZWQgc2NyaXBsZXRzIGFmdGVyIGV2ZW50cyBhcmUgZmlyZWRcbiAgICAgKlxuICAgICAqIEBwYXJhbSB2aWV3SWQgdGhlIGNvbXBvbmVudCB2aWV3SWRcbiAgICAgKiBAcGFyYW0gY29uZmlnIHRoZSBjb21wb25lbnQgY29uZmlnXG4gICAgICpcbiAgICAgKi9cbiAgICBhZGRTeXN0ZW1TdWJzY3JpcHRpb25zID0gKHZpZXdJZCwgY29uZmlnKSA9PiB7XG4gICAgICAgIGlmICghVXRpbHMuaXNOdWxsKGNvbmZpZy5kaXNhYmxlZCkgJiYgdHlwZW9mIGNvbmZpZy5kaXNhYmxlZCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGxldCBtYXRjaGVzID0gY29uZmlnLmRpc2FibGVkLm1hdGNoKFRFTVBMQVRFX1JFR0VYKTtcbiAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKG1hdGNoZXMpKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBtYXRjaCBvZiBtYXRjaGVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBjb21wb25lbnQgPSBtYXRjaC5yZXBsYWNlKCdAI3snLCAnJylcbiAgICAgICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKCd9JywgJycpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZFN5c3RlbUdlbmVyYXRlZFN1YnNjcmlwdGlvbih2aWV3SWQsIGNvbXBvbmVudCwgY29uZmlnLmlkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChjb25maWcudmlzaWJsZSkgJiYgdHlwZW9mIGNvbmZpZy52aXNpYmxlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgbGV0IG1hdGNoZXMgPSBjb25maWcudmlzaWJsZS5tYXRjaChURU1QTEFURV9SRUdFWCk7XG4gICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChtYXRjaGVzKSkge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgbWF0Y2ggb2YgbWF0Y2hlcykge1xuICAgICAgICAgICAgICAgICAgICBsZXQgY29tcG9uZW50ID0gbWF0Y2gucmVwbGFjZSgnQCN7JywgJycpXG4gICAgICAgICAgICAgICAgICAgICAgICAucmVwbGFjZSgnfScsICcnKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hZGRTeXN0ZW1HZW5lcmF0ZWRTdWJzY3JpcHRpb24odmlld0lkLCBjb21wb25lbnQsIGNvbmZpZy5pZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFVdGlscy5pc051bGwoY29uZmlnLnZhbGlkYXRvcikgJiYgIVV0aWxzLmlzTnVsbChjb25maWcudmFsaWRhdG9yLm51bGxhYmxlKSkge1xuICAgICAgICAgICAgbGV0IG1hdGNoZXMgPSBjb25maWcudmFsaWRhdG9yLm51bGxhYmxlLm1hdGNoKFRFTVBMQVRFX1JFR0VYKTtcbiAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKG1hdGNoZXMpKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBtYXRjaCBvZiBtYXRjaGVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBjb21wb25lbnQgPSBtYXRjaC5yZXBsYWNlKCdAI3snLCAnJylcbiAgICAgICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKCd9JywgJycpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZFN5c3RlbUdlbmVyYXRlZFN1YnNjcmlwdGlvbih2aWV3SWQsIGNvbXBvbmVudCwgY29uZmlnLmlkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgcmVtb3ZlQXBwbGljYXRpb25Db250ZXh0U3Vic2NyaXB0aW9ucyA9IChpZCkgPT4ge1xuICAgICAgICBsZXQgaW5kZXggPSB0aGlzLmFwcGxpY2F0aW9uQ29udGV4dFN1YnNjcmlwdGlvbi5maW5kSW5kZXgoKHN1YikgPT4gc3ViLmhhbmRsZXIuaWQgPT09IGlkKTtcbiAgICAgICAgaWYoaW5kZXggPj0gMCkge1xuICAgICAgICAgICAgdGhpcy5hcHBsaWNhdGlvbkNvbnRleHRTdWJzY3JpcHRpb24uc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBhc3luYyBlbWl0Q29udGV4dENoYW5nZUV2ZW50KGNvbnRleHQsIG5ld1ZhbHVlcykge1xuICAgICAgICBmb3IgKGNvbnN0IGFwcGxpY2F0aW9uQ29udGV4dFN1YnNjcmlwdGlvbiBvZiB0aGlzLmFwcGxpY2F0aW9uQ29udGV4dFN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgaWYoYXBwbGljYXRpb25Db250ZXh0U3Vic2NyaXB0aW9uLmhhbmRsZXIuYXBpKSB7XG4gICAgICAgICAgICAgICAgYXBwbGljYXRpb25Db250ZXh0U3Vic2NyaXB0aW9uLmhhbmRsZXIuYXBpLm9uQ29udGV4dENoYW5nZShjb250ZXh0LCBuZXdWYWx1ZXMpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbkNvbnRleHRTdWJzY3JpcHRpb24uaGFuZGxlci5vbkNvbnRleHRDaGFuZ2UoY29udGV4dCwgbmV3VmFsdWVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEZpcmVzIGFuIGV2ZW50LlxuICAgICAqXG4gICAgICogQHBhcmFtIGV2ZW50VHlwZSBldmVudFR5cGUgdGhlIGV2ZW50IHR5cGVcbiAgICAgKiBAcGFyYW0gYmUgdGhlIGJhc2UgZXZlbnRcbiAgICAgKiBAcGFyYW0gbG9nIGRldGVybWluZSB3aGV0aGVyIHRvIGxvZyBjaGVja3NcbiAgICAgKiBAcmV0dXJuIGZhbHNlIGlmIGFueSBzdWJzY3JpcHRpb25zIGNhbmNlbCB0aGUgZXZlbnQuXG4gICAgICovXG4gICAgYXN5bmMgZmlyZUV2ZW50KGV2ZW50VHlwZSwgYmUsIGxvZykge1xuXG4gICAgICAgIC8vIENvbXBvbmVudHMgY291bGQgYmUgdW5sb2FkaW5nIG9uIHRoZSBjYXNlcyB3aGVyZSBzY3JlZW5zIGFyZSBidXN5IGNsb3NpbmcsXG4gICAgICAgIC8vIG1lYW5pbmcgdGhlIFwiY3VycmVudFwiIG9iamVjdCBtYXkgYmUgbnVsbGlmaWVkLCBzbyB3ZSBuZWVkIHRoZSBudWxsIGNoZWNrXG4gICAgICAgIC8vIFRoaXMgaGFwcGVucyBvbiBhc3luYyBldmVudHMgc3VjaCBhcyBSUENfQ0FMTC4gSWYgdGhlcmUgaXMgbm8gdmlldyBtYXNraW5nLFxuICAgICAgICAvLyB0aGUgUkVTVCBjYWxsIG1heSByZXR1cm4gd2hpbGUgdGhlIGNvbXBvbmVudCBoYXMgYmVlbiBkZXN0cm95ZWQsIGFuZCB0aGUgc291cmNlJ3MgY3VycmVudCBjb3VsZCBiZSBudWxsXG4gICAgICAgIC8vIFByb3BlciBtYXNraW5nIHdoZW4gZG9pbmcgUkVTVCBDQUxMIHNob3VsZCBwcmV2ZW50IHRoaXMgZnJvbSBoYXBwZW5pbmcuIFRoZSBudWxsIGNoZWNrIHByb3ZpZGVzIHRoZSBzb3J0IG9mIGRlZmVuY2VcblxuICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChiZS5nZXRTb3VyY2UoKSkgJiYgIVV0aWxzLmlzTnVsbChiZS5nZXRTb3VyY2UoKS5hcGkpKSB7XG4gICAgICAgICAgICBsZXQgc291cmNlSWQgPSBiZS5nZXRTb3VyY2UoKS5hcGkuaWQ7XG4gICAgICAgICAgICBsZXQgdmlld0lkID0gYmUudmlld0lkO1xuXG4gICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChzb3VyY2VJZCkpIHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHN1YnNjcmlwdGlvbiBvZiB0aGlzLnN1YnNjcmlwdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGRvbWFpbiA9IHN1YnNjcmlwdGlvbi5wdWJsaXNoZXJEb21haW4gPyBzdWJzY3JpcHRpb24ucHVibGlzaGVyRG9tYWluIDogdmlld0lkO1xuICAgICAgICAgICAgICAgICAgICBpZihsb2cgPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiVklFVyBDSEVDSzogXCIgKyBkb21haW4gKyBcIiA9PT8gXCIgKyB2aWV3SWQgKyBcIiAtIFwiICsgKGRvbWFpbiA9PT0gdmlld0lkIHx8IFNZU1RFTV9FVkVOVCA9PT0gdmlld0lkKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIlBVQkxJU0hFUiBDSEVDSzogXCIgKyBzdWJzY3JpcHRpb24uZ2V0UHVibGlzaGVyKCkgKyBcIiA6IFwiICsgc291cmNlSWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJFVkVOVCBUWVBFIENIRUNLOiBcIiArIHN1YnNjcmlwdGlvbi5nZXRFdmVudFR5cGUoKSArIFwiIDogXCIgKyBldmVudFR5cGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJGVUxMIENIRUNLOiBcIiArICgoc3Vic2NyaXB0aW9uLmdldFZpZXdJZCgpID09PSB2aWV3SWQgfHwgU1lTVEVNX0VWRU5UID09PSB2aWV3SWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgc3Vic2NyaXB0aW9uLmdldFB1Ymxpc2hlcigpID09PSBzb3VyY2VJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIHN1YnNjcmlwdGlvbi5nZXRFdmVudFR5cGUoKSA9PT0gZXZlbnRUeXBlKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIlxcblwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmICgoZG9tYWluID09PSB2aWV3SWQgfHwgU1lTVEVNX0VWRU5UID09PSB2aWV3SWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAmJiBzdWJzY3JpcHRpb24uZ2V0UHVibGlzaGVyKCkgPT09IHNvdXJjZUlkXG4gICAgICAgICAgICAgICAgICAgICAgICAmJiBzdWJzY3JpcHRpb24uZ2V0RXZlbnRUeXBlKCkgPT09IGV2ZW50VHlwZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwoc3Vic2NyaXB0aW9uLmdldEFjdGlvbnMoKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHN1YnNjcmlwdGlvbi5nZXRBY3Rpb25zKCkubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGFjdGlvbiA9IHN1YnNjcmlwdGlvbi5nZXRBY3Rpb25zKClbal07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdGlvbkhhbmRsZXJzLmludm9rZShhY3Rpb24sIGJlLCBzdWJzY3JpcHRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIVV0aWxzLmlzTnVsbChzdWJzY3JpcHRpb24uZ2V0Q2FsbGJhY2soKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb24uZ2V0Q2FsbGJhY2soKShiZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLnByb2Nlc3NTeXN0ZW1HZW5lcmF0ZWRTdWJzY3JpcHRpb25zKHNvdXJjZUlkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENsZWFycyBhbGwgZXZlbnQgc3Vic2NyaXB0aW9uc1xuICAgICAqXG4gICAgICovXG4gICAgY2xlYXJBbGxFdmVudExpc3RlbmVycygpIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnNwbGljZSgwLCB0aGlzLnN1YnNjcmlwdGlvbnMubGVuZ3RoKTtcbiAgICAgICAgdGhpcy5zeXN0ZW1HZW5lcmF0ZWRTdWJzY3JpcHRpb25zLnNwbGljZSgwLCB0aGlzLnN5c3RlbUdlbmVyYXRlZFN1YnNjcmlwdGlvbnMubGVuZ3RoKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogQ2xlYXJzIGFsbCBldmVudCBzdWJzY3JpcHRpb25zIGZvciB0aGUgc3BlY2lmaWVkIHZpZXdcbiAgICAgKlxuICAgICAqIEBwYXJhbSB2aWV3SWQgdGhlIHZpZXdcbiAgICAgKi9cbiAgICBjbGVhckV2ZW50TGlzdGVuZXJzKHZpZXdJZCkge1xuICAgICAgICBsZXQgaW5kZXhlcyA9IFtdO1xuXG4gICAgICAgIGxldCBpbmRleDtcbiAgICAgICAgd2hpbGUgKChpbmRleCA9IHRoaXMuc3Vic2NyaXB0aW9ucy5maW5kSW5kZXgoKHMpID0+IHMudmlld0lkID09PSB2aWV3SWQpKSAhPT0gLTEpIHtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFVdGlscy5pc051bGwodGhpcy5zeXN0ZW1HZW5lcmF0ZWRTdWJzY3JpcHRpb25zKSkge1xuICAgICAgICAgICAgd2hpbGUgKChpbmRleCA9IHRoaXMuc3lzdGVtR2VuZXJhdGVkU3Vic2NyaXB0aW9ucy5maW5kSW5kZXgoKHMpID0+IHMudmlld0lkID09PSB2aWV3SWQpKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN5c3RlbUdlbmVyYXRlZFN1YnNjcmlwdGlvbnMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBDbGVhcnMgYWxsIGV2ZW50IHN1YnNjcmlwdGlvbnMgZm9yIHRoZSBzcGVjaWZpZWQgdmlld1xuICAgICAqXG4gICAgICogQHBhcmFtIGNvbXBvbmVudCB0aGUgdmlld1xuICAgICAqL1xuICAgIGNsZWFyQ29tcG9uZW50RXZlbnRMaXN0ZW5lcnMoY29tcG9uZW50KSB7XG4gICAgICAgIGlmKGNvbXBvbmVudCAmJiBjb21wb25lbnQuYXBpICYmIGNvbXBvbmVudC5hcGkuaWQpIHtcbiAgICAgICAgICAgIGxldCBpbmRleDtcbiAgICAgICAgICAgIHdoaWxlICgoaW5kZXggPSB0aGlzLnN1YnNjcmlwdGlvbnMuZmluZEluZGV4KChzKSA9PiBzLnN1YnNjcmliZXIgPT09IGNvbXBvbmVudC5hcGkuaWQpKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwodGhpcy5zeXN0ZW1HZW5lcmF0ZWRTdWJzY3JpcHRpb25zKSkge1xuICAgICAgICAgICAgICAgIHdoaWxlICgoaW5kZXggPSB0aGlzLnN5c3RlbUdlbmVyYXRlZFN1YnNjcmlwdGlvbnMuZmluZEluZGV4KChzKSA9PiBzLnN1YnNjcmliZXIgPT09IGNvbXBvbmVudC5hcGkuaWQpKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zeXN0ZW1HZW5lcmF0ZWRTdWJzY3JpcHRpb25zLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHBhcmFtIGNvbXBvbmVudElkXG4gICAgICpcbiAgICAgKi9cbiAgICBwcm9jZXNzU3lzdGVtR2VuZXJhdGVkU3Vic2NyaXB0aW9ucyA9IChjb21wb25lbnRJZCkgPT4ge1xuICAgICAgICBsZXQgY29tcG9uZW50ID0gYXBwbGljYXRpb25NYW5hZ2VyLnJlc29sdmVDb21wb25lbnRBcGkoY29tcG9uZW50SWQpO1xuXG4gICAgICAgIGlmICghVXRpbHMuaXNOdWxsKGNvbXBvbmVudCkpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3Qgc3Vic2NyaXB0aW9uIG9mIHRoaXMuc3lzdGVtR2VuZXJhdGVkU3Vic2NyaXB0aW9ucykge1xuICAgICAgICAgICAgICAgIGlmIChzdWJzY3JpcHRpb24ucHVibGlzaGVyID09PSBjb21wb25lbnRJZCkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgY29tcG9uZW50ID0gYXBwbGljYXRpb25NYW5hZ2VyLnJlc29sdmVDb21wb25lbnRBcGkoc3Vic2NyaXB0aW9uLnN1YnNjcmliZXIpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChjb21wb25lbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChzdWJzY3JpcHRpb24uY2FsbGJhY2spKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9uLmNhbGxiYWNrKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFVdGlscy5pc051bGwoY29tcG9uZW50LnJlZnJlc2gpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50LnJlZnJlc2goKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSB2aWV3SWRcbiAgICAgKiBAcGFyYW0gcHVibGlzaGVyXG4gICAgICogQHBhcmFtIHN1YnNjcmliZXJcbiAgICAgKiBAcGFyYW0gY2FsbGJhY2tcbiAgICAgKlxuICAgICAqL1xuICAgIGFkZFN5c3RlbUdlbmVyYXRlZFN1YnNjcmlwdGlvbiA9ICh2aWV3SWQsIHB1Ymxpc2hlciwgc3Vic2NyaWJlciwgY2FsbGJhY2spID0+IHtcbiAgICAgICAgbGV0IGZvdW5kID0gZmFsc2U7XG5cbiAgICAgICAgZm9yIChjb25zdCBzeXN0ZW1HZW5lcmF0ZWRTdWJzY3JpcHRpb24gb2YgdGhpcy5zeXN0ZW1HZW5lcmF0ZWRTdWJzY3JpcHRpb25zKSB7XG4gICAgICAgICAgICBpZiAocHVibGlzaGVyID09PSBzeXN0ZW1HZW5lcmF0ZWRTdWJzY3JpcHRpb24ucHVibGlzaGVyXG4gICAgICAgICAgICAgICAgJiYgc3Vic2NyaWJlciA9PT0gc3lzdGVtR2VuZXJhdGVkU3Vic2NyaXB0aW9uLnN1YnNjcmliZXJcbiAgICAgICAgICAgICAgICAmJiB2aWV3SWQgPT09IHN5c3RlbUdlbmVyYXRlZFN1YnNjcmlwdGlvbi52aWV3SWQpIHtcbiAgICAgICAgICAgICAgICBmb3VuZCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWZvdW5kKSB7XG4gICAgICAgICAgICBsZXQgc3Vic2NyaXB0aW9uID0ge307XG4gICAgICAgICAgICBzdWJzY3JpcHRpb24ucHVibGlzaGVyID0gcHVibGlzaGVyO1xuICAgICAgICAgICAgc3Vic2NyaXB0aW9uLnN1YnNjcmliZXIgPSBzdWJzY3JpYmVyO1xuICAgICAgICAgICAgc3Vic2NyaXB0aW9uLmNhbGxiYWNrID0gY2FsbGJhY2s7XG4gICAgICAgICAgICBzdWJzY3JpcHRpb24udmlld0lkID0gdmlld0lkO1xuXG4gICAgICAgICAgICB0aGlzLnN5c3RlbUdlbmVyYXRlZFN1YnNjcmlwdGlvbnMucHVzaChzdWJzY3JpcHRpb24pO1xuICAgICAgICB9XG4gICAgfTtcbn1cblxuY29uc3QgaW5zdGFuY2UgPSBuZXcgT2JzZXJ2YWJsZSgpO1xuT2JqZWN0LmZyZWV6ZShpbnN0YW5jZSk7XG5cbmV4cG9ydCBkZWZhdWx0IGluc3RhbmNlO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFJQSxJQUFBQSxlQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxNQUFBLEdBQUFGLHNC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
|