@1money/component-ui 0.0.40 → 0.0.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/es/components/Accordion/Accordion.d.ts +2 -4
  2. package/es/components/Accordion/Accordion.js +7 -11
  3. package/es/components/Accordion/constants.d.ts +16 -0
  4. package/es/components/Accordion/constants.js +17 -0
  5. package/es/components/Button/Button.js +2 -2
  6. package/es/components/Button/constants.d.ts +2 -1
  7. package/es/components/Button/constants.js +3 -2
  8. package/es/components/Button/style/Button.css +1 -1
  9. package/es/components/Checkbox/Checkbox.js +7 -6
  10. package/es/components/Checkbox/constants.d.ts +16 -6
  11. package/es/components/Checkbox/constants.js +17 -8
  12. package/es/components/Copy/Clipboard.d.ts +2 -4
  13. package/es/components/Copy/Clipboard.js +4 -3
  14. package/es/components/Copy/Copy.d.ts +2 -4
  15. package/es/components/Copy/Copy.js +18 -7
  16. package/es/components/Copy/interface.d.ts +2 -0
  17. package/es/components/Notification/Notification.js +5 -11
  18. package/es/components/Notification/constants.d.ts +7 -0
  19. package/es/components/Notification/constants.js +10 -1
  20. package/es/components/Notification/index.d.ts +1 -1
  21. package/es/components/Notification/interface.d.ts +2 -2
  22. package/es/components/Pagination/Pagination.js +4 -3
  23. package/es/components/Radio/Radio.js +2 -1
  24. package/es/components/Select/Select.js +9 -18
  25. package/es/components/Select/constants.d.ts +7 -0
  26. package/es/components/Select/constants.js +8 -1
  27. package/es/components/Typography/render.js +1 -1
  28. package/es/components/Typography/useTypographyEnhancements.d.ts +2 -2
  29. package/es/components/Typography/useTypographyEnhancements.js +3 -2
  30. package/es/index.css +1 -1
  31. package/lib/components/Accordion/Accordion.d.ts +2 -4
  32. package/lib/components/Accordion/Accordion.js +7 -11
  33. package/lib/components/Accordion/constants.d.ts +16 -0
  34. package/lib/components/Accordion/constants.js +23 -0
  35. package/lib/components/Button/Button.js +2 -2
  36. package/lib/components/Button/constants.d.ts +2 -1
  37. package/lib/components/Button/constants.js +3 -2
  38. package/lib/components/Button/style/Button.css +1 -1
  39. package/lib/components/Checkbox/Checkbox.js +6 -5
  40. package/lib/components/Checkbox/constants.d.ts +16 -6
  41. package/lib/components/Checkbox/constants.js +18 -9
  42. package/lib/components/Copy/Clipboard.d.ts +2 -4
  43. package/lib/components/Copy/Clipboard.js +4 -3
  44. package/lib/components/Copy/Copy.d.ts +2 -4
  45. package/lib/components/Copy/Copy.js +18 -7
  46. package/lib/components/Copy/interface.d.ts +2 -0
  47. package/lib/components/Notification/Notification.js +4 -10
  48. package/lib/components/Notification/constants.d.ts +7 -0
  49. package/lib/components/Notification/constants.js +11 -2
  50. package/lib/components/Notification/index.d.ts +1 -1
  51. package/lib/components/Notification/interface.d.ts +2 -2
  52. package/lib/components/Pagination/Pagination.js +4 -3
  53. package/lib/components/Radio/Radio.js +2 -1
  54. package/lib/components/Select/Select.js +8 -17
  55. package/lib/components/Select/constants.d.ts +7 -0
  56. package/lib/components/Select/constants.js +9 -2
  57. package/lib/components/Typography/render.js +1 -1
  58. package/lib/components/Typography/useTypographyEnhancements.d.ts +2 -2
  59. package/lib/components/Typography/useTypographyEnhancements.js +3 -2
  60. package/lib/index.css +1 -1
  61. package/package.json +1 -1
  62. package/scripts/mcp-server/index.generated.json +8 -0
@@ -23,14 +23,6 @@ var _utils = require("./utils");
23
23
  require("./style");
24
24
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
25
25
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
26
- var __rest = void 0 && (void 0).__rest || function (s, e) {
27
- var t = {};
28
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
29
- if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
30
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
31
- }
32
- return t;
33
- };
34
26
  var DEFAULT_MAX_HEIGHT = 320;
35
27
  var Select = exports.Select = function Select(props) {
36
28
  var _props$className = props.className,
@@ -88,8 +80,7 @@ var Select = exports.Select = function Select(props) {
88
80
  filterOption = props.filterOption,
89
81
  renderOption = props.renderOption,
90
82
  renderValue = props.renderValue,
91
- ref = props.ref,
92
- rest = __rest(props, ["className", "prefixCls", "style", "id", "name", 'aria-label', 'aria-labelledby', "placeholder", "options", "value", "defaultValue", "size", "status", "variant", "disabled", "multiple", "maxVisibleValues", "searchable", "searchPlaceholder", "searchValue", "defaultSearchValue", "label", "info", "description", "feedback", "required", "prefix", "emptyContent", "panelFooter", "open", "defaultOpen", "listMaxHeight", "onChange", "onOpenChange", "onSearchChange", "onBlur", "filterOption", "renderOption", "renderValue", "ref"]);
83
+ ref = props.ref;
93
84
  var classes = (0, _classnames["default"])(prefixCls);
94
85
  var autoId = (0, _react2.useId)();
95
86
  var triggerId = id !== null && id !== void 0 ? id : autoId;
@@ -317,12 +308,12 @@ var Select = exports.Select = function Select(props) {
317
308
  if (disabled) {
318
309
  return;
319
310
  }
320
- if (event.key === 'Enter' || event.key === ' ') {
311
+ if (event.key === _constants.KEYBOARD.ENTER || event.key === _constants.KEYBOARD.SPACE) {
321
312
  event.preventDefault();
322
313
  handleOpenChange(!innerOpen);
323
314
  return;
324
315
  }
325
- if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {
316
+ if (event.key === _constants.KEYBOARD.ARROW_DOWN || event.key === _constants.KEYBOARD.ARROW_UP) {
326
317
  event.preventDefault();
327
318
  if (!innerOpen) {
328
319
  handleOpenChange(true);
@@ -352,7 +343,7 @@ var Select = exports.Select = function Select(props) {
352
343
  });
353
344
  var handleSearchKeyDown = (0, _hooks.useEventCallback)(function (event) {
354
345
  var _a, _b, _c;
355
- if (event.key === 'ArrowDown' && firstEnabledIndex >= 0) {
346
+ if (event.key === _constants.KEYBOARD.ARROW_DOWN && firstEnabledIndex >= 0) {
356
347
  event.preventDefault();
357
348
  setActiveIndex(firstEnabledIndex);
358
349
  (_a = listRef.current[firstEnabledIndex]) === null || _a === void 0 ? void 0 : _a.focus({
@@ -360,7 +351,7 @@ var Select = exports.Select = function Select(props) {
360
351
  });
361
352
  return;
362
353
  }
363
- if (event.key === 'ArrowUp' && lastEnabledIndex !== null) {
354
+ if (event.key === _constants.KEYBOARD.ARROW_UP && lastEnabledIndex !== null) {
364
355
  event.preventDefault();
365
356
  setActiveIndex(lastEnabledIndex);
366
357
  (_b = listRef.current[lastEnabledIndex]) === null || _b === void 0 ? void 0 : _b.focus({
@@ -368,7 +359,7 @@ var Select = exports.Select = function Select(props) {
368
359
  });
369
360
  return;
370
361
  }
371
- if (event.key === 'Escape') {
362
+ if (event.key === _constants.KEYBOARD.ESCAPE) {
372
363
  event.preventDefault();
373
364
  handleOpenChange(false);
374
365
  (_c = triggerRef.current) === null || _c === void 0 ? void 0 : _c.focus({
@@ -524,7 +515,7 @@ var Select = exports.Select = function Select(props) {
524
515
  option: option,
525
516
  selected: selected
526
517
  })
527
- }), option.value);
518
+ }), "".concat(group.key, "-").concat(option.value));
528
519
  })]
529
520
  }, group.key);
530
521
  });
@@ -540,4 +531,4 @@ var Select = exports.Select = function Select(props) {
540
531
  };
541
532
  Select.displayName = 'Select';
542
533
  var _default = exports["default"] = /*#__PURE__*/(0, _react2.memo)(Select);
543
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX3JlYWN0MiIsIl9ob29rcyIsIl9JY29ucyIsIl9UeXBvZ3JhcGh5IiwiX2NsYXNzbmFtZXMiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9TZWxlY3RGaWVsZFNoZWxsIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9TZWxlY3RPcHRpb25Db250ZW50IiwiX1NlbGVjdFNlYXJjaENvbnRyb2wiLCJfU2VsZWN0VmFsdWVDb250ZW50IiwiX2NvbnN0YW50cyIsIl91dGlscyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIl9fcmVzdCIsInMiLCJwIiwicHJvdG90eXBlIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImxlbmd0aCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwiREVGQVVMVF9NQVhfSEVJR0hUIiwiU2VsZWN0IiwiZXhwb3J0cyIsInByb3BzIiwiX3Byb3BzJGNsYXNzTmFtZSIsImNsYXNzTmFtZSIsIl9wcm9wcyRwcmVmaXhDbHMiLCJwcmVmaXhDbHMiLCJzdHlsZSIsImlkIiwibmFtZSIsImFyaWFMYWJlbCIsImFyaWFMYWJlbGxlZEJ5IiwiX3Byb3BzJHBsYWNlaG9sZGVyIiwicGxhY2Vob2xkZXIiLCJfcHJvcHMkb3B0aW9ucyIsIm9wdGlvbnMiLCJ2YWx1ZSIsImRlZmF1bHRWYWx1ZSIsIl9wcm9wcyRzaXplIiwic2l6ZSIsIl9wcm9wcyRzdGF0dXMiLCJzdGF0dXMiLCJfcHJvcHMkdmFyaWFudCIsInZhcmlhbnQiLCJfcHJvcHMkZGlzYWJsZWQiLCJkaXNhYmxlZCIsIl9wcm9wcyRtdWx0aXBsZSIsIm11bHRpcGxlIiwibWF4VmlzaWJsZVZhbHVlcyIsIl9wcm9wcyRzZWFyY2hhYmxlIiwic2VhcmNoYWJsZSIsIl9wcm9wcyRzZWFyY2hQbGFjZWhvbCIsInNlYXJjaFBsYWNlaG9sZGVyIiwic2VhcmNoVmFsdWUiLCJfcHJvcHMkZGVmYXVsdFNlYXJjaFYiLCJkZWZhdWx0U2VhcmNoVmFsdWUiLCJsYWJlbCIsImluZm8iLCJkZXNjcmlwdGlvbiIsImZlZWRiYWNrIiwiX3Byb3BzJHJlcXVpcmVkIiwicmVxdWlyZWQiLCJwcmVmaXgiLCJfcHJvcHMkZW1wdHlDb250ZW50IiwiZW1wdHlDb250ZW50IiwicGFuZWxGb290ZXIiLCJvcGVuIiwiX3Byb3BzJGRlZmF1bHRPcGVuIiwiZGVmYXVsdE9wZW4iLCJfcHJvcHMkbGlzdE1heEhlaWdodCIsImxpc3RNYXhIZWlnaHQiLCJvbkNoYW5nZSIsIm9uT3BlbkNoYW5nZSIsIm9uU2VhcmNoQ2hhbmdlIiwib25CbHVyIiwiZmlsdGVyT3B0aW9uIiwicmVuZGVyT3B0aW9uIiwicmVuZGVyVmFsdWUiLCJyZWYiLCJyZXN0IiwiY2xhc3NlcyIsInJvb3RDbGFzc25hbWVzIiwiYXV0b0lkIiwidXNlSWQiLCJ0cmlnZ2VySWQiLCJsYWJlbElkIiwiZGVzY3JpcHRpb25JZCIsImZlZWRiYWNrSWQiLCJfdXNlQ29udHJvbGxlZFN0YXRlIiwidXNlQ29udHJvbGxlZFN0YXRlIiwidW5kZWZpbmVkIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJpbm5lclZhbHVlIiwic2V0SW5uZXJWYWx1ZSIsIl91c2VDb250cm9sbGVkU3RhdGUzIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZTQiLCJpbm5lck9wZW4iLCJzZXRJbm5lck9wZW4iLCJfdXNlQ29udHJvbGxlZFN0YXRlNSIsIl91c2VDb250cm9sbGVkU3RhdGU2IiwiaW5uZXJTZWFyY2hWYWx1ZSIsInNldElubmVyU2VhcmNoVmFsdWUiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJhY3RpdmVJbmRleCIsInNldEFjdGl2ZUluZGV4Iiwibm9ybWFsaXplZFNpemUiLCJub3JtYWxpemVTaXplIiwiYWxsT3B0aW9uR3JvdXBzIiwidXNlTWVtbyIsIm5vcm1hbGl6ZU9wdGlvbkdyb3VwcyIsImFsbEZsYXRPcHRpb25zIiwiZmxhdHRlbk9wdGlvbkdyb3VwcyIsInZpc2libGVPcHRpb25Hcm91cHMiLCJmaWx0ZXJPcHRpb25Hcm91cHMiLCJ2aXNpYmxlRmxhdE9wdGlvbnMiLCJzZWxlY3RlZE9wdGlvbnMiLCJnZXRTZWxlY3RlZE9wdGlvbnMiLCJzZWxlY3RlZEluZGV4IiwibWF0Y2hlZEluZGV4IiwiZmluZEluZGV4Iiwib3B0aW9uIiwiaGFzU2VsZWN0aW9uIiwibGlzdFJlZiIsInVzZVJlZiIsImxpc3RDb250ZW50UmVmIiwiZmxvYXRpbmdSZWYiLCJ0cmlnZ2VyUmVmIiwic2VhcmNoSW5wdXRSZWYiLCJoYW5kbGVUcmlnZ2VyUmVmIiwidXNlRXZlbnRDYWxsYmFjayIsIm5vZGUiLCJjdXJyZW50IiwiaGFuZGxlT3BlbkNoYW5nZSIsIm5leHRPcGVuIiwiX3VzZUZsb2F0aW5nIiwidXNlRmxvYXRpbmciLCJwbGFjZW1lbnQiLCJ3aGlsZUVsZW1lbnRzTW91bnRlZCIsImF1dG9VcGRhdGUiLCJtaWRkbGV3YXJlIiwib2Zmc2V0IiwiZmxpcCIsInBhZGRpbmciLCJzaGlmdCIsImZsb2F0aW5nU2l6ZSIsImFwcGx5IiwiX3JlZiIsInJlY3RzIiwiZWxlbWVudHMiLCJhdmFpbGFibGVIZWlnaHQiLCJuZXh0TWF4SGVpZ2h0IiwiTWF0aCIsIm1heCIsIm1pbiIsImFzc2lnbiIsImZsb2F0aW5nIiwid2lkdGgiLCJjb25jYXQiLCJyZWZlcmVuY2UiLCJtYXhIZWlnaHQiLCJyZWZzIiwiZmxvYXRpbmdTdHlsZXMiLCJjb250ZXh0Iiwic2V0UmVmZXJlbmNlIiwic2V0RmxvYXRpbmciLCJjbGljayIsInVzZUNsaWNrIiwiZW5hYmxlZCIsImRpc21pc3MiLCJ1c2VEaXNtaXNzIiwib3V0c2lkZVByZXNzRXZlbnQiLCJyb2xlIiwidXNlUm9sZSIsImxpc3ROYXZpZ2F0aW9uIiwidXNlTGlzdE5hdmlnYXRpb24iLCJvbk5hdmlnYXRlIiwibG9vcCIsInR5cGVhaGVhZCIsInVzZVR5cGVhaGVhZCIsIm9uTWF0Y2giLCJfdXNlSW50ZXJhY3Rpb25zIiwidXNlSW50ZXJhY3Rpb25zIiwiZ2V0UmVmZXJlbmNlUHJvcHMiLCJnZXRGbG9hdGluZ1Byb3BzIiwiZ2V0SXRlbVByb3BzIiwiZmlyc3RFbmFibGVkSW5kZXgiLCJsYXN0RW5hYmxlZEluZGV4IiwiX2EiLCJpbmRleCIsInVzZUVmZmVjdCIsInByZXYiLCJmb2N1cyIsInByZXZlbnRTY3JvbGwiLCJzbGljZSIsIm5vdGlmeUJsdXJJZk91dHNpZGUiLCJyZWxhdGVkVGFyZ2V0IiwiZXZlbnQiLCJfYiIsIm5leHRUYXJnZXQiLCJ3aXRoaW5UcmlnZ2VyIiwiY29udGFpbnMiLCJ3aXRoaW5GbG9hdGluZyIsImhhbmRsZVRyaWdnZXJCbHVyIiwiaGFuZGxlT3B0aW9uQmx1ciIsImNvbW1pdENoYW5nZSIsIm5leHRWYWx1ZSIsIm5leHRPcHRpb24iLCJoYW5kbGVTZWxlY3RPcHRpb24iLCJ0b2dnbGVNdWx0aXBsZVZhbHVlIiwibmV4dE9wdGlvbnMiLCJnZXRPcHRpb25zQnlWYWx1ZXMiLCJoYW5kbGVSZW1vdmVTZWxlY3RlZFZhbHVlIiwib3B0aW9uVmFsdWUiLCJnZXRNdWx0aXBsZVZhbHVlIiwiaW5jbHVkZXMiLCJyZW1vdmVNdWx0aXBsZVZhbHVlIiwiaGFuZGxlVHJpZ2dlcktleURvd24iLCJrZXkiLCJwcmV2ZW50RGVmYXVsdCIsImhhbmRsZUl0ZW1Nb3VzZUVudGVyIiwiaGFuZGxlVGFnUmVtb3ZlTW91c2VEb3duIiwic3RvcFByb3BhZ2F0aW9uIiwiaGFuZGxlVGFnUmVtb3ZlQ2xpY2siLCJoYW5kbGVTZWFyY2hCbHVyIiwiaGFuZGxlU2VhcmNoQ2hhbmdlIiwiX2V2ZW50IiwiaGFuZGxlU2VhcmNoS2V5RG93biIsIl9jIiwicmVuZGVyVmFsdWVNZXRhIiwidmFsdWVMYWJlbENsYXNzIiwiaXNNdWx0aXBsZVZhbHVlRmlsbGVkIiwidHJpZ2dlckNsYXNzTmFtZSIsImpvaW5DbHMiLCJpY29uU2l6ZSIsImZsb2F0aW5nQXJpYUxhYmVsbGVkQnkiLCJkZXNjcmliZWRCeUlkcyIsImZpbHRlciIsIkJvb2xlYW4iLCJqb2luIiwiX2pzeHMiLCJTZWxlY3RGaWVsZFNoZWxsIiwiY2hpbGRyZW4iLCJ0eXBlIiwib25LZXlEb3duIiwiX2pzeCIsIlNlbGVjdFZhbHVlQ29udGVudCIsIm9uUmVtb3ZlIiwib25SZW1vdmVDbGljayIsIm9uUmVtb3ZlTW91c2VEb3duIiwiSWNvbnMiLCJjb2xvciIsIkZsb2F0aW5nUG9ydGFsIiwiRmxvYXRpbmdGb2N1c01hbmFnZXIiLCJtb2RhbCIsImluaXRpYWxGb2N1cyIsInJldHVybkZvY3VzIiwiU2VsZWN0U2VhcmNoQ29udHJvbCIsIlR5cG9ncmFwaHlCb2R5IiwiU0VMRUNUX1RZUE9HUkFQSFkiLCJlbXB0eSIsImZsYXRJbmRleCIsIm1hcCIsImdyb3VwIiwiVHlwb2dyYXBoeUxhYmVsIiwiZ3JvdXBMYWJlbCIsInN0cm9uZyIsIm9wdGlvbkZsYXRJbmRleCIsInNlbGVjdGVkIiwiaXNPcHRpb25TZWxlY3RlZCIsImFjdGl2ZSIsIm9wdGlvbk1ldGEiLCJleHRyYWN0T3B0aW9uVGV4dCIsIm9uQ2xpY2siLCJvbk1vdXNlRW50ZXIiLCJTZWxlY3RPcHRpb25Db250ZW50IiwiZGlzcGxheU5hbWUiLCJfZGVmYXVsdCIsIm1lbW8iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQVdBLElBQUFBLFdBQUEsR0FBQUMsT0FBQTtBQ1hBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQWdCQSxJQUFBRSxPQUFBLEdBQUFGLE9B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ZWxlY3QvU2VsZWN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IGF1dG9VcGRhdGUsIGZsaXAsIEZsb2F0aW5nRm9jdXNNYW5hZ2VyLCBGbG9hdGluZ1BvcnRhbCwgb2Zmc2V0LCBzaGlmdCwgc2l6ZSBhcyBmbG9hdGluZ1NpemUsIHVzZUNsaWNrLCB1c2VEaXNtaXNzLCB1c2VGbG9hdGluZywgdXNlSW50ZXJhY3Rpb25zLCB1c2VMaXN0TmF2aWdhdGlvbiwgdXNlUm9sZSwgdXNlVHlwZWFoZWFkLCB9IGZyb20gJ0BmbG9hdGluZy11aS9yZWFjdCc7XG5pbXBvcnQgeyBtZW1vLCB1c2VFZmZlY3QsIHVzZUlkLCB1c2VNZW1vLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlQ29udHJvbGxlZFN0YXRlLCB1c2VFdmVudENhbGxiYWNrIH0gZnJvbSAnQDFtb25leS9ob29rcyc7XG5pbXBvcnQgeyBJY29ucyB9IGZyb20gJy4uL0ljb25zJztcbmltcG9ydCB7IFR5cG9ncmFwaHlCb2R5LCBUeXBvZ3JhcGh5TGFiZWwgfSBmcm9tICcuLi9UeXBvZ3JhcGh5JztcbmltcG9ydCB7IGpvaW5DbHMsIGRlZmF1bHQgYXMgcm9vdENsYXNzbmFtZXMgfSBmcm9tICcuLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCBTZWxlY3RGaWVsZFNoZWxsIGZyb20gJy4vU2VsZWN0RmllbGRTaGVsbCc7XG5pbXBvcnQgU2VsZWN0T3B0aW9uQ29udGVudCBmcm9tICcuL1NlbGVjdE9wdGlvbkNvbnRlbnQnO1xuaW1wb3J0IFNlbGVjdFNlYXJjaENvbnRyb2wgZnJvbSAnLi9TZWxlY3RTZWFyY2hDb250cm9sJztcbmltcG9ydCBTZWxlY3RWYWx1ZUNvbnRlbnQgZnJvbSAnLi9TZWxlY3RWYWx1ZUNvbnRlbnQnO1xuaW1wb3J0IHsgU0VMRUNUX1RZUE9HUkFQSFkgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBleHRyYWN0T3B0aW9uVGV4dCwgZmlsdGVyT3B0aW9uR3JvdXBzLCBmbGF0dGVuT3B0aW9uR3JvdXBzLCBnZXRNdWx0aXBsZVZhbHVlLCBnZXRPcHRpb25zQnlWYWx1ZXMsIGdldFNlbGVjdGVkT3B0aW9ucywgaXNPcHRpb25TZWxlY3RlZCwgbm9ybWFsaXplU2l6ZSwgbm9ybWFsaXplT3B0aW9uR3JvdXBzLCByZW1vdmVNdWx0aXBsZVZhbHVlLCB0b2dnbGVNdWx0aXBsZVZhbHVlLCB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0ICcuL3N0eWxlJztcbmNvbnN0IERFRkFVTFRfTUFYX0hFSUdIVCA9IDMyMDtcbmV4cG9ydCBjb25zdCBTZWxlY3QgPSAocHJvcHMpID0+IHtcbiAgICBjb25zdCB7IGNsYXNzTmFtZSA9ICcnLCBwcmVmaXhDbHMgPSAnc2VsZWN0Jywgc3R5bGUsIGlkLCBuYW1lLCAnYXJpYS1sYWJlbCc6IGFyaWFMYWJlbCwgJ2FyaWEtbGFiZWxsZWRieSc6IGFyaWFMYWJlbGxlZEJ5LCBwbGFjZWhvbGRlciA9ICdWYWx1ZScsIG9wdGlvbnMgPSBbXSwgdmFsdWUsIGRlZmF1bHRWYWx1ZSwgc2l6ZSA9ICdsYXJnZScsIHN0YXR1cyA9ICdkZWZhdWx0JywgdmFyaWFudCA9ICdmaWxsJywgZGlzYWJsZWQgPSBmYWxzZSwgbXVsdGlwbGUgPSBmYWxzZSwgbWF4VmlzaWJsZVZhbHVlcywgc2VhcmNoYWJsZSA9IGZhbHNlLCBzZWFyY2hQbGFjZWhvbGRlciA9ICdTZWFyY2gnLCBzZWFyY2hWYWx1ZSwgZGVmYXVsdFNlYXJjaFZhbHVlID0gJycsIGxhYmVsLCBpbmZvLCBkZXNjcmlwdGlvbiwgZmVlZGJhY2ssIHJlcXVpcmVkID0gZmFsc2UsIHByZWZpeCwgZW1wdHlDb250ZW50ID0gJ05vIG9wdGlvbnMnLCBwYW5lbEZvb3Rlciwgb3BlbiwgZGVmYXVsdE9wZW4gPSBmYWxzZSwgbGlzdE1heEhlaWdodCA9IERFRkFVTFRfTUFYX0hFSUdIVCwgb25DaGFuZ2UsIG9uT3BlbkNoYW5nZSwgb25TZWFyY2hDaGFuZ2UsIG9uQmx1ciwgZmlsdGVyT3B0aW9uLCByZW5kZXJPcHRpb24sIHJlbmRlclZhbHVlLCByZWYgfSA9IHByb3BzLCByZXN0ID0gX19yZXN0KHByb3BzLCBbXCJjbGFzc05hbWVcIiwgXCJwcmVmaXhDbHNcIiwgXCJzdHlsZVwiLCBcImlkXCIsIFwibmFtZVwiLCAnYXJpYS1sYWJlbCcsICdhcmlhLWxhYmVsbGVkYnknLCBcInBsYWNlaG9sZGVyXCIsIFwib3B0aW9uc1wiLCBcInZhbHVlXCIsIFwiZGVmYXVsdFZhbHVlXCIsIFwic2l6ZVwiLCBcInN0YXR1c1wiLCBcInZhcmlhbnRcIiwgXCJkaXNhYmxlZFwiLCBcIm11bHRpcGxlXCIsIFwibWF4VmlzaWJsZVZhbHVlc1wiLCBcInNlYXJjaGFibGVcIiwgXCJzZWFyY2hQbGFjZWhvbGRlclwiLCBcInNlYXJjaFZhbHVlXCIsIFwiZGVmYXVsdFNlYXJjaFZhbHVlXCIsIFwibGFiZWxcIiwgXCJpbmZvXCIsIFwiZGVzY3JpcHRpb25cIiwgXCJmZWVkYmFja1wiLCBcInJlcXVpcmVkXCIsIFwicHJlZml4XCIsIFwiZW1wdHlDb250ZW50XCIsIFwicGFuZWxGb290ZXJcIiwgXCJvcGVuXCIsIFwiZGVmYXVsdE9wZW5cIiwgXCJsaXN0TWF4SGVpZ2h0XCIsIFwib25DaGFuZ2VcIiwgXCJvbk9wZW5DaGFuZ2VcIiwgXCJvblNlYXJjaENoYW5nZVwiLCBcIm9uQmx1clwiLCBcImZpbHRlck9wdGlvblwiLCBcInJlbmRlck9wdGlvblwiLCBcInJlbmRlclZhbHVlXCIsIFwicmVmXCJdKTtcbiAgICBjb25zdCBjbGFzc2VzID0gcm9vdENsYXNzbmFtZXMocHJlZml4Q2xzKTtcbiAgICBjb25zdCBhdXRvSWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IHRyaWdnZXJJZCA9IGlkICE9PSBudWxsICYmIGlkICE9PSB2b2lkIDAgPyBpZCA6IGF1dG9JZDtcbiAgICBjb25zdCBsYWJlbElkID0gdXNlSWQoKTtcbiAgICBjb25zdCBkZXNjcmlwdGlvbklkID0gdXNlSWQoKTtcbiAgICBjb25zdCBmZWVkYmFja0lkID0gdXNlSWQoKTtcbiAgICBjb25zdCBbaW5uZXJWYWx1ZSwgc2V0SW5uZXJWYWx1ZV0gPSB1c2VDb250cm9sbGVkU3RhdGUoZGVmYXVsdFZhbHVlICE9PSBudWxsICYmIGRlZmF1bHRWYWx1ZSAhPT0gdm9pZCAwID8gZGVmYXVsdFZhbHVlIDogKG11bHRpcGxlID8gW10gOiB1bmRlZmluZWQpLCB2YWx1ZSk7XG4gICAgY29uc3QgW2lubmVyT3Blbiwgc2V0SW5uZXJPcGVuXSA9IHVzZUNvbnRyb2xsZWRTdGF0ZShkZWZhdWx0T3Blbiwgb3Blbik7XG4gICAgY29uc3QgW2lubmVyU2VhcmNoVmFsdWUsIHNldElubmVyU2VhcmNoVmFsdWVdID0gdXNlQ29udHJvbGxlZFN0YXRlKGRlZmF1bHRTZWFyY2hWYWx1ZSwgc2VhcmNoVmFsdWUpO1xuICAgIGNvbnN0IFthY3RpdmVJbmRleCwgc2V0QWN0aXZlSW5kZXhdID0gdXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3Qgbm9ybWFsaXplZFNpemUgPSBub3JtYWxpemVTaXplKHNpemUpO1xuICAgIGNvbnN0IGFsbE9wdGlvbkdyb3VwcyA9IHVzZU1lbW8oKCkgPT4gbm9ybWFsaXplT3B0aW9uR3JvdXBzKG9wdGlvbnMpLCBbb3B0aW9uc10pO1xuICAgIGNvbnN0IGFsbEZsYXRPcHRpb25zID0gdXNlTWVtbygoKSA9PiBmbGF0dGVuT3B0aW9uR3JvdXBzKGFsbE9wdGlvbkdyb3VwcyksIFthbGxPcHRpb25Hcm91cHNdKTtcbiAgICBjb25zdCB2aXNpYmxlT3B0aW9uR3JvdXBzID0gdXNlTWVtbygoKSA9PiAoc2VhcmNoYWJsZVxuICAgICAgICA/IGZpbHRlck9wdGlvbkdyb3VwcyhhbGxPcHRpb25Hcm91cHMsIGlubmVyU2VhcmNoVmFsdWUsIGZpbHRlck9wdGlvbilcbiAgICAgICAgOiBhbGxPcHRpb25Hcm91cHMpLCBbYWxsT3B0aW9uR3JvdXBzLCBmaWx0ZXJPcHRpb24sIGlubmVyU2VhcmNoVmFsdWUsIHNlYXJjaGFibGVdKTtcbiAgICBjb25zdCB2aXNpYmxlRmxhdE9wdGlvbnMgPSB1c2VNZW1vKCgpID0+IGZsYXR0ZW5PcHRpb25Hcm91cHModmlzaWJsZU9wdGlvbkdyb3VwcyksIFt2aXNpYmxlT3B0aW9uR3JvdXBzXSk7XG4gICAgY29uc3Qgc2VsZWN0ZWRPcHRpb25zID0gdXNlTWVtbygoKSA9PiBnZXRTZWxlY3RlZE9wdGlvbnMoYWxsRmxhdE9wdGlvbnMsIGlubmVyVmFsdWUsIG11bHRpcGxlKSwgW2FsbEZsYXRPcHRpb25zLCBpbm5lclZhbHVlLCBtdWx0aXBsZV0pO1xuICAgIGNvbnN0IHNlbGVjdGVkSW5kZXggPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgaWYgKHNlbGVjdGVkT3B0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG1hdGNoZWRJbmRleCA9IHZpc2libGVGbGF0T3B0aW9ucy5maW5kSW5kZXgoKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlID09PSBzZWxlY3RlZE9wdGlvbnNbMF0udmFsdWUpO1xuICAgICAgICByZXR1cm4gbWF0Y2hlZEluZGV4ID49IDAgPyBtYXRjaGVkSW5kZXggOiBudWxsO1xuICAgIH0sIFtzZWxlY3RlZE9wdGlvbnMsIHZpc2libGVGbGF0T3B0aW9uc10pO1xuICAgIGNvbnN0IGhhc1NlbGVjdGlvbiA9IHNlbGVjdGVkT3B0aW9ucy5sZW5ndGggPiAwO1xuICAgIGNvbnN0IGxpc3RSZWYgPSB1c2VSZWYoW10pO1xuICAgIGNvbnN0IGxpc3RDb250ZW50UmVmID0gdXNlUmVmKFtdKTtcbiAgICBjb25zdCBmbG9hdGluZ1JlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCB0cmlnZ2VyUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHNlYXJjaElucHV0UmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IGhhbmRsZVRyaWdnZXJSZWYgPSB1c2VFdmVudENhbGxiYWNrKChub2RlKSA9PiB7XG4gICAgICAgIHRyaWdnZXJSZWYuY3VycmVudCA9IG5vZGU7XG4gICAgICAgIGlmIChyZWYpIHtcbiAgICAgICAgICAgIHJlZi5jdXJyZW50ID0gbm9kZTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZU9wZW5DaGFuZ2UgPSB1c2VFdmVudENhbGxiYWNrKChuZXh0T3BlbikgPT4ge1xuICAgICAgICBzZXRJbm5lck9wZW4obmV4dE9wZW4pO1xuICAgICAgICBvbk9wZW5DaGFuZ2UgPT09IG51bGwgfHwgb25PcGVuQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbk9wZW5DaGFuZ2UobmV4dE9wZW4pO1xuICAgIH0pO1xuICAgIGNvbnN0IHsgcmVmcywgZmxvYXRpbmdTdHlsZXMsIGNvbnRleHQsIH0gPSB1c2VGbG9hdGluZyh7XG4gICAgICAgIG9wZW46IGlubmVyT3BlbixcbiAgICAgICAgb25PcGVuQ2hhbmdlOiBoYW5kbGVPcGVuQ2hhbmdlLFxuICAgICAgICBwbGFjZW1lbnQ6ICdib3R0b20tc3RhcnQnLFxuICAgICAgICB3aGlsZUVsZW1lbnRzTW91bnRlZDogYXV0b1VwZGF0ZSxcbiAgICAgICAgbWlkZGxld2FyZTogW1xuICAgICAgICAgICAgb2Zmc2V0KDApLFxuICAgICAgICAgICAgZmxpcCh7IHBhZGRpbmc6IDggfSksXG4gICAgICAgICAgICBzaGlmdCh7IHBhZGRpbmc6IDggfSksXG4gICAgICAgICAgICBmbG9hdGluZ1NpemUoe1xuICAgICAgICAgICAgICAgIGFwcGx5KHsgcmVjdHMsIGVsZW1lbnRzLCBhdmFpbGFibGVIZWlnaHQgfSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXh0TWF4SGVpZ2h0ID0gTWF0aC5tYXgoMTIwLCBNYXRoLm1pbihsaXN0TWF4SGVpZ2h0LCBhdmFpbGFibGVIZWlnaHQpKTtcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihlbGVtZW50cy5mbG9hdGluZy5zdHlsZSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGAke3JlY3RzLnJlZmVyZW5jZS53aWR0aH1weGAsXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXhIZWlnaHQ6IGAke25leHRNYXhIZWlnaHR9cHhgLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSksXG4gICAgICAgIF0sXG4gICAgfSk7XG4gICAgY29uc3Qgc2V0UmVmZXJlbmNlID0gdXNlRXZlbnRDYWxsYmFjaygobm9kZSkgPT4ge1xuICAgICAgICByZWZzLnNldFJlZmVyZW5jZShub2RlKTtcbiAgICAgICAgaGFuZGxlVHJpZ2dlclJlZihub2RlKTtcbiAgICB9KTtcbiAgICBjb25zdCBzZXRGbG9hdGluZyA9IHVzZUV2ZW50Q2FsbGJhY2soKG5vZGUpID0+IHtcbiAgICAgICAgcmVmcy5zZXRGbG9hdGluZyhub2RlKTtcbiAgICAgICAgZmxvYXRpbmdSZWYuY3VycmVudCA9IG5vZGU7XG4gICAgfSk7XG4gICAgY29uc3QgY2xpY2sgPSB1c2VDbGljayhjb250ZXh0LCB7IGVuYWJsZWQ6ICFkaXNhYmxlZCB9KTtcbiAgICBjb25zdCBkaXNtaXNzID0gdXNlRGlzbWlzcyhjb250ZXh0LCB7IGVuYWJsZWQ6ICFkaXNhYmxlZCwgb3V0c2lkZVByZXNzRXZlbnQ6ICdtb3VzZWRvd24nIH0pO1xuICAgIGNvbnN0IHJvbGUgPSB1c2VSb2xlKGNvbnRleHQsIHsgcm9sZTogJ3NlbGVjdCcgfSk7XG4gICAgY29uc3QgbGlzdE5hdmlnYXRpb24gPSB1c2VMaXN0TmF2aWdhdGlvbihjb250ZXh0LCB7XG4gICAgICAgIGxpc3RSZWYsXG4gICAgICAgIGFjdGl2ZUluZGV4LFxuICAgICAgICBzZWxlY3RlZEluZGV4LFxuICAgICAgICBvbk5hdmlnYXRlOiBzZXRBY3RpdmVJbmRleCxcbiAgICAgICAgZW5hYmxlZDogaW5uZXJPcGVuLFxuICAgICAgICBsb29wOiB0cnVlLFxuICAgIH0pO1xuICAgIGNvbnN0IHR5cGVhaGVhZCA9IHVzZVR5cGVhaGVhZChjb250ZXh0LCB7XG4gICAgICAgIGxpc3RSZWY6IGxpc3RDb250ZW50UmVmLFxuICAgICAgICBhY3RpdmVJbmRleCxcbiAgICAgICAgc2VsZWN0ZWRJbmRleCxcbiAgICAgICAgZW5hYmxlZDogaW5uZXJPcGVuICYmICFzZWFyY2hhYmxlLFxuICAgICAgICBvbk1hdGNoOiBzZXRBY3RpdmVJbmRleCxcbiAgICB9KTtcbiAgICBjb25zdCB7IGdldFJlZmVyZW5jZVByb3BzLCBnZXRGbG9hdGluZ1Byb3BzLCBnZXRJdGVtUHJvcHMgfSA9IHVzZUludGVyYWN0aW9ucyhbXG4gICAgICAgIGNsaWNrLFxuICAgICAgICBkaXNtaXNzLFxuICAgICAgICByb2xlLFxuICAgICAgICBsaXN0TmF2aWdhdGlvbixcbiAgICAgICAgdHlwZWFoZWFkLFxuICAgIF0pO1xuICAgIGNvbnN0IGZpcnN0RW5hYmxlZEluZGV4ID0gdXNlTWVtbygoKSA9PiB2aXNpYmxlRmxhdE9wdGlvbnMuZmluZEluZGV4KChvcHRpb24pID0+ICFvcHRpb24uZGlzYWJsZWQpLCBbdmlzaWJsZUZsYXRPcHRpb25zXSk7XG4gICAgY29uc3QgbGFzdEVuYWJsZWRJbmRleCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGZvciAobGV0IGluZGV4ID0gdmlzaWJsZUZsYXRPcHRpb25zLmxlbmd0aCAtIDE7IGluZGV4ID49IDA7IGluZGV4IC09IDEpIHtcbiAgICAgICAgICAgIGlmICghKChfYSA9IHZpc2libGVGbGF0T3B0aW9uc1tpbmRleF0pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5kaXNhYmxlZCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaW5kZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSwgW3Zpc2libGVGbGF0T3B0aW9uc10pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmICghaW5uZXJPcGVuKSB7XG4gICAgICAgICAgICBzZXRBY3RpdmVJbmRleChzZWxlY3RlZEluZGV4KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBzZXRBY3RpdmVJbmRleCgocHJldikgPT4ge1xuICAgICAgICAgICAgaWYgKHByZXYgIT09IG51bGwgJiYgdmlzaWJsZUZsYXRPcHRpb25zW3ByZXZdICYmICF2aXNpYmxlRmxhdE9wdGlvbnNbcHJldl0uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcHJldjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEluZGV4ICE9PSBudWxsICYmXG4gICAgICAgICAgICAgICAgdmlzaWJsZUZsYXRPcHRpb25zW3NlbGVjdGVkSW5kZXhdICYmXG4gICAgICAgICAgICAgICAgIXZpc2libGVGbGF0T3B0aW9uc1tzZWxlY3RlZEluZGV4XS5kaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBzZWxlY3RlZEluZGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZpcnN0RW5hYmxlZEluZGV4ID49IDAgPyBmaXJzdEVuYWJsZWRJbmRleCA6IG51bGw7XG4gICAgICAgIH0pO1xuICAgIH0sIFtmaXJzdEVuYWJsZWRJbmRleCwgaW5uZXJPcGVuLCBzZWxlY3RlZEluZGV4LCB2aXNpYmxlRmxhdE9wdGlvbnNdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmICghaW5uZXJPcGVuIHx8IGFjdGl2ZUluZGV4ID09PSBudWxsIHx8IHNlYXJjaGFibGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAoX2EgPSBsaXN0UmVmLmN1cnJlbnRbYWN0aXZlSW5kZXhdKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgIH0sIFthY3RpdmVJbmRleCwgaW5uZXJPcGVuLCBzZWFyY2hhYmxlXSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgbGlzdFJlZi5jdXJyZW50ID0gbGlzdFJlZi5jdXJyZW50LnNsaWNlKDAsIHZpc2libGVGbGF0T3B0aW9ucy5sZW5ndGgpO1xuICAgICAgICBsaXN0Q29udGVudFJlZi5jdXJyZW50ID0gbGlzdENvbnRlbnRSZWYuY3VycmVudC5zbGljZSgwLCB2aXNpYmxlRmxhdE9wdGlvbnMubGVuZ3RoKTtcbiAgICB9LCBbdmlzaWJsZUZsYXRPcHRpb25zLmxlbmd0aF0pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKGlubmVyT3BlbiAmJiBzZWFyY2hhYmxlKSB7XG4gICAgICAgICAgICAoX2EgPSBzZWFyY2hJbnB1dFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgICAgICB9XG4gICAgfSwgW2lubmVyT3Blbiwgc2VhcmNoYWJsZV0pO1xuICAgIGNvbnN0IG5vdGlmeUJsdXJJZk91dHNpZGUgPSB1c2VFdmVudENhbGxiYWNrKChyZWxhdGVkVGFyZ2V0LCBldmVudCkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBjb25zdCBuZXh0VGFyZ2V0ID0gcmVsYXRlZFRhcmdldDtcbiAgICAgICAgY29uc3Qgd2l0aGluVHJpZ2dlciA9ICEhKG5leHRUYXJnZXQgJiYgKChfYSA9IHRyaWdnZXJSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNvbnRhaW5zKG5leHRUYXJnZXQpKSk7XG4gICAgICAgIGNvbnN0IHdpdGhpbkZsb2F0aW5nID0gISEobmV4dFRhcmdldCAmJiAoKF9iID0gZmxvYXRpbmdSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNvbnRhaW5zKG5leHRUYXJnZXQpKSk7XG4gICAgICAgIGlmICghd2l0aGluVHJpZ2dlciAmJiAhd2l0aGluRmxvYXRpbmcpIHtcbiAgICAgICAgICAgIG9uQmx1ciA9PT0gbnVsbCB8fCBvbkJsdXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQmx1cihldmVudCk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVUcmlnZ2VyQmx1ciA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIG5vdGlmeUJsdXJJZk91dHNpZGUoZXZlbnQucmVsYXRlZFRhcmdldCwgZXZlbnQpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZU9wdGlvbkJsdXIgPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBub3RpZnlCbHVySWZPdXRzaWRlKGV2ZW50LnJlbGF0ZWRUYXJnZXQsIGV2ZW50KTtcbiAgICB9KTtcbiAgICBjb25zdCBjb21taXRDaGFuZ2UgPSB1c2VFdmVudENhbGxiYWNrKChuZXh0VmFsdWUsIG5leHRPcHRpb24pID0+IHtcbiAgICAgICAgc2V0SW5uZXJWYWx1ZShuZXh0VmFsdWUpO1xuICAgICAgICBvbkNoYW5nZSA9PT0gbnVsbCB8fCBvbkNoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25DaGFuZ2UobmV4dFZhbHVlLCBuZXh0T3B0aW9uKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVTZWxlY3RPcHRpb24gPSB1c2VFdmVudENhbGxiYWNrKChvcHRpb24pID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAob3B0aW9uLmRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG11bHRpcGxlKSB7XG4gICAgICAgICAgICBjb25zdCBuZXh0VmFsdWUgPSB0b2dnbGVNdWx0aXBsZVZhbHVlKGlubmVyVmFsdWUsIG9wdGlvbi52YWx1ZSk7XG4gICAgICAgICAgICBjb25zdCBuZXh0T3B0aW9ucyA9IGdldE9wdGlvbnNCeVZhbHVlcyhhbGxGbGF0T3B0aW9ucywgbmV4dFZhbHVlKTtcbiAgICAgICAgICAgIGNvbW1pdENoYW5nZShuZXh0VmFsdWUsIG5leHRPcHRpb25zKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb21taXRDaGFuZ2Uob3B0aW9uLnZhbHVlLCBvcHRpb24pO1xuICAgICAgICBoYW5kbGVPcGVuQ2hhbmdlKGZhbHNlKTtcbiAgICAgICAgb25CbHVyID09PSBudWxsIHx8IG9uQmx1ciA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25CbHVyKCk7XG4gICAgICAgIChfYSA9IHRyaWdnZXJSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVSZW1vdmVTZWxlY3RlZFZhbHVlID0gdXNlRXZlbnRDYWxsYmFjaygob3B0aW9uVmFsdWUpID0+IHtcbiAgICAgICAgaWYgKCFtdWx0aXBsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICghZ2V0TXVsdGlwbGVWYWx1ZShpbm5lclZhbHVlKS5pbmNsdWRlcyhvcHRpb25WYWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuZXh0VmFsdWUgPSByZW1vdmVNdWx0aXBsZVZhbHVlKGlubmVyVmFsdWUsIG9wdGlvblZhbHVlKTtcbiAgICAgICAgY29uc3QgbmV4dE9wdGlvbnMgPSBnZXRPcHRpb25zQnlWYWx1ZXMoYWxsRmxhdE9wdGlvbnMsIG5leHRWYWx1ZSk7XG4gICAgICAgIGNvbW1pdENoYW5nZShuZXh0VmFsdWUsIG5leHRPcHRpb25zKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVUcmlnZ2VyS2V5RG93biA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChkaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicgfHwgZXZlbnQua2V5ID09PSAnICcpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBoYW5kbGVPcGVuQ2hhbmdlKCFpbm5lck9wZW4pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09ICdBcnJvd0Rvd24nIHx8IGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaWYgKCFpbm5lck9wZW4pIHtcbiAgICAgICAgICAgICAgICBoYW5kbGVPcGVuQ2hhbmdlKHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlSXRlbU1vdXNlRW50ZXIgPSB1c2VFdmVudENhbGxiYWNrKChpbmRleCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmICghKChfYSA9IHZpc2libGVGbGF0T3B0aW9uc1tpbmRleF0pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5kaXNhYmxlZCkpIHtcbiAgICAgICAgICAgIHNldEFjdGl2ZUluZGV4KGluZGV4KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVRhZ1JlbW92ZU1vdXNlRG93biA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVRhZ1JlbW92ZUNsaWNrID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlU2VhcmNoQmx1ciA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIG5vdGlmeUJsdXJJZk91dHNpZGUoZXZlbnQucmVsYXRlZFRhcmdldCwgZXZlbnQpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVNlYXJjaENoYW5nZSA9IHVzZUV2ZW50Q2FsbGJhY2soKG5leHRWYWx1ZSwgX2V2ZW50KSA9PiB7XG4gICAgICAgIHNldElubmVyU2VhcmNoVmFsdWUobmV4dFZhbHVlKTtcbiAgICAgICAgb25TZWFyY2hDaGFuZ2UgPT09IG51bGwgfHwgb25TZWFyY2hDaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uU2VhcmNoQ2hhbmdlKG5leHRWYWx1ZSk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlU2VhcmNoS2V5RG93biA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jO1xuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJyAmJiBmaXJzdEVuYWJsZWRJbmRleCA+PSAwKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgc2V0QWN0aXZlSW5kZXgoZmlyc3RFbmFibGVkSW5kZXgpO1xuICAgICAgICAgICAgKF9hID0gbGlzdFJlZi5jdXJyZW50W2ZpcnN0RW5hYmxlZEluZGV4XSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dVcCcgJiYgbGFzdEVuYWJsZWRJbmRleCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHNldEFjdGl2ZUluZGV4KGxhc3RFbmFibGVkSW5kZXgpO1xuICAgICAgICAgICAgKF9iID0gbGlzdFJlZi5jdXJyZW50W2xhc3RFbmFibGVkSW5kZXhdKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaGFuZGxlT3BlbkNoYW5nZShmYWxzZSk7XG4gICAgICAgICAgICAoX2MgPSB0cmlnZ2VyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCByZW5kZXJWYWx1ZU1ldGEgPSB7XG4gICAgICAgIGRpc2FibGVkLFxuICAgICAgICBtdWx0aXBsZSxcbiAgICAgICAgbWF4VmlzaWJsZVZhbHVlcyxcbiAgICAgICAgb3BlbjogaW5uZXJPcGVuLFxuICAgICAgICBwbGFjZWhvbGRlcjogIWhhc1NlbGVjdGlvbixcbiAgICAgICAgc2VsZWN0ZWRPcHRpb25zLFxuICAgIH07XG4gICAgY29uc3QgdmFsdWVMYWJlbENsYXNzID0gaGFzU2VsZWN0aW9uID8gJ3ZhbHVlJyA6ICdwbGFjZWhvbGRlcic7XG4gICAgY29uc3QgaXNNdWx0aXBsZVZhbHVlRmlsbGVkID0gKG11bHRpcGxlICYmXG4gICAgICAgIGhhc1NlbGVjdGlvbiAmJlxuICAgICAgICBtYXhWaXNpYmxlVmFsdWVzID09PSB1bmRlZmluZWQpO1xuICAgIGNvbnN0IHRyaWdnZXJDbGFzc05hbWUgPSBjbGFzc2VzKCd0cmlnZ2VyJywgam9pbkNscyhjbGFzc2VzKGB0cmlnZ2VyLSR7bm9ybWFsaXplZFNpemV9YCksIGNsYXNzZXMoYHRyaWdnZXItJHt2YXJpYW50fWApLCBpbm5lck9wZW4gJiYgY2xhc3NlcygndHJpZ2dlci1vcGVuJyksIGlzTXVsdGlwbGVWYWx1ZUZpbGxlZCAmJiBjbGFzc2VzKCd0cmlnZ2VyLW11bHRpcGxlLWZpbGxlZCcpLCBoYXNTZWxlY3Rpb24gPyBjbGFzc2VzKCd0cmlnZ2VyLWZpbGxlZCcpIDogY2xhc3NlcygndHJpZ2dlci1wbGFjZWhvbGRlcicpLCBzdGF0dXMgIT09ICdkZWZhdWx0JyAmJiBjbGFzc2VzKGB0cmlnZ2VyLSR7c3RhdHVzfWApLCBkaXNhYmxlZCAmJiBjbGFzc2VzKCd0cmlnZ2VyLWRpc2FibGVkJykpKTtcbiAgICBjb25zdCBpY29uU2l6ZSA9IG5vcm1hbGl6ZWRTaXplID09PSAnc21hbGwnID8gMTYgOiAyMDtcbiAgICBjb25zdCBmbG9hdGluZ0FyaWFMYWJlbGxlZEJ5ID0gYXJpYUxhYmVsbGVkQnkgIT09IG51bGwgJiYgYXJpYUxhYmVsbGVkQnkgIT09IHZvaWQgMCA/IGFyaWFMYWJlbGxlZEJ5IDogKGxhYmVsID8gbGFiZWxJZCA6IHVuZGVmaW5lZCk7XG4gICAgY29uc3QgZGVzY3JpYmVkQnlJZHMgPSBbXG4gICAgICAgIGRlc2NyaXB0aW9uID8gZGVzY3JpcHRpb25JZCA6IG51bGwsXG4gICAgICAgIGZlZWRiYWNrID8gZmVlZGJhY2tJZCA6IG51bGwsXG4gICAgXS5maWx0ZXIoQm9vbGVhbikuam9pbignICcpIHx8IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gKF9qc3hzKFNlbGVjdEZpZWxkU2hlbGwsIHsgY2xhc3NlczogY2xhc3NlcywgY2xhc3NOYW1lOiBjbGFzc05hbWUsIHNpemU6IG5vcm1hbGl6ZWRTaXplLCB2YXJpYW50OiB2YXJpYW50LCBzdGF0dXM6IHN0YXR1cywgZGlzYWJsZWQ6IGRpc2FibGVkLCBsYWJlbDogbGFiZWwsIGluZm86IGluZm8sIGRlc2NyaXB0aW9uOiBkZXNjcmlwdGlvbiwgZmVlZGJhY2s6IGZlZWRiYWNrLCByZXF1aXJlZDogcmVxdWlyZWQsIGxhYmVsSWQ6IGxhYmVsSWQsIGRlc2NyaXB0aW9uSWQ6IGRlc2NyaXB0aW9uSWQsIGZlZWRiYWNrSWQ6IGZlZWRiYWNrSWQsIGNoaWxkcmVuOiBbX2pzeHMoXCJidXR0b25cIiwgT2JqZWN0LmFzc2lnbih7fSwgZ2V0UmVmZXJlbmNlUHJvcHMoe1xuICAgICAgICAgICAgICAgIHJlZjogc2V0UmVmZXJlbmNlLFxuICAgICAgICAgICAgICAgIGlkOiB0cmlnZ2VySWQsXG4gICAgICAgICAgICAgICAgdHlwZTogJ2J1dHRvbicsXG4gICAgICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6IHRyaWdnZXJDbGFzc05hbWUsXG4gICAgICAgICAgICAgICAgb25LZXlEb3duOiBoYW5kbGVUcmlnZ2VyS2V5RG93bixcbiAgICAgICAgICAgICAgICBvbkJsdXI6IGhhbmRsZVRyaWdnZXJCbHVyLFxuICAgICAgICAgICAgICAgICdhcmlhLWxhYmVsJzogYXJpYUxhYmVsLFxuICAgICAgICAgICAgICAgICdhcmlhLWxhYmVsbGVkYnknOiBmbG9hdGluZ0FyaWFMYWJlbGxlZEJ5LFxuICAgICAgICAgICAgICAgICdhcmlhLWRlc2NyaWJlZGJ5JzogZGVzY3JpYmVkQnlJZHMsXG4gICAgICAgICAgICB9KSwgeyBjaGlsZHJlbjogW19qc3hzKFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnY29udGVudCcpLCBjaGlsZHJlbjogW3ByZWZpeCAmJiBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygncHJlZml4JyksIGNoaWxkcmVuOiBwcmVmaXggfSksIF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKHZhbHVlTGFiZWxDbGFzcywgam9pbkNscyhjbGFzc2VzKGAke3ZhbHVlTGFiZWxDbGFzc30tJHtub3JtYWxpemVkU2l6ZX1gKSwgaXNNdWx0aXBsZVZhbHVlRmlsbGVkICYmIGNsYXNzZXMoYCR7dmFsdWVMYWJlbENsYXNzfS1tdWx0aXBsZWApLCBkaXNhYmxlZCAmJiBjbGFzc2VzKGAke3ZhbHVlTGFiZWxDbGFzc30tZGlzYWJsZWRgKSkpLCBjaGlsZHJlbjogX2pzeChTZWxlY3RWYWx1ZUNvbnRlbnQsIHsgY2xhc3NlczogY2xhc3NlcywgaGFzU2VsZWN0aW9uOiBoYXNTZWxlY3Rpb24sIG11bHRpcGxlOiBtdWx0aXBsZSwgcGxhY2Vob2xkZXI6IHBsYWNlaG9sZGVyLCByZW5kZXJWYWx1ZTogcmVuZGVyVmFsdWUsIHJlbmRlclZhbHVlTWV0YTogcmVuZGVyVmFsdWVNZXRhLCBzZWxlY3RlZE9wdGlvbnM6IHNlbGVjdGVkT3B0aW9ucywgbWF4VmlzaWJsZVZhbHVlczogbWF4VmlzaWJsZVZhbHVlcywgb25SZW1vdmU6IGhhbmRsZVJlbW92ZVNlbGVjdGVkVmFsdWUsIG9uUmVtb3ZlQ2xpY2s6IGhhbmRsZVRhZ1JlbW92ZUNsaWNrLCBvblJlbW92ZU1vdXNlRG93bjogaGFuZGxlVGFnUmVtb3ZlTW91c2VEb3duIH0pIH0pXSB9KSwgX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2ljb24nKSwgY2hpbGRyZW46IF9qc3goSWNvbnMsIHsgbmFtZTogaW5uZXJPcGVuID8gJ2NoZXZyb25VcCcgOiAnY2hldnJvbkRvd24nLCBzaXplOiBpY29uU2l6ZSwgY29sb3I6IFwiY3VycmVudENvbG9yXCIgfSkgfSldIH0pKSwgaW5uZXJPcGVuICYmICFkaXNhYmxlZCAmJiAoX2pzeChGbG9hdGluZ1BvcnRhbCwgeyBjaGlsZHJlbjogX2pzeChGbG9hdGluZ0ZvY3VzTWFuYWdlciwgeyBjb250ZXh0OiBjb250ZXh0LCBtb2RhbDogZmFsc2UsIGluaXRpYWxGb2N1czogLTEsIHJldHVybkZvY3VzOiBmYWxzZSwgY2hpbGRyZW46IF9qc3hzKFwiZGl2XCIsIE9iamVjdC5hc3NpZ24oe30sIGdldEZsb2F0aW5nUHJvcHMoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVmOiBzZXRGbG9hdGluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogY2xhc3NlcygncGFuZWwnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiBmbG9hdGluZ1N0eWxlcyxcbiAgICAgICAgICAgICAgICAgICAgfSksIHsgY2hpbGRyZW46IFtzZWFyY2hhYmxlICYmIChfanN4KFNlbGVjdFNlYXJjaENvbnRyb2wsIHsgcmVmOiBzZWFyY2hJbnB1dFJlZiwgY2xhc3NlczogY2xhc3NlcywgcGxhY2Vob2xkZXI6IHNlYXJjaFBsYWNlaG9sZGVyLCB2YWx1ZTogaW5uZXJTZWFyY2hWYWx1ZSwgb25CbHVyOiBoYW5kbGVTZWFyY2hCbHVyLCBvbkNoYW5nZTogaGFuZGxlU2VhcmNoQ2hhbmdlLCBvbktleURvd246IGhhbmRsZVNlYXJjaEtleURvd24gfSkpLCBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdwYW5lbC1ib2R5JyksIGNoaWxkcmVuOiB2aXNpYmxlRmxhdE9wdGlvbnMubGVuZ3RoID09PSAwID8gKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2VtcHR5JyksIGNoaWxkcmVuOiBfanN4KFR5cG9ncmFwaHlCb2R5LCB7IHNpemU6IFNFTEVDVF9UWVBPR1JBUEhZLmVtcHR5LnNpemUsIGNvbG9yOiBTRUxFQ1RfVFlQT0dSQVBIWS5lbXB0eS5jb2xvciwgY2hpbGRyZW46IGVtcHR5Q29udGVudCB9KSB9KSkgOiAoKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmbGF0SW5kZXggPSAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZpc2libGVPcHRpb25Hcm91cHMubWFwKChncm91cCkgPT4gKF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdncm91cCcpLCBjaGlsZHJlbjogW2dyb3VwLmxhYmVsICYmIChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdncm91cC1sYWJlbCcpLCBjaGlsZHJlbjogX2pzeChUeXBvZ3JhcGh5TGFiZWwsIHsgc2l6ZTogU0VMRUNUX1RZUE9HUkFQSFkuZ3JvdXBMYWJlbC5zaXplLCBzdHJvbmc6IHRydWUsIGNoaWxkcmVuOiBncm91cC5sYWJlbCB9KSB9KSksIGdyb3VwLm9wdGlvbnMubWFwKChvcHRpb24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbkZsYXRJbmRleCA9IGZsYXRJbmRleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYXRJbmRleCArPSAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSBpc09wdGlvblNlbGVjdGVkKGlubmVyVmFsdWUsIG11bHRpcGxlLCBvcHRpb24udmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYWN0aXZlID0gYWN0aXZlSW5kZXggPT09IG9wdGlvbkZsYXRJbmRleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbk1ldGEgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiAhIW9wdGlvbi5kaXNhYmxlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogb3B0aW9uRmxhdEluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZW46IGlubmVyT3BlbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0Q29udGVudFJlZi5jdXJyZW50W29wdGlvbkZsYXRJbmRleF0gPSBleHRyYWN0T3B0aW9uVGV4dChvcHRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChfanN4KFwiYnV0dG9uXCIsIE9iamVjdC5hc3NpZ24oe30sIGdldEl0ZW1Qcm9wcyh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmKG5vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdFJlZi5jdXJyZW50W29wdGlvbkZsYXRJbmRleF0gPSBub2RlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2J1dHRvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZTogJ29wdGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBjbGFzc2VzKCdvcHRpb24nLCBqb2luQ2xzKGFjdGl2ZSAmJiBjbGFzc2VzKCdvcHRpb24tYWN0aXZlJyksIHNlbGVjdGVkICYmIGNsYXNzZXMoJ29wdGlvbi1zZWxlY3RlZCcpLCBvcHRpb24uZGlzYWJsZWQgJiYgY2xhc3Nlcygnb3B0aW9uLWRpc2FibGVkJykpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZDogb3B0aW9uLmRpc2FibGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhcmlhLXNlbGVjdGVkJzogc2VsZWN0ZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljazogKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZVNlbGVjdE9wdGlvbihvcHRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Nb3VzZUVudGVyOiAoKSA9PiBoYW5kbGVJdGVtTW91c2VFbnRlcihvcHRpb25GbGF0SW5kZXgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQmx1cjogaGFuZGxlT3B0aW9uQmx1cixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLCB7IGNoaWxkcmVuOiByZW5kZXJPcHRpb24gPyAocmVuZGVyT3B0aW9uKG9wdGlvbiwgb3B0aW9uTWV0YSkpIDogKF9qc3goU2VsZWN0T3B0aW9uQ29udGVudCwgeyBjbGFzc2VzOiBjbGFzc2VzLCBvcHRpb246IG9wdGlvbiwgc2VsZWN0ZWQ6IHNlbGVjdGVkIH0pKSB9KSwgb3B0aW9uLnZhbHVlKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXSB9LCBncm91cC5rZXkpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKCkpIH0pLCBwYW5lbEZvb3RlciAhPSBudWxsICYmIChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdwYW5lbC1mb290ZXInKSwgY2hpbGRyZW46IHBhbmVsRm9vdGVyIH0pKV0gfSkpIH0pIH0pKV0gfSkpO1xufTtcblNlbGVjdC5kaXNwbGF5TmFtZSA9ICdTZWxlY3QnO1xuZXhwb3J0IGRlZmF1bHQgbWVtbyhTZWxlY3QpOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
534
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX3JlYWN0MiIsIl9ob29rcyIsIl9JY29ucyIsIl9UeXBvZ3JhcGh5IiwiX2NsYXNzbmFtZXMiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9TZWxlY3RGaWVsZFNoZWxsIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9TZWxlY3RPcHRpb25Db250ZW50IiwiX1NlbGVjdFNlYXJjaENvbnRyb2wiLCJfU2VsZWN0VmFsdWVDb250ZW50IiwiX2NvbnN0YW50cyIsIl91dGlscyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIkRFRkFVTFRfTUFYX0hFSUdIVCIsIlNlbGVjdCIsImV4cG9ydHMiLCJwcm9wcyIsIl9wcm9wcyRjbGFzc05hbWUiLCJjbGFzc05hbWUiLCJfcHJvcHMkcHJlZml4Q2xzIiwicHJlZml4Q2xzIiwic3R5bGUiLCJpZCIsIm5hbWUiLCJhcmlhTGFiZWwiLCJhcmlhTGFiZWxsZWRCeSIsIl9wcm9wcyRwbGFjZWhvbGRlciIsInBsYWNlaG9sZGVyIiwiX3Byb3BzJG9wdGlvbnMiLCJvcHRpb25zIiwidmFsdWUiLCJkZWZhdWx0VmFsdWUiLCJfcHJvcHMkc2l6ZSIsInNpemUiLCJfcHJvcHMkc3RhdHVzIiwic3RhdHVzIiwiX3Byb3BzJHZhcmlhbnQiLCJ2YXJpYW50IiwiX3Byb3BzJGRpc2FibGVkIiwiZGlzYWJsZWQiLCJfcHJvcHMkbXVsdGlwbGUiLCJtdWx0aXBsZSIsIm1heFZpc2libGVWYWx1ZXMiLCJfcHJvcHMkc2VhcmNoYWJsZSIsInNlYXJjaGFibGUiLCJfcHJvcHMkc2VhcmNoUGxhY2Vob2wiLCJzZWFyY2hQbGFjZWhvbGRlciIsInNlYXJjaFZhbHVlIiwiX3Byb3BzJGRlZmF1bHRTZWFyY2hWIiwiZGVmYXVsdFNlYXJjaFZhbHVlIiwibGFiZWwiLCJpbmZvIiwiZGVzY3JpcHRpb24iLCJmZWVkYmFjayIsIl9wcm9wcyRyZXF1aXJlZCIsInJlcXVpcmVkIiwicHJlZml4IiwiX3Byb3BzJGVtcHR5Q29udGVudCIsImVtcHR5Q29udGVudCIsInBhbmVsRm9vdGVyIiwib3BlbiIsIl9wcm9wcyRkZWZhdWx0T3BlbiIsImRlZmF1bHRPcGVuIiwiX3Byb3BzJGxpc3RNYXhIZWlnaHQiLCJsaXN0TWF4SGVpZ2h0Iiwib25DaGFuZ2UiLCJvbk9wZW5DaGFuZ2UiLCJvblNlYXJjaENoYW5nZSIsIm9uQmx1ciIsImZpbHRlck9wdGlvbiIsInJlbmRlck9wdGlvbiIsInJlbmRlclZhbHVlIiwicmVmIiwiY2xhc3NlcyIsInJvb3RDbGFzc25hbWVzIiwiYXV0b0lkIiwidXNlSWQiLCJ0cmlnZ2VySWQiLCJsYWJlbElkIiwiZGVzY3JpcHRpb25JZCIsImZlZWRiYWNrSWQiLCJfdXNlQ29udHJvbGxlZFN0YXRlIiwidXNlQ29udHJvbGxlZFN0YXRlIiwidW5kZWZpbmVkIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJpbm5lclZhbHVlIiwic2V0SW5uZXJWYWx1ZSIsIl91c2VDb250cm9sbGVkU3RhdGUzIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZTQiLCJpbm5lck9wZW4iLCJzZXRJbm5lck9wZW4iLCJfdXNlQ29udHJvbGxlZFN0YXRlNSIsIl91c2VDb250cm9sbGVkU3RhdGU2IiwiaW5uZXJTZWFyY2hWYWx1ZSIsInNldElubmVyU2VhcmNoVmFsdWUiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJhY3RpdmVJbmRleCIsInNldEFjdGl2ZUluZGV4Iiwibm9ybWFsaXplZFNpemUiLCJub3JtYWxpemVTaXplIiwiYWxsT3B0aW9uR3JvdXBzIiwidXNlTWVtbyIsIm5vcm1hbGl6ZU9wdGlvbkdyb3VwcyIsImFsbEZsYXRPcHRpb25zIiwiZmxhdHRlbk9wdGlvbkdyb3VwcyIsInZpc2libGVPcHRpb25Hcm91cHMiLCJmaWx0ZXJPcHRpb25Hcm91cHMiLCJ2aXNpYmxlRmxhdE9wdGlvbnMiLCJzZWxlY3RlZE9wdGlvbnMiLCJnZXRTZWxlY3RlZE9wdGlvbnMiLCJzZWxlY3RlZEluZGV4IiwibGVuZ3RoIiwibWF0Y2hlZEluZGV4IiwiZmluZEluZGV4Iiwib3B0aW9uIiwiaGFzU2VsZWN0aW9uIiwibGlzdFJlZiIsInVzZVJlZiIsImxpc3RDb250ZW50UmVmIiwiZmxvYXRpbmdSZWYiLCJ0cmlnZ2VyUmVmIiwic2VhcmNoSW5wdXRSZWYiLCJoYW5kbGVUcmlnZ2VyUmVmIiwidXNlRXZlbnRDYWxsYmFjayIsIm5vZGUiLCJjdXJyZW50IiwiaGFuZGxlT3BlbkNoYW5nZSIsIm5leHRPcGVuIiwiX3VzZUZsb2F0aW5nIiwidXNlRmxvYXRpbmciLCJwbGFjZW1lbnQiLCJ3aGlsZUVsZW1lbnRzTW91bnRlZCIsImF1dG9VcGRhdGUiLCJtaWRkbGV3YXJlIiwib2Zmc2V0IiwiZmxpcCIsInBhZGRpbmciLCJzaGlmdCIsImZsb2F0aW5nU2l6ZSIsImFwcGx5IiwiX3JlZiIsInJlY3RzIiwiZWxlbWVudHMiLCJhdmFpbGFibGVIZWlnaHQiLCJuZXh0TWF4SGVpZ2h0IiwiTWF0aCIsIm1heCIsIm1pbiIsImFzc2lnbiIsImZsb2F0aW5nIiwid2lkdGgiLCJjb25jYXQiLCJyZWZlcmVuY2UiLCJtYXhIZWlnaHQiLCJyZWZzIiwiZmxvYXRpbmdTdHlsZXMiLCJjb250ZXh0Iiwic2V0UmVmZXJlbmNlIiwic2V0RmxvYXRpbmciLCJjbGljayIsInVzZUNsaWNrIiwiZW5hYmxlZCIsImRpc21pc3MiLCJ1c2VEaXNtaXNzIiwib3V0c2lkZVByZXNzRXZlbnQiLCJyb2xlIiwidXNlUm9sZSIsImxpc3ROYXZpZ2F0aW9uIiwidXNlTGlzdE5hdmlnYXRpb24iLCJvbk5hdmlnYXRlIiwibG9vcCIsInR5cGVhaGVhZCIsInVzZVR5cGVhaGVhZCIsIm9uTWF0Y2giLCJfdXNlSW50ZXJhY3Rpb25zIiwidXNlSW50ZXJhY3Rpb25zIiwiZ2V0UmVmZXJlbmNlUHJvcHMiLCJnZXRGbG9hdGluZ1Byb3BzIiwiZ2V0SXRlbVByb3BzIiwiZmlyc3RFbmFibGVkSW5kZXgiLCJsYXN0RW5hYmxlZEluZGV4IiwiX2EiLCJpbmRleCIsInVzZUVmZmVjdCIsInByZXYiLCJmb2N1cyIsInByZXZlbnRTY3JvbGwiLCJzbGljZSIsIm5vdGlmeUJsdXJJZk91dHNpZGUiLCJyZWxhdGVkVGFyZ2V0IiwiZXZlbnQiLCJfYiIsIm5leHRUYXJnZXQiLCJ3aXRoaW5UcmlnZ2VyIiwiY29udGFpbnMiLCJ3aXRoaW5GbG9hdGluZyIsImhhbmRsZVRyaWdnZXJCbHVyIiwiaGFuZGxlT3B0aW9uQmx1ciIsImNvbW1pdENoYW5nZSIsIm5leHRWYWx1ZSIsIm5leHRPcHRpb24iLCJoYW5kbGVTZWxlY3RPcHRpb24iLCJ0b2dnbGVNdWx0aXBsZVZhbHVlIiwibmV4dE9wdGlvbnMiLCJnZXRPcHRpb25zQnlWYWx1ZXMiLCJoYW5kbGVSZW1vdmVTZWxlY3RlZFZhbHVlIiwib3B0aW9uVmFsdWUiLCJnZXRNdWx0aXBsZVZhbHVlIiwiaW5jbHVkZXMiLCJyZW1vdmVNdWx0aXBsZVZhbHVlIiwiaGFuZGxlVHJpZ2dlcktleURvd24iLCJrZXkiLCJLRVlCT0FSRCIsIkVOVEVSIiwiU1BBQ0UiLCJwcmV2ZW50RGVmYXVsdCIsIkFSUk9XX0RPV04iLCJBUlJPV19VUCIsImhhbmRsZUl0ZW1Nb3VzZUVudGVyIiwiaGFuZGxlVGFnUmVtb3ZlTW91c2VEb3duIiwic3RvcFByb3BhZ2F0aW9uIiwiaGFuZGxlVGFnUmVtb3ZlQ2xpY2siLCJoYW5kbGVTZWFyY2hCbHVyIiwiaGFuZGxlU2VhcmNoQ2hhbmdlIiwiX2V2ZW50IiwiaGFuZGxlU2VhcmNoS2V5RG93biIsIl9jIiwiRVNDQVBFIiwicmVuZGVyVmFsdWVNZXRhIiwidmFsdWVMYWJlbENsYXNzIiwiaXNNdWx0aXBsZVZhbHVlRmlsbGVkIiwidHJpZ2dlckNsYXNzTmFtZSIsImpvaW5DbHMiLCJpY29uU2l6ZSIsImZsb2F0aW5nQXJpYUxhYmVsbGVkQnkiLCJkZXNjcmliZWRCeUlkcyIsImZpbHRlciIsIkJvb2xlYW4iLCJqb2luIiwiX2pzeHMiLCJTZWxlY3RGaWVsZFNoZWxsIiwiY2hpbGRyZW4iLCJ0eXBlIiwib25LZXlEb3duIiwiX2pzeCIsIlNlbGVjdFZhbHVlQ29udGVudCIsIm9uUmVtb3ZlIiwib25SZW1vdmVDbGljayIsIm9uUmVtb3ZlTW91c2VEb3duIiwiSWNvbnMiLCJjb2xvciIsIkZsb2F0aW5nUG9ydGFsIiwiRmxvYXRpbmdGb2N1c01hbmFnZXIiLCJtb2RhbCIsImluaXRpYWxGb2N1cyIsInJldHVybkZvY3VzIiwiU2VsZWN0U2VhcmNoQ29udHJvbCIsIlR5cG9ncmFwaHlCb2R5IiwiU0VMRUNUX1RZUE9HUkFQSFkiLCJlbXB0eSIsImZsYXRJbmRleCIsIm1hcCIsImdyb3VwIiwiVHlwb2dyYXBoeUxhYmVsIiwiZ3JvdXBMYWJlbCIsInN0cm9uZyIsIm9wdGlvbkZsYXRJbmRleCIsInNlbGVjdGVkIiwiaXNPcHRpb25TZWxlY3RlZCIsImFjdGl2ZSIsIm9wdGlvbk1ldGEiLCJleHRyYWN0T3B0aW9uVGV4dCIsIm9uQ2xpY2siLCJvbk1vdXNlRW50ZXIiLCJTZWxlY3RPcHRpb25Db250ZW50IiwiZGlzcGxheU5hbWUiLCJfZGVmYXVsdCIsIm1lbW8iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLElBQUFBLFdBQUEsR0FBQUMsT0FBQTtBQ0FBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQWdCQSxJQUFBRSxPQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxNQUFBLEdBQUFILE9BQUE7QUFD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QyxHQUVoQyxJQUFBMUIsZUFBQSxFQUFDOEIsK0JBQW1CLEVBQUE7d0JBQ2xCNU0sT0FBTyxFQUFFQSxPQUFPO3dCQUNoQjRDLE1BQU0sRUFBRUEsTUFBTTt3QkFDZHlKLFFBQVEsRUFBRUE7c0JBQVEsQ0FBQTtvQkFFckIsQ0FBQSxDQUFBLEtBQUFwSCxNQUFBLENBakNPK0csS0FBSyxDQUFDbkQsR0FBRyxPQUFBNUQsTUFBQSxDQUFJckMsTUFBTSxDQUFDdkYsS0FBSyxDQUFFLENBa0M1QjtrQkFFYixDQUFDLENBQUM7Z0JBQUEsQ0FBQSxFQTdETTJPLEtBQUssQ0FBQ25ELEdBQUcsQ0E4RGI7Y0FBQSxDQUNQLENBQUM7WUFDSixDQUFDLENBQUM7VUFDSCxDQUFBLENBQ0csRUFDTDNKLFdBQVcsSUFBSSxJQUFJLElBQ2xCLElBQUE0TCxlQUFBLEVBQUEsS0FBQSxFQUFBO1lBQUtyTyxTQUFTLEVBQUV1RCxPQUFPLENBQUMsY0FBYyxDQUFDO1lBQUEySyxRQUFBLEVBQUd6TDtVQUFXLENBQUEsQ0FDdEQ7UUFBQSxDQUFBLENBQUE7TUFDRyxDQUFBO0lBQ2UsQ0FBQSxDQUUxQjtFQUFBLENBQUEsQ0FDZ0I7QUFFdkIsQ0FBQztBQUVEN0MsTUFBTSxDQUFDd1EsV0FBVyxHQUFHLFFBQVE7QUFBQyxJQUFBQyxRQUFBLEdBQUF4USxPQUFBLDJCQUVmLElBQUF5USxZQUFJLEVBQUMxUSxNQUFNLENBQUMiLCJmaWxlIjoiY29tcG9uZW50cy9TZWxlY3QvU2VsZWN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IGF1dG9VcGRhdGUsIGZsaXAsIEZsb2F0aW5nRm9jdXNNYW5hZ2VyLCBGbG9hdGluZ1BvcnRhbCwgb2Zmc2V0LCBzaGlmdCwgc2l6ZSBhcyBmbG9hdGluZ1NpemUsIHVzZUNsaWNrLCB1c2VEaXNtaXNzLCB1c2VGbG9hdGluZywgdXNlSW50ZXJhY3Rpb25zLCB1c2VMaXN0TmF2aWdhdGlvbiwgdXNlUm9sZSwgdXNlVHlwZWFoZWFkLCB9IGZyb20gJ0BmbG9hdGluZy11aS9yZWFjdCc7XG5pbXBvcnQgeyBtZW1vLCB1c2VFZmZlY3QsIHVzZUlkLCB1c2VNZW1vLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlQ29udHJvbGxlZFN0YXRlLCB1c2VFdmVudENhbGxiYWNrIH0gZnJvbSAnQDFtb25leS9ob29rcyc7XG5pbXBvcnQgeyBJY29ucyB9IGZyb20gJy4uL0ljb25zJztcbmltcG9ydCB7IFR5cG9ncmFwaHlCb2R5LCBUeXBvZ3JhcGh5TGFiZWwgfSBmcm9tICcuLi9UeXBvZ3JhcGh5JztcbmltcG9ydCB7IGpvaW5DbHMsIGRlZmF1bHQgYXMgcm9vdENsYXNzbmFtZXMgfSBmcm9tICcuLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCBTZWxlY3RGaWVsZFNoZWxsIGZyb20gJy4vU2VsZWN0RmllbGRTaGVsbCc7XG5pbXBvcnQgU2VsZWN0T3B0aW9uQ29udGVudCBmcm9tICcuL1NlbGVjdE9wdGlvbkNvbnRlbnQnO1xuaW1wb3J0IFNlbGVjdFNlYXJjaENvbnRyb2wgZnJvbSAnLi9TZWxlY3RTZWFyY2hDb250cm9sJztcbmltcG9ydCBTZWxlY3RWYWx1ZUNvbnRlbnQgZnJvbSAnLi9TZWxlY3RWYWx1ZUNvbnRlbnQnO1xuaW1wb3J0IHsgS0VZQk9BUkQsIFNFTEVDVF9UWVBPR1JBUEhZIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgZXh0cmFjdE9wdGlvblRleHQsIGZpbHRlck9wdGlvbkdyb3VwcywgZmxhdHRlbk9wdGlvbkdyb3VwcywgZ2V0TXVsdGlwbGVWYWx1ZSwgZ2V0T3B0aW9uc0J5VmFsdWVzLCBnZXRTZWxlY3RlZE9wdGlvbnMsIGlzT3B0aW9uU2VsZWN0ZWQsIG5vcm1hbGl6ZVNpemUsIG5vcm1hbGl6ZU9wdGlvbkdyb3VwcywgcmVtb3ZlTXVsdGlwbGVWYWx1ZSwgdG9nZ2xlTXVsdGlwbGVWYWx1ZSwgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCAnLi9zdHlsZSc7XG5jb25zdCBERUZBVUxUX01BWF9IRUlHSFQgPSAzMjA7XG5leHBvcnQgY29uc3QgU2VsZWN0ID0gKHByb3BzKSA9PiB7XG4gICAgY29uc3QgeyBjbGFzc05hbWUgPSAnJywgcHJlZml4Q2xzID0gJ3NlbGVjdCcsIHN0eWxlLCBpZCwgbmFtZSwgJ2FyaWEtbGFiZWwnOiBhcmlhTGFiZWwsICdhcmlhLWxhYmVsbGVkYnknOiBhcmlhTGFiZWxsZWRCeSwgcGxhY2Vob2xkZXIgPSAnVmFsdWUnLCBvcHRpb25zID0gW10sIHZhbHVlLCBkZWZhdWx0VmFsdWUsIHNpemUgPSAnbGFyZ2UnLCBzdGF0dXMgPSAnZGVmYXVsdCcsIHZhcmlhbnQgPSAnZmlsbCcsIGRpc2FibGVkID0gZmFsc2UsIG11bHRpcGxlID0gZmFsc2UsIG1heFZpc2libGVWYWx1ZXMsIHNlYXJjaGFibGUgPSBmYWxzZSwgc2VhcmNoUGxhY2Vob2xkZXIgPSAnU2VhcmNoJywgc2VhcmNoVmFsdWUsIGRlZmF1bHRTZWFyY2hWYWx1ZSA9ICcnLCBsYWJlbCwgaW5mbywgZGVzY3JpcHRpb24sIGZlZWRiYWNrLCByZXF1aXJlZCA9IGZhbHNlLCBwcmVmaXgsIGVtcHR5Q29udGVudCA9ICdObyBvcHRpb25zJywgcGFuZWxGb290ZXIsIG9wZW4sIGRlZmF1bHRPcGVuID0gZmFsc2UsIGxpc3RNYXhIZWlnaHQgPSBERUZBVUxUX01BWF9IRUlHSFQsIG9uQ2hhbmdlLCBvbk9wZW5DaGFuZ2UsIG9uU2VhcmNoQ2hhbmdlLCBvbkJsdXIsIGZpbHRlck9wdGlvbiwgcmVuZGVyT3B0aW9uLCByZW5kZXJWYWx1ZSwgcmVmLCB9ID0gcHJvcHM7XG4gICAgY29uc3QgY2xhc3NlcyA9IHJvb3RDbGFzc25hbWVzKHByZWZpeENscyk7XG4gICAgY29uc3QgYXV0b0lkID0gdXNlSWQoKTtcbiAgICBjb25zdCB0cmlnZ2VySWQgPSBpZCAhPT0gbnVsbCAmJiBpZCAhPT0gdm9pZCAwID8gaWQgOiBhdXRvSWQ7XG4gICAgY29uc3QgbGFiZWxJZCA9IHVzZUlkKCk7XG4gICAgY29uc3QgZGVzY3JpcHRpb25JZCA9IHVzZUlkKCk7XG4gICAgY29uc3QgZmVlZGJhY2tJZCA9IHVzZUlkKCk7XG4gICAgY29uc3QgW2lubmVyVmFsdWUsIHNldElubmVyVmFsdWVdID0gdXNlQ29udHJvbGxlZFN0YXRlKGRlZmF1bHRWYWx1ZSAhPT0gbnVsbCAmJiBkZWZhdWx0VmFsdWUgIT09IHZvaWQgMCA/IGRlZmF1bHRWYWx1ZSA6IChtdWx0aXBsZSA/IFtdIDogdW5kZWZpbmVkKSwgdmFsdWUpO1xuICAgIGNvbnN0IFtpbm5lck9wZW4sIHNldElubmVyT3Blbl0gPSB1c2VDb250cm9sbGVkU3RhdGUoZGVmYXVsdE9wZW4sIG9wZW4pO1xuICAgIGNvbnN0IFtpbm5lclNlYXJjaFZhbHVlLCBzZXRJbm5lclNlYXJjaFZhbHVlXSA9IHVzZUNvbnRyb2xsZWRTdGF0ZShkZWZhdWx0U2VhcmNoVmFsdWUsIHNlYXJjaFZhbHVlKTtcbiAgICBjb25zdCBbYWN0aXZlSW5kZXgsIHNldEFjdGl2ZUluZGV4XSA9IHVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRTaXplID0gbm9ybWFsaXplU2l6ZShzaXplKTtcbiAgICBjb25zdCBhbGxPcHRpb25Hcm91cHMgPSB1c2VNZW1vKCgpID0+IG5vcm1hbGl6ZU9wdGlvbkdyb3VwcyhvcHRpb25zKSwgW29wdGlvbnNdKTtcbiAgICBjb25zdCBhbGxGbGF0T3B0aW9ucyA9IHVzZU1lbW8oKCkgPT4gZmxhdHRlbk9wdGlvbkdyb3VwcyhhbGxPcHRpb25Hcm91cHMpLCBbYWxsT3B0aW9uR3JvdXBzXSk7XG4gICAgY29uc3QgdmlzaWJsZU9wdGlvbkdyb3VwcyA9IHVzZU1lbW8oKCkgPT4gKHNlYXJjaGFibGVcbiAgICAgICAgPyBmaWx0ZXJPcHRpb25Hcm91cHMoYWxsT3B0aW9uR3JvdXBzLCBpbm5lclNlYXJjaFZhbHVlLCBmaWx0ZXJPcHRpb24pXG4gICAgICAgIDogYWxsT3B0aW9uR3JvdXBzKSwgW2FsbE9wdGlvbkdyb3VwcywgZmlsdGVyT3B0aW9uLCBpbm5lclNlYXJjaFZhbHVlLCBzZWFyY2hhYmxlXSk7XG4gICAgY29uc3QgdmlzaWJsZUZsYXRPcHRpb25zID0gdXNlTWVtbygoKSA9PiBmbGF0dGVuT3B0aW9uR3JvdXBzKHZpc2libGVPcHRpb25Hcm91cHMpLCBbdmlzaWJsZU9wdGlvbkdyb3Vwc10pO1xuICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9ucyA9IHVzZU1lbW8oKCkgPT4gZ2V0U2VsZWN0ZWRPcHRpb25zKGFsbEZsYXRPcHRpb25zLCBpbm5lclZhbHVlLCBtdWx0aXBsZSksIFthbGxGbGF0T3B0aW9ucywgaW5uZXJWYWx1ZSwgbXVsdGlwbGVdKTtcbiAgICBjb25zdCBzZWxlY3RlZEluZGV4ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGlmIChzZWxlY3RlZE9wdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBtYXRjaGVkSW5kZXggPSB2aXNpYmxlRmxhdE9wdGlvbnMuZmluZEluZGV4KChvcHRpb24pID0+IG9wdGlvbi52YWx1ZSA9PT0gc2VsZWN0ZWRPcHRpb25zWzBdLnZhbHVlKTtcbiAgICAgICAgcmV0dXJuIG1hdGNoZWRJbmRleCA+PSAwID8gbWF0Y2hlZEluZGV4IDogbnVsbDtcbiAgICB9LCBbc2VsZWN0ZWRPcHRpb25zLCB2aXNpYmxlRmxhdE9wdGlvbnNdKTtcbiAgICBjb25zdCBoYXNTZWxlY3Rpb24gPSBzZWxlY3RlZE9wdGlvbnMubGVuZ3RoID4gMDtcbiAgICBjb25zdCBsaXN0UmVmID0gdXNlUmVmKFtdKTtcbiAgICBjb25zdCBsaXN0Q29udGVudFJlZiA9IHVzZVJlZihbXSk7XG4gICAgY29uc3QgZmxvYXRpbmdSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgdHJpZ2dlclJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBzZWFyY2hJbnB1dFJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBoYW5kbGVUcmlnZ2VyUmVmID0gdXNlRXZlbnRDYWxsYmFjaygobm9kZSkgPT4ge1xuICAgICAgICB0cmlnZ2VyUmVmLmN1cnJlbnQgPSBub2RlO1xuICAgICAgICBpZiAocmVmKSB7XG4gICAgICAgICAgICByZWYuY3VycmVudCA9IG5vZGU7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVPcGVuQ2hhbmdlID0gdXNlRXZlbnRDYWxsYmFjaygobmV4dE9wZW4pID0+IHtcbiAgICAgICAgc2V0SW5uZXJPcGVuKG5leHRPcGVuKTtcbiAgICAgICAgb25PcGVuQ2hhbmdlID09PSBudWxsIHx8IG9uT3BlbkNoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25PcGVuQ2hhbmdlKG5leHRPcGVuKTtcbiAgICB9KTtcbiAgICBjb25zdCB7IHJlZnMsIGZsb2F0aW5nU3R5bGVzLCBjb250ZXh0LCB9ID0gdXNlRmxvYXRpbmcoe1xuICAgICAgICBvcGVuOiBpbm5lck9wZW4sXG4gICAgICAgIG9uT3BlbkNoYW5nZTogaGFuZGxlT3BlbkNoYW5nZSxcbiAgICAgICAgcGxhY2VtZW50OiAnYm90dG9tLXN0YXJ0JyxcbiAgICAgICAgd2hpbGVFbGVtZW50c01vdW50ZWQ6IGF1dG9VcGRhdGUsXG4gICAgICAgIG1pZGRsZXdhcmU6IFtcbiAgICAgICAgICAgIG9mZnNldCgwKSxcbiAgICAgICAgICAgIGZsaXAoeyBwYWRkaW5nOiA4IH0pLFxuICAgICAgICAgICAgc2hpZnQoeyBwYWRkaW5nOiA4IH0pLFxuICAgICAgICAgICAgZmxvYXRpbmdTaXplKHtcbiAgICAgICAgICAgICAgICBhcHBseSh7IHJlY3RzLCBlbGVtZW50cywgYXZhaWxhYmxlSGVpZ2h0IH0pIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV4dE1heEhlaWdodCA9IE1hdGgubWF4KDEyMCwgTWF0aC5taW4obGlzdE1heEhlaWdodCwgYXZhaWxhYmxlSGVpZ2h0KSk7XG4gICAgICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oZWxlbWVudHMuZmxvYXRpbmcuc3R5bGUsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBgJHtyZWN0cy5yZWZlcmVuY2Uud2lkdGh9cHhgLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWF4SGVpZ2h0OiBgJHtuZXh0TWF4SGVpZ2h0fXB4YCxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICBdLFxuICAgIH0pO1xuICAgIGNvbnN0IHNldFJlZmVyZW5jZSA9IHVzZUV2ZW50Q2FsbGJhY2soKG5vZGUpID0+IHtcbiAgICAgICAgcmVmcy5zZXRSZWZlcmVuY2Uobm9kZSk7XG4gICAgICAgIGhhbmRsZVRyaWdnZXJSZWYobm9kZSk7XG4gICAgfSk7XG4gICAgY29uc3Qgc2V0RmxvYXRpbmcgPSB1c2VFdmVudENhbGxiYWNrKChub2RlKSA9PiB7XG4gICAgICAgIHJlZnMuc2V0RmxvYXRpbmcobm9kZSk7XG4gICAgICAgIGZsb2F0aW5nUmVmLmN1cnJlbnQgPSBub2RlO1xuICAgIH0pO1xuICAgIGNvbnN0IGNsaWNrID0gdXNlQ2xpY2soY29udGV4dCwgeyBlbmFibGVkOiAhZGlzYWJsZWQgfSk7XG4gICAgY29uc3QgZGlzbWlzcyA9IHVzZURpc21pc3MoY29udGV4dCwgeyBlbmFibGVkOiAhZGlzYWJsZWQsIG91dHNpZGVQcmVzc0V2ZW50OiAnbW91c2Vkb3duJyB9KTtcbiAgICBjb25zdCByb2xlID0gdXNlUm9sZShjb250ZXh0LCB7IHJvbGU6ICdzZWxlY3QnIH0pO1xuICAgIGNvbnN0IGxpc3ROYXZpZ2F0aW9uID0gdXNlTGlzdE5hdmlnYXRpb24oY29udGV4dCwge1xuICAgICAgICBsaXN0UmVmLFxuICAgICAgICBhY3RpdmVJbmRleCxcbiAgICAgICAgc2VsZWN0ZWRJbmRleCxcbiAgICAgICAgb25OYXZpZ2F0ZTogc2V0QWN0aXZlSW5kZXgsXG4gICAgICAgIGVuYWJsZWQ6IGlubmVyT3BlbixcbiAgICAgICAgbG9vcDogdHJ1ZSxcbiAgICB9KTtcbiAgICBjb25zdCB0eXBlYWhlYWQgPSB1c2VUeXBlYWhlYWQoY29udGV4dCwge1xuICAgICAgICBsaXN0UmVmOiBsaXN0Q29udGVudFJlZixcbiAgICAgICAgYWN0aXZlSW5kZXgsXG4gICAgICAgIHNlbGVjdGVkSW5kZXgsXG4gICAgICAgIGVuYWJsZWQ6IGlubmVyT3BlbiAmJiAhc2VhcmNoYWJsZSxcbiAgICAgICAgb25NYXRjaDogc2V0QWN0aXZlSW5kZXgsXG4gICAgfSk7XG4gICAgY29uc3QgeyBnZXRSZWZlcmVuY2VQcm9wcywgZ2V0RmxvYXRpbmdQcm9wcywgZ2V0SXRlbVByb3BzIH0gPSB1c2VJbnRlcmFjdGlvbnMoW1xuICAgICAgICBjbGljayxcbiAgICAgICAgZGlzbWlzcyxcbiAgICAgICAgcm9sZSxcbiAgICAgICAgbGlzdE5hdmlnYXRpb24sXG4gICAgICAgIHR5cGVhaGVhZCxcbiAgICBdKTtcbiAgICBjb25zdCBmaXJzdEVuYWJsZWRJbmRleCA9IHVzZU1lbW8oKCkgPT4gdmlzaWJsZUZsYXRPcHRpb25zLmZpbmRJbmRleCgob3B0aW9uKSA9PiAhb3B0aW9uLmRpc2FibGVkKSwgW3Zpc2libGVGbGF0T3B0aW9uc10pO1xuICAgIGNvbnN0IGxhc3RFbmFibGVkSW5kZXggPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBmb3IgKGxldCBpbmRleCA9IHZpc2libGVGbGF0T3B0aW9ucy5sZW5ndGggLSAxOyBpbmRleCA+PSAwOyBpbmRleCAtPSAxKSB7XG4gICAgICAgICAgICBpZiAoISgoX2EgPSB2aXNpYmxlRmxhdE9wdGlvbnNbaW5kZXhdKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZGlzYWJsZWQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH0sIFt2aXNpYmxlRmxhdE9wdGlvbnNdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIWlubmVyT3Blbikge1xuICAgICAgICAgICAgc2V0QWN0aXZlSW5kZXgoc2VsZWN0ZWRJbmRleCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc2V0QWN0aXZlSW5kZXgoKHByZXYpID0+IHtcbiAgICAgICAgICAgIGlmIChwcmV2ICE9PSBudWxsICYmIHZpc2libGVGbGF0T3B0aW9uc1twcmV2XSAmJiAhdmlzaWJsZUZsYXRPcHRpb25zW3ByZXZdLmRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHByZXY7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRJbmRleCAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgICAgIHZpc2libGVGbGF0T3B0aW9uc1tzZWxlY3RlZEluZGV4XSAmJlxuICAgICAgICAgICAgICAgICF2aXNpYmxlRmxhdE9wdGlvbnNbc2VsZWN0ZWRJbmRleF0uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZWN0ZWRJbmRleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmaXJzdEVuYWJsZWRJbmRleCA+PSAwID8gZmlyc3RFbmFibGVkSW5kZXggOiBudWxsO1xuICAgICAgICB9KTtcbiAgICB9LCBbZmlyc3RFbmFibGVkSW5kZXgsIGlubmVyT3Blbiwgc2VsZWN0ZWRJbmRleCwgdmlzaWJsZUZsYXRPcHRpb25zXSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoIWlubmVyT3BlbiB8fCBhY3RpdmVJbmRleCA9PT0gbnVsbCB8fCBzZWFyY2hhYmxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgKF9hID0gbGlzdFJlZi5jdXJyZW50W2FjdGl2ZUluZGV4XSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICB9LCBbYWN0aXZlSW5kZXgsIGlubmVyT3Blbiwgc2VhcmNoYWJsZV0pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGxpc3RSZWYuY3VycmVudCA9IGxpc3RSZWYuY3VycmVudC5zbGljZSgwLCB2aXNpYmxlRmxhdE9wdGlvbnMubGVuZ3RoKTtcbiAgICAgICAgbGlzdENvbnRlbnRSZWYuY3VycmVudCA9IGxpc3RDb250ZW50UmVmLmN1cnJlbnQuc2xpY2UoMCwgdmlzaWJsZUZsYXRPcHRpb25zLmxlbmd0aCk7XG4gICAgfSwgW3Zpc2libGVGbGF0T3B0aW9ucy5sZW5ndGhdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmIChpbm5lck9wZW4gJiYgc2VhcmNoYWJsZSkge1xuICAgICAgICAgICAgKF9hID0gc2VhcmNoSW5wdXRSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICAgICAgfVxuICAgIH0sIFtpbm5lck9wZW4sIHNlYXJjaGFibGVdKTtcbiAgICBjb25zdCBub3RpZnlCbHVySWZPdXRzaWRlID0gdXNlRXZlbnRDYWxsYmFjaygocmVsYXRlZFRhcmdldCwgZXZlbnQpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgY29uc3QgbmV4dFRhcmdldCA9IHJlbGF0ZWRUYXJnZXQ7XG4gICAgICAgIGNvbnN0IHdpdGhpblRyaWdnZXIgPSAhIShuZXh0VGFyZ2V0ICYmICgoX2EgPSB0cmlnZ2VyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jb250YWlucyhuZXh0VGFyZ2V0KSkpO1xuICAgICAgICBjb25zdCB3aXRoaW5GbG9hdGluZyA9ICEhKG5leHRUYXJnZXQgJiYgKChfYiA9IGZsb2F0aW5nUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jb250YWlucyhuZXh0VGFyZ2V0KSkpO1xuICAgICAgICBpZiAoIXdpdGhpblRyaWdnZXIgJiYgIXdpdGhpbkZsb2F0aW5nKSB7XG4gICAgICAgICAgICBvbkJsdXIgPT09IG51bGwgfHwgb25CbHVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkJsdXIoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlVHJpZ2dlckJsdXIgPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBub3RpZnlCbHVySWZPdXRzaWRlKGV2ZW50LnJlbGF0ZWRUYXJnZXQsIGV2ZW50KTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVPcHRpb25CbHVyID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgbm90aWZ5Qmx1cklmT3V0c2lkZShldmVudC5yZWxhdGVkVGFyZ2V0LCBldmVudCk7XG4gICAgfSk7XG4gICAgY29uc3QgY29tbWl0Q2hhbmdlID0gdXNlRXZlbnRDYWxsYmFjaygobmV4dFZhbHVlLCBuZXh0T3B0aW9uKSA9PiB7XG4gICAgICAgIHNldElubmVyVmFsdWUobmV4dFZhbHVlKTtcbiAgICAgICAgb25DaGFuZ2UgPT09IG51bGwgfHwgb25DaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ2hhbmdlKG5leHRWYWx1ZSwgbmV4dE9wdGlvbik7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlU2VsZWN0T3B0aW9uID0gdXNlRXZlbnRDYWxsYmFjaygob3B0aW9uKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKG9wdGlvbi5kaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChtdWx0aXBsZSkge1xuICAgICAgICAgICAgY29uc3QgbmV4dFZhbHVlID0gdG9nZ2xlTXVsdGlwbGVWYWx1ZShpbm5lclZhbHVlLCBvcHRpb24udmFsdWUpO1xuICAgICAgICAgICAgY29uc3QgbmV4dE9wdGlvbnMgPSBnZXRPcHRpb25zQnlWYWx1ZXMoYWxsRmxhdE9wdGlvbnMsIG5leHRWYWx1ZSk7XG4gICAgICAgICAgICBjb21taXRDaGFuZ2UobmV4dFZhbHVlLCBuZXh0T3B0aW9ucyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29tbWl0Q2hhbmdlKG9wdGlvbi52YWx1ZSwgb3B0aW9uKTtcbiAgICAgICAgaGFuZGxlT3BlbkNoYW5nZShmYWxzZSk7XG4gICAgICAgIG9uQmx1ciA9PT0gbnVsbCB8fCBvbkJsdXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQmx1cigpO1xuICAgICAgICAoX2EgPSB0cmlnZ2VyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlUmVtb3ZlU2VsZWN0ZWRWYWx1ZSA9IHVzZUV2ZW50Q2FsbGJhY2soKG9wdGlvblZhbHVlKSA9PiB7XG4gICAgICAgIGlmICghbXVsdGlwbGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWdldE11bHRpcGxlVmFsdWUoaW5uZXJWYWx1ZSkuaW5jbHVkZXMob3B0aW9uVmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbmV4dFZhbHVlID0gcmVtb3ZlTXVsdGlwbGVWYWx1ZShpbm5lclZhbHVlLCBvcHRpb25WYWx1ZSk7XG4gICAgICAgIGNvbnN0IG5leHRPcHRpb25zID0gZ2V0T3B0aW9uc0J5VmFsdWVzKGFsbEZsYXRPcHRpb25zLCBuZXh0VmFsdWUpO1xuICAgICAgICBjb21taXRDaGFuZ2UobmV4dFZhbHVlLCBuZXh0T3B0aW9ucyk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlVHJpZ2dlcktleURvd24gPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBpZiAoZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSBLRVlCT0FSRC5FTlRFUiB8fCBldmVudC5rZXkgPT09IEtFWUJPQVJELlNQQUNFKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaGFuZGxlT3BlbkNoYW5nZSghaW5uZXJPcGVuKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSBLRVlCT0FSRC5BUlJPV19ET1dOIHx8IGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuQVJST1dfVVApIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBpZiAoIWlubmVyT3Blbikge1xuICAgICAgICAgICAgICAgIGhhbmRsZU9wZW5DaGFuZ2UodHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVJdGVtTW91c2VFbnRlciA9IHVzZUV2ZW50Q2FsbGJhY2soKGluZGV4KSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKCEoKF9hID0gdmlzaWJsZUZsYXRPcHRpb25zW2luZGV4XSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmRpc2FibGVkKSkge1xuICAgICAgICAgICAgc2V0QWN0aXZlSW5kZXgoaW5kZXgpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlVGFnUmVtb3ZlTW91c2VEb3duID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlVGFnUmVtb3ZlQ2xpY2sgPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVTZWFyY2hCbHVyID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgbm90aWZ5Qmx1cklmT3V0c2lkZShldmVudC5yZWxhdGVkVGFyZ2V0LCBldmVudCk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlU2VhcmNoQ2hhbmdlID0gdXNlRXZlbnRDYWxsYmFjaygobmV4dFZhbHVlLCBfZXZlbnQpID0+IHtcbiAgICAgICAgc2V0SW5uZXJTZWFyY2hWYWx1ZShuZXh0VmFsdWUpO1xuICAgICAgICBvblNlYXJjaENoYW5nZSA9PT0gbnVsbCB8fCBvblNlYXJjaENoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25TZWFyY2hDaGFuZ2UobmV4dFZhbHVlKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVTZWFyY2hLZXlEb3duID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09IEtFWUJPQVJELkFSUk9XX0RPV04gJiYgZmlyc3RFbmFibGVkSW5kZXggPj0gMCkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHNldEFjdGl2ZUluZGV4KGZpcnN0RW5hYmxlZEluZGV4KTtcbiAgICAgICAgICAgIChfYSA9IGxpc3RSZWYuY3VycmVudFtmaXJzdEVuYWJsZWRJbmRleF0pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuQVJST1dfVVAgJiYgbGFzdEVuYWJsZWRJbmRleCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHNldEFjdGl2ZUluZGV4KGxhc3RFbmFibGVkSW5kZXgpO1xuICAgICAgICAgICAgKF9iID0gbGlzdFJlZi5jdXJyZW50W2xhc3RFbmFibGVkSW5kZXhdKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09IEtFWUJPQVJELkVTQ0FQRSkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGhhbmRsZU9wZW5DaGFuZ2UoZmFsc2UpO1xuICAgICAgICAgICAgKF9jID0gdHJpZ2dlclJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgcmVuZGVyVmFsdWVNZXRhID0ge1xuICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgbXVsdGlwbGUsXG4gICAgICAgIG1heFZpc2libGVWYWx1ZXMsXG4gICAgICAgIG9wZW46IGlubmVyT3BlbixcbiAgICAgICAgcGxhY2Vob2xkZXI6ICFoYXNTZWxlY3Rpb24sXG4gICAgICAgIHNlbGVjdGVkT3B0aW9ucyxcbiAgICB9O1xuICAgIGNvbnN0IHZhbHVlTGFiZWxDbGFzcyA9IGhhc1NlbGVjdGlvbiA/ICd2YWx1ZScgOiAncGxhY2Vob2xkZXInO1xuICAgIGNvbnN0IGlzTXVsdGlwbGVWYWx1ZUZpbGxlZCA9IChtdWx0aXBsZSAmJlxuICAgICAgICBoYXNTZWxlY3Rpb24gJiZcbiAgICAgICAgbWF4VmlzaWJsZVZhbHVlcyA9PT0gdW5kZWZpbmVkKTtcbiAgICBjb25zdCB0cmlnZ2VyQ2xhc3NOYW1lID0gY2xhc3NlcygndHJpZ2dlcicsIGpvaW5DbHMoY2xhc3NlcyhgdHJpZ2dlci0ke25vcm1hbGl6ZWRTaXplfWApLCBjbGFzc2VzKGB0cmlnZ2VyLSR7dmFyaWFudH1gKSwgaW5uZXJPcGVuICYmIGNsYXNzZXMoJ3RyaWdnZXItb3BlbicpLCBpc011bHRpcGxlVmFsdWVGaWxsZWQgJiYgY2xhc3NlcygndHJpZ2dlci1tdWx0aXBsZS1maWxsZWQnKSwgaGFzU2VsZWN0aW9uID8gY2xhc3NlcygndHJpZ2dlci1maWxsZWQnKSA6IGNsYXNzZXMoJ3RyaWdnZXItcGxhY2Vob2xkZXInKSwgc3RhdHVzICE9PSAnZGVmYXVsdCcgJiYgY2xhc3NlcyhgdHJpZ2dlci0ke3N0YXR1c31gKSwgZGlzYWJsZWQgJiYgY2xhc3NlcygndHJpZ2dlci1kaXNhYmxlZCcpKSk7XG4gICAgY29uc3QgaWNvblNpemUgPSBub3JtYWxpemVkU2l6ZSA9PT0gJ3NtYWxsJyA/IDE2IDogMjA7XG4gICAgY29uc3QgZmxvYXRpbmdBcmlhTGFiZWxsZWRCeSA9IGFyaWFMYWJlbGxlZEJ5ICE9PSBudWxsICYmIGFyaWFMYWJlbGxlZEJ5ICE9PSB2b2lkIDAgPyBhcmlhTGFiZWxsZWRCeSA6IChsYWJlbCA/IGxhYmVsSWQgOiB1bmRlZmluZWQpO1xuICAgIGNvbnN0IGRlc2NyaWJlZEJ5SWRzID0gW1xuICAgICAgICBkZXNjcmlwdGlvbiA/IGRlc2NyaXB0aW9uSWQgOiBudWxsLFxuICAgICAgICBmZWVkYmFjayA/IGZlZWRiYWNrSWQgOiBudWxsLFxuICAgIF0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oJyAnKSB8fCB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIChfanN4cyhTZWxlY3RGaWVsZFNoZWxsLCB7IGNsYXNzZXM6IGNsYXNzZXMsIGNsYXNzTmFtZTogY2xhc3NOYW1lLCBzaXplOiBub3JtYWxpemVkU2l6ZSwgdmFyaWFudDogdmFyaWFudCwgc3RhdHVzOiBzdGF0dXMsIGRpc2FibGVkOiBkaXNhYmxlZCwgbGFiZWw6IGxhYmVsLCBpbmZvOiBpbmZvLCBkZXNjcmlwdGlvbjogZGVzY3JpcHRpb24sIGZlZWRiYWNrOiBmZWVkYmFjaywgcmVxdWlyZWQ6IHJlcXVpcmVkLCBsYWJlbElkOiBsYWJlbElkLCBkZXNjcmlwdGlvbklkOiBkZXNjcmlwdGlvbklkLCBmZWVkYmFja0lkOiBmZWVkYmFja0lkLCBjaGlsZHJlbjogW19qc3hzKFwiYnV0dG9uXCIsIE9iamVjdC5hc3NpZ24oe30sIGdldFJlZmVyZW5jZVByb3BzKHtcbiAgICAgICAgICAgICAgICByZWY6IHNldFJlZmVyZW5jZSxcbiAgICAgICAgICAgICAgICBpZDogdHJpZ2dlcklkLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdidXR0b24nLFxuICAgICAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiB0cmlnZ2VyQ2xhc3NOYW1lLFxuICAgICAgICAgICAgICAgIG9uS2V5RG93bjogaGFuZGxlVHJpZ2dlcktleURvd24sXG4gICAgICAgICAgICAgICAgb25CbHVyOiBoYW5kbGVUcmlnZ2VyQmx1cixcbiAgICAgICAgICAgICAgICAnYXJpYS1sYWJlbCc6IGFyaWFMYWJlbCxcbiAgICAgICAgICAgICAgICAnYXJpYS1sYWJlbGxlZGJ5JzogZmxvYXRpbmdBcmlhTGFiZWxsZWRCeSxcbiAgICAgICAgICAgICAgICAnYXJpYS1kZXNjcmliZWRieSc6IGRlc2NyaWJlZEJ5SWRzLFxuICAgICAgICAgICAgfSksIHsgY2hpbGRyZW46IFtfanN4cyhcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2NvbnRlbnQnKSwgY2hpbGRyZW46IFtwcmVmaXggJiYgX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3ByZWZpeCcpLCBjaGlsZHJlbjogcHJlZml4IH0pLCBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcyh2YWx1ZUxhYmVsQ2xhc3MsIGpvaW5DbHMoY2xhc3NlcyhgJHt2YWx1ZUxhYmVsQ2xhc3N9LSR7bm9ybWFsaXplZFNpemV9YCksIGlzTXVsdGlwbGVWYWx1ZUZpbGxlZCAmJiBjbGFzc2VzKGAke3ZhbHVlTGFiZWxDbGFzc30tbXVsdGlwbGVgKSwgZGlzYWJsZWQgJiYgY2xhc3NlcyhgJHt2YWx1ZUxhYmVsQ2xhc3N9LWRpc2FibGVkYCkpKSwgY2hpbGRyZW46IF9qc3goU2VsZWN0VmFsdWVDb250ZW50LCB7IGNsYXNzZXM6IGNsYXNzZXMsIGhhc1NlbGVjdGlvbjogaGFzU2VsZWN0aW9uLCBtdWx0aXBsZTogbXVsdGlwbGUsIHBsYWNlaG9sZGVyOiBwbGFjZWhvbGRlciwgcmVuZGVyVmFsdWU6IHJlbmRlclZhbHVlLCByZW5kZXJWYWx1ZU1ldGE6IHJlbmRlclZhbHVlTWV0YSwgc2VsZWN0ZWRPcHRpb25zOiBzZWxlY3RlZE9wdGlvbnMsIG1heFZpc2libGVWYWx1ZXM6IG1heFZpc2libGVWYWx1ZXMsIG9uUmVtb3ZlOiBoYW5kbGVSZW1vdmVTZWxlY3RlZFZhbHVlLCBvblJlbW92ZUNsaWNrOiBoYW5kbGVUYWdSZW1vdmVDbGljaywgb25SZW1vdmVNb3VzZURvd246IGhhbmRsZVRhZ1JlbW92ZU1vdXNlRG93biB9KSB9KV0gfSksIF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdpY29uJyksIGNoaWxkcmVuOiBfanN4KEljb25zLCB7IG5hbWU6IGlubmVyT3BlbiA/ICdjaGV2cm9uVXAnIDogJ2NoZXZyb25Eb3duJywgc2l6ZTogaWNvblNpemUsIGNvbG9yOiBcImN1cnJlbnRDb2xvclwiIH0pIH0pXSB9KSksIGlubmVyT3BlbiAmJiAhZGlzYWJsZWQgJiYgKF9qc3goRmxvYXRpbmdQb3J0YWwsIHsgY2hpbGRyZW46IF9qc3goRmxvYXRpbmdGb2N1c01hbmFnZXIsIHsgY29udGV4dDogY29udGV4dCwgbW9kYWw6IGZhbHNlLCBpbml0aWFsRm9jdXM6IC0xLCByZXR1cm5Gb2N1czogZmFsc2UsIGNoaWxkcmVuOiBfanN4cyhcImRpdlwiLCBPYmplY3QuYXNzaWduKHt9LCBnZXRGbG9hdGluZ1Byb3BzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZjogc2V0RmxvYXRpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IGNsYXNzZXMoJ3BhbmVsJyksXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogZmxvYXRpbmdTdHlsZXMsXG4gICAgICAgICAgICAgICAgICAgIH0pLCB7IGNoaWxkcmVuOiBbc2VhcmNoYWJsZSAmJiAoX2pzeChTZWxlY3RTZWFyY2hDb250cm9sLCB7IHJlZjogc2VhcmNoSW5wdXRSZWYsIGNsYXNzZXM6IGNsYXNzZXMsIHBsYWNlaG9sZGVyOiBzZWFyY2hQbGFjZWhvbGRlciwgdmFsdWU6IGlubmVyU2VhcmNoVmFsdWUsIG9uQmx1cjogaGFuZGxlU2VhcmNoQmx1ciwgb25DaGFuZ2U6IGhhbmRsZVNlYXJjaENoYW5nZSwgb25LZXlEb3duOiBoYW5kbGVTZWFyY2hLZXlEb3duIH0pKSwgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygncGFuZWwtYm9keScpLCBjaGlsZHJlbjogdmlzaWJsZUZsYXRPcHRpb25zLmxlbmd0aCA9PT0gMCA/IChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdlbXB0eScpLCBjaGlsZHJlbjogX2pzeChUeXBvZ3JhcGh5Qm9keSwgeyBzaXplOiBTRUxFQ1RfVFlQT0dSQVBIWS5lbXB0eS5zaXplLCBjb2xvcjogU0VMRUNUX1RZUE9HUkFQSFkuZW1wdHkuY29sb3IsIGNoaWxkcmVuOiBlbXB0eUNvbnRlbnQgfSkgfSkpIDogKCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZmxhdEluZGV4ID0gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB2aXNpYmxlT3B0aW9uR3JvdXBzLm1hcCgoZ3JvdXApID0+IChfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnZ3JvdXAnKSwgY2hpbGRyZW46IFtncm91cC5sYWJlbCAmJiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnZ3JvdXAtbGFiZWwnKSwgY2hpbGRyZW46IF9qc3goVHlwb2dyYXBoeUxhYmVsLCB7IHNpemU6IFNFTEVDVF9UWVBPR1JBUEhZLmdyb3VwTGFiZWwuc2l6ZSwgc3Ryb25nOiB0cnVlLCBjaGlsZHJlbjogZ3JvdXAubGFiZWwgfSkgfSkpLCBncm91cC5vcHRpb25zLm1hcCgob3B0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvcHRpb25GbGF0SW5kZXggPSBmbGF0SW5kZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGF0SW5kZXggKz0gMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkID0gaXNPcHRpb25TZWxlY3RlZChpbm5lclZhbHVlLCBtdWx0aXBsZSwgb3B0aW9uLnZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGFjdGl2ZSA9IGFjdGl2ZUluZGV4ID09PSBvcHRpb25GbGF0SW5kZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvcHRpb25NZXRhID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZDogISFvcHRpb24uZGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IG9wdGlvbkZsYXRJbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVuOiBpbm5lck9wZW4sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdENvbnRlbnRSZWYuY3VycmVudFtvcHRpb25GbGF0SW5kZXhdID0gZXh0cmFjdE9wdGlvblRleHQob3B0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoX2pzeChcImJ1dHRvblwiLCBPYmplY3QuYXNzaWduKHt9LCBnZXRJdGVtUHJvcHMoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZihub2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3RSZWYuY3VycmVudFtvcHRpb25GbGF0SW5kZXhdID0gbm9kZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdidXR0b24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU6ICdvcHRpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogY2xhc3Nlcygnb3B0aW9uJywgam9pbkNscyhhY3RpdmUgJiYgY2xhc3Nlcygnb3B0aW9uLWFjdGl2ZScpLCBzZWxlY3RlZCAmJiBjbGFzc2VzKCdvcHRpb24tc2VsZWN0ZWQnKSwgb3B0aW9uLmRpc2FibGVkICYmIGNsYXNzZXMoJ29wdGlvbi1kaXNhYmxlZCcpKSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6IG9wdGlvbi5kaXNhYmxlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYXJpYS1zZWxlY3RlZCc6IHNlbGVjdGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6IChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RPcHRpb24ob3B0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uTW91c2VFbnRlcjogKCkgPT4gaGFuZGxlSXRlbU1vdXNlRW50ZXIob3B0aW9uRmxhdEluZGV4KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkJsdXI6IGhhbmRsZU9wdGlvbkJsdXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwgeyBjaGlsZHJlbjogcmVuZGVyT3B0aW9uID8gKHJlbmRlck9wdGlvbihvcHRpb24sIG9wdGlvbk1ldGEpKSA6IChfanN4KFNlbGVjdE9wdGlvbkNvbnRlbnQsIHsgY2xhc3NlczogY2xhc3Nlcywgb3B0aW9uOiBvcHRpb24sIHNlbGVjdGVkOiBzZWxlY3RlZCB9KSkgfSksIGAke2dyb3VwLmtleX0tJHtvcHRpb24udmFsdWV9YCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KV0gfSwgZ3JvdXAua2V5KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpKSB9KSwgcGFuZWxGb290ZXIgIT0gbnVsbCAmJiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygncGFuZWwtZm9vdGVyJyksIGNoaWxkcmVuOiBwYW5lbEZvb3RlciB9KSldIH0pKSB9KSB9KSldIH0pKTtcbn07XG5TZWxlY3QuZGlzcGxheU5hbWUgPSAnU2VsZWN0JztcbmV4cG9ydCBkZWZhdWx0IG1lbW8oU2VsZWN0KTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
@@ -1,4 +1,11 @@
1
1
  import type { TypographyBodySize, TypographyColor, TypographyLabelSize } from "../Typography";
2
+ export declare const KEYBOARD: {
3
+ readonly ENTER: "Enter";
4
+ readonly SPACE: " ";
5
+ readonly ARROW_DOWN: "ArrowDown";
6
+ readonly ARROW_UP: "ArrowUp";
7
+ readonly ESCAPE: "Escape";
8
+ };
2
9
  interface SelectTypographyConfig {
3
10
  label: {
4
11
  size: TypographyLabelSize;
@@ -3,7 +3,14 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.SELECT_TYPOGRAPHY = void 0;
6
+ exports.SELECT_TYPOGRAPHY = exports.KEYBOARD = void 0;
7
+ var KEYBOARD = exports.KEYBOARD = {
8
+ ENTER: 'Enter',
9
+ SPACE: ' ',
10
+ ARROW_DOWN: 'ArrowDown',
11
+ ARROW_UP: 'ArrowUp',
12
+ ESCAPE: 'Escape'
13
+ };
7
14
  var SELECT_TYPOGRAPHY = exports.SELECT_TYPOGRAPHY = {
8
15
  label: {
9
16
  size: 'lg',
@@ -39,4 +46,4 @@ var SELECT_TYPOGRAPHY = exports.SELECT_TYPOGRAPHY = {
39
46
  color: 'default-tertiary'
40
47
  }
41
48
  };
42
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvU2VsZWN0L2NvbnN0YW50cy50cyIsImNvbXBvbmVudHMvU2VsZWN0L2NvbnN0YW50cy5qcyJdLCJuYW1lcyI6WyJTRUxFQ1RfVFlQT0dSQVBIWSIsImV4cG9ydHMiLCJsYWJlbCIsInNpemUiLCJjb2xvciIsImRpc2FibGVkIiwiZGVzY3JpcHRpb24iLCJmZWVkYmFjayIsIm9wdGlvbiIsImdyb3VwTGFiZWwiLCJlbXB0eSJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBb0NPLElBQU1BLGlCQUFpQixHQUFBQyxPQUFBLENBQUFELGlCQUFBLEdBQTJCO0VBQ3ZERSxLQUFLLEVBQUU7SUFDTEMsSUFBSSxFQUFFLElBQUk7SUFDVkMsS0FBSyxFQUFFO01BQUUsV0FBUyxTQUFTO01BQUVDLFFBQVEsRUFBRTtJQUFVO0VDbkNqRCxDRG9DRDtFQUNEQyxXQUFXLEVBQUU7SUFDWEgsSUFBSSxFQUFFLElBQUk7SUFDVkMsS0FBSyxFQUFFO01BQUUsV0FBUyxrQkFBa0I7TUFBRUMsUUFBUSxFQUFFO0lBQVU7RUNuQzFELENEb0NEO0VBQ0RFLFFBQVEsRUFBRTtJQUFFSixJQUFJLEVBQUU7RUFBSSxDQUFFO0VBQ3hCSyxNQUFNLEVBQUU7SUFDTk4sS0FBSyxFQUFFO01BQUVDLElBQUksRUFBRTtJQUFJLENBQUU7SUFDckJHLFdBQVcsRUFBRTtNQUFFSCxJQUFJLEVBQUUsSUFBSTtNQUFFQyxLQUFLLEVBQUU7SUFBa0I7RUNuQ3BELENEb0NEO0VBQ0RLLFVBQVUsRUFBRTtJQUFFTixJQUFJLEVBQUU7RUFBSSxDQUFFO0VBQzFCTyxLQUFLLEVBQUU7SUFBRVAsSUFBSSxFQUFFLElBQUk7SUFBRUMsS0FBSyxFQUFFO0VBQWtCO0FDbkNoRCxDRG9DQyIsImZpbGUiOiJjb21wb25lbnRzL1NlbGVjdC9jb25zdGFudHMuanMiLCJzb3VyY2VzQ29udGVudCI6W251bGwsImV4cG9ydCBjb25zdCBTRUxFQ1RfVFlQT0dSQVBIWSA9IHtcbiAgICBsYWJlbDoge1xuICAgICAgICBzaXplOiAnbGcnLFxuICAgICAgICBjb2xvcjogeyBkZWZhdWx0OiAnZGVmYXVsdCcsIGRpc2FibGVkOiAnZGlzYWJsZWQnIH0sXG4gICAgfSxcbiAgICBkZXNjcmlwdGlvbjoge1xuICAgICAgICBzaXplOiAnbWQnLFxuICAgICAgICBjb2xvcjogeyBkZWZhdWx0OiAnZGVmYXVsdC10ZXJ0aWFyeScsIGRpc2FibGVkOiAnZGlzYWJsZWQnIH0sXG4gICAgfSxcbiAgICBmZWVkYmFjazogeyBzaXplOiAnc20nIH0sXG4gICAgb3B0aW9uOiB7XG4gICAgICAgIGxhYmVsOiB7IHNpemU6ICdtZCcgfSxcbiAgICAgICAgZGVzY3JpcHRpb246IHsgc2l6ZTogJ3NtJywgY29sb3I6ICdkZWZhdWx0LXRlcnRpYXJ5JyB9LFxuICAgIH0sXG4gICAgZ3JvdXBMYWJlbDogeyBzaXplOiAnbGcnIH0sXG4gICAgZW1wdHk6IHsgc2l6ZTogJ21kJywgY29sb3I6ICdkZWZhdWx0LXRlcnRpYXJ5JyB9LFxufTsiXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
49
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvU2VsZWN0L2NvbnN0YW50cy50cyIsImNvbXBvbmVudHMvU2VsZWN0L2NvbnN0YW50cy5qcyJdLCJuYW1lcyI6WyJLRVlCT0FSRCIsImV4cG9ydHMiLCJFTlRFUiIsIlNQQUNFIiwiQVJST1dfRE9XTiIsIkFSUk9XX1VQIiwiRVNDQVBFIiwiU0VMRUNUX1RZUE9HUkFQSFkiLCJsYWJlbCIsInNpemUiLCJjb2xvciIsImRpc2FibGVkIiwiZGVzY3JpcHRpb24iLCJmZWVkYmFjayIsIm9wdGlvbiIsImdyb3VwTGFiZWwiLCJlbXB0eSJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBRU8sSUFBTUEsUUFBUSxHQUFBQyxPQUFBLENBQUFELFFBQUEsR0FBRztFQUN0QkUsS0FBSyxFQUFFLE9BQU87RUFDZEMsS0FBSyxFQUFFLEdBQUc7RUFDVkMsVUFBVSxFQUFFLFdBQVc7RUFDdkJDLFFBQVEsRUFBRSxTQUFTO0VBQ25CQyxNQUFNLEVBQUU7QUNEVixDREVVO0FBb0NILElBQU1DLGlCQUFpQixHQUFBTixPQUFBLENBQUFNLGlCQUFBLEdBQTJCO0VBQ3ZEQyxLQUFLLEVBQUU7SUFDTEMsSUFBSSxFQUFFLElBQUk7SUFDVkMsS0FBSyxFQUFFO01BQUUsV0FBUyxTQUFTO01BQUVDLFFBQVEsRUFBRTtJQUFVO0VDcENqRCxDRHFDRDtFQUNEQyxXQUFXLEVBQUU7SUFDWEgsSUFBSSxFQUFFLElBQUk7SUFDVkMsS0FBSyxFQUFFO01BQUUsV0FBUyxrQkFBa0I7TUFBRUMsUUFBUSxFQUFFO0lBQVU7RUNwQzFELENEcUNEO0VBQ0RFLFFBQVEsRUFBRTtJQUFFSixJQUFJLEVBQUU7RUFBSSxDQUFFO0VBQ3hCSyxNQUFNLEVBQUU7SUFDTk4sS0FBSyxFQUFFO01BQUVDLElBQUksRUFBRTtJQUFJLENBQUU7SUFDckJHLFdBQVcsRUFBRTtNQUFFSCxJQUFJLEVBQUUsSUFBSTtNQUFFQyxLQUFLLEVBQUU7SUFBa0I7RUNwQ3BELENEcUNEO0VBQ0RLLFVBQVUsRUFBRTtJQUFFTixJQUFJLEVBQUU7RUFBSSxDQUFFO0VBQzFCTyxLQUFLLEVBQUU7SUFBRVAsSUFBSSxFQUFFLElBQUk7SUFBRUMsS0FBSyxFQUFFO0VBQWtCO0FDcENoRCxDRHFDQyIsImZpbGUiOiJjb21wb25lbnRzL1NlbGVjdC9jb25zdGFudHMuanMiLCJzb3VyY2VzQ29udGVudCI6W251bGwsImV4cG9ydCBjb25zdCBLRVlCT0FSRCA9IHtcbiAgICBFTlRFUjogJ0VudGVyJyxcbiAgICBTUEFDRTogJyAnLFxuICAgIEFSUk9XX0RPV046ICdBcnJvd0Rvd24nLFxuICAgIEFSUk9XX1VQOiAnQXJyb3dVcCcsXG4gICAgRVNDQVBFOiAnRXNjYXBlJyxcbn07XG5leHBvcnQgY29uc3QgU0VMRUNUX1RZUE9HUkFQSFkgPSB7XG4gICAgbGFiZWw6IHtcbiAgICAgICAgc2l6ZTogJ2xnJyxcbiAgICAgICAgY29sb3I6IHsgZGVmYXVsdDogJ2RlZmF1bHQnLCBkaXNhYmxlZDogJ2Rpc2FibGVkJyB9LFxuICAgIH0sXG4gICAgZGVzY3JpcHRpb246IHtcbiAgICAgICAgc2l6ZTogJ21kJyxcbiAgICAgICAgY29sb3I6IHsgZGVmYXVsdDogJ2RlZmF1bHQtdGVydGlhcnknLCBkaXNhYmxlZDogJ2Rpc2FibGVkJyB9LFxuICAgIH0sXG4gICAgZmVlZGJhY2s6IHsgc2l6ZTogJ3NtJyB9LFxuICAgIG9wdGlvbjoge1xuICAgICAgICBsYWJlbDogeyBzaXplOiAnbWQnIH0sXG4gICAgICAgIGRlc2NyaXB0aW9uOiB7IHNpemU6ICdzbScsIGNvbG9yOiAnZGVmYXVsdC10ZXJ0aWFyeScgfSxcbiAgICB9LFxuICAgIGdyb3VwTGFiZWw6IHsgc2l6ZTogJ2xnJyB9LFxuICAgIGVtcHR5OiB7IHNpemU6ICdtZCcsIGNvbG9yOiAnZGVmYXVsdC10ZXJ0aWFyeScgfSxcbn07Il0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
@@ -113,4 +113,4 @@ function renderWithEnhancements(textElement, enhancement, prefixCls) {
113
113
  }), ellipsisTooltip]
114
114
  });
115
115
  }
116
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvVHlwb2dyYXBoeS9yZW5kZXIuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL1R5cG9ncmFwaHkvcmVuZGVyLnRzeCJdLCJuYW1lcyI6WyJfanN4UnVudGltZSIsInJlcXVpcmUiLCJfcmVhY3QiLCJfQ29weSIsIl9Ob3RpZmljYXRpb24iLCJfVG9vbHRpcCIsIl9jbGFzc25hbWVzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl91dGlscyIsIl9fcmVzdCIsInMiLCJlIiwidCIsInAiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpbmRleE9mIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiaSIsImxlbmd0aCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwiQ09QWV9JQ09OX1NJWkUiLCJERUZBVUxUX0NPUFlfTk9USUZJQ0FUSU9OX1RJVExFIiwiREVGQVVMVF9DT1BZX05PVElGSUNBVElPTl9CT0RZIiwiREVGQVVMVF9DT1BZX05PVElGSUNBVElPTl9EVVJBVElPTiIsImRlZmF1bHRPbkNvcHkiLCJub3RpZmljYXRpb24iLCJzdWNjZXNzIiwidGl0bGUiLCJib2R5IiwiZHVyYXRpb24iLCJidWlsZFR5cG9ncmFwaHlUZXh0Tm9kZVByb3BzIiwib3B0aW9ucyIsIl9hIiwicHJlZml4Q2xzIiwiY2xhc3NOYW1lIiwiY2F0ZWdvcnkiLCJzaXplIiwiY29sb3IiLCJzdHJvbmciLCJpdGFsaWMiLCJ1bmRlcmxpbmUiLCJpc0RlbGV0ZWQiLCJkaXNhYmxlZCIsInN0eWxlIiwiY2hpbGRyZW4iLCJlbmhhbmNlbWVudCIsImlkIiwidGV4dElkIiwiZ2V0VHlwb2dyYXBoeUNsYXNzTmFtZSIsImVsbGlwc2lzIiwiY29weWFibGUiLCJjb3B5VGV4dCIsIl9qc3hzIiwiX0ZyYWdtZW50IiwiZGlzcGxheVRleHQiLCJfanN4IiwicmVmIiwic2V0TWVhc3VyZU5vZGUiLCJjbGFzc25hbWVzIiwiZnVsbFRleHQiLCJyZW5kZXJUeXBvZ3JhcGh5VGV4dFRhZyIsInRhZyIsImh0bWxQcm9wcyIsIm5vZGVQcm9wcyIsImNyZWF0ZUVsZW1lbnQiLCJhc3NpZ24iLCJyZW5kZXJUeXBvZ3JhcGh5QW5jaG9yVGFnIiwiYW5jaG9yUHJvcHMiLCJyZXN0Tm9kZVByb3BzIiwicmVuZGVyV2l0aEVuaGFuY2VtZW50cyIsInRleHRFbGVtZW50IiwiX2IiLCJlbGxpcHNpc1Rvb2x0aXAiLCJlbGxpcHNpc1Rvb2x0aXBQcm9wcyIsIlRvb2x0aXAiLCJhbmNob3JTZWxlY3QiLCJjb25jYXQiLCJjbGFzc2VzIiwiV3JhcHBlciIsIndyYXBwZXJUYWciLCJpc0lubGluZUNvbXBvbmVudCIsIkNvcHkiLCJ2YWx1ZSIsImljb25TaXplIiwiY29udGFpbmVkIiwib25TdWNjZXNzIiwib25Db3B5Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBV0EsSUFBQUEsV0FBQSxHQUFBQyxPQUFBO0FDWEEsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsS0FBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsYUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksUUFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssV0FBQSxHQUFBQyxzQkFBQSxDQUFBTixPQUFBO0FBS0EsSUFBQU8sTUFBQSxHQUFBUCxPQUFBO0FEVEEsSUFBSVEsTUFBTSxHQUFJLFVBQVEsU0FBS0EsTUFBTSxJQUFLLFVBQVVDLENBQUMsRUFBRUMsQ0FBQyxFQUFFO0VBQ2xELElBQUlDLENBQUMsR0FBRyxDQUFDLENBQUM7RUFDVixLQUFLLElBQUlDLENBQUMsSUFBSUgsQ0FBQyxFQUFFLElBQUlJLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ1AsQ0FBQyxFQUFFRyxDQUFDLENBQUMsSUFBSUYsQ0FBQyxDQUFDTyxPQUFPLENBQUNMLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFDL0VELENBQUMsQ0FBQ0MsQ0FBQyxDQUFDLEdBQUdILENBQUMsQ0FBQ0csQ0FBQyxDQUFDO0VBQ2YsSUFBSUgsQ0FBQyxJQUFJLElBQUksSUFBSSxPQUFPSSxNQUFNLENBQUNLLHFCQUFxQixLQUFLLFVBQVUsRUFDL0QsS0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxFQUFFUCxDQUFDLEdBQUdDLE1BQU0sQ0FBQ0sscUJBQXFCLENBQUNULENBQUMsQ0FBQyxFQUFFVSxDQUFDLEdBQUdQLENBQUMsQ0FBQ1EsTUFBTSxFQUFFRCxDQUFDLEVBQUUsRUFBRTtJQUNwRSxJQUFJVCxDQUFDLENBQUNPLE9BQU8sQ0FBQ0wsQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSU4sTUFBTSxDQUFDQyxTQUFTLENBQUNPLG9CQUFvQixDQUFDTCxJQUFJLENBQUNQLENBQUMsRUFBRUcsQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FBQyxFQUMxRVIsQ0FBQyxDQUFDQyxDQUFDLENBQUNPLENBQUMsQ0FBQyxDQUFDLEdBQUdWLENBQUMsQ0FBQ0csQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FBQztFQUN6QjtFQUNKLE9BQU9SLENBQUM7QUFDWixDQUFDO0FDQ0QsSUFBTVcsY0FBYyxHQUFHLEVBQUU7QUFDekIsSUFBTUMsK0JBQStCLEdBQUcsU0FBUztBQUNqRCxJQUFNQyw4QkFBOEIsR0FBRyxxQkFBcUI7QUFDNUQsSUFBTUMsa0NBQWtDLEdBQUcsR0FBRztBQUU5QyxJQUFNQyxhQUFhLEdBQUcsU0FBaEJBLGFBQWFBLENBQUEsRUFBUTtFQUN6QkMsMEJBQVksQ0FBQ0MsT0FBTyxDQUFDO0lBQ25CQyxLQUFLLEVBQUVOLCtCQUErQjtJQUN0Q08sSUFBSSxFQUFFTiw4QkFBOEI7SUFDcENPLFFBQVEsRUFBRU47RURPVixDQ05ELENBQUM7QUFDSixDQUFDO0FBU0ssU0FBVU8sNEJBQTRCQSxDQUMxQ0MsT0FBMEMsRUFBQTtFREZ4QyxJQUFJQyxFQUFFO0VDSVIsSUFDRUMsU0FBUyxHQWFQRixPQUFPLENBYlRFLFNBQVM7SUFDVEMsU0FBUyxHQVlQSCxPQUFPLENBWlRHLFNBQVM7SUFDVEMsUUFBUSxHQVdOSixPQUFPLENBWFRJLFFBQVE7SUFDUkMsSUFBSSxHQVVGTCxPQUFPLENBVlRLLElBQUk7SUFDSkMsS0FBSyxHQVNITixPQUFPLENBVFRNLEtBQUs7SUFDTEMsTUFBTSxHQVFKUCxPQUFPLENBUlRPLE1BQU07SUFDTkMsTUFBTSxHQU9KUixPQUFPLENBUFRRLE1BQU07SUFDTkMsU0FBUyxHQU1QVCxPQUFPLENBTlRTLFNBQVM7SUFDVEMsU0FBUyxHQUtQVixPQUFPLENBTFRVLFNBQVM7SUFDVEMsUUFBUSxHQUlOWCxPQUFPLENBSlRXLFFBQVE7SUFDUkMsS0FBSyxHQUdIWixPQUFPLENBSFRZLEtBQUs7SUFDTEMsUUFBUSxHQUVOYixPQUFPLENBRlRhLFFBQVE7SUFDUkMsV0FBVyxHQUNUZCxPQUFPLENBRFRjLFdBQVc7RUFHYixPQUFPO0lBQ0xDLEVBQUUsRUFBRUQsV0FBVyxDQUFDRSxNQUFNO0lBQ3RCSixLQUFLLEVBQUxBLEtBQUs7SUFDTFQsU0FBUyxFQUFFLElBQUFjLDZCQUFzQixFQUFDO01BQ2hDZixTQUFTLEVBQVRBLFNBQVM7TUFDVEMsU0FBUyxFQUFUQSxTQUFTO01BQ1RDLFFBQVEsRUFBRUEsUUFBOEI7TUFDeENDLElBQUksRUFBSkEsSUFBSTtNQUNKQyxLQUFLLEVBQUxBLEtBQUs7TUFDTEMsTUFBTSxFQUFOQSxNQUFNO01BQ05DLE1BQU0sRUFBTkEsTUFBTTtNQUNOQyxTQUFTLEVBQVRBLFNBQVM7TUFDVEMsU0FBUyxFQUFUQSxTQUFTO01BQ1RDLFFBQVEsRUFBUkEsUUFBUTtNQUNSTyxRQUFRLEVBQUUsQ0FBQyxDQUFDSixXQUFXLENBQUNJLFFBQVE7TUFDaENDLFFBQVEsRUFBRUwsV0FBVyxDQUFDTSxRQUFRLEtBQUs7SURqQmpDLENDa0JILENBQUM7SUFDRlAsUUFBUSxFQUFFQyxXQUFXLENBQUNJLFFBQVEsR0FDNUIsSUFBQUcsZ0JBQUEsRUFBQUMsb0JBQUEsRUFBQTtNQUFBVCxRQUFBLEVBQUEsQ0FDRyxDQUFBWixFQUFBLEdBQUFhLFdBQVcsQ0FBQ1MsV0FBVyxNQUFBLElBQUEsSUFBQXRCLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxHQUFJWSxRQUFRLEVBQ3BDLElBQUFXLGVBQUEsRUFBQSxNQUFBLEVBQUE7UUFDRUMsR0FBRyxFQUFFWCxXQUFXLENBQUNZLGNBQWM7UUFBQSxhQUFBLEVBQ25CLE1BQU07UUFDbEJ2QixTQUFTLEVBQUUsSUFBQXdCLHNCQUFVLEVBQUN6QixTQUFTLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQztRQUFBVyxRQUFBLEVBRW5EQyxXQUFXLENBQUNjO01BQVEsQ0FBQSxDQUNoQjtJQUFBLENBQUEsQ0FDTixHQUNEZjtFRDVCSixDQzZCRDtBQUNIO0FBRU0sU0FBVWdCLHVCQUF1QkEsQ0FDckNDLEdBQXNCLEVBQ3RCQyxTQUFzQyxFQUN0Q0MsU0FBa0MsRUFDbENQLEdBQXFCLEVBQUE7RUFFckIsb0JBQU8sSUFBQVEsb0JBQWEsRUFBQ0gsR0FBRyxFQUFBbEQsTUFBQSxDQUFBc0QsTUFBQSxDQUFBdEQsTUFBQSxDQUFBc0QsTUFBQSxDQUFBdEQsTUFBQSxDQUFBc0QsTUFBQSxDQUFBLENBQUEsQ0FBQSxFQUFPSCxTQUFTLENBQUEsRUFBS0MsU0FBUyxDQUFBLEVBQUE7SUFBRVAsR0FBRyxFQUFIQTtFQUFHLENBQUEsQ0FBQSxDQUFHO0FBQ2hFO0FBRU0sU0FBVVUseUJBQXlCQSxDQUN2Q0MsV0FBb0QsRUFDcERKLFNBQWtDLEVBQ2xDUCxHQUEyQixFQUFBO0VBRXJCLElBQUVaLFFBQVEsR0FBdUJtQixTQUFTLENBQXhDbkIsUUFBUTtJQUFLd0IsYUFBYSxHQUFBOUQsTUFBQSxDQUFLeUQsU0FBUyxFQUExQyxDQUFBLFVBQUEsQ0FBOEIsQ0FBWTtFQUVoRCxPQUNFLElBQUFSLGVBQUEsRUFBQSxHQUFBLEVBQUE1QyxNQUFBLENBQUFzRCxNQUFBLENBQUEsQ0FBQSxDQUFBLEVBQU9FLFdBQVcsRUFBTUMsYUFBYSxFQUFBO0lBQUVaLEdBQUcsRUFBRUEsR0FBRztJQUFBWixRQUFBLEVBQzVDQTtFQUFRLENBQUEsQ0FBQSxDQUNQO0FBRVI7QUFFTSxTQUFVeUIsc0JBQXNCQSxDQUNwQ0MsV0FBc0IsRUFDdEJ6QixXQUF3QyxFQUN4Q1osU0FBaUIsRUFBQTtFRGhEZixJQUFJRCxFQUFFLEVBQUV1QyxFQUFFO0VDa0RaLElBQU1DLGVBQWUsR0FBRzNCLFdBQVcsQ0FBQzRCLG9CQUFvQixJQUFJNUIsV0FBVyxDQUFDRSxNQUFNLEdBQzVFLElBQUFRLGVBQUEsRUFBQ21CLGdCQUFPLEVBQUEvRCxNQUFBLENBQUFzRCxNQUFBLENBQUEsQ0FBQSxDQUFBLEVBQ0ZwQixXQUFXLENBQUM0QixvQkFBb0IsRUFBQTtJQUNwQ0UsWUFBWSxNQUFBQyxNQUFBLENBQU0vQixXQUFXLENBQUNFLE1BQU07RUFBRSxDQUFBLENBQUEsQ0FDdEMsR0FDQSxJQUFJO0VBRVIsSUFBSUYsV0FBVyxDQUFDTSxRQUFRLEtBQUssSUFBSSxFQUFFO0lBQ2pDLE9BQ0UsSUFBQUMsZ0JBQUEsRUFBQUMsb0JBQUEsRUFBQTtNQUFBVCxRQUFBLEVBQUEsQ0FDRzBCLFdBQVcsRUFDWEUsZUFBZTtJQUFBLENBQUEsQ0FDZjtFQUVQO0VBRUEsSUFBTUssT0FBTyxHQUFHLElBQUFuQixzQkFBVSxFQUFDekIsU0FBUyxDQUFDO0VBQ3JDLElBQU02QyxPQUFPLEdBQUcsQ0FBQTlDLEVBQUEsR0FBQWEsV0FBVyxDQUFDa0MsVUFBVSxNQUFBLElBQUEsSUFBQS9DLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxHQUFJLE1BQU07RUFFaEQsT0FDRSxJQUFBb0IsZ0JBQUEsRUFBQUMsb0JBQUEsRUFBQTtJQUFBVCxRQUFBLEVBQUEsQ0FDRSxJQUFBUSxnQkFBQSxFQUFDMEIsT0FBTyxFQUFBO01BQ041QyxTQUFTLEVBQUUyQyxPQUFPLENBQ2hCLGtCQUFrQixFQUNsQmhDLFdBQVcsQ0FBQ21DLGlCQUFpQixHQUN6QkgsT0FBTyxDQUFDLHlCQUF5QixDQUFDLEdBQ2xDQSxPQUFPLENBQUMsd0JBQXdCLENBQUMsQ0FDdEM7TUFBQWpDLFFBQUEsRUFBQSxDQUVBMEIsV0FBVyxFQUNaLElBQUFmLGVBQUEsRUFBQzBCLFVBQUksRUFBQTtRQUNIQyxLQUFLLEVBQUVyQyxXQUFXLENBQUNNLFFBQVE7UUFDM0JnQyxRQUFRLEVBQUUvRCxjQUFjO1FBQ3hCZ0UsU0FBUyxFQUFFLEtBQUs7UUFDaEJDLFNBQVMsRUFBRSxDQUFBZCxFQUFBLEdBQUExQixXQUFXLENBQUN5QyxNQUFNLE1BQUEsSUFBQSxJQUFBZixFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsR0FBSS9DO01BQWEsQ0FBQSxDQUM5QztJQUFBLENBQUEsQ0FDTSxFQUNUZ0QsZUFBZTtFQUFBLENBQUEsQ0FDZjtBQUVQIiwiZmlsZSI6ImNvbXBvbmVudHMvVHlwb2dyYXBoeS9yZW5kZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwgRnJhZ21lbnQgYXMgX0ZyYWdtZW50LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBjcmVhdGVFbGVtZW50IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQ29weSB9IGZyb20gJy4uL0NvcHknO1xuaW1wb3J0IHsgbm90aWZpY2F0aW9uIH0gZnJvbSAnLi4vTm90aWZpY2F0aW9uJztcbmltcG9ydCB7IFRvb2x0aXAgfSBmcm9tICcuLi9Ub29sdGlwJztcbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgZ2V0VHlwb2dyYXBoeUNsYXNzTmFtZSB9IGZyb20gJy4vdXRpbHMnO1xuY29uc3QgQ09QWV9JQ09OX1NJWkUgPSAxNjtcbmNvbnN0IERFRkFVTFRfQ09QWV9OT1RJRklDQVRJT05fVElUTEUgPSAnU3VjY2Vzcyc7XG5jb25zdCBERUZBVUxUX0NPUFlfTk9USUZJQ0FUSU9OX0JPRFkgPSAnQ29waWVkIHRvIGNsaXBib2FyZCc7XG5jb25zdCBERUZBVUxUX0NPUFlfTk9USUZJQ0FUSU9OX0RVUkFUSU9OID0gMS41O1xuY29uc3QgZGVmYXVsdE9uQ29weSA9ICgpID0+IHtcbiAgICBub3RpZmljYXRpb24uc3VjY2Vzcyh7XG4gICAgICAgIHRpdGxlOiBERUZBVUxUX0NPUFlfTk9USUZJQ0FUSU9OX1RJVExFLFxuICAgICAgICBib2R5OiBERUZBVUxUX0NPUFlfTk9USUZJQ0FUSU9OX0JPRFksXG4gICAgICAgIGR1cmF0aW9uOiBERUZBVUxUX0NPUFlfTk9USUZJQ0FUSU9OX0RVUkFUSU9OLFxuICAgIH0pO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBidWlsZFR5cG9ncmFwaHlUZXh0Tm9kZVByb3BzKG9wdGlvbnMpIHtcbiAgICB2YXIgX2E7XG4gICAgY29uc3QgeyBwcmVmaXhDbHMsIGNsYXNzTmFtZSwgY2F0ZWdvcnksIHNpemUsIGNvbG9yLCBzdHJvbmcsIGl0YWxpYywgdW5kZXJsaW5lLCBpc0RlbGV0ZWQsIGRpc2FibGVkLCBzdHlsZSwgY2hpbGRyZW4sIGVuaGFuY2VtZW50LCB9ID0gb3B0aW9ucztcbiAgICByZXR1cm4ge1xuICAgICAgICBpZDogZW5oYW5jZW1lbnQudGV4dElkLFxuICAgICAgICBzdHlsZSxcbiAgICAgICAgY2xhc3NOYW1lOiBnZXRUeXBvZ3JhcGh5Q2xhc3NOYW1lKHtcbiAgICAgICAgICAgIHByZWZpeENscyxcbiAgICAgICAgICAgIGNsYXNzTmFtZSxcbiAgICAgICAgICAgIGNhdGVnb3J5OiBjYXRlZ29yeSxcbiAgICAgICAgICAgIHNpemUsXG4gICAgICAgICAgICBjb2xvcixcbiAgICAgICAgICAgIHN0cm9uZyxcbiAgICAgICAgICAgIGl0YWxpYyxcbiAgICAgICAgICAgIHVuZGVybGluZSxcbiAgICAgICAgICAgIGlzRGVsZXRlZCxcbiAgICAgICAgICAgIGRpc2FibGVkLFxuICAgICAgICAgICAgZWxsaXBzaXM6ICEhZW5oYW5jZW1lbnQuZWxsaXBzaXMsXG4gICAgICAgICAgICBjb3B5YWJsZTogZW5oYW5jZW1lbnQuY29weVRleHQgIT09IG51bGwsXG4gICAgICAgIH0pLFxuICAgICAgICBjaGlsZHJlbjogZW5oYW5jZW1lbnQuZWxsaXBzaXMgPyAoX2pzeHMoX0ZyYWdtZW50LCB7IGNoaWxkcmVuOiBbKF9hID0gZW5oYW5jZW1lbnQuZGlzcGxheVRleHQpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGNoaWxkcmVuLCBfanN4KFwic3BhblwiLCB7IHJlZjogZW5oYW5jZW1lbnQuc2V0TWVhc3VyZU5vZGUsIFwiYXJpYS1oaWRkZW5cIjogXCJ0cnVlXCIsIGNsYXNzTmFtZTogY2xhc3NuYW1lcyhwcmVmaXhDbHMpKCdlbGxpcHNpcy1tZWFzdXJlJyksIGNoaWxkcmVuOiBlbmhhbmNlbWVudC5mdWxsVGV4dCB9KV0gfSkpIDogY2hpbGRyZW4sXG4gICAgfTtcbn1cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJUeXBvZ3JhcGh5VGV4dFRhZyh0YWcsIGh0bWxQcm9wcywgbm9kZVByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gY3JlYXRlRWxlbWVudCh0YWcsIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBodG1sUHJvcHMpLCBub2RlUHJvcHMpLCB7IHJlZiB9KSk7XG59XG5leHBvcnQgZnVuY3Rpb24gcmVuZGVyVHlwb2dyYXBoeUFuY2hvclRhZyhhbmNob3JQcm9wcywgbm9kZVByb3BzLCByZWYpIHtcbiAgICBjb25zdCB7IGNoaWxkcmVuIH0gPSBub2RlUHJvcHMsIHJlc3ROb2RlUHJvcHMgPSBfX3Jlc3Qobm9kZVByb3BzLCBbXCJjaGlsZHJlblwiXSk7XG4gICAgcmV0dXJuIChfanN4KFwiYVwiLCBPYmplY3QuYXNzaWduKHt9LCBhbmNob3JQcm9wcywgcmVzdE5vZGVQcm9wcywgeyByZWY6IHJlZiwgY2hpbGRyZW46IGNoaWxkcmVuIH0pKSk7XG59XG5leHBvcnQgZnVuY3Rpb24gcmVuZGVyV2l0aEVuaGFuY2VtZW50cyh0ZXh0RWxlbWVudCwgZW5oYW5jZW1lbnQsIHByZWZpeENscykge1xuICAgIHZhciBfYSwgX2I7XG4gICAgY29uc3QgZWxsaXBzaXNUb29sdGlwID0gZW5oYW5jZW1lbnQuZWxsaXBzaXNUb29sdGlwUHJvcHMgJiYgZW5oYW5jZW1lbnQudGV4dElkID8gKF9qc3goVG9vbHRpcCwgT2JqZWN0LmFzc2lnbih7fSwgZW5oYW5jZW1lbnQuZWxsaXBzaXNUb29sdGlwUHJvcHMsIHsgYW5jaG9yU2VsZWN0OiBgIyR7ZW5oYW5jZW1lbnQudGV4dElkfWAgfSkpKSA6IG51bGw7XG4gICAgaWYgKGVuaGFuY2VtZW50LmNvcHlUZXh0ID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybiAoX2pzeHMoX0ZyYWdtZW50LCB7IGNoaWxkcmVuOiBbdGV4dEVsZW1lbnQsIGVsbGlwc2lzVG9vbHRpcF0gfSkpO1xuICAgIH1cbiAgICBjb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcyhwcmVmaXhDbHMpO1xuICAgIGNvbnN0IFdyYXBwZXIgPSAoX2EgPSBlbmhhbmNlbWVudC53cmFwcGVyVGFnKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAnc3Bhbic7XG4gICAgcmV0dXJuIChfanN4cyhfRnJhZ21lbnQsIHsgY2hpbGRyZW46IFtfanN4cyhXcmFwcGVyLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnY29weWFibGUtd3JhcHBlcicsIGVuaGFuY2VtZW50LmlzSW5saW5lQ29tcG9uZW50XG4gICAgICAgICAgICAgICAgICAgID8gY2xhc3NlcygnY29weWFibGUtd3JhcHBlci1pbmxpbmUnKVxuICAgICAgICAgICAgICAgICAgICA6IGNsYXNzZXMoJ2NvcHlhYmxlLXdyYXBwZXItYmxvY2snKSksIGNoaWxkcmVuOiBbdGV4dEVsZW1lbnQsIF9qc3goQ29weSwgeyB2YWx1ZTogZW5oYW5jZW1lbnQuY29weVRleHQsIGljb25TaXplOiBDT1BZX0lDT05fU0laRSwgY29udGFpbmVkOiBmYWxzZSwgb25TdWNjZXNzOiAoX2IgPSBlbmhhbmNlbWVudC5vbkNvcHkpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IGRlZmF1bHRPbkNvcHkgfSldIH0pLCBlbGxpcHNpc1Rvb2x0aXBdIH0pKTtcbn0iLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
116
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvVHlwb2dyYXBoeS9yZW5kZXIuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL1R5cG9ncmFwaHkvcmVuZGVyLnRzeCJdLCJuYW1lcyI6WyJfanN4UnVudGltZSIsInJlcXVpcmUiLCJfcmVhY3QiLCJfQ29weSIsIl9Ob3RpZmljYXRpb24iLCJfVG9vbHRpcCIsIl9jbGFzc25hbWVzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl91dGlscyIsIl9fcmVzdCIsInMiLCJlIiwidCIsInAiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpbmRleE9mIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiaSIsImxlbmd0aCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwiQ09QWV9JQ09OX1NJWkUiLCJERUZBVUxUX0NPUFlfTk9USUZJQ0FUSU9OX1RJVExFIiwiREVGQVVMVF9DT1BZX05PVElGSUNBVElPTl9CT0RZIiwiREVGQVVMVF9DT1BZX05PVElGSUNBVElPTl9EVVJBVElPTiIsImRlZmF1bHRPbkNvcHkiLCJub3RpZmljYXRpb24iLCJzdWNjZXNzIiwidGl0bGUiLCJib2R5IiwiZHVyYXRpb24iLCJidWlsZFR5cG9ncmFwaHlUZXh0Tm9kZVByb3BzIiwib3B0aW9ucyIsIl9hIiwicHJlZml4Q2xzIiwiY2xhc3NOYW1lIiwiY2F0ZWdvcnkiLCJzaXplIiwiY29sb3IiLCJzdHJvbmciLCJpdGFsaWMiLCJ1bmRlcmxpbmUiLCJpc0RlbGV0ZWQiLCJkaXNhYmxlZCIsInN0eWxlIiwiY2hpbGRyZW4iLCJlbmhhbmNlbWVudCIsImlkIiwidGV4dElkIiwiZ2V0VHlwb2dyYXBoeUNsYXNzTmFtZSIsImVsbGlwc2lzIiwiY29weWFibGUiLCJjb3B5VGV4dCIsIl9qc3hzIiwiX0ZyYWdtZW50IiwiZGlzcGxheVRleHQiLCJfanN4IiwicmVmIiwic2V0TWVhc3VyZU5vZGUiLCJjbGFzc25hbWVzIiwiZnVsbFRleHQiLCJyZW5kZXJUeXBvZ3JhcGh5VGV4dFRhZyIsInRhZyIsImh0bWxQcm9wcyIsIm5vZGVQcm9wcyIsImNyZWF0ZUVsZW1lbnQiLCJhc3NpZ24iLCJyZW5kZXJUeXBvZ3JhcGh5QW5jaG9yVGFnIiwiYW5jaG9yUHJvcHMiLCJyZXN0Tm9kZVByb3BzIiwicmVuZGVyV2l0aEVuaGFuY2VtZW50cyIsInRleHRFbGVtZW50IiwiX2IiLCJlbGxpcHNpc1Rvb2x0aXAiLCJlbGxpcHNpc1Rvb2x0aXBQcm9wcyIsIlRvb2x0aXAiLCJhbmNob3JTZWxlY3QiLCJjb25jYXQiLCJjbGFzc2VzIiwiV3JhcHBlciIsIndyYXBwZXJUYWciLCJpc0lubGluZUNvbXBvbmVudCIsIkNvcHkiLCJ2YWx1ZSIsImljb25TaXplIiwiY29udGFpbmVkIiwib25TdWNjZXNzIiwib25Db3B5Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBV0EsSUFBQUEsV0FBQSxHQUFBQyxPQUFBO0FDWEEsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsS0FBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsYUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksUUFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssV0FBQSxHQUFBQyxzQkFBQSxDQUFBTixPQUFBO0FBSUEsSUFBQU8sTUFBQSxHQUFBUCxPQUFBO0FEUkEsSUFBSVEsTUFBTSxHQUFJLFVBQVEsU0FBS0EsTUFBTSxJQUFLLFVBQVVDLENBQUMsRUFBRUMsQ0FBQyxFQUFFO0VBQ2xELElBQUlDLENBQUMsR0FBRyxDQUFDLENBQUM7RUFDVixLQUFLLElBQUlDLENBQUMsSUFBSUgsQ0FBQyxFQUFFLElBQUlJLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ1AsQ0FBQyxFQUFFRyxDQUFDLENBQUMsSUFBSUYsQ0FBQyxDQUFDTyxPQUFPLENBQUNMLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFDL0VELENBQUMsQ0FBQ0MsQ0FBQyxDQUFDLEdBQUdILENBQUMsQ0FBQ0cs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RUFDWixJQUFBZixlQUFBLEVBQUMwQixVQUFJLEVBQUE7UUFDSEMsS0FBSyxFQUFFckMsV0FBVyxDQUFDTSxRQUFRO1FBQzNCZ0MsUUFBUSxFQUFFL0QsY0FBYztRQUN4QmdFLFNBQVMsRUFBRSxLQUFLO1FBQ2hCQyxTQUFTLEVBQUUsQ0FBQWQsRUFBQSxHQUFBMUIsV0FBVyxDQUFDeUMsTUFBTSxNQUFBLElBQUEsSUFBQWYsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLEdBQUkvQztNQUFhLENBQUEsQ0FDOUM7SUFBQSxDQUFBLENBQ00sRUFDVGdELGVBQWU7RUFBQSxDQUFBLENBQ2Y7QUFFUCIsImZpbGUiOiJjb21wb25lbnRzL1R5cG9ncmFwaHkvcmVuZGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIEZyYWdtZW50IGFzIF9GcmFnbWVudCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgY3JlYXRlRWxlbWVudCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IENvcHkgfSBmcm9tICcuLi9Db3B5JztcbmltcG9ydCB7IG5vdGlmaWNhdGlvbiB9IGZyb20gJy4uL05vdGlmaWNhdGlvbic7XG5pbXBvcnQgeyBUb29sdGlwIH0gZnJvbSAnLi4vVG9vbHRpcCc7XG5pbXBvcnQgY2xhc3NuYW1lcyBmcm9tICcuLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCB7IGdldFR5cG9ncmFwaHlDbGFzc05hbWUgfSBmcm9tICcuL3V0aWxzJztcbmNvbnN0IENPUFlfSUNPTl9TSVpFID0gMTY7XG5jb25zdCBERUZBVUxUX0NPUFlfTk9USUZJQ0FUSU9OX1RJVExFID0gJ1N1Y2Nlc3MnO1xuY29uc3QgREVGQVVMVF9DT1BZX05PVElGSUNBVElPTl9CT0RZID0gJ0NvcGllZCB0byBjbGlwYm9hcmQnO1xuY29uc3QgREVGQVVMVF9DT1BZX05PVElGSUNBVElPTl9EVVJBVElPTiA9IDEuNTtcbmNvbnN0IGRlZmF1bHRPbkNvcHkgPSAoKSA9PiB7XG4gICAgbm90aWZpY2F0aW9uLnN1Y2Nlc3Moe1xuICAgICAgICB0aXRsZTogREVGQVVMVF9DT1BZX05PVElGSUNBVElPTl9USVRMRSxcbiAgICAgICAgYm9keTogREVGQVVMVF9DT1BZX05PVElGSUNBVElPTl9CT0RZLFxuICAgICAgICBkdXJhdGlvbjogREVGQVVMVF9DT1BZX05PVElGSUNBVElPTl9EVVJBVElPTixcbiAgICB9KTtcbn07XG5leHBvcnQgZnVuY3Rpb24gYnVpbGRUeXBvZ3JhcGh5VGV4dE5vZGVQcm9wcyhvcHRpb25zKSB7XG4gICAgdmFyIF9hO1xuICAgIGNvbnN0IHsgcHJlZml4Q2xzLCBjbGFzc05hbWUsIGNhdGVnb3J5LCBzaXplLCBjb2xvciwgc3Ryb25nLCBpdGFsaWMsIHVuZGVybGluZSwgaXNEZWxldGVkLCBkaXNhYmxlZCwgc3R5bGUsIGNoaWxkcmVuLCBlbmhhbmNlbWVudCwgfSA9IG9wdGlvbnM7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgaWQ6IGVuaGFuY2VtZW50LnRleHRJZCxcbiAgICAgICAgc3R5bGUsXG4gICAgICAgIGNsYXNzTmFtZTogZ2V0VHlwb2dyYXBoeUNsYXNzTmFtZSh7XG4gICAgICAgICAgICBwcmVmaXhDbHMsXG4gICAgICAgICAgICBjbGFzc05hbWUsXG4gICAgICAgICAgICBjYXRlZ29yeSxcbiAgICAgICAgICAgIHNpemUsXG4gICAgICAgICAgICBjb2xvcixcbiAgICAgICAgICAgIHN0cm9uZyxcbiAgICAgICAgICAgIGl0YWxpYyxcbiAgICAgICAgICAgIHVuZGVybGluZSxcbiAgICAgICAgICAgIGlzRGVsZXRlZCxcbiAgICAgICAgICAgIGRpc2FibGVkLFxuICAgICAgICAgICAgZWxsaXBzaXM6ICEhZW5oYW5jZW1lbnQuZWxsaXBzaXMsXG4gICAgICAgICAgICBjb3B5YWJsZTogZW5oYW5jZW1lbnQuY29weVRleHQgIT09IG51bGwsXG4gICAgICAgIH0pLFxuICAgICAgICBjaGlsZHJlbjogZW5oYW5jZW1lbnQuZWxsaXBzaXMgPyAoX2pzeHMoX0ZyYWdtZW50LCB7IGNoaWxkcmVuOiBbKF9hID0gZW5oYW5jZW1lbnQuZGlzcGxheVRleHQpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGNoaWxkcmVuLCBfanN4KFwic3BhblwiLCB7IHJlZjogZW5oYW5jZW1lbnQuc2V0TWVhc3VyZU5vZGUsIFwiYXJpYS1oaWRkZW5cIjogXCJ0cnVlXCIsIGNsYXNzTmFtZTogY2xhc3NuYW1lcyhwcmVmaXhDbHMpKCdlbGxpcHNpcy1tZWFzdXJlJyksIGNoaWxkcmVuOiBlbmhhbmNlbWVudC5mdWxsVGV4dCB9KV0gfSkpIDogY2hpbGRyZW4sXG4gICAgfTtcbn1cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJUeXBvZ3JhcGh5VGV4dFRhZyh0YWcsIGh0bWxQcm9wcywgbm9kZVByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gY3JlYXRlRWxlbWVudCh0YWcsIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBodG1sUHJvcHMpLCBub2RlUHJvcHMpLCB7IHJlZiB9KSk7XG59XG5leHBvcnQgZnVuY3Rpb24gcmVuZGVyVHlwb2dyYXBoeUFuY2hvclRhZyhhbmNob3JQcm9wcywgbm9kZVByb3BzLCByZWYpIHtcbiAgICBjb25zdCB7IGNoaWxkcmVuIH0gPSBub2RlUHJvcHMsIHJlc3ROb2RlUHJvcHMgPSBfX3Jlc3Qobm9kZVByb3BzLCBbXCJjaGlsZHJlblwiXSk7XG4gICAgcmV0dXJuIChfanN4KFwiYVwiLCBPYmplY3QuYXNzaWduKHt9LCBhbmNob3JQcm9wcywgcmVzdE5vZGVQcm9wcywgeyByZWY6IHJlZiwgY2hpbGRyZW46IGNoaWxkcmVuIH0pKSk7XG59XG5leHBvcnQgZnVuY3Rpb24gcmVuZGVyV2l0aEVuaGFuY2VtZW50cyh0ZXh0RWxlbWVudCwgZW5oYW5jZW1lbnQsIHByZWZpeENscykge1xuICAgIHZhciBfYSwgX2I7XG4gICAgY29uc3QgZWxsaXBzaXNUb29sdGlwID0gZW5oYW5jZW1lbnQuZWxsaXBzaXNUb29sdGlwUHJvcHMgJiYgZW5oYW5jZW1lbnQudGV4dElkID8gKF9qc3goVG9vbHRpcCwgT2JqZWN0LmFzc2lnbih7fSwgZW5oYW5jZW1lbnQuZWxsaXBzaXNUb29sdGlwUHJvcHMsIHsgYW5jaG9yU2VsZWN0OiBgIyR7ZW5oYW5jZW1lbnQudGV4dElkfWAgfSkpKSA6IG51bGw7XG4gICAgaWYgKGVuaGFuY2VtZW50LmNvcHlUZXh0ID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybiAoX2pzeHMoX0ZyYWdtZW50LCB7IGNoaWxkcmVuOiBbdGV4dEVsZW1lbnQsIGVsbGlwc2lzVG9vbHRpcF0gfSkpO1xuICAgIH1cbiAgICBjb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcyhwcmVmaXhDbHMpO1xuICAgIGNvbnN0IFdyYXBwZXIgPSAoX2EgPSBlbmhhbmNlbWVudC53cmFwcGVyVGFnKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAnc3Bhbic7XG4gICAgcmV0dXJuIChfanN4cyhfRnJhZ21lbnQsIHsgY2hpbGRyZW46IFtfanN4cyhXcmFwcGVyLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnY29weWFibGUtd3JhcHBlcicsIGVuaGFuY2VtZW50LmlzSW5saW5lQ29tcG9uZW50XG4gICAgICAgICAgICAgICAgICAgID8gY2xhc3NlcygnY29weWFibGUtd3JhcHBlci1pbmxpbmUnKVxuICAgICAgICAgICAgICAgICAgICA6IGNsYXNzZXMoJ2NvcHlhYmxlLXdyYXBwZXItYmxvY2snKSksIGNoaWxkcmVuOiBbdGV4dEVsZW1lbnQsIF9qc3goQ29weSwgeyB2YWx1ZTogZW5oYW5jZW1lbnQuY29weVRleHQsIGljb25TaXplOiBDT1BZX0lDT05fU0laRSwgY29udGFpbmVkOiBmYWxzZSwgb25TdWNjZXNzOiAoX2IgPSBlbmhhbmNlbWVudC5vbkNvcHkpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IGRlZmF1bHRPbkNvcHkgfSldIH0pLCBlbGxpcHNpc1Rvb2x0aXBdIH0pKTtcbn0iLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
@@ -1,6 +1,6 @@
1
1
  import type { CSSProperties, ReactNode } from 'react';
2
2
  import type { TooltipProps } from "../Tooltip";
3
- import type { TypographyEllipsisConfig, TypographyCopyableConfig } from './interface';
3
+ import type { TypographyCategory, TypographyEllipsisConfig, TypographyCopyableConfig } from './interface';
4
4
  import type { TypographyLayoutMode, TypographyTextTag } from './constants';
5
5
  import type { ResolvedTypographyEllipsisConfig } from './utils';
6
6
  export interface TypographyEnhancementOptions {
@@ -28,7 +28,7 @@ export interface TypographyEnhancementResult {
28
28
  export interface TypographyTextPresentationOptions {
29
29
  prefixCls: string;
30
30
  className?: string;
31
- category: string;
31
+ category: TypographyCategory;
32
32
  size: string;
33
33
  color?: string;
34
34
  strong?: boolean;
@@ -71,7 +71,8 @@ function useTypographyEnhancements(options) {
71
71
  setIsOverflowed(node.scrollWidth > node.clientWidth);
72
72
  });
73
73
  var getMeasureNode = (0, _hooks.useEventCallback)(function () {
74
- return measureNodeRef.current;
74
+ var _a;
75
+ return (_a = measureNodeRef.current) !== null && _a !== void 0 ? _a : document.createElement('span');
75
76
  });
76
77
  (0, _ResizeObserver.useResizeObserver)(ellipsisEnabled && !!measureNodeRef.current, getMeasureNode, measureOverflow);
77
78
  (0, _react.useEffect)(function () {
@@ -114,4 +115,4 @@ function useTypographyEnhancements(options) {
114
115
  setMeasureNode: setMeasureNode
115
116
  };
116
117
  }
117
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvVHlwb2dyYXBoeS91c2VUeXBvZ3JhcGh5RW5oYW5jZW1lbnRzLnRzIiwiY29tcG9uZW50cy9UeXBvZ3JhcGh5L3VzZVR5cG9ncmFwaHlFbmhhbmNlbWVudHMuanMiXSwibmFtZXMiOlsiX2hvb2tzIiwicmVxdWlyZSIsIl9yZWFjdCIsIl9SZXNpemVPYnNlcnZlciIsIl9jb25zdGFudHMiLCJfdXRpbHMiLCJyZXNvbHZlQ29weWFibGUiLCJjb3B5YWJsZSIsImZ1bGxUZXh0IiwiX2EiLCJ0ZXh0Iiwib25Db3B5IiwidXNlVHlwb2dyYXBoeUVuaGFuY2VtZW50cyIsIm9wdGlvbnMiLCJjb21wb25lbnRUYWciLCJkZWZhdWx0TGF5b3V0TW9kZSIsInByZWZpeENscyIsImlkIiwiY2hpbGRyZW4iLCJlbGxpcHNpcyIsInRleHROb2RlUmVmIiwidXNlUmVmIiwibWVhc3VyZU5vZGVSZWYiLCJnZW5lcmF0ZWRUZXh0SWRSZWYiLCJ1bmRlZmluZWQiLCJfdXNlU2FmZVN0YXRlIiwidXNlU2FmZVN0YXRlIiwiX3VzZVNhZmVTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJpc092ZXJmbG93ZWQiLCJzZXRJc092ZXJmbG93ZWQiLCJyZXNvbHZlZEVsbGlwc2lzIiwibm9ybWFsaXplRWxsaXBzaXMiLCJlbGxpcHNpc0VuYWJsZWQiLCJlbGxpcHNpc0hhc1Rvb2x0aXAiLCJ0b29sdGlwIiwiaXNJbmxpbmVDb21wb25lbnQiLCJpc0lubGluZVR5cG9ncmFwaHlUYWciLCJ0ZXh0SWQiLCJnZXRTdGFibGVJZCIsInVzZU1lbW8iLCJleHRyYWN0VGV4dENvbnRlbnQiLCJ0cnVuY2F0ZWRUZXh0IiwidHJ1bmNhdGVNaWRkbGUiLCJzdGFydCIsImVuZCIsImRpc3BsYXlUZXh0IiwiaXNUcnVuY2F0ZWQiLCJyZXNvbHZlZENvcHlhYmxlIiwic2V0VGV4dE5vZGUiLCJ1c2VFdmVudENhbGxiYWNrIiwibm9kZSIsImN1cnJlbnQiLCJzZXRNZWFzdXJlTm9kZSIsIm1lYXN1cmVPdmVyZmxvdyIsInNjcm9sbFdpZHRoIiwiY2xpZW50V2lkdGgiLCJnZXRNZWFzdXJlTm9kZSIsInVzZVJlc2l6ZU9ic2VydmVyIiwidXNlRWZmZWN0IiwiZWxsaXBzaXNUb29sdGlwUHJvcHMiLCJfYiIsIl9jIiwidG9vbHRpcENvbmZpZyIsImJvZHkiLCJwbGFjZW1lbnQiLCJERUZBVUxUX1RZUE9HUkFQSFlfVE9PTFRJUF9QTEFDRU1FTlQiLCJtaWRkbGV3YXJlcyIsIkRFRkFVTFRfVFlQT0dSQVBIWV9UT09MVElQX01JRERMRVdBUkVTIiwiT2JqZWN0IiwiYXNzaWduIiwiY29weVRleHQiLCJ3cmFwcGVyVGFnIiwiZ2V0RW5oYW5jZW1lbnRXcmFwcGVyVGFnIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLGVBQUEsR0FBQUYsT0FBQTtBQUtBLElBQUFHLFVBQUEsR0FBQUgsT0FBQTtBQUVBLElBQUFJLE1BQUEsR0FBQUosT0FBQTtBQXNEQSxTQUFTSyxlQUFlQSxDQUN0QkMsUUFBd0QsRUFDeERDLFFBQWdCLEVBQUE7RUMzRGQsSUFBSUMsRUFBRTtFRDZEUixJQUFJLENBQUNGLFFBQVEsRUFBRSxPQUFPLElBQUk7RUFFMUIsSUFBSUEsUUFBUSxLQUFLLElBQUksRUFBRTtJQUNyQixPQUFPO01BQUVHLElBQUksRUFBRUY7SUFBUSxDQUFFO0VBQzNCO0VBRUEsT0FBTztJQUNMRSxJQUFJLEVBQUUsQ0FBQUQsRUFBQSxHQUFBRixRQUFRLENBQUNHLElBQUksTUFBQSxJQUFBLElBQUFELEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxHQUFJRCxRQUFRO0lBQy9CRyxNQUFNLEVBQUVKLFFBQVEsQ0FBQ0k7RUM1RGpCLENENkREO0FBQ0g7QUFFTSxTQUFVQyx5QkFBeUJBLENBQ3ZDQyxPQUFxQyxFQUFBO0VDOURuQyxJQUFJSixFQUFFO0VEZ0VS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S0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQWhCQSxnQkFBZ0IsQ0FBRXRDLElBQUksTUFBQSxJQUFBLElBQUFELEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxHQUFJLElBQUk7SUFDeENFLE1BQU0sRUFBRXFDLGdCQUFnQixLQUFBLElBQUEsSUFBaEJBLGdCQUFnQixLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFoQkEsZ0JBQWdCLENBQUVyQyxNQUFNO0lBQ2hDMkIsTUFBTSxFQUFOQSxNQUFNO0lBQ05zQixvQkFBb0IsRUFBcEJBLG9CQUFvQjtJQUNwQnhCLGlCQUFpQixFQUFqQkEsaUJBQWlCO0lBQ2pCb0MsVUFBVSxFQUFFeEIsZ0JBQWdCLEdBQUcsSUFBQXlCLCtCQUF3QixFQUFDckMsaUJBQWlCLENBQUMsR0FBR1osU0FBUztJQUN0RnlCLFdBQVcsRUFBWEEsV0FBVztJQUNYSSxjQUFjLEVBQWRBO0VDbEZBLENEbUZEO0FBQ0giLCJmaWxlIjoiY29tcG9uZW50cy9UeXBvZ3JhcGh5L3VzZVR5cG9ncmFwaHlFbmhhbmNlbWVudHMuanMiLCJzb3VyY2VzQ29udGVudCI6W251bGwsImltcG9ydCB7IHVzZUV2ZW50Q2FsbGJhY2ssIHVzZVNhZmVTdGF0ZSB9IGZyb20gJ0AxbW9uZXkvaG9va3MnO1xuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VSZXNpemVPYnNlcnZlciB9IGZyb20gJy4uL1Jlc2l6ZU9ic2VydmVyJztcbmltcG9ydCB7IERFRkFVTFRfVFlQT0dSQVBIWV9UT09MVElQX01JRERMRVdBUkVTLCBERUZBVUxUX1RZUE9HUkFQSFlfVE9PTFRJUF9QTEFDRU1FTlQgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBleHRyYWN0VGV4dENvbnRlbnQsIGdldEVuaGFuY2VtZW50V3JhcHBlclRhZywgZ2V0U3RhYmxlSWQsIGlzSW5saW5lVHlwb2dyYXBoeVRhZywgbm9ybWFsaXplRWxsaXBzaXMsIHRydW5jYXRlTWlkZGxlLCB9IGZyb20gJy4vdXRpbHMnO1xuZnVuY3Rpb24gcmVzb2x2ZUNvcHlhYmxlKGNvcHlhYmxlLCBmdWxsVGV4dCkge1xuICAgIHZhciBfYTtcbiAgICBpZiAoIWNvcHlhYmxlKVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICBpZiAoY29weWFibGUgPT09IHRydWUpIHtcbiAgICAgICAgcmV0dXJuIHsgdGV4dDogZnVsbFRleHQgfTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgdGV4dDogKF9hID0gY29weWFibGUudGV4dCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogZnVsbFRleHQsXG4gICAgICAgIG9uQ29weTogY29weWFibGUub25Db3B5LFxuICAgIH07XG59XG5leHBvcnQgZnVuY3Rpb24gdXNlVHlwb2dyYXBoeUVuaGFuY2VtZW50cyhvcHRpb25zKSB7XG4gICAgdmFyIF9hO1xuICAgIGNvbnN0IHsgY29tcG9uZW50VGFnLCBkZWZhdWx0TGF5b3V0TW9kZSwgcHJlZml4Q2xzLCBpZCwgY2hpbGRyZW4sIGVsbGlwc2lzLCBjb3B5YWJsZSB9ID0gb3B0aW9ucztcbiAgICBjb25zdCB0ZXh0Tm9kZVJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBtZWFzdXJlTm9kZVJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBnZW5lcmF0ZWRUZXh0SWRSZWYgPSB1c2VSZWYodW5kZWZpbmVkKTtcbiAgICAvLyBEZWZhdWx0IHRvIHRydWUgc28gdHJ1bmNhdGVkIHRleHQgaXMgc2hvd24gaW1tZWRpYXRlbHkgKG5vIGZsYXNoKVxuICAgIGNvbnN0IFtpc092ZXJmbG93ZWQsIHNldElzT3ZlcmZsb3dlZF0gPSB1c2VTYWZlU3RhdGUodHJ1ZSk7XG4gICAgY29uc3QgcmVzb2x2ZWRFbGxpcHNpcyA9IG5vcm1hbGl6ZUVsbGlwc2lzKGVsbGlwc2lzKTtcbiAgICBjb25zdCBlbGxpcHNpc0VuYWJsZWQgPSByZXNvbHZlZEVsbGlwc2lzICE9PSBudWxsO1xuICAgIGNvbnN0IGVsbGlwc2lzSGFzVG9vbHRpcCA9ICEhKHJlc29sdmVkRWxsaXBzaXMgPT09IG51bGwgfHwgcmVzb2x2ZWRFbGxpcHNpcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcmVzb2x2ZWRFbGxpcHNpcy50b29sdGlwKTtcbiAgICBjb25zdCBpc0lubGluZUNvbXBvbmVudCA9IGlzSW5saW5lVHlwb2dyYXBoeVRhZyhjb21wb25lbnRUYWcsIGRlZmF1bHRMYXlvdXRNb2RlKTtcbiAgICBjb25zdCB0ZXh0SWQgPSBpZCAhPT0gbnVsbCAmJiBpZCAhPT0gdm9pZCAwID8gaWQgOiAoZWxsaXBzaXNIYXNUb29sdGlwXG4gICAgICAgID8gZ2V0U3RhYmxlSWQoZ2VuZXJhdGVkVGV4dElkUmVmLCBwcmVmaXhDbHMsICdlbGxpcHNpcycpXG4gICAgICAgIDogdW5kZWZpbmVkKTtcbiAgICBjb25zdCBmdWxsVGV4dCA9IHVzZU1lbW8oKCkgPT4gZXh0cmFjdFRleHRDb250ZW50KGNoaWxkcmVuKSwgW2NoaWxkcmVuXSk7XG4gICAgY29uc3QgdHJ1bmNhdGVkVGV4dCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBpZiAoIXJlc29sdmVkRWxsaXBzaXMpXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgcmV0dXJuIHRydW5jYXRlTWlkZGxlKGZ1bGxUZXh0LCByZXNvbHZlZEVsbGlwc2lzLnN0YXJ0LCByZXNvbHZlZEVsbGlwc2lzLmVuZCk7XG4gICAgfSwgW2Z1bGxUZXh0LCByZXNvbHZlZEVsbGlwc2lzID09PSBudWxsIHx8IHJlc29sdmVkRWxsaXBzaXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHJlc29sdmVkRWxsaXBzaXMuc3RhcnQsIHJlc29sdmVkRWxsaXBzaXMgPT09IG51bGwgfHwgcmVzb2x2ZWRFbGxpcHNpcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcmVzb2x2ZWRFbGxpcHNpcy5lbmRdKTtcbiAgICBjb25zdCBkaXNwbGF5VGV4dCA9IGVsbGlwc2lzRW5hYmxlZCAmJiBpc092ZXJmbG93ZWQgPyB0cnVuY2F0ZWRUZXh0IDogbnVsbDtcbiAgICBjb25zdCBpc1RydW5jYXRlZCA9IGRpc3BsYXlUZXh0ICE9PSBudWxsICYmIGRpc3BsYXlUZXh0ICE9PSBmdWxsVGV4dDtcbiAgICBjb25zdCByZXNvbHZlZENvcHlhYmxlID0gdXNlTWVtbygoKSA9PiByZXNvbHZlQ29weWFibGUoY29weWFibGUsIGZ1bGxUZXh0KSwgW2NvcHlhYmxlLCBmdWxsVGV4dF0pO1xuICAgIGNvbnN0IHNldFRleHROb2RlID0gdXNlRXZlbnRDYWxsYmFjaygobm9kZSkgPT4ge1xuICAgICAgICB0ZXh0Tm9kZVJlZi5jdXJyZW50ID0gbm9kZTtcbiAgICB9KTtcbiAgICBjb25zdCBzZXRNZWFzdXJlTm9kZSA9IHVzZUV2ZW50Q2FsbGJhY2soKG5vZGUpID0+IHtcbiAgICAgICAgbWVhc3VyZU5vZGVSZWYuY3VycmVudCA9IG5vZGU7XG4gICAgfSk7XG4gICAgLy8gTWVhc3VyZSBvdmVyZmxvdyBvbiB0aGUgaGlkZGVuIHNwYW4gKGFsd2F5cyBjb250YWlucyBmdWxsIHRleHQpXG4gICAgY29uc3QgbWVhc3VyZU92ZXJmbG93ID0gdXNlRXZlbnRDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIGNvbnN0IG5vZGUgPSBtZWFzdXJlTm9kZVJlZi5jdXJyZW50O1xuICAgICAgICBpZiAoIW5vZGUpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHNldElzT3ZlcmZsb3dlZChub2RlLnNjcm9sbFdpZHRoID4gbm9kZS5jbGllbnRXaWR0aCk7XG4gICAgfSk7XG4gICAgY29uc3QgZ2V0TWVhc3VyZU5vZGUgPSB1c2VFdmVudENhbGxiYWNrKCgpID0+IG1lYXN1cmVOb2RlUmVmLmN1cnJlbnQpO1xuICAgIHVzZVJlc2l6ZU9ic2VydmVyKGVsbGlwc2lzRW5hYmxlZCAmJiAhIW1lYXN1cmVOb2RlUmVmLmN1cnJlbnQsIGdldE1lYXN1cmVOb2RlLCBtZWFzdXJlT3ZlcmZsb3cpO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChlbGxpcHNpc0VuYWJsZWQpIHtcbiAgICAgICAgICAgIG1lYXN1cmVPdmVyZmxvdygpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgc2V0SXNPdmVyZmxvd2VkKHRydWUpO1xuICAgICAgICB9XG4gICAgfSwgW2VsbGlwc2lzRW5hYmxlZCwgY2hpbGRyZW4sIG1lYXN1cmVPdmVyZmxvdywgc2V0SXNPdmVyZmxvd2VkXSk7XG4gICAgY29uc3QgZWxsaXBzaXNUb29sdGlwUHJvcHMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgICAgIGlmICghZWxsaXBzaXNIYXNUb29sdGlwIHx8ICFpc1RydW5jYXRlZCB8fCAhdGV4dElkKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB0b29sdGlwQ29uZmlnID0gcmVzb2x2ZWRFbGxpcHNpcy50b29sdGlwO1xuICAgICAgICBpZiAodG9vbHRpcENvbmZpZyA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBib2R5OiBmdWxsVGV4dCxcbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ6IERFRkFVTFRfVFlQT0dSQVBIWV9UT09MVElQX1BMQUNFTUVOVCxcbiAgICAgICAgICAgICAgICBtaWRkbGV3YXJlczogREVGQVVMVF9UWVBPR1JBUEhZX1RPT0xUSVBfTUlERExFV0FSRVMsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHRvb2x0aXBDb25maWcpLCB7IGJvZHk6IChfYSA9IHRvb2x0aXBDb25maWcuYm9keSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogZnVsbFRleHQsIHBsYWNlbWVudDogKF9iID0gdG9vbHRpcENvbmZpZy5wbGFjZW1lbnQpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IERFRkFVTFRfVFlQT0dSQVBIWV9UT09MVElQX1BMQUNFTUVOVCwgbWlkZGxld2FyZXM6IChfYyA9IHRvb2x0aXBDb25maWcubWlkZGxld2FyZXMpICE9PSBudWxsICYmIF9jICE9PSB2b2lkIDAgPyBfYyA6IERFRkFVTFRfVFlQT0dSQVBIWV9UT09MVElQX01JRERMRVdBUkVTIH0pO1xuICAgIH0sIFtmdWxsVGV4dCwgaXNUcnVuY2F0ZWQsIGVsbGlwc2lzSGFzVG9vbHRpcCwgcmVzb2x2ZWRFbGxpcHNpcyA9PT0gbnVsbCB8fCByZXNvbHZlZEVsbGlwc2lzID09PSB2b2lkIDAgPyB2b2lkIDAgOiByZXNvbHZlZEVsbGlwc2lzLnRvb2x0aXAsIHRleHRJZF0pO1xuICAgIHJldHVybiB7XG4gICAgICAgIGVsbGlwc2lzOiByZXNvbHZlZEVsbGlwc2lzLFxuICAgICAgICBmdWxsVGV4dCxcbiAgICAgICAgZGlzcGxheVRleHQsXG4gICAgICAgIGNvcHlUZXh0OiAoX2EgPSByZXNvbHZlZENvcHlhYmxlID09PSBudWxsIHx8IHJlc29sdmVkQ29weWFibGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHJlc29sdmVkQ29weWFibGUudGV4dCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogbnVsbCxcbiAgICAgICAgb25Db3B5OiByZXNvbHZlZENvcHlhYmxlID09PSBudWxsIHx8IHJlc29sdmVkQ29weWFibGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHJlc29sdmVkQ29weWFibGUub25Db3B5LFxuICAgICAgICB0ZXh0SWQsXG4gICAgICAgIGVsbGlwc2lzVG9vbHRpcFByb3BzLFxuICAgICAgICBpc0lubGluZUNvbXBvbmVudCxcbiAgICAgICAgd3JhcHBlclRhZzogcmVzb2x2ZWRDb3B5YWJsZSA/IGdldEVuaGFuY2VtZW50V3JhcHBlclRhZyhpc0lubGluZUNvbXBvbmVudCkgOiB1bmRlZmluZWQsXG4gICAgICAgIHNldFRleHROb2RlLFxuICAgICAgICBzZXRNZWFzdXJlTm9kZSxcbiAgICB9O1xufSJdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
118
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvVHlwb2dyYXBoeS91c2VUeXBvZ3JhcGh5RW5oYW5jZW1lbnRzLnRzIiwiY29tcG9uZW50cy9UeXBvZ3JhcGh5L3VzZVR5cG9ncmFwaHlFbmhhbmNlbWVudHMuanMiXSwibmFtZXMiOlsiX2hvb2tzIiwicmVxdWlyZSIsIl9yZWFjdCIsIl9SZXNpemVPYnNlcnZlciIsIl9jb25zdGFudHMiLCJfdXRpbHMiLCJyZXNvbHZlQ29weWFibGUiLCJjb3B5YWJsZSIsImZ1bGxUZXh0IiwiX2EiLCJ0ZXh0Iiwib25Db3B5IiwidXNlVHlwb2dyYXBoeUVuaGFuY2VtZW50cyIsIm9wdGlvbnMiLCJjb21wb25lbnRUYWciLCJkZWZhdWx0TGF5b3V0TW9kZSIsInByZWZpeENscyIsImlkIiwiY2hpbGRyZW4iLCJlbGxpcHNpcyIsInRleHROb2RlUmVmIiwidXNlUmVmIiwibWVhc3VyZU5vZGVSZWYiLCJnZW5lcmF0ZWRUZXh0SWRSZWYiLCJ1bmRlZmluZWQiLCJfdXNlU2FmZVN0YXRlIiwidXNlU2FmZVN0YXRlIiwiX3VzZVNhZmVTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJpc092ZXJmbG93ZWQiLCJzZXRJc092ZXJmbG93ZWQiLCJyZXNvbHZlZEVsbGlwc2lzIiwibm9ybWFsaXplRWxsaXBzaXMiLCJlbGxpcHNpc0VuYWJsZWQiLCJlbGxpcHNpc0hhc1Rvb2x0aXAiLCJ0b29sdGlwIiwiaXNJbmxpbmVDb21wb25lbnQiLCJpc0lubGluZVR5cG9ncmFwaHlUYWciLCJ0ZXh0SWQiLCJnZXRTdGFibGVJZCIsInVzZU1lbW8iLCJleHRyYWN0VGV4dENvbnRlbnQiLCJ0cnVuY2F0ZWRUZXh0IiwidHJ1bmNhdGVNaWRkbGUiLCJzdGFydCIsImVuZCIsImRpc3BsYXlUZXh0IiwiaXNUcnVuY2F0ZWQiLCJyZXNvbHZlZENvcHlhYmxlIiwic2V0VGV4dE5vZGUiLCJ1c2VFdmVudENhbGxiYWNrIiwibm9kZSIsImN1cnJlbnQiLCJzZXRNZWFzdXJlTm9kZSIsIm1lYXN1cmVPdmVyZmxvdyIsInNjcm9sbFdpZHRoIiwiY2xpZW50V2lkdGgiLCJnZXRNZWFzdXJlTm9kZSIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsInVzZVJlc2l6ZU9ic2VydmVyIiwidXNlRWZmZWN0IiwiZWxsaXBzaXNUb29sdGlwUHJvcHMiLCJfYiIsIl9jIiwidG9vbHRpcENvbmZpZyIsImJvZHkiLCJwbGFjZW1lbnQiLCJERUZBVUxUX1RZUE9HUkFQSFlfVE9PTFRJUF9QTEFDRU1FTlQiLCJtaWRkbGV3YXJlcyIsIkRFRkFVTFRfVFlQT0dSQVBIWV9UT09MVElQX01JRERMRVdBUkVTIiwiT2JqZWN0IiwiYXNzaWduIiwiY29weVRleHQiLCJ3cmFwcGVyVGFnIiwiZ2V0RW5oYW5jZW1lbnRXcmFwcGVyVGFnIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLGVBQUEsR0FBQUYsT0FBQTtBQUtBLElBQUFHLFVBQUEsR0FBQUgsT0FBQTtBQUVBLElBQUFJLE1BQUEsR0FBQUosT0FBQTtBQXNEQSxTQUFTSyxlQUFlQSxDQUN0QkMsUUFBd0QsRUFDeERDLFFBQWdCLEVBQUE7RUMzRGQsSUFBSUMsRUFBRTtFRDZEUixJQUFJLENBQUNGLFFBQVEsRUFBRSxPQUFPLElBQUk7RUFFMUIsSUFBSUEsUUFBUSxLQUFLLElBQUksRUFBRTtJQUNyQixPQUFPO01BQUVHLElBQUksRUFBRUY7SUFBUSxDQUFFO0VBQzNCO0VBRUEsT0FBTztJQUNMRSxJQUFJLEVBQUUsQ0FBQUQsRUFBQSxHQUFBRixRQUFRLENBQUNHLElBQUksTUFBQSxJQUFBLElBQUFELEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxHQUFJRCxRQUFRO0lBQy9CRyxNQUFNLEVBQUVKLFFBQVEsQ0FBQ0k7RUM1RGpCLENENkREO0FBQ0g7QUFFTSxTQUFVQyx5QkFBeUJBLENBQ3ZDQyxPQUFxQyxF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RUFFbEYsT0FBTztJQUNMbkIsUUFBUSxFQUFFWSxnQkFBZ0I7SUFDMUJ2QixRQUFRLEVBQVJBLFFBQVE7SUFDUnNDLFdBQVcsRUFBWEEsV0FBVztJQUNYMkIsUUFBUSxFQUFFLENBQUFoRSxFQUFBLEdBQUF1QyxnQkFBZ0IsS0FBQSxJQUFBLElBQWhCQSxnQkFBZ0IsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBaEJBLGdCQUFnQixDQUFFdEMsSUFBSSxNQUFBLElBQUEsSUFBQUQsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLEdBQUksSUFBSTtJQUN4Q0UsTUFBTSxFQUFFcUMsZ0JBQWdCLEtBQUEsSUFBQSxJQUFoQkEsZ0JBQWdCLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQWhCQSxnQkFBZ0IsQ0FBRXJDLE1BQU07SUFDaEMyQixNQUFNLEVBQU5BLE1BQU07SUFDTndCLG9CQUFvQixFQUFwQkEsb0JBQW9CO0lBQ3BCMUIsaUJBQWlCLEVBQWpCQSxpQkFBaUI7SUFDakJzQyxVQUFVLEVBQUUxQixnQkFBZ0IsR0FBRyxJQUFBMkIsK0JBQXdCLEVBQUN2QyxpQkFBaUIsQ0FBQyxHQUFHWixTQUFTO0lBQ3RGeUIsV0FBVyxFQUFYQSxXQUFXO0lBQ1hJLGNBQWMsRUFBZEE7RUNsRkEsQ0RtRkQ7QUFDSCIsImZpbGUiOiJjb21wb25lbnRzL1R5cG9ncmFwaHkvdXNlVHlwb2dyYXBoeUVuaGFuY2VtZW50cy5qcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbCwiaW1wb3J0IHsgdXNlRXZlbnRDYWxsYmFjaywgdXNlU2FmZVN0YXRlIH0gZnJvbSAnQDFtb25leS9ob29rcyc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZVJlc2l6ZU9ic2VydmVyIH0gZnJvbSAnLi4vUmVzaXplT2JzZXJ2ZXInO1xuaW1wb3J0IHsgREVGQVVMVF9UWVBPR1JBUEhZX1RPT0xUSVBfTUlERExFV0FSRVMsIERFRkFVTFRfVFlQT0dSQVBIWV9UT09MVElQX1BMQUNFTUVOVCB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IGV4dHJhY3RUZXh0Q29udGVudCwgZ2V0RW5oYW5jZW1lbnRXcmFwcGVyVGFnLCBnZXRTdGFibGVJZCwgaXNJbmxpbmVUeXBvZ3JhcGh5VGFnLCBub3JtYWxpemVFbGxpcHNpcywgdHJ1bmNhdGVNaWRkbGUsIH0gZnJvbSAnLi91dGlscyc7XG5mdW5jdGlvbiByZXNvbHZlQ29weWFibGUoY29weWFibGUsIGZ1bGxUZXh0KSB7XG4gICAgdmFyIF9hO1xuICAgIGlmICghY29weWFibGUpXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIGlmIChjb3B5YWJsZSA9PT0gdHJ1ZSkge1xuICAgICAgICByZXR1cm4geyB0ZXh0OiBmdWxsVGV4dCB9O1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICB0ZXh0OiAoX2EgPSBjb3B5YWJsZS50ZXh0KSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBmdWxsVGV4dCxcbiAgICAgICAgb25Db3B5OiBjb3B5YWJsZS5vbkNvcHksXG4gICAgfTtcbn1cbmV4cG9ydCBmdW5jdGlvbiB1c2VUeXBvZ3JhcGh5RW5oYW5jZW1lbnRzKG9wdGlvbnMpIHtcbiAgICB2YXIgX2E7XG4gICAgY29uc3QgeyBjb21wb25lbnRUYWcsIGRlZmF1bHRMYXlvdXRNb2RlLCBwcmVmaXhDbHMsIGlkLCBjaGlsZHJlbiwgZWxsaXBzaXMsIGNvcHlhYmxlIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IHRleHROb2RlUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IG1lYXN1cmVOb2RlUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IGdlbmVyYXRlZFRleHRJZFJlZiA9IHVzZVJlZih1bmRlZmluZWQpO1xuICAgIC8vIERlZmF1bHQgdG8gdHJ1ZSBzbyB0cnVuY2F0ZWQgdGV4dCBpcyBzaG93biBpbW1lZGlhdGVseSAobm8gZmxhc2gpXG4gICAgY29uc3QgW2lzT3ZlcmZsb3dlZCwgc2V0SXNPdmVyZmxvd2VkXSA9IHVzZVNhZmVTdGF0ZSh0cnVlKTtcbiAgICBjb25zdCByZXNvbHZlZEVsbGlwc2lzID0gbm9ybWFsaXplRWxsaXBzaXMoZWxsaXBzaXMpO1xuICAgIGNvbnN0IGVsbGlwc2lzRW5hYmxlZCA9IHJlc29sdmVkRWxsaXBzaXMgIT09IG51bGw7XG4gICAgY29uc3QgZWxsaXBzaXNIYXNUb29sdGlwID0gISEocmVzb2x2ZWRFbGxpcHNpcyA9PT0gbnVsbCB8fCByZXNvbHZlZEVsbGlwc2lzID09PSB2b2lkIDAgPyB2b2lkIDAgOiByZXNvbHZlZEVsbGlwc2lzLnRvb2x0aXApO1xuICAgIGNvbnN0IGlzSW5saW5lQ29tcG9uZW50ID0gaXNJbmxpbmVUeXBvZ3JhcGh5VGFnKGNvbXBvbmVudFRhZywgZGVmYXVsdExheW91dE1vZGUpO1xuICAgIGNvbnN0IHRleHRJZCA9IGlkICE9PSBudWxsICYmIGlkICE9PSB2b2lkIDAgPyBpZCA6IChlbGxpcHNpc0hhc1Rvb2x0aXBcbiAgICAgICAgPyBnZXRTdGFibGVJZChnZW5lcmF0ZWRUZXh0SWRSZWYsIHByZWZpeENscywgJ2VsbGlwc2lzJylcbiAgICAgICAgOiB1bmRlZmluZWQpO1xuICAgIGNvbnN0IGZ1bGxUZXh0ID0gdXNlTWVtbygoKSA9PiBleHRyYWN0VGV4dENvbnRlbnQoY2hpbGRyZW4pLCBbY2hpbGRyZW5dKTtcbiAgICBjb25zdCB0cnVuY2F0ZWRUZXh0ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGlmICghcmVzb2x2ZWRFbGxpcHNpcylcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICByZXR1cm4gdHJ1bmNhdGVNaWRkbGUoZnVsbFRleHQsIHJlc29sdmVkRWxsaXBzaXMuc3RhcnQsIHJlc29sdmVkRWxsaXBzaXMuZW5kKTtcbiAgICB9LCBbZnVsbFRleHQsIHJlc29sdmVkRWxsaXBzaXMgPT09IG51bGwgfHwgcmVzb2x2ZWRFbGxpcHNpcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcmVzb2x2ZWRFbGxpcHNpcy5zdGFydCwgcmVzb2x2ZWRFbGxpcHNpcyA9PT0gbnVsbCB8fCByZXNvbHZlZEVsbGlwc2lzID09PSB2b2lkIDAgPyB2b2lkIDAgOiByZXNvbHZlZEVsbGlwc2lzLmVuZF0pO1xuICAgIGNvbnN0IGRpc3BsYXlUZXh0ID0gZWxsaXBzaXNFbmFibGVkICYmIGlzT3ZlcmZsb3dlZCA/IHRydW5jYXRlZFRleHQgOiBudWxsO1xuICAgIGNvbnN0IGlzVHJ1bmNhdGVkID0gZGlzcGxheVRleHQgIT09IG51bGwgJiYgZGlzcGxheVRleHQgIT09IGZ1bGxUZXh0O1xuICAgIGNvbnN0IHJlc29sdmVkQ29weWFibGUgPSB1c2VNZW1vKCgpID0+IHJlc29sdmVDb3B5YWJsZShjb3B5YWJsZSwgZnVsbFRleHQpLCBbY29weWFibGUsIGZ1bGxUZXh0XSk7XG4gICAgY29uc3Qgc2V0VGV4dE5vZGUgPSB1c2VFdmVudENhbGxiYWNrKChub2RlKSA9PiB7XG4gICAgICAgIHRleHROb2RlUmVmLmN1cnJlbnQgPSBub2RlO1xuICAgIH0pO1xuICAgIGNvbnN0IHNldE1lYXN1cmVOb2RlID0gdXNlRXZlbnRDYWxsYmFjaygobm9kZSkgPT4ge1xuICAgICAgICBtZWFzdXJlTm9kZVJlZi5jdXJyZW50ID0gbm9kZTtcbiAgICB9KTtcbiAgICAvLyBNZWFzdXJlIG92ZXJmbG93IG9uIHRoZSBoaWRkZW4gc3BhbiAoYWx3YXlzIGNvbnRhaW5zIGZ1bGwgdGV4dClcbiAgICBjb25zdCBtZWFzdXJlT3ZlcmZsb3cgPSB1c2VFdmVudENhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgY29uc3Qgbm9kZSA9IG1lYXN1cmVOb2RlUmVmLmN1cnJlbnQ7XG4gICAgICAgIGlmICghbm9kZSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgc2V0SXNPdmVyZmxvd2VkKG5vZGUuc2Nyb2xsV2lkdGggPiBub2RlLmNsaWVudFdpZHRoKTtcbiAgICB9KTtcbiAgICBjb25zdCBnZXRNZWFzdXJlTm9kZSA9IHVzZUV2ZW50Q2FsbGJhY2soKCkgPT4geyB2YXIgX2E7IHJldHVybiAoX2EgPSBtZWFzdXJlTm9kZVJlZi5jdXJyZW50KSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7IH0pO1xuICAgIHVzZVJlc2l6ZU9ic2VydmVyKGVsbGlwc2lzRW5hYmxlZCAmJiAhIW1lYXN1cmVOb2RlUmVmLmN1cnJlbnQsIGdldE1lYXN1cmVOb2RlLCBtZWFzdXJlT3ZlcmZsb3cpO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChlbGxpcHNpc0VuYWJsZWQpIHtcbiAgICAgICAgICAgIG1lYXN1cmVPdmVyZmxvdygpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgc2V0SXNPdmVyZmxvd2VkKHRydWUpO1xuICAgICAgICB9XG4gICAgfSwgW2VsbGlwc2lzRW5hYmxlZCwgY2hpbGRyZW4sIG1lYXN1cmVPdmVyZmxvdywgc2V0SXNPdmVyZmxvd2VkXSk7XG4gICAgY29uc3QgZWxsaXBzaXNUb29sdGlwUHJvcHMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgICAgIGlmICghZWxsaXBzaXNIYXNUb29sdGlwIHx8ICFpc1RydW5jYXRlZCB8fCAhdGV4dElkKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB0b29sdGlwQ29uZmlnID0gcmVzb2x2ZWRFbGxpcHNpcy50b29sdGlwO1xuICAgICAgICBpZiAodG9vbHRpcENvbmZpZyA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBib2R5OiBmdWxsVGV4dCxcbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ6IERFRkFVTFRfVFlQT0dSQVBIWV9UT09MVElQX1BMQUNFTUVOVCxcbiAgICAgICAgICAgICAgICBtaWRkbGV3YXJlczogREVGQVVMVF9UWVBPR1JBUEhZX1RPT0xUSVBfTUlERExFV0FSRVMsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHRvb2x0aXBDb25maWcpLCB7IGJvZHk6IChfYSA9IHRvb2x0aXBDb25maWcuYm9keSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogZnVsbFRleHQsIHBsYWNlbWVudDogKF9iID0gdG9vbHRpcENvbmZpZy5wbGFjZW1lbnQpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IERFRkFVTFRfVFlQT0dSQVBIWV9UT09MVElQX1BMQUNFTUVOVCwgbWlkZGxld2FyZXM6IChfYyA9IHRvb2x0aXBDb25maWcubWlkZGxld2FyZXMpICE9PSBudWxsICYmIF9jICE9PSB2b2lkIDAgPyBfYyA6IERFRkFVTFRfVFlQT0dSQVBIWV9UT09MVElQX01JRERMRVdBUkVTIH0pO1xuICAgIH0sIFtmdWxsVGV4dCwgaXNUcnVuY2F0ZWQsIGVsbGlwc2lzSGFzVG9vbHRpcCwgcmVzb2x2ZWRFbGxpcHNpcyA9PT0gbnVsbCB8fCByZXNvbHZlZEVsbGlwc2lzID09PSB2b2lkIDAgPyB2b2lkIDAgOiByZXNvbHZlZEVsbGlwc2lzLnRvb2x0aXAsIHRleHRJZF0pO1xuICAgIHJldHVybiB7XG4gICAgICAgIGVsbGlwc2lzOiByZXNvbHZlZEVsbGlwc2lzLFxuICAgICAgICBmdWxsVGV4dCxcbiAgICAgICAgZGlzcGxheVRleHQsXG4gICAgICAgIGNvcHlUZXh0OiAoX2EgPSByZXNvbHZlZENvcHlhYmxlID09PSBudWxsIHx8IHJlc29sdmVkQ29weWFibGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHJlc29sdmVkQ29weWFibGUudGV4dCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogbnVsbCxcbiAgICAgICAgb25Db3B5OiByZXNvbHZlZENvcHlhYmxlID09PSBudWxsIHx8IHJlc29sdmVkQ29weWFibGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHJlc29sdmVkQ29weWFibGUub25Db3B5LFxuICAgICAgICB0ZXh0SWQsXG4gICAgICAgIGVsbGlwc2lzVG9vbHRpcFByb3BzLFxuICAgICAgICBpc0lubGluZUNvbXBvbmVudCxcbiAgICAgICAgd3JhcHBlclRhZzogcmVzb2x2ZWRDb3B5YWJsZSA/IGdldEVuaGFuY2VtZW50V3JhcHBlclRhZyhpc0lubGluZUNvbXBvbmVudCkgOiB1bmRlZmluZWQsXG4gICAgICAgIHNldFRleHROb2RlLFxuICAgICAgICBzZXRNZWFzdXJlTm9kZSxcbiAgICB9O1xufSJdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=