nsc-react-component 2.12.2 → 2.13.0
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/Interface.js +1 -1
- package/lib/Interface.js.map +1 -0
- package/lib/base/affix/index.js +5 -46
- package/lib/base/affix/index.js.map +1 -0
- package/lib/base/alert/index.js +5 -46
- package/lib/base/alert/index.js.map +1 -0
- package/lib/base/anchor/index.js +8 -49
- package/lib/base/anchor/index.js.map +1 -0
- package/lib/base/avatar/index.js +8 -49
- package/lib/base/avatar/index.js.map +1 -0
- package/lib/base/backTop/index.js +5 -46
- package/lib/base/backTop/index.js.map +1 -0
- package/lib/base/badge/index.js +8 -49
- package/lib/base/badge/index.js.map +1 -0
- package/lib/base/breadcrumb/index.js +5 -46
- package/lib/base/breadcrumb/index.js.map +1 -0
- package/lib/base/button/index.d.ts +1 -1
- package/lib/base/button/index.js +93 -134
- package/lib/base/button/index.js.map +1 -0
- package/lib/base/calendar/index.js +5 -46
- package/lib/base/calendar/index.js.map +1 -0
- package/lib/base/card/index.js +8 -50
- package/lib/base/card/index.js.map +1 -0
- package/lib/base/carousel/index.js +5 -46
- package/lib/base/carousel/index.js.map +1 -0
- package/lib/base/cascader/index.d.ts +3 -3
- package/lib/base/cascader/index.js +150 -221
- package/lib/base/cascader/index.js.map +1 -0
- package/lib/base/chart/index.d.ts +2 -2
- package/lib/base/chart/index.js +178 -287
- package/lib/base/chart/index.js.map +1 -0
- package/lib/base/checkbox/CheckboxGroup.d.ts +3 -3
- package/lib/base/checkbox/CheckboxGroup.js +165 -258
- package/lib/base/checkbox/CheckboxGroup.js.map +1 -0
- package/lib/base/checkbox/index.d.ts +2 -2
- package/lib/base/checkbox/index.js +8 -48
- package/lib/base/checkbox/index.js.map +1 -0
- package/lib/base/collapse/index.js +8 -49
- package/lib/base/collapse/index.js.map +1 -0
- package/lib/base/comment/index.js +5 -46
- package/lib/base/comment/index.js.map +1 -0
- package/lib/base/common/BodyRow/index.js +48 -102
- package/lib/base/common/BodyRow/index.js.map +1 -0
- package/lib/base/common/EllipseCell/index.d.ts +1 -1
- package/lib/base/common/EllipseCell/index.js +16 -57
- package/lib/base/common/EllipseCell/index.js.map +1 -0
- package/lib/base/common/FileIcon.d.ts +2 -2
- package/lib/base/common/FileIcon.js +86 -132
- package/lib/base/common/FileIcon.js.map +1 -0
- package/lib/base/common/Icon.d.ts +2 -2
- package/lib/base/common/Icon.js +42 -96
- package/lib/base/common/Icon.js.map +1 -0
- package/lib/base/common/IconData.js +2 -2
- package/lib/base/common/IconData.js.map +1 -0
- package/lib/base/common/IconFont.d.ts +2 -2
- package/lib/base/common/IconFont.js +6 -8
- package/lib/base/common/IconFont.js.map +1 -0
- package/lib/base/common/NoAuthority.d.ts +2 -2
- package/lib/base/common/NoAuthority.js +13 -53
- package/lib/base/common/NoAuthority.js.map +1 -0
- package/lib/base/common/NoData.d.ts +2 -2
- package/lib/base/common/NoData.js +34 -74
- package/lib/base/common/NoData.js.map +1 -0
- package/lib/base/common/NoMessage.d.ts +2 -2
- package/lib/base/common/NoMessage.js +30 -70
- package/lib/base/common/NoMessage.js.map +1 -0
- package/lib/base/common/NoNetWork.d.ts +2 -2
- package/lib/base/common/NoNetWork.js +30 -70
- package/lib/base/common/NoNetWork.js.map +1 -0
- package/lib/base/common/Page404.d.ts +2 -2
- package/lib/base/common/Page404.js +30 -70
- package/lib/base/common/Page404.js.map +1 -0
- package/lib/base/common/PageRequest.js +91 -154
- package/lib/base/common/PageRequest.js.map +1 -0
- package/lib/base/common/TreePanel.d.ts +1 -1
- package/lib/base/common/TreePanel.js +133 -212
- package/lib/base/common/TreePanel.js.map +1 -0
- package/lib/base/common/iconfontalibaba.js +15 -22
- package/lib/base/common/iconfontalibaba.js.map +1 -0
- package/lib/base/common/withZhLocale.d.ts +1 -1
- package/lib/base/common/withZhLocale.js +3 -7
- package/lib/base/common/withZhLocale.js.map +1 -0
- package/lib/base/configProvider/index.js +8 -49
- package/lib/base/configProvider/index.js.map +1 -0
- package/lib/base/datepick/Rangepicker.d.ts +3 -3
- package/lib/base/datepick/Rangepicker.js +229 -325
- package/lib/base/datepick/Rangepicker.js.map +1 -0
- package/lib/base/datepick/index.d.ts +2 -2
- package/lib/base/datepick/index.js +56 -113
- package/lib/base/datepick/index.js.map +1 -0
- package/lib/base/descriptions/index.js +8 -49
- package/lib/base/descriptions/index.js.map +1 -0
- package/lib/base/divider/index.js +5 -46
- package/lib/base/divider/index.js.map +1 -0
- package/lib/base/download/index.js +42 -84
- package/lib/base/download/index.js.map +1 -0
- package/lib/base/drawer/index.js +14 -57
- package/lib/base/drawer/index.js.map +1 -0
- package/lib/base/dropdown/index.js +19 -65
- package/lib/base/dropdown/index.js.map +1 -0
- package/lib/base/editor/index.d.ts +1 -1
- package/lib/base/editor/index.js +83 -128
- package/lib/base/editor/index.js.map +1 -0
- package/lib/base/errorboundary/index.js +19 -63
- package/lib/base/errorboundary/index.js.map +1 -0
- package/lib/base/form/Form.d.ts +2 -2
- package/lib/base/form/Form.js +314 -427
- package/lib/base/form/Form.js.map +1 -0
- package/lib/base/form/filed/Cascader.d.ts +2 -2
- package/lib/base/form/filed/Cascader.js +6 -45
- package/lib/base/form/filed/Cascader.js.map +1 -0
- package/lib/base/form/filed/Checkbox.d.ts +2 -2
- package/lib/base/form/filed/Checkbox.js +6 -45
- package/lib/base/form/filed/Checkbox.js.map +1 -0
- package/lib/base/form/filed/DatePicker.d.ts +2 -2
- package/lib/base/form/filed/DatePicker.js +6 -45
- package/lib/base/form/filed/DatePicker.js.map +1 -0
- package/lib/base/form/filed/FormItem.d.ts +2 -2
- package/lib/base/form/filed/FormItem.js +65 -127
- package/lib/base/form/filed/FormItem.js.map +1 -0
- package/lib/base/form/filed/Input.d.ts +2 -2
- package/lib/base/form/filed/Input.js +14 -51
- package/lib/base/form/filed/Input.js.map +1 -0
- package/lib/base/form/filed/InputEamil.d.ts +2 -2
- package/lib/base/form/filed/InputEamil.js +5 -44
- package/lib/base/form/filed/InputEamil.js.map +1 -0
- package/lib/base/form/filed/InputNumber.d.ts +2 -2
- package/lib/base/form/filed/InputNumber.js +5 -44
- package/lib/base/form/filed/InputNumber.js.map +1 -0
- package/lib/base/form/filed/InputPassword.d.ts +2 -2
- package/lib/base/form/filed/InputPassword.js +5 -44
- package/lib/base/form/filed/InputPassword.js.map +1 -0
- package/lib/base/form/filed/Item.d.ts +3 -3
- package/lib/base/form/filed/Item.js +91 -163
- package/lib/base/form/filed/Item.js.map +1 -0
- package/lib/base/form/filed/Radio.d.ts +2 -2
- package/lib/base/form/filed/Radio.js +7 -45
- package/lib/base/form/filed/Radio.js.map +1 -0
- package/lib/base/form/filed/RangerPicker.d.ts +2 -2
- package/lib/base/form/filed/RangerPicker.js +6 -45
- package/lib/base/form/filed/RangerPicker.js.map +1 -0
- package/lib/base/form/filed/Rate.d.ts +2 -2
- package/lib/base/form/filed/Rate.js +6 -46
- package/lib/base/form/filed/Rate.js.map +1 -0
- package/lib/base/form/filed/Select.d.ts +2 -2
- package/lib/base/form/filed/Select.js +9 -49
- package/lib/base/form/filed/Select.js.map +1 -0
- package/lib/base/form/filed/Slider.d.ts +2 -2
- package/lib/base/form/filed/Slider.js +6 -46
- package/lib/base/form/filed/Slider.js.map +1 -0
- package/lib/base/form/filed/Switch.d.ts +2 -2
- package/lib/base/form/filed/Switch.js +6 -46
- package/lib/base/form/filed/Switch.js.map +1 -0
- package/lib/base/form/filed/TagSelect.d.ts +2 -2
- package/lib/base/form/filed/TagSelect.js +6 -45
- package/lib/base/form/filed/TagSelect.js.map +1 -0
- package/lib/base/form/filed/TextArea.d.ts +2 -2
- package/lib/base/form/filed/TextArea.js +5 -44
- package/lib/base/form/filed/TextArea.js.map +1 -0
- package/lib/base/form/filed/Upload.d.ts +2 -2
- package/lib/base/form/filed/Upload.js +9 -45
- package/lib/base/form/filed/Upload.js.map +1 -0
- package/lib/base/form/index.js +17 -58
- package/lib/base/form/index.js.map +1 -0
- package/lib/base/grid/Col.js +5 -46
- package/lib/base/grid/Col.js.map +1 -0
- package/lib/base/grid/Row.js +5 -46
- package/lib/base/grid/Row.js.map +1 -0
- package/lib/base/grid/index.js +1 -1
- package/lib/base/grid/index.js.map +1 -0
- package/lib/base/iframe/index.d.ts +1 -1
- package/lib/base/iframe/index.js +44 -93
- package/lib/base/iframe/index.js.map +1 -0
- package/lib/base/image/index.js +163 -261
- package/lib/base/image/index.js.map +1 -0
- package/lib/base/input/Email.d.ts +2 -2
- package/lib/base/input/Email.js +55 -103
- package/lib/base/input/Email.js.map +1 -0
- package/lib/base/input/Number.d.ts +1 -1
- package/lib/base/input/Number.js +48 -104
- package/lib/base/input/Number.js.map +1 -0
- package/lib/base/input/Password.d.ts +1 -1
- package/lib/base/input/Password.js +48 -104
- package/lib/base/input/Password.js.map +1 -0
- package/lib/base/input/Search.d.ts +1 -1
- package/lib/base/input/Search.js +46 -102
- package/lib/base/input/Search.js.map +1 -0
- package/lib/base/input/TextArea.d.ts +1 -1
- package/lib/base/input/TextArea.js +64 -123
- package/lib/base/input/TextArea.js.map +1 -0
- package/lib/base/input/index.d.ts +2 -2
- package/lib/base/input/index.js +121 -195
- package/lib/base/input/index.js.map +1 -0
- package/lib/base/layout/index.js +14 -56
- package/lib/base/layout/index.js.map +1 -0
- package/lib/base/list/index.js +8 -49
- package/lib/base/list/index.js.map +1 -0
- package/lib/base/menu/index.d.ts +5 -5
- package/lib/base/menu/index.js +100 -164
- package/lib/base/menu/index.js.map +1 -0
- package/lib/base/message/index.js +5 -47
- package/lib/base/message/index.js.map +1 -0
- package/lib/base/modal/Confirm.js +14 -18
- package/lib/base/modal/Confirm.js.map +1 -0
- package/lib/base/modal/index.d.ts +1 -1
- package/lib/base/modal/index.js +274 -359
- package/lib/base/modal/index.js.map +1 -0
- package/lib/base/notification/index.js +5 -47
- package/lib/base/notification/index.js.map +1 -0
- package/lib/base/pageHeader/index.js +5 -46
- package/lib/base/pageHeader/index.js.map +1 -0
- package/lib/base/pagination/index.js +5 -46
- package/lib/base/pagination/index.js.map +1 -0
- package/lib/base/pdfviwer/index.d.ts +1 -1
- package/lib/base/pdfviwer/index.js +67 -92
- package/lib/base/pdfviwer/index.js.map +1 -0
- package/lib/base/popconfirm/index.js +5 -46
- package/lib/base/popconfirm/index.js.map +1 -0
- package/lib/base/popover/index.js +19 -65
- package/lib/base/popover/index.js.map +1 -0
- package/lib/base/progress/index.js +5 -46
- package/lib/base/progress/index.js.map +1 -0
- package/lib/base/radio/RadioGroup.d.ts +1 -1
- package/lib/base/radio/RadioGroup.js +198 -295
- package/lib/base/radio/RadioGroup.js.map +1 -0
- package/lib/base/radio/index.d.ts +1 -1
- package/lib/base/radio/index.js +8 -50
- package/lib/base/radio/index.js.map +1 -0
- package/lib/base/result/index.js +5 -46
- package/lib/base/result/index.js.map +1 -0
- package/lib/base/select/index.d.ts +4 -4
- package/lib/base/select/index.js +358 -475
- package/lib/base/select/index.js.map +1 -0
- package/lib/base/skeleton/index.js +5 -46
- package/lib/base/skeleton/index.js.map +1 -0
- package/lib/base/space/index.js +5 -46
- package/lib/base/space/index.js.map +1 -0
- package/lib/base/spin/index.js +5 -46
- package/lib/base/spin/index.js.map +1 -0
- package/lib/base/statistic/index.js +8 -49
- package/lib/base/statistic/index.js.map +1 -0
- package/lib/base/steps/index.js +8 -49
- package/lib/base/steps/index.js.map +1 -0
- package/lib/base/switch/index.js +5 -46
- package/lib/base/switch/index.js.map +1 -0
- package/lib/base/table/index.d.ts +8 -8
- package/lib/base/table/index.js +743 -927
- package/lib/base/table/index.js.map +1 -0
- package/lib/base/tabs/Tabpane.d.ts +1 -1
- package/lib/base/tabs/Tabpane.js +22 -58
- package/lib/base/tabs/Tabpane.js.map +1 -0
- package/lib/base/tabs/index.d.ts +1 -1
- package/lib/base/tabs/index.js +110 -156
- package/lib/base/tabs/index.js.map +1 -0
- package/lib/base/tagSelect/TagSelect.d.ts +3 -3
- package/lib/base/tagSelect/TagSelect.js +124 -213
- package/lib/base/tagSelect/TagSelect.js.map +1 -0
- package/lib/base/tagSelect/index.d.ts +3 -3
- package/lib/base/tagSelect/index.js +90 -145
- package/lib/base/tagSelect/index.js.map +1 -0
- package/lib/base/timeline/index.js +8 -49
- package/lib/base/timeline/index.js.map +1 -0
- package/lib/base/tooltip/index.js +19 -65
- package/lib/base/tooltip/index.js.map +1 -0
- package/lib/base/transfer/index.js +5 -46
- package/lib/base/transfer/index.js.map +1 -0
- package/lib/base/tree/TreeSearch.d.ts +3 -3
- package/lib/base/tree/TreeSearch.js +119 -186
- package/lib/base/tree/TreeSearch.js.map +1 -0
- package/lib/base/tree/index.d.ts +2 -2
- package/lib/base/tree/index.js +169 -241
- package/lib/base/tree/index.js.map +1 -0
- package/lib/base/treeselect/index.js +5 -46
- package/lib/base/treeselect/index.js.map +1 -0
- package/lib/base/typography/index.js +5 -46
- package/lib/base/typography/index.js.map +1 -0
- package/lib/base/upload/Dragger.js +370 -605
- package/lib/base/upload/Dragger.js.map +1 -0
- package/lib/base/upload/Upload.js +352 -529
- package/lib/base/upload/Upload.js.map +1 -0
- package/lib/base/upload/index copy.d.ts +1 -1
- package/lib/base/upload/index copy.js +315 -431
- package/lib/base/upload/index copy.js.map +1 -0
- package/lib/base/upload/index.js +367 -640
- package/lib/base/upload/index.js.map +1 -0
- package/lib/config.d.ts +2 -0
- package/lib/config.js +7 -9
- package/lib/config.js.map +1 -0
- package/lib/constants.js +2 -2
- package/lib/constants.js.map +1 -0
- package/lib/index.js +2 -1
- package/lib/index.js.map +1 -0
- package/lib/page/BasePage/Form.d.ts +1 -1
- package/lib/page/BasePage/Form.js +253 -360
- package/lib/page/BasePage/Form.js.map +1 -0
- package/lib/page/BasePage/index.d.ts +9 -4
- package/lib/page/BasePage/index.js +864 -962
- package/lib/page/BasePage/index.js.map +1 -0
- package/lib/page/BasePage/index.module copy.less +144 -0
- package/lib/page/BasePage/index.module.less +92 -58
- package/lib/page/HeaderSearch/index.d.ts +1 -1
- package/lib/page/HeaderSearch/index.js +196 -272
- package/lib/page/HeaderSearch/index.js.map +1 -0
- package/lib/page/PasswordCheck/index.d.ts +1 -1
- package/lib/page/PasswordCheck/index.js +53 -109
- package/lib/page/PasswordCheck/index.js.map +1 -0
- package/lib/treeUtils.js +45 -58
- package/lib/treeUtils.js.map +1 -0
- package/lib/utils.d.ts +2 -2
- package/lib/utils.js +48 -61
- package/lib/utils.js.map +1 -0
- package/package.json +1 -1
|
@@ -1,33 +1,9 @@
|
|
|
1
|
-
function
|
|
2
|
-
|
|
3
|
-
function
|
|
4
|
-
|
|
5
|
-
function
|
|
6
|
-
|
|
7
|
-
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; }
|
|
8
|
-
|
|
9
|
-
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
10
|
-
|
|
11
|
-
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); } }
|
|
12
|
-
|
|
13
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
|
14
|
-
|
|
15
|
-
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
16
|
-
|
|
17
|
-
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
18
|
-
|
|
19
|
-
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
20
|
-
|
|
21
|
-
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
|
|
22
|
-
|
|
23
|
-
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
24
|
-
|
|
25
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
26
|
-
|
|
27
|
-
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
28
|
-
|
|
29
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
30
|
-
|
|
1
|
+
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); }
|
|
2
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
3
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
4
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
5
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
6
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
31
7
|
import React, { PureComponent } from "react";
|
|
32
8
|
import Form from "../../base/form";
|
|
33
9
|
import Button from "../../base/button";
|
|
@@ -39,222 +15,144 @@ import moment from "moment";
|
|
|
39
15
|
import { isEmptyObj } from "@bj-nsc/functions";
|
|
40
16
|
import { DownOutlined, UpOutlined, ReloadOutlined, SearchOutlined } from "@ant-design/icons";
|
|
41
17
|
import { getLess, getNode } from "../../utils";
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
function HeaderSearch() {
|
|
49
|
-
var _this;
|
|
50
|
-
|
|
51
|
-
_classCallCheck(this, HeaderSearch);
|
|
52
|
-
|
|
53
|
-
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
54
|
-
args[_key] = arguments[_key];
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
_this = _super.call.apply(_super, [this].concat(args));
|
|
58
|
-
|
|
59
|
-
_defineProperty(_assertThisInitialized(_this), "searchRef", /*#__PURE__*/React.createRef());
|
|
60
|
-
|
|
61
|
-
_defineProperty(_assertThisInitialized(_this), "dateFormat", {});
|
|
62
|
-
|
|
63
|
-
_defineProperty(_assertThisInitialized(_this), "state", {
|
|
18
|
+
class HeaderSearch extends PureComponent {
|
|
19
|
+
constructor() {
|
|
20
|
+
super(...arguments);
|
|
21
|
+
_defineProperty(this, "searchRef", /*#__PURE__*/React.createRef());
|
|
22
|
+
_defineProperty(this, "dateFormat", {});
|
|
23
|
+
_defineProperty(this, "state", {
|
|
64
24
|
expand: false
|
|
65
25
|
});
|
|
66
|
-
|
|
67
|
-
return _this;
|
|
68
26
|
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
var _this$searchRef$curre2;
|
|
87
|
-
|
|
88
|
-
var fromValue = (_this$searchRef$curre2 = this.searchRef.current) === null || _this$searchRef$curre2 === void 0 ? void 0 : _this$searchRef$curre2.getFieldsValue();
|
|
89
|
-
|
|
90
|
-
if (!isEmptyObj(this.dateFormat)) {
|
|
91
|
-
for (var key in this.dateFormat) {
|
|
92
|
-
var olddata = fromValue[key];
|
|
93
|
-
|
|
94
|
-
if (Array.isArray(olddata)) {
|
|
95
|
-
if (olddata.length > 0 && olddata[0] && olddata[1]) {
|
|
96
|
-
fromValue[key] = [moment(olddata[0]).format(this.dateFormat[key]), moment(olddata[1]).format(this.dateFormat[key])];
|
|
97
|
-
}
|
|
98
|
-
} else if (olddata) {
|
|
99
|
-
fromValue[key] = moment(olddata).format(this.dateFormat[key]);
|
|
27
|
+
setSearchParams(params, callBack) {
|
|
28
|
+
var _this$searchRef$curre;
|
|
29
|
+
(_this$searchRef$curre = this.searchRef.current) === null || _this$searchRef$curre === void 0 || _this$searchRef$curre.setFieldsValue(params);
|
|
30
|
+
}
|
|
31
|
+
getSearchValues() {
|
|
32
|
+
const fromValue = this.formatValue();
|
|
33
|
+
return fromValue;
|
|
34
|
+
}
|
|
35
|
+
formatValue() {
|
|
36
|
+
var _this$searchRef$curre2;
|
|
37
|
+
const fromValue = (_this$searchRef$curre2 = this.searchRef.current) === null || _this$searchRef$curre2 === void 0 ? void 0 : _this$searchRef$curre2.getFieldsValue();
|
|
38
|
+
if (!isEmptyObj(this.dateFormat)) {
|
|
39
|
+
for (let key in this.dateFormat) {
|
|
40
|
+
let olddata = fromValue[key];
|
|
41
|
+
if (Array.isArray(olddata)) {
|
|
42
|
+
if (olddata.length > 0 && olddata[0] && olddata[1]) {
|
|
43
|
+
fromValue[key] = [moment(olddata[0]).format(this.dateFormat[key]), moment(olddata[1]).format(this.dateFormat[key])];
|
|
100
44
|
}
|
|
45
|
+
} else if (olddata) {
|
|
46
|
+
fromValue[key] = moment(olddata).format(this.dateFormat[key]);
|
|
101
47
|
}
|
|
102
48
|
}
|
|
103
|
-
|
|
104
|
-
return fromValue;
|
|
105
49
|
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
50
|
+
return fromValue;
|
|
51
|
+
}
|
|
52
|
+
onSearch() {
|
|
53
|
+
const {
|
|
54
|
+
onSearch
|
|
55
|
+
} = this.props;
|
|
56
|
+
const fromValue = this.formatValue();
|
|
57
|
+
if (onSearch) {
|
|
58
|
+
onSearch(fromValue);
|
|
59
|
+
return;
|
|
116
60
|
}
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
61
|
+
}
|
|
62
|
+
resetFields() {
|
|
63
|
+
var _this$searchRef$curre3;
|
|
64
|
+
(_this$searchRef$curre3 = this.searchRef.current) === null || _this$searchRef$curre3 === void 0 || _this$searchRef$curre3.resetFields();
|
|
65
|
+
}
|
|
66
|
+
resetSearch() {
|
|
67
|
+
var _this$searchRef$curre4;
|
|
68
|
+
if (this.props.onReset) {
|
|
69
|
+
this.props.onReset();
|
|
70
|
+
return;
|
|
123
71
|
}
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
|
|
72
|
+
(_this$searchRef$curre4 = this.searchRef.current) === null || _this$searchRef$curre4 === void 0 || _this$searchRef$curre4.resetFields();
|
|
73
|
+
}
|
|
74
|
+
render() {
|
|
75
|
+
const {
|
|
76
|
+
searchForms = [],
|
|
77
|
+
toolButtonPosition,
|
|
78
|
+
onSearch,
|
|
79
|
+
onReset,
|
|
80
|
+
searchFormProps = {}
|
|
81
|
+
} = this.props;
|
|
82
|
+
let colSpan = 0;
|
|
83
|
+
const headerCount = toolButtonPosition == "right" ? 1 : 2;
|
|
84
|
+
const headerRout = searchForms.length % 4;
|
|
85
|
+
if (headerRout == 0) {
|
|
86
|
+
colSpan = 18;
|
|
87
|
+
} else if (headerRout == 1) {
|
|
88
|
+
colSpan = 12;
|
|
89
|
+
} else if (headerRout == 2) {
|
|
90
|
+
colSpan = 6;
|
|
135
91
|
}
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
92
|
+
return /*#__PURE__*/React.createElement(Row, {
|
|
93
|
+
gutter: 24,
|
|
94
|
+
wrap: true
|
|
95
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
96
|
+
className: cls(getLess(styles, "header"), {
|
|
97
|
+
[getLess(styles, "header-padding")]: searchForms.length > 3
|
|
98
|
+
}, this.props.className)
|
|
99
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
100
|
+
className: cls(getLess(styles, "form"))
|
|
101
|
+
}, /*#__PURE__*/React.createElement(Form, _extends({
|
|
102
|
+
ref: this.searchRef,
|
|
103
|
+
labelCol: {},
|
|
104
|
+
wrapperCol: {},
|
|
105
|
+
style: {
|
|
106
|
+
width: "100%",
|
|
107
|
+
display: "flex",
|
|
108
|
+
flexWrap: "wrap"
|
|
109
|
+
},
|
|
110
|
+
onFinish: this.onSearch.bind(this)
|
|
111
|
+
// labelAlign={'left'}
|
|
112
|
+
}, searchFormProps), searchForms.map((item, index) => {
|
|
113
|
+
var _item$props;
|
|
114
|
+
const itemProps = item.props || {};
|
|
115
|
+
let display = "block";
|
|
116
|
+
if (itemProps.valueFormat) {
|
|
117
|
+
this.dateFormat[item.name] = itemProps.valueFormat;
|
|
159
118
|
}
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
var searchDisabled = props.searchDisabled === true ? true : false;
|
|
198
|
-
delete props.searchDisabled;
|
|
199
|
-
|
|
200
|
-
if (!item.type || item.type == "Input") {
|
|
201
|
-
props.allowChars = true;
|
|
202
|
-
} else {
|
|
203
|
-
delete props.allowChars;
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
var defaultItem = {
|
|
207
|
-
label: item.label,
|
|
208
|
-
name: item.name,
|
|
209
|
-
allowChars: allowChars,
|
|
210
|
-
rules: item.rules,
|
|
211
|
-
componentName: item.type ? item.type : "Input"
|
|
212
|
-
};
|
|
213
|
-
|
|
214
|
-
if (item.labelCol) {
|
|
215
|
-
defaultItem = _objectSpread(_objectSpread({}, defaultItem), {}, {
|
|
216
|
-
labelCol: item.labelCol
|
|
217
|
-
});
|
|
218
|
-
delete item.labelCol;
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
if (item.wrapperCol) {
|
|
222
|
-
defaultItem = _objectSpread(_objectSpread({}, defaultItem), {}, {
|
|
223
|
-
wrapperCol: item.wrapperCol
|
|
224
|
-
});
|
|
225
|
-
delete item.wrapperCol;
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
var placeholder = item.type == "Select" ? "\u8BF7\u9009\u62E9".concat(item.label) : "\u8BF7\u8F93\u5165".concat(item.label);
|
|
229
|
-
|
|
230
|
-
if (item.type == "RangePicker") {
|
|
231
|
-
placeholder = ["开始时间", "结束时间"];
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
return /*#__PURE__*/React.createElement(Col, {
|
|
235
|
-
md: {
|
|
236
|
-
span: 12
|
|
237
|
-
},
|
|
238
|
-
sm: {
|
|
239
|
-
span: 24
|
|
240
|
-
},
|
|
241
|
-
lg: {
|
|
242
|
-
span: 6
|
|
243
|
-
},
|
|
244
|
-
key: index,
|
|
245
|
-
style: {
|
|
246
|
-
paddingRight: 0,
|
|
247
|
-
display: display
|
|
248
|
-
}
|
|
249
|
-
}, /*#__PURE__*/React.createElement(Form.Item, defaultItem, getNode(item.type, _objectSpread(_objectSpread({
|
|
250
|
-
placeholder: placeholder,
|
|
251
|
-
style: {
|
|
252
|
-
width: "100%"
|
|
253
|
-
}
|
|
254
|
-
}, props), {}, {
|
|
255
|
-
disabled: searchDisabled
|
|
256
|
-
}))));
|
|
257
|
-
}), /*#__PURE__*/React.createElement(Col, {
|
|
119
|
+
if (index > headerCount && !this.state.expand) {
|
|
120
|
+
display = "none";
|
|
121
|
+
//return
|
|
122
|
+
}
|
|
123
|
+
let allowChars = (item === null || item === void 0 || (_item$props = item.props) === null || _item$props === void 0 ? void 0 : _item$props.allowChars) || false;
|
|
124
|
+
let props = _objectSpread({}, itemProps);
|
|
125
|
+
let searchDisabled = props.searchDisabled === true ? true : false;
|
|
126
|
+
delete props.searchDisabled;
|
|
127
|
+
if (!item.type || item.type == "Input") {
|
|
128
|
+
props.allowChars = true;
|
|
129
|
+
} else {
|
|
130
|
+
delete props.allowChars;
|
|
131
|
+
}
|
|
132
|
+
let defaultItem = {
|
|
133
|
+
label: item.label,
|
|
134
|
+
name: item.name,
|
|
135
|
+
allowChars: allowChars,
|
|
136
|
+
rules: item.rules,
|
|
137
|
+
componentName: item.type ? item.type : "Input"
|
|
138
|
+
};
|
|
139
|
+
if (item.labelCol) {
|
|
140
|
+
defaultItem = _objectSpread(_objectSpread({}, defaultItem), {}, {
|
|
141
|
+
labelCol: item.labelCol
|
|
142
|
+
});
|
|
143
|
+
delete item.labelCol;
|
|
144
|
+
}
|
|
145
|
+
if (item.wrapperCol) {
|
|
146
|
+
defaultItem = _objectSpread(_objectSpread({}, defaultItem), {}, {
|
|
147
|
+
wrapperCol: item.wrapperCol
|
|
148
|
+
});
|
|
149
|
+
delete item.wrapperCol;
|
|
150
|
+
}
|
|
151
|
+
let placeholder = item.type == "Select" ? "\u8BF7\u9009\u62E9".concat(item.label) : "\u8BF7\u8F93\u5165".concat(item.label);
|
|
152
|
+
if (item.type == "RangePicker") {
|
|
153
|
+
placeholder = ["开始时间", "结束时间"];
|
|
154
|
+
}
|
|
155
|
+
return /*#__PURE__*/React.createElement(Col, {
|
|
258
156
|
md: {
|
|
259
157
|
span: 12
|
|
260
158
|
},
|
|
@@ -262,46 +160,72 @@ var HeaderSearch = /*#__PURE__*/function (_PureComponent) {
|
|
|
262
160
|
span: 24
|
|
263
161
|
},
|
|
264
162
|
lg: {
|
|
265
|
-
span:
|
|
266
|
-
},
|
|
267
|
-
style: {
|
|
268
|
-
paddingRight: 0
|
|
163
|
+
span: 6
|
|
269
164
|
},
|
|
270
|
-
|
|
271
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
272
|
-
className: cls(getLess(styles, "search-buttons"), _defineProperty({}, getLess(styles, "search-buttons-flex"), searchForms.length > 1)),
|
|
165
|
+
key: index,
|
|
273
166
|
style: {
|
|
274
|
-
|
|
167
|
+
paddingRight: 0,
|
|
168
|
+
display: display
|
|
275
169
|
}
|
|
276
|
-
}, /*#__PURE__*/React.createElement(
|
|
277
|
-
|
|
278
|
-
}, /*#__PURE__*/React.createElement(Button, {
|
|
279
|
-
type: "primary" // onClick={this.onSearch.bind(this)}
|
|
280
|
-
,
|
|
281
|
-
icon: /*#__PURE__*/React.createElement(SearchOutlined, null),
|
|
170
|
+
}, /*#__PURE__*/React.createElement(Form.Item, defaultItem, getNode(item.type, _objectSpread(_objectSpread({
|
|
171
|
+
placeholder: placeholder,
|
|
282
172
|
style: {
|
|
283
|
-
|
|
284
|
-
},
|
|
285
|
-
htmlType: "submit"
|
|
286
|
-
}, "\u67E5\u8BE2"), searchForms.length > 1 && /*#__PURE__*/React.createElement(Button // type={"primary"}
|
|
287
|
-
, {
|
|
288
|
-
onClick: this.resetSearch.bind(this),
|
|
289
|
-
icon: /*#__PURE__*/React.createElement(ReloadOutlined, null)
|
|
290
|
-
}, "\u91CD\u7F6E")), searchForms.length > 3 && /*#__PURE__*/React.createElement("div", {
|
|
291
|
-
className: getLess(styles, "expand_style"),
|
|
292
|
-
onClick: function onClick() {
|
|
293
|
-
var expand = _this2.state.expand;
|
|
294
|
-
|
|
295
|
-
_this2.setState({
|
|
296
|
-
expand: !expand
|
|
297
|
-
});
|
|
173
|
+
width: "100%"
|
|
298
174
|
}
|
|
299
|
-
},
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
175
|
+
}, props), {}, {
|
|
176
|
+
disabled: searchDisabled
|
|
177
|
+
}))));
|
|
178
|
+
}), /*#__PURE__*/React.createElement(Col, {
|
|
179
|
+
md: {
|
|
180
|
+
span: 12
|
|
181
|
+
},
|
|
182
|
+
sm: {
|
|
183
|
+
span: 24
|
|
184
|
+
},
|
|
185
|
+
lg: {
|
|
186
|
+
span: toolButtonPosition == "right" ? 12 : 6
|
|
187
|
+
},
|
|
188
|
+
style: {
|
|
189
|
+
paddingRight: 0
|
|
190
|
+
},
|
|
191
|
+
offset: (this.state.expand || searchForms.length < 4) && searchForms.length > 1 ? colSpan : 0
|
|
192
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
193
|
+
className: cls(getLess(styles, "search-buttons"), {
|
|
194
|
+
[getLess(styles, "search-buttons-flex")]: searchForms.length > 1
|
|
195
|
+
}),
|
|
196
|
+
style: {
|
|
197
|
+
marginTop: 0
|
|
198
|
+
}
|
|
199
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
200
|
+
className: cls({
|
|
201
|
+
[getLess(styles, "button-reverse")]: this.props.buttonRevers == true
|
|
202
|
+
})
|
|
203
|
+
}, /*#__PURE__*/React.createElement(Button, {
|
|
204
|
+
type: "primary"
|
|
205
|
+
// onClick={this.onSearch.bind(this)}
|
|
206
|
+
,
|
|
207
|
+
icon: /*#__PURE__*/React.createElement(SearchOutlined, null),
|
|
208
|
+
style: {
|
|
209
|
+
marginLeft: 0
|
|
210
|
+
},
|
|
211
|
+
htmlType: "submit"
|
|
212
|
+
}, "\u67E5\u8BE2"), searchForms.length > 1 && /*#__PURE__*/React.createElement(Button
|
|
213
|
+
// type={"primary"}
|
|
214
|
+
, {
|
|
215
|
+
onClick: this.resetSearch.bind(this),
|
|
216
|
+
icon: /*#__PURE__*/React.createElement(ReloadOutlined, null)
|
|
217
|
+
}, "\u91CD\u7F6E")), searchForms.length > 3 && /*#__PURE__*/React.createElement("div", {
|
|
218
|
+
className: getLess(styles, "expand_style"),
|
|
219
|
+
onClick: () => {
|
|
220
|
+
const {
|
|
221
|
+
expand
|
|
222
|
+
} = this.state;
|
|
223
|
+
this.setState({
|
|
224
|
+
expand: !expand
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
}, this.state.expand ? "收起" : "展开", this.state.expand ? /*#__PURE__*/React.createElement(UpOutlined, null) : /*#__PURE__*/React.createElement(DownOutlined, null))))))));
|
|
228
|
+
}
|
|
229
|
+
}
|
|
306
230
|
export default HeaderSearch;
|
|
307
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3BhZ2UvSGVhZGVyU2VhcmNoL2luZGV4LnRzeCJdLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJGb3JtIiwiQnV0dG9uIiwiY2xzIiwic3R5bGVzIiwiQ29sIiwiUm93IiwibW9tZW50IiwiaXNFbXB0eU9iaiIsIkRvd25PdXRsaW5lZCIsIlVwT3V0bGluZWQiLCJSZWxvYWRPdXRsaW5lZCIsIlNlYXJjaE91dGxpbmVkIiwiZ2V0TGVzcyIsImdldE5vZGUiLCJIZWFkZXJTZWFyY2giLCJjcmVhdGVSZWYiLCJleHBhbmQiLCJwYXJhbXMiLCJjYWxsQmFjayIsInNlYXJjaFJlZiIsImN1cnJlbnQiLCJzZXRGaWVsZHNWYWx1ZSIsImZyb21WYWx1ZSIsImZvcm1hdFZhbHVlIiwiZ2V0RmllbGRzVmFsdWUiLCJkYXRlRm9ybWF0Iiwia2V5Iiwib2xkZGF0YSIsIkFycmF5IiwiaXNBcnJheSIsImxlbmd0aCIsImZvcm1hdCIsIm9uU2VhcmNoIiwicHJvcHMiLCJyZXNldEZpZWxkcyIsIm9uUmVzZXQiLCJzZWFyY2hGb3JtcyIsInRvb2xCdXR0b25Qb3NpdGlvbiIsInNlYXJjaEZvcm1Qcm9wcyIsImNvbFNwYW4iLCJoZWFkZXJDb3VudCIsImhlYWRlclJvdXQiLCJjbGFzc05hbWUiLCJ3aWR0aCIsImRpc3BsYXkiLCJmbGV4V3JhcCIsImJpbmQiLCJtYXAiLCJpdGVtIiwiaW5kZXgiLCJpdGVtUHJvcHMiLCJ2YWx1ZUZvcm1hdCIsIm5hbWUiLCJzdGF0ZSIsImFsbG93Q2hhcnMiLCJzZWFyY2hEaXNhYmxlZCIsInR5cGUiLCJkZWZhdWx0SXRlbSIsImxhYmVsIiwicnVsZXMiLCJjb21wb25lbnROYW1lIiwibGFiZWxDb2wiLCJ3cmFwcGVyQ29sIiwicGxhY2Vob2xkZXIiLCJzcGFuIiwicGFkZGluZ1JpZ2h0Iiwic3R5bGUiLCJkaXNhYmxlZCIsIm1hcmdpblRvcCIsImJ1dHRvblJldmVycyIsIm1hcmdp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QVQsQ0FEcEI7QUFFRSxRQUFBLE9BQU8sRUFBRSxtQkFBTTtBQUNiLGNBQVFhLE1BQVIsR0FBbUIsTUFBSSxDQUFDcUMsS0FBeEIsQ0FBUXJDLE1BQVI7O0FBQ0EsVUFBQSxNQUFJLENBQUN3RCxRQUFMLENBQWM7QUFDWnhELFlBQUFBLE1BQU0sRUFBRSxDQUFDQTtBQURHLFdBQWQ7QUFHRDtBQVBILFNBU0csS0FBS3FDLEtBQUwsQ0FBV3JDLE1BQVgsR0FBb0IsSUFBcEIsR0FBMkIsSUFUOUIsRUFVRyxLQUFLcUMsS0FBTCxDQUFXckMsTUFBWCxnQkFBb0Isb0JBQUMsVUFBRCxPQUFwQixnQkFBcUMsb0JBQUMsWUFBRCxPQVZ4QyxDQWpDSixDQVpGLENBdEVGLENBREYsQ0FQRixDQURGLENBREY7QUFpSkQ7Ozs7RUFwTndCakIsYTs7QUFzTjNCLGVBQWVlLFlBQWYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgUHVyZUNvbXBvbmVudCwgUmVhY3ROb2RlIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBGb3JtIGZyb20gXCIuLi8uLi9iYXNlL2Zvcm1cIjtcclxuaW1wb3J0IEJ1dHRvbiBmcm9tIFwiLi4vLi4vYmFzZS9idXR0b25cIjtcclxuaW1wb3J0IGNscyBmcm9tIFwiY2xhc3NuYW1lc1wiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2luZGV4Lmxlc3NcIjtcclxuaW1wb3J0IENvbCBmcm9tIFwiLi4vLi4vYmFzZS9ncmlkL0NvbFwiO1xyXG5pbXBvcnQgUm93IGZyb20gXCIuLi8uLi9iYXNlL2dyaWQvUm93XCI7XHJcbmltcG9ydCBtb21lbnQgZnJvbSBcIm1vbWVudFwiO1xyXG5pbXBvcnQgeyBpc0VtcHR5T2JqIH0gZnJvbSBcIkBiai1uc2MvZnVuY3Rpb25zXCI7XHJcbmltcG9ydCB7XHJcbiAgRG93bk91dGxpbmVkLFxyXG4gIFVwT3V0bGluZWQsXHJcbiAgUmVsb2FkT3V0bGluZWQsXHJcbiAgU2VhcmNoT3V0bGluZWQsXHJcbn0gZnJvbSBcIkBhbnQtZGVzaWduL2ljb25zXCI7XHJcbmltcG9ydCB7IGdldExlc3MsIGdldE5vZGUgfSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcclxuXHJcbmludGVyZmFjZSBTZWFyY2hJdGVtUHJvcHMge1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGxhYmVsQ29sPzogYW55O1xyXG4gIHR5cGU/OiBzdHJpbmc7XHJcbiAgd3JhcHBlckNvbD86IGFueTtcclxuICBwcm9wcz86IGFueTtcclxufVxyXG5pbnRlcmZhY2UgU2VhcmNoUHJvcHMge1xyXG4gIHNlYXJjaEZvcm1zOiBBcnJheTxTZWFyY2hJdGVtUHJvcHM+OyAvL+aYr+WQpuaYvuekuuaTjeS9nOWIl1xyXG4gIHRvb2xCdXR0b25Qb3NpdGlvbj86IHN0cmluZztcclxuICBvblNlYXJjaD86IGFueTtcclxuICBvblJlc2V0PzogYW55O1xyXG4gIHNlYXJjaEZvcm1Qcm9wcz86IG9iamVjdDtcclxuICBidXR0b25SZXZlcnM/OiBib29sZWFuO1xyXG4gIGNsYXNzTmFtZT86IGFueTtcclxufVxyXG5cclxuY2xhc3MgSGVhZGVyU2VhcmNoIGV4dGVuZHMgUHVyZUNvbXBvbmVudDxTZWFyY2hQcm9wcywgYW55PiB7XHJcbiAgc2VhcmNoUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICBkYXRlRm9ybWF0ID0ge30gYXMgYW55O1xyXG4gIHN0YXRlID0geyBleHBhbmQ6IGZhbHNlIH07XHJcbiAgc2V0U2VhcmNoUGFyYW1zKHBhcmFtcywgY2FsbEJhY2spIHtcclxuICAgIHRoaXMuc2VhcmNoUmVmLmN1cnJlbnQ/LnNldEZpZWxkc1ZhbHVlKHBhcmFtcyk7XHJcbiAgfVxyXG4gIGdldFNlYXJjaFZhbHVlcygpIHtcclxuICAgIGNvbnN0IGZyb21WYWx1ZSA9IHRoaXMuZm9ybWF0VmFsdWUoKTtcclxuICAgIHJldHVybiBmcm9tVmFsdWU7XHJcbiAgfVxyXG4gIGZvcm1hdFZhbHVlKCkge1xyXG4gICAgY29uc3QgZnJvbVZhbHVlID0gdGhpcy5zZWFyY2hSZWYuY3VycmVudD8uZ2V0RmllbGRzVmFsdWUoKTtcclxuICAgIGlmICghaXNFbXB0eU9iaih0aGlzLmRhdGVGb3JtYXQpKSB7XHJcbiAgICAgIGZvciAobGV0IGtleSBpbiB0aGlzLmRhdGVGb3JtYXQpIHtcclxuICAgICAgICBsZXQgb2xkZGF0YSA9IGZyb21WYWx1ZVtrZXldO1xyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KG9sZGRhdGEpKSB7XHJcbiAgICAgICAgICBpZiAob2xkZGF0YS5sZW5ndGggPiAwICYmIG9sZGRhdGFbMF0gJiYgb2xkZGF0YVsxXSkge1xyXG4gICAgICAgICAgICBmcm9tVmFsdWVba2V5XSA9IFtcclxuICAgICAgICAgICAgICBtb21lbnQob2xkZGF0YVswXSkuZm9ybWF0KHRoaXMuZGF0ZUZvcm1hdFtrZXldKSxcclxuICAgICAgICAgICAgICBtb21lbnQob2xkZGF0YVsxXSkuZm9ybWF0KHRoaXMuZGF0ZUZvcm1hdFtrZXldKSxcclxuICAgICAgICAgICAgXTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKG9sZGRhdGEpIHtcclxuICAgICAgICAgIGZyb21WYWx1ZVtrZXldID0gbW9tZW50KG9sZGRhdGEpLmZvcm1hdCh0aGlzLmRhdGVGb3JtYXRba2V5XSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZnJvbVZhbHVlO1xyXG4gIH1cclxuICBvblNlYXJjaCgpIHtcclxuICAgIGNvbnN0IHsgb25TZWFyY2ggfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBmcm9tVmFsdWUgPSB0aGlzLmZvcm1hdFZhbHVlKCk7XHJcbiAgICBpZiAob25TZWFyY2gpIHtcclxuICAgICAgb25TZWFyY2goZnJvbVZhbHVlKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gIH1cclxuICByZXNldEZpZWxkcygpIHtcclxuICAgIHRoaXMuc2VhcmNoUmVmLmN1cnJlbnQ/LnJlc2V0RmllbGRzKCk7XHJcbiAgfVxyXG4gIHJlc2V0U2VhcmNoKCkge1xyXG4gICAgaWYgKHRoaXMucHJvcHMub25SZXNldCkge1xyXG4gICAgICB0aGlzLnByb3BzLm9uUmVzZXQoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZWFyY2hSZWYuY3VycmVudD8ucmVzZXRGaWVsZHMoKTtcclxuICB9XHJcbiAgcmVuZGVyKCkge1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBzZWFyY2hGb3JtcyA9IFtdLFxyXG4gICAgICB0b29sQnV0dG9uUG9zaXRpb24sXHJcbiAgICAgIG9uU2VhcmNoLFxyXG4gICAgICBvblJlc2V0LFxyXG4gICAgICBzZWFyY2hGb3JtUHJvcHMgPSB7fSxcclxuICAgIH0gPSB0aGlzLnByb3BzO1xyXG5cclxuICAgIGxldCBjb2xTcGFuID0gMDtcclxuICAgIGNvbnN0IGhlYWRlckNvdW50ID0gdG9vbEJ1dHRvblBvc2l0aW9uID09IFwicmlnaHRcIiA/IDEgOiAyO1xyXG4gICAgY29uc3QgaGVhZGVyUm91dCA9IHNlYXJjaEZvcm1zLmxlbmd0aCAlIDQ7XHJcbiAgICBpZiAoaGVhZGVyUm91dCA9PSAwKSB7XHJcbiAgICAgIGNvbFNwYW4gPSAxODtcclxuICAgIH0gZWxzZSBpZiAoaGVhZGVyUm91dCA9PSAxKSB7XHJcbiAgICAgIGNvbFNwYW4gPSAxMjtcclxuICAgIH0gZWxzZSBpZiAoaGVhZGVyUm91dCA9PSAyKSB7XHJcbiAgICAgIGNvbFNwYW4gPSA2O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIChcclxuICAgICAgPFJvdyBndXR0ZXI9ezI0fSB3cmFwPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKFxyXG4gICAgICAgICAgICBnZXRMZXNzKHN0eWxlcywgXCJoZWFkZXJcIiksXHJcbiAgICAgICAgICAgIHsgW2dldExlc3Moc3R5bGVzLCBcImhlYWRlci1wYWRkaW5nXCIpXTogc2VhcmNoRm9ybXMubGVuZ3RoID4gMyB9LFxyXG4gICAgICAgICAgICB0aGlzLnByb3BzLmNsYXNzTmFtZVxyXG4gICAgICAgICAgKX1cclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xzKGdldExlc3Moc3R5bGVzLCBcImZvcm1cIikpfT5cclxuICAgICAgICAgICAgPEZvcm1cclxuICAgICAgICAgICAgICByZWY9e3RoaXMuc2VhcmNoUmVmfVxyXG4gICAgICAgICAgICAgIGxhYmVsQ29sPXt7fX1cclxuICAgICAgICAgICAgICB3cmFwcGVyQ29sPXt7fX1cclxuICAgICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogXCIxMDAlXCIsIGRpc3BsYXk6IFwiZmxleFwiLCBmbGV4V3JhcDogXCJ3cmFwXCIgfX1cclxuICAgICAgICAgICAgICBvbkZpbmlzaD17dGhpcy5vblNlYXJjaC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICAgIC8vIGxhYmVsQWxpZ249eydsZWZ0J31cclxuICAgICAgICAgICAgICB7Li4uc2VhcmNoRm9ybVByb3BzfVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAge3NlYXJjaEZvcm1zLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBpdGVtUHJvcHMgPSBpdGVtLnByb3BzIHx8IHt9O1xyXG4gICAgICAgICAgICAgICAgbGV0IGRpc3BsYXkgPSBcImJsb2NrXCI7XHJcbiAgICAgICAgICAgICAgICBpZiAoaXRlbVByb3BzLnZhbHVlRm9ybWF0KSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuZGF0ZUZvcm1hdFtpdGVtLm5hbWVdID0gaXRlbVByb3BzLnZhbHVlRm9ybWF0O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKGluZGV4ID4gaGVhZGVyQ291bnQgJiYgIXRoaXMuc3RhdGUuZXhwYW5kKSB7XHJcbiAgICAgICAgICAgICAgICAgIGRpc3BsYXkgPSBcIm5vbmVcIjtcclxuICAgICAgICAgICAgICAgICAgLy9yZXR1cm5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGxldCBhbGxvd0NoYXJzID0gaXRlbT8ucHJvcHM/LmFsbG93Q2hhcnMgfHwgZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBsZXQgcHJvcHMgPSB7IC4uLml0ZW1Qcm9wcyB9O1xyXG4gICAgICAgICAgICAgICAgbGV0IHNlYXJjaERpc2FibGVkID1cclxuICAgICAgICAgICAgICAgICAgcHJvcHMuc2VhcmNoRGlzYWJsZWQgPT09IHRydWUgPyB0cnVlIDogZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBkZWxldGUgcHJvcHMuc2VhcmNoRGlzYWJsZWQ7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWl0ZW0udHlwZSB8fCBpdGVtLnR5cGUgPT0gXCJJbnB1dFwiKSB7XHJcbiAgICAgICAgICAgICAgICAgIHByb3BzLmFsbG93Q2hhcnMgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgZGVsZXRlIHByb3BzLmFsbG93Q2hhcnM7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBsZXQgZGVmYXVsdEl0ZW0gPSB7XHJcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiBpdGVtLmxhYmVsLFxyXG4gICAgICAgICAgICAgICAgICBuYW1lOiBpdGVtLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgIGFsbG93Q2hhcnM6IGFsbG93Q2hhcnMsXHJcbiAgICAgICAgICAgICAgICAgIHJ1bGVzOiBpdGVtLnJ1bGVzLFxyXG4gICAgICAgICAgICAgICAgICBjb21wb25lbnROYW1lOiBpdGVtLnR5cGUgPyBpdGVtLnR5cGUgOiBcIklucHV0XCIsXHJcbiAgICAgICAgICAgICAgICB9IGFzIGFueTtcclxuICAgICAgICAgICAgICAgIGlmIChpdGVtLmxhYmVsQ29sKSB7XHJcbiAgICAgICAgICAgICAgICAgIGRlZmF1bHRJdGVtID0geyAuLi5kZWZhdWx0SXRlbSwgbGFiZWxDb2w6IGl0ZW0ubGFiZWxDb2wgfTtcclxuICAgICAgICAgICAgICAgICAgZGVsZXRlIGl0ZW0ubGFiZWxDb2w7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoaXRlbS53cmFwcGVyQ29sKSB7XHJcbiAgICAgICAgICAgICAgICAgIGRlZmF1bHRJdGVtID0geyAuLi5kZWZhdWx0SXRlbSwgd3JhcHBlckNvbDogaXRlbS53cmFwcGVyQ29sIH07XHJcbiAgICAgICAgICAgICAgICAgIGRlbGV0ZSBpdGVtLndyYXBwZXJDb2w7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBsZXQgcGxhY2Vob2xkZXI6IGFueSA9XHJcbiAgICAgICAgICAgICAgICAgIGl0ZW0udHlwZSA9PSBcIlNlbGVjdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgPyBg6K+36YCJ5oupJHtpdGVtLmxhYmVsfWBcclxuICAgICAgICAgICAgICAgICAgICA6IGDor7fovpPlhaUke2l0ZW0ubGFiZWx9YDtcclxuICAgICAgICAgICAgICAgIGlmIChpdGVtLnR5cGUgPT0gXCJSYW5nZVBpY2tlclwiKSB7XHJcbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyID0gW1wi5byA5aeL5pe26Ze0XCIsIFwi57uT5p2f5pe26Ze0XCJdO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgICAgPENvbFxyXG4gICAgICAgICAgICAgICAgICAgIG1kPXt7IHNwYW46IDEyIH19XHJcbiAgICAgICAgICAgICAgICAgICAgc209e3sgc3BhbjogMjQgfX1cclxuICAgICAgICAgICAgICAgICAgICBsZz17eyBzcGFuOiA2IH19XHJcbiAgICAgICAgICAgICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBwYWRkaW5nUmlnaHQ6IDAsIGRpc3BsYXk6IGRpc3BsYXkgfX1cclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxGb3JtLkl0ZW0gey4uLmRlZmF1bHRJdGVtfT5cclxuICAgICAgICAgICAgICAgICAgICAgIHtnZXROb2RlKGl0ZW0udHlwZSwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogcGxhY2Vob2xkZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7IHdpZHRoOiBcIjEwMCVcIiB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5wcm9wcyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6IHNlYXJjaERpc2FibGVkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XHJcbiAgICAgICAgICAgICAgICAgIDwvQ29sPlxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAgICA8Q29sXHJcbiAgICAgICAgICAgICAgICBtZD17eyBzcGFuOiAxMiB9fVxyXG4gICAgICAgICAgICAgICAgc209e3sgc3BhbjogMjQgfX1cclxuICAgICAgICAgICAgICAgIGxnPXt7IHNwYW46IHRvb2xCdXR0b25Qb3NpdGlvbiA9PSBcInJpZ2h0XCIgPyAxMiA6IDYgfX1cclxuICAgICAgICAgICAgICAgIHN0eWxlPXt7IHBhZGRpbmdSaWdodDogMCB9fVxyXG4gICAgICAgICAgICAgICAgb2Zmc2V0PXtcclxuICAgICAgICAgICAgICAgICAgKHRoaXMuc3RhdGUuZXhwYW5kIHx8IHNlYXJjaEZvcm1zLmxlbmd0aCA8IDQpICYmXHJcbiAgICAgICAgICAgICAgICAgIHNlYXJjaEZvcm1zLmxlbmd0aCA+IDFcclxuICAgICAgICAgICAgICAgICAgICA/IGNvbFNwYW5cclxuICAgICAgICAgICAgICAgICAgICA6IDBcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKGdldExlc3Moc3R5bGVzLCBcInNlYXJjaC1idXR0b25zXCIpLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgW2dldExlc3Moc3R5bGVzLCBcInNlYXJjaC1idXR0b25zLWZsZXhcIildOlxyXG4gICAgICAgICAgICAgICAgICAgICAgc2VhcmNoRm9ybXMubGVuZ3RoID4gMSxcclxuICAgICAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IG1hcmdpblRvcDogMCB9fVxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHMoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgW2dldExlc3Moc3R5bGVzLCBcImJ1dHRvbi1yZXZlcnNlXCIpXTpcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5idXR0b25SZXZlcnMgPT0gdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9e1wicHJpbWFyeVwifVxyXG4gICAgICAgICAgICAgICAgICAgICAgLy8gb25DbGljaz17dGhpcy5vblNlYXJjaC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgaWNvbj17PFNlYXJjaE91dGxpbmVkIC8+fVxyXG4gICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgbWFyZ2luTGVmdDogMCB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgaHRtbFR5cGU9XCJzdWJtaXRcIlxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIOafpeivolxyXG4gICAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIHtzZWFyY2hGb3Jtcy5sZW5ndGggPiAxICYmIChcclxuICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdHlwZT17XCJwcmltYXJ5XCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMucmVzZXRTZWFyY2guYmluZCh0aGlzKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj17PFJlbG9hZE91dGxpbmVkIC8+fVxyXG4gICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICDph43nva5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICB7c2VhcmNoRm9ybXMubGVuZ3RoID4gMyAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJleHBhbmRfc3R5bGVcIil9XHJcbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgZXhwYW5kIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBleHBhbmQ6ICFleHBhbmQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7dGhpcy5zdGF0ZS5leHBhbmQgPyBcIuaUtui1t1wiIDogXCLlsZXlvIBcIn1cclxuICAgICAgICAgICAgICAgICAgICAgIHt0aGlzLnN0YXRlLmV4cGFuZCA/IDxVcE91dGxpbmVkIC8+IDogPERvd25PdXRsaW5lZCAvPn1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvQ29sPlxyXG4gICAgICAgICAgICA8L0Zvcm0+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9Sb3c+XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG5leHBvcnQgZGVmYXVsdCBIZWFkZXJTZWFyY2g7XHJcbiJdfQ==
|
|
231
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJGb3JtIiwiQnV0dG9uIiwiY2xzIiwic3R5bGVzIiwiQ29sIiwiUm93IiwibW9tZW50IiwiaXNFbXB0eU9iaiIsIkRvd25PdXRsaW5lZCIsIlVwT3V0bGluZWQiLCJSZWxvYWRPdXRsaW5lZCIsIlNlYXJjaE91dGxpbmVkIiwiZ2V0TGVzcyIsImdldE5vZGUiLCJIZWFkZXJTZWFyY2giLCJjb25zdHJ1Y3RvciIsImFyZ3VtZW50cyIsIl9kZWZpbmVQcm9wZXJ0eSIsImNyZWF0ZVJlZiIsImV4cGFuZCIsInNldFNlYXJjaFBhcmFtcyIsInBhcmFtcyIsImNhbGxCYWNrIiwiX3RoaXMkc2VhcmNoUmVmJGN1cnJlIiwic2VhcmNoUmVmIiwiY3VycmVudCIsInNldEZpZWxkc1ZhbHVlIiwiZ2V0U2VhcmNoVmFsdWVzIiwiZnJvbVZhbHVlIiwiZm9ybWF0VmFsdWUiLCJfdGhpcyRzZWFyY2hSZWYkY3VycmUyIiwiZ2V0RmllbGRzVmFsdWUiLCJkYXRlRm9ybWF0Iiwia2V5Iiwib2xkZGF0YSIsIkFycmF5IiwiaXNBcnJheSIsImxlbmd0aCIsImZvcm1hdCIsIm9uU2VhcmNoIiwicHJvcHMiLCJyZXNldEZpZWxkcyIsIl90aGlzJHNlYXJjaFJlZiRjdXJyZTMiLCJyZXNldFNlYXJjaCIsIl90aGlzJHNlYXJjaFJlZiRjdXJyZTQiLCJvblJlc2V0IiwicmVuZGVyIiwic2VhcmNoRm9ybXMiLCJ0b29sQnV0dG9uUG9zaXRpb24iLCJzZWFyY2hGb3JtUHJvcHMiLCJjb2xTcGFuIiwiaGVhZGVyQ291bnQiLCJoZWFkZXJSb3V0IiwiY3JlYXRlRWxlbWVudCIsImd1dHRlciIsIndyYXAiLCJjbGFzc05hbWUiLCJfZXh0ZW5kcyIsInJlZiIsImxhYmVsQ29sIiwid3JhcHBlckNvbCIsInN0eWxlIiwid2lkdGgiLCJkaXNwbGF5IiwiZmxleFdyYXAiLCJvbkZpbmlzaCIsImJpbmQiLCJtYXAiLCJpdGVtIiwiaW5kZXgiLCJfaXRlbSRwcm9wcyIsIml0ZW1Qcm9wcyIsInZhbHVlRm9ybWF0IiwibmFtZSIsInN0YXRlIiwiYWxsb3dDaGFycyIsIl9vYmplY3RTcHJlYWQiLCJzZWFyY2hEaXNhYmxlZCIsInR5cGUiLCJkZWZhdWx0SXRlbSIsImxhYmVsIiwicnVsZXMiLCJjb21wb25lbnROYW1lIiwicGxhY2Vob2xkZXIiLCJjb25jYXQiLCJtZCIsInNwYW4iLCJzbSIsImxnIiwicGFkZGluZ1JpZ2h0IiwiSXRlbSIsImRpc2FibGVkIiwib2Zmc2V0IiwibWFyZ2luVG9wIiwiYnV0dG9uUmV2ZXJzIiwiaWNvbiIsIm1hcmdpbkxlZnQiLCJodG1sVHlwZSIsIm9uQ2xpY2siLCJzZXRTdGF0ZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3BhZ2UvSGVhZGVyU2VhcmNoL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgUHVyZUNvbXBvbmVudCwgUmVhY3ROb2RlIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBGb3JtIGZyb20gXCIuLi8uLi9iYXNlL2Zvcm1cIjtcclxuaW1wb3J0IEJ1dHRvbiBmcm9tIFwiLi4vLi4vYmFzZS9idXR0b25cIjtcclxuaW1wb3J0IGNscyBmcm9tIFwiY2xhc3NuYW1lc1wiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2luZGV4Lmxlc3NcIjtcclxuaW1wb3J0IENvbCBmcm9tIFwiLi4vLi4vYmFzZS9ncmlkL0NvbFwiO1xyXG5pbXBvcnQgUm93IGZyb20gXCIuLi8uLi9iYXNlL2dyaWQvUm93XCI7XHJcbmltcG9ydCBtb21lbnQgZnJvbSBcIm1vbWVudFwiO1xyXG5pbXBvcnQgeyBpc0VtcHR5T2JqIH0gZnJvbSBcIkBiai1uc2MvZnVuY3Rpb25zXCI7XHJcbmltcG9ydCB7XHJcbiAgRG93bk91dGxpbmVkLFxyXG4gIFVwT3V0bGluZWQsXHJcbiAgUmVsb2FkT3V0bGluZWQsXHJcbiAgU2VhcmNoT3V0bGluZWQsXHJcbn0gZnJvbSBcIkBhbnQtZGVzaWduL2ljb25zXCI7XHJcbmltcG9ydCB7IGdldExlc3MsIGdldE5vZGUgfSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcclxuXHJcbmludGVyZmFjZSBTZWFyY2hJdGVtUHJvcHMge1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGxhYmVsQ29sPzogYW55O1xyXG4gIHR5cGU/OiBzdHJpbmc7XHJcbiAgd3JhcHBlckNvbD86IGFueTtcclxuICBwcm9wcz86IGFueTtcclxufVxyXG5pbnRlcmZhY2UgU2VhcmNoUHJvcHMge1xyXG4gIHNlYXJjaEZvcm1zOiBBcnJheTxTZWFyY2hJdGVtUHJvcHM+OyAvL+aYr+WQpuaYvuekuuaTjeS9nOWIl1xyXG4gIHRvb2xCdXR0b25Qb3NpdGlvbj86IHN0cmluZztcclxuICBvblNlYXJjaD86IGFueTtcclxuICBvblJlc2V0PzogYW55O1xyXG4gIHNlYXJjaEZvcm1Qcm9wcz86IG9iamVjdDtcclxuICBidXR0b25SZXZlcnM/OiBib29sZWFuO1xyXG4gIGNsYXNzTmFtZT86IGFueTtcclxufVxyXG5cclxuY2xhc3MgSGVhZGVyU2VhcmNoIGV4dGVuZHMgUHVyZUNvbXBvbmVudDxTZWFyY2hQcm9wcywgYW55PiB7XHJcbiAgc2VhcmNoUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICBkYXRlRm9ybWF0ID0ge30gYXMgYW55O1xyXG4gIHN0YXRlID0geyBleHBhbmQ6IGZhbHNlIH07XHJcbiAgc2V0U2VhcmNoUGFyYW1zKHBhcmFtcywgY2FsbEJhY2spIHtcclxuICAgIHRoaXMuc2VhcmNoUmVmLmN1cnJlbnQ/LnNldEZpZWxkc1ZhbHVlKHBhcmFtcyk7XHJcbiAgfVxyXG4gIGdldFNlYXJjaFZhbHVlcygpIHtcclxuICAgIGNvbnN0IGZyb21WYWx1ZSA9IHRoaXMuZm9ybWF0VmFsdWUoKTtcclxuICAgIHJldHVybiBmcm9tVmFsdWU7XHJcbiAgfVxyXG4gIGZvcm1hdFZhbHVlKCkge1xyXG4gICAgY29uc3QgZnJvbVZhbHVlID0gdGhpcy5zZWFyY2hSZWYuY3VycmVudD8uZ2V0RmllbGRzVmFsdWUoKTtcclxuICAgIGlmICghaXNFbXB0eU9iaih0aGlzLmRhdGVGb3JtYXQpKSB7XHJcbiAgICAgIGZvciAobGV0IGtleSBpbiB0aGlzLmRhdGVGb3JtYXQpIHtcclxuICAgICAgICBsZXQgb2xkZGF0YSA9IGZyb21WYWx1ZVtrZXldO1xyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KG9sZGRhdGEpKSB7XHJcbiAgICAgICAgICBpZiAob2xkZGF0YS5sZW5ndGggPiAwICYmIG9sZGRhdGFbMF0gJiYgb2xkZGF0YVsxXSkge1xyXG4gICAgICAgICAgICBmcm9tVmFsdWVba2V5XSA9IFtcclxuICAgICAgICAgICAgICBtb21lbnQob2xkZGF0YVswXSkuZm9ybWF0KHRoaXMuZGF0ZUZvcm1hdFtrZXldKSxcclxuICAgICAgICAgICAgICBtb21lbnQob2xkZGF0YVsxXSkuZm9ybWF0KHRoaXMuZGF0ZUZvcm1hdFtrZXldKSxcclxuICAgICAgICAgICAgXTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKG9sZGRhdGEpIHtcclxuICAgICAgICAgIGZyb21WYWx1ZVtrZXldID0gbW9tZW50KG9sZGRhdGEpLmZvcm1hdCh0aGlzLmRhdGVGb3JtYXRba2V5XSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZnJvbVZhbHVlO1xyXG4gIH1cclxuICBvblNlYXJjaCgpIHtcclxuICAgIGNvbnN0IHsgb25TZWFyY2ggfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBmcm9tVmFsdWUgPSB0aGlzLmZvcm1hdFZhbHVlKCk7XHJcbiAgICBpZiAob25TZWFyY2gpIHtcclxuICAgICAgb25TZWFyY2goZnJvbVZhbHVlKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gIH1cclxuICByZXNldEZpZWxkcygpIHtcclxuICAgIHRoaXMuc2VhcmNoUmVmLmN1cnJlbnQ/LnJlc2V0RmllbGRzKCk7XHJcbiAgfVxyXG4gIHJlc2V0U2VhcmNoKCkge1xyXG4gICAgaWYgKHRoaXMucHJvcHMub25SZXNldCkge1xyXG4gICAgICB0aGlzLnByb3BzLm9uUmVzZXQoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZWFyY2hSZWYuY3VycmVudD8ucmVzZXRGaWVsZHMoKTtcclxuICB9XHJcbiAgcmVuZGVyKCkge1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBzZWFyY2hGb3JtcyA9IFtdLFxyXG4gICAgICB0b29sQnV0dG9uUG9zaXRpb24sXHJcbiAgICAgIG9uU2VhcmNoLFxyXG4gICAgICBvblJlc2V0LFxyXG4gICAgICBzZWFyY2hGb3JtUHJvcHMgPSB7fSxcclxuICAgIH0gPSB0aGlzLnByb3BzO1xyXG5cclxuICAgIGxldCBjb2xTcGFuID0gMDtcclxuICAgIGNvbnN0IGhlYWRlckNvdW50ID0gdG9vbEJ1dHRvblBvc2l0aW9uID09IFwicmlnaHRcIiA/IDEgOiAyO1xyXG4gICAgY29uc3QgaGVhZGVyUm91dCA9IHNlYXJjaEZvcm1zLmxlbmd0aCAlIDQ7XHJcbiAgICBpZiAoaGVhZGVyUm91dCA9PSAwKSB7XHJcbiAgICAgIGNvbFNwYW4gPSAxODtcclxuICAgIH0gZWxzZSBpZiAoaGVhZGVyUm91dCA9PSAxKSB7XHJcbiAgICAgIGNvbFNwYW4gPSAxMjtcclxuICAgIH0gZWxzZSBpZiAoaGVhZGVyUm91dCA9PSAyKSB7XHJcbiAgICAgIGNvbFNwYW4gPSA2O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIChcclxuICAgICAgPFJvdyBndXR0ZXI9ezI0fSB3cmFwPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKFxyXG4gICAgICAgICAgICBnZXRMZXNzKHN0eWxlcywgXCJoZWFkZXJcIiksXHJcbiAgICAgICAgICAgIHsgW2dldExlc3Moc3R5bGVzLCBcImhlYWRlci1wYWRkaW5nXCIpXTogc2VhcmNoRm9ybXMubGVuZ3RoID4gMyB9LFxyXG4gICAgICAgICAgICB0aGlzLnByb3BzLmNsYXNzTmFtZVxyXG4gICAgICAgICAgKX1cclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xzKGdldExlc3Moc3R5bGVzLCBcImZvcm1cIikpfT5cclxuICAgICAgICAgICAgPEZvcm1cclxuICAgICAgICAgICAgICByZWY9e3RoaXMuc2VhcmNoUmVmfVxyXG4gICAgICAgICAgICAgIGxhYmVsQ29sPXt7fX1cclxuICAgICAgICAgICAgICB3cmFwcGVyQ29sPXt7fX1cclxuICAgICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogXCIxMDAlXCIsIGRpc3BsYXk6IFwiZmxleFwiLCBmbGV4V3JhcDogXCJ3cmFwXCIgfX1cclxuICAgICAgICAgICAgICBvbkZpbmlzaD17dGhpcy5vblNlYXJjaC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICAgIC8vIGxhYmVsQWxpZ249eydsZWZ0J31cclxuICAgICAgICAgICAgICB7Li4uc2VhcmNoRm9ybVByb3BzfVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAge3NlYXJjaEZvcm1zLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBpdGVtUHJvcHMgPSBpdGVtLnByb3BzIHx8IHt9O1xyXG4gICAgICAgICAgICAgICAgbGV0IGRpc3BsYXkgPSBcImJsb2NrXCI7XHJcbiAgICAgICAgICAgICAgICBpZiAoaXRlbVByb3BzLnZhbHVlRm9ybWF0KSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuZGF0ZUZvcm1hdFtpdGVtLm5hbWVdID0gaXRlbVByb3BzLnZhbHVlRm9ybWF0O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKGluZGV4ID4gaGVhZGVyQ291bnQgJiYgIXRoaXMuc3RhdGUuZXhwYW5kKSB7XHJcbiAgICAgICAgICAgICAgICAgIGRpc3BsYXkgPSBcIm5vbmVcIjtcclxuICAgICAgICAgICAgICAgICAgLy9yZXR1cm5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGxldCBhbGxvd0NoYXJzID0gaXRlbT8ucHJvcHM/LmFsbG93Q2hhcnMgfHwgZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBsZXQgcHJvcHMgPSB7IC4uLml0ZW1Qcm9wcyB9O1xyXG4gICAgICAgICAgICAgICAgbGV0IHNlYXJjaERpc2FibGVkID1cclxuICAgICAgICAgICAgICAgICAgcHJvcHMuc2VhcmNoRGlzYWJsZWQgPT09IHRydWUgPyB0cnVlIDogZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBkZWxldGUgcHJvcHMuc2VhcmNoRGlzYWJsZWQ7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWl0ZW0udHlwZSB8fCBpdGVtLnR5cGUgPT0gXCJJbnB1dFwiKSB7XHJcbiAgICAgICAgICAgICAgICAgIHByb3BzLmFsbG93Q2hhcnMgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgZGVsZXRlIHByb3BzLmFsbG93Q2hhcnM7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBsZXQgZGVmYXVsdEl0ZW0gPSB7XHJcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiBpdGVtLmxhYmVsLFxyXG4gICAgICAgICAgICAgICAgICBuYW1lOiBpdGVtLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgIGFsbG93Q2hhcnM6IGFsbG93Q2hhcnMsXHJcbiAgICAgICAgICAgICAgICAgIHJ1bGVzOiBpdGVtLnJ1bGVzLFxyXG4gICAgICAgICAgICAgICAgICBjb21wb25lbnROYW1lOiBpdGVtLnR5cGUgPyBpdGVtLnR5cGUgOiBcIklucHV0XCIsXHJcbiAgICAgICAgICAgICAgICB9IGFzIGFueTtcclxuICAgICAgICAgICAgICAgIGlmIChpdGVtLmxhYmVsQ29sKSB7XHJcbiAgICAgICAgICAgICAgICAgIGRlZmF1bHRJdGVtID0geyAuLi5kZWZhdWx0SXRlbSwgbGFiZWxDb2w6IGl0ZW0ubGFiZWxDb2wgfTtcclxuICAgICAgICAgICAgICAgICAgZGVsZXRlIGl0ZW0ubGFiZWxDb2w7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoaXRlbS53cmFwcGVyQ29sKSB7XHJcbiAgICAgICAgICAgICAgICAgIGRlZmF1bHRJdGVtID0geyAuLi5kZWZhdWx0SXRlbSwgd3JhcHBlckNvbDogaXRlbS53cmFwcGVyQ29sIH07XHJcbiAgICAgICAgICAgICAgICAgIGRlbGV0ZSBpdGVtLndyYXBwZXJDb2w7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBsZXQgcGxhY2Vob2xkZXI6IGFueSA9XHJcbiAgICAgICAgICAgICAgICAgIGl0ZW0udHlwZSA9PSBcIlNlbGVjdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgPyBg6K+36YCJ5oupJHtpdGVtLmxhYmVsfWBcclxuICAgICAgICAgICAgICAgICAgICA6IGDor7fovpPlhaUke2l0ZW0ubGFiZWx9YDtcclxuICAgICAgICAgICAgICAgIGlmIChpdGVtLnR5cGUgPT0gXCJSYW5nZVBpY2tlclwiKSB7XHJcbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyID0gW1wi5byA5aeL5pe26Ze0XCIsIFwi57uT5p2f5pe26Ze0XCJdO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgICAgPENvbFxyXG4gICAgICAgICAgICAgICAgICAgIG1kPXt7IHNwYW46IDEyIH19XHJcbiAgICAgICAgICAgICAgICAgICAgc209e3sgc3BhbjogMjQgfX1cclxuICAgICAgICAgICAgICAgICAgICBsZz17eyBzcGFuOiA2IH19XHJcbiAgICAgICAgICAgICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBwYWRkaW5nUmlnaHQ6IDAsIGRpc3BsYXk6IGRpc3BsYXkgfX1cclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxGb3JtLkl0ZW0gey4uLmRlZmF1bHRJdGVtfT5cclxuICAgICAgICAgICAgICAgICAgICAgIHtnZXROb2RlKGl0ZW0udHlwZSwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogcGxhY2Vob2xkZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7IHdpZHRoOiBcIjEwMCVcIiB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5wcm9wcyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6IHNlYXJjaERpc2FibGVkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XHJcbiAgICAgICAgICAgICAgICAgIDwvQ29sPlxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAgICA8Q29sXHJcbiAgICAgICAgICAgICAgICBtZD17eyBzcGFuOiAxMiB9fVxyXG4gICAgICAgICAgICAgICAgc209e3sgc3BhbjogMjQgfX1cclxuICAgICAgICAgICAgICAgIGxnPXt7IHNwYW46IHRvb2xCdXR0b25Qb3NpdGlvbiA9PSBcInJpZ2h0XCIgPyAxMiA6IDYgfX1cclxuICAgICAgICAgICAgICAgIHN0eWxlPXt7IHBhZGRpbmdSaWdodDogMCB9fVxyXG4gICAgICAgICAgICAgICAgb2Zmc2V0PXtcclxuICAgICAgICAgICAgICAgICAgKHRoaXMuc3RhdGUuZXhwYW5kIHx8IHNlYXJjaEZvcm1zLmxlbmd0aCA8IDQpICYmXHJcbiAgICAgICAgICAgICAgICAgIHNlYXJjaEZvcm1zLmxlbmd0aCA+IDFcclxuICAgICAgICAgICAgICAgICAgICA/IGNvbFNwYW5cclxuICAgICAgICAgICAgICAgICAgICA6IDBcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKGdldExlc3Moc3R5bGVzLCBcInNlYXJjaC1idXR0b25zXCIpLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgW2dldExlc3Moc3R5bGVzLCBcInNlYXJjaC1idXR0b25zLWZsZXhcIildOlxyXG4gICAgICAgICAgICAgICAgICAgICAgc2VhcmNoRm9ybXMubGVuZ3RoID4gMSxcclxuICAgICAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IG1hcmdpblRvcDogMCB9fVxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHMoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgW2dldExlc3Moc3R5bGVzLCBcImJ1dHRvbi1yZXZlcnNlXCIpXTpcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5idXR0b25SZXZlcnMgPT0gdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9e1wicHJpbWFyeVwifVxyXG4gICAgICAgICAgICAgICAgICAgICAgLy8gb25DbGljaz17dGhpcy5vblNlYXJjaC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgaWNvbj17PFNlYXJjaE91dGxpbmVkIC8+fVxyXG4gICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgbWFyZ2luTGVmdDogMCB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgaHRtbFR5cGU9XCJzdWJtaXRcIlxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIOafpeivolxyXG4gICAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIHtzZWFyY2hGb3Jtcy5sZW5ndGggPiAxICYmIChcclxuICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdHlwZT17XCJwcmltYXJ5XCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMucmVzZXRTZWFyY2guYmluZCh0aGlzKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj17PFJlbG9hZE91dGxpbmVkIC8+fVxyXG4gICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICDph43nva5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICB7c2VhcmNoRm9ybXMubGVuZ3RoID4gMyAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJleHBhbmRfc3R5bGVcIil9XHJcbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgZXhwYW5kIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBleHBhbmQ6ICFleHBhbmQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7dGhpcy5zdGF0ZS5leHBhbmQgPyBcIuaUtui1t1wiIDogXCLlsZXlvIBcIn1cclxuICAgICAgICAgICAgICAgICAgICAgIHt0aGlzLnN0YXRlLmV4cGFuZCA/IDxVcE91dGxpbmVkIC8+IDogPERvd25PdXRsaW5lZCAvPn1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvQ29sPlxyXG4gICAgICAgICAgICA8L0Zvcm0+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9Sb3c+XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG5leHBvcnQgZGVmYXVsdCBIZWFkZXJTZWFyY2g7XHJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsT0FBT0EsS0FBSyxJQUFJQyxhQUFhLFFBQW1CLE9BQU87QUFDdkQsT0FBT0MsSUFBSSxNQUFNLGlCQUFpQjtBQUNsQyxPQUFPQyxNQUFNLE1BQU0sbUJBQW1CO0FBQ3RDLE9BQU9DLEdBQUcsTUFBTSxZQUFZO0FBQzVCLE9BQU9DLE1BQU0sTUFBTSxjQUFjO0FBQ2pDLE9BQU9DLEdBQUcsTUFBTSxxQkFBcUI7QUFDckMsT0FBT0MsR0FBRyxNQUFNLHFCQUFxQjtBQUNyQyxPQUFPQyxNQUFNLE1BQU0sUUFBUTtBQUMzQixTQUFTQyxVQUFVLFFBQVEsbUJBQW1CO0FBQzlDLFNBQ0VDLFlBQVksRUFDWkMsVUFBVSxFQUNWQyxjQUFjLEVBQ2RDLGNBQWMsUUFDVCxtQkFBbUI7QUFDMUIsU0FBU0MsT0FBTyxFQUFFQyxPQUFPLFFBQVEsYUFBYTtBQW9COUMsTUFBTUMsWUFBWSxTQUFTZixhQUFhLENBQW1CO0VBQUFnQixZQUFBO0lBQUEsU0FBQUMsU0FBQTtJQUFBQyxlQUFBLGlDQUM3Q25CLEtBQUssQ0FBQ29CLFNBQVMsQ0FBTSxDQUFDO0lBQUFELGVBQUEscUJBQ3JCLENBQUMsQ0FBQztJQUFBQSxlQUFBLGdCQUNQO01BQUVFLE1BQU0sRUFBRTtJQUFNLENBQUM7RUFBQTtFQUN6QkMsZUFBZUEsQ0FBQ0MsTUFBTSxFQUFFQyxRQUFRLEVBQUU7SUFBQSxJQUFBQyxxQkFBQTtJQUNoQyxDQUFBQSxxQkFBQSxPQUFJLENBQUNDLFNBQVMsQ0FBQ0MsT0FBTyxjQUFBRixxQkFBQSxlQUF0QkEscUJBQUEsQ0FBd0JHLGNBQWMsQ0FBQ0wsTUFBTSxDQUFDO0VBQ2hEO0VBQ0FNLGVBQWVBLENBQUEsRUFBRztJQUNoQixNQUFNQyxTQUFTLEdBQUcsSUFBSSxDQUFDQyxXQUFXLENBQUMsQ0FBQztJQUNwQyxPQUFPRCxTQUFTO0VBQ2xCO0VBQ0FDLFdBQVdBLENBQUEsRUFBRztJQUFBLElBQUFDLHNCQUFBO0lBQ1osTUFBTUYsU0FBUyxJQUFBRSxzQkFBQSxHQUFHLElBQUksQ0FBQ04sU0FBUyxDQUFDQyxPQUFPLGNBQUFLLHNCQUFBLHVCQUF0QkEsc0JBQUEsQ0FBd0JDLGNBQWMsQ0FBQyxDQUFDO0lBQzFELElBQUksQ0FBQ3hCLFVBQVUsQ0FBQyxJQUFJLENBQUN5QixVQUFVLENBQUMsRUFBRTtNQUNoQyxLQUFLLElBQUlDLEdBQUcsSUFBSSxJQUFJLENBQUNELFVBQVUsRUFBRTtRQUMvQixJQUFJRSxPQUFPLEdBQUdOLFNBQVMsQ0FBQ0ssR0FBRyxDQUFDO1FBQzVCLElBQUlFLEtBQUssQ0FBQ0MsT0FBTyxDQUFDRixPQUFPLENBQUMsRUFBRTtVQUMxQixJQUFJQSxPQUFPLENBQUNHLE1BQU0sR0FBRyxDQUFDLElBQUlILE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSUEsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2xETixTQUFTLENBQUNLLEdBQUcsQ0FBQyxHQUFHLENBQ2YzQixNQUFNLENBQUM0QixPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQ0ksTUFBTSxDQUFDLElBQUksQ0FBQ04sVUFBVSxDQUFDQyxHQUFHLENBQUMsQ0FBQyxFQUMvQzNCLE1BQU0sQ0FBQzRCLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDTixVQUFVLENBQUNDLEdBQUcsQ0FBQyxDQUFDLENBQ2hEO1VBQ0g7UUFDRixDQUFDLE1BQU0sSUFBSUMsT0FBTyxFQUFFO1VBQ2xCTixTQUFTLENBQUNLLEdBQUcsQ0FBQyxHQUFHM0IsTUFBTSxDQUFDNEIsT0FBTyxDQUFDLENBQUNJLE1BQU0sQ0FBQyxJQUFJLENBQUNOLFVBQVUsQ0FBQ0MsR0FBRyxDQUFDLENBQUM7UUFDL0Q7TUFDRjtJQUNGO0lBQ0EsT0FBT0wsU0FBUztFQUNsQjtFQUNBVyxRQUFRQSxDQUFBLEVBQUc7SUFDVCxNQUFNO01BQUVBO0lBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQ0MsS0FBSztJQUMvQixNQUFNWixTQUFTLEdBQUcsSUFBSSxDQUFDQyxXQUFXLENBQUMsQ0FBQztJQUNwQyxJQUFJVSxRQUFRLEVBQUU7TUFDWkEsUUFBUSxDQUFDWCxTQUFTLENBQUM7TUFDbkI7SUFDRjtFQUNGO0VBQ0FhLFdBQVdBLENBQUEsRUFBRztJQUFBLElBQUFDLHNCQUFBO0lBQ1osQ0FBQUEsc0JBQUEsT0FBSSxDQUFDbEIsU0FBUyxDQUFDQyxPQUFPLGNBQUFpQixzQkFBQSxlQUF0QkEsc0JBQUEsQ0FBd0JELFdBQVcsQ0FBQyxDQUFDO0VBQ3ZDO0VBQ0FFLFdBQVdBLENBQUEsRUFBRztJQUFBLElBQUFDLHNCQUFBO0lBQ1osSUFBSSxJQUFJLENBQUNKLEtBQUssQ0FBQ0ssT0FBTyxFQUFFO01BQ3RCLElBQUksQ0FBQ0wsS0FBSyxDQUFDSyxPQUFPLENBQUMsQ0FBQztNQUNwQjtJQUNGO0lBQ0EsQ0FBQUQsc0JBQUEsT0FBSSxDQUFDcEIsU0FBUyxDQUFDQyxPQUFPLGNBQUFtQixzQkFBQSxlQUF0QkEsc0JBQUEsQ0FBd0JILFdBQVcsQ0FBQyxDQUFDO0VBQ3ZDO0VBQ0FLLE1BQU1BLENBQUEsRUFBRztJQUNQLE1BQU07TUFDSkMsV0FBVyxHQUFHLEVBQUU7TUFDaEJDLGtCQUFrQjtNQUNsQlQsUUFBUTtNQUNSTSxPQUFPO01BQ1BJLGVBQWUsR0FBRyxDQUFDO0lBQ3JCLENBQUMsR0FBRyxJQUFJLENBQUNULEtBQUs7SUFFZCxJQUFJVSxPQUFPLEdBQUcsQ0FBQztJQUNmLE1BQU1DLFdBQVcsR0FBR0gsa0JBQWtCLElBQUksT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDO0lBQ3pELE1BQU1JLFVBQVUsR0FBR0wsV0FBVyxDQUFDVixNQUFNLEdBQUcsQ0FBQztJQUN6QyxJQUFJZSxVQUFVLElBQUksQ0FBQyxFQUFFO01BQ25CRixPQUFPLEdBQUcsRUFBRTtJQUNkLENBQUMsTUFBTSxJQUFJRSxVQUFVLElBQUksQ0FBQyxFQUFFO01BQzFCRixPQUFPLEdBQUcsRUFBRTtJQUNkLENBQUMsTUFBTSxJQUFJRSxVQUFVLElBQUksQ0FBQyxFQUFFO01BQzFCRixPQUFPLEdBQUcsQ0FBQztJQUNiO0lBQ0Esb0JBQ0VwRCxLQUFBLENBQUF1RCxhQUFBLENBQUNoRCxHQUFHO01BQUNpRCxNQUFNLEVBQUUsRUFBRztNQUFDQyxJQUFJO0lBQUEsZ0JBQ25CekQsS0FBQSxDQUFBdUQsYUFBQTtNQUNFRyxTQUFTLEVBQUV0RCxHQUFHLENBQ1pVLE9BQU8sQ0FBQ1QsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUN6QjtRQUFFLENBQUNTLE9BQU8sQ0FBQ1QsTUFBTSxFQUFFLGdCQUFnQixDQUFDLEdBQUc0QyxXQUFXLENBQUNWLE1BQU0sR0FBRztNQUFFLENBQUMsRUFDL0QsSUFBSSxDQUFDRyxLQUFLLENBQUNnQixTQUNiO0lBQUUsZ0JBRUYxRCxLQUFBLENBQUF1RCxhQUFBO01BQUtHLFNBQVMsRUFBRXRELEdBQUcsQ0FBQ1UsT0FBTyxDQUFDVCxNQUFNLEVBQUUsTUFBTSxDQUFDO0lBQUUsZ0JBQzNDTCxLQUFBLENBQUF1RCxhQUFBLENBQUNyRCxJQUFJLEVBQUF5RCxRQUFBO01BQ0hDLEdBQUcsRUFBRSxJQUFJLENBQUNsQyxTQUFVO01BQ3BCbUMsUUFBUSxFQUFFLENBQUMsQ0FBRTtNQUNiQyxVQUFVLEVBQUUsQ0FBQyxDQUFFO01BQ2ZDLEtBQUssRUFBRTtRQUFFQyxLQUFLLEVBQUUsTUFBTTtRQUFFQyxPQUFPLEVBQUUsTUFBTTtRQUFFQyxRQUFRLEVBQUU7TUFBTyxDQUFFO01BQzVEQyxRQUFRLEVBQUUsSUFBSSxDQUFDMUIsUUFBUSxDQUFDMkIsSUFBSSxDQUFDLElBQUk7TUFDakM7SUFBQSxHQUNJakIsZUFBZSxHQUVsQkYsV0FBVyxDQUFDb0IsR0FBRyxDQUFDLENBQUNDLElBQVMsRUFBRUMsS0FBVSxLQUFLO01BQUEsSUFBQUMsV0FBQTtNQUMxQyxNQUFNQyxTQUFTLEdBQUdILElBQUksQ0FBQzVCLEtBQUssSUFBSSxDQUFDLENBQUM7TUFDbEMsSUFBSXVCLE9BQU8sR0FBRyxPQUFPO01BQ3JCLElBQUlRLFNBQVMsQ0FBQ0MsV0FBVyxFQUFFO1FBQ3pCLElBQUksQ0FBQ3hDLFVBQVUsQ0FBQ29DLElBQUksQ0FBQ0ssSUFBSSxDQUFDLEdBQUdGLFNBQVMsQ0FBQ0MsV0FBVztNQUNwRDtNQUNBLElBQUlILEtBQUssR0FBR2xCLFdBQVcsSUFBSSxDQUFDLElBQUksQ0FBQ3VCLEtBQUssQ0FBQ3ZELE1BQU0sRUFBRTtRQUM3QzRDLE9BQU8sR0FBRyxNQUFNO1FBQ2hCO01BQ0Y7TUFDQSxJQUFJWSxVQUFVLEdBQUcsQ0FBQVAsSUFBSSxhQUFKQSxJQUFJLGdCQUFBRSxXQUFBLEdBQUpGLElBQUksQ0FBRTVCLEtBQUssY0FBQThCLFdBQUEsdUJBQVhBLFdBQUEsQ0FBYUssVUFBVSxLQUFJLEtBQUs7TUFDakQsSUFBSW5DLEtBQUssR0FBQW9DLGFBQUEsS0FBUUwsU0FBUyxDQUFFO01BQzVCLElBQUlNLGNBQWMsR0FDaEJyQyxLQUFLLENBQUNxQyxjQUFjLEtBQUssSUFBSSxHQUFHLElBQUksR0FBRyxLQUFLO01BQzlDLE9BQU9yQyxLQUFLLENBQUNxQyxjQUFjO01BQzNCLElBQUksQ0FBQ1QsSUFBSSxDQUFDVSxJQUFJLElBQUlWLElBQUksQ0FBQ1UsSUFBSSxJQUFJLE9BQU8sRUFBRTtRQUN0Q3RDLEtBQUssQ0FBQ21DLFVBQVUsR0FBRyxJQUFJO01BQ3pCLENBQUMsTUFBTTtRQUNMLE9BQU9uQyxLQUFLLENBQUNtQyxVQUFVO01BQ3pCO01BQ0EsSUFBSUksV0FBVyxHQUFHO1FBQ2hCQyxLQUFLLEVBQUVaLElBQUksQ0FBQ1ksS0FBSztRQUNqQlAsSUFBSSxFQUFFTCxJQUFJLENBQUNLLElBQUk7UUFDZkUsVUFBVSxFQUFFQSxVQUFVO1FBQ3RCTSxLQUFLLEVBQUViLElBQUksQ0FBQ2EsS0FBSztRQUNqQkMsYUFBYSxFQUFFZCxJQUFJLENBQUNVLElBQUksR0FBR1YsSUFBSSxDQUFDVSxJQUFJLEdBQUc7TUFDekMsQ0FBUTtNQUNSLElBQUlWLElBQUksQ0FBQ1QsUUFBUSxFQUFFO1FBQ2pCb0IsV0FBVyxHQUFBSCxhQUFBLENBQUFBLGFBQUEsS0FBUUcsV0FBVztVQUFFcEIsUUFBUSxFQUFFUyxJQUFJLENBQUNUO1FBQVEsRUFBRTtRQUN6RCxPQUFPUyxJQUFJLENBQUNULFFBQVE7TUFDdEI7TUFDQSxJQUFJUyxJQUFJLENBQUNSLFVBQVUsRUFBRTtRQUNuQm1CLFdBQVcsR0FBQUgsYUFBQSxDQUFBQSxhQUFBLEtBQVFHLFdBQVc7VUFBRW5CLFVBQVUsRUFBRVEsSUFBSSxDQUFDUjtRQUFVLEVBQUU7UUFDN0QsT0FBT1EsSUFBSSxDQUFDUixVQUFVO01BQ3hCO01BQ0EsSUFBSXVCLFdBQWdCLEdBQ2xCZixJQUFJLENBQUNVLElBQUksSUFBSSxRQUFRLHdCQUFBTSxNQUFBLENBQ1hoQixJQUFJLENBQUNZLEtBQUsseUJBQUFJLE1BQUEsQ0FDVmhCLElBQUksQ0FBQ1ksS0FBSyxDQUFFO01BQ3hCLElBQUlaLElBQUksQ0FBQ1UsSUFBSSxJQUFJLGFBQWEsRUFBRTtRQUM5QkssV0FBVyxHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQztNQUNoQztNQUNBLG9CQUNFckYsS0FBQSxDQUFBdUQsYUFBQSxDQUFDakQsR0FBRztRQUNGaUYsRUFBRSxFQUFFO1VBQUVDLElBQUksRUFBRTtRQUFHLENBQUU7UUFDakJDLEVBQUUsRUFBRTtVQUFFRCxJQUFJLEVBQUU7UUFBRyxDQUFFO1FBQ2pCRSxFQUFFLEVBQUU7VUFBRUYsSUFBSSxFQUFFO1FBQUUsQ0FBRTtRQUNoQnJELEdBQUcsRUFBRW9DLEtBQU07UUFDWFIsS0FBSyxFQUFFO1VBQUU0QixZQUFZLEVBQUUsQ0FBQztVQUFFMUIsT0FBTyxFQUFFQTtRQUFRO01BQUUsZ0JBRTdDakUsS0FBQSxDQUFBdUQsYUFBQSxDQUFDckQsSUFBSSxDQUFDMEYsSUFBSSxFQUFLWCxXQUFXLEVBQ3ZCbEUsT0FBTyxDQUFDdUQsSUFBSSxDQUFDVSxJQUFJLEVBQUFGLGFBQUEsQ0FBQUEsYUFBQTtRQUNoQk8sV0FBVyxFQUFFQSxXQUFXO1FBQ3hCdEIsS0FBSyxFQUFFO1VBQUVDLEtBQUssRUFBRTtRQUFPO01BQUMsR0FDckJ0QixLQUFLO1FBQ1JtRCxRQUFRLEVBQUVkO01BQWMsRUFDekIsQ0FDUSxDQUNSLENBQUM7SUFFVixDQUFDLENBQUMsZUFDRi9FLEtBQUEsQ0FBQXVELGFBQUEsQ0FBQ2pELEdBQUc7TUFDRmlGLEVBQUUsRUFBRTtRQUFFQyxJQUFJLEVBQUU7TUFBRyxDQUFFO01BQ2pCQyxFQUFFLEVBQUU7UUFBRUQsSUFBSSxFQUFFO01BQUcsQ0FBRTtNQUNqQkUsRUFBRSxFQUFFO1FBQUVGLElBQUksRUFBRXRDLGtCQUFrQixJQUFJLE9BQU8sR0FBRyxFQUFFLEdBQUc7TUFBRSxDQUFFO01BQ3JEYSxLQUFLLEVBQUU7UUFBRTRCLFlBQVksRUFBRTtNQUFFLENBQUU7TUFDM0JHLE1BQU0sRUFDSixDQUFDLElBQUksQ0FBQ2xCLEtBQUssQ0FBQ3ZELE1BQU0sSUFBSTRCLFdBQVcsQ0FBQ1YsTUFBTSxHQUFHLENBQUMsS0FDNUNVLFdBQVcsQ0FBQ1YsTUFBTSxHQUFHLENBQUMsR0FDbEJhLE9BQU8sR0FDUDtJQUNMLGdCQUVEcEQsS0FBQSxDQUFBdUQsYUFBQTtNQUNFRyxTQUFTLEVBQUV0RCxHQUFHLENBQUNVLE9BQU8sQ0FBQ1QsTUFBTSxFQUFFLGdCQUFnQixDQUFDLEVBQUU7UUFDaEQsQ0FBQ1MsT0FBTyxDQUFDVCxNQUFNLEVBQUUscUJBQXFCLENBQUMsR0FDckM0QyxXQUFXLENBQUNWLE1BQU0sR0FBRztNQUN6QixDQUFDLENBQUU7TUFDSHdCLEtBQUssRUFBRTtRQUFFZ0MsU0FBUyxFQUFFO01BQUU7SUFBRSxnQkFFeEIvRixLQUFBLENBQUF1RCxhQUFBO01BQ0VHLFNBQVMsRUFBRXRELEdBQUcsQ0FBQztRQUNiLENBQUNVLE9BQU8sQ0FBQ1QsTUFBTSxFQUFFLGdCQUFnQixDQUFDLEdBQ2hDLElBQUksQ0FBQ3FDLEtBQUssQ0FBQ3NELFlBQVksSUFBSTtNQUMvQixDQUFDO0lBQUUsZ0JBRUhoRyxLQUFBLENBQUF1RCxhQUFBLENBQUNwRCxNQUFNO01BQ0w2RSxJQUFJLEVBQUU7TUFDTjtNQUFBO01BQ0FpQixJQUFJLGVBQUVqRyxLQUFBLENBQUF1RCxhQUFBLENBQUMxQyxjQUFjLE1BQUUsQ0FBRTtNQUN6QmtELEtBQUssRUFBRTtRQUFFbUMsVUFBVSxFQUFFO01BQUUsQ0FBRTtNQUN6QkMsUUFBUSxFQUFDO0lBQVEsR0FDbEIsY0FFTyxDQUFDLEVBQ1JsRCxXQUFXLENBQUNWLE1BQU0sR0FBRyxDQUFDLGlCQUNyQnZDLEtBQUEsQ0FBQXVELGFBQUEsQ0FBQ3BEO0lBQ0M7SUFBQTtNQUNBaUcsT0FBTyxFQUFFLElBQUksQ0FBQ3ZELFdBQVcsQ0FBQ3VCLElBQUksQ0FBQyxJQUFJLENBQUU7TUFDckM2QixJQUFJLGVBQUVqRyxLQUFBLENBQUF1RCxhQUFBLENBQUMzQyxjQUFjLE1BQUU7SUFBRSxHQUMxQixjQUVPLENBRVAsQ0FBQyxFQUNMcUMsV0FBVyxDQUFDVixNQUFNLEdBQUcsQ0FBQyxpQkFDckJ2QyxLQUFBLENBQUF1RCxhQUFBO01BQ0VHLFNBQVMsRUFBRTVDLE9BQU8sQ0FBQ1QsTUFBTSxFQUFFLGNBQWMsQ0FBRTtNQUMzQytGLE9BQU8sRUFBRUEsQ0FBQSxLQUFNO1FBQ2IsTUFBTTtVQUFFL0U7UUFBTyxDQUFDLEdBQUcsSUFBSSxDQUFDdUQsS0FBSztRQUM3QixJQUFJLENBQUN5QixRQUFRLENBQUM7VUFDWmhGLE1BQU0sRUFBRSxDQUFDQTtRQUNYLENBQUMsQ0FBQztNQUNKO0lBQUUsR0FFRCxJQUFJLENBQUN1RCxLQUFLLENBQUN2RCxNQUFNLEdBQUcsSUFBSSxHQUFHLElBQUksRUFDL0IsSUFBSSxDQUFDdUQsS0FBSyxDQUFDdkQsTUFBTSxnQkFBR3JCLEtBQUEsQ0FBQXVELGFBQUEsQ0FBQzVDLFVBQVUsTUFBRSxDQUFDLGdCQUFHWCxLQUFBLENBQUF1RCxhQUFBLENBQUM3QyxZQUFZLE1BQUUsQ0FDbEQsQ0FFSixDQUNGLENBQ0QsQ0FDSCxDQUNGLENBQ0YsQ0FBQztFQUVWO0FBQ0Y7QUFDQSxlQUFlTSxZQUFZIiwiaWdub3JlTGlzdCI6W119
|