@onepercentio/one-ui 0.26.9 → 0.27.0

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 (50) hide show
  1. package/dist/components/AnchoredTooltip/AnchoredTooltip.d.ts +2 -2
  2. package/dist/components/AnchoredTooltip/AnchoredTooltip.js +1 -1
  3. package/dist/components/CheckBox/CheckBox.d.ts +1 -1
  4. package/dist/components/CheckBox/CheckBox.js +1 -1
  5. package/dist/components/CodeInput/CodeInput.js +2 -2
  6. package/dist/components/Collapsable/Collapsable.js +2 -1
  7. package/dist/components/EmailInput/EmailInput.d.ts +4 -4
  8. package/dist/components/FadeIn/FadeIn.js +2 -2
  9. package/dist/components/FileInput/View/Compact/Compact.d.ts +3 -2
  10. package/dist/components/FileInput/View/Compact/Compact.js +5 -4
  11. package/dist/components/FileInput/View/Compact/Compact.module.scss +2 -2
  12. package/dist/components/Form/v2/Form.hook.d.ts +2 -2
  13. package/dist/components/Freeze/Freeze.d.ts +1 -1
  14. package/dist/components/Input/Input.d.ts +4 -4
  15. package/dist/components/LavaLamp/LavaLamp.data.d.ts +1 -1
  16. package/dist/components/LavaLamp/LavaLamp.data.js +2 -2
  17. package/dist/components/MainGrid/MainGrid.d.ts +3 -3
  18. package/dist/components/OrderableList/OrderableList.d.ts +1 -1
  19. package/dist/components/OrderableList/OrderableList.js +2 -2
  20. package/dist/components/Parallax/Parallax.js +2 -2
  21. package/dist/components/PasswordInput/PasswordInput.d.ts +4 -4
  22. package/dist/components/PixelatedScan/PixelatedScan.js +4 -2
  23. package/dist/components/UncontrolledTransition/UncontrolledTransition.d.ts +2 -2
  24. package/dist/components/UncontrolledTransition/UncontrolledTransition.js +1 -1
  25. package/dist/context/CustomBrowserRouter.js +1 -1
  26. package/dist/hooks/logs/useDependencyChangeDetection.js +2 -2
  27. package/dist/hooks/ui/useCustomScrollbar.d.ts +1 -1
  28. package/dist/hooks/ui/usePaginationControls.js +2 -1
  29. package/dist/hooks/ui/useSnapToViewport.d.ts +1 -1
  30. package/dist/hooks/ui/useTilt.d.ts +2 -2
  31. package/dist/hooks/ui/useTilt.js +1 -1
  32. package/dist/hooks/ui/useZoomable.js +2 -2
  33. package/dist/hooks/useContainedRepositioning.d.ts +1 -1
  34. package/dist/hooks/useElementFit.d.ts +1 -1
  35. package/dist/hooks/useElementFit.js +1 -1
  36. package/dist/hooks/useFreeze.js +2 -2
  37. package/dist/hooks/useHero.d.ts +1 -1
  38. package/dist/hooks/usePagination.d.ts +2 -2
  39. package/dist/hooks/usePagination.js +3 -3
  40. package/dist/hooks/usePooledOperation.js +3 -3
  41. package/dist/hooks/utility/useDepChange.js +2 -2
  42. package/dist/utils/test.d.ts +5 -0
  43. package/dist/utils/test.js +17 -0
  44. package/package.json +4 -4
  45. package/dist/components/Button/README.md +0 -8
  46. package/dist/components/EmailInput/README.md +0 -10
  47. package/dist/components/FlowController/README.md +0 -13
  48. package/dist/components/Input/README.md +0 -10
  49. package/dist/components/ProgressTexts/README.md +0 -12
  50. package/dist/hooks/logs/README.md +0 -3
@@ -16,7 +16,7 @@ exports.transitionPositionMs = transitionPositionMs;
16
16
  function useLavaLampSetup(onUpdatePosition, onUpdateSize) {
17
17
  const [d, setDim] = (0, _react.useState)();
18
18
  const relativeTo = (0, _react.useRef)(null);
19
- const prevTilt = (0, _react.useRef)();
19
+ const prevTilt = (0, _react.useRef)(undefined);
20
20
  (0, _react.useEffect)(() => {
21
21
  const baseWidth = Math.min(relativeTo.current.clientWidth, 1440);
22
22
  setDim({
@@ -87,4 +87,4 @@ function useLavaLampSetup(onUpdatePosition, onUpdateSize) {
87
87
  circlesConfig
88
88
  };
89
89
  }
90
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwicmVxdWlyZSIsIl9yZWFjdCIsIl91c2VUaWx0IiwiX0xhdmFMYW1wTW9kdWxlIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwidHJhbnNpdGlvbk1zIiwiTnVtYmVyIiwiU3R5bGVzIiwidHJhbnNpdGlvblBvc2l0aW9uTXMiLCJleHBvcnRzIiwidXNlTGF2YUxhbXBTZXR1cCIsIm9uVXBkYXRlUG9zaXRpb24iLCJvblVwZGF0ZVNpemUiLCJkIiwic2V0RGltIiwidXNlU3RhdGUiLCJyZWxhdGl2ZVRvIiwidXNlUmVmIiwicHJldlRpbHQiLCJ1c2VFZmZlY3QiLCJiYXNlV2lkdGgiLCJNYXRoIiwibWluIiwiY3VycmVudCIsImNsaWVudFdpZHRoIiwid2lkdGgiLCJoZWlnaHQiLCJjbGllbnRIZWlnaHQiLCJ1cGRhdGVUaWx0Q2IiLCJ1c2VNZW1vIiwidGhyb3R0bGVQb3NpdGlvbiIsInQiLCJiYXNlU2l6ZSIsImFjY2VsZXJhdGlvbiIsImN1cnJUaWx0IiwiZGlmZiIsIngiLCJhYnMiLCJ5IiwiYmFzZURpZmYiLCJtYXgiLCJwZXJjZW50IiwibGVhZGluZyIsInRyYWlsaW5nIiwibW92ZW1lbnQiLCJjeCIsImN5IiwidGlsdCIsInVzZVRpbHRVcGRhdGVzIiwidW5kZWZpbmVkIiwicm91bmQiLCJneXJvRW5hYmxlZCIsImNpcmNsZXNDb25maWciLCJBcnJheSIsImZpbGwiLCJtYXAiLCJfIiwiaSIsIm1vZCIsInN0YXJ0WCIsInJhbmRvbSIsInRyYW5zbGF0ZVgiLCJzdGFydFkiLCJ0cmFuc2xhdGVZIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvTGF2YUxhbXAvTGF2YUxhbXAuZGF0YS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdGhyb3R0bGUgYXMgdCB9IGZyb20gXCJsb2Rhc2hcIjtcbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgdXNlVGlsdFVwZGF0ZXMgfSBmcm9tIFwiLi4vLi4vaG9va3MvdWkvdXNlVGlsdFwiO1xuaW1wb3J0IFN0eWxlcyBmcm9tIFwiLi9MYXZhTGFtcC5tb2R1bGUuc2Nzc1wiO1xuXG5jb25zdCB0cmFuc2l0aW9uTXMgPSBOdW1iZXIoU3R5bGVzLnRyYW5zaXRpb25Ncyk7XG5leHBvcnQgY29uc3QgdHJhbnNpdGlvblBvc2l0aW9uTXMgPSBOdW1iZXIoU3R5bGVzLnRyYW5zaXRpb25Qb3NpdGlvbk1zKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdXNlTGF2YUxhbXBTZXR1cChcbiAgb25VcGRhdGVQb3NpdGlvbjogKHg6IG51bWJlciwgeTogbnVtYmVyKSA9PiB2b2lkLFxuICBvblVwZGF0ZVNpemU6IChzaXplOiBudW1iZXIpID0+IHZvaWRcbikge1xuICBjb25zdCBbZCwgc2V0RGltXSA9IHVzZVN0YXRlPHsgd2lkdGg6IG51bWJlcjsgaGVpZ2h0OiBudW1iZXIgfT4oKTtcbiAgY29uc3QgcmVsYXRpdmVUbyA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG5cbiAgY29uc3QgcHJldlRpbHQgPSB1c2VSZWY8eyB4OiBudW1iZXI7IHk6IG51bWJlciB9PigpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgYmFzZVdpZHRoID0gTWF0aC5taW4ocmVsYXRpdmVUby5jdXJyZW50IS5jbGllbnRXaWR0aCwgMTQ0MCk7XG4gICAgc2V0RGltKHtcbiAgICAgIHdpZHRoOiBiYXNlV2lkdGgsXG4gICAgICBoZWlnaHQ6XG4gICAgICAgIGJhc2VXaWR0aCAqXG4gICAgICAgIChyZWxhdGl2ZVRvLmN1cnJlbnQhLmNsaWVudEhlaWdodCAvIHJlbGF0aXZlVG8uY3VycmVudCEuY2xpZW50V2lkdGgpLFxuICAgIH0pO1xuICB9LCBbXSk7XG5cbiAgY29uc3QgdXBkYXRlVGlsdENiID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgdGhyb3R0bGVQb3NpdGlvbiA9IHQ7XG4gICAgaWYgKCFkKSByZXR1cm4gKCkgPT4ge307XG4gICAgY29uc3QgYmFzZVNpemUgPSBNYXRoLm1pbihkLndpZHRoLCBkLmhlaWdodCkgKiAwLjE7XG4gICAgbGV0IGFjY2VsZXJhdGlvbiA9IHQoXG4gICAgICAoY3VyclRpbHQ6IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfSkgPT4ge1xuICAgICAgICBpZiAoIXByZXZUaWx0LmN1cnJlbnQpIHtcbiAgICAgICAgICBwcmV2VGlsdC5jdXJyZW50ID0gY3VyclRpbHQ7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGlmZiA9IHtcbiAgICAgICAgICB4OiBNYXRoLmFicyhwcmV2VGlsdC5jdXJyZW50LnggLSBjdXJyVGlsdC54KSxcbiAgICAgICAgICB5OiBNYXRoLmFicyhwcmV2VGlsdC5jdXJyZW50LnkgLSBjdXJyVGlsdC55KSxcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBiYXNlRGlmZiA9IE1hdGgubWF4KGRpZmYueCwgZGlmZi55KTtcbiAgICAgICAgY29uc3QgcGVyY2VudCA9IChiYXNlRGlmZiAqIDEwMCkgLyA5MDtcblxuICAgICAgICBvblVwZGF0ZVNpemUoYmFzZVNpemUgKyBiYXNlU2l6ZSAqIChwZXJjZW50IC8gMTAwKSk7XG5cbiAgICAgICAgcHJldlRpbHQuY3VycmVudCA9IGN1cnJUaWx0ITtcbiAgICAgIH0sXG4gICAgICB0cmFuc2l0aW9uTXMsXG4gICAgICB7XG4gICAgICAgIGxlYWRpbmc6IGZhbHNlLFxuICAgICAgICB0cmFpbGluZzogdHJ1ZSxcbiAgICAgIH1cbiAgICApO1xuICAgIGxldCBtb3ZlbWVudCA9IHRocm90dGxlUG9zaXRpb24oXG4gICAgICAoY3VyclRpbHQ6IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfSkgPT4ge1xuICAgICAgICBjb25zdCBbeCwgeV0gPSBbY3VyclRpbHQueCArIDEwMCwgY3VyclRpbHQueSArIDEwMF07XG4gICAgICAgIGNvbnN0IFtjeCwgY3ldID0gWyhkIS53aWR0aCAqIHgpIC8gMjAwLCAoZCEuaGVpZ2h0ICogeSkgLyAyMDBdO1xuICAgICAgICBvblVwZGF0ZVBvc2l0aW9uKGN4LCBjeSk7XG4gICAgICB9LFxuICAgICAgdHJhbnNpdGlvblBvc2l0aW9uTXMsXG4gICAgICB7XG4gICAgICAgIGxlYWRpbmc6IGZhbHNlLFxuICAgICAgICB0cmFpbGluZzogdHJ1ZSxcbiAgICAgIH1cbiAgICApO1xuICAgIHJldHVybiAodGlsdDogTm9uTnVsbGFibGU8dHlwZW9mIHByZXZUaWx0LmN1cnJlbnQ+KSA9PiB7XG4gICAgICBpZiAoIWQpIHJldHVybjtcbiAgICAgIGFjY2VsZXJhdGlvbih0aWx0KTtcbiAgICAgIG1vdmVtZW50KHRpbHQpO1xuICAgIH07XG4gIH0sIFtkXSk7XG4gIHVzZVRpbHRVcGRhdGVzKFxuICAgIHRydWUsXG4gICAgcmVsYXRpdmVUbyxcbiAgICB1cGRhdGVUaWx0Q2IsXG4gICAgdW5kZWZpbmVkLFxuICAgIHVuZGVmaW5lZCxcbiAgICB1bmRlZmluZWQsXG4gICAge1xuICAgICAgcm91bmQ6IGZhbHNlLFxuICAgICAgZ3lyb0VuYWJsZWQ6IGZhbHNlLFxuICAgIH1cbiAgKTtcbiAgY29uc3QgY2lyY2xlc0NvbmZpZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICghZCkgcmV0dXJuIFtdO1xuICAgIGNvbnN0IGJhc2VTaXplID0gTWF0aC5taW4oZC53aWR0aCwgZC5oZWlnaHQpICogMC4xNTtcbiAgICByZXR1cm4gbmV3IEFycmF5KDEwKS5maWxsKHVuZGVmaW5lZCkubWFwKChfLCBpKSA9PiB7XG4gICAgICBjb25zdCBtb2QgPSBpICUgMjtcbiAgICAgIGNvbnN0IHN0YXJ0WCA9XG4gICAgICAgIE1hdGgucmFuZG9tKCkgKiBkLndpZHRoICogMC41ICsgKG1vZCA9PT0gMCA/IDAgOiBkLndpZHRoICogMC41KTtcbiAgICAgIGNvbnN0IHRyYW5zbGF0ZVggPSBzdGFydFggLSAoc3RhcnRYICsgNTAgKyBNYXRoLnJhbmRvbSgpICogMjAwKTtcbiAgICAgIGNvbnN0IHN0YXJ0WSA9XG4gICAgICAgIE1hdGgucmFuZG9tKCkgKiBkLmhlaWdodCAqIDAuNzUgKyAobW9kID09PSAwID8gMCA6IGQuaGVpZ2h0ICogMC4yNSk7XG4gICAgICBjb25zdCB0cmFuc2xhdGVZID0gc3RhcnRZIC0gKHN0YXJ0WSArIDUwICsgTWF0aC5yYW5kb20oKSAqIDIwMCk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGJhc2VTaXplLFxuICAgICAgICBzdGFydFgsXG4gICAgICAgIHN0YXJ0WSxcbiAgICAgICAgdHJhbnNsYXRlWCxcbiAgICAgICAgdHJhbnNsYXRlWSxcbiAgICAgIH07XG4gICAgfSk7XG4gIH0sIFtkXSk7XG5cbiAgcmV0dXJuIHtcbiAgICByZWxhdGl2ZVRvLFxuICAgIGQsXG4gICAgY2lyY2xlc0NvbmZpZyxcbiAgfTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQUFBLE9BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLFFBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLGVBQUEsR0FBQUMsc0JBQUEsQ0FBQUosT0FBQTtBQUE0QyxTQUFBSSx1QkFBQUMsR0FBQSxXQUFBQSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxHQUFBRCxHQUFBLEtBQUFFLE9BQUEsRUFBQUYsR0FBQTtBQUU1QyxNQUFNRyxZQUFZLEdBQUdDLE1BQU0sQ0FBQ0MsdUJBQU0sQ0FBQ0YsWUFBWSxDQUFDO0FBQ3pDLE1BQU1HLG9CQUFvQixHQUFHRixNQUFNLENBQUNDLHVCQUFNLENBQUNDLG9CQUFvQixDQUFDO0FBQUNDLE9BQUEsQ0FBQUQsb0JBQUEsR0FBQUEsb0JBQUE7QUFFekQsU0FBU0UsZ0JBQWdCQSxDQUN0Q0MsZ0JBQWdELEVBQ2hEQyxZQUFvQyxFQUNwQztFQUNBLE1BQU0sQ0FBQ0MsQ0FBQyxFQUFFQyxN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
90
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwicmVxdWlyZSIsIl9yZWFjdCIsIl91c2VUaWx0IiwiX0xhdmFMYW1wTW9kdWxlIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwidHJhbnNpdGlvbk1zIiwiTnVtYmVyIiwiU3R5bGVzIiwidHJhbnNpdGlvblBvc2l0aW9uTXMiLCJleHBvcnRzIiwidXNlTGF2YUxhbXBTZXR1cCIsIm9uVXBkYXRlUG9zaXRpb24iLCJvblVwZGF0ZVNpemUiLCJkIiwic2V0RGltIiwidXNlU3RhdGUiLCJyZWxhdGl2ZVRvIiwidXNlUmVmIiwicHJldlRpbHQiLCJ1bmRlZmluZWQiLCJ1c2VFZmZlY3QiLCJiYXNlV2lkdGgiLCJNYXRoIiwibWluIiwiY3VycmVudCIsImNsaWVudFdpZHRoIiwid2lkdGgiLCJoZWlnaHQiLCJjbGllbnRIZWlnaHQiLCJ1cGRhdGVUaWx0Q2IiLCJ1c2VNZW1vIiwidGhyb3R0bGVQb3NpdGlvbiIsInQiLCJiYXNlU2l6ZSIsImFjY2VsZXJhdGlvbiIsImN1cnJUaWx0IiwiZGlmZiIsIngiLCJhYnMiLCJ5IiwiYmFzZURpZmYiLCJtYXgiLCJwZXJjZW50IiwibGVhZGluZyIsInRyYWlsaW5nIiwibW92ZW1lbnQiLCJjeCIsImN5IiwidGlsdCIsInVzZVRpbHRVcGRhdGVzIiwicm91bmQiLCJneXJvRW5hYmxlZCIsImNpcmNsZXNDb25maWciLCJBcnJheSIsImZpbGwiLCJtYXAiLCJfIiwiaSIsIm1vZCIsInN0YXJ0WCIsInJhbmRvbSIsInRyYW5zbGF0ZVgiLCJzdGFydFkiLCJ0cmFuc2xhdGVZIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvTGF2YUxhbXAvTGF2YUxhbXAuZGF0YS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdGhyb3R0bGUgYXMgdCB9IGZyb20gXCJsb2Rhc2hcIjtcbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgdXNlVGlsdFVwZGF0ZXMgfSBmcm9tIFwiLi4vLi4vaG9va3MvdWkvdXNlVGlsdFwiO1xuaW1wb3J0IFN0eWxlcyBmcm9tIFwiLi9MYXZhTGFtcC5tb2R1bGUuc2Nzc1wiO1xuXG5jb25zdCB0cmFuc2l0aW9uTXMgPSBOdW1iZXIoU3R5bGVzLnRyYW5zaXRpb25Ncyk7XG5leHBvcnQgY29uc3QgdHJhbnNpdGlvblBvc2l0aW9uTXMgPSBOdW1iZXIoU3R5bGVzLnRyYW5zaXRpb25Qb3NpdGlvbk1zKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdXNlTGF2YUxhbXBTZXR1cChcbiAgb25VcGRhdGVQb3NpdGlvbjogKHg6IG51bWJlciwgeTogbnVtYmVyKSA9PiB2b2lkLFxuICBvblVwZGF0ZVNpemU6IChzaXplOiBudW1iZXIpID0+IHZvaWRcbikge1xuICBjb25zdCBbZCwgc2V0RGltXSA9IHVzZVN0YXRlPHsgd2lkdGg6IG51bWJlcjsgaGVpZ2h0OiBudW1iZXIgfT4oKTtcbiAgY29uc3QgcmVsYXRpdmVUbyA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG5cbiAgY29uc3QgcHJldlRpbHQgPSB1c2VSZWY8eyB4OiBudW1iZXI7IHk6IG51bWJlciB9Pih1bmRlZmluZWQpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgYmFzZVdpZHRoID0gTWF0aC5taW4ocmVsYXRpdmVUby5jdXJyZW50IS5jbGllbnRXaWR0aCwgMTQ0MCk7XG4gICAgc2V0RGltKHtcbiAgICAgIHdpZHRoOiBiYXNlV2lkdGgsXG4gICAgICBoZWlnaHQ6XG4gICAgICAgIGJhc2VXaWR0aCAqXG4gICAgICAgIChyZWxhdGl2ZVRvLmN1cnJlbnQhLmNsaWVudEhlaWdodCAvIHJlbGF0aXZlVG8uY3VycmVudCEuY2xpZW50V2lkdGgpLFxuICAgIH0pO1xuICB9LCBbXSk7XG5cbiAgY29uc3QgdXBkYXRlVGlsdENiID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgdGhyb3R0bGVQb3NpdGlvbiA9IHQ7XG4gICAgaWYgKCFkKSByZXR1cm4gKCkgPT4ge307XG4gICAgY29uc3QgYmFzZVNpemUgPSBNYXRoLm1pbihkLndpZHRoLCBkLmhlaWdodCkgKiAwLjE7XG4gICAgbGV0IGFjY2VsZXJhdGlvbiA9IHQoXG4gICAgICAoY3VyclRpbHQ6IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfSkgPT4ge1xuICAgICAgICBpZiAoIXByZXZUaWx0LmN1cnJlbnQpIHtcbiAgICAgICAgICBwcmV2VGlsdC5jdXJyZW50ID0gY3VyclRpbHQ7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGlmZiA9IHtcbiAgICAgICAgICB4OiBNYXRoLmFicyhwcmV2VGlsdC5jdXJyZW50LnggLSBjdXJyVGlsdC54KSxcbiAgICAgICAgICB5OiBNYXRoLmFicyhwcmV2VGlsdC5jdXJyZW50LnkgLSBjdXJyVGlsdC55KSxcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBiYXNlRGlmZiA9IE1hdGgubWF4KGRpZmYueCwgZGlmZi55KTtcbiAgICAgICAgY29uc3QgcGVyY2VudCA9IChiYXNlRGlmZiAqIDEwMCkgLyA5MDtcblxuICAgICAgICBvblVwZGF0ZVNpemUoYmFzZVNpemUgKyBiYXNlU2l6ZSAqIChwZXJjZW50IC8gMTAwKSk7XG5cbiAgICAgICAgcHJldlRpbHQuY3VycmVudCA9IGN1cnJUaWx0ITtcbiAgICAgIH0sXG4gICAgICB0cmFuc2l0aW9uTXMsXG4gICAgICB7XG4gICAgICAgIGxlYWRpbmc6IGZhbHNlLFxuICAgICAgICB0cmFpbGluZzogdHJ1ZSxcbiAgICAgIH1cbiAgICApO1xuICAgIGxldCBtb3ZlbWVudCA9IHRocm90dGxlUG9zaXRpb24oXG4gICAgICAoY3VyclRpbHQ6IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfSkgPT4ge1xuICAgICAgICBjb25zdCBbeCwgeV0gPSBbY3VyclRpbHQueCArIDEwMCwgY3VyclRpbHQueSArIDEwMF07XG4gICAgICAgIGNvbnN0IFtjeCwgY3ldID0gWyhkIS53aWR0aCAqIHgpIC8gMjAwLCAoZCEuaGVpZ2h0ICogeSkgLyAyMDBdO1xuICAgICAgICBvblVwZGF0ZVBvc2l0aW9uKGN4LCBjeSk7XG4gICAgICB9LFxuICAgICAgdHJhbnNpdGlvblBvc2l0aW9uTXMsXG4gICAgICB7XG4gICAgICAgIGxlYWRpbmc6IGZhbHNlLFxuICAgICAgICB0cmFpbGluZzogdHJ1ZSxcbiAgICAgIH1cbiAgICApO1xuICAgIHJldHVybiAodGlsdDogTm9uTnVsbGFibGU8dHlwZW9mIHByZXZUaWx0LmN1cnJlbnQ+KSA9PiB7XG4gICAgICBpZiAoIWQpIHJldHVybjtcbiAgICAgIGFjY2VsZXJhdGlvbih0aWx0KTtcbiAgICAgIG1vdmVtZW50KHRpbHQpO1xuICAgIH07XG4gIH0sIFtkXSk7XG4gIHVzZVRpbHRVcGRhdGVzKFxuICAgIHRydWUsXG4gICAgcmVsYXRpdmVUbyxcbiAgICB1cGRhdGVUaWx0Q2IsXG4gICAgdW5kZWZpbmVkLFxuICAgIHVuZGVmaW5lZCxcbiAgICB1bmRlZmluZWQsXG4gICAge1xuICAgICAgcm91bmQ6IGZhbHNlLFxuICAgICAgZ3lyb0VuYWJsZWQ6IGZhbHNlLFxuICAgIH1cbiAgKTtcbiAgY29uc3QgY2lyY2xlc0NvbmZpZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICghZCkgcmV0dXJuIFtdO1xuICAgIGNvbnN0IGJhc2VTaXplID0gTWF0aC5taW4oZC53aWR0aCwgZC5oZWlnaHQpICogMC4xNTtcbiAgICByZXR1cm4gbmV3IEFycmF5KDEwKS5maWxsKHVuZGVmaW5lZCkubWFwKChfLCBpKSA9PiB7XG4gICAgICBjb25zdCBtb2QgPSBpICUgMjtcbiAgICAgIGNvbnN0IHN0YXJ0WCA9XG4gICAgICAgIE1hdGgucmFuZG9tKCkgKiBkLndpZHRoICogMC41ICsgKG1vZCA9PT0gMCA/IDAgOiBkLndpZHRoICogMC41KTtcbiAgICAgIGNvbnN0IHRyYW5zbGF0ZVggPSBzdGFydFggLSAoc3RhcnRYICsgNTAgKyBNYXRoLnJhbmRvbSgpICogMjAwKTtcbiAgICAgIGNvbnN0IHN0YXJ0WSA9XG4gICAgICAgIE1hdGgucmFuZG9tKCkgKiBkLmhlaWdodCAqIDAuNzUgKyAobW9kID09PSAwID8gMCA6IGQuaGVpZ2h0ICogMC4yNSk7XG4gICAgICBjb25zdCB0cmFuc2xhdGVZID0gc3RhcnRZIC0gKHN0YXJ0WSArIDUwICsgTWF0aC5yYW5kb20oKSAqIDIwMCk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGJhc2VTaXplLFxuICAgICAgICBzdGFydFgsXG4gICAgICAgIHN0YXJ0WSxcbiAgICAgICAgdHJhbnNsYXRlWCxcbiAgICAgICAgdHJhbnNsYXRlWSxcbiAgICAgIH07XG4gICAgfSk7XG4gIH0sIFtkXSk7XG5cbiAgcmV0dXJuIHtcbiAgICByZWxhdGl2ZVRvLFxuICAgIGQsXG4gICAgY2lyY2xlc0NvbmZpZyxcbiAgfTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQUFBLE9BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLFFBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLGVBQUEsR0FBQUMsc0JBQUEsQ0FBQUosT0FBQTtBQUE0QyxTQUFBSSx1QkFBQUMsR0FBQSxXQUFBQSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxHQUFBRCxHQUFBLEtBQUFFLE9BQUEsRUFBQUYsR0FBQTtBQUU1QyxNQUFNRyxZQUFZLEdBQUdDLE1BQU0sQ0FBQ0MsdUJBQU0sQ0FBQ0YsWUFBWSxDQUFDO0FBQ3pDLE1BQU1HLG9CQUFvQixHQUFHRixNQUFNLENBQUNDLHVCQUFNLENBQUNDLG9CQUFvQixDQUFDO0FBQUNDLE9BQUEsQ0FBQUQsb0JBQUEsR0FBQUEsb0JBQUE7QUFFekQsU0FBU0UsZ0JBQWdCQSxDQUN0Q0MsZ0JBQWdELEVBQ2hEQyxZQUFvQyxFQUNwQztFQUNBLE1BQU0sQ0FBQ0MsQ0FB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
@@ -3,11 +3,11 @@ import React from "react";
3
3
  * This layout divides the screen in 3 fragments and provides a responsive adaptation when on mobile
4
4
  **/
5
5
  declare const MainGrid: React.ForwardRefExoticComponent<{
6
- leftContent?: React.ReactElement<any, string | React.JSXElementConstructor<any>> | undefined;
7
- rightContent?: React.ReactElement<any, string | React.JSXElementConstructor<any>> | undefined;
6
+ leftContent?: React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | undefined;
7
+ rightContent?: React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | undefined;
8
8
  children: React.ReactElement;
9
9
  } & React.RefAttributes<Pick<{
10
10
  setOrientation: (orientation: "forward" | "backward") => void;
11
- sectionRef: React.RefObject<HTMLDivElement>;
11
+ sectionRef: React.RefObject<HTMLDivElement | null>;
12
12
  }, "setOrientation">>>;
13
13
  export default MainGrid;
@@ -30,7 +30,7 @@ export default function OrderableList({ children, className, mode, shrinkToOnOrd
30
30
  currentOrder?: string[];
31
31
  }) & DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
32
32
  export declare function useOrderableListAnchor(): {
33
- anchorRef: React.MutableRefObject<HTMLDivElement> | undefined;
33
+ anchorRef: React.RefObject<HTMLDivElement> | undefined;
34
34
  };
35
35
  export declare function useOrderableEvents(events: {
36
36
  [k in Events]: () => void;
@@ -56,7 +56,7 @@ function OrderableList(_ref) {
56
56
  } = (0, _react.useRef)([]);
57
57
  const eventEmitter = (0, _useEvents.default)();
58
58
  const currentClone = (0, _react.useRef)(null);
59
- const currentWorkingKey = (0, _react.useRef)();
59
+ const currentWorkingKey = (0, _react.useRef)(undefined);
60
60
  const rootRef = (0, _react.useRef)(null);
61
61
  const [_order, setOrder] = (0, _react.useState)(initializeOrder);
62
62
  (0, _react.useEffect)(() => setOrder(initializeOrder()), [initializeOrder]);
@@ -430,4 +430,4 @@ function useOrderableEvents(events) {
430
430
  };
431
431
  }, [events]);
432
432
  }
433
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdGhyb3R0bGUiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9VbmNvbnRyb2xsZWRUcmFuc2l0aW9uIiwiX1RyYW5zaXRpb25Nb2R1bGUiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl91c2VIZXJvIiwiX0FuaW1hdGVkRW50cmFuY2UiLCJfVHJhbnNpdGlvbiIsIl9PcmRlcmFibGVMaXN0TW9kdWxlIiwiX3VzZUV2ZW50cyIsIl9vd25FdmVudCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJfZXh0ZW5kcyIsImFzc2lnbiIsImJpbmQiLCJ0YXJnZXQiLCJpIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwic291cmNlIiwiYXBwbHkiLCJPcmRlcmFibGVMaXN0Q29udGV4dCIsImNyZWF0ZUNvbnRleHQiLCJPcmRlcmFibGVMaXN0UmVvcmRlck1vZGUiLCJleHBvcnRzIiwiY2xlYW5LZXlzIiwia2V5cyIsIm1hcCIsImEiLCJzcGxpdCIsIk9yZGVyYWJsZUxpc3QiLCJfcmVmIiwiY2hpbGRyZW4iLCJjbGFzc05hbWUiLCJtb2RlIiwiVkVSVElDQUwiLCJzaHJpbmtUb09uT3JkZXIiLCJyZW9yZGVyaW5nQ2xhc3NOYW1lIiwiY2xvbmVDbGFzc05hbWUiLCJwcm9wcyIsImF2YWlsYWJsZUtleXMiLCJhdmFpbGFibGVLZXlzRGVwIiwiam9pbiIsImluaXRpYWxpemVPcmRlciIsInVzZUNhbGxiYWNrIiwibWlzc2luZ09yZGVyS2V5cyIsImtleU9yZGVyIiwiZmlsdGVyIiwiaW5jbHVkZXMiLCJ1bmRlZmluZWQiLCJjdXJyZW50IiwiYW5jaG9yc0xpc3QiLCJ1c2VSZWYiLCJldmVudEVtaXR0ZXIiLCJ1c2VFdmVudHMiLCJjdXJyZW50Q2xvbmUiLCJjdXJyZW50V29ya2luZ0tleSIsInJvb3RSZWYiLCJfb3JkZXIiLCJzZXRPcmRlciIsInVzZVN0YXRlIiwidXNlRWZmZWN0Iiwib3JkZXIiLCJ1c2VNZW1vIiwiY3VycmVudE9yZGVyIiwibyIsImNsZWFuT3JkZXIiLCJvcmRlcklkIiwicm9vdEVsIiwiVFdPX0RJTUVOU0lPTlMiLCJsYXN0RWxlbWVudENoaWxkIiwiZmluZFBhcmVudEVsZW1lbnQiLCJwYXJlbnQiLCJwYXJlbnRFbGVtZW50IiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiRXJyb3IiLCJ1c2VMYXlvdXRFZmZlY3QiLCJzdHlsZSIsInNldFByb3BlcnR5IiwiY2FsY3VsYXRlUmVvcmRlcmluZyIsInRocm90dGxlIiwiZSIsImVscyIsImluZGV4T2ZLZXlJbkNsZWFuT3JkZXIiLCJpbmRleE9mIiwia2V5T2ZUaGVPdmVyRWxlbWVudCIsImlzRHJhZ2dpbmdPd25FbGVtZW50IiwiaXNBZnRlciIsImlzQmVmb3JlIiwiZGlzdGFuY2VGcm9tTGVmdCIsIm9mZnNldFgiLCJ3aWR0aE9mRWwiLCJjbGllbnRXaWR0aCIsIm9mZnNldCIsImRpc3RhbmNlRnJvbVRvcCIsIm9mZnNldFkiLCJoZWlnaHRPZkVsIiwiY2xpZW50SGVpZ2h0IiwiY2hlY2tJZkNhbk1vdmUiLCJrZXlPZk92ZXJFbGVtZW50IiwiaW5kZXhPZlRoZU5ld0VsZW1lbnQiLCJzaG91bGRUcmlnZ2VyUmVvcmRlcmluZyIsInAiLCJwcmV2aW91c0luZGV4IiwiaW5kZXhPZktleUluUHJvdmlkZWRPcmRlciIsIm9yZGVyV2l0aG91dEN1cnJlbnQiLCJzdGFydHNXaXRoIiwic3BsaWNlIiwiRGF0ZSIsIm5vdyIsInJlZ2lzdGVyTGlzdGVuZXJzIiwiQXJyYXkiLCJmcm9tIiwiY2FsY3VsYXRlUmVvcmRlcmluZ0NhbGwiLCJlbCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwidW5zdWJzY3JpYmUiLCJ0aW1lb3V0Iiwic2V0VGltZW91dCIsImNsZWFyVGltZW91dCIsIm9uQ2hhbmdlS2V5T3JkZXIiLCJjbGVhbk9yZGVyUmVmIiwib25BbmNob3JDbGljayIsIl9yZWYyIiwiYW5jaG9yIiwib3JkZXJhYmxlTGlzdEl0ZW1Gb3JBbmNob3IiLCJib3giLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJlbEluZGV4IiwiY2xvbmUiLCJjbG9uZU5vZGUiLCJzZXRBdHRyaWJ1dGUiLCJ3aWR0aCIsImhlaWdodCIsInRvcCIsImxlZnQiLCJjbGFzc0xpc3QiLCJhZGQiLCJTdHlsZXMiLCJtYXhIZWlnaHQiLCJjdXJyZW50T3JkZXJpbmciLCJyZW1vdmUiLCJ2aXNpYmxlIiwibW92ZW1lbnRDb250cm9sIiwieCIsIngxIiwieSIsInkxIiwidG91Y2hlcyIsInBhZ2VYIiwicGFnZVkiLCJkb2N1bWVudCIsImJvZHkiLCJhcHBlbmRDaGlsZCIsImRlbGV0ZUNsb25lIiwid2luZG93IiwidmlzaWJpbGl0eSIsInVuc2VsZWN0YWJsZSIsImVsSW52aXNpYmxlIiwiZmluZCIsImNvbnRhaW5zIiwiY2hpbGQiLCJzY3JvbGxIZWlnaHQiLCJ0cmFuc2l0aW9uSGVpZ2h0Iiwib25FbmQiLCJvd25FdmVudCIsImNsZWFuVXAiLCJyZW1vdmVQcm9wZXJ0eSIsImRpc3BhdGNoZXIiLCJvcmRlcmluZyIsIk1hdGgiLCJmbG9vciIsInRvU3RyaW5nIiwidHJhbnNpdGlvbiIsInRhcmdldEhlaWdodCIsImN1cnJlbnRIZWlnaHQiLCJvZmZzZXRUb3AiLCJwYWRkaW5nVG9wIiwibWluSGVpZ2h0IiwidG9TcHJlYWQiLCJjaGlsZHJlblRvUmVuZGVyIiwic29ydCIsImIiLCJyZWxhdGVkQW5jaG9yIiwicHJldmVudERlZmF1bHQiLCJtb3ZlQ2IiLCJ0b3VjaCIsImNsaWVudFgiLCJjbGllbnRZIiwiY3VycmVudEVsZW1lbnRJZHgiLCJmaW5kSW5kZXgiLCJjIiwicmVjdCIsInQiLCJ0b3VjaE1vdmVDYiIsInN0b3BQcm9wYWdhdGlvbiIsImRpc3BhdGNoRXZlbnQiLCJUb3VjaEV2ZW50IiwidHlwZSIsInJlbW92ZUNiIiwiYmluZEFuY2hvciIsInB1c2giLCJ1bmJpbmRBbmNob3IiLCJvbiIsInN1YnNjcmliZXIiLCJjcmVhdGVFbGVtZW50IiwiUHJvdmlkZXIiLCJ2YWx1ZSIsInJlZiIsInJvb3QiLCJzaHJpbmthYmxlIiwidHJhbnNpdGlvblR5cGUiLCJUcmFuc2l0aW9uQW5pbWF0aW9uVHlwZXMiLCJDVVNUT00iLCJjb25maWciLCJiYWNrd2FyZCIsImVsZW1lbnRFbnRlcmluZyIsImVsZW1lbnRFeGl0aW5nIiwiZm9yd2FyZCIsInN0dWJFbnRlcmluZyIsIlRyYW5zaXRpb25TdHlsZXMiLCJmYWRlT3V0IiwiY29udGVudENsYXNzTmFtZSIsIkZyYWdtZW50IiwiSGVyb1dyYXBwZXIiLCJpZCIsIl9yZWYzIiwiaGVyb1JlZiIsInVzZUhlcm8iLCJvbkhlcm9TdGFydCIsIl9jIiwiX28iLCJxdWVyeVNlbGVjdG9yQWxsIiwiZm9yRWFjaCIsImltZyIsIm9uSGVyb0Nsb25lZCIsIm9uSGVyb0VuZCIsInVzZU9yZGVyYWJsZUxpc3RBbmNob3IiLCJhbmNob3JSZWYiLCJjdHgiLCJ1c2VDb250ZXh0IiwidXNlT3JkZXJhYmxlRXZlbnRzIiwiZXZlbnRzIiwidW5zdWJzY3JpYmVycyIsImV2ZW50TmFtZSIsInUiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9PcmRlcmFibGVMaXN0L09yZGVyYWJsZUxpc3QudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0aHJvdHRsZSBmcm9tIFwibG9kYXNoL3Rocm90dGxlXCI7XG5pbXBvcnQgVW5jb250cm9sbGVkVHJhbnNpdGlvbiBmcm9tIFwiLi4vVW5jb250cm9sbGVkVHJhbnNpdGlvblwiO1xuaW1wb3J0IFRyYW5zaXRpb25TdHlsZXMgZnJvbSBcIi4uL1RyYW5zaXRpb24vVHJhbnNpdGlvbi5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IFJlYWN0LCB7XG4gIGNyZWF0ZUNvbnRleHQsXG4gIERldGFpbGVkSFRNTFByb3BzLFxuICBGcmFnbWVudCxcbiAgSFRNTEF0dHJpYnV0ZXMsXG4gIFByb3BzV2l0aENoaWxkcmVuLFxuICBSZWFjdEVsZW1lbnQsXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VDb250ZXh0LFxuICB1c2VFZmZlY3QsXG4gIHVzZUxheW91dEVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgdXNlSGVybyBmcm9tIFwiLi4vLi4vaG9va3MvdXNlSGVyb1wiO1xuaW1wb3J0IEFuaW1hdGVkRW50cmFuY2UgZnJvbSBcIi4uL0FuaW1hdGVkRW50cmFuY2VcIjtcbmltcG9ydCB7IFRyYW5zaXRpb25BbmltYXRpb25UeXBlcyB9IGZyb20gXCIuLi9UcmFuc2l0aW9uXCI7XG5pbXBvcnQgU3R5bGVzIGZyb20gXCIuL09yZGVyYWJsZUxpc3QubW9kdWxlLnNjc3NcIjtcbmltcG9ydCB1c2VFdmVudHMgZnJvbSBcIi4uLy4uL2hvb2tzL3V0aWxpdHkvdXNlRXZlbnRzXCI7XG5pbXBvcnQgb3duRXZlbnQgZnJvbSBcIi4uLy4uL3V0aWxzL293bkV2ZW50XCI7XG5cbnR5cGUgRXZlbnRzID0gXCJvcmRlci1zdG9wXCIgfCBcIm9yZGVyLXN0YXJ0XCI7XG5cbmNvbnN0IE9yZGVyYWJsZUxpc3RDb250ZXh0ID0gY3JlYXRlQ29udGV4dDx7XG4gIGJpbmRBbmNob3I6IChiaW5kRWxlbWVudDogSFRNTERpdkVsZW1lbnQpID0+IHZvaWQ7XG4gIHVuYmluZEFuY2hvcjogKGJpbmRFbGVtZW50OiBIVE1MRGl2RWxlbWVudCkgPT4gdm9pZDtcbiAgb246IChldmVudE5hbWU6IEV2ZW50cywgY2I6ICgpID0+IHZvaWQpID0+ICgpID0+IHZvaWQ7XG59PihudWxsIGFzIGFueSk7XG5cbmV4cG9ydCBlbnVtIE9yZGVyYWJsZUxpc3RSZW9yZGVyTW9kZSB7XG4gIFZFUlRJQ0FMID0gXCJ2XCIsXG4gIFRXT19ESU1FTlNJT05TID0gXCJodlwiLFxufVxuXG5mdW5jdGlvbiBjbGVhbktleXMoa2V5czogc3RyaW5nW10pIHtcbiAgcmV0dXJuIGtleXMubWFwKChhKSA9PiBhLnNwbGl0KFwiO1wiKVswXSk7XG59XG5cbi8qKlxuICogVGhpcyBjb21wb25lbnQgcmVjZWl2ZXMgYSBsaXN0IG9mIGtleWVkIGVsZW1lbnRzIGFuZCBvcmRlcnMgaXQgYmFzZWQgb2YgdGhlIG9yZGVyIHByb3ZpZGVkIHZpYSB0aGUgcHJvcCBcImtleU9yZGVyXCJcbiAqKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIE9yZGVyYWJsZUxpc3Qoe1xuICBjaGlsZHJlbixcbiAgY2xhc3NOYW1lID0gXCJcIixcbiAgbW9kZSA9IE9yZGVyYWJsZUxpc3RSZW9yZGVyTW9kZS5WRVJUSUNBTCxcbiAgc2hyaW5rVG9Pbk9yZGVyLFxuICByZW9yZGVyaW5nQ2xhc3NOYW1lLFxuICBjbG9uZUNsYXNzTmFtZSxcbiAgLi4ucHJvcHNcbn06IHtcbiAgY2hpbGRyZW46IFJlYWN0RWxlbWVudFtdO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIG1vZGU/OiBPcmRlcmFibGVMaXN0UmVvcmRlck1vZGU7XG4gIC8qKlxuICAgKiBJZiBwcm92aWRlZCwgbWFrZXMgdGhlIGVsZW1lbnRzIHNocmluayB0byB0aGlzIHZhbHVlIGluIHB4IHdoZW4gb3JkZXJpbmcgZWxlbWVudHNcbiAgICovXG4gIHNocmlua1RvT25PcmRlcj86IG51bWJlcjtcblxuICAvKipcbiAgICogQSBjbGFzcyB0byBhcHBseSB3aGVuIHJlb3JkZXJpbmdcbiAgICovXG4gIHJlb3JkZXJpbmdDbGFzc05hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgY2xhc3MgdG8gYXBwbHkgdG8gdGhlIGNsb25lIGVsXG4gICAqL1xuICBjbG9uZUNsYXNzTmFtZT86IHN0cmluZztcbn0gJiAoXG4gIHwge1xuICAgICAga2V5T3JkZXI/OiBzdHJpbmdbXTtcbiAgICAgIG9uQ2hhbmdlS2V5T3JkZXI6IChuZXdPcmRlcjogc3RyaW5nW10pID0+IHZvaWQ7XG4gICAgfVxuICB8IHtcbiAgICAgIGN1cnJlbnRPcmRlcj86IHN0cmluZ1tdO1xuICAgIH1cbikgJlxuICBEZXRhaWxlZEhUTUxQcm9wczxIVE1MQXR0cmlidXRlczxIVE1MRGl2RWxlbWVudD4sIEhUTUxEaXZFbGVtZW50Pikge1xuICBjb25zdCBhdmFpbGFibGVLZXlzID0gY2hpbGRyZW4ubWFwKChhKSA9PiBhLmtleSBhcyBzdHJpbmcpO1xuICBjb25zdCBhdmFpbGFibGVLZXlzRGVwID0gYXZhaWxhYmxlS2V5cy5qb2luKFwiLFwiKTtcbiAgY29uc3QgaW5pdGlhbGl6ZU9yZGVyID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGNvbnN0IG1pc3NpbmdPcmRlcktleXMgPVxuICAgICAgXCJrZXlPcmRlclwiIGluIHByb3BzICYmIHByb3BzLmtleU9yZGVyXG4gICAgICAgID8gYXZhaWxhYmxlS2V5cy5maWx0ZXIoKGEpID0+ICFwcm9wcy5rZXlPcmRlciEuaW5jbHVkZXMoYSkpXG4gICAgICAgIDogW107XG5cbiAgICByZXR1cm4gKFxuICAgICAgKFwia2V5T3JkZXJcIiBpbiBwcm9wcyAmJiBwcm9wcy5rZXlPcmRlclxuICAgICAgICA/IFsuLi5wcm9wcy5rZXlPcmRlciwgLi4ubWlzc2luZ09yZGVyS2V5c11cbiAgICAgICAgOiB1bmRlZmluZWQpIHx8IGF2YWlsYWJsZUtleXNcbiAgICApO1xuICB9LCBbYXZhaWxhYmxlS2V5c0RlcCwgKHByb3BzIGFzIGFueSkua2V5T3JkZXJdKTtcbiAgY29uc3QgeyBjdXJyZW50OiBhbmNob3JzTGlzdCB9ID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50W10+KFtdKTtcbiAgY29uc3QgZXZlbnRFbWl0dGVyID0gdXNlRXZlbnRzPEV2ZW50cywgeyBbayBpbiBFdmVudHNdOiBbXSB9PigpO1xuICBjb25zdCBjdXJyZW50Q2xvbmUgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgY29uc3QgY3VycmVudFdvcmtpbmdLZXkgPSB1c2VSZWY8c3RyaW5nPigpO1xuICBjb25zdCByb290UmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsIGFzIGFueSk7XG4gIGNvbnN0IFtfb3JkZXIsIHNldE9yZGVyXSA9IHVzZVN0YXRlKGluaXRpYWxpemVPcmRlcik7XG4gIHVzZUVmZmVjdCgoKSA9PiBzZXRPcmRlcihpbml0aWFsaXplT3JkZXIoKSksIFtpbml0aWFsaXplT3JkZXJdKTtcblxuICBjb25zdCBvcmRlciA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICBcImN1cnJlbnRPcmRlclwiIGluIHByb3BzID8gcHJvcHMuY3VycmVudE9yZGVyIHx8IF9vcmRlciA6IF9vcmRlclxuICAgICkuZmlsdGVyKChvKSA9PiBvLmluY2x1ZGVzKFwiO1wiKSB8fCBhdmFpbGFibGVLZXlzLmluY2x1ZGVzKG8pKTtcbiAgfSwgWyhwcm9wcyBhcyBhbnkpLmN1cnJlbnRPcmRlciwgX29yZGVyLCBhdmFpbGFibGVLZXlzRGVwXSk7XG4gIGNvbnN0IGNsZWFuT3JkZXIgPSB1c2VNZW1vKCgpID0+IG9yZGVyLm1hcCgoYSkgPT4gYS5zcGxpdChcIjtcIilbMF0pLCBbb3JkZXJdKTtcbiAgY29uc3Qgb3JkZXJJZCA9IHVzZU1lbW8oKCkgPT4gXCJrZXktXCIgKyBjbGVhbk9yZGVyLmpvaW4oXCJcIiksIFtjbGVhbk9yZGVyXSk7XG4gIGZ1bmN0aW9uIHJvb3RFbCgpIHtcbiAgICBpZiAobW9kZSA9PT0gT3JkZXJhYmxlTGlzdFJlb3JkZXJNb2RlLlRXT19ESU1FTlNJT05TKVxuICAgICAgcmV0dXJuIHJvb3RSZWYuY3VycmVudCEubGFzdEVsZW1lbnRDaGlsZCFcbiAgICAgICAgLmxhc3RFbGVtZW50Q2hpbGQhIGFzIEhUTUxEaXZFbGVtZW50O1xuICAgIHJldHVybiByb290UmVmLmN1cnJlbnQhIGFzIEhUTUxEaXZFbGVtZW50O1xuICB9XG5cbiAgY29uc3QgZmluZFBhcmVudEVsZW1lbnQgPSAodGFyZ2V0OiBIVE1MRGl2RWxlbWVudCkgPT4ge1xuICAgIGxldCBwYXJlbnQ6IEhUTUxEaXZFbGVtZW50ID0gdGFyZ2V0IGFzIEhUTUxEaXZFbGVtZW50O1xuICAgIHdoaWxlIChwYXJlbnQucGFyZW50RWxlbWVudCAhPT0gcm9vdEVsKCkpIHtcbiAgICAgIGlmIChwYXJlbnQucGFyZW50RWxlbWVudCA9PT0gbnVsbCkgYnJlYWs7XG4gICAgICBwYXJlbnQgPSBwYXJlbnQucGFyZW50RWxlbWVudCBhcyBhbnk7XG4gICAgfVxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJkZXZlbG9wbWVudFwiICYmIHBhcmVudCA9PT0gbnVsbClcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJJdCBzZWVtcyBsaWtlIHdlIGNvdWxkIG5vdCBmaW5kIGEgcmVsYXRpb24gYmV0d2VlbiB0aGlzIGVsZW1lbnQgYW5kIHRoZSByb290IGxpc3QuIEFyZSB5b3UgdXNpbmcgcG9ydGFscyBtYXliZT9cIlxuICAgICAgKTtcbiAgICByZXR1cm4gcGFyZW50O1xuICB9O1xuXG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHNocmlua1RvT25PcmRlcilcbiAgICAgIHJvb3RFbCgpLnN0eWxlLnNldFByb3BlcnR5KFwiLS1zaHJpbmstdG9cIiwgYCR7c2hyaW5rVG9Pbk9yZGVyfXB4YCk7XG4gIH0sIFtzaHJpbmtUb09uT3JkZXJdKTtcblxuICBjb25zdCBjYWxjdWxhdGVSZW9yZGVyaW5nID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIHRocm90dGxlKChlOiBhbnksIGVsczogSFRNTERpdkVsZW1lbnRbXSwgY3VycmVudE9yZGVyOiBzdHJpbmdbXSkgPT4ge1xuICAgICAgaWYgKGVscy5sZW5ndGggPiBjdXJyZW50T3JkZXIubGVuZ3RoIHx8ICFjdXJyZW50V29ya2luZ0tleS5jdXJyZW50KVxuICAgICAgICByZXR1cm47XG4gICAgICBjb25zdCBwYXJlbnQgPSBmaW5kUGFyZW50RWxlbWVudChlLnRhcmdldCk7XG4gICAgICBjb25zdCBpbmRleE9mS2V5SW5DbGVhbk9yZGVyID0gZWxzLmluZGV4T2YocGFyZW50KTtcbiAgICAgIGNvbnN0IGtleU9mVGhlT3ZlckVsZW1lbnQgPSBjdXJyZW50T3JkZXJbaW5kZXhPZktleUluQ2xlYW5PcmRlcl07XG4gICAgICBjb25zdCBpc0RyYWdnaW5nT3duRWxlbWVudCA9XG4gICAgICAgIGN1cnJlbnRXb3JraW5nS2V5LmN1cnJlbnQgPT09IGtleU9mVGhlT3ZlckVsZW1lbnQ7XG4gICAgICBpZiAoaW5kZXhPZktleUluQ2xlYW5PcmRlciA9PT0gLTEgfHwga2V5T2ZUaGVPdmVyRWxlbWVudCA9PT0gdW5kZWZpbmVkKVxuICAgICAgICByZXR1cm47XG4gICAgICBpZiAoIWlzRHJhZ2dpbmdPd25FbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IHsgaXNBZnRlciwgaXNCZWZvcmUgfSA9ICgoKSA9PiB7XG4gICAgICAgICAgaWYgKG1vZGUgPT09IE9yZGVyYWJsZUxpc3RSZW9yZGVyTW9kZS5UV09fRElNRU5TSU9OUykge1xuICAgICAgICAgICAgY29uc3QgZGlzdGFuY2VGcm9tTGVmdCA9IGUub2Zmc2V0WDtcbiAgICAgICAgICAgIGNvbnN0IHdpZHRoT2ZFbCA9IHBhcmVudC5jbGllbnRXaWR0aDtcbiAgICAgICAgICAgIGNvbnN0IG9mZnNldCA9IHdpZHRoT2ZFbCAqIDAuMjU7XG4gICAgICAgICAgICBjb25zdCBpc0FmdGVyID0gZGlzdGFuY2VGcm9tTGVmdCA+IHdpZHRoT2ZFbCAtIG9mZnNldDtcbiAgICAgICAgICAgIGNvbnN0IGlzQmVmb3JlID0gZGlzdGFuY2VGcm9tTGVmdCA8IG9mZnNldDtcbiAgICAgICAgICAgIHJldHVybiB7IGlzQWZ0ZXIsIGlzQmVmb3JlIH07XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGRpc3RhbmNlRnJvbVRvcCA9IGUub2Zmc2V0WTtcbiAgICAgICAgICAgIGNvbnN0IGhlaWdodE9mRWwgPSBwYXJlbnQuY2xpZW50SGVpZ2h0O1xuICAgICAgICAgICAgY29uc3Qgb2Zmc2V0ID0gaGVpZ2h0T2ZFbCAqIDAuMjU7XG4gICAgICAgICAgICBjb25zdCBpc0FmdGVyID0gZGlzdGFuY2VGcm9tVG9wID4gaGVpZ2h0T2ZFbCAtIG9mZnNldDtcbiAgICAgICAgICAgIGNvbnN0IGlzQmVmb3JlID0gZGlzdGFuY2VGcm9tVG9wIDwgb2Zmc2V0O1xuICAgICAgICAgICAgcmV0dXJuIHsgaXNBZnRlciwgaXNCZWZvcmUgfTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pKCk7XG5cbiAgICAgICAgY29uc3QgY2hlY2tJZkNhbk1vdmUgPSAoa2V5T2ZPdmVyRWxlbWVudD86IHN0cmluZykgPT4ge1xuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBrZXlPZk92ZXJFbGVtZW50ID09PSB1bmRlZmluZWQgfHxcbiAgICAgICAgICAgIGtleU9mT3ZlckVsZW1lbnQgIT09IGN1cnJlbnRXb3JraW5nS2V5LmN1cnJlbnRcbiAgICAgICAgICApO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBpbmRleE9mVGhlTmV3RWxlbWVudCA9XG4gICAgICAgICAgaW5kZXhPZktleUluQ2xlYW5PcmRlciArIChpc0FmdGVyID8gMSA6IC0xKTtcbiAgICAgICAgY29uc3Qgc2hvdWxkVHJpZ2dlclJlb3JkZXJpbmcgPVxuICAgICAgICAgIChpc0FmdGVyIHx8IGlzQmVmb3JlKSAmJlxuICAgICAgICAgIGNoZWNrSWZDYW5Nb3ZlKGN1cnJlbnRPcmRlcltpbmRleE9mVGhlTmV3RWxlbWVudF0pO1xuICAgICAgICBpZiAoc2hvdWxkVHJpZ2dlclJlb3JkZXJpbmcpIHtcbiAgICAgICAgICBzZXRPcmRlcigocCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcHJldmlvdXNJbmRleCA9IGN1cnJlbnRPcmRlci5pbmRleE9mKFxuICAgICAgICAgICAgICBjdXJyZW50V29ya2luZ0tleS5jdXJyZW50IVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4T2ZLZXlJblByb3ZpZGVkT3JkZXIgPVxuICAgICAgICAgICAgICBjbGVhbktleXMocCkuaW5kZXhPZihrZXlPZlRoZU92ZXJFbGVtZW50KTtcbiAgICAgICAgICAgIGxldCBpbmRleE9mVGhlTmV3RWxlbWVudCA9XG4gICAgICAgICAgICAgIGluZGV4T2ZLZXlJblByb3ZpZGVkT3JkZXIgKyAoaXNCZWZvcmUgPyAtMSA6IDApO1xuICAgICAgICAgICAgaWYgKHByZXZpb3VzSW5kZXggPiBpbmRleE9mVGhlTmV3RWxlbWVudCkgaW5kZXhPZlRoZU5ld0VsZW1lbnQrKztcbiAgICAgICAgICAgIGNvbnN0IG9yZGVyV2l0aG91dEN1cnJlbnQgPSBwLmZpbHRlcigoYSkgPT4ge1xuICAgICAgICAgICAgICBpZiAoYS5zdGFydHNXaXRoKGAke2N1cnJlbnRXb3JraW5nS2V5LmN1cnJlbnR9O2ApKSByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgIHJldHVybiBhICE9PSBjdXJyZW50V29ya2luZ0tleS5jdXJyZW50O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBvcmRlcldpdGhvdXRDdXJyZW50LnNwbGljZShcbiAgICAgICAgICAgICAgaW5kZXhPZlRoZU5ld0VsZW1lbnQsXG4gICAgICAgICAgICAgIDAsXG4gICAgICAgICAgICAgIGAke2N1cnJlbnRXb3JraW5nS2V5LmN1cnJlbnR9OyR7RGF0ZS5ub3coKX1gXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcmV0dXJuIG9yZGVyV2l0aG91dEN1cnJlbnQ7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCAxMDAwIC8gNjApO1xuICB9LCBbXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBmdW5jdGlvbiByZWdpc3Rlckxpc3RlbmVycygpIHtcbiAgICAgIGNvbnN0IGVscyA9IEFycmF5LmZyb20ocm9vdEVsKCkhLmNoaWxkcmVuKSBhcyBIVE1MRGl2RWxlbWVudFtdO1xuICAgICAgY29uc3QgY2FsY3VsYXRlUmVvcmRlcmluZ0NhbGwgPSAoZTogYW55KSA9PiB7XG4gICAgICAgIGNvbnN0IGVscyA9IEFycmF5LmZyb20ocm9vdEVsKCkhLmNoaWxkcmVuKSBhcyBIVE1MRGl2RWxlbWVudFtdO1xuICAgICAgICBjYWxjdWxhdGVSZW9yZGVyaW5nKGUsIGVscywgY2xlYW5PcmRlcik7XG4gICAgICB9O1xuICAgICAgZm9yIChsZXQgZWwgb2YgZWxzKVxuICAgICAgICBlbC5hZGRFdmVudExpc3RlbmVyKFwibW91c2Vtb3ZlXCIsIGNhbGN1bGF0ZVJlb3JkZXJpbmdDYWxsKTtcblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgZm9yIChsZXQgZWwgb2YgZWxzKVxuICAgICAgICAgIGVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZW1vdmVcIiwgY2FsY3VsYXRlUmVvcmRlcmluZ0NhbGwpO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAobW9kZSA9PT0gT3JkZXJhYmxlTGlzdFJlb3JkZXJNb2RlLlZFUlRJQ0FMKSB7XG4gICAgICByZXR1cm4gcmVnaXN0ZXJMaXN0ZW5lcnMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IHVuc3Vic2NyaWJlOiAoKSA9PiB2b2lkO1xuICAgICAgbGV0IHRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdW5zdWJzY3JpYmUgPSByZWdpc3Rlckxpc3RlbmVycygpO1xuICAgICAgfSwgMjUwKTtcbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0KTtcbiAgICAgICAgaWYgKHVuc3Vic2NyaWJlKSB1bnN1YnNjcmliZSgpO1xuICAgICAgfTtcbiAgICB9XG4gIH0sIFtjbGVhbk9yZGVyXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoXCJvbkNoYW5nZUtleU9yZGVyXCIgaW4gcHJvcHMpIHByb3BzLm9uQ2hhbmdlS2V5T3JkZXIoY2xlYW5LZXlzKF9vcmRlcikpO1xuICB9LCBbX29yZGVyXSk7XG5cbiAgY29uc3QgY2xlYW5PcmRlclJlZiA9IHVzZVJlZihjbGVhbk9yZGVyKTtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjbGVhbk9yZGVyUmVmLmN1cnJlbnQgPSBjbGVhbk9yZGVyO1xuICB9LCBbY2xlYW5PcmRlcl0pO1xuICBjb25zdCBvbkFuY2hvckNsaWNrID0gdXNlQ2FsbGJhY2soXG4gICAgKHsgdGFyZ2V0OiBhbmNob3IgfTogUGljazxNb3VzZUV2ZW50LCBcInRhcmdldFwiPikgPT4ge1xuICAgICAgbGV0IG9mZnNldDogW3g6IG51bWJlciwgeTogbnVtYmVyXTtcbiAgICAgIGNvbnN0IG9yZGVyYWJsZUxpc3RJdGVtRm9yQW5jaG9yID0gZmluZFBhcmVudEVsZW1lbnQoXG4gICAgICAgIGFuY2hvciBhcyBIVE1MRGl2RWxlbWVudFxuICAgICAgKTtcbiAgICAgIGNvbnN0IGJveCA9IG9yZGVyYWJsZUxpc3RJdGVtRm9yQW5jaG9yLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgY29uc3QgZWxzID0gQXJyYXkuZnJvbShyb290RWwoKSEuY2hpbGRyZW4pIGFzIEhUTUxEaXZFbGVtZW50W107XG4gICAgICBjb25zdCBlbEluZGV4ID0gZWxzLmluZGV4T2Yob3JkZXJhYmxlTGlzdEl0ZW1Gb3JBbmNob3IpO1xuXG4gICAgICBjb25zdCBjbG9uZSA9IG9yZGVyYWJsZUxpc3RJdGVtRm9yQW5jaG9yLmNsb25lTm9kZShcbiAgICAgICAgdHJ1ZVxuICAgICAgKSBhcyBIVE1MRGl2RWxlbWVudDtcbiAgICAgIGN1cnJlbnRDbG9uZS5jdXJyZW50ID0gY2xvbmU7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwiZGV2ZWxvcG1lbnRcIilcbiAgICAgICAgY2xvbmUuc2V0QXR0cmlidXRlKFwiZGF0YS10ZXN0aWRcIiwgXCJvcmRlcmFibGUtbGlzdC1jbG9uZVwiKTtcbiAgICAgIGNsb25lLnNldEF0dHJpYnV0ZShcImRhdGEtb3JkZXJhYmxlaWRcIiwgXCJvcmRlcmFibGUtbGlzdC1jbG9uZVwiKTtcbiAgICAgIGNsb25lLnN0eWxlLndpZHRoID0gYCR7Ym94LndpZHRofXB4YDtcbiAgICAgIGNsb25lLnN0eWxlLmhlaWdodCA9IGAke2JveC5oZWlnaHR9cHhgO1xuICAgICAgY2xvbmUuc3R5bGUudG9wID0gYCR7Ym94LnRvcH1weGA7XG4gICAgICBjbG9uZS5zdHlsZS5sZWZ0ID0gYCR7Ym94LmxlZnR9cHhgO1xuICAgICAgY2xvbmUuY2xhc3NMaXN0LmFkZChTdHlsZXMuY2xvbmUpO1xuICAgICAgaWYgKHNocmlua1RvT25PcmRlcikgY2xvbmUuc3R5bGUubWF4SGVpZ2h0ID0gYCR7Ym94LmhlaWdodH1weGA7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgaWYgKGNsb25lQ2xhc3NOYW1lKSBjbG9uZS5jbGFzc0xpc3QuYWRkKGNsb25lQ2xhc3NOYW1lKTtcbiAgICAgICAgaWYgKHNocmlua1RvT25PcmRlcikgY2xvbmUuc3R5bGUubWF4SGVpZ2h0ID0gYCR7c2hyaW5rVG9Pbk9yZGVyfXB4YDtcbiAgICAgIH0sIDApO1xuXG4gICAgICBvcmRlcmFibGVMaXN0SXRlbUZvckFuY2hvci5jbGFzc0xpc3QuYWRkKFN0eWxlcy5jdXJyZW50T3JkZXJpbmcpO1xuICAgICAgb3JkZXJhYmxlTGlzdEl0ZW1Gb3JBbmNob3IuY2xhc3NMaXN0LnJlbW92ZShTdHlsZXMudmlzaWJsZSk7XG5cbiAgICAgIGNvbnN0IG1vdmVtZW50Q29udHJvbCA9IChlOiBNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCkgPT4ge1xuICAgICAgICBjb25zdCB7IHg6IHgxLCB5OiB5MSB9ID1cbiAgICAgICAgICBcInRvdWNoZXNcIiBpbiBlID8geyB4OiBlLnRvdWNoZXNbMF0ucGFnZVgsIHk6IGUudG91Y2hlc1swXS5wYWdlWSB9IDogZTtcbiAgICAgICAgaWYgKCFvZmZzZXQpIG9mZnNldCA9IFt4MSAtIGJveC5sZWZ0LCB5MSAtIGJveC50b3BdO1xuXG4gICAgICAgIGNvbnN0IFtvZmZzZXRYLCBvZmZzZXRZXSA9IG9mZnNldDtcbiAgICAgICAgY2xvbmUuc3R5bGUudG9wID0gYCR7eTEgLSBvZmZzZXRZfXB4YDtcbiAgICAgICAgY2xvbmUuc3R5bGUubGVmdCA9IGAke3gxIC0gb2Zmc2V0WH1weGA7XG4gICAgICB9O1xuXG4gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGNsb25lKTtcbiAgICAgIGNvbnN0IGRlbGV0ZUNsb25lID0gKCkgPT4ge1xuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlbW92ZVwiLCBtb3ZlbWVudENvbnRyb2wpO1xuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRvdWNobW92ZVwiLCBtb3ZlbWVudENvbnRyb2wpO1xuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRvdWNoZW5kXCIsIGRlbGV0ZUNsb25lKTtcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZXVwXCIsIGRlbGV0ZUNsb25lKTtcbiAgICAgICAgb3JkZXJhYmxlTGlzdEl0ZW1Gb3JBbmNob3Iuc3R5bGUudmlzaWJpbGl0eSA9IFwiaW5pdGlhbFwiO1xuICAgICAgICBjdXJyZW50V29ya2luZ0tleS5jdXJyZW50ID0gdW5kZWZpbmVkO1xuICAgICAgICB3aW5kb3cuZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKFN0eWxlcy51bnNlbGVjdGFibGUpO1xuICAgICAgICB7XG4gICAgICAgICAgY29uc3QgZWxzID0gQXJyYXkuZnJvbShyb290RWwoKSEuY2hpbGRyZW4pIGFzIEhUTUxEaXZFbGVtZW50W107XG4gICAgICAgICAgY29uc3QgZWxJbnZpc2libGUgPSBlbHMuZmluZChcbiAgICAgICAgICAgIChhKSA9PlxuICAgICAgICAgICAgICAhYS5jbGFzc0xpc3QuY29udGFpbnMoU3R5bGVzLnZpc2libGUpICYmXG4gICAgICAgICAgICAgIGEuc3R5bGUubWF4SGVpZ2h0ICE9PSBcIjBweFwiXG4gICAgICAgICAgKSE7XG4gICAgICAgICAgaWYgKHNocmlua1RvT25PcmRlcikge1xuICAgICAgICAgICAgY29uc3QgY2hpbGQgPSBlbEludmlzaWJsZS5sYXN0RWxlbWVudENoaWxkIGFzIEhUTUxEaXZFbGVtZW50O1xuICAgICAgICAgICAgY2hpbGQuc3R5bGUubWF4SGVpZ2h0ID0gYCR7Y2hpbGQuc2Nyb2xsSGVpZ2h0fXB4YDtcbiAgICAgICAgICAgIGNoaWxkLmNsYXNzTGlzdC5hZGQoU3R5bGVzLnRyYW5zaXRpb25IZWlnaHQpO1xuICAgICAgICAgICAgY29uc3Qgb25FbmQgPSBvd25FdmVudCgoKSA9PiB7XG4gICAgICAgICAgICAgIGNoaWxkLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0cmFuc2l0aW9uZW5kXCIsIG9uRW5kKTtcbiAgICAgICAgICAgICAgY2hpbGQuc3R5bGUubWF4SGVpZ2h0ID0gYGluaXRpYWxgO1xuICAgICAgICAgICAgICBjaGlsZC5jbGFzc0xpc3QucmVtb3ZlKFN0eWxlcy50cmFuc2l0aW9uSGVpZ2h0KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY2hpbGQuYWRkRXZlbnRMaXN0ZW5lcihcInRyYW5zaXRpb25lbmRcIiwgb25FbmQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBib3ggPSBlbEludmlzaWJsZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICBmdW5jdGlvbiBjbGVhblVwKCkge1xuICAgICAgICAgICAgaWYgKHNocmlua1RvT25PcmRlcikge1xuICAgICAgICAgICAgICByb290RWwoKS5zdHlsZS5yZW1vdmVQcm9wZXJ0eShcInBhZGRpbmctdG9wXCIpO1xuICAgICAgICAgICAgICByb290RWwoKS5zdHlsZS5yZW1vdmVQcm9wZXJ0eShcIm1pbi1oZWlnaHRcIik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGV2ZW50RW1pdHRlci5kaXNwYXRjaGVyKFwib3JkZXItc3RvcFwiKTtcbiAgICAgICAgICAgIHJvb3RFbCgpLmNsYXNzTGlzdC5yZW1vdmUoU3R5bGVzLm9yZGVyaW5nKTtcbiAgICAgICAgICAgIGlmIChyZW9yZGVyaW5nQ2xhc3NOYW1lKVxuICAgICAgICAgICAgICByb290RWwoKS5jbGFzc0xpc3QucmVtb3ZlKHJlb3JkZXJpbmdDbGFzc05hbWUpO1xuICAgICAgICAgICAgZm9yIChsZXQgZWwgb2YgZWxzKSBlbC5jbGFzc0xpc3QucmVtb3ZlKFN0eWxlcy52aXNpYmxlKTtcbiAgICAgICAgICAgIGNsb25lLnJlbW92ZSgpO1xuICAgICAgICAgICAgY3VycmVudENsb25lLmN1cnJlbnQgPSBudWxsO1xuICAgICAgICAgICAgZm9yIChsZXQgZWwgb2YgQXJyYXkuZnJvbShlbEludmlzaWJsZS5jaGlsZHJlbikgYXMgSFRNTERpdkVsZW1lbnRbXSlcbiAgICAgICAgICAgICAgZWwuc3R5bGUuaGVpZ2h0ID0gXCJcIjtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgY2xvbmUuc3R5bGUudG9wLnN0YXJ0c1dpdGgoTWF0aC5mbG9vcihib3gudG9wKS50b1N0cmluZygpKSAmJlxuICAgICAgICAgICAgY2xvbmUuc3R5bGUubGVmdC5zdGFydHNXaXRoKE1hdGguZmxvb3IoYm94LmxlZnQpLnRvU3RyaW5nKCkpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBjbGVhblVwKCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNsb25lLnN0eWxlLnRvcCA9IGAke2JveC50b3B9cHhgO1xuICAgICAgICAgICAgY2xvbmUuc3R5bGUubGVmdCA9IGAke2JveC5sZWZ0fXB4YDtcbiAgICAgICAgICAgIGNsb25lLnN0eWxlLnRyYW5zaXRpb24gPSBgdG9wIDUwMG1zIGxpbmVhciwgbGVmdCA1MDBtcyBsaW5lYXJgO1xuICAgICAgICAgICAgY2xvbmUuYWRkRXZlbnRMaXN0ZW5lcihcInRyYW5zaXRpb25lbmRcIiwgKCkgPT4ge1xuICAgICAgICAgICAgICBjbGVhblVwKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICBmb3IgKGxldCBlbCBvZiBlbHMpIHtcbiAgICAgICAgZWwuY2xhc3NMaXN0LmFkZChTdHlsZXMudmlzaWJsZSk7XG4gICAgICB9XG4gICAgICBpZiAoc2hyaW5rVG9Pbk9yZGVyKSB7XG4gICAgICAgIGZvciAobGV0IGVsIG9mIGVscykgZWwuc3R5bGUubWF4SGVpZ2h0ID0gYCR7ZWwuc2Nyb2xsSGVpZ2h0fXB4YDtcbiAgICAgICAgY29uc3QgdGFyZ2V0SGVpZ2h0ID0gZWxJbmRleCAqIHNocmlua1RvT25PcmRlcjtcbiAgICAgICAgY29uc3QgY3VycmVudEhlaWdodCA9XG4gICAgICAgICAgb3JkZXJhYmxlTGlzdEl0ZW1Gb3JBbmNob3Iub2Zmc2V0VG9wIC0gZWxzWzBdLm9mZnNldFRvcDtcbiAgICAgICAgY29uc3QgcGFkZGluZ1RvcCA9IGN1cnJlbnRIZWlnaHQgLSB0YXJnZXRIZWlnaHQ7XG4gICAgICAgIHJvb3RFbCgpLnN0eWxlLnBhZGRpbmdUb3AgPSBgJHtwYWRkaW5nVG9wfXB4YDtcbiAgICAgICAgcm9vdEVsKCkuc3R5bGUubWluSGVpZ2h0ID0gYCR7cm9vdEVsKCkuY2xpZW50SGVpZ2h0fXB4YDtcbiAgICAgIH1cbiAgICAgIG9yZGVyYWJsZUxpc3RJdGVtRm9yQW5jaG9yLnN0eWxlLnZpc2liaWxpdHkgPSBcImhpZGRlblwiO1xuICAgICAgb3JkZXJhYmxlTGlzdEl0ZW1Gb3JBbmNob3IuY2xhc3NMaXN0LnJlbW92ZShTdHlsZXMudmlzaWJsZSk7XG4gICAgICByb290RWwoKS5jbGFzc0xpc3QuYWRkKFN0eWxlcy5vcmRlcmluZyk7XG4gICAgICBpZiAocmVvcmRlcmluZ0NsYXNzTmFtZSkgcm9vdEVsKCkuY2xhc3NMaXN0LmFkZChyZW9yZGVyaW5nQ2xhc3NOYW1lKTtcbiAgICAgIGN1cnJlbnRXb3JraW5nS2V5LmN1cnJlbnQgPSBjbGVhbk9yZGVyUmVmLmN1cnJlbnRbZWxJbmRleF07XG4gICAgICBldmVudEVtaXR0ZXIuZGlzcGF0Y2hlcihcIm9yZGVyLXN0YXJ0XCIpO1xuICAgICAgd2luZG93LmRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZChTdHlsZXMudW5zZWxlY3RhYmxlKTtcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwibW91c2V1cFwiLCBkZWxldGVDbG9uZSk7XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlbW92ZVwiLCBtb3ZlbWVudENvbnRyb2wpO1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaGVuZFwiLCBkZWxldGVDbG9uZSk7XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInRvdWNobW92ZVwiLCBtb3ZlbWVudENvbnRyb2wpO1xuICAgIH0sXG4gICAgW11cbiAgKTtcblxuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChjdXJyZW50Q2xvbmUuY3VycmVudCkge1xuICAgICAgY29uc3QgZWxzID0gQXJyYXkuZnJvbShyb290RWwoKSEuY2hpbGRyZW4pIGFzIEhUTUxEaXZFbGVtZW50W107XG4gICAgICBjb25zdCBlbEludmlzaWJsZSA9IGVscy5maW5kKFxuICAgICAgICAoYSkgPT5cbiAgICAgICAgICAhYS5jbGFzc0xpc3QuY29udGFpbnMoU3R5bGVzLnZpc2libGUpICYmIGEuc3R5bGUubWF4SGVpZ2h0ICE9PSBcIjBweFwiXG4gICAgICApITtcbiAgICAgIChlbEludmlzaWJsZS5jaGlsZHJlblswXSBhcyBIVE1MRGl2RWxlbWVudCkuc3R5bGUuaGVpZ2h0ID0gYCR7XG4gICAgICAgIGN1cnJlbnRDbG9uZS5jdXJyZW50IS5jbGllbnRIZWlnaHRcbiAgICAgIH1weGA7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgKGVsSW52aXNpYmxlLmNoaWxkcmVuWzFdIGFzIEhUTUxEaXZFbGVtZW50KS5zdHlsZS5oZWlnaHQgPSBgJHtcbiAgICAgICAgICBjdXJyZW50Q2xvbmUuY3VycmVudCEuY2xpZW50SGVpZ2h0XG4gICAgICAgIH1weGA7XG4gICAgICB9LCAxNTApO1xuICAgIH1cbiAgfSwgW2NsZWFuT3JkZXJdKTtcblxuICBjb25zdCB0b1NwcmVhZCA9IHsgLi4ucHJvcHMgfSBhcyBhbnk7XG4gIGRlbGV0ZSB0b1NwcmVhZC5rZXlPcmRlcjtcbiAgZGVsZXRlIHRvU3ByZWFkLm9uQ2hhbmdlS2V5T3JkZXI7XG5cbiAgY29uc3QgY2hpbGRyZW5Ub1JlbmRlciA9IFsuLi5jaGlsZHJlbl1cbiAgICAuZmlsdGVyKChhKSA9PiBjbGVhbk9yZGVyLmluY2x1ZGVzKGEua2V5IGFzIHN0cmluZykpXG4gICAgLnNvcnQoXG4gICAgICAoYSwgYikgPT5cbiAgICAgICAgY2xlYW5PcmRlci5pbmRleE9mKGEua2V5IGFzIHN0cmluZykgLVxuICAgICAgICBjbGVhbk9yZGVyLmluZGV4T2YoYi5rZXkgYXMgc3RyaW5nKVxuICAgIClcbiAgICAubWFwKChhOiBSZWFjdEVsZW1lbnQsIGkpID0+ICh7XG4gICAgICAuLi5hLFxuICAgICAga2V5OiBvcmRlcltpXSxcbiAgICB9KSk7XG5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICByb290RWwoKSEuYWRkRXZlbnRMaXN0ZW5lcihcInRvdWNoc3RhcnRcIiwgKGUpID0+IHtcbiAgICAgIGNvbnN0IHJlbGF0ZWRBbmNob3IgPSBhbmNob3JzTGlzdC5maW5kKChhbmNob3IpID0+XG4gICAgICAgIGFuY2hvci5jb250YWlucyhlLnRhcmdldCBhcyBhbnkpXG4gICAgICApO1xuICAgICAgaWYgKHJlbGF0ZWRBbmNob3IpIHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBvbkFuY2hvckNsaWNrKHtcbiAgICAgICAgICB0YXJnZXQ6IHJlbGF0ZWRBbmNob3IsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IG1vdmVDYiA9IHRocm90dGxlKChlOiBUb3VjaEV2ZW50KSA9PiB7XG4gICAgICAgICAgY29uc3QgdG91Y2ggPSBlLnRvdWNoZXNbMF07XG4gICAgICAgICAgY29uc3QgW3gsIHldID0gW3RvdWNoLmNsaWVudFgsIHRvdWNoLmNsaWVudFldO1xuICAgICAgICAgIGNvbnN0IGVscyA9IEFycmF5LmZyb20ocm9vdEVsKCkuY2hpbGRyZW4pIGFzIEhUTUxEaXZFbGVtZW50W107XG4gICAgICAgICAgY29uc3QgY3VycmVudEVsZW1lbnRJZHggPSBlbHMuZmluZEluZGV4KChjLCBpKSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZWN0ID0gYz8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICBpZiAoIXJlY3QpIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybiByZWN0LnRvcCA8IHkgJiYgcmVjdC50b3AgKyByZWN0LmhlaWdodCA+IHk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgaWYgKGN1cnJlbnRFbGVtZW50SWR4ICE9PSAtMSkge1xuICAgICAgICAgICAgY29uc3QgZWwgPSBlbHNbY3VycmVudEVsZW1lbnRJZHhdO1xuICAgICAgICAgICAgY29uc3QgcmVjdCA9IGVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgY2FsY3VsYXRlUmVvcmRlcmluZyhcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRhcmdldDogZWwsXG4gICAgICAgICAgICAgICAgb2Zmc2V0WTogeSAtIHJlY3QudG9wLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBlbHMsXG4gICAgICAgICAgICAgIGNsZWFuT3JkZXJSZWYuY3VycmVudFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sIDUwMCk7XG4gICAgICAgIGNvbnN0IHQgPSBlLnRhcmdldCBhcyBIVE1MRGl2RWxlbWVudDtcbiAgICAgICAgY29uc3QgdG91Y2hNb3ZlQ2IgPSAoZTogVG91Y2hFdmVudCkgPT4ge1xuICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IFRvdWNoRXZlbnQoZS50eXBlLCBlIGFzIGFueSkpO1xuICAgICAgICAgIG1vdmVDYihlKTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgcmVtb3ZlQ2IgPSAoZTogVG91Y2hFdmVudCkgPT4ge1xuICAgICAgICAgIHQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRvdWNobW92ZVwiLCB0b3VjaE1vdmVDYik7XG4gICAgICAgICAgdC5yZW1vdmVFdmVudExpc3RlbmVyKFwidG91Y2hlbmRcIiwgcmVtb3ZlQ2IpO1xuICAgICAgICAgIHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBUb3VjaEV2ZW50KGUudHlwZSwgZSBhcyBhbnkpKTtcbiAgICAgICAgfTtcbiAgICAgICAgdC5hZGRFdmVudExpc3RlbmVyKFwidG91Y2htb3ZlXCIsIHRvdWNoTW92ZUNiKTtcbiAgICAgICAgdC5hZGRFdmVudExpc3RlbmVyKFwidG91Y2hlbmRcIiwgcmVtb3ZlQ2IpO1xuICAgICAgfVxuICAgIH0pO1xuICB9LCBbXSk7XG5cbiAgY29uc3QgZSA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKHtcbiAgICAgIGJpbmRBbmNob3I6IChlbDogSFRNTERpdkVsZW1lbnQpID0+IHtcbiAgICAgICAgZWwuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlZG93blwiLCBvbkFuY2hvckNsaWNrKTtcbiAgICAgICAgYW5jaG9yc0xpc3QucHVzaChlbCk7XG4gICAgICB9LFxuICAgICAgdW5iaW5kQW5jaG9yOiAoZWw6IEhUTUxEaXZFbGVtZW50KSA9PiB7XG4gICAgICAgIGVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZWRvd25cIiwgb25BbmNob3JDbGljayk7XG4gICAgICAgIGFuY2hvcnNMaXN0LnNwbGljZShhbmNob3JzTGlzdC5pbmRleE9mKGVsKSwgMSk7XG4gICAgICB9LFxuICAgICAgb246IGV2ZW50RW1pdHRlci5zdWJzY3JpYmVyLFxuICAgIH0pLFxuICAgIFtdXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8T3JkZXJhYmxlTGlzdENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e2V9PlxuICAgICAgPGRpdlxuICAgICAgICByZWY9e3Jvb3RSZWZ9XG4gICAgICAgIGNsYXNzTmFtZT17YCR7U3R5bGVzLnJvb3R9ICR7Y2xhc3NOYW1lfSAke1xuICAgICAgICAgIHNocmlua1RvT25PcmRlciA/IFN0eWxlcy5zaHJpbmthYmxlIDogXCJcIlxuICAgICAgICB9YH1cbiAgICAgICAgey4uLnRvU3ByZWFkfVxuICAgICAgPlxuICAgICAgICB7bW9kZSA9PT0gT3JkZXJhYmxlTGlzdFJlb3JkZXJNb2RlLlZFUlRJQ0FMID8gKFxuICAgICAgICAgIDxBbmltYXRlZEVudHJhbmNlPntjaGlsZHJlblRvUmVuZGVyfTwvQW5pbWF0ZWRFbnRyYW5jZT5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8VW5jb250cm9sbGVkVHJhbnNpdGlvblxuICAgICAgICAgICAgY2xhc3NOYW1lPXtTdHlsZXMudHJhbnNpdGlvbn1cbiAgICAgICAgICAgIHRyYW5zaXRpb25UeXBlPXtUcmFuc2l0aW9uQW5pbWF0aW9uVHlwZXMuQ1VTVE9NfVxuICAgICAgICAgICAgY29uZmlnPXt7XG4gICAgICAgICAgICAgIGJhY2t3YXJkOiB7XG4gICAgICAgICAgICAgICAgZWxlbWVudEVudGVyaW5nOiBcIlwiLFxuICAgICAgICAgICAgICAgIGVsZW1lbnRFeGl0aW5nOiBcIlwiLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBmb3J3YXJkOiB7XG4gICAgICAgICAgICAgICAgZWxlbWVudEVudGVyaW5nOiBTdHlsZXMuc3R1YkVudGVyaW5nLFxuICAgICAgICAgICAgICAgIGVsZW1lbnRFeGl0aW5nOiBUcmFuc2l0aW9uU3R5bGVzLmZhZGVPdXQsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgY29udGVudENsYXNzTmFtZT17YCR7Y2xhc3NOYW1lfWB9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEZyYWdtZW50IGtleT17b3JkZXJJZH0+XG4gICAgICAgICAgICAgIHtbLi4uY2hpbGRyZW5dXG4gICAgICAgICAgICAgICAgLmZpbHRlcigoYSkgPT4gY2xlYW5PcmRlci5pbmNsdWRlcyhhLmtleSBhcyBzdHJpbmcpKVxuICAgICAgICAgICAgICAgIC5zb3J0KFxuICAgICAgICAgICAgICAgICAgKGEsIGIpID0+XG4gICAgICAgICAgICAgICAgICAgIGNsZWFuT3JkZXIuaW5kZXhPZihhLmtleSBhcyBzdHJpbmcpIC1cbiAgICAgICAgICAgICAgICAgICAgY2xlYW5PcmRlci5pbmRleE9mKGIua2V5IGFzIHN0cmluZylcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLm1hcCgoYSwgaSkgPT4gKFxuICAgICAgICAgICAgICAgICAgPEhlcm9XcmFwcGVyIGtleT17aX0gaWQ9e2Eua2V5IGFzIHN0cmluZ30+XG4gICAgICAgICAgICAgICAgICAgIHthfVxuICAgICAgICAgICAgICAgICAgPC9IZXJvV3JhcHBlcj5cbiAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvRnJhZ21lbnQ+XG4gICAgICAgICAgPC9VbmNvbnRyb2xsZWRUcmFuc2l0aW9uPlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgPC9PcmRlcmFibGVMaXN0Q29udGV4dC5Qcm92aWRlcj5cbiAgKTtcbn1cblxuZnVuY3Rpb24gSGVyb1dyYXBwZXIoeyBjaGlsZHJlbiwgaWQgfTogUHJvcHNXaXRoQ2hpbGRyZW48eyBpZDogc3RyaW5nIH0+KSB7XG4gIGNvbnN0IHsgaGVyb1JlZiB9ID0gdXNlSGVybyhpZCwgdW5kZWZpbmVkLCB7XG4gICAgb25IZXJvU3RhcnQ6IChfYywgX28sIHQpID0+IHtcbiAgICAgIHQucXVlcnlTZWxlY3RvckFsbChcImltZ1wiKS5mb3JFYWNoKFxuICAgICAgICAoaW1nKSA9PiAoaW1nLnN0eWxlLnZpc2liaWxpdHkgPSBcImhpZGRlblwiKVxuICAgICAgKTtcbiAgICB9LFxuICAgIG9uSGVyb0Nsb25lZChjbG9uZSkge1xuICAgICAgLy8gaWYgKCFjbG9uZS5jbGFzc0xpc3QuY29udGFpbnMoU3R5bGVzLnZpc2libGUpKSBjbG9uZS5zdHlsZS5vcGFjaXR5ID0gXCIwXCI7XG4gICAgfSxcbiAgICBvbkhlcm9FbmQ6ICgpID0+IHtcbiAgICAgIGlmIChoZXJvUmVmLmN1cnJlbnQpXG4gICAgICAgIGhlcm9SZWYuY3VycmVudFxuICAgICAgICAgIC5xdWVyeVNlbGVjdG9yQWxsKFwiaW1nXCIpXG4gICAgICAgICAgLmZvckVhY2goKGltZykgPT4gKGltZy5zdHlsZS52aXNpYmlsaXR5ID0gXCJcIikpO1xuICAgIH0sXG4gIH0pO1xuICByZXR1cm4gPGRpdiByZWY9e2hlcm9SZWZ9PntjaGlsZHJlbn08L2Rpdj47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VPcmRlcmFibGVMaXN0QW5jaG9yKCkge1xuICBjb25zdCBhbmNob3JSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3R4ID0gdXNlQ29udGV4dChPcmRlcmFibGVMaXN0Q29udGV4dCk7XG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFjdHgpIHJldHVybjtcbiAgICBjb25zdCB7IGJpbmRBbmNob3IsIHVuYmluZEFuY2hvciB9ID0gY3R4O1xuICAgIGJpbmRBbmNob3IoYW5jaG9yUmVmLmN1cnJlbnQhKTtcbiAgICByZXR1cm4gKCkgPT4gdW5iaW5kQW5jaG9yKGFuY2hvclJlZi5jdXJyZW50ISk7XG4gIH0sIFtdKTtcbiAgcmV0dXJuIHtcbiAgICBhbmNob3JSZWY6IGN0eCA/IGFuY2hvclJlZiA6IHVuZGVmaW5lZCxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVzZU9yZGVyYWJsZUV2ZW50cyhcbiAgZXZlbnRzOiB7XG4gICAgW2sgaW4gRXZlbnRzXTogKCkgPT4gdm9pZDtcbiAgfVxuKSB7XG4gIGNvbnN0IHsgb24gfSA9IHVzZUNvbnRleHQoT3JkZXJhYmxlTGlzdENvbnRleHQpO1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHVuc3Vic2NyaWJlcnM6IGFueVtdID0gW107XG4gICAgZm9yIChsZXQgZXZlbnROYW1lIGluIGV2ZW50cykge1xuICAgICAgdW5zdWJzY3JpYmVycy5wdXNoKG9uKGV2ZW50TmFtZSBhcyBFdmVudHMsIGV2ZW50c1tldmVudE5hbWUgYXMgRXZlbnRzXSkpO1xuICAgIH1cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgdW5zdWJzY3JpYmVycy5mb3JFYWNoKCh1KSA9PiB1KCkpO1xuICAgIH07XG4gIH0sIFtldmVudHNdKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsSUFBQUEsU0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsdUJBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLGlCQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRyxNQUFBLEdBQUFDLHVCQUFBLENBQUFKLE9BQUE7QUFlQSxJQUFBSyxRQUFBLEdBQUFOLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTSxpQkFBQSxHQUFBUCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQU8sV0FBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsb0JBQUEsR0FBQVQsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFTLFVB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
433
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdGhyb3R0bGUiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9VbmNvbnRyb2xsZWRUcmFuc2l0aW9uIiwiX1RyYW5zaXRpb25Nb2R1bGUiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl91c2VIZXJvIiwiX0FuaW1hdGVkRW50cmFuY2UiLCJfVHJhbnNpdGlvbiIsIl9PcmRlcmFibGVMaXN0TW9kdWxlIiwiX3VzZUV2ZW50cyIsIl9vd25FdmVudCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJfZXh0ZW5kcyIsImFzc2lnbiIsImJpbmQiLCJ0YXJnZXQiLCJpIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwic291cmNlIiwiYXBwbHkiLCJPcmRlcmFibGVMaXN0Q29udGV4dCIsImNyZWF0ZUNvbnRleHQiLCJPcmRlcmFibGVMaXN0UmVvcmRlck1vZGUiLCJleHBvcnRzIiwiY2xlYW5LZXlzIiwia2V5cyIsIm1hcCIsImEiLCJzcGxpdCIsIk9yZGVyYWJsZUxpc3QiLCJfcmVmIiwiY2hpbGRyZW4iLCJjbGFzc05hbWUiLCJtb2RlIiwiVkVSVElDQUwiLCJzaHJpbmtUb09uT3JkZXIiLCJyZW9yZGVyaW5nQ2xhc3NOYW1lIiwiY2xvbmVDbGFzc05hbWUiLCJwcm9wcyIsImF2YWlsYWJsZUtleXMiLCJhdmFpbGFibGVLZXlzRGVwIiwiam9pbiIsImluaXRpYWxpemVPcmRlciIsInVzZUNhbGxiYWNrIiwibWlzc2luZ09yZGVyS2V5cyIsImtleU9yZGVyIiwiZmlsdGVyIiwiaW5jbHVkZXMiLCJ1bmRlZmluZWQiLCJjdXJyZW50IiwiYW5jaG9yc0xpc3QiLCJ1c2VSZWYiLCJldmVudEVtaXR0ZXIiLCJ1c2VFdmVudHMiLCJjdXJyZW50Q2xvbmUiLCJjdXJyZW50V29ya2luZ0tleSIsInJvb3RSZWYiLCJfb3JkZXIiLCJzZXRPcmRlciIsInVzZVN0YXRlIiwidXNlRWZmZWN0Iiwib3JkZXIiLCJ1c2VNZW1vIiwiY3VycmVudE9yZGVyIiwibyIsImNsZWFuT3JkZXIiLCJvcmRlcklkIiwicm9vdEVsIiwiVFdPX0RJTUVOU0lPTlMiLCJsYXN0RWxlbWVudENoaWxkIiwiZmluZFBhcmVudEVsZW1lbnQiLCJwYXJlbnQiLCJwYXJlbnRFbGVtZW50IiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiRXJyb3IiLCJ1c2VMYXlvdXRFZmZlY3QiLCJzdHlsZSIsInNldFByb3BlcnR5IiwiY2FsY3VsYXRlUmVvcmRlcmluZyIsInRocm90dGxlIiwiZSIsImVscyIsImluZGV4T2ZLZXlJbkNsZWFuT3JkZXIiLCJpbmRleE9mIiwia2V5T2ZUaGVPdmVyRWxlbWVudCIsImlzRHJhZ2dpbmdPd25FbGVtZW50IiwiaXNBZnRlciIsImlzQmVmb3JlIiwiZGlzdGFuY2VGcm9tTGVmdCIsIm9mZnNldFgiLCJ3aWR0aE9mRWwiLCJjbGllbnRXaWR0aCIsIm9mZnNldCIsImRpc3RhbmNlRnJvbVRvcCIsIm9mZnNldFkiLCJoZWlnaHRPZkVsIiwiY2xpZW50SGVpZ2h0IiwiY2hlY2tJZkNhbk1vdmUiLCJrZXlPZk92ZXJFbGVtZW50IiwiaW5kZXhPZlRoZU5ld0VsZW1lbnQiLCJzaG91bGRUcmlnZ2VyUmVvcmRlcmluZyIsInAiLCJwcmV2aW91c0luZGV4IiwiaW5kZXhPZktleUluUHJvdmlkZWRPcmRlciIsIm9yZGVyV2l0aG91dEN1cnJlbnQiLCJzdGFydHNXaXRoIiwic3BsaWNlIiwiRGF0ZSIsIm5vdyIsInJlZ2lzdGVyTGlzdGVuZXJzIiwiQXJyYXkiLCJmcm9tIiwiY2FsY3VsYXRlUmVvcmRlcmluZ0NhbGwiLCJlbCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwidW5zdWJzY3JpYmUiLCJ0aW1lb3V0Iiwic2V0VGltZW91dCIsImNsZWFyVGltZW91dCIsIm9uQ2hhbmdlS2V5T3JkZXIiLCJjbGVhbk9yZGVyUmVmIiwib25BbmNob3JDbGljayIsIl9yZWYyIiwiYW5jaG9yIiwib3JkZXJhYmxlTGlzdEl0ZW1Gb3JBbmNob3IiLCJib3giLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJlbEluZGV4IiwiY2xvbmUiLCJjbG9uZU5vZGUiLCJzZXRBdHRyaWJ1dGUiLCJ3aWR0aCIsImhlaWdodCIsInRvcCIsImxlZnQiLCJjbGFzc0xpc3QiLCJhZGQiLCJTdHlsZXMiLCJtYXhIZWlnaHQiLCJjdXJyZW50T3JkZXJpbmciLCJyZW1vdmUiLCJ2aXNpYmxlIiwibW92ZW1lbnRDb250cm9sIiwieCIsIngxIiwieSIsInkxIiwidG91Y2hlcyIsInBhZ2VYIiwicGFnZVkiLCJkb2N1bWVudCIsImJvZHkiLCJhcHBlbmRDaGlsZCIsImRlbGV0ZUNsb25lIiwid2luZG93IiwidmlzaWJpbGl0eSIsInVuc2VsZWN0YWJsZSIsImVsSW52aXNpYmxlIiwiZmluZCIsImNvbnRhaW5zIiwiY2hpbGQiLCJzY3JvbGxIZWlnaHQiLCJ0cmFuc2l0aW9uSGVpZ2h0Iiwib25FbmQiLCJvd25FdmVudCIsImNsZWFuVXAiLCJyZW1vdmVQcm9wZXJ0eSIsImRpc3BhdGNoZXIiLCJvcmRlcmluZyIsIk1hdGgiLCJmbG9vciIsInRvU3RyaW5nIiwidHJhbnNpdGlvbiIsInRhcmdldEhlaWdodCIsImN1cnJlbnRIZWlnaHQiLCJvZmZzZXRUb3AiLCJwYWRkaW5nVG9wIiwibWluSGVpZ2h0IiwidG9TcHJlYWQiLCJjaGlsZHJlblRvUmVuZGVyIiwic29ydCIsImIiLCJyZWxhdGVkQW5jaG9yIiwicHJldmVudERlZmF1bHQiLCJtb3ZlQ2IiLCJ0b3VjaCIsImNsaWVudFgiLCJjbGllbnRZIiwiY3VycmVudEVsZW1lbnRJZHgiLCJmaW5kSW5kZXgiLCJjIiwicmVjdCIsInQiLCJ0b3VjaE1vdmVDYiIsInN0b3BQcm9wYWdhdGlvbiIsImRpc3BhdGNoRXZlbnQiLCJUb3VjaEV2ZW50IiwidHlwZSIsInJlbW92ZUNiIiwiYmluZEFuY2hvciIsInB1c2giLCJ1bmJpbmRBbmNob3IiLCJvbiIsInN1YnNjcmliZXIiLCJjcmVhdGVFbGVtZW50IiwiUHJvdmlkZXIiLCJ2YWx1ZSIsInJlZiIsInJvb3QiLCJzaHJpbmthYmxlIiwidHJhbnNpdGlvblR5cGUiLCJUcmFuc2l0aW9uQW5pbWF0aW9uVHlwZXMiLCJDVVNUT00iLCJjb25maWciLCJiYWNrd2FyZCIsImVsZW1lbnRFbnRlcmluZyIsImVsZW1lbnRFeGl0aW5nIiwiZm9yd2FyZCIsInN0dWJFbnRlcmluZyIsIlRyYW5zaXRpb25TdHlsZXMiLCJmYWRlT3V0IiwiY29udGVudENsYXNzTmFtZSIsIkZyYWdtZW50IiwiSGVyb1dyYXBwZXIiLCJpZCIsIl9yZWYzIiwiaGVyb1JlZiIsInVzZUhlcm8iLCJvbkhlcm9TdGFydCIsIl9jIiwiX28iLCJxdWVyeVNlbGVjdG9yQWxsIiwiZm9yRWFjaCIsImltZyIsIm9uSGVyb0Nsb25lZCIsIm9uSGVyb0VuZCIsInVzZU9yZGVyYWJsZUxpc3RBbmNob3IiLCJhbmNob3JSZWYiLCJjdHgiLCJ1c2VDb250ZXh0IiwidXNlT3JkZXJhYmxlRXZlbnRzIiwiZXZlbnRzIiwidW5zdWJzY3JpYmVycyIsImV2ZW50TmFtZSIsInUiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9PcmRlcmFibGVMaXN0L09yZGVyYWJsZUxpc3QudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0aHJvdHRsZSBmcm9tIFwibG9kYXNoL3Rocm90dGxlXCI7XG5pbXBvcnQgVW5jb250cm9sbGVkVHJhbnNpdGlvbiBmcm9tIFwiLi4vVW5jb250cm9sbGVkVHJhbnNpdGlvblwiO1xuaW1wb3J0IFRyYW5zaXRpb25TdHlsZXMgZnJvbSBcIi4uL1RyYW5zaXRpb24vVHJhbnNpdGlvbi5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IFJlYWN0LCB7XG4gIGNyZWF0ZUNvbnRleHQsXG4gIERldGFpbGVkSFRNTFByb3BzLFxuICBGcmFnbWVudCxcbiAgSFRNTEF0dHJpYnV0ZXMsXG4gIFByb3BzV2l0aENoaWxkcmVuLFxuICBSZWFjdEVsZW1lbnQsXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VDb250ZXh0LFxuICB1c2VFZmZlY3QsXG4gIHVzZUxheW91dEVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgdXNlSGVybyBmcm9tIFwiLi4vLi4vaG9va3MvdXNlSGVyb1wiO1xuaW1wb3J0IEFuaW1hdGVkRW50cmFuY2UgZnJvbSBcIi4uL0FuaW1hdGVkRW50cmFuY2VcIjtcbmltcG9ydCB7IFRyYW5zaXRpb25BbmltYXRpb25UeXBlcyB9IGZyb20gXCIuLi9UcmFuc2l0aW9uXCI7XG5pbXBvcnQgU3R5bGVzIGZyb20gXCIuL09yZGVyYWJsZUxpc3QubW9kdWxlLnNjc3NcIjtcbmltcG9ydCB1c2VFdmVudHMgZnJvbSBcIi4uLy4uL2hvb2tzL3V0aWxpdHkvdXNlRXZlbnRzXCI7XG5pbXBvcnQgb3duRXZlbnQgZnJvbSBcIi4uLy4uL3V0aWxzL293bkV2ZW50XCI7XG5cbnR5cGUgRXZlbnRzID0gXCJvcmRlci1zdG9wXCIgfCBcIm9yZGVyLXN0YXJ0XCI7XG5cbmNvbnN0IE9yZGVyYWJsZUxpc3RDb250ZXh0ID0gY3JlYXRlQ29udGV4dDx7XG4gIGJpbmRBbmNob3I6IChiaW5kRWxlbWVudDogSFRNTERpdkVsZW1lbnQpID0+IHZvaWQ7XG4gIHVuYmluZEFuY2hvcjogKGJpbmRFbGVtZW50OiBIVE1MRGl2RWxlbWVudCkgPT4gdm9pZDtcbiAgb246IChldmVudE5hbWU6IEV2ZW50cywgY2I6ICgpID0+IHZvaWQpID0+ICgpID0+IHZvaWQ7XG59PihudWxsIGFzIGFueSk7XG5cbmV4cG9ydCBlbnVtIE9yZGVyYWJsZUxpc3RSZW9yZGVyTW9kZSB7XG4gIFZFUlRJQ0FMID0gXCJ2XCIsXG4gIFRXT19ESU1FTlNJT05TID0gXCJodlwiLFxufVxuXG5mdW5jdGlvbiBjbGVhbktleXMoa2V5czogc3RyaW5nW10pIHtcbiAgcmV0dXJuIGtleXMubWFwKChhKSA9PiBhLnNwbGl0KFwiO1wiKVswXSk7XG59XG5cbi8qKlxuICogVGhpcyBjb21wb25lbnQgcmVjZWl2ZXMgYSBsaXN0IG9mIGtleWVkIGVsZW1lbnRzIGFuZCBvcmRlcnMgaXQgYmFzZWQgb2YgdGhlIG9yZGVyIHByb3ZpZGVkIHZpYSB0aGUgcHJvcCBcImtleU9yZGVyXCJcbiAqKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIE9yZGVyYWJsZUxpc3Qoe1xuICBjaGlsZHJlbixcbiAgY2xhc3NOYW1lID0gXCJcIixcbiAgbW9kZSA9IE9yZGVyYWJsZUxpc3RSZW9yZGVyTW9kZS5WRVJUSUNBTCxcbiAgc2hyaW5rVG9Pbk9yZGVyLFxuICByZW9yZGVyaW5nQ2xhc3NOYW1lLFxuICBjbG9uZUNsYXNzTmFtZSxcbiAgLi4ucHJvcHNcbn06IHtcbiAgY2hpbGRyZW46IFJlYWN0RWxlbWVudFtdO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIG1vZGU/OiBPcmRlcmFibGVMaXN0UmVvcmRlck1vZGU7XG4gIC8qKlxuICAgKiBJZiBwcm92aWRlZCwgbWFrZXMgdGhlIGVsZW1lbnRzIHNocmluayB0byB0aGlzIHZhbHVlIGluIHB4IHdoZW4gb3JkZXJpbmcgZWxlbWVudHNcbiAgICovXG4gIHNocmlua1RvT25PcmRlcj86IG51bWJlcjtcblxuICAvKipcbiAgICogQSBjbGFzcyB0byBhcHBseSB3aGVuIHJlb3JkZXJpbmdcbiAgICovXG4gIHJlb3JkZXJpbmdDbGFzc05hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgY2xhc3MgdG8gYXBwbHkgdG8gdGhlIGNsb25lIGVsXG4gICAqL1xuICBjbG9uZUNsYXNzTmFtZT86IHN0cmluZztcbn0gJiAoXG4gIHwge1xuICAgICAga2V5T3JkZXI/OiBzdHJpbmdbXTtcbiAgICAgIG9uQ2hhbmdlS2V5T3JkZXI6IChuZXdPcmRlcjogc3RyaW5nW10pID0+IHZvaWQ7XG4gICAgfVxuICB8IHtcbiAgICAgIGN1cnJlbnRPcmRlcj86IHN0cmluZ1tdO1xuICAgIH1cbikgJlxuICBEZXRhaWxlZEhUTUxQcm9wczxIVE1MQXR0cmlidXRlczxIVE1MRGl2RWxlbWVudD4sIEhUTUxEaXZFbGVtZW50Pikge1xuICBjb25zdCBhdmFpbGFibGVLZXlzID0gY2hpbGRyZW4ubWFwKChhKSA9PiBhLmtleSBhcyBzdHJpbmcpO1xuICBjb25zdCBhdmFpbGFibGVLZXlzRGVwID0gYXZhaWxhYmxlS2V5cy5qb2luKFwiLFwiKTtcbiAgY29uc3QgaW5pdGlhbGl6ZU9yZGVyID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGNvbnN0IG1pc3NpbmdPcmRlcktleXMgPVxuICAgICAgXCJrZXlPcmRlclwiIGluIHByb3BzICYmIHByb3BzLmtleU9yZGVyXG4gICAgICAgID8gYXZhaWxhYmxlS2V5cy5maWx0ZXIoKGEpID0+ICFwcm9wcy5rZXlPcmRlciEuaW5jbHVkZXMoYSkpXG4gICAgICAgIDogW107XG5cbiAgICByZXR1cm4gKFxuICAgICAgKFwia2V5T3JkZXJcIiBpbiBwcm9wcyAmJiBwcm9wcy5rZXlPcmRlclxuICAgICAgICA/IFsuLi5wcm9wcy5rZXlPcmRlciwgLi4ubWlzc2luZ09yZGVyS2V5c11cbiAgICAgICAgOiB1bmRlZmluZWQpIHx8IGF2YWlsYWJsZUtleXNcbiAgICApO1xuICB9LCBbYXZhaWxhYmxlS2V5c0RlcCwgKHByb3BzIGFzIGFueSkua2V5T3JkZXJdKTtcbiAgY29uc3QgeyBjdXJyZW50OiBhbmNob3JzTGlzdCB9ID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50W10+KFtdKTtcbiAgY29uc3QgZXZlbnRFbWl0dGVyID0gdXNlRXZlbnRzPEV2ZW50cywgeyBbayBpbiBFdmVudHNdOiBbXSB9PigpO1xuICBjb25zdCBjdXJyZW50Q2xvbmUgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgY29uc3QgY3VycmVudFdvcmtpbmdLZXkgPSB1c2VSZWY8c3RyaW5nPih1bmRlZmluZWQpO1xuICBjb25zdCByb290UmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsIGFzIGFueSk7XG4gIGNvbnN0IFtfb3JkZXIsIHNldE9yZGVyXSA9IHVzZVN0YXRlKGluaXRpYWxpemVPcmRlcik7XG4gIHVzZUVmZmVjdCgoKSA9PiBzZXRPcmRlcihpbml0aWFsaXplT3JkZXIoKSksIFtpbml0aWFsaXplT3JkZXJdKTtcblxuICBjb25zdCBvcmRlciA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICBcImN1cnJlbnRPcmRlclwiIGluIHByb3BzID8gcHJvcHMuY3VycmVudE9yZGVyIHx8IF9vcmRlciA6IF9vcmRlclxuICAgICkuZmlsdGVyKChvKSA9PiBvLmluY2x1ZGVzKFwiO1wiKSB8fCBhdmFpbGFibGVLZXlzLmluY2x1ZGVzKG8pKTtcbiAgfSwgWyhwcm9wcyBhcyBhbnkpLmN1cnJlbnRPcmRlciwgX29yZGVyLCBhdmFpbGFibGVLZXlzRGVwXSk7XG4gIGNvbnN0IGNsZWFuT3JkZXIgPSB1c2VNZW1vKCgpID0+IG9yZGVyLm1hcCgoYSkgPT4gYS5zcGxpdChcIjtcIilbMF0pLCBbb3JkZXJdKTtcbiAgY29uc3Qgb3JkZXJJZCA9IHVzZU1lbW8oKCkgPT4gXCJrZXktXCIgKyBjbGVhbk9yZGVyLmpvaW4oXCJcIiksIFtjbGVhbk9yZGVyXSk7XG4gIGZ1bmN0aW9uIHJvb3RFbCgpIHtcbiAgICBpZiAobW9kZSA9PT0gT3JkZXJhYmxlTGlzdFJlb3JkZXJNb2RlLlRXT19ESU1FTlNJT05TKVxuICAgICAgcmV0dXJuIHJvb3RSZWYuY3VycmVudCEubGFzdEVsZW1lbnRDaGlsZCFcbiAgICAgICAgLmxhc3RFbGVtZW50Q2hpbGQhIGFzIEhUTUxEaXZFbGVtZW50O1xuICAgIHJldHVybiByb290UmVmLmN1cnJlbnQhIGFzIEhUTUxEaXZFbGVtZW50O1xuICB9XG5cbiAgY29uc3QgZmluZFBhcmVudEVsZW1lbnQgPSAodGFyZ2V0OiBIVE1MRGl2RWxlbWVudCkgPT4ge1xuICAgIGxldCBwYXJlbnQ6IEhUTUxEaXZFbGVtZW50ID0gdGFyZ2V0IGFzIEhUTUxEaXZFbGVtZW50O1xuICAgIHdoaWxlIChwYXJlbnQucGFyZW50RWxlbWVudCAhPT0gcm9vdEVsKCkpIHtcbiAgICAgIGlmIChwYXJlbnQucGFyZW50RWxlbWVudCA9PT0gbnVsbCkgYnJlYWs7XG4gICAgICBwYXJlbnQgPSBwYXJlbnQucGFyZW50RWxlbWVudCBhcyBhbnk7XG4gICAgfVxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJkZXZlbG9wbWVudFwiICYmIHBhcmVudCA9PT0gbnVsbClcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJJdCBzZWVtcyBsaWtlIHdlIGNvdWxkIG5vdCBmaW5kIGEgcmVsYXRpb24gYmV0d2VlbiB0aGlzIGVsZW1lbnQgYW5kIHRoZSByb290IGxpc3QuIEFyZSB5b3UgdXNpbmcgcG9ydGFscyBtYXliZT9cIlxuICAgICAgKTtcbiAgICByZXR1cm4gcGFyZW50O1xuICB9O1xuXG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHNocmlua1RvT25PcmRlcilcbiAgICAgIHJvb3RFbCgpLnN0eWxlLnNldFByb3BlcnR5KFwiLS1zaHJpbmstdG9cIiwgYCR7c2hyaW5rVG9Pbk9yZGVyfXB4YCk7XG4gIH0sIFtzaHJpbmtUb09uT3JkZXJdKTtcblxuICBjb25zdCBjYWxjdWxhdGVSZW9yZGVyaW5nID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIHRocm90dGxlKChlOiBhbnksIGVsczogSFRNTERpdkVsZW1lbnRbXSwgY3VycmVudE9yZGVyOiBzdHJpbmdbXSkgPT4ge1xuICAgICAgaWYgKGVscy5sZW5ndGggPiBjdXJyZW50T3JkZXIubGVuZ3RoIHx8ICFjdXJyZW50V29ya2luZ0tleS5jdXJyZW50KVxuICAgICAgICByZXR1cm47XG4gICAgICBjb25zdCBwYXJlbnQgPSBmaW5kUGFyZW50RWxlbWVudChlLnRhcmdldCk7XG4gICAgICBjb25zdCBpbmRleE9mS2V5SW5DbGVhbk9yZGVyID0gZWxzLmluZGV4T2YocGFyZW50KTtcbiAgICAgIGNvbnN0IGtleU9mVGhlT3ZlckVsZW1lbnQgPSBjdXJyZW50T3JkZXJbaW5kZXhPZktleUluQ2xlYW5PcmRlcl07XG4gICAgICBjb25zdCBpc0RyYWdnaW5nT3duRWxlbWVudCA9XG4gICAgICAgIGN1cnJlbnRXb3JraW5nS2V5LmN1cnJlbnQgPT09IGtleU9mVGhlT3ZlckVsZW1lbnQ7XG4gICAgICBpZiAoaW5kZXhPZktleUluQ2xlYW5PcmRlciA9PT0gLTEgfHwga2V5T2ZUaGVPdmVyRWxlbWVudCA9PT0gdW5kZWZpbmVkKVxuICAgICAgICByZXR1cm47XG4gICAgICBpZiAoIWlzRHJhZ2dpbmdPd25FbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IHsgaXNBZnRlciwgaXNCZWZvcmUgfSA9ICgoKSA9PiB7XG4gICAgICAgICAgaWYgKG1vZGUgPT09IE9yZGVyYWJsZUxpc3RSZW9yZGVyTW9kZS5UV09fRElNRU5TSU9OUykge1xuICAgICAgICAgICAgY29uc3QgZGlzdGFuY2VGcm9tTGVmdCA9IGUub2Zmc2V0WDtcbiAgICAgICAgICAgIGNvbnN0IHdpZHRoT2ZFbCA9IHBhcmVudC5jbGllbnRXaWR0aDtcbiAgICAgICAgICAgIGNvbnN0IG9mZnNldCA9IHdpZHRoT2ZFbCAqIDAuMjU7XG4gICAgICAgICAgICBjb25zdCBpc0FmdGVyID0gZGlzdGFuY2VGcm9tTGVmdCA+IHdpZHRoT2ZFbCAtIG9mZnNldDtcbiAgICAgICAgICAgIGNvbnN0IGlzQmVmb3JlID0gZGlzdGFuY2VGcm9tTGVmdCA8IG9mZnNldDtcbiAgICAgICAgICAgIHJldHVybiB7IGlzQWZ0ZXIsIGlzQmVmb3JlIH07XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGRpc3RhbmNlRnJvbVRvcCA9IGUub2Zmc2V0WTtcbiAgICAgICAgICAgIGNvbnN0IGhlaWdodE9mRWwgPSBwYXJlbnQuY2xpZW50SGVpZ2h0O1xuICAgICAgICAgICAgY29uc3Qgb2Zmc2V0ID0gaGVpZ2h0T2ZFbCAqIDAuMjU7XG4gICAgICAgICAgICBjb25zdCBpc0FmdGVyID0gZGlzdGFuY2VGcm9tVG9wID4gaGVpZ2h0T2ZFbCAtIG9mZnNldDtcbiAgICAgICAgICAgIGNvbnN0IGlzQmVmb3JlID0gZGlzdGFuY2VGcm9tVG9wIDwgb2Zmc2V0O1xuICAgICAgICAgICAgcmV0dXJuIHsgaXNBZnRlciwgaXNCZWZvcmUgfTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pKCk7XG5cbiAgICAgICAgY29uc3QgY2hlY2tJZkNhbk1vdmUgPSAoa2V5T2ZPdmVyRWxlbWVudD86IHN0cmluZykgPT4ge1xuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBrZXlPZk92ZXJFbGVtZW50ID09PSB1bmRlZmluZWQgfHxcbiAgICAgICAgICAgIGtleU9mT3ZlckVsZW1lbnQgIT09IGN1cnJlbnRXb3JraW5nS2V5LmN1cnJlbnRcbiAgICAgICAgICApO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBpbmRleE9mVGhlTmV3RWxlbWVudCA9XG4gICAgICAgICAgaW5kZXhPZktleUluQ2xlYW5PcmRlciArIChpc0FmdGVyID8gMSA6IC0xKTtcbiAgICAgICAgY29uc3Qgc2hvdWxkVHJpZ2dlclJlb3JkZXJpbmcgPVxuICAgICAgICAgIChpc0FmdGVyIHx8IGlzQmVmb3JlKSAmJlxuICAgICAgICAgIGNoZWNrSWZDYW5Nb3ZlKGN1cnJlbnRPcmRlcltpbmRleE9mVGhlTmV3RWxlbWVudF0pO1xuICAgICAgICBpZiAoc2hvdWxkVHJpZ2dlclJlb3JkZXJpbmcpIHtcbiAgICAgICAgICBzZXRPcmRlcigocCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcHJldmlvdXNJbmRleCA9IGN1cnJlbnRPcmRlci5pbmRleE9mKFxuICAgICAgICAgICAgICBjdXJyZW50V29ya2luZ0tleS5jdXJyZW50IVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4T2ZLZXlJblByb3ZpZGVkT3JkZXIgPVxuICAgICAgICAgICAgICBjbGVhbktleXMocCkuaW5kZXhPZihrZXlPZlRoZU92ZXJFbGVtZW50KTtcbiAgICAgICAgICAgIGxldCBpbmRleE9mVGhlTmV3RWxlbWVudCA9XG4gICAgICAgICAgICAgIGluZGV4T2ZLZXlJblByb3ZpZGVkT3JkZXIgKyAoaXNCZWZvcmUgPyAtMSA6IDApO1xuICAgICAgICAgICAgaWYgKHByZXZpb3VzSW5kZXggPiBpbmRleE9mVGhlTmV3RWxlbWVudCkgaW5kZXhPZlRoZU5ld0VsZW1lbnQrKztcbiAgICAgICAgICAgIGNvbnN0IG9yZGVyV2l0aG91dEN1cnJlbnQgPSBwLmZpbHRlcigoYSkgPT4ge1xuICAgICAgICAgICAgICBpZiAoYS5zdGFydHNXaXRoKGAke2N1cnJlbnRXb3JraW5nS2V5LmN1cnJlbnR9O2ApKSByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgIHJldHVybiBhICE9PSBjdXJyZW50V29ya2luZ0tleS5jdXJyZW50O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBvcmRlcldpdGhvdXRDdXJyZW50LnNwbGljZShcbiAgICAgICAgICAgICAgaW5kZXhPZlRoZU5ld0VsZW1lbnQsXG4gICAgICAgICAgICAgIDAsXG4gICAgICAgICAgICAgIGAke2N1cnJlbnRXb3JraW5nS2V5LmN1cnJlbnR9OyR7RGF0ZS5ub3coKX1gXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcmV0dXJuIG9yZGVyV2l0aG91dEN1cnJlbnQ7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCAxMDAwIC8gNjApO1xuICB9LCBbXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBmdW5jdGlvbiByZWdpc3Rlckxpc3RlbmVycygpIHtcbiAgICAgIGNvbnN0IGVscyA9IEFycmF5LmZyb20ocm9vdEVsKCkhLmNoaWxkcmVuKSBhcyBIVE1MRGl2RWxlbWVudFtdO1xuICAgICAgY29uc3QgY2FsY3VsYXRlUmVvcmRlcmluZ0NhbGwgPSAoZTogYW55KSA9PiB7XG4gICAgICAgIGNvbnN0IGVscyA9IEFycmF5LmZyb20ocm9vdEVsKCkhLmNoaWxkcmVuKSBhcyBIVE1MRGl2RWxlbWVudFtdO1xuICAgICAgICBjYWxjdWxhdGVSZW9yZGVyaW5nKGUsIGVscywgY2xlYW5PcmRlcik7XG4gICAgICB9O1xuICAgICAgZm9yIChsZXQgZWwgb2YgZWxzKVxuICAgICAgICBlbC5hZGRFdmVudExpc3RlbmVyKFwibW91c2Vtb3ZlXCIsIGNhbGN1bGF0ZVJlb3JkZXJpbmdDYWxsKTtcblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgZm9yIChsZXQgZWwgb2YgZWxzKVxuICAgICAgICAgIGVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZW1vdmVcIiwgY2FsY3VsYXRlUmVvcmRlcmluZ0NhbGwpO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAobW9kZSA9PT0gT3JkZXJhYmxlTGlzdFJlb3JkZXJNb2RlLlZFUlRJQ0FMKSB7XG4gICAgICByZXR1cm4gcmVnaXN0ZXJMaXN0ZW5lcnMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IHVuc3Vic2NyaWJlOiAoKSA9PiB2b2lkO1xuICAgICAgbGV0IHRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdW5zdWJzY3JpYmUgPSByZWdpc3Rlckxpc3RlbmVycygpO1xuICAgICAgfSwgMjUwKTtcbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0KTtcbiAgICAgICAgaWYgKHVuc3Vic2NyaWJlKSB1bnN1YnNjcmliZSgpO1xuICAgICAgfTtcbiAgICB9XG4gIH0sIFtjbGVhbk9yZGVyXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoXCJvbkNoYW5nZUtleU9yZGVyXCIgaW4gcHJvcHMpIHByb3BzLm9uQ2hhbmdlS2V5T3JkZXIoY2xlYW5LZXlzKF9vcmRlcikpO1xuICB9LCBbX29yZGVyXSk7XG5cbiAgY29uc3QgY2xlYW5PcmRlclJlZiA9IHVzZVJlZihjbGVhbk9yZGVyKTtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjbGVhbk9yZGVyUmVmLmN1cnJlbnQgPSBjbGVhbk9yZGVyO1xuICB9LCBbY2xlYW5PcmRlcl0pO1xuICBjb25zdCBvbkFuY2hvckNsaWNrID0gdXNlQ2FsbGJhY2soXG4gICAgKHsgdGFyZ2V0OiBhbmNob3IgfTogUGljazxNb3VzZUV2ZW50LCBcInRhcmdldFwiPikgPT4ge1xuICAgICAgbGV0IG9mZnNldDogW3g6IG51bWJlciwgeTogbnVtYmVyXTtcbiAgICAgIGNvbnN0IG9yZGVyYWJsZUxpc3RJdGVtRm9yQW5jaG9yID0gZmluZFBhcmVudEVsZW1lbnQoXG4gICAgICAgIGFuY2hvciBhcyBIVE1MRGl2RWxlbWVudFxuICAgICAgKTtcbiAgICAgIGNvbnN0IGJveCA9IG9yZGVyYWJsZUxpc3RJdGVtRm9yQW5jaG9yLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgY29uc3QgZWxzID0gQXJyYXkuZnJvbShyb290RWwoKSEuY2hpbGRyZW4pIGFzIEhUTUxEaXZFbGVtZW50W107XG4gICAgICBjb25zdCBlbEluZGV4ID0gZWxzLmluZGV4T2Yob3JkZXJhYmxlTGlzdEl0ZW1Gb3JBbmNob3IpO1xuXG4gICAgICBjb25zdCBjbG9uZSA9IG9yZGVyYWJsZUxpc3RJdGVtRm9yQW5jaG9yLmNsb25lTm9kZShcbiAgICAgICAgdHJ1ZVxuICAgICAgKSBhcyBIVE1MRGl2RWxlbWVudDtcbiAgICAgIGN1cnJlbnRDbG9uZS5jdXJyZW50ID0gY2xvbmU7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwiZGV2ZWxvcG1lbnRcIilcbiAgICAgICAgY2xvbmUuc2V0QXR0cmlidXRlKFwiZGF0YS10ZXN0aWRcIiwgXCJvcmRlcmFibGUtbGlzdC1jbG9uZVwiKTtcbiAgICAgIGNsb25lLnNldEF0dHJpYnV0ZShcImRhdGEtb3JkZXJhYmxlaWRcIiwgXCJvcmRlcmFibGUtbGlzdC1jbG9uZVwiKTtcbiAgICAgIGNsb25lLnN0eWxlLndpZHRoID0gYCR7Ym94LndpZHRofXB4YDtcbiAgICAgIGNsb25lLnN0eWxlLmhlaWdodCA9IGAke2JveC5oZWlnaHR9cHhgO1xuICAgICAgY2xvbmUuc3R5bGUudG9wID0gYCR7Ym94LnRvcH1weGA7XG4gICAgICBjbG9uZS5zdHlsZS5sZWZ0ID0gYCR7Ym94LmxlZnR9cHhgO1xuICAgICAgY2xvbmUuY2xhc3NMaXN0LmFkZChTdHlsZXMuY2xvbmUpO1xuICAgICAgaWYgKHNocmlua1RvT25PcmRlcikgY2xvbmUuc3R5bGUubWF4SGVpZ2h0ID0gYCR7Ym94LmhlaWdodH1weGA7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgaWYgKGNsb25lQ2xhc3NOYW1lKSBjbG9uZS5jbGFzc0xpc3QuYWRkKGNsb25lQ2xhc3NOYW1lKTtcbiAgICAgICAgaWYgKHNocmlua1RvT25PcmRlcikgY2xvbmUuc3R5bGUubWF4SGVpZ2h0ID0gYCR7c2hyaW5rVG9Pbk9yZGVyfXB4YDtcbiAgICAgIH0sIDApO1xuXG4gICAgICBvcmRlcmFibGVMaXN0SXRlbUZvckFuY2hvci5jbGFzc0xpc3QuYWRkKFN0eWxlcy5jdXJyZW50T3JkZXJpbmcpO1xuICAgICAgb3JkZXJhYmxlTGlzdEl0ZW1Gb3JBbmNob3IuY2xhc3NMaXN0LnJlbW92ZShTdHlsZXMudmlzaWJsZSk7XG5cbiAgICAgIGNvbnN0IG1vdmVtZW50Q29udHJvbCA9IChlOiBNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCkgPT4ge1xuICAgICAgICBjb25zdCB7IHg6IHgxLCB5OiB5MSB9ID1cbiAgICAgICAgICBcInRvdWNoZXNcIiBpbiBlID8geyB4OiBlLnRvdWNoZXNbMF0ucGFnZVgsIHk6IGUudG91Y2hlc1swXS5wYWdlWSB9IDogZTtcbiAgICAgICAgaWYgKCFvZmZzZXQpIG9mZnNldCA9IFt4MSAtIGJveC5sZWZ0LCB5MSAtIGJveC50b3BdO1xuXG4gICAgICAgIGNvbnN0IFtvZmZzZXRYLCBvZmZzZXRZXSA9IG9mZnNldDtcbiAgICAgICAgY2xvbmUuc3R5bGUudG9wID0gYCR7eTEgLSBvZmZzZXRZfXB4YDtcbiAgICAgICAgY2xvbmUuc3R5bGUubGVmdCA9IGAke3gxIC0gb2Zmc2V0WH1weGA7XG4gICAgICB9O1xuXG4gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGNsb25lKTtcbiAgICAgIGNvbnN0IGRlbGV0ZUNsb25lID0gKCkgPT4ge1xuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlbW92ZVwiLCBtb3ZlbWVudENvbnRyb2wpO1xuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRvdWNobW92ZVwiLCBtb3ZlbWVudENvbnRyb2wpO1xuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRvdWNoZW5kXCIsIGRlbGV0ZUNsb25lKTtcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZXVwXCIsIGRlbGV0ZUNsb25lKTtcbiAgICAgICAgb3JkZXJhYmxlTGlzdEl0ZW1Gb3JBbmNob3Iuc3R5bGUudmlzaWJpbGl0eSA9IFwiaW5pdGlhbFwiO1xuICAgICAgICBjdXJyZW50V29ya2luZ0tleS5jdXJyZW50ID0gdW5kZWZpbmVkO1xuICAgICAgICB3aW5kb3cuZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKFN0eWxlcy51bnNlbGVjdGFibGUpO1xuICAgICAgICB7XG4gICAgICAgICAgY29uc3QgZWxzID0gQXJyYXkuZnJvbShyb290RWwoKSEuY2hpbGRyZW4pIGFzIEhUTUxEaXZFbGVtZW50W107XG4gICAgICAgICAgY29uc3QgZWxJbnZpc2libGUgPSBlbHMuZmluZChcbiAgICAgICAgICAgIChhKSA9PlxuICAgICAgICAgICAgICAhYS5jbGFzc0xpc3QuY29udGFpbnMoU3R5bGVzLnZpc2libGUpICYmXG4gICAgICAgICAgICAgIGEuc3R5bGUubWF4SGVpZ2h0ICE9PSBcIjBweFwiXG4gICAgICAgICAgKSE7XG4gICAgICAgICAgaWYgKHNocmlua1RvT25PcmRlcikge1xuICAgICAgICAgICAgY29uc3QgY2hpbGQgPSBlbEludmlzaWJsZS5sYXN0RWxlbWVudENoaWxkIGFzIEhUTUxEaXZFbGVtZW50O1xuICAgICAgICAgICAgY2hpbGQuc3R5bGUubWF4SGVpZ2h0ID0gYCR7Y2hpbGQuc2Nyb2xsSGVpZ2h0fXB4YDtcbiAgICAgICAgICAgIGNoaWxkLmNsYXNzTGlzdC5hZGQoU3R5bGVzLnRyYW5zaXRpb25IZWlnaHQpO1xuICAgICAgICAgICAgY29uc3Qgb25FbmQgPSBvd25FdmVudCgoKSA9PiB7XG4gICAgICAgICAgICAgIGNoaWxkLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0cmFuc2l0aW9uZW5kXCIsIG9uRW5kKTtcbiAgICAgICAgICAgICAgY2hpbGQuc3R5bGUubWF4SGVpZ2h0ID0gYGluaXRpYWxgO1xuICAgICAgICAgICAgICBjaGlsZC5jbGFzc0xpc3QucmVtb3ZlKFN0eWxlcy50cmFuc2l0aW9uSGVpZ2h0KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY2hpbGQuYWRkRXZlbnRMaXN0ZW5lcihcInRyYW5zaXRpb25lbmRcIiwgb25FbmQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBib3ggPSBlbEludmlzaWJsZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICBmdW5jdGlvbiBjbGVhblVwKCkge1xuICAgICAgICAgICAgaWYgKHNocmlua1RvT25PcmRlcikge1xuICAgICAgICAgICAgICByb290RWwoKS5zdHlsZS5yZW1vdmVQcm9wZXJ0eShcInBhZGRpbmctdG9wXCIpO1xuICAgICAgICAgICAgICByb290RWwoKS5zdHlsZS5yZW1vdmVQcm9wZXJ0eShcIm1pbi1oZWlnaHRcIik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGV2ZW50RW1pdHRlci5kaXNwYXRjaGVyKFwib3JkZXItc3RvcFwiKTtcbiAgICAgICAgICAgIHJvb3RFbCgpLmNsYXNzTGlzdC5yZW1vdmUoU3R5bGVzLm9yZGVyaW5nKTtcbiAgICAgICAgICAgIGlmIChyZW9yZGVyaW5nQ2xhc3NOYW1lKVxuICAgICAgICAgICAgICByb290RWwoKS5jbGFzc0xpc3QucmVtb3ZlKHJlb3JkZXJpbmdDbGFzc05hbWUpO1xuICAgICAgICAgICAgZm9yIChsZXQgZWwgb2YgZWxzKSBlbC5jbGFzc0xpc3QucmVtb3ZlKFN0eWxlcy52aXNpYmxlKTtcbiAgICAgICAgICAgIGNsb25lLnJlbW92ZSgpO1xuICAgICAgICAgICAgY3VycmVudENsb25lLmN1cnJlbnQgPSBudWxsO1xuICAgICAgICAgICAgZm9yIChsZXQgZWwgb2YgQXJyYXkuZnJvbShlbEludmlzaWJsZS5jaGlsZHJlbikgYXMgSFRNTERpdkVsZW1lbnRbXSlcbiAgICAgICAgICAgICAgZWwuc3R5bGUuaGVpZ2h0ID0gXCJcIjtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgY2xvbmUuc3R5bGUudG9wLnN0YXJ0c1dpdGgoTWF0aC5mbG9vcihib3gudG9wKS50b1N0cmluZygpKSAmJlxuICAgICAgICAgICAgY2xvbmUuc3R5bGUubGVmdC5zdGFydHNXaXRoKE1hdGguZmxvb3IoYm94LmxlZnQpLnRvU3RyaW5nKCkpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBjbGVhblVwKCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNsb25lLnN0eWxlLnRvcCA9IGAke2JveC50b3B9cHhgO1xuICAgICAgICAgICAgY2xvbmUuc3R5bGUubGVmdCA9IGAke2JveC5sZWZ0fXB4YDtcbiAgICAgICAgICAgIGNsb25lLnN0eWxlLnRyYW5zaXRpb24gPSBgdG9wIDUwMG1zIGxpbmVhciwgbGVmdCA1MDBtcyBsaW5lYXJgO1xuICAgICAgICAgICAgY2xvbmUuYWRkRXZlbnRMaXN0ZW5lcihcInRyYW5zaXRpb25lbmRcIiwgKCkgPT4ge1xuICAgICAgICAgICAgICBjbGVhblVwKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICBmb3IgKGxldCBlbCBvZiBlbHMpIHtcbiAgICAgICAgZWwuY2xhc3NMaXN0LmFkZChTdHlsZXMudmlzaWJsZSk7XG4gICAgICB9XG4gICAgICBpZiAoc2hyaW5rVG9Pbk9yZGVyKSB7XG4gICAgICAgIGZvciAobGV0IGVsIG9mIGVscykgZWwuc3R5bGUubWF4SGVpZ2h0ID0gYCR7ZWwuc2Nyb2xsSGVpZ2h0fXB4YDtcbiAgICAgICAgY29uc3QgdGFyZ2V0SGVpZ2h0ID0gZWxJbmRleCAqIHNocmlua1RvT25PcmRlcjtcbiAgICAgICAgY29uc3QgY3VycmVudEhlaWdodCA9XG4gICAgICAgICAgb3JkZXJhYmxlTGlzdEl0ZW1Gb3JBbmNob3Iub2Zmc2V0VG9wIC0gZWxzWzBdLm9mZnNldFRvcDtcbiAgICAgICAgY29uc3QgcGFkZGluZ1RvcCA9IGN1cnJlbnRIZWlnaHQgLSB0YXJnZXRIZWlnaHQ7XG4gICAgICAgIHJvb3RFbCgpLnN0eWxlLnBhZGRpbmdUb3AgPSBgJHtwYWRkaW5nVG9wfXB4YDtcbiAgICAgICAgcm9vdEVsKCkuc3R5bGUubWluSGVpZ2h0ID0gYCR7cm9vdEVsKCkuY2xpZW50SGVpZ2h0fXB4YDtcbiAgICAgIH1cbiAgICAgIG9yZGVyYWJsZUxpc3RJdGVtRm9yQW5jaG9yLnN0eWxlLnZpc2liaWxpdHkgPSBcImhpZGRlblwiO1xuICAgICAgb3JkZXJhYmxlTGlzdEl0ZW1Gb3JBbmNob3IuY2xhc3NMaXN0LnJlbW92ZShTdHlsZXMudmlzaWJsZSk7XG4gICAgICByb290RWwoKS5jbGFzc0xpc3QuYWRkKFN0eWxlcy5vcmRlcmluZyk7XG4gICAgICBpZiAocmVvcmRlcmluZ0NsYXNzTmFtZSkgcm9vdEVsKCkuY2xhc3NMaXN0LmFkZChyZW9yZGVyaW5nQ2xhc3NOYW1lKTtcbiAgICAgIGN1cnJlbnRXb3JraW5nS2V5LmN1cnJlbnQgPSBjbGVhbk9yZGVyUmVmLmN1cnJlbnRbZWxJbmRleF07XG4gICAgICBldmVudEVtaXR0ZXIuZGlzcGF0Y2hlcihcIm9yZGVyLXN0YXJ0XCIpO1xuICAgICAgd2luZG93LmRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZChTdHlsZXMudW5zZWxlY3RhYmxlKTtcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwibW91c2V1cFwiLCBkZWxldGVDbG9uZSk7XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlbW92ZVwiLCBtb3ZlbWVudENvbnRyb2wpO1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaGVuZFwiLCBkZWxldGVDbG9uZSk7XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInRvdWNobW92ZVwiLCBtb3ZlbWVudENvbnRyb2wpO1xuICAgIH0sXG4gICAgW11cbiAgKTtcblxuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChjdXJyZW50Q2xvbmUuY3VycmVudCkge1xuICAgICAgY29uc3QgZWxzID0gQXJyYXkuZnJvbShyb290RWwoKSEuY2hpbGRyZW4pIGFzIEhUTUxEaXZFbGVtZW50W107XG4gICAgICBjb25zdCBlbEludmlzaWJsZSA9IGVscy5maW5kKFxuICAgICAgICAoYSkgPT5cbiAgICAgICAgICAhYS5jbGFzc0xpc3QuY29udGFpbnMoU3R5bGVzLnZpc2libGUpICYmIGEuc3R5bGUubWF4SGVpZ2h0ICE9PSBcIjBweFwiXG4gICAgICApITtcbiAgICAgIChlbEludmlzaWJsZS5jaGlsZHJlblswXSBhcyBIVE1MRGl2RWxlbWVudCkuc3R5bGUuaGVpZ2h0ID0gYCR7XG4gICAgICAgIGN1cnJlbnRDbG9uZS5jdXJyZW50IS5jbGllbnRIZWlnaHRcbiAgICAgIH1weGA7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgKGVsSW52aXNpYmxlLmNoaWxkcmVuWzFdIGFzIEhUTUxEaXZFbGVtZW50KS5zdHlsZS5oZWlnaHQgPSBgJHtcbiAgICAgICAgICBjdXJyZW50Q2xvbmUuY3VycmVudCEuY2xpZW50SGVpZ2h0XG4gICAgICAgIH1weGA7XG4gICAgICB9LCAxNTApO1xuICAgIH1cbiAgfSwgW2NsZWFuT3JkZXJdKTtcblxuICBjb25zdCB0b1NwcmVhZCA9IHsgLi4ucHJvcHMgfSBhcyBhbnk7XG4gIGRlbGV0ZSB0b1NwcmVhZC5rZXlPcmRlcjtcbiAgZGVsZXRlIHRvU3ByZWFkLm9uQ2hhbmdlS2V5T3JkZXI7XG5cbiAgY29uc3QgY2hpbGRyZW5Ub1JlbmRlciA9IFsuLi5jaGlsZHJlbl1cbiAgICAuZmlsdGVyKChhKSA9PiBjbGVhbk9yZGVyLmluY2x1ZGVzKGEua2V5IGFzIHN0cmluZykpXG4gICAgLnNvcnQoXG4gICAgICAoYSwgYikgPT5cbiAgICAgICAgY2xlYW5PcmRlci5pbmRleE9mKGEua2V5IGFzIHN0cmluZykgLVxuICAgICAgICBjbGVhbk9yZGVyLmluZGV4T2YoYi5rZXkgYXMgc3RyaW5nKVxuICAgIClcbiAgICAubWFwKChhOiBSZWFjdEVsZW1lbnQsIGkpID0+ICh7XG4gICAgICAuLi5hLFxuICAgICAga2V5OiBvcmRlcltpXSxcbiAgICB9KSk7XG5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICByb290RWwoKSEuYWRkRXZlbnRMaXN0ZW5lcihcInRvdWNoc3RhcnRcIiwgKGUpID0+IHtcbiAgICAgIGNvbnN0IHJlbGF0ZWRBbmNob3IgPSBhbmNob3JzTGlzdC5maW5kKChhbmNob3IpID0+XG4gICAgICAgIGFuY2hvci5jb250YWlucyhlLnRhcmdldCBhcyBhbnkpXG4gICAgICApO1xuICAgICAgaWYgKHJlbGF0ZWRBbmNob3IpIHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBvbkFuY2hvckNsaWNrKHtcbiAgICAgICAgICB0YXJnZXQ6IHJlbGF0ZWRBbmNob3IsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IG1vdmVDYiA9IHRocm90dGxlKChlOiBUb3VjaEV2ZW50KSA9PiB7XG4gICAgICAgICAgY29uc3QgdG91Y2ggPSBlLnRvdWNoZXNbMF07XG4gICAgICAgICAgY29uc3QgW3gsIHldID0gW3RvdWNoLmNsaWVudFgsIHRvdWNoLmNsaWVudFldO1xuICAgICAgICAgIGNvbnN0IGVscyA9IEFycmF5LmZyb20ocm9vdEVsKCkuY2hpbGRyZW4pIGFzIEhUTUxEaXZFbGVtZW50W107XG4gICAgICAgICAgY29uc3QgY3VycmVudEVsZW1lbnRJZHggPSBlbHMuZmluZEluZGV4KChjLCBpKSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZWN0ID0gYz8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICBpZiAoIXJlY3QpIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybiByZWN0LnRvcCA8IHkgJiYgcmVjdC50b3AgKyByZWN0LmhlaWdodCA+IHk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgaWYgKGN1cnJlbnRFbGVtZW50SWR4ICE9PSAtMSkge1xuICAgICAgICAgICAgY29uc3QgZWwgPSBlbHNbY3VycmVudEVsZW1lbnRJZHhdO1xuICAgICAgICAgICAgY29uc3QgcmVjdCA9IGVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgY2FsY3VsYXRlUmVvcmRlcmluZyhcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRhcmdldDogZWwsXG4gICAgICAgICAgICAgICAgb2Zmc2V0WTogeSAtIHJlY3QudG9wLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBlbHMsXG4gICAgICAgICAgICAgIGNsZWFuT3JkZXJSZWYuY3VycmVudFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sIDUwMCk7XG4gICAgICAgIGNvbnN0IHQgPSBlLnRhcmdldCBhcyBIVE1MRGl2RWxlbWVudDtcbiAgICAgICAgY29uc3QgdG91Y2hNb3ZlQ2IgPSAoZTogVG91Y2hFdmVudCkgPT4ge1xuICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IFRvdWNoRXZlbnQoZS50eXBlLCBlIGFzIGFueSkpO1xuICAgICAgICAgIG1vdmVDYihlKTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgcmVtb3ZlQ2IgPSAoZTogVG91Y2hFdmVudCkgPT4ge1xuICAgICAgICAgIHQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRvdWNobW92ZVwiLCB0b3VjaE1vdmVDYik7XG4gICAgICAgICAgdC5yZW1vdmVFdmVudExpc3RlbmVyKFwidG91Y2hlbmRcIiwgcmVtb3ZlQ2IpO1xuICAgICAgICAgIHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBUb3VjaEV2ZW50KGUudHlwZSwgZSBhcyBhbnkpKTtcbiAgICAgICAgfTtcbiAgICAgICAgdC5hZGRFdmVudExpc3RlbmVyKFwidG91Y2htb3ZlXCIsIHRvdWNoTW92ZUNiKTtcbiAgICAgICAgdC5hZGRFdmVudExpc3RlbmVyKFwidG91Y2hlbmRcIiwgcmVtb3ZlQ2IpO1xuICAgICAgfVxuICAgIH0pO1xuICB9LCBbXSk7XG5cbiAgY29uc3QgZSA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKHtcbiAgICAgIGJpbmRBbmNob3I6IChlbDogSFRNTERpdkVsZW1lbnQpID0+IHtcbiAgICAgICAgZWwuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlZG93blwiLCBvbkFuY2hvckNsaWNrKTtcbiAgICAgICAgYW5jaG9yc0xpc3QucHVzaChlbCk7XG4gICAgICB9LFxuICAgICAgdW5iaW5kQW5jaG9yOiAoZWw6IEhUTUxEaXZFbGVtZW50KSA9PiB7XG4gICAgICAgIGVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZWRvd25cIiwgb25BbmNob3JDbGljayk7XG4gICAgICAgIGFuY2hvcnNMaXN0LnNwbGljZShhbmNob3JzTGlzdC5pbmRleE9mKGVsKSwgMSk7XG4gICAgICB9LFxuICAgICAgb246IGV2ZW50RW1pdHRlci5zdWJzY3JpYmVyLFxuICAgIH0pLFxuICAgIFtdXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8T3JkZXJhYmxlTGlzdENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e2V9PlxuICAgICAgPGRpdlxuICAgICAgICByZWY9e3Jvb3RSZWZ9XG4gICAgICAgIGNsYXNzTmFtZT17YCR7U3R5bGVzLnJvb3R9ICR7Y2xhc3NOYW1lfSAke1xuICAgICAgICAgIHNocmlua1RvT25PcmRlciA/IFN0eWxlcy5zaHJpbmthYmxlIDogXCJcIlxuICAgICAgICB9YH1cbiAgICAgICAgey4uLnRvU3ByZWFkfVxuICAgICAgPlxuICAgICAgICB7bW9kZSA9PT0gT3JkZXJhYmxlTGlzdFJlb3JkZXJNb2RlLlZFUlRJQ0FMID8gKFxuICAgICAgICAgIDxBbmltYXRlZEVudHJhbmNlPntjaGlsZHJlblRvUmVuZGVyfTwvQW5pbWF0ZWRFbnRyYW5jZT5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8VW5jb250cm9sbGVkVHJhbnNpdGlvblxuICAgICAgICAgICAgY2xhc3NOYW1lPXtTdHlsZXMudHJhbnNpdGlvbn1cbiAgICAgICAgICAgIHRyYW5zaXRpb25UeXBlPXtUcmFuc2l0aW9uQW5pbWF0aW9uVHlwZXMuQ1VTVE9NfVxuICAgICAgICAgICAgY29uZmlnPXt7XG4gICAgICAgICAgICAgIGJhY2t3YXJkOiB7XG4gICAgICAgICAgICAgICAgZWxlbWVudEVudGVyaW5nOiBcIlwiLFxuICAgICAgICAgICAgICAgIGVsZW1lbnRFeGl0aW5nOiBcIlwiLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBmb3J3YXJkOiB7XG4gICAgICAgICAgICAgICAgZWxlbWVudEVudGVyaW5nOiBTdHlsZXMuc3R1YkVudGVyaW5nLFxuICAgICAgICAgICAgICAgIGVsZW1lbnRFeGl0aW5nOiBUcmFuc2l0aW9uU3R5bGVzLmZhZGVPdXQsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgY29udGVudENsYXNzTmFtZT17YCR7Y2xhc3NOYW1lfWB9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEZyYWdtZW50IGtleT17b3JkZXJJZH0+XG4gICAgICAgICAgICAgIHtbLi4uY2hpbGRyZW5dXG4gICAgICAgICAgICAgICAgLmZpbHRlcigoYSkgPT4gY2xlYW5PcmRlci5pbmNsdWRlcyhhLmtleSBhcyBzdHJpbmcpKVxuICAgICAgICAgICAgICAgIC5zb3J0KFxuICAgICAgICAgICAgICAgICAgKGEsIGIpID0+XG4gICAgICAgICAgICAgICAgICAgIGNsZWFuT3JkZXIuaW5kZXhPZihhLmtleSBhcyBzdHJpbmcpIC1cbiAgICAgICAgICAgICAgICAgICAgY2xlYW5PcmRlci5pbmRleE9mKGIua2V5IGFzIHN0cmluZylcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLm1hcCgoYSwgaSkgPT4gKFxuICAgICAgICAgICAgICAgICAgPEhlcm9XcmFwcGVyIGtleT17aX0gaWQ9e2Eua2V5IGFzIHN0cmluZ30+XG4gICAgICAgICAgICAgICAgICAgIHthfVxuICAgICAgICAgICAgICAgICAgPC9IZXJvV3JhcHBlcj5cbiAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvRnJhZ21lbnQ+XG4gICAgICAgICAgPC9VbmNvbnRyb2xsZWRUcmFuc2l0aW9uPlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgPC9PcmRlcmFibGVMaXN0Q29udGV4dC5Qcm92aWRlcj5cbiAgKTtcbn1cblxuZnVuY3Rpb24gSGVyb1dyYXBwZXIoeyBjaGlsZHJlbiwgaWQgfTogUHJvcHNXaXRoQ2hpbGRyZW48eyBpZDogc3RyaW5nIH0+KSB7XG4gIGNvbnN0IHsgaGVyb1JlZiB9ID0gdXNlSGVybyhpZCwgdW5kZWZpbmVkLCB7XG4gICAgb25IZXJvU3RhcnQ6IChfYywgX28sIHQpID0+IHtcbiAgICAgIHQucXVlcnlTZWxlY3RvckFsbChcImltZ1wiKS5mb3JFYWNoKFxuICAgICAgICAoaW1nKSA9PiAoaW1nLnN0eWxlLnZpc2liaWxpdHkgPSBcImhpZGRlblwiKVxuICAgICAgKTtcbiAgICB9LFxuICAgIG9uSGVyb0Nsb25lZChjbG9uZSkge1xuICAgICAgLy8gaWYgKCFjbG9uZS5jbGFzc0xpc3QuY29udGFpbnMoU3R5bGVzLnZpc2libGUpKSBjbG9uZS5zdHlsZS5vcGFjaXR5ID0gXCIwXCI7XG4gICAgfSxcbiAgICBvbkhlcm9FbmQ6ICgpID0+IHtcbiAgICAgIGlmIChoZXJvUmVmLmN1cnJlbnQpXG4gICAgICAgIGhlcm9SZWYuY3VycmVudFxuICAgICAgICAgIC5xdWVyeVNlbGVjdG9yQWxsKFwiaW1nXCIpXG4gICAgICAgICAgLmZvckVhY2goKGltZykgPT4gKGltZy5zdHlsZS52aXNpYmlsaXR5ID0gXCJcIikpO1xuICAgIH0sXG4gIH0pO1xuICByZXR1cm4gPGRpdiByZWY9e2hlcm9SZWZ9PntjaGlsZHJlbn08L2Rpdj47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VPcmRlcmFibGVMaXN0QW5jaG9yKCkge1xuICBjb25zdCBhbmNob3JSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3R4ID0gdXNlQ29udGV4dChPcmRlcmFibGVMaXN0Q29udGV4dCk7XG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFjdHgpIHJldHVybjtcbiAgICBjb25zdCB7IGJpbmRBbmNob3IsIHVuYmluZEFuY2hvciB9ID0gY3R4O1xuICAgIGJpbmRBbmNob3IoYW5jaG9yUmVmLmN1cnJlbnQhKTtcbiAgICByZXR1cm4gKCkgPT4gdW5iaW5kQW5jaG9yKGFuY2hvclJlZi5jdXJyZW50ISk7XG4gIH0sIFtdKTtcbiAgcmV0dXJuIHtcbiAgICBhbmNob3JSZWY6IGN0eCA/IGFuY2hvclJlZiA6IHVuZGVmaW5lZCxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVzZU9yZGVyYWJsZUV2ZW50cyhcbiAgZXZlbnRzOiB7XG4gICAgW2sgaW4gRXZlbnRzXTogKCkgPT4gdm9pZDtcbiAgfVxuKSB7XG4gIGNvbnN0IHsgb24gfSA9IHVzZUNvbnRleHQoT3JkZXJhYmxlTGlzdENvbnRleHQpO1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHVuc3Vic2NyaWJlcnM6IGFueVtdID0gW107XG4gICAgZm9yIChsZXQgZXZlbnROYW1lIGluIGV2ZW50cykge1xuICAgICAgdW5zdWJzY3JpYmVycy5wdXNoKG9uKGV2ZW50TmFtZSBhcyBFdmVudHMsIGV2ZW50c1tldmVudE5hbWUgYXMgRXZlbnRzXSkpO1xuICAgIH1cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgdW5zdWJzY3JpYmVycy5mb3JFYWNoKCh1KSA9PiB1KCkpO1xuICAgIH07XG4gIH0sIFtldmVudHNdKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsSUFBQUEsU0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsdUJBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLGlCQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRyxNQUFBLEdBQUFDLHVCQUFBLENBQUFKLE9BQUE7QUFlQSxJQUFBSyxRQUFBLEdBQUFOLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTSxpQkFBQSxHQUFBUCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQU8sV0FBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsb0JBQUEsR0FBQVQsc0JBQUEsQ0FBQUMsT0FBQTtBQUNB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
@@ -42,7 +42,7 @@ function _Parallax(_ref, ref) {
42
42
  const parallaxableRef = (0, _react.useRef)(null);
43
43
  const reflectionRef = (0, _react.useRef)(null);
44
44
  const multiplierRef = (0, _react.useRef)(1);
45
- const initialPositionRef = (0, _react.useRef)();
45
+ const initialPositionRef = (0, _react.useRef)(undefined);
46
46
  (0, _react.useEffect)(() => {
47
47
  if (ref) ref.current = parallaxableRef.current;
48
48
  const el = parallaxableRef.current;
@@ -172,4 +172,4 @@ function _Parallax(_ref, ref) {
172
172
  const Parallax = /*#__PURE__*/(0, _react.forwardRef)(_Parallax);
173
173
  var _default = Parallax;
174
174
  exports.default = _default;
175
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfUGFyYWxsYXhNb2R1bGUiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2xvZGFzaCIsIl9oZWxwZXJzIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIl9leHRlbmRzIiwiYXNzaWduIiwiYmluZCIsInRhcmdldCIsImkiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJzb3VyY2UiLCJhcHBseSIsIk1BWElNVU1fUEFSQUxMQVgiLCJ4IiwieSIsImNhbGN1bGF0ZURpc3RhbmNlUmVsYXRpdmVUb0JvdW5kcyIsIm1vdXNlUG9zaXRpb24iLCJlbGVtZW50SW5pdGlhbFBvc2l0aW9uIiwiZWxlbWVudFNpemVEaW1lbnNpb24iLCJub3JtYWxpemVJbml0aWFsUG9zaXRpb24iLCJkb05vdEFsbG93R29pbmdCZXlvbmRMb3dlckxpbWl0IiwiTWF0aCIsIm1heCIsImRvTm90QWxsb3dIb2luZ0JleW9uZEhpZ2hlckxpbWl0IiwibWluIiwidGhyZWVSdWxlIiwicmVzdWx0Iiwicm91bmQiLCJnaXZlblRoZVJlbGF0aXZlUG9zaXRpb25Ib3dNdWNoVG9Sb3RhdGUiLCJyZWxhdGl2ZVBvc2l0aW9uIiwibWF4Um90YXRpb24iLCJfUGFyYWxsYXgiLCJfcmVmIiwicmVmIiwiY2hpbGRyZW4iLCJjbGFzc05hbWUiLCJhY3RpdmUiLCJvbkNsaWNrIiwicmVmbGVjdGlvbiIsIm1heFBhcmFsbGF4IiwicHJvcHMiLCJwYXJhbGxheGFibGVSZWYiLCJ1c2VSZWYiLCJyZWZsZWN0aW9uUmVmIiwibXVsdGlwbGllclJlZiIsImluaXRpYWxQb3NpdGlvblJlZiIsInVzZUVmZmVjdCIsImN1cnJlbnQiLCJlbCIsImdldENvbXB1dGVkU3R5bGUiLCJ0cmFuc2Zvcm0iLCJzdHlsZSIsInVwZGF0ZVBvc2l0aW9ucyIsInJlbGF0aXZlVG9YIiwicmVsYXRpdmVUb1kiLCJyZWN0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0Iiwid2lkdGgiLCJ4MCIsInhXIiwiaGVpZ2h0IiwieTAiLCJ5SCIsImxlZnQiLCJjbGllbnRXaWR0aCIsInRvcCIsImNsaWVudEhlaWdodCIsImRpc3RhbmNlT2ZmUmlnaHQiLCJkaXN0YW5jZU9mZkJvdHRvbSIsImhvd011Y2hUb1JvdGF0ZVkiLCJob3dNdWNoVG9Sb3RhdGVYIiwiaG93TXVjaFRvT3BhY2lmeSIsImFicyIsImhvd011Y2hUb09wYWNpZnlIb3Jpem9udGFsIiwib3BhY2l0eSIsImhhbmRsZXIiLCJ0aHJvdHRsZSIsIl9yZWYyIiwidG91Y2hIYW5kbGVyIiwiX3JlZjMiLCJ0b3VjaGVzIiwicGFnZVgiLCJwYWdlWSIsIm1vdXNlRG93bkhhbmRsZXIiLCJtb3VzZVVwSGFuZGxlciIsIndpbmRvdyIsImFkZEV2ZW50TGlzdGVuZXIiLCJfaW52ZXJzZU1hdHJpeCIsIl9saW1pdHMiLCJiZXRhIiwidW5kZWZpbmVkIiwiZ2FtbWEiLCJvcmllbnRhdGlvbkxpc3RlbmVyIiwiX3JlZjQiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwib2Zmc2V0IiwiX2JldGEiLCJfZ2FtbWEiLCJmbGF0dGVuTWF0cml4IiwiaW52ZXJ0TWF0cml4IiwiZ2VuZXJhdGVNYXRyaXhGcm9tT3BlcmF0aW9ucyIsInR5cGUiLCJhbmdsZSIsImpvaW4iLCJjcmVhdGVFbGVtZW50IiwiU3R5bGVzIiwicGFyYWxsYXgiLCJQYXJhbGxheCIsImZvcndhcmRSZWYiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9QYXJhbGxheC9QYXJhbGxheC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7XG4gIERldGFpbGVkSFRNTFByb3BzLFxuICBGb3J3YXJkZWRSZWYsXG4gIGZvcndhcmRSZWYsXG4gIEhUTUxBdHRyaWJ1dGVzLFxuICBNdXRhYmxlUmVmT2JqZWN0LFxuICBQcm9wc1dpdGhDaGlsZHJlbixcbiAgdXNlRWZmZWN0LFxuICB1c2VSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFN0eWxlcyBmcm9tIFwiLi9QYXJhbGxheC5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHsgdGhyb3R0bGUgfSBmcm9tIFwibG9kYXNoXCI7XG5pbXBvcnQge1xuICBmbGF0dGVuTWF0cml4LFxuICBnZW5lcmF0ZU1hdHJpeEZyb21PcGVyYXRpb25zLFxuICBpbnZlcnRNYXRyaXgsXG59IGZyb20gXCIuL21hdGgvaGVscGVyc1wiO1xuXG5jb25zdCBNQVhJTVVNX1BBUkFMTEFYID0ge1xuICB4OiAyMCxcbiAgeTogMjAsXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gY2FsY3VsYXRlRGlzdGFuY2VSZWxhdGl2ZVRvQm91bmRzKFxuICBtb3VzZVBvc2l0aW9uOiBudW1iZXIsXG4gIGVsZW1lbnRJbml0aWFsUG9zaXRpb246IG51bWJlcixcbiAgZWxlbWVudFNpemVEaW1lbnNpb246IG51bWJlclxuKSB7XG4gIGNvbnN0IG5vcm1hbGl6ZUluaXRpYWxQb3NpdGlvbiA9IG1vdXNlUG9zaXRpb24gLSBlbGVtZW50SW5pdGlhbFBvc2l0aW9uO1xuICBjb25zdCBkb05vdEFsbG93R29pbmdCZXlvbmRMb3dlckxpbWl0ID0gTWF0aC5tYXgobm9ybWFsaXplSW5pdGlhbFBvc2l0aW9uLCAwKTtcbiAgY29uc3QgZG9Ob3RBbGxvd0hvaW5nQmV5b25kSGlnaGVyTGltaXQgPSBNYXRoLm1pbihcbiAgICBkb05vdEFsbG93R29pbmdCZXlvbmRMb3dlckxpbWl0LFxuICAgIGVsZW1lbnRTaXplRGltZW5zaW9uXG4gICk7XG4gIGNvbnN0IHRocmVlUnVsZSA9XG4gICAgKGRvTm90QWxsb3dIb2luZ0JleW9uZEhpZ2hlckxpbWl0ICogMTAwKSAvIGVsZW1lbnRTaXplRGltZW5zaW9uO1xuICBjb25zdCByZXN1bHQgPSBNYXRoLnJvdW5kKHRocmVlUnVsZSkgLyAxMDA7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnaXZlblRoZVJlbGF0aXZlUG9zaXRpb25Ib3dNdWNoVG9Sb3RhdGUoXG4gIHJlbGF0aXZlUG9zaXRpb246IG51bWJlcixcbiAgbWF4Um90YXRpb246IG51bWJlclxuKSB7XG4gIHJldHVybiByZWxhdGl2ZVBvc2l0aW9uICogbWF4Um90YXRpb24gLSBtYXhSb3RhdGlvbiAvIDI7XG59XG5cbnR5cGUgUHJvcHMgPSBQcm9wc1dpdGhDaGlsZHJlbjx7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgYWN0aXZlOiBib29sZWFuO1xuICBvbkNsaWNrPzogKGU6IGFueSkgPT4gdm9pZDtcbiAgcmVmbGVjdGlvbj86IGJvb2xlYW47XG4gIG1heFBhcmFsbGF4Pzoge1xuICAgIHg6IG51bWJlcjtcbiAgICB5OiBudW1iZXI7XG4gIH07XG59PiAmXG4gIERldGFpbGVkSFRNTFByb3BzPEhUTUxBdHRyaWJ1dGVzPEhUTUxEaXZFbGVtZW50PiwgSFRNTERpdkVsZW1lbnQ+O1xuXG5mdW5jdGlvbiBfUGFyYWxsYXgoXG4gIHtcbiAgICBjaGlsZHJlbixcbiAgICBjbGFzc05hbWUgPSBcIlwiLFxuICAgIGFjdGl2ZSxcbiAgICBvbkNsaWNrLFxuICAgIHJlZmxlY3Rpb24sXG4gICAgbWF4UGFyYWxsYXggPSBNQVhJTVVNX1BBUkFMTEFYLFxuICAgIC4uLnByb3BzXG4gIH06IFByb3BzLFxuICByZWY6IEZvcndhcmRlZFJlZjxIVE1MRGl2RWxlbWVudD5cbikge1xuICBjb25zdCBwYXJhbGxheGFibGVSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCByZWZsZWN0aW9uUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgY29uc3QgbXVsdGlwbGllclJlZiA9IHVzZVJlZjxudW1iZXI+KDEpO1xuICBjb25zdCBpbml0aWFsUG9zaXRpb25SZWYgPSB1c2VSZWY8c3RyaW5nPigpO1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChyZWYpXG4gICAgICAocmVmIGFzIE11dGFibGVSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+KS5jdXJyZW50ID1cbiAgICAgICAgcGFyYWxsYXhhYmxlUmVmLmN1cnJlbnQhO1xuICAgIGNvbnN0IGVsID0gcGFyYWxsYXhhYmxlUmVmLmN1cnJlbnQhO1xuICAgIGlmIChhY3RpdmUgJiYgIWluaXRpYWxQb3NpdGlvblJlZi5jdXJyZW50KSB7XG4gICAgICBpbml0aWFsUG9zaXRpb25SZWYuY3VycmVudCA9IGdldENvbXB1dGVkU3R5bGUoZWwpLnRyYW5zZm9ybTtcbiAgICAgIGlmIChpbml0aWFsUG9zaXRpb25SZWYuY3VycmVudCA9PT0gXCJub25lXCIpXG4gICAgICAgIGluaXRpYWxQb3NpdGlvblJlZi5jdXJyZW50ID0gXCJcIjtcbiAgICAgIGVsLnN0eWxlLnRyYW5zZm9ybSA9IGAke2luaXRpYWxQb3NpdGlvblJlZi5jdXJyZW50fSByb3RhdGVYKDBkZWcpIHJvdGF0ZVkoMGRlZykgdHJhbnNsYXRlWigwcHgpYDtcbiAgICB9XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gIH0sIFthY3RpdmVdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGVsID0gcGFyYWxsYXhhYmxlUmVmLmN1cnJlbnQhO1xuICAgIGlmIChhY3RpdmUpIHtcbiAgICAgIGNvbnN0IHVwZGF0ZVBvc2l0aW9ucyA9IChyZWxhdGl2ZVRvWDogbnVtYmVyLCByZWxhdGl2ZVRvWTogbnVtYmVyKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlY3QgPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIHdpZHRoOiBbeDAsIHhXXSxcbiAgICAgICAgICBoZWlnaHQ6IFt5MCwgeUhdLFxuICAgICAgICB9ID0ge1xuICAgICAgICAgIHdpZHRoOiBbcmVjdC5sZWZ0LCBlbC5jbGllbnRXaWR0aF0sXG4gICAgICAgICAgaGVpZ2h0OiBbcmVjdC50b3AsIGVsLmNsaWVudEhlaWdodF0sXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGRpc3RhbmNlT2ZmUmlnaHQgPSBjYWxjdWxhdGVEaXN0YW5jZVJlbGF0aXZlVG9Cb3VuZHMoXG4gICAgICAgICAgcmVsYXRpdmVUb1gsXG4gICAgICAgICAgeDAsXG4gICAgICAgICAgeFdcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgZGlzdGFuY2VPZmZCb3R0b20gPSBjYWxjdWxhdGVEaXN0YW5jZVJlbGF0aXZlVG9Cb3VuZHMoXG4gICAgICAgICAgcmVsYXRpdmVUb1ksXG4gICAgICAgICAgeTAsXG4gICAgICAgICAgeUhcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgaG93TXVjaFRvUm90YXRlWSA9XG4gICAgICAgICAgZ2l2ZW5UaGVSZWxhdGl2ZVBvc2l0aW9uSG93TXVjaFRvUm90YXRlKFxuICAgICAgICAgICAgZGlzdGFuY2VPZmZSaWdodCxcbiAgICAgICAgICAgIG1heFBhcmFsbGF4LnlcbiAgICAgICAgICApICogbXVsdGlwbGllclJlZi5jdXJyZW50O1xuICAgICAgICBjb25zdCBob3dNdWNoVG9Sb3RhdGVYID1cbiAgICAgICAgICBnaXZlblRoZVJlbGF0aXZlUG9zaXRpb25Ib3dNdWNoVG9Sb3RhdGUoXG4gICAgICAgICAgICBkaXN0YW5jZU9mZkJvdHRvbSxcbiAgICAgICAgICAgIG1heFBhcmFsbGF4LnhcbiAgICAgICAgICApICogbXVsdGlwbGllclJlZi5jdXJyZW50O1xuXG4gICAgICAgIGNvbnN0IGhvd011Y2hUb09wYWNpZnkgPSBNYXRoLmFicyhcbiAgICAgICAgICBNYXRoLmFicyhkaXN0YW5jZU9mZkJvdHRvbSAtIDAuNSkgLyAwLjVcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgaG93TXVjaFRvT3BhY2lmeUhvcml6b250YWwgPSBNYXRoLm1heChcbiAgICAgICAgICBNYXRoLmFicyhNYXRoLmFicyhkaXN0YW5jZU9mZlJpZ2h0IC0gMC41KSAvIDAuNSksXG4gICAgICAgICAgTWF0aC5hYnMoTWF0aC5hYnMoZGlzdGFuY2VPZmZCb3R0b20gLSAwLjUpIC8gMC41KVxuICAgICAgICApO1xuXG4gICAgICAgIGVsLnN0eWxlLnRyYW5zZm9ybSA9IGAke1xuICAgICAgICAgIGluaXRpYWxQb3NpdGlvblJlZi5jdXJyZW50XG4gICAgICAgIH0gcm90YXRlWSgke2hvd011Y2hUb1JvdGF0ZVl9ZGVnKSByb3RhdGVYKCR7LWhvd011Y2hUb1JvdGF0ZVh9ZGVnKSB0cmFuc2xhdGVaKCR7XG4gICAgICAgICAgbXVsdGlwbGllclJlZi5jdXJyZW50ID09PSAxID8gMCA6IC0zMFxuICAgICAgICB9cHgpYDtcblxuICAgICAgICBpZiAocmVmbGVjdGlvblJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgcmVmbGVjdGlvblJlZi5jdXJyZW50LnN0eWxlLmxlZnQgPSBgJHsoMSAtIGRpc3RhbmNlT2ZmUmlnaHQpICogMTAwfSVgO1xuICAgICAgICAgIHJlZmxlY3Rpb25SZWYuY3VycmVudC5zdHlsZS50b3AgPSBgJHsoMSAtIGRpc3RhbmNlT2ZmQm90dG9tKSAqIDEwMH0lYDtcbiAgICAgICAgICByZWZsZWN0aW9uUmVmLmN1cnJlbnQuc3R5bGUub3BhY2l0eSA9IGAke01hdGgubWluKFxuICAgICAgICAgICAgaG93TXVjaFRvT3BhY2lmeSxcbiAgICAgICAgICAgIGhvd011Y2hUb09wYWNpZnlIb3Jpem9udGFsXG4gICAgICAgICAgKX1gO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgY29uc3QgaGFuZGxlciA9IHRocm90dGxlKCh7IHgsIHkgfTogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICB1cGRhdGVQb3NpdGlvbnMoeCwgeSk7XG4gICAgICB9LCAxMDAwIC8gMzApO1xuICAgICAgY29uc3QgdG91Y2hIYW5kbGVyID0gdGhyb3R0bGUoKHsgdG91Y2hlcyB9OiBUb3VjaEV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IHsgcGFnZVgsIHBhZ2VZIH0gPSB0b3VjaGVzWzBdO1xuICAgICAgICB1cGRhdGVQb3NpdGlvbnMocGFnZVgsIHBhZ2VZKTtcbiAgICAgIH0sIDEwMDAgLyAzMCk7XG4gICAgICBjb25zdCBtb3VzZURvd25IYW5kbGVyID0gKCkgPT4ge1xuICAgICAgICBtdWx0aXBsaWVyUmVmLmN1cnJlbnQgPSAxLjU7XG4gICAgICB9O1xuICAgICAgY29uc3QgbW91c2VVcEhhbmRsZXIgPSAoKSA9PiB7XG4gICAgICAgIG11bHRpcGxpZXJSZWYuY3VycmVudCA9IDE7XG4gICAgICB9O1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZW1vdmVcIiwgaGFuZGxlcik7XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInRvdWNobW92ZVwiLCB0b3VjaEhhbmRsZXIpO1xuICAgICAgbGV0IF9pbnZlcnNlTWF0cml4OiBudW1iZXJbXSB8IHVuZGVmaW5lZDtcbiAgICAgIGNvbnN0IF9saW1pdHM6IHtcbiAgICAgICAgW2sgaW4gXCJiZXRhXCIgfCBcImdhbW1hXCJdPzogW251bWJlciwgbnVtYmVyXTtcbiAgICAgIH0gPSB7XG4gICAgICAgIGJldGE6IHVuZGVmaW5lZCxcbiAgICAgICAgZ2FtbWE6IHVuZGVmaW5lZCxcbiAgICAgIH07XG4gICAgICBjb25zdCBvcmllbnRhdGlvbkxpc3RlbmVyOiAoZTogRGV2aWNlT3JpZW50YXRpb25FdmVudCkgPT4gdm9pZCA9ICh7XG4gICAgICAgIGJldGEsXG4gICAgICAgIGdhbW1hLFxuICAgICAgfSkgPT4ge1xuICAgICAgICBiZXRhID0gYmV0YSEgKiAwLjU7XG4gICAgICAgIGdhbW1hID0gZ2FtbWEhICogMC41O1xuICAgICAgICBpZiAoIV9pbnZlcnNlTWF0cml4KSB7XG4gICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZW1vdmVcIiwgaGFuZGxlcik7XG4gICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0b3VjaG1vdmVcIiwgdG91Y2hIYW5kbGVyKTtcbiAgICAgICAgICBjb25zdCBvZmZzZXQgPSAxMi41O1xuICAgICAgICAgIF9saW1pdHMuYmV0YSA9IFtiZXRhISAtIG9mZnNldCwgYmV0YSEgKyBvZmZzZXRdO1xuICAgICAgICAgIF9saW1pdHMuZ2FtbWEgPSBbZ2FtbWEhIC0gb2Zmc2V0LCBnYW1tYSEgKyBvZmZzZXRdO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IF9iZXRhID0gTWF0aC5taW4oXG4gICAgICAgICAgX2xpbWl0cy5iZXRhIVsxXSxcbiAgICAgICAgICBNYXRoLm1heChfbGltaXRzLmJldGEhWzBdLCBiZXRhISlcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgX2dhbW1hID0gTWF0aC5taW4oXG4gICAgICAgICAgX2xpbWl0cy5nYW1tYSFbMV0sXG4gICAgICAgICAgTWF0aC5tYXgoX2xpbWl0cy5nYW1tYSFbMF0sIGdhbW1hISlcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKCFfaW52ZXJzZU1hdHJpeCkge1xuICAgICAgICAgIF9pbnZlcnNlTWF0cml4ID0gZmxhdHRlbk1hdHJpeChcbiAgICAgICAgICAgIGludmVydE1hdHJpeChcbiAgICAgICAgICAgICAgZ2VuZXJhdGVNYXRyaXhGcm9tT3BlcmF0aW9ucyhcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICB0eXBlOiBcInJvdGF0ZVlcIixcbiAgICAgICAgICAgICAgICAgIGFuZ2xlOiBfZ2FtbWEhLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgdHlwZTogXCJyb3RhdGVYXCIsXG4gICAgICAgICAgICAgICAgICBhbmdsZTogLV9iZXRhISxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIClcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGVsLnN0eWxlLnRyYW5zZm9ybSA9IGBtYXRyaXgzZCgke19pbnZlcnNlTWF0cml4LmpvaW4oXG4gICAgICAgICAgXCIsXCJcbiAgICAgICAgKX0pIHJvdGF0ZVgoJHstX2JldGEhfWRlZykgcm90YXRlWSgke19nYW1tYX1kZWcpYDtcbiAgICAgIH07XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImRldmljZW9yaWVudGF0aW9uXCIsIG9yaWVudGF0aW9uTGlzdGVuZXIpO1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaGVuZFwiLCAoKSA9PiB7XG4gICAgICAgIF9pbnZlcnNlTWF0cml4ID0gdW5kZWZpbmVkO1xuICAgICAgfSk7XG4gICAgICBlbC5hZGRFdmVudExpc3RlbmVyKFwidG91Y2hzdGFydFwiLCBtb3VzZURvd25IYW5kbGVyKTtcbiAgICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaGVuZFwiLCBtb3VzZVVwSGFuZGxlcik7XG4gICAgICBlbC5hZGRFdmVudExpc3RlbmVyKFwibW91c2Vkb3duXCIsIG1vdXNlRG93bkhhbmRsZXIpO1xuICAgICAgZWwuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNldXBcIiwgbW91c2VVcEhhbmRsZXIpO1xuXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImRldmljZW9yaWVudGF0aW9uXCIsIG9yaWVudGF0aW9uTGlzdGVuZXIpO1xuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlbW92ZVwiLCBoYW5kbGVyKTtcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0b3VjaG1vdmVcIiwgdG91Y2hIYW5kbGVyKTtcbiAgICAgICAgZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlZG93blwiLCBtb3VzZURvd25IYW5kbGVyKTtcbiAgICAgICAgZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNldXBcIiwgbW91c2VVcEhhbmRsZXIpO1xuICAgICAgICBlbC5yZW1vdmVFdmVudExpc3RlbmVyKFwidG91Y2hzdGFydFwiLCBtb3VzZURvd25IYW5kbGVyKTtcbiAgICAgICAgZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRvdWNoZW5kXCIsIG1vdXNlVXBIYW5kbGVyKTtcbiAgICAgICAgLy8gZWwuc3R5bGUudHJhbnNmb3JtID0gaW5pdGlhbFBvc2l0aW9uUmVmLmN1cnJlbnQhO1xuICAgICAgICBlbC5zdHlsZS50cmFuc2Zvcm0gPSBgcm90YXRlWCgwZGVnKSByb3RhdGVZKDBkZWcpIHRyYW5zbGF0ZVooMHB4KWA7XG4gICAgICB9O1xuICAgIH1cbiAgfSwgW2FjdGl2ZV0pO1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIG9uQ2xpY2s9e29uQ2xpY2t9XG4gICAgICByZWY9e3BhcmFsbGF4YWJsZVJlZn1cbiAgICAgIGNsYXNzTmFtZT17YCR7U3R5bGVzLnBhcmFsbGF4fSAke2NsYXNzTmFtZX1gfVxuICAgICAgey4uLnByb3BzfVxuICAgID5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICAgIHtyZWZsZWN0aW9uICYmIDxkaXYgcmVmPXtyZWZsZWN0aW9uUmVmfSBjbGFzc05hbWU9e1N0eWxlcy5yZWZsZWN0aW9ufSAvPn1cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuLyoqXG4gKiBJdCBob2xkcyBhIGNoaWxkcmVuIGFuZCBhbmltYXRlcyBhIHRpbHQgZWZmZWN0IHJlbGF0aXZlIHRvIG1vdXNlIHBvc2l0aW9uXG4gKiovXG5jb25zdCBQYXJhbGxheCA9IGZvcndhcmRSZWYoX1BhcmFsbGF4KTtcbmV4cG9ydCBkZWZhdWx0IFBhcmFsbGF4O1xuIl0s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
175
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfUGFyYWxsYXhNb2R1bGUiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2xvZGFzaCIsIl9oZWxwZXJzIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIl9leHRlbmRzIiwiYXNzaWduIiwiYmluZCIsInRhcmdldCIsImkiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJzb3VyY2UiLCJhcHBseSIsIk1BWElNVU1fUEFSQUxMQVgiLCJ4IiwieSIsImNhbGN1bGF0ZURpc3RhbmNlUmVsYXRpdmVUb0JvdW5kcyIsIm1vdXNlUG9zaXRpb24iLCJlbGVtZW50SW5pdGlhbFBvc2l0aW9uIiwiZWxlbWVudFNpemVEaW1lbnNpb24iLCJub3JtYWxpemVJbml0aWFsUG9zaXRpb24iLCJkb05vdEFsbG93R29pbmdCZXlvbmRMb3dlckxpbWl0IiwiTWF0aCIsIm1heCIsImRvTm90QWxsb3dIb2luZ0JleW9uZEhpZ2hlckxpbWl0IiwibWluIiwidGhyZWVSdWxlIiwicmVzdWx0Iiwicm91bmQiLCJnaXZlblRoZVJlbGF0aXZlUG9zaXRpb25Ib3dNdWNoVG9Sb3RhdGUiLCJyZWxhdGl2ZVBvc2l0aW9uIiwibWF4Um90YXRpb24iLCJfUGFyYWxsYXgiLCJfcmVmIiwicmVmIiwiY2hpbGRyZW4iLCJjbGFzc05hbWUiLCJhY3RpdmUiLCJvbkNsaWNrIiwicmVmbGVjdGlvbiIsIm1heFBhcmFsbGF4IiwicHJvcHMiLCJwYXJhbGxheGFibGVSZWYiLCJ1c2VSZWYiLCJyZWZsZWN0aW9uUmVmIiwibXVsdGlwbGllclJlZiIsImluaXRpYWxQb3NpdGlvblJlZiIsInVuZGVmaW5lZCIsInVzZUVmZmVjdCIsImN1cnJlbnQiLCJlbCIsImdldENvbXB1dGVkU3R5bGUiLCJ0cmFuc2Zvcm0iLCJzdHlsZSIsInVwZGF0ZVBvc2l0aW9ucyIsInJlbGF0aXZlVG9YIiwicmVsYXRpdmVUb1kiLCJyZWN0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0Iiwid2lkdGgiLCJ4MCIsInhXIiwiaGVpZ2h0IiwieTAiLCJ5SCIsImxlZnQiLCJjbGllbnRXaWR0aCIsInRvcCIsImNsaWVudEhlaWdodCIsImRpc3RhbmNlT2ZmUmlnaHQiLCJkaXN0YW5jZU9mZkJvdHRvbSIsImhvd011Y2hUb1JvdGF0ZVkiLCJob3dNdWNoVG9Sb3RhdGVYIiwiaG93TXVjaFRvT3BhY2lmeSIsImFicyIsImhvd011Y2hUb09wYWNpZnlIb3Jpem9udGFsIiwib3BhY2l0eSIsImhhbmRsZXIiLCJ0aHJvdHRsZSIsIl9yZWYyIiwidG91Y2hIYW5kbGVyIiwiX3JlZjMiLCJ0b3VjaGVzIiwicGFnZVgiLCJwYWdlWSIsIm1vdXNlRG93bkhhbmRsZXIiLCJtb3VzZVVwSGFuZGxlciIsIndpbmRvdyIsImFkZEV2ZW50TGlzdGVuZXIiLCJfaW52ZXJzZU1hdHJpeCIsIl9saW1pdHMiLCJiZXRhIiwiZ2FtbWEiLCJvcmllbnRhdGlvbkxpc3RlbmVyIiwiX3JlZjQiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwib2Zmc2V0IiwiX2JldGEiLCJfZ2FtbWEiLCJmbGF0dGVuTWF0cml4IiwiaW52ZXJ0TWF0cml4IiwiZ2VuZXJhdGVNYXRyaXhGcm9tT3BlcmF0aW9ucyIsInR5cGUiLCJhbmdsZSIsImpvaW4iLCJjcmVhdGVFbGVtZW50IiwiU3R5bGVzIiwicGFyYWxsYXgiLCJQYXJhbGxheCIsImZvcndhcmRSZWYiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9QYXJhbGxheC9QYXJhbGxheC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7XG4gIERldGFpbGVkSFRNTFByb3BzLFxuICBGb3J3YXJkZWRSZWYsXG4gIGZvcndhcmRSZWYsXG4gIEhUTUxBdHRyaWJ1dGVzLFxuICBNdXRhYmxlUmVmT2JqZWN0LFxuICBQcm9wc1dpdGhDaGlsZHJlbixcbiAgdXNlRWZmZWN0LFxuICB1c2VSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFN0eWxlcyBmcm9tIFwiLi9QYXJhbGxheC5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHsgdGhyb3R0bGUgfSBmcm9tIFwibG9kYXNoXCI7XG5pbXBvcnQge1xuICBmbGF0dGVuTWF0cml4LFxuICBnZW5lcmF0ZU1hdHJpeEZyb21PcGVyYXRpb25zLFxuICBpbnZlcnRNYXRyaXgsXG59IGZyb20gXCIuL21hdGgvaGVscGVyc1wiO1xuXG5jb25zdCBNQVhJTVVNX1BBUkFMTEFYID0ge1xuICB4OiAyMCxcbiAgeTogMjAsXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gY2FsY3VsYXRlRGlzdGFuY2VSZWxhdGl2ZVRvQm91bmRzKFxuICBtb3VzZVBvc2l0aW9uOiBudW1iZXIsXG4gIGVsZW1lbnRJbml0aWFsUG9zaXRpb246IG51bWJlcixcbiAgZWxlbWVudFNpemVEaW1lbnNpb246IG51bWJlclxuKSB7XG4gIGNvbnN0IG5vcm1hbGl6ZUluaXRpYWxQb3NpdGlvbiA9IG1vdXNlUG9zaXRpb24gLSBlbGVtZW50SW5pdGlhbFBvc2l0aW9uO1xuICBjb25zdCBkb05vdEFsbG93R29pbmdCZXlvbmRMb3dlckxpbWl0ID0gTWF0aC5tYXgobm9ybWFsaXplSW5pdGlhbFBvc2l0aW9uLCAwKTtcbiAgY29uc3QgZG9Ob3RBbGxvd0hvaW5nQmV5b25kSGlnaGVyTGltaXQgPSBNYXRoLm1pbihcbiAgICBkb05vdEFsbG93R29pbmdCZXlvbmRMb3dlckxpbWl0LFxuICAgIGVsZW1lbnRTaXplRGltZW5zaW9uXG4gICk7XG4gIGNvbnN0IHRocmVlUnVsZSA9XG4gICAgKGRvTm90QWxsb3dIb2luZ0JleW9uZEhpZ2hlckxpbWl0ICogMTAwKSAvIGVsZW1lbnRTaXplRGltZW5zaW9uO1xuICBjb25zdCByZXN1bHQgPSBNYXRoLnJvdW5kKHRocmVlUnVsZSkgLyAxMDA7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnaXZlblRoZVJlbGF0aXZlUG9zaXRpb25Ib3dNdWNoVG9Sb3RhdGUoXG4gIHJlbGF0aXZlUG9zaXRpb246IG51bWJlcixcbiAgbWF4Um90YXRpb246IG51bWJlclxuKSB7XG4gIHJldHVybiByZWxhdGl2ZVBvc2l0aW9uICogbWF4Um90YXRpb24gLSBtYXhSb3RhdGlvbiAvIDI7XG59XG5cbnR5cGUgUHJvcHMgPSBQcm9wc1dpdGhDaGlsZHJlbjx7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgYWN0aXZlOiBib29sZWFuO1xuICBvbkNsaWNrPzogKGU6IGFueSkgPT4gdm9pZDtcbiAgcmVmbGVjdGlvbj86IGJvb2xlYW47XG4gIG1heFBhcmFsbGF4Pzoge1xuICAgIHg6IG51bWJlcjtcbiAgICB5OiBudW1iZXI7XG4gIH07XG59PiAmXG4gIERldGFpbGVkSFRNTFByb3BzPEhUTUxBdHRyaWJ1dGVzPEhUTUxEaXZFbGVtZW50PiwgSFRNTERpdkVsZW1lbnQ+O1xuXG5mdW5jdGlvbiBfUGFyYWxsYXgoXG4gIHtcbiAgICBjaGlsZHJlbixcbiAgICBjbGFzc05hbWUgPSBcIlwiLFxuICAgIGFjdGl2ZSxcbiAgICBvbkNsaWNrLFxuICAgIHJlZmxlY3Rpb24sXG4gICAgbWF4UGFyYWxsYXggPSBNQVhJTVVNX1BBUkFMTEFYLFxuICAgIC4uLnByb3BzXG4gIH06IFByb3BzLFxuICByZWY6IEZvcndhcmRlZFJlZjxIVE1MRGl2RWxlbWVudD5cbikge1xuICBjb25zdCBwYXJhbGxheGFibGVSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCByZWZsZWN0aW9uUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgY29uc3QgbXVsdGlwbGllclJlZiA9IHVzZVJlZjxudW1iZXI+KDEpO1xuICBjb25zdCBpbml0aWFsUG9zaXRpb25SZWYgPSB1c2VSZWY8c3RyaW5nPih1bmRlZmluZWQpO1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChyZWYpXG4gICAgICAocmVmIGFzIE11dGFibGVSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+KS5jdXJyZW50ID1cbiAgICAgICAgcGFyYWxsYXhhYmxlUmVmLmN1cnJlbnQhO1xuICAgIGNvbnN0IGVsID0gcGFyYWxsYXhhYmxlUmVmLmN1cnJlbnQhO1xuICAgIGlmIChhY3RpdmUgJiYgIWluaXRpYWxQb3NpdGlvblJlZi5jdXJyZW50KSB7XG4gICAgICBpbml0aWFsUG9zaXRpb25SZWYuY3VycmVudCA9IGdldENvbXB1dGVkU3R5bGUoZWwpLnRyYW5zZm9ybTtcbiAgICAgIGlmIChpbml0aWFsUG9zaXRpb25SZWYuY3VycmVudCA9PT0gXCJub25lXCIpXG4gICAgICAgIGluaXRpYWxQb3NpdGlvblJlZi5jdXJyZW50ID0gXCJcIjtcbiAgICAgIGVsLnN0eWxlLnRyYW5zZm9ybSA9IGAke2luaXRpYWxQb3NpdGlvblJlZi5jdXJyZW50fSByb3RhdGVYKDBkZWcpIHJvdGF0ZVkoMGRlZykgdHJhbnNsYXRlWigwcHgpYDtcbiAgICB9XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gIH0sIFthY3RpdmVdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGVsID0gcGFyYWxsYXhhYmxlUmVmLmN1cnJlbnQhO1xuICAgIGlmIChhY3RpdmUpIHtcbiAgICAgIGNvbnN0IHVwZGF0ZVBvc2l0aW9ucyA9IChyZWxhdGl2ZVRvWDogbnVtYmVyLCByZWxhdGl2ZVRvWTogbnVtYmVyKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlY3QgPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIHdpZHRoOiBbeDAsIHhXXSxcbiAgICAgICAgICBoZWlnaHQ6IFt5MCwgeUhdLFxuICAgICAgICB9ID0ge1xuICAgICAgICAgIHdpZHRoOiBbcmVjdC5sZWZ0LCBlbC5jbGllbnRXaWR0aF0sXG4gICAgICAgICAgaGVpZ2h0OiBbcmVjdC50b3AsIGVsLmNsaWVudEhlaWdodF0sXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGRpc3RhbmNlT2ZmUmlnaHQgPSBjYWxjdWxhdGVEaXN0YW5jZVJlbGF0aXZlVG9Cb3VuZHMoXG4gICAgICAgICAgcmVsYXRpdmVUb1gsXG4gICAgICAgICAgeDAsXG4gICAgICAgICAgeFdcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgZGlzdGFuY2VPZmZCb3R0b20gPSBjYWxjdWxhdGVEaXN0YW5jZVJlbGF0aXZlVG9Cb3VuZHMoXG4gICAgICAgICAgcmVsYXRpdmVUb1ksXG4gICAgICAgICAgeTAsXG4gICAgICAgICAgeUhcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgaG93TXVjaFRvUm90YXRlWSA9XG4gICAgICAgICAgZ2l2ZW5UaGVSZWxhdGl2ZVBvc2l0aW9uSG93TXVjaFRvUm90YXRlKFxuICAgICAgICAgICAgZGlzdGFuY2VPZmZSaWdodCxcbiAgICAgICAgICAgIG1heFBhcmFsbGF4LnlcbiAgICAgICAgICApICogbXVsdGlwbGllclJlZi5jdXJyZW50O1xuICAgICAgICBjb25zdCBob3dNdWNoVG9Sb3RhdGVYID1cbiAgICAgICAgICBnaXZlblRoZVJlbGF0aXZlUG9zaXRpb25Ib3dNdWNoVG9Sb3RhdGUoXG4gICAgICAgICAgICBkaXN0YW5jZU9mZkJvdHRvbSxcbiAgICAgICAgICAgIG1heFBhcmFsbGF4LnhcbiAgICAgICAgICApICogbXVsdGlwbGllclJlZi5jdXJyZW50O1xuXG4gICAgICAgIGNvbnN0IGhvd011Y2hUb09wYWNpZnkgPSBNYXRoLmFicyhcbiAgICAgICAgICBNYXRoLmFicyhkaXN0YW5jZU9mZkJvdHRvbSAtIDAuNSkgLyAwLjVcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgaG93TXVjaFRvT3BhY2lmeUhvcml6b250YWwgPSBNYXRoLm1heChcbiAgICAgICAgICBNYXRoLmFicyhNYXRoLmFicyhkaXN0YW5jZU9mZlJpZ2h0IC0gMC41KSAvIDAuNSksXG4gICAgICAgICAgTWF0aC5hYnMoTWF0aC5hYnMoZGlzdGFuY2VPZmZCb3R0b20gLSAwLjUpIC8gMC41KVxuICAgICAgICApO1xuXG4gICAgICAgIGVsLnN0eWxlLnRyYW5zZm9ybSA9IGAke1xuICAgICAgICAgIGluaXRpYWxQb3NpdGlvblJlZi5jdXJyZW50XG4gICAgICAgIH0gcm90YXRlWSgke2hvd011Y2hUb1JvdGF0ZVl9ZGVnKSByb3RhdGVYKCR7LWhvd011Y2hUb1JvdGF0ZVh9ZGVnKSB0cmFuc2xhdGVaKCR7XG4gICAgICAgICAgbXVsdGlwbGllclJlZi5jdXJyZW50ID09PSAxID8gMCA6IC0zMFxuICAgICAgICB9cHgpYDtcblxuICAgICAgICBpZiAocmVmbGVjdGlvblJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgcmVmbGVjdGlvblJlZi5jdXJyZW50LnN0eWxlLmxlZnQgPSBgJHsoMSAtIGRpc3RhbmNlT2ZmUmlnaHQpICogMTAwfSVgO1xuICAgICAgICAgIHJlZmxlY3Rpb25SZWYuY3VycmVudC5zdHlsZS50b3AgPSBgJHsoMSAtIGRpc3RhbmNlT2ZmQm90dG9tKSAqIDEwMH0lYDtcbiAgICAgICAgICByZWZsZWN0aW9uUmVmLmN1cnJlbnQuc3R5bGUub3BhY2l0eSA9IGAke01hdGgubWluKFxuICAgICAgICAgICAgaG93TXVjaFRvT3BhY2lmeSxcbiAgICAgICAgICAgIGhvd011Y2hUb09wYWNpZnlIb3Jpem9udGFsXG4gICAgICAgICAgKX1gO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgY29uc3QgaGFuZGxlciA9IHRocm90dGxlKCh7IHgsIHkgfTogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICB1cGRhdGVQb3NpdGlvbnMoeCwgeSk7XG4gICAgICB9LCAxMDAwIC8gMzApO1xuICAgICAgY29uc3QgdG91Y2hIYW5kbGVyID0gdGhyb3R0bGUoKHsgdG91Y2hlcyB9OiBUb3VjaEV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IHsgcGFnZVgsIHBhZ2VZIH0gPSB0b3VjaGVzWzBdO1xuICAgICAgICB1cGRhdGVQb3NpdGlvbnMocGFnZVgsIHBhZ2VZKTtcbiAgICAgIH0sIDEwMDAgLyAzMCk7XG4gICAgICBjb25zdCBtb3VzZURvd25IYW5kbGVyID0gKCkgPT4ge1xuICAgICAgICBtdWx0aXBsaWVyUmVmLmN1cnJlbnQgPSAxLjU7XG4gICAgICB9O1xuICAgICAgY29uc3QgbW91c2VVcEhhbmRsZXIgPSAoKSA9PiB7XG4gICAgICAgIG11bHRpcGxpZXJSZWYuY3VycmVudCA9IDE7XG4gICAgICB9O1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZW1vdmVcIiwgaGFuZGxlcik7XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInRvdWNobW92ZVwiLCB0b3VjaEhhbmRsZXIpO1xuICAgICAgbGV0IF9pbnZlcnNlTWF0cml4OiBudW1iZXJbXSB8IHVuZGVmaW5lZDtcbiAgICAgIGNvbnN0IF9saW1pdHM6IHtcbiAgICAgICAgW2sgaW4gXCJiZXRhXCIgfCBcImdhbW1hXCJdPzogW251bWJlciwgbnVtYmVyXTtcbiAgICAgIH0gPSB7XG4gICAgICAgIGJldGE6IHVuZGVmaW5lZCxcbiAgICAgICAgZ2FtbWE6IHVuZGVmaW5lZCxcbiAgICAgIH07XG4gICAgICBjb25zdCBvcmllbnRhdGlvbkxpc3RlbmVyOiAoZTogRGV2aWNlT3JpZW50YXRpb25FdmVudCkgPT4gdm9pZCA9ICh7XG4gICAgICAgIGJldGEsXG4gICAgICAgIGdhbW1hLFxuICAgICAgfSkgPT4ge1xuICAgICAgICBiZXRhID0gYmV0YSEgKiAwLjU7XG4gICAgICAgIGdhbW1hID0gZ2FtbWEhICogMC41O1xuICAgICAgICBpZiAoIV9pbnZlcnNlTWF0cml4KSB7XG4gICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZW1vdmVcIiwgaGFuZGxlcik7XG4gICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0b3VjaG1vdmVcIiwgdG91Y2hIYW5kbGVyKTtcbiAgICAgICAgICBjb25zdCBvZmZzZXQgPSAxMi41O1xuICAgICAgICAgIF9saW1pdHMuYmV0YSA9IFtiZXRhISAtIG9mZnNldCwgYmV0YSEgKyBvZmZzZXRdO1xuICAgICAgICAgIF9saW1pdHMuZ2FtbWEgPSBbZ2FtbWEhIC0gb2Zmc2V0LCBnYW1tYSEgKyBvZmZzZXRdO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IF9iZXRhID0gTWF0aC5taW4oXG4gICAgICAgICAgX2xpbWl0cy5iZXRhIVsxXSxcbiAgICAgICAgICBNYXRoLm1heChfbGltaXRzLmJldGEhWzBdLCBiZXRhISlcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgX2dhbW1hID0gTWF0aC5taW4oXG4gICAgICAgICAgX2xpbWl0cy5nYW1tYSFbMV0sXG4gICAgICAgICAgTWF0aC5tYXgoX2xpbWl0cy5nYW1tYSFbMF0sIGdhbW1hISlcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKCFfaW52ZXJzZU1hdHJpeCkge1xuICAgICAgICAgIF9pbnZlcnNlTWF0cml4ID0gZmxhdHRlbk1hdHJpeChcbiAgICAgICAgICAgIGludmVydE1hdHJpeChcbiAgICAgICAgICAgICAgZ2VuZXJhdGVNYXRyaXhGcm9tT3BlcmF0aW9ucyhcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICB0eXBlOiBcInJvdGF0ZVlcIixcbiAgICAgICAgICAgICAgICAgIGFuZ2xlOiBfZ2FtbWEhLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgdHlwZTogXCJyb3RhdGVYXCIsXG4gICAgICAgICAgICAgICAgICBhbmdsZTogLV9iZXRhISxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIClcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGVsLnN0eWxlLnRyYW5zZm9ybSA9IGBtYXRyaXgzZCgke19pbnZlcnNlTWF0cml4LmpvaW4oXG4gICAgICAgICAgXCIsXCJcbiAgICAgICAgKX0pIHJvdGF0ZVgoJHstX2JldGEhfWRlZykgcm90YXRlWSgke19nYW1tYX1kZWcpYDtcbiAgICAgIH07XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImRldmljZW9yaWVudGF0aW9uXCIsIG9yaWVudGF0aW9uTGlzdGVuZXIpO1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaGVuZFwiLCAoKSA9PiB7XG4gICAgICAgIF9pbnZlcnNlTWF0cml4ID0gdW5kZWZpbmVkO1xuICAgICAgfSk7XG4gICAgICBlbC5hZGRFdmVudExpc3RlbmVyKFwidG91Y2hzdGFydFwiLCBtb3VzZURvd25IYW5kbGVyKTtcbiAgICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaGVuZFwiLCBtb3VzZVVwSGFuZGxlcik7XG4gICAgICBlbC5hZGRFdmVudExpc3RlbmVyKFwibW91c2Vkb3duXCIsIG1vdXNlRG93bkhhbmRsZXIpO1xuICAgICAgZWwuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNldXBcIiwgbW91c2VVcEhhbmRsZXIpO1xuXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImRldmljZW9yaWVudGF0aW9uXCIsIG9yaWVudGF0aW9uTGlzdGVuZXIpO1xuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlbW92ZVwiLCBoYW5kbGVyKTtcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0b3VjaG1vdmVcIiwgdG91Y2hIYW5kbGVyKTtcbiAgICAgICAgZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlZG93blwiLCBtb3VzZURvd25IYW5kbGVyKTtcbiAgICAgICAgZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNldXBcIiwgbW91c2VVcEhhbmRsZXIpO1xuICAgICAgICBlbC5yZW1vdmVFdmVudExpc3RlbmVyKFwidG91Y2hzdGFydFwiLCBtb3VzZURvd25IYW5kbGVyKTtcbiAgICAgICAgZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRvdWNoZW5kXCIsIG1vdXNlVXBIYW5kbGVyKTtcbiAgICAgICAgLy8gZWwuc3R5bGUudHJhbnNmb3JtID0gaW5pdGlhbFBvc2l0aW9uUmVmLmN1cnJlbnQhO1xuICAgICAgICBlbC5zdHlsZS50cmFuc2Zvcm0gPSBgcm90YXRlWCgwZGVnKSByb3RhdGVZKDBkZWcpIHRyYW5zbGF0ZVooMHB4KWA7XG4gICAgICB9O1xuICAgIH1cbiAgfSwgW2FjdGl2ZV0pO1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIG9uQ2xpY2s9e29uQ2xpY2t9XG4gICAgICByZWY9e3BhcmFsbGF4YWJsZVJlZn1cbiAgICAgIGNsYXNzTmFtZT17YCR7U3R5bGVzLnBhcmFsbGF4fSAke2NsYXNzTmFtZX1gfVxuICAgICAgey4uLnByb3BzfVxuICAgID5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICAgIHtyZWZsZWN0aW9uICYmIDxkaXYgcmVmPXtyZWZsZWN0aW9uUmVmfSBjbGFzc05hbWU9e1N0eWxlcy5yZWZsZWN0aW9ufSAvPn1cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuLyoqXG4gKiBJdCBob2xkcyBhIGNoaWxkcmVuIGFuZCBhbmltYXRlcyBhIHRpbHQgZWZmZWN0IHJlbGF0aXZlIHRvIG1vdXNlIHBvc2l0aW9uXG4gKiovXG5jb25zdCBQYXJhbGxheCA9IGZvcndhcmRSZWYoX1BhcmFsbGF4KTtcbmV4cG9ydCBkZWZhdWx0IFBhcmFs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
@@ -27,17 +27,17 @@ declare const PasswordInput: React.ForwardRefExoticComponent<(({
27
27
  passwordsAreDifferent: string;
28
28
  };
29
29
  })) & Omit<{
30
- decoration?: React.ReactElement<any, string | React.JSXElementConstructor<any>> | null | undefined;
31
- error?: string | React.ReactElement<any, string | React.JSXElementConstructor<any>> | undefined;
30
+ decoration?: React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | null | undefined;
31
+ error?: string | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | undefined;
32
32
  hideError?: "onfocus" | undefined;
33
33
  placeholder?: string | undefined;
34
- disclaimer?: string | React.ReactElement<any, string | React.JSXElementConstructor<any>> | undefined;
34
+ disclaimer?: string | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | undefined;
35
35
  multiline?: number | undefined;
36
36
  border?: boolean | undefined;
37
37
  icon?: ({
38
38
  onClick?: (() => void) | undefined;
39
39
  } & React.ClassAttributes<any> & React.ImgHTMLAttributes<HTMLImageElement>) | undefined;
40
- Icon?: React.ReactElement<any, string | React.JSXElementConstructor<any>> | undefined;
40
+ Icon?: React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | undefined;
41
41
  onChange?: React.ChangeEventHandler<HTMLInputElement | HTMLTextAreaElement> | undefined;
42
42
  containerProps?: Omit<React.HTMLProps<HTMLDivElement>, "ref"> | undefined;
43
43
  } & Omit<React.HTMLProps<HTMLInputElement | HTMLTextAreaElement>, "ref" | "onChange"> & React.RefAttributes<any>, "ref" | "onChange" | "value">) & React.RefAttributes<{
@@ -89,7 +89,9 @@ function GridRow(_ref2) {
89
89
  animationDelay: `${AnimDuration / lineCount * (lineIndex - 1)}ms`
90
90
  }
91
91
  }, squares.map((_, i) => /*#__PURE__*/_react.default.createElement(GridItem, {
92
- ref: refNode => gridItemsRefs.current[i] = refNode,
92
+ ref: refNode => {
93
+ gridItemsRefs.current[i] = refNode;
94
+ },
93
95
  key: i,
94
96
  size: size,
95
97
  baseColor: baseColor
@@ -124,4 +126,4 @@ function _GridItem(_ref3, externalRef) {
124
126
  });
125
127
  }
126
128
  const GridItem = /*#__PURE__*/(0, _react.forwardRef)(_GridItem);
127
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfUGl4ZWxhdGVkU2Nhbk1vZHVsZSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY2hyb21hSnMiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0IiwiQW5pbUR1cmF0aW9uIiwiTnVtYmVyIiwiU3R5bGVzIiwiYW5pbWF0aW9uRHVyYXRpb24iLCJQaXhlbGF0ZWRTY2FuIiwiX3JlZiIsInNxdWFyZXNCeUxpbmUiLCJjb2xvciIsImNsYXNzTmFtZSIsIml0ZXJhdGlvbiIsInVzZVJlZiIsInRhYmxlUmVmIiwiY29uZmlnIiwic2V0Q29uZmlnIiwidXNlU3RhdGUiLCJ1c2VFZmZlY3QiLCJzcXVhcmVTaXplIiwiY3VycmVudCIsImNsaWVudFdpZHRoIiwiaG93TXVjaExpbmVzIiwiY2xpZW50SGVpZ2h0Iiwicm93c0RlZiIsInVzZU1lbW8iLCJBcnJheSIsIk1hdGgiLCJjZWlsIiwiZmlsbCIsInVuZGVmaW5lZCIsImxpbmVEZWYiLCJjcmVhdGVFbGVtZW50IiwiRnJhZ21lbnQiLCJncmlkIiwiaXRlcmF0ZSIsInJlZiIsIm1hcCIsIl8iLCJpUm93IiwiX3Jvd3MiLCJHcmlkUm93Iiwic3F1YXJlcyIsInNpemUiLCJiYXNlQ29sb3IiLCJsaW5lQ291bnQiLCJsaW5lSW5kZXgiLCJvbkZpbmlzaCIsImxlbmd0aCIsImNsYXNzTGlzdCIsInJlbW92ZSIsImFkZCIsImludmVyc2UiLCJzZXRUaW1lb3V0IiwiZ3VpZGUiLCJfcmVmMiIsImdyaWRJdGVtc1JlZnMiLCJfcmVmJGN1cnJlbnQiLCJ1cGRhdGVDb2xvciIsImZvckVhY2giLCJpIiwiYWRkRXZlbnRMaXN0ZW5lciIsIl9yZWYkY3VycmVudDIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiZ3JpZEFuaW1hdGUiLCJvbkFuaW1hdGlvbkVuZCIsInN0eWxlIiwiYW5pbWF0aW9uRGVsYXkiLCJHcmlkSXRlbSIsInJlZk5vZGUiLCJfR3JpZEl0ZW0iLCJfcmVmMyIsImV4dGVybmFsUmVmIiwiY2FsY3VsYXRlTmV3UmFuZG9tQ29sb3JTdHJlbmd0aCIsImNocm9tYWpzIiwiaGV4IiwiYWxwaGEiLCJyYW5kb20iLCJyYW5kb21Db2xvclN0cmVuZ3RoIiwic2V0UmFuZG9tQ29sb3JTdHJlbmd0aCIsInVzZUltcGVyYXRpdmVIYW5kbGUiLCJncmlkSXRlbSIsIndpZHRoIiwiaGVpZ2h0IiwiZm9yd2FyZFJlZiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1BpeGVsYXRlZFNjYW4vUGl4ZWxhdGVkU2Nhbi50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7XG4gIEVsZW1lbnRSZWYsXG4gIEZvcndhcmRlZFJlZixcbiAgZm9yd2FyZFJlZixcbiAgUmVmT2JqZWN0LFxuICB1c2VFZmZlY3QsXG4gIHVzZUltcGVyYXRpdmVIYW5kbGUsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZixcbiAgdXNlU3RhdGUsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFN0eWxlcyBmcm9tIFwiLi9QaXhlbGF0ZWRTY2FuLm1vZHVsZS5zY3NzXCI7XG5pbXBvcnQgY2hyb21hanMgZnJvbSBcImNocm9tYS1qc1wiO1xuXG5jb25zdCBBbmltRHVyYXRpb24gPSBOdW1iZXIoU3R5bGVzLmFuaW1hdGlvbkR1cmF0aW9uKTtcblxuLyoqXG4gKiBUaGlzIGVmZmVjdCBzY2FucyB1cCBhbmQgZG93biBvbiB0aGUgZGl2IHdpdGggYSBmb2xsb3dpbmcgcGl4ZWxhdGVkIHRyYWlsXG4gKiovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBQaXhlbGF0ZWRTY2FuKHtcbiAgc3F1YXJlc0J5TGluZSxcbiAgY29sb3IsXG4gIGNsYXNzTmFtZSA9IFwiXCIsXG59OiB7XG4gIHNxdWFyZXNCeUxpbmU6IG51bWJlcjtcbiAgY29sb3I6IHN0cmluZztcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xufSkge1xuICBjb25zdCBpdGVyYXRpb24gPSB1c2VSZWYoMCk7XG4gIGNvbnN0IHRhYmxlUmVmID0gdXNlUmVmPEhUTUxUYWJsZUVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCBbY29uZmlnLCBzZXRDb25maWddID1cbiAgICB1c2VTdGF0ZTx7IHNxdWFyZVNpemU6IG51bWJlcjsgaG93TXVjaExpbmVzOiBudW1iZXIgfT4oKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHNxdWFyZVNpemUgPSB0YWJsZVJlZi5jdXJyZW50IS5jbGllbnRXaWR0aCAvIHNxdWFyZXNCeUxpbmU7XG4gICAgY29uc3QgaG93TXVjaExpbmVzID0gdGFibGVSZWYuY3VycmVudCEuY2xpZW50SGVpZ2h0IC8gc3F1YXJlU2l6ZTtcblxuICAgIHNldENvbmZpZyh7XG4gICAgICBzcXVhcmVTaXplLFxuICAgICAgaG93TXVjaExpbmVzLFxuICAgIH0pO1xuICB9LCBbXSk7XG4gIGNvbnN0IHJvd3NEZWYgPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4gbmV3IEFycmF5KE1hdGguY2VpbChjb25maWc/Lmhvd011Y2hMaW5lcyB8fCAwKSkuZmlsbCh1bmRlZmluZWQpO1xuICB9LCBbY29uZmlnXSk7XG4gIGNvbnN0IGxpbmVEZWYgPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4gbmV3IEFycmF5KHNxdWFyZXNCeUxpbmUpLmZpbGwodW5kZWZpbmVkKTtcbiAgfSwgW2NvbmZpZ10pO1xuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT17YCR7U3R5bGVzLmdyaWR9ICR7U3R5bGVzLml0ZXJhdGV9ICR7Y2xhc3NOYW1lfWB9XG4gICAgICAgIHJlZj17dGFibGVSZWZ9XG4gICAgICA+XG4gICAgICAgIHtyb3dzRGVmLm1hcCgoXywgaVJvdywgX3Jvd3MpID0+IChcbiAgICAgICAgICA8R3JpZFJvd1xuICAgICAgICAgICAga2V5PXtgJHtpUm93fWB9XG4gICAgICAgICAgICBzcXVhcmVzPXtsaW5lRGVmfVxuICAgICAgICAgICAgc2l6ZT17Y29uZmlnIS5zcXVhcmVTaXplfVxuICAgICAgICAgICAgYmFzZUNvbG9yPXtjb2xvcn1cbiAgICAgICAgICAgIGxpbmVDb3VudD17Y29uZmlnIS5ob3dNdWNoTGluZXN9XG4gICAgICAgICAgICBsaW5lSW5kZXg9e2lSb3d9XG4gICAgICAgICAgICBvbkZpbmlzaD17XG4gICAgICAgICAgICAgIGlSb3cgPT09IF9yb3dzLmxlbmd0aCAtIDZcbiAgICAgICAgICAgICAgICA/ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGFibGVSZWYuY3VycmVudCEuY2xhc3NMaXN0LnJlbW92ZShTdHlsZXMuaXRlcmF0ZSk7XG4gICAgICAgICAgICAgICAgICAgIGl0ZXJhdGlvbi5jdXJyZW50ICs9IDE7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpdGVyYXRpb24uY3VycmVudCAlIDIgPT09IDEpXG4gICAgICAgICAgICAgICAgICAgICAgdGFibGVSZWYuY3VycmVudCEuY2xhc3NMaXN0LmFkZChTdHlsZXMuaW52ZXJzZSk7XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgdGFibGVSZWYuY3VycmVudCEuY2xhc3NMaXN0LnJlbW92ZShTdHlsZXMuaW52ZXJzZSk7XG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIHRhYmxlUmVmLmN1cnJlbnQhLmNsYXNzTGlzdC5hZGQoU3R5bGVzLml0ZXJhdGUpO1xuICAgICAgICAgICAgICAgICAgICB9LCAxMDApO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgICAgICAgICB9XG4gICAgICAgICAgLz5cbiAgICAgICAgKSl9XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtTdHlsZXMuZ3VpZGV9IC8+XG4gICAgICA8L2Rpdj5cbiAgICA8Lz5cbiAgKTtcbn1cblxuZnVuY3Rpb24gR3JpZFJvdyh7XG4gIG9uRmluaXNoLFxuICBzcXVhcmVzLFxuICBzaXplLFxuICBiYXNlQ29sb3IsXG4gIGxpbmVDb3VudCxcbiAgbGluZUluZGV4LFxufToge1xuICBzcXVhcmVzOiBBcnJheTxhbnk+O1xuICBvbkZpbmlzaD86ICgpID0+IHZvaWQ7XG4gIHNpemU6IG51bWJlcjtcbiAgYmFzZUNvbG9yPzogc3RyaW5nO1xuICBsaW5lQ291bnQ6IG51bWJlcjtcbiAgbGluZUluZGV4OiBudW1iZXI7XG59KSB7XG4gIGNvbnN0IHJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IGdyaWRJdGVtc1JlZnMgPSB1c2VSZWY8KEVsZW1lbnRSZWY8dHlwZW9mIEdyaWRJdGVtPiB8IG51bGwpW10+KFtdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGZ1bmN0aW9uIHVwZGF0ZUNvbG9yKCkge1xuICAgICAgZ3JpZEl0ZW1zUmVmcy5jdXJyZW50LmZvckVhY2goKGkpID0+IGk/LnVwZGF0ZUNvbG9yKCkpO1xuICAgIH1cbiAgICByZWYuY3VycmVudD8uYWRkRXZlbnRMaXN0ZW5lcihcImFuaW1hdGlvbmVuZFwiLCB1cGRhdGVDb2xvcik7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgcmVmLmN1cnJlbnQ/LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJhbmltYXRpb25lbmRcIiwgdXBkYXRlQ29sb3IpO1xuICAgIH07XG4gIH0sIFtdKTtcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjbGFzc05hbWU9e1N0eWxlcy5ncmlkQW5pbWF0ZX1cbiAgICAgIG9uQW5pbWF0aW9uRW5kPXtvbkZpbmlzaH1cbiAgICAgIHN0eWxlPXt7XG4gICAgICAgIGFuaW1hdGlvbkRlbGF5OiBgJHsoQW5pbUR1cmF0aW9uIC8gbGluZUNvdW50KSAqIChsaW5lSW5kZXggLSAxKX1tc2AsXG4gICAgICB9fVxuICAgID5cbiAgICAgIHtzcXVhcmVzLm1hcCgoXywgaSkgPT4gKFxuICAgICAgICA8R3JpZEl0ZW1cbiAgICAgICAgICByZWY9eyhyZWZOb2RlKSA9PiAoZ3JpZEl0ZW1zUmVmcy5jdXJyZW50W2ldID0gcmVmTm9kZSl9XG4gICAgICAgICAga2V5PXtpfVxuICAgICAgICAgIHNpemU9e3NpemV9XG4gICAgICAgICAgYmFzZUNvbG9yPXtiYXNlQ29sb3J9XG4gICAgICAgIC8+XG4gICAgICApKX1cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuZnVuY3Rpb24gX0dyaWRJdGVtKFxuICB7XG4gICAgc2l6ZSxcbiAgICBiYXNlQ29sb3IgPSBcIiNmZjBcIixcbiAgfToge1xuICAgIHNpemU6IG51bWJlcjtcbiAgICBiYXNlQ29sb3I/OiBzdHJpbmc7XG4gIH0sXG4gIGV4dGVybmFsUmVmOiBGb3J3YXJkZWRSZWY8eyB1cGRhdGVDb2xvcjogKCkgPT4gdm9pZCB9PlxuKSB7XG4gIGNvbnN0IHJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gIGZ1bmN0aW9uIGNhbGN1bGF0ZU5ld1JhbmRvbUNvbG9yU3RyZW5ndGgoKSB7XG4gICAgY29uc3QgY29sb3IgPSBjaHJvbWFqcy5oZXgoYmFzZUNvbG9yKS5hbHBoYSgxIC0gTWF0aC5yYW5kb20oKSAqIDAuMyk7XG4gICAgcmV0dXJuIGNvbG9yO1xuICB9XG4gIGNvbnN0IFtyYW5kb21Db2xvclN0cmVuZ3RoLCBzZXRSYW5kb21Db2xvclN0cmVuZ3RoXSA9XG4gICAgdXNlU3RhdGU8Y2hyb21hanMuQ29sb3I+KGNhbGN1bGF0ZU5ld1JhbmRvbUNvbG9yU3RyZW5ndGgpO1xuXG4gIHVzZUltcGVyYXRpdmVIYW5kbGUoXG4gICAgZXh0ZXJuYWxSZWYsXG4gICAgKCkgPT4gKHtcbiAgICAgIHVwZGF0ZUNvbG9yOiAoKSA9PiB7XG4gICAgICAgIHNldFJhbmRvbUNvbG9yU3RyZW5ndGgoY2FsY3VsYXRlTmV3UmFuZG9tQ29sb3JTdHJlbmd0aCgpKTtcbiAgICAgIH0sXG4gICAgfSksXG4gICAgW11cbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIHJlZj17cmVmfVxuICAgICAgY2xhc3NOYW1lPXtTdHlsZXMuZ3JpZEl0ZW19XG4gICAgICBzdHlsZT17e1xuICAgICAgICB3aWR0aDogc2l6ZSxcbiAgICAgICAgaGVpZ2h0OiBzaXplLFxuICAgICAgICAuLi4oeyBcIi0tcGl4ZWwtY29sb3JcIjogcmFuZG9tQ29sb3JTdHJlbmd0aC5oZXgoKSB9IGFzIGFueSksXG4gICAgICB9fVxuICAgIC8+XG4gICk7XG59XG5jb25zdCBHcmlkSXRlbSA9IGZvcndhcmRSZWYoX0dyaWRJdGVtKTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBV0EsSUFBQUMsb0JBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLFNBQUEsR0FBQUQsc0JBQUEsQ0FBQUYsT0FBQTtBQUFpQyxTQUFBRSx1QkFBQUUsR0FBQSxXQUFBQSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxHQUFBRCxHQUFBLEtBQUFFLE9BQUEsRUFBQUYsR0FBQTtBQUFBLFNBQUFHLHlCQUFBQyxXQUFBLGVBQUFDLE9BQUEsa0NBQUFDLGlCQUFBLE9BQUFELE9BQUEsUUFBQUUsZ0JBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSxDQUFBQyxXQUFBLFdBQUFBLFdBQUEsR0FBQUcsZ0JBQUEsR0FBQUQsaUJBQUEsS0FBQUYsV0FBQTtBQUFBLFNBQUFULHdCQUFBSyxHQUFBLEVBQUFJ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
129
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfUGl4ZWxhdGVkU2Nhbk1vZHVsZSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY2hyb21hSnMiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0IiwiQW5pbUR1cmF0aW9uIiwiTnVtYmVyIiwiU3R5bGVzIiwiYW5pbWF0aW9uRHVyYXRpb24iLCJQaXhlbGF0ZWRTY2FuIiwiX3JlZiIsInNxdWFyZXNCeUxpbmUiLCJjb2xvciIsImNsYXNzTmFtZSIsIml0ZXJhdGlvbiIsInVzZVJlZiIsInRhYmxlUmVmIiwiY29uZmlnIiwic2V0Q29uZmlnIiwidXNlU3RhdGUiLCJ1c2VFZmZlY3QiLCJzcXVhcmVTaXplIiwiY3VycmVudCIsImNsaWVudFdpZHRoIiwiaG93TXVjaExpbmVzIiwiY2xpZW50SGVpZ2h0Iiwicm93c0RlZiIsInVzZU1lbW8iLCJBcnJheSIsIk1hdGgiLCJjZWlsIiwiZmlsbCIsInVuZGVmaW5lZCIsImxpbmVEZWYiLCJjcmVhdGVFbGVtZW50IiwiRnJhZ21lbnQiLCJncmlkIiwiaXRlcmF0ZSIsInJlZiIsIm1hcCIsIl8iLCJpUm93IiwiX3Jvd3MiLCJHcmlkUm93Iiwic3F1YXJlcyIsInNpemUiLCJiYXNlQ29sb3IiLCJsaW5lQ291bnQiLCJsaW5lSW5kZXgiLCJvbkZpbmlzaCIsImxlbmd0aCIsImNsYXNzTGlzdCIsInJlbW92ZSIsImFkZCIsImludmVyc2UiLCJzZXRUaW1lb3V0IiwiZ3VpZGUiLCJfcmVmMiIsImdyaWRJdGVtc1JlZnMiLCJfcmVmJGN1cnJlbnQiLCJ1cGRhdGVDb2xvciIsImZvckVhY2giLCJpIiwiYWRkRXZlbnRMaXN0ZW5lciIsIl9yZWYkY3VycmVudDIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiZ3JpZEFuaW1hdGUiLCJvbkFuaW1hdGlvbkVuZCIsInN0eWxlIiwiYW5pbWF0aW9uRGVsYXkiLCJHcmlkSXRlbSIsInJlZk5vZGUiLCJfR3JpZEl0ZW0iLCJfcmVmMyIsImV4dGVybmFsUmVmIiwiY2FsY3VsYXRlTmV3UmFuZG9tQ29sb3JTdHJlbmd0aCIsImNocm9tYWpzIiwiaGV4IiwiYWxwaGEiLCJyYW5kb20iLCJyYW5kb21Db2xvclN0cmVuZ3RoIiwic2V0UmFuZG9tQ29sb3JTdHJlbmd0aCIsInVzZUltcGVyYXRpdmVIYW5kbGUiLCJncmlkSXRlbSIsIndpZHRoIiwiaGVpZ2h0IiwiZm9yd2FyZFJlZiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1BpeGVsYXRlZFNjYW4vUGl4ZWxhdGVkU2Nhbi50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7XG4gIEVsZW1lbnRSZWYsXG4gIEZvcndhcmRlZFJlZixcbiAgZm9yd2FyZFJlZixcbiAgUmVmT2JqZWN0LFxuICB1c2VFZmZlY3QsXG4gIHVzZUltcGVyYXRpdmVIYW5kbGUsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZixcbiAgdXNlU3RhdGUsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFN0eWxlcyBmcm9tIFwiLi9QaXhlbGF0ZWRTY2FuLm1vZHVsZS5zY3NzXCI7XG5pbXBvcnQgY2hyb21hanMgZnJvbSBcImNocm9tYS1qc1wiO1xuXG5jb25zdCBBbmltRHVyYXRpb24gPSBOdW1iZXIoU3R5bGVzLmFuaW1hdGlvbkR1cmF0aW9uKTtcblxuLyoqXG4gKiBUaGlzIGVmZmVjdCBzY2FucyB1cCBhbmQgZG93biBvbiB0aGUgZGl2IHdpdGggYSBmb2xsb3dpbmcgcGl4ZWxhdGVkIHRyYWlsXG4gKiovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBQaXhlbGF0ZWRTY2FuKHtcbiAgc3F1YXJlc0J5TGluZSxcbiAgY29sb3IsXG4gIGNsYXNzTmFtZSA9IFwiXCIsXG59OiB7XG4gIHNxdWFyZXNCeUxpbmU6IG51bWJlcjtcbiAgY29sb3I6IHN0cmluZztcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xufSkge1xuICBjb25zdCBpdGVyYXRpb24gPSB1c2VSZWYoMCk7XG4gIGNvbnN0IHRhYmxlUmVmID0gdXNlUmVmPEhUTUxUYWJsZUVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCBbY29uZmlnLCBzZXRDb25maWddID1cbiAgICB1c2VTdGF0ZTx7IHNxdWFyZVNpemU6IG51bWJlcjsgaG93TXVjaExpbmVzOiBudW1iZXIgfT4oKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHNxdWFyZVNpemUgPSB0YWJsZVJlZi5jdXJyZW50IS5jbGllbnRXaWR0aCAvIHNxdWFyZXNCeUxpbmU7XG4gICAgY29uc3QgaG93TXVjaExpbmVzID0gdGFibGVSZWYuY3VycmVudCEuY2xpZW50SGVpZ2h0IC8gc3F1YXJlU2l6ZTtcblxuICAgIHNldENvbmZpZyh7XG4gICAgICBzcXVhcmVTaXplLFxuICAgICAgaG93TXVjaExpbmVzLFxuICAgIH0pO1xuICB9LCBbXSk7XG4gIGNvbnN0IHJvd3NEZWYgPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4gbmV3IEFycmF5KE1hdGguY2VpbChjb25maWc/Lmhvd011Y2hMaW5lcyB8fCAwKSkuZmlsbCh1bmRlZmluZWQpO1xuICB9LCBbY29uZmlnXSk7XG4gIGNvbnN0IGxpbmVEZWYgPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4gbmV3IEFycmF5KHNxdWFyZXNCeUxpbmUpLmZpbGwodW5kZWZpbmVkKTtcbiAgfSwgW2NvbmZpZ10pO1xuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT17YCR7U3R5bGVzLmdyaWR9ICR7U3R5bGVzLml0ZXJhdGV9ICR7Y2xhc3NOYW1lfWB9XG4gICAgICAgIHJlZj17dGFibGVSZWZ9XG4gICAgICA+XG4gICAgICAgIHtyb3dzRGVmLm1hcCgoXywgaVJvdywgX3Jvd3MpID0+IChcbiAgICAgICAgICA8R3JpZFJvd1xuICAgICAgICAgICAga2V5PXtgJHtpUm93fWB9XG4gICAgICAgICAgICBzcXVhcmVzPXtsaW5lRGVmfVxuICAgICAgICAgICAgc2l6ZT17Y29uZmlnIS5zcXVhcmVTaXplfVxuICAgICAgICAgICAgYmFzZUNvbG9yPXtjb2xvcn1cbiAgICAgICAgICAgIGxpbmVDb3VudD17Y29uZmlnIS5ob3dNdWNoTGluZXN9XG4gICAgICAgICAgICBsaW5lSW5kZXg9e2lSb3d9XG4gICAgICAgICAgICBvbkZpbmlzaD17XG4gICAgICAgICAgICAgIGlSb3cgPT09IF9yb3dzLmxlbmd0aCAtIDZcbiAgICAgICAgICAgICAgICA/ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGFibGVSZWYuY3VycmVudCEuY2xhc3NMaXN0LnJlbW92ZShTdHlsZXMuaXRlcmF0ZSk7XG4gICAgICAgICAgICAgICAgICAgIGl0ZXJhdGlvbi5jdXJyZW50ICs9IDE7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpdGVyYXRpb24uY3VycmVudCAlIDIgPT09IDEpXG4gICAgICAgICAgICAgICAgICAgICAgdGFibGVSZWYuY3VycmVudCEuY2xhc3NMaXN0LmFkZChTdHlsZXMuaW52ZXJzZSk7XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgdGFibGVSZWYuY3VycmVudCEuY2xhc3NMaXN0LnJlbW92ZShTdHlsZXMuaW52ZXJzZSk7XG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIHRhYmxlUmVmLmN1cnJlbnQhLmNsYXNzTGlzdC5hZGQoU3R5bGVzLml0ZXJhdGUpO1xuICAgICAgICAgICAgICAgICAgICB9LCAxMDApO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgICAgICAgICB9XG4gICAgICAgICAgLz5cbiAgICAgICAgKSl9XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtTdHlsZXMuZ3VpZGV9IC8+XG4gICAgICA8L2Rpdj5cbiAgICA8Lz5cbiAgKTtcbn1cblxuZnVuY3Rpb24gR3JpZFJvdyh7XG4gIG9uRmluaXNoLFxuICBzcXVhcmVzLFxuICBzaXplLFxuICBiYXNlQ29sb3IsXG4gIGxpbmVDb3VudCxcbiAgbGluZUluZGV4LFxufToge1xuICBzcXVhcmVzOiBBcnJheTxhbnk+O1xuICBvbkZpbmlzaD86ICgpID0+IHZvaWQ7XG4gIHNpemU6IG51bWJlcjtcbiAgYmFzZUNvbG9yPzogc3RyaW5nO1xuICBsaW5lQ291bnQ6IG51bWJlcjtcbiAgbGluZUluZGV4OiBudW1iZXI7XG59KSB7XG4gIGNvbnN0IHJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IGdyaWRJdGVtc1JlZnMgPSB1c2VSZWY8KEVsZW1lbnRSZWY8dHlwZW9mIEdyaWRJdGVtPiB8IG51bGwpW10+KFtdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGZ1bmN0aW9uIHVwZGF0ZUNvbG9yKCkge1xuICAgICAgZ3JpZEl0ZW1zUmVmcy5jdXJyZW50LmZvckVhY2goKGkpID0+IGk/LnVwZGF0ZUNvbG9yKCkpO1xuICAgIH1cbiAgICByZWYuY3VycmVudD8uYWRkRXZlbnRMaXN0ZW5lcihcImFuaW1hdGlvbmVuZFwiLCB1cGRhdGVDb2xvcik7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgcmVmLmN1cnJlbnQ/LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJhbmltYXRpb25lbmRcIiwgdXBkYXRlQ29sb3IpO1xuICAgIH07XG4gIH0sIFtdKTtcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjbGFzc05hbWU9e1N0eWxlcy5ncmlkQW5pbWF0ZX1cbiAgICAgIG9uQW5pbWF0aW9uRW5kPXtvbkZpbmlzaH1cbiAgICAgIHN0eWxlPXt7XG4gICAgICAgIGFuaW1hdGlvbkRlbGF5OiBgJHsoQW5pbUR1cmF0aW9uIC8gbGluZUNvdW50KSAqIChsaW5lSW5kZXggLSAxKX1tc2AsXG4gICAgICB9fVxuICAgID5cbiAgICAgIHtzcXVhcmVzLm1hcCgoXywgaSkgPT4gKFxuICAgICAgICA8R3JpZEl0ZW1cbiAgICAgICAgICByZWY9eyhyZWZOb2RlKSA9PiB7XG4gICAgICAgICAgICBncmlkSXRlbXNSZWZzLmN1cnJlbnRbaV0gPSByZWZOb2RlO1xuICAgICAgICAgIH19XG4gICAgICAgICAga2V5PXtpfVxuICAgICAgICAgIHNpemU9e3NpemV9XG4gICAgICAgICAgYmFzZUNvbG9yPXtiYXNlQ29sb3J9XG4gICAgICAgIC8+XG4gICAgICApKX1cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuZnVuY3Rpb24gX0dyaWRJdGVtKFxuICB7XG4gICAgc2l6ZSxcbiAgICBiYXNlQ29sb3IgPSBcIiNmZjBcIixcbiAgfToge1xuICAgIHNpemU6IG51bWJlcjtcbiAgICBiYXNlQ29sb3I/OiBzdHJpbmc7XG4gIH0sXG4gIGV4dGVybmFsUmVmOiBGb3J3YXJkZWRSZWY8eyB1cGRhdGVDb2xvcjogKCkgPT4gdm9pZCB9PlxuKSB7XG4gIGNvbnN0IHJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gIGZ1bmN0aW9uIGNhbGN1bGF0ZU5ld1JhbmRvbUNvbG9yU3RyZW5ndGgoKSB7XG4gICAgY29uc3QgY29sb3IgPSBjaHJvbWFqcy5oZXgoYmFzZUNvbG9yKS5hbHBoYSgxIC0gTWF0aC5yYW5kb20oKSAqIDAuMyk7XG4gICAgcmV0dXJuIGNvbG9yO1xuICB9XG4gIGNvbnN0IFtyYW5kb21Db2xvclN0cmVuZ3RoLCBzZXRSYW5kb21Db2xvclN0cmVuZ3RoXSA9XG4gICAgdXNlU3RhdGU8Y2hyb21hanMuQ29sb3I+KGNhbGN1bGF0ZU5ld1JhbmRvbUNvbG9yU3RyZW5ndGgpO1xuXG4gIHVzZUltcGVyYXRpdmVIYW5kbGUoXG4gICAgZXh0ZXJuYWxSZWYsXG4gICAgKCkgPT4gKHtcbiAgICAgIHVwZGF0ZUNvbG9yOiAoKSA9PiB7XG4gICAgICAgIHNldFJhbmRvbUNvbG9yU3RyZW5ndGgoY2FsY3VsYXRlTmV3UmFuZG9tQ29sb3JTdHJlbmd0aCgpKTtcbiAgICAgIH0sXG4gICAgfSksXG4gICAgW11cbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIHJlZj17cmVmfVxuICAgICAgY2xhc3NOYW1lPXtTdHlsZXMuZ3JpZEl0ZW19XG4gICAgICBzdHlsZT17e1xuICAgICAgICB3aWR0aDogc2l6ZSxcbiAgICAgICAgaGVpZ2h0OiBzaXplLFxuICAgICAgICAuLi4oeyBcIi0tcGl4ZWwtY29sb3JcIjogcmFuZG9tQ29sb3JTdHJlbmd0aC5oZXgoKSB9IGFzIGFueSksXG4gICAgICB9fVxuICAgIC8+XG4gICk7XG59XG5jb25zdCBHcmlkSXRlbSA9IGZvcndhcmRSZWYoX0dyaWRJdGVtKTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBV0EsSUFBQUMsb0JBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLFNBQUEsR0FBQUQsc0JBQUEsQ0FBQUYsT0FBQTtBQUFpQyxTQUFBRSx1QkFBQUUsR0FBQSxXQUFBQSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxHQUFBRCxHQUFBLEtBQUFFLE9BQUEsRUFBQUYsR0FBQTtBQUFBLFNBQUFHLHlCQUFBQyxXQUFBLGVBQUFDLE9BQUEsa0NBQUFDLGlCQUFBLE9BQUFELE9BQUEsUUFBQUUsZ0JBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSxDQUFBQyxXQUFBLFdBQUFBLFdBQUEsR0FBQUcsZ0JBQUEsR0FBQUQsaUJBQUEsS0FBQUYsV0FBQTtB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