@1money/component-ui 0.0.71 → 0.0.73

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 (75) hide show
  1. package/es/components/ProForm/ProForm.d.ts +10 -2
  2. package/es/components/ProForm/ProForm.js +55 -22
  3. package/es/components/ProForm/ProFormDependency.js +4 -1
  4. package/es/components/ProForm/ProFormItem.js +73 -36
  5. package/es/components/ProForm/SchemaForm.d.ts +7 -0
  6. package/es/components/ProForm/SchemaForm.js +103 -0
  7. package/es/components/ProForm/Submitter.js +12 -2
  8. package/es/components/ProForm/context.d.ts +22 -3
  9. package/es/components/ProForm/context.js +49 -10
  10. package/es/components/ProForm/core/constants.d.ts +2 -1
  11. package/es/components/ProForm/core/constants.js +3 -6
  12. package/es/components/ProForm/core/hooks/useForm.js +155 -131
  13. package/es/components/ProForm/core/hooks/useFormCore.js +73 -39
  14. package/es/components/ProForm/core/interface.d.ts +33 -12
  15. package/es/components/ProForm/core/runRules.d.ts +16 -6
  16. package/es/components/ProForm/core/runRules.js +94 -47
  17. package/es/components/ProForm/core/useFormItem.d.ts +10 -1
  18. package/es/components/ProForm/core/useFormItem.js +101 -39
  19. package/es/components/ProForm/fields/ProFormDatePicker.js +4 -1
  20. package/es/components/ProForm/fields/createProFormField.js +50 -31
  21. package/es/components/ProForm/index.d.ts +11 -4
  22. package/es/components/ProForm/index.js +7 -2
  23. package/es/components/ProForm/interface.d.ts +89 -14
  24. package/es/components/ProForm/layouts/DialogForm.d.ts +5 -1
  25. package/es/components/ProForm/layouts/DialogForm.js +2 -1
  26. package/es/components/ProForm/layouts/DrawerForm.d.ts +5 -1
  27. package/es/components/ProForm/layouts/DrawerForm.js +2 -1
  28. package/es/components/ProForm/layouts/QueryFilter.d.ts +5 -2
  29. package/es/components/ProForm/layouts/QueryFilter.js +77 -12
  30. package/es/components/ProForm/style/ProForm.css +6 -0
  31. package/es/components/ProForm/utils.d.ts +12 -1
  32. package/es/components/ProForm/utils.js +70 -21
  33. package/es/components/Tooltip/style/Tooltip.css +1 -0
  34. package/es/index.css +1 -1
  35. package/es/index.d.ts +2 -2
  36. package/es/index.js +2 -2
  37. package/lib/components/ProForm/ProForm.d.ts +10 -2
  38. package/lib/components/ProForm/ProForm.js +53 -20
  39. package/lib/components/ProForm/ProFormDependency.js +4 -1
  40. package/lib/components/ProForm/ProFormItem.js +72 -34
  41. package/lib/components/ProForm/SchemaForm.d.ts +7 -0
  42. package/lib/components/ProForm/SchemaForm.js +110 -0
  43. package/lib/components/ProForm/Submitter.js +12 -2
  44. package/lib/components/ProForm/context.d.ts +22 -3
  45. package/lib/components/ProForm/context.js +49 -10
  46. package/lib/components/ProForm/core/constants.d.ts +2 -1
  47. package/lib/components/ProForm/core/constants.js +4 -7
  48. package/lib/components/ProForm/core/hooks/useForm.js +154 -130
  49. package/lib/components/ProForm/core/hooks/useFormCore.js +72 -38
  50. package/lib/components/ProForm/core/interface.d.ts +33 -12
  51. package/lib/components/ProForm/core/runRules.d.ts +16 -6
  52. package/lib/components/ProForm/core/runRules.js +95 -47
  53. package/lib/components/ProForm/core/useFormItem.d.ts +10 -1
  54. package/lib/components/ProForm/core/useFormItem.js +100 -38
  55. package/lib/components/ProForm/fields/ProFormDatePicker.js +4 -1
  56. package/lib/components/ProForm/fields/createProFormField.js +50 -31
  57. package/lib/components/ProForm/index.d.ts +11 -4
  58. package/lib/components/ProForm/index.js +16 -1
  59. package/lib/components/ProForm/interface.d.ts +89 -14
  60. package/lib/components/ProForm/layouts/DialogForm.d.ts +5 -1
  61. package/lib/components/ProForm/layouts/DialogForm.js +2 -1
  62. package/lib/components/ProForm/layouts/DrawerForm.d.ts +5 -1
  63. package/lib/components/ProForm/layouts/DrawerForm.js +2 -1
  64. package/lib/components/ProForm/layouts/QueryFilter.d.ts +5 -2
  65. package/lib/components/ProForm/layouts/QueryFilter.js +77 -12
  66. package/lib/components/ProForm/style/ProForm.css +6 -0
  67. package/lib/components/ProForm/utils.d.ts +12 -1
  68. package/lib/components/ProForm/utils.js +73 -21
  69. package/lib/components/Tooltip/style/Tooltip.css +1 -0
  70. package/lib/index.css +1 -1
  71. package/lib/index.d.ts +2 -2
  72. package/lib/index.js +13 -1
  73. package/package.json +1 -1
  74. package/scripts/mcp-server/examples.generated.json +54 -0
  75. package/scripts/mcp-server/index.generated.json +1212 -80
@@ -1,3 +1,7 @@
1
+ import type { ReactElement } from 'react';
1
2
  import type { DrawerFormProps } from '../interface';
2
- export declare const DrawerForm: import("react").NamedExoticComponent<DrawerFormProps>;
3
+ /** Generic-aware export keeps `<DrawerForm<MyValues> …>` fully typed. */
4
+ export declare const DrawerForm: (<Values = Record<string, unknown>>(props: DrawerFormProps<Values>) => ReactElement | null) & {
5
+ displayName?: string;
6
+ };
3
7
  export default DrawerForm;
@@ -68,6 +68,7 @@ var DrawerFormBase = function DrawerFormBase(props) {
68
68
  });
69
69
  };
70
70
  DrawerFormBase.displayName = 'DrawerForm';
71
+ /** Generic-aware export — keeps `<DrawerForm<MyValues> …>` fully typed. */
71
72
  export var DrawerForm = /*#__PURE__*/memo(DrawerFormBase);
72
73
  export default DrawerForm;
73
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9sYXlvdXRzL0RyYXdlckZvcm0uanMiLCJjb21wb25lbnRzL1Byb0Zvcm0vc3JjL2NvbXBvbmVudHMvUHJvRm9ybS9sYXlvdXRzL0RyYXdlckZvcm0udHN4Il0sIm5hbWVzIjpbIl9fcmVzdCIsInMiLCJlIiwidCIsInAiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpbmRleE9mIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiaSIsImxlbmd0aCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwianN4IiwiX2pzeCIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwianN4cyIsIl9qc3hzIiwibWVtbyIsImRlZmF1bHQiLCJjbGFzc25hbWVzIiwiRHJhd2VyIiwiUHJvRm9ybSIsIkNTU19QUkVGSVgiLCJ1c2VPdmVybGF5Rm9ybSIsImNsYXNzZXMiLCJjb25jYXQiLCJEcmF3ZXJGb3JtQmFzZSIsInByb3BzIiwib3BlbiIsIm9uT3BlbkNoYW5nZSIsInRyaWdnZXIiLCJ0aXRsZSIsIl9wcm9wcyR3aWR0aCIsIndpZHRoIiwiX3Byb3BzJHBsYWNlbWVudCIsInBsYWNlbWVudCIsInN1Ym1pdFRpbWVvdXQiLCJfcHJvcHMkYXV0b0Nsb3NlIiwiYXV0b0Nsb3NlIiwiZHJhd2VyUHJvcHMiLCJvbkZpbmlzaCIsInN1Ym1pdHRlciIsImNoaWxkcmVuIiwiX2Rlc3Ryb3lPbkNsb3NlIiwiZGVzdHJveU9uQ2xvc2UiLCJmb3JtUHJvcHMiLCJfdXNlT3ZlcmxheUZvcm0iLCJtZXJnZWRPcGVuIiwidHJpZ2dlck5vZGUiLCJoYW5kbGVGaW5pc2giLCJoYW5kbGVIaWRlIiwiYXNzaWduIiwib25DbG9zZSIsImZvb3RlciIsImNsYXNzTmFtZSIsInVuZGVmaW5lZCIsInJlc2V0QnV0dG9uUHJvcHMiLCJvbkNsaWNrIiwicmVzZXRUZXh0IiwiZGlzcGxheU5hbWUiLCJEcmF3ZXJGb3JtIl0sIm1hcHBpbmdzIjoi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Q3RCUixTQUFTLEVBQUVBLFNBQVMsS0FBS2MsU0FBUyxHQUFHZCxTQUFTLEdBQUc7WUFDL0NlLGdCQUFnQixFQUFFO2NBQUVDLE9BQU8sRUFBRVA7WUFBVSxDQUFFO1lBQ3pDUSxTQUFTLEVBQUU7VUQvQkQsQ0NnQ1g7VUFBQWhCLFFBQUEsRUFFQUE7UUFBUSxDQUFBLENBQUE7TUFDRCxDQUFBO0lBQ04sQ0FBQSxDQUFBLENBQ0M7RUFBQSxDQUFBLENBQ1I7QUFFUCxDQUFDO0FBRURoQixjQUFjLENBQUNpQyxXQUFXLEdBQUcsWUFBWTtBQUV6QyxPQUFPLElBQU1DLFVBQVUsZ0JBQUczQyxJQUFJLENBQUNTLGNBQWMsQ0FBQztBQUU5QyxlQUFla0MsVUFBVSIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vbGF5b3V0cy9EcmF3ZXJGb3JtLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIEZyYWdtZW50IGFzIF9GcmFnbWVudCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgbWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGRlZmF1bHQgYXMgY2xhc3NuYW1lcyB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgRHJhd2VyIH0gZnJvbSAnLi4vLi4vRHJhd2VyJztcbmltcG9ydCB7IFByb0Zvcm0gfSBmcm9tICcuLi9Qcm9Gb3JtJztcbmltcG9ydCB7IENTU19QUkVGSVggfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgdXNlT3ZlcmxheUZvcm0gfSBmcm9tICcuL3VzZU92ZXJsYXlGb3JtJztcbmNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKGAke0NTU19QUkVGSVh9LWRyYXdlci1mb3JtYCk7XG5jb25zdCBEcmF3ZXJGb3JtQmFzZSA9IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgb3Blbiwgb25PcGVuQ2hhbmdlLCB0cmlnZ2VyLCB0aXRsZSwgd2lkdGggPSA0ODAsIHBsYWNlbWVudCA9ICdyaWdodCcsIHN1Ym1pdFRpbWVvdXQsIGF1dG9DbG9zZSA9IHRydWUsIGRyYXdlclByb3BzLCBvbkZpbmlzaCwgc3VibWl0dGVyLCBjaGlsZHJlbiwgXG4gICAgLy8gZGVzdHJveU9uQ2xvc2UgaXMgYWNjZXB0ZWQgZm9yIEFQSSBjb21wYXQgYnV0IG5vdCB1c2VkIOKAlFxuICAgIC8vIERyYXdlcidzIG93biB1c2VEcmF3ZXJUcmFuc2l0aW9uIGFscmVhZHkgdW5tb3VudHMgdGhlIGVudGlyZVxuICAgIC8vIERPTSB0cmVlIChpbmNsdWRpbmcgZm9ybSBjb250ZW50KSBhZnRlciB0aGUgY2xvc2UgYW5pbWF0aW9uLlxuICAgIGRlc3Ryb3lPbkNsb3NlOiBfZGVzdHJveU9uQ2xvc2UgfSA9IHByb3BzLCBmb3JtUHJvcHMgPSBfX3Jlc3QocHJvcHMsIFtcIm9wZW5cIiwgXCJvbk9wZW5DaGFuZ2VcIiwgXCJ0cmlnZ2VyXCIsIFwidGl0bGVcIiwgXCJ3aWR0aFwiLCBcInBsYWNlbWVudFwiLCBcInN1Ym1pdFRpbWVvdXRcIiwgXCJhdXRvQ2xvc2VcIiwgXCJkcmF3ZXJQcm9wc1wiLCBcIm9uRmluaXNoXCIsIFwic3VibWl0dGVyXCIsIFwiY2hpbGRyZW5cIiwgXCJkZXN0cm95T25DbG9zZVwiXSk7XG4gICAgY29uc3QgeyBtZXJnZWRPcGVuLCB0cmlnZ2VyTm9kZSwgaGFuZGxlRmluaXNoLCBoYW5kbGVIaWRlLCB9ID0gdXNlT3ZlcmxheUZvcm0oeyBvcGVuLCBvbk9wZW5DaGFuZ2UsIHRyaWdnZXIsIGF1dG9DbG9zZSwgc3VibWl0VGltZW91dCB9LCBvbkZpbmlzaCk7XG4gICAgcmV0dXJuIChfanN4cyhfRnJhZ21lbnQsIHsgY2hpbGRyZW46IFt0cmlnZ2VyTm9kZSwgX2pzeChEcmF3ZXIsIE9iamVjdC5hc3NpZ24oe30sIGRyYXdlclByb3BzLCB7IG9wZW46IG1lcmdlZE9wZW4sIHRpdGxlOiB0aXRsZSwgcGxhY2VtZW50OiBwbGFjZW1lbnQsIHdpZHRoOiB3aWR0aCwgb25DbG9zZTogaGFuZGxlSGlkZSwgZm9vdGVyOiBudWxsLCBjaGlsZHJlbjogX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygpLCBjaGlsZHJlbjogX2pzeChQcm9Gb3JtLCBPYmplY3QuYXNzaWduKHt9LCBmb3JtUHJvcHMsIHsgb25GaW5pc2g6IGhhbmRsZUZpbmlzaCwgc3VibWl0dGVyOiBzdWJtaXR0ZXIgIT09IHVuZGVmaW5lZCA/IHN1Ym1pdHRlciA6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNldEJ1dHRvblByb3BzOiB7IG9uQ2xpY2s6IGhhbmRsZUhpZGUgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNldFRleHQ6ICdDYW5jZWwnLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgY2hpbGRyZW46IGNoaWxkcmVuIH0pKSB9KSB9KSldIH0pKTtcbn07XG5EcmF3ZXJGb3JtQmFzZS5kaXNwbGF5TmFtZSA9ICdEcmF3ZXJGb3JtJztcbmV4cG9ydCBjb25zdCBEcmF3ZXJGb3JtID0gbWVtbyhEcmF3ZXJGb3JtQmFzZSk7XG5leHBvcnQgZGVmYXVsdCBEcmF3ZXJGb3JtOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
74
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9sYXlvdXRzL0RyYXdlckZvcm0uanMiLCJjb21wb25lbnRzL1Byb0Zvcm0vc3JjL2NvbXBvbmVudHMvUHJvRm9ybS9sYXlvdXRzL0RyYXdlckZvcm0udHN4Il0sIm5hbWVzIjpbIl9fcmVzdCIsInMiLCJlIiwidCIsInAiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpbmRleE9mIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiaSIsImxlbmd0aCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwianN4IiwiX2pzeCIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwianN4cyIsIl9qc3hzIiwibWVtbyIsImRlZmF1bHQiLCJjbGFzc25hbWVzIiwiRHJhd2VyIiwiUHJvRm9ybSIsIkNTU19QUkVGSVgiLCJ1c2VPdmVybGF5Rm9ybSIsImNsYXNzZXMiLCJjb25jYXQiLCJEcmF3ZXJGb3JtQmFzZSIsInByb3BzIiwib3BlbiIsIm9uT3BlbkNoYW5nZSIsInRyaWdnZXIiLCJ0aXRsZSIsIl9wcm9wcyR3aWR0aCIsIndpZHRoIiwiX3Byb3BzJHBsYWNlbWVudCIsInBsYWNlbWVudCIsInN1Ym1pdFRpbWVvdXQiLCJfcHJvcHMkYXV0b0Nsb3NlIiwiYXV0b0Nsb3NlIiwiZHJhd2VyUHJvcHMiLCJvbkZpbmlzaCIsInN1Ym1pdHRlciIsImNoaWxkcmVuIiwiX2Rlc3Ryb3lPbkNsb3NlIiwiZGVzdHJveU9uQ2xvc2UiLCJmb3JtUHJvcHMiLCJfdXNlT3ZlcmxheUZvcm0iLCJtZXJnZWRPcGVuIiwidHJpZ2dlck5vZGUiLCJoYW5kbGVGaW5pc2giLCJoYW5kbGVIaWRlIiwiYXNzaWduIiwib25DbG9zZSIsImZvb3RlciIsImNsYXNzTmFtZSIsInVuZGVmaW5lZCIsInJlc2V0QnV0dG9uUHJvcHMiLCJvbkNsaWNrIiwicmVzZXRUZXh0IiwiZGlzcGxheU5hbWUiLCJEcmF3ZXJGb3JtIl0sIm1hcHBpbmdzIjoiQUFBQSxJQUFJQSxNQUFNLEdBQUksSUFBSSxJQUFJLElBQUksQ0FBQ0EsTUFBTSxJQUFLLFVBQVVDLENBQUMsRUFBRUMsQ0FBQyxFQUFFO0VBQ2xELElBQUlDLENBQUMsR0FBRyxDQUFDLENBQUM7RUFDVixLQUFLLElBQUlDLENBQUMsSUFBSUgsQ0FBQyxFQUFFLElBQUlJLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ1AsQ0FBQyxFQUFFRyxDQUFDLENBQUMsSUFBSUYsQ0FBQyxDQUFDTyxPQUFPLENBQUNMLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFDL0VELENBQUMsQ0FBQ0MsQ0FBQyxDQUFDLEdBQUdILENBQUMsQ0FBQ0csQ0FBQyxDQUFDO0VBQ2YsSUFBSUgsQ0FBQyxJQUFJLElBQUksSUFBSSxPQUFPSSxNQUFNLENBQUNLLHFCQUFxQixLQUFLLFVBQVUsRUFDL0QsS0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxFQUFFUCxDQUFDLEdBQUdDLE1BQU0sQ0FBQ0sscUJBQXFCLENBQUNULENBQUMsQ0FBQyxFQUFFVSxDQUFDLEdBQUdQLENBQUMsQ0FBQ1EsTUFBTSxFQUFFRCxDQUFDLEVBQUUsRUFBRTtJQUNwRSxJQUFJVCxDQUFDLENBQUNPLE9BQU8sQ0FBQ0wsQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSU4sTUFBTSxDQUFDQyxTQUFTLENBQUNPLG9CQUFvQixDQUFDTCxJQUFJLENBQUNQLENBQUMsRUFBRUcsQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FBQyxFQUMxRVIsQ0FBQyxDQUFDQyxDQUFDLENBQUNPLENBQUMsQ0FBQyxDQUFDLEdBQUdWLENBQUMsQ0FBQ0csQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FBQztFQUN6QjtFQUNKLE9BQU9SLENBQUM7QUFDWixDQUFDO0FBQ0QsU0FBU1csR0FBRyxJQUFJQyxJQUFJLEVBQUVDLFFBQVEsSUFBSUMsU0FBUyxFQUFFQyxJQUFJLElBQUlDLEtBQUssUUFBUSxtQkFBbUI7QUNYckYsU0FBU0MsSUFBSSxRQUFRLE9BQU87QUFFNUIsU0FBU0MsT0FBTyxJQUFJQyxVQUFVLFFBQVEsMkJBQTJCO0FBQ2pFLFNBQVNDLE1BQU0sUUFBUSxjQUFjO0FBQ3JDLFNBQVNDLE9BQU8sUUFBUSxZQUFZO0FBQ3BDLFNBQVNDLFVBQVUsUUFBUSxjQUFjO0FBQ3pDLFNBQVNDLGNBQWMsUUFBUSxrQkFBa0I7QUFHakQsSUFBTUMsT0FBTyxHQUFHTCxVQUFVLElBQUFNLE1BQUEsQ0FBSUgsVUFBVSxpQkFBYyxDQUFDO0FBRXZELElBQU1JLGNBQWMsR0FBd0IsU0FBdENBLGNBQWNBLENBQXlCQyxLQUFLLEVBQUk7RUFDcEQsSUFDRUMsSUFBSSxHQWlCRkQsS0FBSyxDQWpCUEMsSUFBSTtJQUNKQyxZQUFZLEdBZ0JWRixLQUFLLENBaEJQRSxZQUFZO0lBQ1pDLE9BQU8sR0FlTEgsS0FBSyxDQWZQRyxPQUFPO0lBQ1BDLEtBQUssR0FjSEosS0FBSyxDQWRQSSxLQUFLO0lBQUFDLFlBQUEsR0FjSEwsS0FBSyxDQWJQTSxLQUFLO0lBQUxBLEtBQUssR0FBQUQsWUFBQSxjQUFHLEdBQUcsR0FBQUEsWUFBQTtJQUFBRSxnQkFBQSxHQWFUUCxLQUFLLENBWlBRLFNBQVM7SUFBVEEsU0FBUyxHQUFBRCxnQkFBQSxjQUFHLE9BQU8sR0FBQUEsZ0JBQUE7SUFDbkJFLGFBQWEsR0FXWFQsS0FBSyxDQVhQUyxhQUFhO0lBQUFDLGdCQUFBLEdBV1hWLEtBQUssQ0FWUFcsU0FBUztJQUFUQSxTQUFTLEdBQUFELGdCQUFBLGNBQUcsSUFBSSxHQUFBQSxnQkFBQTtJQUNoQkUsV0FBVyxHQVNUWixLQUFLLENBVFBZLFdBQVc7SUFDWEMsUUFBUSxHQVFOYixLQUFLLENBUlBhLFFBQVE7SUFDUkMsU0FBUyxHQU9QZCxLQUFLLENBUFBjLFNBQVM7SUFDVEMsUUFBUSxHQU1OZixLQUFLLENBTlBlLFFBQVE7SUFJUUMsZUFBZSxHQUU3QmhCLEtBQUssQ0FGUGlCLGNBQWM7SUFDWEMsU0FBUyxHQUFBaEQsTUFBQSxDQUNWOEIsS0FBSyxFQWxCSCxDQUFBLE1BQUEsRUFBQSxjQUFBLEVBQUEsU0FBQSxFQUFBLE9BQUEsRUFBQSxPQUFBLEVBQUEsV0FBQSxFQUFBLGVBQUEsRUFBQSxXQUFBLEVBQUEsYUFBQSxFQUFBLFVBQUEsRUFBQSxXQUFBLEVBQUEsVUFBQSxFQUFBLGdCQUFBLENBa0JMLENBQVE7RUFFVCxJQUFBbUIsZUFBQSxHQUtJdkIsY0FBYyxDQUNoQjtNQUFFSyxJQUFJLEVBQUpBLElBQUk7TUFBRUMsWUFBWSxFQUFaQSxZQUFZO01BQUVDLE9BQU8sRUFBUEEsT0FBTztNQUFFUSxTQUFTLEVBQVRBLFNBQVM7TUFBRUYsYUFBYSxFQUFiQTtJQUFhLENBQUUsRUFDekRJLFFBQVEsQ0FDVDtJQVBDTyxVQUFVLEdBQUFELGVBQUEsQ0FBVkMsVUFBVTtJQUNWQyxXQUFXLEdBQUFGLGVBQUEsQ0FBWEUsV0FBVztJQUNYQyxZQUFZLEdBQUFILGVBQUEsQ0FBWkcsWUFBWTtJQUNaQyxVQUFVLEdBQUFKLGVBQUEsQ0FBVkksVUFBVTtFQU1aLE9BQ0VsQyxLQUFBLENBQUFGLFNBQUEsRUFBQTtJQUFBNEIsUUFBQSxFQUFBLENBQ0dNLFdBQVcsRUFDWnBDLElBQUEsQ0FBQ1EsTUFBTSxFQUFBbEIsTUFBQSxDQUFBaUQsTUFBQSxDQUFBLENBQUEsQ0FBQSxFQUNEWixXQUFXLEVBQUE7TUFDZlgsSUFBSSxFQUFFbUIsVUFBVTtNQUNoQmhCLEtBQUssRUFBRUEsS0FBSztNQUNaSSxTQUFTLEVBQUVBLFNBQVM7TUFDcEJGLEtBQUssRUFBRUEsS0FBSztNQUNabUIsT0FBTyxFQUFFRixVQUFVO01BQ25CRyxNQUFNLEVBQUUsSUFBSTtNQUFBWCxRQUFBLEVBRVo5QixJQUFBLENBQUEsS0FBQSxFQUFBO1FBQUswQyxTQUFTLEVBQUU5QixPQUFPLENBQUEsQ0FBRTtRQUFBa0IsUUFBQSxFQUN2QjlCLElBQUEsQ0FBQ1MsT0FBTyxFQUFBbkIsTUFBQSxDQUFBaUQsTUFBQSxDQUFBLENBQUEsQ0FBQSxFQUNGTixTQUFTLEVBQUE7VUFDYkwsUUFBUSxFQUFFUyxZQUFZO1VBQ3RCUixTQUFTLEVBQUVBLFNBQVMsS0FBS2MsU0FBUyxHQUFHZCxTQUFTLEdBQUc7WUFDL0NlLGdCQUFnQixFQUFFO2NBQUVDLE9BQU8sRUFBRVA7WUFBVSxDQUFFO1lBQ3pDUSxTQUFTLEVBQUU7VUQvQkQsQ0NnQ1g7VUFBQWhCLFFBQUEsRUFFQUE7UUFBUSxDQUFBLENBQUE7TUFDRCxDQUFBO0lBQ04sQ0FBQSxDQUFBLENBQ0M7RUFBQSxDQUFBLENBQ1I7QUFFUCxDQUFDO0FBRURoQixjQUFjLENBQUNpQyxXQUFXLEdBQUcsWUFBWTtBQUV6QztBQUNBLE9BQU8sSUFBTUMsVUFBVSxnQkFBRzNDLElBQUksQ0FBQ1MsY0FBYyxDQUVPO0FBRXBELGVBQWVrQyxVQUFVIiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvRm9ybS9sYXlvdXRzL0RyYXdlckZvcm0uanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwgRnJhZ21lbnQgYXMgX0ZyYWdtZW50LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBtZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBjbGFzc25hbWVzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBEcmF3ZXIgfSBmcm9tICcuLi8uLi9EcmF3ZXInO1xuaW1wb3J0IHsgUHJvRm9ybSB9IGZyb20gJy4uL1Byb0Zvcm0nO1xuaW1wb3J0IHsgQ1NTX1BSRUZJWCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyB1c2VPdmVybGF5Rm9ybSB9IGZyb20gJy4vdXNlT3ZlcmxheUZvcm0nO1xuY29uc3QgY2xhc3NlcyA9IGNsYXNzbmFtZXMoYCR7Q1NTX1BSRUZJWH0tZHJhd2VyLWZvcm1gKTtcbmNvbnN0IERyYXdlckZvcm1CYXNlID0gKHByb3BzKSA9PiB7XG4gICAgY29uc3QgeyBvcGVuLCBvbk9wZW5DaGFuZ2UsIHRyaWdnZXIsIHRpdGxlLCB3aWR0aCA9IDQ4MCwgcGxhY2VtZW50ID0gJ3JpZ2h0Jywgc3VibWl0VGltZW91dCwgYXV0b0Nsb3NlID0gdHJ1ZSwgZHJhd2VyUHJvcHMsIG9uRmluaXNoLCBzdWJtaXR0ZXIsIGNoaWxkcmVuLCBcbiAgICAvLyBkZXN0cm95T25DbG9zZSBpcyBhY2NlcHRlZCBmb3IgQVBJIGNvbXBhdCBidXQgbm90IHVzZWQg4oCUXG4gICAgLy8gRHJhd2VyJ3Mgb3duIHVzZURyYXdlclRyYW5zaXRpb24gYWxyZWFkeSB1bm1vdW50cyB0aGUgZW50aXJlXG4gICAgLy8gRE9NIHRyZWUgKGluY2x1ZGluZyBmb3JtIGNvbnRlbnQpIGFmdGVyIHRoZSBjbG9zZSBhbmltYXRpb24uXG4gICAgZGVzdHJveU9uQ2xvc2U6IF9kZXN0cm95T25DbG9zZSB9ID0gcHJvcHMsIGZvcm1Qcm9wcyA9IF9fcmVzdChwcm9wcywgW1wib3BlblwiLCBcIm9uT3BlbkNoYW5nZVwiLCBcInRyaWdnZXJcIiwgXCJ0aXRsZVwiLCBcIndpZHRoXCIsIFwicGxhY2VtZW50XCIsIFwic3VibWl0VGltZW91dFwiLCBcImF1dG9DbG9zZVwiLCBcImRyYXdlclByb3BzXCIsIFwib25GaW5pc2hcIiwgXCJzdWJtaXR0ZXJcIiwgXCJjaGlsZHJlblwiLCBcImRlc3Ryb3lPbkNsb3NlXCJdKTtcbiAgICBjb25zdCB7IG1lcmdlZE9wZW4sIHRyaWdnZXJOb2RlLCBoYW5kbGVGaW5pc2gsIGhhbmRsZUhpZGUsIH0gPSB1c2VPdmVybGF5Rm9ybSh7IG9wZW4sIG9uT3BlbkNoYW5nZSwgdHJpZ2dlciwgYXV0b0Nsb3NlLCBzdWJtaXRUaW1lb3V0IH0sIG9uRmluaXNoKTtcbiAgICByZXR1cm4gKF9qc3hzKF9GcmFnbWVudCwgeyBjaGlsZHJlbjogW3RyaWdnZXJOb2RlLCBfanN4KERyYXdlciwgT2JqZWN0LmFzc2lnbih7fSwgZHJhd2VyUHJvcHMsIHsgb3BlbjogbWVyZ2VkT3BlbiwgdGl0bGU6IHRpdGxlLCBwbGFjZW1lbnQ6IHBsYWNlbWVudCwgd2lkdGg6IHdpZHRoLCBvbkNsb3NlOiBoYW5kbGVIaWRlLCBmb290ZXI6IG51bGwsIGNoaWxkcmVuOiBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCksIGNoaWxkcmVuOiBfanN4KFByb0Zvcm0sIE9iamVjdC5hc3NpZ24oe30sIGZvcm1Qcm9wcywgeyBvbkZpbmlzaDogaGFuZGxlRmluaXNoLCBzdWJtaXR0ZXI6IHN1Ym1pdHRlciAhPT0gdW5kZWZpbmVkID8gc3VibWl0dGVyIDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2V0QnV0dG9uUHJvcHM6IHsgb25DbGljazogaGFuZGxlSGlkZSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2V0VGV4dDogJ0NhbmNlbCcsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LCBjaGlsZHJlbjogY2hpbGRyZW4gfSkpIH0pIH0pKV0gfSkpO1xufTtcbkRyYXdlckZvcm1CYXNlLmRpc3BsYXlOYW1lID0gJ0RyYXdlckZvcm0nO1xuLyoqIEdlbmVyaWMtYXdhcmUgZXhwb3J0IOKAlCBrZWVwcyBgPERyYXdlckZvcm08TXlWYWx1ZXM+IOKApj5gIGZ1bGx5IHR5cGVkLiAqL1xuZXhwb3J0IGNvbnN0IERyYXdlckZvcm0gPSBtZW1vKERyYXdlckZvcm1CYXNlKTtcbmV4cG9ydCBkZWZhdWx0IERyYXdlckZvcm07IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
@@ -1,4 +1,7 @@
1
+ import type { ReactElement } from 'react';
1
2
  import type { QueryFilterProps } from '../interface';
2
- import React from 'react';
3
- export declare const QueryFilter: React.NamedExoticComponent<QueryFilterProps>;
3
+ /** Generic-aware export — keeps `<QueryFilter<MyValues> …>` fully typed. */
4
+ export declare const QueryFilter: (<Values = Record<string, unknown>>(props: QueryFilterProps<Values>) => ReactElement | null) & {
5
+ displayName?: string;
6
+ };
4
7
  export default QueryFilter;
@@ -28,20 +28,32 @@ function getUrlParams() {
28
28
  });
29
29
  return params;
30
30
  }
31
- function setUrlParams(params) {
32
- if (typeof window === 'undefined') return;
33
- var sp = new URLSearchParams();
31
+ /**
32
+ * Write the filter values into the URL while PRESERVING unrelated query params
33
+ * (e.g. `?tab=...`). Only keys previously written by this filter (tracked in
34
+ * `managedKeys`) are cleared before writing, so reset removes exactly what the
35
+ * filter added. Returns the new set of managed keys.
36
+ */
37
+ function setUrlParams(params, managedKeys) {
38
+ if (typeof window === 'undefined') return new Set(managedKeys);
39
+ var sp = new URLSearchParams(window.location.search);
40
+ managedKeys.forEach(function (k) {
41
+ return sp["delete"](k);
42
+ });
43
+ var written = new Set();
34
44
  for (var _i = 0, _Object$entries = Object.entries(params); _i < _Object$entries.length; _i++) {
35
45
  var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
36
46
  k = _Object$entries$_i[0],
37
47
  v = _Object$entries$_i[1];
38
48
  if (v !== null && v !== undefined && v !== '') {
39
49
  sp.set(k, String(v));
50
+ written.add(k);
40
51
  }
41
52
  }
42
53
  var search = sp.toString();
43
54
  var url = search ? "".concat(window.location.pathname, "?").concat(search) : window.location.pathname;
44
55
  window.history.replaceState(null, '', url);
56
+ return written;
45
57
  }
46
58
  // ---------------------------------------------------------------------------
47
59
  // QueryFilter
@@ -71,27 +83,79 @@ var QueryFilterBase = function QueryFilterBase(props) {
71
83
  collapsed = _useControlledState2[0],
72
84
  setCollapsed = _useControlledState2[1];
73
85
  // ── syncToUrl: merge URL params into initial values on mount ──
74
- var syncInitRef = useRef(false);
86
+ // One-time snapshot of the URL params at mount. Lazy ref init is IDEMPOTENT,
87
+ // so it is safe under StrictMode's double render (an impure "first run" flag
88
+ // inside useMemo would return the unmerged value on the replay invocation).
89
+ var urlParamsAtMountRef = useRef(null);
90
+ if (urlParamsAtMountRef.current === null) {
91
+ urlParamsAtMountRef.current = syncToUrl ? getUrlParams() : {};
92
+ }
93
+ // Keys this filter has WRITTEN to the URL — the only keys submit/reset is
94
+ // allowed to clear. The function form of syncToUrl also seeds this from its
95
+ // filtered 'get' result (those keys are the filter's own by definition).
96
+ var managedKeysRef = useRef(new Set());
97
+ // Boolean-mode only: URL params merged into initialValues but NOT yet
98
+ // claimed. The boolean form cannot tell its own params from foreign ones
99
+ // (?tab=…), so a seeded key is claimed only once its value changes (or it
100
+ // disappears from the submitted values, i.e. the user cleared the field).
101
+ var urlSeededRef = useRef({});
75
102
  var initialValues = useMemo(function () {
76
- if (!syncToUrl || syncInitRef.current) return initialValuesProp;
77
- syncInitRef.current = true;
78
- var urlParams = getUrlParams();
103
+ var _a;
104
+ if (!syncToUrl) return initialValuesProp;
105
+ var urlParams = (_a = urlParamsAtMountRef.current) !== null && _a !== void 0 ? _a : {};
79
106
  if (typeof syncToUrl === 'function') {
80
- return Object.assign(Object.assign({}, initialValuesProp), syncToUrl(urlParams, 'get'));
107
+ var fromUrl = syncToUrl(urlParams, 'get');
108
+ // Idempotent ref writes — same input on every invocation.
109
+ managedKeysRef.current = new Set(Object.keys(fromUrl));
110
+ return Object.assign(Object.assign({}, initialValuesProp), fromUrl);
81
111
  }
112
+ urlSeededRef.current = Object.assign({}, urlParams);
82
113
  return Object.assign(Object.assign({}, initialValuesProp), urlParams);
83
114
  }, []);
84
115
  var handleSyncSet = useMemoizedFn(function (values) {
85
116
  if (!syncToUrl) return;
86
- var toWrite = typeof syncToUrl === 'function' ? syncToUrl(values, 'set') : values;
87
- setUrlParams(toWrite);
117
+ var toWrite;
118
+ var toClear = new Set(managedKeysRef.current);
119
+ if (typeof syncToUrl === 'function') {
120
+ toWrite = syncToUrl(values, 'set');
121
+ } else {
122
+ // Skip URL-seeded keys we never wrote whose value is unchanged — they
123
+ // may belong to someone else (?tab=…); leave them in the URL untouched.
124
+ // A seeded key whose value DID change is claimed from now on.
125
+ toWrite = {};
126
+ for (var _i2 = 0, _Object$entries2 = Object.entries(values); _i2 < _Object$entries2.length; _i2++) {
127
+ var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i2], 2),
128
+ key = _Object$entries2$_i[0],
129
+ value = _Object$entries2$_i[1];
130
+ var seeded = urlSeededRef.current[key];
131
+ if (seeded !== undefined && !managedKeysRef.current.has(key) && String(value) === seeded) {
132
+ continue;
133
+ }
134
+ delete urlSeededRef.current[key];
135
+ toClear.add(key);
136
+ toWrite[key] = value;
137
+ }
138
+ // Seeded keys missing from the submitted values were cleared by the
139
+ // user (omitNil strips empty values) — claim them and remove their
140
+ // stale params from the URL.
141
+ for (var _i3 = 0, _Object$keys = Object.keys(urlSeededRef.current); _i3 < _Object$keys.length; _i3++) {
142
+ var _key = _Object$keys[_i3];
143
+ if (!(_key in values)) {
144
+ delete urlSeededRef.current[_key];
145
+ toClear.add(_key);
146
+ }
147
+ }
148
+ }
149
+ managedKeysRef.current = setUrlParams(toWrite, toClear);
88
150
  });
89
151
  var handleFinish = useMemoizedFn(function (values) {
90
152
  handleSyncSet(values);
91
153
  onFinish === null || onFinish === void 0 ? void 0 : onFinish(values);
92
154
  });
93
155
  var handleReset = useMemoizedFn(function () {
94
- if (syncToUrl) setUrlParams({});
156
+ if (syncToUrl) {
157
+ managedKeysRef.current = setUrlParams({}, managedKeysRef.current);
158
+ }
95
159
  onReset === null || onReset === void 0 ? void 0 : onReset();
96
160
  });
97
161
  var handleCollapse = useMemoizedFn(function () {
@@ -158,6 +222,7 @@ var QueryFilterBase = function QueryFilterBase(props) {
158
222
  }));
159
223
  };
160
224
  QueryFilterBase.displayName = 'QueryFilter';
225
+ /** Generic-aware export — keeps `<QueryFilter<MyValues> …>` fully typed. */
161
226
  export var QueryFilter = /*#__PURE__*/memo(QueryFilterBase);
162
227
  export default QueryFilter;
163
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9sYXlvdXRzL1F1ZXJ5RmlsdGVyLmpzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vbGF5b3V0cy9RdWVyeUZpbHRlci50c3giXSwibmFtZXMiOlsiX19yZXN0IiwicyIsImUiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwibWVtbyIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VDb250cm9sbGVkU3RhdGUiLCJ1c2VNZW1vaXplZEZuIiwiZGVmYXVsdCIsImNsYXNzbmFtZXMiLCJCdXR0b24iLCJQcm9Gb3JtIiwiQ1NTX1BSRUZJWCIsIkRFRkFVTFRfVEVYVCIsIlJlYWN0IiwiY2xhc3NlcyIsImNvbmNhdCIsImdldFVybFBhcmFtcyIsIndpbmRvdyIsInBhcmFtcyIsIlVSTFNlYXJjaFBhcmFtcyIsImxvY2F0aW9uIiwic2VhcmNoIiwiZm9yRWFjaCIsInYiLCJrIiwic2V0VXJsUGFyYW1zIiwic3AiLCJfaSIsIl9PYmplY3QkZW50cmllcyIsImVudHJpZXMiLCJfT2JqZWN0JGVudHJpZXMkX2kiLCJfc2xpY2VkVG9BcnJheSIsInVuZGVmaW5lZCIsInNldCIsIlN0cmluZyIsInRvU3RyaW5nIiwidXJsIiwicGF0aG5hbWUiLCJoaXN0b3J5IiwicmVwbGFjZVN0YXRlIiwiUXVlcnlGaWx0ZXJCYXNlIiwicHJvcHMiLCJfYSIsIl9iIiwiX3Byb3BzJGRlZmF1bHRDb2xsYXBzIiwiZGVmYXVsdENvbGxhcHNlZCIsImNvbnRyb2xsZWRDb2xsYXBzZWQiLCJjb2xsYXBzZWQiLCJvbkNvbGxhcHNlIiwiX3Byb3BzJGRlZmF1bHRDb2xzTnVtIiwiZGVmYXVsdENvbHNOdW1iZXIiLCJsYWJlbFdpZHRoIiwiX3Byb3BzJHNwbGl0Iiwic3BsaXQiLCJzZWFyY2hDb25maWciLCJzeW5jVG9VcmwiLCJvbkZpbmlzaCIsIm9uUmVzZXQiLCJjaGlsZHJlbiIsIl9wcm9wcyRzdWJtaXR0ZXIiLCJzdWJtaXR0ZXIiLCJpbml0aWFsVmFsdWVzUHJvcCIsImluaXRpYWxWYWx1ZXMiLCJmb3JtUHJvcHMiLCJfdXNlQ29udHJvbGxlZFN0YXRlIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZTIiLCJzZXRDb2xsYXBzZWQiLCJzeW5jSW5pdFJlZiIsImN1cnJlbnQiLCJ1cmxQYXJhbXMiLCJhc3NpZ24iLCJoYW5kbGVTeW5jU2V0IiwidmFsdWVzIiwidG9Xcml0ZSIsImhhbmRsZUZpbmlzaCIsImhhbmRsZVJlc2V0IiwiaGFuZGxlQ29sbGFwc2UiLCJuZXh0IiwiY2hpbGRBcnJheSIsImFyciIsIkNoaWxkcmVuIiwiY2hpbGQiLCJpc1ZhbGlkRWxlbWVudCIsInB1c2giLCJ2aXNpYmxlQ2hpbGRyZW4iLCJzbGljZSIsImhhc01vcmUiLCJzZWFyY2hUZXh0IiwicmVzZXRUZXh0IiwicmVzZXQiLCJidXR0b25TaXplIiwic2l6ZSIsImxhYmVsU3R5bGUiLCJ3aWR0aCIsImNsYXNzTmFtZSIsIm1hcCIsImluZGV4IiwiRnJhZ21lbnQiLCJzdHlsZSIsInR5cGUiLCJjb2xvciIsIm9uQ2xpY2siLCJ2YXJpYW50IiwiZXhwYW5kIiwiY29sbGFwc2UiLCJkaXNwbGF5TmFtZSIsIlF1ZXJ5RmlsdGVyIl0sIm1hcHBpbmdzIjoiO0FBQUEsSUFBSUEsTUFBTSxHQUFJLElBQUksSUFBSSxJQUFJLENBQUNBLE1BQU0sSUFBSyxVQUFVQyxDQUFDLEVBQUVDLENBQUMsRUFBRTtFQUNsRCxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0VBQ1YsS0FBSyxJQUFJQyxDQUFDLElBQUlILENBQUMsRUFBRSxJQUFJSSxNQUFNLENBQUNDLFNBQVMsQ0FBQ0MsY0FBYyxDQUFDQyxJQUFJLENBQUNQLENBQUMsRUFBRUcsQ0FBQyxD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QUEsRUFDbkQ2QjtRQUFVLENBQUEsQ0FDSixFQUNUeEYsSUFBQSxDQUFDVSxNQUFNLEVBQUE7VUFBQzBGLElBQUksRUFBQyxRQUFRO1VBQUNDLEtBQUssRUFBQyxXQUFXO1VBQUNULElBQUksRUFBRUQsVUFBVTtVQUFFVyxPQUFPLEVBQUUxQixXQUFXO1VBQUFqQixRQUFBLEVBQzNFOEI7UUFBUyxDQUFBLENBQ0gsRUFDUkYsT0FBTyxJQUNOdkYsSUFBQSxDQUFDVSxNQUFNLEVBQUE7VUFBQzBGLElBQUksRUFBQyxRQUFRO1VBQUNHLE9BQU8sRUFBQyxNQUFNO1VBQUNYLElBQUksRUFBRUQsVUFBVTtVQUFFVyxPQUFPLEVBQUV6QixjQUFjO1VBQUFsQixRQUFBLEVBQzNFWCxTQUFTLEdBQUduQyxZQUFZLENBQUMyRixNQUFNLEdBQUczRixZQUFZLENBQUM0RjtRQUFRLENBQUEsQ0FFM0Q7TUFBQSxDQUFBLENBQ0c7SUFBQSxDQUFBO0VBQ0YsQ0FBQSxDQUFBLENBQ0U7QUFFZCxDQUFDO0FBRURoRSxlQUFlLENBQUNpRSxXQUFXLEdBQUcsYUFBYTtBQUUzQyxPQUFPLElBQU1DLFdBQVcsZ0JBQUd4RyxJQUFJLENBQUNzQyxlQUFlLENBQUM7QUFFaEQsZUFBZWtFLFdBQVciLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL2xheW91dHMvUXVlcnlGaWx0ZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgbWVtbywgdXNlTWVtbywgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHVzZUNvbnRyb2xsZWRTdGF0ZSBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZUNvbnRyb2xsZWRTdGF0ZSc7XG5pbXBvcnQgdXNlTWVtb2l6ZWRGbiBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZU1lbW9pemVkRm4nO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBjbGFzc25hbWVzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICcuLi8uLi9CdXR0b24nO1xuaW1wb3J0IHsgUHJvRm9ybSB9IGZyb20gJy4uL1Byb0Zvcm0nO1xuaW1wb3J0IHsgQ1NTX1BSRUZJWCwgREVGQVVMVF9URVhUIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5jb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcyhgJHtDU1NfUFJFRklYfS1xdWVyeS1maWx0ZXJgKTtcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gVVJMIHN5bmMgaGVscGVyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBnZXRVcmxQYXJhbXMoKSB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKVxuICAgICAgICByZXR1cm4ge307XG4gICAgY29uc3QgcGFyYW1zID0ge307XG4gICAgbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKS5mb3JFYWNoKCh2LCBrKSA9PiB7XG4gICAgICAgIHBhcmFtc1trXSA9IHY7XG4gICAgfSk7XG4gICAgcmV0dXJuIHBhcmFtcztcbn1cbmZ1bmN0aW9uIHNldFVybFBhcmFtcyhwYXJhbXMpIHtcbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpXG4gICAgICAgIHJldHVybjtcbiAgICBjb25zdCBzcCA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcbiAgICBmb3IgKGNvbnN0IFtrLCB2XSBvZiBPYmplY3QuZW50cmllcyhwYXJhbXMpKSB7XG4gICAgICAgIGlmICh2ICE9PSBudWxsICYmIHYgIT09IHVuZGVmaW5lZCAmJiB2ICE9PSAnJykge1xuICAgICAgICAgICAgc3Auc2V0KGssIFN0cmluZyh2KSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3Qgc2VhcmNoID0gc3AudG9TdHJpbmcoKTtcbiAgICBjb25zdCB1cmwgPSBzZWFyY2ggPyBgJHt3aW5kb3cubG9jYXRpb24ucGF0aG5hbWV9PyR7c2VhcmNofWAgOiB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWU7XG4gICAgd2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlKG51bGwsICcnLCB1cmwpO1xufVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBRdWVyeUZpbHRlclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5jb25zdCBRdWVyeUZpbHRlckJhc2UgPSAocHJvcHMpID0+IHtcbiAgICB2YXIgX2EsIF9iO1xuICAgIGNvbnN0IHsgZGVmYXVsdENvbGxhcHNlZCA9IHRydWUsIGNvbGxhcHNlZDogY29udHJvbGxlZENvbGxhcHNlZCwgb25Db2xsYXBzZSwgZGVmYXVsdENvbHNOdW1iZXIgPSAzLCBsYWJlbFdpZHRoLCBzcGxpdCA9IGZhbHNlLCBzZWFyY2hDb25maWcsIHN5bmNUb1VybCwgb25GaW5pc2gsIG9uUmVzZXQsIGNoaWxkcmVuLCBzdWJtaXR0ZXIgPSBmYWxzZSwgaW5pdGlhbFZhbHVlczogaW5pdGlhbFZhbHVlc1Byb3AgfSA9IHByb3BzLCBmb3JtUHJvcHMgPSBfX3Jlc3QocHJvcHMsIFtcImRlZmF1bHRDb2xsYXBzZWRcIiwgXCJjb2xsYXBzZWRcIiwgXCJvbkNvbGxhcHNlXCIsIFwiZGVmYXVsdENvbHNOdW1iZXJcIiwgXCJsYWJlbFdpZHRoXCIsIFwic3BsaXRcIiwgXCJzZWFyY2hDb25maWdcIiwgXCJzeW5jVG9VcmxcIiwgXCJvbkZpbmlzaFwiLCBcIm9uUmVzZXRcIiwgXCJjaGlsZHJlblwiLCBcInN1Ym1pdHRlclwiLCBcImluaXRpYWxWYWx1ZXNcIl0pO1xuICAgIGNvbnN0IFtjb2xsYXBzZWQsIHNldENvbGxhcHNlZF0gPSB1c2VDb250cm9sbGVkU3RhdGUoZGVmYXVsdENvbGxhcHNlZCwgY29udHJvbGxlZENvbGxhcHNlZCk7XG4gICAgLy8g4pSA4pSAIHN5bmNUb1VybDogbWVyZ2UgVVJMIHBhcmFtcyBpbnRvIGluaXRpYWwgdmFsdWVzIG9uIG1vdW50IOKUgOKUgFxuICAgIGNvbnN0IHN5bmNJbml0UmVmID0gdXNlUmVmKGZhbHNlKTtcbiAgICBjb25zdCBpbml0aWFsVmFsdWVzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGlmICghc3luY1RvVXJsIHx8IHN5bmNJbml0UmVmLmN1cnJlbnQpXG4gICAgICAgICAgICByZXR1cm4gaW5pdGlhbFZhbHVlc1Byb3A7XG4gICAgICAgIHN5bmNJbml0UmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICBjb25zdCB1cmxQYXJhbXMgPSBnZXRVcmxQYXJhbXMoKTtcbiAgICAgICAgaWYgKHR5cGVvZiBzeW5jVG9VcmwgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGluaXRpYWxWYWx1ZXNQcm9wKSwgc3luY1RvVXJsKHVybFBhcmFtcywgJ2dldCcpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBpbml0aWFsVmFsdWVzUHJvcCksIHVybFBhcmFtcyk7XG4gICAgfSwgW10pO1xuICAgIGNvbnN0IGhhbmRsZVN5bmNTZXQgPSB1c2VNZW1vaXplZEZuKCh2YWx1ZXMpID0+IHtcbiAgICAgICAgaWYgKCFzeW5jVG9VcmwpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IHRvV3JpdGUgPSB0eXBlb2Ygc3luY1RvVXJsID09PSAnZnVuY3Rpb24nXG4gICAgICAgICAgICA/IHN5bmNUb1VybCh2YWx1ZXMsICdzZXQnKVxuICAgICAgICAgICAgOiB2YWx1ZXM7XG4gICAgICAgIHNldFVybFBhcmFtcyh0b1dyaXRlKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVGaW5pc2ggPSB1c2VNZW1vaXplZEZuKCh2YWx1ZXMpID0+IHtcbiAgICAgICAgaGFuZGxlU3luY1NldCh2YWx1ZXMpO1xuICAgICAgICBvbkZpbmlzaCA9PT0gbnVsbCB8fCBvbkZpbmlzaCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25GaW5pc2godmFsdWVzKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVSZXNldCA9IHVzZU1lbW9pemVkRm4oKCkgPT4ge1xuICAgICAgICBpZiAoc3luY1RvVXJsKVxuICAgICAgICAgICAgc2V0VXJsUGFyYW1zKHt9KTtcbiAgICAgICAgb25SZXNldCA9PT0gbnVsbCB8fCBvblJlc2V0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvblJlc2V0KCk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlQ29sbGFwc2UgPSB1c2VNZW1vaXplZEZuKCgpID0+IHtcbiAgICAgICAgY29uc3QgbmV4dCA9ICFjb2xsYXBzZWQ7XG4gICAgICAgIHNldENvbGxhcHNlZChuZXh0KTtcbiAgICAgICAgb25Db2xsYXBzZSA9PT0gbnVsbCB8fCBvbkNvbGxhcHNlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkNvbGxhcHNlKG5leHQpO1xuICAgIH0pO1xuICAgIC8vIENvdW50IGNoaWxkcmVuIGFuZCBzcGxpdCB2aXNpYmxlL2hpZGRlblxuICAgIGNvbnN0IGNoaWxkQXJyYXkgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgY29uc3QgYXJyID0gW107XG4gICAgICAgIFJlYWN0LkNoaWxkcmVuLmZvckVhY2goY2hpbGRyZW4sIChjaGlsZCkgPT4ge1xuICAgICAgICAgICAgaWYgKFJlYWN0LmlzVmFsaWRFbGVtZW50KGNoaWxkKSkge1xuICAgICAgICAgICAgICAgIGFyci5wdXNoKGNoaWxkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBhcnI7XG4gICAgfSwgW2NoaWxkcmVuXSk7XG4gICAgY29uc3QgdmlzaWJsZUNoaWxkcmVuID0gY29sbGFwc2VkXG4gICAgICAgID8gY2hpbGRBcnJheS5zbGljZSgwLCBkZWZhdWx0Q29sc051bWJlcilcbiAgICAgICAgOiBjaGlsZEFycmF5O1xuICAgIGNvbnN0IGhhc01vcmUgPSBjaGlsZEFycmF5Lmxlbmd0aCA+IGRlZmF1bHRDb2xzTnVtYmVyO1xuICAgIGNvbnN0IHNlYXJjaFRleHQgPSAoX2EgPSBzZWFyY2hDb25maWcgPT09IG51bGwgfHwgc2VhcmNoQ29uZmlnID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzZWFyY2hDb25maWcuc2VhcmNoVGV4dCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogREVGQVVMVF9URVhULnNlYXJjaDtcbiAgICBjb25zdCByZXNldFRleHQgPSAoX2IgPSBzZWFyY2hDb25maWcgPT09IG51bGwgfHwgc2VhcmNoQ29uZmlnID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzZWFyY2hDb25maWcucmVzZXRUZXh0KSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBERUZBVUxUX1RFWFQucmVzZXQ7XG4gICAgY29uc3QgYnV0dG9uU2l6ZSA9IHNlYXJjaENvbmZpZyA9PT0gbnVsbCB8fCBzZWFyY2hDb25maWcgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNlYXJjaENvbmZpZy5zaXplO1xuICAgIGNvbnN0IGxhYmVsU3R5bGUgPSBsYWJlbFdpZHRoICE9PSB1bmRlZmluZWQgJiYgbGFiZWxXaWR0aCAhPT0gJ2F1dG8nXG4gICAgICAgID8geyB3aWR0aDogbGFiZWxXaWR0aCB9XG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgIHJldHVybiAoX2pzeChQcm9Gb3JtLCBPYmplY3QuYXNzaWduKHt9LCBmb3JtUHJvcHMsIHsgaW5pdGlhbFZhbHVlczogaW5pdGlhbFZhbHVlcywgb25GaW5pc2g6IGhhbmRsZUZpbmlzaCwgb25SZXNldDogaGFuZGxlUmVzZXQsIHN1Ym1pdHRlcjogZmFsc2UsIGNoaWxkcmVuOiBfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygpLCBjaGlsZHJlbjogW3Zpc2libGVDaGlsZHJlbi5tYXAoKGNoaWxkLCBpbmRleCkgPT4gKF9qc3hzKFJlYWN0LkZyYWdtZW50LCB7IGNoaWxkcmVuOiBbc3BsaXQgJiYgaW5kZXggPiAwICYmIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3NwbGl0JykgfSksIGxhYmVsU3R5bGUgPyAoX2pzeChcImRpdlwiLCB7IHN0eWxlOiBsYWJlbFN0eWxlLCBjaGlsZHJlbjogY2hpbGQgfSkpIDogKGNoaWxkKV0gfSwgaW5kZXgpKSksIF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdhY3Rpb25zJyksIGNoaWxkcmVuOiBbX2pzeChCdXR0b24sIHsgdHlwZTogXCJzdWJtaXRcIiwgY29sb3I6IFwicHJpbWFyeVwiLCBzaXplOiBidXR0b25TaXplLCBjaGlsZHJlbjogc2VhcmNoVGV4dCB9KSwgX2pzeChCdXR0b24sIHsgdHlwZTogXCJidXR0b25cIiwgY29sb3I6IFwic2Vjb25kYXJ5XCIsIHNpemU6IGJ1dHRvblNpemUsIG9uQ2xpY2s6IGhhbmRsZVJlc2V0LCBjaGlsZHJlbjogcmVzZXRUZXh0IH0pLCBoYXNNb3JlICYmIChfanN4KEJ1dHRvbiwgeyB0eXBlOiBcImJ1dHRvblwiLCB2YXJpYW50OiBcInRleHRcIiwgc2l6ZTogYnV0dG9uU2l6ZSwgb25DbGljazogaGFuZGxlQ29sbGFwc2UsIGNoaWxkcmVuOiBjb2xsYXBzZWQgPyBERUZBVUxUX1RFWFQuZXhwYW5kIDogREVGQVVMVF9URVhULmNvbGxhcHNlIH0pKV0gfSldIH0pIH0pKSk7XG59O1xuUXVlcnlGaWx0ZXJCYXNlLmRpc3BsYXlOYW1lID0gJ1F1ZXJ5RmlsdGVyJztcbmV4cG9ydCBjb25zdCBRdWVyeUZpbHRlciA9IG1lbW8oUXVlcnlGaWx0ZXJCYXNlKTtcbmV4cG9ydCBkZWZhdWx0IFF1ZXJ5RmlsdGVyOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
228
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9sYXlvdXRzL1F1ZXJ5RmlsdGVyLmpzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vbGF5b3V0cy9RdWVyeUZpbHRlci50c3giXSwibmFtZXMiOlsiX19yZXN0IiwicyIsImUiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwibWVtbyIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VDb250cm9sbGVkU3RhdGUiLCJ1c2VNZW1vaXplZEZuIiwiZGVmYXVsdCIsImNsYXNzbmFtZXMiLCJCdXR0b24iLCJQcm9Gb3JtIiwiQ1NTX1BSRUZJWCIsIkRFRkFVTFRfVEVYVCIsIlJlYWN0IiwiY2xhc3NlcyIsImNvbmNhdCIsImdldFVybFBhcmFtcyIsIndpbmRvdyIsInBhcmFtcyIsIlVSTFNlYXJjaFBhcmFtcyIsImxvY2F0aW9uIiwic2VhcmNoIiwiZm9yRWFjaCIsInYiLCJrIiwic2V0VXJsUGFyYW1zIiwibWFuYWdlZEtleXMiLCJTZXQiLCJzcCIsIndyaXR0ZW4iLCJfaSIsIl9PYmplY3QkZW50cmllcyIsImVudHJpZXMiLCJfT2JqZWN0JGVudHJpZXMkX2kiLCJfc2xpY2VkVG9BcnJheSIsInVuZGVmaW5lZCIsInNldCIsIlN0cmluZyIsImFkZCIsInRvU3RyaW5nIiwidXJsIiwicGF0aG5hbWUiLCJoaXN0b3J5IiwicmVwbGFjZVN0YXRlIiwiUXVlcnlGaWx0ZXJCYXNlIiwicHJvcHMiLCJfYSIsIl9iIiwiX3Byb3BzJGRlZmF1bHRDb2xsYXBzIiwiZGVmYXVsdENvbGxhcHNlZCIsImNvbnRyb2xsZWRDb2xsYXBzZWQiLCJjb2xsYXBzZWQiLCJvbkNvbGxhcHNlIiwiX3Byb3BzJGRlZmF1bHRDb2xzTnVtIiwiZGVmYXVsdENvbHNOdW1iZXIiLCJsYWJlbFdpZHRoIiwiX3Byb3BzJHNwbGl0Iiwic3BsaXQiLCJzZWFyY2hDb25maWciLCJzeW5jVG9VcmwiLCJvbkZpbmlzaCIsIm9uUmVzZXQiLCJjaGlsZHJlbiIsIl9wcm9wcyRzdWJtaXR0ZXIiLCJzdWJtaXR0ZXIiLCJpbml0aWFsVmFsdWVzUHJvcCIsImluaXRpYWxWYWx1ZXMiLCJmb3JtUHJvcHMiLCJfdXNlQ29udHJvbGxlZFN0YXRlIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZTIiLCJzZXRDb2xsYXBzZWQiLCJ1cmxQYXJhbXNBdE1vdW50UmVmIiwiY3VycmVudCIsIm1hbmFnZWRLZXlzUmVmIiwidXJsU2VlZGVkUmVmIiwidXJsUGFyYW1zIiwiZnJvbVVybCIsImtleXMiLCJhc3NpZ24iLCJoYW5kbGVTeW5jU2V0IiwidmFsdWVzIiwidG9Xcml0ZSIsInRvQ2xlYXIiLCJfaTIiLCJfT2JqZWN0JGVudHJpZXMyIiwiX09iamVjdCRlbnRyaWVzMiRfaSIsImtleSIsInZhbHVlIiwic2VlZGVkIiwiaGFzIiwiX2kzIiwiX09iamVjdCRrZXlzIiwiaGFuZGxlRmluaXNoIiwiaGFuZGxlUmVzZXQiLCJoYW5kbGVDb2xsYXBzZSIsIm5leHQiLCJjaGlsZEFycmF5IiwiYXJyIiwiQ2hpbGRyZW4iLCJjaGlsZCIsImlzVmFsaWRFbGVtZW50IiwicHVzaCIsInZpc2libGVDaGlsZHJlbiIsInNsaWNlIiwiaGFzTW9yZSIsInNlYXJjaFRleHQiLCJyZXNldFRleHQiLCJyZXNldCIsImJ1dHRvblNpemUiLCJzaXplIiwibGFiZWxTdHlsZSIsIndpZHRoIiwiY2xhc3NOYW1lIiwibWFwIiwiaW5kZXgiLCJGcmFnbWVudCIsInN0eWxlIiwidHlwZSIsImNvbG9yIiwib25DbGljayIsInZhcmlhbnQiLCJleHBhbmQiLCJjb2xsYXBzZSIsImRpc3BsYXlOYW1lIiwiUXVlcnlGaWx0ZXIiXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFJQSxNQUFN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eW91dHMvUXVlcnlGaWx0ZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgbWVtbywgdXNlTWVtbywgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHVzZUNvbnRyb2xsZWRTdGF0ZSBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZUNvbnRyb2xsZWRTdGF0ZSc7XG5pbXBvcnQgdXNlTWVtb2l6ZWRGbiBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZU1lbW9pemVkRm4nO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBjbGFzc25hbWVzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICcuLi8uLi9CdXR0b24nO1xuaW1wb3J0IHsgUHJvRm9ybSB9IGZyb20gJy4uL1Byb0Zvcm0nO1xuaW1wb3J0IHsgQ1NTX1BSRUZJWCwgREVGQVVMVF9URVhUIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5jb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcyhgJHtDU1NfUFJFRklYfS1xdWVyeS1maWx0ZXJgKTtcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gVVJMIHN5bmMgaGVscGVyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBnZXRVcmxQYXJhbXMoKSB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKVxuICAgICAgICByZXR1cm4ge307XG4gICAgY29uc3QgcGFyYW1zID0ge307XG4gICAgbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKS5mb3JFYWNoKCh2LCBrKSA9PiB7XG4gICAgICAgIHBhcmFtc1trXSA9IHY7XG4gICAgfSk7XG4gICAgcmV0dXJuIHBhcmFtcztcbn1cbi8qKlxuICogV3JpdGUgdGhlIGZpbHRlciB2YWx1ZXMgaW50byB0aGUgVVJMIHdoaWxlIFBSRVNFUlZJTkcgdW5yZWxhdGVkIHF1ZXJ5IHBhcmFtc1xuICogKGUuZy4gYD90YWI9Li4uYCkuIE9ubHkga2V5cyBwcmV2aW91c2x5IHdyaXR0ZW4gYnkgdGhpcyBmaWx0ZXIgKHRyYWNrZWQgaW5cbiAqIGBtYW5hZ2VkS2V5c2ApIGFyZSBjbGVhcmVkIGJlZm9yZSB3cml0aW5nLCBzbyByZXNldCByZW1vdmVzIGV4YWN0bHkgd2hhdCB0aGVcbiAqIGZpbHRlciBhZGRlZC4gUmV0dXJucyB0aGUgbmV3IHNldCBvZiBtYW5hZ2VkIGtleXMuXG4gKi9cbmZ1bmN0aW9uIHNldFVybFBhcmFtcyhwYXJhbXMsIG1hbmFnZWRLZXlzKSB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKVxuICAgICAgICByZXR1cm4gbmV3IFNldChtYW5hZ2VkS2V5cyk7XG4gICAgY29uc3Qgc3AgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpO1xuICAgIG1hbmFnZWRLZXlzLmZvckVhY2goKGspID0+IHNwLmRlbGV0ZShrKSk7XG4gICAgY29uc3Qgd3JpdHRlbiA9IG5ldyBTZXQoKTtcbiAgICBmb3IgKGNvbnN0IFtrLCB2XSBvZiBPYmplY3QuZW50cmllcyhwYXJhbXMpKSB7XG4gICAgICAgIGlmICh2ICE9PSBudWxsICYmIHYgIT09IHVuZGVmaW5lZCAmJiB2ICE9PSAnJykge1xuICAgICAgICAgICAgc3Auc2V0KGssIFN0cmluZyh2KSk7XG4gICAgICAgICAgICB3cml0dGVuLmFkZChrKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBzZWFyY2ggPSBzcC50b1N0cmluZygpO1xuICAgIGNvbnN0IHVybCA9IHNlYXJjaCA/IGAke3dpbmRvdy5sb2NhdGlvbi5wYXRobmFtZX0/JHtzZWFyY2h9YCA6IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZTtcbiAgICB3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUobnVsbCwgJycsIHVybCk7XG4gICAgcmV0dXJuIHdyaXR0ZW47XG59XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFF1ZXJ5RmlsdGVyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmNvbnN0IFF1ZXJ5RmlsdGVyQmFzZSA9IChwcm9wcykgPT4ge1xuICAgIHZhciBfYSwgX2I7XG4gICAgY29uc3QgeyBkZWZhdWx0Q29sbGFwc2VkID0gdHJ1ZSwgY29sbGFwc2VkOiBjb250cm9sbGVkQ29sbGFwc2VkLCBvbkNvbGxhcHNlLCBkZWZhdWx0Q29sc051bWJlciA9IDMsIGxhYmVsV2lkdGgsIHNwbGl0ID0gZmFsc2UsIHNlYXJjaENvbmZpZywgc3luY1RvVXJsLCBvbkZpbmlzaCwgb25SZXNldCwgY2hpbGRyZW4sIHN1Ym1pdHRlciA9IGZhbHNlLCBpbml0aWFsVmFsdWVzOiBpbml0aWFsVmFsdWVzUHJvcCB9ID0gcHJvcHMsIGZvcm1Qcm9wcyA9IF9fcmVzdChwcm9wcywgW1wiZGVmYXVsdENvbGxhcHNlZFwiLCBcImNvbGxhcHNlZFwiLCBcIm9uQ29sbGFwc2VcIiwgXCJkZWZhdWx0Q29sc051bWJlclwiLCBcImxhYmVsV2lkdGhcIiwgXCJzcGxpdFwiLCBcInNlYXJjaENvbmZpZ1wiLCBcInN5bmNUb1VybFwiLCBcIm9uRmluaXNoXCIsIFwib25SZXNldFwiLCBcImNoaWxkcmVuXCIsIFwic3VibWl0dGVyXCIsIFwiaW5pdGlhbFZhbHVlc1wiXSk7XG4gICAgY29uc3QgW2NvbGxhcHNlZCwgc2V0Q29sbGFwc2VkXSA9IHVzZUNvbnRyb2xsZWRTdGF0ZShkZWZhdWx0Q29sbGFwc2VkLCBjb250cm9sbGVkQ29sbGFwc2VkKTtcbiAgICAvLyDilIDilIAgc3luY1RvVXJsOiBtZXJnZSBVUkwgcGFyYW1zIGludG8gaW5pdGlhbCB2YWx1ZXMgb24gbW91bnQg4pSA4pSAXG4gICAgLy8gT25lLXRpbWUgc25hcHNob3Qgb2YgdGhlIFVSTCBwYXJhbXMgYXQgbW91bnQuIExhenkgcmVmIGluaXQgaXMgSURFTVBPVEVOVCxcbiAgICAvLyBzbyBpdCBpcyBzYWZlIHVuZGVyIFN0cmljdE1vZGUncyBkb3VibGUgcmVuZGVyIChhbiBpbXB1cmUgXCJmaXJzdCBydW5cIiBmbGFnXG4gICAgLy8gaW5zaWRlIHVzZU1lbW8gd291bGQgcmV0dXJuIHRoZSB1bm1lcmdlZCB2YWx1ZSBvbiB0aGUgcmVwbGF5IGludm9jYXRpb24pLlxuICAgIGNvbnN0IHVybFBhcmFtc0F0TW91bnRSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgaWYgKHVybFBhcmFtc0F0TW91bnRSZWYuY3VycmVudCA9PT0gbnVsbCkge1xuICAgICAgICB1cmxQYXJhbXNBdE1vdW50UmVmLmN1cnJlbnQgPSBzeW5jVG9VcmwgPyBnZXRVcmxQYXJhbXMoKSA6IHt9O1xuICAgIH1cbiAgICAvLyBLZXlzIHRoaXMgZmlsdGVyIGhhcyBXUklUVEVOIHRvIHRoZSBVUkwg4oCUIHRoZSBvbmx5IGtleXMgc3VibWl0L3Jlc2V0IGlzXG4gICAgLy8gYWxsb3dlZCB0byBjbGVhci4gVGhlIGZ1bmN0aW9uIGZvcm0gb2Ygc3luY1RvVXJsIGFsc28gc2VlZHMgdGhpcyBmcm9tIGl0c1xuICAgIC8vIGZpbHRlcmVkICdnZXQnIHJlc3VsdCAodGhvc2Uga2V5cyBhcmUgdGhlIGZpbHRlcidzIG93biBieSBkZWZpbml0aW9uKS5cbiAgICBjb25zdCBtYW5hZ2VkS2V5c1JlZiA9IHVzZVJlZihuZXcgU2V0KCkpO1xuICAgIC8vIEJvb2xlYW4tbW9kZSBvbmx5OiBVUkwgcGFyYW1zIG1lcmdlZCBpbnRvIGluaXRpYWxWYWx1ZXMgYnV0IE5PVCB5ZXRcbiAgICAvLyBjbGFpbWVkLiBUaGUgYm9vbGVhbiBmb3JtIGNhbm5vdCB0ZWxsIGl0cyBvd24gcGFyYW1zIGZyb20gZm9yZWlnbiBvbmVzXG4gICAgLy8gKD90YWI94oCmKSwgc28gYSBzZWVkZWQga2V5IGlzIGNsYWltZWQgb25seSBvbmNlIGl0cyB2YWx1ZSBjaGFuZ2VzIChvciBpdFxuICAgIC8vIGRpc2FwcGVhcnMgZnJvbSB0aGUgc3VibWl0dGVkIHZhbHVlcywgaS5lLiB0aGUgdXNlciBjbGVhcmVkIHRoZSBmaWVsZCkuXG4gICAgY29uc3QgdXJsU2VlZGVkUmVmID0gdXNlUmVmKHt9KTtcbiAgICBjb25zdCBpbml0aWFsVmFsdWVzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKCFzeW5jVG9VcmwpXG4gICAgICAgICAgICByZXR1cm4gaW5pdGlhbFZhbHVlc1Byb3A7XG4gICAgICAgIGNvbnN0IHVybFBhcmFtcyA9IChfYSA9IHVybFBhcmFtc0F0TW91bnRSZWYuY3VycmVudCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDoge307XG4gICAgICAgIGlmICh0eXBlb2Ygc3luY1RvVXJsID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBjb25zdCBmcm9tVXJsID0gc3luY1RvVXJsKHVybFBhcmFtcywgJ2dldCcpO1xuICAgICAgICAgICAgLy8gSWRlbXBvdGVudCByZWYgd3JpdGVzIOKAlCBzYW1lIGlucHV0IG9uIGV2ZXJ5IGludm9jYXRpb24uXG4gICAgICAgICAgICBtYW5hZ2VkS2V5c1JlZi5jdXJyZW50ID0gbmV3IFNldChPYmplY3Qua2V5cyhmcm9tVXJsKSk7XG4gICAgICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBpbml0aWFsVmFsdWVzUHJvcCksIGZyb21VcmwpO1xuICAgICAgICB9XG4gICAgICAgIHVybFNlZWRlZFJlZi5jdXJyZW50ID0gT2JqZWN0LmFzc2lnbih7fSwgdXJsUGFyYW1zKTtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgaW5pdGlhbFZhbHVlc1Byb3ApLCB1cmxQYXJhbXMpO1xuICAgIH0sIFtdKTtcbiAgICBjb25zdCBoYW5kbGVTeW5jU2V0ID0gdXNlTWVtb2l6ZWRGbigodmFsdWVzKSA9PiB7XG4gICAgICAgIGlmICghc3luY1RvVXJsKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBsZXQgdG9Xcml0ZTtcbiAgICAgICAgY29uc3QgdG9DbGVhciA9IG5ldyBTZXQobWFuYWdlZEtleXNSZWYuY3VycmVudCk7XG4gICAgICAgIGlmICh0eXBlb2Ygc3luY1RvVXJsID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICB0b1dyaXRlID0gc3luY1RvVXJsKHZhbHVlcywgJ3NldCcpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgLy8gU2tpcCBVUkwtc2VlZGVkIGtleXMgd2UgbmV2ZXIgd3JvdGUgd2hvc2UgdmFsdWUgaXMgdW5jaGFuZ2VkIOKAlCB0aGV5XG4gICAgICAgICAgICAvLyBtYXkgYmVsb25nIHRvIHNvbWVvbmUgZWxzZSAoP3RhYj3igKYpOyBsZWF2ZSB0aGVtIGluIHRoZSBVUkwgdW50b3VjaGVkLlxuICAgICAgICAgICAgLy8gQSBzZWVkZWQga2V5IHdob3NlIHZhbHVlIERJRCBjaGFuZ2UgaXMgY2xhaW1lZCBmcm9tIG5vdyBvbi5cbiAgICAgICAgICAgIHRvV3JpdGUgPSB7fTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHZhbHVlcykpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzZWVkZWQgPSB1cmxTZWVkZWRSZWYuY3VycmVudFtrZXldO1xuICAgICAgICAgICAgICAgIGlmIChzZWVkZWQgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgICAgICAgICAhbWFuYWdlZEtleXNSZWYuY3VycmVudC5oYXMoa2V5KSAmJlxuICAgICAgICAgICAgICAgICAgICBTdHJpbmcodmFsdWUpID09PSBzZWVkZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGRlbGV0ZSB1cmxTZWVkZWRSZWYuY3VycmVudFtrZXldO1xuICAgICAgICAgICAgICAgIHRvQ2xlYXIuYWRkKGtleSk7XG4gICAgICAgICAgICAgICAgdG9Xcml0ZVtrZXldID0gdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBTZWVkZWQga2V5cyBtaXNzaW5nIGZyb20gdGhlIHN1Ym1pdHRlZCB2YWx1ZXMgd2VyZSBjbGVhcmVkIGJ5IHRoZVxuICAgICAgICAgICAgLy8gdXNlciAob21pdE5pbCBzdHJpcHMgZW1wdHkgdmFsdWVzKSDigJQgY2xhaW0gdGhlbSBhbmQgcmVtb3ZlIHRoZWlyXG4gICAgICAgICAgICAvLyBzdGFsZSBwYXJhbXMgZnJvbSB0aGUgVVJMLlxuICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXModXJsU2VlZGVkUmVmLmN1cnJlbnQpKSB7XG4gICAgICAgICAgICAgICAgaWYgKCEoa2V5IGluIHZhbHVlcykpIHtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHVybFNlZWRlZFJlZi5jdXJyZW50W2tleV07XG4gICAgICAgICAgICAgICAgICAgIHRvQ2xlYXIuYWRkKGtleSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIG1hbmFnZWRLZXlzUmVmLmN1cnJlbnQgPSBzZXRVcmxQYXJhbXModG9Xcml0ZSwgdG9DbGVhcik7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlRmluaXNoID0gdXNlTWVtb2l6ZWRGbigodmFsdWVzKSA9PiB7XG4gICAgICAgIGhhbmRsZVN5bmNTZXQodmFsdWVzKTtcbiAgICAgICAgb25GaW5pc2ggPT09IG51bGwgfHwgb25GaW5pc2ggPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uRmluaXNoKHZhbHVlcyk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlUmVzZXQgPSB1c2VNZW1vaXplZEZuKCgpID0+IHtcbiAgICAgICAgaWYgKHN5bmNUb1VybCkge1xuICAgICAgICAgICAgbWFuYWdlZEtleXNSZWYuY3VycmVudCA9IHNldFVybFBhcmFtcyh7fSwgbWFuYWdlZEtleXNSZWYuY3VycmVudCk7XG4gICAgICAgIH1cbiAgICAgICAgb25SZXNldCA9PT0gbnVsbCB8fCBvblJlc2V0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvblJlc2V0KCk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlQ29sbGFwc2UgPSB1c2VNZW1vaXplZEZuKCgpID0+IHtcbiAgICAgICAgY29uc3QgbmV4dCA9ICFjb2xsYXBzZWQ7XG4gICAgICAgIHNldENvbGxhcHNlZChuZXh0KTtcbiAgICAgICAgb25Db2xsYXBzZSA9PT0gbnVsbCB8fCBvbkNvbGxhcHNlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkNvbGxhcHNlKG5leHQpO1xuICAgIH0pO1xuICAgIC8vIENvdW50IGNoaWxkcmVuIGFuZCBzcGxpdCB2aXNpYmxlL2hpZGRlblxuICAgIGNvbnN0IGNoaWxkQXJyYXkgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgY29uc3QgYXJyID0gW107XG4gICAgICAgIFJlYWN0LkNoaWxkcmVuLmZvckVhY2goY2hpbGRyZW4sIChjaGlsZCkgPT4ge1xuICAgICAgICAgICAgaWYgKFJlYWN0LmlzVmFsaWRFbGVtZW50KGNoaWxkKSkge1xuICAgICAgICAgICAgICAgIGFyci5wdXNoKGNoaWxkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBhcnI7XG4gICAgfSwgW2NoaWxkcmVuXSk7XG4gICAgY29uc3QgdmlzaWJsZUNoaWxkcmVuID0gY29sbGFwc2VkXG4gICAgICAgID8gY2hpbGRBcnJheS5zbGljZSgwLCBkZWZhdWx0Q29sc051bWJlcilcbiAgICAgICAgOiBjaGlsZEFycmF5O1xuICAgIGNvbnN0IGhhc01vcmUgPSBjaGlsZEFycmF5Lmxlbmd0aCA+IGRlZmF1bHRDb2xzTnVtYmVyO1xuICAgIGNvbnN0IHNlYXJjaFRleHQgPSAoX2EgPSBzZWFyY2hDb25maWcgPT09IG51bGwgfHwgc2VhcmNoQ29uZmlnID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzZWFyY2hDb25maWcuc2VhcmNoVGV4dCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogREVGQVVMVF9URVhULnNlYXJjaDtcbiAgICBjb25zdCByZXNldFRleHQgPSAoX2IgPSBzZWFyY2hDb25maWcgPT09IG51bGwgfHwgc2VhcmNoQ29uZmlnID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzZWFyY2hDb25maWcucmVzZXRUZXh0KSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBERUZBVUxUX1RFWFQucmVzZXQ7XG4gICAgY29uc3QgYnV0dG9uU2l6ZSA9IHNlYXJjaENvbmZpZyA9PT0gbnVsbCB8fCBzZWFyY2hDb25maWcgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNlYXJjaENvbmZpZy5zaXplO1xuICAgIGNvbnN0IGxhYmVsU3R5bGUgPSBsYWJlbFdpZHRoICE9PSB1bmRlZmluZWQgJiYgbGFiZWxXaWR0aCAhPT0gJ2F1dG8nXG4gICAgICAgID8geyB3aWR0aDogbGFiZWxXaWR0aCB9XG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgIHJldHVybiAoX2pzeChQcm9Gb3JtLCBPYmplY3QuYXNzaWduKHt9LCBmb3JtUHJvcHMsIHsgaW5pdGlhbFZhbHVlczogaW5pdGlhbFZhbHVlcywgb25GaW5pc2g6IGhhbmRsZUZpbmlzaCwgb25SZXNldDogaGFuZGxlUmVzZXQsIHN1Ym1pdHRlcjogZmFsc2UsIGNoaWxkcmVuOiBfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygpLCBjaGlsZHJlbjogW3Zpc2libGVDaGlsZHJlbi5tYXAoKGNoaWxkLCBpbmRleCkgPT4gKF9qc3hzKFJlYWN0LkZyYWdtZW50LCB7IGNoaWxkcmVuOiBbc3BsaXQgJiYgaW5kZXggPiAwICYmIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3NwbGl0JykgfSksIGxhYmVsU3R5bGUgPyAoX2pzeChcImRpdlwiLCB7IHN0eWxlOiBsYWJlbFN0eWxlLCBjaGlsZHJlbjogY2hpbGQgfSkpIDogKGNoaWxkKV0gfSwgaW5kZXgpKSksIF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdhY3Rpb25zJyksIGNoaWxkcmVuOiBbX2pzeChCdXR0b24sIHsgdHlwZTogXCJzdWJtaXRcIiwgY29sb3I6IFwicHJpbWFyeVwiLCBzaXplOiBidXR0b25TaXplLCBjaGlsZHJlbjogc2VhcmNoVGV4dCB9KSwgX2pzeChCdXR0b24sIHsgdHlwZTogXCJidXR0b25cIiwgY29sb3I6IFwic2Vjb25kYXJ5XCIsIHNpemU6IGJ1dHRvblNpemUsIG9uQ2xpY2s6IGhhbmRsZVJlc2V0LCBjaGlsZHJlbjogcmVzZXRUZXh0IH0pLCBoYXNNb3JlICYmIChfanN4KEJ1dHRvbiwgeyB0eXBlOiBcImJ1dHRvblwiLCB2YXJpYW50OiBcInRleHRcIiwgc2l6ZTogYnV0dG9uU2l6ZSwgb25DbGljazogaGFuZGxlQ29sbGFwc2UsIGNoaWxkcmVuOiBjb2xsYXBzZWQgPyBERUZBVUxUX1RFWFQuZXhwYW5kIDogREVGQVVMVF9URVhULmNvbGxhcHNlIH0pKV0gfSldIH0pIH0pKSk7XG59O1xuUXVlcnlGaWx0ZXJCYXNlLmRpc3BsYXlOYW1lID0gJ1F1ZXJ5RmlsdGVyJztcbi8qKiBHZW5lcmljLWF3YXJlIGV4cG9ydCDigJQga2VlcHMgYDxRdWVyeUZpbHRlcjxNeVZhbHVlcz4g4oCmPmAgZnVsbHkgdHlwZWQuICovXG5leHBvcnQgY29uc3QgUXVlcnlGaWx0ZXIgPSBtZW1vKFF1ZXJ5RmlsdGVyQmFzZSk7XG5leHBvcnQgZGVmYXVsdCBRdWVyeUZpbHRlcjsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
@@ -27,6 +27,9 @@
27
27
  .om-component-ui-form-item {
28
28
  margin-bottom: var(--om-spacing-300, 12px);
29
29
  }
30
+ .om-component-ui-form-item-large {
31
+ margin-bottom: var(--om-spacing-600, 24px);
32
+ }
30
33
  .om-component-ui-form-item-small {
31
34
  margin-bottom: var(--om-spacing-200, 8px);
32
35
  }
@@ -54,6 +57,9 @@
54
57
  .om-component-ui-form-item .om-component-ui-form-item-error {
55
58
  margin-top: 8px;
56
59
  }
60
+ .om-component-ui-form-item .om-component-ui-form-item-warning {
61
+ margin-top: 8px;
62
+ }
57
63
  .om-component-ui-form-item .om-component-ui-form-item-feedback {
58
64
  margin-top: 8px;
59
65
  }
@@ -1,7 +1,7 @@
1
1
  import type { ReactNode } from 'react';
2
2
  import type { ButtonProps } from "../Button";
3
3
  import { getNestedValue, setNestedValue } from './core/pathUtils';
4
- import type { ProFormFieldTransformFn, ProFormValueEnumObj } from './interface';
4
+ import type { ProFormDateFormatter, ProFormFieldTransformFn, ProFormValueEnumObj, ProFormValueType } from './interface';
5
5
  export { getNestedValue, setNestedValue };
6
6
  export declare function stableSerialize(value: unknown): string;
7
7
  export declare function renderTextReadonly(value: unknown): ReactNode;
@@ -13,6 +13,17 @@ export declare function extractButtonProps(config: false | Partial<ButtonProps>
13
13
  rest: Partial<ButtonProps>;
14
14
  };
15
15
  export declare function transformSubmitValues(values: Record<string, unknown>, transforms: Record<string, ProFormFieldTransformFn>): Record<string, unknown>;
16
+ export declare const DATE_FORMAT = "YYYY-MM-DD";
17
+ export declare const DATE_TIME_FORMAT = "YYYY-MM-DD HH:mm:ss";
18
+ /** Minimal pattern formatter supporting YYYY / MM / DD / HH / mm / ss tokens. */
19
+ export declare function formatDateByPattern(date: Date, pattern: string): string;
20
+ /**
21
+ * Recursively serialize every `Date` in `values` according to `dateFormatter`.
22
+ * With `'string'`, fields registered as `valueType: 'dateTime'` use
23
+ * `YYYY-MM-DD HH:mm:ss`, everything else `YYYY-MM-DD`. Untouched when the
24
+ * formatter is `false`. Non-Date values pass through unchanged.
25
+ */
26
+ export declare function formatDateValues(values: Record<string, unknown>, dateFormatter: ProFormDateFormatter, valueTypes: Record<string, ProFormValueType>): Record<string, unknown>;
16
27
  export declare function omitNilValues(values: Record<string, unknown>): Record<string, unknown>;
17
28
  export interface ValueEnumOption {
18
29
  label: string;
@@ -1,4 +1,5 @@
1
1
  import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
3
  import _typeof from "@babel/runtime/helpers/esm/typeof";
3
4
  var __rest = this && this.__rest || function (s, e) {
4
5
  var t = {};
@@ -80,6 +81,9 @@ function isPlainObject(value) {
80
81
  export function transformSubmitValues(values, transforms) {
81
82
  var keys = Object.keys(transforms);
82
83
  if (keys.length === 0) return values;
84
+ // All nested writes go through setNestedValue (clones every object/array on
85
+ // the path) — `values` is the live form state and must never be mutated;
86
+ // only `result` itself (our own shallow copy) may be written directly.
83
87
  var result = Object.assign({}, values);
84
88
  // Process transforms in sorted key order for determinism
85
89
  keys.sort().forEach(function (name) {
@@ -95,42 +99,87 @@ export function transformSubmitValues(values, transforms) {
95
99
  delete result[name];
96
100
  Object.assign(result, transformed);
97
101
  } else {
98
- // Nested field — delete original and merge into parent object
102
+ // Nested field — rebuild the parent without the original key, merged
99
103
  var parentPath = name.slice(0, dotIndex);
100
104
  var parent = getNestedValue(result, parentPath);
101
105
  if (isPlainObject(parent)) {
102
106
  var childKey = name.slice(dotIndex + 1);
103
- delete parent[childKey];
104
- Object.assign(parent, transformed);
107
+ var newParent = Object.assign({}, parent);
108
+ delete newParent[childKey];
109
+ Object.assign(newParent, transformed);
110
+ result = setNestedValue(result, parentPath, newParent);
105
111
  }
106
112
  }
107
113
  } else {
108
- // Primitive value — replace in-place
109
- var _keys = name.split('.');
110
- if (_keys.length === 1) {
111
- result[name] = transformed;
112
- } else {
113
- var current = result;
114
- for (var i = 0; i < _keys.length - 1; i++) {
115
- var key = _keys[i];
116
- if (!isPlainObject(current[key]) && !Array.isArray(current[key])) {
117
- current[key] = {};
118
- }
119
- current = current[key];
120
- }
121
- current[_keys[_keys.length - 1]] = transformed;
122
- }
114
+ // Primitive value — replace at the (possibly nested) path
115
+ result = name.includes('.') ? setNestedValue(result, name, transformed) : Object.assign(Object.assign({}, result), _defineProperty({}, name, transformed));
123
116
  }
124
117
  });
125
118
  return result;
126
119
  }
127
120
  // ---------------------------------------------------------------------------
121
+ // Date formatting (form-level dateFormatter, dependency-free)
122
+ // ---------------------------------------------------------------------------
123
+ export var DATE_FORMAT = 'YYYY-MM-DD';
124
+ export var DATE_TIME_FORMAT = 'YYYY-MM-DD HH:mm:ss';
125
+ /** Minimal pattern formatter supporting YYYY / MM / DD / HH / mm / ss tokens. */
126
+ export function formatDateByPattern(date, pattern) {
127
+ var pad = function pad(n) {
128
+ return String(n).padStart(2, '0');
129
+ };
130
+ return pattern.replace(/YYYY/g, String(date.getFullYear())).replace(/MM/g, pad(date.getMonth() + 1)).replace(/DD/g, pad(date.getDate())).replace(/HH/g, pad(date.getHours())).replace(/mm/g, pad(date.getMinutes())).replace(/ss/g, pad(date.getSeconds()));
131
+ }
132
+ /**
133
+ * Recursively serialize every `Date` in `values` according to `dateFormatter`.
134
+ * With `'string'`, fields registered as `valueType: 'dateTime'` use
135
+ * `YYYY-MM-DD HH:mm:ss`, everything else `YYYY-MM-DD`. Untouched when the
136
+ * formatter is `false`. Non-Date values pass through unchanged.
137
+ */
138
+ export function formatDateValues(values, dateFormatter, valueTypes) {
139
+ if (dateFormatter === false) return values;
140
+ var formatOne = function formatOne(date, path) {
141
+ if (typeof dateFormatter === 'function') return dateFormatter(date, path);
142
+ if (dateFormatter === 'number') return date.getTime();
143
+ if (dateFormatter === 'string') {
144
+ var pattern = valueTypes[path] === 'dateTime' ? DATE_TIME_FORMAT : DATE_FORMAT;
145
+ return formatDateByPattern(date, pattern);
146
+ }
147
+ return formatDateByPattern(date, dateFormatter);
148
+ };
149
+ var _walk = function walk(value, path) {
150
+ if (value instanceof Date) return formatOne(value, path);
151
+ if (Array.isArray(value)) {
152
+ var changed = false;
153
+ var next = value.map(function (item, index) {
154
+ var walked = _walk(item, path ? "".concat(path, ".").concat(index) : String(index));
155
+ if (walked !== item) changed = true;
156
+ return walked;
157
+ });
158
+ return changed ? next : value;
159
+ }
160
+ if (isPlainObject(value)) {
161
+ var _changed = false;
162
+ var _next = {};
163
+ for (var _i = 0, _Object$keys = Object.keys(value); _i < _Object$keys.length; _i++) {
164
+ var key = _Object$keys[_i];
165
+ var child = value[key];
166
+ var walked = _walk(child, path ? "".concat(path, ".").concat(key) : key);
167
+ if (walked !== child) _changed = true;
168
+ _next[key] = walked;
169
+ }
170
+ return _changed ? _next : value;
171
+ }
172
+ return value;
173
+ };
174
+ return _walk(values, '');
175
+ }
176
+ // ---------------------------------------------------------------------------
128
177
  // omitNilValues — recursively remove null / undefined / '' from object
129
178
  // ---------------------------------------------------------------------------
130
179
  export function omitNilValues(values) {
131
180
  var result = {};
132
- for (var _i = 0, _Object$keys = Object.keys(values); _i < _Object$keys.length; _i++) {
133
- var key = _Object$keys[_i];
181
+ for (var _i2 = 0, _Object$keys2 = Object.keys(values); _i2 < _Object$keys2.length; _i2++) {
182
+ var key = _Object$keys2[_i2];
134
183
  var v = values[key];
135
184
  if (v === null || v === undefined || v === '') continue;
136
185
  if (isPlainObject(v)) {
@@ -162,4 +211,4 @@ export function valueEnumToOptions(valueEnum) {
162
211
  };
163
212
  });
164
213
  }
165
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS91dGlscy5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvUHJvRm9ybS91dGlscy50cyJdLCJuYW1lcyI6WyJfX3Jlc3QiLCJzIiwiZSIsInQiLCJwIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImkiLCJsZW5ndGgiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsIldJRFRIX1NJWkVfTUFQIiwiZ2V0TmVzdGVkVmFsdWUiLCJzZXROZXN0ZWRWYWx1ZSIsInN0YWJsZVNlcmlhbGl6ZSIsInZhbHVlIiwidW5kZWZpbmVkIiwiU3RyaW5nIiwiX3R5cGVvZiIsIkpTT04iLCJzdHJpbmdpZnkiLCJBcnJheSIsImlzQXJyYXkiLCJtYXAiLCJqb2luIiwia2V5cyIsInNvcnQiLCJrIiwicmVuZGVyVGV4dFJlYWRvbmx5IiwicmVuZGVyQm9vbGVhblJlYWRvbmx5IiwicmVuZGVyTnVtZXJpY1JlYWRvbmx5IiwibnVtIiwiTnVtYmVyIiwiaXNOYU4iLCJyZXNvbHZlV2lkdGgiLCJ3aWR0aCIsIl9hIiwibWQiLCJleHRyYWN0QnV0dG9uUHJvcHMiLCJjb25maWciLCJkaXNhYmxlZCIsInJlc3QiLCJfY29uZmlnJGRpc2FibGVkIiwiaXNQbGFpbk9iamVjdCIsInRyYW5zZm9ybVN1Ym1pdFZhbHVlcyIsInZhbHVlcyIsInRyYW5zZm9ybXMiLCJyZXN1bHQiLCJhc3NpZ24iLCJmb3JFYWNoIiwibmFtZSIsInRyYW5zZm9ybUZuIiwicmF3VmFsdWUiLCJ0cmFuc2Zvcm1lZCIsImRvdEluZGV4IiwibGFzdEluZGV4T2YiLCJwYXJlbnRQYXRoIiwic2xpY2UiLCJwYXJlbnQiLCJjaGlsZEtleSIsInNwbGl0IiwiY3VycmVudCIsImtleSIsIm9taXROaWxWYWx1ZXMiLCJfaSIsIl9PYmplY3Qka2V5cyIsInYiLCJjbGVhbmVkIiwidmFsdWVFbnVtVG9PcHRpb25zIiwidmFsdWVFbnVtIiwiZW50cmllcyIsIl9yZWYiLCJfcmVmMiIsIl9zbGljZWRUb0FycmF5IiwibGFiZWwiLCJ0ZXh0Il0sIm1hcHBpbmdzIjoiOztBQUFBLElBQUlBLE1BQU0sR0FBSSxJQUFJLElBQUksSUFBSSxDQUFDQSxNQUFNLElBQUssVUFBVUMsQ0FBQyxFQUFFQyxDQUFDLEVBQUU7RUFDbEQsSUFBSUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztFQUNWLEtBQUssSUFBSUMsQ0FBQyxJQUFJSCxDQUFDLEVBQUUsSUFBSUksTUFBTSxDQUFDQyxTQUFTLENBQUNDLGNBQWMsQ0FBQ0MsSUFBSSxDQUFDUCxDQUFDLEVBQUVHLENBQUMsQ0FBQyxJQUFJRixDQUFDLENBQUNPLE9BQU8sQ0FBQ0wsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUMvRUQsQ0FBQyxDQUFDQyxDQUFDLENBQUMsR0FBR0gsQ0FBQyxDQUFDRyxDQUFDLENBQUM7RUFDZixJQUFJSCxDQUFDLElBQUksSUFBSSxJQUFJLE9BQU9JLE1BQU0sQ0FBQ0sscUJBQXFCLEtBQUssVUFBVSxFQUMvRCxLQUFLLElBQUlDLENBQUMsR0FBRyxDQUFDLEVBQUVQLENBQUMsR0FBR0MsTUFBTSxDQUFDSyxxQkFBcUIsQ0FBQ1QsQ0FBQyxDQUFDLEVBQUVVLENBQUMsR0FBR1AsQ0FBQyxDQUFDUSxNQUFNLEVBQUVELENBQUMsRUFBRSxFQUFFO0lBQ3BFLElBQUlULENBQUMsQ0FBQ08sT0FBTyxDQUFDTCxDQUFDLENBQUNPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJTixNQUFNLENBQUNDLFNBQVMsQ0FBQ08sb0JBQW9CLENBQUNMLElBQUksQ0FBQ1AsQ0FBQyxFQUFFRyxDQUFDLENBQUNPLENBQUMsQ0FBQyxDQUFDLEVBQzFFUixDQUFDLENBQUNDLENBQUMsQ0FBQ08sQ0FBQyxDQUFDLENBQUMsR0FBR1YsQ0FBQyxDQUFDRyxDQUFDLENBQUNPLENBQUMsQ0FBQyxDQUFDO0VBQ3pCO0VBQ0osT0FBT1IsQ0FBQztBQUNaLENBQUM7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QUFHLENBQUMsRUFBRTtRQUNuQ3NDLE1BQU0sQ0FBQ2UsR0FBRyxDQUFDLEdBQUdLLE9BQU87TUFDdkI7SUFDRixDQUFDLE1BQU07TUFDTHBCLE1BQU0sQ0FBQ2UsR0FBRyxDQUFDLEdBQUdJLENBQUM7SUFDakI7RUFDRjtFQUNBLE9BQU9uQixNQUFNO0FBQ2Y7QUFXQSxPQUFNLFNBQVVxQixrQkFBa0JBLENBQ2hDQyxTQUE4QixFQUFBO0VBRTlCLE9BQU9uRSxNQUFNLENBQUNvRSxPQUFPLENBQUNELFNBQVMsQ0FBQyxDQUFDOUMsR0FBRyxDQUFDLFVBQUFnRCxJQUFBLEVBQWtCO0lBQUEsSUFBQUMsS0FBQSxHQUFBQyxjQUFBLENBQUFGLElBQUE7TUFBaEJULEdBQUcsR0FBQVUsS0FBQTtNQUFFakMsTUFBTSxHQUFBaUMsS0FBQTtJQUNoRCxJQUFJLE9BQU9qQyxNQUFNLEtBQUssUUFBUSxFQUFFO01BQzlCLE9BQU87UUFBRW1DLEtBQUssRUFBRW5DLE1BQU07UUFBRXhCLEtBQUssRUFBRStDO01BQUcsQ0FBRTtJQUN0QztJQUNBLE9BQU87TUFBRVksS0FBSyxFQUFFbkMsTUFBTSxDQUFDb0MsSUFBSTtNQUFFNUQsS0FBSyxFQUFFK0MsR0FBRztNQUFFdEIsUUFBUSxFQUFFRCxNQUFNLENBQUNDO0lBQVEsQ0FBRTtFQUN0RSxDQUFDLENBQUM7QUFDSiIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vdXRpbHMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBXSURUSF9TSVpFX01BUCB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IGdldE5lc3RlZFZhbHVlLCBzZXROZXN0ZWRWYWx1ZSB9IGZyb20gJy4vY29yZS9wYXRoVXRpbHMnO1xuLy8gUmUtZXhwb3J0ZWQgZm9yIGNvbnN1bWVycyB0aGF0IGltcG9ydCB0aGUgbmVzdGVkLXBhdGggaGVscGVycyBmcm9tIGAuL3V0aWxzYFxuLy8gKFByb0Zvcm1EZXBlbmRlbmN5LCBQcm9Gb3JtTGlzdCkuIENhbm9uaWNhbCBkZWZpbml0aW9ucyBsaXZlIGluIGNvcmUvcGF0aFV0aWxzLlxuZXhwb3J0IHsgZ2V0TmVzdGVkVmFsdWUsIHNldE5lc3RlZFZhbHVlIH07XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHN0YWJsZVNlcmlhbGl6ZSDigJQgZGV0ZXJtaW5pc3RpYyBkZWVwIHNlcmlhbGl6YXRpb24gZm9yIHBhcmFtcyBjb21wYXJpc29uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmV4cG9ydCBmdW5jdGlvbiBzdGFibGVTZXJpYWxpemUodmFsdWUpIHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZClcbiAgICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ29iamVjdCcpXG4gICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiAnWycgKyB2YWx1ZS5tYXAoc3RhYmxlU2VyaWFsaXplKS5qb2luKCcsJykgKyAnXSc7XG4gICAgfVxuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyh2YWx1ZSkuc29ydCgpO1xuICAgIHJldHVybiAoJ3snICtcbiAgICAgICAga2V5c1xuICAgICAgICAgICAgLm1hcCgoaykgPT4gSlNPTi5zdHJpbmdpZnkoaykgK1xuICAgICAgICAgICAgJzonICtcbiAgICAgICAgICAgIHN0YWJsZVNlcmlhbGl6ZSh2YWx1ZVtrXSkpXG4gICAgICAgICAgICAuam9pbignLCcpICtcbiAgICAgICAgJ30nKTtcbn1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUmVhZG9ubHkgcmVuZGVyZXJzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJUZXh0UmVhZG9ubHkodmFsdWUpIHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gJycpXG4gICAgICAgIHJldHVybiAnLSc7XG4gICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG59XG5leHBvcnQgZnVuY3Rpb24gcmVuZGVyQm9vbGVhblJlYWRvbmx5KHZhbHVlKSB7XG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpXG4gICAgICAgIHJldHVybiAnLSc7XG4gICAgcmV0dXJuIHZhbHVlID8gJ1llcycgOiAnTm8nO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlck51bWVyaWNSZWFkb25seSh2YWx1ZSkge1xuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSAnJylcbiAgICAgICAgcmV0dXJuICctJztcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJylcbiAgICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gICAgY29uc3QgbnVtID0gTnVtYmVyKHZhbHVlKTtcbiAgICBpZiAoTnVtYmVyLmlzTmFOKG51bSkpXG4gICAgICAgIHJldHVybiAnLSc7XG4gICAgcmV0dXJuIFN0cmluZyhudW0pO1xufVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyByZXNvbHZlV2lkdGgg4oCUIGNvbnZlcnQgbmFtZWQgd2lkdGggdG8gcHggb3IgcGFzcyB0aHJvdWdoIG51bWJlclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVdpZHRoKHdpZHRoKSB7XG4gICAgdmFyIF9hO1xuICAgIGlmICh0eXBlb2Ygd2lkdGggPT09ICdudW1iZXInKVxuICAgICAgICByZXR1cm4gd2lkdGg7XG4gICAgcmV0dXJuIChfYSA9IFdJRFRIX1NJWkVfTUFQW3dpZHRoXSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogV0lEVEhfU0laRV9NQVAubWQ7XG59XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIGV4dHJhY3RCdXR0b25Qcm9wcyDigJQgc2FmZWx5IGV4dHJhY3QgcHJvcHMgZnJvbSBidXR0b24gY29uZmlnXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0QnV0dG9uUHJvcHMoY29uZmlnKSB7XG4gICAgaWYgKGNvbmZpZyA9PT0gZmFsc2UgfHwgY29uZmlnID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIHsgZGlzYWJsZWQ6IGZhbHNlLCByZXN0OiB7fSB9O1xuICAgIH1cbiAgICBjb25zdCB7IGRpc2FibGVkID0gZmFsc2UgfSA9IGNvbmZpZywgcmVzdCA9IF9fcmVzdChjb25maWcsIFtcImRpc2FibGVkXCJdKTtcbiAgICByZXR1cm4geyBkaXNhYmxlZCwgcmVzdCB9O1xufVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyB0cmFuc2Zvcm1TdWJtaXRWYWx1ZXMg4oCUIGFwcGx5IHJlZ2lzdGVyZWQgZmllbGQgdHJhbnNmb3JtcyB0byBmb3JtIHZhbHVlc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBpc1BsYWluT2JqZWN0KHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlICE9PSBudWxsICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkodmFsdWUpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybVN1Ym1pdFZhbHVlcyh2YWx1ZXMsIHRyYW5zZm9ybXMpIHtcbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXModHJhbnNmb3Jtcyk7XG4gICAgaWYgKGtleXMubGVuZ3RoID09PSAwKVxuICAgICAgICByZXR1cm4gdmFsdWVzO1xuICAgIGNvbnN0IHJlc3VsdCA9IE9iamVjdC5hc3NpZ24oe30sIHZhbHVlcyk7XG4gICAgLy8gUHJvY2VzcyB0cmFuc2Zvcm1zIGluIHNvcnRlZCBrZXkgb3JkZXIgZm9yIGRldGVybWluaXNtXG4gICAga2V5cy5zb3J0KCkuZm9yRWFjaCgobmFtZSkgPT4ge1xuICAgICAgICBjb25zdCB0cmFuc2Zvcm1GbiA9IHRyYW5zZm9ybXNbbmFtZV07XG4gICAgICAgIGlmICh0eXBlb2YgdHJhbnNmb3JtRm4gIT09ICdmdW5jdGlvbicpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IHJhd1ZhbHVlID0gZ2V0TmVzdGVkVmFsdWUocmVzdWx0LCBuYW1lKTtcbiAgICAgICAgY29uc3QgdHJhbnNmb3JtZWQgPSB0cmFuc2Zvcm1GbihyYXdWYWx1ZSwgbmFtZSwgcmVzdWx0KTtcbiAgICAgICAgaWYgKGlzUGxhaW5PYmplY3QodHJhbnNmb3JtZWQpKSB7XG4gICAgICAgICAgICAvLyBJZiB0cmFuc2Zvcm0gcmV0dXJucyBhbiBvYmplY3QsIGRlbGV0ZSBvcmlnaW5hbCBrZXkgYW5kIG1lcmdlIHRvIHBhcmVudFxuICAgICAgICAgICAgY29uc3QgZG90SW5kZXggPSBuYW1lLmxhc3RJbmRleE9mKCcuJyk7XG4gICAgICAgICAgICBpZiAoZG90SW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgLy8gVG9wLWxldmVsIGZpZWxkIOKAlCBkZWxldGUgb3JpZ2luYWwgYW5kIG1lcmdlIGF0IHJvb3RcbiAgICAgICAgICAgICAgICBkZWxldGUgcmVzdWx0W25hbWVdO1xuICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24ocmVzdWx0LCB0cmFuc2Zvcm1lZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBOZXN0ZWQgZmllbGQg4oCUIGRlbGV0ZSBvcmlnaW5hbCBhbmQgbWVyZ2UgaW50byBwYXJlbnQgb2JqZWN0XG4gICAgICAgICAgICAgICAgY29uc3QgcGFyZW50UGF0aCA9IG5hbWUuc2xpY2UoMCwgZG90SW5kZXgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudCA9IGdldE5lc3RlZFZhbHVlKHJlc3VsdCwgcGFyZW50UGF0aCk7XG4gICAgICAgICAgICAgICAgaWYgKGlzUGxhaW5PYmplY3QocGFyZW50KSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGlsZEtleSA9IG5hbWUuc2xpY2UoZG90SW5kZXggKyAxKTtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHBhcmVudFtjaGlsZEtleV07XG4gICAgICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24ocGFyZW50LCB0cmFuc2Zvcm1lZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgLy8gUHJpbWl0aXZlIHZhbHVlIOKAlCByZXBsYWNlIGluLXBsYWNlXG4gICAgICAgICAgICBjb25zdCBrZXlzID0gbmFtZS5zcGxpdCgnLicpO1xuICAgICAgICAgICAgaWYgKGtleXMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0W25hbWVdID0gdHJhbnNmb3JtZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBsZXQgY3VycmVudCA9IHJlc3VsdDtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGtleXMubGVuZ3RoIC0gMTsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IGtleXNbaV07XG4gICAgICAgICAgICAgICAgICAgIGlmICghaXNQbGFpbk9iamVjdChjdXJyZW50W2tleV0pICYmICFBcnJheS5pc0FycmF5KGN1cnJlbnRba2V5XSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRba2V5XSA9IHt9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50W2tleV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGN1cnJlbnRba2V5c1trZXlzLmxlbmd0aCAtIDFdXSA9IHRyYW5zZm9ybWVkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gb21pdE5pbFZhbHVlcyDigJQgcmVjdXJzaXZlbHkgcmVtb3ZlIG51bGwgLyB1bmRlZmluZWQgLyAnJyBmcm9tIG9iamVjdFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5leHBvcnQgZnVuY3Rpb24gb21pdE5pbFZhbHVlcyh2YWx1ZXMpIHtcbiAgICBjb25zdCByZXN1bHQgPSB7fTtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyh2YWx1ZXMpKSB7XG4gICAgICAgIGNvbnN0IHYgPSB2YWx1ZXNba2V5XTtcbiAgICAgICAgaWYgKHYgPT09IG51bGwgfHwgdiA9PT0gdW5kZWZpbmVkIHx8IHYgPT09ICcnKVxuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIGlmIChpc1BsYWluT2JqZWN0KHYpKSB7XG4gICAgICAgICAgICBjb25zdCBjbGVhbmVkID0gb21pdE5pbFZhbHVlcyh2KTtcbiAgICAgICAgICAgIGlmIChPYmplY3Qua2V5cyhjbGVhbmVkKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0W2tleV0gPSBjbGVhbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmVzdWx0W2tleV0gPSB2O1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59XG5leHBvcnQgZnVuY3Rpb24gdmFsdWVFbnVtVG9PcHRpb25zKHZhbHVlRW51bSkge1xuICAgIHJldHVybiBPYmplY3QuZW50cmllcyh2YWx1ZUVudW0pLm1hcCgoW2tleSwgY29uZmlnXSkgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIGNvbmZpZyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHJldHVybiB7IGxhYmVsOiBjb25maWcsIHZhbHVlOiBrZXkgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBsYWJlbDogY29uZmlnLnRleHQsIHZhbHVlOiBrZXksIGRpc2FibGVkOiBjb25maWcuZGlzYWJsZWQgfTtcbiAgICB9KTtcbn0iLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
214
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS91dGlscy5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvUHJvRm9ybS91dGlscy50cyJdLCJuYW1lcyI6WyJfX3Jlc3QiLCJzIiwiZSIsInQiLCJwIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImkiLCJsZW5ndGgiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsIldJRFRIX1NJWkVfTUFQIiwiZ2V0TmVzdGVkVmFsdWUiLCJzZXROZXN0ZWRWYWx1ZSIsInN0YWJsZVNlcmlhbGl6ZSIsInZhbHVlIiwidW5kZWZpbmVkIiwiU3RyaW5nIiwiX3R5cGVvZiIsIkpTT04iLCJzdHJpbmdpZnkiLCJBcnJheSIsImlzQXJyYXkiLCJtYXAiLCJqb2luIiwia2V5cyIsInNvcnQiLCJrIiwicmVuZGVyVGV4dFJlYWRvbmx5IiwicmVuZGVyQm9vbGVhblJlYWRvbmx5IiwicmVuZGVyTnVtZXJpY1JlYWRvbmx5IiwibnVtIiwiTnVtYmVyIiwiaXNOYU4iLCJyZXNvbHZlV2lkdGgiLCJ3aWR0aCIsIl9hIiwibWQiLCJleHRyYWN0QnV0dG9uUHJvcHMiLCJjb25maWciLCJkaXNhYmxlZCIsInJlc3QiLCJfY29uZmlnJGRpc2FibGVkIiwiaXNQbGFpbk9iamVjdCIsInRyYW5zZm9ybVN1Ym1pdFZhbHVlcyIsInZhbHVlcyIsInRyYW5zZm9ybXMiLCJyZXN1bHQiLCJhc3NpZ24iLCJmb3JFYWNoIiwibmFtZSIsInRyYW5zZm9ybUZuIiwicmF3VmFsdWUiLCJ0cmFuc2Zvcm1lZCIsImRvdEluZGV4IiwibGFzdEluZGV4T2YiLCJwYXJlbnRQYXRoIiwic2xpY2UiLCJwYXJlbnQiLCJjaGlsZEtleSIsIm5ld1BhcmVudCIsImluY2x1ZGVzIiwiX2RlZmluZVByb3BlcnR5IiwiREFURV9GT1JNQVQiLCJEQVRFX1RJTUVfRk9STUFUIiwiZm9ybWF0RGF0ZUJ5UGF0dGVybiIsImRhdGUiLCJwYXR0ZXJuIiwicGFkIiwibiIsInBhZFN0YXJ0IiwicmVwbGFjZSIsImdldEZ1bGxZZWFyIiwiZ2V0TW9udGgiLCJnZXREYXRlIiwiZ2V0SG91cnMiLCJnZXRNaW51dGVzIiwiZ2V0U2Vjb25kcyIsImZvcm1hdERhdGVWYWx1ZXMiLCJkYXRlRm9ybWF0dGVyIiwidmFsdWVUeXBlcyIsImZvcm1hdE9uZSIsInBhdGgiLCJnZXRUaW1lIiwid2FsayIsIkRhdGUiLCJjaGFuZ2VkIiwibmV4dCIsIml0ZW0iLCJpbmRleCIsIndhbGtlZCIsImNvbmNhdCIsIl9pIiwiX09iamVjdCRrZXlzIiwia2V5IiwiY2hpbGQiLCJvbWl0TmlsVmFsdWVzIiwiX2kyIiwiX09iamVjdCRrZXlzMiIsInYiLCJjbGVhbmVkIiwidmFsdWVFbnVtVG9PcHRpb25zIiwidmFsdWVFbnVtIiwiZW50cmllcyIsIl9yZWYiLCJfcmVmMiIsIl9zbGljZWRUb0FycmF5IiwibGFiZWwiLCJ0ZXh0Il0sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFJQSxNQUFNLEdBQUksSUFBSSxJQUFJLElBQUksQ0FBQ0EsTUFBTSxJQUFLLFVBQVVDLENBQUMsRUFBRUMsQ0FBQyxFQUFFO0VBQ2xELElBQUlDLENBQUMsR0FBRyxDQUFDLENBQUM7RUFDVixLQUFLLElBQUlDLENBQUMsSUFBSUgsQ0FBQyxFQUFFLElBQUlJLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ1AsQ0FBQyxFQUFFRyxDQUFDLENBQUMsSUFBSUYsQ0FBQyxDQUFDTyxPQUFPLENBQUNMLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFDL0VELENBQUMsQ0FBQ0MsQ0FBQyxDQUFDLEdBQUdILENBQUMsQ0FBQ0csQ0FBQyxDQUFDO0VBQ2YsSUFBSUgsQ0FBQyxJQUFJLElBQUksSUFBSSxPQUFPSSxNQUFNLENBQUNLLHFCQUFxQixLQUFLLFVBQVUsRUFDL0QsS0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxFQUFFUCxDQUFDLEdB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QUMsR0FBR0ssQ0FBQztJQUNqQjtFQUNGO0VBQ0EsT0FBT3BELE1BQU07QUFDZjtBQVdBLE9BQU0sU0FBVXNELGtCQUFrQkEsQ0FDaENDLFNBQThCLEVBQUE7RUFFOUIsT0FBT3BHLE1BQU0sQ0FBQ3FHLE9BQU8sQ0FBQ0QsU0FBUyxDQUFDLENBQUMvRSxHQUFHLENBQUMsVUFBQWlGLElBQUEsRUFBa0I7SUFBQSxJQUFBQyxLQUFBLEdBQUFDLGNBQUEsQ0FBQUYsSUFBQTtNQUFoQlYsR0FBRyxHQUFBVyxLQUFBO01BQUVsRSxNQUFNLEdBQUFrRSxLQUFBO0lBQ2hELElBQUksT0FBT2xFLE1BQU0sS0FBSyxRQUFRLEVBQUU7TUFDOUIsT0FBTztRQUFFb0UsS0FBSyxFQUFFcEUsTUFBTTtRQUFFeEIsS0FBSyxFQUFFK0U7TUFBRyxDQUFFO0lBQ3RDO0lBQ0EsT0FBTztNQUFFYSxLQUFLLEVBQUVwRSxNQUFNLENBQUNxRSxJQUFJO01BQUU3RixLQUFLLEVBQUUrRSxHQUFHO01BQUV0RCxRQUFRLEVBQUVELE1BQU0sQ0FBQ0M7SUFBUSxDQUFFO0VBQ3RFLENBQUMsQ0FBQztBQUNKIiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvRm9ybS91dGlscy5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IFdJRFRIX1NJWkVfTUFQIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgZ2V0TmVzdGVkVmFsdWUsIHNldE5lc3RlZFZhbHVlIH0gZnJvbSAnLi9jb3JlL3BhdGhVdGlscyc7XG4vLyBSZS1leHBvcnRlZCBmb3IgY29uc3VtZXJzIHRoYXQgaW1wb3J0IHRoZSBuZXN0ZWQtcGF0aCBoZWxwZXJzIGZyb20gYC4vdXRpbHNgXG4vLyAoUHJvRm9ybURlcGVuZGVuY3ksIFByb0Zvcm1MaXN0KS4gQ2Fub25pY2FsIGRlZmluaXRpb25zIGxpdmUgaW4gY29yZS9wYXRoVXRpbHMuXG5leHBvcnQgeyBnZXROZXN0ZWRWYWx1ZSwgc2V0TmVzdGVkVmFsdWUgfTtcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gc3RhYmxlU2VyaWFsaXplIOKAlCBkZXRlcm1pbmlzdGljIGRlZXAgc2VyaWFsaXphdGlvbiBmb3IgcGFyYW1zIGNvbXBhcmlzb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZXhwb3J0IGZ1bmN0aW9uIHN0YWJsZVNlcmlhbGl6ZSh2YWx1ZSkge1xuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKVxuICAgICAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnb2JqZWN0JylcbiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHZhbHVlKTtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuICdbJyArIHZhbHVlLm1hcChzdGFibGVTZXJpYWxpemUpLmpvaW4oJywnKSArICddJztcbiAgICB9XG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHZhbHVlKS5zb3J0KCk7XG4gICAgcmV0dXJuICgneycgK1xuICAgICAgICBrZXlzXG4gICAgICAgICAgICAubWFwKChrKSA9PiBKU09OLnN0cmluZ2lmeShrKSArXG4gICAgICAgICAgICAnOicgK1xuICAgICAgICAgICAgc3RhYmxlU2VyaWFsaXplKHZhbHVlW2tdKSlcbiAgICAgICAgICAgIC5qb2luKCcsJykgK1xuICAgICAgICAnfScpO1xufVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBSZWFkb25seSByZW5kZXJlcnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlclRleHRSZWFkb25seSh2YWx1ZSkge1xuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSAnJylcbiAgICAgICAgcmV0dXJuICctJztcbiAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJCb29sZWFuUmVhZG9ubHkodmFsdWUpIHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZClcbiAgICAgICAgcmV0dXJuICctJztcbiAgICByZXR1cm4gdmFsdWUgPyAnWWVzJyA6ICdObyc7XG59XG5leHBvcnQgZnVuY3Rpb24gcmVuZGVyTnVtZXJpY1JlYWRvbmx5KHZhbHVlKSB7XG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09ICcnKVxuICAgICAgICByZXR1cm4gJy0nO1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKVxuICAgICAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbiAgICBjb25zdCBudW0gPSBOdW1iZXIodmFsdWUpO1xuICAgIGlmIChOdW1iZXIuaXNOYU4obnVtKSlcbiAgICAgICAgcmV0dXJuICctJztcbiAgICByZXR1cm4gU3RyaW5nKG51bSk7XG59XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHJlc29sdmVXaWR0aCDigJQgY29udmVydCBuYW1lZCB3aWR0aCB0byBweCBvciBwYXNzIHRocm91Z2ggbnVtYmVyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlV2lkdGgod2lkdGgpIHtcbiAgICB2YXIgX2E7XG4gICAgaWYgKHR5cGVvZiB3aWR0aCA9PT0gJ251bWJlcicpXG4gICAgICAgIHJldHVybiB3aWR0aDtcbiAgICByZXR1cm4gKF9hID0gV0lEVEhfU0laRV9NQVBbd2lkdGhdKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBXSURUSF9TSVpFX01BUC5tZDtcbn1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gZXh0cmFjdEJ1dHRvblByb3BzIOKAlCBzYWZlbHkgZXh0cmFjdCBwcm9wcyBmcm9tIGJ1dHRvbiBjb25maWdcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RCdXR0b25Qcm9wcyhjb25maWcpIHtcbiAgICBpZiAoY29uZmlnID09PSBmYWxzZSB8fCBjb25maWcgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4geyBkaXNhYmxlZDogZmFsc2UsIHJlc3Q6IHt9IH07XG4gICAgfVxuICAgIGNvbnN0IHsgZGlzYWJsZWQgPSBmYWxzZSB9ID0gY29uZmlnLCByZXN0ID0gX19yZXN0KGNvbmZpZywgW1wiZGlzYWJsZWRcIl0pO1xuICAgIHJldHVybiB7IGRpc2FibGVkLCByZXN0IH07XG59XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHRyYW5zZm9ybVN1Ym1pdFZhbHVlcyDigJQgYXBwbHkgcmVnaXN0ZXJlZCBmaWVsZCB0cmFuc2Zvcm1zIHRvIGZvcm0gdmFsdWVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIGlzUGxhaW5PYmplY3QodmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUgIT09IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheSh2YWx1ZSk7XG59XG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtU3VibWl0VmFsdWVzKHZhbHVlcywgdHJhbnNmb3Jtcykge1xuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyh0cmFuc2Zvcm1zKTtcbiAgICBpZiAoa2V5cy5sZW5ndGggPT09IDApXG4gICAgICAgIHJldHVybiB2YWx1ZXM7XG4gICAgLy8gQWxsIG5lc3RlZCB3cml0ZXMgZ28gdGhyb3VnaCBzZXROZXN0ZWRWYWx1ZSAoY2xvbmVzIGV2ZXJ5IG9iamVjdC9hcnJheSBvblxuICAgIC8vIHRoZSBwYXRoKSDigJQgYHZhbHVlc2AgaXMgdGhlIGxpdmUgZm9ybSBzdGF0ZSBhbmQgbXVzdCBuZXZlciBiZSBtdXRhdGVkO1xuICAgIC8vIG9ubHkgYHJlc3VsdGAgaXRzZWxmIChvdXIgb3duIHNoYWxsb3cgY29weSkgbWF5IGJlIHdyaXR0ZW4gZGlyZWN0bHkuXG4gICAgbGV0IHJlc3VsdCA9IE9iamVjdC5hc3NpZ24oe30sIHZhbHVlcyk7XG4gICAgLy8gUHJvY2VzcyB0cmFuc2Zvcm1zIGluIHNvcnRlZCBrZXkgb3JkZXIgZm9yIGRldGVybWluaXNtXG4gICAga2V5cy5zb3J0KCkuZm9yRWFjaCgobmFtZSkgPT4ge1xuICAgICAgICBjb25zdCB0cmFuc2Zvcm1GbiA9IHRyYW5zZm9ybXNbbmFtZV07XG4gICAgICAgIGlmICh0eXBlb2YgdHJhbnNmb3JtRm4gIT09ICdmdW5jdGlvbicpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IHJhd1ZhbHVlID0gZ2V0TmVzdGVkVmFsdWUocmVzdWx0LCBuYW1lKTtcbiAgICAgICAgY29uc3QgdHJhbnNmb3JtZWQgPSB0cmFuc2Zvcm1GbihyYXdWYWx1ZSwgbmFtZSwgcmVzdWx0KTtcbiAgICAgICAgaWYgKGlzUGxhaW5PYmplY3QodHJhbnNmb3JtZWQpKSB7XG4gICAgICAgICAgICAvLyBJZiB0cmFuc2Zvcm0gcmV0dXJucyBhbiBvYmplY3QsIGRlbGV0ZSBvcmlnaW5hbCBrZXkgYW5kIG1lcmdlIHRvIHBhcmVudFxuICAgICAgICAgICAgY29uc3QgZG90SW5kZXggPSBuYW1lLmxhc3RJbmRleE9mKCcuJyk7XG4gICAgICAgICAgICBpZiAoZG90SW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgLy8gVG9wLWxldmVsIGZpZWxkIOKAlCBkZWxldGUgb3JpZ2luYWwgYW5kIG1lcmdlIGF0IHJvb3RcbiAgICAgICAgICAgICAgICBkZWxldGUgcmVzdWx0W25hbWVdO1xuICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24ocmVzdWx0LCB0cmFuc2Zvcm1lZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBOZXN0ZWQgZmllbGQg4oCUIHJlYnVpbGQgdGhlIHBhcmVudCB3aXRob3V0IHRoZSBvcmlnaW5hbCBrZXksIG1lcmdlZFxuICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudFBhdGggPSBuYW1lLnNsaWNlKDAsIGRvdEluZGV4KTtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnQgPSBnZXROZXN0ZWRWYWx1ZShyZXN1bHQsIHBhcmVudFBhdGgpO1xuICAgICAgICAgICAgICAgIGlmIChpc1BsYWluT2JqZWN0KHBhcmVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hpbGRLZXkgPSBuYW1lLnNsaWNlKGRvdEluZGV4ICsgMSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld1BhcmVudCA9IE9iamVjdC5hc3NpZ24oe30sIHBhcmVudCk7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBuZXdQYXJlbnRbY2hpbGRLZXldO1xuICAgICAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKG5ld1BhcmVudCwgdHJhbnNmb3JtZWQpO1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBzZXROZXN0ZWRWYWx1ZShyZXN1bHQsIHBhcmVudFBhdGgsIG5ld1BhcmVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgLy8gUHJpbWl0aXZlIHZhbHVlIOKAlCByZXBsYWNlIGF0IHRoZSAocG9zc2libHkgbmVzdGVkKSBwYXRoXG4gICAgICAgICAgICByZXN1bHQgPSBuYW1lLmluY2x1ZGVzKCcuJylcbiAgICAgICAgICAgICAgICA/IHNldE5lc3RlZFZhbHVlKHJlc3VsdCwgbmFtZSwgdHJhbnNmb3JtZWQpXG4gICAgICAgICAgICAgICAgOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHJlc3VsdCksIHsgW25hbWVdOiB0cmFuc2Zvcm1lZCB9KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG59XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIERhdGUgZm9ybWF0dGluZyAoZm9ybS1sZXZlbCBkYXRlRm9ybWF0dGVyLCBkZXBlbmRlbmN5LWZyZWUpXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmV4cG9ydCBjb25zdCBEQVRFX0ZPUk1BVCA9ICdZWVlZLU1NLUREJztcbmV4cG9ydCBjb25zdCBEQVRFX1RJTUVfRk9STUFUID0gJ1lZWVktTU0tREQgSEg6bW06c3MnO1xuLyoqIE1pbmltYWwgcGF0dGVybiBmb3JtYXR0ZXIgc3VwcG9ydGluZyBZWVlZIC8gTU0gLyBERCAvIEhIIC8gbW0gLyBzcyB0b2tlbnMuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0RGF0ZUJ5UGF0dGVybihkYXRlLCBwYXR0ZXJuKSB7XG4gICAgY29uc3QgcGFkID0gKG4pID0+IFN0cmluZyhuKS5wYWRTdGFydCgyLCAnMCcpO1xuICAgIHJldHVybiBwYXR0ZXJuXG4gICAgICAgIC5yZXBsYWNlKC9ZWVlZL2csIFN0cmluZyhkYXRlLmdldEZ1bGxZZWFyKCkpKVxuICAgICAgICAucmVwbGFjZSgvTU0vZywgcGFkKGRhdGUuZ2V0TW9udGgoKSArIDEpKVxuICAgICAgICAucmVwbGFjZSgvREQvZywgcGFkKGRhdGUuZ2V0RGF0ZSgpKSlcbiAgICAgICAgLnJlcGxhY2UoL0hIL2csIHBhZChkYXRlLmdldEhvdXJzKCkpKVxuICAgICAgICAucmVwbGFjZSgvbW0vZywgcGFkKGRhdGUuZ2V0TWludXRlcygpKSlcbiAgICAgICAgLnJlcGxhY2UoL3NzL2csIHBhZChkYXRlLmdldFNlY29uZHMoKSkpO1xufVxuLyoqXG4gKiBSZWN1cnNpdmVseSBzZXJpYWxpemUgZXZlcnkgYERhdGVgIGluIGB2YWx1ZXNgIGFjY29yZGluZyB0byBgZGF0ZUZvcm1hdHRlcmAuXG4gKiBXaXRoIGAnc3RyaW5nJ2AsIGZpZWxkcyByZWdpc3RlcmVkIGFzIGB2YWx1ZVR5cGU6ICdkYXRlVGltZSdgIHVzZVxuICogYFlZWVktTU0tREQgSEg6bW06c3NgLCBldmVyeXRoaW5nIGVsc2UgYFlZWVktTU0tRERgLiBVbnRvdWNoZWQgd2hlbiB0aGVcbiAqIGZvcm1hdHRlciBpcyBgZmFsc2VgLiBOb24tRGF0ZSB2YWx1ZXMgcGFzcyB0aHJvdWdoIHVuY2hhbmdlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdERhdGVWYWx1ZXModmFsdWVzLCBkYXRlRm9ybWF0dGVyLCB2YWx1ZVR5cGVzKSB7XG4gICAgaWYgKGRhdGVGb3JtYXR0ZXIgPT09IGZhbHNlKVxuICAgICAgICByZXR1cm4gdmFsdWVzO1xuICAgIGNvbnN0IGZvcm1hdE9uZSA9IChkYXRlLCBwYXRoKSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2YgZGF0ZUZvcm1hdHRlciA9PT0gJ2Z1bmN0aW9uJylcbiAgICAgICAgICAgIHJldHVybiBkYXRlRm9ybWF0dGVyKGRhdGUsIHBhdGgpO1xuICAgICAgICBpZiAoZGF0ZUZvcm1hdHRlciA9PT0gJ251bWJlcicpXG4gICAgICAgICAgICByZXR1cm4gZGF0ZS5nZXRUaW1lKCk7XG4gICAgICAgIGlmIChkYXRlRm9ybWF0dGVyID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgY29uc3QgcGF0dGVybiA9IHZhbHVlVHlwZXNbcGF0aF0gPT09ICdkYXRlVGltZScgPyBEQVRFX1RJTUVfRk9STUFUIDogREFURV9GT1JNQVQ7XG4gICAgICAgICAgICByZXR1cm4gZm9ybWF0RGF0ZUJ5UGF0dGVybihkYXRlLCBwYXR0ZXJuKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZm9ybWF0RGF0ZUJ5UGF0dGVybihkYXRlLCBkYXRlRm9ybWF0dGVyKTtcbiAgICB9O1xuICAgIGNvbnN0IHdhbGsgPSAodmFsdWUsIHBhdGgpID0+IHtcbiAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSlcbiAgICAgICAgICAgIHJldHVybiBmb3JtYXRPbmUodmFsdWUsIHBhdGgpO1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIGxldCBjaGFuZ2VkID0gZmFsc2U7XG4gICAgICAgICAgICBjb25zdCBuZXh0ID0gdmFsdWUubWFwKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHdhbGtlZCA9IHdhbGsoaXRlbSwgcGF0aCA/IGAke3BhdGh9LiR7aW5kZXh9YCA6IFN0cmluZyhpbmRleCkpO1xuICAgICAgICAgICAgICAgIGlmICh3YWxrZWQgIT09IGl0ZW0pXG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHJldHVybiB3YWxrZWQ7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBjaGFuZ2VkID8gbmV4dCA6IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc1BsYWluT2JqZWN0KHZhbHVlKSkge1xuICAgICAgICAgICAgbGV0IGNoYW5nZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIGNvbnN0IG5leHQgPSB7fTtcbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNoaWxkID0gdmFsdWVba2V5XTtcbiAgICAgICAgICAgICAgICBjb25zdCB3YWxrZWQgPSB3YWxrKGNoaWxkLCBwYXRoID8gYCR7cGF0aH0uJHtrZXl9YCA6IGtleSk7XG4gICAgICAgICAgICAgICAgaWYgKHdhbGtlZCAhPT0gY2hpbGQpXG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIG5leHRba2V5XSA9IHdhbGtlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBjaGFuZ2VkID8gbmV4dCA6IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9O1xuICAgIHJldHVybiB3YWxrKHZhbHVlcywgJycpO1xufVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBvbWl0TmlsVmFsdWVzIOKAlCByZWN1cnNpdmVseSByZW1vdmUgbnVsbCAvIHVuZGVmaW5lZCAvICcnIGZyb20gb2JqZWN0XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmV4cG9ydCBmdW5jdGlvbiBvbWl0TmlsVmFsdWVzKHZhbHVlcykge1xuICAgIGNvbnN0IHJlc3VsdCA9IHt9O1xuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHZhbHVlcykpIHtcbiAgICAgICAgY29uc3QgdiA9IHZhbHVlc1trZXldO1xuICAgICAgICBpZiAodiA9PT0gbnVsbCB8fCB2ID09PSB1bmRlZmluZWQgfHwgdiA9PT0gJycpXG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgaWYgKGlzUGxhaW5PYmplY3QodikpIHtcbiAgICAgICAgICAgIGNvbnN0IGNsZWFuZWQgPSBvbWl0TmlsVmFsdWVzKHYpO1xuICAgICAgICAgICAgaWYgKE9iamVjdC5rZXlzKGNsZWFuZWQpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICByZXN1bHRba2V5XSA9IGNsZWFuZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXN1bHRba2V5XSA9IHY7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cbmV4cG9ydCBmdW5jdGlvbiB2YWx1ZUVudW1Ub09wdGlvbnModmFsdWVFbnVtKSB7XG4gICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHZhbHVlRW51bSkubWFwKChba2V5LCBjb25maWddKSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2YgY29uZmlnID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgcmV0dXJuIHsgbGFiZWw6IGNvbmZpZywgdmFsdWU6IGtleSB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IGxhYmVsOiBjb25maWcudGV4dCwgdmFsdWU6IGtleSwgZGlzYWJsZWQ6IGNvbmZpZy5kaXNhYmxlZCB9O1xuICAgIH0pO1xufSIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
@@ -33,6 +33,7 @@
33
33
  border-radius: var(--om-radius-200, 8px);
34
34
  box-shadow: var(--om-shadow-200, 0 10px 22px rgba(0, 0, 0, 0.1));
35
35
  opacity: 1;
36
+ z-index: 999;
36
37
  }
37
38
  .om-component-ui-tooltip[role=tooltip] .om-component-ui-tooltip-title {
38
39
  font-size: var(--om-title-sm-font-size);