@1money/component-ui 0.0.75 → 0.0.77

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 (153) hide show
  1. package/es/components/ProForm/ProForm.d.ts +1 -1
  2. package/es/components/ProForm/ProForm.js +46 -34
  3. package/es/components/ProForm/ProFormDependency.d.ts +2 -1
  4. package/es/components/ProForm/ProFormDependency.js +6 -16
  5. package/es/components/ProForm/ProFormItem.d.ts +7 -2
  6. package/es/components/ProForm/ProFormItem.js +5 -7
  7. package/es/components/ProForm/ProFormList.d.ts +6 -1
  8. package/es/components/ProForm/ProFormList.js +122 -42
  9. package/es/components/ProForm/SchemaForm.d.ts +1 -1
  10. package/es/components/ProForm/SchemaForm.js +8 -5
  11. package/es/components/ProForm/context.d.ts +8 -7
  12. package/es/components/ProForm/context.js +1 -1
  13. package/es/components/ProForm/core/constants.d.ts +3 -1
  14. package/es/components/ProForm/core/constants.js +8 -2
  15. package/es/components/ProForm/core/devWarning.d.ts +3 -0
  16. package/es/components/ProForm/core/devWarning.js +22 -0
  17. package/es/components/ProForm/core/formStore.d.ts +14 -6
  18. package/es/components/ProForm/core/formStore.js +21 -2
  19. package/es/components/ProForm/core/hooks/useForm.d.ts +1 -1
  20. package/es/components/ProForm/core/hooks/useForm.js +275 -107
  21. package/es/components/ProForm/core/hooks/useFormCore.d.ts +2 -2
  22. package/es/components/ProForm/core/hooks/useFormCore.js +121 -121
  23. package/es/components/ProForm/core/interface.d.ts +157 -103
  24. package/es/components/ProForm/core/namePathType.d.ts +25 -0
  25. package/es/components/ProForm/core/namePathType.js +2 -0
  26. package/es/components/ProForm/core/pathUtils.d.ts +5 -3
  27. package/es/components/ProForm/core/pathUtils.js +19 -1
  28. package/es/components/ProForm/core/runRules.d.ts +40 -17
  29. package/es/components/ProForm/core/runRules.js +480 -136
  30. package/es/components/ProForm/core/useFormItem.d.ts +7 -8
  31. package/es/components/ProForm/core/useFormItem.js +52 -82
  32. package/es/components/ProForm/core/validationError.d.ts +13 -0
  33. package/es/components/ProForm/core/validationError.js +29 -0
  34. package/es/components/ProForm/fields/ProFormCheckbox.d.ts +1 -1
  35. package/es/components/ProForm/fields/ProFormCheckboxGroup.d.ts +1 -1
  36. package/es/components/ProForm/fields/ProFormCheckboxGroup.js +19 -5
  37. package/es/components/ProForm/fields/ProFormDatePicker.d.ts +1 -1
  38. package/es/components/ProForm/fields/ProFormDatePicker.js +1 -1
  39. package/es/components/ProForm/fields/ProFormFieldSet.d.ts +7 -2
  40. package/es/components/ProForm/fields/ProFormFieldSet.js +49 -12
  41. package/es/components/ProForm/fields/ProFormPassword.d.ts +1 -1
  42. package/es/components/ProForm/fields/ProFormRadioGroup.d.ts +1 -1
  43. package/es/components/ProForm/fields/ProFormRadioGroup.js +8 -3
  44. package/es/components/ProForm/fields/ProFormSelect.d.ts +1 -1
  45. package/es/components/ProForm/fields/ProFormSelect.js +13 -7
  46. package/es/components/ProForm/fields/ProFormSlider.d.ts +1 -1
  47. package/es/components/ProForm/fields/ProFormSwitch.d.ts +1 -1
  48. package/es/components/ProForm/fields/ProFormText.d.ts +1 -1
  49. package/es/components/ProForm/fields/ProFormTextArea.d.ts +1 -1
  50. package/es/components/ProForm/fields/ProFormUpload.d.ts +1 -1
  51. package/es/components/ProForm/fields/ProFormUpload.js +1 -1
  52. package/es/components/ProForm/fields/createProFormField.d.ts +8 -2
  53. package/es/components/ProForm/fields/createProFormField.js +20 -27
  54. package/es/components/ProForm/hooks/useFieldRequest.d.ts +1 -1
  55. package/es/components/ProForm/hooks/useFieldRequest.js +10 -8
  56. package/es/components/ProForm/hooks/useUrlSync.d.ts +8 -7
  57. package/es/components/ProForm/hooks/useUrlSync.js +1 -1
  58. package/es/components/ProForm/index.d.ts +37 -27
  59. package/es/components/ProForm/index.js +4 -1
  60. package/es/components/ProForm/interface.d.ts +115 -119
  61. package/es/components/ProForm/layouts/DialogForm.d.ts +1 -1
  62. package/es/components/ProForm/layouts/DialogForm.js +1 -1
  63. package/es/components/ProForm/layouts/DrawerForm.d.ts +1 -1
  64. package/es/components/ProForm/layouts/DrawerForm.js +1 -1
  65. package/es/components/ProForm/layouts/QueryFilter.d.ts +1 -1
  66. package/es/components/ProForm/layouts/QueryFilter.js +24 -16
  67. package/es/components/ProForm/layouts/useOverlayForm.d.ts +2 -2
  68. package/es/components/ProForm/layouts/useOverlayForm.js +1 -1
  69. package/es/components/ProForm/utils.d.ts +15 -7
  70. package/es/components/ProForm/utils.js +51 -3
  71. package/es/components/Table/core/useTableSetup.js +2 -2
  72. package/es/components/Table/interface.d.ts +1 -1
  73. package/es/index.css +1 -1
  74. package/es/index.d.ts +1 -1
  75. package/es/index.js +1 -1
  76. package/lib/components/ProForm/ProForm.d.ts +1 -1
  77. package/lib/components/ProForm/ProForm.js +45 -33
  78. package/lib/components/ProForm/ProFormDependency.d.ts +2 -1
  79. package/lib/components/ProForm/ProFormDependency.js +5 -15
  80. package/lib/components/ProForm/ProFormItem.d.ts +7 -2
  81. package/lib/components/ProForm/ProFormItem.js +5 -7
  82. package/lib/components/ProForm/ProFormList.d.ts +6 -1
  83. package/lib/components/ProForm/ProFormList.js +120 -40
  84. package/lib/components/ProForm/SchemaForm.d.ts +1 -1
  85. package/lib/components/ProForm/SchemaForm.js +8 -5
  86. package/lib/components/ProForm/context.d.ts +8 -7
  87. package/lib/components/ProForm/context.js +1 -1
  88. package/lib/components/ProForm/core/constants.d.ts +3 -1
  89. package/lib/components/ProForm/core/constants.js +9 -3
  90. package/lib/components/ProForm/core/devWarning.d.ts +3 -0
  91. package/lib/components/ProForm/core/devWarning.js +29 -0
  92. package/lib/components/ProForm/core/formStore.d.ts +14 -6
  93. package/lib/components/ProForm/core/formStore.js +23 -2
  94. package/lib/components/ProForm/core/hooks/useForm.d.ts +1 -1
  95. package/lib/components/ProForm/core/hooks/useForm.js +271 -103
  96. package/lib/components/ProForm/core/hooks/useFormCore.d.ts +2 -2
  97. package/lib/components/ProForm/core/hooks/useFormCore.js +119 -119
  98. package/lib/components/ProForm/core/interface.d.ts +157 -103
  99. package/lib/components/ProForm/core/namePathType.d.ts +25 -0
  100. package/lib/components/ProForm/core/namePathType.js +6 -0
  101. package/lib/components/ProForm/core/pathUtils.d.ts +5 -3
  102. package/lib/components/ProForm/core/pathUtils.js +20 -1
  103. package/lib/components/ProForm/core/runRules.d.ts +40 -17
  104. package/lib/components/ProForm/core/runRules.js +483 -137
  105. package/lib/components/ProForm/core/useFormItem.d.ts +7 -8
  106. package/lib/components/ProForm/core/useFormItem.js +54 -84
  107. package/lib/components/ProForm/core/validationError.d.ts +13 -0
  108. package/lib/components/ProForm/core/validationError.js +36 -0
  109. package/lib/components/ProForm/fields/ProFormCheckbox.d.ts +1 -1
  110. package/lib/components/ProForm/fields/ProFormCheckboxGroup.d.ts +1 -1
  111. package/lib/components/ProForm/fields/ProFormCheckboxGroup.js +18 -4
  112. package/lib/components/ProForm/fields/ProFormDatePicker.d.ts +1 -1
  113. package/lib/components/ProForm/fields/ProFormDatePicker.js +1 -1
  114. package/lib/components/ProForm/fields/ProFormFieldSet.d.ts +7 -2
  115. package/lib/components/ProForm/fields/ProFormFieldSet.js +49 -12
  116. package/lib/components/ProForm/fields/ProFormPassword.d.ts +1 -1
  117. package/lib/components/ProForm/fields/ProFormRadioGroup.d.ts +1 -1
  118. package/lib/components/ProForm/fields/ProFormRadioGroup.js +7 -2
  119. package/lib/components/ProForm/fields/ProFormSelect.d.ts +1 -1
  120. package/lib/components/ProForm/fields/ProFormSelect.js +13 -7
  121. package/lib/components/ProForm/fields/ProFormSlider.d.ts +1 -1
  122. package/lib/components/ProForm/fields/ProFormSwitch.d.ts +1 -1
  123. package/lib/components/ProForm/fields/ProFormText.d.ts +1 -1
  124. package/lib/components/ProForm/fields/ProFormTextArea.d.ts +1 -1
  125. package/lib/components/ProForm/fields/ProFormUpload.d.ts +1 -1
  126. package/lib/components/ProForm/fields/ProFormUpload.js +1 -1
  127. package/lib/components/ProForm/fields/createProFormField.d.ts +8 -2
  128. package/lib/components/ProForm/fields/createProFormField.js +20 -27
  129. package/lib/components/ProForm/hooks/useFieldRequest.d.ts +1 -1
  130. package/lib/components/ProForm/hooks/useFieldRequest.js +10 -8
  131. package/lib/components/ProForm/hooks/useUrlSync.d.ts +8 -7
  132. package/lib/components/ProForm/hooks/useUrlSync.js +1 -1
  133. package/lib/components/ProForm/index.d.ts +37 -27
  134. package/lib/components/ProForm/index.js +10 -1
  135. package/lib/components/ProForm/interface.d.ts +115 -119
  136. package/lib/components/ProForm/layouts/DialogForm.d.ts +1 -1
  137. package/lib/components/ProForm/layouts/DialogForm.js +1 -1
  138. package/lib/components/ProForm/layouts/DrawerForm.d.ts +1 -1
  139. package/lib/components/ProForm/layouts/DrawerForm.js +1 -1
  140. package/lib/components/ProForm/layouts/QueryFilter.d.ts +1 -1
  141. package/lib/components/ProForm/layouts/QueryFilter.js +24 -16
  142. package/lib/components/ProForm/layouts/useOverlayForm.d.ts +2 -2
  143. package/lib/components/ProForm/layouts/useOverlayForm.js +1 -1
  144. package/lib/components/ProForm/utils.d.ts +15 -7
  145. package/lib/components/ProForm/utils.js +52 -3
  146. package/lib/components/Table/core/useTableSetup.js +2 -2
  147. package/lib/components/Table/interface.d.ts +1 -1
  148. package/lib/index.css +1 -1
  149. package/lib/index.d.ts +1 -1
  150. package/lib/index.js +1 -1
  151. package/package.json +1 -1
  152. package/scripts/mcp-server/examples.generated.json +95 -53
  153. package/scripts/mcp-server/index.generated.json +1715 -185
@@ -59,32 +59,40 @@ var QueryFilterBase = function QueryFilterBase(props) {
59
59
  setCollapsed(next);
60
60
  onCollapse === null || onCollapse === void 0 ? void 0 : onCollapse(next);
61
61
  });
62
+ // Count children and split visible/hidden
63
+ var childArray = useMemo(function () {
64
+ var arr = [];
65
+ React.Children.forEach(children, function (child) {
66
+ if (/*#__PURE__*/React.isValidElement(child)) {
67
+ arr.push(child);
68
+ }
69
+ });
70
+ return arr;
71
+ }, [children]);
62
72
  // A collapsed (display:none) field failing validation would block Search
63
73
  // with an INVISIBLE error — auto-expand so the user can see and fix it.
74
+ // Detection is inverted on purpose: an error whose name is NOT among the
75
+ // VISIBLE children's `name` props may belong to a wrapped/overflow field
76
+ // (e.g. inside a Dependency), so expand. Worst case the bar expands while
77
+ // the error was visible — harmless; the opposite (an invisible error)
78
+ // blocks the user.
64
79
  var handleFinishFailed = useMemoizedFn(function (errorInfo) {
65
80
  if (collapsed) {
66
- var overflowHasError = React.Children.toArray(children).slice(defaultColsNumber).some(function (child) {
67
- if (! /*#__PURE__*/React.isValidElement(child)) return false;
68
- var childName = child.props.name;
69
- return childName !== undefined && errorInfo.errors[childName] !== undefined;
81
+ var visibleNames = new Set(childArray.slice(0, defaultColsNumber).map(function (child) {
82
+ return /*#__PURE__*/React.isValidElement(child) ? child.props.name : undefined;
83
+ }).filter(function (name) {
84
+ return name !== undefined;
85
+ }));
86
+ var hasHiddenError = Object.keys(errorInfo.errors).some(function (errorName) {
87
+ return !visibleNames.has(errorName);
70
88
  });
71
- if (overflowHasError) {
89
+ if (hasHiddenError) {
72
90
  setCollapsed(false);
73
91
  onCollapse === null || onCollapse === void 0 ? void 0 : onCollapse(false);
74
92
  }
75
93
  }
76
94
  onFinishFailed === null || onFinishFailed === void 0 ? void 0 : onFinishFailed(errorInfo);
77
95
  });
78
- // Count children and split visible/hidden
79
- var childArray = useMemo(function () {
80
- var arr = [];
81
- React.Children.forEach(children, function (child) {
82
- if (/*#__PURE__*/React.isValidElement(child)) {
83
- arr.push(child);
84
- }
85
- });
86
- return arr;
87
- }, [children]);
88
96
  var hasMore = childArray.length > defaultColsNumber;
89
97
  var searchText = (_a = searchConfig === null || searchConfig === void 0 ? void 0 : searchConfig.searchText) !== null && _a !== void 0 ? _a : DEFAULT_TEXT.search;
90
98
  var resetText = (_b = searchConfig === null || searchConfig === void 0 ? void 0 : searchConfig.resetText) !== null && _b !== void 0 ? _b : DEFAULT_TEXT.reset;
@@ -136,4 +144,4 @@ QueryFilterBase.displayName = 'QueryFilter';
136
144
  /** Generic-aware export — keeps `<QueryFilter<MyValues> …>` fully typed. */
137
145
  export var QueryFilter = /*#__PURE__*/memo(QueryFilterBase);
138
146
  export default QueryFilter;
139
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9sYXlvdXRzL1F1ZXJ5RmlsdGVyLmpzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vbGF5b3V0cy9RdWVyeUZpbHRlci50c3giXSwibmFtZXMiOlsiX19yZXN0IiwicyIsImUiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwibWVtbyIsInVzZU1lbW8iLCJ1c2VDb250cm9sbGVkU3RhdGUiLCJ1c2VNZW1vaXplZEZuIiwiZGVmYXVsdCIsImNsYXNzbmFtZXMiLCJCdXR0b24iLCJQcm9Gb3JtIiwiQ1NTX1BSRUZJWCIsIkRFRkFVTFRfVEVYVCIsIlJlYWN0IiwiY2xhc3NlcyIsImNvbmNhdCIsIkhJRERFTl9TVFlMRSIsImRpc3BsYXkiLCJDT05URU5UU19TVFlMRSIsIlF1ZXJ5RmlsdGVyQmFzZSIsInByb3BzIiwiX2EiLCJfYiIsIl9wcm9wcyRkZWZhdWx0Q29sbGFwcyIsImRlZmF1bHRDb2xsYXBzZWQiLCJjb250cm9sbGVkQ29sbGFwc2VkIiwiY29sbGFwc2VkIiwib25Db2xsYXBzZSIsIl9wcm9wcyRkZWZhdWx0Q29sc051bSIsImRlZmF1bHRDb2xzTnVtYmVyIiwibGFiZWxXaWR0aCIsIl9wcm9wcyRzcGxpdCIsInNwbGl0Iiwic2VhcmNoQ29uZmlnIiwiX3Byb3BzJHN5bmNUb1VybEFzSW1wIiwic3luY1RvVXJsQXNJbXBvcnRhbnQiLCJjaGlsZHJlbiIsIm9uRmluaXNoRmFpbGVkIiwiX3N1Ym1pdHRlciIsInN1Ym1pdHRlciIsImZvcm1Qcm9wcyIsIl91c2VDb250cm9sbGVkU3RhdGUiLCJfdXNlQ29udHJvbGxlZFN0YXRlMiIsIl9zbGljZWRUb0FycmF5Iiwic2V0Q29sbGFwc2VkIiwiaGFuZGxlQ29sbGFwc2UiLCJuZXh0IiwiaGFuZGxlRmluaXNoRmFpbGVkIiwiZXJyb3JJbmZvIiwib3ZlcmZsb3dIYXNFcnJvciIsIkNoaWxkcmVuIiwidG9BcnJheSIsInNsaWNlIiwic29tZSIsImNoaWxkIiwiaXNWYWxpZEVsZW1lbnQiLCJjaGlsZE5hbWUiLCJuYW1lIiwidW5kZWZpbmVkIiwiZXJyb3JzIiwiY2hpbGRBcnJheSIsImFyciIsImZvckVhY2giLCJwdXNoIiwiaGFzTW9yZSIsInNlYXJjaFRleHQiLCJzZWFyY2giLCJyZXNldFRleHQiLCJyZXNldCIsImJ1dHRvblNpemUiLCJzaXplIiwibGFiZWxTdHlsZSIsIndpZHRoIiwiYXNzaWduIiwiZm9ybUNvbXBvbmVudFR5cGUiLCJjbGFzc05hbWUiLCJtYXAiLCJpbmRleCIsImhpZGRlbkJ5Q29sbGFwc2UiLCJGcmFnbWVudCIsInN0eWxlIiwidHlwZSIsImNvbG9yIiwidmFyaWFudCIsIm9uQ2xpY2siLCJleHBhbmQiLCJjb2xsYXBzZSIsImRpc3BsYXlOYW1lIiwiUXVlcnlGaWx0ZXIiXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFJQSxNQUFNLEdBQUksSUFBSSxJQUFJLElBQUksQ0FBQ0EsTUFBTSxJQUFLLFVBQVVDLENBQUMsRUFBRUMsQ0FBQyxFQUFFO0VBQ2xELElBQUlDLENBQUMsR0FBRyxDQUFDLENBQUM7RUFDVixLQUFLLElBQUlDLENBQUMsSUFBSUgsQ0FBQyxFQUFFLElBQUlJLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ1AsQ0FBQyxFQUFFRyxDQUFDLENBQUMsSUFBSUYsQ0FBQyxDQUFDTyxPQUFPLENBQUNMLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFDL0VELENBQUMsQ0FBQ0MsQ0FBQyxDQUFDLEdBQUdILENBQUMsQ0FBQ0csQ0FBQyxDQUFDO0VBQ2YsSUFBSUgsQ0FBQyxJQUFJLElBQUksSUFBSSxPQUFPSSxNQUFNLENBQUNLLHFCQUFxQixLQUFLLFVBQVUsRUFDL0QsS0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxFQUFFUCxDQUFDLEdBQUdDLE1BQU0sQ0FBQ0sscUJBQXFCLENBQUNULENBQUMsQ0FBQyxFQUFFVSxDQUFDLEdBQUdQLENBQUMsQ0FBQ1EsTUFBTSxFQUFFRCxDQUFDLEVBQUUsRUFBRTtJQUNwRSxJQUFJVCxDQUFDLENBQUNPLE9BQU8sQ0FBQ0wsQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSU4sTUFBTSxDQUFDQyxTQUFTLENBQUNPLG9CQUFvQixDQUFDTCxJQUFJLENBQUNQLENBQUMsRUFBRUcsQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FBQyxFQUMxRVIsQ0FBQyxDQUFDQyxDQUFDLENBQUNPLENBQUMsQ0FBQyxDQUFDLEdBQUdWLENBQUMsQ0FBQ0csQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FBQztFQUN6QjtFQUNKLE9BQU9SLENBQUM7QUFDWixDQUFDO0FBQ0QsU0FBU1csR0FBRyxJQUFJQyxJQUFJLEVBQUVDLElBQUksSUFBSUMsS0FBSyxRQUFRLG1CQUFtQjtBQ1g5RCxTQUFTQyxJQUFJLEVBQUVDLE9BQU8sUUFBUSxPQUFPO0FBRXJDLE9BQU9DLGtCQUFrQixNQUFNLGtDQUFrQztBQUNqRSxPQUFPQyxhQUFhLE1BQU0sNkJBQTZCO0FBQ3ZELFNBQVNDLE9BQU8sSUFBSUMsVUFBVSxRQUFRLDJCQUEyQjtBQUNqRSxTQUFTQyxNQUFNLFFBQVEsY0FBYztBQUNyQyxTQUFTQyxPQUFPLFFBQVEsWUFBWTtBQUNwQyxTQUFTQyxVQUFVLEVBQUVDLFlBQVksUUFBUSxjQUFjO0FBRXZELE9BQU9DLEtBQUssTUFBTSxPQUFPO0FBRXpCLElBQU1DLE9BQU8sR0FBR04sVUFBVSxJQUFBTyxNQUFBLENBQUlKLFVBQVUsa0JBQWUsQ0FBQztBQUV4RCxJQUFNSyxZQUFZLEdBQXdCO0VBQUVDLE9BQU8sRUFBRTtBQUFNLENBQUU7QUFDN0Q7QUFDQSxJQUFNQyxjQUFjLEdBQXdCO0VBQUVELE9BQU8sRUFBRTtBQUFVLENBQUU7QUFFbkU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQU1FLGVBQWUsR0FBeUIsU0FBeENBLGVBQWVBLENBQTBCQyxLQUFLLEVBQUk7RURRcEQsSUFBSUMsRUFBRSxFQUFFQyxFQUFFO0VDUFosSUFBQUMscUJBQUEsR0FjSUgsS0FBSyxDQWJQSSxnQkFBZ0I7SUFBaEJBLGdCQUFnQixHQUFBRCxxQkFBQSxjQUFHLElBQUksR0FBQUEscUJBQUE7SUFDWkUsbUJBQW1CLEdBWTVCTCxLQUFLLENBWlBNLFNBQVM7SUFDVEMsVUFBVSxHQVdSUCxLQUFLLENBWFBPLFVBQVU7SUFBQUMscUJBQUEsR0FXUlIsS0FBSyxDQVZQUyxpQkFBaUI7SUFBakJBLGlCQUFpQixHQUFBRCxxQkFBQSxjQUFHLENBQUMsR0FBQUEscUJBQUE7SUFDckJFLFVBQVUsR0FTUlYsS0FBSyxDQVRQVSxVQUFVO0lBQUFDLFlBQUEsR0FTUlgsS0FBSyxDQVJQWSxLQUFLO0lBQUxBLEtBQUssR0FBQUQsWUFBQSxjQUFHLEtBQUssR0FBQUEsWUFBQTtJQUNiRSxZQUFZLEdBT1ZiLEtBQUssQ0FQUGEsWUFBWTtJQUFBQyxxQkFBQSxHQU9WZCxLQUFLLENBTlBlLG9CQUFvQjtJQUFwQkEsb0JBQW9CLEdBQUFELHFCQUFBLGNBQUcsSUFBSSxHQUFBQSxxQkFBQTtJQUMzQkUsUUFBUSxHQUtOaEIsS0FBSyxDQUxQZ0IsUUFBUTtJQUNSQyxjQUFjLEdBSVpqQixLQUFLLENBSlBpQixjQUFjO0lBRUhDLFVBQVUsR0FFbkJsQixLQUFLLENBRlBtQixTQUFTO0lBQ05DLFNBQVMsR0FBQXZELE1BQUEsQ0FDVm1DLEtBQUssRUFkSCxDQUFBLGtCQUFBLEVBQUEsV0FBQSxFQUFBLFlBQUEsRUFBQSxtQkFBQSxFQUFBLFlBQUEsRUFBQSxPQUFBLEVBQUEsY0FBQSxFQUFBLHNCQUFBLEVBQUEsVUFBQSxFQUFBLGdCQUFBLEVBQUEsV0FBQSxDQWNMLENBQVE7RUFFVCxJQUFBcUIsbUJBQUEsR0FBa0NwQyxrQkFBa0IsQ0FDbERtQixnQkFBZ0IsRUFDaEJDLG1CQUFtQixDQUNwQjtJQUFBaUIsb0JBQUEsR0FBQUMsY0FBQSxDQUFBRixtQkFBQTtJQUhNZixTQUFTLEdBQUFnQixvQkFBQTtJQUFFRSxZQUFZLEdBQUFGLG9CQUFBO0VBSzlCLElBQU1HLGNBQWMsR0FBR3ZDLGFBQWEsQ0FBQyxZQUFLO0lBQ3hDLElBQU13QyxJQUFJLEdBQUcsQ0FBQ3BCLFNBQVM7SUFDdkJrQixZQUFZLENBQUNFLElBQUksQ0FBQztJQUNsQm5CLFVBQVUsS0FBQSxJQUFBLElBQVZBLFVBQVUsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBVkEsVUFBVSxDQUFHbUIsSUFBSSxDQUFDO0VBQ3BCLENBQUMsQ0FBQztFQUVGO0VBQ0E7RUFDQSxJQUFNQyxrQkFBa0IsR0FBR3pDLGFBQWEsQ0FDdEMsVUFBQzBDLFNBQThFLEVBQUk7SUFDakYsSUFBSXRCLFNBQVMsRUFBRTtNQUNiLElBQU11QixnQkFBZ0IsR0FBR3BDLEtBQUssQ0FBQ3FDLFFBQVEsQ0FBQ0MsT0FBTyxDQUFDZixRQUFRLENBQUMsQ0FDdERnQixLQUFLLENBQUN2QixpQkFBaUIsQ0FBQyxDQUN4QndCLElBQUksQ0FBQyxVQUFDQyxLQUFLLEVBQUk7UUFDZCxJQUFJLGVBQUN6QyxLQUFLLENBQUMwQyxjQUFjLENBQUNELEtBQUssQ0FBQyxFQUFFLE9BQU8sS0FBSztRQUM5QyxJQUFNRSxTQUFTLEdBQUlGLEtBQUssQ0FBQ2xDLEtBQTJCLENBQUNxQyxJQUFJO1FBQ3pELE9BQU9ELFNBQVMsS0FBS0UsU0FBUyxJQUFJVixTQUFTLENBQUNXLE1BQU0sQ0FBQ0gsU0FBUyxDQUFDLEtBQUtFLFNBQVM7TUFDN0UsQ0FBQyxDQUFDO01BQ0osSUFBSVQsZ0JBQWdCLEVBQUU7UUFDcEJMLFlBQVksQ0FBQyxLQUFLLENBQUM7UUFDbkJqQixVQUFVLEtBQUEsSUFBQSxJQUFWQSxVQUFVLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQVZBLFVBQVUsQ0FBRyxLQUFLLENBQUM7TUFDckI7SUFDRjtJQUNBVSxjQUFjLEtBQUEsSUFBQSxJQUFkQSxjQUFjLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQWRBLGNBQWMsQ0FBR1csU0FBUyxDQUFDO0VBQzdCLENBQUMsQ0FDRjtFQUVEO0VBQ0EsSUFBTVksVUFBVSxHQUFHeEQsT0FBTyxDQUFDLFlBQUs7SUFDOUIsSUFBTXlELEdBQUcsR0FBZ0IsRUFBRTtJQUMzQmhELEtBQUssQ0FBQ3FDLFFBQVEsQ0FBQ1ksT0FBTyxDQUFDMUIsUUFBUSxFQUFFLFVBQUNrQixLQUFLLEVBQUk7TUFDekMsaUJBQUl6QyxLQUFLLENBQUMwQyxjQUFjLENBQUNELEtBQUssQ0FBQyxFQUFFO1FBQy9CTyxHQUFHLENBQUNFLElBQUksQ0FBQ1QsS0FBSyxDQUFDO01BQ2pCO0lBQ0YsQ0FBQyxDQUFDO0lBQ0YsT0FBT08sR0FBRztFQUNaLENBQUMsRUFBRSxDQUFDekIsUUFBUSxDQUFDLENBQUM7RUFFZCxJQUFNNEIsT0FBTyxHQUFHSixVQUFVLENBQUMvRCxNQUFNLEdBQUdnQyxpQkFBaUI7RUFFckQsSUFBTW9DLFVBQVUsR0FBRyxDQUFBNUMsRUFBQSxHQUFBWSxZQUFZLEtBQUEsSUFBQSxJQUFaQSxZQUFZLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQVpBLFlBQVksQ0FBRWdDLFVBQVUsTUFBQSxJQUFBLElBQUE1QyxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsR0FBSVQsWUFBWSxDQUFDc0QsTUFBTTtFQUNsRSxJQUFNQyxTQUFTLEdBQUcsQ0FBQTdDLEVBQUEsR0FBQVcsWUFBWSxLQUFBLElBQUEsSUFBWkEsWUFBWSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFaQSxZQUFZLENBQUVrQyxTQUFTLE1BQUEsSUFBQSxJQUFBN0MsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLEdBQUlWLFlBQVksQ0FBQ3dELEtBQUs7RUFDL0QsSUFBTUMsVUFBVSxHQUFHcEMsWUFBWSxLQUFBLElBQUEsSUFBWkEsWUFBWSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFaQSxZQUFZLENBQUVxQyxJQUFJO0VBRXJDLElBQU1DLFVBQVUsR0FBR3pDLFVBQVUsS0FBSzRCLFNBQVMsSUFBSTVCLFVBQVUsS0FBSyxNQUFNLEdBQ2hFO0lBQUUwQyxLQUFLLEVBQUUxQztFQUFVLENBQXlCLEdBQzVDNEIsU0FBUztFQUViLE9BQ0UxRCxJQUFBLENBQUNVLE9BQU8sRUFBQXBCLE1BQUEsQ0FBQW1GLE1BQUEsQ0FBQSxDQUFBLENBQUEsRUFDRmpDLFNBQVMsRUFBQTtJQUNiTCxvQkFBb0IsRUFBRUEsb0JBQW9CO0lBQzFDdUMsaUJBQWlCLEVBQUMsYUFBYTtJQUMvQnJDLGNBQWMsRUFBRVUsa0JBQWtCO0lBQ2xDUixTQUFTLEVBQUUsS0FBSztJQUFBSCxRQUFBLEVBRWhCbEMsS0FBQSxDQUFBLEtBQUEsRUFBQTtNQUFLeUUsU0FBUyxFQUFFN0QsT0FBTyxDQUFBLENBQUU7TUFBQXNCLFFBQUEsRUFBQSxDQU10QndCLFVBQVUsQ0FBQ2dCLEdBQUcsQ0FBQyxVQUFDdEIsS0FBSyxFQUFFdUIsS0FBSyxFQUFJO1FBQy9CLElBQU1DLGdCQUFnQixHQUFHcEQsU0FBUyxJQUFJbUQsS0FBSyxJQUFJaEQsaUJBQWlCO1FBQ2hFLE9BQ0UzQixLQUFBLENBQUNXLEtBQUssQ0FBQ2tFLFFBQVEsRUFBQTtVQUFBM0MsUUFBQSxFQUFBLENBQ1pKLEtBQUssSUFBSTZDLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQ0MsZ0JBQWdCLElBQUk5RSxJQUFBLENBQUEsS0FBQSxFQUFBO1lBQUsyRSxTQUFTLEVBQUU3RCxPQUFPLENBQUMsT0FBTztVQUFDLENBQUEsQ0FBSSxFQUNoRmQsSUFBQSxDQUFBLEtBQUEsRUFBQTtZQUFLZ0YsS0FBSyxFQUFFRixnQkFBZ0IsR0FBRzlELFlBQVksR0FBSXVELFVBQVUsS0FBQSxJQUFBLElBQVZBLFVBQVUsS0FBQSxLQUFBLENBQUEsR0FBVkEsVUFBVSxHQUFJckQsY0FBZTtZQUFBa0IsUUFBQSxFQUN6RWtCO1VBQUssQ0FBQSxDQUNGO1FBQUEsQ0FBQSxFQUphdUIsS0FBSyxDQUtUO01BRXJCLENBQUMsQ0FBQyxFQUVGM0UsS0FBQSxDQUFBLEtBQUEsRUFBQTtRQUFLeUUsU0FBUyxFQUFFN0QsT0FBTyxDQUFDLFNBQVMsQ0FBQztRQUFBc0IsUUFBQSxFQUFBLENBQ2hDcEMsSUFBQSxDQUFDUyxNQUFNLEVBQUE7VUFBQ3dFLElBQUksRUFBQyxRQUFRO1VBQUNDLEtBQUssRUFBQyxTQUFTO1VBQUNaLElBQUksRUFBRUQsVUFBVTtVQUFBakMsUUFBQSxFQUNuRDZCO1FBQVUsQ0FBQSxDQUNKLEVBR1RqRSxJQUFBLENBQUNTLE1BQU0sRUFBQTtVQUFDd0UsSUFBSSxFQUFDLE9BQU87VUFBQ0MsS0FBSyxFQUFDLFdBQVc7VUFBQ1osSUFBSSxFQUFFRCxVQUFVO1VBQUFqQyxRQUFBLEVBQ3BEK0I7UUFBUyxDQUFBLENBQ0gsRUFDUkgsT0FBTyxJQUNOaEUsSUFBQSxDQUFDUyxNQUFNLEVBQUE7VUFBQ3dFLElBQUksRUFBQyxRQUFRO1VBQUNFLE9BQU8sRUFBQyxNQUFNO1VBQUNiLElBQUksRUFBRUQsVUFBVTtVQUFFZSxPQUFPLEVBQUV2QyxjQUFjO1VBQUFULFFBQUEsRUFDM0VWLFNBQVMsR0FBR2QsWUFBWSxDQUFDeUUsTUFBTSxHQUFHekUsWUFBWSxDQUFDMEU7UUFBUSxDQUFBLENBRTNEO01BQUEsQ0FBQSxDQUNHO0lBQUEsQ0FBQTtFQUNGLENBQUEsQ0FBQSxDQUNFO0FBRWQsQ0FBQztBQUVEbkUsZUFBZSxDQUFDb0UsV0FBVyxHQUFHLGFBQWE7QUFFM0M7QUFDQSxPQUFPLElBQU1DLFdBQVcsZ0JBQUdyRixJQUFJLENBQUNnQixlQUFlLENBRUs7QUFFcEQsZUFBZXFFLFdBQVciLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL2xheW91dHMvUXVlcnlGaWx0ZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgbWVtbywgdXNlTWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB1c2VDb250cm9sbGVkU3RhdGUgZnJvbSAnQDFtb25leS9ob29rcy91c2VDb250cm9sbGVkU3RhdGUnO1xuaW1wb3J0IHVzZU1lbW9pemVkRm4gZnJvbSAnQDFtb25leS9ob29rcy91c2VNZW1vaXplZEZuJztcbmltcG9ydCB7IGRlZmF1bHQgYXMgY2xhc3NuYW1lcyB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgQnV0dG9uIH0gZnJvbSAnLi4vLi4vQnV0dG9uJztcbmltcG9ydCB7IFByb0Zvcm0gfSBmcm9tICcuLi9Qcm9Gb3JtJztcbmltcG9ydCB7IENTU19QUkVGSVgsIERFRkFVTFRfVEVYVCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuY29uc3QgY2xhc3NlcyA9IGNsYXNzbmFtZXMoYCR7Q1NTX1BSRUZJWH0tcXVlcnktZmlsdGVyYCk7XG5jb25zdCBISURERU5fU1RZTEUgPSB7IGRpc3BsYXk6ICdub25lJyB9O1xuLy8gS2VlcHMgdGhlIHdyYXBwZXIgbGF5b3V0LW5ldXRyYWw6IHRoZSBmaWVsZCBzdGF5cyBhIGRpcmVjdCBmbGV4IGl0ZW0uXG5jb25zdCBDT05URU5UU19TVFlMRSA9IHsgZGlzcGxheTogJ2NvbnRlbnRzJyB9O1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBRdWVyeUZpbHRlciDigJQgYSBjb21wYWN0IGZpbHRlciBiYXIgb24gdG9wIG9mIFByb0Zvcm0uXG4vL1xuLy8gVVJMIHN5bmNocm9uaXphdGlvbiBpcyBoYW5kbGVkIGJ5IFByb0Zvcm0gaXRzZWxmIChgc3luY1RvVXJsYCk7IFF1ZXJ5RmlsdGVyXG4vLyBvbmx5IGZsaXBzIHRoZSBkZWZhdWx0IG9mIGBzeW5jVG9VcmxBc0ltcG9ydGFudGAgdG8gdHJ1ZTogYSBmaWx0ZXIncyByZWFzb25cbi8vIHRvIHN5bmMgaXMgcmVzdG9yaW5nIHN0YXRlIGZyb20gdGhlIFVSTCBvbiByZWZyZXNoLCBzbyBVUkwgcGFyYW1zIHdpbiBvdmVyXG4vLyBgaW5pdGlhbFZhbHVlc2AgaGVyZSAocGxhaW4gUHJvRm9ybSBrZWVwcyB0aGUgb3Bwb3NpdGUgZGVmYXVsdCkuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmNvbnN0IFF1ZXJ5RmlsdGVyQmFzZSA9IChwcm9wcykgPT4ge1xuICAgIHZhciBfYSwgX2I7XG4gICAgY29uc3QgeyBkZWZhdWx0Q29sbGFwc2VkID0gdHJ1ZSwgY29sbGFwc2VkOiBjb250cm9sbGVkQ29sbGFwc2VkLCBvbkNvbGxhcHNlLCBkZWZhdWx0Q29sc051bWJlciA9IDMsIGxhYmVsV2lkdGgsIHNwbGl0ID0gZmFsc2UsIHNlYXJjaENvbmZpZywgc3luY1RvVXJsQXNJbXBvcnRhbnQgPSB0cnVlLCBjaGlsZHJlbiwgb25GaW5pc2hGYWlsZWQsIFxuICAgIC8vIFF1ZXJ5RmlsdGVyIGFsd2F5cyByZW5kZXJzIGl0cyBvd24gU2VhcmNoL1Jlc2V0L0V4cGFuZCBidXR0b25zLlxuICAgIHN1Ym1pdHRlcjogX3N1Ym1pdHRlciB9ID0gcHJvcHMsIGZvcm1Qcm9wcyA9IF9fcmVzdChwcm9wcywgW1wiZGVmYXVsdENvbGxhcHNlZFwiLCBcImNvbGxhcHNlZFwiLCBcIm9uQ29sbGFwc2VcIiwgXCJkZWZhdWx0Q29sc051bWJlclwiLCBcImxhYmVsV2lkdGhcIiwgXCJzcGxpdFwiLCBcInNlYXJjaENvbmZpZ1wiLCBcInN5bmNUb1VybEFzSW1wb3J0YW50XCIsIFwiY2hpbGRyZW5cIiwgXCJvbkZpbmlzaEZhaWxlZFwiLCBcInN1Ym1pdHRlclwiXSk7XG4gICAgY29uc3QgW2NvbGxhcHNlZCwgc2V0Q29sbGFwc2VkXSA9IHVzZUNvbnRyb2xsZWRTdGF0ZShkZWZhdWx0Q29sbGFwc2VkLCBjb250cm9sbGVkQ29sbGFwc2VkKTtcbiAgICBjb25zdCBoYW5kbGVDb2xsYXBzZSA9IHVzZU1lbW9pemVkRm4oKCkgPT4ge1xuICAgICAgICBjb25zdCBuZXh0ID0gIWNvbGxhcHNlZDtcbiAgICAgICAgc2V0Q29sbGFwc2VkKG5leHQpO1xuICAgICAgICBvbkNvbGxhcHNlID09PSBudWxsIHx8IG9uQ29sbGFwc2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ29sbGFwc2UobmV4dCk7XG4gICAgfSk7XG4gICAgLy8gQSBjb2xsYXBzZWQgKGRpc3BsYXk6bm9uZSkgZmllbGQgZmFpbGluZyB2YWxpZGF0aW9uIHdvdWxkIGJsb2NrIFNlYXJjaFxuICAgIC8vIHdpdGggYW4gSU5WSVNJQkxFIGVycm9yIOKAlCBhdXRvLWV4cGFuZCBzbyB0aGUgdXNlciBjYW4gc2VlIGFuZCBmaXggaXQuXG4gICAgY29uc3QgaGFuZGxlRmluaXNoRmFpbGVkID0gdXNlTWVtb2l6ZWRGbigoZXJyb3JJbmZvKSA9PiB7XG4gICAgICAgIGlmIChjb2xsYXBzZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IG92ZXJmbG93SGFzRXJyb3IgPSBSZWFjdC5DaGlsZHJlbi50b0FycmF5KGNoaWxkcmVuKVxuICAgICAgICAgICAgICAgIC5zbGljZShkZWZhdWx0Q29sc051bWJlcilcbiAgICAgICAgICAgICAgICAuc29tZSgoY2hpbGQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIVJlYWN0LmlzVmFsaWRFbGVtZW50KGNoaWxkKSlcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNoaWxkTmFtZSA9IGNoaWxkLnByb3BzLm5hbWU7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNoaWxkTmFtZSAhPT0gdW5kZWZpbmVkICYmIGVycm9ySW5mby5lcnJvcnNbY2hpbGROYW1lXSAhPT0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAob3ZlcmZsb3dIYXNFcnJvcikge1xuICAgICAgICAgICAgICAgIHNldENvbGxhcHNlZChmYWxzZSk7XG4gICAgICAgICAgICAgICAgb25Db2xsYXBzZSA9PT0gbnVsbCB8fCBvbkNvbGxhcHNlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkNvbGxhcHNlKGZhbHNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBvbkZpbmlzaEZhaWxlZCA9PT0gbnVsbCB8fCBvbkZpbmlzaEZhaWxlZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25GaW5pc2hGYWlsZWQoZXJyb3JJbmZvKTtcbiAgICB9KTtcbiAgICAvLyBDb3VudCBjaGlsZHJlbiBhbmQgc3BsaXQgdmlzaWJsZS9oaWRkZW5cbiAgICBjb25zdCBjaGlsZEFycmF5ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGNvbnN0IGFyciA9IFtdO1xuICAgICAgICBSZWFjdC5DaGlsZHJlbi5mb3JFYWNoKGNoaWxkcmVuLCAoY2hpbGQpID0+IHtcbiAgICAgICAgICAgIGlmIChSZWFjdC5pc1ZhbGlkRWxlbWVudChjaGlsZCkpIHtcbiAgICAgICAgICAgICAgICBhcnIucHVzaChjaGlsZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gYXJyO1xuICAgIH0sIFtjaGlsZHJlbl0pO1xuICAgIGNvbnN0IGhhc01vcmUgPSBjaGlsZEFycmF5Lmxlbmd0aCA+IGRlZmF1bHRDb2xzTnVtYmVyO1xuICAgIGNvbnN0IHNlYXJjaFRleHQgPSAoX2EgPSBzZWFyY2hDb25maWcgPT09IG51bGwgfHwgc2VhcmNoQ29uZmlnID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzZWFyY2hDb25maWcuc2VhcmNoVGV4dCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogREVGQVVMVF9URVhULnNlYXJjaDtcbiAgICBjb25zdCByZXNldFRleHQgPSAoX2IgPSBzZWFyY2hDb25maWcgPT09IG51bGwgfHwgc2VhcmNoQ29uZmlnID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzZWFyY2hDb25maWcucmVzZXRUZXh0KSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBERUZBVUxUX1RFWFQucmVzZXQ7XG4gICAgY29uc3QgYnV0dG9uU2l6ZSA9IHNlYXJjaENvbmZpZyA9PT0gbnVsbCB8fCBzZWFyY2hDb25maWcgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNlYXJjaENvbmZpZy5zaXplO1xuICAgIGNvbnN0IGxhYmVsU3R5bGUgPSBsYWJlbFdpZHRoICE9PSB1bmRlZmluZWQgJiYgbGFiZWxXaWR0aCAhPT0gJ2F1dG8nXG4gICAgICAgID8geyB3aWR0aDogbGFiZWxXaWR0aCB9XG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgIHJldHVybiAoX2pzeChQcm9Gb3JtLCBPYmplY3QuYXNzaWduKHt9LCBmb3JtUHJvcHMsIHsgc3luY1RvVXJsQXNJbXBvcnRhbnQ6IHN5bmNUb1VybEFzSW1wb3J0YW50LCBmb3JtQ29tcG9uZW50VHlwZTogXCJRdWVyeUZpbHRlclwiLCBvbkZpbmlzaEZhaWxlZDogaGFuZGxlRmluaXNoRmFpbGVkLCBzdWJtaXR0ZXI6IGZhbHNlLCBjaGlsZHJlbjogX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoKSwgY2hpbGRyZW46IFtjaGlsZEFycmF5Lm1hcCgoY2hpbGQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGRlbkJ5Q29sbGFwc2UgPSBjb2xsYXBzZWQgJiYgaW5kZXggPj0gZGVmYXVsdENvbHNOdW1iZXI7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoX2pzeHMoUmVhY3QuRnJhZ21lbnQsIHsgY2hpbGRyZW46IFtzcGxpdCAmJiBpbmRleCA+IDAgJiYgIWhpZGRlbkJ5Q29sbGFwc2UgJiYgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcygnc3BsaXQnKSB9KSwgX2pzeChcImRpdlwiLCB7IHN0eWxlOiBoaWRkZW5CeUNvbGxhcHNlID8gSElEREVOX1NUWUxFIDogKGxhYmVsU3R5bGUgIT09IG51bGwgJiYgbGFiZWxTdHlsZSAhPT0gdm9pZCAwID8gbGFiZWxTdHlsZSA6IENPTlRFTlRTX1NUWUxFKSwgY2hpbGRyZW46IGNoaWxkIH0pXSB9LCBpbmRleCkpO1xuICAgICAgICAgICAgICAgIH0pLCBfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnYWN0aW9ucycpLCBjaGlsZHJlbjogW19qc3goQnV0dG9uLCB7IHR5cGU6IFwic3VibWl0XCIsIGNvbG9yOiBcInByaW1hcnlcIiwgc2l6ZTogYnV0dG9uU2l6ZSwgY2hpbGRyZW46IHNlYXJjaFRleHQgfSksIF9qc3goQnV0dG9uLCB7IHR5cGU6IFwicmVzZXRcIiwgY29sb3I6IFwic2Vjb25kYXJ5XCIsIHNpemU6IGJ1dHRvblNpemUsIGNoaWxkcmVuOiByZXNldFRleHQgfSksIGhhc01vcmUgJiYgKF9qc3goQnV0dG9uLCB7IHR5cGU6IFwiYnV0dG9uXCIsIHZhcmlhbnQ6IFwidGV4dFwiLCBzaXplOiBidXR0b25TaXplLCBvbkNsaWNrOiBoYW5kbGVDb2xsYXBzZSwgY2hpbGRyZW46IGNvbGxhcHNlZCA/IERFRkFVTFRfVEVYVC5leHBhbmQgOiBERUZBVUxUX1RFWFQuY29sbGFwc2UgfSkpXSB9KV0gfSkgfSkpKTtcbn07XG5RdWVyeUZpbHRlckJhc2UuZGlzcGxheU5hbWUgPSAnUXVlcnlGaWx0ZXInO1xuLyoqIEdlbmVyaWMtYXdhcmUgZXhwb3J0IOKAlCBrZWVwcyBgPFF1ZXJ5RmlsdGVyPE15VmFsdWVzPiDigKY+YCBmdWxseSB0eXBlZC4gKi9cbmV4cG9ydCBjb25zdCBRdWVyeUZpbHRlciA9IG1lbW8oUXVlcnlGaWx0ZXJCYXNlKTtcbmV4cG9ydCBkZWZhdWx0IFF1ZXJ5RmlsdGVyOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
147
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9sYXlvdXRzL1F1ZXJ5RmlsdGVyLmpzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vbGF5b3V0cy9RdWVyeUZpbHRlci50c3giXSwibmFtZXMiOlsiX19yZXN0IiwicyIsImUiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwibWVtbyIsInVzZU1lbW8iLCJ1c2VDb250cm9sbGVkU3RhdGUiLCJ1c2VNZW1vaXplZEZuIiwiZGVmYXVsdCIsImNsYXNzbmFtZXMiLCJCdXR0b24iLCJQcm9Gb3JtIiwiQ1NTX1BSRUZJWCIsIkRFRkFVTFRfVEVYVCIsIlJlYWN0IiwiY2xhc3NlcyIsImNvbmNhdCIsIkhJRERFTl9TVFlMRSIsImRpc3BsYXkiLCJDT05URU5UU19TVFlMRSIsIlF1ZXJ5RmlsdGVyQmFzZSIsInByb3BzIiwiX2EiLCJfYiIsIl9wcm9wcyRkZWZhdWx0Q29sbGFwcyIsImRlZmF1bHRDb2xsYXBzZWQiLCJjb250cm9sbGVkQ29sbGFwc2VkIiwiY29sbGFwc2VkIiwib25Db2xsYXBzZSIsIl9wcm9wcyRkZWZhdWx0Q29sc051bSIsImRlZmF1bHRDb2xzTnVtYmVyIiwibGFiZWxXaWR0aCIsIl9wcm9wcyRzcGxpdCIsInNwbGl0Iiwic2VhcmNoQ29uZmlnIiwiX3Byb3BzJHN5bmNUb1VybEFzSW1wIiwic3luY1RvVXJsQXNJbXBvcnRhbnQiLCJjaGlsZHJlbiIsIm9uRmluaXNoRmFpbGVkIiwiX3N1Ym1pdHRlciIsInN1Ym1pdHRlciIsImZvcm1Qcm9wcyIsIl91c2VDb250cm9sbGVkU3RhdGUiLCJfdXNlQ29udHJvbGxlZFN0YXRlMiIsIl9zbGljZWRUb0FycmF5Iiwic2V0Q29sbGFwc2VkIiwiaGFuZGxlQ29sbGFwc2UiLCJuZXh0IiwiY2hpbGRBcnJheSIsImFyciIsIkNoaWxkcmVuIiwiZm9yRWFjaCIsImNoaWxkIiwiaXNWYWxpZEVsZW1lbnQiLCJwdXNoIiwiaGFuZGxlRmluaXNoRmFpbGVkIiwiZXJyb3JJbmZvIiwidmlzaWJsZU5hbWVzIiwiU2V0Iiwic2xpY2UiLCJtYXAiLCJuYW1lIiwidW5kZWZpbmVkIiwiZmlsdGVyIiwiaGFzSGlkZGVuRXJyb3IiLCJrZXlzIiwiZXJyb3JzIiwic29tZSIsImVycm9yTmFtZSIsImhhcyIsImhhc01vcmUiLCJzZWFyY2hUZXh0Iiwic2VhcmNoIiwicmVzZXRUZXh0IiwicmVzZXQiLCJidXR0b25TaXplIiwic2l6ZSIsImxhYmVsU3R5bGUiLCJ3aWR0aCIsImFzc2lnbiIsImZvcm1Db21wb25lbnRUeXBlIiwiY2xhc3NOYW1lIiwiaW5kZXgiLCJoaWRkZW5CeUNvbGxhcHNlIiwiRnJhZ21lbnQiLCJzdHlsZSIsInR5cGUiLCJjb2xvciIsInZhcmlhbnQiLCJvbkNsaWNrIiwiZXhwYW5kIiwiY29sbGFwc2UiLCJkaXNwbGF5TmFtZSIsIlF1ZXJ5RmlsdGVyIl0sIm1hcHBpbmdzIjoiO0FBQUEsSUFBSUEsTUFBTSxHQUFJLElBQUksSUFBSSxJQUFJLENBQUNBLE1BQU0sSUFBSyxVQUFVQyxDQUFDLEVBQUVDLENBQUMsRUFBRTtFQUNsRCxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0VBQ1YsS0FBSyxJQUFJQyxDQUFDLElBQUlILENBQUMsRUFBRSxJQUFJSSxNQUFNLENBQUNDLFNBQVMsQ0FBQ0MsY0FBYyxDQUFDQyxJQUFJLENBQUNQLENBQUMsRUFBRUcsQ0FBQyxDQUFDLElBQUlGLENBQUMsQ0FBQ08sT0FBTyxDQUFDTCxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQy9FRCxDQUFDLENBQUNDLENBQUMsQ0FBQyxHQUFHSCxDQUFDLENBQUNHLENBQUMsQ0FBQztFQUNmLElBQUlILENBQUMsSUFBSSxJQUFJLElBQUksT0FB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Q0FLSztBQUVwRCxlQUFleUUsV0FBVyIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vbGF5b3V0cy9RdWVyeUZpbHRlci5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBtZW1vLCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHVzZUNvbnRyb2xsZWRTdGF0ZSBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZUNvbnRyb2xsZWRTdGF0ZSc7XG5pbXBvcnQgdXNlTWVtb2l6ZWRGbiBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZU1lbW9pemVkRm4nO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBjbGFzc25hbWVzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICcuLi8uLi9CdXR0b24nO1xuaW1wb3J0IHsgUHJvRm9ybSB9IGZyb20gJy4uL1Byb0Zvcm0nO1xuaW1wb3J0IHsgQ1NTX1BSRUZJWCwgREVGQVVMVF9URVhUIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5jb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcyhgJHtDU1NfUFJFRklYfS1xdWVyeS1maWx0ZXJgKTtcbmNvbnN0IEhJRERFTl9TVFlMRSA9IHsgZGlzcGxheTogJ25vbmUnIH07XG4vLyBLZWVwcyB0aGUgd3JhcHBlciBsYXlvdXQtbmV1dHJhbDogdGhlIGZpZWxkIHN0YXlzIGEgZGlyZWN0IGZsZXggaXRlbS5cbmNvbnN0IENPTlRFTlRTX1NUWUxFID0geyBkaXNwbGF5OiAnY29udGVudHMnIH07XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFF1ZXJ5RmlsdGVyIOKAlCBhIGNvbXBhY3QgZmlsdGVyIGJhciBvbiB0b3Agb2YgUHJvRm9ybS5cbi8vXG4vLyBVUkwgc3luY2hyb25pemF0aW9uIGlzIGhhbmRsZWQgYnkgUHJvRm9ybSBpdHNlbGYgKGBzeW5jVG9VcmxgKTsgUXVlcnlGaWx0ZXJcbi8vIG9ubHkgZmxpcHMgdGhlIGRlZmF1bHQgb2YgYHN5bmNUb1VybEFzSW1wb3J0YW50YCB0byB0cnVlOiBhIGZpbHRlcidzIHJlYXNvblxuLy8gdG8gc3luYyBpcyByZXN0b3Jpbmcgc3RhdGUgZnJvbSB0aGUgVVJMIG9uIHJlZnJlc2gsIHNvIFVSTCBwYXJhbXMgd2luIG92ZXJcbi8vIGBpbml0aWFsVmFsdWVzYCBoZXJlIChwbGFpbiBQcm9Gb3JtIGtlZXBzIHRoZSBvcHBvc2l0ZSBkZWZhdWx0KS5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuY29uc3QgUXVlcnlGaWx0ZXJCYXNlID0gKHByb3BzKSA9PiB7XG4gICAgdmFyIF9hLCBfYjtcbiAgICBjb25zdCB7IGRlZmF1bHRDb2xsYXBzZWQgPSB0cnVlLCBjb2xsYXBzZWQ6IGNvbnRyb2xsZWRDb2xsYXBzZWQsIG9uQ29sbGFwc2UsIGRlZmF1bHRDb2xzTnVtYmVyID0gMywgbGFiZWxXaWR0aCwgc3BsaXQgPSBmYWxzZSwgc2VhcmNoQ29uZmlnLCBzeW5jVG9VcmxBc0ltcG9ydGFudCA9IHRydWUsIGNoaWxkcmVuLCBvbkZpbmlzaEZhaWxlZCwgXG4gICAgLy8gUXVlcnlGaWx0ZXIgYWx3YXlzIHJlbmRlcnMgaXRzIG93biBTZWFyY2gvUmVzZXQvRXhwYW5kIGJ1dHRvbnMuXG4gICAgc3VibWl0dGVyOiBfc3VibWl0dGVyIH0gPSBwcm9wcywgZm9ybVByb3BzID0gX19yZXN0KHByb3BzLCBbXCJkZWZhdWx0Q29sbGFwc2VkXCIsIFwiY29sbGFwc2VkXCIsIFwib25Db2xsYXBzZVwiLCBcImRlZmF1bHRDb2xzTnVtYmVyXCIsIFwibGFiZWxXaWR0aFwiLCBcInNwbGl0XCIsIFwic2VhcmNoQ29uZmlnXCIsIFwic3luY1RvVXJsQXNJbXBvcnRhbnRcIiwgXCJjaGlsZHJlblwiLCBcIm9uRmluaXNoRmFpbGVkXCIsIFwic3VibWl0dGVyXCJdKTtcbiAgICBjb25zdCBbY29sbGFwc2VkLCBzZXRDb2xsYXBzZWRdID0gdXNlQ29udHJvbGxlZFN0YXRlKGRlZmF1bHRDb2xsYXBzZWQsIGNvbnRyb2xsZWRDb2xsYXBzZWQpO1xuICAgIGNvbnN0IGhhbmRsZUNvbGxhcHNlID0gdXNlTWVtb2l6ZWRGbigoKSA9PiB7XG4gICAgICAgIGNvbnN0IG5leHQgPSAhY29sbGFwc2VkO1xuICAgICAgICBzZXRDb2xsYXBzZWQobmV4dCk7XG4gICAgICAgIG9uQ29sbGFwc2UgPT09IG51bGwgfHwgb25Db2xsYXBzZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25Db2xsYXBzZShuZXh0KTtcbiAgICB9KTtcbiAgICAvLyBDb3VudCBjaGlsZHJlbiBhbmQgc3BsaXQgdmlzaWJsZS9oaWRkZW5cbiAgICBjb25zdCBjaGlsZEFycmF5ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGNvbnN0IGFyciA9IFtdO1xuICAgICAgICBSZWFjdC5DaGlsZHJlbi5mb3JFYWNoKGNoaWxkcmVuLCAoY2hpbGQpID0+IHtcbiAgICAgICAgICAgIGlmIChSZWFjdC5pc1ZhbGlkRWxlbWVudChjaGlsZCkpIHtcbiAgICAgICAgICAgICAgICBhcnIucHVzaChjaGlsZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gYXJyO1xuICAgIH0sIFtjaGlsZHJlbl0pO1xuICAgIC8vIEEgY29sbGFwc2VkIChkaXNwbGF5Om5vbmUpIGZpZWxkIGZhaWxpbmcgdmFsaWRhdGlvbiB3b3VsZCBibG9jayBTZWFyY2hcbiAgICAvLyB3aXRoIGFuIElOVklTSUJMRSBlcnJvciDigJQgYXV0by1leHBhbmQgc28gdGhlIHVzZXIgY2FuIHNlZSBhbmQgZml4IGl0LlxuICAgIC8vIERldGVjdGlvbiBpcyBpbnZlcnRlZCBvbiBwdXJwb3NlOiBhbiBlcnJvciB3aG9zZSBuYW1lIGlzIE5PVCBhbW9uZyB0aGVcbiAgICAvLyBWSVNJQkxFIGNoaWxkcmVuJ3MgYG5hbWVgIHByb3BzIG1heSBiZWxvbmcgdG8gYSB3cmFwcGVkL292ZXJmbG93IGZpZWxkXG4gICAgLy8gKGUuZy4gaW5zaWRlIGEgRGVwZW5kZW5jeSksIHNvIGV4cGFuZC4gV29yc3QgY2FzZSB0aGUgYmFyIGV4cGFuZHMgd2hpbGVcbiAgICAvLyB0aGUgZXJyb3Igd2FzIHZpc2libGUg4oCUIGhhcm1sZXNzOyB0aGUgb3Bwb3NpdGUgKGFuIGludmlzaWJsZSBlcnJvcilcbiAgICAvLyBibG9ja3MgdGhlIHVzZXIuXG4gICAgY29uc3QgaGFuZGxlRmluaXNoRmFpbGVkID0gdXNlTWVtb2l6ZWRGbigoZXJyb3JJbmZvKSA9PiB7XG4gICAgICAgIGlmIChjb2xsYXBzZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHZpc2libGVOYW1lcyA9IG5ldyBTZXQoY2hpbGRBcnJheVxuICAgICAgICAgICAgICAgIC5zbGljZSgwLCBkZWZhdWx0Q29sc051bWJlcilcbiAgICAgICAgICAgICAgICAubWFwKChjaGlsZCkgPT4gUmVhY3QuaXNWYWxpZEVsZW1lbnQoY2hpbGQpXG4gICAgICAgICAgICAgICAgPyBjaGlsZC5wcm9wcy5uYW1lXG4gICAgICAgICAgICAgICAgOiB1bmRlZmluZWQpXG4gICAgICAgICAgICAgICAgLmZpbHRlcigobmFtZSkgPT4gbmFtZSAhPT0gdW5kZWZpbmVkKSk7XG4gICAgICAgICAgICBjb25zdCBoYXNIaWRkZW5FcnJvciA9IE9iamVjdC5rZXlzKGVycm9ySW5mby5lcnJvcnMpLnNvbWUoKGVycm9yTmFtZSkgPT4gIXZpc2libGVOYW1lcy5oYXMoZXJyb3JOYW1lKSk7XG4gICAgICAgICAgICBpZiAoaGFzSGlkZGVuRXJyb3IpIHtcbiAgICAgICAgICAgICAgICBzZXRDb2xsYXBzZWQoZmFsc2UpO1xuICAgICAgICAgICAgICAgIG9uQ29sbGFwc2UgPT09IG51bGwgfHwgb25Db2xsYXBzZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25Db2xsYXBzZShmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgb25GaW5pc2hGYWlsZWQgPT09IG51bGwgfHwgb25GaW5pc2hGYWlsZWQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uRmluaXNoRmFpbGVkKGVycm9ySW5mbyk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFzTW9yZSA9IGNoaWxkQXJyYXkubGVuZ3RoID4gZGVmYXVsdENvbHNOdW1iZXI7XG4gICAgY29uc3Qgc2VhcmNoVGV4dCA9IChfYSA9IHNlYXJjaENvbmZpZyA9PT0gbnVsbCB8fCBzZWFyY2hDb25maWcgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNlYXJjaENvbmZpZy5zZWFyY2hUZXh0KSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBERUZBVUxUX1RFWFQuc2VhcmNoO1xuICAgIGNvbnN0IHJlc2V0VGV4dCA9IChfYiA9IHNlYXJjaENvbmZpZyA9PT0gbnVsbCB8fCBzZWFyY2hDb25maWcgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNlYXJjaENvbmZpZy5yZXNldFRleHQpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IERFRkFVTFRfVEVYVC5yZXNldDtcbiAgICBjb25zdCBidXR0b25TaXplID0gc2VhcmNoQ29uZmlnID09PSBudWxsIHx8IHNlYXJjaENvbmZpZyA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2VhcmNoQ29uZmlnLnNpemU7XG4gICAgY29uc3QgbGFiZWxTdHlsZSA9IGxhYmVsV2lkdGggIT09IHVuZGVmaW5lZCAmJiBsYWJlbFdpZHRoICE9PSAnYXV0bydcbiAgICAgICAgPyB7IHdpZHRoOiBsYWJlbFdpZHRoIH1cbiAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIChfanN4KFByb0Zvcm0sIE9iamVjdC5hc3NpZ24oe30sIGZvcm1Qcm9wcywgeyBzeW5jVG9VcmxBc0ltcG9ydGFudDogc3luY1RvVXJsQXNJbXBvcnRhbnQsIGZvcm1Db21wb25lbnRUeXBlOiBcIlF1ZXJ5RmlsdGVyXCIsIG9uRmluaXNoRmFpbGVkOiBoYW5kbGVGaW5pc2hGYWlsZWQsIHN1Ym1pdHRlcjogZmFsc2UsIGNoaWxkcmVuOiBfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygpLCBjaGlsZHJlbjogW2NoaWxkQXJyYXkubWFwKChjaGlsZCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkZGVuQnlDb2xsYXBzZSA9IGNvbGxhcHNlZCAmJiBpbmRleCA+PSBkZWZhdWx0Q29sc051bWJlcjtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChfanN4cyhSZWFjdC5GcmFnbWVudCwgeyBjaGlsZHJlbjogW3NwbGl0ICYmIGluZGV4ID4gMCAmJiAhaGlkZGVuQnlDb2xsYXBzZSAmJiBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdzcGxpdCcpIH0pLCBfanN4KFwiZGl2XCIsIHsgc3R5bGU6IGhpZGRlbkJ5Q29sbGFwc2UgPyBISURERU5fU1RZTEUgOiAobGFiZWxTdHlsZSAhPT0gbnVsbCAmJiBsYWJlbFN0eWxlICE9PSB2b2lkIDAgPyBsYWJlbFN0eWxlIDogQ09OVEVOVFNfU1RZTEUpLCBjaGlsZHJlbjogY2hpbGQgfSldIH0sIGluZGV4KSk7XG4gICAgICAgICAgICAgICAgfSksIF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdhY3Rpb25zJyksIGNoaWxkcmVuOiBbX2pzeChCdXR0b24sIHsgdHlwZTogXCJzdWJtaXRcIiwgY29sb3I6IFwicHJpbWFyeVwiLCBzaXplOiBidXR0b25TaXplLCBjaGlsZHJlbjogc2VhcmNoVGV4dCB9KSwgX2pzeChCdXR0b24sIHsgdHlwZTogXCJyZXNldFwiLCBjb2xvcjogXCJzZWNvbmRhcnlcIiwgc2l6ZTogYnV0dG9uU2l6ZSwgY2hpbGRyZW46IHJlc2V0VGV4dCB9KSwgaGFzTW9yZSAmJiAoX2pzeChCdXR0b24sIHsgdHlwZTogXCJidXR0b25cIiwgdmFyaWFudDogXCJ0ZXh0XCIsIHNpemU6IGJ1dHRvblNpemUsIG9uQ2xpY2s6IGhhbmRsZUNvbGxhcHNlLCBjaGlsZHJlbjogY29sbGFwc2VkID8gREVGQVVMVF9URVhULmV4cGFuZCA6IERFRkFVTFRfVEVYVC5jb2xsYXBzZSB9KSldIH0pXSB9KSB9KSkpO1xufTtcblF1ZXJ5RmlsdGVyQmFzZS5kaXNwbGF5TmFtZSA9ICdRdWVyeUZpbHRlcic7XG4vKiogR2VuZXJpYy1hd2FyZSBleHBvcnQg4oCUIGtlZXBzIGA8UXVlcnlGaWx0ZXI8TXlWYWx1ZXM+IOKApj5gIGZ1bGx5IHR5cGVkLiAqL1xuZXhwb3J0IGNvbnN0IFF1ZXJ5RmlsdGVyID0gbWVtbyhRdWVyeUZpbHRlckJhc2UpO1xuZXhwb3J0IGRlZmF1bHQgUXVlcnlGaWx0ZXI7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
@@ -9,9 +9,9 @@ interface UseOverlayFormOptions {
9
9
  interface UseOverlayFormReturn {
10
10
  mergedOpen: boolean;
11
11
  triggerNode: ReactElement | null;
12
- handleFinish: (values: Record<string, unknown>) => Promise<void | boolean>;
12
+ handleFinish: (values: Record<string, any>) => Promise<void | boolean>;
13
13
  handleHide: () => void;
14
14
  handleShow: () => void;
15
15
  }
16
- export declare function useOverlayForm(options: UseOverlayFormOptions, onFinish?: (values: Record<string, unknown>) => void | boolean | Promise<void | boolean>): UseOverlayFormReturn;
16
+ export declare function useOverlayForm(options: UseOverlayFormOptions, onFinish?: (values: Record<string, any>) => void | boolean | Promise<void | boolean>): UseOverlayFormReturn;
17
17
  export default useOverlayForm;
@@ -125,4 +125,4 @@ export function useOverlayForm(options, onFinish) {
125
125
  };
126
126
  }
127
127
  export default useOverlayForm;
128
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9sYXlvdXRzL3VzZU92ZXJsYXlGb3JtLmpzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vbGF5b3V0cy91c2VPdmVybGF5Rm9ybS50cyJdLCJuYW1lcyI6WyJfX2F3YWl0ZXIiLCJ0aGlzQXJnIiwiX2FyZ3VtZW50cyIsIlAiLCJnZW5lcmF0b3IiLCJhZG9wdCIsInZhbHVlIiwicmVzb2x2ZSIsIlByb21pc2UiLCJyZWplY3QiLCJmdWxmaWxsZWQiLCJzdGVwIiwibmV4dCIsImUiLCJyZWplY3RlZCIsInJlc3VsdCIsImRvbmUiLCJ0aGVuIiwiYXBwbHkiLCJSZWFjdCIsInVzZUVmZmVjdCIsInVzZVJlZiIsInVzZUNvbnRyb2xsZWRTdGF0ZSIsInVzZURlYm91bmNlZENhbGxiYWNrIiwidXNlRXZlbnRDYWxsYmFjayIsInVzZU92ZXJsYXlGb3JtIiwib3B0aW9ucyIsIm9uRmluaXNoIiwiX3RoaXMiLCJjb250cm9sbGVkT3BlbiIsIm9wZW4iLCJvbk9wZW5DaGFuZ2UiLCJ0cmlnZ2VyIiwiX29wdGlvbnMkYXV0b0Nsb3NlIiwiYXV0b0Nsb3NlIiwic3VibWl0VGltZW91dCIsIl91c2VDb250cm9sbGVkU3RhdGUiLCJfdXNlQ29udHJvbGxlZFN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwibWVyZ2VkT3BlbiIsInNldE1lcmdlZE9wZW4iLCJzZXNzaW9uUmVmIiwic2V0T3BlbiIsIm5leHRPcGVuIiwiY3VycmVudCIsIl91c2VEZWJvdW5jZWRDYWxsYmFjayIsInNlc3Npb24iLCJzY2hlZHVsZUNsb3NlIiwicnVuIiwiY2FuY2VsU2NoZWR1bGVkQ2xvc2UiLCJjYW5jZWwiLCJoYW5kbGVTaG93IiwiaGFuZGxlSGlkZSIsImhhbmRsZUZpbmlzaCIsInZhbHVlcyIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJzZW50IiwiYWJydXB0Iiwic3RvcCIsInRyaWdnZXJOb2RlIiwiY2xvbmVFbGVtZW50Iiwib25DbGljayIsIl9hIiwib3JpZ2luYWxPbkNsaWNrIiwicHJvcHMiLCJhcmd1bWVudHMiXSwibWFwcGluZ3MiOiI7O0FBQUEsSUFBSUEsU0FBUyxHQUFJLElBQUksSUFBSSxJQUFJLENBQUNBLFNBQVMsSUFBSyxVQUFVQyxPQUFPLEVBQUVDLFVBQVUsRUFBRUMsQ0FBQyxFQUFFQyxTQUFTLEVBQUU7RUFDckYsU0FBU0MsS0FBS0EsQ0FBQ0MsS0FBSyxFQUFFO0lBQUUsT0FBT0EsS0FBSyxZQUFZSCxDQUFDLEdBQUdHLEtBQUssR0FBRyxJQUFJSCxDQUFDLENBQUMsVUFBVUksT0FBTyxFQUFFO01BQUVBLE9BQU8sQ0FBQ0QsS0FBSyxDQUFDO0lBQUUsQ0FBQyxDQUFDO0VBQUU7RUFDM0csT0FBTyxLQUFLSCxDQUFDLEtBQUtBLENBQUMsR0FBR0ssT0FBTyxDQUFDLEVBQUUsVUFBVUQsT0FBTyxFQUFFRSxNQUFNLEVBQUU7SUFDdkQsU0FBU0MsU0FBU0EsQ0FBQ0osS0FBSyxFQUFFO01BQUUsSUFBSTtRQUFFSyxJQUFJLENBQUNQLFNBQVMsQ0FBQ1EsSUFBSSxDQUFDTixLQUFLLENBQUMsQ0FBQztNQUFFLENBQUMsQ0FBQyxPQUFPTyxDQUFDLEVBQUU7UUFBRUosTUFBTSxDQUFDSSxDQUFDLENBQUM7TUFBRTtJQUFFO0lBQzFGLFNBQVNDLFFBQVFBLENBQUNSLEtBQUssRUFBRTtNQUFFLElBQUk7UUFBRUssSUFBSSxDQUFDUCxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUNFLEtBQUssQ0FBQyxDQUFDO01BQUUsQ0FBQyxDQUFDLE9BQU9PLENBQUMsRUFBRTtRQUFFSixNQUFNLENBQUNJLENBQUMsQ0FBQztNQUFFO0lBQUU7SUFDN0YsU0FBU0YsSUFBSUEsQ0FBQ0ksTUFBTSxFQUFFO01BQUVBLE1BQU0sQ0FBQ0MsSUFBSSxHQUFHVCxPQUFPLENBQUNRLE1BQU0sQ0FBQ1QsS0FBSyxDQUFDLEdBQUdELEtBQUssQ0FBQ1UsTUFB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S0FBQSxDQUFBLEdBQUFBLEVBQUEsQ0FBRUQsT0FBTztNQUMzRSxJQUFJLE9BQU9FLGVBQWUsS0FBSyxVQUFVLEVBQUU7UUFDeENBLGVBQTZDLENBQUFsRCxLQUFBLFNBQUFvRCxTQUFRLENBQUM7TUFDekQ7SUFDRjtFRDNCQSxDQzRCRCxDQUFDLEdBQ0YsSUFBSTtFQUVSLE9BQU87SUFDTC9CLFVBQVUsRUFBVkEsVUFBVTtJQUNWeUIsV0FBVyxFQUFYQSxXQUFXO0lBQ1hYLFlBQVksRUFBWkEsWUFBWTtJQUNaRCxVQUFVLEVBQVZBLFVBQVU7SUFDVkQsVUFBVSxFQUFWQTtFRDVCQSxDQzZCRDtBQUNIO0FBRUEsZUFBZTFCLGNBQWMiLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL2xheW91dHMvdXNlT3ZlcmxheUZvcm0uanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB1c2VDb250cm9sbGVkU3RhdGUgZnJvbSAnQDFtb25leS9ob29rcy91c2VDb250cm9sbGVkU3RhdGUnO1xuaW1wb3J0IHVzZURlYm91bmNlZENhbGxiYWNrIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlRGVib3VuY2VkQ2FsbGJhY2snO1xuaW1wb3J0IHVzZUV2ZW50Q2FsbGJhY2sgZnJvbSAnQDFtb25leS9ob29rcy91c2VFdmVudENhbGxiYWNrJztcbmV4cG9ydCBmdW5jdGlvbiB1c2VPdmVybGF5Rm9ybShvcHRpb25zLCBvbkZpbmlzaCkge1xuICAgIGNvbnN0IHsgb3BlbjogY29udHJvbGxlZE9wZW4sIG9uT3BlbkNoYW5nZSwgdHJpZ2dlciwgYXV0b0Nsb3NlID0gdHJ1ZSwgc3VibWl0VGltZW91dCwgfSA9IG9wdGlvbnM7XG4gICAgLy8gQ29udHJvbGxlZCB3aGVuIGBjb250cm9sbGVkT3BlbmAgaXMgcGFzc2VkLCBpbnRlcm5hbCBvdGhlcndpc2Ug4oCUIGFuZCBhbHdheXNcbiAgICAvLyBmb3J3YXJkIHRoZSBjaGFuZ2UgdG8gYG9uT3BlbkNoYW5nZWAuXG4gICAgY29uc3QgW21lcmdlZE9wZW4sIHNldE1lcmdlZE9wZW5dID0gdXNlQ29udHJvbGxlZFN0YXRlKGZhbHNlLCBjb250cm9sbGVkT3Blbik7XG4gICAgLy8gU2Vzc2lvbiBnZW5lcmF0aW9uIOKAlCBldmVyeSBvcGVuLXN0YXRlIGNoYW5nZSBzdGFydHMgYSBuZXcgc2Vzc2lvbiwgc28gYVxuICAgIC8vIFNUQUxFIGluLWZsaWdodCBzdWJtaXQgKHN0YXJ0ZWQgaW4gYSBwcmV2aW91cyBzZXNzaW9uKSBjYW4ndCBhdXRvLWNsb3NlXG4gICAgLy8gdGhlIG92ZXJsYXkgdGhlIHVzZXIgaGFzIHNpbmNlIGNsb3NlZCBhbmQgcmVvcGVuZWQuXG4gICAgY29uc3Qgc2Vzc2lvblJlZiA9IHVzZVJlZigwKTtcbiAgICBjb25zdCBzZXRPcGVuID0gdXNlRXZlbnRDYWxsYmFjaygobmV4dE9wZW4pID0+IHtcbiAgICAgICAgc2Vzc2lvblJlZi5jdXJyZW50ICs9IDE7XG4gICAgICAgIHNldE1lcmdlZE9wZW4obmV4dE9wZW4pO1xuICAgICAgICBvbk9wZW5DaGFuZ2UgPT09IG51bGwgfHwgb25PcGVuQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbk9wZW5DaGFuZ2UobmV4dE9wZW4pO1xuICAgIH0pO1xuICAgIC8vIERlZmVycmVkIGF1dG8tY2xvc2UgYWZ0ZXIgc3VibWl0LiBUaGUgZmlyZS10aW1lIHNlc3Npb24gY2hlY2sgbWFrZXMgYVxuICAgIC8vIFNUQUxFIHRpbWVyIChzY2hlZHVsZWQgaW4gYSBwcmV2aW91cyBvcGVuL2Nsb3NlIHNlc3Npb24pIGEgbm8tb3A7XG4gICAgLy8gYGNhbmNlbGAgY2xlYXJzIGFueSBwZW5kaW5nIGNsb3NlIGFuZCB0aGUgdGltZXIgYWxzbyBhdXRvLWNhbmNlbHMgb25cbiAgICAvLyB1bm1vdW50LlxuICAgIGNvbnN0IHsgcnVuOiBzY2hlZHVsZUNsb3NlLCBjYW5jZWw6IGNhbmNlbFNjaGVkdWxlZENsb3NlIH0gPSB1c2VEZWJvdW5jZWRDYWxsYmFjaygoc2Vzc2lvbikgPT4ge1xuICAgICAgICBpZiAoc2Vzc2lvbiA9PT0gc2Vzc2lvblJlZi5jdXJyZW50KVxuICAgICAgICAgICAgc2V0T3BlbihmYWxzZSk7XG4gICAgfSwgc3VibWl0VGltZW91dCk7XG4gICAgLy8gQW55IG9wZW4tc3RhdGUgdHJhbnNpdGlvbiDigJQgaW5jbHVkaW5nIENPTlRST0xMRUQgYG9wZW5gIHByb3AgZmxpcHMgdGhhdFxuICAgIC8vIGJ5cGFzcyBzZXRPcGVuIOKAlCBzdGFydHMgYSBuZXcgc2Vzc2lvbiBhbmQgZGlzY2FyZHMgYSBwZW5kaW5nIGNsb3NlLlxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHNlc3Npb25SZWYuY3VycmVudCArPSAxO1xuICAgICAgICBjYW5jZWxTY2hlZHVsZWRDbG9zZSgpO1xuICAgIH0sIFttZXJnZWRPcGVuLCBjYW5jZWxTY2hlZHVsZWRDbG9zZV0pO1xuICAgIGNvbnN0IGhhbmRsZVNob3cgPSB1c2VFdmVudENhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgc2V0T3Blbih0cnVlKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVIaWRlID0gdXNlRXZlbnRDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIGNhbmNlbFNjaGVkdWxlZENsb3NlKCk7XG4gICAgICAgIHNldE9wZW4oZmFsc2UpO1xuICAgIH0pO1xuICAgIC8vIFByb3BhZ2F0ZSB0aGUgY29uc3VtZXIncyByZXR1cm4gdmFsdWUg4oCUIFByb0Zvcm0gZ2F0ZXMgVVJMIHN5bmMgb24gaXQsXG4gICAgLy8gYW5kIGF1dG9DbG9zZSBob25vcnMgaXQgdG9vOiBhbiBleHBsaWNpdCBgZmFsc2VgIG1lYW5zIHRoZSBzdWJtaXQgRkFJTEVELFxuICAgIC8vIHNvIHRoZSBvdmVybGF5IHN0YXlzIG9wZW4gaW5zdGVhZCBvZiBkaXNjYXJkaW5nIHRoZSB1c2VyJ3MgaW5wdXQuXG4gICAgY29uc3QgaGFuZGxlRmluaXNoID0gdXNlRXZlbnRDYWxsYmFjaygodmFsdWVzKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHNlc3Npb24gPSBzZXNzaW9uUmVmLmN1cnJlbnQ7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHlpZWxkIChvbkZpbmlzaCA9PT0gbnVsbCB8fCBvbkZpbmlzaCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25GaW5pc2godmFsdWVzKSk7XG4gICAgICAgIGlmIChhdXRvQ2xvc2UgJiYgcmVzdWx0ICE9PSBmYWxzZSAmJiBzZXNzaW9uID09PSBzZXNzaW9uUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIGlmIChzdWJtaXRUaW1lb3V0ICYmIHN1Ym1pdFRpbWVvdXQgPiAwKSB7XG4gICAgICAgICAgICAgICAgc2NoZWR1bGVDbG9zZShzZXNzaW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHNldE9wZW4oZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSkpO1xuICAgIC8vIENsb25lIHRyaWdnZXIgd2l0aCBvbkNsaWNrIGhhbmRsZXJcbiAgICBjb25zdCB0cmlnZ2VyTm9kZSA9IHRyaWdnZXJcbiAgICAgICAgPyBSZWFjdC5jbG9uZUVsZW1lbnQodHJpZ2dlciwge1xuICAgICAgICAgICAgb25DbGljazogKC4uLmFyZ3MpID0+IHtcbiAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgaGFuZGxlU2hvdygpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG9yaWdpbmFsT25DbGljayA9IChfYSA9IHRyaWdnZXIucHJvcHMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5vbkNsaWNrO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygb3JpZ2luYWxPbkNsaWNrID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgICAgIG9yaWdpbmFsT25DbGljayguLi5hcmdzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KVxuICAgICAgICA6IG51bGw7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgbWVyZ2VkT3BlbixcbiAgICAgICAgdHJpZ2dlck5vZGUsXG4gICAgICAgIGhhbmRsZUZpbmlzaCxcbiAgICAgICAgaGFuZGxlSGlkZSxcbiAgICAgICAgaGFuZGxlU2hvdyxcbiAgICB9O1xufVxuZXhwb3J0IGRlZmF1bHQgdXNlT3ZlcmxheUZvcm07IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
128
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9sYXlvdXRzL3VzZU92ZXJsYXlGb3JtLmpzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vbGF5b3V0cy91c2VPdmVybGF5Rm9ybS50cyJdLCJuYW1lcyI6WyJfX2F3YWl0ZXIiLCJ0aGlzQXJnIiwiX2FyZ3VtZW50cyIsIlAiLCJnZW5lcmF0b3IiLCJhZG9wdCIsInZhbHVlIiwicmVzb2x2ZSIsIlByb21pc2UiLCJyZWplY3QiLCJmdWxmaWxsZWQiLCJzdGVwIiwibmV4dCIsImUiLCJyZWplY3RlZCIsInJlc3VsdCIsImRvbmUiLCJ0aGVuIiwiYXBwbHkiLCJSZWFjdCIsInVzZUVmZmVjdCIsInVzZVJlZiIsInVzZUNvbnRyb2xsZWRTdGF0ZSIsInVzZURlYm91bmNlZENhbGxiYWNrIiwidXNlRXZlbnRDYWxsYmFjayIsInVzZU92ZXJsYXlGb3JtIiwib3B0aW9ucyIsIm9uRmluaXNoIiwiX3RoaXMiLCJjb250cm9sbGVkT3BlbiIsIm9wZW4iLCJvbk9wZW5DaGFuZ2UiLCJ0cmlnZ2VyIiwiX29wdGlvbnMkYXV0b0Nsb3NlIiwiYXV0b0Nsb3NlIiwic3VibWl0VGltZW91dCIsIl91c2VDb250cm9sbGVkU3RhdGUiLCJfdXNlQ29udHJvbGxlZFN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwibWVyZ2VkT3BlbiIsInNldE1lcmdlZE9wZW4iLCJzZXNzaW9uUmVmIiwic2V0T3BlbiIsIm5leHRPcGVuIiwiY3VycmVudCIsIl91c2VEZWJvdW5jZWRDYWxsYmFjayIsInNlc3Npb24iLCJzY2hlZHVsZUNsb3NlIiwicnVuIiwiY2FuY2VsU2NoZWR1bGVkQ2xvc2UiLCJjYW5jZWwiLCJoYW5kbGVTaG93IiwiaGFuZGxlSGlkZSIsImhhbmRsZUZpbmlzaCIsInZhbHVlcyIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJzZW50IiwiYWJydXB0Iiwic3RvcCIsInRyaWdnZXJOb2RlIiwiY2xvbmVFbGVtZW50Iiwib25DbGljayIsIl9hIiwib3JpZ2luYWxPbkNsaWNrIiwicHJvcHMiLCJhcmd1bWVudHMiXSwibWFwcGluZ3MiOiI7O0FBQUEsSUFBSUEsU0FBUyxHQUFJLElBQUksSUFBSSxJQUFJLENBQUNBLFNBQVMsSUFBSyxVQUFVQyxPQUFPLEVBQUVDLFVBQVUsRUFBRUMsQ0FBQyxFQUFFQyxTQUFTLEVBQUU7RUFDckYsU0FBU0MsS0FBS0EsQ0FBQ0MsS0FBSyxFQUFFO0lBQUUsT0FBT0EsS0FBSyxZQUFZSCxDQUFDLEdBQUdHLEtBQUssR0FBRyxJQUFJSCxDQUFDLENBQUMsVUFBVUksT0FBTyxFQUFFO01BQUVBLE9BQU8sQ0FBQ0QsS0FBSyxDQUFDO0lBQUUsQ0FBQyxDQUFDO0VBQUU7RUFDM0csT0FBTyxLQUFLSCxDQUFDLEtBQUtBLENBQUMsR0FBR0ssT0FBTyxDQUFDLEVBQUUsVUFBVUQsT0FBTyxFQUFFRSxNQUFNLEVBQUU7SUFDdkQsU0FBU0MsU0FBU0EsQ0FBQ0osS0FBSyxFQUFFO01BQUUsSUFBSTtRQUFFSyxJQUFJLENBQUNQLFNBQVMsQ0FBQ1EsSUFBSSxDQUFDTixLQUFLLENBQUMsQ0FBQztNQUFFLENBQUMsQ0FBQyxPQUFPTyxDQUFDLEVBQUU7UUFBRUosTUFBTSxDQUFDSSxDQUFDLENBQUM7TUFBRTtJQUFFO0lBQzFGLFNBQVNDLFFBQVFBLENBQUNSLEtBQUssRUFBRTtNQUFFLElBQUk7UUFBRUssSUFBSSxDQUFDUCxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUNFLEtBQUssQ0FBQyxDQUFDO01BQUUsQ0FBQyxDQUFDLE9BQU9PLENBQUMsRUFBRTtRQUFFSixNQUFNLENBQUNJLENBQUMsQ0FBQztNQUFFO0lBQUU7SUFDN0YsU0FBU0YsSUFBSUEsQ0FBQ0ksTUFBTSxFQUFFO01BQUVBLE1BQU0sQ0FBQ0MsSUFBSSxHQUFHVCxPQUFPLENBQUNRLE1BQU0sQ0FBQ1QsS0FBSyxDQUFDLEdBQUdELEtBQUssQ0FBQ1UsTUFB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S0FBQSxDQUFBLEdBQUFBLEVBQUEsQ0FBRUQsT0FBTztNQUN2RSxJQUFJLE9BQU9FLGVBQWUsS0FBSyxVQUFVLEVBQUU7UUFDeENBLGVBQXlDLENBQUFsRCxLQUFBLFNBQUFvRCxTQUFRLENBQUM7TUFDckQ7SUFDRjtFRDNCQSxDQzRCRCxDQUFDLEdBQ0YsSUFBSTtFQUVSLE9BQU87SUFDTC9CLFVBQVUsRUFBVkEsVUFBVTtJQUNWeUIsV0FBVyxFQUFYQSxXQUFXO0lBQ1hYLFlBQVksRUFBWkEsWUFBWTtJQUNaRCxVQUFVLEVBQVZBLFVBQVU7SUFDVkQsVUFBVSxFQUFWQTtFRDVCQSxDQzZCRDtBQUNIO0FBRUEsZUFBZTFCLGNBQWMiLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL2xheW91dHMvdXNlT3ZlcmxheUZvcm0uanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB1c2VDb250cm9sbGVkU3RhdGUgZnJvbSAnQDFtb25leS9ob29rcy91c2VDb250cm9sbGVkU3RhdGUnO1xuaW1wb3J0IHVzZURlYm91bmNlZENhbGxiYWNrIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlRGVib3VuY2VkQ2FsbGJhY2snO1xuaW1wb3J0IHVzZUV2ZW50Q2FsbGJhY2sgZnJvbSAnQDFtb25leS9ob29rcy91c2VFdmVudENhbGxiYWNrJztcbmV4cG9ydCBmdW5jdGlvbiB1c2VPdmVybGF5Rm9ybShvcHRpb25zLCBvbkZpbmlzaCkge1xuICAgIGNvbnN0IHsgb3BlbjogY29udHJvbGxlZE9wZW4sIG9uT3BlbkNoYW5nZSwgdHJpZ2dlciwgYXV0b0Nsb3NlID0gdHJ1ZSwgc3VibWl0VGltZW91dCwgfSA9IG9wdGlvbnM7XG4gICAgLy8gQ29udHJvbGxlZCB3aGVuIGBjb250cm9sbGVkT3BlbmAgaXMgcGFzc2VkLCBpbnRlcm5hbCBvdGhlcndpc2Ug4oCUIGFuZCBhbHdheXNcbiAgICAvLyBmb3J3YXJkIHRoZSBjaGFuZ2UgdG8gYG9uT3BlbkNoYW5nZWAuXG4gICAgY29uc3QgW21lcmdlZE9wZW4sIHNldE1lcmdlZE9wZW5dID0gdXNlQ29udHJvbGxlZFN0YXRlKGZhbHNlLCBjb250cm9sbGVkT3Blbik7XG4gICAgLy8gU2Vzc2lvbiBnZW5lcmF0aW9uIOKAlCBldmVyeSBvcGVuLXN0YXRlIGNoYW5nZSBzdGFydHMgYSBuZXcgc2Vzc2lvbiwgc28gYVxuICAgIC8vIFNUQUxFIGluLWZsaWdodCBzdWJtaXQgKHN0YXJ0ZWQgaW4gYSBwcmV2aW91cyBzZXNzaW9uKSBjYW4ndCBhdXRvLWNsb3NlXG4gICAgLy8gdGhlIG92ZXJsYXkgdGhlIHVzZXIgaGFzIHNpbmNlIGNsb3NlZCBhbmQgcmVvcGVuZWQuXG4gICAgY29uc3Qgc2Vzc2lvblJlZiA9IHVzZVJlZigwKTtcbiAgICBjb25zdCBzZXRPcGVuID0gdXNlRXZlbnRDYWxsYmFjaygobmV4dE9wZW4pID0+IHtcbiAgICAgICAgc2Vzc2lvblJlZi5jdXJyZW50ICs9IDE7XG4gICAgICAgIHNldE1lcmdlZE9wZW4obmV4dE9wZW4pO1xuICAgICAgICBvbk9wZW5DaGFuZ2UgPT09IG51bGwgfHwgb25PcGVuQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbk9wZW5DaGFuZ2UobmV4dE9wZW4pO1xuICAgIH0pO1xuICAgIC8vIERlZmVycmVkIGF1dG8tY2xvc2UgYWZ0ZXIgc3VibWl0LiBUaGUgZmlyZS10aW1lIHNlc3Npb24gY2hlY2sgbWFrZXMgYVxuICAgIC8vIFNUQUxFIHRpbWVyIChzY2hlZHVsZWQgaW4gYSBwcmV2aW91cyBvcGVuL2Nsb3NlIHNlc3Npb24pIGEgbm8tb3A7XG4gICAgLy8gYGNhbmNlbGAgY2xlYXJzIGFueSBwZW5kaW5nIGNsb3NlIGFuZCB0aGUgdGltZXIgYWxzbyBhdXRvLWNhbmNlbHMgb25cbiAgICAvLyB1bm1vdW50LlxuICAgIGNvbnN0IHsgcnVuOiBzY2hlZHVsZUNsb3NlLCBjYW5jZWw6IGNhbmNlbFNjaGVkdWxlZENsb3NlIH0gPSB1c2VEZWJvdW5jZWRDYWxsYmFjaygoc2Vzc2lvbikgPT4ge1xuICAgICAgICBpZiAoc2Vzc2lvbiA9PT0gc2Vzc2lvblJlZi5jdXJyZW50KVxuICAgICAgICAgICAgc2V0T3BlbihmYWxzZSk7XG4gICAgfSwgc3VibWl0VGltZW91dCk7XG4gICAgLy8gQW55IG9wZW4tc3RhdGUgdHJhbnNpdGlvbiDigJQgaW5jbHVkaW5nIENPTlRST0xMRUQgYG9wZW5gIHByb3AgZmxpcHMgdGhhdFxuICAgIC8vIGJ5cGFzcyBzZXRPcGVuIOKAlCBzdGFydHMgYSBuZXcgc2Vzc2lvbiBhbmQgZGlzY2FyZHMgYSBwZW5kaW5nIGNsb3NlLlxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHNlc3Npb25SZWYuY3VycmVudCArPSAxO1xuICAgICAgICBjYW5jZWxTY2hlZHVsZWRDbG9zZSgpO1xuICAgIH0sIFttZXJnZWRPcGVuLCBjYW5jZWxTY2hlZHVsZWRDbG9zZV0pO1xuICAgIGNvbnN0IGhhbmRsZVNob3cgPSB1c2VFdmVudENhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgc2V0T3Blbih0cnVlKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVIaWRlID0gdXNlRXZlbnRDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIGNhbmNlbFNjaGVkdWxlZENsb3NlKCk7XG4gICAgICAgIHNldE9wZW4oZmFsc2UpO1xuICAgIH0pO1xuICAgIC8vIFByb3BhZ2F0ZSB0aGUgY29uc3VtZXIncyByZXR1cm4gdmFsdWUg4oCUIFByb0Zvcm0gZ2F0ZXMgVVJMIHN5bmMgb24gaXQsXG4gICAgLy8gYW5kIGF1dG9DbG9zZSBob25vcnMgaXQgdG9vOiBhbiBleHBsaWNpdCBgZmFsc2VgIG1lYW5zIHRoZSBzdWJtaXQgRkFJTEVELFxuICAgIC8vIHNvIHRoZSBvdmVybGF5IHN0YXlzIG9wZW4gaW5zdGVhZCBvZiBkaXNjYXJkaW5nIHRoZSB1c2VyJ3MgaW5wdXQuXG4gICAgY29uc3QgaGFuZGxlRmluaXNoID0gdXNlRXZlbnRDYWxsYmFjaygodmFsdWVzKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHNlc3Npb24gPSBzZXNzaW9uUmVmLmN1cnJlbnQ7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHlpZWxkIChvbkZpbmlzaCA9PT0gbnVsbCB8fCBvbkZpbmlzaCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25GaW5pc2godmFsdWVzKSk7XG4gICAgICAgIGlmIChhdXRvQ2xvc2UgJiYgcmVzdWx0ICE9PSBmYWxzZSAmJiBzZXNzaW9uID09PSBzZXNzaW9uUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIGlmIChzdWJtaXRUaW1lb3V0ICYmIHN1Ym1pdFRpbWVvdXQgPiAwKSB7XG4gICAgICAgICAgICAgICAgc2NoZWR1bGVDbG9zZShzZXNzaW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHNldE9wZW4oZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSkpO1xuICAgIC8vIENsb25lIHRyaWdnZXIgd2l0aCBvbkNsaWNrIGhhbmRsZXJcbiAgICBjb25zdCB0cmlnZ2VyTm9kZSA9IHRyaWdnZXJcbiAgICAgICAgPyBSZWFjdC5jbG9uZUVsZW1lbnQodHJpZ2dlciwge1xuICAgICAgICAgICAgb25DbGljazogKC4uLmFyZ3MpID0+IHtcbiAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgaGFuZGxlU2hvdygpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG9yaWdpbmFsT25DbGljayA9IChfYSA9IHRyaWdnZXIucHJvcHMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5vbkNsaWNrO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygb3JpZ2luYWxPbkNsaWNrID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgICAgIG9yaWdpbmFsT25DbGljayguLi5hcmdzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KVxuICAgICAgICA6IG51bGw7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgbWVyZ2VkT3BlbixcbiAgICAgICAgdHJpZ2dlck5vZGUsXG4gICAgICAgIGhhbmRsZUZpbmlzaCxcbiAgICAgICAgaGFuZGxlSGlkZSxcbiAgICAgICAgaGFuZGxlU2hvdyxcbiAgICB9O1xufVxuZXhwb3J0IGRlZmF1bHQgdXNlT3ZlcmxheUZvcm07IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
@@ -3,16 +3,24 @@ import type { ButtonProps } from "../Button";
3
3
  import { getNestedValue, setNestedValue } from './core/pathUtils';
4
4
  import type { ProFormDateFormatter, ProFormFieldTransformFn, ProFormValueEnumObj, ProFormValueType } from './interface';
5
5
  export { getNestedValue, setNestedValue };
6
- export declare function stableSerialize(value: unknown): string;
7
- export declare function renderTextReadonly(value: unknown): ReactNode;
8
- export declare function renderBooleanReadonly(value: unknown): ReactNode;
9
- export declare function renderNumericReadonly(value: unknown): ReactNode;
6
+ export declare function stableSerialize(value: any): string;
7
+ export declare function renderTextReadonly(value: any): ReactNode;
8
+ export declare function renderBooleanReadonly(value: any): ReactNode;
9
+ export declare function renderNumericReadonly(value: any): ReactNode;
10
+ /**
11
+ * Find the `label` of the option whose `value` matches. Non-object entries
12
+ * (plain-value options, e.g. CheckboxGroup's shorthand) and missing labels
13
+ * yield undefined — callers fall back to rendering the raw value. Matching is
14
+ * strict first, then by String() (valueEnum keys are always strings while the
15
+ * form value may be a number).
16
+ */
17
+ export declare function findOptionLabel(options: any, value: any): ReactNode | undefined;
10
18
  export declare function resolveWidth(width: 'sm' | 'md' | 'lg' | 'xl' | number): number;
11
19
  export declare function extractButtonProps(config: false | Partial<ButtonProps> | undefined): {
12
20
  disabled: boolean;
13
21
  rest: Partial<ButtonProps>;
14
22
  };
15
- export declare function transformSubmitValues(values: Record<string, unknown>, transforms: Record<string, ProFormFieldTransformFn>): Record<string, unknown>;
23
+ export declare function transformSubmitValues(values: Record<string, any>, transforms: Record<string, ProFormFieldTransformFn>): Record<string, any>;
16
24
  export declare const DATE_FORMAT = "YYYY-MM-DD";
17
25
  export declare const DATE_TIME_FORMAT = "YYYY-MM-DD HH:mm:ss";
18
26
  /** Minimal pattern formatter supporting YYYY / MM / DD / HH / mm / ss tokens. */
@@ -23,8 +31,8 @@ export declare function formatDateByPattern(date: Date, pattern: string): string
23
31
  * `YYYY-MM-DD HH:mm:ss`, everything else `YYYY-MM-DD`. Untouched when the
24
32
  * formatter is `false`. Non-Date values pass through unchanged.
25
33
  */
26
- export declare function formatDateValues(values: Record<string, unknown>, dateFormatter: ProFormDateFormatter, valueTypes: Record<string, ProFormValueType>): Record<string, unknown>;
27
- export declare function omitNilValues(values: Record<string, unknown>): Record<string, unknown>;
34
+ export declare function formatDateValues(values: Record<string, any>, dateFormatter: ProFormDateFormatter, valueTypes: Record<string, ProFormValueType>): Record<string, any>;
35
+ export declare function omitNilValues(values: Record<string, any>): Record<string, any>;
28
36
  export interface ValueEnumOption {
29
37
  label: string;
30
38
  value: string | number;
@@ -1,6 +1,9 @@
1
1
  import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
2
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
3
3
  import _typeof from "@babel/runtime/helpers/esm/typeof";
4
+ function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
5
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
6
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
4
7
  var __rest = this && this.__rest || function (s, e) {
5
8
  var t = {};
6
9
  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
@@ -71,6 +74,37 @@ export function renderNumericReadonly(value) {
71
74
  return String(num);
72
75
  }
73
76
  // ---------------------------------------------------------------------------
77
+ // findOptionLabel — resolve a raw value to its option label for read mode
78
+ // ---------------------------------------------------------------------------
79
+ /**
80
+ * Find the `label` of the option whose `value` matches. Non-object entries
81
+ * (plain-value options, e.g. CheckboxGroup's shorthand) and missing labels
82
+ * yield undefined — callers fall back to rendering the raw value. Matching is
83
+ * strict first, then by String() (valueEnum keys are always strings while the
84
+ * form value may be a number).
85
+ */
86
+ export function findOptionLabel(options, value) {
87
+ if (!Array.isArray(options)) return undefined;
88
+ var _iterator = _createForOfIteratorHelper(options),
89
+ _step;
90
+ try {
91
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
92
+ var option = _step.value;
93
+ if (option === null || _typeof(option) !== 'object' || !('value' in option)) continue;
94
+ var optionValue = option.value,
95
+ label = option.label;
96
+ if (optionValue === value || String(optionValue) === String(value)) {
97
+ return label !== null && label !== void 0 ? label : undefined;
98
+ }
99
+ }
100
+ } catch (err) {
101
+ _iterator.e(err);
102
+ } finally {
103
+ _iterator.f();
104
+ }
105
+ return undefined;
106
+ }
107
+ // ---------------------------------------------------------------------------
74
108
  // resolveWidth — convert named width to px or pass through number
75
109
  // ---------------------------------------------------------------------------
76
110
  export function resolveWidth(width) {
@@ -198,19 +232,33 @@ export function formatDateValues(values, dateFormatter, valueTypes) {
198
232
  return _walk(values, '');
199
233
  }
200
234
  // ---------------------------------------------------------------------------
201
- // omitNilValues — recursively remove null / undefined / '' from object
235
+ // omitNilValues — recursively remove null / undefined keys from objects.
236
+ //
237
+ // Nil means null/undefined ONLY: an empty string is a real value (clearing a
238
+ // text field must reach onFinish so the backend learns about it). Arrays are
239
+ // walked too — their OBJECT items are cleaned — but items themselves are
240
+ // never dropped: removing one would shift list indices.
202
241
  // ---------------------------------------------------------------------------
242
+ function omitNilInArray(items) {
243
+ return items.map(function (item) {
244
+ if (isPlainObject(item)) return omitNilValues(item);
245
+ if (Array.isArray(item)) return omitNilInArray(item);
246
+ return item;
247
+ });
248
+ }
203
249
  export function omitNilValues(values) {
204
250
  var result = {};
205
251
  for (var _i2 = 0, _Object$keys2 = Object.keys(values); _i2 < _Object$keys2.length; _i2++) {
206
252
  var key = _Object$keys2[_i2];
207
253
  var v = values[key];
208
- if (v === null || v === undefined || v === '') continue;
254
+ if (v === null || v === undefined) continue;
209
255
  if (isPlainObject(v)) {
210
256
  var cleaned = omitNilValues(v);
211
257
  if (Object.keys(cleaned).length > 0) {
212
258
  result[key] = cleaned;
213
259
  }
260
+ } else if (Array.isArray(v)) {
261
+ result[key] = omitNilInArray(v);
214
262
  } else {
215
263
  result[key] = v;
216
264
  }
@@ -235,4 +283,4 @@ export function valueEnumToOptions(valueEnum) {
235
283
  };
236
284
  });
237
285
  }
238
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS91dGlscy5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvUHJvRm9ybS91dGlscy50cyJdLCJuYW1lcyI6WyJfX3Jlc3QiLCJzIiwiZSIsInQiLCJwIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImkiLCJsZW5ndGgiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsIldJRFRIX1NJWkVfTUFQIiwiZ2V0TmVzdGVkVmFsdWUiLCJzZXROZXN0ZWRWYWx1ZSIsInNlcmlhbGl6ZVdpdGhTZWVuIiwidmFsdWUiLCJzZWVuIiwiX2EiLCJ1bmRlZmluZWQiLCJTdHJpbmciLCJEYXRlIiwiY29uY2F0IiwiZ2V0VGltZSIsIl90eXBlb2YiLCJKU09OIiwic3RyaW5naWZ5IiwiaGFzIiwiYWRkIiwicmVzdWx0IiwiQXJyYXkiLCJpc0FycmF5IiwibWFwIiwiaXRlbSIsImpvaW4iLCJyZWNvcmQiLCJrZXlzIiwic29ydCIsImsiLCJzdGFibGVTZXJpYWxpemUiLCJXZWFrU2V0IiwicmVuZGVyVGV4dFJlYWRvbmx5IiwicmVuZGVyQm9vbGVhblJlYWRvbmx5IiwicmVuZGVyTnVtZXJpY1JlYWRvbmx5IiwibnVtIiwiTnVtYmVyIiwiaXNOYU4iLCJyZXNvbHZlV2lkdGgiLCJ3aWR0aCIsIm1kIiwiZXh0cmFjdEJ1dHRvblByb3BzIiwiY29uZmlnIiwiZGlzYWJsZWQiLCJyZXN0IiwiX2NvbmZpZyRkaXNhYmxlZCIsImlzUGxhaW5PYmplY3QiLCJ0cmFuc2Zvcm1TdWJtaXRWYWx1ZXMiLCJ2YWx1ZXMiLCJ0cmFuc2Zvcm1zIiwiYXNzaWduIiwiZm9yRWFjaCIsIm5hbWUiLCJ0cmFuc2Zvcm1GbiIsInJhd1ZhbHVlIiwidHJhbnNmb3JtZWQiLCJkb3RJbmRleCIsImxhc3RJbmRleE9mIiwicGFyZW50UGF0aCIsInNsaWNlIiwicGFyZW50IiwiY2hpbGRLZXkiLCJuZXdQYXJlbnQiLCJpbmNsdWRlcyIsIl9kZWZpbmVQcm9wZXJ0eSIsIkRBVEVfRk9STUFUIiwiREFURV9USU1FX0ZPUk1BVCIsImZvcm1hdERhdGVCeVBhdHRlcm4iLCJkYXRlIiwicGF0dGVybiIsInBhZCIsIm4iLCJwYWRTdGFydCIsInJlcGxhY2UiLCJnZXRGdWxsWWVhciIsImdldE1vbnRoIiwiZ2V0RGF0ZSIsImdldEhvdXJzIiwiZ2V0TWludXRlcyIsImdldFNlY29uZHMiLCJmb3JtYXREYXRlVmFsdWVzIiwiZGF0ZUZvcm1hdHRlciIsInZhbHVlVHlwZXMiLCJmb3JtYXRPbmUiLCJwYXRoIiwid2FsayIsImNoYW5nZWQiLCJuZXh0IiwiaW5kZXgiLCJ3YWxrZWQiLCJfaSIsIl9PYmplY3Qka2V5cyIsImtleSIsImNoaWxkIiwib21pdE5pbFZhbHVlcyIsIl9pMiIsIl9PYmplY3Qka2V5czIiLCJ2IiwiY2xlYW5lZCIsInZhbHVlRW51bVRvT3B0aW9ucyIsInZhbHVlRW51bSIsImVudHJpZXMiLCJfcmVmIiwiX3JlZjIiLCJfc2xpY2VkVG9BcnJheSIsImxhYmVsIiwidGV4dCJdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsSUFBSUEsTUFBTSxHQUFJLElBQUksSUFBSSxJQUFJLENBQUNBLE1BQU0sSUFBSyxVQUFVQyxDQUFDLEVBQUVDLENBQUMsRUFBRTtFQUNsRCxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0VBQ1YsS0FBSyxJQUFJQyxDQUFDLElBQUlILENBQUMsRUFBRSxJQUFJSSxNQUFNLENBQUNDLFNBQVMsQ0FBQ0MsY0FBYyxDQUFDQyxJQUFJLENBQUNQLENBQUMsRUFBRUcsQ0FBQyxDQUFDLElBQUlGLENBQUMsQ0FBQ08sT0FBTyxDQUFDTCxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQy9FRCxDQUFDLENBQUNDLENBQUMsQ0FBQyxHQUFHSCxDQUFDLENBQUNHLENBQUMsQ0FBQztFQUNmLElBQUlILENBQUMsSUFBSSxJQUFJLElBQUksT0FBT0ksTUFBTSxDQUFDSyxxQkFB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RSxJQUFBLEVBQWtCO0lBQUEsSUFBQUMsS0FBQSxHQUFBQyxjQUFBLENBQUFGLElBQUE7TUFBaEJWLEdBQUcsR0FBQVcsS0FBQTtNQUFFN0QsTUFBTSxHQUFBNkQsS0FBQTtJQUNoRCxJQUFJLE9BQU83RCxNQUFNLEtBQUssUUFBUSxFQUFFO01BQzlCLE9BQU87UUFBRStELEtBQUssRUFBRS9ELE1BQU07UUFBRW5DLEtBQUssRUFBRXFGO01BQUcsQ0FBRTtJQUN0QztJQUNBLE9BQU87TUFBRWEsS0FBSyxFQUFFL0QsTUFBTSxDQUFDZ0UsSUFBSTtNQUFFbkcsS0FBSyxFQUFFcUYsR0FBRztNQUFFakQsUUFBUSxFQUFFRCxNQUFNLENBQUNDO0lBQVEsQ0FBRTtFQUN0RSxDQUFDLENBQUM7QUFDSiIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vdXRpbHMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBXSURUSF9TSVpFX01BUCB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IGdldE5lc3RlZFZhbHVlLCBzZXROZXN0ZWRWYWx1ZSB9IGZyb20gJy4vY29yZS9wYXRoVXRpbHMnO1xuLy8gUmUtZXhwb3J0ZWQgZm9yIGNvbnN1bWVycyB0aGF0IGltcG9ydCB0aGUgbmVzdGVkLXBhdGggaGVscGVycyBmcm9tIGAuL3V0aWxzYFxuLy8gKFByb0Zvcm1EZXBlbmRlbmN5LCBQcm9Gb3JtTGlzdCkuIENhbm9uaWNhbCBkZWZpbml0aW9ucyBsaXZlIGluIGNvcmUvcGF0aFV0aWxzLlxuZXhwb3J0IHsgZ2V0TmVzdGVkVmFsdWUsIHNldE5lc3RlZFZhbHVlIH07XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHN0YWJsZVNlcmlhbGl6ZSDigJQgZGV0ZXJtaW5pc3RpYyBkZWVwIHNlcmlhbGl6YXRpb24gZm9yIHBhcmFtcyBjb21wYXJpc29uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHNlcmlhbGl6ZVdpdGhTZWVuKHZhbHVlLCBzZWVuKSB7XG4gICAgdmFyIF9hO1xuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKVxuICAgICAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbiAgICAvLyBEYXRlIG11c3QgYmUgc2VyaWFsaXplZCBieSBWQUxVRTogdGhlIGdlbmVyaWMgb2JqZWN0IGJyYW5jaCB3b3VsZCBzZWUgbm9cbiAgICAvLyBlbnVtZXJhYmxlIGtleXMgYW5kIGNvbGxhcHNlIGV2ZXJ5IERhdGUgdG8gJ3t9Jywgc28gYSBwYXJhbXMgb2JqZWN0IHdob3NlXG4gICAgLy8gb25seSBjaGFuZ2UgaXMgYSBkYXRlIHdvdWxkIG5ldmVyIHRyaWdnZXIgYSByZXF1ZXN0IHJlLWZldGNoLlxuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIERhdGUpXG4gICAgICAgIHJldHVybiBgRGF0ZSgke3ZhbHVlLmdldFRpbWUoKX0pYDtcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnb2JqZWN0Jykge1xuICAgICAgICAvLyBKU09OLnN0cmluZ2lmeSB5aWVsZHMgdW5kZWZpbmVkIGZvciBmdW5jdGlvbnMvc3ltYm9scyDigJQgZmFsbCBiYWNrIHRvIGFcbiAgICAgICAgLy8gKHN0aWxsIGRldGVybWluaXN0aWMpIFN0cmluZygpIHNvIHRoZSByZXN1bHQgYWx3YXlzIGNvbmNhdGVuYXRlcy5cbiAgICAgICAgcmV0dXJuIChfYSA9IEpTT04uc3RyaW5naWZ5KHZhbHVlKSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogU3RyaW5nKHZhbHVlKTtcbiAgICB9XG4gICAgLy8gYHNlZW5gIHRyYWNrcyB0aGUgY3VycmVudCBBTkNFU1RPUiBjaGFpbiBvbmx5IChlbnRyaWVzIGFyZSByZW1vdmVkIG9uIHRoZVxuICAgIC8vIHdheSBiYWNrIG91dCksIHNvIHNoYXJlZC1idXQtYWN5Y2xpYyByZWZlcmVuY2VzIHNlcmlhbGl6ZSBub3JtYWxseSBhbmRcbiAgICAvLyBnZW51aW5lIGN5Y2xlcyBzaG9ydC1jaXJjdWl0IGluc3RlYWQgb2Ygb3ZlcmZsb3dpbmcgdGhlIHN0YWNrLlxuICAgIGlmIChzZWVuLmhhcyh2YWx1ZSkpXG4gICAgICAgIHJldHVybiAnXCJbQ2lyY3VsYXJdXCInO1xuICAgIHNlZW4uYWRkKHZhbHVlKTtcbiAgICBsZXQgcmVzdWx0O1xuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICByZXN1bHQgPSAnWycgKyB2YWx1ZS5tYXAoKGl0ZW0pID0+IHNlcmlhbGl6ZVdpdGhTZWVuKGl0ZW0sIHNlZW4pKS5qb2luKCcsJykgKyAnXSc7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBjb25zdCByZWNvcmQgPSB2YWx1ZTtcbiAgICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHJlY29yZCkuc29ydCgpO1xuICAgICAgICByZXN1bHQgPVxuICAgICAgICAgICAgJ3snICtcbiAgICAgICAgICAgICAgICBrZXlzLm1hcCgoaykgPT4gSlNPTi5zdHJpbmdpZnkoaykgKyAnOicgKyBzZXJpYWxpemVXaXRoU2VlbihyZWNvcmRba10sIHNlZW4pKS5qb2luKCcsJykgK1xuICAgICAgICAgICAgICAgICd9JztcbiAgICB9XG4gICAgc2Vlbi5kZWxldGUodmFsdWUpO1xuICAgIHJldHVybiByZXN1bHQ7XG59XG5leHBvcnQgZnVuY3Rpb24gc3RhYmxlU2VyaWFsaXplKHZhbHVlKSB7XG4gICAgcmV0dXJuIHNlcmlhbGl6ZVdpdGhTZWVuKHZhbHVlLCBuZXcgV2Vha1NldCgpKTtcbn1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUmVhZG9ubHkgcmVuZGVyZXJzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJUZXh0UmVhZG9ubHkodmFsdWUpIHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gJycpXG4gICAgICAgIHJldHVybiAnLSc7XG4gICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG59XG5leHBvcnQgZnVuY3Rpb24gcmVuZGVyQm9vbGVhblJlYWRvbmx5KHZhbHVlKSB7XG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpXG4gICAgICAgIHJldHVybiAnLSc7XG4gICAgcmV0dXJuIHZhbHVlID8gJ1llcycgOiAnTm8nO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlck51bWVyaWNSZWFkb25seSh2YWx1ZSkge1xuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSAnJylcbiAgICAgICAgcmV0dXJuICctJztcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJylcbiAgICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gICAgY29uc3QgbnVtID0gTnVtYmVyKHZhbHVlKTtcbiAgICBpZiAoTnVtYmVyLmlzTmFOKG51bSkpXG4gICAgICAgIHJldHVybiAnLSc7XG4gICAgcmV0dXJuIFN0cmluZyhudW0pO1xufVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyByZXNvbHZlV2lkdGgg4oCUIGNvbnZlcnQgbmFtZWQgd2lkdGggdG8gcHggb3IgcGFzcyB0aHJvdWdoIG51bWJlclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVdpZHRoKHdpZHRoKSB7XG4gICAgdmFyIF9hO1xuICAgIGlmICh0eXBlb2Ygd2lkdGggPT09ICdudW1iZXInKVxuICAgICAgICByZXR1cm4gd2lkdGg7XG4gICAgcmV0dXJuIChfYSA9IFdJRFRIX1NJWkVfTUFQW3dpZHRoXSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogV0lEVEhfU0laRV9NQVAubWQ7XG59XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIGV4dHJhY3RCdXR0b25Qcm9wcyDigJQgc2FmZWx5IGV4dHJhY3QgcHJvcHMgZnJvbSBidXR0b24gY29uZmlnXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0QnV0dG9uUHJvcHMoY29uZmlnKSB7XG4gICAgaWYgKGNvbmZpZyA9PT0gZmFsc2UgfHwgY29uZmlnID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIHsgZGlzYWJsZWQ6IGZhbHNlLCByZXN0OiB7fSB9O1xuICAgIH1cbiAgICBjb25zdCB7IGRpc2FibGVkID0gZmFsc2UgfSA9IGNvbmZpZywgcmVzdCA9IF9fcmVzdChjb25maWcsIFtcImRpc2FibGVkXCJdKTtcbiAgICByZXR1cm4geyBkaXNhYmxlZCwgcmVzdCB9O1xufVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyB0cmFuc2Zvcm1TdWJtaXRWYWx1ZXMg4oCUIGFwcGx5IHJlZ2lzdGVyZWQgZmllbGQgdHJhbnNmb3JtcyB0byBmb3JtIHZhbHVlc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBpc1BsYWluT2JqZWN0KHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlICE9PSBudWxsICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkodmFsdWUpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybVN1Ym1pdFZhbHVlcyh2YWx1ZXMsIHRyYW5zZm9ybXMpIHtcbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXModHJhbnNmb3Jtcyk7XG4gICAgaWYgKGtleXMubGVuZ3RoID09PSAwKVxuICAgICAgICByZXR1cm4gdmFsdWVzO1xuICAgIC8vIEFsbCBuZXN0ZWQgd3JpdGVzIGdvIHRocm91Z2ggc2V0TmVzdGVkVmFsdWUgKGNsb25lcyBldmVyeSBvYmplY3QvYXJyYXkgb25cbiAgICAvLyB0aGUgcGF0aCkg4oCUIGB2YWx1ZXNgIGlzIHRoZSBsaXZlIGZvcm0gc3RhdGUgYW5kIG11c3QgbmV2ZXIgYmUgbXV0YXRlZDtcbiAgICAvLyBvbmx5IGByZXN1bHRgIGl0c2VsZiAob3VyIG93biBzaGFsbG93IGNvcHkpIG1heSBiZSB3cml0dGVuIGRpcmVjdGx5LlxuICAgIGxldCByZXN1bHQgPSBPYmplY3QuYXNzaWduKHt9LCB2YWx1ZXMpO1xuICAgIC8vIFByb2Nlc3MgdHJhbnNmb3JtcyBpbiBzb3J0ZWQga2V5IG9yZGVyIGZvciBkZXRlcm1pbmlzbVxuICAgIGtleXMuc29ydCgpLmZvckVhY2goKG5hbWUpID0+IHtcbiAgICAgICAgY29uc3QgdHJhbnNmb3JtRm4gPSB0cmFuc2Zvcm1zW25hbWVdO1xuICAgICAgICBpZiAodHlwZW9mIHRyYW5zZm9ybUZuICE9PSAnZnVuY3Rpb24nKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCByYXdWYWx1ZSA9IGdldE5lc3RlZFZhbHVlKHJlc3VsdCwgbmFtZSk7XG4gICAgICAgIGNvbnN0IHRyYW5zZm9ybWVkID0gdHJhbnNmb3JtRm4ocmF3VmFsdWUsIG5hbWUsIHJlc3VsdCk7XG4gICAgICAgIGlmIChpc1BsYWluT2JqZWN0KHRyYW5zZm9ybWVkKSkge1xuICAgICAgICAgICAgLy8gSWYgdHJhbnNmb3JtIHJldHVybnMgYW4gb2JqZWN0LCBkZWxldGUgb3JpZ2luYWwga2V5IGFuZCBtZXJnZSB0byBwYXJlbnRcbiAgICAgICAgICAgIGNvbnN0IGRvdEluZGV4ID0gbmFtZS5sYXN0SW5kZXhPZignLicpO1xuICAgICAgICAgICAgaWYgKGRvdEluZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgICAgIC8vIFRvcC1sZXZlbCBmaWVsZCDigJQgZGVsZXRlIG9yaWdpbmFsIGFuZCBtZXJnZSBhdCByb290XG4gICAgICAgICAgICAgICAgZGVsZXRlIHJlc3VsdFtuYW1lXTtcbiAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKHJlc3VsdCwgdHJhbnNmb3JtZWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gTmVzdGVkIGZpZWxkIOKAlCByZWJ1aWxkIHRoZSBwYXJlbnQgd2l0aG91dCB0aGUgb3JpZ2luYWwga2V5LCBtZXJnZWRcbiAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnRQYXRoID0gbmFtZS5zbGljZSgwLCBkb3RJbmRleCk7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFyZW50ID0gZ2V0TmVzdGVkVmFsdWUocmVzdWx0LCBwYXJlbnRQYXRoKTtcbiAgICAgICAgICAgICAgICBpZiAoaXNQbGFpbk9iamVjdChwYXJlbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoaWxkS2V5ID0gbmFtZS5zbGljZShkb3RJbmRleCArIDEpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdQYXJlbnQgPSBPYmplY3QuYXNzaWduKHt9LCBwYXJlbnQpO1xuICAgICAgICAgICAgICAgICAgICBkZWxldGUgbmV3UGFyZW50W2NoaWxkS2V5XTtcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihuZXdQYXJlbnQsIHRyYW5zZm9ybWVkKTtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gc2V0TmVzdGVkVmFsdWUocmVzdWx0LCBwYXJlbnRQYXRoLCBuZXdQYXJlbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIC8vIFByaW1pdGl2ZSB2YWx1ZSDigJQgcmVwbGFjZSBhdCB0aGUgKHBvc3NpYmx5IG5lc3RlZCkgcGF0aFxuICAgICAgICAgICAgcmVzdWx0ID0gbmFtZS5pbmNsdWRlcygnLicpXG4gICAgICAgICAgICAgICAgPyBzZXROZXN0ZWRWYWx1ZShyZXN1bHQsIG5hbWUsIHRyYW5zZm9ybWVkKVxuICAgICAgICAgICAgICAgIDogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCByZXN1bHQpLCB7IFtuYW1lXTogdHJhbnNmb3JtZWQgfSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0O1xufVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBEYXRlIGZvcm1hdHRpbmcgKGZvcm0tbGV2ZWwgZGF0ZUZvcm1hdHRlciwgZGVwZW5kZW5jeS1mcmVlKVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5leHBvcnQgY29uc3QgREFURV9GT1JNQVQgPSAnWVlZWS1NTS1ERCc7XG5leHBvcnQgY29uc3QgREFURV9USU1FX0ZPUk1BVCA9ICdZWVlZLU1NLUREIEhIOm1tOnNzJztcbi8qKiBNaW5pbWFsIHBhdHRlcm4gZm9ybWF0dGVyIHN1cHBvcnRpbmcgWVlZWSAvIE1NIC8gREQgLyBISCAvIG1tIC8gc3MgdG9rZW5zLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdERhdGVCeVBhdHRlcm4oZGF0ZSwgcGF0dGVybikge1xuICAgIGNvbnN0IHBhZCA9IChuKSA9PiBTdHJpbmcobikucGFkU3RhcnQoMiwgJzAnKTtcbiAgICByZXR1cm4gcGF0dGVyblxuICAgICAgICAucmVwbGFjZSgvWVlZWS9nLCBTdHJpbmcoZGF0ZS5nZXRGdWxsWWVhcigpKSlcbiAgICAgICAgLnJlcGxhY2UoL01NL2csIHBhZChkYXRlLmdldE1vbnRoKCkgKyAxKSlcbiAgICAgICAgLnJlcGxhY2UoL0REL2csIHBhZChkYXRlLmdldERhdGUoKSkpXG4gICAgICAgIC5yZXBsYWNlKC9ISC9nLCBwYWQoZGF0ZS5nZXRIb3VycygpKSlcbiAgICAgICAgLnJlcGxhY2UoL21tL2csIHBhZChkYXRlLmdldE1pbnV0ZXMoKSkpXG4gICAgICAgIC5yZXBsYWNlKC9zcy9nLCBwYWQoZGF0ZS5nZXRTZWNvbmRzKCkpKTtcbn1cbi8qKlxuICogUmVjdXJzaXZlbHkgc2VyaWFsaXplIGV2ZXJ5IGBEYXRlYCBpbiBgdmFsdWVzYCBhY2NvcmRpbmcgdG8gYGRhdGVGb3JtYXR0ZXJgLlxuICogV2l0aCBgJ3N0cmluZydgLCBmaWVsZHMgcmVnaXN0ZXJlZCBhcyBgdmFsdWVUeXBlOiAnZGF0ZVRpbWUnYCB1c2VcbiAqIGBZWVlZLU1NLUREIEhIOm1tOnNzYCwgZXZlcnl0aGluZyBlbHNlIGBZWVlZLU1NLUREYC4gVW50b3VjaGVkIHdoZW4gdGhlXG4gKiBmb3JtYXR0ZXIgaXMgYGZhbHNlYC4gTm9uLURhdGUgdmFsdWVzIHBhc3MgdGhyb3VnaCB1bmNoYW5nZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXREYXRlVmFsdWVzKHZhbHVlcywgZGF0ZUZvcm1hdHRlciwgdmFsdWVUeXBlcykge1xuICAgIGlmIChkYXRlRm9ybWF0dGVyID09PSBmYWxzZSlcbiAgICAgICAgcmV0dXJuIHZhbHVlcztcbiAgICBjb25zdCBmb3JtYXRPbmUgPSAoZGF0ZSwgcGF0aCkgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIGRhdGVGb3JtYXR0ZXIgPT09ICdmdW5jdGlvbicpXG4gICAgICAgICAgICByZXR1cm4gZGF0ZUZvcm1hdHRlcihkYXRlLCBwYXRoKTtcbiAgICAgICAgaWYgKGRhdGVGb3JtYXR0ZXIgPT09ICdudW1iZXInKVxuICAgICAgICAgICAgcmV0dXJuIGRhdGUuZ2V0VGltZSgpO1xuICAgICAgICBpZiAoZGF0ZUZvcm1hdHRlciA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhdHRlcm4gPSB2YWx1ZVR5cGVzW3BhdGhdID09PSAnZGF0ZVRpbWUnID8gREFURV9USU1FX0ZPUk1BVCA6IERBVEVfRk9STUFUO1xuICAgICAgICAgICAgcmV0dXJuIGZvcm1hdERhdGVCeVBhdHRlcm4oZGF0ZSwgcGF0dGVybik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZvcm1hdERhdGVCeVBhdHRlcm4oZGF0ZSwgZGF0ZUZvcm1hdHRlcik7XG4gICAgfTtcbiAgICBjb25zdCB3YWxrID0gKHZhbHVlLCBwYXRoKSA9PiB7XG4gICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIERhdGUpXG4gICAgICAgICAgICByZXR1cm4gZm9ybWF0T25lKHZhbHVlLCBwYXRoKTtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICBsZXQgY2hhbmdlZCA9IGZhbHNlO1xuICAgICAgICAgICAgY29uc3QgbmV4dCA9IHZhbHVlLm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB3YWxrZWQgPSB3YWxrKGl0ZW0sIHBhdGggPyBgJHtwYXRofS4ke2luZGV4fWAgOiBTdHJpbmcoaW5kZXgpKTtcbiAgICAgICAgICAgICAgICBpZiAod2Fsa2VkICE9PSBpdGVtKVxuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICByZXR1cm4gd2Fsa2VkO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gY2hhbmdlZCA/IG5leHQgOiB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNQbGFpbk9iamVjdCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIGxldCBjaGFuZ2VkID0gZmFsc2U7XG4gICAgICAgICAgICBjb25zdCBuZXh0ID0ge307XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGlsZCA9IHZhbHVlW2tleV07XG4gICAgICAgICAgICAgICAgY29uc3Qgd2Fsa2VkID0gd2FsayhjaGlsZCwgcGF0aCA/IGAke3BhdGh9LiR7a2V5fWAgOiBrZXkpO1xuICAgICAgICAgICAgICAgIGlmICh3YWxrZWQgIT09IGNoaWxkKVxuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBuZXh0W2tleV0gPSB3YWxrZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gY2hhbmdlZCA/IG5leHQgOiB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfTtcbiAgICByZXR1cm4gd2Fsayh2YWx1ZXMsICcnKTtcbn1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gb21pdE5pbFZhbHVlcyDigJQgcmVjdXJzaXZlbHkgcmVtb3ZlIG51bGwgLyB1bmRlZmluZWQgLyAnJyBmcm9tIG9iamVjdFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5leHBvcnQgZnVuY3Rpb24gb21pdE5pbFZhbHVlcyh2YWx1ZXMpIHtcbiAgICBjb25zdCByZXN1bHQgPSB7fTtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyh2YWx1ZXMpKSB7XG4gICAgICAgIGNvbnN0IHYgPSB2YWx1ZXNba2V5XTtcbiAgICAgICAgaWYgKHYgPT09IG51bGwgfHwgdiA9PT0gdW5kZWZpbmVkIHx8IHYgPT09ICcnKVxuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIGlmIChpc1BsYWluT2JqZWN0KHYpKSB7XG4gICAgICAgICAgICBjb25zdCBjbGVhbmVkID0gb21pdE5pbFZhbHVlcyh2KTtcbiAgICAgICAgICAgIGlmIChPYmplY3Qua2V5cyhjbGVhbmVkKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0W2tleV0gPSBjbGVhbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmVzdWx0W2tleV0gPSB2O1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59XG5leHBvcnQgZnVuY3Rpb24gdmFsdWVFbnVtVG9PcHRpb25zKHZhbHVlRW51bSkge1xuICAgIHJldHVybiBPYmplY3QuZW50cmllcyh2YWx1ZUVudW0pLm1hcCgoW2tleSwgY29uZmlnXSkgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIGNvbmZpZyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHJldHVybiB7IGxhYmVsOiBjb25maWcsIHZhbHVlOiBrZXkgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBsYWJlbDogY29uZmlnLnRleHQsIHZhbHVlOiBrZXksIGRpc2FibGVkOiBjb25maWcuZGlzYWJsZWQgfTtcbiAgICB9KTtcbn0iLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
286
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS91dGlscy5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvUHJvRm9ybS91dGlscy50cyJdLCJuYW1lcyI6WyJfX3Jlc3QiLCJzIiwiZSIsInQiLCJwIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImkiLCJsZW5ndGgiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsIldJRFRIX1NJWkVfTUFQIiwiZ2V0TmVzdGVkVmFsdWUiLCJzZXROZXN0ZWRWYWx1ZSIsInNlcmlhbGl6ZVdpdGhTZWVuIiwidmFsdWUiLCJzZWVuIiwiX2EiLCJ1bmRlZmluZWQiLCJTdHJpbmciLCJEYXRlIiwiY29uY2F0IiwiZ2V0VGltZSIsIl90eXBlb2YiLCJKU09OIiwic3RyaW5naWZ5IiwiaGFzIiwiYWRkIiwicmVzdWx0IiwiQXJyYXkiLCJpc0FycmF5IiwibWFwIiwiaXRlbSIsImpvaW4iLCJyZWNvcmQiLCJrZXlzIiwic29ydCIsImsiLCJzdGFibGVTZXJpYWxpemUiLCJXZWFrU2V0IiwicmVuZGVyVGV4dFJlYWRvbmx5IiwicmVuZGVyQm9vbGVhblJlYWRvbmx5IiwicmVuZGVyTnVtZXJpY1JlYWRvbmx5IiwibnVtIiwiTnVtYmVyIiwiaXNOYU4iLCJmaW5kT3B0aW9uTGFiZWwiLCJvcHRpb25zIiwiX2l0ZXJhdG9yIiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCJfc3RlcCIsIm4iLCJkb25lIiwib3B0aW9uIiwib3B0aW9uVmFsdWUiLCJsYWJlbCIsImVyciIsImYiLCJyZXNvbHZlV2lkdGgiLCJ3aWR0aCIsIm1kIiwiZXh0cmFjdEJ1dHRvblByb3BzIiwiY29uZmlnIiwiZGlzYWJsZWQiLCJyZXN0IiwiX2NvbmZpZyRkaXNhYmxlZCIsImlzUGxhaW5PYmplY3QiLCJ0cmFuc2Zvcm1TdWJtaXRWYWx1ZXMiLCJ2YWx1ZXMiLCJ0cmFuc2Zvcm1zIiwiYXNzaWduIiwiZm9yRWFjaCIsIm5hbWUiLCJ0cmFuc2Zvcm1GbiIsInJhd1ZhbHVlIiwidHJhbnNmb3JtZWQiLCJkb3RJbmRleCIsImxhc3RJbmRleE9mIiwicGFyZW50UGF0aCIsInNsaWNlIiwicGFyZW50IiwiY2hpbGRLZXkiLCJuZXdQYXJlbnQiLCJpbmNsdWRlcyIsIl9kZWZpbmVQcm9wZXJ0eSIsIkRBVEVfRk9STUFUIiwiREFURV9USU1FX0ZPUk1BVCIsImZvcm1hdERhdGVCeVBhdHRlcm4iLCJkYXRlIiwicGF0dGVybiIsInBhZCIsInBhZFN0YXJ0IiwicmVwbGFjZSIsImdldEZ1bGxZZWFyIiwiZ2V0TW9udGgiLCJnZXREYXRlIiwiZ2V0SG91cnMiLCJnZXRNaW51dGVzIiwiZ2V0U2Vjb25kcyIsImZvcm1hdERhdGVWYWx1ZXMiLCJkYXRlRm9ybWF0dGVyIiwidmFsdWVUeXBlcyIsImZvcm1hdE9uZSIsInBhdGgiLCJ3YWxrIiwiY2hhbmdlZCIsIm5leHQiLCJpbmRleCIsIndhbGtlZCIsIl9pIiwiX09iamVjdCRrZXlzIiwia2V5IiwiY2hpbGQiLCJvbWl0TmlsSW5BcnJheSIsIml0ZW1zIiwib21pdE5pbFZhbHVlcyIsIl9pMiIsIl9PYmplY3Qka2V5czIiLCJ2IiwiY2xlYW5lZCIsInZhbHVlRW51bVRvT3B0aW9ucyIsInZhbHVlRW51bSIsImVudHJpZXMiLCJfcmVmIiwiX3JlZjIiLCJfc2xpY2VkVG9BcnJheSIsInRleHQiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUlBLE1BQU0sR0FBSSxJQUFJLElBQUksSUFBSSxDQUFDQSxNQUFNLElBQUssVUFBVUMsQ0FBQyxFQUFFQyxDQUFDLEVBQUU7RUFDbEQsSUFBSUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztFQUNWLEtBQUssSUFBSUMsQ0FBQyxJQUFJSCxDQUFDLEVBQUUsSUFBSUksTUFBTSxDQUFDQyxTQUFTLENBQUNDLGNBQWMsQ0FBQ0MsSUFBSSxDQUFDUCxDQUFDLEVBQUVHLENBQUMsQ0FBQyxJQUFJRixDQUFD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O01BQ2hDLElBQUlwSCxNQUFNLENBQUNpQyxJQUFJLENBQUNvRixPQUFPLENBQUMsQ0FBQzlHLE1BQU0sR0FBRyxDQUFDLEVBQUU7UUFDbkNtQixNQUFNLENBQUNtRixHQUFHLENBQUMsR0FBR1EsT0FBTztNQUN2QjtJQUNGLENBQUMsTUFBTSxJQUFJMUYsS0FBSyxDQUFDQyxPQUFPLENBQUN3RixDQUFDLENBQUMsRUFBRTtNQUMzQjFGLE1BQU0sQ0FBQ21GLEdBQUcsQ0FBQyxHQUFHRSxjQUFjLENBQUNLLENBQUMsQ0FBQztJQUNqQyxDQUFDLE1BQU07TUFDTDFGLE1BQU0sQ0FBQ21GLEdBQUcsQ0FBQyxHQUFHTyxDQUFDO0lBQ2pCO0VBQ0Y7RUFDQSxPQUFPMUYsTUFBTTtBQUNmO0FBV0EsT0FBTSxTQUFVNEYsa0JBQWtCQSxDQUNoQ0MsU0FBOEIsRUFBQTtFQUU5QixPQUFPdkgsTUFBTSxDQUFDd0gsT0FBTyxDQUFDRCxTQUFTLENBQUMsQ0FBQzFGLEdBQUcsQ0FBQyxVQUFBNEYsSUFBQSxFQUFrQjtJQUFBLElBQUFDLEtBQUEsR0FBQUMsY0FBQSxDQUFBRixJQUFBO01BQWhCWixHQUFHLEdBQUFhLEtBQUE7TUFBRTlELE1BQU0sR0FBQThELEtBQUE7SUFDaEQsSUFBSSxPQUFPOUQsTUFBTSxLQUFLLFFBQVEsRUFBRTtNQUM5QixPQUFPO1FBQUVQLEtBQUssRUFBRU8sTUFBTTtRQUFFL0MsS0FBSyxFQUFFZ0c7TUFBRyxDQUFFO0lBQ3RDO0lBQ0EsT0FBTztNQUFFeEQsS0FBSyxFQUFFTyxNQUFNLENBQUNnRSxJQUFJO01BQUUvRyxLQUFLLEVBQUVnRyxHQUFHO01BQUVoRCxRQUFRLEVBQUVELE1BQU0sQ0FBQ0M7SUFBUSxDQUFFO0VBQ3RFLENBQUMsQ0FBQztBQUNKIiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvRm9ybS91dGlscy5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IFdJRFRIX1NJWkVfTUFQIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgZ2V0TmVzdGVkVmFsdWUsIHNldE5lc3RlZFZhbHVlIH0gZnJvbSAnLi9jb3JlL3BhdGhVdGlscyc7XG4vLyBSZS1leHBvcnRlZCBmb3IgY29uc3VtZXJzIHRoYXQgaW1wb3J0IHRoZSBuZXN0ZWQtcGF0aCBoZWxwZXJzIGZyb20gYC4vdXRpbHNgXG4vLyAoUHJvRm9ybURlcGVuZGVuY3ksIFByb0Zvcm1MaXN0KS4gQ2Fub25pY2FsIGRlZmluaXRpb25zIGxpdmUgaW4gY29yZS9wYXRoVXRpbHMuXG5leHBvcnQgeyBnZXROZXN0ZWRWYWx1ZSwgc2V0TmVzdGVkVmFsdWUgfTtcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gc3RhYmxlU2VyaWFsaXplIOKAlCBkZXRlcm1pbmlzdGljIGRlZXAgc2VyaWFsaXphdGlvbiBmb3IgcGFyYW1zIGNvbXBhcmlzb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gc2VyaWFsaXplV2l0aFNlZW4odmFsdWUsIHNlZW4pIHtcbiAgICB2YXIgX2E7XG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpXG4gICAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgIC8vIERhdGUgbXVzdCBiZSBzZXJpYWxpemVkIGJ5IFZBTFVFOiB0aGUgZ2VuZXJpYyBvYmplY3QgYnJhbmNoIHdvdWxkIHNlZSBub1xuICAgIC8vIGVudW1lcmFibGUga2V5cyBhbmQgY29sbGFwc2UgZXZlcnkgRGF0ZSB0byAne30nLCBzbyBhIHBhcmFtcyBvYmplY3Qgd2hvc2VcbiAgICAvLyBvbmx5IGNoYW5nZSBpcyBhIGRhdGUgd291bGQgbmV2ZXIgdHJpZ2dlciBhIHJlcXVlc3QgcmUtZmV0Y2guXG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSlcbiAgICAgICAgcmV0dXJuIGBEYXRlKCR7dmFsdWUuZ2V0VGltZSgpfSlgO1xuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdvYmplY3QnKSB7XG4gICAgICAgIC8vIEpTT04uc3RyaW5naWZ5IHlpZWxkcyB1bmRlZmluZWQgZm9yIGZ1bmN0aW9ucy9zeW1ib2xzIOKAlCBmYWxsIGJhY2sgdG8gYVxuICAgICAgICAvLyAoc3RpbGwgZGV0ZXJtaW5pc3RpYykgU3RyaW5nKCkgc28gdGhlIHJlc3VsdCBhbHdheXMgY29uY2F0ZW5hdGVzLlxuICAgICAgICByZXR1cm4gKF9hID0gSlNPTi5zdHJpbmdpZnkodmFsdWUpKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBTdHJpbmcodmFsdWUpO1xuICAgIH1cbiAgICAvLyBgc2VlbmAgdHJhY2tzIHRoZSBjdXJyZW50IEFOQ0VTVE9SIGNoYWluIG9ubHkgKGVudHJpZXMgYXJlIHJlbW92ZWQgb24gdGhlXG4gICAgLy8gd2F5IGJhY2sgb3V0KSwgc28gc2hhcmVkLWJ1dC1hY3ljbGljIHJlZmVyZW5jZXMgc2VyaWFsaXplIG5vcm1hbGx5IGFuZFxuICAgIC8vIGdlbnVpbmUgY3ljbGVzIHNob3J0LWNpcmN1aXQgaW5zdGVhZCBvZiBvdmVyZmxvd2luZyB0aGUgc3RhY2suXG4gICAgaWYgKHNlZW4uaGFzKHZhbHVlKSlcbiAgICAgICAgcmV0dXJuICdcIltDaXJjdWxhcl1cIic7XG4gICAgc2Vlbi5hZGQodmFsdWUpO1xuICAgIGxldCByZXN1bHQ7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgIHJlc3VsdCA9ICdbJyArIHZhbHVlLm1hcCgoaXRlbSkgPT4gc2VyaWFsaXplV2l0aFNlZW4oaXRlbSwgc2VlbikpLmpvaW4oJywnKSArICddJztcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGNvbnN0IHJlY29yZCA9IHZhbHVlO1xuICAgICAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMocmVjb3JkKS5zb3J0KCk7XG4gICAgICAgIHJlc3VsdCA9XG4gICAgICAgICAgICAneycgK1xuICAgICAgICAgICAgICAgIGtleXMubWFwKChrKSA9PiBKU09OLnN0cmluZ2lmeShrKSArICc6JyArIHNlcmlhbGl6ZVdpdGhTZWVuKHJlY29yZFtrXSwgc2VlbikpLmpvaW4oJywnKSArXG4gICAgICAgICAgICAgICAgJ30nO1xuICAgIH1cbiAgICBzZWVuLmRlbGV0ZSh2YWx1ZSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cbmV4cG9ydCBmdW5jdGlvbiBzdGFibGVTZXJpYWxpemUodmFsdWUpIHtcbiAgICByZXR1cm4gc2VyaWFsaXplV2l0aFNlZW4odmFsdWUsIG5ldyBXZWFrU2V0KCkpO1xufVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBSZWFkb25seSByZW5kZXJlcnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlclRleHRSZWFkb25seSh2YWx1ZSkge1xuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSAnJylcbiAgICAgICAgcmV0dXJuICctJztcbiAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJCb29sZWFuUmVhZG9ubHkodmFsdWUpIHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZClcbiAgICAgICAgcmV0dXJuICctJztcbiAgICByZXR1cm4gdmFsdWUgPyAnWWVzJyA6ICdObyc7XG59XG5leHBvcnQgZnVuY3Rpb24gcmVuZGVyTnVtZXJpY1JlYWRvbmx5KHZhbHVlKSB7XG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09ICcnKVxuICAgICAgICByZXR1cm4gJy0nO1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKVxuICAgICAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbiAgICBjb25zdCBudW0gPSBOdW1iZXIodmFsdWUpO1xuICAgIGlmIChOdW1iZXIuaXNOYU4obnVtKSlcbiAgICAgICAgcmV0dXJuICctJztcbiAgICByZXR1cm4gU3RyaW5nKG51bSk7XG59XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIGZpbmRPcHRpb25MYWJlbCDigJQgcmVzb2x2ZSBhIHJhdyB2YWx1ZSB0byBpdHMgb3B0aW9uIGxhYmVsIGZvciByZWFkIG1vZGVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLyoqXG4gKiBGaW5kIHRoZSBgbGFiZWxgIG9mIHRoZSBvcHRpb24gd2hvc2UgYHZhbHVlYCBtYXRjaGVzLiBOb24tb2JqZWN0IGVudHJpZXNcbiAqIChwbGFpbi12YWx1ZSBvcHRpb25zLCBlLmcuIENoZWNrYm94R3JvdXAncyBzaG9ydGhhbmQpIGFuZCBtaXNzaW5nIGxhYmVsc1xuICogeWllbGQgdW5kZWZpbmVkIOKAlCBjYWxsZXJzIGZhbGwgYmFjayB0byByZW5kZXJpbmcgdGhlIHJhdyB2YWx1ZS4gTWF0Y2hpbmcgaXNcbiAqIHN0cmljdCBmaXJzdCwgdGhlbiBieSBTdHJpbmcoKSAodmFsdWVFbnVtIGtleXMgYXJlIGFsd2F5cyBzdHJpbmdzIHdoaWxlIHRoZVxuICogZm9ybSB2YWx1ZSBtYXkgYmUgYSBudW1iZXIpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZE9wdGlvbkxhYmVsKG9wdGlvbnMsIHZhbHVlKSB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KG9wdGlvbnMpKVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGZvciAoY29uc3Qgb3B0aW9uIG9mIG9wdGlvbnMpIHtcbiAgICAgICAgaWYgKG9wdGlvbiA9PT0gbnVsbCB8fCB0eXBlb2Ygb3B0aW9uICE9PSAnb2JqZWN0JyB8fCAhKCd2YWx1ZScgaW4gb3B0aW9uKSlcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjb25zdCB7IHZhbHVlOiBvcHRpb25WYWx1ZSwgbGFiZWwgfSA9IG9wdGlvbjtcbiAgICAgICAgaWYgKG9wdGlvblZhbHVlID09PSB2YWx1ZSB8fCBTdHJpbmcob3B0aW9uVmFsdWUpID09PSBTdHJpbmcodmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gbGFiZWwgIT09IG51bGwgJiYgbGFiZWwgIT09IHZvaWQgMCA/IGxhYmVsIDogdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG59XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHJlc29sdmVXaWR0aCDigJQgY29udmVydCBuYW1lZCB3aWR0aCB0byBweCBvciBwYXNzIHRocm91Z2ggbnVtYmVyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlV2lkdGgod2lkdGgpIHtcbiAgICB2YXIgX2E7XG4gICAgaWYgKHR5cGVvZiB3aWR0aCA9PT0gJ251bWJlcicpXG4gICAgICAgIHJldHVybiB3aWR0aDtcbiAgICByZXR1cm4gKF9hID0gV0lEVEhfU0laRV9NQVBbd2lkdGhdKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBXSURUSF9TSVpFX01BUC5tZDtcbn1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gZXh0cmFjdEJ1dHRvblByb3BzIOKAlCBzYWZlbHkgZXh0cmFjdCBwcm9wcyBmcm9tIGJ1dHRvbiBjb25maWdcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RCdXR0b25Qcm9wcyhjb25maWcpIHtcbiAgICBpZiAoY29uZmlnID09PSBmYWxzZSB8fCBjb25maWcgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4geyBkaXNhYmxlZDogZmFsc2UsIHJlc3Q6IHt9IH07XG4gICAgfVxuICAgIGNvbnN0IHsgZGlzYWJsZWQgPSBmYWxzZSB9ID0gY29uZmlnLCByZXN0ID0gX19yZXN0KGNvbmZpZywgW1wiZGlzYWJsZWRcIl0pO1xuICAgIHJldHVybiB7IGRpc2FibGVkLCByZXN0IH07XG59XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHRyYW5zZm9ybVN1Ym1pdFZhbHVlcyDigJQgYXBwbHkgcmVnaXN0ZXJlZCBmaWVsZCB0cmFuc2Zvcm1zIHRvIGZvcm0gdmFsdWVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIGlzUGxhaW5PYmplY3QodmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUgIT09IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheSh2YWx1ZSk7XG59XG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtU3VibWl0VmFsdWVzKHZhbHVlcywgdHJhbnNmb3Jtcykge1xuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyh0cmFuc2Zvcm1zKTtcbiAgICBpZiAoa2V5cy5sZW5ndGggPT09IDApXG4gICAgICAgIHJldHVybiB2YWx1ZXM7XG4gICAgLy8gQWxsIG5lc3RlZCB3cml0ZXMgZ28gdGhyb3VnaCBzZXROZXN0ZWRWYWx1ZSAoY2xvbmVzIGV2ZXJ5IG9iamVjdC9hcnJheSBvblxuICAgIC8vIHRoZSBwYXRoKSDigJQgYHZhbHVlc2AgaXMgdGhlIGxpdmUgZm9ybSBzdGF0ZSBhbmQgbXVzdCBuZXZlciBiZSBtdXRhdGVkO1xuICAgIC8vIG9ubHkgYHJlc3VsdGAgaXRzZWxmIChvdXIgb3duIHNoYWxsb3cgY29weSkgbWF5IGJlIHdyaXR0ZW4gZGlyZWN0bHkuXG4gICAgbGV0IHJlc3VsdCA9IE9iamVjdC5hc3NpZ24oe30sIHZhbHVlcyk7XG4gICAgLy8gUHJvY2VzcyB0cmFuc2Zvcm1zIGluIHNvcnRlZCBrZXkgb3JkZXIgZm9yIGRldGVybWluaXNtXG4gICAga2V5cy5zb3J0KCkuZm9yRWFjaCgobmFtZSkgPT4ge1xuICAgICAgICBjb25zdCB0cmFuc2Zvcm1GbiA9IHRyYW5zZm9ybXNbbmFtZV07XG4gICAgICAgIGlmICh0eXBlb2YgdHJhbnNmb3JtRm4gIT09ICdmdW5jdGlvbicpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IHJhd1ZhbHVlID0gZ2V0TmVzdGVkVmFsdWUocmVzdWx0LCBuYW1lKTtcbiAgICAgICAgY29uc3QgdHJhbnNmb3JtZWQgPSB0cmFuc2Zvcm1GbihyYXdWYWx1ZSwgbmFtZSwgcmVzdWx0KTtcbiAgICAgICAgaWYgKGlzUGxhaW5PYmplY3QodHJhbnNmb3JtZWQpKSB7XG4gICAgICAgICAgICAvLyBJZiB0cmFuc2Zvcm0gcmV0dXJucyBhbiBvYmplY3QsIGRlbGV0ZSBvcmlnaW5hbCBrZXkgYW5kIG1lcmdlIHRvIHBhcmVudFxuICAgICAgICAgICAgY29uc3QgZG90SW5kZXggPSBuYW1lLmxhc3RJbmRleE9mKCcuJyk7XG4gICAgICAgICAgICBpZiAoZG90SW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgLy8gVG9wLWxldmVsIGZpZWxkIOKAlCBkZWxldGUgb3JpZ2luYWwgYW5kIG1lcmdlIGF0IHJvb3RcbiAgICAgICAgICAgICAgICBkZWxldGUgcmVzdWx0W25hbWVdO1xuICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24ocmVzdWx0LCB0cmFuc2Zvcm1lZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBOZXN0ZWQgZmllbGQg4oCUIHJlYnVpbGQgdGhlIHBhcmVudCB3aXRob3V0IHRoZSBvcmlnaW5hbCBrZXksIG1lcmdlZFxuICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudFBhdGggPSBuYW1lLnNsaWNlKDAsIGRvdEluZGV4KTtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnQgPSBnZXROZXN0ZWRWYWx1ZShyZXN1bHQsIHBhcmVudFBhdGgpO1xuICAgICAgICAgICAgICAgIGlmIChpc1BsYWluT2JqZWN0KHBhcmVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hpbGRLZXkgPSBuYW1lLnNsaWNlKGRvdEluZGV4ICsgMSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld1BhcmVudCA9IE9iamVjdC5hc3NpZ24oe30sIHBhcmVudCk7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBuZXdQYXJlbnRbY2hpbGRLZXldO1xuICAgICAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKG5ld1BhcmVudCwgdHJhbnNmb3JtZWQpO1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBzZXROZXN0ZWRWYWx1ZShyZXN1bHQsIHBhcmVudFBhdGgsIG5ld1BhcmVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgLy8gUHJpbWl0aXZlIHZhbHVlIOKAlCByZXBsYWNlIGF0IHRoZSAocG9zc2libHkgbmVzdGVkKSBwYXRoXG4gICAgICAgICAgICByZXN1bHQgPSBuYW1lLmluY2x1ZGVzKCcuJylcbiAgICAgICAgICAgICAgICA/IHNldE5lc3RlZFZhbHVlKHJlc3VsdCwgbmFtZSwgdHJhbnNmb3JtZWQpXG4gICAgICAgICAgICAgICAgOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHJlc3VsdCksIHsgW25hbWVdOiB0cmFuc2Zvcm1lZCB9KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG59XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIERhdGUgZm9ybWF0dGluZyAoZm9ybS1sZXZlbCBkYXRlRm9ybWF0dGVyLCBkZXBlbmRlbmN5LWZyZWUpXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmV4cG9ydCBjb25zdCBEQVRFX0ZPUk1BVCA9ICdZWVlZLU1NLUREJztcbmV4cG9ydCBjb25zdCBEQVRFX1RJTUVfRk9STUFUID0gJ1lZWVktTU0tREQgSEg6bW06c3MnO1xuLyoqIE1pbmltYWwgcGF0dGVybiBmb3JtYXR0ZXIgc3VwcG9ydGluZyBZWVlZIC8gTU0gLyBERCAvIEhIIC8gbW0gLyBzcyB0b2tlbnMuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0RGF0ZUJ5UGF0dGVybihkYXRlLCBwYXR0ZXJuKSB7XG4gICAgY29uc3QgcGFkID0gKG4pID0+IFN0cmluZyhuKS5wYWRTdGFydCgyLCAnMCcpO1xuICAgIHJldHVybiBwYXR0ZXJuXG4gICAgICAgIC5yZXBsYWNlKC9ZWVlZL2csIFN0cmluZyhkYXRlLmdldEZ1bGxZZWFyKCkpKVxuICAgICAgICAucmVwbGFjZSgvTU0vZywgcGFkKGRhdGUuZ2V0TW9udGgoKSArIDEpKVxuICAgICAgICAucmVwbGFjZSgvREQvZywgcGFkKGRhdGUuZ2V0RGF0ZSgpKSlcbiAgICAgICAgLnJlcGxhY2UoL0hIL2csIHBhZChkYXRlLmdldEhvdXJzKCkpKVxuICAgICAgICAucmVwbGFjZSgvbW0vZywgcGFkKGRhdGUuZ2V0TWludXRlcygpKSlcbiAgICAgICAgLnJlcGxhY2UoL3NzL2csIHBhZChkYXRlLmdldFNlY29uZHMoKSkpO1xufVxuLyoqXG4gKiBSZWN1cnNpdmVseSBzZXJpYWxpemUgZXZlcnkgYERhdGVgIGluIGB2YWx1ZXNgIGFjY29yZGluZyB0byBgZGF0ZUZvcm1hdHRlcmAuXG4gKiBXaXRoIGAnc3RyaW5nJ2AsIGZpZWxkcyByZWdpc3RlcmVkIGFzIGB2YWx1ZVR5cGU6ICdkYXRlVGltZSdgIHVzZVxuICogYFlZWVktTU0tREQgSEg6bW06c3NgLCBldmVyeXRoaW5nIGVsc2UgYFlZWVktTU0tRERgLiBVbnRvdWNoZWQgd2hlbiB0aGVcbiAqIGZvcm1hdHRlciBpcyBgZmFsc2VgLiBOb24tRGF0ZSB2YWx1ZXMgcGFzcyB0aHJvdWdoIHVuY2hhbmdlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdERhdGVWYWx1ZXModmFsdWVzLCBkYXRlRm9ybWF0dGVyLCB2YWx1ZVR5cGVzKSB7XG4gICAgaWYgKGRhdGVGb3JtYXR0ZXIgPT09IGZhbHNlKVxuICAgICAgICByZXR1cm4gdmFsdWVzO1xuICAgIGNvbnN0IGZvcm1hdE9uZSA9IChkYXRlLCBwYXRoKSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2YgZGF0ZUZvcm1hdHRlciA9PT0gJ2Z1bmN0aW9uJylcbiAgICAgICAgICAgIHJldHVybiBkYXRlRm9ybWF0dGVyKGRhdGUsIHBhdGgpO1xuICAgICAgICBpZiAoZGF0ZUZvcm1hdHRlciA9PT0gJ251bWJlcicpXG4gICAgICAgICAgICByZXR1cm4gZGF0ZS5nZXRUaW1lKCk7XG4gICAgICAgIGlmIChkYXRlRm9ybWF0dGVyID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgY29uc3QgcGF0dGVybiA9IHZhbHVlVHlwZXNbcGF0aF0gPT09ICdkYXRlVGltZScgPyBEQVRFX1RJTUVfRk9STUFUIDogREFURV9GT1JNQVQ7XG4gICAgICAgICAgICByZXR1cm4gZm9ybWF0RGF0ZUJ5UGF0dGVybihkYXRlLCBwYXR0ZXJuKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZm9ybWF0RGF0ZUJ5UGF0dGVybihkYXRlLCBkYXRlRm9ybWF0dGVyKTtcbiAgICB9O1xuICAgIGNvbnN0IHdhbGsgPSAodmFsdWUsIHBhdGgpID0+IHtcbiAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSlcbiAgICAgICAgICAgIHJldHVybiBmb3JtYXRPbmUodmFsdWUsIHBhdGgpO1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIGxldCBjaGFuZ2VkID0gZmFsc2U7XG4gICAgICAgICAgICBjb25zdCBuZXh0ID0gdmFsdWUubWFwKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHdhbGtlZCA9IHdhbGsoaXRlbSwgcGF0aCA/IGAke3BhdGh9LiR7aW5kZXh9YCA6IFN0cmluZyhpbmRleCkpO1xuICAgICAgICAgICAgICAgIGlmICh3YWxrZWQgIT09IGl0ZW0pXG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHJldHVybiB3YWxrZWQ7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBjaGFuZ2VkID8gbmV4dCA6IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc1BsYWluT2JqZWN0KHZhbHVlKSkge1xuICAgICAgICAgICAgbGV0IGNoYW5nZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIGNvbnN0IG5leHQgPSB7fTtcbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNoaWxkID0gdmFsdWVba2V5XTtcbiAgICAgICAgICAgICAgICBjb25zdCB3YWxrZWQgPSB3YWxrKGNoaWxkLCBwYXRoID8gYCR7cGF0aH0uJHtrZXl9YCA6IGtleSk7XG4gICAgICAgICAgICAgICAgaWYgKHdhbGtlZCAhPT0gY2hpbGQpXG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIG5leHRba2V5XSA9IHdhbGtlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBjaGFuZ2VkID8gbmV4dCA6IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9O1xuICAgIHJldHVybiB3YWxrKHZhbHVlcywgJycpO1xufVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBvbWl0TmlsVmFsdWVzIOKAlCByZWN1cnNpdmVseSByZW1vdmUgbnVsbCAvIHVuZGVmaW5lZCBrZXlzIGZyb20gb2JqZWN0cy5cbi8vXG4vLyBOaWwgbWVhbnMgbnVsbC91bmRlZmluZWQgT05MWTogYW4gZW1wdHkgc3RyaW5nIGlzIGEgcmVhbCB2YWx1ZSAoY2xlYXJpbmcgYVxuLy8gdGV4dCBmaWVsZCBtdXN0IHJlYWNoIG9uRmluaXNoIHNvIHRoZSBiYWNrZW5kIGxlYXJucyBhYm91dCBpdCkuIEFycmF5cyBhcmVcbi8vIHdhbGtlZCB0b28g4oCUIHRoZWlyIE9CSkVDVCBpdGVtcyBhcmUgY2xlYW5lZCDigJQgYnV0IGl0ZW1zIHRoZW1zZWx2ZXMgYXJlXG4vLyBuZXZlciBkcm9wcGVkOiByZW1vdmluZyBvbmUgd291bGQgc2hpZnQgbGlzdCBpbmRpY2VzLlxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBvbWl0TmlsSW5BcnJheShpdGVtcykge1xuICAgIHJldHVybiBpdGVtcy5tYXAoKGl0ZW0pID0+IHtcbiAgICAgICAgaWYgKGlzUGxhaW5PYmplY3QoaXRlbSkpXG4gICAgICAgICAgICByZXR1cm4gb21pdE5pbFZhbHVlcyhpdGVtKTtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoaXRlbSkpXG4gICAgICAgICAgICByZXR1cm4gb21pdE5pbEluQXJyYXkoaXRlbSk7XG4gICAgICAgIHJldHVybiBpdGVtO1xuICAgIH0pO1xufVxuZXhwb3J0IGZ1bmN0aW9uIG9taXROaWxWYWx1ZXModmFsdWVzKSB7XG4gICAgY29uc3QgcmVzdWx0ID0ge307XG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXModmFsdWVzKSkge1xuICAgICAgICBjb25zdCB2ID0gdmFsdWVzW2tleV07XG4gICAgICAgIGlmICh2ID09PSBudWxsIHx8IHYgPT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBpZiAoaXNQbGFpbk9iamVjdCh2KSkge1xuICAgICAgICAgICAgY29uc3QgY2xlYW5lZCA9IG9taXROaWxWYWx1ZXModik7XG4gICAgICAgICAgICBpZiAoT2JqZWN0LmtleXMoY2xlYW5lZCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHJlc3VsdFtrZXldID0gY2xlYW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChBcnJheS5pc0FycmF5KHYpKSB7XG4gICAgICAgICAgICByZXN1bHRba2V5XSA9IG9taXROaWxJbkFycmF5KHYpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmVzdWx0W2tleV0gPSB2O1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59XG5leHBvcnQgZnVuY3Rpb24gdmFsdWVFbnVtVG9PcHRpb25zKHZhbHVlRW51bSkge1xuICAgIHJldHVybiBPYmplY3QuZW50cmllcyh2YWx1ZUVudW0pLm1hcCgoW2tleSwgY29uZmlnXSkgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIGNvbmZpZyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHJldHVybiB7IGxhYmVsOiBjb25maWcsIHZhbHVlOiBrZXkgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBsYWJlbDogY29uZmlnLnRleHQsIHZhbHVlOiBrZXksIGRpc2FibGVkOiBjb25maWcuZGlzYWJsZWQgfTtcbiAgICB9KTtcbn0iLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=