@amboss/design-system 3.15.2 → 3.15.3

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.
@@ -1,11 +1,11 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var target=exports,all={get Modal(){return Modal},get StyledBackdrop(){return StyledBackdrop}};for(var name in all)Object.defineProperty(target,name,{enumerable:!0,get:Object.getOwnPropertyDescriptor(all,name).get});const _interop_require_default=require("@swc/helpers/_/_interop_require_default"),_react=/*#__PURE__*/require("@swc/helpers/_/_interop_require_wildcard")._(require("react")),_styled=/*#__PURE__*/_interop_require_default._(require("@emotion/styled")),_react1=require("@emotion/react"),_Portal=require("../../Portal/Portal"),_Header=require("../../Typography/Header/Header"),_Stack=require("../../Stack/Stack"),_Container=require("../../Container/Container"),_Box=require("../../Box/Box"),_Inline=require("../../Inline/Inline"),_ButtonGroup=require("../ButtonGroup/ButtonGroup"),_PictogramButton=require("../../PictogramButton/PictogramButton"),_Text=require("../../Typography/Text/Text"),_mediaQueries=require("../../../shared/mediaQueries"),_useScrollDetection=require("../../../shared/useScrollDetection"),_ModalContext=require("./ModalContext"),_FocusTrapWrapper=require("../../../shared/FocusTrapWrapper"),_appendId=require("../../../shared/appendId"),_useWindow=require("../../../shared/useWindow"),StyledBackdrop=(0,_styled.default)("div",{target:"elkk7m10",label:"StyledBackdrop"})(({theme})=>{let fadeInBackdrop=(0,_react.useMemo)(()=>(0,_react1.keyframes)`
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var target=exports,all={get Modal(){return Modal},get StyledBackdrop(){return StyledBackdrop}};for(var name in all)Object.defineProperty(target,name,{enumerable:!0,get:Object.getOwnPropertyDescriptor(all,name).get});const _interop_require_default=require("@swc/helpers/_/_interop_require_default"),_react=/*#__PURE__*/require("@swc/helpers/_/_interop_require_wildcard")._(require("react")),_styled=/*#__PURE__*/_interop_require_default._(require("@emotion/styled")),_react1=require("@emotion/react"),_Portal=require("../../Portal/Portal"),_Header=require("../../Typography/Header/Header"),_Stack=require("../../Stack/Stack"),_Container=require("../../Container/Container"),_Box=require("../../Box/Box"),_Inline=require("../../Inline/Inline"),_ButtonGroup=require("../ButtonGroup/ButtonGroup"),_PictogramButton=require("../../PictogramButton/PictogramButton"),_Text=require("../../Typography/Text/Text"),_mediaQueries=require("../../../shared/mediaQueries"),_useScrollDetection=require("../../../shared/useScrollDetection"),_ModalContext=require("./ModalContext"),_FocusTrapWrapper=require("../../../shared/FocusTrapWrapper"),_appendId=require("../../../shared/appendId"),_useWindow=require("../../../shared/useWindow"),StyledBackdrop=(0,_styled.default)("div",{target:"e1nbaxlv0",label:"StyledBackdrop"})(({theme})=>{let fadeInBackdrop=(0,_react.useMemo)(()=>(0,_react1.keyframes)`
2
2
  from {
3
3
  opacity: ${theme.variables.opacity.hidden};
4
4
  }
5
5
  to {
6
6
  opacity: ${theme.variables.opacity.visible};
7
7
  }
8
- `,[theme.variables.opacity.hidden,theme.variables.opacity.visible]);return{position:"fixed",top:0,left:0,zIndex:theme.variables.zIndex.modal,width:"100%",height:"100dvh",background:theme.values.color.background.backdrop.default,display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",flex:"1 0 auto",animation:`${fadeInBackdrop} ${theme.variables.animation.modalBackdrop.open.duration} ${theme.variables.animation.modalBackdrop.open.timingFunction} both`}},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUGF0dGVybnMvTW9kYWwvTW9kYWwudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9QYXR0ZXJucy9Nb2RhbC9Nb2RhbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgcmVhY3QvanN4LXByb3BzLW5vLXNwcmVhZGluZyAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVhY3QvanN4LW5vLXVzZWxlc3MtZnJhZ21lbnQgKi9cbmltcG9ydCB0eXBlIHsgUmVmT2JqZWN0LCBQcm9wc1dpdGhDaGlsZHJlbiB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFJlYWN0LCB7IHVzZU1lbW8sIHVzZVJlZiwgdXNlSWQsIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHR5cGUgeyBUaGVtZSB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHsga2V5ZnJhbWVzIH0gZnJvbSBcIkBlbW90aW9uL3JlYWN0XCI7XG5pbXBvcnQgdHlwZSB7IFBvcnRhbFByb3BzIH0gZnJvbSBcIi4uLy4uL1BvcnRhbC9Qb3J0YWxcIjtcbmltcG9ydCB7IFBvcnRhbCwgdXNlUG9ydGFsQ29udGFpbmVyRWxlbWVudCB9IGZyb20gXCIuLi8uLi9Qb3J0YWwvUG9ydGFsXCI7XG5pbXBvcnQgeyBIMiwgSDQsIEg2LCBIMyB9IGZyb20gXCIuLi8uLi9UeXBvZ3JhcGh5L0hlYWRlci9IZWFkZXJcIjtcbmltcG9ydCB0eXBlIHsgU3RhY2tQcm9wcyB9IGZyb20gXCIuLi8uLi9TdGFjay9TdGFja1wiO1xuaW1wb3J0IHsgU3RhY2sgfSBmcm9tIFwiLi4vLi4vU3RhY2svU3RhY2tcIjtcbmltcG9ydCB7IENvbnRhaW5lciB9IGZyb20gXCIuLi8uLi9Db250YWluZXIvQ29udGFpbmVyXCI7XG5pbXBvcnQgeyBCb3ggfSBmcm9tIFwiLi4vLi4vQm94L0JveFwiO1xuXG5pbXBvcnQgeyBJbmxpbmUgfSBmcm9tIFwiLi4vLi4vSW5saW5lL0lubGluZVwiO1xuaW1wb3J0IHR5cGUgeyBCdXR0b25Hcm91cEJ1dHRvblByb3BzIH0gZnJvbSBcIi4uL0J1dHRvbkdyb3VwL0J1dHRvbkdyb3VwXCI7XG5pbXBvcnQgeyBCdXR0b25Hcm91cCB9IGZyb20gXCIuLi9CdXR0b25Hcm91cC9CdXR0b25Hcm91cFwiO1xuaW1wb3J0IHsgUGljdG9ncmFtQnV0dG9uIH0gZnJvbSBcIi4uLy4uL1BpY3RvZ3JhbUJ1dHRvbi9QaWN0b2dyYW1CdXR0b25cIjtcbmltcG9ydCB0eXBlIHsgVGV4dFByb3BzIH0gZnJvbSBcIi4uLy4uL1R5cG9ncmFwaHkvVGV4dC9UZXh0XCI7XG5pbXBvcnQgeyBUZXh0IH0gZnJvbSBcIi4uLy4uL1R5cG9ncmFwaHkvVGV4dC9UZXh0XCI7XG5pbXBvcnQgeyB1c2VSZXNwb25zaXZlVmFsdWUgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL21lZGlhUXVlcmllc1wiO1xuaW1wb3J0IHsgdXNlU2Nyb2xsRGV0ZWN0aW9uIH0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZC91c2VTY3JvbGxEZXRlY3Rpb25cIjtcbmltcG9ydCB7IE1vZGFsQ29udGV4dCB9IGZyb20gXCIuL01vZGFsQ29udGV4dFwiO1xuaW1wb3J0IHsgRm9jdXNUcmFwV3JhcHBlciB9IGZyb20gXCIuLi8uLi8uLi9zaGFyZWQvRm9jdXNUcmFwV3JhcHBlclwiO1xuaW1wb3J0IHsgYXBwZW5kSWQgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL2FwcGVuZElkXCI7XG5pbXBvcnQgeyB1c2VXaW5kb3cgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL3VzZVdpbmRvd1wiO1xuXG50eXBlIEJhc2VQcm9wcyA9IHtcbiAgaGVhZGVyPzogc3RyaW5nO1xuICBvbkFjdGlvbj86IChhY3Rpb246IFwiY2FuY2VsXCIgfCBcImFjdGlvblwiKSA9PiB2b2lkO1xuICByb2xlPzogXCJkaWFsb2dcIiB8IFwiYWxlcnRkaWFsb2dcIjtcbiAgbGFiZWxIZWFkZXI/OiBzdHJpbmc7XG4gIC8qKiBUaGUgYmxhY2sgY29sb3IgaXMgZ29pbmcgdG8gYmUgcmVwbGFjZWQgd2l0aCBncmF5IG9uZSAqL1xuICBzdWJIZWFkZXI/OiBzdHJpbmc7XG4gIC8qKiBUZXh0IGFuZCBvdGhlciBwcm9wcyBmb3IgYWN0aW9uIEJ1dHRvbiAqL1xuICBhY3Rpb25CdXR0b24/OiBCdXR0b25Hcm91cEJ1dHRvblByb3BzO1xuICAvKiogVGV4dCBhbmQgb3RoZXIgcHJvcHMgZm9yIGFjdGlvbiBCdXR0b24gKi9cbiAgc2Vjb25kYXJ5QnV0dG9uPzogQnV0dG9uR3JvdXBCdXR0b25Qcm9wcztcbiAgLyoqIEBkZXByZWNhdGVkIFVzZSBzZWNvbmRhcnlCdXR0b24gdG8gcGFzcyBpbiB0ZXh0IGFuZCBvdGhlciBwcm9wcyBmb3Igc2Vjb25kYXJ5IGJ1dHRvbiAqL1xuICBjYW5jZWxCdXR0b25MYWJlbD86IHN0cmluZztcbiAgLyoqIEFpbSB0byB1c2UgPE1vZGFsLlRleHQ+IGFuZCA8TW9kYWwuU3RhY2s+ICovXG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuICBcImRhdGEtZTJlLXRlc3QtaWRcIj86IHN0cmluZztcbiAgcHJpdmF0ZVByb3BzPzogeyBza2lwUG9ydGFsPzogYm9vbGVhbiB9O1xuICAvKiogSXQncyBhIGJhZCBwYXR0ZXJuIHRvIHVzZSBub24tZGlzbWlzc2libGUgTW9kYWwgKi9cbiAgaXNEaXNtaXNzaWJsZT86IGJvb2xlYW47XG4gIGlzRnVsbFNjcmVlbj86IGJvb2xlYW47XG4gIGlzTWF4V2lkdGhMaW1pdD86IGJvb2xlYW47XG4gIHNpemU/OiBcIm1cIiB8IFwibFwiO1xuICBjbG9zZUJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgXCJhcmlhLWxhYmVsXCI/OiBzdHJpbmc7XG4gIFwiYXJpYS1kZXNjcmliZWRieVwiPzogc3RyaW5nO1xuICAvKiogQWx0IHRleHQgZm9yIHRoZSBtb2RhbCBpbWFnZSAqL1xufTtcblxudHlwZSBDb25kaXRpb25hbFByb3BzID1cbiAgfCB7XG4gICAgICAvKiogQXNwZWN0IHJhdGlvIDE2OjkgKi9cbiAgICAgIGltYWdlVXJsPzogc3RyaW5nO1xuICAgICAgaW1hZ2VBbHQ/OiBzdHJpbmc7XG4gICAgICBJbWFnZUNvbXBvbmVudD86IG5ldmVyO1xuICAgIH1cbiAgfCB7XG4gICAgICBpbWFnZVVybD86IG5ldmVyO1xuICAgICAgaW1hZ2VBbHQ/OiBuZXZlcjtcbiAgICAgIC8qKiBBY2NlcHQgcmF0aW8gMTY6OSAqL1xuICAgICAgSW1hZ2VDb21wb25lbnQ/OiBSZWFjdC5FbGVtZW50VHlwZTxhbnk+O1xuICAgIH07XG5cbmV4cG9ydCB0eXBlIE1vZGFsUHJvcHMgPSBCYXNlUHJvcHMgJlxuICBDb25kaXRpb25hbFByb3BzICZcbiAgUGljazxQb3J0YWxQcm9wcywgXCJwb3J0YWxDb250YWluZXJcIj47XG5cbmV4cG9ydCBjb25zdCBTdHlsZWRCYWNrZHJvcCA9IHN0eWxlZC5kaXY8UGFydGlhbDxCYXNlUHJvcHM+PigoeyB0aGVtZSB9KSA9PiB7XG4gIGNvbnN0IGZhZGVJbkJhY2tkcm9wID0gdXNlTWVtbyhcbiAgICAoKSA9PlxuICAgICAga2V5ZnJhbWVzYFxuICAgICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6ICR7dGhlbWUudmFyaWFibGVzLm9wYWNpdHkuaGlkZGVufTtcbiAgICAgIH1cbiAgICAgIHRvIHtcbiAgICAgICAgb3BhY2l0eTogJHt0aGVtZS52YXJpYWJsZXMub3BhY2l0eS52aXNpYmxlfTtcbiAgICAgIH1cbiAgICBgLFxuICAgIFt0aGVtZS52YXJpYWJsZXMub3BhY2l0eS5oaWRkZW4sIHRoZW1lLnZhcmlhYmxlcy5vcGFjaXR5LnZpc2libGVdXG4gICk7XG4gIHJldHVybiB7XG4gICAgcG9zaXRpb246IFwiZml4ZWRcIixcbiAgICB0b3A6IDAsXG4gICAgbGVmdDogMCxcbiAgICB6SW5kZXg6IHRoZW1lLnZhcmlhYmxlcy56SW5kZXgubW9kYWwsXG4gICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgIGhlaWdodDogXCIxMDBkdmhcIixcbiAgICBiYWNrZ3JvdW5kOiB0aGVtZS52YWx1ZXMuY29sb3IuYmFja2dyb3VuZC5iYWNrZHJvcC5kZWZhdWx0LFxuICAgIGRpc3BsYXk6IFwiZmxleFwiLFxuICAgIGZsZXhEaXJlY3Rpb246IFwiY29sdW1uXCIsXG4gICAganVzdGlmeUNvbnRlbnQ6IFwiY2VudGVyXCIsXG4gICAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbiAgICBmbGV4OiBcIjEgMCBhdXRvXCIsXG4gICAgYW5pbWF0aW9uOiBgJHtmYWRlSW5CYWNrZHJvcH0gJHt0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLm1vZGFsQmFja2Ryb3Aub3Blbi5kdXJhdGlvbn0gJHt0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLm1vZGFsQmFja2Ryb3Aub3Blbi50aW1pbmdGdW5jdGlvbn0gYm90aGAsXG4gIH07XG59KTtcblxuY29uc3QgbW9iaWxlU2l6ZSA9IFwibVwiO1xuY29uc3QgZGVza3RvcFNpemUgPSBcInhsXCI7XG5jb25zdCBnZXREZXNrdG9wU3BhY2UgPSAodGhlbWU6IFRoZW1lKSA9PiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLmw7XG5jb25zdCBnZXREZXNrdG9wSW5uZXJTcGFjZSA9ICh0aGVtZTogVGhlbWUpID0+XG4gIHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmdbZGVza3RvcFNpemVdO1xuY29uc3QgZ2V0TW9iaWxlU3BhY2UgPSAodGhlbWU6IFRoZW1lKSA9PiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLm07XG5jb25zdCBnZXRNb2JpbGVJbm5lclNwYWNlID0gKHRoZW1lOiBUaGVtZSkgPT5cbiAgdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZ1ttb2JpbGVTaXplXTtcbi8vIE1pbmltdW0gdmlld3BvcnQgaGVpZ2h0IG9uIHdoaWNoIGltYWdlIGlzIHNob3duLlxuY29uc3QgTUlOX1ZJRVdQT1JUX0hFSUdIVCA9IDQyMDtcblxuY29uc3QgU3R5bGVkTW9kYWxXcmFwcGVyID0gc3R5bGVkLmRpdjxQYXJ0aWFsPE1vZGFsUHJvcHM+PihcbiAgKHsgdGhlbWUsIGlzRnVsbFNjcmVlbiwgc2l6ZSB9KSA9PiB7XG4gICAgY29uc3QgZmFkZUluTW9kYWwgPSB1c2VNZW1vKFxuICAgICAgKCkgPT5cbiAgICAgICAga2V5ZnJhbWVzYFxuICAgICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6ICR7dGhlbWUudmFyaWFibGVzLm9wYWNpdHkuaGlkZGVufTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwcHgpO1xuICAgICAgfVxuICAgICAgdG8ge1xuICAgICAgICAgIG9wYWNpdHk6ICR7dGhlbWUudmFyaWFibGVzLm9wYWNpdHkudmlzaWJsZX07XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICAgIH1cbiAgICBgLFxuICAgICAgW3RoZW1lLnZhcmlhYmxlcy5vcGFjaXR5LmhpZGRlbiwgdGhlbWUudmFyaWFibGVzLm9wYWNpdHkudmlzaWJsZV1cbiAgICApO1xuICAgIHJldHVybiB7XG4gICAgICBhbmltYXRpb246IGAke2ZhZGVJbk1vZGFsfSAke3RoZW1lLnZhcmlhYmxlcy5hbmltYXRpb24ubW9kYWwub3Blbi5kdXJhdGlvbn0gJHt0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLm1vZGFsLm9wZW4uZGVsYXl9ICR7dGhlbWUudmFyaWFibGVzLmFuaW1hdGlvbi5tb2RhbC5vcGVuLnRpbWluZ0Z1bmN0aW9ufSBib3RoYCxcbiAgICAgIC4uLnVzZVJlc3BvbnNpdmVWYWx1ZSh7XG4gICAgICAgIHdpZHRoOiBbXG4gICAgICAgICAgYGNhbGMoMTAwJSAtICR7Z2V0TW9iaWxlU3BhY2UodGhlbWUpfSAqIDIpYCxcbiAgICAgICAgICBpc0Z1bGxTY3JlZW5cbiAgICAgICAgICAgID8gYGNhbGMoMTAwJSAtICR7Z2V0RGVza3RvcFNwYWNlKHRoZW1lKX0gKiAyKWBcbiAgICAgICAgICAgIDogdGhlbWUudmFyaWFibGVzLnNpemUuZGltZW5zaW9uLm1vZGFsLndpZHRoW3NpemVdLFxuICAgICAgICBdLFxuICAgICAgfSksXG4gICAgfTtcbiAgfVxuKTtcblxuY29uc3QgU3R5bGVkSW5uZXIgPSBzdHlsZWQuZGl2PFBhcnRpYWw8TW9kYWxQcm9wcz4+KFxuICAoeyB0aGVtZSwgaXNGdWxsU2NyZWVuLCBzaXplIH0pID0+IHtcbiAgICBjb25zdCBtb2JpbGVWZXJ0aWNhbFNwYWNlID0gZ2V0TW9iaWxlU3BhY2UodGhlbWUpO1xuICAgIGNvbnN0IG1vYmlsZUlubmVyVmVydGljYWxTcGFjZSA9IGdldE1vYmlsZUlubmVyU3BhY2UodGhlbWUpO1xuICAgIGNvbnN0IGRlc2t0b3BWZXJ0aWNhbFNwYWNlID0gZ2V0RGVza3RvcFNwYWNlKHRoZW1lKTtcbiAgICBjb25zdCBkZXNrdG9wSW5uZXJWZXJ0aWNhbFNwYWNlID0gZ2V0RGVza3RvcElubmVyU3BhY2UodGhlbWUpO1xuXG4gICAgLy8gZnVsbHNjcmVlbiBhbmQgTCBzaXplIGRvbid0IGRlcGVuZCBvbiBjb250ZW50IHNpemVcbiAgICAvLyBMIHNpemUgaGVpZ2h0IGhhcyBtYXhIaWVnaHQgcmVzaXplIHVudGlsIDgwMHB4XG4gICAgLy8gZnVsbHNjcmVlbiBtYXhIZWlnaHQgaXMgbm90IGxpbWl0ZWRcbiAgICAvLyBNIHNpemUgaGVpZ2h0IGhhcyBjb250ZW50IHNpemUgYW5kIGNlbnRlcmVkIGF0IHRvcCBhbmQgbWF4SGVpZ2h0IGlzIG5vdCBsaW1pdGVkXG5cbiAgICBjb25zdCBnZXREZXNrdG9wSGVpZ2h0ID0gKCkgPT4ge1xuICAgICAgaWYgKGlzRnVsbFNjcmVlbikge1xuICAgICAgICByZXR1cm4gYGNhbGMoMTAwZHZoIC0gJHtkZXNrdG9wVmVydGljYWxTcGFjZX0gKiAyIC0gJHtkZXNrdG9wSW5uZXJWZXJ0aWNhbFNwYWNlfSAqIDIpYDtcbiAgICAgIH1cbiAgICAgIGlmIChzaXplID09PSBcImxcIikge1xuICAgICAgICByZXR1cm4gYGNhbGMoMTAwZHZoIC0gJHtkZXNrdG9wVmVydGljYWxTcGFjZX0gKiAyIC0gJHtkZXNrdG9wSW5uZXJWZXJ0aWNhbFNwYWNlfSAqIDIgLSAke3RoZW1lLnZhcmlhYmxlcy5zaXplLmRpbWVuc2lvbi5tb2RhbC5tYXJnaW4ubH0gKiAyKWA7XG4gICAgICB9XG4gICAgICByZXR1cm4gXCJhdXRvXCI7XG4gICAgfTtcblxuICAgIGNvbnN0IGdldERlc2t0b3BNYXhIZWlnaHQgPSAoKSA9PiB7XG4gICAgICBpZiAoaXNGdWxsU2NyZWVuKSB7XG4gICAgICAgIHJldHVybiBgYXV0b2A7XG4gICAgICB9XG4gICAgICBpZiAoc2l6ZSA9PT0gXCJsXCIpIHtcbiAgICAgICAgcmV0dXJuIGBjYWxjKCR7dGhlbWUudmFyaWFibGVzLnNpemUuZGltZW5zaW9uLm1vZGFsLm1heEhlaWdodC5sfSAtICR7ZGVza3RvcElubmVyVmVydGljYWxTcGFjZX0gKiAyKWA7XG4gICAgICB9XG4gICAgICByZXR1cm4gYGNhbGMoMTAwZHZoIC0gJHtkZXNrdG9wVmVydGljYWxTcGFjZX0gKiAyIC0gJHtkZXNrdG9wSW5uZXJWZXJ0aWNhbFNwYWNlfSAqIDIpYDtcbiAgICB9O1xuXG4gICAgY29uc3QgZnVsbFNjcmVlbk1vYmlsZSA9IGBjYWxjKDEwMGR2aCAtICR7bW9iaWxlVmVydGljYWxTcGFjZX0gKiAyIC0gJHttb2JpbGVJbm5lclZlcnRpY2FsU3BhY2V9ICogMilgO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGRpc3BsYXk6IFwiZmxleFwiLFxuICAgICAgLi4udXNlUmVzcG9uc2l2ZVZhbHVlKHtcbiAgICAgICAgaGVpZ2h0OiBbXG4gICAgICAgICAgc2l6ZSA9PT0gXCJsXCIgfHwgaXNGdWxsU2NyZWVuID8gZnVsbFNjcmVlbk1vYmlsZSA6IFwiYXV0b1wiLFxuICAgICAgICAgIGdldERlc2t0b3BIZWlnaHQoKSxcbiAgICAgICAgXSxcbiAgICAgICAgbWF4SGVpZ2h0OiBbZnVsbFNjcmVlbk1vYmlsZSwgZ2V0RGVza3RvcE1heEhlaWdodCgpXSxcbiAgICAgIH0pLFxuXG4gICAgICBmbGV4RGlyZWN0aW9uOiBcImNvbHVtblwiLFxuICAgICAgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsXG4gICAgfTtcbiAgfVxuKTtcblxudHlwZSBTdHlsZWRCb2R5UHJvcHMgPSB7XG4gIGJvcmRlckJvdHRvbTogYm9vbGVhbjtcbiAgYm9yZGVyVG9wOiBib29sZWFuO1xufTtcblxuY29uc3QgU3R5bGVkQm9keSA9IHN0eWxlZC5kaXY8U3R5bGVkQm9keVByb3BzICYgUGFydGlhbDxNb2RhbFByb3BzPj4oXG4gICh7IHRoZW1lLCBib3JkZXJCb3R0b20sIGJvcmRlclRvcCwgc2l6ZSwgaXNGdWxsU2NyZWVuIH0pID0+ICh7XG4gICAgb3ZlcmZsb3dZOiBcImF1dG9cIixcbiAgICBtYXhIZWlnaHQ6IFwiMTAwJVwiLFxuXG4gICAgLi4uKChpc0Z1bGxTY3JlZW4gfHwgc2l6ZSA9PT0gXCJsXCIpICYmIHtcbiAgICAgIGZsZXg6IDEsXG4gICAgfSksXG5cbiAgICAuLi4oYm9yZGVyQm90dG9tICYmIHtcbiAgICAgIGJvcmRlckJvdHRvbTogYDFweCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5kaXZpZGVyLnByaW1hcnl9YCxcbiAgICB9KSxcbiAgICAuLi4oYm9yZGVyVG9wICYmIHtcbiAgICAgIGJvcmRlclRvcDogYDFweCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5kaXZpZGVyLnByaW1hcnl9YCxcbiAgICB9KSxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZEltZyA9IHN0eWxlZC5pbWcoKCkgPT4gKHtcbiAgd2lkdGg6IFwiMTAwJVwiLFxuICBhc3BlY3RSYXRpbzogXCIxNi85XCIsXG59KSk7XG5cbmNvbnN0IFN0eWxlZE1heFdpZHRoID0gc3R5bGVkLmRpdjxQYXJ0aWFsPE1vZGFsUHJvcHM+PigoeyB0aGVtZSB9KSA9PiAoe1xuICBtYXhXaWR0aDogdGhlbWUudmFyaWFibGVzLnNpemUuZGltZW5zaW9uLm1vZGFsLmZ1bGxTY3JlZW5Db250ZW50V2lkdGgsXG4gIG1hcmdpbjogXCIwIGF1dG9cIixcbiAgaGVpZ2h0OiBcIjEwMCVcIixcbn0pKTtcblxuY29uc3QgU3R5bGVkWENvbnRhaW5lciA9IHN0eWxlZC5kaXYoKHsgdGhlbWUgfSkgPT4gKHtcbiAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgLi4udXNlUmVzcG9uc2l2ZVZhbHVlKHtcbiAgICB0b3A6IFt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnMsIHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubF0sXG4gICAgcmlnaHQ6IFt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnMsIHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubF0sXG4gIH0pLFxufSkpO1xuXG5jb25zdCBNb2RhbFN0YWNrID0gKHsgY2hpbGRyZW4sIC4uLnJlc3QgfTogT21pdDxTdGFja1Byb3BzLCBcInNwYWNlXCI+KSA9PiAoXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC9qc3gtcHJvcHMtbm8tc3ByZWFkaW5nXG4gIDxTdGFjayB7Li4ucmVzdH0gc3BhY2U9XCJtXCI+XG4gICAge2NoaWxkcmVufVxuICA8L1N0YWNrPlxuKTtcblxuY29uc3QgTW9kYWxUZXh0ID0gKHtcbiAgY2hpbGRyZW4sXG4gIC4uLnJlc3Rcbn06IE9taXQ8VGV4dFByb3BzLCBcInNpemVcIiB8IFwidmFyaWFudFwiPikgPT4gKFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QvanN4LXByb3BzLW5vLXNwcmVhZGluZ1xuICA8VGV4dCB7Li4ucmVzdH0gc2l6ZT1cIm1cIiBjb2xvcj1cInRlcnRpYXJ5XCI+XG4gICAge2NoaWxkcmVufVxuICA8L1RleHQ+XG4pO1xuXG5jb25zdCBGb290ZXIgPSAoe1xuICBjaGlsZHJlbixcbiAgYWxpZ25JdGVtcyA9IFtcInN0cmV0Y2hcIiwgXCJyaWdodFwiXSxcbiAgaXNTaG9ydFZpZXdwb3J0LFxufToge1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlW10gfCBSZWFjdC5SZWFjdEVsZW1lbnQ7XG4gIGFsaWduSXRlbXM/OiBTdGFja1Byb3BzW1wiYWxpZ25JdGVtc1wiXTtcbiAgaXNTaG9ydFZpZXdwb3J0PzogYm9vbGVhbjtcbn0pID0+IChcbiAgPEJveCBzcGFjZT1cInplcm9cIiB0U3BhY2U9e2lzU2hvcnRWaWV3cG9ydCA/IFwibVwiIDogXCJsXCJ9PlxuICAgIDxTdGFjayBhbGlnbkl0ZW1zPXthbGlnbkl0ZW1zfT57Y2hpbGRyZW59PC9TdGFjaz5cbiAgPC9Cb3g+XG4pO1xuXG5jb25zdCBXcmFwcGVyID0gKHtcbiAgc2tpcFBvcnRhbCxcbiAgY2hpbGRyZW4sXG4gIHBvcnRhbENvbnRhaW5lcixcbiAgYmFja2Ryb3BSZWYsXG59OiB7XG4gIHNraXBQb3J0YWw6IGJvb2xlYW47XG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdEVsZW1lbnQ7XG4gIGJhY2tkcm9wUmVmOiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xufSAmIFBhcnRpYWw8TW9kYWxQcm9wcz4pOiBSZWFjdC5SZWFjdEVsZW1lbnQgPT5cbiAgc2tpcFBvcnRhbCA/IChcbiAgICA8PntjaGlsZHJlbn08Lz5cbiAgKSA6IChcbiAgICA8TW9kYWxDb250ZXh0LlByb3ZpZGVyIHZhbHVlPlxuICAgICAgPFBvcnRhbCBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn0+XG4gICAgICAgIDxTdHlsZWRCYWNrZHJvcCByZWY9e2JhY2tkcm9wUmVmfT57Y2hpbGRyZW59PC9TdHlsZWRCYWNrZHJvcD5cbiAgICAgIDwvUG9ydGFsPlxuICAgIDwvTW9kYWxDb250ZXh0LlByb3ZpZGVyPlxuICApO1xuXG50eXBlIEZvY3VzVHJhcFByb3BzID0ge1xuICBvblBvc3REZWFjdGl2YXRlOiAoKSA9PiB2b2lkO1xuICBiYWNrZHJvcFJlZjogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcbiAgbW9kYWxSZWY6IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XG59ICYgUGljazxNb2RhbFByb3BzLCBcImlzRGlzbWlzc2libGVcIiB8IFwicG9ydGFsQ29udGFpbmVyXCI+O1xuXG5mdW5jdGlvbiBGb2N1c1RyYXAoe1xuICBvblBvc3REZWFjdGl2YXRlLFxuICBpc0Rpc21pc3NpYmxlLFxuICBwb3J0YWxDb250YWluZXIsXG4gIGNoaWxkcmVuLFxuICBiYWNrZHJvcFJlZixcbiAgbW9kYWxSZWYsXG59OiBQcm9wc1dpdGhDaGlsZHJlbjxGb2N1c1RyYXBQcm9wcz4pIHtcbiAgY29uc3QgcG9ydGFsQ29udGFpbmVyRWxlbWVudCA9IHVzZVBvcnRhbENvbnRhaW5lckVsZW1lbnQocG9ydGFsQ29udGFpbmVyKTtcblxuICBjb25zdCBoYW5kbGVDbGlja091dHNpZGVEZWFjdGl2YXRlcyA9IChldnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KSA9PiB7XG4gICAgLy8gRG8gbm90IGNsb3NlIG9uIGNsaWNrIHRoYXQgb2NjdXJzIG9uIGVsZW1lbnRzIHdpdGhpbiB0aGUgc2FtZSBwb3J0YWwsIGZvciBlZywgZHJvcGRvd24gYW5kIHNlbGVjdCBtZW51c1xuICAgIGlmIChcbiAgICAgIHBvcnRhbENvbnRhaW5lckVsZW1lbnQuY29udGFpbnMoZXZ0LnRhcmdldCBhcyBIVE1MRWxlbWVudCkgJiZcbiAgICAgIGV2dC50YXJnZXQgIT09IGJhY2tkcm9wUmVmLmN1cnJlbnRcbiAgICApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIGlzRGlzbWlzc2libGU7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8Rm9jdXNUcmFwV3JhcHBlclxuICAgICAgYWN0aXZlXG4gICAgICBmb2N1c1RyYXBPcHRpb25zPXt7XG4gICAgICAgIGNsaWNrT3V0c2lkZURlYWN0aXZhdGVzOiBoYW5kbGVDbGlja091dHNpZGVEZWFjdGl2YXRlcyxcbiAgICAgICAgZXNjYXBlRGVhY3RpdmF0ZXM6IGlzRGlzbWlzc2libGUsIC8vIGRlLWFjdGl2YXRlIGZvY3VzIHRyYXAgb24gZXNjYXBlIGtleVxuICAgICAgICBwcmV2ZW50U2Nyb2xsOiB0cnVlLFxuICAgICAgICBmYWxsYmFja0ZvY3VzOiBtb2RhbFJlZi5jdXJyZW50LFxuICAgICAgICBvblBvc3REZWFjdGl2YXRlLFxuICAgICAgfX1cbiAgICA+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9Gb2N1c1RyYXBXcmFwcGVyPlxuICApO1xufVxuXG5jb25zdCBIb3Jpem9udGFsT2Zmc2V0ID0gKHtcbiAgY2hpbGRyZW4sXG4gIGlzRnVsbFNjcmVlbixcbiAgaXNNYXhXaWR0aExpbWl0LFxuICBoZWlnaHQsXG59OiBQYXJ0aWFsPE1vZGFsUHJvcHM+ICYgeyBoZWlnaHQ/OiBzdHJpbmcgfSkgPT4gKFxuICA8Qm94IHNwYWNlPXtbbW9iaWxlU2l6ZSwgZGVza3RvcFNpemVdfSB2U3BhY2U9XCJ6ZXJvXCIgaGVpZ2h0PXtoZWlnaHR9PlxuICAgIHtpc0Z1bGxTY3JlZW4gJiYgaXNNYXhXaWR0aExpbWl0ID8gKFxuICAgICAgPFN0eWxlZE1heFdpZHRoPntjaGlsZHJlbn08L1N0eWxlZE1heFdpZHRoPlxuICAgICkgOiAoXG4gICAgICBjaGlsZHJlblxuICAgICl9XG4gIDwvQm94PlxuKTtcblxuZnVuY3Rpb24gZ2V0SXNTaG9ydFZpZXdwb3J0KHdpbmRvdzogV2luZG93KTogYm9vbGVhbiB7XG4gIHJldHVybiAoXG4gICAgdHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIiAmJiB3aW5kb3cuaW5uZXJIZWlnaHQgPCBNSU5fVklFV1BPUlRfSEVJR0hUXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBNb2RhbCh7XG4gIGhlYWRlcixcbiAgc3ViSGVhZGVyLFxuICBsYWJlbEhlYWRlcixcbiAgY2hpbGRyZW4sXG4gIGltYWdlVXJsLFxuICBJbWFnZUNvbXBvbmVudCxcbiAgc2Vjb25kYXJ5QnV0dG9uLFxuICBjYW5jZWxCdXR0b25MYWJlbCxcbiAgaXNEaXNtaXNzaWJsZSA9IHRydWUsXG4gIGlzRnVsbFNjcmVlbixcbiAgaXNNYXhXaWR0aExpbWl0ID0gdHJ1ZSxcbiAgYWN0aW9uQnV0dG9uLFxuICByb2xlID0gXCJkaWFsb2dcIixcbiAgb25BY3Rpb24sXG4gIHNpemUgPSBcIm1cIixcbiAgcHJpdmF0ZVByb3BzOiB7IHNraXBQb3J0YWwgfSA9IHsgc2tpcFBvcnRhbDogZmFsc2UgfSxcbiAgcG9ydGFsQ29udGFpbmVyLFxuICBjbG9zZUJ1dHRvbkFyaWFMYWJlbCA9IFwiRGlzbWlzcyBEaWFsb2dcIixcbiAgXCJhcmlhLWxhYmVsXCI6IGFyaWFMYWJlbCxcbiAgXCJhcmlhLWRlc2NyaWJlZGJ5XCI6IGFyaWFEZXNjcmliZWRCeSxcbiAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG4gIGltYWdlQWx0LFxufTogTW9kYWxQcm9wcyk6IFJlYWN0LlJlYWN0RWxlbWVudCB7XG4gIGNvbnN0IG1vZGFsUmVmID0gdXNlUmVmKG51bGwpO1xuICBjb25zdCBiYWNrZHJvcFJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3Qgc3ViSGVhZGVySWQgPSB1c2VJZCgpO1xuICBjb25zdCB3aW5kb3cgPSB1c2VXaW5kb3coKTtcbiAgY29uc3QgeyBzY3JvbGxhYmxlUmVmLCBpc1Njcm9sbEJvdHRvbSwgaXNTY3JvbGxUb3AsIGhhc1Njcm9sbCB9ID1cbiAgICB1c2VTY3JvbGxEZXRlY3Rpb24oKTtcbiAgY29uc3QgW2lzU2hvcnRWaWV3cG9ydCwgc2V0SXNTaG9ydFZpZXdwb3J0XSA9IHVzZVN0YXRlKFxuICAgIGdldElzU2hvcnRWaWV3cG9ydCh3aW5kb3cpXG4gICk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBsZXQgcmVzaXplT2JzZXJ2ZXI6IFJlc2l6ZU9ic2VydmVyO1xuXG4gICAgaWYgKHR5cGVvZiBSZXNpemVPYnNlcnZlciAhPT0gXCJ1bmRlZmluZWRcIiAmJiBiYWNrZHJvcFJlZi5jdXJyZW50KSB7XG4gICAgICByZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB7XG4gICAgICAgIHNldElzU2hvcnRWaWV3cG9ydChnZXRJc1Nob3J0Vmlld3BvcnQod2luZG93KSk7XG4gICAgICB9KTtcblxuICAgICAgcmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShiYWNrZHJvcFJlZi5jdXJyZW50KTtcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKHJlc2l6ZU9ic2VydmVyKSB7XG4gICAgICAgIHJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgIH1cbiAgICB9O1xuICB9LCBbYmFja2Ryb3BSZWYsIHdpbmRvd10pO1xuXG4gIGNvbnN0IGhhbmRsZUNsb3NlID0gKCkgPT4ge1xuICAgIG9uQWN0aW9uKFwiY2FuY2VsXCIpO1xuICB9O1xuXG4gIGNvbnN0IGhhc0ltYWdlID0gaW1hZ2VVcmwgfHwgSW1hZ2VDb21wb25lbnQ7XG4gIGNvbnN0IEhlYWRpbmdDb21wb25lbnQgPSBpc1Nob3J0Vmlld3BvcnQgPyBIMyA6IEgyO1xuICBjb25zdCBpc0ltYWdlVmlzaWJsZSA9ICFpc1Nob3J0Vmlld3BvcnQgJiYgISFoYXNJbWFnZTtcbiAgY29uc3QgaG9yaXpvbnRhbE9mZnNldFByb3BzID0geyBpc0Z1bGxTY3JlZW4sIGlzTWF4V2lkdGhMaW1pdCB9O1xuXG4gIGNvbnN0IGNsb3NlQnV0dG9uID0gaXNEaXNtaXNzaWJsZSAmJiAoXG4gICAgPFN0eWxlZFhDb250YWluZXI+XG4gICAgICA8UGljdG9ncmFtQnV0dG9uXG4gICAgICAgIHZhcmlhbnQ9XCJ0ZXJ0aWFyeVwiXG4gICAgICAgIGljb249XCJ4XCJcbiAgICAgICAgc2l6ZT1cInNcIlxuICAgICAgICBvbkNsaWNrPXtoYW5kbGVDbG9zZX1cbiAgICAgICAgYXJpYS1sYWJlbD17Y2xvc2VCdXR0b25BcmlhTGFiZWx9XG4gICAgICAvPlxuICAgIDwvU3R5bGVkWENvbnRhaW5lcj5cbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxXcmFwcGVyXG4gICAgICBza2lwUG9ydGFsPXtza2lwUG9ydGFsfVxuICAgICAgcG9ydGFsQ29udGFpbmVyPXtwb3J0YWxDb250YWluZXJ9XG4gICAgICBiYWNrZHJvcFJlZj17YmFja2Ryb3BSZWZ9XG4gICAgPlxuICAgICAgPEZvY3VzVHJhcFxuICAgICAgICBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn1cbiAgICAgICAgaXNEaXNtaXNzaWJsZT17aXNEaXNtaXNzaWJsZX1cbiAgICAgICAgb25Qb3N0RGVhY3RpdmF0ZT17aGFuZGxlQ2xvc2V9XG4gICAgICAgIGJhY2tkcm9wUmVmPXtiYWNrZHJvcFJlZn1cbiAgICAgICAgbW9kYWxSZWY9e21vZGFsUmVmfVxuICAgICAgPlxuICAgICAgICA8U3R5bGVkTW9kYWxXcmFwcGVyXG4gICAgICAgICAgcmVmPXttb2RhbFJlZn1cbiAgICAgICAgICByb2xlPXtyb2xlfVxuICAgICAgICAgIGRhdGEtZTJlLXRlc3QtaWQ9e2RhdGFFMmVUZXN0SWR9XG4gICAgICAgICAgZGF0YS1kcy1pZD1cIk1vZGFsXCJcbiAgICAgICAgICBpc0Z1bGxTY3JlZW49e2lzRnVsbFNjcmVlbn1cbiAgICAgICAgICBzaXplPXtzaXplfVxuICAgICAgICAgIGFyaWEtbGFiZWw9e2FyaWFMYWJlbCB8fCBoZWFkZXJ9XG4gICAgICAgICAgYXJpYS1kZXNjcmliZWRieT17XG4gICAgICAgICAgICBzdWJIZWFkZXIgPyBhcHBlbmRJZChhcmlhRGVzY3JpYmVkQnksIHN1YkhlYWRlcklkKSA6IGFyaWFEZXNjcmliZWRCeVxuICAgICAgICAgIH1cbiAgICAgICAgPlxuICAgICAgICAgIDxDb250YWluZXIgZWxldmF0aW9uPXs0fT5cbiAgICAgICAgICAgIDxCb3ggc3BhY2U9XCJ6ZXJvXCIgdlNwYWNlPXtbbW9iaWxlU2l6ZSwgZGVza3RvcFNpemVdfT5cbiAgICAgICAgICAgICAgPFN0eWxlZElubmVyIGlzRnVsbFNjcmVlbj17aXNGdWxsU2NyZWVufSBzaXplPXtzaXplfT5cbiAgICAgICAgICAgICAgICA8SG9yaXpvbnRhbE9mZnNldCB7Li4uaG9yaXpvbnRhbE9mZnNldFByb3BzfT5cbiAgICAgICAgICAgICAgICAgIDxCb3ggc3BhY2U9XCJ6ZXJvXCIgYlNwYWNlPVwic1wiPlxuICAgICAgICAgICAgICAgICAgICA8U3RhY2sgc3BhY2U9e2lzSW1hZ2VWaXNpYmxlID8gW1wic1wiLCBcImxcIl0gOiBcInplcm9cIn0+XG4gICAgICAgICAgICAgICAgICAgICAge2lzSW1hZ2VWaXNpYmxlICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAoaW1hZ2VVcmwgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxCb3ggc3BhY2U9XCJ6ZXJvXCIgdFNwYWNlPXtbXCJ4bFwiLCBcImxcIl19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRJbWcgc3JjPXtpbWFnZVVybH0gYWx0PXtpbWFnZUFsdH0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8SW1hZ2VDb21wb25lbnQgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICAgIDxJbmxpbmUgYWxpZ25JdGVtcz1cInNwYWNlQmV0d2VlblwiIG5vV3JhcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxTdGFjayBzcGFjZT1cInh4c1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7bGFiZWxIZWFkZXIgJiYgPEg2IGFzPVwiZGl2XCI+e2xhYmVsSGVhZGVyfTwvSDY+fVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8U3RhY2sgc3BhY2U9XCJ6ZXJvXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhlYWRpbmdDb21wb25lbnQgYXM9XCJoMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2hlYWRlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0hlYWRpbmdDb21wb25lbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3N1YkhlYWRlciAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SDQgYXM9XCJoMlwiIGNvbG9yPVwidGVydGlhcnlcIiBpZD17c3ViSGVhZGVySWR9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7c3ViSGVhZGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9IND5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtjbG9zZUJ1dHRvbn1cbiAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZT5cbiAgICAgICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgIDwvSG9yaXpvbnRhbE9mZnNldD5cblxuICAgICAgICAgICAgICAgIDxTdHlsZWRCb2R5XG4gICAgICAgICAgICAgICAgICByZWY9e3Njcm9sbGFibGVSZWZ9XG4gICAgICAgICAgICAgICAgICBzaXplPXtzaXplfVxuICAgICAgICAgICAgICAgICAgaXNGdWxsU2NyZWVuPXtpc0Z1bGxTY3JlZW59XG4gICAgICAgICAgICAgICAgICBib3JkZXJCb3R0b209e2hhc1Njcm9sbCAmJiAhaXNTY3JvbGxCb3R0b219XG4gICAgICAgICAgICAgICAgICBib3JkZXJUb3A9e2hhc1Njcm9sbCAmJiAhaXNTY3JvbGxUb3B9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPEJveCBzcGFjZT1cInplcm9cIiB2U3BhY2U9XCJ4eHhzXCIgaGVpZ2h0PVwiMTAwJVwiPlxuICAgICAgICAgICAgICAgICAgICA8SG9yaXpvbnRhbE9mZnNldCB7Li4uaG9yaXpvbnRhbE9mZnNldFByb3BzfSBoZWlnaHQ9XCIxMDAlXCI+XG4gICAgICAgICAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgICAgICAgICA8L0hvcml6b250YWxPZmZzZXQ+XG4gICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICA8L1N0eWxlZEJvZHk+XG5cbiAgICAgICAgICAgICAgICB7KGFjdGlvbkJ1dHRvbiB8fCBjYW5jZWxCdXR0b25MYWJlbCB8fCBzZWNvbmRhcnlCdXR0b24pICYmIChcbiAgICAgICAgICAgICAgICAgIDxIb3Jpem9udGFsT2Zmc2V0IHsuLi5ob3Jpem9udGFsT2Zmc2V0UHJvcHN9PlxuICAgICAgICAgICAgICAgICAgICA8Rm9vdGVyIGlzU2hvcnRWaWV3cG9ydD17aXNTaG9ydFZpZXdwb3J0fT5cbiAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uR3JvdXBcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbkJ1dHRvbj17YWN0aW9uQnV0dG9ufVxuICAgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kYXJ5QnV0dG9uPXtzZWNvbmRhcnlCdXR0b259XG4gICAgICAgICAgICAgICAgICAgICAgICBjYW5jZWxCdXR0b25UZXh0PXtjYW5jZWxCdXR0b25MYWJlbH1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQnV0dG9uQ2xpY2s9e29uQWN0aW9ufVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvRm9vdGVyPlxuICAgICAgICAgICAgICAgICAgPC9Ib3Jpem9udGFsT2Zmc2V0PlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvU3R5bGVkSW5uZXI+XG4gICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgPC9TdHlsZWRNb2RhbFdyYXBwZXI+XG4gICAgICA8L0ZvY3VzVHJhcD5cbiAgICA8L1dyYXBwZXI+XG4gICk7XG59XG5cbk1vZGFsLlN0YWNrID0gTW9kYWxTdGFjaztcbk1vZGFsLlRleHQgPSBNb2RhbFRleHQ7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBMEU4QiJ9 */"),getDesktopSpace=theme=>theme.variables.size.spacing.l,getDesktopInnerSpace=theme=>theme.variables.size.spacing.xl,getMobileSpace=theme=>theme.variables.size.spacing.m,getMobileInnerSpace=theme=>theme.variables.size.spacing.m,StyledModalWrapper=(0,_styled.default)("div",{target:"elkk7m11",label:"StyledModalWrapper"})(({theme,isFullScreen,size})=>{let fadeInModal=(0,_react.useMemo)(()=>(0,_react1.keyframes)`
8
+ `,[theme.variables.opacity.hidden,theme.variables.opacity.visible]);return{position:"fixed",top:0,left:0,zIndex:theme.variables.zIndex.modal,width:"100%",height:"100dvh",background:theme.values.color.background.backdrop.default,display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",flex:"1 0 auto",animation:`${fadeInBackdrop} ${theme.variables.animation.modalBackdrop.open.duration} ${theme.variables.animation.modalBackdrop.open.timingFunction} both`}},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUGF0dGVybnMvTW9kYWwvTW9kYWwudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9QYXR0ZXJucy9Nb2RhbC9Nb2RhbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgcmVhY3QvanN4LXByb3BzLW5vLXNwcmVhZGluZyAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVhY3QvanN4LW5vLXVzZWxlc3MtZnJhZ21lbnQgKi9cbmltcG9ydCB0eXBlIHsgUmVmT2JqZWN0LCBQcm9wc1dpdGhDaGlsZHJlbiB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFJlYWN0LCB7IHVzZU1lbW8sIHVzZVJlZiwgdXNlSWQsIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHR5cGUgeyBUaGVtZSB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHsga2V5ZnJhbWVzIH0gZnJvbSBcIkBlbW90aW9uL3JlYWN0XCI7XG5pbXBvcnQgdHlwZSB7IFBvcnRhbFByb3BzIH0gZnJvbSBcIi4uLy4uL1BvcnRhbC9Qb3J0YWxcIjtcbmltcG9ydCB7IFBvcnRhbCwgdXNlUG9ydGFsQ29udGFpbmVyRWxlbWVudCB9IGZyb20gXCIuLi8uLi9Qb3J0YWwvUG9ydGFsXCI7XG5pbXBvcnQgeyBIMiwgSDQsIEg2LCBIMyB9IGZyb20gXCIuLi8uLi9UeXBvZ3JhcGh5L0hlYWRlci9IZWFkZXJcIjtcbmltcG9ydCB0eXBlIHsgU3RhY2tQcm9wcyB9IGZyb20gXCIuLi8uLi9TdGFjay9TdGFja1wiO1xuaW1wb3J0IHsgU3RhY2sgfSBmcm9tIFwiLi4vLi4vU3RhY2svU3RhY2tcIjtcbmltcG9ydCB7IENvbnRhaW5lciB9IGZyb20gXCIuLi8uLi9Db250YWluZXIvQ29udGFpbmVyXCI7XG5pbXBvcnQgeyBCb3ggfSBmcm9tIFwiLi4vLi4vQm94L0JveFwiO1xuXG5pbXBvcnQgeyBJbmxpbmUgfSBmcm9tIFwiLi4vLi4vSW5saW5lL0lubGluZVwiO1xuaW1wb3J0IHR5cGUgeyBCdXR0b25Hcm91cEJ1dHRvblByb3BzIH0gZnJvbSBcIi4uL0J1dHRvbkdyb3VwL0J1dHRvbkdyb3VwXCI7XG5pbXBvcnQgeyBCdXR0b25Hcm91cCB9IGZyb20gXCIuLi9CdXR0b25Hcm91cC9CdXR0b25Hcm91cFwiO1xuaW1wb3J0IHsgUGljdG9ncmFtQnV0dG9uIH0gZnJvbSBcIi4uLy4uL1BpY3RvZ3JhbUJ1dHRvbi9QaWN0b2dyYW1CdXR0b25cIjtcbmltcG9ydCB0eXBlIHsgVGV4dFByb3BzIH0gZnJvbSBcIi4uLy4uL1R5cG9ncmFwaHkvVGV4dC9UZXh0XCI7XG5pbXBvcnQgeyBUZXh0IH0gZnJvbSBcIi4uLy4uL1R5cG9ncmFwaHkvVGV4dC9UZXh0XCI7XG5pbXBvcnQgeyB1c2VSZXNwb25zaXZlVmFsdWUgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL21lZGlhUXVlcmllc1wiO1xuaW1wb3J0IHsgdXNlU2Nyb2xsRGV0ZWN0aW9uIH0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZC91c2VTY3JvbGxEZXRlY3Rpb25cIjtcbmltcG9ydCB7IE1vZGFsQ29udGV4dCB9IGZyb20gXCIuL01vZGFsQ29udGV4dFwiO1xuaW1wb3J0IHsgRm9jdXNUcmFwV3JhcHBlciB9IGZyb20gXCIuLi8uLi8uLi9zaGFyZWQvRm9jdXNUcmFwV3JhcHBlclwiO1xuaW1wb3J0IHsgYXBwZW5kSWQgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL2FwcGVuZElkXCI7XG5pbXBvcnQgeyB1c2VXaW5kb3cgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL3VzZVdpbmRvd1wiO1xuXG50eXBlIEJhc2VQcm9wcyA9IHtcbiAgaGVhZGVyPzogc3RyaW5nO1xuICBvbkFjdGlvbj86IChhY3Rpb246IFwiY2FuY2VsXCIgfCBcImFjdGlvblwiKSA9PiB2b2lkO1xuICByb2xlPzogXCJkaWFsb2dcIiB8IFwiYWxlcnRkaWFsb2dcIjtcbiAgbGFiZWxIZWFkZXI/OiBzdHJpbmc7XG4gIC8qKiBUaGUgYmxhY2sgY29sb3IgaXMgZ29pbmcgdG8gYmUgcmVwbGFjZWQgd2l0aCBncmF5IG9uZSAqL1xuICBzdWJIZWFkZXI/OiBzdHJpbmc7XG4gIC8qKiBUZXh0IGFuZCBvdGhlciBwcm9wcyBmb3IgYWN0aW9uIEJ1dHRvbiAqL1xuICBhY3Rpb25CdXR0b24/OiBCdXR0b25Hcm91cEJ1dHRvblByb3BzO1xuICAvKiogVGV4dCBhbmQgb3RoZXIgcHJvcHMgZm9yIGFjdGlvbiBCdXR0b24gKi9cbiAgc2Vjb25kYXJ5QnV0dG9uPzogQnV0dG9uR3JvdXBCdXR0b25Qcm9wcztcbiAgLyoqIEBkZXByZWNhdGVkIFVzZSBzZWNvbmRhcnlCdXR0b24gdG8gcGFzcyBpbiB0ZXh0IGFuZCBvdGhlciBwcm9wcyBmb3Igc2Vjb25kYXJ5IGJ1dHRvbiAqL1xuICBjYW5jZWxCdXR0b25MYWJlbD86IHN0cmluZztcbiAgLyoqIEFpbSB0byB1c2UgPE1vZGFsLlRleHQ+IGFuZCA8TW9kYWwuU3RhY2s+ICovXG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuICBcImRhdGEtZTJlLXRlc3QtaWRcIj86IHN0cmluZztcbiAgcHJpdmF0ZVByb3BzPzogeyBza2lwUG9ydGFsPzogYm9vbGVhbiB9O1xuICAvKiogSXQncyBhIGJhZCBwYXR0ZXJuIHRvIHVzZSBub24tZGlzbWlzc2libGUgTW9kYWwgKi9cbiAgaXNEaXNtaXNzaWJsZT86IGJvb2xlYW47XG4gIGlzRnVsbFNjcmVlbj86IGJvb2xlYW47XG4gIGlzTWF4V2lkdGhMaW1pdD86IGJvb2xlYW47XG4gIHNpemU/OiBcIm1cIiB8IFwibFwiO1xuICBjbG9zZUJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgXCJhcmlhLWxhYmVsXCI/OiBzdHJpbmc7XG4gIFwiYXJpYS1kZXNjcmliZWRieVwiPzogc3RyaW5nO1xuICAvKiogQWx0IHRleHQgZm9yIHRoZSBtb2RhbCBpbWFnZSAqL1xufTtcblxudHlwZSBDb25kaXRpb25hbFByb3BzID1cbiAgfCB7XG4gICAgICAvKiogQXNwZWN0IHJhdGlvIDE2OjkgKi9cbiAgICAgIGltYWdlVXJsPzogc3RyaW5nO1xuICAgICAgaW1hZ2VBbHQ/OiBzdHJpbmc7XG4gICAgICBJbWFnZUNvbXBvbmVudD86IG5ldmVyO1xuICAgIH1cbiAgfCB7XG4gICAgICBpbWFnZVVybD86IG5ldmVyO1xuICAgICAgaW1hZ2VBbHQ/OiBuZXZlcjtcbiAgICAgIC8qKiBBY2NlcHQgcmF0aW8gMTY6OSAqL1xuICAgICAgSW1hZ2VDb21wb25lbnQ/OiBSZWFjdC5FbGVtZW50VHlwZTxhbnk+O1xuICAgIH07XG5cbmV4cG9ydCB0eXBlIE1vZGFsUHJvcHMgPSBCYXNlUHJvcHMgJlxuICBDb25kaXRpb25hbFByb3BzICZcbiAgUGljazxQb3J0YWxQcm9wcywgXCJwb3J0YWxDb250YWluZXJcIj47XG5cbmV4cG9ydCBjb25zdCBTdHlsZWRCYWNrZHJvcCA9IHN0eWxlZC5kaXY8UGFydGlhbDxCYXNlUHJvcHM+PigoeyB0aGVtZSB9KSA9PiB7XG4gIGNvbnN0IGZhZGVJbkJhY2tkcm9wID0gdXNlTWVtbyhcbiAgICAoKSA9PlxuICAgICAga2V5ZnJhbWVzYFxuICAgICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6ICR7dGhlbWUudmFyaWFibGVzLm9wYWNpdHkuaGlkZGVufTtcbiAgICAgIH1cbiAgICAgIHRvIHtcbiAgICAgICAgb3BhY2l0eTogJHt0aGVtZS52YXJpYWJsZXMub3BhY2l0eS52aXNpYmxlfTtcbiAgICAgIH1cbiAgICBgLFxuICAgIFt0aGVtZS52YXJpYWJsZXMub3BhY2l0eS5oaWRkZW4sIHRoZW1lLnZhcmlhYmxlcy5vcGFjaXR5LnZpc2libGVdXG4gICk7XG4gIHJldHVybiB7XG4gICAgcG9zaXRpb246IFwiZml4ZWRcIixcbiAgICB0b3A6IDAsXG4gICAgbGVmdDogMCxcbiAgICB6SW5kZXg6IHRoZW1lLnZhcmlhYmxlcy56SW5kZXgubW9kYWwsXG4gICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgIGhlaWdodDogXCIxMDBkdmhcIixcbiAgICBiYWNrZ3JvdW5kOiB0aGVtZS52YWx1ZXMuY29sb3IuYmFja2dyb3VuZC5iYWNrZHJvcC5kZWZhdWx0LFxuICAgIGRpc3BsYXk6IFwiZmxleFwiLFxuICAgIGZsZXhEaXJlY3Rpb246IFwiY29sdW1uXCIsXG4gICAganVzdGlmeUNvbnRlbnQ6IFwiY2VudGVyXCIsXG4gICAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbiAgICBmbGV4OiBcIjEgMCBhdXRvXCIsXG4gICAgYW5pbWF0aW9uOiBgJHtmYWRlSW5CYWNrZHJvcH0gJHt0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLm1vZGFsQmFja2Ryb3Aub3Blbi5kdXJhdGlvbn0gJHt0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLm1vZGFsQmFja2Ryb3Aub3Blbi50aW1pbmdGdW5jdGlvbn0gYm90aGAsXG4gIH07XG59KTtcblxuY29uc3QgbW9iaWxlU2l6ZSA9IFwibVwiO1xuY29uc3QgZGVza3RvcFNpemUgPSBcInhsXCI7XG5jb25zdCBnZXREZXNrdG9wU3BhY2UgPSAodGhlbWU6IFRoZW1lKSA9PiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLmw7XG5jb25zdCBnZXREZXNrdG9wSW5uZXJTcGFjZSA9ICh0aGVtZTogVGhlbWUpID0+XG4gIHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmdbZGVza3RvcFNpemVdO1xuY29uc3QgZ2V0TW9iaWxlU3BhY2UgPSAodGhlbWU6IFRoZW1lKSA9PiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLm07XG5jb25zdCBnZXRNb2JpbGVJbm5lclNwYWNlID0gKHRoZW1lOiBUaGVtZSkgPT5cbiAgdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZ1ttb2JpbGVTaXplXTtcbi8vIE1pbmltdW0gdmlld3BvcnQgaGVpZ2h0IG9uIHdoaWNoIGltYWdlIGlzIHNob3duLlxuY29uc3QgTUlOX1ZJRVdQT1JUX0hFSUdIVCA9IDQyMDtcblxuY29uc3QgU3R5bGVkTW9kYWxXcmFwcGVyID0gc3R5bGVkLmRpdjxQYXJ0aWFsPE1vZGFsUHJvcHM+PihcbiAgKHsgdGhlbWUsIGlzRnVsbFNjcmVlbiwgc2l6ZSB9KSA9PiB7XG4gICAgY29uc3QgZmFkZUluTW9kYWwgPSB1c2VNZW1vKFxuICAgICAgKCkgPT5cbiAgICAgICAga2V5ZnJhbWVzYFxuICAgICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6ICR7dGhlbWUudmFyaWFibGVzLm9wYWNpdHkuaGlkZGVufTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwcHgpO1xuICAgICAgfVxuICAgICAgdG8ge1xuICAgICAgICAgIG9wYWNpdHk6ICR7dGhlbWUudmFyaWFibGVzLm9wYWNpdHkudmlzaWJsZX07XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICAgIH1cbiAgICBgLFxuICAgICAgW3RoZW1lLnZhcmlhYmxlcy5vcGFjaXR5LmhpZGRlbiwgdGhlbWUudmFyaWFibGVzLm9wYWNpdHkudmlzaWJsZV1cbiAgICApO1xuICAgIHJldHVybiB7XG4gICAgICBhbmltYXRpb246IGAke2ZhZGVJbk1vZGFsfSAke3RoZW1lLnZhcmlhYmxlcy5hbmltYXRpb24ubW9kYWwub3Blbi5kdXJhdGlvbn0gJHt0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLm1vZGFsLm9wZW4uZGVsYXl9ICR7dGhlbWUudmFyaWFibGVzLmFuaW1hdGlvbi5tb2RhbC5vcGVuLnRpbWluZ0Z1bmN0aW9ufSBib3RoYCxcbiAgICAgIC4uLnVzZVJlc3BvbnNpdmVWYWx1ZSh7XG4gICAgICAgIHdpZHRoOiBbXG4gICAgICAgICAgYGNhbGMoMTAwJSAtICR7Z2V0TW9iaWxlU3BhY2UodGhlbWUpfSAqIDIpYCxcbiAgICAgICAgICBpc0Z1bGxTY3JlZW5cbiAgICAgICAgICAgID8gYGNhbGMoMTAwJSAtICR7Z2V0RGVza3RvcFNwYWNlKHRoZW1lKX0gKiAyKWBcbiAgICAgICAgICAgIDogdGhlbWUudmFyaWFibGVzLnNpemUuZGltZW5zaW9uLm1vZGFsLndpZHRoW3NpemVdLFxuICAgICAgICBdLFxuICAgICAgfSksXG4gICAgfTtcbiAgfVxuKTtcblxuY29uc3QgU3R5bGVkSW5uZXIgPSBzdHlsZWQuZGl2PFBhcnRpYWw8TW9kYWxQcm9wcz4+KFxuICAoeyB0aGVtZSwgaXNGdWxsU2NyZWVuLCBzaXplIH0pID0+IHtcbiAgICBjb25zdCBtb2JpbGVWZXJ0aWNhbFNwYWNlID0gZ2V0TW9iaWxlU3BhY2UodGhlbWUpO1xuICAgIGNvbnN0IG1vYmlsZUlubmVyVmVydGljYWxTcGFjZSA9IGdldE1vYmlsZUlubmVyU3BhY2UodGhlbWUpO1xuICAgIGNvbnN0IGRlc2t0b3BWZXJ0aWNhbFNwYWNlID0gZ2V0RGVza3RvcFNwYWNlKHRoZW1lKTtcbiAgICBjb25zdCBkZXNrdG9wSW5uZXJWZXJ0aWNhbFNwYWNlID0gZ2V0RGVza3RvcElubmVyU3BhY2UodGhlbWUpO1xuXG4gICAgLy8gZnVsbHNjcmVlbiBhbmQgTCBzaXplIGRvbid0IGRlcGVuZCBvbiBjb250ZW50IHNpemVcbiAgICAvLyBMIHNpemUgaGVpZ2h0IGhhcyBtYXhIaWVnaHQgcmVzaXplIHVudGlsIDgwMHB4XG4gICAgLy8gZnVsbHNjcmVlbiBtYXhIZWlnaHQgaXMgbm90IGxpbWl0ZWRcbiAgICAvLyBNIHNpemUgaGVpZ2h0IGhhcyBjb250ZW50IHNpemUgYW5kIGNlbnRlcmVkIGF0IHRvcCBhbmQgbWF4SGVpZ2h0IGlzIG5vdCBsaW1pdGVkXG5cbiAgICBjb25zdCBnZXREZXNrdG9wSGVpZ2h0ID0gKCkgPT4ge1xuICAgICAgaWYgKGlzRnVsbFNjcmVlbikge1xuICAgICAgICByZXR1cm4gYGNhbGMoMTAwZHZoIC0gJHtkZXNrdG9wVmVydGljYWxTcGFjZX0gKiAyIC0gJHtkZXNrdG9wSW5uZXJWZXJ0aWNhbFNwYWNlfSAqIDIpYDtcbiAgICAgIH1cbiAgICAgIGlmIChzaXplID09PSBcImxcIikge1xuICAgICAgICByZXR1cm4gYGNhbGMoMTAwZHZoIC0gJHtkZXNrdG9wVmVydGljYWxTcGFjZX0gKiAyIC0gJHtkZXNrdG9wSW5uZXJWZXJ0aWNhbFNwYWNlfSAqIDIgLSAke3RoZW1lLnZhcmlhYmxlcy5zaXplLmRpbWVuc2lvbi5tb2RhbC5tYXJnaW4ubH0gKiAyKWA7XG4gICAgICB9XG4gICAgICByZXR1cm4gXCJhdXRvXCI7XG4gICAgfTtcblxuICAgIGNvbnN0IGdldERlc2t0b3BNYXhIZWlnaHQgPSAoKSA9PiB7XG4gICAgICBpZiAoaXNGdWxsU2NyZWVuKSB7XG4gICAgICAgIHJldHVybiBgYXV0b2A7XG4gICAgICB9XG4gICAgICBpZiAoc2l6ZSA9PT0gXCJsXCIpIHtcbiAgICAgICAgcmV0dXJuIGBjYWxjKCR7dGhlbWUudmFyaWFibGVzLnNpemUuZGltZW5zaW9uLm1vZGFsLm1heEhlaWdodC5sfSAtICR7ZGVza3RvcElubmVyVmVydGljYWxTcGFjZX0gKiAyKWA7XG4gICAgICB9XG4gICAgICByZXR1cm4gYGNhbGMoMTAwZHZoIC0gJHtkZXNrdG9wVmVydGljYWxTcGFjZX0gKiAyIC0gJHtkZXNrdG9wSW5uZXJWZXJ0aWNhbFNwYWNlfSAqIDIpYDtcbiAgICB9O1xuXG4gICAgY29uc3QgZnVsbFNjcmVlbk1vYmlsZSA9IGBjYWxjKDEwMGR2aCAtICR7bW9iaWxlVmVydGljYWxTcGFjZX0gKiAyIC0gJHttb2JpbGVJbm5lclZlcnRpY2FsU3BhY2V9ICogMilgO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGRpc3BsYXk6IFwiZmxleFwiLFxuICAgICAgLi4udXNlUmVzcG9uc2l2ZVZhbHVlKHtcbiAgICAgICAgaGVpZ2h0OiBbXG4gICAgICAgICAgc2l6ZSA9PT0gXCJsXCIgfHwgaXNGdWxsU2NyZWVuID8gZnVsbFNjcmVlbk1vYmlsZSA6IFwiYXV0b1wiLFxuICAgICAgICAgIGdldERlc2t0b3BIZWlnaHQoKSxcbiAgICAgICAgXSxcbiAgICAgICAgbWF4SGVpZ2h0OiBbZnVsbFNjcmVlbk1vYmlsZSwgZ2V0RGVza3RvcE1heEhlaWdodCgpXSxcbiAgICAgIH0pLFxuXG4gICAgICBmbGV4RGlyZWN0aW9uOiBcImNvbHVtblwiLFxuICAgICAgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsXG4gICAgfTtcbiAgfVxuKTtcblxudHlwZSBTdHlsZWRCb2R5UHJvcHMgPSB7XG4gIGJvcmRlckJvdHRvbTogYm9vbGVhbjtcbiAgYm9yZGVyVG9wOiBib29sZWFuO1xufTtcblxuY29uc3QgU3R5bGVkQm9keSA9IHN0eWxlZC5kaXY8U3R5bGVkQm9keVByb3BzICYgUGFydGlhbDxNb2RhbFByb3BzPj4oXG4gICh7IHRoZW1lLCBib3JkZXJCb3R0b20sIGJvcmRlclRvcCwgc2l6ZSwgaXNGdWxsU2NyZWVuIH0pID0+ICh7XG4gICAgb3ZlcmZsb3dZOiBcImF1dG9cIixcbiAgICBtYXhIZWlnaHQ6IFwiMTAwJVwiLFxuXG4gICAgLi4uKChpc0Z1bGxTY3JlZW4gfHwgc2l6ZSA9PT0gXCJsXCIpICYmIHtcbiAgICAgIGZsZXg6IDEsXG4gICAgfSksXG5cbiAgICAuLi4oYm9yZGVyQm90dG9tICYmIHtcbiAgICAgIGJvcmRlckJvdHRvbTogYDFweCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5kaXZpZGVyLnByaW1hcnl9YCxcbiAgICB9KSxcbiAgICAuLi4oYm9yZGVyVG9wICYmIHtcbiAgICAgIGJvcmRlclRvcDogYDFweCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5kaXZpZGVyLnByaW1hcnl9YCxcbiAgICB9KSxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZEltZyA9IHN0eWxlZC5pbWcoKCkgPT4gKHtcbiAgd2lkdGg6IFwiMTAwJVwiLFxuICBhc3BlY3RSYXRpbzogXCIxNi85XCIsXG59KSk7XG5cbmNvbnN0IFN0eWxlZE1heFdpZHRoID0gc3R5bGVkLmRpdjxQYXJ0aWFsPE1vZGFsUHJvcHM+PigoeyB0aGVtZSB9KSA9PiAoe1xuICBtYXhXaWR0aDogdGhlbWUudmFyaWFibGVzLnNpemUuZGltZW5zaW9uLm1vZGFsLmZ1bGxTY3JlZW5Db250ZW50V2lkdGgsXG4gIG1hcmdpbjogXCIwIGF1dG9cIixcbiAgaGVpZ2h0OiBcIjEwMCVcIixcbn0pKTtcblxuY29uc3QgU3R5bGVkWENvbnRhaW5lciA9IHN0eWxlZC5kaXYoKHsgdGhlbWUgfSkgPT4gKHtcbiAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgLi4udXNlUmVzcG9uc2l2ZVZhbHVlKHtcbiAgICB0b3A6IFt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnMsIHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubF0sXG4gICAgcmlnaHQ6IFt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnMsIHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubF0sXG4gIH0pLFxufSkpO1xuXG5jb25zdCBNb2RhbFN0YWNrID0gKHsgY2hpbGRyZW4sIC4uLnJlc3QgfTogT21pdDxTdGFja1Byb3BzLCBcInNwYWNlXCI+KSA9PiAoXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC9qc3gtcHJvcHMtbm8tc3ByZWFkaW5nXG4gIDxTdGFjayB7Li4ucmVzdH0gc3BhY2U9XCJtXCI+XG4gICAge2NoaWxkcmVufVxuICA8L1N0YWNrPlxuKTtcblxuY29uc3QgTW9kYWxUZXh0ID0gKHtcbiAgY2hpbGRyZW4sXG4gIC4uLnJlc3Rcbn06IE9taXQ8VGV4dFByb3BzLCBcInNpemVcIiB8IFwidmFyaWFudFwiPikgPT4gKFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QvanN4LXByb3BzLW5vLXNwcmVhZGluZ1xuICA8VGV4dCB7Li4ucmVzdH0gc2l6ZT1cIm1cIiBjb2xvcj1cInRlcnRpYXJ5XCI+XG4gICAge2NoaWxkcmVufVxuICA8L1RleHQ+XG4pO1xuXG5jb25zdCBGb290ZXIgPSAoe1xuICBjaGlsZHJlbixcbiAgYWxpZ25JdGVtcyA9IFtcInN0cmV0Y2hcIiwgXCJyaWdodFwiXSxcbiAgaXNTaG9ydFZpZXdwb3J0LFxufToge1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlW10gfCBSZWFjdC5SZWFjdEVsZW1lbnQ7XG4gIGFsaWduSXRlbXM/OiBTdGFja1Byb3BzW1wiYWxpZ25JdGVtc1wiXTtcbiAgaXNTaG9ydFZpZXdwb3J0PzogYm9vbGVhbjtcbn0pID0+IChcbiAgPEJveCBzcGFjZT1cInplcm9cIiB0U3BhY2U9e2lzU2hvcnRWaWV3cG9ydCA/IFwibVwiIDogXCJsXCJ9PlxuICAgIDxTdGFjayBhbGlnbkl0ZW1zPXthbGlnbkl0ZW1zfT57Y2hpbGRyZW59PC9TdGFjaz5cbiAgPC9Cb3g+XG4pO1xuXG5jb25zdCBXcmFwcGVyID0gKHtcbiAgc2tpcFBvcnRhbCxcbiAgY2hpbGRyZW4sXG4gIHBvcnRhbENvbnRhaW5lcixcbiAgYmFja2Ryb3BSZWYsXG59OiB7XG4gIHNraXBQb3J0YWw6IGJvb2xlYW47XG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdEVsZW1lbnQ7XG4gIGJhY2tkcm9wUmVmOiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xufSAmIFBhcnRpYWw8TW9kYWxQcm9wcz4pOiBSZWFjdC5SZWFjdEVsZW1lbnQgPT5cbiAgc2tpcFBvcnRhbCA/IChcbiAgICA8PntjaGlsZHJlbn08Lz5cbiAgKSA6IChcbiAgICA8TW9kYWxDb250ZXh0LlByb3ZpZGVyIHZhbHVlPlxuICAgICAgPFBvcnRhbCBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn0+XG4gICAgICAgIDxTdHlsZWRCYWNrZHJvcCByZWY9e2JhY2tkcm9wUmVmfT57Y2hpbGRyZW59PC9TdHlsZWRCYWNrZHJvcD5cbiAgICAgIDwvUG9ydGFsPlxuICAgIDwvTW9kYWxDb250ZXh0LlByb3ZpZGVyPlxuICApO1xuXG50eXBlIEZvY3VzVHJhcFByb3BzID0ge1xuICBvblBvc3REZWFjdGl2YXRlOiAoKSA9PiB2b2lkO1xuICBiYWNrZHJvcFJlZjogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcbiAgbW9kYWxSZWY6IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XG59ICYgUGljazxNb2RhbFByb3BzLCBcImlzRGlzbWlzc2libGVcIiB8IFwicG9ydGFsQ29udGFpbmVyXCI+O1xuXG5mdW5jdGlvbiBGb2N1c1RyYXAoe1xuICBvblBvc3REZWFjdGl2YXRlLFxuICBpc0Rpc21pc3NpYmxlLFxuICBwb3J0YWxDb250YWluZXIsXG4gIGNoaWxkcmVuLFxuICBiYWNrZHJvcFJlZixcbiAgbW9kYWxSZWYsXG59OiBQcm9wc1dpdGhDaGlsZHJlbjxGb2N1c1RyYXBQcm9wcz4pIHtcbiAgY29uc3QgcG9ydGFsQ29udGFpbmVyRWxlbWVudCA9IHVzZVBvcnRhbENvbnRhaW5lckVsZW1lbnQocG9ydGFsQ29udGFpbmVyKTtcblxuICBjb25zdCBoYW5kbGVDbGlja091dHNpZGVEZWFjdGl2YXRlcyA9IChldnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KSA9PiB7XG4gICAgLy8gRG8gbm90IGNsb3NlIG9uIGNsaWNrIHRoYXQgb2NjdXJzIG9uIGVsZW1lbnRzIHdpdGhpbiB0aGUgc2FtZSBwb3J0YWwsIGZvciBlZywgZHJvcGRvd24gYW5kIHNlbGVjdCBtZW51c1xuICAgIGlmIChcbiAgICAgIHBvcnRhbENvbnRhaW5lckVsZW1lbnQuY29udGFpbnMoZXZ0LnRhcmdldCBhcyBIVE1MRWxlbWVudCkgJiZcbiAgICAgIGV2dC50YXJnZXQgIT09IGJhY2tkcm9wUmVmLmN1cnJlbnRcbiAgICApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIGlzRGlzbWlzc2libGU7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8Rm9jdXNUcmFwV3JhcHBlclxuICAgICAgYWN0aXZlXG4gICAgICBmb2N1c1RyYXBPcHRpb25zPXt7XG4gICAgICAgIGFsbG93T3V0c2lkZUNsaWNrOiB0cnVlLCAvLyBhbGxvdyBjbGljayBvbiBtb2JpbGUgaW4gYW55IGRyb3Bkb3duc1xuICAgICAgICBjbGlja091dHNpZGVEZWFjdGl2YXRlczogaGFuZGxlQ2xpY2tPdXRzaWRlRGVhY3RpdmF0ZXMsXG4gICAgICAgIGVzY2FwZURlYWN0aXZhdGVzOiBpc0Rpc21pc3NpYmxlLCAvLyBkZS1hY3RpdmF0ZSBmb2N1cyB0cmFwIG9uIGVzY2FwZSBrZXlcbiAgICAgICAgcHJldmVudFNjcm9sbDogdHJ1ZSxcbiAgICAgICAgZmFsbGJhY2tGb2N1czogbW9kYWxSZWYuY3VycmVudCxcbiAgICAgICAgb25Qb3N0RGVhY3RpdmF0ZSxcbiAgICAgIH19XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvRm9jdXNUcmFwV3JhcHBlcj5cbiAgKTtcbn1cblxuY29uc3QgSG9yaXpvbnRhbE9mZnNldCA9ICh7XG4gIGNoaWxkcmVuLFxuICBpc0Z1bGxTY3JlZW4sXG4gIGlzTWF4V2lkdGhMaW1pdCxcbiAgaGVpZ2h0LFxufTogUGFydGlhbDxNb2RhbFByb3BzPiAmIHsgaGVpZ2h0Pzogc3RyaW5nIH0pID0+IChcbiAgPEJveCBzcGFjZT17W21vYmlsZVNpemUsIGRlc2t0b3BTaXplXX0gdlNwYWNlPVwiemVyb1wiIGhlaWdodD17aGVpZ2h0fT5cbiAgICB7aXNGdWxsU2NyZWVuICYmIGlzTWF4V2lkdGhMaW1pdCA/IChcbiAgICAgIDxTdHlsZWRNYXhXaWR0aD57Y2hpbGRyZW59PC9TdHlsZWRNYXhXaWR0aD5cbiAgICApIDogKFxuICAgICAgY2hpbGRyZW5cbiAgICApfVxuICA8L0JveD5cbik7XG5cbmZ1bmN0aW9uIGdldElzU2hvcnRWaWV3cG9ydCh3aW5kb3c6IFdpbmRvdyk6IGJvb2xlYW4ge1xuICByZXR1cm4gKFxuICAgIHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgJiYgd2luZG93LmlubmVySGVpZ2h0IDwgTUlOX1ZJRVdQT1JUX0hFSUdIVFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gTW9kYWwoe1xuICBoZWFkZXIsXG4gIHN1YkhlYWRlcixcbiAgbGFiZWxIZWFkZXIsXG4gIGNoaWxkcmVuLFxuICBpbWFnZVVybCxcbiAgSW1hZ2VDb21wb25lbnQsXG4gIHNlY29uZGFyeUJ1dHRvbixcbiAgY2FuY2VsQnV0dG9uTGFiZWwsXG4gIGlzRGlzbWlzc2libGUgPSB0cnVlLFxuICBpc0Z1bGxTY3JlZW4sXG4gIGlzTWF4V2lkdGhMaW1pdCA9IHRydWUsXG4gIGFjdGlvbkJ1dHRvbixcbiAgcm9sZSA9IFwiZGlhbG9nXCIsXG4gIG9uQWN0aW9uLFxuICBzaXplID0gXCJtXCIsXG4gIHByaXZhdGVQcm9wczogeyBza2lwUG9ydGFsIH0gPSB7IHNraXBQb3J0YWw6IGZhbHNlIH0sXG4gIHBvcnRhbENvbnRhaW5lcixcbiAgY2xvc2VCdXR0b25BcmlhTGFiZWwgPSBcIkRpc21pc3MgRGlhbG9nXCIsXG4gIFwiYXJpYS1sYWJlbFwiOiBhcmlhTGFiZWwsXG4gIFwiYXJpYS1kZXNjcmliZWRieVwiOiBhcmlhRGVzY3JpYmVkQnksXG4gIFwiZGF0YS1lMmUtdGVzdC1pZFwiOiBkYXRhRTJlVGVzdElkLFxuICBpbWFnZUFsdCxcbn06IE1vZGFsUHJvcHMpOiBSZWFjdC5SZWFjdEVsZW1lbnQge1xuICBjb25zdCBtb2RhbFJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgYmFja2Ryb3BSZWYgPSB1c2VSZWYobnVsbCk7XG4gIGNvbnN0IHN1YkhlYWRlcklkID0gdXNlSWQoKTtcbiAgY29uc3Qgd2luZG93ID0gdXNlV2luZG93KCk7XG4gIGNvbnN0IHsgc2Nyb2xsYWJsZVJlZiwgaXNTY3JvbGxCb3R0b20sIGlzU2Nyb2xsVG9wLCBoYXNTY3JvbGwgfSA9XG4gICAgdXNlU2Nyb2xsRGV0ZWN0aW9uKCk7XG4gIGNvbnN0IFtpc1Nob3J0Vmlld3BvcnQsIHNldElzU2hvcnRWaWV3cG9ydF0gPSB1c2VTdGF0ZShcbiAgICBnZXRJc1Nob3J0Vmlld3BvcnQod2luZG93KVxuICApO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgbGV0IHJlc2l6ZU9ic2VydmVyOiBSZXNpemVPYnNlcnZlcjtcblxuICAgIGlmICh0eXBlb2YgUmVzaXplT2JzZXJ2ZXIgIT09IFwidW5kZWZpbmVkXCIgJiYgYmFja2Ryb3BSZWYuY3VycmVudCkge1xuICAgICAgcmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKCkgPT4ge1xuICAgICAgICBzZXRJc1Nob3J0Vmlld3BvcnQoZ2V0SXNTaG9ydFZpZXdwb3J0KHdpbmRvdykpO1xuICAgICAgfSk7XG5cbiAgICAgIHJlc2l6ZU9ic2VydmVyLm9ic2VydmUoYmFja2Ryb3BSZWYuY3VycmVudCk7XG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChyZXNpemVPYnNlcnZlcikge1xuICAgICAgICByZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICB9XG4gICAgfTtcbiAgfSwgW2JhY2tkcm9wUmVmLCB3aW5kb3ddKTtcblxuICBjb25zdCBoYW5kbGVDbG9zZSA9ICgpID0+IHtcbiAgICBvbkFjdGlvbihcImNhbmNlbFwiKTtcbiAgfTtcblxuICBjb25zdCBoYXNJbWFnZSA9IGltYWdlVXJsIHx8IEltYWdlQ29tcG9uZW50O1xuICBjb25zdCBIZWFkaW5nQ29tcG9uZW50ID0gaXNTaG9ydFZpZXdwb3J0ID8gSDMgOiBIMjtcbiAgY29uc3QgaXNJbWFnZVZpc2libGUgPSAhaXNTaG9ydFZpZXdwb3J0ICYmICEhaGFzSW1hZ2U7XG4gIGNvbnN0IGhvcml6b250YWxPZmZzZXRQcm9wcyA9IHsgaXNGdWxsU2NyZWVuLCBpc01heFdpZHRoTGltaXQgfTtcblxuICBjb25zdCBjbG9zZUJ1dHRvbiA9IGlzRGlzbWlzc2libGUgJiYgKFxuICAgIDxTdHlsZWRYQ29udGFpbmVyPlxuICAgICAgPFBpY3RvZ3JhbUJ1dHRvblxuICAgICAgICB2YXJpYW50PVwidGVydGlhcnlcIlxuICAgICAgICBpY29uPVwieFwiXG4gICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgb25DbGljaz17aGFuZGxlQ2xvc2V9XG4gICAgICAgIGFyaWEtbGFiZWw9e2Nsb3NlQnV0dG9uQXJpYUxhYmVsfVxuICAgICAgLz5cbiAgICA8L1N0eWxlZFhDb250YWluZXI+XG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8V3JhcHBlclxuICAgICAgc2tpcFBvcnRhbD17c2tpcFBvcnRhbH1cbiAgICAgIHBvcnRhbENvbnRhaW5lcj17cG9ydGFsQ29udGFpbmVyfVxuICAgICAgYmFja2Ryb3BSZWY9e2JhY2tkcm9wUmVmfVxuICAgID5cbiAgICAgIDxGb2N1c1RyYXBcbiAgICAgICAgcG9ydGFsQ29udGFpbmVyPXtwb3J0YWxDb250YWluZXJ9XG4gICAgICAgIGlzRGlzbWlzc2libGU9e2lzRGlzbWlzc2libGV9XG4gICAgICAgIG9uUG9zdERlYWN0aXZhdGU9e2hhbmRsZUNsb3NlfVxuICAgICAgICBiYWNrZHJvcFJlZj17YmFja2Ryb3BSZWZ9XG4gICAgICAgIG1vZGFsUmVmPXttb2RhbFJlZn1cbiAgICAgID5cbiAgICAgICAgPFN0eWxlZE1vZGFsV3JhcHBlclxuICAgICAgICAgIHJlZj17bW9kYWxSZWZ9XG4gICAgICAgICAgcm9sZT17cm9sZX1cbiAgICAgICAgICBkYXRhLWUyZS10ZXN0LWlkPXtkYXRhRTJlVGVzdElkfVxuICAgICAgICAgIGRhdGEtZHMtaWQ9XCJNb2RhbFwiXG4gICAgICAgICAgaXNGdWxsU2NyZWVuPXtpc0Z1bGxTY3JlZW59XG4gICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICBhcmlhLWxhYmVsPXthcmlhTGFiZWwgfHwgaGVhZGVyfVxuICAgICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9e1xuICAgICAgICAgICAgc3ViSGVhZGVyID8gYXBwZW5kSWQoYXJpYURlc2NyaWJlZEJ5LCBzdWJIZWFkZXJJZCkgOiBhcmlhRGVzY3JpYmVkQnlcbiAgICAgICAgICB9XG4gICAgICAgID5cbiAgICAgICAgICA8Q29udGFpbmVyIGVsZXZhdGlvbj17NH0+XG4gICAgICAgICAgICA8Qm94IHNwYWNlPVwiemVyb1wiIHZTcGFjZT17W21vYmlsZVNpemUsIGRlc2t0b3BTaXplXX0+XG4gICAgICAgICAgICAgIDxTdHlsZWRJbm5lciBpc0Z1bGxTY3JlZW49e2lzRnVsbFNjcmVlbn0gc2l6ZT17c2l6ZX0+XG4gICAgICAgICAgICAgICAgPEhvcml6b250YWxPZmZzZXQgey4uLmhvcml6b250YWxPZmZzZXRQcm9wc30+XG4gICAgICAgICAgICAgICAgICA8Qm94IHNwYWNlPVwiemVyb1wiIGJTcGFjZT1cInNcIj5cbiAgICAgICAgICAgICAgICAgICAgPFN0YWNrIHNwYWNlPXtpc0ltYWdlVmlzaWJsZSA/IFtcInNcIiwgXCJsXCJdIDogXCJ6ZXJvXCJ9PlxuICAgICAgICAgICAgICAgICAgICAgIHtpc0ltYWdlVmlzaWJsZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgKGltYWdlVXJsID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Qm94IHNwYWNlPVwiemVyb1wiIHRTcGFjZT17W1wieGxcIiwgXCJsXCJdfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSW1nIHNyYz17aW1hZ2VVcmx9IGFsdD17aW1hZ2VBbHR9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPEltYWdlQ29tcG9uZW50IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICA8SW5saW5lIGFsaWduSXRlbXM9XCJzcGFjZUJldHdlZW5cIiBub1dyYXA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8U3RhY2sgc3BhY2U9XCJ4eHNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge2xhYmVsSGVhZGVyICYmIDxINiBhcz1cImRpdlwiPntsYWJlbEhlYWRlcn08L0g2Pn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0YWNrIHNwYWNlPVwiemVyb1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxIZWFkaW5nQ29tcG9uZW50IGFzPVwiaDFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtoZWFkZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9IZWFkaW5nQ29tcG9uZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtzdWJIZWFkZXIgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEg0IGFzPVwiaDJcIiBjb2xvcj1cInRlcnRpYXJ5XCIgaWQ9e3N1YkhlYWRlcklkfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3N1YkhlYWRlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSDQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgICAgICAgICB7Y2xvc2VCdXR0b259XG4gICAgICAgICAgICAgICAgICAgICAgPC9JbmxpbmU+XG4gICAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICA8L0hvcml6b250YWxPZmZzZXQ+XG5cbiAgICAgICAgICAgICAgICA8U3R5bGVkQm9keVxuICAgICAgICAgICAgICAgICAgcmVmPXtzY3JvbGxhYmxlUmVmfVxuICAgICAgICAgICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICAgICAgICAgIGlzRnVsbFNjcmVlbj17aXNGdWxsU2NyZWVufVxuICAgICAgICAgICAgICAgICAgYm9yZGVyQm90dG9tPXtoYXNTY3JvbGwgJiYgIWlzU2Nyb2xsQm90dG9tfVxuICAgICAgICAgICAgICAgICAgYm9yZGVyVG9wPXtoYXNTY3JvbGwgJiYgIWlzU2Nyb2xsVG9wfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxCb3ggc3BhY2U9XCJ6ZXJvXCIgdlNwYWNlPVwieHh4c1wiIGhlaWdodD1cIjEwMCVcIj5cbiAgICAgICAgICAgICAgICAgICAgPEhvcml6b250YWxPZmZzZXQgey4uLmhvcml6b250YWxPZmZzZXRQcm9wc30gaGVpZ2h0PVwiMTAwJVwiPlxuICAgICAgICAgICAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICAgICAgICAgICAgPC9Ib3Jpem9udGFsT2Zmc2V0PlxuICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRCb2R5PlxuXG4gICAgICAgICAgICAgICAgeyhhY3Rpb25CdXR0b24gfHwgY2FuY2VsQnV0dG9uTGFiZWwgfHwgc2Vjb25kYXJ5QnV0dG9uKSAmJiAoXG4gICAgICAgICAgICAgICAgICA8SG9yaXpvbnRhbE9mZnNldCB7Li4uaG9yaXpvbnRhbE9mZnNldFByb3BzfT5cbiAgICAgICAgICAgICAgICAgICAgPEZvb3RlciBpc1Nob3J0Vmlld3BvcnQ9e2lzU2hvcnRWaWV3cG9ydH0+XG4gICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvbkdyb3VwXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb25CdXR0b249e2FjdGlvbkJ1dHRvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgIHNlY29uZGFyeUJ1dHRvbj17c2Vjb25kYXJ5QnV0dG9ufVxuICAgICAgICAgICAgICAgICAgICAgICAgY2FuY2VsQnV0dG9uVGV4dD17Y2FuY2VsQnV0dG9uTGFiZWx9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkJ1dHRvbkNsaWNrPXtvbkFjdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8L0Zvb3Rlcj5cbiAgICAgICAgICAgICAgICAgIDwvSG9yaXpvbnRhbE9mZnNldD5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8L1N0eWxlZElubmVyPlxuICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgIDwvU3R5bGVkTW9kYWxXcmFwcGVyPlxuICAgICAgPC9Gb2N1c1RyYXA+XG4gICAgPC9XcmFwcGVyPlxuICApO1xufVxuXG5Nb2RhbC5TdGFjayA9IE1vZGFsU3RhY2s7XG5Nb2RhbC5UZXh0ID0gTW9kYWxUZXh0O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTBFOEIifQ== */"),getDesktopSpace=theme=>theme.variables.size.spacing.l,getDesktopInnerSpace=theme=>theme.variables.size.spacing.xl,getMobileSpace=theme=>theme.variables.size.spacing.m,getMobileInnerSpace=theme=>theme.variables.size.spacing.m,StyledModalWrapper=(0,_styled.default)("div",{target:"e1nbaxlv1",label:"StyledModalWrapper"})(({theme,isFullScreen,size})=>{let fadeInModal=(0,_react.useMemo)(()=>(0,_react1.keyframes)`
9
9
  from {
10
10
  opacity: ${theme.variables.opacity.hidden};
11
11
  transform: translateY(20px);
@@ -14,4 +14,4 @@
14
14
  opacity: ${theme.variables.opacity.visible};
15
15
  transform: translateY(0);
16
16
  }
17
- `,[theme.variables.opacity.hidden,theme.variables.opacity.visible]);return{animation:`${fadeInModal} ${theme.variables.animation.modal.open.duration} ${theme.variables.animation.modal.open.delay} ${theme.variables.animation.modal.open.timingFunction} both`,...(0,_mediaQueries.useResponsiveValue)({width:[`calc(100% - ${getMobileSpace(theme)} * 2)`,isFullScreen?`calc(100% - ${getDesktopSpace(theme)} * 2)`:theme.variables.size.dimension.modal.width[size]]})}},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUGF0dGVybnMvTW9kYWwvTW9kYWwudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9QYXR0ZXJucy9Nb2RhbC9Nb2RhbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgcmVhY3QvanN4LXByb3BzLW5vLXNwcmVhZGluZyAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVhY3QvanN4LW5vLXVzZWxlc3MtZnJhZ21lbnQgKi9cbmltcG9ydCB0eXBlIHsgUmVmT2JqZWN0LCBQcm9wc1dpdGhDaGlsZHJlbiB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFJlYWN0LCB7IHVzZU1lbW8sIHVzZVJlZiwgdXNlSWQsIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHR5cGUgeyBUaGVtZSB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHsga2V5ZnJhbWVzIH0gZnJvbSBcIkBlbW90aW9uL3JlYWN0XCI7XG5pbXBvcnQgdHlwZSB7IFBvcnRhbFByb3BzIH0gZnJvbSBcIi4uLy4uL1BvcnRhbC9Qb3J0YWxcIjtcbmltcG9ydCB7IFBvcnRhbCwgdXNlUG9ydGFsQ29udGFpbmVyRWxlbWVudCB9IGZyb20gXCIuLi8uLi9Qb3J0YWwvUG9ydGFsXCI7XG5pbXBvcnQgeyBIMiwgSDQsIEg2LCBIMyB9IGZyb20gXCIuLi8uLi9UeXBvZ3JhcGh5L0hlYWRlci9IZWFkZXJcIjtcbmltcG9ydCB0eXBlIHsgU3RhY2tQcm9wcyB9IGZyb20gXCIuLi8uLi9TdGFjay9TdGFja1wiO1xuaW1wb3J0IHsgU3RhY2sgfSBmcm9tIFwiLi4vLi4vU3RhY2svU3RhY2tcIjtcbmltcG9ydCB7IENvbnRhaW5lciB9IGZyb20gXCIuLi8uLi9Db250YWluZXIvQ29udGFpbmVyXCI7XG5pbXBvcnQgeyBCb3ggfSBmcm9tIFwiLi4vLi4vQm94L0JveFwiO1xuXG5pbXBvcnQgeyBJbmxpbmUgfSBmcm9tIFwiLi4vLi4vSW5saW5lL0lubGluZVwiO1xuaW1wb3J0IHR5cGUgeyBCdXR0b25Hcm91cEJ1dHRvblByb3BzIH0gZnJvbSBcIi4uL0J1dHRvbkdyb3VwL0J1dHRvbkdyb3VwXCI7XG5pbXBvcnQgeyBCdXR0b25Hcm91cCB9IGZyb20gXCIuLi9CdXR0b25Hcm91cC9CdXR0b25Hcm91cFwiO1xuaW1wb3J0IHsgUGljdG9ncmFtQnV0dG9uIH0gZnJvbSBcIi4uLy4uL1BpY3RvZ3JhbUJ1dHRvbi9QaWN0b2dyYW1CdXR0b25cIjtcbmltcG9ydCB0eXBlIHsgVGV4dFByb3BzIH0gZnJvbSBcIi4uLy4uL1R5cG9ncmFwaHkvVGV4dC9UZXh0XCI7XG5pbXBvcnQgeyBUZXh0IH0gZnJvbSBcIi4uLy4uL1R5cG9ncmFwaHkvVGV4dC9UZXh0XCI7XG5pbXBvcnQgeyB1c2VSZXNwb25zaXZlVmFsdWUgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL21lZGlhUXVlcmllc1wiO1xuaW1wb3J0IHsgdXNlU2Nyb2xsRGV0ZWN0aW9uIH0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZC91c2VTY3JvbGxEZXRlY3Rpb25cIjtcbmltcG9ydCB7IE1vZGFsQ29udGV4dCB9IGZyb20gXCIuL01vZGFsQ29udGV4dFwiO1xuaW1wb3J0IHsgRm9jdXNUcmFwV3JhcHBlciB9IGZyb20gXCIuLi8uLi8uLi9zaGFyZWQvRm9jdXNUcmFwV3JhcHBlclwiO1xuaW1wb3J0IHsgYXBwZW5kSWQgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL2FwcGVuZElkXCI7XG5pbXBvcnQgeyB1c2VXaW5kb3cgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL3VzZVdpbmRvd1wiO1xuXG50eXBlIEJhc2VQcm9wcyA9IHtcbiAgaGVhZGVyPzogc3RyaW5nO1xuICBvbkFjdGlvbj86IChhY3Rpb246IFwiY2FuY2VsXCIgfCBcImFjdGlvblwiKSA9PiB2b2lkO1xuICByb2xlPzogXCJkaWFsb2dcIiB8IFwiYWxlcnRkaWFsb2dcIjtcbiAgbGFiZWxIZWFkZXI/OiBzdHJpbmc7XG4gIC8qKiBUaGUgYmxhY2sgY29sb3IgaXMgZ29pbmcgdG8gYmUgcmVwbGFjZWQgd2l0aCBncmF5IG9uZSAqL1xuICBzdWJIZWFkZXI/OiBzdHJpbmc7XG4gIC8qKiBUZXh0IGFuZCBvdGhlciBwcm9wcyBmb3IgYWN0aW9uIEJ1dHRvbiAqL1xuICBhY3Rpb25CdXR0b24/OiBCdXR0b25Hcm91cEJ1dHRvblByb3BzO1xuICAvKiogVGV4dCBhbmQgb3RoZXIgcHJvcHMgZm9yIGFjdGlvbiBCdXR0b24gKi9cbiAgc2Vjb25kYXJ5QnV0dG9uPzogQnV0dG9uR3JvdXBCdXR0b25Qcm9wcztcbiAgLyoqIEBkZXByZWNhdGVkIFVzZSBzZWNvbmRhcnlCdXR0b24gdG8gcGFzcyBpbiB0ZXh0IGFuZCBvdGhlciBwcm9wcyBmb3Igc2Vjb25kYXJ5IGJ1dHRvbiAqL1xuICBjYW5jZWxCdXR0b25MYWJlbD86IHN0cmluZztcbiAgLyoqIEFpbSB0byB1c2UgPE1vZGFsLlRleHQ+IGFuZCA8TW9kYWwuU3RhY2s+ICovXG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuICBcImRhdGEtZTJlLXRlc3QtaWRcIj86IHN0cmluZztcbiAgcHJpdmF0ZVByb3BzPzogeyBza2lwUG9ydGFsPzogYm9vbGVhbiB9O1xuICAvKiogSXQncyBhIGJhZCBwYXR0ZXJuIHRvIHVzZSBub24tZGlzbWlzc2libGUgTW9kYWwgKi9cbiAgaXNEaXNtaXNzaWJsZT86IGJvb2xlYW47XG4gIGlzRnVsbFNjcmVlbj86IGJvb2xlYW47XG4gIGlzTWF4V2lkdGhMaW1pdD86IGJvb2xlYW47XG4gIHNpemU/OiBcIm1cIiB8IFwibFwiO1xuICBjbG9zZUJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgXCJhcmlhLWxhYmVsXCI/OiBzdHJpbmc7XG4gIFwiYXJpYS1kZXNjcmliZWRieVwiPzogc3RyaW5nO1xuICAvKiogQWx0IHRleHQgZm9yIHRoZSBtb2RhbCBpbWFnZSAqL1xufTtcblxudHlwZSBDb25kaXRpb25hbFByb3BzID1cbiAgfCB7XG4gICAgICAvKiogQXNwZWN0IHJhdGlvIDE2OjkgKi9cbiAgICAgIGltYWdlVXJsPzogc3RyaW5nO1xuICAgICAgaW1hZ2VBbHQ/OiBzdHJpbmc7XG4gICAgICBJbWFnZUNvbXBvbmVudD86IG5ldmVyO1xuICAgIH1cbiAgfCB7XG4gICAgICBpbWFnZVVybD86IG5ldmVyO1xuICAgICAgaW1hZ2VBbHQ/OiBuZXZlcjtcbiAgICAgIC8qKiBBY2NlcHQgcmF0aW8gMTY6OSAqL1xuICAgICAgSW1hZ2VDb21wb25lbnQ/OiBSZWFjdC5FbGVtZW50VHlwZTxhbnk+O1xuICAgIH07XG5cbmV4cG9ydCB0eXBlIE1vZGFsUHJvcHMgPSBCYXNlUHJvcHMgJlxuICBDb25kaXRpb25hbFByb3BzICZcbiAgUGljazxQb3J0YWxQcm9wcywgXCJwb3J0YWxDb250YWluZXJcIj47XG5cbmV4cG9ydCBjb25zdCBTdHlsZWRCYWNrZHJvcCA9IHN0eWxlZC5kaXY8UGFydGlhbDxCYXNlUHJvcHM+PigoeyB0aGVtZSB9KSA9PiB7XG4gIGNvbnN0IGZhZGVJbkJhY2tkcm9wID0gdXNlTWVtbyhcbiAgICAoKSA9PlxuICAgICAga2V5ZnJhbWVzYFxuICAgICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6ICR7dGhlbWUudmFyaWFibGVzLm9wYWNpdHkuaGlkZGVufTtcbiAgICAgIH1cbiAgICAgIHRvIHtcbiAgICAgICAgb3BhY2l0eTogJHt0aGVtZS52YXJpYWJsZXMub3BhY2l0eS52aXNpYmxlfTtcbiAgICAgIH1cbiAgICBgLFxuICAgIFt0aGVtZS52YXJpYWJsZXMub3BhY2l0eS5oaWRkZW4sIHRoZW1lLnZhcmlhYmxlcy5vcGFjaXR5LnZpc2libGVdXG4gICk7XG4gIHJldHVybiB7XG4gICAgcG9zaXRpb246IFwiZml4ZWRcIixcbiAgICB0b3A6IDAsXG4gICAgbGVmdDogMCxcbiAgICB6SW5kZXg6IHRoZW1lLnZhcmlhYmxlcy56SW5kZXgubW9kYWwsXG4gICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgIGhlaWdodDogXCIxMDBkdmhcIixcbiAgICBiYWNrZ3JvdW5kOiB0aGVtZS52YWx1ZXMuY29sb3IuYmFja2dyb3VuZC5iYWNrZHJvcC5kZWZhdWx0LFxuICAgIGRpc3BsYXk6IFwiZmxleFwiLFxuICAgIGZsZXhEaXJlY3Rpb246IFwiY29sdW1uXCIsXG4gICAganVzdGlmeUNvbnRlbnQ6IFwiY2VudGVyXCIsXG4gICAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbiAgICBmbGV4OiBcIjEgMCBhdXRvXCIsXG4gICAgYW5pbWF0aW9uOiBgJHtmYWRlSW5CYWNrZHJvcH0gJHt0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLm1vZGFsQmFja2Ryb3Aub3Blbi5kdXJhdGlvbn0gJHt0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLm1vZGFsQmFja2Ryb3Aub3Blbi50aW1pbmdGdW5jdGlvbn0gYm90aGAsXG4gIH07XG59KTtcblxuY29uc3QgbW9iaWxlU2l6ZSA9IFwibVwiO1xuY29uc3QgZGVza3RvcFNpemUgPSBcInhsXCI7XG5jb25zdCBnZXREZXNrdG9wU3BhY2UgPSAodGhlbWU6IFRoZW1lKSA9PiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLmw7XG5jb25zdCBnZXREZXNrdG9wSW5uZXJTcGFjZSA9ICh0aGVtZTogVGhlbWUpID0+XG4gIHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmdbZGVza3RvcFNpemVdO1xuY29uc3QgZ2V0TW9iaWxlU3BhY2UgPSAodGhlbWU6IFRoZW1lKSA9PiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLm07XG5jb25zdCBnZXRNb2JpbGVJbm5lclNwYWNlID0gKHRoZW1lOiBUaGVtZSkgPT5cbiAgdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZ1ttb2JpbGVTaXplXTtcbi8vIE1pbmltdW0gdmlld3BvcnQgaGVpZ2h0IG9uIHdoaWNoIGltYWdlIGlzIHNob3duLlxuY29uc3QgTUlOX1ZJRVdQT1JUX0hFSUdIVCA9IDQyMDtcblxuY29uc3QgU3R5bGVkTW9kYWxXcmFwcGVyID0gc3R5bGVkLmRpdjxQYXJ0aWFsPE1vZGFsUHJvcHM+PihcbiAgKHsgdGhlbWUsIGlzRnVsbFNjcmVlbiwgc2l6ZSB9KSA9PiB7XG4gICAgY29uc3QgZmFkZUluTW9kYWwgPSB1c2VNZW1vKFxuICAgICAgKCkgPT5cbiAgICAgICAga2V5ZnJhbWVzYFxuICAgICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6ICR7dGhlbWUudmFyaWFibGVzLm9wYWNpdHkuaGlkZGVufTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwcHgpO1xuICAgICAgfVxuICAgICAgdG8ge1xuICAgICAgICAgIG9wYWNpdHk6ICR7dGhlbWUudmFyaWFibGVzLm9wYWNpdHkudmlzaWJsZX07XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICAgIH1cbiAgICBgLFxuICAgICAgW3RoZW1lLnZhcmlhYmxlcy5vcGFjaXR5LmhpZGRlbiwgdGhlbWUudmFyaWFibGVzLm9wYWNpdHkudmlzaWJsZV1cbiAgICApO1xuICAgIHJldHVybiB7XG4gICAgICBhbmltYXRpb246IGAke2ZhZGVJbk1vZGFsfSAke3RoZW1lLnZhcmlhYmxlcy5hbmltYXRpb24ubW9kYWwub3Blbi5kdXJhdGlvbn0gJHt0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLm1vZGFsLm9wZW4uZGVsYXl9ICR7dGhlbWUudmFyaWFibGVzLmFuaW1hdGlvbi5tb2RhbC5vcGVuLnRpbWluZ0Z1bmN0aW9ufSBib3RoYCxcbiAgICAgIC4uLnVzZVJlc3BvbnNpdmVWYWx1ZSh7XG4gICAgICAgIHdpZHRoOiBbXG4gICAgICAgICAgYGNhbGMoMTAwJSAtICR7Z2V0TW9iaWxlU3BhY2UodGhlbWUpfSAqIDIpYCxcbiAgICAgICAgICBpc0Z1bGxTY3JlZW5cbiAgICAgICAgICAgID8gYGNhbGMoMTAwJSAtICR7Z2V0RGVza3RvcFNwYWNlKHRoZW1lKX0gKiAyKWBcbiAgICAgICAgICAgIDogdGhlbWUudmFyaWFibGVzLnNpemUuZGltZW5zaW9uLm1vZGFsLndpZHRoW3NpemVdLFxuICAgICAgICBdLFxuICAgICAgfSksXG4gICAgfTtcbiAgfVxuKTtcblxuY29uc3QgU3R5bGVkSW5uZXIgPSBzdHlsZWQuZGl2PFBhcnRpYWw8TW9kYWxQcm9wcz4+KFxuICAoeyB0aGVtZSwgaXNGdWxsU2NyZWVuLCBzaXplIH0pID0+IHtcbiAgICBjb25zdCBtb2JpbGVWZXJ0aWNhbFNwYWNlID0gZ2V0TW9iaWxlU3BhY2UodGhlbWUpO1xuICAgIGNvbnN0IG1vYmlsZUlubmVyVmVydGljYWxTcGFjZSA9IGdldE1vYmlsZUlubmVyU3BhY2UodGhlbWUpO1xuICAgIGNvbnN0IGRlc2t0b3BWZXJ0aWNhbFNwYWNlID0gZ2V0RGVza3RvcFNwYWNlKHRoZW1lKTtcbiAgICBjb25zdCBkZXNrdG9wSW5uZXJWZXJ0aWNhbFNwYWNlID0gZ2V0RGVza3RvcElubmVyU3BhY2UodGhlbWUpO1xuXG4gICAgLy8gZnVsbHNjcmVlbiBhbmQgTCBzaXplIGRvbid0IGRlcGVuZCBvbiBjb250ZW50IHNpemVcbiAgICAvLyBMIHNpemUgaGVpZ2h0IGhhcyBtYXhIaWVnaHQgcmVzaXplIHVudGlsIDgwMHB4XG4gICAgLy8gZnVsbHNjcmVlbiBtYXhIZWlnaHQgaXMgbm90IGxpbWl0ZWRcbiAgICAvLyBNIHNpemUgaGVpZ2h0IGhhcyBjb250ZW50IHNpemUgYW5kIGNlbnRlcmVkIGF0IHRvcCBhbmQgbWF4SGVpZ2h0IGlzIG5vdCBsaW1pdGVkXG5cbiAgICBjb25zdCBnZXREZXNrdG9wSGVpZ2h0ID0gKCkgPT4ge1xuICAgICAgaWYgKGlzRnVsbFNjcmVlbikge1xuICAgICAgICByZXR1cm4gYGNhbGMoMTAwZHZoIC0gJHtkZXNrdG9wVmVydGljYWxTcGFjZX0gKiAyIC0gJHtkZXNrdG9wSW5uZXJWZXJ0aWNhbFNwYWNlfSAqIDIpYDtcbiAgICAgIH1cbiAgICAgIGlmIChzaXplID09PSBcImxcIikge1xuICAgICAgICByZXR1cm4gYGNhbGMoMTAwZHZoIC0gJHtkZXNrdG9wVmVydGljYWxTcGFjZX0gKiAyIC0gJHtkZXNrdG9wSW5uZXJWZXJ0aWNhbFNwYWNlfSAqIDIgLSAke3RoZW1lLnZhcmlhYmxlcy5zaXplLmRpbWVuc2lvbi5tb2RhbC5tYXJnaW4ubH0gKiAyKWA7XG4gICAgICB9XG4gICAgICByZXR1cm4gXCJhdXRvXCI7XG4gICAgfTtcblxuICAgIGNvbnN0IGdldERlc2t0b3BNYXhIZWlnaHQgPSAoKSA9PiB7XG4gICAgICBpZiAoaXNGdWxsU2NyZWVuKSB7XG4gICAgICAgIHJldHVybiBgYXV0b2A7XG4gICAgICB9XG4gICAgICBpZiAoc2l6ZSA9PT0gXCJsXCIpIHtcbiAgICAgICAgcmV0dXJuIGBjYWxjKCR7dGhlbWUudmFyaWFibGVzLnNpemUuZGltZW5zaW9uLm1vZGFsLm1heEhlaWdodC5sfSAtICR7ZGVza3RvcElubmVyVmVydGljYWxTcGFjZX0gKiAyKWA7XG4gICAgICB9XG4gICAgICByZXR1cm4gYGNhbGMoMTAwZHZoIC0gJHtkZXNrdG9wVmVydGljYWxTcGFjZX0gKiAyIC0gJHtkZXNrdG9wSW5uZXJWZXJ0aWNhbFNwYWNlfSAqIDIpYDtcbiAgICB9O1xuXG4gICAgY29uc3QgZnVsbFNjcmVlbk1vYmlsZSA9IGBjYWxjKDEwMGR2aCAtICR7bW9iaWxlVmVydGljYWxTcGFjZX0gKiAyIC0gJHttb2JpbGVJbm5lclZlcnRpY2FsU3BhY2V9ICogMilgO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGRpc3BsYXk6IFwiZmxleFwiLFxuICAgICAgLi4udXNlUmVzcG9uc2l2ZVZhbHVlKHtcbiAgICAgICAgaGVpZ2h0OiBbXG4gICAgICAgICAgc2l6ZSA9PT0gXCJsXCIgfHwgaXNGdWxsU2NyZWVuID8gZnVsbFNjcmVlbk1vYmlsZSA6IFwiYXV0b1wiLFxuICAgICAgICAgIGdldERlc2t0b3BIZWlnaHQoKSxcbiAgICAgICAgXSxcbiAgICAgICAgbWF4SGVpZ2h0OiBbZnVsbFNjcmVlbk1vYmlsZSwgZ2V0RGVza3RvcE1heEhlaWdodCgpXSxcbiAgICAgIH0pLFxuXG4gICAgICBmbGV4RGlyZWN0aW9uOiBcImNvbHVtblwiLFxuICAgICAgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsXG4gICAgfTtcbiAgfVxuKTtcblxudHlwZSBTdHlsZWRCb2R5UHJvcHMgPSB7XG4gIGJvcmRlckJvdHRvbTogYm9vbGVhbjtcbiAgYm9yZGVyVG9wOiBib29sZWFuO1xufTtcblxuY29uc3QgU3R5bGVkQm9keSA9IHN0eWxlZC5kaXY8U3R5bGVkQm9keVByb3BzICYgUGFydGlhbDxNb2RhbFByb3BzPj4oXG4gICh7IHRoZW1lLCBib3JkZXJCb3R0b20sIGJvcmRlclRvcCwgc2l6ZSwgaXNGdWxsU2NyZWVuIH0pID0+ICh7XG4gICAgb3ZlcmZsb3dZOiBcImF1dG9cIixcbiAgICBtYXhIZWlnaHQ6IFwiMTAwJVwiLFxuXG4gICAgLi4uKChpc0Z1bGxTY3JlZW4gfHwgc2l6ZSA9PT0gXCJsXCIpICYmIHtcbiAgICAgIGZsZXg6IDEsXG4gICAgfSksXG5cbiAgICAuLi4oYm9yZGVyQm90dG9tICYmIHtcbiAgICAgIGJvcmRlckJvdHRvbTogYDFweCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5kaXZpZGVyLnByaW1hcnl9YCxcbiAgICB9KSxcbiAgICAuLi4oYm9yZGVyVG9wICYmIHtcbiAgICAgIGJvcmRlclRvcDogYDFweCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5kaXZpZGVyLnByaW1hcnl9YCxcbiAgICB9KSxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZEltZyA9IHN0eWxlZC5pbWcoKCkgPT4gKHtcbiAgd2lkdGg6IFwiMTAwJVwiLFxuICBhc3BlY3RSYXRpbzogXCIxNi85XCIsXG59KSk7XG5cbmNvbnN0IFN0eWxlZE1heFdpZHRoID0gc3R5bGVkLmRpdjxQYXJ0aWFsPE1vZGFsUHJvcHM+PigoeyB0aGVtZSB9KSA9PiAoe1xuICBtYXhXaWR0aDogdGhlbWUudmFyaWFibGVzLnNpemUuZGltZW5zaW9uLm1vZGFsLmZ1bGxTY3JlZW5Db250ZW50V2lkdGgsXG4gIG1hcmdpbjogXCIwIGF1dG9cIixcbiAgaGVpZ2h0OiBcIjEwMCVcIixcbn0pKTtcblxuY29uc3QgU3R5bGVkWENvbnRhaW5lciA9IHN0eWxlZC5kaXYoKHsgdGhlbWUgfSkgPT4gKHtcbiAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgLi4udXNlUmVzcG9uc2l2ZVZhbHVlKHtcbiAgICB0b3A6IFt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnMsIHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubF0sXG4gICAgcmlnaHQ6IFt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnMsIHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubF0sXG4gIH0pLFxufSkpO1xuXG5jb25zdCBNb2RhbFN0YWNrID0gKHsgY2hpbGRyZW4sIC4uLnJlc3QgfTogT21pdDxTdGFja1Byb3BzLCBcInNwYWNlXCI+KSA9PiAoXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC9qc3gtcHJvcHMtbm8tc3ByZWFkaW5nXG4gIDxTdGFjayB7Li4ucmVzdH0gc3BhY2U9XCJtXCI+XG4gICAge2NoaWxkcmVufVxuICA8L1N0YWNrPlxuKTtcblxuY29uc3QgTW9kYWxUZXh0ID0gKHtcbiAgY2hpbGRyZW4sXG4gIC4uLnJlc3Rcbn06IE9taXQ8VGV4dFByb3BzLCBcInNpemVcIiB8IFwidmFyaWFudFwiPikgPT4gKFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QvanN4LXByb3BzLW5vLXNwcmVhZGluZ1xuICA8VGV4dCB7Li4ucmVzdH0gc2l6ZT1cIm1cIiBjb2xvcj1cInRlcnRpYXJ5XCI+XG4gICAge2NoaWxkcmVufVxuICA8L1RleHQ+XG4pO1xuXG5jb25zdCBGb290ZXIgPSAoe1xuICBjaGlsZHJlbixcbiAgYWxpZ25JdGVtcyA9IFtcInN0cmV0Y2hcIiwgXCJyaWdodFwiXSxcbiAgaXNTaG9ydFZpZXdwb3J0LFxufToge1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlW10gfCBSZWFjdC5SZWFjdEVsZW1lbnQ7XG4gIGFsaWduSXRlbXM/OiBTdGFja1Byb3BzW1wiYWxpZ25JdGVtc1wiXTtcbiAgaXNTaG9ydFZpZXdwb3J0PzogYm9vbGVhbjtcbn0pID0+IChcbiAgPEJveCBzcGFjZT1cInplcm9cIiB0U3BhY2U9e2lzU2hvcnRWaWV3cG9ydCA/IFwibVwiIDogXCJsXCJ9PlxuICAgIDxTdGFjayBhbGlnbkl0ZW1zPXthbGlnbkl0ZW1zfT57Y2hpbGRyZW59PC9TdGFjaz5cbiAgPC9Cb3g+XG4pO1xuXG5jb25zdCBXcmFwcGVyID0gKHtcbiAgc2tpcFBvcnRhbCxcbiAgY2hpbGRyZW4sXG4gIHBvcnRhbENvbnRhaW5lcixcbiAgYmFja2Ryb3BSZWYsXG59OiB7XG4gIHNraXBQb3J0YWw6IGJvb2xlYW47XG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdEVsZW1lbnQ7XG4gIGJhY2tkcm9wUmVmOiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xufSAmIFBhcnRpYWw8TW9kYWxQcm9wcz4pOiBSZWFjdC5SZWFjdEVsZW1lbnQgPT5cbiAgc2tpcFBvcnRhbCA/IChcbiAgICA8PntjaGlsZHJlbn08Lz5cbiAgKSA6IChcbiAgICA8TW9kYWxDb250ZXh0LlByb3ZpZGVyIHZhbHVlPlxuICAgICAgPFBvcnRhbCBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn0+XG4gICAgICAgIDxTdHlsZWRCYWNrZHJvcCByZWY9e2JhY2tkcm9wUmVmfT57Y2hpbGRyZW59PC9TdHlsZWRCYWNrZHJvcD5cbiAgICAgIDwvUG9ydGFsPlxuICAgIDwvTW9kYWxDb250ZXh0LlByb3ZpZGVyPlxuICApO1xuXG50eXBlIEZvY3VzVHJhcFByb3BzID0ge1xuICBvblBvc3REZWFjdGl2YXRlOiAoKSA9PiB2b2lkO1xuICBiYWNrZHJvcFJlZjogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcbiAgbW9kYWxSZWY6IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XG59ICYgUGljazxNb2RhbFByb3BzLCBcImlzRGlzbWlzc2libGVcIiB8IFwicG9ydGFsQ29udGFpbmVyXCI+O1xuXG5mdW5jdGlvbiBGb2N1c1RyYXAoe1xuICBvblBvc3REZWFjdGl2YXRlLFxuICBpc0Rpc21pc3NpYmxlLFxuICBwb3J0YWxDb250YWluZXIsXG4gIGNoaWxkcmVuLFxuICBiYWNrZHJvcFJlZixcbiAgbW9kYWxSZWYsXG59OiBQcm9wc1dpdGhDaGlsZHJlbjxGb2N1c1RyYXBQcm9wcz4pIHtcbiAgY29uc3QgcG9ydGFsQ29udGFpbmVyRWxlbWVudCA9IHVzZVBvcnRhbENvbnRhaW5lckVsZW1lbnQocG9ydGFsQ29udGFpbmVyKTtcblxuICBjb25zdCBoYW5kbGVDbGlja091dHNpZGVEZWFjdGl2YXRlcyA9IChldnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KSA9PiB7XG4gICAgLy8gRG8gbm90IGNsb3NlIG9uIGNsaWNrIHRoYXQgb2NjdXJzIG9uIGVsZW1lbnRzIHdpdGhpbiB0aGUgc2FtZSBwb3J0YWwsIGZvciBlZywgZHJvcGRvd24gYW5kIHNlbGVjdCBtZW51c1xuICAgIGlmIChcbiAgICAgIHBvcnRhbENvbnRhaW5lckVsZW1lbnQuY29udGFpbnMoZXZ0LnRhcmdldCBhcyBIVE1MRWxlbWVudCkgJiZcbiAgICAgIGV2dC50YXJnZXQgIT09IGJhY2tkcm9wUmVmLmN1cnJlbnRcbiAgICApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIGlzRGlzbWlzc2libGU7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8Rm9jdXNUcmFwV3JhcHBlclxuICAgICAgYWN0aXZlXG4gICAgICBmb2N1c1RyYXBPcHRpb25zPXt7XG4gICAgICAgIGNsaWNrT3V0c2lkZURlYWN0aXZhdGVzOiBoYW5kbGVDbGlja091dHNpZGVEZWFjdGl2YXRlcyxcbiAgICAgICAgZXNjYXBlRGVhY3RpdmF0ZXM6IGlzRGlzbWlzc2libGUsIC8vIGRlLWFjdGl2YXRlIGZvY3VzIHRyYXAgb24gZXNjYXBlIGtleVxuICAgICAgICBwcmV2ZW50U2Nyb2xsOiB0cnVlLFxuICAgICAgICBmYWxsYmFja0ZvY3VzOiBtb2RhbFJlZi5jdXJyZW50LFxuICAgICAgICBvblBvc3REZWFjdGl2YXRlLFxuICAgICAgfX1cbiAgICA+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9Gb2N1c1RyYXBXcmFwcGVyPlxuICApO1xufVxuXG5jb25zdCBIb3Jpem9udGFsT2Zmc2V0ID0gKHtcbiAgY2hpbGRyZW4sXG4gIGlzRnVsbFNjcmVlbixcbiAgaXNNYXhXaWR0aExpbWl0LFxuICBoZWlnaHQsXG59OiBQYXJ0aWFsPE1vZGFsUHJvcHM+ICYgeyBoZWlnaHQ/OiBzdHJpbmcgfSkgPT4gKFxuICA8Qm94IHNwYWNlPXtbbW9iaWxlU2l6ZSwgZGVza3RvcFNpemVdfSB2U3BhY2U9XCJ6ZXJvXCIgaGVpZ2h0PXtoZWlnaHR9PlxuICAgIHtpc0Z1bGxTY3JlZW4gJiYgaXNNYXhXaWR0aExpbWl0ID8gKFxuICAgICAgPFN0eWxlZE1heFdpZHRoPntjaGlsZHJlbn08L1N0eWxlZE1heFdpZHRoPlxuICAgICkgOiAoXG4gICAgICBjaGlsZHJlblxuICAgICl9XG4gIDwvQm94PlxuKTtcblxuZnVuY3Rpb24gZ2V0SXNTaG9ydFZpZXdwb3J0KHdpbmRvdzogV2luZG93KTogYm9vbGVhbiB7XG4gIHJldHVybiAoXG4gICAgdHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIiAmJiB3aW5kb3cuaW5uZXJIZWlnaHQgPCBNSU5fVklFV1BPUlRfSEVJR0hUXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBNb2RhbCh7XG4gIGhlYWRlcixcbiAgc3ViSGVhZGVyLFxuICBsYWJlbEhlYWRlcixcbiAgY2hpbGRyZW4sXG4gIGltYWdlVXJsLFxuICBJbWFnZUNvbXBvbmVudCxcbiAgc2Vjb25kYXJ5QnV0dG9uLFxuICBjYW5jZWxCdXR0b25MYWJlbCxcbiAgaXNEaXNtaXNzaWJsZSA9IHRydWUsXG4gIGlzRnVsbFNjcmVlbixcbiAgaXNNYXhXaWR0aExpbWl0ID0gdHJ1ZSxcbiAgYWN0aW9uQnV0dG9uLFxuICByb2xlID0gXCJkaWFsb2dcIixcbiAgb25BY3Rpb24sXG4gIHNpemUgPSBcIm1cIixcbiAgcHJpdmF0ZVByb3BzOiB7IHNraXBQb3J0YWwgfSA9IHsgc2tpcFBvcnRhbDogZmFsc2UgfSxcbiAgcG9ydGFsQ29udGFpbmVyLFxuICBjbG9zZUJ1dHRvbkFyaWFMYWJlbCA9IFwiRGlzbWlzcyBEaWFsb2dcIixcbiAgXCJhcmlhLWxhYmVsXCI6IGFyaWFMYWJlbCxcbiAgXCJhcmlhLWRlc2NyaWJlZGJ5XCI6IGFyaWFEZXNjcmliZWRCeSxcbiAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG4gIGltYWdlQWx0LFxufTogTW9kYWxQcm9wcyk6IFJlYWN0LlJlYWN0RWxlbWVudCB7XG4gIGNvbnN0IG1vZGFsUmVmID0gdXNlUmVmKG51bGwpO1xuICBjb25zdCBiYWNrZHJvcFJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3Qgc3ViSGVhZGVySWQgPSB1c2VJZCgpO1xuICBjb25zdCB3aW5kb3cgPSB1c2VXaW5kb3coKTtcbiAgY29uc3QgeyBzY3JvbGxhYmxlUmVmLCBpc1Njcm9sbEJvdHRvbSwgaXNTY3JvbGxUb3AsIGhhc1Njcm9sbCB9ID1cbiAgICB1c2VTY3JvbGxEZXRlY3Rpb24oKTtcbiAgY29uc3QgW2lzU2hvcnRWaWV3cG9ydCwgc2V0SXNTaG9ydFZpZXdwb3J0XSA9IHVzZVN0YXRlKFxuICAgIGdldElzU2hvcnRWaWV3cG9ydCh3aW5kb3cpXG4gICk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBsZXQgcmVzaXplT2JzZXJ2ZXI6IFJlc2l6ZU9ic2VydmVyO1xuXG4gICAgaWYgKHR5cGVvZiBSZXNpemVPYnNlcnZlciAhPT0gXCJ1bmRlZmluZWRcIiAmJiBiYWNrZHJvcFJlZi5jdXJyZW50KSB7XG4gICAgICByZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB7XG4gICAgICAgIHNldElzU2hvcnRWaWV3cG9ydChnZXRJc1Nob3J0Vmlld3BvcnQod2luZG93KSk7XG4gICAgICB9KTtcblxuICAgICAgcmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShiYWNrZHJvcFJlZi5jdXJyZW50KTtcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKHJlc2l6ZU9ic2VydmVyKSB7XG4gICAgICAgIHJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgIH1cbiAgICB9O1xuICB9LCBbYmFja2Ryb3BSZWYsIHdpbmRvd10pO1xuXG4gIGNvbnN0IGhhbmRsZUNsb3NlID0gKCkgPT4ge1xuICAgIG9uQWN0aW9uKFwiY2FuY2VsXCIpO1xuICB9O1xuXG4gIGNvbnN0IGhhc0ltYWdlID0gaW1hZ2VVcmwgfHwgSW1hZ2VDb21wb25lbnQ7XG4gIGNvbnN0IEhlYWRpbmdDb21wb25lbnQgPSBpc1Nob3J0Vmlld3BvcnQgPyBIMyA6IEgyO1xuICBjb25zdCBpc0ltYWdlVmlzaWJsZSA9ICFpc1Nob3J0Vmlld3BvcnQgJiYgISFoYXNJbWFnZTtcbiAgY29uc3QgaG9yaXpvbnRhbE9mZnNldFByb3BzID0geyBpc0Z1bGxTY3JlZW4sIGlzTWF4V2lkdGhMaW1pdCB9O1xuXG4gIGNvbnN0IGNsb3NlQnV0dG9uID0gaXNEaXNtaXNzaWJsZSAmJiAoXG4gICAgPFN0eWxlZFhDb250YWluZXI+XG4gICAgICA8UGljdG9ncmFtQnV0dG9uXG4gICAgICAgIHZhcmlhbnQ9XCJ0ZXJ0aWFyeVwiXG4gICAgICAgIGljb249XCJ4XCJcbiAgICAgICAgc2l6ZT1cInNcIlxuICAgICAgICBvbkNsaWNrPXtoYW5kbGVDbG9zZX1cbiAgICAgICAgYXJpYS1sYWJlbD17Y2xvc2VCdXR0b25BcmlhTGFiZWx9XG4gICAgICAvPlxuICAgIDwvU3R5bGVkWENvbnRhaW5lcj5cbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxXcmFwcGVyXG4gICAgICBza2lwUG9ydGFsPXtza2lwUG9ydGFsfVxuICAgICAgcG9ydGFsQ29udGFpbmVyPXtwb3J0YWxDb250YWluZXJ9XG4gICAgICBiYWNrZHJvcFJlZj17YmFja2Ryb3BSZWZ9XG4gICAgPlxuICAgICAgPEZvY3VzVHJhcFxuICAgICAgICBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn1cbiAgICAgICAgaXNEaXNtaXNzaWJsZT17aXNEaXNtaXNzaWJsZX1cbiAgICAgICAgb25Qb3N0RGVhY3RpdmF0ZT17aGFuZGxlQ2xvc2V9XG4gICAgICAgIGJhY2tkcm9wUmVmPXtiYWNrZHJvcFJlZn1cbiAgICAgICAgbW9kYWxSZWY9e21vZGFsUmVmfVxuICAgICAgPlxuICAgICAgICA8U3R5bGVkTW9kYWxXcmFwcGVyXG4gICAgICAgICAgcmVmPXttb2RhbFJlZn1cbiAgICAgICAgICByb2xlPXtyb2xlfVxuICAgICAgICAgIGRhdGEtZTJlLXRlc3QtaWQ9e2RhdGFFMmVUZXN0SWR9XG4gICAgICAgICAgZGF0YS1kcy1pZD1cIk1vZGFsXCJcbiAgICAgICAgICBpc0Z1bGxTY3JlZW49e2lzRnVsbFNjcmVlbn1cbiAgICAgICAgICBzaXplPXtzaXplfVxuICAgICAgICAgIGFyaWEtbGFiZWw9e2FyaWFMYWJlbCB8fCBoZWFkZXJ9XG4gICAgICAgICAgYXJpYS1kZXNjcmliZWRieT17XG4gICAgICAgICAgICBzdWJIZWFkZXIgPyBhcHBlbmRJZChhcmlhRGVzY3JpYmVkQnksIHN1YkhlYWRlcklkKSA6IGFyaWFEZXNjcmliZWRCeVxuICAgICAgICAgIH1cbiAgICAgICAgPlxuICAgICAgICAgIDxDb250YWluZXIgZWxldmF0aW9uPXs0fT5cbiAgICAgICAgICAgIDxCb3ggc3BhY2U9XCJ6ZXJvXCIgdlNwYWNlPXtbbW9iaWxlU2l6ZSwgZGVza3RvcFNpemVdfT5cbiAgICAgICAgICAgICAgPFN0eWxlZElubmVyIGlzRnVsbFNjcmVlbj17aXNGdWxsU2NyZWVufSBzaXplPXtzaXplfT5cbiAgICAgICAgICAgICAgICA8SG9yaXpvbnRhbE9mZnNldCB7Li4uaG9yaXpvbnRhbE9mZnNldFByb3BzfT5cbiAgICAgICAgICAgICAgICAgIDxCb3ggc3BhY2U9XCJ6ZXJvXCIgYlNwYWNlPVwic1wiPlxuICAgICAgICAgICAgICAgICAgICA8U3RhY2sgc3BhY2U9e2lzSW1hZ2VWaXNpYmxlID8gW1wic1wiLCBcImxcIl0gOiBcInplcm9cIn0+XG4gICAgICAgICAgICAgICAgICAgICAge2lzSW1hZ2VWaXNpYmxlICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAoaW1hZ2VVcmwgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxCb3ggc3BhY2U9XCJ6ZXJvXCIgdFNwYWNlPXtbXCJ4bFwiLCBcImxcIl19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRJbWcgc3JjPXtpbWFnZVVybH0gYWx0PXtpbWFnZUFsdH0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8SW1hZ2VDb21wb25lbnQgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICAgIDxJbmxpbmUgYWxpZ25JdGVtcz1cInNwYWNlQmV0d2VlblwiIG5vV3JhcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxTdGFjayBzcGFjZT1cInh4c1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7bGFiZWxIZWFkZXIgJiYgPEg2IGFzPVwiZGl2XCI+e2xhYmVsSGVhZGVyfTwvSDY+fVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8U3RhY2sgc3BhY2U9XCJ6ZXJvXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhlYWRpbmdDb21wb25lbnQgYXM9XCJoMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2hlYWRlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0hlYWRpbmdDb21wb25lbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3N1YkhlYWRlciAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SDQgYXM9XCJoMlwiIGNvbG9yPVwidGVydGlhcnlcIiBpZD17c3ViSGVhZGVySWR9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7c3ViSGVhZGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9IND5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtjbG9zZUJ1dHRvbn1cbiAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZT5cbiAgICAgICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgIDwvSG9yaXpvbnRhbE9mZnNldD5cblxuICAgICAgICAgICAgICAgIDxTdHlsZWRCb2R5XG4gICAgICAgICAgICAgICAgICByZWY9e3Njcm9sbGFibGVSZWZ9XG4gICAgICAgICAgICAgICAgICBzaXplPXtzaXplfVxuICAgICAgICAgICAgICAgICAgaXNGdWxsU2NyZWVuPXtpc0Z1bGxTY3JlZW59XG4gICAgICAgICAgICAgICAgICBib3JkZXJCb3R0b209e2hhc1Njcm9sbCAmJiAhaXNTY3JvbGxCb3R0b219XG4gICAgICAgICAgICAgICAgICBib3JkZXJUb3A9e2hhc1Njcm9sbCAmJiAhaXNTY3JvbGxUb3B9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPEJveCBzcGFjZT1cInplcm9cIiB2U3BhY2U9XCJ4eHhzXCIgaGVpZ2h0PVwiMTAwJVwiPlxuICAgICAgICAgICAgICAgICAgICA8SG9yaXpvbnRhbE9mZnNldCB7Li4uaG9yaXpvbnRhbE9mZnNldFByb3BzfSBoZWlnaHQ9XCIxMDAlXCI+XG4gICAgICAgICAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgICAgICAgICA8L0hvcml6b250YWxPZmZzZXQ+XG4gICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICA8L1N0eWxlZEJvZHk+XG5cbiAgICAgICAgICAgICAgICB7KGFjdGlvbkJ1dHRvbiB8fCBjYW5jZWxCdXR0b25MYWJlbCB8fCBzZWNvbmRhcnlCdXR0b24pICYmIChcbiAgICAgICAgICAgICAgICAgIDxIb3Jpem9udGFsT2Zmc2V0IHsuLi5ob3Jpem9udGFsT2Zmc2V0UHJvcHN9PlxuICAgICAgICAgICAgICAgICAgICA8Rm9vdGVyIGlzU2hvcnRWaWV3cG9ydD17aXNTaG9ydFZpZXdwb3J0fT5cbiAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uR3JvdXBcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbkJ1dHRvbj17YWN0aW9uQnV0dG9ufVxuICAgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kYXJ5QnV0dG9uPXtzZWNvbmRhcnlCdXR0b259XG4gICAgICAgICAgICAgICAgICAgICAgICBjYW5jZWxCdXR0b25UZXh0PXtjYW5jZWxCdXR0b25MYWJlbH1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQnV0dG9uQ2xpY2s9e29uQWN0aW9ufVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvRm9vdGVyPlxuICAgICAgICAgICAgICAgICAgPC9Ib3Jpem9udGFsT2Zmc2V0PlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvU3R5bGVkSW5uZXI+XG4gICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgPC9TdHlsZWRNb2RhbFdyYXBwZXI+XG4gICAgICA8L0ZvY3VzVHJhcD5cbiAgICA8L1dyYXBwZXI+XG4gICk7XG59XG5cbk1vZGFsLlN0YWNrID0gTW9kYWxTdGFjaztcbk1vZGFsLlRleHQgPSBNb2RhbFRleHQ7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBbUgyQiJ9 */"),StyledInner=(0,_styled.default)("div",{target:"elkk7m12",label:"StyledInner"})(({theme,isFullScreen,size})=>{let mobileVerticalSpace=getMobileSpace(theme),mobileInnerVerticalSpace=getMobileInnerSpace(theme),desktopVerticalSpace=getDesktopSpace(theme),desktopInnerVerticalSpace=getDesktopInnerSpace(theme),fullScreenMobile=`calc(100dvh - ${mobileVerticalSpace} * 2 - ${mobileInnerVerticalSpace} * 2)`;return{display:"flex",...(0,_mediaQueries.useResponsiveValue)({height:["l"===size||isFullScreen?fullScreenMobile:"auto",isFullScreen?`calc(100dvh - ${desktopVerticalSpace} * 2 - ${desktopInnerVerticalSpace} * 2)`:"l"===size?`calc(100dvh - ${desktopVerticalSpace} * 2 - ${desktopInnerVerticalSpace} * 2 - ${theme.variables.size.dimension.modal.margin.l} * 2)`:"auto"],maxHeight:[fullScreenMobile,isFullScreen?"auto":"l"===size?`calc(${theme.variables.size.dimension.modal.maxHeight.l} - ${desktopInnerVerticalSpace} * 2)`:`calc(100dvh - ${desktopVerticalSpace} * 2 - ${desktopInnerVerticalSpace} * 2)`]}),flexDirection:"column",overflow:"hidden"}},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUGF0dGVybnMvTW9kYWwvTW9kYWwudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9QYXR0ZXJucy9Nb2RhbC9Nb2RhbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgcmVhY3QvanN4LXByb3BzLW5vLXNwcmVhZGluZyAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVhY3QvanN4LW5vLXVzZWxlc3MtZnJhZ21lbnQgKi9cbmltcG9ydCB0eXBlIHsgUmVmT2JqZWN0LCBQcm9wc1dpdGhDaGlsZHJlbiB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFJlYWN0LCB7IHVzZU1lbW8sIHVzZVJlZiwgdXNlSWQsIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHR5cGUgeyBUaGVtZSB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHsga2V5ZnJhbWVzIH0gZnJvbSBcIkBlbW90aW9uL3JlYWN0XCI7XG5pbXBvcnQgdHlwZSB7IFBvcnRhbFByb3BzIH0gZnJvbSBcIi4uLy4uL1BvcnRhbC9Qb3J0YWxcIjtcbmltcG9ydCB7IFBvcnRhbCwgdXNlUG9ydGFsQ29udGFpbmVyRWxlbWVudCB9IGZyb20gXCIuLi8uLi9Qb3J0YWwvUG9ydGFsXCI7XG5pbXBvcnQgeyBIMiwgSDQsIEg2LCBIMyB9IGZyb20gXCIuLi8uLi9UeXBvZ3JhcGh5L0hlYWRlci9IZWFkZXJcIjtcbmltcG9ydCB0eXBlIHsgU3RhY2tQcm9wcyB9IGZyb20gXCIuLi8uLi9TdGFjay9TdGFja1wiO1xuaW1wb3J0IHsgU3RhY2sgfSBmcm9tIFwiLi4vLi4vU3RhY2svU3RhY2tcIjtcbmltcG9ydCB7IENvbnRhaW5lciB9IGZyb20gXCIuLi8uLi9Db250YWluZXIvQ29udGFpbmVyXCI7XG5pbXBvcnQgeyBCb3ggfSBmcm9tIFwiLi4vLi4vQm94L0JveFwiO1xuXG5pbXBvcnQgeyBJbmxpbmUgfSBmcm9tIFwiLi4vLi4vSW5saW5lL0lubGluZVwiO1xuaW1wb3J0IHR5cGUgeyBCdXR0b25Hcm91cEJ1dHRvblByb3BzIH0gZnJvbSBcIi4uL0J1dHRvbkdyb3VwL0J1dHRvbkdyb3VwXCI7XG5pbXBvcnQgeyBCdXR0b25Hcm91cCB9IGZyb20gXCIuLi9CdXR0b25Hcm91cC9CdXR0b25Hcm91cFwiO1xuaW1wb3J0IHsgUGljdG9ncmFtQnV0dG9uIH0gZnJvbSBcIi4uLy4uL1BpY3RvZ3JhbUJ1dHRvbi9QaWN0b2dyYW1CdXR0b25cIjtcbmltcG9ydCB0eXBlIHsgVGV4dFByb3BzIH0gZnJvbSBcIi4uLy4uL1R5cG9ncmFwaHkvVGV4dC9UZXh0XCI7XG5pbXBvcnQgeyBUZXh0IH0gZnJvbSBcIi4uLy4uL1R5cG9ncmFwaHkvVGV4dC9UZXh0XCI7XG5pbXBvcnQgeyB1c2VSZXNwb25zaXZlVmFsdWUgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL21lZGlhUXVlcmllc1wiO1xuaW1wb3J0IHsgdXNlU2Nyb2xsRGV0ZWN0aW9uIH0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZC91c2VTY3JvbGxEZXRlY3Rpb25cIjtcbmltcG9ydCB7IE1vZGFsQ29udGV4dCB9IGZyb20gXCIuL01vZGFsQ29udGV4dFwiO1xuaW1wb3J0IHsgRm9jdXNUcmFwV3JhcHBlciB9IGZyb20gXCIuLi8uLi8uLi9zaGFyZWQvRm9jdXNUcmFwV3JhcHBlclwiO1xuaW1wb3J0IHsgYXBwZW5kSWQgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL2FwcGVuZElkXCI7XG5pbXBvcnQgeyB1c2VXaW5kb3cgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL3VzZVdpbmRvd1wiO1xuXG50eXBlIEJhc2VQcm9wcyA9IHtcbiAgaGVhZGVyPzogc3RyaW5nO1xuICBvbkFjdGlvbj86IChhY3Rpb246IFwiY2FuY2VsXCIgfCBcImFjdGlvblwiKSA9PiB2b2lkO1xuICByb2xlPzogXCJkaWFsb2dcIiB8IFwiYWxlcnRkaWFsb2dcIjtcbiAgbGFiZWxIZWFkZXI/OiBzdHJpbmc7XG4gIC8qKiBUaGUgYmxhY2sgY29sb3IgaXMgZ29pbmcgdG8gYmUgcmVwbGFjZWQgd2l0aCBncmF5IG9uZSAqL1xuICBzdWJIZWFkZXI/OiBzdHJpbmc7XG4gIC8qKiBUZXh0IGFuZCBvdGhlciBwcm9wcyBmb3IgYWN0aW9uIEJ1dHRvbiAqL1xuICBhY3Rpb25CdXR0b24/OiBCdXR0b25Hcm91cEJ1dHRvblByb3BzO1xuICAvKiogVGV4dCBhbmQgb3RoZXIgcHJvcHMgZm9yIGFjdGlvbiBCdXR0b24gKi9cbiAgc2Vjb25kYXJ5QnV0dG9uPzogQnV0dG9uR3JvdXBCdXR0b25Qcm9wcztcbiAgLyoqIEBkZXByZWNhdGVkIFVzZSBzZWNvbmRhcnlCdXR0b24gdG8gcGFzcyBpbiB0ZXh0IGFuZCBvdGhlciBwcm9wcyBmb3Igc2Vjb25kYXJ5IGJ1dHRvbiAqL1xuICBjYW5jZWxCdXR0b25MYWJlbD86IHN0cmluZztcbiAgLyoqIEFpbSB0byB1c2UgPE1vZGFsLlRleHQ+IGFuZCA8TW9kYWwuU3RhY2s+ICovXG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuICBcImRhdGEtZTJlLXRlc3QtaWRcIj86IHN0cmluZztcbiAgcHJpdmF0ZVByb3BzPzogeyBza2lwUG9ydGFsPzogYm9vbGVhbiB9O1xuICAvKiogSXQncyBhIGJhZCBwYXR0ZXJuIHRvIHVzZSBub24tZGlzbWlzc2libGUgTW9kYWwgKi9cbiAgaXNEaXNtaXNzaWJsZT86IGJvb2xlYW47XG4gIGlzRnVsbFNjcmVlbj86IGJvb2xlYW47XG4gIGlzTWF4V2lkdGhMaW1pdD86IGJvb2xlYW47XG4gIHNpemU/OiBcIm1cIiB8IFwibFwiO1xuICBjbG9zZUJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgXCJhcmlhLWxhYmVsXCI/OiBzdHJpbmc7XG4gIFwiYXJpYS1kZXNjcmliZWRieVwiPzogc3RyaW5nO1xuICAvKiogQWx0IHRleHQgZm9yIHRoZSBtb2RhbCBpbWFnZSAqL1xufTtcblxudHlwZSBDb25kaXRpb25hbFByb3BzID1cbiAgfCB7XG4gICAgICAvKiogQXNwZWN0IHJhdGlvIDE2OjkgKi9cbiAgICAgIGltYWdlVXJsPzogc3RyaW5nO1xuICAgICAgaW1hZ2VBbHQ/OiBzdHJpbmc7XG4gICAgICBJbWFnZUNvbXBvbmVudD86IG5ldmVyO1xuICAgIH1cbiAgfCB7XG4gICAgICBpbWFnZVVybD86IG5ldmVyO1xuICAgICAgaW1hZ2VBbHQ/OiBuZXZlcjtcbiAgICAgIC8qKiBBY2NlcHQgcmF0aW8gMTY6OSAqL1xuICAgICAgSW1hZ2VDb21wb25lbnQ/OiBSZWFjdC5FbGVtZW50VHlwZTxhbnk+O1xuICAgIH07XG5cbmV4cG9ydCB0eXBlIE1vZGFsUHJvcHMgPSBCYXNlUHJvcHMgJlxuICBDb25kaXRpb25hbFByb3BzICZcbiAgUGljazxQb3J0YWxQcm9wcywgXCJwb3J0YWxDb250YWluZXJcIj47XG5cbmV4cG9ydCBjb25zdCBTdHlsZWRCYWNrZHJvcCA9IHN0eWxlZC5kaXY8UGFydGlhbDxCYXNlUHJvcHM+PigoeyB0aGVtZSB9KSA9PiB7XG4gIGNvbnN0IGZhZGVJbkJhY2tkcm9wID0gdXNlTWVtbyhcbiAgICAoKSA9PlxuICAgICAga2V5ZnJhbWVzYFxuICAgICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6ICR7dGhlbWUudmFyaWFibGVzLm9wYWNpdHkuaGlkZGVufTtcbiAgICAgIH1cbiAgICAgIHRvIHtcbiAgICAgICAgb3BhY2l0eTogJHt0aGVtZS52YXJpYWJsZXMub3BhY2l0eS52aXNpYmxlfTtcbiAgICAgIH1cbiAgICBgLFxuICAgIFt0aGVtZS52YXJpYWJsZXMub3BhY2l0eS5oaWRkZW4sIHRoZW1lLnZhcmlhYmxlcy5vcGFjaXR5LnZpc2libGVdXG4gICk7XG4gIHJldHVybiB7XG4gICAgcG9zaXRpb246IFwiZml4ZWRcIixcbiAgICB0b3A6IDAsXG4gICAgbGVmdDogMCxcbiAgICB6SW5kZXg6IHRoZW1lLnZhcmlhYmxlcy56SW5kZXgubW9kYWwsXG4gICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgIGhlaWdodDogXCIxMDBkdmhcIixcbiAgICBiYWNrZ3JvdW5kOiB0aGVtZS52YWx1ZXMuY29sb3IuYmFja2dyb3VuZC5iYWNrZHJvcC5kZWZhdWx0LFxuICAgIGRpc3BsYXk6IFwiZmxleFwiLFxuICAgIGZsZXhEaXJlY3Rpb246IFwiY29sdW1uXCIsXG4gICAganVzdGlmeUNvbnRlbnQ6IFwiY2VudGVyXCIsXG4gICAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbiAgICBmbGV4OiBcIjEgMCBhdXRvXCIsXG4gICAgYW5pbWF0aW9uOiBgJHtmYWRlSW5CYWNrZHJvcH0gJHt0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLm1vZGFsQmFja2Ryb3Aub3Blbi5kdXJhdGlvbn0gJHt0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLm1vZGFsQmFja2Ryb3Aub3Blbi50aW1pbmdGdW5jdGlvbn0gYm90aGAsXG4gIH07XG59KTtcblxuY29uc3QgbW9iaWxlU2l6ZSA9IFwibVwiO1xuY29uc3QgZGVza3RvcFNpemUgPSBcInhsXCI7XG5jb25zdCBnZXREZXNrdG9wU3BhY2UgPSAodGhlbWU6IFRoZW1lKSA9PiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLmw7XG5jb25zdCBnZXREZXNrdG9wSW5uZXJTcGFjZSA9ICh0aGVtZTogVGhlbWUpID0+XG4gIHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmdbZGVza3RvcFNpemVdO1xuY29uc3QgZ2V0TW9iaWxlU3BhY2UgPSAodGhlbWU6IFRoZW1lKSA9PiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLm07XG5jb25zdCBnZXRNb2JpbGVJbm5lclNwYWNlID0gKHRoZW1lOiBUaGVtZSkgPT5cbiAgdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZ1ttb2JpbGVTaXplXTtcbi8vIE1pbmltdW0gdmlld3BvcnQgaGVpZ2h0IG9uIHdoaWNoIGltYWdlIGlzIHNob3duLlxuY29uc3QgTUlOX1ZJRVdQT1JUX0hFSUdIVCA9IDQyMDtcblxuY29uc3QgU3R5bGVkTW9kYWxXcmFwcGVyID0gc3R5bGVkLmRpdjxQYXJ0aWFsPE1vZGFsUHJvcHM+PihcbiAgKHsgdGhlbWUsIGlzRnVsbFNjcmVlbiwgc2l6ZSB9KSA9PiB7XG4gICAgY29uc3QgZmFkZUluTW9kYWwgPSB1c2VNZW1vKFxuICAgICAgKCkgPT5cbiAgICAgICAga2V5ZnJhbWVzYFxuICAgICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6ICR7dGhlbWUudmFyaWFibGVzLm9wYWNpdHkuaGlkZGVufTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwcHgpO1xuICAgICAgfVxuICAgICAgdG8ge1xuICAgICAgICAgIG9wYWNpdHk6ICR7dGhlbWUudmFyaWFibGVzLm9wYWNpdHkudmlzaWJsZX07XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICAgIH1cbiAgICBgLFxuICAgICAgW3RoZW1lLnZhcmlhYmxlcy5vcGFjaXR5LmhpZGRlbiwgdGhlbWUudmFyaWFibGVzLm9wYWNpdHkudmlzaWJsZV1cbiAgICApO1xuICAgIHJldHVybiB7XG4gICAgICBhbmltYXRpb246IGAke2ZhZGVJbk1vZGFsfSAke3RoZW1lLnZhcmlhYmxlcy5hbmltYXRpb24ubW9kYWwub3Blbi5kdXJhdGlvbn0gJHt0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLm1vZGFsLm9wZW4uZGVsYXl9ICR7dGhlbWUudmFyaWFibGVzLmFuaW1hdGlvbi5tb2RhbC5vcGVuLnRpbWluZ0Z1bmN0aW9ufSBib3RoYCxcbiAgICAgIC4uLnVzZVJlc3BvbnNpdmVWYWx1ZSh7XG4gICAgICAgIHdpZHRoOiBbXG4gICAgICAgICAgYGNhbGMoMTAwJSAtICR7Z2V0TW9iaWxlU3BhY2UodGhlbWUpfSAqIDIpYCxcbiAgICAgICAgICBpc0Z1bGxTY3JlZW5cbiAgICAgICAgICAgID8gYGNhbGMoMTAwJSAtICR7Z2V0RGVza3RvcFNwYWNlKHRoZW1lKX0gKiAyKWBcbiAgICAgICAgICAgIDogdGhlbWUudmFyaWFibGVzLnNpemUuZGltZW5zaW9uLm1vZGFsLndpZHRoW3NpemVdLFxuICAgICAgICBdLFxuICAgICAgfSksXG4gICAgfTtcbiAgfVxuKTtcblxuY29uc3QgU3R5bGVkSW5uZXIgPSBzdHlsZWQuZGl2PFBhcnRpYWw8TW9kYWxQcm9wcz4+KFxuICAoeyB0aGVtZSwgaXNGdWxsU2NyZWVuLCBzaXplIH0pID0+IHtcbiAgICBjb25zdCBtb2JpbGVWZXJ0aWNhbFNwYWNlID0gZ2V0TW9iaWxlU3BhY2UodGhlbWUpO1xuICAgIGNvbnN0IG1vYmlsZUlubmVyVmVydGljYWxTcGFjZSA9IGdldE1vYmlsZUlubmVyU3BhY2UodGhlbWUpO1xuICAgIGNvbnN0IGRlc2t0b3BWZXJ0aWNhbFNwYWNlID0gZ2V0RGVza3RvcFNwYWNlKHRoZW1lKTtcbiAgICBjb25zdCBkZXNrdG9wSW5uZXJWZXJ0aWNhbFNwYWNlID0gZ2V0RGVza3RvcElubmVyU3BhY2UodGhlbWUpO1xuXG4gICAgLy8gZnVsbHNjcmVlbiBhbmQgTCBzaXplIGRvbid0IGRlcGVuZCBvbiBjb250ZW50IHNpemVcbiAgICAvLyBMIHNpemUgaGVpZ2h0IGhhcyBtYXhIaWVnaHQgcmVzaXplIHVudGlsIDgwMHB4XG4gICAgLy8gZnVsbHNjcmVlbiBtYXhIZWlnaHQgaXMgbm90IGxpbWl0ZWRcbiAgICAvLyBNIHNpemUgaGVpZ2h0IGhhcyBjb250ZW50IHNpemUgYW5kIGNlbnRlcmVkIGF0IHRvcCBhbmQgbWF4SGVpZ2h0IGlzIG5vdCBsaW1pdGVkXG5cbiAgICBjb25zdCBnZXREZXNrdG9wSGVpZ2h0ID0gKCkgPT4ge1xuICAgICAgaWYgKGlzRnVsbFNjcmVlbikge1xuICAgICAgICByZXR1cm4gYGNhbGMoMTAwZHZoIC0gJHtkZXNrdG9wVmVydGljYWxTcGFjZX0gKiAyIC0gJHtkZXNrdG9wSW5uZXJWZXJ0aWNhbFNwYWNlfSAqIDIpYDtcbiAgICAgIH1cbiAgICAgIGlmIChzaXplID09PSBcImxcIikge1xuICAgICAgICByZXR1cm4gYGNhbGMoMTAwZHZoIC0gJHtkZXNrdG9wVmVydGljYWxTcGFjZX0gKiAyIC0gJHtkZXNrdG9wSW5uZXJWZXJ0aWNhbFNwYWNlfSAqIDIgLSAke3RoZW1lLnZhcmlhYmxlcy5zaXplLmRpbWVuc2lvbi5tb2RhbC5tYXJnaW4ubH0gKiAyKWA7XG4gICAgICB9XG4gICAgICByZXR1cm4gXCJhdXRvXCI7XG4gICAgfTtcblxuICAgIGNvbnN0IGdldERlc2t0b3BNYXhIZWlnaHQgPSAoKSA9PiB7XG4gICAgICBpZiAoaXNGdWxsU2NyZWVuKSB7XG4gICAgICAgIHJldHVybiBgYXV0b2A7XG4gICAgICB9XG4gICAgICBpZiAoc2l6ZSA9PT0gXCJsXCIpIHtcbiAgICAgICAgcmV0dXJuIGBjYWxjKCR7dGhlbWUudmFyaWFibGVzLnNpemUuZGltZW5zaW9uLm1vZGFsLm1heEhlaWdodC5sfSAtICR7ZGVza3RvcElubmVyVmVydGljYWxTcGFjZX0gKiAyKWA7XG4gICAgICB9XG4gICAgICByZXR1cm4gYGNhbGMoMTAwZHZoIC0gJHtkZXNrdG9wVmVydGljYWxTcGFjZX0gKiAyIC0gJHtkZXNrdG9wSW5uZXJWZXJ0aWNhbFNwYWNlfSAqIDIpYDtcbiAgICB9O1xuXG4gICAgY29uc3QgZnVsbFNjcmVlbk1vYmlsZSA9IGBjYWxjKDEwMGR2aCAtICR7bW9iaWxlVmVydGljYWxTcGFjZX0gKiAyIC0gJHttb2JpbGVJbm5lclZlcnRpY2FsU3BhY2V9ICogMilgO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGRpc3BsYXk6IFwiZmxleFwiLFxuICAgICAgLi4udXNlUmVzcG9uc2l2ZVZhbHVlKHtcbiAgICAgICAgaGVpZ2h0OiBbXG4gICAgICAgICAgc2l6ZSA9PT0gXCJsXCIgfHwgaXNGdWxsU2NyZWVuID8gZnVsbFNjcmVlbk1vYmlsZSA6IFwiYXV0b1wiLFxuICAgICAgICAgIGdldERlc2t0b3BIZWlnaHQoKSxcbiAgICAgICAgXSxcbiAgICAgICAgbWF4SGVpZ2h0OiBbZnVsbFNjcmVlbk1vYmlsZSwgZ2V0RGVza3RvcE1heEhlaWdodCgpXSxcbiAgICAgIH0pLFxuXG4gICAgICBmbGV4RGlyZWN0aW9uOiBcImNvbHVtblwiLFxuICAgICAgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsXG4gICAgfTtcbiAgfVxuKTtcblxudHlwZSBTdHlsZWRCb2R5UHJvcHMgPSB7XG4gIGJvcmRlckJvdHRvbTogYm9vbGVhbjtcbiAgYm9yZGVyVG9wOiBib29sZWFuO1xufTtcblxuY29uc3QgU3R5bGVkQm9keSA9IHN0eWxlZC5kaXY8U3R5bGVkQm9keVByb3BzICYgUGFydGlhbDxNb2RhbFByb3BzPj4oXG4gICh7IHRoZW1lLCBib3JkZXJCb3R0b20sIGJvcmRlclRvcCwgc2l6ZSwgaXNGdWxsU2NyZWVuIH0pID0+ICh7XG4gICAgb3ZlcmZsb3dZOiBcImF1dG9cIixcbiAgICBtYXhIZWlnaHQ6IFwiMTAwJVwiLFxuXG4gICAgLi4uKChpc0Z1bGxTY3JlZW4gfHwgc2l6ZSA9PT0gXCJsXCIpICYmIHtcbiAgICAgIGZsZXg6IDEsXG4gICAgfSksXG5cbiAgICAuLi4oYm9yZGVyQm90dG9tICYmIHtcbiAgICAgIGJvcmRlckJvdHRvbTogYDFweCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5kaXZpZGVyLnByaW1hcnl9YCxcbiAgICB9KSxcbiAgICAuLi4oYm9yZGVyVG9wICYmIHtcbiAgICAgIGJvcmRlclRvcDogYDFweCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5kaXZpZGVyLnByaW1hcnl9YCxcbiAgICB9KSxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZEltZyA9IHN0eWxlZC5pbWcoKCkgPT4gKHtcbiAgd2lkdGg6IFwiMTAwJVwiLFxuICBhc3BlY3RSYXRpbzogXCIxNi85XCIsXG59KSk7XG5cbmNvbnN0IFN0eWxlZE1heFdpZHRoID0gc3R5bGVkLmRpdjxQYXJ0aWFsPE1vZGFsUHJvcHM+PigoeyB0aGVtZSB9KSA9PiAoe1xuICBtYXhXaWR0aDogdGhlbWUudmFyaWFibGVzLnNpemUuZGltZW5zaW9uLm1vZGFsLmZ1bGxTY3JlZW5Db250ZW50V2lkdGgsXG4gIG1hcmdpbjogXCIwIGF1dG9cIixcbiAgaGVpZ2h0OiBcIjEwMCVcIixcbn0pKTtcblxuY29uc3QgU3R5bGVkWENvbnRhaW5lciA9IHN0eWxlZC5kaXYoKHsgdGhlbWUgfSkgPT4gKHtcbiAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgLi4udXNlUmVzcG9uc2l2ZVZhbHVlKHtcbiAgICB0b3A6IFt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnMsIHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubF0sXG4gICAgcmlnaHQ6IFt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnMsIHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubF0sXG4gIH0pLFxufSkpO1xuXG5jb25zdCBNb2RhbFN0YWNrID0gKHsgY2hpbGRyZW4sIC4uLnJlc3QgfTogT21pdDxTdGFja1Byb3BzLCBcInNwYWNlXCI+KSA9PiAoXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC9qc3gtcHJvcHMtbm8tc3ByZWFkaW5nXG4gIDxTdGFjayB7Li4ucmVzdH0gc3BhY2U9XCJtXCI+XG4gICAge2NoaWxkcmVufVxuICA8L1N0YWNrPlxuKTtcblxuY29uc3QgTW9kYWxUZXh0ID0gKHtcbiAgY2hpbGRyZW4sXG4gIC4uLnJlc3Rcbn06IE9taXQ8VGV4dFByb3BzLCBcInNpemVcIiB8IFwidmFyaWFudFwiPikgPT4gKFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QvanN4LXByb3BzLW5vLXNwcmVhZGluZ1xuICA8VGV4dCB7Li4ucmVzdH0gc2l6ZT1cIm1cIiBjb2xvcj1cInRlcnRpYXJ5XCI+XG4gICAge2NoaWxkcmVufVxuICA8L1RleHQ+XG4pO1xuXG5jb25zdCBGb290ZXIgPSAoe1xuICBjaGlsZHJlbixcbiAgYWxpZ25JdGVtcyA9IFtcInN0cmV0Y2hcIiwgXCJyaWdodFwiXSxcbiAgaXNTaG9ydFZpZXdwb3J0LFxufToge1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlW10gfCBSZWFjdC5SZWFjdEVsZW1lbnQ7XG4gIGFsaWduSXRlbXM/OiBTdGFja1Byb3BzW1wiYWxpZ25JdGVtc1wiXTtcbiAgaXNTaG9ydFZpZXdwb3J0PzogYm9vbGVhbjtcbn0pID0+IChcbiAgPEJveCBzcGFjZT1cInplcm9cIiB0U3BhY2U9e2lzU2hvcnRWaWV3cG9ydCA/IFwibVwiIDogXCJsXCJ9PlxuICAgIDxTdGFjayBhbGlnbkl0ZW1zPXthbGlnbkl0ZW1zfT57Y2hpbGRyZW59PC9TdGFjaz5cbiAgPC9Cb3g+XG4pO1xuXG5jb25zdCBXcmFwcGVyID0gKHtcbiAgc2tpcFBvcnRhbCxcbiAgY2hpbGRyZW4sXG4gIHBvcnRhbENvbnRhaW5lcixcbiAgYmFja2Ryb3BSZWYsXG59OiB7XG4gIHNraXBQb3J0YWw6IGJvb2xlYW47XG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdEVsZW1lbnQ7XG4gIGJhY2tkcm9wUmVmOiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xufSAmIFBhcnRpYWw8TW9kYWxQcm9wcz4pOiBSZWFjdC5SZWFjdEVsZW1lbnQgPT5cbiAgc2tpcFBvcnRhbCA/IChcbiAgICA8PntjaGlsZHJlbn08Lz5cbiAgKSA6IChcbiAgICA8TW9kYWxDb250ZXh0LlByb3ZpZGVyIHZhbHVlPlxuICAgICAgPFBvcnRhbCBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn0+XG4gICAgICAgIDxTdHlsZWRCYWNrZHJvcCByZWY9e2JhY2tkcm9wUmVmfT57Y2hpbGRyZW59PC9TdHlsZWRCYWNrZHJvcD5cbiAgICAgIDwvUG9ydGFsPlxuICAgIDwvTW9kYWxDb250ZXh0LlByb3ZpZGVyPlxuICApO1xuXG50eXBlIEZvY3VzVHJhcFByb3BzID0ge1xuICBvblBvc3REZWFjdGl2YXRlOiAoKSA9PiB2b2lkO1xuICBiYWNrZHJvcFJlZjogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcbiAgbW9kYWxSZWY6IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XG59ICYgUGljazxNb2RhbFByb3BzLCBcImlzRGlzbWlzc2libGVcIiB8IFwicG9ydGFsQ29udGFpbmVyXCI+O1xuXG5mdW5jdGlvbiBGb2N1c1RyYXAoe1xuICBvblBvc3REZWFjdGl2YXRlLFxuICBpc0Rpc21pc3NpYmxlLFxuICBwb3J0YWxDb250YWluZXIsXG4gIGNoaWxkcmVuLFxuICBiYWNrZHJvcFJlZixcbiAgbW9kYWxSZWYsXG59OiBQcm9wc1dpdGhDaGlsZHJlbjxGb2N1c1RyYXBQcm9wcz4pIHtcbiAgY29uc3QgcG9ydGFsQ29udGFpbmVyRWxlbWVudCA9IHVzZVBvcnRhbENvbnRhaW5lckVsZW1lbnQocG9ydGFsQ29udGFpbmVyKTtcblxuICBjb25zdCBoYW5kbGVDbGlja091dHNpZGVEZWFjdGl2YXRlcyA9IChldnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KSA9PiB7XG4gICAgLy8gRG8gbm90IGNsb3NlIG9uIGNsaWNrIHRoYXQgb2NjdXJzIG9uIGVsZW1lbnRzIHdpdGhpbiB0aGUgc2FtZSBwb3J0YWwsIGZvciBlZywgZHJvcGRvd24gYW5kIHNlbGVjdCBtZW51c1xuICAgIGlmIChcbiAgICAgIHBvcnRhbENvbnRhaW5lckVsZW1lbnQuY29udGFpbnMoZXZ0LnRhcmdldCBhcyBIVE1MRWxlbWVudCkgJiZcbiAgICAgIGV2dC50YXJnZXQgIT09IGJhY2tkcm9wUmVmLmN1cnJlbnRcbiAgICApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIGlzRGlzbWlzc2libGU7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8Rm9jdXNUcmFwV3JhcHBlclxuICAgICAgYWN0aXZlXG4gICAgICBmb2N1c1RyYXBPcHRpb25zPXt7XG4gICAgICAgIGNsaWNrT3V0c2lkZURlYWN0aXZhdGVzOiBoYW5kbGVDbGlja091dHNpZGVEZWFjdGl2YXRlcyxcbiAgICAgICAgZXNjYXBlRGVhY3RpdmF0ZXM6IGlzRGlzbWlzc2libGUsIC8vIGRlLWFjdGl2YXRlIGZvY3VzIHRyYXAgb24gZXNjYXBlIGtleVxuICAgICAgICBwcmV2ZW50U2Nyb2xsOiB0cnVlLFxuICAgICAgICBmYWxsYmFja0ZvY3VzOiBtb2RhbFJlZi5jdXJyZW50LFxuICAgICAgICBvblBvc3REZWFjdGl2YXRlLFxuICAgICAgfX1cbiAgICA+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9Gb2N1c1RyYXBXcmFwcGVyPlxuICApO1xufVxuXG5jb25zdCBIb3Jpem9udGFsT2Zmc2V0ID0gKHtcbiAgY2hpbGRyZW4sXG4gIGlzRnVsbFNjcmVlbixcbiAgaXNNYXhXaWR0aExpbWl0LFxuICBoZWlnaHQsXG59OiBQYXJ0aWFsPE1vZGFsUHJvcHM+ICYgeyBoZWlnaHQ/OiBzdHJpbmcgfSkgPT4gKFxuICA8Qm94IHNwYWNlPXtbbW9iaWxlU2l6ZSwgZGVza3RvcFNpemVdfSB2U3BhY2U9XCJ6ZXJvXCIgaGVpZ2h0PXtoZWlnaHR9PlxuICAgIHtpc0Z1bGxTY3JlZW4gJiYgaXNNYXhXaWR0aExpbWl0ID8gKFxuICAgICAgPFN0eWxlZE1heFdpZHRoPntjaGlsZHJlbn08L1N0eWxlZE1heFdpZHRoPlxuICAgICkgOiAoXG4gICAgICBjaGlsZHJlblxuICAgICl9XG4gIDwvQm94PlxuKTtcblxuZnVuY3Rpb24gZ2V0SXNTaG9ydFZpZXdwb3J0KHdpbmRvdzogV2luZG93KTogYm9vbGVhbiB7XG4gIHJldHVybiAoXG4gICAgdHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIiAmJiB3aW5kb3cuaW5uZXJIZWlnaHQgPCBNSU5fVklFV1BPUlRfSEVJR0hUXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBNb2RhbCh7XG4gIGhlYWRlcixcbiAgc3ViSGVhZGVyLFxuICBsYWJlbEhlYWRlcixcbiAgY2hpbGRyZW4sXG4gIGltYWdlVXJsLFxuICBJbWFnZUNvbXBvbmVudCxcbiAgc2Vjb25kYXJ5QnV0dG9uLFxuICBjYW5jZWxCdXR0b25MYWJlbCxcbiAgaXNEaXNtaXNzaWJsZSA9IHRydWUsXG4gIGlzRnVsbFNjcmVlbixcbiAgaXNNYXhXaWR0aExpbWl0ID0gdHJ1ZSxcbiAgYWN0aW9uQnV0dG9uLFxuICByb2xlID0gXCJkaWFsb2dcIixcbiAgb25BY3Rpb24sXG4gIHNpemUgPSBcIm1cIixcbiAgcHJpdmF0ZVByb3BzOiB7IHNraXBQb3J0YWwgfSA9IHsgc2tpcFBvcnRhbDogZmFsc2UgfSxcbiAgcG9ydGFsQ29udGFpbmVyLFxuICBjbG9zZUJ1dHRvbkFyaWFMYWJlbCA9IFwiRGlzbWlzcyBEaWFsb2dcIixcbiAgXCJhcmlhLWxhYmVsXCI6IGFyaWFMYWJlbCxcbiAgXCJhcmlhLWRlc2NyaWJlZGJ5XCI6IGFyaWFEZXNjcmliZWRCeSxcbiAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG4gIGltYWdlQWx0LFxufTogTW9kYWxQcm9wcyk6IFJlYWN0LlJlYWN0RWxlbWVudCB7XG4gIGNvbnN0IG1vZGFsUmVmID0gdXNlUmVmKG51bGwpO1xuICBjb25zdCBiYWNrZHJvcFJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3Qgc3ViSGVhZGVySWQgPSB1c2VJZCgpO1xuICBjb25zdCB3aW5kb3cgPSB1c2VXaW5kb3coKTtcbiAgY29uc3QgeyBzY3JvbGxhYmxlUmVmLCBpc1Njcm9sbEJvdHRvbSwgaXNTY3JvbGxUb3AsIGhhc1Njcm9sbCB9ID1cbiAgICB1c2VTY3JvbGxEZXRlY3Rpb24oKTtcbiAgY29uc3QgW2lzU2hvcnRWaWV3cG9ydCwgc2V0SXNTaG9ydFZpZXdwb3J0XSA9IHVzZVN0YXRlKFxuICAgIGdldElzU2hvcnRWaWV3cG9ydCh3aW5kb3cpXG4gICk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBsZXQgcmVzaXplT2JzZXJ2ZXI6IFJlc2l6ZU9ic2VydmVyO1xuXG4gICAgaWYgKHR5cGVvZiBSZXNpemVPYnNlcnZlciAhPT0gXCJ1bmRlZmluZWRcIiAmJiBiYWNrZHJvcFJlZi5jdXJyZW50KSB7XG4gICAgICByZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB7XG4gICAgICAgIHNldElzU2hvcnRWaWV3cG9ydChnZXRJc1Nob3J0Vmlld3BvcnQod2luZG93KSk7XG4gICAgICB9KTtcblxuICAgICAgcmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShiYWNrZHJvcFJlZi5jdXJyZW50KTtcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKHJlc2l6ZU9ic2VydmVyKSB7XG4gICAgICAgIHJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgIH1cbiAgICB9O1xuICB9LCBbYmFja2Ryb3BSZWYsIHdpbmRvd10pO1xuXG4gIGNvbnN0IGhhbmRsZUNsb3NlID0gKCkgPT4ge1xuICAgIG9uQWN0aW9uKFwiY2FuY2VsXCIpO1xuICB9O1xuXG4gIGNvbnN0IGhhc0ltYWdlID0gaW1hZ2VVcmwgfHwgSW1hZ2VDb21wb25lbnQ7XG4gIGNvbnN0IEhlYWRpbmdDb21wb25lbnQgPSBpc1Nob3J0Vmlld3BvcnQgPyBIMyA6IEgyO1xuICBjb25zdCBpc0ltYWdlVmlzaWJsZSA9ICFpc1Nob3J0Vmlld3BvcnQgJiYgISFoYXNJbWFnZTtcbiAgY29uc3QgaG9yaXpvbnRhbE9mZnNldFByb3BzID0geyBpc0Z1bGxTY3JlZW4sIGlzTWF4V2lkdGhMaW1pdCB9O1xuXG4gIGNvbnN0IGNsb3NlQnV0dG9uID0gaXNEaXNtaXNzaWJsZSAmJiAoXG4gICAgPFN0eWxlZFhDb250YWluZXI+XG4gICAgICA8UGljdG9ncmFtQnV0dG9uXG4gICAgICAgIHZhcmlhbnQ9XCJ0ZXJ0aWFyeVwiXG4gICAgICAgIGljb249XCJ4XCJcbiAgICAgICAgc2l6ZT1cInNcIlxuICAgICAgICBvbkNsaWNrPXtoYW5kbGVDbG9zZX1cbiAgICAgICAgYXJpYS1sYWJlbD17Y2xvc2VCdXR0b25BcmlhTGFiZWx9XG4gICAgICAvPlxuICAgIDwvU3R5bGVkWENvbnRhaW5lcj5cbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxXcmFwcGVyXG4gICAgICBza2lwUG9ydGFsPXtza2lwUG9ydGFsfVxuICAgICAgcG9ydGFsQ29udGFpbmVyPXtwb3J0YWxDb250YWluZXJ9XG4gICAgICBiYWNrZHJvcFJlZj17YmFja2Ryb3BSZWZ9XG4gICAgPlxuICAgICAgPEZvY3VzVHJhcFxuICAgICAgICBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn1cbiAgICAgICAgaXNEaXNtaXNzaWJsZT17aXNEaXNtaXNzaWJsZX1cbiAgICAgICAgb25Qb3N0RGVhY3RpdmF0ZT17aGFuZGxlQ2xvc2V9XG4gICAgICAgIGJhY2tkcm9wUmVmPXtiYWNrZHJvcFJlZn1cbiAgICAgICAgbW9kYWxSZWY9e21vZGFsUmVmfVxuICAgICAgPlxuICAgICAgICA8U3R5bGVkTW9kYWxXcmFwcGVyXG4gICAgICAgICAgcmVmPXttb2RhbFJlZn1cbiAgICAgICAgICByb2xlPXtyb2xlfVxuICAgICAgICAgIGRhdGEtZTJlLXRlc3QtaWQ9e2RhdGFFMmVUZXN0SWR9XG4gICAgICAgICAgZGF0YS1kcy1pZD1cIk1vZGFsXCJcbiAgICAgICAgICBpc0Z1bGxTY3JlZW49e2lzRnVsbFNjcmVlbn1cbiAgICAgICAgICBzaXplPXtzaXplfVxuICAgICAgICAgIGFyaWEtbGFiZWw9e2FyaWFMYWJlbCB8fCBoZWFkZXJ9XG4gICAgICAgICAgYXJpYS1kZXNjcmliZWRieT17XG4gICAgICAgICAgICBzdWJIZWFkZXIgPyBhcHBlbmRJZChhcmlhRGVzY3JpYmVkQnksIHN1YkhlYWRlcklkKSA6IGFyaWFEZXNjcmliZWRCeVxuICAgICAgICAgIH1cbiAgICAgICAgPlxuICAgICAgICAgIDxDb250YWluZXIgZWxldmF0aW9uPXs0fT5cbiAgICAgICAgICAgIDxCb3ggc3BhY2U9XCJ6ZXJvXCIgdlNwYWNlPXtbbW9iaWxlU2l6ZSwgZGVza3RvcFNpemVdfT5cbiAgICAgICAgICAgICAgPFN0eWxlZElubmVyIGlzRnVsbFNjcmVlbj17aXNGdWxsU2NyZWVufSBzaXplPXtzaXplfT5cbiAgICAgICAgICAgICAgICA8SG9yaXpvbnRhbE9mZnNldCB7Li4uaG9yaXpvbnRhbE9mZnNldFByb3BzfT5cbiAgICAgICAgICAgICAgICAgIDxCb3ggc3BhY2U9XCJ6ZXJvXCIgYlNwYWNlPVwic1wiPlxuICAgICAgICAgICAgICAgICAgICA8U3RhY2sgc3BhY2U9e2lzSW1hZ2VWaXNpYmxlID8gW1wic1wiLCBcImxcIl0gOiBcInplcm9cIn0+XG4gICAgICAgICAgICAgICAgICAgICAge2lzSW1hZ2VWaXNpYmxlICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAoaW1hZ2VVcmwgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxCb3ggc3BhY2U9XCJ6ZXJvXCIgdFNwYWNlPXtbXCJ4bFwiLCBcImxcIl19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRJbWcgc3JjPXtpbWFnZVVybH0gYWx0PXtpbWFnZUFsdH0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8SW1hZ2VDb21wb25lbnQgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICAgIDxJbmxpbmUgYWxpZ25JdGVtcz1cInNwYWNlQmV0d2VlblwiIG5vV3JhcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxTdGFjayBzcGFjZT1cInh4c1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7bGFiZWxIZWFkZXIgJiYgPEg2IGFzPVwiZGl2XCI+e2xhYmVsSGVhZGVyfTwvSDY+fVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8U3RhY2sgc3BhY2U9XCJ6ZXJvXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhlYWRpbmdDb21wb25lbnQgYXM9XCJoMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2hlYWRlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0hlYWRpbmdDb21wb25lbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3N1YkhlYWRlciAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SDQgYXM9XCJoMlwiIGNvbG9yPVwidGVydGlhcnlcIiBpZD17c3ViSGVhZGVySWR9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7c3ViSGVhZGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9IND5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtjbG9zZUJ1dHRvbn1cbiAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZT5cbiAgICAgICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgIDwvSG9yaXpvbnRhbE9mZnNldD5cblxuICAgICAgICAgICAgICAgIDxTdHlsZWRCb2R5XG4gICAgICAgICAgICAgICAgICByZWY9e3Njcm9sbGFibGVSZWZ9XG4gICAgICAgICAgICAgICAgICBzaXplPXtzaXplfVxuICAgICAgICAgICAgICAgICAgaXNGdWxsU2NyZWVuPXtpc0Z1bGxTY3JlZW59XG4gICAgICAgICAgICAgICAgICBib3JkZXJCb3R0b209e2hhc1Njcm9sbCAmJiAhaXNTY3JvbGxCb3R0b219XG4gICAgICAgICAgICAgICAgICBib3JkZXJUb3A9e2hhc1Njcm9sbCAmJiAhaXNTY3JvbGxUb3B9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPEJveCBzcGFjZT1cInplcm9cIiB2U3BhY2U9XCJ4eHhzXCIgaGVpZ2h0PVwiMTAwJVwiPlxuICAgICAgICAgICAgICAgICAgICA8SG9yaXpvbnRhbE9mZnNldCB7Li4uaG9yaXpvbnRhbE9mZnNldFByb3BzfSBoZWlnaHQ9XCIxMDAlXCI+XG4gICAgICAgICAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgICAgICAgICA8L0hvcml6b250YWxPZmZzZXQ+XG4gICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICA8L1N0eWxlZEJvZHk+XG5cbiAgICAgICAgICAgICAgICB7KGFjdGlvbkJ1dHRvbiB8fCBjYW5jZWxCdXR0b25MYWJlbCB8fCBzZWNvbmRhcnlCdXR0b24pICYmIChcbiAgICAgICAgICAgICAgICAgIDxIb3Jpem9udGFsT2Zmc2V0IHsuLi5ob3Jpem9udGFsT2Zmc2V0UHJvcHN9PlxuICAgICAgICAgICAgICAgICAgICA8Rm9vdGVyIGlzU2hvcnRWaWV3cG9ydD17aXNTaG9ydFZpZXdwb3J0fT5cbiAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uR3JvdXBcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbkJ1dHRvbj17YWN0aW9uQnV0dG9ufVxuICAgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kYXJ5QnV0dG9uPXtzZWNvbmRhcnlCdXR0b259XG4gICAgICAgICAgICAgICAgICAgICAgICBjYW5jZWxCdXR0b25UZXh0PXtjYW5jZWxCdXR0b25MYWJlbH1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQnV0dG9uQ2xpY2s9e29uQWN0aW9ufVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvRm9vdGVyPlxuICAgICAgICAgICAgICAgICAgPC9Ib3Jpem9udGFsT2Zmc2V0PlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvU3R5bGVkSW5uZXI+XG4gICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgPC9TdHlsZWRNb2RhbFdyYXBwZXI+XG4gICAgICA8L0ZvY3VzVHJhcD5cbiAgICA8L1dyYXBwZXI+XG4gICk7XG59XG5cbk1vZGFsLlN0YWNrID0gTW9kYWxTdGFjaztcbk1vZGFsLlRleHQgPSBNb2RhbFRleHQ7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBaUpvQiJ9 */"),StyledBody=(0,_styled.default)("div",{target:"elkk7m13",label:"StyledBody"})(({theme,borderBottom,borderTop,size,isFullScreen})=>({overflowY:"auto",maxHeight:"100%",...(isFullScreen||"l"===size)&&{flex:1},...borderBottom&&{borderBottom:`1px solid ${theme.values.color.divider.primary}`},...borderTop&&{borderTop:`1px solid ${theme.values.color.divider.primary}`}}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUGF0dGVybnMvTW9kYWwvTW9kYWwudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9QYXR0ZXJucy9Nb2RhbC9Nb2RhbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgcmVhY3QvanN4LXByb3BzLW5vLXNwcmVhZGluZyAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVhY3QvanN4LW5vLXVzZWxlc3MtZnJhZ21lbnQgKi9cbmltcG9ydCB0eXBlIHsgUmVmT2JqZWN0LCBQcm9wc1dpdGhDaGlsZHJlbiB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFJlYWN0LCB7IHVzZU1lbW8sIHVzZVJlZiwgdXNlSWQsIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHR5cGUgeyBUaGVtZSB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHsga2V5ZnJhbWVzIH0gZnJvbSBcIkBlbW90aW9uL3JlYWN0XCI7XG5pbXBvcnQgdHlwZSB7IFBvcnRhbFByb3BzIH0gZnJvbSBcIi4uLy4uL1BvcnRhbC9Qb3J0YWxcIjtcbmltcG9ydCB7IFBvcnRhbCwgdXNlUG9ydGFsQ29udGFpbmVyRWxlbWVudCB9IGZyb20gXCIuLi8uLi9Qb3J0YWwvUG9ydGFsXCI7XG5pbXBvcnQgeyBIMiwgSDQsIEg2LCBIMyB9IGZyb20gXCIuLi8uLi9UeXBvZ3JhcGh5L0hlYWRlci9IZWFkZXJcIjtcbmltcG9ydCB0eXBlIHsgU3RhY2tQcm9wcyB9IGZyb20gXCIuLi8uLi9TdGFjay9TdGFja1wiO1xuaW1wb3J0IHsgU3RhY2sgfSBmcm9tIFwiLi4vLi4vU3RhY2svU3RhY2tcIjtcbmltcG9ydCB7IENvbnRhaW5lciB9IGZyb20gXCIuLi8uLi9Db250YWluZXIvQ29udGFpbmVyXCI7XG5pbXBvcnQgeyBCb3ggfSBmcm9tIFwiLi4vLi4vQm94L0JveFwiO1xuXG5pbXBvcnQgeyBJbmxpbmUgfSBmcm9tIFwiLi4vLi4vSW5saW5lL0lubGluZVwiO1xuaW1wb3J0IHR5cGUgeyBCdXR0b25Hcm91cEJ1dHRvblByb3BzIH0gZnJvbSBcIi4uL0J1dHRvbkdyb3VwL0J1dHRvbkdyb3VwXCI7XG5pbXBvcnQgeyBCdXR0b25Hcm91cCB9IGZyb20gXCIuLi9CdXR0b25Hcm91cC9CdXR0b25Hcm91cFwiO1xuaW1wb3J0IHsgUGljdG9ncmFtQnV0dG9uIH0gZnJvbSBcIi4uLy4uL1BpY3RvZ3JhbUJ1dHRvbi9QaWN0b2dyYW1CdXR0b25cIjtcbmltcG9ydCB0eXBlIHsgVGV4dFByb3BzIH0gZnJvbSBcIi4uLy4uL1R5cG9ncmFwaHkvVGV4dC9UZXh0XCI7XG5pbXBvcnQgeyBUZXh0IH0gZnJvbSBcIi4uLy4uL1R5cG9ncmFwaHkvVGV4dC9UZXh0XCI7XG5pbXBvcnQgeyB1c2VSZXNwb25zaXZlVmFsdWUgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL21lZGlhUXVlcmllc1wiO1xuaW1wb3J0IHsgdXNlU2Nyb2xsRGV0ZWN0aW9uIH0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZC91c2VTY3JvbGxEZXRlY3Rpb25cIjtcbmltcG9ydCB7IE1vZGFsQ29udGV4dCB9IGZyb20gXCIuL01vZGFsQ29udGV4dFwiO1xuaW1wb3J0IHsgRm9jdXNUcmFwV3JhcHBlciB9IGZyb20gXCIuLi8uLi8uLi9zaGFyZWQvRm9jdXNUcmFwV3JhcHBlclwiO1xuaW1wb3J0IHsgYXBwZW5kSWQgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL2FwcGVuZElkXCI7XG5pbXBvcnQgeyB1c2VXaW5kb3cgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL3VzZVdpbmRvd1wiO1xuXG50eXBlIEJhc2VQcm9wcyA9IHtcbiAgaGVhZGVyPzogc3RyaW5nO1xuICBvbkFjdGlvbj86IChhY3Rpb246IFwiY2FuY2VsXCIgfCBcImFjdGlvblwiKSA9PiB2b2lkO1xuICByb2xlPzogXCJkaWFsb2dcIiB8IFwiYWxlcnRkaWFsb2dcIjtcbiAgbGFiZWxIZWFkZXI/OiBzdHJpbmc7XG4gIC8qKiBUaGUgYmxhY2sgY29sb3IgaXMgZ29pbmcgdG8gYmUgcmVwbGFjZWQgd2l0aCBncmF5IG9uZSAqL1xuICBzdWJIZWFkZXI/OiBzdHJpbmc7XG4gIC8qKiBUZXh0IGFuZCBvdGhlciBwcm9wcyBmb3IgYWN0aW9uIEJ1dHRvbiAqL1xuICBhY3Rpb25CdXR0b24/OiBCdXR0b25Hcm91cEJ1dHRvblByb3BzO1xuICAvKiogVGV4dCBhbmQgb3RoZXIgcHJvcHMgZm9yIGFjdGlvbiBCdXR0b24gKi9cbiAgc2Vjb25kYXJ5QnV0dG9uPzogQnV0dG9uR3JvdXBCdXR0b25Qcm9wcztcbiAgLyoqIEBkZXByZWNhdGVkIFVzZSBzZWNvbmRhcnlCdXR0b24gdG8gcGFzcyBpbiB0ZXh0IGFuZCBvdGhlciBwcm9wcyBmb3Igc2Vjb25kYXJ5IGJ1dHRvbiAqL1xuICBjYW5jZWxCdXR0b25MYWJlbD86IHN0cmluZztcbiAgLyoqIEFpbSB0byB1c2UgPE1vZGFsLlRleHQ+IGFuZCA8TW9kYWwuU3RhY2s+ICovXG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuICBcImRhdGEtZTJlLXRlc3QtaWRcIj86IHN0cmluZztcbiAgcHJpdmF0ZVByb3BzPzogeyBza2lwUG9ydGFsPzogYm9vbGVhbiB9O1xuICAvKiogSXQncyBhIGJhZCBwYXR0ZXJuIHRvIHVzZSBub24tZGlzbWlzc2libGUgTW9kYWwgKi9cbiAgaXNEaXNtaXNzaWJsZT86IGJvb2xlYW47XG4gIGlzRnVsbFNjcmVlbj86IGJvb2xlYW47XG4gIGlzTWF4V2lkdGhMaW1pdD86IGJvb2xlYW47XG4gIHNpemU/OiBcIm1cIiB8IFwibFwiO1xuICBjbG9zZUJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgXCJhcmlhLWxhYmVsXCI/OiBzdHJpbmc7XG4gIFwiYXJpYS1kZXNjcmliZWRieVwiPzogc3RyaW5nO1xuICAvKiogQWx0IHRleHQgZm9yIHRoZSBtb2RhbCBpbWFnZSAqL1xufTtcblxudHlwZSBDb25kaXRpb25hbFByb3BzID1cbiAgfCB7XG4gICAgICAvKiogQXNwZWN0IHJhdGlvIDE2OjkgKi9cbiAgICAgIGltYWdlVXJsPzogc3RyaW5nO1xuICAgICAgaW1hZ2VBbHQ/OiBzdHJpbmc7XG4gICAgICBJbWFnZUNvbXBvbmVudD86IG5ldmVyO1xuICAgIH1cbiAgfCB7XG4gICAgICBpbWFnZVVybD86IG5ldmVyO1xuICAgICAgaW1hZ2VBbHQ/OiBuZXZlcjtcbiAgICAgIC8qKiBBY2NlcHQgcmF0aW8gMTY6OSAqL1xuICAgICAgSW1hZ2VDb21wb25lbnQ/OiBSZWFjdC5FbGVtZW50VHlwZTxhbnk+O1xuICAgIH07XG5cbmV4cG9ydCB0eXBlIE1vZGFsUHJvcHMgPSBCYXNlUHJvcHMgJlxuICBDb25kaXRpb25hbFByb3BzICZcbiAgUGljazxQb3J0YWxQcm9wcywgXCJwb3J0YWxDb250YWluZXJcIj47XG5cbmV4cG9ydCBjb25zdCBTdHlsZWRCYWNrZHJvcCA9IHN0eWxlZC5kaXY8UGFydGlhbDxCYXNlUHJvcHM+PigoeyB0aGVtZSB9KSA9PiB7XG4gIGNvbnN0IGZhZGVJbkJhY2tkcm9wID0gdXNlTWVtbyhcbiAgICAoKSA9PlxuICAgICAga2V5ZnJhbWVzYFxuICAgICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6ICR7dGhlbWUudmFyaWFibGVzLm9wYWNpdHkuaGlkZGVufTtcbiAgICAgIH1cbiAgICAgIHRvIHtcbiAgICAgICAgb3BhY2l0eTogJHt0aGVtZS52YXJpYWJsZXMub3BhY2l0eS52aXNpYmxlfTtcbiAgICAgIH1cbiAgICBgLFxuICAgIFt0aGVtZS52YXJpYWJsZXMub3BhY2l0eS5oaWRkZW4sIHRoZW1lLnZhcmlhYmxlcy5vcGFjaXR5LnZpc2libGVdXG4gICk7XG4gIHJldHVybiB7XG4gICAgcG9zaXRpb246IFwiZml4ZWRcIixcbiAgICB0b3A6IDAsXG4gICAgbGVmdDogMCxcbiAgICB6SW5kZXg6IHRoZW1lLnZhcmlhYmxlcy56SW5kZXgubW9kYWwsXG4gICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgIGhlaWdodDogXCIxMDBkdmhcIixcbiAgICBiYWNrZ3JvdW5kOiB0aGVtZS52YWx1ZXMuY29sb3IuYmFja2dyb3VuZC5iYWNrZHJvcC5kZWZhdWx0LFxuICAgIGRpc3BsYXk6IFwiZmxleFwiLFxuICAgIGZsZXhEaXJlY3Rpb246IFwiY29sdW1uXCIsXG4gICAganVzdGlmeUNvbnRlbnQ6IFwiY2VudGVyXCIsXG4gICAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbiAgICBmbGV4OiBcIjEgMCBhdXRvXCIsXG4gICAgYW5pbWF0aW9uOiBgJHtmYWRlSW5CYWNrZHJvcH0gJHt0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLm1vZGFsQmFja2Ryb3Aub3Blbi5kdXJhdGlvbn0gJHt0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLm1vZGFsQmFja2Ryb3Aub3Blbi50aW1pbmdGdW5jdGlvbn0gYm90aGAsXG4gIH07XG59KTtcblxuY29uc3QgbW9iaWxlU2l6ZSA9IFwibVwiO1xuY29uc3QgZGVza3RvcFNpemUgPSBcInhsXCI7XG5jb25zdCBnZXREZXNrdG9wU3BhY2UgPSAodGhlbWU6IFRoZW1lKSA9PiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLmw7XG5jb25zdCBnZXREZXNrdG9wSW5uZXJTcGFjZSA9ICh0aGVtZTogVGhlbWUpID0+XG4gIHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmdbZGVza3RvcFNpemVdO1xuY29uc3QgZ2V0TW9iaWxlU3BhY2UgPSAodGhlbWU6IFRoZW1lKSA9PiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLm07XG5jb25zdCBnZXRNb2JpbGVJbm5lclNwYWNlID0gKHRoZW1lOiBUaGVtZSkgPT5cbiAgdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZ1ttb2JpbGVTaXplXTtcbi8vIE1pbmltdW0gdmlld3BvcnQgaGVpZ2h0IG9uIHdoaWNoIGltYWdlIGlzIHNob3duLlxuY29uc3QgTUlOX1ZJRVdQT1JUX0hFSUdIVCA9IDQyMDtcblxuY29uc3QgU3R5bGVkTW9kYWxXcmFwcGVyID0gc3R5bGVkLmRpdjxQYXJ0aWFsPE1vZGFsUHJvcHM+PihcbiAgKHsgdGhlbWUsIGlzRnVsbFNjcmVlbiwgc2l6ZSB9KSA9PiB7XG4gICAgY29uc3QgZmFkZUluTW9kYWwgPSB1c2VNZW1vKFxuICAgICAgKCkgPT5cbiAgICAgICAga2V5ZnJhbWVzYFxuICAgICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6ICR7dGhlbWUudmFyaWFibGVzLm9wYWNpdHkuaGlkZGVufTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwcHgpO1xuICAgICAgfVxuICAgICAgdG8ge1xuICAgICAgICAgIG9wYWNpdHk6ICR7dGhlbWUudmFyaWFibGVzLm9wYWNpdHkudmlzaWJsZX07XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICAgIH1cbiAgICBgLFxuICAgICAgW3RoZW1lLnZhcmlhYmxlcy5vcGFjaXR5LmhpZGRlbiwgdGhlbWUudmFyaWFibGVzLm9wYWNpdHkudmlzaWJsZV1cbiAgICApO1xuICAgIHJldHVybiB7XG4gICAgICBhbmltYXRpb246IGAke2ZhZGVJbk1vZGFsfSAke3RoZW1lLnZhcmlhYmxlcy5hbmltYXRpb24ubW9kYWwub3Blbi5kdXJhdGlvbn0gJHt0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLm1vZGFsLm9wZW4uZGVsYXl9ICR7dGhlbWUudmFyaWFibGVzLmFuaW1hdGlvbi5tb2RhbC5vcGVuLnRpbWluZ0Z1bmN0aW9ufSBib3RoYCxcbiAgICAgIC4uLnVzZVJlc3BvbnNpdmVWYWx1ZSh7XG4gICAgICAgIHdpZHRoOiBbXG4gICAgICAgICAgYGNhbGMoMTAwJSAtICR7Z2V0TW9iaWxlU3BhY2UodGhlbWUpfSAqIDIpYCxcbiAgICAgICAgICBpc0Z1bGxTY3JlZW5cbiAgICAgICAgICAgID8gYGNhbGMoMTAwJSAtICR7Z2V0RGVza3RvcFNwYWNlKHRoZW1lKX0gKiAyKWBcbiAgICAgICAgICAgIDogdGhlbWUudmFyaWFibGVzLnNpemUuZGltZW5zaW9uLm1vZGFsLndpZHRoW3NpemVdLFxuICAgICAgICBdLFxuICAgICAgfSksXG4gICAgfTtcbiAgfVxuKTtcblxuY29uc3QgU3R5bGVkSW5uZXIgPSBzdHlsZWQuZGl2PFBhcnRpYWw8TW9kYWxQcm9wcz4+KFxuICAoeyB0aGVtZSwgaXNGdWxsU2NyZWVuLCBzaXplIH0pID0+IHtcbiAgICBjb25zdCBtb2JpbGVWZXJ0aWNhbFNwYWNlID0gZ2V0TW9iaWxlU3BhY2UodGhlbWUpO1xuICAgIGNvbnN0IG1vYmlsZUlubmVyVmVydGljYWxTcGFjZSA9IGdldE1vYmlsZUlubmVyU3BhY2UodGhlbWUpO1xuICAgIGNvbnN0IGRlc2t0b3BWZXJ0aWNhbFNwYWNlID0gZ2V0RGVza3RvcFNwYWNlKHRoZW1lKTtcbiAgICBjb25zdCBkZXNrdG9wSW5uZXJWZXJ0aWNhbFNwYWNlID0gZ2V0RGVza3RvcElubmVyU3BhY2UodGhlbWUpO1xuXG4gICAgLy8gZnVsbHNjcmVlbiBhbmQgTCBzaXplIGRvbid0IGRlcGVuZCBvbiBjb250ZW50IHNpemVcbiAgICAvLyBMIHNpemUgaGVpZ2h0IGhhcyBtYXhIaWVnaHQgcmVzaXplIHVudGlsIDgwMHB4XG4gICAgLy8gZnVsbHNjcmVlbiBtYXhIZWlnaHQgaXMgbm90IGxpbWl0ZWRcbiAgICAvLyBNIHNpemUgaGVpZ2h0IGhhcyBjb250ZW50IHNpemUgYW5kIGNlbnRlcmVkIGF0IHRvcCBhbmQgbWF4SGVpZ2h0IGlzIG5vdCBsaW1pdGVkXG5cbiAgICBjb25zdCBnZXREZXNrdG9wSGVpZ2h0ID0gKCkgPT4ge1xuICAgICAgaWYgKGlzRnVsbFNjcmVlbikge1xuICAgICAgICByZXR1cm4gYGNhbGMoMTAwZHZoIC0gJHtkZXNrdG9wVmVydGljYWxTcGFjZX0gKiAyIC0gJHtkZXNrdG9wSW5uZXJWZXJ0aWNhbFNwYWNlfSAqIDIpYDtcbiAgICAgIH1cbiAgICAgIGlmIChzaXplID09PSBcImxcIikge1xuICAgICAgICByZXR1cm4gYGNhbGMoMTAwZHZoIC0gJHtkZXNrdG9wVmVydGljYWxTcGFjZX0gKiAyIC0gJHtkZXNrdG9wSW5uZXJWZXJ0aWNhbFNwYWNlfSAqIDIgLSAke3RoZW1lLnZhcmlhYmxlcy5zaXplLmRpbWVuc2lvbi5tb2RhbC5tYXJnaW4ubH0gKiAyKWA7XG4gICAgICB9XG4gICAgICByZXR1cm4gXCJhdXRvXCI7XG4gICAgfTtcblxuICAgIGNvbnN0IGdldERlc2t0b3BNYXhIZWlnaHQgPSAoKSA9PiB7XG4gICAgICBpZiAoaXNGdWxsU2NyZWVuKSB7XG4gICAgICAgIHJldHVybiBgYXV0b2A7XG4gICAgICB9XG4gICAgICBpZiAoc2l6ZSA9PT0gXCJsXCIpIHtcbiAgICAgICAgcmV0dXJuIGBjYWxjKCR7dGhlbWUudmFyaWFibGVzLnNpemUuZGltZW5zaW9uLm1vZGFsLm1heEhlaWdodC5sfSAtICR7ZGVza3RvcElubmVyVmVydGljYWxTcGFjZX0gKiAyKWA7XG4gICAgICB9XG4gICAgICByZXR1cm4gYGNhbGMoMTAwZHZoIC0gJHtkZXNrdG9wVmVydGljYWxTcGFjZX0gKiAyIC0gJHtkZXNrdG9wSW5uZXJWZXJ0aWNhbFNwYWNlfSAqIDIpYDtcbiAgICB9O1xuXG4gICAgY29uc3QgZnVsbFNjcmVlbk1vYmlsZSA9IGBjYWxjKDEwMGR2aCAtICR7bW9iaWxlVmVydGljYWxTcGFjZX0gKiAyIC0gJHttb2JpbGVJbm5lclZlcnRpY2FsU3BhY2V9ICogMilgO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGRpc3BsYXk6IFwiZmxleFwiLFxuICAgICAgLi4udXNlUmVzcG9uc2l2ZVZhbHVlKHtcbiAgICAgICAgaGVpZ2h0OiBbXG4gICAgICAgICAgc2l6ZSA9PT0gXCJsXCIgfHwgaXNGdWxsU2NyZWVuID8gZnVsbFNjcmVlbk1vYmlsZSA6IFwiYXV0b1wiLFxuICAgICAgICAgIGdldERlc2t0b3BIZWlnaHQoKSxcbiAgICAgICAgXSxcbiAgICAgICAgbWF4SGVpZ2h0OiBbZnVsbFNjcmVlbk1vYmlsZSwgZ2V0RGVza3RvcE1heEhlaWdodCgpXSxcbiAgICAgIH0pLFxuXG4gICAgICBmbGV4RGlyZWN0aW9uOiBcImNvbHVtblwiLFxuICAgICAgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsXG4gICAgfTtcbiAgfVxuKTtcblxudHlwZSBTdHlsZWRCb2R5UHJvcHMgPSB7XG4gIGJvcmRlckJvdHRvbTogYm9vbGVhbjtcbiAgYm9yZGVyVG9wOiBib29sZWFuO1xufTtcblxuY29uc3QgU3R5bGVkQm9keSA9IHN0eWxlZC5kaXY8U3R5bGVkQm9keVByb3BzICYgUGFydGlhbDxNb2RhbFByb3BzPj4oXG4gICh7IHRoZW1lLCBib3JkZXJCb3R0b20sIGJvcmRlclRvcCwgc2l6ZSwgaXNGdWxsU2NyZWVuIH0pID0+ICh7XG4gICAgb3ZlcmZsb3dZOiBcImF1dG9cIixcbiAgICBtYXhIZWlnaHQ6IFwiMTAwJVwiLFxuXG4gICAgLi4uKChpc0Z1bGxTY3JlZW4gfHwgc2l6ZSA9PT0gXCJsXCIpICYmIHtcbiAgICAgIGZsZXg6IDEsXG4gICAgfSksXG5cbiAgICAuLi4oYm9yZGVyQm90dG9tICYmIHtcbiAgICAgIGJvcmRlckJvdHRvbTogYDFweCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5kaXZpZGVyLnByaW1hcnl9YCxcbiAgICB9KSxcbiAgICAuLi4oYm9yZGVyVG9wICYmIHtcbiAgICAgIGJvcmRlclRvcDogYDFweCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5kaXZpZGVyLnByaW1hcnl9YCxcbiAgICB9KSxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZEltZyA9IHN0eWxlZC5pbWcoKCkgPT4gKHtcbiAgd2lkdGg6IFwiMTAwJVwiLFxuICBhc3BlY3RSYXRpbzogXCIxNi85XCIsXG59KSk7XG5cbmNvbnN0IFN0eWxlZE1heFdpZHRoID0gc3R5bGVkLmRpdjxQYXJ0aWFsPE1vZGFsUHJvcHM+PigoeyB0aGVtZSB9KSA9PiAoe1xuICBtYXhXaWR0aDogdGhlbWUudmFyaWFibGVzLnNpemUuZGltZW5zaW9uLm1vZGFsLmZ1bGxTY3JlZW5Db250ZW50V2lkdGgsXG4gIG1hcmdpbjogXCIwIGF1dG9cIixcbiAgaGVpZ2h0OiBcIjEwMCVcIixcbn0pKTtcblxuY29uc3QgU3R5bGVkWENvbnRhaW5lciA9IHN0eWxlZC5kaXYoKHsgdGhlbWUgfSkgPT4gKHtcbiAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgLi4udXNlUmVzcG9uc2l2ZVZhbHVlKHtcbiAgICB0b3A6IFt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnMsIHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubF0sXG4gICAgcmlnaHQ6IFt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnMsIHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubF0sXG4gIH0pLFxufSkpO1xuXG5jb25zdCBNb2RhbFN0YWNrID0gKHsgY2hpbGRyZW4sIC4uLnJlc3QgfTogT21pdDxTdGFja1Byb3BzLCBcInNwYWNlXCI+KSA9PiAoXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC9qc3gtcHJvcHMtbm8tc3ByZWFkaW5nXG4gIDxTdGFjayB7Li4ucmVzdH0gc3BhY2U9XCJtXCI+XG4gICAge2NoaWxkcmVufVxuICA8L1N0YWNrPlxuKTtcblxuY29uc3QgTW9kYWxUZXh0ID0gKHtcbiAgY2hpbGRyZW4sXG4gIC4uLnJlc3Rcbn06IE9taXQ8VGV4dFByb3BzLCBcInNpemVcIiB8IFwidmFyaWFudFwiPikgPT4gKFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QvanN4LXByb3BzLW5vLXNwcmVhZGluZ1xuICA8VGV4dCB7Li4ucmVzdH0gc2l6ZT1cIm1cIiBjb2xvcj1cInRlcnRpYXJ5XCI+XG4gICAge2NoaWxkcmVufVxuICA8L1RleHQ+XG4pO1xuXG5jb25zdCBGb290ZXIgPSAoe1xuICBjaGlsZHJlbixcbiAgYWxpZ25JdGVtcyA9IFtcInN0cmV0Y2hcIiwgXCJyaWdodFwiXSxcbiAgaXNTaG9ydFZpZXdwb3J0LFxufToge1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlW10gfCBSZWFjdC5SZWFjdEVsZW1lbnQ7XG4gIGFsaWduSXRlbXM/OiBTdGFja1Byb3BzW1wiYWxpZ25JdGVtc1wiXTtcbiAgaXNTaG9ydFZpZXdwb3J0PzogYm9vbGVhbjtcbn0pID0+IChcbiAgPEJveCBzcGFjZT1cInplcm9cIiB0U3BhY2U9e2lzU2hvcnRWaWV3cG9ydCA/IFwibVwiIDogXCJsXCJ9PlxuICAgIDxTdGFjayBhbGlnbkl0ZW1zPXthbGlnbkl0ZW1zfT57Y2hpbGRyZW59PC9TdGFjaz5cbiAgPC9Cb3g+XG4pO1xuXG5jb25zdCBXcmFwcGVyID0gKHtcbiAgc2tpcFBvcnRhbCxcbiAgY2hpbGRyZW4sXG4gIHBvcnRhbENvbnRhaW5lcixcbiAgYmFja2Ryb3BSZWYsXG59OiB7XG4gIHNraXBQb3J0YWw6IGJvb2xlYW47XG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdEVsZW1lbnQ7XG4gIGJhY2tkcm9wUmVmOiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xufSAmIFBhcnRpYWw8TW9kYWxQcm9wcz4pOiBSZWFjdC5SZWFjdEVsZW1lbnQgPT5cbiAgc2tpcFBvcnRhbCA/IChcbiAgICA8PntjaGlsZHJlbn08Lz5cbiAgKSA6IChcbiAgICA8TW9kYWxDb250ZXh0LlByb3ZpZGVyIHZhbHVlPlxuICAgICAgPFBvcnRhbCBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn0+XG4gICAgICAgIDxTdHlsZWRCYWNrZHJvcCByZWY9e2JhY2tkcm9wUmVmfT57Y2hpbGRyZW59PC9TdHlsZWRCYWNrZHJvcD5cbiAgICAgIDwvUG9ydGFsPlxuICAgIDwvTW9kYWxDb250ZXh0LlByb3ZpZGVyPlxuICApO1xuXG50eXBlIEZvY3VzVHJhcFByb3BzID0ge1xuICBvblBvc3REZWFjdGl2YXRlOiAoKSA9PiB2b2lkO1xuICBiYWNrZHJvcFJlZjogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcbiAgbW9kYWxSZWY6IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XG59ICYgUGljazxNb2RhbFByb3BzLCBcImlzRGlzbWlzc2libGVcIiB8IFwicG9ydGFsQ29udGFpbmVyXCI+O1xuXG5mdW5jdGlvbiBGb2N1c1RyYXAoe1xuICBvblBvc3REZWFjdGl2YXRlLFxuICBpc0Rpc21pc3NpYmxlLFxuICBwb3J0YWxDb250YWluZXIsXG4gIGNoaWxkcmVuLFxuICBiYWNrZHJvcFJlZixcbiAgbW9kYWxSZWYsXG59OiBQcm9wc1dpdGhDaGlsZHJlbjxGb2N1c1RyYXBQcm9wcz4pIHtcbiAgY29uc3QgcG9ydGFsQ29udGFpbmVyRWxlbWVudCA9IHVzZVBvcnRhbENvbnRhaW5lckVsZW1lbnQocG9ydGFsQ29udGFpbmVyKTtcblxuICBjb25zdCBoYW5kbGVDbGlja091dHNpZGVEZWFjdGl2YXRlcyA9IChldnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KSA9PiB7XG4gICAgLy8gRG8gbm90IGNsb3NlIG9uIGNsaWNrIHRoYXQgb2NjdXJzIG9uIGVsZW1lbnRzIHdpdGhpbiB0aGUgc2FtZSBwb3J0YWwsIGZvciBlZywgZHJvcGRvd24gYW5kIHNlbGVjdCBtZW51c1xuICAgIGlmIChcbiAgICAgIHBvcnRhbENvbnRhaW5lckVsZW1lbnQuY29udGFpbnMoZXZ0LnRhcmdldCBhcyBIVE1MRWxlbWVudCkgJiZcbiAgICAgIGV2dC50YXJnZXQgIT09IGJhY2tkcm9wUmVmLmN1cnJlbnRcbiAgICApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIGlzRGlzbWlzc2libGU7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8Rm9jdXNUcmFwV3JhcHBlclxuICAgICAgYWN0aXZlXG4gICAgICBmb2N1c1RyYXBPcHRpb25zPXt7XG4gICAgICAgIGNsaWNrT3V0c2lkZURlYWN0aXZhdGVzOiBoYW5kbGVDbGlja091dHNpZGVEZWFjdGl2YXRlcyxcbiAgICAgICAgZXNjYXBlRGVhY3RpdmF0ZXM6IGlzRGlzbWlzc2libGUsIC8vIGRlLWFjdGl2YXRlIGZvY3VzIHRyYXAgb24gZXNjYXBlIGtleVxuICAgICAgICBwcmV2ZW50U2Nyb2xsOiB0cnVlLFxuICAgICAgICBmYWxsYmFja0ZvY3VzOiBtb2RhbFJlZi5jdXJyZW50LFxuICAgICAgICBvblBvc3REZWFjdGl2YXRlLFxuICAgICAgfX1cbiAgICA+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9Gb2N1c1RyYXBXcmFwcGVyPlxuICApO1xufVxuXG5jb25zdCBIb3Jpem9udGFsT2Zmc2V0ID0gKHtcbiAgY2hpbGRyZW4sXG4gIGlzRnVsbFNjcmVlbixcbiAgaXNNYXhXaWR0aExpbWl0LFxuICBoZWlnaHQsXG59OiBQYXJ0aWFsPE1vZGFsUHJvcHM+ICYgeyBoZWlnaHQ/OiBzdHJpbmcgfSkgPT4gKFxuICA8Qm94IHNwYWNlPXtbbW9iaWxlU2l6ZSwgZGVza3RvcFNpemVdfSB2U3BhY2U9XCJ6ZXJvXCIgaGVpZ2h0PXtoZWlnaHR9PlxuICAgIHtpc0Z1bGxTY3JlZW4gJiYgaXNNYXhXaWR0aExpbWl0ID8gKFxuICAgICAgPFN0eWxlZE1heFdpZHRoPntjaGlsZHJlbn08L1N0eWxlZE1heFdpZHRoPlxuICAgICkgOiAoXG4gICAgICBjaGlsZHJlblxuICAgICl9XG4gIDwvQm94PlxuKTtcblxuZnVuY3Rpb24gZ2V0SXNTaG9ydFZpZXdwb3J0KHdpbmRvdzogV2luZG93KTogYm9vbGVhbiB7XG4gIHJldHVybiAoXG4gICAgdHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIiAmJiB3aW5kb3cuaW5uZXJIZWlnaHQgPCBNSU5fVklFV1BPUlRfSEVJR0hUXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBNb2RhbCh7XG4gIGhlYWRlcixcbiAgc3ViSGVhZGVyLFxuICBsYWJlbEhlYWRlcixcbiAgY2hpbGRyZW4sXG4gIGltYWdlVXJsLFxuICBJbWFnZUNvbXBvbmVudCxcbiAgc2Vjb25kYXJ5QnV0dG9uLFxuICBjYW5jZWxCdXR0b25MYWJlbCxcbiAgaXNEaXNtaXNzaWJsZSA9IHRydWUsXG4gIGlzRnVsbFNjcmVlbixcbiAgaXNNYXhXaWR0aExpbWl0ID0gdHJ1ZSxcbiAgYWN0aW9uQnV0dG9uLFxuICByb2xlID0gXCJkaWFsb2dcIixcbiAgb25BY3Rpb24sXG4gIHNpemUgPSBcIm1cIixcbiAgcHJpdmF0ZVByb3BzOiB7IHNraXBQb3J0YWwgfSA9IHsgc2tpcFBvcnRhbDogZmFsc2UgfSxcbiAgcG9ydGFsQ29udGFpbmVyLFxuICBjbG9zZUJ1dHRvbkFyaWFMYWJlbCA9IFwiRGlzbWlzcyBEaWFsb2dcIixcbiAgXCJhcmlhLWxhYmVsXCI6IGFyaWFMYWJlbCxcbiAgXCJhcmlhLWRlc2NyaWJlZGJ5XCI6IGFyaWFEZXNjcmliZWRCeSxcbiAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG4gIGltYWdlQWx0LFxufTogTW9kYWxQcm9wcyk6IFJlYWN0LlJlYWN0RWxlbWVudCB7XG4gIGNvbnN0IG1vZGFsUmVmID0gdXNlUmVmKG51bGwpO1xuICBjb25zdCBiYWNrZHJvcFJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3Qgc3ViSGVhZGVySWQgPSB1c2VJZCgpO1xuICBjb25zdCB3aW5kb3cgPSB1c2VXaW5kb3coKTtcbiAgY29uc3QgeyBzY3JvbGxhYmxlUmVmLCBpc1Njcm9sbEJvdHRvbSwgaXNTY3JvbGxUb3AsIGhhc1Njcm9sbCB9ID1cbiAgICB1c2VTY3JvbGxEZXRlY3Rpb24oKTtcbiAgY29uc3QgW2lzU2hvcnRWaWV3cG9ydCwgc2V0SXNTaG9ydFZpZXdwb3J0XSA9IHVzZVN0YXRlKFxuICAgIGdldElzU2hvcnRWaWV3cG9ydCh3aW5kb3cpXG4gICk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBsZXQgcmVzaXplT2JzZXJ2ZXI6IFJlc2l6ZU9ic2VydmVyO1xuXG4gICAgaWYgKHR5cGVvZiBSZXNpemVPYnNlcnZlciAhPT0gXCJ1bmRlZmluZWRcIiAmJiBiYWNrZHJvcFJlZi5jdXJyZW50KSB7XG4gICAgICByZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB7XG4gICAgICAgIHNldElzU2hvcnRWaWV3cG9ydChnZXRJc1Nob3J0Vmlld3BvcnQod2luZG93KSk7XG4gICAgICB9KTtcblxuICAgICAgcmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShiYWNrZHJvcFJlZi5jdXJyZW50KTtcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKHJlc2l6ZU9ic2VydmVyKSB7XG4gICAgICAgIHJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgIH1cbiAgICB9O1xuICB9LCBbYmFja2Ryb3BSZWYsIHdpbmRvd10pO1xuXG4gIGNvbnN0IGhhbmRsZUNsb3NlID0gKCkgPT4ge1xuICAgIG9uQWN0aW9uKFwiY2FuY2VsXCIpO1xuICB9O1xuXG4gIGNvbnN0IGhhc0ltYWdlID0gaW1hZ2VVcmwgfHwgSW1hZ2VDb21wb25lbnQ7XG4gIGNvbnN0IEhlYWRpbmdDb21wb25lbnQgPSBpc1Nob3J0Vmlld3BvcnQgPyBIMyA6IEgyO1xuICBjb25zdCBpc0ltYWdlVmlzaWJsZSA9ICFpc1Nob3J0Vmlld3BvcnQgJiYgISFoYXNJbWFnZTtcbiAgY29uc3QgaG9yaXpvbnRhbE9mZnNldFByb3BzID0geyBpc0Z1bGxTY3JlZW4sIGlzTWF4V2lkdGhMaW1pdCB9O1xuXG4gIGNvbnN0IGNsb3NlQnV0dG9uID0gaXNEaXNtaXNzaWJsZSAmJiAoXG4gICAgPFN0eWxlZFhDb250YWluZXI+XG4gICAgICA8UGljdG9ncmFtQnV0dG9uXG4gICAgICAgIHZhcmlhbnQ9XCJ0ZXJ0aWFyeVwiXG4gICAgICAgIGljb249XCJ4XCJcbiAgICAgICAgc2l6ZT1cInNcIlxuICAgICAgICBvbkNsaWNrPXtoYW5kbGVDbG9zZX1cbiAgICAgICAgYXJpYS1sYWJlbD17Y2xvc2VCdXR0b25BcmlhTGFiZWx9XG4gICAgICAvPlxuICAgIDwvU3R5bGVkWENvbnRhaW5lcj5cbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxXcmFwcGVyXG4gICAgICBza2lwUG9ydGFsPXtza2lwUG9ydGFsfVxuICAgICAgcG9ydGFsQ29udGFpbmVyPXtwb3J0YWxDb250YWluZXJ9XG4gICAgICBiYWNrZHJvcFJlZj17YmFja2Ryb3BSZWZ9XG4gICAgPlxuICAgICAgPEZvY3VzVHJhcFxuICAgICAgICBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn1cbiAgICAgICAgaXNEaXNtaXNzaWJsZT17aXNEaXNtaXNzaWJsZX1cbiAgICAgICAgb25Qb3N0RGVhY3RpdmF0ZT17aGFuZGxlQ2xvc2V9XG4gICAgICAgIGJhY2tkcm9wUmVmPXtiYWNrZHJvcFJlZn1cbiAgICAgICAgbW9kYWxSZWY9e21vZGFsUmVmfVxuICAgICAgPlxuICAgICAgICA8U3R5bGVkTW9kYWxXcmFwcGVyXG4gICAgICAgICAgcmVmPXttb2RhbFJlZn1cbiAgICAgICAgICByb2xlPXtyb2xlfVxuICAgICAgICAgIGRhdGEtZTJlLXRlc3QtaWQ9e2RhdGFFMmVUZXN0SWR9XG4gICAgICAgICAgZGF0YS1kcy1pZD1cIk1vZGFsXCJcbiAgICAgICAgICBpc0Z1bGxTY3JlZW49e2lzRnVsbFNjcmVlbn1cbiAgICAgICAgICBzaXplPXtzaXplfVxuICAgICAgICAgIGFyaWEtbGFiZWw9e2FyaWFMYWJlbCB8fCBoZWFkZXJ9XG4gICAgICAgICAgYXJpYS1kZXNjcmliZWRieT17XG4gICAgICAgICAgICBzdWJIZWFkZXIgPyBhcHBlbmRJZChhcmlhRGVzY3JpYmVkQnksIHN1YkhlYWRlcklkKSA6IGFyaWFEZXNjcmliZWRCeVxuICAgICAgICAgIH1cbiAgICAgICAgPlxuICAgICAgICAgIDxDb250YWluZXIgZWxldmF0aW9uPXs0fT5cbiAgICAgICAgICAgIDxCb3ggc3BhY2U9XCJ6ZXJvXCIgdlNwYWNlPXtbbW9iaWxlU2l6ZSwgZGVza3RvcFNpemVdfT5cbiAgICAgICAgICAgICAgPFN0eWxlZElubmVyIGlzRnVsbFNjcmVlbj17aXNGdWxsU2NyZWVufSBzaXplPXtzaXplfT5cbiAgICAgICAgICAgICAgICA8SG9yaXpvbnRhbE9mZnNldCB7Li4uaG9yaXpvbnRhbE9mZnNldFByb3BzfT5cbiAgICAgICAgICAgICAgICAgIDxCb3ggc3BhY2U9XCJ6ZXJvXCIgYlNwYWNlPVwic1wiPlxuICAgICAgICAgICAgICAgICAgICA8U3RhY2sgc3BhY2U9e2lzSW1hZ2VWaXNpYmxlID8gW1wic1wiLCBcImxcIl0gOiBcInplcm9cIn0+XG4gICAgICAgICAgICAgICAgICAgICAge2lzSW1hZ2VWaXNpYmxlICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAoaW1hZ2VVcmwgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxCb3ggc3BhY2U9XCJ6ZXJvXCIgdFNwYWNlPXtbXCJ4bFwiLCBcImxcIl19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRJbWcgc3JjPXtpbWFnZVVybH0gYWx0PXtpbWFnZUFsdH0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8SW1hZ2VDb21wb25lbnQgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICAgIDxJbmxpbmUgYWxpZ25JdGVtcz1cInNwYWNlQmV0d2VlblwiIG5vV3JhcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxTdGFjayBzcGFjZT1cInh4c1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7bGFiZWxIZWFkZXIgJiYgPEg2IGFzPVwiZGl2XCI+e2xhYmVsSGVhZGVyfTwvSDY+fVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8U3RhY2sgc3BhY2U9XCJ6ZXJvXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhlYWRpbmdDb21wb25lbnQgYXM9XCJoMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2hlYWRlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0hlYWRpbmdDb21wb25lbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3N1YkhlYWRlciAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SDQgYXM9XCJoMlwiIGNvbG9yPVwidGVydGlhcnlcIiBpZD17c3ViSGVhZGVySWR9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7c3ViSGVhZGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9IND5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtjbG9zZUJ1dHRvbn1cbiAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZT5cbiAgICAgICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgIDwvSG9yaXpvbnRhbE9mZnNldD5cblxuICAgICAgICAgICAgICAgIDxTdHlsZWRCb2R5XG4gICAgICAgICAgICAgICAgICByZWY9e3Njcm9sbGFibGVSZWZ9XG4gICAgICAgICAgICAgICAgICBzaXplPXtzaXplfVxuICAgICAgICAgICAgICAgICAgaXNGdWxsU2NyZWVuPXtpc0Z1bGxTY3JlZW59XG4gICAgICAgICAgICAgICAgICBib3JkZXJCb3R0b209e2hhc1Njcm9sbCAmJiAhaXNTY3JvbGxCb3R0b219XG4gICAgICAgICAgICAgICAgICBib3JkZXJUb3A9e2hhc1Njcm9sbCAmJiAhaXNTY3JvbGxUb3B9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPEJveCBzcGFjZT1cInplcm9cIiB2U3BhY2U9XCJ4eHhzXCIgaGVpZ2h0PVwiMTAwJVwiPlxuICAgICAgICAgICAgICAgICAgICA8SG9yaXpvbnRhbE9mZnNldCB7Li4uaG9yaXpvbnRhbE9mZnNldFByb3BzfSBoZWlnaHQ9XCIxMDAlXCI+XG4gICAgICAgICAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgICAgICAgICA8L0hvcml6b250YWxPZmZzZXQ+XG4gICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICA8L1N0eWxlZEJvZHk+XG5cbiAgICAgICAgICAgICAgICB7KGFjdGlvbkJ1dHRvbiB8fCBjYW5jZWxCdXR0b25MYWJlbCB8fCBzZWNvbmRhcnlCdXR0b24pICYmIChcbiAgICAgICAgICAgICAgICAgIDxIb3Jpem9udGFsT2Zmc2V0IHsuLi5ob3Jpem9udGFsT2Zmc2V0UHJvcHN9PlxuICAgICAgICAgICAgICAgICAgICA8Rm9vdGVyIGlzU2hvcnRWaWV3cG9ydD17aXNTaG9ydFZpZXdwb3J0fT5cbiAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uR3JvdXBcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbkJ1dHRvbj17YWN0aW9uQnV0dG9ufVxuICAgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kYXJ5QnV0dG9uPXtzZWNvbmRhcnlCdXR0b259XG4gICAgICAgICAgICAgICAgICAgICAgICBjYW5jZWxCdXR0b25UZXh0PXtjYW5jZWxCdXR0b25MYWJlbH1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQnV0dG9uQ2xpY2s9e29uQWN0aW9ufVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvRm9vdGVyPlxuICAgICAgICAgICAgICAgICAgPC9Ib3Jpem9udGFsT2Zmc2V0PlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvU3R5bGVkSW5uZXI+XG4gICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgPC9TdHlsZWRNb2RhbFdyYXBwZXI+XG4gICAgICA8L0ZvY3VzVHJhcD5cbiAgICA8L1dyYXBwZXI+XG4gICk7XG59XG5cbk1vZGFsLlN0YWNrID0gTW9kYWxTdGFjaztcbk1vZGFsLlRleHQgPSBNb2RhbFRleHQ7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBd01tQiJ9 */"),StyledImg=(0,_styled.default)("img",{target:"elkk7m14",label:"StyledImg"})(()=>({width:"100%",aspectRatio:"16/9"}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUGF0dGVybnMvTW9kYWwvTW9kYWwudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9QYXR0ZXJucy9Nb2RhbC9Nb2RhbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgcmVhY3QvanN4LXByb3BzLW5vLXNwcmVhZGluZyAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVhY3QvanN4LW5vLXVzZWxlc3MtZnJhZ21lbnQgKi9cbmltcG9ydCB0eXBlIHsgUmVmT2JqZWN0LCBQcm9wc1dpdGhDaGlsZHJlbiB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFJlYWN0LCB7IHVzZU1lbW8sIHVzZVJlZiwgdXNlSWQsIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHR5cGUgeyBUaGVtZSB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHsga2V5ZnJhbWVzIH0gZnJvbSBcIkBlbW90aW9uL3JlYWN0XCI7XG5pbXBvcnQgdHlwZSB7IFBvcnRhbFByb3BzIH0gZnJvbSBcIi4uLy4uL1BvcnRhbC9Qb3J0YWxcIjtcbmltcG9ydCB7IFBvcnRhbCwgdXNlUG9ydGFsQ29udGFpbmVyRWxlbWVudCB9IGZyb20gXCIuLi8uLi9Qb3J0YWwvUG9ydGFsXCI7XG5pbXBvcnQgeyBIMiwgSDQsIEg2LCBIMyB9IGZyb20gXCIuLi8uLi9UeXBvZ3JhcGh5L0hlYWRlci9IZWFkZXJcIjtcbmltcG9ydCB0eXBlIHsgU3RhY2tQcm9wcyB9IGZyb20gXCIuLi8uLi9TdGFjay9TdGFja1wiO1xuaW1wb3J0IHsgU3RhY2sgfSBmcm9tIFwiLi4vLi4vU3RhY2svU3RhY2tcIjtcbmltcG9ydCB7IENvbnRhaW5lciB9IGZyb20gXCIuLi8uLi9Db250YWluZXIvQ29udGFpbmVyXCI7XG5pbXBvcnQgeyBCb3ggfSBmcm9tIFwiLi4vLi4vQm94L0JveFwiO1xuXG5pbXBvcnQgeyBJbmxpbmUgfSBmcm9tIFwiLi4vLi4vSW5saW5lL0lubGluZVwiO1xuaW1wb3J0IHR5cGUgeyBCdXR0b25Hcm91cEJ1dHRvblByb3BzIH0gZnJvbSBcIi4uL0J1dHRvbkdyb3VwL0J1dHRvbkdyb3VwXCI7XG5pbXBvcnQgeyBCdXR0b25Hcm91cCB9IGZyb20gXCIuLi9CdXR0b25Hcm91cC9CdXR0b25Hcm91cFwiO1xuaW1wb3J0IHsgUGljdG9ncmFtQnV0dG9uIH0gZnJvbSBcIi4uLy4uL1BpY3RvZ3JhbUJ1dHRvbi9QaWN0b2dyYW1CdXR0b25cIjtcbmltcG9ydCB0eXBlIHsgVGV4dFByb3BzIH0gZnJvbSBcIi4uLy4uL1R5cG9ncmFwaHkvVGV4dC9UZXh0XCI7XG5pbXBvcnQgeyBUZXh0IH0gZnJvbSBcIi4uLy4uL1R5cG9ncmFwaHkvVGV4dC9UZXh0XCI7XG5pbXBvcnQgeyB1c2VSZXNwb25zaXZlVmFsdWUgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL21lZGlhUXVlcmllc1wiO1xuaW1wb3J0IHsgdXNlU2Nyb2xsRGV0ZWN0aW9uIH0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZC91c2VTY3JvbGxEZXRlY3Rpb25cIjtcbmltcG9ydCB7IE1vZGFsQ29udGV4dCB9IGZyb20gXCIuL01vZGFsQ29udGV4dFwiO1xuaW1wb3J0IHsgRm9jdXNUcmFwV3JhcHBlciB9IGZyb20gXCIuLi8uLi8uLi9zaGFyZWQvRm9jdXNUcmFwV3JhcHBlclwiO1xuaW1wb3J0IHsgYXBwZW5kSWQgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL2FwcGVuZElkXCI7XG5pbXBvcnQgeyB1c2VXaW5kb3cgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL3VzZVdpbmRvd1wiO1xuXG50eXBlIEJhc2VQcm9wcyA9IHtcbiAgaGVhZGVyPzogc3RyaW5nO1xuICBvbkFjdGlvbj86IChhY3Rpb246IFwiY2FuY2VsXCIgfCBcImFjdGlvblwiKSA9PiB2b2lkO1xuICByb2xlPzogXCJkaWFsb2dcIiB8IFwiYWxlcnRkaWFsb2dcIjtcbiAgbGFiZWxIZWFkZXI/OiBzdHJpbmc7XG4gIC8qKiBUaGUgYmxhY2sgY29sb3IgaXMgZ29pbmcgdG8gYmUgcmVwbGFjZWQgd2l0aCBncmF5IG9uZSAqL1xuICBzdWJIZWFkZXI/OiBzdHJpbmc7XG4gIC8qKiBUZXh0IGFuZCBvdGhlciBwcm9wcyBmb3IgYWN0aW9uIEJ1dHRvbiAqL1xuICBhY3Rpb25CdXR0b24/OiBCdXR0b25Hcm91cEJ1dHRvblByb3BzO1xuICAvKiogVGV4dCBhbmQgb3RoZXIgcHJvcHMgZm9yIGFjdGlvbiBCdXR0b24gKi9cbiAgc2Vjb25kYXJ5QnV0dG9uPzogQnV0dG9uR3JvdXBCdXR0b25Qcm9wcztcbiAgLyoqIEBkZXByZWNhdGVkIFVzZSBzZWNvbmRhcnlCdXR0b24gdG8gcGFzcyBpbiB0ZXh0IGFuZCBvdGhlciBwcm9wcyBmb3Igc2Vjb25kYXJ5IGJ1dHRvbiAqL1xuICBjYW5jZWxCdXR0b25MYWJlbD86IHN0cmluZztcbiAgLyoqIEFpbSB0byB1c2UgPE1vZGFsLlRleHQ+IGFuZCA8TW9kYWwuU3RhY2s+ICovXG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuICBcImRhdGEtZTJlLXRlc3QtaWRcIj86IHN0cmluZztcbiAgcHJpdmF0ZVByb3BzPzogeyBza2lwUG9ydGFsPzogYm9vbGVhbiB9O1xuICAvKiogSXQncyBhIGJhZCBwYXR0ZXJuIHRvIHVzZSBub24tZGlzbWlzc2libGUgTW9kYWwgKi9cbiAgaXNEaXNtaXNzaWJsZT86IGJvb2xlYW47XG4gIGlzRnVsbFNjcmVlbj86IGJvb2xlYW47XG4gIGlzTWF4V2lkdGhMaW1pdD86IGJvb2xlYW47XG4gIHNpemU/OiBcIm1cIiB8IFwibFwiO1xuICBjbG9zZUJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgXCJhcmlhLWxhYmVsXCI/OiBzdHJpbmc7XG4gIFwiYXJpYS1kZXNjcmliZWRieVwiPzogc3RyaW5nO1xuICAvKiogQWx0IHRleHQgZm9yIHRoZSBtb2RhbCBpbWFnZSAqL1xufTtcblxudHlwZSBDb25kaXRpb25hbFByb3BzID1cbiAgfCB7XG4gICAgICAvKiogQXNwZWN0IHJhdGlvIDE2OjkgKi9cbiAgICAgIGltYWdlVXJsPzogc3RyaW5nO1xuICAgICAgaW1hZ2VBbHQ/OiBzdHJpbmc7XG4gICAgICBJbWFnZUNvbXBvbmVudD86IG5ldmVyO1xuICAgIH1cbiAgfCB7XG4gICAgICBpbWFnZVVybD86IG5ldmVyO1xuICAgICAgaW1hZ2VBbHQ/OiBuZXZlcjtcbiAgICAgIC8qKiBBY2NlcHQgcmF0aW8gMTY6OSAqL1xuICAgICAgSW1hZ2VDb21wb25lbnQ/OiBSZWFjdC5FbGVtZW50VHlwZTxhbnk+O1xuICAgIH07XG5cbmV4cG9ydCB0eXBlIE1vZGFsUHJvcHMgPSBCYXNlUHJvcHMgJlxuICBDb25kaXRpb25hbFByb3BzICZcbiAgUGljazxQb3J0YWxQcm9wcywgXCJwb3J0YWxDb250YWluZXJcIj47XG5cbmV4cG9ydCBjb25zdCBTdHlsZWRCYWNrZHJvcCA9IHN0eWxlZC5kaXY8UGFydGlhbDxCYXNlUHJvcHM+PigoeyB0aGVtZSB9KSA9PiB7XG4gIGNvbnN0IGZhZGVJbkJhY2tkcm9wID0gdXNlTWVtbyhcbiAgICAoKSA9PlxuICAgICAga2V5ZnJhbWVzYFxuICAgICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6ICR7dGhlbWUudmFyaWFibGVzLm9wYWNpdHkuaGlkZGVufTtcbiAgICAgIH1cbiAgICAgIHRvIHtcbiAgICAgICAgb3BhY2l0eTogJHt0aGVtZS52YXJpYWJsZXMub3BhY2l0eS52aXNpYmxlfTtcbiAgICAgIH1cbiAgICBgLFxuICAgIFt0aGVtZS52YXJpYWJsZXMub3BhY2l0eS5oaWRkZW4sIHRoZW1lLnZhcmlhYmxlcy5vcGFjaXR5LnZpc2libGVdXG4gICk7XG4gIHJldHVybiB7XG4gICAgcG9zaXRpb246IFwiZml4ZWRcIixcbiAgICB0b3A6IDAsXG4gICAgbGVmdDogMCxcbiAgICB6SW5kZXg6IHRoZW1lLnZhcmlhYmxlcy56SW5kZXgubW9kYWwsXG4gICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgIGhlaWdodDogXCIxMDBkdmhcIixcbiAgICBiYWNrZ3JvdW5kOiB0aGVtZS52YWx1ZXMuY29sb3IuYmFja2dyb3VuZC5iYWNrZHJvcC5kZWZhdWx0LFxuICAgIGRpc3BsYXk6IFwiZmxleFwiLFxuICAgIGZsZXhEaXJlY3Rpb246IFwiY29sdW1uXCIsXG4gICAganVzdGlmeUNvbnRlbnQ6IFwiY2VudGVyXCIsXG4gICAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbiAgICBmbGV4OiBcIjEgMCBhdXRvXCIsXG4gICAgYW5pbWF0aW9uOiBgJHtmYWRlSW5CYWNrZHJvcH0gJHt0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLm1vZGFsQmFja2Ryb3Aub3Blbi5kdXJhdGlvbn0gJHt0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLm1vZGFsQmFja2Ryb3Aub3Blbi50aW1pbmdGdW5jdGlvbn0gYm90aGAsXG4gIH07XG59KTtcblxuY29uc3QgbW9iaWxlU2l6ZSA9IFwibVwiO1xuY29uc3QgZGVza3RvcFNpemUgPSBcInhsXCI7XG5jb25zdCBnZXREZXNrdG9wU3BhY2UgPSAodGhlbWU6IFRoZW1lKSA9PiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLmw7XG5jb25zdCBnZXREZXNrdG9wSW5uZXJTcGFjZSA9ICh0aGVtZTogVGhlbWUpID0+XG4gIHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmdbZGVza3RvcFNpemVdO1xuY29uc3QgZ2V0TW9iaWxlU3BhY2UgPSAodGhlbWU6IFRoZW1lKSA9PiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLm07XG5jb25zdCBnZXRNb2JpbGVJbm5lclNwYWNlID0gKHRoZW1lOiBUaGVtZSkgPT5cbiAgdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZ1ttb2JpbGVTaXplXTtcbi8vIE1pbmltdW0gdmlld3BvcnQgaGVpZ2h0IG9uIHdoaWNoIGltYWdlIGlzIHNob3duLlxuY29uc3QgTUlOX1ZJRVdQT1JUX0hFSUdIVCA9IDQyMDtcblxuY29uc3QgU3R5bGVkTW9kYWxXcmFwcGVyID0gc3R5bGVkLmRpdjxQYXJ0aWFsPE1vZGFsUHJvcHM+PihcbiAgKHsgdGhlbWUsIGlzRnVsbFNjcmVlbiwgc2l6ZSB9KSA9PiB7XG4gICAgY29uc3QgZmFkZUluTW9kYWwgPSB1c2VNZW1vKFxuICAgICAgKCkgPT5cbiAgICAgICAga2V5ZnJhbWVzYFxuICAgICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6ICR7dGhlbWUudmFyaWFibGVzLm9wYWNpdHkuaGlkZGVufTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwcHgpO1xuICAgICAgfVxuICAgICAgdG8ge1xuICAgICAgICAgIG9wYWNpdHk6ICR7dGhlbWUudmFyaWFibGVzLm9wYWNpdHkudmlzaWJsZX07XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICAgIH1cbiAgICBgLFxuICAgICAgW3RoZW1lLnZhcmlhYmxlcy5vcGFjaXR5LmhpZGRlbiwgdGhlbWUudmFyaWFibGVzLm9wYWNpdHkudmlzaWJsZV1cbiAgICApO1xuICAgIHJldHVybiB7XG4gICAgICBhbmltYXRpb246IGAke2ZhZGVJbk1vZGFsfSAke3RoZW1lLnZhcmlhYmxlcy5hbmltYXRpb24ubW9kYWwub3Blbi5kdXJhdGlvbn0gJHt0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLm1vZGFsLm9wZW4uZGVsYXl9ICR7dGhlbWUudmFyaWFibGVzLmFuaW1hdGlvbi5tb2RhbC5vcGVuLnRpbWluZ0Z1bmN0aW9ufSBib3RoYCxcbiAgICAgIC4uLnVzZVJlc3BvbnNpdmVWYWx1ZSh7XG4gICAgICAgIHdpZHRoOiBbXG4gICAgICAgICAgYGNhbGMoMTAwJSAtICR7Z2V0TW9iaWxlU3BhY2UodGhlbWUpfSAqIDIpYCxcbiAgICAgICAgICBpc0Z1bGxTY3JlZW5cbiAgICAgICAgICAgID8gYGNhbGMoMTAwJSAtICR7Z2V0RGVza3RvcFNwYWNlKHRoZW1lKX0gKiAyKWBcbiAgICAgICAgICAgIDogdGhlbWUudmFyaWFibGVzLnNpemUuZGltZW5zaW9uLm1vZGFsLndpZHRoW3NpemVdLFxuICAgICAgICBdLFxuICAgICAgfSksXG4gICAgfTtcbiAgfVxuKTtcblxuY29uc3QgU3R5bGVkSW5uZXIgPSBzdHlsZWQuZGl2PFBhcnRpYWw8TW9kYWxQcm9wcz4+KFxuICAoeyB0aGVtZSwgaXNGdWxsU2NyZWVuLCBzaXplIH0pID0+IHtcbiAgICBjb25zdCBtb2JpbGVWZXJ0aWNhbFNwYWNlID0gZ2V0TW9iaWxlU3BhY2UodGhlbWUpO1xuICAgIGNvbnN0IG1vYmlsZUlubmVyVmVydGljYWxTcGFjZSA9IGdldE1vYmlsZUlubmVyU3BhY2UodGhlbWUpO1xuICAgIGNvbnN0IGRlc2t0b3BWZXJ0aWNhbFNwYWNlID0gZ2V0RGVza3RvcFNwYWNlKHRoZW1lKTtcbiAgICBjb25zdCBkZXNrdG9wSW5uZXJWZXJ0aWNhbFNwYWNlID0gZ2V0RGVza3RvcElubmVyU3BhY2UodGhlbWUpO1xuXG4gICAgLy8gZnVsbHNjcmVlbiBhbmQgTCBzaXplIGRvbid0IGRlcGVuZCBvbiBjb250ZW50IHNpemVcbiAgICAvLyBMIHNpemUgaGVpZ2h0IGhhcyBtYXhIaWVnaHQgcmVzaXplIHVudGlsIDgwMHB4XG4gICAgLy8gZnVsbHNjcmVlbiBtYXhIZWlnaHQgaXMgbm90IGxpbWl0ZWRcbiAgICAvLyBNIHNpemUgaGVpZ2h0IGhhcyBjb250ZW50IHNpemUgYW5kIGNlbnRlcmVkIGF0IHRvcCBhbmQgbWF4SGVpZ2h0IGlzIG5vdCBsaW1pdGVkXG5cbiAgICBjb25zdCBnZXREZXNrdG9wSGVpZ2h0ID0gKCkgPT4ge1xuICAgICAgaWYgKGlzRnVsbFNjcmVlbikge1xuICAgICAgICByZXR1cm4gYGNhbGMoMTAwZHZoIC0gJHtkZXNrdG9wVmVydGljYWxTcGFjZX0gKiAyIC0gJHtkZXNrdG9wSW5uZXJWZXJ0aWNhbFNwYWNlfSAqIDIpYDtcbiAgICAgIH1cbiAgICAgIGlmIChzaXplID09PSBcImxcIikge1xuICAgICAgICByZXR1cm4gYGNhbGMoMTAwZHZoIC0gJHtkZXNrdG9wVmVydGljYWxTcGFjZX0gKiAyIC0gJHtkZXNrdG9wSW5uZXJWZXJ0aWNhbFNwYWNlfSAqIDIgLSAke3RoZW1lLnZhcmlhYmxlcy5zaXplLmRpbWVuc2lvbi5tb2RhbC5tYXJnaW4ubH0gKiAyKWA7XG4gICAgICB9XG4gICAgICByZXR1cm4gXCJhdXRvXCI7XG4gICAgfTtcblxuICAgIGNvbnN0IGdldERlc2t0b3BNYXhIZWlnaHQgPSAoKSA9PiB7XG4gICAgICBpZiAoaXNGdWxsU2NyZWVuKSB7XG4gICAgICAgIHJldHVybiBgYXV0b2A7XG4gICAgICB9XG4gICAgICBpZiAoc2l6ZSA9PT0gXCJsXCIpIHtcbiAgICAgICAgcmV0dXJuIGBjYWxjKCR7dGhlbWUudmFyaWFibGVzLnNpemUuZGltZW5zaW9uLm1vZGFsLm1heEhlaWdodC5sfSAtICR7ZGVza3RvcElubmVyVmVydGljYWxTcGFjZX0gKiAyKWA7XG4gICAgICB9XG4gICAgICByZXR1cm4gYGNhbGMoMTAwZHZoIC0gJHtkZXNrdG9wVmVydGljYWxTcGFjZX0gKiAyIC0gJHtkZXNrdG9wSW5uZXJWZXJ0aWNhbFNwYWNlfSAqIDIpYDtcbiAgICB9O1xuXG4gICAgY29uc3QgZnVsbFNjcmVlbk1vYmlsZSA9IGBjYWxjKDEwMGR2aCAtICR7bW9iaWxlVmVydGljYWxTcGFjZX0gKiAyIC0gJHttb2JpbGVJbm5lclZlcnRpY2FsU3BhY2V9ICogMilgO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGRpc3BsYXk6IFwiZmxleFwiLFxuICAgICAgLi4udXNlUmVzcG9uc2l2ZVZhbHVlKHtcbiAgICAgICAgaGVpZ2h0OiBbXG4gICAgICAgICAgc2l6ZSA9PT0gXCJsXCIgfHwgaXNGdWxsU2NyZWVuID8gZnVsbFNjcmVlbk1vYmlsZSA6IFwiYXV0b1wiLFxuICAgICAgICAgIGdldERlc2t0b3BIZWlnaHQoKSxcbiAgICAgICAgXSxcbiAgICAgICAgbWF4SGVpZ2h0OiBbZnVsbFNjcmVlbk1vYmlsZSwgZ2V0RGVza3RvcE1heEhlaWdodCgpXSxcbiAgICAgIH0pLFxuXG4gICAgICBmbGV4RGlyZWN0aW9uOiBcImNvbHVtblwiLFxuICAgICAgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsXG4gICAgfTtcbiAgfVxuKTtcblxudHlwZSBTdHlsZWRCb2R5UHJvcHMgPSB7XG4gIGJvcmRlckJvdHRvbTogYm9vbGVhbjtcbiAgYm9yZGVyVG9wOiBib29sZWFuO1xufTtcblxuY29uc3QgU3R5bGVkQm9keSA9IHN0eWxlZC5kaXY8U3R5bGVkQm9keVByb3BzICYgUGFydGlhbDxNb2RhbFByb3BzPj4oXG4gICh7IHRoZW1lLCBib3JkZXJCb3R0b20sIGJvcmRlclRvcCwgc2l6ZSwgaXNGdWxsU2NyZWVuIH0pID0+ICh7XG4gICAgb3ZlcmZsb3dZOiBcImF1dG9cIixcbiAgICBtYXhIZWlnaHQ6IFwiMTAwJVwiLFxuXG4gICAgLi4uKChpc0Z1bGxTY3JlZW4gfHwgc2l6ZSA9PT0gXCJsXCIpICYmIHtcbiAgICAgIGZsZXg6IDEsXG4gICAgfSksXG5cbiAgICAuLi4oYm9yZGVyQm90dG9tICYmIHtcbiAgICAgIGJvcmRlckJvdHRvbTogYDFweCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5kaXZpZGVyLnByaW1hcnl9YCxcbiAgICB9KSxcbiAgICAuLi4oYm9yZGVyVG9wICYmIHtcbiAgICAgIGJvcmRlclRvcDogYDFweCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5kaXZpZGVyLnByaW1hcnl9YCxcbiAgICB9KSxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZEltZyA9IHN0eWxlZC5pbWcoKCkgPT4gKHtcbiAgd2lkdGg6IFwiMTAwJVwiLFxuICBhc3BlY3RSYXRpbzogXCIxNi85XCIsXG59KSk7XG5cbmNvbnN0IFN0eWxlZE1heFdpZHRoID0gc3R5bGVkLmRpdjxQYXJ0aWFsPE1vZGFsUHJvcHM+PigoeyB0aGVtZSB9KSA9PiAoe1xuICBtYXhXaWR0aDogdGhlbWUudmFyaWFibGVzLnNpemUuZGltZW5zaW9uLm1vZGFsLmZ1bGxTY3JlZW5Db250ZW50V2lkdGgsXG4gIG1hcmdpbjogXCIwIGF1dG9cIixcbiAgaGVpZ2h0OiBcIjEwMCVcIixcbn0pKTtcblxuY29uc3QgU3R5bGVkWENvbnRhaW5lciA9IHN0eWxlZC5kaXYoKHsgdGhlbWUgfSkgPT4gKHtcbiAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgLi4udXNlUmVzcG9uc2l2ZVZhbHVlKHtcbiAgICB0b3A6IFt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnMsIHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubF0sXG4gICAgcmlnaHQ6IFt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnMsIHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubF0sXG4gIH0pLFxufSkpO1xuXG5jb25zdCBNb2RhbFN0YWNrID0gKHsgY2hpbGRyZW4sIC4uLnJlc3QgfTogT21pdDxTdGFja1Byb3BzLCBcInNwYWNlXCI+KSA9PiAoXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC9qc3gtcHJvcHMtbm8tc3ByZWFkaW5nXG4gIDxTdGFjayB7Li4ucmVzdH0gc3BhY2U9XCJtXCI+XG4gICAge2NoaWxkcmVufVxuICA8L1N0YWNrPlxuKTtcblxuY29uc3QgTW9kYWxUZXh0ID0gKHtcbiAgY2hpbGRyZW4sXG4gIC4uLnJlc3Rcbn06IE9taXQ8VGV4dFByb3BzLCBcInNpemVcIiB8IFwidmFyaWFudFwiPikgPT4gKFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QvanN4LXByb3BzLW5vLXNwcmVhZGluZ1xuICA8VGV4dCB7Li4ucmVzdH0gc2l6ZT1cIm1cIiBjb2xvcj1cInRlcnRpYXJ5XCI+XG4gICAge2NoaWxkcmVufVxuICA8L1RleHQ+XG4pO1xuXG5jb25zdCBGb290ZXIgPSAoe1xuICBjaGlsZHJlbixcbiAgYWxpZ25JdGVtcyA9IFtcInN0cmV0Y2hcIiwgXCJyaWdodFwiXSxcbiAgaXNTaG9ydFZpZXdwb3J0LFxufToge1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlW10gfCBSZWFjdC5SZWFjdEVsZW1lbnQ7XG4gIGFsaWduSXRlbXM/OiBTdGFja1Byb3BzW1wiYWxpZ25JdGVtc1wiXTtcbiAgaXNTaG9ydFZpZXdwb3J0PzogYm9vbGVhbjtcbn0pID0+IChcbiAgPEJveCBzcGFjZT1cInplcm9cIiB0U3BhY2U9e2lzU2hvcnRWaWV3cG9ydCA/IFwibVwiIDogXCJsXCJ9PlxuICAgIDxTdGFjayBhbGlnbkl0ZW1zPXthbGlnbkl0ZW1zfT57Y2hpbGRyZW59PC9TdGFjaz5cbiAgPC9Cb3g+XG4pO1xuXG5jb25zdCBXcmFwcGVyID0gKHtcbiAgc2tpcFBvcnRhbCxcbiAgY2hpbGRyZW4sXG4gIHBvcnRhbENvbnRhaW5lcixcbiAgYmFja2Ryb3BSZWYsXG59OiB7XG4gIHNraXBQb3J0YWw6IGJvb2xlYW47XG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdEVsZW1lbnQ7XG4gIGJhY2tkcm9wUmVmOiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xufSAmIFBhcnRpYWw8TW9kYWxQcm9wcz4pOiBSZWFjdC5SZWFjdEVsZW1lbnQgPT5cbiAgc2tpcFBvcnRhbCA/IChcbiAgICA8PntjaGlsZHJlbn08Lz5cbiAgKSA6IChcbiAgICA8TW9kYWxDb250ZXh0LlByb3ZpZGVyIHZhbHVlPlxuICAgICAgPFBvcnRhbCBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn0+XG4gICAgICAgIDxTdHlsZWRCYWNrZHJvcCByZWY9e2JhY2tkcm9wUmVmfT57Y2hpbGRyZW59PC9TdHlsZWRCYWNrZHJvcD5cbiAgICAgIDwvUG9ydGFsPlxuICAgIDwvTW9kYWxDb250ZXh0LlByb3ZpZGVyPlxuICApO1xuXG50eXBlIEZvY3VzVHJhcFByb3BzID0ge1xuICBvblBvc3REZWFjdGl2YXRlOiAoKSA9PiB2b2lkO1xuICBiYWNrZHJvcFJlZjogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcbiAgbW9kYWxSZWY6IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XG59ICYgUGljazxNb2RhbFByb3BzLCBcImlzRGlzbWlzc2libGVcIiB8IFwicG9ydGFsQ29udGFpbmVyXCI+O1xuXG5mdW5jdGlvbiBGb2N1c1RyYXAoe1xuICBvblBvc3REZWFjdGl2YXRlLFxuICBpc0Rpc21pc3NpYmxlLFxuICBwb3J0YWxDb250YWluZXIsXG4gIGNoaWxkcmVuLFxuICBiYWNrZHJvcFJlZixcbiAgbW9kYWxSZWYsXG59OiBQcm9wc1dpdGhDaGlsZHJlbjxGb2N1c1RyYXBQcm9wcz4pIHtcbiAgY29uc3QgcG9ydGFsQ29udGFpbmVyRWxlbWVudCA9IHVzZVBvcnRhbENvbnRhaW5lckVsZW1lbnQocG9ydGFsQ29udGFpbmVyKTtcblxuICBjb25zdCBoYW5kbGVDbGlja091dHNpZGVEZWFjdGl2YXRlcyA9IChldnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KSA9PiB7XG4gICAgLy8gRG8gbm90IGNsb3NlIG9uIGNsaWNrIHRoYXQgb2NjdXJzIG9uIGVsZW1lbnRzIHdpdGhpbiB0aGUgc2FtZSBwb3J0YWwsIGZvciBlZywgZHJvcGRvd24gYW5kIHNlbGVjdCBtZW51c1xuICAgIGlmIChcbiAgICAgIHBvcnRhbENvbnRhaW5lckVsZW1lbnQuY29udGFpbnMoZXZ0LnRhcmdldCBhcyBIVE1MRWxlbWVudCkgJiZcbiAgICAgIGV2dC50YXJnZXQgIT09IGJhY2tkcm9wUmVmLmN1cnJlbnRcbiAgICApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIGlzRGlzbWlzc2libGU7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8Rm9jdXNUcmFwV3JhcHBlclxuICAgICAgYWN0aXZlXG4gICAgICBmb2N1c1RyYXBPcHRpb25zPXt7XG4gICAgICAgIGNsaWNrT3V0c2lkZURlYWN0aXZhdGVzOiBoYW5kbGVDbGlja091dHNpZGVEZWFjdGl2YXRlcyxcbiAgICAgICAgZXNjYXBlRGVhY3RpdmF0ZXM6IGlzRGlzbWlzc2libGUsIC8vIGRlLWFjdGl2YXRlIGZvY3VzIHRyYXAgb24gZXNjYXBlIGtleVxuICAgICAgICBwcmV2ZW50U2Nyb2xsOiB0cnVlLFxuICAgICAgICBmYWxsYmFja0ZvY3VzOiBtb2RhbFJlZi5jdXJyZW50LFxuICAgICAgICBvblBvc3REZWFjdGl2YXRlLFxuICAgICAgfX1cbiAgICA+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9Gb2N1c1RyYXBXcmFwcGVyPlxuICApO1xufVxuXG5jb25zdCBIb3Jpem9udGFsT2Zmc2V0ID0gKHtcbiAgY2hpbGRyZW4sXG4gIGlzRnVsbFNjcmVlbixcbiAgaXNNYXhXaWR0aExpbWl0LFxuICBoZWlnaHQsXG59OiBQYXJ0aWFsPE1vZGFsUHJvcHM+ICYgeyBoZWlnaHQ/OiBzdHJpbmcgfSkgPT4gKFxuICA8Qm94IHNwYWNlPXtbbW9iaWxlU2l6ZSwgZGVza3RvcFNpemVdfSB2U3BhY2U9XCJ6ZXJvXCIgaGVpZ2h0PXtoZWlnaHR9PlxuICAgIHtpc0Z1bGxTY3JlZW4gJiYgaXNNYXhXaWR0aExpbWl0ID8gKFxuICAgICAgPFN0eWxlZE1heFdpZHRoPntjaGlsZHJlbn08L1N0eWxlZE1heFdpZHRoPlxuICAgICkgOiAoXG4gICAgICBjaGlsZHJlblxuICAgICl9XG4gIDwvQm94PlxuKTtcblxuZnVuY3Rpb24gZ2V0SXNTaG9ydFZpZXdwb3J0KHdpbmRvdzogV2luZG93KTogYm9vbGVhbiB7XG4gIHJldHVybiAoXG4gICAgdHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIiAmJiB3aW5kb3cuaW5uZXJIZWlnaHQgPCBNSU5fVklFV1BPUlRfSEVJR0hUXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBNb2RhbCh7XG4gIGhlYWRlcixcbiAgc3ViSGVhZGVyLFxuICBsYWJlbEhlYWRlcixcbiAgY2hpbGRyZW4sXG4gIGltYWdlVXJsLFxuICBJbWFnZUNvbXBvbmVudCxcbiAgc2Vjb25kYXJ5QnV0dG9uLFxuICBjYW5jZWxCdXR0b25MYWJlbCxcbiAgaXNEaXNtaXNzaWJsZSA9IHRydWUsXG4gIGlzRnVsbFNjcmVlbixcbiAgaXNNYXhXaWR0aExpbWl0ID0gdHJ1ZSxcbiAgYWN0aW9uQnV0dG9uLFxuICByb2xlID0gXCJkaWFsb2dcIixcbiAgb25BY3Rpb24sXG4gIHNpemUgPSBcIm1cIixcbiAgcHJpdmF0ZVByb3BzOiB7IHNraXBQb3J0YWwgfSA9IHsgc2tpcFBvcnRhbDogZmFsc2UgfSxcbiAgcG9ydGFsQ29udGFpbmVyLFxuICBjbG9zZUJ1dHRvbkFyaWFMYWJlbCA9IFwiRGlzbWlzcyBEaWFsb2dcIixcbiAgXCJhcmlhLWxhYmVsXCI6IGFyaWFMYWJlbCxcbiAgXCJhcmlhLWRlc2NyaWJlZGJ5XCI6IGFyaWFEZXNjcmliZWRCeSxcbiAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG4gIGltYWdlQWx0LFxufTogTW9kYWxQcm9wcyk6IFJlYWN0LlJlYWN0RWxlbWVudCB7XG4gIGNvbnN0IG1vZGFsUmVmID0gdXNlUmVmKG51bGwpO1xuICBjb25zdCBiYWNrZHJvcFJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3Qgc3ViSGVhZGVySWQgPSB1c2VJZCgpO1xuICBjb25zdCB3aW5kb3cgPSB1c2VXaW5kb3coKTtcbiAgY29uc3QgeyBzY3JvbGxhYmxlUmVmLCBpc1Njcm9sbEJvdHRvbSwgaXNTY3JvbGxUb3AsIGhhc1Njcm9sbCB9ID1cbiAgICB1c2VTY3JvbGxEZXRlY3Rpb24oKTtcbiAgY29uc3QgW2lzU2hvcnRWaWV3cG9ydCwgc2V0SXNTaG9ydFZpZXdwb3J0XSA9IHVzZVN0YXRlKFxuICAgIGdldElzU2hvcnRWaWV3cG9ydCh3aW5kb3cpXG4gICk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBsZXQgcmVzaXplT2JzZXJ2ZXI6IFJlc2l6ZU9ic2VydmVyO1xuXG4gICAgaWYgKHR5cGVvZiBSZXNpemVPYnNlcnZlciAhPT0gXCJ1bmRlZmluZWRcIiAmJiBiYWNrZHJvcFJlZi5jdXJyZW50KSB7XG4gICAgICByZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB7XG4gICAgICAgIHNldElzU2hvcnRWaWV3cG9ydChnZXRJc1Nob3J0Vmlld3BvcnQod2luZG93KSk7XG4gICAgICB9KTtcblxuICAgICAgcmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShiYWNrZHJvcFJlZi5jdXJyZW50KTtcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKHJlc2l6ZU9ic2VydmVyKSB7XG4gICAgICAgIHJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgIH1cbiAgICB9O1xuICB9LCBbYmFja2Ryb3BSZWYsIHdpbmRvd10pO1xuXG4gIGNvbnN0IGhhbmRsZUNsb3NlID0gKCkgPT4ge1xuICAgIG9uQWN0aW9uKFwiY2FuY2VsXCIpO1xuICB9O1xuXG4gIGNvbnN0IGhhc0ltYWdlID0gaW1hZ2VVcmwgfHwgSW1hZ2VDb21wb25lbnQ7XG4gIGNvbnN0IEhlYWRpbmdDb21wb25lbnQgPSBpc1Nob3J0Vmlld3BvcnQgPyBIMyA6IEgyO1xuICBjb25zdCBpc0ltYWdlVmlzaWJsZSA9ICFpc1Nob3J0Vmlld3BvcnQgJiYgISFoYXNJbWFnZTtcbiAgY29uc3QgaG9yaXpvbnRhbE9mZnNldFByb3BzID0geyBpc0Z1bGxTY3JlZW4sIGlzTWF4V2lkdGhMaW1pdCB9O1xuXG4gIGNvbnN0IGNsb3NlQnV0dG9uID0gaXNEaXNtaXNzaWJsZSAmJiAoXG4gICAgPFN0eWxlZFhDb250YWluZXI+XG4gICAgICA8UGljdG9ncmFtQnV0dG9uXG4gICAgICAgIHZhcmlhbnQ9XCJ0ZXJ0aWFyeVwiXG4gICAgICAgIGljb249XCJ4XCJcbiAgICAgICAgc2l6ZT1cInNcIlxuICAgICAgICBvbkNsaWNrPXtoYW5kbGVDbG9zZX1cbiAgICAgICAgYXJpYS1sYWJlbD17Y2xvc2VCdXR0b25BcmlhTGFiZWx9XG4gICAgICAvPlxuICAgIDwvU3R5bGVkWENvbnRhaW5lcj5cbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxXcmFwcGVyXG4gICAgICBza2lwUG9ydGFsPXtza2lwUG9ydGFsfVxuICAgICAgcG9ydGFsQ29udGFpbmVyPXtwb3J0YWxDb250YWluZXJ9XG4gICAgICBiYWNrZHJvcFJlZj17YmFja2Ryb3BSZWZ9XG4gICAgPlxuICAgICAgPEZvY3VzVHJhcFxuICAgICAgICBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn1cbiAgICAgICAgaXNEaXNtaXNzaWJsZT17aXNEaXNtaXNzaWJsZX1cbiAgICAgICAgb25Qb3N0RGVhY3RpdmF0ZT17aGFuZGxlQ2xvc2V9XG4gICAgICAgIGJhY2tkcm9wUmVmPXtiYWNrZHJvcFJlZn1cbiAgICAgICAgbW9kYWxSZWY9e21vZGFsUmVmfVxuICAgICAgPlxuICAgICAgICA8U3R5bGVkTW9kYWxXcmFwcGVyXG4gICAgICAgICAgcmVmPXttb2RhbFJlZn1cbiAgICAgICAgICByb2xlPXtyb2xlfVxuICAgICAgICAgIGRhdGEtZTJlLXRlc3QtaWQ9e2RhdGFFMmVUZXN0SWR9XG4gICAgICAgICAgZGF0YS1kcy1pZD1cIk1vZGFsXCJcbiAgICAgICAgICBpc0Z1bGxTY3JlZW49e2lzRnVsbFNjcmVlbn1cbiAgICAgICAgICBzaXplPXtzaXplfVxuICAgICAgICAgIGFyaWEtbGFiZWw9e2FyaWFMYWJlbCB8fCBoZWFkZXJ9XG4gICAgICAgICAgYXJpYS1kZXNjcmliZWRieT17XG4gICAgICAgICAgICBzdWJIZWFkZXIgPyBhcHBlbmRJZChhcmlhRGVzY3JpYmVkQnksIHN1YkhlYWRlcklkKSA6IGFyaWFEZXNjcmliZWRCeVxuICAgICAgICAgIH1cbiAgICAgICAgPlxuICAgICAgICAgIDxDb250YWluZXIgZWxldmF0aW9uPXs0fT5cbiAgICAgICAgICAgIDxCb3ggc3BhY2U9XCJ6ZXJvXCIgdlNwYWNlPXtbbW9iaWxlU2l6ZSwgZGVza3RvcFNpemVdfT5cbiAgICAgICAgICAgICAgPFN0eWxlZElubmVyIGlzRnVsbFNjcmVlbj17aXNGdWxsU2NyZWVufSBzaXplPXtzaXplfT5cbiAgICAgICAgICAgICAgICA8SG9yaXpvbnRhbE9mZnNldCB7Li4uaG9yaXpvbnRhbE9mZnNldFByb3BzfT5cbiAgICAgICAgICAgICAgICAgIDxCb3ggc3BhY2U9XCJ6ZXJvXCIgYlNwYWNlPVwic1wiPlxuICAgICAgICAgICAgICAgICAgICA8U3RhY2sgc3BhY2U9e2lzSW1hZ2VWaXNpYmxlID8gW1wic1wiLCBcImxcIl0gOiBcInplcm9cIn0+XG4gICAgICAgICAgICAgICAgICAgICAge2lzSW1hZ2VWaXNpYmxlICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAoaW1hZ2VVcmwgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxCb3ggc3BhY2U9XCJ6ZXJvXCIgdFNwYWNlPXtbXCJ4bFwiLCBcImxcIl19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRJbWcgc3JjPXtpbWFnZVVybH0gYWx0PXtpbWFnZUFsdH0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8SW1hZ2VDb21wb25lbnQgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICAgIDxJbmxpbmUgYWxpZ25JdGVtcz1cInNwYWNlQmV0d2VlblwiIG5vV3JhcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxTdGFjayBzcGFjZT1cInh4c1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7bGFiZWxIZWFkZXIgJiYgPEg2IGFzPVwiZGl2XCI+e2xhYmVsSGVhZGVyfTwvSDY+fVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8U3RhY2sgc3BhY2U9XCJ6ZXJvXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhlYWRpbmdDb21wb25lbnQgYXM9XCJoMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2hlYWRlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0hlYWRpbmdDb21wb25lbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3N1YkhlYWRlciAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SDQgYXM9XCJoMlwiIGNvbG9yPVwidGVydGlhcnlcIiBpZD17c3ViSGVhZGVySWR9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7c3ViSGVhZGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9IND5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtjbG9zZUJ1dHRvbn1cbiAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZT5cbiAgICAgICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgIDwvSG9yaXpvbnRhbE9mZnNldD5cblxuICAgICAgICAgICAgICAgIDxTdHlsZWRCb2R5XG4gICAgICAgICAgICAgICAgICByZWY9e3Njcm9sbGFibGVSZWZ9XG4gICAgICAgICAgICAgICAgICBzaXplPXtzaXplfVxuICAgICAgICAgICAgICAgICAgaXNGdWxsU2NyZWVuPXtpc0Z1bGxTY3JlZW59XG4gICAgICAgICAgICAgICAgICBib3JkZXJCb3R0b209e2hhc1Njcm9sbCAmJiAhaXNTY3JvbGxCb3R0b219XG4gICAgICAgICAgICAgICAgICBib3JkZXJUb3A9e2hhc1Njcm9sbCAmJiAhaXNTY3JvbGxUb3B9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPEJveCBzcGFjZT1cInplcm9cIiB2U3BhY2U9XCJ4eHhzXCIgaGVpZ2h0PVwiMTAwJVwiPlxuICAgICAgICAgICAgICAgICAgICA8SG9yaXpvbnRhbE9mZnNldCB7Li4uaG9yaXpvbnRhbE9mZnNldFByb3BzfSBoZWlnaHQ9XCIxMDAlXCI+XG4gICAgICAgICAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgICAgICAgICA8L0hvcml6b250YWxPZmZzZXQ+XG4gICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICA8L1N0eWxlZEJvZHk+XG5cbiAgICAgICAgICAgICAgICB7KGFjdGlvbkJ1dHRvbiB8fCBjYW5jZWxCdXR0b25MYWJlbCB8fCBzZWNvbmRhcnlCdXR0b24pICYmIChcbiAgICAgICAgICAgICAgICAgIDxIb3Jpem9udGFsT2Zmc2V0IHsuLi5ob3Jpem9udGFsT2Zmc2V0UHJvcHN9PlxuICAgICAgICAgICAgICAgICAgICA8Rm9vdGVyIGlzU2hvcnRWaWV3cG9ydD17aXNTaG9ydFZpZXdwb3J0fT5cbiAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uR3JvdXBcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbkJ1dHRvbj17YWN0aW9uQnV0dG9ufVxuICAgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kYXJ5QnV0dG9uPXtzZWNvbmRhcnlCdXR0b259XG4gICAgICAgICAgICAgICAgICAgICAgICBjYW5jZWxCdXR0b25UZXh0PXtjYW5jZWxCdXR0b25MYWJlbH1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQnV0dG9uQ2xpY2s9e29uQWN0aW9ufVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvRm9vdGVyPlxuICAgICAgICAgICAgICAgICAgPC9Ib3Jpem9udGFsT2Zmc2V0PlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvU3R5bGVkSW5uZXI+XG4gICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgPC9TdHlsZWRNb2RhbFdyYXBwZXI+XG4gICAgICA8L0ZvY3VzVHJhcD5cbiAgICA8L1dyYXBwZXI+XG4gICk7XG59XG5cbk1vZGFsLlN0YWNrID0gTW9kYWxTdGFjaztcbk1vZGFsLlRleHQgPSBNb2RhbFRleHQ7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBME5rQiJ9 */"),StyledMaxWidth=(0,_styled.default)("div",{target:"elkk7m15",label:"StyledMaxWidth"})(({theme})=>({maxWidth:theme.variables.size.dimension.modal.fullScreenContentWidth,margin:"0 auto",height:"100%"}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUGF0dGVybnMvTW9kYWwvTW9kYWwudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9QYXR0ZXJucy9Nb2RhbC9Nb2RhbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgcmVhY3QvanN4LXByb3BzLW5vLXNwcmVhZGluZyAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVhY3QvanN4LW5vLXVzZWxlc3MtZnJhZ21lbnQgKi9cbmltcG9ydCB0eXBlIHsgUmVmT2JqZWN0LCBQcm9wc1dpdGhDaGlsZHJlbiB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFJlYWN0LCB7IHVzZU1lbW8sIHVzZVJlZiwgdXNlSWQsIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHR5cGUgeyBUaGVtZSB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHsga2V5ZnJhbWVzIH0gZnJvbSBcIkBlbW90aW9uL3JlYWN0XCI7XG5pbXBvcnQgdHlwZSB7IFBvcnRhbFByb3BzIH0gZnJvbSBcIi4uLy4uL1BvcnRhbC9Qb3J0YWxcIjtcbmltcG9ydCB7IFBvcnRhbCwgdXNlUG9ydGFsQ29udGFpbmVyRWxlbWVudCB9IGZyb20gXCIuLi8uLi9Qb3J0YWwvUG9ydGFsXCI7XG5pbXBvcnQgeyBIMiwgSDQsIEg2LCBIMyB9IGZyb20gXCIuLi8uLi9UeXBvZ3JhcGh5L0hlYWRlci9IZWFkZXJcIjtcbmltcG9ydCB0eXBlIHsgU3RhY2tQcm9wcyB9IGZyb20gXCIuLi8uLi9TdGFjay9TdGFja1wiO1xuaW1wb3J0IHsgU3RhY2sgfSBmcm9tIFwiLi4vLi4vU3RhY2svU3RhY2tcIjtcbmltcG9ydCB7IENvbnRhaW5lciB9IGZyb20gXCIuLi8uLi9Db250YWluZXIvQ29udGFpbmVyXCI7XG5pbXBvcnQgeyBCb3ggfSBmcm9tIFwiLi4vLi4vQm94L0JveFwiO1xuXG5pbXBvcnQgeyBJbmxpbmUgfSBmcm9tIFwiLi4vLi4vSW5saW5lL0lubGluZVwiO1xuaW1wb3J0IHR5cGUgeyBCdXR0b25Hcm91cEJ1dHRvblByb3BzIH0gZnJvbSBcIi4uL0J1dHRvbkdyb3VwL0J1dHRvbkdyb3VwXCI7XG5pbXBvcnQgeyBCdXR0b25Hcm91cCB9IGZyb20gXCIuLi9CdXR0b25Hcm91cC9CdXR0b25Hcm91cFwiO1xuaW1wb3J0IHsgUGljdG9ncmFtQnV0dG9uIH0gZnJvbSBcIi4uLy4uL1BpY3RvZ3JhbUJ1dHRvbi9QaWN0b2dyYW1CdXR0b25cIjtcbmltcG9ydCB0eXBlIHsgVGV4dFByb3BzIH0gZnJvbSBcIi4uLy4uL1R5cG9ncmFwaHkvVGV4dC9UZXh0XCI7XG5pbXBvcnQgeyBUZXh0IH0gZnJvbSBcIi4uLy4uL1R5cG9ncmFwaHkvVGV4dC9UZXh0XCI7XG5pbXBvcnQgeyB1c2VSZXNwb25zaXZlVmFsdWUgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL21lZGlhUXVlcmllc1wiO1xuaW1wb3J0IHsgdXNlU2Nyb2xsRGV0ZWN0aW9uIH0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZC91c2VTY3JvbGxEZXRlY3Rpb25cIjtcbmltcG9ydCB7IE1vZGFsQ29udGV4dCB9IGZyb20gXCIuL01vZGFsQ29udGV4dFwiO1xuaW1wb3J0IHsgRm9jdXNUcmFwV3JhcHBlciB9IGZyb20gXCIuLi8uLi8uLi9zaGFyZWQvRm9jdXNUcmFwV3JhcHBlclwiO1xuaW1wb3J0IHsgYXBwZW5kSWQgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL2FwcGVuZElkXCI7XG5pbXBvcnQgeyB1c2VXaW5kb3cgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL3VzZVdpbmRvd1wiO1xuXG50eXBlIEJhc2VQcm9wcyA9IHtcbiAgaGVhZGVyPzogc3RyaW5nO1xuICBvbkFjdGlvbj86IChhY3Rpb246IFwiY2FuY2VsXCIgfCBcImFjdGlvblwiKSA9PiB2b2lkO1xuICByb2xlPzogXCJkaWFsb2dcIiB8IFwiYWxlcnRkaWFsb2dcIjtcbiAgbGFiZWxIZWFkZXI/OiBzdHJpbmc7XG4gIC8qKiBUaGUgYmxhY2sgY29sb3IgaXMgZ29pbmcgdG8gYmUgcmVwbGFjZWQgd2l0aCBncmF5IG9uZSAqL1xuICBzdWJIZWFkZXI/OiBzdHJpbmc7XG4gIC8qKiBUZXh0IGFuZCBvdGhlciBwcm9wcyBmb3IgYWN0aW9uIEJ1dHRvbiAqL1xuICBhY3Rpb25CdXR0b24/OiBCdXR0b25Hcm91cEJ1dHRvblByb3BzO1xuICAvKiogVGV4dCBhbmQgb3RoZXIgcHJvcHMgZm9yIGFjdGlvbiBCdXR0b24gKi9cbiAgc2Vjb25kYXJ5QnV0dG9uPzogQnV0dG9uR3JvdXBCdXR0b25Qcm9wcztcbiAgLyoqIEBkZXByZWNhdGVkIFVzZSBzZWNvbmRhcnlCdXR0b24gdG8gcGFzcyBpbiB0ZXh0IGFuZCBvdGhlciBwcm9wcyBmb3Igc2Vjb25kYXJ5IGJ1dHRvbiAqL1xuICBjYW5jZWxCdXR0b25MYWJlbD86IHN0cmluZztcbiAgLyoqIEFpbSB0byB1c2UgPE1vZGFsLlRleHQ+IGFuZCA8TW9kYWwuU3RhY2s+ICovXG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuICBcImRhdGEtZTJlLXRlc3QtaWRcIj86IHN0cmluZztcbiAgcHJpdmF0ZVByb3BzPzogeyBza2lwUG9ydGFsPzogYm9vbGVhbiB9O1xuICAvKiogSXQncyBhIGJhZCBwYXR0ZXJuIHRvIHVzZSBub24tZGlzbWlzc2libGUgTW9kYWwgKi9cbiAgaXNEaXNtaXNzaWJsZT86IGJvb2xlYW47XG4gIGlzRnVsbFNjcmVlbj86IGJvb2xlYW47XG4gIGlzTWF4V2lkdGhMaW1pdD86IGJvb2xlYW47XG4gIHNpemU/OiBcIm1cIiB8IFwibFwiO1xuICBjbG9zZUJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgXCJhcmlhLWxhYmVsXCI/OiBzdHJpbmc7XG4gIFwiYXJpYS1kZXNjcmliZWRieVwiPzogc3RyaW5nO1xuICAvKiogQWx0IHRleHQgZm9yIHRoZSBtb2RhbCBpbWFnZSAqL1xufTtcblxudHlwZSBDb25kaXRpb25hbFByb3BzID1cbiAgfCB7XG4gICAgICAvKiogQXNwZWN0IHJhdGlvIDE2OjkgKi9cbiAgICAgIGltYWdlVXJsPzogc3RyaW5nO1xuICAgICAgaW1hZ2VBbHQ/OiBzdHJpbmc7XG4gICAgICBJbWFnZUNvbXBvbmVudD86IG5ldmVyO1xuICAgIH1cbiAgfCB7XG4gICAgICBpbWFnZVVybD86IG5ldmVyO1xuICAgICAgaW1hZ2VBbHQ/OiBuZXZlcjtcbiAgICAgIC8qKiBBY2NlcHQgcmF0aW8gMTY6OSAqL1xuICAgICAgSW1hZ2VDb21wb25lbnQ/OiBSZWFjdC5FbGVtZW50VHlwZTxhbnk+O1xuICAgIH07XG5cbmV4cG9ydCB0eXBlIE1vZGFsUHJvcHMgPSBCYXNlUHJvcHMgJlxuICBDb25kaXRpb25hbFByb3BzICZcbiAgUGljazxQb3J0YWxQcm9wcywgXCJwb3J0YWxDb250YWluZXJcIj47XG5cbmV4cG9ydCBjb25zdCBTdHlsZWRCYWNrZHJvcCA9IHN0eWxlZC5kaXY8UGFydGlhbDxCYXNlUHJvcHM+PigoeyB0aGVtZSB9KSA9PiB7XG4gIGNvbnN0IGZhZGVJbkJhY2tkcm9wID0gdXNlTWVtbyhcbiAgICAoKSA9PlxuICAgICAga2V5ZnJhbWVzYFxuICAgICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6ICR7dGhlbWUudmFyaWFibGVzLm9wYWNpdHkuaGlkZGVufTtcbiAgICAgIH1cbiAgICAgIHRvIHtcbiAgICAgICAgb3BhY2l0eTogJHt0aGVtZS52YXJpYWJsZXMub3BhY2l0eS52aXNpYmxlfTtcbiAgICAgIH1cbiAgICBgLFxuICAgIFt0aGVtZS52YXJpYWJsZXMub3BhY2l0eS5oaWRkZW4sIHRoZW1lLnZhcmlhYmxlcy5vcGFjaXR5LnZpc2libGVdXG4gICk7XG4gIHJldHVybiB7XG4gICAgcG9zaXRpb246IFwiZml4ZWRcIixcbiAgICB0b3A6IDAsXG4gICAgbGVmdDogMCxcbiAgICB6SW5kZXg6IHRoZW1lLnZhcmlhYmxlcy56SW5kZXgubW9kYWwsXG4gICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgIGhlaWdodDogXCIxMDBkdmhcIixcbiAgICBiYWNrZ3JvdW5kOiB0aGVtZS52YWx1ZXMuY29sb3IuYmFja2dyb3VuZC5iYWNrZHJvcC5kZWZhdWx0LFxuICAgIGRpc3BsYXk6IFwiZmxleFwiLFxuICAgIGZsZXhEaXJlY3Rpb246IFwiY29sdW1uXCIsXG4gICAganVzdGlmeUNvbnRlbnQ6IFwiY2VudGVyXCIsXG4gICAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbiAgICBmbGV4OiBcIjEgMCBhdXRvXCIsXG4gICAgYW5pbWF0aW9uOiBgJHtmYWRlSW5CYWNrZHJvcH0gJHt0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLm1vZGFsQmFja2Ryb3Aub3Blbi5kdXJhdGlvbn0gJHt0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLm1vZGFsQmFja2Ryb3Aub3Blbi50aW1pbmdGdW5jdGlvbn0gYm90aGAsXG4gIH07XG59KTtcblxuY29uc3QgbW9iaWxlU2l6ZSA9IFwibVwiO1xuY29uc3QgZGVza3RvcFNpemUgPSBcInhsXCI7XG5jb25zdCBnZXREZXNrdG9wU3BhY2UgPSAodGhlbWU6IFRoZW1lKSA9PiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLmw7XG5jb25zdCBnZXREZXNrdG9wSW5uZXJTcGFjZSA9ICh0aGVtZTogVGhlbWUpID0+XG4gIHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmdbZGVza3RvcFNpemVdO1xuY29uc3QgZ2V0TW9iaWxlU3BhY2UgPSAodGhlbWU6IFRoZW1lKSA9PiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLm07XG5jb25zdCBnZXRNb2JpbGVJbm5lclNwYWNlID0gKHRoZW1lOiBUaGVtZSkgPT5cbiAgdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZ1ttb2JpbGVTaXplXTtcbi8vIE1pbmltdW0gdmlld3BvcnQgaGVpZ2h0IG9uIHdoaWNoIGltYWdlIGlzIHNob3duLlxuY29uc3QgTUlOX1ZJRVdQT1JUX0hFSUdIVCA9IDQyMDtcblxuY29uc3QgU3R5bGVkTW9kYWxXcmFwcGVyID0gc3R5bGVkLmRpdjxQYXJ0aWFsPE1vZGFsUHJvcHM+PihcbiAgKHsgdGhlbWUsIGlzRnVsbFNjcmVlbiwgc2l6ZSB9KSA9PiB7XG4gICAgY29uc3QgZmFkZUluTW9kYWwgPSB1c2VNZW1vKFxuICAgICAgKCkgPT5cbiAgICAgICAga2V5ZnJhbWVzYFxuICAgICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6ICR7dGhlbWUudmFyaWFibGVzLm9wYWNpdHkuaGlkZGVufTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwcHgpO1xuICAgICAgfVxuICAgICAgdG8ge1xuICAgICAgICAgIG9wYWNpdHk6ICR7dGhlbWUudmFyaWFibGVzLm9wYWNpdHkudmlzaWJsZX07XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICAgIH1cbiAgICBgLFxuICAgICAgW3RoZW1lLnZhcmlhYmxlcy5vcGFjaXR5LmhpZGRlbiwgdGhlbWUudmFyaWFibGVzLm9wYWNpdHkudmlzaWJsZV1cbiAgICApO1xuICAgIHJldHVybiB7XG4gICAgICBhbmltYXRpb246IGAke2ZhZGVJbk1vZGFsfSAke3RoZW1lLnZhcmlhYmxlcy5hbmltYXRpb24ubW9kYWwub3Blbi5kdXJhdGlvbn0gJHt0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLm1vZGFsLm9wZW4uZGVsYXl9ICR7dGhlbWUudmFyaWFibGVzLmFuaW1hdGlvbi5tb2RhbC5vcGVuLnRpbWluZ0Z1bmN0aW9ufSBib3RoYCxcbiAgICAgIC4uLnVzZVJlc3BvbnNpdmVWYWx1ZSh7XG4gICAgICAgIHdpZHRoOiBbXG4gICAgICAgICAgYGNhbGMoMTAwJSAtICR7Z2V0TW9iaWxlU3BhY2UodGhlbWUpfSAqIDIpYCxcbiAgICAgICAgICBpc0Z1bGxTY3JlZW5cbiAgICAgICAgICAgID8gYGNhbGMoMTAwJSAtICR7Z2V0RGVza3RvcFNwYWNlKHRoZW1lKX0gKiAyKWBcbiAgICAgICAgICAgIDogdGhlbWUudmFyaWFibGVzLnNpemUuZGltZW5zaW9uLm1vZGFsLndpZHRoW3NpemVdLFxuICAgICAgICBdLFxuICAgICAgfSksXG4gICAgfTtcbiAgfVxuKTtcblxuY29uc3QgU3R5bGVkSW5uZXIgPSBzdHlsZWQuZGl2PFBhcnRpYWw8TW9kYWxQcm9wcz4+KFxuICAoeyB0aGVtZSwgaXNGdWxsU2NyZWVuLCBzaXplIH0pID0+IHtcbiAgICBjb25zdCBtb2JpbGVWZXJ0aWNhbFNwYWNlID0gZ2V0TW9iaWxlU3BhY2UodGhlbWUpO1xuICAgIGNvbnN0IG1vYmlsZUlubmVyVmVydGljYWxTcGFjZSA9IGdldE1vYmlsZUlubmVyU3BhY2UodGhlbWUpO1xuICAgIGNvbnN0IGRlc2t0b3BWZXJ0aWNhbFNwYWNlID0gZ2V0RGVza3RvcFNwYWNlKHRoZW1lKTtcbiAgICBjb25zdCBkZXNrdG9wSW5uZXJWZXJ0aWNhbFNwYWNlID0gZ2V0RGVza3RvcElubmVyU3BhY2UodGhlbWUpO1xuXG4gICAgLy8gZnVsbHNjcmVlbiBhbmQgTCBzaXplIGRvbid0IGRlcGVuZCBvbiBjb250ZW50IHNpemVcbiAgICAvLyBMIHNpemUgaGVpZ2h0IGhhcyBtYXhIaWVnaHQgcmVzaXplIHVudGlsIDgwMHB4XG4gICAgLy8gZnVsbHNjcmVlbiBtYXhIZWlnaHQgaXMgbm90IGxpbWl0ZWRcbiAgICAvLyBNIHNpemUgaGVpZ2h0IGhhcyBjb250ZW50IHNpemUgYW5kIGNlbnRlcmVkIGF0IHRvcCBhbmQgbWF4SGVpZ2h0IGlzIG5vdCBsaW1pdGVkXG5cbiAgICBjb25zdCBnZXREZXNrdG9wSGVpZ2h0ID0gKCkgPT4ge1xuICAgICAgaWYgKGlzRnVsbFNjcmVlbikge1xuICAgICAgICByZXR1cm4gYGNhbGMoMTAwZHZoIC0gJHtkZXNrdG9wVmVydGljYWxTcGFjZX0gKiAyIC0gJHtkZXNrdG9wSW5uZXJWZXJ0aWNhbFNwYWNlfSAqIDIpYDtcbiAgICAgIH1cbiAgICAgIGlmIChzaXplID09PSBcImxcIikge1xuICAgICAgICByZXR1cm4gYGNhbGMoMTAwZHZoIC0gJHtkZXNrdG9wVmVydGljYWxTcGFjZX0gKiAyIC0gJHtkZXNrdG9wSW5uZXJWZXJ0aWNhbFNwYWNlfSAqIDIgLSAke3RoZW1lLnZhcmlhYmxlcy5zaXplLmRpbWVuc2lvbi5tb2RhbC5tYXJnaW4ubH0gKiAyKWA7XG4gICAgICB9XG4gICAgICByZXR1cm4gXCJhdXRvXCI7XG4gICAgfTtcblxuICAgIGNvbnN0IGdldERlc2t0b3BNYXhIZWlnaHQgPSAoKSA9PiB7XG4gICAgICBpZiAoaXNGdWxsU2NyZWVuKSB7XG4gICAgICAgIHJldHVybiBgYXV0b2A7XG4gICAgICB9XG4gICAgICBpZiAoc2l6ZSA9PT0gXCJsXCIpIHtcbiAgICAgICAgcmV0dXJuIGBjYWxjKCR7dGhlbWUudmFyaWFibGVzLnNpemUuZGltZW5zaW9uLm1vZGFsLm1heEhlaWdodC5sfSAtICR7ZGVza3RvcElubmVyVmVydGljYWxTcGFjZX0gKiAyKWA7XG4gICAgICB9XG4gICAgICByZXR1cm4gYGNhbGMoMTAwZHZoIC0gJHtkZXNrdG9wVmVydGljYWxTcGFjZX0gKiAyIC0gJHtkZXNrdG9wSW5uZXJWZXJ0aWNhbFNwYWNlfSAqIDIpYDtcbiAgICB9O1xuXG4gICAgY29uc3QgZnVsbFNjcmVlbk1vYmlsZSA9IGBjYWxjKDEwMGR2aCAtICR7bW9iaWxlVmVydGljYWxTcGFjZX0gKiAyIC0gJHttb2JpbGVJbm5lclZlcnRpY2FsU3BhY2V9ICogMilgO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGRpc3BsYXk6IFwiZmxleFwiLFxuICAgICAgLi4udXNlUmVzcG9uc2l2ZVZhbHVlKHtcbiAgICAgICAgaGVpZ2h0OiBbXG4gICAgICAgICAgc2l6ZSA9PT0gXCJsXCIgfHwgaXNGdWxsU2NyZWVuID8gZnVsbFNjcmVlbk1vYmlsZSA6IFwiYXV0b1wiLFxuICAgICAgICAgIGdldERlc2t0b3BIZWlnaHQoKSxcbiAgICAgICAgXSxcbiAgICAgICAgbWF4SGVpZ2h0OiBbZnVsbFNjcmVlbk1vYmlsZSwgZ2V0RGVza3RvcE1heEhlaWdodCgpXSxcbiAgICAgIH0pLFxuXG4gICAgICBmbGV4RGlyZWN0aW9uOiBcImNvbHVtblwiLFxuICAgICAgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsXG4gICAgfTtcbiAgfVxuKTtcblxudHlwZSBTdHlsZWRCb2R5UHJvcHMgPSB7XG4gIGJvcmRlckJvdHRvbTogYm9vbGVhbjtcbiAgYm9yZGVyVG9wOiBib29sZWFuO1xufTtcblxuY29uc3QgU3R5bGVkQm9keSA9IHN0eWxlZC5kaXY8U3R5bGVkQm9keVByb3BzICYgUGFydGlhbDxNb2RhbFByb3BzPj4oXG4gICh7IHRoZW1lLCBib3JkZXJCb3R0b20sIGJvcmRlclRvcCwgc2l6ZSwgaXNGdWxsU2NyZWVuIH0pID0+ICh7XG4gICAgb3ZlcmZsb3dZOiBcImF1dG9cIixcbiAgICBtYXhIZWlnaHQ6IFwiMTAwJVwiLFxuXG4gICAgLi4uKChpc0Z1bGxTY3JlZW4gfHwgc2l6ZSA9PT0gXCJsXCIpICYmIHtcbiAgICAgIGZsZXg6IDEsXG4gICAgfSksXG5cbiAgICAuLi4oYm9yZGVyQm90dG9tICYmIHtcbiAgICAgIGJvcmRlckJvdHRvbTogYDFweCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5kaXZpZGVyLnByaW1hcnl9YCxcbiAgICB9KSxcbiAgICAuLi4oYm9yZGVyVG9wICYmIHtcbiAgICAgIGJvcmRlclRvcDogYDFweCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5kaXZpZGVyLnByaW1hcnl9YCxcbiAgICB9KSxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZEltZyA9IHN0eWxlZC5pbWcoKCkgPT4gKHtcbiAgd2lkdGg6IFwiMTAwJVwiLFxuICBhc3BlY3RSYXRpbzogXCIxNi85XCIsXG59KSk7XG5cbmNvbnN0IFN0eWxlZE1heFdpZHRoID0gc3R5bGVkLmRpdjxQYXJ0aWFsPE1vZGFsUHJvcHM+PigoeyB0aGVtZSB9KSA9PiAoe1xuICBtYXhXaWR0aDogdGhlbWUudmFyaWFibGVzLnNpemUuZGltZW5zaW9uLm1vZGFsLmZ1bGxTY3JlZW5Db250ZW50V2lkdGgsXG4gIG1hcmdpbjogXCIwIGF1dG9cIixcbiAgaGVpZ2h0OiBcIjEwMCVcIixcbn0pKTtcblxuY29uc3QgU3R5bGVkWENvbnRhaW5lciA9IHN0eWxlZC5kaXYoKHsgdGhlbWUgfSkgPT4gKHtcbiAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgLi4udXNlUmVzcG9uc2l2ZVZhbHVlKHtcbiAgICB0b3A6IFt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnMsIHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubF0sXG4gICAgcmlnaHQ6IFt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnMsIHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubF0sXG4gIH0pLFxufSkpO1xuXG5jb25zdCBNb2RhbFN0YWNrID0gKHsgY2hpbGRyZW4sIC4uLnJlc3QgfTogT21pdDxTdGFja1Byb3BzLCBcInNwYWNlXCI+KSA9PiAoXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC9qc3gtcHJvcHMtbm8tc3ByZWFkaW5nXG4gIDxTdGFjayB7Li4ucmVzdH0gc3BhY2U9XCJtXCI+XG4gICAge2NoaWxkcmVufVxuICA8L1N0YWNrPlxuKTtcblxuY29uc3QgTW9kYWxUZXh0ID0gKHtcbiAgY2hpbGRyZW4sXG4gIC4uLnJlc3Rcbn06IE9taXQ8VGV4dFByb3BzLCBcInNpemVcIiB8IFwidmFyaWFudFwiPikgPT4gKFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QvanN4LXByb3BzLW5vLXNwcmVhZGluZ1xuICA8VGV4dCB7Li4ucmVzdH0gc2l6ZT1cIm1cIiBjb2xvcj1cInRlcnRpYXJ5XCI+XG4gICAge2NoaWxkcmVufVxuICA8L1RleHQ+XG4pO1xuXG5jb25zdCBGb290ZXIgPSAoe1xuICBjaGlsZHJlbixcbiAgYWxpZ25JdGVtcyA9IFtcInN0cmV0Y2hcIiwgXCJyaWdodFwiXSxcbiAgaXNTaG9ydFZpZXdwb3J0LFxufToge1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlW10gfCBSZWFjdC5SZWFjdEVsZW1lbnQ7XG4gIGFsaWduSXRlbXM/OiBTdGFja1Byb3BzW1wiYWxpZ25JdGVtc1wiXTtcbiAgaXNTaG9ydFZpZXdwb3J0PzogYm9vbGVhbjtcbn0pID0+IChcbiAgPEJveCBzcGFjZT1cInplcm9cIiB0U3BhY2U9e2lzU2hvcnRWaWV3cG9ydCA/IFwibVwiIDogXCJsXCJ9PlxuICAgIDxTdGFjayBhbGlnbkl0ZW1zPXthbGlnbkl0ZW1zfT57Y2hpbGRyZW59PC9TdGFjaz5cbiAgPC9Cb3g+XG4pO1xuXG5jb25zdCBXcmFwcGVyID0gKHtcbiAgc2tpcFBvcnRhbCxcbiAgY2hpbGRyZW4sXG4gIHBvcnRhbENvbnRhaW5lcixcbiAgYmFja2Ryb3BSZWYsXG59OiB7XG4gIHNraXBQb3J0YWw6IGJvb2xlYW47XG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdEVsZW1lbnQ7XG4gIGJhY2tkcm9wUmVmOiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xufSAmIFBhcnRpYWw8TW9kYWxQcm9wcz4pOiBSZWFjdC5SZWFjdEVsZW1lbnQgPT5cbiAgc2tpcFBvcnRhbCA/IChcbiAgICA8PntjaGlsZHJlbn08Lz5cbiAgKSA6IChcbiAgICA8TW9kYWxDb250ZXh0LlByb3ZpZGVyIHZhbHVlPlxuICAgICAgPFBvcnRhbCBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn0+XG4gICAgICAgIDxTdHlsZWRCYWNrZHJvcCByZWY9e2JhY2tkcm9wUmVmfT57Y2hpbGRyZW59PC9TdHlsZWRCYWNrZHJvcD5cbiAgICAgIDwvUG9ydGFsPlxuICAgIDwvTW9kYWxDb250ZXh0LlByb3ZpZGVyPlxuICApO1xuXG50eXBlIEZvY3VzVHJhcFByb3BzID0ge1xuICBvblBvc3REZWFjdGl2YXRlOiAoKSA9PiB2b2lkO1xuICBiYWNrZHJvcFJlZjogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcbiAgbW9kYWxSZWY6IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XG59ICYgUGljazxNb2RhbFByb3BzLCBcImlzRGlzbWlzc2libGVcIiB8IFwicG9ydGFsQ29udGFpbmVyXCI+O1xuXG5mdW5jdGlvbiBGb2N1c1RyYXAoe1xuICBvblBvc3REZWFjdGl2YXRlLFxuICBpc0Rpc21pc3NpYmxlLFxuICBwb3J0YWxDb250YWluZXIsXG4gIGNoaWxkcmVuLFxuICBiYWNrZHJvcFJlZixcbiAgbW9kYWxSZWYsXG59OiBQcm9wc1dpdGhDaGlsZHJlbjxGb2N1c1RyYXBQcm9wcz4pIHtcbiAgY29uc3QgcG9ydGFsQ29udGFpbmVyRWxlbWVudCA9IHVzZVBvcnRhbENvbnRhaW5lckVsZW1lbnQocG9ydGFsQ29udGFpbmVyKTtcblxuICBjb25zdCBoYW5kbGVDbGlja091dHNpZGVEZWFjdGl2YXRlcyA9IChldnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KSA9PiB7XG4gICAgLy8gRG8gbm90IGNsb3NlIG9uIGNsaWNrIHRoYXQgb2NjdXJzIG9uIGVsZW1lbnRzIHdpdGhpbiB0aGUgc2FtZSBwb3J0YWwsIGZvciBlZywgZHJvcGRvd24gYW5kIHNlbGVjdCBtZW51c1xuICAgIGlmIChcbiAgICAgIHBvcnRhbENvbnRhaW5lckVsZW1lbnQuY29udGFpbnMoZXZ0LnRhcmdldCBhcyBIVE1MRWxlbWVudCkgJiZcbiAgICAgIGV2dC50YXJnZXQgIT09IGJhY2tkcm9wUmVmLmN1cnJlbnRcbiAgICApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIGlzRGlzbWlzc2libGU7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8Rm9jdXNUcmFwV3JhcHBlclxuICAgICAgYWN0aXZlXG4gICAgICBmb2N1c1RyYXBPcHRpb25zPXt7XG4gICAgICAgIGNsaWNrT3V0c2lkZURlYWN0aXZhdGVzOiBoYW5kbGVDbGlja091dHNpZGVEZWFjdGl2YXRlcyxcbiAgICAgICAgZXNjYXBlRGVhY3RpdmF0ZXM6IGlzRGlzbWlzc2libGUsIC8vIGRlLWFjdGl2YXRlIGZvY3VzIHRyYXAgb24gZXNjYXBlIGtleVxuICAgICAgICBwcmV2ZW50U2Nyb2xsOiB0cnVlLFxuICAgICAgICBmYWxsYmFja0ZvY3VzOiBtb2RhbFJlZi5jdXJyZW50LFxuICAgICAgICBvblBvc3REZWFjdGl2YXRlLFxuICAgICAgfX1cbiAgICA+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9Gb2N1c1RyYXBXcmFwcGVyPlxuICApO1xufVxuXG5jb25zdCBIb3Jpem9udGFsT2Zmc2V0ID0gKHtcbiAgY2hpbGRyZW4sXG4gIGlzRnVsbFNjcmVlbixcbiAgaXNNYXhXaWR0aExpbWl0LFxuICBoZWlnaHQsXG59OiBQYXJ0aWFsPE1vZGFsUHJvcHM+ICYgeyBoZWlnaHQ/OiBzdHJpbmcgfSkgPT4gKFxuICA8Qm94IHNwYWNlPXtbbW9iaWxlU2l6ZSwgZGVza3RvcFNpemVdfSB2U3BhY2U9XCJ6ZXJvXCIgaGVpZ2h0PXtoZWlnaHR9PlxuICAgIHtpc0Z1bGxTY3JlZW4gJiYgaXNNYXhXaWR0aExpbWl0ID8gKFxuICAgICAgPFN0eWxlZE1heFdpZHRoPntjaGlsZHJlbn08L1N0eWxlZE1heFdpZHRoPlxuICAgICkgOiAoXG4gICAgICBjaGlsZHJlblxuICAgICl9XG4gIDwvQm94PlxuKTtcblxuZnVuY3Rpb24gZ2V0SXNTaG9ydFZpZXdwb3J0KHdpbmRvdzogV2luZG93KTogYm9vbGVhbiB7XG4gIHJldHVybiAoXG4gICAgdHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIiAmJiB3aW5kb3cuaW5uZXJIZWlnaHQgPCBNSU5fVklFV1BPUlRfSEVJR0hUXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBNb2RhbCh7XG4gIGhlYWRlcixcbiAgc3ViSGVhZGVyLFxuICBsYWJlbEhlYWRlcixcbiAgY2hpbGRyZW4sXG4gIGltYWdlVXJsLFxuICBJbWFnZUNvbXBvbmVudCxcbiAgc2Vjb25kYXJ5QnV0dG9uLFxuICBjYW5jZWxCdXR0b25MYWJlbCxcbiAgaXNEaXNtaXNzaWJsZSA9IHRydWUsXG4gIGlzRnVsbFNjcmVlbixcbiAgaXNNYXhXaWR0aExpbWl0ID0gdHJ1ZSxcbiAgYWN0aW9uQnV0dG9uLFxuICByb2xlID0gXCJkaWFsb2dcIixcbiAgb25BY3Rpb24sXG4gIHNpemUgPSBcIm1cIixcbiAgcHJpdmF0ZVByb3BzOiB7IHNraXBQb3J0YWwgfSA9IHsgc2tpcFBvcnRhbDogZmFsc2UgfSxcbiAgcG9ydGFsQ29udGFpbmVyLFxuICBjbG9zZUJ1dHRvbkFyaWFMYWJlbCA9IFwiRGlzbWlzcyBEaWFsb2dcIixcbiAgXCJhcmlhLWxhYmVsXCI6IGFyaWFMYWJlbCxcbiAgXCJhcmlhLWRlc2NyaWJlZGJ5XCI6IGFyaWFEZXNjcmliZWRCeSxcbiAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG4gIGltYWdlQWx0LFxufTogTW9kYWxQcm9wcyk6IFJlYWN0LlJlYWN0RWxlbWVudCB7XG4gIGNvbnN0IG1vZGFsUmVmID0gdXNlUmVmKG51bGwpO1xuICBjb25zdCBiYWNrZHJvcFJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3Qgc3ViSGVhZGVySWQgPSB1c2VJZCgpO1xuICBjb25zdCB3aW5kb3cgPSB1c2VXaW5kb3coKTtcbiAgY29uc3QgeyBzY3JvbGxhYmxlUmVmLCBpc1Njcm9sbEJvdHRvbSwgaXNTY3JvbGxUb3AsIGhhc1Njcm9sbCB9ID1cbiAgICB1c2VTY3JvbGxEZXRlY3Rpb24oKTtcbiAgY29uc3QgW2lzU2hvcnRWaWV3cG9ydCwgc2V0SXNTaG9ydFZpZXdwb3J0XSA9IHVzZVN0YXRlKFxuICAgIGdldElzU2hvcnRWaWV3cG9ydCh3aW5kb3cpXG4gICk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBsZXQgcmVzaXplT2JzZXJ2ZXI6IFJlc2l6ZU9ic2VydmVyO1xuXG4gICAgaWYgKHR5cGVvZiBSZXNpemVPYnNlcnZlciAhPT0gXCJ1bmRlZmluZWRcIiAmJiBiYWNrZHJvcFJlZi5jdXJyZW50KSB7XG4gICAgICByZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB7XG4gICAgICAgIHNldElzU2hvcnRWaWV3cG9ydChnZXRJc1Nob3J0Vmlld3BvcnQod2luZG93KSk7XG4gICAgICB9KTtcblxuICAgICAgcmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShiYWNrZHJvcFJlZi5jdXJyZW50KTtcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKHJlc2l6ZU9ic2VydmVyKSB7XG4gICAgICAgIHJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgIH1cbiAgICB9O1xuICB9LCBbYmFja2Ryb3BSZWYsIHdpbmRvd10pO1xuXG4gIGNvbnN0IGhhbmRsZUNsb3NlID0gKCkgPT4ge1xuICAgIG9uQWN0aW9uKFwiY2FuY2VsXCIpO1xuICB9O1xuXG4gIGNvbnN0IGhhc0ltYWdlID0gaW1hZ2VVcmwgfHwgSW1hZ2VDb21wb25lbnQ7XG4gIGNvbnN0IEhlYWRpbmdDb21wb25lbnQgPSBpc1Nob3J0Vmlld3BvcnQgPyBIMyA6IEgyO1xuICBjb25zdCBpc0ltYWdlVmlzaWJsZSA9ICFpc1Nob3J0Vmlld3BvcnQgJiYgISFoYXNJbWFnZTtcbiAgY29uc3QgaG9yaXpvbnRhbE9mZnNldFByb3BzID0geyBpc0Z1bGxTY3JlZW4sIGlzTWF4V2lkdGhMaW1pdCB9O1xuXG4gIGNvbnN0IGNsb3NlQnV0dG9uID0gaXNEaXNtaXNzaWJsZSAmJiAoXG4gICAgPFN0eWxlZFhDb250YWluZXI+XG4gICAgICA8UGljdG9ncmFtQnV0dG9uXG4gICAgICAgIHZhcmlhbnQ9XCJ0ZXJ0aWFyeVwiXG4gICAgICAgIGljb249XCJ4XCJcbiAgICAgICAgc2l6ZT1cInNcIlxuICAgICAgICBvbkNsaWNrPXtoYW5kbGVDbG9zZX1cbiAgICAgICAgYXJpYS1sYWJlbD17Y2xvc2VCdXR0b25BcmlhTGFiZWx9XG4gICAgICAvPlxuICAgIDwvU3R5bGVkWENvbnRhaW5lcj5cbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxXcmFwcGVyXG4gICAgICBza2lwUG9ydGFsPXtza2lwUG9ydGFsfVxuICAgICAgcG9ydGFsQ29udGFpbmVyPXtwb3J0YWxDb250YWluZXJ9XG4gICAgICBiYWNrZHJvcFJlZj17YmFja2Ryb3BSZWZ9XG4gICAgPlxuICAgICAgPEZvY3VzVHJhcFxuICAgICAgICBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn1cbiAgICAgICAgaXNEaXNtaXNzaWJsZT17aXNEaXNtaXNzaWJsZX1cbiAgICAgICAgb25Qb3N0RGVhY3RpdmF0ZT17aGFuZGxlQ2xvc2V9XG4gICAgICAgIGJhY2tkcm9wUmVmPXtiYWNrZHJvcFJlZn1cbiAgICAgICAgbW9kYWxSZWY9e21vZGFsUmVmfVxuICAgICAgPlxuICAgICAgICA8U3R5bGVkTW9kYWxXcmFwcGVyXG4gICAgICAgICAgcmVmPXttb2RhbFJlZn1cbiAgICAgICAgICByb2xlPXtyb2xlfVxuICAgICAgICAgIGRhdGEtZTJlLXRlc3QtaWQ9e2RhdGFFMmVUZXN0SWR9XG4gICAgICAgICAgZGF0YS1kcy1pZD1cIk1vZGFsXCJcbiAgICAgICAgICBpc0Z1bGxTY3JlZW49e2lzRnVsbFNjcmVlbn1cbiAgICAgICAgICBzaXplPXtzaXplfVxuICAgICAgICAgIGFyaWEtbGFiZWw9e2FyaWFMYWJlbCB8fCBoZWFkZXJ9XG4gICAgICAgICAgYXJpYS1kZXNjcmliZWRieT17XG4gICAgICAgICAgICBzdWJIZWFkZXIgPyBhcHBlbmRJZChhcmlhRGVzY3JpYmVkQnksIHN1YkhlYWRlcklkKSA6IGFyaWFEZXNjcmliZWRCeVxuICAgICAgICAgIH1cbiAgICAgICAgPlxuICAgICAgICAgIDxDb250YWluZXIgZWxldmF0aW9uPXs0fT5cbiAgICAgICAgICAgIDxCb3ggc3BhY2U9XCJ6ZXJvXCIgdlNwYWNlPXtbbW9iaWxlU2l6ZSwgZGVza3RvcFNpemVdfT5cbiAgICAgICAgICAgICAgPFN0eWxlZElubmVyIGlzRnVsbFNjcmVlbj17aXNGdWxsU2NyZWVufSBzaXplPXtzaXplfT5cbiAgICAgICAgICAgICAgICA8SG9yaXpvbnRhbE9mZnNldCB7Li4uaG9yaXpvbnRhbE9mZnNldFByb3BzfT5cbiAgICAgICAgICAgICAgICAgIDxCb3ggc3BhY2U9XCJ6ZXJvXCIgYlNwYWNlPVwic1wiPlxuICAgICAgICAgICAgICAgICAgICA8U3RhY2sgc3BhY2U9e2lzSW1hZ2VWaXNpYmxlID8gW1wic1wiLCBcImxcIl0gOiBcInplcm9cIn0+XG4gICAgICAgICAgICAgICAgICAgICAge2lzSW1hZ2VWaXNpYmxlICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAoaW1hZ2VVcmwgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxCb3ggc3BhY2U9XCJ6ZXJvXCIgdFNwYWNlPXtbXCJ4bFwiLCBcImxcIl19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRJbWcgc3JjPXtpbWFnZVVybH0gYWx0PXtpbWFnZUFsdH0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8SW1hZ2VDb21wb25lbnQgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICAgIDxJbmxpbmUgYWxpZ25JdGVtcz1cInNwYWNlQmV0d2VlblwiIG5vV3JhcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxTdGFjayBzcGFjZT1cInh4c1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7bGFiZWxIZWFkZXIgJiYgPEg2IGFzPVwiZGl2XCI+e2xhYmVsSGVhZGVyfTwvSDY+fVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8U3RhY2sgc3BhY2U9XCJ6ZXJvXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhlYWRpbmdDb21wb25lbnQgYXM9XCJoMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2hlYWRlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0hlYWRpbmdDb21wb25lbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3N1YkhlYWRlciAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SDQgYXM9XCJoMlwiIGNvbG9yPVwidGVydGlhcnlcIiBpZD17c3ViSGVhZGVySWR9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7c3ViSGVhZGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9IND5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtjbG9zZUJ1dHRvbn1cbiAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZT5cbiAgICAgICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgIDwvSG9yaXpvbnRhbE9mZnNldD5cblxuICAgICAgICAgICAgICAgIDxTdHlsZWRCb2R5XG4gICAgICAgICAgICAgICAgICByZWY9e3Njcm9sbGFibGVSZWZ9XG4gICAgICAgICAgICAgICAgICBzaXplPXtzaXplfVxuICAgICAgICAgICAgICAgICAgaXNGdWxsU2NyZWVuPXtpc0Z1bGxTY3JlZW59XG4gICAgICAgICAgICAgICAgICBib3JkZXJCb3R0b209e2hhc1Njcm9sbCAmJiAhaXNTY3JvbGxCb3R0b219XG4gICAgICAgICAgICAgICAgICBib3JkZXJUb3A9e2hhc1Njcm9sbCAmJiAhaXNTY3JvbGxUb3B9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPEJveCBzcGFjZT1cInplcm9cIiB2U3BhY2U9XCJ4eHhzXCIgaGVpZ2h0PVwiMTAwJVwiPlxuICAgICAgICAgICAgICAgICAgICA8SG9yaXpvbnRhbE9mZnNldCB7Li4uaG9yaXpvbnRhbE9mZnNldFByb3BzfSBoZWlnaHQ9XCIxMDAlXCI+XG4gICAgICAgICAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgICAgICAgICA8L0hvcml6b250YWxPZmZzZXQ+XG4gICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICA8L1N0eWxlZEJvZHk+XG5cbiAgICAgICAgICAgICAgICB7KGFjdGlvbkJ1dHRvbiB8fCBjYW5jZWxCdXR0b25MYWJlbCB8fCBzZWNvbmRhcnlCdXR0b24pICYmIChcbiAgICAgICAgICAgICAgICAgIDxIb3Jpem9udGFsT2Zmc2V0IHsuLi5ob3Jpem9udGFsT2Zmc2V0UHJvcHN9PlxuICAgICAgICAgICAgICAgICAgICA8Rm9vdGVyIGlzU2hvcnRWaWV3cG9ydD17aXNTaG9ydFZpZXdwb3J0fT5cbiAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uR3JvdXBcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbkJ1dHRvbj17YWN0aW9uQnV0dG9ufVxuICAgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kYXJ5QnV0dG9uPXtzZWNvbmRhcnlCdXR0b259XG4gICAgICAgICAgICAgICAgICAgICAgICBjYW5jZWxCdXR0b25UZXh0PXtjYW5jZWxCdXR0b25MYWJlbH1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQnV0dG9uQ2xpY2s9e29uQWN0aW9ufVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvRm9vdGVyPlxuICAgICAgICAgICAgICAgICAgPC9Ib3Jpem9udGFsT2Zmc2V0PlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvU3R5bGVkSW5uZXI+XG4gICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgPC9TdHlsZWRNb2RhbFdyYXBwZXI+XG4gICAgICA8L0ZvY3VzVHJhcD5cbiAgICA8L1dyYXBwZXI+XG4gICk7XG59XG5cbk1vZGFsLlN0YWNrID0gTW9kYWxTdGFjaztcbk1vZGFsLlRleHQgPSBNb2RhbFRleHQ7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBK051QiJ9 */"),StyledXContainer=(0,_styled.default)("div",{target:"elkk7m16",label:"StyledXContainer"})(({theme})=>({position:"absolute",...(0,_mediaQueries.useResponsiveValue)({top:[theme.variables.size.spacing.s,theme.variables.size.spacing.l],right:[theme.variables.size.spacing.s,theme.variables.size.spacing.l]})}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUGF0dGVybnMvTW9kYWwvTW9kYWwudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9QYXR0ZXJucy9Nb2RhbC9Nb2RhbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgcmVhY3QvanN4LXByb3BzLW5vLXNwcmVhZGluZyAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVhY3QvanN4LW5vLXVzZWxlc3MtZnJhZ21lbnQgKi9cbmltcG9ydCB0eXBlIHsgUmVmT2JqZWN0LCBQcm9wc1dpdGhDaGlsZHJlbiB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFJlYWN0LCB7IHVzZU1lbW8sIHVzZVJlZiwgdXNlSWQsIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHR5cGUgeyBUaGVtZSB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHsga2V5ZnJhbWVzIH0gZnJvbSBcIkBlbW90aW9uL3JlYWN0XCI7XG5pbXBvcnQgdHlwZSB7IFBvcnRhbFByb3BzIH0gZnJvbSBcIi4uLy4uL1BvcnRhbC9Qb3J0YWxcIjtcbmltcG9ydCB7IFBvcnRhbCwgdXNlUG9ydGFsQ29udGFpbmVyRWxlbWVudCB9IGZyb20gXCIuLi8uLi9Qb3J0YWwvUG9ydGFsXCI7XG5pbXBvcnQgeyBIMiwgSDQsIEg2LCBIMyB9IGZyb20gXCIuLi8uLi9UeXBvZ3JhcGh5L0hlYWRlci9IZWFkZXJcIjtcbmltcG9ydCB0eXBlIHsgU3RhY2tQcm9wcyB9IGZyb20gXCIuLi8uLi9TdGFjay9TdGFja1wiO1xuaW1wb3J0IHsgU3RhY2sgfSBmcm9tIFwiLi4vLi4vU3RhY2svU3RhY2tcIjtcbmltcG9ydCB7IENvbnRhaW5lciB9IGZyb20gXCIuLi8uLi9Db250YWluZXIvQ29udGFpbmVyXCI7XG5pbXBvcnQgeyBCb3ggfSBmcm9tIFwiLi4vLi4vQm94L0JveFwiO1xuXG5pbXBvcnQgeyBJbmxpbmUgfSBmcm9tIFwiLi4vLi4vSW5saW5lL0lubGluZVwiO1xuaW1wb3J0IHR5cGUgeyBCdXR0b25Hcm91cEJ1dHRvblByb3BzIH0gZnJvbSBcIi4uL0J1dHRvbkdyb3VwL0J1dHRvbkdyb3VwXCI7XG5pbXBvcnQgeyBCdXR0b25Hcm91cCB9IGZyb20gXCIuLi9CdXR0b25Hcm91cC9CdXR0b25Hcm91cFwiO1xuaW1wb3J0IHsgUGljdG9ncmFtQnV0dG9uIH0gZnJvbSBcIi4uLy4uL1BpY3RvZ3JhbUJ1dHRvbi9QaWN0b2dyYW1CdXR0b25cIjtcbmltcG9ydCB0eXBlIHsgVGV4dFByb3BzIH0gZnJvbSBcIi4uLy4uL1R5cG9ncmFwaHkvVGV4dC9UZXh0XCI7XG5pbXBvcnQgeyBUZXh0IH0gZnJvbSBcIi4uLy4uL1R5cG9ncmFwaHkvVGV4dC9UZXh0XCI7XG5pbXBvcnQgeyB1c2VSZXNwb25zaXZlVmFsdWUgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL21lZGlhUXVlcmllc1wiO1xuaW1wb3J0IHsgdXNlU2Nyb2xsRGV0ZWN0aW9uIH0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZC91c2VTY3JvbGxEZXRlY3Rpb25cIjtcbmltcG9ydCB7IE1vZGFsQ29udGV4dCB9IGZyb20gXCIuL01vZGFsQ29udGV4dFwiO1xuaW1wb3J0IHsgRm9jdXNUcmFwV3JhcHBlciB9IGZyb20gXCIuLi8uLi8uLi9zaGFyZWQvRm9jdXNUcmFwV3JhcHBlclwiO1xuaW1wb3J0IHsgYXBwZW5kSWQgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL2FwcGVuZElkXCI7XG5pbXBvcnQgeyB1c2VXaW5kb3cgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL3VzZVdpbmRvd1wiO1xuXG50eXBlIEJhc2VQcm9wcyA9IHtcbiAgaGVhZGVyPzogc3RyaW5nO1xuICBvbkFjdGlvbj86IChhY3Rpb246IFwiY2FuY2VsXCIgfCBcImFjdGlvblwiKSA9PiB2b2lkO1xuICByb2xlPzogXCJkaWFsb2dcIiB8IFwiYWxlcnRkaWFsb2dcIjtcbiAgbGFiZWxIZWFkZXI/OiBzdHJpbmc7XG4gIC8qKiBUaGUgYmxhY2sgY29sb3IgaXMgZ29pbmcgdG8gYmUgcmVwbGFjZWQgd2l0aCBncmF5IG9uZSAqL1xuICBzdWJIZWFkZXI/OiBzdHJpbmc7XG4gIC8qKiBUZXh0IGFuZCBvdGhlciBwcm9wcyBmb3IgYWN0aW9uIEJ1dHRvbiAqL1xuICBhY3Rpb25CdXR0b24/OiBCdXR0b25Hcm91cEJ1dHRvblByb3BzO1xuICAvKiogVGV4dCBhbmQgb3RoZXIgcHJvcHMgZm9yIGFjdGlvbiBCdXR0b24gKi9cbiAgc2Vjb25kYXJ5QnV0dG9uPzogQnV0dG9uR3JvdXBCdXR0b25Qcm9wcztcbiAgLyoqIEBkZXByZWNhdGVkIFVzZSBzZWNvbmRhcnlCdXR0b24gdG8gcGFzcyBpbiB0ZXh0IGFuZCBvdGhlciBwcm9wcyBmb3Igc2Vjb25kYXJ5IGJ1dHRvbiAqL1xuICBjYW5jZWxCdXR0b25MYWJlbD86IHN0cmluZztcbiAgLyoqIEFpbSB0byB1c2UgPE1vZGFsLlRleHQ+IGFuZCA8TW9kYWwuU3RhY2s+ICovXG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuICBcImRhdGEtZTJlLXRlc3QtaWRcIj86IHN0cmluZztcbiAgcHJpdmF0ZVByb3BzPzogeyBza2lwUG9ydGFsPzogYm9vbGVhbiB9O1xuICAvKiogSXQncyBhIGJhZCBwYXR0ZXJuIHRvIHVzZSBub24tZGlzbWlzc2libGUgTW9kYWwgKi9cbiAgaXNEaXNtaXNzaWJsZT86IGJvb2xlYW47XG4gIGlzRnVsbFNjcmVlbj86IGJvb2xlYW47XG4gIGlzTWF4V2lkdGhMaW1pdD86IGJvb2xlYW47XG4gIHNpemU/OiBcIm1cIiB8IFwibFwiO1xuICBjbG9zZUJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgXCJhcmlhLWxhYmVsXCI/OiBzdHJpbmc7XG4gIFwiYXJpYS1kZXNjcmliZWRieVwiPzogc3RyaW5nO1xuICAvKiogQWx0IHRleHQgZm9yIHRoZSBtb2RhbCBpbWFnZSAqL1xufTtcblxudHlwZSBDb25kaXRpb25hbFByb3BzID1cbiAgfCB7XG4gICAgICAvKiogQXNwZWN0IHJhdGlvIDE2OjkgKi9cbiAgICAgIGltYWdlVXJsPzogc3RyaW5nO1xuICAgICAgaW1hZ2VBbHQ/OiBzdHJpbmc7XG4gICAgICBJbWFnZUNvbXBvbmVudD86IG5ldmVyO1xuICAgIH1cbiAgfCB7XG4gICAgICBpbWFnZVVybD86IG5ldmVyO1xuICAgICAgaW1hZ2VBbHQ/OiBuZXZlcjtcbiAgICAgIC8qKiBBY2NlcHQgcmF0aW8gMTY6OSAqL1xuICAgICAgSW1hZ2VDb21wb25lbnQ/OiBSZWFjdC5FbGVtZW50VHlwZTxhbnk+O1xuICAgIH07XG5cbmV4cG9ydCB0eXBlIE1vZGFsUHJvcHMgPSBCYXNlUHJvcHMgJlxuICBDb25kaXRpb25hbFByb3BzICZcbiAgUGljazxQb3J0YWxQcm9wcywgXCJwb3J0YWxDb250YWluZXJcIj47XG5cbmV4cG9ydCBjb25zdCBTdHlsZWRCYWNrZHJvcCA9IHN0eWxlZC5kaXY8UGFydGlhbDxCYXNlUHJvcHM+PigoeyB0aGVtZSB9KSA9PiB7XG4gIGNvbnN0IGZhZGVJbkJhY2tkcm9wID0gdXNlTWVtbyhcbiAgICAoKSA9PlxuICAgICAga2V5ZnJhbWVzYFxuICAgICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6ICR7dGhlbWUudmFyaWFibGVzLm9wYWNpdHkuaGlkZGVufTtcbiAgICAgIH1cbiAgICAgIHRvIHtcbiAgICAgICAgb3BhY2l0eTogJHt0aGVtZS52YXJpYWJsZXMub3BhY2l0eS52aXNpYmxlfTtcbiAgICAgIH1cbiAgICBgLFxuICAgIFt0aGVtZS52YXJpYWJsZXMub3BhY2l0eS5oaWRkZW4sIHRoZW1lLnZhcmlhYmxlcy5vcGFjaXR5LnZpc2libGVdXG4gICk7XG4gIHJldHVybiB7XG4gICAgcG9zaXRpb246IFwiZml4ZWRcIixcbiAgICB0b3A6IDAsXG4gICAgbGVmdDogMCxcbiAgICB6SW5kZXg6IHRoZW1lLnZhcmlhYmxlcy56SW5kZXgubW9kYWwsXG4gICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgIGhlaWdodDogXCIxMDBkdmhcIixcbiAgICBiYWNrZ3JvdW5kOiB0aGVtZS52YWx1ZXMuY29sb3IuYmFja2dyb3VuZC5iYWNrZHJvcC5kZWZhdWx0LFxuICAgIGRpc3BsYXk6IFwiZmxleFwiLFxuICAgIGZsZXhEaXJlY3Rpb246IFwiY29sdW1uXCIsXG4gICAganVzdGlmeUNvbnRlbnQ6IFwiY2VudGVyXCIsXG4gICAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbiAgICBmbGV4OiBcIjEgMCBhdXRvXCIsXG4gICAgYW5pbWF0aW9uOiBgJHtmYWRlSW5CYWNrZHJvcH0gJHt0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLm1vZGFsQmFja2Ryb3Aub3Blbi5kdXJhdGlvbn0gJHt0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLm1vZGFsQmFja2Ryb3Aub3Blbi50aW1pbmdGdW5jdGlvbn0gYm90aGAsXG4gIH07XG59KTtcblxuY29uc3QgbW9iaWxlU2l6ZSA9IFwibVwiO1xuY29uc3QgZGVza3RvcFNpemUgPSBcInhsXCI7XG5jb25zdCBnZXREZXNrdG9wU3BhY2UgPSAodGhlbWU6IFRoZW1lKSA9PiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLmw7XG5jb25zdCBnZXREZXNrdG9wSW5uZXJTcGFjZSA9ICh0aGVtZTogVGhlbWUpID0+XG4gIHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmdbZGVza3RvcFNpemVdO1xuY29uc3QgZ2V0TW9iaWxlU3BhY2UgPSAodGhlbWU6IFRoZW1lKSA9PiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLm07XG5jb25zdCBnZXRNb2JpbGVJbm5lclNwYWNlID0gKHRoZW1lOiBUaGVtZSkgPT5cbiAgdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZ1ttb2JpbGVTaXplXTtcbi8vIE1pbmltdW0gdmlld3BvcnQgaGVpZ2h0IG9uIHdoaWNoIGltYWdlIGlzIHNob3duLlxuY29uc3QgTUlOX1ZJRVdQT1JUX0hFSUdIVCA9IDQyMDtcblxuY29uc3QgU3R5bGVkTW9kYWxXcmFwcGVyID0gc3R5bGVkLmRpdjxQYXJ0aWFsPE1vZGFsUHJvcHM+PihcbiAgKHsgdGhlbWUsIGlzRnVsbFNjcmVlbiwgc2l6ZSB9KSA9PiB7XG4gICAgY29uc3QgZmFkZUluTW9kYWwgPSB1c2VNZW1vKFxuICAgICAgKCkgPT5cbiAgICAgICAga2V5ZnJhbWVzYFxuICAgICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6ICR7dGhlbWUudmFyaWFibGVzLm9wYWNpdHkuaGlkZGVufTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwcHgpO1xuICAgICAgfVxuICAgICAgdG8ge1xuICAgICAgICAgIG9wYWNpdHk6ICR7dGhlbWUudmFyaWFibGVzLm9wYWNpdHkudmlzaWJsZX07XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICAgIH1cbiAgICBgLFxuICAgICAgW3RoZW1lLnZhcmlhYmxlcy5vcGFjaXR5LmhpZGRlbiwgdGhlbWUudmFyaWFibGVzLm9wYWNpdHkudmlzaWJsZV1cbiAgICApO1xuICAgIHJldHVybiB7XG4gICAgICBhbmltYXRpb246IGAke2ZhZGVJbk1vZGFsfSAke3RoZW1lLnZhcmlhYmxlcy5hbmltYXRpb24ubW9kYWwub3Blbi5kdXJhdGlvbn0gJHt0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLm1vZGFsLm9wZW4uZGVsYXl9ICR7dGhlbWUudmFyaWFibGVzLmFuaW1hdGlvbi5tb2RhbC5vcGVuLnRpbWluZ0Z1bmN0aW9ufSBib3RoYCxcbiAgICAgIC4uLnVzZVJlc3BvbnNpdmVWYWx1ZSh7XG4gICAgICAgIHdpZHRoOiBbXG4gICAgICAgICAgYGNhbGMoMTAwJSAtICR7Z2V0TW9iaWxlU3BhY2UodGhlbWUpfSAqIDIpYCxcbiAgICAgICAgICBpc0Z1bGxTY3JlZW5cbiAgICAgICAgICAgID8gYGNhbGMoMTAwJSAtICR7Z2V0RGVza3RvcFNwYWNlKHRoZW1lKX0gKiAyKWBcbiAgICAgICAgICAgIDogdGhlbWUudmFyaWFibGVzLnNpemUuZGltZW5zaW9uLm1vZGFsLndpZHRoW3NpemVdLFxuICAgICAgICBdLFxuICAgICAgfSksXG4gICAgfTtcbiAgfVxuKTtcblxuY29uc3QgU3R5bGVkSW5uZXIgPSBzdHlsZWQuZGl2PFBhcnRpYWw8TW9kYWxQcm9wcz4+KFxuICAoeyB0aGVtZSwgaXNGdWxsU2NyZWVuLCBzaXplIH0pID0+IHtcbiAgICBjb25zdCBtb2JpbGVWZXJ0aWNhbFNwYWNlID0gZ2V0TW9iaWxlU3BhY2UodGhlbWUpO1xuICAgIGNvbnN0IG1vYmlsZUlubmVyVmVydGljYWxTcGFjZSA9IGdldE1vYmlsZUlubmVyU3BhY2UodGhlbWUpO1xuICAgIGNvbnN0IGRlc2t0b3BWZXJ0aWNhbFNwYWNlID0gZ2V0RGVza3RvcFNwYWNlKHRoZW1lKTtcbiAgICBjb25zdCBkZXNrdG9wSW5uZXJWZXJ0aWNhbFNwYWNlID0gZ2V0RGVza3RvcElubmVyU3BhY2UodGhlbWUpO1xuXG4gICAgLy8gZnVsbHNjcmVlbiBhbmQgTCBzaXplIGRvbid0IGRlcGVuZCBvbiBjb250ZW50IHNpemVcbiAgICAvLyBMIHNpemUgaGVpZ2h0IGhhcyBtYXhIaWVnaHQgcmVzaXplIHVudGlsIDgwMHB4XG4gICAgLy8gZnVsbHNjcmVlbiBtYXhIZWlnaHQgaXMgbm90IGxpbWl0ZWRcbiAgICAvLyBNIHNpemUgaGVpZ2h0IGhhcyBjb250ZW50IHNpemUgYW5kIGNlbnRlcmVkIGF0IHRvcCBhbmQgbWF4SGVpZ2h0IGlzIG5vdCBsaW1pdGVkXG5cbiAgICBjb25zdCBnZXREZXNrdG9wSGVpZ2h0ID0gKCkgPT4ge1xuICAgICAgaWYgKGlzRnVsbFNjcmVlbikge1xuICAgICAgICByZXR1cm4gYGNhbGMoMTAwZHZoIC0gJHtkZXNrdG9wVmVydGljYWxTcGFjZX0gKiAyIC0gJHtkZXNrdG9wSW5uZXJWZXJ0aWNhbFNwYWNlfSAqIDIpYDtcbiAgICAgIH1cbiAgICAgIGlmIChzaXplID09PSBcImxcIikge1xuICAgICAgICByZXR1cm4gYGNhbGMoMTAwZHZoIC0gJHtkZXNrdG9wVmVydGljYWxTcGFjZX0gKiAyIC0gJHtkZXNrdG9wSW5uZXJWZXJ0aWNhbFNwYWNlfSAqIDIgLSAke3RoZW1lLnZhcmlhYmxlcy5zaXplLmRpbWVuc2lvbi5tb2RhbC5tYXJnaW4ubH0gKiAyKWA7XG4gICAgICB9XG4gICAgICByZXR1cm4gXCJhdXRvXCI7XG4gICAgfTtcblxuICAgIGNvbnN0IGdldERlc2t0b3BNYXhIZWlnaHQgPSAoKSA9PiB7XG4gICAgICBpZiAoaXNGdWxsU2NyZWVuKSB7XG4gICAgICAgIHJldHVybiBgYXV0b2A7XG4gICAgICB9XG4gICAgICBpZiAoc2l6ZSA9PT0gXCJsXCIpIHtcbiAgICAgICAgcmV0dXJuIGBjYWxjKCR7dGhlbWUudmFyaWFibGVzLnNpemUuZGltZW5zaW9uLm1vZGFsLm1heEhlaWdodC5sfSAtICR7ZGVza3RvcElubmVyVmVydGljYWxTcGFjZX0gKiAyKWA7XG4gICAgICB9XG4gICAgICByZXR1cm4gYGNhbGMoMTAwZHZoIC0gJHtkZXNrdG9wVmVydGljYWxTcGFjZX0gKiAyIC0gJHtkZXNrdG9wSW5uZXJWZXJ0aWNhbFNwYWNlfSAqIDIpYDtcbiAgICB9O1xuXG4gICAgY29uc3QgZnVsbFNjcmVlbk1vYmlsZSA9IGBjYWxjKDEwMGR2aCAtICR7bW9iaWxlVmVydGljYWxTcGFjZX0gKiAyIC0gJHttb2JpbGVJbm5lclZlcnRpY2FsU3BhY2V9ICogMilgO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGRpc3BsYXk6IFwiZmxleFwiLFxuICAgICAgLi4udXNlUmVzcG9uc2l2ZVZhbHVlKHtcbiAgICAgICAgaGVpZ2h0OiBbXG4gICAgICAgICAgc2l6ZSA9PT0gXCJsXCIgfHwgaXNGdWxsU2NyZWVuID8gZnVsbFNjcmVlbk1vYmlsZSA6IFwiYXV0b1wiLFxuICAgICAgICAgIGdldERlc2t0b3BIZWlnaHQoKSxcbiAgICAgICAgXSxcbiAgICAgICAgbWF4SGVpZ2h0OiBbZnVsbFNjcmVlbk1vYmlsZSwgZ2V0RGVza3RvcE1heEhlaWdodCgpXSxcbiAgICAgIH0pLFxuXG4gICAgICBmbGV4RGlyZWN0aW9uOiBcImNvbHVtblwiLFxuICAgICAgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsXG4gICAgfTtcbiAgfVxuKTtcblxudHlwZSBTdHlsZWRCb2R5UHJvcHMgPSB7XG4gIGJvcmRlckJvdHRvbTogYm9vbGVhbjtcbiAgYm9yZGVyVG9wOiBib29sZWFuO1xufTtcblxuY29uc3QgU3R5bGVkQm9keSA9IHN0eWxlZC5kaXY8U3R5bGVkQm9keVByb3BzICYgUGFydGlhbDxNb2RhbFByb3BzPj4oXG4gICh7IHRoZW1lLCBib3JkZXJCb3R0b20sIGJvcmRlclRvcCwgc2l6ZSwgaXNGdWxsU2NyZWVuIH0pID0+ICh7XG4gICAgb3ZlcmZsb3dZOiBcImF1dG9cIixcbiAgICBtYXhIZWlnaHQ6IFwiMTAwJVwiLFxuXG4gICAgLi4uKChpc0Z1bGxTY3JlZW4gfHwgc2l6ZSA9PT0gXCJsXCIpICYmIHtcbiAgICAgIGZsZXg6IDEsXG4gICAgfSksXG5cbiAgICAuLi4oYm9yZGVyQm90dG9tICYmIHtcbiAgICAgIGJvcmRlckJvdHRvbTogYDFweCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5kaXZpZGVyLnByaW1hcnl9YCxcbiAgICB9KSxcbiAgICAuLi4oYm9yZGVyVG9wICYmIHtcbiAgICAgIGJvcmRlclRvcDogYDFweCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5kaXZpZGVyLnByaW1hcnl9YCxcbiAgICB9KSxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZEltZyA9IHN0eWxlZC5pbWcoKCkgPT4gKHtcbiAgd2lkdGg6IFwiMTAwJVwiLFxuICBhc3BlY3RSYXRpbzogXCIxNi85XCIsXG59KSk7XG5cbmNvbnN0IFN0eWxlZE1heFdpZHRoID0gc3R5bGVkLmRpdjxQYXJ0aWFsPE1vZGFsUHJvcHM+PigoeyB0aGVtZSB9KSA9PiAoe1xuICBtYXhXaWR0aDogdGhlbWUudmFyaWFibGVzLnNpemUuZGltZW5zaW9uLm1vZGFsLmZ1bGxTY3JlZW5Db250ZW50V2lkdGgsXG4gIG1hcmdpbjogXCIwIGF1dG9cIixcbiAgaGVpZ2h0OiBcIjEwMCVcIixcbn0pKTtcblxuY29uc3QgU3R5bGVkWENvbnRhaW5lciA9IHN0eWxlZC5kaXYoKHsgdGhlbWUgfSkgPT4gKHtcbiAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgLi4udXNlUmVzcG9uc2l2ZVZhbHVlKHtcbiAgICB0b3A6IFt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnMsIHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubF0sXG4gICAgcmlnaHQ6IFt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnMsIHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubF0sXG4gIH0pLFxufSkpO1xuXG5jb25zdCBNb2RhbFN0YWNrID0gKHsgY2hpbGRyZW4sIC4uLnJlc3QgfTogT21pdDxTdGFja1Byb3BzLCBcInNwYWNlXCI+KSA9PiAoXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC9qc3gtcHJvcHMtbm8tc3ByZWFkaW5nXG4gIDxTdGFjayB7Li4ucmVzdH0gc3BhY2U9XCJtXCI+XG4gICAge2NoaWxkcmVufVxuICA8L1N0YWNrPlxuKTtcblxuY29uc3QgTW9kYWxUZXh0ID0gKHtcbiAgY2hpbGRyZW4sXG4gIC4uLnJlc3Rcbn06IE9taXQ8VGV4dFByb3BzLCBcInNpemVcIiB8IFwidmFyaWFudFwiPikgPT4gKFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QvanN4LXByb3BzLW5vLXNwcmVhZGluZ1xuICA8VGV4dCB7Li4ucmVzdH0gc2l6ZT1cIm1cIiBjb2xvcj1cInRlcnRpYXJ5XCI+XG4gICAge2NoaWxkcmVufVxuICA8L1RleHQ+XG4pO1xuXG5jb25zdCBGb290ZXIgPSAoe1xuICBjaGlsZHJlbixcbiAgYWxpZ25JdGVtcyA9IFtcInN0cmV0Y2hcIiwgXCJyaWdodFwiXSxcbiAgaXNTaG9ydFZpZXdwb3J0LFxufToge1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlW10gfCBSZWFjdC5SZWFjdEVsZW1lbnQ7XG4gIGFsaWduSXRlbXM/OiBTdGFja1Byb3BzW1wiYWxpZ25JdGVtc1wiXTtcbiAgaXNTaG9ydFZpZXdwb3J0PzogYm9vbGVhbjtcbn0pID0+IChcbiAgPEJveCBzcGFjZT1cInplcm9cIiB0U3BhY2U9e2lzU2hvcnRWaWV3cG9ydCA/IFwibVwiIDogXCJsXCJ9PlxuICAgIDxTdGFjayBhbGlnbkl0ZW1zPXthbGlnbkl0ZW1zfT57Y2hpbGRyZW59PC9TdGFjaz5cbiAgPC9Cb3g+XG4pO1xuXG5jb25zdCBXcmFwcGVyID0gKHtcbiAgc2tpcFBvcnRhbCxcbiAgY2hpbGRyZW4sXG4gIHBvcnRhbENvbnRhaW5lcixcbiAgYmFja2Ryb3BSZWYsXG59OiB7XG4gIHNraXBQb3J0YWw6IGJvb2xlYW47XG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdEVsZW1lbnQ7XG4gIGJhY2tkcm9wUmVmOiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xufSAmIFBhcnRpYWw8TW9kYWxQcm9wcz4pOiBSZWFjdC5SZWFjdEVsZW1lbnQgPT5cbiAgc2tpcFBvcnRhbCA/IChcbiAgICA8PntjaGlsZHJlbn08Lz5cbiAgKSA6IChcbiAgICA8TW9kYWxDb250ZXh0LlByb3ZpZGVyIHZhbHVlPlxuICAgICAgPFBvcnRhbCBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn0+XG4gICAgICAgIDxTdHlsZWRCYWNrZHJvcCByZWY9e2JhY2tkcm9wUmVmfT57Y2hpbGRyZW59PC9TdHlsZWRCYWNrZHJvcD5cbiAgICAgIDwvUG9ydGFsPlxuICAgIDwvTW9kYWxDb250ZXh0LlByb3ZpZGVyPlxuICApO1xuXG50eXBlIEZvY3VzVHJhcFByb3BzID0ge1xuICBvblBvc3REZWFjdGl2YXRlOiAoKSA9PiB2b2lkO1xuICBiYWNrZHJvcFJlZjogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcbiAgbW9kYWxSZWY6IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XG59ICYgUGljazxNb2RhbFByb3BzLCBcImlzRGlzbWlzc2libGVcIiB8IFwicG9ydGFsQ29udGFpbmVyXCI+O1xuXG5mdW5jdGlvbiBGb2N1c1RyYXAoe1xuICBvblBvc3REZWFjdGl2YXRlLFxuICBpc0Rpc21pc3NpYmxlLFxuICBwb3J0YWxDb250YWluZXIsXG4gIGNoaWxkcmVuLFxuICBiYWNrZHJvcFJlZixcbiAgbW9kYWxSZWYsXG59OiBQcm9wc1dpdGhDaGlsZHJlbjxGb2N1c1RyYXBQcm9wcz4pIHtcbiAgY29uc3QgcG9ydGFsQ29udGFpbmVyRWxlbWVudCA9IHVzZVBvcnRhbENvbnRhaW5lckVsZW1lbnQocG9ydGFsQ29udGFpbmVyKTtcblxuICBjb25zdCBoYW5kbGVDbGlja091dHNpZGVEZWFjdGl2YXRlcyA9IChldnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KSA9PiB7XG4gICAgLy8gRG8gbm90IGNsb3NlIG9uIGNsaWNrIHRoYXQgb2NjdXJzIG9uIGVsZW1lbnRzIHdpdGhpbiB0aGUgc2FtZSBwb3J0YWwsIGZvciBlZywgZHJvcGRvd24gYW5kIHNlbGVjdCBtZW51c1xuICAgIGlmIChcbiAgICAgIHBvcnRhbENvbnRhaW5lckVsZW1lbnQuY29udGFpbnMoZXZ0LnRhcmdldCBhcyBIVE1MRWxlbWVudCkgJiZcbiAgICAgIGV2dC50YXJnZXQgIT09IGJhY2tkcm9wUmVmLmN1cnJlbnRcbiAgICApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIGlzRGlzbWlzc2libGU7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8Rm9jdXNUcmFwV3JhcHBlclxuICAgICAgYWN0aXZlXG4gICAgICBmb2N1c1RyYXBPcHRpb25zPXt7XG4gICAgICAgIGNsaWNrT3V0c2lkZURlYWN0aXZhdGVzOiBoYW5kbGVDbGlja091dHNpZGVEZWFjdGl2YXRlcyxcbiAgICAgICAgZXNjYXBlRGVhY3RpdmF0ZXM6IGlzRGlzbWlzc2libGUsIC8vIGRlLWFjdGl2YXRlIGZvY3VzIHRyYXAgb24gZXNjYXBlIGtleVxuICAgICAgICBwcmV2ZW50U2Nyb2xsOiB0cnVlLFxuICAgICAgICBmYWxsYmFja0ZvY3VzOiBtb2RhbFJlZi5jdXJyZW50LFxuICAgICAgICBvblBvc3REZWFjdGl2YXRlLFxuICAgICAgfX1cbiAgICA+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9Gb2N1c1RyYXBXcmFwcGVyPlxuICApO1xufVxuXG5jb25zdCBIb3Jpem9udGFsT2Zmc2V0ID0gKHtcbiAgY2hpbGRyZW4sXG4gIGlzRnVsbFNjcmVlbixcbiAgaXNNYXhXaWR0aExpbWl0LFxuICBoZWlnaHQsXG59OiBQYXJ0aWFsPE1vZGFsUHJvcHM+ICYgeyBoZWlnaHQ/OiBzdHJpbmcgfSkgPT4gKFxuICA8Qm94IHNwYWNlPXtbbW9iaWxlU2l6ZSwgZGVza3RvcFNpemVdfSB2U3BhY2U9XCJ6ZXJvXCIgaGVpZ2h0PXtoZWlnaHR9PlxuICAgIHtpc0Z1bGxTY3JlZW4gJiYgaXNNYXhXaWR0aExpbWl0ID8gKFxuICAgICAgPFN0eWxlZE1heFdpZHRoPntjaGlsZHJlbn08L1N0eWxlZE1heFdpZHRoPlxuICAgICkgOiAoXG4gICAgICBjaGlsZHJlblxuICAgICl9XG4gIDwvQm94PlxuKTtcblxuZnVuY3Rpb24gZ2V0SXNTaG9ydFZpZXdwb3J0KHdpbmRvdzogV2luZG93KTogYm9vbGVhbiB7XG4gIHJldHVybiAoXG4gICAgdHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIiAmJiB3aW5kb3cuaW5uZXJIZWlnaHQgPCBNSU5fVklFV1BPUlRfSEVJR0hUXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBNb2RhbCh7XG4gIGhlYWRlcixcbiAgc3ViSGVhZGVyLFxuICBsYWJlbEhlYWRlcixcbiAgY2hpbGRyZW4sXG4gIGltYWdlVXJsLFxuICBJbWFnZUNvbXBvbmVudCxcbiAgc2Vjb25kYXJ5QnV0dG9uLFxuICBjYW5jZWxCdXR0b25MYWJlbCxcbiAgaXNEaXNtaXNzaWJsZSA9IHRydWUsXG4gIGlzRnVsbFNjcmVlbixcbiAgaXNNYXhXaWR0aExpbWl0ID0gdHJ1ZSxcbiAgYWN0aW9uQnV0dG9uLFxuICByb2xlID0gXCJkaWFsb2dcIixcbiAgb25BY3Rpb24sXG4gIHNpemUgPSBcIm1cIixcbiAgcHJpdmF0ZVByb3BzOiB7IHNraXBQb3J0YWwgfSA9IHsgc2tpcFBvcnRhbDogZmFsc2UgfSxcbiAgcG9ydGFsQ29udGFpbmVyLFxuICBjbG9zZUJ1dHRvbkFyaWFMYWJlbCA9IFwiRGlzbWlzcyBEaWFsb2dcIixcbiAgXCJhcmlhLWxhYmVsXCI6IGFyaWFMYWJlbCxcbiAgXCJhcmlhLWRlc2NyaWJlZGJ5XCI6IGFyaWFEZXNjcmliZWRCeSxcbiAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG4gIGltYWdlQWx0LFxufTogTW9kYWxQcm9wcyk6IFJlYWN0LlJlYWN0RWxlbWVudCB7XG4gIGNvbnN0IG1vZGFsUmVmID0gdXNlUmVmKG51bGwpO1xuICBjb25zdCBiYWNrZHJvcFJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3Qgc3ViSGVhZGVySWQgPSB1c2VJZCgpO1xuICBjb25zdCB3aW5kb3cgPSB1c2VXaW5kb3coKTtcbiAgY29uc3QgeyBzY3JvbGxhYmxlUmVmLCBpc1Njcm9sbEJvdHRvbSwgaXNTY3JvbGxUb3AsIGhhc1Njcm9sbCB9ID1cbiAgICB1c2VTY3JvbGxEZXRlY3Rpb24oKTtcbiAgY29uc3QgW2lzU2hvcnRWaWV3cG9ydCwgc2V0SXNTaG9ydFZpZXdwb3J0XSA9IHVzZVN0YXRlKFxuICAgIGdldElzU2hvcnRWaWV3cG9ydCh3aW5kb3cpXG4gICk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBsZXQgcmVzaXplT2JzZXJ2ZXI6IFJlc2l6ZU9ic2VydmVyO1xuXG4gICAgaWYgKHR5cGVvZiBSZXNpemVPYnNlcnZlciAhPT0gXCJ1bmRlZmluZWRcIiAmJiBiYWNrZHJvcFJlZi5jdXJyZW50KSB7XG4gICAgICByZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB7XG4gICAgICAgIHNldElzU2hvcnRWaWV3cG9ydChnZXRJc1Nob3J0Vmlld3BvcnQod2luZG93KSk7XG4gICAgICB9KTtcblxuICAgICAgcmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShiYWNrZHJvcFJlZi5jdXJyZW50KTtcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKHJlc2l6ZU9ic2VydmVyKSB7XG4gICAgICAgIHJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgIH1cbiAgICB9O1xuICB9LCBbYmFja2Ryb3BSZWYsIHdpbmRvd10pO1xuXG4gIGNvbnN0IGhhbmRsZUNsb3NlID0gKCkgPT4ge1xuICAgIG9uQWN0aW9uKFwiY2FuY2VsXCIpO1xuICB9O1xuXG4gIGNvbnN0IGhhc0ltYWdlID0gaW1hZ2VVcmwgfHwgSW1hZ2VDb21wb25lbnQ7XG4gIGNvbnN0IEhlYWRpbmdDb21wb25lbnQgPSBpc1Nob3J0Vmlld3BvcnQgPyBIMyA6IEgyO1xuICBjb25zdCBpc0ltYWdlVmlzaWJsZSA9ICFpc1Nob3J0Vmlld3BvcnQgJiYgISFoYXNJbWFnZTtcbiAgY29uc3QgaG9yaXpvbnRhbE9mZnNldFByb3BzID0geyBpc0Z1bGxTY3JlZW4sIGlzTWF4V2lkdGhMaW1pdCB9O1xuXG4gIGNvbnN0IGNsb3NlQnV0dG9uID0gaXNEaXNtaXNzaWJsZSAmJiAoXG4gICAgPFN0eWxlZFhDb250YWluZXI+XG4gICAgICA8UGljdG9ncmFtQnV0dG9uXG4gICAgICAgIHZhcmlhbnQ9XCJ0ZXJ0aWFyeVwiXG4gICAgICAgIGljb249XCJ4XCJcbiAgICAgICAgc2l6ZT1cInNcIlxuICAgICAgICBvbkNsaWNrPXtoYW5kbGVDbG9zZX1cbiAgICAgICAgYXJpYS1sYWJlbD17Y2xvc2VCdXR0b25BcmlhTGFiZWx9XG4gICAgICAvPlxuICAgIDwvU3R5bGVkWENvbnRhaW5lcj5cbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxXcmFwcGVyXG4gICAgICBza2lwUG9ydGFsPXtza2lwUG9ydGFsfVxuICAgICAgcG9ydGFsQ29udGFpbmVyPXtwb3J0YWxDb250YWluZXJ9XG4gICAgICBiYWNrZHJvcFJlZj17YmFja2Ryb3BSZWZ9XG4gICAgPlxuICAgICAgPEZvY3VzVHJhcFxuICAgICAgICBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn1cbiAgICAgICAgaXNEaXNtaXNzaWJsZT17aXNEaXNtaXNzaWJsZX1cbiAgICAgICAgb25Qb3N0RGVhY3RpdmF0ZT17aGFuZGxlQ2xvc2V9XG4gICAgICAgIGJhY2tkcm9wUmVmPXtiYWNrZHJvcFJlZn1cbiAgICAgICAgbW9kYWxSZWY9e21vZGFsUmVmfVxuICAgICAgPlxuICAgICAgICA8U3R5bGVkTW9kYWxXcmFwcGVyXG4gICAgICAgICAgcmVmPXttb2RhbFJlZn1cbiAgICAgICAgICByb2xlPXtyb2xlfVxuICAgICAgICAgIGRhdGEtZTJlLXRlc3QtaWQ9e2RhdGFFMmVUZXN0SWR9XG4gICAgICAgICAgZGF0YS1kcy1pZD1cIk1vZGFsXCJcbiAgICAgICAgICBpc0Z1bGxTY3JlZW49e2lzRnVsbFNjcmVlbn1cbiAgICAgICAgICBzaXplPXtzaXplfVxuICAgICAgICAgIGFyaWEtbGFiZWw9e2FyaWFMYWJlbCB8fCBoZWFkZXJ9XG4gICAgICAgICAgYXJpYS1kZXNjcmliZWRieT17XG4gICAgICAgICAgICBzdWJIZWFkZXIgPyBhcHBlbmRJZChhcmlhRGVzY3JpYmVkQnksIHN1YkhlYWRlcklkKSA6IGFyaWFEZXNjcmliZWRCeVxuICAgICAgICAgIH1cbiAgICAgICAgPlxuICAgICAgICAgIDxDb250YWluZXIgZWxldmF0aW9uPXs0fT5cbiAgICAgICAgICAgIDxCb3ggc3BhY2U9XCJ6ZXJvXCIgdlNwYWNlPXtbbW9iaWxlU2l6ZSwgZGVza3RvcFNpemVdfT5cbiAgICAgICAgICAgICAgPFN0eWxlZElubmVyIGlzRnVsbFNjcmVlbj17aXNGdWxsU2NyZWVufSBzaXplPXtzaXplfT5cbiAgICAgICAgICAgICAgICA8SG9yaXpvbnRhbE9mZnNldCB7Li4uaG9yaXpvbnRhbE9mZnNldFByb3BzfT5cbiAgICAgICAgICAgICAgICAgIDxCb3ggc3BhY2U9XCJ6ZXJvXCIgYlNwYWNlPVwic1wiPlxuICAgICAgICAgICAgICAgICAgICA8U3RhY2sgc3BhY2U9e2lzSW1hZ2VWaXNpYmxlID8gW1wic1wiLCBcImxcIl0gOiBcInplcm9cIn0+XG4gICAgICAgICAgICAgICAgICAgICAge2lzSW1hZ2VWaXNpYmxlICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAoaW1hZ2VVcmwgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxCb3ggc3BhY2U9XCJ6ZXJvXCIgdFNwYWNlPXtbXCJ4bFwiLCBcImxcIl19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRJbWcgc3JjPXtpbWFnZVVybH0gYWx0PXtpbWFnZUFsdH0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8SW1hZ2VDb21wb25lbnQgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICAgIDxJbmxpbmUgYWxpZ25JdGVtcz1cInNwYWNlQmV0d2VlblwiIG5vV3JhcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxTdGFjayBzcGFjZT1cInh4c1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7bGFiZWxIZWFkZXIgJiYgPEg2IGFzPVwiZGl2XCI+e2xhYmVsSGVhZGVyfTwvSDY+fVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8U3RhY2sgc3BhY2U9XCJ6ZXJvXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhlYWRpbmdDb21wb25lbnQgYXM9XCJoMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2hlYWRlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0hlYWRpbmdDb21wb25lbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3N1YkhlYWRlciAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SDQgYXM9XCJoMlwiIGNvbG9yPVwidGVydGlhcnlcIiBpZD17c3ViSGVhZGVySWR9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7c3ViSGVhZGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9IND5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtjbG9zZUJ1dHRvbn1cbiAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZT5cbiAgICAgICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgIDwvSG9yaXpvbnRhbE9mZnNldD5cblxuICAgICAgICAgICAgICAgIDxTdHlsZWRCb2R5XG4gICAgICAgICAgICAgICAgICByZWY9e3Njcm9sbGFibGVSZWZ9XG4gICAgICAgICAgICAgICAgICBzaXplPXtzaXplfVxuICAgICAgICAgICAgICAgICAgaXNGdWxsU2NyZWVuPXtpc0Z1bGxTY3JlZW59XG4gICAgICAgICAgICAgICAgICBib3JkZXJCb3R0b209e2hhc1Njcm9sbCAmJiAhaXNTY3JvbGxCb3R0b219XG4gICAgICAgICAgICAgICAgICBib3JkZXJUb3A9e2hhc1Njcm9sbCAmJiAhaXNTY3JvbGxUb3B9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPEJveCBzcGFjZT1cInplcm9cIiB2U3BhY2U9XCJ4eHhzXCIgaGVpZ2h0PVwiMTAwJVwiPlxuICAgICAgICAgICAgICAgICAgICA8SG9yaXpvbnRhbE9mZnNldCB7Li4uaG9yaXpvbnRhbE9mZnNldFByb3BzfSBoZWlnaHQ9XCIxMDAlXCI+XG4gICAgICAgICAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgICAgICAgICA8L0hvcml6b250YWxPZmZzZXQ+XG4gICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICA8L1N0eWxlZEJvZHk+XG5cbiAgICAgICAgICAgICAgICB7KGFjdGlvbkJ1dHRvbiB8fCBjYW5jZWxCdXR0b25MYWJlbCB8fCBzZWNvbmRhcnlCdXR0b24pICYmIChcbiAgICAgICAgICAgICAgICAgIDxIb3Jpem9udGFsT2Zmc2V0IHsuLi5ob3Jpem9udGFsT2Zmc2V0UHJvcHN9PlxuICAgICAgICAgICAgICAgICAgICA8Rm9vdGVyIGlzU2hvcnRWaWV3cG9ydD17aXNTaG9ydFZpZXdwb3J0fT5cbiAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uR3JvdXBcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbkJ1dHRvbj17YWN0aW9uQnV0dG9ufVxuICAgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kYXJ5QnV0dG9uPXtzZWNvbmRhcnlCdXR0b259XG4gICAgICAgICAgICAgICAgICAgICAgICBjYW5jZWxCdXR0b25UZXh0PXtjYW5jZWxCdXR0b25MYWJlbH1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQnV0dG9uQ2xpY2s9e29uQWN0aW9ufVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvRm9vdGVyPlxuICAgICAgICAgICAgICAgICAgPC9Ib3Jpem9udGFsT2Zmc2V0PlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvU3R5bGVkSW5uZXI+XG4gICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgPC9TdHlsZWRNb2RhbFdyYXBwZXI+XG4gICAgICA8L0ZvY3VzVHJhcD5cbiAgICA8L1dyYXBwZXI+XG4gICk7XG59XG5cbk1vZGFsLlN0YWNrID0gTW9kYWxTdGFjaztcbk1vZGFsLlRleHQgPSBNb2RhbFRleHQ7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBcU95QiJ9 */"),Footer=({children,alignItems=["stretch","right"],isShortViewport})=>_react.default.createElement(_Box.Box,{space:"zero",tSpace:isShortViewport?"m":"l"},_react.default.createElement(_Stack.Stack,{alignItems:alignItems},children)),Wrapper=({skipPortal,children,portalContainer,backdropRef})=>skipPortal?_react.default.createElement(_react.default.Fragment,null,children):_react.default.createElement(_ModalContext.ModalContext.Provider,{value:!0},_react.default.createElement(_Portal.Portal,{portalContainer:portalContainer},_react.default.createElement(StyledBackdrop,{ref:backdropRef},children)));function FocusTrap({onPostDeactivate,isDismissible,portalContainer,children,backdropRef,modalRef}){let portalContainerElement=(0,_Portal.usePortalContainerElement)(portalContainer);return _react.default.createElement(_FocusTrapWrapper.FocusTrapWrapper,{active:!0,focusTrapOptions:{clickOutsideDeactivates:evt=>(!portalContainerElement.contains(evt.target)||evt.target===backdropRef.current)&&isDismissible,escapeDeactivates:isDismissible,preventScroll:!0,fallbackFocus:modalRef.current,onPostDeactivate}},children)}const HorizontalOffset=({children,isFullScreen,isMaxWidthLimit,height})=>_react.default.createElement(_Box.Box,{space:["m","xl"],vSpace:"zero",height:height},isFullScreen&&isMaxWidthLimit?_react.default.createElement(StyledMaxWidth,null,children):children);function getIsShortViewport(window){return void 0!==window&&window.innerHeight<420}function Modal({header,subHeader,labelHeader,children,imageUrl,ImageComponent,secondaryButton,cancelButtonLabel,isDismissible=!0,isFullScreen,isMaxWidthLimit=!0,actionButton,role="dialog",onAction,size="m",privateProps:{skipPortal}={skipPortal:!1},portalContainer,closeButtonAriaLabel="Dismiss Dialog","aria-label":ariaLabel,"aria-describedby":ariaDescribedBy,"data-e2e-test-id":dataE2eTestId,imageAlt}){let modalRef=(0,_react.useRef)(null),backdropRef=(0,_react.useRef)(null),subHeaderId=(0,_react.useId)(),window=(0,_useWindow.useWindow)(),{scrollableRef,isScrollBottom,isScrollTop,hasScroll}=(0,_useScrollDetection.useScrollDetection)(),[isShortViewport,setIsShortViewport]=(0,_react.useState)(getIsShortViewport(window));(0,_react.useEffect)(()=>{let resizeObserver;return"undefined"!=typeof ResizeObserver&&backdropRef.current&&(resizeObserver=new ResizeObserver(()=>{setIsShortViewport(getIsShortViewport(window))})).observe(backdropRef.current),()=>{resizeObserver&&resizeObserver.disconnect()}},[backdropRef,window]);let handleClose=()=>{onAction("cancel")},hasImage=imageUrl||ImageComponent,HeadingComponent=isShortViewport?_Header.H3:_Header.H2,isImageVisible=!isShortViewport&&!!hasImage,horizontalOffsetProps={isFullScreen,isMaxWidthLimit},closeButton=isDismissible&&_react.default.createElement(StyledXContainer,null,_react.default.createElement(_PictogramButton.PictogramButton,{variant:"tertiary",icon:"x",size:"s",onClick:handleClose,"aria-label":closeButtonAriaLabel}));return _react.default.createElement(Wrapper,{skipPortal:skipPortal,portalContainer:portalContainer,backdropRef:backdropRef},_react.default.createElement(FocusTrap,{portalContainer:portalContainer,isDismissible:isDismissible,onPostDeactivate:handleClose,backdropRef:backdropRef,modalRef:modalRef},_react.default.createElement(StyledModalWrapper,{ref:modalRef,role:role,"data-e2e-test-id":dataE2eTestId,"data-ds-id":"Modal",isFullScreen:isFullScreen,size:size,"aria-label":ariaLabel||header,"aria-describedby":subHeader?(0,_appendId.appendId)(ariaDescribedBy,subHeaderId):ariaDescribedBy},_react.default.createElement(_Container.Container,{elevation:4},_react.default.createElement(_Box.Box,{space:"zero",vSpace:["m","xl"]},_react.default.createElement(StyledInner,{isFullScreen:isFullScreen,size:size},_react.default.createElement(HorizontalOffset,horizontalOffsetProps,_react.default.createElement(_Box.Box,{space:"zero",bSpace:"s"},_react.default.createElement(_Stack.Stack,{space:isImageVisible?["s","l"]:"zero"},isImageVisible&&(imageUrl?_react.default.createElement(_Box.Box,{space:"zero",tSpace:["xl","l"]},_react.default.createElement(StyledImg,{src:imageUrl,alt:imageAlt})):_react.default.createElement(ImageComponent,null)),_react.default.createElement(_Inline.Inline,{alignItems:"spaceBetween",noWrap:!0},_react.default.createElement(_Stack.Stack,{space:"xxs"},labelHeader&&_react.default.createElement(_Header.H6,{as:"div"},labelHeader),_react.default.createElement(_Stack.Stack,{space:"zero"},_react.default.createElement(HeadingComponent,{as:"h1"},header),subHeader&&_react.default.createElement(_Header.H4,{as:"h2",color:"tertiary",id:subHeaderId},subHeader))),closeButton)))),_react.default.createElement(StyledBody,{ref:scrollableRef,size:size,isFullScreen:isFullScreen,borderBottom:hasScroll&&!isScrollBottom,borderTop:hasScroll&&!isScrollTop},_react.default.createElement(_Box.Box,{space:"zero",vSpace:"xxxs",height:"100%"},_react.default.createElement(HorizontalOffset,{...horizontalOffsetProps,height:"100%"},children))),(actionButton||cancelButtonLabel||secondaryButton)&&_react.default.createElement(HorizontalOffset,horizontalOffsetProps,_react.default.createElement(Footer,{isShortViewport:isShortViewport},_react.default.createElement(_ButtonGroup.ButtonGroup,{actionButton:actionButton,secondaryButton:secondaryButton,cancelButtonText:cancelButtonLabel,onButtonClick:onAction})))))))))}Modal.Stack=({children,...rest})=>_react.default.createElement(_Stack.Stack,{...rest,space:"m"},children),Modal.Text=({children,...rest})=>_react.default.createElement(_Text.Text,{...rest,size:"m",color:"tertiary"},children);
17
+ `,[theme.variables.opacity.hidden,theme.variables.opacity.visible]);return{animation:`${fadeInModal} ${theme.variables.animation.modal.open.duration} ${theme.variables.animation.modal.open.delay} ${theme.variables.animation.modal.open.timingFunction} both`,...(0,_mediaQueries.useResponsiveValue)({width:[`calc(100% - ${getMobileSpace(theme)} * 2)`,isFullScreen?`calc(100% - ${getDesktopSpace(theme)} * 2)`:theme.variables.size.dimension.modal.width[size]]})}},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUGF0dGVybnMvTW9kYWwvTW9kYWwudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9QYXR0ZXJucy9Nb2RhbC9Nb2RhbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgcmVhY3QvanN4LXByb3BzLW5vLXNwcmVhZGluZyAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVhY3QvanN4LW5vLXVzZWxlc3MtZnJhZ21lbnQgKi9cbmltcG9ydCB0eXBlIHsgUmVmT2JqZWN0LCBQcm9wc1dpdGhDaGlsZHJlbiB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFJlYWN0LCB7IHVzZU1lbW8sIHVzZVJlZiwgdXNlSWQsIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHR5cGUgeyBUaGVtZSB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHsga2V5ZnJhbWVzIH0gZnJvbSBcIkBlbW90aW9uL3JlYWN0XCI7XG5pbXBvcnQgdHlwZSB7IFBvcnRhbFByb3BzIH0gZnJvbSBcIi4uLy4uL1BvcnRhbC9Qb3J0YWxcIjtcbmltcG9ydCB7IFBvcnRhbCwgdXNlUG9ydGFsQ29udGFpbmVyRWxlbWVudCB9IGZyb20gXCIuLi8uLi9Qb3J0YWwvUG9ydGFsXCI7XG5pbXBvcnQgeyBIMiwgSDQsIEg2LCBIMyB9IGZyb20gXCIuLi8uLi9UeXBvZ3JhcGh5L0hlYWRlci9IZWFkZXJcIjtcbmltcG9ydCB0eXBlIHsgU3RhY2tQcm9wcyB9IGZyb20gXCIuLi8uLi9TdGFjay9TdGFja1wiO1xuaW1wb3J0IHsgU3RhY2sgfSBmcm9tIFwiLi4vLi4vU3RhY2svU3RhY2tcIjtcbmltcG9ydCB7IENvbnRhaW5lciB9IGZyb20gXCIuLi8uLi9Db250YWluZXIvQ29udGFpbmVyXCI7XG5pbXBvcnQgeyBCb3ggfSBmcm9tIFwiLi4vLi4vQm94L0JveFwiO1xuXG5pbXBvcnQgeyBJbmxpbmUgfSBmcm9tIFwiLi4vLi4vSW5saW5lL0lubGluZVwiO1xuaW1wb3J0IHR5cGUgeyBCdXR0b25Hcm91cEJ1dHRvblByb3BzIH0gZnJvbSBcIi4uL0J1dHRvbkdyb3VwL0J1dHRvbkdyb3VwXCI7XG5pbXBvcnQgeyBCdXR0b25Hcm91cCB9IGZyb20gXCIuLi9CdXR0b25Hcm91cC9CdXR0b25Hcm91cFwiO1xuaW1wb3J0IHsgUGljdG9ncmFtQnV0dG9uIH0gZnJvbSBcIi4uLy4uL1BpY3RvZ3JhbUJ1dHRvbi9QaWN0b2dyYW1CdXR0b25cIjtcbmltcG9ydCB0eXBlIHsgVGV4dFByb3BzIH0gZnJvbSBcIi4uLy4uL1R5cG9ncmFwaHkvVGV4dC9UZXh0XCI7XG5pbXBvcnQgeyBUZXh0IH0gZnJvbSBcIi4uLy4uL1R5cG9ncmFwaHkvVGV4dC9UZXh0XCI7XG5pbXBvcnQgeyB1c2VSZXNwb25zaXZlVmFsdWUgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL21lZGlhUXVlcmllc1wiO1xuaW1wb3J0IHsgdXNlU2Nyb2xsRGV0ZWN0aW9uIH0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZC91c2VTY3JvbGxEZXRlY3Rpb25cIjtcbmltcG9ydCB7IE1vZGFsQ29udGV4dCB9IGZyb20gXCIuL01vZGFsQ29udGV4dFwiO1xuaW1wb3J0IHsgRm9jdXNUcmFwV3JhcHBlciB9IGZyb20gXCIuLi8uLi8uLi9zaGFyZWQvRm9jdXNUcmFwV3JhcHBlclwiO1xuaW1wb3J0IHsgYXBwZW5kSWQgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL2FwcGVuZElkXCI7XG5pbXBvcnQgeyB1c2VXaW5kb3cgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL3VzZVdpbmRvd1wiO1xuXG50eXBlIEJhc2VQcm9wcyA9IHtcbiAgaGVhZGVyPzogc3RyaW5nO1xuICBvbkFjdGlvbj86IChhY3Rpb246IFwiY2FuY2VsXCIgfCBcImFjdGlvblwiKSA9PiB2b2lkO1xuICByb2xlPzogXCJkaWFsb2dcIiB8IFwiYWxlcnRkaWFsb2dcIjtcbiAgbGFiZWxIZWFkZXI/OiBzdHJpbmc7XG4gIC8qKiBUaGUgYmxhY2sgY29sb3IgaXMgZ29pbmcgdG8gYmUgcmVwbGFjZWQgd2l0aCBncmF5IG9uZSAqL1xuICBzdWJIZWFkZXI/OiBzdHJpbmc7XG4gIC8qKiBUZXh0IGFuZCBvdGhlciBwcm9wcyBmb3IgYWN0aW9uIEJ1dHRvbiAqL1xuICBhY3Rpb25CdXR0b24/OiBCdXR0b25Hcm91cEJ1dHRvblByb3BzO1xuICAvKiogVGV4dCBhbmQgb3RoZXIgcHJvcHMgZm9yIGFjdGlvbiBCdXR0b24gKi9cbiAgc2Vjb25kYXJ5QnV0dG9uPzogQnV0dG9uR3JvdXBCdXR0b25Qcm9wcztcbiAgLyoqIEBkZXByZWNhdGVkIFVzZSBzZWNvbmRhcnlCdXR0b24gdG8gcGFzcyBpbiB0ZXh0IGFuZCBvdGhlciBwcm9wcyBmb3Igc2Vjb25kYXJ5IGJ1dHRvbiAqL1xuICBjYW5jZWxCdXR0b25MYWJlbD86IHN0cmluZztcbiAgLyoqIEFpbSB0byB1c2UgPE1vZGFsLlRleHQ+IGFuZCA8TW9kYWwuU3RhY2s+ICovXG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuICBcImRhdGEtZTJlLXRlc3QtaWRcIj86IHN0cmluZztcbiAgcHJpdmF0ZVByb3BzPzogeyBza2lwUG9ydGFsPzogYm9vbGVhbiB9O1xuICAvKiogSXQncyBhIGJhZCBwYXR0ZXJuIHRvIHVzZSBub24tZGlzbWlzc2libGUgTW9kYWwgKi9cbiAgaXNEaXNtaXNzaWJsZT86IGJvb2xlYW47XG4gIGlzRnVsbFNjcmVlbj86IGJvb2xlYW47XG4gIGlzTWF4V2lkdGhMaW1pdD86IGJvb2xlYW47XG4gIHNpemU/OiBcIm1cIiB8IFwibFwiO1xuICBjbG9zZUJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgXCJhcmlhLWxhYmVsXCI/OiBzdHJpbmc7XG4gIFwiYXJpYS1kZXNjcmliZWRieVwiPzogc3RyaW5nO1xuICAvKiogQWx0IHRleHQgZm9yIHRoZSBtb2RhbCBpbWFnZSAqL1xufTtcblxudHlwZSBDb25kaXRpb25hbFByb3BzID1cbiAgfCB7XG4gICAgICAvKiogQXNwZWN0IHJhdGlvIDE2OjkgKi9cbiAgICAgIGltYWdlVXJsPzogc3RyaW5nO1xuICAgICAgaW1hZ2VBbHQ/OiBzdHJpbmc7XG4gICAgICBJbWFnZUNvbXBvbmVudD86IG5ldmVyO1xuICAgIH1cbiAgfCB7XG4gICAgICBpbWFnZVVybD86IG5ldmVyO1xuICAgICAgaW1hZ2VBbHQ/OiBuZXZlcjtcbiAgICAgIC8qKiBBY2NlcHQgcmF0aW8gMTY6OSAqL1xuICAgICAgSW1hZ2VDb21wb25lbnQ/OiBSZWFjdC5FbGVtZW50VHlwZTxhbnk+O1xuICAgIH07XG5cbmV4cG9ydCB0eXBlIE1vZGFsUHJvcHMgPSBCYXNlUHJvcHMgJlxuICBDb25kaXRpb25hbFByb3BzICZcbiAgUGljazxQb3J0YWxQcm9wcywgXCJwb3J0YWxDb250YWluZXJcIj47XG5cbmV4cG9ydCBjb25zdCBTdHlsZWRCYWNrZHJvcCA9IHN0eWxlZC5kaXY8UGFydGlhbDxCYXNlUHJvcHM+PigoeyB0aGVtZSB9KSA9PiB7XG4gIGNvbnN0IGZhZGVJbkJhY2tkcm9wID0gdXNlTWVtbyhcbiAgICAoKSA9PlxuICAgICAga2V5ZnJhbWVzYFxuICAgICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6ICR7dGhlbWUudmFyaWFibGVzLm9wYWNpdHkuaGlkZGVufTtcbiAgICAgIH1cbiAgICAgIHRvIHtcbiAgICAgICAgb3BhY2l0eTogJHt0aGVtZS52YXJpYWJsZXMub3BhY2l0eS52aXNpYmxlfTtcbiAgICAgIH1cbiAgICBgLFxuICAgIFt0aGVtZS52YXJpYWJsZXMub3BhY2l0eS5oaWRkZW4sIHRoZW1lLnZhcmlhYmxlcy5vcGFjaXR5LnZpc2libGVdXG4gICk7XG4gIHJldHVybiB7XG4gICAgcG9zaXRpb246IFwiZml4ZWRcIixcbiAgICB0b3A6IDAsXG4gICAgbGVmdDogMCxcbiAgICB6SW5kZXg6IHRoZW1lLnZhcmlhYmxlcy56SW5kZXgubW9kYWwsXG4gICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgIGhlaWdodDogXCIxMDBkdmhcIixcbiAgICBiYWNrZ3JvdW5kOiB0aGVtZS52YWx1ZXMuY29sb3IuYmFja2dyb3VuZC5iYWNrZHJvcC5kZWZhdWx0LFxuICAgIGRpc3BsYXk6IFwiZmxleFwiLFxuICAgIGZsZXhEaXJlY3Rpb246IFwiY29sdW1uXCIsXG4gICAganVzdGlmeUNvbnRlbnQ6IFwiY2VudGVyXCIsXG4gICAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbiAgICBmbGV4OiBcIjEgMCBhdXRvXCIsXG4gICAgYW5pbWF0aW9uOiBgJHtmYWRlSW5CYWNrZHJvcH0gJHt0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLm1vZGFsQmFja2Ryb3Aub3Blbi5kdXJhdGlvbn0gJHt0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLm1vZGFsQmFja2Ryb3Aub3Blbi50aW1pbmdGdW5jdGlvbn0gYm90aGAsXG4gIH07XG59KTtcblxuY29uc3QgbW9iaWxlU2l6ZSA9IFwibVwiO1xuY29uc3QgZGVza3RvcFNpemUgPSBcInhsXCI7XG5jb25zdCBnZXREZXNrdG9wU3BhY2UgPSAodGhlbWU6IFRoZW1lKSA9PiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLmw7XG5jb25zdCBnZXREZXNrdG9wSW5uZXJTcGFjZSA9ICh0aGVtZTogVGhlbWUpID0+XG4gIHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmdbZGVza3RvcFNpemVdO1xuY29uc3QgZ2V0TW9iaWxlU3BhY2UgPSAodGhlbWU6IFRoZW1lKSA9PiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLm07XG5jb25zdCBnZXRNb2JpbGVJbm5lclNwYWNlID0gKHRoZW1lOiBUaGVtZSkgPT5cbiAgdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZ1ttb2JpbGVTaXplXTtcbi8vIE1pbmltdW0gdmlld3BvcnQgaGVpZ2h0IG9uIHdoaWNoIGltYWdlIGlzIHNob3duLlxuY29uc3QgTUlOX1ZJRVdQT1JUX0hFSUdIVCA9IDQyMDtcblxuY29uc3QgU3R5bGVkTW9kYWxXcmFwcGVyID0gc3R5bGVkLmRpdjxQYXJ0aWFsPE1vZGFsUHJvcHM+PihcbiAgKHsgdGhlbWUsIGlzRnVsbFNjcmVlbiwgc2l6ZSB9KSA9PiB7XG4gICAgY29uc3QgZmFkZUluTW9kYWwgPSB1c2VNZW1vKFxuICAgICAgKCkgPT5cbiAgICAgICAga2V5ZnJhbWVzYFxuICAgICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6ICR7dGhlbWUudmFyaWFibGVzLm9wYWNpdHkuaGlkZGVufTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwcHgpO1xuICAgICAgfVxuICAgICAgdG8ge1xuICAgICAgICAgIG9wYWNpdHk6ICR7dGhlbWUudmFyaWFibGVzLm9wYWNpdHkudmlzaWJsZX07XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICAgIH1cbiAgICBgLFxuICAgICAgW3RoZW1lLnZhcmlhYmxlcy5vcGFjaXR5LmhpZGRlbiwgdGhlbWUudmFyaWFibGVzLm9wYWNpdHkudmlzaWJsZV1cbiAgICApO1xuICAgIHJldHVybiB7XG4gICAgICBhbmltYXRpb246IGAke2ZhZGVJbk1vZGFsfSAke3RoZW1lLnZhcmlhYmxlcy5hbmltYXRpb24ubW9kYWwub3Blbi5kdXJhdGlvbn0gJHt0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLm1vZGFsLm9wZW4uZGVsYXl9ICR7dGhlbWUudmFyaWFibGVzLmFuaW1hdGlvbi5tb2RhbC5vcGVuLnRpbWluZ0Z1bmN0aW9ufSBib3RoYCxcbiAgICAgIC4uLnVzZVJlc3BvbnNpdmVWYWx1ZSh7XG4gICAgICAgIHdpZHRoOiBbXG4gICAgICAgICAgYGNhbGMoMTAwJSAtICR7Z2V0TW9iaWxlU3BhY2UodGhlbWUpfSAqIDIpYCxcbiAgICAgICAgICBpc0Z1bGxTY3JlZW5cbiAgICAgICAgICAgID8gYGNhbGMoMTAwJSAtICR7Z2V0RGVza3RvcFNwYWNlKHRoZW1lKX0gKiAyKWBcbiAgICAgICAgICAgIDogdGhlbWUudmFyaWFibGVzLnNpemUuZGltZW5zaW9uLm1vZGFsLndpZHRoW3NpemVdLFxuICAgICAgICBdLFxuICAgICAgfSksXG4gICAgfTtcbiAgfVxuKTtcblxuY29uc3QgU3R5bGVkSW5uZXIgPSBzdHlsZWQuZGl2PFBhcnRpYWw8TW9kYWxQcm9wcz4+KFxuICAoeyB0aGVtZSwgaXNGdWxsU2NyZWVuLCBzaXplIH0pID0+IHtcbiAgICBjb25zdCBtb2JpbGVWZXJ0aWNhbFNwYWNlID0gZ2V0TW9iaWxlU3BhY2UodGhlbWUpO1xuICAgIGNvbnN0IG1vYmlsZUlubmVyVmVydGljYWxTcGFjZSA9IGdldE1vYmlsZUlubmVyU3BhY2UodGhlbWUpO1xuICAgIGNvbnN0IGRlc2t0b3BWZXJ0aWNhbFNwYWNlID0gZ2V0RGVza3RvcFNwYWNlKHRoZW1lKTtcbiAgICBjb25zdCBkZXNrdG9wSW5uZXJWZXJ0aWNhbFNwYWNlID0gZ2V0RGVza3RvcElubmVyU3BhY2UodGhlbWUpO1xuXG4gICAgLy8gZnVsbHNjcmVlbiBhbmQgTCBzaXplIGRvbid0IGRlcGVuZCBvbiBjb250ZW50IHNpemVcbiAgICAvLyBMIHNpemUgaGVpZ2h0IGhhcyBtYXhIaWVnaHQgcmVzaXplIHVudGlsIDgwMHB4XG4gICAgLy8gZnVsbHNjcmVlbiBtYXhIZWlnaHQgaXMgbm90IGxpbWl0ZWRcbiAgICAvLyBNIHNpemUgaGVpZ2h0IGhhcyBjb250ZW50IHNpemUgYW5kIGNlbnRlcmVkIGF0IHRvcCBhbmQgbWF4SGVpZ2h0IGlzIG5vdCBsaW1pdGVkXG5cbiAgICBjb25zdCBnZXREZXNrdG9wSGVpZ2h0ID0gKCkgPT4ge1xuICAgICAgaWYgKGlzRnVsbFNjcmVlbikge1xuICAgICAgICByZXR1cm4gYGNhbGMoMTAwZHZoIC0gJHtkZXNrdG9wVmVydGljYWxTcGFjZX0gKiAyIC0gJHtkZXNrdG9wSW5uZXJWZXJ0aWNhbFNwYWNlfSAqIDIpYDtcbiAgICAgIH1cbiAgICAgIGlmIChzaXplID09PSBcImxcIikge1xuICAgICAgICByZXR1cm4gYGNhbGMoMTAwZHZoIC0gJHtkZXNrdG9wVmVydGljYWxTcGFjZX0gKiAyIC0gJHtkZXNrdG9wSW5uZXJWZXJ0aWNhbFNwYWNlfSAqIDIgLSAke3RoZW1lLnZhcmlhYmxlcy5zaXplLmRpbWVuc2lvbi5tb2RhbC5tYXJnaW4ubH0gKiAyKWA7XG4gICAgICB9XG4gICAgICByZXR1cm4gXCJhdXRvXCI7XG4gICAgfTtcblxuICAgIGNvbnN0IGdldERlc2t0b3BNYXhIZWlnaHQgPSAoKSA9PiB7XG4gICAgICBpZiAoaXNGdWxsU2NyZWVuKSB7XG4gICAgICAgIHJldHVybiBgYXV0b2A7XG4gICAgICB9XG4gICAgICBpZiAoc2l6ZSA9PT0gXCJsXCIpIHtcbiAgICAgICAgcmV0dXJuIGBjYWxjKCR7dGhlbWUudmFyaWFibGVzLnNpemUuZGltZW5zaW9uLm1vZGFsLm1heEhlaWdodC5sfSAtICR7ZGVza3RvcElubmVyVmVydGljYWxTcGFjZX0gKiAyKWA7XG4gICAgICB9XG4gICAgICByZXR1cm4gYGNhbGMoMTAwZHZoIC0gJHtkZXNrdG9wVmVydGljYWxTcGFjZX0gKiAyIC0gJHtkZXNrdG9wSW5uZXJWZXJ0aWNhbFNwYWNlfSAqIDIpYDtcbiAgICB9O1xuXG4gICAgY29uc3QgZnVsbFNjcmVlbk1vYmlsZSA9IGBjYWxjKDEwMGR2aCAtICR7bW9iaWxlVmVydGljYWxTcGFjZX0gKiAyIC0gJHttb2JpbGVJbm5lclZlcnRpY2FsU3BhY2V9ICogMilgO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGRpc3BsYXk6IFwiZmxleFwiLFxuICAgICAgLi4udXNlUmVzcG9uc2l2ZVZhbHVlKHtcbiAgICAgICAgaGVpZ2h0OiBbXG4gICAgICAgICAgc2l6ZSA9PT0gXCJsXCIgfHwgaXNGdWxsU2NyZWVuID8gZnVsbFNjcmVlbk1vYmlsZSA6IFwiYXV0b1wiLFxuICAgICAgICAgIGdldERlc2t0b3BIZWlnaHQoKSxcbiAgICAgICAgXSxcbiAgICAgICAgbWF4SGVpZ2h0OiBbZnVsbFNjcmVlbk1vYmlsZSwgZ2V0RGVza3RvcE1heEhlaWdodCgpXSxcbiAgICAgIH0pLFxuXG4gICAgICBmbGV4RGlyZWN0aW9uOiBcImNvbHVtblwiLFxuICAgICAgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsXG4gICAgfTtcbiAgfVxuKTtcblxudHlwZSBTdHlsZWRCb2R5UHJvcHMgPSB7XG4gIGJvcmRlckJvdHRvbTogYm9vbGVhbjtcbiAgYm9yZGVyVG9wOiBib29sZWFuO1xufTtcblxuY29uc3QgU3R5bGVkQm9keSA9IHN0eWxlZC5kaXY8U3R5bGVkQm9keVByb3BzICYgUGFydGlhbDxNb2RhbFByb3BzPj4oXG4gICh7IHRoZW1lLCBib3JkZXJCb3R0b20sIGJvcmRlclRvcCwgc2l6ZSwgaXNGdWxsU2NyZWVuIH0pID0+ICh7XG4gICAgb3ZlcmZsb3dZOiBcImF1dG9cIixcbiAgICBtYXhIZWlnaHQ6IFwiMTAwJVwiLFxuXG4gICAgLi4uKChpc0Z1bGxTY3JlZW4gfHwgc2l6ZSA9PT0gXCJsXCIpICYmIHtcbiAgICAgIGZsZXg6IDEsXG4gICAgfSksXG5cbiAgICAuLi4oYm9yZGVyQm90dG9tICYmIHtcbiAgICAgIGJvcmRlckJvdHRvbTogYDFweCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5kaXZpZGVyLnByaW1hcnl9YCxcbiAgICB9KSxcbiAgICAuLi4oYm9yZGVyVG9wICYmIHtcbiAgICAgIGJvcmRlclRvcDogYDFweCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5kaXZpZGVyLnByaW1hcnl9YCxcbiAgICB9KSxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZEltZyA9IHN0eWxlZC5pbWcoKCkgPT4gKHtcbiAgd2lkdGg6IFwiMTAwJVwiLFxuICBhc3BlY3RSYXRpbzogXCIxNi85XCIsXG59KSk7XG5cbmNvbnN0IFN0eWxlZE1heFdpZHRoID0gc3R5bGVkLmRpdjxQYXJ0aWFsPE1vZGFsUHJvcHM+PigoeyB0aGVtZSB9KSA9PiAoe1xuICBtYXhXaWR0aDogdGhlbWUudmFyaWFibGVzLnNpemUuZGltZW5zaW9uLm1vZGFsLmZ1bGxTY3JlZW5Db250ZW50V2lkdGgsXG4gIG1hcmdpbjogXCIwIGF1dG9cIixcbiAgaGVpZ2h0OiBcIjEwMCVcIixcbn0pKTtcblxuY29uc3QgU3R5bGVkWENvbnRhaW5lciA9IHN0eWxlZC5kaXYoKHsgdGhlbWUgfSkgPT4gKHtcbiAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgLi4udXNlUmVzcG9uc2l2ZVZhbHVlKHtcbiAgICB0b3A6IFt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnMsIHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubF0sXG4gICAgcmlnaHQ6IFt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnMsIHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubF0sXG4gIH0pLFxufSkpO1xuXG5jb25zdCBNb2RhbFN0YWNrID0gKHsgY2hpbGRyZW4sIC4uLnJlc3QgfTogT21pdDxTdGFja1Byb3BzLCBcInNwYWNlXCI+KSA9PiAoXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC9qc3gtcHJvcHMtbm8tc3ByZWFkaW5nXG4gIDxTdGFjayB7Li4ucmVzdH0gc3BhY2U9XCJtXCI+XG4gICAge2NoaWxkcmVufVxuICA8L1N0YWNrPlxuKTtcblxuY29uc3QgTW9kYWxUZXh0ID0gKHtcbiAgY2hpbGRyZW4sXG4gIC4uLnJlc3Rcbn06IE9taXQ8VGV4dFByb3BzLCBcInNpemVcIiB8IFwidmFyaWFudFwiPikgPT4gKFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QvanN4LXByb3BzLW5vLXNwcmVhZGluZ1xuICA8VGV4dCB7Li4ucmVzdH0gc2l6ZT1cIm1cIiBjb2xvcj1cInRlcnRpYXJ5XCI+XG4gICAge2NoaWxkcmVufVxuICA8L1RleHQ+XG4pO1xuXG5jb25zdCBGb290ZXIgPSAoe1xuICBjaGlsZHJlbixcbiAgYWxpZ25JdGVtcyA9IFtcInN0cmV0Y2hcIiwgXCJyaWdodFwiXSxcbiAgaXNTaG9ydFZpZXdwb3J0LFxufToge1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlW10gfCBSZWFjdC5SZWFjdEVsZW1lbnQ7XG4gIGFsaWduSXRlbXM/OiBTdGFja1Byb3BzW1wiYWxpZ25JdGVtc1wiXTtcbiAgaXNTaG9ydFZpZXdwb3J0PzogYm9vbGVhbjtcbn0pID0+IChcbiAgPEJveCBzcGFjZT1cInplcm9cIiB0U3BhY2U9e2lzU2hvcnRWaWV3cG9ydCA/IFwibVwiIDogXCJsXCJ9PlxuICAgIDxTdGFjayBhbGlnbkl0ZW1zPXthbGlnbkl0ZW1zfT57Y2hpbGRyZW59PC9TdGFjaz5cbiAgPC9Cb3g+XG4pO1xuXG5jb25zdCBXcmFwcGVyID0gKHtcbiAgc2tpcFBvcnRhbCxcbiAgY2hpbGRyZW4sXG4gIHBvcnRhbENvbnRhaW5lcixcbiAgYmFja2Ryb3BSZWYsXG59OiB7XG4gIHNraXBQb3J0YWw6IGJvb2xlYW47XG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdEVsZW1lbnQ7XG4gIGJhY2tkcm9wUmVmOiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xufSAmIFBhcnRpYWw8TW9kYWxQcm9wcz4pOiBSZWFjdC5SZWFjdEVsZW1lbnQgPT5cbiAgc2tpcFBvcnRhbCA/IChcbiAgICA8PntjaGlsZHJlbn08Lz5cbiAgKSA6IChcbiAgICA8TW9kYWxDb250ZXh0LlByb3ZpZGVyIHZhbHVlPlxuICAgICAgPFBvcnRhbCBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn0+XG4gICAgICAgIDxTdHlsZWRCYWNrZHJvcCByZWY9e2JhY2tkcm9wUmVmfT57Y2hpbGRyZW59PC9TdHlsZWRCYWNrZHJvcD5cbiAgICAgIDwvUG9ydGFsPlxuICAgIDwvTW9kYWxDb250ZXh0LlByb3ZpZGVyPlxuICApO1xuXG50eXBlIEZvY3VzVHJhcFByb3BzID0ge1xuICBvblBvc3REZWFjdGl2YXRlOiAoKSA9PiB2b2lkO1xuICBiYWNrZHJvcFJlZjogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcbiAgbW9kYWxSZWY6IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XG59ICYgUGljazxNb2RhbFByb3BzLCBcImlzRGlzbWlzc2libGVcIiB8IFwicG9ydGFsQ29udGFpbmVyXCI+O1xuXG5mdW5jdGlvbiBGb2N1c1RyYXAoe1xuICBvblBvc3REZWFjdGl2YXRlLFxuICBpc0Rpc21pc3NpYmxlLFxuICBwb3J0YWxDb250YWluZXIsXG4gIGNoaWxkcmVuLFxuICBiYWNrZHJvcFJlZixcbiAgbW9kYWxSZWYsXG59OiBQcm9wc1dpdGhDaGlsZHJlbjxGb2N1c1RyYXBQcm9wcz4pIHtcbiAgY29uc3QgcG9ydGFsQ29udGFpbmVyRWxlbWVudCA9IHVzZVBvcnRhbENvbnRhaW5lckVsZW1lbnQocG9ydGFsQ29udGFpbmVyKTtcblxuICBjb25zdCBoYW5kbGVDbGlja091dHNpZGVEZWFjdGl2YXRlcyA9IChldnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KSA9PiB7XG4gICAgLy8gRG8gbm90IGNsb3NlIG9uIGNsaWNrIHRoYXQgb2NjdXJzIG9uIGVsZW1lbnRzIHdpdGhpbiB0aGUgc2FtZSBwb3J0YWwsIGZvciBlZywgZHJvcGRvd24gYW5kIHNlbGVjdCBtZW51c1xuICAgIGlmIChcbiAgICAgIHBvcnRhbENvbnRhaW5lckVsZW1lbnQuY29udGFpbnMoZXZ0LnRhcmdldCBhcyBIVE1MRWxlbWVudCkgJiZcbiAgICAgIGV2dC50YXJnZXQgIT09IGJhY2tkcm9wUmVmLmN1cnJlbnRcbiAgICApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIGlzRGlzbWlzc2libGU7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8Rm9jdXNUcmFwV3JhcHBlclxuICAgICAgYWN0aXZlXG4gICAgICBmb2N1c1RyYXBPcHRpb25zPXt7XG4gICAgICAgIGFsbG93T3V0c2lkZUNsaWNrOiB0cnVlLCAvLyBhbGxvdyBjbGljayBvbiBtb2JpbGUgaW4gYW55IGRyb3Bkb3duc1xuICAgICAgICBjbGlja091dHNpZGVEZWFjdGl2YXRlczogaGFuZGxlQ2xpY2tPdXRzaWRlRGVhY3RpdmF0ZXMsXG4gICAgICAgIGVzY2FwZURlYWN0aXZhdGVzOiBpc0Rpc21pc3NpYmxlLCAvLyBkZS1hY3RpdmF0ZSBmb2N1cyB0cmFwIG9uIGVzY2FwZSBrZXlcbiAgICAgICAgcHJldmVudFNjcm9sbDogdHJ1ZSxcbiAgICAgICAgZmFsbGJhY2tGb2N1czogbW9kYWxSZWYuY3VycmVudCxcbiAgICAgICAgb25Qb3N0RGVhY3RpdmF0ZSxcbiAgICAgIH19XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvRm9jdXNUcmFwV3JhcHBlcj5cbiAgKTtcbn1cblxuY29uc3QgSG9yaXpvbnRhbE9mZnNldCA9ICh7XG4gIGNoaWxkcmVuLFxuICBpc0Z1bGxTY3JlZW4sXG4gIGlzTWF4V2lkdGhMaW1pdCxcbiAgaGVpZ2h0LFxufTogUGFydGlhbDxNb2RhbFByb3BzPiAmIHsgaGVpZ2h0Pzogc3RyaW5nIH0pID0+IChcbiAgPEJveCBzcGFjZT17W21vYmlsZVNpemUsIGRlc2t0b3BTaXplXX0gdlNwYWNlPVwiemVyb1wiIGhlaWdodD17aGVpZ2h0fT5cbiAgICB7aXNGdWxsU2NyZWVuICYmIGlzTWF4V2lkdGhMaW1pdCA/IChcbiAgICAgIDxTdHlsZWRNYXhXaWR0aD57Y2hpbGRyZW59PC9TdHlsZWRNYXhXaWR0aD5cbiAgICApIDogKFxuICAgICAgY2hpbGRyZW5cbiAgICApfVxuICA8L0JveD5cbik7XG5cbmZ1bmN0aW9uIGdldElzU2hvcnRWaWV3cG9ydCh3aW5kb3c6IFdpbmRvdyk6IGJvb2xlYW4ge1xuICByZXR1cm4gKFxuICAgIHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgJiYgd2luZG93LmlubmVySGVpZ2h0IDwgTUlOX1ZJRVdQT1JUX0hFSUdIVFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gTW9kYWwoe1xuICBoZWFkZXIsXG4gIHN1YkhlYWRlcixcbiAgbGFiZWxIZWFkZXIsXG4gIGNoaWxkcmVuLFxuICBpbWFnZVVybCxcbiAgSW1hZ2VDb21wb25lbnQsXG4gIHNlY29uZGFyeUJ1dHRvbixcbiAgY2FuY2VsQnV0dG9uTGFiZWwsXG4gIGlzRGlzbWlzc2libGUgPSB0cnVlLFxuICBpc0Z1bGxTY3JlZW4sXG4gIGlzTWF4V2lkdGhMaW1pdCA9IHRydWUsXG4gIGFjdGlvbkJ1dHRvbixcbiAgcm9sZSA9IFwiZGlhbG9nXCIsXG4gIG9uQWN0aW9uLFxuICBzaXplID0gXCJtXCIsXG4gIHByaXZhdGVQcm9wczogeyBza2lwUG9ydGFsIH0gPSB7IHNraXBQb3J0YWw6IGZhbHNlIH0sXG4gIHBvcnRhbENvbnRhaW5lcixcbiAgY2xvc2VCdXR0b25BcmlhTGFiZWwgPSBcIkRpc21pc3MgRGlhbG9nXCIsXG4gIFwiYXJpYS1sYWJlbFwiOiBhcmlhTGFiZWwsXG4gIFwiYXJpYS1kZXNjcmliZWRieVwiOiBhcmlhRGVzY3JpYmVkQnksXG4gIFwiZGF0YS1lMmUtdGVzdC1pZFwiOiBkYXRhRTJlVGVzdElkLFxuICBpbWFnZUFsdCxcbn06IE1vZGFsUHJvcHMpOiBSZWFjdC5SZWFjdEVsZW1lbnQge1xuICBjb25zdCBtb2RhbFJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgYmFja2Ryb3BSZWYgPSB1c2VSZWYobnVsbCk7XG4gIGNvbnN0IHN1YkhlYWRlcklkID0gdXNlSWQoKTtcbiAgY29uc3Qgd2luZG93ID0gdXNlV2luZG93KCk7XG4gIGNvbnN0IHsgc2Nyb2xsYWJsZVJlZiwgaXNTY3JvbGxCb3R0b20sIGlzU2Nyb2xsVG9wLCBoYXNTY3JvbGwgfSA9XG4gICAgdXNlU2Nyb2xsRGV0ZWN0aW9uKCk7XG4gIGNvbnN0IFtpc1Nob3J0Vmlld3BvcnQsIHNldElzU2hvcnRWaWV3cG9ydF0gPSB1c2VTdGF0ZShcbiAgICBnZXRJc1Nob3J0Vmlld3BvcnQod2luZG93KVxuICApO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgbGV0IHJlc2l6ZU9ic2VydmVyOiBSZXNpemVPYnNlcnZlcjtcblxuICAgIGlmICh0eXBlb2YgUmVzaXplT2JzZXJ2ZXIgIT09IFwidW5kZWZpbmVkXCIgJiYgYmFja2Ryb3BSZWYuY3VycmVudCkge1xuICAgICAgcmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKCkgPT4ge1xuICAgICAgICBzZXRJc1Nob3J0Vmlld3BvcnQoZ2V0SXNTaG9ydFZpZXdwb3J0KHdpbmRvdykpO1xuICAgICAgfSk7XG5cbiAgICAgIHJlc2l6ZU9ic2VydmVyLm9ic2VydmUoYmFja2Ryb3BSZWYuY3VycmVudCk7XG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChyZXNpemVPYnNlcnZlcikge1xuICAgICAgICByZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICB9XG4gICAgfTtcbiAgfSwgW2JhY2tkcm9wUmVmLCB3aW5kb3ddKTtcblxuICBjb25zdCBoYW5kbGVDbG9zZSA9ICgpID0+IHtcbiAgICBvbkFjdGlvbihcImNhbmNlbFwiKTtcbiAgfTtcblxuICBjb25zdCBoYXNJbWFnZSA9IGltYWdlVXJsIHx8IEltYWdlQ29tcG9uZW50O1xuICBjb25zdCBIZWFkaW5nQ29tcG9uZW50ID0gaXNTaG9ydFZpZXdwb3J0ID8gSDMgOiBIMjtcbiAgY29uc3QgaXNJbWFnZVZpc2libGUgPSAhaXNTaG9ydFZpZXdwb3J0ICYmICEhaGFzSW1hZ2U7XG4gIGNvbnN0IGhvcml6b250YWxPZmZzZXRQcm9wcyA9IHsgaXNGdWxsU2NyZWVuLCBpc01heFdpZHRoTGltaXQgfTtcblxuICBjb25zdCBjbG9zZUJ1dHRvbiA9IGlzRGlzbWlzc2libGUgJiYgKFxuICAgIDxTdHlsZWRYQ29udGFpbmVyPlxuICAgICAgPFBpY3RvZ3JhbUJ1dHRvblxuICAgICAgICB2YXJpYW50PVwidGVydGlhcnlcIlxuICAgICAgICBpY29uPVwieFwiXG4gICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgb25DbGljaz17aGFuZGxlQ2xvc2V9XG4gICAgICAgIGFyaWEtbGFiZWw9e2Nsb3NlQnV0dG9uQXJpYUxhYmVsfVxuICAgICAgLz5cbiAgICA8L1N0eWxlZFhDb250YWluZXI+XG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8V3JhcHBlclxuICAgICAgc2tpcFBvcnRhbD17c2tpcFBvcnRhbH1cbiAgICAgIHBvcnRhbENvbnRhaW5lcj17cG9ydGFsQ29udGFpbmVyfVxuICAgICAgYmFja2Ryb3BSZWY9e2JhY2tkcm9wUmVmfVxuICAgID5cbiAgICAgIDxGb2N1c1RyYXBcbiAgICAgICAgcG9ydGFsQ29udGFpbmVyPXtwb3J0YWxDb250YWluZXJ9XG4gICAgICAgIGlzRGlzbWlzc2libGU9e2lzRGlzbWlzc2libGV9XG4gICAgICAgIG9uUG9zdERlYWN0aXZhdGU9e2hhbmRsZUNsb3NlfVxuICAgICAgICBiYWNrZHJvcFJlZj17YmFja2Ryb3BSZWZ9XG4gICAgICAgIG1vZGFsUmVmPXttb2RhbFJlZn1cbiAgICAgID5cbiAgICAgICAgPFN0eWxlZE1vZGFsV3JhcHBlclxuICAgICAgICAgIHJlZj17bW9kYWxSZWZ9XG4gICAgICAgICAgcm9sZT17cm9sZX1cbiAgICAgICAgICBkYXRhLWUyZS10ZXN0LWlkPXtkYXRhRTJlVGVzdElkfVxuICAgICAgICAgIGRhdGEtZHMtaWQ9XCJNb2RhbFwiXG4gICAgICAgICAgaXNGdWxsU2NyZWVuPXtpc0Z1bGxTY3JlZW59XG4gICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICBhcmlhLWxhYmVsPXthcmlhTGFiZWwgfHwgaGVhZGVyfVxuICAgICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9e1xuICAgICAgICAgICAgc3ViSGVhZGVyID8gYXBwZW5kSWQoYXJpYURlc2NyaWJlZEJ5LCBzdWJIZWFkZXJJZCkgOiBhcmlhRGVzY3JpYmVkQnlcbiAgICAgICAgICB9XG4gICAgICAgID5cbiAgICAgICAgICA8Q29udGFpbmVyIGVsZXZhdGlvbj17NH0+XG4gICAgICAgICAgICA8Qm94IHNwYWNlPVwiemVyb1wiIHZTcGFjZT17W21vYmlsZVNpemUsIGRlc2t0b3BTaXplXX0+XG4gICAgICAgICAgICAgIDxTdHlsZWRJbm5lciBpc0Z1bGxTY3JlZW49e2lzRnVsbFNjcmVlbn0gc2l6ZT17c2l6ZX0+XG4gICAgICAgICAgICAgICAgPEhvcml6b250YWxPZmZzZXQgey4uLmhvcml6b250YWxPZmZzZXRQcm9wc30+XG4gICAgICAgICAgICAgICAgICA8Qm94IHNwYWNlPVwiemVyb1wiIGJTcGFjZT1cInNcIj5cbiAgICAgICAgICAgICAgICAgICAgPFN0YWNrIHNwYWNlPXtpc0ltYWdlVmlzaWJsZSA/IFtcInNcIiwgXCJsXCJdIDogXCJ6ZXJvXCJ9PlxuICAgICAgICAgICAgICAgICAgICAgIHtpc0ltYWdlVmlzaWJsZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgKGltYWdlVXJsID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Qm94IHNwYWNlPVwiemVyb1wiIHRTcGFjZT17W1wieGxcIiwgXCJsXCJdfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSW1nIHNyYz17aW1hZ2VVcmx9IGFsdD17aW1hZ2VBbHR9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPEltYWdlQ29tcG9uZW50IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICA8SW5saW5lIGFsaWduSXRlbXM9XCJzcGFjZUJldHdlZW5cIiBub1dyYXA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8U3RhY2sgc3BhY2U9XCJ4eHNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge2xhYmVsSGVhZGVyICYmIDxINiBhcz1cImRpdlwiPntsYWJlbEhlYWRlcn08L0g2Pn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0YWNrIHNwYWNlPVwiemVyb1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxIZWFkaW5nQ29tcG9uZW50IGFzPVwiaDFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtoZWFkZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9IZWFkaW5nQ29tcG9uZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtzdWJIZWFkZXIgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEg0IGFzPVwiaDJcIiBjb2xvcj1cInRlcnRpYXJ5XCIgaWQ9e3N1YkhlYWRlcklkfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3N1YkhlYWRlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSDQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgICAgICAgICB7Y2xvc2VCdXR0b259XG4gICAgICAgICAgICAgICAgICAgICAgPC9JbmxpbmU+XG4gICAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICA8L0hvcml6b250YWxPZmZzZXQ+XG5cbiAgICAgICAgICAgICAgICA8U3R5bGVkQm9keVxuICAgICAgICAgICAgICAgICAgcmVmPXtzY3JvbGxhYmxlUmVmfVxuICAgICAgICAgICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICAgICAgICAgIGlzRnVsbFNjcmVlbj17aXNGdWxsU2NyZWVufVxuICAgICAgICAgICAgICAgICAgYm9yZGVyQm90dG9tPXtoYXNTY3JvbGwgJiYgIWlzU2Nyb2xsQm90dG9tfVxuICAgICAgICAgICAgICAgICAgYm9yZGVyVG9wPXtoYXNTY3JvbGwgJiYgIWlzU2Nyb2xsVG9wfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxCb3ggc3BhY2U9XCJ6ZXJvXCIgdlNwYWNlPVwieHh4c1wiIGhlaWdodD1cIjEwMCVcIj5cbiAgICAgICAgICAgICAgICAgICAgPEhvcml6b250YWxPZmZzZXQgey4uLmhvcml6b250YWxPZmZzZXRQcm9wc30gaGVpZ2h0PVwiMTAwJVwiPlxuICAgICAgICAgICAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICAgICAgICAgICAgPC9Ib3Jpem9udGFsT2Zmc2V0PlxuICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRCb2R5PlxuXG4gICAgICAgICAgICAgICAgeyhhY3Rpb25CdXR0b24gfHwgY2FuY2VsQnV0dG9uTGFiZWwgfHwgc2Vjb25kYXJ5QnV0dG9uKSAmJiAoXG4gICAgICAgICAgICAgICAgICA8SG9yaXpvbnRhbE9mZnNldCB7Li4uaG9yaXpvbnRhbE9mZnNldFByb3BzfT5cbiAgICAgICAgICAgICAgICAgICAgPEZvb3RlciBpc1Nob3J0Vmlld3BvcnQ9e2lzU2hvcnRWaWV3cG9ydH0+XG4gICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvbkdyb3VwXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb25CdXR0b249e2FjdGlvbkJ1dHRvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgIHNlY29uZGFyeUJ1dHRvbj17c2Vjb25kYXJ5QnV0dG9ufVxuICAgICAgICAgICAgICAgICAgICAgICAgY2FuY2VsQnV0dG9uVGV4dD17Y2FuY2VsQnV0dG9uTGFiZWx9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkJ1dHRvbkNsaWNrPXtvbkFjdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8L0Zvb3Rlcj5cbiAgICAgICAgICAgICAgICAgIDwvSG9yaXpvbnRhbE9mZnNldD5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8L1N0eWxlZElubmVyPlxuICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgIDwvU3R5bGVkTW9kYWxXcmFwcGVyPlxuICAgICAgPC9Gb2N1c1RyYXA+XG4gICAgPC9XcmFwcGVyPlxuICApO1xufVxuXG5Nb2RhbC5TdGFjayA9IE1vZGFsU3RhY2s7XG5Nb2RhbC5UZXh0ID0gTW9kYWxUZXh0O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW1IMkIifQ== */"),StyledInner=(0,_styled.default)("div",{target:"e1nbaxlv2",label:"StyledInner"})(({theme,isFullScreen,size})=>{let mobileVerticalSpace=getMobileSpace(theme),mobileInnerVerticalSpace=getMobileInnerSpace(theme),desktopVerticalSpace=getDesktopSpace(theme),desktopInnerVerticalSpace=getDesktopInnerSpace(theme),fullScreenMobile=`calc(100dvh - ${mobileVerticalSpace} * 2 - ${mobileInnerVerticalSpace} * 2)`;return{display:"flex",...(0,_mediaQueries.useResponsiveValue)({height:["l"===size||isFullScreen?fullScreenMobile:"auto",isFullScreen?`calc(100dvh - ${desktopVerticalSpace} * 2 - ${desktopInnerVerticalSpace} * 2)`:"l"===size?`calc(100dvh - ${desktopVerticalSpace} * 2 - ${desktopInnerVerticalSpace} * 2 - ${theme.variables.size.dimension.modal.margin.l} * 2)`:"auto"],maxHeight:[fullScreenMobile,isFullScreen?"auto":"l"===size?`calc(${theme.variables.size.dimension.modal.maxHeight.l} - ${desktopInnerVerticalSpace} * 2)`:`calc(100dvh - ${desktopVerticalSpace} * 2 - ${desktopInnerVerticalSpace} * 2)`]}),flexDirection:"column",overflow:"hidden"}},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUGF0dGVybnMvTW9kYWwvTW9kYWwudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9QYXR0ZXJucy9Nb2RhbC9Nb2RhbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgcmVhY3QvanN4LXByb3BzLW5vLXNwcmVhZGluZyAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVhY3QvanN4LW5vLXVzZWxlc3MtZnJhZ21lbnQgKi9cbmltcG9ydCB0eXBlIHsgUmVmT2JqZWN0LCBQcm9wc1dpdGhDaGlsZHJlbiB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFJlYWN0LCB7IHVzZU1lbW8sIHVzZVJlZiwgdXNlSWQsIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHR5cGUgeyBUaGVtZSB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHsga2V5ZnJhbWVzIH0gZnJvbSBcIkBlbW90aW9uL3JlYWN0XCI7XG5pbXBvcnQgdHlwZSB7IFBvcnRhbFByb3BzIH0gZnJvbSBcIi4uLy4uL1BvcnRhbC9Qb3J0YWxcIjtcbmltcG9ydCB7IFBvcnRhbCwgdXNlUG9ydGFsQ29udGFpbmVyRWxlbWVudCB9IGZyb20gXCIuLi8uLi9Qb3J0YWwvUG9ydGFsXCI7XG5pbXBvcnQgeyBIMiwgSDQsIEg2LCBIMyB9IGZyb20gXCIuLi8uLi9UeXBvZ3JhcGh5L0hlYWRlci9IZWFkZXJcIjtcbmltcG9ydCB0eXBlIHsgU3RhY2tQcm9wcyB9IGZyb20gXCIuLi8uLi9TdGFjay9TdGFja1wiO1xuaW1wb3J0IHsgU3RhY2sgfSBmcm9tIFwiLi4vLi4vU3RhY2svU3RhY2tcIjtcbmltcG9ydCB7IENvbnRhaW5lciB9IGZyb20gXCIuLi8uLi9Db250YWluZXIvQ29udGFpbmVyXCI7XG5pbXBvcnQgeyBCb3ggfSBmcm9tIFwiLi4vLi4vQm94L0JveFwiO1xuXG5pbXBvcnQgeyBJbmxpbmUgfSBmcm9tIFwiLi4vLi4vSW5saW5lL0lubGluZVwiO1xuaW1wb3J0IHR5cGUgeyBCdXR0b25Hcm91cEJ1dHRvblByb3BzIH0gZnJvbSBcIi4uL0J1dHRvbkdyb3VwL0J1dHRvbkdyb3VwXCI7XG5pbXBvcnQgeyBCdXR0b25Hcm91cCB9IGZyb20gXCIuLi9CdXR0b25Hcm91cC9CdXR0b25Hcm91cFwiO1xuaW1wb3J0IHsgUGljdG9ncmFtQnV0dG9uIH0gZnJvbSBcIi4uLy4uL1BpY3RvZ3JhbUJ1dHRvbi9QaWN0b2dyYW1CdXR0b25cIjtcbmltcG9ydCB0eXBlIHsgVGV4dFByb3BzIH0gZnJvbSBcIi4uLy4uL1R5cG9ncmFwaHkvVGV4dC9UZXh0XCI7XG5pbXBvcnQgeyBUZXh0IH0gZnJvbSBcIi4uLy4uL1R5cG9ncmFwaHkvVGV4dC9UZXh0XCI7XG5pbXBvcnQgeyB1c2VSZXNwb25zaXZlVmFsdWUgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL21lZGlhUXVlcmllc1wiO1xuaW1wb3J0IHsgdXNlU2Nyb2xsRGV0ZWN0aW9uIH0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZC91c2VTY3JvbGxEZXRlY3Rpb25cIjtcbmltcG9ydCB7IE1vZGFsQ29udGV4dCB9IGZyb20gXCIuL01vZGFsQ29udGV4dFwiO1xuaW1wb3J0IHsgRm9jdXNUcmFwV3JhcHBlciB9IGZyb20gXCIuLi8uLi8uLi9zaGFyZWQvRm9jdXNUcmFwV3JhcHBlclwiO1xuaW1wb3J0IHsgYXBwZW5kSWQgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL2FwcGVuZElkXCI7XG5pbXBvcnQgeyB1c2VXaW5kb3cgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL3VzZVdpbmRvd1wiO1xuXG50eXBlIEJhc2VQcm9wcyA9IHtcbiAgaGVhZGVyPzogc3RyaW5nO1xuICBvbkFjdGlvbj86IChhY3Rpb246IFwiY2FuY2VsXCIgfCBcImFjdGlvblwiKSA9PiB2b2lkO1xuICByb2xlPzogXCJkaWFsb2dcIiB8IFwiYWxlcnRkaWFsb2dcIjtcbiAgbGFiZWxIZWFkZXI/OiBzdHJpbmc7XG4gIC8qKiBUaGUgYmxhY2sgY29sb3IgaXMgZ29pbmcgdG8gYmUgcmVwbGFjZWQgd2l0aCBncmF5IG9uZSAqL1xuICBzdWJIZWFkZXI/OiBzdHJpbmc7XG4gIC8qKiBUZXh0IGFuZCBvdGhlciBwcm9wcyBmb3IgYWN0aW9uIEJ1dHRvbiAqL1xuICBhY3Rpb25CdXR0b24/OiBCdXR0b25Hcm91cEJ1dHRvblByb3BzO1xuICAvKiogVGV4dCBhbmQgb3RoZXIgcHJvcHMgZm9yIGFjdGlvbiBCdXR0b24gKi9cbiAgc2Vjb25kYXJ5QnV0dG9uPzogQnV0dG9uR3JvdXBCdXR0b25Qcm9wcztcbiAgLyoqIEBkZXByZWNhdGVkIFVzZSBzZWNvbmRhcnlCdXR0b24gdG8gcGFzcyBpbiB0ZXh0IGFuZCBvdGhlciBwcm9wcyBmb3Igc2Vjb25kYXJ5IGJ1dHRvbiAqL1xuICBjYW5jZWxCdXR0b25MYWJlbD86IHN0cmluZztcbiAgLyoqIEFpbSB0byB1c2UgPE1vZGFsLlRleHQ+IGFuZCA8TW9kYWwuU3RhY2s+ICovXG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuICBcImRhdGEtZTJlLXRlc3QtaWRcIj86IHN0cmluZztcbiAgcHJpdmF0ZVByb3BzPzogeyBza2lwUG9ydGFsPzogYm9vbGVhbiB9O1xuICAvKiogSXQncyBhIGJhZCBwYXR0ZXJuIHRvIHVzZSBub24tZGlzbWlzc2libGUgTW9kYWwgKi9cbiAgaXNEaXNtaXNzaWJsZT86IGJvb2xlYW47XG4gIGlzRnVsbFNjcmVlbj86IGJvb2xlYW47XG4gIGlzTWF4V2lkdGhMaW1pdD86IGJvb2xlYW47XG4gIHNpemU/OiBcIm1cIiB8IFwibFwiO1xuICBjbG9zZUJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgXCJhcmlhLWxhYmVsXCI/OiBzdHJpbmc7XG4gIFwiYXJpYS1kZXNjcmliZWRieVwiPzogc3RyaW5nO1xuICAvKiogQWx0IHRleHQgZm9yIHRoZSBtb2RhbCBpbWFnZSAqL1xufTtcblxudHlwZSBDb25kaXRpb25hbFByb3BzID1cbiAgfCB7XG4gICAgICAvKiogQXNwZWN0IHJhdGlvIDE2OjkgKi9cbiAgICAgIGltYWdlVXJsPzogc3RyaW5nO1xuICAgICAgaW1hZ2VBbHQ/OiBzdHJpbmc7XG4gICAgICBJbWFnZUNvbXBvbmVudD86IG5ldmVyO1xuICAgIH1cbiAgfCB7XG4gICAgICBpbWFnZVVybD86IG5ldmVyO1xuICAgICAgaW1hZ2VBbHQ/OiBuZXZlcjtcbiAgICAgIC8qKiBBY2NlcHQgcmF0aW8gMTY6OSAqL1xuICAgICAgSW1hZ2VDb21wb25lbnQ/OiBSZWFjdC5FbGVtZW50VHlwZTxhbnk+O1xuICAgIH07XG5cbmV4cG9ydCB0eXBlIE1vZGFsUHJvcHMgPSBCYXNlUHJvcHMgJlxuICBDb25kaXRpb25hbFByb3BzICZcbiAgUGljazxQb3J0YWxQcm9wcywgXCJwb3J0YWxDb250YWluZXJcIj47XG5cbmV4cG9ydCBjb25zdCBTdHlsZWRCYWNrZHJvcCA9IHN0eWxlZC5kaXY8UGFydGlhbDxCYXNlUHJvcHM+PigoeyB0aGVtZSB9KSA9PiB7XG4gIGNvbnN0IGZhZGVJbkJhY2tkcm9wID0gdXNlTWVtbyhcbiAgICAoKSA9PlxuICAgICAga2V5ZnJhbWVzYFxuICAgICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6ICR7dGhlbWUudmFyaWFibGVzLm9wYWNpdHkuaGlkZGVufTtcbiAgICAgIH1cbiAgICAgIHRvIHtcbiAgICAgICAgb3BhY2l0eTogJHt0aGVtZS52YXJpYWJsZXMub3BhY2l0eS52aXNpYmxlfTtcbiAgICAgIH1cbiAgICBgLFxuICAgIFt0aGVtZS52YXJpYWJsZXMub3BhY2l0eS5oaWRkZW4sIHRoZW1lLnZhcmlhYmxlcy5vcGFjaXR5LnZpc2libGVdXG4gICk7XG4gIHJldHVybiB7XG4gICAgcG9zaXRpb246IFwiZml4ZWRcIixcbiAgICB0b3A6IDAsXG4gICAgbGVmdDogMCxcbiAgICB6SW5kZXg6IHRoZW1lLnZhcmlhYmxlcy56SW5kZXgubW9kYWwsXG4gICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgIGhlaWdodDogXCIxMDBkdmhcIixcbiAgICBiYWNrZ3JvdW5kOiB0aGVtZS52YWx1ZXMuY29sb3IuYmFja2dyb3VuZC5iYWNrZHJvcC5kZWZhdWx0LFxuICAgIGRpc3BsYXk6IFwiZmxleFwiLFxuICAgIGZsZXhEaXJlY3Rpb246IFwiY29sdW1uXCIsXG4gICAganVzdGlmeUNvbnRlbnQ6IFwiY2VudGVyXCIsXG4gICAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbiAgICBmbGV4OiBcIjEgMCBhdXRvXCIsXG4gICAgYW5pbWF0aW9uOiBgJHtmYWRlSW5CYWNrZHJvcH0gJHt0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLm1vZGFsQmFja2Ryb3Aub3Blbi5kdXJhdGlvbn0gJHt0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLm1vZGFsQmFja2Ryb3Aub3Blbi50aW1pbmdGdW5jdGlvbn0gYm90aGAsXG4gIH07XG59KTtcblxuY29uc3QgbW9iaWxlU2l6ZSA9IFwibVwiO1xuY29uc3QgZGVza3RvcFNpemUgPSBcInhsXCI7XG5jb25zdCBnZXREZXNrdG9wU3BhY2UgPSAodGhlbWU6IFRoZW1lKSA9PiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLmw7XG5jb25zdCBnZXREZXNrdG9wSW5uZXJTcGFjZSA9ICh0aGVtZTogVGhlbWUpID0+XG4gIHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmdbZGVza3RvcFNpemVdO1xuY29uc3QgZ2V0TW9iaWxlU3BhY2UgPSAodGhlbWU6IFRoZW1lKSA9PiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLm07XG5jb25zdCBnZXRNb2JpbGVJbm5lclNwYWNlID0gKHRoZW1lOiBUaGVtZSkgPT5cbiAgdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZ1ttb2JpbGVTaXplXTtcbi8vIE1pbmltdW0gdmlld3BvcnQgaGVpZ2h0IG9uIHdoaWNoIGltYWdlIGlzIHNob3duLlxuY29uc3QgTUlOX1ZJRVdQT1JUX0hFSUdIVCA9IDQyMDtcblxuY29uc3QgU3R5bGVkTW9kYWxXcmFwcGVyID0gc3R5bGVkLmRpdjxQYXJ0aWFsPE1vZGFsUHJvcHM+PihcbiAgKHsgdGhlbWUsIGlzRnVsbFNjcmVlbiwgc2l6ZSB9KSA9PiB7XG4gICAgY29uc3QgZmFkZUluTW9kYWwgPSB1c2VNZW1vKFxuICAgICAgKCkgPT5cbiAgICAgICAga2V5ZnJhbWVzYFxuICAgICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6ICR7dGhlbWUudmFyaWFibGVzLm9wYWNpdHkuaGlkZGVufTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwcHgpO1xuICAgICAgfVxuICAgICAgdG8ge1xuICAgICAgICAgIG9wYWNpdHk6ICR7dGhlbWUudmFyaWFibGVzLm9wYWNpdHkudmlzaWJsZX07XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICAgIH1cbiAgICBgLFxuICAgICAgW3RoZW1lLnZhcmlhYmxlcy5vcGFjaXR5LmhpZGRlbiwgdGhlbWUudmFyaWFibGVzLm9wYWNpdHkudmlzaWJsZV1cbiAgICApO1xuICAgIHJldHVybiB7XG4gICAgICBhbmltYXRpb246IGAke2ZhZGVJbk1vZGFsfSAke3RoZW1lLnZhcmlhYmxlcy5hbmltYXRpb24ubW9kYWwub3Blbi5kdXJhdGlvbn0gJHt0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLm1vZGFsLm9wZW4uZGVsYXl9ICR7dGhlbWUudmFyaWFibGVzLmFuaW1hdGlvbi5tb2RhbC5vcGVuLnRpbWluZ0Z1bmN0aW9ufSBib3RoYCxcbiAgICAgIC4uLnVzZVJlc3BvbnNpdmVWYWx1ZSh7XG4gICAgICAgIHdpZHRoOiBbXG4gICAgICAgICAgYGNhbGMoMTAwJSAtICR7Z2V0TW9iaWxlU3BhY2UodGhlbWUpfSAqIDIpYCxcbiAgICAgICAgICBpc0Z1bGxTY3JlZW5cbiAgICAgICAgICAgID8gYGNhbGMoMTAwJSAtICR7Z2V0RGVza3RvcFNwYWNlKHRoZW1lKX0gKiAyKWBcbiAgICAgICAgICAgIDogdGhlbWUudmFyaWFibGVzLnNpemUuZGltZW5zaW9uLm1vZGFsLndpZHRoW3NpemVdLFxuICAgICAgICBdLFxuICAgICAgfSksXG4gICAgfTtcbiAgfVxuKTtcblxuY29uc3QgU3R5bGVkSW5uZXIgPSBzdHlsZWQuZGl2PFBhcnRpYWw8TW9kYWxQcm9wcz4+KFxuICAoeyB0aGVtZSwgaXNGdWxsU2NyZWVuLCBzaXplIH0pID0+IHtcbiAgICBjb25zdCBtb2JpbGVWZXJ0aWNhbFNwYWNlID0gZ2V0TW9iaWxlU3BhY2UodGhlbWUpO1xuICAgIGNvbnN0IG1vYmlsZUlubmVyVmVydGljYWxTcGFjZSA9IGdldE1vYmlsZUlubmVyU3BhY2UodGhlbWUpO1xuICAgIGNvbnN0IGRlc2t0b3BWZXJ0aWNhbFNwYWNlID0gZ2V0RGVza3RvcFNwYWNlKHRoZW1lKTtcbiAgICBjb25zdCBkZXNrdG9wSW5uZXJWZXJ0aWNhbFNwYWNlID0gZ2V0RGVza3RvcElubmVyU3BhY2UodGhlbWUpO1xuXG4gICAgLy8gZnVsbHNjcmVlbiBhbmQgTCBzaXplIGRvbid0IGRlcGVuZCBvbiBjb250ZW50IHNpemVcbiAgICAvLyBMIHNpemUgaGVpZ2h0IGhhcyBtYXhIaWVnaHQgcmVzaXplIHVudGlsIDgwMHB4XG4gICAgLy8gZnVsbHNjcmVlbiBtYXhIZWlnaHQgaXMgbm90IGxpbWl0ZWRcbiAgICAvLyBNIHNpemUgaGVpZ2h0IGhhcyBjb250ZW50IHNpemUgYW5kIGNlbnRlcmVkIGF0IHRvcCBhbmQgbWF4SGVpZ2h0IGlzIG5vdCBsaW1pdGVkXG5cbiAgICBjb25zdCBnZXREZXNrdG9wSGVpZ2h0ID0gKCkgPT4ge1xuICAgICAgaWYgKGlzRnVsbFNjcmVlbikge1xuICAgICAgICByZXR1cm4gYGNhbGMoMTAwZHZoIC0gJHtkZXNrdG9wVmVydGljYWxTcGFjZX0gKiAyIC0gJHtkZXNrdG9wSW5uZXJWZXJ0aWNhbFNwYWNlfSAqIDIpYDtcbiAgICAgIH1cbiAgICAgIGlmIChzaXplID09PSBcImxcIikge1xuICAgICAgICByZXR1cm4gYGNhbGMoMTAwZHZoIC0gJHtkZXNrdG9wVmVydGljYWxTcGFjZX0gKiAyIC0gJHtkZXNrdG9wSW5uZXJWZXJ0aWNhbFNwYWNlfSAqIDIgLSAke3RoZW1lLnZhcmlhYmxlcy5zaXplLmRpbWVuc2lvbi5tb2RhbC5tYXJnaW4ubH0gKiAyKWA7XG4gICAgICB9XG4gICAgICByZXR1cm4gXCJhdXRvXCI7XG4gICAgfTtcblxuICAgIGNvbnN0IGdldERlc2t0b3BNYXhIZWlnaHQgPSAoKSA9PiB7XG4gICAgICBpZiAoaXNGdWxsU2NyZWVuKSB7XG4gICAgICAgIHJldHVybiBgYXV0b2A7XG4gICAgICB9XG4gICAgICBpZiAoc2l6ZSA9PT0gXCJsXCIpIHtcbiAgICAgICAgcmV0dXJuIGBjYWxjKCR7dGhlbWUudmFyaWFibGVzLnNpemUuZGltZW5zaW9uLm1vZGFsLm1heEhlaWdodC5sfSAtICR7ZGVza3RvcElubmVyVmVydGljYWxTcGFjZX0gKiAyKWA7XG4gICAgICB9XG4gICAgICByZXR1cm4gYGNhbGMoMTAwZHZoIC0gJHtkZXNrdG9wVmVydGljYWxTcGFjZX0gKiAyIC0gJHtkZXNrdG9wSW5uZXJWZXJ0aWNhbFNwYWNlfSAqIDIpYDtcbiAgICB9O1xuXG4gICAgY29uc3QgZnVsbFNjcmVlbk1vYmlsZSA9IGBjYWxjKDEwMGR2aCAtICR7bW9iaWxlVmVydGljYWxTcGFjZX0gKiAyIC0gJHttb2JpbGVJbm5lclZlcnRpY2FsU3BhY2V9ICogMilgO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGRpc3BsYXk6IFwiZmxleFwiLFxuICAgICAgLi4udXNlUmVzcG9uc2l2ZVZhbHVlKHtcbiAgICAgICAgaGVpZ2h0OiBbXG4gICAgICAgICAgc2l6ZSA9PT0gXCJsXCIgfHwgaXNGdWxsU2NyZWVuID8gZnVsbFNjcmVlbk1vYmlsZSA6IFwiYXV0b1wiLFxuICAgICAgICAgIGdldERlc2t0b3BIZWlnaHQoKSxcbiAgICAgICAgXSxcbiAgICAgICAgbWF4SGVpZ2h0OiBbZnVsbFNjcmVlbk1vYmlsZSwgZ2V0RGVza3RvcE1heEhlaWdodCgpXSxcbiAgICAgIH0pLFxuXG4gICAgICBmbGV4RGlyZWN0aW9uOiBcImNvbHVtblwiLFxuICAgICAgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsXG4gICAgfTtcbiAgfVxuKTtcblxudHlwZSBTdHlsZWRCb2R5UHJvcHMgPSB7XG4gIGJvcmRlckJvdHRvbTogYm9vbGVhbjtcbiAgYm9yZGVyVG9wOiBib29sZWFuO1xufTtcblxuY29uc3QgU3R5bGVkQm9keSA9IHN0eWxlZC5kaXY8U3R5bGVkQm9keVByb3BzICYgUGFydGlhbDxNb2RhbFByb3BzPj4oXG4gICh7IHRoZW1lLCBib3JkZXJCb3R0b20sIGJvcmRlclRvcCwgc2l6ZSwgaXNGdWxsU2NyZWVuIH0pID0+ICh7XG4gICAgb3ZlcmZsb3dZOiBcImF1dG9cIixcbiAgICBtYXhIZWlnaHQ6IFwiMTAwJVwiLFxuXG4gICAgLi4uKChpc0Z1bGxTY3JlZW4gfHwgc2l6ZSA9PT0gXCJsXCIpICYmIHtcbiAgICAgIGZsZXg6IDEsXG4gICAgfSksXG5cbiAgICAuLi4oYm9yZGVyQm90dG9tICYmIHtcbiAgICAgIGJvcmRlckJvdHRvbTogYDFweCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5kaXZpZGVyLnByaW1hcnl9YCxcbiAgICB9KSxcbiAgICAuLi4oYm9yZGVyVG9wICYmIHtcbiAgICAgIGJvcmRlclRvcDogYDFweCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5kaXZpZGVyLnByaW1hcnl9YCxcbiAgICB9KSxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZEltZyA9IHN0eWxlZC5pbWcoKCkgPT4gKHtcbiAgd2lkdGg6IFwiMTAwJVwiLFxuICBhc3BlY3RSYXRpbzogXCIxNi85XCIsXG59KSk7XG5cbmNvbnN0IFN0eWxlZE1heFdpZHRoID0gc3R5bGVkLmRpdjxQYXJ0aWFsPE1vZGFsUHJvcHM+PigoeyB0aGVtZSB9KSA9PiAoe1xuICBtYXhXaWR0aDogdGhlbWUudmFyaWFibGVzLnNpemUuZGltZW5zaW9uLm1vZGFsLmZ1bGxTY3JlZW5Db250ZW50V2lkdGgsXG4gIG1hcmdpbjogXCIwIGF1dG9cIixcbiAgaGVpZ2h0OiBcIjEwMCVcIixcbn0pKTtcblxuY29uc3QgU3R5bGVkWENvbnRhaW5lciA9IHN0eWxlZC5kaXYoKHsgdGhlbWUgfSkgPT4gKHtcbiAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgLi4udXNlUmVzcG9uc2l2ZVZhbHVlKHtcbiAgICB0b3A6IFt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnMsIHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubF0sXG4gICAgcmlnaHQ6IFt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnMsIHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubF0sXG4gIH0pLFxufSkpO1xuXG5jb25zdCBNb2RhbFN0YWNrID0gKHsgY2hpbGRyZW4sIC4uLnJlc3QgfTogT21pdDxTdGFja1Byb3BzLCBcInNwYWNlXCI+KSA9PiAoXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC9qc3gtcHJvcHMtbm8tc3ByZWFkaW5nXG4gIDxTdGFjayB7Li4ucmVzdH0gc3BhY2U9XCJtXCI+XG4gICAge2NoaWxkcmVufVxuICA8L1N0YWNrPlxuKTtcblxuY29uc3QgTW9kYWxUZXh0ID0gKHtcbiAgY2hpbGRyZW4sXG4gIC4uLnJlc3Rcbn06IE9taXQ8VGV4dFByb3BzLCBcInNpemVcIiB8IFwidmFyaWFudFwiPikgPT4gKFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QvanN4LXByb3BzLW5vLXNwcmVhZGluZ1xuICA8VGV4dCB7Li4ucmVzdH0gc2l6ZT1cIm1cIiBjb2xvcj1cInRlcnRpYXJ5XCI+XG4gICAge2NoaWxkcmVufVxuICA8L1RleHQ+XG4pO1xuXG5jb25zdCBGb290ZXIgPSAoe1xuICBjaGlsZHJlbixcbiAgYWxpZ25JdGVtcyA9IFtcInN0cmV0Y2hcIiwgXCJyaWdodFwiXSxcbiAgaXNTaG9ydFZpZXdwb3J0LFxufToge1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlW10gfCBSZWFjdC5SZWFjdEVsZW1lbnQ7XG4gIGFsaWduSXRlbXM/OiBTdGFja1Byb3BzW1wiYWxpZ25JdGVtc1wiXTtcbiAgaXNTaG9ydFZpZXdwb3J0PzogYm9vbGVhbjtcbn0pID0+IChcbiAgPEJveCBzcGFjZT1cInplcm9cIiB0U3BhY2U9e2lzU2hvcnRWaWV3cG9ydCA/IFwibVwiIDogXCJsXCJ9PlxuICAgIDxTdGFjayBhbGlnbkl0ZW1zPXthbGlnbkl0ZW1zfT57Y2hpbGRyZW59PC9TdGFjaz5cbiAgPC9Cb3g+XG4pO1xuXG5jb25zdCBXcmFwcGVyID0gKHtcbiAgc2tpcFBvcnRhbCxcbiAgY2hpbGRyZW4sXG4gIHBvcnRhbENvbnRhaW5lcixcbiAgYmFja2Ryb3BSZWYsXG59OiB7XG4gIHNraXBQb3J0YWw6IGJvb2xlYW47XG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdEVsZW1lbnQ7XG4gIGJhY2tkcm9wUmVmOiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xufSAmIFBhcnRpYWw8TW9kYWxQcm9wcz4pOiBSZWFjdC5SZWFjdEVsZW1lbnQgPT5cbiAgc2tpcFBvcnRhbCA/IChcbiAgICA8PntjaGlsZHJlbn08Lz5cbiAgKSA6IChcbiAgICA8TW9kYWxDb250ZXh0LlByb3ZpZGVyIHZhbHVlPlxuICAgICAgPFBvcnRhbCBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn0+XG4gICAgICAgIDxTdHlsZWRCYWNrZHJvcCByZWY9e2JhY2tkcm9wUmVmfT57Y2hpbGRyZW59PC9TdHlsZWRCYWNrZHJvcD5cbiAgICAgIDwvUG9ydGFsPlxuICAgIDwvTW9kYWxDb250ZXh0LlByb3ZpZGVyPlxuICApO1xuXG50eXBlIEZvY3VzVHJhcFByb3BzID0ge1xuICBvblBvc3REZWFjdGl2YXRlOiAoKSA9PiB2b2lkO1xuICBiYWNrZHJvcFJlZjogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcbiAgbW9kYWxSZWY6IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XG59ICYgUGljazxNb2RhbFByb3BzLCBcImlzRGlzbWlzc2libGVcIiB8IFwicG9ydGFsQ29udGFpbmVyXCI+O1xuXG5mdW5jdGlvbiBGb2N1c1RyYXAoe1xuICBvblBvc3REZWFjdGl2YXRlLFxuICBpc0Rpc21pc3NpYmxlLFxuICBwb3J0YWxDb250YWluZXIsXG4gIGNoaWxkcmVuLFxuICBiYWNrZHJvcFJlZixcbiAgbW9kYWxSZWYsXG59OiBQcm9wc1dpdGhDaGlsZHJlbjxGb2N1c1RyYXBQcm9wcz4pIHtcbiAgY29uc3QgcG9ydGFsQ29udGFpbmVyRWxlbWVudCA9IHVzZVBvcnRhbENvbnRhaW5lckVsZW1lbnQocG9ydGFsQ29udGFpbmVyKTtcblxuICBjb25zdCBoYW5kbGVDbGlja091dHNpZGVEZWFjdGl2YXRlcyA9IChldnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KSA9PiB7XG4gICAgLy8gRG8gbm90IGNsb3NlIG9uIGNsaWNrIHRoYXQgb2NjdXJzIG9uIGVsZW1lbnRzIHdpdGhpbiB0aGUgc2FtZSBwb3J0YWwsIGZvciBlZywgZHJvcGRvd24gYW5kIHNlbGVjdCBtZW51c1xuICAgIGlmIChcbiAgICAgIHBvcnRhbENvbnRhaW5lckVsZW1lbnQuY29udGFpbnMoZXZ0LnRhcmdldCBhcyBIVE1MRWxlbWVudCkgJiZcbiAgICAgIGV2dC50YXJnZXQgIT09IGJhY2tkcm9wUmVmLmN1cnJlbnRcbiAgICApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIGlzRGlzbWlzc2libGU7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8Rm9jdXNUcmFwV3JhcHBlclxuICAgICAgYWN0aXZlXG4gICAgICBmb2N1c1RyYXBPcHRpb25zPXt7XG4gICAgICAgIGFsbG93T3V0c2lkZUNsaWNrOiB0cnVlLCAvLyBhbGxvdyBjbGljayBvbiBtb2JpbGUgaW4gYW55IGRyb3Bkb3duc1xuICAgICAgICBjbGlja091dHNpZGVEZWFjdGl2YXRlczogaGFuZGxlQ2xpY2tPdXRzaWRlRGVhY3RpdmF0ZXMsXG4gICAgICAgIGVzY2FwZURlYWN0aXZhdGVzOiBpc0Rpc21pc3NpYmxlLCAvLyBkZS1hY3RpdmF0ZSBmb2N1cyB0cmFwIG9uIGVzY2FwZSBrZXlcbiAgICAgICAgcHJldmVudFNjcm9sbDogdHJ1ZSxcbiAgICAgICAgZmFsbGJhY2tGb2N1czogbW9kYWxSZWYuY3VycmVudCxcbiAgICAgICAgb25Qb3N0RGVhY3RpdmF0ZSxcbiAgICAgIH19XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvRm9jdXNUcmFwV3JhcHBlcj5cbiAgKTtcbn1cblxuY29uc3QgSG9yaXpvbnRhbE9mZnNldCA9ICh7XG4gIGNoaWxkcmVuLFxuICBpc0Z1bGxTY3JlZW4sXG4gIGlzTWF4V2lkdGhMaW1pdCxcbiAgaGVpZ2h0LFxufTogUGFydGlhbDxNb2RhbFByb3BzPiAmIHsgaGVpZ2h0Pzogc3RyaW5nIH0pID0+IChcbiAgPEJveCBzcGFjZT17W21vYmlsZVNpemUsIGRlc2t0b3BTaXplXX0gdlNwYWNlPVwiemVyb1wiIGhlaWdodD17aGVpZ2h0fT5cbiAgICB7aXNGdWxsU2NyZWVuICYmIGlzTWF4V2lkdGhMaW1pdCA/IChcbiAgICAgIDxTdHlsZWRNYXhXaWR0aD57Y2hpbGRyZW59PC9TdHlsZWRNYXhXaWR0aD5cbiAgICApIDogKFxuICAgICAgY2hpbGRyZW5cbiAgICApfVxuICA8L0JveD5cbik7XG5cbmZ1bmN0aW9uIGdldElzU2hvcnRWaWV3cG9ydCh3aW5kb3c6IFdpbmRvdyk6IGJvb2xlYW4ge1xuICByZXR1cm4gKFxuICAgIHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgJiYgd2luZG93LmlubmVySGVpZ2h0IDwgTUlOX1ZJRVdQT1JUX0hFSUdIVFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gTW9kYWwoe1xuICBoZWFkZXIsXG4gIHN1YkhlYWRlcixcbiAgbGFiZWxIZWFkZXIsXG4gIGNoaWxkcmVuLFxuICBpbWFnZVVybCxcbiAgSW1hZ2VDb21wb25lbnQsXG4gIHNlY29uZGFyeUJ1dHRvbixcbiAgY2FuY2VsQnV0dG9uTGFiZWwsXG4gIGlzRGlzbWlzc2libGUgPSB0cnVlLFxuICBpc0Z1bGxTY3JlZW4sXG4gIGlzTWF4V2lkdGhMaW1pdCA9IHRydWUsXG4gIGFjdGlvbkJ1dHRvbixcbiAgcm9sZSA9IFwiZGlhbG9nXCIsXG4gIG9uQWN0aW9uLFxuICBzaXplID0gXCJtXCIsXG4gIHByaXZhdGVQcm9wczogeyBza2lwUG9ydGFsIH0gPSB7IHNraXBQb3J0YWw6IGZhbHNlIH0sXG4gIHBvcnRhbENvbnRhaW5lcixcbiAgY2xvc2VCdXR0b25BcmlhTGFiZWwgPSBcIkRpc21pc3MgRGlhbG9nXCIsXG4gIFwiYXJpYS1sYWJlbFwiOiBhcmlhTGFiZWwsXG4gIFwiYXJpYS1kZXNjcmliZWRieVwiOiBhcmlhRGVzY3JpYmVkQnksXG4gIFwiZGF0YS1lMmUtdGVzdC1pZFwiOiBkYXRhRTJlVGVzdElkLFxuICBpbWFnZUFsdCxcbn06IE1vZGFsUHJvcHMpOiBSZWFjdC5SZWFjdEVsZW1lbnQge1xuICBjb25zdCBtb2RhbFJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgYmFja2Ryb3BSZWYgPSB1c2VSZWYobnVsbCk7XG4gIGNvbnN0IHN1YkhlYWRlcklkID0gdXNlSWQoKTtcbiAgY29uc3Qgd2luZG93ID0gdXNlV2luZG93KCk7XG4gIGNvbnN0IHsgc2Nyb2xsYWJsZVJlZiwgaXNTY3JvbGxCb3R0b20sIGlzU2Nyb2xsVG9wLCBoYXNTY3JvbGwgfSA9XG4gICAgdXNlU2Nyb2xsRGV0ZWN0aW9uKCk7XG4gIGNvbnN0IFtpc1Nob3J0Vmlld3BvcnQsIHNldElzU2hvcnRWaWV3cG9ydF0gPSB1c2VTdGF0ZShcbiAgICBnZXRJc1Nob3J0Vmlld3BvcnQod2luZG93KVxuICApO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgbGV0IHJlc2l6ZU9ic2VydmVyOiBSZXNpemVPYnNlcnZlcjtcblxuICAgIGlmICh0eXBlb2YgUmVzaXplT2JzZXJ2ZXIgIT09IFwidW5kZWZpbmVkXCIgJiYgYmFja2Ryb3BSZWYuY3VycmVudCkge1xuICAgICAgcmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKCkgPT4ge1xuICAgICAgICBzZXRJc1Nob3J0Vmlld3BvcnQoZ2V0SXNTaG9ydFZpZXdwb3J0KHdpbmRvdykpO1xuICAgICAgfSk7XG5cbiAgICAgIHJlc2l6ZU9ic2VydmVyLm9ic2VydmUoYmFja2Ryb3BSZWYuY3VycmVudCk7XG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChyZXNpemVPYnNlcnZlcikge1xuICAgICAgICByZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICB9XG4gICAgfTtcbiAgfSwgW2JhY2tkcm9wUmVmLCB3aW5kb3ddKTtcblxuICBjb25zdCBoYW5kbGVDbG9zZSA9ICgpID0+IHtcbiAgICBvbkFjdGlvbihcImNhbmNlbFwiKTtcbiAgfTtcblxuICBjb25zdCBoYXNJbWFnZSA9IGltYWdlVXJsIHx8IEltYWdlQ29tcG9uZW50O1xuICBjb25zdCBIZWFkaW5nQ29tcG9uZW50ID0gaXNTaG9ydFZpZXdwb3J0ID8gSDMgOiBIMjtcbiAgY29uc3QgaXNJbWFnZVZpc2libGUgPSAhaXNTaG9ydFZpZXdwb3J0ICYmICEhaGFzSW1hZ2U7XG4gIGNvbnN0IGhvcml6b250YWxPZmZzZXRQcm9wcyA9IHsgaXNGdWxsU2NyZWVuLCBpc01heFdpZHRoTGltaXQgfTtcblxuICBjb25zdCBjbG9zZUJ1dHRvbiA9IGlzRGlzbWlzc2libGUgJiYgKFxuICAgIDxTdHlsZWRYQ29udGFpbmVyPlxuICAgICAgPFBpY3RvZ3JhbUJ1dHRvblxuICAgICAgICB2YXJpYW50PVwidGVydGlhcnlcIlxuICAgICAgICBpY29uPVwieFwiXG4gICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgb25DbGljaz17aGFuZGxlQ2xvc2V9XG4gICAgICAgIGFyaWEtbGFiZWw9e2Nsb3NlQnV0dG9uQXJpYUxhYmVsfVxuICAgICAgLz5cbiAgICA8L1N0eWxlZFhDb250YWluZXI+XG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8V3JhcHBlclxuICAgICAgc2tpcFBvcnRhbD17c2tpcFBvcnRhbH1cbiAgICAgIHBvcnRhbENvbnRhaW5lcj17cG9ydGFsQ29udGFpbmVyfVxuICAgICAgYmFja2Ryb3BSZWY9e2JhY2tkcm9wUmVmfVxuICAgID5cbiAgICAgIDxGb2N1c1RyYXBcbiAgICAgICAgcG9ydGFsQ29udGFpbmVyPXtwb3J0YWxDb250YWluZXJ9XG4gICAgICAgIGlzRGlzbWlzc2libGU9e2lzRGlzbWlzc2libGV9XG4gICAgICAgIG9uUG9zdERlYWN0aXZhdGU9e2hhbmRsZUNsb3NlfVxuICAgICAgICBiYWNrZHJvcFJlZj17YmFja2Ryb3BSZWZ9XG4gICAgICAgIG1vZGFsUmVmPXttb2RhbFJlZn1cbiAgICAgID5cbiAgICAgICAgPFN0eWxlZE1vZGFsV3JhcHBlclxuICAgICAgICAgIHJlZj17bW9kYWxSZWZ9XG4gICAgICAgICAgcm9sZT17cm9sZX1cbiAgICAgICAgICBkYXRhLWUyZS10ZXN0LWlkPXtkYXRhRTJlVGVzdElkfVxuICAgICAgICAgIGRhdGEtZHMtaWQ9XCJNb2RhbFwiXG4gICAgICAgICAgaXNGdWxsU2NyZWVuPXtpc0Z1bGxTY3JlZW59XG4gICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICBhcmlhLWxhYmVsPXthcmlhTGFiZWwgfHwgaGVhZGVyfVxuICAgICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9e1xuICAgICAgICAgICAgc3ViSGVhZGVyID8gYXBwZW5kSWQoYXJpYURlc2NyaWJlZEJ5LCBzdWJIZWFkZXJJZCkgOiBhcmlhRGVzY3JpYmVkQnlcbiAgICAgICAgICB9XG4gICAgICAgID5cbiAgICAgICAgICA8Q29udGFpbmVyIGVsZXZhdGlvbj17NH0+XG4gICAgICAgICAgICA8Qm94IHNwYWNlPVwiemVyb1wiIHZTcGFjZT17W21vYmlsZVNpemUsIGRlc2t0b3BTaXplXX0+XG4gICAgICAgICAgICAgIDxTdHlsZWRJbm5lciBpc0Z1bGxTY3JlZW49e2lzRnVsbFNjcmVlbn0gc2l6ZT17c2l6ZX0+XG4gICAgICAgICAgICAgICAgPEhvcml6b250YWxPZmZzZXQgey4uLmhvcml6b250YWxPZmZzZXRQcm9wc30+XG4gICAgICAgICAgICAgICAgICA8Qm94IHNwYWNlPVwiemVyb1wiIGJTcGFjZT1cInNcIj5cbiAgICAgICAgICAgICAgICAgICAgPFN0YWNrIHNwYWNlPXtpc0ltYWdlVmlzaWJsZSA/IFtcInNcIiwgXCJsXCJdIDogXCJ6ZXJvXCJ9PlxuICAgICAgICAgICAgICAgICAgICAgIHtpc0ltYWdlVmlzaWJsZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgKGltYWdlVXJsID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Qm94IHNwYWNlPVwiemVyb1wiIHRTcGFjZT17W1wieGxcIiwgXCJsXCJdfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSW1nIHNyYz17aW1hZ2VVcmx9IGFsdD17aW1hZ2VBbHR9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPEltYWdlQ29tcG9uZW50IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICA8SW5saW5lIGFsaWduSXRlbXM9XCJzcGFjZUJldHdlZW5cIiBub1dyYXA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8U3RhY2sgc3BhY2U9XCJ4eHNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge2xhYmVsSGVhZGVyICYmIDxINiBhcz1cImRpdlwiPntsYWJlbEhlYWRlcn08L0g2Pn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0YWNrIHNwYWNlPVwiemVyb1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxIZWFkaW5nQ29tcG9uZW50IGFzPVwiaDFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtoZWFkZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9IZWFkaW5nQ29tcG9uZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtzdWJIZWFkZXIgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEg0IGFzPVwiaDJcIiBjb2xvcj1cInRlcnRpYXJ5XCIgaWQ9e3N1YkhlYWRlcklkfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3N1YkhlYWRlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSDQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgICAgICAgICB7Y2xvc2VCdXR0b259XG4gICAgICAgICAgICAgICAgICAgICAgPC9JbmxpbmU+XG4gICAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICA8L0hvcml6b250YWxPZmZzZXQ+XG5cbiAgICAgICAgICAgICAgICA8U3R5bGVkQm9keVxuICAgICAgICAgICAgICAgICAgcmVmPXtzY3JvbGxhYmxlUmVmfVxuICAgICAgICAgICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICAgICAgICAgIGlzRnVsbFNjcmVlbj17aXNGdWxsU2NyZWVufVxuICAgICAgICAgICAgICAgICAgYm9yZGVyQm90dG9tPXtoYXNTY3JvbGwgJiYgIWlzU2Nyb2xsQm90dG9tfVxuICAgICAgICAgICAgICAgICAgYm9yZGVyVG9wPXtoYXNTY3JvbGwgJiYgIWlzU2Nyb2xsVG9wfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxCb3ggc3BhY2U9XCJ6ZXJvXCIgdlNwYWNlPVwieHh4c1wiIGhlaWdodD1cIjEwMCVcIj5cbiAgICAgICAgICAgICAgICAgICAgPEhvcml6b250YWxPZmZzZXQgey4uLmhvcml6b250YWxPZmZzZXRQcm9wc30gaGVpZ2h0PVwiMTAwJVwiPlxuICAgICAgICAgICAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICAgICAgICAgICAgPC9Ib3Jpem9udGFsT2Zmc2V0PlxuICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRCb2R5PlxuXG4gICAgICAgICAgICAgICAgeyhhY3Rpb25CdXR0b24gfHwgY2FuY2VsQnV0dG9uTGFiZWwgfHwgc2Vjb25kYXJ5QnV0dG9uKSAmJiAoXG4gICAgICAgICAgICAgICAgICA8SG9yaXpvbnRhbE9mZnNldCB7Li4uaG9yaXpvbnRhbE9mZnNldFByb3BzfT5cbiAgICAgICAgICAgICAgICAgICAgPEZvb3RlciBpc1Nob3J0Vmlld3BvcnQ9e2lzU2hvcnRWaWV3cG9ydH0+XG4gICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvbkdyb3VwXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb25CdXR0b249e2FjdGlvbkJ1dHRvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgIHNlY29uZGFyeUJ1dHRvbj17c2Vjb25kYXJ5QnV0dG9ufVxuICAgICAgICAgICAgICAgICAgICAgICAgY2FuY2VsQnV0dG9uVGV4dD17Y2FuY2VsQnV0dG9uTGFiZWx9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkJ1dHRvbkNsaWNrPXtvbkFjdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8L0Zvb3Rlcj5cbiAgICAgICAgICAgICAgICAgIDwvSG9yaXpvbnRhbE9mZnNldD5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8L1N0eWxlZElubmVyPlxuICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgIDwvU3R5bGVkTW9kYWxXcmFwcGVyPlxuICAgICAgPC9Gb2N1c1RyYXA+XG4gICAgPC9XcmFwcGVyPlxuICApO1xufVxuXG5Nb2RhbC5TdGFjayA9IE1vZGFsU3RhY2s7XG5Nb2RhbC5UZXh0ID0gTW9kYWxUZXh0O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlKb0IifQ== */"),StyledBody=(0,_styled.default)("div",{target:"e1nbaxlv3",label:"StyledBody"})(({theme,borderBottom,borderTop,size,isFullScreen})=>({overflowY:"auto",maxHeight:"100%",...(isFullScreen||"l"===size)&&{flex:1},...borderBottom&&{borderBottom:`1px solid ${theme.values.color.divider.primary}`},...borderTop&&{borderTop:`1px solid ${theme.values.color.divider.primary}`}}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUGF0dGVybnMvTW9kYWwvTW9kYWwudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9QYXR0ZXJucy9Nb2RhbC9Nb2RhbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgcmVhY3QvanN4LXByb3BzLW5vLXNwcmVhZGluZyAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVhY3QvanN4LW5vLXVzZWxlc3MtZnJhZ21lbnQgKi9cbmltcG9ydCB0eXBlIHsgUmVmT2JqZWN0LCBQcm9wc1dpdGhDaGlsZHJlbiB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFJlYWN0LCB7IHVzZU1lbW8sIHVzZVJlZiwgdXNlSWQsIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHR5cGUgeyBUaGVtZSB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHsga2V5ZnJhbWVzIH0gZnJvbSBcIkBlbW90aW9uL3JlYWN0XCI7XG5pbXBvcnQgdHlwZSB7IFBvcnRhbFByb3BzIH0gZnJvbSBcIi4uLy4uL1BvcnRhbC9Qb3J0YWxcIjtcbmltcG9ydCB7IFBvcnRhbCwgdXNlUG9ydGFsQ29udGFpbmVyRWxlbWVudCB9IGZyb20gXCIuLi8uLi9Qb3J0YWwvUG9ydGFsXCI7XG5pbXBvcnQgeyBIMiwgSDQsIEg2LCBIMyB9IGZyb20gXCIuLi8uLi9UeXBvZ3JhcGh5L0hlYWRlci9IZWFkZXJcIjtcbmltcG9ydCB0eXBlIHsgU3RhY2tQcm9wcyB9IGZyb20gXCIuLi8uLi9TdGFjay9TdGFja1wiO1xuaW1wb3J0IHsgU3RhY2sgfSBmcm9tIFwiLi4vLi4vU3RhY2svU3RhY2tcIjtcbmltcG9ydCB7IENvbnRhaW5lciB9IGZyb20gXCIuLi8uLi9Db250YWluZXIvQ29udGFpbmVyXCI7XG5pbXBvcnQgeyBCb3ggfSBmcm9tIFwiLi4vLi4vQm94L0JveFwiO1xuXG5pbXBvcnQgeyBJbmxpbmUgfSBmcm9tIFwiLi4vLi4vSW5saW5lL0lubGluZVwiO1xuaW1wb3J0IHR5cGUgeyBCdXR0b25Hcm91cEJ1dHRvblByb3BzIH0gZnJvbSBcIi4uL0J1dHRvbkdyb3VwL0J1dHRvbkdyb3VwXCI7XG5pbXBvcnQgeyBCdXR0b25Hcm91cCB9IGZyb20gXCIuLi9CdXR0b25Hcm91cC9CdXR0b25Hcm91cFwiO1xuaW1wb3J0IHsgUGljdG9ncmFtQnV0dG9uIH0gZnJvbSBcIi4uLy4uL1BpY3RvZ3JhbUJ1dHRvbi9QaWN0b2dyYW1CdXR0b25cIjtcbmltcG9ydCB0eXBlIHsgVGV4dFByb3BzIH0gZnJvbSBcIi4uLy4uL1R5cG9ncmFwaHkvVGV4dC9UZXh0XCI7XG5pbXBvcnQgeyBUZXh0IH0gZnJvbSBcIi4uLy4uL1R5cG9ncmFwaHkvVGV4dC9UZXh0XCI7XG5pbXBvcnQgeyB1c2VSZXNwb25zaXZlVmFsdWUgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL21lZGlhUXVlcmllc1wiO1xuaW1wb3J0IHsgdXNlU2Nyb2xsRGV0ZWN0aW9uIH0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZC91c2VTY3JvbGxEZXRlY3Rpb25cIjtcbmltcG9ydCB7IE1vZGFsQ29udGV4dCB9IGZyb20gXCIuL01vZGFsQ29udGV4dFwiO1xuaW1wb3J0IHsgRm9jdXNUcmFwV3JhcHBlciB9IGZyb20gXCIuLi8uLi8uLi9zaGFyZWQvRm9jdXNUcmFwV3JhcHBlclwiO1xuaW1wb3J0IHsgYXBwZW5kSWQgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL2FwcGVuZElkXCI7XG5pbXBvcnQgeyB1c2VXaW5kb3cgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL3VzZVdpbmRvd1wiO1xuXG50eXBlIEJhc2VQcm9wcyA9IHtcbiAgaGVhZGVyPzogc3RyaW5nO1xuICBvbkFjdGlvbj86IChhY3Rpb246IFwiY2FuY2VsXCIgfCBcImFjdGlvblwiKSA9PiB2b2lkO1xuICByb2xlPzogXCJkaWFsb2dcIiB8IFwiYWxlcnRkaWFsb2dcIjtcbiAgbGFiZWxIZWFkZXI/OiBzdHJpbmc7XG4gIC8qKiBUaGUgYmxhY2sgY29sb3IgaXMgZ29pbmcgdG8gYmUgcmVwbGFjZWQgd2l0aCBncmF5IG9uZSAqL1xuICBzdWJIZWFkZXI/OiBzdHJpbmc7XG4gIC8qKiBUZXh0IGFuZCBvdGhlciBwcm9wcyBmb3IgYWN0aW9uIEJ1dHRvbiAqL1xuICBhY3Rpb25CdXR0b24/OiBCdXR0b25Hcm91cEJ1dHRvblByb3BzO1xuICAvKiogVGV4dCBhbmQgb3RoZXIgcHJvcHMgZm9yIGFjdGlvbiBCdXR0b24gKi9cbiAgc2Vjb25kYXJ5QnV0dG9uPzogQnV0dG9uR3JvdXBCdXR0b25Qcm9wcztcbiAgLyoqIEBkZXByZWNhdGVkIFVzZSBzZWNvbmRhcnlCdXR0b24gdG8gcGFzcyBpbiB0ZXh0IGFuZCBvdGhlciBwcm9wcyBmb3Igc2Vjb25kYXJ5IGJ1dHRvbiAqL1xuICBjYW5jZWxCdXR0b25MYWJlbD86IHN0cmluZztcbiAgLyoqIEFpbSB0byB1c2UgPE1vZGFsLlRleHQ+IGFuZCA8TW9kYWwuU3RhY2s+ICovXG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuICBcImRhdGEtZTJlLXRlc3QtaWRcIj86IHN0cmluZztcbiAgcHJpdmF0ZVByb3BzPzogeyBza2lwUG9ydGFsPzogYm9vbGVhbiB9O1xuICAvKiogSXQncyBhIGJhZCBwYXR0ZXJuIHRvIHVzZSBub24tZGlzbWlzc2libGUgTW9kYWwgKi9cbiAgaXNEaXNtaXNzaWJsZT86IGJvb2xlYW47XG4gIGlzRnVsbFNjcmVlbj86IGJvb2xlYW47XG4gIGlzTWF4V2lkdGhMaW1pdD86IGJvb2xlYW47XG4gIHNpemU/OiBcIm1cIiB8IFwibFwiO1xuICBjbG9zZUJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgXCJhcmlhLWxhYmVsXCI/OiBzdHJpbmc7XG4gIFwiYXJpYS1kZXNjcmliZWRieVwiPzogc3RyaW5nO1xuICAvKiogQWx0IHRleHQgZm9yIHRoZSBtb2RhbCBpbWFnZSAqL1xufTtcblxudHlwZSBDb25kaXRpb25hbFByb3BzID1cbiAgfCB7XG4gICAgICAvKiogQXNwZWN0IHJhdGlvIDE2OjkgKi9cbiAgICAgIGltYWdlVXJsPzogc3RyaW5nO1xuICAgICAgaW1hZ2VBbHQ/OiBzdHJpbmc7XG4gICAgICBJbWFnZUNvbXBvbmVudD86IG5ldmVyO1xuICAgIH1cbiAgfCB7XG4gICAgICBpbWFnZVVybD86IG5ldmVyO1xuICAgICAgaW1hZ2VBbHQ/OiBuZXZlcjtcbiAgICAgIC8qKiBBY2NlcHQgcmF0aW8gMTY6OSAqL1xuICAgICAgSW1hZ2VDb21wb25lbnQ/OiBSZWFjdC5FbGVtZW50VHlwZTxhbnk+O1xuICAgIH07XG5cbmV4cG9ydCB0eXBlIE1vZGFsUHJvcHMgPSBCYXNlUHJvcHMgJlxuICBDb25kaXRpb25hbFByb3BzICZcbiAgUGljazxQb3J0YWxQcm9wcywgXCJwb3J0YWxDb250YWluZXJcIj47XG5cbmV4cG9ydCBjb25zdCBTdHlsZWRCYWNrZHJvcCA9IHN0eWxlZC5kaXY8UGFydGlhbDxCYXNlUHJvcHM+PigoeyB0aGVtZSB9KSA9PiB7XG4gIGNvbnN0IGZhZGVJbkJhY2tkcm9wID0gdXNlTWVtbyhcbiAgICAoKSA9PlxuICAgICAga2V5ZnJhbWVzYFxuICAgICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6ICR7dGhlbWUudmFyaWFibGVzLm9wYWNpdHkuaGlkZGVufTtcbiAgICAgIH1cbiAgICAgIHRvIHtcbiAgICAgICAgb3BhY2l0eTogJHt0aGVtZS52YXJpYWJsZXMub3BhY2l0eS52aXNpYmxlfTtcbiAgICAgIH1cbiAgICBgLFxuICAgIFt0aGVtZS52YXJpYWJsZXMub3BhY2l0eS5oaWRkZW4sIHRoZW1lLnZhcmlhYmxlcy5vcGFjaXR5LnZpc2libGVdXG4gICk7XG4gIHJldHVybiB7XG4gICAgcG9zaXRpb246IFwiZml4ZWRcIixcbiAgICB0b3A6IDAsXG4gICAgbGVmdDogMCxcbiAgICB6SW5kZXg6IHRoZW1lLnZhcmlhYmxlcy56SW5kZXgubW9kYWwsXG4gICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgIGhlaWdodDogXCIxMDBkdmhcIixcbiAgICBiYWNrZ3JvdW5kOiB0aGVtZS52YWx1ZXMuY29sb3IuYmFja2dyb3VuZC5iYWNrZHJvcC5kZWZhdWx0LFxuICAgIGRpc3BsYXk6IFwiZmxleFwiLFxuICAgIGZsZXhEaXJlY3Rpb246IFwiY29sdW1uXCIsXG4gICAganVzdGlmeUNvbnRlbnQ6IFwiY2VudGVyXCIsXG4gICAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbiAgICBmbGV4OiBcIjEgMCBhdXRvXCIsXG4gICAgYW5pbWF0aW9uOiBgJHtmYWRlSW5CYWNrZHJvcH0gJHt0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLm1vZGFsQmFja2Ryb3Aub3Blbi5kdXJhdGlvbn0gJHt0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLm1vZGFsQmFja2Ryb3Aub3Blbi50aW1pbmdGdW5jdGlvbn0gYm90aGAsXG4gIH07XG59KTtcblxuY29uc3QgbW9iaWxlU2l6ZSA9IFwibVwiO1xuY29uc3QgZGVza3RvcFNpemUgPSBcInhsXCI7XG5jb25zdCBnZXREZXNrdG9wU3BhY2UgPSAodGhlbWU6IFRoZW1lKSA9PiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLmw7XG5jb25zdCBnZXREZXNrdG9wSW5uZXJTcGFjZSA9ICh0aGVtZTogVGhlbWUpID0+XG4gIHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmdbZGVza3RvcFNpemVdO1xuY29uc3QgZ2V0TW9iaWxlU3BhY2UgPSAodGhlbWU6IFRoZW1lKSA9PiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLm07XG5jb25zdCBnZXRNb2JpbGVJbm5lclNwYWNlID0gKHRoZW1lOiBUaGVtZSkgPT5cbiAgdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZ1ttb2JpbGVTaXplXTtcbi8vIE1pbmltdW0gdmlld3BvcnQgaGVpZ2h0IG9uIHdoaWNoIGltYWdlIGlzIHNob3duLlxuY29uc3QgTUlOX1ZJRVdQT1JUX0hFSUdIVCA9IDQyMDtcblxuY29uc3QgU3R5bGVkTW9kYWxXcmFwcGVyID0gc3R5bGVkLmRpdjxQYXJ0aWFsPE1vZGFsUHJvcHM+PihcbiAgKHsgdGhlbWUsIGlzRnVsbFNjcmVlbiwgc2l6ZSB9KSA9PiB7XG4gICAgY29uc3QgZmFkZUluTW9kYWwgPSB1c2VNZW1vKFxuICAgICAgKCkgPT5cbiAgICAgICAga2V5ZnJhbWVzYFxuICAgICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6ICR7dGhlbWUudmFyaWFibGVzLm9wYWNpdHkuaGlkZGVufTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwcHgpO1xuICAgICAgfVxuICAgICAgdG8ge1xuICAgICAgICAgIG9wYWNpdHk6ICR7dGhlbWUudmFyaWFibGVzLm9wYWNpdHkudmlzaWJsZX07XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICAgIH1cbiAgICBgLFxuICAgICAgW3RoZW1lLnZhcmlhYmxlcy5vcGFjaXR5LmhpZGRlbiwgdGhlbWUudmFyaWFibGVzLm9wYWNpdHkudmlzaWJsZV1cbiAgICApO1xuICAgIHJldHVybiB7XG4gICAgICBhbmltYXRpb246IGAke2ZhZGVJbk1vZGFsfSAke3RoZW1lLnZhcmlhYmxlcy5hbmltYXRpb24ubW9kYWwub3Blbi5kdXJhdGlvbn0gJHt0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLm1vZGFsLm9wZW4uZGVsYXl9ICR7dGhlbWUudmFyaWFibGVzLmFuaW1hdGlvbi5tb2RhbC5vcGVuLnRpbWluZ0Z1bmN0aW9ufSBib3RoYCxcbiAgICAgIC4uLnVzZVJlc3BvbnNpdmVWYWx1ZSh7XG4gICAgICAgIHdpZHRoOiBbXG4gICAgICAgICAgYGNhbGMoMTAwJSAtICR7Z2V0TW9iaWxlU3BhY2UodGhlbWUpfSAqIDIpYCxcbiAgICAgICAgICBpc0Z1bGxTY3JlZW5cbiAgICAgICAgICAgID8gYGNhbGMoMTAwJSAtICR7Z2V0RGVza3RvcFNwYWNlKHRoZW1lKX0gKiAyKWBcbiAgICAgICAgICAgIDogdGhlbWUudmFyaWFibGVzLnNpemUuZGltZW5zaW9uLm1vZGFsLndpZHRoW3NpemVdLFxuICAgICAgICBdLFxuICAgICAgfSksXG4gICAgfTtcbiAgfVxuKTtcblxuY29uc3QgU3R5bGVkSW5uZXIgPSBzdHlsZWQuZGl2PFBhcnRpYWw8TW9kYWxQcm9wcz4+KFxuICAoeyB0aGVtZSwgaXNGdWxsU2NyZWVuLCBzaXplIH0pID0+IHtcbiAgICBjb25zdCBtb2JpbGVWZXJ0aWNhbFNwYWNlID0gZ2V0TW9iaWxlU3BhY2UodGhlbWUpO1xuICAgIGNvbnN0IG1vYmlsZUlubmVyVmVydGljYWxTcGFjZSA9IGdldE1vYmlsZUlubmVyU3BhY2UodGhlbWUpO1xuICAgIGNvbnN0IGRlc2t0b3BWZXJ0aWNhbFNwYWNlID0gZ2V0RGVza3RvcFNwYWNlKHRoZW1lKTtcbiAgICBjb25zdCBkZXNrdG9wSW5uZXJWZXJ0aWNhbFNwYWNlID0gZ2V0RGVza3RvcElubmVyU3BhY2UodGhlbWUpO1xuXG4gICAgLy8gZnVsbHNjcmVlbiBhbmQgTCBzaXplIGRvbid0IGRlcGVuZCBvbiBjb250ZW50IHNpemVcbiAgICAvLyBMIHNpemUgaGVpZ2h0IGhhcyBtYXhIaWVnaHQgcmVzaXplIHVudGlsIDgwMHB4XG4gICAgLy8gZnVsbHNjcmVlbiBtYXhIZWlnaHQgaXMgbm90IGxpbWl0ZWRcbiAgICAvLyBNIHNpemUgaGVpZ2h0IGhhcyBjb250ZW50IHNpemUgYW5kIGNlbnRlcmVkIGF0IHRvcCBhbmQgbWF4SGVpZ2h0IGlzIG5vdCBsaW1pdGVkXG5cbiAgICBjb25zdCBnZXREZXNrdG9wSGVpZ2h0ID0gKCkgPT4ge1xuICAgICAgaWYgKGlzRnVsbFNjcmVlbikge1xuICAgICAgICByZXR1cm4gYGNhbGMoMTAwZHZoIC0gJHtkZXNrdG9wVmVydGljYWxTcGFjZX0gKiAyIC0gJHtkZXNrdG9wSW5uZXJWZXJ0aWNhbFNwYWNlfSAqIDIpYDtcbiAgICAgIH1cbiAgICAgIGlmIChzaXplID09PSBcImxcIikge1xuICAgICAgICByZXR1cm4gYGNhbGMoMTAwZHZoIC0gJHtkZXNrdG9wVmVydGljYWxTcGFjZX0gKiAyIC0gJHtkZXNrdG9wSW5uZXJWZXJ0aWNhbFNwYWNlfSAqIDIgLSAke3RoZW1lLnZhcmlhYmxlcy5zaXplLmRpbWVuc2lvbi5tb2RhbC5tYXJnaW4ubH0gKiAyKWA7XG4gICAgICB9XG4gICAgICByZXR1cm4gXCJhdXRvXCI7XG4gICAgfTtcblxuICAgIGNvbnN0IGdldERlc2t0b3BNYXhIZWlnaHQgPSAoKSA9PiB7XG4gICAgICBpZiAoaXNGdWxsU2NyZWVuKSB7XG4gICAgICAgIHJldHVybiBgYXV0b2A7XG4gICAgICB9XG4gICAgICBpZiAoc2l6ZSA9PT0gXCJsXCIpIHtcbiAgICAgICAgcmV0dXJuIGBjYWxjKCR7dGhlbWUudmFyaWFibGVzLnNpemUuZGltZW5zaW9uLm1vZGFsLm1heEhlaWdodC5sfSAtICR7ZGVza3RvcElubmVyVmVydGljYWxTcGFjZX0gKiAyKWA7XG4gICAgICB9XG4gICAgICByZXR1cm4gYGNhbGMoMTAwZHZoIC0gJHtkZXNrdG9wVmVydGljYWxTcGFjZX0gKiAyIC0gJHtkZXNrdG9wSW5uZXJWZXJ0aWNhbFNwYWNlfSAqIDIpYDtcbiAgICB9O1xuXG4gICAgY29uc3QgZnVsbFNjcmVlbk1vYmlsZSA9IGBjYWxjKDEwMGR2aCAtICR7bW9iaWxlVmVydGljYWxTcGFjZX0gKiAyIC0gJHttb2JpbGVJbm5lclZlcnRpY2FsU3BhY2V9ICogMilgO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGRpc3BsYXk6IFwiZmxleFwiLFxuICAgICAgLi4udXNlUmVzcG9uc2l2ZVZhbHVlKHtcbiAgICAgICAgaGVpZ2h0OiBbXG4gICAgICAgICAgc2l6ZSA9PT0gXCJsXCIgfHwgaXNGdWxsU2NyZWVuID8gZnVsbFNjcmVlbk1vYmlsZSA6IFwiYXV0b1wiLFxuICAgICAgICAgIGdldERlc2t0b3BIZWlnaHQoKSxcbiAgICAgICAgXSxcbiAgICAgICAgbWF4SGVpZ2h0OiBbZnVsbFNjcmVlbk1vYmlsZSwgZ2V0RGVza3RvcE1heEhlaWdodCgpXSxcbiAgICAgIH0pLFxuXG4gICAgICBmbGV4RGlyZWN0aW9uOiBcImNvbHVtblwiLFxuICAgICAgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsXG4gICAgfTtcbiAgfVxuKTtcblxudHlwZSBTdHlsZWRCb2R5UHJvcHMgPSB7XG4gIGJvcmRlckJvdHRvbTogYm9vbGVhbjtcbiAgYm9yZGVyVG9wOiBib29sZWFuO1xufTtcblxuY29uc3QgU3R5bGVkQm9keSA9IHN0eWxlZC5kaXY8U3R5bGVkQm9keVByb3BzICYgUGFydGlhbDxNb2RhbFByb3BzPj4oXG4gICh7IHRoZW1lLCBib3JkZXJCb3R0b20sIGJvcmRlclRvcCwgc2l6ZSwgaXNGdWxsU2NyZWVuIH0pID0+ICh7XG4gICAgb3ZlcmZsb3dZOiBcImF1dG9cIixcbiAgICBtYXhIZWlnaHQ6IFwiMTAwJVwiLFxuXG4gICAgLi4uKChpc0Z1bGxTY3JlZW4gfHwgc2l6ZSA9PT0gXCJsXCIpICYmIHtcbiAgICAgIGZsZXg6IDEsXG4gICAgfSksXG5cbiAgICAuLi4oYm9yZGVyQm90dG9tICYmIHtcbiAgICAgIGJvcmRlckJvdHRvbTogYDFweCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5kaXZpZGVyLnByaW1hcnl9YCxcbiAgICB9KSxcbiAgICAuLi4oYm9yZGVyVG9wICYmIHtcbiAgICAgIGJvcmRlclRvcDogYDFweCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5kaXZpZGVyLnByaW1hcnl9YCxcbiAgICB9KSxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZEltZyA9IHN0eWxlZC5pbWcoKCkgPT4gKHtcbiAgd2lkdGg6IFwiMTAwJVwiLFxuICBhc3BlY3RSYXRpbzogXCIxNi85XCIsXG59KSk7XG5cbmNvbnN0IFN0eWxlZE1heFdpZHRoID0gc3R5bGVkLmRpdjxQYXJ0aWFsPE1vZGFsUHJvcHM+PigoeyB0aGVtZSB9KSA9PiAoe1xuICBtYXhXaWR0aDogdGhlbWUudmFyaWFibGVzLnNpemUuZGltZW5zaW9uLm1vZGFsLmZ1bGxTY3JlZW5Db250ZW50V2lkdGgsXG4gIG1hcmdpbjogXCIwIGF1dG9cIixcbiAgaGVpZ2h0OiBcIjEwMCVcIixcbn0pKTtcblxuY29uc3QgU3R5bGVkWENvbnRhaW5lciA9IHN0eWxlZC5kaXYoKHsgdGhlbWUgfSkgPT4gKHtcbiAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgLi4udXNlUmVzcG9uc2l2ZVZhbHVlKHtcbiAgICB0b3A6IFt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnMsIHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubF0sXG4gICAgcmlnaHQ6IFt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnMsIHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubF0sXG4gIH0pLFxufSkpO1xuXG5jb25zdCBNb2RhbFN0YWNrID0gKHsgY2hpbGRyZW4sIC4uLnJlc3QgfTogT21pdDxTdGFja1Byb3BzLCBcInNwYWNlXCI+KSA9PiAoXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC9qc3gtcHJvcHMtbm8tc3ByZWFkaW5nXG4gIDxTdGFjayB7Li4ucmVzdH0gc3BhY2U9XCJtXCI+XG4gICAge2NoaWxkcmVufVxuICA8L1N0YWNrPlxuKTtcblxuY29uc3QgTW9kYWxUZXh0ID0gKHtcbiAgY2hpbGRyZW4sXG4gIC4uLnJlc3Rcbn06IE9taXQ8VGV4dFByb3BzLCBcInNpemVcIiB8IFwidmFyaWFudFwiPikgPT4gKFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QvanN4LXByb3BzLW5vLXNwcmVhZGluZ1xuICA8VGV4dCB7Li4ucmVzdH0gc2l6ZT1cIm1cIiBjb2xvcj1cInRlcnRpYXJ5XCI+XG4gICAge2NoaWxkcmVufVxuICA8L1RleHQ+XG4pO1xuXG5jb25zdCBGb290ZXIgPSAoe1xuICBjaGlsZHJlbixcbiAgYWxpZ25JdGVtcyA9IFtcInN0cmV0Y2hcIiwgXCJyaWdodFwiXSxcbiAgaXNTaG9ydFZpZXdwb3J0LFxufToge1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlW10gfCBSZWFjdC5SZWFjdEVsZW1lbnQ7XG4gIGFsaWduSXRlbXM/OiBTdGFja1Byb3BzW1wiYWxpZ25JdGVtc1wiXTtcbiAgaXNTaG9ydFZpZXdwb3J0PzogYm9vbGVhbjtcbn0pID0+IChcbiAgPEJveCBzcGFjZT1cInplcm9cIiB0U3BhY2U9e2lzU2hvcnRWaWV3cG9ydCA/IFwibVwiIDogXCJsXCJ9PlxuICAgIDxTdGFjayBhbGlnbkl0ZW1zPXthbGlnbkl0ZW1zfT57Y2hpbGRyZW59PC9TdGFjaz5cbiAgPC9Cb3g+XG4pO1xuXG5jb25zdCBXcmFwcGVyID0gKHtcbiAgc2tpcFBvcnRhbCxcbiAgY2hpbGRyZW4sXG4gIHBvcnRhbENvbnRhaW5lcixcbiAgYmFja2Ryb3BSZWYsXG59OiB7XG4gIHNraXBQb3J0YWw6IGJvb2xlYW47XG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdEVsZW1lbnQ7XG4gIGJhY2tkcm9wUmVmOiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xufSAmIFBhcnRpYWw8TW9kYWxQcm9wcz4pOiBSZWFjdC5SZWFjdEVsZW1lbnQgPT5cbiAgc2tpcFBvcnRhbCA/IChcbiAgICA8PntjaGlsZHJlbn08Lz5cbiAgKSA6IChcbiAgICA8TW9kYWxDb250ZXh0LlByb3ZpZGVyIHZhbHVlPlxuICAgICAgPFBvcnRhbCBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn0+XG4gICAgICAgIDxTdHlsZWRCYWNrZHJvcCByZWY9e2JhY2tkcm9wUmVmfT57Y2hpbGRyZW59PC9TdHlsZWRCYWNrZHJvcD5cbiAgICAgIDwvUG9ydGFsPlxuICAgIDwvTW9kYWxDb250ZXh0LlByb3ZpZGVyPlxuICApO1xuXG50eXBlIEZvY3VzVHJhcFByb3BzID0ge1xuICBvblBvc3REZWFjdGl2YXRlOiAoKSA9PiB2b2lkO1xuICBiYWNrZHJvcFJlZjogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcbiAgbW9kYWxSZWY6IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XG59ICYgUGljazxNb2RhbFByb3BzLCBcImlzRGlzbWlzc2libGVcIiB8IFwicG9ydGFsQ29udGFpbmVyXCI+O1xuXG5mdW5jdGlvbiBGb2N1c1RyYXAoe1xuICBvblBvc3REZWFjdGl2YXRlLFxuICBpc0Rpc21pc3NpYmxlLFxuICBwb3J0YWxDb250YWluZXIsXG4gIGNoaWxkcmVuLFxuICBiYWNrZHJvcFJlZixcbiAgbW9kYWxSZWYsXG59OiBQcm9wc1dpdGhDaGlsZHJlbjxGb2N1c1RyYXBQcm9wcz4pIHtcbiAgY29uc3QgcG9ydGFsQ29udGFpbmVyRWxlbWVudCA9IHVzZVBvcnRhbENvbnRhaW5lckVsZW1lbnQocG9ydGFsQ29udGFpbmVyKTtcblxuICBjb25zdCBoYW5kbGVDbGlja091dHNpZGVEZWFjdGl2YXRlcyA9IChldnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KSA9PiB7XG4gICAgLy8gRG8gbm90IGNsb3NlIG9uIGNsaWNrIHRoYXQgb2NjdXJzIG9uIGVsZW1lbnRzIHdpdGhpbiB0aGUgc2FtZSBwb3J0YWwsIGZvciBlZywgZHJvcGRvd24gYW5kIHNlbGVjdCBtZW51c1xuICAgIGlmIChcbiAgICAgIHBvcnRhbENvbnRhaW5lckVsZW1lbnQuY29udGFpbnMoZXZ0LnRhcmdldCBhcyBIVE1MRWxlbWVudCkgJiZcbiAgICAgIGV2dC50YXJnZXQgIT09IGJhY2tkcm9wUmVmLmN1cnJlbnRcbiAgICApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIGlzRGlzbWlzc2libGU7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8Rm9jdXNUcmFwV3JhcHBlclxuICAgICAgYWN0aXZlXG4gICAgICBmb2N1c1RyYXBPcHRpb25zPXt7XG4gICAgICAgIGFsbG93T3V0c2lkZUNsaWNrOiB0cnVlLCAvLyBhbGxvdyBjbGljayBvbiBtb2JpbGUgaW4gYW55IGRyb3Bkb3duc1xuICAgICAgICBjbGlja091dHNpZGVEZWFjdGl2YXRlczogaGFuZGxlQ2xpY2tPdXRzaWRlRGVhY3RpdmF0ZXMsXG4gICAgICAgIGVzY2FwZURlYWN0aXZhdGVzOiBpc0Rpc21pc3NpYmxlLCAvLyBkZS1hY3RpdmF0ZSBmb2N1cyB0cmFwIG9uIGVzY2FwZSBrZXlcbiAgICAgICAgcHJldmVudFNjcm9sbDogdHJ1ZSxcbiAgICAgICAgZmFsbGJhY2tGb2N1czogbW9kYWxSZWYuY3VycmVudCxcbiAgICAgICAgb25Qb3N0RGVhY3RpdmF0ZSxcbiAgICAgIH19XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvRm9jdXNUcmFwV3JhcHBlcj5cbiAgKTtcbn1cblxuY29uc3QgSG9yaXpvbnRhbE9mZnNldCA9ICh7XG4gIGNoaWxkcmVuLFxuICBpc0Z1bGxTY3JlZW4sXG4gIGlzTWF4V2lkdGhMaW1pdCxcbiAgaGVpZ2h0LFxufTogUGFydGlhbDxNb2RhbFByb3BzPiAmIHsgaGVpZ2h0Pzogc3RyaW5nIH0pID0+IChcbiAgPEJveCBzcGFjZT17W21vYmlsZVNpemUsIGRlc2t0b3BTaXplXX0gdlNwYWNlPVwiemVyb1wiIGhlaWdodD17aGVpZ2h0fT5cbiAgICB7aXNGdWxsU2NyZWVuICYmIGlzTWF4V2lkdGhMaW1pdCA/IChcbiAgICAgIDxTdHlsZWRNYXhXaWR0aD57Y2hpbGRyZW59PC9TdHlsZWRNYXhXaWR0aD5cbiAgICApIDogKFxuICAgICAgY2hpbGRyZW5cbiAgICApfVxuICA8L0JveD5cbik7XG5cbmZ1bmN0aW9uIGdldElzU2hvcnRWaWV3cG9ydCh3aW5kb3c6IFdpbmRvdyk6IGJvb2xlYW4ge1xuICByZXR1cm4gKFxuICAgIHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgJiYgd2luZG93LmlubmVySGVpZ2h0IDwgTUlOX1ZJRVdQT1JUX0hFSUdIVFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gTW9kYWwoe1xuICBoZWFkZXIsXG4gIHN1YkhlYWRlcixcbiAgbGFiZWxIZWFkZXIsXG4gIGNoaWxkcmVuLFxuICBpbWFnZVVybCxcbiAgSW1hZ2VDb21wb25lbnQsXG4gIHNlY29uZGFyeUJ1dHRvbixcbiAgY2FuY2VsQnV0dG9uTGFiZWwsXG4gIGlzRGlzbWlzc2libGUgPSB0cnVlLFxuICBpc0Z1bGxTY3JlZW4sXG4gIGlzTWF4V2lkdGhMaW1pdCA9IHRydWUsXG4gIGFjdGlvbkJ1dHRvbixcbiAgcm9sZSA9IFwiZGlhbG9nXCIsXG4gIG9uQWN0aW9uLFxuICBzaXplID0gXCJtXCIsXG4gIHByaXZhdGVQcm9wczogeyBza2lwUG9ydGFsIH0gPSB7IHNraXBQb3J0YWw6IGZhbHNlIH0sXG4gIHBvcnRhbENvbnRhaW5lcixcbiAgY2xvc2VCdXR0b25BcmlhTGFiZWwgPSBcIkRpc21pc3MgRGlhbG9nXCIsXG4gIFwiYXJpYS1sYWJlbFwiOiBhcmlhTGFiZWwsXG4gIFwiYXJpYS1kZXNjcmliZWRieVwiOiBhcmlhRGVzY3JpYmVkQnksXG4gIFwiZGF0YS1lMmUtdGVzdC1pZFwiOiBkYXRhRTJlVGVzdElkLFxuICBpbWFnZUFsdCxcbn06IE1vZGFsUHJvcHMpOiBSZWFjdC5SZWFjdEVsZW1lbnQge1xuICBjb25zdCBtb2RhbFJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgYmFja2Ryb3BSZWYgPSB1c2VSZWYobnVsbCk7XG4gIGNvbnN0IHN1YkhlYWRlcklkID0gdXNlSWQoKTtcbiAgY29uc3Qgd2luZG93ID0gdXNlV2luZG93KCk7XG4gIGNvbnN0IHsgc2Nyb2xsYWJsZVJlZiwgaXNTY3JvbGxCb3R0b20sIGlzU2Nyb2xsVG9wLCBoYXNTY3JvbGwgfSA9XG4gICAgdXNlU2Nyb2xsRGV0ZWN0aW9uKCk7XG4gIGNvbnN0IFtpc1Nob3J0Vmlld3BvcnQsIHNldElzU2hvcnRWaWV3cG9ydF0gPSB1c2VTdGF0ZShcbiAgICBnZXRJc1Nob3J0Vmlld3BvcnQod2luZG93KVxuICApO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgbGV0IHJlc2l6ZU9ic2VydmVyOiBSZXNpemVPYnNlcnZlcjtcblxuICAgIGlmICh0eXBlb2YgUmVzaXplT2JzZXJ2ZXIgIT09IFwidW5kZWZpbmVkXCIgJiYgYmFja2Ryb3BSZWYuY3VycmVudCkge1xuICAgICAgcmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKCkgPT4ge1xuICAgICAgICBzZXRJc1Nob3J0Vmlld3BvcnQoZ2V0SXNTaG9ydFZpZXdwb3J0KHdpbmRvdykpO1xuICAgICAgfSk7XG5cbiAgICAgIHJlc2l6ZU9ic2VydmVyLm9ic2VydmUoYmFja2Ryb3BSZWYuY3VycmVudCk7XG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChyZXNpemVPYnNlcnZlcikge1xuICAgICAgICByZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICB9XG4gICAgfTtcbiAgfSwgW2JhY2tkcm9wUmVmLCB3aW5kb3ddKTtcblxuICBjb25zdCBoYW5kbGVDbG9zZSA9ICgpID0+IHtcbiAgICBvbkFjdGlvbihcImNhbmNlbFwiKTtcbiAgfTtcblxuICBjb25zdCBoYXNJbWFnZSA9IGltYWdlVXJsIHx8IEltYWdlQ29tcG9uZW50O1xuICBjb25zdCBIZWFkaW5nQ29tcG9uZW50ID0gaXNTaG9ydFZpZXdwb3J0ID8gSDMgOiBIMjtcbiAgY29uc3QgaXNJbWFnZVZpc2libGUgPSAhaXNTaG9ydFZpZXdwb3J0ICYmICEhaGFzSW1hZ2U7XG4gIGNvbnN0IGhvcml6b250YWxPZmZzZXRQcm9wcyA9IHsgaXNGdWxsU2NyZWVuLCBpc01heFdpZHRoTGltaXQgfTtcblxuICBjb25zdCBjbG9zZUJ1dHRvbiA9IGlzRGlzbWlzc2libGUgJiYgKFxuICAgIDxTdHlsZWRYQ29udGFpbmVyPlxuICAgICAgPFBpY3RvZ3JhbUJ1dHRvblxuICAgICAgICB2YXJpYW50PVwidGVydGlhcnlcIlxuICAgICAgICBpY29uPVwieFwiXG4gICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgb25DbGljaz17aGFuZGxlQ2xvc2V9XG4gICAgICAgIGFyaWEtbGFiZWw9e2Nsb3NlQnV0dG9uQXJpYUxhYmVsfVxuICAgICAgLz5cbiAgICA8L1N0eWxlZFhDb250YWluZXI+XG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8V3JhcHBlclxuICAgICAgc2tpcFBvcnRhbD17c2tpcFBvcnRhbH1cbiAgICAgIHBvcnRhbENvbnRhaW5lcj17cG9ydGFsQ29udGFpbmVyfVxuICAgICAgYmFja2Ryb3BSZWY9e2JhY2tkcm9wUmVmfVxuICAgID5cbiAgICAgIDxGb2N1c1RyYXBcbiAgICAgICAgcG9ydGFsQ29udGFpbmVyPXtwb3J0YWxDb250YWluZXJ9XG4gICAgICAgIGlzRGlzbWlzc2libGU9e2lzRGlzbWlzc2libGV9XG4gICAgICAgIG9uUG9zdERlYWN0aXZhdGU9e2hhbmRsZUNsb3NlfVxuICAgICAgICBiYWNrZHJvcFJlZj17YmFja2Ryb3BSZWZ9XG4gICAgICAgIG1vZGFsUmVmPXttb2RhbFJlZn1cbiAgICAgID5cbiAgICAgICAgPFN0eWxlZE1vZGFsV3JhcHBlclxuICAgICAgICAgIHJlZj17bW9kYWxSZWZ9XG4gICAgICAgICAgcm9sZT17cm9sZX1cbiAgICAgICAgICBkYXRhLWUyZS10ZXN0LWlkPXtkYXRhRTJlVGVzdElkfVxuICAgICAgICAgIGRhdGEtZHMtaWQ9XCJNb2RhbFwiXG4gICAgICAgICAgaXNGdWxsU2NyZWVuPXtpc0Z1bGxTY3JlZW59XG4gICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICBhcmlhLWxhYmVsPXthcmlhTGFiZWwgfHwgaGVhZGVyfVxuICAgICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9e1xuICAgICAgICAgICAgc3ViSGVhZGVyID8gYXBwZW5kSWQoYXJpYURlc2NyaWJlZEJ5LCBzdWJIZWFkZXJJZCkgOiBhcmlhRGVzY3JpYmVkQnlcbiAgICAgICAgICB9XG4gICAgICAgID5cbiAgICAgICAgICA8Q29udGFpbmVyIGVsZXZhdGlvbj17NH0+XG4gICAgICAgICAgICA8Qm94IHNwYWNlPVwiemVyb1wiIHZTcGFjZT17W21vYmlsZVNpemUsIGRlc2t0b3BTaXplXX0+XG4gICAgICAgICAgICAgIDxTdHlsZWRJbm5lciBpc0Z1bGxTY3JlZW49e2lzRnVsbFNjcmVlbn0gc2l6ZT17c2l6ZX0+XG4gICAgICAgICAgICAgICAgPEhvcml6b250YWxPZmZzZXQgey4uLmhvcml6b250YWxPZmZzZXRQcm9wc30+XG4gICAgICAgICAgICAgICAgICA8Qm94IHNwYWNlPVwiemVyb1wiIGJTcGFjZT1cInNcIj5cbiAgICAgICAgICAgICAgICAgICAgPFN0YWNrIHNwYWNlPXtpc0ltYWdlVmlzaWJsZSA/IFtcInNcIiwgXCJsXCJdIDogXCJ6ZXJvXCJ9PlxuICAgICAgICAgICAgICAgICAgICAgIHtpc0ltYWdlVmlzaWJsZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgKGltYWdlVXJsID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Qm94IHNwYWNlPVwiemVyb1wiIHRTcGFjZT17W1wieGxcIiwgXCJsXCJdfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSW1nIHNyYz17aW1hZ2VVcmx9IGFsdD17aW1hZ2VBbHR9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPEltYWdlQ29tcG9uZW50IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICA8SW5saW5lIGFsaWduSXRlbXM9XCJzcGFjZUJldHdlZW5cIiBub1dyYXA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8U3RhY2sgc3BhY2U9XCJ4eHNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge2xhYmVsSGVhZGVyICYmIDxINiBhcz1cImRpdlwiPntsYWJlbEhlYWRlcn08L0g2Pn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0YWNrIHNwYWNlPVwiemVyb1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxIZWFkaW5nQ29tcG9uZW50IGFzPVwiaDFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtoZWFkZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9IZWFkaW5nQ29tcG9uZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtzdWJIZWFkZXIgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEg0IGFzPVwiaDJcIiBjb2xvcj1cInRlcnRpYXJ5XCIgaWQ9e3N1YkhlYWRlcklkfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3N1YkhlYWRlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSDQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgICAgICAgICB7Y2xvc2VCdXR0b259XG4gICAgICAgICAgICAgICAgICAgICAgPC9JbmxpbmU+XG4gICAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICA8L0hvcml6b250YWxPZmZzZXQ+XG5cbiAgICAgICAgICAgICAgICA8U3R5bGVkQm9keVxuICAgICAgICAgICAgICAgICAgcmVmPXtzY3JvbGxhYmxlUmVmfVxuICAgICAgICAgICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICAgICAgICAgIGlzRnVsbFNjcmVlbj17aXNGdWxsU2NyZWVufVxuICAgICAgICAgICAgICAgICAgYm9yZGVyQm90dG9tPXtoYXNTY3JvbGwgJiYgIWlzU2Nyb2xsQm90dG9tfVxuICAgICAgICAgICAgICAgICAgYm9yZGVyVG9wPXtoYXNTY3JvbGwgJiYgIWlzU2Nyb2xsVG9wfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxCb3ggc3BhY2U9XCJ6ZXJvXCIgdlNwYWNlPVwieHh4c1wiIGhlaWdodD1cIjEwMCVcIj5cbiAgICAgICAgICAgICAgICAgICAgPEhvcml6b250YWxPZmZzZXQgey4uLmhvcml6b250YWxPZmZzZXRQcm9wc30gaGVpZ2h0PVwiMTAwJVwiPlxuICAgICAgICAgICAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICAgICAgICAgICAgPC9Ib3Jpem9udGFsT2Zmc2V0PlxuICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRCb2R5PlxuXG4gICAgICAgICAgICAgICAgeyhhY3Rpb25CdXR0b24gfHwgY2FuY2VsQnV0dG9uTGFiZWwgfHwgc2Vjb25kYXJ5QnV0dG9uKSAmJiAoXG4gICAgICAgICAgICAgICAgICA8SG9yaXpvbnRhbE9mZnNldCB7Li4uaG9yaXpvbnRhbE9mZnNldFByb3BzfT5cbiAgICAgICAgICAgICAgICAgICAgPEZvb3RlciBpc1Nob3J0Vmlld3BvcnQ9e2lzU2hvcnRWaWV3cG9ydH0+XG4gICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvbkdyb3VwXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb25CdXR0b249e2FjdGlvbkJ1dHRvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgIHNlY29uZGFyeUJ1dHRvbj17c2Vjb25kYXJ5QnV0dG9ufVxuICAgICAgICAgICAgICAgICAgICAgICAgY2FuY2VsQnV0dG9uVGV4dD17Y2FuY2VsQnV0dG9uTGFiZWx9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkJ1dHRvbkNsaWNrPXtvbkFjdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8L0Zvb3Rlcj5cbiAgICAgICAgICAgICAgICAgIDwvSG9yaXpvbnRhbE9mZnNldD5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8L1N0eWxlZElubmVyPlxuICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgIDwvU3R5bGVkTW9kYWxXcmFwcGVyPlxuICAgICAgPC9Gb2N1c1RyYXA+XG4gICAgPC9XcmFwcGVyPlxuICApO1xufVxuXG5Nb2RhbC5TdGFjayA9IE1vZGFsU3RhY2s7XG5Nb2RhbC5UZXh0ID0gTW9kYWxUZXh0O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXdNbUIifQ== */"),StyledImg=(0,_styled.default)("img",{target:"e1nbaxlv4",label:"StyledImg"})(()=>({width:"100%",aspectRatio:"16/9"}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUGF0dGVybnMvTW9kYWwvTW9kYWwudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9QYXR0ZXJucy9Nb2RhbC9Nb2RhbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgcmVhY3QvanN4LXByb3BzLW5vLXNwcmVhZGluZyAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVhY3QvanN4LW5vLXVzZWxlc3MtZnJhZ21lbnQgKi9cbmltcG9ydCB0eXBlIHsgUmVmT2JqZWN0LCBQcm9wc1dpdGhDaGlsZHJlbiB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFJlYWN0LCB7IHVzZU1lbW8sIHVzZVJlZiwgdXNlSWQsIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHR5cGUgeyBUaGVtZSB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHsga2V5ZnJhbWVzIH0gZnJvbSBcIkBlbW90aW9uL3JlYWN0XCI7XG5pbXBvcnQgdHlwZSB7IFBvcnRhbFByb3BzIH0gZnJvbSBcIi4uLy4uL1BvcnRhbC9Qb3J0YWxcIjtcbmltcG9ydCB7IFBvcnRhbCwgdXNlUG9ydGFsQ29udGFpbmVyRWxlbWVudCB9IGZyb20gXCIuLi8uLi9Qb3J0YWwvUG9ydGFsXCI7XG5pbXBvcnQgeyBIMiwgSDQsIEg2LCBIMyB9IGZyb20gXCIuLi8uLi9UeXBvZ3JhcGh5L0hlYWRlci9IZWFkZXJcIjtcbmltcG9ydCB0eXBlIHsgU3RhY2tQcm9wcyB9IGZyb20gXCIuLi8uLi9TdGFjay9TdGFja1wiO1xuaW1wb3J0IHsgU3RhY2sgfSBmcm9tIFwiLi4vLi4vU3RhY2svU3RhY2tcIjtcbmltcG9ydCB7IENvbnRhaW5lciB9IGZyb20gXCIuLi8uLi9Db250YWluZXIvQ29udGFpbmVyXCI7XG5pbXBvcnQgeyBCb3ggfSBmcm9tIFwiLi4vLi4vQm94L0JveFwiO1xuXG5pbXBvcnQgeyBJbmxpbmUgfSBmcm9tIFwiLi4vLi4vSW5saW5lL0lubGluZVwiO1xuaW1wb3J0IHR5cGUgeyBCdXR0b25Hcm91cEJ1dHRvblByb3BzIH0gZnJvbSBcIi4uL0J1dHRvbkdyb3VwL0J1dHRvbkdyb3VwXCI7XG5pbXBvcnQgeyBCdXR0b25Hcm91cCB9IGZyb20gXCIuLi9CdXR0b25Hcm91cC9CdXR0b25Hcm91cFwiO1xuaW1wb3J0IHsgUGljdG9ncmFtQnV0dG9uIH0gZnJvbSBcIi4uLy4uL1BpY3RvZ3JhbUJ1dHRvbi9QaWN0b2dyYW1CdXR0b25cIjtcbmltcG9ydCB0eXBlIHsgVGV4dFByb3BzIH0gZnJvbSBcIi4uLy4uL1R5cG9ncmFwaHkvVGV4dC9UZXh0XCI7XG5pbXBvcnQgeyBUZXh0IH0gZnJvbSBcIi4uLy4uL1R5cG9ncmFwaHkvVGV4dC9UZXh0XCI7XG5pbXBvcnQgeyB1c2VSZXNwb25zaXZlVmFsdWUgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL21lZGlhUXVlcmllc1wiO1xuaW1wb3J0IHsgdXNlU2Nyb2xsRGV0ZWN0aW9uIH0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZC91c2VTY3JvbGxEZXRlY3Rpb25cIjtcbmltcG9ydCB7IE1vZGFsQ29udGV4dCB9IGZyb20gXCIuL01vZGFsQ29udGV4dFwiO1xuaW1wb3J0IHsgRm9jdXNUcmFwV3JhcHBlciB9IGZyb20gXCIuLi8uLi8uLi9zaGFyZWQvRm9jdXNUcmFwV3JhcHBlclwiO1xuaW1wb3J0IHsgYXBwZW5kSWQgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL2FwcGVuZElkXCI7XG5pbXBvcnQgeyB1c2VXaW5kb3cgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL3VzZVdpbmRvd1wiO1xuXG50eXBlIEJhc2VQcm9wcyA9IHtcbiAgaGVhZGVyPzogc3RyaW5nO1xuICBvbkFjdGlvbj86IChhY3Rpb246IFwiY2FuY2VsXCIgfCBcImFjdGlvblwiKSA9PiB2b2lkO1xuICByb2xlPzogXCJkaWFsb2dcIiB8IFwiYWxlcnRkaWFsb2dcIjtcbiAgbGFiZWxIZWFkZXI/OiBzdHJpbmc7XG4gIC8qKiBUaGUgYmxhY2sgY29sb3IgaXMgZ29pbmcgdG8gYmUgcmVwbGFjZWQgd2l0aCBncmF5IG9uZSAqL1xuICBzdWJIZWFkZXI/OiBzdHJpbmc7XG4gIC8qKiBUZXh0IGFuZCBvdGhlciBwcm9wcyBmb3IgYWN0aW9uIEJ1dHRvbiAqL1xuICBhY3Rpb25CdXR0b24/OiBCdXR0b25Hcm91cEJ1dHRvblByb3BzO1xuICAvKiogVGV4dCBhbmQgb3RoZXIgcHJvcHMgZm9yIGFjdGlvbiBCdXR0b24gKi9cbiAgc2Vjb25kYXJ5QnV0dG9uPzogQnV0dG9uR3JvdXBCdXR0b25Qcm9wcztcbiAgLyoqIEBkZXByZWNhdGVkIFVzZSBzZWNvbmRhcnlCdXR0b24gdG8gcGFzcyBpbiB0ZXh0IGFuZCBvdGhlciBwcm9wcyBmb3Igc2Vjb25kYXJ5IGJ1dHRvbiAqL1xuICBjYW5jZWxCdXR0b25MYWJlbD86IHN0cmluZztcbiAgLyoqIEFpbSB0byB1c2UgPE1vZGFsLlRleHQ+IGFuZCA8TW9kYWwuU3RhY2s+ICovXG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuICBcImRhdGEtZTJlLXRlc3QtaWRcIj86IHN0cmluZztcbiAgcHJpdmF0ZVByb3BzPzogeyBza2lwUG9ydGFsPzogYm9vbGVhbiB9O1xuICAvKiogSXQncyBhIGJhZCBwYXR0ZXJuIHRvIHVzZSBub24tZGlzbWlzc2libGUgTW9kYWwgKi9cbiAgaXNEaXNtaXNzaWJsZT86IGJvb2xlYW47XG4gIGlzRnVsbFNjcmVlbj86IGJvb2xlYW47XG4gIGlzTWF4V2lkdGhMaW1pdD86IGJvb2xlYW47XG4gIHNpemU/OiBcIm1cIiB8IFwibFwiO1xuICBjbG9zZUJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgXCJhcmlhLWxhYmVsXCI/OiBzdHJpbmc7XG4gIFwiYXJpYS1kZXNjcmliZWRieVwiPzogc3RyaW5nO1xuICAvKiogQWx0IHRleHQgZm9yIHRoZSBtb2RhbCBpbWFnZSAqL1xufTtcblxudHlwZSBDb25kaXRpb25hbFByb3BzID1cbiAgfCB7XG4gICAgICAvKiogQXNwZWN0IHJhdGlvIDE2OjkgKi9cbiAgICAgIGltYWdlVXJsPzogc3RyaW5nO1xuICAgICAgaW1hZ2VBbHQ/OiBzdHJpbmc7XG4gICAgICBJbWFnZUNvbXBvbmVudD86IG5ldmVyO1xuICAgIH1cbiAgfCB7XG4gICAgICBpbWFnZVVybD86IG5ldmVyO1xuICAgICAgaW1hZ2VBbHQ/OiBuZXZlcjtcbiAgICAgIC8qKiBBY2NlcHQgcmF0aW8gMTY6OSAqL1xuICAgICAgSW1hZ2VDb21wb25lbnQ/OiBSZWFjdC5FbGVtZW50VHlwZTxhbnk+O1xuICAgIH07XG5cbmV4cG9ydCB0eXBlIE1vZGFsUHJvcHMgPSBCYXNlUHJvcHMgJlxuICBDb25kaXRpb25hbFByb3BzICZcbiAgUGljazxQb3J0YWxQcm9wcywgXCJwb3J0YWxDb250YWluZXJcIj47XG5cbmV4cG9ydCBjb25zdCBTdHlsZWRCYWNrZHJvcCA9IHN0eWxlZC5kaXY8UGFydGlhbDxCYXNlUHJvcHM+PigoeyB0aGVtZSB9KSA9PiB7XG4gIGNvbnN0IGZhZGVJbkJhY2tkcm9wID0gdXNlTWVtbyhcbiAgICAoKSA9PlxuICAgICAga2V5ZnJhbWVzYFxuICAgICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6ICR7dGhlbWUudmFyaWFibGVzLm9wYWNpdHkuaGlkZGVufTtcbiAgICAgIH1cbiAgICAgIHRvIHtcbiAgICAgICAgb3BhY2l0eTogJHt0aGVtZS52YXJpYWJsZXMub3BhY2l0eS52aXNpYmxlfTtcbiAgICAgIH1cbiAgICBgLFxuICAgIFt0aGVtZS52YXJpYWJsZXMub3BhY2l0eS5oaWRkZW4sIHRoZW1lLnZhcmlhYmxlcy5vcGFjaXR5LnZpc2libGVdXG4gICk7XG4gIHJldHVybiB7XG4gICAgcG9zaXRpb246IFwiZml4ZWRcIixcbiAgICB0b3A6IDAsXG4gICAgbGVmdDogMCxcbiAgICB6SW5kZXg6IHRoZW1lLnZhcmlhYmxlcy56SW5kZXgubW9kYWwsXG4gICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgIGhlaWdodDogXCIxMDBkdmhcIixcbiAgICBiYWNrZ3JvdW5kOiB0aGVtZS52YWx1ZXMuY29sb3IuYmFja2dyb3VuZC5iYWNrZHJvcC5kZWZhdWx0LFxuICAgIGRpc3BsYXk6IFwiZmxleFwiLFxuICAgIGZsZXhEaXJlY3Rpb246IFwiY29sdW1uXCIsXG4gICAganVzdGlmeUNvbnRlbnQ6IFwiY2VudGVyXCIsXG4gICAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbiAgICBmbGV4OiBcIjEgMCBhdXRvXCIsXG4gICAgYW5pbWF0aW9uOiBgJHtmYWRlSW5CYWNrZHJvcH0gJHt0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLm1vZGFsQmFja2Ryb3Aub3Blbi5kdXJhdGlvbn0gJHt0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLm1vZGFsQmFja2Ryb3Aub3Blbi50aW1pbmdGdW5jdGlvbn0gYm90aGAsXG4gIH07XG59KTtcblxuY29uc3QgbW9iaWxlU2l6ZSA9IFwibVwiO1xuY29uc3QgZGVza3RvcFNpemUgPSBcInhsXCI7XG5jb25zdCBnZXREZXNrdG9wU3BhY2UgPSAodGhlbWU6IFRoZW1lKSA9PiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLmw7XG5jb25zdCBnZXREZXNrdG9wSW5uZXJTcGFjZSA9ICh0aGVtZTogVGhlbWUpID0+XG4gIHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmdbZGVza3RvcFNpemVdO1xuY29uc3QgZ2V0TW9iaWxlU3BhY2UgPSAodGhlbWU6IFRoZW1lKSA9PiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLm07XG5jb25zdCBnZXRNb2JpbGVJbm5lclNwYWNlID0gKHRoZW1lOiBUaGVtZSkgPT5cbiAgdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZ1ttb2JpbGVTaXplXTtcbi8vIE1pbmltdW0gdmlld3BvcnQgaGVpZ2h0IG9uIHdoaWNoIGltYWdlIGlzIHNob3duLlxuY29uc3QgTUlOX1ZJRVdQT1JUX0hFSUdIVCA9IDQyMDtcblxuY29uc3QgU3R5bGVkTW9kYWxXcmFwcGVyID0gc3R5bGVkLmRpdjxQYXJ0aWFsPE1vZGFsUHJvcHM+PihcbiAgKHsgdGhlbWUsIGlzRnVsbFNjcmVlbiwgc2l6ZSB9KSA9PiB7XG4gICAgY29uc3QgZmFkZUluTW9kYWwgPSB1c2VNZW1vKFxuICAgICAgKCkgPT5cbiAgICAgICAga2V5ZnJhbWVzYFxuICAgICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6ICR7dGhlbWUudmFyaWFibGVzLm9wYWNpdHkuaGlkZGVufTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwcHgpO1xuICAgICAgfVxuICAgICAgdG8ge1xuICAgICAgICAgIG9wYWNpdHk6ICR7dGhlbWUudmFyaWFibGVzLm9wYWNpdHkudmlzaWJsZX07XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICAgIH1cbiAgICBgLFxuICAgICAgW3RoZW1lLnZhcmlhYmxlcy5vcGFjaXR5LmhpZGRlbiwgdGhlbWUudmFyaWFibGVzLm9wYWNpdHkudmlzaWJsZV1cbiAgICApO1xuICAgIHJldHVybiB7XG4gICAgICBhbmltYXRpb246IGAke2ZhZGVJbk1vZGFsfSAke3RoZW1lLnZhcmlhYmxlcy5hbmltYXRpb24ubW9kYWwub3Blbi5kdXJhdGlvbn0gJHt0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLm1vZGFsLm9wZW4uZGVsYXl9ICR7dGhlbWUudmFyaWFibGVzLmFuaW1hdGlvbi5tb2RhbC5vcGVuLnRpbWluZ0Z1bmN0aW9ufSBib3RoYCxcbiAgICAgIC4uLnVzZVJlc3BvbnNpdmVWYWx1ZSh7XG4gICAgICAgIHdpZHRoOiBbXG4gICAgICAgICAgYGNhbGMoMTAwJSAtICR7Z2V0TW9iaWxlU3BhY2UodGhlbWUpfSAqIDIpYCxcbiAgICAgICAgICBpc0Z1bGxTY3JlZW5cbiAgICAgICAgICAgID8gYGNhbGMoMTAwJSAtICR7Z2V0RGVza3RvcFNwYWNlKHRoZW1lKX0gKiAyKWBcbiAgICAgICAgICAgIDogdGhlbWUudmFyaWFibGVzLnNpemUuZGltZW5zaW9uLm1vZGFsLndpZHRoW3NpemVdLFxuICAgICAgICBdLFxuICAgICAgfSksXG4gICAgfTtcbiAgfVxuKTtcblxuY29uc3QgU3R5bGVkSW5uZXIgPSBzdHlsZWQuZGl2PFBhcnRpYWw8TW9kYWxQcm9wcz4+KFxuICAoeyB0aGVtZSwgaXNGdWxsU2NyZWVuLCBzaXplIH0pID0+IHtcbiAgICBjb25zdCBtb2JpbGVWZXJ0aWNhbFNwYWNlID0gZ2V0TW9iaWxlU3BhY2UodGhlbWUpO1xuICAgIGNvbnN0IG1vYmlsZUlubmVyVmVydGljYWxTcGFjZSA9IGdldE1vYmlsZUlubmVyU3BhY2UodGhlbWUpO1xuICAgIGNvbnN0IGRlc2t0b3BWZXJ0aWNhbFNwYWNlID0gZ2V0RGVza3RvcFNwYWNlKHRoZW1lKTtcbiAgICBjb25zdCBkZXNrdG9wSW5uZXJWZXJ0aWNhbFNwYWNlID0gZ2V0RGVza3RvcElubmVyU3BhY2UodGhlbWUpO1xuXG4gICAgLy8gZnVsbHNjcmVlbiBhbmQgTCBzaXplIGRvbid0IGRlcGVuZCBvbiBjb250ZW50IHNpemVcbiAgICAvLyBMIHNpemUgaGVpZ2h0IGhhcyBtYXhIaWVnaHQgcmVzaXplIHVudGlsIDgwMHB4XG4gICAgLy8gZnVsbHNjcmVlbiBtYXhIZWlnaHQgaXMgbm90IGxpbWl0ZWRcbiAgICAvLyBNIHNpemUgaGVpZ2h0IGhhcyBjb250ZW50IHNpemUgYW5kIGNlbnRlcmVkIGF0IHRvcCBhbmQgbWF4SGVpZ2h0IGlzIG5vdCBsaW1pdGVkXG5cbiAgICBjb25zdCBnZXREZXNrdG9wSGVpZ2h0ID0gKCkgPT4ge1xuICAgICAgaWYgKGlzRnVsbFNjcmVlbikge1xuICAgICAgICByZXR1cm4gYGNhbGMoMTAwZHZoIC0gJHtkZXNrdG9wVmVydGljYWxTcGFjZX0gKiAyIC0gJHtkZXNrdG9wSW5uZXJWZXJ0aWNhbFNwYWNlfSAqIDIpYDtcbiAgICAgIH1cbiAgICAgIGlmIChzaXplID09PSBcImxcIikge1xuICAgICAgICByZXR1cm4gYGNhbGMoMTAwZHZoIC0gJHtkZXNrdG9wVmVydGljYWxTcGFjZX0gKiAyIC0gJHtkZXNrdG9wSW5uZXJWZXJ0aWNhbFNwYWNlfSAqIDIgLSAke3RoZW1lLnZhcmlhYmxlcy5zaXplLmRpbWVuc2lvbi5tb2RhbC5tYXJnaW4ubH0gKiAyKWA7XG4gICAgICB9XG4gICAgICByZXR1cm4gXCJhdXRvXCI7XG4gICAgfTtcblxuICAgIGNvbnN0IGdldERlc2t0b3BNYXhIZWlnaHQgPSAoKSA9PiB7XG4gICAgICBpZiAoaXNGdWxsU2NyZWVuKSB7XG4gICAgICAgIHJldHVybiBgYXV0b2A7XG4gICAgICB9XG4gICAgICBpZiAoc2l6ZSA9PT0gXCJsXCIpIHtcbiAgICAgICAgcmV0dXJuIGBjYWxjKCR7dGhlbWUudmFyaWFibGVzLnNpemUuZGltZW5zaW9uLm1vZGFsLm1heEhlaWdodC5sfSAtICR7ZGVza3RvcElubmVyVmVydGljYWxTcGFjZX0gKiAyKWA7XG4gICAgICB9XG4gICAgICByZXR1cm4gYGNhbGMoMTAwZHZoIC0gJHtkZXNrdG9wVmVydGljYWxTcGFjZX0gKiAyIC0gJHtkZXNrdG9wSW5uZXJWZXJ0aWNhbFNwYWNlfSAqIDIpYDtcbiAgICB9O1xuXG4gICAgY29uc3QgZnVsbFNjcmVlbk1vYmlsZSA9IGBjYWxjKDEwMGR2aCAtICR7bW9iaWxlVmVydGljYWxTcGFjZX0gKiAyIC0gJHttb2JpbGVJbm5lclZlcnRpY2FsU3BhY2V9ICogMilgO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGRpc3BsYXk6IFwiZmxleFwiLFxuICAgICAgLi4udXNlUmVzcG9uc2l2ZVZhbHVlKHtcbiAgICAgICAgaGVpZ2h0OiBbXG4gICAgICAgICAgc2l6ZSA9PT0gXCJsXCIgfHwgaXNGdWxsU2NyZWVuID8gZnVsbFNjcmVlbk1vYmlsZSA6IFwiYXV0b1wiLFxuICAgICAgICAgIGdldERlc2t0b3BIZWlnaHQoKSxcbiAgICAgICAgXSxcbiAgICAgICAgbWF4SGVpZ2h0OiBbZnVsbFNjcmVlbk1vYmlsZSwgZ2V0RGVza3RvcE1heEhlaWdodCgpXSxcbiAgICAgIH0pLFxuXG4gICAgICBmbGV4RGlyZWN0aW9uOiBcImNvbHVtblwiLFxuICAgICAgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsXG4gICAgfTtcbiAgfVxuKTtcblxudHlwZSBTdHlsZWRCb2R5UHJvcHMgPSB7XG4gIGJvcmRlckJvdHRvbTogYm9vbGVhbjtcbiAgYm9yZGVyVG9wOiBib29sZWFuO1xufTtcblxuY29uc3QgU3R5bGVkQm9keSA9IHN0eWxlZC5kaXY8U3R5bGVkQm9keVByb3BzICYgUGFydGlhbDxNb2RhbFByb3BzPj4oXG4gICh7IHRoZW1lLCBib3JkZXJCb3R0b20sIGJvcmRlclRvcCwgc2l6ZSwgaXNGdWxsU2NyZWVuIH0pID0+ICh7XG4gICAgb3ZlcmZsb3dZOiBcImF1dG9cIixcbiAgICBtYXhIZWlnaHQ6IFwiMTAwJVwiLFxuXG4gICAgLi4uKChpc0Z1bGxTY3JlZW4gfHwgc2l6ZSA9PT0gXCJsXCIpICYmIHtcbiAgICAgIGZsZXg6IDEsXG4gICAgfSksXG5cbiAgICAuLi4oYm9yZGVyQm90dG9tICYmIHtcbiAgICAgIGJvcmRlckJvdHRvbTogYDFweCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5kaXZpZGVyLnByaW1hcnl9YCxcbiAgICB9KSxcbiAgICAuLi4oYm9yZGVyVG9wICYmIHtcbiAgICAgIGJvcmRlclRvcDogYDFweCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5kaXZpZGVyLnByaW1hcnl9YCxcbiAgICB9KSxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZEltZyA9IHN0eWxlZC5pbWcoKCkgPT4gKHtcbiAgd2lkdGg6IFwiMTAwJVwiLFxuICBhc3BlY3RSYXRpbzogXCIxNi85XCIsXG59KSk7XG5cbmNvbnN0IFN0eWxlZE1heFdpZHRoID0gc3R5bGVkLmRpdjxQYXJ0aWFsPE1vZGFsUHJvcHM+PigoeyB0aGVtZSB9KSA9PiAoe1xuICBtYXhXaWR0aDogdGhlbWUudmFyaWFibGVzLnNpemUuZGltZW5zaW9uLm1vZGFsLmZ1bGxTY3JlZW5Db250ZW50V2lkdGgsXG4gIG1hcmdpbjogXCIwIGF1dG9cIixcbiAgaGVpZ2h0OiBcIjEwMCVcIixcbn0pKTtcblxuY29uc3QgU3R5bGVkWENvbnRhaW5lciA9IHN0eWxlZC5kaXYoKHsgdGhlbWUgfSkgPT4gKHtcbiAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgLi4udXNlUmVzcG9uc2l2ZVZhbHVlKHtcbiAgICB0b3A6IFt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnMsIHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubF0sXG4gICAgcmlnaHQ6IFt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnMsIHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubF0sXG4gIH0pLFxufSkpO1xuXG5jb25zdCBNb2RhbFN0YWNrID0gKHsgY2hpbGRyZW4sIC4uLnJlc3QgfTogT21pdDxTdGFja1Byb3BzLCBcInNwYWNlXCI+KSA9PiAoXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC9qc3gtcHJvcHMtbm8tc3ByZWFkaW5nXG4gIDxTdGFjayB7Li4ucmVzdH0gc3BhY2U9XCJtXCI+XG4gICAge2NoaWxkcmVufVxuICA8L1N0YWNrPlxuKTtcblxuY29uc3QgTW9kYWxUZXh0ID0gKHtcbiAgY2hpbGRyZW4sXG4gIC4uLnJlc3Rcbn06IE9taXQ8VGV4dFByb3BzLCBcInNpemVcIiB8IFwidmFyaWFudFwiPikgPT4gKFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QvanN4LXByb3BzLW5vLXNwcmVhZGluZ1xuICA8VGV4dCB7Li4ucmVzdH0gc2l6ZT1cIm1cIiBjb2xvcj1cInRlcnRpYXJ5XCI+XG4gICAge2NoaWxkcmVufVxuICA8L1RleHQ+XG4pO1xuXG5jb25zdCBGb290ZXIgPSAoe1xuICBjaGlsZHJlbixcbiAgYWxpZ25JdGVtcyA9IFtcInN0cmV0Y2hcIiwgXCJyaWdodFwiXSxcbiAgaXNTaG9ydFZpZXdwb3J0LFxufToge1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlW10gfCBSZWFjdC5SZWFjdEVsZW1lbnQ7XG4gIGFsaWduSXRlbXM/OiBTdGFja1Byb3BzW1wiYWxpZ25JdGVtc1wiXTtcbiAgaXNTaG9ydFZpZXdwb3J0PzogYm9vbGVhbjtcbn0pID0+IChcbiAgPEJveCBzcGFjZT1cInplcm9cIiB0U3BhY2U9e2lzU2hvcnRWaWV3cG9ydCA/IFwibVwiIDogXCJsXCJ9PlxuICAgIDxTdGFjayBhbGlnbkl0ZW1zPXthbGlnbkl0ZW1zfT57Y2hpbGRyZW59PC9TdGFjaz5cbiAgPC9Cb3g+XG4pO1xuXG5jb25zdCBXcmFwcGVyID0gKHtcbiAgc2tpcFBvcnRhbCxcbiAgY2hpbGRyZW4sXG4gIHBvcnRhbENvbnRhaW5lcixcbiAgYmFja2Ryb3BSZWYsXG59OiB7XG4gIHNraXBQb3J0YWw6IGJvb2xlYW47XG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdEVsZW1lbnQ7XG4gIGJhY2tkcm9wUmVmOiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xufSAmIFBhcnRpYWw8TW9kYWxQcm9wcz4pOiBSZWFjdC5SZWFjdEVsZW1lbnQgPT5cbiAgc2tpcFBvcnRhbCA/IChcbiAgICA8PntjaGlsZHJlbn08Lz5cbiAgKSA6IChcbiAgICA8TW9kYWxDb250ZXh0LlByb3ZpZGVyIHZhbHVlPlxuICAgICAgPFBvcnRhbCBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn0+XG4gICAgICAgIDxTdHlsZWRCYWNrZHJvcCByZWY9e2JhY2tkcm9wUmVmfT57Y2hpbGRyZW59PC9TdHlsZWRCYWNrZHJvcD5cbiAgICAgIDwvUG9ydGFsPlxuICAgIDwvTW9kYWxDb250ZXh0LlByb3ZpZGVyPlxuICApO1xuXG50eXBlIEZvY3VzVHJhcFByb3BzID0ge1xuICBvblBvc3REZWFjdGl2YXRlOiAoKSA9PiB2b2lkO1xuICBiYWNrZHJvcFJlZjogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcbiAgbW9kYWxSZWY6IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XG59ICYgUGljazxNb2RhbFByb3BzLCBcImlzRGlzbWlzc2libGVcIiB8IFwicG9ydGFsQ29udGFpbmVyXCI+O1xuXG5mdW5jdGlvbiBGb2N1c1RyYXAoe1xuICBvblBvc3REZWFjdGl2YXRlLFxuICBpc0Rpc21pc3NpYmxlLFxuICBwb3J0YWxDb250YWluZXIsXG4gIGNoaWxkcmVuLFxuICBiYWNrZHJvcFJlZixcbiAgbW9kYWxSZWYsXG59OiBQcm9wc1dpdGhDaGlsZHJlbjxGb2N1c1RyYXBQcm9wcz4pIHtcbiAgY29uc3QgcG9ydGFsQ29udGFpbmVyRWxlbWVudCA9IHVzZVBvcnRhbENvbnRhaW5lckVsZW1lbnQocG9ydGFsQ29udGFpbmVyKTtcblxuICBjb25zdCBoYW5kbGVDbGlja091dHNpZGVEZWFjdGl2YXRlcyA9IChldnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KSA9PiB7XG4gICAgLy8gRG8gbm90IGNsb3NlIG9uIGNsaWNrIHRoYXQgb2NjdXJzIG9uIGVsZW1lbnRzIHdpdGhpbiB0aGUgc2FtZSBwb3J0YWwsIGZvciBlZywgZHJvcGRvd24gYW5kIHNlbGVjdCBtZW51c1xuICAgIGlmIChcbiAgICAgIHBvcnRhbENvbnRhaW5lckVsZW1lbnQuY29udGFpbnMoZXZ0LnRhcmdldCBhcyBIVE1MRWxlbWVudCkgJiZcbiAgICAgIGV2dC50YXJnZXQgIT09IGJhY2tkcm9wUmVmLmN1cnJlbnRcbiAgICApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIGlzRGlzbWlzc2libGU7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8Rm9jdXNUcmFwV3JhcHBlclxuICAgICAgYWN0aXZlXG4gICAgICBmb2N1c1RyYXBPcHRpb25zPXt7XG4gICAgICAgIGFsbG93T3V0c2lkZUNsaWNrOiB0cnVlLCAvLyBhbGxvdyBjbGljayBvbiBtb2JpbGUgaW4gYW55IGRyb3Bkb3duc1xuICAgICAgICBjbGlja091dHNpZGVEZWFjdGl2YXRlczogaGFuZGxlQ2xpY2tPdXRzaWRlRGVhY3RpdmF0ZXMsXG4gICAgICAgIGVzY2FwZURlYWN0aXZhdGVzOiBpc0Rpc21pc3NpYmxlLCAvLyBkZS1hY3RpdmF0ZSBmb2N1cyB0cmFwIG9uIGVzY2FwZSBrZXlcbiAgICAgICAgcHJldmVudFNjcm9sbDogdHJ1ZSxcbiAgICAgICAgZmFsbGJhY2tGb2N1czogbW9kYWxSZWYuY3VycmVudCxcbiAgICAgICAgb25Qb3N0RGVhY3RpdmF0ZSxcbiAgICAgIH19XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvRm9jdXNUcmFwV3JhcHBlcj5cbiAgKTtcbn1cblxuY29uc3QgSG9yaXpvbnRhbE9mZnNldCA9ICh7XG4gIGNoaWxkcmVuLFxuICBpc0Z1bGxTY3JlZW4sXG4gIGlzTWF4V2lkdGhMaW1pdCxcbiAgaGVpZ2h0LFxufTogUGFydGlhbDxNb2RhbFByb3BzPiAmIHsgaGVpZ2h0Pzogc3RyaW5nIH0pID0+IChcbiAgPEJveCBzcGFjZT17W21vYmlsZVNpemUsIGRlc2t0b3BTaXplXX0gdlNwYWNlPVwiemVyb1wiIGhlaWdodD17aGVpZ2h0fT5cbiAgICB7aXNGdWxsU2NyZWVuICYmIGlzTWF4V2lkdGhMaW1pdCA/IChcbiAgICAgIDxTdHlsZWRNYXhXaWR0aD57Y2hpbGRyZW59PC9TdHlsZWRNYXhXaWR0aD5cbiAgICApIDogKFxuICAgICAgY2hpbGRyZW5cbiAgICApfVxuICA8L0JveD5cbik7XG5cbmZ1bmN0aW9uIGdldElzU2hvcnRWaWV3cG9ydCh3aW5kb3c6IFdpbmRvdyk6IGJvb2xlYW4ge1xuICByZXR1cm4gKFxuICAgIHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgJiYgd2luZG93LmlubmVySGVpZ2h0IDwgTUlOX1ZJRVdQT1JUX0hFSUdIVFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gTW9kYWwoe1xuICBoZWFkZXIsXG4gIHN1YkhlYWRlcixcbiAgbGFiZWxIZWFkZXIsXG4gIGNoaWxkcmVuLFxuICBpbWFnZVVybCxcbiAgSW1hZ2VDb21wb25lbnQsXG4gIHNlY29uZGFyeUJ1dHRvbixcbiAgY2FuY2VsQnV0dG9uTGFiZWwsXG4gIGlzRGlzbWlzc2libGUgPSB0cnVlLFxuICBpc0Z1bGxTY3JlZW4sXG4gIGlzTWF4V2lkdGhMaW1pdCA9IHRydWUsXG4gIGFjdGlvbkJ1dHRvbixcbiAgcm9sZSA9IFwiZGlhbG9nXCIsXG4gIG9uQWN0aW9uLFxuICBzaXplID0gXCJtXCIsXG4gIHByaXZhdGVQcm9wczogeyBza2lwUG9ydGFsIH0gPSB7IHNraXBQb3J0YWw6IGZhbHNlIH0sXG4gIHBvcnRhbENvbnRhaW5lcixcbiAgY2xvc2VCdXR0b25BcmlhTGFiZWwgPSBcIkRpc21pc3MgRGlhbG9nXCIsXG4gIFwiYXJpYS1sYWJlbFwiOiBhcmlhTGFiZWwsXG4gIFwiYXJpYS1kZXNjcmliZWRieVwiOiBhcmlhRGVzY3JpYmVkQnksXG4gIFwiZGF0YS1lMmUtdGVzdC1pZFwiOiBkYXRhRTJlVGVzdElkLFxuICBpbWFnZUFsdCxcbn06IE1vZGFsUHJvcHMpOiBSZWFjdC5SZWFjdEVsZW1lbnQge1xuICBjb25zdCBtb2RhbFJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgYmFja2Ryb3BSZWYgPSB1c2VSZWYobnVsbCk7XG4gIGNvbnN0IHN1YkhlYWRlcklkID0gdXNlSWQoKTtcbiAgY29uc3Qgd2luZG93ID0gdXNlV2luZG93KCk7XG4gIGNvbnN0IHsgc2Nyb2xsYWJsZVJlZiwgaXNTY3JvbGxCb3R0b20sIGlzU2Nyb2xsVG9wLCBoYXNTY3JvbGwgfSA9XG4gICAgdXNlU2Nyb2xsRGV0ZWN0aW9uKCk7XG4gIGNvbnN0IFtpc1Nob3J0Vmlld3BvcnQsIHNldElzU2hvcnRWaWV3cG9ydF0gPSB1c2VTdGF0ZShcbiAgICBnZXRJc1Nob3J0Vmlld3BvcnQod2luZG93KVxuICApO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgbGV0IHJlc2l6ZU9ic2VydmVyOiBSZXNpemVPYnNlcnZlcjtcblxuICAgIGlmICh0eXBlb2YgUmVzaXplT2JzZXJ2ZXIgIT09IFwidW5kZWZpbmVkXCIgJiYgYmFja2Ryb3BSZWYuY3VycmVudCkge1xuICAgICAgcmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKCkgPT4ge1xuICAgICAgICBzZXRJc1Nob3J0Vmlld3BvcnQoZ2V0SXNTaG9ydFZpZXdwb3J0KHdpbmRvdykpO1xuICAgICAgfSk7XG5cbiAgICAgIHJlc2l6ZU9ic2VydmVyLm9ic2VydmUoYmFja2Ryb3BSZWYuY3VycmVudCk7XG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChyZXNpemVPYnNlcnZlcikge1xuICAgICAgICByZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICB9XG4gICAgfTtcbiAgfSwgW2JhY2tkcm9wUmVmLCB3aW5kb3ddKTtcblxuICBjb25zdCBoYW5kbGVDbG9zZSA9ICgpID0+IHtcbiAgICBvbkFjdGlvbihcImNhbmNlbFwiKTtcbiAgfTtcblxuICBjb25zdCBoYXNJbWFnZSA9IGltYWdlVXJsIHx8IEltYWdlQ29tcG9uZW50O1xuICBjb25zdCBIZWFkaW5nQ29tcG9uZW50ID0gaXNTaG9ydFZpZXdwb3J0ID8gSDMgOiBIMjtcbiAgY29uc3QgaXNJbWFnZVZpc2libGUgPSAhaXNTaG9ydFZpZXdwb3J0ICYmICEhaGFzSW1hZ2U7XG4gIGNvbnN0IGhvcml6b250YWxPZmZzZXRQcm9wcyA9IHsgaXNGdWxsU2NyZWVuLCBpc01heFdpZHRoTGltaXQgfTtcblxuICBjb25zdCBjbG9zZUJ1dHRvbiA9IGlzRGlzbWlzc2libGUgJiYgKFxuICAgIDxTdHlsZWRYQ29udGFpbmVyPlxuICAgICAgPFBpY3RvZ3JhbUJ1dHRvblxuICAgICAgICB2YXJpYW50PVwidGVydGlhcnlcIlxuICAgICAgICBpY29uPVwieFwiXG4gICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgb25DbGljaz17aGFuZGxlQ2xvc2V9XG4gICAgICAgIGFyaWEtbGFiZWw9e2Nsb3NlQnV0dG9uQXJpYUxhYmVsfVxuICAgICAgLz5cbiAgICA8L1N0eWxlZFhDb250YWluZXI+XG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8V3JhcHBlclxuICAgICAgc2tpcFBvcnRhbD17c2tpcFBvcnRhbH1cbiAgICAgIHBvcnRhbENvbnRhaW5lcj17cG9ydGFsQ29udGFpbmVyfVxuICAgICAgYmFja2Ryb3BSZWY9e2JhY2tkcm9wUmVmfVxuICAgID5cbiAgICAgIDxGb2N1c1RyYXBcbiAgICAgICAgcG9ydGFsQ29udGFpbmVyPXtwb3J0YWxDb250YWluZXJ9XG4gICAgICAgIGlzRGlzbWlzc2libGU9e2lzRGlzbWlzc2libGV9XG4gICAgICAgIG9uUG9zdERlYWN0aXZhdGU9e2hhbmRsZUNsb3NlfVxuICAgICAgICBiYWNrZHJvcFJlZj17YmFja2Ryb3BSZWZ9XG4gICAgICAgIG1vZGFsUmVmPXttb2RhbFJlZn1cbiAgICAgID5cbiAgICAgICAgPFN0eWxlZE1vZGFsV3JhcHBlclxuICAgICAgICAgIHJlZj17bW9kYWxSZWZ9XG4gICAgICAgICAgcm9sZT17cm9sZX1cbiAgICAgICAgICBkYXRhLWUyZS10ZXN0LWlkPXtkYXRhRTJlVGVzdElkfVxuICAgICAgICAgIGRhdGEtZHMtaWQ9XCJNb2RhbFwiXG4gICAgICAgICAgaXNGdWxsU2NyZWVuPXtpc0Z1bGxTY3JlZW59XG4gICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICBhcmlhLWxhYmVsPXthcmlhTGFiZWwgfHwgaGVhZGVyfVxuICAgICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9e1xuICAgICAgICAgICAgc3ViSGVhZGVyID8gYXBwZW5kSWQoYXJpYURlc2NyaWJlZEJ5LCBzdWJIZWFkZXJJZCkgOiBhcmlhRGVzY3JpYmVkQnlcbiAgICAgICAgICB9XG4gICAgICAgID5cbiAgICAgICAgICA8Q29udGFpbmVyIGVsZXZhdGlvbj17NH0+XG4gICAgICAgICAgICA8Qm94IHNwYWNlPVwiemVyb1wiIHZTcGFjZT17W21vYmlsZVNpemUsIGRlc2t0b3BTaXplXX0+XG4gICAgICAgICAgICAgIDxTdHlsZWRJbm5lciBpc0Z1bGxTY3JlZW49e2lzRnVsbFNjcmVlbn0gc2l6ZT17c2l6ZX0+XG4gICAgICAgICAgICAgICAgPEhvcml6b250YWxPZmZzZXQgey4uLmhvcml6b250YWxPZmZzZXRQcm9wc30+XG4gICAgICAgICAgICAgICAgICA8Qm94IHNwYWNlPVwiemVyb1wiIGJTcGFjZT1cInNcIj5cbiAgICAgICAgICAgICAgICAgICAgPFN0YWNrIHNwYWNlPXtpc0ltYWdlVmlzaWJsZSA/IFtcInNcIiwgXCJsXCJdIDogXCJ6ZXJvXCJ9PlxuICAgICAgICAgICAgICAgICAgICAgIHtpc0ltYWdlVmlzaWJsZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgKGltYWdlVXJsID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Qm94IHNwYWNlPVwiemVyb1wiIHRTcGFjZT17W1wieGxcIiwgXCJsXCJdfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSW1nIHNyYz17aW1hZ2VVcmx9IGFsdD17aW1hZ2VBbHR9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPEltYWdlQ29tcG9uZW50IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICA8SW5saW5lIGFsaWduSXRlbXM9XCJzcGFjZUJldHdlZW5cIiBub1dyYXA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8U3RhY2sgc3BhY2U9XCJ4eHNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge2xhYmVsSGVhZGVyICYmIDxINiBhcz1cImRpdlwiPntsYWJlbEhlYWRlcn08L0g2Pn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0YWNrIHNwYWNlPVwiemVyb1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxIZWFkaW5nQ29tcG9uZW50IGFzPVwiaDFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtoZWFkZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9IZWFkaW5nQ29tcG9uZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtzdWJIZWFkZXIgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEg0IGFzPVwiaDJcIiBjb2xvcj1cInRlcnRpYXJ5XCIgaWQ9e3N1YkhlYWRlcklkfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3N1YkhlYWRlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSDQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgICAgICAgICB7Y2xvc2VCdXR0b259XG4gICAgICAgICAgICAgICAgICAgICAgPC9JbmxpbmU+XG4gICAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICA8L0hvcml6b250YWxPZmZzZXQ+XG5cbiAgICAgICAgICAgICAgICA8U3R5bGVkQm9keVxuICAgICAgICAgICAgICAgICAgcmVmPXtzY3JvbGxhYmxlUmVmfVxuICAgICAgICAgICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICAgICAgICAgIGlzRnVsbFNjcmVlbj17aXNGdWxsU2NyZWVufVxuICAgICAgICAgICAgICAgICAgYm9yZGVyQm90dG9tPXtoYXNTY3JvbGwgJiYgIWlzU2Nyb2xsQm90dG9tfVxuICAgICAgICAgICAgICAgICAgYm9yZGVyVG9wPXtoYXNTY3JvbGwgJiYgIWlzU2Nyb2xsVG9wfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxCb3ggc3BhY2U9XCJ6ZXJvXCIgdlNwYWNlPVwieHh4c1wiIGhlaWdodD1cIjEwMCVcIj5cbiAgICAgICAgICAgICAgICAgICAgPEhvcml6b250YWxPZmZzZXQgey4uLmhvcml6b250YWxPZmZzZXRQcm9wc30gaGVpZ2h0PVwiMTAwJVwiPlxuICAgICAgICAgICAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICAgICAgICAgICAgPC9Ib3Jpem9udGFsT2Zmc2V0PlxuICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRCb2R5PlxuXG4gICAgICAgICAgICAgICAgeyhhY3Rpb25CdXR0b24gfHwgY2FuY2VsQnV0dG9uTGFiZWwgfHwgc2Vjb25kYXJ5QnV0dG9uKSAmJiAoXG4gICAgICAgICAgICAgICAgICA8SG9yaXpvbnRhbE9mZnNldCB7Li4uaG9yaXpvbnRhbE9mZnNldFByb3BzfT5cbiAgICAgICAgICAgICAgICAgICAgPEZvb3RlciBpc1Nob3J0Vmlld3BvcnQ9e2lzU2hvcnRWaWV3cG9ydH0+XG4gICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvbkdyb3VwXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb25CdXR0b249e2FjdGlvbkJ1dHRvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgIHNlY29uZGFyeUJ1dHRvbj17c2Vjb25kYXJ5QnV0dG9ufVxuICAgICAgICAgICAgICAgICAgICAgICAgY2FuY2VsQnV0dG9uVGV4dD17Y2FuY2VsQnV0dG9uTGFiZWx9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkJ1dHRvbkNsaWNrPXtvbkFjdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8L0Zvb3Rlcj5cbiAgICAgICAgICAgICAgICAgIDwvSG9yaXpvbnRhbE9mZnNldD5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8L1N0eWxlZElubmVyPlxuICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgIDwvU3R5bGVkTW9kYWxXcmFwcGVyPlxuICAgICAgPC9Gb2N1c1RyYXA+XG4gICAgPC9XcmFwcGVyPlxuICApO1xufVxuXG5Nb2RhbC5TdGFjayA9IE1vZGFsU3RhY2s7XG5Nb2RhbC5UZXh0ID0gTW9kYWxUZXh0O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTBOa0IifQ== */"),StyledMaxWidth=(0,_styled.default)("div",{target:"e1nbaxlv5",label:"StyledMaxWidth"})(({theme})=>({maxWidth:theme.variables.size.dimension.modal.fullScreenContentWidth,margin:"0 auto",height:"100%"}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUGF0dGVybnMvTW9kYWwvTW9kYWwudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9QYXR0ZXJucy9Nb2RhbC9Nb2RhbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgcmVhY3QvanN4LXByb3BzLW5vLXNwcmVhZGluZyAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVhY3QvanN4LW5vLXVzZWxlc3MtZnJhZ21lbnQgKi9cbmltcG9ydCB0eXBlIHsgUmVmT2JqZWN0LCBQcm9wc1dpdGhDaGlsZHJlbiB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFJlYWN0LCB7IHVzZU1lbW8sIHVzZVJlZiwgdXNlSWQsIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHR5cGUgeyBUaGVtZSB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHsga2V5ZnJhbWVzIH0gZnJvbSBcIkBlbW90aW9uL3JlYWN0XCI7XG5pbXBvcnQgdHlwZSB7IFBvcnRhbFByb3BzIH0gZnJvbSBcIi4uLy4uL1BvcnRhbC9Qb3J0YWxcIjtcbmltcG9ydCB7IFBvcnRhbCwgdXNlUG9ydGFsQ29udGFpbmVyRWxlbWVudCB9IGZyb20gXCIuLi8uLi9Qb3J0YWwvUG9ydGFsXCI7XG5pbXBvcnQgeyBIMiwgSDQsIEg2LCBIMyB9IGZyb20gXCIuLi8uLi9UeXBvZ3JhcGh5L0hlYWRlci9IZWFkZXJcIjtcbmltcG9ydCB0eXBlIHsgU3RhY2tQcm9wcyB9IGZyb20gXCIuLi8uLi9TdGFjay9TdGFja1wiO1xuaW1wb3J0IHsgU3RhY2sgfSBmcm9tIFwiLi4vLi4vU3RhY2svU3RhY2tcIjtcbmltcG9ydCB7IENvbnRhaW5lciB9IGZyb20gXCIuLi8uLi9Db250YWluZXIvQ29udGFpbmVyXCI7XG5pbXBvcnQgeyBCb3ggfSBmcm9tIFwiLi4vLi4vQm94L0JveFwiO1xuXG5pbXBvcnQgeyBJbmxpbmUgfSBmcm9tIFwiLi4vLi4vSW5saW5lL0lubGluZVwiO1xuaW1wb3J0IHR5cGUgeyBCdXR0b25Hcm91cEJ1dHRvblByb3BzIH0gZnJvbSBcIi4uL0J1dHRvbkdyb3VwL0J1dHRvbkdyb3VwXCI7XG5pbXBvcnQgeyBCdXR0b25Hcm91cCB9IGZyb20gXCIuLi9CdXR0b25Hcm91cC9CdXR0b25Hcm91cFwiO1xuaW1wb3J0IHsgUGljdG9ncmFtQnV0dG9uIH0gZnJvbSBcIi4uLy4uL1BpY3RvZ3JhbUJ1dHRvbi9QaWN0b2dyYW1CdXR0b25cIjtcbmltcG9ydCB0eXBlIHsgVGV4dFByb3BzIH0gZnJvbSBcIi4uLy4uL1R5cG9ncmFwaHkvVGV4dC9UZXh0XCI7XG5pbXBvcnQgeyBUZXh0IH0gZnJvbSBcIi4uLy4uL1R5cG9ncmFwaHkvVGV4dC9UZXh0XCI7XG5pbXBvcnQgeyB1c2VSZXNwb25zaXZlVmFsdWUgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL21lZGlhUXVlcmllc1wiO1xuaW1wb3J0IHsgdXNlU2Nyb2xsRGV0ZWN0aW9uIH0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZC91c2VTY3JvbGxEZXRlY3Rpb25cIjtcbmltcG9ydCB7IE1vZGFsQ29udGV4dCB9IGZyb20gXCIuL01vZGFsQ29udGV4dFwiO1xuaW1wb3J0IHsgRm9jdXNUcmFwV3JhcHBlciB9IGZyb20gXCIuLi8uLi8uLi9zaGFyZWQvRm9jdXNUcmFwV3JhcHBlclwiO1xuaW1wb3J0IHsgYXBwZW5kSWQgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL2FwcGVuZElkXCI7XG5pbXBvcnQgeyB1c2VXaW5kb3cgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL3VzZVdpbmRvd1wiO1xuXG50eXBlIEJhc2VQcm9wcyA9IHtcbiAgaGVhZGVyPzogc3RyaW5nO1xuICBvbkFjdGlvbj86IChhY3Rpb246IFwiY2FuY2VsXCIgfCBcImFjdGlvblwiKSA9PiB2b2lkO1xuICByb2xlPzogXCJkaWFsb2dcIiB8IFwiYWxlcnRkaWFsb2dcIjtcbiAgbGFiZWxIZWFkZXI/OiBzdHJpbmc7XG4gIC8qKiBUaGUgYmxhY2sgY29sb3IgaXMgZ29pbmcgdG8gYmUgcmVwbGFjZWQgd2l0aCBncmF5IG9uZSAqL1xuICBzdWJIZWFkZXI/OiBzdHJpbmc7XG4gIC8qKiBUZXh0IGFuZCBvdGhlciBwcm9wcyBmb3IgYWN0aW9uIEJ1dHRvbiAqL1xuICBhY3Rpb25CdXR0b24/OiBCdXR0b25Hcm91cEJ1dHRvblByb3BzO1xuICAvKiogVGV4dCBhbmQgb3RoZXIgcHJvcHMgZm9yIGFjdGlvbiBCdXR0b24gKi9cbiAgc2Vjb25kYXJ5QnV0dG9uPzogQnV0dG9uR3JvdXBCdXR0b25Qcm9wcztcbiAgLyoqIEBkZXByZWNhdGVkIFVzZSBzZWNvbmRhcnlCdXR0b24gdG8gcGFzcyBpbiB0ZXh0IGFuZCBvdGhlciBwcm9wcyBmb3Igc2Vjb25kYXJ5IGJ1dHRvbiAqL1xuICBjYW5jZWxCdXR0b25MYWJlbD86IHN0cmluZztcbiAgLyoqIEFpbSB0byB1c2UgPE1vZGFsLlRleHQ+IGFuZCA8TW9kYWwuU3RhY2s+ICovXG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuICBcImRhdGEtZTJlLXRlc3QtaWRcIj86IHN0cmluZztcbiAgcHJpdmF0ZVByb3BzPzogeyBza2lwUG9ydGFsPzogYm9vbGVhbiB9O1xuICAvKiogSXQncyBhIGJhZCBwYXR0ZXJuIHRvIHVzZSBub24tZGlzbWlzc2libGUgTW9kYWwgKi9cbiAgaXNEaXNtaXNzaWJsZT86IGJvb2xlYW47XG4gIGlzRnVsbFNjcmVlbj86IGJvb2xlYW47XG4gIGlzTWF4V2lkdGhMaW1pdD86IGJvb2xlYW47XG4gIHNpemU/OiBcIm1cIiB8IFwibFwiO1xuICBjbG9zZUJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgXCJhcmlhLWxhYmVsXCI/OiBzdHJpbmc7XG4gIFwiYXJpYS1kZXNjcmliZWRieVwiPzogc3RyaW5nO1xuICAvKiogQWx0IHRleHQgZm9yIHRoZSBtb2RhbCBpbWFnZSAqL1xufTtcblxudHlwZSBDb25kaXRpb25hbFByb3BzID1cbiAgfCB7XG4gICAgICAvKiogQXNwZWN0IHJhdGlvIDE2OjkgKi9cbiAgICAgIGltYWdlVXJsPzogc3RyaW5nO1xuICAgICAgaW1hZ2VBbHQ/OiBzdHJpbmc7XG4gICAgICBJbWFnZUNvbXBvbmVudD86IG5ldmVyO1xuICAgIH1cbiAgfCB7XG4gICAgICBpbWFnZVVybD86IG5ldmVyO1xuICAgICAgaW1hZ2VBbHQ/OiBuZXZlcjtcbiAgICAgIC8qKiBBY2NlcHQgcmF0aW8gMTY6OSAqL1xuICAgICAgSW1hZ2VDb21wb25lbnQ/OiBSZWFjdC5FbGVtZW50VHlwZTxhbnk+O1xuICAgIH07XG5cbmV4cG9ydCB0eXBlIE1vZGFsUHJvcHMgPSBCYXNlUHJvcHMgJlxuICBDb25kaXRpb25hbFByb3BzICZcbiAgUGljazxQb3J0YWxQcm9wcywgXCJwb3J0YWxDb250YWluZXJcIj47XG5cbmV4cG9ydCBjb25zdCBTdHlsZWRCYWNrZHJvcCA9IHN0eWxlZC5kaXY8UGFydGlhbDxCYXNlUHJvcHM+PigoeyB0aGVtZSB9KSA9PiB7XG4gIGNvbnN0IGZhZGVJbkJhY2tkcm9wID0gdXNlTWVtbyhcbiAgICAoKSA9PlxuICAgICAga2V5ZnJhbWVzYFxuICAgICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6ICR7dGhlbWUudmFyaWFibGVzLm9wYWNpdHkuaGlkZGVufTtcbiAgICAgIH1cbiAgICAgIHRvIHtcbiAgICAgICAgb3BhY2l0eTogJHt0aGVtZS52YXJpYWJsZXMub3BhY2l0eS52aXNpYmxlfTtcbiAgICAgIH1cbiAgICBgLFxuICAgIFt0aGVtZS52YXJpYWJsZXMub3BhY2l0eS5oaWRkZW4sIHRoZW1lLnZhcmlhYmxlcy5vcGFjaXR5LnZpc2libGVdXG4gICk7XG4gIHJldHVybiB7XG4gICAgcG9zaXRpb246IFwiZml4ZWRcIixcbiAgICB0b3A6IDAsXG4gICAgbGVmdDogMCxcbiAgICB6SW5kZXg6IHRoZW1lLnZhcmlhYmxlcy56SW5kZXgubW9kYWwsXG4gICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgIGhlaWdodDogXCIxMDBkdmhcIixcbiAgICBiYWNrZ3JvdW5kOiB0aGVtZS52YWx1ZXMuY29sb3IuYmFja2dyb3VuZC5iYWNrZHJvcC5kZWZhdWx0LFxuICAgIGRpc3BsYXk6IFwiZmxleFwiLFxuICAgIGZsZXhEaXJlY3Rpb246IFwiY29sdW1uXCIsXG4gICAganVzdGlmeUNvbnRlbnQ6IFwiY2VudGVyXCIsXG4gICAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbiAgICBmbGV4OiBcIjEgMCBhdXRvXCIsXG4gICAgYW5pbWF0aW9uOiBgJHtmYWRlSW5CYWNrZHJvcH0gJHt0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLm1vZGFsQmFja2Ryb3Aub3Blbi5kdXJhdGlvbn0gJHt0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLm1vZGFsQmFja2Ryb3Aub3Blbi50aW1pbmdGdW5jdGlvbn0gYm90aGAsXG4gIH07XG59KTtcblxuY29uc3QgbW9iaWxlU2l6ZSA9IFwibVwiO1xuY29uc3QgZGVza3RvcFNpemUgPSBcInhsXCI7XG5jb25zdCBnZXREZXNrdG9wU3BhY2UgPSAodGhlbWU6IFRoZW1lKSA9PiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLmw7XG5jb25zdCBnZXREZXNrdG9wSW5uZXJTcGFjZSA9ICh0aGVtZTogVGhlbWUpID0+XG4gIHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmdbZGVza3RvcFNpemVdO1xuY29uc3QgZ2V0TW9iaWxlU3BhY2UgPSAodGhlbWU6IFRoZW1lKSA9PiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLm07XG5jb25zdCBnZXRNb2JpbGVJbm5lclNwYWNlID0gKHRoZW1lOiBUaGVtZSkgPT5cbiAgdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZ1ttb2JpbGVTaXplXTtcbi8vIE1pbmltdW0gdmlld3BvcnQgaGVpZ2h0IG9uIHdoaWNoIGltYWdlIGlzIHNob3duLlxuY29uc3QgTUlOX1ZJRVdQT1JUX0hFSUdIVCA9IDQyMDtcblxuY29uc3QgU3R5bGVkTW9kYWxXcmFwcGVyID0gc3R5bGVkLmRpdjxQYXJ0aWFsPE1vZGFsUHJvcHM+PihcbiAgKHsgdGhlbWUsIGlzRnVsbFNjcmVlbiwgc2l6ZSB9KSA9PiB7XG4gICAgY29uc3QgZmFkZUluTW9kYWwgPSB1c2VNZW1vKFxuICAgICAgKCkgPT5cbiAgICAgICAga2V5ZnJhbWVzYFxuICAgICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6ICR7dGhlbWUudmFyaWFibGVzLm9wYWNpdHkuaGlkZGVufTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwcHgpO1xuICAgICAgfVxuICAgICAgdG8ge1xuICAgICAgICAgIG9wYWNpdHk6ICR7dGhlbWUudmFyaWFibGVzLm9wYWNpdHkudmlzaWJsZX07XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICAgIH1cbiAgICBgLFxuICAgICAgW3RoZW1lLnZhcmlhYmxlcy5vcGFjaXR5LmhpZGRlbiwgdGhlbWUudmFyaWFibGVzLm9wYWNpdHkudmlzaWJsZV1cbiAgICApO1xuICAgIHJldHVybiB7XG4gICAgICBhbmltYXRpb246IGAke2ZhZGVJbk1vZGFsfSAke3RoZW1lLnZhcmlhYmxlcy5hbmltYXRpb24ubW9kYWwub3Blbi5kdXJhdGlvbn0gJHt0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLm1vZGFsLm9wZW4uZGVsYXl9ICR7dGhlbWUudmFyaWFibGVzLmFuaW1hdGlvbi5tb2RhbC5vcGVuLnRpbWluZ0Z1bmN0aW9ufSBib3RoYCxcbiAgICAgIC4uLnVzZVJlc3BvbnNpdmVWYWx1ZSh7XG4gICAgICAgIHdpZHRoOiBbXG4gICAgICAgICAgYGNhbGMoMTAwJSAtICR7Z2V0TW9iaWxlU3BhY2UodGhlbWUpfSAqIDIpYCxcbiAgICAgICAgICBpc0Z1bGxTY3JlZW5cbiAgICAgICAgICAgID8gYGNhbGMoMTAwJSAtICR7Z2V0RGVza3RvcFNwYWNlKHRoZW1lKX0gKiAyKWBcbiAgICAgICAgICAgIDogdGhlbWUudmFyaWFibGVzLnNpemUuZGltZW5zaW9uLm1vZGFsLndpZHRoW3NpemVdLFxuICAgICAgICBdLFxuICAgICAgfSksXG4gICAgfTtcbiAgfVxuKTtcblxuY29uc3QgU3R5bGVkSW5uZXIgPSBzdHlsZWQuZGl2PFBhcnRpYWw8TW9kYWxQcm9wcz4+KFxuICAoeyB0aGVtZSwgaXNGdWxsU2NyZWVuLCBzaXplIH0pID0+IHtcbiAgICBjb25zdCBtb2JpbGVWZXJ0aWNhbFNwYWNlID0gZ2V0TW9iaWxlU3BhY2UodGhlbWUpO1xuICAgIGNvbnN0IG1vYmlsZUlubmVyVmVydGljYWxTcGFjZSA9IGdldE1vYmlsZUlubmVyU3BhY2UodGhlbWUpO1xuICAgIGNvbnN0IGRlc2t0b3BWZXJ0aWNhbFNwYWNlID0gZ2V0RGVza3RvcFNwYWNlKHRoZW1lKTtcbiAgICBjb25zdCBkZXNrdG9wSW5uZXJWZXJ0aWNhbFNwYWNlID0gZ2V0RGVza3RvcElubmVyU3BhY2UodGhlbWUpO1xuXG4gICAgLy8gZnVsbHNjcmVlbiBhbmQgTCBzaXplIGRvbid0IGRlcGVuZCBvbiBjb250ZW50IHNpemVcbiAgICAvLyBMIHNpemUgaGVpZ2h0IGhhcyBtYXhIaWVnaHQgcmVzaXplIHVudGlsIDgwMHB4XG4gICAgLy8gZnVsbHNjcmVlbiBtYXhIZWlnaHQgaXMgbm90IGxpbWl0ZWRcbiAgICAvLyBNIHNpemUgaGVpZ2h0IGhhcyBjb250ZW50IHNpemUgYW5kIGNlbnRlcmVkIGF0IHRvcCBhbmQgbWF4SGVpZ2h0IGlzIG5vdCBsaW1pdGVkXG5cbiAgICBjb25zdCBnZXREZXNrdG9wSGVpZ2h0ID0gKCkgPT4ge1xuICAgICAgaWYgKGlzRnVsbFNjcmVlbikge1xuICAgICAgICByZXR1cm4gYGNhbGMoMTAwZHZoIC0gJHtkZXNrdG9wVmVydGljYWxTcGFjZX0gKiAyIC0gJHtkZXNrdG9wSW5uZXJWZXJ0aWNhbFNwYWNlfSAqIDIpYDtcbiAgICAgIH1cbiAgICAgIGlmIChzaXplID09PSBcImxcIikge1xuICAgICAgICByZXR1cm4gYGNhbGMoMTAwZHZoIC0gJHtkZXNrdG9wVmVydGljYWxTcGFjZX0gKiAyIC0gJHtkZXNrdG9wSW5uZXJWZXJ0aWNhbFNwYWNlfSAqIDIgLSAke3RoZW1lLnZhcmlhYmxlcy5zaXplLmRpbWVuc2lvbi5tb2RhbC5tYXJnaW4ubH0gKiAyKWA7XG4gICAgICB9XG4gICAgICByZXR1cm4gXCJhdXRvXCI7XG4gICAgfTtcblxuICAgIGNvbnN0IGdldERlc2t0b3BNYXhIZWlnaHQgPSAoKSA9PiB7XG4gICAgICBpZiAoaXNGdWxsU2NyZWVuKSB7XG4gICAgICAgIHJldHVybiBgYXV0b2A7XG4gICAgICB9XG4gICAgICBpZiAoc2l6ZSA9PT0gXCJsXCIpIHtcbiAgICAgICAgcmV0dXJuIGBjYWxjKCR7dGhlbWUudmFyaWFibGVzLnNpemUuZGltZW5zaW9uLm1vZGFsLm1heEhlaWdodC5sfSAtICR7ZGVza3RvcElubmVyVmVydGljYWxTcGFjZX0gKiAyKWA7XG4gICAgICB9XG4gICAgICByZXR1cm4gYGNhbGMoMTAwZHZoIC0gJHtkZXNrdG9wVmVydGljYWxTcGFjZX0gKiAyIC0gJHtkZXNrdG9wSW5uZXJWZXJ0aWNhbFNwYWNlfSAqIDIpYDtcbiAgICB9O1xuXG4gICAgY29uc3QgZnVsbFNjcmVlbk1vYmlsZSA9IGBjYWxjKDEwMGR2aCAtICR7bW9iaWxlVmVydGljYWxTcGFjZX0gKiAyIC0gJHttb2JpbGVJbm5lclZlcnRpY2FsU3BhY2V9ICogMilgO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGRpc3BsYXk6IFwiZmxleFwiLFxuICAgICAgLi4udXNlUmVzcG9uc2l2ZVZhbHVlKHtcbiAgICAgICAgaGVpZ2h0OiBbXG4gICAgICAgICAgc2l6ZSA9PT0gXCJsXCIgfHwgaXNGdWxsU2NyZWVuID8gZnVsbFNjcmVlbk1vYmlsZSA6IFwiYXV0b1wiLFxuICAgICAgICAgIGdldERlc2t0b3BIZWlnaHQoKSxcbiAgICAgICAgXSxcbiAgICAgICAgbWF4SGVpZ2h0OiBbZnVsbFNjcmVlbk1vYmlsZSwgZ2V0RGVza3RvcE1heEhlaWdodCgpXSxcbiAgICAgIH0pLFxuXG4gICAgICBmbGV4RGlyZWN0aW9uOiBcImNvbHVtblwiLFxuICAgICAgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsXG4gICAgfTtcbiAgfVxuKTtcblxudHlwZSBTdHlsZWRCb2R5UHJvcHMgPSB7XG4gIGJvcmRlckJvdHRvbTogYm9vbGVhbjtcbiAgYm9yZGVyVG9wOiBib29sZWFuO1xufTtcblxuY29uc3QgU3R5bGVkQm9keSA9IHN0eWxlZC5kaXY8U3R5bGVkQm9keVByb3BzICYgUGFydGlhbDxNb2RhbFByb3BzPj4oXG4gICh7IHRoZW1lLCBib3JkZXJCb3R0b20sIGJvcmRlclRvcCwgc2l6ZSwgaXNGdWxsU2NyZWVuIH0pID0+ICh7XG4gICAgb3ZlcmZsb3dZOiBcImF1dG9cIixcbiAgICBtYXhIZWlnaHQ6IFwiMTAwJVwiLFxuXG4gICAgLi4uKChpc0Z1bGxTY3JlZW4gfHwgc2l6ZSA9PT0gXCJsXCIpICYmIHtcbiAgICAgIGZsZXg6IDEsXG4gICAgfSksXG5cbiAgICAuLi4oYm9yZGVyQm90dG9tICYmIHtcbiAgICAgIGJvcmRlckJvdHRvbTogYDFweCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5kaXZpZGVyLnByaW1hcnl9YCxcbiAgICB9KSxcbiAgICAuLi4oYm9yZGVyVG9wICYmIHtcbiAgICAgIGJvcmRlclRvcDogYDFweCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5kaXZpZGVyLnByaW1hcnl9YCxcbiAgICB9KSxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZEltZyA9IHN0eWxlZC5pbWcoKCkgPT4gKHtcbiAgd2lkdGg6IFwiMTAwJVwiLFxuICBhc3BlY3RSYXRpbzogXCIxNi85XCIsXG59KSk7XG5cbmNvbnN0IFN0eWxlZE1heFdpZHRoID0gc3R5bGVkLmRpdjxQYXJ0aWFsPE1vZGFsUHJvcHM+PigoeyB0aGVtZSB9KSA9PiAoe1xuICBtYXhXaWR0aDogdGhlbWUudmFyaWFibGVzLnNpemUuZGltZW5zaW9uLm1vZGFsLmZ1bGxTY3JlZW5Db250ZW50V2lkdGgsXG4gIG1hcmdpbjogXCIwIGF1dG9cIixcbiAgaGVpZ2h0OiBcIjEwMCVcIixcbn0pKTtcblxuY29uc3QgU3R5bGVkWENvbnRhaW5lciA9IHN0eWxlZC5kaXYoKHsgdGhlbWUgfSkgPT4gKHtcbiAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgLi4udXNlUmVzcG9uc2l2ZVZhbHVlKHtcbiAgICB0b3A6IFt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnMsIHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubF0sXG4gICAgcmlnaHQ6IFt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnMsIHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubF0sXG4gIH0pLFxufSkpO1xuXG5jb25zdCBNb2RhbFN0YWNrID0gKHsgY2hpbGRyZW4sIC4uLnJlc3QgfTogT21pdDxTdGFja1Byb3BzLCBcInNwYWNlXCI+KSA9PiAoXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC9qc3gtcHJvcHMtbm8tc3ByZWFkaW5nXG4gIDxTdGFjayB7Li4ucmVzdH0gc3BhY2U9XCJtXCI+XG4gICAge2NoaWxkcmVufVxuICA8L1N0YWNrPlxuKTtcblxuY29uc3QgTW9kYWxUZXh0ID0gKHtcbiAgY2hpbGRyZW4sXG4gIC4uLnJlc3Rcbn06IE9taXQ8VGV4dFByb3BzLCBcInNpemVcIiB8IFwidmFyaWFudFwiPikgPT4gKFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QvanN4LXByb3BzLW5vLXNwcmVhZGluZ1xuICA8VGV4dCB7Li4ucmVzdH0gc2l6ZT1cIm1cIiBjb2xvcj1cInRlcnRpYXJ5XCI+XG4gICAge2NoaWxkcmVufVxuICA8L1RleHQ+XG4pO1xuXG5jb25zdCBGb290ZXIgPSAoe1xuICBjaGlsZHJlbixcbiAgYWxpZ25JdGVtcyA9IFtcInN0cmV0Y2hcIiwgXCJyaWdodFwiXSxcbiAgaXNTaG9ydFZpZXdwb3J0LFxufToge1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlW10gfCBSZWFjdC5SZWFjdEVsZW1lbnQ7XG4gIGFsaWduSXRlbXM/OiBTdGFja1Byb3BzW1wiYWxpZ25JdGVtc1wiXTtcbiAgaXNTaG9ydFZpZXdwb3J0PzogYm9vbGVhbjtcbn0pID0+IChcbiAgPEJveCBzcGFjZT1cInplcm9cIiB0U3BhY2U9e2lzU2hvcnRWaWV3cG9ydCA/IFwibVwiIDogXCJsXCJ9PlxuICAgIDxTdGFjayBhbGlnbkl0ZW1zPXthbGlnbkl0ZW1zfT57Y2hpbGRyZW59PC9TdGFjaz5cbiAgPC9Cb3g+XG4pO1xuXG5jb25zdCBXcmFwcGVyID0gKHtcbiAgc2tpcFBvcnRhbCxcbiAgY2hpbGRyZW4sXG4gIHBvcnRhbENvbnRhaW5lcixcbiAgYmFja2Ryb3BSZWYsXG59OiB7XG4gIHNraXBQb3J0YWw6IGJvb2xlYW47XG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdEVsZW1lbnQ7XG4gIGJhY2tkcm9wUmVmOiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xufSAmIFBhcnRpYWw8TW9kYWxQcm9wcz4pOiBSZWFjdC5SZWFjdEVsZW1lbnQgPT5cbiAgc2tpcFBvcnRhbCA/IChcbiAgICA8PntjaGlsZHJlbn08Lz5cbiAgKSA6IChcbiAgICA8TW9kYWxDb250ZXh0LlByb3ZpZGVyIHZhbHVlPlxuICAgICAgPFBvcnRhbCBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn0+XG4gICAgICAgIDxTdHlsZWRCYWNrZHJvcCByZWY9e2JhY2tkcm9wUmVmfT57Y2hpbGRyZW59PC9TdHlsZWRCYWNrZHJvcD5cbiAgICAgIDwvUG9ydGFsPlxuICAgIDwvTW9kYWxDb250ZXh0LlByb3ZpZGVyPlxuICApO1xuXG50eXBlIEZvY3VzVHJhcFByb3BzID0ge1xuICBvblBvc3REZWFjdGl2YXRlOiAoKSA9PiB2b2lkO1xuICBiYWNrZHJvcFJlZjogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcbiAgbW9kYWxSZWY6IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XG59ICYgUGljazxNb2RhbFByb3BzLCBcImlzRGlzbWlzc2libGVcIiB8IFwicG9ydGFsQ29udGFpbmVyXCI+O1xuXG5mdW5jdGlvbiBGb2N1c1RyYXAoe1xuICBvblBvc3REZWFjdGl2YXRlLFxuICBpc0Rpc21pc3NpYmxlLFxuICBwb3J0YWxDb250YWluZXIsXG4gIGNoaWxkcmVuLFxuICBiYWNrZHJvcFJlZixcbiAgbW9kYWxSZWYsXG59OiBQcm9wc1dpdGhDaGlsZHJlbjxGb2N1c1RyYXBQcm9wcz4pIHtcbiAgY29uc3QgcG9ydGFsQ29udGFpbmVyRWxlbWVudCA9IHVzZVBvcnRhbENvbnRhaW5lckVsZW1lbnQocG9ydGFsQ29udGFpbmVyKTtcblxuICBjb25zdCBoYW5kbGVDbGlja091dHNpZGVEZWFjdGl2YXRlcyA9IChldnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KSA9PiB7XG4gICAgLy8gRG8gbm90IGNsb3NlIG9uIGNsaWNrIHRoYXQgb2NjdXJzIG9uIGVsZW1lbnRzIHdpdGhpbiB0aGUgc2FtZSBwb3J0YWwsIGZvciBlZywgZHJvcGRvd24gYW5kIHNlbGVjdCBtZW51c1xuICAgIGlmIChcbiAgICAgIHBvcnRhbENvbnRhaW5lckVsZW1lbnQuY29udGFpbnMoZXZ0LnRhcmdldCBhcyBIVE1MRWxlbWVudCkgJiZcbiAgICAgIGV2dC50YXJnZXQgIT09IGJhY2tkcm9wUmVmLmN1cnJlbnRcbiAgICApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIGlzRGlzbWlzc2libGU7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8Rm9jdXNUcmFwV3JhcHBlclxuICAgICAgYWN0aXZlXG4gICAgICBmb2N1c1RyYXBPcHRpb25zPXt7XG4gICAgICAgIGFsbG93T3V0c2lkZUNsaWNrOiB0cnVlLCAvLyBhbGxvdyBjbGljayBvbiBtb2JpbGUgaW4gYW55IGRyb3Bkb3duc1xuICAgICAgICBjbGlja091dHNpZGVEZWFjdGl2YXRlczogaGFuZGxlQ2xpY2tPdXRzaWRlRGVhY3RpdmF0ZXMsXG4gICAgICAgIGVzY2FwZURlYWN0aXZhdGVzOiBpc0Rpc21pc3NpYmxlLCAvLyBkZS1hY3RpdmF0ZSBmb2N1cyB0cmFwIG9uIGVzY2FwZSBrZXlcbiAgICAgICAgcHJldmVudFNjcm9sbDogdHJ1ZSxcbiAgICAgICAgZmFsbGJhY2tGb2N1czogbW9kYWxSZWYuY3VycmVudCxcbiAgICAgICAgb25Qb3N0RGVhY3RpdmF0ZSxcbiAgICAgIH19XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvRm9jdXNUcmFwV3JhcHBlcj5cbiAgKTtcbn1cblxuY29uc3QgSG9yaXpvbnRhbE9mZnNldCA9ICh7XG4gIGNoaWxkcmVuLFxuICBpc0Z1bGxTY3JlZW4sXG4gIGlzTWF4V2lkdGhMaW1pdCxcbiAgaGVpZ2h0LFxufTogUGFydGlhbDxNb2RhbFByb3BzPiAmIHsgaGVpZ2h0Pzogc3RyaW5nIH0pID0+IChcbiAgPEJveCBzcGFjZT17W21vYmlsZVNpemUsIGRlc2t0b3BTaXplXX0gdlNwYWNlPVwiemVyb1wiIGhlaWdodD17aGVpZ2h0fT5cbiAgICB7aXNGdWxsU2NyZWVuICYmIGlzTWF4V2lkdGhMaW1pdCA/IChcbiAgICAgIDxTdHlsZWRNYXhXaWR0aD57Y2hpbGRyZW59PC9TdHlsZWRNYXhXaWR0aD5cbiAgICApIDogKFxuICAgICAgY2hpbGRyZW5cbiAgICApfVxuICA8L0JveD5cbik7XG5cbmZ1bmN0aW9uIGdldElzU2hvcnRWaWV3cG9ydCh3aW5kb3c6IFdpbmRvdyk6IGJvb2xlYW4ge1xuICByZXR1cm4gKFxuICAgIHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgJiYgd2luZG93LmlubmVySGVpZ2h0IDwgTUlOX1ZJRVdQT1JUX0hFSUdIVFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gTW9kYWwoe1xuICBoZWFkZXIsXG4gIHN1YkhlYWRlcixcbiAgbGFiZWxIZWFkZXIsXG4gIGNoaWxkcmVuLFxuICBpbWFnZVVybCxcbiAgSW1hZ2VDb21wb25lbnQsXG4gIHNlY29uZGFyeUJ1dHRvbixcbiAgY2FuY2VsQnV0dG9uTGFiZWwsXG4gIGlzRGlzbWlzc2libGUgPSB0cnVlLFxuICBpc0Z1bGxTY3JlZW4sXG4gIGlzTWF4V2lkdGhMaW1pdCA9IHRydWUsXG4gIGFjdGlvbkJ1dHRvbixcbiAgcm9sZSA9IFwiZGlhbG9nXCIsXG4gIG9uQWN0aW9uLFxuICBzaXplID0gXCJtXCIsXG4gIHByaXZhdGVQcm9wczogeyBza2lwUG9ydGFsIH0gPSB7IHNraXBQb3J0YWw6IGZhbHNlIH0sXG4gIHBvcnRhbENvbnRhaW5lcixcbiAgY2xvc2VCdXR0b25BcmlhTGFiZWwgPSBcIkRpc21pc3MgRGlhbG9nXCIsXG4gIFwiYXJpYS1sYWJlbFwiOiBhcmlhTGFiZWwsXG4gIFwiYXJpYS1kZXNjcmliZWRieVwiOiBhcmlhRGVzY3JpYmVkQnksXG4gIFwiZGF0YS1lMmUtdGVzdC1pZFwiOiBkYXRhRTJlVGVzdElkLFxuICBpbWFnZUFsdCxcbn06IE1vZGFsUHJvcHMpOiBSZWFjdC5SZWFjdEVsZW1lbnQge1xuICBjb25zdCBtb2RhbFJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgYmFja2Ryb3BSZWYgPSB1c2VSZWYobnVsbCk7XG4gIGNvbnN0IHN1YkhlYWRlcklkID0gdXNlSWQoKTtcbiAgY29uc3Qgd2luZG93ID0gdXNlV2luZG93KCk7XG4gIGNvbnN0IHsgc2Nyb2xsYWJsZVJlZiwgaXNTY3JvbGxCb3R0b20sIGlzU2Nyb2xsVG9wLCBoYXNTY3JvbGwgfSA9XG4gICAgdXNlU2Nyb2xsRGV0ZWN0aW9uKCk7XG4gIGNvbnN0IFtpc1Nob3J0Vmlld3BvcnQsIHNldElzU2hvcnRWaWV3cG9ydF0gPSB1c2VTdGF0ZShcbiAgICBnZXRJc1Nob3J0Vmlld3BvcnQod2luZG93KVxuICApO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgbGV0IHJlc2l6ZU9ic2VydmVyOiBSZXNpemVPYnNlcnZlcjtcblxuICAgIGlmICh0eXBlb2YgUmVzaXplT2JzZXJ2ZXIgIT09IFwidW5kZWZpbmVkXCIgJiYgYmFja2Ryb3BSZWYuY3VycmVudCkge1xuICAgICAgcmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKCkgPT4ge1xuICAgICAgICBzZXRJc1Nob3J0Vmlld3BvcnQoZ2V0SXNTaG9ydFZpZXdwb3J0KHdpbmRvdykpO1xuICAgICAgfSk7XG5cbiAgICAgIHJlc2l6ZU9ic2VydmVyLm9ic2VydmUoYmFja2Ryb3BSZWYuY3VycmVudCk7XG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChyZXNpemVPYnNlcnZlcikge1xuICAgICAgICByZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICB9XG4gICAgfTtcbiAgfSwgW2JhY2tkcm9wUmVmLCB3aW5kb3ddKTtcblxuICBjb25zdCBoYW5kbGVDbG9zZSA9ICgpID0+IHtcbiAgICBvbkFjdGlvbihcImNhbmNlbFwiKTtcbiAgfTtcblxuICBjb25zdCBoYXNJbWFnZSA9IGltYWdlVXJsIHx8IEltYWdlQ29tcG9uZW50O1xuICBjb25zdCBIZWFkaW5nQ29tcG9uZW50ID0gaXNTaG9ydFZpZXdwb3J0ID8gSDMgOiBIMjtcbiAgY29uc3QgaXNJbWFnZVZpc2libGUgPSAhaXNTaG9ydFZpZXdwb3J0ICYmICEhaGFzSW1hZ2U7XG4gIGNvbnN0IGhvcml6b250YWxPZmZzZXRQcm9wcyA9IHsgaXNGdWxsU2NyZWVuLCBpc01heFdpZHRoTGltaXQgfTtcblxuICBjb25zdCBjbG9zZUJ1dHRvbiA9IGlzRGlzbWlzc2libGUgJiYgKFxuICAgIDxTdHlsZWRYQ29udGFpbmVyPlxuICAgICAgPFBpY3RvZ3JhbUJ1dHRvblxuICAgICAgICB2YXJpYW50PVwidGVydGlhcnlcIlxuICAgICAgICBpY29uPVwieFwiXG4gICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgb25DbGljaz17aGFuZGxlQ2xvc2V9XG4gICAgICAgIGFyaWEtbGFiZWw9e2Nsb3NlQnV0dG9uQXJpYUxhYmVsfVxuICAgICAgLz5cbiAgICA8L1N0eWxlZFhDb250YWluZXI+XG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8V3JhcHBlclxuICAgICAgc2tpcFBvcnRhbD17c2tpcFBvcnRhbH1cbiAgICAgIHBvcnRhbENvbnRhaW5lcj17cG9ydGFsQ29udGFpbmVyfVxuICAgICAgYmFja2Ryb3BSZWY9e2JhY2tkcm9wUmVmfVxuICAgID5cbiAgICAgIDxGb2N1c1RyYXBcbiAgICAgICAgcG9ydGFsQ29udGFpbmVyPXtwb3J0YWxDb250YWluZXJ9XG4gICAgICAgIGlzRGlzbWlzc2libGU9e2lzRGlzbWlzc2libGV9XG4gICAgICAgIG9uUG9zdERlYWN0aXZhdGU9e2hhbmRsZUNsb3NlfVxuICAgICAgICBiYWNrZHJvcFJlZj17YmFja2Ryb3BSZWZ9XG4gICAgICAgIG1vZGFsUmVmPXttb2RhbFJlZn1cbiAgICAgID5cbiAgICAgICAgPFN0eWxlZE1vZGFsV3JhcHBlclxuICAgICAgICAgIHJlZj17bW9kYWxSZWZ9XG4gICAgICAgICAgcm9sZT17cm9sZX1cbiAgICAgICAgICBkYXRhLWUyZS10ZXN0LWlkPXtkYXRhRTJlVGVzdElkfVxuICAgICAgICAgIGRhdGEtZHMtaWQ9XCJNb2RhbFwiXG4gICAgICAgICAgaXNGdWxsU2NyZWVuPXtpc0Z1bGxTY3JlZW59XG4gICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICBhcmlhLWxhYmVsPXthcmlhTGFiZWwgfHwgaGVhZGVyfVxuICAgICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9e1xuICAgICAgICAgICAgc3ViSGVhZGVyID8gYXBwZW5kSWQoYXJpYURlc2NyaWJlZEJ5LCBzdWJIZWFkZXJJZCkgOiBhcmlhRGVzY3JpYmVkQnlcbiAgICAgICAgICB9XG4gICAgICAgID5cbiAgICAgICAgICA8Q29udGFpbmVyIGVsZXZhdGlvbj17NH0+XG4gICAgICAgICAgICA8Qm94IHNwYWNlPVwiemVyb1wiIHZTcGFjZT17W21vYmlsZVNpemUsIGRlc2t0b3BTaXplXX0+XG4gICAgICAgICAgICAgIDxTdHlsZWRJbm5lciBpc0Z1bGxTY3JlZW49e2lzRnVsbFNjcmVlbn0gc2l6ZT17c2l6ZX0+XG4gICAgICAgICAgICAgICAgPEhvcml6b250YWxPZmZzZXQgey4uLmhvcml6b250YWxPZmZzZXRQcm9wc30+XG4gICAgICAgICAgICAgICAgICA8Qm94IHNwYWNlPVwiemVyb1wiIGJTcGFjZT1cInNcIj5cbiAgICAgICAgICAgICAgICAgICAgPFN0YWNrIHNwYWNlPXtpc0ltYWdlVmlzaWJsZSA/IFtcInNcIiwgXCJsXCJdIDogXCJ6ZXJvXCJ9PlxuICAgICAgICAgICAgICAgICAgICAgIHtpc0ltYWdlVmlzaWJsZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgKGltYWdlVXJsID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Qm94IHNwYWNlPVwiemVyb1wiIHRTcGFjZT17W1wieGxcIiwgXCJsXCJdfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSW1nIHNyYz17aW1hZ2VVcmx9IGFsdD17aW1hZ2VBbHR9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPEltYWdlQ29tcG9uZW50IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICA8SW5saW5lIGFsaWduSXRlbXM9XCJzcGFjZUJldHdlZW5cIiBub1dyYXA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8U3RhY2sgc3BhY2U9XCJ4eHNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge2xhYmVsSGVhZGVyICYmIDxINiBhcz1cImRpdlwiPntsYWJlbEhlYWRlcn08L0g2Pn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0YWNrIHNwYWNlPVwiemVyb1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxIZWFkaW5nQ29tcG9uZW50IGFzPVwiaDFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtoZWFkZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9IZWFkaW5nQ29tcG9uZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtzdWJIZWFkZXIgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEg0IGFzPVwiaDJcIiBjb2xvcj1cInRlcnRpYXJ5XCIgaWQ9e3N1YkhlYWRlcklkfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3N1YkhlYWRlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSDQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgICAgICAgICB7Y2xvc2VCdXR0b259XG4gICAgICAgICAgICAgICAgICAgICAgPC9JbmxpbmU+XG4gICAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICA8L0hvcml6b250YWxPZmZzZXQ+XG5cbiAgICAgICAgICAgICAgICA8U3R5bGVkQm9keVxuICAgICAgICAgICAgICAgICAgcmVmPXtzY3JvbGxhYmxlUmVmfVxuICAgICAgICAgICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICAgICAgICAgIGlzRnVsbFNjcmVlbj17aXNGdWxsU2NyZWVufVxuICAgICAgICAgICAgICAgICAgYm9yZGVyQm90dG9tPXtoYXNTY3JvbGwgJiYgIWlzU2Nyb2xsQm90dG9tfVxuICAgICAgICAgICAgICAgICAgYm9yZGVyVG9wPXtoYXNTY3JvbGwgJiYgIWlzU2Nyb2xsVG9wfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxCb3ggc3BhY2U9XCJ6ZXJvXCIgdlNwYWNlPVwieHh4c1wiIGhlaWdodD1cIjEwMCVcIj5cbiAgICAgICAgICAgICAgICAgICAgPEhvcml6b250YWxPZmZzZXQgey4uLmhvcml6b250YWxPZmZzZXRQcm9wc30gaGVpZ2h0PVwiMTAwJVwiPlxuICAgICAgICAgICAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICAgICAgICAgICAgPC9Ib3Jpem9udGFsT2Zmc2V0PlxuICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRCb2R5PlxuXG4gICAgICAgICAgICAgICAgeyhhY3Rpb25CdXR0b24gfHwgY2FuY2VsQnV0dG9uTGFiZWwgfHwgc2Vjb25kYXJ5QnV0dG9uKSAmJiAoXG4gICAgICAgICAgICAgICAgICA8SG9yaXpvbnRhbE9mZnNldCB7Li4uaG9yaXpvbnRhbE9mZnNldFByb3BzfT5cbiAgICAgICAgICAgICAgICAgICAgPEZvb3RlciBpc1Nob3J0Vmlld3BvcnQ9e2lzU2hvcnRWaWV3cG9ydH0+XG4gICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvbkdyb3VwXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb25CdXR0b249e2FjdGlvbkJ1dHRvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgIHNlY29uZGFyeUJ1dHRvbj17c2Vjb25kYXJ5QnV0dG9ufVxuICAgICAgICAgICAgICAgICAgICAgICAgY2FuY2VsQnV0dG9uVGV4dD17Y2FuY2VsQnV0dG9uTGFiZWx9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkJ1dHRvbkNsaWNrPXtvbkFjdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8L0Zvb3Rlcj5cbiAgICAgICAgICAgICAgICAgIDwvSG9yaXpvbnRhbE9mZnNldD5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8L1N0eWxlZElubmVyPlxuICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgIDwvU3R5bGVkTW9kYWxXcmFwcGVyPlxuICAgICAgPC9Gb2N1c1RyYXA+XG4gICAgPC9XcmFwcGVyPlxuICApO1xufVxuXG5Nb2RhbC5TdGFjayA9IE1vZGFsU3RhY2s7XG5Nb2RhbC5UZXh0ID0gTW9kYWxUZXh0O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQStOdUIifQ== */"),StyledXContainer=(0,_styled.default)("div",{target:"e1nbaxlv6",label:"StyledXContainer"})(({theme})=>({position:"absolute",...(0,_mediaQueries.useResponsiveValue)({top:[theme.variables.size.spacing.s,theme.variables.size.spacing.l],right:[theme.variables.size.spacing.s,theme.variables.size.spacing.l]})}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUGF0dGVybnMvTW9kYWwvTW9kYWwudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9QYXR0ZXJucy9Nb2RhbC9Nb2RhbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgcmVhY3QvanN4LXByb3BzLW5vLXNwcmVhZGluZyAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVhY3QvanN4LW5vLXVzZWxlc3MtZnJhZ21lbnQgKi9cbmltcG9ydCB0eXBlIHsgUmVmT2JqZWN0LCBQcm9wc1dpdGhDaGlsZHJlbiB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFJlYWN0LCB7IHVzZU1lbW8sIHVzZVJlZiwgdXNlSWQsIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHR5cGUgeyBUaGVtZSB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHsga2V5ZnJhbWVzIH0gZnJvbSBcIkBlbW90aW9uL3JlYWN0XCI7XG5pbXBvcnQgdHlwZSB7IFBvcnRhbFByb3BzIH0gZnJvbSBcIi4uLy4uL1BvcnRhbC9Qb3J0YWxcIjtcbmltcG9ydCB7IFBvcnRhbCwgdXNlUG9ydGFsQ29udGFpbmVyRWxlbWVudCB9IGZyb20gXCIuLi8uLi9Qb3J0YWwvUG9ydGFsXCI7XG5pbXBvcnQgeyBIMiwgSDQsIEg2LCBIMyB9IGZyb20gXCIuLi8uLi9UeXBvZ3JhcGh5L0hlYWRlci9IZWFkZXJcIjtcbmltcG9ydCB0eXBlIHsgU3RhY2tQcm9wcyB9IGZyb20gXCIuLi8uLi9TdGFjay9TdGFja1wiO1xuaW1wb3J0IHsgU3RhY2sgfSBmcm9tIFwiLi4vLi4vU3RhY2svU3RhY2tcIjtcbmltcG9ydCB7IENvbnRhaW5lciB9IGZyb20gXCIuLi8uLi9Db250YWluZXIvQ29udGFpbmVyXCI7XG5pbXBvcnQgeyBCb3ggfSBmcm9tIFwiLi4vLi4vQm94L0JveFwiO1xuXG5pbXBvcnQgeyBJbmxpbmUgfSBmcm9tIFwiLi4vLi4vSW5saW5lL0lubGluZVwiO1xuaW1wb3J0IHR5cGUgeyBCdXR0b25Hcm91cEJ1dHRvblByb3BzIH0gZnJvbSBcIi4uL0J1dHRvbkdyb3VwL0J1dHRvbkdyb3VwXCI7XG5pbXBvcnQgeyBCdXR0b25Hcm91cCB9IGZyb20gXCIuLi9CdXR0b25Hcm91cC9CdXR0b25Hcm91cFwiO1xuaW1wb3J0IHsgUGljdG9ncmFtQnV0dG9uIH0gZnJvbSBcIi4uLy4uL1BpY3RvZ3JhbUJ1dHRvbi9QaWN0b2dyYW1CdXR0b25cIjtcbmltcG9ydCB0eXBlIHsgVGV4dFByb3BzIH0gZnJvbSBcIi4uLy4uL1R5cG9ncmFwaHkvVGV4dC9UZXh0XCI7XG5pbXBvcnQgeyBUZXh0IH0gZnJvbSBcIi4uLy4uL1R5cG9ncmFwaHkvVGV4dC9UZXh0XCI7XG5pbXBvcnQgeyB1c2VSZXNwb25zaXZlVmFsdWUgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL21lZGlhUXVlcmllc1wiO1xuaW1wb3J0IHsgdXNlU2Nyb2xsRGV0ZWN0aW9uIH0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZC91c2VTY3JvbGxEZXRlY3Rpb25cIjtcbmltcG9ydCB7IE1vZGFsQ29udGV4dCB9IGZyb20gXCIuL01vZGFsQ29udGV4dFwiO1xuaW1wb3J0IHsgRm9jdXNUcmFwV3JhcHBlciB9IGZyb20gXCIuLi8uLi8uLi9zaGFyZWQvRm9jdXNUcmFwV3JhcHBlclwiO1xuaW1wb3J0IHsgYXBwZW5kSWQgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL2FwcGVuZElkXCI7XG5pbXBvcnQgeyB1c2VXaW5kb3cgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL3VzZVdpbmRvd1wiO1xuXG50eXBlIEJhc2VQcm9wcyA9IHtcbiAgaGVhZGVyPzogc3RyaW5nO1xuICBvbkFjdGlvbj86IChhY3Rpb246IFwiY2FuY2VsXCIgfCBcImFjdGlvblwiKSA9PiB2b2lkO1xuICByb2xlPzogXCJkaWFsb2dcIiB8IFwiYWxlcnRkaWFsb2dcIjtcbiAgbGFiZWxIZWFkZXI/OiBzdHJpbmc7XG4gIC8qKiBUaGUgYmxhY2sgY29sb3IgaXMgZ29pbmcgdG8gYmUgcmVwbGFjZWQgd2l0aCBncmF5IG9uZSAqL1xuICBzdWJIZWFkZXI/OiBzdHJpbmc7XG4gIC8qKiBUZXh0IGFuZCBvdGhlciBwcm9wcyBmb3IgYWN0aW9uIEJ1dHRvbiAqL1xuICBhY3Rpb25CdXR0b24/OiBCdXR0b25Hcm91cEJ1dHRvblByb3BzO1xuICAvKiogVGV4dCBhbmQgb3RoZXIgcHJvcHMgZm9yIGFjdGlvbiBCdXR0b24gKi9cbiAgc2Vjb25kYXJ5QnV0dG9uPzogQnV0dG9uR3JvdXBCdXR0b25Qcm9wcztcbiAgLyoqIEBkZXByZWNhdGVkIFVzZSBzZWNvbmRhcnlCdXR0b24gdG8gcGFzcyBpbiB0ZXh0IGFuZCBvdGhlciBwcm9wcyBmb3Igc2Vjb25kYXJ5IGJ1dHRvbiAqL1xuICBjYW5jZWxCdXR0b25MYWJlbD86IHN0cmluZztcbiAgLyoqIEFpbSB0byB1c2UgPE1vZGFsLlRleHQ+IGFuZCA8TW9kYWwuU3RhY2s+ICovXG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuICBcImRhdGEtZTJlLXRlc3QtaWRcIj86IHN0cmluZztcbiAgcHJpdmF0ZVByb3BzPzogeyBza2lwUG9ydGFsPzogYm9vbGVhbiB9O1xuICAvKiogSXQncyBhIGJhZCBwYXR0ZXJuIHRvIHVzZSBub24tZGlzbWlzc2libGUgTW9kYWwgKi9cbiAgaXNEaXNtaXNzaWJsZT86IGJvb2xlYW47XG4gIGlzRnVsbFNjcmVlbj86IGJvb2xlYW47XG4gIGlzTWF4V2lkdGhMaW1pdD86IGJvb2xlYW47XG4gIHNpemU/OiBcIm1cIiB8IFwibFwiO1xuICBjbG9zZUJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgXCJhcmlhLWxhYmVsXCI/OiBzdHJpbmc7XG4gIFwiYXJpYS1kZXNjcmliZWRieVwiPzogc3RyaW5nO1xuICAvKiogQWx0IHRleHQgZm9yIHRoZSBtb2RhbCBpbWFnZSAqL1xufTtcblxudHlwZSBDb25kaXRpb25hbFByb3BzID1cbiAgfCB7XG4gICAgICAvKiogQXNwZWN0IHJhdGlvIDE2OjkgKi9cbiAgICAgIGltYWdlVXJsPzogc3RyaW5nO1xuICAgICAgaW1hZ2VBbHQ/OiBzdHJpbmc7XG4gICAgICBJbWFnZUNvbXBvbmVudD86IG5ldmVyO1xuICAgIH1cbiAgfCB7XG4gICAgICBpbWFnZVVybD86IG5ldmVyO1xuICAgICAgaW1hZ2VBbHQ/OiBuZXZlcjtcbiAgICAgIC8qKiBBY2NlcHQgcmF0aW8gMTY6OSAqL1xuICAgICAgSW1hZ2VDb21wb25lbnQ/OiBSZWFjdC5FbGVtZW50VHlwZTxhbnk+O1xuICAgIH07XG5cbmV4cG9ydCB0eXBlIE1vZGFsUHJvcHMgPSBCYXNlUHJvcHMgJlxuICBDb25kaXRpb25hbFByb3BzICZcbiAgUGljazxQb3J0YWxQcm9wcywgXCJwb3J0YWxDb250YWluZXJcIj47XG5cbmV4cG9ydCBjb25zdCBTdHlsZWRCYWNrZHJvcCA9IHN0eWxlZC5kaXY8UGFydGlhbDxCYXNlUHJvcHM+PigoeyB0aGVtZSB9KSA9PiB7XG4gIGNvbnN0IGZhZGVJbkJhY2tkcm9wID0gdXNlTWVtbyhcbiAgICAoKSA9PlxuICAgICAga2V5ZnJhbWVzYFxuICAgICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6ICR7dGhlbWUudmFyaWFibGVzLm9wYWNpdHkuaGlkZGVufTtcbiAgICAgIH1cbiAgICAgIHRvIHtcbiAgICAgICAgb3BhY2l0eTogJHt0aGVtZS52YXJpYWJsZXMub3BhY2l0eS52aXNpYmxlfTtcbiAgICAgIH1cbiAgICBgLFxuICAgIFt0aGVtZS52YXJpYWJsZXMub3BhY2l0eS5oaWRkZW4sIHRoZW1lLnZhcmlhYmxlcy5vcGFjaXR5LnZpc2libGVdXG4gICk7XG4gIHJldHVybiB7XG4gICAgcG9zaXRpb246IFwiZml4ZWRcIixcbiAgICB0b3A6IDAsXG4gICAgbGVmdDogMCxcbiAgICB6SW5kZXg6IHRoZW1lLnZhcmlhYmxlcy56SW5kZXgubW9kYWwsXG4gICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgIGhlaWdodDogXCIxMDBkdmhcIixcbiAgICBiYWNrZ3JvdW5kOiB0aGVtZS52YWx1ZXMuY29sb3IuYmFja2dyb3VuZC5iYWNrZHJvcC5kZWZhdWx0LFxuICAgIGRpc3BsYXk6IFwiZmxleFwiLFxuICAgIGZsZXhEaXJlY3Rpb246IFwiY29sdW1uXCIsXG4gICAganVzdGlmeUNvbnRlbnQ6IFwiY2VudGVyXCIsXG4gICAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbiAgICBmbGV4OiBcIjEgMCBhdXRvXCIsXG4gICAgYW5pbWF0aW9uOiBgJHtmYWRlSW5CYWNrZHJvcH0gJHt0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLm1vZGFsQmFja2Ryb3Aub3Blbi5kdXJhdGlvbn0gJHt0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLm1vZGFsQmFja2Ryb3Aub3Blbi50aW1pbmdGdW5jdGlvbn0gYm90aGAsXG4gIH07XG59KTtcblxuY29uc3QgbW9iaWxlU2l6ZSA9IFwibVwiO1xuY29uc3QgZGVza3RvcFNpemUgPSBcInhsXCI7XG5jb25zdCBnZXREZXNrdG9wU3BhY2UgPSAodGhlbWU6IFRoZW1lKSA9PiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLmw7XG5jb25zdCBnZXREZXNrdG9wSW5uZXJTcGFjZSA9ICh0aGVtZTogVGhlbWUpID0+XG4gIHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmdbZGVza3RvcFNpemVdO1xuY29uc3QgZ2V0TW9iaWxlU3BhY2UgPSAodGhlbWU6IFRoZW1lKSA9PiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLm07XG5jb25zdCBnZXRNb2JpbGVJbm5lclNwYWNlID0gKHRoZW1lOiBUaGVtZSkgPT5cbiAgdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZ1ttb2JpbGVTaXplXTtcbi8vIE1pbmltdW0gdmlld3BvcnQgaGVpZ2h0IG9uIHdoaWNoIGltYWdlIGlzIHNob3duLlxuY29uc3QgTUlOX1ZJRVdQT1JUX0hFSUdIVCA9IDQyMDtcblxuY29uc3QgU3R5bGVkTW9kYWxXcmFwcGVyID0gc3R5bGVkLmRpdjxQYXJ0aWFsPE1vZGFsUHJvcHM+PihcbiAgKHsgdGhlbWUsIGlzRnVsbFNjcmVlbiwgc2l6ZSB9KSA9PiB7XG4gICAgY29uc3QgZmFkZUluTW9kYWwgPSB1c2VNZW1vKFxuICAgICAgKCkgPT5cbiAgICAgICAga2V5ZnJhbWVzYFxuICAgICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6ICR7dGhlbWUudmFyaWFibGVzLm9wYWNpdHkuaGlkZGVufTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwcHgpO1xuICAgICAgfVxuICAgICAgdG8ge1xuICAgICAgICAgIG9wYWNpdHk6ICR7dGhlbWUudmFyaWFibGVzLm9wYWNpdHkudmlzaWJsZX07XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICAgIH1cbiAgICBgLFxuICAgICAgW3RoZW1lLnZhcmlhYmxlcy5vcGFjaXR5LmhpZGRlbiwgdGhlbWUudmFyaWFibGVzLm9wYWNpdHkudmlzaWJsZV1cbiAgICApO1xuICAgIHJldHVybiB7XG4gICAgICBhbmltYXRpb246IGAke2ZhZGVJbk1vZGFsfSAke3RoZW1lLnZhcmlhYmxlcy5hbmltYXRpb24ubW9kYWwub3Blbi5kdXJhdGlvbn0gJHt0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLm1vZGFsLm9wZW4uZGVsYXl9ICR7dGhlbWUudmFyaWFibGVzLmFuaW1hdGlvbi5tb2RhbC5vcGVuLnRpbWluZ0Z1bmN0aW9ufSBib3RoYCxcbiAgICAgIC4uLnVzZVJlc3BvbnNpdmVWYWx1ZSh7XG4gICAgICAgIHdpZHRoOiBbXG4gICAgICAgICAgYGNhbGMoMTAwJSAtICR7Z2V0TW9iaWxlU3BhY2UodGhlbWUpfSAqIDIpYCxcbiAgICAgICAgICBpc0Z1bGxTY3JlZW5cbiAgICAgICAgICAgID8gYGNhbGMoMTAwJSAtICR7Z2V0RGVza3RvcFNwYWNlKHRoZW1lKX0gKiAyKWBcbiAgICAgICAgICAgIDogdGhlbWUudmFyaWFibGVzLnNpemUuZGltZW5zaW9uLm1vZGFsLndpZHRoW3NpemVdLFxuICAgICAgICBdLFxuICAgICAgfSksXG4gICAgfTtcbiAgfVxuKTtcblxuY29uc3QgU3R5bGVkSW5uZXIgPSBzdHlsZWQuZGl2PFBhcnRpYWw8TW9kYWxQcm9wcz4+KFxuICAoeyB0aGVtZSwgaXNGdWxsU2NyZWVuLCBzaXplIH0pID0+IHtcbiAgICBjb25zdCBtb2JpbGVWZXJ0aWNhbFNwYWNlID0gZ2V0TW9iaWxlU3BhY2UodGhlbWUpO1xuICAgIGNvbnN0IG1vYmlsZUlubmVyVmVydGljYWxTcGFjZSA9IGdldE1vYmlsZUlubmVyU3BhY2UodGhlbWUpO1xuICAgIGNvbnN0IGRlc2t0b3BWZXJ0aWNhbFNwYWNlID0gZ2V0RGVza3RvcFNwYWNlKHRoZW1lKTtcbiAgICBjb25zdCBkZXNrdG9wSW5uZXJWZXJ0aWNhbFNwYWNlID0gZ2V0RGVza3RvcElubmVyU3BhY2UodGhlbWUpO1xuXG4gICAgLy8gZnVsbHNjcmVlbiBhbmQgTCBzaXplIGRvbid0IGRlcGVuZCBvbiBjb250ZW50IHNpemVcbiAgICAvLyBMIHNpemUgaGVpZ2h0IGhhcyBtYXhIaWVnaHQgcmVzaXplIHVudGlsIDgwMHB4XG4gICAgLy8gZnVsbHNjcmVlbiBtYXhIZWlnaHQgaXMgbm90IGxpbWl0ZWRcbiAgICAvLyBNIHNpemUgaGVpZ2h0IGhhcyBjb250ZW50IHNpemUgYW5kIGNlbnRlcmVkIGF0IHRvcCBhbmQgbWF4SGVpZ2h0IGlzIG5vdCBsaW1pdGVkXG5cbiAgICBjb25zdCBnZXREZXNrdG9wSGVpZ2h0ID0gKCkgPT4ge1xuICAgICAgaWYgKGlzRnVsbFNjcmVlbikge1xuICAgICAgICByZXR1cm4gYGNhbGMoMTAwZHZoIC0gJHtkZXNrdG9wVmVydGljYWxTcGFjZX0gKiAyIC0gJHtkZXNrdG9wSW5uZXJWZXJ0aWNhbFNwYWNlfSAqIDIpYDtcbiAgICAgIH1cbiAgICAgIGlmIChzaXplID09PSBcImxcIikge1xuICAgICAgICByZXR1cm4gYGNhbGMoMTAwZHZoIC0gJHtkZXNrdG9wVmVydGljYWxTcGFjZX0gKiAyIC0gJHtkZXNrdG9wSW5uZXJWZXJ0aWNhbFNwYWNlfSAqIDIgLSAke3RoZW1lLnZhcmlhYmxlcy5zaXplLmRpbWVuc2lvbi5tb2RhbC5tYXJnaW4ubH0gKiAyKWA7XG4gICAgICB9XG4gICAgICByZXR1cm4gXCJhdXRvXCI7XG4gICAgfTtcblxuICAgIGNvbnN0IGdldERlc2t0b3BNYXhIZWlnaHQgPSAoKSA9PiB7XG4gICAgICBpZiAoaXNGdWxsU2NyZWVuKSB7XG4gICAgICAgIHJldHVybiBgYXV0b2A7XG4gICAgICB9XG4gICAgICBpZiAoc2l6ZSA9PT0gXCJsXCIpIHtcbiAgICAgICAgcmV0dXJuIGBjYWxjKCR7dGhlbWUudmFyaWFibGVzLnNpemUuZGltZW5zaW9uLm1vZGFsLm1heEhlaWdodC5sfSAtICR7ZGVza3RvcElubmVyVmVydGljYWxTcGFjZX0gKiAyKWA7XG4gICAgICB9XG4gICAgICByZXR1cm4gYGNhbGMoMTAwZHZoIC0gJHtkZXNrdG9wVmVydGljYWxTcGFjZX0gKiAyIC0gJHtkZXNrdG9wSW5uZXJWZXJ0aWNhbFNwYWNlfSAqIDIpYDtcbiAgICB9O1xuXG4gICAgY29uc3QgZnVsbFNjcmVlbk1vYmlsZSA9IGBjYWxjKDEwMGR2aCAtICR7bW9iaWxlVmVydGljYWxTcGFjZX0gKiAyIC0gJHttb2JpbGVJbm5lclZlcnRpY2FsU3BhY2V9ICogMilgO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGRpc3BsYXk6IFwiZmxleFwiLFxuICAgICAgLi4udXNlUmVzcG9uc2l2ZVZhbHVlKHtcbiAgICAgICAgaGVpZ2h0OiBbXG4gICAgICAgICAgc2l6ZSA9PT0gXCJsXCIgfHwgaXNGdWxsU2NyZWVuID8gZnVsbFNjcmVlbk1vYmlsZSA6IFwiYXV0b1wiLFxuICAgICAgICAgIGdldERlc2t0b3BIZWlnaHQoKSxcbiAgICAgICAgXSxcbiAgICAgICAgbWF4SGVpZ2h0OiBbZnVsbFNjcmVlbk1vYmlsZSwgZ2V0RGVza3RvcE1heEhlaWdodCgpXSxcbiAgICAgIH0pLFxuXG4gICAgICBmbGV4RGlyZWN0aW9uOiBcImNvbHVtblwiLFxuICAgICAgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsXG4gICAgfTtcbiAgfVxuKTtcblxudHlwZSBTdHlsZWRCb2R5UHJvcHMgPSB7XG4gIGJvcmRlckJvdHRvbTogYm9vbGVhbjtcbiAgYm9yZGVyVG9wOiBib29sZWFuO1xufTtcblxuY29uc3QgU3R5bGVkQm9keSA9IHN0eWxlZC5kaXY8U3R5bGVkQm9keVByb3BzICYgUGFydGlhbDxNb2RhbFByb3BzPj4oXG4gICh7IHRoZW1lLCBib3JkZXJCb3R0b20sIGJvcmRlclRvcCwgc2l6ZSwgaXNGdWxsU2NyZWVuIH0pID0+ICh7XG4gICAgb3ZlcmZsb3dZOiBcImF1dG9cIixcbiAgICBtYXhIZWlnaHQ6IFwiMTAwJVwiLFxuXG4gICAgLi4uKChpc0Z1bGxTY3JlZW4gfHwgc2l6ZSA9PT0gXCJsXCIpICYmIHtcbiAgICAgIGZsZXg6IDEsXG4gICAgfSksXG5cbiAgICAuLi4oYm9yZGVyQm90dG9tICYmIHtcbiAgICAgIGJvcmRlckJvdHRvbTogYDFweCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5kaXZpZGVyLnByaW1hcnl9YCxcbiAgICB9KSxcbiAgICAuLi4oYm9yZGVyVG9wICYmIHtcbiAgICAgIGJvcmRlclRvcDogYDFweCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5kaXZpZGVyLnByaW1hcnl9YCxcbiAgICB9KSxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZEltZyA9IHN0eWxlZC5pbWcoKCkgPT4gKHtcbiAgd2lkdGg6IFwiMTAwJVwiLFxuICBhc3BlY3RSYXRpbzogXCIxNi85XCIsXG59KSk7XG5cbmNvbnN0IFN0eWxlZE1heFdpZHRoID0gc3R5bGVkLmRpdjxQYXJ0aWFsPE1vZGFsUHJvcHM+PigoeyB0aGVtZSB9KSA9PiAoe1xuICBtYXhXaWR0aDogdGhlbWUudmFyaWFibGVzLnNpemUuZGltZW5zaW9uLm1vZGFsLmZ1bGxTY3JlZW5Db250ZW50V2lkdGgsXG4gIG1hcmdpbjogXCIwIGF1dG9cIixcbiAgaGVpZ2h0OiBcIjEwMCVcIixcbn0pKTtcblxuY29uc3QgU3R5bGVkWENvbnRhaW5lciA9IHN0eWxlZC5kaXYoKHsgdGhlbWUgfSkgPT4gKHtcbiAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgLi4udXNlUmVzcG9uc2l2ZVZhbHVlKHtcbiAgICB0b3A6IFt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnMsIHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubF0sXG4gICAgcmlnaHQ6IFt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnMsIHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubF0sXG4gIH0pLFxufSkpO1xuXG5jb25zdCBNb2RhbFN0YWNrID0gKHsgY2hpbGRyZW4sIC4uLnJlc3QgfTogT21pdDxTdGFja1Byb3BzLCBcInNwYWNlXCI+KSA9PiAoXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC9qc3gtcHJvcHMtbm8tc3ByZWFkaW5nXG4gIDxTdGFjayB7Li4ucmVzdH0gc3BhY2U9XCJtXCI+XG4gICAge2NoaWxkcmVufVxuICA8L1N0YWNrPlxuKTtcblxuY29uc3QgTW9kYWxUZXh0ID0gKHtcbiAgY2hpbGRyZW4sXG4gIC4uLnJlc3Rcbn06IE9taXQ8VGV4dFByb3BzLCBcInNpemVcIiB8IFwidmFyaWFudFwiPikgPT4gKFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QvanN4LXByb3BzLW5vLXNwcmVhZGluZ1xuICA8VGV4dCB7Li4ucmVzdH0gc2l6ZT1cIm1cIiBjb2xvcj1cInRlcnRpYXJ5XCI+XG4gICAge2NoaWxkcmVufVxuICA8L1RleHQ+XG4pO1xuXG5jb25zdCBGb290ZXIgPSAoe1xuICBjaGlsZHJlbixcbiAgYWxpZ25JdGVtcyA9IFtcInN0cmV0Y2hcIiwgXCJyaWdodFwiXSxcbiAgaXNTaG9ydFZpZXdwb3J0LFxufToge1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlW10gfCBSZWFjdC5SZWFjdEVsZW1lbnQ7XG4gIGFsaWduSXRlbXM/OiBTdGFja1Byb3BzW1wiYWxpZ25JdGVtc1wiXTtcbiAgaXNTaG9ydFZpZXdwb3J0PzogYm9vbGVhbjtcbn0pID0+IChcbiAgPEJveCBzcGFjZT1cInplcm9cIiB0U3BhY2U9e2lzU2hvcnRWaWV3cG9ydCA/IFwibVwiIDogXCJsXCJ9PlxuICAgIDxTdGFjayBhbGlnbkl0ZW1zPXthbGlnbkl0ZW1zfT57Y2hpbGRyZW59PC9TdGFjaz5cbiAgPC9Cb3g+XG4pO1xuXG5jb25zdCBXcmFwcGVyID0gKHtcbiAgc2tpcFBvcnRhbCxcbiAgY2hpbGRyZW4sXG4gIHBvcnRhbENvbnRhaW5lcixcbiAgYmFja2Ryb3BSZWYsXG59OiB7XG4gIHNraXBQb3J0YWw6IGJvb2xlYW47XG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdEVsZW1lbnQ7XG4gIGJhY2tkcm9wUmVmOiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xufSAmIFBhcnRpYWw8TW9kYWxQcm9wcz4pOiBSZWFjdC5SZWFjdEVsZW1lbnQgPT5cbiAgc2tpcFBvcnRhbCA/IChcbiAgICA8PntjaGlsZHJlbn08Lz5cbiAgKSA6IChcbiAgICA8TW9kYWxDb250ZXh0LlByb3ZpZGVyIHZhbHVlPlxuICAgICAgPFBvcnRhbCBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn0+XG4gICAgICAgIDxTdHlsZWRCYWNrZHJvcCByZWY9e2JhY2tkcm9wUmVmfT57Y2hpbGRyZW59PC9TdHlsZWRCYWNrZHJvcD5cbiAgICAgIDwvUG9ydGFsPlxuICAgIDwvTW9kYWxDb250ZXh0LlByb3ZpZGVyPlxuICApO1xuXG50eXBlIEZvY3VzVHJhcFByb3BzID0ge1xuICBvblBvc3REZWFjdGl2YXRlOiAoKSA9PiB2b2lkO1xuICBiYWNrZHJvcFJlZjogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcbiAgbW9kYWxSZWY6IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XG59ICYgUGljazxNb2RhbFByb3BzLCBcImlzRGlzbWlzc2libGVcIiB8IFwicG9ydGFsQ29udGFpbmVyXCI+O1xuXG5mdW5jdGlvbiBGb2N1c1RyYXAoe1xuICBvblBvc3REZWFjdGl2YXRlLFxuICBpc0Rpc21pc3NpYmxlLFxuICBwb3J0YWxDb250YWluZXIsXG4gIGNoaWxkcmVuLFxuICBiYWNrZHJvcFJlZixcbiAgbW9kYWxSZWYsXG59OiBQcm9wc1dpdGhDaGlsZHJlbjxGb2N1c1RyYXBQcm9wcz4pIHtcbiAgY29uc3QgcG9ydGFsQ29udGFpbmVyRWxlbWVudCA9IHVzZVBvcnRhbENvbnRhaW5lckVsZW1lbnQocG9ydGFsQ29udGFpbmVyKTtcblxuICBjb25zdCBoYW5kbGVDbGlja091dHNpZGVEZWFjdGl2YXRlcyA9IChldnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KSA9PiB7XG4gICAgLy8gRG8gbm90IGNsb3NlIG9uIGNsaWNrIHRoYXQgb2NjdXJzIG9uIGVsZW1lbnRzIHdpdGhpbiB0aGUgc2FtZSBwb3J0YWwsIGZvciBlZywgZHJvcGRvd24gYW5kIHNlbGVjdCBtZW51c1xuICAgIGlmIChcbiAgICAgIHBvcnRhbENvbnRhaW5lckVsZW1lbnQuY29udGFpbnMoZXZ0LnRhcmdldCBhcyBIVE1MRWxlbWVudCkgJiZcbiAgICAgIGV2dC50YXJnZXQgIT09IGJhY2tkcm9wUmVmLmN1cnJlbnRcbiAgICApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIGlzRGlzbWlzc2libGU7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8Rm9jdXNUcmFwV3JhcHBlclxuICAgICAgYWN0aXZlXG4gICAgICBmb2N1c1RyYXBPcHRpb25zPXt7XG4gICAgICAgIGFsbG93T3V0c2lkZUNsaWNrOiB0cnVlLCAvLyBhbGxvdyBjbGljayBvbiBtb2JpbGUgaW4gYW55IGRyb3Bkb3duc1xuICAgICAgICBjbGlja091dHNpZGVEZWFjdGl2YXRlczogaGFuZGxlQ2xpY2tPdXRzaWRlRGVhY3RpdmF0ZXMsXG4gICAgICAgIGVzY2FwZURlYWN0aXZhdGVzOiBpc0Rpc21pc3NpYmxlLCAvLyBkZS1hY3RpdmF0ZSBmb2N1cyB0cmFwIG9uIGVzY2FwZSBrZXlcbiAgICAgICAgcHJldmVudFNjcm9sbDogdHJ1ZSxcbiAgICAgICAgZmFsbGJhY2tGb2N1czogbW9kYWxSZWYuY3VycmVudCxcbiAgICAgICAgb25Qb3N0RGVhY3RpdmF0ZSxcbiAgICAgIH19XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvRm9jdXNUcmFwV3JhcHBlcj5cbiAgKTtcbn1cblxuY29uc3QgSG9yaXpvbnRhbE9mZnNldCA9ICh7XG4gIGNoaWxkcmVuLFxuICBpc0Z1bGxTY3JlZW4sXG4gIGlzTWF4V2lkdGhMaW1pdCxcbiAgaGVpZ2h0LFxufTogUGFydGlhbDxNb2RhbFByb3BzPiAmIHsgaGVpZ2h0Pzogc3RyaW5nIH0pID0+IChcbiAgPEJveCBzcGFjZT17W21vYmlsZVNpemUsIGRlc2t0b3BTaXplXX0gdlNwYWNlPVwiemVyb1wiIGhlaWdodD17aGVpZ2h0fT5cbiAgICB7aXNGdWxsU2NyZWVuICYmIGlzTWF4V2lkdGhMaW1pdCA/IChcbiAgICAgIDxTdHlsZWRNYXhXaWR0aD57Y2hpbGRyZW59PC9TdHlsZWRNYXhXaWR0aD5cbiAgICApIDogKFxuICAgICAgY2hpbGRyZW5cbiAgICApfVxuICA8L0JveD5cbik7XG5cbmZ1bmN0aW9uIGdldElzU2hvcnRWaWV3cG9ydCh3aW5kb3c6IFdpbmRvdyk6IGJvb2xlYW4ge1xuICByZXR1cm4gKFxuICAgIHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgJiYgd2luZG93LmlubmVySGVpZ2h0IDwgTUlOX1ZJRVdQT1JUX0hFSUdIVFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gTW9kYWwoe1xuICBoZWFkZXIsXG4gIHN1YkhlYWRlcixcbiAgbGFiZWxIZWFkZXIsXG4gIGNoaWxkcmVuLFxuICBpbWFnZVVybCxcbiAgSW1hZ2VDb21wb25lbnQsXG4gIHNlY29uZGFyeUJ1dHRvbixcbiAgY2FuY2VsQnV0dG9uTGFiZWwsXG4gIGlzRGlzbWlzc2libGUgPSB0cnVlLFxuICBpc0Z1bGxTY3JlZW4sXG4gIGlzTWF4V2lkdGhMaW1pdCA9IHRydWUsXG4gIGFjdGlvbkJ1dHRvbixcbiAgcm9sZSA9IFwiZGlhbG9nXCIsXG4gIG9uQWN0aW9uLFxuICBzaXplID0gXCJtXCIsXG4gIHByaXZhdGVQcm9wczogeyBza2lwUG9ydGFsIH0gPSB7IHNraXBQb3J0YWw6IGZhbHNlIH0sXG4gIHBvcnRhbENvbnRhaW5lcixcbiAgY2xvc2VCdXR0b25BcmlhTGFiZWwgPSBcIkRpc21pc3MgRGlhbG9nXCIsXG4gIFwiYXJpYS1sYWJlbFwiOiBhcmlhTGFiZWwsXG4gIFwiYXJpYS1kZXNjcmliZWRieVwiOiBhcmlhRGVzY3JpYmVkQnksXG4gIFwiZGF0YS1lMmUtdGVzdC1pZFwiOiBkYXRhRTJlVGVzdElkLFxuICBpbWFnZUFsdCxcbn06IE1vZGFsUHJvcHMpOiBSZWFjdC5SZWFjdEVsZW1lbnQge1xuICBjb25zdCBtb2RhbFJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgYmFja2Ryb3BSZWYgPSB1c2VSZWYobnVsbCk7XG4gIGNvbnN0IHN1YkhlYWRlcklkID0gdXNlSWQoKTtcbiAgY29uc3Qgd2luZG93ID0gdXNlV2luZG93KCk7XG4gIGNvbnN0IHsgc2Nyb2xsYWJsZVJlZiwgaXNTY3JvbGxCb3R0b20sIGlzU2Nyb2xsVG9wLCBoYXNTY3JvbGwgfSA9XG4gICAgdXNlU2Nyb2xsRGV0ZWN0aW9uKCk7XG4gIGNvbnN0IFtpc1Nob3J0Vmlld3BvcnQsIHNldElzU2hvcnRWaWV3cG9ydF0gPSB1c2VTdGF0ZShcbiAgICBnZXRJc1Nob3J0Vmlld3BvcnQod2luZG93KVxuICApO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgbGV0IHJlc2l6ZU9ic2VydmVyOiBSZXNpemVPYnNlcnZlcjtcblxuICAgIGlmICh0eXBlb2YgUmVzaXplT2JzZXJ2ZXIgIT09IFwidW5kZWZpbmVkXCIgJiYgYmFja2Ryb3BSZWYuY3VycmVudCkge1xuICAgICAgcmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKCkgPT4ge1xuICAgICAgICBzZXRJc1Nob3J0Vmlld3BvcnQoZ2V0SXNTaG9ydFZpZXdwb3J0KHdpbmRvdykpO1xuICAgICAgfSk7XG5cbiAgICAgIHJlc2l6ZU9ic2VydmVyLm9ic2VydmUoYmFja2Ryb3BSZWYuY3VycmVudCk7XG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChyZXNpemVPYnNlcnZlcikge1xuICAgICAgICByZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICB9XG4gICAgfTtcbiAgfSwgW2JhY2tkcm9wUmVmLCB3aW5kb3ddKTtcblxuICBjb25zdCBoYW5kbGVDbG9zZSA9ICgpID0+IHtcbiAgICBvbkFjdGlvbihcImNhbmNlbFwiKTtcbiAgfTtcblxuICBjb25zdCBoYXNJbWFnZSA9IGltYWdlVXJsIHx8IEltYWdlQ29tcG9uZW50O1xuICBjb25zdCBIZWFkaW5nQ29tcG9uZW50ID0gaXNTaG9ydFZpZXdwb3J0ID8gSDMgOiBIMjtcbiAgY29uc3QgaXNJbWFnZVZpc2libGUgPSAhaXNTaG9ydFZpZXdwb3J0ICYmICEhaGFzSW1hZ2U7XG4gIGNvbnN0IGhvcml6b250YWxPZmZzZXRQcm9wcyA9IHsgaXNGdWxsU2NyZWVuLCBpc01heFdpZHRoTGltaXQgfTtcblxuICBjb25zdCBjbG9zZUJ1dHRvbiA9IGlzRGlzbWlzc2libGUgJiYgKFxuICAgIDxTdHlsZWRYQ29udGFpbmVyPlxuICAgICAgPFBpY3RvZ3JhbUJ1dHRvblxuICAgICAgICB2YXJpYW50PVwidGVydGlhcnlcIlxuICAgICAgICBpY29uPVwieFwiXG4gICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgb25DbGljaz17aGFuZGxlQ2xvc2V9XG4gICAgICAgIGFyaWEtbGFiZWw9e2Nsb3NlQnV0dG9uQXJpYUxhYmVsfVxuICAgICAgLz5cbiAgICA8L1N0eWxlZFhDb250YWluZXI+XG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8V3JhcHBlclxuICAgICAgc2tpcFBvcnRhbD17c2tpcFBvcnRhbH1cbiAgICAgIHBvcnRhbENvbnRhaW5lcj17cG9ydGFsQ29udGFpbmVyfVxuICAgICAgYmFja2Ryb3BSZWY9e2JhY2tkcm9wUmVmfVxuICAgID5cbiAgICAgIDxGb2N1c1RyYXBcbiAgICAgICAgcG9ydGFsQ29udGFpbmVyPXtwb3J0YWxDb250YWluZXJ9XG4gICAgICAgIGlzRGlzbWlzc2libGU9e2lzRGlzbWlzc2libGV9XG4gICAgICAgIG9uUG9zdERlYWN0aXZhdGU9e2hhbmRsZUNsb3NlfVxuICAgICAgICBiYWNrZHJvcFJlZj17YmFja2Ryb3BSZWZ9XG4gICAgICAgIG1vZGFsUmVmPXttb2RhbFJlZn1cbiAgICAgID5cbiAgICAgICAgPFN0eWxlZE1vZGFsV3JhcHBlclxuICAgICAgICAgIHJlZj17bW9kYWxSZWZ9XG4gICAgICAgICAgcm9sZT17cm9sZX1cbiAgICAgICAgICBkYXRhLWUyZS10ZXN0LWlkPXtkYXRhRTJlVGVzdElkfVxuICAgICAgICAgIGRhdGEtZHMtaWQ9XCJNb2RhbFwiXG4gICAgICAgICAgaXNGdWxsU2NyZWVuPXtpc0Z1bGxTY3JlZW59XG4gICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICBhcmlhLWxhYmVsPXthcmlhTGFiZWwgfHwgaGVhZGVyfVxuICAgICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9e1xuICAgICAgICAgICAgc3ViSGVhZGVyID8gYXBwZW5kSWQoYXJpYURlc2NyaWJlZEJ5LCBzdWJIZWFkZXJJZCkgOiBhcmlhRGVzY3JpYmVkQnlcbiAgICAgICAgICB9XG4gICAgICAgID5cbiAgICAgICAgICA8Q29udGFpbmVyIGVsZXZhdGlvbj17NH0+XG4gICAgICAgICAgICA8Qm94IHNwYWNlPVwiemVyb1wiIHZTcGFjZT17W21vYmlsZVNpemUsIGRlc2t0b3BTaXplXX0+XG4gICAgICAgICAgICAgIDxTdHlsZWRJbm5lciBpc0Z1bGxTY3JlZW49e2lzRnVsbFNjcmVlbn0gc2l6ZT17c2l6ZX0+XG4gICAgICAgICAgICAgICAgPEhvcml6b250YWxPZmZzZXQgey4uLmhvcml6b250YWxPZmZzZXRQcm9wc30+XG4gICAgICAgICAgICAgICAgICA8Qm94IHNwYWNlPVwiemVyb1wiIGJTcGFjZT1cInNcIj5cbiAgICAgICAgICAgICAgICAgICAgPFN0YWNrIHNwYWNlPXtpc0ltYWdlVmlzaWJsZSA/IFtcInNcIiwgXCJsXCJdIDogXCJ6ZXJvXCJ9PlxuICAgICAgICAgICAgICAgICAgICAgIHtpc0ltYWdlVmlzaWJsZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgKGltYWdlVXJsID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Qm94IHNwYWNlPVwiemVyb1wiIHRTcGFjZT17W1wieGxcIiwgXCJsXCJdfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSW1nIHNyYz17aW1hZ2VVcmx9IGFsdD17aW1hZ2VBbHR9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPEltYWdlQ29tcG9uZW50IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICA8SW5saW5lIGFsaWduSXRlbXM9XCJzcGFjZUJldHdlZW5cIiBub1dyYXA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8U3RhY2sgc3BhY2U9XCJ4eHNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge2xhYmVsSGVhZGVyICYmIDxINiBhcz1cImRpdlwiPntsYWJlbEhlYWRlcn08L0g2Pn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0YWNrIHNwYWNlPVwiemVyb1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxIZWFkaW5nQ29tcG9uZW50IGFzPVwiaDFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtoZWFkZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9IZWFkaW5nQ29tcG9uZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtzdWJIZWFkZXIgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEg0IGFzPVwiaDJcIiBjb2xvcj1cInRlcnRpYXJ5XCIgaWQ9e3N1YkhlYWRlcklkfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3N1YkhlYWRlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSDQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgICAgICAgICB7Y2xvc2VCdXR0b259XG4gICAgICAgICAgICAgICAgICAgICAgPC9JbmxpbmU+XG4gICAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICA8L0hvcml6b250YWxPZmZzZXQ+XG5cbiAgICAgICAgICAgICAgICA8U3R5bGVkQm9keVxuICAgICAgICAgICAgICAgICAgcmVmPXtzY3JvbGxhYmxlUmVmfVxuICAgICAgICAgICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICAgICAgICAgIGlzRnVsbFNjcmVlbj17aXNGdWxsU2NyZWVufVxuICAgICAgICAgICAgICAgICAgYm9yZGVyQm90dG9tPXtoYXNTY3JvbGwgJiYgIWlzU2Nyb2xsQm90dG9tfVxuICAgICAgICAgICAgICAgICAgYm9yZGVyVG9wPXtoYXNTY3JvbGwgJiYgIWlzU2Nyb2xsVG9wfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxCb3ggc3BhY2U9XCJ6ZXJvXCIgdlNwYWNlPVwieHh4c1wiIGhlaWdodD1cIjEwMCVcIj5cbiAgICAgICAgICAgICAgICAgICAgPEhvcml6b250YWxPZmZzZXQgey4uLmhvcml6b250YWxPZmZzZXRQcm9wc30gaGVpZ2h0PVwiMTAwJVwiPlxuICAgICAgICAgICAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICAgICAgICAgICAgPC9Ib3Jpem9udGFsT2Zmc2V0PlxuICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRCb2R5PlxuXG4gICAgICAgICAgICAgICAgeyhhY3Rpb25CdXR0b24gfHwgY2FuY2VsQnV0dG9uTGFiZWwgfHwgc2Vjb25kYXJ5QnV0dG9uKSAmJiAoXG4gICAgICAgICAgICAgICAgICA8SG9yaXpvbnRhbE9mZnNldCB7Li4uaG9yaXpvbnRhbE9mZnNldFByb3BzfT5cbiAgICAgICAgICAgICAgICAgICAgPEZvb3RlciBpc1Nob3J0Vmlld3BvcnQ9e2lzU2hvcnRWaWV3cG9ydH0+XG4gICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvbkdyb3VwXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb25CdXR0b249e2FjdGlvbkJ1dHRvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgIHNlY29uZGFyeUJ1dHRvbj17c2Vjb25kYXJ5QnV0dG9ufVxuICAgICAgICAgICAgICAgICAgICAgICAgY2FuY2VsQnV0dG9uVGV4dD17Y2FuY2VsQnV0dG9uTGFiZWx9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkJ1dHRvbkNsaWNrPXtvbkFjdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8L0Zvb3Rlcj5cbiAgICAgICAgICAgICAgICAgIDwvSG9yaXpvbnRhbE9mZnNldD5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8L1N0eWxlZElubmVyPlxuICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgIDwvU3R5bGVkTW9kYWxXcmFwcGVyPlxuICAgICAgPC9Gb2N1c1RyYXA+XG4gICAgPC9XcmFwcGVyPlxuICApO1xufVxuXG5Nb2RhbC5TdGFjayA9IE1vZGFsU3RhY2s7XG5Nb2RhbC5UZXh0ID0gTW9kYWxUZXh0O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXFPeUIifQ== */"),Footer=({children,alignItems=["stretch","right"],isShortViewport})=>_react.default.createElement(_Box.Box,{space:"zero",tSpace:isShortViewport?"m":"l"},_react.default.createElement(_Stack.Stack,{alignItems:alignItems},children)),Wrapper=({skipPortal,children,portalContainer,backdropRef})=>skipPortal?_react.default.createElement(_react.default.Fragment,null,children):_react.default.createElement(_ModalContext.ModalContext.Provider,{value:!0},_react.default.createElement(_Portal.Portal,{portalContainer:portalContainer},_react.default.createElement(StyledBackdrop,{ref:backdropRef},children)));function FocusTrap({onPostDeactivate,isDismissible,portalContainer,children,backdropRef,modalRef}){let portalContainerElement=(0,_Portal.usePortalContainerElement)(portalContainer);return _react.default.createElement(_FocusTrapWrapper.FocusTrapWrapper,{active:!0,focusTrapOptions:{allowOutsideClick:!0,clickOutsideDeactivates:evt=>(!portalContainerElement.contains(evt.target)||evt.target===backdropRef.current)&&isDismissible,escapeDeactivates:isDismissible,preventScroll:!0,fallbackFocus:modalRef.current,onPostDeactivate}},children)}const HorizontalOffset=({children,isFullScreen,isMaxWidthLimit,height})=>_react.default.createElement(_Box.Box,{space:["m","xl"],vSpace:"zero",height:height},isFullScreen&&isMaxWidthLimit?_react.default.createElement(StyledMaxWidth,null,children):children);function getIsShortViewport(window){return void 0!==window&&window.innerHeight<420}function Modal({header,subHeader,labelHeader,children,imageUrl,ImageComponent,secondaryButton,cancelButtonLabel,isDismissible=!0,isFullScreen,isMaxWidthLimit=!0,actionButton,role="dialog",onAction,size="m",privateProps:{skipPortal}={skipPortal:!1},portalContainer,closeButtonAriaLabel="Dismiss Dialog","aria-label":ariaLabel,"aria-describedby":ariaDescribedBy,"data-e2e-test-id":dataE2eTestId,imageAlt}){let modalRef=(0,_react.useRef)(null),backdropRef=(0,_react.useRef)(null),subHeaderId=(0,_react.useId)(),window=(0,_useWindow.useWindow)(),{scrollableRef,isScrollBottom,isScrollTop,hasScroll}=(0,_useScrollDetection.useScrollDetection)(),[isShortViewport,setIsShortViewport]=(0,_react.useState)(getIsShortViewport(window));(0,_react.useEffect)(()=>{let resizeObserver;return"undefined"!=typeof ResizeObserver&&backdropRef.current&&(resizeObserver=new ResizeObserver(()=>{setIsShortViewport(getIsShortViewport(window))})).observe(backdropRef.current),()=>{resizeObserver&&resizeObserver.disconnect()}},[backdropRef,window]);let handleClose=()=>{onAction("cancel")},hasImage=imageUrl||ImageComponent,HeadingComponent=isShortViewport?_Header.H3:_Header.H2,isImageVisible=!isShortViewport&&!!hasImage,horizontalOffsetProps={isFullScreen,isMaxWidthLimit},closeButton=isDismissible&&_react.default.createElement(StyledXContainer,null,_react.default.createElement(_PictogramButton.PictogramButton,{variant:"tertiary",icon:"x",size:"s",onClick:handleClose,"aria-label":closeButtonAriaLabel}));return _react.default.createElement(Wrapper,{skipPortal:skipPortal,portalContainer:portalContainer,backdropRef:backdropRef},_react.default.createElement(FocusTrap,{portalContainer:portalContainer,isDismissible:isDismissible,onPostDeactivate:handleClose,backdropRef:backdropRef,modalRef:modalRef},_react.default.createElement(StyledModalWrapper,{ref:modalRef,role:role,"data-e2e-test-id":dataE2eTestId,"data-ds-id":"Modal",isFullScreen:isFullScreen,size:size,"aria-label":ariaLabel||header,"aria-describedby":subHeader?(0,_appendId.appendId)(ariaDescribedBy,subHeaderId):ariaDescribedBy},_react.default.createElement(_Container.Container,{elevation:4},_react.default.createElement(_Box.Box,{space:"zero",vSpace:["m","xl"]},_react.default.createElement(StyledInner,{isFullScreen:isFullScreen,size:size},_react.default.createElement(HorizontalOffset,horizontalOffsetProps,_react.default.createElement(_Box.Box,{space:"zero",bSpace:"s"},_react.default.createElement(_Stack.Stack,{space:isImageVisible?["s","l"]:"zero"},isImageVisible&&(imageUrl?_react.default.createElement(_Box.Box,{space:"zero",tSpace:["xl","l"]},_react.default.createElement(StyledImg,{src:imageUrl,alt:imageAlt})):_react.default.createElement(ImageComponent,null)),_react.default.createElement(_Inline.Inline,{alignItems:"spaceBetween",noWrap:!0},_react.default.createElement(_Stack.Stack,{space:"xxs"},labelHeader&&_react.default.createElement(_Header.H6,{as:"div"},labelHeader),_react.default.createElement(_Stack.Stack,{space:"zero"},_react.default.createElement(HeadingComponent,{as:"h1"},header),subHeader&&_react.default.createElement(_Header.H4,{as:"h2",color:"tertiary",id:subHeaderId},subHeader))),closeButton)))),_react.default.createElement(StyledBody,{ref:scrollableRef,size:size,isFullScreen:isFullScreen,borderBottom:hasScroll&&!isScrollBottom,borderTop:hasScroll&&!isScrollTop},_react.default.createElement(_Box.Box,{space:"zero",vSpace:"xxxs",height:"100%"},_react.default.createElement(HorizontalOffset,{...horizontalOffsetProps,height:"100%"},children))),(actionButton||cancelButtonLabel||secondaryButton)&&_react.default.createElement(HorizontalOffset,horizontalOffsetProps,_react.default.createElement(Footer,{isShortViewport:isShortViewport},_react.default.createElement(_ButtonGroup.ButtonGroup,{actionButton:actionButton,secondaryButton:secondaryButton,cancelButtonText:cancelButtonLabel,onButtonClick:onAction})))))))))}Modal.Stack=({children,...rest})=>_react.default.createElement(_Stack.Stack,{...rest,space:"m"},children),Modal.Text=({children,...rest})=>_react.default.createElement(_Text.Text,{...rest,size:"m",color:"tertiary"},children);