nsc-react-component 4.0.4 → 4.0.5

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.
@@ -5,7 +5,6 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
5
5
  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; }
6
6
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
7
7
  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); }
8
- import { useEffect, useState } from "react";
9
8
  import BasePage from "../BasePage";
10
9
  import Spin from "../../base/spin";
11
10
  import Button from "../../base/button";
@@ -17,6 +16,7 @@ import NscRequest from "nsc-request";
17
16
  import * as NscUtils from "@bj-nsc/functions";
18
17
  import cls from "classnames";
19
18
  import queryString from 'query-string';
19
+ import { getLocalStore } from '@bj-nsc/functions';
20
20
  // import { history } from 'umi'
21
21
  // import { getConfigData } from '../services';
22
22
  const renderSelfToolButton = _ref => {
@@ -174,33 +174,61 @@ const jumpPage = (params, type) => {
174
174
  window.history.go();
175
175
  }
176
176
  };
177
- export default (_ref3 => {
178
- let {
179
- tableCode,
180
- className,
181
- menuCode,
182
- funcs = {}
183
- } = _ref3;
184
- const [pageProps, setPageProps] = useState({});
185
- const [treeProps, setTreeProps] = useState({
186
- store: {
187
- url: "",
188
- autoLoad: false
177
+ const getProject = () => {
178
+ const project = getLocalStore({
179
+ name: 'nsc-home-project'
180
+ }) || {};
181
+ return project;
182
+ };
183
+ export default class SettingTable extends React.Component {
184
+ constructor() {
185
+ super(...arguments);
186
+ _defineProperty(this, "state", {
187
+ pageProps: {},
188
+ treeProps: {
189
+ store: {
190
+ url: "",
191
+ autoLoad: false
192
+ }
193
+ },
194
+ tableProps: {},
195
+ selfToolButton: [],
196
+ selfColumnButton: [],
197
+ pageLoading: true,
198
+ defaultColumns: []
199
+ });
200
+ _defineProperty(this, "pageRef", /*#__PURE__*/React.createRef());
201
+ }
202
+ componentDidMount() {
203
+ this.getData();
204
+ }
205
+ componentDidUpdate(prevProps, prevState, snapshot) {
206
+ if (prevProps.tableCode != this.props.tableCode) {
207
+ this.getData();
189
208
  }
190
- });
191
- const [tableProps, setTableProps] = useState({});
192
- const [selfToolButton, setSelfToolButton] = useState([]);
193
- const [selfColumnButton, setSelfColumnButton] = useState([]);
194
- const [pageLoading, setPageLoading] = useState(true);
195
- const pageRef = React.useRef(null);
196
- const [defaultColumns, setDefaultColumns] = useState([]);
197
- useEffect(() => {
198
- setPageLoading(true);
209
+ }
210
+
211
+ // 获取数据
212
+ getData() {
213
+ // 从props中获取tableCode、published、menuCode
214
+ const {
215
+ tableCode,
216
+ published = true,
217
+ menuCode
218
+ } = this.props;
219
+ // 如果tableCode存在
199
220
  if (tableCode) {
200
- getPageData({
201
- code: tableCode,
202
- isPublished: 1
203
- }).then(res => {
221
+ // 定义参数
222
+ let params = {
223
+ code: tableCode
224
+ };
225
+ // 如果published为true
226
+ if (published) {
227
+ // 设置参数isPublished为1
228
+ params.isPublished = 1;
229
+ }
230
+ // 调用getPageData方法获取数据
231
+ getPageData(_objectSpread({}, params)).then(res => {
204
232
  if (res.code == 200 && res.data) {
205
233
  var _page_props$permissio;
206
234
  let table_props = JSON.parse(res.data.tableProps || "{}") || {};
@@ -209,86 +237,241 @@ export default (_ref3 => {
209
237
  if (((_page_props$permissio = page_props.permission) === null || _page_props$permissio === void 0 ? void 0 : _page_props$permissio.has) == true) {
210
238
  page_props.permission.menuCode = menuCode;
211
239
  }
212
- setTableProps(_objectSpread({}, table_props));
213
- setPageProps(page_props);
214
- setTreeProps(_objectSpread({}, tree_props));
215
- setSelfColumnButton(JSON.parse(res.data.columnButtons) || []);
216
- setSelfToolButton(JSON.parse(res.data.toolButtons) || []);
217
- setDefaultColumns(page_props.columns);
218
- setTimeout(() => {
219
- setPageLoading(false);
220
- }, 300);
240
+ if (published == false) {
241
+ page_props.permission = false;
242
+ }
243
+ console.log('page_props', page_props);
244
+ console.log('table_props', table_props);
245
+ this.setState({
246
+ pageProps: _objectSpread({}, page_props),
247
+ treeProps: _objectSpread({}, tree_props),
248
+ tableProps: _objectSpread({}, table_props),
249
+ selfColumnButton: JSON.parse(res.data.columnButtons) || [],
250
+ selfToolButton: JSON.parse(res.data.toolButtons) || [],
251
+ defaultColumns: page_props.columns
252
+ }, () => {
253
+ this.setState({
254
+ pageLoading: false
255
+ });
256
+ });
221
257
  } else if (res.code == 200 && res.data == null) {
222
258
  _message.error("未找到配置信息!");
223
- setPageLoading(false);
259
+ this.setState({
260
+ pageLoading: false
261
+ });
224
262
  } else {
225
- setPageLoading(false);
263
+ this.setState({
264
+ pageLoading: false
265
+ });
226
266
  }
227
267
  });
228
268
  } else {
229
- setPageLoading(false);
230
- }
231
- }, [tableCode]);
232
- const deaultFuncs = _objectSpread({
233
- setFieldDisabled: (key, disabled) => {
234
- const newData = setFieldDisabled(pageProps.columns, key, disabled);
235
- setPageProps(_objectSpread(_objectSpread({}, pageProps), {}, {
236
- columns: newData
237
- }));
238
- },
239
- setFieldVisible: (key, disabled) => {
240
- const newData = setFieldVisible(pageProps.columns, key, disabled);
241
- setPageProps(_objectSpread(_objectSpread({}, pageProps), {}, {
242
- columns: newData
243
- }));
244
- },
245
- setFieldPropsData: (key, data) => {
246
- const newData = setFieldPropsData(pageProps.columns, key, data);
247
- setPageProps(_objectSpread(_objectSpread({}, pageProps), {}, {
248
- columns: newData
249
- }));
250
- },
251
- history: (params, type) => {
252
- jumpPage(params, type);
253
- }
254
- }, funcs);
255
- return /*#__PURE__*/React.createElement("div", {
256
- className: cls("nsc-framework-tablepage", className)
257
- }, pageLoading ? /*#__PURE__*/React.createElement("div", {
258
- style: {
259
- width: "100%",
260
- height: "100%"
269
+ this.setState({
270
+ pageLoading: false
271
+ });
261
272
  }
262
- }, /*#__PURE__*/React.createElement(Spin, {
263
- spinning: pageLoading
264
- })) : /*#__PURE__*/React.createElement(BasePage, _extends({}, pageProps, {
265
- treeProps: _objectSpread({}, treeProps),
266
- tableProps: _objectSpread({}, tableProps),
267
- formProps: {},
268
- Utils: {
269
- NscCom,
270
- NscFile,
271
- NscRequest,
272
- NscUtils
273
- },
274
- ref: pageRef,
275
- pageRef: pageRef,
276
- onHideForm: () => {
277
- var _pageRef$current;
278
- setPageProps(_objectSpread(_objectSpread({}, pageProps), {}, {
279
- columns: defaultColumns
280
- }));
281
- (_pageRef$current = pageRef.current) === null || _pageRef$current === void 0 || _pageRef$current.hideForm();
282
- },
283
- funcs: _objectSpread(_objectSpread({}, deaultFuncs), funcs)
284
- }), renderSelfToolButton({
285
- selfToolButton,
286
- pageRef,
287
- funcs: _objectSpread(_objectSpread({}, deaultFuncs), funcs)
288
- }), renderSelfColumnButton({
289
- selfColumnButton,
290
- pageRef,
291
- funcs: _objectSpread(_objectSpread({}, deaultFuncs), funcs)
292
- })));
293
- });
294
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VTdGF0ZSIsIkJhc2VQYWdlIiwiU3BpbiIsIkJ1dHRvbiIsIlJlYWN0IiwiTnNjQ29tIiwiTnNjRmlsZSIsIk5zY1JlcXVlc3QiLCJOc2NVdGlscyIsImNscyIsInF1ZXJ5U3RyaW5nIiwicmVuZGVyU2VsZlRvb2xCdXR0b24iLCJfcmVmIiwic2VsZlRvb2xCdXR0b24iLCJwYWdlUmVmIiwiZnVuY3MiLCJsZW5ndGgiLCJtYXAiLCJpdGVtIiwiaW5kZXgiLCJjcmVhdGVFbGVtZW50IiwicGFnZVR5cGUiLCJrZXkiLCJ0eXBlIiwib25DbGljayIsIlV0aWxzIiwiZXZlbnRPcHRpb24iLCJmdW5jIiwiRnVuY3Rpb24iLCJjb2RlIiwibmFtZSIsInJlbmRlclNlbGZDb2x1bW5CdXR0b24iLCJfcmVmMiIsInNlbGZDb2x1bW5CdXR0b24iLCJyZWNvcmQiLCJyZWNvcmRTaG93IiwiZ2V0UGFnZURhdGEiLCJwYXJhbXMiLCJnZXQiLCJ4c3NGaWx0ZXIiLCJhdXRvUHJlZml4Iiwic2V0RmllbGREaXNhYmxlZCIsImRhdGEiLCJkaXNhYmxlZCIsImNvbHVtbnMiLCJuZXdDb2x1bW5zIiwib2JqIiwiX29iamVjdFNwcmVhZCIsImRhdGFJbmRleCIsImluZGV4T2YiLCJwcm9wcyIsInB1c2giLCJzZXRGaWVsZFZpc2libGUiLCJ2aXNpYmxlIiwiZWRpdG9yIiwic2V0RmllbGRQcm9wc0RhdGEiLCJwcm9wc0RhdGEiLCJqdW1wUGFnZSIsInBhdGhuYW1lIiwicXVlcnkiLCJpZCIsInRpdGxlIiwic2VydmljZU5hbWUiLCJzZXJ2aWNlUGF0aCIsIm9wZW5UeXBlIiwibmV3UXVlcnkiLCJ1cmxQYXJhbXMiLCJzdHJpbmdpZnkiLCJwYXRoIiwiY29uY2F0Iiwid2luZG93IiwiX19QT1dFUkVEX0JZX1FJQU5LVU5fXyIsInBhcmVudCIsInBvc3RNZXNzYWdlIiwiZXZlbnRUeXBlIiwicGF5bG9hZCIsImxvY2F0aW9uIiwib3JpZ2luIiwiaGlzdG9yeSIsInB1c2hTdGF0ZSIsImdvIiwiX3JlZjMiLCJ0YWJsZUNvZGUiLCJjbGFzc05hbWUiLCJtZW51Q29kZSIsInBhZ2VQcm9wcyIsInNldFBhZ2VQcm9wcyIsInRyZWVQcm9wcyIsInNldFRyZWVQcm9wcyIsInN0b3JlIiwidXJsIiwiYXV0b0xvYWQiLCJ0YWJsZVByb3BzIiwic2V0VGFibGVQcm9wcyIsInNldFNlbGZUb29sQnV0dG9uIiwic2V0U2VsZkNvbHVtbkJ1dHRvbiIsInBhZ2VMb2FkaW5nIiwic2V0UGFnZUxvYWRpbmciLCJ1c2VSZWYiLCJkZWZhdWx0Q29sdW1ucyIsInNldERlZmF1bHRDb2x1bW5zIiwiaXNQdWJsaXNoZWQiLCJ0aGVuIiwicmVzIiwiX3BhZ2VfcHJvcHMkcGVybWlzc2lvIiwidGFibGVfcHJvcHMiLCJKU09OIiwicGFyc2UiLCJ0cmVlX3Byb3BzIiwicGFnZV9wcm9wcyIsInBlcm1pc3Npb24iLCJoYXMiLCJjb2x1bW5CdXR0b25zIiwidG9vbEJ1dHRvbnMiLCJzZXRUaW1lb3V0IiwiX21lc3NhZ2UiLCJlcnJvciIsImRlYXVsdEZ1bmNzIiwibmV3RGF0YSIsInN0eWxlIiwid2lkdGgiLCJoZWlnaHQiLCJzcGlubmluZyIsIl9leHRlbmRzIiwiZm9ybVByb3BzIiwicmVmIiwib25IaWRlRm9ybSIsIl9wYWdlUmVmJGN1cnJlbnQiLCJjdXJyZW50IiwiaGlkZUZvcm0iXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9wYWdlL1NldHRpbmdUYWJsZS9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgQmFzZVBhZ2UgZnJvbSBcIi4uL0Jhc2VQYWdlXCI7XHJcbmltcG9ydCBTcGluIGZyb20gXCIuLi8uLi9iYXNlL3NwaW5cIjtcclxuaW1wb3J0IEJ1dHRvbiBmcm9tIFwiLi4vLi4vYmFzZS9idXR0b25cIjtcclxuaW1wb3J0IFwiLi9pbmRleC5sZXNzXCI7XHJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0ICogYXMgTnNjQ29tIGZyb20gXCIuL2NvbVwiO1xyXG5pbXBvcnQgTnNjRmlsZSBmcm9tIFwibnNjLWZpbGVcIjtcclxuaW1wb3J0IE5zY1JlcXVlc3QgZnJvbSBcIm5zYy1yZXF1ZXN0XCI7XHJcbmltcG9ydCAqIGFzIE5zY1V0aWxzIGZyb20gXCJAYmotbnNjL2Z1bmN0aW9uc1wiO1xyXG5pbXBvcnQgY2xzIGZyb20gXCJjbGFzc25hbWVzXCI7XHJcbmltcG9ydCB7IG1lc3NhZ2UgfSBmcm9tIFwiYW50ZFwiO1xyXG5pbXBvcnQgcXVlcnlTdHJpbmcgZnJvbSAncXVlcnktc3RyaW5nJ1xyXG4vLyBpbXBvcnQgeyBoaXN0b3J5IH0gZnJvbSAndW1pJ1xyXG4vLyBpbXBvcnQgeyBnZXRDb25maWdEYXRhIH0gZnJvbSAnLi4vc2VydmljZXMnO1xyXG5jb25zdCByZW5kZXJTZWxmVG9vbEJ1dHRvbiA9ICh7IHNlbGZUb29sQnV0dG9uLCBwYWdlUmVmLCBmdW5jcyB9KSA9PiB7XHJcbiAgaWYgKHNlbGZUb29sQnV0dG9uLmxlbmd0aCA9PSAwKSB7XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9IGVsc2Uge1xyXG4gICAgcmV0dXJuIHNlbGZUb29sQnV0dG9uLm1hcCgoaXRlbTogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgcGFnZVR5cGU9XCJ0b29sQnV0dG9uXCJcclxuICAgICAgICAgIGtleT17aW5kZXh9XHJcbiAgICAgICAgICB0eXBlPXtpdGVtLnR5cGV9XHJcbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgIGxldCBVdGlscyA9IHsgTnNjQ29tLCBOc2NGaWxlLCBOc2NSZXF1ZXN0LCBOc2NVdGlscyB9O1xyXG4gICAgICAgICAgICBsZXQgZXZlbnRPcHRpb24gPSB7IHBhZ2VSZWY6IHBhZ2VSZWYsIGZ1bmNzOiBmdW5jcyB9O1xyXG4gICAgICAgICAgICBjb25zdCBmdW5jID0gbmV3IEZ1bmN0aW9uKFwiVXRpbHMsZXZlbnRPcHRpb25cIiwgaXRlbS5vbkNsaWNrKTtcclxuICAgICAgICAgICAgZnVuYyhVdGlscywgZXZlbnRPcHRpb24pO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAgIGNvZGU9e2l0ZW0uY29kZX1cclxuICAgICAgICA+XHJcbiAgICAgICAgICB7aXRlbS5uYW1lfVxyXG4gICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICApO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59O1xyXG5cclxuY29uc3QgcmVuZGVyU2VsZkNvbHVtbkJ1dHRvbiA9ICh7IHNlbGZDb2x1bW5CdXR0b24sIHBhZ2VSZWYsIGZ1bmNzIH0pID0+IHtcclxuICBpZiAoc2VsZkNvbHVtbkJ1dHRvbi5sZW5ndGggPT0gMCkge1xyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfSBlbHNlIHtcclxuICAgIHJldHVybiBzZWxmQ29sdW1uQnV0dG9uLm1hcCgoaXRlbTogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgcGFnZVR5cGU9XCJjb2x1bW5CdXR0b25cIlxyXG4gICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgIHR5cGU9e2l0ZW0udHlwZX1cclxuICAgICAgICAgIG9uQ2xpY2s9eyhyZWNvcmQpID0+IHtcclxuICAgICAgICAgICAgbGV0IFV0aWxzID0geyBOc2NDb20sIE5zY0ZpbGUsIE5zY1JlcXVlc3QsIE5zY1V0aWxzIH07XHJcbiAgICAgICAgICAgIGxldCBldmVudE9wdGlvbiA9IHsgcGFnZVJlZjogcGFnZVJlZiwgcmVjb3JkOiByZWNvcmQsIGZ1bmNzOiBmdW5jcyB9O1xyXG4gICAgICAgICAgICBjb25zdCBmdW5jID0gbmV3IEZ1bmN0aW9uKFwiVXRpbHMsZXZlbnRPcHRpb25cIiwgaXRlbS5vbkNsaWNrKTtcclxuICAgICAgICAgICAgZnVuYyhVdGlscywgZXZlbnRPcHRpb24pO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAgIGNvZGU9e2l0ZW0uY29kZX1cclxuICAgICAgICAgIHJlY29yZFNob3c9e2l0ZW0ucmVjb3JkU2hvd31cclxuICAgICAgICA+XHJcbiAgICAgICAgICB7aXRlbS5uYW1lfVxyXG4gICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICApO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59O1xyXG5cclxuY29uc3QgZ2V0UGFnZURhdGEgPSAocGFyYW1zOiBhbnkpID0+IHtcclxuICByZXR1cm4gTnNjUmVxdWVzdC5nZXQoYC9qcXVpY2stc2V0dGluZy9zZXR0aW5nL3RhYmxlL2luZm8vYCwge1xyXG4gICAgcGFyYW1zLFxyXG4gICAgeHNzRmlsdGVyOiBmYWxzZSxcclxuICAgIGF1dG9QcmVmaXg6IHRydWUsXHJcbiAgfSk7XHJcbn07XHJcblxyXG4vL+iuvue9ruihqOWNleWtl+auteWPquivu1xyXG5jb25zdCBzZXRGaWVsZERpc2FibGVkID0gKGRhdGE6IEFycmF5PGFueT4sIGtleSwgZGlzYWJsZWQpID0+IHtcclxuICBjb25zdCBjb2x1bW5zID0gWy4uLmRhdGFdO1xyXG4gIGxldCBuZXdDb2x1bW5zID0gW10gYXMgYW55O1xyXG4gIGNvbHVtbnMubWFwKChpdGVtKSA9PiB7XHJcbiAgICBsZXQgb2JqID0geyAuLi5pdGVtIH07XHJcbiAgICBpZiAoaXRlbS5kYXRhSW5kZXggPT0ga2V5IHx8IGtleS5pbmRleE9mKGl0ZW0uZGF0YUluZGV4KSA+IC0xKSB7XHJcbiAgICAgIGxldCBwcm9wcyA9IG9iai5wcm9wcyA/IHsgLi4ub2JqLnByb3BzIH0gOiB7fTtcclxuICAgICAgcHJvcHMuZGlzYWJsZWQgPSBkaXNhYmxlZDtcclxuICAgICAgb2JqLnByb3BzID0gcHJvcHM7XHJcbiAgICB9XHJcbiAgICBuZXdDb2x1bW5zLnB1c2gob2JqKTtcclxuICB9KTtcclxuICByZXR1cm4gbmV3Q29sdW1ucztcclxufTtcclxuLy/orr7nva7ooajljZXlrZfmrrXpmpDol49cclxuY29uc3Qgc2V0RmllbGRWaXNpYmxlID0gKGRhdGE6IEFycmF5PGFueT4sIGtleSwgdmlzaWJsZSkgPT4ge1xyXG4gIGNvbnN0IGNvbHVtbnMgPSBbLi4uZGF0YV07XHJcbiAgbGV0IG5ld0NvbHVtbnMgPSBbXSBhcyBhbnk7XHJcbiAgY29sdW1ucy5tYXAoKGl0ZW0pID0+IHtcclxuICAgIGxldCBvYmogPSB7IC4uLml0ZW0gfTtcclxuICAgIGlmIChpdGVtLmRhdGFJbmRleCA9PSBrZXkgfHwga2V5LmluZGV4T2YoaXRlbS5kYXRhSW5kZXgpID4gLTEpIHtcclxuICAgICAgb2JqLmVkaXRvciA9IHZpc2libGU7XHJcbiAgICB9XHJcbiAgICBuZXdDb2x1bW5zLnB1c2gob2JqKTtcclxuICB9KTtcclxuICByZXR1cm4gbmV3Q29sdW1ucztcclxufTtcclxuXHJcbmNvbnN0IHNldEZpZWxkUHJvcHNEYXRhID0gKGRhdGE6IEFycmF5PGFueT4sIGtleSwgcHJvcHNEYXRhKSA9PiB7XHJcbiAgY29uc3QgY29sdW1ucyA9IFsuLi5kYXRhXTtcclxuICBsZXQgbmV3Q29sdW1ucyA9IFtdIGFzIGFueTtcclxuICBjb2x1bW5zLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgbGV0IG9iaiA9IHsgLi4uaXRlbSB9O1xyXG4gICAgaWYgKGl0ZW0uZGF0YUluZGV4ID09IGtleSkge1xyXG4gICAgICBsZXQgcHJvcHMgPSBvYmoucHJvcHMgPyB7IC4uLm9iai5wcm9wcyB9IDoge307XHJcbiAgICAgIHByb3BzLmRhdGEgPSBwcm9wc0RhdGE7XHJcbiAgICAgIG9iai5wcm9wcyA9IHByb3BzO1xyXG4gICAgfVxyXG4gICAgbmV3Q29sdW1ucy5wdXNoKG9iaik7XHJcbiAgfSk7XHJcbiAgcmV0dXJuIG5ld0NvbHVtbnM7XHJcbn07XHJcbmludGVyZmFjZSBJUGFyYW1zIHtcclxuICBwYXRobmFtZT86IHN0cmluZztcclxuICBxdWVyeT86IGFueTtcclxuICBpZD86IHN0cmluZztcclxuICBzZXJ2aWNlTmFtZT86IHN0cmluZztcclxuICB0aXRsZT86IHN0cmluZztcclxuICBzZXJ2aWNlUGF0aD86IHN0cmluZztcclxuICBtZW51Q29kZT86IHN0cmluZztcclxuICBvcGVuVHlwZT86IG51bWJlcjtcclxufVxyXG5jb25zdCBqdW1wUGFnZSA9IChwYXJhbXM6IElQYXJhbXMsIHR5cGU/OiAnYWRkVGFiJyB8ICdqdW1wTWVudScpID0+IHtcclxuICBjb25zdCB7XHJcbiAgICBwYXRobmFtZSxcclxuICAgIHF1ZXJ5ID0ge30sXHJcbiAgICBpZCxcclxuICAgIHRpdGxlLFxyXG4gICAgc2VydmljZU5hbWUsXHJcbiAgICBzZXJ2aWNlUGF0aCxcclxuICAgIG9wZW5UeXBlLFxyXG4gIH0gPSBwYXJhbXM7XHJcbiAgY29uc3QgbmV3UXVlcnkgPSB7IC4uLnF1ZXJ5IH0gYXMgYW55O1xyXG4gIGNvbnN0IHVybFBhcmFtcyA9IHF1ZXJ5U3RyaW5nLnN0cmluZ2lmeShuZXdRdWVyeSk7XHJcbiAgY29uc3QgcGF0aCA9IHVybFBhcmFtcyA/IGAke3BhdGhuYW1lfT8ke3VybFBhcmFtc31gIDogcGF0aG5hbWU7XHJcbiAgLy9AdHMtaWdub3JlXHJcbiAgaWYgKHdpbmRvdy5fX1BPV0VSRURfQllfUUlBTktVTl9fKSB7XHJcbiAgICBjb25zdCBkYXRhID0ge1xyXG4gICAgICB0aXRsZTogdGl0bGUgfHwgJ+aWsOagh+etvicsXHJcbiAgICAgIHNlcnZpY2VOYW1lOiBzZXJ2aWNlTmFtZSwgLy/phY3nva7nmoTlvq7lupTnlKjlkI3np7BcclxuICAgICAgc2VydmljZVBhdGg6IHNlcnZpY2VQYXRoLCAvL+mFjee9rueahOW+ruW6lOeUqOWFpeWPo+WcsOWdgFxyXG4gICAgICBwYXRoOiBwYXRoLCAvL+aWsOagh+etvueahHVybCzmsqHphY3nva5zZXJ2aWNlTmFtZSBwYXRo5Li65a6M5pW06Lev5b6EXHJcbiAgICAgIGlkOiBpZCwgLy/oh6rlrprkuYnllK/kuIDlgLxcclxuICAgICAgb3BlblR5cGU6IG9wZW5UeXBlID8gb3BlblR5cGUgOiA0LCAvL+aJk+W8gOaWueW8jyA05L2N5b6u5YmN56uvLCAz5Li6aWZyYW1lICzpu5jorqQgM1xyXG4gICAgfTtcclxuICAgIHdpbmRvdy5wYXJlbnQucG9zdE1lc3NhZ2UoXHJcbiAgICAgIHtcclxuICAgICAgICBldmVudFR5cGU6IHR5cGUgPyB0eXBlIDogJ2FkZFRhYicsXHJcbiAgICAgICAgc2VydmljZU5hbWU6IHNlcnZpY2VOYW1lID8gc2VydmljZU5hbWUgOiAnc2V0dGluZy13ZWInLFxyXG4gICAgICAgIHBheWxvYWQ6IHR5cGUgPyBwYXJhbXMgOiBkYXRhLFxyXG4gICAgICB9LFxyXG4gICAgICB3aW5kb3cubG9jYXRpb24ub3JpZ2luLFxyXG4gICAgKTtcclxuICB9IGVsc2Uge1xyXG4gICAgd2luZG93Lmhpc3RvcnkucHVzaFN0YXRlKHt9LCAnJywgcGF0aCk7XHJcbiAgICB3aW5kb3cuaGlzdG9yeS5nbygpXHJcbiAgfVxyXG59O1xyXG5pbnRlcmZhY2UgUHJvcHMge1xyXG4gIHRhYmxlQ29kZTogc3RyaW5nO1xyXG4gIGNsYXNzTmFtZT86IGFueTtcclxuICBtZW51Q29kZT86IHN0cmluZztcclxuICBmdW5jcz86IGFueVxyXG59XHJcbmV4cG9ydCBkZWZhdWx0ICh7IHRhYmxlQ29kZSwgY2xhc3NOYW1lLCBtZW51Q29kZSwgZnVuY3MgPSB7fSB9OiBQcm9wcykgPT4ge1xyXG4gIGNvbnN0IFtwYWdlUHJvcHMsIHNldFBhZ2VQcm9wc10gPSB1c2VTdGF0ZSh7fSBhcyBhbnkpO1xyXG4gIGNvbnN0IFt0cmVlUHJvcHMsIHNldFRyZWVQcm9wc10gPSB1c2VTdGF0ZSh7XHJcbiAgICBzdG9yZTogeyB1cmw6IFwiXCIsIGF1dG9Mb2FkOiBmYWxzZSB9LFxyXG4gIH0gYXMgYW55KTtcclxuICBjb25zdCBbdGFibGVQcm9wcywgc2V0VGFibGVQcm9wc10gPSB1c2VTdGF0ZSh7fSBhcyBhbnkpO1xyXG4gIGNvbnN0IFtzZWxmVG9vbEJ1dHRvbiwgc2V0U2VsZlRvb2xCdXR0b25dID0gdXNlU3RhdGUoW10gYXMgYW55KTtcclxuICBjb25zdCBbc2VsZkNvbHVtbkJ1dHRvbiwgc2V0U2VsZkNvbHVtbkJ1dHRvbl0gPSB1c2VTdGF0ZShbXSBhcyBhbnkpO1xyXG4gIGNvbnN0IFtwYWdlTG9hZGluZywgc2V0UGFnZUxvYWRpbmddID0gdXNlU3RhdGUodHJ1ZSk7XHJcbiAgY29uc3QgcGFnZVJlZjogYW55ID0gUmVhY3QudXNlUmVmKG51bGwpO1xyXG4gIGNvbnN0IFtkZWZhdWx0Q29sdW1ucywgc2V0RGVmYXVsdENvbHVtbnNdID0gdXNlU3RhdGUoW10gYXMgYW55KTtcclxuXHJcbiAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgIHNldFBhZ2VMb2FkaW5nKHRydWUpO1xyXG4gICAgaWYgKHRhYmxlQ29kZSkge1xyXG4gICAgICBnZXRQYWdlRGF0YSh7IGNvZGU6IHRhYmxlQ29kZSwgaXNQdWJsaXNoZWQ6IDEgfSkudGhlbigocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzLmNvZGUgPT0gMjAwICYmIHJlcy5kYXRhKSB7XHJcbiAgICAgICAgICBsZXQgdGFibGVfcHJvcHMgPSBKU09OLnBhcnNlKHJlcy5kYXRhLnRhYmxlUHJvcHMgfHwgXCJ7fVwiKSB8fCB7fTtcclxuICAgICAgICAgIGxldCB0cmVlX3Byb3BzID0gSlNPTi5wYXJzZShyZXMuZGF0YS50cmVlUHJvcHMgfHwgXCJ7fVwiKSB8fCB7fTtcclxuICAgICAgICAgIGxldCBwYWdlX3Byb3BzID0gSlNPTi5wYXJzZShyZXMuZGF0YS5wYWdlUHJvcHMgfHwgXCJ7fVwiKSB8fCB7fTtcclxuICAgICAgICAgIGlmIChwYWdlX3Byb3BzLnBlcm1pc3Npb24/LmhhcyA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIHBhZ2VfcHJvcHMucGVybWlzc2lvbi5tZW51Q29kZSA9IG1lbnVDb2RlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgc2V0VGFibGVQcm9wcyh7XHJcbiAgICAgICAgICAgIC4uLnRhYmxlX3Byb3BzLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBzZXRQYWdlUHJvcHMocGFnZV9wcm9wcyk7XHJcbiAgICAgICAgICBzZXRUcmVlUHJvcHMoe1xyXG4gICAgICAgICAgICAuLi50cmVlX3Byb3BzLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBzZXRTZWxmQ29sdW1uQnV0dG9uKEpTT04ucGFyc2UocmVzLmRhdGEuY29sdW1uQnV0dG9ucykgfHwgW10pO1xyXG4gICAgICAgICAgc2V0U2VsZlRvb2xCdXR0b24oSlNPTi5wYXJzZShyZXMuZGF0YS50b29sQnV0dG9ucykgfHwgW10pO1xyXG4gICAgICAgICAgc2V0RGVmYXVsdENvbHVtbnMocGFnZV9wcm9wcy5jb2x1bW5zKTtcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBzZXRQYWdlTG9hZGluZyhmYWxzZSk7XHJcbiAgICAgICAgICB9LCAzMDApO1xyXG4gICAgICAgIH0gZWxzZSBpZiAocmVzLmNvZGUgPT0gMjAwICYmIHJlcy5kYXRhID09IG51bGwpIHtcclxuICAgICAgICAgIG1lc3NhZ2UuZXJyb3IoXCLmnKrmib7liLDphY3nva7kv6Hmga/vvIFcIik7XHJcbiAgICAgICAgICBzZXRQYWdlTG9hZGluZyhmYWxzZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHNldFBhZ2VMb2FkaW5nKGZhbHNlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgc2V0UGFnZUxvYWRpbmcoZmFsc2UpO1xyXG4gICAgfVxyXG4gIH0sIFt0YWJsZUNvZGVdKTtcclxuICBjb25zdCBkZWF1bHRGdW5jcyA9IHtcclxuICAgIHNldEZpZWxkRGlzYWJsZWQ6IChrZXksIGRpc2FibGVkKSA9PiB7XHJcbiAgICAgIGNvbnN0IG5ld0RhdGEgPSBzZXRGaWVsZERpc2FibGVkKFxyXG4gICAgICAgIHBhZ2VQcm9wcy5jb2x1bW5zLFxyXG4gICAgICAgIGtleSxcclxuICAgICAgICBkaXNhYmxlZFxyXG4gICAgICApO1xyXG4gICAgICBzZXRQYWdlUHJvcHMoeyAuLi5wYWdlUHJvcHMsIGNvbHVtbnM6IG5ld0RhdGEgfSk7XHJcbiAgICB9LFxyXG4gICAgc2V0RmllbGRWaXNpYmxlOiAoa2V5LCBkaXNhYmxlZCkgPT4ge1xyXG4gICAgICBjb25zdCBuZXdEYXRhID0gc2V0RmllbGRWaXNpYmxlKHBhZ2VQcm9wcy5jb2x1bW5zLCBrZXksIGRpc2FibGVkKTtcclxuICAgICAgc2V0UGFnZVByb3BzKHsgLi4ucGFnZVByb3BzLCBjb2x1bW5zOiBuZXdEYXRhIH0pO1xyXG4gICAgfSxcclxuICAgIHNldEZpZWxkUHJvcHNEYXRhOiAoa2V5LCBkYXRhKSA9PiB7XHJcbiAgICAgIGNvbnN0IG5ld0RhdGEgPSBzZXRGaWVsZFByb3BzRGF0YShwYWdlUHJvcHMuY29sdW1ucywga2V5LCBkYXRhKTtcclxuICAgICAgc2V0UGFnZVByb3BzKHsgLi4ucGFnZVByb3BzLCBjb2x1bW5zOiBuZXdEYXRhIH0pO1xyXG4gICAgfSxcclxuICAgIGhpc3Rvcnk6IChwYXJhbXMsIHR5cGUpID0+IHtcclxuICAgICAganVtcFBhZ2UocGFyYW1zLCB0eXBlKVxyXG4gICAgfSxcclxuICAgIC4uLmZ1bmNzXHJcbiAgfVxyXG4gIHJldHVybiAoXHJcbiAgICA8ZGl2IGNsYXNzTmFtZT17Y2xzKFwibnNjLWZyYW1ld29yay10YWJsZXBhZ2VcIiwgY2xhc3NOYW1lKX0+XHJcbiAgICAgIHtwYWdlTG9hZGluZyA/IChcclxuICAgICAgICA8ZGl2IHN0eWxlPXt7IHdpZHRoOiBcIjEwMCVcIiwgaGVpZ2h0OiBcIjEwMCVcIiB9fT5cclxuICAgICAgICAgIDxTcGluIHNwaW5uaW5nPXtwYWdlTG9hZGluZ30+PC9TcGluPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICApIDogKFxyXG4gICAgICAgIDxCYXNlUGFnZVxyXG4gICAgICAgICAgey4uLnBhZ2VQcm9wc31cclxuICAgICAgICAgIHRyZWVQcm9wcz17eyAuLi50cmVlUHJvcHMgfX1cclxuICAgICAgICAgIHRhYmxlUHJvcHM9e3sgLi4udGFibGVQcm9wcyB9fVxyXG4gICAgICAgICAgZm9ybVByb3BzPXt7fX1cclxuICAgICAgICAgIFV0aWxzPXt7IE5zY0NvbSwgTnNjRmlsZSwgTnNjUmVxdWVzdCwgTnNjVXRpbHMgfX1cclxuICAgICAgICAgIHJlZj17cGFnZVJlZn1cclxuICAgICAgICAgIHBhZ2VSZWY9e3BhZ2VSZWZ9XHJcbiAgICAgICAgICBvbkhpZGVGb3JtPXsoKSA9PiB7XHJcbiAgICAgICAgICAgIHNldFBhZ2VQcm9wcyh7IC4uLnBhZ2VQcm9wcywgY29sdW1uczogZGVmYXVsdENvbHVtbnMgfSk7XHJcbiAgICAgICAgICAgIHBhZ2VSZWYuY3VycmVudD8uaGlkZUZvcm0oKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgICBmdW5jcz17eyAuLi5kZWF1bHRGdW5jcywgLi4uZnVuY3MgfX1cclxuICAgICAgICA+XHJcbiAgICAgICAgICB7cmVuZGVyU2VsZlRvb2xCdXR0b24oeyBzZWxmVG9vbEJ1dHRvbiwgcGFnZVJlZiwgZnVuY3M6IHsgLi4uZGVhdWx0RnVuY3MsIC4uLmZ1bmNzIH0gfSl9XHJcbiAgICAgICAgICB7cmVuZGVyU2VsZkNvbHVtbkJ1dHRvbih7IHNlbGZDb2x1bW5CdXR0b24sIHBhZ2VSZWYsIGZ1bmNzOiB7IC4uLmRlYXVsdEZ1bmNzLCAuLi5mdW5jcyB9IH0pfVxyXG4gICAgICAgIDwvQmFzZVBhZ2U+XHJcbiAgICAgICl9XHJcbiAgICA8L2Rpdj5cclxuICApO1xyXG59O1xyXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxTQUFTQSxTQUFTLEVBQUVDLFFBQVEsUUFBUSxPQUFPO0FBQzNDLE9BQU9DLFFBQVEsTUFBTSxhQUFhO0FBQ2xDLE9BQU9DLElBQUksTUFBTSxpQkFBaUI7QUFDbEMsT0FBT0MsTUFBTSxNQUFN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
273
+ }
274
+ render() {
275
+ const {
276
+ className,
277
+ funcs = {}
278
+ } = this.props;
279
+ const {
280
+ pageProps,
281
+ treeProps,
282
+ tableProps,
283
+ selfToolButton,
284
+ selfColumnButton,
285
+ pageLoading,
286
+ defaultColumns
287
+ } = this.state;
288
+ const deaultFuncs = {
289
+ setFieldDisabled: (key, disabled) => {
290
+ const newData = setFieldDisabled(pageProps.columns, key, disabled);
291
+ this.setState({
292
+ pageProps: _objectSpread(_objectSpread({}, pageProps), {}, {
293
+ columns: newData
294
+ })
295
+ });
296
+ },
297
+ setFieldVisible: (key, disabled) => {
298
+ const newData = setFieldVisible(pageProps.columns, key, disabled);
299
+ this.setState({
300
+ pageProps: _objectSpread(_objectSpread({}, pageProps), {}, {
301
+ columns: newData
302
+ })
303
+ });
304
+ },
305
+ setFieldPropsData: (key, data) => {
306
+ const newData = setFieldPropsData(pageProps.columns, key, data);
307
+ this.setState({
308
+ pageProps: _objectSpread(_objectSpread({}, pageProps), {}, {
309
+ columns: newData
310
+ })
311
+ });
312
+ },
313
+ history: (params, type) => {
314
+ jumpPage(params, type);
315
+ },
316
+ getCurrentProject: () => {
317
+ return getProject();
318
+ }
319
+ };
320
+ return /*#__PURE__*/React.createElement("div", {
321
+ className: cls("nsc-framework-tablepage", className)
322
+ }, pageLoading ? /*#__PURE__*/React.createElement("div", {
323
+ style: {
324
+ width: "100%",
325
+ height: "100%"
326
+ }
327
+ }, /*#__PURE__*/React.createElement(Spin, {
328
+ spinning: pageLoading
329
+ })) : /*#__PURE__*/React.createElement(BasePage, _extends({}, pageProps, {
330
+ treeProps: _objectSpread({}, treeProps),
331
+ tableProps: _objectSpread({}, tableProps),
332
+ formProps: {},
333
+ Utils: {
334
+ NscCom,
335
+ NscFile,
336
+ NscRequest,
337
+ NscUtils
338
+ },
339
+ ref: this.pageRef,
340
+ pageRef: this.pageRef,
341
+ onHideForm: () => {
342
+ var _this$pageRef$current;
343
+ this.setState({
344
+ pageProps: _objectSpread(_objectSpread({}, pageProps), {}, {
345
+ columns: defaultColumns
346
+ })
347
+ });
348
+ // setPageProps({ ...pageProps, columns: defaultColumns });
349
+ (_this$pageRef$current = this.pageRef.current) === null || _this$pageRef$current === void 0 || _this$pageRef$current.hideForm();
350
+ },
351
+ funcs: _objectSpread(_objectSpread({}, deaultFuncs), funcs)
352
+ }), renderSelfToolButton({
353
+ selfToolButton,
354
+ pageRef: this.pageRef,
355
+ funcs: _objectSpread(_objectSpread({}, deaultFuncs), funcs)
356
+ }), renderSelfColumnButton({
357
+ selfColumnButton,
358
+ pageRef: this.pageRef,
359
+ funcs: _objectSpread(_objectSpread({}, deaultFuncs), funcs)
360
+ })));
361
+ }
362
+ }
363
+
364
+ // const Index = ({ tableCode, className, menuCode, funcs = {}, published = true, instanceRef }: IProps) => {
365
+ // const [pageProps, setPageProps] = useState({} as any);
366
+ // const [treeProps, setTreeProps] = useState({
367
+ // store: { url: "", autoLoad: false },
368
+ // } as any);
369
+ // const [tableProps, setTableProps] = useState({} as any);
370
+ // const [selfToolButton, setSelfToolButton] = useState([] as any);
371
+ // const [selfColumnButton, setSelfColumnButton] = useState([] as any);
372
+ // const [pageLoading, setPageLoading] = useState(true);
373
+ // const pageRef: any = React.useRef(null);
374
+ // const [defaultColumns, setDefaultColumns] = useState([] as any);
375
+
376
+ // useEffect(() => {
377
+ // console.log("instanceRef", instanceRef)
378
+ // setPageLoading(true);
379
+ // if (tableCode) {
380
+ // let params = { code: tableCode } as any
381
+ // if (published) {
382
+ // params.isPublished = 1
383
+ // }
384
+ // getPageData({ ...params }).then((res: any) => {
385
+ // if (res.code == 200 && res.data) {
386
+ // let table_props = JSON.parse(res.data.tableProps || "{}") || {};
387
+ // let tree_props = JSON.parse(res.data.treeProps || "{}") || {};
388
+ // let page_props = JSON.parse(res.data.pageProps || "{}") || {};
389
+ // if (page_props.permission?.has == true) {
390
+ // page_props.permission.menuCode = menuCode;
391
+ // }
392
+ // setTableProps({
393
+ // ...table_props,
394
+ // });
395
+ // setPageProps(page_props);
396
+ // setTreeProps({
397
+ // ...tree_props,
398
+ // });
399
+ // setSelfColumnButton(JSON.parse(res.data.columnButtons) || []);
400
+ // setSelfToolButton(JSON.parse(res.data.toolButtons) || []);
401
+ // setDefaultColumns(page_props.columns);
402
+ // setTimeout(() => {
403
+ // setPageLoading(false);
404
+ // }, 300);
405
+ // } else if (res.code == 200 && res.data == null) {
406
+ // message.error("未找到配置信息!");
407
+ // setPageLoading(false);
408
+ // } else {
409
+ // setPageLoading(false);
410
+ // }
411
+ // });
412
+ // } else {
413
+ // setPageLoading(false);
414
+ // }
415
+ // }, [tableCode]);
416
+ // useImperativeHandle(instanceRef, () => ({
417
+
418
+ // }));
419
+ // const deaultFuncs = {
420
+ // setFieldDisabled: (key, disabled) => {
421
+ // const newData = setFieldDisabled(
422
+ // pageProps.columns,
423
+ // key,
424
+ // disabled
425
+ // );
426
+ // setPageProps({ ...pageProps, columns: newData });
427
+ // },
428
+ // setFieldVisible: (key, disabled) => {
429
+ // const newData = setFieldVisible(pageProps.columns, key, disabled);
430
+ // setPageProps({ ...pageProps, columns: newData });
431
+ // },
432
+ // setFieldPropsData: (key, data) => {
433
+ // const newData = setFieldPropsData(pageProps.columns, key, data);
434
+ // setPageProps({ ...pageProps, columns: newData });
435
+ // },
436
+ // history: (params, type) => {
437
+ // jumpPage(params, type)
438
+ // },
439
+ // getCurrentProject: () => {
440
+ // return getProject()
441
+ // },
442
+ // ...funcs
443
+ // }
444
+ // return (
445
+ // <div className={cls("nsc-framework-tablepage", className)}>
446
+ // {pageLoading ? (
447
+ // <div style={{ width: "100%", height: "100%" }}>
448
+ // <Spin spinning={pageLoading}></Spin>
449
+ // </div>
450
+ // ) : (
451
+ // <BasePage
452
+ // {...pageProps}
453
+ // treeProps={{ ...treeProps }}
454
+ // tableProps={{ ...tableProps }}
455
+ // formProps={{}}
456
+ // Utils={{ NscCom, NscFile, NscRequest, NscUtils }}
457
+ // ref={pageRef}
458
+ // pageRef={pageRef}
459
+ // onHideForm={() => {
460
+ // setPageProps({ ...pageProps, columns: defaultColumns });
461
+ // pageRef.current?.hideForm();
462
+ // }}
463
+ // funcs={{ ...deaultFuncs, ...funcs }}
464
+ // >
465
+ // {renderSelfToolButton({ selfToolButton, pageRef, funcs: { ...deaultFuncs, ...funcs } })}
466
+ // {renderSelfColumnButton({ selfColumnButton, pageRef, funcs: { ...deaultFuncs, ...funcs } })}
467
+ // </BasePage>
468
+ // )}
469
+ // </div>
470
+ // );
471
+ // };
472
+ // export default forwardRef<any, IProps>(
473
+ // (props, ref) => {
474
+ // return <Index {...props} instanceRef={ref} />;
475
+ // },
476
+ // );
477
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCYXNlUGFnZSIsIlNwaW4iLCJCdXR0b24iLCJSZWFjdCIsIk5zY0NvbSIsIk5zY0ZpbGUiLCJOc2NSZXF1ZXN0IiwiTnNjVXRpbHMiLCJjbHMiLCJxdWVyeVN0cmluZyIsImdldExvY2FsU3RvcmUiLCJyZW5kZXJTZWxmVG9vbEJ1dHRvbiIsIl9yZWYiLCJzZWxmVG9vbEJ1dHRvbiIsInBhZ2VSZWYiLCJmdW5jcyIsImxlbmd0aCIsIm1hcCIsIml0ZW0iLCJpbmRleCIsImNyZWF0ZUVsZW1lbnQiLCJwYWdlVHlwZSIsImtleSIsInR5cGUiLCJvbkNsaWNrIiwiVXRpbHMiLCJldmVudE9wdGlvbiIsImZ1bmMiLCJGdW5jdGlvbiIsImNvZGUiLCJuYW1lIiwicmVuZGVyU2VsZkNvbHVtbkJ1dHRvbiIsIl9yZWYyIiwic2VsZkNvbHVtbkJ1dHRvbiIsInJlY29yZCIsInJlY29yZFNob3ciLCJnZXRQYWdlRGF0YSIsInBhcmFtcyIsImdldCIsInhzc0ZpbHRlciIsImF1dG9QcmVmaXgiLCJzZXRGaWVsZERpc2FibGVkIiwiZGF0YSIsImRpc2FibGVkIiwiY29sdW1ucyIsIm5ld0NvbHVtbnMiLCJvYmoiLCJfb2JqZWN0U3ByZWFkIiwiZGF0YUluZGV4IiwiaW5kZXhPZiIsInByb3BzIiwicHVzaCIsInNldEZpZWxkVmlzaWJsZSIsInZpc2libGUiLCJlZGl0b3IiLCJzZXRGaWVsZFByb3BzRGF0YSIsInByb3BzRGF0YSIsImp1bXBQYWdlIiwicGF0aG5hbWUiLCJxdWVyeSIsImlkIiwidGl0bGUiLCJzZXJ2aWNlTmFtZSIsInNlcnZpY2VQYXRoIiwib3BlblR5cGUiLCJuZXdRdWVyeSIsInVybFBhcmFtcyIsInN0cmluZ2lmeSIsInBhdGgiLCJjb25jYXQiLCJ3aW5kb3ciLCJfX1BPV0VSRURfQllfUUlBTktVTl9fIiwicGFyZW50IiwicG9zdE1lc3NhZ2UiLCJldmVudFR5cGUiLCJwYXlsb2FkIiwibG9jYXRpb24iLCJvcmlnaW4iLCJoaXN0b3J5IiwicHVzaFN0YXRlIiwiZ28iLCJnZXRQcm9qZWN0IiwicHJvamVjdCIsIlNldHRpbmdUYWJsZSIsIkNvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwiYXJndW1lbnRzIiwiX2RlZmluZVByb3BlcnR5IiwicGFnZVByb3BzIiwidHJlZVByb3BzIiwic3RvcmUiLCJ1cmwiLCJhdXRvTG9hZCIsInRhYmxlUHJvcHMiLCJwYWdlTG9hZGluZyIsImRlZmF1bHRDb2x1bW5zIiwiY3JlYXRlUmVmIiwiY29tcG9uZW50RGlkTW91bnQiLCJnZXREYXRhIiwiY29tcG9uZW50RGlkVXBkYXRlIiwicHJldlByb3BzIiwicHJldlN0YXRlIiwic25hcHNob3QiLCJ0YWJsZUNvZGUiLCJwdWJsaXNoZWQiLCJtZW51Q29kZSIsImlzUHVibGlzaGVkIiwidGhlbiIsInJlcyIsIl9wYWdlX3Byb3BzJHBlcm1pc3NpbyIsInRhYmxlX3Byb3BzIiwiSlNPTiIsInBhcnNlIiwidHJlZV9wcm9wcyIsInBhZ2VfcHJvcHMiLCJwZXJtaXNzaW9uIiwiaGFzIiwiY29uc29sZSIsImxvZyIsInNldFN0YXRlIiwiY29sdW1uQnV0dG9ucyIsInRvb2xCdXR0b25zIiwiX21lc3NhZ2UiLCJlcnJvciIsInJlbmRlciIsImNsYXNzTmFtZSIsInN0YXRlIiwiZGVhdWx0RnVuY3MiLCJuZXdEYXRhIiwiZ2V0Q3VycmVudFByb2plY3QiLCJzdHlsZSIsIndpZHRoIiwiaGVpZ2h0Iiwic3Bpbm5pbmciLCJfZXh0ZW5kcyIsImZvcm1Qcm9wcyIsInJlZiIsIm9uSGlkZUZvcm0iLCJfdGhpcyRwYWdlUmVmJGN1cnJlbnQiLCJjdXJyZW50IiwiaGlkZUZvcm0iXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9wYWdlL1NldHRpbmdUYWJsZS9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZm9yd2FyZFJlZiwgdXNlRWZmZWN0LCB1c2VJbXBlcmF0aXZlSGFuZGxlLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgQmFzZVBhZ2UgZnJvbSBcIi4uL0Jhc2VQYWdlXCI7XHJcbmltcG9ydCBTcGluIGZyb20gXCIuLi8uLi9iYXNlL3NwaW5cIjtcclxuaW1wb3J0IEJ1dHRvbiBmcm9tIFwiLi4vLi4vYmFzZS9idXR0b25cIjtcclxuaW1wb3J0IFwiLi9pbmRleC5sZXNzXCI7XHJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0ICogYXMgTnNjQ29tIGZyb20gXCIuL2NvbVwiO1xyXG5pbXBvcnQgTnNjRmlsZSBmcm9tIFwibnNjLWZpbGVcIjtcclxuaW1wb3J0IE5zY1JlcXVlc3QgZnJvbSBcIm5zYy1yZXF1ZXN0XCI7XHJcbmltcG9ydCAqIGFzIE5zY1V0aWxzIGZyb20gXCJAYmotbnNjL2Z1bmN0aW9uc1wiO1xyXG5pbXBvcnQgY2xzIGZyb20gXCJjbGFzc25hbWVzXCI7XHJcbmltcG9ydCB7IG1lc3NhZ2UgfSBmcm9tIFwiYW50ZFwiO1xyXG5pbXBvcnQgcXVlcnlTdHJpbmcgZnJvbSAncXVlcnktc3RyaW5nJ1xyXG5pbXBvcnQgeyBnZXRMb2NhbFN0b3JlIH0gZnJvbSAnQGJqLW5zYy9mdW5jdGlvbnMnXHJcbi8vIGltcG9ydCB7IGhpc3RvcnkgfSBmcm9tICd1bWknXHJcbi8vIGltcG9ydCB7IGdldENvbmZpZ0RhdGEgfSBmcm9tICcuLi9zZXJ2aWNlcyc7XHJcbmNvbnN0IHJlbmRlclNlbGZUb29sQnV0dG9uID0gKHsgc2VsZlRvb2xCdXR0b24sIHBhZ2VSZWYsIGZ1bmNzIH0pID0+IHtcclxuICBpZiAoc2VsZlRvb2xCdXR0b24ubGVuZ3RoID09IDApIHtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH0gZWxzZSB7XHJcbiAgICByZXR1cm4gc2VsZlRvb2xCdXR0b24ubWFwKChpdGVtOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICA8QnV0dG9uXHJcbiAgICAgICAgICBwYWdlVHlwZT1cInRvb2xCdXR0b25cIlxyXG4gICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgIHR5cGU9e2l0ZW0udHlwZX1cclxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgbGV0IFV0aWxzID0geyBOc2NDb20sIE5zY0ZpbGUsIE5zY1JlcXVlc3QsIE5zY1V0aWxzIH07XHJcbiAgICAgICAgICAgIGxldCBldmVudE9wdGlvbiA9IHsgcGFnZVJlZjogcGFnZVJlZiwgZnVuY3M6IGZ1bmNzIH07XHJcbiAgICAgICAgICAgIGNvbnN0IGZ1bmMgPSBuZXcgRnVuY3Rpb24oXCJVdGlscyxldmVudE9wdGlvblwiLCBpdGVtLm9uQ2xpY2spO1xyXG4gICAgICAgICAgICBmdW5jKFV0aWxzLCBldmVudE9wdGlvbik7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgICAgY29kZT17aXRlbS5jb2RlfVxyXG4gICAgICAgID5cclxuICAgICAgICAgIHtpdGVtLm5hbWV9XHJcbiAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICk7XHJcbiAgICB9KTtcclxuICB9XHJcbn07XHJcblxyXG5jb25zdCByZW5kZXJTZWxmQ29sdW1uQnV0dG9uID0gKHsgc2VsZkNvbHVtbkJ1dHRvbiwgcGFnZVJlZiwgZnVuY3MgfSkgPT4ge1xyXG4gIGlmIChzZWxmQ29sdW1uQnV0dG9uLmxlbmd0aCA9PSAwKSB7XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9IGVsc2Uge1xyXG4gICAgcmV0dXJuIHNlbGZDb2x1bW5CdXR0b24ubWFwKChpdGVtOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICA8QnV0dG9uXHJcbiAgICAgICAgICBwYWdlVHlwZT1cImNvbHVtbkJ1dHRvblwiXHJcbiAgICAgICAgICBrZXk9e2luZGV4fVxyXG4gICAgICAgICAgdHlwZT17aXRlbS50eXBlfVxyXG4gICAgICAgICAgb25DbGljaz17KHJlY29yZCkgPT4ge1xyXG4gICAgICAgICAgICBsZXQgVXRpbHMgPSB7IE5zY0NvbSwgTnNjRmlsZSwgTnNjUmVxdWVzdCwgTnNjVXRpbHMgfTtcclxuICAgICAgICAgICAgbGV0IGV2ZW50T3B0aW9uID0geyBwYWdlUmVmOiBwYWdlUmVmLCByZWNvcmQ6IHJlY29yZCwgZnVuY3M6IGZ1bmNzIH07XHJcbiAgICAgICAgICAgIGNvbnN0IGZ1bmMgPSBuZXcgRnVuY3Rpb24oXCJVdGlscyxldmVudE9wdGlvblwiLCBpdGVtLm9uQ2xpY2spO1xyXG4gICAgICAgICAgICBmdW5jKFV0aWxzLCBldmVudE9wdGlvbik7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgICAgY29kZT17aXRlbS5jb2RlfVxyXG4gICAgICAgICAgcmVjb3JkU2hvdz17aXRlbS5yZWNvcmRTaG93fVxyXG4gICAgICAgID5cclxuICAgICAgICAgIHtpdGVtLm5hbWV9XHJcbiAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICk7XHJcbiAgICB9KTtcclxuICB9XHJcbn07XHJcblxyXG5jb25zdCBnZXRQYWdlRGF0YSA9IChwYXJhbXM6IGFueSkgPT4ge1xyXG4gIHJldHVybiBOc2NSZXF1ZXN0LmdldChgL2pxdWljay1zZXR0aW5nL3NldHRpbmcvdGFibGUvaW5mby9gLCB7XHJcbiAgICBwYXJhbXMsXHJcbiAgICB4c3NGaWx0ZXI6IGZhbHNlLFxyXG4gICAgYXV0b1ByZWZpeDogdHJ1ZSxcclxuICB9KTtcclxufTtcclxuXHJcbi8v6K6+572u6KGo5Y2V5a2X5q615Y+q6K+7XHJcbmNvbnN0IHNldEZpZWxkRGlzYWJsZWQgPSAoZGF0YTogQXJyYXk8YW55Piwga2V5LCBkaXNhYmxlZCkgPT4ge1xyXG4gIGNvbnN0IGNvbHVtbnMgPSBbLi4uZGF0YV07XHJcbiAgbGV0IG5ld0NvbHVtbnMgPSBbXSBhcyBhbnk7XHJcbiAgY29sdW1ucy5tYXAoKGl0ZW0pID0+IHtcclxuICAgIGxldCBvYmogPSB7IC4uLml0ZW0gfTtcclxuICAgIGlmIChpdGVtLmRhdGFJbmRleCA9PSBrZXkgfHwga2V5LmluZGV4T2YoaXRlbS5kYXRhSW5kZXgpID4gLTEpIHtcclxuICAgICAgbGV0IHByb3BzID0gb2JqLnByb3BzID8geyAuLi5vYmoucHJvcHMgfSA6IHt9O1xyXG4gICAgICBwcm9wcy5kaXNhYmxlZCA9IGRpc2FibGVkO1xyXG4gICAgICBvYmoucHJvcHMgPSBwcm9wcztcclxuICAgIH1cclxuICAgIG5ld0NvbHVtbnMucHVzaChvYmopO1xyXG4gIH0pO1xyXG4gIHJldHVybiBuZXdDb2x1bW5zO1xyXG59O1xyXG4vL+iuvue9ruihqOWNleWtl+autemakOiXj1xyXG5jb25zdCBzZXRGaWVsZFZpc2libGUgPSAoZGF0YTogQXJyYXk8YW55Piwga2V5LCB2aXNpYmxlKSA9PiB7XHJcbiAgY29uc3QgY29sdW1ucyA9IFsuLi5kYXRhXTtcclxuICBsZXQgbmV3Q29sdW1ucyA9IFtdIGFzIGFueTtcclxuICBjb2x1bW5zLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgbGV0IG9iaiA9IHsgLi4uaXRlbSB9O1xyXG4gICAgaWYgKGl0ZW0uZGF0YUluZGV4ID09IGtleSB8fCBrZXkuaW5kZXhPZihpdGVtLmRhdGFJbmRleCkgPiAtMSkge1xyXG4gICAgICBvYmouZWRpdG9yID0gdmlzaWJsZTtcclxuICAgIH1cclxuICAgIG5ld0NvbHVtbnMucHVzaChvYmopO1xyXG4gIH0pO1xyXG4gIHJldHVybiBuZXdDb2x1bW5zO1xyXG59O1xyXG5cclxuY29uc3Qgc2V0RmllbGRQcm9wc0RhdGEgPSAoZGF0YTogQXJyYXk8YW55Piwga2V5LCBwcm9wc0RhdGEpID0+IHtcclxuICBjb25zdCBjb2x1bW5zID0gWy4uLmRhdGFdO1xyXG4gIGxldCBuZXdDb2x1bW5zID0gW10gYXMgYW55O1xyXG4gIGNvbHVtbnMubWFwKChpdGVtKSA9PiB7XHJcbiAgICBsZXQgb2JqID0geyAuLi5pdGVtIH07XHJcbiAgICBpZiAoaXRlbS5kYXRhSW5kZXggPT0ga2V5KSB7XHJcbiAgICAgIGxldCBwcm9wcyA9IG9iai5wcm9wcyA/IHsgLi4ub2JqLnByb3BzIH0gOiB7fTtcclxuICAgICAgcHJvcHMuZGF0YSA9IHByb3BzRGF0YTtcclxuICAgICAgb2JqLnByb3BzID0gcHJvcHM7XHJcbiAgICB9XHJcbiAgICBuZXdDb2x1bW5zLnB1c2gob2JqKTtcclxuICB9KTtcclxuICByZXR1cm4gbmV3Q29sdW1ucztcclxufTtcclxuaW50ZXJmYWNlIElQYXJhbXMge1xyXG4gIHBhdGhuYW1lPzogc3RyaW5nO1xyXG4gIHF1ZXJ5PzogYW55O1xyXG4gIGlkPzogc3RyaW5nO1xyXG4gIHNlcnZpY2VOYW1lPzogc3RyaW5nO1xyXG4gIHRpdGxlPzogc3RyaW5nO1xyXG4gIHNlcnZpY2VQYXRoPzogc3RyaW5nO1xyXG4gIG1lbnVDb2RlPzogc3RyaW5nO1xyXG4gIG9wZW5UeXBlPzogbnVtYmVyO1xyXG59XHJcbmNvbnN0IGp1bXBQYWdlID0gKHBhcmFtczogSVBhcmFtcywgdHlwZT86ICdhZGRUYWInIHwgJ2p1bXBNZW51JykgPT4ge1xyXG4gIGNvbnN0IHtcclxuICAgIHBhdGhuYW1lLFxyXG4gICAgcXVlcnkgPSB7fSxcclxuICAgIGlkLFxyXG4gICAgdGl0bGUsXHJcbiAgICBzZXJ2aWNlTmFtZSxcclxuICAgIHNlcnZpY2VQYXRoLFxyXG4gICAgb3BlblR5cGUsXHJcbiAgfSA9IHBhcmFtcztcclxuICBjb25zdCBuZXdRdWVyeSA9IHsgLi4ucXVlcnkgfSBhcyBhbnk7XHJcbiAgY29uc3QgdXJsUGFyYW1zID0gcXVlcnlTdHJpbmcuc3RyaW5naWZ5KG5ld1F1ZXJ5KTtcclxuICBjb25zdCBwYXRoID0gdXJsUGFyYW1zID8gYCR7cGF0aG5hbWV9PyR7dXJsUGFyYW1zfWAgOiBwYXRobmFtZTtcclxuICAvL0B0cy1pZ25vcmVcclxuICBpZiAod2luZG93Ll9fUE9XRVJFRF9CWV9RSUFOS1VOX18pIHtcclxuICAgIGNvbnN0IGRhdGEgPSB7XHJcbiAgICAgIHRpdGxlOiB0aXRsZSB8fCAn5paw5qCH562+JyxcclxuICAgICAgc2VydmljZU5hbWU6IHNlcnZpY2VOYW1lLCAvL+mFjee9rueahOW+ruW6lOeUqOWQjeensFxyXG4gICAgICBzZXJ2aWNlUGF0aDogc2VydmljZVBhdGgsIC8v6YWN572u55qE5b6u5bqU55So5YWl5Y+j5Zyw5Z2AXHJcbiAgICAgIHBhdGg6IHBhdGgsIC8v5paw5qCH562+55qEdXJsLOayoemFjee9rnNlcnZpY2VOYW1lIHBhdGjkuLrlrozmlbTot6/lvoRcclxuICAgICAgaWQ6IGlkLCAvL+iHquWumuS5ieWUr+S4gOWAvFxyXG4gICAgICBvcGVuVHlwZTogb3BlblR5cGUgPyBvcGVuVHlwZSA6IDQsIC8v5omT5byA5pa55byPIDTkvY3lvq7liY3nq68sIDPkuLppZnJhbWUgLOm7mOiupCAzXHJcbiAgICB9O1xyXG4gICAgd2luZG93LnBhcmVudC5wb3N0TWVzc2FnZShcclxuICAgICAge1xyXG4gICAgICAgIGV2ZW50VHlwZTogdHlwZSA/IHR5cGUgOiAnYWRkVGFiJyxcclxuICAgICAgICBzZXJ2aWNlTmFtZTogc2VydmljZU5hbWUgPyBzZXJ2aWNlTmFtZSA6ICdzZXR0aW5nLXdlYicsXHJcbiAgICAgICAgcGF5bG9hZDogdHlwZSA/IHBhcmFtcyA6IGRhdGEsXHJcbiAgICAgIH0sXHJcbiAgICAgIHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4sXHJcbiAgICApO1xyXG4gIH0gZWxzZSB7XHJcbiAgICB3aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGUoe30sICcnLCBwYXRoKTtcclxuICAgIHdpbmRvdy5oaXN0b3J5LmdvKClcclxuICB9XHJcbn07XHJcbmNvbnN0IGdldFByb2plY3QgPSAoKSA9PiB7XHJcbiAgY29uc3QgcHJvamVjdCA9IGdldExvY2FsU3RvcmUoeyBuYW1lOiAnbnNjLWhvbWUtcHJvamVjdCcgfSkgfHwge31cclxuICByZXR1cm4gcHJvamVjdFxyXG59XHJcbmludGVyZmFjZSBJUHJvcHMge1xyXG4gIHRhYmxlQ29kZTogc3RyaW5nO1xyXG4gIGNsYXNzTmFtZT86IGFueTtcclxuICBtZW51Q29kZT86IHN0cmluZztcclxuICBmdW5jcz86IGFueVxyXG4gIHB1Ymxpc2hlZD86IGJvb2xlYW5cclxuICBpbnN0YW5jZVJlZj86IGFueVxyXG59XHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNldHRpbmdUYWJsZSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxJUHJvcHMsIGFueT4ge1xyXG4gIHN0YXRlID0ge1xyXG4gICAgcGFnZVByb3BzOiB7fSBhcyBhbnksXHJcbiAgICB0cmVlUHJvcHM6IHsgc3RvcmU6IHsgdXJsOiBcIlwiLCBhdXRvTG9hZDogZmFsc2UgfSwgfSBhcyBhbnksXHJcbiAgICB0YWJsZVByb3BzOiB7fSBhcyBhbnksXHJcbiAgICBzZWxmVG9vbEJ1dHRvbjogW10gYXMgYW55LFxyXG4gICAgc2VsZkNvbHVtbkJ1dHRvbjogW10gYXMgYW55LFxyXG4gICAgcGFnZUxvYWRpbmc6IHRydWUsXHJcbiAgICBkZWZhdWx0Q29sdW1uczogW10gYXMgYW55XHJcbiAgfVxyXG4gIHBhZ2VSZWYgPSBSZWFjdC5jcmVhdGVSZWY8YW55PigpO1xyXG5cclxuICBjb21wb25lbnREaWRNb3VudCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZ2V0RGF0YSgpXHJcbiAgfVxyXG5cclxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzOiBSZWFkb25seTxJUHJvcHM+LCBwcmV2U3RhdGU6IFJlYWRvbmx5PGFueT4sIHNuYXBzaG90PzogYW55KTogdm9pZCB7XHJcbiAgICBpZiAocHJldlByb3BzLnRhYmxlQ29kZSAhPSB0aGlzLnByb3BzLnRhYmxlQ29kZSkge1xyXG4gICAgICB0aGlzLmdldERhdGEoKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8g6I635Y+W5pWw5o2uXHJcbiAgZ2V0RGF0YSgpIHtcclxuICAgIC8vIOS7jnByb3Bz5Lit6I635Y+WdGFibGVDb2Rl44CBcHVibGlzaGVk44CBbWVudUNvZGVcclxuICAgIGNvbnN0IHsgdGFibGVDb2RlLCBwdWJsaXNoZWQgPSB0cnVlLCBtZW51Q29kZSB9ID0gdGhpcy5wcm9wc1xyXG4gICAgLy8g5aaC5p6cdGFibGVDb2Rl5a2Y5ZyoXHJcbiAgICBpZiAodGFibGVDb2RlKSB7XHJcbiAgICAgIC8vIOWumuS5ieWPguaVsFxyXG4gICAgICBsZXQgcGFyYW1zID0geyBjb2RlOiB0YWJsZUNvZGUgfSBhcyBhbnlcclxuICAgICAgLy8g5aaC5p6ccHVibGlzaGVk5Li6dHJ1ZVxyXG4gICAgICBpZiAocHVibGlzaGVkKSB7XHJcbiAgICAgICAgLy8g6K6+572u5Y+C5pWwaXNQdWJsaXNoZWTkuLoxXHJcbiAgICAgICAgcGFyYW1zLmlzUHVibGlzaGVkID0gMVxyXG4gICAgICB9XHJcbiAgICAgIC8vIOiwg+eUqGdldFBhZ2VEYXRh5pa55rOV6I635Y+W5pWw5o2uXHJcbiAgICAgIGdldFBhZ2VEYXRhKHsgLi4ucGFyYW1zIH0pLnRoZW4oKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcy5jb2RlID09IDIwMCAmJiByZXMuZGF0YSkge1xyXG4gICAgICAgICAgbGV0IHRhYmxlX3Byb3BzID0gSlNPTi5wYXJzZShyZXMuZGF0YS50YWJsZVByb3BzIHx8IFwie31cIikgfHwge307XHJcbiAgICAgICAgICBsZXQgdHJlZV9wcm9wcyA9IEpTT04ucGFyc2UocmVzLmRhdGEudHJlZVByb3BzIHx8IFwie31cIikgfHwge307XHJcbiAgICAgICAgICBsZXQgcGFnZV9wcm9wcyA9IEpTT04ucGFyc2UocmVzLmRhdGEucGFnZVByb3BzIHx8IFwie31cIikgfHwge307XHJcbiAgICAgICAgICBpZiAocGFnZV9wcm9wcy5wZXJtaXNzaW9uPy5oYXMgPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICBwYWdlX3Byb3BzLnBlcm1pc3Npb24ubWVudUNvZGUgPSBtZW51Q29kZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChwdWJsaXNoZWQgPT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgcGFnZV9wcm9wcy5wZXJtaXNzaW9uID0gZmFsc2VcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNvbnNvbGUubG9nKCdwYWdlX3Byb3BzJywgcGFnZV9wcm9wcylcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCd0YWJsZV9wcm9wcycsIHRhYmxlX3Byb3BzKVxyXG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgIHBhZ2VQcm9wczoge1xyXG4gICAgICAgICAgICAgIC4uLnBhZ2VfcHJvcHMsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHRyZWVQcm9wczoge1xyXG4gICAgICAgICAgICAgIC4uLnRyZWVfcHJvcHMsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHRhYmxlUHJvcHM6IHtcclxuICAgICAgICAgICAgICAuLi50YWJsZV9wcm9wcyxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgc2VsZkNvbHVtbkJ1dHRvbjogSlNPTi5wYXJzZShyZXMuZGF0YS5jb2x1bW5CdXR0b25zKSB8fCBbXSxcclxuICAgICAgICAgICAgc2VsZlRvb2xCdXR0b246IEpTT04ucGFyc2UocmVzLmRhdGEudG9vbEJ1dHRvbnMpIHx8IFtdLFxyXG4gICAgICAgICAgICBkZWZhdWx0Q29sdW1uczogcGFnZV9wcm9wcy5jb2x1bW5zLFxyXG4gICAgICAgICAgfSwgKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICBwYWdlTG9hZGluZzogZmFsc2VcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIH0pXHJcblxyXG4gICAgICAgIH0gZWxzZSBpZiAocmVzLmNvZGUgPT0gMjAwICYmIHJlcy5kYXRhID09IG51bGwpIHtcclxuICAgICAgICAgIG1lc3NhZ2UuZXJyb3IoXCLmnKrmib7liLDphY3nva7kv6Hmga/vvIFcIik7XHJcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgcGFnZUxvYWRpbmc6IGZhbHNlXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgcGFnZUxvYWRpbmc6IGZhbHNlXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICBwYWdlTG9hZGluZzogZmFsc2VcclxuICAgICAgfSlcclxuICAgIH1cclxuICB9XHJcbiAgcmVuZGVyKCkge1xyXG4gICAgY29uc3QgeyBjbGFzc05hbWUsIGZ1bmNzID0ge30gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IHBhZ2VQcm9wcywgdHJlZVByb3BzLCB0YWJsZVByb3BzLCBzZWxmVG9vbEJ1dHRvbiwgc2VsZkNvbHVtbkJ1dHRvbiwgcGFnZUxvYWRpbmcsIGRlZmF1bHRDb2x1bW5zIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgZGVhdWx0RnVuY3MgPSB7XHJcbiAgICAgIHNldEZpZWxkRGlzYWJsZWQ6IChrZXksIGRpc2FibGVkKSA9PiB7XHJcbiAgICAgICAgY29uc3QgbmV3RGF0YSA9IHNldEZpZWxkRGlzYWJsZWQoXHJcbiAgICAgICAgICBwYWdlUHJvcHMuY29sdW1ucyxcclxuICAgICAgICAgIGtleSxcclxuICAgICAgICAgIGRpc2FibGVkXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgIHBhZ2VQcm9wczogeyAuLi5wYWdlUHJvcHMsIGNvbHVtbnM6IG5ld0RhdGEgfSxcclxuICAgICAgICB9KVxyXG5cclxuICAgICAgfSxcclxuICAgICAgc2V0RmllbGRWaXNpYmxlOiAoa2V5LCBkaXNhYmxlZCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IG5ld0RhdGEgPSBzZXRGaWVsZFZpc2libGUocGFnZVByb3BzLmNvbHVtbnMsIGtleSwgZGlzYWJsZWQpO1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgcGFnZVByb3BzOiB7IC4uLnBhZ2VQcm9wcywgY29sdW1uczogbmV3RGF0YSB9LFxyXG4gICAgICAgIH0pXHJcblxyXG4gICAgICB9LFxyXG4gICAgICBzZXRGaWVsZFByb3BzRGF0YTogKGtleSwgZGF0YSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IG5ld0RhdGEgPSBzZXRGaWVsZFByb3BzRGF0YShwYWdlUHJvcHMuY29sdW1ucywga2V5LCBkYXRhKTtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgIHBhZ2VQcm9wczogeyAuLi5wYWdlUHJvcHMsIGNvbHVtbnM6IG5ld0RhdGEgfSxcclxuICAgICAgICB9KVxyXG4gICAgICB9LFxyXG4gICAgICBoaXN0b3J5OiAocGFyYW1zLCB0eXBlKSA9PiB7XHJcbiAgICAgICAganVtcFBhZ2UocGFyYW1zLCB0eXBlKVxyXG4gICAgICB9LFxyXG4gICAgICBnZXRDdXJyZW50UHJvamVjdDogKCkgPT4ge1xyXG4gICAgICAgIHJldHVybiBnZXRQcm9qZWN0KClcclxuICAgICAgfSxcclxuXHJcbiAgICB9XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xzKFwibnNjLWZyYW1ld29yay10YWJsZXBhZ2VcIiwgY2xhc3NOYW1lKX0+XHJcbiAgICAgICAge3BhZ2VMb2FkaW5nID8gKFxyXG4gICAgICAgICAgPGRpdiBzdHlsZT17eyB3aWR0aDogXCIxMDAlXCIsIGhlaWdodDogXCIxMDAlXCIgfX0+XHJcbiAgICAgICAgICAgIDxTcGluIHNwaW5uaW5nPXtwYWdlTG9hZGluZ30+PC9TcGluPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgKSA6IChcclxuICAgICAgICAgIDxCYXNlUGFnZVxyXG4gICAgICAgICAgICB7Li4ucGFnZVByb3BzfVxyXG4gICAgICAgICAgICB0cmVlUHJvcHM9e3sgLi4udHJlZVByb3BzIH19XHJcbiAgICAgICAgICAgIHRhYmxlUHJvcHM9e3sgLi4udGFibGVQcm9wcyB9fVxyXG4gICAgICAgICAgICBmb3JtUHJvcHM9e3t9fVxyXG4gICAgICAgICAgICBVdGlscz17eyBOc2NDb20sIE5zY0ZpbGUsIE5zY1JlcXVlc3QsIE5zY1V0aWxzIH19XHJcbiAgICAgICAgICAgIHJlZj17dGhpcy5wYWdlUmVmfVxyXG4gICAgICAgICAgICBwYWdlUmVmPXt0aGlzLnBhZ2VSZWZ9XHJcbiAgICAgICAgICAgIG9uSGlkZUZvcm09eygpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICAgIHBhZ2VQcm9wczogeyAuLi5wYWdlUHJvcHMsIGNvbHVtbnM6IGRlZmF1bHRDb2x1bW5zIH0sXHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAvLyBzZXRQYWdlUHJvcHMoeyAuLi5wYWdlUHJvcHMsIGNvbHVtbnM6IGRlZmF1bHRDb2x1bW5zIH0pO1xyXG4gICAgICAgICAgICAgIHRoaXMucGFnZVJlZi5jdXJyZW50Py5oaWRlRm9ybSgpO1xyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICBmdW5jcz17eyAuLi5kZWF1bHRGdW5jcywgLi4uZnVuY3MgfX1cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3JlbmRlclNlbGZUb29sQnV0dG9uKHsgc2VsZlRvb2xCdXR0b24sIHBhZ2VSZWY6IHRoaXMucGFnZVJlZiwgZnVuY3M6IHsgLi4uZGVhdWx0RnVuY3MsIC4uLmZ1bmNzIH0gfSl9XHJcbiAgICAgICAgICAgIHtyZW5kZXJTZWxmQ29sdW1uQnV0dG9uKHsgc2VsZkNvbHVtbkJ1dHRvbiwgcGFnZVJlZjogdGhpcy5wYWdlUmVmLCBmdW5jczogeyAuLi5kZWF1bHRGdW5jcywgLi4uZnVuY3MgfSB9KX1cclxuICAgICAgICAgIDwvQmFzZVBhZ2U+XHJcbiAgICAgICAgKX1cclxuICAgICAgPC9kaXY+XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcblxyXG4vLyBjb25zdCBJbmRleCA9ICh7IHRhYmxlQ29kZSwgY2xhc3NOYW1lLCBtZW51Q29kZSwgZnVuY3MgPSB7fSwgcHVibGlzaGVkID0gdHJ1ZSwgaW5zdGFuY2VSZWYgfTogSVByb3BzKSA9PiB7XHJcbi8vICAgY29uc3QgW3BhZ2VQcm9wcywgc2V0UGFnZVByb3BzXSA9IHVzZVN0YXRlKHt9IGFzIGFueSk7XHJcbi8vICAgY29uc3QgW3RyZWVQcm9wcywgc2V0VHJlZVByb3BzXSA9IHVzZVN0YXRlKHtcclxuLy8gICAgIHN0b3JlOiB7IHVybDogXCJcIiwgYXV0b0xvYWQ6IGZhbHNlIH0sXHJcbi8vICAgfSBhcyBhbnkpO1xyXG4vLyAgIGNvbnN0IFt0YWJsZVByb3BzLCBzZXRUYWJsZVByb3BzXSA9IHVzZVN0YXRlKHt9IGFzIGFueSk7XHJcbi8vICAgY29uc3QgW3NlbGZUb29sQnV0dG9uLCBzZXRTZWxmVG9vbEJ1dHRvbl0gPSB1c2VTdGF0ZShbXSBhcyBhbnkpO1xyXG4vLyAgIGNvbnN0IFtzZWxmQ29sdW1uQnV0dG9uLCBzZXRTZWxmQ29sdW1uQnV0dG9uXSA9IHVzZVN0YXRlKFtdIGFzIGFueSk7XHJcbi8vICAgY29uc3QgW3BhZ2VMb2FkaW5nLCBzZXRQYWdlTG9hZGluZ10gPSB1c2VTdGF0ZSh0cnVlKTtcclxuLy8gICBjb25zdCBwYWdlUmVmOiBhbnkgPSBSZWFjdC51c2VSZWYobnVsbCk7XHJcbi8vICAgY29uc3QgW2RlZmF1bHRDb2x1bW5zLCBzZXREZWZhdWx0Q29sdW1uc10gPSB1c2VTdGF0ZShbXSBhcyBhbnkpO1xyXG5cclxuLy8gICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4vLyAgICAgY29uc29sZS5sb2coXCJpbnN0YW5jZVJlZlwiLCBpbnN0YW5jZVJlZilcclxuLy8gICAgIHNldFBhZ2VMb2FkaW5nKHRydWUpO1xyXG4vLyAgICAgaWYgKHRhYmxlQ29kZSkge1xyXG4vLyAgICAgICBsZXQgcGFyYW1zID0geyBjb2RlOiB0YWJsZUNvZGUgfSBhcyBhbnlcclxuLy8gICAgICAgaWYgKHB1Ymxpc2hlZCkge1xyXG4vLyAgICAgICAgIHBhcmFtcy5pc1B1Ymxpc2hlZCA9IDFcclxuLy8gICAgICAgfVxyXG4vLyAgICAgICBnZXRQYWdlRGF0YSh7IC4uLnBhcmFtcyB9KS50aGVuKChyZXM6IGFueSkgPT4ge1xyXG4vLyAgICAgICAgIGlmIChyZXMuY29kZSA9PSAyMDAgJiYgcmVzLmRhdGEpIHtcclxuLy8gICAgICAgICAgIGxldCB0YWJsZV9wcm9wcyA9IEpTT04ucGFyc2UocmVzLmRhdGEudGFibGVQcm9wcyB8fCBcInt9XCIpIHx8IHt9O1xyXG4vLyAgICAgICAgICAgbGV0IHRyZWVfcHJvcHMgPSBKU09OLnBhcnNlKHJlcy5kYXRhLnRyZWVQcm9wcyB8fCBcInt9XCIpIHx8IHt9O1xyXG4vLyAgICAgICAgICAgbGV0IHBhZ2VfcHJvcHMgPSBKU09OLnBhcnNlKHJlcy5kYXRhLnBhZ2VQcm9wcyB8fCBcInt9XCIpIHx8IHt9O1xyXG4vLyAgICAgICAgICAgaWYgKHBhZ2VfcHJvcHMucGVybWlzc2lvbj8uaGFzID09IHRydWUpIHtcclxuLy8gICAgICAgICAgICAgcGFnZV9wcm9wcy5wZXJtaXNzaW9uLm1lbnVDb2RlID0gbWVudUNvZGU7XHJcbi8vICAgICAgICAgICB9XHJcbi8vICAgICAgICAgICBzZXRUYWJsZVByb3BzKHtcclxuLy8gICAgICAgICAgICAgLi4udGFibGVfcHJvcHMsXHJcbi8vICAgICAgICAgICB9KTtcclxuLy8gICAgICAgICAgIHNldFBhZ2VQcm9wcyhwYWdlX3Byb3BzKTtcclxuLy8gICAgICAgICAgIHNldFRyZWVQcm9wcyh7XHJcbi8vICAgICAgICAgICAgIC4uLnRyZWVfcHJvcHMsXHJcbi8vICAgICAgICAgICB9KTtcclxuLy8gICAgICAgICAgIHNldFNlbGZDb2x1bW5CdXR0b24oSlNPTi5wYXJzZShyZXMuZGF0YS5jb2x1bW5CdXR0b25zKSB8fCBbXSk7XHJcbi8vICAgICAgICAgICBzZXRTZWxmVG9vbEJ1dHRvbihKU09OLnBhcnNlKHJlcy5kYXRhLnRvb2xCdXR0b25zKSB8fCBbXSk7XHJcbi8vICAgICAgICAgICBzZXREZWZhdWx0Q29sdW1ucyhwYWdlX3Byb3BzLmNvbHVtbnMpO1xyXG4vLyAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbi8vICAgICAgICAgICAgIHNldFBhZ2VMb2FkaW5nKGZhbHNlKTtcclxuLy8gICAgICAgICAgIH0sIDMwMCk7XHJcbi8vICAgICAgICAgfSBlbHNlIGlmIChyZXMuY29kZSA9PSAyMDAgJiYgcmVzLmRhdGEgPT0gbnVsbCkge1xyXG4vLyAgICAgICAgICAgbWVzc2FnZS5lcnJvcihcIuacquaJvuWIsOmFjee9ruS/oeaBr++8gVwiKTtcclxuLy8gICAgICAgICAgIHNldFBhZ2VMb2FkaW5nKGZhbHNlKTtcclxuLy8gICAgICAgICB9IGVsc2Uge1xyXG4vLyAgICAgICAgICAgc2V0UGFnZUxvYWRpbmcoZmFsc2UpO1xyXG4vLyAgICAgICAgIH1cclxuLy8gICAgICAgfSk7XHJcbi8vICAgICB9IGVsc2Uge1xyXG4vLyAgICAgICBzZXRQYWdlTG9hZGluZyhmYWxzZSk7XHJcbi8vICAgICB9XHJcbi8vICAgfSwgW3RhYmxlQ29kZV0pO1xyXG4vLyAgIHVzZUltcGVyYXRpdmVIYW5kbGUoaW5zdGFuY2VSZWYsICgpID0+ICh7XHJcblxyXG4vLyAgIH0pKTtcclxuLy8gICBjb25zdCBkZWF1bHRGdW5jcyA9IHtcclxuLy8gICAgIHNldEZpZWxkRGlzYWJsZWQ6IChrZXksIGRpc2FibGVkKSA9PiB7XHJcbi8vICAgICAgIGNvbnN0IG5ld0RhdGEgPSBzZXRGaWVsZERpc2FibGVkKFxyXG4vLyAgICAgICAgIHBhZ2VQcm9wcy5jb2x1bW5zLFxyXG4vLyAgICAgICAgIGtleSxcclxuLy8gICAgICAgICBkaXNhYmxlZFxyXG4vLyAgICAgICApO1xyXG4vLyAgICAgICBzZXRQYWdlUHJvcHMoeyAuLi5wYWdlUHJvcHMsIGNvbHVtbnM6IG5ld0RhdGEgfSk7XHJcbi8vICAgICB9LFxyXG4vLyAgICAgc2V0RmllbGRWaXNpYmxlOiAoa2V5LCBkaXNhYmxlZCkgPT4ge1xyXG4vLyAgICAgICBjb25zdCBuZXdEYXRhID0gc2V0RmllbGRWaXNpYmxlKHBhZ2VQcm9wcy5jb2x1bW5zLCBrZXksIGRpc2FibGVkKTtcclxuLy8gICAgICAgc2V0UGFnZVByb3BzKHsgLi4ucGFnZVByb3BzLCBjb2x1bW5zOiBuZXdEYXRhIH0pO1xyXG4vLyAgICAgfSxcclxuLy8gICAgIHNldEZpZWxkUHJvcHNEYXRhOiAoa2V5LCBkYXRhKSA9PiB7XHJcbi8vICAgICAgIGNvbnN0IG5ld0RhdGEgPSBzZXRGaWVsZFByb3BzRGF0YShwYWdlUHJvcHMuY29sdW1ucywga2V5LCBkYXRhKTtcclxuLy8gICAgICAgc2V0UGFnZVByb3BzKHsgLi4ucGFnZVByb3BzLCBjb2x1bW5zOiBuZXdEYXRhIH0pO1xyXG4vLyAgICAgfSxcclxuLy8gICAgIGhpc3Rvcnk6IChwYXJhbXMsIHR5cGUpID0+IHtcclxuLy8gICAgICAganVtcFBhZ2UocGFyYW1zLCB0eXBlKVxyXG4vLyAgICAgfSxcclxuLy8gICAgIGdldEN1cnJlbnRQcm9qZWN0OiAoKSA9PiB7XHJcbi8vICAgICAgIHJldHVybiBnZXRQcm9qZWN0KClcclxuLy8gICAgIH0sXHJcbi8vICAgICAuLi5mdW5jc1xyXG4vLyAgIH1cclxuLy8gICByZXR1cm4gKFxyXG4vLyAgICAgPGRpdiBjbGFzc05hbWU9e2NscyhcIm5zYy1mcmFtZXdvcmstdGFibGVwYWdlXCIsIGNsYXNzTmFtZSl9PlxyXG4vLyAgICAgICB7cGFnZUxvYWRpbmcgPyAoXHJcbi8vICAgICAgICAgPGRpdiBzdHlsZT17eyB3aWR0aDogXCIxMDAlXCIsIGhlaWdodDogXCIxMDAlXCIgfX0+XHJcbi8vICAgICAgICAgICA8U3BpbiBzcGlubmluZz17cGFnZUxvYWRpbmd9PjwvU3Bpbj5cclxuLy8gICAgICAgICA8L2Rpdj5cclxuLy8gICAgICAgKSA6IChcclxuLy8gICAgICAgICA8QmFzZVBhZ2VcclxuLy8gICAgICAgICAgIHsuLi5wYWdlUHJvcHN9XHJcbi8vICAgICAgICAgICB0cmVlUHJvcHM9e3sgLi4udHJlZVByb3BzIH19XHJcbi8vICAgICAgICAgICB0YWJsZVByb3BzPXt7IC4uLnRhYmxlUHJvcHMgfX1cclxuLy8gICAgICAgICAgIGZvcm1Qcm9wcz17e319XHJcbi8vICAgICAgICAgICBVdGlscz17eyBOc2NDb20sIE5zY0ZpbGUsIE5zY1JlcXVlc3QsIE5zY1V0aWxzIH19XHJcbi8vICAgICAgICAgICByZWY9e3BhZ2VSZWZ9XHJcbi8vICAgICAgICAgICBwYWdlUmVmPXtwYWdlUmVmfVxyXG4vLyAgICAgICAgICAgb25IaWRlRm9ybT17KCkgPT4ge1xyXG4vLyAgICAgICAgICAgICBzZXRQYWdlUHJvcHMoeyAuLi5wYWdlUHJvcHMsIGNvbHVtbnM6IGRlZmF1bHRDb2x1bW5zIH0pO1xyXG4vLyAgICAgICAgICAgICBwYWdlUmVmLmN1cnJlbnQ/LmhpZGVGb3JtKCk7XHJcbi8vICAgICAgICAgICB9fVxyXG4vLyAgICAgICAgICAgZnVuY3M9e3sgLi4uZGVhdWx0RnVuY3MsIC4uLmZ1bmNzIH19XHJcbi8vICAgICAgICAgPlxyXG4vLyAgICAgICAgICAge3JlbmRlclNlbGZUb29sQnV0dG9uKHsgc2VsZlRvb2xCdXR0b24sIHBhZ2VSZWYsIGZ1bmNzOiB7IC4uLmRlYXVsdEZ1bmNzLCAuLi5mdW5jcyB9IH0pfVxyXG4vLyAgICAgICAgICAge3JlbmRlclNlbGZDb2x1bW5CdXR0b24oeyBzZWxmQ29sdW1uQnV0dG9uLCBwYWdlUmVmLCBmdW5jczogeyAuLi5kZWF1bHRGdW5jcywgLi4uZnVuY3MgfSB9KX1cclxuLy8gICAgICAgICA8L0Jhc2VQYWdlPlxyXG4vLyAgICAgICApfVxyXG4vLyAgICAgPC9kaXY+XHJcbi8vICAgKTtcclxuLy8gfTtcclxuLy8gZXhwb3J0IGRlZmF1bHQgZm9yd2FyZFJlZjxhbnksIElQcm9wcz4oXHJcbi8vICAgKHByb3BzLCByZWYpID0+IHtcclxuLy8gICAgIHJldHVybiA8SW5kZXggey4uLnByb3BzfSBpbnN0YW5jZVJlZj17cmVmfSAvPjtcclxuLy8gICB9LFxyXG4vLyApOyJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUNBLE9BQU9BLFFBQVEsTUFBTSxhQUFhO0FBQ2xDLE9BQU9DLElBQUksTUFBTSxpQkFBaUI7QUFDbEMsT0FBT0MsTUFBTSxNQUFNLG1CQUFtQjtBQUN0QyxPQUFPLGNBQWM7QUFDckIsT0FBT0MsS0FBSyxNQUFNLE9BQU87QUFDekIsT0FBTyxLQUFLQyxNQUFNLE1BQU0sT0FBTztBQUMvQixPQUFPQyxPQUFPLE1BQU0sVUFBVTtBQUM5QixPQUFPQyxVQUFVLE1BQU0sYUFBYTtBQUNwQyxPQUFPLEtBQUtDLFFBQVEsTUFBTSxtQkFBbUI7QUFDN0MsT0FBT0MsR0FBRyxNQUFNLFlBQVk7QUFFNUIsT0FBT0MsV0FBVyxNQUFNLGNBQWM7QUFDdEMsU0FBU0MsYUFBYSxRQUFRLG1CQUFtQjtBQUNqRDtBQUNBO0FBQ0EsTUFBTUMsb0JBQW9CLEdBQUdDLElBQUEsSUFBd0M7RUFBQSxJQUF2QztJQUFFQyxjQUFjO0lBQUVDLE9BQU87SUFBRUM7RUFBTSxDQUFDLEdBQUFILElBQUE7RUFDOUQsSUFBSUMsY0FBYyxDQUFDRyxNQUFNLElBQUksQ0FBQyxFQUFFO0lBQzlCLE9BQU8sSUFBSTtFQUNiLENBQUMsTUFBTTtJQUNMLE9BQU9ILGNBQWMsQ0FBQ0ksR0FBRyxDQUFDLENBQUNDLElBQVMsRUFBRUMsS0FBYSxLQUFLO01BQ3RELG9CQUNFaEIsS0FBQSxDQUFBaUIsYUFBQSxDQUFDbEIsTUFBTTtRQUNMbUIsUUFBUSxFQUFDLFlBQVk7UUFDckJDLEdBQUcsRUFBRUgsS0FBTTtRQUNYSSxJQUFJLEVBQUVMLElBQUksQ0FBQ0ssSUFBSztRQUNoQkMsT0FBTyxFQUFFQSxDQUFBLEtBQU07VUFDYixJQUFJQyxLQUFLLEdBQUc7WUFBRXJCLE1BQU07WUFBRUMsT0FBTztZQUFFQyxVQUFVO1lBQUVDO1VBQVMsQ0FBQztVQUNyRCxJQUFJbUIsV0FBVyxHQUFHO1lBQUVaLE9BQU8sRUFBRUEsT0FBTztZQUFFQyxLQUFLLEVBQUVBO1VBQU0sQ0FBQztVQUNwRCxNQUFNWSxJQUFJLEdBQUcsSUFBSUMsUUFBUSxDQUFDLG1CQUFtQixFQUFFVixJQUFJLENBQUNNLE9BQU8sQ0FBQztVQUM1REcsSUFBSSxDQUFDRixLQUFLLEVBQUVDLFdBQVcsQ0FBQztRQUMxQixDQUFFO1FBQ0ZHLElBQUksRUFBRVgsSUFBSSxDQUFDVztNQUFLLEdBRWZYLElBQUksQ0FBQ1ksSUFDQSxDQUFDO0lBRWIsQ0FBQyxDQUFDO0VBQ0o7QUFDRixDQUFDO0FBRUQsTUFBTUMsc0JBQXNCLEdBQUdDLEtBQUEsSUFBMEM7RUFBQSxJQUF6QztJQUFFQyxnQkFBZ0I7SUFBRW5CLE9BQU87SUFBRUM7RUFBTSxDQUFDLEdBQUFpQixLQUFBO0VBQ2xFLElBQUlDLGdCQUFnQixDQUFDakIsTUFBTSxJQUFJLENBQUMsRUFBRTtJQUNoQyxPQUFPLElBQUk7RUFDYixDQUFDLE1BQU07SUFDTCxPQUFPaUIsZ0JBQWdCLENBQUNoQixHQUFHLENBQUMsQ0FBQ0MsSUFBUyxFQUFFQyxLQUFhLEtBQUs7TUFDeEQsb0JBQ0VoQixLQUFBLENBQUFpQixhQUFBLENBQUNsQixNQUFNO1FBQ0xtQixRQUFRLEVBQUMsY0FBYztRQUN2QkMsR0FBRyxFQUFFSCxLQUFNO1FBQ1hJLElBQUksRUFBRUwsSUFBSSxDQUFDSyxJQUFLO1FBQ2hCQyxPQUFPLEVBQUdVLE1BQU0sSUFBSztVQUNuQixJQUFJVCxLQUFLLEdBQUc7WUFBRXJCLE1BQU07WUFBRUMsT0FBTztZQUFFQyxVQUFVO1lBQUVDO1VBQVMsQ0FBQztVQUNyRCxJQUFJbUIsV0FBVyxHQUFHO1lBQUVaLE9BQU8sRUFBRUEsT0FBTztZQUFFb0IsTUFBTSxFQUFFQSxNQUFNO1lBQUVuQixLQUFLLEVBQUVBO1VBQU0sQ0FBQztVQUNwRSxNQUFNWSxJQUFJLEdBQUcsSUFBSUMsUUFBUSxDQUFDLG1CQUFtQixFQUFFVixJQUFJLENBQUNNLE9BQU8sQ0FBQztVQUM1REcsSUFBSSxDQUFDRixLQUFLLEVBQUVDLFdBQVcsQ0FBQztRQUMxQixDQUFFO1FBQ0ZHLElBQUksRUFBRVgsSUFBSSxDQUFDVyxJQUFLO1FBQ2hCTSxVQUFVLEVBQUVqQixJQUFJLENBQUNpQjtNQUFXLEdBRTNCakIsSUFBSSxDQUFDWSxJQUNBLENBQUM7SUFFYixDQUFDLENBQUM7RUFDSjtBQUNGLENBQUM7QUFFRCxNQUFNTSxXQUFXLEdBQUlDLE1BQVcsSUFBSztFQUNuQyxPQUFPL0IsVUFBVSxDQUFDZ0MsR0FBRyx3Q0FBd0M7SUFDM0RELE1BQU07SUFDTkUsU0FBUyxFQUFFLEtBQUs7SUFDaEJDLFVBQVUsRUFBRTtFQUNkLENBQUMsQ0FBQztBQUNKLENBQUM7O0FBRUQ7QUFDQSxNQUFNQyxnQkFBZ0IsR0FBR0EsQ0FBQ0MsSUFBZ0IsRUFBRXBCLEdBQUcsRUFBRXFCLFFBQVEsS0FBSztFQUM1RCxNQUFNQyxPQUFPLEdBQUcsQ0FBQyxHQUFHRixJQUFJLENBQUM7RUFDekIsSUFBSUcsVUFBVSxHQUFHLEVBQVM7RUFDMUJELE9BQU8sQ0FBQzNCLEdBQUcsQ0FBRUMsSUFBSSxJQUFLO0lBQ3BCLElBQUk0QixHQUFHLEdBQUFDLGFBQUEsS0FBUTdCLElBQUksQ0FBRTtJQUNyQixJQUFJQSxJQUFJLENBQUM4QixTQUFTLElBQUkxQixHQUFHLElBQUlBLEdBQUcsQ0FBQzJCLE9BQU8sQ0FBQy9CLElBQUksQ0FBQzhCLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO01BQzdELElBQUlFLEtBQUssR0FBR0osR0FBRyxDQUFDSSxLQUFLLEdBQUFILGFBQUEsS0FBUUQsR0FBRyxDQUFDSSxLQUFLLElBQUssQ0FBQyxDQUFDO01BQzdDQSxLQUFLLENBQUNQLFFBQVEsR0FBR0EsUUFBUTtNQUN6QkcsR0FBRyxDQUFDSSxLQUFLLEdBQUdBLEtBQUs7SUFDbkI7SUFDQUwsVUFBVSxDQUFDTSxJQUFJLENBQUNMLEdBQUcsQ0FBQztFQUN0QixDQUFDLENBQUM7RUFDRixPQUFPRCxVQUFVO0FBQ25CLENBQUM7QUFDRDtBQUNBLE1BQU1PLGVBQWUsR0FBR0EsQ0FBQ1YsSUFBZ0IsRUFBRXBCLEdBQUcsRUFBRStCLE9BQU8sS0FBSztFQUMxRCxNQUFNVCxPQUFPLEdBQUcsQ0FBQyxHQUFHRixJQUFJLENBQUM7RUFDekIsSUFBSUcsVUFBVSxHQUFHLEVBQVM7RUFDMUJELE9BQU8sQ0FBQzNCLEdBQUcsQ0FBRUMsSUFBSSxJQUFLO0lBQ3BCLElBQUk0QixHQUFHLEdBQUFDLGFBQUEsS0FBUTdCLElBQUksQ0FBRTtJQUNyQixJQUFJQSxJQUFJLENBQUM4QixTQUFTLElBQUkxQixHQUFHLElBQUlBLEdBQUcsQ0FBQzJCLE9BQU8sQ0FBQy9CLElBQUksQ0FBQzhCLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO01BQzdERixHQUFHLENBQUNRLE1BQU0sR0FBR0QsT0FBTztJQUN0QjtJQUNBUixVQUFVLENBQUNNLElBQUksQ0FBQ0wsR0FBRyxDQUFDO0VBQ3RCLENBQUMsQ0FBQztFQUNGLE9BQU9ELFVBQVU7QUFDbkIsQ0FBQztBQUVELE1BQU1VLGlCQUFpQixHQUFHQSxDQUFDYixJQUFnQixFQUFFcEIsR0FBRyxFQUFFa0MsU0FBUyxLQUFLO0VBQzlELE1BQU1aLE9BQU8sR0FBRyxDQUFDLEdBQUdGLElBQUksQ0FBQztFQUN6QixJQUFJRyxVQUFVLEdBQUcsRUFBUztFQUMxQkQsT0FBTyxDQUFDM0IsR0FBRyxDQUFFQyxJQUFJLElBQUs7SUFDcEIsSUFBSTRCLEdBQUcsR0FBQUMsYUFBQSxLQUFRN0IsSUFBSSxDQUFFO0lBQ3JCLElBQUlBLElBQUksQ0FBQzhCLFNBQVMsSUFBSTFCLEdBQUcsRUFBRTtNQUN6QixJQUFJNEIsS0FBSyxHQUFHSixHQUFHLENBQUNJLEtBQUssR0FBQUgsYUFBQSxLQUFRRCxHQUFHLENBQUNJLEtBQUssSUFBSyxDQUFDLENBQUM7TUFDN0NBLEtBQUssQ0FBQ1IsSUFBSSxHQUFHYyxTQUFTO01BQ3RCVixHQUFHLENBQUNJLEtBQUssR0FBR0EsS0FBSztJQUNuQjtJQUNBTCxVQUFVLENBQUNNLElBQUksQ0FBQ0wsR0FBRyxDQUFDO0VBQ3RCLENBQUMsQ0FBQztFQUNGLE9BQU9ELFVBQVU7QUFDbkIsQ0FBQztBQVdELE1BQU1ZLFFBQVEsR0FBR0EsQ0FBQ3BCLE1BQWUsRUFBRWQsSUFBNEIsS0FBSztFQUNsRSxNQUFNO0lBQ0ptQyxRQUFRO0lBQ1JDLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDVkMsRUFBRTtJQUNGQyxLQUFLO0lBQ0xDLFdBQVc7SUFDWEMsV0FBVztJQUNYQztFQUNGLENBQUMsR0FBRzNCLE1BQU07RUFDVixNQUFNNEIsUUFBUSxHQUFBbEIsYUFBQSxLQUFRWSxLQUFLLENBQVM7RUFDcEMsTUFBTU8sU0FBUyxHQUFHekQsV0FBVyxDQUFDMEQsU0FBUyxDQUFDRixRQUFRLENBQUM7RUFDakQsTUFBTUcsSUFBSSxHQUFHRixTQUFTLE1BQUFHLE1BQUEsQ0FBTVgsUUFBUSxPQUFBVyxNQUFBLENBQUlILFNBQVMsSUFBS1IsUUFBUTtFQUM5RDtFQUNBLElBQUlZLE1BQU0sQ0FBQ0Msc0JBQXNCLEVBQUU7SUFDakMsTUFBTTdCLElBQUksR0FBRztNQUNYbUIsS0FBSyxFQUFFQSxLQUFLLElBQUksS0FBSztNQUNyQkMsV0FBVyxFQUFFQSxXQUFXO01BQUU7TUFDMUJDLFdBQVcsRUFBRUEsV0FBVztNQUFFO01BQzFCSyxJQUFJLEVBQUVBLElBQUk7TUFBRTtNQUNaUixFQUFFLEVBQUVBLEVBQUU7TUFBRTtNQUNSSSxRQUFRLEVBQUVBLFFBQVEsR0FBR0EsUUFBUSxHQUFHLENBQUMsQ0FBRTtJQUNyQyxDQUFDO0lBQ0RNLE1BQU0sQ0FBQ0UsTUFBTSxDQUFDQyxXQUFXLENBQ3ZCO01BQ0VDLFNBQVMsRUFBRW5ELElBQUksR0FBR0EsSUFBSSxHQUFHLFFBQVE7TUFDakN1QyxXQUFXLEVBQUVBLFdBQVcsR0FBR0EsV0FBVyxHQUFHLGFBQWE7TUFDdERhLE9BQU8sRUFBRXBELElBQUksR0FBR2MsTUFBTSxHQUFHSztJQUMzQixDQUFDLEVBQ0Q0QixNQUFNLENBQUNNLFFBQVEsQ0FBQ0MsTUFDbEIsQ0FBQztFQUNILENBQUMsTUFBTTtJQUNMUCxNQUFNLENBQUNRLE9BQU8sQ0FBQ0MsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRVgsSUFBSSxDQUFDO0lBQ3RDRSxNQUFNLENBQUNRLE9BQU8sQ0FBQ0UsRUFBRSxDQUFDLENBQUM7RUFDckI7QUFDRixDQUFDO0FBQ0QsTUFBTUMsVUFBVSxHQUFHQSxDQUFBLEtBQU07RUFDdkIsTUFBTUMsT0FBTyxHQUFHeEUsYUFBYSxDQUFDO0lBQUVvQixJQUFJLEVBQUU7RUFBbUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0VBQ2pFLE9BQU9vRCxPQUFPO0FBQ2hCLENBQUM7QUFTRCxlQUFlLE1BQU1DLFlBQVksU0FBU2hGLEtBQUssQ0FBQ2lGLFNBQVMsQ0FBYztFQUFBQyxZQUFBO0lBQUEsU0FBQUMsU0FBQTtJQUFBQyxlQUFBLGdCQUM3RDtNQUNOQyxTQUFTLEVBQUUsQ0FBQyxDQUFRO01BQ3BCQyxTQUFTLEVBQUU7UUFBRUMsS0FBSyxFQUFFO1VBQUVDLEdBQUcsRUFBRSxFQUFFO1VBQUVDLFFBQVEsRUFBRTtRQUFNO01BQUcsQ0FBUTtNQUMxREMsVUFBVSxFQUFFLENBQUMsQ0FBUTtNQUNyQmhGLGNBQWMsRUFBRSxFQUFTO01BQ3pCb0IsZ0JBQWdCLEVBQUUsRUFBUztNQUMzQjZELFdBQVcsRUFBRSxJQUFJO01BQ2pCQyxjQUFjLEVBQUU7SUFDbEIsQ0FBQztJQUFBUixlQUFBLCtCQUNTcEYsS0FBSyxDQUFDNkYsU0FBUyxDQUFNLENBQUM7RUFBQTtFQUVoQ0MsaUJBQWlCQSxDQUFBLEVBQVM7SUFDeEIsSUFBSSxDQUFDQyxPQUFPLENBQUMsQ0FBQztFQUNoQjtFQUVBQyxrQkFBa0JBLENBQUNDLFNBQTJCLEVBQUVDLFNBQXdCLEVBQUVDLFFBQWMsRUFBUTtJQUM5RixJQUFJRixTQUFTLENBQUNHLFNBQVMsSUFBSSxJQUFJLENBQUNyRCxLQUFLLENBQUNxRCxTQUFTLEVBQUU7TUFDL0MsSUFBSSxDQUFDTCxPQUFPLENBQUMsQ0FBQztJQUNoQjtFQUNGOztFQUVBO0VBQ0FBLE9BQU9BLENBQUEsRUFBRztJQUNSO0lBQ0EsTUFBTTtNQUFFSyxTQUFTO01BQUVDLFNBQVMsR0FBRyxJQUFJO01BQUVDO0lBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQ3ZELEtBQUs7SUFDNUQ7SUFDQSxJQUFJcUQsU0FBUyxFQUFFO01BQ2I7TUFDQSxJQUFJbEUsTUFBTSxHQUFHO1FBQUVSLElBQUksRUFBRTBFO01BQVUsQ0FBUTtNQUN2QztNQUNBLElBQUlDLFNBQVMsRUFBRTtRQUNiO1FBQ0FuRSxNQUFNLENBQUNxRSxXQUFXLEdBQUcsQ0FBQztNQUN4QjtNQUNBO01BQ0F0RSxXQUFXLENBQUFXLGFBQUEsS0FBTVYsTUFBTSxDQUFFLENBQUMsQ0FBQ3NFLElBQUksQ0FBRUMsR0FBUSxJQUFLO1FBQzVDLElBQUlBLEdBQUcsQ0FBQy9FLElBQUksSUFBSSxHQUFHLElBQUkrRSxHQUFHLENBQUNsRSxJQUFJLEVBQUU7VUFBQSxJQUFBbUUscUJBQUE7VUFDL0IsSUFBSUMsV0FBVyxHQUFHQyxJQUFJLENBQUNDLEtBQUssQ0FBQ0osR0FBRyxDQUFDbEUsSUFBSSxDQUFDbUQsVUFBVSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztVQUMvRCxJQUFJb0IsVUFBVSxHQUFHRixJQUFJLENBQUNDLEtBQUssQ0FBQ0osR0FBRyxDQUFDbEUsSUFBSSxDQUFDK0MsU0FBUyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztVQUM3RCxJQUFJeUIsVUFBVSxHQUFHSCxJQUFJLENBQUNDLEtBQUssQ0FBQ0osR0FBRyxDQUFDbEUsSUFBSSxDQUFDOEMsU0FBUyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztVQUM3RCxJQUFJLEVBQUFxQixxQkFBQSxHQUFBSyxVQUFVLENBQUNDLFVBQVUsY0FBQU4scUJBQUEsdUJBQXJCQSxxQkFBQSxDQUF1Qk8sR0FBRyxLQUFJLElBQUksRUFBRTtZQUN0Q0YsVUFBVSxDQUFDQyxVQUFVLENBQUNWLFFBQVEsR0FBR0EsUUFBUTtVQUMzQztVQUNBLElBQUlELFNBQVMsSUFBSSxLQUFLLEVBQUU7WUFDdEJVLFVBQVUsQ0FBQ0MsVUFBVSxHQUFHLEtBQUs7VUFDL0I7VUFDQUUsT0FBTyxDQUFDQyxHQUFHLENBQUMsWUFBWSxFQUFFSixVQUFVLENBQUM7VUFDckNHLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDLGFBQWEsRUFBRVIsV0FBVyxDQUFDO1VBQ3ZDLElBQUksQ0FBQ1MsUUFBUSxDQUFDO1lBQ1ovQixTQUFTLEVBQUF6QyxhQUFBLEtBQ0ptRSxVQUFVLENBQ2Q7WUFDRHpCLFNBQVMsRUFBQTFDLGFBQUEsS0FDSmtFLFVBQVUsQ0FDZDtZQUNEcEIsVUFBVSxFQUFBOUMsYUFBQSxLQUNMK0QsV0FBVyxDQUNmO1lBQ0Q3RSxnQkFBZ0IsRUFBRThFLElBQUksQ0FBQ0MsS0FBSyxDQUFDSixHQUFHLENBQUNsRSxJQUFJLENBQUM4RSxhQUFhLENBQUMsSUFBSSxFQUFFO1lBQzFEM0csY0FBYyxFQUFFa0csSUFBSSxDQUFDQyxLQUFLLENBQUNKLEdBQUcsQ0FBQ2xFLElBQUksQ0FBQytFLFdBQVcsQ0FBQyxJQUFJLEVBQUU7WUFDdEQxQixjQUFjLEVBQUVtQixVQUFVLENBQUN0RTtVQUM3QixDQUFDLEVBQUUsTUFBTTtZQUNQLElBQUksQ0FBQzJFLFFBQVEsQ0FBQztjQUNaekIsV0FBVyxFQUFFO1lBQ2YsQ0FBQyxDQUFDO1VBQ0osQ0FBQyxDQUFDO1FBRUosQ0FBQyxNQUFNLElBQUljLEdBQUcsQ0FBQy9FLElBQUksSUFBSSxHQUFHLElBQUkrRSxHQUFHLENBQUNsRSxJQUFJLElBQUksSUFBSSxFQUFFO1VBQzlDZ0YsUUFBQSxDQUFRQyxLQUFLLENBQUMsVUFBVSxDQUFDO1VBQ3pCLElBQUksQ0FBQ0osUUFBUSxDQUFDO1lBQ1p6QixXQUFXLEVBQUU7VUFDZixDQUFDLENBQUM7UUFDSixDQUFDLE1BQU07VUFDTCxJQUFJLENBQUN5QixRQUFRLENBQUM7WUFDWnpCLFdBQVcsRUFBRTtVQUNmLENBQUMsQ0FBQztRQUNKO01BQ0YsQ0FBQyxDQUFDO0lBQ0osQ0FBQyxNQUFNO01BQ0wsSUFBSSxDQUFDeUIsUUFBUSxDQUFDO1FBQ1p6QixXQUFXLEVBQUU7TUFDZixDQUFDLENBQUM7SUFDSjtFQUNGO0VBQ0E4QixNQUFNQSxDQUFBLEVBQUc7SUFDUCxNQUFNO01BQUVDLFNBQVM7TUFBRTlHLEtBQUssR0FBRyxDQUFDO0lBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQ21DLEtBQUs7SUFDNUMsTUFBTTtNQUFFc0MsU0FBUztNQUFFQyxTQUFTO01BQUVJLFVBQVU7TUFBRWhGLGNBQWM7TUFBRW9CLGdCQUFnQjtNQUFFNkQsV0FBVztNQUFFQztJQUFlLENBQUMsR0FBRyxJQUFJLENBQUMrQixLQUFLO0lBQ3RILE1BQU1DLFdBQVcsR0FBRztNQUNsQnRGLGdCQUFnQixFQUFFQSxDQUFDbkIsR0FBRyxFQUFFcUIsUUFBUSxLQUFLO1FBQ25DLE1BQU1xRixPQUFPLEdBQUd2RixnQkFBZ0IsQ0FDOUIrQyxTQUFTLENBQUM1QyxPQUFPLEVBQ2pCdEIsR0FBRyxFQUNIcUIsUUFDRixDQUFDO1FBQ0QsSUFBSSxDQUFDNEUsUUFBUSxDQUFDO1VBQ1ovQixTQUFTLEVBQUF6QyxhQUFBLENBQUFBLGFBQUEsS0FBT3lDLFNBQVM7WUFBRTVDLE9BQU8sRUFBRW9GO1VBQU87UUFDN0MsQ0FBQyxDQUFDO01BRUosQ0FBQztNQUNENUUsZUFBZSxFQUFFQSxDQUFDOUIsR0FBRyxFQUFFcUIsUUFBUSxLQUFLO1FBQ2xDLE1BQU1xRixPQUFPLEdBQUc1RSxlQUFlLENBQUNvQyxTQUFTLENBQUM1QyxPQUFPLEVBQUV0QixHQUFHLEVBQUVxQixRQUFRLENBQUM7UUFDakUsSUFBSSxDQUFDNEUsUUFBUSxDQUFDO1VBQ1ovQixTQUFTLEVBQUF6QyxhQUFBLENBQUFBLGFBQUEsS0FBT3lDLFNBQVM7WUFBRTVDLE9BQU8sRUFBRW9GO1VBQU87UUFDN0MsQ0FBQyxDQUFDO01BRUosQ0FBQztNQUNEekUsaUJBQWlCLEVBQUVBLENBQUNqQyxHQUFHLEVBQUVvQixJQUFJLEtBQUs7UUFDaEMsTUFBTXNGLE9BQU8sR0FBR3pFLGlCQUFpQixDQUFDaUMsU0FBUyxDQUFDNUMsT0FBTyxFQUFFdEIsR0FBRyxFQUFFb0IsSUFBSSxDQUFDO1FBQy9ELElBQUksQ0FBQzZFLFFBQVEsQ0FBQztVQUNaL0IsU0FBUyxFQUFBekMsYUFBQSxDQUFBQSxhQUFBLEtBQU95QyxTQUFTO1lBQUU1QyxPQUFPLEVBQUVvRjtVQUFPO1FBQzdDLENBQUMsQ0FBQztNQUNKLENBQUM7TUFDRGxELE9BQU8sRUFBRUEsQ0FBQ3pDLE1BQU0sRUFBRWQsSUFBSSxLQUFLO1FBQ3pCa0MsUUFBUSxDQUFDcEIsTUFBTSxFQUFFZCxJQUFJLENBQUM7TUFDeEIsQ0FBQztNQUNEMEcsaUJBQWlCLEVBQUVBLENBQUEsS0FBTTtRQUN2QixPQUFPaEQsVUFBVSxDQUFDLENBQUM7TUFDckI7SUFFRixDQUFDO0lBQ0Qsb0JBQ0U5RSxLQUFBLENBQUFpQixhQUFBO01BQUt5RyxTQUFTLEVBQUVySCxHQUFHLENBQUMseUJBQXlCLEVBQUVxSCxTQUFTO0lBQUUsR0FDdkQvQixXQUFXLGdCQUNWM0YsS0FBQSxDQUFBaUIsYUFBQTtNQUFLOEcsS0FBSyxFQUFFO1FBQUVDLEtBQUssRUFBRSxNQUFNO1FBQUVDLE1BQU0sRUFBRTtNQUFPO0lBQUUsZ0JBQzVDakksS0FBQSxDQUFBaUIsYUFBQSxDQUFDbkIsSUFBSTtNQUFDb0ksUUFBUSxFQUFFdkM7SUFBWSxDQUFPLENBQ2hDLENBQUMsZ0JBRU4zRixLQUFBLENBQUFpQixhQUFBLENBQUNwQixRQUFRLEVBQUFzSSxRQUFBLEtBQ0g5QyxTQUFTO01BQ2JDLFNBQVMsRUFBQTFDLGFBQUEsS0FBTzBDLFNBQVMsQ0FBRztNQUM1QkksVUFBVSxFQUFBOUMsYUFBQSxLQUFPOEMsVUFBVSxDQUFHO01BQzlCMEMsU0FBUyxFQUFFLENBQUMsQ0FBRTtNQUNkOUcsS0FBSyxFQUFFO1FBQUVyQixNQUFNO1FBQUVDLE9BQU87UUFBRUMsVUFBVTtRQUFFQztNQUFTLENBQUU7TUFDakRpSSxHQUFHLEVBQUUsSUFBSSxDQUFDMUgsT0FBUTtNQUNsQkEsT0FBTyxFQUFFLElBQUksQ0FBQ0EsT0FBUTtNQUN0QjJILFVBQVUsRUFBRUEsQ0FBQSxLQUFNO1FBQUEsSUFBQUMscUJBQUE7UUFDaEIsSUFBSSxDQUFDbkIsUUFBUSxDQUFDO1VBQ1ovQixTQUFTLEVBQUF6QyxhQUFBLENBQUFBLGFBQUEsS0FBT3lDLFNBQVM7WUFBRTVDLE9BQU8sRUFBRW1EO1VBQWM7UUFDcEQsQ0FBQyxDQUFDO1FBQ0Y7UUFDQSxDQUFBMkMscUJBQUEsT0FBSSxDQUFDNUgsT0FBTyxDQUFDNkgsT0FBTyxjQUFBRCxxQkFBQSxlQUFwQkEscUJBQUEsQ0FBc0JFLFFBQVEsQ0FBQyxDQUFDO01BQ2xDLENBQUU7TUFDRjdILEtBQUssRUFBQWdDLGFBQUEsQ0FBQUEsYUFBQSxLQUFPZ0YsV0FBVyxHQUFLaEgsS0FBSztJQUFHLElBRW5DSixvQkFBb0IsQ0FBQztNQUFFRSxjQUFjO01BQUVDLE9BQU8sRUFBRSxJQUFJLENBQUNBLE9BQU87TUFBRUMsS0FBSyxFQUFBZ0MsYUFBQSxDQUFBQSxhQUFBLEtBQU9nRixXQUFXLEdBQUtoSCxLQUFLO0lBQUcsQ0FBQyxDQUFDLEVBQ3BHZ0Isc0JBQXNCLENBQUM7TUFBRUUsZ0JBQWdCO01BQUVuQixPQUFPLEVBQUUsSUFBSSxDQUFDQSxPQUFPO01BQUVDLEtBQUssRUFBQWdDLGFBQUEsQ0FBQUEsYUFBQSxLQUFPZ0YsV0FBVyxHQUFLaEgsS0FBSztJQUFHLENBQUMsQ0FDaEcsQ0FFVCxDQUFDO0VBRVY7QUFFRjs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSJ9