nsc-react-component 4.3.9 → 4.3.11
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.js +19 -5
- package/lib/base/form/Form.js.map +1 -1
- package/lib/base/modal/index.js +17 -19
- package/lib/base/modal/index.js.map +1 -1
- package/lib/page/BasePage/index.js +1 -4
- package/lib/page/BasePage/index.js.map +1 -1
- package/lib/page/FormPage/index.js +14 -2
- package/lib/page/FormPage/index.js.map +1 -1
- package/package.json +1 -1
package/lib/base/form/Form.js
CHANGED
|
@@ -19,10 +19,11 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
|
|
|
19
19
|
*/
|
|
20
20
|
import React, { PureComponent } from "react";
|
|
21
21
|
import Modal from "../modal";
|
|
22
|
-
import { request } from "@bj-nsc/msn/lib/utils";
|
|
22
|
+
import { request, utils } from "@bj-nsc/msn/lib/utils";
|
|
23
23
|
import omit from "omit.js";
|
|
24
24
|
import Spin from "../spin";
|
|
25
|
-
import
|
|
25
|
+
import config from "../../config";
|
|
26
|
+
import { getLocalStore } from '@bj-nsc/functions';
|
|
26
27
|
class NscForm extends PureComponent {
|
|
27
28
|
constructor(props) {
|
|
28
29
|
super(props);
|
|
@@ -315,8 +316,15 @@ class NscForm extends PureComponent {
|
|
|
315
316
|
}));
|
|
316
317
|
};
|
|
317
318
|
if (showModel) {
|
|
319
|
+
const {
|
|
320
|
+
showModel
|
|
321
|
+
} = this.props;
|
|
322
|
+
const {
|
|
323
|
+
storePrefix
|
|
324
|
+
} = config();
|
|
325
|
+
let autoType = getLocalStore("formType", storePrefix ? storePrefix : "nsc-home");
|
|
326
|
+
autoType = autoType ? autoType : null;
|
|
318
327
|
let newModalProps = omit(modalProps, ["visible"]);
|
|
319
|
-
newModalProps = _objectSpread({}, newModalProps);
|
|
320
328
|
let newDrawerProps = omit(drawerProps, ["visible"]);
|
|
321
329
|
let defaultprops = {
|
|
322
330
|
maskClosable: !this.state.isChange,
|
|
@@ -328,7 +336,13 @@ class NscForm extends PureComponent {
|
|
|
328
336
|
type: showModel
|
|
329
337
|
};
|
|
330
338
|
let modalprops = _objectSpread({}, defaultprops);
|
|
331
|
-
|
|
339
|
+
let newProps = {};
|
|
340
|
+
if (showModel == "drawer" || showModel == "auto" && autoType == "drawer") {
|
|
341
|
+
newProps = _objectSpread(_objectSpread({}, newModalProps), newDrawerProps);
|
|
342
|
+
} else {
|
|
343
|
+
newProps = _objectSpread(_objectSpread({}, newDrawerProps), newModalProps);
|
|
344
|
+
}
|
|
345
|
+
modalprops = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, defaultprops), newModalProps), newDrawerProps), newProps), {}, {
|
|
332
346
|
onCancel: this.hide.bind(this)
|
|
333
347
|
// onClose: this.hide.bind(this),
|
|
334
348
|
});
|
|
@@ -349,4 +363,4 @@ class NscForm extends PureComponent {
|
|
|
349
363
|
}
|
|
350
364
|
}
|
|
351
365
|
export default NscForm;
|
|
352
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJNb2RhbCIsInJlcXVlc3QiLCJvbWl0IiwiU3BpbiIsInV0aWxzIiwiTnNjRm9ybSIsImNvbnN0cnVjdG9yIiwicHJvcHMiLCJfZGVmaW5lUHJvcGVydHkiLCJjcmVhdGVSZWYiLCJmb3JtVmlzaWJsZSIsImZvcm1Nb2RhbFByb3BzIiwiZm9ybURyYXdlclByb3BzIiwiaXNDaGFuZ2UiLCJleHBhbmQiLCJzY29wZSIsInBhcmFtcyIsImJlZm9yZVJlbmRlciIsImNhbGxiYWNrQmVmb3JlQ2xvc2UiLCJjYWxsYmFjayIsImFmdGVyUmVuZGVyIiwiZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzIiwibmV4dFByb3BzIiwicHJldlN0YXRlIiwibW9kYWxQcm9wcyIsImRyYXdlclByb3BzIiwic2hvd01vZGVsIiwiT2JqZWN0IiwiaXMiLCJuZXdTdGF0ZSIsInZpc2libGUiLCJ1bmRlZmluZWQiLCJnZXRGaWVsZEVycm9yIiwibmFtZSIsIl90aGlzJGZvcm1SZWYkY3VycmVudCIsImZvcm1SZWYiLCJjdXJyZW50IiwiZ2V0RmllbGRJbnN0YW5jZSIsIl90aGlzJGZvcm1SZWYkY3VycmVudDIiLCJnZXRGaWVsZHNFcnJvciIsImdldEZpZWxkc1ZhbHVlIiwiX3RoaXMkZm9ybVJlZiIsImdldEZpZWxkVmFsdWUiLCJpc0ZpZWxkc1RvdWNoZWQiLCJpc0ZpZWxkVG91Y2hlZCIsImlzRmllbGRWYWxpZGF0aW5nIiwicmVzZXRGaWVsZHMiLCJzY3JvbGxUb0ZpZWxkIiwib3B0aW9ucyIsInNldEZpZWxkcyIsImZpbGRzIiwic2V0RmllbGRzVmFsdWUiLCJ2YWx1ZXMiLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQzIiwic3VibWl0Iiwib25TdWJtaXQiLCJ1cmwiLCJtc2ciLCJwcm9wc1VybCIsImVuY3J5cHRGaWVsZHMiLCJlbmNyeXB0UHJvcHBzIiwiRXJyb3IiLCJtZXRob2QiLCJyZXF1ZXN0VXJsIiwicmVxdWVzdERhdGEiLCJyZXF1ZXN0RW5jcnlwdCIsInJlcXVlc3RQYXJhbSIsImRhdGEiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMiLCJfZXhjbHVkZWQiLCJfb2JqZWN0U3ByZWFkIiwidG9Mb3dlckNhc2UiLCJhdXRvUHJlZml4IiwidGhlbiIsInJlcyIsImNvZGUiLCJfbWVzc2FnZSIsInN1Y2Nlc3MiLCJlcnJvciIsImNhdGNoIiwiY29uc29sZSIsImxvZyIsInZhbGlkYXRlRmllbGRzIiwiaGlkZSIsImUiLCJfdGhpcyIsIm9uQ2FuY2VsIiwib25DbG9zZSIsImhpZGVGb3JtIiwicmVzZXRWYWx1ZSIsImFyZ3VtZW50cyIsImxlbmd0aCIsInNldFN0YXRlIiwic2hvd0Zvcm0iLCJ2YWx1ZSIsIm9wdGlvbiIsIl90aGlzJGZvcm1SZWYkY3VycmVudDQiLCJjbG9uZUVsZW1lbnQiLCJpdGVtIiwiaW5kZXgiLCJrZXkiLCJjaGlsZHJlbiIsIkFycmF5IiwiaXNBcnJheSIsIkNoaWxkcmVuIiwibWFwIiwiY2hpbGQiLCJvblZhbHVlc0NoYW5nZSIsInZhbCIsImFsbFZhbCIsInJlbmRlclBhbmVsIiwibmV3Q2hpbGRyZW4iLCJsb2FkaW5nIiwiY2hhbmdlVmFsaWQiLCJzdGF0ZSIsImxheW91dCIsImxhYmVsQ29sIiwic3BhbiIsIndyYXBwZXJDb2wiLCJQYW5lIiwiY3JlYXRlRWxlbWVudCIsIl9Gb3JtIiwiX2V4dGVuZHMiLCJyZWYiLCJ2YWxpZGF0ZVRyaWdnZXIiLCJiaW5kIiwicHJlc2VydmUiLCJuZXdNb2RhbFByb3BzIiwibmV3RHJhd2VyUHJvcHMiLCJkZWZhdWx0cHJvcHMiLCJtYXNrQ2xvc2FibGUiLCJmb3JtRXhwYW5kIiwidmFsaWQiLCJjaGFuZ2UiLCJ0eXBlIiwibW9kYWxwcm9wcyIsIm9wZW4iLCJzcGlubmluZyIsIkZyYWdtZW50IiwicmVuZGVyIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYmFzZS9mb3JtL0Zvcm0udHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIEBEZXNjcmlwdHRpb2466KGo5Y2V57uE5Lu2XHJcbiAqIEB2ZXJzaW9uOlxyXG4gKiBAQXV0aG9yOiByeHpodVxyXG4gKiBARGF0ZTogMjAyMS0wNC0wOSAwOToxODozNFxyXG4gKiBATGFzdEVkaXRvcnM6IHJ4emh1XHJcbiAqIEBMYXN0RWRpdFRpbWU6IDIwMjEtMDQtMjMgMTU6MjM6NTRcclxuICovXHJcbmltcG9ydCBSZWFjdCwgeyBQdXJlQ29tcG9uZW50IH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IEZvcm0sIEZvcm1Qcm9wcywgRHJhd2VyLCBEcmF3ZXJQcm9wcywgbWVzc2FnZSB9IGZyb20gXCJhbnRkXCI7XHJcbmltcG9ydCBNb2RhbCBmcm9tIFwiLi4vbW9kYWxcIjtcclxuaW1wb3J0IHsgRm9ybUluc3RhbmNlIH0gZnJvbSBcImFudGQvbGliL2Zvcm1cIjtcclxuaW1wb3J0IHsgcmVxdWVzdCB9IGZyb20gXCJAYmotbnNjL21zbi9saWIvdXRpbHNcIjtcclxuaW1wb3J0IG9taXQgZnJvbSBcIm9taXQuanNcIjtcclxuaW1wb3J0IHsgTnNjTW9kYWxQb3JwcyB9IGZyb20gXCIuLi9tb2RhbFwiO1xyXG5pbXBvcnQgU3BpbiBmcm9tIFwiLi4vc3BpblwiO1xyXG5pbXBvcnQgeyB1dGlscyB9IGZyb20gXCJAYmotbnNjL21zbi9saWIvdXRpbHNcIjtcclxuZXhwb3J0IGludGVyZmFjZSBJRm9ybVByb3BzIGV4dGVuZHMgRm9ybVByb3BzIHtcclxuICBzaG93TW9kZWw/OiBcIm1vZGFsXCIgfCBcImRyYXdlclwiIHwgXCJhdXRvXCI7XHJcbiAgbW9kYWxQcm9wcz86IE5zY01vZGFsUG9ycHM7XHJcbiAgZHJhd2VyUHJvcHM/OiBEcmF3ZXJQcm9wcyAmIHtcclxuICAgIG9uT2s/OiBhbnk7XHJcbiAgICBva0J1dHRvblByb3BzPzogT2JqZWN0O1xyXG4gICAgZm9ybUV4cGFuZD86IE9iamVjdDtcclxuICB9O1xyXG4gIHVybD86IHN0cmluZztcclxuICBlbmNyeXB0RmllbGRzPzogQXJyYXk8U3RyaW5nPjtcclxuICBjaGFuZ2VWYWxpZD86IGJvb2xlYW47IC8v5pWw5o2u5L+u5pS55YWz6Zet5qCh6aqMXHJcbiAgbG9hZGluZz86IGJvb2xlYW47IC8v6KGo5Y2V5Yqg6L2954q25oCBXHJcbn1cclxuXHJcbmNsYXNzIE5zY0Zvcm0gZXh0ZW5kcyBQdXJlQ29tcG9uZW50PElGb3JtUHJvcHM+IHtcclxuICBmb3JtUmVmID0gUmVhY3QuY3JlYXRlUmVmPEZvcm1JbnN0YW5jZT4oKTtcclxuICBzdGF0ZSA9IHtcclxuICAgIGZvcm1WaXNpYmxlOiBmYWxzZSxcclxuICAgIGZvcm1Nb2RhbFByb3BzOiB7fSxcclxuICAgIGZvcm1EcmF3ZXJQcm9wczoge30sXHJcbiAgICBpc0NoYW5nZTogZmFsc2UsXHJcbiAgICBleHBhbmQ6IGZhbHNlLFxyXG4gIH07XHJcbiAgb3B0aW9uOiBhbnkgPSB7XHJcbiAgICAvL+Wbnuiwg+S9nOeUqOWfn1xyXG4gICAgc2NvcGU6IHRoaXMsXHJcbiAgICAvL29wZW7kvKDpgJLov4fmnaXnmoTpobXpnaLlj4LmlbBcclxuICAgIHBhcmFtczoge30sXHJcbiAgICAvL+aYvuekuuS5i+WJjeWbnuiwg1xyXG4gICAgYmVmb3JlUmVuZGVyOiBudWxsLFxyXG4gICAgLy/lhbPpl63kuYvliY3lm57osIPvvIzlpoLmnpxyZXR1cm4gZmFsc2XvvIzkuJTnqpflj6PkuI3lhbPpl61cclxuICAgIGNhbGxiYWNrQmVmb3JlQ2xvc2U6IG51bGwsXHJcbiAgICAvL+WFs+mXreWQjuWbnuiwg++8jOW8guatpeaTjeS9nFxyXG4gICAgY2FsbGJhY2s6IG51bGwsXHJcbiAgICAvL+aYvuekuuS5i+WQjuWbnuiwg1xyXG4gICAgYWZ0ZXJSZW5kZXI6IG51bGwsXHJcbiAgfTtcclxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgc3VwZXIocHJvcHMpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyhuZXh0UHJvcHMsIHByZXZTdGF0ZSkge1xyXG4gICAgY29uc3QgeyBtb2RhbFByb3BzLCBkcmF3ZXJQcm9wcywgc2hvd01vZGVsIH0gPSBuZXh0UHJvcHM7XHJcbiAgICBjb25zdCB7IGZvcm1Nb2RhbFByb3BzLCBmb3JtRHJhd2VyUHJvcHMgfSA9IHByZXZTdGF0ZTtcclxuICAgIGlmIChzaG93TW9kZWwgPT0gXCJtb2RhbFwiKSB7XHJcbiAgICAgIC8vIEpTT04uc3RyaW5naWZ5KGZvcm1Nb2RhbFByb3BzKSAhPT0gSlNPTi5zdHJpbmdpZnkobW9kYWxQcm9wcylcclxuICAgICAgaWYgKCFPYmplY3QuaXMoZm9ybU1vZGFsUHJvcHMsIG1vZGFsUHJvcHMpKSB7XHJcbiAgICAgICAgbGV0IG5ld1N0YXRlID0ge1xyXG4gICAgICAgICAgZm9ybURyYXdlclByb3BzOiBtb2RhbFByb3BzLFxyXG4gICAgICAgIH0gYXMgYW55O1xyXG4gICAgICAgIGlmIChtb2RhbFByb3BzLnZpc2libGUgIT09IG51bGwgJiYgbW9kYWxQcm9wcy52aXNpYmxlICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgIG5ld1N0YXRlLmZvcm1WaXNpYmxlID0gbW9kYWxQcm9wcy52aXNpYmxlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbmV3U3RhdGU7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAoc2hvd01vZGVsID09IFwiZHJhd2VyXCIpIHtcclxuICAgICAgLy8gSlNPTi5zdHJpbmdpZnkoZm9ybURyYXdlclByb3BzKSAhPT0gSlNPTi5zdHJpbmdpZnkoZHJhd2VyUHJvcHMpXHJcbiAgICAgIGlmICghT2JqZWN0LmlzKGZvcm1EcmF3ZXJQcm9wcywgZHJhd2VyUHJvcHMpKSB7XHJcbiAgICAgICAgbGV0IG5ld1N0YXRlID0ge1xyXG4gICAgICAgICAgZm9ybURyYXdlclByb3BzOiBkcmF3ZXJQcm9wcyxcclxuICAgICAgICB9IGFzIGFueTtcclxuICAgICAgICBpZiAoZHJhd2VyUHJvcHM/LnZpc2libGUgIT09IG51bGwgJiYgZHJhd2VyUHJvcHM/LnZpc2libGUgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgbmV3U3RhdGUuZm9ybVZpc2libGUgPSBkcmF3ZXJQcm9wcy52aXNpYmxlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbmV3U3RhdGU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgLy/ojrflj5blr7nlupTlrZfmrrXlkI3nmoTplJnor6/kv6Hmga9cclxuICBnZXRGaWVsZEVycm9yKG5hbWUpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1SZWYuY3VycmVudD8uZ2V0RmllbGRFcnJvcihuYW1lKTtcclxuICB9XHJcblxyXG4gIC8v6I635Y+W5a+55bqU5a2X5q615a6e5L6LXHJcbiAgZ2V0RmllbGRJbnN0YW5jZShuYW1lKSB7XHJcbiAgICByZXR1cm4gdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LmdldEZpZWxkSW5zdGFuY2UobmFtZSk7XHJcbiAgfVxyXG5cclxuICAvL+iOt+WPluS4gOe7hOWtl+auteWQjeWvueW6lOeahOmUmeivr+S/oeaBr++8jOi/lOWbnuS4uuaVsOe7hOW9ouW8j1xyXG4gIGdldEZpZWxkc0Vycm9yKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9ybVJlZi5jdXJyZW50LmdldEZpZWxkc0Vycm9yKCk7XHJcbiAgfVxyXG5cclxuICAvL+iOt+WPluS4gOe7hOWtl+auteWQjeWvueW6lOeahOWAvO+8jOS8muaMieeFp+WvueW6lOe7k+aehOi/lOWbnlxyXG4gIGdldEZpZWxkc1ZhbHVlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9ybVJlZj8uY3VycmVudD8uZ2V0RmllbGRzVmFsdWUoKTtcclxuICB9XHJcblxyXG4gIC8v6I635Y+W5a+55bqU5a2X5q615ZCN55qE5YC8XHJcbiAgZ2V0RmllbGRWYWx1ZShuYW1lKSB7XHJcbiAgICByZXR1cm4gdGhpcy5mb3JtUmVmLmN1cnJlbnQuZ2V0RmllbGRWYWx1ZShuYW1lKTtcclxuICB9XHJcblxyXG4gIC8v5qOA5p+l5LiA57uE5a2X5q615piv5ZCm6KKr55So5oi35pON5L2c6L+HXHJcbiAgaXNGaWVsZHNUb3VjaGVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9ybVJlZi5jdXJyZW50LmlzRmllbGRzVG91Y2hlZCgpO1xyXG4gIH1cclxuXHJcbiAgLy/mo4Dmn6Xlr7nlupTlrZfmrrXmmK/lkKbooqvnlKjmiLfmk43kvZzov4dcclxuICBpc0ZpZWxkVG91Y2hlZChuYW1lKSB7XHJcbiAgICByZXR1cm4gdGhpcy5mb3JtUmVmLmN1cnJlbnQuaXNGaWVsZFRvdWNoZWQobmFtZSk7XHJcbiAgfVxyXG5cclxuICAvL+ajgOafpeS4gOe7hOWtl+auteaYr+WQpuato+WcqOagoemqjFxyXG4gIGlzRmllbGRWYWxpZGF0aW5nKG5hbWUpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1SZWYuY3VycmVudC5pc0ZpZWxkVmFsaWRhdGluZyhuYW1lKTtcclxuICB9XHJcblxyXG4gIC8v6YeN572u5LiA57uE5a2X5q615YiwXHJcbiAgcmVzZXRGaWVsZHMoKSB7XHJcbiAgICB0aGlzLmZvcm1SZWYuY3VycmVudC5yZXNldEZpZWxkcygpO1xyXG4gIH1cclxuXHJcbiAgc2Nyb2xsVG9GaWVsZChuYW1lLCBvcHRpb25zKSB7XHJcbiAgICB0aGlzLmZvcm1SZWYuY3VycmVudC5zY3JvbGxUb0ZpZWxkKG5hbWUsIG9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgc2V0RmllbGRzKGZpbGRzKSB7XHJcbiAgICB0aGlzLmZvcm1SZWYuY3VycmVudC5zZXRGaWVsZHMoZmlsZHMpO1xyXG4gIH1cclxuXHJcbiAgc2V0RmllbGRzVmFsdWUodmFsdWVzKSB7XHJcbiAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8uc2V0RmllbGRzVmFsdWUodmFsdWVzKTtcclxuICB9XHJcblxyXG4gIHN1Ym1pdCgpIHtcclxuICAgIHRoaXMuZm9ybVJlZi5jdXJyZW50LnN1Ym1pdCgpO1xyXG4gIH1cclxuXHJcbiAgb25TdWJtaXQoXHJcbiAgICB1cmw/OiBzdHJpbmcsXHJcbiAgICBvcHRpb25zPzogYW55LFxyXG4gICAgY2FsbGJhY2s/OiAocmVzPzogYW55KSA9PiB2b2lkLFxyXG4gICAgbXNnPzogYm9vbGVhblxyXG4gICkge1xyXG4gICAgY29uc3QgeyB1cmw6IHByb3BzVXJsLCBlbmNyeXB0RmllbGRzOiBlbmNyeXB0UHJvcHBzID0gW10gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpZiAoIXVybCAmJiAhcHJvcHNVcmwpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwi5rKh5pyJ5LiK5Lyg55qEdXJsIVwiKTtcclxuICAgIH1cclxuICAgIGNvbnN0IHsgbWV0aG9kID0gXCJwb3N0XCIgfSA9IG9wdGlvbnM7XHJcbiAgICBsZXQgcmVxdWVzdFVybCA9IHVybCA/IHVybCA6IHByb3BzVXJsO1xyXG4gICAgbGV0IHJlcXVlc3REYXRhID0gdGhpcy5mb3JtUmVmLmN1cnJlbnQuZ2V0RmllbGRzVmFsdWUoKTtcclxuICAgIGxldCByZXF1ZXN0RW5jcnlwdCA9IGVuY3J5cHRQcm9wcHM7XHJcbiAgICBsZXQgcmVxdWVzdFBhcmFtID0geyBtZXRob2Q6IG1ldGhvZCwgZGF0YTogcmVxdWVzdERhdGEgfSBhcyB7IGRhdGE6IGFueSB9O1xyXG4gICAgaWYgKG9wdGlvbnMpIHtcclxuICAgICAgY29uc3QgeyBkYXRhLCBlbmNyeXB0RmllbGRzLCAuLi5wYXJhbXMgfSA9IG9wdGlvbnM7XHJcbiAgICAgIHJlcXVlc3RQYXJhbSA9IHsgLi4ucmVxdWVzdFBhcmFtLCAuLi5wYXJhbXMgfTtcclxuICAgICAgaWYgKGRhdGEpIHtcclxuICAgICAgICBkZWxldGUgcmVxdWVzdFBhcmFtLmRhdGE7XHJcbiAgICAgICAgaWYgKG1ldGhvZC50b0xvd2VyQ2FzZSgpID09IFwiZ2V0XCIpIHtcclxuICAgICAgICAgIHJlcXVlc3RQYXJhbSA9IHsgLi4ucmVxdWVzdFBhcmFtLCAuLi5wYXJhbXMsIHBhcmFtczogZGF0YSB9O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXF1ZXN0UGFyYW0gPSB7IC4uLnJlcXVlc3RQYXJhbSwgLi4ucGFyYW1zLCBkYXRhOiBkYXRhIH07XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmIChlbmNyeXB0RmllbGRzKSB7XHJcbiAgICAgICAgcmVxdWVzdEVuY3J5cHQgPSBlbmNyeXB0RmllbGRzO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmVxdWVzdChyZXF1ZXN0VXJsLCB7XHJcbiAgICAgIGF1dG9QcmVmaXg6IHRydWUsXHJcbiAgICAgIC4uLnJlcXVlc3RQYXJhbSxcclxuICAgICAgZW5jcnlwdEZpZWxkczogcmVxdWVzdEVuY3J5cHQsXHJcbiAgICB9KVxyXG4gICAgICAudGhlbihmdW5jdGlvbiAocmVzOiBhbnkpIHtcclxuICAgICAgICBjb25zdCB7IGNvZGUgfSA9IHJlcztcclxuICAgICAgICBpZiAobXNnKSB7XHJcbiAgICAgICAgICBpZiAoY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgIG1lc3NhZ2Uuc3VjY2VzcyhcIuaPkOS6pOaIkOWKn1wiKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIG1lc3NhZ2UuZXJyb3IoXCLmj5DkuqTlpLHotKVcIik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhbGxiYWNrICYmIGNhbGxiYWNrKHJlcyk7XHJcbiAgICAgIH0pXHJcbiAgICAgIC5jYXRjaChmdW5jdGlvbiAoZXJyb3I6IGFueSkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiZXJyb3JcIiwgZXJyb3IpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHZhbGlkYXRlRmllbGRzKG5hbWUpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1SZWYuY3VycmVudC52YWxpZGF0ZUZpZWxkcyhuYW1lKTtcclxuICB9XHJcblxyXG4gIGhpZGUoZSkge1xyXG4gICAgY29uc3QgeyBzaG93TW9kZWwsIG1vZGFsUHJvcHMgPSB7fSwgZHJhd2VyUHJvcHMgPSB7fSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGxldCBfdGhpcyA9IHRoaXM7XHJcbiAgICBjb25zdCB7IG9uQ2FuY2VsIH0gPSBtb2RhbFByb3BzO1xyXG4gICAgY29uc3QgeyBvbkNsb3NlIH0gPSBkcmF3ZXJQcm9wcztcclxuICAgIGlmIChzaG93TW9kZWwgPT0gXCJkcmF3ZXJcIiAmJiBvbkNsb3NlKSB7XHJcbiAgICAgIG9uQ2xvc2UoZSk7XHJcbiAgICB9IGVsc2UgaWYgKHNob3dNb2RlbCA9PSBcIm1vZGFsXCIgJiYgb25DYW5jZWwpIHtcclxuICAgICAgb25DYW5jZWwoZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBfdGhpcy5oaWRlRm9ybSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGlkZUZvcm0ocmVzZXRWYWx1ZSA9IHRydWUpIHtcclxuICAgIHRoaXMuc2V0U3RhdGUoXHJcbiAgICAgIHtcclxuICAgICAgICBmb3JtVmlzaWJsZTogZmFsc2UsXHJcbiAgICAgICAgaXNDaGFuZ2U6IGZhbHNlLFxyXG4gICAgICB9LFxyXG4gICAgICAoKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc2V0VmFsdWUpIHtcclxuICAgICAgICAgIHRoaXMuZm9ybVJlZi5jdXJyZW50LnJlc2V0RmllbGRzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgc2hvd0Zvcm0odmFsdWU/OiBhbnksIG9wdGlvbjogYW55ID0ge30pIHtcclxuICAgIHRoaXMuc2V0U3RhdGUoXHJcbiAgICAgIHtcclxuICAgICAgICBmb3JtVmlzaWJsZTogdHJ1ZSxcclxuICAgICAgICBpc0NoYW5nZTogZmFsc2UsXHJcbiAgICAgIH0sXHJcbiAgICAgICgpID0+IHtcclxuICAgICAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8uc2V0RmllbGRzVmFsdWUodmFsdWUpO1xyXG4gICAgICAgIGNvbnN0IHsgYWZ0ZXJSZW5kZXIgfSA9IG9wdGlvbjtcclxuICAgICAgICB1dGlscy5jYWxsYmFjayhhZnRlclJlbmRlciwgdGhpcyk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBjbG9uZUVsZW1lbnQoaXRlbSwgaW5kZXggPSAwKSB7XHJcbiAgICBsZXQgX3RoaXMgPSB0aGlzO1xyXG4gICAgaWYgKHR5cGVvZiBpdGVtID09IFwic3RyaW5nXCIpIHJldHVybiBpdGVtO1xyXG4gICAgbGV0IHByb3BzID0ge30gYXMgeyBrZXk6IG51bWJlcjsgY2hpbGRyZW46IGFueSB9O1xyXG4gICAgcHJvcHMua2V5ID0gaW5kZXg7XHJcbiAgICB0cnkge1xyXG4gICAgICBpZiAoaXRlbS5wcm9wcyAmJiBpdGVtLnByb3BzLmNoaWxkcmVuKSB7XHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoaXRlbS5wcm9wcy5jaGlsZHJlbikpIHtcclxuICAgICAgICAgIHByb3BzLmNoaWxkcmVuID0gUmVhY3QuQ2hpbGRyZW4ubWFwKFxyXG4gICAgICAgICAgICBpdGVtLnByb3BzLmNoaWxkcmVuLFxyXG4gICAgICAgICAgICBmdW5jdGlvbiAoY2hpbGQsIGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIF90aGlzLmNsb25lRWxlbWVudChjaGlsZCwgaW5kZXgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBwcm9wcy5jaGlsZHJlbiA9IHRoaXMuY2xvbmVFbGVtZW50KGl0ZW0ucHJvcHMuY2hpbGRyZW4sIDApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gUmVhY3QuY2xvbmVFbGVtZW50KGl0ZW0sIHByb3BzKTtcclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG9uVmFsdWVzQ2hhbmdlKHZhbCwgYWxsVmFsKSB7XHJcbiAgICBjb25zdCB7IG9uVmFsdWVzQ2hhbmdlIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIGlzQ2hhbmdlOiB0cnVlLFxyXG4gICAgfSk7XHJcbiAgICBvblZhbHVlc0NoYW5nZSAmJiBvblZhbHVlc0NoYW5nZSh2YWwsIGFsbFZhbCk7XHJcbiAgfVxyXG4gIHJlbmRlclBhbmVsKG5ld0NoaWxkcmVuLCBwcm9wcykge1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBzaG93TW9kZWwsXHJcbiAgICAgIGRyYXdlclByb3BzID0ge30sXHJcbiAgICAgIG1vZGFsUHJvcHMgPSB7fSxcclxuICAgICAgbG9hZGluZyA9IGZhbHNlLFxyXG4gICAgICBjaGFuZ2VWYWxpZCA9IHRydWUsXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgZm9ybVZpc2libGUgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCBsYXlvdXQgPSB7XHJcbiAgICAgIGxhYmVsQ29sOiB7IHNwYW46IHRoaXMucHJvcHMubGF5b3V0ID09IFwidmVydGljYWxcIiA/IDI0IDogNCB9LFxyXG4gICAgICB3cmFwcGVyQ29sOiB7IHNwYW46IHRoaXMucHJvcHMubGF5b3V0ID09IFwidmVydGljYWxcIiA/IDI0IDogMjAgfSxcclxuICAgIH07XHJcbiAgICBjb25zdCBQYW5lID0gKCkgPT4ge1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIDxGb3JtXHJcbiAgICAgICAgICByZWY9e3RoaXMuZm9ybVJlZn1cclxuICAgICAgICAgIHZhbGlkYXRlVHJpZ2dlcj17W1wib25CbHVyXCIsIFwib25DaGFuZ2VcIl19XHJcbiAgICAgICAgICAvLyBkcmFnZ2FibGU9e3RydWV9XHJcbiAgICAgICAgICB7Li4ubGF5b3V0fVxyXG4gICAgICAgICAgey4uLnByb3BzfVxyXG4gICAgICAgICAgb25WYWx1ZXNDaGFuZ2U9e3RoaXMub25WYWx1ZXNDaGFuZ2UuYmluZCh0aGlzKX1cclxuICAgICAgICAgIHByZXNlcnZlPXtmYWxzZX1cclxuICAgICAgICAvPlxyXG4gICAgICApO1xyXG4gICAgfTtcclxuICAgIGlmIChzaG93TW9kZWwpIHtcclxuICAgICAgbGV0IG5ld01vZGFsUHJvcHMgPSBvbWl0KG1vZGFsUHJvcHMsIFtcInZpc2libGVcIl0pO1xyXG4gICAgICBuZXdNb2RhbFByb3BzID0geyAuLi5uZXdNb2RhbFByb3BzIH07XHJcbiAgICAgIGxldCBuZXdEcmF3ZXJQcm9wcyA9IG9taXQoZHJhd2VyUHJvcHMsIFtcInZpc2libGVcIl0pO1xyXG4gICAgICBsZXQgZGVmYXVsdHByb3BzID0ge1xyXG4gICAgICAgIG1hc2tDbG9zYWJsZTogIXRoaXMuc3RhdGUuaXNDaGFuZ2UsXHJcbiAgICAgICAgZm9ybUV4cGFuZDoge1xyXG4gICAgICAgICAgZXhwYW5kOiB0cnVlLFxyXG4gICAgICAgICAgdmFsaWQ6IGNoYW5nZVZhbGlkLFxyXG4gICAgICAgICAgY2hhbmdlOiB0aGlzLnN0YXRlLmlzQ2hhbmdlLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHlwZTogc2hvd01vZGVsLFxyXG4gICAgICB9IGFzIGFueTtcclxuICAgICAgbGV0IG1vZGFscHJvcHMgPSB7IC4uLmRlZmF1bHRwcm9wcyB9O1xyXG4gICAgICBtb2RhbHByb3BzID0ge1xyXG4gICAgICAgIC4uLmRlZmF1bHRwcm9wcyxcclxuICAgICAgICAuLi5uZXdNb2RhbFByb3BzLFxyXG4gICAgICAgIC4uLm5ld0RyYXdlclByb3BzLFxyXG4gICAgICAgIG9uQ2FuY2VsOiB0aGlzLmhpZGUuYmluZCh0aGlzKSxcclxuICAgICAgICAvLyBvbkNsb3NlOiB0aGlzLmhpZGUuYmluZCh0aGlzKSxcclxuICAgICAgfTtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICA8TW9kYWwgb3Blbj17Zm9ybVZpc2libGV9IHsuLi5tb2RhbHByb3BzfT5cclxuICAgICAgICAgIHtsb2FkaW5nID8gPFNwaW4gc3Bpbm5pbmc9e2xvYWRpbmd9PntQYW5lKCl9PC9TcGluPiA6IFBhbmUoKX1cclxuICAgICAgICA8L01vZGFsPlxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIDw+e2xvYWRpbmcgPyA8U3BpbiBzcGlubmluZz17bG9hZGluZ30+e1BhbmUoKX08L1NwaW4+IDogUGFuZSgpfTwvPjtcclxuICAgIH1cclxuICB9XHJcbiAgcmVuZGVyKCkge1xyXG4gICAgY29uc3QgcHJvcHMgPSBvbWl0KHRoaXMucHJvcHMsIFtcclxuICAgICAgXCJmb3JtXCIsXHJcbiAgICAgIFwic2hvd01vZGVsXCIsXHJcbiAgICAgIFwibW9kYWxQcm9wc1wiLFxyXG4gICAgICBcImRyYXdlclByb3BzXCIsXHJcbiAgICAgIFwidXJsXCIsXHJcbiAgICAgIFwiZW5jcnlwdEZpZWxkc1wiLFxyXG4gICAgICBcImNoYW5nZVZhbGlkXCIsXHJcbiAgICBdKTtcclxuICAgIHJldHVybiA8Pnt0aGlzLnJlbmRlclBhbmVsKHByb3BzLmNoaWxkcmVuLCBwcm9wcyl9PC8+O1xyXG4gIH1cclxufVxyXG5leHBvcnQgZGVmYXVsdCBOc2NGb3JtO1xyXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU9BLEtBQUssSUFBSUMsYUFBYSxRQUFRLE9BQU87QUFFNUMsT0FBT0MsS0FBSyxNQUFNLFVBQVU7QUFFNUIsU0FBU0MsT0FBTyxRQUFRLHVCQUF1QjtBQUMvQyxPQUFPQyxJQUFJLE1BQU0sU0FBUztBQUUxQixPQUFPQyxJQUFJLE1BQU0sU0FBUztBQUMxQixTQUFTQyxLQUFLLFFBQVEsdUJBQXVCO0FBZTdDLE1BQU1DLE9BQU8sU0FBU04sYUFBYSxDQUFhO0VBdUI5Q08sV0FBV0EsQ0FBQ0MsS0FBSyxFQUFFO0lBQ2pCLEtBQUssQ0FBQ0EsS0FBSyxDQUFDO0lBQUNDLGVBQUEsK0JBdkJMVixLQUFLLENBQUNXLFNBQVMsQ0FBZSxDQUFDO0lBQUFELGVBQUEsZ0JBQ2pDO01BQ05FLFdBQVcsRUFBRSxL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
|
|
366
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJNb2RhbCIsInJlcXVlc3QiLCJ1dGlscyIsIm9taXQiLCJTcGluIiwiY29uZmlnIiwiZ2V0TG9jYWxTdG9yZSIsIk5zY0Zvcm0iLCJjb25zdHJ1Y3RvciIsInByb3BzIiwiX2RlZmluZVByb3BlcnR5IiwiY3JlYXRlUmVmIiwiZm9ybVZpc2libGUiLCJmb3JtTW9kYWxQcm9wcyIsImZvcm1EcmF3ZXJQcm9wcyIsImlzQ2hhbmdlIiwiZXhwYW5kIiwic2NvcGUiLCJwYXJhbXMiLCJiZWZvcmVSZW5kZXIiLCJjYWxsYmFja0JlZm9yZUNsb3NlIiwiY2FsbGJhY2siLCJhZnRlclJlbmRlciIsImdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyIsIm5leHRQcm9wcyIsInByZXZTdGF0ZSIsIm1vZGFsUHJvcHMiLCJkcmF3ZXJQcm9wcyIsInNob3dNb2RlbCIsIk9iamVjdCIsImlzIiwibmV3U3RhdGUiLCJ2aXNpYmxlIiwidW5kZWZpbmVkIiwiZ2V0RmllbGRFcnJvciIsIm5hbWUiLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQiLCJmb3JtUmVmIiwiY3VycmVudCIsImdldEZpZWxkSW5zdGFuY2UiLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQyIiwiZ2V0RmllbGRzRXJyb3IiLCJnZXRGaWVsZHNWYWx1ZSIsIl90aGlzJGZvcm1SZWYiLCJnZXRGaWVsZFZhbHVlIiwiaXNGaWVsZHNUb3VjaGVkIiwiaXNGaWVsZFRvdWNoZWQiLCJpc0ZpZWxkVmFsaWRhdGluZyIsInJlc2V0RmllbGRzIiwic2Nyb2xsVG9GaWVsZCIsIm9wdGlvbnMiLCJzZXRGaWVsZHMiLCJmaWxkcyIsInNldEZpZWxkc1ZhbHVlIiwidmFsdWVzIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50MyIsInN1Ym1pdCIsIm9uU3VibWl0IiwidXJsIiwibXNnIiwicHJvcHNVcmwiLCJlbmNyeXB0RmllbGRzIiwiZW5jcnlwdFByb3BwcyIsIkVycm9yIiwibWV0aG9kIiwicmVxdWVzdFVybCIsInJlcXVlc3REYXRhIiwicmVxdWVzdEVuY3J5cHQiLCJyZXF1ZXN0UGFyYW0iLCJkYXRhIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwiX2V4Y2x1ZGVkIiwiX29iamVjdFNwcmVhZCIsInRvTG93ZXJDYXNlIiwiYXV0b1ByZWZpeCIsInRoZW4iLCJyZXMiLCJjb2RlIiwiX21lc3NhZ2UiLCJzdWNjZXNzIiwiZXJyb3IiLCJjYXRjaCIsImNvbnNvbGUiLCJsb2ciLCJ2YWxpZGF0ZUZpZWxkcyIsImhpZGUiLCJlIiwiX3RoaXMiLCJvbkNhbmNlbCIsIm9uQ2xvc2UiLCJoaWRlRm9ybSIsInJlc2V0VmFsdWUiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJzZXRTdGF0ZSIsInNob3dGb3JtIiwidmFsdWUiLCJvcHRpb24iLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQ0IiwiY2xvbmVFbGVtZW50IiwiaXRlbSIsImluZGV4Iiwia2V5IiwiY2hpbGRyZW4iLCJBcnJheSIsImlzQXJyYXkiLCJDaGlsZHJlbiIsIm1hcCIsImNoaWxkIiwib25WYWx1ZXNDaGFuZ2UiLCJ2YWwiLCJhbGxWYWwiLCJyZW5kZXJQYW5lbCIsIm5ld0NoaWxkcmVuIiwibG9hZGluZyIsImNoYW5nZVZhbGlkIiwic3RhdGUiLCJsYXlvdXQiLCJsYWJlbENvbCIsInNwYW4iLCJ3cmFwcGVyQ29sIiwiUGFuZSIsImNyZWF0ZUVsZW1lbnQiLCJfRm9ybSIsIl9leHRlbmRzIiwicmVmIiwidmFsaWRhdGVUcmlnZ2VyIiwiYmluZCIsInByZXNlcnZlIiwic3RvcmVQcmVmaXgiLCJhdXRvVHlwZSIsIm5ld01vZGFsUHJvcHMiLCJuZXdEcmF3ZXJQcm9wcyIsImRlZmF1bHRwcm9wcyIsIm1hc2tDbG9zYWJsZSIsImZvcm1FeHBhbmQiLCJ2YWxpZCIsImNoYW5nZSIsInR5cGUiLCJtb2RhbHByb3BzIiwibmV3UHJvcHMiLCJvcGVuIiwic3Bpbm5pbmciLCJGcmFnbWVudCIsInJlbmRlciJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Jhc2UvZm9ybS9Gb3JtLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBARGVzY3JpcHR0aW9uOuihqOWNlee7hOS7tlxyXG4gKiBAdmVyc2lvbjpcclxuICogQEF1dGhvcjogcnh6aHVcclxuICogQERhdGU6IDIwMjEtMDQtMDkgMDk6MTg6MzRcclxuICogQExhc3RFZGl0b3JzOiByeHpodVxyXG4gKiBATGFzdEVkaXRUaW1lOiAyMDIxLTA0LTIzIDE1OjIzOjU0XHJcbiAqL1xyXG5pbXBvcnQgUmVhY3QsIHsgUHVyZUNvbXBvbmVudCB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBGb3JtLCBGb3JtUHJvcHMsIERyYXdlciwgRHJhd2VyUHJvcHMsIG1lc3NhZ2UgfSBmcm9tIFwiYW50ZFwiO1xyXG5pbXBvcnQgTW9kYWwgZnJvbSBcIi4uL21vZGFsXCI7XHJcbmltcG9ydCB7IEZvcm1JbnN0YW5jZSB9IGZyb20gXCJhbnRkL2xpYi9mb3JtXCI7XHJcbmltcG9ydCB7IHJlcXVlc3QgLHV0aWxzfSBmcm9tIFwiQGJqLW5zYy9tc24vbGliL3V0aWxzXCI7XHJcbmltcG9ydCBvbWl0IGZyb20gXCJvbWl0LmpzXCI7XHJcbmltcG9ydCB7IE5zY01vZGFsUG9ycHMgfSBmcm9tIFwiLi4vbW9kYWxcIjtcclxuaW1wb3J0IFNwaW4gZnJvbSBcIi4uL3NwaW5cIjtcclxuaW1wb3J0IGNvbmZpZyBmcm9tIFwiLi4vLi4vY29uZmlnXCI7XHJcbmltcG9ydCB7Z2V0TG9jYWxTdG9yZX0gZnJvbSAnQGJqLW5zYy9mdW5jdGlvbnMnXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUZvcm1Qcm9wcyBleHRlbmRzIEZvcm1Qcm9wcyB7XHJcbiAgc2hvd01vZGVsPzogXCJtb2RhbFwiIHwgXCJkcmF3ZXJcIiB8IFwiYXV0b1wiO1xyXG4gIG1vZGFsUHJvcHM/OiBOc2NNb2RhbFBvcnBzO1xyXG4gIGRyYXdlclByb3BzPzogRHJhd2VyUHJvcHMgJiB7XHJcbiAgICBvbk9rPzogYW55O1xyXG4gICAgb2tCdXR0b25Qcm9wcz86IE9iamVjdDtcclxuICAgIGZvcm1FeHBhbmQ/OiBPYmplY3Q7XHJcbiAgfTtcclxuICB1cmw/OiBzdHJpbmc7XHJcbiAgZW5jcnlwdEZpZWxkcz86IEFycmF5PFN0cmluZz47XHJcbiAgY2hhbmdlVmFsaWQ/OiBib29sZWFuOyAvL+aVsOaNruS/ruaUueWFs+mXreagoemqjFxyXG4gIGxvYWRpbmc/OiBib29sZWFuOyAvL+ihqOWNleWKoOi9veeKtuaAgVxyXG59XHJcblxyXG5jbGFzcyBOc2NGb3JtIGV4dGVuZHMgUHVyZUNvbXBvbmVudDxJRm9ybVByb3BzPiB7XHJcbiAgZm9ybVJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxGb3JtSW5zdGFuY2U+KCk7XHJcbiAgc3RhdGUgPSB7XHJcbiAgICBmb3JtVmlzaWJsZTogZmFsc2UsXHJcbiAgICBmb3JtTW9kYWxQcm9wczoge30sXHJcbiAgICBmb3JtRHJhd2VyUHJvcHM6IHt9LFxyXG4gICAgaXNDaGFuZ2U6IGZhbHNlLFxyXG4gICAgZXhwYW5kOiBmYWxzZSxcclxuICB9O1xyXG4gIG9wdGlvbjogYW55ID0ge1xyXG4gICAgLy/lm57osIPkvZznlKjln59cclxuICAgIHNjb3BlOiB0aGlzLFxyXG4gICAgLy9vcGVu5Lyg6YCS6L+H5p2l55qE6aG16Z2i5Y+C5pWwXHJcbiAgICBwYXJhbXM6IHt9LFxyXG4gICAgLy/mmL7npLrkuYvliY3lm57osINcclxuICAgIGJlZm9yZVJlbmRlcjogbnVsbCxcclxuICAgIC8v5YWz6Zet5LmL5YmN5Zue6LCD77yM5aaC5p6ccmV0dXJuIGZhbHNl77yM5LiU56qX5Y+j5LiN5YWz6ZetXHJcbiAgICBjYWxsYmFja0JlZm9yZUNsb3NlOiBudWxsLFxyXG4gICAgLy/lhbPpl63lkI7lm57osIPvvIzlvILmraXmk43kvZxcclxuICAgIGNhbGxiYWNrOiBudWxsLFxyXG4gICAgLy/mmL7npLrkuYvlkI7lm57osINcclxuICAgIGFmdGVyUmVuZGVyOiBudWxsLFxyXG4gIH07XHJcbiAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgIHN1cGVyKHByb3BzKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMobmV4dFByb3BzLCBwcmV2U3RhdGUpIHtcclxuICAgIGNvbnN0IHsgbW9kYWxQcm9wcywgZHJhd2VyUHJvcHMsIHNob3dNb2RlbCB9ID0gbmV4dFByb3BzO1xyXG4gICAgY29uc3QgeyBmb3JtTW9kYWxQcm9wcywgZm9ybURyYXdlclByb3BzIH0gPSBwcmV2U3RhdGU7XHJcbiAgICBpZiAoc2hvd01vZGVsID09IFwibW9kYWxcIikge1xyXG4gICAgICAvLyBKU09OLnN0cmluZ2lmeShmb3JtTW9kYWxQcm9wcykgIT09IEpTT04uc3RyaW5naWZ5KG1vZGFsUHJvcHMpXHJcbiAgICAgIGlmICghT2JqZWN0LmlzKGZvcm1Nb2RhbFByb3BzLCBtb2RhbFByb3BzKSkge1xyXG4gICAgICAgIGxldCBuZXdTdGF0ZSA9IHtcclxuICAgICAgICAgIGZvcm1EcmF3ZXJQcm9wczogbW9kYWxQcm9wcyxcclxuICAgICAgICB9IGFzIGFueTtcclxuICAgICAgICBpZiAobW9kYWxQcm9wcy52aXNpYmxlICE9PSBudWxsICYmIG1vZGFsUHJvcHMudmlzaWJsZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICBuZXdTdGF0ZS5mb3JtVmlzaWJsZSA9IG1vZGFsUHJvcHMudmlzaWJsZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG5ld1N0YXRlO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKHNob3dNb2RlbCA9PSBcImRyYXdlclwiKSB7XHJcbiAgICAgIC8vIEpTT04uc3RyaW5naWZ5KGZvcm1EcmF3ZXJQcm9wcykgIT09IEpTT04uc3RyaW5naWZ5KGRyYXdlclByb3BzKVxyXG4gICAgICBpZiAoIU9iamVjdC5pcyhmb3JtRHJhd2VyUHJvcHMsIGRyYXdlclByb3BzKSkge1xyXG4gICAgICAgIGxldCBuZXdTdGF0ZSA9IHtcclxuICAgICAgICAgIGZvcm1EcmF3ZXJQcm9wczogZHJhd2VyUHJvcHMsXHJcbiAgICAgICAgfSBhcyBhbnk7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgZHJhd2VyUHJvcHM/LnZpc2libGUgIT09IG51bGwgJiZcclxuICAgICAgICAgIGRyYXdlclByb3BzPy52aXNpYmxlICE9PSB1bmRlZmluZWRcclxuICAgICAgICApIHtcclxuICAgICAgICAgIG5ld1N0YXRlLmZvcm1WaXNpYmxlID0gZHJhd2VyUHJvcHMudmlzaWJsZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG5ld1N0YXRlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIC8v6I635Y+W5a+55bqU5a2X5q615ZCN55qE6ZSZ6K+v5L+h5oGvXHJcbiAgZ2V0RmllbGRFcnJvcihuYW1lKSB7XHJcbiAgICByZXR1cm4gdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LmdldEZpZWxkRXJyb3IobmFtZSk7XHJcbiAgfVxyXG5cclxuICAvL+iOt+WPluWvueW6lOWtl+auteWunuS+i1xyXG4gIGdldEZpZWxkSW5zdGFuY2UobmFtZSkge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9ybVJlZi5jdXJyZW50Py5nZXRGaWVsZEluc3RhbmNlKG5hbWUpO1xyXG4gIH1cclxuXHJcbiAgLy/ojrflj5bkuIDnu4TlrZfmrrXlkI3lr7nlupTnmoTplJnor6/kv6Hmga/vvIzov5Tlm57kuLrmlbDnu4TlvaLlvI9cclxuICBnZXRGaWVsZHNFcnJvcigpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1SZWYuY3VycmVudC5nZXRGaWVsZHNFcnJvcigpO1xyXG4gIH1cclxuXHJcbiAgLy/ojrflj5bkuIDnu4TlrZfmrrXlkI3lr7nlupTnmoTlgLzvvIzkvJrmjInnhaflr7nlupTnu5PmnoTov5Tlm55cclxuICBnZXRGaWVsZHNWYWx1ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1SZWY/LmN1cnJlbnQ/LmdldEZpZWxkc1ZhbHVlKCk7XHJcbiAgfVxyXG5cclxuICAvL+iOt+WPluWvueW6lOWtl+auteWQjeeahOWAvFxyXG4gIGdldEZpZWxkVmFsdWUobmFtZSkge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9ybVJlZi5jdXJyZW50LmdldEZpZWxkVmFsdWUobmFtZSk7XHJcbiAgfVxyXG5cclxuICAvL+ajgOafpeS4gOe7hOWtl+auteaYr+WQpuiiq+eUqOaIt+aTjeS9nOi/h1xyXG4gIGlzRmllbGRzVG91Y2hlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1SZWYuY3VycmVudC5pc0ZpZWxkc1RvdWNoZWQoKTtcclxuICB9XHJcblxyXG4gIC8v5qOA5p+l5a+55bqU5a2X5q615piv5ZCm6KKr55So5oi35pON5L2c6L+HXHJcbiAgaXNGaWVsZFRvdWNoZWQobmFtZSkge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9ybVJlZi5jdXJyZW50LmlzRmllbGRUb3VjaGVkKG5hbWUpO1xyXG4gIH1cclxuXHJcbiAgLy/mo4Dmn6XkuIDnu4TlrZfmrrXmmK/lkKbmraPlnKjmoKHpqoxcclxuICBpc0ZpZWxkVmFsaWRhdGluZyhuYW1lKSB7XHJcbiAgICByZXR1cm4gdGhpcy5mb3JtUmVmLmN1cnJlbnQuaXNGaWVsZFZhbGlkYXRpbmcobmFtZSk7XHJcbiAgfVxyXG5cclxuICAvL+mHjee9ruS4gOe7hOWtl+auteWIsFxyXG4gIHJlc2V0RmllbGRzKCkge1xyXG4gICAgdGhpcy5mb3JtUmVmLmN1cnJlbnQucmVzZXRGaWVsZHMoKTtcclxuICB9XHJcblxyXG4gIHNjcm9sbFRvRmllbGQobmFtZSwgb3B0aW9ucykge1xyXG4gICAgdGhpcy5mb3JtUmVmLmN1cnJlbnQuc2Nyb2xsVG9GaWVsZChuYW1lLCBvcHRpb25zKTtcclxuICB9XHJcblxyXG4gIHNldEZpZWxkcyhmaWxkcykge1xyXG4gICAgdGhpcy5mb3JtUmVmLmN1cnJlbnQuc2V0RmllbGRzKGZpbGRzKTtcclxuICB9XHJcblxyXG4gIHNldEZpZWxkc1ZhbHVlKHZhbHVlcykge1xyXG4gICAgdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LnNldEZpZWxkc1ZhbHVlKHZhbHVlcyk7XHJcbiAgfVxyXG5cclxuICBzdWJtaXQoKSB7XHJcbiAgICB0aGlzLmZvcm1SZWYuY3VycmVudC5zdWJtaXQoKTtcclxuICB9XHJcblxyXG4gIG9uU3VibWl0KFxyXG4gICAgdXJsPzogc3RyaW5nLFxyXG4gICAgb3B0aW9ucz86IGFueSxcclxuICAgIGNhbGxiYWNrPzogKHJlcz86IGFueSkgPT4gdm9pZCxcclxuICAgIG1zZz86IGJvb2xlYW5cclxuICApIHtcclxuICAgIGNvbnN0IHsgdXJsOiBwcm9wc1VybCwgZW5jcnlwdEZpZWxkczogZW5jcnlwdFByb3BwcyA9IFtdIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgaWYgKCF1cmwgJiYgIXByb3BzVXJsKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIuayoeacieS4iuS8oOeahHVybCFcIik7XHJcbiAgICB9XHJcbiAgICBjb25zdCB7IG1ldGhvZCA9IFwicG9zdFwiIH0gPSBvcHRpb25zO1xyXG4gICAgbGV0IHJlcXVlc3RVcmwgPSB1cmwgPyB1cmwgOiBwcm9wc1VybDtcclxuICAgIGxldCByZXF1ZXN0RGF0YSA9IHRoaXMuZm9ybVJlZi5jdXJyZW50LmdldEZpZWxkc1ZhbHVlKCk7XHJcbiAgICBsZXQgcmVxdWVzdEVuY3J5cHQgPSBlbmNyeXB0UHJvcHBzO1xyXG4gICAgbGV0IHJlcXVlc3RQYXJhbSA9IHsgbWV0aG9kOiBtZXRob2QsIGRhdGE6IHJlcXVlc3REYXRhIH0gYXMgeyBkYXRhOiBhbnkgfTtcclxuICAgIGlmIChvcHRpb25zKSB7XHJcbiAgICAgIGNvbnN0IHsgZGF0YSwgZW5jcnlwdEZpZWxkcywgLi4ucGFyYW1zIH0gPSBvcHRpb25zO1xyXG4gICAgICByZXF1ZXN0UGFyYW0gPSB7IC4uLnJlcXVlc3RQYXJhbSwgLi4ucGFyYW1zIH07XHJcbiAgICAgIGlmIChkYXRhKSB7XHJcbiAgICAgICAgZGVsZXRlIHJlcXVlc3RQYXJhbS5kYXRhO1xyXG4gICAgICAgIGlmIChtZXRob2QudG9Mb3dlckNhc2UoKSA9PSBcImdldFwiKSB7XHJcbiAgICAgICAgICByZXF1ZXN0UGFyYW0gPSB7IC4uLnJlcXVlc3RQYXJhbSwgLi4ucGFyYW1zLCBwYXJhbXM6IGRhdGEgfTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmVxdWVzdFBhcmFtID0geyAuLi5yZXF1ZXN0UGFyYW0sIC4uLnBhcmFtcywgZGF0YTogZGF0YSB9O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoZW5jcnlwdEZpZWxkcykge1xyXG4gICAgICAgIHJlcXVlc3RFbmNyeXB0ID0gZW5jcnlwdEZpZWxkcztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJlcXVlc3QocmVxdWVzdFVybCwge1xyXG4gICAgICBhdXRvUHJlZml4OiB0cnVlLFxyXG4gICAgICAuLi5yZXF1ZXN0UGFyYW0sXHJcbiAgICAgIGVuY3J5cHRGaWVsZHM6IHJlcXVlc3RFbmNyeXB0LFxyXG4gICAgfSlcclxuICAgICAgLnRoZW4oZnVuY3Rpb24gKHJlczogYW55KSB7XHJcbiAgICAgICAgY29uc3QgeyBjb2RlIH0gPSByZXM7XHJcbiAgICAgICAgaWYgKG1zZykge1xyXG4gICAgICAgICAgaWYgKGNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICBtZXNzYWdlLnN1Y2Nlc3MoXCLmj5DkuqTmiJDlip9cIik7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBtZXNzYWdlLmVycm9yKFwi5o+Q5Lqk5aSx6LSlXCIpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBjYWxsYmFjayAmJiBjYWxsYmFjayhyZXMpO1xyXG4gICAgICB9KVxyXG4gICAgICAuY2F0Y2goZnVuY3Rpb24gKGVycm9yOiBhbnkpIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcImVycm9yXCIsIGVycm9yKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZUZpZWxkcyhuYW1lKSB7XHJcbiAgICByZXR1cm4gdGhpcy5mb3JtUmVmLmN1cnJlbnQudmFsaWRhdGVGaWVsZHMobmFtZSk7XHJcbiAgfVxyXG5cclxuICBoaWRlKGUpIHtcclxuICAgIGNvbnN0IHsgc2hvd01vZGVsLCBtb2RhbFByb3BzID0ge30sIGRyYXdlclByb3BzID0ge30gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBsZXQgX3RoaXMgPSB0aGlzO1xyXG4gICAgY29uc3QgeyBvbkNhbmNlbCB9ID0gbW9kYWxQcm9wcztcclxuICAgIGNvbnN0IHsgb25DbG9zZSB9ID0gZHJhd2VyUHJvcHM7XHJcbiAgICBpZiAoc2hvd01vZGVsID09IFwiZHJhd2VyXCIgJiYgb25DbG9zZSkge1xyXG4gICAgICBvbkNsb3NlKGUpO1xyXG4gICAgfSBlbHNlIGlmIChzaG93TW9kZWwgPT0gXCJtb2RhbFwiICYmIG9uQ2FuY2VsKSB7XHJcbiAgICAgIG9uQ2FuY2VsKGUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgX3RoaXMuaGlkZUZvcm0oKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhpZGVGb3JtKHJlc2V0VmFsdWUgPSB0cnVlKSB7XHJcbiAgICB0aGlzLnNldFN0YXRlKFxyXG4gICAgICB7XHJcbiAgICAgICAgZm9ybVZpc2libGU6IGZhbHNlLFxyXG4gICAgICAgIGlzQ2hhbmdlOiBmYWxzZSxcclxuICAgICAgfSxcclxuICAgICAgKCkgPT4ge1xyXG4gICAgICAgIGlmIChyZXNldFZhbHVlKSB7XHJcbiAgICAgICAgICB0aGlzLmZvcm1SZWYuY3VycmVudC5yZXNldEZpZWxkcygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHNob3dGb3JtKHZhbHVlPzogYW55LCBvcHRpb246IGFueSA9IHt9KSB7XHJcbiAgICB0aGlzLnNldFN0YXRlKFxyXG4gICAgICB7XHJcbiAgICAgICAgZm9ybVZpc2libGU6IHRydWUsXHJcbiAgICAgICAgaXNDaGFuZ2U6IGZhbHNlLFxyXG4gICAgICB9LFxyXG4gICAgICAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LnNldEZpZWxkc1ZhbHVlKHZhbHVlKTtcclxuICAgICAgICBjb25zdCB7IGFmdGVyUmVuZGVyIH0gPSBvcHRpb247XHJcbiAgICAgICAgdXRpbHMuY2FsbGJhY2soYWZ0ZXJSZW5kZXIsIHRoaXMpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgY2xvbmVFbGVtZW50KGl0ZW0sIGluZGV4ID0gMCkge1xyXG4gICAgbGV0IF90aGlzID0gdGhpcztcclxuICAgIGlmICh0eXBlb2YgaXRlbSA9PSBcInN0cmluZ1wiKSByZXR1cm4gaXRlbTtcclxuICAgIGxldCBwcm9wcyA9IHt9IGFzIHsga2V5OiBudW1iZXI7IGNoaWxkcmVuOiBhbnkgfTtcclxuICAgIHByb3BzLmtleSA9IGluZGV4O1xyXG4gICAgdHJ5IHtcclxuICAgICAgaWYgKGl0ZW0ucHJvcHMgJiYgaXRlbS5wcm9wcy5jaGlsZHJlbikge1xyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGl0ZW0ucHJvcHMuY2hpbGRyZW4pKSB7XHJcbiAgICAgICAgICBwcm9wcy5jaGlsZHJlbiA9IFJlYWN0LkNoaWxkcmVuLm1hcChcclxuICAgICAgICAgICAgaXRlbS5wcm9wcy5jaGlsZHJlbixcclxuICAgICAgICAgICAgZnVuY3Rpb24gKGNoaWxkLCBpbmRleCkge1xyXG4gICAgICAgICAgICAgIHJldHVybiBfdGhpcy5jbG9uZUVsZW1lbnQoY2hpbGQsIGluZGV4KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcHJvcHMuY2hpbGRyZW4gPSB0aGlzLmNsb25lRWxlbWVudChpdGVtLnByb3BzLmNoaWxkcmVuLCAwKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIFJlYWN0LmNsb25lRWxlbWVudChpdGVtLCBwcm9wcyk7XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuICBvblZhbHVlc0NoYW5nZSh2YWwsIGFsbFZhbCkge1xyXG4gICAgY29uc3QgeyBvblZhbHVlc0NoYW5nZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBpc0NoYW5nZTogdHJ1ZSxcclxuICAgIH0pO1xyXG4gICAgb25WYWx1ZXNDaGFuZ2UgJiYgb25WYWx1ZXNDaGFuZ2UodmFsLCBhbGxWYWwpO1xyXG4gIH1cclxuICByZW5kZXJQYW5lbChuZXdDaGlsZHJlbiwgcHJvcHMpIHtcclxuICAgIGNvbnN0IHtcclxuICAgICAgc2hvd01vZGVsLFxyXG4gICAgICBkcmF3ZXJQcm9wcyA9IHt9LFxyXG4gICAgICBtb2RhbFByb3BzID0ge30sXHJcbiAgICAgIGxvYWRpbmcgPSBmYWxzZSxcclxuICAgICAgY2hhbmdlVmFsaWQgPSB0cnVlLFxyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IGZvcm1WaXNpYmxlIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgbGF5b3V0ID0ge1xyXG4gICAgICBsYWJlbENvbDogeyBzcGFuOiB0aGlzLnByb3BzLmxheW91dCA9PSBcInZlcnRpY2FsXCIgPyAyNCA6IDQgfSxcclxuICAgICAgd3JhcHBlckNvbDogeyBzcGFuOiB0aGlzLnByb3BzLmxheW91dCA9PSBcInZlcnRpY2FsXCIgPyAyNCA6IDIwIH0sXHJcbiAgICB9O1xyXG4gICAgY29uc3QgUGFuZSA9ICgpID0+IHtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICA8Rm9ybVxyXG4gICAgICAgICAgcmVmPXt0aGlzLmZvcm1SZWZ9XHJcbiAgICAgICAgICB2YWxpZGF0ZVRyaWdnZXI9e1tcIm9uQmx1clwiLCBcIm9uQ2hhbmdlXCJdfVxyXG4gICAgICAgICAgLy8gZHJhZ2dhYmxlPXt0cnVlfVxyXG4gICAgICAgICAgey4uLmxheW91dH1cclxuICAgICAgICAgIHsuLi5wcm9wc31cclxuICAgICAgICAgIG9uVmFsdWVzQ2hhbmdlPXt0aGlzLm9uVmFsdWVzQ2hhbmdlLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICBwcmVzZXJ2ZT17ZmFsc2V9XHJcbiAgICAgICAgLz5cclxuICAgICAgKTtcclxuICAgIH07XHJcbiAgICBpZiAoc2hvd01vZGVsKSB7XHJcbiAgICAgIGNvbnN0IHsgc2hvd01vZGVsIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgICBjb25zdCB7IHN0b3JlUHJlZml4IH0gPSBjb25maWcoKTtcclxuICAgICAgbGV0IGF1dG9UeXBlID0gZ2V0TG9jYWxTdG9yZShcclxuICAgICAgICBcImZvcm1UeXBlXCIsXHJcbiAgICAgICAgc3RvcmVQcmVmaXggPyBzdG9yZVByZWZpeCA6IFwibnNjLWhvbWVcIlxyXG4gICAgICApO1xyXG4gICAgICBhdXRvVHlwZSA9IGF1dG9UeXBlID8gYXV0b1R5cGUgOiBudWxsO1xyXG4gICAgICBsZXQgbmV3TW9kYWxQcm9wcyA9IG9taXQobW9kYWxQcm9wcywgW1widmlzaWJsZVwiXSk7XHJcbiAgICAgIGxldCBuZXdEcmF3ZXJQcm9wcyA9IG9taXQoZHJhd2VyUHJvcHMsIFtcInZpc2libGVcIl0pO1xyXG4gICAgICBsZXQgZGVmYXVsdHByb3BzID0ge1xyXG4gICAgICAgIG1hc2tDbG9zYWJsZTogIXRoaXMuc3RhdGUuaXNDaGFuZ2UsXHJcbiAgICAgICAgZm9ybUV4cGFuZDoge1xyXG4gICAgICAgICAgZXhwYW5kOiB0cnVlLFxyXG4gICAgICAgICAgdmFsaWQ6IGNoYW5nZVZhbGlkLFxyXG4gICAgICAgICAgY2hhbmdlOiB0aGlzLnN0YXRlLmlzQ2hhbmdlLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHlwZTogc2hvd01vZGVsLFxyXG4gICAgICB9IGFzIGFueTtcclxuICAgICAgbGV0IG1vZGFscHJvcHMgPSB7IC4uLmRlZmF1bHRwcm9wcyB9O1xyXG4gICAgICBsZXQgbmV3UHJvcHMgPSB7fSBhcyBhbnk7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBzaG93TW9kZWwgPT0gXCJkcmF3ZXJcIiB8fFxyXG4gICAgICAgIChzaG93TW9kZWwgPT0gXCJhdXRvXCIgJiYgYXV0b1R5cGUgPT0gXCJkcmF3ZXJcIilcclxuICAgICAgKSB7XHJcbiAgICAgICAgbmV3UHJvcHMgPSB7IC4uLm5ld01vZGFsUHJvcHMsIC4uLm5ld0RyYXdlclByb3BzIH07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbmV3UHJvcHMgPSB7IC4uLm5ld0RyYXdlclByb3BzLCAuLi5uZXdNb2RhbFByb3BzIH07XHJcbiAgICAgIH1cclxuICAgICAgbW9kYWxwcm9wcyA9IHtcclxuICAgICAgICAuLi5kZWZhdWx0cHJvcHMsXHJcbiAgICAgICAgLi4ubmV3TW9kYWxQcm9wcyxcclxuICAgICAgLi4ubmV3RHJhd2VyUHJvcHMsXHJcbiAgICAgICAgLi4ubmV3UHJvcHMsXHJcbiAgICAgICAgb25DYW5jZWw6IHRoaXMuaGlkZS5iaW5kKHRoaXMpLFxyXG4gICAgICAgIC8vIG9uQ2xvc2U6IHRoaXMuaGlkZS5iaW5kKHRoaXMpLFxyXG4gICAgICB9O1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIDxNb2RhbCBvcGVuPXtmb3JtVmlzaWJsZX0gey4uLm1vZGFscHJvcHN9PlxyXG4gICAgICAgICAge2xvYWRpbmcgPyA8U3BpbiBzcGlubmluZz17bG9hZGluZ30+e1BhbmUoKX08L1NwaW4+IDogUGFuZSgpfVxyXG4gICAgICAgIDwvTW9kYWw+XHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gPD57bG9hZGluZyA/IDxTcGluIHNwaW5uaW5nPXtsb2FkaW5nfT57UGFuZSgpfTwvU3Bpbj4gOiBQYW5lKCl9PC8+O1xyXG4gICAgfVxyXG4gIH1cclxuICByZW5kZXIoKSB7XHJcbiAgICBjb25zdCBwcm9wcyA9IG9taXQodGhpcy5wcm9wcywgW1xyXG4gICAgICBcImZvcm1cIixcclxuICAgICAgXCJzaG93TW9kZWxcIixcclxuICAgICAgXCJtb2RhbFByb3BzXCIsXHJcbiAgICAgIFwiZHJhd2VyUHJvcHNcIixcclxuICAgICAgXCJ1cmxcIixcclxuICAgICAgXCJlbmNyeXB0RmllbGRzXCIsXHJcbiAgICAgIFwiY2hhbmdlVmFsaWRcIixcclxuICAgIF0pO1xyXG4gICAgcmV0dXJuIDw+e3RoaXMucmVuZGVyUGFuZWwocHJvcHMuY2hpbGRyZW4sIHByb3BzKX08Lz47XHJcbiAgfVxyXG59XHJcbmV4cG9ydCBkZWZhdWx0IE5zY0Zvcm07XHJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBT0EsS0FBSyxJQUFJQyxhQUFhLFFBQVEsT0FBTztBQUU1QyxPQUFPQyxLQUFLLE1BQU0sVUFBVTtBQUU1QixTQUFTQyxPQUFPLEVBQUVDLEtBQUssUUFBTyx1QkFBdUI7QUFDckQsT0FBT0MsSUFBSSxNQUFNLFNBQVM7QUFFMUIsT0FBT0MsSUFBSSxNQUFNLFNBQVM7QUFDMUIsT0FBT0MsTUFBTSxNQUFNLGNBQWM7QUFDakMsU0FBUUMsYUFBYSxRQUFPLG1CQUFtQjtBQWUvQyxNQUFNQyxPQUFPLFNBQVNSLGFBQWEsQ0FBYTtFQXVCOUNTLFdBQVdBLENBQUNDLEtBQUssRUFBRTtJQUNqQixLQUFLLENBQUNBLEtBQUssQ0FBQztJQUFDQyxlQUFBLCtCQXZCTFosS0FBSyxDQUFDYSxTQUFTLENBQWUsQ0FBQztJQUFBRCxlQUFBLGdCQUNqQztNQUNORSxXQUFXLEVBQUUsS0FBSztNQUNsQkMsY0FBYyxFQUFFLENBQUMsQ0FBQztNQUNsQkMsZUFBZSxFQUFFLENBQUMsQ0FBQztNQUNuQkMsUUFBUSxFQUFFLEtBQUs7TUFDZkMsTUFBTSxFQUFFO0lBQ1YsQ0FBQztJQUFBTixlQUFBLGlCQUNhO01BQ1o7TUFDQU8sS0FBSyxFQUFFLElBQUk7TUFDWDtNQUNBQyxNQUFN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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Form.js","names":["React","PureComponent","Modal","request","omit","Spin","utils","NscForm","constructor","props","_defineProperty","createRef","formVisible","formModalProps","formDrawerProps","isChange","expand","scope","params","beforeRender","callbackBeforeClose","callback","afterRender","getDerivedStateFromProps","nextProps","prevState","modalProps","drawerProps","showModel","Object","is","newState","visible","undefined","getFieldError","name","_this$formRef$current","formRef","current","getFieldInstance","_this$formRef$current2","getFieldsError","getFieldsValue","_this$formRef","getFieldValue","isFieldsTouched","isFieldTouched","isFieldValidating","resetFields","scrollToField","options","setFields","filds","setFieldsValue","values","_this$formRef$current3","submit","onSubmit","url","msg","propsUrl","encryptFields","encryptPropps","Error","method","requestUrl","requestData","requestEncrypt","requestParam","data","_objectWithoutProperties","_excluded","_objectSpread","toLowerCase","autoPrefix","then","res","code","_message","success","error","catch","console","log","validateFields","hide","e","_this","onCancel","onClose","hideForm","resetValue","arguments","length","setState","showForm","value","option","_this$formRef$current4","cloneElement","item","index","key","children","Array","isArray","Children","map","child","onValuesChange","val","allVal","renderPanel","newChildren","loading","changeValid","state","layout","labelCol","span","wrapperCol","Pane","createElement","_Form","_extends","ref","validateTrigger","bind","preserve","newModalProps","newDrawerProps","defaultprops","maskClosable","formExpand","valid","change","type","modalprops","open","spinning","Fragment","render"],"sources":["../../../src/components/base/form/Form.tsx"],"sourcesContent":["/*\r\n * @Descripttion:表单组件\r\n * @version:\r\n * @Author: rxzhu\r\n * @Date: 2021-04-09 09:18:34\r\n * @LastEditors: rxzhu\r\n * @LastEditTime: 2021-04-23 15:23:54\r\n */\r\nimport React, { PureComponent } from \"react\";\r\nimport { Form, FormProps, Drawer, DrawerProps, message } from \"antd\";\r\nimport Modal from \"../modal\";\r\nimport { FormInstance } from \"antd/lib/form\";\r\nimport { request } from \"@bj-nsc/msn/lib/utils\";\r\nimport omit from \"omit.js\";\r\nimport { NscModalPorps } from \"../modal\";\r\nimport Spin from \"../spin\";\r\nimport { utils } from \"@bj-nsc/msn/lib/utils\";\r\nexport interface IFormProps extends FormProps {\r\n showModel?: \"modal\" | \"drawer\" | \"auto\";\r\n modalProps?: NscModalPorps;\r\n drawerProps?: DrawerProps & {\r\n onOk?: any;\r\n okButtonProps?: Object;\r\n formExpand?: Object;\r\n };\r\n url?: string;\r\n encryptFields?: Array<String>;\r\n changeValid?: boolean; //数据修改关闭校验\r\n loading?: boolean; //表单加载状态\r\n}\r\n\r\nclass NscForm extends PureComponent<IFormProps> {\r\n formRef = React.createRef<FormInstance>();\r\n state = {\r\n formVisible: false,\r\n formModalProps: {},\r\n formDrawerProps: {},\r\n isChange: false,\r\n expand: false,\r\n };\r\n option: any = {\r\n //回调作用域\r\n scope: this,\r\n //open传递过来的页面参数\r\n params: {},\r\n //显示之前回调\r\n beforeRender: null,\r\n //关闭之前回调,如果return false,且窗口不关闭\r\n callbackBeforeClose: null,\r\n //关闭后回调,异步操作\r\n callback: null,\r\n //显示之后回调\r\n afterRender: null,\r\n };\r\n constructor(props) {\r\n super(props);\r\n }\r\n\r\n static getDerivedStateFromProps(nextProps, prevState) {\r\n const { modalProps, drawerProps, showModel } = nextProps;\r\n const { formModalProps, formDrawerProps } = prevState;\r\n if (showModel == \"modal\") {\r\n // JSON.stringify(formModalProps) !== JSON.stringify(modalProps)\r\n if (!Object.is(formModalProps, modalProps)) {\r\n let newState = {\r\n formDrawerProps: modalProps,\r\n } as any;\r\n if (modalProps.visible !== null && modalProps.visible !== undefined) {\r\n newState.formVisible = modalProps.visible;\r\n }\r\n return newState;\r\n }\r\n } else if (showModel == \"drawer\") {\r\n // JSON.stringify(formDrawerProps) !== JSON.stringify(drawerProps)\r\n if (!Object.is(formDrawerProps, drawerProps)) {\r\n let newState = {\r\n formDrawerProps: drawerProps,\r\n } as any;\r\n if (drawerProps?.visible !== null && drawerProps?.visible !== undefined) {\r\n newState.formVisible = drawerProps.visible;\r\n }\r\n return newState;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n //获取对应字段名的错误信息\r\n getFieldError(name) {\r\n return this.formRef.current?.getFieldError(name);\r\n }\r\n\r\n //获取对应字段实例\r\n getFieldInstance(name) {\r\n return this.formRef.current?.getFieldInstance(name);\r\n }\r\n\r\n //获取一组字段名对应的错误信息,返回为数组形式\r\n getFieldsError() {\r\n return this.formRef.current.getFieldsError();\r\n }\r\n\r\n //获取一组字段名对应的值,会按照对应结构返回\r\n getFieldsValue() {\r\n return this.formRef?.current?.getFieldsValue();\r\n }\r\n\r\n //获取对应字段名的值\r\n getFieldValue(name) {\r\n return this.formRef.current.getFieldValue(name);\r\n }\r\n\r\n //检查一组字段是否被用户操作过\r\n isFieldsTouched() {\r\n return this.formRef.current.isFieldsTouched();\r\n }\r\n\r\n //检查对应字段是否被用户操作过\r\n isFieldTouched(name) {\r\n return this.formRef.current.isFieldTouched(name);\r\n }\r\n\r\n //检查一组字段是否正在校验\r\n isFieldValidating(name) {\r\n return this.formRef.current.isFieldValidating(name);\r\n }\r\n\r\n //重置一组字段到\r\n resetFields() {\r\n this.formRef.current.resetFields();\r\n }\r\n\r\n scrollToField(name, options) {\r\n this.formRef.current.scrollToField(name, options);\r\n }\r\n\r\n setFields(filds) {\r\n this.formRef.current.setFields(filds);\r\n }\r\n\r\n setFieldsValue(values) {\r\n this.formRef.current?.setFieldsValue(values);\r\n }\r\n\r\n submit() {\r\n this.formRef.current.submit();\r\n }\r\n\r\n onSubmit(\r\n url?: string,\r\n options?: any,\r\n callback?: (res?: any) => void,\r\n msg?: boolean\r\n ) {\r\n const { url: propsUrl, encryptFields: encryptPropps = [] } = this.props;\r\n if (!url && !propsUrl) {\r\n throw new Error(\"没有上传的url!\");\r\n }\r\n const { method = \"post\" } = options;\r\n let requestUrl = url ? url : propsUrl;\r\n let requestData = this.formRef.current.getFieldsValue();\r\n let requestEncrypt = encryptPropps;\r\n let requestParam = { method: method, data: requestData } as { data: any };\r\n if (options) {\r\n const { data, encryptFields, ...params } = options;\r\n requestParam = { ...requestParam, ...params };\r\n if (data) {\r\n delete requestParam.data;\r\n if (method.toLowerCase() == \"get\") {\r\n requestParam = { ...requestParam, ...params, params: data };\r\n } else {\r\n requestParam = { ...requestParam, ...params, data: data };\r\n }\r\n }\r\n if (encryptFields) {\r\n requestEncrypt = encryptFields;\r\n }\r\n }\r\n\r\n request(requestUrl, {\r\n autoPrefix: true,\r\n ...requestParam,\r\n encryptFields: requestEncrypt,\r\n })\r\n .then(function (res: any) {\r\n const { code } = res;\r\n if (msg) {\r\n if (code === 200) {\r\n message.success(\"提交成功\");\r\n } else {\r\n message.error(\"提交失败\");\r\n }\r\n }\r\n callback && callback(res);\r\n })\r\n .catch(function (error: any) {\r\n console.log(\"error\", error);\r\n });\r\n }\r\n\r\n validateFields(name) {\r\n return this.formRef.current.validateFields(name);\r\n }\r\n\r\n hide(e) {\r\n const { showModel, modalProps = {}, drawerProps = {} } = this.props;\r\n let _this = this;\r\n const { onCancel } = modalProps;\r\n const { onClose } = drawerProps;\r\n if (showModel == \"drawer\" && onClose) {\r\n onClose(e);\r\n } else if (showModel == \"modal\" && onCancel) {\r\n onCancel(e);\r\n } else {\r\n _this.hideForm();\r\n }\r\n }\r\n\r\n hideForm(resetValue = true) {\r\n this.setState(\r\n {\r\n formVisible: false,\r\n isChange: false,\r\n },\r\n () => {\r\n if (resetValue) {\r\n this.formRef.current.resetFields();\r\n }\r\n }\r\n );\r\n }\r\n\r\n showForm(value?: any, option: any = {}) {\r\n this.setState(\r\n {\r\n formVisible: true,\r\n isChange: false,\r\n },\r\n () => {\r\n this.formRef.current?.setFieldsValue(value);\r\n const { afterRender } = option;\r\n utils.callback(afterRender, this);\r\n }\r\n );\r\n }\r\n\r\n cloneElement(item, index = 0) {\r\n let _this = this;\r\n if (typeof item == \"string\") return item;\r\n let props = {} as { key: number; children: any };\r\n props.key = index;\r\n try {\r\n if (item.props && item.props.children) {\r\n if (Array.isArray(item.props.children)) {\r\n props.children = React.Children.map(\r\n item.props.children,\r\n function (child, index) {\r\n return _this.cloneElement(child, index);\r\n }\r\n );\r\n } else {\r\n props.children = this.cloneElement(item.props.children, 0);\r\n }\r\n }\r\n return React.cloneElement(item, props);\r\n } catch (e) {\r\n return null;\r\n }\r\n }\r\n onValuesChange(val, allVal) {\r\n const { onValuesChange } = this.props;\r\n this.setState({\r\n isChange: true,\r\n });\r\n onValuesChange && onValuesChange(val, allVal);\r\n }\r\n renderPanel(newChildren, props) {\r\n const {\r\n showModel,\r\n drawerProps = {},\r\n modalProps = {},\r\n loading = false,\r\n changeValid = true,\r\n } = this.props;\r\n const { formVisible } = this.state;\r\n const layout = {\r\n labelCol: { span: this.props.layout == \"vertical\" ? 24 : 4 },\r\n wrapperCol: { span: this.props.layout == \"vertical\" ? 24 : 20 },\r\n };\r\n const Pane = () => {\r\n return (\r\n <Form\r\n ref={this.formRef}\r\n validateTrigger={[\"onBlur\", \"onChange\"]}\r\n // draggable={true}\r\n {...layout}\r\n {...props}\r\n onValuesChange={this.onValuesChange.bind(this)}\r\n preserve={false}\r\n />\r\n );\r\n };\r\n if (showModel) {\r\n let newModalProps = omit(modalProps, [\"visible\"]);\r\n newModalProps = { ...newModalProps };\r\n let newDrawerProps = omit(drawerProps, [\"visible\"]);\r\n let defaultprops = {\r\n maskClosable: !this.state.isChange,\r\n formExpand: {\r\n expand: true,\r\n valid: changeValid,\r\n change: this.state.isChange,\r\n },\r\n type: showModel,\r\n } as any;\r\n let modalprops = { ...defaultprops };\r\n modalprops = {\r\n ...defaultprops,\r\n ...newModalProps,\r\n ...newDrawerProps,\r\n onCancel: this.hide.bind(this),\r\n // onClose: this.hide.bind(this),\r\n };\r\n return (\r\n <Modal open={formVisible} {...modalprops}>\r\n {loading ? <Spin spinning={loading}>{Pane()}</Spin> : Pane()}\r\n </Modal>\r\n );\r\n } else {\r\n return <>{loading ? <Spin spinning={loading}>{Pane()}</Spin> : Pane()}</>;\r\n }\r\n }\r\n render() {\r\n const props = omit(this.props, [\r\n \"form\",\r\n \"showModel\",\r\n \"modalProps\",\r\n \"drawerProps\",\r\n \"url\",\r\n \"encryptFields\",\r\n \"changeValid\",\r\n ]);\r\n return <>{this.renderPanel(props.children, props)}</>;\r\n }\r\n}\r\nexport default NscForm;\r\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Form.js","names":["React","PureComponent","Modal","request","utils","omit","Spin","config","getLocalStore","NscForm","constructor","props","_defineProperty","createRef","formVisible","formModalProps","formDrawerProps","isChange","expand","scope","params","beforeRender","callbackBeforeClose","callback","afterRender","getDerivedStateFromProps","nextProps","prevState","modalProps","drawerProps","showModel","Object","is","newState","visible","undefined","getFieldError","name","_this$formRef$current","formRef","current","getFieldInstance","_this$formRef$current2","getFieldsError","getFieldsValue","_this$formRef","getFieldValue","isFieldsTouched","isFieldTouched","isFieldValidating","resetFields","scrollToField","options","setFields","filds","setFieldsValue","values","_this$formRef$current3","submit","onSubmit","url","msg","propsUrl","encryptFields","encryptPropps","Error","method","requestUrl","requestData","requestEncrypt","requestParam","data","_objectWithoutProperties","_excluded","_objectSpread","toLowerCase","autoPrefix","then","res","code","_message","success","error","catch","console","log","validateFields","hide","e","_this","onCancel","onClose","hideForm","resetValue","arguments","length","setState","showForm","value","option","_this$formRef$current4","cloneElement","item","index","key","children","Array","isArray","Children","map","child","onValuesChange","val","allVal","renderPanel","newChildren","loading","changeValid","state","layout","labelCol","span","wrapperCol","Pane","createElement","_Form","_extends","ref","validateTrigger","bind","preserve","storePrefix","autoType","newModalProps","newDrawerProps","defaultprops","maskClosable","formExpand","valid","change","type","modalprops","newProps","open","spinning","Fragment","render"],"sources":["../../../src/components/base/form/Form.tsx"],"sourcesContent":["/*\r\n * @Descripttion:表单组件\r\n * @version:\r\n * @Author: rxzhu\r\n * @Date: 2021-04-09 09:18:34\r\n * @LastEditors: rxzhu\r\n * @LastEditTime: 2021-04-23 15:23:54\r\n */\r\nimport React, { PureComponent } from \"react\";\r\nimport { Form, FormProps, Drawer, DrawerProps, message } from \"antd\";\r\nimport Modal from \"../modal\";\r\nimport { FormInstance } from \"antd/lib/form\";\r\nimport { request ,utils} from \"@bj-nsc/msn/lib/utils\";\r\nimport omit from \"omit.js\";\r\nimport { NscModalPorps } from \"../modal\";\r\nimport Spin from \"../spin\";\r\nimport config from \"../../config\";\r\nimport {getLocalStore} from '@bj-nsc/functions'\r\nexport interface IFormProps extends FormProps {\r\n showModel?: \"modal\" | \"drawer\" | \"auto\";\r\n modalProps?: NscModalPorps;\r\n drawerProps?: DrawerProps & {\r\n onOk?: any;\r\n okButtonProps?: Object;\r\n formExpand?: Object;\r\n };\r\n url?: string;\r\n encryptFields?: Array<String>;\r\n changeValid?: boolean; //数据修改关闭校验\r\n loading?: boolean; //表单加载状态\r\n}\r\n\r\nclass NscForm extends PureComponent<IFormProps> {\r\n formRef = React.createRef<FormInstance>();\r\n state = {\r\n formVisible: false,\r\n formModalProps: {},\r\n formDrawerProps: {},\r\n isChange: false,\r\n expand: false,\r\n };\r\n option: any = {\r\n //回调作用域\r\n scope: this,\r\n //open传递过来的页面参数\r\n params: {},\r\n //显示之前回调\r\n beforeRender: null,\r\n //关闭之前回调,如果return false,且窗口不关闭\r\n callbackBeforeClose: null,\r\n //关闭后回调,异步操作\r\n callback: null,\r\n //显示之后回调\r\n afterRender: null,\r\n };\r\n constructor(props) {\r\n super(props);\r\n }\r\n\r\n static getDerivedStateFromProps(nextProps, prevState) {\r\n const { modalProps, drawerProps, showModel } = nextProps;\r\n const { formModalProps, formDrawerProps } = prevState;\r\n if (showModel == \"modal\") {\r\n // JSON.stringify(formModalProps) !== JSON.stringify(modalProps)\r\n if (!Object.is(formModalProps, modalProps)) {\r\n let newState = {\r\n formDrawerProps: modalProps,\r\n } as any;\r\n if (modalProps.visible !== null && modalProps.visible !== undefined) {\r\n newState.formVisible = modalProps.visible;\r\n }\r\n return newState;\r\n }\r\n } else if (showModel == \"drawer\") {\r\n // JSON.stringify(formDrawerProps) !== JSON.stringify(drawerProps)\r\n if (!Object.is(formDrawerProps, drawerProps)) {\r\n let newState = {\r\n formDrawerProps: drawerProps,\r\n } as any;\r\n if (\r\n drawerProps?.visible !== null &&\r\n drawerProps?.visible !== undefined\r\n ) {\r\n newState.formVisible = drawerProps.visible;\r\n }\r\n return newState;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n //获取对应字段名的错误信息\r\n getFieldError(name) {\r\n return this.formRef.current?.getFieldError(name);\r\n }\r\n\r\n //获取对应字段实例\r\n getFieldInstance(name) {\r\n return this.formRef.current?.getFieldInstance(name);\r\n }\r\n\r\n //获取一组字段名对应的错误信息,返回为数组形式\r\n getFieldsError() {\r\n return this.formRef.current.getFieldsError();\r\n }\r\n\r\n //获取一组字段名对应的值,会按照对应结构返回\r\n getFieldsValue() {\r\n return this.formRef?.current?.getFieldsValue();\r\n }\r\n\r\n //获取对应字段名的值\r\n getFieldValue(name) {\r\n return this.formRef.current.getFieldValue(name);\r\n }\r\n\r\n //检查一组字段是否被用户操作过\r\n isFieldsTouched() {\r\n return this.formRef.current.isFieldsTouched();\r\n }\r\n\r\n //检查对应字段是否被用户操作过\r\n isFieldTouched(name) {\r\n return this.formRef.current.isFieldTouched(name);\r\n }\r\n\r\n //检查一组字段是否正在校验\r\n isFieldValidating(name) {\r\n return this.formRef.current.isFieldValidating(name);\r\n }\r\n\r\n //重置一组字段到\r\n resetFields() {\r\n this.formRef.current.resetFields();\r\n }\r\n\r\n scrollToField(name, options) {\r\n this.formRef.current.scrollToField(name, options);\r\n }\r\n\r\n setFields(filds) {\r\n this.formRef.current.setFields(filds);\r\n }\r\n\r\n setFieldsValue(values) {\r\n this.formRef.current?.setFieldsValue(values);\r\n }\r\n\r\n submit() {\r\n this.formRef.current.submit();\r\n }\r\n\r\n onSubmit(\r\n url?: string,\r\n options?: any,\r\n callback?: (res?: any) => void,\r\n msg?: boolean\r\n ) {\r\n const { url: propsUrl, encryptFields: encryptPropps = [] } = this.props;\r\n if (!url && !propsUrl) {\r\n throw new Error(\"没有上传的url!\");\r\n }\r\n const { method = \"post\" } = options;\r\n let requestUrl = url ? url : propsUrl;\r\n let requestData = this.formRef.current.getFieldsValue();\r\n let requestEncrypt = encryptPropps;\r\n let requestParam = { method: method, data: requestData } as { data: any };\r\n if (options) {\r\n const { data, encryptFields, ...params } = options;\r\n requestParam = { ...requestParam, ...params };\r\n if (data) {\r\n delete requestParam.data;\r\n if (method.toLowerCase() == \"get\") {\r\n requestParam = { ...requestParam, ...params, params: data };\r\n } else {\r\n requestParam = { ...requestParam, ...params, data: data };\r\n }\r\n }\r\n if (encryptFields) {\r\n requestEncrypt = encryptFields;\r\n }\r\n }\r\n\r\n request(requestUrl, {\r\n autoPrefix: true,\r\n ...requestParam,\r\n encryptFields: requestEncrypt,\r\n })\r\n .then(function (res: any) {\r\n const { code } = res;\r\n if (msg) {\r\n if (code === 200) {\r\n message.success(\"提交成功\");\r\n } else {\r\n message.error(\"提交失败\");\r\n }\r\n }\r\n callback && callback(res);\r\n })\r\n .catch(function (error: any) {\r\n console.log(\"error\", error);\r\n });\r\n }\r\n\r\n validateFields(name) {\r\n return this.formRef.current.validateFields(name);\r\n }\r\n\r\n hide(e) {\r\n const { showModel, modalProps = {}, drawerProps = {} } = this.props;\r\n let _this = this;\r\n const { onCancel } = modalProps;\r\n const { onClose } = drawerProps;\r\n if (showModel == \"drawer\" && onClose) {\r\n onClose(e);\r\n } else if (showModel == \"modal\" && onCancel) {\r\n onCancel(e);\r\n } else {\r\n _this.hideForm();\r\n }\r\n }\r\n\r\n hideForm(resetValue = true) {\r\n this.setState(\r\n {\r\n formVisible: false,\r\n isChange: false,\r\n },\r\n () => {\r\n if (resetValue) {\r\n this.formRef.current.resetFields();\r\n }\r\n }\r\n );\r\n }\r\n\r\n showForm(value?: any, option: any = {}) {\r\n this.setState(\r\n {\r\n formVisible: true,\r\n isChange: false,\r\n },\r\n () => {\r\n this.formRef.current?.setFieldsValue(value);\r\n const { afterRender } = option;\r\n utils.callback(afterRender, this);\r\n }\r\n );\r\n }\r\n\r\n cloneElement(item, index = 0) {\r\n let _this = this;\r\n if (typeof item == \"string\") return item;\r\n let props = {} as { key: number; children: any };\r\n props.key = index;\r\n try {\r\n if (item.props && item.props.children) {\r\n if (Array.isArray(item.props.children)) {\r\n props.children = React.Children.map(\r\n item.props.children,\r\n function (child, index) {\r\n return _this.cloneElement(child, index);\r\n }\r\n );\r\n } else {\r\n props.children = this.cloneElement(item.props.children, 0);\r\n }\r\n }\r\n return React.cloneElement(item, props);\r\n } catch (e) {\r\n return null;\r\n }\r\n }\r\n onValuesChange(val, allVal) {\r\n const { onValuesChange } = this.props;\r\n this.setState({\r\n isChange: true,\r\n });\r\n onValuesChange && onValuesChange(val, allVal);\r\n }\r\n renderPanel(newChildren, props) {\r\n const {\r\n showModel,\r\n drawerProps = {},\r\n modalProps = {},\r\n loading = false,\r\n changeValid = true,\r\n } = this.props;\r\n const { formVisible } = this.state;\r\n const layout = {\r\n labelCol: { span: this.props.layout == \"vertical\" ? 24 : 4 },\r\n wrapperCol: { span: this.props.layout == \"vertical\" ? 24 : 20 },\r\n };\r\n const Pane = () => {\r\n return (\r\n <Form\r\n ref={this.formRef}\r\n validateTrigger={[\"onBlur\", \"onChange\"]}\r\n // draggable={true}\r\n {...layout}\r\n {...props}\r\n onValuesChange={this.onValuesChange.bind(this)}\r\n preserve={false}\r\n />\r\n );\r\n };\r\n if (showModel) {\r\n const { showModel } = this.props;\r\n const { storePrefix } = config();\r\n let autoType = getLocalStore(\r\n \"formType\",\r\n storePrefix ? storePrefix : \"nsc-home\"\r\n );\r\n autoType = autoType ? autoType : null;\r\n let newModalProps = omit(modalProps, [\"visible\"]);\r\n let newDrawerProps = omit(drawerProps, [\"visible\"]);\r\n let defaultprops = {\r\n maskClosable: !this.state.isChange,\r\n formExpand: {\r\n expand: true,\r\n valid: changeValid,\r\n change: this.state.isChange,\r\n },\r\n type: showModel,\r\n } as any;\r\n let modalprops = { ...defaultprops };\r\n let newProps = {} as any;\r\n if (\r\n showModel == \"drawer\" ||\r\n (showModel == \"auto\" && autoType == \"drawer\")\r\n ) {\r\n newProps = { ...newModalProps, ...newDrawerProps };\r\n } else {\r\n newProps = { ...newDrawerProps, ...newModalProps };\r\n }\r\n modalprops = {\r\n ...defaultprops,\r\n ...newModalProps,\r\n ...newDrawerProps,\r\n ...newProps,\r\n onCancel: this.hide.bind(this),\r\n // onClose: this.hide.bind(this),\r\n };\r\n return (\r\n <Modal open={formVisible} {...modalprops}>\r\n {loading ? <Spin spinning={loading}>{Pane()}</Spin> : Pane()}\r\n </Modal>\r\n );\r\n } else {\r\n return <>{loading ? <Spin spinning={loading}>{Pane()}</Spin> : Pane()}</>;\r\n }\r\n }\r\n render() {\r\n const props = omit(this.props, [\r\n \"form\",\r\n \"showModel\",\r\n \"modalProps\",\r\n \"drawerProps\",\r\n \"url\",\r\n \"encryptFields\",\r\n \"changeValid\",\r\n ]);\r\n return <>{this.renderPanel(props.children, props)}</>;\r\n }\r\n}\r\nexport default NscForm;\r\n"],"mappings":"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"}
|
package/lib/base/modal/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _Drawer from "antd/es/drawer";
|
|
2
2
|
import _Modal from "antd/es/modal";
|
|
3
|
-
const _excluded = ["
|
|
3
|
+
const _excluded = ["closable", "okButtonProps", "cancelButtonProps", "formExpand", "dragable", "footerButton"];
|
|
4
4
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
5
5
|
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
6
6
|
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
@@ -16,7 +16,7 @@ import { PlusCircleOutlined, CloseCircleOutlined, CloseOutlined, ExpandOutlined,
|
|
|
16
16
|
import Button from "../button";
|
|
17
17
|
import { getLess } from "../../utils";
|
|
18
18
|
import styles from "./index.less";
|
|
19
|
-
import {
|
|
19
|
+
import { getLocalStore } from "@bj-nsc/functions";
|
|
20
20
|
import Confirm from "./Confirm";
|
|
21
21
|
import omit from "omit.js";
|
|
22
22
|
import Draggable from "react-draggable";
|
|
@@ -58,21 +58,19 @@ export default class NscModal extends PureComponent {
|
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
60
|
let _this = this;
|
|
61
|
-
if (data.eventType == "changeFormType") {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
modalType: payload.type
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
}
|
|
61
|
+
// if (data.eventType == "changeFormType") {
|
|
62
|
+
// const { payload } = data;
|
|
63
|
+
// if (payload.type == "modal" || payload.type == "drawer") {
|
|
64
|
+
// _this.setState({ modalType: payload.type });
|
|
65
|
+
// }
|
|
66
|
+
// }
|
|
71
67
|
});
|
|
72
68
|
let modal = props.type || "auto";
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
69
|
+
const {
|
|
70
|
+
storePrefix
|
|
71
|
+
} = config();
|
|
72
|
+
let autoType = getLocalStore("formType", storePrefix ? storePrefix : "nsc-home");
|
|
73
|
+
autoType = autoType ? autoType : null;
|
|
76
74
|
this.state = {
|
|
77
75
|
visible: false,
|
|
78
76
|
expand: false,
|
|
@@ -220,7 +218,7 @@ export default class NscModal extends PureComponent {
|
|
|
220
218
|
render() {
|
|
221
219
|
const _this$props = this.props,
|
|
222
220
|
{
|
|
223
|
-
type = "modal",
|
|
221
|
+
// type = "modal",
|
|
224
222
|
closable,
|
|
225
223
|
// title: orgtitle,
|
|
226
224
|
okButtonProps = {},
|
|
@@ -239,7 +237,7 @@ export default class NscModal extends PureComponent {
|
|
|
239
237
|
getContainer: () => document.getElementById(mountElementId)
|
|
240
238
|
}, props);
|
|
241
239
|
}
|
|
242
|
-
if (dragable &&
|
|
240
|
+
if (dragable && this.state.modalType == "modal") {
|
|
243
241
|
props = _objectSpread({
|
|
244
242
|
modalRender: modal => {
|
|
245
243
|
return /*#__PURE__*/React.createElement(Draggable, {
|
|
@@ -256,7 +254,7 @@ export default class NscModal extends PureComponent {
|
|
|
256
254
|
}
|
|
257
255
|
const title = /*#__PURE__*/React.createElement("div", {
|
|
258
256
|
className: cls(getLess(styles, "nsc-modal-title"), {
|
|
259
|
-
[getLess(styles, "nsc-modal-title-dragger")]: dragable &&
|
|
257
|
+
[getLess(styles, "nsc-modal-title-dragger")]: dragable && this.state.modalType == "modal"
|
|
260
258
|
}),
|
|
261
259
|
onMouseOver: () => {
|
|
262
260
|
if (this.state.dragger) {
|
|
@@ -379,4 +377,4 @@ _defineProperty(NscModal, "success", _Modal.success);
|
|
|
379
377
|
_defineProperty(NscModal, "error", _Modal.error);
|
|
380
378
|
_defineProperty(NscModal, "warning", _Modal.warning);
|
|
381
379
|
_defineProperty(NscModal, "destroyAll", _Modal.destroyAll);
|
|
382
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsImNyZWF0ZVJlZiIsIlB1cmVDb21wb25lbnQiLCJ1dGlscyIsImNvbmZpZyIsIlBsdXNDaXJjbGVPdXRsaW5lZCIsIkNsb3NlQ2lyY2xlT3V0bGluZWQiLCJDbG9zZU91dGxpbmVkIiwiRXhwYW5kT3V0bGluZWQiLCJDb21wcmVzc091dGxpbmVkIiwiQnV0dG9uIiwiZ2V0TGVzcyIsInN0eWxlcyIsImdldFN0b3JhZ2UiLCJDb25maXJtIiwib21pdCIsIkRyYWdnYWJsZSIsImNscyIsIk5zY01vZGFsIiwidXNlTW9kYWwiLCJtb2RhbCIsImNvbnRleHRIb2xkZXIiLCJfTW9kYWwiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwiX2RlZmluZVByb3BlcnR5Iiwic2NvcGUiLCJwYXJhbXMiLCJiZWZvcmVSZW5kZXIiLCJjYWxsYmFja0JlZm9yZUNsb3NlIiwiY2FsbGJhY2siLCJhZnRlclJlbmRlciIsImV2IiwiZGF0YSIsIkpTT04iLCJwYXJzZSIsImUiLCJjb25zb2xlIiwibG9nIiwiX3RoaXMiLCJldmVudFR5cGUiLCJwYXlsb2FkIiwidHlwZSIsInNldFN0YXRlIiwibW9kYWxUeXBlIiwic3RvcmVQcmVmaXgiLCJhdXRvVHlwZSIsImNvbnRlbnQiLCJzdGF0ZSIsInZpc2libGUiLCJleHBhbmQiLCJib3VuZHMiLCJsZWZ0IiwidG9wIiwiYm90dG9tIiwicmlnaHQiLCJkcmFnZ2VyIiwiY29tcG9uZW50RGlkTW91bnQiLCJ3aW5kb3ciLCJhZGRFdmVudExpc3RlbmVyIiwibGlzdGVuTWVzc2FnZSIsImNvbXBvbmVudFdpbGxVbm1vdW50IiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImNvbXBvbmVudERpZFVwZGF0ZSIsInByZXZQcm9wcyIsInByZXZTdGF0ZSIsInNuYXBzaG90Iiwic2hvdyIsIm9wdGlvbiIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsIl9vYmplY3RTcHJlYWQiLCJoaWRlIiwiZ2V0UmV0dXJuVmFsdWUiLCJyZXR1cm5WYWx1ZSIsImNsb3NlIiwicmVzdWx0IiwiYnV0dG9uQ2xvc2UiLCJmb3JtRXhwYW5kIiwib25DYW5jZWwiLCJvbkJ1dHRvbkNhbmNlbCIsIm9uQ2xvc2UiLCJ2YWxpZCIsImNoYW5nZSIsIm9uT2siLCJnZXRQYXJhbXMiLCJrZXkiLCJvblN0YXJ0IiwiX2V2ZW50IiwidWlEYXRhIiwiX3RoaXMkZHJhZ2dsZVJlZiRjdXJyIiwiY2xpZW50V2lkdGgiLCJjbGllbnRIZWlnaHQiLCJkb2N1bWVudCIsImRvY3VtZW50RWxlbWVudCIsInRhcmdldFJlY3QiLCJkcmFnZ2xlUmVmIiwiY3VycmVudCIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsIngiLCJ5IiwicmVuZGVyIiwiX3RoaXMkcHJvcHMiLCJjbG9zYWJsZSIsIm9rQnV0dG9uUHJvcHMiLCJjYW5jZWxCdXR0b25Qcm9wcyIsImRyYWdhYmxlIiwiZm9vdGVyQnV0dG9uIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwiX2V4Y2x1ZGVkIiwibW91bnRFbGVtZW50SWQiLCJnZXRDb250YWluZXIiLCJnZXRFbGVtZW50QnlJZCIsIm1vZGFsUmVuZGVyIiwiY3JlYXRlRWxlbWVudCIsImRpc2FibGVkIiwiZXZlbnQiLCJyZWYiLCJ0aXRsZSIsImNsYXNzTmFtZSIsIm9uTW91c2VPdmVyIiwib25Nb3VzZU91dCIsIm9uQ2xpY2siLCJzdHlsZSIsIm1hcmdpblJpZ2h0IiwibW9kYWxCdXR0b24iLCJmb290ZXIiLCJfZXh0ZW5kcyIsImJpbmQiLCJpY29uIiwiY2FuY2xlQnV0dG9uUHJvcHMiLCJjYW5jZWxUZXh0Iiwib2tUZXh0IiwibWFwIiwiaXRlbSIsImluZGV4IiwibWF4V2lkdGgiLCJ3aWR0aCIsIm9sZFByb3BzIiwibmV3RHJhd2VyUHJvcHMiLCJfRHJhd2VyIiwib3BlbiIsImNlbnRlcmVkIiwiYWZ0ZXJDbG9zZSIsImluZm8iLCJzdWNjZXNzIiwiZXJyb3IiLCJ3YXJuaW5nIiwiZGVzdHJveUFsbCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Jhc2UvbW9kYWwvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBjcmVhdGVSZWYsIFB1cmVDb21wb25lbnQsIFJlYWN0Tm9kZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBNb2RhbCwgTW9kYWxQcm9wcywgRHJhd2VyLCBEcmF3ZXJQcm9wcyB9IGZyb20gXCJhbnRkXCI7XHJcbmltcG9ydCB7IHV0aWxzIH0gZnJvbSBcIkBiai1uc2MvbXNuL2xpYi91dGlsc1wiO1xyXG5pbXBvcnQgY29uZmlnIGZyb20gXCIuLi8uLi9jb25maWdcIjtcclxuaW1wb3J0IHtcclxuICBQbHVzQ2lyY2xlT3V0bGluZWQsXHJcbiAgQ2xvc2VDaXJjbGVPdXRsaW5lZCxcclxuICBDbG9zZU91dGxpbmVkLFxyXG4gIEV4cGFuZE91dGxpbmVkLFxyXG4gIENvbXByZXNzT3V0bGluZWQsXHJcbn0gZnJvbSBcIkBhbnQtZGVzaWduL2ljb25zXCI7XHJcbmltcG9ydCBCdXR0b24gZnJvbSBcIi4uL2J1dHRvblwiO1xyXG5pbXBvcnQgeyBnZXRMZXNzIH0gZnJvbSBcIi4uLy4uL3V0aWxzXCI7XHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vaW5kZXgubGVzc1wiO1xyXG5pbXBvcnQgeyBnZXRTdG9yYWdlIH0gZnJvbSBcIkBiai1uc2MvZnVuY3Rpb25zXCI7XHJcbmltcG9ydCBDb25maXJtIGZyb20gXCIuL0NvbmZpcm1cIjtcclxuaW1wb3J0IG9taXQgZnJvbSBcIm9taXQuanNcIjtcclxuaW1wb3J0IHR5cGUgeyBEcmFnZ2FibGVEYXRhLCBEcmFnZ2FibGVFdmVudCB9IGZyb20gXCJyZWFjdC1kcmFnZ2FibGVcIjtcclxuaW1wb3J0IERyYWdnYWJsZSBmcm9tIFwicmVhY3QtZHJhZ2dhYmxlXCI7XHJcbmltcG9ydCBjbHMgZnJvbSBcImNsYXNzbmFtZXNcIjtcclxuXHJcbmludGVyZmFjZSBmb3JtRXhwYW5kIHtcclxuICBjaGFuZ2U/OiBib29sZWFuO1xyXG4gIHZhbGlkPzogYm9vbGVhbjtcclxuICBleHBhbmQ/OiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE5zY01vZGFsUG9ycHMgZXh0ZW5kcyBNb2RhbFByb3BzIHtcclxuICB0eXBlPzogXCJtb2RhbFwiIHwgXCJkcmF3ZXJcIiB8IFwiYXV0b1wiO1xyXG4gIGZvcm1FeHBhbmQ/OiBmb3JtRXhwYW5kO1xyXG4gIG9uQnV0dG9uQ2FuY2VsPzogYW55OyAvL+W6lemDqOWPlua2iOaMiemSruWbnuiwg1xyXG4gIGRyYWdhYmxlPzogYm9vbGVhbjsgLy/lvLnmoYbmmK/lkKbnnIvmi5bliqhcclxuICBmb290ZXJCdXR0b24/OiBBcnJheTxhbnk+OyAvL2Zvb3RlciDlhbbku5boh6rlrprkuYnmjInpkq5cclxufVxyXG5cclxuaW50ZXJmYWNlIE5zY01vZGFsSW50ZXJmYWNlXHJcbiAgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnRDbGFzczxOc2NNb2RhbFBvcnBzICYgRHJhd2VyUHJvcHMsIGFueT4ge1xyXG4gIHVzZU1vZGFsOiAoKSA9PiBbYW55LCBSZWFjdC5SZWFjdEVsZW1lbnRdO1xyXG4gIGNvbmZpcm06IHR5cGVvZiBDb25maXJtO1xyXG4gIGluZm86IHR5cGVvZiBNb2RhbC5pbmZvO1xyXG4gIHN1Y2Nlc3M6IHR5cGVvZiBNb2RhbC5zdWNjZXNzO1xyXG4gIGVycm9yOiB0eXBlb2YgTW9kYWwuZXJyb3I7XHJcbiAgd2FybmluZzogdHlwZW9mIE1vZGFsLndhcm5pbmc7XHJcbiAgZGVzdHJveUFsbDogdHlwZW9mIE1vZGFsLmRlc3Ryb3lBbGw7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE5zY01vZGFsIGV4dGVuZHMgUHVyZUNvbXBvbmVudDxcclxuICBOc2NNb2RhbFBvcnBzICYgRHJhd2VyUHJvcHMsXHJcbiAgYW55XHJcbj4ge1xyXG4gIHN0YXRpYyB1c2VNb2RhbCgpIHtcclxuICAgIC8vIOiwg+eUqCBhbnRkIE1vZGFsIOeahCB1c2VNb2RhbCBob29rXHJcbiAgICBjb25zdCBbbW9kYWwsIGNvbnRleHRIb2xkZXJdID0gTW9kYWwudXNlTW9kYWwoKTtcclxuXHJcbiAgICAvLyDov5Tlm54gY29udGV4dEhvbGRlcu+8jOehruS/neS4iuS4i+aWh+ato+ehruS8oOmAklxyXG4gICAgcmV0dXJuIFttb2RhbCwgY29udGV4dEhvbGRlcl0gYXMgW2FueSwgUmVhY3QuUmVhY3RFbGVtZW50XTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBjb25maXJtID0gQ29uZmlybTtcclxuICAvLyBzdGF0aWMgY29uZmlybSA9IE1vZGFsLmNvbmZpcm07XHJcbiAgc3RhdGljIGluZm8gPSBNb2RhbC5pbmZvO1xyXG4gIHN0YXRpYyBzdWNjZXNzID0gTW9kYWwuc3VjY2VzcztcclxuICBzdGF0aWMgZXJyb3IgPSBNb2RhbC5lcnJvcjtcclxuICBzdGF0aWMgd2FybmluZyA9IE1vZGFsLndhcm5pbmc7XHJcbiAgc3RhdGljIGRlc3Ryb3lBbGwgPSBNb2RhbC5kZXN0cm95QWxsO1xyXG4gIC8v6L+U5Zue5YC8XHJcbiAgcmV0dXJuVmFsdWUgPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgc3VwZXIocHJvcHMpO1xyXG4gICAgbGV0IG1vZGFsID0gcHJvcHMudHlwZSB8fCBcImF1dG9cIjtcclxuICAgIGxldCBzdG9yZVByZWZpeCA9IGdldFN0b3JhZ2UoXCJzdG9yZS1wcmUta2V5XCIpO1xyXG4gICAgbGV0IGF1dG9UeXBlID0gZ2V0U3RvcmFnZShcclxuICAgICAgc3RvcmVQcmVmaXggPyBzdG9yZVByZWZpeCArIFwiZm9ybVR5cGVcIiA6IFwiZm9ybVR5cGVcIlxyXG4gICAgKTtcclxuICAgIGF1dG9UeXBlID0gYXV0b1R5cGUgPyBhdXRvVHlwZS5jb250ZW50IDogbnVsbDtcclxuICAgIHRoaXMuc3RhdGUgPSB7XHJcbiAgICAgIHZpc2libGU6IGZhbHNlLFxyXG4gICAgICBleHBhbmQ6IGZhbHNlLFxyXG4gICAgICBtb2RhbFR5cGU6IG1vZGFsID09IFwiYXV0b1wiID8gYXV0b1R5cGUgOiBtb2RhbCxcclxuICAgICAgYm91bmRzOiB7IGxlZnQ6IDAsIHRvcDogMCwgYm90dG9tOiAwLCByaWdodDogMCB9LFxyXG4gICAgICBkcmFnZ2VyOiB0cnVlLFxyXG4gICAgfTtcclxuICB9XHJcbiAgZHJhZ2dsZVJlZiA9IGNyZWF0ZVJlZjxIVE1MRGl2RWxlbWVudD4oKTtcclxuXHJcbiAgb3B0aW9uOiBhbnkgPSB7XHJcbiAgICAvL+Wbnuiwg+S9nOeUqOWfn1xyXG4gICAgc2NvcGU6IHRoaXMsXHJcbiAgICAvL29wZW7kvKDpgJLov4fmnaXnmoTpobXpnaLlj4LmlbBcclxuICAgIHBhcmFtczoge30sXHJcbiAgICAvL+aYvuekuuS5i+WJjeWbnuiwg1xyXG4gICAgYmVmb3JlUmVuZGVyOiBudWxsLFxyXG4gICAgLy/lhbPpl63kuYvliY3lm57osIPvvIzlpoLmnpxyZXR1cm4gZmFsc2XvvIzkuJTnqpflj6PkuI3lhbPpl61cclxuICAgIGNhbGxiYWNrQmVmb3JlQ2xvc2U6IG51bGwsXHJcbiAgICAvL+WFs+mXreWQjuWbnuiwg++8jOW8guatpeaTjeS9nFxyXG4gICAgY2FsbGJhY2s6IG51bGwsXHJcbiAgICAvL+aYvuekuuS5i+WQjuWbnuiwg1xyXG4gICAgYWZ0ZXJSZW5kZXI6IG51bGwsXHJcbiAgfTtcclxuICAvKipcclxuICAgKiDmuLLmn5PlrozmiJBcclxuICAgKiBAcGFyYW0geyp9IG9wdGlvbiAg5pW05pS55Lyg6YCS5a+56LGhXHJcbiAgICovXHJcbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgdGhpcy5saXN0ZW5NZXNzYWdlKTtcclxuICB9XHJcblxyXG4gIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xyXG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIHRoaXMubGlzdGVuTWVzc2FnZSk7XHJcbiAgfVxyXG5cclxuICBjb21wb25lbnREaWRVcGRhdGUoXHJcbiAgICBwcmV2UHJvcHM6IFJlYWRvbmx5PE5zY01vZGFsUG9ycHMgJiBEcmF3ZXJQcm9wcz4sXHJcbiAgICBwcmV2U3RhdGU6IFJlYWRvbmx5PGFueT4sXHJcbiAgICBzbmFwc2hvdD86IGFueVxyXG4gICk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMucHJvcHMudHlwZSAhPT0gcHJldlByb3BzLnR5cGUpIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgbW9kYWxUeXBlOiB0aGlzLnByb3BzLnR5cGUgfHwgXCJhdXRvXCIsXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBsaXN0ZW5NZXNzYWdlID0gKGV2KSA9PiB7XHJcbiAgICBsZXQgZGF0YSA9IHt9IGFzIGFueTtcclxuICAgIGlmICh0eXBlb2YgZXYuZGF0YSA9PT0gXCJzdHJpbmdcIikge1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIGRhdGEgPSBKU09OLnBhcnNlKGV2LmRhdGEpO1xyXG4gICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGxldCBfdGhpcyA9IHRoaXM7XHJcbiAgICBpZiAoZGF0YS5ldmVudFR5cGUgPT0gXCJjaGFuZ2VGb3JtVHlwZVwiKSB7XHJcbiAgICAgIGNvbnN0IHsgcGF5bG9hZCB9ID0gZGF0YTtcclxuICAgICAgaWYgKHBheWxvYWQudHlwZSA9PSBcIm1vZGFsXCIgfHwgcGF5bG9hZC50eXBlID09IFwiZHJhd2VyXCIpIHtcclxuICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7IG1vZGFsVHlwZTogcGF5bG9hZC50eXBlIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfTtcclxuICAvL+aYvuekulxyXG4gIHNob3cob3B0aW9uOiBhbnkgPSB7fSkge1xyXG4gICAgY29uc3QgeyBzY29wZSB9ID0gdGhpcy5vcHRpb247XHJcbiAgICBjb25zdCB7IGJlZm9yZVJlbmRlciwgYWZ0ZXJSZW5kZXIgfSA9IG9wdGlvbjtcclxuICAgIHRoaXMub3B0aW9uID0geyAuLi50aGlzLm9wdGlvbiwgLi4ub3B0aW9uIH07XHJcbiAgICB1dGlscy5jYWxsYmFjayhiZWZvcmVSZW5kZXIsIHNjb3BlKTtcclxuICAgIHRoaXMuc2V0U3RhdGUoeyB2aXNpYmxlOiB0cnVlIH0sICgpID0+IHtcclxuICAgICAgdXRpbHMuY2FsbGJhY2soYWZ0ZXJSZW5kZXIsIHNjb3BlKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy/pmpDol49cclxuICBoaWRlKG9wdGlvbjogYW55ID0ge30pIHtcclxuICAgIGxldCBfdGhpcyA9IHRoaXM7XHJcbiAgICBfdGhpcy5zZXRTdGF0ZSh7IHZpc2libGU6IGZhbHNlIH0pO1xyXG4gIH1cclxuXHJcbiAgLy/ojrflj5bpnIDopoHov5Tlm57nmoTlgLxcclxuICBnZXRSZXR1cm5WYWx1ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnJldHVyblZhbHVlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog5YWz6Zet5bim5Zue6LCDXHJcbiAgICovXHJcbiAgY2xvc2UocmVzdWx0PzogYW55LCBidXR0b25DbG9zZSA9IGZhbHNlKSB7XHJcbiAgICB2YXIgX3RoaXMgPSB0aGlzO1xyXG4gICAgLy8gY29uc3QgeyBjYWxsYmFjaywgc2NvcGUsIGNhbGxiYWNrQmVmb3JlQ2xvc2UgfSA9IHRoaXMub3B0aW9uO1xyXG4gICAgY29uc3QgeyBmb3JtRXhwYW5kID0ge30sIG9uQ2FuY2VsLCBvbkJ1dHRvbkNhbmNlbCwgb25DbG9zZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIC8vIGNvbnN0IHIgPSB1dGlscy5jYWxsYmFjayhjYWxsYmFja0JlZm9yZUNsb3NlLCBzY29wZSwgW3RoaXMucmV0dXJuVmFsdWVdKTtcclxuICAgIC8vIGlmIChyICE9PSBmYWxzZSkge1xyXG4gICAgY29uc3QgeyBleHBhbmQgPSBmYWxzZSB9ID0gZm9ybUV4cGFuZDtcclxuICAgIGlmIChleHBhbmQgJiYgZm9ybUV4cGFuZC52YWxpZCAmJiBmb3JtRXhwYW5kLmNoYW5nZSkge1xyXG4gICAgICBDb25maXJtKHtcclxuICAgICAgICBjb250ZW50OiBcIuW9k+WJjeiusOW9leW3suS/ruaUueWwmuacquS/neWtmO+8jOehruWumuimgeaUvuW8g+S/ruaUueWQl++8n1wiLFxyXG4gICAgICAgIG9uT2soKSB7XHJcbiAgICAgICAgICBpZiAob25DYW5jZWwgfHwgb25DbG9zZSkge1xyXG4gICAgICAgICAgICBpZiAoYnV0dG9uQ2xvc2UgJiYgb25CdXR0b25DYW5jZWwpIHtcclxuICAgICAgICAgICAgICBvbkJ1dHRvbkNhbmNlbChyZXN1bHQpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIG9uQ2FuY2VsICYmIG9uQ2FuY2VsKHJlc3VsdCk7XHJcbiAgICAgICAgICAgICAgb25DbG9zZSAmJiBvbkNsb3NlKHJlc3VsdCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIF90aGlzLnNldFN0YXRlKHsgdmlzaWJsZTogZmFsc2UgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAob25DYW5jZWwgfHwgb25DbG9zZSkge1xyXG4gICAgICAgIGlmIChidXR0b25DbG9zZSAmJiBvbkJ1dHRvbkNhbmNlbCkge1xyXG4gICAgICAgICAgb25CdXR0b25DYW5jZWwocmVzdWx0KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgb25DYW5jZWwgJiYgb25DYW5jZWwocmVzdWx0KTtcclxuICAgICAgICAgIG9uQ2xvc2UgJiYgb25DbG9zZShyZXN1bHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7IHZpc2libGU6IGZhbHNlIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyB9XHJcbiAgICAvLyB1dGlscy5jYWxsYmFjayhjYWxsYmFjaywgc2NvcGUsIFtfdGhpcy5yZXR1cm5WYWx1ZV0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog6I635Y+W5Y+C5pWw77yM5aaC5p6ca2V55LiN5Lyg6YCS77yM5LiU6I635Y+W5YWo6YOoXHJcbiAgICogQHBhcmFtIHtTdHJpbmd9IGtleVxyXG4gICAqL1xyXG4gIGdldFBhcmFtcyhrZXkpIHtcclxuICAgIGlmIChrZXkpIHJldHVybiB0aGlzLm9wdGlvbi5wYXJhbXNba2V5XTtcclxuICAgIHJldHVybiB0aGlzLm9wdGlvbi5wYXJhbXM7XHJcbiAgfVxyXG4gIG9uU3RhcnQoX2V2ZW50OiBEcmFnZ2FibGVFdmVudCwgdWlEYXRhOiBEcmFnZ2FibGVEYXRhKSB7XHJcbiAgICBjb25zdCB7IGNsaWVudFdpZHRoLCBjbGllbnRIZWlnaHQgfSA9IHdpbmRvdy5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XHJcbiAgICBjb25zdCB0YXJnZXRSZWN0ID0gdGhpcy5kcmFnZ2xlUmVmLmN1cnJlbnQ/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgaWYgKCF0YXJnZXRSZWN0KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBib3VuZHM6IHtcclxuICAgICAgICBsZWZ0OiAtdGFyZ2V0UmVjdC5sZWZ0ICsgdWlEYXRhLngsXHJcbiAgICAgICAgcmlnaHQ6IGNsaWVudFdpZHRoIC0gKHRhcmdldFJlY3QucmlnaHQgLSB1aURhdGEueCksXHJcbiAgICAgICAgdG9wOiAtdGFyZ2V0UmVjdC50b3AgKyB1aURhdGEueSxcclxuICAgICAgICBib3R0b206IGNsaWVudEhlaWdodCAtICh0YXJnZXRSZWN0LmJvdHRvbSAtIHVpRGF0YS55KSxcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcmVuZGVyKCkge1xyXG4gICAgY29uc3Qge1xyXG4gICAgICB0eXBlID0gXCJtb2RhbFwiLFxyXG4gICAgICBjbG9zYWJsZSxcclxuICAgICAgLy8gdGl0bGU6IG9yZ3RpdGxlLFxyXG4gICAgICBva0J1dHRvblByb3BzID0ge30sXHJcbiAgICAgIGNhbmNlbEJ1dHRvblByb3BzID0ge30sXHJcbiAgICAgIGZvcm1FeHBhbmQgPSB7fSxcclxuICAgICAgZHJhZ2FibGUgPSB0cnVlLFxyXG4gICAgICBmb290ZXJCdXR0b24gPSBbXSxcclxuICAgICAgLi4ucGFyYW1zXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGxldCBwcm9wczogYW55ID0geyAuLi5wYXJhbXMgfTtcclxuICAgIGxldCB7IG1vdW50RWxlbWVudElkIH0gPSBjb25maWcoKTtcclxuICAgIGlmIChtb3VudEVsZW1lbnRJZCkge1xyXG4gICAgICBwcm9wcyA9IHtcclxuICAgICAgICBnZXRDb250YWluZXI6ICgpID0+IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG1vdW50RWxlbWVudElkKSxcclxuICAgICAgICAuLi5wcm9wcyxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIGlmIChkcmFnYWJsZSAmJiB0eXBlID09IFwibW9kYWxcIikge1xyXG4gICAgICBwcm9wcyA9IHtcclxuICAgICAgICBtb2RhbFJlbmRlcjogKG1vZGFsKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8RHJhZ2dhYmxlXHJcbiAgICAgICAgICAgICAgZGlzYWJsZWQ9e3RoaXMuc3RhdGUuZHJhZ2dlcn1cclxuICAgICAgICAgICAgICBib3VuZHM9e3RoaXMuc3RhdGUuYm91bmRzfVxyXG4gICAgICAgICAgICAgIG9uU3RhcnQ9eyhldmVudCwgdWlEYXRhKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9uU3RhcnQoZXZlbnQsIHVpRGF0YSk7XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxkaXYgcmVmPXt0aGlzLmRyYWdnbGVSZWZ9Pnttb2RhbH08L2Rpdj5cclxuICAgICAgICAgICAgPC9EcmFnZ2FibGU+XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLi4ucHJvcHMsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgdGl0bGUgPSAoXHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzc05hbWU9e2NscyhnZXRMZXNzKHN0eWxlcywgXCJuc2MtbW9kYWwtdGl0bGVcIiksIHtcclxuICAgICAgICAgIFtnZXRMZXNzKHN0eWxlcywgXCJuc2MtbW9kYWwtdGl0bGUtZHJhZ2dlclwiKV06XHJcbiAgICAgICAgICAgIGRyYWdhYmxlICYmIHR5cGUgPT0gXCJtb2RhbFwiLFxyXG4gICAgICAgIH0pfVxyXG4gICAgICAgIG9uTW91c2VPdmVyPXsoKSA9PiB7XHJcbiAgICAgICAgICBpZiAodGhpcy5zdGF0ZS5kcmFnZ2VyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgIGRyYWdnZXI6IGZhbHNlLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9fVxyXG4gICAgICAgIG9uTW91c2VPdXQ9eygpID0+IHtcclxuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICBkcmFnZ2VyOiB0cnVlLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfX1cclxuICAgICAgPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJuc2MtbW9kYWwtdGl0bGUtaWNvbnNcIil9PlxyXG4gICAgICAgICAgeyF0aGlzLnN0YXRlLmV4cGFuZCAmJiBmb3JtRXhwYW5kLmV4cGFuZCAmJiAoXHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgZXhwYW5kOiB0cnVlIH0pO1xyXG4gICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJuc2MtbW9kYWwtdGl0bGUtaWNvblwiKX1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxFeHBhbmRPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICl9XHJcbiAgICAgICAgICB7dGhpcy5zdGF0ZS5leHBhbmQgJiYgZm9ybUV4cGFuZC5leHBhbmQgJiYgKFxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGV4cGFuZDogZmFsc2UgfSk7XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm5zYy1tb2RhbC10aXRsZS1pY29uXCIpfVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPENvbXByZXNzT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApfVxyXG4gICAgICAgICAge2Nsb3NhYmxlICE9PSBmYWxzZSAmJiAoXHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm5zYy1tb2RhbC10aXRsZS1pY29uXCIpfVxyXG4gICAgICAgICAgICAgIHN0eWxlPXt7IG1hcmdpblJpZ2h0OiAwIH19XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8Q2xvc2VPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICl9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm5zYy1tb2RhbC10aXRsZS1jb250ZW50XCIpfT5cclxuICAgICAgICAgIHt0aGlzLnByb3BzLnRpdGxlfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICk7XHJcbiAgICBjb25zdCB7IG1vZGFsQnV0dG9uIH0gPSBjb25maWcoKTtcclxuICAgIGNvbnN0IGZvb3RlciA9IChcclxuICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm5zYy1tb2RhbC1mb290ZXJcIil9PlxyXG4gICAgICAgIDxCdXR0b25cclxuICAgICAgICAgIG9uQ2xpY2s9e3RoaXMuY2xvc2UuYmluZCh0aGlzLCB7fSwgdHJ1ZSl9XHJcbiAgICAgICAgICBpY29uPXs8Q2xvc2VDaXJjbGVPdXRsaW5lZCAvPn1cclxuICAgICAgICAgIHsuLi5tb2RhbEJ1dHRvbi5jYW5jbGVCdXR0b25Qcm9wc31cclxuICAgICAgICAgIHsuLi5jYW5jZWxCdXR0b25Qcm9wc31cclxuICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwibnNjLW1vZGFsLWZvb3Rlci1idXR0b24tbWFyZ2luXCIpfVxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt0aGlzLnByb3BzLmNhbmNlbFRleHQgPyB0aGlzLnByb3BzLmNhbmNlbFRleHQgOiBcIuWPlua2iFwifVxyXG4gICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgIDxCdXR0b25cclxuICAgICAgICAgIHR5cGU9XCJwcmltYXJ5XCJcclxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgcHJvcHMub25PayAmJiBwcm9wcy5vbk9rKCk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgICAgaWNvbj17PFBsdXNDaXJjbGVPdXRsaW5lZCAvPn1cclxuICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwibnNjLW1vZGFsLWZvb3Rlci1idXR0b24tbWFyZ2luXCIpfVxyXG4gICAgICAgICAgey4uLm1vZGFsQnV0dG9uLm9rQnV0dG9uUHJvcHN9XHJcbiAgICAgICAgICB7Li4ub2tCdXR0b25Qcm9wc31cclxuICAgICAgICA+XHJcbiAgICAgICAgICB7dGhpcy5wcm9wcy5va1RleHQgPyB0aGlzLnByb3BzLm9rVGV4dCA6IFwi5L+d5a2YXCJ9XHJcbiAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAge2Zvb3RlckJ1dHRvbi5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJuc2MtbW9kYWwtZm9vdGVyLWJ1dHRvbi1tYXJnaW5cIil9XHJcbiAgICAgICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIHtpdGVtfVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSl9XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgKTtcclxuICAgIGlmIChmb3JtRXhwYW5kLmV4cGFuZCkge1xyXG4gICAgICBwcm9wcyA9IHtcclxuICAgICAgICBmb290ZXI6IGZvb3RlcixcclxuICAgICAgICAuLi5wcm9wcyxcclxuICAgICAgICB0aXRsZTogdGl0bGUsXHJcbiAgICAgICAgY2xvc2FibGU6IGZhbHNlLFxyXG4gICAgICAgIHN0eWxlOiB7IG1heFdpZHRoOiBcIjEwMHZ3XCIgfSxcclxuICAgICAgICB3aWR0aDogdGhpcy5zdGF0ZS5leHBhbmQgPyBcIjEwMHZ3XCIgOiBwcm9wcy53aWR0aCxcclxuICAgICAgfTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHByb3BzID0ge1xyXG4gICAgICAgIGZvb3RlcjogZm9vdGVyLFxyXG4gICAgICAgIC4uLnByb3BzLFxyXG4gICAgICAgIHRpdGxlOiB0aXRsZSxcclxuICAgICAgICBjbG9zYWJsZTogZmFsc2UsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zdGF0ZS5tb2RhbFR5cGUgPT0gXCJkcmF3ZXJcIikge1xyXG4gICAgICBsZXQgb2xkUHJvcHMgPSB7IC4uLnByb3BzIH07XHJcbiAgICAgIGxldCBuZXdEcmF3ZXJQcm9wcyA9IG9taXQob2xkUHJvcHMsIFtcIm9uT2tcIiwgXCJva0J1dHRvblByb3BzXCJdKTtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICA8RHJhd2VyXHJcbiAgICAgICAgICBvcGVuPXt0aGlzLnN0YXRlLnZpc2libGV9XHJcbiAgICAgICAgICBvbkNsb3NlPXsoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgICB7Li4ubmV3RHJhd2VyUHJvcHN9XHJcbiAgICAgICAgLz5cclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgPE1vZGFsXHJcbiAgICAgICAgICBvcGVuPXt0aGlzLnN0YXRlLnZpc2libGV9XHJcbiAgICAgICAgICBvbkNhbmNlbD17KCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgICAgb25Paz17KCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgICAgb2tUZXh0PXtcIuehruWumlwifVxyXG4gICAgICAgICAgY2FuY2VsVGV4dD17XCLlj5bmtohcIn1cclxuICAgICAgICAgIGNlbnRlcmVkPXt0cnVlfVxyXG4gICAgICAgICAgY2xhc3NOYW1lPXtcclxuICAgICAgICAgICAgdGhpcy5zdGF0ZS5leHBhbmRcclxuICAgICAgICAgICAgICA/IGdldExlc3Moc3R5bGVzLCBcIm5zYy1tb2RhbC1hbGxzcmVlblwiKVxyXG4gICAgICAgICAgICAgIDogZ2V0TGVzcyhzdHlsZXMsIFwibnNjLW1vZGFsXCIpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvLyB0aXRsZT17Zm9ybUV4cGFuZCA/IHRpdGxlIDogdGhpcy5wcm9wcy50aXRsZX1cclxuICAgICAgICAgIHsuLi5wcm9wc31cclxuICAgICAgICAgIGFmdGVyQ2xvc2U9eygpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgZXhwYW5kOiBmYWxzZSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgIC8+XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQSxPQUFPQSxLQUFLLElBQUlDLFNBQVMsRUFBRUMsYUFBYSxRQUFtQixPQUFPO0FBRWxFLFNBQVNDLEtBQUssUUFBUSx1QkFBdUI7QUFDN0MsT0FBT0MsTUFBTSxNQUFNLGNBQWM7QUFDakMsU0FDRUMsa0JBQWtCLEVBQ2xCQyxtQkFBbUIsRUFDbkJDLGFBQWEsRUFDYkMsY0FBYyxFQUNkQyxnQkFBZ0IsUUFDWCxtQkFBbUI7QUFDMUIsT0FBT0MsTUFBTSxNQUFNLFdBQVc7QUFDOUIsU0FBU0MsT0FBTyxRQUFRLGFBQWE7QUFDckMsT0FBT0MsTUFBTSxNQUFNLGNBQWM7QUFDakMsU0FBU0MsVUFBVSxRQUFRLG1CQUFtQjtBQUM5QyxPQUFPQyxPQUFPLE1BQU0sV0FBVztBQUMvQixPQUFPQyxJQUFJLE1BQU0sU0FBUztBQUUxQixPQUFPQyxTQUFTLE1BQU0saUJBQWlCO0FBQ3ZDLE9BQU9DLEdBQUcsTUFBTSxZQUFZO0FBMkI1QixlQUFlLE1BQU1DLFFBQVEsU0FBU2hCLGFBQWEsQ0FHakQ7RUFDQSxPQUFPaUIsUUFBUUEsQ0FBQSxFQUFHO0lBQ2hCO0lBQ0EsTUFBTSxDQUFDQyxLQUFLLEVBQUVDLGFBQWEsQ0FBQyxHQUFHQyxNQUFBLENBQU1ILFFBQVEsQ0FBQyxDQUFDOztJQUUvQztJ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
|
|
380
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsImNyZWF0ZVJlZiIsIlB1cmVDb21wb25lbnQiLCJ1dGlscyIsImNvbmZpZyIsIlBsdXNDaXJjbGVPdXRsaW5lZCIsIkNsb3NlQ2lyY2xlT3V0bGluZWQiLCJDbG9zZU91dGxpbmVkIiwiRXhwYW5kT3V0bGluZWQiLCJDb21wcmVzc091dGxpbmVkIiwiQnV0dG9uIiwiZ2V0TGVzcyIsInN0eWxlcyIsImdldExvY2FsU3RvcmUiLCJDb25maXJtIiwib21pdCIsIkRyYWdnYWJsZSIsImNscyIsIk5zY01vZGFsIiwidXNlTW9kYWwiLCJtb2RhbCIsImNvbnRleHRIb2xkZXIiLCJfTW9kYWwiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwiX2RlZmluZVByb3BlcnR5Iiwic2NvcGUiLCJwYXJhbXMiLCJiZWZvcmVSZW5kZXIiLCJjYWxsYmFja0JlZm9yZUNsb3NlIiwiY2FsbGJhY2siLCJhZnRlclJlbmRlciIsImV2IiwiZGF0YSIsIkpTT04iLCJwYXJzZSIsImUiLCJjb25zb2xlIiwibG9nIiwiX3RoaXMiLCJ0eXBlIiwic3RvcmVQcmVmaXgiLCJhdXRvVHlwZSIsInN0YXRlIiwidmlzaWJsZSIsImV4cGFuZCIsIm1vZGFsVHlwZSIsImJvdW5kcyIsImxlZnQiLCJ0b3AiLCJib3R0b20iLCJyaWdodCIsImRyYWdnZXIiLCJjb21wb25lbnREaWRNb3VudCIsIndpbmRvdyIsImFkZEV2ZW50TGlzdGVuZXIiLCJsaXN0ZW5NZXNzYWdlIiwiY29tcG9uZW50V2lsbFVubW91bnQiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiY29tcG9uZW50RGlkVXBkYXRlIiwicHJldlByb3BzIiwicHJldlN0YXRlIiwic25hcHNob3QiLCJzZXRTdGF0ZSIsInNob3ciLCJvcHRpb24iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJfb2JqZWN0U3ByZWFkIiwiaGlkZSIsImdldFJldHVyblZhbHVlIiwicmV0dXJuVmFsdWUiLCJjbG9zZSIsInJlc3VsdCIsImJ1dHRvbkNsb3NlIiwiZm9ybUV4cGFuZCIsIm9uQ2FuY2VsIiwib25CdXR0b25DYW5jZWwiLCJvbkNsb3NlIiwidmFsaWQiLCJjaGFuZ2UiLCJjb250ZW50Iiwib25PayIsImdldFBhcmFtcyIsImtleSIsIm9uU3RhcnQiLCJfZXZlbnQiLCJ1aURhdGEiLCJfdGhpcyRkcmFnZ2xlUmVmJGN1cnIiLCJjbGllbnRXaWR0aCIsImNsaWVudEhlaWdodCIsImRvY3VtZW50IiwiZG9jdW1lbnRFbGVtZW50IiwidGFyZ2V0UmVjdCIsImRyYWdnbGVSZWYiLCJjdXJyZW50IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwieCIsInkiLCJyZW5kZXIiLCJfdGhpcyRwcm9wcyIsImNsb3NhYmxlIiwib2tCdXR0b25Qcm9wcyIsImNhbmNlbEJ1dHRvblByb3BzIiwiZHJhZ2FibGUiLCJmb290ZXJCdXR0b24iLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMiLCJfZXhjbHVkZWQiLCJtb3VudEVsZW1lbnRJZCIsImdldENvbnRhaW5lciIsImdldEVsZW1lbnRCeUlkIiwibW9kYWxSZW5kZXIiLCJjcmVhdGVFbGVtZW50IiwiZGlzYWJsZWQiLCJldmVudCIsInJlZiIsInRpdGxlIiwiY2xhc3NOYW1lIiwib25Nb3VzZU92ZXIiLCJvbk1vdXNlT3V0Iiwib25DbGljayIsInN0eWxlIiwibWFyZ2luUmlnaHQiLCJtb2RhbEJ1dHRvbiIsImZvb3RlciIsIl9leHRlbmRzIiwiYmluZCIsImljb24iLCJjYW5jbGVCdXR0b25Qcm9wcyIsImNhbmNlbFRleHQiLCJva1RleHQiLCJtYXAiLCJpdGVtIiwiaW5kZXgiLCJtYXhXaWR0aCIsIndpZHRoIiwib2xkUHJvcHMiLCJuZXdEcmF3ZXJQcm9wcyIsIl9EcmF3ZXIiLCJvcGVuIiwiY2VudGVyZWQiLCJhZnRlckNsb3NlIiwiaW5mbyIsInN1Y2Nlc3MiLCJlcnJvciIsIndhcm5pbmciLCJkZXN0cm95QWxsIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYmFzZS9tb2RhbC9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IGNyZWF0ZVJlZiwgUHVyZUNvbXBvbmVudCwgUmVhY3ROb2RlIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IE1vZGFsLCBNb2RhbFByb3BzLCBEcmF3ZXIsIERyYXdlclByb3BzIH0gZnJvbSBcImFudGRcIjtcclxuaW1wb3J0IHsgdXRpbHMgfSBmcm9tIFwiQGJqLW5zYy9tc24vbGliL3V0aWxzXCI7XHJcbmltcG9ydCBjb25maWcgZnJvbSBcIi4uLy4uL2NvbmZpZ1wiO1xyXG5pbXBvcnQge1xyXG4gIFBsdXNDaXJjbGVPdXRsaW5lZCxcclxuICBDbG9zZUNpcmNsZU91dGxpbmVkLFxyXG4gIENsb3NlT3V0bGluZWQsXHJcbiAgRXhwYW5kT3V0bGluZWQsXHJcbiAgQ29tcHJlc3NPdXRsaW5lZCxcclxufSBmcm9tIFwiQGFudC1kZXNpZ24vaWNvbnNcIjtcclxuaW1wb3J0IEJ1dHRvbiBmcm9tIFwiLi4vYnV0dG9uXCI7XHJcbmltcG9ydCB7IGdldExlc3MgfSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9pbmRleC5sZXNzXCI7XHJcbmltcG9ydCB7IGdldExvY2FsU3RvcmUgfSBmcm9tIFwiQGJqLW5zYy9mdW5jdGlvbnNcIjtcclxuaW1wb3J0IENvbmZpcm0gZnJvbSBcIi4vQ29uZmlybVwiO1xyXG5pbXBvcnQgb21pdCBmcm9tIFwib21pdC5qc1wiO1xyXG5pbXBvcnQgdHlwZSB7IERyYWdnYWJsZURhdGEsIERyYWdnYWJsZUV2ZW50IH0gZnJvbSBcInJlYWN0LWRyYWdnYWJsZVwiO1xyXG5pbXBvcnQgRHJhZ2dhYmxlIGZyb20gXCJyZWFjdC1kcmFnZ2FibGVcIjtcclxuaW1wb3J0IGNscyBmcm9tIFwiY2xhc3NuYW1lc1wiO1xyXG5cclxuaW50ZXJmYWNlIGZvcm1FeHBhbmQge1xyXG4gIGNoYW5nZT86IGJvb2xlYW47XHJcbiAgdmFsaWQ/OiBib29sZWFuO1xyXG4gIGV4cGFuZD86IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTnNjTW9kYWxQb3JwcyBleHRlbmRzIE1vZGFsUHJvcHMge1xyXG4gIHR5cGU/OiBcIm1vZGFsXCIgfCBcImRyYXdlclwiIHwgXCJhdXRvXCI7XHJcbiAgZm9ybUV4cGFuZD86IGZvcm1FeHBhbmQ7XHJcbiAgb25CdXR0b25DYW5jZWw/OiBhbnk7IC8v5bqV6YOo5Y+W5raI5oyJ6ZKu5Zue6LCDXHJcbiAgZHJhZ2FibGU/OiBib29sZWFuOyAvL+W8ueahhuaYr+WQpueci+aLluWKqFxyXG4gIGZvb3RlckJ1dHRvbj86IEFycmF5PGFueT47IC8vZm9vdGVyIOWFtuS7luiHquWumuS5ieaMiemSrlxyXG59XHJcblxyXG5pbnRlcmZhY2UgTnNjTW9kYWxJbnRlcmZhY2VcclxuICBleHRlbmRzIFJlYWN0LkNvbXBvbmVudENsYXNzPE5zY01vZGFsUG9ycHMgJiBEcmF3ZXJQcm9wcywgYW55PiB7XHJcbiAgdXNlTW9kYWw6ICgpID0+IFthbnksIFJlYWN0LlJlYWN0RWxlbWVudF07XHJcbiAgY29uZmlybTogdHlwZW9mIENvbmZpcm07XHJcbiAgaW5mbzogdHlwZW9mIE1vZGFsLmluZm87XHJcbiAgc3VjY2VzczogdHlwZW9mIE1vZGFsLnN1Y2Nlc3M7XHJcbiAgZXJyb3I6IHR5cGVvZiBNb2RhbC5lcnJvcjtcclxuICB3YXJuaW5nOiB0eXBlb2YgTW9kYWwud2FybmluZztcclxuICBkZXN0cm95QWxsOiB0eXBlb2YgTW9kYWwuZGVzdHJveUFsbDtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTnNjTW9kYWwgZXh0ZW5kcyBQdXJlQ29tcG9uZW50PFxyXG4gIE5zY01vZGFsUG9ycHMgJiBEcmF3ZXJQcm9wcyxcclxuICBhbnlcclxuPiB7XHJcbiAgc3RhdGljIHVzZU1vZGFsKCkge1xyXG4gICAgLy8g6LCD55SoIGFudGQgTW9kYWwg55qEIHVzZU1vZGFsIGhvb2tcclxuICAgIGNvbnN0IFttb2RhbCwgY29udGV4dEhvbGRlcl0gPSBNb2RhbC51c2VNb2RhbCgpO1xyXG5cclxuICAgIC8vIOi/lOWbniBjb250ZXh0SG9sZGVy77yM56Gu5L+d5LiK5LiL5paH5q2j56Gu5Lyg6YCSXHJcbiAgICByZXR1cm4gW21vZGFsLCBjb250ZXh0SG9sZGVyXSBhcyBbYW55LCBSZWFjdC5SZWFjdEVsZW1lbnRdO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGNvbmZpcm0gPSBDb25maXJtO1xyXG4gIC8vIHN0YXRpYyBjb25maXJtID0gTW9kYWwuY29uZmlybTtcclxuICBzdGF0aWMgaW5mbyA9IE1vZGFsLmluZm87XHJcbiAgc3RhdGljIHN1Y2Nlc3MgPSBNb2RhbC5zdWNjZXNzO1xyXG4gIHN0YXRpYyBlcnJvciA9IE1vZGFsLmVycm9yO1xyXG4gIHN0YXRpYyB3YXJuaW5nID0gTW9kYWwud2FybmluZztcclxuICBzdGF0aWMgZGVzdHJveUFsbCA9IE1vZGFsLmRlc3Ryb3lBbGw7XHJcbiAgLy/ov5Tlm57lgLxcclxuICByZXR1cm5WYWx1ZSA9IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICBzdXBlcihwcm9wcyk7XHJcbiAgICBsZXQgbW9kYWwgPSBwcm9wcy50eXBlIHx8IFwiYXV0b1wiO1xyXG4gICAgY29uc3QgeyBzdG9yZVByZWZpeCB9ID0gY29uZmlnKCk7XHJcbiAgICBsZXQgYXV0b1R5cGUgPSBnZXRMb2NhbFN0b3JlKFxyXG4gICAgICBcImZvcm1UeXBlXCIsXHJcbiAgICAgIHN0b3JlUHJlZml4ID8gc3RvcmVQcmVmaXggOiBcIm5zYy1ob21lXCJcclxuICAgICk7XHJcbiAgICBhdXRvVHlwZSA9IGF1dG9UeXBlID8gYXV0b1R5cGUgOiBudWxsO1xyXG4gICAgdGhpcy5zdGF0ZSA9IHtcclxuICAgICAgdmlzaWJsZTogZmFsc2UsXHJcbiAgICAgIGV4cGFuZDogZmFsc2UsXHJcbiAgICAgIG1vZGFsVHlwZTogbW9kYWwgPT0gXCJhdXRvXCIgPyBhdXRvVHlwZSA6IG1vZGFsLFxyXG4gICAgICBib3VuZHM6IHsgbGVmdDogMCwgdG9wOiAwLCBib3R0b206IDAsIHJpZ2h0OiAwIH0sXHJcbiAgICAgIGRyYWdnZXI6IHRydWUsXHJcbiAgICB9O1xyXG4gIH1cclxuICBkcmFnZ2xlUmVmID0gY3JlYXRlUmVmPEhUTUxEaXZFbGVtZW50PigpO1xyXG5cclxuICBvcHRpb246IGFueSA9IHtcclxuICAgIC8v5Zue6LCD5L2c55So5Z+fXHJcbiAgICBzY29wZTogdGhpcyxcclxuICAgIC8vb3BlbuS8oOmAkui/h+adpeeahOmhtemdouWPguaVsFxyXG4gICAgcGFyYW1zOiB7fSxcclxuICAgIC8v5pi+56S65LmL5YmN5Zue6LCDXHJcbiAgICBiZWZvcmVSZW5kZXI6IG51bGwsXHJcbiAgICAvL+WFs+mXreS5i+WJjeWbnuiwg++8jOWmguaenHJldHVybiBmYWxzZe+8jOS4lOeql+WPo+S4jeWFs+mXrVxyXG4gICAgY2FsbGJhY2tCZWZvcmVDbG9zZTogbnVsbCxcclxuICAgIC8v5YWz6Zet5ZCO5Zue6LCD77yM5byC5q2l5pON5L2cXHJcbiAgICBjYWxsYmFjazogbnVsbCxcclxuICAgIC8v5pi+56S65LmL5ZCO5Zue6LCDXHJcbiAgICBhZnRlclJlbmRlcjogbnVsbCxcclxuICB9O1xyXG4gIC8qKlxyXG4gICAqIOa4suafk+WujOaIkFxyXG4gICAqIEBwYXJhbSB7Kn0gb3B0aW9uICDmlbTmlLnkvKDpgJLlr7nosaFcclxuICAgKi9cclxuICBjb21wb25lbnREaWRNb3VudCgpIHtcclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLCB0aGlzLmxpc3Rlbk1lc3NhZ2UpO1xyXG4gIH1cclxuXHJcbiAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XHJcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgdGhpcy5saXN0ZW5NZXNzYWdlKTtcclxuICB9XHJcblxyXG4gIGNvbXBvbmVudERpZFVwZGF0ZShcclxuICAgIHByZXZQcm9wczogUmVhZG9ubHk8TnNjTW9kYWxQb3JwcyAmIERyYXdlclByb3BzPixcclxuICAgIHByZXZTdGF0ZTogUmVhZG9ubHk8YW55PixcclxuICAgIHNuYXBzaG90PzogYW55XHJcbiAgKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5wcm9wcy50eXBlICE9PSBwcmV2UHJvcHMudHlwZSkge1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICBtb2RhbFR5cGU6IHRoaXMucHJvcHMudHlwZSB8fCBcImF1dG9cIixcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGxpc3Rlbk1lc3NhZ2UgPSAoZXYpID0+IHtcclxuICAgIGxldCBkYXRhID0ge30gYXMgYW55O1xyXG4gICAgaWYgKHR5cGVvZiBldi5kYXRhID09PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgZGF0YSA9IEpTT04ucGFyc2UoZXYuZGF0YSk7XHJcbiAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgbGV0IF90aGlzID0gdGhpcztcclxuICAgIC8vIGlmIChkYXRhLmV2ZW50VHlwZSA9PSBcImNoYW5nZUZvcm1UeXBlXCIpIHtcclxuICAgIC8vICAgY29uc3QgeyBwYXlsb2FkIH0gPSBkYXRhO1xyXG4gICAgLy8gICBpZiAocGF5bG9hZC50eXBlID09IFwibW9kYWxcIiB8fCBwYXlsb2FkLnR5cGUgPT0gXCJkcmF3ZXJcIikge1xyXG4gICAgLy8gICAgIF90aGlzLnNldFN0YXRlKHsgbW9kYWxUeXBlOiBwYXlsb2FkLnR5cGUgfSk7XHJcbiAgICAvLyAgIH1cclxuICAgIC8vIH1cclxuICB9O1xyXG4gIC8v5pi+56S6XHJcbiAgc2hvdyhvcHRpb246IGFueSA9IHt9KSB7XHJcbiAgICBjb25zdCB7IHNjb3BlIH0gPSB0aGlzLm9wdGlvbjtcclxuICAgIGNvbnN0IHsgYmVmb3JlUmVuZGVyLCBhZnRlclJlbmRlciB9ID0gb3B0aW9uO1xyXG4gICAgdGhpcy5vcHRpb24gPSB7IC4uLnRoaXMub3B0aW9uLCAuLi5vcHRpb24gfTtcclxuICAgIHV0aWxzLmNhbGxiYWNrKGJlZm9yZVJlbmRlciwgc2NvcGUpO1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7IHZpc2libGU6IHRydWUgfSwgKCkgPT4ge1xyXG4gICAgICB1dGlscy5jYWxsYmFjayhhZnRlclJlbmRlciwgc2NvcGUpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvL+makOiXj1xyXG4gIGhpZGUob3B0aW9uOiBhbnkgPSB7fSkge1xyXG4gICAgbGV0IF90aGlzID0gdGhpcztcclxuICAgIF90aGlzLnNldFN0YXRlKHsgdmlzaWJsZTogZmFsc2UgfSk7XHJcbiAgfVxyXG5cclxuICAvL+iOt+WPlumcgOimgei/lOWbnueahOWAvFxyXG4gIGdldFJldHVyblZhbHVlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMucmV0dXJuVmFsdWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDlhbPpl63luKblm57osINcclxuICAgKi9cclxuICBjbG9zZShyZXN1bHQ/OiBhbnksIGJ1dHRvbkNsb3NlID0gZmFsc2UpIHtcclxuICAgIHZhciBfdGhpcyA9IHRoaXM7XHJcbiAgICAvLyBjb25zdCB7IGNhbGxiYWNrLCBzY29wZSwgY2FsbGJhY2tCZWZvcmVDbG9zZSB9ID0gdGhpcy5vcHRpb247XHJcbiAgICBjb25zdCB7IGZvcm1FeHBhbmQgPSB7fSwgb25DYW5jZWwsIG9uQnV0dG9uQ2FuY2VsLCBvbkNsb3NlIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgLy8gY29uc3QgciA9IHV0aWxzLmNhbGxiYWNrKGNhbGxiYWNrQmVmb3JlQ2xvc2UsIHNjb3BlLCBbdGhpcy5yZXR1cm5WYWx1ZV0pO1xyXG4gICAgLy8gaWYgKHIgIT09IGZhbHNlKSB7XHJcbiAgICBjb25zdCB7IGV4cGFuZCA9IGZhbHNlIH0gPSBmb3JtRXhwYW5kO1xyXG4gICAgaWYgKGV4cGFuZCAmJiBmb3JtRXhwYW5kLnZhbGlkICYmIGZvcm1FeHBhbmQuY2hhbmdlKSB7XHJcbiAgICAgIENvbmZpcm0oe1xyXG4gICAgICAgIGNvbnRlbnQ6IFwi5b2T5YmN6K6w5b2V5bey5L+u5pS55bCa5pyq5L+d5a2Y77yM56Gu5a6a6KaB5pS+5byD5L+u5pS55ZCX77yfXCIsXHJcbiAgICAgICAgb25PaygpIHtcclxuICAgICAgICAgIGlmIChvbkNhbmNlbCB8fCBvbkNsb3NlKSB7XHJcbiAgICAgICAgICAgIGlmIChidXR0b25DbG9zZSAmJiBvbkJ1dHRvbkNhbmNlbCkge1xyXG4gICAgICAgICAgICAgIG9uQnV0dG9uQ2FuY2VsKHJlc3VsdCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgb25DYW5jZWwgJiYgb25DYW5jZWwocmVzdWx0KTtcclxuICAgICAgICAgICAgICBvbkNsb3NlICYmIG9uQ2xvc2UocmVzdWx0KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoeyB2aXNpYmxlOiBmYWxzZSB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChvbkNhbmNlbCB8fCBvbkNsb3NlKSB7XHJcbiAgICAgICAgaWYgKGJ1dHRvbkNsb3NlICYmIG9uQnV0dG9uQ2FuY2VsKSB7XHJcbiAgICAgICAgICBvbkJ1dHRvbkNhbmNlbChyZXN1bHQpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBvbkNhbmNlbCAmJiBvbkNhbmNlbChyZXN1bHQpO1xyXG4gICAgICAgICAgb25DbG9zZSAmJiBvbkNsb3NlKHJlc3VsdCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIF90aGlzLnNldFN0YXRlKHsgdmlzaWJsZTogZmFsc2UgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC8vIH1cclxuICAgIC8vIHV0aWxzLmNhbGxiYWNrKGNhbGxiYWNrLCBzY29wZSwgW190aGlzLnJldHVyblZhbHVlXSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDojrflj5blj4LmlbDvvIzlpoLmnpxrZXnkuI3kvKDpgJLvvIzkuJTojrflj5blhajpg6hcclxuICAgKiBAcGFyYW0ge1N0cmluZ30ga2V5XHJcbiAgICovXHJcbiAgZ2V0UGFyYW1zKGtleSkge1xyXG4gICAgaWYgKGtleSkgcmV0dXJuIHRoaXMub3B0aW9uLnBhcmFtc1trZXldO1xyXG4gICAgcmV0dXJuIHRoaXMub3B0aW9uLnBhcmFtcztcclxuICB9XHJcbiAgb25TdGFydChfZXZlbnQ6IERyYWdnYWJsZUV2ZW50LCB1aURhdGE6IERyYWdnYWJsZURhdGEpIHtcclxuICAgIGNvbnN0IHsgY2xpZW50V2lkdGgsIGNsaWVudEhlaWdodCB9ID0gd2luZG93LmRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcclxuICAgIGNvbnN0IHRhcmdldFJlY3QgPSB0aGlzLmRyYWdnbGVSZWYuY3VycmVudD8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICBpZiAoIXRhcmdldFJlY3QpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIGJvdW5kczoge1xyXG4gICAgICAgIGxlZnQ6IC10YXJnZXRSZWN0LmxlZnQgKyB1aURhdGEueCxcclxuICAgICAgICByaWdodDogY2xpZW50V2lkdGggLSAodGFyZ2V0UmVjdC5yaWdodCAtIHVpRGF0YS54KSxcclxuICAgICAgICB0b3A6IC10YXJnZXRSZWN0LnRvcCArIHVpRGF0YS55LFxyXG4gICAgICAgIGJvdHRvbTogY2xpZW50SGVpZ2h0IC0gKHRhcmdldFJlY3QuYm90dG9tIC0gdWlEYXRhLnkpLFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICByZW5kZXIoKSB7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIC8vIHR5cGUgPSBcIm1vZGFsXCIsXHJcbiAgICAgIGNsb3NhYmxlLFxyXG4gICAgICAvLyB0aXRsZTogb3JndGl0bGUsXHJcbiAgICAgIG9rQnV0dG9uUHJvcHMgPSB7fSxcclxuICAgICAgY2FuY2VsQnV0dG9uUHJvcHMgPSB7fSxcclxuICAgICAgZm9ybUV4cGFuZCA9IHt9LFxyXG4gICAgICBkcmFnYWJsZSA9IHRydWUsXHJcbiAgICAgIGZvb3RlckJ1dHRvbiA9IFtdLFxyXG4gICAgICAuLi5wYXJhbXNcclxuICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgbGV0IHByb3BzOiBhbnkgPSB7IC4uLnBhcmFtcyB9O1xyXG4gICAgbGV0IHsgbW91bnRFbGVtZW50SWQgfSA9IGNvbmZpZygpO1xyXG4gICAgaWYgKG1vdW50RWxlbWVudElkKSB7XHJcbiAgICAgIHByb3BzID0ge1xyXG4gICAgICAgIGdldENvbnRhaW5lcjogKCkgPT4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobW91bnRFbGVtZW50SWQpLFxyXG4gICAgICAgIC4uLnByb3BzLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgaWYgKGRyYWdhYmxlICYmIHRoaXMuc3RhdGUubW9kYWxUeXBlID09IFwibW9kYWxcIikge1xyXG4gICAgICBwcm9wcyA9IHtcclxuICAgICAgICBtb2RhbFJlbmRlcjogKG1vZGFsKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8RHJhZ2dhYmxlXHJcbiAgICAgICAgICAgICAgZGlzYWJsZWQ9e3RoaXMuc3RhdGUuZHJhZ2dlcn1cclxuICAgICAgICAgICAgICBib3VuZHM9e3RoaXMuc3RhdGUuYm91bmRzfVxyXG4gICAgICAgICAgICAgIG9uU3RhcnQ9eyhldmVudCwgdWlEYXRhKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9uU3RhcnQoZXZlbnQsIHVpRGF0YSk7XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxkaXYgcmVmPXt0aGlzLmRyYWdnbGVSZWZ9Pnttb2RhbH08L2Rpdj5cclxuICAgICAgICAgICAgPC9EcmFnZ2FibGU+XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLi4ucHJvcHMsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgdGl0bGUgPSAoXHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzc05hbWU9e2NscyhnZXRMZXNzKHN0eWxlcywgXCJuc2MtbW9kYWwtdGl0bGVcIiksIHtcclxuICAgICAgICAgIFtnZXRMZXNzKHN0eWxlcywgXCJuc2MtbW9kYWwtdGl0bGUtZHJhZ2dlclwiKV06XHJcbiAgICAgICAgICAgIGRyYWdhYmxlICYmIHRoaXMuc3RhdGUubW9kYWxUeXBlID09IFwibW9kYWxcIixcclxuICAgICAgICB9KX1cclxuICAgICAgICBvbk1vdXNlT3Zlcj17KCkgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMuc3RhdGUuZHJhZ2dlcikge1xyXG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICBkcmFnZ2VyOiBmYWxzZSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfX1cclxuICAgICAgICBvbk1vdXNlT3V0PXsoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgZHJhZ2dlcjogdHJ1ZSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH19XHJcbiAgICAgID5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwibnNjLW1vZGFsLXRpdGxlLWljb25zXCIpfT5cclxuICAgICAgICAgIHshdGhpcy5zdGF0ZS5leHBhbmQgJiYgZm9ybUV4cGFuZC5leHBhbmQgJiYgKFxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGV4cGFuZDogdHJ1ZSB9KTtcclxuICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwibnNjLW1vZGFsLXRpdGxlLWljb25cIil9XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8RXhwYW5kT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApfVxyXG4gICAgICAgICAge3RoaXMuc3RhdGUuZXhwYW5kICYmIGZvcm1FeHBhbmQuZXhwYW5kICYmIChcclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBleHBhbmQ6IGZhbHNlIH0pO1xyXG4gICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJuc2MtbW9kYWwtdGl0bGUtaWNvblwiKX1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxDb21wcmVzc091dGxpbmVkIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgKX1cclxuICAgICAgICAgIHtjbG9zYWJsZSAhPT0gZmFsc2UgJiYgKFxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xyXG4gICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJuc2MtbW9kYWwtdGl0bGUtaWNvblwiKX1cclxuICAgICAgICAgICAgICBzdHlsZT17eyBtYXJnaW5SaWdodDogMCB9fVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPENsb3NlT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJuc2MtbW9kYWwtdGl0bGUtY29udGVudFwiKX0+XHJcbiAgICAgICAgICB7dGhpcy5wcm9wcy50aXRsZX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICApO1xyXG4gICAgY29uc3QgeyBtb2RhbEJ1dHRvbiB9ID0gY29uZmlnKCk7XHJcbiAgICBjb25zdCBmb290ZXIgPSAoXHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJuc2MtbW9kYWwtZm9vdGVyXCIpfT5cclxuICAgICAgICA8QnV0dG9uXHJcbiAgICAgICAgICBvbkNsaWNrPXt0aGlzLmNsb3NlLmJpbmQodGhpcywge30sIHRydWUpfVxyXG4gICAgICAgICAgaWNvbj17PENsb3NlQ2lyY2xlT3V0bGluZWQgLz59XHJcbiAgICAgICAgICB7Li4ubW9kYWxCdXR0b24uY2FuY2xlQnV0dG9uUHJvcHN9XHJcbiAgICAgICAgICB7Li4uY2FuY2VsQnV0dG9uUHJvcHN9XHJcbiAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm5zYy1tb2RhbC1mb290ZXItYnV0dG9uLW1hcmdpblwiKX1cclxuICAgICAgICA+XHJcbiAgICAgICAgICB7dGhpcy5wcm9wcy5jYW5jZWxUZXh0ID8gdGhpcy5wcm9wcy5jYW5jZWxUZXh0IDogXCLlj5bmtohcIn1cclxuICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICA8QnV0dG9uXHJcbiAgICAgICAgICB0eXBlPVwicHJpbWFyeVwiXHJcbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgIHByb3BzLm9uT2sgJiYgcHJvcHMub25PaygpO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAgIGljb249ezxQbHVzQ2lyY2xlT3V0bGluZWQgLz59XHJcbiAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm5zYy1tb2RhbC1mb290ZXItYnV0dG9uLW1hcmdpblwiKX1cclxuICAgICAgICAgIHsuLi5tb2RhbEJ1dHRvbi5va0J1dHRvblByb3BzfVxyXG4gICAgICAgICAgey4uLm9rQnV0dG9uUHJvcHN9XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge3RoaXMucHJvcHMub2tUZXh0ID8gdGhpcy5wcm9wcy5va1RleHQgOiBcIuS/neWtmFwifVxyXG4gICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgIHtmb290ZXJCdXR0b24ubWFwKChpdGVtLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwibnNjLW1vZGFsLWZvb3Rlci1idXR0b24tbWFyZ2luXCIpfVxyXG4gICAgICAgICAgICAgIGtleT17aW5kZXh9XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICB7aXRlbX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0pfVxyXG4gICAgICA8L2Rpdj5cclxuICAgICk7XHJcbiAgICBpZiAoZm9ybUV4cGFuZC5leHBhbmQpIHtcclxuICAgICAgcHJvcHMgPSB7XHJcbiAgICAgICAgZm9vdGVyOiBmb290ZXIsXHJcbiAgICAgICAgLi4ucHJvcHMsXHJcbiAgICAgICAgdGl0bGU6IHRpdGxlLFxyXG4gICAgICAgIGNsb3NhYmxlOiBmYWxzZSxcclxuICAgICAgICBzdHlsZTogeyBtYXhXaWR0aDogXCIxMDB2d1wiIH0sXHJcbiAgICAgICAgd2lkdGg6IHRoaXMuc3RhdGUuZXhwYW5kID8gXCIxMDB2d1wiIDogcHJvcHMud2lkdGgsXHJcbiAgICAgIH07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBwcm9wcyA9IHtcclxuICAgICAgICBmb290ZXI6IGZvb3RlcixcclxuICAgICAgICAuLi5wcm9wcyxcclxuICAgICAgICB0aXRsZTogdGl0bGUsXHJcbiAgICAgICAgY2xvc2FibGU6IGZhbHNlLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuc3RhdGUubW9kYWxUeXBlID09IFwiZHJhd2VyXCIpIHtcclxuICAgICAgbGV0IG9sZFByb3BzID0geyAuLi5wcm9wcyB9O1xyXG4gICAgICBsZXQgbmV3RHJhd2VyUHJvcHMgPSBvbWl0KG9sZFByb3BzLCBbXCJvbk9rXCIsIFwib2tCdXR0b25Qcm9wc1wiXSk7XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgPERyYXdlclxyXG4gICAgICAgICAgb3Blbj17dGhpcy5zdGF0ZS52aXNpYmxlfVxyXG4gICAgICAgICAgb25DbG9zZT17KCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgICAgey4uLm5ld0RyYXdlclByb3BzfVxyXG4gICAgICAgIC8+XHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIDxNb2RhbFxyXG4gICAgICAgICAgb3Blbj17dGhpcy5zdGF0ZS52aXNpYmxlfVxyXG4gICAgICAgICAgb25DYW5jZWw9eygpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAgIG9uT2s9eygpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAgIG9rVGV4dD17XCLnoa7lrppcIn1cclxuICAgICAgICAgIGNhbmNlbFRleHQ9e1wi5Y+W5raIXCJ9XHJcbiAgICAgICAgICBjZW50ZXJlZD17dHJ1ZX1cclxuICAgICAgICAgIGNsYXNzTmFtZT17XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdGUuZXhwYW5kXHJcbiAgICAgICAgICAgICAgPyBnZXRMZXNzKHN0eWxlcywgXCJuc2MtbW9kYWwtYWxsc3JlZW5cIilcclxuICAgICAgICAgICAgICA6IGdldExlc3Moc3R5bGVzLCBcIm5zYy1tb2RhbFwiKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLy8gdGl0bGU9e2Zvcm1FeHBhbmQgPyB0aXRsZSA6IHRoaXMucHJvcHMudGl0bGV9XHJcbiAgICAgICAgICB7Li4ucHJvcHN9XHJcbiAgICAgICAgICBhZnRlckNsb3NlPXsoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgIGV4cGFuZDogZmFsc2UsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAvPlxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUEsT0FBT0EsS0FBSyxJQUFJQyxTQUFTLEVBQUVDLGFBQWEsUUFBbUIsT0FBTztBQUVsRSxTQUFTQyxLQUFLLFFBQVEsdUJBQXVCO0FBQzdDLE9BQU9DLE1BQU0sTUFBTSxjQUFjO0FBQ2pDLFNBQ0VDLGtCQUFrQixFQUNsQkMsbUJBQW1CLEVBQ25CQyxhQUFhLEVBQ2JDLGNBQWMsRUFDZEMsZ0JBQWdCLFFBQ1gsbUJBQW1CO0FBQzFCLE9BQU9DLE1BQU0sTUFBTSxXQUFXO0FBQzlCLFNBQVNDLE9BQU8sUUFBUSxhQUFhO0FBQ3JDLE9BQU9DLE1BQU0sTUFBTSxjQUFjO0FBQ2pDLFNBQVNDLGFBQWEsUUFBUSxtQkFBbUI7QUFDakQsT0FBT0MsT0FBTyxNQUFNLFdBQVc7QUFDL0IsT0FBT0MsSUFBSSxNQUFNLFNBQVM7QUFFMUIsT0FBT0MsU0FBUyxNQUFNLGlCQUFpQjtBQUN2QyxPQUFPQyxHQUFHLE1BQU0sWUFBWTtBQTJCNUIsZUFBZSxNQUFNQyxRQUFRLFNBQVNoQixhQUFhLENBR2pEO0VBQ0EsT0FBT2lCLFFBQVFBLENBQUEsRUFBRztJQUNoQjtJQUNBLE1BQU0sQ0FBQ0MsS0FBSyxFQUFFQyxhQUFhLENBQUMsR0FBR0MsTUFBQSxDQUFN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
|