@ultraviolet/ui 1.88.0 → 1.89.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. package/dist/components/Alert/index.cjs +6 -6
  2. package/dist/components/Alert/index.js +1 -1
  3. package/dist/components/AvatarV2/index.js +1 -1
  4. package/dist/components/Badge/index.cjs +4 -5
  5. package/dist/components/Badge/index.js +0 -1
  6. package/dist/components/Banner/index.cjs +7 -7
  7. package/dist/components/Banner/index.js +7 -7
  8. package/dist/components/Bullet/index.cjs +0 -1
  9. package/dist/components/Bullet/index.js +0 -1
  10. package/dist/components/Card/index.cjs +8 -8
  11. package/dist/components/Checkbox/index.cjs +11 -11
  12. package/dist/components/CheckboxGroup/index.cjs +12 -12
  13. package/dist/components/CheckboxGroup/index.js +1 -1
  14. package/dist/components/Chip/index.cjs +4 -4
  15. package/dist/components/Chip/index.d.ts +1 -1
  16. package/dist/components/DateInput/components/CalendarContent.cjs +8 -8
  17. package/dist/components/DateInput/components/CalendarDaily.cjs +4 -4
  18. package/dist/components/DateInput/components/CalendarDaily.js +1 -1
  19. package/dist/components/DateInput/components/CalendarMonthly.cjs +4 -4
  20. package/dist/components/DateInput/index.cjs +9 -9
  21. package/dist/components/DateInput/index.js +1 -1
  22. package/dist/components/Dialog/{subComponents → components}/CancelButton.cjs +3 -2
  23. package/dist/components/Dialog/{subComponents → components}/CancelButton.d.ts +2 -1
  24. package/dist/components/Dialog/{subComponents → components}/CancelButton.js +3 -2
  25. package/dist/components/Dialog/index.cjs +13 -13
  26. package/dist/components/Dialog/index.d.ts +2 -1
  27. package/dist/components/Dialog/index.js +7 -7
  28. package/dist/components/Drawer/index.cjs +9 -9
  29. package/dist/components/EmptyState/index.cjs +11 -11
  30. package/dist/components/GlobalAlert/index.cjs +8 -8
  31. package/dist/components/Label/index.cjs +33 -7
  32. package/dist/components/Label/index.d.ts +9 -2
  33. package/dist/components/Label/index.js +31 -7
  34. package/dist/components/LineChart/CustomLegend.cjs +5 -5
  35. package/dist/components/LineChart/index.js +1 -1
  36. package/dist/components/Link/index.js +1 -1
  37. package/dist/components/List/HeaderCell.js +1 -1
  38. package/dist/components/List/ListContext.cjs +71 -67
  39. package/dist/components/List/ListContext.d.ts +5 -4
  40. package/dist/components/List/ListContext.js +72 -68
  41. package/dist/components/List/Row.cjs +24 -36
  42. package/dist/components/List/Row.js +19 -31
  43. package/dist/components/List/index.cjs +19 -4
  44. package/dist/components/List/index.js +21 -6
  45. package/dist/components/Menu/index.js +1 -1
  46. package/dist/components/MenuV2/MenuContent.cjs +4 -4
  47. package/dist/components/MenuV2/MenuProvider.js +1 -1
  48. package/dist/components/MenuV2/components/Item.cjs +0 -2
  49. package/dist/components/MenuV2/components/Item.js +0 -2
  50. package/dist/components/Notification/index.cjs +6 -10
  51. package/dist/components/Notification/index.js +8 -12
  52. package/dist/components/NumberInput/index.cjs +11 -11
  53. package/dist/components/NumberInputV2/index.cjs +12 -12
  54. package/dist/components/Pagination/PerPage.cjs +7 -7
  55. package/dist/components/PieChart/Legends.js +1 -1
  56. package/dist/components/Popup/index.cjs +21 -9
  57. package/dist/components/Popup/index.js +22 -10
  58. package/dist/components/ProgressBar/index.cjs +6 -6
  59. package/dist/components/Radio/index.cjs +22 -21
  60. package/dist/components/Radio/index.d.ts +1 -1
  61. package/dist/components/Radio/index.js +15 -14
  62. package/dist/components/RadioGroup/index.js +1 -1
  63. package/dist/components/SelectInput/index.cjs +17 -17
  64. package/dist/components/SelectInput/index.js +11 -11
  65. package/dist/components/SelectInputV2/Dropdown.cjs +34 -34
  66. package/dist/components/SelectInputV2/Dropdown.js +10 -10
  67. package/dist/components/SelectInputV2/DropdownOption.cjs +11 -11
  68. package/dist/components/SelectInputV2/SelectBar.cjs +25 -24
  69. package/dist/components/SelectInputV2/SelectBar.d.ts +25 -1
  70. package/dist/components/SelectInputV2/SelectBar.js +13 -12
  71. package/dist/components/SelectInputV2/SelectInputProvider.js +1 -1
  72. package/dist/components/SelectInputV2/index.cjs +9 -9
  73. package/dist/components/SelectInputV2/index.d.ts +1 -1
  74. package/dist/components/SelectInputV2/index.js +3 -3
  75. package/dist/components/SelectableCard/index.cjs +49 -36
  76. package/dist/components/SelectableCard/index.js +43 -30
  77. package/dist/components/SelectableCardGroup/index.js +1 -1
  78. package/dist/components/SelectableCardOptionGroup/Provider.cjs +24 -0
  79. package/dist/components/SelectableCardOptionGroup/Provider.d.ts +15 -0
  80. package/dist/components/SelectableCardOptionGroup/Provider.js +24 -0
  81. package/dist/components/SelectableCardOptionGroup/components/Image.cjs +39 -0
  82. package/dist/components/SelectableCardOptionGroup/components/Image.d.ts +9 -0
  83. package/dist/components/SelectableCardOptionGroup/components/Image.js +37 -0
  84. package/dist/components/SelectableCardOptionGroup/components/Option.cjs +117 -0
  85. package/dist/components/SelectableCardOptionGroup/components/Option.d.ts +16 -0
  86. package/dist/components/SelectableCardOptionGroup/components/Option.js +115 -0
  87. package/dist/components/SelectableCardOptionGroup/index.cjs +67 -0
  88. package/dist/components/SelectableCardOptionGroup/index.d.ts +45 -0
  89. package/dist/components/SelectableCardOptionGroup/index.js +65 -0
  90. package/dist/components/SelectableCardOptionGroup/types.d.ts +1 -0
  91. package/dist/components/Slider/components/DoubleSlider.cjs +14 -14
  92. package/dist/components/Slider/components/DoubleSlider.js +9 -9
  93. package/dist/components/Slider/components/SingleSlider.cjs +24 -16
  94. package/dist/components/Slider/components/SingleSlider.js +20 -12
  95. package/dist/components/Snippet/index.cjs +9 -9
  96. package/dist/components/Stepper/Step.cjs +6 -6
  97. package/dist/components/Stepper/StepperProvider.js +1 -1
  98. package/dist/components/Stepper/index.js +1 -1
  99. package/dist/components/SwitchButton/index.cjs +4 -4
  100. package/dist/components/Table/HeaderCell.cjs +4 -4
  101. package/dist/components/Table/HeaderCell.js +1 -1
  102. package/dist/components/Table/Row.cjs +25 -37
  103. package/dist/components/Table/Row.js +20 -32
  104. package/dist/components/Table/TableContext.js +1 -1
  105. package/dist/components/Table/index.cjs +20 -4
  106. package/dist/components/Table/index.d.ts +6 -5
  107. package/dist/components/Table/index.js +22 -6
  108. package/dist/components/Tabs/Tab.cjs +4 -4
  109. package/dist/components/Tag/index.cjs +10 -10
  110. package/dist/components/Text/index.cjs +4 -3
  111. package/dist/components/Text/index.d.ts +2 -1
  112. package/dist/components/Text/index.js +4 -3
  113. package/dist/components/TextInput/index.cjs +14 -14
  114. package/dist/components/TimeInputV2/index.cjs +7 -7
  115. package/dist/components/TimeInputV2/index.js +2 -2
  116. package/dist/components/Toaster/index.cjs +10 -14
  117. package/dist/components/Toaster/index.js +7 -11
  118. package/dist/components/ToggleGroup/index.js +1 -1
  119. package/dist/components/UnitInput/index.cjs +6 -6
  120. package/dist/components/index.d.ts +1 -0
  121. package/dist/index.cjs +61 -59
  122. package/dist/index.js +2 -0
  123. package/dist/types.d.ts +6 -0
  124. package/package.json +5 -5
  125. package/dist/components/Notification/react-toastify.css.cjs +0 -3
  126. package/dist/components/Notification/react-toastify.css.js +0 -4
  127. package/dist/components/Slider/components/Label.cjs +0 -17
  128. package/dist/components/Slider/components/Label.d.ts +0 -2
  129. package/dist/components/Slider/components/Label.js +0 -17
  130. package/dist/components/Toaster/react-toastify.css.cjs +0 -3
  131. package/dist/components/Toaster/react-toastify.css.js +0 -4
  132. /package/dist/components/Dialog/{subComponents → components}/Button.cjs +0 -0
  133. /package/dist/components/Dialog/{subComponents → components}/Button.d.ts +0 -0
  134. /package/dist/components/Dialog/{subComponents → components}/Button.js +0 -0
  135. /package/dist/components/Dialog/{subComponents → components}/Buttons.cjs +0 -0
  136. /package/dist/components/Dialog/{subComponents → components}/Buttons.d.ts +0 -0
  137. /package/dist/components/Dialog/{subComponents → components}/Buttons.js +0 -0
  138. /package/dist/components/Dialog/{subComponents → components}/Stack.cjs +0 -0
  139. /package/dist/components/Dialog/{subComponents → components}/Stack.d.ts +0 -0
  140. /package/dist/components/Dialog/{subComponents → components}/Stack.js +0 -0
  141. /package/dist/components/Dialog/{subComponents → components}/Text.cjs +0 -0
  142. /package/dist/components/Dialog/{subComponents → components}/Text.d.ts +0 -0
  143. /package/dist/components/Dialog/{subComponents → components}/Text.js +0 -0
@@ -5,7 +5,7 @@ import { forwardRef, useRef, useImperativeHandle, useMemo, useState, useId, useC
5
5
  import { createPortal } from "react-dom";
6
6
  import { isClientSide } from "../../helpers/isClientSide.js";
7
7
  import { animation, exitAnimation } from "./animations.js";
8
- import { DEFAULT_ARROW_WIDTH, DEFAULT_POSITIONS, computePositions } from "./helpers.js";
8
+ import { DEFAULT_POSITIONS, computePositions, DEFAULT_ARROW_WIDTH } from "./helpers.js";
9
9
  function _EMOTION_STRINGIFIED_CSS_ERROR__() {
10
10
  return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).";
11
11
  }
@@ -43,7 +43,7 @@ const StyledPopup = /* @__PURE__ */ _styled("div", process.env.NODE_ENV === "pro
43
43
  positions,
44
44
  reverseAnimation,
45
45
  animationDuration
46
- }) => /* @__PURE__ */ css(animationDuration, "ms ", !reverseAnimation ? animation(positions) : exitAnimation(positions), " forwards;" + (process.env.NODE_ENV === "production" ? "" : ";label:StyledPopup;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1BvcHVwL2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFxRjRFIiwiZmlsZSI6Ii9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1BvcHVwL2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0J1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnXG5pbXBvcnQgdHlwZSB7XG4gIEhUTUxBdHRyaWJ1dGVzLFxuICBLZXlib2FyZEV2ZW50SGFuZGxlcixcbiAgTW91c2VFdmVudEhhbmRsZXIsXG4gIFJlYWN0Tm9kZSxcbiAgUmVmLFxuICBSZWZPYmplY3QsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHtcbiAgZm9yd2FyZFJlZixcbiAgc3RhcnRUcmFuc2l0aW9uLFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VJZCxcbiAgdXNlSW1wZXJhdGl2ZUhhbmRsZSxcbiAgdXNlTWVtbyxcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBjcmVhdGVQb3J0YWwgfSBmcm9tICdyZWFjdC1kb20nXG5pbXBvcnQgeyBpc0NsaWVudFNpZGUgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2lzQ2xpZW50U2lkZSdcbmltcG9ydCB0eXBlIHsgUG9zaXRpb25zVHlwZSB9IGZyb20gJy4vYW5pbWF0aW9ucydcbmltcG9ydCB7IGFuaW1hdGlvbiwgZXhpdEFuaW1hdGlvbiB9IGZyb20gJy4vYW5pbWF0aW9ucydcbmltcG9ydCB0eXBlIHsgUG9wdXBBbGlnbiwgUG9wdXBQbGFjZW1lbnQgfSBmcm9tICcuL2hlbHBlcnMnXG5pbXBvcnQge1xuICBERUZBVUxUX0FSUk9XX1dJRFRILFxuICBERUZBVUxUX1BPU0lUSU9OUyxcbiAgY29tcHV0ZVBvc2l0aW9ucyxcbn0gZnJvbSAnLi9oZWxwZXJzJ1xuXG5jb25zdCBERUZBVUxUX0FOSU1BVElPTl9EVVJBVElPTiA9IDIzMCAvLyBpbiBtc1xuY29uc3QgREVGQVVMVF9ERUJPVU5DRV9EVVJBVElPTiA9IDIwMCAvLyBpbiBtc1xuXG5jb25zdCBub29wID0gKCkgPT4ge31cblxudHlwZSBTdHlsZWRQb3B1cFByb3BzID0ge1xuICBtYXhXaWR0aDogbnVtYmVyIHwgc3RyaW5nXG4gIHBvc2l0aW9uczogUG9zaXRpb25zVHlwZVxuICByZXZlcnNlQW5pbWF0aW9uOiBib29sZWFuXG4gIG1heEhlaWdodD86IG51bWJlciB8IHN0cmluZ1xuICBhbmltYXRpb25EdXJhdGlvbj86IG51bWJlclxuICBpc0RpYWxvZzogYm9vbGVhblxufVxuXG4vKipcbiAqIFRoaXMgZXZlbnQgaGFuZGxlIGFsbG93IHVzIHRvIG5vdCBidWJibGUgdGhlIGV2ZW50IHRvIGRvY3VtZW50LmJvZHkgbGlrZSB0aGlzIHJlYWN0LXNlbGVjdCB3b3JrcyBmaW5lXG4gKi9cbmNvbnN0IHN0b3BDbGlja1Byb3BhZ2F0aW9uOiBNb3VzZUV2ZW50SGFuZGxlciA9IGV2ZW50ID0+IHtcbiAgZXZlbnQubmF0aXZlRXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKClcbn1cblxuY29uc3QgU3R5bGVkUG9wdXAgPSBzdHlsZWQoJ2RpdicsIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT5cbiAgICAhW1xuICAgICAgJ21heFdpZHRoJyxcbiAgICAgICdwb3NpdGlvbnMnLFxuICAgICAgJ3JldmVyc2VBbmltYXRpb24nLFxuICAgICAgJ21heEhlaWdodCcsXG4gICAgICAnYW5pbWF0aW9uRHVyYXRpb24nLFxuICAgICAgJ2lzRGlhbG9nJyxcbiAgICBdLmluY2x1ZGVzKHByb3ApLFxufSk8U3R5bGVkUG9wdXBQcm9wcz5gXG4gIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFN0cm9uZ2VyfTtcbiAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFN0cm9uZ2VyfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1heC13aWR0aDogJHsoeyBtYXhXaWR0aCB9KSA9PlxuICAgIHR5cGVvZiBtYXhXaWR0aCA9PT0gJ251bWJlcicgPyBgJHttYXhXaWR0aH1weGAgOiBtYXhXaWR0aH07XG4gIG1heC1oZWlnaHQ6ICR7KHsgbWF4SGVpZ2h0IH0pID0+XG4gICAgdHlwZW9mIG1heEhlaWdodCA9PT0gJ251bWJlcicgPyBgJHttYXhIZWlnaHR9cHhgIDogbWF4SGVpZ2h0fTtcbiAgb3ZlcmZsb3c6ICR7KHsgbWF4SGVpZ2h0IH0pID0+IChtYXhIZWlnaHQgPyAnYXV0bycgOiB1bmRlZmluZWQpfTtcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbiAgZm9udC1zaXplOiAwLjhyZW07XG4gIGluc2V0OiAwIGF1dG8gYXV0byAwO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIG9wYWNpdHk6IDA7XG4gIHotaW5kZXg6IDE7XG4gIHRyYW5zZm9ybTogJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLnBvcHVwUG9zaXRpb259O1xuXG4gICZbZGF0YS1hbmltYXRlZD1cInRydWVcIl0ge1xuICAgIGFuaW1hdGlvbjogJHsoeyBwb3NpdGlvbnMsIHJldmVyc2VBbmltYXRpb24sIGFuaW1hdGlvbkR1cmF0aW9uIH0pID0+IGNzc2BcbiAgICAgICR7YW5pbWF0aW9uRHVyYXRpb259bXMgJHtcbiAgICAgICAgIXJldmVyc2VBbmltYXRpb24gPyBhbmltYXRpb24ocG9zaXRpb25zKSA6IGV4aXRBbmltYXRpb24ocG9zaXRpb25zKVxuICAgICAgfSBmb3J3YXJkc1xuICAgIGB9O1xuICB9XG5cbiAgJltkYXRhLWhhcy1hcnJvdz1cInRydWVcIl0ge1xuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAkeyh7IHBvc2l0aW9ucyB9KSA9PiBwb3NpdGlvbnMuYXJyb3dUb3B9cHg7XG4gICAgICBsZWZ0OiAkeyh7IHBvc2l0aW9ucyB9KSA9PiBwb3NpdGlvbnMuYXJyb3dMZWZ0fXB4O1xuICAgICAgdHJhbnNmb3JtOiAkeyh7IHBvc2l0aW9ucyB9KSA9PiBwb3NpdGlvbnMuYXJyb3dUcmFuc2Zvcm19XG4gICAgICAgIHJvdGF0ZSgkeyh7IHBvc2l0aW9ucyB9KSA9PiBwb3NpdGlvbnMucm90YXRlfWRlZyk7XG4gICAgICBtYXJnaW4tbGVmdDogLSR7REVGQVVMVF9BUlJPV19XSURUSH1weDtcbiAgICAgIGJvcmRlci13aWR0aDogJHtERUZBVUxUX0FSUk9XX1dJRFRIfXB4O1xuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgIGJvcmRlci1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kU3Ryb25nZXJ9XG4gICAgICAgIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLXZpc2libGUtaW4tZG9tPVwiZmFsc2VcIl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkQ2hpbGRyZW5Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBpbmhlcml0O1xuXG4gICZbZGF0YS1jb250YWluZXItZnVsbC13aWR0aD1cInRydWVcIl0ge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5gXG5cbnR5cGUgUG9wdXBQcm9wcyA9IHtcbiAgLyoqXG4gICAqIElkIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGlmIG5vdCBzZXQuIEl0IGlzIHVzZWQgZm9yIGFzc29jaWF0aW5nIHBvcHVwIHdyYXBwZXIgd2l0aCBwb3B1cCBwb3J0YWwuXG4gICAqL1xuICBpZD86IHN0cmluZ1xuICBjaGlsZHJlbjpcbiAgICB8IFJlYWN0Tm9kZVxuICAgIHwgKChyZW5kZXJQcm9wczoge1xuICAgICAgICBjbGFzc05hbWU/OiBzdHJpbmdcbiAgICAgICAgb25CbHVyOiAoKSA9PiB2b2lkXG4gICAgICAgIG9uRm9jdXM6ICgpID0+IHZvaWRcbiAgICAgICAgb25Qb2ludGVyRW50ZXI6ICgpID0+IHZvaWRcbiAgICAgICAgb25Qb2ludGVyTGVhdmU6ICgpID0+IHZvaWRcbiAgICAgICAgcmVmOiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQgfCBudWxsPlxuICAgICAgfSkgPT4gUmVhY3ROb2RlKVxuICBtYXhXaWR0aD86IG51bWJlciB8IHN0cmluZ1xuICAvKipcbiAgICogYGF1dG9gIHBsYWNlbWVudCB3aWxsIGNoYW5nZSB0aGUgcG9zaXRpb24gb2YgdGhlIHBvcHVwIGlmIGl0IGRvZXNuJ3QgZml0IGluIHRoZSB2aWV3cG9ydC5cbiAgICovXG4gIHBsYWNlbWVudD86IFBvcHVwUGxhY2VtZW50XG4gIC8qKlxuICAgKiBBbGlnbiB0aGUgcG9wdXAgdG8gdGhlIHN0YXJ0IG9yIGNlbnRlciBvZiB0aGUgY2hpbGRyZW4uXG4gICAqL1xuICBhbGlnbj86IFBvcHVwQWxpZ25cbiAgLyoqXG4gICAqIENvbnRlbnQgb2YgdGhlIHBvcHVwLCBwcmVmZXJhYmx5IHRleHQgaW5zaWRlLlxuICAgKi9cbiAgdGV4dD86IFJlYWN0Tm9kZVxuICBjbGFzc05hbWU/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHdpbGwgYWRkIGB3aWR0aDogMTAwJWAgdG8gdGhlIHBvcHVwIGNvbnRhaW5lci5cbiAgICovXG4gIGNvbnRhaW5lckZ1bGxXaWR0aD86IGJvb2xlYW5cbiAgLyoqXG4gICAqIEl0IHdpbGwgZm9yY2UgZGlzcGxheSBwb3B1cC4gVGhpcyBjYW4gYmUgdXNlZnVsIGlmIHlvdSBuZWVkIHRvIGFsd2F5cyBkaXNwbGF5IHRoZSBwb3B1cCB3aXRob3V0IGhvdmVyIG5lZWRlZC5cbiAgICovXG4gIHZpc2libGU/OiBib29sZWFuXG4gIGlubmVyUmVmPzogUmVmPEhUTUxEaXZFbGVtZW50IHwgbnVsbD5cbiAgcm9sZT86IHN0cmluZ1xuICAnZGF0YS10ZXN0aWQnPzogc3RyaW5nXG4gIGhhc0Fycm93PzogYm9vbGVhblxuICBvbkNsb3NlPzogKCkgPT4gdm9pZFxuICB0YWJJbmRleD86IG51bWJlclxuICBvbktleURvd24/OiBLZXlib2FyZEV2ZW50SGFuZGxlclxuICAnYXJpYS1oYXNwb3B1cCc/OiBIVE1MQXR0cmlidXRlczxIVE1MRGl2RWxlbWVudD5bJ2FyaWEtaGFzcG9wdXAnXVxuICBoaWRlT25DbGlja091dHNpZGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugc2V0IGRlYm91bmNlVGltZSB0byBmYWxzZSwgdGhlIHBvcHVwIHdpbGwgbm90IGRlYm91bmNlIHRoZSBob3ZlciBldmVudCBhbmQgd2lsbCBiZSBkaXNwbGF5ZWQgaW5zdGFudGx5LlxuICAgKiBJZiBzZXQgdG8gMCBpdCB3aWxsIGRpc2FibGUgZGVib3VuY2UuXG4gICAqL1xuICBkZWJvdW5jZURlbGF5PzogbnVtYmVyXG4gIC8qKlxuICAgKiBJZiB5b3Ugc2V0IGEgbWF4IGhlaWdodCBrZWVwIGluIG1pbmQgdGhhdCB0aGUgYW5pbWF0aW9uIGlzIGRpc2FibGVkLCBvciBpdCB3aWxsIG5vdCB3b3JrIHByb3Blcmx5IG9uIHNvbWUgYnJvd3NlcnMuXG4gICAqL1xuICBtYXhIZWlnaHQ/OiBzdHJpbmcgfCBudW1iZXJcbiAgLyoqXG4gICAqIFdpbGwgcmVtb3ZlIHRoZSBhbmltYXRpb24gb24gdGhlIHBvcHVwIGlmIHNldCB0byBmYWxzZS5cbiAgICovXG4gIGRpc2FibGVBbmltYXRpb24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBCeSBkZWZhdWx0LCB0aGUgcG9ydGFsIHRhcmdldCBpcyBjaGlsZHJlbiBjb250YWluZXIgb3IgZG9jdW1lbnQuYm9keSBpZiBjaGlsZHJlbiBpcyBhIGZ1bmN0aW9uLiBZb3UgY2FuIG92ZXJyaWRlIHRoaXNcbiAgICogYmVoYXZpb3IgYnkgc2V0dGluZyBhIHBvcnRhbFRhcmdldCBwcm9wLlxuICAgKi9cbiAgcG9ydGFsVGFyZ2V0PzogSFRNTEVsZW1lbnRcbiAgLyoqXG4gICAqIElmIHlvdSBzZXQgdGhpcyB0byB0cnVlLCB0aGUgcG9wdXAgd2lsbCBiZSByZW5kZXJlZCBpbiB0aGUgRE9NIG9ubHkgd2hlbiBpdCBpcyB2aXNpYmxlLlxuICAgKiBXaGVuIHNldCB0byBmYWxzZSwgdGhlIHBvcHVwIHdpbGwgYWx3YXlzIGJlIHJlbmRlcmVkIGluIHRoZSBET00uIEJ5IGRlZmF1bHQgdGhpcyB2YWx1ZSBpcyBzZXQgdG8gYHRydWVgLCBpZiBmb3Igc29tZVxuICAgKiByZWFzb24geW91IG5lZWQgdG8gZGlzYWJsZSBpdCwgeW91IGNhbiBzZXQgaXQgdG8gYGZhbHNlYC5cbiAgICovXG4gIGR5bmFtaWNEb21SZW5kZXJpbmc/OiBib29sZWFuXG59XG5cbi8qKlxuICogQGV4cGVyaW1lbnRhbCBUaGlzIGNvbXBvbmVudCBpcyBleHBlcmltZW50YWwgYW5kIG1heSBiZSBzdWJqZWN0IHRvIGJyZWFraW5nIGNoYW5nZXMgaW4gdGhlIGZ1dHVyZS5cbiAqL1xuZXhwb3J0IGNvbnN0IFBvcHVwID0gZm9yd2FyZFJlZihcbiAgKFxuICAgIHtcbiAgICAgIGNoaWxkcmVuLFxuICAgICAgdGV4dCA9ICcnLFxuICAgICAgcGxhY2VtZW50ID0gJ2F1dG8nLFxuICAgICAgYWxpZ24gPSAnY2VudGVyJyxcbiAgICAgIGlkLFxuICAgICAgY2xhc3NOYW1lLFxuICAgICAgY29udGFpbmVyRnVsbFdpZHRoLFxuICAgICAgbWF4V2lkdGggPSAnMTQuNXJlbScsXG4gICAgICBtYXhIZWlnaHQsXG4gICAgICB2aXNpYmxlLFxuICAgICAgaW5uZXJSZWYsXG4gICAgICByb2xlID0gJ3BvcHVwJyxcbiAgICAgICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG4gICAgICBoYXNBcnJvdyA9IHRydWUsXG4gICAgICBvbkNsb3NlLFxuICAgICAgdGFiSW5kZXggPSAwLFxuICAgICAgb25LZXlEb3duLFxuICAgICAgJ2FyaWEtaGFzcG9wdXAnOiBhcmlhSGFzUG9wdXAsXG4gICAgICBoaWRlT25DbGlja091dHNpZGUgPSBmYWxzZSxcbiAgICAgIGRlYm91bmNlRGVsYXkgPSBERUZBVUxUX0RFQk9VTkNFX0RVUkFUSU9OLFxuICAgICAgZGlzYWJsZUFuaW1hdGlvbiA9IGZhbHNlLFxuICAgICAgcG9ydGFsVGFyZ2V0LFxuICAgICAgZHluYW1pY0RvbVJlbmRlcmluZyA9IHRydWUsXG4gICAgfTogUG9wdXBQcm9wcyxcbiAgICByZWY6IFJlZjxIVE1MRGl2RWxlbWVudD4sXG4gICkgPT4ge1xuICAgIGNvbnN0IGNoaWxkcmVuUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICAgIHVzZUltcGVyYXRpdmVIYW5kbGUoaW5uZXJSZWYsICgpID0+IGNoaWxkcmVuUmVmLmN1cnJlbnQgYXMgSFRNTERpdkVsZW1lbnQpXG5cbiAgICBjb25zdCBpbm5lclBvcHVwUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICAgIHVzZUltcGVyYXRpdmVIYW5kbGUocmVmLCAoKSA9PiBpbm5lclBvcHVwUmVmLmN1cnJlbnQgYXMgSFRNTERpdkVsZW1lbnQpXG5cbiAgICBjb25zdCB0aW1lciA9IHVzZVJlZjxSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0Pj4odW5kZWZpbmVkKVxuICAgIGNvbnN0IHBvcHVwUG9ydGFsVGFyZ2V0ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAocG9ydGFsVGFyZ2V0KSByZXR1cm4gcG9ydGFsVGFyZ2V0XG5cbiAgICAgIGlmIChyb2xlID09PSAnZGlhbG9nJykge1xuICAgICAgICBpZiAoY2hpbGRyZW5SZWYuY3VycmVudCkgcmV0dXJuIGNoaWxkcmVuUmVmLmN1cnJlbnRcbiAgICAgICAgaWYgKGlzQ2xpZW50U2lkZSkgcmV0dXJuIGRvY3VtZW50LmJvZHlcblxuICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgfVxuXG4gICAgICAvLyBXZSBjaGVjayBpZiB3aW5kb3cgZXhpc3RzIGZvciBTU1JcbiAgICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICByZXR1cm4gZG9jdW1lbnQuYm9keVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbnVsbFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICAgIH0sIFtwb3J0YWxUYXJnZXQsIHJvbGUsIGNoaWxkcmVuUmVmLmN1cnJlbnRdKVxuXG4gICAgLy8gVGhlcmUgYXJlIHNvbWUgaXNzdWUgd2hlbiBtaXhpbmcgYW5pbWF0aW9uIGFuZCBtYXhIZWlnaHQgb24gc29tZSBicm93c2Vycywgc28gd2UgZGlzYWJsZSBhbmltYXRpb24gaWYgbWF4SGVpZ2h0IGlzIHNldC5cbiAgICBjb25zdCBhbmltYXRpb25EdXJhdGlvbiA9XG4gICAgICBkaXNhYmxlQW5pbWF0aW9uIHx8IG1heEhlaWdodCA/IDAgOiBERUZBVUxUX0FOSU1BVElPTl9EVVJBVElPTlxuXG4gICAgLy8gRGVib3VuY2UgdGltZXIgd2lsbCBiZSB1c2VkIHRvIHByZXZlbnQgdGhlIHBvcHVwIGZyb20gZmxpY2tlcmluZyB3aGVuIHRoZSB1c2VyIG1vdmVzIHRoZSBtb3VzZSBvdXQgYW5kIGluIHRoZSBjaGlsZHJlbiBlbGVtZW50LlxuICAgIGNvbnN0IGRlYm91bmNlVGltZXIgPSB1c2VSZWY8UmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4+KHVuZGVmaW5lZClcbiAgICBjb25zdCBbdmlzaWJsZUluRG9tLCBzZXRWaXNpYmxlSW5Eb21dID0gdXNlU3RhdGUoZmFsc2UpXG4gICAgY29uc3QgW3JldmVyc2VBbmltYXRpb24sIHNldFJldmVyc2VBbmltYXRpb25dID0gdXNlU3RhdGUoZmFsc2UpXG4gICAgY29uc3QgW3Bvc2l0aW9ucywgc2V0UG9zaXRpb25zXSA9IHVzZVN0YXRlPFBvc2l0aW9uc1R5cGU+KHtcbiAgICAgIC4uLkRFRkFVTFRfUE9TSVRJT05TLFxuICAgIH0pXG4gICAgY29uc3QgdW5pcXVlSWQgPSB1c2VJZCgpXG4gICAgY29uc3QgZ2VuZXJhdGVkSWQgPSBpZCA/PyB1bmlxdWVJZFxuICAgIGNvbnN0IGlzQ29udHJvbGxlZCA9IHZpc2libGUgIT09IHVuZGVmaW5lZFxuXG4gICAgY29uc3QgZ2VuZXJhdGVQb3B1cFBvc2l0aW9ucyA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmIChjaGlsZHJlblJlZi5jdXJyZW50ICYmIGlubmVyUG9wdXBSZWYuY3VycmVudCkge1xuICAgICAgICBzZXRQb3NpdGlvbnMoXG4gICAgICAgICAgY29tcHV0ZVBvc2l0aW9ucyh7XG4gICAgICAgICAgICBjaGlsZHJlblJlZixcbiAgICAgICAgICAgIHBsYWNlbWVudCxcbiAgICAgICAgICAgIHBvcHVwUmVmOiBpbm5lclBvcHVwUmVmLFxuICAgICAgICAgICAgcG9wdXBQb3J0YWxUYXJnZXQ6IHBvcHVwUG9ydGFsVGFyZ2V0IGFzIEhUTUxFbGVtZW50LFxuICAgICAgICAgICAgaGFzQXJyb3csXG4gICAgICAgICAgICBhbGlnbixcbiAgICAgICAgICB9KSxcbiAgICAgICAgKVxuICAgICAgfVxuICAgIH0sIFtoYXNBcnJvdywgcGxhY2VtZW50LCBwb3B1cFBvcnRhbFRhcmdldCwgYWxpZ25dKVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiB3ZSBuZWVkIHRvIHJlY29tcHV0ZSBwb3NpdGlvbnMgb2YgcG9wdXAgZHVlIHRvIHdpbmRvdyBzY3JvbGwgb3IgcmVzaXplLlxuICAgICAqL1xuICAgIGNvbnN0IG9uV2luZG93Q2hhbmdlRGV0ZWN0ZWQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICAvLyBXZSByZW1vdmUgYW5pbWF0aW9uIG9uIHNjcm9sbCBvciB0aGUgYW5pbWF0aW9uIHdpbGwgcmVzdGFydCBvbiBldmVyeSBzY3JvbGxcbiAgICAgIGlmIChpbm5lclBvcHVwUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgaW5uZXJQb3B1cFJlZi5jdXJyZW50LnN0eWxlLmFuaW1hdGlvbiA9ICdub25lJ1xuICAgICAgfVxuXG4gICAgICBnZW5lcmF0ZVBvcHVwUG9zaXRpb25zKClcbiAgICB9LCBbZ2VuZXJhdGVQb3B1cFBvc2l0aW9ucywgaW5uZXJQb3B1cFJlZl0pXG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHdlIG5lZWQgdG8gcmVtb3ZlIHBvcHVwIHBvcnRhbCBmcm9tIERPTSBhbmQgcmVtb3ZlIGV2ZW50IGxpc3RlbmVyIHRvIGl0LlxuICAgICAqL1xuICAgIGNvbnN0IHVubW91bnRQb3B1cEZyb21Eb20gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBzZXRWaXNpYmxlSW5Eb20oZmFsc2UpXG4gICAgICBzZXRSZXZlcnNlQW5pbWF0aW9uKGZhbHNlKVxuXG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgb25XaW5kb3dDaGFuZ2VEZXRlY3RlZCwgdHJ1ZSlcbiAgICB9LCBbb25XaW5kb3dDaGFuZ2VEZXRlY3RlZF0pXG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHdlIG5lZWQgdG8gaGlkZSBwb3B1cC4gQSB0aW1lb3V0IGlzIHNldCB0byBhbGxvdyBhbmltYXRpb24gZW5kLCB0aGVuIHJlbW92ZVxuICAgICAqIHBvcHVwIGZyb20gZG9tLlxuICAgICAqL1xuICAgIGNvbnN0IGNsb3NlUG9wdXAgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBkZWJvdW5jZVRpbWVyLmN1cnJlbnQgPSBzZXRUaW1lb3V0KFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgc2V0UmV2ZXJzZUFuaW1hdGlvbih0cnVlKVxuICAgICAgICAgIHRpbWVyLmN1cnJlbnQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHVubW91bnRQb3B1cEZyb21Eb20oKVxuICAgICAgICAgICAgb25DbG9zZT8uKClcbiAgICAgICAgICB9LCBhbmltYXRpb25EdXJhdGlvbilcbiAgICAgICAgfSxcbiAgICAgICAgZGVib3VuY2VEZWxheSAmJiAhZGlzYWJsZUFuaW1hdGlvbiA/IGRlYm91bmNlRGVsYXkgOiAwLFxuICAgICAgKVxuICAgIH0sIFtcbiAgICAgIGFuaW1hdGlvbkR1cmF0aW9uLFxuICAgICAgZGlzYWJsZUFuaW1hdGlvbixcbiAgICAgIGRlYm91bmNlRGVsYXksXG4gICAgICBvbkNsb3NlLFxuICAgICAgdW5tb3VudFBvcHVwRnJvbURvbSxcbiAgICBdKVxuXG4gICAgLyoqXG4gICAgICogV2hlbiBtb3VzZSBob3ZlciBvciBzdG9wIGhvdmVyaW5nIGNoaWxkcmVuIHRoaXMgZnVuY3Rpb24gZGlzcGxheSBvciBoaWRlIHBvcHVwLiBBIHRpbWVvdXQgaXMgc2V0IHRvIGFsbG93IGFuaW1hdGlvblxuICAgICAqIGVuZCwgdGhlbiByZW1vdmUgcG9wdXAgZnJvbSBkb20uXG4gICAgICovXG4gICAgY29uc3Qgb25Qb2ludGVyRXZlbnQgPSB1c2VDYWxsYmFjayhcbiAgICAgIChpc1Zpc2libGU6IGJvb2xlYW4pID0+ICgpID0+IHtcbiAgICAgICAgLy8gSWYgdGhlcmUgaXMgYSBkZWJvdW5jZURlbGF5IGFuZCB0aGUgcG9wdXAgaXMgbm90IHZpc2libGUsIHdlIGNsZWFyIHRoZSBkZWJvdW5jZSB0aW1lclxuICAgICAgICBpZiAoIXZpc2libGUgJiYgZGVib3VuY2VEZWxheSA+IDAgJiYgZGVib3VuY2VUaW1lci5jdXJyZW50KSB7XG4gICAgICAgICAgY2xlYXJUaW1lb3V0KGRlYm91bmNlVGltZXIuY3VycmVudClcbiAgICAgICAgICBkZWJvdW5jZVRpbWVyLmN1cnJlbnQgPSB1bmRlZmluZWRcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRoaXMgY29uZGl0aW9uIGlzIGZvciB3aGVuIHdlIHdhbnQgdG8gdW5tb3VudCB0aGUgcG9wdXBcbiAgICAgICAgLy8gVGhlcmUgaXMgZGVib3VuY2UgaW4gb3JkZXIgdG8gYXZvaWQgcG9wdXAgdG8gZmxpY2tlciB3aGVuIHdlIG1vdmUgdGhlIG1vdXNlIGZyb20gY2hpbGRyZW4gdG8gcG9wdXBcbiAgICAgICAgLy8gVGltZXIgaXMgdXNlZCB0byBmb2xsb3cgdGhlIGFuaW1hdGlvbiBkdXJhdGlvblxuICAgICAgICBpZiAoIWlzVmlzaWJsZSAmJiBpbm5lclBvcHVwUmVmLmN1cnJlbnQgJiYgIWRlYm91bmNlVGltZXIuY3VycmVudCkge1xuICAgICAgICAgIGNsb3NlUG9wdXAoKVxuICAgICAgICB9IGVsc2UgaWYgKGlzVmlzaWJsZSkge1xuICAgICAgICAgIC8vIFRoaXMgY29uZGl0aW9uIGlzIGZvciB3aGVuIHdlIHdhbnQgdG8gbW91bnQgdGhlIHBvcHVwXG4gICAgICAgICAgLy8gSWYgdGhlIHRpbWVyIGV4aXN0cyBpdCBtZWFucyB0aGUgcG9wdXAgd2FzIGFib3V0IHRvIHVtb3VudCwgYnV0IHdlIGhvdmVyZWQgdGhlIGNoaWxkcmVuIGFnYWluLFxuICAgICAgICAgIC8vIHNvIHdlIGNsZWFyIHRoZSB0aW1lciBhbmQgdGhlIHBvcHVwIHdpbGwgbm90IGJlIHVubW91bnRlZFxuICAgICAgICAgIGlmICh0aW1lci5jdXJyZW50KSB7XG4gICAgICAgICAgICBzZXRSZXZlcnNlQW5pbWF0aW9uKGZhbHNlKVxuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVyLmN1cnJlbnQpXG4gICAgICAgICAgICB0aW1lci5jdXJyZW50ID0gdW5kZWZpbmVkXG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIEFuZCBoZXJlIGlzIHdoZW4gd2UgY3VycmVudGx5IGFyZSBpbiBhIGRlYm91bmNlIHRpbWVyLCBpdCBtZWFucyBwb3B1cCB3YXMgaG92ZXJlZCBkdXJpbmdcbiAgICAgICAgICAvLyB0aGF0IHBlcmlvZCwgYW5kIHNvIHdlIGNhbiBjbGVhciBkZWJvdW5jZSB0aW1lclxuICAgICAgICAgIGlmIChkZWJvdW5jZVRpbWVyLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dChkZWJvdW5jZVRpbWVyLmN1cnJlbnQpXG4gICAgICAgICAgICBkZWJvdW5jZVRpbWVyLmN1cnJlbnQgPSB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGRlYm91bmNlRGVsYXkgPiAwKSB7XG4gICAgICAgICAgICBkZWJvdW5jZVRpbWVyLmN1cnJlbnQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgc2V0VmlzaWJsZUluRG9tKHRydWUpXG4gICAgICAgICAgICB9LCBkZWJvdW5jZURlbGF5KVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdGFydFRyYW5zaXRpb24oKCkgPT4ge1xuICAgICAgICAgICAgICBzZXRWaXNpYmxlSW5Eb20odHJ1ZSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgW2Nsb3NlUG9wdXAsIGRlYm91bmNlRGVsYXksIHZpc2libGVdLFxuICAgIClcblxuICAgIC8qKlxuICAgICAqIE9uY2UgcG9wdXAgaXMgdmlzaWJsZSBpbiB0aGUgZG9tIHdlIGNhbiBjb21wdXRlIHBvc2l0aW9ucywgdGhlbiBzZXQgaXQgdmlzaWJsZSBvbiBzY3JlZW4gYW5kIGFkZCBldmVudCB0b1xuICAgICAqIHJlY29tcHV0ZSBwb3NpdGlvbnMgb24gc2Nyb2xsIG9yIHNjcmVlbiByZXNpemUuXG4gICAgICovXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICh2aXNpYmxlSW5Eb20pIHtcbiAgICAgICAgZ2VuZXJhdGVQb3B1cFBvc2l0aW9ucygpXG5cbiAgICAgICAgaWYgKHBvcHVwUG9ydGFsVGFyZ2V0ID09PSBkb2N1bWVudC5ib2R5KSB7XG4gICAgICAgICAgLy8gV2Ugd2FudCB0byBkZXRlY3Qgc2Nyb2xsIGFuZCByZXNpemUgaW4gb3JkZXIgdG8gcmVjb21wdXRlIHBvc2l0aW9ucyBvZiBwb3B1cFxuICAgICAgICAgIC8vIEFkZGluZyB0cnVlIGFzIHRoaXJkIHBhcmFtZXRlciB0byBldmVudCBsaXN0ZW5lciB3aWxsIGRldGVjdCBuZXN0ZWQgc2Nyb2xscy5cbiAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgb25XaW5kb3dDaGFuZ2VEZXRlY3RlZCwgdHJ1ZSlcbiAgICAgICAgfVxuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgb25XaW5kb3dDaGFuZ2VEZXRlY3RlZCwgdHJ1ZSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIG9uV2luZG93Q2hhbmdlRGV0ZWN0ZWQsIHRydWUpXG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCBvbldpbmRvd0NoYW5nZURldGVjdGVkLCB0cnVlKVxuICAgICAgICBpZiAodGltZXIuY3VycmVudCkge1xuICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lci5jdXJyZW50KVxuICAgICAgICAgIHRpbWVyLmN1cnJlbnQgPSB1bmRlZmluZWRcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sIFtcbiAgICAgIGdlbmVyYXRlUG9wdXBQb3NpdGlvbnMsXG4gICAgICBvbldpbmRvd0NoYW5nZURldGVjdGVkLFxuICAgICAgdmlzaWJsZUluRG9tLFxuICAgICAgbWF4V2lkdGgsXG4gICAgICBwb3B1cFBvcnRhbFRhcmdldCxcbiAgICBdKVxuXG4gICAgLy8gVGhpcyB3aWxsIGJlIHRyaWdnZXJlZCB3aGVuIHBvc2l0aW9ucyBhcmUgY29tcHV0ZWQgYW5kIHBvcHVwIGlzIHZpc2libGUgaW4gdGhlIGRvbS5cbiAgICB1c2VFZmZlY3QoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGlmICh2aXNpYmxlSW5Eb20gJiYgaW5uZXJQb3B1cFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgaW5uZXJQb3B1cFJlZi5jdXJyZW50LnN0eWxlLm9wYWNpdHkgPSAnMSdcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICAgIFtwb3NpdGlvbnNdLFxuICAgIClcblxuICAgIC8qKlxuICAgICAqIElmIHBvcHVwIGhhcyBgdmlzaWJsZWAgcHJvcCBpdCBtZWFucyB0aGUgcG9wdXAgaXMgbWFudWFsbHkgY29udHJvbGxlZCB0aHJvdWdoIHRoaXMgcHJvcC5cbiAgICAgKiBJbiB0aGlzIGNhcyB3ZSBkb24ndCB3YW50IHRvIGRpc3BsYXkgcG9wdXAgb24gaG92ZXIsIGJ1dCBvbmx5IHdoZW4gYHZpc2libGVgIGlzIHRydWUuXG4gICAgICovXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChpc0NvbnRyb2xsZWQpIHtcbiAgICAgICAgb25Qb2ludGVyRXZlbnQodmlzaWJsZSkoKVxuICAgICAgfVxuICAgIH0sIFtpc0NvbnRyb2xsZWQsIG9uUG9pbnRlckV2ZW50LCB2aXNpYmxlXSlcblxuICAgIC8vIEhhbmRsZSBoaWRlIG9uIGVzYyBwcmVzcyBhbmQgaGlkZSBvbiBjbGljayBvdXRzaWRlXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGhhbmRsZUVzY1ByZXNzID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgICAgY2xvc2VQb3B1cCgpXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgaGFuZGxlQ2xpY2tPdXRzaWRlID0gKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IHBvcHVwQ3VycmVudCA9IGlubmVyUG9wdXBSZWYuY3VycmVudFxuICAgICAgICBjb25zdCBjaGlsZHJlbkN1cnJlbnQgPSBjaGlsZHJlblJlZi5jdXJyZW50XG5cbiAgICAgICAgaWYgKHBvcHVwQ3VycmVudCAmJiBoaWRlT25DbGlja091dHNpZGUgJiYgIWV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBldmVudC50YXJnZXQgJiZcbiAgICAgICAgICAgIGV2ZW50LnRhcmdldCAhPT0gcG9wdXBDdXJyZW50ICYmXG4gICAgICAgICAgICBldmVudC50YXJnZXQgIT09IGNoaWxkcmVuQ3VycmVudCAmJlxuICAgICAgICAgICAgIWNoaWxkcmVuQ3VycmVudD8uY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgICAhcG9wdXBDdXJyZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBOb2RlKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgICAgIGNsb3NlUG9wdXAoKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHZpc2libGVJbkRvbSkge1xuICAgICAgICBkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoJ2tleXVwJywgaGFuZGxlRXNjUHJlc3MpXG4gICAgICAgIGRvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBoYW5kbGVDbGlja091dHNpZGUpXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5dXAnLCBoYW5kbGVFc2NQcmVzcylcbiAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIGhhbmRsZUNsaWNrT3V0c2lkZSlcbiAgICAgIH1cbiAgICB9LCBbXG4gICAgICBjbG9zZVBvcHVwLFxuICAgICAgdmlzaWJsZUluRG9tLFxuICAgICAgaW5uZXJQb3B1cFJlZixcbiAgICAgIGNoaWxkcmVuUmVmLFxuICAgICAgaGlkZU9uQ2xpY2tPdXRzaWRlLFxuICAgIF0pXG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGV2ZW50IHdpbGwgb2NjdXIgb25seSBmb3IgZGlhbG9nIGFuZCB3aWxsIHRyYXAgZm9jdXMgaW5zaWRlIHRoZSBkaWFsb2cuXG4gICAgICovXG4gICAgY29uc3QgaGFuZGxlRm9jdXNUcmFwOiBLZXlib2FyZEV2ZW50SGFuZGxlciA9IHVzZUNhbGxiYWNrKGV2ZW50ID0+IHtcbiAgICAgIGNvbnN0IGlzVGFiUHJlc3NlZCA9IGV2ZW50LmtleSA9PT0gJ1RhYidcbiAgICAgIGlmICghaXNUYWJQcmVzc2VkKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcblxuICAgICAgY29uc3QgZm9jdXNhYmxlRWxzID1cbiAgICAgICAgaW5uZXJQb3B1cFJlZi5jdXJyZW50Py5xdWVyeVNlbGVjdG9yQWxsKFxuICAgICAgICAgICdhW2hyZWZdOm5vdChbZGlzYWJsZWRdKSwgYnV0dG9uOm5vdChbZGlzYWJsZWRdKSwgdGV4dGFyZWE6bm90KFtkaXNhYmxlZF0pLCBpbnB1dDpub3QoW2Rpc2FibGVkXSksIHNlbGVjdDpub3QoW2Rpc2FibGVkXSknLFxuICAgICAgICApID8/IFtdXG5cbiAgICAgIC8vIEhhbmRsZSBjYXNlIHdoZW4gbm8gaW50ZXJhY3RpdmUgZWxlbWVudCBhcmUgd2l0aGluIHRoZSBtb2RhbCAoaW5jbHVkaW5nIGNsb3NlIGljb24pXG4gICAgICBpZiAoZm9jdXNhYmxlRWxzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGZpcnN0Rm9jdXNhYmxlRWwgPSBmb2N1c2FibGVFbHNbMF0gYXMgSFRNTEVsZW1lbnRcbiAgICAgIGNvbnN0IGxhc3RGb2N1c2FibGVFbCA9IGZvY3VzYWJsZUVsc1tcbiAgICAgICAgZm9jdXNhYmxlRWxzLmxlbmd0aCAtIDFcbiAgICAgIF0gYXMgSFRNTEVsZW1lbnRcblxuICAgICAgaWYgKGV2ZW50LnNoaWZ0S2V5KSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBmaXJzdEZvY3VzYWJsZUVsIHx8XG4gICAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gaW5uZXJQb3B1cFJlZi5jdXJyZW50XG4gICAgICAgICkge1xuICAgICAgICAgIGxhc3RGb2N1c2FibGVFbC5mb2N1cygpXG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKFxuICAgICAgICBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBsYXN0Rm9jdXNhYmxlRWwgfHxcbiAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gaW5uZXJQb3B1cFJlZi5jdXJyZW50XG4gICAgICApIHtcbiAgICAgICAgZmlyc3RGb2N1c2FibGVFbC5mb2N1cygpXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgIH1cbiAgICB9LCBbXSlcblxuICAgIC8qKlxuICAgICAqIFdpbGwgcmVuZGVyIGNoaWxkcmVuIGNvbmRpdGlvbmFsbHkgaWYgY2hpbGRyZW4gaXMgYSBmdW5jdGlvbiBvciBub3QuXG4gICAgICovXG4gICAgY29uc3QgcmVuZGVyQ2hpbGRyZW4gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBpZiAodHlwZW9mIGNoaWxkcmVuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiBjaGlsZHJlbih7XG4gICAgICAgICAgb25CbHVyOiAhaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQoZmFsc2UpIDogbm9vcCxcbiAgICAgICAgICBvbkZvY3VzOiAhaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQodHJ1ZSkgOiBub29wLFxuICAgICAgICAgIG9uUG9pbnRlckVudGVyOiAhaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQodHJ1ZSkgOiBub29wLFxuICAgICAgICAgIG9uUG9pbnRlckxlYXZlOiAhaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQoZmFsc2UpIDogbm9vcCxcbiAgICAgICAgICByZWY6IGNoaWxkcmVuUmVmLFxuICAgICAgICB9KVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkQ2hpbGRyZW5Db250YWluZXJcbiAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PXtnZW5lcmF0ZWRJZH1cbiAgICAgICAgICBhcmlhLWNvbnRyb2xzPXtnZW5lcmF0ZWRJZH1cbiAgICAgICAgICBvbkJsdXI9eyFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudChmYWxzZSkgOiBub29wfVxuICAgICAgICAgIG9uRm9jdXM9eyFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudCh0cnVlKSA6IG5vb3B9XG4gICAgICAgICAgb25Qb2ludGVyRW50ZXI9eyFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudCh0cnVlKSA6IG5vb3B9XG4gICAgICAgICAgb25Qb2ludGVyTGVhdmU9eyFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudChmYWxzZSkgOiBub29wfVxuICAgICAgICAgIHJlZj17Y2hpbGRyZW5SZWZ9XG4gICAgICAgICAgdGFiSW5kZXg9e3RhYkluZGV4fVxuICAgICAgICAgIG9uS2V5RG93bj17ZXZlbnQgPT4ge1xuICAgICAgICAgICAgb25LZXlEb3duPy4oZXZlbnQpXG4gICAgICAgICAgfX1cbiAgICAgICAgICBkYXRhLWNvbnRhaW5lci1mdWxsLXdpZHRoPXtjb250YWluZXJGdWxsV2lkdGh9XG4gICAgICAgICAgYXJpYS1oYXNwb3B1cD17YXJpYUhhc1BvcHVwfVxuICAgICAgICA+XG4gICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICA8L1N0eWxlZENoaWxkcmVuQ29udGFpbmVyPlxuICAgICAgKVxuICAgIH0sIFtcbiAgICAgIGFyaWFIYXNQb3B1cCxcbiAgICAgIGNoaWxkcmVuLFxuICAgICAgY29udGFpbmVyRnVsbFdpZHRoLFxuICAgICAgZ2VuZXJhdGVkSWQsXG4gICAgICBpc0NvbnRyb2xsZWQsXG4gICAgICBvbktleURvd24sXG4gICAgICBvblBvaW50ZXJFdmVudCxcbiAgICAgIHRhYkluZGV4LFxuICAgIF0pXG5cbiAgICBjb25zdCBzaG91bGRSZW5kZXIgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmICghZHluYW1pY0RvbVJlbmRlcmluZykge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICBpZiAoZHluYW1pY0RvbVJlbmRlcmluZyAmJiB2aXNpYmxlSW5Eb20pIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfSwgW2R5bmFtaWNEb21SZW5kZXJpbmcsIHZpc2libGVJbkRvbV0pXG5cbiAgICBpZiAoIXRleHQpIHtcbiAgICAgIGlmICh0eXBlb2YgY2hpbGRyZW4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGNoaWxkcmVuXG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIHtyZW5kZXJDaGlsZHJlbigpfVxuICAgICAgICB7c2hvdWxkUmVuZGVyXG4gICAgICAgICAgPyBjcmVhdGVQb3J0YWwoXG4gICAgICAgICAgICAgIDxTdHlsZWRQb3B1cFxuICAgICAgICAgICAgICAgIHJlZj17aW5uZXJQb3B1cFJlZn1cbiAgICAgICAgICAgICAgICBwb3NpdGlvbnM9e3Bvc2l0aW9uc31cbiAgICAgICAgICAgICAgICBtYXhXaWR0aD17bWF4V2lkdGh9XG4gICAgICAgICAgICAgICAgbWF4SGVpZ2h0PXttYXhIZWlnaHR9XG4gICAgICAgICAgICAgICAgcm9sZT17cm9sZX1cbiAgICAgICAgICAgICAgICBpZD17Z2VuZXJhdGVkSWR9XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgICAgICAgICAgICAgcmV2ZXJzZUFuaW1hdGlvbj17cmV2ZXJzZUFuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICBkYXRhLXRlc3RpZD17ZGF0YVRlc3RJZH1cbiAgICAgICAgICAgICAgICBkYXRhLWhhcy1hcnJvdz17aGFzQXJyb3d9XG4gICAgICAgICAgICAgICAgb25DbGljaz17c3RvcENsaWNrUHJvcGFnYXRpb259XG4gICAgICAgICAgICAgICAgb25Qb2ludGVyRW50ZXI9eyFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudCh0cnVlKSA6IG5vb3B9XG4gICAgICAgICAgICAgICAgb25Qb2ludGVyTGVhdmU9eyFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudChmYWxzZSkgOiBub29wfVxuICAgICAgICAgICAgICAgIGFuaW1hdGlvbkR1cmF0aW9uPXthbmltYXRpb25EdXJhdGlvbn1cbiAgICAgICAgICAgICAgICBvbktleURvd249e3JvbGUgPT09ICdkaWFsb2cnID8gaGFuZGxlRm9jdXNUcmFwIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICAgIGlzRGlhbG9nPXtyb2xlID09PSAnZGlhbG9nJ31cbiAgICAgICAgICAgICAgICBkYXRhLXZpc2libGUtaW4tZG9tPXtcbiAgICAgICAgICAgICAgICAgICFkeW5hbWljRG9tUmVuZGVyaW5nID8gdmlzaWJsZUluRG9tIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGRhdGEtYW5pbWF0ZWQ9e2FuaW1hdGlvbkR1cmF0aW9uID4gMCAmJiAhbWF4SGVpZ2h0fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3RleHR9XG4gICAgICAgICAgICAgIDwvU3R5bGVkUG9wdXA+LFxuICAgICAgICAgICAgICBwb3B1cFBvcnRhbFRhcmdldCBhcyBIVE1MRWxlbWVudCxcbiAgICAgICAgICAgIClcbiAgICAgICAgICA6IG51bGx9XG4gICAgICA8Lz5cbiAgICApXG4gIH0sXG4pXG4iXX0= */"), ';}&[data-has-arrow="true"]{&::after{content:" ";position:absolute;top:', ({
46
+ }) => /* @__PURE__ */ css(animationDuration, "ms ", !reverseAnimation ? animation(positions) : exitAnimation(positions), " forwards;" + (process.env.NODE_ENV === "production" ? "" : ";label:StyledPopup;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1BvcHVwL2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFxRjRFIiwiZmlsZSI6Ii9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1BvcHVwL2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0J1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnXG5pbXBvcnQgdHlwZSB7XG4gIEhUTUxBdHRyaWJ1dGVzLFxuICBLZXlib2FyZEV2ZW50SGFuZGxlcixcbiAgTW91c2VFdmVudEhhbmRsZXIsXG4gIFJlYWN0Tm9kZSxcbiAgUmVmLFxuICBSZWZPYmplY3QsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHtcbiAgZm9yd2FyZFJlZixcbiAgc3RhcnRUcmFuc2l0aW9uLFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VJZCxcbiAgdXNlSW1wZXJhdGl2ZUhhbmRsZSxcbiAgdXNlTWVtbyxcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBjcmVhdGVQb3J0YWwgfSBmcm9tICdyZWFjdC1kb20nXG5pbXBvcnQgeyBpc0NsaWVudFNpZGUgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2lzQ2xpZW50U2lkZSdcbmltcG9ydCB0eXBlIHsgUG9zaXRpb25zVHlwZSB9IGZyb20gJy4vYW5pbWF0aW9ucydcbmltcG9ydCB7IGFuaW1hdGlvbiwgZXhpdEFuaW1hdGlvbiB9IGZyb20gJy4vYW5pbWF0aW9ucydcbmltcG9ydCB0eXBlIHsgUG9wdXBBbGlnbiwgUG9wdXBQbGFjZW1lbnQgfSBmcm9tICcuL2hlbHBlcnMnXG5pbXBvcnQge1xuICBERUZBVUxUX0FSUk9XX1dJRFRILFxuICBERUZBVUxUX1BPU0lUSU9OUyxcbiAgY29tcHV0ZVBvc2l0aW9ucyxcbn0gZnJvbSAnLi9oZWxwZXJzJ1xuXG5jb25zdCBERUZBVUxUX0FOSU1BVElPTl9EVVJBVElPTiA9IDIzMCAvLyBpbiBtc1xuY29uc3QgREVGQVVMVF9ERUJPVU5DRV9EVVJBVElPTiA9IDIwMCAvLyBpbiBtc1xuXG5jb25zdCBub29wID0gKCkgPT4ge31cblxudHlwZSBTdHlsZWRQb3B1cFByb3BzID0ge1xuICBtYXhXaWR0aDogbnVtYmVyIHwgc3RyaW5nXG4gIHBvc2l0aW9uczogUG9zaXRpb25zVHlwZVxuICByZXZlcnNlQW5pbWF0aW9uOiBib29sZWFuXG4gIG1heEhlaWdodD86IG51bWJlciB8IHN0cmluZ1xuICBhbmltYXRpb25EdXJhdGlvbj86IG51bWJlclxuICBpc0RpYWxvZzogYm9vbGVhblxufVxuXG4vKipcbiAqIFRoaXMgZXZlbnQgaGFuZGxlIGFsbG93IHVzIHRvIG5vdCBidWJibGUgdGhlIGV2ZW50IHRvIGRvY3VtZW50LmJvZHkgbGlrZSB0aGlzIHJlYWN0LXNlbGVjdCB3b3JrcyBmaW5lXG4gKi9cbmNvbnN0IHN0b3BDbGlja1Byb3BhZ2F0aW9uOiBNb3VzZUV2ZW50SGFuZGxlciA9IGV2ZW50ID0+IHtcbiAgZXZlbnQubmF0aXZlRXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKClcbn1cblxuY29uc3QgU3R5bGVkUG9wdXAgPSBzdHlsZWQoJ2RpdicsIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT5cbiAgICAhW1xuICAgICAgJ21heFdpZHRoJyxcbiAgICAgICdwb3NpdGlvbnMnLFxuICAgICAgJ3JldmVyc2VBbmltYXRpb24nLFxuICAgICAgJ21heEhlaWdodCcsXG4gICAgICAnYW5pbWF0aW9uRHVyYXRpb24nLFxuICAgICAgJ2lzRGlhbG9nJyxcbiAgICBdLmluY2x1ZGVzKHByb3ApLFxufSk8U3R5bGVkUG9wdXBQcm9wcz5gXG4gIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFN0cm9uZ2VyfTtcbiAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFN0cm9uZ2VyfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1heC13aWR0aDogJHsoeyBtYXhXaWR0aCB9KSA9PlxuICAgIHR5cGVvZiBtYXhXaWR0aCA9PT0gJ251bWJlcicgPyBgJHttYXhXaWR0aH1weGAgOiBtYXhXaWR0aH07XG4gIG1heC1oZWlnaHQ6ICR7KHsgbWF4SGVpZ2h0IH0pID0+XG4gICAgdHlwZW9mIG1heEhlaWdodCA9PT0gJ251bWJlcicgPyBgJHttYXhIZWlnaHR9cHhgIDogbWF4SGVpZ2h0fTtcbiAgb3ZlcmZsb3c6ICR7KHsgbWF4SGVpZ2h0IH0pID0+IChtYXhIZWlnaHQgPyAnYXV0bycgOiB1bmRlZmluZWQpfTtcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbiAgZm9udC1zaXplOiAwLjhyZW07XG4gIGluc2V0OiAwIGF1dG8gYXV0byAwO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIG9wYWNpdHk6IDA7XG4gIHotaW5kZXg6IDE7XG4gIHRyYW5zZm9ybTogJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLnBvcHVwUG9zaXRpb259O1xuXG4gICZbZGF0YS1hbmltYXRlZD1cInRydWVcIl0ge1xuICAgIGFuaW1hdGlvbjogJHsoeyBwb3NpdGlvbnMsIHJldmVyc2VBbmltYXRpb24sIGFuaW1hdGlvbkR1cmF0aW9uIH0pID0+IGNzc2BcbiAgICAgICR7YW5pbWF0aW9uRHVyYXRpb259bXMgJHtcbiAgICAgICAgIXJldmVyc2VBbmltYXRpb24gPyBhbmltYXRpb24ocG9zaXRpb25zKSA6IGV4aXRBbmltYXRpb24ocG9zaXRpb25zKVxuICAgICAgfSBmb3J3YXJkc1xuICAgIGB9O1xuICB9XG5cbiAgJltkYXRhLWhhcy1hcnJvdz1cInRydWVcIl0ge1xuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAkeyh7IHBvc2l0aW9ucyB9KSA9PiBwb3NpdGlvbnMuYXJyb3dUb3B9cHg7XG4gICAgICBsZWZ0OiAkeyh7IHBvc2l0aW9ucyB9KSA9PiBwb3NpdGlvbnMuYXJyb3dMZWZ0fXB4O1xuICAgICAgdHJhbnNmb3JtOiAkeyh7IHBvc2l0aW9ucyB9KSA9PiBwb3NpdGlvbnMuYXJyb3dUcmFuc2Zvcm19XG4gICAgICAgIHJvdGF0ZSgkeyh7IHBvc2l0aW9ucyB9KSA9PiBwb3NpdGlvbnMucm90YXRlfWRlZyk7XG4gICAgICBtYXJnaW4tbGVmdDogLSR7REVGQVVMVF9BUlJPV19XSURUSH1weDtcbiAgICAgIGJvcmRlci13aWR0aDogJHtERUZBVUxUX0FSUk9XX1dJRFRIfXB4O1xuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgIGJvcmRlci1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kU3Ryb25nZXJ9XG4gICAgICAgIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLXZpc2libGUtaW4tZG9tPVwiZmFsc2VcIl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkQ2hpbGRyZW5Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBpbmhlcml0O1xuXG4gICZbZGF0YS1jb250YWluZXItZnVsbC13aWR0aD1cInRydWVcIl0ge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5gXG5cbnR5cGUgUG9wdXBQcm9wcyA9IHtcbiAgLyoqXG4gICAqIElkIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGlmIG5vdCBzZXQuIEl0IGlzIHVzZWQgZm9yIGFzc29jaWF0aW5nIHBvcHVwIHdyYXBwZXIgd2l0aCBwb3B1cCBwb3J0YWwuXG4gICAqL1xuICBpZD86IHN0cmluZ1xuICBjaGlsZHJlbjpcbiAgICB8IFJlYWN0Tm9kZVxuICAgIHwgKChyZW5kZXJQcm9wczoge1xuICAgICAgICBjbGFzc05hbWU/OiBzdHJpbmdcbiAgICAgICAgb25CbHVyOiAoKSA9PiB2b2lkXG4gICAgICAgIG9uRm9jdXM6ICgpID0+IHZvaWRcbiAgICAgICAgb25Qb2ludGVyRW50ZXI6ICgpID0+IHZvaWRcbiAgICAgICAgb25Qb2ludGVyTGVhdmU6ICgpID0+IHZvaWRcbiAgICAgICAgcmVmOiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQgfCBudWxsPlxuICAgICAgfSkgPT4gUmVhY3ROb2RlKVxuICBtYXhXaWR0aD86IG51bWJlciB8IHN0cmluZ1xuICAvKipcbiAgICogYGF1dG9gIHBsYWNlbWVudCB3aWxsIGNoYW5nZSB0aGUgcG9zaXRpb24gb2YgdGhlIHBvcHVwIGlmIGl0IGRvZXNuJ3QgZml0IGluIHRoZSB2aWV3cG9ydC5cbiAgICovXG4gIHBsYWNlbWVudD86IFBvcHVwUGxhY2VtZW50XG4gIC8qKlxuICAgKiBBbGlnbiB0aGUgcG9wdXAgdG8gdGhlIHN0YXJ0IG9yIGNlbnRlciBvZiB0aGUgY2hpbGRyZW4uXG4gICAqL1xuICBhbGlnbj86IFBvcHVwQWxpZ25cbiAgLyoqXG4gICAqIENvbnRlbnQgb2YgdGhlIHBvcHVwLCBwcmVmZXJhYmx5IHRleHQgaW5zaWRlLlxuICAgKi9cbiAgdGV4dD86IFJlYWN0Tm9kZVxuICBjbGFzc05hbWU/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHdpbGwgYWRkIGB3aWR0aDogMTAwJWAgdG8gdGhlIHBvcHVwIGNvbnRhaW5lci5cbiAgICovXG4gIGNvbnRhaW5lckZ1bGxXaWR0aD86IGJvb2xlYW5cbiAgLyoqXG4gICAqIEl0IHdpbGwgZm9yY2UgZGlzcGxheSBwb3B1cC4gVGhpcyBjYW4gYmUgdXNlZnVsIGlmIHlvdSBuZWVkIHRvIGFsd2F5cyBkaXNwbGF5IHRoZSBwb3B1cCB3aXRob3V0IGhvdmVyIG5lZWRlZC5cbiAgICovXG4gIHZpc2libGU/OiBib29sZWFuXG4gIGlubmVyUmVmPzogUmVmPEhUTUxEaXZFbGVtZW50IHwgbnVsbD5cbiAgcm9sZT86IHN0cmluZ1xuICAnZGF0YS10ZXN0aWQnPzogc3RyaW5nXG4gIGhhc0Fycm93PzogYm9vbGVhblxuICBvbkNsb3NlPzogKCkgPT4gdm9pZFxuICB0YWJJbmRleD86IG51bWJlclxuICBvbktleURvd24/OiBLZXlib2FyZEV2ZW50SGFuZGxlclxuICAnYXJpYS1oYXNwb3B1cCc/OiBIVE1MQXR0cmlidXRlczxIVE1MRGl2RWxlbWVudD5bJ2FyaWEtaGFzcG9wdXAnXVxuICBoaWRlT25DbGlja091dHNpZGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugc2V0IGRlYm91bmNlVGltZSB0byBmYWxzZSwgdGhlIHBvcHVwIHdpbGwgbm90IGRlYm91bmNlIHRoZSBob3ZlciBldmVudCBhbmQgd2lsbCBiZSBkaXNwbGF5ZWQgaW5zdGFudGx5LlxuICAgKiBJZiBzZXQgdG8gMCBpdCB3aWxsIGRpc2FibGUgZGVib3VuY2UuXG4gICAqL1xuICBkZWJvdW5jZURlbGF5PzogbnVtYmVyXG4gIC8qKlxuICAgKiBJZiB5b3Ugc2V0IGEgbWF4IGhlaWdodCBrZWVwIGluIG1pbmQgdGhhdCB0aGUgYW5pbWF0aW9uIGlzIGRpc2FibGVkLCBvciBpdCB3aWxsIG5vdCB3b3JrIHByb3Blcmx5IG9uIHNvbWUgYnJvd3NlcnMuXG4gICAqL1xuICBtYXhIZWlnaHQ/OiBzdHJpbmcgfCBudW1iZXJcbiAgLyoqXG4gICAqIFdpbGwgcmVtb3ZlIHRoZSBhbmltYXRpb24gb24gdGhlIHBvcHVwIGlmIHNldCB0byBmYWxzZS5cbiAgICovXG4gIGRpc2FibGVBbmltYXRpb24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBCeSBkZWZhdWx0LCB0aGUgcG9ydGFsIHRhcmdldCBpcyBjaGlsZHJlbiBjb250YWluZXIgb3IgZG9jdW1lbnQuYm9keSBpZiBjaGlsZHJlbiBpcyBhIGZ1bmN0aW9uLiBZb3UgY2FuIG92ZXJyaWRlIHRoaXNcbiAgICogYmVoYXZpb3IgYnkgc2V0dGluZyBhIHBvcnRhbFRhcmdldCBwcm9wLlxuICAgKi9cbiAgcG9ydGFsVGFyZ2V0PzogSFRNTEVsZW1lbnRcbiAgLyoqXG4gICAqIElmIHlvdSBzZXQgdGhpcyB0byB0cnVlLCB0aGUgcG9wdXAgd2lsbCBiZSByZW5kZXJlZCBpbiB0aGUgRE9NIG9ubHkgd2hlbiBpdCBpcyB2aXNpYmxlLlxuICAgKiBXaGVuIHNldCB0byBmYWxzZSwgdGhlIHBvcHVwIHdpbGwgYWx3YXlzIGJlIHJlbmRlcmVkIGluIHRoZSBET00uIEJ5IGRlZmF1bHQgdGhpcyB2YWx1ZSBpcyBzZXQgdG8gYHRydWVgLCBpZiBmb3Igc29tZVxuICAgKiByZWFzb24geW91IG5lZWQgdG8gZGlzYWJsZSBpdCwgeW91IGNhbiBzZXQgaXQgdG8gYGZhbHNlYC5cbiAgICovXG4gIGR5bmFtaWNEb21SZW5kZXJpbmc/OiBib29sZWFuXG59XG5cbi8qKlxuICogQGV4cGVyaW1lbnRhbCBUaGlzIGNvbXBvbmVudCBpcyBleHBlcmltZW50YWwgYW5kIG1heSBiZSBzdWJqZWN0IHRvIGJyZWFraW5nIGNoYW5nZXMgaW4gdGhlIGZ1dHVyZS5cbiAqL1xuZXhwb3J0IGNvbnN0IFBvcHVwID0gZm9yd2FyZFJlZihcbiAgKFxuICAgIHtcbiAgICAgIGNoaWxkcmVuLFxuICAgICAgdGV4dCA9ICcnLFxuICAgICAgcGxhY2VtZW50ID0gJ2F1dG8nLFxuICAgICAgYWxpZ24gPSAnY2VudGVyJyxcbiAgICAgIGlkLFxuICAgICAgY2xhc3NOYW1lLFxuICAgICAgY29udGFpbmVyRnVsbFdpZHRoLFxuICAgICAgbWF4V2lkdGggPSAnMTQuNXJlbScsXG4gICAgICBtYXhIZWlnaHQsXG4gICAgICB2aXNpYmxlLFxuICAgICAgaW5uZXJSZWYsXG4gICAgICByb2xlID0gJ3BvcHVwJyxcbiAgICAgICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG4gICAgICBoYXNBcnJvdyA9IHRydWUsXG4gICAgICBvbkNsb3NlLFxuICAgICAgdGFiSW5kZXggPSAwLFxuICAgICAgb25LZXlEb3duLFxuICAgICAgJ2FyaWEtaGFzcG9wdXAnOiBhcmlhSGFzUG9wdXAsXG4gICAgICBoaWRlT25DbGlja091dHNpZGUgPSBmYWxzZSxcbiAgICAgIGRlYm91bmNlRGVsYXkgPSBERUZBVUxUX0RFQk9VTkNFX0RVUkFUSU9OLFxuICAgICAgZGlzYWJsZUFuaW1hdGlvbiA9IGZhbHNlLFxuICAgICAgcG9ydGFsVGFyZ2V0LFxuICAgICAgZHluYW1pY0RvbVJlbmRlcmluZyA9IHRydWUsXG4gICAgfTogUG9wdXBQcm9wcyxcbiAgICByZWY6IFJlZjxIVE1MRGl2RWxlbWVudD4sXG4gICkgPT4ge1xuICAgIGNvbnN0IGNoaWxkcmVuUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICAgIHVzZUltcGVyYXRpdmVIYW5kbGUoaW5uZXJSZWYsICgpID0+IGNoaWxkcmVuUmVmLmN1cnJlbnQgYXMgSFRNTERpdkVsZW1lbnQpXG5cbiAgICBjb25zdCBpbm5lclBvcHVwUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICAgIHVzZUltcGVyYXRpdmVIYW5kbGUocmVmLCAoKSA9PiBpbm5lclBvcHVwUmVmLmN1cnJlbnQgYXMgSFRNTERpdkVsZW1lbnQpXG5cbiAgICBjb25zdCB0aW1lciA9IHVzZVJlZjxSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0Pj4odW5kZWZpbmVkKVxuICAgIGNvbnN0IHBvcHVwUG9ydGFsVGFyZ2V0ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAocG9ydGFsVGFyZ2V0KSByZXR1cm4gcG9ydGFsVGFyZ2V0XG5cbiAgICAgIGlmIChyb2xlID09PSAnZGlhbG9nJykge1xuICAgICAgICBpZiAoY2hpbGRyZW5SZWYuY3VycmVudCkgcmV0dXJuIGNoaWxkcmVuUmVmLmN1cnJlbnRcbiAgICAgICAgaWYgKGlzQ2xpZW50U2lkZSkgcmV0dXJuIGRvY3VtZW50LmJvZHlcblxuICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgfVxuXG4gICAgICAvLyBXZSBjaGVjayBpZiB3aW5kb3cgZXhpc3RzIGZvciBTU1JcbiAgICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICByZXR1cm4gZG9jdW1lbnQuYm9keVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbnVsbFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICAgIH0sIFtwb3J0YWxUYXJnZXQsIHJvbGUsIGNoaWxkcmVuUmVmLmN1cnJlbnRdKVxuXG4gICAgLy8gVGhlcmUgYXJlIHNvbWUgaXNzdWUgd2hlbiBtaXhpbmcgYW5pbWF0aW9uIGFuZCBtYXhIZWlnaHQgb24gc29tZSBicm93c2Vycywgc28gd2UgZGlzYWJsZSBhbmltYXRpb24gaWYgbWF4SGVpZ2h0IGlzIHNldC5cbiAgICBjb25zdCBhbmltYXRpb25EdXJhdGlvbiA9XG4gICAgICBkaXNhYmxlQW5pbWF0aW9uIHx8IG1heEhlaWdodCA/IDAgOiBERUZBVUxUX0FOSU1BVElPTl9EVVJBVElPTlxuXG4gICAgLy8gRGVib3VuY2UgdGltZXIgd2lsbCBiZSB1c2VkIHRvIHByZXZlbnQgdGhlIHBvcHVwIGZyb20gZmxpY2tlcmluZyB3aGVuIHRoZSB1c2VyIG1vdmVzIHRoZSBtb3VzZSBvdXQgYW5kIGluIHRoZSBjaGlsZHJlbiBlbGVtZW50LlxuICAgIGNvbnN0IGRlYm91bmNlVGltZXIgPSB1c2VSZWY8UmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4+KHVuZGVmaW5lZClcbiAgICBjb25zdCBbdmlzaWJsZUluRG9tLCBzZXRWaXNpYmxlSW5Eb21dID0gdXNlU3RhdGUoZmFsc2UpXG4gICAgY29uc3QgW3JldmVyc2VBbmltYXRpb24sIHNldFJldmVyc2VBbmltYXRpb25dID0gdXNlU3RhdGUoZmFsc2UpXG4gICAgY29uc3QgW3Bvc2l0aW9ucywgc2V0UG9zaXRpb25zXSA9IHVzZVN0YXRlPFBvc2l0aW9uc1R5cGU+KHtcbiAgICAgIC4uLkRFRkFVTFRfUE9TSVRJT05TLFxuICAgIH0pXG4gICAgY29uc3QgdW5pcXVlSWQgPSB1c2VJZCgpXG4gICAgY29uc3QgZ2VuZXJhdGVkSWQgPSBpZCA/PyB1bmlxdWVJZFxuICAgIGNvbnN0IGlzQ29udHJvbGxlZCA9IHZpc2libGUgIT09IHVuZGVmaW5lZFxuXG4gICAgY29uc3QgZ2VuZXJhdGVQb3B1cFBvc2l0aW9ucyA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmIChjaGlsZHJlblJlZi5jdXJyZW50ICYmIGlubmVyUG9wdXBSZWYuY3VycmVudCkge1xuICAgICAgICBzZXRQb3NpdGlvbnMoXG4gICAgICAgICAgY29tcHV0ZVBvc2l0aW9ucyh7XG4gICAgICAgICAgICBjaGlsZHJlblJlZixcbiAgICAgICAgICAgIHBsYWNlbWVudCxcbiAgICAgICAgICAgIHBvcHVwUmVmOiBpbm5lclBvcHVwUmVmLFxuICAgICAgICAgICAgcG9wdXBQb3J0YWxUYXJnZXQ6IHBvcHVwUG9ydGFsVGFyZ2V0IGFzIEhUTUxFbGVtZW50LFxuICAgICAgICAgICAgaGFzQXJyb3csXG4gICAgICAgICAgICBhbGlnbixcbiAgICAgICAgICB9KSxcbiAgICAgICAgKVxuICAgICAgfVxuICAgIH0sIFtoYXNBcnJvdywgcGxhY2VtZW50LCBwb3B1cFBvcnRhbFRhcmdldCwgYWxpZ25dKVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiB3ZSBuZWVkIHRvIHJlY29tcHV0ZSBwb3NpdGlvbnMgb2YgcG9wdXAgZHVlIHRvIHdpbmRvdyBzY3JvbGwgb3IgcmVzaXplLlxuICAgICAqL1xuICAgIGNvbnN0IG9uV2luZG93Q2hhbmdlRGV0ZWN0ZWQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICAvLyBXZSByZW1vdmUgYW5pbWF0aW9uIG9uIHNjcm9sbCBvciB0aGUgYW5pbWF0aW9uIHdpbGwgcmVzdGFydCBvbiBldmVyeSBzY3JvbGxcbiAgICAgIGlmIChpbm5lclBvcHVwUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgaW5uZXJQb3B1cFJlZi5jdXJyZW50LnN0eWxlLmFuaW1hdGlvbiA9ICdub25lJ1xuICAgICAgfVxuXG4gICAgICBnZW5lcmF0ZVBvcHVwUG9zaXRpb25zKClcbiAgICB9LCBbZ2VuZXJhdGVQb3B1cFBvc2l0aW9ucywgaW5uZXJQb3B1cFJlZl0pXG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHdlIG5lZWQgdG8gcmVtb3ZlIHBvcHVwIHBvcnRhbCBmcm9tIERPTSBhbmQgcmVtb3ZlIGV2ZW50IGxpc3RlbmVyIHRvIGl0LlxuICAgICAqL1xuICAgIGNvbnN0IHVubW91bnRQb3B1cEZyb21Eb20gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBzZXRWaXNpYmxlSW5Eb20oZmFsc2UpXG4gICAgICBzZXRSZXZlcnNlQW5pbWF0aW9uKGZhbHNlKVxuXG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgb25XaW5kb3dDaGFuZ2VEZXRlY3RlZCwgdHJ1ZSlcbiAgICB9LCBbb25XaW5kb3dDaGFuZ2VEZXRlY3RlZF0pXG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHdlIG5lZWQgdG8gaGlkZSBwb3B1cC4gQSB0aW1lb3V0IGlzIHNldCB0byBhbGxvdyBhbmltYXRpb24gZW5kLCB0aGVuIHJlbW92ZVxuICAgICAqIHBvcHVwIGZyb20gZG9tLlxuICAgICAqL1xuICAgIGNvbnN0IGNsb3NlUG9wdXAgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBjb25zdCBjbG9zZUZ1bmN0aW9uID0gKCkgPT4ge1xuICAgICAgICBpZiAoIWRpc2FibGVBbmltYXRpb24pIHtcbiAgICAgICAgICBzZXRSZXZlcnNlQW5pbWF0aW9uKHRydWUpXG5cbiAgICAgICAgICB0aW1lci5jdXJyZW50ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBvbkNsb3NlPy4oKVxuICAgICAgICAgICAgdW5tb3VudFBvcHVwRnJvbURvbSgpXG4gICAgICAgICAgfSwgYW5pbWF0aW9uRHVyYXRpb24pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgb25DbG9zZT8uKClcbiAgICAgICAgICB1bm1vdW50UG9wdXBGcm9tRG9tKClcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoIWRpc2FibGVBbmltYXRpb24pIHtcbiAgICAgICAgZGVib3VuY2VUaW1lci5jdXJyZW50ID0gc2V0VGltZW91dChcbiAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICBjbG9zZUZ1bmN0aW9uKClcbiAgICAgICAgICB9LFxuICAgICAgICAgIGRlYm91bmNlRGVsYXkgJiYgIWRpc2FibGVBbmltYXRpb24gPyBkZWJvdW5jZURlbGF5IDogMCxcbiAgICAgICAgKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2xvc2VGdW5jdGlvbigpXG4gICAgICB9XG4gICAgfSwgW1xuICAgICAgYW5pbWF0aW9uRHVyYXRpb24sXG4gICAgICBkaXNhYmxlQW5pbWF0aW9uLFxuICAgICAgZGVib3VuY2VEZWxheSxcbiAgICAgIG9uQ2xvc2UsXG4gICAgICB1bm1vdW50UG9wdXBGcm9tRG9tLFxuICAgIF0pXG5cbiAgICAvKipcbiAgICAgKiBXaGVuIG1vdXNlIGhvdmVyIG9yIHN0b3AgaG92ZXJpbmcgY2hpbGRyZW4gdGhpcyBmdW5jdGlvbiBkaXNwbGF5IG9yIGhpZGUgcG9wdXAuIEEgdGltZW91dCBpcyBzZXQgdG8gYWxsb3cgYW5pbWF0aW9uXG4gICAgICogZW5kLCB0aGVuIHJlbW92ZSBwb3B1cCBmcm9tIGRvbS5cbiAgICAgKi9cbiAgICBjb25zdCBvblBvaW50ZXJFdmVudCA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGlzVmlzaWJsZTogYm9vbGVhbikgPT4gKCkgPT4ge1xuICAgICAgICAvLyBJZiB0aGVyZSBpcyBhIGRlYm91bmNlRGVsYXkgYW5kIHRoZSBwb3B1cCBpcyBub3QgdmlzaWJsZSwgd2UgY2xlYXIgdGhlIGRlYm91bmNlIHRpbWVyXG4gICAgICAgIGlmICghdmlzaWJsZSAmJiBkZWJvdW5jZURlbGF5ID4gMCAmJiBkZWJvdW5jZVRpbWVyLmN1cnJlbnQpIHtcbiAgICAgICAgICBjbGVhclRpbWVvdXQoZGVib3VuY2VUaW1lci5jdXJyZW50KVxuICAgICAgICAgIGRlYm91bmNlVGltZXIuY3VycmVudCA9IHVuZGVmaW5lZFxuICAgICAgICB9XG5cbiAgICAgICAgLy8gVGhpcyBjb25kaXRpb24gaXMgZm9yIHdoZW4gd2Ugd2FudCB0byB1bm1vdW50IHRoZSBwb3B1cFxuICAgICAgICAvLyBUaGVyZSBpcyBkZWJvdW5jZSBpbiBvcmRlciB0byBhdm9pZCBwb3B1cCB0byBmbGlja2VyIHdoZW4gd2UgbW92ZSB0aGUgbW91c2UgZnJvbSBjaGlsZHJlbiB0byBwb3B1cFxuICAgICAgICAvLyBUaW1lciBpcyB1c2VkIHRvIGZvbGxvdyB0aGUgYW5pbWF0aW9uIGR1cmF0aW9uXG4gICAgICAgIGlmICghaXNWaXNpYmxlICYmIGlubmVyUG9wdXBSZWYuY3VycmVudCAmJiAhZGVib3VuY2VUaW1lci5jdXJyZW50KSB7XG4gICAgICAgICAgY2xvc2VQb3B1cCgpXG4gICAgICAgIH0gZWxzZSBpZiAoaXNWaXNpYmxlKSB7XG4gICAgICAgICAgLy8gVGhpcyBjb25kaXRpb24gaXMgZm9yIHdoZW4gd2Ugd2FudCB0byBtb3VudCB0aGUgcG9wdXBcbiAgICAgICAgICAvLyBJZiB0aGUgdGltZXIgZXhpc3RzIGl0IG1lYW5zIHRoZSBwb3B1cCB3YXMgYWJvdXQgdG8gdW1vdW50LCBidXQgd2UgaG92ZXJlZCB0aGUgY2hpbGRyZW4gYWdhaW4sXG4gICAgICAgICAgLy8gc28gd2UgY2xlYXIgdGhlIHRpbWVyIGFuZCB0aGUgcG9wdXAgd2lsbCBub3QgYmUgdW5tb3VudGVkXG4gICAgICAgICAgaWYgKHRpbWVyLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIHNldFJldmVyc2VBbmltYXRpb24oZmFsc2UpXG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGltZXIuY3VycmVudClcbiAgICAgICAgICAgIHRpbWVyLmN1cnJlbnQgPSB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gQW5kIGhlcmUgaXMgd2hlbiB3ZSBjdXJyZW50bHkgYXJlIGluIGEgZGVib3VuY2UgdGltZXIsIGl0IG1lYW5zIHBvcHVwIHdhcyBob3ZlcmVkIGR1cmluZ1xuICAgICAgICAgIC8vIHRoYXQgcGVyaW9kLCBhbmQgc28gd2UgY2FuIGNsZWFyIGRlYm91bmNlIHRpbWVyXG4gICAgICAgICAgaWYgKGRlYm91bmNlVGltZXIuY3VycmVudCkge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KGRlYm91bmNlVGltZXIuY3VycmVudClcbiAgICAgICAgICAgIGRlYm91bmNlVGltZXIuY3VycmVudCA9IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZGVib3VuY2VEZWxheSA+IDApIHtcbiAgICAgICAgICAgIGRlYm91bmNlVGltZXIuY3VycmVudCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICBzZXRWaXNpYmxlSW5Eb20odHJ1ZSlcbiAgICAgICAgICAgIH0sIGRlYm91bmNlRGVsYXkpXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN0YXJ0VHJhbnNpdGlvbigoKSA9PiB7XG4gICAgICAgICAgICAgIHNldFZpc2libGVJbkRvbSh0cnVlKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBbY2xvc2VQb3B1cCwgZGVib3VuY2VEZWxheSwgdmlzaWJsZV0sXG4gICAgKVxuXG4gICAgLyoqXG4gICAgICogT25jZSBwb3B1cCBpcyB2aXNpYmxlIGluIHRoZSBkb20gd2UgY2FuIGNvbXB1dGUgcG9zaXRpb25zLCB0aGVuIHNldCBpdCB2aXNpYmxlIG9uIHNjcmVlbiBhbmQgYWRkIGV2ZW50IHRvXG4gICAgICogcmVjb21wdXRlIHBvc2l0aW9ucyBvbiBzY3JvbGwgb3Igc2NyZWVuIHJlc2l6ZS5cbiAgICAgKi9cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKHZpc2libGVJbkRvbSkge1xuICAgICAgICBnZW5lcmF0ZVBvcHVwUG9zaXRpb25zKClcblxuICAgICAgICBpZiAocG9wdXBQb3J0YWxUYXJnZXQgPT09IGRvY3VtZW50LmJvZHkpIHtcbiAgICAgICAgICAvLyBXZSB3YW50IHRvIGRldGVjdCBzY3JvbGwgYW5kIHJlc2l6ZSBpbiBvcmRlciB0byByZWNvbXB1dGUgcG9zaXRpb25zIG9mIHBvcHVwXG4gICAgICAgICAgLy8gQWRkaW5nIHRydWUgYXMgdGhpcmQgcGFyYW1ldGVyIHRvIGV2ZW50IGxpc3RlbmVyIHdpbGwgZGV0ZWN0IG5lc3RlZCBzY3JvbGxzLlxuICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBvbldpbmRvd0NoYW5nZURldGVjdGVkLCB0cnVlKVxuICAgICAgICB9XG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBvbldpbmRvd0NoYW5nZURldGVjdGVkLCB0cnVlKVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgb25XaW5kb3dDaGFuZ2VEZXRlY3RlZCwgdHJ1ZSlcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIG9uV2luZG93Q2hhbmdlRGV0ZWN0ZWQsIHRydWUpXG4gICAgICAgIGlmICh0aW1lci5jdXJyZW50KSB7XG4gICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVyLmN1cnJlbnQpXG4gICAgICAgICAgdGltZXIuY3VycmVudCA9IHVuZGVmaW5lZFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgW1xuICAgICAgZ2VuZXJhdGVQb3B1cFBvc2l0aW9ucyxcbiAgICAgIG9uV2luZG93Q2hhbmdlRGV0ZWN0ZWQsXG4gICAgICB2aXNpYmxlSW5Eb20sXG4gICAgICBtYXhXaWR0aCxcbiAgICAgIHBvcHVwUG9ydGFsVGFyZ2V0LFxuICAgIF0pXG5cbiAgICAvLyBUaGlzIHdpbGwgYmUgdHJpZ2dlcmVkIHdoZW4gcG9zaXRpb25zIGFyZSBjb21wdXRlZCBhbmQgcG9wdXAgaXMgdmlzaWJsZSBpbiB0aGUgZG9tLlxuICAgIHVzZUVmZmVjdChcbiAgICAgICgpID0+IHtcbiAgICAgICAgaWYgKHZpc2libGVJbkRvbSAmJiBpbm5lclBvcHVwUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICBpbm5lclBvcHVwUmVmLmN1cnJlbnQuc3R5bGUub3BhY2l0eSA9ICcxJ1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICAgICAgW3Bvc2l0aW9uc10sXG4gICAgKVxuXG4gICAgLyoqXG4gICAgICogSWYgcG9wdXAgaGFzIGB2aXNpYmxlYCBwcm9wIGl0IG1lYW5zIHRoZSBwb3B1cCBpcyBtYW51YWxseSBjb250cm9sbGVkIHRocm91Z2ggdGhpcyBwcm9wLlxuICAgICAqIEluIHRoaXMgY2FzIHdlIGRvbid0IHdhbnQgdG8gZGlzcGxheSBwb3B1cCBvbiBob3ZlciwgYnV0IG9ubHkgd2hlbiBgdmlzaWJsZWAgaXMgdHJ1ZS5cbiAgICAgKi9cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKGlzQ29udHJvbGxlZCkge1xuICAgICAgICBvblBvaW50ZXJFdmVudCh2aXNpYmxlKSgpXG4gICAgICB9XG4gICAgfSwgW2lzQ29udHJvbGxlZCwgb25Qb2ludGVyRXZlbnQsIHZpc2libGVdKVxuXG4gICAgLy8gSGFuZGxlIGhpZGUgb24gZXNjIHByZXNzIGFuZCBoaWRlIG9uIGNsaWNrIG91dHNpZGVcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgaGFuZGxlRXNjUHJlc3MgPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgICBjbG9zZVBvcHVwKClcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCBoYW5kbGVDbGlja091dHNpZGUgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgY29uc3QgcG9wdXBDdXJyZW50ID0gaW5uZXJQb3B1cFJlZi5jdXJyZW50XG4gICAgICAgIGNvbnN0IGNoaWxkcmVuQ3VycmVudCA9IGNoaWxkcmVuUmVmLmN1cnJlbnRcblxuICAgICAgICBpZiAocG9wdXBDdXJyZW50ICYmIGhpZGVPbkNsaWNrT3V0c2lkZSAmJiAhZXZlbnQuZGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGV2ZW50LnRhcmdldCAmJlxuICAgICAgICAgICAgZXZlbnQudGFyZ2V0ICE9PSBwb3B1cEN1cnJlbnQgJiZcbiAgICAgICAgICAgIGV2ZW50LnRhcmdldCAhPT0gY2hpbGRyZW5DdXJyZW50ICYmXG4gICAgICAgICAgICAhY2hpbGRyZW5DdXJyZW50Py5jb250YWlucyhldmVudC50YXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICAgICFwb3B1cEN1cnJlbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIE5vZGUpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgICAgY2xvc2VQb3B1cCgpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAodmlzaWJsZUluRG9tKSB7XG4gICAgICAgIGRvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCBoYW5kbGVFc2NQcmVzcylcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGhhbmRsZUNsaWNrT3V0c2lkZSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXl1cCcsIGhhbmRsZUVzY1ByZXNzKVxuICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgaGFuZGxlQ2xpY2tPdXRzaWRlKVxuICAgICAgfVxuICAgIH0sIFtcbiAgICAgIGNsb3NlUG9wdXAsXG4gICAgICB2aXNpYmxlSW5Eb20sXG4gICAgICBpbm5lclBvcHVwUmVmLFxuICAgICAgY2hpbGRyZW5SZWYsXG4gICAgICBoaWRlT25DbGlja091dHNpZGUsXG4gICAgXSlcblxuICAgIC8qKlxuICAgICAqIFRoaXMgZXZlbnQgd2lsbCBvY2N1ciBvbmx5IGZvciBkaWFsb2cgYW5kIHdpbGwgdHJhcCBmb2N1cyBpbnNpZGUgdGhlIGRpYWxvZy5cbiAgICAgKi9cbiAgICBjb25zdCBoYW5kbGVGb2N1c1RyYXA6IEtleWJvYXJkRXZlbnRIYW5kbGVyID0gdXNlQ2FsbGJhY2soZXZlbnQgPT4ge1xuICAgICAgY29uc3QgaXNUYWJQcmVzc2VkID0gZXZlbnQua2V5ID09PSAnVGFiJ1xuICAgICAgaWYgKCFpc1RhYlByZXNzZWQpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuXG4gICAgICBjb25zdCBmb2N1c2FibGVFbHMgPVxuICAgICAgICBpbm5lclBvcHVwUmVmLmN1cnJlbnQ/LnF1ZXJ5U2VsZWN0b3JBbGwoXG4gICAgICAgICAgJ2FbaHJlZl06bm90KFtkaXNhYmxlZF0pLCBidXR0b246bm90KFtkaXNhYmxlZF0pLCB0ZXh0YXJlYTpub3QoW2Rpc2FibGVkXSksIGlucHV0Om5vdChbZGlzYWJsZWRdKSwgc2VsZWN0Om5vdChbZGlzYWJsZWRdKScsXG4gICAgICAgICkgPz8gW11cblxuICAgICAgLy8gSGFuZGxlIGNhc2Ugd2hlbiBubyBpbnRlcmFjdGl2ZSBlbGVtZW50IGFyZSB3aXRoaW4gdGhlIG1vZGFsIChpbmNsdWRpbmcgY2xvc2UgaWNvbilcbiAgICAgIGlmIChmb2N1c2FibGVFbHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgIH1cblxuICAgICAgY29uc3QgZmlyc3RGb2N1c2FibGVFbCA9IGZvY3VzYWJsZUVsc1swXSBhcyBIVE1MRWxlbWVudFxuICAgICAgY29uc3QgbGFzdEZvY3VzYWJsZUVsID0gZm9jdXNhYmxlRWxzW1xuICAgICAgICBmb2N1c2FibGVFbHMubGVuZ3RoIC0gMVxuICAgICAgXSBhcyBIVE1MRWxlbWVudFxuXG4gICAgICBpZiAoZXZlbnQuc2hpZnRLZXkpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGZpcnN0Rm9jdXNhYmxlRWwgfHxcbiAgICAgICAgICBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBpbm5lclBvcHVwUmVmLmN1cnJlbnRcbiAgICAgICAgKSB7XG4gICAgICAgICAgbGFzdEZvY3VzYWJsZUVsLmZvY3VzKClcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGxhc3RGb2N1c2FibGVFbCB8fFxuICAgICAgICBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBpbm5lclBvcHVwUmVmLmN1cnJlbnRcbiAgICAgICkge1xuICAgICAgICBmaXJzdEZvY3VzYWJsZUVsLmZvY3VzKClcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgfVxuICAgIH0sIFtdKVxuXG4gICAgLyoqXG4gICAgICogV2lsbCByZW5kZXIgY2hpbGRyZW4gY29uZGl0aW9uYWxseSBpZiBjaGlsZHJlbiBpcyBhIGZ1bmN0aW9uIG9yIG5vdC5cbiAgICAgKi9cbiAgICBjb25zdCByZW5kZXJDaGlsZHJlbiA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmICh0eXBlb2YgY2hpbGRyZW4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0dXJuIGNoaWxkcmVuKHtcbiAgICAgICAgICBvbkJsdXI6ICFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudChmYWxzZSkgOiBub29wLFxuICAgICAgICAgIG9uRm9jdXM6ICFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudCh0cnVlKSA6IG5vb3AsXG4gICAgICAgICAgb25Qb2ludGVyRW50ZXI6ICFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudCh0cnVlKSA6IG5vb3AsXG4gICAgICAgICAgb25Qb2ludGVyTGVhdmU6ICFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudChmYWxzZSkgOiBub29wLFxuICAgICAgICAgIHJlZjogY2hpbGRyZW5SZWYsXG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTdHlsZWRDaGlsZHJlbkNvbnRhaW5lclxuICAgICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9e2dlbmVyYXRlZElkfVxuICAgICAgICAgIGFyaWEtY29udHJvbHM9e2dlbmVyYXRlZElkfVxuICAgICAgICAgIG9uQmx1cj17IWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KGZhbHNlKSA6IG5vb3B9XG4gICAgICAgICAgb25Gb2N1cz17IWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KHRydWUpIDogbm9vcH1cbiAgICAgICAgICBvblBvaW50ZXJFbnRlcj17IWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KHRydWUpIDogbm9vcH1cbiAgICAgICAgICBvblBvaW50ZXJMZWF2ZT17IWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KGZhbHNlKSA6IG5vb3B9XG4gICAgICAgICAgcmVmPXtjaGlsZHJlblJlZn1cbiAgICAgICAgICB0YWJJbmRleD17dGFiSW5kZXh9XG4gICAgICAgICAgb25LZXlEb3duPXtldmVudCA9PiB7XG4gICAgICAgICAgICBvbktleURvd24/LihldmVudClcbiAgICAgICAgICB9fVxuICAgICAgICAgIGRhdGEtY29udGFpbmVyLWZ1bGwtd2lkdGg9e2NvbnRhaW5lckZ1bGxXaWR0aH1cbiAgICAgICAgICBhcmlhLWhhc3BvcHVwPXthcmlhSGFzUG9wdXB9XG4gICAgICAgID5cbiAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIDwvU3R5bGVkQ2hpbGRyZW5Db250YWluZXI+XG4gICAgICApXG4gICAgfSwgW1xuICAgICAgYXJpYUhhc1BvcHVwLFxuICAgICAgY2hpbGRyZW4sXG4gICAgICBjb250YWluZXJGdWxsV2lkdGgsXG4gICAgICBnZW5lcmF0ZWRJZCxcbiAgICAgIGlzQ29udHJvbGxlZCxcbiAgICAgIG9uS2V5RG93bixcbiAgICAgIG9uUG9pbnRlckV2ZW50LFxuICAgICAgdGFiSW5kZXgsXG4gICAgXSlcblxuICAgIGNvbnN0IHNob3VsZFJlbmRlciA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKCFkeW5hbWljRG9tUmVuZGVyaW5nKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChkeW5hbWljRG9tUmVuZGVyaW5nICYmIHZpc2libGVJbkRvbSkge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9LCBbZHluYW1pY0RvbVJlbmRlcmluZywgdmlzaWJsZUluRG9tXSlcblxuICAgIGlmICghdGV4dCkge1xuICAgICAgaWYgKHR5cGVvZiBjaGlsZHJlbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgfVxuXG4gICAgICByZXR1cm4gY2hpbGRyZW5cbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAge3JlbmRlckNoaWxkcmVuKCl9XG4gICAgICAgIHtzaG91bGRSZW5kZXJcbiAgICAgICAgICA/IGNyZWF0ZVBvcnRhbChcbiAgICAgICAgICAgICAgPFN0eWxlZFBvcHVwXG4gICAgICAgICAgICAgICAgcmVmPXtpbm5lclBvcHVwUmVmfVxuICAgICAgICAgICAgICAgIHBvc2l0aW9ucz17cG9zaXRpb25zfVxuICAgICAgICAgICAgICAgIG1heFdpZHRoPXttYXhXaWR0aH1cbiAgICAgICAgICAgICAgICBtYXhIZWlnaHQ9e21heEhlaWdodH1cbiAgICAgICAgICAgICAgICByb2xlPXtyb2xlfVxuICAgICAgICAgICAgICAgIGlkPXtnZW5lcmF0ZWRJZH1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgICAgICAgICAgICByZXZlcnNlQW5pbWF0aW9uPXtyZXZlcnNlQW5pbWF0aW9ufVxuICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPXtkYXRhVGVzdElkfVxuICAgICAgICAgICAgICAgIGRhdGEtaGFzLWFycm93PXtoYXNBcnJvd31cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtzdG9wQ2xpY2tQcm9wYWdhdGlvbn1cbiAgICAgICAgICAgICAgICBvblBvaW50ZXJFbnRlcj17IWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KHRydWUpIDogbm9vcH1cbiAgICAgICAgICAgICAgICBvblBvaW50ZXJMZWF2ZT17IWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KGZhbHNlKSA6IG5vb3B9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uRHVyYXRpb249e2FuaW1hdGlvbkR1cmF0aW9ufVxuICAgICAgICAgICAgICAgIG9uS2V5RG93bj17cm9sZSA9PT0gJ2RpYWxvZycgPyBoYW5kbGVGb2N1c1RyYXAgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgICAgaXNEaWFsb2c9e3JvbGUgPT09ICdkaWFsb2cnfVxuICAgICAgICAgICAgICAgIGRhdGEtdmlzaWJsZS1pbi1kb209e1xuICAgICAgICAgICAgICAgICAgIWR5bmFtaWNEb21SZW5kZXJpbmcgPyB2aXNpYmxlSW5Eb20gOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZGF0YS1hbmltYXRlZD17YW5pbWF0aW9uRHVyYXRpb24gPiAwICYmICFtYXhIZWlnaHR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7dGV4dH1cbiAgICAgICAgICAgICAgPC9TdHlsZWRQb3B1cD4sXG4gICAgICAgICAgICAgIHBvcHVwUG9ydGFsVGFyZ2V0IGFzIEhUTUxFbGVtZW50LFxuICAgICAgICAgICAgKVxuICAgICAgICAgIDogbnVsbH1cbiAgICAgIDwvPlxuICAgIClcbiAgfSxcbilcbiJdfQ== */"), ';}&[data-has-arrow="true"]{&::after{content:" ";position:absolute;top:', ({
47
47
  positions
48
48
  }) => positions.arrowTop, "px;left:", ({
49
49
  positions
@@ -53,7 +53,7 @@ const StyledPopup = /* @__PURE__ */ _styled("div", process.env.NODE_ENV === "pro
53
53
  positions
54
54
  }) => positions.rotate, "deg);margin-left:-", DEFAULT_ARROW_WIDTH, "px;border-width:", DEFAULT_ARROW_WIDTH, "px;border-style:solid;border-color:", ({
55
55
  theme
56
- }) => theme.colors.neutral.backgroundStronger, ' transparent transparent transparent;pointer-events:none;}}&[data-visible-in-dom="false"]{display:none;}' + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1BvcHVwL2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUErRG9CIiwiZmlsZSI6Ii9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1BvcHVwL2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0J1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnXG5pbXBvcnQgdHlwZSB7XG4gIEhUTUxBdHRyaWJ1dGVzLFxuICBLZXlib2FyZEV2ZW50SGFuZGxlcixcbiAgTW91c2VFdmVudEhhbmRsZXIsXG4gIFJlYWN0Tm9kZSxcbiAgUmVmLFxuICBSZWZPYmplY3QsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHtcbiAgZm9yd2FyZFJlZixcbiAgc3RhcnRUcmFuc2l0aW9uLFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VJZCxcbiAgdXNlSW1wZXJhdGl2ZUhhbmRsZSxcbiAgdXNlTWVtbyxcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBjcmVhdGVQb3J0YWwgfSBmcm9tICdyZWFjdC1kb20nXG5pbXBvcnQgeyBpc0NsaWVudFNpZGUgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2lzQ2xpZW50U2lkZSdcbmltcG9ydCB0eXBlIHsgUG9zaXRpb25zVHlwZSB9IGZyb20gJy4vYW5pbWF0aW9ucydcbmltcG9ydCB7IGFuaW1hdGlvbiwgZXhpdEFuaW1hdGlvbiB9IGZyb20gJy4vYW5pbWF0aW9ucydcbmltcG9ydCB0eXBlIHsgUG9wdXBBbGlnbiwgUG9wdXBQbGFjZW1lbnQgfSBmcm9tICcuL2hlbHBlcnMnXG5pbXBvcnQge1xuICBERUZBVUxUX0FSUk9XX1dJRFRILFxuICBERUZBVUxUX1BPU0lUSU9OUyxcbiAgY29tcHV0ZVBvc2l0aW9ucyxcbn0gZnJvbSAnLi9oZWxwZXJzJ1xuXG5jb25zdCBERUZBVUxUX0FOSU1BVElPTl9EVVJBVElPTiA9IDIzMCAvLyBpbiBtc1xuY29uc3QgREVGQVVMVF9ERUJPVU5DRV9EVVJBVElPTiA9IDIwMCAvLyBpbiBtc1xuXG5jb25zdCBub29wID0gKCkgPT4ge31cblxudHlwZSBTdHlsZWRQb3B1cFByb3BzID0ge1xuICBtYXhXaWR0aDogbnVtYmVyIHwgc3RyaW5nXG4gIHBvc2l0aW9uczogUG9zaXRpb25zVHlwZVxuICByZXZlcnNlQW5pbWF0aW9uOiBib29sZWFuXG4gIG1heEhlaWdodD86IG51bWJlciB8IHN0cmluZ1xuICBhbmltYXRpb25EdXJhdGlvbj86IG51bWJlclxuICBpc0RpYWxvZzogYm9vbGVhblxufVxuXG4vKipcbiAqIFRoaXMgZXZlbnQgaGFuZGxlIGFsbG93IHVzIHRvIG5vdCBidWJibGUgdGhlIGV2ZW50IHRvIGRvY3VtZW50LmJvZHkgbGlrZSB0aGlzIHJlYWN0LXNlbGVjdCB3b3JrcyBmaW5lXG4gKi9cbmNvbnN0IHN0b3BDbGlja1Byb3BhZ2F0aW9uOiBNb3VzZUV2ZW50SGFuZGxlciA9IGV2ZW50ID0+IHtcbiAgZXZlbnQubmF0aXZlRXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKClcbn1cblxuY29uc3QgU3R5bGVkUG9wdXAgPSBzdHlsZWQoJ2RpdicsIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT5cbiAgICAhW1xuICAgICAgJ21heFdpZHRoJyxcbiAgICAgICdwb3NpdGlvbnMnLFxuICAgICAgJ3JldmVyc2VBbmltYXRpb24nLFxuICAgICAgJ21heEhlaWdodCcsXG4gICAgICAnYW5pbWF0aW9uRHVyYXRpb24nLFxuICAgICAgJ2lzRGlhbG9nJyxcbiAgICBdLmluY2x1ZGVzKHByb3ApLFxufSk8U3R5bGVkUG9wdXBQcm9wcz5gXG4gIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFN0cm9uZ2VyfTtcbiAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFN0cm9uZ2VyfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1heC13aWR0aDogJHsoeyBtYXhXaWR0aCB9KSA9PlxuICAgIHR5cGVvZiBtYXhXaWR0aCA9PT0gJ251bWJlcicgPyBgJHttYXhXaWR0aH1weGAgOiBtYXhXaWR0aH07XG4gIG1heC1oZWlnaHQ6ICR7KHsgbWF4SGVpZ2h0IH0pID0+XG4gICAgdHlwZW9mIG1heEhlaWdodCA9PT0gJ251bWJlcicgPyBgJHttYXhIZWlnaHR9cHhgIDogbWF4SGVpZ2h0fTtcbiAgb3ZlcmZsb3c6ICR7KHsgbWF4SGVpZ2h0IH0pID0+IChtYXhIZWlnaHQgPyAnYXV0bycgOiB1bmRlZmluZWQpfTtcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbiAgZm9udC1zaXplOiAwLjhyZW07XG4gIGluc2V0OiAwIGF1dG8gYXV0byAwO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIG9wYWNpdHk6IDA7XG4gIHotaW5kZXg6IDE7XG4gIHRyYW5zZm9ybTogJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLnBvcHVwUG9zaXRpb259O1xuXG4gICZbZGF0YS1hbmltYXRlZD1cInRydWVcIl0ge1xuICAgIGFuaW1hdGlvbjogJHsoeyBwb3NpdGlvbnMsIHJldmVyc2VBbmltYXRpb24sIGFuaW1hdGlvbkR1cmF0aW9uIH0pID0+IGNzc2BcbiAgICAgICR7YW5pbWF0aW9uRHVyYXRpb259bXMgJHtcbiAgICAgICAgIXJldmVyc2VBbmltYXRpb24gPyBhbmltYXRpb24ocG9zaXRpb25zKSA6IGV4aXRBbmltYXRpb24ocG9zaXRpb25zKVxuICAgICAgfSBmb3J3YXJkc1xuICAgIGB9O1xuICB9XG5cbiAgJltkYXRhLWhhcy1hcnJvdz1cInRydWVcIl0ge1xuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAkeyh7IHBvc2l0aW9ucyB9KSA9PiBwb3NpdGlvbnMuYXJyb3dUb3B9cHg7XG4gICAgICBsZWZ0OiAkeyh7IHBvc2l0aW9ucyB9KSA9PiBwb3NpdGlvbnMuYXJyb3dMZWZ0fXB4O1xuICAgICAgdHJhbnNmb3JtOiAkeyh7IHBvc2l0aW9ucyB9KSA9PiBwb3NpdGlvbnMuYXJyb3dUcmFuc2Zvcm19XG4gICAgICAgIHJvdGF0ZSgkeyh7IHBvc2l0aW9ucyB9KSA9PiBwb3NpdGlvbnMucm90YXRlfWRlZyk7XG4gICAgICBtYXJnaW4tbGVmdDogLSR7REVGQVVMVF9BUlJPV19XSURUSH1weDtcbiAgICAgIGJvcmRlci13aWR0aDogJHtERUZBVUxUX0FSUk9XX1dJRFRIfXB4O1xuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgIGJvcmRlci1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kU3Ryb25nZXJ9XG4gICAgICAgIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLXZpc2libGUtaW4tZG9tPVwiZmFsc2VcIl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkQ2hpbGRyZW5Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBpbmhlcml0O1xuXG4gICZbZGF0YS1jb250YWluZXItZnVsbC13aWR0aD1cInRydWVcIl0ge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5gXG5cbnR5cGUgUG9wdXBQcm9wcyA9IHtcbiAgLyoqXG4gICAqIElkIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGlmIG5vdCBzZXQuIEl0IGlzIHVzZWQgZm9yIGFzc29jaWF0aW5nIHBvcHVwIHdyYXBwZXIgd2l0aCBwb3B1cCBwb3J0YWwuXG4gICAqL1xuICBpZD86IHN0cmluZ1xuICBjaGlsZHJlbjpcbiAgICB8IFJlYWN0Tm9kZVxuICAgIHwgKChyZW5kZXJQcm9wczoge1xuICAgICAgICBjbGFzc05hbWU/OiBzdHJpbmdcbiAgICAgICAgb25CbHVyOiAoKSA9PiB2b2lkXG4gICAgICAgIG9uRm9jdXM6ICgpID0+IHZvaWRcbiAgICAgICAgb25Qb2ludGVyRW50ZXI6ICgpID0+IHZvaWRcbiAgICAgICAgb25Qb2ludGVyTGVhdmU6ICgpID0+IHZvaWRcbiAgICAgICAgcmVmOiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQgfCBudWxsPlxuICAgICAgfSkgPT4gUmVhY3ROb2RlKVxuICBtYXhXaWR0aD86IG51bWJlciB8IHN0cmluZ1xuICAvKipcbiAgICogYGF1dG9gIHBsYWNlbWVudCB3aWxsIGNoYW5nZSB0aGUgcG9zaXRpb24gb2YgdGhlIHBvcHVwIGlmIGl0IGRvZXNuJ3QgZml0IGluIHRoZSB2aWV3cG9ydC5cbiAgICovXG4gIHBsYWNlbWVudD86IFBvcHVwUGxhY2VtZW50XG4gIC8qKlxuICAgKiBBbGlnbiB0aGUgcG9wdXAgdG8gdGhlIHN0YXJ0IG9yIGNlbnRlciBvZiB0aGUgY2hpbGRyZW4uXG4gICAqL1xuICBhbGlnbj86IFBvcHVwQWxpZ25cbiAgLyoqXG4gICAqIENvbnRlbnQgb2YgdGhlIHBvcHVwLCBwcmVmZXJhYmx5IHRleHQgaW5zaWRlLlxuICAgKi9cbiAgdGV4dD86IFJlYWN0Tm9kZVxuICBjbGFzc05hbWU/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHdpbGwgYWRkIGB3aWR0aDogMTAwJWAgdG8gdGhlIHBvcHVwIGNvbnRhaW5lci5cbiAgICovXG4gIGNvbnRhaW5lckZ1bGxXaWR0aD86IGJvb2xlYW5cbiAgLyoqXG4gICAqIEl0IHdpbGwgZm9yY2UgZGlzcGxheSBwb3B1cC4gVGhpcyBjYW4gYmUgdXNlZnVsIGlmIHlvdSBuZWVkIHRvIGFsd2F5cyBkaXNwbGF5IHRoZSBwb3B1cCB3aXRob3V0IGhvdmVyIG5lZWRlZC5cbiAgICovXG4gIHZpc2libGU/OiBib29sZWFuXG4gIGlubmVyUmVmPzogUmVmPEhUTUxEaXZFbGVtZW50IHwgbnVsbD5cbiAgcm9sZT86IHN0cmluZ1xuICAnZGF0YS10ZXN0aWQnPzogc3RyaW5nXG4gIGhhc0Fycm93PzogYm9vbGVhblxuICBvbkNsb3NlPzogKCkgPT4gdm9pZFxuICB0YWJJbmRleD86IG51bWJlclxuICBvbktleURvd24/OiBLZXlib2FyZEV2ZW50SGFuZGxlclxuICAnYXJpYS1oYXNwb3B1cCc/OiBIVE1MQXR0cmlidXRlczxIVE1MRGl2RWxlbWVudD5bJ2FyaWEtaGFzcG9wdXAnXVxuICBoaWRlT25DbGlja091dHNpZGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugc2V0IGRlYm91bmNlVGltZSB0byBmYWxzZSwgdGhlIHBvcHVwIHdpbGwgbm90IGRlYm91bmNlIHRoZSBob3ZlciBldmVudCBhbmQgd2lsbCBiZSBkaXNwbGF5ZWQgaW5zdGFudGx5LlxuICAgKiBJZiBzZXQgdG8gMCBpdCB3aWxsIGRpc2FibGUgZGVib3VuY2UuXG4gICAqL1xuICBkZWJvdW5jZURlbGF5PzogbnVtYmVyXG4gIC8qKlxuICAgKiBJZiB5b3Ugc2V0IGEgbWF4IGhlaWdodCBrZWVwIGluIG1pbmQgdGhhdCB0aGUgYW5pbWF0aW9uIGlzIGRpc2FibGVkLCBvciBpdCB3aWxsIG5vdCB3b3JrIHByb3Blcmx5IG9uIHNvbWUgYnJvd3NlcnMuXG4gICAqL1xuICBtYXhIZWlnaHQ/OiBzdHJpbmcgfCBudW1iZXJcbiAgLyoqXG4gICAqIFdpbGwgcmVtb3ZlIHRoZSBhbmltYXRpb24gb24gdGhlIHBvcHVwIGlmIHNldCB0byBmYWxzZS5cbiAgICovXG4gIGRpc2FibGVBbmltYXRpb24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBCeSBkZWZhdWx0LCB0aGUgcG9ydGFsIHRhcmdldCBpcyBjaGlsZHJlbiBjb250YWluZXIgb3IgZG9jdW1lbnQuYm9keSBpZiBjaGlsZHJlbiBpcyBhIGZ1bmN0aW9uLiBZb3UgY2FuIG92ZXJyaWRlIHRoaXNcbiAgICogYmVoYXZpb3IgYnkgc2V0dGluZyBhIHBvcnRhbFRhcmdldCBwcm9wLlxuICAgKi9cbiAgcG9ydGFsVGFyZ2V0PzogSFRNTEVsZW1lbnRcbiAgLyoqXG4gICAqIElmIHlvdSBzZXQgdGhpcyB0byB0cnVlLCB0aGUgcG9wdXAgd2lsbCBiZSByZW5kZXJlZCBpbiB0aGUgRE9NIG9ubHkgd2hlbiBpdCBpcyB2aXNpYmxlLlxuICAgKiBXaGVuIHNldCB0byBmYWxzZSwgdGhlIHBvcHVwIHdpbGwgYWx3YXlzIGJlIHJlbmRlcmVkIGluIHRoZSBET00uIEJ5IGRlZmF1bHQgdGhpcyB2YWx1ZSBpcyBzZXQgdG8gYHRydWVgLCBpZiBmb3Igc29tZVxuICAgKiByZWFzb24geW91IG5lZWQgdG8gZGlzYWJsZSBpdCwgeW91IGNhbiBzZXQgaXQgdG8gYGZhbHNlYC5cbiAgICovXG4gIGR5bmFtaWNEb21SZW5kZXJpbmc/OiBib29sZWFuXG59XG5cbi8qKlxuICogQGV4cGVyaW1lbnRhbCBUaGlzIGNvbXBvbmVudCBpcyBleHBlcmltZW50YWwgYW5kIG1heSBiZSBzdWJqZWN0IHRvIGJyZWFraW5nIGNoYW5nZXMgaW4gdGhlIGZ1dHVyZS5cbiAqL1xuZXhwb3J0IGNvbnN0IFBvcHVwID0gZm9yd2FyZFJlZihcbiAgKFxuICAgIHtcbiAgICAgIGNoaWxkcmVuLFxuICAgICAgdGV4dCA9ICcnLFxuICAgICAgcGxhY2VtZW50ID0gJ2F1dG8nLFxuICAgICAgYWxpZ24gPSAnY2VudGVyJyxcbiAgICAgIGlkLFxuICAgICAgY2xhc3NOYW1lLFxuICAgICAgY29udGFpbmVyRnVsbFdpZHRoLFxuICAgICAgbWF4V2lkdGggPSAnMTQuNXJlbScsXG4gICAgICBtYXhIZWlnaHQsXG4gICAgICB2aXNpYmxlLFxuICAgICAgaW5uZXJSZWYsXG4gICAgICByb2xlID0gJ3BvcHVwJyxcbiAgICAgICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG4gICAgICBoYXNBcnJvdyA9IHRydWUsXG4gICAgICBvbkNsb3NlLFxuICAgICAgdGFiSW5kZXggPSAwLFxuICAgICAgb25LZXlEb3duLFxuICAgICAgJ2FyaWEtaGFzcG9wdXAnOiBhcmlhSGFzUG9wdXAsXG4gICAgICBoaWRlT25DbGlja091dHNpZGUgPSBmYWxzZSxcbiAgICAgIGRlYm91bmNlRGVsYXkgPSBERUZBVUxUX0RFQk9VTkNFX0RVUkFUSU9OLFxuICAgICAgZGlzYWJsZUFuaW1hdGlvbiA9IGZhbHNlLFxuICAgICAgcG9ydGFsVGFyZ2V0LFxuICAgICAgZHluYW1pY0RvbVJlbmRlcmluZyA9IHRydWUsXG4gICAgfTogUG9wdXBQcm9wcyxcbiAgICByZWY6IFJlZjxIVE1MRGl2RWxlbWVudD4sXG4gICkgPT4ge1xuICAgIGNvbnN0IGNoaWxkcmVuUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICAgIHVzZUltcGVyYXRpdmVIYW5kbGUoaW5uZXJSZWYsICgpID0+IGNoaWxkcmVuUmVmLmN1cnJlbnQgYXMgSFRNTERpdkVsZW1lbnQpXG5cbiAgICBjb25zdCBpbm5lclBvcHVwUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICAgIHVzZUltcGVyYXRpdmVIYW5kbGUocmVmLCAoKSA9PiBpbm5lclBvcHVwUmVmLmN1cnJlbnQgYXMgSFRNTERpdkVsZW1lbnQpXG5cbiAgICBjb25zdCB0aW1lciA9IHVzZVJlZjxSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0Pj4odW5kZWZpbmVkKVxuICAgIGNvbnN0IHBvcHVwUG9ydGFsVGFyZ2V0ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAocG9ydGFsVGFyZ2V0KSByZXR1cm4gcG9ydGFsVGFyZ2V0XG5cbiAgICAgIGlmIChyb2xlID09PSAnZGlhbG9nJykge1xuICAgICAgICBpZiAoY2hpbGRyZW5SZWYuY3VycmVudCkgcmV0dXJuIGNoaWxkcmVuUmVmLmN1cnJlbnRcbiAgICAgICAgaWYgKGlzQ2xpZW50U2lkZSkgcmV0dXJuIGRvY3VtZW50LmJvZHlcblxuICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgfVxuXG4gICAgICAvLyBXZSBjaGVjayBpZiB3aW5kb3cgZXhpc3RzIGZvciBTU1JcbiAgICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICByZXR1cm4gZG9jdW1lbnQuYm9keVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbnVsbFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICAgIH0sIFtwb3J0YWxUYXJnZXQsIHJvbGUsIGNoaWxkcmVuUmVmLmN1cnJlbnRdKVxuXG4gICAgLy8gVGhlcmUgYXJlIHNvbWUgaXNzdWUgd2hlbiBtaXhpbmcgYW5pbWF0aW9uIGFuZCBtYXhIZWlnaHQgb24gc29tZSBicm93c2Vycywgc28gd2UgZGlzYWJsZSBhbmltYXRpb24gaWYgbWF4SGVpZ2h0IGlzIHNldC5cbiAgICBjb25zdCBhbmltYXRpb25EdXJhdGlvbiA9XG4gICAgICBkaXNhYmxlQW5pbWF0aW9uIHx8IG1heEhlaWdodCA/IDAgOiBERUZBVUxUX0FOSU1BVElPTl9EVVJBVElPTlxuXG4gICAgLy8gRGVib3VuY2UgdGltZXIgd2lsbCBiZSB1c2VkIHRvIHByZXZlbnQgdGhlIHBvcHVwIGZyb20gZmxpY2tlcmluZyB3aGVuIHRoZSB1c2VyIG1vdmVzIHRoZSBtb3VzZSBvdXQgYW5kIGluIHRoZSBjaGlsZHJlbiBlbGVtZW50LlxuICAgIGNvbnN0IGRlYm91bmNlVGltZXIgPSB1c2VSZWY8UmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4+KHVuZGVmaW5lZClcbiAgICBjb25zdCBbdmlzaWJsZUluRG9tLCBzZXRWaXNpYmxlSW5Eb21dID0gdXNlU3RhdGUoZmFsc2UpXG4gICAgY29uc3QgW3JldmVyc2VBbmltYXRpb24sIHNldFJldmVyc2VBbmltYXRpb25dID0gdXNlU3RhdGUoZmFsc2UpXG4gICAgY29uc3QgW3Bvc2l0aW9ucywgc2V0UG9zaXRpb25zXSA9IHVzZVN0YXRlPFBvc2l0aW9uc1R5cGU+KHtcbiAgICAgIC4uLkRFRkFVTFRfUE9TSVRJT05TLFxuICAgIH0pXG4gICAgY29uc3QgdW5pcXVlSWQgPSB1c2VJZCgpXG4gICAgY29uc3QgZ2VuZXJhdGVkSWQgPSBpZCA/PyB1bmlxdWVJZFxuICAgIGNvbnN0IGlzQ29udHJvbGxlZCA9IHZpc2libGUgIT09IHVuZGVmaW5lZFxuXG4gICAgY29uc3QgZ2VuZXJhdGVQb3B1cFBvc2l0aW9ucyA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmIChjaGlsZHJlblJlZi5jdXJyZW50ICYmIGlubmVyUG9wdXBSZWYuY3VycmVudCkge1xuICAgICAgICBzZXRQb3NpdGlvbnMoXG4gICAgICAgICAgY29tcHV0ZVBvc2l0aW9ucyh7XG4gICAgICAgICAgICBjaGlsZHJlblJlZixcbiAgICAgICAgICAgIHBsYWNlbWVudCxcbiAgICAgICAgICAgIHBvcHVwUmVmOiBpbm5lclBvcHVwUmVmLFxuICAgICAgICAgICAgcG9wdXBQb3J0YWxUYXJnZXQ6IHBvcHVwUG9ydGFsVGFyZ2V0IGFzIEhUTUxFbGVtZW50LFxuICAgICAgICAgICAgaGFzQXJyb3csXG4gICAgICAgICAgICBhbGlnbixcbiAgICAgICAgICB9KSxcbiAgICAgICAgKVxuICAgICAgfVxuICAgIH0sIFtoYXNBcnJvdywgcGxhY2VtZW50LCBwb3B1cFBvcnRhbFRhcmdldCwgYWxpZ25dKVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiB3ZSBuZWVkIHRvIHJlY29tcHV0ZSBwb3NpdGlvbnMgb2YgcG9wdXAgZHVlIHRvIHdpbmRvdyBzY3JvbGwgb3IgcmVzaXplLlxuICAgICAqL1xuICAgIGNvbnN0IG9uV2luZG93Q2hhbmdlRGV0ZWN0ZWQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICAvLyBXZSByZW1vdmUgYW5pbWF0aW9uIG9uIHNjcm9sbCBvciB0aGUgYW5pbWF0aW9uIHdpbGwgcmVzdGFydCBvbiBldmVyeSBzY3JvbGxcbiAgICAgIGlmIChpbm5lclBvcHVwUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgaW5uZXJQb3B1cFJlZi5jdXJyZW50LnN0eWxlLmFuaW1hdGlvbiA9ICdub25lJ1xuICAgICAgfVxuXG4gICAgICBnZW5lcmF0ZVBvcHVwUG9zaXRpb25zKClcbiAgICB9LCBbZ2VuZXJhdGVQb3B1cFBvc2l0aW9ucywgaW5uZXJQb3B1cFJlZl0pXG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHdlIG5lZWQgdG8gcmVtb3ZlIHBvcHVwIHBvcnRhbCBmcm9tIERPTSBhbmQgcmVtb3ZlIGV2ZW50IGxpc3RlbmVyIHRvIGl0LlxuICAgICAqL1xuICAgIGNvbnN0IHVubW91bnRQb3B1cEZyb21Eb20gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBzZXRWaXNpYmxlSW5Eb20oZmFsc2UpXG4gICAgICBzZXRSZXZlcnNlQW5pbWF0aW9uKGZhbHNlKVxuXG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgb25XaW5kb3dDaGFuZ2VEZXRlY3RlZCwgdHJ1ZSlcbiAgICB9LCBbb25XaW5kb3dDaGFuZ2VEZXRlY3RlZF0pXG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHdlIG5lZWQgdG8gaGlkZSBwb3B1cC4gQSB0aW1lb3V0IGlzIHNldCB0byBhbGxvdyBhbmltYXRpb24gZW5kLCB0aGVuIHJlbW92ZVxuICAgICAqIHBvcHVwIGZyb20gZG9tLlxuICAgICAqL1xuICAgIGNvbnN0IGNsb3NlUG9wdXAgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBkZWJvdW5jZVRpbWVyLmN1cnJlbnQgPSBzZXRUaW1lb3V0KFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgc2V0UmV2ZXJzZUFuaW1hdGlvbih0cnVlKVxuICAgICAgICAgIHRpbWVyLmN1cnJlbnQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHVubW91bnRQb3B1cEZyb21Eb20oKVxuICAgICAgICAgICAgb25DbG9zZT8uKClcbiAgICAgICAgICB9LCBhbmltYXRpb25EdXJhdGlvbilcbiAgICAgICAgfSxcbiAgICAgICAgZGVib3VuY2VEZWxheSAmJiAhZGlzYWJsZUFuaW1hdGlvbiA/IGRlYm91bmNlRGVsYXkgOiAwLFxuICAgICAgKVxuICAgIH0sIFtcbiAgICAgIGFuaW1hdGlvbkR1cmF0aW9uLFxuICAgICAgZGlzYWJsZUFuaW1hdGlvbixcbiAgICAgIGRlYm91bmNlRGVsYXksXG4gICAgICBvbkNsb3NlLFxuICAgICAgdW5tb3VudFBvcHVwRnJvbURvbSxcbiAgICBdKVxuXG4gICAgLyoqXG4gICAgICogV2hlbiBtb3VzZSBob3ZlciBvciBzdG9wIGhvdmVyaW5nIGNoaWxkcmVuIHRoaXMgZnVuY3Rpb24gZGlzcGxheSBvciBoaWRlIHBvcHVwLiBBIHRpbWVvdXQgaXMgc2V0IHRvIGFsbG93IGFuaW1hdGlvblxuICAgICAqIGVuZCwgdGhlbiByZW1vdmUgcG9wdXAgZnJvbSBkb20uXG4gICAgICovXG4gICAgY29uc3Qgb25Qb2ludGVyRXZlbnQgPSB1c2VDYWxsYmFjayhcbiAgICAgIChpc1Zpc2libGU6IGJvb2xlYW4pID0+ICgpID0+IHtcbiAgICAgICAgLy8gSWYgdGhlcmUgaXMgYSBkZWJvdW5jZURlbGF5IGFuZCB0aGUgcG9wdXAgaXMgbm90IHZpc2libGUsIHdlIGNsZWFyIHRoZSBkZWJvdW5jZSB0aW1lclxuICAgICAgICBpZiAoIXZpc2libGUgJiYgZGVib3VuY2VEZWxheSA+IDAgJiYgZGVib3VuY2VUaW1lci5jdXJyZW50KSB7XG4gICAgICAgICAgY2xlYXJUaW1lb3V0KGRlYm91bmNlVGltZXIuY3VycmVudClcbiAgICAgICAgICBkZWJvdW5jZVRpbWVyLmN1cnJlbnQgPSB1bmRlZmluZWRcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRoaXMgY29uZGl0aW9uIGlzIGZvciB3aGVuIHdlIHdhbnQgdG8gdW5tb3VudCB0aGUgcG9wdXBcbiAgICAgICAgLy8gVGhlcmUgaXMgZGVib3VuY2UgaW4gb3JkZXIgdG8gYXZvaWQgcG9wdXAgdG8gZmxpY2tlciB3aGVuIHdlIG1vdmUgdGhlIG1vdXNlIGZyb20gY2hpbGRyZW4gdG8gcG9wdXBcbiAgICAgICAgLy8gVGltZXIgaXMgdXNlZCB0byBmb2xsb3cgdGhlIGFuaW1hdGlvbiBkdXJhdGlvblxuICAgICAgICBpZiAoIWlzVmlzaWJsZSAmJiBpbm5lclBvcHVwUmVmLmN1cnJlbnQgJiYgIWRlYm91bmNlVGltZXIuY3VycmVudCkge1xuICAgICAgICAgIGNsb3NlUG9wdXAoKVxuICAgICAgICB9IGVsc2UgaWYgKGlzVmlzaWJsZSkge1xuICAgICAgICAgIC8vIFRoaXMgY29uZGl0aW9uIGlzIGZvciB3aGVuIHdlIHdhbnQgdG8gbW91bnQgdGhlIHBvcHVwXG4gICAgICAgICAgLy8gSWYgdGhlIHRpbWVyIGV4aXN0cyBpdCBtZWFucyB0aGUgcG9wdXAgd2FzIGFib3V0IHRvIHVtb3VudCwgYnV0IHdlIGhvdmVyZWQgdGhlIGNoaWxkcmVuIGFnYWluLFxuICAgICAgICAgIC8vIHNvIHdlIGNsZWFyIHRoZSB0aW1lciBhbmQgdGhlIHBvcHVwIHdpbGwgbm90IGJlIHVubW91bnRlZFxuICAgICAgICAgIGlmICh0aW1lci5jdXJyZW50KSB7XG4gICAgICAgICAgICBzZXRSZXZlcnNlQW5pbWF0aW9uKGZhbHNlKVxuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVyLmN1cnJlbnQpXG4gICAgICAgICAgICB0aW1lci5jdXJyZW50ID0gdW5kZWZpbmVkXG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIEFuZCBoZXJlIGlzIHdoZW4gd2UgY3VycmVudGx5IGFyZSBpbiBhIGRlYm91bmNlIHRpbWVyLCBpdCBtZWFucyBwb3B1cCB3YXMgaG92ZXJlZCBkdXJpbmdcbiAgICAgICAgICAvLyB0aGF0IHBlcmlvZCwgYW5kIHNvIHdlIGNhbiBjbGVhciBkZWJvdW5jZSB0aW1lclxuICAgICAgICAgIGlmIChkZWJvdW5jZVRpbWVyLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dChkZWJvdW5jZVRpbWVyLmN1cnJlbnQpXG4gICAgICAgICAgICBkZWJvdW5jZVRpbWVyLmN1cnJlbnQgPSB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGRlYm91bmNlRGVsYXkgPiAwKSB7XG4gICAgICAgICAgICBkZWJvdW5jZVRpbWVyLmN1cnJlbnQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgc2V0VmlzaWJsZUluRG9tKHRydWUpXG4gICAgICAgICAgICB9LCBkZWJvdW5jZURlbGF5KVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdGFydFRyYW5zaXRpb24oKCkgPT4ge1xuICAgICAgICAgICAgICBzZXRWaXNpYmxlSW5Eb20odHJ1ZSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgW2Nsb3NlUG9wdXAsIGRlYm91bmNlRGVsYXksIHZpc2libGVdLFxuICAgIClcblxuICAgIC8qKlxuICAgICAqIE9uY2UgcG9wdXAgaXMgdmlzaWJsZSBpbiB0aGUgZG9tIHdlIGNhbiBjb21wdXRlIHBvc2l0aW9ucywgdGhlbiBzZXQgaXQgdmlzaWJsZSBvbiBzY3JlZW4gYW5kIGFkZCBldmVudCB0b1xuICAgICAqIHJlY29tcHV0ZSBwb3NpdGlvbnMgb24gc2Nyb2xsIG9yIHNjcmVlbiByZXNpemUuXG4gICAgICovXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICh2aXNpYmxlSW5Eb20pIHtcbiAgICAgICAgZ2VuZXJhdGVQb3B1cFBvc2l0aW9ucygpXG5cbiAgICAgICAgaWYgKHBvcHVwUG9ydGFsVGFyZ2V0ID09PSBkb2N1bWVudC5ib2R5KSB7XG4gICAgICAgICAgLy8gV2Ugd2FudCB0byBkZXRlY3Qgc2Nyb2xsIGFuZCByZXNpemUgaW4gb3JkZXIgdG8gcmVjb21wdXRlIHBvc2l0aW9ucyBvZiBwb3B1cFxuICAgICAgICAgIC8vIEFkZGluZyB0cnVlIGFzIHRoaXJkIHBhcmFtZXRlciB0byBldmVudCBsaXN0ZW5lciB3aWxsIGRldGVjdCBuZXN0ZWQgc2Nyb2xscy5cbiAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgb25XaW5kb3dDaGFuZ2VEZXRlY3RlZCwgdHJ1ZSlcbiAgICAgICAgfVxuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgb25XaW5kb3dDaGFuZ2VEZXRlY3RlZCwgdHJ1ZSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIG9uV2luZG93Q2hhbmdlRGV0ZWN0ZWQsIHRydWUpXG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCBvbldpbmRvd0NoYW5nZURldGVjdGVkLCB0cnVlKVxuICAgICAgICBpZiAodGltZXIuY3VycmVudCkge1xuICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lci5jdXJyZW50KVxuICAgICAgICAgIHRpbWVyLmN1cnJlbnQgPSB1bmRlZmluZWRcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sIFtcbiAgICAgIGdlbmVyYXRlUG9wdXBQb3NpdGlvbnMsXG4gICAgICBvbldpbmRvd0NoYW5nZURldGVjdGVkLFxuICAgICAgdmlzaWJsZUluRG9tLFxuICAgICAgbWF4V2lkdGgsXG4gICAgICBwb3B1cFBvcnRhbFRhcmdldCxcbiAgICBdKVxuXG4gICAgLy8gVGhpcyB3aWxsIGJlIHRyaWdnZXJlZCB3aGVuIHBvc2l0aW9ucyBhcmUgY29tcHV0ZWQgYW5kIHBvcHVwIGlzIHZpc2libGUgaW4gdGhlIGRvbS5cbiAgICB1c2VFZmZlY3QoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGlmICh2aXNpYmxlSW5Eb20gJiYgaW5uZXJQb3B1cFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgaW5uZXJQb3B1cFJlZi5jdXJyZW50LnN0eWxlLm9wYWNpdHkgPSAnMSdcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICAgIFtwb3NpdGlvbnNdLFxuICAgIClcblxuICAgIC8qKlxuICAgICAqIElmIHBvcHVwIGhhcyBgdmlzaWJsZWAgcHJvcCBpdCBtZWFucyB0aGUgcG9wdXAgaXMgbWFudWFsbHkgY29udHJvbGxlZCB0aHJvdWdoIHRoaXMgcHJvcC5cbiAgICAgKiBJbiB0aGlzIGNhcyB3ZSBkb24ndCB3YW50IHRvIGRpc3BsYXkgcG9wdXAgb24gaG92ZXIsIGJ1dCBvbmx5IHdoZW4gYHZpc2libGVgIGlzIHRydWUuXG4gICAgICovXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChpc0NvbnRyb2xsZWQpIHtcbiAgICAgICAgb25Qb2ludGVyRXZlbnQodmlzaWJsZSkoKVxuICAgICAgfVxuICAgIH0sIFtpc0NvbnRyb2xsZWQsIG9uUG9pbnRlckV2ZW50LCB2aXNpYmxlXSlcblxuICAgIC8vIEhhbmRsZSBoaWRlIG9uIGVzYyBwcmVzcyBhbmQgaGlkZSBvbiBjbGljayBvdXRzaWRlXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGhhbmRsZUVzY1ByZXNzID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgICAgY2xvc2VQb3B1cCgpXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgaGFuZGxlQ2xpY2tPdXRzaWRlID0gKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IHBvcHVwQ3VycmVudCA9IGlubmVyUG9wdXBSZWYuY3VycmVudFxuICAgICAgICBjb25zdCBjaGlsZHJlbkN1cnJlbnQgPSBjaGlsZHJlblJlZi5jdXJyZW50XG5cbiAgICAgICAgaWYgKHBvcHVwQ3VycmVudCAmJiBoaWRlT25DbGlja091dHNpZGUgJiYgIWV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBldmVudC50YXJnZXQgJiZcbiAgICAgICAgICAgIGV2ZW50LnRhcmdldCAhPT0gcG9wdXBDdXJyZW50ICYmXG4gICAgICAgICAgICBldmVudC50YXJnZXQgIT09IGNoaWxkcmVuQ3VycmVudCAmJlxuICAgICAgICAgICAgIWNoaWxkcmVuQ3VycmVudD8uY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgICAhcG9wdXBDdXJyZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBOb2RlKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgICAgIGNsb3NlUG9wdXAoKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHZpc2libGVJbkRvbSkge1xuICAgICAgICBkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoJ2tleXVwJywgaGFuZGxlRXNjUHJlc3MpXG4gICAgICAgIGRvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBoYW5kbGVDbGlja091dHNpZGUpXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5dXAnLCBoYW5kbGVFc2NQcmVzcylcbiAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIGhhbmRsZUNsaWNrT3V0c2lkZSlcbiAgICAgIH1cbiAgICB9LCBbXG4gICAgICBjbG9zZVBvcHVwLFxuICAgICAgdmlzaWJsZUluRG9tLFxuICAgICAgaW5uZXJQb3B1cFJlZixcbiAgICAgIGNoaWxkcmVuUmVmLFxuICAgICAgaGlkZU9uQ2xpY2tPdXRzaWRlLFxuICAgIF0pXG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGV2ZW50IHdpbGwgb2NjdXIgb25seSBmb3IgZGlhbG9nIGFuZCB3aWxsIHRyYXAgZm9jdXMgaW5zaWRlIHRoZSBkaWFsb2cuXG4gICAgICovXG4gICAgY29uc3QgaGFuZGxlRm9jdXNUcmFwOiBLZXlib2FyZEV2ZW50SGFuZGxlciA9IHVzZUNhbGxiYWNrKGV2ZW50ID0+IHtcbiAgICAgIGNvbnN0IGlzVGFiUHJlc3NlZCA9IGV2ZW50LmtleSA9PT0gJ1RhYidcbiAgICAgIGlmICghaXNUYWJQcmVzc2VkKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcblxuICAgICAgY29uc3QgZm9jdXNhYmxlRWxzID1cbiAgICAgICAgaW5uZXJQb3B1cFJlZi5jdXJyZW50Py5xdWVyeVNlbGVjdG9yQWxsKFxuICAgICAgICAgICdhW2hyZWZdOm5vdChbZGlzYWJsZWRdKSwgYnV0dG9uOm5vdChbZGlzYWJsZWRdKSwgdGV4dGFyZWE6bm90KFtkaXNhYmxlZF0pLCBpbnB1dDpub3QoW2Rpc2FibGVkXSksIHNlbGVjdDpub3QoW2Rpc2FibGVkXSknLFxuICAgICAgICApID8/IFtdXG5cbiAgICAgIC8vIEhhbmRsZSBjYXNlIHdoZW4gbm8gaW50ZXJhY3RpdmUgZWxlbWVudCBhcmUgd2l0aGluIHRoZSBtb2RhbCAoaW5jbHVkaW5nIGNsb3NlIGljb24pXG4gICAgICBpZiAoZm9jdXNhYmxlRWxzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGZpcnN0Rm9jdXNhYmxlRWwgPSBmb2N1c2FibGVFbHNbMF0gYXMgSFRNTEVsZW1lbnRcbiAgICAgIGNvbnN0IGxhc3RGb2N1c2FibGVFbCA9IGZvY3VzYWJsZUVsc1tcbiAgICAgICAgZm9jdXNhYmxlRWxzLmxlbmd0aCAtIDFcbiAgICAgIF0gYXMgSFRNTEVsZW1lbnRcblxuICAgICAgaWYgKGV2ZW50LnNoaWZ0S2V5KSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBmaXJzdEZvY3VzYWJsZUVsIHx8XG4gICAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gaW5uZXJQb3B1cFJlZi5jdXJyZW50XG4gICAgICAgICkge1xuICAgICAgICAgIGxhc3RGb2N1c2FibGVFbC5mb2N1cygpXG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKFxuICAgICAgICBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBsYXN0Rm9jdXNhYmxlRWwgfHxcbiAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gaW5uZXJQb3B1cFJlZi5jdXJyZW50XG4gICAgICApIHtcbiAgICAgICAgZmlyc3RGb2N1c2FibGVFbC5mb2N1cygpXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgIH1cbiAgICB9LCBbXSlcblxuICAgIC8qKlxuICAgICAqIFdpbGwgcmVuZGVyIGNoaWxkcmVuIGNvbmRpdGlvbmFsbHkgaWYgY2hpbGRyZW4gaXMgYSBmdW5jdGlvbiBvciBub3QuXG4gICAgICovXG4gICAgY29uc3QgcmVuZGVyQ2hpbGRyZW4gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBpZiAodHlwZW9mIGNoaWxkcmVuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiBjaGlsZHJlbih7XG4gICAgICAgICAgb25CbHVyOiAhaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQoZmFsc2UpIDogbm9vcCxcbiAgICAgICAgICBvbkZvY3VzOiAhaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQodHJ1ZSkgOiBub29wLFxuICAgICAgICAgIG9uUG9pbnRlckVudGVyOiAhaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQodHJ1ZSkgOiBub29wLFxuICAgICAgICAgIG9uUG9pbnRlckxlYXZlOiAhaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQoZmFsc2UpIDogbm9vcCxcbiAgICAgICAgICByZWY6IGNoaWxkcmVuUmVmLFxuICAgICAgICB9KVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkQ2hpbGRyZW5Db250YWluZXJcbiAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PXtnZW5lcmF0ZWRJZH1cbiAgICAgICAgICBhcmlhLWNvbnRyb2xzPXtnZW5lcmF0ZWRJZH1cbiAgICAgICAgICBvbkJsdXI9eyFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudChmYWxzZSkgOiBub29wfVxuICAgICAgICAgIG9uRm9jdXM9eyFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudCh0cnVlKSA6IG5vb3B9XG4gICAgICAgICAgb25Qb2ludGVyRW50ZXI9eyFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudCh0cnVlKSA6IG5vb3B9XG4gICAgICAgICAgb25Qb2ludGVyTGVhdmU9eyFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudChmYWxzZSkgOiBub29wfVxuICAgICAgICAgIHJlZj17Y2hpbGRyZW5SZWZ9XG4gICAgICAgICAgdGFiSW5kZXg9e3RhYkluZGV4fVxuICAgICAgICAgIG9uS2V5RG93bj17ZXZlbnQgPT4ge1xuICAgICAgICAgICAgb25LZXlEb3duPy4oZXZlbnQpXG4gICAgICAgICAgfX1cbiAgICAgICAgICBkYXRhLWNvbnRhaW5lci1mdWxsLXdpZHRoPXtjb250YWluZXJGdWxsV2lkdGh9XG4gICAgICAgICAgYXJpYS1oYXNwb3B1cD17YXJpYUhhc1BvcHVwfVxuICAgICAgICA+XG4gICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICA8L1N0eWxlZENoaWxkcmVuQ29udGFpbmVyPlxuICAgICAgKVxuICAgIH0sIFtcbiAgICAgIGFyaWFIYXNQb3B1cCxcbiAgICAgIGNoaWxkcmVuLFxuICAgICAgY29udGFpbmVyRnVsbFdpZHRoLFxuICAgICAgZ2VuZXJhdGVkSWQsXG4gICAgICBpc0NvbnRyb2xsZWQsXG4gICAgICBvbktleURvd24sXG4gICAgICBvblBvaW50ZXJFdmVudCxcbiAgICAgIHRhYkluZGV4LFxuICAgIF0pXG5cbiAgICBjb25zdCBzaG91bGRSZW5kZXIgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmICghZHluYW1pY0RvbVJlbmRlcmluZykge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICBpZiAoZHluYW1pY0RvbVJlbmRlcmluZyAmJiB2aXNpYmxlSW5Eb20pIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfSwgW2R5bmFtaWNEb21SZW5kZXJpbmcsIHZpc2libGVJbkRvbV0pXG5cbiAgICBpZiAoIXRleHQpIHtcbiAgICAgIGlmICh0eXBlb2YgY2hpbGRyZW4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGNoaWxkcmVuXG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIHtyZW5kZXJDaGlsZHJlbigpfVxuICAgICAgICB7c2hvdWxkUmVuZGVyXG4gICAgICAgICAgPyBjcmVhdGVQb3J0YWwoXG4gICAgICAgICAgICAgIDxTdHlsZWRQb3B1cFxuICAgICAgICAgICAgICAgIHJlZj17aW5uZXJQb3B1cFJlZn1cbiAgICAgICAgICAgICAgICBwb3NpdGlvbnM9e3Bvc2l0aW9uc31cbiAgICAgICAgICAgICAgICBtYXhXaWR0aD17bWF4V2lkdGh9XG4gICAgICAgICAgICAgICAgbWF4SGVpZ2h0PXttYXhIZWlnaHR9XG4gICAgICAgICAgICAgICAgcm9sZT17cm9sZX1cbiAgICAgICAgICAgICAgICBpZD17Z2VuZXJhdGVkSWR9XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgICAgICAgICAgICAgcmV2ZXJzZUFuaW1hdGlvbj17cmV2ZXJzZUFuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICBkYXRhLXRlc3RpZD17ZGF0YVRlc3RJZH1cbiAgICAgICAgICAgICAgICBkYXRhLWhhcy1hcnJvdz17aGFzQXJyb3d9XG4gICAgICAgICAgICAgICAgb25DbGljaz17c3RvcENsaWNrUHJvcGFnYXRpb259XG4gICAgICAgICAgICAgICAgb25Qb2ludGVyRW50ZXI9eyFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudCh0cnVlKSA6IG5vb3B9XG4gICAgICAgICAgICAgICAgb25Qb2ludGVyTGVhdmU9eyFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudChmYWxzZSkgOiBub29wfVxuICAgICAgICAgICAgICAgIGFuaW1hdGlvbkR1cmF0aW9uPXthbmltYXRpb25EdXJhdGlvbn1cbiAgICAgICAgICAgICAgICBvbktleURvd249e3JvbGUgPT09ICdkaWFsb2cnID8gaGFuZGxlRm9jdXNUcmFwIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICAgIGlzRGlhbG9nPXtyb2xlID09PSAnZGlhbG9nJ31cbiAgICAgICAgICAgICAgICBkYXRhLXZpc2libGUtaW4tZG9tPXtcbiAgICAgICAgICAgICAgICAgICFkeW5hbWljRG9tUmVuZGVyaW5nID8gdmlzaWJsZUluRG9tIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGRhdGEtYW5pbWF0ZWQ9e2FuaW1hdGlvbkR1cmF0aW9uID4gMCAmJiAhbWF4SGVpZ2h0fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3RleHR9XG4gICAgICAgICAgICAgIDwvU3R5bGVkUG9wdXA+LFxuICAgICAgICAgICAgICBwb3B1cFBvcnRhbFRhcmdldCBhcyBIVE1MRWxlbWVudCxcbiAgICAgICAgICAgIClcbiAgICAgICAgICA6IG51bGx9XG4gICAgICA8Lz5cbiAgICApXG4gIH0sXG4pXG4iXX0= */"));
56
+ }) => theme.colors.neutral.backgroundStronger, ' transparent transparent transparent;pointer-events:none;}}&[data-visible-in-dom="false"]{display:none;}' + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1BvcHVwL2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUErRG9CIiwiZmlsZSI6Ii9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1BvcHVwL2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0J1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnXG5pbXBvcnQgdHlwZSB7XG4gIEhUTUxBdHRyaWJ1dGVzLFxuICBLZXlib2FyZEV2ZW50SGFuZGxlcixcbiAgTW91c2VFdmVudEhhbmRsZXIsXG4gIFJlYWN0Tm9kZSxcbiAgUmVmLFxuICBSZWZPYmplY3QsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHtcbiAgZm9yd2FyZFJlZixcbiAgc3RhcnRUcmFuc2l0aW9uLFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VJZCxcbiAgdXNlSW1wZXJhdGl2ZUhhbmRsZSxcbiAgdXNlTWVtbyxcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBjcmVhdGVQb3J0YWwgfSBmcm9tICdyZWFjdC1kb20nXG5pbXBvcnQgeyBpc0NsaWVudFNpZGUgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2lzQ2xpZW50U2lkZSdcbmltcG9ydCB0eXBlIHsgUG9zaXRpb25zVHlwZSB9IGZyb20gJy4vYW5pbWF0aW9ucydcbmltcG9ydCB7IGFuaW1hdGlvbiwgZXhpdEFuaW1hdGlvbiB9IGZyb20gJy4vYW5pbWF0aW9ucydcbmltcG9ydCB0eXBlIHsgUG9wdXBBbGlnbiwgUG9wdXBQbGFjZW1lbnQgfSBmcm9tICcuL2hlbHBlcnMnXG5pbXBvcnQge1xuICBERUZBVUxUX0FSUk9XX1dJRFRILFxuICBERUZBVUxUX1BPU0lUSU9OUyxcbiAgY29tcHV0ZVBvc2l0aW9ucyxcbn0gZnJvbSAnLi9oZWxwZXJzJ1xuXG5jb25zdCBERUZBVUxUX0FOSU1BVElPTl9EVVJBVElPTiA9IDIzMCAvLyBpbiBtc1xuY29uc3QgREVGQVVMVF9ERUJPVU5DRV9EVVJBVElPTiA9IDIwMCAvLyBpbiBtc1xuXG5jb25zdCBub29wID0gKCkgPT4ge31cblxudHlwZSBTdHlsZWRQb3B1cFByb3BzID0ge1xuICBtYXhXaWR0aDogbnVtYmVyIHwgc3RyaW5nXG4gIHBvc2l0aW9uczogUG9zaXRpb25zVHlwZVxuICByZXZlcnNlQW5pbWF0aW9uOiBib29sZWFuXG4gIG1heEhlaWdodD86IG51bWJlciB8IHN0cmluZ1xuICBhbmltYXRpb25EdXJhdGlvbj86IG51bWJlclxuICBpc0RpYWxvZzogYm9vbGVhblxufVxuXG4vKipcbiAqIFRoaXMgZXZlbnQgaGFuZGxlIGFsbG93IHVzIHRvIG5vdCBidWJibGUgdGhlIGV2ZW50IHRvIGRvY3VtZW50LmJvZHkgbGlrZSB0aGlzIHJlYWN0LXNlbGVjdCB3b3JrcyBmaW5lXG4gKi9cbmNvbnN0IHN0b3BDbGlja1Byb3BhZ2F0aW9uOiBNb3VzZUV2ZW50SGFuZGxlciA9IGV2ZW50ID0+IHtcbiAgZXZlbnQubmF0aXZlRXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKClcbn1cblxuY29uc3QgU3R5bGVkUG9wdXAgPSBzdHlsZWQoJ2RpdicsIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT5cbiAgICAhW1xuICAgICAgJ21heFdpZHRoJyxcbiAgICAgICdwb3NpdGlvbnMnLFxuICAgICAgJ3JldmVyc2VBbmltYXRpb24nLFxuICAgICAgJ21heEhlaWdodCcsXG4gICAgICAnYW5pbWF0aW9uRHVyYXRpb24nLFxuICAgICAgJ2lzRGlhbG9nJyxcbiAgICBdLmluY2x1ZGVzKHByb3ApLFxufSk8U3R5bGVkUG9wdXBQcm9wcz5gXG4gIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFN0cm9uZ2VyfTtcbiAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFN0cm9uZ2VyfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1heC13aWR0aDogJHsoeyBtYXhXaWR0aCB9KSA9PlxuICAgIHR5cGVvZiBtYXhXaWR0aCA9PT0gJ251bWJlcicgPyBgJHttYXhXaWR0aH1weGAgOiBtYXhXaWR0aH07XG4gIG1heC1oZWlnaHQ6ICR7KHsgbWF4SGVpZ2h0IH0pID0+XG4gICAgdHlwZW9mIG1heEhlaWdodCA9PT0gJ251bWJlcicgPyBgJHttYXhIZWlnaHR9cHhgIDogbWF4SGVpZ2h0fTtcbiAgb3ZlcmZsb3c6ICR7KHsgbWF4SGVpZ2h0IH0pID0+IChtYXhIZWlnaHQgPyAnYXV0bycgOiB1bmRlZmluZWQpfTtcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbiAgZm9udC1zaXplOiAwLjhyZW07XG4gIGluc2V0OiAwIGF1dG8gYXV0byAwO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIG9wYWNpdHk6IDA7XG4gIHotaW5kZXg6IDE7XG4gIHRyYW5zZm9ybTogJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLnBvcHVwUG9zaXRpb259O1xuXG4gICZbZGF0YS1hbmltYXRlZD1cInRydWVcIl0ge1xuICAgIGFuaW1hdGlvbjogJHsoeyBwb3NpdGlvbnMsIHJldmVyc2VBbmltYXRpb24sIGFuaW1hdGlvbkR1cmF0aW9uIH0pID0+IGNzc2BcbiAgICAgICR7YW5pbWF0aW9uRHVyYXRpb259bXMgJHtcbiAgICAgICAgIXJldmVyc2VBbmltYXRpb24gPyBhbmltYXRpb24ocG9zaXRpb25zKSA6IGV4aXRBbmltYXRpb24ocG9zaXRpb25zKVxuICAgICAgfSBmb3J3YXJkc1xuICAgIGB9O1xuICB9XG5cbiAgJltkYXRhLWhhcy1hcnJvdz1cInRydWVcIl0ge1xuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAkeyh7IHBvc2l0aW9ucyB9KSA9PiBwb3NpdGlvbnMuYXJyb3dUb3B9cHg7XG4gICAgICBsZWZ0OiAkeyh7IHBvc2l0aW9ucyB9KSA9PiBwb3NpdGlvbnMuYXJyb3dMZWZ0fXB4O1xuICAgICAgdHJhbnNmb3JtOiAkeyh7IHBvc2l0aW9ucyB9KSA9PiBwb3NpdGlvbnMuYXJyb3dUcmFuc2Zvcm19XG4gICAgICAgIHJvdGF0ZSgkeyh7IHBvc2l0aW9ucyB9KSA9PiBwb3NpdGlvbnMucm90YXRlfWRlZyk7XG4gICAgICBtYXJnaW4tbGVmdDogLSR7REVGQVVMVF9BUlJPV19XSURUSH1weDtcbiAgICAgIGJvcmRlci13aWR0aDogJHtERUZBVUxUX0FSUk9XX1dJRFRIfXB4O1xuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgIGJvcmRlci1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kU3Ryb25nZXJ9XG4gICAgICAgIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLXZpc2libGUtaW4tZG9tPVwiZmFsc2VcIl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkQ2hpbGRyZW5Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBpbmhlcml0O1xuXG4gICZbZGF0YS1jb250YWluZXItZnVsbC13aWR0aD1cInRydWVcIl0ge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5gXG5cbnR5cGUgUG9wdXBQcm9wcyA9IHtcbiAgLyoqXG4gICAqIElkIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGlmIG5vdCBzZXQuIEl0IGlzIHVzZWQgZm9yIGFzc29jaWF0aW5nIHBvcHVwIHdyYXBwZXIgd2l0aCBwb3B1cCBwb3J0YWwuXG4gICAqL1xuICBpZD86IHN0cmluZ1xuICBjaGlsZHJlbjpcbiAgICB8IFJlYWN0Tm9kZVxuICAgIHwgKChyZW5kZXJQcm9wczoge1xuICAgICAgICBjbGFzc05hbWU/OiBzdHJpbmdcbiAgICAgICAgb25CbHVyOiAoKSA9PiB2b2lkXG4gICAgICAgIG9uRm9jdXM6ICgpID0+IHZvaWRcbiAgICAgICAgb25Qb2ludGVyRW50ZXI6ICgpID0+IHZvaWRcbiAgICAgICAgb25Qb2ludGVyTGVhdmU6ICgpID0+IHZvaWRcbiAgICAgICAgcmVmOiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQgfCBudWxsPlxuICAgICAgfSkgPT4gUmVhY3ROb2RlKVxuICBtYXhXaWR0aD86IG51bWJlciB8IHN0cmluZ1xuICAvKipcbiAgICogYGF1dG9gIHBsYWNlbWVudCB3aWxsIGNoYW5nZSB0aGUgcG9zaXRpb24gb2YgdGhlIHBvcHVwIGlmIGl0IGRvZXNuJ3QgZml0IGluIHRoZSB2aWV3cG9ydC5cbiAgICovXG4gIHBsYWNlbWVudD86IFBvcHVwUGxhY2VtZW50XG4gIC8qKlxuICAgKiBBbGlnbiB0aGUgcG9wdXAgdG8gdGhlIHN0YXJ0IG9yIGNlbnRlciBvZiB0aGUgY2hpbGRyZW4uXG4gICAqL1xuICBhbGlnbj86IFBvcHVwQWxpZ25cbiAgLyoqXG4gICAqIENvbnRlbnQgb2YgdGhlIHBvcHVwLCBwcmVmZXJhYmx5IHRleHQgaW5zaWRlLlxuICAgKi9cbiAgdGV4dD86IFJlYWN0Tm9kZVxuICBjbGFzc05hbWU/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHdpbGwgYWRkIGB3aWR0aDogMTAwJWAgdG8gdGhlIHBvcHVwIGNvbnRhaW5lci5cbiAgICovXG4gIGNvbnRhaW5lckZ1bGxXaWR0aD86IGJvb2xlYW5cbiAgLyoqXG4gICAqIEl0IHdpbGwgZm9yY2UgZGlzcGxheSBwb3B1cC4gVGhpcyBjYW4gYmUgdXNlZnVsIGlmIHlvdSBuZWVkIHRvIGFsd2F5cyBkaXNwbGF5IHRoZSBwb3B1cCB3aXRob3V0IGhvdmVyIG5lZWRlZC5cbiAgICovXG4gIHZpc2libGU/OiBib29sZWFuXG4gIGlubmVyUmVmPzogUmVmPEhUTUxEaXZFbGVtZW50IHwgbnVsbD5cbiAgcm9sZT86IHN0cmluZ1xuICAnZGF0YS10ZXN0aWQnPzogc3RyaW5nXG4gIGhhc0Fycm93PzogYm9vbGVhblxuICBvbkNsb3NlPzogKCkgPT4gdm9pZFxuICB0YWJJbmRleD86IG51bWJlclxuICBvbktleURvd24/OiBLZXlib2FyZEV2ZW50SGFuZGxlclxuICAnYXJpYS1oYXNwb3B1cCc/OiBIVE1MQXR0cmlidXRlczxIVE1MRGl2RWxlbWVudD5bJ2FyaWEtaGFzcG9wdXAnXVxuICBoaWRlT25DbGlja091dHNpZGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugc2V0IGRlYm91bmNlVGltZSB0byBmYWxzZSwgdGhlIHBvcHVwIHdpbGwgbm90IGRlYm91bmNlIHRoZSBob3ZlciBldmVudCBhbmQgd2lsbCBiZSBkaXNwbGF5ZWQgaW5zdGFudGx5LlxuICAgKiBJZiBzZXQgdG8gMCBpdCB3aWxsIGRpc2FibGUgZGVib3VuY2UuXG4gICAqL1xuICBkZWJvdW5jZURlbGF5PzogbnVtYmVyXG4gIC8qKlxuICAgKiBJZiB5b3Ugc2V0IGEgbWF4IGhlaWdodCBrZWVwIGluIG1pbmQgdGhhdCB0aGUgYW5pbWF0aW9uIGlzIGRpc2FibGVkLCBvciBpdCB3aWxsIG5vdCB3b3JrIHByb3Blcmx5IG9uIHNvbWUgYnJvd3NlcnMuXG4gICAqL1xuICBtYXhIZWlnaHQ/OiBzdHJpbmcgfCBudW1iZXJcbiAgLyoqXG4gICAqIFdpbGwgcmVtb3ZlIHRoZSBhbmltYXRpb24gb24gdGhlIHBvcHVwIGlmIHNldCB0byBmYWxzZS5cbiAgICovXG4gIGRpc2FibGVBbmltYXRpb24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBCeSBkZWZhdWx0LCB0aGUgcG9ydGFsIHRhcmdldCBpcyBjaGlsZHJlbiBjb250YWluZXIgb3IgZG9jdW1lbnQuYm9keSBpZiBjaGlsZHJlbiBpcyBhIGZ1bmN0aW9uLiBZb3UgY2FuIG92ZXJyaWRlIHRoaXNcbiAgICogYmVoYXZpb3IgYnkgc2V0dGluZyBhIHBvcnRhbFRhcmdldCBwcm9wLlxuICAgKi9cbiAgcG9ydGFsVGFyZ2V0PzogSFRNTEVsZW1lbnRcbiAgLyoqXG4gICAqIElmIHlvdSBzZXQgdGhpcyB0byB0cnVlLCB0aGUgcG9wdXAgd2lsbCBiZSByZW5kZXJlZCBpbiB0aGUgRE9NIG9ubHkgd2hlbiBpdCBpcyB2aXNpYmxlLlxuICAgKiBXaGVuIHNldCB0byBmYWxzZSwgdGhlIHBvcHVwIHdpbGwgYWx3YXlzIGJlIHJlbmRlcmVkIGluIHRoZSBET00uIEJ5IGRlZmF1bHQgdGhpcyB2YWx1ZSBpcyBzZXQgdG8gYHRydWVgLCBpZiBmb3Igc29tZVxuICAgKiByZWFzb24geW91IG5lZWQgdG8gZGlzYWJsZSBpdCwgeW91IGNhbiBzZXQgaXQgdG8gYGZhbHNlYC5cbiAgICovXG4gIGR5bmFtaWNEb21SZW5kZXJpbmc/OiBib29sZWFuXG59XG5cbi8qKlxuICogQGV4cGVyaW1lbnRhbCBUaGlzIGNvbXBvbmVudCBpcyBleHBlcmltZW50YWwgYW5kIG1heSBiZSBzdWJqZWN0IHRvIGJyZWFraW5nIGNoYW5nZXMgaW4gdGhlIGZ1dHVyZS5cbiAqL1xuZXhwb3J0IGNvbnN0IFBvcHVwID0gZm9yd2FyZFJlZihcbiAgKFxuICAgIHtcbiAgICAgIGNoaWxkcmVuLFxuICAgICAgdGV4dCA9ICcnLFxuICAgICAgcGxhY2VtZW50ID0gJ2F1dG8nLFxuICAgICAgYWxpZ24gPSAnY2VudGVyJyxcbiAgICAgIGlkLFxuICAgICAgY2xhc3NOYW1lLFxuICAgICAgY29udGFpbmVyRnVsbFdpZHRoLFxuICAgICAgbWF4V2lkdGggPSAnMTQuNXJlbScsXG4gICAgICBtYXhIZWlnaHQsXG4gICAgICB2aXNpYmxlLFxuICAgICAgaW5uZXJSZWYsXG4gICAgICByb2xlID0gJ3BvcHVwJyxcbiAgICAgICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG4gICAgICBoYXNBcnJvdyA9IHRydWUsXG4gICAgICBvbkNsb3NlLFxuICAgICAgdGFiSW5kZXggPSAwLFxuICAgICAgb25LZXlEb3duLFxuICAgICAgJ2FyaWEtaGFzcG9wdXAnOiBhcmlhSGFzUG9wdXAsXG4gICAgICBoaWRlT25DbGlja091dHNpZGUgPSBmYWxzZSxcbiAgICAgIGRlYm91bmNlRGVsYXkgPSBERUZBVUxUX0RFQk9VTkNFX0RVUkFUSU9OLFxuICAgICAgZGlzYWJsZUFuaW1hdGlvbiA9IGZhbHNlLFxuICAgICAgcG9ydGFsVGFyZ2V0LFxuICAgICAgZHluYW1pY0RvbVJlbmRlcmluZyA9IHRydWUsXG4gICAgfTogUG9wdXBQcm9wcyxcbiAgICByZWY6IFJlZjxIVE1MRGl2RWxlbWVudD4sXG4gICkgPT4ge1xuICAgIGNvbnN0IGNoaWxkcmVuUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICAgIHVzZUltcGVyYXRpdmVIYW5kbGUoaW5uZXJSZWYsICgpID0+IGNoaWxkcmVuUmVmLmN1cnJlbnQgYXMgSFRNTERpdkVsZW1lbnQpXG5cbiAgICBjb25zdCBpbm5lclBvcHVwUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICAgIHVzZUltcGVyYXRpdmVIYW5kbGUocmVmLCAoKSA9PiBpbm5lclBvcHVwUmVmLmN1cnJlbnQgYXMgSFRNTERpdkVsZW1lbnQpXG5cbiAgICBjb25zdCB0aW1lciA9IHVzZVJlZjxSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0Pj4odW5kZWZpbmVkKVxuICAgIGNvbnN0IHBvcHVwUG9ydGFsVGFyZ2V0ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAocG9ydGFsVGFyZ2V0KSByZXR1cm4gcG9ydGFsVGFyZ2V0XG5cbiAgICAgIGlmIChyb2xlID09PSAnZGlhbG9nJykge1xuICAgICAgICBpZiAoY2hpbGRyZW5SZWYuY3VycmVudCkgcmV0dXJuIGNoaWxkcmVuUmVmLmN1cnJlbnRcbiAgICAgICAgaWYgKGlzQ2xpZW50U2lkZSkgcmV0dXJuIGRvY3VtZW50LmJvZHlcblxuICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgfVxuXG4gICAgICAvLyBXZSBjaGVjayBpZiB3aW5kb3cgZXhpc3RzIGZvciBTU1JcbiAgICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICByZXR1cm4gZG9jdW1lbnQuYm9keVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbnVsbFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICAgIH0sIFtwb3J0YWxUYXJnZXQsIHJvbGUsIGNoaWxkcmVuUmVmLmN1cnJlbnRdKVxuXG4gICAgLy8gVGhlcmUgYXJlIHNvbWUgaXNzdWUgd2hlbiBtaXhpbmcgYW5pbWF0aW9uIGFuZCBtYXhIZWlnaHQgb24gc29tZSBicm93c2Vycywgc28gd2UgZGlzYWJsZSBhbmltYXRpb24gaWYgbWF4SGVpZ2h0IGlzIHNldC5cbiAgICBjb25zdCBhbmltYXRpb25EdXJhdGlvbiA9XG4gICAgICBkaXNhYmxlQW5pbWF0aW9uIHx8IG1heEhlaWdodCA/IDAgOiBERUZBVUxUX0FOSU1BVElPTl9EVVJBVElPTlxuXG4gICAgLy8gRGVib3VuY2UgdGltZXIgd2lsbCBiZSB1c2VkIHRvIHByZXZlbnQgdGhlIHBvcHVwIGZyb20gZmxpY2tlcmluZyB3aGVuIHRoZSB1c2VyIG1vdmVzIHRoZSBtb3VzZSBvdXQgYW5kIGluIHRoZSBjaGlsZHJlbiBlbGVtZW50LlxuICAgIGNvbnN0IGRlYm91bmNlVGltZXIgPSB1c2VSZWY8UmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4+KHVuZGVmaW5lZClcbiAgICBjb25zdCBbdmlzaWJsZUluRG9tLCBzZXRWaXNpYmxlSW5Eb21dID0gdXNlU3RhdGUoZmFsc2UpXG4gICAgY29uc3QgW3JldmVyc2VBbmltYXRpb24sIHNldFJldmVyc2VBbmltYXRpb25dID0gdXNlU3RhdGUoZmFsc2UpXG4gICAgY29uc3QgW3Bvc2l0aW9ucywgc2V0UG9zaXRpb25zXSA9IHVzZVN0YXRlPFBvc2l0aW9uc1R5cGU+KHtcbiAgICAgIC4uLkRFRkFVTFRfUE9TSVRJT05TLFxuICAgIH0pXG4gICAgY29uc3QgdW5pcXVlSWQgPSB1c2VJZCgpXG4gICAgY29uc3QgZ2VuZXJhdGVkSWQgPSBpZCA/PyB1bmlxdWVJZFxuICAgIGNvbnN0IGlzQ29udHJvbGxlZCA9IHZpc2libGUgIT09IHVuZGVmaW5lZFxuXG4gICAgY29uc3QgZ2VuZXJhdGVQb3B1cFBvc2l0aW9ucyA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmIChjaGlsZHJlblJlZi5jdXJyZW50ICYmIGlubmVyUG9wdXBSZWYuY3VycmVudCkge1xuICAgICAgICBzZXRQb3NpdGlvbnMoXG4gICAgICAgICAgY29tcHV0ZVBvc2l0aW9ucyh7XG4gICAgICAgICAgICBjaGlsZHJlblJlZixcbiAgICAgICAgICAgIHBsYWNlbWVudCxcbiAgICAgICAgICAgIHBvcHVwUmVmOiBpbm5lclBvcHVwUmVmLFxuICAgICAgICAgICAgcG9wdXBQb3J0YWxUYXJnZXQ6IHBvcHVwUG9ydGFsVGFyZ2V0IGFzIEhUTUxFbGVtZW50LFxuICAgICAgICAgICAgaGFzQXJyb3csXG4gICAgICAgICAgICBhbGlnbixcbiAgICAgICAgICB9KSxcbiAgICAgICAgKVxuICAgICAgfVxuICAgIH0sIFtoYXNBcnJvdywgcGxhY2VtZW50LCBwb3B1cFBvcnRhbFRhcmdldCwgYWxpZ25dKVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiB3ZSBuZWVkIHRvIHJlY29tcHV0ZSBwb3NpdGlvbnMgb2YgcG9wdXAgZHVlIHRvIHdpbmRvdyBzY3JvbGwgb3IgcmVzaXplLlxuICAgICAqL1xuICAgIGNvbnN0IG9uV2luZG93Q2hhbmdlRGV0ZWN0ZWQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICAvLyBXZSByZW1vdmUgYW5pbWF0aW9uIG9uIHNjcm9sbCBvciB0aGUgYW5pbWF0aW9uIHdpbGwgcmVzdGFydCBvbiBldmVyeSBzY3JvbGxcbiAgICAgIGlmIChpbm5lclBvcHVwUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgaW5uZXJQb3B1cFJlZi5jdXJyZW50LnN0eWxlLmFuaW1hdGlvbiA9ICdub25lJ1xuICAgICAgfVxuXG4gICAgICBnZW5lcmF0ZVBvcHVwUG9zaXRpb25zKClcbiAgICB9LCBbZ2VuZXJhdGVQb3B1cFBvc2l0aW9ucywgaW5uZXJQb3B1cFJlZl0pXG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHdlIG5lZWQgdG8gcmVtb3ZlIHBvcHVwIHBvcnRhbCBmcm9tIERPTSBhbmQgcmVtb3ZlIGV2ZW50IGxpc3RlbmVyIHRvIGl0LlxuICAgICAqL1xuICAgIGNvbnN0IHVubW91bnRQb3B1cEZyb21Eb20gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBzZXRWaXNpYmxlSW5Eb20oZmFsc2UpXG4gICAgICBzZXRSZXZlcnNlQW5pbWF0aW9uKGZhbHNlKVxuXG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgb25XaW5kb3dDaGFuZ2VEZXRlY3RlZCwgdHJ1ZSlcbiAgICB9LCBbb25XaW5kb3dDaGFuZ2VEZXRlY3RlZF0pXG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHdlIG5lZWQgdG8gaGlkZSBwb3B1cC4gQSB0aW1lb3V0IGlzIHNldCB0byBhbGxvdyBhbmltYXRpb24gZW5kLCB0aGVuIHJlbW92ZVxuICAgICAqIHBvcHVwIGZyb20gZG9tLlxuICAgICAqL1xuICAgIGNvbnN0IGNsb3NlUG9wdXAgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBjb25zdCBjbG9zZUZ1bmN0aW9uID0gKCkgPT4ge1xuICAgICAgICBpZiAoIWRpc2FibGVBbmltYXRpb24pIHtcbiAgICAgICAgICBzZXRSZXZlcnNlQW5pbWF0aW9uKHRydWUpXG5cbiAgICAgICAgICB0aW1lci5jdXJyZW50ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBvbkNsb3NlPy4oKVxuICAgICAgICAgICAgdW5tb3VudFBvcHVwRnJvbURvbSgpXG4gICAgICAgICAgfSwgYW5pbWF0aW9uRHVyYXRpb24pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgb25DbG9zZT8uKClcbiAgICAgICAgICB1bm1vdW50UG9wdXBGcm9tRG9tKClcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoIWRpc2FibGVBbmltYXRpb24pIHtcbiAgICAgICAgZGVib3VuY2VUaW1lci5jdXJyZW50ID0gc2V0VGltZW91dChcbiAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICBjbG9zZUZ1bmN0aW9uKClcbiAgICAgICAgICB9LFxuICAgICAgICAgIGRlYm91bmNlRGVsYXkgJiYgIWRpc2FibGVBbmltYXRpb24gPyBkZWJvdW5jZURlbGF5IDogMCxcbiAgICAgICAgKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2xvc2VGdW5jdGlvbigpXG4gICAgICB9XG4gICAgfSwgW1xuICAgICAgYW5pbWF0aW9uRHVyYXRpb24sXG4gICAgICBkaXNhYmxlQW5pbWF0aW9uLFxuICAgICAgZGVib3VuY2VEZWxheSxcbiAgICAgIG9uQ2xvc2UsXG4gICAgICB1bm1vdW50UG9wdXBGcm9tRG9tLFxuICAgIF0pXG5cbiAgICAvKipcbiAgICAgKiBXaGVuIG1vdXNlIGhvdmVyIG9yIHN0b3AgaG92ZXJpbmcgY2hpbGRyZW4gdGhpcyBmdW5jdGlvbiBkaXNwbGF5IG9yIGhpZGUgcG9wdXAuIEEgdGltZW91dCBpcyBzZXQgdG8gYWxsb3cgYW5pbWF0aW9uXG4gICAgICogZW5kLCB0aGVuIHJlbW92ZSBwb3B1cCBmcm9tIGRvbS5cbiAgICAgKi9cbiAgICBjb25zdCBvblBvaW50ZXJFdmVudCA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGlzVmlzaWJsZTogYm9vbGVhbikgPT4gKCkgPT4ge1xuICAgICAgICAvLyBJZiB0aGVyZSBpcyBhIGRlYm91bmNlRGVsYXkgYW5kIHRoZSBwb3B1cCBpcyBub3QgdmlzaWJsZSwgd2UgY2xlYXIgdGhlIGRlYm91bmNlIHRpbWVyXG4gICAgICAgIGlmICghdmlzaWJsZSAmJiBkZWJvdW5jZURlbGF5ID4gMCAmJiBkZWJvdW5jZVRpbWVyLmN1cnJlbnQpIHtcbiAgICAgICAgICBjbGVhclRpbWVvdXQoZGVib3VuY2VUaW1lci5jdXJyZW50KVxuICAgICAgICAgIGRlYm91bmNlVGltZXIuY3VycmVudCA9IHVuZGVmaW5lZFxuICAgICAgICB9XG5cbiAgICAgICAgLy8gVGhpcyBjb25kaXRpb24gaXMgZm9yIHdoZW4gd2Ugd2FudCB0byB1bm1vdW50IHRoZSBwb3B1cFxuICAgICAgICAvLyBUaGVyZSBpcyBkZWJvdW5jZSBpbiBvcmRlciB0byBhdm9pZCBwb3B1cCB0byBmbGlja2VyIHdoZW4gd2UgbW92ZSB0aGUgbW91c2UgZnJvbSBjaGlsZHJlbiB0byBwb3B1cFxuICAgICAgICAvLyBUaW1lciBpcyB1c2VkIHRvIGZvbGxvdyB0aGUgYW5pbWF0aW9uIGR1cmF0aW9uXG4gICAgICAgIGlmICghaXNWaXNpYmxlICYmIGlubmVyUG9wdXBSZWYuY3VycmVudCAmJiAhZGVib3VuY2VUaW1lci5jdXJyZW50KSB7XG4gICAgICAgICAgY2xvc2VQb3B1cCgpXG4gICAgICAgIH0gZWxzZSBpZiAoaXNWaXNpYmxlKSB7XG4gICAgICAgICAgLy8gVGhpcyBjb25kaXRpb24gaXMgZm9yIHdoZW4gd2Ugd2FudCB0byBtb3VudCB0aGUgcG9wdXBcbiAgICAgICAgICAvLyBJZiB0aGUgdGltZXIgZXhpc3RzIGl0IG1lYW5zIHRoZSBwb3B1cCB3YXMgYWJvdXQgdG8gdW1vdW50LCBidXQgd2UgaG92ZXJlZCB0aGUgY2hpbGRyZW4gYWdhaW4sXG4gICAgICAgICAgLy8gc28gd2UgY2xlYXIgdGhlIHRpbWVyIGFuZCB0aGUgcG9wdXAgd2lsbCBub3QgYmUgdW5tb3VudGVkXG4gICAgICAgICAgaWYgKHRpbWVyLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIHNldFJldmVyc2VBbmltYXRpb24oZmFsc2UpXG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGltZXIuY3VycmVudClcbiAgICAgICAgICAgIHRpbWVyLmN1cnJlbnQgPSB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gQW5kIGhlcmUgaXMgd2hlbiB3ZSBjdXJyZW50bHkgYXJlIGluIGEgZGVib3VuY2UgdGltZXIsIGl0IG1lYW5zIHBvcHVwIHdhcyBob3ZlcmVkIGR1cmluZ1xuICAgICAgICAgIC8vIHRoYXQgcGVyaW9kLCBhbmQgc28gd2UgY2FuIGNsZWFyIGRlYm91bmNlIHRpbWVyXG4gICAgICAgICAgaWYgKGRlYm91bmNlVGltZXIuY3VycmVudCkge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KGRlYm91bmNlVGltZXIuY3VycmVudClcbiAgICAgICAgICAgIGRlYm91bmNlVGltZXIuY3VycmVudCA9IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZGVib3VuY2VEZWxheSA+IDApIHtcbiAgICAgICAgICAgIGRlYm91bmNlVGltZXIuY3VycmVudCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICBzZXRWaXNpYmxlSW5Eb20odHJ1ZSlcbiAgICAgICAgICAgIH0sIGRlYm91bmNlRGVsYXkpXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN0YXJ0VHJhbnNpdGlvbigoKSA9PiB7XG4gICAgICAgICAgICAgIHNldFZpc2libGVJbkRvbSh0cnVlKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBbY2xvc2VQb3B1cCwgZGVib3VuY2VEZWxheSwgdmlzaWJsZV0sXG4gICAgKVxuXG4gICAgLyoqXG4gICAgICogT25jZSBwb3B1cCBpcyB2aXNpYmxlIGluIHRoZSBkb20gd2UgY2FuIGNvbXB1dGUgcG9zaXRpb25zLCB0aGVuIHNldCBpdCB2aXNpYmxlIG9uIHNjcmVlbiBhbmQgYWRkIGV2ZW50IHRvXG4gICAgICogcmVjb21wdXRlIHBvc2l0aW9ucyBvbiBzY3JvbGwgb3Igc2NyZWVuIHJlc2l6ZS5cbiAgICAgKi9cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKHZpc2libGVJbkRvbSkge1xuICAgICAgICBnZW5lcmF0ZVBvcHVwUG9zaXRpb25zKClcblxuICAgICAgICBpZiAocG9wdXBQb3J0YWxUYXJnZXQgPT09IGRvY3VtZW50LmJvZHkpIHtcbiAgICAgICAgICAvLyBXZSB3YW50IHRvIGRldGVjdCBzY3JvbGwgYW5kIHJlc2l6ZSBpbiBvcmRlciB0byByZWNvbXB1dGUgcG9zaXRpb25zIG9mIHBvcHVwXG4gICAgICAgICAgLy8gQWRkaW5nIHRydWUgYXMgdGhpcmQgcGFyYW1ldGVyIHRvIGV2ZW50IGxpc3RlbmVyIHdpbGwgZGV0ZWN0IG5lc3RlZCBzY3JvbGxzLlxuICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBvbldpbmRvd0NoYW5nZURldGVjdGVkLCB0cnVlKVxuICAgICAgICB9XG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBvbldpbmRvd0NoYW5nZURldGVjdGVkLCB0cnVlKVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgb25XaW5kb3dDaGFuZ2VEZXRlY3RlZCwgdHJ1ZSlcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIG9uV2luZG93Q2hhbmdlRGV0ZWN0ZWQsIHRydWUpXG4gICAgICAgIGlmICh0aW1lci5jdXJyZW50KSB7XG4gICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVyLmN1cnJlbnQpXG4gICAgICAgICAgdGltZXIuY3VycmVudCA9IHVuZGVmaW5lZFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgW1xuICAgICAgZ2VuZXJhdGVQb3B1cFBvc2l0aW9ucyxcbiAgICAgIG9uV2luZG93Q2hhbmdlRGV0ZWN0ZWQsXG4gICAgICB2aXNpYmxlSW5Eb20sXG4gICAgICBtYXhXaWR0aCxcbiAgICAgIHBvcHVwUG9ydGFsVGFyZ2V0LFxuICAgIF0pXG5cbiAgICAvLyBUaGlzIHdpbGwgYmUgdHJpZ2dlcmVkIHdoZW4gcG9zaXRpb25zIGFyZSBjb21wdXRlZCBhbmQgcG9wdXAgaXMgdmlzaWJsZSBpbiB0aGUgZG9tLlxuICAgIHVzZUVmZmVjdChcbiAgICAgICgpID0+IHtcbiAgICAgICAgaWYgKHZpc2libGVJbkRvbSAmJiBpbm5lclBvcHVwUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICBpbm5lclBvcHVwUmVmLmN1cnJlbnQuc3R5bGUub3BhY2l0eSA9ICcxJ1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICAgICAgW3Bvc2l0aW9uc10sXG4gICAgKVxuXG4gICAgLyoqXG4gICAgICogSWYgcG9wdXAgaGFzIGB2aXNpYmxlYCBwcm9wIGl0IG1lYW5zIHRoZSBwb3B1cCBpcyBtYW51YWxseSBjb250cm9sbGVkIHRocm91Z2ggdGhpcyBwcm9wLlxuICAgICAqIEluIHRoaXMgY2FzIHdlIGRvbid0IHdhbnQgdG8gZGlzcGxheSBwb3B1cCBvbiBob3ZlciwgYnV0IG9ubHkgd2hlbiBgdmlzaWJsZWAgaXMgdHJ1ZS5cbiAgICAgKi9cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKGlzQ29udHJvbGxlZCkge1xuICAgICAgICBvblBvaW50ZXJFdmVudCh2aXNpYmxlKSgpXG4gICAgICB9XG4gICAgfSwgW2lzQ29udHJvbGxlZCwgb25Qb2ludGVyRXZlbnQsIHZpc2libGVdKVxuXG4gICAgLy8gSGFuZGxlIGhpZGUgb24gZXNjIHByZXNzIGFuZCBoaWRlIG9uIGNsaWNrIG91dHNpZGVcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgaGFuZGxlRXNjUHJlc3MgPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgICBjbG9zZVBvcHVwKClcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCBoYW5kbGVDbGlja091dHNpZGUgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgY29uc3QgcG9wdXBDdXJyZW50ID0gaW5uZXJQb3B1cFJlZi5jdXJyZW50XG4gICAgICAgIGNvbnN0IGNoaWxkcmVuQ3VycmVudCA9IGNoaWxkcmVuUmVmLmN1cnJlbnRcblxuICAgICAgICBpZiAocG9wdXBDdXJyZW50ICYmIGhpZGVPbkNsaWNrT3V0c2lkZSAmJiAhZXZlbnQuZGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGV2ZW50LnRhcmdldCAmJlxuICAgICAgICAgICAgZXZlbnQudGFyZ2V0ICE9PSBwb3B1cEN1cnJlbnQgJiZcbiAgICAgICAgICAgIGV2ZW50LnRhcmdldCAhPT0gY2hpbGRyZW5DdXJyZW50ICYmXG4gICAgICAgICAgICAhY2hpbGRyZW5DdXJyZW50Py5jb250YWlucyhldmVudC50YXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICAgICFwb3B1cEN1cnJlbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIE5vZGUpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgICAgY2xvc2VQb3B1cCgpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAodmlzaWJsZUluRG9tKSB7XG4gICAgICAgIGRvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCBoYW5kbGVFc2NQcmVzcylcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGhhbmRsZUNsaWNrT3V0c2lkZSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXl1cCcsIGhhbmRsZUVzY1ByZXNzKVxuICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgaGFuZGxlQ2xpY2tPdXRzaWRlKVxuICAgICAgfVxuICAgIH0sIFtcbiAgICAgIGNsb3NlUG9wdXAsXG4gICAgICB2aXNpYmxlSW5Eb20sXG4gICAgICBpbm5lclBvcHVwUmVmLFxuICAgICAgY2hpbGRyZW5SZWYsXG4gICAgICBoaWRlT25DbGlja091dHNpZGUsXG4gICAgXSlcblxuICAgIC8qKlxuICAgICAqIFRoaXMgZXZlbnQgd2lsbCBvY2N1ciBvbmx5IGZvciBkaWFsb2cgYW5kIHdpbGwgdHJhcCBmb2N1cyBpbnNpZGUgdGhlIGRpYWxvZy5cbiAgICAgKi9cbiAgICBjb25zdCBoYW5kbGVGb2N1c1RyYXA6IEtleWJvYXJkRXZlbnRIYW5kbGVyID0gdXNlQ2FsbGJhY2soZXZlbnQgPT4ge1xuICAgICAgY29uc3QgaXNUYWJQcmVzc2VkID0gZXZlbnQua2V5ID09PSAnVGFiJ1xuICAgICAgaWYgKCFpc1RhYlByZXNzZWQpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuXG4gICAgICBjb25zdCBmb2N1c2FibGVFbHMgPVxuICAgICAgICBpbm5lclBvcHVwUmVmLmN1cnJlbnQ/LnF1ZXJ5U2VsZWN0b3JBbGwoXG4gICAgICAgICAgJ2FbaHJlZl06bm90KFtkaXNhYmxlZF0pLCBidXR0b246bm90KFtkaXNhYmxlZF0pLCB0ZXh0YXJlYTpub3QoW2Rpc2FibGVkXSksIGlucHV0Om5vdChbZGlzYWJsZWRdKSwgc2VsZWN0Om5vdChbZGlzYWJsZWRdKScsXG4gICAgICAgICkgPz8gW11cblxuICAgICAgLy8gSGFuZGxlIGNhc2Ugd2hlbiBubyBpbnRlcmFjdGl2ZSBlbGVtZW50IGFyZSB3aXRoaW4gdGhlIG1vZGFsIChpbmNsdWRpbmcgY2xvc2UgaWNvbilcbiAgICAgIGlmIChmb2N1c2FibGVFbHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgIH1cblxuICAgICAgY29uc3QgZmlyc3RGb2N1c2FibGVFbCA9IGZvY3VzYWJsZUVsc1swXSBhcyBIVE1MRWxlbWVudFxuICAgICAgY29uc3QgbGFzdEZvY3VzYWJsZUVsID0gZm9jdXNhYmxlRWxzW1xuICAgICAgICBmb2N1c2FibGVFbHMubGVuZ3RoIC0gMVxuICAgICAgXSBhcyBIVE1MRWxlbWVudFxuXG4gICAgICBpZiAoZXZlbnQuc2hpZnRLZXkpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGZpcnN0Rm9jdXNhYmxlRWwgfHxcbiAgICAgICAgICBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBpbm5lclBvcHVwUmVmLmN1cnJlbnRcbiAgICAgICAgKSB7XG4gICAgICAgICAgbGFzdEZvY3VzYWJsZUVsLmZvY3VzKClcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGxhc3RGb2N1c2FibGVFbCB8fFxuICAgICAgICBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBpbm5lclBvcHVwUmVmLmN1cnJlbnRcbiAgICAgICkge1xuICAgICAgICBmaXJzdEZvY3VzYWJsZUVsLmZvY3VzKClcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgfVxuICAgIH0sIFtdKVxuXG4gICAgLyoqXG4gICAgICogV2lsbCByZW5kZXIgY2hpbGRyZW4gY29uZGl0aW9uYWxseSBpZiBjaGlsZHJlbiBpcyBhIGZ1bmN0aW9uIG9yIG5vdC5cbiAgICAgKi9cbiAgICBjb25zdCByZW5kZXJDaGlsZHJlbiA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmICh0eXBlb2YgY2hpbGRyZW4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0dXJuIGNoaWxkcmVuKHtcbiAgICAgICAgICBvbkJsdXI6ICFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudChmYWxzZSkgOiBub29wLFxuICAgICAgICAgIG9uRm9jdXM6ICFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudCh0cnVlKSA6IG5vb3AsXG4gICAgICAgICAgb25Qb2ludGVyRW50ZXI6ICFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudCh0cnVlKSA6IG5vb3AsXG4gICAgICAgICAgb25Qb2ludGVyTGVhdmU6ICFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudChmYWxzZSkgOiBub29wLFxuICAgICAgICAgIHJlZjogY2hpbGRyZW5SZWYsXG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTdHlsZWRDaGlsZHJlbkNvbnRhaW5lclxuICAgICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9e2dlbmVyYXRlZElkfVxuICAgICAgICAgIGFyaWEtY29udHJvbHM9e2dlbmVyYXRlZElkfVxuICAgICAgICAgIG9uQmx1cj17IWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KGZhbHNlKSA6IG5vb3B9XG4gICAgICAgICAgb25Gb2N1cz17IWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KHRydWUpIDogbm9vcH1cbiAgICAgICAgICBvblBvaW50ZXJFbnRlcj17IWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KHRydWUpIDogbm9vcH1cbiAgICAgICAgICBvblBvaW50ZXJMZWF2ZT17IWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KGZhbHNlKSA6IG5vb3B9XG4gICAgICAgICAgcmVmPXtjaGlsZHJlblJlZn1cbiAgICAgICAgICB0YWJJbmRleD17dGFiSW5kZXh9XG4gICAgICAgICAgb25LZXlEb3duPXtldmVudCA9PiB7XG4gICAgICAgICAgICBvbktleURvd24/LihldmVudClcbiAgICAgICAgICB9fVxuICAgICAgICAgIGRhdGEtY29udGFpbmVyLWZ1bGwtd2lkdGg9e2NvbnRhaW5lckZ1bGxXaWR0aH1cbiAgICAgICAgICBhcmlhLWhhc3BvcHVwPXthcmlhSGFzUG9wdXB9XG4gICAgICAgID5cbiAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIDwvU3R5bGVkQ2hpbGRyZW5Db250YWluZXI+XG4gICAgICApXG4gICAgfSwgW1xuICAgICAgYXJpYUhhc1BvcHVwLFxuICAgICAgY2hpbGRyZW4sXG4gICAgICBjb250YWluZXJGdWxsV2lkdGgsXG4gICAgICBnZW5lcmF0ZWRJZCxcbiAgICAgIGlzQ29udHJvbGxlZCxcbiAgICAgIG9uS2V5RG93bixcbiAgICAgIG9uUG9pbnRlckV2ZW50LFxuICAgICAgdGFiSW5kZXgsXG4gICAgXSlcblxuICAgIGNvbnN0IHNob3VsZFJlbmRlciA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKCFkeW5hbWljRG9tUmVuZGVyaW5nKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChkeW5hbWljRG9tUmVuZGVyaW5nICYmIHZpc2libGVJbkRvbSkge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9LCBbZHluYW1pY0RvbVJlbmRlcmluZywgdmlzaWJsZUluRG9tXSlcblxuICAgIGlmICghdGV4dCkge1xuICAgICAgaWYgKHR5cGVvZiBjaGlsZHJlbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgfVxuXG4gICAgICByZXR1cm4gY2hpbGRyZW5cbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAge3JlbmRlckNoaWxkcmVuKCl9XG4gICAgICAgIHtzaG91bGRSZW5kZXJcbiAgICAgICAgICA/IGNyZWF0ZVBvcnRhbChcbiAgICAgICAgICAgICAgPFN0eWxlZFBvcHVwXG4gICAgICAgICAgICAgICAgcmVmPXtpbm5lclBvcHVwUmVmfVxuICAgICAgICAgICAgICAgIHBvc2l0aW9ucz17cG9zaXRpb25zfVxuICAgICAgICAgICAgICAgIG1heFdpZHRoPXttYXhXaWR0aH1cbiAgICAgICAgICAgICAgICBtYXhIZWlnaHQ9e21heEhlaWdodH1cbiAgICAgICAgICAgICAgICByb2xlPXtyb2xlfVxuICAgICAgICAgICAgICAgIGlkPXtnZW5lcmF0ZWRJZH1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgICAgICAgICAgICByZXZlcnNlQW5pbWF0aW9uPXtyZXZlcnNlQW5pbWF0aW9ufVxuICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPXtkYXRhVGVzdElkfVxuICAgICAgICAgICAgICAgIGRhdGEtaGFzLWFycm93PXtoYXNBcnJvd31cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtzdG9wQ2xpY2tQcm9wYWdhdGlvbn1cbiAgICAgICAgICAgICAgICBvblBvaW50ZXJFbnRlcj17IWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KHRydWUpIDogbm9vcH1cbiAgICAgICAgICAgICAgICBvblBvaW50ZXJMZWF2ZT17IWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KGZhbHNlKSA6IG5vb3B9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uRHVyYXRpb249e2FuaW1hdGlvbkR1cmF0aW9ufVxuICAgICAgICAgICAgICAgIG9uS2V5RG93bj17cm9sZSA9PT0gJ2RpYWxvZycgPyBoYW5kbGVGb2N1c1RyYXAgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgICAgaXNEaWFsb2c9e3JvbGUgPT09ICdkaWFsb2cnfVxuICAgICAgICAgICAgICAgIGRhdGEtdmlzaWJsZS1pbi1kb209e1xuICAgICAgICAgICAgICAgICAgIWR5bmFtaWNEb21SZW5kZXJpbmcgPyB2aXNpYmxlSW5Eb20gOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZGF0YS1hbmltYXRlZD17YW5pbWF0aW9uRHVyYXRpb24gPiAwICYmICFtYXhIZWlnaHR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7dGV4dH1cbiAgICAgICAgICAgICAgPC9TdHlsZWRQb3B1cD4sXG4gICAgICAgICAgICAgIHBvcHVwUG9ydGFsVGFyZ2V0IGFzIEhUTUxFbGVtZW50LFxuICAgICAgICAgICAgKVxuICAgICAgICAgIDogbnVsbH1cbiAgICAgIDwvPlxuICAgIClcbiAgfSxcbilcbiJdfQ== */"));
57
57
  const StyledChildrenContainer = /* @__PURE__ */ _styled("div", process.env.NODE_ENV === "production" ? {
58
58
  target: "e4h1g860"
59
59
  } : {
@@ -64,7 +64,7 @@ const StyledChildrenContainer = /* @__PURE__ */ _styled("div", process.env.NODE_
64
64
  styles: 'display:inherit;&[data-container-full-width="true"]{width:100%;}'
65
65
  } : {
66
66
  name: "1y7vhm4",
67
- styles: 'display:inherit;&[data-container-full-width="true"]{width:100%;}/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1BvcHVwL2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFrSDBDIiwiZmlsZSI6Ii9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1BvcHVwL2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0J1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnXG5pbXBvcnQgdHlwZSB7XG4gIEhUTUxBdHRyaWJ1dGVzLFxuICBLZXlib2FyZEV2ZW50SGFuZGxlcixcbiAgTW91c2VFdmVudEhhbmRsZXIsXG4gIFJlYWN0Tm9kZSxcbiAgUmVmLFxuICBSZWZPYmplY3QsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHtcbiAgZm9yd2FyZFJlZixcbiAgc3RhcnRUcmFuc2l0aW9uLFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VJZCxcbiAgdXNlSW1wZXJhdGl2ZUhhbmRsZSxcbiAgdXNlTWVtbyxcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBjcmVhdGVQb3J0YWwgfSBmcm9tICdyZWFjdC1kb20nXG5pbXBvcnQgeyBpc0NsaWVudFNpZGUgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2lzQ2xpZW50U2lkZSdcbmltcG9ydCB0eXBlIHsgUG9zaXRpb25zVHlwZSB9IGZyb20gJy4vYW5pbWF0aW9ucydcbmltcG9ydCB7IGFuaW1hdGlvbiwgZXhpdEFuaW1hdGlvbiB9IGZyb20gJy4vYW5pbWF0aW9ucydcbmltcG9ydCB0eXBlIHsgUG9wdXBBbGlnbiwgUG9wdXBQbGFjZW1lbnQgfSBmcm9tICcuL2hlbHBlcnMnXG5pbXBvcnQge1xuICBERUZBVUxUX0FSUk9XX1dJRFRILFxuICBERUZBVUxUX1BPU0lUSU9OUyxcbiAgY29tcHV0ZVBvc2l0aW9ucyxcbn0gZnJvbSAnLi9oZWxwZXJzJ1xuXG5jb25zdCBERUZBVUxUX0FOSU1BVElPTl9EVVJBVElPTiA9IDIzMCAvLyBpbiBtc1xuY29uc3QgREVGQVVMVF9ERUJPVU5DRV9EVVJBVElPTiA9IDIwMCAvLyBpbiBtc1xuXG5jb25zdCBub29wID0gKCkgPT4ge31cblxudHlwZSBTdHlsZWRQb3B1cFByb3BzID0ge1xuICBtYXhXaWR0aDogbnVtYmVyIHwgc3RyaW5nXG4gIHBvc2l0aW9uczogUG9zaXRpb25zVHlwZVxuICByZXZlcnNlQW5pbWF0aW9uOiBib29sZWFuXG4gIG1heEhlaWdodD86IG51bWJlciB8IHN0cmluZ1xuICBhbmltYXRpb25EdXJhdGlvbj86IG51bWJlclxuICBpc0RpYWxvZzogYm9vbGVhblxufVxuXG4vKipcbiAqIFRoaXMgZXZlbnQgaGFuZGxlIGFsbG93IHVzIHRvIG5vdCBidWJibGUgdGhlIGV2ZW50IHRvIGRvY3VtZW50LmJvZHkgbGlrZSB0aGlzIHJlYWN0LXNlbGVjdCB3b3JrcyBmaW5lXG4gKi9cbmNvbnN0IHN0b3BDbGlja1Byb3BhZ2F0aW9uOiBNb3VzZUV2ZW50SGFuZGxlciA9IGV2ZW50ID0+IHtcbiAgZXZlbnQubmF0aXZlRXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKClcbn1cblxuY29uc3QgU3R5bGVkUG9wdXAgPSBzdHlsZWQoJ2RpdicsIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT5cbiAgICAhW1xuICAgICAgJ21heFdpZHRoJyxcbiAgICAgICdwb3NpdGlvbnMnLFxuICAgICAgJ3JldmVyc2VBbmltYXRpb24nLFxuICAgICAgJ21heEhlaWdodCcsXG4gICAgICAnYW5pbWF0aW9uRHVyYXRpb24nLFxuICAgICAgJ2lzRGlhbG9nJyxcbiAgICBdLmluY2x1ZGVzKHByb3ApLFxufSk8U3R5bGVkUG9wdXBQcm9wcz5gXG4gIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFN0cm9uZ2VyfTtcbiAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFN0cm9uZ2VyfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1heC13aWR0aDogJHsoeyBtYXhXaWR0aCB9KSA9PlxuICAgIHR5cGVvZiBtYXhXaWR0aCA9PT0gJ251bWJlcicgPyBgJHttYXhXaWR0aH1weGAgOiBtYXhXaWR0aH07XG4gIG1heC1oZWlnaHQ6ICR7KHsgbWF4SGVpZ2h0IH0pID0+XG4gICAgdHlwZW9mIG1heEhlaWdodCA9PT0gJ251bWJlcicgPyBgJHttYXhIZWlnaHR9cHhgIDogbWF4SGVpZ2h0fTtcbiAgb3ZlcmZsb3c6ICR7KHsgbWF4SGVpZ2h0IH0pID0+IChtYXhIZWlnaHQgPyAnYXV0bycgOiB1bmRlZmluZWQpfTtcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbiAgZm9udC1zaXplOiAwLjhyZW07XG4gIGluc2V0OiAwIGF1dG8gYXV0byAwO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIG9wYWNpdHk6IDA7XG4gIHotaW5kZXg6IDE7XG4gIHRyYW5zZm9ybTogJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLnBvcHVwUG9zaXRpb259O1xuXG4gICZbZGF0YS1hbmltYXRlZD1cInRydWVcIl0ge1xuICAgIGFuaW1hdGlvbjogJHsoeyBwb3NpdGlvbnMsIHJldmVyc2VBbmltYXRpb24sIGFuaW1hdGlvbkR1cmF0aW9uIH0pID0+IGNzc2BcbiAgICAgICR7YW5pbWF0aW9uRHVyYXRpb259bXMgJHtcbiAgICAgICAgIXJldmVyc2VBbmltYXRpb24gPyBhbmltYXRpb24ocG9zaXRpb25zKSA6IGV4aXRBbmltYXRpb24ocG9zaXRpb25zKVxuICAgICAgfSBmb3J3YXJkc1xuICAgIGB9O1xuICB9XG5cbiAgJltkYXRhLWhhcy1hcnJvdz1cInRydWVcIl0ge1xuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAkeyh7IHBvc2l0aW9ucyB9KSA9PiBwb3NpdGlvbnMuYXJyb3dUb3B9cHg7XG4gICAgICBsZWZ0OiAkeyh7IHBvc2l0aW9ucyB9KSA9PiBwb3NpdGlvbnMuYXJyb3dMZWZ0fXB4O1xuICAgICAgdHJhbnNmb3JtOiAkeyh7IHBvc2l0aW9ucyB9KSA9PiBwb3NpdGlvbnMuYXJyb3dUcmFuc2Zvcm19XG4gICAgICAgIHJvdGF0ZSgkeyh7IHBvc2l0aW9ucyB9KSA9PiBwb3NpdGlvbnMucm90YXRlfWRlZyk7XG4gICAgICBtYXJnaW4tbGVmdDogLSR7REVGQVVMVF9BUlJPV19XSURUSH1weDtcbiAgICAgIGJvcmRlci13aWR0aDogJHtERUZBVUxUX0FSUk9XX1dJRFRIfXB4O1xuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgIGJvcmRlci1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kU3Ryb25nZXJ9XG4gICAgICAgIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLXZpc2libGUtaW4tZG9tPVwiZmFsc2VcIl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkQ2hpbGRyZW5Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBpbmhlcml0O1xuXG4gICZbZGF0YS1jb250YWluZXItZnVsbC13aWR0aD1cInRydWVcIl0ge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5gXG5cbnR5cGUgUG9wdXBQcm9wcyA9IHtcbiAgLyoqXG4gICAqIElkIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGlmIG5vdCBzZXQuIEl0IGlzIHVzZWQgZm9yIGFzc29jaWF0aW5nIHBvcHVwIHdyYXBwZXIgd2l0aCBwb3B1cCBwb3J0YWwuXG4gICAqL1xuICBpZD86IHN0cmluZ1xuICBjaGlsZHJlbjpcbiAgICB8IFJlYWN0Tm9kZVxuICAgIHwgKChyZW5kZXJQcm9wczoge1xuICAgICAgICBjbGFzc05hbWU/OiBzdHJpbmdcbiAgICAgICAgb25CbHVyOiAoKSA9PiB2b2lkXG4gICAgICAgIG9uRm9jdXM6ICgpID0+IHZvaWRcbiAgICAgICAgb25Qb2ludGVyRW50ZXI6ICgpID0+IHZvaWRcbiAgICAgICAgb25Qb2ludGVyTGVhdmU6ICgpID0+IHZvaWRcbiAgICAgICAgcmVmOiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQgfCBudWxsPlxuICAgICAgfSkgPT4gUmVhY3ROb2RlKVxuICBtYXhXaWR0aD86IG51bWJlciB8IHN0cmluZ1xuICAvKipcbiAgICogYGF1dG9gIHBsYWNlbWVudCB3aWxsIGNoYW5nZSB0aGUgcG9zaXRpb24gb2YgdGhlIHBvcHVwIGlmIGl0IGRvZXNuJ3QgZml0IGluIHRoZSB2aWV3cG9ydC5cbiAgICovXG4gIHBsYWNlbWVudD86IFBvcHVwUGxhY2VtZW50XG4gIC8qKlxuICAgKiBBbGlnbiB0aGUgcG9wdXAgdG8gdGhlIHN0YXJ0IG9yIGNlbnRlciBvZiB0aGUgY2hpbGRyZW4uXG4gICAqL1xuICBhbGlnbj86IFBvcHVwQWxpZ25cbiAgLyoqXG4gICAqIENvbnRlbnQgb2YgdGhlIHBvcHVwLCBwcmVmZXJhYmx5IHRleHQgaW5zaWRlLlxuICAgKi9cbiAgdGV4dD86IFJlYWN0Tm9kZVxuICBjbGFzc05hbWU/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHdpbGwgYWRkIGB3aWR0aDogMTAwJWAgdG8gdGhlIHBvcHVwIGNvbnRhaW5lci5cbiAgICovXG4gIGNvbnRhaW5lckZ1bGxXaWR0aD86IGJvb2xlYW5cbiAgLyoqXG4gICAqIEl0IHdpbGwgZm9yY2UgZGlzcGxheSBwb3B1cC4gVGhpcyBjYW4gYmUgdXNlZnVsIGlmIHlvdSBuZWVkIHRvIGFsd2F5cyBkaXNwbGF5IHRoZSBwb3B1cCB3aXRob3V0IGhvdmVyIG5lZWRlZC5cbiAgICovXG4gIHZpc2libGU/OiBib29sZWFuXG4gIGlubmVyUmVmPzogUmVmPEhUTUxEaXZFbGVtZW50IHwgbnVsbD5cbiAgcm9sZT86IHN0cmluZ1xuICAnZGF0YS10ZXN0aWQnPzogc3RyaW5nXG4gIGhhc0Fycm93PzogYm9vbGVhblxuICBvbkNsb3NlPzogKCkgPT4gdm9pZFxuICB0YWJJbmRleD86IG51bWJlclxuICBvbktleURvd24/OiBLZXlib2FyZEV2ZW50SGFuZGxlclxuICAnYXJpYS1oYXNwb3B1cCc/OiBIVE1MQXR0cmlidXRlczxIVE1MRGl2RWxlbWVudD5bJ2FyaWEtaGFzcG9wdXAnXVxuICBoaWRlT25DbGlja091dHNpZGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugc2V0IGRlYm91bmNlVGltZSB0byBmYWxzZSwgdGhlIHBvcHVwIHdpbGwgbm90IGRlYm91bmNlIHRoZSBob3ZlciBldmVudCBhbmQgd2lsbCBiZSBkaXNwbGF5ZWQgaW5zdGFudGx5LlxuICAgKiBJZiBzZXQgdG8gMCBpdCB3aWxsIGRpc2FibGUgZGVib3VuY2UuXG4gICAqL1xuICBkZWJvdW5jZURlbGF5PzogbnVtYmVyXG4gIC8qKlxuICAgKiBJZiB5b3Ugc2V0IGEgbWF4IGhlaWdodCBrZWVwIGluIG1pbmQgdGhhdCB0aGUgYW5pbWF0aW9uIGlzIGRpc2FibGVkLCBvciBpdCB3aWxsIG5vdCB3b3JrIHByb3Blcmx5IG9uIHNvbWUgYnJvd3NlcnMuXG4gICAqL1xuICBtYXhIZWlnaHQ/OiBzdHJpbmcgfCBudW1iZXJcbiAgLyoqXG4gICAqIFdpbGwgcmVtb3ZlIHRoZSBhbmltYXRpb24gb24gdGhlIHBvcHVwIGlmIHNldCB0byBmYWxzZS5cbiAgICovXG4gIGRpc2FibGVBbmltYXRpb24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBCeSBkZWZhdWx0LCB0aGUgcG9ydGFsIHRhcmdldCBpcyBjaGlsZHJlbiBjb250YWluZXIgb3IgZG9jdW1lbnQuYm9keSBpZiBjaGlsZHJlbiBpcyBhIGZ1bmN0aW9uLiBZb3UgY2FuIG92ZXJyaWRlIHRoaXNcbiAgICogYmVoYXZpb3IgYnkgc2V0dGluZyBhIHBvcnRhbFRhcmdldCBwcm9wLlxuICAgKi9cbiAgcG9ydGFsVGFyZ2V0PzogSFRNTEVsZW1lbnRcbiAgLyoqXG4gICAqIElmIHlvdSBzZXQgdGhpcyB0byB0cnVlLCB0aGUgcG9wdXAgd2lsbCBiZSByZW5kZXJlZCBpbiB0aGUgRE9NIG9ubHkgd2hlbiBpdCBpcyB2aXNpYmxlLlxuICAgKiBXaGVuIHNldCB0byBmYWxzZSwgdGhlIHBvcHVwIHdpbGwgYWx3YXlzIGJlIHJlbmRlcmVkIGluIHRoZSBET00uIEJ5IGRlZmF1bHQgdGhpcyB2YWx1ZSBpcyBzZXQgdG8gYHRydWVgLCBpZiBmb3Igc29tZVxuICAgKiByZWFzb24geW91IG5lZWQgdG8gZGlzYWJsZSBpdCwgeW91IGNhbiBzZXQgaXQgdG8gYGZhbHNlYC5cbiAgICovXG4gIGR5bmFtaWNEb21SZW5kZXJpbmc/OiBib29sZWFuXG59XG5cbi8qKlxuICogQGV4cGVyaW1lbnRhbCBUaGlzIGNvbXBvbmVudCBpcyBleHBlcmltZW50YWwgYW5kIG1heSBiZSBzdWJqZWN0IHRvIGJyZWFraW5nIGNoYW5nZXMgaW4gdGhlIGZ1dHVyZS5cbiAqL1xuZXhwb3J0IGNvbnN0IFBvcHVwID0gZm9yd2FyZFJlZihcbiAgKFxuICAgIHtcbiAgICAgIGNoaWxkcmVuLFxuICAgICAgdGV4dCA9ICcnLFxuICAgICAgcGxhY2VtZW50ID0gJ2F1dG8nLFxuICAgICAgYWxpZ24gPSAnY2VudGVyJyxcbiAgICAgIGlkLFxuICAgICAgY2xhc3NOYW1lLFxuICAgICAgY29udGFpbmVyRnVsbFdpZHRoLFxuICAgICAgbWF4V2lkdGggPSAnMTQuNXJlbScsXG4gICAgICBtYXhIZWlnaHQsXG4gICAgICB2aXNpYmxlLFxuICAgICAgaW5uZXJSZWYsXG4gICAgICByb2xlID0gJ3BvcHVwJyxcbiAgICAgICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG4gICAgICBoYXNBcnJvdyA9IHRydWUsXG4gICAgICBvbkNsb3NlLFxuICAgICAgdGFiSW5kZXggPSAwLFxuICAgICAgb25LZXlEb3duLFxuICAgICAgJ2FyaWEtaGFzcG9wdXAnOiBhcmlhSGFzUG9wdXAsXG4gICAgICBoaWRlT25DbGlja091dHNpZGUgPSBmYWxzZSxcbiAgICAgIGRlYm91bmNlRGVsYXkgPSBERUZBVUxUX0RFQk9VTkNFX0RVUkFUSU9OLFxuICAgICAgZGlzYWJsZUFuaW1hdGlvbiA9IGZhbHNlLFxuICAgICAgcG9ydGFsVGFyZ2V0LFxuICAgICAgZHluYW1pY0RvbVJlbmRlcmluZyA9IHRydWUsXG4gICAgfTogUG9wdXBQcm9wcyxcbiAgICByZWY6IFJlZjxIVE1MRGl2RWxlbWVudD4sXG4gICkgPT4ge1xuICAgIGNvbnN0IGNoaWxkcmVuUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICAgIHVzZUltcGVyYXRpdmVIYW5kbGUoaW5uZXJSZWYsICgpID0+IGNoaWxkcmVuUmVmLmN1cnJlbnQgYXMgSFRNTERpdkVsZW1lbnQpXG5cbiAgICBjb25zdCBpbm5lclBvcHVwUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICAgIHVzZUltcGVyYXRpdmVIYW5kbGUocmVmLCAoKSA9PiBpbm5lclBvcHVwUmVmLmN1cnJlbnQgYXMgSFRNTERpdkVsZW1lbnQpXG5cbiAgICBjb25zdCB0aW1lciA9IHVzZVJlZjxSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0Pj4odW5kZWZpbmVkKVxuICAgIGNvbnN0IHBvcHVwUG9ydGFsVGFyZ2V0ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAocG9ydGFsVGFyZ2V0KSByZXR1cm4gcG9ydGFsVGFyZ2V0XG5cbiAgICAgIGlmIChyb2xlID09PSAnZGlhbG9nJykge1xuICAgICAgICBpZiAoY2hpbGRyZW5SZWYuY3VycmVudCkgcmV0dXJuIGNoaWxkcmVuUmVmLmN1cnJlbnRcbiAgICAgICAgaWYgKGlzQ2xpZW50U2lkZSkgcmV0dXJuIGRvY3VtZW50LmJvZHlcblxuICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgfVxuXG4gICAgICAvLyBXZSBjaGVjayBpZiB3aW5kb3cgZXhpc3RzIGZvciBTU1JcbiAgICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICByZXR1cm4gZG9jdW1lbnQuYm9keVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbnVsbFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICAgIH0sIFtwb3J0YWxUYXJnZXQsIHJvbGUsIGNoaWxkcmVuUmVmLmN1cnJlbnRdKVxuXG4gICAgLy8gVGhlcmUgYXJlIHNvbWUgaXNzdWUgd2hlbiBtaXhpbmcgYW5pbWF0aW9uIGFuZCBtYXhIZWlnaHQgb24gc29tZSBicm93c2Vycywgc28gd2UgZGlzYWJsZSBhbmltYXRpb24gaWYgbWF4SGVpZ2h0IGlzIHNldC5cbiAgICBjb25zdCBhbmltYXRpb25EdXJhdGlvbiA9XG4gICAgICBkaXNhYmxlQW5pbWF0aW9uIHx8IG1heEhlaWdodCA/IDAgOiBERUZBVUxUX0FOSU1BVElPTl9EVVJBVElPTlxuXG4gICAgLy8gRGVib3VuY2UgdGltZXIgd2lsbCBiZSB1c2VkIHRvIHByZXZlbnQgdGhlIHBvcHVwIGZyb20gZmxpY2tlcmluZyB3aGVuIHRoZSB1c2VyIG1vdmVzIHRoZSBtb3VzZSBvdXQgYW5kIGluIHRoZSBjaGlsZHJlbiBlbGVtZW50LlxuICAgIGNvbnN0IGRlYm91bmNlVGltZXIgPSB1c2VSZWY8UmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4+KHVuZGVmaW5lZClcbiAgICBjb25zdCBbdmlzaWJsZUluRG9tLCBzZXRWaXNpYmxlSW5Eb21dID0gdXNlU3RhdGUoZmFsc2UpXG4gICAgY29uc3QgW3JldmVyc2VBbmltYXRpb24sIHNldFJldmVyc2VBbmltYXRpb25dID0gdXNlU3RhdGUoZmFsc2UpXG4gICAgY29uc3QgW3Bvc2l0aW9ucywgc2V0UG9zaXRpb25zXSA9IHVzZVN0YXRlPFBvc2l0aW9uc1R5cGU+KHtcbiAgICAgIC4uLkRFRkFVTFRfUE9TSVRJT05TLFxuICAgIH0pXG4gICAgY29uc3QgdW5pcXVlSWQgPSB1c2VJZCgpXG4gICAgY29uc3QgZ2VuZXJhdGVkSWQgPSBpZCA/PyB1bmlxdWVJZFxuICAgIGNvbnN0IGlzQ29udHJvbGxlZCA9IHZpc2libGUgIT09IHVuZGVmaW5lZFxuXG4gICAgY29uc3QgZ2VuZXJhdGVQb3B1cFBvc2l0aW9ucyA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmIChjaGlsZHJlblJlZi5jdXJyZW50ICYmIGlubmVyUG9wdXBSZWYuY3VycmVudCkge1xuICAgICAgICBzZXRQb3NpdGlvbnMoXG4gICAgICAgICAgY29tcHV0ZVBvc2l0aW9ucyh7XG4gICAgICAgICAgICBjaGlsZHJlblJlZixcbiAgICAgICAgICAgIHBsYWNlbWVudCxcbiAgICAgICAgICAgIHBvcHVwUmVmOiBpbm5lclBvcHVwUmVmLFxuICAgICAgICAgICAgcG9wdXBQb3J0YWxUYXJnZXQ6IHBvcHVwUG9ydGFsVGFyZ2V0IGFzIEhUTUxFbGVtZW50LFxuICAgICAgICAgICAgaGFzQXJyb3csXG4gICAgICAgICAgICBhbGlnbixcbiAgICAgICAgICB9KSxcbiAgICAgICAgKVxuICAgICAgfVxuICAgIH0sIFtoYXNBcnJvdywgcGxhY2VtZW50LCBwb3B1cFBvcnRhbFRhcmdldCwgYWxpZ25dKVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiB3ZSBuZWVkIHRvIHJlY29tcHV0ZSBwb3NpdGlvbnMgb2YgcG9wdXAgZHVlIHRvIHdpbmRvdyBzY3JvbGwgb3IgcmVzaXplLlxuICAgICAqL1xuICAgIGNvbnN0IG9uV2luZG93Q2hhbmdlRGV0ZWN0ZWQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICAvLyBXZSByZW1vdmUgYW5pbWF0aW9uIG9uIHNjcm9sbCBvciB0aGUgYW5pbWF0aW9uIHdpbGwgcmVzdGFydCBvbiBldmVyeSBzY3JvbGxcbiAgICAgIGlmIChpbm5lclBvcHVwUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgaW5uZXJQb3B1cFJlZi5jdXJyZW50LnN0eWxlLmFuaW1hdGlvbiA9ICdub25lJ1xuICAgICAgfVxuXG4gICAgICBnZW5lcmF0ZVBvcHVwUG9zaXRpb25zKClcbiAgICB9LCBbZ2VuZXJhdGVQb3B1cFBvc2l0aW9ucywgaW5uZXJQb3B1cFJlZl0pXG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHdlIG5lZWQgdG8gcmVtb3ZlIHBvcHVwIHBvcnRhbCBmcm9tIERPTSBhbmQgcmVtb3ZlIGV2ZW50IGxpc3RlbmVyIHRvIGl0LlxuICAgICAqL1xuICAgIGNvbnN0IHVubW91bnRQb3B1cEZyb21Eb20gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBzZXRWaXNpYmxlSW5Eb20oZmFsc2UpXG4gICAgICBzZXRSZXZlcnNlQW5pbWF0aW9uKGZhbHNlKVxuXG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgb25XaW5kb3dDaGFuZ2VEZXRlY3RlZCwgdHJ1ZSlcbiAgICB9LCBbb25XaW5kb3dDaGFuZ2VEZXRlY3RlZF0pXG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHdlIG5lZWQgdG8gaGlkZSBwb3B1cC4gQSB0aW1lb3V0IGlzIHNldCB0byBhbGxvdyBhbmltYXRpb24gZW5kLCB0aGVuIHJlbW92ZVxuICAgICAqIHBvcHVwIGZyb20gZG9tLlxuICAgICAqL1xuICAgIGNvbnN0IGNsb3NlUG9wdXAgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBkZWJvdW5jZVRpbWVyLmN1cnJlbnQgPSBzZXRUaW1lb3V0KFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgc2V0UmV2ZXJzZUFuaW1hdGlvbih0cnVlKVxuICAgICAgICAgIHRpbWVyLmN1cnJlbnQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHVubW91bnRQb3B1cEZyb21Eb20oKVxuICAgICAgICAgICAgb25DbG9zZT8uKClcbiAgICAgICAgICB9LCBhbmltYXRpb25EdXJhdGlvbilcbiAgICAgICAgfSxcbiAgICAgICAgZGVib3VuY2VEZWxheSAmJiAhZGlzYWJsZUFuaW1hdGlvbiA/IGRlYm91bmNlRGVsYXkgOiAwLFxuICAgICAgKVxuICAgIH0sIFtcbiAgICAgIGFuaW1hdGlvbkR1cmF0aW9uLFxuICAgICAgZGlzYWJsZUFuaW1hdGlvbixcbiAgICAgIGRlYm91bmNlRGVsYXksXG4gICAgICBvbkNsb3NlLFxuICAgICAgdW5tb3VudFBvcHVwRnJvbURvbSxcbiAgICBdKVxuXG4gICAgLyoqXG4gICAgICogV2hlbiBtb3VzZSBob3ZlciBvciBzdG9wIGhvdmVyaW5nIGNoaWxkcmVuIHRoaXMgZnVuY3Rpb24gZGlzcGxheSBvciBoaWRlIHBvcHVwLiBBIHRpbWVvdXQgaXMgc2V0IHRvIGFsbG93IGFuaW1hdGlvblxuICAgICAqIGVuZCwgdGhlbiByZW1vdmUgcG9wdXAgZnJvbSBkb20uXG4gICAgICovXG4gICAgY29uc3Qgb25Qb2ludGVyRXZlbnQgPSB1c2VDYWxsYmFjayhcbiAgICAgIChpc1Zpc2libGU6IGJvb2xlYW4pID0+ICgpID0+IHtcbiAgICAgICAgLy8gSWYgdGhlcmUgaXMgYSBkZWJvdW5jZURlbGF5IGFuZCB0aGUgcG9wdXAgaXMgbm90IHZpc2libGUsIHdlIGNsZWFyIHRoZSBkZWJvdW5jZSB0aW1lclxuICAgICAgICBpZiAoIXZpc2libGUgJiYgZGVib3VuY2VEZWxheSA+IDAgJiYgZGVib3VuY2VUaW1lci5jdXJyZW50KSB7XG4gICAgICAgICAgY2xlYXJUaW1lb3V0KGRlYm91bmNlVGltZXIuY3VycmVudClcbiAgICAgICAgICBkZWJvdW5jZVRpbWVyLmN1cnJlbnQgPSB1bmRlZmluZWRcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRoaXMgY29uZGl0aW9uIGlzIGZvciB3aGVuIHdlIHdhbnQgdG8gdW5tb3VudCB0aGUgcG9wdXBcbiAgICAgICAgLy8gVGhlcmUgaXMgZGVib3VuY2UgaW4gb3JkZXIgdG8gYXZvaWQgcG9wdXAgdG8gZmxpY2tlciB3aGVuIHdlIG1vdmUgdGhlIG1vdXNlIGZyb20gY2hpbGRyZW4gdG8gcG9wdXBcbiAgICAgICAgLy8gVGltZXIgaXMgdXNlZCB0byBmb2xsb3cgdGhlIGFuaW1hdGlvbiBkdXJhdGlvblxuICAgICAgICBpZiAoIWlzVmlzaWJsZSAmJiBpbm5lclBvcHVwUmVmLmN1cnJlbnQgJiYgIWRlYm91bmNlVGltZXIuY3VycmVudCkge1xuICAgICAgICAgIGNsb3NlUG9wdXAoKVxuICAgICAgICB9IGVsc2UgaWYgKGlzVmlzaWJsZSkge1xuICAgICAgICAgIC8vIFRoaXMgY29uZGl0aW9uIGlzIGZvciB3aGVuIHdlIHdhbnQgdG8gbW91bnQgdGhlIHBvcHVwXG4gICAgICAgICAgLy8gSWYgdGhlIHRpbWVyIGV4aXN0cyBpdCBtZWFucyB0aGUgcG9wdXAgd2FzIGFib3V0IHRvIHVtb3VudCwgYnV0IHdlIGhvdmVyZWQgdGhlIGNoaWxkcmVuIGFnYWluLFxuICAgICAgICAgIC8vIHNvIHdlIGNsZWFyIHRoZSB0aW1lciBhbmQgdGhlIHBvcHVwIHdpbGwgbm90IGJlIHVubW91bnRlZFxuICAgICAgICAgIGlmICh0aW1lci5jdXJyZW50KSB7XG4gICAgICAgICAgICBzZXRSZXZlcnNlQW5pbWF0aW9uKGZhbHNlKVxuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVyLmN1cnJlbnQpXG4gICAgICAgICAgICB0aW1lci5jdXJyZW50ID0gdW5kZWZpbmVkXG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIEFuZCBoZXJlIGlzIHdoZW4gd2UgY3VycmVudGx5IGFyZSBpbiBhIGRlYm91bmNlIHRpbWVyLCBpdCBtZWFucyBwb3B1cCB3YXMgaG92ZXJlZCBkdXJpbmdcbiAgICAgICAgICAvLyB0aGF0IHBlcmlvZCwgYW5kIHNvIHdlIGNhbiBjbGVhciBkZWJvdW5jZSB0aW1lclxuICAgICAgICAgIGlmIChkZWJvdW5jZVRpbWVyLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dChkZWJvdW5jZVRpbWVyLmN1cnJlbnQpXG4gICAgICAgICAgICBkZWJvdW5jZVRpbWVyLmN1cnJlbnQgPSB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGRlYm91bmNlRGVsYXkgPiAwKSB7XG4gICAgICAgICAgICBkZWJvdW5jZVRpbWVyLmN1cnJlbnQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgc2V0VmlzaWJsZUluRG9tKHRydWUpXG4gICAgICAgICAgICB9LCBkZWJvdW5jZURlbGF5KVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdGFydFRyYW5zaXRpb24oKCkgPT4ge1xuICAgICAgICAgICAgICBzZXRWaXNpYmxlSW5Eb20odHJ1ZSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgW2Nsb3NlUG9wdXAsIGRlYm91bmNlRGVsYXksIHZpc2libGVdLFxuICAgIClcblxuICAgIC8qKlxuICAgICAqIE9uY2UgcG9wdXAgaXMgdmlzaWJsZSBpbiB0aGUgZG9tIHdlIGNhbiBjb21wdXRlIHBvc2l0aW9ucywgdGhlbiBzZXQgaXQgdmlzaWJsZSBvbiBzY3JlZW4gYW5kIGFkZCBldmVudCB0b1xuICAgICAqIHJlY29tcHV0ZSBwb3NpdGlvbnMgb24gc2Nyb2xsIG9yIHNjcmVlbiByZXNpemUuXG4gICAgICovXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICh2aXNpYmxlSW5Eb20pIHtcbiAgICAgICAgZ2VuZXJhdGVQb3B1cFBvc2l0aW9ucygpXG5cbiAgICAgICAgaWYgKHBvcHVwUG9ydGFsVGFyZ2V0ID09PSBkb2N1bWVudC5ib2R5KSB7XG4gICAgICAgICAgLy8gV2Ugd2FudCB0byBkZXRlY3Qgc2Nyb2xsIGFuZCByZXNpemUgaW4gb3JkZXIgdG8gcmVjb21wdXRlIHBvc2l0aW9ucyBvZiBwb3B1cFxuICAgICAgICAgIC8vIEFkZGluZyB0cnVlIGFzIHRoaXJkIHBhcmFtZXRlciB0byBldmVudCBsaXN0ZW5lciB3aWxsIGRldGVjdCBuZXN0ZWQgc2Nyb2xscy5cbiAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgb25XaW5kb3dDaGFuZ2VEZXRlY3RlZCwgdHJ1ZSlcbiAgICAgICAgfVxuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgb25XaW5kb3dDaGFuZ2VEZXRlY3RlZCwgdHJ1ZSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIG9uV2luZG93Q2hhbmdlRGV0ZWN0ZWQsIHRydWUpXG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCBvbldpbmRvd0NoYW5nZURldGVjdGVkLCB0cnVlKVxuICAgICAgICBpZiAodGltZXIuY3VycmVudCkge1xuICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lci5jdXJyZW50KVxuICAgICAgICAgIHRpbWVyLmN1cnJlbnQgPSB1bmRlZmluZWRcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sIFtcbiAgICAgIGdlbmVyYXRlUG9wdXBQb3NpdGlvbnMsXG4gICAgICBvbldpbmRvd0NoYW5nZURldGVjdGVkLFxuICAgICAgdmlzaWJsZUluRG9tLFxuICAgICAgbWF4V2lkdGgsXG4gICAgICBwb3B1cFBvcnRhbFRhcmdldCxcbiAgICBdKVxuXG4gICAgLy8gVGhpcyB3aWxsIGJlIHRyaWdnZXJlZCB3aGVuIHBvc2l0aW9ucyBhcmUgY29tcHV0ZWQgYW5kIHBvcHVwIGlzIHZpc2libGUgaW4gdGhlIGRvbS5cbiAgICB1c2VFZmZlY3QoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGlmICh2aXNpYmxlSW5Eb20gJiYgaW5uZXJQb3B1cFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgaW5uZXJQb3B1cFJlZi5jdXJyZW50LnN0eWxlLm9wYWNpdHkgPSAnMSdcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICAgIFtwb3NpdGlvbnNdLFxuICAgIClcblxuICAgIC8qKlxuICAgICAqIElmIHBvcHVwIGhhcyBgdmlzaWJsZWAgcHJvcCBpdCBtZWFucyB0aGUgcG9wdXAgaXMgbWFudWFsbHkgY29udHJvbGxlZCB0aHJvdWdoIHRoaXMgcHJvcC5cbiAgICAgKiBJbiB0aGlzIGNhcyB3ZSBkb24ndCB3YW50IHRvIGRpc3BsYXkgcG9wdXAgb24gaG92ZXIsIGJ1dCBvbmx5IHdoZW4gYHZpc2libGVgIGlzIHRydWUuXG4gICAgICovXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChpc0NvbnRyb2xsZWQpIHtcbiAgICAgICAgb25Qb2ludGVyRXZlbnQodmlzaWJsZSkoKVxuICAgICAgfVxuICAgIH0sIFtpc0NvbnRyb2xsZWQsIG9uUG9pbnRlckV2ZW50LCB2aXNpYmxlXSlcblxuICAgIC8vIEhhbmRsZSBoaWRlIG9uIGVzYyBwcmVzcyBhbmQgaGlkZSBvbiBjbGljayBvdXRzaWRlXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGhhbmRsZUVzY1ByZXNzID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgICAgY2xvc2VQb3B1cCgpXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgaGFuZGxlQ2xpY2tPdXRzaWRlID0gKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IHBvcHVwQ3VycmVudCA9IGlubmVyUG9wdXBSZWYuY3VycmVudFxuICAgICAgICBjb25zdCBjaGlsZHJlbkN1cnJlbnQgPSBjaGlsZHJlblJlZi5jdXJyZW50XG5cbiAgICAgICAgaWYgKHBvcHVwQ3VycmVudCAmJiBoaWRlT25DbGlja091dHNpZGUgJiYgIWV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBldmVudC50YXJnZXQgJiZcbiAgICAgICAgICAgIGV2ZW50LnRhcmdldCAhPT0gcG9wdXBDdXJyZW50ICYmXG4gICAgICAgICAgICBldmVudC50YXJnZXQgIT09IGNoaWxkcmVuQ3VycmVudCAmJlxuICAgICAgICAgICAgIWNoaWxkcmVuQ3VycmVudD8uY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgICAhcG9wdXBDdXJyZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBOb2RlKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgICAgIGNsb3NlUG9wdXAoKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHZpc2libGVJbkRvbSkge1xuICAgICAgICBkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoJ2tleXVwJywgaGFuZGxlRXNjUHJlc3MpXG4gICAgICAgIGRvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBoYW5kbGVDbGlja091dHNpZGUpXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5dXAnLCBoYW5kbGVFc2NQcmVzcylcbiAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIGhhbmRsZUNsaWNrT3V0c2lkZSlcbiAgICAgIH1cbiAgICB9LCBbXG4gICAgICBjbG9zZVBvcHVwLFxuICAgICAgdmlzaWJsZUluRG9tLFxuICAgICAgaW5uZXJQb3B1cFJlZixcbiAgICAgIGNoaWxkcmVuUmVmLFxuICAgICAgaGlkZU9uQ2xpY2tPdXRzaWRlLFxuICAgIF0pXG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGV2ZW50IHdpbGwgb2NjdXIgb25seSBmb3IgZGlhbG9nIGFuZCB3aWxsIHRyYXAgZm9jdXMgaW5zaWRlIHRoZSBkaWFsb2cuXG4gICAgICovXG4gICAgY29uc3QgaGFuZGxlRm9jdXNUcmFwOiBLZXlib2FyZEV2ZW50SGFuZGxlciA9IHVzZUNhbGxiYWNrKGV2ZW50ID0+IHtcbiAgICAgIGNvbnN0IGlzVGFiUHJlc3NlZCA9IGV2ZW50LmtleSA9PT0gJ1RhYidcbiAgICAgIGlmICghaXNUYWJQcmVzc2VkKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcblxuICAgICAgY29uc3QgZm9jdXNhYmxlRWxzID1cbiAgICAgICAgaW5uZXJQb3B1cFJlZi5jdXJyZW50Py5xdWVyeVNlbGVjdG9yQWxsKFxuICAgICAgICAgICdhW2hyZWZdOm5vdChbZGlzYWJsZWRdKSwgYnV0dG9uOm5vdChbZGlzYWJsZWRdKSwgdGV4dGFyZWE6bm90KFtkaXNhYmxlZF0pLCBpbnB1dDpub3QoW2Rpc2FibGVkXSksIHNlbGVjdDpub3QoW2Rpc2FibGVkXSknLFxuICAgICAgICApID8/IFtdXG5cbiAgICAgIC8vIEhhbmRsZSBjYXNlIHdoZW4gbm8gaW50ZXJhY3RpdmUgZWxlbWVudCBhcmUgd2l0aGluIHRoZSBtb2RhbCAoaW5jbHVkaW5nIGNsb3NlIGljb24pXG4gICAgICBpZiAoZm9jdXNhYmxlRWxzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGZpcnN0Rm9jdXNhYmxlRWwgPSBmb2N1c2FibGVFbHNbMF0gYXMgSFRNTEVsZW1lbnRcbiAgICAgIGNvbnN0IGxhc3RGb2N1c2FibGVFbCA9IGZvY3VzYWJsZUVsc1tcbiAgICAgICAgZm9jdXNhYmxlRWxzLmxlbmd0aCAtIDFcbiAgICAgIF0gYXMgSFRNTEVsZW1lbnRcblxuICAgICAgaWYgKGV2ZW50LnNoaWZ0S2V5KSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBmaXJzdEZvY3VzYWJsZUVsIHx8XG4gICAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gaW5uZXJQb3B1cFJlZi5jdXJyZW50XG4gICAgICAgICkge1xuICAgICAgICAgIGxhc3RGb2N1c2FibGVFbC5mb2N1cygpXG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKFxuICAgICAgICBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBsYXN0Rm9jdXNhYmxlRWwgfHxcbiAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gaW5uZXJQb3B1cFJlZi5jdXJyZW50XG4gICAgICApIHtcbiAgICAgICAgZmlyc3RGb2N1c2FibGVFbC5mb2N1cygpXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgIH1cbiAgICB9LCBbXSlcblxuICAgIC8qKlxuICAgICAqIFdpbGwgcmVuZGVyIGNoaWxkcmVuIGNvbmRpdGlvbmFsbHkgaWYgY2hpbGRyZW4gaXMgYSBmdW5jdGlvbiBvciBub3QuXG4gICAgICovXG4gICAgY29uc3QgcmVuZGVyQ2hpbGRyZW4gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBpZiAodHlwZW9mIGNoaWxkcmVuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiBjaGlsZHJlbih7XG4gICAgICAgICAgb25CbHVyOiAhaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQoZmFsc2UpIDogbm9vcCxcbiAgICAgICAgICBvbkZvY3VzOiAhaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQodHJ1ZSkgOiBub29wLFxuICAgICAgICAgIG9uUG9pbnRlckVudGVyOiAhaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQodHJ1ZSkgOiBub29wLFxuICAgICAgICAgIG9uUG9pbnRlckxlYXZlOiAhaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQoZmFsc2UpIDogbm9vcCxcbiAgICAgICAgICByZWY6IGNoaWxkcmVuUmVmLFxuICAgICAgICB9KVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkQ2hpbGRyZW5Db250YWluZXJcbiAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PXtnZW5lcmF0ZWRJZH1cbiAgICAgICAgICBhcmlhLWNvbnRyb2xzPXtnZW5lcmF0ZWRJZH1cbiAgICAgICAgICBvbkJsdXI9eyFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudChmYWxzZSkgOiBub29wfVxuICAgICAgICAgIG9uRm9jdXM9eyFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudCh0cnVlKSA6IG5vb3B9XG4gICAgICAgICAgb25Qb2ludGVyRW50ZXI9eyFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudCh0cnVlKSA6IG5vb3B9XG4gICAgICAgICAgb25Qb2ludGVyTGVhdmU9eyFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudChmYWxzZSkgOiBub29wfVxuICAgICAgICAgIHJlZj17Y2hpbGRyZW5SZWZ9XG4gICAgICAgICAgdGFiSW5kZXg9e3RhYkluZGV4fVxuICAgICAgICAgIG9uS2V5RG93bj17ZXZlbnQgPT4ge1xuICAgICAgICAgICAgb25LZXlEb3duPy4oZXZlbnQpXG4gICAgICAgICAgfX1cbiAgICAgICAgICBkYXRhLWNvbnRhaW5lci1mdWxsLXdpZHRoPXtjb250YWluZXJGdWxsV2lkdGh9XG4gICAgICAgICAgYXJpYS1oYXNwb3B1cD17YXJpYUhhc1BvcHVwfVxuICAgICAgICA+XG4gICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICA8L1N0eWxlZENoaWxkcmVuQ29udGFpbmVyPlxuICAgICAgKVxuICAgIH0sIFtcbiAgICAgIGFyaWFIYXNQb3B1cCxcbiAgICAgIGNoaWxkcmVuLFxuICAgICAgY29udGFpbmVyRnVsbFdpZHRoLFxuICAgICAgZ2VuZXJhdGVkSWQsXG4gICAgICBpc0NvbnRyb2xsZWQsXG4gICAgICBvbktleURvd24sXG4gICAgICBvblBvaW50ZXJFdmVudCxcbiAgICAgIHRhYkluZGV4LFxuICAgIF0pXG5cbiAgICBjb25zdCBzaG91bGRSZW5kZXIgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmICghZHluYW1pY0RvbVJlbmRlcmluZykge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICBpZiAoZHluYW1pY0RvbVJlbmRlcmluZyAmJiB2aXNpYmxlSW5Eb20pIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfSwgW2R5bmFtaWNEb21SZW5kZXJpbmcsIHZpc2libGVJbkRvbV0pXG5cbiAgICBpZiAoIXRleHQpIHtcbiAgICAgIGlmICh0eXBlb2YgY2hpbGRyZW4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGNoaWxkcmVuXG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIHtyZW5kZXJDaGlsZHJlbigpfVxuICAgICAgICB7c2hvdWxkUmVuZGVyXG4gICAgICAgICAgPyBjcmVhdGVQb3J0YWwoXG4gICAgICAgICAgICAgIDxTdHlsZWRQb3B1cFxuICAgICAgICAgICAgICAgIHJlZj17aW5uZXJQb3B1cFJlZn1cbiAgICAgICAgICAgICAgICBwb3NpdGlvbnM9e3Bvc2l0aW9uc31cbiAgICAgICAgICAgICAgICBtYXhXaWR0aD17bWF4V2lkdGh9XG4gICAgICAgICAgICAgICAgbWF4SGVpZ2h0PXttYXhIZWlnaHR9XG4gICAgICAgICAgICAgICAgcm9sZT17cm9sZX1cbiAgICAgICAgICAgICAgICBpZD17Z2VuZXJhdGVkSWR9XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgICAgICAgICAgICAgcmV2ZXJzZUFuaW1hdGlvbj17cmV2ZXJzZUFuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICBkYXRhLXRlc3RpZD17ZGF0YVRlc3RJZH1cbiAgICAgICAgICAgICAgICBkYXRhLWhhcy1hcnJvdz17aGFzQXJyb3d9XG4gICAgICAgICAgICAgICAgb25DbGljaz17c3RvcENsaWNrUHJvcGFnYXRpb259XG4gICAgICAgICAgICAgICAgb25Qb2ludGVyRW50ZXI9eyFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudCh0cnVlKSA6IG5vb3B9XG4gICAgICAgICAgICAgICAgb25Qb2ludGVyTGVhdmU9eyFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudChmYWxzZSkgOiBub29wfVxuICAgICAgICAgICAgICAgIGFuaW1hdGlvbkR1cmF0aW9uPXthbmltYXRpb25EdXJhdGlvbn1cbiAgICAgICAgICAgICAgICBvbktleURvd249e3JvbGUgPT09ICdkaWFsb2cnID8gaGFuZGxlRm9jdXNUcmFwIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICAgIGlzRGlhbG9nPXtyb2xlID09PSAnZGlhbG9nJ31cbiAgICAgICAgICAgICAgICBkYXRhLXZpc2libGUtaW4tZG9tPXtcbiAgICAgICAgICAgICAgICAgICFkeW5hbWljRG9tUmVuZGVyaW5nID8gdmlzaWJsZUluRG9tIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGRhdGEtYW5pbWF0ZWQ9e2FuaW1hdGlvbkR1cmF0aW9uID4gMCAmJiAhbWF4SGVpZ2h0fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3RleHR9XG4gICAgICAgICAgICAgIDwvU3R5bGVkUG9wdXA+LFxuICAgICAgICAgICAgICBwb3B1cFBvcnRhbFRhcmdldCBhcyBIVE1MRWxlbWVudCxcbiAgICAgICAgICAgIClcbiAgICAgICAgICA6IG51bGx9XG4gICAgICA8Lz5cbiAgICApXG4gIH0sXG4pXG4iXX0= */',
67
+ styles: 'display:inherit;&[data-container-full-width="true"]{width:100%;}/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1BvcHVwL2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFrSDBDIiwiZmlsZSI6Ii9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1BvcHVwL2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0J1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnXG5pbXBvcnQgdHlwZSB7XG4gIEhUTUxBdHRyaWJ1dGVzLFxuICBLZXlib2FyZEV2ZW50SGFuZGxlcixcbiAgTW91c2VFdmVudEhhbmRsZXIsXG4gIFJlYWN0Tm9kZSxcbiAgUmVmLFxuICBSZWZPYmplY3QsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHtcbiAgZm9yd2FyZFJlZixcbiAgc3RhcnRUcmFuc2l0aW9uLFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VJZCxcbiAgdXNlSW1wZXJhdGl2ZUhhbmRsZSxcbiAgdXNlTWVtbyxcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBjcmVhdGVQb3J0YWwgfSBmcm9tICdyZWFjdC1kb20nXG5pbXBvcnQgeyBpc0NsaWVudFNpZGUgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2lzQ2xpZW50U2lkZSdcbmltcG9ydCB0eXBlIHsgUG9zaXRpb25zVHlwZSB9IGZyb20gJy4vYW5pbWF0aW9ucydcbmltcG9ydCB7IGFuaW1hdGlvbiwgZXhpdEFuaW1hdGlvbiB9IGZyb20gJy4vYW5pbWF0aW9ucydcbmltcG9ydCB0eXBlIHsgUG9wdXBBbGlnbiwgUG9wdXBQbGFjZW1lbnQgfSBmcm9tICcuL2hlbHBlcnMnXG5pbXBvcnQge1xuICBERUZBVUxUX0FSUk9XX1dJRFRILFxuICBERUZBVUxUX1BPU0lUSU9OUyxcbiAgY29tcHV0ZVBvc2l0aW9ucyxcbn0gZnJvbSAnLi9oZWxwZXJzJ1xuXG5jb25zdCBERUZBVUxUX0FOSU1BVElPTl9EVVJBVElPTiA9IDIzMCAvLyBpbiBtc1xuY29uc3QgREVGQVVMVF9ERUJPVU5DRV9EVVJBVElPTiA9IDIwMCAvLyBpbiBtc1xuXG5jb25zdCBub29wID0gKCkgPT4ge31cblxudHlwZSBTdHlsZWRQb3B1cFByb3BzID0ge1xuICBtYXhXaWR0aDogbnVtYmVyIHwgc3RyaW5nXG4gIHBvc2l0aW9uczogUG9zaXRpb25zVHlwZVxuICByZXZlcnNlQW5pbWF0aW9uOiBib29sZWFuXG4gIG1heEhlaWdodD86IG51bWJlciB8IHN0cmluZ1xuICBhbmltYXRpb25EdXJhdGlvbj86IG51bWJlclxuICBpc0RpYWxvZzogYm9vbGVhblxufVxuXG4vKipcbiAqIFRoaXMgZXZlbnQgaGFuZGxlIGFsbG93IHVzIHRvIG5vdCBidWJibGUgdGhlIGV2ZW50IHRvIGRvY3VtZW50LmJvZHkgbGlrZSB0aGlzIHJlYWN0LXNlbGVjdCB3b3JrcyBmaW5lXG4gKi9cbmNvbnN0IHN0b3BDbGlja1Byb3BhZ2F0aW9uOiBNb3VzZUV2ZW50SGFuZGxlciA9IGV2ZW50ID0+IHtcbiAgZXZlbnQubmF0aXZlRXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKClcbn1cblxuY29uc3QgU3R5bGVkUG9wdXAgPSBzdHlsZWQoJ2RpdicsIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT5cbiAgICAhW1xuICAgICAgJ21heFdpZHRoJyxcbiAgICAgICdwb3NpdGlvbnMnLFxuICAgICAgJ3JldmVyc2VBbmltYXRpb24nLFxuICAgICAgJ21heEhlaWdodCcsXG4gICAgICAnYW5pbWF0aW9uRHVyYXRpb24nLFxuICAgICAgJ2lzRGlhbG9nJyxcbiAgICBdLmluY2x1ZGVzKHByb3ApLFxufSk8U3R5bGVkUG9wdXBQcm9wcz5gXG4gIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFN0cm9uZ2VyfTtcbiAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFN0cm9uZ2VyfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1heC13aWR0aDogJHsoeyBtYXhXaWR0aCB9KSA9PlxuICAgIHR5cGVvZiBtYXhXaWR0aCA9PT0gJ251bWJlcicgPyBgJHttYXhXaWR0aH1weGAgOiBtYXhXaWR0aH07XG4gIG1heC1oZWlnaHQ6ICR7KHsgbWF4SGVpZ2h0IH0pID0+XG4gICAgdHlwZW9mIG1heEhlaWdodCA9PT0gJ251bWJlcicgPyBgJHttYXhIZWlnaHR9cHhgIDogbWF4SGVpZ2h0fTtcbiAgb3ZlcmZsb3c6ICR7KHsgbWF4SGVpZ2h0IH0pID0+IChtYXhIZWlnaHQgPyAnYXV0bycgOiB1bmRlZmluZWQpfTtcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbiAgZm9udC1zaXplOiAwLjhyZW07XG4gIGluc2V0OiAwIGF1dG8gYXV0byAwO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIG9wYWNpdHk6IDA7XG4gIHotaW5kZXg6IDE7XG4gIHRyYW5zZm9ybTogJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLnBvcHVwUG9zaXRpb259O1xuXG4gICZbZGF0YS1hbmltYXRlZD1cInRydWVcIl0ge1xuICAgIGFuaW1hdGlvbjogJHsoeyBwb3NpdGlvbnMsIHJldmVyc2VBbmltYXRpb24sIGFuaW1hdGlvbkR1cmF0aW9uIH0pID0+IGNzc2BcbiAgICAgICR7YW5pbWF0aW9uRHVyYXRpb259bXMgJHtcbiAgICAgICAgIXJldmVyc2VBbmltYXRpb24gPyBhbmltYXRpb24ocG9zaXRpb25zKSA6IGV4aXRBbmltYXRpb24ocG9zaXRpb25zKVxuICAgICAgfSBmb3J3YXJkc1xuICAgIGB9O1xuICB9XG5cbiAgJltkYXRhLWhhcy1hcnJvdz1cInRydWVcIl0ge1xuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAkeyh7IHBvc2l0aW9ucyB9KSA9PiBwb3NpdGlvbnMuYXJyb3dUb3B9cHg7XG4gICAgICBsZWZ0OiAkeyh7IHBvc2l0aW9ucyB9KSA9PiBwb3NpdGlvbnMuYXJyb3dMZWZ0fXB4O1xuICAgICAgdHJhbnNmb3JtOiAkeyh7IHBvc2l0aW9ucyB9KSA9PiBwb3NpdGlvbnMuYXJyb3dUcmFuc2Zvcm19XG4gICAgICAgIHJvdGF0ZSgkeyh7IHBvc2l0aW9ucyB9KSA9PiBwb3NpdGlvbnMucm90YXRlfWRlZyk7XG4gICAgICBtYXJnaW4tbGVmdDogLSR7REVGQVVMVF9BUlJPV19XSURUSH1weDtcbiAgICAgIGJvcmRlci13aWR0aDogJHtERUZBVUxUX0FSUk9XX1dJRFRIfXB4O1xuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgIGJvcmRlci1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kU3Ryb25nZXJ9XG4gICAgICAgIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLXZpc2libGUtaW4tZG9tPVwiZmFsc2VcIl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkQ2hpbGRyZW5Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBpbmhlcml0O1xuXG4gICZbZGF0YS1jb250YWluZXItZnVsbC13aWR0aD1cInRydWVcIl0ge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5gXG5cbnR5cGUgUG9wdXBQcm9wcyA9IHtcbiAgLyoqXG4gICAqIElkIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGlmIG5vdCBzZXQuIEl0IGlzIHVzZWQgZm9yIGFzc29jaWF0aW5nIHBvcHVwIHdyYXBwZXIgd2l0aCBwb3B1cCBwb3J0YWwuXG4gICAqL1xuICBpZD86IHN0cmluZ1xuICBjaGlsZHJlbjpcbiAgICB8IFJlYWN0Tm9kZVxuICAgIHwgKChyZW5kZXJQcm9wczoge1xuICAgICAgICBjbGFzc05hbWU/OiBzdHJpbmdcbiAgICAgICAgb25CbHVyOiAoKSA9PiB2b2lkXG4gICAgICAgIG9uRm9jdXM6ICgpID0+IHZvaWRcbiAgICAgICAgb25Qb2ludGVyRW50ZXI6ICgpID0+IHZvaWRcbiAgICAgICAgb25Qb2ludGVyTGVhdmU6ICgpID0+IHZvaWRcbiAgICAgICAgcmVmOiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQgfCBudWxsPlxuICAgICAgfSkgPT4gUmVhY3ROb2RlKVxuICBtYXhXaWR0aD86IG51bWJlciB8IHN0cmluZ1xuICAvKipcbiAgICogYGF1dG9gIHBsYWNlbWVudCB3aWxsIGNoYW5nZSB0aGUgcG9zaXRpb24gb2YgdGhlIHBvcHVwIGlmIGl0IGRvZXNuJ3QgZml0IGluIHRoZSB2aWV3cG9ydC5cbiAgICovXG4gIHBsYWNlbWVudD86IFBvcHVwUGxhY2VtZW50XG4gIC8qKlxuICAgKiBBbGlnbiB0aGUgcG9wdXAgdG8gdGhlIHN0YXJ0IG9yIGNlbnRlciBvZiB0aGUgY2hpbGRyZW4uXG4gICAqL1xuICBhbGlnbj86IFBvcHVwQWxpZ25cbiAgLyoqXG4gICAqIENvbnRlbnQgb2YgdGhlIHBvcHVwLCBwcmVmZXJhYmx5IHRleHQgaW5zaWRlLlxuICAgKi9cbiAgdGV4dD86IFJlYWN0Tm9kZVxuICBjbGFzc05hbWU/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHdpbGwgYWRkIGB3aWR0aDogMTAwJWAgdG8gdGhlIHBvcHVwIGNvbnRhaW5lci5cbiAgICovXG4gIGNvbnRhaW5lckZ1bGxXaWR0aD86IGJvb2xlYW5cbiAgLyoqXG4gICAqIEl0IHdpbGwgZm9yY2UgZGlzcGxheSBwb3B1cC4gVGhpcyBjYW4gYmUgdXNlZnVsIGlmIHlvdSBuZWVkIHRvIGFsd2F5cyBkaXNwbGF5IHRoZSBwb3B1cCB3aXRob3V0IGhvdmVyIG5lZWRlZC5cbiAgICovXG4gIHZpc2libGU/OiBib29sZWFuXG4gIGlubmVyUmVmPzogUmVmPEhUTUxEaXZFbGVtZW50IHwgbnVsbD5cbiAgcm9sZT86IHN0cmluZ1xuICAnZGF0YS10ZXN0aWQnPzogc3RyaW5nXG4gIGhhc0Fycm93PzogYm9vbGVhblxuICBvbkNsb3NlPzogKCkgPT4gdm9pZFxuICB0YWJJbmRleD86IG51bWJlclxuICBvbktleURvd24/OiBLZXlib2FyZEV2ZW50SGFuZGxlclxuICAnYXJpYS1oYXNwb3B1cCc/OiBIVE1MQXR0cmlidXRlczxIVE1MRGl2RWxlbWVudD5bJ2FyaWEtaGFzcG9wdXAnXVxuICBoaWRlT25DbGlja091dHNpZGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugc2V0IGRlYm91bmNlVGltZSB0byBmYWxzZSwgdGhlIHBvcHVwIHdpbGwgbm90IGRlYm91bmNlIHRoZSBob3ZlciBldmVudCBhbmQgd2lsbCBiZSBkaXNwbGF5ZWQgaW5zdGFudGx5LlxuICAgKiBJZiBzZXQgdG8gMCBpdCB3aWxsIGRpc2FibGUgZGVib3VuY2UuXG4gICAqL1xuICBkZWJvdW5jZURlbGF5PzogbnVtYmVyXG4gIC8qKlxuICAgKiBJZiB5b3Ugc2V0IGEgbWF4IGhlaWdodCBrZWVwIGluIG1pbmQgdGhhdCB0aGUgYW5pbWF0aW9uIGlzIGRpc2FibGVkLCBvciBpdCB3aWxsIG5vdCB3b3JrIHByb3Blcmx5IG9uIHNvbWUgYnJvd3NlcnMuXG4gICAqL1xuICBtYXhIZWlnaHQ/OiBzdHJpbmcgfCBudW1iZXJcbiAgLyoqXG4gICAqIFdpbGwgcmVtb3ZlIHRoZSBhbmltYXRpb24gb24gdGhlIHBvcHVwIGlmIHNldCB0byBmYWxzZS5cbiAgICovXG4gIGRpc2FibGVBbmltYXRpb24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBCeSBkZWZhdWx0LCB0aGUgcG9ydGFsIHRhcmdldCBpcyBjaGlsZHJlbiBjb250YWluZXIgb3IgZG9jdW1lbnQuYm9keSBpZiBjaGlsZHJlbiBpcyBhIGZ1bmN0aW9uLiBZb3UgY2FuIG92ZXJyaWRlIHRoaXNcbiAgICogYmVoYXZpb3IgYnkgc2V0dGluZyBhIHBvcnRhbFRhcmdldCBwcm9wLlxuICAgKi9cbiAgcG9ydGFsVGFyZ2V0PzogSFRNTEVsZW1lbnRcbiAgLyoqXG4gICAqIElmIHlvdSBzZXQgdGhpcyB0byB0cnVlLCB0aGUgcG9wdXAgd2lsbCBiZSByZW5kZXJlZCBpbiB0aGUgRE9NIG9ubHkgd2hlbiBpdCBpcyB2aXNpYmxlLlxuICAgKiBXaGVuIHNldCB0byBmYWxzZSwgdGhlIHBvcHVwIHdpbGwgYWx3YXlzIGJlIHJlbmRlcmVkIGluIHRoZSBET00uIEJ5IGRlZmF1bHQgdGhpcyB2YWx1ZSBpcyBzZXQgdG8gYHRydWVgLCBpZiBmb3Igc29tZVxuICAgKiByZWFzb24geW91IG5lZWQgdG8gZGlzYWJsZSBpdCwgeW91IGNhbiBzZXQgaXQgdG8gYGZhbHNlYC5cbiAgICovXG4gIGR5bmFtaWNEb21SZW5kZXJpbmc/OiBib29sZWFuXG59XG5cbi8qKlxuICogQGV4cGVyaW1lbnRhbCBUaGlzIGNvbXBvbmVudCBpcyBleHBlcmltZW50YWwgYW5kIG1heSBiZSBzdWJqZWN0IHRvIGJyZWFraW5nIGNoYW5nZXMgaW4gdGhlIGZ1dHVyZS5cbiAqL1xuZXhwb3J0IGNvbnN0IFBvcHVwID0gZm9yd2FyZFJlZihcbiAgKFxuICAgIHtcbiAgICAgIGNoaWxkcmVuLFxuICAgICAgdGV4dCA9ICcnLFxuICAgICAgcGxhY2VtZW50ID0gJ2F1dG8nLFxuICAgICAgYWxpZ24gPSAnY2VudGVyJyxcbiAgICAgIGlkLFxuICAgICAgY2xhc3NOYW1lLFxuICAgICAgY29udGFpbmVyRnVsbFdpZHRoLFxuICAgICAgbWF4V2lkdGggPSAnMTQuNXJlbScsXG4gICAgICBtYXhIZWlnaHQsXG4gICAgICB2aXNpYmxlLFxuICAgICAgaW5uZXJSZWYsXG4gICAgICByb2xlID0gJ3BvcHVwJyxcbiAgICAgICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG4gICAgICBoYXNBcnJvdyA9IHRydWUsXG4gICAgICBvbkNsb3NlLFxuICAgICAgdGFiSW5kZXggPSAwLFxuICAgICAgb25LZXlEb3duLFxuICAgICAgJ2FyaWEtaGFzcG9wdXAnOiBhcmlhSGFzUG9wdXAsXG4gICAgICBoaWRlT25DbGlja091dHNpZGUgPSBmYWxzZSxcbiAgICAgIGRlYm91bmNlRGVsYXkgPSBERUZBVUxUX0RFQk9VTkNFX0RVUkFUSU9OLFxuICAgICAgZGlzYWJsZUFuaW1hdGlvbiA9IGZhbHNlLFxuICAgICAgcG9ydGFsVGFyZ2V0LFxuICAgICAgZHluYW1pY0RvbVJlbmRlcmluZyA9IHRydWUsXG4gICAgfTogUG9wdXBQcm9wcyxcbiAgICByZWY6IFJlZjxIVE1MRGl2RWxlbWVudD4sXG4gICkgPT4ge1xuICAgIGNvbnN0IGNoaWxkcmVuUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICAgIHVzZUltcGVyYXRpdmVIYW5kbGUoaW5uZXJSZWYsICgpID0+IGNoaWxkcmVuUmVmLmN1cnJlbnQgYXMgSFRNTERpdkVsZW1lbnQpXG5cbiAgICBjb25zdCBpbm5lclBvcHVwUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICAgIHVzZUltcGVyYXRpdmVIYW5kbGUocmVmLCAoKSA9PiBpbm5lclBvcHVwUmVmLmN1cnJlbnQgYXMgSFRNTERpdkVsZW1lbnQpXG5cbiAgICBjb25zdCB0aW1lciA9IHVzZVJlZjxSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0Pj4odW5kZWZpbmVkKVxuICAgIGNvbnN0IHBvcHVwUG9ydGFsVGFyZ2V0ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAocG9ydGFsVGFyZ2V0KSByZXR1cm4gcG9ydGFsVGFyZ2V0XG5cbiAgICAgIGlmIChyb2xlID09PSAnZGlhbG9nJykge1xuICAgICAgICBpZiAoY2hpbGRyZW5SZWYuY3VycmVudCkgcmV0dXJuIGNoaWxkcmVuUmVmLmN1cnJlbnRcbiAgICAgICAgaWYgKGlzQ2xpZW50U2lkZSkgcmV0dXJuIGRvY3VtZW50LmJvZHlcblxuICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgfVxuXG4gICAgICAvLyBXZSBjaGVjayBpZiB3aW5kb3cgZXhpc3RzIGZvciBTU1JcbiAgICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICByZXR1cm4gZG9jdW1lbnQuYm9keVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbnVsbFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICAgIH0sIFtwb3J0YWxUYXJnZXQsIHJvbGUsIGNoaWxkcmVuUmVmLmN1cnJlbnRdKVxuXG4gICAgLy8gVGhlcmUgYXJlIHNvbWUgaXNzdWUgd2hlbiBtaXhpbmcgYW5pbWF0aW9uIGFuZCBtYXhIZWlnaHQgb24gc29tZSBicm93c2Vycywgc28gd2UgZGlzYWJsZSBhbmltYXRpb24gaWYgbWF4SGVpZ2h0IGlzIHNldC5cbiAgICBjb25zdCBhbmltYXRpb25EdXJhdGlvbiA9XG4gICAgICBkaXNhYmxlQW5pbWF0aW9uIHx8IG1heEhlaWdodCA/IDAgOiBERUZBVUxUX0FOSU1BVElPTl9EVVJBVElPTlxuXG4gICAgLy8gRGVib3VuY2UgdGltZXIgd2lsbCBiZSB1c2VkIHRvIHByZXZlbnQgdGhlIHBvcHVwIGZyb20gZmxpY2tlcmluZyB3aGVuIHRoZSB1c2VyIG1vdmVzIHRoZSBtb3VzZSBvdXQgYW5kIGluIHRoZSBjaGlsZHJlbiBlbGVtZW50LlxuICAgIGNvbnN0IGRlYm91bmNlVGltZXIgPSB1c2VSZWY8UmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4+KHVuZGVmaW5lZClcbiAgICBjb25zdCBbdmlzaWJsZUluRG9tLCBzZXRWaXNpYmxlSW5Eb21dID0gdXNlU3RhdGUoZmFsc2UpXG4gICAgY29uc3QgW3JldmVyc2VBbmltYXRpb24sIHNldFJldmVyc2VBbmltYXRpb25dID0gdXNlU3RhdGUoZmFsc2UpXG4gICAgY29uc3QgW3Bvc2l0aW9ucywgc2V0UG9zaXRpb25zXSA9IHVzZVN0YXRlPFBvc2l0aW9uc1R5cGU+KHtcbiAgICAgIC4uLkRFRkFVTFRfUE9TSVRJT05TLFxuICAgIH0pXG4gICAgY29uc3QgdW5pcXVlSWQgPSB1c2VJZCgpXG4gICAgY29uc3QgZ2VuZXJhdGVkSWQgPSBpZCA/PyB1bmlxdWVJZFxuICAgIGNvbnN0IGlzQ29udHJvbGxlZCA9IHZpc2libGUgIT09IHVuZGVmaW5lZFxuXG4gICAgY29uc3QgZ2VuZXJhdGVQb3B1cFBvc2l0aW9ucyA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmIChjaGlsZHJlblJlZi5jdXJyZW50ICYmIGlubmVyUG9wdXBSZWYuY3VycmVudCkge1xuICAgICAgICBzZXRQb3NpdGlvbnMoXG4gICAgICAgICAgY29tcHV0ZVBvc2l0aW9ucyh7XG4gICAgICAgICAgICBjaGlsZHJlblJlZixcbiAgICAgICAgICAgIHBsYWNlbWVudCxcbiAgICAgICAgICAgIHBvcHVwUmVmOiBpbm5lclBvcHVwUmVmLFxuICAgICAgICAgICAgcG9wdXBQb3J0YWxUYXJnZXQ6IHBvcHVwUG9ydGFsVGFyZ2V0IGFzIEhUTUxFbGVtZW50LFxuICAgICAgICAgICAgaGFzQXJyb3csXG4gICAgICAgICAgICBhbGlnbixcbiAgICAgICAgICB9KSxcbiAgICAgICAgKVxuICAgICAgfVxuICAgIH0sIFtoYXNBcnJvdywgcGxhY2VtZW50LCBwb3B1cFBvcnRhbFRhcmdldCwgYWxpZ25dKVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiB3ZSBuZWVkIHRvIHJlY29tcHV0ZSBwb3NpdGlvbnMgb2YgcG9wdXAgZHVlIHRvIHdpbmRvdyBzY3JvbGwgb3IgcmVzaXplLlxuICAgICAqL1xuICAgIGNvbnN0IG9uV2luZG93Q2hhbmdlRGV0ZWN0ZWQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICAvLyBXZSByZW1vdmUgYW5pbWF0aW9uIG9uIHNjcm9sbCBvciB0aGUgYW5pbWF0aW9uIHdpbGwgcmVzdGFydCBvbiBldmVyeSBzY3JvbGxcbiAgICAgIGlmIChpbm5lclBvcHVwUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgaW5uZXJQb3B1cFJlZi5jdXJyZW50LnN0eWxlLmFuaW1hdGlvbiA9ICdub25lJ1xuICAgICAgfVxuXG4gICAgICBnZW5lcmF0ZVBvcHVwUG9zaXRpb25zKClcbiAgICB9LCBbZ2VuZXJhdGVQb3B1cFBvc2l0aW9ucywgaW5uZXJQb3B1cFJlZl0pXG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHdlIG5lZWQgdG8gcmVtb3ZlIHBvcHVwIHBvcnRhbCBmcm9tIERPTSBhbmQgcmVtb3ZlIGV2ZW50IGxpc3RlbmVyIHRvIGl0LlxuICAgICAqL1xuICAgIGNvbnN0IHVubW91bnRQb3B1cEZyb21Eb20gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBzZXRWaXNpYmxlSW5Eb20oZmFsc2UpXG4gICAgICBzZXRSZXZlcnNlQW5pbWF0aW9uKGZhbHNlKVxuXG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgb25XaW5kb3dDaGFuZ2VEZXRlY3RlZCwgdHJ1ZSlcbiAgICB9LCBbb25XaW5kb3dDaGFuZ2VEZXRlY3RlZF0pXG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHdlIG5lZWQgdG8gaGlkZSBwb3B1cC4gQSB0aW1lb3V0IGlzIHNldCB0byBhbGxvdyBhbmltYXRpb24gZW5kLCB0aGVuIHJlbW92ZVxuICAgICAqIHBvcHVwIGZyb20gZG9tLlxuICAgICAqL1xuICAgIGNvbnN0IGNsb3NlUG9wdXAgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBjb25zdCBjbG9zZUZ1bmN0aW9uID0gKCkgPT4ge1xuICAgICAgICBpZiAoIWRpc2FibGVBbmltYXRpb24pIHtcbiAgICAgICAgICBzZXRSZXZlcnNlQW5pbWF0aW9uKHRydWUpXG5cbiAgICAgICAgICB0aW1lci5jdXJyZW50ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBvbkNsb3NlPy4oKVxuICAgICAgICAgICAgdW5tb3VudFBvcHVwRnJvbURvbSgpXG4gICAgICAgICAgfSwgYW5pbWF0aW9uRHVyYXRpb24pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgb25DbG9zZT8uKClcbiAgICAgICAgICB1bm1vdW50UG9wdXBGcm9tRG9tKClcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoIWRpc2FibGVBbmltYXRpb24pIHtcbiAgICAgICAgZGVib3VuY2VUaW1lci5jdXJyZW50ID0gc2V0VGltZW91dChcbiAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICBjbG9zZUZ1bmN0aW9uKClcbiAgICAgICAgICB9LFxuICAgICAgICAgIGRlYm91bmNlRGVsYXkgJiYgIWRpc2FibGVBbmltYXRpb24gPyBkZWJvdW5jZURlbGF5IDogMCxcbiAgICAgICAgKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2xvc2VGdW5jdGlvbigpXG4gICAgICB9XG4gICAgfSwgW1xuICAgICAgYW5pbWF0aW9uRHVyYXRpb24sXG4gICAgICBkaXNhYmxlQW5pbWF0aW9uLFxuICAgICAgZGVib3VuY2VEZWxheSxcbiAgICAgIG9uQ2xvc2UsXG4gICAgICB1bm1vdW50UG9wdXBGcm9tRG9tLFxuICAgIF0pXG5cbiAgICAvKipcbiAgICAgKiBXaGVuIG1vdXNlIGhvdmVyIG9yIHN0b3AgaG92ZXJpbmcgY2hpbGRyZW4gdGhpcyBmdW5jdGlvbiBkaXNwbGF5IG9yIGhpZGUgcG9wdXAuIEEgdGltZW91dCBpcyBzZXQgdG8gYWxsb3cgYW5pbWF0aW9uXG4gICAgICogZW5kLCB0aGVuIHJlbW92ZSBwb3B1cCBmcm9tIGRvbS5cbiAgICAgKi9cbiAgICBjb25zdCBvblBvaW50ZXJFdmVudCA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGlzVmlzaWJsZTogYm9vbGVhbikgPT4gKCkgPT4ge1xuICAgICAgICAvLyBJZiB0aGVyZSBpcyBhIGRlYm91bmNlRGVsYXkgYW5kIHRoZSBwb3B1cCBpcyBub3QgdmlzaWJsZSwgd2UgY2xlYXIgdGhlIGRlYm91bmNlIHRpbWVyXG4gICAgICAgIGlmICghdmlzaWJsZSAmJiBkZWJvdW5jZURlbGF5ID4gMCAmJiBkZWJvdW5jZVRpbWVyLmN1cnJlbnQpIHtcbiAgICAgICAgICBjbGVhclRpbWVvdXQoZGVib3VuY2VUaW1lci5jdXJyZW50KVxuICAgICAgICAgIGRlYm91bmNlVGltZXIuY3VycmVudCA9IHVuZGVmaW5lZFxuICAgICAgICB9XG5cbiAgICAgICAgLy8gVGhpcyBjb25kaXRpb24gaXMgZm9yIHdoZW4gd2Ugd2FudCB0byB1bm1vdW50IHRoZSBwb3B1cFxuICAgICAgICAvLyBUaGVyZSBpcyBkZWJvdW5jZSBpbiBvcmRlciB0byBhdm9pZCBwb3B1cCB0byBmbGlja2VyIHdoZW4gd2UgbW92ZSB0aGUgbW91c2UgZnJvbSBjaGlsZHJlbiB0byBwb3B1cFxuICAgICAgICAvLyBUaW1lciBpcyB1c2VkIHRvIGZvbGxvdyB0aGUgYW5pbWF0aW9uIGR1cmF0aW9uXG4gICAgICAgIGlmICghaXNWaXNpYmxlICYmIGlubmVyUG9wdXBSZWYuY3VycmVudCAmJiAhZGVib3VuY2VUaW1lci5jdXJyZW50KSB7XG4gICAgICAgICAgY2xvc2VQb3B1cCgpXG4gICAgICAgIH0gZWxzZSBpZiAoaXNWaXNpYmxlKSB7XG4gICAgICAgICAgLy8gVGhpcyBjb25kaXRpb24gaXMgZm9yIHdoZW4gd2Ugd2FudCB0byBtb3VudCB0aGUgcG9wdXBcbiAgICAgICAgICAvLyBJZiB0aGUgdGltZXIgZXhpc3RzIGl0IG1lYW5zIHRoZSBwb3B1cCB3YXMgYWJvdXQgdG8gdW1vdW50LCBidXQgd2UgaG92ZXJlZCB0aGUgY2hpbGRyZW4gYWdhaW4sXG4gICAgICAgICAgLy8gc28gd2UgY2xlYXIgdGhlIHRpbWVyIGFuZCB0aGUgcG9wdXAgd2lsbCBub3QgYmUgdW5tb3VudGVkXG4gICAgICAgICAgaWYgKHRpbWVyLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIHNldFJldmVyc2VBbmltYXRpb24oZmFsc2UpXG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGltZXIuY3VycmVudClcbiAgICAgICAgICAgIHRpbWVyLmN1cnJlbnQgPSB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gQW5kIGhlcmUgaXMgd2hlbiB3ZSBjdXJyZW50bHkgYXJlIGluIGEgZGVib3VuY2UgdGltZXIsIGl0IG1lYW5zIHBvcHVwIHdhcyBob3ZlcmVkIGR1cmluZ1xuICAgICAgICAgIC8vIHRoYXQgcGVyaW9kLCBhbmQgc28gd2UgY2FuIGNsZWFyIGRlYm91bmNlIHRpbWVyXG4gICAgICAgICAgaWYgKGRlYm91bmNlVGltZXIuY3VycmVudCkge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KGRlYm91bmNlVGltZXIuY3VycmVudClcbiAgICAgICAgICAgIGRlYm91bmNlVGltZXIuY3VycmVudCA9IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZGVib3VuY2VEZWxheSA+IDApIHtcbiAgICAgICAgICAgIGRlYm91bmNlVGltZXIuY3VycmVudCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICBzZXRWaXNpYmxlSW5Eb20odHJ1ZSlcbiAgICAgICAgICAgIH0sIGRlYm91bmNlRGVsYXkpXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN0YXJ0VHJhbnNpdGlvbigoKSA9PiB7XG4gICAgICAgICAgICAgIHNldFZpc2libGVJbkRvbSh0cnVlKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBbY2xvc2VQb3B1cCwgZGVib3VuY2VEZWxheSwgdmlzaWJsZV0sXG4gICAgKVxuXG4gICAgLyoqXG4gICAgICogT25jZSBwb3B1cCBpcyB2aXNpYmxlIGluIHRoZSBkb20gd2UgY2FuIGNvbXB1dGUgcG9zaXRpb25zLCB0aGVuIHNldCBpdCB2aXNpYmxlIG9uIHNjcmVlbiBhbmQgYWRkIGV2ZW50IHRvXG4gICAgICogcmVjb21wdXRlIHBvc2l0aW9ucyBvbiBzY3JvbGwgb3Igc2NyZWVuIHJlc2l6ZS5cbiAgICAgKi9cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKHZpc2libGVJbkRvbSkge1xuICAgICAgICBnZW5lcmF0ZVBvcHVwUG9zaXRpb25zKClcblxuICAgICAgICBpZiAocG9wdXBQb3J0YWxUYXJnZXQgPT09IGRvY3VtZW50LmJvZHkpIHtcbiAgICAgICAgICAvLyBXZSB3YW50IHRvIGRldGVjdCBzY3JvbGwgYW5kIHJlc2l6ZSBpbiBvcmRlciB0byByZWNvbXB1dGUgcG9zaXRpb25zIG9mIHBvcHVwXG4gICAgICAgICAgLy8gQWRkaW5nIHRydWUgYXMgdGhpcmQgcGFyYW1ldGVyIHRvIGV2ZW50IGxpc3RlbmVyIHdpbGwgZGV0ZWN0IG5lc3RlZCBzY3JvbGxzLlxuICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBvbldpbmRvd0NoYW5nZURldGVjdGVkLCB0cnVlKVxuICAgICAgICB9XG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBvbldpbmRvd0NoYW5nZURldGVjdGVkLCB0cnVlKVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgb25XaW5kb3dDaGFuZ2VEZXRlY3RlZCwgdHJ1ZSlcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIG9uV2luZG93Q2hhbmdlRGV0ZWN0ZWQsIHRydWUpXG4gICAgICAgIGlmICh0aW1lci5jdXJyZW50KSB7XG4gICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVyLmN1cnJlbnQpXG4gICAgICAgICAgdGltZXIuY3VycmVudCA9IHVuZGVmaW5lZFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgW1xuICAgICAgZ2VuZXJhdGVQb3B1cFBvc2l0aW9ucyxcbiAgICAgIG9uV2luZG93Q2hhbmdlRGV0ZWN0ZWQsXG4gICAgICB2aXNpYmxlSW5Eb20sXG4gICAgICBtYXhXaWR0aCxcbiAgICAgIHBvcHVwUG9ydGFsVGFyZ2V0LFxuICAgIF0pXG5cbiAgICAvLyBUaGlzIHdpbGwgYmUgdHJpZ2dlcmVkIHdoZW4gcG9zaXRpb25zIGFyZSBjb21wdXRlZCBhbmQgcG9wdXAgaXMgdmlzaWJsZSBpbiB0aGUgZG9tLlxuICAgIHVzZUVmZmVjdChcbiAgICAgICgpID0+IHtcbiAgICAgICAgaWYgKHZpc2libGVJbkRvbSAmJiBpbm5lclBvcHVwUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICBpbm5lclBvcHVwUmVmLmN1cnJlbnQuc3R5bGUub3BhY2l0eSA9ICcxJ1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICAgICAgW3Bvc2l0aW9uc10sXG4gICAgKVxuXG4gICAgLyoqXG4gICAgICogSWYgcG9wdXAgaGFzIGB2aXNpYmxlYCBwcm9wIGl0IG1lYW5zIHRoZSBwb3B1cCBpcyBtYW51YWxseSBjb250cm9sbGVkIHRocm91Z2ggdGhpcyBwcm9wLlxuICAgICAqIEluIHRoaXMgY2FzIHdlIGRvbid0IHdhbnQgdG8gZGlzcGxheSBwb3B1cCBvbiBob3ZlciwgYnV0IG9ubHkgd2hlbiBgdmlzaWJsZWAgaXMgdHJ1ZS5cbiAgICAgKi9cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKGlzQ29udHJvbGxlZCkge1xuICAgICAgICBvblBvaW50ZXJFdmVudCh2aXNpYmxlKSgpXG4gICAgICB9XG4gICAgfSwgW2lzQ29udHJvbGxlZCwgb25Qb2ludGVyRXZlbnQsIHZpc2libGVdKVxuXG4gICAgLy8gSGFuZGxlIGhpZGUgb24gZXNjIHByZXNzIGFuZCBoaWRlIG9uIGNsaWNrIG91dHNpZGVcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgaGFuZGxlRXNjUHJlc3MgPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgICBjbG9zZVBvcHVwKClcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCBoYW5kbGVDbGlja091dHNpZGUgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgY29uc3QgcG9wdXBDdXJyZW50ID0gaW5uZXJQb3B1cFJlZi5jdXJyZW50XG4gICAgICAgIGNvbnN0IGNoaWxkcmVuQ3VycmVudCA9IGNoaWxkcmVuUmVmLmN1cnJlbnRcblxuICAgICAgICBpZiAocG9wdXBDdXJyZW50ICYmIGhpZGVPbkNsaWNrT3V0c2lkZSAmJiAhZXZlbnQuZGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGV2ZW50LnRhcmdldCAmJlxuICAgICAgICAgICAgZXZlbnQudGFyZ2V0ICE9PSBwb3B1cEN1cnJlbnQgJiZcbiAgICAgICAgICAgIGV2ZW50LnRhcmdldCAhPT0gY2hpbGRyZW5DdXJyZW50ICYmXG4gICAgICAgICAgICAhY2hpbGRyZW5DdXJyZW50Py5jb250YWlucyhldmVudC50YXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICAgICFwb3B1cEN1cnJlbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIE5vZGUpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgICAgY2xvc2VQb3B1cCgpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAodmlzaWJsZUluRG9tKSB7XG4gICAgICAgIGRvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCBoYW5kbGVFc2NQcmVzcylcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGhhbmRsZUNsaWNrT3V0c2lkZSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXl1cCcsIGhhbmRsZUVzY1ByZXNzKVxuICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgaGFuZGxlQ2xpY2tPdXRzaWRlKVxuICAgICAgfVxuICAgIH0sIFtcbiAgICAgIGNsb3NlUG9wdXAsXG4gICAgICB2aXNpYmxlSW5Eb20sXG4gICAgICBpbm5lclBvcHVwUmVmLFxuICAgICAgY2hpbGRyZW5SZWYsXG4gICAgICBoaWRlT25DbGlja091dHNpZGUsXG4gICAgXSlcblxuICAgIC8qKlxuICAgICAqIFRoaXMgZXZlbnQgd2lsbCBvY2N1ciBvbmx5IGZvciBkaWFsb2cgYW5kIHdpbGwgdHJhcCBmb2N1cyBpbnNpZGUgdGhlIGRpYWxvZy5cbiAgICAgKi9cbiAgICBjb25zdCBoYW5kbGVGb2N1c1RyYXA6IEtleWJvYXJkRXZlbnRIYW5kbGVyID0gdXNlQ2FsbGJhY2soZXZlbnQgPT4ge1xuICAgICAgY29uc3QgaXNUYWJQcmVzc2VkID0gZXZlbnQua2V5ID09PSAnVGFiJ1xuICAgICAgaWYgKCFpc1RhYlByZXNzZWQpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuXG4gICAgICBjb25zdCBmb2N1c2FibGVFbHMgPVxuICAgICAgICBpbm5lclBvcHVwUmVmLmN1cnJlbnQ/LnF1ZXJ5U2VsZWN0b3JBbGwoXG4gICAgICAgICAgJ2FbaHJlZl06bm90KFtkaXNhYmxlZF0pLCBidXR0b246bm90KFtkaXNhYmxlZF0pLCB0ZXh0YXJlYTpub3QoW2Rpc2FibGVkXSksIGlucHV0Om5vdChbZGlzYWJsZWRdKSwgc2VsZWN0Om5vdChbZGlzYWJsZWRdKScsXG4gICAgICAgICkgPz8gW11cblxuICAgICAgLy8gSGFuZGxlIGNhc2Ugd2hlbiBubyBpbnRlcmFjdGl2ZSBlbGVtZW50IGFyZSB3aXRoaW4gdGhlIG1vZGFsIChpbmNsdWRpbmcgY2xvc2UgaWNvbilcbiAgICAgIGlmIChmb2N1c2FibGVFbHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgIH1cblxuICAgICAgY29uc3QgZmlyc3RGb2N1c2FibGVFbCA9IGZvY3VzYWJsZUVsc1swXSBhcyBIVE1MRWxlbWVudFxuICAgICAgY29uc3QgbGFzdEZvY3VzYWJsZUVsID0gZm9jdXNhYmxlRWxzW1xuICAgICAgICBmb2N1c2FibGVFbHMubGVuZ3RoIC0gMVxuICAgICAgXSBhcyBIVE1MRWxlbWVudFxuXG4gICAgICBpZiAoZXZlbnQuc2hpZnRLZXkpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGZpcnN0Rm9jdXNhYmxlRWwgfHxcbiAgICAgICAgICBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBpbm5lclBvcHVwUmVmLmN1cnJlbnRcbiAgICAgICAgKSB7XG4gICAgICAgICAgbGFzdEZvY3VzYWJsZUVsLmZvY3VzKClcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGxhc3RGb2N1c2FibGVFbCB8fFxuICAgICAgICBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBpbm5lclBvcHVwUmVmLmN1cnJlbnRcbiAgICAgICkge1xuICAgICAgICBmaXJzdEZvY3VzYWJsZUVsLmZvY3VzKClcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgfVxuICAgIH0sIFtdKVxuXG4gICAgLyoqXG4gICAgICogV2lsbCByZW5kZXIgY2hpbGRyZW4gY29uZGl0aW9uYWxseSBpZiBjaGlsZHJlbiBpcyBhIGZ1bmN0aW9uIG9yIG5vdC5cbiAgICAgKi9cbiAgICBjb25zdCByZW5kZXJDaGlsZHJlbiA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmICh0eXBlb2YgY2hpbGRyZW4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0dXJuIGNoaWxkcmVuKHtcbiAgICAgICAgICBvbkJsdXI6ICFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudChmYWxzZSkgOiBub29wLFxuICAgICAgICAgIG9uRm9jdXM6ICFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudCh0cnVlKSA6IG5vb3AsXG4gICAgICAgICAgb25Qb2ludGVyRW50ZXI6ICFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudCh0cnVlKSA6IG5vb3AsXG4gICAgICAgICAgb25Qb2ludGVyTGVhdmU6ICFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudChmYWxzZSkgOiBub29wLFxuICAgICAgICAgIHJlZjogY2hpbGRyZW5SZWYsXG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTdHlsZWRDaGlsZHJlbkNvbnRhaW5lclxuICAgICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9e2dlbmVyYXRlZElkfVxuICAgICAgICAgIGFyaWEtY29udHJvbHM9e2dlbmVyYXRlZElkfVxuICAgICAgICAgIG9uQmx1cj17IWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KGZhbHNlKSA6IG5vb3B9XG4gICAgICAgICAgb25Gb2N1cz17IWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KHRydWUpIDogbm9vcH1cbiAgICAgICAgICBvblBvaW50ZXJFbnRlcj17IWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KHRydWUpIDogbm9vcH1cbiAgICAgICAgICBvblBvaW50ZXJMZWF2ZT17IWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KGZhbHNlKSA6IG5vb3B9XG4gICAgICAgICAgcmVmPXtjaGlsZHJlblJlZn1cbiAgICAgICAgICB0YWJJbmRleD17dGFiSW5kZXh9XG4gICAgICAgICAgb25LZXlEb3duPXtldmVudCA9PiB7XG4gICAgICAgICAgICBvbktleURvd24/LihldmVudClcbiAgICAgICAgICB9fVxuICAgICAgICAgIGRhdGEtY29udGFpbmVyLWZ1bGwtd2lkdGg9e2NvbnRhaW5lckZ1bGxXaWR0aH1cbiAgICAgICAgICBhcmlhLWhhc3BvcHVwPXthcmlhSGFzUG9wdXB9XG4gICAgICAgID5cbiAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIDwvU3R5bGVkQ2hpbGRyZW5Db250YWluZXI+XG4gICAgICApXG4gICAgfSwgW1xuICAgICAgYXJpYUhhc1BvcHVwLFxuICAgICAgY2hpbGRyZW4sXG4gICAgICBjb250YWluZXJGdWxsV2lkdGgsXG4gICAgICBnZW5lcmF0ZWRJZCxcbiAgICAgIGlzQ29udHJvbGxlZCxcbiAgICAgIG9uS2V5RG93bixcbiAgICAgIG9uUG9pbnRlckV2ZW50LFxuICAgICAgdGFiSW5kZXgsXG4gICAgXSlcblxuICAgIGNvbnN0IHNob3VsZFJlbmRlciA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKCFkeW5hbWljRG9tUmVuZGVyaW5nKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChkeW5hbWljRG9tUmVuZGVyaW5nICYmIHZpc2libGVJbkRvbSkge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9LCBbZHluYW1pY0RvbVJlbmRlcmluZywgdmlzaWJsZUluRG9tXSlcblxuICAgIGlmICghdGV4dCkge1xuICAgICAgaWYgKHR5cGVvZiBjaGlsZHJlbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgfVxuXG4gICAgICByZXR1cm4gY2hpbGRyZW5cbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAge3JlbmRlckNoaWxkcmVuKCl9XG4gICAgICAgIHtzaG91bGRSZW5kZXJcbiAgICAgICAgICA/IGNyZWF0ZVBvcnRhbChcbiAgICAgICAgICAgICAgPFN0eWxlZFBvcHVwXG4gICAgICAgICAgICAgICAgcmVmPXtpbm5lclBvcHVwUmVmfVxuICAgICAgICAgICAgICAgIHBvc2l0aW9ucz17cG9zaXRpb25zfVxuICAgICAgICAgICAgICAgIG1heFdpZHRoPXttYXhXaWR0aH1cbiAgICAgICAgICAgICAgICBtYXhIZWlnaHQ9e21heEhlaWdodH1cbiAgICAgICAgICAgICAgICByb2xlPXtyb2xlfVxuICAgICAgICAgICAgICAgIGlkPXtnZW5lcmF0ZWRJZH1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgICAgICAgICAgICByZXZlcnNlQW5pbWF0aW9uPXtyZXZlcnNlQW5pbWF0aW9ufVxuICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPXtkYXRhVGVzdElkfVxuICAgICAgICAgICAgICAgIGRhdGEtaGFzLWFycm93PXtoYXNBcnJvd31cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtzdG9wQ2xpY2tQcm9wYWdhdGlvbn1cbiAgICAgICAgICAgICAgICBvblBvaW50ZXJFbnRlcj17IWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KHRydWUpIDogbm9vcH1cbiAgICAgICAgICAgICAgICBvblBvaW50ZXJMZWF2ZT17IWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KGZhbHNlKSA6IG5vb3B9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uRHVyYXRpb249e2FuaW1hdGlvbkR1cmF0aW9ufVxuICAgICAgICAgICAgICAgIG9uS2V5RG93bj17cm9sZSA9PT0gJ2RpYWxvZycgPyBoYW5kbGVGb2N1c1RyYXAgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgICAgaXNEaWFsb2c9e3JvbGUgPT09ICdkaWFsb2cnfVxuICAgICAgICAgICAgICAgIGRhdGEtdmlzaWJsZS1pbi1kb209e1xuICAgICAgICAgICAgICAgICAgIWR5bmFtaWNEb21SZW5kZXJpbmcgPyB2aXNpYmxlSW5Eb20gOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZGF0YS1hbmltYXRlZD17YW5pbWF0aW9uRHVyYXRpb24gPiAwICYmICFtYXhIZWlnaHR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7dGV4dH1cbiAgICAgICAgICAgICAgPC9TdHlsZWRQb3B1cD4sXG4gICAgICAgICAgICAgIHBvcHVwUG9ydGFsVGFyZ2V0IGFzIEhUTUxFbGVtZW50LFxuICAgICAgICAgICAgKVxuICAgICAgICAgIDogbnVsbH1cbiAgICAgIDwvPlxuICAgIClcbiAgfSxcbilcbiJdfQ== */',
68
68
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
69
69
  });
70
70
  const Popup = forwardRef(({
@@ -143,13 +143,25 @@ const Popup = forwardRef(({
143
143
  window.removeEventListener("scroll", onWindowChangeDetected, true);
144
144
  }, [onWindowChangeDetected]);
145
145
  const closePopup = useCallback(() => {
146
- debounceTimer.current = setTimeout(() => {
147
- setReverseAnimation(true);
148
- timer.current = setTimeout(() => {
149
- unmountPopupFromDom();
146
+ const closeFunction = () => {
147
+ if (!disableAnimation) {
148
+ setReverseAnimation(true);
149
+ timer.current = setTimeout(() => {
150
+ onClose?.();
151
+ unmountPopupFromDom();
152
+ }, animationDuration);
153
+ } else {
150
154
  onClose?.();
151
- }, animationDuration);
152
- }, debounceDelay && !disableAnimation ? debounceDelay : 0);
155
+ unmountPopupFromDom();
156
+ }
157
+ };
158
+ if (!disableAnimation) {
159
+ debounceTimer.current = setTimeout(() => {
160
+ closeFunction();
161
+ }, debounceDelay && !disableAnimation ? debounceDelay : 0);
162
+ } else {
163
+ closeFunction();
164
+ }
153
165
  }, [animationDuration, disableAnimation, debounceDelay, onClose, unmountPopupFromDom]);
154
166
  const onPointerEvent = useCallback((isVisible) => () => {
155
167
  if (!visible && debounceDelay > 0 && debounceTimer.current) {
@@ -3,9 +3,9 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const jsxRuntime = require("@emotion/react/jsx-runtime");
4
4
  const _styled = require("@emotion/styled/base");
5
5
  const react = require("@emotion/react");
6
- const index$2 = require("../Label/index.cjs");
6
+ const index$1 = require("../Label/index.cjs");
7
7
  const index = require("../Stack/index.cjs");
8
- const index$1 = require("../Text/index.cjs");
8
+ const index$2 = require("../Text/index.cjs");
9
9
  const _interopDefaultCompat = (e) => e && typeof e === "object" && "default" in e ? e : { default: e };
10
10
  const _styled__default = /* @__PURE__ */ _interopDefaultCompat(_styled);
11
11
  function _EMOTION_STRINGIFIED_CSS_ERROR__() {
@@ -45,7 +45,7 @@ const StyledStack = /* @__PURE__ */ _styled__default.default(index.Stack, proces
45
45
  styles: "width:fit-content/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1Byb2dyZXNzQmFyL2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFvQ2lDIiwiZmlsZSI6Ii9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1Byb2dyZXNzQmFyL2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGtleWZyYW1lcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0J1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnXG5pbXBvcnQgdHlwZSB7IFJlYWN0Tm9kZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBDb2xvciB9IGZyb20gJy4uLy4uL3RoZW1lJ1xuaW1wb3J0IHsgTGFiZWwgfSBmcm9tICcuLi9MYWJlbCdcbmltcG9ydCB7IFN0YWNrIH0gZnJvbSAnLi4vU3RhY2snXG5pbXBvcnQgeyBUZXh0IH0gZnJvbSAnLi4vVGV4dCdcblxuY29uc3Qgc2hpbmVBbmltYXRpb24gPSBrZXlmcmFtZXNgXG4gIGZyb20ge1xuICAgIGxlZnQ6IC0yNSU7XG4gIH1cblxuICB0byB7XG4gICAgbGVmdDogMTAwJTtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgcHJvZ3Jlc3NCYXJTZW50aW1lbnRzID0gW1xuICAncHJpbWFyeScsXG4gICdzdWNjZXNzJyxcbiAgJ3dhcm5pbmcnLFxuICAnaW5mbycsXG4gICdkYW5nZXInLFxuXSBhcyBjb25zdFxuXG5jb25zdCBTdHlsZWRQcm9ncmVzc0NvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNpemluZ1snMDUwJ119O1xuICBtYXJnaW4tbGVmdDogMDtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRTdHJvbmd9O1xuICB3aWR0aDogMTAwJTtcbmBcbmNvbnN0IFN0eWxlZFN0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgd2lkdGg6IGZpdC1jb250ZW50O1xuYFxuY29uc3QgU3R5bGVkVGV4dCA9IHN0eWxlZChUZXh0KWBcbiAgd2lkdGg6IG1heC1jb250ZW50O1xuYFxuY29uc3QgU3R5bGVkUHJvZ3Jlc3MgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgYm90dG9tOiAwO1xuICB3aWR0aDogMjUlO1xuICBvcGFjaXR5OiAwLjg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICA5MGRlZyxcbiAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDApLFxuICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKSxcbiAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCksXG4gICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpLFxuICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMClcbiAgKTtcbiAgYW5pbWF0aW9uOiAke3NoaW5lQW5pbWF0aW9ufSAxcyBsaW5lYXIgaW5maW5pdGU7XG5gXG5cbmNvbnN0IFN0eWxlZEZpbGxlZCA9IHN0eWxlZCgnZGl2Jywge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydzZW50aW1lbnQnLCAncGVyY2VudGFnZVZhbHVlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7IHNlbnRpbWVudDogc3RyaW5nOyBwZXJjZW50YWdlVmFsdWU6IG51bWJlciB9PmBcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSwgc2VudGltZW50IH0pID0+XG4gICAgdGhlbWUuY29sb3JzW3NlbnRpbWVudCBhcyBDb2xvcl0uYmFja2dyb3VuZFN0cm9uZyA/PyAnaW5oZXJpdCd9O1xuICB0cmFuc2l0aW9uOiAwLjNzIHdpZHRoO1xuICB3aWR0aDogJHsoeyBwZXJjZW50YWdlVmFsdWUgfSkgPT4gcGVyY2VudGFnZVZhbHVlfSU7XG5gXG5cbnR5cGUgUHJvZ3Jlc3NCYXJQcm9wcyA9IHtcbiAgc2VudGltZW50PzogKHR5cGVvZiBwcm9ncmVzc0JhclNlbnRpbWVudHMpW251bWJlcl1cbiAgdmFsdWU/OiBudW1iZXJcbiAgc2hvd1Byb2dyZXNzPzogYm9vbGVhblxuICBwcmVmaXg/OiBSZWFjdE5vZGVcbiAgc3VmZml4PzogUmVhY3ROb2RlXG4gIG1heD86IG51bWJlclxuICBsYWJlbD86IHN0cmluZ1xuICBsYWJlbERlc2NyaXB0aW9uPzogUmVhY3ROb2RlXG4gIGRpcmVjdGlvbj86ICdjb2x1bW4nIHwgJ3JvdydcbiAgLyoqIFB1dCBQcm9ncmVzc0JhciBpbiBhIGxvYWRpbmcgc3RhdGUgKi9cbiAgcHJvZ3Jlc3M/OiBib29sZWFuXG4gIGNsYXNzTmFtZT86IHN0cmluZ1xuICAnZGF0YS10ZXN0aWQnPzogc3RyaW5nXG4gICdhcmlhLWxhYmVsbGVkYnknPzogc3RyaW5nXG4gICdhcmlhLWxhYmVsJz86IHN0cmluZ1xufVxuXG4vKipcbiAqIFByb2dyZXNzIGJhciBjb21wb25lbnQgdG8gZGlzcGxheSBwcm9ncmVzcyBvZiBhIHRhc2suIENhbiBiZSB1c2VkIHRvIGRpc3BsYXkgcHJvZ3Jlc3Mgb2YgYSBmb3JtIG9yIGEgbG9hZGluZyBzdGF0ZS5cbiAqL1xuZXhwb3J0IGNvbnN0IFByb2dyZXNzQmFyID0gKHtcbiAgcHJvZ3Jlc3MgPSBmYWxzZSxcbiAgdmFsdWUgPSAwLFxuICBzZW50aW1lbnQgPSAncHJpbWFyeScsXG4gIGNsYXNzTmFtZSxcbiAgJ2RhdGEtdGVzdGlkJzogZGF0YVRlc3RJZCxcbiAgc2hvd1Byb2dyZXNzID0gZmFsc2UsXG4gIHByZWZpeCxcbiAgc3VmZml4ID0gJyUnLFxuICBtYXggPSAxMDAsXG4gIGxhYmVsLFxuICBsYWJlbERlc2NyaXB0aW9uLFxuICBkaXJlY3Rpb24gPSAnY29sdW1uJyxcbiAgJ2FyaWEtbGFiZWxsZWRieSc6IGFyaWFMYWJlbGxlZEJ5LFxuICAnYXJpYS1sYWJlbCc6IGFyaWFMYWJlbCxcbn06IFByb2dyZXNzQmFyUHJvcHMpID0+IChcbiAgPFN0YWNrXG4gICAgZ2FwPXtkaXJlY3Rpb24gPT09ICdjb2x1bW4nID8gMSA6IDJ9XG4gICAgZGlyZWN0aW9uPXtkaXJlY3Rpb259XG4gICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gID5cbiAgICB7ZGlyZWN0aW9uID09PSAnY29sdW1uJyAmJiAobGFiZWwgfHwgc2hvd1Byb2dyZXNzKSA/IChcbiAgICAgIDxTdGFja1xuICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICBqdXN0aWZ5Q29udGVudD17IWxhYmVsICYmIHNob3dQcm9ncmVzcyA/ICdyaWdodCcgOiAnc3BhY2UtYmV0d2Vlbid9XG4gICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICA+XG4gICAgICAgIDxMYWJlbCBsYWJlbERlc2NyaXB0aW9uPXtsYWJlbERlc2NyaXB0aW9ufSBzaXplPVwibWVkaXVtXCI+XG4gICAgICAgICAge2xhYmVsfVxuICAgICAgICA8L0xhYmVsPlxuICAgICAgICB7c2hvd1Byb2dyZXNzID8gKFxuICAgICAgICAgIDxUZXh0XG4gICAgICAgICAgICBhcz1cImxhYmVsXCJcbiAgICAgICAgICAgIHZhcmlhbnQ9XCJib2R5U21hbGxcIlxuICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3ByZWZpeH1cbiAgICAgICAgICAgIHtzdWZmaXggPT09ICclJ1xuICAgICAgICAgICAgICA/ICgxMDAgKiBNYXRoLm1heCgwLCBNYXRoLm1pbihtYXgsIHZhbHVlKSkpIC8gbWF4XG4gICAgICAgICAgICAgIDogTWF0aC5tYXgoMCwgTWF0aC5taW4obWF4LCB2YWx1ZSkpfVxuICAgICAgICAgICAge3N1ZmZpeH1cbiAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9TdGFjaz5cbiAgICApIDogbnVsbH1cblxuICAgIHtkaXJlY3Rpb24gPT09ICdyb3cnICYmIGxhYmVsID8gKFxuICAgICAgPExhYmVsIGxhYmVsRGVzY3JpcHRpb249e2xhYmVsRGVzY3JpcHRpb259IHNpemU9XCJtZWRpdW1cIj5cbiAgICAgICAge2xhYmVsfVxuICAgICAgPC9MYWJlbD5cbiAgICApIDogbnVsbH1cblxuICAgIDxTdHlsZWRQcm9ncmVzc0NvbnRhaW5lclxuICAgICAgcm9sZT1cInByb2dyZXNzYmFyXCJcbiAgICAgIGFyaWEtdmFsdWVub3c9e3ZhbHVlfVxuICAgICAgYXJpYS12YWx1ZW1pbj17MH1cbiAgICAgIGFyaWEtdmFsdWVtYXg9e21heH1cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgZGF0YS10ZXN0aWQ9e2RhdGFUZXN0SWR9XG4gICAgICBhcmlhLWxhYmVsbGVkYnk9e2FyaWFMYWJlbGxlZEJ5fVxuICAgICAgYXJpYS1sYWJlbD17YXJpYUxhYmVsfVxuICAgID5cbiAgICAgIHtwcm9ncmVzcyA/IChcbiAgICAgICAgPFN0eWxlZFByb2dyZXNzIC8+XG4gICAgICApIDogKFxuICAgICAgICA8U3R5bGVkRmlsbGVkXG4gICAgICAgICAgc2VudGltZW50PXtzZW50aW1lbnR9XG4gICAgICAgICAgcGVyY2VudGFnZVZhbHVlPXsoMTAwICogTWF0aC5tYXgoMCwgTWF0aC5taW4obWF4LCB2YWx1ZSkpKSAvIG1heH1cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgPC9TdHlsZWRQcm9ncmVzc0NvbnRhaW5lcj5cbiAgICB7c2hvd1Byb2dyZXNzICYmIGRpcmVjdGlvbiA9PT0gJ3JvdycgPyAoXG4gICAgICA8U3R5bGVkU3RhY2sgZGlyZWN0aW9uPVwicm93XCIgZ2FwPXsxfT5cbiAgICAgICAgPFN0eWxlZFRleHQgYXM9XCJsYWJlbFwiIHZhcmlhbnQ9XCJib2R5U21hbGxcIiBzZW50aW1lbnQ9XCJuZXV0cmFsXCI+XG4gICAgICAgICAge3ByZWZpeH1cbiAgICAgICAgICB7c3VmZml4ID09PSAnJSdcbiAgICAgICAgICAgID8gKDEwMCAqIE1hdGgubWF4KDAsIE1hdGgubWluKG1heCwgdmFsdWUpKSkgLyBtYXhcbiAgICAgICAgICAgIDogTWF0aC5tYXgoMCwgTWF0aC5taW4obWF4LCB2YWx1ZSkpfVxuICAgICAgICAgIHtzdWZmaXh9XG4gICAgICAgIDwvU3R5bGVkVGV4dD5cbiAgICAgIDwvU3R5bGVkU3RhY2s+XG4gICAgKSA6IG51bGx9XG4gIDwvU3RhY2s+XG4pXG4iXX0= */",
46
46
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
47
47
  });
48
- const StyledText = /* @__PURE__ */ _styled__default.default(index$1.Text, process.env.NODE_ENV === "production" ? {
48
+ const StyledText = /* @__PURE__ */ _styled__default.default(index$2.Text, process.env.NODE_ENV === "production" ? {
49
49
  target: "e1b95x8r2"
50
50
  } : {
51
51
  target: "e1b95x8r2",
@@ -96,14 +96,14 @@ const ProgressBar = ({
96
96
  "aria-label": ariaLabel
97
97
  }) => /* @__PURE__ */ jsxRuntime.jsxs(index.Stack, { gap: direction === "column" ? 1 : 2, direction, alignItems: "center", children: [
98
98
  direction === "column" && (label || showProgress) ? /* @__PURE__ */ jsxRuntime.jsxs(index.Stack, { direction: "row", justifyContent: !label && showProgress ? "right" : "space-between", width: "100%", children: [
99
- /* @__PURE__ */ jsxRuntime.jsx(index$2.Label, { labelDescription, size: "medium", children: label }),
100
- showProgress ? /* @__PURE__ */ jsxRuntime.jsxs(index$1.Text, { as: "label", variant: "bodySmall", sentiment: "neutral", placement: "right", children: [
99
+ /* @__PURE__ */ jsxRuntime.jsx(index$1.Label, { labelDescription, size: "medium", children: label }),
100
+ showProgress ? /* @__PURE__ */ jsxRuntime.jsxs(index$2.Text, { as: "label", variant: "bodySmall", sentiment: "neutral", placement: "right", children: [
101
101
  prefix,
102
102
  suffix === "%" ? 100 * Math.max(0, Math.min(max, value)) / max : Math.max(0, Math.min(max, value)),
103
103
  suffix
104
104
  ] }) : null
105
105
  ] }) : null,
106
- direction === "row" && label ? /* @__PURE__ */ jsxRuntime.jsx(index$2.Label, { labelDescription, size: "medium", children: label }) : null,
106
+ direction === "row" && label ? /* @__PURE__ */ jsxRuntime.jsx(index$1.Label, { labelDescription, size: "medium", children: label }) : null,
107
107
  /* @__PURE__ */ jsxRuntime.jsx(StyledProgressContainer, { role: "progressbar", "aria-valuenow": value, "aria-valuemin": 0, "aria-valuemax": max, className, "data-testid": dataTestId, "aria-labelledby": ariaLabelledBy, "aria-label": ariaLabel, children: progress ? /* @__PURE__ */ jsxRuntime.jsx(StyledProgress, {}) : /* @__PURE__ */ jsxRuntime.jsx(StyledFilled, { sentiment, percentageValue: 100 * Math.max(0, Math.min(max, value)) / max }) }),
108
108
  showProgress && direction === "row" ? /* @__PURE__ */ jsxRuntime.jsx(StyledStack, { direction: "row", gap: 1, children: /* @__PURE__ */ jsxRuntime.jsxs(StyledText, { as: "label", variant: "bodySmall", sentiment: "neutral", children: [
109
109
  prefix,