nsc-react-component 2.0.4 → 2.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/lib/affix/index.d.ts +5 -0
  2. package/lib/affix/index.js +50 -0
  3. package/lib/alert/index.d.ts +5 -0
  4. package/lib/alert/index.js +50 -0
  5. package/lib/anchor/index.d.ts +6 -0
  6. package/lib/anchor/index.js +54 -0
  7. package/lib/avatar/index.d.ts +6 -0
  8. package/lib/avatar/index.js +54 -0
  9. package/lib/backTop/index.d.ts +5 -0
  10. package/lib/backTop/index.js +50 -0
  11. package/lib/badge/index.d.ts +6 -0
  12. package/lib/badge/index.js +54 -0
  13. package/lib/breadcrumb/index.d.ts +5 -0
  14. package/lib/breadcrumb/index.js +50 -0
  15. package/lib/calendar/index.d.ts +5 -0
  16. package/lib/calendar/index.js +50 -0
  17. package/lib/card/index.d.ts +7 -0
  18. package/lib/card/index.js +56 -0
  19. package/lib/carousel/index.d.ts +5 -0
  20. package/lib/carousel/index.js +50 -0
  21. package/lib/collapse/index.d.ts +6 -0
  22. package/lib/collapse/index.js +54 -0
  23. package/lib/comment/index.d.ts +5 -0
  24. package/lib/comment/index.js +50 -0
  25. package/lib/configProvider/index.d.ts +5 -0
  26. package/lib/configProvider/index.js +54 -0
  27. package/lib/descriptions/index.d.ts +6 -0
  28. package/lib/descriptions/index.js +54 -0
  29. package/lib/divider/index.d.ts +5 -0
  30. package/lib/divider/index.js +50 -0
  31. package/lib/drawer/index.d.ts +5 -0
  32. package/lib/drawer/index.js +50 -0
  33. package/lib/dropdown/index.d.ts +5 -0
  34. package/lib/dropdown/index.js +50 -0
  35. package/lib/grid/Col.d.ts +5 -0
  36. package/lib/grid/Col.js +50 -0
  37. package/lib/grid/Row.d.ts +5 -0
  38. package/lib/grid/Row.js +50 -0
  39. package/lib/grid/index.d.ts +1 -0
  40. package/lib/grid/index.js +2 -0
  41. package/lib/image/index.d.ts +9 -0
  42. package/lib/image/index.js +73 -0
  43. package/lib/index.d.ts +36 -1
  44. package/lib/index.js +36 -1
  45. package/lib/layout/index.d.ts +9 -0
  46. package/lib/layout/index.js +64 -0
  47. package/lib/list/index.d.ts +6 -0
  48. package/lib/list/index.js +54 -0
  49. package/lib/message/index.d.ts +13 -0
  50. package/lib/message/index.js +59 -0
  51. package/lib/modal/index.d.ts +5 -0
  52. package/lib/modal/index.js +13 -3
  53. package/lib/notification/index.d.ts +12 -0
  54. package/lib/notification/index.js +59 -0
  55. package/lib/pageComponents/BasePage/Form.js +11 -12
  56. package/lib/pageComponents/BasePage/index.d.ts +5 -0
  57. package/lib/pageComponents/BasePage/index.js +93 -31
  58. package/lib/pageComponents/BasePage/index.less +13 -4
  59. package/lib/pageHeader/index.d.ts +5 -0
  60. package/lib/pageHeader/index.js +50 -0
  61. package/lib/pagination/index.d.ts +5 -0
  62. package/lib/pagination/index.js +50 -0
  63. package/lib/popconfirm/index.d.ts +5 -0
  64. package/lib/popconfirm/index.js +50 -0
  65. package/lib/popover/index.d.ts +5 -0
  66. package/lib/popover/index.js +50 -0
  67. package/lib/progress/index.d.ts +5 -0
  68. package/lib/progress/index.js +50 -0
  69. package/lib/result/index.d.ts +5 -0
  70. package/lib/result/index.js +50 -0
  71. package/lib/skeleton/index.d.ts +5 -0
  72. package/lib/skeleton/index.js +50 -0
  73. package/lib/space/index.d.ts +5 -0
  74. package/lib/space/index.js +50 -0
  75. package/lib/spin/index.d.ts +5 -0
  76. package/lib/spin/index.js +50 -0
  77. package/lib/statistic/index.d.ts +6 -0
  78. package/lib/statistic/index.js +54 -0
  79. package/lib/steps/index.d.ts +5 -0
  80. package/lib/steps/index.js +50 -0
  81. package/lib/table/index.less +1 -1
  82. package/lib/timeline/index.d.ts +6 -0
  83. package/lib/timeline/index.js +54 -0
  84. package/lib/tooltip/index.d.ts +5 -0
  85. package/lib/tooltip/index.js +50 -0
  86. package/lib/typography/index.d.ts +5 -0
  87. package/lib/typography/index.js +50 -0
  88. package/lib/utils.js +4 -2
  89. package/package.json +1 -1
@@ -1,12 +1,5 @@
1
1
  function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
2
2
 
3
- import "antd/es/row/style/css";
4
- import _Row from "antd/es/row";
5
- import "antd/es/col/style/css";
6
- import _Col from "antd/es/col";
7
- import "antd/es/message/style/css";
8
- import _message from "antd/es/message";
9
-
10
3
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
11
4
 
12
5
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
@@ -36,6 +29,9 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
36
29
  import React, { PureComponent } from "react";
37
30
  import Form from "../../form";
38
31
  import { getNode } from "../../utils";
32
+ import message from "../../message";
33
+ import Col from "../../grid/Col";
34
+ import Row from "../../grid/Row";
39
35
 
40
36
  var EditorForm = /*#__PURE__*/function (_PureComponent) {
41
37
  _inherits(EditorForm, _PureComponent);
@@ -130,6 +126,10 @@ var EditorForm = /*#__PURE__*/function (_PureComponent) {
130
126
  });
131
127
  }
132
128
 
129
+ if (!submitUrl) {
130
+ throw new Error("url不能为空!");
131
+ }
132
+
133
133
  (_this2$formRef$curren = _this2.formRef.current) === null || _this2$formRef$curren === void 0 ? void 0 : _this2$formRef$curren.onSubmit(submitUrl, {
134
134
  data: _objectSpread({}, formValue),
135
135
  noUndefined: label == "编辑",
@@ -142,8 +142,7 @@ var EditorForm = /*#__PURE__*/function (_PureComponent) {
142
142
  });
143
143
 
144
144
  if (code === 200) {
145
- _message.success(label + "成功");
146
-
145
+ message.success(label + "成功");
147
146
  callBack && callBack();
148
147
  }
149
148
  });
@@ -183,7 +182,7 @@ var EditorForm = /*#__PURE__*/function (_PureComponent) {
183
182
  wrapperCol: {
184
183
  flex: "15vw"
185
184
  }
186
- }, /*#__PURE__*/React.createElement(_Row, {
185
+ }, /*#__PURE__*/React.createElement(Row, {
187
186
  gutter: 24
188
187
  }, formProps.map(function (item, index) {
189
188
  var props = _objectSpread({}, item.props);
@@ -196,7 +195,7 @@ var EditorForm = /*#__PURE__*/function (_PureComponent) {
196
195
  _this3.valid = newValid;
197
196
  }
198
197
 
199
- return /*#__PURE__*/React.createElement(_Col, {
198
+ return /*#__PURE__*/React.createElement(Col, {
200
199
  span: item.span || 12,
201
200
  key: index
202
201
  }, /*#__PURE__*/React.createElement(Form.Item, {
@@ -214,4 +213,4 @@ var EditorForm = /*#__PURE__*/function (_PureComponent) {
214
213
  }(PureComponent);
215
214
 
216
215
  export default EditorForm;
217
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3BhZ2VDb21wb25lbnRzL0Jhc2VQYWdlL0Zvcm0udHN4Il0sIm5hbWVzIjpbIlJlYWN0IiwiUHVyZUNvbXBvbmVudCIsIkZvcm0iLCJnZXROb2RlIiwiRWRpdG9yRm9ybSIsImNyZWF0ZVJlZiIsImxvYWRpbmciLCJsYWJlbCIsImVkaXRvckZsYWciLCJ2YWx1ZSIsImZsYWciLCJzZXRTdGF0ZSIsImZvcm1SZWYiLCJjdXJyZW50Iiwic2hvd0Zvcm0iLCJhdHRyaWJ1dGUiLCJwcm9wcyIsImF1dG9TdWJtaXQiLCJzdWJtaXRVcmwiLCJzdWJtaXRQYXJhbXMiLCJvblN1Ym1pdCIsImNhbGxCYWNrIiwic3RhdGUiLCJmb3JtVmFsdWUiLCJnZXRGaWVsZHNWYWx1ZSIsInZhbGlkIiwidmFsaWRhdGVGaWVsZHMiLCJ0aGVuIiwiZGF0YSIsImlkIiwibm9VbmRlZmluZWQiLCJyZXMiLCJjb2RlIiwic3VjY2VzcyIsImNhdGNoIiwiZXJyb3JJbmZvIiwiZm9ybVByb3BzIiwibW9kYWxQcm9wcyIsInRpdGxlIiwib2tUZXh0IiwiY2FuY2VsVGV4dCIsIm9uT2siLCJiaW5kIiwib2tCdXR0b25Qcm9wcyIsImNlbnRlcmVkIiwid2lkdGgiLCJuZXdWYWxpZCIsImZsZXgiLCJtYXAiLCJpdGVtIiwiaW5kZXgiLCJydWxlcyIsImxlbmd0aCIsInB1c2giLCJuYW1lIiwic3BhbiIsInR5cGUiLCJwbGFjZWhvbGRlciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPQSxLQUFQLElBQWdCQyxhQUFoQixRQUFxQyxPQUFyQztBQUNBLE9BQU9DLElBQVAsTUFBaUIsWUFBakI7QUFFQSxTQUFTQyxPQUFULFFBQXdCLGFBQXhCOztJQUNNQyxVOzs7Ozs7Ozs7Ozs7Ozs7OzJFQUNNSixLQUFLLENBQUNLLFNBQU4sRTs7NERBQ0Y7QUFDTkMsTUFBQUEsT0FBTyxFQUFFLEtBREg7QUFF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cUJBQVFpQyxJQUFJLENBQUNqQyxLQUFiLENBQVg7O0FBQ0EsWUFBSWlDLElBQUksQ0FBQ0UsS0FBTCxJQUFjRixJQUFJLENBQUNFLEtBQUwsQ0FBV0MsTUFBWCxHQUFvQixDQUF0QyxFQUF5QztBQUN2Q04sVUFBQUEsUUFBUSxDQUFDTyxJQUFULENBQWNKLElBQUksQ0FBQ0ssSUFBbkI7QUFDRDs7QUFDRCxZQUFJSixLQUFLLEdBQUcsQ0FBUixLQUFjZCxTQUFTLENBQUNnQixNQUE1QixFQUFvQztBQUNsQyxVQUFBLE1BQUksQ0FBQzNCLEtBQUwsR0FBYXFCLFFBQWI7QUFDRDs7QUFDRCw0QkFDRTtBQUFLLFVBQUEsSUFBSSxFQUFFRyxJQUFJLENBQUNNLElBQUwsSUFBYSxFQUF4QjtBQUE0QixVQUFBLEdBQUcsRUFBRUw7QUFBakMsd0JBQ0Usb0JBQUMsSUFBRCxDQUFNLElBQU47QUFBVyxVQUFBLEtBQUssRUFBRUQsSUFBSSxDQUFDMUMsS0FBdkI7QUFBOEIsVUFBQSxJQUFJLEVBQUUwQyxJQUFJLENBQUNLLElBQXpDO0FBQStDLFVBQUEsS0FBSyxFQUFFTCxJQUFJLENBQUNFO0FBQTNELFdBQ0doRCxPQUFPLENBQUM4QyxJQUFJLENBQUNPLElBQU4sa0NBQ0hQLElBQUksQ0FBQ2pDLEtBREY7QUFFTnlDLFVBQUFBLFdBQVcsOEJBQVFSLElBQUksQ0FBQzFDLEtBQWI7QUFGTCxXQURWLENBREYsQ0FERjtBQVVELE9BbEJBLENBREgsQ0FQRixDQURGO0FBK0JEOzs7O0VBL0dzQk4sYTs7QUFrSHpCLGVBQWVHLFVBQWYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgUHVyZUNvbXBvbmVudCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IEZvcm0gZnJvbSBcIi4uLy4uL2Zvcm1cIjtcbmltcG9ydCB7IENvbCwgbWVzc2FnZSwgUm93IH0gZnJvbSBcImFudGRcIjtcbmltcG9ydCB7IGdldE5vZGUgfSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcbmNsYXNzIEVkaXRvckZvcm0gZXh0ZW5kcyBQdXJlQ29tcG9uZW50PGFueT4ge1xuICBmb3JtUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcbiAgc3RhdGUgPSB7XG4gICAgbG9hZGluZzogZmFsc2UsXG4gICAgbGFiZWw6IFwiXCIsXG4gICAgZWRpdG9yRmxhZzogdHJ1ZSxcbiAgICB2YWx1ZToge30gYXMgYW55LFxuICB9O1xuICB2YWxpZDogYW55ID0gW107XG4gIHNob3codmFsdWU/OiBhbnksIGZsYWcgPSB0cnVlKSB7XG4gICAgbGV0IGxhYmVsID0gXCLmlrDlop5cIjtcbiAgICBpZiAodmFsdWUgJiYgZmxhZykge1xuICAgICAgbGFiZWwgPSBcIue8lui+kVwiO1xuICAgIH0gZWxzZSBpZiAoIWZsYWcpIHtcbiAgICAgIGxhYmVsID0gXCLmn6XnnItcIjtcbiAgICB9XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgbGFiZWw6IGxhYmVsLFxuICAgICAgICBlZGl0b3JGbGFnOiAhZmxhZyxcbiAgICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMuZm9ybVJlZi5jdXJyZW50Py5zaG93Rm9ybSh2YWx1ZT8uYXR0cmlidXRlKTtcbiAgfVxuICBvblN1Ym1pdCgpIHtcbiAgICBjb25zdCB7XG4gICAgICBhdXRvU3VibWl0ID0gdHJ1ZSxcbiAgICAgIHN1Ym1pdFVybCA9IFwiXCIsXG4gICAgICBzdWJtaXRQYXJhbXMgPSB7fSxcbiAgICAgIG9uU3VibWl0LFxuICAgICAgY2FsbEJhY2ssXG4gICAgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyBsYWJlbCwgdmFsdWUgfSA9IHRoaXMuc3RhdGU7XG4gICAgY29uc3QgZm9ybVZhbHVlID0gdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LmdldEZpZWxkc1ZhbHVlKCk7XG4gICAgbGV0IHZhbGlkID0gdGhpcy52YWxpZDtcbiAgICB0aGlzLmZvcm1SZWYuY3VycmVudFxuICAgICAgPy52YWxpZGF0ZUZpZWxkcyh2YWxpZClcbiAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgb25TdWJtaXQgJiYgb25TdWJtaXQoZm9ybVZhbHVlKTtcbiAgICAgICAgaWYgKGF1dG9TdWJtaXQpIHtcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogdHJ1ZSB9KTtcbiAgICAgICAgICBsZXQgZGF0YSA9IHsgLi4uZm9ybVZhbHVlIH07XG4gICAgICAgICAgaWYgKGxhYmVsID09IFwi57yW6L6RXCIpIHtcbiAgICAgICAgICAgIGRhdGEgPSB7IC4uLmRhdGEsIGlkOiB2YWx1ZT8uaWQgfTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5mb3JtUmVmLmN1cnJlbnQ/Lm9uU3VibWl0KFxuICAgICAgICAgICAgc3VibWl0VXJsLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBkYXRhOiB7IC4uLmZvcm1WYWx1ZSB9LFxuICAgICAgICAgICAgICBub1VuZGVmaW5lZDogbGFiZWwgPT0gXCLnvJbovpFcIixcbiAgICAgICAgICAgICAgc3VibWl0UGFyYW1zLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB7IGNvZGUgfSA9IHJlcztcbiAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGxvYWRpbmc6IGZhbHNlIH0pO1xuICAgICAgICAgICAgICBpZiAoY29kZSA9PT0gMjAwKSB7XG4gICAgICAgICAgICAgICAgbWVzc2FnZS5zdWNjZXNzKGxhYmVsICsgXCLmiJDlip9cIik7XG4gICAgICAgICAgICAgICAgY2FsbEJhY2sgJiYgY2FsbEJhY2soKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKGVycm9ySW5mbzogYW55KSA9PiB7fSk7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgeyBmb3JtUHJvcHMgPSBbXSB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IGxvYWRpbmcsIGxhYmVsLCBlZGl0b3JGbGFnIH0gPSB0aGlzLnN0YXRlO1xuICAgIGNvbnN0IG1vZGFsUHJvcHMgPSB7XG4gICAgICB0aXRsZTogbGFiZWwsXG4gICAgICBva1RleHQ6IFwi56Gu5a6aXCIsXG4gICAgICBjYW5jZWxUZXh0OiBcIuWPlua2iFwiLFxuICAgICAgb25PazogdGhpcy5vblN1Ym1pdC5iaW5kKHRoaXMpLFxuICAgICAgb2tCdXR0b25Qcm9wczogeyBsb2FkaW5nOiBsb2FkaW5nIH0sXG4gICAgICBjZW50ZXJlZDogdHJ1ZSxcbiAgICAgIHdpZHRoOiBcIjUwdndcIixcbiAgICB9O1xuICAgIGNvbnN0IG5ld1ZhbGlkOiBhbnlbXSA9IFtdO1xuICAgIHJldHVybiAoXG4gICAgICA8Rm9ybVxuICAgICAgICByZWY9e3RoaXMuZm9ybVJlZn1cbiAgICAgICAgc2hvd01vZGVsPXtcIm1vZGFsXCJ9XG4gICAgICAgIG1vZGFsUHJvcHM9e3sgLi4ubW9kYWxQcm9wcyB9fVxuICAgICAgICBsYWJlbENvbD17eyBmbGV4OiBcIjEwMHB4XCIgfX1cbiAgICAgICAgd3JhcHBlckNvbD17eyBmbGV4OiBcIjE1dndcIiB9fVxuICAgICAgPlxuICAgICAgICA8Um93IGd1dHRlcj17MjR9PlxuICAgICAgICAgIHtmb3JtUHJvcHMubWFwKChpdGVtOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHByb3BzID0geyAuLi5pdGVtLnByb3BzIH07XG4gICAgICAgICAgICBpZiAoaXRlbS5ydWxlcyAmJiBpdGVtLnJ1bGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgbmV3VmFsaWQucHVzaChpdGVtLm5hbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGluZGV4ICsgMSA9PT0gZm9ybVByb3BzLmxlbmd0aCkge1xuICAgICAgICAgICAgICB0aGlzLnZhbGlkID0gbmV3VmFsaWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICA8Q29sIHNwYW49e2l0ZW0uc3BhbiB8fCAxMn0ga2V5PXtpbmRleH0+XG4gICAgICAgICAgICAgICAgPEZvcm0uSXRlbSBsYWJlbD17aXRlbS5sYWJlbH0gbmFtZT17aXRlbS5uYW1lfSBydWxlcz17aXRlbS5ydWxlc30+XG4gICAgICAgICAgICAgICAgICB7Z2V0Tm9kZShpdGVtLnR5cGUsIHtcbiAgICAgICAgICAgICAgICAgICAgLi4uaXRlbS5wcm9wcyxcbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IGDor7fovpPlhaUke2l0ZW0ubGFiZWx9YCxcbiAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgICAgICA8L0NvbD5cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSl9XG4gICAgICAgIDwvUm93PlxuICAgICAgPC9Gb3JtPlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgRWRpdG9yRm9ybTtcbiJdfQ==
216
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3BhZ2VDb21wb25lbnRzL0Jhc2VQYWdlL0Zvcm0udHN4Il0sIm5hbWVzIjpbIlJlYWN0IiwiUHVyZUNvbXBvbmVudCIsIkZvcm0iLCJnZXROb2RlIiwibWVzc2FnZSIsIkNvbCIsIlJvdyIsIkVkaXRvckZvcm0iLCJjcmVhdGVSZWYiLCJsb2FkaW5nIiwibGFiZWwiLCJlZGl0b3JGbGFnIiwidmFsdWUiLCJmbGFnIiwic2V0U3RhdGUiLCJmb3JtUmVmIiwiY3VycmVudCIsInNob3dGb3JtIiwiYXR0cmlidXRlIiwicHJvcHMiLCJhdXRvU3VibWl0Iiwic3VibWl0VXJsIiwic3VibWl0UGFyYW1zIiwib25TdWJtaXQiLCJjYWxsQmFjayIsInN0YXRlIiwiZm9ybVZhbHVlIiwiZ2V0RmllbGRzVmFsdWUiLCJ2YWxpZCIsInZhbGlkYXRlRmllbGRzIiwidGhlbiIsImRhdGEiLCJpZCIsIkVycm9yIiwibm9VbmRlZmluZWQiLCJyZXMiLCJjb2RlIiwic3VjY2VzcyIsImNhdGNoIiwiZXJyb3JJbmZvIiwiZm9ybVByb3BzIiwibW9kYWxQcm9wcyIsInRpdGxlIiwib2tUZXh0IiwiY2FuY2VsVGV4dCIsIm9uT2siLCJiaW5kIiwib2tCdXR0b25Qcm9wcyIsImNlbnRlcmVkIiwid2lkdGgiLCJuZXdWYWxpZCIsImZsZXgiLCJtYXAiLCJpdGVtIiwiaW5kZXgiLCJydWxlcyIsImxlbmd0aCIsInB1c2giLCJuYW1lIiwic3BhbiIsInR5cGUiLCJwbGFjZWhvbGRlciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU9BLEtBQVAsSUFBZ0JDLGFBQWhCLFFBQXFDLE9BQXJDO0FBQ0EsT0FBT0MsSUFBUCxNQUFpQixZQUFqQjtBQUNBLFNBQVNDLE9BQVQsUUFBd0IsYUFBeEI7QUFDQSxPQUFPQyxPQUFQLE1BQW9CLGVBQXBCO0FBQ0EsT0FBT0MsR0FBUCxNQUFnQixnQkFBaEI7QUFDQSxPQUFPQyxHQUFQLE1BQWdCLGdCQUFoQjs7SUFDTUMsVTs7Ozs7Ozs7Ozs7Ozs7OzsyRUFDTVAsS0FBSyxDQUFDUSxTQUFOLEU7OzREQUNGO0FBQ05DLE1BQUFBLE9BQU8sRUFBRSxLQURIO0FBRU5DLE1BQUFBLEtBQUssRUFBRSxFQUZEO0FBR05DLE1BQUFBLFVBQVUsRUFBRSxJQUhOO0FBSU5DLE1BQUFBLEtBQUssRUFBRTtBQUpELEs7OzREQU1LLEU7Ozs7Ozs7V0FDYixjQUFLQSxLQUFMLEVBQStCO0FBQUE7O0FBQUEsVUFBYkMsSUFBYSx1RUFBTixJQUFNO0FBQzdCLFVBQUlILEtBQUssR0FBRyxJQUFaOztBQUNBLFVBQUlFLEtBQUssSUFBSUMsSUFBYixFQUFtQjtBQUNqQkgsUUFBQUEsS0FBSyxHQUFHLElBQVI7QUFDRCxPQUZELE1BRU8sSUFBSSxDQUFDRyxJQUFMLEVBQVc7QUFDaEJILFFBQUFBLEtBQUssR0FBRyxJQUFSO0FBQ0Q7O0FBQ0QsVUFBSUUsS0FBSixFQUFXO0FBQ1QsYUFBS0UsUUFBTCxDQUFjO0FBQ1pKLFVBQUFBLEtBQUssRUFBRUEsS0FESztBQUVaQyxVQUFBQSxVQUFVLEVBQUUsQ0FBQ0UsSUFGRDtBQUdaRCxVQUFBQSxLQUFLLEVBQUVBO0FBSEssU0FBZDtBQUtEOztBQUNELG9DQUFLRyxPQUFMLENBQWFDLE9BQWIsZ0ZBQXNCQyxRQUF0QixDQUErQkwsS0FBL0IsYUFBK0JBLEtBQS9CLHVCQUErQkEsS0FBSyxDQUFFTSxTQUF0QztBQUNEOzs7V0FDRCxvQkFBVztBQUFBO0FBQUE7QUFBQTs7QUFDVCx3QkFNSSxLQUFLQyxLQU5UO0FBQUEsOENBQ0VDLFVBREY7QUFBQSxVQUNFQSxVQURGLHNDQUNlLElBRGY7QUFBQSw4Q0FFRUMsU0FGRjtBQUFBLFVBRUVBLFNBRkYsc0NBRWMsRUFGZDtBQUFBLDhDQUdFQyxZQUhGO0FBQUEsVUFHRUEsWUFIRixzQ0FHaUIsRUFIakI7QUFBQSxVQUlFQyxRQUpGLGVBSUVBLFFBSkY7QUFBQSxVQUtFQyxRQUxGLGVBS0VBLFFBTEY7QUFPQSx3QkFBeUIsS0FBS0MsS0FBOUI7QUFBQSxVQUFRZixLQUFSLGVBQVFBLEtBQVI7QUFBQSxVQUFlRSxLQUFmLGVBQWVBLEtBQWY7QUFDQSxVQUFNYyxTQUFTLDZCQUFHLEtBQUtYLE9BQUwsQ0FBYUMsT0FBaEIsMkRBQUcsdUJBQXNCVyxjQUF0QixFQUFsQjtBQUNBLFVBQUlDLEtBQUssR0FBRyxLQUFLQSxLQUFqQjtBQUNBLHFDQUFLYixPQUFMLENBQWFDLE9BQWIsa0ZBQ0lhLGNBREosQ0FDbUJELEtBRG5CLEVBRUdFLElBRkgsQ0FFUSxZQUFNO0FBQ1ZQLFFBQUFBLFFBQVEsSUFBSUEsUUFBUSxDQUFDRyxTQUFELENBQXBCOztBQUNBLFlBQUlOLFVBQUosRUFBZ0I7QUFBQTs7QUFDZCxVQUFBLE1BQUksQ0FBQ04sUUFBTCxDQUFjO0FBQUVMLFlBQUFBLE9BQU8sRUFBRTtBQUFYLFdBQWQ7O0FBQ0EsY0FBSXNCLElBQUkscUJBQVFMLFNBQVIsQ0FBUjs7QUFDQSxjQUFJaEIsS0FBSyxJQUFJLElBQWIsRUFBbUI7QUFDakJxQixZQUFBQSxJQUFJLG1DQUFRQSxJQUFSO0FBQWNDLGNBQUFBLEVBQUUsRUFBRXBCLEtBQUYsYUFBRUEsS0FBRix1QkFBRUEsS0FBSyxDQUFFb0I7QUFBekIsY0FBSjtBQUNEOztBQUNELGNBQUksQ0FBQ1gsU0FBTCxFQUFnQjtBQUNkLGtCQUFNLElBQUlZLEtBQUosQ0FBVSxVQUFWLENBQU47QUFDRDs7QUFDRCxtQ0FBQSxNQUFJLENBQUNsQixPQUFMLENBQWFDLE9BQWIsZ0ZBQXNCTyxRQUF0QixDQUNFRixTQURGLEVBRUU7QUFDRVUsWUFBQUEsSUFBSSxvQkFBT0wsU0FBUCxDQUROO0FBRUVRLFlBQUFBLFdBQVcsRUFBRXhCLEtBQUssSUFBSSxJQUZ4QjtBQUdFWSxZQUFBQSxZQUFZLEVBQVpBO0FBSEYsV0FGRixFQU9FLFVBQUNhLEdBQUQsRUFBYztBQUNaLGdCQUFRQyxJQUFSLEdBQWlCRCxHQUFqQixDQUFRQyxJQUFSOztBQUNBLFlBQUEsTUFBSSxDQUFDdEIsUUFBTCxDQUFjO0FBQUVMLGNBQUFBLE9BQU8sRUFBRTtBQUFYLGFBQWQ7O0FBQ0EsZ0JBQUkyQixJQUFJLEtBQUssR0FBYixFQUFrQjtBQUNoQmhDLGNBQUFBLE9BQU8sQ0FBQ2lDLE9BQVIsQ0FBZ0IzQixLQUFLLEdBQUcsSUFBeEI7QUFDQWMsY0FBQUEsUUFBUSxJQUFJQSxRQUFRLEVBQXBCO0FBQ0Q7QUFDRixXQWRIO0FBZ0JEO0FBQ0YsT0E5QkgsRUErQkdjLEtBL0JILENBK0JTLFVBQUNDLFNBQUQsRUFBb0IsQ0FBRSxDQS9CL0I7QUFnQ0Q7OztXQUVELGtCQUFTO0FBQUE7O0FBQ1Asa0NBQTJCLEtBQUtwQixLQUFoQyxDQUFRcUIsU0FBUjtBQUFBLFVBQVFBLFNBQVIsc0NBQW9CLEVBQXBCO0FBQ0EseUJBQXVDLEtBQUtmLEtBQTVDO0FBQUEsVUFBUWhCLE9BQVIsZ0JBQVFBLE9BQVI7QUFBQSxVQUFpQkMsS0FBakIsZ0JBQWlCQSxLQUFqQjtBQUFBLFVBQXdCQyxVQUF4QixnQkFBd0JBLFVBQXhCO0FBQ0EsVUFBTThCLFVBQVUsR0FBRztBQUNqQkMsUUFBQUEsS0FBSyxFQUFFaEMsS0FEVTtBQUVqQmlDLFFBQUFBLE1BQU0sRUFBRSxJQUZTO0FBR2pCQyxRQUFBQSxVQUFVLEVBQUUsSUFISztBQUlqQkMsUUFBQUEsSUFBSSxFQUFFLEtBQUt0QixRQUFMLENBQWN1QixJQUFkLENBQW1CLElBQW5CLENBSlc7QUFLakJDLFFBQUFBLGFBQWEsRUFBRTtBQUFFdEMsVUFBQUEsT0FBTyxFQUFFQTtBQUFYLFNBTEU7QUFNakJ1QyxRQUFBQSxRQUFRLEVBQUUsSUFOTztBQU9qQkMsUUFBQUEsS0FBSyxFQUFFO0FBUFUsT0FBbkI7QUFTQSxVQUFNQyxRQUFlLEdBQUcsRUFBeEI7QUFDQSwwQkFDRSxvQkFBQyxJQUFEO0FBQ0UsUUFBQSxHQUFHLEVBQUUsS0FBS25DLE9BRFo7QUFFRSxRQUFBLFNBQVMsRUFBRSxPQUZiO0FBR0UsUUFBQSxVQUFVLG9CQUFPMEIsVUFBUCxDQUhaO0FBSUUsUUFBQSxRQUFRLEVBQUU7QUFBRVUsVUFBQUEsSUFBSSxFQUFFO0FBQVIsU0FKWjtBQUtFLFFBQUEsVUFBVSxFQUFFO0FBQUVBLFVBQUFBLElBQUksRUFBRTtBQUFSO0FBTGQsc0JBT0Usb0JBQUMsR0FBRDtBQUFLLFFBQUEsTUFBTSxFQUFFO0FBQWIsU0FDR1gsU0FBUyxDQUFDWSxHQUFWLENBQWMsVUFBQ0MsSUFBRCxFQUFZQyxLQUFaLEVBQThCO0FBQzNDLFlBQU1uQyxLQUFLLHFCQUFRa0MsSUFBSSxDQUFDbEMsS0FBYixDQUFYOztBQUNBLFlBQUlrQyxJQUFJLENBQUNFLEtBQUwsSUFBY0YsSUFBSSxDQUFDRSxLQUFMLENBQVdDLE1BQVgsR0FBb0IsQ0FBdEMsRUFBeUM7QUFDdkNOLFVBQUFBLFFBQVEsQ0FBQ08sSUFBVCxDQUFjSixJQUFJLENBQUNLLElBQW5CO0FBQ0Q7O0FBQ0QsWUFBSUosS0FBSyxHQUFHLENBQVIsS0FBY2QsU0FBUyxDQUFDZ0IsTUFBNUIsRUFBb0M7QUFDbEMsVUFBQSxNQUFJLENBQUM1QixLQUFMLEdBQWFzQixRQUFiO0FBQ0Q7O0FBQ0QsNEJBQ0Usb0JBQUMsR0FBRDtBQUFLLFVBQUEsSUFBSSxFQUFFRyxJQUFJLENBQUNNLElBQUwsSUFBYSxFQUF4QjtBQUE0QixVQUFBLEdBQUcsRUFBRUw7QUFBakMsd0JBQ0Usb0JBQUMsSUFBRCxDQUFNLElBQU47QUFDRSxVQUFBLEtBQUssRUFBRUQsSUFBSSxDQUFDM0MsS0FEZDtBQUVFLFVBQUEsSUFBSSxFQUFFMkMsSUFBSSxDQUFDSyxJQUZiO0FBR0UsVUFBQSxLQUFLLEVBQUVMLElBQUksQ0FBQ0U7QUFIZCxXQUtHcEQsT0FBTyxDQUFDa0QsSUFBSSxDQUFDTyxJQUFOLGtDQUNIUCxJQUFJLENBQUNsQyxLQURGO0FBRU4wQyxVQUFBQSxXQUFXLDhCQUFRUixJQUFJLENBQUMzQyxLQUFiO0FBRkwsV0FMVixDQURGLENBREY7QUFjRCxPQXRCQSxDQURILENBUEYsQ0FERjtBQW1DRDs7OztFQXRIc0JULGE7O0FBeUh6QixlQUFlTSxVQUFmIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IFB1cmVDb21wb25lbnQgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBGb3JtIGZyb20gXCIuLi8uLi9mb3JtXCI7XG5pbXBvcnQgeyBnZXROb2RlIH0gZnJvbSBcIi4uLy4uL3V0aWxzXCI7XG5pbXBvcnQgbWVzc2FnZSBmcm9tIFwiLi4vLi4vbWVzc2FnZVwiO1xuaW1wb3J0IENvbCBmcm9tIFwiLi4vLi4vZ3JpZC9Db2xcIjtcbmltcG9ydCBSb3cgZnJvbSBcIi4uLy4uL2dyaWQvUm93XCI7XG5jbGFzcyBFZGl0b3JGb3JtIGV4dGVuZHMgUHVyZUNvbXBvbmVudDxhbnk+IHtcbiAgZm9ybVJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxhbnk+KCk7XG4gIHN0YXRlID0ge1xuICAgIGxvYWRpbmc6IGZhbHNlLFxuICAgIGxhYmVsOiBcIlwiLFxuICAgIGVkaXRvckZsYWc6IHRydWUsXG4gICAgdmFsdWU6IHt9IGFzIGFueSxcbiAgfTtcbiAgdmFsaWQ6IGFueSA9IFtdO1xuICBzaG93KHZhbHVlPzogYW55LCBmbGFnID0gdHJ1ZSkge1xuICAgIGxldCBsYWJlbCA9IFwi5paw5aKeXCI7XG4gICAgaWYgKHZhbHVlICYmIGZsYWcpIHtcbiAgICAgIGxhYmVsID0gXCLnvJbovpFcIjtcbiAgICB9IGVsc2UgaWYgKCFmbGFnKSB7XG4gICAgICBsYWJlbCA9IFwi5p+l55yLXCI7XG4gICAgfVxuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIGxhYmVsOiBsYWJlbCxcbiAgICAgICAgZWRpdG9yRmxhZzogIWZsYWcsXG4gICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8uc2hvd0Zvcm0odmFsdWU/LmF0dHJpYnV0ZSk7XG4gIH1cbiAgb25TdWJtaXQoKSB7XG4gICAgY29uc3Qge1xuICAgICAgYXV0b1N1Ym1pdCA9IHRydWUsXG4gICAgICBzdWJtaXRVcmwgPSBcIlwiLFxuICAgICAgc3VibWl0UGFyYW1zID0ge30sXG4gICAgICBvblN1Ym1pdCxcbiAgICAgIGNhbGxCYWNrLFxuICAgIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHsgbGFiZWwsIHZhbHVlIH0gPSB0aGlzLnN0YXRlO1xuICAgIGNvbnN0IGZvcm1WYWx1ZSA9IHRoaXMuZm9ybVJlZi5jdXJyZW50Py5nZXRGaWVsZHNWYWx1ZSgpO1xuICAgIGxldCB2YWxpZCA9IHRoaXMudmFsaWQ7XG4gICAgdGhpcy5mb3JtUmVmLmN1cnJlbnRcbiAgICAgID8udmFsaWRhdGVGaWVsZHModmFsaWQpXG4gICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgIG9uU3VibWl0ICYmIG9uU3VibWl0KGZvcm1WYWx1ZSk7XG4gICAgICAgIGlmIChhdXRvU3VibWl0KSB7XG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGxvYWRpbmc6IHRydWUgfSk7XG4gICAgICAgICAgbGV0IGRhdGEgPSB7IC4uLmZvcm1WYWx1ZSB9O1xuICAgICAgICAgIGlmIChsYWJlbCA9PSBcIue8lui+kVwiKSB7XG4gICAgICAgICAgICBkYXRhID0geyAuLi5kYXRhLCBpZDogdmFsdWU/LmlkIH07XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICghc3VibWl0VXJsKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJ1cmzkuI3og73kuLrnqbrvvIFcIik7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuZm9ybVJlZi5jdXJyZW50Py5vblN1Ym1pdChcbiAgICAgICAgICAgIHN1Ym1pdFVybCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgZGF0YTogeyAuLi5mb3JtVmFsdWUgfSxcbiAgICAgICAgICAgICAgbm9VbmRlZmluZWQ6IGxhYmVsID09IFwi57yW6L6RXCIsXG4gICAgICAgICAgICAgIHN1Ym1pdFBhcmFtcyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgeyBjb2RlIH0gPSByZXM7XG4gICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBsb2FkaW5nOiBmYWxzZSB9KTtcbiAgICAgICAgICAgICAgaWYgKGNvZGUgPT09IDIwMCkge1xuICAgICAgICAgICAgICAgIG1lc3NhZ2Uuc3VjY2VzcyhsYWJlbCArIFwi5oiQ5YqfXCIpO1xuICAgICAgICAgICAgICAgIGNhbGxCYWNrICYmIGNhbGxCYWNrKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgLmNhdGNoKChlcnJvckluZm86IGFueSkgPT4ge30pO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgZm9ybVByb3BzID0gW10gfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyBsb2FkaW5nLCBsYWJlbCwgZWRpdG9yRmxhZyB9ID0gdGhpcy5zdGF0ZTtcbiAgICBjb25zdCBtb2RhbFByb3BzID0ge1xuICAgICAgdGl0bGU6IGxhYmVsLFxuICAgICAgb2tUZXh0OiBcIuehruWumlwiLFxuICAgICAgY2FuY2VsVGV4dDogXCLlj5bmtohcIixcbiAgICAgIG9uT2s6IHRoaXMub25TdWJtaXQuYmluZCh0aGlzKSxcbiAgICAgIG9rQnV0dG9uUHJvcHM6IHsgbG9hZGluZzogbG9hZGluZyB9LFxuICAgICAgY2VudGVyZWQ6IHRydWUsXG4gICAgICB3aWR0aDogXCI1MHZ3XCIsXG4gICAgfTtcbiAgICBjb25zdCBuZXdWYWxpZDogYW55W10gPSBbXTtcbiAgICByZXR1cm4gKFxuICAgICAgPEZvcm1cbiAgICAgICAgcmVmPXt0aGlzLmZvcm1SZWZ9XG4gICAgICAgIHNob3dNb2RlbD17XCJtb2RhbFwifVxuICAgICAgICBtb2RhbFByb3BzPXt7IC4uLm1vZGFsUHJvcHMgfX1cbiAgICAgICAgbGFiZWxDb2w9e3sgZmxleDogXCIxMDBweFwiIH19XG4gICAgICAgIHdyYXBwZXJDb2w9e3sgZmxleDogXCIxNXZ3XCIgfX1cbiAgICAgID5cbiAgICAgICAgPFJvdyBndXR0ZXI9ezI0fT5cbiAgICAgICAgICB7Zm9ybVByb3BzLm1hcCgoaXRlbTogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwcm9wcyA9IHsgLi4uaXRlbS5wcm9wcyB9O1xuICAgICAgICAgICAgaWYgKGl0ZW0ucnVsZXMgJiYgaXRlbS5ydWxlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgIG5ld1ZhbGlkLnB1c2goaXRlbS5uYW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpbmRleCArIDEgPT09IGZvcm1Qcm9wcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgdGhpcy52YWxpZCA9IG5ld1ZhbGlkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgPENvbCBzcGFuPXtpdGVtLnNwYW4gfHwgMTJ9IGtleT17aW5kZXh9PlxuICAgICAgICAgICAgICAgIDxGb3JtLkl0ZW1cbiAgICAgICAgICAgICAgICAgIGxhYmVsPXtpdGVtLmxhYmVsfVxuICAgICAgICAgICAgICAgICAgbmFtZT17aXRlbS5uYW1lfVxuICAgICAgICAgICAgICAgICAgcnVsZXM9e2l0ZW0ucnVsZXN9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2dldE5vZGUoaXRlbS50eXBlLCB7XG4gICAgICAgICAgICAgICAgICAgIC4uLml0ZW0ucHJvcHMsXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBg6K+36L6T5YWlJHtpdGVtLmxhYmVsfWAsXG4gICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICAgICAgPC9Db2w+XG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0pfVxuICAgICAgICA8L1Jvdz5cbiAgICAgIDwvRm9ybT5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEVkaXRvckZvcm07XG4iXX0=
@@ -12,6 +12,8 @@ interface TreeProps {
12
12
  showSearch?: boolean;
13
13
  searchKey?: string;
14
14
  searchField?: string;
15
+ titleAlias?: string;
16
+ nodePorps?: object;
15
17
  }
16
18
  interface NSCBaseBageProps {
17
19
  showSearch?: boolean;
@@ -25,6 +27,8 @@ interface NSCBaseBageProps {
25
27
  showToolButton?: boolean;
26
28
  showAddButton?: boolean;
27
29
  editorForm?: boolean;
30
+ showDeleteButton?: boolean;
31
+ deleteUrl?: string;
28
32
  }
29
33
  declare class BasePage extends PureComponent<NSCBaseBageProps, any> {
30
34
  tableRef: React.RefObject<any>;
@@ -34,6 +38,7 @@ declare class BasePage extends PureComponent<NSCBaseBageProps, any> {
34
38
  constructor(props: any);
35
39
  onSelect: (checkedTreeKeys: any) => void;
36
40
  showForm(value?: any, flag?: boolean): void;
41
+ onDelete(): void;
37
42
  tableLoad(params: any): void;
38
43
  onSearch(): void;
39
44
  tableReload(): void;
@@ -1,14 +1,8 @@
1
1
  function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
2
2
 
3
- import "antd/es/popover/style/css";
4
- import _Popover from "antd/es/popover";
5
3
  var _excluded = ["children", "pageType", "onClick"],
6
4
  _excluded2 = ["children", "pageType", "onClick", "Icon"];
7
5
 
8
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
9
-
10
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
11
-
12
6
  function _extends() { _extends = Object.assign || 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); }
13
7
 
14
8
  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; }
@@ -27,6 +21,10 @@ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToAr
27
21
 
28
22
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
29
23
 
24
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
25
+
26
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
27
+
30
28
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
31
29
 
32
30
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
@@ -54,12 +52,17 @@ import Table from "../../table";
54
52
  import Tree from "../../tree";
55
53
  import Form from "../../form";
56
54
  import Button from "../../button";
55
+ import Modal from "../../modal";
56
+ import Popover from "../../popover";
57
+ import message from "../../message";
57
58
  import Icon from "../../common/IconFont";
58
59
  import { iconType } from "../../constants";
59
60
  import EditorForm from "./Form";
60
61
  import cls from "classnames";
61
62
  import styles from "./index.less";
62
- import { DownOutlined } from "@ant-design/icons";
63
+ import { DownOutlined, UpOutlined } from "@ant-design/icons";
64
+ import { getNode } from "../../utils";
65
+ import request from "nsc-request";
63
66
 
64
67
  var BasePage = /*#__PURE__*/function (_PureComponent) {
65
68
  _inherits(BasePage, _PureComponent);
@@ -99,7 +102,8 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
99
102
  _this.state = {
100
103
  type: "add",
101
104
  selectedRowKeys: [],
102
- treeSelectedKey: ""
105
+ treeSelectedKey: "",
106
+ expand: false
103
107
  };
104
108
  return _this;
105
109
  }
@@ -112,6 +116,48 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
112
116
 
113
117
  var flag = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
114
118
  (_this$editorRef$curre = this.editorRef.current) === null || _this$editorRef$curre === void 0 ? void 0 : _this$editorRef$curre.show(value, flag);
119
+ } //批量删除
120
+
121
+ }, {
122
+ key: "onDelete",
123
+ value: function onDelete() {
124
+ var deleteUrl = this.props.deleteUrl;
125
+ var selectedRowKeys = this.state.selectedRowKeys;
126
+
127
+ if (selectedRowKeys.length == 0) {
128
+ message.warning("请选择要删除的数据!");
129
+ return;
130
+ }
131
+
132
+ if (!deleteUrl) {
133
+ throw new Error("url不能为空!");
134
+ }
135
+
136
+ Modal.confirm({
137
+ title: "是否确认删除所选项?",
138
+ // icon: <Icon type={'icontishi-3'} />,
139
+ okText: "确认",
140
+ cancelText: "取消",
141
+ onOk: function onOk() {
142
+ var requestParam = {
143
+ method: "post",
144
+ data: {
145
+ ids: selectedRowKeys
146
+ }
147
+ };
148
+ request(deleteUrl, _objectSpread({}, requestParam)).then(function (res) {
149
+ var code = res.code;
150
+
151
+ if (code === 200) {
152
+ message.success("删除成功!");
153
+ } else {
154
+ message.error("删除失败!");
155
+ }
156
+ }).catch(function (error) {
157
+ console.log("error", error);
158
+ });
159
+ }
160
+ });
115
161
  }
116
162
  }, {
117
163
  key: "tableLoad",
@@ -232,7 +278,7 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
232
278
  if (!actionButton) num = 3;
233
279
 
234
280
  if (columnButtons.length > num) {
235
- return /*#__PURE__*/React.createElement(_Popover, {
281
+ return /*#__PURE__*/React.createElement(Popover, {
236
282
  placement: "bottom",
237
283
  title: null,
238
284
  content: content,
@@ -325,6 +371,8 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
325
371
  showToolButton = _this$props$showToolB === void 0 ? true : _this$props$showToolB,
326
372
  _this$props$showAddBu = _this$props.showAddButton,
327
373
  showAddButton = _this$props$showAddBu === void 0 ? true : _this$props$showAddBu,
374
+ _this$props$showDelet = _this$props.showDeleteButton,
375
+ showDeleteButton = _this$props$showDelet === void 0 ? true : _this$props$showDelet,
328
376
  _this$props$editorFor = _this$props.editorForm,
329
377
  editorForm = _this$props$editorFor === void 0 ? true : _this$props$editorFor;
330
378
  var _tableProps$store = tableProps.store,
@@ -340,7 +388,9 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
340
388
  var _treeProps$store = treeProps.store,
341
389
  treeStore = _treeProps$store === void 0 ? {} : _treeProps$store,
342
390
  _treeProps$showSearch = treeProps.showSearch,
343
- treeSearch = _treeProps$showSearch === void 0 ? true : _treeProps$showSearch;
391
+ treeSearch = _treeProps$showSearch === void 0 ? true : _treeProps$showSearch,
392
+ _treeProps$titleAlias = treeProps.titleAlias,
393
+ titleAlias = _treeProps$titleAlias === void 0 ? "title" : _treeProps$titleAlias;
344
394
  var tableParams = {
345
395
  filterColumn: filterColumn,
346
396
  store: store
@@ -424,7 +474,7 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
424
474
  render: function render(text, record) {
425
475
  return /*#__PURE__*/React.createElement("div", {
426
476
  className: styles["action"]
427
- }, actionButton && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
477
+ }, actionButton && editorForm == true && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
428
478
  className: styles["editor"],
429
479
  onClick: _this2.showForm.bind(_this2, record, false)
430
480
  }, "\u67E5\u770B"), /*#__PURE__*/React.createElement("div", {
@@ -446,7 +496,8 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
446
496
  checkable: false,
447
497
  searchable: treeSearch,
448
498
  onSelect: this.treeSelect.bind(this),
449
- selectedKeys: [this.state.treeSelectedKey]
499
+ selectedKeys: [this.state.treeSelectedKey],
500
+ titleAlias: titleAlias
450
501
  })), /*#__PURE__*/React.createElement("div", {
451
502
  className: styles["right"]
452
503
  }, showSearch && /*#__PURE__*/React.createElement("div", {
@@ -457,22 +508,17 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
457
508
  wrapperCol: {},
458
509
  layout: "inline"
459
510
  }, searchForms.map(function (item, index) {
460
- if (!item.type) {
461
- return /*#__PURE__*/React.createElement(Form.Input, {
462
- label: item.label,
463
- name: item.name,
464
- key: index
465
- });
466
- } else {
467
- var _props = _objectSpread({}, item.props);
468
-
469
- return /*#__PURE__*/React.createElement(Form.Select, _extends({
470
- label: item.label,
471
- name: item.name
472
- }, _props, {
473
- key: index
474
- }));
511
+ if (index > 2 && !_this2.state.expand) {
512
+ return;
475
513
  }
514
+
515
+ return /*#__PURE__*/React.createElement(Form.Item, {
516
+ label: item.label,
517
+ name: item.name // rules={item.rules}
518
+
519
+ }, getNode(item.type, _objectSpread(_objectSpread({}, item.props), {}, {
520
+ placeholder: "\u8BF7\u8F93\u5165".concat(item.label)
521
+ })));
476
522
  })), /*#__PURE__*/React.createElement("div", {
477
523
  className: styles["buttons"],
478
524
  style: {
@@ -494,18 +540,34 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
494
540
  icon: /*#__PURE__*/React.createElement(Icon, {
495
541
  type: iconType.refresh
496
542
  })
497
- }, "\u91CD\u7F6E"))), showToolButton && /*#__PURE__*/React.createElement("div", {
543
+ }, "\u91CD\u7F6E"), searchForms.length > 3 && /*#__PURE__*/React.createElement("a", {
544
+ className: styles.a_style,
545
+ onClick: function onClick() {
546
+ var expand = _this2.state.expand;
547
+
548
+ _this2.setState({
549
+ expand: !expand
550
+ });
551
+ }
552
+ }, this.state.expand ? "收起" : "展开", this.state.expand ? /*#__PURE__*/React.createElement(UpOutlined, null) : /*#__PURE__*/React.createElement(DownOutlined, null)))), showToolButton && /*#__PURE__*/React.createElement("div", {
498
553
  className: styles["buttons"],
499
554
  style: {
500
555
  marginLeft: 0
501
556
  }
502
- }, showAddButton && /*#__PURE__*/React.createElement(Button, {
557
+ }, showAddButton && editorForm == true && /*#__PURE__*/React.createElement(Button, {
503
558
  type: "primary",
504
559
  onClick: this.showForm.bind(this),
505
560
  icon: /*#__PURE__*/React.createElement(Icon, {
506
561
  type: iconType.add
507
562
  })
508
- }, "\u6DFB\u52A0"), Buttons.map(function (item, index) {
563
+ }, "\u6DFB\u52A0"), showDeleteButton && editorForm == true && /*#__PURE__*/React.createElement(Button // type={"primary"}
564
+ , {
565
+ onClick: this.onDelete.bind(this),
566
+ icon: /*#__PURE__*/React.createElement(Icon, {
567
+ type: iconType.delete3
568
+ }),
569
+ danger: true
570
+ }, "\u5220\u9664"), Buttons.map(function (item, index) {
509
571
  return /*#__PURE__*/React.createElement("div", {
510
572
  key: index
511
573
  }, item);
@@ -530,4 +592,4 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
530
592
  }(PureComponent);
531
593
 
532
594
  export default BasePage;
533
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3BhZ2VDb21wb25lbnRzL0Jhc2VQYWdlL2luZGV4LnRzeCJdLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJUYWJsZSIsIlRyZWUiLCJGb3JtIiwiQnV0dG9uIiwiSWNvbiIsImljb25UeXBlIiwiRWRpdG9yRm9ybSIsImNscyIsInN0eWxlcyIsIkRvd25PdXRsaW5lZCIsIkJhc2VQYWdlIiwicHJvcHMiLCJjcmVhdGVSZWYiLCJjaGVja2VkVHJlZUtleXMiLCJzdGF0ZSIsIm5hbWUiLCJ1c2VyVHlwZSIsImFjY291bnQiLCJ2YWx1ZSIsImRlcHRJZCIsInRhYmxlTG9hZCIsInR5cGUiLCJzZWxlY3RlZFJvd0tleXMiLCJ0cmVlU2VsZWN0ZWRLZXkiLCJmbGFnIiwiZWRpdG9yUmVmIiwiY3VycmVudCIsInNob3ciLCJwYXJhbXMiLCJ0YWJsZVJlZiIsInN0b3JlIiwibG9hZCIsImZyb21WYWx1ZSIsInNlYXJjaFJlZiIsImdldEZpZWxkc1ZhbHVlIiwicmVsb2FkIiwicmVjb3JkIiwic2VsZWN0ZWQiLCJuZXdTZWxlY3RlZFJvd0tleXMiLCJpZCIsIm1hcCIsIml0ZW0iLCJpbmRleCIsInNwbGljZSIsInNldFN0YXRlIiwic2VsZWN0ZWRSb3dzIiwiY2hhbmdlUm93cyIsIm5ld2lkcyIsImxlbmd0aCIsImNoYW5nZUlkcyIsImluZGV4T2YiLCJwdXNoIiwiY29sdW1uQnV0dG9ucyIsImFjdGlvbkJ1dHRvbiIsImNvbnRlbnQiLCJjaGlsZHJlbiIsInBhZ2VUeXBlIiwib25DbGljayIsIm51bSIsInNlbGVjdGVkS2V5cyIsInNlbGVjdGVkTm9kZXMiLCJrZXl3b3JkIiwidHJlZVByb3BzIiwic2VhcmNoS2V5Iiwic2VhcmNoRmllbGQiLCJpc0xlYWYiLCJkYXRhcmVmIiwiYXR0cmlidXRlIiwiY29sdW1ucyIsInNob3dTZWFyY2giLCJhdXRvU3VibWl0Iiwic3VibWl0VXJsIiwidGFibGVQcm9wcyIsInNob3dMZWZ0Iiwic3VibWl0UGFyYW1zIiwic2hvd1Rvb2xCdXR0b24iLCJzaG93QWRkQnV0dG9uIiwiZWRpdG9yRm9ybSIsImZpbHRlckNvbHVtbiIsImFjdGlvbkNvbHVtbiIsInNob3dSb3dTZWxlY3Rpb24iLCJ0cmVlU3RvcmUiLCJ0cmVlU2VhcmNoIiwidGFibGVQYXJhbXMiLCJyb3dTZWxlY3Rpb24iLCJvblNlbGVjdCIsInJvd1NlbGVjdGlvbk9uU2VsZWN0IiwiYmluZCIsIm9uU2VsZWN0QWxsIiwicm93U2VsZWN0aW9uT25TZWxlY3RBbGwiLCJjb2x1bW5XaWR0aCIsInRhYmxlQ29sdW1uIiwic2VhcmNoRm9ybXMiLCJlZGl0b3JGb3JtcyIsInRlbXAiLCJzZWFyY2giLCJmaWVsZCIsImRhdGFJbmRleCIsImxhYmVsIiwidGl0bGUiLCJlZGl0b3IiLCJydWxlcyIsInNwYW4iLCJjb2x1bW5TZWFyY2giLCJmaWx0ZXJQcm9wcyIsIkJ1dHRvbnMiLCJBcnJheSIsImlzQXJyYXkiLCJhbGlnbiIsIndpZHRoIiwicmVuZGVyIiwidGV4dCIsInNob3dGb3JtIiwicmVuZGVyQ2xvdW1uQnV0dG9uIiwiZGlzcGxheSIsInRyZWVTZWxlY3QiLCJtYXJnaW5Ub3AiLCJvblNlYXJjaCIsInJlc2V0RmllbGRzIiwicmVmcmVzaCIsIm1hcmdpbkxlZnQiLCJhZGQiLCJ0YWJsZVJlbG9hZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBT0EsS0FBUCxJQUFnQkMsYUFBaEIsUUFBcUMsT0FBckM7QUFFQSxPQUFPQyxLQUFQLE1BQWtCLGFBQWxCO0FBQ0EsT0FBT0MsSUFBUCxNQUFpQixZQUFqQjtBQUNBLE9BQU9DLElBQVAsTUFBaUIsWUFBakI7QUFDQSxPQUFPQyxNQUFQLE1BQW1CLGNBQW5CO0FBQ0EsT0FBT0MsSUFBUCxNQUFpQix1QkFBakI7QUFDQSxTQUFTQyxRQUFULFFBQXlCLGlCQUF6QjtBQUNBLE9BQU9DLFVB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d0JBRkosRUFVR2hCLE9BQU8sQ0FBQ2pFLEdBQVIsQ0FBWSxVQUFDQyxJQUFELEVBQVlDLEtBQVosRUFBMkI7QUFDdEMsNEJBQU87QUFBSyxVQUFBLEdBQUcsRUFBRUE7QUFBVixXQUFrQkQsSUFBbEIsQ0FBUDtBQUNELE9BRkEsQ0FWSCxDQXBESixlQW1FRTtBQUFLLFFBQUEsU0FBUyxFQUFFakMsTUFBTSxDQUFDLE9BQUQ7QUFBdEIsc0JBQ0Usb0JBQUMsS0FBRDtBQUFPLFFBQUEsR0FBRyxFQUFFLEtBQUtxQixRQUFqQjtBQUEyQixRQUFBLE9BQU8sRUFBRThEO0FBQXBDLFNBQXFEUixXQUFyRCxFQURGLENBbkVGLENBYkYsRUFvRkdOLFVBQVUsaUJBQ1Qsb0JBQUMsVUFBRDtBQUNFLFFBQUEsR0FBRyxFQUFFLEtBQUtwRCxTQURaO0FBRUUsUUFBQSxRQUFRLEVBQUUsS0FBS3VGLFFBQUwsQ0FBY3pCLElBQWQsQ0FBbUIsSUFBbkIsQ0FGWjtBQUdFLFFBQUEsUUFBUSxFQUFFLEtBQUttQyxXQUFMLENBQWlCbkMsSUFBakIsQ0FBc0IsSUFBdEIsQ0FIWjtBQUlFLFFBQUEsU0FBUyxFQUFFTSxXQUpiO0FBS0UsUUFBQSxVQUFVLEVBQUV2QixVQUxkO0FBTUUsUUFBQSxTQUFTLEVBQUVDLFNBTmI7QUFPRSxRQUFBLFlBQVksRUFBRUc7QUFQaEIsUUFyRkosQ0FERjtBQWtHRDs7OztFQTVYb0IzRSxhOztBQThYdkIsZUFBZVcsUUFBZiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBQdXJlQ29tcG9uZW50IH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IFN3aXRjaCwgUG9wY29uZmlybSwgbWVzc2FnZSwgTW9kYWwsIFJvdywgQ29sLCBQb3BvdmVyIH0gZnJvbSBcImFudGRcIjtcclxuaW1wb3J0IFRhYmxlIGZyb20gXCIuLi8uLi90YWJsZVwiO1xyXG5pbXBvcnQgVHJlZSBmcm9tIFwiLi4vLi4vdHJlZVwiO1xyXG5pbXBvcnQgRm9ybSBmcm9tIFwiLi4vLi4vZm9ybVwiO1xyXG5pbXBvcnQgQnV0dG9uIGZyb20gXCIuLi8uLi9idXR0b25cIjtcclxuaW1wb3J0IEljb24gZnJvbSBcIi4uLy4uL2NvbW1vbi9JY29uRm9udFwiO1xyXG5pbXBvcnQgeyBpY29uVHlwZSB9IGZyb20gXCIuLi8uLi9jb25zdGFudHNcIjtcclxuaW1wb3J0IEVkaXRvckZvcm0gZnJvbSBcIi4vRm9ybVwiO1xyXG5pbXBvcnQgY2xzIGZyb20gXCJjbGFzc25hbWVzXCI7XHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vaW5kZXgubGVzc1wiO1xyXG5pbXBvcnQgU3RvcmUsIHsgUGFnZVN0b3JlLCBTdG9yZVByb3BzIH0gZnJvbSBcIkBiai1uc2MvbXNuXCI7XHJcbmltcG9ydCB7IERvd25PdXRsaW5lZCB9IGZyb20gXCJAYW50LWRlc2lnbi9pY29uc1wiO1xyXG5pbnRlcmZhY2UgVGFibGVQcm9wcyB7XHJcbiAgYWN0aW9uQ29sdW1uPzogYm9vbGVhbjsgLy/mmK/lkKbmmL7npLrmk43kvZzliJdcclxuICBhY3Rpb25CdXR0b24/OiBib29sZWFuOyAvL+aYr+WQpum7mOiupOaYvuekuuaWsOWinu+8jOe8lui+kem7mOiupOaMiemSrlxyXG4gIHN0b3JlPzogU3RvcmVQcm9wcztcclxuICBmaWx0ZXJDb2x1bW4/OiBib29sZWFuOyAvL+aYr+WQpuaYvuekuui/h+a7pOaMiemSrlxyXG4gIHNob3dSb3dTZWxlY3Rpb24/OiBib29sZWFuOyAvL+aYr+WQpuihqOagvOWLvumAieWIl1xyXG59XHJcbmludGVyZmFjZSBUcmVlUHJvcHMge1xyXG4gIHN0b3JlPzogU3RvcmVQcm9wcztcclxuICBzaG93U2VhcmNoPzogYm9vbGVhbjtcclxuICBzZWFyY2hLZXk/OiBzdHJpbmc7XHJcbiAgc2VhcmNoRmllbGQ/OiBzdHJpbmc7XHJcbn1cclxuaW50ZXJmYWNlIE5TQ0Jhc2VCYWdlUHJvcHMge1xyXG4gIHNob3dTZWFyY2g/OiBib29sZWFuOyAvL+aYr+WQpuaYvuekuuWktOmDqOaQnOe0ouagj1xyXG4gIHRhYmxlUHJvcHM/OiBUYWJsZVByb3BzOyAvL+ihqOagvOWPguaVsFxyXG4gIHRyZWVQcm9wcz86IFRyZWVQcm9wczsgLy/lt6bkvqfmoJHlj4LmlbBcclxuICBzdWJtaXRQYXJhbXM/OiBPYmplY3Q7XHJcbiAgc3VibWl0VXJsPzogc3RyaW5nO1xyXG4gIGF1dG9TdWJtaXQ/OiBib29sZWFuO1xyXG4gIGNvbHVtbnM6IEFycmF5PE9iamVjdD47XHJcbiAgc2hvd0xlZnQ/OiBib29sZWFuOyAvL+aYr+WQpuaYvuekuuW3puS+p+ebruW9leagkVxyXG4gIHNob3dUb29sQnV0dG9uPzogYm9vbGVhbjsgLy/mmK/lkKbmmL7npLrmjInpkq7moI9cclxuICBzaG93QWRkQnV0dG9uPzogYm9vbGVhbjsgLy/mmK/lkKbmmL7npLrmt7vliqDmjInpkq5cclxuICBlZGl0b3JGb3JtPzogYm9vbGVhbjsgLy/mmK/lkKbpnIDopoHooajljZXlip/og71cclxufVxyXG5cclxuY2xhc3MgQmFzZVBhZ2UgZXh0ZW5kcyBQdXJlQ29tcG9uZW50PE5TQ0Jhc2VCYWdlUHJvcHMsIGFueT4ge1xyXG4gIHRhYmxlUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICB0cmVlUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICBzZWFyY2hSZWYgPSBSZWFjdC5jcmVhdGVSZWY8YW55PigpO1xyXG4gIGVkaXRvclJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxhbnk+KCk7XHJcbiAgY29uc3RydWN0b3IocHJvcHM6IGFueSkge1xyXG4gICAgc3VwZXIocHJvcHMpO1xyXG4gICAgdGhpcy5zdGF0ZSA9IHtcclxuICAgICAgdHlwZTogXCJhZGRcIixcclxuICAgICAgc2VsZWN0ZWRSb3dLZXlzOiBbXSxcclxuICAgICAgdHJlZVNlbGVjdGVkS2V5OiBcIlwiLFxyXG4gICAgfTtcclxuICB9XHJcbiAgb25TZWxlY3QgPSAoY2hlY2tlZFRyZWVLZXlzOiBhbnkpID0+IHtcclxuICAgIGNvbnN0IHsgbmFtZSwgdXNlclR5cGUsIGFjY291bnQgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCB2YWx1ZSA9IHsgbmFtZSwgdXNlclR5cGUsIGFjY291bnQsIGRlcHRJZDogY2hlY2tlZFRyZWVLZXlzWzBdIH07XHJcbiAgICB0aGlzLnRhYmxlTG9hZCh2YWx1ZSk7XHJcbiAgfTtcclxuXHJcbiAgLy/mmL7npLrooajljZVcclxuICBzaG93Rm9ybSh2YWx1ZT86IGFueSwgZmxhZyA9IHRydWUpIHtcclxuICAgIHRoaXMuZWRpdG9yUmVmLmN1cnJlbnQ/LnNob3codmFsdWUsIGZsYWcpO1xyXG4gIH1cclxuICB0YWJsZUxvYWQocGFyYW1zOiBhbnkpIHtcclxuICAgIHRoaXMudGFibGVSZWYuY3VycmVudD8uc3RvcmUubG9hZCh7XHJcbiAgICAgIHBhcmFtczogcGFyYW1zLFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8v5p+l6K+iXHJcbiAgb25TZWFyY2goKSB7XHJcbiAgICBjb25zdCBmcm9tVmFsdWUgPSB0aGlzLnNlYXJjaFJlZi5jdXJyZW50Py5nZXRGaWVsZHNWYWx1ZSgpO1xyXG4gICAgdGhpcy5sb2FkKGZyb21WYWx1ZSk7XHJcbiAgfVxyXG4gIC8v6KGo5qC86YeN5paw5Yqg6L29XHJcbiAgdGFibGVSZWxvYWQoKSB7XHJcbiAgICB0aGlzLnRhYmxlUmVmLmN1cnJlbnQ/LnN0b3JlLnJlbG9hZCgpO1xyXG4gIH1cclxuICBnZXRTZWxlY3RlZFJvd0tleXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5zZWxlY3RlZFJvd0tleXM7XHJcbiAgfVxyXG4gIGdldFNlYXJjaFZhbHVlcygpIHtcclxuICAgIGNvbnN0IGZyb21WYWx1ZSA9IHRoaXMuc2VhcmNoUmVmLmN1cnJlbnQ/LmdldEZpZWxkc1ZhbHVlKCk7XHJcbiAgICByZXR1cm4gZnJvbVZhbHVlO1xyXG4gIH1cclxuICByb3dTZWxlY3Rpb25PblNlbGVjdChyZWNvcmQ6IGFueSwgc2VsZWN0ZWQ6IGFueSkge1xyXG4gICAgY29uc3QgeyBzZWxlY3RlZFJvd0tleXMgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBsZXQgbmV3U2VsZWN0ZWRSb3dLZXlzID0gWy4uLnNlbGVjdGVkUm93S2V5c107XHJcbiAgICBpZiAoc2VsZWN0ZWQpIHtcclxuICAgICAgbmV3U2VsZWN0ZWRSb3dLZXlzID0gWy4uLm5ld1NlbGVjdGVkUm93S2V5cywgcmVjb3JkLmlkXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHNlbGVjdGVkUm93S2V5cy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChpdGVtID09PSByZWNvcmQuaWQpIHtcclxuICAgICAgICAgIG5ld1NlbGVjdGVkUm93S2V5cy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgc2VsZWN0ZWRSb3dLZXlzOiBuZXdTZWxlY3RlZFJvd0tleXMsXHJcbiAgICB9KTtcclxuICB9XHJcbiAgcm93U2VsZWN0aW9uT25TZWxlY3RBbGwoc2VsZWN0ZWQ6IGFueSwgc2VsZWN0ZWRSb3dzOiBhbnksIGNoYW5nZVJvd3M6IGFueSkge1xyXG4gICAgY29uc3QgeyBzZWxlY3RlZFJvd0tleXMgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBsZXQgbmV3aWRzOiBhbnkgPSBbXTtcclxuICAgIGlmIChjaGFuZ2VSb3dzLmxlbmd0aCA+IDApIHtcclxuICAgICAgbGV0IGNoYW5nZUlkcyA9IGNoYW5nZVJvd3MubWFwKChpdGVtOiBhbnkpID0+IGl0ZW0uaWQpO1xyXG4gICAgICBpZiAoc2VsZWN0ZWQpIHtcclxuICAgICAgICBuZXdpZHMgPSBbLi4uc2VsZWN0ZWRSb3dLZXlzLCAuLi5jaGFuZ2VJZHNdO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHNlbGVjdGVkUm93S2V5cy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGNoYW5nZUlkcy5pbmRleE9mKGl0ZW0pID09IC0xKSB7XHJcbiAgICAgICAgICAgIG5ld2lkcy5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBuZXdpZHMgPSBbLi4uc2VsZWN0ZWRSb3dLZXlzXTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBzZWxlY3RlZFJvd0tleXM6IFsuLi5uZXdpZHNdLFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGxvYWQocGFyYW1zOiBhbnkpIHtcclxuICAgIHRoaXMudGFibGVSZWYuY3VycmVudD8uc3RvcmUubG9hZCh7IHBhcmFtcyB9KTtcclxuICB9XHJcbiAgcmVuZGVyQ2xvdW1uQnV0dG9uKGNvbHVtbkJ1dHRvbnM6IGFueSwgcmVjb3JkOiBhbnksIGFjdGlvbkJ1dHRvbj86IGJvb2xlYW4pIHtcclxuICAgIGNvbnN0IGNvbnRlbnQgPSBjb2x1bW5CdXR0b25zLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IHsgY2hpbGRyZW4sIHBhZ2VUeXBlLCBvbkNsaWNrLCAuLi5wYXJhbXMgfSA9IGl0ZW0ucHJvcHM7XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3NOYW1lPXtjbHMoc3R5bGVzW1wiZWRpdG9yXCJdLCBzdHlsZXNbXCJjb250ZW50LWl0ZW1cIl0pfVxyXG4gICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgb25DbGljayAmJiBvbkNsaWNrKHJlY29yZCk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgICAgey4uLnBhcmFtc31cclxuICAgICAgICA+XHJcbiAgICAgICAgICB7Y2hpbGRyZW59XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICk7XHJcbiAgICB9KTtcclxuICAgIGxldCBudW0gPSAxO1xyXG4gICAgaWYgKCFhY3Rpb25CdXR0b24pIG51bSA9IDM7XHJcbiAgICBpZiAoY29sdW1uQnV0dG9ucy5sZW5ndGggPiBudW0pIHtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICA8UG9wb3ZlclxyXG4gICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tXCJcclxuICAgICAgICAgIHRpdGxlPXtudWxsfVxyXG4gICAgICAgICAgY29udGVudD17Y29udGVudH1cclxuICAgICAgICAgIHRyaWdnZXI9XCJjbGlja1wiXHJcbiAgICAgICAgICAvLyBvdmVybGF5Q2xhc3NOYW1lPXtzdHlsZXNbJ3BvcCddfVxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbXCJlZGl0b3JcIl19PlxyXG4gICAgICAgICAgICDmm7TlpJpcclxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtzdHlsZXNbXCJpY29uXCJdfT5cclxuICAgICAgICAgICAgICA8RG93bk91dGxpbmVkIC8+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvUG9wb3Zlcj5cclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBjb2x1bW5CdXR0b25zLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgICAgY29uc3QgeyBjaGlsZHJlbiwgcGFnZVR5cGUsIG9uQ2xpY2ssIEljb24sIC4uLnBhcmFtcyB9ID0gaXRlbS5wcm9wcztcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzc05hbWU9e3N0eWxlc1tcImVkaXRvclwiXX1cclxuICAgICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgIG9uQ2xpY2sgJiYgb25DbGljayhyZWNvcmQpO1xyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICB7Li4ucGFyYW1zfVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7SWNvbn0ge2NoaWxkcmVufVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8v5qCR54K55Ye75LqL5Lu2XHJcbiAgdHJlZVNlbGVjdChzZWxlY3RlZEtleXM6IGFueSwgeyBzZWxlY3RlZCwgc2VsZWN0ZWROb2RlcyB9OiBhbnkpIHtcclxuICAgIGxldCBrZXl3b3JkID0gXCJcIjtcclxuICAgIGNvbnN0IHsgc2VhcmNoS2V5ID0gXCJrZXlcIiwgc2VhcmNoRmllbGQgPSBcIlwiIH0gPSB0aGlzLnByb3BzLnRyZWVQcm9wcztcclxuICAgIGNvbnN0IHsgdHJlZVNlbGVjdGVkS2V5IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgaWYgKHNlbGVjdGVkKSB7XHJcbiAgICAgIGlmIChzZWxlY3RlZE5vZGVzWzBdLmlzTGVhZiB8fCAhc2VsZWN0ZWROb2Rlc1swXS5jaGlsZHJlbikge1xyXG4gICAgICAgIGlmIChzZWxlY3RlZEtleXNbMF0gIT09IHRyZWVTZWxlY3RlZEtleSkge1xyXG4gICAgICAgICAgLy8gbGV0IG1hcERhdGEgPSB0aGlzLnRyZWVSZWYuY3VycmVudD8uc3RvcmUuZ2V0RmxhdHRlbkRhdGEoKTtcclxuICAgICAgICAgIGtleXdvcmQgPSBzZWxlY3RlZE5vZGVzWzBdLmRhdGFyZWYuYXR0cmlidXRlW3NlYXJjaEtleV07XHJcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgdHJlZVNlbGVjdGVkS2V5OiBzZWxlY3RlZEtleXNbMF0sXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgIHRyZWVTZWxlY3RlZEtleToga2V5d29yZCxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBmcm9tVmFsdWUgPSB0aGlzLnNlYXJjaFJlZi5jdXJyZW50Py5nZXRGaWVsZHNWYWx1ZSgpO1xyXG4gICAgc2VhcmNoRmllbGQgJiYgdGhpcy5sb2FkKHsgLi4uZnJvbVZhbHVlLCBbc2VhcmNoRmllbGRdOiBrZXl3b3JkIH0pO1xyXG4gIH1cclxuICByZW5kZXIoKSB7XHJcbiAgICBjb25zdCB7IHNlbGVjdGVkUm93S2V5cyB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IHtcclxuICAgICAgY29sdW1ucyA9IFtdLFxyXG4gICAgICBzaG93U2VhcmNoID0gdHJ1ZSxcclxuICAgICAgY2hpbGRyZW4sXHJcbiAgICAgIGF1dG9TdWJtaXQgPSB0cnVlLFxyXG4gICAgICBzdWJtaXRVcmwgPSBcIlwiLFxyXG4gICAgICB0YWJsZVByb3BzID0ge30sXHJcbiAgICAgIHRyZWVQcm9wcyA9IHt9LFxyXG4gICAgICBzaG93TGVmdCA9IGZhbHNlLFxyXG4gICAgICBzdWJtaXRQYXJhbXMgPSB7fSxcclxuICAgICAgc2hvd1Rvb2xCdXR0b24gPSB0cnVlLFxyXG4gICAgICBzaG93QWRkQnV0dG9uID0gdHJ1ZSxcclxuICAgICAgZWRpdG9yRm9ybSA9IHRydWUsXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHtcclxuICAgICAgc3RvcmUgPSB7fSxcclxuICAgICAgZmlsdGVyQ29sdW1uID0gdHJ1ZSxcclxuICAgICAgYWN0aW9uQnV0dG9uID0gdHJ1ZSxcclxuICAgICAgYWN0aW9uQ29sdW1uID0gdHJ1ZSxcclxuICAgICAgc2hvd1Jvd1NlbGVjdGlvbiA9IHRydWUsXHJcbiAgICB9ID0gdGFibGVQcm9wcztcclxuXHJcbiAgICBjb25zdCB7IHN0b3JlOiB0cmVlU3RvcmUgPSB7fSwgc2hvd1NlYXJjaDogdHJlZVNlYXJjaCA9IHRydWUgfSA9IHRyZWVQcm9wcztcclxuXHJcbiAgICBsZXQgdGFibGVQYXJhbXMgPSB7IGZpbHRlckNvbHVtbiwgc3RvcmUgfSBhcyBhbnk7XHJcbiAgICBpZiAoc2hvd1Jvd1NlbGVjdGlvbikge1xyXG4gICAgICB0YWJsZVBhcmFtcyA9IHtcclxuICAgICAgICAuLi50YWJsZVBhcmFtcyxcclxuICAgICAgICByb3dTZWxlY3Rpb246IHtcclxuICAgICAgICAgIHNlbGVjdGVkUm93S2V5czogc2VsZWN0ZWRSb3dLZXlzLFxyXG4gICAgICAgICAgb25TZWxlY3Q6IHRoaXMucm93U2VsZWN0aW9uT25TZWxlY3QuYmluZCh0aGlzKSxcclxuICAgICAgICAgIG9uU2VsZWN0QWxsOiB0aGlzLnJvd1NlbGVjdGlvbk9uU2VsZWN0QWxsLmJpbmQodGhpcyksXHJcbiAgICAgICAgICBjb2x1bW5XaWR0aDogNDAsXHJcbiAgICAgICAgfSxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIGNvbnN0IHRhYmxlQ29sdW1uOiBhbnlbXSA9IFtdO1xyXG4gICAgY29uc3Qgc2VhcmNoRm9ybXM6IGFueSA9IFtdO1xyXG4gICAgY29uc3QgZWRpdG9yRm9ybXM6IGFueSA9IFtdO1xyXG4gICAgY29sdW1ucy5tYXAoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICBsZXQgdGVtcCA9IHsgLi4uaXRlbSB9O1xyXG4gICAgICBpZiAodGVtcC5zZWFyY2gpIHtcclxuICAgICAgICBzZWFyY2hGb3Jtcy5wdXNoKHtcclxuICAgICAgICAgIG5hbWU6IHRlbXAuZmllbGQgfHwgdGVtcC5kYXRhSW5kZXgsXHJcbiAgICAgICAgICBsYWJlbDogdGVtcC50aXRsZSxcclxuICAgICAgICAgIHR5cGU6IHRlbXAudHlwZSxcclxuICAgICAgICAgIHByb3BzOiB0ZW1wLnByb3BzLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIGRlbGV0ZSB0ZW1wLnNlYXJjaDtcclxuICAgICAgdGVtcC5lZGl0b3IgIT09IGZhbHNlICYmXHJcbiAgICAgICAgZWRpdG9yRm9ybXMucHVzaCh7XHJcbiAgICAgICAgICBuYW1lOiB0ZW1wLmZpZWxkIHx8IHRlbXAuZGF0YUluZGV4LFxyXG4gICAgICAgICAgbGFiZWw6IHRlbXAudGl0bGUsXHJcbiAgICAgICAgICBydWxlczogdGVtcC5ydWxlcyxcclxuICAgICAgICAgIHR5cGU6IHRlbXAudHlwZSxcclxuICAgICAgICAgIHByb3BzOiB0ZW1wLnByb3BzLFxyXG4gICAgICAgICAgc3BhbjogdGVtcC5zcGFuLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICBkZWxldGUgdGVtcC5ydWxlcztcclxuICAgICAgZGVsZXRlIHRlbXAuc3BhbjtcclxuICAgICAgaWYgKHRlbXAuY29sdW1uU2VhcmNoKSB7XHJcbiAgICAgICAgdGVtcC5maWx0ZXJQcm9wcyA9IHtcclxuICAgICAgICAgIHR5cGU6IHRlbXAudHlwZSxcclxuICAgICAgICAgIHByb3BzOiB0ZW1wLnByb3BzLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgICAgZGVsZXRlIHRlbXAudHlwZTtcclxuICAgICAgZGVsZXRlIHRlbXAucHJvcHM7XHJcbiAgICAgIHRhYmxlQ29sdW1uLnB1c2godGVtcCk7XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IEJ1dHRvbnM6IGFueSA9IFtdO1xyXG4gICAgY29uc3QgY29sdW1uQnV0dG9uczogYW55ID0gW107XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShjaGlsZHJlbikpIHtcclxuICAgICAgY2hpbGRyZW4ubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoaXRlbS5wcm9wcy5wYWdlVHlwZSA9PSBcInRvb2xCdXR0b25cIikge1xyXG4gICAgICAgICAgQnV0dG9ucy5wdXNoKGl0ZW0pO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoaXRlbS5wcm9wcy5wYWdlVHlwZSA9PSBcImNsb3VtbkJ1dHRvblwiKSB7XHJcbiAgICAgICAgICBjb2x1bW5CdXR0b25zLnB1c2goaXRlbSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSBpZiAoY2hpbGRyZW4pIHtcclxuICAgICAgY29uc3QgeyBwcm9wcyB9OiBhbnkgPSBjaGlsZHJlbjtcclxuICAgICAgaWYgKHByb3BzLnBhZ2VUeXBlID09IFwidG9vbEJ1dHRvblwiKSB7XHJcbiAgICAgICAgQnV0dG9ucy5wdXNoKGNoaWxkcmVuKTtcclxuICAgICAgfSBlbHNlIGlmIChwcm9wcy5wYWdlVHlwZSA9PSBcImNsb3VtbkJ1dHRvblwiKSB7XHJcbiAgICAgICAgY29sdW1uQnV0dG9ucy5wdXNoKGNoaWxkcmVuKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgYWN0aW9uQ29sdW1uICYmXHJcbiAgICAgIHRhYmxlQ29sdW1uLnB1c2goe1xyXG4gICAgICAgIHRpdGxlOiBcIuaTjeS9nFwiLFxyXG4gICAgICAgIGRhdGFJbmRleDogXCJhY3Rpb25cIixcclxuICAgICAgICBhbGlnbjogXCJjZW50ZXJcIixcclxuICAgICAgICB3aWR0aDogMTUwLFxyXG4gICAgICAgIHJlbmRlcjogKHRleHQ6IGFueSwgcmVjb3JkOiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbXCJhY3Rpb25cIl19PlxyXG4gICAgICAgICAgICAgIHthY3Rpb25CdXR0b24gJiYgKFxyXG4gICAgICAgICAgICAgICAgPD5cclxuICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVzW1wiZWRpdG9yXCJdfVxyXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMuc2hvd0Zvcm0uYmluZCh0aGlzLCByZWNvcmQsIGZhbHNlKX1cclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIOafpeeci1xyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVzW1wiZWRpdG9yXCJdfVxyXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMuc2hvd0Zvcm0uYmluZCh0aGlzLCByZWNvcmQsIHRydWUpfVxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAg57yW6L6RXHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC8+XHJcbiAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICB7dGhpcy5yZW5kZXJDbG91bW5CdXR0b24oY29sdW1uQnV0dG9ucywgcmVjb3JkLCBhY3Rpb25CdXR0b24pfVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIChcclxuICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcInBhZ2VcIl19IHN0eWxlPXt7IGRpc3BsYXk6IFwiZmxleFwiIH19PlxyXG4gICAgICAgIHtzaG93TGVmdCAmJiAoXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzW1wibGVmdFwiXX0+XHJcbiAgICAgICAgICAgIDxUcmVlXHJcbiAgICAgICAgICAgICAgc3RvcmU9e3sgLi4udHJlZVN0b3JlIH19XHJcbiAgICAgICAgICAgICAgc2hvd0ljb249e2ZhbHNlfVxyXG4gICAgICAgICAgICAgIGNoZWNrYWJsZT17ZmFsc2V9XHJcbiAgICAgICAgICAgICAgc2VhcmNoYWJsZT17dHJlZVNlYXJjaH1cclxuICAgICAgICAgICAgICBvblNlbGVjdD17dGhpcy50cmVlU2VsZWN0LmJpbmQodGhpcyl9XHJcbiAgICAgICAgICAgICAgc2VsZWN0ZWRLZXlzPXtbdGhpcy5zdGF0ZS50cmVlU2VsZWN0ZWRLZXldfVxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgKX1cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzW1wicmlnaHRcIl19PlxyXG4gICAgICAgICAge3Nob3dTZWFyY2ggJiYgKFxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzW1wiaGVhZGVyXCJdfT5cclxuICAgICAgICAgICAgICA8Rm9ybVxyXG4gICAgICAgICAgICAgICAgcmVmPXt0aGlzLnNlYXJjaFJlZn1cclxuICAgICAgICAgICAgICAgIGxhYmVsQ29sPXt7fX1cclxuICAgICAgICAgICAgICAgIHdyYXBwZXJDb2w9e3t9fVxyXG4gICAgICAgICAgICAgICAgbGF5b3V0PVwiaW5saW5lXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICB7c2VhcmNoRm9ybXMubWFwKChpdGVtOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgaWYgKCFpdGVtLnR5cGUpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgPEZvcm0uSW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9e2l0ZW0ubGFiZWx9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2l0ZW0ubmFtZX1cclxuICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBwcm9wcyA9IHsgLi4uaXRlbS5wcm9wcyB9O1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICA8Rm9ybS5TZWxlY3RcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9e2l0ZW0ubGFiZWx9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2l0ZW0ubmFtZX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgey4uLnByb3BzfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAgICA8L0Zvcm0+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcImJ1dHRvbnNcIl19IHN0eWxlPXt7IG1hcmdpblRvcDogMCB9fT5cclxuICAgICAgICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgICAgICAgdHlwZT17XCJwcmltYXJ5XCJ9XHJcbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMub25TZWFyY2guYmluZCh0aGlzKX1cclxuICAgICAgICAgICAgICAgICAgaWNvbj17PEljb24gdHlwZT17aWNvblR5cGUuc2VhcmNofSAvPn1cclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAg5p+l6K+iXHJcbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgICAgICAgdHlwZT17XCJwcmltYXJ5XCJ9XHJcbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaFJlZi5jdXJyZW50Py5yZXNldEZpZWxkcygpO1xyXG4gICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICBpY29uPXs8SWNvbiB0eXBlPXtpY29uVHlwZS5yZWZyZXNofSAvPn1cclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAg6YeN572uXHJcbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApfVxyXG4gICAgICAgICAge3Nob3dUb29sQnV0dG9uICYmIChcclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcImJ1dHRvbnNcIl19IHN0eWxlPXt7IG1hcmdpbkxlZnQ6IDAgfX0+XHJcbiAgICAgICAgICAgICAge3Nob3dBZGRCdXR0b24gJiYgKFxyXG4gICAgICAgICAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICB0eXBlPXtcInByaW1hcnlcIn1cclxuICAgICAgICAgICAgICAgICAgb25DbGljaz17dGhpcy5zaG93Rm9ybS5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICAgICAgICBpY29uPXs8SWNvbiB0eXBlPXtpY29uVHlwZS5hZGR9IC8+fVxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICDmt7vliqBcclxuICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAge0J1dHRvbnMubWFwKChpdGVtOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiA8ZGl2IGtleT17aW5kZXh9PntpdGVtfTwvZGl2PjtcclxuICAgICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApfVxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcInRhYmxlXCJdfT5cclxuICAgICAgICAgICAgPFRhYmxlIHJlZj17dGhpcy50YWJsZVJlZn0gY29sdW1ucz17dGFibGVDb2x1bW59IHsuLi50YWJsZVBhcmFtc30gLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIHtlZGl0b3JGb3JtICYmIChcclxuICAgICAgICAgIDxFZGl0b3JGb3JtXHJcbiAgICAgICAgICAgIHJlZj17dGhpcy5lZGl0b3JSZWZ9XHJcbiAgICAgICAgICAgIG9uQ2FuY2VsPXt0aGlzLnNob3dGb3JtLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICAgIGNhbGxCYWNrPXt0aGlzLnRhYmxlUmVsb2FkLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICAgIGZvcm1Qcm9wcz17ZWRpdG9yRm9ybXN9XHJcbiAgICAgICAgICAgIGF1dG9TdWJtaXQ9e2F1dG9TdWJtaXR9XHJcbiAgICAgICAgICAgIHN1Ym1pdFVybD17c3VibWl0VXJsfVxyXG4gICAgICAgICAgICBzdWJtaXRQYXJhbXM9e3N1Ym1pdFBhcmFtc31cclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgKX1cclxuICAgICAgPC9kaXY+XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG5leHBvcnQgZGVmYXVsdCBCYXNlUGFnZTtcclxuIl19
595
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3BhZ2VDb21wb25lbnRzL0Jhc2VQYWdlL2luZGV4LnRzeCJdLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJUYWJsZSIsIlRyZWUiLCJGb3JtIiwiQnV0dG9uIiwiTW9kYWwiLCJQb3BvdmVyIiwibWVzc2FnZSIsIkljb24iLCJpY29uVHlwZSIsIkVkaXRvckZvcm0iLCJjbHMiLCJzdHlsZXMiLCJEb3duT3V0bGluZWQiLCJVcE91dGxpbmVkIiwiZ2V0Tm9kZSIsInJlcXVlc3QiLCJCYXNlUGFnZSIsInByb3BzIiwiY3JlYXRlUmVmIiwiY2hlY2tlZFRyZWVLZXlzIiwic3RhdGUiLCJuYW1lIiwidXNlclR5cGUiLCJhY2NvdW50IiwidmFsdWUiLCJkZXB0SWQiLCJ0YWJsZUxvYWQiLCJ0eXBlIiwic2VsZWN0ZWRSb3dLZXlzIiwidHJlZVNlbGVjdGVkS2V5IiwiZXhwYW5kIiwiZmxhZyIsImVkaXRvclJlZiIsImN1cnJlbnQiLCJzaG93IiwiZGVsZXRlVXJsIiwibGVuZ3RoIiwid2FybmluZyIsIkVycm9yIiwiY29uZmlybSIsInRpdGxlIiwib2tUZXh0IiwiY2FuY2VsVGV4dCIsIm9uT2siLCJyZXF1ZXN0UGFyYW0iLCJtZXRob2QiLCJkYXRhIiwiaWRzIiwidGhlbiIsInJlcyIsImNvZGUiLCJzdWNjZXNzIiwiZXJyb3IiLCJjYXRjaCIsImNvbnNvbGUiLCJsb2ciLCJwYXJhbXMiLCJ0YWJsZVJlZiIsInN0b3JlIiwibG9hZCIsImZyb21WYWx1ZSIsInNlYXJjaFJlZiIsImdldEZpZWxkc1ZhbHVlIiwicmVsb2FkIiwicmVjb3JkIiwic2VsZWN0ZWQiLCJuZXdTZWxlY3RlZFJvd0tleXMiLCJpZCIsIm1hcCIsIml0ZW0iLCJpbmRleCIsInNwbGljZSIsInNldFN0YXRlIiwic2VsZWN0ZWRSb3dzIiwiY2hhbmdlUm93cyIsIm5ld2lkcyIsImNoYW5nZUlkcyIsImluZGV4T2YiLCJwdXNoIiwiY29sdW1uQnV0dG9ucyIsImFjdGlvbkJ1dHRvbiIsImNvbnRlbnQiLCJjaGlsZHJlbiIsInBhZ2VUeXBlIiwib25DbGljayIsIm51bSIsInNlbGVjdGVkS2V5cyIsInNlbGVjdGVkTm9kZXMiLCJrZXl3b3JkIiwidHJlZVByb3BzIiwic2VhcmNoS2V5Iiwic2VhcmNoRmllbGQiLCJpc0xlYWYiLCJkYXRhcmVmIiwiYXR0cmlidXRlIiwiY29sdW1ucyIsInNob3dTZWFyY2giLCJhdXRvU3VibWl0Iiwic3VibWl0VXJsIiwidGFibGVQcm9wcyIsInNob3dMZWZ0Iiwic3VibWl0UGFyYW1zIiwic2hvd1Rvb2xCdXR0b24iLCJzaG93QWRkQnV0dG9uIiwic2hvd0RlbGV0ZUJ1dHRvbiIsImVkaXRvckZvcm0iLCJmaWx0ZXJDb2x1bW4iLCJhY3Rpb25Db2x1bW4iLCJzaG93Um93U2VsZWN0aW9uIiwidHJlZVN0b3JlIiwidHJlZVNlYXJjaCIsInRpdGxlQWxpYXMiLCJ0YWJsZVBhcmFtcyIsInJvd1NlbGVjdGlvbiIsIm9uU2VsZWN0Iiwicm93U2VsZWN0aW9uT25TZWxlY3QiLCJiaW5kIiwib25TZWxlY3RBbGwiLCJyb3dTZWxlY3Rpb25PblNlbGVjdEFsbCIsImNvbHVtbldpZHRoIiwidGFibGVDb2x1bW4iLCJzZWFyY2hGb3JtcyIsImVkaXRvckZvcm1zIiwidGVtcCIsInNlYXJjaCIsImZpZWxkIiwiZGF0YUluZGV4IiwibGFiZWwiLCJlZGl0b3IiLCJydWxlcyIsInNwYW4iLCJjb2x1bW5TZWFyY2giLCJmaWx0ZXJQcm9wcyIsIkJ1dHRvbnMiLCJBcnJheSIsImlzQXJyYXkiLCJhbGlnbiIsIndpZHRoIiwicmVuZGVyIiwidGV4dCIsInNob3dGb3JtIiwicmVuZGVyQ2xvdW1uQnV0dG9uIiwiZGlzcGxheSIsInRyZWVTZWxlY3QiLCJwbGFjZWhvbGRlciIsIm1hcmdpblRvcCIsIm9uU2VhcmNoIiwicmVzZXRGaWVsZHMiLCJyZWZyZXNoIiwiYV9zdHlsZSIsIm1hcmdpbkxlZnQiLCJhZGQiLCJvbkRlbGV0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U0FBUyxFQUFFQyxTQU5iO0FBT0UsUUFBQSxZQUFZLEVBQUVHO0FBUGhCLFFBMUdKLENBREY7QUF1SEQ7Ozs7RUEzYm9CdEcsYTs7QUE2YnZCLGVBQWVpQixRQUFmIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IFB1cmVDb21wb25lbnQgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IFRhYmxlIGZyb20gXCIuLi8uLi90YWJsZVwiO1xyXG5pbXBvcnQgVHJlZSBmcm9tIFwiLi4vLi4vdHJlZVwiO1xyXG5pbXBvcnQgRm9ybSBmcm9tIFwiLi4vLi4vZm9ybVwiO1xyXG5pbXBvcnQgQnV0dG9uIGZyb20gXCIuLi8uLi9idXR0b25cIjtcclxuaW1wb3J0IE1vZGFsIGZyb20gXCIuLi8uLi9tb2RhbFwiO1xyXG5pbXBvcnQgUG9wb3ZlciBmcm9tIFwiLi4vLi4vcG9wb3ZlclwiO1xyXG5pbXBvcnQgbWVzc2FnZSBmcm9tIFwiLi4vLi4vbWVzc2FnZVwiO1xyXG5pbXBvcnQgSWNvbiBmcm9tIFwiLi4vLi4vY29tbW9uL0ljb25Gb250XCI7XHJcbmltcG9ydCB7IGljb25UeXBlIH0gZnJvbSBcIi4uLy4uL2NvbnN0YW50c1wiO1xyXG5pbXBvcnQgRWRpdG9yRm9ybSBmcm9tIFwiLi9Gb3JtXCI7XHJcbmltcG9ydCBjbHMgZnJvbSBcImNsYXNzbmFtZXNcIjtcclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9pbmRleC5sZXNzXCI7XHJcbmltcG9ydCBTdG9yZSwgeyBQYWdlU3RvcmUsIFN0b3JlUHJvcHMgfSBmcm9tIFwiQGJqLW5zYy9tc25cIjtcclxuaW1wb3J0IHsgRG93bk91dGxpbmVkLCBVcE91dGxpbmVkIH0gZnJvbSBcIkBhbnQtZGVzaWduL2ljb25zXCI7XHJcbmltcG9ydCB7IGdldE5vZGUgfSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcclxuaW1wb3J0IHJlcXVlc3QgZnJvbSBcIm5zYy1yZXF1ZXN0XCI7XHJcbmludGVyZmFjZSBUYWJsZVByb3BzIHtcclxuICBhY3Rpb25Db2x1bW4/OiBib29sZWFuOyAvL+aYr+WQpuaYvuekuuaTjeS9nOWIl1xyXG4gIGFjdGlvbkJ1dHRvbj86IGJvb2xlYW47IC8v5piv5ZCm6buY6K6k5pi+56S65paw5aKe77yM57yW6L6R6buY6K6k5oyJ6ZKuXHJcbiAgc3RvcmU/OiBTdG9yZVByb3BzO1xyXG4gIGZpbHRlckNvbHVtbj86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S66L+H5ruk5oyJ6ZKuXHJcbiAgc2hvd1Jvd1NlbGVjdGlvbj86IGJvb2xlYW47IC8v5piv5ZCm6KGo5qC85Yu+6YCJ5YiXXHJcbn1cclxuaW50ZXJmYWNlIFRyZWVQcm9wcyB7XHJcbiAgc3RvcmU/OiBTdG9yZVByb3BzO1xyXG4gIHNob3dTZWFyY2g/OiBib29sZWFuOyAvL+aYr+WQpuaYvuekuuaQnOe0ouahhlxyXG4gIHNlYXJjaEtleT86IHN0cmluZzsgLy/mkJzntKJ2YWx1ZeWvueW6lOeahGtleVxyXG4gIHNlYXJjaEZpZWxkPzogc3RyaW5nOyAvL+afpeivouWvueW6lOeahGtleVxyXG4gIHRpdGxlQWxpYXM/OiBzdHJpbmc7IC8v5qCRdGl0bGXlr7nlupTnmoRrZXks6buY6K6kdGl0bGVcclxuICBub2RlUG9ycHM/OiBvYmplY3Q7XHJcbn1cclxuaW50ZXJmYWNlIE5TQ0Jhc2VCYWdlUHJvcHMge1xyXG4gIHNob3dTZWFyY2g/OiBib29sZWFuOyAvL+aYr+WQpuaYvuekuuWktOmDqOaQnOe0ouagj1xyXG4gIHRhYmxlUHJvcHM/OiBUYWJsZVByb3BzOyAvL+ihqOagvOWPguaVsFxyXG4gIHRyZWVQcm9wcz86IFRyZWVQcm9wczsgLy/lt6bkvqfmoJHlj4LmlbBcclxuICBzdWJtaXRQYXJhbXM/OiBPYmplY3Q7XHJcbiAgc3VibWl0VXJsPzogc3RyaW5nO1xyXG4gIGF1dG9TdWJtaXQ/OiBib29sZWFuO1xyXG4gIGNvbHVtbnM6IEFycmF5PE9iamVjdD47XHJcbiAgc2hvd0xlZnQ/OiBib29sZWFuOyAvL+aYr+WQpuaYvuekuuW3puS+p+ebruW9leagkVxyXG4gIHNob3dUb29sQnV0dG9uPzogYm9vbGVhbjsgLy/mmK/lkKbmmL7npLrmjInpkq7moI9cclxuICBzaG93QWRkQnV0dG9uPzogYm9vbGVhbjsgLy/mmK/lkKbmmL7npLrmt7vliqDmjInpkq5cclxuICBlZGl0b3JGb3JtPzogYm9vbGVhbjsgLy/mmK/lkKbpnIDopoHooajljZXlip/og70gLCDkuLpmYWxzZSDnvJbovpHvvIzmn6XnnIvvvIzmlrDlop7lip/og73lnYfkuI3lj6/nlKhcclxuICBzaG93RGVsZXRlQnV0dG9uPzogYm9vbGVhbjsgLy/mmK/lkKbmmL7npLrliKDpmaTmjInpkq5cclxuICBkZWxldGVVcmw/OiBzdHJpbmc7IC8v5Yig6ZmkdXJsXHJcbn1cclxuXHJcbmNsYXNzIEJhc2VQYWdlIGV4dGVuZHMgUHVyZUNvbXBvbmVudDxOU0NCYXNlQmFnZVByb3BzLCBhbnk+IHtcclxuICB0YWJsZVJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxhbnk+KCk7XHJcbiAgdHJlZVJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxhbnk+KCk7XHJcbiAgc2VhcmNoUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICBlZGl0b3JSZWYgPSBSZWFjdC5jcmVhdGVSZWY8YW55PigpO1xyXG4gIGNvbnN0cnVjdG9yKHByb3BzOiBhbnkpIHtcclxuICAgIHN1cGVyKHByb3BzKTtcclxuICAgIHRoaXMuc3RhdGUgPSB7XHJcbiAgICAgIHR5cGU6IFwiYWRkXCIsXHJcbiAgICAgIHNlbGVjdGVkUm93S2V5czogW10sXHJcbiAgICAgIHRyZWVTZWxlY3RlZEtleTogXCJcIixcclxuICAgICAgZXhwYW5kOiBmYWxzZSxcclxuICAgIH07XHJcbiAgfVxyXG4gIG9uU2VsZWN0ID0gKGNoZWNrZWRUcmVlS2V5czogYW55KSA9PiB7XHJcbiAgICBjb25zdCB7IG5hbWUsIHVzZXJUeXBlLCBhY2NvdW50IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgdmFsdWUgPSB7IG5hbWUsIHVzZXJUeXBlLCBhY2NvdW50LCBkZXB0SWQ6IGNoZWNrZWRUcmVlS2V5c1swXSB9O1xyXG4gICAgdGhpcy50YWJsZUxvYWQodmFsdWUpO1xyXG4gIH07XHJcblxyXG4gIC8v5pi+56S66KGo5Y2VXHJcbiAgc2hvd0Zvcm0odmFsdWU/OiBhbnksIGZsYWcgPSB0cnVlKSB7XHJcbiAgICB0aGlzLmVkaXRvclJlZi5jdXJyZW50Py5zaG93KHZhbHVlLCBmbGFnKTtcclxuICB9XHJcbiAgLy/mibnph4/liKDpmaRcclxuICBvbkRlbGV0ZSgpIHtcclxuICAgIGNvbnN0IHsgZGVsZXRlVXJsIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyBzZWxlY3RlZFJvd0tleXMgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBpZiAoc2VsZWN0ZWRSb3dLZXlzLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgIG1lc3NhZ2Uud2FybmluZyhcIuivt+mAieaLqeimgeWIoOmZpOeahOaVsOaNru+8gVwiKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKCFkZWxldGVVcmwpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwidXJs5LiN6IO95Li656m677yBXCIpO1xyXG4gICAgfVxyXG4gICAgTW9kYWwuY29uZmlybSh7XHJcbiAgICAgIHRpdGxlOiBcIuaYr+WQpuehruiupOWIoOmZpOaJgOmAiemhue+8n1wiLFxyXG4gICAgICAvLyBpY29uOiA8SWNvbiB0eXBlPXsnaWNvbnRpc2hpLTMnfSAvPixcclxuICAgICAgb2tUZXh0OiBcIuehruiupFwiLFxyXG4gICAgICBjYW5jZWxUZXh0OiBcIuWPlua2iFwiLFxyXG4gICAgICBvbk9rOiAoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgcmVxdWVzdFBhcmFtID0geyBtZXRob2Q6IFwicG9zdFwiLCBkYXRhOiB7IGlkczogc2VsZWN0ZWRSb3dLZXlzIH0gfTtcclxuICAgICAgICByZXF1ZXN0KGRlbGV0ZVVybCwge1xyXG4gICAgICAgICAgLi4ucmVxdWVzdFBhcmFtLFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgICAudGhlbihmdW5jdGlvbiAocmVzOiBhbnkpIHtcclxuICAgICAgICAgICAgY29uc3QgeyBjb2RlIH0gPSByZXM7XHJcbiAgICAgICAgICAgIGlmIChjb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgICBtZXNzYWdlLnN1Y2Nlc3MoXCLliKDpmaTmiJDlip/vvIFcIik7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgbWVzc2FnZS5lcnJvcihcIuWIoOmZpOWksei0pe+8gVwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC5jYXRjaChmdW5jdGlvbiAoZXJyb3I6IGFueSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcImVycm9yXCIsIGVycm9yKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHRhYmxlTG9hZChwYXJhbXM6IGFueSkge1xyXG4gICAgdGhpcy50YWJsZVJlZi5jdXJyZW50Py5zdG9yZS5sb2FkKHtcclxuICAgICAgcGFyYW1zOiBwYXJhbXMsXHJcbiAgICB9KTtcclxuICB9XHJcbiAgLy/mn6Xor6JcclxuICBvblNlYXJjaCgpIHtcclxuICAgIGNvbnN0IGZyb21WYWx1ZSA9IHRoaXMuc2VhcmNoUmVmLmN1cnJlbnQ/LmdldEZpZWxkc1ZhbHVlKCk7XHJcbiAgICB0aGlzLmxvYWQoZnJvbVZhbHVlKTtcclxuICB9XHJcbiAgLy/ooajmoLzph43mlrDliqDovb1cclxuICB0YWJsZVJlbG9hZCgpIHtcclxuICAgIHRoaXMudGFibGVSZWYuY3VycmVudD8uc3RvcmUucmVsb2FkKCk7XHJcbiAgfVxyXG4gIGdldFNlbGVjdGVkUm93S2V5cygpIHtcclxuICAgIHJldHVybiB0aGlzLnN0YXRlLnNlbGVjdGVkUm93S2V5cztcclxuICB9XHJcbiAgZ2V0U2VhcmNoVmFsdWVzKCkge1xyXG4gICAgY29uc3QgZnJvbVZhbHVlID0gdGhpcy5zZWFyY2hSZWYuY3VycmVudD8uZ2V0RmllbGRzVmFsdWUoKTtcclxuICAgIHJldHVybiBmcm9tVmFsdWU7XHJcbiAgfVxyXG4gIHJvd1NlbGVjdGlvbk9uU2VsZWN0KHJlY29yZDogYW55LCBzZWxlY3RlZDogYW55KSB7XHJcbiAgICBjb25zdCB7IHNlbGVjdGVkUm93S2V5cyB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGxldCBuZXdTZWxlY3RlZFJvd0tleXMgPSBbLi4uc2VsZWN0ZWRSb3dLZXlzXTtcclxuICAgIGlmIChzZWxlY3RlZCkge1xyXG4gICAgICBuZXdTZWxlY3RlZFJvd0tleXMgPSBbLi4ubmV3U2VsZWN0ZWRSb3dLZXlzLCByZWNvcmQuaWRdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgc2VsZWN0ZWRSb3dLZXlzLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGl0ZW0gPT09IHJlY29yZC5pZCkge1xyXG4gICAgICAgICAgbmV3U2VsZWN0ZWRSb3dLZXlzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBzZWxlY3RlZFJvd0tleXM6IG5ld1NlbGVjdGVkUm93S2V5cyxcclxuICAgIH0pO1xyXG4gIH1cclxuICByb3dTZWxlY3Rpb25PblNlbGVjdEFsbChzZWxlY3RlZDogYW55LCBzZWxlY3RlZFJvd3M6IGFueSwgY2hhbmdlUm93czogYW55KSB7XHJcbiAgICBjb25zdCB7IHNlbGVjdGVkUm93S2V5cyB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGxldCBuZXdpZHM6IGFueSA9IFtdO1xyXG4gICAgaWYgKGNoYW5nZVJvd3MubGVuZ3RoID4gMCkge1xyXG4gICAgICBsZXQgY2hhbmdlSWRzID0gY2hhbmdlUm93cy5tYXAoKGl0ZW06IGFueSkgPT4gaXRlbS5pZCk7XHJcbiAgICAgIGlmIChzZWxlY3RlZCkge1xyXG4gICAgICAgIG5ld2lkcyA9IFsuLi5zZWxlY3RlZFJvd0tleXMsIC4uLmNoYW5nZUlkc107XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgc2VsZWN0ZWRSb3dLZXlzLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoY2hhbmdlSWRzLmluZGV4T2YoaXRlbSkgPT0gLTEpIHtcclxuICAgICAgICAgICAgbmV3aWRzLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG5ld2lkcyA9IFsuLi5zZWxlY3RlZFJvd0tleXNdO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIHNlbGVjdGVkUm93S2V5czogWy4uLm5ld2lkc10sXHJcbiAgICB9KTtcclxuICB9XHJcbiAgbG9hZChwYXJhbXM6IGFueSkge1xyXG4gICAgdGhpcy50YWJsZVJlZi5jdXJyZW50Py5zdG9yZS5sb2FkKHsgcGFyYW1zIH0pO1xyXG4gIH1cclxuICByZW5kZXJDbG91bW5CdXR0b24oY29sdW1uQnV0dG9uczogYW55LCByZWNvcmQ6IGFueSwgYWN0aW9uQnV0dG9uPzogYm9vbGVhbikge1xyXG4gICAgY29uc3QgY29udGVudCA9IGNvbHVtbkJ1dHRvbnMubWFwKChpdGVtOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgeyBjaGlsZHJlbiwgcGFnZVR5cGUsIG9uQ2xpY2ssIC4uLnBhcmFtcyB9ID0gaXRlbS5wcm9wcztcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzc05hbWU9e2NscyhzdHlsZXNbXCJlZGl0b3JcIl0sIHN0eWxlc1tcImNvbnRlbnQtaXRlbVwiXSl9XHJcbiAgICAgICAgICBrZXk9e2luZGV4fVxyXG4gICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICBvbkNsaWNrICYmIG9uQ2xpY2socmVjb3JkKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgICB7Li4ucGFyYW1zfVxyXG4gICAgICAgID5cclxuICAgICAgICAgIHtjaGlsZHJlbn1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgKTtcclxuICAgIH0pO1xyXG4gICAgbGV0IG51bSA9IDE7XHJcbiAgICBpZiAoIWFjdGlvbkJ1dHRvbikgbnVtID0gMztcclxuICAgIGlmIChjb2x1bW5CdXR0b25zLmxlbmd0aCA+IG51bSkge1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIDxQb3BvdmVyXHJcbiAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxyXG4gICAgICAgICAgdGl0bGU9e251bGx9XHJcbiAgICAgICAgICBjb250ZW50PXtjb250ZW50fVxyXG4gICAgICAgICAgdHJpZ2dlcj1cImNsaWNrXCJcclxuICAgICAgICAgIC8vIG92ZXJsYXlDbGFzc05hbWU9e3N0eWxlc1sncG9wJ119XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcImVkaXRvclwiXX0+XHJcbiAgICAgICAgICAgIOabtOWkmlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e3N0eWxlc1tcImljb25cIl19PlxyXG4gICAgICAgICAgICAgIDxEb3duT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9Qb3BvdmVyPlxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGNvbHVtbkJ1dHRvbnMubWFwKChpdGVtOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgICBjb25zdCB7IGNoaWxkcmVuLCBwYWdlVHlwZSwgb25DbGljaywgSWNvbiwgLi4ucGFyYW1zIH0gPSBpdGVtLnByb3BzO1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVzW1wiZWRpdG9yXCJdfVxyXG4gICAgICAgICAgICBrZXk9e2luZGV4fVxyXG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgb25DbGljayAmJiBvbkNsaWNrKHJlY29yZCk7XHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIHsuLi5wYXJhbXN9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHtJY29ufSB7Y2hpbGRyZW59XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICApO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgLy/moJHngrnlh7vkuovku7ZcclxuICB0cmVlU2VsZWN0KHNlbGVjdGVkS2V5czogYW55LCB7IHNlbGVjdGVkLCBzZWxlY3RlZE5vZGVzIH06IGFueSkge1xyXG4gICAgbGV0IGtleXdvcmQgPSBcIlwiO1xyXG4gICAgY29uc3QgeyBzZWFyY2hLZXkgPSBcImtleVwiLCBzZWFyY2hGaWVsZCA9IFwiXCIgfSA9IHRoaXMucHJvcHMudHJlZVByb3BzO1xyXG4gICAgY29uc3QgeyB0cmVlU2VsZWN0ZWRLZXkgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBpZiAoc2VsZWN0ZWQpIHtcclxuICAgICAgaWYgKHNlbGVjdGVkTm9kZXNbMF0uaXNMZWFmIHx8ICFzZWxlY3RlZE5vZGVzWzBdLmNoaWxkcmVuKSB7XHJcbiAgICAgICAgaWYgKHNlbGVjdGVkS2V5c1swXSAhPT0gdHJlZVNlbGVjdGVkS2V5KSB7XHJcbiAgICAgICAgICAvLyBsZXQgbWFwRGF0YSA9IHRoaXMudHJlZVJlZi5jdXJyZW50Py5zdG9yZS5nZXRGbGF0dGVuRGF0YSgpO1xyXG4gICAgICAgICAga2V5d29yZCA9IHNlbGVjdGVkTm9kZXNbMF0uZGF0YXJlZi5hdHRyaWJ1dGVbc2VhcmNoS2V5XTtcclxuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICB0cmVlU2VsZWN0ZWRLZXk6IHNlbGVjdGVkS2V5c1swXSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgdHJlZVNlbGVjdGVkS2V5OiBrZXl3b3JkLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGNvbnN0IGZyb21WYWx1ZSA9IHRoaXMuc2VhcmNoUmVmLmN1cnJlbnQ/LmdldEZpZWxkc1ZhbHVlKCk7XHJcbiAgICBzZWFyY2hGaWVsZCAmJiB0aGlzLmxvYWQoeyAuLi5mcm9tVmFsdWUsIFtzZWFyY2hGaWVsZF06IGtleXdvcmQgfSk7XHJcbiAgfVxyXG4gIHJlbmRlcigpIHtcclxuICAgIGNvbnN0IHsgc2VsZWN0ZWRSb3dLZXlzIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBjb2x1bW5zID0gW10sXHJcbiAgICAgIHNob3dTZWFyY2ggPSB0cnVlLFxyXG4gICAgICBjaGlsZHJlbixcclxuICAgICAgYXV0b1N1Ym1pdCA9IHRydWUsXHJcbiAgICAgIHN1Ym1pdFVybCA9IFwiXCIsXHJcbiAgICAgIHRhYmxlUHJvcHMgPSB7fSxcclxuICAgICAgdHJlZVByb3BzID0ge30sXHJcbiAgICAgIHNob3dMZWZ0ID0gZmFsc2UsXHJcbiAgICAgIHN1Ym1pdFBhcmFtcyA9IHt9LFxyXG4gICAgICBzaG93VG9vbEJ1dHRvbiA9IHRydWUsXHJcbiAgICAgIHNob3dBZGRCdXR0b24gPSB0cnVlLFxyXG4gICAgICBzaG93RGVsZXRlQnV0dG9uID0gdHJ1ZSxcclxuICAgICAgZWRpdG9yRm9ybSA9IHRydWUsXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHtcclxuICAgICAgc3RvcmUgPSB7fSxcclxuICAgICAgZmlsdGVyQ29sdW1uID0gdHJ1ZSxcclxuICAgICAgYWN0aW9uQnV0dG9uID0gdHJ1ZSxcclxuICAgICAgYWN0aW9uQ29sdW1uID0gdHJ1ZSxcclxuICAgICAgc2hvd1Jvd1NlbGVjdGlvbiA9IHRydWUsXHJcbiAgICB9ID0gdGFibGVQcm9wcztcclxuXHJcbiAgICBjb25zdCB7XHJcbiAgICAgIHN0b3JlOiB0cmVlU3RvcmUgPSB7fSxcclxuICAgICAgc2hvd1NlYXJjaDogdHJlZVNlYXJjaCA9IHRydWUsXHJcbiAgICAgIHRpdGxlQWxpYXMgPSBcInRpdGxlXCIsXHJcbiAgICB9ID0gdHJlZVByb3BzO1xyXG5cclxuICAgIGxldCB0YWJsZVBhcmFtcyA9IHsgZmlsdGVyQ29sdW1uLCBzdG9yZSB9IGFzIGFueTtcclxuXHJcbiAgICBpZiAoc2hvd1Jvd1NlbGVjdGlvbikge1xyXG4gICAgICB0YWJsZVBhcmFtcyA9IHtcclxuICAgICAgICAuLi50YWJsZVBhcmFtcyxcclxuICAgICAgICByb3dTZWxlY3Rpb246IHtcclxuICAgICAgICAgIHNlbGVjdGVkUm93S2V5czogc2VsZWN0ZWRSb3dLZXlzLFxyXG4gICAgICAgICAgb25TZWxlY3Q6IHRoaXMucm93U2VsZWN0aW9uT25TZWxlY3QuYmluZCh0aGlzKSxcclxuICAgICAgICAgIG9uU2VsZWN0QWxsOiB0aGlzLnJvd1NlbGVjdGlvbk9uU2VsZWN0QWxsLmJpbmQodGhpcyksXHJcbiAgICAgICAgICBjb2x1bW5XaWR0aDogNDAsXHJcbiAgICAgICAgfSxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIGNvbnN0IHRhYmxlQ29sdW1uOiBhbnlbXSA9IFtdO1xyXG4gICAgY29uc3Qgc2VhcmNoRm9ybXM6IGFueSA9IFtdO1xyXG4gICAgY29uc3QgZWRpdG9yRm9ybXM6IGFueSA9IFtdO1xyXG4gICAgY29sdW1ucy5tYXAoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICBsZXQgdGVtcCA9IHsgLi4uaXRlbSB9O1xyXG4gICAgICBpZiAodGVtcC5zZWFyY2gpIHtcclxuICAgICAgICBzZWFyY2hGb3Jtcy5wdXNoKHtcclxuICAgICAgICAgIG5hbWU6IHRlbXAuZmllbGQgfHwgdGVtcC5kYXRhSW5kZXgsXHJcbiAgICAgICAgICBsYWJlbDogdGVtcC50aXRsZSxcclxuICAgICAgICAgIHR5cGU6IHRlbXAudHlwZSxcclxuICAgICAgICAgIHByb3BzOiB0ZW1wLnByb3BzLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIGRlbGV0ZSB0ZW1wLnNlYXJjaDtcclxuICAgICAgdGVtcC5lZGl0b3IgIT09IGZhbHNlICYmXHJcbiAgICAgICAgZWRpdG9yRm9ybXMucHVzaCh7XHJcbiAgICAgICAgICBuYW1lOiB0ZW1wLmZpZWxkIHx8IHRlbXAuZGF0YUluZGV4LFxyXG4gICAgICAgICAgbGFiZWw6IHRlbXAudGl0bGUsXHJcbiAgICAgICAgICBydWxlczogdGVtcC5ydWxlcyxcclxuICAgICAgICAgIHR5cGU6IHRlbXAudHlwZSxcclxuICAgICAgICAgIHByb3BzOiB0ZW1wLnByb3BzLFxyXG4gICAgICAgICAgc3BhbjogdGVtcC5zcGFuLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICBkZWxldGUgdGVtcC5ydWxlcztcclxuICAgICAgZGVsZXRlIHRlbXAuc3BhbjtcclxuICAgICAgaWYgKHRlbXAuY29sdW1uU2VhcmNoKSB7XHJcbiAgICAgICAgdGVtcC5maWx0ZXJQcm9wcyA9IHtcclxuICAgICAgICAgIHR5cGU6IHRlbXAudHlwZSxcclxuICAgICAgICAgIHByb3BzOiB0ZW1wLnByb3BzLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgICAgZGVsZXRlIHRlbXAudHlwZTtcclxuICAgICAgZGVsZXRlIHRlbXAucHJvcHM7XHJcbiAgICAgIHRhYmxlQ29sdW1uLnB1c2godGVtcCk7XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IEJ1dHRvbnM6IGFueSA9IFtdO1xyXG4gICAgY29uc3QgY29sdW1uQnV0dG9uczogYW55ID0gW107XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShjaGlsZHJlbikpIHtcclxuICAgICAgY2hpbGRyZW4ubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoaXRlbS5wcm9wcy5wYWdlVHlwZSA9PSBcInRvb2xCdXR0b25cIikge1xyXG4gICAgICAgICAgQnV0dG9ucy5wdXNoKGl0ZW0pO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoaXRlbS5wcm9wcy5wYWdlVHlwZSA9PSBcImNsb3VtbkJ1dHRvblwiKSB7XHJcbiAgICAgICAgICBjb2x1bW5CdXR0b25zLnB1c2goaXRlbSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSBpZiAoY2hpbGRyZW4pIHtcclxuICAgICAgY29uc3QgeyBwcm9wcyB9OiBhbnkgPSBjaGlsZHJlbjtcclxuICAgICAgaWYgKHByb3BzLnBhZ2VUeXBlID09IFwidG9vbEJ1dHRvblwiKSB7XHJcbiAgICAgICAgQnV0dG9ucy5wdXNoKGNoaWxkcmVuKTtcclxuICAgICAgfSBlbHNlIGlmIChwcm9wcy5wYWdlVHlwZSA9PSBcImNsb3VtbkJ1dHRvblwiKSB7XHJcbiAgICAgICAgY29sdW1uQnV0dG9ucy5wdXNoKGNoaWxkcmVuKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgYWN0aW9uQ29sdW1uICYmXHJcbiAgICAgIHRhYmxlQ29sdW1uLnB1c2goe1xyXG4gICAgICAgIHRpdGxlOiBcIuaTjeS9nFwiLFxyXG4gICAgICAgIGRhdGFJbmRleDogXCJhY3Rpb25cIixcclxuICAgICAgICBhbGlnbjogXCJjZW50ZXJcIixcclxuICAgICAgICB3aWR0aDogMTUwLFxyXG4gICAgICAgIHJlbmRlcjogKHRleHQ6IGFueSwgcmVjb3JkOiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbXCJhY3Rpb25cIl19PlxyXG4gICAgICAgICAgICAgIHthY3Rpb25CdXR0b24gJiYgZWRpdG9yRm9ybSA9PSB0cnVlICYmIChcclxuICAgICAgICAgICAgICAgIDw+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e3N0eWxlc1tcImVkaXRvclwiXX1cclxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXt0aGlzLnNob3dGb3JtLmJpbmQodGhpcywgcmVjb3JkLCBmYWxzZSl9XHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICDmn6XnnItcclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e3N0eWxlc1tcImVkaXRvclwiXX1cclxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXt0aGlzLnNob3dGb3JtLmJpbmQodGhpcywgcmVjb3JkLCB0cnVlKX1cclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIOe8lui+kVxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvPlxyXG4gICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAge3RoaXMucmVuZGVyQ2xvdW1uQnV0dG9uKGNvbHVtbkJ1dHRvbnMsIHJlY29yZCwgYWN0aW9uQnV0dG9uKX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG5cclxuICAgIHJldHVybiAoXHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbXCJwYWdlXCJdfSBzdHlsZT17eyBkaXNwbGF5OiBcImZsZXhcIiB9fT5cclxuICAgICAgICB7c2hvd0xlZnQgJiYgKFxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcImxlZnRcIl19PlxyXG4gICAgICAgICAgICA8VHJlZVxyXG4gICAgICAgICAgICAgIHN0b3JlPXt7IC4uLnRyZWVTdG9yZSB9fVxyXG4gICAgICAgICAgICAgIHNob3dJY29uPXtmYWxzZX1cclxuICAgICAgICAgICAgICBjaGVja2FibGU9e2ZhbHNlfVxyXG4gICAgICAgICAgICAgIHNlYXJjaGFibGU9e3RyZWVTZWFyY2h9XHJcbiAgICAgICAgICAgICAgb25TZWxlY3Q9e3RoaXMudHJlZVNlbGVjdC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICAgIHNlbGVjdGVkS2V5cz17W3RoaXMuc3RhdGUudHJlZVNlbGVjdGVkS2V5XX1cclxuICAgICAgICAgICAgICB0aXRsZUFsaWFzPXt0aXRsZUFsaWFzfVxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgKX1cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzW1wicmlnaHRcIl19PlxyXG4gICAgICAgICAge3Nob3dTZWFyY2ggJiYgKFxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzW1wiaGVhZGVyXCJdfT5cclxuICAgICAgICAgICAgICA8Rm9ybVxyXG4gICAgICAgICAgICAgICAgcmVmPXt0aGlzLnNlYXJjaFJlZn1cclxuICAgICAgICAgICAgICAgIGxhYmVsQ29sPXt7fX1cclxuICAgICAgICAgICAgICAgIHdyYXBwZXJDb2w9e3t9fVxyXG4gICAgICAgICAgICAgICAgbGF5b3V0PVwiaW5saW5lXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICB7c2VhcmNoRm9ybXMubWFwKChpdGVtOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgaWYgKGluZGV4ID4gMiAmJiAhdGhpcy5zdGF0ZS5leHBhbmQpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgICAgICA8Rm9ybS5JdGVtXHJcbiAgICAgICAgICAgICAgICAgICAgICBsYWJlbD17aXRlbS5sYWJlbH1cclxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2l0ZW0ubmFtZX1cclxuICAgICAgICAgICAgICAgICAgICAgIC8vIHJ1bGVzPXtpdGVtLnJ1bGVzfVxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIHtnZXROb2RlKGl0ZW0udHlwZSwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5pdGVtLnByb3BzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogYOivt+i+k+WFpSR7aXRlbS5sYWJlbH1gLFxyXG4gICAgICAgICAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XHJcbiAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAgICA8L0Zvcm0+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcImJ1dHRvbnNcIl19IHN0eWxlPXt7IG1hcmdpblRvcDogMCB9fT5cclxuICAgICAgICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgICAgICAgdHlwZT17XCJwcmltYXJ5XCJ9XHJcbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMub25TZWFyY2guYmluZCh0aGlzKX1cclxuICAgICAgICAgICAgICAgICAgaWNvbj17PEljb24gdHlwZT17aWNvblR5cGUuc2VhcmNofSAvPn1cclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAg5p+l6K+iXHJcbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgICAgICAgdHlwZT17XCJwcmltYXJ5XCJ9XHJcbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaFJlZi5jdXJyZW50Py5yZXNldEZpZWxkcygpO1xyXG4gICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICBpY29uPXs8SWNvbiB0eXBlPXtpY29uVHlwZS5yZWZyZXNofSAvPn1cclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAg6YeN572uXHJcbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICAgICAgICAgIHtzZWFyY2hGb3Jtcy5sZW5ndGggPiAzICYmIChcclxuICAgICAgICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e3N0eWxlcy5hX3N0eWxlfVxyXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgZXhwYW5kIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGFuZDogIWV4cGFuZCxcclxuICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICB7dGhpcy5zdGF0ZS5leHBhbmQgPyBcIuaUtui1t1wiIDogXCLlsZXlvIBcIn1cclxuICAgICAgICAgICAgICAgICAgICB7dGhpcy5zdGF0ZS5leHBhbmQgPyA8VXBPdXRsaW5lZCAvPiA6IDxEb3duT3V0bGluZWQgLz59XHJcbiAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgKX1cclxuICAgICAgICAgIHtzaG93VG9vbEJ1dHRvbiAmJiAoXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbXCJidXR0b25zXCJdfSBzdHlsZT17eyBtYXJnaW5MZWZ0OiAwIH19PlxyXG4gICAgICAgICAgICAgIHtzaG93QWRkQnV0dG9uICYmIGVkaXRvckZvcm0gPT0gdHJ1ZSAmJiAoXHJcbiAgICAgICAgICAgICAgICA8QnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgIHR5cGU9e1wicHJpbWFyeVwifVxyXG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXt0aGlzLnNob3dGb3JtLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICAgICAgICAgIGljb249ezxJY29uIHR5cGU9e2ljb25UeXBlLmFkZH0gLz59XHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIOa3u+WKoFxyXG4gICAgICAgICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICB7c2hvd0RlbGV0ZUJ1dHRvbiAmJiBlZGl0b3JGb3JtID09IHRydWUgJiYgKFxyXG4gICAgICAgICAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAvLyB0eXBlPXtcInByaW1hcnlcIn1cclxuICAgICAgICAgICAgICAgICAgb25DbGljaz17dGhpcy5vbkRlbGV0ZS5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICAgICAgICBpY29uPXs8SWNvbiB0eXBlPXtpY29uVHlwZS5kZWxldGUzfSAvPn1cclxuICAgICAgICAgICAgICAgICAgZGFuZ2VyXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIOWIoOmZpFxyXG4gICAgICAgICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICB7QnV0dG9ucy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDxkaXYga2V5PXtpbmRleH0+e2l0ZW19PC9kaXY+O1xyXG4gICAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICl9XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzW1widGFibGVcIl19PlxyXG4gICAgICAgICAgICA8VGFibGUgcmVmPXt0aGlzLnRhYmxlUmVmfSBjb2x1bW5zPXt0YWJsZUNvbHVtbn0gey4uLnRhYmxlUGFyYW1zfSAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAge2VkaXRvckZvcm0gJiYgKFxyXG4gICAgICAgICAgPEVkaXRvckZvcm1cclxuICAgICAgICAgICAgcmVmPXt0aGlzLmVkaXRvclJlZn1cclxuICAgICAgICAgICAgb25DYW5jZWw9e3RoaXMuc2hvd0Zvcm0uYmluZCh0aGlzKX1cclxuICAgICAgICAgICAgY2FsbEJhY2s9e3RoaXMudGFibGVSZWxvYWQuYmluZCh0aGlzKX1cclxuICAgICAgICAgICAgZm9ybVByb3BzPXtlZGl0b3JGb3Jtc31cclxuICAgICAgICAgICAgYXV0b1N1Ym1pdD17YXV0b1N1Ym1pdH1cclxuICAgICAgICAgICAgc3VibWl0VXJsPXtzdWJtaXRVcmx9XHJcbiAgICAgICAgICAgIHN1Ym1pdFBhcmFtcz17c3VibWl0UGFyYW1zfVxyXG4gICAgICAgICAgLz5cclxuICAgICAgICApfVxyXG4gICAgICA8L2Rpdj5cclxuICAgICk7XHJcbiAgfVxyXG59XHJcbmV4cG9ydCBkZWZhdWx0IEJhc2VQYWdlO1xyXG4iXX0=
@@ -19,17 +19,22 @@
19
19
  display: flex;
20
20
  margin-top: 20px;
21
21
  :global {
22
+ .ant-form-inline {
23
+ width: 45vw !important;
24
+ }
22
25
  .ant-form-inline .ant-form-item {
23
26
  margin-right: 30px;
27
+ margin-bottom: 20px;
28
+ width: 13vw;
24
29
  }
25
30
  .ant-select {
26
- width: 180px !important;
31
+ width: 100% !important;
27
32
  }
28
33
  }
29
34
  }
30
35
  .buttons {
31
36
  display: flex;
32
- margin-top: 20px;
37
+ // margin-top: 20px;
33
38
  .margin {
34
39
  margin-left: 27px;
35
40
  }
@@ -57,11 +62,15 @@
57
62
  cursor: pointer;
58
63
  color: #4286ed;
59
64
  .icon {
60
- font-size: 10px;
61
- margin-left: -3px;
65
+ font-size: 12px;
66
+ // margin-left: 2px;
62
67
  }
63
68
  }
64
69
  .content-item {
65
70
  height: 40px;
66
71
  line-height: 40px;
67
72
  }
73
+
74
+ .a_style {
75
+ line-height: 35px;
76
+ }
@@ -0,0 +1,5 @@
1
+ import * as React from "react";
2
+ import { PageHeaderProps } from "antd";
3
+ export default class NscPageHeader extends React.PureComponent<PageHeaderProps, any> {
4
+ render(): React.ReactNode;
5
+ }