@1money/component-ui 0.0.77 → 0.0.79

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/Button/Button.js +17 -15
  2. package/es/components/Button/constants.d.ts +0 -1
  3. package/es/components/Button/constants.js +1 -2
  4. package/es/components/Button/interface.d.ts +7 -0
  5. package/es/components/Dialog/Dialog.js +64 -210
  6. package/es/components/Dialog/DialogContent.d.ts +16 -0
  7. package/es/components/Dialog/DialogContent.js +72 -0
  8. package/es/components/Dialog/DialogControls.d.ts +27 -0
  9. package/es/components/Dialog/DialogControls.js +65 -0
  10. package/es/components/Dialog/className.d.ts +12 -0
  11. package/es/components/Dialog/className.js +16 -0
  12. package/es/components/Dialog/hooks.d.ts +5 -0
  13. package/es/components/Dialog/hooks.js +69 -0
  14. package/es/components/Dialog/interface.d.ts +1 -0
  15. package/es/components/Dialog/style/Dialog.css +2 -11
  16. package/es/components/Dialog/types.d.ts +1 -0
  17. package/es/components/Dialog/types.js +2 -0
  18. package/es/components/Grid/Col.js +60 -4
  19. package/es/components/Grid/Grid.d.ts +4 -1
  20. package/es/components/Grid/Grid.js +5 -4
  21. package/es/components/Grid/Row.js +7 -5
  22. package/es/components/Grid/constants.d.ts +5 -3
  23. package/es/components/Grid/constants.js +13 -4
  24. package/es/components/Grid/helper.d.ts +8 -6
  25. package/es/components/Grid/helper.js +63 -15
  26. package/es/components/Grid/interface.d.ts +2 -1
  27. package/es/components/Grid/style/Grid.css +240 -196
  28. package/es/components/ProForm/ProForm.js +3 -3
  29. package/es/components/ProForm/constants.d.ts +1 -1
  30. package/es/components/ProForm/constants.js +5 -2
  31. package/es/components/ProForm/core/devWarning.d.ts +1 -3
  32. package/es/components/ProForm/core/devWarning.js +5 -15
  33. package/es/components/ProForm/layouts/DialogForm.js +2 -4
  34. package/es/index.css +1 -1
  35. package/es/utils/devWarn.d.ts +4 -0
  36. package/es/utils/devWarn.js +23 -0
  37. package/lib/components/Button/Button.js +17 -15
  38. package/lib/components/Button/constants.d.ts +0 -1
  39. package/lib/components/Button/constants.js +2 -3
  40. package/lib/components/Button/interface.d.ts +7 -0
  41. package/lib/components/Dialog/Dialog.js +66 -212
  42. package/lib/components/Dialog/DialogContent.d.ts +16 -0
  43. package/lib/components/Dialog/DialogContent.js +78 -0
  44. package/lib/components/Dialog/DialogControls.d.ts +27 -0
  45. package/lib/components/Dialog/DialogControls.js +72 -0
  46. package/lib/components/Dialog/className.d.ts +12 -0
  47. package/lib/components/Dialog/className.js +23 -0
  48. package/lib/components/Dialog/hooks.d.ts +5 -0
  49. package/lib/components/Dialog/hooks.js +75 -0
  50. package/lib/components/Dialog/interface.d.ts +1 -0
  51. package/lib/components/Dialog/style/Dialog.css +2 -11
  52. package/lib/components/Dialog/types.d.ts +1 -0
  53. package/lib/components/Dialog/types.js +6 -0
  54. package/lib/components/Grid/Col.js +59 -3
  55. package/lib/components/Grid/Grid.d.ts +4 -1
  56. package/lib/components/Grid/Grid.js +5 -4
  57. package/lib/components/Grid/Row.js +6 -4
  58. package/lib/components/Grid/constants.d.ts +5 -3
  59. package/lib/components/Grid/constants.js +14 -5
  60. package/lib/components/Grid/helper.d.ts +8 -6
  61. package/lib/components/Grid/helper.js +63 -15
  62. package/lib/components/Grid/interface.d.ts +2 -1
  63. package/lib/components/Grid/style/Grid.css +240 -196
  64. package/lib/components/ProForm/ProForm.js +2 -2
  65. package/lib/components/ProForm/constants.d.ts +1 -1
  66. package/lib/components/ProForm/constants.js +5 -2
  67. package/lib/components/ProForm/core/devWarning.d.ts +1 -3
  68. package/lib/components/ProForm/core/devWarning.js +23 -24
  69. package/lib/components/ProForm/layouts/DialogForm.js +2 -4
  70. package/lib/index.css +1 -1
  71. package/lib/utils/devWarn.d.ts +4 -0
  72. package/lib/utils/devWarn.js +31 -0
  73. package/package.json +1 -1
  74. package/scripts/mcp-server/examples.generated.json +171 -57
  75. package/scripts/mcp-server/index.generated.json +94 -10
@@ -47,7 +47,7 @@ import { Row } from '../Grid';
47
47
  import { useForm } from './core/hooks/useForm';
48
48
  import { ProFormStableContext, ProFormStateContext } from './context';
49
49
  import { Submitter } from './Submitter';
50
- import { CSS_PREFIX } from './constants';
50
+ import { CSS_PREFIX, DEFAULT_COL_SPAN } from './constants';
51
51
  import { stableSerialize, transformSubmitValues, omitNilValues, formatDateValues } from './utils';
52
52
  import { useShallowStable } from './core/formStore';
53
53
  import { useUrlSync } from './hooks/useUrlSync';
@@ -56,7 +56,7 @@ import { FormValidationError } from './core/validationError';
56
56
  var classes = classnames(CSS_PREFIX);
57
57
  var formClasses = classnames('form');
58
58
  var DEFAULT_COL_PROPS = {
59
- span: 24
59
+ span: DEFAULT_COL_SPAN
60
60
  };
61
61
  var ProFormBase = function ProFormBase(props) {
62
62
  var children = props.children,
@@ -500,4 +500,4 @@ var ProFormBase = function ProFormBase(props) {
500
500
  ProFormBase.displayName = 'ProForm';
501
501
  export var ProForm = /*#__PURE__*/memo(ProFormBase);
502
502
  export default ProForm;
503
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtLmpzIiwiY29tcG9uZW50cy9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL1Byb0Zvcm0udHN4Il0sIm5hbWVzIjpbIl9fYXdhaXRlciIsInRoaXNBcmciLCJfYXJndW1lbnRzIiwiUCIsImdlbmVyYXRvciIsImFkb3B0IiwidmFsdWUiLCJyZXNvbHZlIiwiUHJvbWlzZSIsInJlamVjdCIsImZ1bGZpbGxlZCIsInN0ZXAiLCJuZXh0IiwiZSIsInJlamVjdGVkIiwicmVzdWx0IiwiZG9uZSIsInRoZW4iLCJhcHBseSIsIl9fcmVzdCIsInMiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiUmVhY3QiLCJtZW1vIiwidXNlRWZmZWN0IiwidXNlTWVtbyIsInVzZVJlZiIsIkZyYWdtZW50IiwidXNlTGF0ZXN0IiwidXNlU2FmZVN0YXRlIiwidXNlTWVtb2l6ZWRGbiIsInVzZUV2ZW50Q2FsbGJhY2siLCJkZWZhdWx0IiwiY2xhc3NuYW1lcyIsImpvaW5DbHMiLCJSb3ciLCJ1c2VGb3JtIiwiUHJvRm9ybVN0YWJsZUNvbnRleHQiLCJQcm9Gb3JtU3RhdGVDb250ZXh0IiwiU3VibWl0dGVyIiwiQ1NTX1BSRUZJWCIsInN0YWJsZVNlcmlhbGl6ZSIsInRyYW5zZm9ybVN1Ym1pdFZhbHVlcyIsIm9taXROaWxWYWx1ZXMiLCJmb3JtYXREYXRlVmFsdWVzIiwidXNlU2hhbGxvd1N0YWJsZSIsInVzZVVybFN5bmMiLCJyZXNvbHZlVmFsdWUiLCJzZXROZXN0ZWRWYWx1ZSIsIkZvcm1WYWxpZGF0aW9uRXJyb3IiLCJjbGFzc2VzIiwiZm9ybUNsYXNzZXMiLCJERUZBVUxUX0NPTF9QUk9QUyIsInNwYW4iLCJQcm9Gb3JtQmFzZSIsInByb3BzIiwiY2hpbGRyZW4iLCJjbGFzc05hbWUiLCJzdWJtaXR0ZXIiLCJfcHJvcHMkbW9kZSIsIm1vZGUiLCJfcHJvcHMkZ3JpZCIsImdyaWQiLCJjb2xQcm9wcyIsInJvd1Byb3BzIiwiX3Byb3BzJGxvYWRpbmciLCJsb2FkaW5nIiwicmVxdWVzdCIsInBhcmFtcyIsImluaXRpYWxWYWx1ZXMiLCJvbkZpbmlzaCIsIm9uRmluaXNoRmFpbGVkIiwib25WYWx1ZXNDaGFuZ2UiLCJvblJlc2V0Iiwib25Jbml0Iiwib25Mb2FkaW5nQ2hhbmdlIiwic3luY1RvVXJsIiwiX3Byb3BzJHN5bmNUb1VybEFzSW1wIiwic3luY1RvVXJsQXNJbXBvcnRhbnQiLCJleHRyYVVybFBhcmFtcyIsIl9wcm9wcyRhdXRvRm9jdXNGaXJzdCIsImF1dG9Gb2N1c0ZpcnN0SW5wdXQiLCJmb3JtQ29tcG9uZW50VHlwZSIsImZvcm1SZWYiLCJfcHJvcHMkb21pdE5pbCIsIm9taXROaWwiLCJfcHJvcHMkZGF0ZUZvcm1hdHRlciIsImRhdGVGb3JtYXR0ZXIiLCJmaWVsZFByb3BzIiwiZm9ybUl0ZW1Qcm9wcyIsImxheW91dCIsIl9wcm9wcyRzaXplIiwic2l6ZSIsIl9wcm9wcyRsYWJlbEFsaWduIiwibGFiZWxBbGlnbiIsIl9wcm9wcyRkaXNhYmxlZCIsImRpc2FibGVkIiwiX3Byb3BzJHZhbGlkYXRlVHJpZ2dlIiwidmFsaWRhdGVUcmlnZ2VyIiwiX3ByZWZpeENscyIsInByZWZpeENscyIsInJlc3QiLCJfdXNlU2FmZVN0YXRlIiwiX3VzZVNhZmVTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInJlcXVlc3RMb2FkaW5nIiwic2V0UmVxdWVzdExvYWRpbmciLCJfdXNlU2FmZVN0YXRlMyIsIl91c2VTYWZlU3RhdGU0Iiwic3VibWl0dGluZyIsInNldFN1Ym1pdHRpbmciLCJzdWJtaXR0aW5nUmVmIiwiaXNMb2FkaW5nIiwidHJhbnNmb3JtS2V5UmVmIiwidmFsdWVUeXBlUmVmIiwicmVnaXN0ZXJUcmFuc2Zvcm0iLCJuYW1lIiwiZm4iLCJjdXJyZW50IiwidW5yZWdpc3RlclRyYW5zZm9ybSIsInVuZGVmaW5lZCIsInJlZ2lzdGVyVmFsdWVUeXBlIiwidmFsdWVUeXBlIiwidW5yZWdpc3RlclZhbHVlVHlwZSIsIm9uRmluaXNoUmVmIiwib25Jbml0UmVmIiwib25Mb2FkaW5nQ2hhbmdlUmVmIiwiYXBwbHlQaXBlbGluZSIsInZhbHVlcyIsImZvcm1hdFZhbHVlc0tlZXBOaWwiLCJfdXNlVXJsU3luYyIsInVybEluaXRpYWxWYWx1ZXMiLCJvblVybFN5bmNGaW5pc2giLCJvblVybFN5bmNSZXNldCIsIm1lcmdlZEluaXRpYWxWYWx1ZXNSZWYiLCJhc3NpZ24iLCJtZXJnZWRJbml0aWFsVmFsdWVzIiwicmVzZXRFcG9jaFJlZiIsImZpcmVGb3JtUmVzZXQiLCJmaW5hbFZhbHVlcyIsImZvcm1JbnN0YW5jZSIsImdldEZpZWxkc1ZhbHVlIiwiX3VzZUZvcm0iLCJpbnRlcm5hbHMiLCJzdG9yZSIsIndyYXBwZWRIYW5kbGVTdWJtaXQiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJfYSIsIl9iIiwiX2MiLCJlcG9jaCIsInZhbGlkYXRlZFZhbHVlcyIsInBpcGVsaW5lZCIsIl90Iiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsInByZXZlbnREZWZhdWx0IiwiYWJydXB0IiwidmFsaWRhdGVGaWVsZHMiLCJzZW50IiwiZXJyb3JzIiwiY29uc29sZSIsImVycm9yIiwiZmluaXNoIiwic3RvcCIsInByb0Zvcm1Gb3JtSW5zdGFuY2UiLCJnZXRGaWVsZHNGb3JtYXRWYWx1ZSIsImdldEZpZWxkRm9ybWF0VmFsdWUiLCJnZXRGaWVsZEZvcm1hdFZhbHVlT2JqZWN0IiwiZm9ybWF0dGVkIiwidmFsaWRhdGVGaWVsZHNSZXR1cm5Gb3JtYXRWYWx1ZSIsIl9jYWxsZWUyIiwidmFscyIsIl90MiIsIl9jb250ZXh0MiIsInN1Y2Nlc3MiLCJzdWJtaXRGb3JtIiwicmVxdWVzdFJlZiIsImhhc1JlcXVlc3QiLCJzZXJpYWxpemVkUGFyYW1zIiwiaW5pdEZpcmVkUmVmIiwiZmlyZUluaXQiLCJzdGFsZSIsImZldGNoRGF0YSIsIl9jYWxsZWUzIiwicmVxdWVzdEZuIiwiZGF0YSIsIl90MyIsIl9jb250ZXh0MyIsIl90eXBlb2YiLCJzZXRGaWVsZHNWYWx1ZSIsImZvcm1FbFJlZiIsImZpcnN0SW5wdXQiLCJxdWVyeVNlbGVjdG9yIiwiZm9jdXMiLCJzdGFibGVGaWVsZFByb3BzIiwic3RhYmxlRm9ybUl0ZW1Qcm9wcyIsInN0YWJsZUNvbFByb3BzIiwic3RhYmxlTGF5b3V0Iiwic3RhYmxlVmFsdWUiLCJzZXRGaWVsZFZhbHVlIiwic2V0RmllbGRFcnJvciIsInNldEZpZWxkV2FybmluZyIsInZhbGlkYXRlRmllbGRBc3luYyIsInJlZ2lzdGVyRmllbGQiLCJ1bnJlZ2lzdGVyRmllbGQiLCJyZXRhaW5GaWVsZCIsInJlbGVhc2VGaWVsZCIsIldyYXBwZXJDb21wb25lbnQiLCJ3cmFwcGVyUHJvcHMiLCJoYW5kbGVTdWJtaXR0ZXJSZXNldCIsInN1Ym1pdHRlck5vZGUiLCJQcm92aWRlciIsInJlZiIsIm9uU3VibWl0IiwiaGFuZGxlUmVzZXQiLCJkaXNwbGF5TmFtZSIsIlByb0Zvcm0iXSwibWFwcGluZ3MiOiI7OztBQUFBLElBQUlBLFNBQVMsR0FBSSxJQUFJLElBQUksSUFBSSxDQUFDQSxTQUFTLElBQUssVUFBVUMsT0FBTyxFQUFFQyxVQUFVLEVBQUVDLENBQUMsRUFBRUMsU0FBUyxFQUFFO0VBQ3JGLFNBQVNDLEtBQUtBLENBQUNDLEtBQUssRUFBRTtJQUFFLE9BQU9BLEtBQUssWUFBWUgsQ0FBQyxHQUFHRyxLQUFLLEdBQUcsSUFBSUgsQ0FBQyxDQUFDLFVBQVVJLE9BQU8sRUFBRTtNQUFFQSxPQUFPLENBQUNELEtBQUssQ0FBQztJQUFFLENBQUMsQ0FBQztFQUFFO0VBQzNHLE9BQU8sS0FBS0gsQ0FBQyxLQUFLQSxDQUFDLEdBQUdLLE9BQU8sQ0FBQyxFQUFFLFVBQVVELE9BQU8sRUFBRUUs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LG1CQUFtQixDQUFDaUwsUUFBUSxFQUFBO01BQUMvTixLQUFLLEVBQUV3SixLQUFLO01BQUF4RixRQUFBLEVBQ3hDbkMsS0FBQSxDQUFBLE1BQUEsRUFBQVosTUFBQSxDQUFBOEgsTUFBQSxDQUFBLENBQUEsQ0FBQSxFQUNNbEMsSUFBSSxFQUFBO1FBQ1JtSCxHQUFHLEVBQUV0QixTQUFTO1FBQ2R6SSxTQUFTLEVBQUVOLFdBQVcsQ0FBQ3FFLFNBQVMsRUFBRXRGLE9BQU8sQ0FBQ2dCLE9BQU8sQ0FBQSxDQUFFLEVBQUVPLFNBQVMsQ0FBQyxDQUFDO1FBQ2hFZ0ssUUFBUSxFQUFFeEUsbUJBQW1CO1FBQzdCeEUsT0FBTyxFQUFFc0UsU0FBUyxDQUFDMkUsV0FBVztRQUFBbEssUUFBQSxFQUFBLENBRTlCckMsSUFBQSxDQUFDZ00sZ0JBQWdCLEVBQUExTSxNQUFBLENBQUE4SCxNQUFBLENBQUEsQ0FBQSxDQUFBLEVBQUs2RSxZQUFZLEVBQUE7VUFBQTVKLFFBQUEsRUFBR0E7UUFBUSxDQUFBLENBQUEsQ0FBb0IsRUFDaEU4SixhQUFhO01BQUEsQ0FBQSxDQUFBO0lBQ1QsQ0FBQTtFQUNzQixDQUFBLENBQ0Q7QUFFcEMsQ0FBQztBQUVEaEssV0FBVyxDQUFDcUssV0FBVyxHQUFHLFNBQVM7QUFhbkMsT0FBTyxJQUFNQyxPQUFPLGdCQUFHck0sSUFBSSxDQUFDK0IsV0FBVyxDQUE0QjtBQUVuRSxlQUFlc0ssT0FBTyIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vUHJvRm9ybS5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xudmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBSZWFjdCwgeyBtZW1vLCB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZiwgRnJhZ21lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdXNlTGF0ZXN0IGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlTGF0ZXN0JztcbmltcG9ydCB1c2VTYWZlU3RhdGUgZnJvbSAnQDFtb25leS9ob29rcy91c2VTYWZlU3RhdGUnO1xuaW1wb3J0IHVzZU1lbW9pemVkRm4gZnJvbSAnQDFtb25leS9ob29rcy91c2VNZW1vaXplZEZuJztcbmltcG9ydCB1c2VFdmVudENhbGxiYWNrIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlRXZlbnRDYWxsYmFjayc7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIGNsYXNzbmFtZXMsIGpvaW5DbHMgfSBmcm9tICcuLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCB7IFJvdyB9IGZyb20gJy4uL0dyaWQnO1xuaW1wb3J0IHsgdXNlRm9ybSB9IGZyb20gJy4vY29yZS9ob29rcy91c2VGb3JtJztcbmltcG9ydCB7IFByb0Zvcm1TdGFibGVDb250ZXh0LCBQcm9Gb3JtU3RhdGVDb250ZXh0IH0gZnJvbSAnLi9jb250ZXh0JztcbmltcG9ydCB7IFN1Ym1pdHRlciB9IGZyb20gJy4vU3VibWl0dGVyJztcbmltcG9ydCB7IENTU19QUkVGSVggfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBzdGFibGVTZXJpYWxpemUsIHRyYW5zZm9ybVN1Ym1pdFZhbHVlcywgb21pdE5pbFZhbHVlcywgZm9ybWF0RGF0ZVZhbHVlcyB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgdXNlU2hhbGxvd1N0YWJsZSB9IGZyb20gJy4vY29yZS9mb3JtU3RvcmUnO1xuaW1wb3J0IHsgdXNlVXJsU3luYyB9IGZyb20gJy4vaG9va3MvdXNlVXJsU3luYyc7XG5pbXBvcnQgeyByZXNvbHZlVmFsdWUsIHNldE5lc3RlZFZhbHVlIH0gZnJvbSAnLi9jb3JlL3BhdGhVdGlscyc7XG5pbXBvcnQgeyBGb3JtVmFsaWRhdGlvbkVycm9yIH0gZnJvbSAnLi9jb3JlL3ZhbGlkYXRpb25FcnJvcic7XG5jb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcyhDU1NfUFJFRklYKTtcbmNvbnN0IGZvcm1DbGFzc2VzID0gY2xhc3NuYW1lcygnZm9ybScpO1xuY29uc3QgREVGQVVMVF9DT0xfUFJPUFMgPSB7IHNwYW46IDI0IH07XG5jb25zdCBQcm9Gb3JtQmFzZSA9IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgY2hpbGRyZW4sIGNsYXNzTmFtZSwgc3VibWl0dGVyLCBtb2RlID0gJ2VkaXQnLCBncmlkID0gZmFsc2UsIGNvbFByb3BzLCByb3dQcm9wcywgbG9hZGluZyA9IGZhbHNlLCByZXF1ZXN0LCBwYXJhbXMsIGluaXRpYWxWYWx1ZXMsIG9uRmluaXNoLCBvbkZpbmlzaEZhaWxlZCwgb25WYWx1ZXNDaGFuZ2UsIG9uUmVzZXQsIG9uSW5pdCwgb25Mb2FkaW5nQ2hhbmdlLCBzeW5jVG9VcmwsIHN5bmNUb1VybEFzSW1wb3J0YW50ID0gZmFsc2UsIGV4dHJhVXJsUGFyYW1zLCBhdXRvRm9jdXNGaXJzdElucHV0ID0gZmFsc2UsIGZvcm1Db21wb25lbnRUeXBlLCBmb3JtUmVmLCBvbWl0TmlsID0gdHJ1ZSwgZGF0ZUZvcm1hdHRlciA9ICdzdHJpbmcnLCBmaWVsZFByb3BzLCBmb3JtSXRlbVByb3BzLCBsYXlvdXQsIHNpemUgPSAnbGFyZ2UnLCBsYWJlbEFsaWduID0gJ2xlZnQnLCBkaXNhYmxlZCA9IGZhbHNlLCB2YWxpZGF0ZVRyaWdnZXIgPSAnb25DaGFuZ2UnLCBwcmVmaXhDbHM6IF9wcmVmaXhDbHMgfSA9IHByb3BzLCByZXN0ID0gX19yZXN0KHByb3BzLCBbXCJjaGlsZHJlblwiLCBcImNsYXNzTmFtZVwiLCBcInN1Ym1pdHRlclwiLCBcIm1vZGVcIiwgXCJncmlkXCIsIFwiY29sUHJvcHNcIiwgXCJyb3dQcm9wc1wiLCBcImxvYWRpbmdcIiwgXCJyZXF1ZXN0XCIsIFwicGFyYW1zXCIsIFwiaW5pdGlhbFZhbHVlc1wiLCBcIm9uRmluaXNoXCIsIFwib25GaW5pc2hGYWlsZWRcIiwgXCJvblZhbHVlc0NoYW5nZVwiLCBcIm9uUmVzZXRcIiwgXCJvbkluaXRcIiwgXCJvbkxvYWRpbmdDaGFuZ2VcIiwgXCJzeW5jVG9VcmxcIiwgXCJzeW5jVG9VcmxBc0ltcG9ydGFudFwiLCBcImV4dHJhVXJsUGFyYW1zXCIsIFwiYXV0b0ZvY3VzRmlyc3RJbnB1dFwiLCBcImZvcm1Db21wb25lbnRUeXBlXCIsIFwiZm9ybVJlZlwiLCBcIm9taXROaWxcIiwgXCJkYXRlRm9ybWF0dGVyXCIsIFwiZmllbGRQcm9wc1wiLCBcImZvcm1JdGVtUHJvcHNcIiwgXCJsYXlvdXRcIiwgXCJzaXplXCIsIFwibGFiZWxBbGlnblwiLCBcImRpc2FibGVkXCIsIFwidmFsaWRhdGVUcmlnZ2VyXCIsIFwicHJlZml4Q2xzXCJdKTtcbiAgICBjb25zdCBbcmVxdWVzdExvYWRpbmcsIHNldFJlcXVlc3RMb2FkaW5nXSA9IHVzZVNhZmVTdGF0ZShmYWxzZSk7XG4gICAgLy8gdXNlU2FmZVN0YXRlIGZvciB0aGUgUkVOREVSRUQgc3VibWl0dGluZyBzdGF0ZSAoaXRzIHNldHRlciBpcyB1bm1vdW50LXNhZmVcbiAgICAvLyDigJQgdGhlIGZpbmFsbHkgYmVsb3cgcnVucyBhZnRlciBhd2FpdGluZyBvbkZpbmlzaCwgd2hlbiB0aGUgdHlwaWNhbFxuICAgIC8vIHN1Ym1pdC10aGVuLWNsb3NlIGZsb3cgbWF5IGFscmVhZHkgaGF2ZSB1bm1vdW50ZWQgdGhlIGZvcm0gb24gUmVhY3RcbiAgICAvLyAxNi8xNykuIFRoZSByZWYgaXMgdGhlIHN5bmNocm9ub3VzIHJlLWVudHJ5IGd1YXJkOyBAMW1vbmV5L2hvb2tzIGhhcyBub1xuICAgIC8vIHNpbmdsZSBob29rIHRoYXQgaXMgYm90aCB1bm1vdW50LXNhZmUgYW5kIHN5bmNocm9ub3VzbHkgcmVhZGFibGUuXG4gICAgY29uc3QgW3N1Ym1pdHRpbmcsIHNldFN1Ym1pdHRpbmddID0gdXNlU2FmZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBzdWJtaXR0aW5nUmVmID0gdXNlUmVmKGZhbHNlKTtcbiAgICBjb25zdCBpc0xvYWRpbmcgPSBsb2FkaW5nIHx8IHJlcXVlc3RMb2FkaW5nIHx8IHN1Ym1pdHRpbmc7XG4gICAgLy8g4pSA4pSAIFRyYW5zZm9ybSAvIHZhbHVlVHlwZSByZWdpc3RyaWVzIOKUgOKUgFxuICAgIGNvbnN0IHRyYW5zZm9ybUtleVJlZiA9IHVzZVJlZih7fSk7XG4gICAgY29uc3QgdmFsdWVUeXBlUmVmID0gdXNlUmVmKHt9KTtcbiAgICBjb25zdCByZWdpc3RlclRyYW5zZm9ybSA9IHVzZU1lbW9pemVkRm4oKG5hbWUsIGZuKSA9PiB7XG4gICAgICAgIHRyYW5zZm9ybUtleVJlZi5jdXJyZW50W25hbWVdID0gZm47XG4gICAgfSk7XG4gICAgLy8gVGhlIG9wdGlvbmFsIHNlY29uZCBhcmd1bWVudCBndWFyZHMgcmVtb3ZhbDogZGVsZXRlIG9ubHkgd2hlbiB0aGUgcmVnaXN0cnlcbiAgICAvLyBzdGlsbCBob2xkcyB0aGUgQ0FMTEVSJ1MgcmVnaXN0cmF0aW9uLCBzbyBhbiB1bm1vdW50aW5nIGluc3RhbmNlIGNhbiBuZXZlclxuICAgIC8vIHdpcGUgYSBzYW1lLW5hbWUgc2libGluZydzIG9yIHN1Y2Nlc3NvcidzIGVudHJ5LlxuICAgIGNvbnN0IHVucmVnaXN0ZXJUcmFuc2Zvcm0gPSB1c2VNZW1vaXplZEZuKChuYW1lLCBmbikgPT4ge1xuICAgICAgICBpZiAoZm4gPT09IHVuZGVmaW5lZCB8fCB0cmFuc2Zvcm1LZXlSZWYuY3VycmVudFtuYW1lXSA9PT0gZm4pIHtcbiAgICAgICAgICAgIGRlbGV0ZSB0cmFuc2Zvcm1LZXlSZWYuY3VycmVudFtuYW1lXTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IHJlZ2lzdGVyVmFsdWVUeXBlID0gdXNlTWVtb2l6ZWRGbigobmFtZSwgdmFsdWVUeXBlKSA9PiB7XG4gICAgICAgIHZhbHVlVHlwZVJlZi5jdXJyZW50W25hbWVdID0gdmFsdWVUeXBlO1xuICAgIH0pO1xuICAgIGNvbnN0IHVucmVnaXN0ZXJWYWx1ZVR5cGUgPSB1c2VNZW1vaXplZEZuKChuYW1lLCB2YWx1ZVR5cGUpID0+IHtcbiAgICAgICAgaWYgKHZhbHVlVHlwZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlVHlwZVJlZi5jdXJyZW50W25hbWVdID09PSB2YWx1ZVR5cGUpIHtcbiAgICAgICAgICAgIGRlbGV0ZSB2YWx1ZVR5cGVSZWYuY3VycmVudFtuYW1lXTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IG9uRmluaXNoUmVmID0gdXNlTGF0ZXN0KG9uRmluaXNoKTtcbiAgICBjb25zdCBvbkluaXRSZWYgPSB1c2VMYXRlc3Qob25Jbml0KTtcbiAgICBjb25zdCBvbkxvYWRpbmdDaGFuZ2VSZWYgPSB1c2VMYXRlc3Qob25Mb2FkaW5nQ2hhbmdlKTtcbiAgICAvLyBTdWJtaXQgcGlwZWxpbmU6IGRhdGVzIOKGkiBmaWVsZCB0cmFuc2Zvcm1zIOKGkiBvbWl0TmlsXG4gICAgY29uc3QgYXBwbHlQaXBlbGluZSA9IHVzZU1lbW9pemVkRm4oKHZhbHVlcykgPT4ge1xuICAgICAgICBsZXQgcmVzdWx0ID0gZm9ybWF0RGF0ZVZhbHVlcyh2YWx1ZXMsIGRhdGVGb3JtYXR0ZXIsIHZhbHVlVHlwZVJlZi5jdXJyZW50KTtcbiAgICAgICAgcmVzdWx0ID0gdHJhbnNmb3JtU3VibWl0VmFsdWVzKHJlc3VsdCwgdHJhbnNmb3JtS2V5UmVmLmN1cnJlbnQpO1xuICAgICAgICBpZiAob21pdE5pbClcbiAgICAgICAgICAgIHJlc3VsdCA9IG9taXROaWxWYWx1ZXMocmVzdWx0KTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9KTtcbiAgICAvLyBTYW1lIHBpcGVsaW5lIFdJVEhPVVQgb21pdE5pbCDigJQgc2luZ2xlLWZpZWxkIHJlYWRlcnMgbXVzdCBub3Qgc2VlIGEgZmllbGRcbiAgICAvLyB2YW5pc2gganVzdCBiZWNhdXNlIGl0cyBjdXJyZW50IHZhbHVlIGlzIGVtcHR5LlxuICAgIGNvbnN0IGZvcm1hdFZhbHVlc0tlZXBOaWwgPSB1c2VNZW1vaXplZEZuKCh2YWx1ZXMpID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gZm9ybWF0RGF0ZVZhbHVlcyh2YWx1ZXMsIGRhdGVGb3JtYXR0ZXIsIHZhbHVlVHlwZVJlZi5jdXJyZW50KTtcbiAgICAgICAgcmV0dXJuIHRyYW5zZm9ybVN1Ym1pdFZhbHVlcyhyZXN1bHQsIHRyYW5zZm9ybUtleVJlZi5jdXJyZW50KTtcbiAgICB9KTtcbiAgICAvLyDilIDilIAgVVJMIHN5bmMgKHN5bmNUb1VybCAvIHN5bmNUb1VybEFzSW1wb3J0YW50IC8gZXh0cmFVcmxQYXJhbXMpIOKUgOKUgFxuICAgIGNvbnN0IHsgdXJsSW5pdGlhbFZhbHVlcywgb25VcmxTeW5jRmluaXNoLCBvblVybFN5bmNSZXNldCB9ID0gdXNlVXJsU3luYyh7XG4gICAgICAgIHN5bmNUb1VybCxcbiAgICAgICAgZXh0cmFVcmxQYXJhbXMsXG4gICAgfSk7XG4gICAgLy8gaW5pdGlhbFZhbHVlcyBpcyBNT1VOVC1PTkxZIChkb2N1bWVudGVkIGNvbnRyYWN0OyB1c2VGb3JtQ29yZSByZS1mcmVlemVzXG4gICAgLy8gYXMgYSBzYWZldHkgbmV0KSDigJQgY29tcHV0ZSB0aGUgVVJMIG1lcmdlIG9uY2Ugc28gdGhlIGZyZWV6ZSBpcyB2aXNpYmxlXG4gICAgLy8gd2hlcmUgdGhlIHByb3BzIGVudGVyLCBpbnN0ZWFkIG9mIHJlY29tcHV0aW5nIGRlYWQgc3ByZWFkcyBwZXIgcmVuZGVyLlxuICAgIGNvbnN0IG1lcmdlZEluaXRpYWxWYWx1ZXNSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgaWYgKG1lcmdlZEluaXRpYWxWYWx1ZXNSZWYuY3VycmVudCA9PT0gbnVsbCkge1xuICAgICAgICBtZXJnZWRJbml0aWFsVmFsdWVzUmVmLmN1cnJlbnQgPSBzeW5jVG9VcmxcbiAgICAgICAgICAgID8gKHN5bmNUb1VybEFzSW1wb3J0YW50XG4gICAgICAgICAgICAgICAgPyBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGluaXRpYWxWYWx1ZXMpLCB1cmxJbml0aWFsVmFsdWVzKSA6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgdXJsSW5pdGlhbFZhbHVlcyksIGluaXRpYWxWYWx1ZXMpKVxuICAgICAgICAgICAgOiAoaW5pdGlhbFZhbHVlcyAhPT0gbnVsbCAmJiBpbml0aWFsVmFsdWVzICE9PSB2b2lkIDAgPyBpbml0aWFsVmFsdWVzIDoge30pO1xuICAgIH1cbiAgICBjb25zdCBtZXJnZWRJbml0aWFsVmFsdWVzID0gbWVyZ2VkSW5pdGlhbFZhbHVlc1JlZi5jdXJyZW50O1xuICAgIC8vIEJ1bXBlZCBvbiBldmVyeSByZXNldCDigJQgYW4gaW4tZmxpZ2h0IHN1Ym1pdCBjYXB0dXJlcyBpdCBhbmQgYWJvcnRzIHdoZW5cbiAgICAvLyBpdCBjaGFuZ2VkIHVuZGVybmVhdGggKHRoZSB1c2VyIGRpc2NhcmRlZCB0aGUgc3VibWlzc2lvbidzIHZhbHVlcykuXG4gICAgY29uc3QgcmVzZXRFcG9jaFJlZiA9IHVzZVJlZigwKTtcbiAgICAvLyBSZXNldCBjaGFpbjogZm9ybS1sZXZlbCBvblJlc2V0IHJlY2VpdmVzIHRoZSAocG9zdC1yZXNldCkgZm9ybWF0dGVkXG4gICAgLy8gdmFsdWVzLCB0aGVuIHRoZSBmb3JtJ3Mgb3duIFVSTCBwYXJhbXMgYXJlIGNsZWFyZWQuIHVzZU1lbW9pemVkRm4gZGVmZXJzXG4gICAgLy8gZXhlY3V0aW9uIHRvIGV2ZW50IHRpbWUsIHdoZW4gYGZvcm1JbnN0YW5jZWAgKGNyZWF0ZWQganVzdCBiZWxvdykgZXhpc3RzLlxuICAgIGNvbnN0IGZpcmVGb3JtUmVzZXQgPSB1c2VNZW1vaXplZEZuKCgpID0+IHtcbiAgICAgICAgcmVzZXRFcG9jaFJlZi5jdXJyZW50ICs9IDE7XG4gICAgICAgIGNvbnN0IGZpbmFsVmFsdWVzID0gYXBwbHlQaXBlbGluZShmb3JtSW5zdGFuY2UuZ2V0RmllbGRzVmFsdWUoKSk7XG4gICAgICAgIG9uUmVzZXQgPT09IG51bGwgfHwgb25SZXNldCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25SZXNldChmaW5hbFZhbHVlcyk7XG4gICAgICAgIG9uVXJsU3luY1Jlc2V0KCk7XG4gICAgfSk7XG4gICAgLy8g4pSA4pSAIEZvcm0gZW5naW5lICh1c2VGb3JtIHdpdGggYXN5bmMgdmFsaWRhdGlvbikg4pSA4pSAXG4gICAgY29uc3QgeyBmb3JtSW5zdGFuY2UsIGludGVybmFscywgc3RvcmUgfSA9IHVzZUZvcm0oe1xuICAgICAgICBpbml0aWFsVmFsdWVzOiBtZXJnZWRJbml0aWFsVmFsdWVzLFxuICAgICAgICBvblZhbHVlc0NoYW5nZSxcbiAgICAgICAgb25SZXNldDogZmlyZUZvcm1SZXNldCxcbiAgICAgICAgc2l6ZSxcbiAgICAgICAgbGFiZWxBbGlnbixcbiAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgIHZhbGlkYXRlVHJpZ2dlcixcbiAgICB9KTtcbiAgICAvLyDilIDilIAgQXN5bmMgc3VibWl0IHdpdGggdHJhbnNmb3JtIHBpcGVsaW5lIOKUgOKUgFxuICAgIC8vIFJlLWVudHJ5IGd1YXJkOiBhIHNlY29uZCBzdWJtaXQgd2hpbGUgb25lIGlzIGluIGZsaWdodCBpcyBpZ25vcmVkICh0aGVcbiAgICAvLyByZWYgY2F0Y2hlcyB0d28gY2FsbHMgaW4gdGhlIHNhbWUgdGljaykuXG4gICAgY29uc3Qgd3JhcHBlZEhhbmRsZVN1Ym1pdCA9IHVzZUV2ZW50Q2FsbGJhY2soKGUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYztcbiAgICAgICAgZSA9PT0gbnVsbCB8fCBlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGlmIChzdWJtaXR0aW5nUmVmLmN1cnJlbnQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHN1Ym1pdHRpbmdSZWYuY3VycmVudCA9IHRydWU7XG4gICAgICAgIHNldFN1Ym1pdHRpbmcodHJ1ZSk7XG4gICAgICAgIChfYSA9IG9uTG9hZGluZ0NoYW5nZVJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbChvbkxvYWRpbmdDaGFuZ2VSZWYsIHRydWUpO1xuICAgICAgICBjb25zdCBlcG9jaCA9IHJlc2V0RXBvY2hSZWYuY3VycmVudDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHZhbGlkYXRlZFZhbHVlcyA9IHlpZWxkIGZvcm1JbnN0YW5jZS52YWxpZGF0ZUZpZWxkcygpO1xuICAgICAgICAgICAgLy8gQSByZXNldCBkdXJpbmcgKGFzeW5jKSB2YWxpZGF0aW9uIGRpc2NhcmRzIHRoaXMgc3VibWlzc2lvbiBlbnRpcmVseTpcbiAgICAgICAgICAgIC8vIHZhbGlkYXRlRmllbGRzIHJlLXJlYWRzIHRoZSBsaXZlIHN0b3JlLCBzbyBwcm9jZWVkaW5nIHdvdWxkIGhhbmRcbiAgICAgICAgICAgIC8vIG9uRmluaXNoIHRoZSBQT1NULXJlc2V0IHZhbHVlcy5cbiAgICAgICAgICAgIGlmIChlcG9jaCAhPT0gcmVzZXRFcG9jaFJlZi5jdXJyZW50KVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIGNvbnN0IHBpcGVsaW5lZCA9IGFwcGx5UGlwZWxpbmUodmFsaWRhdGVkVmFsdWVzKTtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHlpZWxkICgoX2IgPSBvbkZpbmlzaFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChvbkZpbmlzaFJlZiwgcGlwZWxpbmVkKSk7XG4gICAgICAgICAgICAvLyBTeW5jIHRoZSBVUkwgdW5sZXNzIG9uRmluaXNoIGV4cGxpY2l0bHkgcmV0dXJuZWQgZmFsc2UgKGEgdGhyb3cgYWJvdmVcbiAgICAgICAgICAgIC8vIGFsc28gc2tpcHMg4oCUIGEgZmFpbGVkIHN1Ym1pdCBtdXN0IG5vdCBwb2xsdXRlIHRoZSBVUkwpLCBhbmQgb25seSBpZlxuICAgICAgICAgICAgLy8gdGhlIHVzZXIgZGlkIE5PVCByZXNldCB0aGUgZm9ybSB3aGlsZSB0aGUgc3VibWl0IHdhcyBpbiBmbGlnaHQuXG4gICAgICAgICAgICBpZiAocmVzdWx0ICE9PSBmYWxzZSAmJiBlcG9jaCA9PT0gcmVzZXRFcG9jaFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgb25VcmxTeW5jRmluaXNoKHBpcGVsaW5lZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgLy8gQSByZXNldCBkdXJpbmcgdmFsaWRhdGlvbiBhbHNvIGludmFsaWRhdGVzIHRoZSBGQUlMVVJFIGNhbGxiYWNrIOKAlFxuICAgICAgICAgICAgLy8gdGhlIGVycm9yIGNhcnJpZXMgcG9zdC1yZXNldCB2YWx1ZXMgZm9yIGEgZGlzY2FyZGVkIHN1Ym1pc3Npb24uXG4gICAgICAgICAgICAvLyAoRmllbGQgZXJyb3JzIGZyb20gdGhlIGRlYWQgdmFsaWRhdGlvbiBhcmUgc3VwcHJlc3NlZCBieSB0aGVcbiAgICAgICAgICAgIC8vIHBlci1maWVsZCB2YWxpZGF0aW9uIGVwb2NoczogcmVzZXRGaWVsZHMgaW52YWxpZGF0ZXMgaW4tZmxpZ2h0IHJ1bnMuKVxuICAgICAgICAgICAgaWYgKGVwb2NoICE9PSByZXNldEVwb2NoUmVmLmN1cnJlbnQpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgLy8gT25seSBhIFZBTElEQVRJT04gZmFpbHVyZSByb3V0ZXMgdG8gb25GaW5pc2hGYWlsZWQuIEFuIGV4Y2VwdGlvbiBvdXRcbiAgICAgICAgICAgIC8vIG9mIHRoZSBjb25zdW1lcidzIG93biBvbkZpbmlzaCBpcyBub3QgYSB2YWxpZGF0aW9uIHJlc3VsdDogdGhlIHN1Ym1pdFxuICAgICAgICAgICAgLy8gZmFpbHMgKFVSTCB1bnRvdWNoZWQsIG92ZXJsYXkgc3RheXMgb3BlbikgYW5kIHRoZSBlcnJvciBpcyBzdXJmYWNlZFxuICAgICAgICAgICAgLy8gb24gdGhlIGNvbnNvbGUgaW5zdGVhZCBvZiBiZWluZyBtaXNyZXBvcnRlZCB3aXRoIGFuIGVtcHR5IHBheWxvYWQuXG4gICAgICAgICAgICBpZiAoZXJyIGluc3RhbmNlb2YgRm9ybVZhbGlkYXRpb25FcnJvcikge1xuICAgICAgICAgICAgICAgIG9uRmluaXNoRmFpbGVkID09PSBudWxsIHx8IG9uRmluaXNoRmFpbGVkID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkZpbmlzaEZhaWxlZCh7IHZhbHVlczogZXJyLnZhbHVlcywgZXJyb3JzOiBlcnIuZXJyb3JzIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignW1Byb0Zvcm1dIG9uRmluaXNoIHRocmV3IGR1cmluZyBzdWJtaXQ6JywgZXJyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmaW5hbGx5IHtcbiAgICAgICAgICAgIHN1Ym1pdHRpbmdSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgICAgICAgICAgc2V0U3VibWl0dGluZyhmYWxzZSk7XG4gICAgICAgICAgICAoX2MgPSBvbkxvYWRpbmdDaGFuZ2VSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLmNhbGwob25Mb2FkaW5nQ2hhbmdlUmVmLCBmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9KSk7XG4gICAgLy8g4pSA4pSAIFByb0Zvcm0gaW5zdGFuY2U6IHN1cGVyc2V0IG9mIEZvcm1JbnN0YW5jZSDilIDilIBcbiAgICBjb25zdCBwcm9Gb3JtRm9ybUluc3RhbmNlID0gdXNlTWVtbygoKSA9PiAoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBmb3JtSW5zdGFuY2UpLCB7IGdldEZpZWxkc0Zvcm1hdFZhbHVlOiAoKSA9PiBhcHBseVBpcGVsaW5lKGZvcm1JbnN0YW5jZS5nZXRGaWVsZHNWYWx1ZSgpKSwgZ2V0RmllbGRGb3JtYXRWYWx1ZTogKChuYW1lKSA9PiByZXNvbHZlVmFsdWUoZm9ybWF0VmFsdWVzS2VlcE5pbChmb3JtSW5zdGFuY2UuZ2V0RmllbGRzVmFsdWUoKSksIG5hbWUpKSwgZ2V0RmllbGRGb3JtYXRWYWx1ZU9iamVjdDogKG5hbWUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZCA9IGZvcm1hdFZhbHVlc0tlZXBOaWwoZm9ybUluc3RhbmNlLmdldEZpZWxkc1ZhbHVlKCkpO1xuICAgICAgICAgICAgaWYgKCFuYW1lKVxuICAgICAgICAgICAgICAgIHJldHVybiBmb3JtYXR0ZWQ7XG4gICAgICAgICAgICAvLyBBIG5lc3RlZCBvYmplY3QgY2FycnlpbmcgT05MWSB0aGUgcmVxdWVzdGVkIGxlYWYg4oCUIG5vdCB0aGUgd2hvbGVcbiAgICAgICAgICAgIC8vIHRvcC1sZXZlbCBzdWJ0cmVlIHRoZSBwYXRoIGhhcHBlbnMgdG8gbGl2ZSBpbi5cbiAgICAgICAgICAgIHJldHVybiBzZXROZXN0ZWRWYWx1ZSh7fSwgbmFtZSwgcmVzb2x2ZVZhbHVlKGZvcm1hdHRlZCwgbmFtZSkpO1xuICAgICAgICB9LCB2YWxpZGF0ZUZpZWxkc1JldHVybkZvcm1hdFZhbHVlOiAoKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFscyA9IHlpZWxkIGZvcm1JbnN0YW5jZS52YWxpZGF0ZUZpZWxkcygpO1xuICAgICAgICAgICAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IHRydWUsIHZhbHVlczogYXBwbHlQaXBlbGluZSh2YWxzKSB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgIC8vIHZhbGlkYXRlRmllbGRzIHJlamVjdHMgd2l0aCBhbiBFcnJvciBjYXJyeWluZyB0aGUgZmllbGQgZXJyb3JzIG1hcFxuICAgICAgICAgICAgICAgIC8vIChzYW1lIHNoYXBlIHdyYXBwZWRIYW5kbGVTdWJtaXQgY29uc3VtZXMgYWJvdmUpLlxuICAgICAgICAgICAgICAgIGNvbnN0IHsgZXJyb3JzIH0gPSBlcnI7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgc3VjY2VzczogZmFsc2UsIGVycm9yczogZXJyb3JzICE9PSBudWxsICYmIGVycm9ycyAhPT0gdm9pZCAwID8gZXJyb3JzIDoge30gfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSksIHN1Ym1pdEZvcm06IHdyYXBwZWRIYW5kbGVTdWJtaXQgfSkpLCBbZm9ybUluc3RhbmNlLCBhcHBseVBpcGVsaW5lLCB3cmFwcGVkSGFuZGxlU3VibWl0XSk7XG4gICAgLy8g4pSA4pSAIFN5bmMgdG8gZm9ybVJlZiBwcm9wIOKUgOKUgFxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChmb3JtUmVmKSB7XG4gICAgICAgICAgICBmb3JtUmVmLmN1cnJlbnQgPSBwcm9Gb3JtRm9ybUluc3RhbmNlO1xuICAgICAgICB9XG4gICAgfSwgW2Zvcm1SZWYsIHByb0Zvcm1Gb3JtSW5zdGFuY2VdKTtcbiAgICAvLyDilIDilIAgcmVxdWVzdCAvIHBhcmFtcyBhdXRvLWxvYWQg4pSA4pSAXG4gICAgY29uc3QgcmVxdWVzdFJlZiA9IHVzZUxhdGVzdChyZXF1ZXN0KTtcbiAgICBjb25zdCBoYXNSZXF1ZXN0ID0gISFyZXF1ZXN0O1xuICAgIGNvbnN0IHNlcmlhbGl6ZWRQYXJhbXMgPSB1c2VNZW1vKCgpID0+IHN0YWJsZVNlcmlhbGl6ZShwYXJhbXMpLCBbcGFyYW1zXSk7XG4gICAgLy8gb25Jbml0IGZpcmVzIGV4YWN0bHkgb25jZTogYWZ0ZXIgdGhlIEZJUlNUIHJlcXVlc3QgcmVzb2x2ZXMgd2hlbiBhXG4gICAgLy8gcmVxdWVzdCBpcyBjb25maWd1cmVkLCBvdGhlcndpc2UgcmlnaHQgYWZ0ZXIgbW91bnQuXG4gICAgY29uc3QgaW5pdEZpcmVkUmVmID0gdXNlUmVmKGZhbHNlKTtcbiAgICBjb25zdCBmaXJlSW5pdCA9IHVzZU1lbW9pemVkRm4oKCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmIChpbml0RmlyZWRSZWYuY3VycmVudClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgaW5pdEZpcmVkUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICAoX2EgPSBvbkluaXRSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwob25Jbml0UmVmLCBhcHBseVBpcGVsaW5lKGZvcm1JbnN0YW5jZS5nZXRGaWVsZHNWYWx1ZSgpKSwgcHJvRm9ybUZvcm1JbnN0YW5jZSk7XG4gICAgfSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgLy8gU3RhbGVuZXNzIGd1YXJkOiBpZiBwYXJhbXMgY2hhbmdlIGFnYWluIGJlZm9yZSB0aGlzIGZldGNoIHJlc29sdmVzLCB0aGVcbiAgICAgICAgLy8gY2xlYW51cCBtYXJrcyBpdCBzdGFsZSBzbyB0aGUgbGF0ZSByZXNwb25zZSBjYW4ndCBvdmVyd3JpdGUgdGhlIHZhbHVlc1xuICAgICAgICAvLyBhIG5ld2VyIHJlcXVlc3QgYWxyZWFkeSAob3Igd2lsbCkgc2V0LlxuICAgICAgICBsZXQgc3RhbGUgPSBmYWxzZTtcbiAgICAgICAgY29uc3QgZmV0Y2hEYXRhID0gKCkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCByZXF1ZXN0Rm4gPSByZXF1ZXN0UmVmLmN1cnJlbnQ7XG4gICAgICAgICAgICBpZiAoIXJlcXVlc3RGbilcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBzZXRSZXF1ZXN0TG9hZGluZyh0cnVlKTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIHJlcXVlc3RGbihwYXJhbXMpO1xuICAgICAgICAgICAgICAgIGlmICghc3RhbGUgJiYgZGF0YSAmJiB0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9ybUluc3RhbmNlLnNldEZpZWxkc1ZhbHVlKGRhdGEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAvLyBBIGZhaWxlZCByZXF1ZXN0IG11c3Qgbm90IGVzY2FwZSBhcyBhbiB1bmhhbmRsZWQgcmVqZWN0aW9uIOKAlCB0aGVcbiAgICAgICAgICAgICAgICAvLyBmb3JtIGtlZXBzIGl0cyBpbml0aWFsVmFsdWVzIGFuZCB0aGUgZmFpbHVyZSBpcyBzdXJmYWNlZCBvbiB0aGVcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlIChtaXJyb3JzIHRoZSBmaWVsZC1sZXZlbCB1c2VGaWVsZFJlcXVlc3QgaGFuZGxpbmcpLlxuICAgICAgICAgICAgICAgIGlmICghc3RhbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignW1Byb0Zvcm1dIHJlcXVlc3QgZmFpbGVkOicsIGVycik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZmluYWxseSB7XG4gICAgICAgICAgICAgICAgaWYgKCFzdGFsZSkge1xuICAgICAgICAgICAgICAgICAgICBzZXRSZXF1ZXN0TG9hZGluZyhmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgIC8vIE9ubHkgYSBOT04tc3VwZXJzZWRlZCBzZXR0bGUgaW5pdGlhbGl6ZXMgdGhlIGZvcm06IGEgc3RhbGVcbiAgICAgICAgICAgICAgICAgICAgLy8gcmVxdWVzdCdzIGRhdGEgd2FzIGRpc2NhcmRlZCwgc28gaXRzIHZhbHVlcyBtdXN0IG5vdCBiZSByZXBvcnRlZC5cbiAgICAgICAgICAgICAgICAgICAgZmlyZUluaXQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAocmVxdWVzdFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICBmZXRjaERhdGEoKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGZpcmVJbml0KCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIHN0YWxlID0gdHJ1ZTtcbiAgICAgICAgfTtcbiAgICAgICAgLy8gUmUtZmV0Y2ggd2hlbiBwYXJhbXMgY2hhbmdlIGJ5IFZBTFVFIChkZXBlbmRpbmcgb24gdGhlIHJhdyBgcGFyYW1zYFxuICAgICAgICAvLyByZWZlcmVuY2Ugd291bGQgcmUtcnVuIG9uIGV2ZXJ5IHJlbmRlciBmb3IgaW5saW5lIG9iamVjdCBsaXRlcmFscyBhbmQsXG4gICAgICAgIC8vIGNvbWJpbmVkIHdpdGggdGhlIGxvYWRpbmcgc2V0U3RhdGUsIGxvb3AgZm9yZXZlcikg4oCUIGFuZCB3aGVuIGByZXF1ZXN0YFxuICAgICAgICAvLyBmaXJzdCBiZWNvbWVzIGRlZmluZWQgKGUuZy4gYmVoaW5kIGEgZmVhdHVyZSBmbGFnKSwgbWlycm9yaW5nXG4gICAgICAgIC8vIHVzZUZpZWxkUmVxdWVzdC4gZmlyZUluaXQncyBvbmNlLWd1YXJkIGtlZXBzIG9uSW5pdCBmcm9tIHJlLWZpcmluZy5cbiAgICB9LCBbc2VyaWFsaXplZFBhcmFtcywgaGFzUmVxdWVzdF0pO1xuICAgIC8vIOKUgOKUgCBhdXRvRm9jdXNGaXJzdElucHV0IOKUgOKUgFxuICAgIGNvbnN0IGZvcm1FbFJlZiA9IHVzZVJlZihudWxsKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmICghYXV0b0ZvY3VzRmlyc3RJbnB1dCB8fCBtb2RlID09PSAncmVhZCcpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IGZpcnN0SW5wdXQgPSAoX2EgPSBmb3JtRWxSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0Om5vdChbdHlwZT1cImhpZGRlblwiXSk6bm90KFtkaXNhYmxlZF0pLCB0ZXh0YXJlYTpub3QoW2Rpc2FibGVkXSksIHNlbGVjdDpub3QoW2Rpc2FibGVkXSknKTtcbiAgICAgICAgZmlyc3RJbnB1dCA9PT0gbnVsbCB8fCBmaXJzdElucHV0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBmaXJzdElucHV0LmZvY3VzKCk7XG4gICAgICAgIC8vIE1vdW50LW9ubHkgYnkgZGVzaWduLlxuICAgIH0sIFtdKTtcbiAgICAvLyDilIDilIAgU3BsaXQgY29udGV4dCDilIDilIBcbiAgICAvLyBGb3JtLWxldmVsIHByb3AgYmFncyBhcmUgb2Z0ZW4gaW5saW5lIGxpdGVyYWxzOiBrZWVwIHRoZWlyIGlkZW50aXR5XG4gICAgLy8gc3RhYmxlIHdoaWxlIHNoYWxsb3ctZXF1YWwgc28gdGhlIHN0YWJsZSBzbGljZSBkb2Vzbid0IGNodXJuIHBlciByZW5kZXIuXG4gICAgY29uc3Qgc3RhYmxlRmllbGRQcm9wcyA9IHVzZVNoYWxsb3dTdGFibGUoZmllbGRQcm9wcyk7XG4gICAgY29uc3Qgc3RhYmxlRm9ybUl0ZW1Qcm9wcyA9IHVzZVNoYWxsb3dTdGFibGUoZm9ybUl0ZW1Qcm9wcyk7XG4gICAgY29uc3Qgc3RhYmxlQ29sUHJvcHMgPSB1c2VTaGFsbG93U3RhYmxlKGNvbFByb3BzKTtcbiAgICBjb25zdCBzdGFibGVMYXlvdXQgPSB1c2VTaGFsbG93U3RhYmxlKGxheW91dCk7XG4gICAgLy8gU3RhYmxlIHNsaWNlOiBjb25maWd1cmF0aW9uICsgaWRlbnRpdHktc3RhYmxlIGRpc3BhdGNoZXJzL2luc3RhbmNlLlxuICAgIC8vIENoYW5nZXMgb25seSB3aGVuIGZvcm0tbGV2ZWwgcHJvcHMgY2hhbmdlIOKAlCBOT1Qgb24ga2V5c3Ryb2tlcywgc29cbiAgICAvLyBzdWJzY3JpYmVycyBsaWtlIFN1Ym1pdHRlciBhbmQgdGhlIGZpZWxkIGZhY3RvcmllcyBza2lwIHRob3NlIHJlbmRlcnMuXG4gICAgY29uc3Qgc3RhYmxlVmFsdWUgPSB1c2VNZW1vKCgpID0+ICh7XG4gICAgICAgIGZvcm1JbnN0YW5jZTogcHJvRm9ybUZvcm1JbnN0YW5jZSxcbiAgICAgICAgc2V0RmllbGRWYWx1ZTogaW50ZXJuYWxzLnNldEZpZWxkVmFsdWUsXG4gICAgICAgIHNldEZpZWxkRXJyb3I6IGludGVybmFscy5zZXRGaWVsZEVycm9yLFxuICAgICAgICBzZXRGaWVsZFdhcm5pbmc6IGludGVybmFscy5zZXRGaWVsZFdhcm5pbmcsXG4gICAgICAgIHZhbGlkYXRlRmllbGRBc3luYzogaW50ZXJuYWxzLnZhbGlkYXRlRmllbGRBc3luYyxcbiAgICAgICAgcmVnaXN0ZXJGaWVsZDogaW50ZXJuYWxzLnJlZ2lzdGVyRmllbGQsXG4gICAgICAgIHVucmVnaXN0ZXJGaWVsZDogaW50ZXJuYWxzLnVucmVnaXN0ZXJGaWVsZCxcbiAgICAgICAgcmV0YWluRmllbGQ6IGludGVybmFscy5yZXRhaW5GaWVsZCxcbiAgICAgICAgcmVsZWFzZUZpZWxkOiBpbnRlcm5hbHMucmVsZWFzZUZpZWxkLFxuICAgICAgICBzaXplLFxuICAgICAgICBsYWJlbEFsaWduLFxuICAgICAgICAvLyBTdWJtaXR0aW5nL2xvYWRpbmcgZG9lcyBOT1QgZGlzYWJsZSBmaWVsZHMg4oCUIG9ubHkgdGhlXG4gICAgICAgIC8vIGV4cGxpY2l0IGBkaXNhYmxlZGAgcHJvcCBkb2VzLiBLZWVwaW5nIGlzTG9hZGluZyBvdXQgb2YgdGhpcyBzbGljZVxuICAgICAgICAvLyBtZWFucyBhIHN1Ym1pdCBjeWNsZSBubyBsb25nZXIgcmUtcmVuZGVycyBldmVyeSBmaWVsZCBzaGVsbC5cbiAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgIHZhbGlkYXRlVHJpZ2dlcixcbiAgICAgICAgLy8gUHJvRm9ybSBzcGVjaWZpY3NcbiAgICAgICAgbW9kZSxcbiAgICAgICAgZ3JpZCxcbiAgICAgICAgY29sUHJvcHM6IHN0YWJsZUNvbFByb3BzICE9PSBudWxsICYmIHN0YWJsZUNvbFByb3BzICE9PSB2b2lkIDAgPyBzdGFibGVDb2xQcm9wcyA6IERFRkFVTFRfQ09MX1BST1BTLFxuICAgICAgICByZWdpc3RlclRyYW5zZm9ybTogcmVnaXN0ZXJUcmFuc2Zvcm0sXG4gICAgICAgIHVucmVnaXN0ZXJUcmFuc2Zvcm06IHVucmVnaXN0ZXJUcmFuc2Zvcm0sXG4gICAgICAgIHJlZ2lzdGVyVmFsdWVUeXBlLFxuICAgICAgICB1bnJlZ2lzdGVyVmFsdWVUeXBlLFxuICAgICAgICBmaWVsZFByb3BzOiBzdGFibGVGaWVsZFByb3BzLFxuICAgICAgICBmb3JtSXRlbVByb3BzOiBzdGFibGVGb3JtSXRlbVByb3BzLFxuICAgICAgICBsYXlvdXQ6IHN0YWJsZUxheW91dCxcbiAgICAgICAgZm9ybUNvbXBvbmVudFR5cGUsXG4gICAgfSksIFtcbiAgICAgICAgcHJvRm9ybUZvcm1JbnN0YW5jZSxcbiAgICAgICAgaW50ZXJuYWxzLnNldEZpZWxkVmFsdWUsXG4gICAgICAgIGludGVybmFscy5zZXRGaWVsZEVycm9yLFxuICAgICAgICBpbnRlcm5hbHMuc2V0RmllbGRXYXJuaW5nLFxuICAgICAgICBpbnRlcm5hbHMudmFsaWRhdGVGaWVsZEFzeW5jLFxuICAgICAgICBpbnRlcm5hbHMucmVnaXN0ZXJGaWVsZCxcbiAgICAgICAgaW50ZXJuYWxzLnVucmVnaXN0ZXJGaWVsZCxcbiAgICAgICAgaW50ZXJuYWxzLnJldGFpbkZpZWxkLFxuICAgICAgICBpbnRlcm5hbHMucmVsZWFzZUZpZWxkLFxuICAgICAgICBzaXplLFxuICAgICAgICBsYWJlbEFsaWduLFxuICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgdmFsaWRhdGVUcmlnZ2VyLFxuICAgICAgICBtb2RlLFxuICAgICAgICBncmlkLFxuICAgICAgICBzdGFibGVDb2xQcm9wcyxcbiAgICAgICAgcmVnaXN0ZXJUcmFuc2Zvcm0sXG4gICAgICAgIHVucmVnaXN0ZXJUcmFuc2Zvcm0sXG4gICAgICAgIHJlZ2lzdGVyVmFsdWVUeXBlLFxuICAgICAgICB1bnJlZ2lzdGVyVmFsdWVUeXBlLFxuICAgICAgICBzdGFibGVGaWVsZFByb3BzLFxuICAgICAgICBzdGFibGVGb3JtSXRlbVByb3BzLFxuICAgICAgICBzdGFibGVMYXlvdXQsXG4gICAgICAgIGZvcm1Db21wb25lbnRUeXBlLFxuICAgIF0pO1xuICAgIGNvbnN0IFdyYXBwZXJDb21wb25lbnQgPSBncmlkID8gUm93IDogRnJhZ21lbnQ7XG4gICAgY29uc3Qgd3JhcHBlclByb3BzID0gZ3JpZCA/IE9iamVjdC5hc3NpZ24oe30sIHJvd1Byb3BzKSA6IHt9O1xuICAgIC8vIFJlc2V0IGNhbGxiYWNrIGNoYWluOiB0aGUgU3VibWl0dGVyIHJlc2V0cyB0aGUgdmFsdWVzIGZpcnN0LCB0aGVuIHRoZVxuICAgIC8vIHN1Ym1pdHRlci1sZXZlbCBvblJlc2V0LCB0aGVuIHRoZSBmb3JtLWxldmVsIG9uUmVzZXQgKHdpdGggZmluYWxWYWx1ZXMpXG4gICAgLy8gYW5kIHRoZSBVUkwgY2xlYW51cCDigJQgZmlyZWQgZXhhY3RseSBvbmNlIHBlciByZXNldCBhY3Rpb24uXG4gICAgY29uc3QgaGFuZGxlU3VibWl0dGVyUmVzZXQgPSB1c2VNZW1vaXplZEZuKCgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAodHlwZW9mIHN1Ym1pdHRlciA9PT0gJ29iamVjdCcpXG4gICAgICAgICAgICAoX2EgPSBzdWJtaXR0ZXIub25SZXNldCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwoc3VibWl0dGVyKTtcbiAgICAgICAgZmlyZUZvcm1SZXNldCgpO1xuICAgIH0pO1xuICAgIGNvbnN0IHN1Ym1pdHRlck5vZGUgPSBzdWJtaXR0ZXIgIT09IGZhbHNlICYmIG1vZGUgIT09ICdyZWFkJyA/IChfanN4KFN1Ym1pdHRlciwgT2JqZWN0LmFzc2lnbih7fSwgKHR5cGVvZiBzdWJtaXR0ZXIgPT09ICdvYmplY3QnID8gc3VibWl0dGVyIDoge30pLCB7IG9uUmVzZXQ6IGhhbmRsZVN1Ym1pdHRlclJlc2V0LCBsb2FkaW5nOiBpc0xvYWRpbmcgfSkpKSA6IG51bGw7XG4gICAgcmV0dXJuIChfanN4KFByb0Zvcm1TdGFibGVDb250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiBzdGFibGVWYWx1ZSwgY2hpbGRyZW46IF9qc3goUHJvRm9ybVN0YXRlQ29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZTogc3RvcmUsIGNoaWxkcmVuOiBfanN4cyhcImZvcm1cIiwgT2JqZWN0LmFzc2lnbih7fSwgcmVzdCwgeyByZWY6IGZvcm1FbFJlZiwgY2xhc3NOYW1lOiBmb3JtQ2xhc3Nlcyh1bmRlZmluZWQsIGpvaW5DbHMoY2xhc3NlcygpLCBjbGFzc05hbWUpKSwgb25TdWJtaXQ6IHdyYXBwZWRIYW5kbGVTdWJtaXQsIG9uUmVzZXQ6IGludGVybmFscy5oYW5kbGVSZXNldCwgY2hpbGRyZW46IFtfanN4KFdyYXBwZXJDb21wb25lbnQsIE9iamVjdC5hc3NpZ24oe30sIHdyYXBwZXJQcm9wcywgeyBjaGlsZHJlbjogY2hpbGRyZW4gfSkpLCBzdWJtaXR0ZXJOb2RlXSB9KSkgfSkgfSkpO1xufTtcblByb0Zvcm1CYXNlLmRpc3BsYXlOYW1lID0gJ1Byb0Zvcm0nO1xuZXhwb3J0IGNvbnN0IFByb0Zvcm0gPSBtZW1vKFByb0Zvcm1CYXNlKTtcbmV4cG9ydCBkZWZhdWx0IFByb0Zvcm07IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
503
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtLmpzIiwiY29tcG9uZW50cy9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL1Byb0Zvcm0udHN4Il0sIm5hbWVzIjpbIl9fYXdhaXRlciIsInRoaXNBcmciLCJfYXJndW1lbnRzIiwiUCIsImdlbmVyYXRvciIsImFkb3B0IiwidmFsdWUiLCJyZXNvbHZlIiwiUHJvbWlzZSIsInJlamVjdCIsImZ1bGZpbGxlZCIsInN0ZXAiLCJuZXh0IiwiZSIsInJlamVjdGVkIiwicmVzdWx0IiwiZG9uZSIsInRoZW4iLCJhcHBseSIsIl9fcmVzdCIsInMiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiUmVhY3QiLCJtZW1vIiwidXNlRWZmZWN0IiwidXNlTWVtbyIsInVzZVJlZiIsIkZyYWdtZW50IiwidXNlTGF0ZXN0IiwidXNlU2FmZVN0YXRlIiwidXNlTWVtb2l6ZWRGbiIsInVzZUV2ZW50Q2FsbGJhY2siLCJkZWZhdWx0IiwiY2xhc3NuYW1lcyIsImpvaW5DbHMiLCJSb3ciLCJ1c2VGb3JtIiwiUHJvRm9ybVN0YWJsZUNvbnRleHQiLCJQcm9Gb3JtU3RhdGVDb250ZXh0IiwiU3VibWl0dGVyIiwiQ1NTX1BSRUZJWCIsIkRFRkFVTFRfQ09MX1NQQU4iLCJzdGFibGVTZXJpYWxpemUiLCJ0cmFuc2Zvcm1TdWJtaXRWYWx1ZXMiLCJvbWl0TmlsVmFsdWVzIiwiZm9ybWF0RGF0ZVZhbHVlcyIsInVzZVNoYWxsb3dTdGFibGUiLCJ1c2VVcmxTeW5jIiwicmVzb2x2ZVZhbHVlIiwic2V0TmVzdGVkVmFsdWUiLCJGb3JtVmFsaWRhdGlvbkVycm9yIiwiY2xhc3NlcyIsImZvcm1DbGFzc2VzIiwiREVGQVVMVF9DT0xfUFJPUFMiLCJzcGFuIiwiUHJvRm9ybUJhc2UiLCJwcm9wcyIsImNoaWxkcmVuIiwiY2xhc3NOYW1lIiwic3VibWl0dGVyIiwiX3Byb3BzJG1vZGUiLCJtb2RlIiwiX3Byb3BzJGdyaWQiLCJncmlkIiwiY29sUHJvcHMiLCJyb3dQcm9wcyIsIl9wcm9wcyRsb2FkaW5nIiwibG9hZGluZyIsInJlcXVlc3QiLCJwYXJhbXMiLCJpbml0aWFsVmFsdWVzIiwib25GaW5pc2giLCJvbkZpbmlzaEZhaWxlZCIsIm9uVmFsdWVzQ2hhbmdlIiwib25SZXNldCIsIm9uSW5pdCIsIm9uTG9hZGluZ0NoYW5nZSIsInN5bmNUb1VybCIsIl9wcm9wcyRzeW5jVG9VcmxBc0ltcCIsInN5bmNUb1VybEFzSW1wb3J0YW50IiwiZXh0cmFVcmxQYXJhbXMiLCJfcHJvcHMkYXV0b0ZvY3VzRmlyc3QiLCJhdXRvRm9jdXNGaXJzdElucHV0IiwiZm9ybUNvbXBvbmVudFR5cGUiLCJmb3JtUmVmIiwiX3Byb3BzJG9taXROaWwiLCJvbWl0TmlsIiwiX3Byb3BzJGRhdGVGb3JtYXR0ZXIiLCJkYXRlRm9ybWF0dGVyIiwiZmllbGRQcm9wcyIsImZvcm1JdGVtUHJvcHMiLCJsYXlvdXQiLCJfcHJvcHMkc2l6ZSIsInNpemUiLCJfcHJvcHMkbGFiZWxBbGlnbiIsImxhYmVsQWxpZ24iLCJfcHJvcHMkZGlzYWJsZWQiLCJkaXNhYmxlZCIsIl9wcm9wcyR2YWxpZGF0ZVRyaWdnZSIsInZhbGlkYXRlVHJpZ2dlciIsIl9wcmVmaXhDbHMiLCJwcmVmaXhDbHMiLCJyZXN0IiwiX3VzZVNhZmVTdGF0ZSIsIl91c2VTYWZlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJyZXF1ZXN0TG9hZGluZyIsInNldFJlcXVlc3RMb2FkaW5nIiwiX3VzZVNhZmVTdGF0ZTMiLCJfdXNlU2FmZVN0YXRlNCIsInN1Ym1pdHRpbmciLCJzZXRTdWJtaXR0aW5nIiwic3VibWl0dGluZ1JlZiIsImlzTG9hZGluZyIsInRyYW5zZm9ybUtleVJlZiIsInZhbHVlVHlwZVJlZiIsInJlZ2lzdGVyVHJhbnNmb3JtIiwibmFtZSIsImZuIiwiY3VycmVudCIsInVucmVnaXN0ZXJUcmFuc2Zvcm0iLCJ1bmRlZmluZWQiLCJyZWdpc3RlclZhbHVlVHlwZSIsInZhbHVlVHlwZSIsInVucmVnaXN0ZXJWYWx1ZVR5cGUiLCJvbkZpbmlzaFJlZiIsIm9uSW5pdFJlZiIsIm9uTG9hZGluZ0NoYW5nZVJlZiIsImFwcGx5UGlwZWxpbmUiLCJ2YWx1ZXMiLCJmb3JtYXRWYWx1ZXNLZWVwTmlsIiwiX3VzZVVybFN5bmMiLCJ1cmxJbml0aWFsVmFsdWVzIiwib25VcmxTeW5jRmluaXNoIiwib25VcmxTeW5jUmVzZXQiLCJtZXJnZWRJbml0aWFsVmFsdWVzUmVmIiwiYXNzaWduIiwibWVyZ2VkSW5pdGlhbFZhbHVlcyIsInJlc2V0RXBvY2hSZWYiLCJmaXJlRm9ybVJlc2V0IiwiZmluYWxWYWx1ZXMiLCJmb3JtSW5zdGFuY2UiLCJnZXRGaWVsZHNWYWx1ZSIsIl91c2VGb3JtIiwiaW50ZXJuYWxzIiwic3RvcmUiLCJ3cmFwcGVkSGFuZGxlU3VibWl0IiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwiX2EiLCJfYiIsIl9jIiwiZXBvY2giLCJ2YWxpZGF0ZWRWYWx1ZXMiLCJwaXBlbGluZWQiLCJfdCIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJwcmV2ZW50RGVmYXVsdCIsImFicnVwdCIsInZhbGlkYXRlRmllbGRzIiwic2VudCIsImVycm9ycyIsImNvbnNvbGUiLCJlcnJvciIsImZpbmlzaCIsInN0b3AiLCJwcm9Gb3JtRm9ybUluc3RhbmNlIiwiZ2V0RmllbGRzRm9ybWF0VmFsdWUiLCJnZXRGaWVsZEZvcm1hdFZhbHVlIiwiZ2V0RmllbGRGb3JtYXRWYWx1ZU9iamVjdCIsImZvcm1hdHRlZCIsInZhbGlkYXRlRmllbGRzUmV0dXJuRm9ybWF0VmFsdWUiLCJfY2FsbGVlMiIsInZhbHMiLCJfdDIiLCJfY29udGV4dDIiLCJzdWNjZXNzIiwic3VibWl0Rm9ybSIsInJlcXVlc3RSZWYiLCJoYXNSZXF1ZXN0Iiwic2VyaWFsaXplZFBhcmFtcyIsImluaXRGaXJlZFJlZiIsImZpcmVJbml0Iiwic3RhbGUiLCJmZXRjaERhdGEiLCJfY2FsbGVlMyIsInJlcXVlc3RGbiIsImRhdGEiLCJfdDMiLCJfY29udGV4dDMiLCJfdHlwZW9mIiwic2V0RmllbGRzVmFsdWUiLCJmb3JtRWxSZWYiLCJmaXJzdElucHV0IiwicXVlcnlTZWxlY3RvciIsImZvY3VzIiwic3RhYmxlRmllbGRQcm9wcyIsInN0YWJsZUZvcm1JdGVtUHJvcHMiLCJzdGFibGVDb2xQcm9wcyIsInN0YWJsZUxheW91dCIsInN0YWJsZVZhbHVlIiwic2V0RmllbGRWYWx1ZSIsInNldEZpZWxkRXJyb3IiLCJzZXRGaWVsZFdhcm5pbmciLCJ2YWxpZGF0ZUZpZWxkQXN5bmMiLCJyZWdpc3RlckZpZWxkIiwidW5yZWdpc3RlckZpZWxkIiwicmV0YWluRmllbGQiLCJyZWxlYXNlRmllbGQiLCJXcmFwcGVyQ29tcG9uZW50Iiwid3JhcHBlclByb3BzIiwiaGFuZGxlU3VibWl0dGVyUmVzZXQiLCJzdWJtaXR0ZXJOb2RlIiwiUHJvdmlkZXIiLCJyZWYiLCJvblN1Ym1pdCIsImhhbmRsZVJlc2V0IiwiZGlzcGxheU5hbWUiLCJQcm9Gb3JtIl0sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFJQSxTQUFTLEdBQUksSUFBSSxJQUFJLElBQUksQ0FBQ0EsU0FBUyxJQUFLLFVBQVVDLE9BQU8sRUFBRUMsVUFBVSxFQUFFQyxDQUFDLEVBQUVDLFNBQVMsRUFBRTtFQUNyRixTQUFTQyxLQUFLQSxDQUFDQyxLQUFLLEVBQUU7SUFBRSxPQUFPQSxLQUFLLFlBQVlILENBQUMsR0FBR0csS0FBSyxHQUFHLElBQUlILENBQUMsQ0FBQyxVQUFVSSxPQUFPLEVBQUU7TUFBRUEsT0FBTyxDQUFDRCxLQUFLLENBQUM7SUFBRSxDQUFDLENBQUM7RUFBRTtFQUMzRyxPQUFPLEtBQUtILENBQUMsS0FBS0EsQ0FBQyxHQUFHSyxPQUFPLENBQUMsRUFB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QVc7SUFBQWxKLFFBQUEsRUFHL0N0QyxJQUFBLENBQUNtQixtQkFBbUIsQ0FBQ2tMLFFBQVEsRUFBQTtNQUFDaE8sS0FBSyxFQUFFeUosS0FBSztNQUFBeEYsUUFBQSxFQUN4Q3BDLEtBQUEsQ0FBQSxNQUFBLEVBQUFaLE1BQUEsQ0FBQStILE1BQUEsQ0FBQSxDQUFBLENBQUEsRUFDTWxDLElBQUksRUFBQTtRQUNSbUgsR0FBRyxFQUFFdEIsU0FBUztRQUNkekksU0FBUyxFQUFFTixXQUFXLENBQUNxRSxTQUFTLEVBQUV2RixPQUFPLENBQUNpQixPQUFPLENBQUEsQ0FBRSxFQUFFTyxTQUFTLENBQUMsQ0FBQztRQUNoRWdLLFFBQVEsRUFBRXhFLG1CQUFtQjtRQUM3QnhFLE9BQU8sRUFBRXNFLFNBQVMsQ0FBQzJFLFdBQVc7UUFBQWxLLFFBQUEsRUFBQSxDQUU5QnRDLElBQUEsQ0FBQ2lNLGdCQUFnQixFQUFBM00sTUFBQSxDQUFBK0gsTUFBQSxDQUFBLENBQUEsQ0FBQSxFQUFLNkUsWUFBWSxFQUFBO1VBQUE1SixRQUFBLEVBQUdBO1FBQVEsQ0FBQSxDQUFBLENBQW9CLEVBQ2hFOEosYUFBYTtNQUFBLENBQUEsQ0FBQTtJQUNULENBQUE7RUFDc0IsQ0FBQSxDQUNEO0FBRXBDLENBQUM7QUFFRGhLLFdBQVcsQ0FBQ3FLLFdBQVcsR0FBRyxTQUFTO0FBYW5DLE9BQU8sSUFBTUMsT0FBTyxnQkFBR3RNLElBQUksQ0FBQ2dDLFdBQVcsQ0FBNEI7QUFFbkUsZUFBZXNLLE9BQU8iLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL1Byb0Zvcm0uanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbnZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgUmVhY3QsIHsgbWVtbywgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VSZWYsIEZyYWdtZW50IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHVzZUxhdGVzdCBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZUxhdGVzdCc7XG5pbXBvcnQgdXNlU2FmZVN0YXRlIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlU2FmZVN0YXRlJztcbmltcG9ydCB1c2VNZW1vaXplZEZuIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlTWVtb2l6ZWRGbic7XG5pbXBvcnQgdXNlRXZlbnRDYWxsYmFjayBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZUV2ZW50Q2FsbGJhY2snO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBjbGFzc25hbWVzLCBqb2luQ2xzIH0gZnJvbSAnLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBSb3cgfSBmcm9tICcuLi9HcmlkJztcbmltcG9ydCB7IHVzZUZvcm0gfSBmcm9tICcuL2NvcmUvaG9va3MvdXNlRm9ybSc7XG5pbXBvcnQgeyBQcm9Gb3JtU3RhYmxlQ29udGV4dCwgUHJvRm9ybVN0YXRlQ29udGV4dCB9IGZyb20gJy4vY29udGV4dCc7XG5pbXBvcnQgeyBTdWJtaXR0ZXIgfSBmcm9tICcuL1N1Ym1pdHRlcic7XG5pbXBvcnQgeyBDU1NfUFJFRklYLCBERUZBVUxUX0NPTF9TUEFOIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgc3RhYmxlU2VyaWFsaXplLCB0cmFuc2Zvcm1TdWJtaXRWYWx1ZXMsIG9taXROaWxWYWx1ZXMsIGZvcm1hdERhdGVWYWx1ZXMgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IHVzZVNoYWxsb3dTdGFibGUgfSBmcm9tICcuL2NvcmUvZm9ybVN0b3JlJztcbmltcG9ydCB7IHVzZVVybFN5bmMgfSBmcm9tICcuL2hvb2tzL3VzZVVybFN5bmMnO1xuaW1wb3J0IHsgcmVzb2x2ZVZhbHVlLCBzZXROZXN0ZWRWYWx1ZSB9IGZyb20gJy4vY29yZS9wYXRoVXRpbHMnO1xuaW1wb3J0IHsgRm9ybVZhbGlkYXRpb25FcnJvciB9IGZyb20gJy4vY29yZS92YWxpZGF0aW9uRXJyb3InO1xuY29uc3QgY2xhc3NlcyA9IGNsYXNzbmFtZXMoQ1NTX1BSRUZJWCk7XG5jb25zdCBmb3JtQ2xhc3NlcyA9IGNsYXNzbmFtZXMoJ2Zvcm0nKTtcbmNvbnN0IERFRkFVTFRfQ09MX1BST1BTID0geyBzcGFuOiBERUZBVUxUX0NPTF9TUEFOIH07XG5jb25zdCBQcm9Gb3JtQmFzZSA9IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgY2hpbGRyZW4sIGNsYXNzTmFtZSwgc3VibWl0dGVyLCBtb2RlID0gJ2VkaXQnLCBncmlkID0gZmFsc2UsIGNvbFByb3BzLCByb3dQcm9wcywgbG9hZGluZyA9IGZhbHNlLCByZXF1ZXN0LCBwYXJhbXMsIGluaXRpYWxWYWx1ZXMsIG9uRmluaXNoLCBvbkZpbmlzaEZhaWxlZCwgb25WYWx1ZXNDaGFuZ2UsIG9uUmVzZXQsIG9uSW5pdCwgb25Mb2FkaW5nQ2hhbmdlLCBzeW5jVG9VcmwsIHN5bmNUb1VybEFzSW1wb3J0YW50ID0gZmFsc2UsIGV4dHJhVXJsUGFyYW1zLCBhdXRvRm9jdXNGaXJzdElucHV0ID0gZmFsc2UsIGZvcm1Db21wb25lbnRUeXBlLCBmb3JtUmVmLCBvbWl0TmlsID0gdHJ1ZSwgZGF0ZUZvcm1hdHRlciA9ICdzdHJpbmcnLCBmaWVsZFByb3BzLCBmb3JtSXRlbVByb3BzLCBsYXlvdXQsIHNpemUgPSAnbGFyZ2UnLCBsYWJlbEFsaWduID0gJ2xlZnQnLCBkaXNhYmxlZCA9IGZhbHNlLCB2YWxpZGF0ZVRyaWdnZXIgPSAnb25DaGFuZ2UnLCBwcmVmaXhDbHM6IF9wcmVmaXhDbHMgfSA9IHByb3BzLCByZXN0ID0gX19yZXN0KHByb3BzLCBbXCJjaGlsZHJlblwiLCBcImNsYXNzTmFtZVwiLCBcInN1Ym1pdHRlclwiLCBcIm1vZGVcIiwgXCJncmlkXCIsIFwiY29sUHJvcHNcIiwgXCJyb3dQcm9wc1wiLCBcImxvYWRpbmdcIiwgXCJyZXF1ZXN0XCIsIFwicGFyYW1zXCIsIFwiaW5pdGlhbFZhbHVlc1wiLCBcIm9uRmluaXNoXCIsIFwib25GaW5pc2hGYWlsZWRcIiwgXCJvblZhbHVlc0NoYW5nZVwiLCBcIm9uUmVzZXRcIiwgXCJvbkluaXRcIiwgXCJvbkxvYWRpbmdDaGFuZ2VcIiwgXCJzeW5jVG9VcmxcIiwgXCJzeW5jVG9VcmxBc0ltcG9ydGFudFwiLCBcImV4dHJhVXJsUGFyYW1zXCIsIFwiYXV0b0ZvY3VzRmlyc3RJbnB1dFwiLCBcImZvcm1Db21wb25lbnRUeXBlXCIsIFwiZm9ybVJlZlwiLCBcIm9taXROaWxcIiwgXCJkYXRlRm9ybWF0dGVyXCIsIFwiZmllbGRQcm9wc1wiLCBcImZvcm1JdGVtUHJvcHNcIiwgXCJsYXlvdXRcIiwgXCJzaXplXCIsIFwibGFiZWxBbGlnblwiLCBcImRpc2FibGVkXCIsIFwidmFsaWRhdGVUcmlnZ2VyXCIsIFwicHJlZml4Q2xzXCJdKTtcbiAgICBjb25zdCBbcmVxdWVzdExvYWRpbmcsIHNldFJlcXVlc3RMb2FkaW5nXSA9IHVzZVNhZmVTdGF0ZShmYWxzZSk7XG4gICAgLy8gdXNlU2FmZVN0YXRlIGZvciB0aGUgUkVOREVSRUQgc3VibWl0dGluZyBzdGF0ZSAoaXRzIHNldHRlciBpcyB1bm1vdW50LXNhZmVcbiAgICAvLyDigJQgdGhlIGZpbmFsbHkgYmVsb3cgcnVucyBhZnRlciBhd2FpdGluZyBvbkZpbmlzaCwgd2hlbiB0aGUgdHlwaWNhbFxuICAgIC8vIHN1Ym1pdC10aGVuLWNsb3NlIGZsb3cgbWF5IGFscmVhZHkgaGF2ZSB1bm1vdW50ZWQgdGhlIGZvcm0gb24gUmVhY3RcbiAgICAvLyAxNi8xNykuIFRoZSByZWYgaXMgdGhlIHN5bmNocm9ub3VzIHJlLWVudHJ5IGd1YXJkOyBAMW1vbmV5L2hvb2tzIGhhcyBub1xuICAgIC8vIHNpbmdsZSBob29rIHRoYXQgaXMgYm90aCB1bm1vdW50LXNhZmUgYW5kIHN5bmNocm9ub3VzbHkgcmVhZGFibGUuXG4gICAgY29uc3QgW3N1Ym1pdHRpbmcsIHNldFN1Ym1pdHRpbmddID0gdXNlU2FmZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBzdWJtaXR0aW5nUmVmID0gdXNlUmVmKGZhbHNlKTtcbiAgICBjb25zdCBpc0xvYWRpbmcgPSBsb2FkaW5nIHx8IHJlcXVlc3RMb2FkaW5nIHx8IHN1Ym1pdHRpbmc7XG4gICAgLy8g4pSA4pSAIFRyYW5zZm9ybSAvIHZhbHVlVHlwZSByZWdpc3RyaWVzIOKUgOKUgFxuICAgIGNvbnN0IHRyYW5zZm9ybUtleVJlZiA9IHVzZVJlZih7fSk7XG4gICAgY29uc3QgdmFsdWVUeXBlUmVmID0gdXNlUmVmKHt9KTtcbiAgICBjb25zdCByZWdpc3RlclRyYW5zZm9ybSA9IHVzZU1lbW9pemVkRm4oKG5hbWUsIGZuKSA9PiB7XG4gICAgICAgIHRyYW5zZm9ybUtleVJlZi5jdXJyZW50W25hbWVdID0gZm47XG4gICAgfSk7XG4gICAgLy8gVGhlIG9wdGlvbmFsIHNlY29uZCBhcmd1bWVudCBndWFyZHMgcmVtb3ZhbDogZGVsZXRlIG9ubHkgd2hlbiB0aGUgcmVnaXN0cnlcbiAgICAvLyBzdGlsbCBob2xkcyB0aGUgQ0FMTEVSJ1MgcmVnaXN0cmF0aW9uLCBzbyBhbiB1bm1vdW50aW5nIGluc3RhbmNlIGNhbiBuZXZlclxuICAgIC8vIHdpcGUgYSBzYW1lLW5hbWUgc2libGluZydzIG9yIHN1Y2Nlc3NvcidzIGVudHJ5LlxuICAgIGNvbnN0IHVucmVnaXN0ZXJUcmFuc2Zvcm0gPSB1c2VNZW1vaXplZEZuKChuYW1lLCBmbikgPT4ge1xuICAgICAgICBpZiAoZm4gPT09IHVuZGVmaW5lZCB8fCB0cmFuc2Zvcm1LZXlSZWYuY3VycmVudFtuYW1lXSA9PT0gZm4pIHtcbiAgICAgICAgICAgIGRlbGV0ZSB0cmFuc2Zvcm1LZXlSZWYuY3VycmVudFtuYW1lXTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IHJlZ2lzdGVyVmFsdWVUeXBlID0gdXNlTWVtb2l6ZWRGbigobmFtZSwgdmFsdWVUeXBlKSA9PiB7XG4gICAgICAgIHZhbHVlVHlwZVJlZi5jdXJyZW50W25hbWVdID0gdmFsdWVUeXBlO1xuICAgIH0pO1xuICAgIGNvbnN0IHVucmVnaXN0ZXJWYWx1ZVR5cGUgPSB1c2VNZW1vaXplZEZuKChuYW1lLCB2YWx1ZVR5cGUpID0+IHtcbiAgICAgICAgaWYgKHZhbHVlVHlwZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlVHlwZVJlZi5jdXJyZW50W25hbWVdID09PSB2YWx1ZVR5cGUpIHtcbiAgICAgICAgICAgIGRlbGV0ZSB2YWx1ZVR5cGVSZWYuY3VycmVudFtuYW1lXTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IG9uRmluaXNoUmVmID0gdXNlTGF0ZXN0KG9uRmluaXNoKTtcbiAgICBjb25zdCBvbkluaXRSZWYgPSB1c2VMYXRlc3Qob25Jbml0KTtcbiAgICBjb25zdCBvbkxvYWRpbmdDaGFuZ2VSZWYgPSB1c2VMYXRlc3Qob25Mb2FkaW5nQ2hhbmdlKTtcbiAgICAvLyBTdWJtaXQgcGlwZWxpbmU6IGRhdGVzIOKGkiBmaWVsZCB0cmFuc2Zvcm1zIOKGkiBvbWl0TmlsXG4gICAgY29uc3QgYXBwbHlQaXBlbGluZSA9IHVzZU1lbW9pemVkRm4oKHZhbHVlcykgPT4ge1xuICAgICAgICBsZXQgcmVzdWx0ID0gZm9ybWF0RGF0ZVZhbHVlcyh2YWx1ZXMsIGRhdGVGb3JtYXR0ZXIsIHZhbHVlVHlwZVJlZi5jdXJyZW50KTtcbiAgICAgICAgcmVzdWx0ID0gdHJhbnNmb3JtU3VibWl0VmFsdWVzKHJlc3VsdCwgdHJhbnNmb3JtS2V5UmVmLmN1cnJlbnQpO1xuICAgICAgICBpZiAob21pdE5pbClcbiAgICAgICAgICAgIHJlc3VsdCA9IG9taXROaWxWYWx1ZXMocmVzdWx0KTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9KTtcbiAgICAvLyBTYW1lIHBpcGVsaW5lIFdJVEhPVVQgb21pdE5pbCDigJQgc2luZ2xlLWZpZWxkIHJlYWRlcnMgbXVzdCBub3Qgc2VlIGEgZmllbGRcbiAgICAvLyB2YW5pc2gganVzdCBiZWNhdXNlIGl0cyBjdXJyZW50IHZhbHVlIGlzIGVtcHR5LlxuICAgIGNvbnN0IGZvcm1hdFZhbHVlc0tlZXBOaWwgPSB1c2VNZW1vaXplZEZuKCh2YWx1ZXMpID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gZm9ybWF0RGF0ZVZhbHVlcyh2YWx1ZXMsIGRhdGVGb3JtYXR0ZXIsIHZhbHVlVHlwZVJlZi5jdXJyZW50KTtcbiAgICAgICAgcmV0dXJuIHRyYW5zZm9ybVN1Ym1pdFZhbHVlcyhyZXN1bHQsIHRyYW5zZm9ybUtleVJlZi5jdXJyZW50KTtcbiAgICB9KTtcbiAgICAvLyDilIDilIAgVVJMIHN5bmMgKHN5bmNUb1VybCAvIHN5bmNUb1VybEFzSW1wb3J0YW50IC8gZXh0cmFVcmxQYXJhbXMpIOKUgOKUgFxuICAgIGNvbnN0IHsgdXJsSW5pdGlhbFZhbHVlcywgb25VcmxTeW5jRmluaXNoLCBvblVybFN5bmNSZXNldCB9ID0gdXNlVXJsU3luYyh7XG4gICAgICAgIHN5bmNUb1VybCxcbiAgICAgICAgZXh0cmFVcmxQYXJhbXMsXG4gICAgfSk7XG4gICAgLy8gaW5pdGlhbFZhbHVlcyBpcyBNT1VOVC1PTkxZIChkb2N1bWVudGVkIGNvbnRyYWN0OyB1c2VGb3JtQ29yZSByZS1mcmVlemVzXG4gICAgLy8gYXMgYSBzYWZldHkgbmV0KSDigJQgY29tcHV0ZSB0aGUgVVJMIG1lcmdlIG9uY2Ugc28gdGhlIGZyZWV6ZSBpcyB2aXNpYmxlXG4gICAgLy8gd2hlcmUgdGhlIHByb3BzIGVudGVyLCBpbnN0ZWFkIG9mIHJlY29tcHV0aW5nIGRlYWQgc3ByZWFkcyBwZXIgcmVuZGVyLlxuICAgIGNvbnN0IG1lcmdlZEluaXRpYWxWYWx1ZXNSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgaWYgKG1lcmdlZEluaXRpYWxWYWx1ZXNSZWYuY3VycmVudCA9PT0gbnVsbCkge1xuICAgICAgICBtZXJnZWRJbml0aWFsVmFsdWVzUmVmLmN1cnJlbnQgPSBzeW5jVG9VcmxcbiAgICAgICAgICAgID8gKHN5bmNUb1VybEFzSW1wb3J0YW50XG4gICAgICAgICAgICAgICAgPyBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGluaXRpYWxWYWx1ZXMpLCB1cmxJbml0aWFsVmFsdWVzKSA6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgdXJsSW5pdGlhbFZhbHVlcyksIGluaXRpYWxWYWx1ZXMpKVxuICAgICAgICAgICAgOiAoaW5pdGlhbFZhbHVlcyAhPT0gbnVsbCAmJiBpbml0aWFsVmFsdWVzICE9PSB2b2lkIDAgPyBpbml0aWFsVmFsdWVzIDoge30pO1xuICAgIH1cbiAgICBjb25zdCBtZXJnZWRJbml0aWFsVmFsdWVzID0gbWVyZ2VkSW5pdGlhbFZhbHVlc1JlZi5jdXJyZW50O1xuICAgIC8vIEJ1bXBlZCBvbiBldmVyeSByZXNldCDigJQgYW4gaW4tZmxpZ2h0IHN1Ym1pdCBjYXB0dXJlcyBpdCBhbmQgYWJvcnRzIHdoZW5cbiAgICAvLyBpdCBjaGFuZ2VkIHVuZGVybmVhdGggKHRoZSB1c2VyIGRpc2NhcmRlZCB0aGUgc3VibWlzc2lvbidzIHZhbHVlcykuXG4gICAgY29uc3QgcmVzZXRFcG9jaFJlZiA9IHVzZVJlZigwKTtcbiAgICAvLyBSZXNldCBjaGFpbjogZm9ybS1sZXZlbCBvblJlc2V0IHJlY2VpdmVzIHRoZSAocG9zdC1yZXNldCkgZm9ybWF0dGVkXG4gICAgLy8gdmFsdWVzLCB0aGVuIHRoZSBmb3JtJ3Mgb3duIFVSTCBwYXJhbXMgYXJlIGNsZWFyZWQuIHVzZU1lbW9pemVkRm4gZGVmZXJzXG4gICAgLy8gZXhlY3V0aW9uIHRvIGV2ZW50IHRpbWUsIHdoZW4gYGZvcm1JbnN0YW5jZWAgKGNyZWF0ZWQganVzdCBiZWxvdykgZXhpc3RzLlxuICAgIGNvbnN0IGZpcmVGb3JtUmVzZXQgPSB1c2VNZW1vaXplZEZuKCgpID0+IHtcbiAgICAgICAgcmVzZXRFcG9jaFJlZi5jdXJyZW50ICs9IDE7XG4gICAgICAgIGNvbnN0IGZpbmFsVmFsdWVzID0gYXBwbHlQaXBlbGluZShmb3JtSW5zdGFuY2UuZ2V0RmllbGRzVmFsdWUoKSk7XG4gICAgICAgIG9uUmVzZXQgPT09IG51bGwgfHwgb25SZXNldCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25SZXNldChmaW5hbFZhbHVlcyk7XG4gICAgICAgIG9uVXJsU3luY1Jlc2V0KCk7XG4gICAgfSk7XG4gICAgLy8g4pSA4pSAIEZvcm0gZW5naW5lICh1c2VGb3JtIHdpdGggYXN5bmMgdmFsaWRhdGlvbikg4pSA4pSAXG4gICAgY29uc3QgeyBmb3JtSW5zdGFuY2UsIGludGVybmFscywgc3RvcmUgfSA9IHVzZUZvcm0oe1xuICAgICAgICBpbml0aWFsVmFsdWVzOiBtZXJnZWRJbml0aWFsVmFsdWVzLFxuICAgICAgICBvblZhbHVlc0NoYW5nZSxcbiAgICAgICAgb25SZXNldDogZmlyZUZvcm1SZXNldCxcbiAgICAgICAgc2l6ZSxcbiAgICAgICAgbGFiZWxBbGlnbixcbiAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgIHZhbGlkYXRlVHJpZ2dlcixcbiAgICB9KTtcbiAgICAvLyDilIDilIAgQXN5bmMgc3VibWl0IHdpdGggdHJhbnNmb3JtIHBpcGVsaW5lIOKUgOKUgFxuICAgIC8vIFJlLWVudHJ5IGd1YXJkOiBhIHNlY29uZCBzdWJtaXQgd2hpbGUgb25lIGlzIGluIGZsaWdodCBpcyBpZ25vcmVkICh0aGVcbiAgICAvLyByZWYgY2F0Y2hlcyB0d28gY2FsbHMgaW4gdGhlIHNhbWUgdGljaykuXG4gICAgY29uc3Qgd3JhcHBlZEhhbmRsZVN1Ym1pdCA9IHVzZUV2ZW50Q2FsbGJhY2soKGUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYztcbiAgICAgICAgZSA9PT0gbnVsbCB8fCBlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGlmIChzdWJtaXR0aW5nUmVmLmN1cnJlbnQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHN1Ym1pdHRpbmdSZWYuY3VycmVudCA9IHRydWU7XG4gICAgICAgIHNldFN1Ym1pdHRpbmcodHJ1ZSk7XG4gICAgICAgIChfYSA9IG9uTG9hZGluZ0NoYW5nZVJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbChvbkxvYWRpbmdDaGFuZ2VSZWYsIHRydWUpO1xuICAgICAgICBjb25zdCBlcG9jaCA9IHJlc2V0RXBvY2hSZWYuY3VycmVudDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHZhbGlkYXRlZFZhbHVlcyA9IHlpZWxkIGZvcm1JbnN0YW5jZS52YWxpZGF0ZUZpZWxkcygpO1xuICAgICAgICAgICAgLy8gQSByZXNldCBkdXJpbmcgKGFzeW5jKSB2YWxpZGF0aW9uIGRpc2NhcmRzIHRoaXMgc3VibWlzc2lvbiBlbnRpcmVseTpcbiAgICAgICAgICAgIC8vIHZhbGlkYXRlRmllbGRzIHJlLXJlYWRzIHRoZSBsaXZlIHN0b3JlLCBzbyBwcm9jZWVkaW5nIHdvdWxkIGhhbmRcbiAgICAgICAgICAgIC8vIG9uRmluaXNoIHRoZSBQT1NULXJlc2V0IHZhbHVlcy5cbiAgICAgICAgICAgIGlmIChlcG9jaCAhPT0gcmVzZXRFcG9jaFJlZi5jdXJyZW50KVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIGNvbnN0IHBpcGVsaW5lZCA9IGFwcGx5UGlwZWxpbmUodmFsaWRhdGVkVmFsdWVzKTtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHlpZWxkICgoX2IgPSBvbkZpbmlzaFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChvbkZpbmlzaFJlZiwgcGlwZWxpbmVkKSk7XG4gICAgICAgICAgICAvLyBTeW5jIHRoZSBVUkwgdW5sZXNzIG9uRmluaXNoIGV4cGxpY2l0bHkgcmV0dXJuZWQgZmFsc2UgKGEgdGhyb3cgYWJvdmVcbiAgICAgICAgICAgIC8vIGFsc28gc2tpcHMg4oCUIGEgZmFpbGVkIHN1Ym1pdCBtdXN0IG5vdCBwb2xsdXRlIHRoZSBVUkwpLCBhbmQgb25seSBpZlxuICAgICAgICAgICAgLy8gdGhlIHVzZXIgZGlkIE5PVCByZXNldCB0aGUgZm9ybSB3aGlsZSB0aGUgc3VibWl0IHdhcyBpbiBmbGlnaHQuXG4gICAgICAgICAgICBpZiAocmVzdWx0ICE9PSBmYWxzZSAmJiBlcG9jaCA9PT0gcmVzZXRFcG9jaFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgb25VcmxTeW5jRmluaXNoKHBpcGVsaW5lZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgLy8gQSByZXNldCBkdXJpbmcgdmFsaWRhdGlvbiBhbHNvIGludmFsaWRhdGVzIHRoZSBGQUlMVVJFIGNhbGxiYWNrIOKAlFxuICAgICAgICAgICAgLy8gdGhlIGVycm9yIGNhcnJpZXMgcG9zdC1yZXNldCB2YWx1ZXMgZm9yIGEgZGlzY2FyZGVkIHN1Ym1pc3Npb24uXG4gICAgICAgICAgICAvLyAoRmllbGQgZXJyb3JzIGZyb20gdGhlIGRlYWQgdmFsaWRhdGlvbiBhcmUgc3VwcHJlc3NlZCBieSB0aGVcbiAgICAgICAgICAgIC8vIHBlci1maWVsZCB2YWxpZGF0aW9uIGVwb2NoczogcmVzZXRGaWVsZHMgaW52YWxpZGF0ZXMgaW4tZmxpZ2h0IHJ1bnMuKVxuICAgICAgICAgICAgaWYgKGVwb2NoICE9PSByZXNldEVwb2NoUmVmLmN1cnJlbnQpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgLy8gT25seSBhIFZBTElEQVRJT04gZmFpbHVyZSByb3V0ZXMgdG8gb25GaW5pc2hGYWlsZWQuIEFuIGV4Y2VwdGlvbiBvdXRcbiAgICAgICAgICAgIC8vIG9mIHRoZSBjb25zdW1lcidzIG93biBvbkZpbmlzaCBpcyBub3QgYSB2YWxpZGF0aW9uIHJlc3VsdDogdGhlIHN1Ym1pdFxuICAgICAgICAgICAgLy8gZmFpbHMgKFVSTCB1bnRvdWNoZWQsIG92ZXJsYXkgc3RheXMgb3BlbikgYW5kIHRoZSBlcnJvciBpcyBzdXJmYWNlZFxuICAgICAgICAgICAgLy8gb24gdGhlIGNvbnNvbGUgaW5zdGVhZCBvZiBiZWluZyBtaXNyZXBvcnRlZCB3aXRoIGFuIGVtcHR5IHBheWxvYWQuXG4gICAgICAgICAgICBpZiAoZXJyIGluc3RhbmNlb2YgRm9ybVZhbGlkYXRpb25FcnJvcikge1xuICAgICAgICAgICAgICAgIG9uRmluaXNoRmFpbGVkID09PSBudWxsIHx8IG9uRmluaXNoRmFpbGVkID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkZpbmlzaEZhaWxlZCh7IHZhbHVlczogZXJyLnZhbHVlcywgZXJyb3JzOiBlcnIuZXJyb3JzIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignW1Byb0Zvcm1dIG9uRmluaXNoIHRocmV3IGR1cmluZyBzdWJtaXQ6JywgZXJyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmaW5hbGx5IHtcbiAgICAgICAgICAgIHN1Ym1pdHRpbmdSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgICAgICAgICAgc2V0U3VibWl0dGluZyhmYWxzZSk7XG4gICAgICAgICAgICAoX2MgPSBvbkxvYWRpbmdDaGFuZ2VSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLmNhbGwob25Mb2FkaW5nQ2hhbmdlUmVmLCBmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9KSk7XG4gICAgLy8g4pSA4pSAIFByb0Zvcm0gaW5zdGFuY2U6IHN1cGVyc2V0IG9mIEZvcm1JbnN0YW5jZSDilIDilIBcbiAgICBjb25zdCBwcm9Gb3JtRm9ybUluc3RhbmNlID0gdXNlTWVtbygoKSA9PiAoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBmb3JtSW5zdGFuY2UpLCB7IGdldEZpZWxkc0Zvcm1hdFZhbHVlOiAoKSA9PiBhcHBseVBpcGVsaW5lKGZvcm1JbnN0YW5jZS5nZXRGaWVsZHNWYWx1ZSgpKSwgZ2V0RmllbGRGb3JtYXRWYWx1ZTogKChuYW1lKSA9PiByZXNvbHZlVmFsdWUoZm9ybWF0VmFsdWVzS2VlcE5pbChmb3JtSW5zdGFuY2UuZ2V0RmllbGRzVmFsdWUoKSksIG5hbWUpKSwgZ2V0RmllbGRGb3JtYXRWYWx1ZU9iamVjdDogKG5hbWUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZCA9IGZvcm1hdFZhbHVlc0tlZXBOaWwoZm9ybUluc3RhbmNlLmdldEZpZWxkc1ZhbHVlKCkpO1xuICAgICAgICAgICAgaWYgKCFuYW1lKVxuICAgICAgICAgICAgICAgIHJldHVybiBmb3JtYXR0ZWQ7XG4gICAgICAgICAgICAvLyBBIG5lc3RlZCBvYmplY3QgY2FycnlpbmcgT05MWSB0aGUgcmVxdWVzdGVkIGxlYWYg4oCUIG5vdCB0aGUgd2hvbGVcbiAgICAgICAgICAgIC8vIHRvcC1sZXZlbCBzdWJ0cmVlIHRoZSBwYXRoIGhhcHBlbnMgdG8gbGl2ZSBpbi5cbiAgICAgICAgICAgIHJldHVybiBzZXROZXN0ZWRWYWx1ZSh7fSwgbmFtZSwgcmVzb2x2ZVZhbHVlKGZvcm1hdHRlZCwgbmFtZSkpO1xuICAgICAgICB9LCB2YWxpZGF0ZUZpZWxkc1JldHVybkZvcm1hdFZhbHVlOiAoKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFscyA9IHlpZWxkIGZvcm1JbnN0YW5jZS52YWxpZGF0ZUZpZWxkcygpO1xuICAgICAgICAgICAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IHRydWUsIHZhbHVlczogYXBwbHlQaXBlbGluZSh2YWxzKSB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgIC8vIHZhbGlkYXRlRmllbGRzIHJlamVjdHMgd2l0aCBhbiBFcnJvciBjYXJyeWluZyB0aGUgZmllbGQgZXJyb3JzIG1hcFxuICAgICAgICAgICAgICAgIC8vIChzYW1lIHNoYXBlIHdyYXBwZWRIYW5kbGVTdWJtaXQgY29uc3VtZXMgYWJvdmUpLlxuICAgICAgICAgICAgICAgIGNvbnN0IHsgZXJyb3JzIH0gPSBlcnI7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgc3VjY2VzczogZmFsc2UsIGVycm9yczogZXJyb3JzICE9PSBudWxsICYmIGVycm9ycyAhPT0gdm9pZCAwID8gZXJyb3JzIDoge30gfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSksIHN1Ym1pdEZvcm06IHdyYXBwZWRIYW5kbGVTdWJtaXQgfSkpLCBbZm9ybUluc3RhbmNlLCBhcHBseVBpcGVsaW5lLCB3cmFwcGVkSGFuZGxlU3VibWl0XSk7XG4gICAgLy8g4pSA4pSAIFN5bmMgdG8gZm9ybVJlZiBwcm9wIOKUgOKUgFxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChmb3JtUmVmKSB7XG4gICAgICAgICAgICBmb3JtUmVmLmN1cnJlbnQgPSBwcm9Gb3JtRm9ybUluc3RhbmNlO1xuICAgICAgICB9XG4gICAgfSwgW2Zvcm1SZWYsIHByb0Zvcm1Gb3JtSW5zdGFuY2VdKTtcbiAgICAvLyDilIDilIAgcmVxdWVzdCAvIHBhcmFtcyBhdXRvLWxvYWQg4pSA4pSAXG4gICAgY29uc3QgcmVxdWVzdFJlZiA9IHVzZUxhdGVzdChyZXF1ZXN0KTtcbiAgICBjb25zdCBoYXNSZXF1ZXN0ID0gISFyZXF1ZXN0O1xuICAgIGNvbnN0IHNlcmlhbGl6ZWRQYXJhbXMgPSB1c2VNZW1vKCgpID0+IHN0YWJsZVNlcmlhbGl6ZShwYXJhbXMpLCBbcGFyYW1zXSk7XG4gICAgLy8gb25Jbml0IGZpcmVzIGV4YWN0bHkgb25jZTogYWZ0ZXIgdGhlIEZJUlNUIHJlcXVlc3QgcmVzb2x2ZXMgd2hlbiBhXG4gICAgLy8gcmVxdWVzdCBpcyBjb25maWd1cmVkLCBvdGhlcndpc2UgcmlnaHQgYWZ0ZXIgbW91bnQuXG4gICAgY29uc3QgaW5pdEZpcmVkUmVmID0gdXNlUmVmKGZhbHNlKTtcbiAgICBjb25zdCBmaXJlSW5pdCA9IHVzZU1lbW9pemVkRm4oKCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmIChpbml0RmlyZWRSZWYuY3VycmVudClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgaW5pdEZpcmVkUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICAoX2EgPSBvbkluaXRSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwob25Jbml0UmVmLCBhcHBseVBpcGVsaW5lKGZvcm1JbnN0YW5jZS5nZXRGaWVsZHNWYWx1ZSgpKSwgcHJvRm9ybUZvcm1JbnN0YW5jZSk7XG4gICAgfSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgLy8gU3RhbGVuZXNzIGd1YXJkOiBpZiBwYXJhbXMgY2hhbmdlIGFnYWluIGJlZm9yZSB0aGlzIGZldGNoIHJlc29sdmVzLCB0aGVcbiAgICAgICAgLy8gY2xlYW51cCBtYXJrcyBpdCBzdGFsZSBzbyB0aGUgbGF0ZSByZXNwb25zZSBjYW4ndCBvdmVyd3JpdGUgdGhlIHZhbHVlc1xuICAgICAgICAvLyBhIG5ld2VyIHJlcXVlc3QgYWxyZWFkeSAob3Igd2lsbCkgc2V0LlxuICAgICAgICBsZXQgc3RhbGUgPSBmYWxzZTtcbiAgICAgICAgY29uc3QgZmV0Y2hEYXRhID0gKCkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCByZXF1ZXN0Rm4gPSByZXF1ZXN0UmVmLmN1cnJlbnQ7XG4gICAgICAgICAgICBpZiAoIXJlcXVlc3RGbilcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBzZXRSZXF1ZXN0TG9hZGluZyh0cnVlKTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIHJlcXVlc3RGbihwYXJhbXMpO1xuICAgICAgICAgICAgICAgIGlmICghc3RhbGUgJiYgZGF0YSAmJiB0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9ybUluc3RhbmNlLnNldEZpZWxkc1ZhbHVlKGRhdGEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAvLyBBIGZhaWxlZCByZXF1ZXN0IG11c3Qgbm90IGVzY2FwZSBhcyBhbiB1bmhhbmRsZWQgcmVqZWN0aW9uIOKAlCB0aGVcbiAgICAgICAgICAgICAgICAvLyBmb3JtIGtlZXBzIGl0cyBpbml0aWFsVmFsdWVzIGFuZCB0aGUgZmFpbHVyZSBpcyBzdXJmYWNlZCBvbiB0aGVcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlIChtaXJyb3JzIHRoZSBmaWVsZC1sZXZlbCB1c2VGaWVsZFJlcXVlc3QgaGFuZGxpbmcpLlxuICAgICAgICAgICAgICAgIGlmICghc3RhbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignW1Byb0Zvcm1dIHJlcXVlc3QgZmFpbGVkOicsIGVycik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZmluYWxseSB7XG4gICAgICAgICAgICAgICAgaWYgKCFzdGFsZSkge1xuICAgICAgICAgICAgICAgICAgICBzZXRSZXF1ZXN0TG9hZGluZyhmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgIC8vIE9ubHkgYSBOT04tc3VwZXJzZWRlZCBzZXR0bGUgaW5pdGlhbGl6ZXMgdGhlIGZvcm06IGEgc3RhbGVcbiAgICAgICAgICAgICAgICAgICAgLy8gcmVxdWVzdCdzIGRhdGEgd2FzIGRpc2NhcmRlZCwgc28gaXRzIHZhbHVlcyBtdXN0IG5vdCBiZSByZXBvcnRlZC5cbiAgICAgICAgICAgICAgICAgICAgZmlyZUluaXQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAocmVxdWVzdFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICBmZXRjaERhdGEoKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGZpcmVJbml0KCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIHN0YWxlID0gdHJ1ZTtcbiAgICAgICAgfTtcbiAgICAgICAgLy8gUmUtZmV0Y2ggd2hlbiBwYXJhbXMgY2hhbmdlIGJ5IFZBTFVFIChkZXBlbmRpbmcgb24gdGhlIHJhdyBgcGFyYW1zYFxuICAgICAgICAvLyByZWZlcmVuY2Ugd291bGQgcmUtcnVuIG9uIGV2ZXJ5IHJlbmRlciBmb3IgaW5saW5lIG9iamVjdCBsaXRlcmFscyBhbmQsXG4gICAgICAgIC8vIGNvbWJpbmVkIHdpdGggdGhlIGxvYWRpbmcgc2V0U3RhdGUsIGxvb3AgZm9yZXZlcikg4oCUIGFuZCB3aGVuIGByZXF1ZXN0YFxuICAgICAgICAvLyBmaXJzdCBiZWNvbWVzIGRlZmluZWQgKGUuZy4gYmVoaW5kIGEgZmVhdHVyZSBmbGFnKSwgbWlycm9yaW5nXG4gICAgICAgIC8vIHVzZUZpZWxkUmVxdWVzdC4gZmlyZUluaXQncyBvbmNlLWd1YXJkIGtlZXBzIG9uSW5pdCBmcm9tIHJlLWZpcmluZy5cbiAgICB9LCBbc2VyaWFsaXplZFBhcmFtcywgaGFzUmVxdWVzdF0pO1xuICAgIC8vIOKUgOKUgCBhdXRvRm9jdXNGaXJzdElucHV0IOKUgOKUgFxuICAgIGNvbnN0IGZvcm1FbFJlZiA9IHVzZVJlZihudWxsKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmICghYXV0b0ZvY3VzRmlyc3RJbnB1dCB8fCBtb2RlID09PSAncmVhZCcpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IGZpcnN0SW5wdXQgPSAoX2EgPSBmb3JtRWxSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0Om5vdChbdHlwZT1cImhpZGRlblwiXSk6bm90KFtkaXNhYmxlZF0pLCB0ZXh0YXJlYTpub3QoW2Rpc2FibGVkXSksIHNlbGVjdDpub3QoW2Rpc2FibGVkXSknKTtcbiAgICAgICAgZmlyc3RJbnB1dCA9PT0gbnVsbCB8fCBmaXJzdElucHV0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBmaXJzdElucHV0LmZvY3VzKCk7XG4gICAgICAgIC8vIE1vdW50LW9ubHkgYnkgZGVzaWduLlxuICAgIH0sIFtdKTtcbiAgICAvLyDilIDilIAgU3BsaXQgY29udGV4dCDilIDilIBcbiAgICAvLyBGb3JtLWxldmVsIHByb3AgYmFncyBhcmUgb2Z0ZW4gaW5saW5lIGxpdGVyYWxzOiBrZWVwIHRoZWlyIGlkZW50aXR5XG4gICAgLy8gc3RhYmxlIHdoaWxlIHNoYWxsb3ctZXF1YWwgc28gdGhlIHN0YWJsZSBzbGljZSBkb2Vzbid0IGNodXJuIHBlciByZW5kZXIuXG4gICAgY29uc3Qgc3RhYmxlRmllbGRQcm9wcyA9IHVzZVNoYWxsb3dTdGFibGUoZmllbGRQcm9wcyk7XG4gICAgY29uc3Qgc3RhYmxlRm9ybUl0ZW1Qcm9wcyA9IHVzZVNoYWxsb3dTdGFibGUoZm9ybUl0ZW1Qcm9wcyk7XG4gICAgY29uc3Qgc3RhYmxlQ29sUHJvcHMgPSB1c2VTaGFsbG93U3RhYmxlKGNvbFByb3BzKTtcbiAgICBjb25zdCBzdGFibGVMYXlvdXQgPSB1c2VTaGFsbG93U3RhYmxlKGxheW91dCk7XG4gICAgLy8gU3RhYmxlIHNsaWNlOiBjb25maWd1cmF0aW9uICsgaWRlbnRpdHktc3RhYmxlIGRpc3BhdGNoZXJzL2luc3RhbmNlLlxuICAgIC8vIENoYW5nZXMgb25seSB3aGVuIGZvcm0tbGV2ZWwgcHJvcHMgY2hhbmdlIOKAlCBOT1Qgb24ga2V5c3Ryb2tlcywgc29cbiAgICAvLyBzdWJzY3JpYmVycyBsaWtlIFN1Ym1pdHRlciBhbmQgdGhlIGZpZWxkIGZhY3RvcmllcyBza2lwIHRob3NlIHJlbmRlcnMuXG4gICAgY29uc3Qgc3RhYmxlVmFsdWUgPSB1c2VNZW1vKCgpID0+ICh7XG4gICAgICAgIGZvcm1JbnN0YW5jZTogcHJvRm9ybUZvcm1JbnN0YW5jZSxcbiAgICAgICAgc2V0RmllbGRWYWx1ZTogaW50ZXJuYWxzLnNldEZpZWxkVmFsdWUsXG4gICAgICAgIHNldEZpZWxkRXJyb3I6IGludGVybmFscy5zZXRGaWVsZEVycm9yLFxuICAgICAgICBzZXRGaWVsZFdhcm5pbmc6IGludGVybmFscy5zZXRGaWVsZFdhcm5pbmcsXG4gICAgICAgIHZhbGlkYXRlRmllbGRBc3luYzogaW50ZXJuYWxzLnZhbGlkYXRlRmllbGRBc3luYyxcbiAgICAgICAgcmVnaXN0ZXJGaWVsZDogaW50ZXJuYWxzLnJlZ2lzdGVyRmllbGQsXG4gICAgICAgIHVucmVnaXN0ZXJGaWVsZDogaW50ZXJuYWxzLnVucmVnaXN0ZXJGaWVsZCxcbiAgICAgICAgcmV0YWluRmllbGQ6IGludGVybmFscy5yZXRhaW5GaWVsZCxcbiAgICAgICAgcmVsZWFzZUZpZWxkOiBpbnRlcm5hbHMucmVsZWFzZUZpZWxkLFxuICAgICAgICBzaXplLFxuICAgICAgICBsYWJlbEFsaWduLFxuICAgICAgICAvLyBTdWJtaXR0aW5nL2xvYWRpbmcgZG9lcyBOT1QgZGlzYWJsZSBmaWVsZHMg4oCUIG9ubHkgdGhlXG4gICAgICAgIC8vIGV4cGxpY2l0IGBkaXNhYmxlZGAgcHJvcCBkb2VzLiBLZWVwaW5nIGlzTG9hZGluZyBvdXQgb2YgdGhpcyBzbGljZVxuICAgICAgICAvLyBtZWFucyBhIHN1Ym1pdCBjeWNsZSBubyBsb25nZXIgcmUtcmVuZGVycyBldmVyeSBmaWVsZCBzaGVsbC5cbiAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgIHZhbGlkYXRlVHJpZ2dlcixcbiAgICAgICAgLy8gUHJvRm9ybSBzcGVjaWZpY3NcbiAgICAgICAgbW9kZSxcbiAgICAgICAgZ3JpZCxcbiAgICAgICAgY29sUHJvcHM6IHN0YWJsZUNvbFByb3BzICE9PSBudWxsICYmIHN0YWJsZUNvbFByb3BzICE9PSB2b2lkIDAgPyBzdGFibGVDb2xQcm9wcyA6IERFRkFVTFRfQ09MX1BST1BTLFxuICAgICAgICByZWdpc3RlclRyYW5zZm9ybTogcmVnaXN0ZXJUcmFuc2Zvcm0sXG4gICAgICAgIHVucmVnaXN0ZXJUcmFuc2Zvcm06IHVucmVnaXN0ZXJUcmFuc2Zvcm0sXG4gICAgICAgIHJlZ2lzdGVyVmFsdWVUeXBlLFxuICAgICAgICB1bnJlZ2lzdGVyVmFsdWVUeXBlLFxuICAgICAgICBmaWVsZFByb3BzOiBzdGFibGVGaWVsZFByb3BzLFxuICAgICAgICBmb3JtSXRlbVByb3BzOiBzdGFibGVGb3JtSXRlbVByb3BzLFxuICAgICAgICBsYXlvdXQ6IHN0YWJsZUxheW91dCxcbiAgICAgICAgZm9ybUNvbXBvbmVudFR5cGUsXG4gICAgfSksIFtcbiAgICAgICAgcHJvRm9ybUZvcm1JbnN0YW5jZSxcbiAgICAgICAgaW50ZXJuYWxzLnNldEZpZWxkVmFsdWUsXG4gICAgICAgIGludGVybmFscy5zZXRGaWVsZEVycm9yLFxuICAgICAgICBpbnRlcm5hbHMuc2V0RmllbGRXYXJuaW5nLFxuICAgICAgICBpbnRlcm5hbHMudmFsaWRhdGVGaWVsZEFzeW5jLFxuICAgICAgICBpbnRlcm5hbHMucmVnaXN0ZXJGaWVsZCxcbiAgICAgICAgaW50ZXJuYWxzLnVucmVnaXN0ZXJGaWVsZCxcbiAgICAgICAgaW50ZXJuYWxzLnJldGFpbkZpZWxkLFxuICAgICAgICBpbnRlcm5hbHMucmVsZWFzZUZpZWxkLFxuICAgICAgICBzaXplLFxuICAgICAgICBsYWJlbEFsaWduLFxuICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgdmFsaWRhdGVUcmlnZ2VyLFxuICAgICAgICBtb2RlLFxuICAgICAgICBncmlkLFxuICAgICAgICBzdGFibGVDb2xQcm9wcyxcbiAgICAgICAgcmVnaXN0ZXJUcmFuc2Zvcm0sXG4gICAgICAgIHVucmVnaXN0ZXJUcmFuc2Zvcm0sXG4gICAgICAgIHJlZ2lzdGVyVmFsdWVUeXBlLFxuICAgICAgICB1bnJlZ2lzdGVyVmFsdWVUeXBlLFxuICAgICAgICBzdGFibGVGaWVsZFByb3BzLFxuICAgICAgICBzdGFibGVGb3JtSXRlbVByb3BzLFxuICAgICAgICBzdGFibGVMYXlvdXQsXG4gICAgICAgIGZvcm1Db21wb25lbnRUeXBlLFxuICAgIF0pO1xuICAgIGNvbnN0IFdyYXBwZXJDb21wb25lbnQgPSBncmlkID8gUm93IDogRnJhZ21lbnQ7XG4gICAgY29uc3Qgd3JhcHBlclByb3BzID0gZ3JpZCA/IE9iamVjdC5hc3NpZ24oe30sIHJvd1Byb3BzKSA6IHt9O1xuICAgIC8vIFJlc2V0IGNhbGxiYWNrIGNoYWluOiB0aGUgU3VibWl0dGVyIHJlc2V0cyB0aGUgdmFsdWVzIGZpcnN0LCB0aGVuIHRoZVxuICAgIC8vIHN1Ym1pdHRlci1sZXZlbCBvblJlc2V0LCB0aGVuIHRoZSBmb3JtLWxldmVsIG9uUmVzZXQgKHdpdGggZmluYWxWYWx1ZXMpXG4gICAgLy8gYW5kIHRoZSBVUkwgY2xlYW51cCDigJQgZmlyZWQgZXhhY3RseSBvbmNlIHBlciByZXNldCBhY3Rpb24uXG4gICAgY29uc3QgaGFuZGxlU3VibWl0dGVyUmVzZXQgPSB1c2VNZW1vaXplZEZuKCgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAodHlwZW9mIHN1Ym1pdHRlciA9PT0gJ29iamVjdCcpXG4gICAgICAgICAgICAoX2EgPSBzdWJtaXR0ZXIub25SZXNldCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwoc3VibWl0dGVyKTtcbiAgICAgICAgZmlyZUZvcm1SZXNldCgpO1xuICAgIH0pO1xuICAgIGNvbnN0IHN1Ym1pdHRlck5vZGUgPSBzdWJtaXR0ZXIgIT09IGZhbHNlICYmIG1vZGUgIT09ICdyZWFkJyA/IChfanN4KFN1Ym1pdHRlciwgT2JqZWN0LmFzc2lnbih7fSwgKHR5cGVvZiBzdWJtaXR0ZXIgPT09ICdvYmplY3QnID8gc3VibWl0dGVyIDoge30pLCB7IG9uUmVzZXQ6IGhhbmRsZVN1Ym1pdHRlclJlc2V0LCBsb2FkaW5nOiBpc0xvYWRpbmcgfSkpKSA6IG51bGw7XG4gICAgcmV0dXJuIChfanN4KFByb0Zvcm1TdGFibGVDb250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiBzdGFibGVWYWx1ZSwgY2hpbGRyZW46IF9qc3goUHJvRm9ybVN0YXRlQ29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZTogc3RvcmUsIGNoaWxkcmVuOiBfanN4cyhcImZvcm1cIiwgT2JqZWN0LmFzc2lnbih7fSwgcmVzdCwgeyByZWY6IGZvcm1FbFJlZiwgY2xhc3NOYW1lOiBmb3JtQ2xhc3Nlcyh1bmRlZmluZWQsIGpvaW5DbHMoY2xhc3NlcygpLCBjbGFzc05hbWUpKSwgb25TdWJtaXQ6IHdyYXBwZWRIYW5kbGVTdWJtaXQsIG9uUmVzZXQ6IGludGVybmFscy5oYW5kbGVSZXNldCwgY2hpbGRyZW46IFtfanN4KFdyYXBwZXJDb21wb25lbnQsIE9iamVjdC5hc3NpZ24oe30sIHdyYXBwZXJQcm9wcywgeyBjaGlsZHJlbjogY2hpbGRyZW4gfSkpLCBzdWJtaXR0ZXJOb2RlXSB9KSkgfSkgfSkpO1xufTtcblByb0Zvcm1CYXNlLmRpc3BsYXlOYW1lID0gJ1Byb0Zvcm0nO1xuZXhwb3J0IGNvbnN0IFByb0Zvcm0gPSBtZW1vKFByb0Zvcm1CYXNlKTtcbmV4cG9ydCBkZWZhdWx0IFByb0Zvcm07IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
@@ -1,7 +1,7 @@
1
1
  import type { TypographyColor, TypographyLabelSize } from "../Typography";
2
2
  export declare const CSS_PREFIX = "proform";
3
3
  export declare const WIDTH_SIZE_MAP: Record<string, number>;
4
- export declare const DEFAULT_COL_SPAN = 24;
4
+ export declare const DEFAULT_COL_SPAN = 12;
5
5
  export declare const PROFORM_MODES: readonly ["edit", "read", "update"];
6
6
  export type ProFormMode = (typeof PROFORM_MODES)[number];
7
7
  export declare const PROFORM_LIST_LABEL_SIZE: TypographyLabelSize;
@@ -1,3 +1,4 @@
1
+ import { GRID_COLUMNS } from '../Grid/constants';
1
2
  export var CSS_PREFIX = 'proform';
2
3
  export var WIDTH_SIZE_MAP = {
3
4
  sm: 160,
@@ -5,7 +6,9 @@ export var WIDTH_SIZE_MAP = {
5
6
  lg: 320,
6
7
  xl: 420
7
8
  };
8
- export var DEFAULT_COL_SPAN = 24;
9
+ // Full width on the Grid (Col). Items without explicit colProps span the whole
10
+ // row in grid mode. Derived from the Grid's column count so the two never drift.
11
+ export var DEFAULT_COL_SPAN = GRID_COLUMNS;
9
12
  export var PROFORM_MODES = ['edit', 'read', 'update'];
10
13
  // ── Typography ──
11
14
  export var PROFORM_LIST_LABEL_SIZE = 'md';
@@ -20,4 +23,4 @@ export var DEFAULT_TEXT = {
20
23
  collapse: 'Collapse',
21
24
  expand: 'Expand'
22
25
  };
23
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvUHJvRm9ybS9jb25zdGFudHMudHMiLCJjb21wb25lbnRzL1Byb0Zvcm0vY29uc3RhbnRzLmpzIl0sIm5hbWVzIjpbIkNTU19QUkVGSVgiLCJXSURUSF9TSVpFX01BUCIsInNtIiwibWQiLCJsZyIsInhsIiwiREVGQVVMVF9DT0xfU1BBTiIsIlBST0ZPUk1fTU9ERVMiLCJQUk9GT1JNX0xJU1RfTEFCRUxfU0laRSIsIlBST0ZPUk1fTElTVF9MQUJFTF9DT0xPUiIsIkRFRkFVTFRfVEVYVCIsInN1Ym1pdCIsInJlc2V0Iiwic2VhcmNoIiwiYWRkIiwiY29weSIsImNvbGxhcHNlIiwiZXhwYW5kIl0sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLElBQU1BLFVBQVUsR0FBRyxTQUFTO0FBRW5DLE9BQU8sSUFBTUMsY0FBYyxHQUEyQjtFQUNwREMsRUFBRSxFQUFFLEdBQUc7RUFDUEMsRUFBRSxFQUFFLEdBQUc7RUFDUEMsRUFBRSxFQUFFLEdBQUc7RUFDUEMsRUFBRSxFQUFFO0FDRk4sQ0RHQztBQUVELE9BQU8sSUFBTUMsZ0JBQWdCLEdBQUcsRUFBRTtBQUVsQyxPQUFPLElBQU1DLGFBQWEsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFVO0FBR2hFO0FBQ0EsT0FBTyxJQUFNQyx1QkFBdUIsR0FBd0IsSUFBSTtBQUNoRSxPQUFPLElBQU1DLHdCQUF3QixHQUFvQixTQUFTO0FBRWxFLE9BQU8sSUFBTUMsWUFBWSxHQUFHO0VBQzFCQyxNQUFNLEVBQUUsUUFBUTtFQUNoQkMsS0FBSyxFQUFFLE9BQU87RUFDZEMsTUFBTSxFQUFFLFFBQVE7RUFDaEJDLEdBQUcsRUFBRSxLQUFLO0VBQ1YsVUFBUSxRQUFRO0VBQ2hCQyxJQUFJLEVBQUUsTUFBTTtFQUNaQyxRQUFRLEVBQUUsVUFBVTtFQUNwQkMsTUFBTSxFQUFFO0FDUFYsQ0RRVSIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vY29uc3RhbnRzLmpzIiwic291cmNlc0NvbnRlbnQiOltudWxsLCJleHBvcnQgY29uc3QgQ1NTX1BSRUZJWCA9ICdwcm9mb3JtJztcbmV4cG9ydCBjb25zdCBXSURUSF9TSVpFX01BUCA9IHtcbiAgICBzbTogMTYwLFxuICAgIG1kOiAyNDAsXG4gICAgbGc6IDMyMCxcbiAgICB4bDogNDIwLFxufTtcbmV4cG9ydCBjb25zdCBERUZBVUxUX0NPTF9TUEFOID0gMjQ7XG5leHBvcnQgY29uc3QgUFJPRk9STV9NT0RFUyA9IFsnZWRpdCcsICdyZWFkJywgJ3VwZGF0ZSddO1xuLy8g4pSA4pSAIFR5cG9ncmFwaHkg4pSA4pSAXG5leHBvcnQgY29uc3QgUFJPRk9STV9MSVNUX0xBQkVMX1NJWkUgPSAnbWQnO1xuZXhwb3J0IGNvbnN0IFBST0ZPUk1fTElTVF9MQUJFTF9DT0xPUiA9ICdkZWZhdWx0JztcbmV4cG9ydCBjb25zdCBERUZBVUxUX1RFWFQgPSB7XG4gICAgc3VibWl0OiAnU3VibWl0JyxcbiAgICByZXNldDogJ1Jlc2V0JyxcbiAgICBzZWFyY2g6ICdTZWFyY2gnLFxuICAgIGFkZDogJ0FkZCcsXG4gICAgZGVsZXRlOiAnRGVsZXRlJyxcbiAgICBjb3B5OiAnQ29weScsXG4gICAgY29sbGFwc2U6ICdDb2xsYXBzZScsXG4gICAgZXhwYW5kOiAnRXhwYW5kJyxcbn07Il0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
26
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvUHJvRm9ybS9jb25zdGFudHMudHMiLCJjb21wb25lbnRzL1Byb0Zvcm0vY29uc3RhbnRzLmpzIl0sIm5hbWVzIjpbIkdSSURfQ09MVU1OUyIsIkNTU19QUkVGSVgiLCJXSURUSF9TSVpFX01BUCIsInNtIiwibWQiLCJsZyIsInhsIiwiREVGQVVMVF9DT0xfU1BBTiIsIlBST0ZPUk1fTU9ERVMiLCJQUk9GT1JNX0xJU1RfTEFCRUxfU0laRSIsIlBST0ZPUk1fTElTVF9MQUJFTF9DT0xPUiIsIkRFRkFVTFRfVEVYVCIsInN1Ym1pdCIsInJlc2V0Iiwic2VhcmNoIiwiYWRkIiwiY29weSIsImNvbGxhcHNlIiwiZXhwYW5kIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxZQUFZLFFBQVEsbUJBQW1CO0FBR2hELE9BQU8sSUFBTUMsVUFBVSxHQUFHLFNBQVM7QUFFbkMsT0FBTyxJQUFNQyxjQUFjLEdBQTJCO0VBQ3BEQyxFQUFFLEVBQUUsR0FBRztFQUNQQyxFQUFFLEVBQUUsR0FBRztFQUNQQyxFQUFFLEVBQUUsR0FBRztFQUNQQyxFQUFFLEVBQUU7QUNGTixDREdDO0FBRUQ7QUFDQTtBQUNBLE9BQU8sSUFBTUMsZ0JBQWdCLEdBQUdQLFlBQVk7QUFFNUMsT0FBTyxJQUFNUSxhQUFhLEdBQUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBVTtBQUdoRTtBQUNBLE9BQU8sSUFBTUMsdUJBQXVCLEdBQXdCLElBQUk7QUFDaEUsT0FBTyxJQUFNQyx3QkFBd0IsR0FBb0IsU0FBUztBQUVsRSxPQUFPLElBQU1DLFlBQVksR0FBRztFQUMxQkMsTUFBTSxFQUFFLFFBQVE7RUFDaEJDLEtBQUssRUFBRSxPQUFPO0VBQ2RDLE1BQU0sRUFBRSxRQUFRO0VBQ2hCQyxHQUFHLEVBQUUsS0FBSztFQUNWLFVBQVEsUUFBUTtFQUNoQkMsSUFBSSxFQUFFLE1BQU07RUFDWkMsUUFBUSxFQUFFLFVBQVU7RUFDcEJDLE1BQU0sRUFBRTtBQ1BWLENEUVUiLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL2NvbnN0YW50cy5qcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbCwiaW1wb3J0IHsgR1JJRF9DT0xVTU5TIH0gZnJvbSAnLi4vR3JpZC9jb25zdGFudHMnO1xuZXhwb3J0IGNvbnN0IENTU19QUkVGSVggPSAncHJvZm9ybSc7XG5leHBvcnQgY29uc3QgV0lEVEhfU0laRV9NQVAgPSB7XG4gICAgc206IDE2MCxcbiAgICBtZDogMjQwLFxuICAgIGxnOiAzMjAsXG4gICAgeGw6IDQyMCxcbn07XG4vLyBGdWxsIHdpZHRoIG9uIHRoZSBHcmlkIChDb2wpLiBJdGVtcyB3aXRob3V0IGV4cGxpY2l0IGNvbFByb3BzIHNwYW4gdGhlIHdob2xlXG4vLyByb3cgaW4gZ3JpZCBtb2RlLiBEZXJpdmVkIGZyb20gdGhlIEdyaWQncyBjb2x1bW4gY291bnQgc28gdGhlIHR3byBuZXZlciBkcmlmdC5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0NPTF9TUEFOID0gR1JJRF9DT0xVTU5TO1xuZXhwb3J0IGNvbnN0IFBST0ZPUk1fTU9ERVMgPSBbJ2VkaXQnLCAncmVhZCcsICd1cGRhdGUnXTtcbi8vIOKUgOKUgCBUeXBvZ3JhcGh5IOKUgOKUgFxuZXhwb3J0IGNvbnN0IFBST0ZPUk1fTElTVF9MQUJFTF9TSVpFID0gJ21kJztcbmV4cG9ydCBjb25zdCBQUk9GT1JNX0xJU1RfTEFCRUxfQ09MT1IgPSAnZGVmYXVsdCc7XG5leHBvcnQgY29uc3QgREVGQVVMVF9URVhUID0ge1xuICAgIHN1Ym1pdDogJ1N1Ym1pdCcsXG4gICAgcmVzZXQ6ICdSZXNldCcsXG4gICAgc2VhcmNoOiAnU2VhcmNoJyxcbiAgICBhZGQ6ICdBZGQnLFxuICAgIGRlbGV0ZTogJ0RlbGV0ZScsXG4gICAgY29weTogJ0NvcHknLFxuICAgIGNvbGxhcHNlOiAnQ29sbGFwc2UnLFxuICAgIGV4cGFuZDogJ0V4cGFuZCcsXG59OyJdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
@@ -1,3 +1 @@
1
- /** Warn once per key per page load; no-op in production. */
2
- export declare function devWarnOnce(key: string, message: string): void;
3
- export default devWarnOnce;
1
+ export { devWarnOnce, isProduction, default } from "../../../utils/devWarn";
@@ -4,19 +4,9 @@
4
4
  // These exist to surface SILENT behavior divergences from the pre-0.0.76
5
5
  // rule contract — misuses that TypeScript cannot (runtime values) or does
6
6
  // not (trigger subset semantics) catch at compile time.
7
+ //
8
+ // The implementation lives in the shared `@/utils/devWarn` helper so ProForm
9
+ // and other components (e.g. Grid) share a single dev-warn impl.
7
10
  // ---------------------------------------------------------------------------
8
- var warned = new Set();
9
- function isProduction() {
10
- var _a;
11
- // eslint-disable-next-line no-undef
12
- return typeof process !== 'undefined' && ((_a = process.env) === null || _a === void 0 ? void 0 : _a.NODE_ENV) === 'production';
13
- }
14
- /** Warn once per key per page load; no-op in production. */
15
- export function devWarnOnce(key, message) {
16
- if (isProduction()) return;
17
- if (warned.has(key)) return;
18
- warned.add(key);
19
- console.warn(message);
20
- }
21
- export default devWarnOnce;
22
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvZGV2V2FybmluZy50cyIsImNvbXBvbmVudHMvUHJvRm9ybS9jb3JlL2Rldldhcm5pbmcuanMiXSwibmFtZXMiOlsid2FybmVkIiwiU2V0IiwiaXNQcm9kdWN0aW9uIiwiX2EiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJkZXZXYXJuT25jZSIsImtleSIsIm1lc3NhZ2UiLCJoYXMiLCJhZGQiLCJjb25zb2xlIiwid2FybiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQSxJQUFNQSxNQUFNLEdBQUcsSUFBSUMsR0FBRyxDQUFBLENBQVU7QUFFaEMsU0FBU0MsWUFBWUEsQ0FBQSxFQUFBO0VDRGpCLElBQUlDLEVBQUU7RURFUjtFQUNBLE9BQU8sT0FBT0MsT0FBTyxLQUFLLFdBQVcsSUFBSSxDQUFBLENBQUFELEVBQUEsR0FBQUMsT0FBTyxDQUFDQyxHQUFHLE1BQUEsSUFBQSxJQUFBRixFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsQ0FBRUcsUUFBUSxNQUFLLFlBQVk7QUFDakY7QUFFQTtBQUNBLE9BQU0sU0FBVUMsV0FBV0EsQ0FBQ0MsR0FBVyxFQUFFQyxPQUFlLEVBQUE7RUFDdEQsSUFBSVAsWUFBWSxDQUFBLENBQUUsRUFBRTtFQUNwQixJQUFJRixNQUFNLENBQUNVLEdBQUcsQ0FBQ0YsR0FBRyxDQUFDLEVBQUU7RUFDckJSLE1BQU0sQ0FBQ1csR0FBRyxDQUFDSCxHQUFHLENBQUM7RUFDZkksT0FBTyxDQUFDQyxJQUFJLENBQUNKLE9BQU8sQ0FBQztBQUN2QjtBQUVBLGVBQWVGLFdBQVciLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvZGV2V2FybmluZy5qcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbCwiLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBEZXZlbG9wbWVudC1vbmx5IHdhcm5pbmdzIChzaWxlbnQgaW4gcHJvZHVjdGlvbiBidWlsZHMpLlxuLy9cbi8vIFRoZXNlIGV4aXN0IHRvIHN1cmZhY2UgU0lMRU5UIGJlaGF2aW9yIGRpdmVyZ2VuY2VzIGZyb20gdGhlIHByZS0wLjAuNzZcbi8vIHJ1bGUgY29udHJhY3Qg4oCUIG1pc3VzZXMgdGhhdCBUeXBlU2NyaXB0IGNhbm5vdCAocnVudGltZSB2YWx1ZXMpIG9yIGRvZXNcbi8vIG5vdCAodHJpZ2dlciBzdWJzZXQgc2VtYW50aWNzKSBjYXRjaCBhdCBjb21waWxlIHRpbWUuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmNvbnN0IHdhcm5lZCA9IG5ldyBTZXQoKTtcbmZ1bmN0aW9uIGlzUHJvZHVjdGlvbigpIHtcbiAgICB2YXIgX2E7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVmXG4gICAgcmV0dXJuIHR5cGVvZiBwcm9jZXNzICE9PSAndW5kZWZpbmVkJyAmJiAoKF9hID0gcHJvY2Vzcy5lbnYpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5OT0RFX0VOVikgPT09ICdwcm9kdWN0aW9uJztcbn1cbi8qKiBXYXJuIG9uY2UgcGVyIGtleSBwZXIgcGFnZSBsb2FkOyBuby1vcCBpbiBwcm9kdWN0aW9uLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRldldhcm5PbmNlKGtleSwgbWVzc2FnZSkge1xuICAgIGlmIChpc1Byb2R1Y3Rpb24oKSlcbiAgICAgICAgcmV0dXJuO1xuICAgIGlmICh3YXJuZWQuaGFzKGtleSkpXG4gICAgICAgIHJldHVybjtcbiAgICB3YXJuZWQuYWRkKGtleSk7XG4gICAgY29uc29sZS53YXJuKG1lc3NhZ2UpO1xufVxuZXhwb3J0IGRlZmF1bHQgZGV2V2Fybk9uY2U7Il0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
11
+ export { devWarnOnce, isProduction, default } from '../../../utils/devWarn';
12
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvZGV2V2FybmluZy50cyJdLCJuYW1lcyI6WyJkZXZXYXJuT25jZSIsImlzUHJvZHVjdGlvbiIsImRlZmF1bHQiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUEsU0FBU0EsV0FBVyxFQUFFQyxZQUFZLEVBQUVDLE9BQU8sUUFBUSx3QkFBd0IiLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvZGV2V2FybmluZy5qcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
@@ -52,9 +52,7 @@ var DialogFormBase = function DialogFormBase(props) {
52
52
  onCancel: handleHide,
53
53
  footer: null
54
54
  }, width !== undefined ? {
55
- rootStyle: Object.assign(Object.assign({}, dialogProps === null || dialogProps === void 0 ? void 0 : dialogProps.rootStyle), {
56
- width: width
57
- })
55
+ width: width
58
56
  } : {}, {
59
57
  children: _jsx("div", {
60
58
  className: classes(),
@@ -82,4 +80,4 @@ DialogFormBase.displayName = 'DialogForm';
82
80
  /** Generic-aware export — keeps `<DialogForm<MyValues> …>` fully typed. */
83
81
  export var DialogForm = /*#__PURE__*/memo(DialogFormBase);
84
82
  export default DialogForm;
85
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9sYXlvdXRzL0RpYWxvZ0Zvcm0uanMiLCJjb21wb25lbnRzL1Byb0Zvcm0vc3JjL2NvbXBvbmVudHMvUHJvRm9ybS9sYXlvdXRzL0RpYWxvZ0Zvcm0udHN4Il0sIm5hbWVzIjpbIl9fcmVzdCIsInMiLCJlIiwidCIsInAiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpbmRleE9mIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiaSIsImxlbmd0aCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwianN4IiwiX2pzeCIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwianN4cyIsIl9qc3hzIiwibWVtbyIsImRlZmF1bHQiLCJjbGFzc25hbWVzIiwiRGlhbG9nIiwiUHJvRm9ybSIsIkNTU19QUkVGSVgiLCJ1c2VPdmVybGF5Rm9ybSIsImNsYXNzZXMiLCJjb25jYXQiLCJEaWFsb2dGb3JtQmFzZSIsInByb3BzIiwiX2EiLCJvcGVuIiwib25PcGVuQ2hhbmdlIiwidHJpZ2dlciIsInRpdGxlIiwid2lkdGgiLCJzdWJtaXRUaW1lb3V0IiwiX3Byb3BzJGF1dG9DbG9zZSIsImF1dG9DbG9zZSIsIl9wcm9wcyRjbG9zZU9uUmVzZXQiLCJjbG9zZU9uUmVzZXQiLCJkaWFsb2dQcm9wcyIsIm9uRmluaXNoIiwib25SZXNldCIsInN1Ym1pdHRlciIsImNoaWxkcmVuIiwiX2Rlc3Ryb3lPbkNsb3NlIiwiZGVzdHJveU9uQ2xvc2UiLCJmb3JtUHJvcHMiLCJfdXNlT3ZlcmxheUZvcm0iLCJtZXJnZWRPcGVuIiwidHJpZ2dlck5vZGUiLCJoYW5kbGVGaW5pc2giLCJoYW5kbGVIaWRlIiwiYXNzaWduIiwib25DYW5jZWwiLCJmb290ZXIiLCJ1bmRlZmluZWQiLCJyb290U3R5bGUiLCJjbGFzc05hbWUiLCJmb3JtQ29tcG9uZW50VHlwZSIsInZhbHVlcyIsInJlc2V0VGV4dCIsImNhbmNlbFRleHQiLCJfdHlwZW9m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UjtBQUVQLENBQUM7QUFFRGpCLGNBQWMsQ0FBQ3FDLFdBQVcsR0FBRyxZQUFZO0FBRXpDO0FBQ0EsT0FBTyxJQUFNQyxVQUFVLGdCQUFHL0MsSUFBSSxDQUFDUyxjQUFjLENBS087QUFFcEQsZUFBZXNDLFVBQVUiLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL2xheW91dHMvRGlhbG9nRm9ybS5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBGcmFnbWVudCBhcyBfRnJhZ21lbnQsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IG1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIGNsYXNzbmFtZXMgfSBmcm9tICcuLi8uLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCB7IERpYWxvZyB9IGZyb20gJy4uLy4uL0RpYWxvZyc7XG5pbXBvcnQgeyBQcm9Gb3JtIH0gZnJvbSAnLi4vUHJvRm9ybSc7XG5pbXBvcnQgeyBDU1NfUFJFRklYIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IHVzZU92ZXJsYXlGb3JtIH0gZnJvbSAnLi91c2VPdmVybGF5Rm9ybSc7XG5jb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcyhgJHtDU1NfUFJFRklYfS1kaWFsb2ctZm9ybWApO1xuY29uc3QgRGlhbG9nRm9ybUJhc2UgPSAocHJvcHMpID0+IHtcbiAgICB2YXIgX2E7XG4gICAgY29uc3QgeyBvcGVuLCBvbk9wZW5DaGFuZ2UsIHRyaWdnZXIsIHRpdGxlLCB3aWR0aCwgc3VibWl0VGltZW91dCwgYXV0b0Nsb3NlID0gdHJ1ZSwgY2xvc2VPblJlc2V0ID0gdHJ1ZSwgZGlhbG9nUHJvcHMsIG9uRmluaXNoLCBvblJlc2V0LCBzdWJtaXR0ZXIsIGNoaWxkcmVuLCBcbiAgICAvLyBkZXN0cm95T25DbG9zZSBpcyBhY2NlcHRlZCBmb3IgQVBJIGNvbXBhdCBidXQgbm90IHVzZWQg4oCUXG4gICAgLy8gRGlhbG9nJ3Mgb3duIHVzZVByZXNlbmNlIGFscmVhZHkgdW5tb3VudHMgdGhlIGVudGlyZSBET00gdHJlZVxuICAgIC8vIChpbmNsdWRpbmcgZm9ybSBjb250ZW50KSBhZnRlciB0aGUgY2xvc2UgYW5pbWF0aW9uIGZpbmlzaGVzLlxuICAgIGRlc3Ryb3lPbkNsb3NlOiBfZGVzdHJveU9uQ2xvc2UgfSA9IHByb3BzLCBmb3JtUHJvcHMgPSBfX3Jlc3QocHJvcHMsIFtcIm9wZW5cIiwgXCJvbk9wZW5DaGFuZ2VcIiwgXCJ0cmlnZ2VyXCIsIFwidGl0bGVcIiwgXCJ3aWR0aFwiLCBcInN1Ym1pdFRpbWVvdXRcIiwgXCJhdXRvQ2xvc2VcIiwgXCJjbG9zZU9uUmVzZXRcIiwgXCJkaWFsb2dQcm9wc1wiLCBcIm9uRmluaXNoXCIsIFwib25SZXNldFwiLCBcInN1Ym1pdHRlclwiLCBcImNoaWxkcmVuXCIsIFwiZGVzdHJveU9uQ2xvc2VcIl0pO1xuICAgIGNvbnN0IHsgbWVyZ2VkT3BlbiwgdHJpZ2dlck5vZGUsIGhhbmRsZUZpbmlzaCwgaGFuZGxlSGlkZSwgfSA9IHVzZU92ZXJsYXlGb3JtKHsgb3Blbiwgb25PcGVuQ2hhbmdlLCB0cmlnZ2VyLCBhdXRvQ2xvc2UsIHN1Ym1pdFRpbWVvdXQgfSwgb25GaW5pc2gpO1xuICAgIHJldHVybiAoX2pzeHMoX0ZyYWdtZW50LCB7IGNoaWxkcmVuOiBbdHJpZ2dlck5vZGUsIF9qc3goRGlhbG9nLCBPYmplY3QuYXNzaWduKHt9LCBkaWFsb2dQcm9wcywgeyBvcGVuOiBtZXJnZWRPcGVuLCB0aXRsZTogdGl0bGUsIG9uQ2FuY2VsOiBoYW5kbGVIaWRlLCBmb290ZXI6IG51bGwgfSwgKHdpZHRoICE9PSB1bmRlZmluZWQgPyB7IHJvb3RTdHlsZTogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBkaWFsb2dQcm9wcyA9PT0gbnVsbCB8fCBkaWFsb2dQcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogZGlhbG9nUHJvcHMucm9vdFN0eWxlKSwgeyB3aWR0aCB9KSB9IDoge30pLCB7IGNoaWxkcmVuOiBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCksIGNoaWxkcmVuOiBfanN4KFByb0Zvcm0sIE9iamVjdC5hc3NpZ24oe30sIGZvcm1Qcm9wcywgeyBmb3JtQ29tcG9uZW50VHlwZTogXCJEaWFsb2dGb3JtXCIsIG9uRmluaXNoOiBoYW5kbGVGaW5pc2gsIFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2xvc2UgcmlkZXMgdGhlIEZPUk0tTEVWRUwgcmVzZXQgY2hhbm5lbCDigJQgdGhlIHNpbmdsZSBwb2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2hlcmUgZXZlcnkgcmVzZXQgc3VyZmFjZSBjb252ZXJnZXMgKGRlZmF1bHQgQ2FuY2VsIGJ1dHRvbixcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGN1c3RvbSBzdWJtaXR0ZXIgcmVuZGVyIGNhbGxpbmcgYHJlc2V0YCwgbmF0aXZlIHR5cGU9XCJyZXNldFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBidXR0b25zKS4gQ29uc3VtZXIgb25SZXNldCBydW5zIGZpcnN0OyBjbG9zZU9uUmVzZXQgb3B0cyBvdXQuXG4gICAgICAgICAgICAgICAgICAgICAgICBvblJlc2V0OiAodmFsdWVzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25SZXNldCA9PT0gbnVsbCB8fCBvblJlc2V0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvblJlc2V0KHZhbHVlcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNsb3NlT25SZXNldClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlSGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSwgc3VibWl0dGVyOiBzdWJtaXR0ZXIgPT09IGZhbHNlID8gZmFsc2UgOiBPYmplY3QuYXNzaWduKHsgcmVzZXRUZXh0OiAoX2EgPSBkaWFsb2dQcm9wcyA9PT0gbnVsbCB8fCBkaWFsb2dQcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogZGlhbG9nUHJvcHMuY2FuY2VsVGV4dCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogJ0NhbmNlbCcgfSwgKHR5cGVvZiBzdWJtaXR0ZXIgPT09ICdvYmplY3QnID8gc3VibWl0dGVyIDoge30pKSwgY2hpbGRyZW46IGNoaWxkcmVuIH0pKSB9KSB9KSldIH0pKTtcbn07XG5EaWFsb2dGb3JtQmFzZS5kaXNwbGF5TmFtZSA9ICdEaWFsb2dGb3JtJztcbi8qKiBHZW5lcmljLWF3YXJlIGV4cG9ydCDigJQga2VlcHMgYDxEaWFsb2dGb3JtPE15VmFsdWVzPiDigKY+YCBmdWxseSB0eXBlZC4gKi9cbmV4cG9ydCBjb25zdCBEaWFsb2dGb3JtID0gbWVtbyhEaWFsb2dGb3JtQmFzZSk7XG5leHBvcnQgZGVmYXVsdCBEaWFsb2dGb3JtOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
83
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9sYXlvdXRzL0RpYWxvZ0Zvcm0uanMiLCJjb21wb25lbnRzL1Byb0Zvcm0vc3JjL2NvbXBvbmVudHMvUHJvRm9ybS9sYXlvdXRzL0RpYWxvZ0Zvcm0udHN4Il0sIm5hbWVzIjpbIl9fcmVzdCIsInMiLCJlIiwidCIsInAiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpbmRleE9mIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiaSIsImxlbmd0aCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwianN4IiwiX2pzeCIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwianN4cyIsIl9qc3hzIiwibWVtbyIsImRlZmF1bHQiLCJjbGFzc25hbWVzIiwiRGlhbG9nIiwiUHJvRm9ybSIsIkNTU19QUkVGSVgiLCJ1c2VPdmVybGF5Rm9ybSIsImNsYXNzZXMiLCJjb25jYXQiLCJEaWFsb2dGb3JtQmFzZSIsInByb3BzIiwiX2EiLCJvcGVuIiwib25PcGVuQ2hhbmdlIiwidHJpZ2dlciIsInRpdGxlIiwid2lkdGgiLCJzdWJtaXRUaW1lb3V0IiwiX3Byb3BzJGF1dG9DbG9zZSIsImF1dG9DbG9zZSIsIl9wcm9wcyRjbG9zZU9uUmVzZXQiLCJjbG9zZU9uUmVzZXQiLCJkaWFsb2dQcm9wcyIsIm9uRmluaXNoIiwib25SZXNldCIsInN1Ym1pdHRlciIsImNoaWxkcmVuIiwiX2Rlc3Ryb3lPbkNsb3NlIiwiZGVzdHJveU9uQ2xvc2UiLCJmb3JtUHJvcHMiLCJfdXNlT3ZlcmxheUZvcm0iLCJtZXJnZWRPcGVuIiwidHJpZ2dlck5vZGUiLCJoYW5kbGVGaW5pc2giLCJoYW5kbGVIaWRlIiwiYXNzaWduIiwib25DYW5jZWwiLCJmb290ZXIiLCJ1bmRlZmluZWQiLCJjbGFzc05hbWUiLCJmb3JtQ29tcG9uZW50VHlwZSIsInZhbHVlcyIsInJlc2V0VGV4dCIsImNhbmNlbFRleHQiLCJfdHlwZW9mIiwiZGlzcGxheU5h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QUNTLE9BQU8sRUFBQW5CLE1BQUEsQ0FBQWtELE1BQUEsQ0FBQSxDQUFBLENBQUEsRUFDRk4sU0FBUyxFQUFBO1VBQ2JXLGlCQUFpQixFQUFDLFlBQVk7VUFDOUJqQixRQUFRLEVBQUVVLFlBQVk7VUFDdEI7VUFDQTtVQUNBO1VBQ0E7VUFDQVQsT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUdpQixNQUFNLEVBQUk7WUFDbEJqQixRQUFPLEtBQUEsSUFBQSxJQUFQQSxRQUFPLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQVBBLFFBQU8sQ0FBR2lCLE1BQU0sQ0FBQztZQUNqQixJQUFJcEIsWUFBWSxFQUFFYSxVQUFVLENBQUEsQ0FBRTtVQUNoQyxDQUFDO1VBQ0RULFNBQVMsRUFBRUEsU0FBUyxLQUFLLEtBQUssR0FBRyxLQUFLLEdBQUV4QyxNQUFBLENBQUFrRCxNQUFBLENBQUE7WUFDdENPLFNBQVMsRUFBRSxDQUFBL0IsRUFBQSxHQUFBVyxXQUFXLEtBQUEsSUFBQSxJQUFYQSxXQUFXLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQVhBLFdBQVcsQ0FBRXFCLFVBQVUsTUFBQSxJQUFBLElBQUFoQyxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsR0FBSTtVQUFRLENBQUEsRUFDMUNpQyxPQUFBLENBQU9uQixTQUFTLE1BQUssUUFBUSxHQUFHQSxTQUFTLEdBQUcsQ0FBQSxDQUFHLENBQ3BEO1VBQUFDLFFBQUEsRUFFQUE7UUFBUSxDQUFBLENBQUE7TUFDRCxDQUFBO0lBQ04sQ0FBQSxDQUFBLENBQ0M7RUFBQSxDQUFBLENBQ1I7QUFFUCxDQUFDO0FBRURqQixjQUFjLENBQUNvQyxXQUFXLEdBQUcsWUFBWTtBQUV6QztBQUNBLE9BQU8sSUFBTUMsVUFBVSxnQkFBRzlDLElBQUksQ0FBQ1MsY0FBYyxDQUtPO0FBRXBELGVBQWVxQyxVQUFVIiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvRm9ybS9sYXlvdXRzL0RpYWxvZ0Zvcm0uanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwgRnJhZ21lbnQgYXMgX0ZyYWdtZW50LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBtZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBjbGFzc25hbWVzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBEaWFsb2cgfSBmcm9tICcuLi8uLi9EaWFsb2cnO1xuaW1wb3J0IHsgUHJvRm9ybSB9IGZyb20gJy4uL1Byb0Zvcm0nO1xuaW1wb3J0IHsgQ1NTX1BSRUZJWCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyB1c2VPdmVybGF5Rm9ybSB9IGZyb20gJy4vdXNlT3ZlcmxheUZvcm0nO1xuY29uc3QgY2xhc3NlcyA9IGNsYXNzbmFtZXMoYCR7Q1NTX1BSRUZJWH0tZGlhbG9nLWZvcm1gKTtcbmNvbnN0IERpYWxvZ0Zvcm1CYXNlID0gKHByb3BzKSA9PiB7XG4gICAgdmFyIF9hO1xuICAgIGNvbnN0IHsgb3Blbiwgb25PcGVuQ2hhbmdlLCB0cmlnZ2VyLCB0aXRsZSwgd2lkdGgsIHN1Ym1pdFRpbWVvdXQsIGF1dG9DbG9zZSA9IHRydWUsIGNsb3NlT25SZXNldCA9IHRydWUsIGRpYWxvZ1Byb3BzLCBvbkZpbmlzaCwgb25SZXNldCwgc3VibWl0dGVyLCBjaGlsZHJlbiwgXG4gICAgLy8gZGVzdHJveU9uQ2xvc2UgaXMgYWNjZXB0ZWQgZm9yIEFQSSBjb21wYXQgYnV0IG5vdCB1c2VkIOKAlFxuICAgIC8vIERpYWxvZydzIG93biB1c2VQcmVzZW5jZSBhbHJlYWR5IHVubW91bnRzIHRoZSBlbnRpcmUgRE9NIHRyZWVcbiAgICAvLyAoaW5jbHVkaW5nIGZvcm0gY29udGVudCkgYWZ0ZXIgdGhlIGNsb3NlIGFuaW1hdGlvbiBmaW5pc2hlcy5cbiAgICBkZXN0cm95T25DbG9zZTogX2Rlc3Ryb3lPbkNsb3NlIH0gPSBwcm9wcywgZm9ybVByb3BzID0gX19yZXN0KHByb3BzLCBbXCJvcGVuXCIsIFwib25PcGVuQ2hhbmdlXCIsIFwidHJpZ2dlclwiLCBcInRpdGxlXCIsIFwid2lkdGhcIiwgXCJzdWJtaXRUaW1lb3V0XCIsIFwiYXV0b0Nsb3NlXCIsIFwiY2xvc2VPblJlc2V0XCIsIFwiZGlhbG9nUHJvcHNcIiwgXCJvbkZpbmlzaFwiLCBcIm9uUmVzZXRcIiwgXCJzdWJtaXR0ZXJcIiwgXCJjaGlsZHJlblwiLCBcImRlc3Ryb3lPbkNsb3NlXCJdKTtcbiAgICBjb25zdCB7IG1lcmdlZE9wZW4sIHRyaWdnZXJOb2RlLCBoYW5kbGVGaW5pc2gsIGhhbmRsZUhpZGUsIH0gPSB1c2VPdmVybGF5Rm9ybSh7IG9wZW4sIG9uT3BlbkNoYW5nZSwgdHJpZ2dlciwgYXV0b0Nsb3NlLCBzdWJtaXRUaW1lb3V0IH0sIG9uRmluaXNoKTtcbiAgICByZXR1cm4gKF9qc3hzKF9GcmFnbWVudCwgeyBjaGlsZHJlbjogW3RyaWdnZXJOb2RlLCBfanN4KERpYWxvZywgT2JqZWN0LmFzc2lnbih7fSwgZGlhbG9nUHJvcHMsIHsgb3BlbjogbWVyZ2VkT3BlbiwgdGl0bGU6IHRpdGxlLCBvbkNhbmNlbDogaGFuZGxlSGlkZSwgZm9vdGVyOiBudWxsIH0sICh3aWR0aCAhPT0gdW5kZWZpbmVkID8geyB3aWR0aCB9IDoge30pLCB7IGNoaWxkcmVuOiBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCksIGNoaWxkcmVuOiBfanN4KFByb0Zvcm0sIE9iamVjdC5hc3NpZ24oe30sIGZvcm1Qcm9wcywgeyBmb3JtQ29tcG9uZW50VHlwZTogXCJEaWFsb2dGb3JtXCIsIG9uRmluaXNoOiBoYW5kbGVGaW5pc2gsIFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2xvc2UgcmlkZXMgdGhlIEZPUk0tTEVWRUwgcmVzZXQgY2hhbm5lbCDigJQgdGhlIHNpbmdsZSBwb2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2hlcmUgZXZlcnkgcmVzZXQgc3VyZmFjZSBjb252ZXJnZXMgKGRlZmF1bHQgQ2FuY2VsIGJ1dHRvbixcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGN1c3RvbSBzdWJtaXR0ZXIgcmVuZGVyIGNhbGxpbmcgYHJlc2V0YCwgbmF0aXZlIHR5cGU9XCJyZXNldFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBidXR0b25zKS4gQ29uc3VtZXIgb25SZXNldCBydW5zIGZpcnN0OyBjbG9zZU9uUmVzZXQgb3B0cyBvdXQuXG4gICAgICAgICAgICAgICAgICAgICAgICBvblJlc2V0OiAodmFsdWVzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25SZXNldCA9PT0gbnVsbCB8fCBvblJlc2V0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvblJlc2V0KHZhbHVlcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNsb3NlT25SZXNldClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlSGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSwgc3VibWl0dGVyOiBzdWJtaXR0ZXIgPT09IGZhbHNlID8gZmFsc2UgOiBPYmplY3QuYXNzaWduKHsgcmVzZXRUZXh0OiAoX2EgPSBkaWFsb2dQcm9wcyA9PT0gbnVsbCB8fCBkaWFsb2dQcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogZGlhbG9nUHJvcHMuY2FuY2VsVGV4dCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogJ0NhbmNlbCcgfSwgKHR5cGVvZiBzdWJtaXR0ZXIgPT09ICdvYmplY3QnID8gc3VibWl0dGVyIDoge30pKSwgY2hpbGRyZW46IGNoaWxkcmVuIH0pKSB9KSB9KSldIH0pKTtcbn07XG5EaWFsb2dGb3JtQmFzZS5kaXNwbGF5TmFtZSA9ICdEaWFsb2dGb3JtJztcbi8qKiBHZW5lcmljLWF3YXJlIGV4cG9ydCDigJQga2VlcHMgYDxEaWFsb2dGb3JtPE15VmFsdWVzPiDigKY+YCBmdWxseSB0eXBlZC4gKi9cbmV4cG9ydCBjb25zdCBEaWFsb2dGb3JtID0gbWVtbyhEaWFsb2dGb3JtQmFzZSk7XG5leHBvcnQgZGVmYXVsdCBEaWFsb2dGb3JtOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==