nsc-react-component 2.10.14 → 2.10.15
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/lib/base/form/Form.d.ts +1 -1
- package/lib/base/form/Form.js +6 -13
- package/package.json +1 -1
package/lib/base/form/Form.d.ts
CHANGED
|
@@ -44,7 +44,7 @@ declare class NscForm extends PureComponent<IFormProps> {
|
|
|
44
44
|
validateFields(name: any): Promise<any>;
|
|
45
45
|
hide(e: any): void;
|
|
46
46
|
hideForm(resetValue?: boolean): void;
|
|
47
|
-
showForm(value?: any,
|
|
47
|
+
showForm(value?: any, option?: any): void;
|
|
48
48
|
cloneElement(item: any, index?: number): string | React.DetailedReactHTMLElement<{
|
|
49
49
|
key: number;
|
|
50
50
|
children: any;
|
package/lib/base/form/Form.js
CHANGED
|
@@ -311,22 +311,14 @@ var NscForm = /*#__PURE__*/function (_PureComponent) {
|
|
|
311
311
|
value: function showForm(value) {
|
|
312
312
|
var _this4 = this;
|
|
313
313
|
|
|
314
|
-
var
|
|
315
|
-
var option = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
314
|
+
var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
316
315
|
this.setState({
|
|
317
316
|
formVisible: true,
|
|
318
317
|
isChange: false
|
|
319
318
|
}, function () {
|
|
320
|
-
|
|
321
|
-
var _this4$formRef$curren;
|
|
322
|
-
|
|
323
|
-
(_this4$formRef$curren = _this4.formRef.current) === null || _this4$formRef$curren === void 0 ? void 0 : _this4$formRef$curren.setFieldsValue(value);
|
|
324
|
-
} else {
|
|
325
|
-
var _this4$formRef$curren2;
|
|
326
|
-
|
|
327
|
-
if (resetValue) (_this4$formRef$curren2 = _this4.formRef.current) === null || _this4$formRef$curren2 === void 0 ? void 0 : _this4$formRef$curren2.resetFields();
|
|
328
|
-
}
|
|
319
|
+
var _this4$formRef$curren;
|
|
329
320
|
|
|
321
|
+
(_this4$formRef$curren = _this4.formRef.current) === null || _this4$formRef$curren === void 0 ? void 0 : _this4$formRef$curren.setFieldsValue(value);
|
|
330
322
|
var afterRender = option.afterRender;
|
|
331
323
|
utils.callback(afterRender, _this4);
|
|
332
324
|
});
|
|
@@ -416,7 +408,8 @@ var NscForm = /*#__PURE__*/function (_PureComponent) {
|
|
|
416
408
|
spinning: loading
|
|
417
409
|
}, /*#__PURE__*/React.createElement(_Form, _extends({
|
|
418
410
|
ref: this.formRef,
|
|
419
|
-
validateTrigger: ["onBlur", "onChange"]
|
|
411
|
+
validateTrigger: ["onBlur", "onChange"],
|
|
412
|
+
draggable: true
|
|
420
413
|
}, layout, props, {
|
|
421
414
|
onValuesChange: this.onValuesChange.bind(this),
|
|
422
415
|
preserve: false
|
|
@@ -494,4 +487,4 @@ var NscForm = /*#__PURE__*/function (_PureComponent) {
|
|
|
494
487
|
}(PureComponent);
|
|
495
488
|
|
|
496
489
|
export default NscForm;
|
|
497
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Jhc2UvZm9ybS9Gb3JtLnRzeCJdLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJNb2RhbCIsInJlcXVlc3QiLCJvbWl0IiwiU3BpbiIsInV0aWxzIiwiTnNjRm9ybSIsInByb3BzIiwiY3JlYXRlUmVmIiwiZm9ybVZpc2libGUiLCJmb3JtTW9kYWxQcm9wcyIsImZvcm1EcmF3ZXJQcm9wcyIsImlzQ2hhbmdlIiwiZXhwYW5kIiwic2NvcGUiLCJwYXJhbXMiLCJiZWZvcmVSZW5kZXIiLCJjYWxsYmFja0JlZm9yZUNsb3NlIiwiY2FsbGJhY2siLCJhZnRlclJlbmRlciIsIm5hbWUiLCJmb3JtUmVmIiwiY3VycmVudCIsImdldEZpZWxkRXJyb3IiLCJnZXRGaWVsZEluc3RhbmNlIiwiZ2V0RmllbGRzRXJyb3IiLCJnZXRGaWVsZHNWYWx1ZSIsImdldEZpZWxkVmFsdWUiLCJpc0ZpZWxkc1RvdWNoZWQiLCJpc0ZpZWxkVG91Y2hlZCIsImlzRmllbGRWYWxpZGF0aW5nIiwicmVzZXRGaWVsZHMiLCJvcHRpb25zIiwic2Nyb2xsVG9GaWVsZCIsImZpbGRzIiwic2V0RmllbGRzIiwidmFsdWVzIiwic2V0RmllbGRzVmFsdWUiLCJzdWJtaXQiLCJ1cmwiLCJtc2ciLCJwcm9wc1VybCIsImVuY3J5cHRGaWVsZHMiLCJlbmNyeXB0UHJvcHBzIiwiRXJyb3IiLCJtZXRob2QiLCJyZXF1ZXN0VXJsIiwicmVxdWVzdERhdGEiLCJyZXF1ZXN0RW5jcnlwdCIsInJlcXVlc3RQYXJhbSIsImRhdGEiLCJ0b0xvd2VyQ2FzZSIsImF1dG9QcmVmaXgiLCJ0aGVuIiwicmVzIiwiY29kZSIsInN1Y2Nlc3MiLCJlcnJvciIsImNhdGNoIiwiY29uc29sZSIsImxvZyIsInZhbGlkYXRlRmllbGRzIiwiZSIsInNob3dNb2RlbCIsIm1vZGFsUHJvcHMiLCJkcmF3ZXJQcm9wcyIsIl90aGlzIiwib25DYW5jZWwiLCJvbkNsb3NlIiwiaGlkZUZvcm0iLCJyZXNldFZhbHVlIiwic2V0U3RhdGUiLCJ2YWx1ZSIsIm9wdGlvbiIsIml0ZW0iLCJpbmRleCIsImtleSIsImNoaWxkcmVuIiwiQXJyYXkiLCJpc0FycmF5IiwiQ2hpbGRyZW4iLCJtYXAiLCJjaGlsZCIsImNsb25lRWxlbWVudCIsInZhbCIsImFsbFZhbCIsIm9uVmFsdWVzQ2hhbmdlIiwibmV3Q2hpbGRyZW4iLCJsb2FkaW5nIiwiY2hhbmdlVmFsaWQiLCJzdGF0ZSIsImxheW91dCIsImxhYmVsQ29sIiwic3BhbiIsIndyYXBwZXJDb2wiLCJuZXdNb2RhbFByb3BzIiwibmV3RHJhd2VyUHJvcHMiLCJkZWZhdWx0cHJvcHMiLCJtYXNrQ2xvc2FibGUiLCJmb3JtRXhwYW5kIiwidmFsaWQiLCJjaGFuZ2UiLCJ0eXBlIiwibW9kYWxwcm9wcyIsImhpZGUiLCJiaW5kIiwicmVuZGVyUGFuZWwiLCJuZXh0UHJvcHMiLCJwcmV2U3RhdGUiLCJPYmplY3QiLCJpcyIsIm5ld1N0YXRlIiwidmlzaWJsZSIsInVuZGVmaW5lZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPQSxLQUFQLElBQWdCQyxhQUFoQixRQUFxQyxPQUFyQztBQUVBLE9BQU9DLEtBQVAsTUFBa0IsVUFBbEI7QUFFQSxTQUFTQyxPQUFULFFBQXdCLHVCQUF4QjtBQUNBLE9BQU9DLElBQVAsTUFBaUIsU0FBakI7QUFFQSxPQUFPQyxJQUFQLE1BQWlCLFNBQWpCO0FBQ0EsU0FBU0MsS0FBVCxRQUFzQix1QkFBdEI7O0lBZU1DLE87Ozs7O0FBdUJKLG1CQUFZQyxLQUFaLEVBQW1CO0FBQUE7O0FBQUE7O0FBQ2pCLCtCQUFNQSxLQUFOOztBQURpQiw0RUF0QlRSLEtBQUssQ0FBQ1MsU0FBTixFQXNCUzs7QUFBQSw2REFyQlg7QUFDTkMsTUFBQUEsV0FBVyxFQUFFLEtBRFA7QUFFTkMsTUFB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Qi9HLGE7O0FBK1Z0QixlQUFlTSxPQUFmIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQERlc2NyaXB0dGlvbjrooajljZXnu4Tku7ZcclxuICogQHZlcnNpb246XHJcbiAqIEBBdXRob3I6IHJ4emh1XHJcbiAqIEBEYXRlOiAyMDIxLTA0LTA5IDA5OjE4OjM0XHJcbiAqIEBMYXN0RWRpdG9yczogcnh6aHVcclxuICogQExhc3RFZGl0VGltZTogMjAyMS0wNC0yMyAxNToyMzo1NFxyXG4gKi9cclxuaW1wb3J0IFJlYWN0LCB7IFB1cmVDb21wb25lbnQgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgRm9ybSwgRm9ybVByb3BzLCBEcmF3ZXIsIERyYXdlclByb3BzLCBtZXNzYWdlIH0gZnJvbSBcImFudGRcIjtcclxuaW1wb3J0IE1vZGFsIGZyb20gXCIuLi9tb2RhbFwiO1xyXG5pbXBvcnQgeyBGb3JtSW5zdGFuY2UgfSBmcm9tIFwiYW50ZC9saWIvZm9ybVwiO1xyXG5pbXBvcnQgeyByZXF1ZXN0IH0gZnJvbSBcIkBiai1uc2MvbXNuL2xpYi91dGlsc1wiO1xyXG5pbXBvcnQgb21pdCBmcm9tIFwib21pdC5qc1wiO1xyXG5pbXBvcnQgeyBOc2NNb2RhbFBvcnBzIH0gZnJvbSBcIi4uL21vZGFsXCI7XHJcbmltcG9ydCBTcGluIGZyb20gXCIuLi9zcGluXCI7XHJcbmltcG9ydCB7IHV0aWxzIH0gZnJvbSBcIkBiai1uc2MvbXNuL2xpYi91dGlsc1wiO1xyXG5leHBvcnQgaW50ZXJmYWNlIElGb3JtUHJvcHMgZXh0ZW5kcyBGb3JtUHJvcHMge1xyXG4gIHNob3dNb2RlbD86IFwibW9kYWxcIiB8IFwiZHJhd2VyXCIgfCBcImF1dG9cIjtcclxuICBtb2RhbFByb3BzPzogTnNjTW9kYWxQb3JwcztcclxuICBkcmF3ZXJQcm9wcz86IERyYXdlclByb3BzICYge1xyXG4gICAgb25Paz86IGFueTtcclxuICAgIG9rQnV0dG9uUHJvcHM/OiBPYmplY3Q7XHJcbiAgICBmb3JtRXhwYW5kPzogT2JqZWN0O1xyXG4gIH07XHJcbiAgdXJsPzogc3RyaW5nO1xyXG4gIGVuY3J5cHRGaWVsZHM/OiBBcnJheTxTdHJpbmc+O1xyXG4gIGNoYW5nZVZhbGlkPzogYm9vbGVhbjsgLy/mlbDmja7kv67mlLnlhbPpl63moKHpqoxcclxuICBsb2FkaW5nPzogYm9vbGVhbjsgLy/ooajljZXliqDovb3nirbmgIFcclxufVxyXG5cclxuY2xhc3MgTnNjRm9ybSBleHRlbmRzIFB1cmVDb21wb25lbnQ8SUZvcm1Qcm9wcz4ge1xyXG4gIGZvcm1SZWYgPSBSZWFjdC5jcmVhdGVSZWY8Rm9ybUluc3RhbmNlPigpO1xyXG4gIHN0YXRlID0ge1xyXG4gICAgZm9ybVZpc2libGU6IGZhbHNlLFxyXG4gICAgZm9ybU1vZGFsUHJvcHM6IHt9LFxyXG4gICAgZm9ybURyYXdlclByb3BzOiB7fSxcclxuICAgIGlzQ2hhbmdlOiBmYWxzZSxcclxuICAgIGV4cGFuZDogZmFsc2UsXHJcbiAgfTtcclxuICBvcHRpb246IGFueSA9IHtcclxuICAgIC8v5Zue6LCD5L2c55So5Z+fXHJcbiAgICBzY29wZTogdGhpcyxcclxuICAgIC8vb3BlbuS8oOmAkui/h+adpeeahOmhtemdouWPguaVsFxyXG4gICAgcGFyYW1zOiB7fSxcclxuICAgIC8v5pi+56S65LmL5YmN5Zue6LCDXHJcbiAgICBiZWZvcmVSZW5kZXI6IG51bGwsXHJcbiAgICAvL+WFs+mXreS5i+WJjeWbnuiwg++8jOWmguaenHJldHVybiBmYWxzZe+8jOS4lOeql+WPo+S4jeWFs+mXrVxyXG4gICAgY2FsbGJhY2tCZWZvcmVDbG9zZTogbnVsbCxcclxuICAgIC8v5YWz6Zet5ZCO5Zue6LCD77yM5byC5q2l5pON5L2cXHJcbiAgICBjYWxsYmFjazogbnVsbCxcclxuICAgIC8v5pi+56S65LmL5ZCO5Zue6LCDXHJcbiAgICBhZnRlclJlbmRlcjogbnVsbCxcclxuICB9O1xyXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICBzdXBlcihwcm9wcyk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKG5leHRQcm9wcywgcHJldlN0YXRlKSB7XHJcbiAgICBjb25zdCB7IG1vZGFsUHJvcHMsIGRyYXdlclByb3BzLCBzaG93TW9kZWwgfSA9IG5leHRQcm9wcztcclxuICAgIGNvbnN0IHsgZm9ybU1vZGFsUHJvcHMsIGZvcm1EcmF3ZXJQcm9wcyB9ID0gcHJldlN0YXRlO1xyXG4gICAgaWYgKHNob3dNb2RlbCA9PSBcIm1vZGFsXCIpIHtcclxuICAgICAgLy8gSlNPTi5zdHJpbmdpZnkoZm9ybU1vZGFsUHJvcHMpICE9PSBKU09OLnN0cmluZ2lmeShtb2RhbFByb3BzKVxyXG4gICAgICBpZiAoIU9iamVjdC5pcyhmb3JtTW9kYWxQcm9wcywgbW9kYWxQcm9wcykpIHtcclxuICAgICAgICBsZXQgbmV3U3RhdGUgPSB7XHJcbiAgICAgICAgICBmb3JtRHJhd2VyUHJvcHM6IG1vZGFsUHJvcHMsXHJcbiAgICAgICAgfSBhcyBhbnk7XHJcbiAgICAgICAgaWYgKG1vZGFsUHJvcHM/LnZpc2libGUgIT09IG51bGwgJiYgbW9kYWxQcm9wcz8udmlzaWJsZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICBuZXdTdGF0ZS5mb3JtVmlzaWJsZSA9IG1vZGFsUHJvcHM/LnZpc2libGU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBuZXdTdGF0ZTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmIChzaG93TW9kZWwgPT0gXCJkcmF3ZXJcIikge1xyXG4gICAgICAvLyBKU09OLnN0cmluZ2lmeShmb3JtRHJhd2VyUHJvcHMpICE9PSBKU09OLnN0cmluZ2lmeShkcmF3ZXJQcm9wcylcclxuICAgICAgaWYgKCFPYmplY3QuaXMoZm9ybURyYXdlclByb3BzLCBkcmF3ZXJQcm9wcykpIHtcclxuICAgICAgICBsZXQgbmV3U3RhdGUgPSB7XHJcbiAgICAgICAgICBmb3JtRHJhd2VyUHJvcHM6IGRyYXdlclByb3BzLFxyXG4gICAgICAgIH0gYXMgYW55O1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIGRyYXdlclByb3BzPy52aXNpYmxlICE9PSBudWxsICYmXHJcbiAgICAgICAgICBkcmF3ZXJQcm9wcz8udmlzaWJsZSAhPT0gdW5kZWZpbmVkXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBuZXdTdGF0ZS5mb3JtVmlzaWJsZSA9IGRyYXdlclByb3BzPy52aXNpYmxlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbmV3U3RhdGU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgLy/ojrflj5blr7nlupTlrZfmrrXlkI3nmoTplJnor6/kv6Hmga9cclxuICBnZXRGaWVsZEVycm9yKG5hbWUpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1SZWYuY3VycmVudD8uZ2V0RmllbGRFcnJvcihuYW1lKTtcclxuICB9XHJcblxyXG4gIC8v6I635Y+W5a+55bqU5a2X5q615a6e5L6LXHJcbiAgZ2V0RmllbGRJbnN0YW5jZShuYW1lKSB7XHJcbiAgICByZXR1cm4gdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LmdldEZpZWxkSW5zdGFuY2UobmFtZSk7XHJcbiAgfVxyXG5cclxuICAvL+iOt+WPluS4gOe7hOWtl+auteWQjeWvueW6lOeahOmUmeivr+S/oeaBr++8jOi/lOWbnuS4uuaVsOe7hOW9ouW8j1xyXG4gIGdldEZpZWxkc0Vycm9yKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9ybVJlZi5jdXJyZW50Py5nZXRGaWVsZHNFcnJvcigpO1xyXG4gIH1cclxuXHJcbiAgLy/ojrflj5bkuIDnu4TlrZfmrrXlkI3lr7nlupTnmoTlgLzvvIzkvJrmjInnhaflr7nlupTnu5PmnoTov5Tlm55cclxuICBnZXRGaWVsZHNWYWx1ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1SZWYuY3VycmVudD8uZ2V0RmllbGRzVmFsdWUoKTtcclxuICB9XHJcblxyXG4gIC8v6I635Y+W5a+55bqU5a2X5q615ZCN55qE5YC8XHJcbiAgZ2V0RmllbGRWYWx1ZShuYW1lKSB7XHJcbiAgICByZXR1cm4gdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LmdldEZpZWxkVmFsdWUobmFtZSk7XHJcbiAgfVxyXG5cclxuICAvL+ajgOafpeS4gOe7hOWtl+auteaYr+WQpuiiq+eUqOaIt+aTjeS9nOi/h1xyXG4gIGlzRmllbGRzVG91Y2hlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1SZWYuY3VycmVudD8uaXNGaWVsZHNUb3VjaGVkKCk7XHJcbiAgfVxyXG5cclxuICAvL+ajgOafpeWvueW6lOWtl+auteaYr+WQpuiiq+eUqOaIt+aTjeS9nOi/h1xyXG4gIGlzRmllbGRUb3VjaGVkKG5hbWUpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1SZWYuY3VycmVudD8uaXNGaWVsZFRvdWNoZWQobmFtZSk7XHJcbiAgfVxyXG5cclxuICAvL+ajgOafpeS4gOe7hOWtl+auteaYr+WQpuato+WcqOagoemqjFxyXG4gIGlzRmllbGRWYWxpZGF0aW5nKG5hbWUpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1SZWYuY3VycmVudD8uaXNGaWVsZFZhbGlkYXRpbmcobmFtZSk7XHJcbiAgfVxyXG5cclxuICAvL+mHjee9ruS4gOe7hOWtl+auteWIsFxyXG4gIHJlc2V0RmllbGRzKCkge1xyXG4gICAgdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LnJlc2V0RmllbGRzKCk7XHJcbiAgfVxyXG5cclxuICBzY3JvbGxUb0ZpZWxkKG5hbWUsIG9wdGlvbnMpIHtcclxuICAgIHRoaXMuZm9ybVJlZi5jdXJyZW50Py5zY3JvbGxUb0ZpZWxkKG5hbWUsIG9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgc2V0RmllbGRzKGZpbGRzKSB7XHJcbiAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8uc2V0RmllbGRzKGZpbGRzKTtcclxuICB9XHJcblxyXG4gIHNldEZpZWxkc1ZhbHVlKHZhbHVlcykge1xyXG4gICAgdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LnNldEZpZWxkc1ZhbHVlKHZhbHVlcyk7XHJcbiAgfVxyXG5cclxuICBzdWJtaXQoKSB7XHJcbiAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8uc3VibWl0KCk7XHJcbiAgfVxyXG5cclxuICBvblN1Ym1pdChcclxuICAgIHVybD86IHN0cmluZyxcclxuICAgIG9wdGlvbnM/OiBhbnksXHJcbiAgICBjYWxsYmFjaz86IChyZXM/OiBhbnkpID0+IHZvaWQsXHJcbiAgICBtc2c/OiBib29sZWFuXHJcbiAgKSB7XHJcbiAgICBjb25zdCB7IHVybDogcHJvcHNVcmwsIGVuY3J5cHRGaWVsZHM6IGVuY3J5cHRQcm9wcHMgPSBbXSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGlmICghdXJsICYmICFwcm9wc1VybCkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCLmsqHmnInkuIrkvKDnmoR1cmwhXCIpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgeyBtZXRob2QgPSBcInBvc3RcIiB9ID0gb3B0aW9ucztcclxuICAgIGxldCByZXF1ZXN0VXJsID0gdXJsID8gdXJsIDogcHJvcHNVcmw7XHJcbiAgICBsZXQgcmVxdWVzdERhdGEgPSB0aGlzLmZvcm1SZWYuY3VycmVudC5nZXRGaWVsZHNWYWx1ZSgpO1xyXG4gICAgbGV0IHJlcXVlc3RFbmNyeXB0ID0gZW5jcnlwdFByb3BwcztcclxuICAgIGxldCByZXF1ZXN0UGFyYW0gPSB7IG1ldGhvZDogbWV0aG9kLCBkYXRhOiByZXF1ZXN0RGF0YSB9IGFzIHsgZGF0YTogYW55IH07XHJcbiAgICBpZiAob3B0aW9ucykge1xyXG4gICAgICBjb25zdCB7IGRhdGEsIGVuY3J5cHRGaWVsZHMsIC4uLnBhcmFtcyB9ID0gb3B0aW9ucztcclxuICAgICAgcmVxdWVzdFBhcmFtID0geyAuLi5yZXF1ZXN0UGFyYW0sIC4uLnBhcmFtcyB9O1xyXG4gICAgICBpZiAoZGF0YSkge1xyXG4gICAgICAgIGRlbGV0ZSByZXF1ZXN0UGFyYW0uZGF0YTtcclxuICAgICAgICBpZiAobWV0aG9kLnRvTG93ZXJDYXNlKCkgPT0gXCJnZXRcIikge1xyXG4gICAgICAgICAgcmVxdWVzdFBhcmFtID0geyAuLi5yZXF1ZXN0UGFyYW0sIC4uLnBhcmFtcywgcGFyYW1zOiBkYXRhIH07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJlcXVlc3RQYXJhbSA9IHsgLi4ucmVxdWVzdFBhcmFtLCAuLi5wYXJhbXMsIGRhdGE6IGRhdGEgfTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGVuY3J5cHRGaWVsZHMpIHtcclxuICAgICAgICByZXF1ZXN0RW5jcnlwdCA9IGVuY3J5cHRGaWVsZHM7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXF1ZXN0KHJlcXVlc3RVcmwsIHtcclxuICAgICAgYXV0b1ByZWZpeDogdHJ1ZSxcclxuICAgICAgLi4ucmVxdWVzdFBhcmFtLFxyXG4gICAgICBlbmNyeXB0RmllbGRzOiByZXF1ZXN0RW5jcnlwdCxcclxuICAgIH0pXHJcbiAgICAgIC50aGVuKGZ1bmN0aW9uIChyZXM6IGFueSkge1xyXG4gICAgICAgIGNvbnN0IHsgY29kZSB9ID0gcmVzO1xyXG4gICAgICAgIGlmIChtc2cpIHtcclxuICAgICAgICAgIGlmIChjb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgbWVzc2FnZS5zdWNjZXNzKFwi5o+Q5Lqk5oiQ5YqfXCIpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgbWVzc2FnZS5lcnJvcihcIuaPkOS6pOWksei0pVwiKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgY2FsbGJhY2sgJiYgY2FsbGJhY2socmVzKTtcclxuICAgICAgfSlcclxuICAgICAgLmNhdGNoKGZ1bmN0aW9uIChlcnJvcjogYW55KSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJlcnJvclwiLCBlcnJvcik7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdmFsaWRhdGVGaWVsZHMobmFtZSkge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9ybVJlZi5jdXJyZW50LnZhbGlkYXRlRmllbGRzKG5hbWUpO1xyXG4gIH1cclxuXHJcbiAgaGlkZShlKSB7XHJcbiAgICBjb25zdCB7IHNob3dNb2RlbCwgbW9kYWxQcm9wcyA9IHt9LCBkcmF3ZXJQcm9wcyA9IHt9IH0gPSB0aGlzLnByb3BzO1xyXG4gICAgbGV0IF90aGlzID0gdGhpcztcclxuICAgIGNvbnN0IHsgb25DYW5jZWwgfSA9IG1vZGFsUHJvcHM7XHJcbiAgICBjb25zdCB7IG9uQ2xvc2UgfSA9IGRyYXdlclByb3BzO1xyXG4gICAgaWYgKHNob3dNb2RlbCA9PSBcImRyYXdlclwiICYmIG9uQ2xvc2UpIHtcclxuICAgICAgb25DbG9zZShlKTtcclxuICAgIH0gZWxzZSBpZiAoc2hvd01vZGVsID09IFwibW9kYWxcIiAmJiBvbkNhbmNlbCkge1xyXG4gICAgICBvbkNhbmNlbChlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIF90aGlzLmhpZGVGb3JtKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoaWRlRm9ybShyZXNldFZhbHVlID0gdHJ1ZSkge1xyXG4gICAgdGhpcy5zZXRTdGF0ZShcclxuICAgICAge1xyXG4gICAgICAgIGZvcm1WaXNpYmxlOiBmYWxzZSxcclxuICAgICAgICBpc0NoYW5nZTogZmFsc2UsXHJcbiAgICAgIH0sXHJcbiAgICAgICgpID0+IHtcclxuICAgICAgICBpZiAocmVzZXRWYWx1ZSkge1xyXG4gICAgICAgICAgdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LnJlc2V0RmllbGRzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgc2hvd0Zvcm0odmFsdWU/OiBhbnksIHJlc2V0VmFsdWUgPSB0cnVlLCBvcHRpb246IGFueSA9IHt9KSB7XHJcbiAgICB0aGlzLnNldFN0YXRlKFxyXG4gICAgICB7XHJcbiAgICAgICAgZm9ybVZpc2libGU6IHRydWUsXHJcbiAgICAgICAgaXNDaGFuZ2U6IGZhbHNlLFxyXG4gICAgICB9LFxyXG4gICAgICAoKSA9PiB7XHJcbiAgICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8uc2V0RmllbGRzVmFsdWUodmFsdWUpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpZiAocmVzZXRWYWx1ZSkgdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LnJlc2V0RmllbGRzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHsgYWZ0ZXJSZW5kZXIgfSA9IG9wdGlvbjtcclxuICAgICAgICB1dGlscy5jYWxsYmFjayhhZnRlclJlbmRlciwgdGhpcyk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBjbG9uZUVsZW1lbnQoaXRlbSwgaW5kZXggPSAwKSB7XHJcbiAgICBsZXQgX3RoaXMgPSB0aGlzO1xyXG4gICAgaWYgKHR5cGVvZiBpdGVtID09IFwic3RyaW5nXCIpIHJldHVybiBpdGVtO1xyXG4gICAgbGV0IHByb3BzID0ge30gYXMgeyBrZXk6IG51bWJlcjsgY2hpbGRyZW46IGFueSB9O1xyXG4gICAgcHJvcHMua2V5ID0gaW5kZXg7XHJcbiAgICB0cnkge1xyXG4gICAgICBpZiAoaXRlbS5wcm9wcyAmJiBpdGVtLnByb3BzLmNoaWxkcmVuKSB7XHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoaXRlbS5wcm9wcy5jaGlsZHJlbikpIHtcclxuICAgICAgICAgIHByb3BzLmNoaWxkcmVuID0gUmVhY3QuQ2hpbGRyZW4ubWFwKFxyXG4gICAgICAgICAgICBpdGVtLnByb3BzLmNoaWxkcmVuLFxyXG4gICAgICAgICAgICBmdW5jdGlvbiAoY2hpbGQsIGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIF90aGlzLmNsb25lRWxlbWVudChjaGlsZCwgaW5kZXgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBwcm9wcy5jaGlsZHJlbiA9IHRoaXMuY2xvbmVFbGVtZW50KGl0ZW0ucHJvcHMuY2hpbGRyZW4sIDApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gUmVhY3QuY2xvbmVFbGVtZW50KGl0ZW0sIHByb3BzKTtcclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG9uVmFsdWVzQ2hhbmdlKHZhbCwgYWxsVmFsKSB7XHJcbiAgICBjb25zdCB7IG9uVmFsdWVzQ2hhbmdlIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIGlzQ2hhbmdlOiB0cnVlLFxyXG4gICAgfSk7XHJcbiAgICBvblZhbHVlc0NoYW5nZSAmJiBvblZhbHVlc0NoYW5nZSh2YWwsIGFsbFZhbCk7XHJcbiAgfVxyXG4gIHJlbmRlclBhbmVsKG5ld0NoaWxkcmVuLCBwcm9wcykge1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBzaG93TW9kZWwsXHJcbiAgICAgIGRyYXdlclByb3BzID0ge30sXHJcbiAgICAgIG1vZGFsUHJvcHMgPSB7fSxcclxuICAgICAgbG9hZGluZyA9IGZhbHNlLFxyXG4gICAgICBjaGFuZ2VWYWxpZCA9IHRydWUsXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgZm9ybVZpc2libGUgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCBsYXlvdXQgPSB7XHJcbiAgICAgIGxhYmVsQ29sOiB7IHNwYW46IDQgfSxcclxuICAgICAgd3JhcHBlckNvbDogeyBzcGFuOiAyMCB9LFxyXG4gICAgfTtcclxuICAgIGlmIChzaG93TW9kZWwpIHtcclxuICAgICAgbGV0IG5ld01vZGFsUHJvcHMgPSBvbWl0KG1vZGFsUHJvcHMsIFtcInZpc2libGVcIl0pO1xyXG4gICAgICBuZXdNb2RhbFByb3BzID0geyAuLi5uZXdNb2RhbFByb3BzIH07XHJcbiAgICAgIGxldCBuZXdEcmF3ZXJQcm9wcyA9IG9taXQoZHJhd2VyUHJvcHMsIFtcInZpc2libGVcIl0pO1xyXG4gICAgICBsZXQgZGVmYXVsdHByb3BzID0ge1xyXG4gICAgICAgIG1hc2tDbG9zYWJsZTogIXRoaXMuc3RhdGUuaXNDaGFuZ2UsXHJcbiAgICAgICAgZm9ybUV4cGFuZDoge1xyXG4gICAgICAgICAgZXhwYW5kOiB0cnVlLFxyXG4gICAgICAgICAgdmFsaWQ6IGNoYW5nZVZhbGlkLFxyXG4gICAgICAgICAgY2hhbmdlOiB0aGlzLnN0YXRlLmlzQ2hhbmdlLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHlwZTogc2hvd01vZGVsLFxyXG4gICAgICB9IGFzIGFueTtcclxuICAgICAgbGV0IG1vZGFscHJvcHMgPSB7IC4uLmRlZmF1bHRwcm9wcyB9O1xyXG4gICAgICBtb2RhbHByb3BzID0ge1xyXG4gICAgICAgIC4uLmRlZmF1bHRwcm9wcyxcclxuICAgICAgICAuLi5uZXdNb2RhbFByb3BzLFxyXG4gICAgICAgIC4uLm5ld0RyYXdlclByb3BzLFxyXG4gICAgICAgIG9uQ2FuY2VsOiB0aGlzLmhpZGUuYmluZCh0aGlzKSxcclxuICAgICAgICAvLyBvbkNsb3NlOiB0aGlzLmhpZGUuYmluZCh0aGlzKSxcclxuICAgICAgfTtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICA8TW9kYWwgdmlzaWJsZT17Zm9ybVZpc2libGV9IHsuLi5tb2RhbHByb3BzfT5cclxuICAgICAgICAgIHtsb2FkaW5nID8gKFxyXG4gICAgICAgICAgICA8U3BpbiBzcGlubmluZz17bG9hZGluZ30+XHJcbiAgICAgICAgICAgICAgPEZvcm1cclxuICAgICAgICAgICAgICAgIHJlZj17dGhpcy5mb3JtUmVmfVxyXG4gICAgICAgICAgICAgICAgdmFsaWRhdGVUcmlnZ2VyPXtbXCJvbkJsdXJcIiwgXCJvbkNoYW5nZVwiXX1cclxuICAgICAgICAgICAgICAgIHsuLi5sYXlvdXR9XHJcbiAgICAgICAgICAgICAgICB7Li4ucHJvcHN9XHJcbiAgICAgICAgICAgICAgICBvblZhbHVlc0NoYW5nZT17dGhpcy5vblZhbHVlc0NoYW5nZS5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICAgICAgcHJlc2VydmU9e2ZhbHNlfVxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvU3Bpbj5cclxuICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgIDxGb3JtXHJcbiAgICAgICAgICAgICAgcmVmPXt0aGlzLmZvcm1SZWZ9XHJcbiAgICAgICAgICAgICAgdmFsaWRhdGVUcmlnZ2VyPXtbXCJvbkJsdXJcIiwgXCJvbkNoYW5nZVwiXX1cclxuICAgICAgICAgICAgICB7Li4ubGF5b3V0fVxyXG4gICAgICAgICAgICAgIHsuLi5wcm9wc31cclxuICAgICAgICAgICAgICBvblZhbHVlc0NoYW5nZT17dGhpcy5vblZhbHVlc0NoYW5nZS5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICAgIHByZXNlcnZlPXtmYWxzZX1cclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgICl9XHJcbiAgICAgICAgPC9Nb2RhbD5cclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgPD5cclxuICAgICAgICAgIHtsb2FkaW5nID8gKFxyXG4gICAgICAgICAgICA8U3BpbiBzcGlubmluZz17bG9hZGluZ30+XHJcbiAgICAgICAgICAgICAgPEZvcm1cclxuICAgICAgICAgICAgICAgIHJlZj17dGhpcy5mb3JtUmVmfVxyXG4gICAgICAgICAgICAgICAgdmFsaWRhdGVUcmlnZ2VyPXtbXCJvbkJsdXJcIiwgXCJvbkNoYW5nZVwiXX1cclxuICAgICAgICAgICAgICAgIHsuLi5sYXlvdXR9XHJcbiAgICAgICAgICAgICAgICB7Li4ucHJvcHN9XHJcbiAgICAgICAgICAgICAgICBvblZhbHVlc0NoYW5nZT17dGhpcy5vblZhbHVlc0NoYW5nZS5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvU3Bpbj5cclxuICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgIDxGb3JtXHJcbiAgICAgICAgICAgICAgcmVmPXt0aGlzLmZvcm1SZWZ9XHJcbiAgICAgICAgICAgICAgdmFsaWRhdGVUcmlnZ2VyPXtbXCJvbkJsdXJcIiwgXCJvbkNoYW5nZVwiXX1cclxuICAgICAgICAgICAgICB7Li4ubGF5b3V0fVxyXG4gICAgICAgICAgICAgIHsuLi5wcm9wc31cclxuICAgICAgICAgICAgICBvblZhbHVlc0NoYW5nZT17dGhpcy5vblZhbHVlc0NoYW5nZS5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgKX1cclxuICAgICAgICA8Lz5cclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcbiAgcmVuZGVyKCkge1xyXG4gICAgY29uc3QgcHJvcHMgPSBvbWl0KHRoaXMucHJvcHMsIFtcclxuICAgICAgXCJmb3JtXCIsXHJcbiAgICAgIFwic2hvd01vZGVsXCIsXHJcbiAgICAgIFwibW9kYWxQcm9wc1wiLFxyXG4gICAgICBcImRyYXdlclByb3BzXCIsXHJcbiAgICAgIFwidXJsXCIsXHJcbiAgICAgIFwiZW5jcnlwdEZpZWxkc1wiLFxyXG4gICAgICBcImNoYW5nZVZhbGlkXCIsXHJcbiAgICBdKTtcclxuXHJcbiAgICByZXR1cm4gPD57dGhpcy5yZW5kZXJQYW5lbChwcm9wcy5jaGlsZHJlbiwgcHJvcHMpfTwvPjtcclxuICB9XHJcbn1cclxuZXhwb3J0IGRlZmF1bHQgTnNjRm9ybTtcclxuIl19
|
|
490
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Jhc2UvZm9ybS9Gb3JtLnRzeCJdLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJNb2RhbCIsInJlcXVlc3QiLCJvbWl0IiwiU3BpbiIsInV0aWxzIiwiTnNjRm9ybSIsInByb3BzIiwiY3JlYXRlUmVmIiwiZm9ybVZpc2libGUiLCJmb3JtTW9kYWxQcm9wcyIsImZvcm1EcmF3ZXJQcm9wcyIsImlzQ2hhbmdlIiwiZXhwYW5kIiwic2NvcGUiLCJwYXJhbXMiLCJiZWZvcmVSZW5kZXIiLCJjYWxsYmFja0JlZm9yZUNsb3NlIiwiY2FsbGJhY2siLCJhZnRlclJlbmRlciIsIm5hbWUiLCJmb3JtUmVmIiwiY3VycmVudCIsImdldEZpZWxkRXJyb3IiLCJnZXRGaWVsZEluc3RhbmNlIiwiZ2V0RmllbGRzRXJyb3IiLCJnZXRGaWVsZHNWYWx1ZSIsImdldEZpZWxkVmFsdWUiLCJpc0ZpZWxkc1RvdWNoZWQiLCJpc0ZpZWxkVG91Y2hlZCIsImlzRmllbGRWYWxpZGF0aW5nIiwicmVzZXRGaWVsZHMiLCJvcHRpb25zIiwic2Nyb2xsVG9GaWVsZCIsImZpbGRzIiwic2V0RmllbGRzIiwidmFsdWVzIiwic2V0RmllbGRzVmFsdWUiLCJzdWJtaXQiLCJ1cmwiLCJtc2ciLCJwcm9wc1VybCIsImVuY3J5cHRGaWVsZHMiLCJlbmNyeXB0UHJvcHBzIiwiRXJyb3IiLCJtZXRob2QiLCJyZXF1ZXN0VXJsIiwicmVxdWVzdERhdGEiLCJyZXF1ZXN0RW5jcnlwdCIsInJlcXVlc3RQYXJhbSIsImRhdGEiLCJ0b0xvd2VyQ2FzZSIsImF1dG9QcmVmaXgiLCJ0aGVuIiwicmVzIiwiY29kZSIsInN1Y2Nlc3MiLCJlcnJvciIsImNhdGNoIiwiY29uc29sZSIsImxvZyIsInZhbGlkYXRlRmllbGRzIiwiZSIsInNob3dNb2RlbCIsIm1vZGFsUHJvcHMiLCJkcmF3ZXJQcm9wcyIsIl90aGlzIiwib25DYW5jZWwiLCJvbkNsb3NlIiwiaGlkZUZvcm0iLCJyZXNldFZhbHVlIiwic2V0U3RhdGUiLCJ2YWx1ZSIsIm9wdGlvbiIsIml0ZW0iLCJpbmRleCIsImtleSIsImNoaWxkcmVuIiwiQXJyYXkiLCJpc0FycmF5IiwiQ2hpbGRyZW4iLCJtYXAiLCJjaGlsZCIsImNsb25lRWxlbWVudCIsInZhbCIsImFsbFZhbCIsIm9uVmFsdWVzQ2hhbmdlIiwibmV3Q2hpbGRyZW4iLCJsb2FkaW5nIiwiY2hhbmdlVmFsaWQiLCJzdGF0ZSIsImxheW91dCIsImxhYmVsQ29sIiwic3BhbiIsIndyYXBwZXJDb2wiLCJuZXdNb2RhbFByb3BzIiwibmV3RHJhd2VyUHJvcHMiLCJkZWZhdWx0cHJvcHMiLCJtYXNrQ2xvc2FibGUiLCJmb3JtRXhwYW5kIiwidmFsaWQiLCJjaGFuZ2UiLCJ0eXBlIiwibW9kYWxwcm9wcyIsImhpZGUiLCJiaW5kIiwicmVuZGVyUGFuZWwiLCJuZXh0UHJvcHMiLCJwcmV2U3RhdGUiLCJPYmplY3QiLCJpcyIsIm5ld1N0YXRlIiwidmlzaWJsZSIsInVuZGVmaW5lZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPQSxLQUFQLElBQWdCQyxhQUFoQixRQUFxQyxPQUFyQztBQUVBLE9BQU9DLEtBQVAsTUFBa0IsVUFBbEI7QUFFQSxTQUFTQyxPQUFULFFBQXdCLHVCQUF4QjtBQUNBLE9BQU9DLElBQVAsTUFBaUIsU0FBakI7QUFFQSxPQUFPQyxJQUFQLE1BQWlCLFNBQWpCO0FBQ0EsU0FBU0MsS0FBVCxRQUFzQix1QkFBdEI7O0lBZU1DLE87Ozs7O0FBdUJKLG1CQUFZQyxLQUFaLEVBQW1CO0FBQUE7O0FBQUE7O0FBQ2pCLCtCQUFNQSxLQUFOOztBQURpQiw0RUF0QlRSLEtBQUssQ0FBQ1MsU0FBTixFQXNCUzs7QUFBQSw2REFyQlg7QUFDTkMsTUFBQUEsV0FBVyxFQUFFLEtBRFA7QUFFTkMsTUFB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QUEsZUFBZSxFQUFFcUQ7QUFESixXQUFmOztBQUdBLGNBQUksQ0FBQUEsVUFBVSxTQUFWLElBQUFBLFVBQVUsV0FBVixZQUFBQSxVQUFVLENBQUVnRCxPQUFaLE1BQXdCLElBQXhCLElBQWdDLENBQUFoRCxVQUFVLFNBQVYsSUFBQUEsVUFBVSxXQUFWLFlBQUFBLFVBQVUsQ0FBRWdELE9BQVosTUFBd0JDLFNBQTVELEVBQXVFO0FBQ3JFRixZQUFBQSxRQUFRLENBQUN0RyxXQUFULEdBQXVCdUQsVUFBdkIsYUFBdUJBLFVBQXZCLHVCQUF1QkEsVUFBVSxDQUFFZ0QsT0FBbkM7QUFDRDs7QUFDRCxpQkFBT0QsUUFBUDtBQUNEO0FBQ0YsT0FYRCxNQVdPLElBQUloRCxTQUFTLElBQUksUUFBakIsRUFBMkI7QUFDaEM7QUFDQSxZQUFJLENBQUM4QyxNQUFNLENBQUNDLEVBQVAsQ0FBVW5HLGVBQVYsRUFBMkJzRCxXQUEzQixDQUFMLEVBQThDO0FBQzVDLGNBQUk4QyxTQUFRLEdBQUc7QUFDYnBHLFlBQUFBLGVBQWUsRUFBRXNEO0FBREosV0FBZjs7QUFHQSxjQUNFLENBQUFBLFdBQVcsU0FBWCxJQUFBQSxXQUFXLFdBQVgsWUFBQUEsV0FBVyxDQUFFK0MsT0FBYixNQUF5QixJQUF6QixJQUNBLENBQUEvQyxXQUFXLFNBQVgsSUFBQUEsV0FBVyxXQUFYLFlBQUFBLFdBQVcsQ0FBRStDLE9BQWIsTUFBeUJDLFNBRjNCLEVBR0U7QUFDQUYsWUFBQUEsU0FBUSxDQUFDdEcsV0FBVCxHQUF1QndELFdBQXZCLGFBQXVCQSxXQUF2Qix1QkFBdUJBLFdBQVcsQ0FBRStDLE9BQXBDO0FBQ0Q7O0FBQ0QsaUJBQU9ELFNBQVA7QUFDRDtBQUNGOztBQUNELGFBQU8sSUFBUDtBQUNEOzs7O0VBekRtQi9HLGE7O0FBNFZ0QixlQUFlTSxPQUFmIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQERlc2NyaXB0dGlvbjrooajljZXnu4Tku7ZcclxuICogQHZlcnNpb246XHJcbiAqIEBBdXRob3I6IHJ4emh1XHJcbiAqIEBEYXRlOiAyMDIxLTA0LTA5IDA5OjE4OjM0XHJcbiAqIEBMYXN0RWRpdG9yczogcnh6aHVcclxuICogQExhc3RFZGl0VGltZTogMjAyMS0wNC0yMyAxNToyMzo1NFxyXG4gKi9cclxuaW1wb3J0IFJlYWN0LCB7IFB1cmVDb21wb25lbnQgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgRm9ybSwgRm9ybVByb3BzLCBEcmF3ZXIsIERyYXdlclByb3BzLCBtZXNzYWdlIH0gZnJvbSBcImFudGRcIjtcclxuaW1wb3J0IE1vZGFsIGZyb20gXCIuLi9tb2RhbFwiO1xyXG5pbXBvcnQgeyBGb3JtSW5zdGFuY2UgfSBmcm9tIFwiYW50ZC9saWIvZm9ybVwiO1xyXG5pbXBvcnQgeyByZXF1ZXN0IH0gZnJvbSBcIkBiai1uc2MvbXNuL2xpYi91dGlsc1wiO1xyXG5pbXBvcnQgb21pdCBmcm9tIFwib21pdC5qc1wiO1xyXG5pbXBvcnQgeyBOc2NNb2RhbFBvcnBzIH0gZnJvbSBcIi4uL21vZGFsXCI7XHJcbmltcG9ydCBTcGluIGZyb20gXCIuLi9zcGluXCI7XHJcbmltcG9ydCB7IHV0aWxzIH0gZnJvbSBcIkBiai1uc2MvbXNuL2xpYi91dGlsc1wiO1xyXG5leHBvcnQgaW50ZXJmYWNlIElGb3JtUHJvcHMgZXh0ZW5kcyBGb3JtUHJvcHMge1xyXG4gIHNob3dNb2RlbD86IFwibW9kYWxcIiB8IFwiZHJhd2VyXCIgfCBcImF1dG9cIjtcclxuICBtb2RhbFByb3BzPzogTnNjTW9kYWxQb3JwcztcclxuICBkcmF3ZXJQcm9wcz86IERyYXdlclByb3BzICYge1xyXG4gICAgb25Paz86IGFueTtcclxuICAgIG9rQnV0dG9uUHJvcHM/OiBPYmplY3Q7XHJcbiAgICBmb3JtRXhwYW5kPzogT2JqZWN0O1xyXG4gIH07XHJcbiAgdXJsPzogc3RyaW5nO1xyXG4gIGVuY3J5cHRGaWVsZHM/OiBBcnJheTxTdHJpbmc+O1xyXG4gIGNoYW5nZVZhbGlkPzogYm9vbGVhbjsgLy/mlbDmja7kv67mlLnlhbPpl63moKHpqoxcclxuICBsb2FkaW5nPzogYm9vbGVhbjsgLy/ooajljZXliqDovb3nirbmgIFcclxufVxyXG5cclxuY2xhc3MgTnNjRm9ybSBleHRlbmRzIFB1cmVDb21wb25lbnQ8SUZvcm1Qcm9wcz4ge1xyXG4gIGZvcm1SZWYgPSBSZWFjdC5jcmVhdGVSZWY8Rm9ybUluc3RhbmNlPigpO1xyXG4gIHN0YXRlID0ge1xyXG4gICAgZm9ybVZpc2libGU6IGZhbHNlLFxyXG4gICAgZm9ybU1vZGFsUHJvcHM6IHt9LFxyXG4gICAgZm9ybURyYXdlclByb3BzOiB7fSxcclxuICAgIGlzQ2hhbmdlOiBmYWxzZSxcclxuICAgIGV4cGFuZDogZmFsc2UsXHJcbiAgfTtcclxuICBvcHRpb246IGFueSA9IHtcclxuICAgIC8v5Zue6LCD5L2c55So5Z+fXHJcbiAgICBzY29wZTogdGhpcyxcclxuICAgIC8vb3BlbuS8oOmAkui/h+adpeeahOmhtemdouWPguaVsFxyXG4gICAgcGFyYW1zOiB7fSxcclxuICAgIC8v5pi+56S65LmL5YmN5Zue6LCDXHJcbiAgICBiZWZvcmVSZW5kZXI6IG51bGwsXHJcbiAgICAvL+WFs+mXreS5i+WJjeWbnuiwg++8jOWmguaenHJldHVybiBmYWxzZe+8jOS4lOeql+WPo+S4jeWFs+mXrVxyXG4gICAgY2FsbGJhY2tCZWZvcmVDbG9zZTogbnVsbCxcclxuICAgIC8v5YWz6Zet5ZCO5Zue6LCD77yM5byC5q2l5pON5L2cXHJcbiAgICBjYWxsYmFjazogbnVsbCxcclxuICAgIC8v5pi+56S65LmL5ZCO5Zue6LCDXHJcbiAgICBhZnRlclJlbmRlcjogbnVsbCxcclxuICB9O1xyXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICBzdXBlcihwcm9wcyk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKG5leHRQcm9wcywgcHJldlN0YXRlKSB7XHJcbiAgICBjb25zdCB7IG1vZGFsUHJvcHMsIGRyYXdlclByb3BzLCBzaG93TW9kZWwgfSA9IG5leHRQcm9wcztcclxuICAgIGNvbnN0IHsgZm9ybU1vZGFsUHJvcHMsIGZvcm1EcmF3ZXJQcm9wcyB9ID0gcHJldlN0YXRlO1xyXG4gICAgaWYgKHNob3dNb2RlbCA9PSBcIm1vZGFsXCIpIHtcclxuICAgICAgLy8gSlNPTi5zdHJpbmdpZnkoZm9ybU1vZGFsUHJvcHMpICE9PSBKU09OLnN0cmluZ2lmeShtb2RhbFByb3BzKVxyXG4gICAgICBpZiAoIU9iamVjdC5pcyhmb3JtTW9kYWxQcm9wcywgbW9kYWxQcm9wcykpIHtcclxuICAgICAgICBsZXQgbmV3U3RhdGUgPSB7XHJcbiAgICAgICAgICBmb3JtRHJhd2VyUHJvcHM6IG1vZGFsUHJvcHMsXHJcbiAgICAgICAgfSBhcyBhbnk7XHJcbiAgICAgICAgaWYgKG1vZGFsUHJvcHM/LnZpc2libGUgIT09IG51bGwgJiYgbW9kYWxQcm9wcz8udmlzaWJsZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICBuZXdTdGF0ZS5mb3JtVmlzaWJsZSA9IG1vZGFsUHJvcHM/LnZpc2libGU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBuZXdTdGF0ZTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmIChzaG93TW9kZWwgPT0gXCJkcmF3ZXJcIikge1xyXG4gICAgICAvLyBKU09OLnN0cmluZ2lmeShmb3JtRHJhd2VyUHJvcHMpICE9PSBKU09OLnN0cmluZ2lmeShkcmF3ZXJQcm9wcylcclxuICAgICAgaWYgKCFPYmplY3QuaXMoZm9ybURyYXdlclByb3BzLCBkcmF3ZXJQcm9wcykpIHtcclxuICAgICAgICBsZXQgbmV3U3RhdGUgPSB7XHJcbiAgICAgICAgICBmb3JtRHJhd2VyUHJvcHM6IGRyYXdlclByb3BzLFxyXG4gICAgICAgIH0gYXMgYW55O1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIGRyYXdlclByb3BzPy52aXNpYmxlICE9PSBudWxsICYmXHJcbiAgICAgICAgICBkcmF3ZXJQcm9wcz8udmlzaWJsZSAhPT0gdW5kZWZpbmVkXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBuZXdTdGF0ZS5mb3JtVmlzaWJsZSA9IGRyYXdlclByb3BzPy52aXNpYmxlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbmV3U3RhdGU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgLy/ojrflj5blr7nlupTlrZfmrrXlkI3nmoTplJnor6/kv6Hmga9cclxuICBnZXRGaWVsZEVycm9yKG5hbWUpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1SZWYuY3VycmVudD8uZ2V0RmllbGRFcnJvcihuYW1lKTtcclxuICB9XHJcblxyXG4gIC8v6I635Y+W5a+55bqU5a2X5q615a6e5L6LXHJcbiAgZ2V0RmllbGRJbnN0YW5jZShuYW1lKSB7XHJcbiAgICByZXR1cm4gdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LmdldEZpZWxkSW5zdGFuY2UobmFtZSk7XHJcbiAgfVxyXG5cclxuICAvL+iOt+WPluS4gOe7hOWtl+auteWQjeWvueW6lOeahOmUmeivr+S/oeaBr++8jOi/lOWbnuS4uuaVsOe7hOW9ouW8j1xyXG4gIGdldEZpZWxkc0Vycm9yKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9ybVJlZi5jdXJyZW50Py5nZXRGaWVsZHNFcnJvcigpO1xyXG4gIH1cclxuXHJcbiAgLy/ojrflj5bkuIDnu4TlrZfmrrXlkI3lr7nlupTnmoTlgLzvvIzkvJrmjInnhaflr7nlupTnu5PmnoTov5Tlm55cclxuICBnZXRGaWVsZHNWYWx1ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1SZWYuY3VycmVudD8uZ2V0RmllbGRzVmFsdWUoKTtcclxuICB9XHJcblxyXG4gIC8v6I635Y+W5a+55bqU5a2X5q615ZCN55qE5YC8XHJcbiAgZ2V0RmllbGRWYWx1ZShuYW1lKSB7XHJcbiAgICByZXR1cm4gdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LmdldEZpZWxkVmFsdWUobmFtZSk7XHJcbiAgfVxyXG5cclxuICAvL+ajgOafpeS4gOe7hOWtl+auteaYr+WQpuiiq+eUqOaIt+aTjeS9nOi/h1xyXG4gIGlzRmllbGRzVG91Y2hlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1SZWYuY3VycmVudD8uaXNGaWVsZHNUb3VjaGVkKCk7XHJcbiAgfVxyXG5cclxuICAvL+ajgOafpeWvueW6lOWtl+auteaYr+WQpuiiq+eUqOaIt+aTjeS9nOi/h1xyXG4gIGlzRmllbGRUb3VjaGVkKG5hbWUpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1SZWYuY3VycmVudD8uaXNGaWVsZFRvdWNoZWQobmFtZSk7XHJcbiAgfVxyXG5cclxuICAvL+ajgOafpeS4gOe7hOWtl+auteaYr+WQpuato+WcqOagoemqjFxyXG4gIGlzRmllbGRWYWxpZGF0aW5nKG5hbWUpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1SZWYuY3VycmVudD8uaXNGaWVsZFZhbGlkYXRpbmcobmFtZSk7XHJcbiAgfVxyXG5cclxuICAvL+mHjee9ruS4gOe7hOWtl+auteWIsFxyXG4gIHJlc2V0RmllbGRzKCkge1xyXG4gICAgdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LnJlc2V0RmllbGRzKCk7XHJcbiAgfVxyXG5cclxuICBzY3JvbGxUb0ZpZWxkKG5hbWUsIG9wdGlvbnMpIHtcclxuICAgIHRoaXMuZm9ybVJlZi5jdXJyZW50Py5zY3JvbGxUb0ZpZWxkKG5hbWUsIG9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgc2V0RmllbGRzKGZpbGRzKSB7XHJcbiAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8uc2V0RmllbGRzKGZpbGRzKTtcclxuICB9XHJcblxyXG4gIHNldEZpZWxkc1ZhbHVlKHZhbHVlcykge1xyXG4gICAgdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LnNldEZpZWxkc1ZhbHVlKHZhbHVlcyk7XHJcbiAgfVxyXG5cclxuICBzdWJtaXQoKSB7XHJcbiAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8uc3VibWl0KCk7XHJcbiAgfVxyXG5cclxuICBvblN1Ym1pdChcclxuICAgIHVybD86IHN0cmluZyxcclxuICAgIG9wdGlvbnM/OiBhbnksXHJcbiAgICBjYWxsYmFjaz86IChyZXM/OiBhbnkpID0+IHZvaWQsXHJcbiAgICBtc2c/OiBib29sZWFuXHJcbiAgKSB7XHJcbiAgICBjb25zdCB7IHVybDogcHJvcHNVcmwsIGVuY3J5cHRGaWVsZHM6IGVuY3J5cHRQcm9wcHMgPSBbXSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGlmICghdXJsICYmICFwcm9wc1VybCkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCLmsqHmnInkuIrkvKDnmoR1cmwhXCIpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgeyBtZXRob2QgPSBcInBvc3RcIiB9ID0gb3B0aW9ucztcclxuICAgIGxldCByZXF1ZXN0VXJsID0gdXJsID8gdXJsIDogcHJvcHNVcmw7XHJcbiAgICBsZXQgcmVxdWVzdERhdGEgPSB0aGlzLmZvcm1SZWYuY3VycmVudC5nZXRGaWVsZHNWYWx1ZSgpO1xyXG4gICAgbGV0IHJlcXVlc3RFbmNyeXB0ID0gZW5jcnlwdFByb3BwcztcclxuICAgIGxldCByZXF1ZXN0UGFyYW0gPSB7IG1ldGhvZDogbWV0aG9kLCBkYXRhOiByZXF1ZXN0RGF0YSB9IGFzIHsgZGF0YTogYW55IH07XHJcbiAgICBpZiAob3B0aW9ucykge1xyXG4gICAgICBjb25zdCB7IGRhdGEsIGVuY3J5cHRGaWVsZHMsIC4uLnBhcmFtcyB9ID0gb3B0aW9ucztcclxuICAgICAgcmVxdWVzdFBhcmFtID0geyAuLi5yZXF1ZXN0UGFyYW0sIC4uLnBhcmFtcyB9O1xyXG4gICAgICBpZiAoZGF0YSkge1xyXG4gICAgICAgIGRlbGV0ZSByZXF1ZXN0UGFyYW0uZGF0YTtcclxuICAgICAgICBpZiAobWV0aG9kLnRvTG93ZXJDYXNlKCkgPT0gXCJnZXRcIikge1xyXG4gICAgICAgICAgcmVxdWVzdFBhcmFtID0geyAuLi5yZXF1ZXN0UGFyYW0sIC4uLnBhcmFtcywgcGFyYW1zOiBkYXRhIH07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJlcXVlc3RQYXJhbSA9IHsgLi4ucmVxdWVzdFBhcmFtLCAuLi5wYXJhbXMsIGRhdGE6IGRhdGEgfTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGVuY3J5cHRGaWVsZHMpIHtcclxuICAgICAgICByZXF1ZXN0RW5jcnlwdCA9IGVuY3J5cHRGaWVsZHM7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXF1ZXN0KHJlcXVlc3RVcmwsIHtcclxuICAgICAgYXV0b1ByZWZpeDogdHJ1ZSxcclxuICAgICAgLi4ucmVxdWVzdFBhcmFtLFxyXG4gICAgICBlbmNyeXB0RmllbGRzOiByZXF1ZXN0RW5jcnlwdCxcclxuICAgIH0pXHJcbiAgICAgIC50aGVuKGZ1bmN0aW9uIChyZXM6IGFueSkge1xyXG4gICAgICAgIGNvbnN0IHsgY29kZSB9ID0gcmVzO1xyXG4gICAgICAgIGlmIChtc2cpIHtcclxuICAgICAgICAgIGlmIChjb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgbWVzc2FnZS5zdWNjZXNzKFwi5o+Q5Lqk5oiQ5YqfXCIpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgbWVzc2FnZS5lcnJvcihcIuaPkOS6pOWksei0pVwiKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgY2FsbGJhY2sgJiYgY2FsbGJhY2socmVzKTtcclxuICAgICAgfSlcclxuICAgICAgLmNhdGNoKGZ1bmN0aW9uIChlcnJvcjogYW55KSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJlcnJvclwiLCBlcnJvcik7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdmFsaWRhdGVGaWVsZHMobmFtZSkge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9ybVJlZi5jdXJyZW50LnZhbGlkYXRlRmllbGRzKG5hbWUpO1xyXG4gIH1cclxuXHJcbiAgaGlkZShlKSB7XHJcbiAgICBjb25zdCB7IHNob3dNb2RlbCwgbW9kYWxQcm9wcyA9IHt9LCBkcmF3ZXJQcm9wcyA9IHt9IH0gPSB0aGlzLnByb3BzO1xyXG4gICAgbGV0IF90aGlzID0gdGhpcztcclxuICAgIGNvbnN0IHsgb25DYW5jZWwgfSA9IG1vZGFsUHJvcHM7XHJcbiAgICBjb25zdCB7IG9uQ2xvc2UgfSA9IGRyYXdlclByb3BzO1xyXG4gICAgaWYgKHNob3dNb2RlbCA9PSBcImRyYXdlclwiICYmIG9uQ2xvc2UpIHtcclxuICAgICAgb25DbG9zZShlKTtcclxuICAgIH0gZWxzZSBpZiAoc2hvd01vZGVsID09IFwibW9kYWxcIiAmJiBvbkNhbmNlbCkge1xyXG4gICAgICBvbkNhbmNlbChlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIF90aGlzLmhpZGVGb3JtKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoaWRlRm9ybShyZXNldFZhbHVlID0gdHJ1ZSkge1xyXG4gICAgdGhpcy5zZXRTdGF0ZShcclxuICAgICAge1xyXG4gICAgICAgIGZvcm1WaXNpYmxlOiBmYWxzZSxcclxuICAgICAgICBpc0NoYW5nZTogZmFsc2UsXHJcbiAgICAgIH0sXHJcbiAgICAgICgpID0+IHtcclxuICAgICAgICBpZiAocmVzZXRWYWx1ZSkge1xyXG4gICAgICAgICAgdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LnJlc2V0RmllbGRzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgc2hvd0Zvcm0odmFsdWU/OiBhbnksIG9wdGlvbjogYW55ID0ge30pIHtcclxuICAgIHRoaXMuc2V0U3RhdGUoXHJcbiAgICAgIHtcclxuICAgICAgICBmb3JtVmlzaWJsZTogdHJ1ZSxcclxuICAgICAgICBpc0NoYW5nZTogZmFsc2UsXHJcbiAgICAgIH0sXHJcbiAgICAgICgpID0+IHtcclxuICAgICAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8uc2V0RmllbGRzVmFsdWUodmFsdWUpO1xyXG4gICAgICAgIGNvbnN0IHsgYWZ0ZXJSZW5kZXIgfSA9IG9wdGlvbjtcclxuICAgICAgICB1dGlscy5jYWxsYmFjayhhZnRlclJlbmRlciwgdGhpcyk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBjbG9uZUVsZW1lbnQoaXRlbSwgaW5kZXggPSAwKSB7XHJcbiAgICBsZXQgX3RoaXMgPSB0aGlzO1xyXG4gICAgaWYgKHR5cGVvZiBpdGVtID09IFwic3RyaW5nXCIpIHJldHVybiBpdGVtO1xyXG4gICAgbGV0IHByb3BzID0ge30gYXMgeyBrZXk6IG51bWJlcjsgY2hpbGRyZW46IGFueSB9O1xyXG4gICAgcHJvcHMua2V5ID0gaW5kZXg7XHJcbiAgICB0cnkge1xyXG4gICAgICBpZiAoaXRlbS5wcm9wcyAmJiBpdGVtLnByb3BzLmNoaWxkcmVuKSB7XHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoaXRlbS5wcm9wcy5jaGlsZHJlbikpIHtcclxuICAgICAgICAgIHByb3BzLmNoaWxkcmVuID0gUmVhY3QuQ2hpbGRyZW4ubWFwKFxyXG4gICAgICAgICAgICBpdGVtLnByb3BzLmNoaWxkcmVuLFxyXG4gICAgICAgICAgICBmdW5jdGlvbiAoY2hpbGQsIGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIF90aGlzLmNsb25lRWxlbWVudChjaGlsZCwgaW5kZXgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBwcm9wcy5jaGlsZHJlbiA9IHRoaXMuY2xvbmVFbGVtZW50KGl0ZW0ucHJvcHMuY2hpbGRyZW4sIDApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gUmVhY3QuY2xvbmVFbGVtZW50KGl0ZW0sIHByb3BzKTtcclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG9uVmFsdWVzQ2hhbmdlKHZhbCwgYWxsVmFsKSB7XHJcbiAgICBjb25zdCB7IG9uVmFsdWVzQ2hhbmdlIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIGlzQ2hhbmdlOiB0cnVlLFxyXG4gICAgfSk7XHJcbiAgICBvblZhbHVlc0NoYW5nZSAmJiBvblZhbHVlc0NoYW5nZSh2YWwsIGFsbFZhbCk7XHJcbiAgfVxyXG4gIHJlbmRlclBhbmVsKG5ld0NoaWxkcmVuLCBwcm9wcykge1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBzaG93TW9kZWwsXHJcbiAgICAgIGRyYXdlclByb3BzID0ge30sXHJcbiAgICAgIG1vZGFsUHJvcHMgPSB7fSxcclxuICAgICAgbG9hZGluZyA9IGZhbHNlLFxyXG4gICAgICBjaGFuZ2VWYWxpZCA9IHRydWUsXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgZm9ybVZpc2libGUgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCBsYXlvdXQgPSB7XHJcbiAgICAgIGxhYmVsQ29sOiB7IHNwYW46IDQgfSxcclxuICAgICAgd3JhcHBlckNvbDogeyBzcGFuOiAyMCB9LFxyXG4gICAgfTtcclxuICAgIGlmIChzaG93TW9kZWwpIHtcclxuICAgICAgbGV0IG5ld01vZGFsUHJvcHMgPSBvbWl0KG1vZGFsUHJvcHMsIFtcInZpc2libGVcIl0pO1xyXG4gICAgICBuZXdNb2RhbFByb3BzID0geyAuLi5uZXdNb2RhbFByb3BzIH07XHJcbiAgICAgIGxldCBuZXdEcmF3ZXJQcm9wcyA9IG9taXQoZHJhd2VyUHJvcHMsIFtcInZpc2libGVcIl0pO1xyXG4gICAgICBsZXQgZGVmYXVsdHByb3BzID0ge1xyXG4gICAgICAgIG1hc2tDbG9zYWJsZTogIXRoaXMuc3RhdGUuaXNDaGFuZ2UsXHJcbiAgICAgICAgZm9ybUV4cGFuZDoge1xyXG4gICAgICAgICAgZXhwYW5kOiB0cnVlLFxyXG4gICAgICAgICAgdmFsaWQ6IGNoYW5nZVZhbGlkLFxyXG4gICAgICAgICAgY2hhbmdlOiB0aGlzLnN0YXRlLmlzQ2hhbmdlLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHlwZTogc2hvd01vZGVsLFxyXG4gICAgICB9IGFzIGFueTtcclxuICAgICAgbGV0IG1vZGFscHJvcHMgPSB7IC4uLmRlZmF1bHRwcm9wcyB9O1xyXG4gICAgICBtb2RhbHByb3BzID0ge1xyXG4gICAgICAgIC4uLmRlZmF1bHRwcm9wcyxcclxuICAgICAgICAuLi5uZXdNb2RhbFByb3BzLFxyXG4gICAgICAgIC4uLm5ld0RyYXdlclByb3BzLFxyXG4gICAgICAgIG9uQ2FuY2VsOiB0aGlzLmhpZGUuYmluZCh0aGlzKSxcclxuICAgICAgICAvLyBvbkNsb3NlOiB0aGlzLmhpZGUuYmluZCh0aGlzKSxcclxuICAgICAgfTtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICA8TW9kYWwgdmlzaWJsZT17Zm9ybVZpc2libGV9IHsuLi5tb2RhbHByb3BzfT5cclxuICAgICAgICAgIHtsb2FkaW5nID8gKFxyXG4gICAgICAgICAgICA8U3BpbiBzcGlubmluZz17bG9hZGluZ30+XHJcbiAgICAgICAgICAgICAgPEZvcm1cclxuICAgICAgICAgICAgICAgIHJlZj17dGhpcy5mb3JtUmVmfVxyXG4gICAgICAgICAgICAgICAgdmFsaWRhdGVUcmlnZ2VyPXtbXCJvbkJsdXJcIiwgXCJvbkNoYW5nZVwiXX1cclxuICAgICAgICAgICAgICAgIGRyYWdnYWJsZT17dHJ1ZX1cclxuICAgICAgICAgICAgICAgIHsuLi5sYXlvdXR9XHJcbiAgICAgICAgICAgICAgICB7Li4ucHJvcHN9XHJcbiAgICAgICAgICAgICAgICBvblZhbHVlc0NoYW5nZT17dGhpcy5vblZhbHVlc0NoYW5nZS5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICAgICAgcHJlc2VydmU9e2ZhbHNlfVxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvU3Bpbj5cclxuICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgIDxGb3JtXHJcbiAgICAgICAgICAgICAgcmVmPXt0aGlzLmZvcm1SZWZ9XHJcbiAgICAgICAgICAgICAgdmFsaWRhdGVUcmlnZ2VyPXtbXCJvbkJsdXJcIiwgXCJvbkNoYW5nZVwiXX1cclxuICAgICAgICAgICAgICB7Li4ubGF5b3V0fVxyXG4gICAgICAgICAgICAgIHsuLi5wcm9wc31cclxuICAgICAgICAgICAgICBvblZhbHVlc0NoYW5nZT17dGhpcy5vblZhbHVlc0NoYW5nZS5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICAgIHByZXNlcnZlPXtmYWxzZX1cclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgICl9XHJcbiAgICAgICAgPC9Nb2RhbD5cclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgPD5cclxuICAgICAgICAgIHtsb2FkaW5nID8gKFxyXG4gICAgICAgICAgICA8U3BpbiBzcGlubmluZz17bG9hZGluZ30+XHJcbiAgICAgICAgICAgICAgPEZvcm1cclxuICAgICAgICAgICAgICAgIHJlZj17dGhpcy5mb3JtUmVmfVxyXG4gICAgICAgICAgICAgICAgdmFsaWRhdGVUcmlnZ2VyPXtbXCJvbkJsdXJcIiwgXCJvbkNoYW5nZVwiXX1cclxuICAgICAgICAgICAgICAgIHsuLi5sYXlvdXR9XHJcbiAgICAgICAgICAgICAgICB7Li4ucHJvcHN9XHJcbiAgICAgICAgICAgICAgICBvblZhbHVlc0NoYW5nZT17dGhpcy5vblZhbHVlc0NoYW5nZS5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvU3Bpbj5cclxuICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgIDxGb3JtXHJcbiAgICAgICAgICAgICAgcmVmPXt0aGlzLmZvcm1SZWZ9XHJcbiAgICAgICAgICAgICAgdmFsaWRhdGVUcmlnZ2VyPXtbXCJvbkJsdXJcIiwgXCJvbkNoYW5nZVwiXX1cclxuICAgICAgICAgICAgICB7Li4ubGF5b3V0fVxyXG4gICAgICAgICAgICAgIHsuLi5wcm9wc31cclxuICAgICAgICAgICAgICBvblZhbHVlc0NoYW5nZT17dGhpcy5vblZhbHVlc0NoYW5nZS5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgKX1cclxuICAgICAgICA8Lz5cclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcbiAgcmVuZGVyKCkge1xyXG4gICAgY29uc3QgcHJvcHMgPSBvbWl0KHRoaXMucHJvcHMsIFtcclxuICAgICAgXCJmb3JtXCIsXHJcbiAgICAgIFwic2hvd01vZGVsXCIsXHJcbiAgICAgIFwibW9kYWxQcm9wc1wiLFxyXG4gICAgICBcImRyYXdlclByb3BzXCIsXHJcbiAgICAgIFwidXJsXCIsXHJcbiAgICAgIFwiZW5jcnlwdEZpZWxkc1wiLFxyXG4gICAgICBcImNoYW5nZVZhbGlkXCIsXHJcbiAgICBdKTtcclxuXHJcbiAgICByZXR1cm4gPD57dGhpcy5yZW5kZXJQYW5lbChwcm9wcy5jaGlsZHJlbiwgcHJvcHMpfTwvPjtcclxuICB9XHJcbn1cclxuZXhwb3J0IGRlZmF1bHQgTnNjRm9ybTtcclxuIl19
|