@1money/component-ui 0.1.16 → 0.1.18

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 (82) hide show
  1. package/es/business/Filter/Account/Account.js +5 -2
  2. package/es/business/Filter/Account/interface.d.ts +7 -0
  3. package/es/business/Filter/DateRange/DateRange.js +30 -13
  4. package/es/business/Filter/DateRange/style/DateRange.css +80 -9
  5. package/es/components/Calendar/Calendar.js +14 -10
  6. package/es/components/Calendar/style/Calendar.css +14 -0
  7. package/es/components/Dialog/hooks.d.ts +1 -2
  8. package/es/components/Dialog/hooks.js +2 -21
  9. package/es/components/Drawer/hooks/useDialogFocus.d.ts +1 -2
  10. package/es/components/Drawer/hooks/useDialogFocus.js +2 -22
  11. package/es/components/Input/Mask/Mask.js +2 -6
  12. package/es/components/Input/Search/Search.js +2 -2
  13. package/es/components/Pagination/Pagination.js +9 -5
  14. package/es/components/Pagination/constants.d.ts +1 -0
  15. package/es/components/Pagination/constants.js +2 -1
  16. package/es/components/Pagination/interface.d.ts +4 -0
  17. package/es/components/Pagination/style/Pagination.css +12 -0
  18. package/es/components/Select/Select.js +15 -4
  19. package/es/components/Select/SelectSearchControl.d.ts +2 -1
  20. package/es/components/Select/SelectSearchControl.js +15 -1
  21. package/es/components/Select/style/Select.css +11 -0
  22. package/es/components/Select/utils.js +27 -3
  23. package/es/components/Table/internal/kernel/Table.js +14 -14
  24. package/es/components/Table/internal/kernel/utils/getScrollBarSize.js +12 -2
  25. package/es/components/Table/style/Table.css +6 -0
  26. package/es/components/Tooltip/Tooltip.js +9 -2
  27. package/es/components/Tooltip/style/Tooltip.css +2 -0
  28. package/es/components/Typography/constants.d.ts +0 -1
  29. package/es/components/Typography/constants.js +1 -2
  30. package/es/components/Typography/useTypographyEnhancements.js +5 -7
  31. package/es/hooks/useDialogFocus.d.ts +2 -0
  32. package/es/hooks/useDialogFocus.js +22 -0
  33. package/es/index.css +1 -1
  34. package/es/locale/en_US/business.js +2 -1
  35. package/es/locale/interface.d.ts +1 -0
  36. package/es/locale/pt_BR/business.js +2 -1
  37. package/es/locale/zh_CN/business.js +2 -1
  38. package/lib/business/Filter/Account/Account.js +5 -2
  39. package/lib/business/Filter/Account/interface.d.ts +7 -0
  40. package/lib/business/Filter/DateRange/DateRange.js +29 -12
  41. package/lib/business/Filter/DateRange/style/DateRange.css +80 -9
  42. package/lib/components/Calendar/Calendar.js +14 -10
  43. package/lib/components/Calendar/style/Calendar.css +14 -0
  44. package/lib/components/Dialog/hooks.d.ts +1 -2
  45. package/lib/components/Dialog/hooks.js +10 -22
  46. package/lib/components/Drawer/hooks/useDialogFocus.d.ts +1 -2
  47. package/lib/components/Drawer/hooks/useDialogFocus.js +8 -23
  48. package/lib/components/Input/Mask/Mask.js +2 -6
  49. package/lib/components/Input/Search/Search.js +2 -2
  50. package/lib/components/Pagination/Pagination.js +9 -5
  51. package/lib/components/Pagination/constants.d.ts +1 -0
  52. package/lib/components/Pagination/constants.js +2 -1
  53. package/lib/components/Pagination/interface.d.ts +4 -0
  54. package/lib/components/Pagination/style/Pagination.css +12 -0
  55. package/lib/components/Select/Select.js +14 -3
  56. package/lib/components/Select/SelectSearchControl.d.ts +2 -1
  57. package/lib/components/Select/SelectSearchControl.js +15 -1
  58. package/lib/components/Select/style/Select.css +11 -0
  59. package/lib/components/Select/utils.js +27 -3
  60. package/lib/components/Table/internal/kernel/Table.js +14 -14
  61. package/lib/components/Table/internal/kernel/utils/getScrollBarSize.js +12 -2
  62. package/lib/components/Table/style/Table.css +6 -0
  63. package/lib/components/Tooltip/Tooltip.js +9 -2
  64. package/lib/components/Tooltip/style/Tooltip.css +2 -0
  65. package/lib/components/Typography/constants.d.ts +0 -1
  66. package/lib/components/Typography/constants.js +2 -3
  67. package/lib/components/Typography/useTypographyEnhancements.js +4 -6
  68. package/lib/hooks/useDialogFocus.d.ts +2 -0
  69. package/lib/hooks/useDialogFocus.js +28 -0
  70. package/lib/index.css +1 -1
  71. package/lib/locale/en_US/business.js +2 -1
  72. package/lib/locale/interface.d.ts +1 -0
  73. package/lib/locale/pt_BR/business.js +2 -1
  74. package/lib/locale/zh_CN/business.js +2 -1
  75. package/package.json +1 -12
  76. package/scripts/mcp-server/README.md +5 -0
  77. package/scripts/mcp-server/examples.generated.json +18 -0
  78. package/scripts/mcp-server/index.generated.json +28 -0
  79. package/scripts/mcp-server/index.mjs +2 -1
  80. package/scripts/mcp-server/tools/get-symbol.mjs +5 -25
  81. package/scripts/mcp-server/tools/resolve-import.mjs +5 -19
  82. package/scripts/mcp-server/tools/symbol-lookups.mjs +29 -0
@@ -355,8 +355,18 @@ var Table = function Table(tableProps, ref) {
355
355
  setShadowEnd(false);
356
356
  }
357
357
  };
358
+ var _React$useState1 = React.useState(0),
359
+ _React$useState10 = (0, _slicedToArray2["default"])(_React$useState1, 2),
360
+ scrollbarSize = _React$useState10[0],
361
+ setScrollbarSize = _React$useState10[1];
362
+ var syncScrollbarSize = function syncScrollbarSize() {
363
+ if (tailor && useInternalHooks) return;
364
+ var target = scrollBodyRef.current instanceof Element ? scrollBodyRef.current : scrollBodyContainerRef.current;
365
+ setScrollbarSize((0, _getScrollBarSize.getTargetScrollBarSize)(target).width);
366
+ };
358
367
  var onFullTableResize = function onFullTableResize(offsetWidth) {
359
368
  var _a, _b, _c;
369
+ syncScrollbarSize();
360
370
  (_a = stickyRef.current) === null || _a === void 0 ? void 0 : _a.checkScrollBarVisible();
361
371
  var mergedWidth = (_c = offsetWidth !== null && offsetWidth !== void 0 ? offsetWidth : (_b = fullTableRef.current) === null || _b === void 0 ? void 0 : _b.offsetWidth) !== null && _c !== void 0 ? _c : 0;
362
372
  if (useInternalHooks && getContainerWidth && fullTableRef.current) {
@@ -385,19 +395,9 @@ var Table = function Table(tableProps, ref) {
385
395
  mounted.current = true;
386
396
  }, []);
387
397
  // ===================== Effects ======================
388
- var _React$useState1 = React.useState(0),
389
- _React$useState10 = (0, _slicedToArray2["default"])(_React$useState1, 2),
390
- scrollbarSize = _React$useState10[0],
391
- setScrollbarSize = _React$useState10[1];
392
398
  (0, _useLayoutEffect["default"])(function () {
393
- if (!tailor || !useInternalHooks) {
394
- if (scrollBodyRef.current instanceof Element) {
395
- setScrollbarSize((0, _getScrollBarSize.getTargetScrollBarSize)(scrollBodyRef.current).width);
396
- } else {
397
- setScrollbarSize((0, _getScrollBarSize.getTargetScrollBarSize)(scrollBodyContainerRef.current).width);
398
- }
399
- }
400
- }, []);
399
+ syncScrollbarSize();
400
+ }, [hasData, fixHeader, isSticky, mergedData.length]);
401
401
  // ================== INTERNAL HOOKS ==================
402
402
  React.useEffect(function () {
403
403
  if (useInternalHooks && internalRefs) {
@@ -600,7 +600,7 @@ var Table = function Table(tableProps, ref) {
600
600
  children: footer(mergedData)
601
601
  })]
602
602
  }));
603
- if (horizonScroll) {
603
+ if (horizonScroll || fixHeader || isSticky) {
604
604
  fullTable = (0, _jsxRuntime.jsx)(_ResizeObserver["default"], {
605
605
  onResize: function onResize(_ref6) {
606
606
  var offsetWidth = _ref6.offsetWidth;
@@ -692,4 +692,4 @@ ImmutableTable.Column = _Column["default"];
692
692
  ImmutableTable.ColumnGroup = _ColumnGroup["default"];
693
693
  ImmutableTable.Summary = _Footer.FooterComponents;
694
694
  var _default = exports["default"] = ImmutableTable;
695
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvVGFibGUvaW50ZXJuYWwva2VybmVsL1RhYmxlLmpzIiwiY29tcG9uZW50cy9UYWJsZS9pbnRlcm5hbC9zcmMvY29tcG9uZW50cy9UYWJsZS9pbnRlcm5hbC9rZXJuZWwvVGFibGUudHN4Il0sIm5hbWVzIjpbIl9qc3hSdW50aW1lIiwicmVxdWlyZSIsIl9jbHN4MiIsIl9SZXNpemVPYnNlcnZlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfZ2V0U2Nyb2xsQmFyU2l6ZSIsIl91c2VFdmVudENhbGxiYWNrIiwiX3BpY2tBdHRycyIsIl9nZXQiLCJfd2FybmluZyIsIlJlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfQm9keSIsIl9Db2xHcm91cCIsIl9jb25zdGFudCIsIl9UYWJsZUNvbnRleHQiLCJfRml4ZWRIb2xkZXIiLCJfRm9vdGVyIiwiX1N1bW1hcnkiLCJfSGVhZGVyIiwiX3VzZUNvbHVtbnMzIiwiX3VzZUV4cGFuZDMiLCJfdXNlRml4ZWRJbmZvIiwiX3VzZUZyYW1lIiwiX3VzZUhvdmVyMyIsIl91c2VTdGlja3kyIiwiX3VzZVN0aWNreU9mZnNldHMiLCJfUGFuZWwiLCJfc3RpY2t5U2Nyb2xsQmFyIiwiX0NvbHVtbiIsIl9Db2x1bW5Hcm91cCIsIl92YWx1ZVV0aWwiLCJfcmVhY3RVdGlsIiwiX2lzRXF1YWwiLCJfdXNlTGF5b3V0RWZmZWN0IiwiZSIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJfX2VzTW9kdWxlIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiX3R5cGVvZiIsImhhcyIsImdldCIsInNldCIsIl90IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJERUZBVUxUX1BSRUZJWCIsImV4cG9ydHMiLCJFTVBUWV9EQVRBIiwiRU1QVFlfU0NST0xMX1RBUkdFVCIsImRlZmF1bHRFbXB0eSIsIlRhYmxlIiwidGFibGVQcm9wcyIsInJlZiIsIl9jbHN4IiwiX2EiLCJfYiIsInByb3BzIiwiYXNzaWduIiwicm93S2V5IiwicHJlZml4Q2xzIiwiZW1wdHlUZXh0IiwiY2xhc3NOYW1lIiwicm93Q2xhc3NOYW1lIiwic3R5bGUiLCJjbGFzc05hbWVzIiwic3R5bGVzIiwiZGF0YSIsInNjcm9sbCIsInRhYmxlTGF5b3V0IiwiZGlyZWN0aW9uIiwidGl0bGUiLCJmb290ZXIiLCJzdW1tYXJ5IiwiY2FwdGlvbiIsImlkIiwic2hvd0hlYWRlciIsImNvbXBvbmVudHMiLCJvblJvdyIsIm9uSGVhZGVyUm93IiwibWVhc3VyZVJvd1JlbmRlciIsIm9uU2Nyb2xsIiwiaW50ZXJuYWxIb29rcyIsInRyYW5zZm9ybUNvbHVtbnMiLCJpbnRlcm5hbFJlZnMiLCJ0YWlsb3IiLCJnZXRDb250YWluZXJXaWR0aCIsInN0aWNreSIsIl9wcm9wcyRyb3dIb3ZlcmFibGUiLCJyb3dIb3ZlcmFibGUiLCJtZXJnZWREYXRhIiwiaGFzRGF0YSIsImxlbmd0aCIsInVzZUludGVybmFsSG9va3MiLCJJTlRFUk5BTF9IT09LUyIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsImZvckVhY2giLCJuYW1lIiwid2FybmluZyIsInVuZGVmaW5lZCIsImNvbmNhdCIsImdldENvbXBvbmVudCIsInVzZUNhbGxiYWNrIiwicGF0aCIsImRlZmF1bHRDb21wb25lbnQiLCJnZXRWYWx1ZSIsImdldFJvd0tleSIsInVzZU1lbW8iLCJyZWNvcmQiLCJrZXkiLCJjdXN0b21pemVTY3JvbGxCb2R5IiwiX3VzZUhvdmVyIiwidXNlSG92ZXIiLCJfdXNlSG92ZXIyIiwiX3NsaWNlZFRvQXJyYXkyIiwic3RhcnRSb3ciLCJlbmRSb3ciLCJvbkhvdmVyIiwiX3VzZUV4cGFuZCIsInVzZUV4cGFuZCIsIl91c2VFeHBhbmQyIiwiZXhwYW5kYWJsZUNvbmZpZyIsImV4cGFuZGFibGVUeXBlIiwibWVyZ2VkRXhwYW5kZWRLZXlzIiwibWVyZ2VkRXhwYW5kSWNvbiIsIm1lcmdlZENoaWxkcmVuQ29sdW1uTmFtZSIsIm9uVHJpZ2dlckV4cGFuZCIsInNjcm9sbFgiLCJ4IiwiX1JlYWN0JHVzZVN0YXRlIiwidXNlU3RhdGUiLCJfUmVhY3QkdXNlU3RhdGUyIiwiY29tcG9uZW50V2lkdGgiLCJzZXRDb21wb25lbnRXaWR0aCIsIl91c2VDb2x1bW5zIiwidXNlQ29sdW1ucyIsImV4cGFuZGFibGUiLCJleHBhbmRlZFJvd1JlbmRlciIsImNvbHVtblRpdGxlIiwiZXhwYW5kZWRLZXlzIiwiZXhwYW5kSWNvbiIsImV4cGFuZEljb25Db2x1bW5JbmRleCIsInNjcm9sbFdpZHRoIiwiY2xpZW50V2lkdGgiLCJfdXNlQ29sdW1uczIiLCJjb2x1bW5zIiwiZmxhdHRlbkNvbHVtbnMiLCJmbGF0dGVuU2Nyb2xsWCIsIm1lcmdlZFNjcm9sbFgiLCJjb2x1bW5Db250ZXh0IiwiZnVsbFRhYmxlUmVmIiwidXNlUmVmIiwic2Nyb2xsSGVhZGVyUmVmIiwic2Nyb2xsQm9keVJlZiIsInNjcm9sbEJvZHlDb250YWluZXJSZWYiLCJ1c2VJbXBlcmF0aXZlSGFuZGxlIiwibmF0aXZlRWxlbWVudCIsImN1cnJlbnQiLCJzY3JvbGxUbyIsImNvbmZpZyIsIkhUTUxFbGVtZW50IiwiaW5kZXgiLCJ0b3AiLCJvZmZzZXQiLCJ2YWxpZE51bWJlclZhbHVlIiwibWVyZ2VkS2V5IiwidGFyZ2V0RWxlbWVudCIsInF1ZXJ5U2VsZWN0b3IiLCJzY3JvbGxJbnRvVmlldyIsImVsZW1lbnRUb3AiLCJvZmZzZXRUb3AiLCJzY3JvbGxTdW1tYXJ5UmVmIiwiX1JlYWN0JHVzZVN0YXRlMyIsIl9SZWFjdCR1c2VTdGF0ZTQiLCJzaGFkb3dTdGFydCIsInNldFNoYWRvd1N0YXJ0IiwiX1JlYWN0JHVzZVN0YXRlNSIsIl9SZWFjdCR1c2VTdGF0ZTYiLCJzaGFkb3dFbmQiLCJzZXRTaGFkb3dFbmQiLCJfUmVhY3QkdXNlU3RhdGU3IiwiTWFwIiwiX1JlYWN0JHVzZVN0YXRlOCIsImNvbHNXaWR0aHMiLCJ1cGRhdGVDb2xzV2lkdGhzIiwiY29sc0tleXMiLCJnZXRDb2x1bW5zS2V5IiwicHVyZUNvbFdpZHRocyIsIm1hcCIsImNvbHVtbktleSIsImNvbFdpZHRocyIsImpvaW4iLCJzdGlja3lPZmZzZXRzIiwidXNlU3RpY2t5T2Zmc2V0cyIsImZpeEhlYWRlciIsInZhbGlkYXRlVmFsdWUiLCJ5IiwiaG9yaXpvblNjcm9sbCIsIkJvb2xlYW4iLCJmaXhlZCIsImZpeENvbHVtbiIsInNvbWUiLCJfcmVmIiwic3RpY2t5UmVmIiwiX3VzZVN0aWNreSIsInVzZVN0aWNreSIsImlzU3RpY2t5Iiwib2Zmc2V0SGVhZGVyIiwib2Zmc2V0U3VtbWFyeSIsIm9mZnNldFNjcm9sbCIsInN0aWNreUNsYXNzTmFtZSIsImNvbnRhaW5lciIsInN1bW1hcnlOb2RlIiwiZml4Rm9vdGVyIiwiaXNWYWxpZEVsZW1lbnQiLCJ0eXBlIiwiU3VtbWFyeSIsInNjcm9sbFhTdHlsZSIsInNjcm9sbFlTdHlsZSIsInNjcm9sbFRhYmxlU3R5bGUiLCJvdmVyZmxvd1kiLCJtYXhIZWlnaHQiLCJvdmVyZmxvd1giLCJ3aWR0aCIsIm1pbldpZHRoIiwib25Db2x1bW5SZXNpemUiLCJ3aWR0aHMiLCJuZXdXaWR0aHMiLCJfdXNlVGltZW91dExvY2siLCJ1c2VUaW1lb3V0TG9jayIsIl91c2VUaW1lb3V0TG9jazIiLCJzZXRTY3JvbGxUYXJnZXQiLCJnZXRTY3JvbGxUYXJnZXQiLCJmb3JjZVNjcm9sbCIsInNjcm9sbExlZnQiLCJ0YXJnZXQiLCJzZXRUaW1lb3V0IiwiX1JlYWN0JHVzZVN0YXRlOSIsIl9SZWFjdCR1c2VTdGF0ZTAiLCJzY3JvbGxJbmZvIiwic2V0U2Nyb2xsSW5mbyIsIm9uSW50ZXJuYWxTY3JvbGwiLCJ1c2VFdmVudCIsIl9yZWYyIiwiY3VycmVudFRhcmdldCIsIm1lcmdlZFNjcm9sbExlZnQiLCJjb21wYXJlVGFyZ2V0Iiwic2V0U2Nyb2xsTGVmdCIsIm1lYXN1cmVUYXJnZXQiLCJhYnNTY3JvbGxTdGFydCIsIk1hdGgiLCJhYnMiLCJvcmkiLCJuZXh0U2Nyb2xsSW5mbyIsImlzRXF1YWwiLCJvbkJvZHlTY3JvbGwiLCJ0cmlnZ2VyT25TY3JvbGwiLCJnZXRET00iLCJvbkZ1bGxUYWJsZVJlc2l6ZSIsIm9mZnNldFdpZHRoIiwiX2MiLCJjaGVja1Njcm9sbEJhclZpc2libGUiLCJtZXJnZWRXaWR0aCIsInVzZUxheW91dEVmZmVjdCIsIm1vdW50ZWQiLCJ1c2VFZmZlY3QiLCJfUmVhY3QkdXNlU3RhdGUxIiwiX1JlYWN0JHVzZVN0YXRlMTAiLCJzY3JvbGxiYXJTaXplIiwic2V0U2Nyb2xsYmFyU2l6ZSIsIkVsZW1lbnQiLCJnZXRUYXJnZXRTY3JvbGxCYXJTaXplIiwiYm9keSIsInJlbmRlckZpeGVkSGVhZGVyVGFibGUiLCJmaXhlZEhvbGRlclBhc3NQcm9wcyIsIl9qc3hzIiwiX0ZyYWdtZW50IiwiY2hpbGRyZW4iLCJfanN4IiwiSGVhZGVyIiwiRm9vdGVyIiwicmVuZGVyRml4ZWRGb290ZXJUYWJsZSIsIlRhYmxlQ29tcG9uZW50IiwibWVyZ2VkVGFibGVMYXlvdXQiLCJfcmVmMyIsImVsbGlwc2lzIiwiZ3JvdXBUYWJsZU5vZGUiLCJoZWFkZXJQcm9wcyIsImNvbHVtQ291bnQiLCJlbXB0eU5vZGUiLCJib2R5VGFibGUiLCJCb2R5IiwibWVhc3VyZUNvbHVtbldpZHRoIiwiYm9keUNvbEdyb3VwIiwiQ29sR3JvdXAiLCJfcmVmNCIsImNhcHRpb25FbGVtZW50IiwiZGF0YVByb3BzIiwicGlja0F0dHJzIiwiYXJpYVByb3BzIiwiYXJpYSIsImJvZHlDb250ZW50IiwiX3JlZjUiLCJjb2xXaWR0aCIsIk51bWJlciIsImlzTmFOIiwiZml4ZWRIb2xkZXJQcm9wcyIsIm5vRGF0YSIsIm1heENvbnRlbnRTY3JvbGwiLCJGaXhlZEhvbGRlciIsInN0aWNreVRvcE9mZnNldCIsImNvbEdyb3VwIiwic3RpY2t5Qm90dG9tT2Zmc2V0IiwiU3RpY2t5U2Nyb2xsQmFyIiwiY29udGVudCIsImNsc3giLCJ0YWJsZVN0eWxlIiwiZnVsbFRhYmxlIiwiX2RlZmluZVByb3BlcnR5MiIsIlBhbmVsIiwic2VjdGlvbiIsIlJlc2l6ZU9ic2VydmVyIiwib25SZXNpemUiLCJfcmVmNiIsImZpeGVkSW5mb0xpc3QiLCJ1c2VGaXhlZEluZm8iLCJUYWJsZUNvbnRleHRWYWx1ZSIsImV4cGFuZGVkUm93Q2xhc3NOYW1lIiwiZXhwYW5kUm93QnlDbGljayIsImV4cGFuZGVkUm93T2Zmc2V0IiwiaW5kZW50U2l6ZSIsImFsbENvbHVtbnNGaXhlZExlZnQiLCJldmVyeSIsImNvbCIsImhvdmVyU3RhcnRSb3ciLCJob3ZlckVuZFJvdyIsInJvd0V4cGFuZGFibGUiLCJjaGlsZHJlbkNvbHVtbk5hbWUiLCJUYWJsZUNvbnRleHQiLCJQcm92aWRlciIsInZhbHVlIiwiUmVmVGFibGUiLCJmb3J3YXJkUmVmIiwiZGlzcGxheU5hbWUiLCJnZW5UYWJsZSIsInNob3VsZFRyaWdnZXJSZW5kZXIiLCJtYWtlSW1tdXRhYmxlIiwiSW1tdXRhYmxlVGFibGUiLCJFWFBBTkRfQ09MVU1OIiwiQ29sdW1uIiwiQ29sdW1uR3JvdXAiLCJGb290ZXJDb21wb25lbnRzIiwiX2RlZmF1bHQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxXQUFBLEdBQUFDLE9BQUE7QUM0QkEsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsZUFBQSxHQUFBQyxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUksaUJBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLGlCQUFBLEdBQUFGLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBTSxVQUFBLEdBQUFILHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBTyxJQUFBLEdBQUFKLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBUSxRQUFBLEdBQUFMLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBUyxLQUFBLEdBQUFDLHVCQUFBLENBQUFWLE9BQUE7QUFDQSxJQUFBVyxLQUFBLEdBQUFSLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFB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QUM3RixDQUFDO0FBTUQsSUFBTXdCLFFBQVEsZ0JBQUd0VixLQUFLLENBQUN1VixVQUFVLENBQUNyUyxLQUFLLENBQXdCO0FBRS9ELElBQUk0QyxPQUFPLENBQUNDLEdBQUcsQ0FBQ0MsUUFBUSxLQUFLLFlBQVksRUFBRTtFQUN6Q3NQLFFBQVEsQ0FBQ0UsV0FBVyxHQUFHLE9BQU87QUFDaEM7QUFFTyxJQUFNQyxRQUFRLEdBQUEzUyxPQUFBLENBQUEyUyxRQUFBLEdBQUcsU0FBWEEsUUFBUUEsQ0FBSUMsbUJBQXVELEVBQUk7RUFDbEYsT0FBTyxJQUFBQywyQkFBYSxFQUFDTCxRQUFRLEVBQUVJLG1CQUFtQixDQUFDO0FBQ3JELENBQUM7QUFFRCxJQUFNRSxjQUFjLEdBQUdILFFBQVEsQ0FBQSxDQUFFO0FBVWhDRyxjQUFxQyxDQUFDQyxhQUFhLEdBQUdBLHVCQUFhO0FBRW5FRCxjQUFxQyxDQUFDL1AsY0FBYyxHQUFHQSx3QkFBYztBQUVyRStQLGNBQXFDLENBQUNFLE1BQU0sR0FBR0Esa0JBQU07QUFFckRGLGNBQXFDLENBQUNHLFdBQVcsR0FBR0EsdUJBQVc7QUFFL0RILGNBQXFDLENBQUNuSSxPQUFPLEdBQUd1SSx3QkFBZ0I7QUFBQyxJQUFBQyxRQUFBLEdBQUFuVCxPQUFBLGNBRW5EOFMsY0FBb0MiLCJmaWxlIjoiY29tcG9uZW50cy9UYWJsZS9pbnRlcm5hbC9rZXJuZWwvVGFibGUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqc3ggYXMgX2pzeCwgRnJhZ21lbnQgYXMgX0ZyYWdtZW50LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBjbHN4IH0gZnJvbSAnY2xzeCc7XG5pbXBvcnQgUmVzaXplT2JzZXJ2ZXIgZnJvbSAnLi4vLi4vLi4vUmVzaXplT2JzZXJ2ZXInO1xuaW1wb3J0IHsgZ2V0VGFyZ2V0U2Nyb2xsQmFyU2l6ZSB9IGZyb20gJy4vdXRpbHMvZ2V0U2Nyb2xsQmFyU2l6ZSc7XG5pbXBvcnQgdXNlRXZlbnQgZnJvbSAnQDFtb25leS9ob29rcy91c2VFdmVudENhbGxiYWNrJztcbmltcG9ydCBwaWNrQXR0cnMgZnJvbSAnLi91dGlscy9waWNrQXR0cnMnO1xuaW1wb3J0IGdldFZhbHVlIGZyb20gJy4vdXRpbHMvZ2V0JztcbmltcG9ydCB3YXJuaW5nIGZyb20gJy4vdXRpbHMvd2FybmluZyc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgQm9keSBmcm9tICcuL0JvZHknO1xuaW1wb3J0IENvbEdyb3VwIGZyb20gJy4vQ29sR3JvdXAnO1xuaW1wb3J0IHsgRVhQQU5EX0NPTFVNTiwgSU5URVJOQUxfSE9PS1MgfSBmcm9tICcuL2NvbnN0YW50JztcbmltcG9ydCBUYWJsZUNvbnRleHQsIHsgbWFrZUltbXV0YWJsZSB9IGZyb20gJy4vY29udGV4dC9UYWJsZUNvbnRleHQnO1xuaW1wb3J0IEZpeGVkSG9sZGVyIGZyb20gJy4vRml4ZWRIb2xkZXInO1xuaW1wb3J0IEZvb3RlciwgeyBGb290ZXJDb21wb25lbnRzIH0gZnJvbSAnLi9Gb290ZXInO1xuaW1wb3J0IFN1bW1hcnkgZnJvbSAnLi9Gb290ZXIvU3VtbWFyeSc7XG5pbXBvcnQgSGVhZGVyIGZyb20gJy4vSGVhZGVyL0hlYWRlcic7XG5pbXBvcnQgdXNlQ29sdW1ucyBmcm9tICcuL2hvb2tzL3VzZUNvbHVtbnMnO1xuaW1wb3J0IHVzZUV4cGFuZCBmcm9tICcuL2hvb2tzL3VzZUV4cGFuZCc7XG5pbXBvcnQgdXNlRml4ZWRJbmZvIGZyb20gJy4vaG9va3MvdXNlRml4ZWRJbmZvJztcbmltcG9ydCB7IHVzZVRpbWVvdXRMb2NrIH0gZnJvbSAnLi9ob29rcy91c2VGcmFtZSc7XG5pbXBvcnQgdXNlSG92ZXIgZnJvbSAnLi9ob29rcy91c2VIb3Zlcic7XG5pbXBvcnQgdXNlU3RpY2t5IGZyb20gJy4vaG9va3MvdXNlU3RpY2t5JztcbmltcG9ydCB1c2VTdGlja3lPZmZzZXRzIGZyb20gJy4vaG9va3MvdXNlU3RpY2t5T2Zmc2V0cyc7XG5pbXBvcnQgUGFuZWwgZnJvbSAnLi9QYW5lbCc7XG5pbXBvcnQgU3RpY2t5U2Nyb2xsQmFyIGZyb20gJy4vc3RpY2t5U2Nyb2xsQmFyJztcbmltcG9ydCBDb2x1bW4gZnJvbSAnLi9zdWdhci9Db2x1bW4nO1xuaW1wb3J0IENvbHVtbkdyb3VwIGZyb20gJy4vc3VnYXIvQ29sdW1uR3JvdXAnO1xuaW1wb3J0IHsgZ2V0Q29sdW1uc0tleSwgdmFsaWRhdGVWYWx1ZSwgdmFsaWROdW1iZXJWYWx1ZSB9IGZyb20gJy4vdXRpbHMvdmFsdWVVdGlsJztcbmltcG9ydCB7IGdldERPTSB9IGZyb20gJy4uLy4uLy4uL1Jlc2l6ZU9ic2VydmVyL3V0aWxzL3JlYWN0VXRpbCc7XG5pbXBvcnQgaXNFcXVhbCBmcm9tICcuL3NlbGVjdG9yLWNvbnRleHQvaXNFcXVhbCc7XG5pbXBvcnQgdXNlTGF5b3V0RWZmZWN0IGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlTGF5b3V0RWZmZWN0JztcbmV4cG9ydCBjb25zdCBERUZBVUxUX1BSRUZJWCA9ICdvbS10YWJsZSc7XG4vLyBVc2VkIGZvciBjb25kaXRpb25zIGNhY2hlXG5jb25zdCBFTVBUWV9EQVRBID0gW107XG4vLyBVc2VkIGZvciBjdXN0b21pemUgc2Nyb2xsXG5jb25zdCBFTVBUWV9TQ1JPTExfVEFSR0VUID0ge307XG5mdW5jdGlvbiBkZWZhdWx0RW1wdHkoKSB7XG4gICAgcmV0dXJuICdObyBEYXRhJztcbn1cbmNvbnN0IFRhYmxlID0gKHRhYmxlUHJvcHMsIHJlZikgPT4ge1xuICAgIHZhciBfYSwgX2I7XG4gICAgY29uc3QgcHJvcHMgPSBPYmplY3QuYXNzaWduKHsgcm93S2V5OiAna2V5JywgcHJlZml4Q2xzOiBERUZBVUxUX1BSRUZJWCwgZW1wdHlUZXh0OiBkZWZhdWx0RW1wdHkgfSwgdGFibGVQcm9wcyk7XG4gICAgY29uc3QgeyBwcmVmaXhDbHMsIGNsYXNzTmFtZSwgcm93Q2xhc3NOYW1lLCBzdHlsZSwgY2xhc3NOYW1lcywgc3R5bGVzLCBkYXRhLCByb3dLZXksIHNjcm9sbCwgdGFibGVMYXlvdXQsIGRpcmVjdGlvbiwgXG4gICAgLy8gQWRkaXRpb25hbCBQYXJ0XG4gICAgdGl0bGUsIGZvb3Rlciwgc3VtbWFyeSwgY2FwdGlvbiwgXG4gICAgLy8gQ3VzdG9taXplXG4gICAgaWQsIHNob3dIZWFkZXIsIGNvbXBvbmVudHMsIGVtcHR5VGV4dCwgb25Sb3csIG9uSGVhZGVyUm93LCBcbiAgICAvLyBNZWFzdXJlIFJvd1xuICAgIG1lYXN1cmVSb3dSZW5kZXIsIFxuICAgIC8vIEV2ZW50c1xuICAgIG9uU2Nyb2xsLCBcbiAgICAvLyBJbnRlcm5hbFxuICAgIGludGVybmFsSG9va3MsIHRyYW5zZm9ybUNvbHVtbnMsIGludGVybmFsUmVmcywgdGFpbG9yLCBnZXRDb250YWluZXJXaWR0aCwgc3RpY2t5LCByb3dIb3ZlcmFibGUgPSB0cnVlLCB9ID0gcHJvcHM7XG4gICAgY29uc3QgbWVyZ2VkRGF0YSA9IGRhdGEgfHwgRU1QVFlfREFUQTtcbiAgICBjb25zdCBoYXNEYXRhID0gISFtZXJnZWREYXRhLmxlbmd0aDtcbiAgICBjb25zdCB1c2VJbnRlcm5hbEhvb2tzID0gaW50ZXJuYWxIb29rcyA9PT0gSU5URVJOQUxfSE9PS1M7XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09IFdhcm5pbmcgPT09PT09PT09PT09PT09PT09PT09PVxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIFtcbiAgICAgICAgICAgICdvblJvd0NsaWNrJyxcbiAgICAgICAgICAgICdvblJvd0RvdWJsZUNsaWNrJyxcbiAgICAgICAgICAgICdvblJvd0NvbnRleHRNZW51JyxcbiAgICAgICAgICAgICdvblJvd01vdXNlRW50ZXInLFxuICAgICAgICAgICAgJ29uUm93TW91c2VMZWF2ZScsXG4gICAgICAgIF0uZm9yRWFjaChuYW1lID0+IHtcbiAgICAgICAgICAgIHdhcm5pbmcocHJvcHNbbmFtZV0gPT09IHVuZGVmaW5lZCwgYFxcYCR7bmFtZX1cXGAgaXMgcmVtb3ZlZCwgcGxlYXNlIHVzZSBcXGBvblJvd1xcYCBpbnN0ZWFkLmApO1xuICAgICAgICB9KTtcbiAgICAgICAgd2FybmluZyghKCdnZXRCb2R5V3JhcHBlcicgaW4gcHJvcHMpLCAnYGdldEJvZHlXcmFwcGVyYCBpcyBkZXByZWNhdGVkLCBwbGVhc2UgdXNlIGN1c3RvbSBgY29tcG9uZW50c2AgaW5zdGVhZC4nKTtcbiAgICB9XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT0gQ3VzdG9taXplID09PT09PT09PT09PT09PT09PT09PVxuICAgIGNvbnN0IGdldENvbXBvbmVudCA9IFJlYWN0LnVzZUNhbGxiYWNrKChwYXRoLCBkZWZhdWx0Q29tcG9uZW50KSA9PiBnZXRWYWx1ZShjb21wb25lbnRzLCBwYXRoKSB8fCBkZWZhdWx0Q29tcG9uZW50LCBbY29tcG9uZW50c10pO1xuICAgIGNvbnN0IGdldFJvd0tleSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIHJvd0tleSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgcmV0dXJuIHJvd0tleTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKHJlY29yZCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qga2V5ID0gcmVjb3JkICYmIHJlY29yZFtyb3dLZXldO1xuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICAgICAgICB3YXJuaW5nKGtleSAhPT0gdW5kZWZpbmVkLCAnRWFjaCByZWNvcmQgaW4gdGFibGUgc2hvdWxkIGhhdmUgYSB1bmlxdWUgYGtleWAgcHJvcCwgb3Igc2V0IGByb3dLZXlgIHRvIGFuIHVuaXF1ZSBwcmltYXJ5IGtleS4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBrZXk7XG4gICAgICAgIH07XG4gICAgfSwgW3Jvd0tleV0pO1xuICAgIGNvbnN0IGN1c3RvbWl6ZVNjcm9sbEJvZHkgPSBnZXRDb21wb25lbnQoWydib2R5J10pO1xuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT0gSG92ZXIgPT09PT09PT09PT09PT09PT09PT09PT1cbiAgICBjb25zdCBbc3RhcnRSb3csIGVuZFJvdywgb25Ib3Zlcl0gPSB1c2VIb3ZlcigpO1xuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT0gRXhwYW5kID09PT09PT09PT09PT09PT09PT09PT1cbiAgICBjb25zdCBbZXhwYW5kYWJsZUNvbmZpZywgZXhwYW5kYWJsZVR5cGUsIG1lcmdlZEV4cGFuZGVkS2V5cywgbWVyZ2VkRXhwYW5kSWNvbiwgbWVyZ2VkQ2hpbGRyZW5Db2x1bW5OYW1lLCBvblRyaWdnZXJFeHBhbmQsXSA9IHVzZUV4cGFuZChwcm9wcywgbWVyZ2VkRGF0YSwgZ2V0Um93S2V5KTtcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09IENvbHVtbiA9PT09PT09PT09PT09PT09PT09PT09XG4gICAgY29uc3Qgc2Nyb2xsWCA9IHNjcm9sbCA9PT0gbnVsbCB8fCBzY3JvbGwgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNjcm9sbC54O1xuICAgIGNvbnN0IFtjb21wb25lbnRXaWR0aCwgc2V0Q29tcG9uZW50V2lkdGhdID0gUmVhY3QudXNlU3RhdGUoMCk7XG4gICAgY29uc3QgW2NvbHVtbnMsIGZsYXR0ZW5Db2x1bW5zLCBmbGF0dGVuU2Nyb2xsWF0gPSB1c2VDb2x1bW5zKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBwcm9wcyksIGV4cGFuZGFibGVDb25maWcpLCB7IGV4cGFuZGFibGU6ICEhZXhwYW5kYWJsZUNvbmZpZy5leHBhbmRlZFJvd1JlbmRlciwgY29sdW1uVGl0bGU6IGV4cGFuZGFibGVDb25maWcuY29sdW1uVGl0bGUsIGV4cGFuZGVkS2V5czogbWVyZ2VkRXhwYW5kZWRLZXlzLCBnZXRSb3dLZXksXG4gICAgICAgIG9uVHJpZ2dlckV4cGFuZCwgZXhwYW5kSWNvbjogbWVyZ2VkRXhwYW5kSWNvbiwgZXhwYW5kSWNvbkNvbHVtbkluZGV4OiBleHBhbmRhYmxlQ29uZmlnLmV4cGFuZEljb25Db2x1bW5JbmRleCwgZGlyZWN0aW9uLCBzY3JvbGxXaWR0aDogdXNlSW50ZXJuYWxIb29rcyAmJiB0YWlsb3IgJiYgdHlwZW9mIHNjcm9sbFggPT09ICdudW1iZXInID8gc2Nyb2xsWCA6IG51bGwsIGNsaWVudFdpZHRoOiBjb21wb25lbnRXaWR0aCB9KSwgdXNlSW50ZXJuYWxIb29rcyA/IHRyYW5zZm9ybUNvbHVtbnMgOiBudWxsKTtcbiAgICBjb25zdCBtZXJnZWRTY3JvbGxYID0gZmxhdHRlblNjcm9sbFggIT09IG51bGwgJiYgZmxhdHRlblNjcm9sbFggIT09IHZvaWQgMCA/IGZsYXR0ZW5TY3JvbGxYIDogc2Nyb2xsWDtcbiAgICBjb25zdCBjb2x1bW5Db250ZXh0ID0gUmVhY3QudXNlTWVtbygoKSA9PiAoeyBjb2x1bW5zLCBmbGF0dGVuQ29sdW1ucyB9KSwgW2NvbHVtbnMsIGZsYXR0ZW5Db2x1bW5zXSk7XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT0gUmVmcyA9PT09PT09PT09PT09PT09PT09PT09PVxuICAgIGNvbnN0IGZ1bGxUYWJsZVJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgICBjb25zdCBzY3JvbGxIZWFkZXJSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gICAgY29uc3Qgc2Nyb2xsQm9keVJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgICBjb25zdCBzY3JvbGxCb2R5Q29udGFpbmVyUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIFJlYWN0LnVzZUltcGVyYXRpdmVIYW5kbGUocmVmLCAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBuYXRpdmVFbGVtZW50OiBmdWxsVGFibGVSZWYuY3VycmVudCxcbiAgICAgICAgICAgIHNjcm9sbFRvOiBjb25maWcgPT4ge1xuICAgICAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICAgICAgaWYgKHNjcm9sbEJvZHlSZWYuY3VycmVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIE5hdGl2ZSBzY3JvbGxcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBpbmRleCwgdG9wLCBrZXksIG9mZnNldCB9ID0gY29uZmlnO1xuICAgICAgICAgICAgICAgICAgICBpZiAodmFsaWROdW1iZXJWYWx1ZSh0b3ApKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBJbiB0b3AgbW9kZSwgb2Zmc2V0IGlzIGlnbm9yZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIChfYSA9IHNjcm9sbEJvZHlSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnNjcm9sbFRvKHsgdG9wIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWVyZ2VkS2V5ID0ga2V5ICE9PSBudWxsICYmIGtleSAhPT0gdm9pZCAwID8ga2V5IDogZ2V0Um93S2V5KG1lcmdlZERhdGFbaW5kZXhdKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhcmdldEVsZW1lbnQgPSBzY3JvbGxCb2R5UmVmLmN1cnJlbnQucXVlcnlTZWxlY3RvcihgW2RhdGEtcm93LWtleT1cIiR7bWVyZ2VkS2V5fVwiXWApO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRhcmdldEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIW9mZnNldCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBObyBvZmZzZXQsIHVzZSBzY3JvbGxJbnRvVmlldyBmb3IgZGVmYXVsdCBiZWhhdmlvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRFbGVtZW50LnNjcm9sbEludG9WaWV3KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBXaXRoIG9mZnNldCwgdXNlIGVsZW1lbnQncyBvZmZzZXRUb3AgKyBvZmZzZXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudFRvcCA9IHRhcmdldEVsZW1lbnQub2Zmc2V0VG9wO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxCb2R5UmVmLmN1cnJlbnQuc2Nyb2xsVG8oeyB0b3A6IGVsZW1lbnRUb3AgKyBvZmZzZXQgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKChfYiA9IHNjcm9sbEJvZHlSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLnNjcm9sbFRvKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFBhc3MgdG8gcHJveHlcbiAgICAgICAgICAgICAgICAgICAgc2Nyb2xsQm9keVJlZi5jdXJyZW50LnNjcm9sbFRvKGNvbmZpZyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICB9KTtcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09IFNjcm9sbCA9PT09PT09PT09PT09PT09PT09PT09XG4gICAgY29uc3Qgc2Nyb2xsU3VtbWFyeVJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgICBjb25zdCBbc2hhZG93U3RhcnQsIHNldFNoYWRvd1N0YXJ0XSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbc2hhZG93RW5kLCBzZXRTaGFkb3dFbmRdID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IFtjb2xzV2lkdGhzLCB1cGRhdGVDb2xzV2lkdGhzXSA9IFJlYWN0LnVzZVN0YXRlKG5ldyBNYXAoKSk7XG4gICAgLy8gQ29udmVydCBtYXAgdG8gbnVtYmVyIHdpZHRoXG4gICAgY29uc3QgY29sc0tleXMgPSBnZXRDb2x1bW5zS2V5KGZsYXR0ZW5Db2x1bW5zKTtcbiAgICBjb25zdCBwdXJlQ29sV2lkdGhzID0gY29sc0tleXMubWFwKGNvbHVtbktleSA9PiBjb2xzV2lkdGhzLmdldChjb2x1bW5LZXkpKTtcbiAgICBjb25zdCBjb2xXaWR0aHMgPSBSZWFjdC51c2VNZW1vKCgpID0+IHB1cmVDb2xXaWR0aHMsIFtwdXJlQ29sV2lkdGhzLmpvaW4oJ18nKV0pO1xuICAgIGNvbnN0IHN0aWNreU9mZnNldHMgPSB1c2VTdGlja3lPZmZzZXRzKGNvbFdpZHRocywgZmxhdHRlbkNvbHVtbnMpO1xuICAgIGNvbnN0IGZpeEhlYWRlciA9IHNjcm9sbCAmJiB2YWxpZGF0ZVZhbHVlKHNjcm9sbC55KTtcbiAgICBjb25zdCBob3Jpem9uU2Nyb2xsID0gKHNjcm9sbCAmJiB2YWxpZGF0ZVZhbHVlKG1lcmdlZFNjcm9sbFgpKSB8fCBCb29sZWFuKGV4cGFuZGFibGVDb25maWcuZml4ZWQpO1xuICAgIGNvbnN0IGZpeENvbHVtbiA9IGhvcml6b25TY3JvbGwgJiYgZmxhdHRlbkNvbHVtbnMuc29tZSgoeyBmaXhlZCB9KSA9PiBmaXhlZCk7XG4gICAgLy8gU3RpY2t5XG4gICAgY29uc3Qgc3RpY2t5UmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHsgaXNTdGlja3ksIG9mZnNldEhlYWRlciwgb2Zmc2V0U3VtbWFyeSwgb2Zmc2V0U2Nyb2xsLCBzdGlja3lDbGFzc05hbWUsIGNvbnRhaW5lciB9ID0gdXNlU3RpY2t5KHN0aWNreSwgcHJlZml4Q2xzKTtcbiAgICAvLyBGb290ZXIgKEZpeCBmb290ZXIgbXVzdCBmaXhlZCBoZWFkZXIpXG4gICAgY29uc3Qgc3VtbWFyeU5vZGUgPSBSZWFjdC51c2VNZW1vKCgpID0+IHN1bW1hcnkgPT09IG51bGwgfHwgc3VtbWFyeSA9PT0gdm9pZCAwID8gdm9pZCAwIDogc3VtbWFyeShtZXJnZWREYXRhKSwgW3N1bW1hcnksIG1lcmdlZERhdGFdKTtcbiAgICBjb25zdCBmaXhGb290ZXIgPSAoZml4SGVhZGVyIHx8IGlzU3RpY2t5KSAmJlxuICAgICAgICBSZWFjdC5pc1ZhbGlkRWxlbWVudChzdW1tYXJ5Tm9kZSkgJiZcbiAgICAgICAgc3VtbWFyeU5vZGUudHlwZSA9PT0gU3VtbWFyeSAmJlxuICAgICAgICBzdW1tYXJ5Tm9kZS5wcm9wcy5maXhlZDtcbiAgICAvLyBTY3JvbGxcbiAgICBsZXQgc2Nyb2xsWFN0eWxlO1xuICAgIGxldCBzY3JvbGxZU3R5bGU7XG4gICAgbGV0IHNjcm9sbFRhYmxlU3R5bGU7XG4gICAgaWYgKGZpeEhlYWRlcikge1xuICAgICAgICBzY3JvbGxZU3R5bGUgPSB7XG4gICAgICAgICAgICBvdmVyZmxvd1k6IGhhc0RhdGEgPyAnc2Nyb2xsJyA6ICdhdXRvJyxcbiAgICAgICAgICAgIG1heEhlaWdodDogc2Nyb2xsLnksXG4gICAgICAgIH07XG4gICAgfVxuICAgIGlmIChob3Jpem9uU2Nyb2xsKSB7XG4gICAgICAgIHNjcm9sbFhTdHlsZSA9IHsgb3ZlcmZsb3dYOiAnYXV0bycgfTtcbiAgICAgICAgLy8gV2hlbiBubyB2ZXJ0aWNhbCBzY3JvbGxiYXIsIHNob3VsZCBoaWRlIGl0XG4gICAgICAgIGlmICghZml4SGVhZGVyKSB7XG4gICAgICAgICAgICBzY3JvbGxZU3R5bGUgPSB7IG92ZXJmbG93WTogJ2hpZGRlbicgfTtcbiAgICAgICAgfVxuICAgICAgICBzY3JvbGxUYWJsZVN0eWxlID0ge1xuICAgICAgICAgICAgd2lkdGg6IG1lcmdlZFNjcm9sbFggPT09IHRydWUgPyAnYXV0bycgOiBtZXJnZWRTY3JvbGxYLFxuICAgICAgICAgICAgbWluV2lkdGg6ICcxMDAlJyxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgY29uc3Qgb25Db2x1bW5SZXNpemUgPSBSZWFjdC51c2VDYWxsYmFjaygoY29sdW1uS2V5LCB3aWR0aCkgPT4ge1xuICAgICAgICB1cGRhdGVDb2xzV2lkdGhzKHdpZHRocyA9PiB7XG4gICAgICAgICAgICBpZiAod2lkdGhzLmdldChjb2x1bW5LZXkpICE9PSB3aWR0aCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5ld1dpZHRocyA9IG5ldyBNYXAod2lkdGhzKTtcbiAgICAgICAgICAgICAgICBuZXdXaWR0aHMuc2V0KGNvbHVtbktleSwgd2lkdGgpO1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXdXaWR0aHM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gd2lkdGhzO1xuICAgICAgICB9KTtcbiAgICB9LCBbXSk7XG4gICAgY29uc3QgW3NldFNjcm9sbFRhcmdldCwgZ2V0U2Nyb2xsVGFyZ2V0XSA9IHVzZVRpbWVvdXRMb2NrKG51bGwpO1xuICAgIGZ1bmN0aW9uIGZvcmNlU2Nyb2xsKHNjcm9sbExlZnQsIHRhcmdldCkge1xuICAgICAgICBpZiAoIXRhcmdldCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdGFyZ2V0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICB0YXJnZXQoc2Nyb2xsTGVmdCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodGFyZ2V0LnNjcm9sbExlZnQgIT09IHNjcm9sbExlZnQpIHtcbiAgICAgICAgICAgIHRhcmdldC5zY3JvbGxMZWZ0ID0gc2Nyb2xsTGVmdDtcbiAgICAgICAgICAgIC8vIERlbGF5IHRvIGZvcmNlIHNjcm9sbCBwb3NpdGlvbiBpZiBub3Qgc3luY1xuICAgICAgICAgICAgaWYgKHRhcmdldC5zY3JvbGxMZWZ0ICE9PSBzY3JvbGxMZWZ0KSB7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldC5zY3JvbGxMZWZ0ID0gc2Nyb2xsTGVmdDtcbiAgICAgICAgICAgICAgICB9LCAwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBbc2Nyb2xsSW5mbywgc2V0U2Nyb2xsSW5mb10gPSBSZWFjdC51c2VTdGF0ZShbMCwgMF0pO1xuICAgIGNvbnN0IG9uSW50ZXJuYWxTY3JvbGwgPSB1c2VFdmVudCgoeyBjdXJyZW50VGFyZ2V0LCBzY3JvbGxMZWZ0IH0pID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBjb25zdCBtZXJnZWRTY3JvbGxMZWZ0ID0gdHlwZW9mIHNjcm9sbExlZnQgPT09ICdudW1iZXInID8gc2Nyb2xsTGVmdCA6IGN1cnJlbnRUYXJnZXQuc2Nyb2xsTGVmdDtcbiAgICAgICAgY29uc3QgY29tcGFyZVRhcmdldCA9IGN1cnJlbnRUYXJnZXQgfHwgRU1QVFlfU0NST0xMX1RBUkdFVDtcbiAgICAgICAgaWYgKCFnZXRTY3JvbGxUYXJnZXQoKSB8fCBnZXRTY3JvbGxUYXJnZXQoKSA9PT0gY29tcGFyZVRhcmdldCkge1xuICAgICAgICAgICAgc2V0U2Nyb2xsVGFyZ2V0KGNvbXBhcmVUYXJnZXQpO1xuICAgICAgICAgICAgZm9yY2VTY3JvbGwobWVyZ2VkU2Nyb2xsTGVmdCwgc2Nyb2xsSGVhZGVyUmVmLmN1cnJlbnQpO1xuICAgICAgICAgICAgZm9yY2VTY3JvbGwobWVyZ2VkU2Nyb2xsTGVmdCwgc2Nyb2xsQm9keVJlZi5jdXJyZW50KTtcbiAgICAgICAgICAgIGZvcmNlU2Nyb2xsKG1lcmdlZFNjcm9sbExlZnQsIHNjcm9sbFN1bW1hcnlSZWYuY3VycmVudCk7XG4gICAgICAgICAgICBmb3JjZVNjcm9sbChtZXJnZWRTY3JvbGxMZWZ0LCAoX2EgPSBzdGlja3lSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnNldFNjcm9sbExlZnQpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG1lYXN1cmVUYXJnZXQgPSBjdXJyZW50VGFyZ2V0IHx8IHNjcm9sbEhlYWRlclJlZi5jdXJyZW50O1xuICAgICAgICBpZiAobWVhc3VyZVRhcmdldCkge1xuICAgICAgICAgICAgY29uc3Qgc2Nyb2xsV2lkdGggPSBcbiAgICAgICAgICAgIC8vIFNob3VsZCB1c2UgbWVyZ2VkU2Nyb2xsWCBpbiB2aXJ0dWFsIHRhYmxlKHVzZUludGVybmFsSG9va3MgJiYgdGFpbG9yID09PSB0cnVlKVxuICAgICAgICAgICAgdXNlSW50ZXJuYWxIb29rcyAmJiB0YWlsb3IgJiYgdHlwZW9mIG1lcmdlZFNjcm9sbFggPT09ICdudW1iZXInXG4gICAgICAgICAgICAgICAgPyBtZXJnZWRTY3JvbGxYXG4gICAgICAgICAgICAgICAgOiBtZWFzdXJlVGFyZ2V0LnNjcm9sbFdpZHRoO1xuICAgICAgICAgICAgY29uc3QgY2xpZW50V2lkdGggPSBtZWFzdXJlVGFyZ2V0LmNsaWVudFdpZHRoO1xuICAgICAgICAgICAgY29uc3QgYWJzU2Nyb2xsU3RhcnQgPSBNYXRoLmFicyhtZXJnZWRTY3JvbGxMZWZ0KTtcbiAgICAgICAgICAgIHNldFNjcm9sbEluZm8ob3JpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXh0U2Nyb2xsSW5mbyA9IFthYnNTY3JvbGxTdGFydCwgc2Nyb2xsV2lkdGggLSBjbGllbnRXaWR0aF07XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzRXF1YWwob3JpLCBuZXh0U2Nyb2xsSW5mbykgPyBvcmkgOiBuZXh0U2Nyb2xsSW5mbztcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgLy8gVGhlcmUgaXMgbm8gc3BhY2UgdG8gc2Nyb2xsXG4gICAgICAgICAgICBpZiAoc2Nyb2xsV2lkdGggPT09IGNsaWVudFdpZHRoKSB7XG4gICAgICAgICAgICAgICAgc2V0U2hhZG93U3RhcnQoZmFsc2UpO1xuICAgICAgICAgICAgICAgIHNldFNoYWRvd0VuZChmYWxzZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2V0U2hhZG93U3RhcnQoYWJzU2Nyb2xsU3RhcnQgPiAwKTtcbiAgICAgICAgICAgIHNldFNoYWRvd0VuZChhYnNTY3JvbGxTdGFydCA8IHNjcm9sbFdpZHRoIC0gY2xpZW50V2lkdGggLSAxKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IG9uQm9keVNjcm9sbCA9IHVzZUV2ZW50KChlKSA9PiB7XG4gICAgICAgIG9uSW50ZXJuYWxTY3JvbGwoZSk7XG4gICAgICAgIG9uU2Nyb2xsID09PSBudWxsIHx8IG9uU2Nyb2xsID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvblNjcm9sbChlKTtcbiAgICB9KTtcbiAgICBjb25zdCB0cmlnZ2VyT25TY3JvbGwgPSAoKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKGhvcml6b25TY3JvbGwgJiYgc2Nyb2xsQm9keVJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICBvbkludGVybmFsU2Nyb2xsKHtcbiAgICAgICAgICAgICAgICBjdXJyZW50VGFyZ2V0OiBnZXRET00oc2Nyb2xsQm9keVJlZi5jdXJyZW50KSxcbiAgICAgICAgICAgICAgICBzY3JvbGxMZWZ0OiAoX2EgPSBzY3JvbGxCb2R5UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5zY3JvbGxMZWZ0LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBzZXRTaGFkb3dTdGFydChmYWxzZSk7XG4gICAgICAgICAgICBzZXRTaGFkb3dFbmQoZmFsc2UpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBjb25zdCBvbkZ1bGxUYWJsZVJlc2l6ZSA9IChvZmZzZXRXaWR0aCkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYztcbiAgICAgICAgKF9hID0gc3RpY2t5UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jaGVja1Njcm9sbEJhclZpc2libGUoKTtcbiAgICAgICAgbGV0IG1lcmdlZFdpZHRoID0gKF9jID0gb2Zmc2V0V2lkdGggIT09IG51bGwgJiYgb2Zmc2V0V2lkdGggIT09IHZvaWQgMCA/IG9mZnNldFdpZHRoIDogKF9iID0gZnVsbFRhYmxlUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5vZmZzZXRXaWR0aCkgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogMDtcbiAgICAgICAgaWYgKHVzZUludGVybmFsSG9va3MgJiYgZ2V0Q29udGFpbmVyV2lkdGggJiYgZnVsbFRhYmxlUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIG1lcmdlZFdpZHRoID0gZ2V0Q29udGFpbmVyV2lkdGgoZnVsbFRhYmxlUmVmLmN1cnJlbnQsIG1lcmdlZFdpZHRoKSB8fCBtZXJnZWRXaWR0aDtcbiAgICAgICAgfVxuICAgICAgICBpZiAobWVyZ2VkV2lkdGggIT09IGNvbXBvbmVudFdpZHRoKSB7XG4gICAgICAgICAgICB0cmlnZ2VyT25TY3JvbGwoKTtcbiAgICAgICAgICAgIHNldENvbXBvbmVudFdpZHRoKG1lcmdlZFdpZHRoKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKGhvcml6b25TY3JvbGwpIHtcbiAgICAgICAgICAgIG9uRnVsbFRhYmxlUmVzaXplKCk7XG4gICAgICAgIH1cbiAgICB9LCBbaG9yaXpvblNjcm9sbF0pO1xuICAgIC8vIFN5bmMgc2Nyb2xsIGJhciB3aGVuIGluaXQgb3IgYGhvcml6b25TY3JvbGxgLCBgZGF0YWAgYW5kIGBjb2x1bW5zLmxlbmd0aGAgY2hhbmdlZFxuICAgIGNvbnN0IG1vdW50ZWQgPSBSZWFjdC51c2VSZWYoZmFsc2UpO1xuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIC8vIG9uRnVsbFRhYmxlUmVzaXplIHdpbGwgYmUgdHJpZ2dlciBvbmNlIHdoZW4gUmVzaXplT2JzZXJ2ZXIgaXMgbW91bnRlZFxuICAgICAgICAvLyBUaGlzIHdpbGwgcmVkdWNlIG9uZSBkdXBsaWNhdGVkIHRyaWdnZXJPblNjcm9sbCB0aW1lXG4gICAgICAgIGlmIChtb3VudGVkLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIHRyaWdnZXJPblNjcm9sbCgpO1xuICAgICAgICB9XG4gICAgfSwgW2hvcml6b25TY3JvbGwsIGRhdGEsIGNvbHVtbnMubGVuZ3RoXSk7XG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgbW91bnRlZC5jdXJyZW50ID0gdHJ1ZTtcbiAgICB9LCBbXSk7XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09IEVmZmVjdHMgPT09PT09PT09PT09PT09PT09PT09PVxuICAgIGNvbnN0IFtzY3JvbGxiYXJTaXplLCBzZXRTY3JvbGxiYXJTaXplXSA9IFJlYWN0LnVzZVN0YXRlKDApO1xuICAgIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmICghdGFpbG9yIHx8ICF1c2VJbnRlcm5hbEhvb2tzKSB7XG4gICAgICAgICAgICBpZiAoc2Nyb2xsQm9keVJlZi5jdXJyZW50IGluc3RhbmNlb2YgRWxlbWVudCkge1xuICAgICAgICAgICAgICAgIHNldFNjcm9sbGJhclNpemUoZ2V0VGFyZ2V0U2Nyb2xsQmFyU2l6ZShzY3JvbGxCb2R5UmVmLmN1cnJlbnQpLndpZHRoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHNldFNjcm9sbGJhclNpemUoZ2V0VGFyZ2V0U2Nyb2xsQmFyU2l6ZShzY3JvbGxCb2R5Q29udGFpbmVyUmVmLmN1cnJlbnQpLndpZHRoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sIFtdKTtcbiAgICAvLyA9PT09PT09PT09PT09PT09PT0gSU5URVJOQUwgSE9PS1MgPT09PT09PT09PT09PT09PT09XG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKHVzZUludGVybmFsSG9va3MgJiYgaW50ZXJuYWxSZWZzKSB7XG4gICAgICAgICAgICBpbnRlcm5hbFJlZnMuYm9keS5jdXJyZW50ID0gc2Nyb2xsQm9keVJlZi5jdXJyZW50O1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgLy8gPT0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVuZGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID09XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PSBSZW5kZXI6IEZ1bmMgPT09PT09PT09PT09PT09PT09PVxuICAgIGNvbnN0IHJlbmRlckZpeGVkSGVhZGVyVGFibGUgPSBSZWFjdC51c2VDYWxsYmFjayhmaXhlZEhvbGRlclBhc3NQcm9wcyA9PiAoX2pzeHMoX0ZyYWdtZW50LCB7IGNoaWxkcmVuOiBbX2pzeChIZWFkZXIsIE9iamVjdC5hc3NpZ24oe30sIGZpeGVkSG9sZGVyUGFzc1Byb3BzKSksIGZpeEZvb3RlciA9PT0gJ3RvcCcgJiYgX2pzeChGb290ZXIsIE9iamVjdC5hc3NpZ24oe30sIGZpeGVkSG9sZGVyUGFzc1Byb3BzLCB7IGNoaWxkcmVuOiBzdW1tYXJ5Tm9kZSB9KSldIH0pKSwgW2ZpeEZvb3Rlciwgc3VtbWFyeU5vZGVdKTtcbiAgICBjb25zdCByZW5kZXJGaXhlZEZvb3RlclRhYmxlID0gUmVhY3QudXNlQ2FsbGJhY2soZml4ZWRIb2xkZXJQYXNzUHJvcHMgPT4gX2pzeChGb290ZXIsIE9iamVjdC5hc3NpZ24oe30sIGZpeGVkSG9sZGVyUGFzc1Byb3BzLCB7IGNoaWxkcmVuOiBzdW1tYXJ5Tm9kZSB9KSksIFtzdW1tYXJ5Tm9kZV0pO1xuICAgIC8vID09PT09PT09PT09PT09PT09PT0gUmVuZGVyOiBOb2RlID09PT09PT09PT09PT09PT09PT1cbiAgICBjb25zdCBUYWJsZUNvbXBvbmVudCA9IGdldENvbXBvbmVudChbJ3RhYmxlJ10sICd0YWJsZScpO1xuICAgIC8vIFRhYmxlIGxheW91dFxuICAgIGNvbnN0IG1lcmdlZFRhYmxlTGF5b3V0ID0gUmVhY3QudXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGlmICh0YWJsZUxheW91dCkge1xuICAgICAgICAgICAgcmV0dXJuIHRhYmxlTGF5b3V0O1xuICAgICAgICB9XG4gICAgICAgIC8vIFdoZW4gc2Nyb2xsLnggaXMgbWF4LWNvbnRlbnQsIG5vIG5lZWQgdG8gZml4IHRhYmxlIGxheW91dFxuICAgICAgICAvLyBpdCdzIHdpZHRoIHNob3VsZCBzdHJldGNoIG91dCB0byBmaXQgY29udGVudFxuICAgICAgICBpZiAoZml4Q29sdW1uKSB7XG4gICAgICAgICAgICByZXR1cm4gbWVyZ2VkU2Nyb2xsWCA9PT0gJ21heC1jb250ZW50JyA/ICdhdXRvJyA6ICdmaXhlZCc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZpeEhlYWRlciB8fCBpc1N0aWNreSB8fCBmbGF0dGVuQ29sdW1ucy5zb21lKCh7IGVsbGlwc2lzIH0pID0+IGVsbGlwc2lzKSkge1xuICAgICAgICAgICAgcmV0dXJuICdmaXhlZCc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICdhdXRvJztcbiAgICB9LCBbZml4SGVhZGVyLCBmaXhDb2x1bW4sIGZsYXR0ZW5Db2x1bW5zLCB0YWJsZUxheW91dCwgaXNTdGlja3ldKTtcbiAgICBsZXQgZ3JvdXBUYWJsZU5vZGU7XG4gICAgLy8gSGVhZGVyIHByb3BzXG4gICAgY29uc3QgaGVhZGVyUHJvcHMgPSB7XG4gICAgICAgIGNvbFdpZHRocyxcbiAgICAgICAgY29sdW1Db3VudDogZmxhdHRlbkNvbHVtbnMubGVuZ3RoLFxuICAgICAgICBzdGlja3lPZmZzZXRzLFxuICAgICAgICBvbkhlYWRlclJvdyxcbiAgICAgICAgZml4SGVhZGVyLFxuICAgICAgICBzY3JvbGwsXG4gICAgfTtcbiAgICAvLyBFbXB0eVxuICAgIGNvbnN0IGVtcHR5Tm9kZSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBpZiAoaGFzRGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBlbXB0eVRleHQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHJldHVybiBlbXB0eVRleHQoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZW1wdHlUZXh0O1xuICAgIH0sIFtoYXNEYXRhLCBlbXB0eVRleHRdKTtcbiAgICAvLyBCb2R5XG4gICAgY29uc3QgYm9keVRhYmxlID0gKF9qc3goQm9keSwgeyBkYXRhOiBtZXJnZWREYXRhLCBtZWFzdXJlQ29sdW1uV2lkdGg6IGZpeEhlYWRlciB8fCBob3Jpem9uU2Nyb2xsIHx8IGlzU3RpY2t5IH0pKTtcbiAgICBjb25zdCBib2R5Q29sR3JvdXAgPSAoX2pzeChDb2xHcm91cCwgeyBjb2xXaWR0aHM6IGZsYXR0ZW5Db2x1bW5zLm1hcCgoeyB3aWR0aCB9KSA9PiB3aWR0aCksIGNvbHVtbnM6IGZsYXR0ZW5Db2x1bW5zIH0pKTtcbiAgICBjb25zdCBjYXB0aW9uRWxlbWVudCA9IGNhcHRpb24gIT09IG51bGwgJiYgY2FwdGlvbiAhPT0gdW5kZWZpbmVkID8gKF9qc3goXCJjYXB0aW9uXCIsIHsgY2xhc3NOYW1lOiBgJHtwcmVmaXhDbHN9LWNhcHRpb25gLCBjaGlsZHJlbjogY2FwdGlvbiB9KSkgOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgZGF0YVByb3BzID0gcGlja0F0dHJzKHByb3BzLCB7IGRhdGE6IHRydWUgfSk7XG4gICAgY29uc3QgYXJpYVByb3BzID0gcGlja0F0dHJzKHByb3BzLCB7IGFyaWE6IHRydWUgfSk7XG4gICAgaWYgKGZpeEhlYWRlciB8fCBpc1N0aWNreSkge1xuICAgICAgICAvLyA+Pj4+Pj4gRml4ZWQgSGVhZGVyXG4gICAgICAgIGxldCBib2R5Q29udGVudDtcbiAgICAgICAgaWYgKHR5cGVvZiBjdXN0b21pemVTY3JvbGxCb2R5ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBib2R5Q29udGVudCA9IGN1c3RvbWl6ZVNjcm9sbEJvZHkobWVyZ2VkRGF0YSwge1xuICAgICAgICAgICAgICAgIHNjcm9sbGJhclNpemUsXG4gICAgICAgICAgICAgICAgcmVmOiBzY3JvbGxCb2R5UmVmLFxuICAgICAgICAgICAgICAgIG9uU2Nyb2xsOiBvbkludGVybmFsU2Nyb2xsLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBoZWFkZXJQcm9wcy5jb2xXaWR0aHMgPSBmbGF0dGVuQ29sdW1ucy5tYXAoKHsgd2lkdGggfSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb2xXaWR0aCA9IGluZGV4ID09PSBmbGF0dGVuQ29sdW1ucy5sZW5ndGggLSAxID8gd2lkdGggLSBzY3JvbGxiYXJTaXplIDogd2lkdGg7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjb2xXaWR0aCA9PT0gJ251bWJlcicgJiYgIU51bWJlci5pc05hTihjb2xXaWR0aCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbFdpZHRoO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICB3YXJuaW5nKHByb3BzLmNvbHVtbnMubGVuZ3RoID09PSAwLCAnV2hlbiB1c2UgYGNvbXBvbmVudHMuYm9keWAgd2l0aCByZW5kZXIgcHJvcHMuIEVhY2ggY29sdW1uIHNob3VsZCBoYXZlIGEgZml4ZWQgYHdpZHRoYCB2YWx1ZS4nKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGJvZHlDb250ZW50ID0gKF9qc3goXCJkaXZcIiwgeyBzdHlsZTogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBzY3JvbGxYU3R5bGUpLCBzY3JvbGxZU3R5bGUpLCBvblNjcm9sbDogb25Cb2R5U2Nyb2xsLCByZWY6IHNjcm9sbEJvZHlSZWYsIGNsYXNzTmFtZTogYCR7cHJlZml4Q2xzfS1ib2R5YCwgY2hpbGRyZW46IF9qc3hzKFRhYmxlQ29tcG9uZW50LCBPYmplY3QuYXNzaWduKHsgc3R5bGU6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgc2Nyb2xsVGFibGVTdHlsZSksIHsgdGFibGVMYXlvdXQ6IG1lcmdlZFRhYmxlTGF5b3V0IH0pIH0sIGFyaWFQcm9wcywgeyBjaGlsZHJlbjogW2NhcHRpb25FbGVtZW50LCBib2R5Q29sR3JvdXAsIGJvZHlUYWJsZSwgIWZpeEZvb3RlciAmJiBzdW1tYXJ5Tm9kZSAmJiAoX2pzeChGb290ZXIsIHsgc3RpY2t5T2Zmc2V0czogc3RpY2t5T2Zmc2V0cywgZmxhdHRlbkNvbHVtbnM6IGZsYXR0ZW5Db2x1bW5zLCBjaGlsZHJlbjogc3VtbWFyeU5vZGUgfSkpXSB9KSkgfSkpO1xuICAgICAgICB9XG4gICAgICAgIC8vIEZpeGVkIGhvbGRlciBzaGFyZSB0aGUgcHJvcHNcbiAgICAgICAgY29uc3QgZml4ZWRIb2xkZXJQcm9wcyA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHsgbm9EYXRhOiAhbWVyZ2VkRGF0YS5sZW5ndGgsIG1heENvbnRlbnRTY3JvbGw6IGhvcml6b25TY3JvbGwgJiYgbWVyZ2VkU2Nyb2xsWCA9PT0gJ21heC1jb250ZW50JyB9LCBoZWFkZXJQcm9wcyksIGNvbHVtbkNvbnRleHQpLCB7IGRpcmVjdGlvbixcbiAgICAgICAgICAgIHN0aWNreUNsYXNzTmFtZSwgc2Nyb2xsWDogbWVyZ2VkU2Nyb2xsWCwgdGFibGVMYXlvdXQ6IG1lcmdlZFRhYmxlTGF5b3V0LCBvblNjcm9sbDogb25JbnRlcm5hbFNjcm9sbCB9KTtcbiAgICAgICAgZ3JvdXBUYWJsZU5vZGUgPSAoX2pzeHMoX0ZyYWdtZW50LCB7IGNoaWxkcmVuOiBbc2hvd0hlYWRlciAhPT0gZmFsc2UgJiYgKF9qc3goRml4ZWRIb2xkZXIsIE9iamVjdC5hc3NpZ24oe30sIGZpeGVkSG9sZGVyUHJvcHMsIHsgc3RpY2t5VG9wT2Zmc2V0OiBvZmZzZXRIZWFkZXIsIGNsYXNzTmFtZTogYCR7cHJlZml4Q2xzfS1oZWFkZXJgLCByZWY6IHNjcm9sbEhlYWRlclJlZiwgY29sR3JvdXA6IGJvZHlDb2xHcm91cCwgY2hpbGRyZW46IHJlbmRlckZpeGVkSGVhZGVyVGFibGUgfSkpKSwgYm9keUNvbnRlbnQsIGZpeEZvb3RlciAmJiBmaXhGb290ZXIgIT09ICd0b3AnICYmIChfanN4KEZpeGVkSG9sZGVyLCBPYmplY3QuYXNzaWduKHt9LCBmaXhlZEhvbGRlclByb3BzLCB7IHN0aWNreUJvdHRvbU9mZnNldDogb2Zmc2V0U3VtbWFyeSwgY2xhc3NOYW1lOiBgJHtwcmVmaXhDbHN9LXN1bW1hcnlgLCByZWY6IHNjcm9sbFN1bW1hcnlSZWYsIGNvbEdyb3VwOiBib2R5Q29sR3JvdXAsIGNoaWxkcmVuOiByZW5kZXJGaXhlZEZvb3RlclRhYmxlIH0pKSksIGlzU3RpY2t5ICYmIHNjcm9sbEJvZHlSZWYuY3VycmVudCAmJiBzY3JvbGxCb2R5UmVmLmN1cnJlbnQgaW5zdGFuY2VvZiBFbGVtZW50ICYmIChfanN4KFN0aWNreVNjcm9sbEJhciwgeyByZWY6IHN0aWNreVJlZiwgb2Zmc2V0U2Nyb2xsOiBvZmZzZXRTY3JvbGwsIHNjcm9sbEJvZHlSZWY6IHNjcm9sbEJvZHlSZWYsIG9uU2Nyb2xsOiBvbkludGVybmFsU2Nyb2xsLCBjb250YWluZXI6IGNvbnRhaW5lciwgZGlyZWN0aW9uOiBkaXJlY3Rpb24gfSkpXSB9KSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICAvLyA+Pj4+Pj4gVW5pcXVlIHRhYmxlXG4gICAgICAgIGdyb3VwVGFibGVOb2RlID0gKF9qc3goXCJkaXZcIiwgeyBzdHlsZTogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHNjcm9sbFhTdHlsZSksIHNjcm9sbFlTdHlsZSksIHN0eWxlcyA9PT0gbnVsbCB8fCBzdHlsZXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHN0eWxlcy5jb250ZW50KSwgY2xhc3NOYW1lOiBjbHN4KGAke3ByZWZpeENsc30tY29udGVudGAsIGNsYXNzTmFtZXMgPT09IG51bGwgfHwgY2xhc3NOYW1lcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogY2xhc3NOYW1lcy5jb250ZW50KSwgb25TY3JvbGw6IG9uSW50ZXJuYWxTY3JvbGwsIHJlZjogc2Nyb2xsQm9keVJlZiwgY2hpbGRyZW46IF9qc3hzKFRhYmxlQ29tcG9uZW50LCBPYmplY3QuYXNzaWduKHsgc3R5bGU6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgc2Nyb2xsVGFibGVTdHlsZSksIHsgdGFibGVMYXlvdXQ6IG1lcmdlZFRhYmxlTGF5b3V0IH0pIH0sIGFyaWFQcm9wcywgeyBjaGlsZHJlbjogW2NhcHRpb25FbGVtZW50LCBib2R5Q29sR3JvdXAsIHNob3dIZWFkZXIgIT09IGZhbHNlICYmIF9qc3goSGVhZGVyLCBPYmplY3QuYXNzaWduKHt9LCBoZWFkZXJQcm9wcywgY29sdW1uQ29udGV4dCkpLCBib2R5VGFibGUsIHN1bW1hcnlOb2RlICYmIChfanN4KEZvb3RlciwgeyBzdGlja3lPZmZzZXRzOiBzdGlja3lPZmZzZXRzLCBmbGF0dGVuQ29sdW1uczogZmxhdHRlbkNvbHVtbnMsIGNoaWxkcmVuOiBzdW1tYXJ5Tm9kZSB9KSldIH0pKSB9KSk7XG4gICAgfVxuICAgIGNvbnN0IHRhYmxlU3R5bGUgPSBPYmplY3QuYXNzaWduKHt9LCBzdHlsZSk7XG4gICAgLy8gQWRkIGNzcyB2YXIgZm9yIHN0aWNreSBoZWFkZXIgYHpJbmRleGAgY2FsY1xuICAgIGlmIChpc1N0aWNreSkge1xuICAgICAgICB0YWJsZVN0eWxlWyctLWNvbHVtbnMtY291bnQnXSA9IGZsYXR0ZW5Db2x1bW5zLmxlbmd0aDtcbiAgICB9XG4gICAgbGV0IGZ1bGxUYWJsZSA9IChfanN4cyhcImRpdlwiLCBPYmplY3QuYXNzaWduKHsgY2xhc3NOYW1lOiBjbHN4KHByZWZpeENscywgY2xhc3NOYW1lLCB7XG4gICAgICAgICAgICBbYCR7cHJlZml4Q2xzfS1ydGxgXTogZGlyZWN0aW9uID09PSAncnRsJyxcbiAgICAgICAgICAgIFtgJHtwcmVmaXhDbHN9LWZpeC1zdGFydC1zaGFkb3dgXTogaG9yaXpvblNjcm9sbCxcbiAgICAgICAgICAgIFtgJHtwcmVmaXhDbHN9LWZpeC1lbmQtc2hhZG93YF06IGhvcml6b25TY3JvbGwsXG4gICAgICAgICAgICBbYCR7cHJlZml4Q2xzfS1maXgtc3RhcnQtc2hhZG93LXNob3dgXTogaG9yaXpvblNjcm9sbCAmJiBzaGFkb3dTdGFydCxcbiAgICAgICAgICAgIFtgJHtwcmVmaXhDbHN9LWZpeC1lbmQtc2hhZG93LXNob3dgXTogaG9yaXpvblNjcm9sbCAmJiBzaGFkb3dFbmQsXG4gICAgICAgICAgICBbYCR7cHJlZml4Q2xzfS1sYXlvdXQtZml4ZWRgXTogdGFibGVMYXlvdXQgPT09ICdmaXhlZCcsXG4gICAgICAgICAgICBbYCR7cHJlZml4Q2xzfS1maXhlZC1oZWFkZXJgXTogZml4SGVhZGVyLFxuICAgICAgICAgICAgLyoqIE5vIHVzZWQgYnV0IGZvciBjb21wYXRpYmxlICovXG4gICAgICAgICAgICBbYCR7cHJlZml4Q2xzfS1maXhlZC1jb2x1bW5gXTogZml4Q29sdW1uLFxuICAgICAgICAgICAgW2Ake3ByZWZpeENsc30tc2Nyb2xsLWhvcml6b250YWxgXTogaG9yaXpvblNjcm9sbCxcbiAgICAgICAgICAgIFtgJHtwcmVmaXhDbHN9LWhhcy1maXgtc3RhcnRgXTogKF9hID0gZmxhdHRlbkNvbHVtbnNbMF0pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5maXhlZCxcbiAgICAgICAgICAgIFtgJHtwcmVmaXhDbHN9LWhhcy1maXgtZW5kYF06ICgoX2IgPSBmbGF0dGVuQ29sdW1uc1tmbGF0dGVuQ29sdW1ucy5sZW5ndGggLSAxXSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmZpeGVkKSA9PT0gJ2VuZCcsXG4gICAgICAgIH0pLCBzdHlsZTogdGFibGVTdHlsZSwgaWQ6IGlkLCByZWY6IGZ1bGxUYWJsZVJlZiB9LCBkYXRhUHJvcHMsIHsgY2hpbGRyZW46IFt0aXRsZSAmJiAoX2pzeChQYW5lbCwgeyBjbGFzc05hbWU6IGNsc3goYCR7cHJlZml4Q2xzfS10aXRsZWAsIGNsYXNzTmFtZXMgPT09IG51bGwgfHwgY2xhc3NOYW1lcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogY2xhc3NOYW1lcy50aXRsZSksIHN0eWxlOiBzdHlsZXMgPT09IG51bGwgfHwgc3R5bGVzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzdHlsZXMudGl0bGUsIGNoaWxkcmVuOiB0aXRsZShtZXJnZWREYXRhKSB9KSksIF9qc3goXCJkaXZcIiwgeyByZWY6IHNjcm9sbEJvZHlDb250YWluZXJSZWYsIGNsYXNzTmFtZTogY2xzeChgJHtwcmVmaXhDbHN9LWNvbnRhaW5lcmAsIGNsYXNzTmFtZXMgPT09IG51bGwgfHwgY2xhc3NOYW1lcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogY2xhc3NOYW1lcy5zZWN0aW9uKSwgc3R5bGU6IHN0eWxlcyA9PT0gbnVsbCB8fCBzdHlsZXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHN0eWxlcy5zZWN0aW9uLCBjaGlsZHJlbjogZ3JvdXBUYWJsZU5vZGUgfSksIGZvb3RlciAmJiAoX2pzeChQYW5lbCwgeyBjbGFzc05hbWU6IGNsc3goYCR7cHJlZml4Q2xzfS1mb290ZXJgLCBjbGFzc05hbWVzID09PSBudWxsIHx8IGNsYXNzTmFtZXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNsYXNzTmFtZXMuZm9vdGVyKSwgc3R5bGU6IHN0eWxlcyA9PT0gbnVsbCB8fCBzdHlsZXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHN0eWxlcy5mb290ZXIsIGNoaWxkcmVuOiBmb290ZXIobWVyZ2VkRGF0YSkgfSkpXSB9KSkpO1xuICAgIGlmIChob3Jpem9uU2Nyb2xsKSB7XG4gICAgICAgIGZ1bGxUYWJsZSA9IChfanN4KFJlc2l6ZU9ic2VydmVyLCB7IG9uUmVzaXplOiAoeyBvZmZzZXRXaWR0aCB9KSA9PiBvbkZ1bGxUYWJsZVJlc2l6ZShvZmZzZXRXaWR0aCksIGNoaWxkcmVuOiBmdWxsVGFibGUgfSkpO1xuICAgIH1cbiAgICBjb25zdCBmaXhlZEluZm9MaXN0ID0gdXNlRml4ZWRJbmZvKGZsYXR0ZW5Db2x1bW5zLCBzdGlja3lPZmZzZXRzKTtcbiAgICBjb25zdCBUYWJsZUNvbnRleHRWYWx1ZSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gKHtcbiAgICAgICAgLy8gU2Nyb2xsXG4gICAgICAgIHNjcm9sbFg6IG1lcmdlZFNjcm9sbFgsXG4gICAgICAgIHNjcm9sbEluZm8sXG4gICAgICAgIGNsYXNzTmFtZXMsXG4gICAgICAgIHN0eWxlcyxcbiAgICAgICAgLy8gVGFibGVcbiAgICAgICAgcHJlZml4Q2xzLFxuICAgICAgICBnZXRDb21wb25lbnQsXG4gICAgICAgIHNjcm9sbGJhclNpemUsXG4gICAgICAgIGRpcmVjdGlvbixcbiAgICAgICAgZml4ZWRJbmZvTGlzdCxcbiAgICAgICAgaXNTdGlja3ksXG4gICAgICAgIGNvbXBvbmVudFdpZHRoLFxuICAgICAgICBmaXhIZWFkZXIsXG4gICAgICAgIGZpeENvbHVtbixcbiAgICAgICAgaG9yaXpvblNjcm9sbCxcbiAgICAgICAgLy8gQm9keVxuICAgICAgICB0YWJsZUxheW91dDogbWVyZ2VkVGFibGVMYXlvdXQsXG4gICAgICAgIHJvd0NsYXNzTmFtZSxcbiAgICAgICAgZXhwYW5kZWRSb3dDbGFzc05hbWU6IGV4cGFuZGFibGVDb25maWcuZXhwYW5kZWRSb3dDbGFzc05hbWUsXG4gICAgICAgIGV4cGFuZEljb246IG1lcmdlZEV4cGFuZEljb24sXG4gICAgICAgIGV4cGFuZGFibGVUeXBlLFxuICAgICAgICBleHBhbmRSb3dCeUNsaWNrOiBleHBhbmRhYmxlQ29uZmlnLmV4cGFuZFJvd0J5Q2xpY2ssXG4gICAgICAgIGV4cGFuZGVkUm93UmVuZGVyOiBleHBhbmRhYmxlQ29uZmlnLmV4cGFuZGVkUm93UmVuZGVyLFxuICAgICAgICBleHBhbmRlZFJvd09mZnNldDogZXhwYW5kYWJsZUNvbmZpZy5leHBhbmRlZFJvd09mZnNldCxcbiAgICAgICAgb25UcmlnZ2VyRXhwYW5kLFxuICAgICAgICBleHBhbmRJY29uQ29sdW1uSW5kZXg6IGV4cGFuZGFibGVDb25maWcuZXhwYW5kSWNvbkNvbHVtbkluZGV4LFxuICAgICAgICBpbmRlbnRTaXplOiBleHBhbmRhYmxlQ29uZmlnLmluZGVudFNpemUsXG4gICAgICAgIGFsbENvbHVtbnNGaXhlZExlZnQ6IGZsYXR0ZW5Db2x1bW5zLmV2ZXJ5KGNvbCA9PiBjb2wuZml4ZWQgPT09ICdzdGFydCcpLFxuICAgICAgICBlbXB0eU5vZGUsXG4gICAgICAgIC8vIENvbHVtblxuICAgICAgICBjb2x1bW5zLFxuICAgICAgICBmbGF0dGVuQ29sdW1ucyxcbiAgICAgICAgb25Db2x1bW5SZXNpemUsXG4gICAgICAgIGNvbFdpZHRocyxcbiAgICAgICAgLy8gUm93XG4gICAgICAgIGhvdmVyU3RhcnRSb3c6IHN0YXJ0Um93LFxuICAgICAgICBob3ZlckVuZFJvdzogZW5kUm93LFxuICAgICAgICBvbkhvdmVyLFxuICAgICAgICByb3dFeHBhbmRhYmxlOiBleHBhbmRhYmxlQ29uZmlnLnJvd0V4cGFuZGFibGUsXG4gICAgICAgIG9uUm93LFxuICAgICAgICBnZXRSb3dLZXksXG4gICAgICAgIGV4cGFuZGVkS2V5czogbWVyZ2VkRXhwYW5kZWRLZXlzLFxuICAgICAgICBjaGlsZHJlbkNvbHVtbk5hbWU6IG1lcmdlZENoaWxkcmVuQ29sdW1uTmFtZSxcbiAgICAgICAgcm93SG92ZXJhYmxlLFxuICAgICAgICAvLyBNZWFzdXJlIFJvd1xuICAgICAgICBtZWFzdXJlUm93UmVuZGVyLFxuICAgIH0pLCBbXG4gICAgICAgIC8vIFNjcm9sbFxuICAgICAgICBtZXJnZWRTY3JvbGxYLFxuICAgICAgICBzY3JvbGxJbmZvLFxuICAgICAgICBjbGFzc05hbWVzLFxuICAgICAgICBzdHlsZXMsXG4gICAgICAgIC8vIFRhYmxlXG4gICAgICAgIHByZWZpeENscyxcbiAgICAgICAgZ2V0Q29tcG9uZW50LFxuICAgICAgICBzY3JvbGxiYXJTaXplLFxuICAgICAgICBkaXJlY3Rpb24sXG4gICAgICAgIGZpeGVkSW5mb0xpc3QsXG4gICAgICAgIGlzU3RpY2t5LFxuICAgICAgICBjb21wb25lbnRXaWR0aCxcbiAgICAgICAgZml4SGVhZGVyLFxuICAgICAgICBmaXhDb2x1bW4sXG4gICAgICAgIGhvcml6b25TY3JvbGwsXG4gICAgICAgIC8vIEJvZHlcbiAgICAgICAgbWVyZ2VkVGFibGVMYXlvdXQsXG4gICAgICAgIHJvd0NsYXNzTmFtZSxcbiAgICAgICAgZXhwYW5kYWJsZUNvbmZpZy5leHBhbmRlZFJvd0NsYXNzTmFtZSxcbiAgICAgICAgbWVyZ2VkRXhwYW5kSWNvbixcbiAgICAgICAgZXhwYW5kYWJsZVR5cGUsXG4gICAgICAgIGV4cGFuZGFibGVDb25maWcuZXhwYW5kUm93QnlDbGljayxcbiAgICAgICAgZXhwYW5kYWJsZUNvbmZpZy5leHBhbmRlZFJvd1JlbmRlcixcbiAgICAgICAgZXhwYW5kYWJsZUNvbmZpZy5leHBhbmRlZFJvd09mZnNldCxcbiAgICAgICAgb25UcmlnZ2VyRXhwYW5kLFxuICAgICAgICBleHBhbmRhYmxlQ29uZmlnLmV4cGFuZEljb25Db2x1bW5JbmRleCxcbiAgICAgICAgZXhwYW5kYWJsZUNvbmZpZy5pbmRlbnRTaXplLFxuICAgICAgICBlbXB0eU5vZGUsXG4gICAgICAgIC8vIENvbHVtblxuICAgICAgICBjb2x1bW5zLFxuICAgICAgICBmbGF0dGVuQ29sdW1ucyxcbiAgICAgICAgb25Db2x1bW5SZXNpemUsXG4gICAgICAgIGNvbFdpZHRocyxcbiAgICAgICAgLy8gUm93XG4gICAgICAgIHN0YXJ0Um93LFxuICAgICAgICBlbmRSb3csXG4gICAgICAgIG9uSG92ZXIsXG4gICAgICAgIGV4cGFuZGFibGVDb25maWcucm93RXhwYW5kYWJsZSxcbiAgICAgICAgb25Sb3csXG4gICAgICAgIGdldFJvd0tleSxcbiAgICAgICAgbWVyZ2VkRXhwYW5kZWRLZXlzLFxuICAgICAgICBtZXJnZWRDaGlsZHJlbkNvbHVtbk5hbWUsXG4gICAgICAgIHJvd0hvdmVyYWJsZSxcbiAgICAgICAgbWVhc3VyZVJvd1JlbmRlcixcbiAgICBdKTtcbiAgICByZXR1cm4gX2pzeChUYWJsZUNvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IFRhYmxlQ29udGV4dFZhbHVlLCBjaGlsZHJlbjogZnVsbFRhYmxlIH0pO1xufTtcbmNvbnN0IFJlZlRhYmxlID0gUmVhY3QuZm9yd2FyZFJlZihUYWJsZSk7XG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIFJlZlRhYmxlLmRpc3BsYXlOYW1lID0gJ1RhYmxlJztcbn1cbmV4cG9ydCBjb25zdCBnZW5UYWJsZSA9IChzaG91bGRUcmlnZ2VyUmVuZGVyKSA9PiB7XG4gICAgcmV0dXJuIG1ha2VJbW11dGFibGUoUmVmVGFibGUsIHNob3VsZFRyaWdnZXJSZW5kZXIpO1xufTtcbmNvbnN0IEltbXV0YWJsZVRhYmxlID0gZ2VuVGFibGUoKTtcbkltbXV0YWJsZVRhYmxlLkVYUEFORF9DT0xVTU4gPSBFWFBBTkRfQ09MVU1OO1xuSW1tdXRhYmxlVGFibGUuSU5URVJOQUxfSE9PS1MgPSBJTlRFUk5BTF9IT09LUztcbkltbXV0YWJsZVRhYmxlLkNvbHVtbiA9IENvbHVtbjtcbkltbXV0YWJsZVRhYmxlLkNvbHVtbkdyb3VwID0gQ29sdW1uR3JvdXA7XG5JbW11dGFibGVUYWJsZS5TdW1tYXJ5ID0gRm9vdGVyQ29tcG9uZW50cztcbmV4cG9ydCBkZWZhdWx0IEltbXV0YWJsZVRhYmxlOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
695
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvVGFibGUvaW50ZXJuYWwva2VybmVsL1RhYmxlLmpzIiwiY29tcG9uZW50cy9UYWJsZS9pbnRlcm5hbC9zcmMvY29tcG9uZW50cy9UYWJsZS9pbnRlcm5hbC9rZXJuZWwvVGFibGUudHN4Il0sIm5hbWVzIjpbIl9qc3hSdW50aW1lIiwicmVxdWlyZSIsIl9jbHN4MiIsIl9SZXNpemVPYnNlcnZlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfZ2V0U2Nyb2xsQmFyU2l6ZSIsIl91c2VFdmVudENhbGxiYWNrIiwiX3BpY2tBdHRycyIsIl9nZXQiLCJfd2FybmluZyIsIlJlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfQm9keSIsIl9Db2xHcm91cCIsIl9jb25zdGFudCIsIl9UYWJsZUNvbnRleHQiLCJfRml4ZWRIb2xkZXIiLCJfRm9vdGVyIiwiX1N1bW1hcnkiLCJfSGVhZGVyIiwiX3VzZUNvbHVtbnMzIiwiX3VzZUV4cGFuZDMiLCJfdXNlRml4ZWRJbmZvIiwiX3VzZUZyYW1lIiwiX3VzZUhvdmVyMyIsIl91c2VTdGlja3kyIiwiX3VzZVN0aWNreU9mZnNldHMiLCJfUGFuZWwiLCJfc3RpY2t5U2Nyb2xsQmFyIiwiX0NvbHVtbiIsIl9Db2x1bW5Hcm91cCIsIl92YWx1ZVV0aWwiLCJfcmVhY3RVdGlsIiwiX2lzRXF1YWwiLCJfdXNlTGF5b3V0RWZmZWN0IiwiZSIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJfX2VzTW9kdWxlIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiX3R5cGVvZiIsImhhcyIsImdldCIsInNldCIsIl90IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJERUZBVUxUX1BSRUZJWCIsImV4cG9ydHMiLCJFTVBUWV9EQVRBIiwiRU1QVFlfU0NST0xMX1RBUkdFVCIsImRlZmF1bHRFbXB0eSIsIlRhYmxlIiwidGFibGVQcm9wcyIsInJlZiIsIl9jbHN4IiwiX2EiLCJfYiIsInByb3BzIiwiYXNzaWduIiwicm93S2V5IiwicHJlZml4Q2xzIiwiZW1wdHlUZXh0IiwiY2xhc3NOYW1lIiwicm93Q2xhc3NOYW1lIiwic3R5bGUiLCJjbGFzc05hbWVzIiwic3R5bGVzIiwiZGF0YSIsInNjcm9sbCIsInRhYmxlTGF5b3V0IiwiZGlyZWN0aW9uIiwidGl0bGUiLCJmb290ZXIiLCJzdW1tYXJ5IiwiY2FwdGlvbiIsImlkIiwic2hvd0hlYWRlciIsImNvbXBvbmVudHMiLCJvblJvdyIsIm9uSGVhZGVyUm93IiwibWVhc3VyZVJvd1JlbmRlciIsIm9uU2Nyb2xsIiwiaW50ZXJuYWxIb29rcyIsInRyYW5zZm9ybUNvbHVtbnMiLCJpbnRlcm5hbFJlZnMiLCJ0YWlsb3IiLCJnZXRDb250YWluZXJXaWR0aCIsInN0aWNreSIsIl9wcm9wcyRyb3dIb3ZlcmFibGUiLCJyb3dIb3ZlcmFibGUiLCJtZXJnZWREYXRhIiwiaGFzRGF0YSIsImxlbmd0aCIsInVzZUludGVybmFsSG9va3MiLCJJTlRFUk5BTF9IT09LUyIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsImZvckVhY2giLCJuYW1lIiwid2FybmluZyIsInVuZGVmaW5lZCIsImNvbmNhdCIsImdldENvbXBvbmVudCIsInVzZUNhbGxiYWNrIiwicGF0aCIsImRlZmF1bHRDb21wb25lbnQiLCJnZXRWYWx1ZSIsImdldFJvd0tleSIsInVzZU1lbW8iLCJyZWNvcmQiLCJrZXkiLCJjdXN0b21pemVTY3JvbGxCb2R5IiwiX3VzZUhvdmVyIiwidXNlSG92ZXIiLCJfdXNlSG92ZXIyIiwiX3NsaWNlZFRvQXJyYXkyIiwic3RhcnRSb3ciLCJlbmRSb3ciLCJvbkhvdmVyIiwiX3VzZUV4cGFuZCIsInVzZUV4cGFuZCIsIl91c2VFeHBhbmQyIiwiZXhwYW5kYWJsZUNvbmZpZyIsImV4cGFuZGFibGVUeXBlIiwibWVyZ2VkRXhwYW5kZWRLZXlzIiwibWVyZ2VkRXhwYW5kSWNvbiIsIm1lcmdlZENoaWxkcmVuQ29sdW1uTmFtZSIsIm9uVHJpZ2dlckV4cGFuZCIsInNjcm9sbFgiLCJ4IiwiX1JlYWN0JHVzZVN0YXRlIiwidXNlU3RhdGUiLCJfUmVhY3QkdXNlU3RhdGUyIiwiY29tcG9uZW50V2lkdGgiLCJzZXRDb21wb25lbnRXaWR0aCIsIl91c2VDb2x1bW5zIiwidXNlQ29sdW1ucyIsImV4cGFuZGFibGUiLCJleHBhbmRlZFJvd1JlbmRlciIsImNvbHVtblRpdGxlIiwiZXhwYW5kZWRLZXlzIiwiZXhwYW5kSWNvbiIsImV4cGFuZEljb25Db2x1bW5JbmRleCIsInNjcm9sbFdpZHRoIiwiY2xpZW50V2lkdGgiLCJfdXNlQ29sdW1uczIiLCJjb2x1bW5zIiwiZmxhdHRlbkNvbHVtbnMiLCJmbGF0dGVuU2Nyb2xsWCIsIm1lcmdlZFNjcm9sbFgiLCJjb2x1bW5Db250ZXh0IiwiZnVsbFRhYmxlUmVmIiwidXNlUmVmIiwic2Nyb2xsSGVhZGVyUmVmIiwic2Nyb2xsQm9keVJlZiIsInNjcm9sbEJvZHlDb250YWluZXJSZWYiLCJ1c2VJbXBlcmF0aXZlSGFuZGxlIiwibmF0aXZlRWxlbWVudCIsImN1cnJlbnQiLCJzY3JvbGxUbyIsImNvbmZpZyIsIkhUTUxFbGVtZW50IiwiaW5kZXgiLCJ0b3AiLCJvZmZzZXQiLCJ2YWxpZE51bWJlclZhbHVlIiwibWVyZ2VkS2V5IiwidGFyZ2V0RWxlbWVudCIsInF1ZXJ5U2VsZWN0b3IiLCJzY3JvbGxJbnRvVmlldyIsImVsZW1lbnRUb3AiLCJvZmZzZXRUb3AiLCJzY3JvbGxTdW1tYXJ5UmVmIiwiX1JlYWN0JHVzZVN0YXRlMyIsIl9SZWFjdCR1c2VTdGF0ZTQiLCJzaGFkb3dTdGFydCIsInNldFNoYWRvd1N0YXJ0IiwiX1JlYWN0JHVzZVN0YXRlNSIsIl9SZWFjdCR1c2VTdGF0ZTYiLCJzaGFkb3dFbmQiLCJzZXRTaGFkb3dFbmQiLCJfUmVhY3QkdXNlU3RhdGU3IiwiTWFwIiwiX1JlYWN0JHVzZVN0YXRlOCIsImNvbHNXaWR0aHMiLCJ1cGRhdGVDb2xzV2lkdGhzIiwiY29sc0tleXMiLCJnZXRDb2x1bW5zS2V5IiwicHVyZUNvbFdpZHRocyIsIm1hcCIsImNvbHVtbktleSIsImNvbFdpZHRocyIsImpvaW4iLCJzdGlja3lPZmZzZXRzIiwidXNlU3RpY2t5T2Zmc2V0cyIsImZpeEhlYWRlciIsInZhbGlkYXRlVmFsdWUiLCJ5IiwiaG9yaXpvblNjcm9sbCIsIkJvb2xlYW4iLCJmaXhlZCIsImZpeENvbHVtbiIsInNvbWUiLCJfcmVmIiwic3RpY2t5UmVmIiwiX3VzZVN0aWNreSIsInVzZVN0aWNreSIsImlzU3RpY2t5Iiwib2Zmc2V0SGVhZGVyIiwib2Zmc2V0U3VtbWFyeSIsIm9mZnNldFNjcm9sbCIsInN0aWNreUNsYXNzTmFtZSIsImNvbnRhaW5lciIsInN1bW1hcnlOb2RlIiwiZml4Rm9vdGVyIiwiaXNWYWxpZEVsZW1lbnQiLCJ0eXBlIiwiU3VtbWFyeSIsInNjcm9sbFhTdHlsZSIsInNjcm9sbFlTdHlsZSIsInNjcm9sbFRhYmxlU3R5bGUiLCJvdmVyZmxvd1kiLCJtYXhIZWlnaHQiLCJvdmVyZmxvd1giLCJ3aWR0aCIsIm1pbldpZHRoIiwib25Db2x1bW5SZXNpemUiLCJ3aWR0aHMiLCJuZXdXaWR0aHMiLCJfdXNlVGltZW91dExvY2siLCJ1c2VUaW1lb3V0TG9jayIsIl91c2VUaW1lb3V0TG9jazIiLCJzZXRTY3JvbGxUYXJnZXQiLCJnZXRTY3JvbGxUYXJnZXQiLCJmb3JjZVNjcm9sbCIsInNjcm9sbExlZnQiLCJ0YXJnZXQiLCJzZXRUaW1lb3V0IiwiX1JlYWN0JHVzZVN0YXRlOSIsIl9SZWFjdCR1c2VTdGF0ZTAiLCJzY3JvbGxJbmZvIiwic2V0U2Nyb2xsSW5mbyIsIm9uSW50ZXJuYWxTY3JvbGwiLCJ1c2VFdmVudCIsIl9yZWYyIiwiY3VycmVudFRhcmdldCIsIm1lcmdlZFNjcm9sbExlZnQiLCJjb21wYXJlVGFyZ2V0Iiwic2V0U2Nyb2xsTGVmdCIsIm1lYXN1cmVUYXJnZXQiLCJhYnNTY3JvbGxTdGFydCIsIk1hdGgiLCJhYnMiLCJvcmkiLCJuZXh0U2Nyb2xsSW5mbyIsImlzRXF1YWwiLCJvbkJvZHlTY3JvbGwiLCJ0cmlnZ2VyT25TY3JvbGwiLCJnZXRET00iLCJfUmVhY3QkdXNlU3RhdGUxIiwiX1JlYWN0JHVzZVN0YXRlMTAiLCJzY3JvbGxiYXJTaXplIiwic2V0U2Nyb2xsYmFyU2l6ZSIsInN5bmNTY3JvbGxiYXJTaXplIiwiRWxlbWVudCIsImdldFRhcmdldFNjcm9sbEJhclNpemUiLCJvbkZ1bGxUYWJsZVJlc2l6ZSIsIm9mZnNldFdpZHRoIiwiX2MiLCJjaGVja1Njcm9sbEJhclZpc2libGUiLCJtZXJnZWRXaWR0aCIsInVzZUxheW91dEVmZmVjdCIsIm1vdW50ZWQiLCJ1c2VFZmZlY3QiLCJib2R5IiwicmVuZGVyRml4ZWRIZWFkZXJUYWJsZSIsImZpeGVkSG9sZGVyUGFzc1Byb3BzIiwiX2pzeHMiLCJfRnJhZ21lbnQiLCJjaGlsZHJlbiIsIl9qc3giLCJIZWFkZXIiLCJGb290ZXIiLCJyZW5kZXJGaXhlZEZvb3RlclRhYmxlIiwiVGFibGVDb21wb25lbnQiLCJtZXJnZWRUYWJsZUxheW91dCIsIl9yZWYzIiwiZWxsaXBzaXMiLCJncm91cFRhYmxlTm9kZSIsImhlYWRlclByb3BzIiwiY29sdW1Db3VudCIsImVtcHR5Tm9kZSIsImJvZHlUYWJsZSIsIkJvZHkiLCJtZWFzdXJlQ29sdW1uV2lkdGgiLCJib2R5Q29sR3JvdXAiLCJDb2xHcm91cCIsIl9yZWY0IiwiY2FwdGlvbkVsZW1lbnQiLCJkYXRhUHJvcHMiLCJwaWNrQXR0cnMiLCJhcmlhUHJvcHMiLCJhcmlhIiwiYm9keUNvbnRlbnQiLCJfcmVmNSIsImNvbFdpZHRoIiwiTnVtYmVyIiwiaXNOYU4iLCJmaXhlZEhvbGRlclByb3BzIiwibm9EYXRhIiwibWF4Q29udGVudFNjcm9sbCIsIkZpeGVkSG9sZGVyIiwic3RpY2t5VG9wT2Zmc2V0IiwiY29sR3JvdXAiLCJzdGlja3lCb3R0b21PZmZzZXQiLCJTdGlja3lTY3JvbGxCYXIiLCJjb250ZW50IiwiY2xzeCIsInRhYmxlU3R5bGUiLCJmdWxsVGFibGUiLCJfZGVmaW5lUHJvcGVydHkyIiwiUGFuZWwiLCJzZWN0aW9uIiwiUmVzaXplT2JzZXJ2ZXIiLCJvblJlc2l6ZSIsIl9yZWY2IiwiZml4ZWRJbmZvTGlzdCIsInVzZUZpeGVkSW5mbyIsIlRhYmxlQ29udGV4dFZhbHVlIiwiZXhwYW5kZWRSb3dDbGFzc05hbWUiLCJleHBhbmRSb3dCeUNsaWNrIiwiZXhwYW5kZWRSb3dPZmZzZXQiLCJpbmRlbnRTaXplIiwiYWxsQ29sdW1uc0ZpeGVkTGVmdCIsImV2ZXJ5IiwiY29sIiwiaG92ZXJTdGFydFJvdyIsImhvdmVyRW5kUm93Iiwicm93RXhwYW5kYWJsZSIsImNoaWxkcmVuQ29sdW1uTmFtZSIsIlRhYmxlQ29udGV4dCIsIlByb3ZpZGVyIiwidmFsdWUiLCJSZWZUYWJsZSIsImZvcndhcmRSZWYiLCJkaXNwbGF5TmFtZSIsImdlblRhYmxlIiwic2hvdWxkVHJpZ2dlclJlbmRlciIsIm1ha2VJbW11dGFibGUiLCJJbW11dGFibGVUYWJsZSIsIkVYUEFORF9DT0xVTU4iLCJDb2x1bW4iLCJDb2x1bW5Hcm91cCIsIkZvb3RlckNvbXBvbmVudHMiLCJfZGVmYXVsdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBLElBQUFBLFdBQUEsR0FBQUMsT0FBQTtBQzRCQSxJQUFBQyxNQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxlQUFBLEdBQUFDLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBSSxpQkFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssaUJBQUEsR0FBQUYsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFNLFVBQUEsR0FBQUgsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFPLElBQUEsR0FBQUosc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFRLFFBQUEsR0FBQUwsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFTLEtBQUEsR0FBQUMsdUJBQUEsQ0FBQVYsT0FBQTtBQUNBLElBQUFXLEtBQUEsR0FBQVIsc0JBQUEs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QUFZLEVBRVpULGdCQUFnQixDQUNqQixDQUNGO0VBRUQsT0FBTyxJQUFBeU0sZUFBQSxFQUFDNEQsd0JBQVksQ0FBQ0MsUUFBUSxFQUFBO0lBQUNDLEtBQUssRUFBRWQsaUJBQWlCO0lBQUFqRCxRQUFBLEVBQUd3QztFQUFTLENBQUEsQ0FBeUI7QUFDN0YsQ0FBQztBQU1ELElBQU13QixRQUFRLGdCQUFHdlYsS0FBSyxDQUFDd1YsVUFBVSxDQUFDdFMsS0FBSyxDQUF3QjtBQUUvRCxJQUFJNEMsT0FBTyxDQUFDQyxHQUFHLENBQUNDLFFBQVEsS0FBSyxZQUFZLEVBQUU7RUFDekN1UCxRQUFRLENBQUNFLFdBQVcsR0FBRyxPQUFPO0FBQ2hDO0FBRU8sSUFBTUMsUUFBUSxHQUFBNVMsT0FBQSxDQUFBNFMsUUFBQSxHQUFHLFNBQVhBLFFBQVFBLENBQUlDLG1CQUF1RCxFQUFJO0VBQ2xGLE9BQU8sSUFBQUMsMkJBQWEsRUFBQ0wsUUFBUSxFQUFFSSxtQkFBbUIsQ0FBQztBQUNyRCxDQUFDO0FBRUQsSUFBTUUsY0FBYyxHQUFHSCxRQUFRLENBQUEsQ0FBRTtBQVVoQ0csY0FBcUMsQ0FBQ0MsYUFBYSxHQUFHQSx1QkFBYTtBQUVuRUQsY0FBcUMsQ0FBQ2hRLGNBQWMsR0FBR0Esd0JBQWM7QUFFckVnUSxjQUFxQyxDQUFDRSxNQUFNLEdBQUdBLGtCQUFNO0FBRXJERixjQUFxQyxDQUFDRyxXQUFXLEdBQUdBLHVCQUFXO0FBRS9ESCxjQUFxQyxDQUFDcEksT0FBTyxHQUFHd0ksd0JBQWdCO0FBQUMsSUFBQUMsUUFBQSxHQUFBcFQsT0FBQSxjQUVuRCtTLGNBQW9DIiwiZmlsZSI6ImNvbXBvbmVudHMvVGFibGUvaW50ZXJuYWwva2VybmVsL1RhYmxlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsganN4IGFzIF9qc3gsIEZyYWdtZW50IGFzIF9GcmFnbWVudCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgY2xzeCB9IGZyb20gJ2Nsc3gnO1xuaW1wb3J0IFJlc2l6ZU9ic2VydmVyIGZyb20gJy4uLy4uLy4uL1Jlc2l6ZU9ic2VydmVyJztcbmltcG9ydCB7IGdldFRhcmdldFNjcm9sbEJhclNpemUgfSBmcm9tICcuL3V0aWxzL2dldFNjcm9sbEJhclNpemUnO1xuaW1wb3J0IHVzZUV2ZW50IGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlRXZlbnRDYWxsYmFjayc7XG5pbXBvcnQgcGlja0F0dHJzIGZyb20gJy4vdXRpbHMvcGlja0F0dHJzJztcbmltcG9ydCBnZXRWYWx1ZSBmcm9tICcuL3V0aWxzL2dldCc7XG5pbXBvcnQgd2FybmluZyBmcm9tICcuL3V0aWxzL3dhcm5pbmcnO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IEJvZHkgZnJvbSAnLi9Cb2R5JztcbmltcG9ydCBDb2xHcm91cCBmcm9tICcuL0NvbEdyb3VwJztcbmltcG9ydCB7IEVYUEFORF9DT0xVTU4sIElOVEVSTkFMX0hPT0tTIH0gZnJvbSAnLi9jb25zdGFudCc7XG5pbXBvcnQgVGFibGVDb250ZXh0LCB7IG1ha2VJbW11dGFibGUgfSBmcm9tICcuL2NvbnRleHQvVGFibGVDb250ZXh0JztcbmltcG9ydCBGaXhlZEhvbGRlciBmcm9tICcuL0ZpeGVkSG9sZGVyJztcbmltcG9ydCBGb290ZXIsIHsgRm9vdGVyQ29tcG9uZW50cyB9IGZyb20gJy4vRm9vdGVyJztcbmltcG9ydCBTdW1tYXJ5IGZyb20gJy4vRm9vdGVyL1N1bW1hcnknO1xuaW1wb3J0IEhlYWRlciBmcm9tICcuL0hlYWRlci9IZWFkZXInO1xuaW1wb3J0IHVzZUNvbHVtbnMgZnJvbSAnLi9ob29rcy91c2VDb2x1bW5zJztcbmltcG9ydCB1c2VFeHBhbmQgZnJvbSAnLi9ob29rcy91c2VFeHBhbmQnO1xuaW1wb3J0IHVzZUZpeGVkSW5mbyBmcm9tICcuL2hvb2tzL3VzZUZpeGVkSW5mbyc7XG5pbXBvcnQgeyB1c2VUaW1lb3V0TG9jayB9IGZyb20gJy4vaG9va3MvdXNlRnJhbWUnO1xuaW1wb3J0IHVzZUhvdmVyIGZyb20gJy4vaG9va3MvdXNlSG92ZXInO1xuaW1wb3J0IHVzZVN0aWNreSBmcm9tICcuL2hvb2tzL3VzZVN0aWNreSc7XG5pbXBvcnQgdXNlU3RpY2t5T2Zmc2V0cyBmcm9tICcuL2hvb2tzL3VzZVN0aWNreU9mZnNldHMnO1xuaW1wb3J0IFBhbmVsIGZyb20gJy4vUGFuZWwnO1xuaW1wb3J0IFN0aWNreVNjcm9sbEJhciBmcm9tICcuL3N0aWNreVNjcm9sbEJhcic7XG5pbXBvcnQgQ29sdW1uIGZyb20gJy4vc3VnYXIvQ29sdW1uJztcbmltcG9ydCBDb2x1bW5Hcm91cCBmcm9tICcuL3N1Z2FyL0NvbHVtbkdyb3VwJztcbmltcG9ydCB7IGdldENvbHVtbnNLZXksIHZhbGlkYXRlVmFsdWUsIHZhbGlkTnVtYmVyVmFsdWUgfSBmcm9tICcuL3V0aWxzL3ZhbHVlVXRpbCc7XG5pbXBvcnQgeyBnZXRET00gfSBmcm9tICcuLi8uLi8uLi9SZXNpemVPYnNlcnZlci91dGlscy9yZWFjdFV0aWwnO1xuaW1wb3J0IGlzRXF1YWwgZnJvbSAnLi9zZWxlY3Rvci1jb250ZXh0L2lzRXF1YWwnO1xuaW1wb3J0IHVzZUxheW91dEVmZmVjdCBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZUxheW91dEVmZmVjdCc7XG5leHBvcnQgY29uc3QgREVGQVVMVF9QUkVGSVggPSAnb20tdGFibGUnO1xuLy8gVXNlZCBmb3IgY29uZGl0aW9ucyBjYWNoZVxuY29uc3QgRU1QVFlfREFUQSA9IFtdO1xuLy8gVXNlZCBmb3IgY3VzdG9taXplIHNjcm9sbFxuY29uc3QgRU1QVFlfU0NST0xMX1RBUkdFVCA9IHt9O1xuZnVuY3Rpb24gZGVmYXVsdEVtcHR5KCkge1xuICAgIHJldHVybiAnTm8gRGF0YSc7XG59XG5jb25zdCBUYWJsZSA9ICh0YWJsZVByb3BzLCByZWYpID0+IHtcbiAgICB2YXIgX2EsIF9iO1xuICAgIGNvbnN0IHByb3BzID0gT2JqZWN0LmFzc2lnbih7IHJvd0tleTogJ2tleScsIHByZWZpeENsczogREVGQVVMVF9QUkVGSVgsIGVtcHR5VGV4dDogZGVmYXVsdEVtcHR5IH0sIHRhYmxlUHJvcHMpO1xuICAgIGNvbnN0IHsgcHJlZml4Q2xzLCBjbGFzc05hbWUsIHJvd0NsYXNzTmFtZSwgc3R5bGUsIGNsYXNzTmFtZXMsIHN0eWxlcywgZGF0YSwgcm93S2V5LCBzY3JvbGwsIHRhYmxlTGF5b3V0LCBkaXJlY3Rpb24sIFxuICAgIC8vIEFkZGl0aW9uYWwgUGFydFxuICAgIHRpdGxlLCBmb290ZXIsIHN1bW1hcnksIGNhcHRpb24sIFxuICAgIC8vIEN1c3RvbWl6ZVxuICAgIGlkLCBzaG93SGVhZGVyLCBjb21wb25lbnRzLCBlbXB0eVRleHQsIG9uUm93LCBvbkhlYWRlclJvdywgXG4gICAgLy8gTWVhc3VyZSBSb3dcbiAgICBtZWFzdXJlUm93UmVuZGVyLCBcbiAgICAvLyBFdmVudHNcbiAgICBvblNjcm9sbCwgXG4gICAgLy8gSW50ZXJuYWxcbiAgICBpbnRlcm5hbEhvb2tzLCB0cmFuc2Zvcm1Db2x1bW5zLCBpbnRlcm5hbFJlZnMsIHRhaWxvciwgZ2V0Q29udGFpbmVyV2lkdGgsIHN0aWNreSwgcm93SG92ZXJhYmxlID0gdHJ1ZSwgfSA9IHByb3BzO1xuICAgIGNvbnN0IG1lcmdlZERhdGEgPSBkYXRhIHx8IEVNUFRZX0RBVEE7XG4gICAgY29uc3QgaGFzRGF0YSA9ICEhbWVyZ2VkRGF0YS5sZW5ndGg7XG4gICAgY29uc3QgdXNlSW50ZXJuYWxIb29rcyA9IGludGVybmFsSG9va3MgPT09IElOVEVSTkFMX0hPT0tTO1xuICAgIC8vID09PT09PT09PT09PT09PT09PT09PSBXYXJuaW5nID09PT09PT09PT09PT09PT09PT09PT1cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICBbXG4gICAgICAgICAgICAnb25Sb3dDbGljaycsXG4gICAgICAgICAgICAnb25Sb3dEb3VibGVDbGljaycsXG4gICAgICAgICAgICAnb25Sb3dDb250ZXh0TWVudScsXG4gICAgICAgICAgICAnb25Sb3dNb3VzZUVudGVyJyxcbiAgICAgICAgICAgICdvblJvd01vdXNlTGVhdmUnLFxuICAgICAgICBdLmZvckVhY2gobmFtZSA9PiB7XG4gICAgICAgICAgICB3YXJuaW5nKHByb3BzW25hbWVdID09PSB1bmRlZmluZWQsIGBcXGAke25hbWV9XFxgIGlzIHJlbW92ZWQsIHBsZWFzZSB1c2UgXFxgb25Sb3dcXGAgaW5zdGVhZC5gKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHdhcm5pbmcoISgnZ2V0Qm9keVdyYXBwZXInIGluIHByb3BzKSwgJ2BnZXRCb2R5V3JhcHBlcmAgaXMgZGVwcmVjYXRlZCwgcGxlYXNlIHVzZSBjdXN0b20gYGNvbXBvbmVudHNgIGluc3RlYWQuJyk7XG4gICAgfVxuICAgIC8vID09PT09PT09PT09PT09PT09PT09IEN1c3RvbWl6ZSA9PT09PT09PT09PT09PT09PT09PT1cbiAgICBjb25zdCBnZXRDb21wb25lbnQgPSBSZWFjdC51c2VDYWxsYmFjaygocGF0aCwgZGVmYXVsdENvbXBvbmVudCkgPT4gZ2V0VmFsdWUoY29tcG9uZW50cywgcGF0aCkgfHwgZGVmYXVsdENvbXBvbmVudCwgW2NvbXBvbmVudHNdKTtcbiAgICBjb25zdCBnZXRSb3dLZXkgPSBSZWFjdC51c2VNZW1vKCgpID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiByb3dLZXkgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHJldHVybiByb3dLZXk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIChyZWNvcmQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGtleSA9IHJlY29yZCAmJiByZWNvcmRbcm93S2V5XTtcbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgd2FybmluZyhrZXkgIT09IHVuZGVmaW5lZCwgJ0VhY2ggcmVjb3JkIGluIHRhYmxlIHNob3VsZCBoYXZlIGEgdW5pcXVlIGBrZXlgIHByb3AsIG9yIHNldCBgcm93S2V5YCB0byBhbiB1bmlxdWUgcHJpbWFyeSBrZXkuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4ga2V5O1xuICAgICAgICB9O1xuICAgIH0sIFtyb3dLZXldKTtcbiAgICBjb25zdCBjdXN0b21pemVTY3JvbGxCb2R5ID0gZ2V0Q29tcG9uZW50KFsnYm9keSddKTtcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09IEhvdmVyID09PT09PT09PT09PT09PT09PT09PT09XG4gICAgY29uc3QgW3N0YXJ0Um93LCBlbmRSb3csIG9uSG92ZXJdID0gdXNlSG92ZXIoKTtcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09IEV4cGFuZCA9PT09PT09PT09PT09PT09PT09PT09XG4gICAgY29uc3QgW2V4cGFuZGFibGVDb25maWcsIGV4cGFuZGFibGVUeXBlLCBtZXJnZWRFeHBhbmRlZEtleXMsIG1lcmdlZEV4cGFuZEljb24sIG1lcmdlZENoaWxkcmVuQ29sdW1uTmFtZSwgb25UcmlnZ2VyRXhwYW5kLF0gPSB1c2VFeHBhbmQocHJvcHMsIG1lcmdlZERhdGEsIGdldFJvd0tleSk7XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PSBDb2x1bW4gPT09PT09PT09PT09PT09PT09PT09PVxuICAgIGNvbnN0IHNjcm9sbFggPSBzY3JvbGwgPT09IG51bGwgfHwgc2Nyb2xsID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzY3JvbGwueDtcbiAgICBjb25zdCBbY29tcG9uZW50V2lkdGgsIHNldENvbXBvbmVudFdpZHRoXSA9IFJlYWN0LnVzZVN0YXRlKDApO1xuICAgIGNvbnN0IFtjb2x1bW5zLCBmbGF0dGVuQ29sdW1ucywgZmxhdHRlblNjcm9sbFhdID0gdXNlQ29sdW1ucyhPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgcHJvcHMpLCBleHBhbmRhYmxlQ29uZmlnKSwgeyBleHBhbmRhYmxlOiAhIWV4cGFuZGFibGVDb25maWcuZXhwYW5kZWRSb3dSZW5kZXIsIGNvbHVtblRpdGxlOiBleHBhbmRhYmxlQ29uZmlnLmNvbHVtblRpdGxlLCBleHBhbmRlZEtleXM6IG1lcmdlZEV4cGFuZGVkS2V5cywgZ2V0Um93S2V5LFxuICAgICAgICBvblRyaWdnZXJFeHBhbmQsIGV4cGFuZEljb246IG1lcmdlZEV4cGFuZEljb24sIGV4cGFuZEljb25Db2x1bW5JbmRleDogZXhwYW5kYWJsZUNvbmZpZy5leHBhbmRJY29uQ29sdW1uSW5kZXgsIGRpcmVjdGlvbiwgc2Nyb2xsV2lkdGg6IHVzZUludGVybmFsSG9va3MgJiYgdGFpbG9yICYmIHR5cGVvZiBzY3JvbGxYID09PSAnbnVtYmVyJyA/IHNjcm9sbFggOiBudWxsLCBjbGllbnRXaWR0aDogY29tcG9uZW50V2lkdGggfSksIHVzZUludGVybmFsSG9va3MgPyB0cmFuc2Zvcm1Db2x1bW5zIDogbnVsbCk7XG4gICAgY29uc3QgbWVyZ2VkU2Nyb2xsWCA9IGZsYXR0ZW5TY3JvbGxYICE9PSBudWxsICYmIGZsYXR0ZW5TY3JvbGxYICE9PSB2b2lkIDAgPyBmbGF0dGVuU2Nyb2xsWCA6IHNjcm9sbFg7XG4gICAgY29uc3QgY29sdW1uQ29udGV4dCA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gKHsgY29sdW1ucywgZmxhdHRlbkNvbHVtbnMgfSksIFtjb2x1bW5zLCBmbGF0dGVuQ29sdW1uc10pO1xuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09IFJlZnMgPT09PT09PT09PT09PT09PT09PT09PT1cbiAgICBjb25zdCBmdWxsVGFibGVSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gICAgY29uc3Qgc2Nyb2xsSGVhZGVyUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHNjcm9sbEJvZHlSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gICAgY29uc3Qgc2Nyb2xsQm9keUNvbnRhaW5lclJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgICBSZWFjdC51c2VJbXBlcmF0aXZlSGFuZGxlKHJlZiwgKCkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmF0aXZlRWxlbWVudDogZnVsbFRhYmxlUmVmLmN1cnJlbnQsXG4gICAgICAgICAgICBzY3JvbGxUbzogY29uZmlnID0+IHtcbiAgICAgICAgICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICAgICAgICAgIGlmIChzY3JvbGxCb2R5UmVmLmN1cnJlbnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBOYXRpdmUgc2Nyb2xsXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgaW5kZXgsIHRvcCwga2V5LCBvZmZzZXQgfSA9IGNvbmZpZztcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbGlkTnVtYmVyVmFsdWUodG9wKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSW4gdG9wIG1vZGUsIG9mZnNldCBpcyBpZ25vcmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAoX2EgPSBzY3JvbGxCb2R5UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5zY3JvbGxUbyh7IHRvcCB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1lcmdlZEtleSA9IGtleSAhPT0gbnVsbCAmJiBrZXkgIT09IHZvaWQgMCA/IGtleSA6IGdldFJvd0tleShtZXJnZWREYXRhW2luZGV4XSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXRFbGVtZW50ID0gc2Nyb2xsQm9keVJlZi5jdXJyZW50LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLXJvdy1rZXk9XCIke21lcmdlZEtleX1cIl1gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0YXJnZXRFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFvZmZzZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTm8gb2Zmc2V0LCB1c2Ugc2Nyb2xsSW50b1ZpZXcgZm9yIGRlZmF1bHQgYmVoYXZpb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0RWxlbWVudC5zY3JvbGxJbnRvVmlldygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2l0aCBvZmZzZXQsIHVzZSBlbGVtZW50J3Mgb2Zmc2V0VG9wICsgb2Zmc2V0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRUb3AgPSB0YXJnZXRFbGVtZW50Lm9mZnNldFRvcDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsQm9keVJlZi5jdXJyZW50LnNjcm9sbFRvKHsgdG9wOiBlbGVtZW50VG9wICsgb2Zmc2V0IH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmICgoX2IgPSBzY3JvbGxCb2R5UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5zY3JvbGxUbykge1xuICAgICAgICAgICAgICAgICAgICAvLyBQYXNzIHRvIHByb3h5XG4gICAgICAgICAgICAgICAgICAgIHNjcm9sbEJvZHlSZWYuY3VycmVudC5zY3JvbGxUbyhjb25maWcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgfSk7XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PSBTY3JvbGwgPT09PT09PT09PT09PT09PT09PT09PVxuICAgIGNvbnN0IHNjcm9sbFN1bW1hcnlSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gICAgY29uc3QgW3NoYWRvd1N0YXJ0LCBzZXRTaGFkb3dTdGFydF0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgW3NoYWRvd0VuZCwgc2V0U2hhZG93RW5kXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbY29sc1dpZHRocywgdXBkYXRlQ29sc1dpZHRoc10gPSBSZWFjdC51c2VTdGF0ZShuZXcgTWFwKCkpO1xuICAgIC8vIENvbnZlcnQgbWFwIHRvIG51bWJlciB3aWR0aFxuICAgIGNvbnN0IGNvbHNLZXlzID0gZ2V0Q29sdW1uc0tleShmbGF0dGVuQ29sdW1ucyk7XG4gICAgY29uc3QgcHVyZUNvbFdpZHRocyA9IGNvbHNLZXlzLm1hcChjb2x1bW5LZXkgPT4gY29sc1dpZHRocy5nZXQoY29sdW1uS2V5KSk7XG4gICAgY29uc3QgY29sV2lkdGhzID0gUmVhY3QudXNlTWVtbygoKSA9PiBwdXJlQ29sV2lkdGhzLCBbcHVyZUNvbFdpZHRocy5qb2luKCdfJyldKTtcbiAgICBjb25zdCBzdGlja3lPZmZzZXRzID0gdXNlU3RpY2t5T2Zmc2V0cyhjb2xXaWR0aHMsIGZsYXR0ZW5Db2x1bW5zKTtcbiAgICBjb25zdCBmaXhIZWFkZXIgPSBzY3JvbGwgJiYgdmFsaWRhdGVWYWx1ZShzY3JvbGwueSk7XG4gICAgY29uc3QgaG9yaXpvblNjcm9sbCA9IChzY3JvbGwgJiYgdmFsaWRhdGVWYWx1ZShtZXJnZWRTY3JvbGxYKSkgfHwgQm9vbGVhbihleHBhbmRhYmxlQ29uZmlnLmZpeGVkKTtcbiAgICBjb25zdCBmaXhDb2x1bW4gPSBob3Jpem9uU2Nyb2xsICYmIGZsYXR0ZW5Db2x1bW5zLnNvbWUoKHsgZml4ZWQgfSkgPT4gZml4ZWQpO1xuICAgIC8vIFN0aWNreVxuICAgIGNvbnN0IHN0aWNreVJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgICBjb25zdCB7IGlzU3RpY2t5LCBvZmZzZXRIZWFkZXIsIG9mZnNldFN1bW1hcnksIG9mZnNldFNjcm9sbCwgc3RpY2t5Q2xhc3NOYW1lLCBjb250YWluZXIgfSA9IHVzZVN0aWNreShzdGlja3ksIHByZWZpeENscyk7XG4gICAgLy8gRm9vdGVyIChGaXggZm9vdGVyIG11c3QgZml4ZWQgaGVhZGVyKVxuICAgIGNvbnN0IHN1bW1hcnlOb2RlID0gUmVhY3QudXNlTWVtbygoKSA9PiBzdW1tYXJ5ID09PSBudWxsIHx8IHN1bW1hcnkgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHN1bW1hcnkobWVyZ2VkRGF0YSksIFtzdW1tYXJ5LCBtZXJnZWREYXRhXSk7XG4gICAgY29uc3QgZml4Rm9vdGVyID0gKGZpeEhlYWRlciB8fCBpc1N0aWNreSkgJiZcbiAgICAgICAgUmVhY3QuaXNWYWxpZEVsZW1lbnQoc3VtbWFyeU5vZGUpICYmXG4gICAgICAgIHN1bW1hcnlOb2RlLnR5cGUgPT09IFN1bW1hcnkgJiZcbiAgICAgICAgc3VtbWFyeU5vZGUucHJvcHMuZml4ZWQ7XG4gICAgLy8gU2Nyb2xsXG4gICAgbGV0IHNjcm9sbFhTdHlsZTtcbiAgICBsZXQgc2Nyb2xsWVN0eWxlO1xuICAgIGxldCBzY3JvbGxUYWJsZVN0eWxlO1xuICAgIGlmIChmaXhIZWFkZXIpIHtcbiAgICAgICAgc2Nyb2xsWVN0eWxlID0ge1xuICAgICAgICAgICAgb3ZlcmZsb3dZOiBoYXNEYXRhID8gJ3Njcm9sbCcgOiAnYXV0bycsXG4gICAgICAgICAgICBtYXhIZWlnaHQ6IHNjcm9sbC55LFxuICAgICAgICB9O1xuICAgIH1cbiAgICBpZiAoaG9yaXpvblNjcm9sbCkge1xuICAgICAgICBzY3JvbGxYU3R5bGUgPSB7IG92ZXJmbG93WDogJ2F1dG8nIH07XG4gICAgICAgIC8vIFdoZW4gbm8gdmVydGljYWwgc2Nyb2xsYmFyLCBzaG91bGQgaGlkZSBpdFxuICAgICAgICBpZiAoIWZpeEhlYWRlcikge1xuICAgICAgICAgICAgc2Nyb2xsWVN0eWxlID0geyBvdmVyZmxvd1k6ICdoaWRkZW4nIH07XG4gICAgICAgIH1cbiAgICAgICAgc2Nyb2xsVGFibGVTdHlsZSA9IHtcbiAgICAgICAgICAgIHdpZHRoOiBtZXJnZWRTY3JvbGxYID09PSB0cnVlID8gJ2F1dG8nIDogbWVyZ2VkU2Nyb2xsWCxcbiAgICAgICAgICAgIG1pbldpZHRoOiAnMTAwJScsXG4gICAgICAgIH07XG4gICAgfVxuICAgIGNvbnN0IG9uQ29sdW1uUmVzaXplID0gUmVhY3QudXNlQ2FsbGJhY2soKGNvbHVtbktleSwgd2lkdGgpID0+IHtcbiAgICAgICAgdXBkYXRlQ29sc1dpZHRocyh3aWR0aHMgPT4ge1xuICAgICAgICAgICAgaWYgKHdpZHRocy5nZXQoY29sdW1uS2V5KSAhPT0gd2lkdGgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdXaWR0aHMgPSBuZXcgTWFwKHdpZHRocyk7XG4gICAgICAgICAgICAgICAgbmV3V2lkdGhzLnNldChjb2x1bW5LZXksIHdpZHRoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3V2lkdGhzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHdpZHRocztcbiAgICAgICAgfSk7XG4gICAgfSwgW10pO1xuICAgIGNvbnN0IFtzZXRTY3JvbGxUYXJnZXQsIGdldFNjcm9sbFRhcmdldF0gPSB1c2VUaW1lb3V0TG9jayhudWxsKTtcbiAgICBmdW5jdGlvbiBmb3JjZVNjcm9sbChzY3JvbGxMZWZ0LCB0YXJnZXQpIHtcbiAgICAgICAgaWYgKCF0YXJnZXQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHRhcmdldCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgdGFyZ2V0KHNjcm9sbExlZnQpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHRhcmdldC5zY3JvbGxMZWZ0ICE9PSBzY3JvbGxMZWZ0KSB7XG4gICAgICAgICAgICB0YXJnZXQuc2Nyb2xsTGVmdCA9IHNjcm9sbExlZnQ7XG4gICAgICAgICAgICAvLyBEZWxheSB0byBmb3JjZSBzY3JvbGwgcG9zaXRpb24gaWYgbm90IHN5bmNcbiAgICAgICAgICAgIGlmICh0YXJnZXQuc2Nyb2xsTGVmdCAhPT0gc2Nyb2xsTGVmdCkge1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXQuc2Nyb2xsTGVmdCA9IHNjcm9sbExlZnQ7XG4gICAgICAgICAgICAgICAgfSwgMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgW3Njcm9sbEluZm8sIHNldFNjcm9sbEluZm9dID0gUmVhY3QudXNlU3RhdGUoWzAsIDBdKTtcbiAgICBjb25zdCBvbkludGVybmFsU2Nyb2xsID0gdXNlRXZlbnQoKHsgY3VycmVudFRhcmdldCwgc2Nyb2xsTGVmdCB9KSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgY29uc3QgbWVyZ2VkU2Nyb2xsTGVmdCA9IHR5cGVvZiBzY3JvbGxMZWZ0ID09PSAnbnVtYmVyJyA/IHNjcm9sbExlZnQgOiBjdXJyZW50VGFyZ2V0LnNjcm9sbExlZnQ7XG4gICAgICAgIGNvbnN0IGNvbXBhcmVUYXJnZXQgPSBjdXJyZW50VGFyZ2V0IHx8IEVNUFRZX1NDUk9MTF9UQVJHRVQ7XG4gICAgICAgIGlmICghZ2V0U2Nyb2xsVGFyZ2V0KCkgfHwgZ2V0U2Nyb2xsVGFyZ2V0KCkgPT09IGNvbXBhcmVUYXJnZXQpIHtcbiAgICAgICAgICAgIHNldFNjcm9sbFRhcmdldChjb21wYXJlVGFyZ2V0KTtcbiAgICAgICAgICAgIGZvcmNlU2Nyb2xsKG1lcmdlZFNjcm9sbExlZnQsIHNjcm9sbEhlYWRlclJlZi5jdXJyZW50KTtcbiAgICAgICAgICAgIGZvcmNlU2Nyb2xsKG1lcmdlZFNjcm9sbExlZnQsIHNjcm9sbEJvZHlSZWYuY3VycmVudCk7XG4gICAgICAgICAgICBmb3JjZVNjcm9sbChtZXJnZWRTY3JvbGxMZWZ0LCBzY3JvbGxTdW1tYXJ5UmVmLmN1cnJlbnQpO1xuICAgICAgICAgICAgZm9yY2VTY3JvbGwobWVyZ2VkU2Nyb2xsTGVmdCwgKF9hID0gc3RpY2t5UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5zZXRTY3JvbGxMZWZ0KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBtZWFzdXJlVGFyZ2V0ID0gY3VycmVudFRhcmdldCB8fCBzY3JvbGxIZWFkZXJSZWYuY3VycmVudDtcbiAgICAgICAgaWYgKG1lYXN1cmVUYXJnZXQpIHtcbiAgICAgICAgICAgIGNvbnN0IHNjcm9sbFdpZHRoID0gXG4gICAgICAgICAgICAvLyBTaG91bGQgdXNlIG1lcmdlZFNjcm9sbFggaW4gdmlydHVhbCB0YWJsZSh1c2VJbnRlcm5hbEhvb2tzICYmIHRhaWxvciA9PT0gdHJ1ZSlcbiAgICAgICAgICAgIHVzZUludGVybmFsSG9va3MgJiYgdGFpbG9yICYmIHR5cGVvZiBtZXJnZWRTY3JvbGxYID09PSAnbnVtYmVyJ1xuICAgICAgICAgICAgICAgID8gbWVyZ2VkU2Nyb2xsWFxuICAgICAgICAgICAgICAgIDogbWVhc3VyZVRhcmdldC5zY3JvbGxXaWR0aDtcbiAgICAgICAgICAgIGNvbnN0IGNsaWVudFdpZHRoID0gbWVhc3VyZVRhcmdldC5jbGllbnRXaWR0aDtcbiAgICAgICAgICAgIGNvbnN0IGFic1Njcm9sbFN0YXJ0ID0gTWF0aC5hYnMobWVyZ2VkU2Nyb2xsTGVmdCk7XG4gICAgICAgICAgICBzZXRTY3JvbGxJbmZvKG9yaSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV4dFNjcm9sbEluZm8gPSBbYWJzU2Nyb2xsU3RhcnQsIHNjcm9sbFdpZHRoIC0gY2xpZW50V2lkdGhdO1xuICAgICAgICAgICAgICAgIHJldHVybiBpc0VxdWFsKG9yaSwgbmV4dFNjcm9sbEluZm8pID8gb3JpIDogbmV4dFNjcm9sbEluZm87XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vIFRoZXJlIGlzIG5vIHNwYWNlIHRvIHNjcm9sbFxuICAgICAgICAgICAgaWYgKHNjcm9sbFdpZHRoID09PSBjbGllbnRXaWR0aCkge1xuICAgICAgICAgICAgICAgIHNldFNoYWRvd1N0YXJ0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICBzZXRTaGFkb3dFbmQoZmFsc2UpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNldFNoYWRvd1N0YXJ0KGFic1Njcm9sbFN0YXJ0ID4gMCk7XG4gICAgICAgICAgICBzZXRTaGFkb3dFbmQoYWJzU2Nyb2xsU3RhcnQgPCBzY3JvbGxXaWR0aCAtIGNsaWVudFdpZHRoIC0gMSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBvbkJvZHlTY3JvbGwgPSB1c2VFdmVudCgoZSkgPT4ge1xuICAgICAgICBvbkludGVybmFsU2Nyb2xsKGUpO1xuICAgICAgICBvblNjcm9sbCA9PT0gbnVsbCB8fCBvblNjcm9sbCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25TY3JvbGwoZSk7XG4gICAgfSk7XG4gICAgY29uc3QgdHJpZ2dlck9uU2Nyb2xsID0gKCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmIChob3Jpem9uU2Nyb2xsICYmIHNjcm9sbEJvZHlSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgb25JbnRlcm5hbFNjcm9sbCh7XG4gICAgICAgICAgICAgICAgY3VycmVudFRhcmdldDogZ2V0RE9NKHNjcm9sbEJvZHlSZWYuY3VycmVudCksXG4gICAgICAgICAgICAgICAgc2Nyb2xsTGVmdDogKF9hID0gc2Nyb2xsQm9keVJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Euc2Nyb2xsTGVmdCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgc2V0U2hhZG93U3RhcnQoZmFsc2UpO1xuICAgICAgICAgICAgc2V0U2hhZG93RW5kKGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgY29uc3QgW3Njcm9sbGJhclNpemUsIHNldFNjcm9sbGJhclNpemVdID0gUmVhY3QudXNlU3RhdGUoMCk7XG4gICAgY29uc3Qgc3luY1Njcm9sbGJhclNpemUgPSAoKSA9PiB7XG4gICAgICAgIGlmICh0YWlsb3IgJiYgdXNlSW50ZXJuYWxIb29rcylcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gc2Nyb2xsQm9keVJlZi5jdXJyZW50IGluc3RhbmNlb2YgRWxlbWVudFxuICAgICAgICAgICAgPyBzY3JvbGxCb2R5UmVmLmN1cnJlbnRcbiAgICAgICAgICAgIDogc2Nyb2xsQm9keUNvbnRhaW5lclJlZi5jdXJyZW50O1xuICAgICAgICBzZXRTY3JvbGxiYXJTaXplKGdldFRhcmdldFNjcm9sbEJhclNpemUodGFyZ2V0KS53aWR0aCk7XG4gICAgfTtcbiAgICBjb25zdCBvbkZ1bGxUYWJsZVJlc2l6ZSA9IChvZmZzZXRXaWR0aCkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYztcbiAgICAgICAgc3luY1Njcm9sbGJhclNpemUoKTtcbiAgICAgICAgKF9hID0gc3RpY2t5UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jaGVja1Njcm9sbEJhclZpc2libGUoKTtcbiAgICAgICAgbGV0IG1lcmdlZFdpZHRoID0gKF9jID0gb2Zmc2V0V2lkdGggIT09IG51bGwgJiYgb2Zmc2V0V2lkdGggIT09IHZvaWQgMCA/IG9mZnNldFdpZHRoIDogKF9iID0gZnVsbFRhYmxlUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5vZmZzZXRXaWR0aCkgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogMDtcbiAgICAgICAgaWYgKHVzZUludGVybmFsSG9va3MgJiYgZ2V0Q29udGFpbmVyV2lkdGggJiYgZnVsbFRhYmxlUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIG1lcmdlZFdpZHRoID0gZ2V0Q29udGFpbmVyV2lkdGgoZnVsbFRhYmxlUmVmLmN1cnJlbnQsIG1lcmdlZFdpZHRoKSB8fCBtZXJnZWRXaWR0aDtcbiAgICAgICAgfVxuICAgICAgICBpZiAobWVyZ2VkV2lkdGggIT09IGNvbXBvbmVudFdpZHRoKSB7XG4gICAgICAgICAgICB0cmlnZ2VyT25TY3JvbGwoKTtcbiAgICAgICAgICAgIHNldENvbXBvbmVudFdpZHRoKG1lcmdlZFdpZHRoKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKGhvcml6b25TY3JvbGwpIHtcbiAgICAgICAgICAgIG9uRnVsbFRhYmxlUmVzaXplKCk7XG4gICAgICAgIH1cbiAgICB9LCBbaG9yaXpvblNjcm9sbF0pO1xuICAgIC8vIFN5bmMgc2Nyb2xsIGJhciB3aGVuIGluaXQgb3IgYGhvcml6b25TY3JvbGxgLCBgZGF0YWAgYW5kIGBjb2x1bW5zLmxlbmd0aGAgY2hhbmdlZFxuICAgIGNvbnN0IG1vdW50ZWQgPSBSZWFjdC51c2VSZWYoZmFsc2UpO1xuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIC8vIG9uRnVsbFRhYmxlUmVzaXplIHdpbGwgYmUgdHJpZ2dlciBvbmNlIHdoZW4gUmVzaXplT2JzZXJ2ZXIgaXMgbW91bnRlZFxuICAgICAgICAvLyBUaGlzIHdpbGwgcmVkdWNlIG9uZSBkdXBsaWNhdGVkIHRyaWdnZXJPblNjcm9sbCB0aW1lXG4gICAgICAgIGlmIChtb3VudGVkLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIHRyaWdnZXJPblNjcm9sbCgpO1xuICAgICAgICB9XG4gICAgfSwgW2hvcml6b25TY3JvbGwsIGRhdGEsIGNvbHVtbnMubGVuZ3RoXSk7XG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgbW91bnRlZC5jdXJyZW50ID0gdHJ1ZTtcbiAgICB9LCBbXSk7XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09IEVmZmVjdHMgPT09PT09PT09PT09PT09PT09PT09PVxuICAgIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHN5bmNTY3JvbGxiYXJTaXplKCk7XG4gICAgfSwgW2hhc0RhdGEsIGZpeEhlYWRlciwgaXNTdGlja3ksIG1lcmdlZERhdGEubGVuZ3RoXSk7XG4gICAgLy8gPT09PT09PT09PT09PT09PT09IElOVEVSTkFMIEhPT0tTID09PT09PT09PT09PT09PT09PVxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmICh1c2VJbnRlcm5hbEhvb2tzICYmIGludGVybmFsUmVmcykge1xuICAgICAgICAgICAgaW50ZXJuYWxSZWZzLmJvZHkuY3VycmVudCA9IHNjcm9sbEJvZHlSZWYuY3VycmVudDtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIC8vID09ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbmRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PVxuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIC8vID09PT09PT09PT09PT09PT09PT0gUmVuZGVyOiBGdW5jID09PT09PT09PT09PT09PT09PT1cbiAgICBjb25zdCByZW5kZXJGaXhlZEhlYWRlclRhYmxlID0gUmVhY3QudXNlQ2FsbGJhY2soZml4ZWRIb2xkZXJQYXNzUHJvcHMgPT4gKF9qc3hzKF9GcmFnbWVudCwgeyBjaGlsZHJlbjogW19qc3goSGVhZGVyLCBPYmplY3QuYXNzaWduKHt9LCBmaXhlZEhvbGRlclBhc3NQcm9wcykpLCBmaXhGb290ZXIgPT09ICd0b3AnICYmIF9qc3goRm9vdGVyLCBPYmplY3QuYXNzaWduKHt9LCBmaXhlZEhvbGRlclBhc3NQcm9wcywgeyBjaGlsZHJlbjogc3VtbWFyeU5vZGUgfSkpXSB9KSksIFtmaXhGb290ZXIsIHN1bW1hcnlOb2RlXSk7XG4gICAgY29uc3QgcmVuZGVyRml4ZWRGb290ZXJUYWJsZSA9IFJlYWN0LnVzZUNhbGxiYWNrKGZpeGVkSG9sZGVyUGFzc1Byb3BzID0+IF9qc3goRm9vdGVyLCBPYmplY3QuYXNzaWduKHt9LCBmaXhlZEhvbGRlclBhc3NQcm9wcywgeyBjaGlsZHJlbjogc3VtbWFyeU5vZGUgfSkpLCBbc3VtbWFyeU5vZGVdKTtcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09IFJlbmRlcjogTm9kZSA9PT09PT09PT09PT09PT09PT09XG4gICAgY29uc3QgVGFibGVDb21wb25lbnQgPSBnZXRDb21wb25lbnQoWyd0YWJsZSddLCAndGFibGUnKTtcbiAgICAvLyBUYWJsZSBsYXlvdXRcbiAgICBjb25zdCBtZXJnZWRUYWJsZUxheW91dCA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBpZiAodGFibGVMYXlvdXQpIHtcbiAgICAgICAgICAgIHJldHVybiB0YWJsZUxheW91dDtcbiAgICAgICAgfVxuICAgICAgICAvLyBXaGVuIHNjcm9sbC54IGlzIG1heC1jb250ZW50LCBubyBuZWVkIHRvIGZpeCB0YWJsZSBsYXlvdXRcbiAgICAgICAgLy8gaXQncyB3aWR0aCBzaG91bGQgc3RyZXRjaCBvdXQgdG8gZml0IGNvbnRlbnRcbiAgICAgICAgaWYgKGZpeENvbHVtbikge1xuICAgICAgICAgICAgcmV0dXJuIG1lcmdlZFNjcm9sbFggPT09ICdtYXgtY29udGVudCcgPyAnYXV0bycgOiAnZml4ZWQnO1xuICAgICAgICB9XG4gICAgICAgIGlmIChmaXhIZWFkZXIgfHwgaXNTdGlja3kgfHwgZmxhdHRlbkNvbHVtbnMuc29tZSgoeyBlbGxpcHNpcyB9KSA9PiBlbGxpcHNpcykpIHtcbiAgICAgICAgICAgIHJldHVybiAnZml4ZWQnO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAnYXV0byc7XG4gICAgfSwgW2ZpeEhlYWRlciwgZml4Q29sdW1uLCBmbGF0dGVuQ29sdW1ucywgdGFibGVMYXlvdXQsIGlzU3RpY2t5XSk7XG4gICAgbGV0IGdyb3VwVGFibGVOb2RlO1xuICAgIC8vIEhlYWRlciBwcm9wc1xuICAgIGNvbnN0IGhlYWRlclByb3BzID0ge1xuICAgICAgICBjb2xXaWR0aHMsXG4gICAgICAgIGNvbHVtQ291bnQ6IGZsYXR0ZW5Db2x1bW5zLmxlbmd0aCxcbiAgICAgICAgc3RpY2t5T2Zmc2V0cyxcbiAgICAgICAgb25IZWFkZXJSb3csXG4gICAgICAgIGZpeEhlYWRlcixcbiAgICAgICAgc2Nyb2xsLFxuICAgIH07XG4gICAgLy8gRW1wdHlcbiAgICBjb25zdCBlbXB0eU5vZGUgPSBSZWFjdC51c2VNZW1vKCgpID0+IHtcbiAgICAgICAgaWYgKGhhc0RhdGEpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgZW1wdHlUZXh0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICByZXR1cm4gZW1wdHlUZXh0KCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGVtcHR5VGV4dDtcbiAgICB9LCBbaGFzRGF0YSwgZW1wdHlUZXh0XSk7XG4gICAgLy8gQm9keVxuICAgIGNvbnN0IGJvZHlUYWJsZSA9IChfanN4KEJvZHksIHsgZGF0YTogbWVyZ2VkRGF0YSwgbWVhc3VyZUNvbHVtbldpZHRoOiBmaXhIZWFkZXIgfHwgaG9yaXpvblNjcm9sbCB8fCBpc1N0aWNreSB9KSk7XG4gICAgY29uc3QgYm9keUNvbEdyb3VwID0gKF9qc3goQ29sR3JvdXAsIHsgY29sV2lkdGhzOiBmbGF0dGVuQ29sdW1ucy5tYXAoKHsgd2lkdGggfSkgPT4gd2lkdGgpLCBjb2x1bW5zOiBmbGF0dGVuQ29sdW1ucyB9KSk7XG4gICAgY29uc3QgY2FwdGlvbkVsZW1lbnQgPSBjYXB0aW9uICE9PSBudWxsICYmIGNhcHRpb24gIT09IHVuZGVmaW5lZCA/IChfanN4KFwiY2FwdGlvblwiLCB7IGNsYXNzTmFtZTogYCR7cHJlZml4Q2xzfS1jYXB0aW9uYCwgY2hpbGRyZW46IGNhcHRpb24gfSkpIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IGRhdGFQcm9wcyA9IHBpY2tBdHRycyhwcm9wcywgeyBkYXRhOiB0cnVlIH0pO1xuICAgIGNvbnN0IGFyaWFQcm9wcyA9IHBpY2tBdHRycyhwcm9wcywgeyBhcmlhOiB0cnVlIH0pO1xuICAgIGlmIChmaXhIZWFkZXIgfHwgaXNTdGlja3kpIHtcbiAgICAgICAgLy8gPj4+Pj4+IEZpeGVkIEhlYWRlclxuICAgICAgICBsZXQgYm9keUNvbnRlbnQ7XG4gICAgICAgIGlmICh0eXBlb2YgY3VzdG9taXplU2Nyb2xsQm9keSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgYm9keUNvbnRlbnQgPSBjdXN0b21pemVTY3JvbGxCb2R5KG1lcmdlZERhdGEsIHtcbiAgICAgICAgICAgICAgICBzY3JvbGxiYXJTaXplLFxuICAgICAgICAgICAgICAgIHJlZjogc2Nyb2xsQm9keVJlZixcbiAgICAgICAgICAgICAgICBvblNjcm9sbDogb25JbnRlcm5hbFNjcm9sbCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaGVhZGVyUHJvcHMuY29sV2lkdGhzID0gZmxhdHRlbkNvbHVtbnMubWFwKCh7IHdpZHRoIH0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29sV2lkdGggPSBpbmRleCA9PT0gZmxhdHRlbkNvbHVtbnMubGVuZ3RoIC0gMSA/IHdpZHRoIC0gc2Nyb2xsYmFyU2l6ZSA6IHdpZHRoO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgY29sV2lkdGggPT09ICdudW1iZXInICYmICFOdW1iZXIuaXNOYU4oY29sV2lkdGgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjb2xXaWR0aDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgd2FybmluZyhwcm9wcy5jb2x1bW5zLmxlbmd0aCA9PT0gMCwgJ1doZW4gdXNlIGBjb21wb25lbnRzLmJvZHlgIHdpdGggcmVuZGVyIHByb3BzLiBFYWNoIGNvbHVtbiBzaG91bGQgaGF2ZSBhIGZpeGVkIGB3aWR0aGAgdmFsdWUuJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBib2R5Q29udGVudCA9IChfanN4KFwiZGl2XCIsIHsgc3R5bGU6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgc2Nyb2xsWFN0eWxlKSwgc2Nyb2xsWVN0eWxlKSwgb25TY3JvbGw6IG9uQm9keVNjcm9sbCwgcmVmOiBzY3JvbGxCb2R5UmVmLCBjbGFzc05hbWU6IGAke3ByZWZpeENsc30tYm9keWAsIGNoaWxkcmVuOiBfanN4cyhUYWJsZUNvbXBvbmVudCwgT2JqZWN0LmFzc2lnbih7IHN0eWxlOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHNjcm9sbFRhYmxlU3R5bGUpLCB7IHRhYmxlTGF5b3V0OiBtZXJnZWRUYWJsZUxheW91dCB9KSB9LCBhcmlhUHJvcHMsIHsgY2hpbGRyZW46IFtjYXB0aW9uRWxlbWVudCwgYm9keUNvbEdyb3VwLCBib2R5VGFibGUsICFmaXhGb290ZXIgJiYgc3VtbWFyeU5vZGUgJiYgKF9qc3goRm9vdGVyLCB7IHN0aWNreU9mZnNldHM6IHN0aWNreU9mZnNldHMsIGZsYXR0ZW5Db2x1bW5zOiBmbGF0dGVuQ29sdW1ucywgY2hpbGRyZW46IHN1bW1hcnlOb2RlIH0pKV0gfSkpIH0pKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBGaXhlZCBob2xkZXIgc2hhcmUgdGhlIHByb3BzXG4gICAgICAgIGNvbnN0IGZpeGVkSG9sZGVyUHJvcHMgPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7IG5vRGF0YTogIW1lcmdlZERhdGEubGVuZ3RoLCBtYXhDb250ZW50U2Nyb2xsOiBob3Jpem9uU2Nyb2xsICYmIG1lcmdlZFNjcm9sbFggPT09ICdtYXgtY29udGVudCcgfSwgaGVhZGVyUHJvcHMpLCBjb2x1bW5Db250ZXh0KSwgeyBkaXJlY3Rpb24sXG4gICAgICAgICAgICBzdGlja3lDbGFzc05hbWUsIHNjcm9sbFg6IG1lcmdlZFNjcm9sbFgsIHRhYmxlTGF5b3V0OiBtZXJnZWRUYWJsZUxheW91dCwgb25TY3JvbGw6IG9uSW50ZXJuYWxTY3JvbGwgfSk7XG4gICAgICAgIGdyb3VwVGFibGVOb2RlID0gKF9qc3hzKF9GcmFnbWVudCwgeyBjaGlsZHJlbjogW3Nob3dIZWFkZXIgIT09IGZhbHNlICYmIChfanN4KEZpeGVkSG9sZGVyLCBPYmplY3QuYXNzaWduKHt9LCBmaXhlZEhvbGRlclByb3BzLCB7IHN0aWNreVRvcE9mZnNldDogb2Zmc2V0SGVhZGVyLCBjbGFzc05hbWU6IGAke3ByZWZpeENsc30taGVhZGVyYCwgcmVmOiBzY3JvbGxIZWFkZXJSZWYsIGNvbEdyb3VwOiBib2R5Q29sR3JvdXAsIGNoaWxkcmVuOiByZW5kZXJGaXhlZEhlYWRlclRhYmxlIH0pKSksIGJvZHlDb250ZW50LCBmaXhGb290ZXIgJiYgZml4Rm9vdGVyICE9PSAndG9wJyAmJiAoX2pzeChGaXhlZEhvbGRlciwgT2JqZWN0LmFzc2lnbih7fSwgZml4ZWRIb2xkZXJQcm9wcywgeyBzdGlja3lCb3R0b21PZmZzZXQ6IG9mZnNldFN1bW1hcnksIGNsYXNzTmFtZTogYCR7cHJlZml4Q2xzfS1zdW1tYXJ5YCwgcmVmOiBzY3JvbGxTdW1tYXJ5UmVmLCBjb2xHcm91cDogYm9keUNvbEdyb3VwLCBjaGlsZHJlbjogcmVuZGVyRml4ZWRGb290ZXJUYWJsZSB9KSkpLCBpc1N0aWNreSAmJiBzY3JvbGxCb2R5UmVmLmN1cnJlbnQgJiYgc2Nyb2xsQm9keVJlZi5jdXJyZW50IGluc3RhbmNlb2YgRWxlbWVudCAmJiAoX2pzeChTdGlja3lTY3JvbGxCYXIsIHsgcmVmOiBzdGlja3lSZWYsIG9mZnNldFNjcm9sbDogb2Zmc2V0U2Nyb2xsLCBzY3JvbGxCb2R5UmVmOiBzY3JvbGxCb2R5UmVmLCBvblNjcm9sbDogb25JbnRlcm5hbFNjcm9sbCwgY29udGFpbmVyOiBjb250YWluZXIsIGRpcmVjdGlvbjogZGlyZWN0aW9uIH0pKV0gfSkpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgLy8gPj4+Pj4+IFVuaXF1ZSB0YWJsZVxuICAgICAgICBncm91cFRhYmxlTm9kZSA9IChfanN4KFwiZGl2XCIsIHsgc3R5bGU6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBzY3JvbGxYU3R5bGUpLCBzY3JvbGxZU3R5bGUpLCBzdHlsZXMgPT09IG51bGwgfHwgc3R5bGVzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzdHlsZXMuY29udGVudCksIGNsYXNzTmFtZTogY2xzeChgJHtwcmVmaXhDbHN9LWNvbnRlbnRgLCBjbGFzc05hbWVzID09PSBudWxsIHx8IGNsYXNzTmFtZXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNsYXNzTmFtZXMuY29udGVudCksIG9uU2Nyb2xsOiBvbkludGVybmFsU2Nyb2xsLCByZWY6IHNjcm9sbEJvZHlSZWYsIGNoaWxkcmVuOiBfanN4cyhUYWJsZUNvbXBvbmVudCwgT2JqZWN0LmFzc2lnbih7IHN0eWxlOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHNjcm9sbFRhYmxlU3R5bGUpLCB7IHRhYmxlTGF5b3V0OiBtZXJnZWRUYWJsZUxheW91dCB9KSB9LCBhcmlhUHJvcHMsIHsgY2hpbGRyZW46IFtjYXB0aW9uRWxlbWVudCwgYm9keUNvbEdyb3VwLCBzaG93SGVhZGVyICE9PSBmYWxzZSAmJiBfanN4KEhlYWRlciwgT2JqZWN0LmFzc2lnbih7fSwgaGVhZGVyUHJvcHMsIGNvbHVtbkNvbnRleHQpKSwgYm9keVRhYmxlLCBzdW1tYXJ5Tm9kZSAmJiAoX2pzeChGb290ZXIsIHsgc3RpY2t5T2Zmc2V0czogc3RpY2t5T2Zmc2V0cywgZmxhdHRlbkNvbHVtbnM6IGZsYXR0ZW5Db2x1bW5zLCBjaGlsZHJlbjogc3VtbWFyeU5vZGUgfSkpXSB9KSkgfSkpO1xuICAgIH1cbiAgICBjb25zdCB0YWJsZVN0eWxlID0gT2JqZWN0LmFzc2lnbih7fSwgc3R5bGUpO1xuICAgIC8vIEFkZCBjc3MgdmFyIGZvciBzdGlja3kgaGVhZGVyIGB6SW5kZXhgIGNhbGNcbiAgICBpZiAoaXNTdGlja3kpIHtcbiAgICAgICAgdGFibGVTdHlsZVsnLS1jb2x1bW5zLWNvdW50J10gPSBmbGF0dGVuQ29sdW1ucy5sZW5ndGg7XG4gICAgfVxuICAgIGxldCBmdWxsVGFibGUgPSAoX2pzeHMoXCJkaXZcIiwgT2JqZWN0LmFzc2lnbih7IGNsYXNzTmFtZTogY2xzeChwcmVmaXhDbHMsIGNsYXNzTmFtZSwge1xuICAgICAgICAgICAgW2Ake3ByZWZpeENsc30tcnRsYF06IGRpcmVjdGlvbiA9PT0gJ3J0bCcsXG4gICAgICAgICAgICBbYCR7cHJlZml4Q2xzfS1maXgtc3RhcnQtc2hhZG93YF06IGhvcml6b25TY3JvbGwsXG4gICAgICAgICAgICBbYCR7cHJlZml4Q2xzfS1maXgtZW5kLXNoYWRvd2BdOiBob3Jpem9uU2Nyb2xsLFxuICAgICAgICAgICAgW2Ake3ByZWZpeENsc30tZml4LXN0YXJ0LXNoYWRvdy1zaG93YF06IGhvcml6b25TY3JvbGwgJiYgc2hhZG93U3RhcnQsXG4gICAgICAgICAgICBbYCR7cHJlZml4Q2xzfS1maXgtZW5kLXNoYWRvdy1zaG93YF06IGhvcml6b25TY3JvbGwgJiYgc2hhZG93RW5kLFxuICAgICAgICAgICAgW2Ake3ByZWZpeENsc30tbGF5b3V0LWZpeGVkYF06IHRhYmxlTGF5b3V0ID09PSAnZml4ZWQnLFxuICAgICAgICAgICAgW2Ake3ByZWZpeENsc30tZml4ZWQtaGVhZGVyYF06IGZpeEhlYWRlcixcbiAgICAgICAgICAgIC8qKiBObyB1c2VkIGJ1dCBmb3IgY29tcGF0aWJsZSAqL1xuICAgICAgICAgICAgW2Ake3ByZWZpeENsc30tZml4ZWQtY29sdW1uYF06IGZpeENvbHVtbixcbiAgICAgICAgICAgIFtgJHtwcmVmaXhDbHN9LXNjcm9sbC1ob3Jpem9udGFsYF06IGhvcml6b25TY3JvbGwsXG4gICAgICAgICAgICBbYCR7cHJlZml4Q2xzfS1oYXMtZml4LXN0YXJ0YF06IChfYSA9IGZsYXR0ZW5Db2x1bW5zWzBdKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZml4ZWQsXG4gICAgICAgICAgICBbYCR7cHJlZml4Q2xzfS1oYXMtZml4LWVuZGBdOiAoKF9iID0gZmxhdHRlbkNvbHVtbnNbZmxhdHRlbkNvbHVtbnMubGVuZ3RoIC0gMV0pID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5maXhlZCkgPT09ICdlbmQnLFxuICAgICAgICB9KSwgc3R5bGU6IHRhYmxlU3R5bGUsIGlkOiBpZCwgcmVmOiBmdWxsVGFibGVSZWYgfSwgZGF0YVByb3BzLCB7IGNoaWxkcmVuOiBbdGl0bGUgJiYgKF9qc3goUGFuZWwsIHsgY2xhc3NOYW1lOiBjbHN4KGAke3ByZWZpeENsc30tdGl0bGVgLCBjbGFzc05hbWVzID09PSBudWxsIHx8IGNsYXNzTmFtZXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNsYXNzTmFtZXMudGl0bGUpLCBzdHlsZTogc3R5bGVzID09PSBudWxsIHx8IHN0eWxlcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogc3R5bGVzLnRpdGxlLCBjaGlsZHJlbjogdGl0bGUobWVyZ2VkRGF0YSkgfSkpLCBfanN4KFwiZGl2XCIsIHsgcmVmOiBzY3JvbGxCb2R5Q29udGFpbmVyUmVmLCBjbGFzc05hbWU6IGNsc3goYCR7cHJlZml4Q2xzfS1jb250YWluZXJgLCBjbGFzc05hbWVzID09PSBudWxsIHx8IGNsYXNzTmFtZXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNsYXNzTmFtZXMuc2VjdGlvbiksIHN0eWxlOiBzdHlsZXMgPT09IG51bGwgfHwgc3R5bGVzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzdHlsZXMuc2VjdGlvbiwgY2hpbGRyZW46IGdyb3VwVGFibGVOb2RlIH0pLCBmb290ZXIgJiYgKF9qc3goUGFuZWwsIHsgY2xhc3NOYW1lOiBjbHN4KGAke3ByZWZpeENsc30tZm9vdGVyYCwgY2xhc3NOYW1lcyA9PT0gbnVsbCB8fCBjbGFzc05hbWVzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjbGFzc05hbWVzLmZvb3RlciksIHN0eWxlOiBzdHlsZXMgPT09IG51bGwgfHwgc3R5bGVzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzdHlsZXMuZm9vdGVyLCBjaGlsZHJlbjogZm9vdGVyKG1lcmdlZERhdGEpIH0pKV0gfSkpKTtcbiAgICBpZiAoaG9yaXpvblNjcm9sbCB8fCBmaXhIZWFkZXIgfHwgaXNTdGlja3kpIHtcbiAgICAgICAgZnVsbFRhYmxlID0gKF9qc3goUmVzaXplT2JzZXJ2ZXIsIHsgb25SZXNpemU6ICh7IG9mZnNldFdpZHRoIH0pID0+IG9uRnVsbFRhYmxlUmVzaXplKG9mZnNldFdpZHRoKSwgY2hpbGRyZW46IGZ1bGxUYWJsZSB9KSk7XG4gICAgfVxuICAgIGNvbnN0IGZpeGVkSW5mb0xpc3QgPSB1c2VGaXhlZEluZm8oZmxhdHRlbkNvbHVtbnMsIHN0aWNreU9mZnNldHMpO1xuICAgIGNvbnN0IFRhYmxlQ29udGV4dFZhbHVlID0gUmVhY3QudXNlTWVtbygoKSA9PiAoe1xuICAgICAgICAvLyBTY3JvbGxcbiAgICAgICAgc2Nyb2xsWDogbWVyZ2VkU2Nyb2xsWCxcbiAgICAgICAgc2Nyb2xsSW5mbyxcbiAgICAgICAgY2xhc3NOYW1lcyxcbiAgICAgICAgc3R5bGVzLFxuICAgICAgICAvLyBUYWJsZVxuICAgICAgICBwcmVmaXhDbHMsXG4gICAgICAgIGdldENvbXBvbmVudCxcbiAgICAgICAgc2Nyb2xsYmFyU2l6ZSxcbiAgICAgICAgZGlyZWN0aW9uLFxuICAgICAgICBmaXhlZEluZm9MaXN0LFxuICAgICAgICBpc1N0aWNreSxcbiAgICAgICAgY29tcG9uZW50V2lkdGgsXG4gICAgICAgIGZpeEhlYWRlcixcbiAgICAgICAgZml4Q29sdW1uLFxuICAgICAgICBob3Jpem9uU2Nyb2xsLFxuICAgICAgICAvLyBCb2R5XG4gICAgICAgIHRhYmxlTGF5b3V0OiBtZXJnZWRUYWJsZUxheW91dCxcbiAgICAgICAgcm93Q2xhc3NOYW1lLFxuICAgICAgICBleHBhbmRlZFJvd0NsYXNzTmFtZTogZXhwYW5kYWJsZUNvbmZpZy5leHBhbmRlZFJvd0NsYXNzTmFtZSxcbiAgICAgICAgZXhwYW5kSWNvbjogbWVyZ2VkRXhwYW5kSWNvbixcbiAgICAgICAgZXhwYW5kYWJsZVR5cGUsXG4gICAgICAgIGV4cGFuZFJvd0J5Q2xpY2s6IGV4cGFuZGFibGVDb25maWcuZXhwYW5kUm93QnlDbGljayxcbiAgICAgICAgZXhwYW5kZWRSb3dSZW5kZXI6IGV4cGFuZGFibGVDb25maWcuZXhwYW5kZWRSb3dSZW5kZXIsXG4gICAgICAgIGV4cGFuZGVkUm93T2Zmc2V0OiBleHBhbmRhYmxlQ29uZmlnLmV4cGFuZGVkUm93T2Zmc2V0LFxuICAgICAgICBvblRyaWdnZXJFeHBhbmQsXG4gICAgICAgIGV4cGFuZEljb25Db2x1bW5JbmRleDogZXhwYW5kYWJsZUNvbmZpZy5leHBhbmRJY29uQ29sdW1uSW5kZXgsXG4gICAgICAgIGluZGVudFNpemU6IGV4cGFuZGFibGVDb25maWcuaW5kZW50U2l6ZSxcbiAgICAgICAgYWxsQ29sdW1uc0ZpeGVkTGVmdDogZmxhdHRlbkNvbHVtbnMuZXZlcnkoY29sID0+IGNvbC5maXhlZCA9PT0gJ3N0YXJ0JyksXG4gICAgICAgIGVtcHR5Tm9kZSxcbiAgICAgICAgLy8gQ29sdW1uXG4gICAgICAgIGNvbHVtbnMsXG4gICAgICAgIGZsYXR0ZW5Db2x1bW5zLFxuICAgICAgICBvbkNvbHVtblJlc2l6ZSxcbiAgICAgICAgY29sV2lkdGhzLFxuICAgICAgICAvLyBSb3dcbiAgICAgICAgaG92ZXJTdGFydFJvdzogc3RhcnRSb3csXG4gICAgICAgIGhvdmVyRW5kUm93OiBlbmRSb3csXG4gICAgICAgIG9uSG92ZXIsXG4gICAgICAgIHJvd0V4cGFuZGFibGU6IGV4cGFuZGFibGVDb25maWcucm93RXhwYW5kYWJsZSxcbiAgICAgICAgb25Sb3csXG4gICAgICAgIGdldFJvd0tleSxcbiAgICAgICAgZXhwYW5kZWRLZXlzOiBtZXJnZWRFeHBhbmRlZEtleXMsXG4gICAgICAgIGNoaWxkcmVuQ29sdW1uTmFtZTogbWVyZ2VkQ2hpbGRyZW5Db2x1bW5OYW1lLFxuICAgICAgICByb3dIb3ZlcmFibGUsXG4gICAgICAgIC8vIE1lYXN1cmUgUm93XG4gICAgICAgIG1lYXN1cmVSb3dSZW5kZXIsXG4gICAgfSksIFtcbiAgICAgICAgLy8gU2Nyb2xsXG4gICAgICAgIG1lcmdlZFNjcm9sbFgsXG4gICAgICAgIHNjcm9sbEluZm8sXG4gICAgICAgIGNsYXNzTmFtZXMsXG4gICAgICAgIHN0eWxlcyxcbiAgICAgICAgLy8gVGFibGVcbiAgICAgICAgcHJlZml4Q2xzLFxuICAgICAgICBnZXRDb21wb25lbnQsXG4gICAgICAgIHNjcm9sbGJhclNpemUsXG4gICAgICAgIGRpcmVjdGlvbixcbiAgICAgICAgZml4ZWRJbmZvTGlzdCxcbiAgICAgICAgaXNTdGlja3ksXG4gICAgICAgIGNvbXBvbmVudFdpZHRoLFxuICAgICAgICBmaXhIZWFkZXIsXG4gICAgICAgIGZpeENvbHVtbixcbiAgICAgICAgaG9yaXpvblNjcm9sbCxcbiAgICAgICAgLy8gQm9keVxuICAgICAgICBtZXJnZWRUYWJsZUxheW91dCxcbiAgICAgICAgcm93Q2xhc3NOYW1lLFxuICAgICAgICBleHBhbmRhYmxlQ29uZmlnLmV4cGFuZGVkUm93Q2xhc3NOYW1lLFxuICAgICAgICBtZXJnZWRFeHBhbmRJY29uLFxuICAgICAgICBleHBhbmRhYmxlVHlwZSxcbiAgICAgICAgZXhwYW5kYWJsZUNvbmZpZy5leHBhbmRSb3dCeUNsaWNrLFxuICAgICAgICBleHBhbmRhYmxlQ29uZmlnLmV4cGFuZGVkUm93UmVuZGVyLFxuICAgICAgICBleHBhbmRhYmxlQ29uZmlnLmV4cGFuZGVkUm93T2Zmc2V0LFxuICAgICAgICBvblRyaWdnZXJFeHBhbmQsXG4gICAgICAgIGV4cGFuZGFibGVDb25maWcuZXhwYW5kSWNvbkNvbHVtbkluZGV4LFxuICAgICAgICBleHBhbmRhYmxlQ29uZmlnLmluZGVudFNpemUsXG4gICAgICAgIGVtcHR5Tm9kZSxcbiAgICAgICAgLy8gQ29sdW1uXG4gICAgICAgIGNvbHVtbnMsXG4gICAgICAgIGZsYXR0ZW5Db2x1bW5zLFxuICAgICAgICBvbkNvbHVtblJlc2l6ZSxcbiAgICAgICAgY29sV2lkdGhzLFxuICAgICAgICAvLyBSb3dcbiAgICAgICAgc3RhcnRSb3csXG4gICAgICAgIGVuZFJvdyxcbiAgICAgICAgb25Ib3ZlcixcbiAgICAgICAgZXhwYW5kYWJsZUNvbmZpZy5yb3dFeHBhbmRhYmxlLFxuICAgICAgICBvblJvdyxcbiAgICAgICAgZ2V0Um93S2V5LFxuICAgICAgICBtZXJnZWRFeHBhbmRlZEtleXMsXG4gICAgICAgIG1lcmdlZENoaWxkcmVuQ29sdW1uTmFtZSxcbiAgICAgICAgcm93SG92ZXJhYmxlLFxuICAgICAgICBtZWFzdXJlUm93UmVuZGVyLFxuICAgIF0pO1xuICAgIHJldHVybiBfanN4KFRhYmxlQ29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZTogVGFibGVDb250ZXh0VmFsdWUsIGNoaWxkcmVuOiBmdWxsVGFibGUgfSk7XG59O1xuY29uc3QgUmVmVGFibGUgPSBSZWFjdC5mb3J3YXJkUmVmKFRhYmxlKTtcbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgUmVmVGFibGUuZGlzcGxheU5hbWUgPSAnVGFibGUnO1xufVxuZXhwb3J0IGNvbnN0IGdlblRhYmxlID0gKHNob3VsZFRyaWdnZXJSZW5kZXIpID0+IHtcbiAgICByZXR1cm4gbWFrZUltbXV0YWJsZShSZWZUYWJsZSwgc2hvdWxkVHJpZ2dlclJlbmRlcik7XG59O1xuY29uc3QgSW1tdXRhYmxlVGFibGUgPSBnZW5UYWJsZSgpO1xuSW1tdXRhYmxlVGFibGUuRVhQQU5EX0NPTFVNTiA9IEVYUEFORF9DT0xVTU47XG5JbW11dGFibGVUYWJsZS5JTlRFUk5BTF9IT09LUyA9IElOVEVSTkFMX0hPT0tTO1xuSW1tdXRhYmxlVGFibGUuQ29sdW1uID0gQ29sdW1uO1xuSW1tdXRhYmxlVGFibGUuQ29sdW1uR3JvdXAgPSBDb2x1bW5Hcm91cDtcbkltbXV0YWJsZVRhYmxlLlN1bW1hcnkgPSBGb290ZXJDb21wb25lbnRzO1xuZXhwb3J0IGRlZmF1bHQgSW1tdXRhYmxlVGFibGU7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
@@ -40,6 +40,16 @@ function getTargetScrollBarSize(target) {
40
40
  height: 0
41
41
  };
42
42
  }
43
- return measureScrollbarSize();
43
+ // Measure the space the actual scroll body reserves. A generic probe misses
44
+ // element-specific scrollbar styling (including classic gutters on systems
45
+ // whose default scrollbar overlays the content).
46
+ var style = getComputedStyle(target);
47
+ var borderWidth = function borderWidth(value) {
48
+ return Number.parseFloat(value) || 0;
49
+ };
50
+ return {
51
+ width: Math.max(0, target.offsetWidth - target.clientWidth - borderWidth(style.borderLeftWidth) - borderWidth(style.borderRightWidth)),
52
+ height: Math.max(0, target.offsetHeight - target.clientHeight - borderWidth(style.borderTopWidth) - borderWidth(style.borderBottomWidth))
53
+ };
44
54
  }
45
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvVGFibGUvaW50ZXJuYWwva2VybmVsL3NyYy9jb21wb25lbnRzL1RhYmxlL2ludGVybmFsL2tlcm5lbC91dGlscy9nZXRTY3JvbGxCYXJTaXplLnRzIl0sIm5hbWVzIjpbImNhY2hlZCIsIm1lYXN1cmVTY3JvbGxiYXJTaXplIiwibWVhc3VyZUVsZSIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsIm1lYXN1cmVTdHlsZSIsInN0eWxlIiwicG9zaXRpb24iLCJsZWZ0IiwidG9wIiwid2lkdGgiLCJoZWlnaHQiLCJvdmVyZmxvdyIsImJvZHkiLCJhcHBlbmRDaGlsZCIsInNjcm9sbFdpZHRoIiwib2Zmc2V0V2lkdGgiLCJjbGllbnRXaWR0aCIsInNjcm9sbEhlaWdodCIsIm9mZnNldEhlaWdodCIsImNsaWVudEhlaWdodCIsInJlbW92ZUNoaWxkIiwiZ2V0U2Nyb2xsQmFyU2l6ZSIsImZyZXNoIiwidW5kZWZpbmVkIiwiZ2V0VGFyZ2V0U2Nyb2xsQmFyU2l6ZSIsInRhcmdldCIsIkVsZW1lbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFFQSxJQUFJQSxNQUFpQztBQUVyQyxTQUFTQyxvQkFBb0JBLENBQUEsRUFBQTtFQUMzQixJQUFNQyxVQUFVLEdBQUdDLFFBQVEsQ0FBQ0MsYUFBYSxDQUFDLEtBQUssQ0FBQztFQUNoRCxJQUFNQyxZQUFZLEdBQUdILFVBQVUsQ0FBQ0ksS0FBSztFQUNyQ0QsWUFBWSxDQUFDRSxRQUFRLEdBQUcsVUFBVTtFQUNsQ0YsWUFBWSxDQUFDRyxJQUFJLEdBQUcsR0FBRztFQUN2QkgsWUFBWSxDQUFDSSxHQUFHLEdBQUcsR0FBRztFQUN0QkosWUFBWSxDQUFDSyxLQUFLLEdBQUcsT0FBTztFQUM1QkwsWUFBWSxDQUFDTSxNQUFNLEdBQUcsT0FBTztFQUM3Qk4sWUFBWSxDQUFDTyxRQUFRLEdBQUcsUUFBUTtFQUVoQ1QsUUFBUSxDQUFDVSxJQUFJLENBQUNDLFdBQVcsQ0FBQ1osVUFBVSxDQUFDO0VBRXJDLElBQU1hLFdBQVcsR0FBR2IsVUFBVSxDQUFDYyxXQUFXLEdBQUdkLFVBQVUsQ0FBQ2UsV0FBVztFQUNuRSxJQUFNQyxZQUFZLEdBQUdoQixVQUFVLENBQUNpQixZQUFZLEdBQUdqQixVQUFVLENBQUNrQixZQUFZO0VBRXRFakIsUUFBUSxDQUFDVSxJQUFJLENBQUNRLFdBQVcsQ0FBQ25CLFVBQVUsQ0FBQztFQUVyQyxPQUFPO0lBQUVRLEtBQUssRUFBRUssV0FBVztJQUFFSixNQUFNLEVBQUVPO0VBQVksQ0FBRTtBQUNyRDtBQUVjLFNBQVVJLGdCQUFnQkEsQ0FBQ0MsS0FBZSxFQUFBO0VBQ3RELElBQUksT0FBT3BCLFFBQVEsS0FBSyxXQUFXLEVBQUU7SUFDbkMsT0FBTyxDQUFDO0VBQ1Y7RUFFQSxJQUFJb0IsS0FBSyxJQUFJdkIsTUFBTSxLQUFLd0IsU0FBUyxFQUFFO0lBQ2pDeEIsTUFBTSxHQUFHQyxvQkFBb0IsQ0FBQSxDQUFFO0VBQ2pDO0VBQ0EsT0FBT0QsTUFBTSxDQUFDVSxLQUFLO0FBQ3JCO0FBRU0sU0FBVWUsc0JBQXNCQSxDQUFDQyxNQUFtQixFQUFBO0VBQ3hELElBQUksT0FBT3ZCLFFBQVEsS0FBSyxXQUFXLElBQUksQ0FBQ3VCLE1BQU0sSUFBSSxFQUFFQSxNQUFNLFlBQVlDLE9BQU8sQ0FBQyxFQUFFO0lBQzlFLE9BQU87TUFBRWpCLEtBQUssRUFBRSxDQUFDO01BQUVDLE1BQU0sRUFBRTtJQUFDLENBQUU7RUFDaEM7RUFFQSxPQUFPVixvQkFBb0IsQ0FBQSxDQUFFO0FBQy9CIiwiZmlsZSI6ImNvbXBvbmVudHMvVGFibGUvaW50ZXJuYWwva2VybmVsL3V0aWxzL2dldFNjcm9sbEJhclNpemUuanMiLCJzb3VyY2VzQ29udGVudCI6W251bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
55
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvVGFibGUvaW50ZXJuYWwva2VybmVsL3NyYy9jb21wb25lbnRzL1RhYmxlL2ludGVybmFsL2tlcm5lbC91dGlscy9nZXRTY3JvbGxCYXJTaXplLnRzIiwiY29tcG9uZW50cy9UYWJsZS9pbnRlcm5hbC9rZXJuZWwvdXRpbHMvZ2V0U2Nyb2xsQmFyU2l6ZS5qcyJdLCJuYW1lcyI6WyJjYWNoZWQiLCJtZWFzdXJlU2Nyb2xsYmFyU2l6ZSIsIm1lYXN1cmVFbGUiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJtZWFzdXJlU3R5bGUiLCJzdHlsZSIsInBvc2l0aW9uIiwibGVmdCIsInRvcCIsIndpZHRoIiwiaGVpZ2h0Iiwib3ZlcmZsb3ciLCJib2R5IiwiYXBwZW5kQ2hpbGQiLCJzY3JvbGxXaWR0aCIsIm9mZnNldFdpZHRoIiwiY2xpZW50V2lkdGgiLCJzY3JvbGxIZWlnaHQiLCJvZmZzZXRIZWlnaHQiLCJjbGllbnRIZWlnaHQiLCJyZW1vdmVDaGlsZCIsImdldFNjcm9sbEJhclNpemUiLCJmcmVzaCIsInVuZGVmaW5lZCIsImdldFRhcmdldFNjcm9sbEJhclNpemUiLCJ0YXJnZXQiLCJFbGVtZW50IiwiZ2V0Q29tcHV0ZWRTdHlsZSIsImJvcmRlcldpZHRoIiwidmFsdWUiLCJOdW1iZXIiLCJwYXJzZUZsb2F0IiwiTWF0aCIsIm1heCIsImJvcmRlckxlZnRXaWR0aCIsImJvcmRlclJpZ2h0V2lkdGgiLCJib3JkZXJUb3BXaWR0aCIsImJvcmRlckJvdHRvbVdpZHRoIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBRUEsSUFBSUEsTUFBaUM7QUFFckMsU0FBU0Msb0JBQW9CQSxDQUFBLEVBQUE7RUFDM0IsSUFBTUMsVUFBVSxHQUFHQyxRQUFRLENBQUNDLGFBQWEsQ0FBQyxLQUFLLENBQUM7RUFDaEQsSUFBTUMsWUFBWSxHQUFHSCxVQUFVLENBQUNJLEtBQUs7RUFDckNELFlBQVksQ0FBQ0UsUUFBUSxHQUFHLFVBQVU7RUFDbENGLFlBQVksQ0FBQ0csSUFBSSxHQUFHLEdBQUc7RUFDdkJILFlBQVksQ0FBQ0ksR0FBRyxHQUFHLEdBQUc7RUFDdEJKLFlBQVksQ0FBQ0ssS0FBSyxHQUFHLE9BQU87RUFDNUJMLFlBQVksQ0FBQ00sTUFBTSxHQUFHLE9BQU87RUFDN0JOLFlBQVksQ0FBQ08sUUFBUSxHQUFHLFFBQVE7RUFFaENULFFBQVEsQ0FBQ1UsSUFBSSxDQUFDQyxXQUFXLENBQUNaLFVBQVUsQ0FBQztFQUVyQyxJQUFNYSxXQUFXLEdBQUdiLFVBQVUsQ0FBQ2MsV0FBVyxHQUFHZCxVQUFVLENBQUNlLFdBQVc7RUFDbkUsSUFBTUMsWUFBWSxHQUFHaEIsVUFBVSxDQUFDaUIsWUFBWSxHQUFHakIsVUFBVSxDQUFDa0IsWUFBWTtFQUV0RWpCLFFBQVEsQ0FBQ1UsSUFBSSxDQUFDUSxXQUFXLENBQUNuQixVQUFVLENBQUM7RUFFckMsT0FBTztJQUFFUSxLQUFLLEVBQUVLLFdBQVc7SUFBRUosTUFBTSxFQUFFTztFQUFZLENBQUU7QUFDckQ7QUFFYyxTQUFVSSxnQkFBZ0JBLENBQUNDLEtBQWUsRUFBQTtFQUN0RCxJQUFJLE9BQU9wQixRQUFRLEtBQUssV0FBVyxFQUFFO0lBQ25DLE9BQU8sQ0FBQztFQUNWO0VBRUEsSUFBSW9CLEtBQUssSUFBSXZCLE1BQU0sS0FBS3dCLFNBQVMsRUFBRTtJQUNqQ3hCLE1BQU0sR0FBR0Msb0JBQW9CLENBQUEsQ0FBRTtFQUNqQztFQUNBLE9BQU9ELE1BQU0sQ0FBQ1UsS0FBSztBQUNyQjtBQUVNLFNBQVVlLHNCQUFzQkEsQ0FBQ0MsTUFBbUIsRUFBQTtFQUN4RCxJQUFJLE9BQU92QixRQUFRLEtBQUssV0FBVyxJQUFJLENBQUN1QixNQUFNLElBQUksRUFBRUEsTUFBTSxZQUFZQyxPQUFPLENBQUMsRUFBRTtJQUM5RSxPQUFPO01BQUVqQixLQUFLLEVBQUUsQ0FBQztNQUFFQyxNQUFNLEVBQUU7SUFBQyxDQUFFO0VBQ2hDO0VBRUE7RUFDQTtFQUNBO0VBQ0EsSUFBTUwsS0FBSyxHQUFHc0IsZ0JBQWdCLENBQUNGLE1BQU0sQ0FBQztFQUN0QyxJQUFNRyxXQUFXLEdBQUcsU0FBZEEsV0FBV0EsQ0FBSUMsS0FBYTtJQUFBLE9BQUtDLE1BQU0sQ0FBQ0MsVUFBVSxDQUFDRixLQUFLLENBQUMsSUFBSSxDQUFDO0VBQUE7RUFFcEUsT0FBTztJQUNMcEIsS0FBSyxFQUFFdUIsSUFBSSxDQUFDQyxHQUFHLENBQ2IsQ0FBQyxFQUNEUixNQUFNLENBQUNWLFdBQVcsR0FBR1UsTUFBTSxDQUFDVCxXQUFXLEdBQUdZLFdBQVcsQ0FBQ3ZCLEtBQUssQ0FBQzZCLGVBQWUsQ0FBQyxHQUFHTixXQUFXLENBQUN2QixLQUFLLENBQUM4QixnQkFBZ0IsQ0FBQyxDQUNuSDtJQUNEekIsTUFBTSxFQUFFc0IsSUFBSSxDQUFDQyxHQUFHLENBQ2QsQ0FBQyxFQUNEUixNQUFNLENBQUNQLFlBQVksR0FBR08sTUFBTSxDQUFDTixZQUFZLEdBQUdTLFdBQVcsQ0FBQ3ZCLEtBQUssQ0FBQytCLGNBQWMsQ0FBQyxHQUFHUixXQUFXLENBQUN2QixLQUFLLENBQUNnQyxpQkFBaUIsQ0FBQztFQ2hCdEgsQ0RrQkQ7QUFDSCIsImZpbGUiOiJjb21wb25lbnRzL1RhYmxlL2ludGVybmFsL2tlcm5lbC91dGlscy9nZXRTY3JvbGxCYXJTaXplLmpzIiwic291cmNlc0NvbnRlbnQiOltudWxsLCJsZXQgY2FjaGVkO1xuZnVuY3Rpb24gbWVhc3VyZVNjcm9sbGJhclNpemUoKSB7XG4gICAgY29uc3QgbWVhc3VyZUVsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIGNvbnN0IG1lYXN1cmVTdHlsZSA9IG1lYXN1cmVFbGUuc3R5bGU7XG4gICAgbWVhc3VyZVN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJztcbiAgICBtZWFzdXJlU3R5bGUubGVmdCA9ICcwJztcbiAgICBtZWFzdXJlU3R5bGUudG9wID0gJzAnO1xuICAgIG1lYXN1cmVTdHlsZS53aWR0aCA9ICcxMDBweCc7XG4gICAgbWVhc3VyZVN0eWxlLmhlaWdodCA9ICcxMDBweCc7XG4gICAgbWVhc3VyZVN0eWxlLm92ZXJmbG93ID0gJ3Njcm9sbCc7XG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChtZWFzdXJlRWxlKTtcbiAgICBjb25zdCBzY3JvbGxXaWR0aCA9IG1lYXN1cmVFbGUub2Zmc2V0V2lkdGggLSBtZWFzdXJlRWxlLmNsaWVudFdpZHRoO1xuICAgIGNvbnN0IHNjcm9sbEhlaWdodCA9IG1lYXN1cmVFbGUub2Zmc2V0SGVpZ2h0IC0gbWVhc3VyZUVsZS5jbGllbnRIZWlnaHQ7XG4gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChtZWFzdXJlRWxlKTtcbiAgICByZXR1cm4geyB3aWR0aDogc2Nyb2xsV2lkdGgsIGhlaWdodDogc2Nyb2xsSGVpZ2h0IH07XG59XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRTY3JvbGxCYXJTaXplKGZyZXNoKSB7XG4gICAgaWYgKHR5cGVvZiBkb2N1bWVudCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICAgIGlmIChmcmVzaCB8fCBjYWNoZWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjYWNoZWQgPSBtZWFzdXJlU2Nyb2xsYmFyU2l6ZSgpO1xuICAgIH1cbiAgICByZXR1cm4gY2FjaGVkLndpZHRoO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldFRhcmdldFNjcm9sbEJhclNpemUodGFyZ2V0KSB7XG4gICAgaWYgKHR5cGVvZiBkb2N1bWVudCA9PT0gJ3VuZGVmaW5lZCcgfHwgIXRhcmdldCB8fCAhKHRhcmdldCBpbnN0YW5jZW9mIEVsZW1lbnQpKSB7XG4gICAgICAgIHJldHVybiB7IHdpZHRoOiAwLCBoZWlnaHQ6IDAgfTtcbiAgICB9XG4gICAgLy8gTWVhc3VyZSB0aGUgc3BhY2UgdGhlIGFjdHVhbCBzY3JvbGwgYm9keSByZXNlcnZlcy4gQSBnZW5lcmljIHByb2JlIG1pc3Nlc1xuICAgIC8vIGVsZW1lbnQtc3BlY2lmaWMgc2Nyb2xsYmFyIHN0eWxpbmcgKGluY2x1ZGluZyBjbGFzc2ljIGd1dHRlcnMgb24gc3lzdGVtc1xuICAgIC8vIHdob3NlIGRlZmF1bHQgc2Nyb2xsYmFyIG92ZXJsYXlzIHRoZSBjb250ZW50KS5cbiAgICBjb25zdCBzdHlsZSA9IGdldENvbXB1dGVkU3R5bGUodGFyZ2V0KTtcbiAgICBjb25zdCBib3JkZXJXaWR0aCA9ICh2YWx1ZSkgPT4gTnVtYmVyLnBhcnNlRmxvYXQodmFsdWUpIHx8IDA7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgd2lkdGg6IE1hdGgubWF4KDAsIHRhcmdldC5vZmZzZXRXaWR0aCAtIHRhcmdldC5jbGllbnRXaWR0aCAtIGJvcmRlcldpZHRoKHN0eWxlLmJvcmRlckxlZnRXaWR0aCkgLSBib3JkZXJXaWR0aChzdHlsZS5ib3JkZXJSaWdodFdpZHRoKSksXG4gICAgICAgIGhlaWdodDogTWF0aC5tYXgoMCwgdGFyZ2V0Lm9mZnNldEhlaWdodCAtIHRhcmdldC5jbGllbnRIZWlnaHQgLSBib3JkZXJXaWR0aChzdHlsZS5ib3JkZXJUb3BXaWR0aCkgLSBib3JkZXJXaWR0aChzdHlsZS5ib3JkZXJCb3R0b21XaWR0aCkpLFxuICAgIH07XG59Il0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
@@ -84,6 +84,9 @@
84
84
  .om-component-ui-table-header {
85
85
  overflow: hidden;
86
86
  }
87
+ .om-component-ui-table-thead > tr > th.om-component-ui-table-cell-scrollbar, .om-component-ui-table-thead > tr > td.om-component-ui-table-cell-scrollbar {
88
+ padding: 0;
89
+ }
87
90
  .om-component-ui-table-sticky-holder {
88
91
  position: sticky;
89
92
  z-index: 3;
@@ -201,6 +204,9 @@
201
204
  .om-component-ui-table-fill .om-component-ui-table-tbody > tr:last-child > td {
202
205
  border-bottom: 1px solid var(--om-border-neutral, #e3e4e4);
203
206
  }
207
+ .om-component-ui-table-stroke .om-component-ui-table-header {
208
+ background: var(--om-bg-default-secondary, #f8f8f8);
209
+ }
204
210
  .om-component-ui-table-stroke .om-component-ui-table-thead > tr > th,
205
211
  .om-component-ui-table-stroke .om-component-ui-table-thead > tr > td {
206
212
  border-bottom: none;
@@ -25,6 +25,9 @@ var __rest = void 0 && (void 0).__rest || function (s, e) {
25
25
  }
26
26
  return t;
27
27
  };
28
+ var DEFAULT_TOOLTIP_GAP = 4;
29
+ // Tooltip.scss extends the arrow 8px beyond the tooltip body on each side.
30
+ var TOOLTIP_ARROW_OVERHANG = 8;
28
31
  var Tooltip = exports.Tooltip = function Tooltip(props) {
29
32
  var _props$className = props.className,
30
33
  className = _props$className === void 0 ? '' : _props$className,
@@ -32,6 +35,7 @@ var Tooltip = exports.Tooltip = function Tooltip(props) {
32
35
  prefixCls = _props$prefixCls === void 0 ? 'tooltip' : _props$prefixCls,
33
36
  _props$placement = props.placement,
34
37
  placement = _props$placement === void 0 ? 'top' : _props$placement,
38
+ offset = props.offset,
35
39
  title = props.title,
36
40
  body = props.body,
37
41
  _props$arrow = props.arrow,
@@ -42,10 +46,12 @@ var Tooltip = exports.Tooltip = function Tooltip(props) {
42
46
  defaultOpen = props.defaultOpen,
43
47
  onOpenChange = props.onOpenChange,
44
48
  getPopupContainer = props.getPopupContainer,
45
- rest = __rest(props, ["className", "prefixCls", "placement", "title", "body", "arrow", "clickable", "open", "defaultOpen", "onOpenChange", "getPopupContainer"]);
49
+ rest = __rest(props, ["className", "prefixCls", "placement", "offset", "title", "body", "arrow", "clickable", "open", "defaultOpen", "onOpenChange", "getPopupContainer"]);
46
50
  var classes = (0, _classnames["default"])(prefixCls);
47
51
  var hasTitle = title !== null && title !== undefined && title !== false;
48
52
  var tooltipClassName = (0, _classnames.joinCls)(hasTitle ? classes('with-title') : undefined, className);
53
+ // Explicit offsets retain react-tooltip's body-to-anchor distance semantics.
54
+ var tooltipOffset = offset !== null && offset !== void 0 ? offset : DEFAULT_TOOLTIP_GAP + (arrow ? TOOLTIP_ARROW_OVERHANG : 0);
49
55
  var _useControlledState = (0, _useControlledState3["default"])(defaultOpen !== null && defaultOpen !== void 0 ? defaultOpen : false, open),
50
56
  _useControlledState2 = (0, _slicedToArray2["default"])(_useControlledState, 2),
51
57
  innerOpen = _useControlledState2[0],
@@ -59,6 +65,7 @@ var Tooltip = exports.Tooltip = function Tooltip(props) {
59
65
  container: getPopupContainer,
60
66
  children: (0, _jsxRuntime.jsxs)(_reactTooltip.Tooltip, Object.assign({}, rest, {
61
67
  place: placement,
68
+ offset: tooltipOffset,
62
69
  noArrow: !arrow,
63
70
  clickable: clickable,
64
71
  isOpen: isOpen,
@@ -77,4 +84,4 @@ var Tooltip = exports.Tooltip = function Tooltip(props) {
77
84
  });
78
85
  };
79
86
  var _default = exports["default"] = /*#__PURE__*/(0, _react.memo)(Tooltip);
80
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvVG9vbHRpcC9Ub29sdGlwLnRzeCIsImNvbXBvbmVudHMvVG9vbHRpcC9Ub29sdGlwLmpzIl0sIm5hbWVzIjpbIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3R5cGVvZiIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiVG9vbHRpcCIsIl9zbGljZWRUb0FycmF5MiIsIl9qc3hSdW50aW1lIiwiX3JlYWN0IiwiX3JlYWN0VG9vbHRpcCIsIl91c2VDb250cm9sbGVkU3RhdGUzIiwiX3VzZUV2ZW50Q2FsbGJhY2siLCJfUG9ydGFsIiwiX2NsYXNzbmFtZXMiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsImhhcyIsImdldCIsInNldCIsIl90IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiX19yZXN0IiwicyIsInAiLCJwcm90b3R5cGUiLCJpbmRleE9mIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJwcm9wcyIsIl9wcm9wcyRjbGFzc05hbWUiLCJjbGFzc05hbWUiLCJfcHJvcHMkcHJlZml4Q2xzIiwicHJlZml4Q2xzIiwiX3Byb3BzJHBsYWNlbWVudCIsInBsYWNlbWVudCIsInRpdGxlIiwiYm9keSIsIl9wcm9wcyRhcnJvdyIsImFycm93IiwiX3Byb3BzJGNsaWNrYWJsZSIsImNsaWNrYWJsZSIsIm9wZW4iLCJkZWZhdWx0T3BlbiIsIm9uT3BlbkNoYW5nZSIsImdldFBvcHVwQ29udGFpbmVyIiwicmVzdCIsImNsYXNzZXMiLCJjbGFzc25hbWVzIiwiaGFzVGl0bGUiLCJ1bmRlZmluZWQiLCJ0b29sdGlwQ2xhc3NOYW1lIiwiam9pbkNscyIsIl91c2VDb250cm9sbGVkU3RhdGUiLCJ1c2VDb250cm9sbGVkU3RhdGUiLCJfdXNlQ29udHJvbGxlZFN0YXRlMiIsImlubmVyT3BlbiIsInNldElubmVyT3BlbiIsImlzT3BlbiIsImhhbmRsZVNldElzT3BlbiIsInVzZUV2ZW50Q2FsbGJhY2siLCJfanN4IiwiUG9ydGFsIiwiY29udGFpbmVyIiwiY2hpbGRyZW4iLCJfanN4cyIsIlJlYWN0VG9vbHRpcCIsImFzc2lnbiIsInBsYWNlIiwibm9BcnJvdyIsInNldElzT3BlbiIsInJvbGUiLCJjbGFzc05hbWVBcnJvdyIsIl9kZWZhdWx0IiwibWVtbyJdLCJtYXBwaW5ncyI6IjtBQUFBLFlBQVk7O0FBQUMsSUFBQUEsc0JBQUEsR0FBQUMsT0FBQTtBQUFBLElBQUFDLE9BQUEsR0FBQUQsT0FBQTtBQUFBRSxNQUFBLENBQUFDLGNBQUEsQ0FBQUMsT0FBQTtFQUFBQyxLQUFBO0FBQUE7QUFBQUQsT0FBQSxjQUFBQSxPQUFBLENBQUFFLE9BQUE7QUFBQSxJQUFBQyxlQUFBLEdBQUFSLHNCQUFBLENBQUFDLE9BQUE7QUNZYixJQUFBUSxXQUFBLEdBQUFSLE9BQUE7QURYQSxJQUFBUyxNQUFBLEdBQUFULE9BQUE7QUFDQSxJQUFBVSxhQUFBLEdBQUFWLE9BQUE7QUFDQSxJQUFBVyxvQkFBQSxHQUFBWixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVksaUJBQUEsR0FBQWIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFhLE9BQUEsR0FBQWIsT0FBQTtBQUNBLElBQUFjLFdBQUEsR0FBQUMsdUJBQUEsQ0FBQWYsT0FBQTtBQUdBQSxPQUFBO0FBQWlCLFNBQUFlLHdCQUFBQyxDQUFBLEVBQUFDLENBQUEsNkJBQUFDLE9BQUEsTUFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBSCx1QkFBQSxZQUFBQSx3QkFBQUMsQ0FBQSxFQUFBQyxDQUFBLFNBQUFBLENBQUEsSUFBQUQsQ0FBQSxJQUFBQSxDQUFBLENBQUFLLFVBQUEs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QUFBLENBQU87SUFBQSxDQUFBLENBQUE7RUFDekMsQ0FBQSxDQUNSO0FBRWIsQ0FBQztBQUFDLElBQUFvQyxRQUFBLEdBQUFqRixPQUFBLDJCQUVhLElBQUFrRixXQUFJLEVBQUNoRixPQUFPLENBQUMiLCJmaWxlIjoiY29tcG9uZW50cy9Ub29sdGlwL1Rvb2x0aXAuanMiLCJzb3VyY2VzQ29udGVudCI6W251bGwsIid1c2UgY2xpZW50JztcbnZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBtZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgVG9vbHRpcCBhcyBSZWFjdFRvb2x0aXAgfSBmcm9tICdyZWFjdC10b29sdGlwJztcbmltcG9ydCB1c2VDb250cm9sbGVkU3RhdGUgZnJvbSAnQDFtb25leS9ob29rcy91c2VDb250cm9sbGVkU3RhdGUnO1xuaW1wb3J0IHVzZUV2ZW50Q2FsbGJhY2sgZnJvbSAnQDFtb25leS9ob29rcy91c2VFdmVudENhbGxiYWNrJztcbmltcG9ydCB7IFBvcnRhbCB9IGZyb20gJy4uL1BvcnRhbCc7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIGNsYXNzbmFtZXMsIGpvaW5DbHMgfSBmcm9tICcuLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCAnLi9zdHlsZSc7XG5leHBvcnQgY29uc3QgVG9vbHRpcCA9IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgY2xhc3NOYW1lID0gJycsIHByZWZpeENscyA9ICd0b29sdGlwJywgcGxhY2VtZW50ID0gJ3RvcCcsIHRpdGxlLCBib2R5LCBhcnJvdyA9IHRydWUsIGNsaWNrYWJsZSA9IHRydWUsIG9wZW4sIGRlZmF1bHRPcGVuLCBvbk9wZW5DaGFuZ2UsIGdldFBvcHVwQ29udGFpbmVyIH0gPSBwcm9wcywgcmVzdCA9IF9fcmVzdChwcm9wcywgW1wiY2xhc3NOYW1lXCIsIFwicHJlZml4Q2xzXCIsIFwicGxhY2VtZW50XCIsIFwidGl0bGVcIiwgXCJib2R5XCIsIFwiYXJyb3dcIiwgXCJjbGlja2FibGVcIiwgXCJvcGVuXCIsIFwiZGVmYXVsdE9wZW5cIiwgXCJvbk9wZW5DaGFuZ2VcIiwgXCJnZXRQb3B1cENvbnRhaW5lclwiXSk7XG4gICAgY29uc3QgY2xhc3NlcyA9IGNsYXNzbmFtZXMocHJlZml4Q2xzKTtcbiAgICBjb25zdCBoYXNUaXRsZSA9IHRpdGxlICE9PSBudWxsICYmIHRpdGxlICE9PSB1bmRlZmluZWQgJiYgdGl0bGUgIT09IGZhbHNlO1xuICAgIGNvbnN0IHRvb2x0aXBDbGFzc05hbWUgPSBqb2luQ2xzKGhhc1RpdGxlID8gY2xhc3Nlcygnd2l0aC10aXRsZScpIDogdW5kZWZpbmVkLCBjbGFzc05hbWUpO1xuICAgIGNvbnN0IFtpbm5lck9wZW4sIHNldElubmVyT3Blbl0gPSB1c2VDb250cm9sbGVkU3RhdGUoZGVmYXVsdE9wZW4gIT09IG51bGwgJiYgZGVmYXVsdE9wZW4gIT09IHZvaWQgMCA/IGRlZmF1bHRPcGVuIDogZmFsc2UsIG9wZW4pO1xuICAgIGNvbnN0IGlzT3BlbiA9IG9wZW4gIT09IHVuZGVmaW5lZCA/IGlubmVyT3BlbiA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBoYW5kbGVTZXRJc09wZW4gPSB1c2VFdmVudENhbGxiYWNrKCh2YWx1ZSkgPT4ge1xuICAgICAgICBzZXRJbm5lck9wZW4odmFsdWUpO1xuICAgICAgICBvbk9wZW5DaGFuZ2UgPT09IG51bGwgfHwgb25PcGVuQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbk9wZW5DaGFuZ2UodmFsdWUpO1xuICAgIH0pO1xuICAgIHJldHVybiAoX2pzeChQb3J0YWwsIHsgY29udGFpbmVyOiBnZXRQb3B1cENvbnRhaW5lciwgY2hpbGRyZW46IF9qc3hzKFJlYWN0VG9vbHRpcCwgT2JqZWN0LmFzc2lnbih7fSwgcmVzdCwgeyBwbGFjZTogcGxhY2VtZW50LCBub0Fycm93OiAhYXJyb3csIGNsaWNrYWJsZTogY2xpY2thYmxlLCBpc09wZW46IGlzT3Blbiwgc2V0SXNPcGVuOiBoYW5kbGVTZXRJc09wZW4sIHJvbGU6IFwidG9vbHRpcFwiLCBjbGFzc05hbWU6IGNsYXNzZXModW5kZWZpbmVkLCB0b29sdGlwQ2xhc3NOYW1lKSwgY2xhc3NOYW1lQXJyb3c6IGNsYXNzZXMoJ2Fycm93JyksIGNoaWxkcmVuOiBbaGFzVGl0bGUgJiYgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygndGl0bGUnKSwgY2hpbGRyZW46IHRpdGxlIH0pLCBib2R5ICYmIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2JvZHknKSwgY2hpbGRyZW46IGJvZHkgfSldIH0pKSB9KSk7XG59O1xuZXhwb3J0IGRlZmF1bHQgbWVtbyhUb29sdGlwKTsiXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
87
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvVG9vbHRpcC9Ub29sdGlwLnRzeCIsImNvbXBvbmVudHMvVG9vbHRpcC9Ub29sdGlwLmpzIl0sIm5hbWVzIjpbIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3R5cGVvZiIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiVG9vbHRpcCIsIl9zbGljZWRUb0FycmF5MiIsIl9qc3hSdW50aW1lIiwiX3JlYWN0IiwiX3JlYWN0VG9vbHRpcCIsIl91c2VDb250cm9sbGVkU3RhdGUzIiwiX3VzZUV2ZW50Q2FsbGJhY2siLCJfUG9ydGFsIiwiX2NsYXNzbmFtZXMiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsImhhcyIsImdldCIsInNldCIsIl90IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiX19yZXN0IiwicyIsInAiLCJwcm90b3R5cGUiLCJpbmRleE9mIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJERUZBVUxUX1RPT0xUSVBfR0FQIiwiVE9PTFRJUF9BUlJPV19PVkVSSEFORyIsInByb3BzIiwiX3Byb3BzJGNsYXNzTmFtZSIsImNsYXNzTmFtZSIsIl9wcm9wcyRwcmVmaXhDbHMiLCJwcmVmaXhDbHMiLCJfcHJvcHMkcGxhY2VtZW50IiwicGxhY2VtZW50Iiwib2Zmc2V0IiwidGl0bGUiLCJib2R5IiwiX3Byb3BzJGFycm93IiwiYXJyb3ciLCJfcHJvcHMkY2xpY2thYmxlIiwiY2xpY2thYmxlIiwib3BlbiIsImRlZmF1bHRPcGVuIiwib25PcGVuQ2hhbmdlIiwiZ2V0UG9wdXBDb250YWluZXIiLCJyZXN0IiwiY2xhc3NlcyIsImNsYXNzbmFtZXMiLCJoYXNUaXRsZSIsInVuZGVmaW5lZCIsInRvb2x0aXBDbGFzc05hbWUiLCJqb2luQ2xzIiwidG9vbHRpcE9mZnNldCIsIl91c2VDb250cm9sbGVkU3RhdGUiLCJ1c2VDb250cm9sbGVkU3RhdGUiLCJfdXNlQ29udHJvbGxlZFN0YXRlMiIsImlubmVyT3BlbiIsInNldElubmVyT3BlbiIsImlzT3BlbiIsImhhbmRsZVNldElzT3BlbiIsInVzZUV2ZW50Q2FsbGJhY2siLCJfanN4IiwiUG9ydGFsIiwiY29udGFpbmVyIiwiY2hpbGRyZW4iLCJfanN4cyIsIlJlYWN0VG9vbHRpcCIsImFzc2lnbiIsInBsYWNlIiwibm9BcnJvdyIsInNldElzT3BlbiIsInJvbGUiLCJjbGFzc05hbWVBcnJvdyIsIl9kZWZhdWx0IiwibWVtbyJdLCJtYXBwaW5ncyI6IjtBQUFBLFlBQVk7O0FBQUMsSUFBQUEsc0JBQUEsR0FBQUMsT0FBQTtBQUFBLElBQUFDLE9BQUEsR0FBQUQsT0FBQTtBQUFBRSxNQUFBLENBQUFDLGNBQUEsQ0FBQUMsT0FBQTtFQUFBQyxLQUFBO0FBQUE7QUFBQUQsT0FBQSxjQUFBQSxPQUFBLENBQUFFLE9BQUE7QUFBQSxJQUFBQyxlQUFBLEdBQUFSLHNCQUFBLENBQUFDLE9BQUE7QUNZYixJQUFBUSxXQUFBLEdBQUFSLE9BQUE7QURYQSxJQUFBUyxNQUFBLEdBQUFULE9BQUE7QUFDQSxJQUFBVSxhQUFBLEdBQUFWLE9BQUE7QUFDQSxJQUFBVyxvQkFBQSxHQUFBWixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVksaUJBQUEsR0FBQWIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFhLE9BQUEsR0FBQWIsT0FBQTtBQUNBLElBQUFjLFdBQUEsR0FBQUMsdUJBQUEsQ0FBQWYsT0FBQTtBQUdBQSxPQUFBO0FBQWlCLFNBQUFlLHdCQUFBQyxDQUFBLEVBQUFDLENBQUEsNkJBQUFDLE9BQUEsTUFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBSCx1QkFBQSxZ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QyxTQUFTO01BQ2QxQyxTQUFTLEVBQUVpQixPQUFPLENBQUNHLFNBQVMsRUFBRUMsZ0JBQWdCLENBQUM7TUFDL0NzQixjQUFjLEVBQUUxQixPQUFPLENBQUMsT0FBTyxDQUFDO01BQUFrQixRQUFBLEVBQUEsQ0FFL0JoQixRQUFRLElBQUksSUFBQWEsZUFBQSxFQUFBLEtBQUEsRUFBQTtRQUFLaEMsU0FBUyxFQUFFaUIsT0FBTyxDQUFDLE9BQU8sQ0FBQztRQUFBa0IsUUFBQSxFQUFHN0I7TUFBSyxDQUFBLENBQU8sRUFDM0RDLElBQUksSUFBSSxJQUFBeUIsZUFBQSxFQUFBLEtBQUEsRUFBQTtRQUFLaEMsU0FBUyxFQUFFaUIsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUFBa0IsUUFBQSxFQUFHNUI7TUFBSSxDQUFBLENBQU87SUFBQSxDQUFBLENBQUE7RUFDekMsQ0FBQSxDQUNSO0FBRWIsQ0FBQztBQUFDLElBQUFxQyxRQUFBLEdBQUFyRixPQUFBLDJCQUVhLElBQUFzRixXQUFJLEVBQUNwRixPQUFPLENBQUMiLCJmaWxlIjoiY29tcG9uZW50cy9Ub29sdGlwL1Rvb2x0aXAuanMiLCJzb3VyY2VzQ29udGVudCI6W251bGwsIid1c2UgY2xpZW50JztcbnZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBtZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgVG9vbHRpcCBhcyBSZWFjdFRvb2x0aXAgfSBmcm9tICdyZWFjdC10b29sdGlwJztcbmltcG9ydCB1c2VDb250cm9sbGVkU3RhdGUgZnJvbSAnQDFtb25leS9ob29rcy91c2VDb250cm9sbGVkU3RhdGUnO1xuaW1wb3J0IHVzZUV2ZW50Q2FsbGJhY2sgZnJvbSAnQDFtb25leS9ob29rcy91c2VFdmVudENhbGxiYWNrJztcbmltcG9ydCB7IFBvcnRhbCB9IGZyb20gJy4uL1BvcnRhbCc7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIGNsYXNzbmFtZXMsIGpvaW5DbHMgfSBmcm9tICcuLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCAnLi9zdHlsZSc7XG5jb25zdCBERUZBVUxUX1RPT0xUSVBfR0FQID0gNDtcbi8vIFRvb2x0aXAuc2NzcyBleHRlbmRzIHRoZSBhcnJvdyA4cHggYmV5b25kIHRoZSB0b29sdGlwIGJvZHkgb24gZWFjaCBzaWRlLlxuY29uc3QgVE9PTFRJUF9BUlJPV19PVkVSSEFORyA9IDg7XG5leHBvcnQgY29uc3QgVG9vbHRpcCA9IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgY2xhc3NOYW1lID0gJycsIHByZWZpeENscyA9ICd0b29sdGlwJywgcGxhY2VtZW50ID0gJ3RvcCcsIG9mZnNldCwgdGl0bGUsIGJvZHksIGFycm93ID0gdHJ1ZSwgY2xpY2thYmxlID0gdHJ1ZSwgb3BlbiwgZGVmYXVsdE9wZW4sIG9uT3BlbkNoYW5nZSwgZ2V0UG9wdXBDb250YWluZXIgfSA9IHByb3BzLCByZXN0ID0gX19yZXN0KHByb3BzLCBbXCJjbGFzc05hbWVcIiwgXCJwcmVmaXhDbHNcIiwgXCJwbGFjZW1lbnRcIiwgXCJvZmZzZXRcIiwgXCJ0aXRsZVwiLCBcImJvZHlcIiwgXCJhcnJvd1wiLCBcImNsaWNrYWJsZVwiLCBcIm9wZW5cIiwgXCJkZWZhdWx0T3BlblwiLCBcIm9uT3BlbkNoYW5nZVwiLCBcImdldFBvcHVwQ29udGFpbmVyXCJdKTtcbiAgICBjb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcyhwcmVmaXhDbHMpO1xuICAgIGNvbnN0IGhhc1RpdGxlID0gdGl0bGUgIT09IG51bGwgJiYgdGl0bGUgIT09IHVuZGVmaW5lZCAmJiB0aXRsZSAhPT0gZmFsc2U7XG4gICAgY29uc3QgdG9vbHRpcENsYXNzTmFtZSA9IGpvaW5DbHMoaGFzVGl0bGUgPyBjbGFzc2VzKCd3aXRoLXRpdGxlJykgOiB1bmRlZmluZWQsIGNsYXNzTmFtZSk7XG4gICAgLy8gRXhwbGljaXQgb2Zmc2V0cyByZXRhaW4gcmVhY3QtdG9vbHRpcCdzIGJvZHktdG8tYW5jaG9yIGRpc3RhbmNlIHNlbWFudGljcy5cbiAgICBjb25zdCB0b29sdGlwT2Zmc2V0ID0gb2Zmc2V0ICE9PSBudWxsICYmIG9mZnNldCAhPT0gdm9pZCAwID8gb2Zmc2V0IDogKERFRkFVTFRfVE9PTFRJUF9HQVAgKyAoYXJyb3cgPyBUT09MVElQX0FSUk9XX09WRVJIQU5HIDogMCkpO1xuICAgIGNvbnN0IFtpbm5lck9wZW4sIHNldElubmVyT3Blbl0gPSB1c2VDb250cm9sbGVkU3RhdGUoZGVmYXVsdE9wZW4gIT09IG51bGwgJiYgZGVmYXVsdE9wZW4gIT09IHZvaWQgMCA/IGRlZmF1bHRPcGVuIDogZmFsc2UsIG9wZW4pO1xuICAgIGNvbnN0IGlzT3BlbiA9IG9wZW4gIT09IHVuZGVmaW5lZCA/IGlubmVyT3BlbiA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBoYW5kbGVTZXRJc09wZW4gPSB1c2VFdmVudENhbGxiYWNrKCh2YWx1ZSkgPT4ge1xuICAgICAgICBzZXRJbm5lck9wZW4odmFsdWUpO1xuICAgICAgICBvbk9wZW5DaGFuZ2UgPT09IG51bGwgfHwgb25PcGVuQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbk9wZW5DaGFuZ2UodmFsdWUpO1xuICAgIH0pO1xuICAgIHJldHVybiAoX2pzeChQb3J0YWwsIHsgY29udGFpbmVyOiBnZXRQb3B1cENvbnRhaW5lciwgY2hpbGRyZW46IF9qc3hzKFJlYWN0VG9vbHRpcCwgT2JqZWN0LmFzc2lnbih7fSwgcmVzdCwgeyBwbGFjZTogcGxhY2VtZW50LCBvZmZzZXQ6IHRvb2x0aXBPZmZzZXQsIG5vQXJyb3c6ICFhcnJvdywgY2xpY2thYmxlOiBjbGlja2FibGUsIGlzT3BlbjogaXNPcGVuLCBzZXRJc09wZW46IGhhbmRsZVNldElzT3Blbiwgcm9sZTogXCJ0b29sdGlwXCIsIGNsYXNzTmFtZTogY2xhc3Nlcyh1bmRlZmluZWQsIHRvb2x0aXBDbGFzc05hbWUpLCBjbGFzc05hbWVBcnJvdzogY2xhc3NlcygnYXJyb3cnKSwgY2hpbGRyZW46IFtoYXNUaXRsZSAmJiBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCd0aXRsZScpLCBjaGlsZHJlbjogdGl0bGUgfSksIGJvZHkgJiYgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnYm9keScpLCBjaGlsZHJlbjogYm9keSB9KV0gfSkpIH0pKTtcbn07XG5leHBvcnQgZGVmYXVsdCBtZW1vKFRvb2x0aXApOyJdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
@@ -43,6 +43,8 @@
43
43
  font-weight: var(--om-title-sm-strong-font-weight);
44
44
  }
45
45
  .om-component-ui-tooltip[role=tooltip] .om-component-ui-tooltip-body {
46
+ max-width: 100%;
47
+ overflow-wrap: anywhere;
46
48
  font-size: var(--om-body-sm-font-size);
47
49
  font-family: var(--om-body-sm-font-family);
48
50
  line-height: var(--om-body-sm-line-height);
@@ -4,7 +4,6 @@ export declare const TYPOGRAPHY_PREFIX = "typography";
4
4
  export declare const DEFAULT_ELLIPSIS_START = 8;
5
5
  export declare const DEFAULT_ELLIPSIS_END = 4;
6
6
  export declare const DEFAULT_TYPOGRAPHY_TOOLTIP_PLACEMENT: TooltipProps['placement'];
7
- export declare const DEFAULT_TYPOGRAPHY_TOOLTIP_MIDDLEWARES: TooltipProps['middlewares'];
8
7
  export declare const BLOCK_WRAPPER_TAGS: Set<string>;
9
8
  export declare const BLOCK_LAYOUT = "block";
10
9
  export declare const INLINE_LAYOUT = "inline";
@@ -3,13 +3,12 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.TYPOGRAPHY_PREFIX = exports.INLINE_LAYOUT = exports.DEFAULT_TYPOGRAPHY_TOOLTIP_PLACEMENT = exports.DEFAULT_TYPOGRAPHY_TOOLTIP_MIDDLEWARES = exports.DEFAULT_ELLIPSIS_START = exports.DEFAULT_ELLIPSIS_END = exports.BLOCK_WRAPPER_TAGS = exports.BLOCK_LAYOUT = void 0;
6
+ exports.TYPOGRAPHY_PREFIX = exports.INLINE_LAYOUT = exports.DEFAULT_TYPOGRAPHY_TOOLTIP_PLACEMENT = exports.DEFAULT_ELLIPSIS_START = exports.DEFAULT_ELLIPSIS_END = exports.BLOCK_WRAPPER_TAGS = exports.BLOCK_LAYOUT = void 0;
7
7
  var TYPOGRAPHY_PREFIX = exports.TYPOGRAPHY_PREFIX = 'typography';
8
8
  var DEFAULT_ELLIPSIS_START = exports.DEFAULT_ELLIPSIS_START = 8;
9
9
  var DEFAULT_ELLIPSIS_END = exports.DEFAULT_ELLIPSIS_END = 4;
10
10
  var DEFAULT_TYPOGRAPHY_TOOLTIP_PLACEMENT = exports.DEFAULT_TYPOGRAPHY_TOOLTIP_PLACEMENT = 'top';
11
- var DEFAULT_TYPOGRAPHY_TOOLTIP_MIDDLEWARES = exports.DEFAULT_TYPOGRAPHY_TOOLTIP_MIDDLEWARES = [];
12
11
  var BLOCK_WRAPPER_TAGS = exports.BLOCK_WRAPPER_TAGS = new Set(['article', 'aside', 'div', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'p', 'section']);
13
12
  var BLOCK_LAYOUT = exports.BLOCK_LAYOUT = 'block';
14
13
  var INLINE_LAYOUT = exports.INLINE_LAYOUT = 'inline';
15
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvVHlwb2dyYXBoeS9jb25zdGFudHMudHMiXSwibmFtZXMiOlsiVFlQT0dSQVBIWV9QUkVGSVgiLCJleHBvcnRzIiwiREVGQVVMVF9FTExJUFNJU19TVEFSVCIsIkRFRkFVTFRfRUxMSVBTSVNfRU5EIiwiREVGQVVMVF9UWVBPR1JBUEhZX1RPT0xUSVBfUExBQ0VNRU5UIiwiREVGQVVMVF9UWVBPR1JBUEhZX1RPT0xUSVBfTUlERExFV0FSRVMiLCJCTE9DS19XUkFQUEVSX1RBR1MiLCJTZXQiLCJCTE9DS19MQVlPVVQiLCJJTkxJTkVfTEFZT1VUIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFVTyxJQUFNQSxpQkFBaUIsR0FBQUMsT0FBQSxDQUFBRCxpQkFBQSxHQUFHLFlBQVk7QUFDdEMsSUFBTUUsc0JBQXNCLEdBQUFELE9BQUEsQ0FBQUMsc0JBQUEsR0FBRyxDQUFDO0FBQ2hDLElBQU1DLG9CQUFvQixHQUFBRixPQUFBLENBQUFFLG9CQUFBLEdBQUcsQ0FBQztBQUM5QixJQUFNQyxvQ0FBb0MsR0FBQUgsT0FBQSxDQUFBRyxvQ0FBQSxHQUE4QixLQUFLO0FBQzdFLElBQU1DLHNDQUFzQyxHQUFBSixPQUFBLENBQUFJLHNDQUFBLEdBQWdDLEVBQUU7QUFDOUUsSUFBTUMsa0JBQWtCLEdBQUFMLE9BQUEsQ0FBQUssa0JBQUEsR0FBRyxJQUFJQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDbkgsSUFBTUMsWUFBWSxHQUFBUCxPQUFBLENBQUFPLFlBQUEsR0FBRyxPQUFPO0FBQzVCLElBQU1DLGFBQWEsR0FBQVIsT0FBQSxDQUFBUSxhQUFBLEdBQUcsUUFBUSIsImZpbGUiOiJjb21wb25lbnRzL1R5cG9ncmFwaHkvY29uc3RhbnRzLmpzIiwic291cmNlc0NvbnRlbnQiOltudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
14
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvVHlwb2dyYXBoeS9jb25zdGFudHMudHMiXSwibmFtZXMiOlsiVFlQT0dSQVBIWV9QUkVGSVgiLCJleHBvcnRzIiwiREVGQVVMVF9FTExJUFNJU19TVEFSVCIsIkRFRkFVTFRfRUxMSVBTSVNfRU5EIiwiREVGQVVMVF9UWVBPR1JBUEhZX1RPT0xUSVBfUExBQ0VNRU5UIiwiQkxPQ0tfV1JBUFBFUl9UQUdTIiwiU2V0IiwiQkxPQ0tfTEFZT1VUIiwiSU5MSU5FX0xBWU9VVCJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBVU8sSUFBTUEsaUJBQWlCLEdBQUFDLE9BQUEsQ0FBQUQsaUJBQUEsR0FBRyxZQUFZO0FBQ3RDLElBQU1FLHNCQUFzQixHQUFBRCxPQUFBLENBQUFDLHNCQUFBLEdBQUcsQ0FBQztBQUNoQyxJQUFNQyxvQkFBb0IsR0FBQUYsT0FBQSxDQUFBRSxvQkFBQSxHQUFHLENBQUM7QUFDOUIsSUFBTUMsb0NBQW9DLEdBQUFILE9BQUEsQ0FBQUcsb0NBQUEsR0FBOEIsS0FBSztBQUM3RSxJQUFNQyxrQkFBa0IsR0FBQUosT0FBQSxDQUFBSSxrQkFBQSxHQUFHLElBQUlDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQztBQUNuSCxJQUFNQyxZQUFZLEdBQUFOLE9BQUEsQ0FBQU0sWUFBQSxHQUFHLE9BQU87QUFDNUIsSUFBTUMsYUFBYSxHQUFBUCxPQUFBLENBQUFPLGFBQUEsR0FBRyxRQUFRIiwiZmlsZSI6ImNvbXBvbmVudHMvVHlwb2dyYXBoeS9jb25zdGFudHMuanMiLCJzb3VyY2VzQ29udGVudCI6W251bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=