@react-magma/charts 13.1.0 → 13.1.1-next.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.
@@ -22174,6 +22174,29 @@
22174
22174
  tabsWrapperRef: tabsWrapperRef
22175
22175
  }];
22176
22176
  }
22177
+ function useScrollTabFocus(tabsWrapperRef, orientation) {
22178
+ var focusFirstVisibleTab = React.useCallback(function () {
22179
+ var wrapper = tabsWrapperRef.current;
22180
+ if (!wrapper) return;
22181
+ var tabs = wrapper.querySelectorAll('[role="tab"]');
22182
+ if (!tabs || tabs.length === 0) return;
22183
+ var wrapperRect = wrapper.getBoundingClientRect();
22184
+ var isVertical = orientation === TabsOrientation.vertical;
22185
+ var tolerance = 2;
22186
+ for (var _i = 0, _Array$from = Array.from(tabs); _i < _Array$from.length; _i++) {
22187
+ var tab = _Array$from[_i];
22188
+ var tabRect = tab.getBoundingClientRect();
22189
+ var isVisible = isVertical ? tabRect.top >= wrapperRect.top - tolerance && tabRect.bottom <= wrapperRect.bottom + tolerance : tabRect.left >= wrapperRect.left - tolerance && tabRect.right <= wrapperRect.right + tolerance;
22190
+ if (isVisible) {
22191
+ tab.focus();
22192
+ break;
22193
+ }
22194
+ }
22195
+ }, [tabsWrapperRef, orientation]);
22196
+ return {
22197
+ focusFirstVisibleTab: focusFirstVisibleTab
22198
+ };
22199
+ }
22177
22200
 
22178
22201
  var _excluded$1a = ["alignment", "backgroundColor", "borderPosition", "children", "isFullWidth", "orientation", "onChange", "iconPosition", "testId", "textTransform"];
22179
22202
  var TabsAlignment;
@@ -22216,7 +22239,7 @@
22216
22239
  return props.orientation === 'vertical' ? '100%' : 'auto';
22217
22240
  }, ";position:relative;width:", function (props) {
22218
22241
  return props.orientation === 'vertical' ? 'auto' : '100%';
22219
- }, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRhYnMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTZDRyIsImZpbGUiOiJUYWJzLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XHJcbmltcG9ydCBpc1Byb3BWYWxpZCBmcm9tICdAZW1vdGlvbi9pcy1wcm9wLXZhbGlkJztcclxuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xyXG5pbXBvcnQgeyBUYWJzT3JpZW50YXRpb24sIFRhYnNUZXh0VHJhbnNmb3JtIH0gZnJvbSAnLi9zaGFyZWQnO1xyXG5pbXBvcnQgeyBUYWJzQ29udGFpbmVyQ29udGV4dCB9IGZyb20gJy4vVGFic0NvbnRhaW5lcic7XHJcbmltcG9ydCB7IEJ1dHRvbk5leHQsIEJ1dHRvblByZXYgfSBmcm9tICcuL1RhYnNTY3JvbGxCdXR0b25zJztcclxuaW1wb3J0IHsgdXNlVGFic01ldGEgfSBmcm9tICcuL3V0aWxzJztcclxuaW1wb3J0IHsgdXNlRGVzY2VuZGFudHMgfSBmcm9tICcuLi8uLi9ob29rcy91c2VEZXNjZW5kYW50cyc7XHJcbmltcG9ydCB7IEkxOG5Db250ZXh0IH0gZnJvbSAnLi4vLi4vaTE4bic7XHJcbmltcG9ydCB7IFRoZW1lQ29udGV4dCB9IGZyb20gJy4uLy4uL3RoZW1lL1RoZW1lQ29udGV4dCc7XHJcbmltcG9ydCB7IG9taXQsIGdldE5vcm1hbGl6ZWRTY3JvbGxMZWZ0IH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xyXG5pbXBvcnQgeyBBbm5vdW5jZSB9IGZyb20gJy4uL0Fubm91bmNlJztcclxuaW1wb3J0IHsgVmlzdWFsbHlIaWRkZW4gfSBmcm9tICcuLi9WaXN1YWxseUhpZGRlbic7XHJcbmV4cG9ydCB2YXIgVGFic0FsaWdubWVudDtcclxuKGZ1bmN0aW9uIChUYWJzQWxpZ25tZW50KSB7XHJcbiAgICBUYWJzQWxpZ25tZW50W1wiY2VudGVyXCJdID0gXCJjZW50ZXJcIjtcclxuICAgIFRhYnNBbGlnbm1lbnRbXCJsZWZ0XCJdID0gXCJsZWZ0XCI7XHJcbiAgICBUYWJzQWxpZ25tZW50W1wicmlnaHRcIl0gPSBcInJpZ2h0XCI7XHJcbn0pKFRhYnNBbGlnbm1lbnQgfHwgKFRhYnNBbGlnbm1lbnQgPSB7fSkpO1xyXG5leHBvcnQgdmFyIFRhYnNCb3JkZXJQb3NpdGlvbjtcclxuKGZ1bmN0aW9uIChUYWJzQm9yZGVyUG9zaXRpb24pIHtcclxuICAgIFRhYnNCb3JkZXJQb3NpdGlvbltcImJvdHRvbVwiXSA9IFwiYm90dG9tXCI7XHJcbiAgICBUYWJzQm9yZGVyUG9zaXRpb25bXCJsZWZ0XCJdID0gXCJsZWZ0XCI7XHJcbiAgICBUYWJzQm9yZGVyUG9zaXRpb25bXCJyaWdodFwiXSA9IFwicmlnaHRcIjtcclxuICAgIFRhYnNCb3JkZXJQb3NpdGlvbltcInRvcFwiXSA9IFwidG9wXCI7XHJcbn0pKFRhYnNCb3JkZXJQb3NpdGlvbiB8fCAoVGFic0JvcmRlclBvc2l0aW9uID0ge30pKTtcclxuZXhwb3J0IHZhciBUYWJzSWNvblBvc2l0aW9uO1xyXG4oZnVuY3Rpb24gKFRhYnNJY29uUG9zaXRpb24pIHtcclxuICAgIFRhYnNJY29uUG9zaXRpb25bXCJib3R0b21cIl0gPSBcImJvdHRvbVwiO1xyXG4gICAgVGFic0ljb25Qb3NpdGlvbltcImxlZnRcIl0gPSBcImxlZnRcIjtcclxuICAgIFRhYnNJY29uUG9zaXRpb25bXCJyaWdodFwiXSA9IFwicmlnaHRcIjtcclxuICAgIFRhYnNJY29uUG9zaXRpb25bXCJ0b3BcIl0gPSBcInRvcFwiO1xyXG59KShUYWJzSWNvblBvc2l0aW9uIHx8IChUYWJzSWNvblBvc2l0aW9uID0ge30pKTtcclxuZXhwb3J0IGNvbnN0IFRhYnNDb250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dCh7XHJcbiAgICBib3JkZXJQb3NpdGlvbjogVGFic0JvcmRlclBvc2l0aW9uLmJvdHRvbSxcclxuICAgIGNoYW5nZUhhbmRsZXI6ICgpID0+IHsgfSxcclxuICAgIGljb25Qb3NpdGlvbjogVGFic0ljb25Qb3NpdGlvbi5sZWZ0LFxyXG4gICAgaXNJbnZlcnNlOiBmYWxzZSxcclxuICAgIGlzRnVsbFdpZHRoOiBmYWxzZSxcclxuICAgIG9yaWVudGF0aW9uOiBUYWJzT3JpZW50YXRpb24uaG9yaXpvbnRhbCxcclxuICAgIHRleHRUcmFuc2Zvcm06IFRhYnNUZXh0VHJhbnNmb3JtLnVwcGVyY2FzZSxcclxuICAgIHJlZ2lzdGVyVGFiQnV0dG9uOiAoZWxlbWVudHMsIGVsZW1lbnQpID0+IHsgfSxcclxufSk7XHJcbmV4cG9ydCBjb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoJ2RpdicsIHtcclxuICAgIHNob3VsZEZvcndhcmRQcm9wOiBpc1Byb3BWYWxpZCxcclxufSkgYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLmJhY2tncm91bmRDb2xvciA/IHByb3BzLmJhY2tncm91bmRDb2xvciA6ICd0cmFuc3BhcmVudCd9O1xuICBiYWNrZ3JvdW5kOiBiYWNrZ3JvdW5kQ29sb3I7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGhlaWdodDogJHtwcm9wcyA9PiAocHJvcHMub3JpZW50YXRpb24gPT09ICd2ZXJ0aWNhbCcgPyAnMTAwJScgOiAnYXV0bycpfTtcblxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAke3Byb3BzID0+IChwcm9wcy5vcmllbnRhdGlvbiA9PT0gJ3ZlcnRpY2FsJyA/ICdhdXRvJyA6ICcxMDAlJyl9O1xuYDtcclxuZXhwb3J0IGNvbnN0IFN0eWxlZFRhYnNXcmFwcGVyID0gc3R5bGVkKCdkaXYnLCB7XHJcbiAgICBzaG91bGRGb3J3YXJkUHJvcDogaXNQcm9wVmFsaWQsXHJcbn0pIGBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1ncm93OiAxO1xuICBvdmVyZmxvdy14OiAke3Byb3BzID0+IChwcm9wcy5vcmllbnRhdGlvbiA9PT0gJ3ZlcnRpY2FsJyA/ICcnIDogJ2F1dG8nKX07XG4gIG92ZXJmbG93LXk6ICR7cHJvcHMgPT4gKHByb3BzLm9yaWVudGF0aW9uID09PSAndmVydGljYWwnID8gJ2F1dG8nIDogJycpfTtcblxuICAmOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICB9XG4gIHNjcm9sbGJhci13aWR0aDogbm9uZTtcbmA7XHJcbmV4cG9ydCBjb25zdCBTdHlsZWRUYWJzID0gc3R5bGVkKCd1bCcsIHsgc2hvdWxkRm9yd2FyZFByb3A6IGlzUHJvcFZhbGlkIH0pIGBcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246ICR7cHJvcHMgPT4gcHJvcHMub3JpZW50YXRpb24gPT09ICd2ZXJ0aWNhbCcgPyAnY29sdW1uJyA6ICdyb3cnfTtcbiAganVzdGlmeS1jb250ZW50OiAke3Byb3BzID0+IHByb3BzLmFsaWdubWVudCA9PT0gJ2NlbnRlcidcclxuICAgID8gJ2NlbnRlcidcclxuICAgIDogcHJvcHMuYWxpZ25tZW50ID09PSAncmlnaHQnXHJcbiAgICAgICAgPyAnZmxleC1lbmQnXHJcbiAgICAgICAgOiAnJ307XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgd2lkdGg6ICR7cHJvcHMgPT4gKHByb3BzLm9yaWVudGF0aW9uID09PSAndmVydGljYWwnID8gJ2F1dG8nIDogJzEwMCUnKX07XG5gO1xyXG5leHBvcnQgY29uc3QgVGFicyA9IFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCByZWYpID0+IHtcclxuICAgIGNvbnN0IHsgYWxpZ25tZW50LCBiYWNrZ3JvdW5kQ29sb3IsIGJvcmRlclBvc2l0aW9uLCBjaGlsZHJlbiwgaXNGdWxsV2lkdGgsIG9yaWVudGF0aW9uLCBvbkNoYW5nZSwgaWNvblBvc2l0aW9uLCB0ZXN0SWQsIHRleHRUcmFuc2Zvcm0sIC4uLnJlc3QgfSA9IHByb3BzO1xyXG4gICAgY29uc3QgdGhlbWUgPSBSZWFjdC51c2VDb250ZXh0KFRoZW1lQ29udGV4dCk7XHJcbiAgICBjb25zdCB7IGFjdGl2ZVRhYkluZGV4LCBzZXRBY3RpdmVUYWJJbmRleCwgaXNJbnZlcnNlQ29udGFpbmVyLCBpbnN0YW5jZUlkLCB9ID0gUmVhY3QudXNlQ29udGV4dChUYWJzQ29udGFpbmVyQ29udGV4dCk7XHJcbiAgICBjb25zdCBpc0ludmVyc2UgPSB0eXBlb2YgcHJvcHMuaXNJbnZlcnNlICE9PSAndW5kZWZpbmVkJ1xyXG4gICAgICAgID8gQm9vbGVhbihwcm9wcy5pc0ludmVyc2UpXHJcbiAgICAgICAgOiBpc0ludmVyc2VDb250YWluZXI7XHJcbiAgICBjb25zdCBbdGFic01ldGEsIHRhYnNIYW5kbGVNZXRob2RzLCB0YWJzUmVmc10gPSB1c2VUYWJzTWV0YSh0aGVtZSwgb3JpZW50YXRpb24sIGJhY2tncm91bmRDb2xvciwgaXNJbnZlcnNlKTtcclxuICAgIGNvbnN0IHsgdmVydGljYWwsIGJhY2tncm91bmQsIGRpc3BsYXlTY3JvbGwsIHNjcm9sbFN0YXJ0IH0gPSB0YWJzTWV0YTtcclxuICAgIGNvbnN0IHsgaGFuZGxlU3RhcnRTY3JvbGxDbGljaywgaGFuZGxlRW5kU2Nyb2xsQ2xpY2ssIGhhbmRsZVRhYnNTY3JvbGwsIHNjcm9sbCwgfSA9IHRhYnNIYW5kbGVNZXRob2RzO1xyXG4gICAgY29uc3QgeyBwcmV2QnV0dG9uUmVmLCBuZXh0QnV0dG9uUmVmLCB0YWJzV3JhcHBlclJlZiB9ID0gdGFic1JlZnM7XHJcbiAgICBjb25zdCBzdGFydCA9IHZlcnRpY2FsID8gJ3RvcCcgOiAnbGVmdCc7XHJcbiAgICBjb25zdCBlbmQgPSB2ZXJ0aWNhbCA/ICdib3R0b20nIDogJ3JpZ2h0JztcclxuICAgIGNvbnN0IFtidXR0b25SZWZBcnJheSwgcmVnaXN0ZXJUYWJCdXR0b25dID0gdXNlRGVzY2VuZGFudHMoKTtcclxuICAgIGNvbnN0IGNoaWxkcmVuV3JhcHBlclJlZiA9IFJlYWN0LnVzZVJlZigpO1xyXG4gICAgY29uc3QgW3Njcm9sbEFubm91bmNlbWVudCwgc2V0U2Nyb2xsQW5ub3VuY2VtZW50XSA9IFJlYWN0LnVzZVN0YXRlKCcnKTtcclxuICAgIGNvbnN0IFtwYW5lbEFubm91bmNlbWVudCwgc2V0UGFuZWxBbm5vdW5jZW1lbnRdID0gUmVhY3QudXNlU3RhdGUoJycpO1xyXG4gICAgY29uc3QgaXNJbml0aWFsTW91bnQgPSBSZWFjdC51c2VSZWYodHJ1ZSk7XHJcbiAgICBmdW5jdGlvbiBnZXRUYWJzTWV0YSgpIHtcclxuICAgICAgICBjb25zdCB0YWJzTm9kZSA9IHRhYnNXcmFwcGVyUmVmLmN1cnJlbnQ7XHJcbiAgICAgICAgbGV0IHRhYnNNZXRhO1xyXG4gICAgICAgIGlmICh0YWJzTm9kZSkge1xyXG4gICAgICAgICAgICBjb25zdCByZWN0ID0gdGFic05vZGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgICAgICAgIHRhYnNNZXRhID0ge1xyXG4gICAgICAgICAgICAgICAgY2xpZW50V2lkdGg6IHRhYnNOb2RlLmNsaWVudFdpZHRoLFxyXG4gICAgICAgICAgICAgICAgc2Nyb2xsTGVmdDogdGFic05vZGUuc2Nyb2xsTGVmdCxcclxuICAgICAgICAgICAgICAgIHNjcm9sbFRvcDogdGFic05vZGUuc2Nyb2xsVG9wLFxyXG4gICAgICAgICAgICAgICAgc2Nyb2xsTGVmdE5vcm1hbGl6ZWQ6IGdldE5vcm1hbGl6ZWRTY3JvbGxMZWZ0KHRhYnNOb2RlLCB0aGVtZS5kaXJlY3Rpb24pLFxyXG4gICAgICAgICAgICAgICAgc2Nyb2xsV2lkdGg6IHRhYnNOb2RlLnNjcm9sbFdpZHRoLFxyXG4gICAgICAgICAgICAgICAgdG9wOiByZWN0LnRvcCxcclxuICAgICAgICAgICAgICAgIGJvdHRvbTogcmVjdC5ib3R0b20sXHJcbiAgICAgICAgICAgICAgICBsZWZ0OiByZWN0LmxlZnQsXHJcbiAgICAgICAgICAgICAgICByaWdodDogcmVjdC5yaWdodCxcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IHRhYk1ldGE7XHJcbiAgICAgICAgaWYgKHRhYnNOb2RlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNoaWxkcmVuQXJyYXkgPSBjaGlsZHJlbldyYXBwZXJSZWYuY3VycmVudC5jaGlsZHJlbjtcclxuICAgICAgICAgICAgaWYgKGNoaWxkcmVuQXJyYXkubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdGFiID0gY2hpbGRyZW5BcnJheVthY3RpdmVUYWJJbmRleF07XHJcbiAgICAgICAgICAgICAgICB0YWJNZXRhID0gdGFiID8gdGFiLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpIDogbnVsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4geyB0YWJzTWV0YSwgdGFiTWV0YSB9O1xyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gc2Nyb2xsU2VsZWN0ZWRJbnRvVmlldygpIHtcclxuICAgICAgICBjb25zdCB7IHRhYnNNZXRhLCB0YWJNZXRhIH0gPSBnZXRUYWJzTWV0YSgpO1xyXG4gICAgICAgIGlmICghdGFiTWV0YSB8fCAhdGFic01ldGEpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBwcmV2QnV0dG9uT2Zmc2V0ID0gdmVydGljYWxcclxuICAgICAgICAgICAgPyBOdW1iZXIocHJldkJ1dHRvblJlZi5jdXJyZW50Lm9mZnNldEhlaWdodClcclxuICAgICAgICAgICAgOiBOdW1iZXIocHJldkJ1dHRvblJlZi5jdXJyZW50Lm9mZnNldFdpZHRoKTtcclxuICAgICAgICBjb25zdCBuZXh0QnV0dG9uT2Zmc2V0ID0gdmVydGljYWxcclxuICAgICAgICAgICAgPyBOdW1iZXIobmV4dEJ1dHRvblJlZi5jdXJyZW50Lm9mZnNldEhlaWdodClcclxuICAgICAgICAgICAgOiBOdW1iZXIobmV4dEJ1dHRvblJlZi5jdXJyZW50Lm9mZnNldFdpZHRoKTtcclxuICAgICAgICBpZiAodGFiTWV0YVtzdGFydF0gPCBOdW1iZXIodGFic01ldGFbc3RhcnRdKSArIHByZXZCdXR0b25PZmZzZXQpIHtcclxuICAgICAgICAgICAgLy8gbGVmdCBzaWRlIG9mIGJ1dHRvbiBpcyBvdXQgb2Ygdmlld1xyXG4gICAgICAgICAgICBjb25zdCBuZXh0U2Nyb2xsU3RhcnQgPSBOdW1iZXIodGFic01ldGFbc2Nyb2xsU3RhcnRdKSArXHJcbiAgICAgICAgICAgICAgICAoTnVtYmVyKHRhYk1ldGFbc3RhcnRdKSAtIE51bWJlcih0YWJzTWV0YVtzdGFydF0pKSAtXHJcbiAgICAgICAgICAgICAgICBwcmV2QnV0dG9uT2Zmc2V0O1xyXG4gICAgICAgICAgICBzY3JvbGwobmV4dFNjcm9sbFN0YXJ0KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAodGFiTWV0YVtlbmRdID4gTnVtYmVyKHRhYnNNZXRhW2VuZF0pIC0gbmV4dEJ1dHRvbk9mZnNldCkge1xyXG4gICAgICAgICAgICAvLyByaWdodCBzaWRlIG9mIGJ1dHRvbiBpcyBvdXQgb2Ygdmlld1xyXG4gICAgICAgICAgICBjb25zdCBuZXh0U2Nyb2xsU3RhcnQgPSBOdW1iZXIodGFic01ldGFbc2Nyb2xsU3RhcnRdKSArXHJcbiAgICAgICAgICAgICAgICAoTnVtYmVyKHRhYk1ldGFbZW5kXSkgLSBOdW1iZXIodGFic01ldGFbZW5kXSkpICtcclxuICAgICAgICAgICAgICAgIG5leHRCdXR0b25PZmZzZXQ7XHJcbiAgICAgICAgICAgIHNjcm9sbChuZXh0U2Nyb2xsU3RhcnQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnN0IHNjcm9sbEluaXRpYWxBY3RpdmVJbmRleEludG9WaWV3ID0gKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHsgdGFic01ldGEsIHRhYk1ldGEgfSA9IGdldFRhYnNNZXRhKCk7XHJcbiAgICAgICAgaWYgKCF0YWJNZXRhIHx8ICF0YWJzTWV0YSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHRhYkNlbnRlciA9ICh0YWJNZXRhW3N0YXJ0XSArIHRhYk1ldGFbZW5kXSkgLyAyO1xyXG4gICAgICAgIGNvbnN0IGNvbnRhaW5lckNlbnRlciA9ICh0YWJzTWV0YVtzdGFydF0gKyB0YWJzTWV0YVtlbmRdKSAvIDI7XHJcbiAgICAgICAgY29uc3Qgc2Nyb2xsRGVsdGEgPSB0YWJDZW50ZXIgLSBjb250YWluZXJDZW50ZXI7XHJcbiAgICAgICAgY29uc3QgbmV4dFNjcm9sbFN0YXJ0ID0gTnVtYmVyKHRhYnNNZXRhW3Njcm9sbFN0YXJ0XSkgKyBzY3JvbGxEZWx0YTtcclxuICAgICAgICBzY3JvbGwobmV4dFNjcm9sbFN0YXJ0KTtcclxuICAgIH07XHJcbiAgICBSZWFjdC51c2VFZmZlY3Qoc2Nyb2xsU2VsZWN0ZWRJbnRvVmlldywgW2FjdGl2ZVRhYkluZGV4XSk7XHJcbiAgICBSZWFjdC51c2VFZmZlY3Qoc2Nyb2xsSW5pdGlhbEFjdGl2ZUluZGV4SW50b1ZpZXcsIFtdKTtcclxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgaWYgKCFkaXNwbGF5U2Nyb2xsLnN0YXJ0KSB7XHJcbiAgICAgICAgICAgIG5leHRCdXR0b25SZWYuY3VycmVudD8uZm9jdXMoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoIWRpc3BsYXlTY3JvbGwuZW5kKSB7XHJcbiAgICAgICAgICAgIHByZXZCdXR0b25SZWYuY3VycmVudD8uZm9jdXMoKTtcclxuICAgICAgICB9XHJcbiAgICB9LCBbZGlzcGxheVNjcm9sbC5zdGFydCwgZGlzcGxheVNjcm9sbC5lbmRdKTtcclxuICAgIC8vIEFubm91bmNlIHBhbmVsIGNvbnRlbnQgd2hlbiBhY3RpdmUgdGFiIGNoYW5nZXMgKGV4Y2x1ZGluZyBpbml0aWFsIG1vdW50KVxyXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgICBpZiAoaXNJbml0aWFsTW91bnQuY3VycmVudCkge1xyXG4gICAgICAgICAgICBpc0luaXRpYWxNb3VudC5jdXJyZW50ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgcGFuZWxJZCA9IGB0YWJwYW5lbC0ke2luc3RhbmNlSWR9LSR7YWN0aXZlVGFiSW5kZXh9YDtcclxuICAgICAgICBjb25zdCBwYW5lbEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChwYW5lbElkKTtcclxuICAgICAgICBpZiAocGFuZWxFbGVtZW50KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHBhbmVsVGV4dCA9IHBhbmVsRWxlbWVudC50ZXh0Q29udGVudCB8fCAnJztcclxuICAgICAgICAgICAgc2V0UGFuZWxBbm5vdW5jZW1lbnQocGFuZWxUZXh0LnRyaW0oKSk7XHJcbiAgICAgICAgICAgIGNvbnN0IHRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHNldFBhbmVsQW5ub3VuY2VtZW50KCcnKSwgMTAwMCk7XHJcbiAgICAgICAgICAgIHJldHVybiAoKSA9PiBjbGVhclRpbWVvdXQodGltZW91dCk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW2FjdGl2ZVRhYkluZGV4LCBpbnN0YW5jZUlkXSk7XHJcbiAgICBmdW5jdGlvbiBjaGFuZ2VIYW5kbGVyKG5ld0FjdGl2ZUluZGV4LCBldmVudCkge1xyXG4gICAgICAgIGlmIChldmVudC50YXJnZXQuY2hpbGRyZW5bMF0gJiZcclxuICAgICAgICAgICAgZXZlbnQudGFyZ2V0LmNoaWxkcmVuWzBdLmhhc0F0dHJpYnV0ZSgnZGlzYWJsZWQnKSkge1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuICAgICAgICBvbkNoYW5nZSAmJiB0eXBlb2Ygb25DaGFuZ2UgPT09ICdmdW5jdGlvbicgJiYgb25DaGFuZ2UobmV3QWN0aXZlSW5kZXgpO1xyXG4gICAgICAgIGlmIChuZXdBY3RpdmVJbmRleCA9PT0gYWN0aXZlVGFiSW5kZXgpIHtcclxuICAgICAgICAgICAgc2Nyb2xsU2VsZWN0ZWRJbnRvVmlldygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgc2V0QWN0aXZlVGFiSW5kZXgobmV3QWN0aXZlSW5kZXgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIHRhYklzRW5hYmxlZCh0YWJJbmRleCkge1xyXG4gICAgICAgIHJldHVybiAoYnV0dG9uUmVmQXJyYXkuY3VycmVudFt0YWJJbmRleF0uY3VycmVudC5nZXRBdHRyaWJ1dGUoJ2Rpc2FibGVkJykgPT09XHJcbiAgICAgICAgICAgIG51bGwpO1xyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gZmluZFByZXZpb3VzRW5hYmxlZFRhYkluZGV4KG1vZGlmaWVkQWN0aXZlVGFiSW5kZXgpIHtcclxuICAgICAgICBjb25zdCBjdXJyZW50VGFiSW5kZXggPSBtb2RpZmllZEFjdGl2ZVRhYkluZGV4XHJcbiAgICAgICAgICAgID8gbW9kaWZpZWRBY3RpdmVUYWJJbmRleFxyXG4gICAgICAgICAgICA6IGFjdGl2ZVRhYkluZGV4O1xyXG4gICAgICAgIGNvbnN0IG5ld0FjdGl2ZVRhYkluZGV4ID0gY3VycmVudFRhYkluZGV4ID4gMCA/IGN1cnJlbnRUYWJJbmRleCAtIDEgOiAwO1xyXG4gICAgICAgIGlmICh0YWJJc0VuYWJsZWQobmV3QWN0aXZlVGFiSW5kZXgpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXdBY3RpdmVUYWJJbmRleDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAobmV3QWN0aXZlVGFiSW5kZXggLSAxID49IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZpbmRQcmV2aW91c0VuYWJsZWRUYWJJbmRleChuZXdBY3RpdmVUYWJJbmRleCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gYWN0aXZlVGFiSW5kZXg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gZmluZE5leHRFbmFibGVkVGFiSW5kZXgobGFzdENoaWxkSW5kZXgsIG1vZGlmaWVkQWN0aXZlVGFiSW5kZXgpIHtcclxuICAgICAgICBjb25zdCBjdXJyZW50VGFiSW5kZXggPSBtb2RpZmllZEFjdGl2ZVRhYkluZGV4ID09PSAwIHx8IG1vZGlmaWVkQWN0aXZlVGFiSW5kZXhcclxuICAgICAgICAgICAgPyBtb2RpZmllZEFjdGl2ZVRhYkluZGV4XHJcbiAgICAgICAgICAgIDogYWN0aXZlVGFiSW5kZXg7XHJcbiAgICAgICAgY29uc3QgbmV3QWN0aXZlVGFiSW5kZXggPSBjdXJyZW50VGFiSW5kZXggPCBsYXN0Q2hpbGRJbmRleCA/IGN1cnJlbnRUYWJJbmRleCArIDEgOiBsYXN0Q2hpbGRJbmRleDtcclxuICAgICAgICBpZiAodGFiSXNFbmFibGVkKG5ld0FjdGl2ZVRhYkluZGV4KSkge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3QWN0aXZlVGFiSW5kZXg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKG5ld0FjdGl2ZVRhYkluZGV4ICsgMSA8PSBsYXN0Q2hpbGRJbmRleCkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmluZE5leHRFbmFibGVkVGFiSW5kZXgobGFzdENoaWxkSW5kZXgsIG5ld0FjdGl2ZVRhYkluZGV4KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBhY3RpdmVUYWJJbmRleDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBmdW5jdGlvbiBoYW5kbGVLZXlEb3duKGV2ZW50KSB7XHJcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0O1xyXG4gICAgICAgIGNvbnN0IHJvbGUgPSB0YXJnZXQuZ2V0QXR0cmlidXRlKCdyb2xlJyk7XHJcbiAgICAgICAgaWYgKHJvbGUgIT09ICd0YWInKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgbGFzdENoaWxkSW5kZXggPSBidXR0b25SZWZBcnJheS5jdXJyZW50Lmxlbmd0aCAtIDE7XHJcbiAgICAgICAgbGV0IG5ld0FjdGl2ZVRhYkluZGV4ID0gbnVsbDtcclxuICAgICAgICBjb25zdCBwcmV2aW91c0l0ZW1LZXkgPSBvcmllbnRhdGlvbiAhPT0gVGFic09yaWVudGF0aW9uLnZlcnRpY2FsID8gJ0Fycm93TGVmdCcgOiAnQXJyb3dVcCc7XHJcbiAgICAgICAgY29uc3QgbmV4dEl0ZW1LZXkgPSBvcmllbnRhdGlvbiAhPT0gVGFic09yaWVudGF0aW9uLnZlcnRpY2FsID8gJ0Fycm93UmlnaHQnIDogJ0Fycm93RG93bic7XHJcbiAgICAgICAgc3dpdGNoIChldmVudC5rZXkpIHtcclxuICAgICAgICAgICAgY2FzZSBwcmV2aW91c0l0ZW1LZXk6XHJcbiAgICAgICAgICAgICAgICBuZXdBY3RpdmVUYWJJbmRleCA9IGZpbmRQcmV2aW91c0VuYWJsZWRUYWJJbmRleCgpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgbmV4dEl0ZW1LZXk6XHJcbiAgICAgICAgICAgICAgICBuZXdBY3RpdmVUYWJJbmRleCA9IGZpbmROZXh0RW5hYmxlZFRhYkluZGV4KGxhc3RDaGlsZEluZGV4KTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdIb21lJzpcclxuICAgICAgICAgICAgICAgIG5ld0FjdGl2ZVRhYkluZGV4ID0gdGFiSXNFbmFibGVkKDApXHJcbiAgICAgICAgICAgICAgICAgICAgPyAwXHJcbiAgICAgICAgICAgICAgICAgICAgOiBmaW5kTmV4dEVuYWJsZWRUYWJJbmRleChsYXN0Q2hpbGRJbmRleCwgMCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnRW5kJzpcclxuICAgICAgICAgICAgICAgIG5ld0FjdGl2ZVRhYkluZGV4ID0gdGFiSXNFbmFibGVkKGxhc3RDaGlsZEluZGV4KVxyXG4gICAgICAgICAgICAgICAgICAgID8gbGFzdENoaWxkSW5kZXhcclxuICAgICAgICAgICAgICAgICAgICA6IGZpbmRQcmV2aW91c0VuYWJsZWRUYWJJbmRleChsYXN0Q2hpbGRJbmRleCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobmV3QWN0aXZlVGFiSW5kZXggIT09IG51bGwpIHtcclxuICAgICAgICAgICAgb25DaGFuZ2UgJiZcclxuICAgICAgICAgICAgICAgIHR5cGVvZiBvbkNoYW5nZSA9PT0gJ2Z1bmN0aW9uJyAmJlxyXG4gICAgICAgICAgICAgICAgb25DaGFuZ2UobmV3QWN0aXZlVGFiSW5kZXgpO1xyXG4gICAgICAgICAgICBzZXRBY3RpdmVUYWJJbmRleChuZXdBY3RpdmVUYWJJbmRleCk7XHJcbiAgICAgICAgICAgIGJ1dHRvblJlZkFycmF5LmN1cnJlbnRbbmV3QWN0aXZlVGFiSW5kZXhdLmN1cnJlbnQuZm9jdXMoKTtcclxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zdCBpMThuID0gUmVhY3QudXNlQ29udGV4dChJMThuQ29udGV4dCk7XHJcbiAgICBjb25zdCBhcmlhTGFiZWwgPSBgJHtyZXN0WydhcmlhLWxhYmVsJ10gfHwgJyd9LCAke29yaWVudGF0aW9uID09PSBUYWJzT3JpZW50YXRpb24udmVydGljYWxcclxuICAgICAgICA/IGkxOG4udGFicy52ZXJ0aWNhbFRhYnNJbnN0cnVjdGlvbnNcclxuICAgICAgICA6IGkxOG4udGFicy5ob3Jpem9udGFsVGFic0luc3RydWN0aW9uc31gO1xyXG4gICAgY29uc3QgdGltZW91dFJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcclxuICAgIGNvbnN0IGhhbmRsZVByZXZTY3JvbGxXaXRoQW5ub3VuY2VtZW50ID0gKCkgPT4ge1xyXG4gICAgICAgIGhhbmRsZVN0YXJ0U2Nyb2xsQ2xpY2soKTtcclxuICAgICAgICBzZXRTY3JvbGxBbm5vdW5jZW1lbnQoaTE4bi50YWJzLnNjcm9sbGVkQmFja0Fubm91bmNlKTtcclxuICAgICAgICBpZiAodGltZW91dFJlZi5jdXJyZW50KSB7XHJcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0UmVmLmN1cnJlbnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aW1lb3V0UmVmLmN1cnJlbnQgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgc2V0U2Nyb2xsQW5ub3VuY2VtZW50KCcnKTtcclxuICAgICAgICB9LCAxMDApO1xyXG4gICAgfTtcclxuICAgIGNvbnN0IGhhbmRsZU5leHRTY3JvbGxXaXRoQW5ub3VuY2VtZW50ID0gKCkgPT4ge1xyXG4gICAgICAgIGhhbmRsZUVuZFNjcm9sbENsaWNrKCk7XHJcbiAgICAgICAgc2V0U2Nyb2xsQW5ub3VuY2VtZW50KGkxOG4udGFicy5zY3JvbGxlZEZvcndhcmRBbm5vdW5jZSk7XHJcbiAgICAgICAgaWYgKHRpbWVvdXRSZWYuY3VycmVudCkge1xyXG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dFJlZi5jdXJyZW50KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGltZW91dFJlZi5jdXJyZW50ID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHNldFNjcm9sbEFubm91bmNlbWVudCgnJyk7XHJcbiAgICAgICAgfSwgMTAwKTtcclxuICAgIH07XHJcbiAgICBjb25zdCBvdGhlciA9IG9taXQoWydhcmlhLWxhYmVsJ10sIHJlc3QpO1xyXG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFN0eWxlZENvbnRhaW5lciwgT2JqZWN0LmFzc2lnbih7IFwiZGF0YS10ZXN0aWRcIjogdGVzdElkLCBiYWNrZ3JvdW5kQ29sb3I6IGJhY2tncm91bmQsIGlzSW52ZXJzZTogaXNJbnZlcnNlLCBvcmllbnRhdGlvbjogb3JpZW50YXRpb24gfHwgVGFic09yaWVudGF0aW9uLmhvcml6b250YWwsIHJlZjogcmVmLCB0aGVtZTogdGhlbWUgfSwgb3RoZXIpLFxyXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQnV0dG9uUHJldiwgeyBiYWNrZ3JvdW5kQ29sb3I6IGJhY2tncm91bmQsIGJ1dHRvblZpc2libGU6IGRpc3BsYXlTY3JvbGwuc3RhcnQsIGlzSW52ZXJzZTogaXNJbnZlcnNlLCBvbkNsaWNrOiBoYW5kbGVQcmV2U2Nyb2xsV2l0aEFubm91bmNlbWVudCwgb3JpZW50YXRpb246IG9yaWVudGF0aW9uIHx8IFRhYnNPcmllbnRhdGlvbi5ob3Jpem9udGFsLCByZWY6IHByZXZCdXR0b25SZWYsIHRoZW1lOiB0aGVtZSB9KSxcclxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFN0eWxlZFRhYnNXcmFwcGVyLCB7IFwiZGF0YS10ZXN0aWRcIjogXCJ0YWJzV3JhcHBlclwiLCBvblNjcm9sbDogaGFuZGxlVGFic1Njcm9sbCwgb3JpZW50YXRpb246IG9yaWVudGF0aW9uLCByZWY6IHRhYnNXcmFwcGVyUmVmIH0sXHJcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkVGFicywgeyBhbGlnbm1lbnQ6IGFsaWdubWVudCA/IGFsaWdubWVudCA6IFRhYnNBbGlnbm1lbnQubGVmdCwgXCJhcmlhLWxhYmVsXCI6IGFyaWFMYWJlbCwgXCJhcmlhLW9yaWVudGF0aW9uXCI6IG9yaWVudGF0aW9uIHx8IFRhYnNPcmllbnRhdGlvbi5ob3Jpem9udGFsLCBvbktleURvd246IGhhbmRsZUtleURvd24sIG9yaWVudGF0aW9uOiBvcmllbnRhdGlvbiwgcmVmOiBjaGlsZHJlbldyYXBwZXJSZWYsIHJvbGU6IFwidGFibGlzdFwiIH0sXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFRhYnNDb250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlclBvc2l0aW9uLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBidXR0b25SZWZBcnJheSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlSGFuZGxlcixcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvblBvc2l0aW9uLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0ludmVyc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzRnVsbFdpZHRoLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvcmllbnRhdGlvbixcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dFRyYW5zZm9ybTogdGV4dFRyYW5zZm9ybSB8fCBUYWJzVGV4dFRyYW5zZm9ybS51cHBlcmNhc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lzdGVyVGFiQnV0dG9uLFxyXG4gICAgICAgICAgICAgICAgICAgIH0gfSwgY2hpbGRyZW4pKSksXHJcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChCdXR0b25OZXh0LCB7IGJhY2tncm91bmRDb2xvcjogYmFja2dyb3VuZCwgYnV0dG9uVmlzaWJsZTogZGlzcGxheVNjcm9sbC5lbmQsIGlzSW52ZXJzZTogaXNJbnZlcnNlLCBvbkNsaWNrOiBoYW5kbGVOZXh0U2Nyb2xsV2l0aEFubm91bmNlbWVudCwgb3JpZW50YXRpb246IG9yaWVudGF0aW9uIHx8IFRhYnNPcmllbnRhdGlvbi5ob3Jpem9udGFsLCByZWY6IG5leHRCdXR0b25SZWYsIHRoZW1lOiB0aGVtZSB9KSxcclxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFZpc3VhbGx5SGlkZGVuLCBudWxsLFxyXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEFubm91bmNlLCBudWxsLCBzY3JvbGxBbm5vdW5jZW1lbnQpKSxcclxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFZpc3VhbGx5SGlkZGVuLCBudWxsLFxyXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEFubm91bmNlLCBudWxsLCBwYW5lbEFubm91bmNlbWVudCkpKSk7XHJcbn0pO1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1UYWJzLmpzLm1hcCJdfQ== */"));
22242
+ }, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRhYnMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTZDRyIsImZpbGUiOiJUYWJzLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XHJcbmltcG9ydCBpc1Byb3BWYWxpZCBmcm9tICdAZW1vdGlvbi9pcy1wcm9wLXZhbGlkJztcclxuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xyXG5pbXBvcnQgeyBUYWJzT3JpZW50YXRpb24sIFRhYnNUZXh0VHJhbnNmb3JtIH0gZnJvbSAnLi9zaGFyZWQnO1xyXG5pbXBvcnQgeyBUYWJzQ29udGFpbmVyQ29udGV4dCB9IGZyb20gJy4vVGFic0NvbnRhaW5lcic7XHJcbmltcG9ydCB7IEJ1dHRvbk5leHQsIEJ1dHRvblByZXYgfSBmcm9tICcuL1RhYnNTY3JvbGxCdXR0b25zJztcclxuaW1wb3J0IHsgdXNlVGFic01ldGEsIHVzZVNjcm9sbFRhYkZvY3VzIH0gZnJvbSAnLi91dGlscyc7XHJcbmltcG9ydCB7IHVzZURlc2NlbmRhbnRzIH0gZnJvbSAnLi4vLi4vaG9va3MvdXNlRGVzY2VuZGFudHMnO1xyXG5pbXBvcnQgeyBJMThuQ29udGV4dCB9IGZyb20gJy4uLy4uL2kxOG4nO1xyXG5pbXBvcnQgeyBUaGVtZUNvbnRleHQgfSBmcm9tICcuLi8uLi90aGVtZS9UaGVtZUNvbnRleHQnO1xyXG5pbXBvcnQgeyBvbWl0LCBnZXROb3JtYWxpemVkU2Nyb2xsTGVmdCB9IGZyb20gJy4uLy4uL3V0aWxzJztcclxuaW1wb3J0IHsgQW5ub3VuY2UgfSBmcm9tICcuLi9Bbm5vdW5jZSc7XHJcbmltcG9ydCB7IFZpc3VhbGx5SGlkZGVuIH0gZnJvbSAnLi4vVmlzdWFsbHlIaWRkZW4nO1xyXG5leHBvcnQgdmFyIFRhYnNBbGlnbm1lbnQ7XHJcbihmdW5jdGlvbiAoVGFic0FsaWdubWVudCkge1xyXG4gICAgVGFic0FsaWdubWVudFtcImNlbnRlclwiXSA9IFwiY2VudGVyXCI7XHJcbiAgICBUYWJzQWxpZ25tZW50W1wibGVmdFwiXSA9IFwibGVmdFwiO1xyXG4gICAgVGFic0FsaWdubWVudFtcInJpZ2h0XCJdID0gXCJyaWdodFwiO1xyXG59KShUYWJzQWxpZ25tZW50IHx8IChUYWJzQWxpZ25tZW50ID0ge30pKTtcclxuZXhwb3J0IHZhciBUYWJzQm9yZGVyUG9zaXRpb247XHJcbihmdW5jdGlvbiAoVGFic0JvcmRlclBvc2l0aW9uKSB7XHJcbiAgICBUYWJzQm9yZGVyUG9zaXRpb25bXCJib3R0b21cIl0gPSBcImJvdHRvbVwiO1xyXG4gICAgVGFic0JvcmRlclBvc2l0aW9uW1wibGVmdFwiXSA9IFwibGVmdFwiO1xyXG4gICAgVGFic0JvcmRlclBvc2l0aW9uW1wicmlnaHRcIl0gPSBcInJpZ2h0XCI7XHJcbiAgICBUYWJzQm9yZGVyUG9zaXRpb25bXCJ0b3BcIl0gPSBcInRvcFwiO1xyXG59KShUYWJzQm9yZGVyUG9zaXRpb24gfHwgKFRhYnNCb3JkZXJQb3NpdGlvbiA9IHt9KSk7XHJcbmV4cG9ydCB2YXIgVGFic0ljb25Qb3NpdGlvbjtcclxuKGZ1bmN0aW9uIChUYWJzSWNvblBvc2l0aW9uKSB7XHJcbiAgICBUYWJzSWNvblBvc2l0aW9uW1wiYm90dG9tXCJdID0gXCJib3R0b21cIjtcclxuICAgIFRhYnNJY29uUG9zaXRpb25bXCJsZWZ0XCJdID0gXCJsZWZ0XCI7XHJcbiAgICBUYWJzSWNvblBvc2l0aW9uW1wicmlnaHRcIl0gPSBcInJpZ2h0XCI7XHJcbiAgICBUYWJzSWNvblBvc2l0aW9uW1widG9wXCJdID0gXCJ0b3BcIjtcclxufSkoVGFic0ljb25Qb3NpdGlvbiB8fCAoVGFic0ljb25Qb3NpdGlvbiA9IHt9KSk7XHJcbmV4cG9ydCBjb25zdCBUYWJzQ29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQoe1xyXG4gICAgYm9yZGVyUG9zaXRpb246IFRhYnNCb3JkZXJQb3NpdGlvbi5ib3R0b20sXHJcbiAgICBjaGFuZ2VIYW5kbGVyOiAoKSA9PiB7IH0sXHJcbiAgICBpY29uUG9zaXRpb246IFRhYnNJY29uUG9zaXRpb24ubGVmdCxcclxuICAgIGlzSW52ZXJzZTogZmFsc2UsXHJcbiAgICBpc0Z1bGxXaWR0aDogZmFsc2UsXHJcbiAgICBvcmllbnRhdGlvbjogVGFic09yaWVudGF0aW9uLmhvcml6b250YWwsXHJcbiAgICB0ZXh0VHJhbnNmb3JtOiBUYWJzVGV4dFRyYW5zZm9ybS51cHBlcmNhc2UsXHJcbiAgICByZWdpc3RlclRhYkJ1dHRvbjogKGVsZW1lbnRzLCBlbGVtZW50KSA9PiB7IH0sXHJcbn0pO1xyXG5leHBvcnQgY29uc3QgU3R5bGVkQ29udGFpbmVyID0gc3R5bGVkKCdkaXYnLCB7XHJcbiAgICBzaG91bGRGb3J3YXJkUHJvcDogaXNQcm9wVmFsaWQsXHJcbn0pIGBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy5iYWNrZ3JvdW5kQ29sb3IgPyBwcm9wcy5iYWNrZ3JvdW5kQ29sb3IgOiAndHJhbnNwYXJlbnQnfTtcbiAgYmFja2dyb3VuZDogYmFja2dyb3VuZENvbG9yO1xuICBkaXNwbGF5OiBmbGV4O1xuICBoZWlnaHQ6ICR7cHJvcHMgPT4gKHByb3BzLm9yaWVudGF0aW9uID09PSAndmVydGljYWwnID8gJzEwMCUnIDogJ2F1dG8nKX07XG5cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogJHtwcm9wcyA9PiAocHJvcHMub3JpZW50YXRpb24gPT09ICd2ZXJ0aWNhbCcgPyAnYXV0bycgOiAnMTAwJScpfTtcbmA7XHJcbmV4cG9ydCBjb25zdCBTdHlsZWRUYWJzV3JhcHBlciA9IHN0eWxlZCgnZGl2Jywge1xyXG4gICAgc2hvdWxkRm9yd2FyZFByb3A6IGlzUHJvcFZhbGlkLFxyXG59KSBgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZ3JvdzogMTtcbiAgb3ZlcmZsb3cteDogJHtwcm9wcyA9PiAocHJvcHMub3JpZW50YXRpb24gPT09ICd2ZXJ0aWNhbCcgPyAnJyA6ICdhdXRvJyl9O1xuICBvdmVyZmxvdy15OiAke3Byb3BzID0+IChwcm9wcy5vcmllbnRhdGlvbiA9PT0gJ3ZlcnRpY2FsJyA/ICdhdXRvJyA6ICcnKX07XG5cbiAgJjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgfVxuICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7XG5gO1xyXG5leHBvcnQgY29uc3QgU3R5bGVkVGFicyA9IHN0eWxlZCgndWwnLCB7IHNob3VsZEZvcndhcmRQcm9wOiBpc1Byb3BWYWxpZCB9KSBgXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiAke3Byb3BzID0+IHByb3BzLm9yaWVudGF0aW9uID09PSAndmVydGljYWwnID8gJ2NvbHVtbicgOiAncm93J307XG4gIGp1c3RpZnktY29udGVudDogJHtwcm9wcyA9PiBwcm9wcy5hbGlnbm1lbnQgPT09ICdjZW50ZXInXHJcbiAgICA/ICdjZW50ZXInXHJcbiAgICA6IHByb3BzLmFsaWdubWVudCA9PT0gJ3JpZ2h0J1xyXG4gICAgICAgID8gJ2ZsZXgtZW5kJ1xyXG4gICAgICAgIDogJyd9O1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIHdpZHRoOiAke3Byb3BzID0+IChwcm9wcy5vcmllbnRhdGlvbiA9PT0gJ3ZlcnRpY2FsJyA/ICdhdXRvJyA6ICcxMDAlJyl9O1xuYDtcclxuZXhwb3J0IGNvbnN0IFRhYnMgPSBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgcmVmKSA9PiB7XHJcbiAgICBjb25zdCB7IGFsaWdubWVudCwgYmFja2dyb3VuZENvbG9yLCBib3JkZXJQb3NpdGlvbiwgY2hpbGRyZW4sIGlzRnVsbFdpZHRoLCBvcmllbnRhdGlvbiwgb25DaGFuZ2UsIGljb25Qb3NpdGlvbiwgdGVzdElkLCB0ZXh0VHJhbnNmb3JtLCAuLi5yZXN0IH0gPSBwcm9wcztcclxuICAgIGNvbnN0IHRoZW1lID0gUmVhY3QudXNlQ29udGV4dChUaGVtZUNvbnRleHQpO1xyXG4gICAgY29uc3QgeyBhY3RpdmVUYWJJbmRleCwgc2V0QWN0aXZlVGFiSW5kZXgsIGlzSW52ZXJzZUNvbnRhaW5lciwgaW5zdGFuY2VJZCwgfSA9IFJlYWN0LnVzZUNvbnRleHQoVGFic0NvbnRhaW5lckNvbnRleHQpO1xyXG4gICAgY29uc3QgaXNJbnZlcnNlID0gdHlwZW9mIHByb3BzLmlzSW52ZXJzZSAhPT0gJ3VuZGVmaW5lZCdcclxuICAgICAgICA/IEJvb2xlYW4ocHJvcHMuaXNJbnZlcnNlKVxyXG4gICAgICAgIDogaXNJbnZlcnNlQ29udGFpbmVyO1xyXG4gICAgY29uc3QgW3RhYnNNZXRhLCB0YWJzSGFuZGxlTWV0aG9kcywgdGFic1JlZnNdID0gdXNlVGFic01ldGEodGhlbWUsIG9yaWVudGF0aW9uLCBiYWNrZ3JvdW5kQ29sb3IsIGlzSW52ZXJzZSk7XHJcbiAgICBjb25zdCB7IHZlcnRpY2FsLCBiYWNrZ3JvdW5kLCBkaXNwbGF5U2Nyb2xsLCBzY3JvbGxTdGFydCB9ID0gdGFic01ldGE7XHJcbiAgICBjb25zdCB7IGhhbmRsZVN0YXJ0U2Nyb2xsQ2xpY2ssIGhhbmRsZUVuZFNjcm9sbENsaWNrLCBoYW5kbGVUYWJzU2Nyb2xsLCBzY3JvbGwsIH0gPSB0YWJzSGFuZGxlTWV0aG9kcztcclxuICAgIGNvbnN0IHsgcHJldkJ1dHRvblJlZiwgbmV4dEJ1dHRvblJlZiwgdGFic1dyYXBwZXJSZWYgfSA9IHRhYnNSZWZzO1xyXG4gICAgY29uc3Qgc3RhcnQgPSB2ZXJ0aWNhbCA/ICd0b3AnIDogJ2xlZnQnO1xyXG4gICAgY29uc3QgZW5kID0gdmVydGljYWwgPyAnYm90dG9tJyA6ICdyaWdodCc7XHJcbiAgICBjb25zdCBbYnV0dG9uUmVmQXJyYXksIHJlZ2lzdGVyVGFiQnV0dG9uXSA9IHVzZURlc2NlbmRhbnRzKCk7XHJcbiAgICBjb25zdCBjaGlsZHJlbldyYXBwZXJSZWYgPSBSZWFjdC51c2VSZWYoKTtcclxuICAgIGNvbnN0IFtzY3JvbGxBbm5vdW5jZW1lbnQsIHNldFNjcm9sbEFubm91bmNlbWVudF0gPSBSZWFjdC51c2VTdGF0ZSgnJyk7XHJcbiAgICBjb25zdCBbcGFuZWxBbm5vdW5jZW1lbnQsIHNldFBhbmVsQW5ub3VuY2VtZW50XSA9IFJlYWN0LnVzZVN0YXRlKCcnKTtcclxuICAgIGNvbnN0IGlzSW5pdGlhbE1vdW50ID0gUmVhY3QudXNlUmVmKHRydWUpO1xyXG4gICAgZnVuY3Rpb24gZ2V0VGFic01ldGEoKSB7XHJcbiAgICAgICAgY29uc3QgdGFic05vZGUgPSB0YWJzV3JhcHBlclJlZi5jdXJyZW50O1xyXG4gICAgICAgIGxldCB0YWJzTWV0YTtcclxuICAgICAgICBpZiAodGFic05vZGUpIHtcclxuICAgICAgICAgICAgY29uc3QgcmVjdCA9IHRhYnNOb2RlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICAgICAgICB0YWJzTWV0YSA9IHtcclxuICAgICAgICAgICAgICAgIGNsaWVudFdpZHRoOiB0YWJzTm9kZS5jbGllbnRXaWR0aCxcclxuICAgICAgICAgICAgICAgIHNjcm9sbExlZnQ6IHRhYnNOb2RlLnNjcm9sbExlZnQsXHJcbiAgICAgICAgICAgICAgICBzY3JvbGxUb3A6IHRhYnNOb2RlLnNjcm9sbFRvcCxcclxuICAgICAgICAgICAgICAgIHNjcm9sbExlZnROb3JtYWxpemVkOiBnZXROb3JtYWxpemVkU2Nyb2xsTGVmdCh0YWJzTm9kZSwgdGhlbWUuZGlyZWN0aW9uKSxcclxuICAgICAgICAgICAgICAgIHNjcm9sbFdpZHRoOiB0YWJzTm9kZS5zY3JvbGxXaWR0aCxcclxuICAgICAgICAgICAgICAgIHRvcDogcmVjdC50b3AsXHJcbiAgICAgICAgICAgICAgICBib3R0b206IHJlY3QuYm90dG9tLFxyXG4gICAgICAgICAgICAgICAgbGVmdDogcmVjdC5sZWZ0LFxyXG4gICAgICAgICAgICAgICAgcmlnaHQ6IHJlY3QucmlnaHQsXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCB0YWJNZXRhO1xyXG4gICAgICAgIGlmICh0YWJzTm9kZSkge1xyXG4gICAgICAgICAgICBjb25zdCBjaGlsZHJlbkFycmF5ID0gY2hpbGRyZW5XcmFwcGVyUmVmLmN1cnJlbnQuY2hpbGRyZW47XHJcbiAgICAgICAgICAgIGlmIChjaGlsZHJlbkFycmF5Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHRhYiA9IGNoaWxkcmVuQXJyYXlbYWN0aXZlVGFiSW5kZXhdO1xyXG4gICAgICAgICAgICAgICAgdGFiTWV0YSA9IHRhYiA/IHRhYi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSA6IG51bGw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHsgdGFic01ldGEsIHRhYk1ldGEgfTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIHNjcm9sbFNlbGVjdGVkSW50b1ZpZXcoKSB7XHJcbiAgICAgICAgY29uc3QgeyB0YWJzTWV0YSwgdGFiTWV0YSB9ID0gZ2V0VGFic01ldGEoKTtcclxuICAgICAgICBpZiAoIXRhYk1ldGEgfHwgIXRhYnNNZXRhKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgcHJldkJ1dHRvbk9mZnNldCA9IHZlcnRpY2FsXHJcbiAgICAgICAgICAgID8gTnVtYmVyKHByZXZCdXR0b25SZWYuY3VycmVudC5vZmZzZXRIZWlnaHQpXHJcbiAgICAgICAgICAgIDogTnVtYmVyKHByZXZCdXR0b25SZWYuY3VycmVudC5vZmZzZXRXaWR0aCk7XHJcbiAgICAgICAgY29uc3QgbmV4dEJ1dHRvbk9mZnNldCA9IHZlcnRpY2FsXHJcbiAgICAgICAgICAgID8gTnVtYmVyKG5leHRCdXR0b25SZWYuY3VycmVudC5vZmZzZXRIZWlnaHQpXHJcbiAgICAgICAgICAgIDogTnVtYmVyKG5leHRCdXR0b25SZWYuY3VycmVudC5vZmZzZXRXaWR0aCk7XHJcbiAgICAgICAgaWYgKHRhYk1ldGFbc3RhcnRdIDwgTnVtYmVyKHRhYnNNZXRhW3N0YXJ0XSkgKyBwcmV2QnV0dG9uT2Zmc2V0KSB7XHJcbiAgICAgICAgICAgIC8vIGxlZnQgc2lkZSBvZiBidXR0b24gaXMgb3V0IG9mIHZpZXdcclxuICAgICAgICAgICAgY29uc3QgbmV4dFNjcm9sbFN0YXJ0ID0gTnVtYmVyKHRhYnNNZXRhW3Njcm9sbFN0YXJ0XSkgK1xyXG4gICAgICAgICAgICAgICAgKE51bWJlcih0YWJNZXRhW3N0YXJ0XSkgLSBOdW1iZXIodGFic01ldGFbc3RhcnRdKSkgLVxyXG4gICAgICAgICAgICAgICAgcHJldkJ1dHRvbk9mZnNldDtcclxuICAgICAgICAgICAgc2Nyb2xsKG5leHRTY3JvbGxTdGFydCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHRhYk1ldGFbZW5kXSA+IE51bWJlcih0YWJzTWV0YVtlbmRdKSAtIG5leHRCdXR0b25PZmZzZXQpIHtcclxuICAgICAgICAgICAgLy8gcmlnaHQgc2lkZSBvZiBidXR0b24gaXMgb3V0IG9mIHZpZXdcclxuICAgICAgICAgICAgY29uc3QgbmV4dFNjcm9sbFN0YXJ0ID0gTnVtYmVyKHRhYnNNZXRhW3Njcm9sbFN0YXJ0XSkgK1xyXG4gICAgICAgICAgICAgICAgKE51bWJlcih0YWJNZXRhW2VuZF0pIC0gTnVtYmVyKHRhYnNNZXRhW2VuZF0pKSArXHJcbiAgICAgICAgICAgICAgICBuZXh0QnV0dG9uT2Zmc2V0O1xyXG4gICAgICAgICAgICBzY3JvbGwobmV4dFNjcm9sbFN0YXJ0KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zdCBzY3JvbGxJbml0aWFsQWN0aXZlSW5kZXhJbnRvVmlldyA9ICgpID0+IHtcclxuICAgICAgICBjb25zdCB7IHRhYnNNZXRhLCB0YWJNZXRhIH0gPSBnZXRUYWJzTWV0YSgpO1xyXG4gICAgICAgIGlmICghdGFiTWV0YSB8fCAhdGFic01ldGEpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCB0YWJDZW50ZXIgPSAodGFiTWV0YVtzdGFydF0gKyB0YWJNZXRhW2VuZF0pIC8gMjtcclxuICAgICAgICBjb25zdCBjb250YWluZXJDZW50ZXIgPSAodGFic01ldGFbc3RhcnRdICsgdGFic01ldGFbZW5kXSkgLyAyO1xyXG4gICAgICAgIGNvbnN0IHNjcm9sbERlbHRhID0gdGFiQ2VudGVyIC0gY29udGFpbmVyQ2VudGVyO1xyXG4gICAgICAgIGNvbnN0IG5leHRTY3JvbGxTdGFydCA9IE51bWJlcih0YWJzTWV0YVtzY3JvbGxTdGFydF0pICsgc2Nyb2xsRGVsdGE7XHJcbiAgICAgICAgc2Nyb2xsKG5leHRTY3JvbGxTdGFydCk7XHJcbiAgICB9O1xyXG4gICAgUmVhY3QudXNlRWZmZWN0KHNjcm9sbFNlbGVjdGVkSW50b1ZpZXcsIFthY3RpdmVUYWJJbmRleF0pO1xyXG4gICAgUmVhY3QudXNlRWZmZWN0KHNjcm9sbEluaXRpYWxBY3RpdmVJbmRleEludG9WaWV3LCBbXSk7XHJcbiAgICBjb25zdCB7IGZvY3VzRmlyc3RWaXNpYmxlVGFiIH0gPSB1c2VTY3JvbGxUYWJGb2N1cyh0YWJzV3JhcHBlclJlZiwgb3JpZW50YXRpb24pO1xyXG4gICAgLy8gQW5ub3VuY2UgcGFuZWwgY29udGVudCB3aGVuIGFjdGl2ZSB0YWIgY2hhbmdlcyAoZXhjbHVkaW5nIGluaXRpYWwgbW91bnQpXHJcbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgIGlmIChpc0luaXRpYWxNb3VudC5jdXJyZW50KSB7XHJcbiAgICAgICAgICAgIGlzSW5pdGlhbE1vdW50LmN1cnJlbnQgPSBmYWxzZTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBwYW5lbElkID0gYHRhYnBhbmVsLSR7aW5zdGFuY2VJZH0tJHthY3RpdmVUYWJJbmRleH1gO1xyXG4gICAgICAgIGNvbnN0IHBhbmVsRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHBhbmVsSWQpO1xyXG4gICAgICAgIGlmIChwYW5lbEVsZW1lbnQpIHtcclxuICAgICAgICAgICAgY29uc3QgcGFuZWxUZXh0ID0gcGFuZWxFbGVtZW50LnRleHRDb250ZW50IHx8ICcnO1xyXG4gICAgICAgICAgICBzZXRQYW5lbEFubm91bmNlbWVudChwYW5lbFRleHQudHJpbSgpKTtcclxuICAgICAgICAgICAgY29uc3QgdGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4gc2V0UGFuZWxBbm5vdW5jZW1lbnQoJycpLCAxMDAwKTtcclxuICAgICAgICAgICAgcmV0dXJuICgpID0+IGNsZWFyVGltZW91dCh0aW1lb3V0KTtcclxuICAgICAgICB9XHJcbiAgICB9LCBbYWN0aXZlVGFiSW5kZXgsIGluc3RhbmNlSWRdKTtcclxuICAgIGZ1bmN0aW9uIGNoYW5nZUhhbmRsZXIobmV3QWN0aXZlSW5kZXgsIGV2ZW50KSB7XHJcbiAgICAgICAgaWYgKGV2ZW50LnRhcmdldC5jaGlsZHJlblswXSAmJlxyXG4gICAgICAgICAgICBldmVudC50YXJnZXQuY2hpbGRyZW5bMF0uaGFzQXR0cmlidXRlKCdkaXNhYmxlZCcpKSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIG9uQ2hhbmdlICYmIHR5cGVvZiBvbkNoYW5nZSA9PT0gJ2Z1bmN0aW9uJyAmJiBvbkNoYW5nZShuZXdBY3RpdmVJbmRleCk7XHJcbiAgICAgICAgaWYgKG5ld0FjdGl2ZUluZGV4ID09PSBhY3RpdmVUYWJJbmRleCkge1xyXG4gICAgICAgICAgICBzY3JvbGxTZWxlY3RlZEludG9WaWV3KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBzZXRBY3RpdmVUYWJJbmRleChuZXdBY3RpdmVJbmRleCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gdGFiSXNFbmFibGVkKHRhYkluZGV4KSB7XHJcbiAgICAgICAgcmV0dXJuIChidXR0b25SZWZBcnJheS5jdXJyZW50W3RhYkluZGV4XS5jdXJyZW50LmdldEF0dHJpYnV0ZSgnZGlzYWJsZWQnKSA9PT1cclxuICAgICAgICAgICAgbnVsbCk7XHJcbiAgICB9XHJcbiAgICBmdW5jdGlvbiBmaW5kUHJldmlvdXNFbmFibGVkVGFiSW5kZXgobW9kaWZpZWRBY3RpdmVUYWJJbmRleCkge1xyXG4gICAgICAgIGNvbnN0IGN1cnJlbnRUYWJJbmRleCA9IG1vZGlmaWVkQWN0aXZlVGFiSW5kZXhcclxuICAgICAgICAgICAgPyBtb2RpZmllZEFjdGl2ZVRhYkluZGV4XHJcbiAgICAgICAgICAgIDogYWN0aXZlVGFiSW5kZXg7XHJcbiAgICAgICAgY29uc3QgbmV3QWN0aXZlVGFiSW5kZXggPSBjdXJyZW50VGFiSW5kZXggPiAwID8gY3VycmVudFRhYkluZGV4IC0gMSA6IDA7XHJcbiAgICAgICAgaWYgKHRhYklzRW5hYmxlZChuZXdBY3RpdmVUYWJJbmRleCkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ld0FjdGl2ZVRhYkluZGV4O1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChuZXdBY3RpdmVUYWJJbmRleCAtIDEgPj0gMCkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmluZFByZXZpb3VzRW5hYmxlZFRhYkluZGV4KG5ld0FjdGl2ZVRhYkluZGV4KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBhY3RpdmVUYWJJbmRleDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBmdW5jdGlvbiBmaW5kTmV4dEVuYWJsZWRUYWJJbmRleChsYXN0Q2hpbGRJbmRleCwgbW9kaWZpZWRBY3RpdmVUYWJJbmRleCkge1xyXG4gICAgICAgIGNvbnN0IGN1cnJlbnRUYWJJbmRleCA9IG1vZGlmaWVkQWN0aXZlVGFiSW5kZXggPT09IDAgfHwgbW9kaWZpZWRBY3RpdmVUYWJJbmRleFxyXG4gICAgICAgICAgICA/IG1vZGlmaWVkQWN0aXZlVGFiSW5kZXhcclxuICAgICAgICAgICAgOiBhY3RpdmVUYWJJbmRleDtcclxuICAgICAgICBjb25zdCBuZXdBY3RpdmVUYWJJbmRleCA9IGN1cnJlbnRUYWJJbmRleCA8IGxhc3RDaGlsZEluZGV4ID8gY3VycmVudFRhYkluZGV4ICsgMSA6IGxhc3RDaGlsZEluZGV4O1xyXG4gICAgICAgIGlmICh0YWJJc0VuYWJsZWQobmV3QWN0aXZlVGFiSW5kZXgpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXdBY3RpdmVUYWJJbmRleDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAobmV3QWN0aXZlVGFiSW5kZXggKyAxIDw9IGxhc3RDaGlsZEluZGV4KSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmaW5kTmV4dEVuYWJsZWRUYWJJbmRleChsYXN0Q2hpbGRJbmRleCwgbmV3QWN0aXZlVGFiSW5kZXgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIGFjdGl2ZVRhYkluZGV4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIGhhbmRsZUtleURvd24oZXZlbnQpIHtcclxuICAgICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQ7XHJcbiAgICAgICAgY29uc3Qgcm9sZSA9IHRhcmdldC5nZXRBdHRyaWJ1dGUoJ3JvbGUnKTtcclxuICAgICAgICBpZiAocm9sZSAhPT0gJ3RhYicpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBsYXN0Q2hpbGRJbmRleCA9IGJ1dHRvblJlZkFycmF5LmN1cnJlbnQubGVuZ3RoIC0gMTtcclxuICAgICAgICBsZXQgbmV3QWN0aXZlVGFiSW5kZXggPSBudWxsO1xyXG4gICAgICAgIGNvbnN0IHByZXZpb3VzSXRlbUtleSA9IG9yaWVudGF0aW9uICE9PSBUYWJzT3JpZW50YXRpb24udmVydGljYWwgPyAnQXJyb3dMZWZ0JyA6ICdBcnJvd1VwJztcclxuICAgICAgICBjb25zdCBuZXh0SXRlbUtleSA9IG9yaWVudGF0aW9uICE9PSBUYWJzT3JpZW50YXRpb24udmVydGljYWwgPyAnQXJyb3dSaWdodCcgOiAnQXJyb3dEb3duJztcclxuICAgICAgICBzd2l0Y2ggKGV2ZW50LmtleSkge1xyXG4gICAgICAgICAgICBjYXNlIHByZXZpb3VzSXRlbUtleTpcclxuICAgICAgICAgICAgICAgIG5ld0FjdGl2ZVRhYkluZGV4ID0gZmluZFByZXZpb3VzRW5hYmxlZFRhYkluZGV4KCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBuZXh0SXRlbUtleTpcclxuICAgICAgICAgICAgICAgIG5ld0FjdGl2ZVRhYkluZGV4ID0gZmluZE5leHRFbmFibGVkVGFiSW5kZXgobGFzdENoaWxkSW5kZXgpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ0hvbWUnOlxyXG4gICAgICAgICAgICAgICAgbmV3QWN0aXZlVGFiSW5kZXggPSB0YWJJc0VuYWJsZWQoMClcclxuICAgICAgICAgICAgICAgICAgICA/IDBcclxuICAgICAgICAgICAgICAgICAgICA6IGZpbmROZXh0RW5hYmxlZFRhYkluZGV4KGxhc3RDaGlsZEluZGV4LCAwKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdFbmQnOlxyXG4gICAgICAgICAgICAgICAgbmV3QWN0aXZlVGFiSW5kZXggPSB0YWJJc0VuYWJsZWQobGFzdENoaWxkSW5kZXgpXHJcbiAgICAgICAgICAgICAgICAgICAgPyBsYXN0Q2hpbGRJbmRleFxyXG4gICAgICAgICAgICAgICAgICAgIDogZmluZFByZXZpb3VzRW5hYmxlZFRhYkluZGV4KGxhc3RDaGlsZEluZGV4KTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChuZXdBY3RpdmVUYWJJbmRleCAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBvbkNoYW5nZSAmJlxyXG4gICAgICAgICAgICAgICAgdHlwZW9mIG9uQ2hhbmdlID09PSAnZnVuY3Rpb24nICYmXHJcbiAgICAgICAgICAgICAgICBvbkNoYW5nZShuZXdBY3RpdmVUYWJJbmRleCk7XHJcbiAgICAgICAgICAgIHNldEFjdGl2ZVRhYkluZGV4KG5ld0FjdGl2ZVRhYkluZGV4KTtcclxuICAgICAgICAgICAgYnV0dG9uUmVmQXJyYXkuY3VycmVudFtuZXdBY3RpdmVUYWJJbmRleF0uY3VycmVudC5mb2N1cygpO1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnN0IGkxOG4gPSBSZWFjdC51c2VDb250ZXh0KEkxOG5Db250ZXh0KTtcclxuICAgIGNvbnN0IGFyaWFMYWJlbCA9IGAke3Jlc3RbJ2FyaWEtbGFiZWwnXSB8fCAnJ30sICR7b3JpZW50YXRpb24gPT09IFRhYnNPcmllbnRhdGlvbi52ZXJ0aWNhbFxyXG4gICAgICAgID8gaTE4bi50YWJzLnZlcnRpY2FsVGFic0luc3RydWN0aW9uc1xyXG4gICAgICAgIDogaTE4bi50YWJzLmhvcml6b250YWxUYWJzSW5zdHJ1Y3Rpb25zfWA7XHJcbiAgICBjb25zdCB0aW1lb3V0UmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xyXG4gICAgY29uc3QgaGFuZGxlUHJldlNjcm9sbFdpdGhBbm5vdW5jZW1lbnQgPSAoKSA9PiB7XHJcbiAgICAgICAgaGFuZGxlU3RhcnRTY3JvbGxDbGljaygpO1xyXG4gICAgICAgIHNldFNjcm9sbEFubm91bmNlbWVudChpMThuLnRhYnMuc2Nyb2xsZWRCYWNrQW5ub3VuY2UpO1xyXG4gICAgICAgIGlmICh0aW1lb3V0UmVmLmN1cnJlbnQpIHtcclxuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXRSZWYuY3VycmVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRpbWVvdXRSZWYuY3VycmVudCA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBzZXRTY3JvbGxBbm5vdW5jZW1lbnQoJycpO1xyXG4gICAgICAgICAgICBmb2N1c0ZpcnN0VmlzaWJsZVRhYigpO1xyXG4gICAgICAgIH0sIDMwMCk7XHJcbiAgICB9O1xyXG4gICAgY29uc3QgaGFuZGxlTmV4dFNjcm9sbFdpdGhBbm5vdW5jZW1lbnQgPSAoKSA9PiB7XHJcbiAgICAgICAgaGFuZGxlRW5kU2Nyb2xsQ2xpY2soKTtcclxuICAgICAgICBzZXRTY3JvbGxBbm5vdW5jZW1lbnQoaTE4bi50YWJzLnNjcm9sbGVkRm9yd2FyZEFubm91bmNlKTtcclxuICAgICAgICBpZiAodGltZW91dFJlZi5jdXJyZW50KSB7XHJcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0UmVmLmN1cnJlbnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aW1lb3V0UmVmLmN1cnJlbnQgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgc2V0U2Nyb2xsQW5ub3VuY2VtZW50KCcnKTtcclxuICAgICAgICAgICAgZm9jdXNGaXJzdFZpc2libGVUYWIoKTtcclxuICAgICAgICB9LCAzMDApO1xyXG4gICAgfTtcclxuICAgIGNvbnN0IG90aGVyID0gb21pdChbJ2FyaWEtbGFiZWwnXSwgcmVzdCk7XHJcbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkQ29udGFpbmVyLCBPYmplY3QuYXNzaWduKHsgXCJkYXRhLXRlc3RpZFwiOiB0ZXN0SWQsIGJhY2tncm91bmRDb2xvcjogYmFja2dyb3VuZCwgaXNJbnZlcnNlOiBpc0ludmVyc2UsIG9yaWVudGF0aW9uOiBvcmllbnRhdGlvbiB8fCBUYWJzT3JpZW50YXRpb24uaG9yaXpvbnRhbCwgcmVmOiByZWYsIHRoZW1lOiB0aGVtZSB9LCBvdGhlciksXHJcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChCdXR0b25QcmV2LCB7IGJhY2tncm91bmRDb2xvcjogYmFja2dyb3VuZCwgYnV0dG9uVmlzaWJsZTogZGlzcGxheVNjcm9sbC5zdGFydCwgaXNJbnZlcnNlOiBpc0ludmVyc2UsIG9uQ2xpY2s6IGhhbmRsZVByZXZTY3JvbGxXaXRoQW5ub3VuY2VtZW50LCBvcmllbnRhdGlvbjogb3JpZW50YXRpb24gfHwgVGFic09yaWVudGF0aW9uLmhvcml6b250YWwsIHJlZjogcHJldkJ1dHRvblJlZiwgdGhlbWU6IHRoZW1lIH0pLFxyXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkVGFic1dyYXBwZXIsIHsgXCJkYXRhLXRlc3RpZFwiOiBcInRhYnNXcmFwcGVyXCIsIG9uU2Nyb2xsOiBoYW5kbGVUYWJzU2Nyb2xsLCBvcmllbnRhdGlvbjogb3JpZW50YXRpb24sIHJlZjogdGFic1dyYXBwZXJSZWYgfSxcclxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZWRUYWJzLCB7IGFsaWdubWVudDogYWxpZ25tZW50ID8gYWxpZ25tZW50IDogVGFic0FsaWdubWVudC5sZWZ0LCBcImFyaWEtbGFiZWxcIjogYXJpYUxhYmVsLCBcImFyaWEtb3JpZW50YXRpb25cIjogb3JpZW50YXRpb24gfHwgVGFic09yaWVudGF0aW9uLmhvcml6b250YWwsIG9uS2V5RG93bjogaGFuZGxlS2V5RG93biwgb3JpZW50YXRpb246IG9yaWVudGF0aW9uLCByZWY6IGNoaWxkcmVuV3JhcHBlclJlZiwgcm9sZTogXCJ0YWJsaXN0XCIgfSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGFic0NvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUG9zaXRpb24sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvblJlZkFycmF5LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VIYW5kbGVyLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uUG9zaXRpb24sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzSW52ZXJzZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXNGdWxsV2lkdGgsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9yaWVudGF0aW9uLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0VHJhbnNmb3JtOiB0ZXh0VHJhbnNmb3JtIHx8IFRhYnNUZXh0VHJhbnNmb3JtLnVwcGVyY2FzZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVnaXN0ZXJUYWJCdXR0b24sXHJcbiAgICAgICAgICAgICAgICAgICAgfSB9LCBjaGlsZHJlbikpKSxcclxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEJ1dHRvbk5leHQsIHsgYmFja2dyb3VuZENvbG9yOiBiYWNrZ3JvdW5kLCBidXR0b25WaXNpYmxlOiBkaXNwbGF5U2Nyb2xsLmVuZCwgaXNJbnZlcnNlOiBpc0ludmVyc2UsIG9uQ2xpY2s6IGhhbmRsZU5leHRTY3JvbGxXaXRoQW5ub3VuY2VtZW50LCBvcmllbnRhdGlvbjogb3JpZW50YXRpb24gfHwgVGFic09yaWVudGF0aW9uLmhvcml6b250YWwsIHJlZjogbmV4dEJ1dHRvblJlZiwgdGhlbWU6IHRoZW1lIH0pLFxyXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVmlzdWFsbHlIaWRkZW4sIG51bGwsXHJcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQW5ub3VuY2UsIG51bGwsIHNjcm9sbEFubm91bmNlbWVudCkpLFxyXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVmlzdWFsbHlIaWRkZW4sIG51bGwsXHJcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQW5ub3VuY2UsIG51bGwsIHBhbmVsQW5ub3VuY2VtZW50KSkpKTtcclxufSk7XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVRhYnMuanMubWFwIl19 */"));
22220
22243
  var StyledTabsWrapper = /*#__PURE__*/createStyled('div', {
22221
22244
  shouldForwardProp: isPropValid,
22222
22245
  target: "exr2c6p1",
@@ -22225,7 +22248,7 @@
22225
22248
  return props.orientation === 'vertical' ? '' : 'auto';
22226
22249
  }, ";overflow-y:", function (props) {
22227
22250
  return props.orientation === 'vertical' ? 'auto' : '';
22228
- }, ";&::-webkit-scrollbar{width:0;height:0;}scrollbar-width:none;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRhYnMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXdERyIsImZpbGUiOiJUYWJzLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XHJcbmltcG9ydCBpc1Byb3BWYWxpZCBmcm9tICdAZW1vdGlvbi9pcy1wcm9wLXZhbGlkJztcclxuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xyXG5pbXBvcnQgeyBUYWJzT3JpZW50YXRpb24sIFRhYnNUZXh0VHJhbnNmb3JtIH0gZnJvbSAnLi9zaGFyZWQnO1xyXG5pbXBvcnQgeyBUYWJzQ29udGFpbmVyQ29udGV4dCB9IGZyb20gJy4vVGFic0NvbnRhaW5lcic7XHJcbmltcG9ydCB7IEJ1dHRvbk5leHQsIEJ1dHRvblByZXYgfSBmcm9tICcuL1RhYnNTY3JvbGxCdXR0b25zJztcclxuaW1wb3J0IHsgdXNlVGFic01ldGEgfSBmcm9tICcuL3V0aWxzJztcclxuaW1wb3J0IHsgdXNlRGVzY2VuZGFudHMgfSBmcm9tICcuLi8uLi9ob29rcy91c2VEZXNjZW5kYW50cyc7XHJcbmltcG9ydCB7IEkxOG5Db250ZXh0IH0gZnJvbSAnLi4vLi4vaTE4bic7XHJcbmltcG9ydCB7IFRoZW1lQ29udGV4dCB9IGZyb20gJy4uLy4uL3RoZW1lL1RoZW1lQ29udGV4dCc7XHJcbmltcG9ydCB7IG9taXQsIGdldE5vcm1hbGl6ZWRTY3JvbGxMZWZ0IH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xyXG5pbXBvcnQgeyBBbm5vdW5jZSB9IGZyb20gJy4uL0Fubm91bmNlJztcclxuaW1wb3J0IHsgVmlzdWFsbHlIaWRkZW4gfSBmcm9tICcuLi9WaXN1YWxseUhpZGRlbic7XHJcbmV4cG9ydCB2YXIgVGFic0FsaWdubWVudDtcclxuKGZ1bmN0aW9uIChUYWJzQWxpZ25tZW50KSB7XHJcbiAgICBUYWJzQWxpZ25tZW50W1wiY2VudGVyXCJdID0gXCJjZW50ZXJcIjtcclxuICAgIFRhYnNBbGlnbm1lbnRbXCJsZWZ0XCJdID0gXCJsZWZ0XCI7XHJcbiAgICBUYWJzQWxpZ25tZW50W1wicmlnaHRcIl0gPSBcInJpZ2h0XCI7XHJcbn0pKFRhYnNBbGlnbm1lbnQgfHwgKFRhYnNBbGlnbm1lbnQgPSB7fSkpO1xyXG5leHBvcnQgdmFyIFRhYnNCb3JkZXJQb3NpdGlvbjtcclxuKGZ1bmN0aW9uIChUYWJzQm9yZGVyUG9zaXRpb24pIHtcclxuICAgIFRhYnNCb3JkZXJQb3NpdGlvbltcImJvdHRvbVwiXSA9IFwiYm90dG9tXCI7XHJcbiAgICBUYWJzQm9yZGVyUG9zaXRpb25bXCJsZWZ0XCJdID0gXCJsZWZ0XCI7XHJcbiAgICBUYWJzQm9yZGVyUG9zaXRpb25bXCJyaWdodFwiXSA9IFwicmlnaHRcIjtcclxuICAgIFRhYnNCb3JkZXJQb3NpdGlvbltcInRvcFwiXSA9IFwidG9wXCI7XHJcbn0pKFRhYnNCb3JkZXJQb3NpdGlvbiB8fCAoVGFic0JvcmRlclBvc2l0aW9uID0ge30pKTtcclxuZXhwb3J0IHZhciBUYWJzSWNvblBvc2l0aW9uO1xyXG4oZnVuY3Rpb24gKFRhYnNJY29uUG9zaXRpb24pIHtcclxuICAgIFRhYnNJY29uUG9zaXRpb25bXCJib3R0b21cIl0gPSBcImJvdHRvbVwiO1xyXG4gICAgVGFic0ljb25Qb3NpdGlvbltcImxlZnRcIl0gPSBcImxlZnRcIjtcclxuICAgIFRhYnNJY29uUG9zaXRpb25bXCJyaWdodFwiXSA9IFwicmlnaHRcIjtcclxuICAgIFRhYnNJY29uUG9zaXRpb25bXCJ0b3BcIl0gPSBcInRvcFwiO1xyXG59KShUYWJzSWNvblBvc2l0aW9uIHx8IChUYWJzSWNvblBvc2l0aW9uID0ge30pKTtcclxuZXhwb3J0IGNvbnN0IFRhYnNDb250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dCh7XHJcbiAgICBib3JkZXJQb3NpdGlvbjogVGFic0JvcmRlclBvc2l0aW9uLmJvdHRvbSxcclxuICAgIGNoYW5nZUhhbmRsZXI6ICgpID0+IHsgfSxcclxuICAgIGljb25Qb3NpdGlvbjogVGFic0ljb25Qb3NpdGlvbi5sZWZ0LFxyXG4gICAgaXNJbnZlcnNlOiBmYWxzZSxcclxuICAgIGlzRnVsbFdpZHRoOiBmYWxzZSxcclxuICAgIG9yaWVudGF0aW9uOiBUYWJzT3JpZW50YXRpb24uaG9yaXpvbnRhbCxcclxuICAgIHRleHRUcmFuc2Zvcm06IFRhYnNUZXh0VHJhbnNmb3JtLnVwcGVyY2FzZSxcclxuICAgIHJlZ2lzdGVyVGFiQnV0dG9uOiAoZWxlbWVudHMsIGVsZW1lbnQpID0+IHsgfSxcclxufSk7XHJcbmV4cG9ydCBjb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoJ2RpdicsIHtcclxuICAgIHNob3VsZEZvcndhcmRQcm9wOiBpc1Byb3BWYWxpZCxcclxufSkgYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLmJhY2tncm91bmRDb2xvciA/IHByb3BzLmJhY2tncm91bmRDb2xvciA6ICd0cmFuc3BhcmVudCd9O1xuICBiYWNrZ3JvdW5kOiBiYWNrZ3JvdW5kQ29sb3I7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGhlaWdodDogJHtwcm9wcyA9PiAocHJvcHMub3JpZW50YXRpb24gPT09ICd2ZXJ0aWNhbCcgPyAnMTAwJScgOiAnYXV0bycpfTtcblxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAke3Byb3BzID0+IChwcm9wcy5vcmllbnRhdGlvbiA9PT0gJ3ZlcnRpY2FsJyA/ICdhdXRvJyA6ICcxMDAlJyl9O1xuYDtcclxuZXhwb3J0IGNvbnN0IFN0eWxlZFRhYnNXcmFwcGVyID0gc3R5bGVkKCdkaXYnLCB7XHJcbiAgICBzaG91bGRGb3J3YXJkUHJvcDogaXNQcm9wVmFsaWQsXHJcbn0pIGBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1ncm93OiAxO1xuICBvdmVyZmxvdy14OiAke3Byb3BzID0+IChwcm9wcy5vcmllbnRhdGlvbiA9PT0gJ3ZlcnRpY2FsJyA/ICcnIDogJ2F1dG8nKX07XG4gIG92ZXJmbG93LXk6ICR7cHJvcHMgPT4gKHByb3BzLm9yaWVudGF0aW9uID09PSAndmVydGljYWwnID8gJ2F1dG8nIDogJycpfTtcblxuICAmOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICB9XG4gIHNjcm9sbGJhci13aWR0aDogbm9uZTtcbmA7XHJcbmV4cG9ydCBjb25zdCBTdHlsZWRUYWJzID0gc3R5bGVkKCd1bCcsIHsgc2hvdWxkRm9yd2FyZFByb3A6IGlzUHJvcFZhbGlkIH0pIGBcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246ICR7cHJvcHMgPT4gcHJvcHMub3JpZW50YXRpb24gPT09ICd2ZXJ0aWNhbCcgPyAnY29sdW1uJyA6ICdyb3cnfTtcbiAganVzdGlmeS1jb250ZW50OiAke3Byb3BzID0+IHByb3BzLmFsaWdubWVudCA9PT0gJ2NlbnRlcidcclxuICAgID8gJ2NlbnRlcidcclxuICAgIDogcHJvcHMuYWxpZ25tZW50ID09PSAncmlnaHQnXHJcbiAgICAgICAgPyAnZmxleC1lbmQnXHJcbiAgICAgICAgOiAnJ307XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgd2lkdGg6ICR7cHJvcHMgPT4gKHByb3BzLm9yaWVudGF0aW9uID09PSAndmVydGljYWwnID8gJ2F1dG8nIDogJzEwMCUnKX07XG5gO1xyXG5leHBvcnQgY29uc3QgVGFicyA9IFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCByZWYpID0+IHtcclxuICAgIGNvbnN0IHsgYWxpZ25tZW50LCBiYWNrZ3JvdW5kQ29sb3IsIGJvcmRlclBvc2l0aW9uLCBjaGlsZHJlbiwgaXNGdWxsV2lkdGgsIG9yaWVudGF0aW9uLCBvbkNoYW5nZSwgaWNvblBvc2l0aW9uLCB0ZXN0SWQsIHRleHRUcmFuc2Zvcm0sIC4uLnJlc3QgfSA9IHByb3BzO1xyXG4gICAgY29uc3QgdGhlbWUgPSBSZWFjdC51c2VDb250ZXh0KFRoZW1lQ29udGV4dCk7XHJcbiAgICBjb25zdCB7IGFjdGl2ZVRhYkluZGV4LCBzZXRBY3RpdmVUYWJJbmRleCwgaXNJbnZlcnNlQ29udGFpbmVyLCBpbnN0YW5jZUlkLCB9ID0gUmVhY3QudXNlQ29udGV4dChUYWJzQ29udGFpbmVyQ29udGV4dCk7XHJcbiAgICBjb25zdCBpc0ludmVyc2UgPSB0eXBlb2YgcHJvcHMuaXNJbnZlcnNlICE9PSAndW5kZWZpbmVkJ1xyXG4gICAgICAgID8gQm9vbGVhbihwcm9wcy5pc0ludmVyc2UpXHJcbiAgICAgICAgOiBpc0ludmVyc2VDb250YWluZXI7XHJcbiAgICBjb25zdCBbdGFic01ldGEsIHRhYnNIYW5kbGVNZXRob2RzLCB0YWJzUmVmc10gPSB1c2VUYWJzTWV0YSh0aGVtZSwgb3JpZW50YXRpb24sIGJhY2tncm91bmRDb2xvciwgaXNJbnZlcnNlKTtcclxuICAgIGNvbnN0IHsgdmVydGljYWwsIGJhY2tncm91bmQsIGRpc3BsYXlTY3JvbGwsIHNjcm9sbFN0YXJ0IH0gPSB0YWJzTWV0YTtcclxuICAgIGNvbnN0IHsgaGFuZGxlU3RhcnRTY3JvbGxDbGljaywgaGFuZGxlRW5kU2Nyb2xsQ2xpY2ssIGhhbmRsZVRhYnNTY3JvbGwsIHNjcm9sbCwgfSA9IHRhYnNIYW5kbGVNZXRob2RzO1xyXG4gICAgY29uc3QgeyBwcmV2QnV0dG9uUmVmLCBuZXh0QnV0dG9uUmVmLCB0YWJzV3JhcHBlclJlZiB9ID0gdGFic1JlZnM7XHJcbiAgICBjb25zdCBzdGFydCA9IHZlcnRpY2FsID8gJ3RvcCcgOiAnbGVmdCc7XHJcbiAgICBjb25zdCBlbmQgPSB2ZXJ0aWNhbCA/ICdib3R0b20nIDogJ3JpZ2h0JztcclxuICAgIGNvbnN0IFtidXR0b25SZWZBcnJheSwgcmVnaXN0ZXJUYWJCdXR0b25dID0gdXNlRGVzY2VuZGFudHMoKTtcclxuICAgIGNvbnN0IGNoaWxkcmVuV3JhcHBlclJlZiA9IFJlYWN0LnVzZVJlZigpO1xyXG4gICAgY29uc3QgW3Njcm9sbEFubm91bmNlbWVudCwgc2V0U2Nyb2xsQW5ub3VuY2VtZW50XSA9IFJlYWN0LnVzZVN0YXRlKCcnKTtcclxuICAgIGNvbnN0IFtwYW5lbEFubm91bmNlbWVudCwgc2V0UGFuZWxBbm5vdW5jZW1lbnRdID0gUmVhY3QudXNlU3RhdGUoJycpO1xyXG4gICAgY29uc3QgaXNJbml0aWFsTW91bnQgPSBSZWFjdC51c2VSZWYodHJ1ZSk7XHJcbiAgICBmdW5jdGlvbiBnZXRUYWJzTWV0YSgpIHtcclxuICAgICAgICBjb25zdCB0YWJzTm9kZSA9IHRhYnNXcmFwcGVyUmVmLmN1cnJlbnQ7XHJcbiAgICAgICAgbGV0IHRhYnNNZXRhO1xyXG4gICAgICAgIGlmICh0YWJzTm9kZSkge1xyXG4gICAgICAgICAgICBjb25zdCByZWN0ID0gdGFic05vZGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgICAgICAgIHRhYnNNZXRhID0ge1xyXG4gICAgICAgICAgICAgICAgY2xpZW50V2lkdGg6IHRhYnNOb2RlLmNsaWVudFdpZHRoLFxyXG4gICAgICAgICAgICAgICAgc2Nyb2xsTGVmdDogdGFic05vZGUuc2Nyb2xsTGVmdCxcclxuICAgICAgICAgICAgICAgIHNjcm9sbFRvcDogdGFic05vZGUuc2Nyb2xsVG9wLFxyXG4gICAgICAgICAgICAgICAgc2Nyb2xsTGVmdE5vcm1hbGl6ZWQ6IGdldE5vcm1hbGl6ZWRTY3JvbGxMZWZ0KHRhYnNOb2RlLCB0aGVtZS5kaXJlY3Rpb24pLFxyXG4gICAgICAgICAgICAgICAgc2Nyb2xsV2lkdGg6IHRhYnNOb2RlLnNjcm9sbFdpZHRoLFxyXG4gICAgICAgICAgICAgICAgdG9wOiByZWN0LnRvcCxcclxuICAgICAgICAgICAgICAgIGJvdHRvbTogcmVjdC5ib3R0b20sXHJcbiAgICAgICAgICAgICAgICBsZWZ0OiByZWN0LmxlZnQsXHJcbiAgICAgICAgICAgICAgICByaWdodDogcmVjdC5yaWdodCxcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IHRhYk1ldGE7XHJcbiAgICAgICAgaWYgKHRhYnNOb2RlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNoaWxkcmVuQXJyYXkgPSBjaGlsZHJlbldyYXBwZXJSZWYuY3VycmVudC5jaGlsZHJlbjtcclxuICAgICAgICAgICAgaWYgKGNoaWxkcmVuQXJyYXkubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdGFiID0gY2hpbGRyZW5BcnJheVthY3RpdmVUYWJJbmRleF07XHJcbiAgICAgICAgICAgICAgICB0YWJNZXRhID0gdGFiID8gdGFiLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpIDogbnVsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4geyB0YWJzTWV0YSwgdGFiTWV0YSB9O1xyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gc2Nyb2xsU2VsZWN0ZWRJbnRvVmlldygpIHtcclxuICAgICAgICBjb25zdCB7IHRhYnNNZXRhLCB0YWJNZXRhIH0gPSBnZXRUYWJzTWV0YSgpO1xyXG4gICAgICAgIGlmICghdGFiTWV0YSB8fCAhdGFic01ldGEpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBwcmV2QnV0dG9uT2Zmc2V0ID0gdmVydGljYWxcclxuICAgICAgICAgICAgPyBOdW1iZXIocHJldkJ1dHRvblJlZi5jdXJyZW50Lm9mZnNldEhlaWdodClcclxuICAgICAgICAgICAgOiBOdW1iZXIocHJldkJ1dHRvblJlZi5jdXJyZW50Lm9mZnNldFdpZHRoKTtcclxuICAgICAgICBjb25zdCBuZXh0QnV0dG9uT2Zmc2V0ID0gdmVydGljYWxcclxuICAgICAgICAgICAgPyBOdW1iZXIobmV4dEJ1dHRvblJlZi5jdXJyZW50Lm9mZnNldEhlaWdodClcclxuICAgICAgICAgICAgOiBOdW1iZXIobmV4dEJ1dHRvblJlZi5jdXJyZW50Lm9mZnNldFdpZHRoKTtcclxuICAgICAgICBpZiAodGFiTWV0YVtzdGFydF0gPCBOdW1iZXIodGFic01ldGFbc3RhcnRdKSArIHByZXZCdXR0b25PZmZzZXQpIHtcclxuICAgICAgICAgICAgLy8gbGVmdCBzaWRlIG9mIGJ1dHRvbiBpcyBvdXQgb2Ygdmlld1xyXG4gICAgICAgICAgICBjb25zdCBuZXh0U2Nyb2xsU3RhcnQgPSBOdW1iZXIodGFic01ldGFbc2Nyb2xsU3RhcnRdKSArXHJcbiAgICAgICAgICAgICAgICAoTnVtYmVyKHRhYk1ldGFbc3RhcnRdKSAtIE51bWJlcih0YWJzTWV0YVtzdGFydF0pKSAtXHJcbiAgICAgICAgICAgICAgICBwcmV2QnV0dG9uT2Zmc2V0O1xyXG4gICAgICAgICAgICBzY3JvbGwobmV4dFNjcm9sbFN0YXJ0KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAodGFiTWV0YVtlbmRdID4gTnVtYmVyKHRhYnNNZXRhW2VuZF0pIC0gbmV4dEJ1dHRvbk9mZnNldCkge1xyXG4gICAgICAgICAgICAvLyByaWdodCBzaWRlIG9mIGJ1dHRvbiBpcyBvdXQgb2Ygdmlld1xyXG4gICAgICAgICAgICBjb25zdCBuZXh0U2Nyb2xsU3RhcnQgPSBOdW1iZXIodGFic01ldGFbc2Nyb2xsU3RhcnRdKSArXHJcbiAgICAgICAgICAgICAgICAoTnVtYmVyKHRhYk1ldGFbZW5kXSkgLSBOdW1iZXIodGFic01ldGFbZW5kXSkpICtcclxuICAgICAgICAgICAgICAgIG5leHRCdXR0b25PZmZzZXQ7XHJcbiAgICAgICAgICAgIHNjcm9sbChuZXh0U2Nyb2xsU3RhcnQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnN0IHNjcm9sbEluaXRpYWxBY3RpdmVJbmRleEludG9WaWV3ID0gKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHsgdGFic01ldGEsIHRhYk1ldGEgfSA9IGdldFRhYnNNZXRhKCk7XHJcbiAgICAgICAgaWYgKCF0YWJNZXRhIHx8ICF0YWJzTWV0YSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHRhYkNlbnRlciA9ICh0YWJNZXRhW3N0YXJ0XSArIHRhYk1ldGFbZW5kXSkgLyAyO1xyXG4gICAgICAgIGNvbnN0IGNvbnRhaW5lckNlbnRlciA9ICh0YWJzTWV0YVtzdGFydF0gKyB0YWJzTWV0YVtlbmRdKSAvIDI7XHJcbiAgICAgICAgY29uc3Qgc2Nyb2xsRGVsdGEgPSB0YWJDZW50ZXIgLSBjb250YWluZXJDZW50ZXI7XHJcbiAgICAgICAgY29uc3QgbmV4dFNjcm9sbFN0YXJ0ID0gTnVtYmVyKHRhYnNNZXRhW3Njcm9sbFN0YXJ0XSkgKyBzY3JvbGxEZWx0YTtcclxuICAgICAgICBzY3JvbGwobmV4dFNjcm9sbFN0YXJ0KTtcclxuICAgIH07XHJcbiAgICBSZWFjdC51c2VFZmZlY3Qoc2Nyb2xsU2VsZWN0ZWRJbnRvVmlldywgW2FjdGl2ZVRhYkluZGV4XSk7XHJcbiAgICBSZWFjdC51c2VFZmZlY3Qoc2Nyb2xsSW5pdGlhbEFjdGl2ZUluZGV4SW50b1ZpZXcsIFtdKTtcclxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgaWYgKCFkaXNwbGF5U2Nyb2xsLnN0YXJ0KSB7XHJcbiAgICAgICAgICAgIG5leHRCdXR0b25SZWYuY3VycmVudD8uZm9jdXMoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoIWRpc3BsYXlTY3JvbGwuZW5kKSB7XHJcbiAgICAgICAgICAgIHByZXZCdXR0b25SZWYuY3VycmVudD8uZm9jdXMoKTtcclxuICAgICAgICB9XHJcbiAgICB9LCBbZGlzcGxheVNjcm9sbC5zdGFydCwgZGlzcGxheVNjcm9sbC5lbmRdKTtcclxuICAgIC8vIEFubm91bmNlIHBhbmVsIGNvbnRlbnQgd2hlbiBhY3RpdmUgdGFiIGNoYW5nZXMgKGV4Y2x1ZGluZyBpbml0aWFsIG1vdW50KVxyXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgICBpZiAoaXNJbml0aWFsTW91bnQuY3VycmVudCkge1xyXG4gICAgICAgICAgICBpc0luaXRpYWxNb3VudC5jdXJyZW50ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgcGFuZWxJZCA9IGB0YWJwYW5lbC0ke2luc3RhbmNlSWR9LSR7YWN0aXZlVGFiSW5kZXh9YDtcclxuICAgICAgICBjb25zdCBwYW5lbEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChwYW5lbElkKTtcclxuICAgICAgICBpZiAocGFuZWxFbGVtZW50KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHBhbmVsVGV4dCA9IHBhbmVsRWxlbWVudC50ZXh0Q29udGVudCB8fCAnJztcclxuICAgICAgICAgICAgc2V0UGFuZWxBbm5vdW5jZW1lbnQocGFuZWxUZXh0LnRyaW0oKSk7XHJcbiAgICAgICAgICAgIGNvbnN0IHRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHNldFBhbmVsQW5ub3VuY2VtZW50KCcnKSwgMTAwMCk7XHJcbiAgICAgICAgICAgIHJldHVybiAoKSA9PiBjbGVhclRpbWVvdXQodGltZW91dCk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW2FjdGl2ZVRhYkluZGV4LCBpbnN0YW5jZUlkXSk7XHJcbiAgICBmdW5jdGlvbiBjaGFuZ2VIYW5kbGVyKG5ld0FjdGl2ZUluZGV4LCBldmVudCkge1xyXG4gICAgICAgIGlmIChldmVudC50YXJnZXQuY2hpbGRyZW5bMF0gJiZcclxuICAgICAgICAgICAgZXZlbnQudGFyZ2V0LmNoaWxkcmVuWzBdLmhhc0F0dHJpYnV0ZSgnZGlzYWJsZWQnKSkge1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuICAgICAgICBvbkNoYW5nZSAmJiB0eXBlb2Ygb25DaGFuZ2UgPT09ICdmdW5jdGlvbicgJiYgb25DaGFuZ2UobmV3QWN0aXZlSW5kZXgpO1xyXG4gICAgICAgIGlmIChuZXdBY3RpdmVJbmRleCA9PT0gYWN0aXZlVGFiSW5kZXgpIHtcclxuICAgICAgICAgICAgc2Nyb2xsU2VsZWN0ZWRJbnRvVmlldygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgc2V0QWN0aXZlVGFiSW5kZXgobmV3QWN0aXZlSW5kZXgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIHRhYklzRW5hYmxlZCh0YWJJbmRleCkge1xyXG4gICAgICAgIHJldHVybiAoYnV0dG9uUmVmQXJyYXkuY3VycmVudFt0YWJJbmRleF0uY3VycmVudC5nZXRBdHRyaWJ1dGUoJ2Rpc2FibGVkJykgPT09XHJcbiAgICAgICAgICAgIG51bGwpO1xyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gZmluZFByZXZpb3VzRW5hYmxlZFRhYkluZGV4KG1vZGlmaWVkQWN0aXZlVGFiSW5kZXgpIHtcclxuICAgICAgICBjb25zdCBjdXJyZW50VGFiSW5kZXggPSBtb2RpZmllZEFjdGl2ZVRhYkluZGV4XHJcbiAgICAgICAgICAgID8gbW9kaWZpZWRBY3RpdmVUYWJJbmRleFxyXG4gICAgICAgICAgICA6IGFjdGl2ZVRhYkluZGV4O1xyXG4gICAgICAgIGNvbnN0IG5ld0FjdGl2ZVRhYkluZGV4ID0gY3VycmVudFRhYkluZGV4ID4gMCA/IGN1cnJlbnRUYWJJbmRleCAtIDEgOiAwO1xyXG4gICAgICAgIGlmICh0YWJJc0VuYWJsZWQobmV3QWN0aXZlVGFiSW5kZXgpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXdBY3RpdmVUYWJJbmRleDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAobmV3QWN0aXZlVGFiSW5kZXggLSAxID49IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZpbmRQcmV2aW91c0VuYWJsZWRUYWJJbmRleChuZXdBY3RpdmVUYWJJbmRleCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gYWN0aXZlVGFiSW5kZXg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gZmluZE5leHRFbmFibGVkVGFiSW5kZXgobGFzdENoaWxkSW5kZXgsIG1vZGlmaWVkQWN0aXZlVGFiSW5kZXgpIHtcclxuICAgICAgICBjb25zdCBjdXJyZW50VGFiSW5kZXggPSBtb2RpZmllZEFjdGl2ZVRhYkluZGV4ID09PSAwIHx8IG1vZGlmaWVkQWN0aXZlVGFiSW5kZXhcclxuICAgICAgICAgICAgPyBtb2RpZmllZEFjdGl2ZVRhYkluZGV4XHJcbiAgICAgICAgICAgIDogYWN0aXZlVGFiSW5kZXg7XHJcbiAgICAgICAgY29uc3QgbmV3QWN0aXZlVGFiSW5kZXggPSBjdXJyZW50VGFiSW5kZXggPCBsYXN0Q2hpbGRJbmRleCA/IGN1cnJlbnRUYWJJbmRleCArIDEgOiBsYXN0Q2hpbGRJbmRleDtcclxuICAgICAgICBpZiAodGFiSXNFbmFibGVkKG5ld0FjdGl2ZVRhYkluZGV4KSkge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3QWN0aXZlVGFiSW5kZXg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKG5ld0FjdGl2ZVRhYkluZGV4ICsgMSA8PSBsYXN0Q2hpbGRJbmRleCkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmluZE5leHRFbmFibGVkVGFiSW5kZXgobGFzdENoaWxkSW5kZXgsIG5ld0FjdGl2ZVRhYkluZGV4KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBhY3RpdmVUYWJJbmRleDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBmdW5jdGlvbiBoYW5kbGVLZXlEb3duKGV2ZW50KSB7XHJcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0O1xyXG4gICAgICAgIGNvbnN0IHJvbGUgPSB0YXJnZXQuZ2V0QXR0cmlidXRlKCdyb2xlJyk7XHJcbiAgICAgICAgaWYgKHJvbGUgIT09ICd0YWInKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgbGFzdENoaWxkSW5kZXggPSBidXR0b25SZWZBcnJheS5jdXJyZW50Lmxlbmd0aCAtIDE7XHJcbiAgICAgICAgbGV0IG5ld0FjdGl2ZVRhYkluZGV4ID0gbnVsbDtcclxuICAgICAgICBjb25zdCBwcmV2aW91c0l0ZW1LZXkgPSBvcmllbnRhdGlvbiAhPT0gVGFic09yaWVudGF0aW9uLnZlcnRpY2FsID8gJ0Fycm93TGVmdCcgOiAnQXJyb3dVcCc7XHJcbiAgICAgICAgY29uc3QgbmV4dEl0ZW1LZXkgPSBvcmllbnRhdGlvbiAhPT0gVGFic09yaWVudGF0aW9uLnZlcnRpY2FsID8gJ0Fycm93UmlnaHQnIDogJ0Fycm93RG93bic7XHJcbiAgICAgICAgc3dpdGNoIChldmVudC5rZXkpIHtcclxuICAgICAgICAgICAgY2FzZSBwcmV2aW91c0l0ZW1LZXk6XHJcbiAgICAgICAgICAgICAgICBuZXdBY3RpdmVUYWJJbmRleCA9IGZpbmRQcmV2aW91c0VuYWJsZWRUYWJJbmRleCgpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgbmV4dEl0ZW1LZXk6XHJcbiAgICAgICAgICAgICAgICBuZXdBY3RpdmVUYWJJbmRleCA9IGZpbmROZXh0RW5hYmxlZFRhYkluZGV4KGxhc3RDaGlsZEluZGV4KTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdIb21lJzpcclxuICAgICAgICAgICAgICAgIG5ld0FjdGl2ZVRhYkluZGV4ID0gdGFiSXNFbmFibGVkKDApXHJcbiAgICAgICAgICAgICAgICAgICAgPyAwXHJcbiAgICAgICAgICAgICAgICAgICAgOiBmaW5kTmV4dEVuYWJsZWRUYWJJbmRleChsYXN0Q2hpbGRJbmRleCwgMCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnRW5kJzpcclxuICAgICAgICAgICAgICAgIG5ld0FjdGl2ZVRhYkluZGV4ID0gdGFiSXNFbmFibGVkKGxhc3RDaGlsZEluZGV4KVxyXG4gICAgICAgICAgICAgICAgICAgID8gbGFzdENoaWxkSW5kZXhcclxuICAgICAgICAgICAgICAgICAgICA6IGZpbmRQcmV2aW91c0VuYWJsZWRUYWJJbmRleChsYXN0Q2hpbGRJbmRleCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobmV3QWN0aXZlVGFiSW5kZXggIT09IG51bGwpIHtcclxuICAgICAgICAgICAgb25DaGFuZ2UgJiZcclxuICAgICAgICAgICAgICAgIHR5cGVvZiBvbkNoYW5nZSA9PT0gJ2Z1bmN0aW9uJyAmJlxyXG4gICAgICAgICAgICAgICAgb25DaGFuZ2UobmV3QWN0aXZlVGFiSW5kZXgpO1xyXG4gICAgICAgICAgICBzZXRBY3RpdmVUYWJJbmRleChuZXdBY3RpdmVUYWJJbmRleCk7XHJcbiAgICAgICAgICAgIGJ1dHRvblJlZkFycmF5LmN1cnJlbnRbbmV3QWN0aXZlVGFiSW5kZXhdLmN1cnJlbnQuZm9jdXMoKTtcclxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zdCBpMThuID0gUmVhY3QudXNlQ29udGV4dChJMThuQ29udGV4dCk7XHJcbiAgICBjb25zdCBhcmlhTGFiZWwgPSBgJHtyZXN0WydhcmlhLWxhYmVsJ10gfHwgJyd9LCAke29yaWVudGF0aW9uID09PSBUYWJzT3JpZW50YXRpb24udmVydGljYWxcclxuICAgICAgICA/IGkxOG4udGFicy52ZXJ0aWNhbFRhYnNJbnN0cnVjdGlvbnNcclxuICAgICAgICA6IGkxOG4udGFicy5ob3Jpem9udGFsVGFic0luc3RydWN0aW9uc31gO1xyXG4gICAgY29uc3QgdGltZW91dFJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcclxuICAgIGNvbnN0IGhhbmRsZVByZXZTY3JvbGxXaXRoQW5ub3VuY2VtZW50ID0gKCkgPT4ge1xyXG4gICAgICAgIGhhbmRsZVN0YXJ0U2Nyb2xsQ2xpY2soKTtcclxuICAgICAgICBzZXRTY3JvbGxBbm5vdW5jZW1lbnQoaTE4bi50YWJzLnNjcm9sbGVkQmFja0Fubm91bmNlKTtcclxuICAgICAgICBpZiAodGltZW91dFJlZi5jdXJyZW50KSB7XHJcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0UmVmLmN1cnJlbnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aW1lb3V0UmVmLmN1cnJlbnQgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgc2V0U2Nyb2xsQW5ub3VuY2VtZW50KCcnKTtcclxuICAgICAgICB9LCAxMDApO1xyXG4gICAgfTtcclxuICAgIGNvbnN0IGhhbmRsZU5leHRTY3JvbGxXaXRoQW5ub3VuY2VtZW50ID0gKCkgPT4ge1xyXG4gICAgICAgIGhhbmRsZUVuZFNjcm9sbENsaWNrKCk7XHJcbiAgICAgICAgc2V0U2Nyb2xsQW5ub3VuY2VtZW50KGkxOG4udGFicy5zY3JvbGxlZEZvcndhcmRBbm5vdW5jZSk7XHJcbiAgICAgICAgaWYgKHRpbWVvdXRSZWYuY3VycmVudCkge1xyXG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dFJlZi5jdXJyZW50KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGltZW91dFJlZi5jdXJyZW50ID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHNldFNjcm9sbEFubm91bmNlbWVudCgnJyk7XHJcbiAgICAgICAgfSwgMTAwKTtcclxuICAgIH07XHJcbiAgICBjb25zdCBvdGhlciA9IG9taXQoWydhcmlhLWxhYmVsJ10sIHJlc3QpO1xyXG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFN0eWxlZENvbnRhaW5lciwgT2JqZWN0LmFzc2lnbih7IFwiZGF0YS10ZXN0aWRcIjogdGVzdElkLCBiYWNrZ3JvdW5kQ29sb3I6IGJhY2tncm91bmQsIGlzSW52ZXJzZTogaXNJbnZlcnNlLCBvcmllbnRhdGlvbjogb3JpZW50YXRpb24gfHwgVGFic09yaWVudGF0aW9uLmhvcml6b250YWwsIHJlZjogcmVmLCB0aGVtZTogdGhlbWUgfSwgb3RoZXIpLFxyXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQnV0dG9uUHJldiwgeyBiYWNrZ3JvdW5kQ29sb3I6IGJhY2tncm91bmQsIGJ1dHRvblZpc2libGU6IGRpc3BsYXlTY3JvbGwuc3RhcnQsIGlzSW52ZXJzZTogaXNJbnZlcnNlLCBvbkNsaWNrOiBoYW5kbGVQcmV2U2Nyb2xsV2l0aEFubm91bmNlbWVudCwgb3JpZW50YXRpb246IG9yaWVudGF0aW9uIHx8IFRhYnNPcmllbnRhdGlvbi5ob3Jpem9udGFsLCByZWY6IHByZXZCdXR0b25SZWYsIHRoZW1lOiB0aGVtZSB9KSxcclxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFN0eWxlZFRhYnNXcmFwcGVyLCB7IFwiZGF0YS10ZXN0aWRcIjogXCJ0YWJzV3JhcHBlclwiLCBvblNjcm9sbDogaGFuZGxlVGFic1Njcm9sbCwgb3JpZW50YXRpb246IG9yaWVudGF0aW9uLCByZWY6IHRhYnNXcmFwcGVyUmVmIH0sXHJcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkVGFicywgeyBhbGlnbm1lbnQ6IGFsaWdubWVudCA/IGFsaWdubWVudCA6IFRhYnNBbGlnbm1lbnQubGVmdCwgXCJhcmlhLWxhYmVsXCI6IGFyaWFMYWJlbCwgXCJhcmlhLW9yaWVudGF0aW9uXCI6IG9yaWVudGF0aW9uIHx8IFRhYnNPcmllbnRhdGlvbi5ob3Jpem9udGFsLCBvbktleURvd246IGhhbmRsZUtleURvd24sIG9yaWVudGF0aW9uOiBvcmllbnRhdGlvbiwgcmVmOiBjaGlsZHJlbldyYXBwZXJSZWYsIHJvbGU6IFwidGFibGlzdFwiIH0sXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFRhYnNDb250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlclBvc2l0aW9uLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBidXR0b25SZWZBcnJheSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlSGFuZGxlcixcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvblBvc2l0aW9uLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0ludmVyc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzRnVsbFdpZHRoLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvcmllbnRhdGlvbixcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dFRyYW5zZm9ybTogdGV4dFRyYW5zZm9ybSB8fCBUYWJzVGV4dFRyYW5zZm9ybS51cHBlcmNhc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lzdGVyVGFiQnV0dG9uLFxyXG4gICAgICAgICAgICAgICAgICAgIH0gfSwgY2hpbGRyZW4pKSksXHJcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChCdXR0b25OZXh0LCB7IGJhY2tncm91bmRDb2xvcjogYmFja2dyb3VuZCwgYnV0dG9uVmlzaWJsZTogZGlzcGxheVNjcm9sbC5lbmQsIGlzSW52ZXJzZTogaXNJbnZlcnNlLCBvbkNsaWNrOiBoYW5kbGVOZXh0U2Nyb2xsV2l0aEFubm91bmNlbWVudCwgb3JpZW50YXRpb246IG9yaWVudGF0aW9uIHx8IFRhYnNPcmllbnRhdGlvbi5ob3Jpem9udGFsLCByZWY6IG5leHRCdXR0b25SZWYsIHRoZW1lOiB0aGVtZSB9KSxcclxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFZpc3VhbGx5SGlkZGVuLCBudWxsLFxyXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEFubm91bmNlLCBudWxsLCBzY3JvbGxBbm5vdW5jZW1lbnQpKSxcclxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFZpc3VhbGx5SGlkZGVuLCBudWxsLFxyXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEFubm91bmNlLCBudWxsLCBwYW5lbEFubm91bmNlbWVudCkpKSk7XHJcbn0pO1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1UYWJzLmpzLm1hcCJdfQ== */"));
22251
+ }, ";&::-webkit-scrollbar{width:0;height:0;}scrollbar-width:none;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRhYnMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXdERyIsImZpbGUiOiJUYWJzLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XHJcbmltcG9ydCBpc1Byb3BWYWxpZCBmcm9tICdAZW1vdGlvbi9pcy1wcm9wLXZhbGlkJztcclxuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xyXG5pbXBvcnQgeyBUYWJzT3JpZW50YXRpb24sIFRhYnNUZXh0VHJhbnNmb3JtIH0gZnJvbSAnLi9zaGFyZWQnO1xyXG5pbXBvcnQgeyBUYWJzQ29udGFpbmVyQ29udGV4dCB9IGZyb20gJy4vVGFic0NvbnRhaW5lcic7XHJcbmltcG9ydCB7IEJ1dHRvbk5leHQsIEJ1dHRvblByZXYgfSBmcm9tICcuL1RhYnNTY3JvbGxCdXR0b25zJztcclxuaW1wb3J0IHsgdXNlVGFic01ldGEsIHVzZVNjcm9sbFRhYkZvY3VzIH0gZnJvbSAnLi91dGlscyc7XHJcbmltcG9ydCB7IHVzZURlc2NlbmRhbnRzIH0gZnJvbSAnLi4vLi4vaG9va3MvdXNlRGVzY2VuZGFudHMnO1xyXG5pbXBvcnQgeyBJMThuQ29udGV4dCB9IGZyb20gJy4uLy4uL2kxOG4nO1xyXG5pbXBvcnQgeyBUaGVtZUNvbnRleHQgfSBmcm9tICcuLi8uLi90aGVtZS9UaGVtZUNvbnRleHQnO1xyXG5pbXBvcnQgeyBvbWl0LCBnZXROb3JtYWxpemVkU2Nyb2xsTGVmdCB9IGZyb20gJy4uLy4uL3V0aWxzJztcclxuaW1wb3J0IHsgQW5ub3VuY2UgfSBmcm9tICcuLi9Bbm5vdW5jZSc7XHJcbmltcG9ydCB7IFZpc3VhbGx5SGlkZGVuIH0gZnJvbSAnLi4vVmlzdWFsbHlIaWRkZW4nO1xyXG5leHBvcnQgdmFyIFRhYnNBbGlnbm1lbnQ7XHJcbihmdW5jdGlvbiAoVGFic0FsaWdubWVudCkge1xyXG4gICAgVGFic0FsaWdubWVudFtcImNlbnRlclwiXSA9IFwiY2VudGVyXCI7XHJcbiAgICBUYWJzQWxpZ25tZW50W1wibGVmdFwiXSA9IFwibGVmdFwiO1xyXG4gICAgVGFic0FsaWdubWVudFtcInJpZ2h0XCJdID0gXCJyaWdodFwiO1xyXG59KShUYWJzQWxpZ25tZW50IHx8IChUYWJzQWxpZ25tZW50ID0ge30pKTtcclxuZXhwb3J0IHZhciBUYWJzQm9yZGVyUG9zaXRpb247XHJcbihmdW5jdGlvbiAoVGFic0JvcmRlclBvc2l0aW9uKSB7XHJcbiAgICBUYWJzQm9yZGVyUG9zaXRpb25bXCJib3R0b21cIl0gPSBcImJvdHRvbVwiO1xyXG4gICAgVGFic0JvcmRlclBvc2l0aW9uW1wibGVmdFwiXSA9IFwibGVmdFwiO1xyXG4gICAgVGFic0JvcmRlclBvc2l0aW9uW1wicmlnaHRcIl0gPSBcInJpZ2h0XCI7XHJcbiAgICBUYWJzQm9yZGVyUG9zaXRpb25bXCJ0b3BcIl0gPSBcInRvcFwiO1xyXG59KShUYWJzQm9yZGVyUG9zaXRpb24gfHwgKFRhYnNCb3JkZXJQb3NpdGlvbiA9IHt9KSk7XHJcbmV4cG9ydCB2YXIgVGFic0ljb25Qb3NpdGlvbjtcclxuKGZ1bmN0aW9uIChUYWJzSWNvblBvc2l0aW9uKSB7XHJcbiAgICBUYWJzSWNvblBvc2l0aW9uW1wiYm90dG9tXCJdID0gXCJib3R0b21cIjtcclxuICAgIFRhYnNJY29uUG9zaXRpb25bXCJsZWZ0XCJdID0gXCJsZWZ0XCI7XHJcbiAgICBUYWJzSWNvblBvc2l0aW9uW1wicmlnaHRcIl0gPSBcInJpZ2h0XCI7XHJcbiAgICBUYWJzSWNvblBvc2l0aW9uW1widG9wXCJdID0gXCJ0b3BcIjtcclxufSkoVGFic0ljb25Qb3NpdGlvbiB8fCAoVGFic0ljb25Qb3NpdGlvbiA9IHt9KSk7XHJcbmV4cG9ydCBjb25zdCBUYWJzQ29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQoe1xyXG4gICAgYm9yZGVyUG9zaXRpb246IFRhYnNCb3JkZXJQb3NpdGlvbi5ib3R0b20sXHJcbiAgICBjaGFuZ2VIYW5kbGVyOiAoKSA9PiB7IH0sXHJcbiAgICBpY29uUG9zaXRpb246IFRhYnNJY29uUG9zaXRpb24ubGVmdCxcclxuICAgIGlzSW52ZXJzZTogZmFsc2UsXHJcbiAgICBpc0Z1bGxXaWR0aDogZmFsc2UsXHJcbiAgICBvcmllbnRhdGlvbjogVGFic09yaWVudGF0aW9uLmhvcml6b250YWwsXHJcbiAgICB0ZXh0VHJhbnNmb3JtOiBUYWJzVGV4dFRyYW5zZm9ybS51cHBlcmNhc2UsXHJcbiAgICByZWdpc3RlclRhYkJ1dHRvbjogKGVsZW1lbnRzLCBlbGVtZW50KSA9PiB7IH0sXHJcbn0pO1xyXG5leHBvcnQgY29uc3QgU3R5bGVkQ29udGFpbmVyID0gc3R5bGVkKCdkaXYnLCB7XHJcbiAgICBzaG91bGRGb3J3YXJkUHJvcDogaXNQcm9wVmFsaWQsXHJcbn0pIGBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy5iYWNrZ3JvdW5kQ29sb3IgPyBwcm9wcy5iYWNrZ3JvdW5kQ29sb3IgOiAndHJhbnNwYXJlbnQnfTtcbiAgYmFja2dyb3VuZDogYmFja2dyb3VuZENvbG9yO1xuICBkaXNwbGF5OiBmbGV4O1xuICBoZWlnaHQ6ICR7cHJvcHMgPT4gKHByb3BzLm9yaWVudGF0aW9uID09PSAndmVydGljYWwnID8gJzEwMCUnIDogJ2F1dG8nKX07XG5cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogJHtwcm9wcyA9PiAocHJvcHMub3JpZW50YXRpb24gPT09ICd2ZXJ0aWNhbCcgPyAnYXV0bycgOiAnMTAwJScpfTtcbmA7XHJcbmV4cG9ydCBjb25zdCBTdHlsZWRUYWJzV3JhcHBlciA9IHN0eWxlZCgnZGl2Jywge1xyXG4gICAgc2hvdWxkRm9yd2FyZFByb3A6IGlzUHJvcFZhbGlkLFxyXG59KSBgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZ3JvdzogMTtcbiAgb3ZlcmZsb3cteDogJHtwcm9wcyA9PiAocHJvcHMub3JpZW50YXRpb24gPT09ICd2ZXJ0aWNhbCcgPyAnJyA6ICdhdXRvJyl9O1xuICBvdmVyZmxvdy15OiAke3Byb3BzID0+IChwcm9wcy5vcmllbnRhdGlvbiA9PT0gJ3ZlcnRpY2FsJyA/ICdhdXRvJyA6ICcnKX07XG5cbiAgJjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgfVxuICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7XG5gO1xyXG5leHBvcnQgY29uc3QgU3R5bGVkVGFicyA9IHN0eWxlZCgndWwnLCB7IHNob3VsZEZvcndhcmRQcm9wOiBpc1Byb3BWYWxpZCB9KSBgXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiAke3Byb3BzID0+IHByb3BzLm9yaWVudGF0aW9uID09PSAndmVydGljYWwnID8gJ2NvbHVtbicgOiAncm93J307XG4gIGp1c3RpZnktY29udGVudDogJHtwcm9wcyA9PiBwcm9wcy5hbGlnbm1lbnQgPT09ICdjZW50ZXInXHJcbiAgICA/ICdjZW50ZXInXHJcbiAgICA6IHByb3BzLmFsaWdubWVudCA9PT0gJ3JpZ2h0J1xyXG4gICAgICAgID8gJ2ZsZXgtZW5kJ1xyXG4gICAgICAgIDogJyd9O1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIHdpZHRoOiAke3Byb3BzID0+IChwcm9wcy5vcmllbnRhdGlvbiA9PT0gJ3ZlcnRpY2FsJyA/ICdhdXRvJyA6ICcxMDAlJyl9O1xuYDtcclxuZXhwb3J0IGNvbnN0IFRhYnMgPSBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgcmVmKSA9PiB7XHJcbiAgICBjb25zdCB7IGFsaWdubWVudCwgYmFja2dyb3VuZENvbG9yLCBib3JkZXJQb3NpdGlvbiwgY2hpbGRyZW4sIGlzRnVsbFdpZHRoLCBvcmllbnRhdGlvbiwgb25DaGFuZ2UsIGljb25Qb3NpdGlvbiwgdGVzdElkLCB0ZXh0VHJhbnNmb3JtLCAuLi5yZXN0IH0gPSBwcm9wcztcclxuICAgIGNvbnN0IHRoZW1lID0gUmVhY3QudXNlQ29udGV4dChUaGVtZUNvbnRleHQpO1xyXG4gICAgY29uc3QgeyBhY3RpdmVUYWJJbmRleCwgc2V0QWN0aXZlVGFiSW5kZXgsIGlzSW52ZXJzZUNvbnRhaW5lciwgaW5zdGFuY2VJZCwgfSA9IFJlYWN0LnVzZUNvbnRleHQoVGFic0NvbnRhaW5lckNvbnRleHQpO1xyXG4gICAgY29uc3QgaXNJbnZlcnNlID0gdHlwZW9mIHByb3BzLmlzSW52ZXJzZSAhPT0gJ3VuZGVmaW5lZCdcclxuICAgICAgICA/IEJvb2xlYW4ocHJvcHMuaXNJbnZlcnNlKVxyXG4gICAgICAgIDogaXNJbnZlcnNlQ29udGFpbmVyO1xyXG4gICAgY29uc3QgW3RhYnNNZXRhLCB0YWJzSGFuZGxlTWV0aG9kcywgdGFic1JlZnNdID0gdXNlVGFic01ldGEodGhlbWUsIG9yaWVudGF0aW9uLCBiYWNrZ3JvdW5kQ29sb3IsIGlzSW52ZXJzZSk7XHJcbiAgICBjb25zdCB7IHZlcnRpY2FsLCBiYWNrZ3JvdW5kLCBkaXNwbGF5U2Nyb2xsLCBzY3JvbGxTdGFydCB9ID0gdGFic01ldGE7XHJcbiAgICBjb25zdCB7IGhhbmRsZVN0YXJ0U2Nyb2xsQ2xpY2ssIGhhbmRsZUVuZFNjcm9sbENsaWNrLCBoYW5kbGVUYWJzU2Nyb2xsLCBzY3JvbGwsIH0gPSB0YWJzSGFuZGxlTWV0aG9kcztcclxuICAgIGNvbnN0IHsgcHJldkJ1dHRvblJlZiwgbmV4dEJ1dHRvblJlZiwgdGFic1dyYXBwZXJSZWYgfSA9IHRhYnNSZWZzO1xyXG4gICAgY29uc3Qgc3RhcnQgPSB2ZXJ0aWNhbCA/ICd0b3AnIDogJ2xlZnQnO1xyXG4gICAgY29uc3QgZW5kID0gdmVydGljYWwgPyAnYm90dG9tJyA6ICdyaWdodCc7XHJcbiAgICBjb25zdCBbYnV0dG9uUmVmQXJyYXksIHJlZ2lzdGVyVGFiQnV0dG9uXSA9IHVzZURlc2NlbmRhbnRzKCk7XHJcbiAgICBjb25zdCBjaGlsZHJlbldyYXBwZXJSZWYgPSBSZWFjdC51c2VSZWYoKTtcclxuICAgIGNvbnN0IFtzY3JvbGxBbm5vdW5jZW1lbnQsIHNldFNjcm9sbEFubm91bmNlbWVudF0gPSBSZWFjdC51c2VTdGF0ZSgnJyk7XHJcbiAgICBjb25zdCBbcGFuZWxBbm5vdW5jZW1lbnQsIHNldFBhbmVsQW5ub3VuY2VtZW50XSA9IFJlYWN0LnVzZVN0YXRlKCcnKTtcclxuICAgIGNvbnN0IGlzSW5pdGlhbE1vdW50ID0gUmVhY3QudXNlUmVmKHRydWUpO1xyXG4gICAgZnVuY3Rpb24gZ2V0VGFic01ldGEoKSB7XHJcbiAgICAgICAgY29uc3QgdGFic05vZGUgPSB0YWJzV3JhcHBlclJlZi5jdXJyZW50O1xyXG4gICAgICAgIGxldCB0YWJzTWV0YTtcclxuICAgICAgICBpZiAodGFic05vZGUpIHtcclxuICAgICAgICAgICAgY29uc3QgcmVjdCA9IHRhYnNOb2RlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICAgICAgICB0YWJzTWV0YSA9IHtcclxuICAgICAgICAgICAgICAgIGNsaWVudFdpZHRoOiB0YWJzTm9kZS5jbGllbnRXaWR0aCxcclxuICAgICAgICAgICAgICAgIHNjcm9sbExlZnQ6IHRhYnNOb2RlLnNjcm9sbExlZnQsXHJcbiAgICAgICAgICAgICAgICBzY3JvbGxUb3A6IHRhYnNOb2RlLnNjcm9sbFRvcCxcclxuICAgICAgICAgICAgICAgIHNjcm9sbExlZnROb3JtYWxpemVkOiBnZXROb3JtYWxpemVkU2Nyb2xsTGVmdCh0YWJzTm9kZSwgdGhlbWUuZGlyZWN0aW9uKSxcclxuICAgICAgICAgICAgICAgIHNjcm9sbFdpZHRoOiB0YWJzTm9kZS5zY3JvbGxXaWR0aCxcclxuICAgICAgICAgICAgICAgIHRvcDogcmVjdC50b3AsXHJcbiAgICAgICAgICAgICAgICBib3R0b206IHJlY3QuYm90dG9tLFxyXG4gICAgICAgICAgICAgICAgbGVmdDogcmVjdC5sZWZ0LFxyXG4gICAgICAgICAgICAgICAgcmlnaHQ6IHJlY3QucmlnaHQsXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCB0YWJNZXRhO1xyXG4gICAgICAgIGlmICh0YWJzTm9kZSkge1xyXG4gICAgICAgICAgICBjb25zdCBjaGlsZHJlbkFycmF5ID0gY2hpbGRyZW5XcmFwcGVyUmVmLmN1cnJlbnQuY2hpbGRyZW47XHJcbiAgICAgICAgICAgIGlmIChjaGlsZHJlbkFycmF5Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHRhYiA9IGNoaWxkcmVuQXJyYXlbYWN0aXZlVGFiSW5kZXhdO1xyXG4gICAgICAgICAgICAgICAgdGFiTWV0YSA9IHRhYiA/IHRhYi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSA6IG51bGw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHsgdGFic01ldGEsIHRhYk1ldGEgfTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIHNjcm9sbFNlbGVjdGVkSW50b1ZpZXcoKSB7XHJcbiAgICAgICAgY29uc3QgeyB0YWJzTWV0YSwgdGFiTWV0YSB9ID0gZ2V0VGFic01ldGEoKTtcclxuICAgICAgICBpZiAoIXRhYk1ldGEgfHwgIXRhYnNNZXRhKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgcHJldkJ1dHRvbk9mZnNldCA9IHZlcnRpY2FsXHJcbiAgICAgICAgICAgID8gTnVtYmVyKHByZXZCdXR0b25SZWYuY3VycmVudC5vZmZzZXRIZWlnaHQpXHJcbiAgICAgICAgICAgIDogTnVtYmVyKHByZXZCdXR0b25SZWYuY3VycmVudC5vZmZzZXRXaWR0aCk7XHJcbiAgICAgICAgY29uc3QgbmV4dEJ1dHRvbk9mZnNldCA9IHZlcnRpY2FsXHJcbiAgICAgICAgICAgID8gTnVtYmVyKG5leHRCdXR0b25SZWYuY3VycmVudC5vZmZzZXRIZWlnaHQpXHJcbiAgICAgICAgICAgIDogTnVtYmVyKG5leHRCdXR0b25SZWYuY3VycmVudC5vZmZzZXRXaWR0aCk7XHJcbiAgICAgICAgaWYgKHRhYk1ldGFbc3RhcnRdIDwgTnVtYmVyKHRhYnNNZXRhW3N0YXJ0XSkgKyBwcmV2QnV0dG9uT2Zmc2V0KSB7XHJcbiAgICAgICAgICAgIC8vIGxlZnQgc2lkZSBvZiBidXR0b24gaXMgb3V0IG9mIHZpZXdcclxuICAgICAgICAgICAgY29uc3QgbmV4dFNjcm9sbFN0YXJ0ID0gTnVtYmVyKHRhYnNNZXRhW3Njcm9sbFN0YXJ0XSkgK1xyXG4gICAgICAgICAgICAgICAgKE51bWJlcih0YWJNZXRhW3N0YXJ0XSkgLSBOdW1iZXIodGFic01ldGFbc3RhcnRdKSkgLVxyXG4gICAgICAgICAgICAgICAgcHJldkJ1dHRvbk9mZnNldDtcclxuICAgICAgICAgICAgc2Nyb2xsKG5leHRTY3JvbGxTdGFydCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHRhYk1ldGFbZW5kXSA+IE51bWJlcih0YWJzTWV0YVtlbmRdKSAtIG5leHRCdXR0b25PZmZzZXQpIHtcclxuICAgICAgICAgICAgLy8gcmlnaHQgc2lkZSBvZiBidXR0b24gaXMgb3V0IG9mIHZpZXdcclxuICAgICAgICAgICAgY29uc3QgbmV4dFNjcm9sbFN0YXJ0ID0gTnVtYmVyKHRhYnNNZXRhW3Njcm9sbFN0YXJ0XSkgK1xyXG4gICAgICAgICAgICAgICAgKE51bWJlcih0YWJNZXRhW2VuZF0pIC0gTnVtYmVyKHRhYnNNZXRhW2VuZF0pKSArXHJcbiAgICAgICAgICAgICAgICBuZXh0QnV0dG9uT2Zmc2V0O1xyXG4gICAgICAgICAgICBzY3JvbGwobmV4dFNjcm9sbFN0YXJ0KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zdCBzY3JvbGxJbml0aWFsQWN0aXZlSW5kZXhJbnRvVmlldyA9ICgpID0+IHtcclxuICAgICAgICBjb25zdCB7IHRhYnNNZXRhLCB0YWJNZXRhIH0gPSBnZXRUYWJzTWV0YSgpO1xyXG4gICAgICAgIGlmICghdGFiTWV0YSB8fCAhdGFic01ldGEpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCB0YWJDZW50ZXIgPSAodGFiTWV0YVtzdGFydF0gKyB0YWJNZXRhW2VuZF0pIC8gMjtcclxuICAgICAgICBjb25zdCBjb250YWluZXJDZW50ZXIgPSAodGFic01ldGFbc3RhcnRdICsgdGFic01ldGFbZW5kXSkgLyAyO1xyXG4gICAgICAgIGNvbnN0IHNjcm9sbERlbHRhID0gdGFiQ2VudGVyIC0gY29udGFpbmVyQ2VudGVyO1xyXG4gICAgICAgIGNvbnN0IG5leHRTY3JvbGxTdGFydCA9IE51bWJlcih0YWJzTWV0YVtzY3JvbGxTdGFydF0pICsgc2Nyb2xsRGVsdGE7XHJcbiAgICAgICAgc2Nyb2xsKG5leHRTY3JvbGxTdGFydCk7XHJcbiAgICB9O1xyXG4gICAgUmVhY3QudXNlRWZmZWN0KHNjcm9sbFNlbGVjdGVkSW50b1ZpZXcsIFthY3RpdmVUYWJJbmRleF0pO1xyXG4gICAgUmVhY3QudXNlRWZmZWN0KHNjcm9sbEluaXRpYWxBY3RpdmVJbmRleEludG9WaWV3LCBbXSk7XHJcbiAgICBjb25zdCB7IGZvY3VzRmlyc3RWaXNpYmxlVGFiIH0gPSB1c2VTY3JvbGxUYWJGb2N1cyh0YWJzV3JhcHBlclJlZiwgb3JpZW50YXRpb24pO1xyXG4gICAgLy8gQW5ub3VuY2UgcGFuZWwgY29udGVudCB3aGVuIGFjdGl2ZSB0YWIgY2hhbmdlcyAoZXhjbHVkaW5nIGluaXRpYWwgbW91bnQpXHJcbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgIGlmIChpc0luaXRpYWxNb3VudC5jdXJyZW50KSB7XHJcbiAgICAgICAgICAgIGlzSW5pdGlhbE1vdW50LmN1cnJlbnQgPSBmYWxzZTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBwYW5lbElkID0gYHRhYnBhbmVsLSR7aW5zdGFuY2VJZH0tJHthY3RpdmVUYWJJbmRleH1gO1xyXG4gICAgICAgIGNvbnN0IHBhbmVsRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHBhbmVsSWQpO1xyXG4gICAgICAgIGlmIChwYW5lbEVsZW1lbnQpIHtcclxuICAgICAgICAgICAgY29uc3QgcGFuZWxUZXh0ID0gcGFuZWxFbGVtZW50LnRleHRDb250ZW50IHx8ICcnO1xyXG4gICAgICAgICAgICBzZXRQYW5lbEFubm91bmNlbWVudChwYW5lbFRleHQudHJpbSgpKTtcclxuICAgICAgICAgICAgY29uc3QgdGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4gc2V0UGFuZWxBbm5vdW5jZW1lbnQoJycpLCAxMDAwKTtcclxuICAgICAgICAgICAgcmV0dXJuICgpID0+IGNsZWFyVGltZW91dCh0aW1lb3V0KTtcclxuICAgICAgICB9XHJcbiAgICB9LCBbYWN0aXZlVGFiSW5kZXgsIGluc3RhbmNlSWRdKTtcclxuICAgIGZ1bmN0aW9uIGNoYW5nZUhhbmRsZXIobmV3QWN0aXZlSW5kZXgsIGV2ZW50KSB7XHJcbiAgICAgICAgaWYgKGV2ZW50LnRhcmdldC5jaGlsZHJlblswXSAmJlxyXG4gICAgICAgICAgICBldmVudC50YXJnZXQuY2hpbGRyZW5bMF0uaGFzQXR0cmlidXRlKCdkaXNhYmxlZCcpKSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIG9uQ2hhbmdlICYmIHR5cGVvZiBvbkNoYW5nZSA9PT0gJ2Z1bmN0aW9uJyAmJiBvbkNoYW5nZShuZXdBY3RpdmVJbmRleCk7XHJcbiAgICAgICAgaWYgKG5ld0FjdGl2ZUluZGV4ID09PSBhY3RpdmVUYWJJbmRleCkge1xyXG4gICAgICAgICAgICBzY3JvbGxTZWxlY3RlZEludG9WaWV3KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBzZXRBY3RpdmVUYWJJbmRleChuZXdBY3RpdmVJbmRleCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gdGFiSXNFbmFibGVkKHRhYkluZGV4KSB7XHJcbiAgICAgICAgcmV0dXJuIChidXR0b25SZWZBcnJheS5jdXJyZW50W3RhYkluZGV4XS5jdXJyZW50LmdldEF0dHJpYnV0ZSgnZGlzYWJsZWQnKSA9PT1cclxuICAgICAgICAgICAgbnVsbCk7XHJcbiAgICB9XHJcbiAgICBmdW5jdGlvbiBmaW5kUHJldmlvdXNFbmFibGVkVGFiSW5kZXgobW9kaWZpZWRBY3RpdmVUYWJJbmRleCkge1xyXG4gICAgICAgIGNvbnN0IGN1cnJlbnRUYWJJbmRleCA9IG1vZGlmaWVkQWN0aXZlVGFiSW5kZXhcclxuICAgICAgICAgICAgPyBtb2RpZmllZEFjdGl2ZVRhYkluZGV4XHJcbiAgICAgICAgICAgIDogYWN0aXZlVGFiSW5kZXg7XHJcbiAgICAgICAgY29uc3QgbmV3QWN0aXZlVGFiSW5kZXggPSBjdXJyZW50VGFiSW5kZXggPiAwID8gY3VycmVudFRhYkluZGV4IC0gMSA6IDA7XHJcbiAgICAgICAgaWYgKHRhYklzRW5hYmxlZChuZXdBY3RpdmVUYWJJbmRleCkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ld0FjdGl2ZVRhYkluZGV4O1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChuZXdBY3RpdmVUYWJJbmRleCAtIDEgPj0gMCkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmluZFByZXZpb3VzRW5hYmxlZFRhYkluZGV4KG5ld0FjdGl2ZVRhYkluZGV4KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBhY3RpdmVUYWJJbmRleDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBmdW5jdGlvbiBmaW5kTmV4dEVuYWJsZWRUYWJJbmRleChsYXN0Q2hpbGRJbmRleCwgbW9kaWZpZWRBY3RpdmVUYWJJbmRleCkge1xyXG4gICAgICAgIGNvbnN0IGN1cnJlbnRUYWJJbmRleCA9IG1vZGlmaWVkQWN0aXZlVGFiSW5kZXggPT09IDAgfHwgbW9kaWZpZWRBY3RpdmVUYWJJbmRleFxyXG4gICAgICAgICAgICA/IG1vZGlmaWVkQWN0aXZlVGFiSW5kZXhcclxuICAgICAgICAgICAgOiBhY3RpdmVUYWJJbmRleDtcclxuICAgICAgICBjb25zdCBuZXdBY3RpdmVUYWJJbmRleCA9IGN1cnJlbnRUYWJJbmRleCA8IGxhc3RDaGlsZEluZGV4ID8gY3VycmVudFRhYkluZGV4ICsgMSA6IGxhc3RDaGlsZEluZGV4O1xyXG4gICAgICAgIGlmICh0YWJJc0VuYWJsZWQobmV3QWN0aXZlVGFiSW5kZXgpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXdBY3RpdmVUYWJJbmRleDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAobmV3QWN0aXZlVGFiSW5kZXggKyAxIDw9IGxhc3RDaGlsZEluZGV4KSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmaW5kTmV4dEVuYWJsZWRUYWJJbmRleChsYXN0Q2hpbGRJbmRleCwgbmV3QWN0aXZlVGFiSW5kZXgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIGFjdGl2ZVRhYkluZGV4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIGhhbmRsZUtleURvd24oZXZlbnQpIHtcclxuICAgICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQ7XHJcbiAgICAgICAgY29uc3Qgcm9sZSA9IHRhcmdldC5nZXRBdHRyaWJ1dGUoJ3JvbGUnKTtcclxuICAgICAgICBpZiAocm9sZSAhPT0gJ3RhYicpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBsYXN0Q2hpbGRJbmRleCA9IGJ1dHRvblJlZkFycmF5LmN1cnJlbnQubGVuZ3RoIC0gMTtcclxuICAgICAgICBsZXQgbmV3QWN0aXZlVGFiSW5kZXggPSBudWxsO1xyXG4gICAgICAgIGNvbnN0IHByZXZpb3VzSXRlbUtleSA9IG9yaWVudGF0aW9uICE9PSBUYWJzT3JpZW50YXRpb24udmVydGljYWwgPyAnQXJyb3dMZWZ0JyA6ICdBcnJvd1VwJztcclxuICAgICAgICBjb25zdCBuZXh0SXRlbUtleSA9IG9yaWVudGF0aW9uICE9PSBUYWJzT3JpZW50YXRpb24udmVydGljYWwgPyAnQXJyb3dSaWdodCcgOiAnQXJyb3dEb3duJztcclxuICAgICAgICBzd2l0Y2ggKGV2ZW50LmtleSkge1xyXG4gICAgICAgICAgICBjYXNlIHByZXZpb3VzSXRlbUtleTpcclxuICAgICAgICAgICAgICAgIG5ld0FjdGl2ZVRhYkluZGV4ID0gZmluZFByZXZpb3VzRW5hYmxlZFRhYkluZGV4KCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBuZXh0SXRlbUtleTpcclxuICAgICAgICAgICAgICAgIG5ld0FjdGl2ZVRhYkluZGV4ID0gZmluZE5leHRFbmFibGVkVGFiSW5kZXgobGFzdENoaWxkSW5kZXgpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ0hvbWUnOlxyXG4gICAgICAgICAgICAgICAgbmV3QWN0aXZlVGFiSW5kZXggPSB0YWJJc0VuYWJsZWQoMClcclxuICAgICAgICAgICAgICAgICAgICA/IDBcclxuICAgICAgICAgICAgICAgICAgICA6IGZpbmROZXh0RW5hYmxlZFRhYkluZGV4KGxhc3RDaGlsZEluZGV4LCAwKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdFbmQnOlxyXG4gICAgICAgICAgICAgICAgbmV3QWN0aXZlVGFiSW5kZXggPSB0YWJJc0VuYWJsZWQobGFzdENoaWxkSW5kZXgpXHJcbiAgICAgICAgICAgICAgICAgICAgPyBsYXN0Q2hpbGRJbmRleFxyXG4gICAgICAgICAgICAgICAgICAgIDogZmluZFByZXZpb3VzRW5hYmxlZFRhYkluZGV4KGxhc3RDaGlsZEluZGV4KTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChuZXdBY3RpdmVUYWJJbmRleCAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBvbkNoYW5nZSAmJlxyXG4gICAgICAgICAgICAgICAgdHlwZW9mIG9uQ2hhbmdlID09PSAnZnVuY3Rpb24nICYmXHJcbiAgICAgICAgICAgICAgICBvbkNoYW5nZShuZXdBY3RpdmVUYWJJbmRleCk7XHJcbiAgICAgICAgICAgIHNldEFjdGl2ZVRhYkluZGV4KG5ld0FjdGl2ZVRhYkluZGV4KTtcclxuICAgICAgICAgICAgYnV0dG9uUmVmQXJyYXkuY3VycmVudFtuZXdBY3RpdmVUYWJJbmRleF0uY3VycmVudC5mb2N1cygpO1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnN0IGkxOG4gPSBSZWFjdC51c2VDb250ZXh0KEkxOG5Db250ZXh0KTtcclxuICAgIGNvbnN0IGFyaWFMYWJlbCA9IGAke3Jlc3RbJ2FyaWEtbGFiZWwnXSB8fCAnJ30sICR7b3JpZW50YXRpb24gPT09IFRhYnNPcmllbnRhdGlvbi52ZXJ0aWNhbFxyXG4gICAgICAgID8gaTE4bi50YWJzLnZlcnRpY2FsVGFic0luc3RydWN0aW9uc1xyXG4gICAgICAgIDogaTE4bi50YWJzLmhvcml6b250YWxUYWJzSW5zdHJ1Y3Rpb25zfWA7XHJcbiAgICBjb25zdCB0aW1lb3V0UmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xyXG4gICAgY29uc3QgaGFuZGxlUHJldlNjcm9sbFdpdGhBbm5vdW5jZW1lbnQgPSAoKSA9PiB7XHJcbiAgICAgICAgaGFuZGxlU3RhcnRTY3JvbGxDbGljaygpO1xyXG4gICAgICAgIHNldFNjcm9sbEFubm91bmNlbWVudChpMThuLnRhYnMuc2Nyb2xsZWRCYWNrQW5ub3VuY2UpO1xyXG4gICAgICAgIGlmICh0aW1lb3V0UmVmLmN1cnJlbnQpIHtcclxuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXRSZWYuY3VycmVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRpbWVvdXRSZWYuY3VycmVudCA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBzZXRTY3JvbGxBbm5vdW5jZW1lbnQoJycpO1xyXG4gICAgICAgICAgICBmb2N1c0ZpcnN0VmlzaWJsZVRhYigpO1xyXG4gICAgICAgIH0sIDMwMCk7XHJcbiAgICB9O1xyXG4gICAgY29uc3QgaGFuZGxlTmV4dFNjcm9sbFdpdGhBbm5vdW5jZW1lbnQgPSAoKSA9PiB7XHJcbiAgICAgICAgaGFuZGxlRW5kU2Nyb2xsQ2xpY2soKTtcclxuICAgICAgICBzZXRTY3JvbGxBbm5vdW5jZW1lbnQoaTE4bi50YWJzLnNjcm9sbGVkRm9yd2FyZEFubm91bmNlKTtcclxuICAgICAgICBpZiAodGltZW91dFJlZi5jdXJyZW50KSB7XHJcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0UmVmLmN1cnJlbnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aW1lb3V0UmVmLmN1cnJlbnQgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgc2V0U2Nyb2xsQW5ub3VuY2VtZW50KCcnKTtcclxuICAgICAgICAgICAgZm9jdXNGaXJzdFZpc2libGVUYWIoKTtcclxuICAgICAgICB9LCAzMDApO1xyXG4gICAgfTtcclxuICAgIGNvbnN0IG90aGVyID0gb21pdChbJ2FyaWEtbGFiZWwnXSwgcmVzdCk7XHJcbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkQ29udGFpbmVyLCBPYmplY3QuYXNzaWduKHsgXCJkYXRhLXRlc3RpZFwiOiB0ZXN0SWQsIGJhY2tncm91bmRDb2xvcjogYmFja2dyb3VuZCwgaXNJbnZlcnNlOiBpc0ludmVyc2UsIG9yaWVudGF0aW9uOiBvcmllbnRhdGlvbiB8fCBUYWJzT3JpZW50YXRpb24uaG9yaXpvbnRhbCwgcmVmOiByZWYsIHRoZW1lOiB0aGVtZSB9LCBvdGhlciksXHJcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChCdXR0b25QcmV2LCB7IGJhY2tncm91bmRDb2xvcjogYmFja2dyb3VuZCwgYnV0dG9uVmlzaWJsZTogZGlzcGxheVNjcm9sbC5zdGFydCwgaXNJbnZlcnNlOiBpc0ludmVyc2UsIG9uQ2xpY2s6IGhhbmRsZVByZXZTY3JvbGxXaXRoQW5ub3VuY2VtZW50LCBvcmllbnRhdGlvbjogb3JpZW50YXRpb24gfHwgVGFic09yaWVudGF0aW9uLmhvcml6b250YWwsIHJlZjogcHJldkJ1dHRvblJlZiwgdGhlbWU6IHRoZW1lIH0pLFxyXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkVGFic1dyYXBwZXIsIHsgXCJkYXRhLXRlc3RpZFwiOiBcInRhYnNXcmFwcGVyXCIsIG9uU2Nyb2xsOiBoYW5kbGVUYWJzU2Nyb2xsLCBvcmllbnRhdGlvbjogb3JpZW50YXRpb24sIHJlZjogdGFic1dyYXBwZXJSZWYgfSxcclxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZWRUYWJzLCB7IGFsaWdubWVudDogYWxpZ25tZW50ID8gYWxpZ25tZW50IDogVGFic0FsaWdubWVudC5sZWZ0LCBcImFyaWEtbGFiZWxcIjogYXJpYUxhYmVsLCBcImFyaWEtb3JpZW50YXRpb25cIjogb3JpZW50YXRpb24gfHwgVGFic09yaWVudGF0aW9uLmhvcml6b250YWwsIG9uS2V5RG93bjogaGFuZGxlS2V5RG93biwgb3JpZW50YXRpb246IG9yaWVudGF0aW9uLCByZWY6IGNoaWxkcmVuV3JhcHBlclJlZiwgcm9sZTogXCJ0YWJsaXN0XCIgfSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGFic0NvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUG9zaXRpb24sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvblJlZkFycmF5LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VIYW5kbGVyLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uUG9zaXRpb24sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzSW52ZXJzZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXNGdWxsV2lkdGgsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9yaWVudGF0aW9uLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0VHJhbnNmb3JtOiB0ZXh0VHJhbnNmb3JtIHx8IFRhYnNUZXh0VHJhbnNmb3JtLnVwcGVyY2FzZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVnaXN0ZXJUYWJCdXR0b24sXHJcbiAgICAgICAgICAgICAgICAgICAgfSB9LCBjaGlsZHJlbikpKSxcclxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEJ1dHRvbk5leHQsIHsgYmFja2dyb3VuZENvbG9yOiBiYWNrZ3JvdW5kLCBidXR0b25WaXNpYmxlOiBkaXNwbGF5U2Nyb2xsLmVuZCwgaXNJbnZlcnNlOiBpc0ludmVyc2UsIG9uQ2xpY2s6IGhhbmRsZU5leHRTY3JvbGxXaXRoQW5ub3VuY2VtZW50LCBvcmllbnRhdGlvbjogb3JpZW50YXRpb24gfHwgVGFic09yaWVudGF0aW9uLmhvcml6b250YWwsIHJlZjogbmV4dEJ1dHRvblJlZiwgdGhlbWU6IHRoZW1lIH0pLFxyXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVmlzdWFsbHlIaWRkZW4sIG51bGwsXHJcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQW5ub3VuY2UsIG51bGwsIHNjcm9sbEFubm91bmNlbWVudCkpLFxyXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVmlzdWFsbHlIaWRkZW4sIG51bGwsXHJcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQW5ub3VuY2UsIG51bGwsIHBhbmVsQW5ub3VuY2VtZW50KSkpKTtcclxufSk7XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVRhYnMuanMubWFwIl19 */"));
22229
22252
  var StyledTabs = /*#__PURE__*/createStyled('ul', {
22230
22253
  shouldForwardProp: isPropValid,
22231
22254
  target: "exr2c6p0",
@@ -22236,7 +22259,7 @@
22236
22259
  return props.alignment === 'center' ? 'center' : props.alignment === 'right' ? 'flex-end' : '';
22237
22260
  }, ";margin:0;padding:0;width:", function (props) {
22238
22261
  return props.orientation === 'vertical' ? 'auto' : '100%';
22239
- }, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRhYnMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9FMkUiLCJmaWxlIjoiVGFicy50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xyXG5pbXBvcnQgaXNQcm9wVmFsaWQgZnJvbSAnQGVtb3Rpb24vaXMtcHJvcC12YWxpZCc7XHJcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcclxuaW1wb3J0IHsgVGFic09yaWVudGF0aW9uLCBUYWJzVGV4dFRyYW5zZm9ybSB9IGZyb20gJy4vc2hhcmVkJztcclxuaW1wb3J0IHsgVGFic0NvbnRhaW5lckNvbnRleHQgfSBmcm9tICcuL1RhYnNDb250YWluZXInO1xyXG5pbXBvcnQgeyBCdXR0b25OZXh0LCBCdXR0b25QcmV2IH0gZnJvbSAnLi9UYWJzU2Nyb2xsQnV0dG9ucyc7XHJcbmltcG9ydCB7IHVzZVRhYnNNZXRhIH0gZnJvbSAnLi91dGlscyc7XHJcbmltcG9ydCB7IHVzZURlc2NlbmRhbnRzIH0gZnJvbSAnLi4vLi4vaG9va3MvdXNlRGVzY2VuZGFudHMnO1xyXG5pbXBvcnQgeyBJMThuQ29udGV4dCB9IGZyb20gJy4uLy4uL2kxOG4nO1xyXG5pbXBvcnQgeyBUaGVtZUNvbnRleHQgfSBmcm9tICcuLi8uLi90aGVtZS9UaGVtZUNvbnRleHQnO1xyXG5pbXBvcnQgeyBvbWl0LCBnZXROb3JtYWxpemVkU2Nyb2xsTGVmdCB9IGZyb20gJy4uLy4uL3V0aWxzJztcclxuaW1wb3J0IHsgQW5ub3VuY2UgfSBmcm9tICcuLi9Bbm5vdW5jZSc7XHJcbmltcG9ydCB7IFZpc3VhbGx5SGlkZGVuIH0gZnJvbSAnLi4vVmlzdWFsbHlIaWRkZW4nO1xyXG5leHBvcnQgdmFyIFRhYnNBbGlnbm1lbnQ7XHJcbihmdW5jdGlvbiAoVGFic0FsaWdubWVudCkge1xyXG4gICAgVGFic0FsaWdubWVudFtcImNlbnRlclwiXSA9IFwiY2VudGVyXCI7XHJcbiAgICBUYWJzQWxpZ25tZW50W1wibGVmdFwiXSA9IFwibGVmdFwiO1xyXG4gICAgVGFic0FsaWdubWVudFtcInJpZ2h0XCJdID0gXCJyaWdodFwiO1xyXG59KShUYWJzQWxpZ25tZW50IHx8IChUYWJzQWxpZ25tZW50ID0ge30pKTtcclxuZXhwb3J0IHZhciBUYWJzQm9yZGVyUG9zaXRpb247XHJcbihmdW5jdGlvbiAoVGFic0JvcmRlclBvc2l0aW9uKSB7XHJcbiAgICBUYWJzQm9yZGVyUG9zaXRpb25bXCJib3R0b21cIl0gPSBcImJvdHRvbVwiO1xyXG4gICAgVGFic0JvcmRlclBvc2l0aW9uW1wibGVmdFwiXSA9IFwibGVmdFwiO1xyXG4gICAgVGFic0JvcmRlclBvc2l0aW9uW1wicmlnaHRcIl0gPSBcInJpZ2h0XCI7XHJcbiAgICBUYWJzQm9yZGVyUG9zaXRpb25bXCJ0b3BcIl0gPSBcInRvcFwiO1xyXG59KShUYWJzQm9yZGVyUG9zaXRpb24gfHwgKFRhYnNCb3JkZXJQb3NpdGlvbiA9IHt9KSk7XHJcbmV4cG9ydCB2YXIgVGFic0ljb25Qb3NpdGlvbjtcclxuKGZ1bmN0aW9uIChUYWJzSWNvblBvc2l0aW9uKSB7XHJcbiAgICBUYWJzSWNvblBvc2l0aW9uW1wiYm90dG9tXCJdID0gXCJib3R0b21cIjtcclxuICAgIFRhYnNJY29uUG9zaXRpb25bXCJsZWZ0XCJdID0gXCJsZWZ0XCI7XHJcbiAgICBUYWJzSWNvblBvc2l0aW9uW1wicmlnaHRcIl0gPSBcInJpZ2h0XCI7XHJcbiAgICBUYWJzSWNvblBvc2l0aW9uW1widG9wXCJdID0gXCJ0b3BcIjtcclxufSkoVGFic0ljb25Qb3NpdGlvbiB8fCAoVGFic0ljb25Qb3NpdGlvbiA9IHt9KSk7XHJcbmV4cG9ydCBjb25zdCBUYWJzQ29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQoe1xyXG4gICAgYm9yZGVyUG9zaXRpb246IFRhYnNCb3JkZXJQb3NpdGlvbi5ib3R0b20sXHJcbiAgICBjaGFuZ2VIYW5kbGVyOiAoKSA9PiB7IH0sXHJcbiAgICBpY29uUG9zaXRpb246IFRhYnNJY29uUG9zaXRpb24ubGVmdCxcclxuICAgIGlzSW52ZXJzZTogZmFsc2UsXHJcbiAgICBpc0Z1bGxXaWR0aDogZmFsc2UsXHJcbiAgICBvcmllbnRhdGlvbjogVGFic09yaWVudGF0aW9uLmhvcml6b250YWwsXHJcbiAgICB0ZXh0VHJhbnNmb3JtOiBUYWJzVGV4dFRyYW5zZm9ybS51cHBlcmNhc2UsXHJcbiAgICByZWdpc3RlclRhYkJ1dHRvbjogKGVsZW1lbnRzLCBlbGVtZW50KSA9PiB7IH0sXHJcbn0pO1xyXG5leHBvcnQgY29uc3QgU3R5bGVkQ29udGFpbmVyID0gc3R5bGVkKCdkaXYnLCB7XHJcbiAgICBzaG91bGRGb3J3YXJkUHJvcDogaXNQcm9wVmFsaWQsXHJcbn0pIGBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy5iYWNrZ3JvdW5kQ29sb3IgPyBwcm9wcy5iYWNrZ3JvdW5kQ29sb3IgOiAndHJhbnNwYXJlbnQnfTtcbiAgYmFja2dyb3VuZDogYmFja2dyb3VuZENvbG9yO1xuICBkaXNwbGF5OiBmbGV4O1xuICBoZWlnaHQ6ICR7cHJvcHMgPT4gKHByb3BzLm9yaWVudGF0aW9uID09PSAndmVydGljYWwnID8gJzEwMCUnIDogJ2F1dG8nKX07XG5cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogJHtwcm9wcyA9PiAocHJvcHMub3JpZW50YXRpb24gPT09ICd2ZXJ0aWNhbCcgPyAnYXV0bycgOiAnMTAwJScpfTtcbmA7XHJcbmV4cG9ydCBjb25zdCBTdHlsZWRUYWJzV3JhcHBlciA9IHN0eWxlZCgnZGl2Jywge1xyXG4gICAgc2hvdWxkRm9yd2FyZFByb3A6IGlzUHJvcFZhbGlkLFxyXG59KSBgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZ3JvdzogMTtcbiAgb3ZlcmZsb3cteDogJHtwcm9wcyA9PiAocHJvcHMub3JpZW50YXRpb24gPT09ICd2ZXJ0aWNhbCcgPyAnJyA6ICdhdXRvJyl9O1xuICBvdmVyZmxvdy15OiAke3Byb3BzID0+IChwcm9wcy5vcmllbnRhdGlvbiA9PT0gJ3ZlcnRpY2FsJyA/ICdhdXRvJyA6ICcnKX07XG5cbiAgJjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgfVxuICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7XG5gO1xyXG5leHBvcnQgY29uc3QgU3R5bGVkVGFicyA9IHN0eWxlZCgndWwnLCB7IHNob3VsZEZvcndhcmRQcm9wOiBpc1Byb3BWYWxpZCB9KSBgXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiAke3Byb3BzID0+IHByb3BzLm9yaWVudGF0aW9uID09PSAndmVydGljYWwnID8gJ2NvbHVtbicgOiAncm93J307XG4gIGp1c3RpZnktY29udGVudDogJHtwcm9wcyA9PiBwcm9wcy5hbGlnbm1lbnQgPT09ICdjZW50ZXInXHJcbiAgICA/ICdjZW50ZXInXHJcbiAgICA6IHByb3BzLmFsaWdubWVudCA9PT0gJ3JpZ2h0J1xyXG4gICAgICAgID8gJ2ZsZXgtZW5kJ1xyXG4gICAgICAgIDogJyd9O1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIHdpZHRoOiAke3Byb3BzID0+IChwcm9wcy5vcmllbnRhdGlvbiA9PT0gJ3ZlcnRpY2FsJyA/ICdhdXRvJyA6ICcxMDAlJyl9O1xuYDtcclxuZXhwb3J0IGNvbnN0IFRhYnMgPSBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgcmVmKSA9PiB7XHJcbiAgICBjb25zdCB7IGFsaWdubWVudCwgYmFja2dyb3VuZENvbG9yLCBib3JkZXJQb3NpdGlvbiwgY2hpbGRyZW4sIGlzRnVsbFdpZHRoLCBvcmllbnRhdGlvbiwgb25DaGFuZ2UsIGljb25Qb3NpdGlvbiwgdGVzdElkLCB0ZXh0VHJhbnNmb3JtLCAuLi5yZXN0IH0gPSBwcm9wcztcclxuICAgIGNvbnN0IHRoZW1lID0gUmVhY3QudXNlQ29udGV4dChUaGVtZUNvbnRleHQpO1xyXG4gICAgY29uc3QgeyBhY3RpdmVUYWJJbmRleCwgc2V0QWN0aXZlVGFiSW5kZXgsIGlzSW52ZXJzZUNvbnRhaW5lciwgaW5zdGFuY2VJZCwgfSA9IFJlYWN0LnVzZUNvbnRleHQoVGFic0NvbnRhaW5lckNvbnRleHQpO1xyXG4gICAgY29uc3QgaXNJbnZlcnNlID0gdHlwZW9mIHByb3BzLmlzSW52ZXJzZSAhPT0gJ3VuZGVmaW5lZCdcclxuICAgICAgICA/IEJvb2xlYW4ocHJvcHMuaXNJbnZlcnNlKVxyXG4gICAgICAgIDogaXNJbnZlcnNlQ29udGFpbmVyO1xyXG4gICAgY29uc3QgW3RhYnNNZXRhLCB0YWJzSGFuZGxlTWV0aG9kcywgdGFic1JlZnNdID0gdXNlVGFic01ldGEodGhlbWUsIG9yaWVudGF0aW9uLCBiYWNrZ3JvdW5kQ29sb3IsIGlzSW52ZXJzZSk7XHJcbiAgICBjb25zdCB7IHZlcnRpY2FsLCBiYWNrZ3JvdW5kLCBkaXNwbGF5U2Nyb2xsLCBzY3JvbGxTdGFydCB9ID0gdGFic01ldGE7XHJcbiAgICBjb25zdCB7IGhhbmRsZVN0YXJ0U2Nyb2xsQ2xpY2ssIGhhbmRsZUVuZFNjcm9sbENsaWNrLCBoYW5kbGVUYWJzU2Nyb2xsLCBzY3JvbGwsIH0gPSB0YWJzSGFuZGxlTWV0aG9kcztcclxuICAgIGNvbnN0IHsgcHJldkJ1dHRvblJlZiwgbmV4dEJ1dHRvblJlZiwgdGFic1dyYXBwZXJSZWYgfSA9IHRhYnNSZWZzO1xyXG4gICAgY29uc3Qgc3RhcnQgPSB2ZXJ0aWNhbCA/ICd0b3AnIDogJ2xlZnQnO1xyXG4gICAgY29uc3QgZW5kID0gdmVydGljYWwgPyAnYm90dG9tJyA6ICdyaWdodCc7XHJcbiAgICBjb25zdCBbYnV0dG9uUmVmQXJyYXksIHJlZ2lzdGVyVGFiQnV0dG9uXSA9IHVzZURlc2NlbmRhbnRzKCk7XHJcbiAgICBjb25zdCBjaGlsZHJlbldyYXBwZXJSZWYgPSBSZWFjdC51c2VSZWYoKTtcclxuICAgIGNvbnN0IFtzY3JvbGxBbm5vdW5jZW1lbnQsIHNldFNjcm9sbEFubm91bmNlbWVudF0gPSBSZWFjdC51c2VTdGF0ZSgnJyk7XHJcbiAgICBjb25zdCBbcGFuZWxBbm5vdW5jZW1lbnQsIHNldFBhbmVsQW5ub3VuY2VtZW50XSA9IFJlYWN0LnVzZVN0YXRlKCcnKTtcclxuICAgIGNvbnN0IGlzSW5pdGlhbE1vdW50ID0gUmVhY3QudXNlUmVmKHRydWUpO1xyXG4gICAgZnVuY3Rpb24gZ2V0VGFic01ldGEoKSB7XHJcbiAgICAgICAgY29uc3QgdGFic05vZGUgPSB0YWJzV3JhcHBlclJlZi5jdXJyZW50O1xyXG4gICAgICAgIGxldCB0YWJzTWV0YTtcclxuICAgICAgICBpZiAodGFic05vZGUpIHtcclxuICAgICAgICAgICAgY29uc3QgcmVjdCA9IHRhYnNOb2RlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICAgICAgICB0YWJzTWV0YSA9IHtcclxuICAgICAgICAgICAgICAgIGNsaWVudFdpZHRoOiB0YWJzTm9kZS5jbGllbnRXaWR0aCxcclxuICAgICAgICAgICAgICAgIHNjcm9sbExlZnQ6IHRhYnNOb2RlLnNjcm9sbExlZnQsXHJcbiAgICAgICAgICAgICAgICBzY3JvbGxUb3A6IHRhYnNOb2RlLnNjcm9sbFRvcCxcclxuICAgICAgICAgICAgICAgIHNjcm9sbExlZnROb3JtYWxpemVkOiBnZXROb3JtYWxpemVkU2Nyb2xsTGVmdCh0YWJzTm9kZSwgdGhlbWUuZGlyZWN0aW9uKSxcclxuICAgICAgICAgICAgICAgIHNjcm9sbFdpZHRoOiB0YWJzTm9kZS5zY3JvbGxXaWR0aCxcclxuICAgICAgICAgICAgICAgIHRvcDogcmVjdC50b3AsXHJcbiAgICAgICAgICAgICAgICBib3R0b206IHJlY3QuYm90dG9tLFxyXG4gICAgICAgICAgICAgICAgbGVmdDogcmVjdC5sZWZ0LFxyXG4gICAgICAgICAgICAgICAgcmlnaHQ6IHJlY3QucmlnaHQsXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCB0YWJNZXRhO1xyXG4gICAgICAgIGlmICh0YWJzTm9kZSkge1xyXG4gICAgICAgICAgICBjb25zdCBjaGlsZHJlbkFycmF5ID0gY2hpbGRyZW5XcmFwcGVyUmVmLmN1cnJlbnQuY2hpbGRyZW47XHJcbiAgICAgICAgICAgIGlmIChjaGlsZHJlbkFycmF5Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHRhYiA9IGNoaWxkcmVuQXJyYXlbYWN0aXZlVGFiSW5kZXhdO1xyXG4gICAgICAgICAgICAgICAgdGFiTWV0YSA9IHRhYiA/IHRhYi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSA6IG51bGw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHsgdGFic01ldGEsIHRhYk1ldGEgfTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIHNjcm9sbFNlbGVjdGVkSW50b1ZpZXcoKSB7XHJcbiAgICAgICAgY29uc3QgeyB0YWJzTWV0YSwgdGFiTWV0YSB9ID0gZ2V0VGFic01ldGEoKTtcclxuICAgICAgICBpZiAoIXRhYk1ldGEgfHwgIXRhYnNNZXRhKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgcHJldkJ1dHRvbk9mZnNldCA9IHZlcnRpY2FsXHJcbiAgICAgICAgICAgID8gTnVtYmVyKHByZXZCdXR0b25SZWYuY3VycmVudC5vZmZzZXRIZWlnaHQpXHJcbiAgICAgICAgICAgIDogTnVtYmVyKHByZXZCdXR0b25SZWYuY3VycmVudC5vZmZzZXRXaWR0aCk7XHJcbiAgICAgICAgY29uc3QgbmV4dEJ1dHRvbk9mZnNldCA9IHZlcnRpY2FsXHJcbiAgICAgICAgICAgID8gTnVtYmVyKG5leHRCdXR0b25SZWYuY3VycmVudC5vZmZzZXRIZWlnaHQpXHJcbiAgICAgICAgICAgIDogTnVtYmVyKG5leHRCdXR0b25SZWYuY3VycmVudC5vZmZzZXRXaWR0aCk7XHJcbiAgICAgICAgaWYgKHRhYk1ldGFbc3RhcnRdIDwgTnVtYmVyKHRhYnNNZXRhW3N0YXJ0XSkgKyBwcmV2QnV0dG9uT2Zmc2V0KSB7XHJcbiAgICAgICAgICAgIC8vIGxlZnQgc2lkZSBvZiBidXR0b24gaXMgb3V0IG9mIHZpZXdcclxuICAgICAgICAgICAgY29uc3QgbmV4dFNjcm9sbFN0YXJ0ID0gTnVtYmVyKHRhYnNNZXRhW3Njcm9sbFN0YXJ0XSkgK1xyXG4gICAgICAgICAgICAgICAgKE51bWJlcih0YWJNZXRhW3N0YXJ0XSkgLSBOdW1iZXIodGFic01ldGFbc3RhcnRdKSkgLVxyXG4gICAgICAgICAgICAgICAgcHJldkJ1dHRvbk9mZnNldDtcclxuICAgICAgICAgICAgc2Nyb2xsKG5leHRTY3JvbGxTdGFydCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHRhYk1ldGFbZW5kXSA+IE51bWJlcih0YWJzTWV0YVtlbmRdKSAtIG5leHRCdXR0b25PZmZzZXQpIHtcclxuICAgICAgICAgICAgLy8gcmlnaHQgc2lkZSBvZiBidXR0b24gaXMgb3V0IG9mIHZpZXdcclxuICAgICAgICAgICAgY29uc3QgbmV4dFNjcm9sbFN0YXJ0ID0gTnVtYmVyKHRhYnNNZXRhW3Njcm9sbFN0YXJ0XSkgK1xyXG4gICAgICAgICAgICAgICAgKE51bWJlcih0YWJNZXRhW2VuZF0pIC0gTnVtYmVyKHRhYnNNZXRhW2VuZF0pKSArXHJcbiAgICAgICAgICAgICAgICBuZXh0QnV0dG9uT2Zmc2V0O1xyXG4gICAgICAgICAgICBzY3JvbGwobmV4dFNjcm9sbFN0YXJ0KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zdCBzY3JvbGxJbml0aWFsQWN0aXZlSW5kZXhJbnRvVmlldyA9ICgpID0+IHtcclxuICAgICAgICBjb25zdCB7IHRhYnNNZXRhLCB0YWJNZXRhIH0gPSBnZXRUYWJzTWV0YSgpO1xyXG4gICAgICAgIGlmICghdGFiTWV0YSB8fCAhdGFic01ldGEpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCB0YWJDZW50ZXIgPSAodGFiTWV0YVtzdGFydF0gKyB0YWJNZXRhW2VuZF0pIC8gMjtcclxuICAgICAgICBjb25zdCBjb250YWluZXJDZW50ZXIgPSAodGFic01ldGFbc3RhcnRdICsgdGFic01ldGFbZW5kXSkgLyAyO1xyXG4gICAgICAgIGNvbnN0IHNjcm9sbERlbHRhID0gdGFiQ2VudGVyIC0gY29udGFpbmVyQ2VudGVyO1xyXG4gICAgICAgIGNvbnN0IG5leHRTY3JvbGxTdGFydCA9IE51bWJlcih0YWJzTWV0YVtzY3JvbGxTdGFydF0pICsgc2Nyb2xsRGVsdGE7XHJcbiAgICAgICAgc2Nyb2xsKG5leHRTY3JvbGxTdGFydCk7XHJcbiAgICB9O1xyXG4gICAgUmVhY3QudXNlRWZmZWN0KHNjcm9sbFNlbGVjdGVkSW50b1ZpZXcsIFthY3RpdmVUYWJJbmRleF0pO1xyXG4gICAgUmVhY3QudXNlRWZmZWN0KHNjcm9sbEluaXRpYWxBY3RpdmVJbmRleEludG9WaWV3LCBbXSk7XHJcbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgIGlmICghZGlzcGxheVNjcm9sbC5zdGFydCkge1xyXG4gICAgICAgICAgICBuZXh0QnV0dG9uUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKCFkaXNwbGF5U2Nyb2xsLmVuZCkge1xyXG4gICAgICAgICAgICBwcmV2QnV0dG9uUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW2Rpc3BsYXlTY3JvbGwuc3RhcnQsIGRpc3BsYXlTY3JvbGwuZW5kXSk7XHJcbiAgICAvLyBBbm5vdW5jZSBwYW5lbCBjb250ZW50IHdoZW4gYWN0aXZlIHRhYiBjaGFuZ2VzIChleGNsdWRpbmcgaW5pdGlhbCBtb3VudClcclxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgaWYgKGlzSW5pdGlhbE1vdW50LmN1cnJlbnQpIHtcclxuICAgICAgICAgICAgaXNJbml0aWFsTW91bnQuY3VycmVudCA9IGZhbHNlO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHBhbmVsSWQgPSBgdGFicGFuZWwtJHtpbnN0YW5jZUlkfS0ke2FjdGl2ZVRhYkluZGV4fWA7XHJcbiAgICAgICAgY29uc3QgcGFuZWxFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocGFuZWxJZCk7XHJcbiAgICAgICAgaWYgKHBhbmVsRWxlbWVudCkge1xyXG4gICAgICAgICAgICBjb25zdCBwYW5lbFRleHQgPSBwYW5lbEVsZW1lbnQudGV4dENvbnRlbnQgfHwgJyc7XHJcbiAgICAgICAgICAgIHNldFBhbmVsQW5ub3VuY2VtZW50KHBhbmVsVGV4dC50cmltKCkpO1xyXG4gICAgICAgICAgICBjb25zdCB0aW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiBzZXRQYW5lbEFubm91bmNlbWVudCgnJyksIDEwMDApO1xyXG4gICAgICAgICAgICByZXR1cm4gKCkgPT4gY2xlYXJUaW1lb3V0KHRpbWVvdXQpO1xyXG4gICAgICAgIH1cclxuICAgIH0sIFthY3RpdmVUYWJJbmRleCwgaW5zdGFuY2VJZF0pO1xyXG4gICAgZnVuY3Rpb24gY2hhbmdlSGFuZGxlcihuZXdBY3RpdmVJbmRleCwgZXZlbnQpIHtcclxuICAgICAgICBpZiAoZXZlbnQudGFyZ2V0LmNoaWxkcmVuWzBdICYmXHJcbiAgICAgICAgICAgIGV2ZW50LnRhcmdldC5jaGlsZHJlblswXS5oYXNBdHRyaWJ1dGUoJ2Rpc2FibGVkJykpIHtcclxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgb25DaGFuZ2UgJiYgdHlwZW9mIG9uQ2hhbmdlID09PSAnZnVuY3Rpb24nICYmIG9uQ2hhbmdlKG5ld0FjdGl2ZUluZGV4KTtcclxuICAgICAgICBpZiAobmV3QWN0aXZlSW5kZXggPT09IGFjdGl2ZVRhYkluZGV4KSB7XHJcbiAgICAgICAgICAgIHNjcm9sbFNlbGVjdGVkSW50b1ZpZXcoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHNldEFjdGl2ZVRhYkluZGV4KG5ld0FjdGl2ZUluZGV4KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBmdW5jdGlvbiB0YWJJc0VuYWJsZWQodGFiSW5kZXgpIHtcclxuICAgICAgICByZXR1cm4gKGJ1dHRvblJlZkFycmF5LmN1cnJlbnRbdGFiSW5kZXhdLmN1cnJlbnQuZ2V0QXR0cmlidXRlKCdkaXNhYmxlZCcpID09PVxyXG4gICAgICAgICAgICBudWxsKTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIGZpbmRQcmV2aW91c0VuYWJsZWRUYWJJbmRleChtb2RpZmllZEFjdGl2ZVRhYkluZGV4KSB7XHJcbiAgICAgICAgY29uc3QgY3VycmVudFRhYkluZGV4ID0gbW9kaWZpZWRBY3RpdmVUYWJJbmRleFxyXG4gICAgICAgICAgICA/IG1vZGlmaWVkQWN0aXZlVGFiSW5kZXhcclxuICAgICAgICAgICAgOiBhY3RpdmVUYWJJbmRleDtcclxuICAgICAgICBjb25zdCBuZXdBY3RpdmVUYWJJbmRleCA9IGN1cnJlbnRUYWJJbmRleCA+IDAgPyBjdXJyZW50VGFiSW5kZXggLSAxIDogMDtcclxuICAgICAgICBpZiAodGFiSXNFbmFibGVkKG5ld0FjdGl2ZVRhYkluZGV4KSkge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3QWN0aXZlVGFiSW5kZXg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKG5ld0FjdGl2ZVRhYkluZGV4IC0gMSA+PSAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmaW5kUHJldmlvdXNFbmFibGVkVGFiSW5kZXgobmV3QWN0aXZlVGFiSW5kZXgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIGFjdGl2ZVRhYkluZGV4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIGZpbmROZXh0RW5hYmxlZFRhYkluZGV4KGxhc3RDaGlsZEluZGV4LCBtb2RpZmllZEFjdGl2ZVRhYkluZGV4KSB7XHJcbiAgICAgICAgY29uc3QgY3VycmVudFRhYkluZGV4ID0gbW9kaWZpZWRBY3RpdmVUYWJJbmRleCA9PT0gMCB8fCBtb2RpZmllZEFjdGl2ZVRhYkluZGV4XHJcbiAgICAgICAgICAgID8gbW9kaWZpZWRBY3RpdmVUYWJJbmRleFxyXG4gICAgICAgICAgICA6IGFjdGl2ZVRhYkluZGV4O1xyXG4gICAgICAgIGNvbnN0IG5ld0FjdGl2ZVRhYkluZGV4ID0gY3VycmVudFRhYkluZGV4IDwgbGFzdENoaWxkSW5kZXggPyBjdXJyZW50VGFiSW5kZXggKyAxIDogbGFzdENoaWxkSW5kZXg7XHJcbiAgICAgICAgaWYgKHRhYklzRW5hYmxlZChuZXdBY3RpdmVUYWJJbmRleCkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ld0FjdGl2ZVRhYkluZGV4O1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChuZXdBY3RpdmVUYWJJbmRleCArIDEgPD0gbGFzdENoaWxkSW5kZXgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZpbmROZXh0RW5hYmxlZFRhYkluZGV4KGxhc3RDaGlsZEluZGV4LCBuZXdBY3RpdmVUYWJJbmRleCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gYWN0aXZlVGFiSW5kZXg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gaGFuZGxlS2V5RG93bihldmVudCkge1xyXG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldDtcclxuICAgICAgICBjb25zdCByb2xlID0gdGFyZ2V0LmdldEF0dHJpYnV0ZSgncm9sZScpO1xyXG4gICAgICAgIGlmIChyb2xlICE9PSAndGFiJykge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGxhc3RDaGlsZEluZGV4ID0gYnV0dG9uUmVmQXJyYXkuY3VycmVudC5sZW5ndGggLSAxO1xyXG4gICAgICAgIGxldCBuZXdBY3RpdmVUYWJJbmRleCA9IG51bGw7XHJcbiAgICAgICAgY29uc3QgcHJldmlvdXNJdGVtS2V5ID0gb3JpZW50YXRpb24gIT09IFRhYnNPcmllbnRhdGlvbi52ZXJ0aWNhbCA/ICdBcnJvd0xlZnQnIDogJ0Fycm93VXAnO1xyXG4gICAgICAgIGNvbnN0IG5leHRJdGVtS2V5ID0gb3JpZW50YXRpb24gIT09IFRhYnNPcmllbnRhdGlvbi52ZXJ0aWNhbCA/ICdBcnJvd1JpZ2h0JyA6ICdBcnJvd0Rvd24nO1xyXG4gICAgICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XHJcbiAgICAgICAgICAgIGNhc2UgcHJldmlvdXNJdGVtS2V5OlxyXG4gICAgICAgICAgICAgICAgbmV3QWN0aXZlVGFiSW5kZXggPSBmaW5kUHJldmlvdXNFbmFibGVkVGFiSW5kZXgoKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIG5leHRJdGVtS2V5OlxyXG4gICAgICAgICAgICAgICAgbmV3QWN0aXZlVGFiSW5kZXggPSBmaW5kTmV4dEVuYWJsZWRUYWJJbmRleChsYXN0Q2hpbGRJbmRleCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnSG9tZSc6XHJcbiAgICAgICAgICAgICAgICBuZXdBY3RpdmVUYWJJbmRleCA9IHRhYklzRW5hYmxlZCgwKVxyXG4gICAgICAgICAgICAgICAgICAgID8gMFxyXG4gICAgICAgICAgICAgICAgICAgIDogZmluZE5leHRFbmFibGVkVGFiSW5kZXgobGFzdENoaWxkSW5kZXgsIDApO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ0VuZCc6XHJcbiAgICAgICAgICAgICAgICBuZXdBY3RpdmVUYWJJbmRleCA9IHRhYklzRW5hYmxlZChsYXN0Q2hpbGRJbmRleClcclxuICAgICAgICAgICAgICAgICAgICA/IGxhc3RDaGlsZEluZGV4XHJcbiAgICAgICAgICAgICAgICAgICAgOiBmaW5kUHJldmlvdXNFbmFibGVkVGFiSW5kZXgobGFzdENoaWxkSW5kZXgpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG5ld0FjdGl2ZVRhYkluZGV4ICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIG9uQ2hhbmdlICYmXHJcbiAgICAgICAgICAgICAgICB0eXBlb2Ygb25DaGFuZ2UgPT09ICdmdW5jdGlvbicgJiZcclxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlKG5ld0FjdGl2ZVRhYkluZGV4KTtcclxuICAgICAgICAgICAgc2V0QWN0aXZlVGFiSW5kZXgobmV3QWN0aXZlVGFiSW5kZXgpO1xyXG4gICAgICAgICAgICBidXR0b25SZWZBcnJheS5jdXJyZW50W25ld0FjdGl2ZVRhYkluZGV4XS5jdXJyZW50LmZvY3VzKCk7XHJcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgY29uc3QgaTE4biA9IFJlYWN0LnVzZUNvbnRleHQoSTE4bkNvbnRleHQpO1xyXG4gICAgY29uc3QgYXJpYUxhYmVsID0gYCR7cmVzdFsnYXJpYS1sYWJlbCddIHx8ICcnfSwgJHtvcmllbnRhdGlvbiA9PT0gVGFic09yaWVudGF0aW9uLnZlcnRpY2FsXHJcbiAgICAgICAgPyBpMThuLnRhYnMudmVydGljYWxUYWJzSW5zdHJ1Y3Rpb25zXHJcbiAgICAgICAgOiBpMThuLnRhYnMuaG9yaXpvbnRhbFRhYnNJbnN0cnVjdGlvbnN9YDtcclxuICAgIGNvbnN0IHRpbWVvdXRSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XHJcbiAgICBjb25zdCBoYW5kbGVQcmV2U2Nyb2xsV2l0aEFubm91bmNlbWVudCA9ICgpID0+IHtcclxuICAgICAgICBoYW5kbGVTdGFydFNjcm9sbENsaWNrKCk7XHJcbiAgICAgICAgc2V0U2Nyb2xsQW5ub3VuY2VtZW50KGkxOG4udGFicy5zY3JvbGxlZEJhY2tBbm5vdW5jZSk7XHJcbiAgICAgICAgaWYgKHRpbWVvdXRSZWYuY3VycmVudCkge1xyXG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dFJlZi5jdXJyZW50KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGltZW91dFJlZi5jdXJyZW50ID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHNldFNjcm9sbEFubm91bmNlbWVudCgnJyk7XHJcbiAgICAgICAgfSwgMTAwKTtcclxuICAgIH07XHJcbiAgICBjb25zdCBoYW5kbGVOZXh0U2Nyb2xsV2l0aEFubm91bmNlbWVudCA9ICgpID0+IHtcclxuICAgICAgICBoYW5kbGVFbmRTY3JvbGxDbGljaygpO1xyXG4gICAgICAgIHNldFNjcm9sbEFubm91bmNlbWVudChpMThuLnRhYnMuc2Nyb2xsZWRGb3J3YXJkQW5ub3VuY2UpO1xyXG4gICAgICAgIGlmICh0aW1lb3V0UmVmLmN1cnJlbnQpIHtcclxuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXRSZWYuY3VycmVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRpbWVvdXRSZWYuY3VycmVudCA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBzZXRTY3JvbGxBbm5vdW5jZW1lbnQoJycpO1xyXG4gICAgICAgIH0sIDEwMCk7XHJcbiAgICB9O1xyXG4gICAgY29uc3Qgb3RoZXIgPSBvbWl0KFsnYXJpYS1sYWJlbCddLCByZXN0KTtcclxuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZWRDb250YWluZXIsIE9iamVjdC5hc3NpZ24oeyBcImRhdGEtdGVzdGlkXCI6IHRlc3RJZCwgYmFja2dyb3VuZENvbG9yOiBiYWNrZ3JvdW5kLCBpc0ludmVyc2U6IGlzSW52ZXJzZSwgb3JpZW50YXRpb246IG9yaWVudGF0aW9uIHx8IFRhYnNPcmllbnRhdGlvbi5ob3Jpem9udGFsLCByZWY6IHJlZiwgdGhlbWU6IHRoZW1lIH0sIG90aGVyKSxcclxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEJ1dHRvblByZXYsIHsgYmFja2dyb3VuZENvbG9yOiBiYWNrZ3JvdW5kLCBidXR0b25WaXNpYmxlOiBkaXNwbGF5U2Nyb2xsLnN0YXJ0LCBpc0ludmVyc2U6IGlzSW52ZXJzZSwgb25DbGljazogaGFuZGxlUHJldlNjcm9sbFdpdGhBbm5vdW5jZW1lbnQsIG9yaWVudGF0aW9uOiBvcmllbnRhdGlvbiB8fCBUYWJzT3JpZW50YXRpb24uaG9yaXpvbnRhbCwgcmVmOiBwcmV2QnV0dG9uUmVmLCB0aGVtZTogdGhlbWUgfSksXHJcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZWRUYWJzV3JhcHBlciwgeyBcImRhdGEtdGVzdGlkXCI6IFwidGFic1dyYXBwZXJcIiwgb25TY3JvbGw6IGhhbmRsZVRhYnNTY3JvbGwsIG9yaWVudGF0aW9uOiBvcmllbnRhdGlvbiwgcmVmOiB0YWJzV3JhcHBlclJlZiB9LFxyXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFN0eWxlZFRhYnMsIHsgYWxpZ25tZW50OiBhbGlnbm1lbnQgPyBhbGlnbm1lbnQgOiBUYWJzQWxpZ25tZW50LmxlZnQsIFwiYXJpYS1sYWJlbFwiOiBhcmlhTGFiZWwsIFwiYXJpYS1vcmllbnRhdGlvblwiOiBvcmllbnRhdGlvbiB8fCBUYWJzT3JpZW50YXRpb24uaG9yaXpvbnRhbCwgb25LZXlEb3duOiBoYW5kbGVLZXlEb3duLCBvcmllbnRhdGlvbjogb3JpZW50YXRpb24sIHJlZjogY2hpbGRyZW5XcmFwcGVyUmVmLCByb2xlOiBcInRhYmxpc3RcIiB9LFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChUYWJzQ29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJQb3NpdGlvbixcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9uUmVmQXJyYXksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZUhhbmRsZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb25Qb3NpdGlvbixcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXNJbnZlcnNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0Z1bGxXaWR0aCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgb3JpZW50YXRpb24sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHRUcmFuc2Zvcm06IHRleHRUcmFuc2Zvcm0gfHwgVGFic1RleHRUcmFuc2Zvcm0udXBwZXJjYXNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZWdpc3RlclRhYkJ1dHRvbixcclxuICAgICAgICAgICAgICAgICAgICB9IH0sIGNoaWxkcmVuKSkpLFxyXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQnV0dG9uTmV4dCwgeyBiYWNrZ3JvdW5kQ29sb3I6IGJhY2tncm91bmQsIGJ1dHRvblZpc2libGU6IGRpc3BsYXlTY3JvbGwuZW5kLCBpc0ludmVyc2U6IGlzSW52ZXJzZSwgb25DbGljazogaGFuZGxlTmV4dFNjcm9sbFdpdGhBbm5vdW5jZW1lbnQsIG9yaWVudGF0aW9uOiBvcmllbnRhdGlvbiB8fCBUYWJzT3JpZW50YXRpb24uaG9yaXpvbnRhbCwgcmVmOiBuZXh0QnV0dG9uUmVmLCB0aGVtZTogdGhlbWUgfSksXHJcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChWaXN1YWxseUhpZGRlbiwgbnVsbCxcclxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChBbm5vdW5jZSwgbnVsbCwgc2Nyb2xsQW5ub3VuY2VtZW50KSksXHJcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChWaXN1YWxseUhpZGRlbiwgbnVsbCxcclxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChBbm5vdW5jZSwgbnVsbCwgcGFuZWxBbm5vdW5jZW1lbnQpKSkpO1xyXG59KTtcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9VGFicy5qcy5tYXAiXX0= */"));
22262
+ }, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRhYnMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9FMkUiLCJmaWxlIjoiVGFicy50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xyXG5pbXBvcnQgaXNQcm9wVmFsaWQgZnJvbSAnQGVtb3Rpb24vaXMtcHJvcC12YWxpZCc7XHJcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcclxuaW1wb3J0IHsgVGFic09yaWVudGF0aW9uLCBUYWJzVGV4dFRyYW5zZm9ybSB9IGZyb20gJy4vc2hhcmVkJztcclxuaW1wb3J0IHsgVGFic0NvbnRhaW5lckNvbnRleHQgfSBmcm9tICcuL1RhYnNDb250YWluZXInO1xyXG5pbXBvcnQgeyBCdXR0b25OZXh0LCBCdXR0b25QcmV2IH0gZnJvbSAnLi9UYWJzU2Nyb2xsQnV0dG9ucyc7XHJcbmltcG9ydCB7IHVzZVRhYnNNZXRhLCB1c2VTY3JvbGxUYWJGb2N1cyB9IGZyb20gJy4vdXRpbHMnO1xyXG5pbXBvcnQgeyB1c2VEZXNjZW5kYW50cyB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZURlc2NlbmRhbnRzJztcclxuaW1wb3J0IHsgSTE4bkNvbnRleHQgfSBmcm9tICcuLi8uLi9pMThuJztcclxuaW1wb3J0IHsgVGhlbWVDb250ZXh0IH0gZnJvbSAnLi4vLi4vdGhlbWUvVGhlbWVDb250ZXh0JztcclxuaW1wb3J0IHsgb21pdCwgZ2V0Tm9ybWFsaXplZFNjcm9sbExlZnQgfSBmcm9tICcuLi8uLi91dGlscyc7XHJcbmltcG9ydCB7IEFubm91bmNlIH0gZnJvbSAnLi4vQW5ub3VuY2UnO1xyXG5pbXBvcnQgeyBWaXN1YWxseUhpZGRlbiB9IGZyb20gJy4uL1Zpc3VhbGx5SGlkZGVuJztcclxuZXhwb3J0IHZhciBUYWJzQWxpZ25tZW50O1xyXG4oZnVuY3Rpb24gKFRhYnNBbGlnbm1lbnQpIHtcclxuICAgIFRhYnNBbGlnbm1lbnRbXCJjZW50ZXJcIl0gPSBcImNlbnRlclwiO1xyXG4gICAgVGFic0FsaWdubWVudFtcImxlZnRcIl0gPSBcImxlZnRcIjtcclxuICAgIFRhYnNBbGlnbm1lbnRbXCJyaWdodFwiXSA9IFwicmlnaHRcIjtcclxufSkoVGFic0FsaWdubWVudCB8fCAoVGFic0FsaWdubWVudCA9IHt9KSk7XHJcbmV4cG9ydCB2YXIgVGFic0JvcmRlclBvc2l0aW9uO1xyXG4oZnVuY3Rpb24gKFRhYnNCb3JkZXJQb3NpdGlvbikge1xyXG4gICAgVGFic0JvcmRlclBvc2l0aW9uW1wiYm90dG9tXCJdID0gXCJib3R0b21cIjtcclxuICAgIFRhYnNCb3JkZXJQb3NpdGlvbltcImxlZnRcIl0gPSBcImxlZnRcIjtcclxuICAgIFRhYnNCb3JkZXJQb3NpdGlvbltcInJpZ2h0XCJdID0gXCJyaWdodFwiO1xyXG4gICAgVGFic0JvcmRlclBvc2l0aW9uW1widG9wXCJdID0gXCJ0b3BcIjtcclxufSkoVGFic0JvcmRlclBvc2l0aW9uIHx8IChUYWJzQm9yZGVyUG9zaXRpb24gPSB7fSkpO1xyXG5leHBvcnQgdmFyIFRhYnNJY29uUG9zaXRpb247XHJcbihmdW5jdGlvbiAoVGFic0ljb25Qb3NpdGlvbikge1xyXG4gICAgVGFic0ljb25Qb3NpdGlvbltcImJvdHRvbVwiXSA9IFwiYm90dG9tXCI7XHJcbiAgICBUYWJzSWNvblBvc2l0aW9uW1wibGVmdFwiXSA9IFwibGVmdFwiO1xyXG4gICAgVGFic0ljb25Qb3NpdGlvbltcInJpZ2h0XCJdID0gXCJyaWdodFwiO1xyXG4gICAgVGFic0ljb25Qb3NpdGlvbltcInRvcFwiXSA9IFwidG9wXCI7XHJcbn0pKFRhYnNJY29uUG9zaXRpb24gfHwgKFRhYnNJY29uUG9zaXRpb24gPSB7fSkpO1xyXG5leHBvcnQgY29uc3QgVGFic0NvbnRleHQgPSBSZWFjdC5jcmVhdGVDb250ZXh0KHtcclxuICAgIGJvcmRlclBvc2l0aW9uOiBUYWJzQm9yZGVyUG9zaXRpb24uYm90dG9tLFxyXG4gICAgY2hhbmdlSGFuZGxlcjogKCkgPT4geyB9LFxyXG4gICAgaWNvblBvc2l0aW9uOiBUYWJzSWNvblBvc2l0aW9uLmxlZnQsXHJcbiAgICBpc0ludmVyc2U6IGZhbHNlLFxyXG4gICAgaXNGdWxsV2lkdGg6IGZhbHNlLFxyXG4gICAgb3JpZW50YXRpb246IFRhYnNPcmllbnRhdGlvbi5ob3Jpem9udGFsLFxyXG4gICAgdGV4dFRyYW5zZm9ybTogVGFic1RleHRUcmFuc2Zvcm0udXBwZXJjYXNlLFxyXG4gICAgcmVnaXN0ZXJUYWJCdXR0b246IChlbGVtZW50cywgZWxlbWVudCkgPT4geyB9LFxyXG59KTtcclxuZXhwb3J0IGNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZCgnZGl2Jywge1xyXG4gICAgc2hvdWxkRm9yd2FyZFByb3A6IGlzUHJvcFZhbGlkLFxyXG59KSBgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMuYmFja2dyb3VuZENvbG9yID8gcHJvcHMuYmFja2dyb3VuZENvbG9yIDogJ3RyYW5zcGFyZW50J307XG4gIGJhY2tncm91bmQ6IGJhY2tncm91bmRDb2xvcjtcbiAgZGlzcGxheTogZmxleDtcbiAgaGVpZ2h0OiAke3Byb3BzID0+IChwcm9wcy5vcmllbnRhdGlvbiA9PT0gJ3ZlcnRpY2FsJyA/ICcxMDAlJyA6ICdhdXRvJyl9O1xuXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6ICR7cHJvcHMgPT4gKHByb3BzLm9yaWVudGF0aW9uID09PSAndmVydGljYWwnID8gJ2F1dG8nIDogJzEwMCUnKX07XG5gO1xyXG5leHBvcnQgY29uc3QgU3R5bGVkVGFic1dyYXBwZXIgPSBzdHlsZWQoJ2RpdicsIHtcclxuICAgIHNob3VsZEZvcndhcmRQcm9wOiBpc1Byb3BWYWxpZCxcclxufSkgYFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWdyb3c6IDE7XG4gIG92ZXJmbG93LXg6ICR7cHJvcHMgPT4gKHByb3BzLm9yaWVudGF0aW9uID09PSAndmVydGljYWwnID8gJycgOiAnYXV0bycpfTtcbiAgb3ZlcmZsb3cteTogJHtwcm9wcyA9PiAocHJvcHMub3JpZW50YXRpb24gPT09ICd2ZXJ0aWNhbCcgPyAnYXV0bycgOiAnJyl9O1xuXG4gICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gIH1cbiAgc2Nyb2xsYmFyLXdpZHRoOiBub25lO1xuYDtcclxuZXhwb3J0IGNvbnN0IFN0eWxlZFRhYnMgPSBzdHlsZWQoJ3VsJywgeyBzaG91bGRGb3J3YXJkUHJvcDogaXNQcm9wVmFsaWQgfSkgYFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogJHtwcm9wcyA9PiBwcm9wcy5vcmllbnRhdGlvbiA9PT0gJ3ZlcnRpY2FsJyA/ICdjb2x1bW4nIDogJ3Jvdyd9O1xuICBqdXN0aWZ5LWNvbnRlbnQ6ICR7cHJvcHMgPT4gcHJvcHMuYWxpZ25tZW50ID09PSAnY2VudGVyJ1xyXG4gICAgPyAnY2VudGVyJ1xyXG4gICAgOiBwcm9wcy5hbGlnbm1lbnQgPT09ICdyaWdodCdcclxuICAgICAgICA/ICdmbGV4LWVuZCdcclxuICAgICAgICA6ICcnfTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICB3aWR0aDogJHtwcm9wcyA9PiAocHJvcHMub3JpZW50YXRpb24gPT09ICd2ZXJ0aWNhbCcgPyAnYXV0bycgOiAnMTAwJScpfTtcbmA7XHJcbmV4cG9ydCBjb25zdCBUYWJzID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIHJlZikgPT4ge1xyXG4gICAgY29uc3QgeyBhbGlnbm1lbnQsIGJhY2tncm91bmRDb2xvciwgYm9yZGVyUG9zaXRpb24sIGNoaWxkcmVuLCBpc0Z1bGxXaWR0aCwgb3JpZW50YXRpb24sIG9uQ2hhbmdlLCBpY29uUG9zaXRpb24sIHRlc3RJZCwgdGV4dFRyYW5zZm9ybSwgLi4ucmVzdCB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCB0aGVtZSA9IFJlYWN0LnVzZUNvbnRleHQoVGhlbWVDb250ZXh0KTtcclxuICAgIGNvbnN0IHsgYWN0aXZlVGFiSW5kZXgsIHNldEFjdGl2ZVRhYkluZGV4LCBpc0ludmVyc2VDb250YWluZXIsIGluc3RhbmNlSWQsIH0gPSBSZWFjdC51c2VDb250ZXh0KFRhYnNDb250YWluZXJDb250ZXh0KTtcclxuICAgIGNvbnN0IGlzSW52ZXJzZSA9IHR5cGVvZiBwcm9wcy5pc0ludmVyc2UgIT09ICd1bmRlZmluZWQnXHJcbiAgICAgICAgPyBCb29sZWFuKHByb3BzLmlzSW52ZXJzZSlcclxuICAgICAgICA6IGlzSW52ZXJzZUNvbnRhaW5lcjtcclxuICAgIGNvbnN0IFt0YWJzTWV0YSwgdGFic0hhbmRsZU1ldGhvZHMsIHRhYnNSZWZzXSA9IHVzZVRhYnNNZXRhKHRoZW1lLCBvcmllbnRhdGlvbiwgYmFja2dyb3VuZENvbG9yLCBpc0ludmVyc2UpO1xyXG4gICAgY29uc3QgeyB2ZXJ0aWNhbCwgYmFja2dyb3VuZCwgZGlzcGxheVNjcm9sbCwgc2Nyb2xsU3RhcnQgfSA9IHRhYnNNZXRhO1xyXG4gICAgY29uc3QgeyBoYW5kbGVTdGFydFNjcm9sbENsaWNrLCBoYW5kbGVFbmRTY3JvbGxDbGljaywgaGFuZGxlVGFic1Njcm9sbCwgc2Nyb2xsLCB9ID0gdGFic0hhbmRsZU1ldGhvZHM7XHJcbiAgICBjb25zdCB7IHByZXZCdXR0b25SZWYsIG5leHRCdXR0b25SZWYsIHRhYnNXcmFwcGVyUmVmIH0gPSB0YWJzUmVmcztcclxuICAgIGNvbnN0IHN0YXJ0ID0gdmVydGljYWwgPyAndG9wJyA6ICdsZWZ0JztcclxuICAgIGNvbnN0IGVuZCA9IHZlcnRpY2FsID8gJ2JvdHRvbScgOiAncmlnaHQnO1xyXG4gICAgY29uc3QgW2J1dHRvblJlZkFycmF5LCByZWdpc3RlclRhYkJ1dHRvbl0gPSB1c2VEZXNjZW5kYW50cygpO1xyXG4gICAgY29uc3QgY2hpbGRyZW5XcmFwcGVyUmVmID0gUmVhY3QudXNlUmVmKCk7XHJcbiAgICBjb25zdCBbc2Nyb2xsQW5ub3VuY2VtZW50LCBzZXRTY3JvbGxBbm5vdW5jZW1lbnRdID0gUmVhY3QudXNlU3RhdGUoJycpO1xyXG4gICAgY29uc3QgW3BhbmVsQW5ub3VuY2VtZW50LCBzZXRQYW5lbEFubm91bmNlbWVudF0gPSBSZWFjdC51c2VTdGF0ZSgnJyk7XHJcbiAgICBjb25zdCBpc0luaXRpYWxNb3VudCA9IFJlYWN0LnVzZVJlZih0cnVlKTtcclxuICAgIGZ1bmN0aW9uIGdldFRhYnNNZXRhKCkge1xyXG4gICAgICAgIGNvbnN0IHRhYnNOb2RlID0gdGFic1dyYXBwZXJSZWYuY3VycmVudDtcclxuICAgICAgICBsZXQgdGFic01ldGE7XHJcbiAgICAgICAgaWYgKHRhYnNOb2RlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJlY3QgPSB0YWJzTm9kZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgICAgICAgdGFic01ldGEgPSB7XHJcbiAgICAgICAgICAgICAgICBjbGllbnRXaWR0aDogdGFic05vZGUuY2xpZW50V2lkdGgsXHJcbiAgICAgICAgICAgICAgICBzY3JvbGxMZWZ0OiB0YWJzTm9kZS5zY3JvbGxMZWZ0LFxyXG4gICAgICAgICAgICAgICAgc2Nyb2xsVG9wOiB0YWJzTm9kZS5zY3JvbGxUb3AsXHJcbiAgICAgICAgICAgICAgICBzY3JvbGxMZWZ0Tm9ybWFsaXplZDogZ2V0Tm9ybWFsaXplZFNjcm9sbExlZnQodGFic05vZGUsIHRoZW1lLmRpcmVjdGlvbiksXHJcbiAgICAgICAgICAgICAgICBzY3JvbGxXaWR0aDogdGFic05vZGUuc2Nyb2xsV2lkdGgsXHJcbiAgICAgICAgICAgICAgICB0b3A6IHJlY3QudG9wLFxyXG4gICAgICAgICAgICAgICAgYm90dG9tOiByZWN0LmJvdHRvbSxcclxuICAgICAgICAgICAgICAgIGxlZnQ6IHJlY3QubGVmdCxcclxuICAgICAgICAgICAgICAgIHJpZ2h0OiByZWN0LnJpZ2h0LFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgdGFiTWV0YTtcclxuICAgICAgICBpZiAodGFic05vZGUpIHtcclxuICAgICAgICAgICAgY29uc3QgY2hpbGRyZW5BcnJheSA9IGNoaWxkcmVuV3JhcHBlclJlZi5jdXJyZW50LmNoaWxkcmVuO1xyXG4gICAgICAgICAgICBpZiAoY2hpbGRyZW5BcnJheS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB0YWIgPSBjaGlsZHJlbkFycmF5W2FjdGl2ZVRhYkluZGV4XTtcclxuICAgICAgICAgICAgICAgIHRhYk1ldGEgPSB0YWIgPyB0YWIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkgOiBudWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB7IHRhYnNNZXRhLCB0YWJNZXRhIH07XHJcbiAgICB9XHJcbiAgICBmdW5jdGlvbiBzY3JvbGxTZWxlY3RlZEludG9WaWV3KCkge1xyXG4gICAgICAgIGNvbnN0IHsgdGFic01ldGEsIHRhYk1ldGEgfSA9IGdldFRhYnNNZXRhKCk7XHJcbiAgICAgICAgaWYgKCF0YWJNZXRhIHx8ICF0YWJzTWV0YSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHByZXZCdXR0b25PZmZzZXQgPSB2ZXJ0aWNhbFxyXG4gICAgICAgICAgICA/IE51bWJlcihwcmV2QnV0dG9uUmVmLmN1cnJlbnQub2Zmc2V0SGVpZ2h0KVxyXG4gICAgICAgICAgICA6IE51bWJlcihwcmV2QnV0dG9uUmVmLmN1cnJlbnQub2Zmc2V0V2lkdGgpO1xyXG4gICAgICAgIGNvbnN0IG5leHRCdXR0b25PZmZzZXQgPSB2ZXJ0aWNhbFxyXG4gICAgICAgICAgICA/IE51bWJlcihuZXh0QnV0dG9uUmVmLmN1cnJlbnQub2Zmc2V0SGVpZ2h0KVxyXG4gICAgICAgICAgICA6IE51bWJlcihuZXh0QnV0dG9uUmVmLmN1cnJlbnQub2Zmc2V0V2lkdGgpO1xyXG4gICAgICAgIGlmICh0YWJNZXRhW3N0YXJ0XSA8IE51bWJlcih0YWJzTWV0YVtzdGFydF0pICsgcHJldkJ1dHRvbk9mZnNldCkge1xyXG4gICAgICAgICAgICAvLyBsZWZ0IHNpZGUgb2YgYnV0dG9uIGlzIG91dCBvZiB2aWV3XHJcbiAgICAgICAgICAgIGNvbnN0IG5leHRTY3JvbGxTdGFydCA9IE51bWJlcih0YWJzTWV0YVtzY3JvbGxTdGFydF0pICtcclxuICAgICAgICAgICAgICAgIChOdW1iZXIodGFiTWV0YVtzdGFydF0pIC0gTnVtYmVyKHRhYnNNZXRhW3N0YXJ0XSkpIC1cclxuICAgICAgICAgICAgICAgIHByZXZCdXR0b25PZmZzZXQ7XHJcbiAgICAgICAgICAgIHNjcm9sbChuZXh0U2Nyb2xsU3RhcnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmICh0YWJNZXRhW2VuZF0gPiBOdW1iZXIodGFic01ldGFbZW5kXSkgLSBuZXh0QnV0dG9uT2Zmc2V0KSB7XHJcbiAgICAgICAgICAgIC8vIHJpZ2h0IHNpZGUgb2YgYnV0dG9uIGlzIG91dCBvZiB2aWV3XHJcbiAgICAgICAgICAgIGNvbnN0IG5leHRTY3JvbGxTdGFydCA9IE51bWJlcih0YWJzTWV0YVtzY3JvbGxTdGFydF0pICtcclxuICAgICAgICAgICAgICAgIChOdW1iZXIodGFiTWV0YVtlbmRdKSAtIE51bWJlcih0YWJzTWV0YVtlbmRdKSkgK1xyXG4gICAgICAgICAgICAgICAgbmV4dEJ1dHRvbk9mZnNldDtcclxuICAgICAgICAgICAgc2Nyb2xsKG5leHRTY3JvbGxTdGFydCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgY29uc3Qgc2Nyb2xsSW5pdGlhbEFjdGl2ZUluZGV4SW50b1ZpZXcgPSAoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgeyB0YWJzTWV0YSwgdGFiTWV0YSB9ID0gZ2V0VGFic01ldGEoKTtcclxuICAgICAgICBpZiAoIXRhYk1ldGEgfHwgIXRhYnNNZXRhKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgdGFiQ2VudGVyID0gKHRhYk1ldGFbc3RhcnRdICsgdGFiTWV0YVtlbmRdKSAvIDI7XHJcbiAgICAgICAgY29uc3QgY29udGFpbmVyQ2VudGVyID0gKHRhYnNNZXRhW3N0YXJ0XSArIHRhYnNNZXRhW2VuZF0pIC8gMjtcclxuICAgICAgICBjb25zdCBzY3JvbGxEZWx0YSA9IHRhYkNlbnRlciAtIGNvbnRhaW5lckNlbnRlcjtcclxuICAgICAgICBjb25zdCBuZXh0U2Nyb2xsU3RhcnQgPSBOdW1iZXIodGFic01ldGFbc2Nyb2xsU3RhcnRdKSArIHNjcm9sbERlbHRhO1xyXG4gICAgICAgIHNjcm9sbChuZXh0U2Nyb2xsU3RhcnQpO1xyXG4gICAgfTtcclxuICAgIFJlYWN0LnVzZUVmZmVjdChzY3JvbGxTZWxlY3RlZEludG9WaWV3LCBbYWN0aXZlVGFiSW5kZXhdKTtcclxuICAgIFJlYWN0LnVzZUVmZmVjdChzY3JvbGxJbml0aWFsQWN0aXZlSW5kZXhJbnRvVmlldywgW10pO1xyXG4gICAgY29uc3QgeyBmb2N1c0ZpcnN0VmlzaWJsZVRhYiB9ID0gdXNlU2Nyb2xsVGFiRm9jdXModGFic1dyYXBwZXJSZWYsIG9yaWVudGF0aW9uKTtcclxuICAgIC8vIEFubm91bmNlIHBhbmVsIGNvbnRlbnQgd2hlbiBhY3RpdmUgdGFiIGNoYW5nZXMgKGV4Y2x1ZGluZyBpbml0aWFsIG1vdW50KVxyXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgICBpZiAoaXNJbml0aWFsTW91bnQuY3VycmVudCkge1xyXG4gICAgICAgICAgICBpc0luaXRpYWxNb3VudC5jdXJyZW50ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgcGFuZWxJZCA9IGB0YWJwYW5lbC0ke2luc3RhbmNlSWR9LSR7YWN0aXZlVGFiSW5kZXh9YDtcclxuICAgICAgICBjb25zdCBwYW5lbEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChwYW5lbElkKTtcclxuICAgICAgICBpZiAocGFuZWxFbGVtZW50KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHBhbmVsVGV4dCA9IHBhbmVsRWxlbWVudC50ZXh0Q29udGVudCB8fCAnJztcclxuICAgICAgICAgICAgc2V0UGFuZWxBbm5vdW5jZW1lbnQocGFuZWxUZXh0LnRyaW0oKSk7XHJcbiAgICAgICAgICAgIGNvbnN0IHRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHNldFBhbmVsQW5ub3VuY2VtZW50KCcnKSwgMTAwMCk7XHJcbiAgICAgICAgICAgIHJldHVybiAoKSA9PiBjbGVhclRpbWVvdXQodGltZW91dCk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW2FjdGl2ZVRhYkluZGV4LCBpbnN0YW5jZUlkXSk7XHJcbiAgICBmdW5jdGlvbiBjaGFuZ2VIYW5kbGVyKG5ld0FjdGl2ZUluZGV4LCBldmVudCkge1xyXG4gICAgICAgIGlmIChldmVudC50YXJnZXQuY2hpbGRyZW5bMF0gJiZcclxuICAgICAgICAgICAgZXZlbnQudGFyZ2V0LmNoaWxkcmVuWzBdLmhhc0F0dHJpYnV0ZSgnZGlzYWJsZWQnKSkge1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuICAgICAgICBvbkNoYW5nZSAmJiB0eXBlb2Ygb25DaGFuZ2UgPT09ICdmdW5jdGlvbicgJiYgb25DaGFuZ2UobmV3QWN0aXZlSW5kZXgpO1xyXG4gICAgICAgIGlmIChuZXdBY3RpdmVJbmRleCA9PT0gYWN0aXZlVGFiSW5kZXgpIHtcclxuICAgICAgICAgICAgc2Nyb2xsU2VsZWN0ZWRJbnRvVmlldygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgc2V0QWN0aXZlVGFiSW5kZXgobmV3QWN0aXZlSW5kZXgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIHRhYklzRW5hYmxlZCh0YWJJbmRleCkge1xyXG4gICAgICAgIHJldHVybiAoYnV0dG9uUmVmQXJyYXkuY3VycmVudFt0YWJJbmRleF0uY3VycmVudC5nZXRBdHRyaWJ1dGUoJ2Rpc2FibGVkJykgPT09XHJcbiAgICAgICAgICAgIG51bGwpO1xyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gZmluZFByZXZpb3VzRW5hYmxlZFRhYkluZGV4KG1vZGlmaWVkQWN0aXZlVGFiSW5kZXgpIHtcclxuICAgICAgICBjb25zdCBjdXJyZW50VGFiSW5kZXggPSBtb2RpZmllZEFjdGl2ZVRhYkluZGV4XHJcbiAgICAgICAgICAgID8gbW9kaWZpZWRBY3RpdmVUYWJJbmRleFxyXG4gICAgICAgICAgICA6IGFjdGl2ZVRhYkluZGV4O1xyXG4gICAgICAgIGNvbnN0IG5ld0FjdGl2ZVRhYkluZGV4ID0gY3VycmVudFRhYkluZGV4ID4gMCA/IGN1cnJlbnRUYWJJbmRleCAtIDEgOiAwO1xyXG4gICAgICAgIGlmICh0YWJJc0VuYWJsZWQobmV3QWN0aXZlVGFiSW5kZXgpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXdBY3RpdmVUYWJJbmRleDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAobmV3QWN0aXZlVGFiSW5kZXggLSAxID49IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZpbmRQcmV2aW91c0VuYWJsZWRUYWJJbmRleChuZXdBY3RpdmVUYWJJbmRleCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gYWN0aXZlVGFiSW5kZXg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gZmluZE5leHRFbmFibGVkVGFiSW5kZXgobGFzdENoaWxkSW5kZXgsIG1vZGlmaWVkQWN0aXZlVGFiSW5kZXgpIHtcclxuICAgICAgICBjb25zdCBjdXJyZW50VGFiSW5kZXggPSBtb2RpZmllZEFjdGl2ZVRhYkluZGV4ID09PSAwIHx8IG1vZGlmaWVkQWN0aXZlVGFiSW5kZXhcclxuICAgICAgICAgICAgPyBtb2RpZmllZEFjdGl2ZVRhYkluZGV4XHJcbiAgICAgICAgICAgIDogYWN0aXZlVGFiSW5kZXg7XHJcbiAgICAgICAgY29uc3QgbmV3QWN0aXZlVGFiSW5kZXggPSBjdXJyZW50VGFiSW5kZXggPCBsYXN0Q2hpbGRJbmRleCA/IGN1cnJlbnRUYWJJbmRleCArIDEgOiBsYXN0Q2hpbGRJbmRleDtcclxuICAgICAgICBpZiAodGFiSXNFbmFibGVkKG5ld0FjdGl2ZVRhYkluZGV4KSkge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3QWN0aXZlVGFiSW5kZXg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKG5ld0FjdGl2ZVRhYkluZGV4ICsgMSA8PSBsYXN0Q2hpbGRJbmRleCkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmluZE5leHRFbmFibGVkVGFiSW5kZXgobGFzdENoaWxkSW5kZXgsIG5ld0FjdGl2ZVRhYkluZGV4KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBhY3RpdmVUYWJJbmRleDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBmdW5jdGlvbiBoYW5kbGVLZXlEb3duKGV2ZW50KSB7XHJcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0O1xyXG4gICAgICAgIGNvbnN0IHJvbGUgPSB0YXJnZXQuZ2V0QXR0cmlidXRlKCdyb2xlJyk7XHJcbiAgICAgICAgaWYgKHJvbGUgIT09ICd0YWInKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgbGFzdENoaWxkSW5kZXggPSBidXR0b25SZWZBcnJheS5jdXJyZW50Lmxlbmd0aCAtIDE7XHJcbiAgICAgICAgbGV0IG5ld0FjdGl2ZVRhYkluZGV4ID0gbnVsbDtcclxuICAgICAgICBjb25zdCBwcmV2aW91c0l0ZW1LZXkgPSBvcmllbnRhdGlvbiAhPT0gVGFic09yaWVudGF0aW9uLnZlcnRpY2FsID8gJ0Fycm93TGVmdCcgOiAnQXJyb3dVcCc7XHJcbiAgICAgICAgY29uc3QgbmV4dEl0ZW1LZXkgPSBvcmllbnRhdGlvbiAhPT0gVGFic09yaWVudGF0aW9uLnZlcnRpY2FsID8gJ0Fycm93UmlnaHQnIDogJ0Fycm93RG93bic7XHJcbiAgICAgICAgc3dpdGNoIChldmVudC5rZXkpIHtcclxuICAgICAgICAgICAgY2FzZSBwcmV2aW91c0l0ZW1LZXk6XHJcbiAgICAgICAgICAgICAgICBuZXdBY3RpdmVUYWJJbmRleCA9IGZpbmRQcmV2aW91c0VuYWJsZWRUYWJJbmRleCgpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgbmV4dEl0ZW1LZXk6XHJcbiAgICAgICAgICAgICAgICBuZXdBY3RpdmVUYWJJbmRleCA9IGZpbmROZXh0RW5hYmxlZFRhYkluZGV4KGxhc3RDaGlsZEluZGV4KTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdIb21lJzpcclxuICAgICAgICAgICAgICAgIG5ld0FjdGl2ZVRhYkluZGV4ID0gdGFiSXNFbmFibGVkKDApXHJcbiAgICAgICAgICAgICAgICAgICAgPyAwXHJcbiAgICAgICAgICAgICAgICAgICAgOiBmaW5kTmV4dEVuYWJsZWRUYWJJbmRleChsYXN0Q2hpbGRJbmRleCwgMCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnRW5kJzpcclxuICAgICAgICAgICAgICAgIG5ld0FjdGl2ZVRhYkluZGV4ID0gdGFiSXNFbmFibGVkKGxhc3RDaGlsZEluZGV4KVxyXG4gICAgICAgICAgICAgICAgICAgID8gbGFzdENoaWxkSW5kZXhcclxuICAgICAgICAgICAgICAgICAgICA6IGZpbmRQcmV2aW91c0VuYWJsZWRUYWJJbmRleChsYXN0Q2hpbGRJbmRleCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobmV3QWN0aXZlVGFiSW5kZXggIT09IG51bGwpIHtcclxuICAgICAgICAgICAgb25DaGFuZ2UgJiZcclxuICAgICAgICAgICAgICAgIHR5cGVvZiBvbkNoYW5nZSA9PT0gJ2Z1bmN0aW9uJyAmJlxyXG4gICAgICAgICAgICAgICAgb25DaGFuZ2UobmV3QWN0aXZlVGFiSW5kZXgpO1xyXG4gICAgICAgICAgICBzZXRBY3RpdmVUYWJJbmRleChuZXdBY3RpdmVUYWJJbmRleCk7XHJcbiAgICAgICAgICAgIGJ1dHRvblJlZkFycmF5LmN1cnJlbnRbbmV3QWN0aXZlVGFiSW5kZXhdLmN1cnJlbnQuZm9jdXMoKTtcclxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zdCBpMThuID0gUmVhY3QudXNlQ29udGV4dChJMThuQ29udGV4dCk7XHJcbiAgICBjb25zdCBhcmlhTGFiZWwgPSBgJHtyZXN0WydhcmlhLWxhYmVsJ10gfHwgJyd9LCAke29yaWVudGF0aW9uID09PSBUYWJzT3JpZW50YXRpb24udmVydGljYWxcclxuICAgICAgICA/IGkxOG4udGFicy52ZXJ0aWNhbFRhYnNJbnN0cnVjdGlvbnNcclxuICAgICAgICA6IGkxOG4udGFicy5ob3Jpem9udGFsVGFic0luc3RydWN0aW9uc31gO1xyXG4gICAgY29uc3QgdGltZW91dFJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcclxuICAgIGNvbnN0IGhhbmRsZVByZXZTY3JvbGxXaXRoQW5ub3VuY2VtZW50ID0gKCkgPT4ge1xyXG4gICAgICAgIGhhbmRsZVN0YXJ0U2Nyb2xsQ2xpY2soKTtcclxuICAgICAgICBzZXRTY3JvbGxBbm5vdW5jZW1lbnQoaTE4bi50YWJzLnNjcm9sbGVkQmFja0Fubm91bmNlKTtcclxuICAgICAgICBpZiAodGltZW91dFJlZi5jdXJyZW50KSB7XHJcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0UmVmLmN1cnJlbnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aW1lb3V0UmVmLmN1cnJlbnQgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgc2V0U2Nyb2xsQW5ub3VuY2VtZW50KCcnKTtcclxuICAgICAgICAgICAgZm9jdXNGaXJzdFZpc2libGVUYWIoKTtcclxuICAgICAgICB9LCAzMDApO1xyXG4gICAgfTtcclxuICAgIGNvbnN0IGhhbmRsZU5leHRTY3JvbGxXaXRoQW5ub3VuY2VtZW50ID0gKCkgPT4ge1xyXG4gICAgICAgIGhhbmRsZUVuZFNjcm9sbENsaWNrKCk7XHJcbiAgICAgICAgc2V0U2Nyb2xsQW5ub3VuY2VtZW50KGkxOG4udGFicy5zY3JvbGxlZEZvcndhcmRBbm5vdW5jZSk7XHJcbiAgICAgICAgaWYgKHRpbWVvdXRSZWYuY3VycmVudCkge1xyXG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dFJlZi5jdXJyZW50KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGltZW91dFJlZi5jdXJyZW50ID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHNldFNjcm9sbEFubm91bmNlbWVudCgnJyk7XHJcbiAgICAgICAgICAgIGZvY3VzRmlyc3RWaXNpYmxlVGFiKCk7XHJcbiAgICAgICAgfSwgMzAwKTtcclxuICAgIH07XHJcbiAgICBjb25zdCBvdGhlciA9IG9taXQoWydhcmlhLWxhYmVsJ10sIHJlc3QpO1xyXG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFN0eWxlZENvbnRhaW5lciwgT2JqZWN0LmFzc2lnbih7IFwiZGF0YS10ZXN0aWRcIjogdGVzdElkLCBiYWNrZ3JvdW5kQ29sb3I6IGJhY2tncm91bmQsIGlzSW52ZXJzZTogaXNJbnZlcnNlLCBvcmllbnRhdGlvbjogb3JpZW50YXRpb24gfHwgVGFic09yaWVudGF0aW9uLmhvcml6b250YWwsIHJlZjogcmVmLCB0aGVtZTogdGhlbWUgfSwgb3RoZXIpLFxyXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQnV0dG9uUHJldiwgeyBiYWNrZ3JvdW5kQ29sb3I6IGJhY2tncm91bmQsIGJ1dHRvblZpc2libGU6IGRpc3BsYXlTY3JvbGwuc3RhcnQsIGlzSW52ZXJzZTogaXNJbnZlcnNlLCBvbkNsaWNrOiBoYW5kbGVQcmV2U2Nyb2xsV2l0aEFubm91bmNlbWVudCwgb3JpZW50YXRpb246IG9yaWVudGF0aW9uIHx8IFRhYnNPcmllbnRhdGlvbi5ob3Jpem9udGFsLCByZWY6IHByZXZCdXR0b25SZWYsIHRoZW1lOiB0aGVtZSB9KSxcclxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFN0eWxlZFRhYnNXcmFwcGVyLCB7IFwiZGF0YS10ZXN0aWRcIjogXCJ0YWJzV3JhcHBlclwiLCBvblNjcm9sbDogaGFuZGxlVGFic1Njcm9sbCwgb3JpZW50YXRpb246IG9yaWVudGF0aW9uLCByZWY6IHRhYnNXcmFwcGVyUmVmIH0sXHJcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkVGFicywgeyBhbGlnbm1lbnQ6IGFsaWdubWVudCA/IGFsaWdubWVudCA6IFRhYnNBbGlnbm1lbnQubGVmdCwgXCJhcmlhLWxhYmVsXCI6IGFyaWFMYWJlbCwgXCJhcmlhLW9yaWVudGF0aW9uXCI6IG9yaWVudGF0aW9uIHx8IFRhYnNPcmllbnRhdGlvbi5ob3Jpem9udGFsLCBvbktleURvd246IGhhbmRsZUtleURvd24sIG9yaWVudGF0aW9uOiBvcmllbnRhdGlvbiwgcmVmOiBjaGlsZHJlbldyYXBwZXJSZWYsIHJvbGU6IFwidGFibGlzdFwiIH0sXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFRhYnNDb250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlclBvc2l0aW9uLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBidXR0b25SZWZBcnJheSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlSGFuZGxlcixcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvblBvc2l0aW9uLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0ludmVyc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzRnVsbFdpZHRoLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvcmllbnRhdGlvbixcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dFRyYW5zZm9ybTogdGV4dFRyYW5zZm9ybSB8fCBUYWJzVGV4dFRyYW5zZm9ybS51cHBlcmNhc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lzdGVyVGFiQnV0dG9uLFxyXG4gICAgICAgICAgICAgICAgICAgIH0gfSwgY2hpbGRyZW4pKSksXHJcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChCdXR0b25OZXh0LCB7IGJhY2tncm91bmRDb2xvcjogYmFja2dyb3VuZCwgYnV0dG9uVmlzaWJsZTogZGlzcGxheVNjcm9sbC5lbmQsIGlzSW52ZXJzZTogaXNJbnZlcnNlLCBvbkNsaWNrOiBoYW5kbGVOZXh0U2Nyb2xsV2l0aEFubm91bmNlbWVudCwgb3JpZW50YXRpb246IG9yaWVudGF0aW9uIHx8IFRhYnNPcmllbnRhdGlvbi5ob3Jpem9udGFsLCByZWY6IG5leHRCdXR0b25SZWYsIHRoZW1lOiB0aGVtZSB9KSxcclxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFZpc3VhbGx5SGlkZGVuLCBudWxsLFxyXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEFubm91bmNlLCBudWxsLCBzY3JvbGxBbm5vdW5jZW1lbnQpKSxcclxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFZpc3VhbGx5SGlkZGVuLCBudWxsLFxyXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEFubm91bmNlLCBudWxsLCBwYW5lbEFubm91bmNlbWVudCkpKSk7XHJcbn0pO1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1UYWJzLmpzLm1hcCJdfQ== */"));
22240
22263
  var Tabs = /*#__PURE__*/React.forwardRef(function (props, ref) {
22241
22264
  var alignment = props.alignment,
22242
22265
  backgroundColor = props.backgroundColor,
@@ -22348,15 +22371,8 @@
22348
22371
  };
22349
22372
  React.useEffect(scrollSelectedIntoView, [activeTabIndex]);
22350
22373
  React.useEffect(scrollInitialActiveIndexIntoView, []);
22351
- React.useEffect(function () {
22352
- if (!displayScroll.start) {
22353
- var _nextButtonRef$curren;
22354
- (_nextButtonRef$curren = nextButtonRef.current) == null || _nextButtonRef$curren.focus();
22355
- } else if (!displayScroll.end) {
22356
- var _prevButtonRef$curren;
22357
- (_prevButtonRef$curren = prevButtonRef.current) == null || _prevButtonRef$curren.focus();
22358
- }
22359
- }, [displayScroll.start, displayScroll.end]);
22374
+ var _useScrollTabFocus = useScrollTabFocus(tabsWrapperRef, orientation),
22375
+ focusFirstVisibleTab = _useScrollTabFocus.focusFirstVisibleTab;
22360
22376
  // Announce panel content when active tab changes (excluding initial mount)
22361
22377
  React.useEffect(function () {
22362
22378
  if (isInitialMount.current) {
@@ -22455,7 +22471,8 @@
22455
22471
  }
22456
22472
  timeoutRef.current = setTimeout(function () {
22457
22473
  setScrollAnnouncement('');
22458
- }, 100);
22474
+ focusFirstVisibleTab();
22475
+ }, 300);
22459
22476
  };
22460
22477
  var handleNextScrollWithAnnouncement = function handleNextScrollWithAnnouncement() {
22461
22478
  handleEndScrollClick();
@@ -22465,7 +22482,8 @@
22465
22482
  }
22466
22483
  timeoutRef.current = setTimeout(function () {
22467
22484
  setScrollAnnouncement('');
22468
- }, 100);
22485
+ focusFirstVisibleTab();
22486
+ }, 300);
22469
22487
  };
22470
22488
  var other = omit$1(['aria-label'], rest);
22471
22489
  return React.createElement(StyledContainer$3, Object.assign({