@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
@@ -104,11 +104,13 @@ var AccountFilterBase = function AccountFilterBase(_a) {
104
104
  allLabelProp = _a.allLabel,
105
105
  _a$search = _a.search,
106
106
  search = _a$search === void 0 ? true : _a$search,
107
+ _a$filterInputAutoFoc = _a.filterInputAutoFocus,
108
+ filterInputAutoFocus = _a$filterInputAutoFoc === void 0 ? false : _a$filterInputAutoFoc,
107
109
  searchPlaceholderProp = _a.searchPlaceholder,
108
110
  searchEmpty = _a.searchEmpty,
109
111
  onApply = _a.onApply,
110
112
  onReset = _a.onReset,
111
- rest = __rest(_a, ["ref", "className", "size", "label", "placeholder", "data", "allLabel", "search", "searchPlaceholder", "searchEmpty", "onApply", "onReset"]);
113
+ rest = __rest(_a, ["ref", "className", "size", "label", "placeholder", "data", "allLabel", "search", "filterInputAutoFocus", "searchPlaceholder", "searchEmpty", "onApply", "onReset"]);
112
114
  var locale = useLocale('AccountFilter');
113
115
  var placeholder = placeholderProp !== null && placeholderProp !== void 0 ? placeholderProp : locale.placeholder;
114
116
  var allLabel = allLabelProp !== null && allLabelProp !== void 0 ? allLabelProp : locale.allLabel;
@@ -142,6 +144,7 @@ var AccountFilterBase = function AccountFilterBase(_a) {
142
144
  options: options,
143
145
  allLabel: allLabel,
144
146
  search: search,
147
+ filterInputAutoFocus: filterInputAutoFocus,
145
148
  searchPlaceholder: searchPlaceholder,
146
149
  emptyContent: emptyContent,
147
150
  renderRow: renderRow,
@@ -150,4 +153,4 @@ var AccountFilterBase = function AccountFilterBase(_a) {
150
153
  }));
151
154
  };
152
155
  export var AccountFilter = /*#__PURE__*/memo(AccountFilterBase);
153
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL0ZpbHRlci9BY2NvdW50L0FjY291bnQuanMiLCJidXNpbmVzcy9GaWx0ZXIvc3JjL2J1c2luZXNzL0ZpbHRlci9BY2NvdW50L0FjY291bnQudHN4Il0sIm5hbWVzIjpbIl9fcmVzdCIsInMiLCJlIiwidCIsInAiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpbmRleE9mIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiaSIsImxlbmd0aCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIm1lbW8iLCJ1c2VJbXBlcmF0aXZlSGFuZGxlIiwidXNlTWVtbyIsInVzZVJlZiIsIkNoZWNrYm94IiwidXNlTG9jYWxlIiwiRW1wdHkiLCJGaWx0ZXIiLCJGbGV4IiwiSWNvbnMiLCJUYWciLCJUeXBvZ3JhcGh5Qm9keSIsIldSQVBfQ0xTIiwiUEFORUxfQ0xTIiwiY29uY2F0IiwicmVuZGVyRGVmYXVsdEVtcHR5Iiwibm9SZXN1bHRzIiwiaGludCIsInZhcmlhbnQiLCJpY29uIiwibmFtZSIsInNpemUiLCJjb2xvciIsInRpdGxlIiwic3Ryb25nIiwiY2hpbGRyZW4iLCJkZXNjcmlwdGlvbiIsInN0eWxlIiwicGFkZGluZyIsInRvT3B0aW9uIiwiaXRlbSIsIm1haW5UYWciLCJoYXNOYW1lIiwiY3VzdG9tZXJOYW1lIiwibGFiZWwiLCJhY2NvdW50SWQiLCJ2YWx1ZSIsInVuZGVmaW5lZCIsInRhZyIsImlzTWFpbiIsInNlYXJjaFRleHQiLCJqb2luIiwicmVuZGVyUm93Iiwib3B0aW9uIiwiY2hlY2tlZCIsImFsaWduIiwianVzdGlmeSIsImdhcCIsImNsYXNzTmFtZSIsInZlcnRpY2FsIiwicmVhZE9ubHkiLCJBY2NvdW50RmlsdGVyQmFzZSIsIl9hIiwicmVmIiwiX2Ekc2l6ZSIsInBsYWNlaG9sZGVyUHJvcCIsInBsYWNlaG9sZGVyIiwiZGF0YSIsImFsbExhYmVsUHJvcCIsImFsbExhYmVsIiwiX2Ekc2VhcmNoIiwic2VhcmNoIiwic2VhcmNoUGxhY2Vob2xkZXJQcm9wIiwic2VhcmNoUGxhY2Vob2xkZXIiLCJzZWFyY2hFbXB0eSIsIm9uQXBwbHkiLCJvblJlc2V0IiwicmVzdCIsImxvY2FsZSIsImVtcHR5Q29udGVudCIsIm5vUmVzdWx0c0hpbnQiLCJmaWx0ZXJSZWYiLCJvcHRpb25zIiwibWFwIiwiY2xlYXIiLCJjdXJyZW50IiwicmVzZXQiLCJhc3NpZ24iLCJwYW5lbENsYXNzTmFtZSIsIkFjY291bnRGaWx0ZXIiXSwibWFwcGluZ3MiOiJBQUFBLElBQUlBLE1BQU0sR0FBSSxJQUFJLElBQUksSUFBSSxDQUFDQSxNQUFNLElBQUssVUFBVUMsQ0FBQyxFQUFFQyxDQUFDLEVBQUU7RUFDbEQsSUFBSUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztFQUNWLEtBQUssSUFBSUMsQ0FBQyxJQUFJSCxDQUFDLEVBQUUsSUFBSUksTUFBTSxDQUFDQyxTQUFTLENBQUNDLGNBQWMsQ0FBQ0MsSUFBSSxDQUFDUCxDQUFDLEVBQUVHLENBQUMsQ0FBQyxJQUFJRixDQUFDLENBQUNPLE9BQU8sQ0FBQ0wsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUMvRUQsQ0FBQyxDQUFDQyxDQUFDLENBQUMsR0FBR0gsQ0FBQyxDQUFDRyxDQUFDLENBQUM7RUFDZixJQUFJSCxDQUFDLElBQUksSUFBSSxJQUFJLE9BQU9JLE1BQU0sQ0FBQ0sscUJBQXFCLEtBQUssVUFBVSxFQUMvRCxLQUFLLElBQUlDLENBQUMsR0FBRyxDQUFDLEVBQUVQLENBQUMsR0FBR0MsTUFBTSxDQUFDSyxxQkFBcUIsQ0FBQ1QsQ0FBQyxDQUFDLEVBQUVVLENBQUMsR0FBR1AsQ0FBQyxDQUFDUSxNQUFNLEVBQUVELENBQUMsRUFBRSxFQUFFO0lBQ3BFLElBQUlULENBQUMsQ0FBQ08sT0FBTyxDQUFDTCxDQUFDLENBQUNPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJTixNQUFNLENBQUNDLFNBQVMsQ0FBQ08sb0JBQW9C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Q0FBQUEsRUFBQSxHQUFBbUIsU0FBUyxDQUFDSSxPQUFPLE1BQUEsSUFBQSxJQUFBdkIsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLENBQUV3QixLQUFLLENBQUEsQ0FBRTtNQUFBO0lEM0N2QyxDQzRDRDtFQUFBLENBQUMsQ0FBQztFQUVILE9BQ0UvRSxJQUFBLENBQUNVLE1BQU0sRUFBQXBCLE1BQUEsQ0FBQTBGLE1BQUEsQ0FBQSxDQUFBLENBQUEsRUFDRFYsSUFBSSxFQUFBO0lBQ1JkLEdBQUcsRUFBRWtCLFNBQVM7SUFDZHZCLFNBQVMsRUFBRUEsU0FBUztJQUNwQjhCLGNBQWMsRUFBRWpFLFNBQVM7SUFDekJRLElBQUksRUFBRUEsSUFBSTtJQUNWYSxLQUFLLEVBQUVBLEtBQUs7SUFDWnNCLFdBQVcsRUFBRUEsV0FBVztJQUN4QmdCLE9BQU8sRUFBRUEsT0FBTztJQUNoQmIsUUFBUSxFQUFFQSxRQUFRO0lBQ2xCRSxNQUFNLEVBQUVBLE1BQU07SUFDZEUsaUJBQWlCLEVBQUVBLGlCQUFpQjtJQUNwQ00sWUFBWSxFQUFFQSxZQUFZO0lBQzFCM0IsU0FBUyxFQUFFQSxTQUFTO0lBQ3BCdUIsT0FBTyxFQUFFQSxPQUFPO0lBQ2hCQyxPQUFPLEVBQUVBO0VBQU8sQ0FBQSxDQUFBLENBQ2hCO0FBRU4sQ0FBQztBQUVELE9BQU8sSUFBTWEsYUFBYSxnQkFBRy9FLElBQUksQ0FBQ21ELGlCQUFpQixDQUFDIiwiZmlsZSI6ImJ1c2luZXNzL0ZpbHRlci9BY2NvdW50L0FjY291bnQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgbWVtbywgdXNlSW1wZXJhdGl2ZUhhbmRsZSwgdXNlTWVtbywgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQ2hlY2tib3ggfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL0NoZWNrYm94JztcbmltcG9ydCB7IHVzZUxvY2FsZSB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvQ29uZmlnUHJvdmlkZXInO1xuaW1wb3J0IHsgRW1wdHkgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL0VtcHR5JztcbmltcG9ydCB7IEZpbHRlciB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvRmlsdGVyJztcbmltcG9ydCB7IEZsZXggfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL0ZsZXgnO1xuaW1wb3J0IHsgSWNvbnMgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL0ljb25zJztcbmltcG9ydCB7IFRhZyB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvVGFnJztcbmltcG9ydCB7IFR5cG9ncmFwaHlCb2R5IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9UeXBvZ3JhcGh5JztcbmNvbnN0IFdSQVBfQ0xTID0gJ29tLWFjY291bnQtZmlsdGVyJztcbmNvbnN0IFBBTkVMX0NMUyA9IGAke1dSQVBfQ0xTfS1wYW5lbGA7XG5jb25zdCByZW5kZXJEZWZhdWx0RW1wdHkgPSAobm9SZXN1bHRzLCBoaW50KSA9PiAoX2pzeChFbXB0eSwgeyB2YXJpYW50OiAnZmlsbCcsIGljb246IF9qc3goSWNvbnMsIHsgbmFtZTogJ3NlYXJjaCcsIHNpemU6IDE2LCBjb2xvcjogJ2N1cnJlbnRDb2xvcicgfSksIHRpdGxlOiBfanN4KFR5cG9ncmFwaHlCb2R5LCB7IHNpemU6ICdzbScsIHN0cm9uZzogdHJ1ZSwgY29sb3I6ICduZXV0cmFsLXNlY29uZGFyeScsIGNoaWxkcmVuOiBub1Jlc3VsdHMgfSksIGRlc2NyaXB0aW9uOiBfanN4KFR5cG9ncmFwaHlCb2R5LCB7IHNpemU6ICdzbScsIGNvbG9yOiAnbmV1dHJhbC1zZWNvbmRhcnknLCBjaGlsZHJlbjogaGludCB9KSwgc3R5bGU6IHsgcGFkZGluZzogMCB9IH0pKTtcbi8vIE5hbWVkIGFjY291bnQg4oaSIHR3by1saW5lIHJvdyAobmFtZSArIGlkKS4gVW5uYW1lZCDihpIgc2luZ2xlIGxpbmUgd2l0aCB0aGUgaWQgYXNcbi8vIHRoZSB0aXRsZSwgc28gdGhlIGlkIG5ldmVyIGFwcGVhcnMgdHdpY2UuIGB0YWdgIHJpZGVzIGFsb25nIGFzIGN1c3RvbSBtZXRhZGF0YS5cbmNvbnN0IHRvT3B0aW9uID0gKGl0ZW0sIG1haW5UYWcpID0+IHtcbiAgICBjb25zdCBoYXNOYW1lID0gISFpdGVtLmN1c3RvbWVyTmFtZTtcbiAgICBjb25zdCBsYWJlbCA9IGhhc05hbWUgPyBpdGVtLmN1c3RvbWVyTmFtZSA6IGl0ZW0uYWNjb3VudElkO1xuICAgIHJldHVybiB7XG4gICAgICAgIGxhYmVsLFxuICAgICAgICB2YWx1ZTogaXRlbS5hY2NvdW50SWQsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBoYXNOYW1lID8gaXRlbS5hY2NvdW50SWQgOiB1bmRlZmluZWQsXG4gICAgICAgIHRhZzogaXRlbS5pc01haW4gPyBtYWluVGFnIDogdW5kZWZpbmVkLFxuICAgICAgICBzZWFyY2hUZXh0OiBbbGFiZWwsIGl0ZW0uYWNjb3VudElkXS5qb2luKCcgJyksXG4gICAgfTtcbn07XG5jb25zdCByZW5kZXJSb3cgPSAob3B0aW9uLCBjaGVja2VkKSA9PiB7XG4gICAgY29uc3QgdGFnID0gb3B0aW9uLnRhZztcbiAgICByZXR1cm4gKF9qc3hzKEZsZXgsIHsgYWxpZ246ICdjZW50ZXInLCBqdXN0aWZ5OiAnc3BhY2UtYmV0d2VlbicsIGdhcDogMTIsIGNsYXNzTmFtZTogYCR7V1JBUF9DTFN9X19yb3dgLCBjaGlsZHJlbjogW19qc3hzKEZsZXgsIHsgdmVydGljYWw6IHRydWUsIGdhcDogMCwgYWxpZ246ICdzdGFydCcsIGNsYXNzTmFtZTogYCR7V1JBUF9DTFN9X19yb3ctdGV4dGAsIGNoaWxkcmVuOiBbX2pzeHMoRmxleCwgeyBhbGlnbjogJ2NlbnRlcicsIGdhcDogOCwgY2xhc3NOYW1lOiBgJHtXUkFQX0NMU31fX3Jvdy1saW5lYCwgY2hpbGRyZW46IFtfanN4KFR5cG9ncmFwaHlCb2R5LCB7IHNpemU6ICdzbScsIHN0cm9uZzogdHJ1ZSwgY2xhc3NOYW1lOiBgJHtXUkFQX0NMU31fX3Jvdy1uYW1lYCwgY2hpbGRyZW46IG9wdGlvbi5sYWJlbCB9KSwgdGFnICYmIF9qc3goVGFnLCB7IGxhYmVsOiB0YWcsIHNpemU6ICdzbWFsbCcsIGNvbG9yOiAncmVjb21tZW5kZWQnIH0pXSB9KSwgb3B0aW9uLmRlc2NyaXB0aW9uICYmIChfanN4KFR5cG9ncmFwaHlCb2R5LCB7IHNpemU6ICdzbScsIGNvbG9yOiAnZGVmYXVsdC1zZWNvbmRhcnknLCBjaGlsZHJlbjogb3B0aW9uLmRlc2NyaXB0aW9uIH0pKV0gfSksIF9qc3goQ2hlY2tib3gsIHsgY2hlY2tlZDogY2hlY2tlZCwgcmVhZE9ubHk6IHRydWUsIGNsYXNzTmFtZTogJ29tLWZpbHRlcl9fcm93LWNoZWNrJyB9KV0gfSkpO1xufTtcbmNvbnN0IEFjY291bnRGaWx0ZXJCYXNlID0gKF9hKSA9PiB7XG4gICAgdmFyIHsgcmVmLCBjbGFzc05hbWUsIHNpemUgPSAnZXh0cmEtc21hbGwnLCBsYWJlbCwgcGxhY2Vob2xkZXI6IHBsYWNlaG9sZGVyUHJvcCwgZGF0YSwgYWxsTGFiZWw6IGFsbExhYmVsUHJvcCwgc2VhcmNoID0gdHJ1ZSwgc2VhcmNoUGxhY2Vob2xkZXI6IHNlYXJjaFBsYWNlaG9sZGVyUHJvcCwgc2VhcmNoRW1wdHksIG9uQXBwbHksIG9uUmVzZXQgfSA9IF9hLCByZXN0ID0gX19yZXN0KF9hLCBbXCJyZWZcIiwgXCJjbGFzc05hbWVcIiwgXCJzaXplXCIsIFwibGFiZWxcIiwgXCJwbGFjZWhvbGRlclwiLCBcImRhdGFcIiwgXCJhbGxMYWJlbFwiLCBcInNlYXJjaFwiLCBcInNlYXJjaFBsYWNlaG9sZGVyXCIsIFwic2VhcmNoRW1wdHlcIiwgXCJvbkFwcGx5XCIsIFwib25SZXNldFwiXSk7XG4gICAgY29uc3QgbG9jYWxlID0gdXNlTG9jYWxlKCdBY2NvdW50RmlsdGVyJyk7XG4gICAgY29uc3QgcGxhY2Vob2xkZXIgPSBwbGFjZWhvbGRlclByb3AgIT09IG51bGwgJiYgcGxhY2Vob2xkZXJQcm9wICE9PSB2b2lkIDAgPyBwbGFjZWhvbGRlclByb3AgOiBsb2NhbGUucGxhY2Vob2xkZXI7XG4gICAgY29uc3QgYWxsTGFiZWwgPSBhbGxMYWJlbFByb3AgIT09IG51bGwgJiYgYWxsTGFiZWxQcm9wICE9PSB2b2lkIDAgPyBhbGxMYWJlbFByb3AgOiBsb2NhbGUuYWxsTGFiZWw7XG4gICAgY29uc3Qgc2VhcmNoUGxhY2Vob2xkZXIgPSBzZWFyY2hQbGFjZWhvbGRlclByb3AgIT09IG51bGwgJiYgc2VhcmNoUGxhY2Vob2xkZXJQcm9wICE9PSB2b2lkIDAgPyBzZWFyY2hQbGFjZWhvbGRlclByb3AgOiBsb2NhbGUuc2VhcmNoUGxhY2Vob2xkZXI7XG4gICAgY29uc3QgZW1wdHlDb250ZW50ID0gc2VhcmNoRW1wdHkgIT09IG51bGwgJiYgc2VhcmNoRW1wdHkgIT09IHZvaWQgMCA/IHNlYXJjaEVtcHR5IDogcmVuZGVyRGVmYXVsdEVtcHR5KGxvY2FsZS5ub1Jlc3VsdHMsIGxvY2FsZS5ub1Jlc3VsdHNIaW50KTtcbiAgICBjb25zdCBmaWx0ZXJSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHVzZU1lbW8oKCkgPT4gZGF0YS5tYXAoKGl0ZW0pID0+IHRvT3B0aW9uKGl0ZW0sIGxvY2FsZS5tYWluVGFnKSksIFtkYXRhLCBsb2NhbGUubWFpblRhZ10pO1xuICAgIHVzZUltcGVyYXRpdmVIYW5kbGUocmVmLCAoKSA9PiAoe1xuICAgICAgICBjbGVhcjogKCkgPT4geyB2YXIgX2E7IHJldHVybiAoX2EgPSBmaWx0ZXJSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNsZWFyKCk7IH0sXG4gICAgICAgIHJlc2V0OiAoKSA9PiB7IHZhciBfYTsgcmV0dXJuIChfYSA9IGZpbHRlclJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EucmVzZXQoKTsgfSxcbiAgICB9KSk7XG4gICAgcmV0dXJuIChfanN4KEZpbHRlciwgT2JqZWN0LmFzc2lnbih7fSwgcmVzdCwgeyByZWY6IGZpbHRlclJlZiwgY2xhc3NOYW1lOiBjbGFzc05hbWUsIHBhbmVsQ2xhc3NOYW1lOiBQQU5FTF9DTFMsIHNpemU6IHNpemUsIGxhYmVsOiBsYWJlbCwgcGxhY2Vob2xkZXI6IHBsYWNlaG9sZGVyLCBvcHRpb25zOiBvcHRpb25zLCBhbGxMYWJlbDogYWxsTGFiZWwsIHNlYXJjaDogc2VhcmNoLCBzZWFyY2hQbGFjZWhvbGRlcjogc2VhcmNoUGxhY2Vob2xkZXIsIGVtcHR5Q29udGVudDogZW1wdHlDb250ZW50LCByZW5kZXJSb3c6IHJlbmRlclJvdywgb25BcHBseTogb25BcHBseSwgb25SZXNldDogb25SZXNldCB9KSkpO1xufTtcbmV4cG9ydCBjb25zdCBBY2NvdW50RmlsdGVyID0gbWVtbyhBY2NvdW50RmlsdGVyQmFzZSk7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
156
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL0ZpbHRlci9BY2NvdW50L0FjY291bnQuanMiLCJidXNpbmVzcy9GaWx0ZXIvc3JjL2J1c2luZXNzL0ZpbHRlci9BY2NvdW50L0FjY291bnQudHN4Il0sIm5hbWVzIjpbIl9fcmVzdCIsInMiLCJlIiwidCIsInAiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpbmRleE9mIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiaSIsImxlbmd0aCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIm1lbW8iLCJ1c2VJbXBlcmF0aXZlSGFuZGxlIiwidXNlTWVtbyIsInVzZVJlZiIsIkNoZWNrYm94IiwidXNlTG9jYWxlIiwiRW1wdHkiLCJGaWx0ZXIiLCJGbGV4IiwiSWNvbnMiLCJUYWciLCJUeXBvZ3JhcGh5Qm9keSIsIldSQVBfQ0xTIiwiUEFORUxfQ0xTIiwiY29uY2F0IiwicmVuZGVyRGVmYXVsdEVtcHR5Iiwibm9SZXN1bHRzIiwiaGludCIsInZhcmlhbnQiLCJpY29uIiwibmFtZSIsInNpemUiLCJjb2xvciIsInRpdGxlIiwic3Ryb25nIiwiY2hpbGRyZW4iLCJkZXNjcmlwdGlvbiIsInN0eWxlIiwicGFkZGluZyIsInRvT3B0aW9uIiwiaXRlbSIsIm1haW5UYWciLCJoYXNOYW1lIiwiY3VzdG9tZXJOYW1lIiwibGFiZWwiLCJhY2NvdW50SWQiLCJ2YWx1ZSIsInVuZGVmaW5lZCIsInRhZyIsImlzTWFpbiIsInNlYXJjaFRleHQiLCJqb2luIiwicmVuZGVyUm93Iiwib3B0aW9uIiwiY2hlY2tlZCIsImFsaWduIiwianVzdGlmeSIsImdhcCIsImNsYXNzTmFtZSIsInZlcnRpY2FsIiwicmVhZE9ubHkiLCJBY2NvdW50RmlsdGVyQmFzZSIsIl9hIiwicmVmIiwiX2Ekc2l6ZSIsInBsYWNlaG9sZGVyUHJvcCIsInBsYWNlaG9sZGVyIiwiZGF0YSIsImFsbExhYmVsUHJvcCIsImFsbExhYmVsIiwiX2Ekc2VhcmNoIiwic2VhcmNoIiwiX2EkZmlsdGVySW5wdXRBdXRvRm9jIiwiZmlsdGVySW5wdXRBdXRvRm9jdXMiLCJzZWFyY2hQbGFjZWhvbGRlclByb3AiLCJzZWFyY2hQbGFjZWhvbGRlciIsInNlYXJjaEVtcHR5Iiwib25BcHBseSIsIm9uUmVzZXQiLCJyZXN0IiwibG9jYWxlIiwiZW1wdHlDb250ZW50Iiwibm9SZXN1bHRzSGludCIsImZpbHRlclJlZiIsIm9wdGlvbnMiLCJtYXAiLCJjbGVhciIsImN1cnJlbnQiLCJyZXNldCIsImFzc2lnbiIsInBhbmVsQ2xhc3NOYW1lIiwiQWNjb3VudEZpbHRlciJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsTUFBTSxHQUFJLElBQUksSUFBSSxJQUFJLENBQUNBLE1BQU0sSUFBSyxVQUFVQyxDQUFDLEVBQUVDLENBQUMsRUFBRTtFQUNsRCxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0VBQ1YsS0FBSyxJQUFJQyxDQUFDLElBQUlILENBQUMsRUFBRSxJQUFJSSxNQUFNLENBQUNDLFNBQVMsQ0FBQ0MsY0FBYyxDQUFDQyxJQUFJLENBQUNQLENBQUMsRUFBRUcsQ0FBQyxDQUFDLElBQUlGLENBQUMsQ0FBQ08sT0FBTyxDQUFDTCxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQy9FRCxDQUFDLENBQUNDLENBQUMsQ0FBQyxHQUFHSCxDQUFDLENBQUNHLENBQUMsQ0FBQztFQUNmLElBQUlILENBQUMsSUFBSSxJQUFJLElBQUksT0FBT0ksTUFBTSxDQUFDSyxxQkFBcUIsS0FBSyxVQUFVLEVBQy9ELEtBQUssSUFBSUMsQ0FBQyxHQUFHLENBQUMsRUFBRVAsQ0FBQyxHQUFHQyxNQUFNLENBQUNLLHFCQUFxQixDQUFDVCxDQUFDLENBQUMsRUFBRVUsQ0FBQyxHQUFHUCxDQUFDLENBQUNRLE1BQU0sRUFBRUQsQ0FBQyxFQUFFLEVBQUU7SUFDcEUsSUFBSVQsQ0FBQyxDQUFDTyxPQUFPLENBQUNMLENBQUMsQ0FBQ08sQ0FBQyxDQUFDLENB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RUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLENBQUV3QixLQUFLLENBQUEsQ0FBRTtNQUFBLENBQUE7TUFDdkNFLEtBQUssRUFBRSxTQUFQQSxLQUFLQSxDQUFBLEVBQU87UUFBQSxJQUFBMUIsRUFBQTtRQUFDLE9BQUEsQ0FBQUEsRUFBQSxHQUFBcUIsU0FBUyxDQUFDSSxPQUFPLE1BQUEsSUFBQSxJQUFBekIsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLENBQUUwQixLQUFLLENBQUEsQ0FBRTtNQUFBO0lENUN2QyxDQzZDRDtFQUFBLENBQUMsQ0FBQztFQUVILE9BQ0VqRixJQUFBLENBQUNVLE1BQU0sRUFBQXBCLE1BQUEsQ0FBQTRGLE1BQUEsQ0FBQSxDQUFBLENBQUEsRUFDRFYsSUFBSSxFQUFBO0lBQ1JoQixHQUFHLEVBQUVvQixTQUFTO0lBQ2R6QixTQUFTLEVBQUVBLFNBQVM7SUFDcEJnQyxjQUFjLEVBQUVuRSxTQUFTO0lBQ3pCUSxJQUFJLEVBQUVBLElBQUk7SUFDVmEsS0FBSyxFQUFFQSxLQUFLO0lBQ1pzQixXQUFXLEVBQUVBLFdBQVc7SUFDeEJrQixPQUFPLEVBQUVBLE9BQU87SUFDaEJmLFFBQVEsRUFBRUEsUUFBUTtJQUNsQkUsTUFBTSxFQUFFQSxNQUFNO0lBQ2RFLG9CQUFvQixFQUFFQSxvQkFBb0I7SUFDMUNFLGlCQUFpQixFQUFFQSxpQkFBaUI7SUFDcENNLFlBQVksRUFBRUEsWUFBWTtJQUMxQjdCLFNBQVMsRUFBRUEsU0FBUztJQUNwQnlCLE9BQU8sRUFBRUEsT0FBTztJQUNoQkMsT0FBTyxFQUFFQTtFQUFPLENBQUEsQ0FBQSxDQUNoQjtBQUVOLENBQUM7QUFFRCxPQUFPLElBQU1hLGFBQWEsZ0JBQUdqRixJQUFJLENBQUNtRCxpQkFBaUIsQ0FBQyIsImZpbGUiOiJidXNpbmVzcy9GaWx0ZXIvQWNjb3VudC9BY2NvdW50LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IG1lbW8sIHVzZUltcGVyYXRpdmVIYW5kbGUsIHVzZU1lbW8sIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IENoZWNrYm94IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9DaGVja2JveCc7XG5pbXBvcnQgeyB1c2VMb2NhbGUgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL0NvbmZpZ1Byb3ZpZGVyJztcbmltcG9ydCB7IEVtcHR5IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9FbXB0eSc7XG5pbXBvcnQgeyBGaWx0ZXIgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL0ZpbHRlcic7XG5pbXBvcnQgeyBGbGV4IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9GbGV4JztcbmltcG9ydCB7IEljb25zIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9JY29ucyc7XG5pbXBvcnQgeyBUYWcgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL1RhZyc7XG5pbXBvcnQgeyBUeXBvZ3JhcGh5Qm9keSB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvVHlwb2dyYXBoeSc7XG5jb25zdCBXUkFQX0NMUyA9ICdvbS1hY2NvdW50LWZpbHRlcic7XG5jb25zdCBQQU5FTF9DTFMgPSBgJHtXUkFQX0NMU30tcGFuZWxgO1xuY29uc3QgcmVuZGVyRGVmYXVsdEVtcHR5ID0gKG5vUmVzdWx0cywgaGludCkgPT4gKF9qc3goRW1wdHksIHsgdmFyaWFudDogJ2ZpbGwnLCBpY29uOiBfanN4KEljb25zLCB7IG5hbWU6ICdzZWFyY2gnLCBzaXplOiAxNiwgY29sb3I6ICdjdXJyZW50Q29sb3InIH0pLCB0aXRsZTogX2pzeChUeXBvZ3JhcGh5Qm9keSwgeyBzaXplOiAnc20nLCBzdHJvbmc6IHRydWUsIGNvbG9yOiAnbmV1dHJhbC1zZWNvbmRhcnknLCBjaGlsZHJlbjogbm9SZXN1bHRzIH0pLCBkZXNjcmlwdGlvbjogX2pzeChUeXBvZ3JhcGh5Qm9keSwgeyBzaXplOiAnc20nLCBjb2xvcjogJ25ldXRyYWwtc2Vjb25kYXJ5JywgY2hpbGRyZW46IGhpbnQgfSksIHN0eWxlOiB7IHBhZGRpbmc6IDAgfSB9KSk7XG4vLyBOYW1lZCBhY2NvdW50IOKGkiB0d28tbGluZSByb3cgKG5hbWUgKyBpZCkuIFVubmFtZWQg4oaSIHNpbmdsZSBsaW5lIHdpdGggdGhlIGlkIGFzXG4vLyB0aGUgdGl0bGUsIHNvIHRoZSBpZCBuZXZlciBhcHBlYXJzIHR3aWNlLiBgdGFnYCByaWRlcyBhbG9uZyBhcyBjdXN0b20gbWV0YWRhdGEuXG5jb25zdCB0b09wdGlvbiA9IChpdGVtLCBtYWluVGFnKSA9PiB7XG4gICAgY29uc3QgaGFzTmFtZSA9ICEhaXRlbS5jdXN0b21lck5hbWU7XG4gICAgY29uc3QgbGFiZWwgPSBoYXNOYW1lID8gaXRlbS5jdXN0b21lck5hbWUgOiBpdGVtLmFjY291bnRJZDtcbiAgICByZXR1cm4ge1xuICAgICAgICBsYWJlbCxcbiAgICAgICAgdmFsdWU6IGl0ZW0uYWNjb3VudElkLFxuICAgICAgICBkZXNjcmlwdGlvbjogaGFzTmFtZSA/IGl0ZW0uYWNjb3VudElkIDogdW5kZWZpbmVkLFxuICAgICAgICB0YWc6IGl0ZW0uaXNNYWluID8gbWFpblRhZyA6IHVuZGVmaW5lZCxcbiAgICAgICAgc2VhcmNoVGV4dDogW2xhYmVsLCBpdGVtLmFjY291bnRJZF0uam9pbignICcpLFxuICAgIH07XG59O1xuY29uc3QgcmVuZGVyUm93ID0gKG9wdGlvbiwgY2hlY2tlZCkgPT4ge1xuICAgIGNvbnN0IHRhZyA9IG9wdGlvbi50YWc7XG4gICAgcmV0dXJuIChfanN4cyhGbGV4LCB7IGFsaWduOiAnY2VudGVyJywganVzdGlmeTogJ3NwYWNlLWJldHdlZW4nLCBnYXA6IDEyLCBjbGFzc05hbWU6IGAke1dSQVBfQ0xTfV9fcm93YCwgY2hpbGRyZW46IFtfanN4cyhGbGV4LCB7IHZlcnRpY2FsOiB0cnVlLCBnYXA6IDAsIGFsaWduOiAnc3RhcnQnLCBjbGFzc05hbWU6IGAke1dSQVBfQ0xTfV9fcm93LXRleHRgLCBjaGlsZHJlbjogW19qc3hzKEZsZXgsIHsgYWxpZ246ICdjZW50ZXInLCBnYXA6IDgsIGNsYXNzTmFtZTogYCR7V1JBUF9DTFN9X19yb3ctbGluZWAsIGNoaWxkcmVuOiBbX2pzeChUeXBvZ3JhcGh5Qm9keSwgeyBzaXplOiAnc20nLCBzdHJvbmc6IHRydWUsIGNsYXNzTmFtZTogYCR7V1JBUF9DTFN9X19yb3ctbmFtZWAsIGNoaWxkcmVuOiBvcHRpb24ubGFiZWwgfSksIHRhZyAmJiBfanN4KFRhZywgeyBsYWJlbDogdGFnLCBzaXplOiAnc21hbGwnLCBjb2xvcjogJ3JlY29tbWVuZGVkJyB9KV0gfSksIG9wdGlvbi5kZXNjcmlwdGlvbiAmJiAoX2pzeChUeXBvZ3JhcGh5Qm9keSwgeyBzaXplOiAnc20nLCBjb2xvcjogJ2RlZmF1bHQtc2Vjb25kYXJ5JywgY2hpbGRyZW46IG9wdGlvbi5kZXNjcmlwdGlvbiB9KSldIH0pLCBfanN4KENoZWNrYm94LCB7IGNoZWNrZWQ6IGNoZWNrZWQsIHJlYWRPbmx5OiB0cnVlLCBjbGFzc05hbWU6ICdvbS1maWx0ZXJfX3Jvdy1jaGVjaycgfSldIH0pKTtcbn07XG5jb25zdCBBY2NvdW50RmlsdGVyQmFzZSA9IChfYSkgPT4ge1xuICAgIHZhciB7IHJlZiwgY2xhc3NOYW1lLCBzaXplID0gJ2V4dHJhLXNtYWxsJywgbGFiZWwsIHBsYWNlaG9sZGVyOiBwbGFjZWhvbGRlclByb3AsIGRhdGEsIGFsbExhYmVsOiBhbGxMYWJlbFByb3AsIHNlYXJjaCA9IHRydWUsIGZpbHRlcklucHV0QXV0b0ZvY3VzID0gZmFsc2UsIHNlYXJjaFBsYWNlaG9sZGVyOiBzZWFyY2hQbGFjZWhvbGRlclByb3AsIHNlYXJjaEVtcHR5LCBvbkFwcGx5LCBvblJlc2V0IH0gPSBfYSwgcmVzdCA9IF9fcmVzdChfYSwgW1wicmVmXCIsIFwiY2xhc3NOYW1lXCIsIFwic2l6ZVwiLCBcImxhYmVsXCIsIFwicGxhY2Vob2xkZXJcIiwgXCJkYXRhXCIsIFwiYWxsTGFiZWxcIiwgXCJzZWFyY2hcIiwgXCJmaWx0ZXJJbnB1dEF1dG9Gb2N1c1wiLCBcInNlYXJjaFBsYWNlaG9sZGVyXCIsIFwic2VhcmNoRW1wdHlcIiwgXCJvbkFwcGx5XCIsIFwib25SZXNldFwiXSk7XG4gICAgY29uc3QgbG9jYWxlID0gdXNlTG9jYWxlKCdBY2NvdW50RmlsdGVyJyk7XG4gICAgY29uc3QgcGxhY2Vob2xkZXIgPSBwbGFjZWhvbGRlclByb3AgIT09IG51bGwgJiYgcGxhY2Vob2xkZXJQcm9wICE9PSB2b2lkIDAgPyBwbGFjZWhvbGRlclByb3AgOiBsb2NhbGUucGxhY2Vob2xkZXI7XG4gICAgY29uc3QgYWxsTGFiZWwgPSBhbGxMYWJlbFByb3AgIT09IG51bGwgJiYgYWxsTGFiZWxQcm9wICE9PSB2b2lkIDAgPyBhbGxMYWJlbFByb3AgOiBsb2NhbGUuYWxsTGFiZWw7XG4gICAgY29uc3Qgc2VhcmNoUGxhY2Vob2xkZXIgPSBzZWFyY2hQbGFjZWhvbGRlclByb3AgIT09IG51bGwgJiYgc2VhcmNoUGxhY2Vob2xkZXJQcm9wICE9PSB2b2lkIDAgPyBzZWFyY2hQbGFjZWhvbGRlclByb3AgOiBsb2NhbGUuc2VhcmNoUGxhY2Vob2xkZXI7XG4gICAgY29uc3QgZW1wdHlDb250ZW50ID0gc2VhcmNoRW1wdHkgIT09IG51bGwgJiYgc2VhcmNoRW1wdHkgIT09IHZvaWQgMCA/IHNlYXJjaEVtcHR5IDogcmVuZGVyRGVmYXVsdEVtcHR5KGxvY2FsZS5ub1Jlc3VsdHMsIGxvY2FsZS5ub1Jlc3VsdHNIaW50KTtcbiAgICBjb25zdCBmaWx0ZXJSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHVzZU1lbW8oKCkgPT4gZGF0YS5tYXAoKGl0ZW0pID0+IHRvT3B0aW9uKGl0ZW0sIGxvY2FsZS5tYWluVGFnKSksIFtkYXRhLCBsb2NhbGUubWFpblRhZ10pO1xuICAgIHVzZUltcGVyYXRpdmVIYW5kbGUocmVmLCAoKSA9PiAoe1xuICAgICAgICBjbGVhcjogKCkgPT4geyB2YXIgX2E7IHJldHVybiAoX2EgPSBmaWx0ZXJSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNsZWFyKCk7IH0sXG4gICAgICAgIHJlc2V0OiAoKSA9PiB7IHZhciBfYTsgcmV0dXJuIChfYSA9IGZpbHRlclJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EucmVzZXQoKTsgfSxcbiAgICB9KSk7XG4gICAgcmV0dXJuIChfanN4KEZpbHRlciwgT2JqZWN0LmFzc2lnbih7fSwgcmVzdCwgeyByZWY6IGZpbHRlclJlZiwgY2xhc3NOYW1lOiBjbGFzc05hbWUsIHBhbmVsQ2xhc3NOYW1lOiBQQU5FTF9DTFMsIHNpemU6IHNpemUsIGxhYmVsOiBsYWJlbCwgcGxhY2Vob2xkZXI6IHBsYWNlaG9sZGVyLCBvcHRpb25zOiBvcHRpb25zLCBhbGxMYWJlbDogYWxsTGFiZWwsIHNlYXJjaDogc2VhcmNoLCBmaWx0ZXJJbnB1dEF1dG9Gb2N1czogZmlsdGVySW5wdXRBdXRvRm9jdXMsIHNlYXJjaFBsYWNlaG9sZGVyOiBzZWFyY2hQbGFjZWhvbGRlciwgZW1wdHlDb250ZW50OiBlbXB0eUNvbnRlbnQsIHJlbmRlclJvdzogcmVuZGVyUm93LCBvbkFwcGx5OiBvbkFwcGx5LCBvblJlc2V0OiBvblJlc2V0IH0pKSk7XG59O1xuZXhwb3J0IGNvbnN0IEFjY291bnRGaWx0ZXIgPSBtZW1vKEFjY291bnRGaWx0ZXJCYXNlKTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
@@ -62,6 +62,13 @@ export interface AccountFilterProps extends Omit<SelectProps, 'ref' | 'options'
62
62
  * @default true
63
63
  */
64
64
  search?: boolean;
65
+ /**
66
+ * Focus the panel search automatically on open. Defaults to false so a
67
+ * mouse-opened account filter keeps the search in its Default state.
68
+ * Keyboard users can Tab into the search and navigate matching options.
69
+ * @default false
70
+ */
71
+ filterInputAutoFocus?: boolean;
65
72
  /**
66
73
  * Search-box placeholder. The box matches the account name and id.
67
74
  * @default 'Search by name or #'
@@ -16,7 +16,7 @@ import { Flex } from '../../../components/Flex';
16
16
  import { Icons } from '../../../components/Icons';
17
17
  import { Radio } from '../../../components/Radio';
18
18
  import { Select } from '../../../components/Select';
19
- import { TypographyBody, TypographyLabel } from '../../../components/Typography';
19
+ import { TypographyBody, TypographyTitle } from '../../../components/Typography';
20
20
  import { joinCls } from '../../../utils/classnames';
21
21
  import { ALL_TRANSACTIONS_VALUE, DATE_RANGE_OPTIONS } from './interface';
22
22
  var WRAP_CLS = 'om-date-range-filter';
@@ -28,10 +28,10 @@ var CALENDAR_PANEL_CLS = 'om-date-range-filter-calendar-panel';
28
28
  // scoping panel-body overrides without leaking into other Select panels.
29
29
  var SELECT_PANEL_CLS = 'om-date-range-filter-panel';
30
30
  var PANEL_WIDTH_PRESET = 240;
31
- var PANEL_WIDTH_CUSTOM = 320;
31
+ var PANEL_WIDTH_CUSTOM = 256;
32
32
  var CALENDAR_MONTHS = 2;
33
33
  var CHEVRON_SIZE = 16;
34
- var BACK_ICON_SIZE = 24;
34
+ var BACK_ICON_SIZE = 16;
35
35
  var RANGE_SEPARATOR = ' - ';
36
36
  var FULL_WIDTH_STYLE = {
37
37
  flex: 1
@@ -331,23 +331,40 @@ var DateRangeFilterBase = function DateRangeFilterBase(_a) {
331
331
  className: "".concat(WRAP_CLS, "__custom"),
332
332
  children: [_jsxs(Flex, {
333
333
  align: 'center',
334
- gap: 8,
334
+ gap: 16,
335
335
  className: "".concat(WRAP_CLS, "__custom-header"),
336
- children: [_jsx(Icons, {
337
- name: 'arrowLeft',
338
- size: BACK_ICON_SIZE,
339
- wrapperCls: "".concat(WRAP_CLS, "__back-icon"),
336
+ children: [_jsx("button", {
337
+ type: 'button',
338
+ "aria-label": locale.back,
339
+ className: "".concat(WRAP_CLS, "__back"),
340
340
  onClick: function onClick() {
341
341
  return setShowCustomRange(false);
342
- }
343
- }), _jsx(TypographyLabel, {
344
- size: 'lg',
342
+ },
343
+ children: _jsx(Icons, {
344
+ name: 'arrowLeft',
345
+ size: BACK_ICON_SIZE
346
+ })
347
+ }), _jsx(TypographyTitle, {
348
+ size: 'sm',
349
+ strong: true,
350
+ className: "".concat(WRAP_CLS, "__custom-title"),
345
351
  children: locale.customDateRange
352
+ }), _jsx("span", {
353
+ "aria-hidden": true,
354
+ className: "".concat(WRAP_CLS, "__header-spacer")
346
355
  })]
347
356
  }), _jsx(Calendar, {
348
357
  wrapperCls: "".concat(WRAP_CLS, "__calendar"),
349
358
  panelClassName: CALENDAR_PANEL_CLS,
350
359
  size: 'small',
360
+ prevIcon: _jsx(Icons, {
361
+ name: 'chevronLeft',
362
+ size: CHEVRON_SIZE
363
+ }),
364
+ nextIcon: _jsx(Icons, {
365
+ name: 'chevronRight',
366
+ size: CHEVRON_SIZE
367
+ }),
351
368
  selectionMode: 'range',
352
369
  placeholder: locale.rangePlaceholder,
353
370
  readOnlyInput: true,
@@ -361,7 +378,7 @@ var DateRangeFilterBase = function DateRangeFilterBase(_a) {
361
378
  onChange: handleDateSelect
362
379
  }), _jsxs(Flex, {
363
380
  gap: 8,
364
- className: joinCls("".concat(WRAP_CLS, "__footer"), "".concat(WRAP_CLS, "__footer--bordered")),
381
+ className: joinCls("".concat(WRAP_CLS, "__footer"), "".concat(WRAP_CLS, "__footer--custom")),
365
382
  children: [_jsx(Button, {
366
383
  color: 'grey',
367
384
  size: 'small',
@@ -408,4 +425,4 @@ var DateRangeFilterBase = function DateRangeFilterBase(_a) {
408
425
  }));
409
426
  };
410
427
  export var DateRangeFilter = /*#__PURE__*/memo(DateRangeFilterBase);
411
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL0ZpbHRlci9EYXRlUmFuZ2UvRGF0ZVJhbmdlLmpzIiwiYnVzaW5lc3MvRmlsdGVyL3NyYy9idXNpbmVzcy9GaWx0ZXIvRGF0ZVJhbmdlL0RhdGVSYW5nZS50c3giXSwibmFtZXMiOlsiX19yZXN0IiwicyIsImUiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJtZW1vIiwidXNlQ2FsbGJhY2siLCJ1c2VJbXBlcmF0aXZlSGFuZGxlIiwidXNlTWVtbyIsInVzZVN0YXRlIiwiQnV0dG9uIiwidXNlTG9jYWxlIiwidXNlTG9jYWxlQ29kZSIsIkNhbGVuZGFyIiwiRmxleCIsIkljb25zIiwiUmFkaW8iLCJTZWxlY3QiLCJUeXBvZ3JhcGh5Qm9keSIsIlR5cG9ncmFwaHlMYWJlbCIsImpvaW5DbHMiLCJBTExfVFJBTlNBQ1RJT05TX1ZBTFVFIiwiREFURV9SQU5HRV9PUFRJT05TIiwiV1JBUF9DTFMiLCJDQUxFTkRBUl9QQU5FTF9DTFMiLCJTRUxFQ1RfUEFORUxfQ0xTIiwiUEFORUxfV0lEVEhfUFJFU0VUIiwiUEFORUxfV0lEVEhfQ1VTVE9NIiwiQ0FMRU5EQVJfTU9OVEhTIiwiQ0hFVlJPTl9TSVpFIiwiQkFDS19JQ09OX1NJWkUiLCJSQU5HRV9TRVBBUkFUT1IiLCJGVUxMX1dJRFRIX1NUWUxFIiwiZmxleCIsIl9EQVRFX1JBTkdFX09QVElPTlMiLCJfc2xpY2VkVG9BcnJheSIsIk9QVElPTl9BTEwiLCJPUFRJT05fTEFTVF8zMF9EQVlTIiwiT1BUSU9OX1lFQVJfVE9fREFURSIsIk9QVElPTl9MQVNUXzEyX01PTlRIUyIsIk9QVElPTl9DVVNUT00iLCJMQVNUXzMwX0RBWVNfQ09VTlQiLCJMQVNUXzEyX01PTlRIU19DT1VOVCIsIllFQVJfU1RBUlRfTU9OVEgiLCJGSVJTVF9EQVlfT0ZfTU9OVEgiLCJEQVlfU1RBUlRfVElNRSIsIkRBWV9FTkRfVElNRSIsIkRBVEVfRk9STUFUX09QVElPTlMiLCJtb250aCIsImRheSIsInllYXIiLCJFTVBUWV9SQU5HRSIsInN0YXJ0RGF0ZSIsImVuZERhdGUiLCJzdGFydE9mRGF5IiwiZGF0ZSIsInJlc3VsdCIsIkRhdGUiLCJzZXRIb3VycyIsImFwcGx5IiwiZW5kT2ZEYXkiLCJmb3JtYXRSYW5nZSIsImZvcm1hdHRlciIsInN0YXJ0IiwiZW5kIiwiY29uY2F0IiwiZm9ybWF0IiwiZ2V0RGF0ZUZyb21PcHRpb24iLCJvcHRpb24iLCJyYW5nZSIsInRvZGF5Iiwic2V0RGF0ZSIsImdldERhdGUiLCJnZXRGdWxsWWVhciIsInNldE1vbnRoIiwiZ2V0TW9udGgiLCJEYXRlUmFuZ2VGaWx0ZXJCYXNlIiwiX2EiLCJyZWYiLCJjbGFzc05hbWUiLCJsYWJlbCIsInBsYWNlaG9sZGVyUHJvcCIsInBsYWNlaG9sZGVyIiwiYWxsVHJhbnNhY3Rpb25zTGFiZWxQcm9wIiwiYWxsVHJhbnNhY3Rpb25zTGFiZWwiLCJfYSRkZWZhdWx0U2VsZWN0QWxsIiwiZGVmYXVsdFNlbGVjdEFsbCIsIm9uQXBwbHkiLCJvblJlc2V0IiwicmVzdCIsImxvY2FsZSIsImxvY2FsZUNvZGUiLCJhbGxUcmFuc2FjdGlvbnMiLCJkYXRlRm9ybWF0dGVyIiwiSW50bCIsIkRhdGVUaW1lRm9ybWF0IiwiaW5pdGlhbE9wdGlvbiIsImluaXRpYWxUZXh0IiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIm9wZW4iLCJzZXRPcGVuIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJzZWxlY3RlZE9wdGlvbiIsInNldFNlbGVjdGVkT3B0aW9uIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJsYXN0U2VsZWN0ZWRPcHRpb24iLCJzZXRMYXN0U2VsZWN0ZWRPcHRpb24iLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsInNlbGVjdGVkUmFuZ2UiLCJzZXRTZWxlY3RlZFJhbmdlIiwiX3VzZVN0YXRlOSIsIl91c2VTdGF0ZTAiLCJhcHBsaWVkUmFuZ2UiLCJzZXRBcHBsaWVkUmFuZ2UiLCJfdXNlU3RhdGUxIiwiX3VzZVN0YXRlMTAiLCJzZWxlY3RlZFRleHQiLCJzZXRTZWxlY3RlZFRleHQiLCJfdXNlU3RhdGUxMSIsIl91c2VTdGF0ZTEyIiwic2hvd0N1c3RvbVJhbmdlIiwic2V0U2hvd0N1c3RvbVJhbmdlIiwiX3VzZVN0YXRlMTMiLCJ1bmRlZmluZWQiLCJfdXNlU3RhdGUxNCIsIm1vbnRoVmlldyIsInNldE1vbnRoVmlldyIsImNsZWFyIiwicmVzZXQiLCJnZXREaXNwbGF5TGFiZWwiLCJsYXN0MzBEYXlzIiwieWVhclRvRGF0ZSIsImxhc3QxMk1vbnRocyIsImN1c3RvbURhdGVSYW5nZSIsImhhbmRsZUl0ZW1DbGljayIsImhhbmRsZURhdGVTZWxlY3QiLCJldmVudCIsInZhbHVlIiwiQXJyYXkiLCJpc0FycmF5IiwiX3ZhbHVlIiwiYXBwbHlQcmVzZXQiLCJhcHBseUN1c3RvbSIsInJlc2V0U2VsZWN0aW9uIiwiaGFuZGxlT3BlbkNoYW5nZSIsIm5leHRPcGVuIiwiY2FsZW5kYXJWYWx1ZSIsInJlbmRlclByZXNldExpc3QiLCJjaGlsZHJlbiIsIm1hcCIsIm9uQ2xpY2siLCJzaXplIiwic3Ryb25nIiwibmFtZSIsImNoZWNrZWQiLCJnYXAiLCJjb2xvciIsInN0eWxlIiwiZGlzYWJsZWQiLCJyZW5kZXJDdXN0b21SYW5nZSIsImFsaWduIiwid3JhcHBlckNscyIsInBhbmVsQ2xhc3NOYW1lIiwic2VsZWN0aW9uTW9kZSIsInJhbmdlUGxhY2Vob2xkZXIiLCJyZWFkT25seUlucHV0IiwiaGlkZU9uUmFuZ2VTZWxlY3Rpb24iLCJudW1iZXJPZk1vbnRocyIsInZpZXdEYXRlIiwib25WaWV3RGF0ZUNoYW5nZSIsIm9uQ2hhbmdlIiwiQ3VzdG9tIiwiYXNzaWduIiwiYW5pbWF0aW9uIiwicGFuZWxXaWR0aCIsIm9uT3BlbkNoYW5nZSIsInNlbGVjdGVkVGVtcGxhdGUiLCJfcmVmIiwiZm9udFNpemUiLCJEYXRlUmFuZ2VGaWx0ZXIiXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFJQSxNQUFNLEdBQUksSUFBSSxJQUFJLElBQUksQ0FBQ0EsTUFBTSxJQUFLLFVBQVVDLENBQUMsRUFBRUMsQ0FBQyxFQUFFO0VBQ2xELElBQUlDLENBQUMsR0FBRyxDQUFDLENBQUM7RUFDVixLQUFLLElBQUlDLENBQUMsSUFBSUgsQ0FBQyxFQUFFLElBQUlJLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ1AsQ0FBQyxFQUFFRyxDQUFDLENBQUMsSUFBSUYsQ0FBQyxDQUFDTyxPQUFPLENBQUNMLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFDL0VELENBQUMsQ0FBQ0MsQ0FBQyxDQUFDLEdBQUdILENBQUMsQ0FBQ0csQ0FBQyxDQUFDO0VBQ2YsSUFBSUgsQ0FBQyxJQUFJLElBQUksSUFBSSxPQUFPSSxNQUFNLENBQUNLLHFCQUFxQixLQUFLLFVBQVUsRUFDL0QsS0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxFQUFFUCxDQUFDLEdBQUdDLE1BQU0sQ0FBQ0sscUJBQXFCLENBQUNULENBQUMsQ0FBQyxFQUFFVSxDQUFDLEdBQUdQLENBQUMsQ0FBQ1EsTUFBTSxFQUFFRCxDQUFDLEVBQUUsRUFBRTtJQUNwRSxJQUFJVCxDQUFDLENBQUNPLE9BQU8sQ0FBQ0wsQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSU4sTUFBTSxDQUFDQyxTQUFTLENBQUNPLG9CQUFvQixDQUFDTCxJQUFJLENBQUNQLENBQUMsRUFBRUcsQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FBQyxFQUMxRVIsQ0FBQyxDQUFDQyxDQUFDLENBQUNPLENBQUMsQ0FBQyxDQUFDLEdBQUdWLENBQUMsQ0FBQ0csQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FBQztFQUN6QjtFQUNKLE9BQU9SLENBQUM7QUFDWixD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QUNELElBQUk7SUFBQWdDLFFBQUEsRUFHVCxTQUhTQSxRQUFBQSxDQUFBO01BQUEsT0FHRjVCLGVBQWUsR0FBR3VDLGlCQUFpQixDQUFBLENBQUUsR0FBR1osZ0JBQWdCLENBQUEsQ0FBRTtJQUFBO0VBQUMsQ0FBQSxDQUFBLENBQ3JEO0FBRXBCLENBQUM7QUFFRCxPQUFPLElBQU1nQyxlQUFlLGdCQUFHbEwsSUFBSSxDQUFDdUUsbUJBQW1CLENBQUMiLCJmaWxlIjoiYnVzaW5lc3MvRmlsdGVyL0RhdGVSYW5nZS9EYXRlUmFuZ2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cywgRnJhZ21lbnQgYXMgX0ZyYWdtZW50IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBtZW1vLCB1c2VDYWxsYmFjaywgdXNlSW1wZXJhdGl2ZUhhbmRsZSwgdXNlTWVtbywgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL0J1dHRvbic7XG5pbXBvcnQgeyB1c2VMb2NhbGUsIHVzZUxvY2FsZUNvZGUgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL0NvbmZpZ1Byb3ZpZGVyJztcbmltcG9ydCB7IENhbGVuZGFyIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9DYWxlbmRhcic7XG5pbXBvcnQgeyBGbGV4IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9GbGV4JztcbmltcG9ydCB7IEljb25zIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9JY29ucyc7XG5pbXBvcnQgeyBSYWRpbyB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvUmFkaW8nO1xuaW1wb3J0IHsgU2VsZWN0IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9TZWxlY3QnO1xuaW1wb3J0IHsgVHlwb2dyYXBoeUJvZHksIFR5cG9ncmFwaHlMYWJlbCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvVHlwb2dyYXBoeSc7XG5pbXBvcnQgeyBqb2luQ2xzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBBTExfVFJBTlNBQ1RJT05TX1ZBTFVFLCBEQVRFX1JBTkdFX09QVElPTlMsIH0gZnJvbSAnLi9pbnRlcmZhY2UnO1xuY29uc3QgV1JBUF9DTFMgPSAnb20tZGF0ZS1yYW5nZS1maWx0ZXInO1xuLy8gVGhlIGNhbGVuZGFyIG92ZXJsYXkgaXMgcG9ydGFsZWQgdG8gPGJvZHk+LCBvdXRzaWRlIFdSQVBfQ0xTIOKAlCB0aGlzIGlzIGFcbi8vIHN0YW5kYWxvbmUgdG9wLWxldmVsIGhvb2sgc28gaXRzIFNDU1MgY2FuIGxpZnQgaXQgYWJvdmUgdGhlIGhvc3Rcbi8vIFNlbGVjdC5DdXN0b20gcGFuZWwgKHotaW5kZXggMTUwMCkuXG5jb25zdCBDQUxFTkRBUl9QQU5FTF9DTFMgPSAnb20tZGF0ZS1yYW5nZS1maWx0ZXItY2FsZW5kYXItcGFuZWwnO1xuLy8gVGhlIFNlbGVjdC5DdXN0b20gcGFuZWwgaXMgcG9ydGFsZWQgdG8gPGJvZHk+IHRvbyDigJQgdG9wLWxldmVsIGhvb2sgZm9yXG4vLyBzY29waW5nIHBhbmVsLWJvZHkgb3ZlcnJpZGVzIHdpdGhvdXQgbGVha2luZyBpbnRvIG90aGVyIFNlbGVjdCBwYW5lbHMuXG5jb25zdCBTRUxFQ1RfUEFORUxfQ0xTID0gJ29tLWRhdGUtcmFuZ2UtZmlsdGVyLXBhbmVsJztcbmNvbnN0IFBBTkVMX1dJRFRIX1BSRVNFVCA9IDI0MDtcbmNvbnN0IFBBTkVMX1dJRFRIX0NVU1RPTSA9IDMyMDtcbmNvbnN0IENBTEVOREFSX01PTlRIUyA9IDI7XG5jb25zdCBDSEVWUk9OX1NJWkUgPSAxNjtcbmNvbnN0IEJBQ0tfSUNPTl9TSVpFID0gMjQ7XG5jb25zdCBSQU5HRV9TRVBBUkFUT1IgPSAnIC0gJztcbmNvbnN0IEZVTExfV0lEVEhfU1RZTEUgPSB7IGZsZXg6IDEgfTtcbmNvbnN0IFtPUFRJT05fQUxMLCBPUFRJT05fTEFTVF8zMF9EQVlTLCBPUFRJT05fWUVBUl9UT19EQVRFLCBPUFRJT05fTEFTVF8xMl9NT05USFMsIE9QVElPTl9DVVNUT00sXSA9IERBVEVfUkFOR0VfT1BUSU9OUztcbmNvbnN0IExBU1RfMzBfREFZU19DT1VOVCA9IDMwO1xuY29uc3QgTEFTVF8xMl9NT05USFNfQ09VTlQgPSAxMjtcbmNvbnN0IFlFQVJfU1RBUlRfTU9OVEggPSAwOyAvLyBKYW51YXJ5ICh6ZXJvLWJhc2VkIG1vbnRoIGluZGV4KVxuY29uc3QgRklSU1RfREFZX09GX01PTlRIID0gMTtcbi8vIERheS1ib3VuZGFyeSB0aW1lcyBzbyBhbiBhcHBsaWVkIHJhbmdlIGNvdmVycyB3aG9sZSBkYXlzIGluY2x1c2l2ZWx5OlxuLy8gdGhlIHN0YXJ0IGRheSBmcm9tIDAwOjAwOjAwLjAwMCBhbmQgdGhlIGVuZCBkYXkgdGhyb3VnaCAyMzo1OTo1OS45OTkuXG5jb25zdCBEQVlfU1RBUlRfVElNRSA9IFswLCAwLCAwLCAwXTsgLy8gW2hvdXJzLCBtaW51dGVzLCBzZWNvbmRzLCBtc11cbmNvbnN0IERBWV9FTkRfVElNRSA9IFsyMywgNTksIDU5LCA5OTldOyAvLyBbaG91cnMsIG1pbnV0ZXMsIHNlY29uZHMsIG1zXVxuY29uc3QgREFURV9GT1JNQVRfT1BUSU9OUyA9IHtcbiAgICBtb250aDogJzItZGlnaXQnLFxuICAgIGRheTogJzItZGlnaXQnLFxuICAgIHllYXI6ICdudW1lcmljJyxcbn07XG5jb25zdCBFTVBUWV9SQU5HRSA9IHsgc3RhcnREYXRlOiBudWxsLCBlbmREYXRlOiBudWxsIH07XG5jb25zdCBzdGFydE9mRGF5ID0gKGRhdGUpID0+IHtcbiAgICBjb25zdCByZXN1bHQgPSBuZXcgRGF0ZShkYXRlKTtcbiAgICByZXN1bHQuc2V0SG91cnMoLi4uREFZX1NUQVJUX1RJTUUpO1xuICAgIHJldHVybiByZXN1bHQ7XG59O1xuY29uc3QgZW5kT2ZEYXkgPSAoZGF0ZSkgPT4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBEYXRlKGRhdGUpO1xuICAgIHJlc3VsdC5zZXRIb3VycyguLi5EQVlfRU5EX1RJTUUpO1xuICAgIHJldHVybiByZXN1bHQ7XG59O1xuY29uc3QgZm9ybWF0UmFuZ2UgPSAoZm9ybWF0dGVyLCBzdGFydCwgZW5kKSA9PiBgJHtmb3JtYXR0ZXIuZm9ybWF0KHN0YXJ0KX0ke1JBTkdFX1NFUEFSQVRPUn0ke2Zvcm1hdHRlci5mb3JtYXQoZW5kKX1gO1xuY29uc3QgZ2V0RGF0ZUZyb21PcHRpb24gPSAob3B0aW9uLCByYW5nZSkgPT4ge1xuICAgIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKTtcbiAgICBzd2l0Y2ggKG9wdGlvbikge1xuICAgICAgICBjYXNlIE9QVElPTl9MQVNUXzMwX0RBWVM6IHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgICAgICAgICBzdGFydERhdGUuc2V0RGF0ZSh0b2RheS5nZXREYXRlKCkgLSBMQVNUXzMwX0RBWVNfQ09VTlQpO1xuICAgICAgICAgICAgcmV0dXJuIHsgc3RhcnREYXRlOiBzdGFydE9mRGF5KHN0YXJ0RGF0ZSksIGVuZERhdGU6IGVuZE9mRGF5KHRvZGF5KSB9O1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgT1BUSU9OX1lFQVJfVE9fREFURToge1xuICAgICAgICAgICAgY29uc3Qgc3RhcnREYXRlID0gbmV3IERhdGUodG9kYXkuZ2V0RnVsbFllYXIoKSwgWUVBUl9TVEFSVF9NT05USCwgRklSU1RfREFZX09GX01PTlRIKTtcbiAgICAgICAgICAgIHJldHVybiB7IHN0YXJ0RGF0ZTogc3RhcnRPZkRheShzdGFydERhdGUpLCBlbmREYXRlOiBlbmRPZkRheSh0b2RheSkgfTtcbiAgICAgICAgfVxuICAgICAgICBjYXNlIE9QVElPTl9MQVNUXzEyX01PTlRIUzoge1xuICAgICAgICAgICAgY29uc3Qgc3RhcnREYXRlID0gbmV3IERhdGUoKTtcbiAgICAgICAgICAgIHN0YXJ0RGF0ZS5zZXRNb250aCh0b2RheS5nZXRNb250aCgpIC0gTEFTVF8xMl9NT05USFNfQ09VTlQpO1xuICAgICAgICAgICAgcmV0dXJuIHsgc3RhcnREYXRlOiBzdGFydE9mRGF5KHN0YXJ0RGF0ZSksIGVuZERhdGU6IGVuZE9mRGF5KHRvZGF5KSB9O1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgT1BUSU9OX0NVU1RPTTpcbiAgICAgICAgICAgIGlmIChyYW5nZS5zdGFydERhdGUgJiYgcmFuZ2UuZW5kRGF0ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IHN0YXJ0RGF0ZTogc3RhcnRPZkRheShyYW5nZS5zdGFydERhdGUpLCBlbmREYXRlOiBlbmRPZkRheShyYW5nZS5lbmREYXRlKSB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIEFMTF9UUkFOU0FDVElPTlNfVkFMVUU7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gQUxMX1RSQU5TQUNUSU9OU19WQUxVRTtcbiAgICB9XG59O1xuY29uc3QgRGF0ZVJhbmdlRmlsdGVyQmFzZSA9IChfYSkgPT4ge1xuICAgIHZhciB7IHJlZiwgY2xhc3NOYW1lLCBsYWJlbCwgcGxhY2Vob2xkZXI6IHBsYWNlaG9sZGVyUHJvcCwgYWxsVHJhbnNhY3Rpb25zTGFiZWw6IGFsbFRyYW5zYWN0aW9uc0xhYmVsUHJvcCwgZGVmYXVsdFNlbGVjdEFsbCA9IGZhbHNlLCBvbkFwcGx5LCBvblJlc2V0IH0gPSBfYSwgcmVzdCA9IF9fcmVzdChfYSwgW1wicmVmXCIsIFwiY2xhc3NOYW1lXCIsIFwibGFiZWxcIiwgXCJwbGFjZWhvbGRlclwiLCBcImFsbFRyYW5zYWN0aW9uc0xhYmVsXCIsIFwiZGVmYXVsdFNlbGVjdEFsbFwiLCBcIm9uQXBwbHlcIiwgXCJvblJlc2V0XCJdKTtcbiAgICBjb25zdCBsb2NhbGUgPSB1c2VMb2NhbGUoJ0RhdGVSYW5nZUZpbHRlcicpO1xuICAgIGNvbnN0IGxvY2FsZUNvZGUgPSB1c2VMb2NhbGVDb2RlKCk7XG4gICAgY29uc3QgcGxhY2Vob2xkZXIgPSBwbGFjZWhvbGRlclByb3AgIT09IG51bGwgJiYgcGxhY2Vob2xkZXJQcm9wICE9PSB2b2lkIDAgPyBwbGFjZWhvbGRlclByb3AgOiBsb2NhbGUucGxhY2Vob2xkZXI7XG4gICAgY29uc3QgYWxsVHJhbnNhY3Rpb25zTGFiZWwgPSBhbGxUcmFuc2FjdGlvbnNMYWJlbFByb3AgIT09IG51bGwgJiYgYWxsVHJhbnNhY3Rpb25zTGFiZWxQcm9wICE9PSB2b2lkIDAgPyBhbGxUcmFuc2FjdGlvbnNMYWJlbFByb3AgOiBsb2NhbGUuYWxsVHJhbnNhY3Rpb25zO1xuICAgIGNvbnN0IGRhdGVGb3JtYXR0ZXIgPSB1c2VNZW1vKCgpID0+IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KGxvY2FsZUNvZGUsIERBVEVfRk9STUFUX09QVElPTlMpLCBbbG9jYWxlQ29kZV0pO1xuICAgIGNvbnN0IGluaXRpYWxPcHRpb24gPSBkZWZhdWx0U2VsZWN0QWxsID8gT1BUSU9OX0FMTCA6IG51bGw7XG4gICAgY29uc3QgaW5pdGlhbFRleHQgPSBkZWZhdWx0U2VsZWN0QWxsID8gYWxsVHJhbnNhY3Rpb25zTGFiZWwgOiAnJztcbiAgICBjb25zdCBbb3Blbiwgc2V0T3Blbl0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgW3NlbGVjdGVkT3B0aW9uLCBzZXRTZWxlY3RlZE9wdGlvbl0gPSB1c2VTdGF0ZShpbml0aWFsT3B0aW9uKTtcbiAgICBjb25zdCBbbGFzdFNlbGVjdGVkT3B0aW9uLCBzZXRMYXN0U2VsZWN0ZWRPcHRpb25dID0gdXNlU3RhdGUoaW5pdGlhbE9wdGlvbik7XG4gICAgY29uc3QgW3NlbGVjdGVkUmFuZ2UsIHNldFNlbGVjdGVkUmFuZ2VdID0gdXNlU3RhdGUoRU1QVFlfUkFOR0UpO1xuICAgIGNvbnN0IFthcHBsaWVkUmFuZ2UsIHNldEFwcGxpZWRSYW5nZV0gPSB1c2VTdGF0ZShFTVBUWV9SQU5HRSk7XG4gICAgY29uc3QgW3NlbGVjdGVkVGV4dCwgc2V0U2VsZWN0ZWRUZXh0XSA9IHVzZVN0YXRlKGluaXRpYWxUZXh0KTtcbiAgICBjb25zdCBbc2hvd0N1c3RvbVJhbmdlLCBzZXRTaG93Q3VzdG9tUmFuZ2VdID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IFttb250aFZpZXcsIHNldE1vbnRoVmlld10gPSB1c2VTdGF0ZSh1bmRlZmluZWQpO1xuICAgIHVzZUltcGVyYXRpdmVIYW5kbGUocmVmLCAoKSA9PiAoe1xuICAgICAgICBjbGVhcjogKCkgPT4ge1xuICAgICAgICAgICAgc2V0U2VsZWN0ZWRPcHRpb24obnVsbCk7XG4gICAgICAgICAgICBzZXRMYXN0U2VsZWN0ZWRPcHRpb24obnVsbCk7XG4gICAgICAgICAgICBzZXRTZWxlY3RlZFJhbmdlKEVNUFRZX1JBTkdFKTtcbiAgICAgICAgICAgIHNldEFwcGxpZWRSYW5nZShFTVBUWV9SQU5HRSk7XG4gICAgICAgICAgICBzZXRTZWxlY3RlZFRleHQoJycpO1xuICAgICAgICAgICAgc2V0U2hvd0N1c3RvbVJhbmdlKGZhbHNlKTtcbiAgICAgICAgICAgIHNldE1vbnRoVmlldyh1bmRlZmluZWQpO1xuICAgICAgICB9LFxuICAgICAgICByZXNldDogKCkgPT4ge1xuICAgICAgICAgICAgc2V0U2VsZWN0ZWRPcHRpb24oaW5pdGlhbE9wdGlvbik7XG4gICAgICAgICAgICBzZXRMYXN0U2VsZWN0ZWRPcHRpb24oaW5pdGlhbE9wdGlvbik7XG4gICAgICAgICAgICBzZXRTZWxlY3RlZFJhbmdlKEVNUFRZX1JBTkdFKTtcbiAgICAgICAgICAgIHNldEFwcGxpZWRSYW5nZShFTVBUWV9SQU5HRSk7XG4gICAgICAgICAgICBzZXRTZWxlY3RlZFRleHQoaW5pdGlhbFRleHQpO1xuICAgICAgICAgICAgc2V0U2hvd0N1c3RvbVJhbmdlKGZhbHNlKTtcbiAgICAgICAgICAgIHNldE1vbnRoVmlldyh1bmRlZmluZWQpO1xuICAgICAgICAgICAgb25SZXNldCA9PT0gbnVsbCB8fCBvblJlc2V0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvblJlc2V0KCk7XG4gICAgICAgIH0sXG4gICAgfSksIFtpbml0aWFsT3B0aW9uLCBpbml0aWFsVGV4dCwgb25SZXNldF0pO1xuICAgIGNvbnN0IGdldERpc3BsYXlMYWJlbCA9IHVzZUNhbGxiYWNrKChvcHRpb24pID0+IHtcbiAgICAgICAgc3dpdGNoIChvcHRpb24pIHtcbiAgICAgICAgICAgIGNhc2UgT1BUSU9OX0FMTDpcbiAgICAgICAgICAgICAgICByZXR1cm4gYWxsVHJhbnNhY3Rpb25zTGFiZWw7XG4gICAgICAgICAgICBjYXNlIE9QVElPTl9MQVNUXzMwX0RBWVM6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGxvY2FsZS5sYXN0MzBEYXlzO1xuICAgICAgICAgICAgY2FzZSBPUFRJT05fWUVBUl9UT19EQVRFOlxuICAgICAgICAgICAgICAgIHJldHVybiBsb2NhbGUueWVhclRvRGF0ZTtcbiAgICAgICAgICAgIGNhc2UgT1BUSU9OX0xBU1RfMTJfTU9OVEhTOlxuICAgICAgICAgICAgICAgIHJldHVybiBsb2NhbGUubGFzdDEyTW9udGhzO1xuICAgICAgICAgICAgY2FzZSBPUFRJT05fQ1VTVE9NOlxuICAgICAgICAgICAgICAgIHJldHVybiBsb2NhbGUuY3VzdG9tRGF0ZVJhbmdlO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9uO1xuICAgICAgICB9XG4gICAgfSwgW2FsbFRyYW5zYWN0aW9uc0xhYmVsLCBsb2NhbGVdKTtcbiAgICBjb25zdCBoYW5kbGVJdGVtQ2xpY2sgPSB1c2VDYWxsYmFjaygob3B0aW9uKSA9PiB7XG4gICAgICAgIGlmIChvcHRpb24gPT09IE9QVElPTl9DVVNUT00pIHtcbiAgICAgICAgICAgIHNldFNob3dDdXN0b21SYW5nZSh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHNldFNob3dDdXN0b21SYW5nZShmYWxzZSk7XG4gICAgICAgICAgICBzZXRTZWxlY3RlZE9wdGlvbihvcHRpb24pO1xuICAgICAgICB9XG4gICAgfSwgW10pO1xuICAgIGNvbnN0IGhhbmRsZURhdGVTZWxlY3QgPSB1c2VDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBldmVudC52YWx1ZTtcbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbHVlKSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgW3N0YXJ0LCBlbmRdID0gdmFsdWU7XG4gICAgICAgIGlmIChzdGFydCAmJiBlbmQpIHtcbiAgICAgICAgICAgIHNldE1vbnRoVmlldyhzdGFydCk7XG4gICAgICAgICAgICBzZXRTZWxlY3RlZFJhbmdlKHsgc3RhcnREYXRlOiBzdGFydCwgZW5kRGF0ZTogZW5kIH0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHN0YXJ0KSB7XG4gICAgICAgICAgICBzZXRTZWxlY3RlZFJhbmdlKHsgc3RhcnREYXRlOiBzdGFydCwgZW5kRGF0ZTogbnVsbCB9KTtcbiAgICAgICAgfVxuICAgIH0sIFtdKTtcbiAgICBjb25zdCBhcHBseVByZXNldCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgaWYgKCFzZWxlY3RlZE9wdGlvbilcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgb25BcHBseShnZXREYXRlRnJvbU9wdGlvbihzZWxlY3RlZE9wdGlvbiwgc2VsZWN0ZWRSYW5nZSkpO1xuICAgICAgICBzZXRTZWxlY3RlZFRleHQoZ2V0RGlzcGxheUxhYmVsKHNlbGVjdGVkT3B0aW9uKSk7XG4gICAgICAgIHNldExhc3RTZWxlY3RlZE9wdGlvbihzZWxlY3RlZE9wdGlvbik7XG4gICAgICAgIHNldFNob3dDdXN0b21SYW5nZShmYWxzZSk7XG4gICAgICAgIHNldFNlbGVjdGVkUmFuZ2UoRU1QVFlfUkFOR0UpO1xuICAgICAgICBzZXRBcHBsaWVkUmFuZ2UoRU1QVFlfUkFOR0UpO1xuICAgICAgICBzZXRNb250aFZpZXcodW5kZWZpbmVkKTtcbiAgICAgICAgc2V0T3BlbihmYWxzZSk7XG4gICAgfSwgW3NlbGVjdGVkT3B0aW9uLCBzZWxlY3RlZFJhbmdlLCBvbkFwcGx5LCBnZXREaXNwbGF5TGFiZWxdKTtcbiAgICBjb25zdCBhcHBseUN1c3RvbSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgY29uc3QgeyBzdGFydERhdGUsIGVuZERhdGUgfSA9IHNlbGVjdGVkUmFuZ2U7XG4gICAgICAgIGlmICghc3RhcnREYXRlIHx8ICFlbmREYXRlKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBvbkFwcGx5KHsgc3RhcnREYXRlOiBzdGFydE9mRGF5KHN0YXJ0RGF0ZSksIGVuZERhdGU6IGVuZE9mRGF5KGVuZERhdGUpIH0pO1xuICAgICAgICBzZXRTZWxlY3RlZFRleHQoZm9ybWF0UmFuZ2UoZGF0ZUZvcm1hdHRlciwgc3RhcnREYXRlLCBlbmREYXRlKSk7XG4gICAgICAgIHNldExhc3RTZWxlY3RlZE9wdGlvbihPUFRJT05fQ1VTVE9NKTtcbiAgICAgICAgc2V0U2VsZWN0ZWRPcHRpb24obnVsbCk7XG4gICAgICAgIHNldEFwcGxpZWRSYW5nZSh7IHN0YXJ0RGF0ZSwgZW5kRGF0ZSB9KTtcbiAgICAgICAgc2V0U2hvd0N1c3RvbVJhbmdlKHRydWUpO1xuICAgICAgICBzZXRPcGVuKGZhbHNlKTtcbiAgICB9LCBbc2VsZWN0ZWRSYW5nZSwgb25BcHBseSwgZGF0ZUZvcm1hdHRlcl0pO1xuICAgIGNvbnN0IHJlc2V0U2VsZWN0aW9uID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgICBzZXRTZWxlY3RlZE9wdGlvbihpbml0aWFsT3B0aW9uKTtcbiAgICAgICAgc2V0TGFzdFNlbGVjdGVkT3B0aW9uKGluaXRpYWxPcHRpb24pO1xuICAgICAgICBzZXRTZWxlY3RlZFRleHQoaW5pdGlhbFRleHQpO1xuICAgICAgICBzZXRTZWxlY3RlZFJhbmdlKEVNUFRZX1JBTkdFKTtcbiAgICAgICAgc2V0QXBwbGllZFJhbmdlKEVNUFRZX1JBTkdFKTtcbiAgICAgICAgc2V0TW9udGhWaWV3KHVuZGVmaW5lZCk7XG4gICAgICAgIG9uUmVzZXQgPT09IG51bGwgfHwgb25SZXNldCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25SZXNldCgpO1xuICAgIH0sIFtpbml0aWFsT3B0aW9uLCBpbml0aWFsVGV4dCwgb25SZXNldF0pO1xuICAgIGNvbnN0IGhhbmRsZU9wZW5DaGFuZ2UgPSB1c2VDYWxsYmFjaygobmV4dE9wZW4pID0+IHtcbiAgICAgICAgc2V0T3BlbihuZXh0T3Blbik7XG4gICAgICAgIGlmIChuZXh0T3BlbilcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgLy8gT24gY2xvc2Ugd2l0aG91dCBBcHBseSwgc25hcCB0aGUgcGFuZWwgYmFjayB0byB0aGUgbGFzdCBjb21taXR0ZWQgc3RhdGVcbiAgICAgICAgLy8gc28gYW4gYWJhbmRvbmVkIGVkaXQgZG9lc24ndCBsaW5nZXIuXG4gICAgICAgIGlmIChsYXN0U2VsZWN0ZWRPcHRpb24gPT09IE9QVElPTl9DVVNUT00pIHtcbiAgICAgICAgICAgIHNldFNob3dDdXN0b21SYW5nZSh0cnVlKTtcbiAgICAgICAgICAgIHNldFNlbGVjdGVkUmFuZ2UoYXBwbGllZFJhbmdlKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHNldFNob3dDdXN0b21SYW5nZShmYWxzZSk7XG4gICAgICAgICAgICBzZXRTZWxlY3RlZE9wdGlvbihsYXN0U2VsZWN0ZWRPcHRpb24pO1xuICAgICAgICB9XG4gICAgfSwgW2xhc3RTZWxlY3RlZE9wdGlvbiwgYXBwbGllZFJhbmdlXSk7XG4gICAgY29uc3QgY2FsZW5kYXJWYWx1ZSA9IHNlbGVjdGVkUmFuZ2Uuc3RhcnREYXRlXG4gICAgICAgID8gc2VsZWN0ZWRSYW5nZS5lbmREYXRlXG4gICAgICAgICAgICA/IFtzZWxlY3RlZFJhbmdlLnN0YXJ0RGF0ZSwgc2VsZWN0ZWRSYW5nZS5lbmREYXRlXVxuICAgICAgICAgICAgOiBbc2VsZWN0ZWRSYW5nZS5zdGFydERhdGVdXG4gICAgICAgIDogbnVsbDtcbiAgICBjb25zdCByZW5kZXJQcmVzZXRMaXN0ID0gKCkgPT4gKF9qc3hzKF9GcmFnbWVudCwgeyBjaGlsZHJlbjogW19qc3goXCJ1bFwiLCB7IGNsYXNzTmFtZTogYCR7V1JBUF9DTFN9X19saXN0YCwgY2hpbGRyZW46IERBVEVfUkFOR0VfT1BUSU9OUy5tYXAoKG9wdGlvbikgPT4gKF9qc3hzKFwibGlcIiwgeyBjbGFzc05hbWU6IGpvaW5DbHMoYCR7V1JBUF9DTFN9X19pdGVtYCwgb3B0aW9uID09PSBPUFRJT05fQ1VTVE9NICYmIGAke1dSQVBfQ0xTfV9faXRlbS0tY3VzdG9tYCwgc2VsZWN0ZWRPcHRpb24gPT09IG9wdGlvbiAmJiBgJHtXUkFQX0NMU31fX2l0ZW0tLXNlbGVjdGVkYCksIG9uQ2xpY2s6ICgpID0+IGhhbmRsZUl0ZW1DbGljayhvcHRpb24pLCBjaGlsZHJlbjogW19qc3goVHlwb2dyYXBoeUJvZHksIHsgc2l6ZTogJ3NtJywgc3Ryb25nOiB0cnVlLCBjaGlsZHJlbjogZ2V0RGlzcGxheUxhYmVsKG9wdGlvbikgfSksIG9wdGlvbiA9PT0gT1BUSU9OX0NVU1RPTSA/IChfanN4KEljb25zLCB7IG5hbWU6ICdjaGV2cm9uUmlnaHQnLCBzaXplOiBDSEVWUk9OX1NJWkUgfSkpIDogKF9qc3goUmFkaW8sIHsgc2l6ZTogJ3NtYWxsJywgY2hlY2tlZDogc2VsZWN0ZWRPcHRpb24gPT09IG9wdGlvbiB9KSldIH0sIG9wdGlvbikpKSB9KSwgX2pzeHMoRmxleCwgeyBnYXA6IDgsIGNsYXNzTmFtZTogYCR7V1JBUF9DTFN9X19mb290ZXJgLCBjaGlsZHJlbjogW19qc3goQnV0dG9uLCB7IGNvbG9yOiAnZ3JleScsIHNpemU6ICdzbWFsbCcsIHN0eWxlOiBGVUxMX1dJRFRIX1NUWUxFLCBvbkNsaWNrOiByZXNldFNlbGVjdGlvbiwgY2hpbGRyZW46IGxvY2FsZS5yZXNldCB9KSwgX2pzeChCdXR0b24sIHsgY29sb3I6ICdwcmltYXJ5Jywgc2l6ZTogJ3NtYWxsJywgc3R5bGU6IEZVTExfV0lEVEhfU1RZTEUsIGRpc2FibGVkOiAhc2VsZWN0ZWRPcHRpb24sIG9uQ2xpY2s6IGFwcGx5UHJlc2V0LCBjaGlsZHJlbjogbG9jYWxlLmFwcGx5IH0pXSB9KV0gfSkpO1xuICAgIGNvbnN0IHJlbmRlckN1c3RvbVJhbmdlID0gKCkgPT4gKF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBgJHtXUkFQX0NMU31fX2N1c3RvbWAsIGNoaWxkcmVuOiBbX2pzeHMoRmxleCwgeyBhbGlnbjogJ2NlbnRlcicsIGdhcDogOCwgY2xhc3NOYW1lOiBgJHtXUkFQX0NMU31fX2N1c3RvbS1oZWFkZXJgLCBjaGlsZHJlbjogW19qc3goSWNvbnMsIHsgbmFtZTogJ2Fycm93TGVmdCcsIHNpemU6IEJBQ0tfSUNPTl9TSVpFLCB3cmFwcGVyQ2xzOiBgJHtXUkFQX0NMU31fX2JhY2staWNvbmAsIG9uQ2xpY2s6ICgpID0+IHNldFNob3dDdXN0b21SYW5nZShmYWxzZSkgfSksIF9qc3goVHlwb2dyYXBoeUxhYmVsLCB7IHNpemU6ICdsZycsIGNoaWxkcmVuOiBsb2NhbGUuY3VzdG9tRGF0ZVJhbmdlIH0pXSB9KSwgX2pzeChDYWxlbmRhciwgeyB3cmFwcGVyQ2xzOiBgJHtXUkFQX0NMU31fX2NhbGVuZGFyYCwgcGFuZWxDbGFzc05hbWU6IENBTEVOREFSX1BBTkVMX0NMUywgc2l6ZTogJ3NtYWxsJywgc2VsZWN0aW9uTW9kZTogJ3JhbmdlJywgcGxhY2Vob2xkZXI6IGxvY2FsZS5yYW5nZVBsYWNlaG9sZGVyLCByZWFkT25seUlucHV0OiB0cnVlLCBoaWRlT25SYW5nZVNlbGVjdGlvbjogdHJ1ZSwgbnVtYmVyT2ZNb250aHM6IENBTEVOREFSX01PTlRIUywgdmFsdWU6IGNhbGVuZGFyVmFsdWUsIHZpZXdEYXRlOiBtb250aFZpZXcsIG9uVmlld0RhdGVDaGFuZ2U6IChldmVudCkgPT4gc2V0TW9udGhWaWV3KGV2ZW50LnZhbHVlKSwgb25DaGFuZ2U6IGhhbmRsZURhdGVTZWxlY3QgfSksIF9qc3hzKEZsZXgsIHsgZ2FwOiA4LCBjbGFzc05hbWU6IGpvaW5DbHMoYCR7V1JBUF9DTFN9X19mb290ZXJgLCBgJHtXUkFQX0NMU31fX2Zvb3Rlci0tYm9yZGVyZWRgKSwgY2hpbGRyZW46IFtfanN4KEJ1dHRvbiwgeyBjb2xvcjogJ2dyZXknLCBzaXplOiAnc21hbGwnLCBzdHlsZTogRlVMTF9XSURUSF9TVFlMRSwgb25DbGljazogcmVzZXRTZWxlY3Rpb24sIGNoaWxkcmVuOiBsb2NhbGUucmVzZXQgfSksIF9qc3goQnV0dG9uLCB7IGNvbG9yOiAncHJpbWFyeScsIHNpemU6ICdzbWFsbCcsIHN0eWxlOiBGVUxMX1dJRFRIX1NUWUxFLCBkaXNhYmxlZDogIXNlbGVjdGVkUmFuZ2Uuc3RhcnREYXRlIHx8ICFzZWxlY3RlZFJhbmdlLmVuZERhdGUsIG9uQ2xpY2s6IGFwcGx5Q3VzdG9tLCBjaGlsZHJlbjogbG9jYWxlLmFwcGx5IH0pXSB9KV0gfSkpO1xuICAgIHJldHVybiAoX2pzeChTZWxlY3QuQ3VzdG9tLCBPYmplY3QuYXNzaWduKHt9LCByZXN0LCB7IFxuICAgICAgICAvLyBGaXhlZCAzMnB4IFwiRXh0cmEgU21hbGxcIiB0cmlnZ2VyIHZpYSB0aGUgbmF0aXZlIFNlbGVjdCBgZXh0cmEtc21hbGxgXG4gICAgICAgIC8vIHNpemU7IGxvY2tlZCBoZXJlIHJhdGhlciB0aGFuIGV4cG9zZWQgYXMgYSBwcm9wLlxuICAgICAgICBzaXplOiAnZXh0cmEtc21hbGwnLCBhbmltYXRpb246IGZhbHNlLCBsYWJlbDogbGFiZWwsIHBsYWNlaG9sZGVyOiBwbGFjZWhvbGRlciwgY2xhc3NOYW1lOiBqb2luQ2xzKFdSQVBfQ0xTLCBjbGFzc05hbWUpLCBwYW5lbENsYXNzTmFtZTogU0VMRUNUX1BBTkVMX0NMUywgcGFuZWxXaWR0aDogc2hvd0N1c3RvbVJhbmdlID8gUEFORUxfV0lEVEhfQ1VTVE9NIDogUEFORUxfV0lEVEhfUFJFU0VULCBvcGVuOiBvcGVuLCBvbk9wZW5DaGFuZ2U6IGhhbmRsZU9wZW5DaGFuZ2UsIHNlbGVjdGVkVGVtcGxhdGU6IHNlbGVjdGVkVGV4dFxuICAgICAgICAgICAgPyAoeyBmb250U2l6ZSB9KSA9PiAoX2pzeChUeXBvZ3JhcGh5Qm9keSwgeyBzaXplOiBmb250U2l6ZSwgY2xhc3NOYW1lOiBgJHtXUkFQX0NMU31fX3ZhbHVlYCwgY2hpbGRyZW46IF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBgJHtXUkFQX0NMU31fX3ZhbHVlLWxhYmVsYCwgY2hpbGRyZW46IHNlbGVjdGVkVGV4dCB9KSB9KSlcbiAgICAgICAgICAgIDogbnVsbCwgY2hpbGRyZW46ICgpID0+IChzaG93Q3VzdG9tUmFuZ2UgPyByZW5kZXJDdXN0b21SYW5nZSgpIDogcmVuZGVyUHJlc2V0TGlzdCgpKSB9KSkpO1xufTtcbmV4cG9ydCBjb25zdCBEYXRlUmFuZ2VGaWx0ZXIgPSBtZW1vKERhdGVSYW5nZUZpbHRlckJhc2UpOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
428
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL0ZpbHRlci9EYXRlUmFuZ2UvRGF0ZVJhbmdlLmpzIiwiYnVzaW5lc3MvRmlsdGVyL3NyYy9idXNpbmVzcy9GaWx0ZXIvRGF0ZVJhbmdlL0RhdGVSYW5nZS50c3giXSwibmFtZXMiOlsiX19yZXN0IiwicyIsImUiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJtZW1vIiwidXNlQ2FsbGJhY2siLCJ1c2VJbXBlcmF0aXZlSGFuZGxlIiwidXNlTWVtbyIsInVzZVN0YXRlIiwiQnV0dG9uIiwidXNlTG9jYWxlIiwidXNlTG9jYWxlQ29kZSIsIkNhbGVuZGFyIiwiRmxleCIsIkljb25zIiwiUmFkaW8iLCJTZWxlY3QiLCJUeXBvZ3JhcGh5Qm9keSIsIlR5cG9ncmFwaHlUaXRsZSIsImpvaW5DbHMiLCJBTExfVFJBTlNBQ1RJT05TX1ZBTFVFIiwiREFURV9SQU5HRV9PUFRJT05TIiwiV1JBUF9DTFMiLCJDQUxFTkRBUl9QQU5FTF9DTFMiLCJTRUxFQ1RfUEFORUxfQ0xTIiwiUEFORUxfV0lEVEhfUFJFU0VUIiwiUEFORUxfV0lEVEhfQ1VTVE9NIiwiQ0FMRU5EQVJfTU9OVEhTIiwiQ0hFVlJPTl9TSVpFIiwiQkFDS19JQ09OX1NJWkUiLCJSQU5HRV9TRVBBUkFUT1IiLCJGVUxMX1dJRFRIX1NUWUxFIiwiZmxleCIsIl9EQVRFX1JBTkdFX09QVElPTlMiLCJfc2xpY2VkVG9BcnJheSIsIk9QVElPTl9BTEwiLCJPUFRJT05fTEFTVF8zMF9EQVlTIiwiT1BUSU9OX1lFQVJfVE9fREFURSIsIk9QVElPTl9MQVNUXzEyX01PTlRIUyIsIk9QVElPTl9DVVNUT00iLCJMQVNUXzMwX0RBWVNfQ09VTlQiLCJMQVNUXzEyX01PTlRIU19DT1VOVCIsIllFQVJfU1RBUlRfTU9OVEgiLCJGSVJTVF9EQVlfT0ZfTU9OVEgiLCJEQVlfU1RBUlRfVElNRSIsIkRBWV9FTkRfVElNRSIsIkRBVEVfRk9STUFUX09QVElPTlMiLCJtb250aCIsImRheSIsInllYXIiLCJFTVBUWV9SQU5HRSIsInN0YXJ0RGF0ZSIsImVuZERhdGUiLCJzdGFydE9mRGF5IiwiZGF0ZSIsInJlc3VsdCIsIkRhdGUiLCJzZXRIb3VycyIsImFwcGx5IiwiZW5kT2ZEYXkiLCJmb3JtYXRSYW5nZSIsImZvcm1hdHRlciIsInN0YXJ0IiwiZW5kIiwiY29uY2F0IiwiZm9ybWF0IiwiZ2V0RGF0ZUZyb21PcHRpb24iLCJvcHRpb24iLCJyYW5nZSIsInRvZGF5Iiwic2V0RGF0ZSIsImdldERhdGUiLCJnZXRGdWxsWWVhciIsInNldE1vbnRoIiwiZ2V0TW9udGgiLCJEYXRlUmFuZ2VGaWx0ZXJCYXNlIiwiX2EiLCJyZWYiLCJjbGFzc05hbWUiLCJsYWJlbCIsInBsYWNlaG9sZGVyUHJvcCIsInBsYWNlaG9sZGVyIiwiYWxsVHJhbnNhY3Rpb25zTGFiZWxQcm9wIiwiYWxsVHJhbnNhY3Rpb25zTGFiZWwiLCJfYSRkZWZhdWx0U2VsZWN0QWxsIiwiZGVmYXVsdFNlbGVjdEFsbCIsIm9uQXBwbHkiLCJvblJlc2V0IiwicmVzdCIsImxvY2FsZSIsImxvY2FsZUNvZGUiLCJhbGxUcmFuc2FjdGlvbnMiLCJkYXRlRm9ybWF0dGVyIiwiSW50bCIsIkRhdGVUaW1lRm9ybWF0IiwiaW5pdGlhbE9wdGlvbiIsImluaXRpYWxUZXh0IiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIm9wZW4iLCJzZXRPcGVuIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJzZWxlY3RlZE9wdGlvbiIsInNldFNlbGVjdGVkT3B0aW9uIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJsYXN0U2VsZWN0ZWRPcHRpb24iLCJzZXRMYXN0U2VsZWN0ZWRPcHRpb24iLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsInNlbGVjdGVkUmFuZ2UiLCJzZXRTZWxlY3RlZFJhbmdlIiwiX3VzZVN0YXRlOSIsIl91c2VTdGF0ZTAiLCJhcHBsaWVkUmFuZ2UiLCJzZXRBcHBsaWVkUmFuZ2UiLCJfdXNlU3RhdGUxIiwiX3VzZVN0YXRlMTAiLCJzZWxlY3RlZFRleHQiLCJzZXRTZWxlY3RlZFRleHQiLCJfdXNlU3RhdGUxMSIsIl91c2VTdGF0ZTEyIiwic2hvd0N1c3RvbVJhbmdlIiwic2V0U2hvd0N1c3RvbVJhbmdlIiwiX3VzZVN0YXRlMTMiLCJ1bmRlZmluZWQiLCJfdXNlU3RhdGUxNCIsIm1vbnRoVmlldyIsInNldE1vbnRoVmlldyIsImNsZWFyIiwicmVzZXQiLCJnZXREaXNwbGF5TGFiZWwiLCJsYXN0MzBEYXlzIiwieWVhclRvRGF0ZSIsImxhc3QxMk1vbnRocyIsImN1c3RvbURhdGVSYW5nZSIsImhhbmRsZUl0ZW1DbGljayIsImhhbmRsZURhdGVTZWxlY3QiLCJldmVudCIsInZhbHVlIiwiQXJyYXkiLCJpc0FycmF5IiwiX3ZhbHVlIiwiYXBwbHlQcmVzZXQiLCJhcHBseUN1c3RvbSIsInJlc2V0U2VsZWN0aW9uIiwiaGFuZGxlT3BlbkNoYW5nZSIsIm5leHRPcGVuIiwiY2FsZW5kYXJWYWx1ZSIsInJlbmRlclByZXNldExpc3QiLCJjaGlsZHJlbiIsIm1hcCIsIm9uQ2xpY2siLCJzaXplIiwic3Ryb25nIiwibmFtZSIsImNoZWNrZWQiLCJnYXAiLCJjb2xvciIsInN0eWxlIiwiZGlzYWJsZWQiLCJyZW5kZXJDdXN0b21SYW5nZSIsImFsaWduIiwidHlwZSIsImJhY2siLCJ3cmFwcGVyQ2xzIiwicGFuZWxDbGFzc05hbWUiLCJwcmV2SWNvbiIsIm5leHRJY29uIiwic2VsZWN0aW9uTW9kZSIsInJhbmdlUGxhY2Vob2xkZXIiLCJyZWFkT25seUlucHV0IiwiaGlkZU9uUmFuZ2VTZWxlY3Rpb24iLCJudW1iZXJPZk1vbnRocyIsInZpZXdEYXRlIiwib25WaWV3RGF0ZUNoYW5nZSIsIm9uQ2hhbmdlIiwiQ3VzdG9tIiwiYXNzaWduIiwiYW5pbWF0aW9uIiwicGFuZWxXaWR0aCIsIm9uT3BlbkNoYW5nZSIsInNlbGVjdGVkVGVtcGxhdGUiLCJfcmVmIiwiZm9udFNpemUiLCJEYXRlUmFuZ2VGaWx0ZXIiXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFJQSxNQUFNLEdBQUksSUFBSSxJQUFJLElBQUksQ0FBQ0EsTUFBTSxJQUFLLFVBQVVDLENBQUMsRUFBRUMsQ0FBQyxFQUFFO0VBQ2xELElBQUlDLENBQUMsR0FBRyxDQUFDLENBQUM7RUFDVixLQUFLLElBQUlDLENBQUMsSUFBSUgsQ0FBQyxFQUFFLElBQUlJLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ1AsQ0FBQyxFQUFFRyxDQUFDLENBQUMsSUFBSUYsQ0FBQyxDQUFDTyxPQUFPLENBQUNMLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFDL0VELENBQUMsQ0FBQ0MsQ0FBQyxDQUFDLEdBQUdILENBQUMsQ0FBQ0csQ0FBQyxDQUFDO0VBQ2YsSUFBSUgsQ0FBQyxJQUFJLElBQUksSUFBSSxPQUFPSSxNQUFNLENBQUNLLHFCQUFxQixLQUFLLFVBQVUsRUFDL0QsS0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxFQUFFUCxDQUFDLEdBQUdDLE1BQU0sQ0FBQ0sscUJBQXFCLENBQUNULENBQUMsQ0FBQyxFQUFFVSxDQUFDLEdBQUdQLENBQUMsQ0FBQ1EsTUFBTSxFQUFFRCxDQUFDLEVBQUUsRUFBRTtJQUNwRSxJQUFJVCxDQUFDLENBQUNPLE9BQU8sQ0FBQ0wsQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSU4sTUFBTSxDQUFDQyxTQUFTLENBQUNPLG9CQUFvQixDQUFDTCxJQUFJLENBQUNQLENBQUMsRUFBRUcsQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FBQyxFQUMxRVIsQ0FBQyxDQUFDQyxDQUFDLENBQUNPLENBQUMsQ0FBQyxDQUFDLEdBQUdWLENBQUMsQ0FBQ0csQ0FBQyxDQUFDTyxDQUFDLENB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QVMsRUFBRTNELE9BQU8sQ0FBQ0csUUFBUSxFQUFFd0QsU0FBUyxDQUFDO0lBQ3ZDeUYsY0FBYyxFQUFFL0ksZ0JBQWdCO0lBQ2hDNkosVUFBVSxFQUFFMUQsZUFBZSxHQUFHakcsa0JBQWtCLEdBQUdELGtCQUFrQjtJQUNyRTBFLElBQUksRUFBRUEsSUFBSTtJQUNWbUYsWUFBWSxFQUFFbkMsZ0JBQWdCO0lBQzlCb0MsZ0JBQWdCLEVBQ2RoRSxZQUFZLEdBQ1IsVUFBQWlFLElBQUE7TUFBQSxJQUFHQyxRQUFRLEdBQUFELElBQUEsQ0FBUkMsUUFBUTtNQUFBLE9BQ1QxTCxJQUFBLENBQUNrQixjQUFjLEVBQUE7UUFBQ3lJLElBQUksRUFBRStCLFFBQVE7UUFBRTNHLFNBQVMsS0FBQWQsTUFBQSxDQUFLMUMsUUFBUSxZQUFTO1FBQUFpSSxRQUFBLEVBQzdEeEosSUFBQSxDQUFBLE1BQUEsRUFBQTtVQUFNK0UsU0FBUyxLQUFBZCxNQUFBLENBQUsxQyxRQUFRLGtCQUFlO1VBQUFpSSxRQUFBLEVBQUdoQztRQUFZLENBQUE7TUFBUSxDQUFBLENBQ25EO0lBQUEsQ0FDbEIsR0FDRCxJQUFJO0lBQUFnQyxRQUFBLEVBR1QsU0FIU0EsUUFBQUEsQ0FBQTtNQUFBLE9BR0Y1QixlQUFlLEdBQUd1QyxpQkFBaUIsQ0FBQSxDQUFFLEdBQUdaLGdCQUFnQixDQUFBLENBQUU7SUFBQTtFQUFDLENBQUEsQ0FBQSxDQUNyRDtBQUVwQixDQUFDO0FBRUQsT0FBTyxJQUFNb0MsZUFBZSxnQkFBR3RMLElBQUksQ0FBQ3VFLG1CQUFtQixDQUFDIiwiZmlsZSI6ImJ1c2luZXNzL0ZpbHRlci9EYXRlUmFuZ2UvRGF0ZVJhbmdlLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMsIEZyYWdtZW50IGFzIF9GcmFnbWVudCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgbWVtbywgdXNlQ2FsbGJhY2ssIHVzZUltcGVyYXRpdmVIYW5kbGUsIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQnV0dG9uIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9CdXR0b24nO1xuaW1wb3J0IHsgdXNlTG9jYWxlLCB1c2VMb2NhbGVDb2RlIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9Db25maWdQcm92aWRlcic7XG5pbXBvcnQgeyBDYWxlbmRhciB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvQ2FsZW5kYXInO1xuaW1wb3J0IHsgRmxleCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvRmxleCc7XG5pbXBvcnQgeyBJY29ucyB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvSWNvbnMnO1xuaW1wb3J0IHsgUmFkaW8gfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL1JhZGlvJztcbmltcG9ydCB7IFNlbGVjdCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvU2VsZWN0JztcbmltcG9ydCB7IFR5cG9ncmFwaHlCb2R5LCBUeXBvZ3JhcGh5VGl0bGUgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL1R5cG9ncmFwaHknO1xuaW1wb3J0IHsgam9pbkNscyB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgQUxMX1RSQU5TQUNUSU9OU19WQUxVRSwgREFURV9SQU5HRV9PUFRJT05TLCB9IGZyb20gJy4vaW50ZXJmYWNlJztcbmNvbnN0IFdSQVBfQ0xTID0gJ29tLWRhdGUtcmFuZ2UtZmlsdGVyJztcbi8vIFRoZSBjYWxlbmRhciBvdmVybGF5IGlzIHBvcnRhbGVkIHRvIDxib2R5Piwgb3V0c2lkZSBXUkFQX0NMUyDigJQgdGhpcyBpcyBhXG4vLyBzdGFuZGFsb25lIHRvcC1sZXZlbCBob29rIHNvIGl0cyBTQ1NTIGNhbiBsaWZ0IGl0IGFib3ZlIHRoZSBob3N0XG4vLyBTZWxlY3QuQ3VzdG9tIHBhbmVsICh6LWluZGV4IDE1MDApLlxuY29uc3QgQ0FMRU5EQVJfUEFORUxfQ0xTID0gJ29tLWRhdGUtcmFuZ2UtZmlsdGVyLWNhbGVuZGFyLXBhbmVsJztcbi8vIFRoZSBTZWxlY3QuQ3VzdG9tIHBhbmVsIGlzIHBvcnRhbGVkIHRvIDxib2R5PiB0b28g4oCUIHRvcC1sZXZlbCBob29rIGZvclxuLy8gc2NvcGluZyBwYW5lbC1ib2R5IG92ZXJyaWRlcyB3aXRob3V0IGxlYWtpbmcgaW50byBvdGhlciBTZWxlY3QgcGFuZWxzLlxuY29uc3QgU0VMRUNUX1BBTkVMX0NMUyA9ICdvbS1kYXRlLXJhbmdlLWZpbHRlci1wYW5lbCc7XG5jb25zdCBQQU5FTF9XSURUSF9QUkVTRVQgPSAyNDA7XG5jb25zdCBQQU5FTF9XSURUSF9DVVNUT00gPSAyNTY7XG5jb25zdCBDQUxFTkRBUl9NT05USFMgPSAyO1xuY29uc3QgQ0hFVlJPTl9TSVpFID0gMTY7XG5jb25zdCBCQUNLX0lDT05fU0laRSA9IDE2O1xuY29uc3QgUkFOR0VfU0VQQVJBVE9SID0gJyAtICc7XG5jb25zdCBGVUxMX1dJRFRIX1NUWUxFID0geyBmbGV4OiAxIH07XG5jb25zdCBbT1BUSU9OX0FMTCwgT1BUSU9OX0xBU1RfMzBfREFZUywgT1BUSU9OX1lFQVJfVE9fREFURSwgT1BUSU9OX0xBU1RfMTJfTU9OVEhTLCBPUFRJT05fQ1VTVE9NLF0gPSBEQVRFX1JBTkdFX09QVElPTlM7XG5jb25zdCBMQVNUXzMwX0RBWVNfQ09VTlQgPSAzMDtcbmNvbnN0IExBU1RfMTJfTU9OVEhTX0NPVU5UID0gMTI7XG5jb25zdCBZRUFSX1NUQVJUX01PTlRIID0gMDsgLy8gSmFudWFyeSAoemVyby1iYXNlZCBtb250aCBpbmRleClcbmNvbnN0IEZJUlNUX0RBWV9PRl9NT05USCA9IDE7XG4vLyBEYXktYm91bmRhcnkgdGltZXMgc28gYW4gYXBwbGllZCByYW5nZSBjb3ZlcnMgd2hvbGUgZGF5cyBpbmNsdXNpdmVseTpcbi8vIHRoZSBzdGFydCBkYXkgZnJvbSAwMDowMDowMC4wMDAgYW5kIHRoZSBlbmQgZGF5IHRocm91Z2ggMjM6NTk6NTkuOTk5LlxuY29uc3QgREFZX1NUQVJUX1RJTUUgPSBbMCwgMCwgMCwgMF07IC8vIFtob3VycywgbWludXRlcywgc2Vjb25kcywgbXNdXG5jb25zdCBEQVlfRU5EX1RJTUUgPSBbMjMsIDU5LCA1OSwgOTk5XTsgLy8gW2hvdXJzLCBtaW51dGVzLCBzZWNvbmRzLCBtc11cbmNvbnN0IERBVEVfRk9STUFUX09QVElPTlMgPSB7XG4gICAgbW9udGg6ICcyLWRpZ2l0JyxcbiAgICBkYXk6ICcyLWRpZ2l0JyxcbiAgICB5ZWFyOiAnbnVtZXJpYycsXG59O1xuY29uc3QgRU1QVFlfUkFOR0UgPSB7IHN0YXJ0RGF0ZTogbnVsbCwgZW5kRGF0ZTogbnVsbCB9O1xuY29uc3Qgc3RhcnRPZkRheSA9IChkYXRlKSA9PiB7XG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IERhdGUoZGF0ZSk7XG4gICAgcmVzdWx0LnNldEhvdXJzKC4uLkRBWV9TVEFSVF9USU1FKTtcbiAgICByZXR1cm4gcmVzdWx0O1xufTtcbmNvbnN0IGVuZE9mRGF5ID0gKGRhdGUpID0+IHtcbiAgICBjb25zdCByZXN1bHQgPSBuZXcgRGF0ZShkYXRlKTtcbiAgICByZXN1bHQuc2V0SG91cnMoLi4uREFZX0VORF9USU1FKTtcbiAgICByZXR1cm4gcmVzdWx0O1xufTtcbmNvbnN0IGZvcm1hdFJhbmdlID0gKGZvcm1hdHRlciwgc3RhcnQsIGVuZCkgPT4gYCR7Zm9ybWF0dGVyLmZvcm1hdChzdGFydCl9JHtSQU5HRV9TRVBBUkFUT1J9JHtmb3JtYXR0ZXIuZm9ybWF0KGVuZCl9YDtcbmNvbnN0IGdldERhdGVGcm9tT3B0aW9uID0gKG9wdGlvbiwgcmFuZ2UpID0+IHtcbiAgICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCk7XG4gICAgc3dpdGNoIChvcHRpb24pIHtcbiAgICAgICAgY2FzZSBPUFRJT05fTEFTVF8zMF9EQVlTOiB7XG4gICAgICAgICAgICBjb25zdCBzdGFydERhdGUgPSBuZXcgRGF0ZSgpO1xuICAgICAgICAgICAgc3RhcnREYXRlLnNldERhdGUodG9kYXkuZ2V0RGF0ZSgpIC0gTEFTVF8zMF9EQVlTX0NPVU5UKTtcbiAgICAgICAgICAgIHJldHVybiB7IHN0YXJ0RGF0ZTogc3RhcnRPZkRheShzdGFydERhdGUpLCBlbmREYXRlOiBlbmRPZkRheSh0b2RheSkgfTtcbiAgICAgICAgfVxuICAgICAgICBjYXNlIE9QVElPTl9ZRUFSX1RPX0RBVEU6IHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IG5ldyBEYXRlKHRvZGF5LmdldEZ1bGxZZWFyKCksIFlFQVJfU1RBUlRfTU9OVEgsIEZJUlNUX0RBWV9PRl9NT05USCk7XG4gICAgICAgICAgICByZXR1cm4geyBzdGFydERhdGU6IHN0YXJ0T2ZEYXkoc3RhcnREYXRlKSwgZW5kRGF0ZTogZW5kT2ZEYXkodG9kYXkpIH07XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBPUFRJT05fTEFTVF8xMl9NT05USFM6IHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgICAgICAgICBzdGFydERhdGUuc2V0TW9udGgodG9kYXkuZ2V0TW9udGgoKSAtIExBU1RfMTJfTU9OVEhTX0NPVU5UKTtcbiAgICAgICAgICAgIHJldHVybiB7IHN0YXJ0RGF0ZTogc3RhcnRPZkRheShzdGFydERhdGUpLCBlbmREYXRlOiBlbmRPZkRheSh0b2RheSkgfTtcbiAgICAgICAgfVxuICAgICAgICBjYXNlIE9QVElPTl9DVVNUT006XG4gICAgICAgICAgICBpZiAocmFuZ2Uuc3RhcnREYXRlICYmIHJhbmdlLmVuZERhdGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBzdGFydERhdGU6IHN0YXJ0T2ZEYXkocmFuZ2Uuc3RhcnREYXRlKSwgZW5kRGF0ZTogZW5kT2ZEYXkocmFuZ2UuZW5kRGF0ZSkgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBBTExfVFJBTlNBQ1RJT05TX1ZBTFVFO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIEFMTF9UUkFOU0FDVElPTlNfVkFMVUU7XG4gICAgfVxufTtcbmNvbnN0IERhdGVSYW5nZUZpbHRlckJhc2UgPSAoX2EpID0+IHtcbiAgICB2YXIgeyByZWYsIGNsYXNzTmFtZSwgbGFiZWwsIHBsYWNlaG9sZGVyOiBwbGFjZWhvbGRlclByb3AsIGFsbFRyYW5zYWN0aW9uc0xhYmVsOiBhbGxUcmFuc2FjdGlvbnNMYWJlbFByb3AsIGRlZmF1bHRTZWxlY3RBbGwgPSBmYWxzZSwgb25BcHBseSwgb25SZXNldCB9ID0gX2EsIHJlc3QgPSBfX3Jlc3QoX2EsIFtcInJlZlwiLCBcImNsYXNzTmFtZVwiLCBcImxhYmVsXCIsIFwicGxhY2Vob2xkZXJcIiwgXCJhbGxUcmFuc2FjdGlvbnNMYWJlbFwiLCBcImRlZmF1bHRTZWxlY3RBbGxcIiwgXCJvbkFwcGx5XCIsIFwib25SZXNldFwiXSk7XG4gICAgY29uc3QgbG9jYWxlID0gdXNlTG9jYWxlKCdEYXRlUmFuZ2VGaWx0ZXInKTtcbiAgICBjb25zdCBsb2NhbGVDb2RlID0gdXNlTG9jYWxlQ29kZSgpO1xuICAgIGNvbnN0IHBsYWNlaG9sZGVyID0gcGxhY2Vob2xkZXJQcm9wICE9PSBudWxsICYmIHBsYWNlaG9sZGVyUHJvcCAhPT0gdm9pZCAwID8gcGxhY2Vob2xkZXJQcm9wIDogbG9jYWxlLnBsYWNlaG9sZGVyO1xuICAgIGNvbnN0IGFsbFRyYW5zYWN0aW9uc0xhYmVsID0gYWxsVHJhbnNhY3Rpb25zTGFiZWxQcm9wICE9PSBudWxsICYmIGFsbFRyYW5zYWN0aW9uc0xhYmVsUHJvcCAhPT0gdm9pZCAwID8gYWxsVHJhbnNhY3Rpb25zTGFiZWxQcm9wIDogbG9jYWxlLmFsbFRyYW5zYWN0aW9ucztcbiAgICBjb25zdCBkYXRlRm9ybWF0dGVyID0gdXNlTWVtbygoKSA9PiBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NhbGVDb2RlLCBEQVRFX0ZPUk1BVF9PUFRJT05TKSwgW2xvY2FsZUNvZGVdKTtcbiAgICBjb25zdCBpbml0aWFsT3B0aW9uID0gZGVmYXVsdFNlbGVjdEFsbCA/IE9QVElPTl9BTEwgOiBudWxsO1xuICAgIGNvbnN0IGluaXRpYWxUZXh0ID0gZGVmYXVsdFNlbGVjdEFsbCA/IGFsbFRyYW5zYWN0aW9uc0xhYmVsIDogJyc7XG4gICAgY29uc3QgW29wZW4sIHNldE9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IFtzZWxlY3RlZE9wdGlvbiwgc2V0U2VsZWN0ZWRPcHRpb25dID0gdXNlU3RhdGUoaW5pdGlhbE9wdGlvbik7XG4gICAgY29uc3QgW2xhc3RTZWxlY3RlZE9wdGlvbiwgc2V0TGFzdFNlbGVjdGVkT3B0aW9uXSA9IHVzZVN0YXRlKGluaXRpYWxPcHRpb24pO1xuICAgIGNvbnN0IFtzZWxlY3RlZFJhbmdlLCBzZXRTZWxlY3RlZFJhbmdlXSA9IHVzZVN0YXRlKEVNUFRZX1JBTkdFKTtcbiAgICBjb25zdCBbYXBwbGllZFJhbmdlLCBzZXRBcHBsaWVkUmFuZ2VdID0gdXNlU3RhdGUoRU1QVFlfUkFOR0UpO1xuICAgIGNvbnN0IFtzZWxlY3RlZFRleHQsIHNldFNlbGVjdGVkVGV4dF0gPSB1c2VTdGF0ZShpbml0aWFsVGV4dCk7XG4gICAgY29uc3QgW3Nob3dDdXN0b21SYW5nZSwgc2V0U2hvd0N1c3RvbVJhbmdlXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbbW9udGhWaWV3LCBzZXRNb250aFZpZXddID0gdXNlU3RhdGUodW5kZWZpbmVkKTtcbiAgICB1c2VJbXBlcmF0aXZlSGFuZGxlKHJlZiwgKCkgPT4gKHtcbiAgICAgICAgY2xlYXI6ICgpID0+IHtcbiAgICAgICAgICAgIHNldFNlbGVjdGVkT3B0aW9uKG51bGwpO1xuICAgICAgICAgICAgc2V0TGFzdFNlbGVjdGVkT3B0aW9uKG51bGwpO1xuICAgICAgICAgICAgc2V0U2VsZWN0ZWRSYW5nZShFTVBUWV9SQU5HRSk7XG4gICAgICAgICAgICBzZXRBcHBsaWVkUmFuZ2UoRU1QVFlfUkFOR0UpO1xuICAgICAgICAgICAgc2V0U2VsZWN0ZWRUZXh0KCcnKTtcbiAgICAgICAgICAgIHNldFNob3dDdXN0b21SYW5nZShmYWxzZSk7XG4gICAgICAgICAgICBzZXRNb250aFZpZXcodW5kZWZpbmVkKTtcbiAgICAgICAgfSxcbiAgICAgICAgcmVzZXQ6ICgpID0+IHtcbiAgICAgICAgICAgIHNldFNlbGVjdGVkT3B0aW9uKGluaXRpYWxPcHRpb24pO1xuICAgICAgICAgICAgc2V0TGFzdFNlbGVjdGVkT3B0aW9uKGluaXRpYWxPcHRpb24pO1xuICAgICAgICAgICAgc2V0U2VsZWN0ZWRSYW5nZShFTVBUWV9SQU5HRSk7XG4gICAgICAgICAgICBzZXRBcHBsaWVkUmFuZ2UoRU1QVFlfUkFOR0UpO1xuICAgICAgICAgICAgc2V0U2VsZWN0ZWRUZXh0KGluaXRpYWxUZXh0KTtcbiAgICAgICAgICAgIHNldFNob3dDdXN0b21SYW5nZShmYWxzZSk7XG4gICAgICAgICAgICBzZXRNb250aFZpZXcodW5kZWZpbmVkKTtcbiAgICAgICAgICAgIG9uUmVzZXQgPT09IG51bGwgfHwgb25SZXNldCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25SZXNldCgpO1xuICAgICAgICB9LFxuICAgIH0pLCBbaW5pdGlhbE9wdGlvbiwgaW5pdGlhbFRleHQsIG9uUmVzZXRdKTtcbiAgICBjb25zdCBnZXREaXNwbGF5TGFiZWwgPSB1c2VDYWxsYmFjaygob3B0aW9uKSA9PiB7XG4gICAgICAgIHN3aXRjaCAob3B0aW9uKSB7XG4gICAgICAgICAgICBjYXNlIE9QVElPTl9BTEw6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFsbFRyYW5zYWN0aW9uc0xhYmVsO1xuICAgICAgICAgICAgY2FzZSBPUFRJT05fTEFTVF8zMF9EQVlTOlxuICAgICAgICAgICAgICAgIHJldHVybiBsb2NhbGUubGFzdDMwRGF5cztcbiAgICAgICAgICAgIGNhc2UgT1BUSU9OX1lFQVJfVE9fREFURTpcbiAgICAgICAgICAgICAgICByZXR1cm4gbG9jYWxlLnllYXJUb0RhdGU7XG4gICAgICAgICAgICBjYXNlIE9QVElPTl9MQVNUXzEyX01PTlRIUzpcbiAgICAgICAgICAgICAgICByZXR1cm4gbG9jYWxlLmxhc3QxMk1vbnRocztcbiAgICAgICAgICAgIGNhc2UgT1BUSU9OX0NVU1RPTTpcbiAgICAgICAgICAgICAgICByZXR1cm4gbG9jYWxlLmN1c3RvbURhdGVSYW5nZTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbjtcbiAgICAgICAgfVxuICAgIH0sIFthbGxUcmFuc2FjdGlvbnNMYWJlbCwgbG9jYWxlXSk7XG4gICAgY29uc3QgaGFuZGxlSXRlbUNsaWNrID0gdXNlQ2FsbGJhY2soKG9wdGlvbikgPT4ge1xuICAgICAgICBpZiAob3B0aW9uID09PSBPUFRJT05fQ1VTVE9NKSB7XG4gICAgICAgICAgICBzZXRTaG93Q3VzdG9tUmFuZ2UodHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBzZXRTaG93Q3VzdG9tUmFuZ2UoZmFsc2UpO1xuICAgICAgICAgICAgc2V0U2VsZWN0ZWRPcHRpb24ob3B0aW9uKTtcbiAgICAgICAgfVxuICAgIH0sIFtdKTtcbiAgICBjb25zdCBoYW5kbGVEYXRlU2VsZWN0ID0gdXNlQ2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gZXZlbnQudmFsdWU7XG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IFtzdGFydCwgZW5kXSA9IHZhbHVlO1xuICAgICAgICBpZiAoc3RhcnQgJiYgZW5kKSB7XG4gICAgICAgICAgICBzZXRNb250aFZpZXcoc3RhcnQpO1xuICAgICAgICAgICAgc2V0U2VsZWN0ZWRSYW5nZSh7IHN0YXJ0RGF0ZTogc3RhcnQsIGVuZERhdGU6IGVuZCB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChzdGFydCkge1xuICAgICAgICAgICAgc2V0U2VsZWN0ZWRSYW5nZSh7IHN0YXJ0RGF0ZTogc3RhcnQsIGVuZERhdGU6IG51bGwgfSk7XG4gICAgICAgIH1cbiAgICB9LCBbXSk7XG4gICAgY29uc3QgYXBwbHlQcmVzZXQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIGlmICghc2VsZWN0ZWRPcHRpb24pXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIG9uQXBwbHkoZ2V0RGF0ZUZyb21PcHRpb24oc2VsZWN0ZWRPcHRpb24sIHNlbGVjdGVkUmFuZ2UpKTtcbiAgICAgICAgc2V0U2VsZWN0ZWRUZXh0KGdldERpc3BsYXlMYWJlbChzZWxlY3RlZE9wdGlvbikpO1xuICAgICAgICBzZXRMYXN0U2VsZWN0ZWRPcHRpb24oc2VsZWN0ZWRPcHRpb24pO1xuICAgICAgICBzZXRTaG93Q3VzdG9tUmFuZ2UoZmFsc2UpO1xuICAgICAgICBzZXRTZWxlY3RlZFJhbmdlKEVNUFRZX1JBTkdFKTtcbiAgICAgICAgc2V0QXBwbGllZFJhbmdlKEVNUFRZX1JBTkdFKTtcbiAgICAgICAgc2V0TW9udGhWaWV3KHVuZGVmaW5lZCk7XG4gICAgICAgIHNldE9wZW4oZmFsc2UpO1xuICAgIH0sIFtzZWxlY3RlZE9wdGlvbiwgc2VsZWN0ZWRSYW5nZSwgb25BcHBseSwgZ2V0RGlzcGxheUxhYmVsXSk7XG4gICAgY29uc3QgYXBwbHlDdXN0b20gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgc3RhcnREYXRlLCBlbmREYXRlIH0gPSBzZWxlY3RlZFJhbmdlO1xuICAgICAgICBpZiAoIXN0YXJ0RGF0ZSB8fCAhZW5kRGF0ZSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgb25BcHBseSh7IHN0YXJ0RGF0ZTogc3RhcnRPZkRheShzdGFydERhdGUpLCBlbmREYXRlOiBlbmRPZkRheShlbmREYXRlKSB9KTtcbiAgICAgICAgc2V0U2VsZWN0ZWRUZXh0KGZvcm1hdFJhbmdlKGRhdGVGb3JtYXR0ZXIsIHN0YXJ0RGF0ZSwgZW5kRGF0ZSkpO1xuICAgICAgICBzZXRMYXN0U2VsZWN0ZWRPcHRpb24oT1BUSU9OX0NVU1RPTSk7XG4gICAgICAgIHNldFNlbGVjdGVkT3B0aW9uKG51bGwpO1xuICAgICAgICBzZXRBcHBsaWVkUmFuZ2UoeyBzdGFydERhdGUsIGVuZERhdGUgfSk7XG4gICAgICAgIHNldFNob3dDdXN0b21SYW5nZSh0cnVlKTtcbiAgICAgICAgc2V0T3BlbihmYWxzZSk7XG4gICAgfSwgW3NlbGVjdGVkUmFuZ2UsIG9uQXBwbHksIGRhdGVGb3JtYXR0ZXJdKTtcbiAgICBjb25zdCByZXNldFNlbGVjdGlvbiA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgc2V0U2VsZWN0ZWRPcHRpb24oaW5pdGlhbE9wdGlvbik7XG4gICAgICAgIHNldExhc3RTZWxlY3RlZE9wdGlvbihpbml0aWFsT3B0aW9uKTtcbiAgICAgICAgc2V0U2VsZWN0ZWRUZXh0KGluaXRpYWxUZXh0KTtcbiAgICAgICAgc2V0U2VsZWN0ZWRSYW5nZShFTVBUWV9SQU5HRSk7XG4gICAgICAgIHNldEFwcGxpZWRSYW5nZShFTVBUWV9SQU5HRSk7XG4gICAgICAgIHNldE1vbnRoVmlldyh1bmRlZmluZWQpO1xuICAgICAgICBvblJlc2V0ID09PSBudWxsIHx8IG9uUmVzZXQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uUmVzZXQoKTtcbiAgICB9LCBbaW5pdGlhbE9wdGlvbiwgaW5pdGlhbFRleHQsIG9uUmVzZXRdKTtcbiAgICBjb25zdCBoYW5kbGVPcGVuQ2hhbmdlID0gdXNlQ2FsbGJhY2soKG5leHRPcGVuKSA9PiB7XG4gICAgICAgIHNldE9wZW4obmV4dE9wZW4pO1xuICAgICAgICBpZiAobmV4dE9wZW4pXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIC8vIE9uIGNsb3NlIHdpdGhvdXQgQXBwbHksIHNuYXAgdGhlIHBhbmVsIGJhY2sgdG8gdGhlIGxhc3QgY29tbWl0dGVkIHN0YXRlXG4gICAgICAgIC8vIHNvIGFuIGFiYW5kb25lZCBlZGl0IGRvZXNuJ3QgbGluZ2VyLlxuICAgICAgICBpZiAobGFzdFNlbGVjdGVkT3B0aW9uID09PSBPUFRJT05fQ1VTVE9NKSB7XG4gICAgICAgICAgICBzZXRTaG93Q3VzdG9tUmFuZ2UodHJ1ZSk7XG4gICAgICAgICAgICBzZXRTZWxlY3RlZFJhbmdlKGFwcGxpZWRSYW5nZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBzZXRTaG93Q3VzdG9tUmFuZ2UoZmFsc2UpO1xuICAgICAgICAgICAgc2V0U2VsZWN0ZWRPcHRpb24obGFzdFNlbGVjdGVkT3B0aW9uKTtcbiAgICAgICAgfVxuICAgIH0sIFtsYXN0U2VsZWN0ZWRPcHRpb24sIGFwcGxpZWRSYW5nZV0pO1xuICAgIGNvbnN0IGNhbGVuZGFyVmFsdWUgPSBzZWxlY3RlZFJhbmdlLnN0YXJ0RGF0ZVxuICAgICAgICA/IHNlbGVjdGVkUmFuZ2UuZW5kRGF0ZVxuICAgICAgICAgICAgPyBbc2VsZWN0ZWRSYW5nZS5zdGFydERhdGUsIHNlbGVjdGVkUmFuZ2UuZW5kRGF0ZV1cbiAgICAgICAgICAgIDogW3NlbGVjdGVkUmFuZ2Uuc3RhcnREYXRlXVxuICAgICAgICA6IG51bGw7XG4gICAgY29uc3QgcmVuZGVyUHJlc2V0TGlzdCA9ICgpID0+IChfanN4cyhfRnJhZ21lbnQsIHsgY2hpbGRyZW46IFtfanN4KFwidWxcIiwgeyBjbGFzc05hbWU6IGAke1dSQVBfQ0xTfV9fbGlzdGAsIGNoaWxkcmVuOiBEQVRFX1JBTkdFX09QVElPTlMubWFwKChvcHRpb24pID0+IChfanN4cyhcImxpXCIsIHsgY2xhc3NOYW1lOiBqb2luQ2xzKGAke1dSQVBfQ0xTfV9faXRlbWAsIG9wdGlvbiA9PT0gT1BUSU9OX0NVU1RPTSAmJiBgJHtXUkFQX0NMU31fX2l0ZW0tLWN1c3RvbWAsIHNlbGVjdGVkT3B0aW9uID09PSBvcHRpb24gJiYgYCR7V1JBUF9DTFN9X19pdGVtLS1zZWxlY3RlZGApLCBvbkNsaWNrOiAoKSA9PiBoYW5kbGVJdGVtQ2xpY2sob3B0aW9uKSwgY2hpbGRyZW46IFtfanN4KFR5cG9ncmFwaHlCb2R5LCB7IHNpemU6ICdzbScsIHN0cm9uZzogdHJ1ZSwgY2hpbGRyZW46IGdldERpc3BsYXlMYWJlbChvcHRpb24pIH0pLCBvcHRpb24gPT09IE9QVElPTl9DVVNUT00gPyAoX2pzeChJY29ucywgeyBuYW1lOiAnY2hldnJvblJpZ2h0Jywgc2l6ZTogQ0hFVlJPTl9TSVpFIH0pKSA6IChfanN4KFJhZGlvLCB7IHNpemU6ICdzbWFsbCcsIGNoZWNrZWQ6IHNlbGVjdGVkT3B0aW9uID09PSBvcHRpb24gfSkpXSB9LCBvcHRpb24pKSkgfSksIF9qc3hzKEZsZXgsIHsgZ2FwOiA4LCBjbGFzc05hbWU6IGAke1dSQVBfQ0xTfV9fZm9vdGVyYCwgY2hpbGRyZW46IFtfanN4KEJ1dHRvbiwgeyBjb2xvcjogJ2dyZXknLCBzaXplOiAnc21hbGwnLCBzdHlsZTogRlVMTF9XSURUSF9TVFlMRSwgb25DbGljazogcmVzZXRTZWxlY3Rpb24sIGNoaWxkcmVuOiBsb2NhbGUucmVzZXQgfSksIF9qc3goQnV0dG9uLCB7IGNvbG9yOiAncHJpbWFyeScsIHNpemU6ICdzbWFsbCcsIHN0eWxlOiBGVUxMX1dJRFRIX1NUWUxFLCBkaXNhYmxlZDogIXNlbGVjdGVkT3B0aW9uLCBvbkNsaWNrOiBhcHBseVByZXNldCwgY2hpbGRyZW46IGxvY2FsZS5hcHBseSB9KV0gfSldIH0pKTtcbiAgICBjb25zdCByZW5kZXJDdXN0b21SYW5nZSA9ICgpID0+IChfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogYCR7V1JBUF9DTFN9X19jdXN0b21gLCBjaGlsZHJlbjogW19qc3hzKEZsZXgsIHsgYWxpZ246ICdjZW50ZXInLCBnYXA6IDE2LCBjbGFzc05hbWU6IGAke1dSQVBfQ0xTfV9fY3VzdG9tLWhlYWRlcmAsIGNoaWxkcmVuOiBbX2pzeChcImJ1dHRvblwiLCB7IHR5cGU6ICdidXR0b24nLCBcImFyaWEtbGFiZWxcIjogbG9jYWxlLmJhY2ssIGNsYXNzTmFtZTogYCR7V1JBUF9DTFN9X19iYWNrYCwgb25DbGljazogKCkgPT4gc2V0U2hvd0N1c3RvbVJhbmdlKGZhbHNlKSwgY2hpbGRyZW46IF9qc3goSWNvbnMsIHsgbmFtZTogJ2Fycm93TGVmdCcsIHNpemU6IEJBQ0tfSUNPTl9TSVpFIH0pIH0pLCBfanN4KFR5cG9ncmFwaHlUaXRsZSwgeyBzaXplOiAnc20nLCBzdHJvbmc6IHRydWUsIGNsYXNzTmFtZTogYCR7V1JBUF9DTFN9X19jdXN0b20tdGl0bGVgLCBjaGlsZHJlbjogbG9jYWxlLmN1c3RvbURhdGVSYW5nZSB9KSwgX2pzeChcInNwYW5cIiwgeyBcImFyaWEtaGlkZGVuXCI6IHRydWUsIGNsYXNzTmFtZTogYCR7V1JBUF9DTFN9X19oZWFkZXItc3BhY2VyYCB9KV0gfSksIF9qc3goQ2FsZW5kYXIsIHsgd3JhcHBlckNsczogYCR7V1JBUF9DTFN9X19jYWxlbmRhcmAsIHBhbmVsQ2xhc3NOYW1lOiBDQUxFTkRBUl9QQU5FTF9DTFMsIHNpemU6ICdzbWFsbCcsIHByZXZJY29uOiBfanN4KEljb25zLCB7IG5hbWU6ICdjaGV2cm9uTGVmdCcsIHNpemU6IENIRVZST05fU0laRSB9KSwgbmV4dEljb246IF9qc3goSWNvbnMsIHsgbmFtZTogJ2NoZXZyb25SaWdodCcsIHNpemU6IENIRVZST05fU0laRSB9KSwgc2VsZWN0aW9uTW9kZTogJ3JhbmdlJywgcGxhY2Vob2xkZXI6IGxvY2FsZS5yYW5nZVBsYWNlaG9sZGVyLCByZWFkT25seUlucHV0OiB0cnVlLCBoaWRlT25SYW5nZVNlbGVjdGlvbjogdHJ1ZSwgbnVtYmVyT2ZNb250aHM6IENBTEVOREFSX01PTlRIUywgdmFsdWU6IGNhbGVuZGFyVmFsdWUsIHZpZXdEYXRlOiBtb250aFZpZXcsIG9uVmlld0RhdGVDaGFuZ2U6IChldmVudCkgPT4gc2V0TW9udGhWaWV3KGV2ZW50LnZhbHVlKSwgb25DaGFuZ2U6IGhhbmRsZURhdGVTZWxlY3QgfSksIF9qc3hzKEZsZXgsIHsgZ2FwOiA4LCBjbGFzc05hbWU6IGpvaW5DbHMoYCR7V1JBUF9DTFN9X19mb290ZXJgLCBgJHtXUkFQX0NMU31fX2Zvb3Rlci0tY3VzdG9tYCksIGNoaWxkcmVuOiBbX2pzeChCdXR0b24sIHsgY29sb3I6ICdncmV5Jywgc2l6ZTogJ3NtYWxsJywgc3R5bGU6IEZVTExfV0lEVEhfU1RZTEUsIG9uQ2xpY2s6IHJlc2V0U2VsZWN0aW9uLCBjaGlsZHJlbjogbG9jYWxlLnJlc2V0IH0pLCBfanN4KEJ1dHRvbiwgeyBjb2xvcjogJ3ByaW1hcnknLCBzaXplOiAnc21hbGwnLCBzdHlsZTogRlVMTF9XSURUSF9TVFlMRSwgZGlzYWJsZWQ6ICFzZWxlY3RlZFJhbmdlLnN0YXJ0RGF0ZSB8fCAhc2VsZWN0ZWRSYW5nZS5lbmREYXRlLCBvbkNsaWNrOiBhcHBseUN1c3RvbSwgY2hpbGRyZW46IGxvY2FsZS5hcHBseSB9KV0gfSldIH0pKTtcbiAgICByZXR1cm4gKF9qc3goU2VsZWN0LkN1c3RvbSwgT2JqZWN0LmFzc2lnbih7fSwgcmVzdCwgeyBcbiAgICAgICAgLy8gRml4ZWQgMzJweCBcIkV4dHJhIFNtYWxsXCIgdHJpZ2dlciB2aWEgdGhlIG5hdGl2ZSBTZWxlY3QgYGV4dHJhLXNtYWxsYFxuICAgICAgICAvLyBzaXplOyBsb2NrZWQgaGVyZSByYXRoZXIgdGhhbiBleHBvc2VkIGFzIGEgcHJvcC5cbiAgICAgICAgc2l6ZTogJ2V4dHJhLXNtYWxsJywgYW5pbWF0aW9uOiBmYWxzZSwgbGFiZWw6IGxhYmVsLCBwbGFjZWhvbGRlcjogcGxhY2Vob2xkZXIsIGNsYXNzTmFtZTogam9pbkNscyhXUkFQX0NMUywgY2xhc3NOYW1lKSwgcGFuZWxDbGFzc05hbWU6IFNFTEVDVF9QQU5FTF9DTFMsIHBhbmVsV2lkdGg6IHNob3dDdXN0b21SYW5nZSA/IFBBTkVMX1dJRFRIX0NVU1RPTSA6IFBBTkVMX1dJRFRIX1BSRVNFVCwgb3Blbjogb3Blbiwgb25PcGVuQ2hhbmdlOiBoYW5kbGVPcGVuQ2hhbmdlLCBzZWxlY3RlZFRlbXBsYXRlOiBzZWxlY3RlZFRleHRcbiAgICAgICAgICAgID8gKHsgZm9udFNpemUgfSkgPT4gKF9qc3goVHlwb2dyYXBoeUJvZHksIHsgc2l6ZTogZm9udFNpemUsIGNsYXNzTmFtZTogYCR7V1JBUF9DTFN9X192YWx1ZWAsIGNoaWxkcmVuOiBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogYCR7V1JBUF9DTFN9X192YWx1ZS1sYWJlbGAsIGNoaWxkcmVuOiBzZWxlY3RlZFRleHQgfSkgfSkpXG4gICAgICAgICAgICA6IG51bGwsIGNoaWxkcmVuOiAoKSA9PiAoc2hvd0N1c3RvbVJhbmdlID8gcmVuZGVyQ3VzdG9tUmFuZ2UoKSA6IHJlbmRlclByZXNldExpc3QoKSkgfSkpKTtcbn07XG5leHBvcnQgY29uc3QgRGF0ZVJhbmdlRmlsdGVyID0gbWVtbyhEYXRlUmFuZ2VGaWx0ZXJCYXNlKTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
@@ -59,32 +59,103 @@
59
59
  border-bottom: 1px solid var(--om-border-neutral, #e3e4e4);
60
60
  }
61
61
  .om-date-range-filter__custom-header {
62
- height: 36px;
63
- margin-bottom: var(--om-spacing-400, 16px);
62
+ height: var(--om-component-height-xs, 24px);
63
+ margin-bottom: var(--om-spacing-100, 4px);
64
64
  }
65
- .om-date-range-filter__back-icon {
65
+ .om-date-range-filter__custom-title {
66
+ flex: 1;
67
+ min-width: 0;
68
+ text-align: center;
69
+ }
70
+ .om-date-range-filter__back, .om-date-range-filter__header-spacer {
71
+ flex: 0 0 var(--om-spacing-400, 16px);
72
+ width: var(--om-spacing-400, 16px);
73
+ height: var(--om-spacing-400, 16px);
74
+ }
75
+ .om-date-range-filter__back {
76
+ padding: 0;
77
+ color: var(--om-icon-default, #131313);
78
+ background: transparent;
79
+ border: 0;
66
80
  cursor: pointer;
67
81
  }
68
82
  .om-date-range-filter__calendar {
69
83
  display: block;
70
84
  width: 100%;
71
- margin-bottom: var(--om-spacing-600, 24px);
72
85
  }
73
- .om-date-range-filter__calendar .p-inputwrapper, .om-date-range-filter__calendar input {
86
+ .om-date-range-filter__calendar .p-inputwrapper,
87
+ .om-date-range-filter__calendar input {
74
88
  display: block;
75
89
  width: 100%;
76
90
  }
91
+ .om-date-range-filter__calendar .om-component-ui-calendar input {
92
+ font-size: var(--om-body-md-font-size);
93
+ font-family: var(--om-body-md-font-family);
94
+ line-height: var(--om-body-md-line-height);
95
+ letter-spacing: var(--om-body-md-letter-spacing);
96
+ font-weight: var(--om-body-md-strong-font-weight);
97
+ line-height: 20px !important;
98
+ padding-inline: calc(var(--om-spacing-400, 16px) - 1px);
99
+ border-radius: var(--om-radius-200, 8px);
100
+ }
101
+ .om-date-range-filter__calendar .om-component-ui-calendar input::-moz-placeholder {
102
+ font-size: var(--om-body-md-font-size);
103
+ font-family: var(--om-body-md-font-family);
104
+ line-height: var(--om-body-md-line-height);
105
+ letter-spacing: var(--om-body-md-letter-spacing);
106
+ font-weight: var(--om-body-md-font-weight);
107
+ color: var(--om-text-neutral-secondary, #9fa3a3);
108
+ }
109
+ .om-date-range-filter__calendar .om-component-ui-calendar input::placeholder {
110
+ font-size: var(--om-body-md-font-size);
111
+ font-family: var(--om-body-md-font-family);
112
+ line-height: var(--om-body-md-line-height);
113
+ letter-spacing: var(--om-body-md-letter-spacing);
114
+ font-weight: var(--om-body-md-font-weight);
115
+ color: var(--om-text-neutral-secondary, #9fa3a3);
116
+ }
117
+ .om-date-range-filter__calendar.om-component-ui-calendar-wrapper .om-component-ui-calendar.p-calendar.p-focus > .p-inputtext {
118
+ padding-inline: calc(var(--om-spacing-400, 16px) - 2px);
119
+ }
77
120
  .om-date-range-filter__footer {
78
121
  padding: var(--om-spacing-200, 8px) 0;
79
122
  }
80
- .om-date-range-filter__footer--bordered {
81
- border-top: 1px solid var(--om-border-neutral, #e3e4e4);
123
+ .om-date-range-filter__footer--custom {
124
+ padding-top: var(--om-spacing-300, 12px);
125
+ padding-bottom: var(--om-spacing-100, 4px);
82
126
  }
83
127
 
84
- .om-date-range-filter-calendar-panel {
128
+ .om-component-ui-calendar-panel.om-date-range-filter-calendar-panel {
85
129
  z-index: 2000 !important;
130
+ margin-top: var(--om-spacing-100, 4px);
131
+ border: 0;
132
+ box-shadow: var(--om-shadow-100, 0 4px 8px rgba(65, 91, 130, 0.12)), inset 0 0 0 1px var(--om-border-neutral-tertiary, #f8f8f8);
133
+ }
134
+ .om-component-ui-calendar-panel.om-date-range-filter-calendar-panel[style*="transform-origin: bottom"], .om-component-ui-calendar-panel.om-date-range-filter-calendar-panel[style*="transform-origin: center bottom"] {
135
+ margin-top: calc(-1 * var(--om-spacing-100, 4px));
136
+ }
137
+ .om-component-ui-calendar-panel.om-date-range-filter-calendar-panel .p-datepicker-group-container .p-datepicker-group .p-datepicker-header {
138
+ height: calc(var(--om-component-height-xs, 24px) + var(--om-spacing-300, 12px));
139
+ }
140
+ .om-component-ui-calendar-panel.om-date-range-filter-calendar-panel .p-datepicker-group-container .p-datepicker-group .p-datepicker-header .p-datepicker-prev,
141
+ .om-component-ui-calendar-panel.om-date-range-filter-calendar-panel .p-datepicker-group-container .p-datepicker-group .p-datepicker-header .p-datepicker-next {
142
+ width: var(--om-spacing-400, 16px);
143
+ height: var(--om-spacing-400, 16px);
144
+ }
145
+ .om-component-ui-calendar-panel.om-date-range-filter-calendar-panel .p-datepicker-group-container .p-datepicker-group .p-datepicker-calendar-container .p-datepicker-calendar thead tr th {
146
+ font-size: var(--om-body-sm-font-size);
147
+ font-family: var(--om-body-sm-font-family);
148
+ line-height: var(--om-body-sm-line-height);
149
+ letter-spacing: var(--om-body-sm-letter-spacing);
150
+ font-weight: var(--om-body-sm-font-weight);
151
+ height: calc(var(--om-spacing-400, 16px) + var(--om-spacing-100, 4px));
86
152
  }
87
153
 
88
- .om-date-range-filter-panel .om-component-ui-select-panel-body {
154
+ .om-component-ui-select-panel.om-date-range-filter-panel {
155
+ box-sizing: border-box;
156
+ border: 0;
157
+ box-shadow: var(--om-shadow-100, 0 4px 8px rgba(65, 91, 130, 0.12)), inset 0 0 0 1px var(--om-border-neutral-tertiary, #f8f8f8);
158
+ }
159
+ .om-component-ui-select-panel.om-date-range-filter-panel .om-component-ui-select-panel-body {
89
160
  gap: 0;
90
161
  }