@amboss/design-system 3.19.0 → 3.19.2
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.
- package/build/cjs/components/PromptInput/PromptInput.d.ts +5 -6
- package/build/cjs/components/PromptInput/PromptInput.js +1 -1
- package/build/cjs/components/Tabs/Tabs.js +1 -1
- package/build/esm/components/PromptInput/PromptInput.d.ts +5 -6
- package/build/esm/components/PromptInput/PromptInput.js +1 -1
- package/build/esm/components/Tabs/Tabs.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"PromptInput",{enumerable:!0,get:function(){return PromptInput}});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")),_PromptTextArea=require("./PromptTextArea"),_Container=require("../Container"),_AutocompleteList=require("./AutocompleteList"),_CategoryList=require("./CategoryList"),_Text=require("../Typography/Text"),_Button=require("../Button/Button"),_Inline=require("../Inline/Inline"),_RoundButton=require("../RoundButton/RoundButton"),_PictogramButton=require("../PictogramButton/PictogramButton"),_Stack=require("../Stack/Stack"),_useOutsideClick=require("../../shared/useOutsideClick"),CustomContainer=(0,_styled.default)(_Container.Container,{target:"e1rdcmtk0",label:"CustomContainer"})(({theme,hideBorder})=>({border:`1px solid ${theme.values.color.border.primary.default}`,...hideBorder&&{borderColor:"transparent"},cursor:"text","&:has(textarea:focus-visible)":{outlineWidth:1,outlineStyle:"solid",outlineOffset:-1,outlineColor:theme.values.color.border.accent.default,boxShadow:theme.values.shadow.focusRing,"@media (-webkit-min-device-pixel-ratio:0)":{outlineColor:theme.values.color.border.accent.default}}}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUHJvbXB0SW5wdXQvUHJvbXB0SW5wdXQudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Qcm9tcHRJbnB1dC9Qcm9tcHRJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBSZWFjdEVsZW1lbnQsXG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlZk9iamVjdCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIFN5bnRoZXRpY0V2ZW50LFxuICBNb3VzZUV2ZW50LFxufSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZVJlZixcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG4gIGZvcndhcmRSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgdHlwZSB7IFByb21wdFRleHRBcmVhUHJvcHMgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHsgUHJvbXB0VGV4dEFyZWEgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHsgQ29udGFpbmVyIH0gZnJvbSBcIi4uL0NvbnRhaW5lclwiO1xuaW1wb3J0IHR5cGUgeyBBdXRvY29tcGxldGVMaXN0UHJvcHMgfSBmcm9tIFwiLi9BdXRvY29tcGxldGVMaXN0XCI7XG5pbXBvcnQgeyBBdXRvY29tcGxldGVMaXN0IH0gZnJvbSBcIi4vQXV0b2NvbXBsZXRlTGlzdFwiO1xuaW1wb3J0IHtcbiAgZ2V0TGlzdEl0ZW1JZCxcbiAgdHlwZSBGbGF0dGVuZWRMaXN0SXRlbSxcbiAgdHlwZSBMaXN0SXRlbVZhbHVlLFxufSBmcm9tIFwiLi9DYXRlZ29yeUxpc3RcIjtcbmltcG9ydCB7IFRleHQgfSBmcm9tIFwiLi4vVHlwb2dyYXBoeS9UZXh0XCI7XG5pbXBvcnQgeyBCdXR0b24sIHR5cGUgQnV0dG9uUHJvcHMgfSBmcm9tIFwiLi4vQnV0dG9uL0J1dHRvblwiO1xuaW1wb3J0IHR5cGUge1xuICBQb2x5bW9ycGhpY1JlZixcbiAgUG9seW1vcnBoaWNDb21wb25lbnRQcm9wc1dpdGhSZWYsXG59IGZyb20gXCIuLi8uLi90eXBlc1wiO1xuaW1wb3J0IHsgSW5saW5lIH0gZnJvbSBcIi4uL0lubGluZS9JbmxpbmVcIjtcbmltcG9ydCB0eXBlIHsgUm91bmRCdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9Sb3VuZEJ1dHRvbi9Sb3VuZEJ1dHRvblwiO1xuaW1wb3J0IHsgUm91bmRCdXR0b24gfSBmcm9tIFwiLi4vUm91bmRCdXR0b24vUm91bmRCdXR0b25cIjtcbmltcG9ydCB0eXBlIHsgUGljdG9ncmFtQnV0dG9uUHJvcHMgfSBmcm9tIFwiLi4vUGljdG9ncmFtQnV0dG9uL1BpY3RvZ3JhbUJ1dHRvblwiO1xuaW1wb3J0IHsgUGljdG9ncmFtQnV0dG9uIH0gZnJvbSBcIi4uL1BpY3RvZ3JhbUJ1dHRvbi9QaWN0b2dyYW1CdXR0b25cIjtcbmltcG9ydCB7IFN0YWNrIH0gZnJvbSBcIi4uL1N0YWNrL1N0YWNrXCI7XG5pbXBvcnQgeyB1c2VPdXRzaWRlQ2xpY2sgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL3VzZU91dHNpZGVDbGlja1wiO1xuXG5jb25zdCBDdXN0b21Db250YWluZXIgPSBzdHlsZWQoQ29udGFpbmVyKTx7IGhpZGVCb3JkZXI6IGJvb2xlYW4gfT4oXG4gICh7IHRoZW1lLCBoaWRlQm9yZGVyIH0pID0+ICh7XG4gICAgYm9yZGVyOiBgMXB4IHNvbGlkICR7dGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5wcmltYXJ5LmRlZmF1bHR9YCxcbiAgICAuLi4oaGlkZUJvcmRlciAmJiB7XG4gICAgICBib3JkZXJDb2xvcjogXCJ0cmFuc3BhcmVudFwiLFxuICAgIH0pLFxuICAgIGN1cnNvcjogXCJ0ZXh0XCIsXG4gICAgW2AmOmhhcyh0ZXh0YXJlYTpmb2N1cy12aXNpYmxlKWBdOiB7XG4gICAgICBvdXRsaW5lV2lkdGg6IDEsXG4gICAgICBvdXRsaW5lU3R5bGU6IFwic29saWRcIixcbiAgICAgIG91dGxpbmVPZmZzZXQ6IC0xLFxuICAgICAgb3V0bGluZUNvbG9yOiB0aGVtZS52YWx1ZXMuY29sb3IuYm9yZGVyLmFjY2VudC5kZWZhdWx0LFxuICAgICAgYm94U2hhZG93OiB0aGVtZS52YWx1ZXMuc2hhZG93LmZvY3VzUmluZyxcblxuICAgICAgXCJAbWVkaWEgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzowKVwiOiB7XG4gICAgICAgIG91dGxpbmVDb2xvcjogdGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5hY2NlbnQuZGVmYXVsdCxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZFRleHRBcmVhQ29udGFpbmVyID0gc3R5bGVkLmRpdih7XG4gIGJvcmRlclJhZGl1czogXCJpbmhlcml0XCIsXG4gIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG59KTtcblxudHlwZSBTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyUHJvcHMgPSBQaWNrPFxuICBQcm9tcHRJbnB1dFByb3BzLFxuICBcImlzTmF2QmFyVmFyaWFudFwiXG4+O1xuXG5jb25zdCBTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyID1cbiAgc3R5bGVkLmRpdjxTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyUHJvcHM+KFxuICAgICh7IHRoZW1lLCBpc05hdkJhclZhcmlhbnQgfSkgPT4gKHtcbiAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICB0b3A6IGlzTmF2QmFyVmFyaWFudFxuICAgICAgICA/IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHhzXG4gICAgICAgIDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5tLFxuICAgICAgcmlnaHQ6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubSxcbiAgICAgIHVzZXJTZWxlY3Q6IFwibm9uZVwiLFxuICAgICAgcG9pbnRlckV2ZW50czogXCJub25lXCIsXG4gICAgfSlcbiAgKTtcblxudHlwZSBTdHlsZWRDbGVhckJ1dHRvblByb3BzID0gUGljdG9ncmFtQnV0dG9uUHJvcHMgJlxuICBQaWNrPFByb21wdElucHV0UHJvcHMsIFwiaXNOYXZCYXJWYXJpYW50XCI+O1xuXG5jb25zdCBTdHlsZWRDbGVhckJ1dHRvbiA9IHN0eWxlZChQaWN0b2dyYW1CdXR0b24pPFN0eWxlZENsZWFyQnV0dG9uUHJvcHM+KFxuICAoeyB0aGVtZSwgaXNOYXZCYXJWYXJpYW50IH0pID0+ICh7XG4gICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICByaWdodDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zLFxuICAgIHRvcDogaXNOYXZCYXJWYXJpYW50ID8gMCA6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcucyxcbiAgfSlcbik7XG5cbi8vIFVzaW5nIGZsb2F0IGluIG9yZGVyIHRvIGF2b2lkIHRoZSBpbnZpc2libGUgYXJlYSBiZXR3ZWVuIHRoZSBzbG90c1xuLy8gdGhhdCBwcmV2ZW50cyB0aGUgdGV4dGFyZWEgZnJvbSBiZWluZyBmb2N1c2VkXG5jb25zdCBTdHlsZWRTbG90ID0gc3R5bGVkLmRpdjx7IHBvc2l0aW9uOiBcImxlZnRcIiB8IFwicmlnaHRcIiB9PihcbiAgKHsgcG9zaXRpb24sIHRoZW1lIH0pID0+ICh7XG4gICAgZmxvYXQ6IHBvc2l0aW9uLFxuICAgIG1hcmdpbjogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5tLFxuICAgIGN1cnNvcjogXCJkZWZhdWx0XCIsXG4gIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRDbGVhciA9IHN0eWxlZC5kaXYoe1xuICBjbGVhcjogXCJib3RoXCIsXG59KTtcblxuZXhwb3J0IHR5cGUgUHJvbXB0SW5wdXRQcm9wcyA9IHtcbiAgXCJkYXRhLWUyZS10ZXN0LWlkXCI/OiBzdHJpbmc7XG4gIC8qKiBUb29sYmFyIGVsZW1lbnRzIGJlbG93IHRleHQgYXJlYSAqL1xuICBib3R0b21Ub29sYmFyPzoge1xuICAgIGxlZnRDb250ZW50PzogUmVhY3RFbGVtZW50O1xuICAgIHJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgfTtcbiAgLyoqIEN1cnJlbnRseSBzaG93cyBzZW5kIGJ1dHRvbiBwcm9jZXNzaW5nIHN0YXRlICAqL1xuICBpc1Byb2Nlc3Npbmc/OiBib29sZWFuO1xuICBzZW5kQnV0dG9uUHJvcHM/OiBPbWl0PFJvdW5kQnV0dG9uUHJvcHMsIFwiaWNvblwiIHwgXCJ2YXJpYW50XCI+ICYge1xuICAgIGljb24/OiBcImFycm93LXVwXCIgfCBcInNlYXJjaFwiIHwgXCJhcnJvdy1yaWdodFwiO1xuICB9O1xuICBjbGVhckJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgaGludD86IFJlYWN0RWxlbWVudDtcbiAgLyoqIFNob3dzIGluIHRoZSBjbGVhciBidXR0b24gc3BhY2UgaW4gZW1wdHkgc3RhdGUgKi9cbiAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgb25DbGVhcjogKCkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCB3aGVuIHVzZXIgc2VsZWN0cyAob3IgcmVqZWN0cykgYSBsaXN0IGl0ZW0gZnJvbSBhdXRvY29tcGxldGUgbGlzdCAqL1xuICBvbkNvbXBsZXRlPzogKHtcbiAgICB2YWx1ZSxcbiAgICBjYXRlZ29yeSxcbiAgICBldnQsXG4gICAgaW5kZXgsXG4gIH06IHtcbiAgICB2YWx1ZTogTGlzdEl0ZW1WYWx1ZTtcbiAgICBjYXRlZ29yeT86IHN0cmluZztcbiAgICBldnQ/OiBTeW50aGV0aWNFdmVudDtcbiAgICBpbmRleD86IG51bWJlcjtcbiAgfSkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCBvbiBFbnRlciBrZXkgdG8gc3VibWl0IHRoZSBmb3JtICAqL1xuICBvbkVudGVyS2V5OiAoKSA9PiB2b2lkO1xufSAmIE9taXQ8XG4gIFByb21wdFRleHRBcmVhUHJvcHMsXG4gIFwiaXNDb2xsYXBzZWRcIiB8IFwiaXNBdXRvY29tcGxldGVMaXN0T3BlblwiIHwgXCJzZWxlY3RlZExpc3RJdGVtXCJcbj4gJlxuICBQaWNrPFxuICAgIEF1dG9jb21wbGV0ZUxpc3RQcm9wcyxcbiAgICBcImF1dG9jb21wbGV0ZUxpc3RJdGVtc1wiIHwgXCJhdXRvY29tcGxldGVMaXN0Rm9vdGVyXCIgfCBcInBvcnRhbENvbnRhaW5lclwiXG4gID47XG5cbmNvbnN0IFByb21wdElucHV0Q29tcG9uZW50ID0gZm9yd2FyZFJlZihcbiAgKFxuICAgIHtcbiAgICAgIFwiZGF0YS1lMmUtdGVzdC1pZFwiOiBkYXRhRTJlVGVzdElkLFxuICAgICAgbmFtZSxcbiAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcyA9IFtdLFxuICAgICAgdmFsdWUsXG4gICAgICBib3R0b21Ub29sYmFyID0geyBsZWZ0Q29udGVudDogbnVsbCwgcmlnaHRDb250ZW50OiBudWxsIH0sXG4gICAgICBpc1Byb2Nlc3NpbmcsXG4gICAgICBzZW5kQnV0dG9uUHJvcHMgPSB7XG4gICAgICAgIHR5cGU6IFwic3VibWl0XCIsXG4gICAgICAgIGljb246IFwiYXJyb3ctdXBcIixcbiAgICAgIH0sXG4gICAgICBhdXRvY29tcGxldGVMaXN0Rm9vdGVyLFxuICAgICAgY2xlYXJCdXR0b25BcmlhTGFiZWwgPSBcIkNsZWFyIGlucHV0XCIsXG4gICAgICBoaW50LFxuICAgICAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudCxcbiAgICAgIGlzTmF2QmFyVmFyaWFudCxcbiAgICAgIHBvcnRhbENvbnRhaW5lcixcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgb25Db21wbGV0ZSxcbiAgICAgIG9uQ2xlYXIsXG4gICAgICBvbkVudGVyS2V5LFxuICAgICAgb25Gb2N1cyxcbiAgICAgIG9uQmx1cixcbiAgICAgIG9uS2V5RG93bixcbiAgICAgIC4uLnJlc3RcbiAgICB9OiBQcm9tcHRJbnB1dFByb3BzLFxuICAgIHJlZjogUmVmT2JqZWN0PEhUTUxUZXh0QXJlYUVsZW1lbnQ+XG4gICk6IFJlYWN0RWxlbWVudCA9PiB7XG4gICAgY29uc3QgY29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCB0ZXh0QXJlYUNvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgaW50ZXJuYWxSZWYgPSB1c2VSZWY8SFRNTFRleHRBcmVhRWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgW3NlbGVjdGVkSW5kZXgsIHNldFNlbGVjdGVkSW5kZXhdID0gdXNlU3RhdGUoLTEpO1xuICAgIGNvbnN0IFtpc0NvbGxhcHNlZCwgc2V0SXNDb2xsYXBzZWRdID0gdXNlU3RhdGUoaXNOYXZCYXJWYXJpYW50KTtcbiAgICBjb25zdCB1c2VyVHlwZWRRdWVyeSA9IHVzZVJlZihcIlwiKTtcbiAgICBjb25zdCBbaXNBdXRvY29tcGxldGVMaXN0T3Blbiwgc2V0SXNBdXRvY29tcGxldGVMaXN0T3Blbl0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgdGV4dEFyZWFSZWYgPSByZWYgfHwgaW50ZXJuYWxSZWY7XG5cbiAgICB1c2VPdXRzaWRlQ2xpY2soXG4gICAgICBjb250YWluZXJSZWYsXG4gICAgICAoZXZ0KSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAhY29udGFpbmVyUmVmLmN1cnJlbnQuY29udGFpbnMoZXZ0LnRhcmdldCBhcyBOb2RlKSAmJlxuICAgICAgICAgICFwb3J0YWxDb250YWluZXI/LmNvbnRhaW5zKGV2dC50YXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICBldnQudGFyZ2V0ICE9PSBudWxsXG4gICAgICAgICkge1xuICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgIWlzQ29sbGFwc2VkICYmIGlzTmF2QmFyVmFyaWFudFxuICAgICk7XG5cbiAgICBjb25zdCBjbG9zZUF1dG9jb21wbGV0ZUxpc3QgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBzZXRJc0F1dG9jb21wbGV0ZUxpc3RPcGVuKGZhbHNlKTtcbiAgICAgIHNldFNlbGVjdGVkSW5kZXgoLTEpO1xuICAgIH0sIFtdKTtcblxuICAgIGNvbnN0IG9wZW5BdXRvY29tcGxldGVMaXN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgaWYgKGF1dG9jb21wbGV0ZUxpc3RJdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgc2V0SXNBdXRvY29tcGxldGVMaXN0T3Blbih0cnVlKTtcbiAgICAgICAgc2V0U2VsZWN0ZWRJbmRleCgtMSk7XG4gICAgICB9XG4gICAgfSwgW2F1dG9jb21wbGV0ZUxpc3RJdGVtc10pO1xuXG4gICAgY29uc3QgYWNjZXB0VGV4dFNlbGVjdGlvbiA9ICgpID0+IHtcbiAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgPSB2YWx1ZTtcbiAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQuc2V0U2VsZWN0aW9uUmFuZ2UodmFsdWUubGVuZ3RoLCB2YWx1ZS5sZW5ndGgpO1xuICAgIH07XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKGF1dG9jb21wbGV0ZUxpc3RJdGVtcy5sZW5ndGggJiYgIWlzQ29sbGFwc2VkKSB7XG4gICAgICAgIG9wZW5BdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIH1cbiAgICB9LCBbXG4gICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXMsXG4gICAgICBvcGVuQXV0b2NvbXBsZXRlTGlzdCxcbiAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCxcbiAgICAgIGlzQ29sbGFwc2VkLFxuICAgIF0pO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZSAhPT0gdXNlclR5cGVkUXVlcnkuY3VycmVudCAmJiBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuKSB7XG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQuc2V0U2VsZWN0aW9uUmFuZ2UoXG4gICAgICAgICAgdXNlclR5cGVkUXVlcnkuY3VycmVudC5sZW5ndGgsXG4gICAgICAgICAgdmFsdWUubGVuZ3RoXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSwgW3ZhbHVlLCB0ZXh0QXJlYVJlZiwgaXNBdXRvY29tcGxldGVMaXN0T3Blbl0pO1xuXG4gICAgLy8gRGV0ZXJtaW5lIHdoZW4gZm9jdXMgbGVhdmVzIHRoZSBjb250YWluZXIgdG8gY29sbGFwc2UgaXRcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgbGV0IGhhbmRsZXI6IChldnQ6IEZvY3VzRXZlbnQpID0+IHZvaWQ7XG4gICAgICBjb25zdCBjb250YWluZXIgPSBjb250YWluZXJSZWYuY3VycmVudDtcblxuICAgICAgaWYgKGlzTmF2QmFyVmFyaWFudCAmJiBjb250YWluZXIpIHtcbiAgICAgICAgaGFuZGxlciA9IChldnQ6IEZvY3VzRXZlbnQpID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAhY29udGFpbmVyUmVmLmN1cnJlbnQuY29udGFpbnMoZXZ0LnJlbGF0ZWRUYXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICAgICFwb3J0YWxDb250YWluZXI/LmNvbnRhaW5zKGV2dC5yZWxhdGVkVGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgICBldnQucmVsYXRlZFRhcmdldCAhPT0gbnVsbFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImZvY3Vzb3V0XCIsIGhhbmRsZXIpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBpZiAoY29udGFpbmVyKSB7XG4gICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJmb2N1c291dFwiLCBoYW5kbGVyKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9LCBbaXNOYXZCYXJWYXJpYW50LCBjb250YWluZXJSZWYsIHBvcnRhbENvbnRhaW5lcl0pO1xuXG4gICAgY29uc3QgZmxhdHRlbmVkTGlzdEl0ZW1zID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBjb25zdCBsaXN0OiBGbGF0dGVuZWRMaXN0SXRlbVtdID0gW107XG5cbiAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcy5mb3JFYWNoKChsaXN0SXRlbSkgPT4ge1xuICAgICAgICBsaXN0SXRlbS5pdGVtcy5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgIGxpc3QucHVzaCh7XG4gICAgICAgICAgICBjYXRlZ29yeTogbGlzdEl0ZW0uY2F0ZWdvcnksXG4gICAgICAgICAgICBpbmRleEluQ2F0ZWdvcnk6IGluZGV4LFxuICAgICAgICAgICAgdmFsdWU6IGl0ZW0udmFsdWUsXG4gICAgICAgICAgICBpZDogZ2V0TGlzdEl0ZW1JZChuYW1lLCBsaXN0SXRlbS5jYXRlZ29yeSwgaW5kZXgpLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGxpc3Q7XG4gICAgfSwgW2F1dG9jb21wbGV0ZUxpc3RJdGVtcywgbmFtZV0pO1xuXG4gICAgY29uc3QgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZSA9IChpbmRleDogbnVtYmVyLCBldnQ/OiBTeW50aGV0aWNFdmVudCkgPT4ge1xuICAgICAgc2V0U2VsZWN0ZWRJbmRleChpbmRleCk7XG4gICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgIGNvbnN0IHsgY2F0ZWdvcnksIHZhbHVlOiBpdGVtVmFsdWUgfSA9IGZsYXR0ZW5lZExpc3RJdGVtc1tpbmRleF07XG5cbiAgICAgICAgb25Db21wbGV0ZSh7IHZhbHVlOiBpdGVtVmFsdWUsIGNhdGVnb3J5LCBldnQsIGluZGV4IH0pO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVMaXN0SXRlbUNsaWNrID0gKFxuICAgICAgY2F0ZWdvcnk6IHN0cmluZyxcbiAgICAgIGluZGV4SW5DYXRlZ29yeTogbnVtYmVyLFxuICAgICAgZXZ0PzogTW91c2VFdmVudFxuICAgICkgPT4ge1xuICAgICAgY29uc3QgaW5kZXggPSBmbGF0dGVuZWRMaXN0SXRlbXMuZmluZEluZGV4KFxuICAgICAgICAobGlzdEl0ZW0pID0+XG4gICAgICAgICAgbGlzdEl0ZW0uY2F0ZWdvcnkgPT09IGNhdGVnb3J5ICYmXG4gICAgICAgICAgbGlzdEl0ZW0uaW5kZXhJbkNhdGVnb3J5ID09PSBpbmRleEluQ2F0ZWdvcnlcbiAgICAgICk7XG5cbiAgICAgIGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2UoaW5kZXgsIGV2dCk7XG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUtleURvd246IEtleWJvYXJkRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgaWYgKGlzQXV0b2NvbXBsZXRlTGlzdE9wZW4pIHtcbiAgICAgICAgc3dpdGNoIChldnQua2V5KSB7XG4gICAgICAgICAgY2FzZSBcIkVzY2FwZVwiOlxuICAgICAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICAgICAgICBvbkNvbXBsZXRlKHsgdmFsdWU6IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQsIGV2dCB9KTtcbiAgICAgICAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiRW50ZXJcIjpcbiAgICAgICAgICAgIGlmICghZXZ0LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgICAgICAgICAgYWNjZXB0VGV4dFNlbGVjdGlvbigpO1xuXG4gICAgICAgICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgIG9uRW50ZXJLZXk/LigpO1xuICAgICAgICAgICAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIiBcIjpcbiAgICAgICAgICAgIGFjY2VwdFRleHRTZWxlY3Rpb24oKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJBcnJvd1VwXCI6XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZShzZWxlY3RlZEluZGV4IC0gMSwgZXZ0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJBcnJvd0Rvd25cIjpcbiAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaWYgKHNlbGVjdGVkSW5kZXggPCBmbGF0dGVuZWRMaXN0SXRlbXMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlKHNlbGVjdGVkSW5kZXggKyAxLCBldnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3dpdGNoIChldnQua2V5KSB7XG4gICAgICAgICAgY2FzZSBcIkVzY2FwZVwiOlxuICAgICAgICAgICAgb25DbGVhcj8uKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiRW50ZXJcIjpcbiAgICAgICAgICAgIGlmICghZXZ0LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBvbkVudGVyS2V5Py4oKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIG9uS2V5RG93bj8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUNoYW5nZTogQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgdXNlclR5cGVkUXVlcnkuY3VycmVudCA9IGV2dC50YXJnZXQudmFsdWU7XG4gICAgICBvbkNoYW5nZShldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVGb2N1czogRm9jdXNFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBzZXRJc0NvbGxhcHNlZChmYWxzZSk7XG4gICAgICBvbkZvY3VzPy4oZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlQmx1cjogRm9jdXNFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBpZiAodmFsdWUgIT09IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQpIHtcbiAgICAgICAgb25Db21wbGV0ZT8uKHsgdmFsdWU6IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQsIGV2dCB9KTtcbiAgICAgIH1cbiAgICAgIG9uQmx1cj8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZVNlbmRCdXR0b25DbGljayA9IChldnQ6IE1vdXNlRXZlbnQ8SFRNTEJ1dHRvbkVsZW1lbnQ+KSA9PiB7XG4gICAgICBzZW5kQnV0dG9uUHJvcHMub25DbGljaz8uKGV2dCk7XG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZVByZXZlbnRGb2N1cyA9IChldnQ6IFJlYWN0LlBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgLy8gUHJldmVudCB0aGUgdGV4dGFyZWEgZnJvbSBiZWluZyB1bmZvY3VzZWRcbiAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVPbkNvbnRhaW5lclBvaW50ZXJEb3duID0gKGV2dDogUmVhY3QuUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAvLyBGb2N1cyB0ZXh0YXJlYSB3aGVuIGNsaWNraW5nIG9uIHRoZSBjb250YWluZXIgb25seVxuICAgICAgaWYgKGV2dC50YXJnZXQgPT09IGV2dC5jdXJyZW50VGFyZ2V0KSB7XG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBzZWxlY3RlZExpc3RJdGVtID1cbiAgICAgIHNlbGVjdGVkSW5kZXggIT09IC0xID8gZmxhdHRlbmVkTGlzdEl0ZW1zW3NlbGVjdGVkSW5kZXhdIDogbnVsbDtcblxuICAgIGNvbnN0IGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRFbG0gPSBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50ID8gKFxuICAgICAgPFN0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXJcbiAgICAgICAgaXNOYXZCYXJWYXJpYW50PXtpc05hdkJhclZhcmlhbnR9XG4gICAgICA+XG4gICAgICAgIDxUZXh0IGNvbG9yPVwidGVydGlhcnlcIj57ZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudH08L1RleHQ+XG4gICAgICA8L1N0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXI+XG4gICAgKSA6IG51bGw7XG5cbiAgICBjb25zdCBjbGVhckJ1dHRvbkVsbSA9IHZhbHVlID8gKFxuICAgICAgPFN0eWxlZENsZWFyQnV0dG9uXG4gICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgaWNvbj1cIngtY2lyY2xlLWZpbGxlZFwiXG4gICAgICAgIGFyaWEtbGFiZWw9e2NsZWFyQnV0dG9uQXJpYUxhYmVsfVxuICAgICAgICBpc05hdkJhclZhcmlhbnQ9e2lzTmF2QmFyVmFyaWFudH1cbiAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlUHJldmVudEZvY3VzfVxuICAgICAgICBvbkNsaWNrPXtvbkNsZWFyfVxuICAgICAgLz5cbiAgICApIDogKFxuICAgICAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudEVsbVxuICAgICk7XG5cbiAgICBjb25zdCBoaW50RWxtID0gISFoaW50ICYmIChcbiAgICAgIDxJbmxpbmUgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICA8VGV4dCBzaXplPVwic1wiIGNvbG9yPVwidGVydGlhcnlcIj5cbiAgICAgICAgICB7aGludH1cbiAgICAgICAgPC9UZXh0PlxuICAgICAgPC9JbmxpbmU+XG4gICAgKTtcblxuICAgIGNvbnN0IGJvdHRvbVRvb2xiYXJFbG0gPSAhaXNDb2xsYXBzZWQgJiYgKFxuICAgICAgPD5cbiAgICAgICAgPFN0eWxlZFNsb3QgcG9zaXRpb249XCJsZWZ0XCI+e2JvdHRvbVRvb2xiYXIubGVmdENvbnRlbnR9PC9TdHlsZWRTbG90PlxuICAgICAgICA8U3R5bGVkU2xvdCBwb3NpdGlvbj1cInJpZ2h0XCIgZGF0YS1lMmUtdGVzdC1pZD1cImJvdHRvbVRvb2xiYXJcIj5cbiAgICAgICAgICA8SW5saW5lIHNwYWNlPVwieHNcIiB2QWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAge2JvdHRvbVRvb2xiYXIucmlnaHRDb250ZW50fVxuICAgICAgICAgICAgPFJvdW5kQnV0dG9uXG4gICAgICAgICAgICAgIHsuLi5zZW5kQnV0dG9uUHJvcHN9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVNlbmRCdXR0b25DbGlja31cbiAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlUHJldmVudEZvY3VzfVxuICAgICAgICAgICAgICBhcmlhQXR0cmlidXRlcz17e1xuICAgICAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiBpc1Byb2Nlc3NpbmdcbiAgICAgICAgICAgICAgICAgID8gXCJQcm9jZXNzaW5nIHF1ZXJ5XCJcbiAgICAgICAgICAgICAgICAgIDogXCJTdWJtaXQgcXVlcnlcIixcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgdmFyaWFudD1cInByaW1hcnlcIlxuICAgICAgICAgICAgICBkaXNhYmxlZD17IXZhbHVlfVxuICAgICAgICAgICAgICBpY29uPXtpc1Byb2Nlc3NpbmcgPyBcInN0b3AtZmlsbGVkXCIgOiBzZW5kQnV0dG9uUHJvcHMuaWNvbn1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9JbmxpbmU+XG4gICAgICAgIDwvU3R5bGVkU2xvdD5cbiAgICAgICAgPFN0eWxlZENsZWFyIC8+XG4gICAgICA8Lz5cbiAgICApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBkYXRhLWUyZS10ZXN0LWlkPXtkYXRhRTJlVGVzdElkfVxuICAgICAgICAgIGRhdGEtZHMtaWQ9XCJQcm9tcHRJbnB1dFwiXG4gICAgICAgICAgcmVmPXtjb250YWluZXJSZWZ9XG4gICAgICAgICAgLy8gVHJhbnNsYXRpb24gZGlzYWJsZWQgZm9yIGNvbnNpc3RlbmN5IHdpdGggdGhlIGF1dG9jb21wbGV0ZSBsaXN0XG4gICAgICAgICAgdHJhbnNsYXRlPVwibm9cIlxuICAgICAgICA+XG4gICAgICAgICAgPFN0YWNrIHNwYWNlPVwic1wiPlxuICAgICAgICAgICAgPEN1c3RvbUNvbnRhaW5lclxuICAgICAgICAgICAgICBlbGV2YXRpb249ezB9XG4gICAgICAgICAgICAgIGJvcmRlclJhZGl1cz17aXNDb2xsYXBzZWQgPyBcInhzXCIgOiBcIm1cIn1cbiAgICAgICAgICAgICAgaGlkZUJvcmRlcj17aXNDb2xsYXBzZWR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICByZWY9e3RleHRBcmVhQ29udGFpbmVyUmVmfVxuICAgICAgICAgICAgICAgIG9uUG9pbnRlckRvd249e2hhbmRsZU9uQ29udGFpbmVyUG9pbnRlckRvd259XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8U3R5bGVkVGV4dEFyZWFDb250YWluZXI+XG4gICAgICAgICAgICAgICAgICA8UHJvbXB0VGV4dEFyZWFcbiAgICAgICAgICAgICAgICAgICAgey4uLnJlc3R9XG4gICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQ9e1xuICAgICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQgPyBgJHtkYXRhRTJlVGVzdElkfS1pbnB1dGAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFSZWZ9XG4gICAgICAgICAgICAgICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZExpc3RJdGVtPXtzZWxlY3RlZExpc3RJdGVtfVxuICAgICAgICAgICAgICAgICAgICBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuPXtpc0F1dG9jb21wbGV0ZUxpc3RPcGVufVxuICAgICAgICAgICAgICAgICAgICBpc0NvbGxhcHNlZD17aXNDb2xsYXBzZWR9XG4gICAgICAgICAgICAgICAgICAgIG9uRm9jdXM9e2hhbmRsZUZvY3VzfVxuICAgICAgICAgICAgICAgICAgICBvbkJsdXI9e2hhbmRsZUJsdXJ9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17aGFuZGxlS2V5RG93bn1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICB7Y2xlYXJCdXR0b25FbG19XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRUZXh0QXJlYUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICB7Ym90dG9tVG9vbGJhckVsbX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L0N1c3RvbUNvbnRhaW5lcj5cbiAgICAgICAgICAgIHtoaW50RWxtfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxBdXRvY29tcGxldGVMaXN0XG4gICAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zPXthdXRvY29tcGxldGVMaXN0SXRlbXN9XG4gICAgICAgICAgdHJpZ2dlclJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgc2VsZWN0ZWRMaXN0SXRlbT17c2VsZWN0ZWRMaXN0SXRlbX1cbiAgICAgICAgICBpc09wZW49e2lzQXV0b2NvbXBsZXRlTGlzdE9wZW59XG4gICAgICAgICAgYXV0b2NvbXBsZXRlTGlzdEZvb3Rlcj17YXV0b2NvbXBsZXRlTGlzdEZvb3Rlcn1cbiAgICAgICAgICBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn1cbiAgICAgICAgICBvbkxpc3RJdGVtQ2xpY2s9e2hhbmRsZUxpc3RJdGVtQ2xpY2t9XG4gICAgICAgIC8+XG4gICAgICA8Lz5cbiAgICApO1xuICB9XG4pO1xuXG5jb25zdCBDdXN0b21CdXR0b24gPSBzdHlsZWQoQnV0dG9uKSgoeyB0aGVtZSB9KSA9PiAoe1xuICBib3JkZXJSYWRpdXM6IHRoZW1lLnZhcmlhYmxlcy5zaXplLmJvcmRlclJhZGl1cy5sLFxufSkpO1xuXG4vLyBuZWVkIHRvIHNpbXBsaWZ5IHRoaXMgdHlwZSBmb3IgcmV1c2VcbmNvbnN0IFN1Z2dlc3Rpb25CdXR0b24gPSBmb3J3YXJkUmVmKFxuICA8QyBleHRlbmRzIFJlYWN0LkVsZW1lbnRUeXBlID0gXCJidXR0b25cIj4oXG4gICAgcHJvcHM6IFBvbHltb3JwaGljQ29tcG9uZW50UHJvcHNXaXRoUmVmPFxuICAgICAgQyxcbiAgICAgIE9taXQ8QnV0dG9uUHJvcHMsIFwidmFyaWFudFwiIHwgXCJzaXplXCIgfCBcInJlZlwiPlxuICAgID4sXG4gICAgcmVmOiBQb2x5bW9ycGhpY1JlZjxDPlxuICApID0+IDxDdXN0b21CdXR0b24gey4uLnByb3BzfSB2YXJpYW50PVwic2Vjb25kYXJ5XCIgc2l6ZT1cInNcIiByZWY9e3JlZn0gLz5cbik7XG5cbmV4cG9ydCBjb25zdCBQcm9tcHRJbnB1dCA9IE9iamVjdC5hc3NpZ24oUHJvbXB0SW5wdXRDb21wb25lbnQsIHtcbiAgU3VnZ2VzdGlvbkJ1dHRvbixcbn0pIGFzIHR5cGVvZiBQcm9tcHRJbnB1dENvbXBvbmVudCAmIHtcbiAgU3VnZ2VzdGlvbkJ1dHRvbjogdHlwZW9mIFN1Z2dlc3Rpb25CdXR0b247XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTJDd0IifQ== */"),StyledTextAreaContainer=(0,_styled.default)("div",{target:"e1rdcmtk1",label:"StyledTextAreaContainer"})({borderRadius:"inherit",position:"relative"},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUHJvbXB0SW5wdXQvUHJvbXB0SW5wdXQudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Qcm9tcHRJbnB1dC9Qcm9tcHRJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBSZWFjdEVsZW1lbnQsXG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlZk9iamVjdCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIFN5bnRoZXRpY0V2ZW50LFxuICBNb3VzZUV2ZW50LFxufSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZVJlZixcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG4gIGZvcndhcmRSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgdHlwZSB7IFByb21wdFRleHRBcmVhUHJvcHMgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHsgUHJvbXB0VGV4dEFyZWEgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHsgQ29udGFpbmVyIH0gZnJvbSBcIi4uL0NvbnRhaW5lclwiO1xuaW1wb3J0IHR5cGUgeyBBdXRvY29tcGxldGVMaXN0UHJvcHMgfSBmcm9tIFwiLi9BdXRvY29tcGxldGVMaXN0XCI7XG5pbXBvcnQgeyBBdXRvY29tcGxldGVMaXN0IH0gZnJvbSBcIi4vQXV0b2NvbXBsZXRlTGlzdFwiO1xuaW1wb3J0IHtcbiAgZ2V0TGlzdEl0ZW1JZCxcbiAgdHlwZSBGbGF0dGVuZWRMaXN0SXRlbSxcbiAgdHlwZSBMaXN0SXRlbVZhbHVlLFxufSBmcm9tIFwiLi9DYXRlZ29yeUxpc3RcIjtcbmltcG9ydCB7IFRleHQgfSBmcm9tIFwiLi4vVHlwb2dyYXBoeS9UZXh0XCI7XG5pbXBvcnQgeyBCdXR0b24sIHR5cGUgQnV0dG9uUHJvcHMgfSBmcm9tIFwiLi4vQnV0dG9uL0J1dHRvblwiO1xuaW1wb3J0IHR5cGUge1xuICBQb2x5bW9ycGhpY1JlZixcbiAgUG9seW1vcnBoaWNDb21wb25lbnRQcm9wc1dpdGhSZWYsXG59IGZyb20gXCIuLi8uLi90eXBlc1wiO1xuaW1wb3J0IHsgSW5saW5lIH0gZnJvbSBcIi4uL0lubGluZS9JbmxpbmVcIjtcbmltcG9ydCB0eXBlIHsgUm91bmRCdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9Sb3VuZEJ1dHRvbi9Sb3VuZEJ1dHRvblwiO1xuaW1wb3J0IHsgUm91bmRCdXR0b24gfSBmcm9tIFwiLi4vUm91bmRCdXR0b24vUm91bmRCdXR0b25cIjtcbmltcG9ydCB0eXBlIHsgUGljdG9ncmFtQnV0dG9uUHJvcHMgfSBmcm9tIFwiLi4vUGljdG9ncmFtQnV0dG9uL1BpY3RvZ3JhbUJ1dHRvblwiO1xuaW1wb3J0IHsgUGljdG9ncmFtQnV0dG9uIH0gZnJvbSBcIi4uL1BpY3RvZ3JhbUJ1dHRvbi9QaWN0b2dyYW1CdXR0b25cIjtcbmltcG9ydCB7IFN0YWNrIH0gZnJvbSBcIi4uL1N0YWNrL1N0YWNrXCI7XG5pbXBvcnQgeyB1c2VPdXRzaWRlQ2xpY2sgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL3VzZU91dHNpZGVDbGlja1wiO1xuXG5jb25zdCBDdXN0b21Db250YWluZXIgPSBzdHlsZWQoQ29udGFpbmVyKTx7IGhpZGVCb3JkZXI6IGJvb2xlYW4gfT4oXG4gICh7IHRoZW1lLCBoaWRlQm9yZGVyIH0pID0+ICh7XG4gICAgYm9yZGVyOiBgMXB4IHNvbGlkICR7dGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5wcmltYXJ5LmRlZmF1bHR9YCxcbiAgICAuLi4oaGlkZUJvcmRlciAmJiB7XG4gICAgICBib3JkZXJDb2xvcjogXCJ0cmFuc3BhcmVudFwiLFxuICAgIH0pLFxuICAgIGN1cnNvcjogXCJ0ZXh0XCIsXG4gICAgW2AmOmhhcyh0ZXh0YXJlYTpmb2N1cy12aXNpYmxlKWBdOiB7XG4gICAgICBvdXRsaW5lV2lkdGg6IDEsXG4gICAgICBvdXRsaW5lU3R5bGU6IFwic29saWRcIixcbiAgICAgIG91dGxpbmVPZmZzZXQ6IC0xLFxuICAgICAgb3V0bGluZUNvbG9yOiB0aGVtZS52YWx1ZXMuY29sb3IuYm9yZGVyLmFjY2VudC5kZWZhdWx0LFxuICAgICAgYm94U2hhZG93OiB0aGVtZS52YWx1ZXMuc2hhZG93LmZvY3VzUmluZyxcblxuICAgICAgXCJAbWVkaWEgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzowKVwiOiB7XG4gICAgICAgIG91dGxpbmVDb2xvcjogdGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5hY2NlbnQuZGVmYXVsdCxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZFRleHRBcmVhQ29udGFpbmVyID0gc3R5bGVkLmRpdih7XG4gIGJvcmRlclJhZGl1czogXCJpbmhlcml0XCIsXG4gIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG59KTtcblxudHlwZSBTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyUHJvcHMgPSBQaWNrPFxuICBQcm9tcHRJbnB1dFByb3BzLFxuICBcImlzTmF2QmFyVmFyaWFudFwiXG4+O1xuXG5jb25zdCBTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyID1cbiAgc3R5bGVkLmRpdjxTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyUHJvcHM+KFxuICAgICh7IHRoZW1lLCBpc05hdkJhclZhcmlhbnQgfSkgPT4gKHtcbiAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICB0b3A6IGlzTmF2QmFyVmFyaWFudFxuICAgICAgICA/IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHhzXG4gICAgICAgIDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5tLFxuICAgICAgcmlnaHQ6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubSxcbiAgICAgIHVzZXJTZWxlY3Q6IFwibm9uZVwiLFxuICAgICAgcG9pbnRlckV2ZW50czogXCJub25lXCIsXG4gICAgfSlcbiAgKTtcblxudHlwZSBTdHlsZWRDbGVhckJ1dHRvblByb3BzID0gUGljdG9ncmFtQnV0dG9uUHJvcHMgJlxuICBQaWNrPFByb21wdElucHV0UHJvcHMsIFwiaXNOYXZCYXJWYXJpYW50XCI+O1xuXG5jb25zdCBTdHlsZWRDbGVhckJ1dHRvbiA9IHN0eWxlZChQaWN0b2dyYW1CdXR0b24pPFN0eWxlZENsZWFyQnV0dG9uUHJvcHM+KFxuICAoeyB0aGVtZSwgaXNOYXZCYXJWYXJpYW50IH0pID0+ICh7XG4gICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICByaWdodDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zLFxuICAgIHRvcDogaXNOYXZCYXJWYXJpYW50ID8gMCA6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcucyxcbiAgfSlcbik7XG5cbi8vIFVzaW5nIGZsb2F0IGluIG9yZGVyIHRvIGF2b2lkIHRoZSBpbnZpc2libGUgYXJlYSBiZXR3ZWVuIHRoZSBzbG90c1xuLy8gdGhhdCBwcmV2ZW50cyB0aGUgdGV4dGFyZWEgZnJvbSBiZWluZyBmb2N1c2VkXG5jb25zdCBTdHlsZWRTbG90ID0gc3R5bGVkLmRpdjx7IHBvc2l0aW9uOiBcImxlZnRcIiB8IFwicmlnaHRcIiB9PihcbiAgKHsgcG9zaXRpb24sIHRoZW1lIH0pID0+ICh7XG4gICAgZmxvYXQ6IHBvc2l0aW9uLFxuICAgIG1hcmdpbjogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5tLFxuICAgIGN1cnNvcjogXCJkZWZhdWx0XCIsXG4gIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRDbGVhciA9IHN0eWxlZC5kaXYoe1xuICBjbGVhcjogXCJib3RoXCIsXG59KTtcblxuZXhwb3J0IHR5cGUgUHJvbXB0SW5wdXRQcm9wcyA9IHtcbiAgXCJkYXRhLWUyZS10ZXN0LWlkXCI/OiBzdHJpbmc7XG4gIC8qKiBUb29sYmFyIGVsZW1lbnRzIGJlbG93IHRleHQgYXJlYSAqL1xuICBib3R0b21Ub29sYmFyPzoge1xuICAgIGxlZnRDb250ZW50PzogUmVhY3RFbGVtZW50O1xuICAgIHJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgfTtcbiAgLyoqIEN1cnJlbnRseSBzaG93cyBzZW5kIGJ1dHRvbiBwcm9jZXNzaW5nIHN0YXRlICAqL1xuICBpc1Byb2Nlc3Npbmc/OiBib29sZWFuO1xuICBzZW5kQnV0dG9uUHJvcHM/OiBPbWl0PFJvdW5kQnV0dG9uUHJvcHMsIFwiaWNvblwiIHwgXCJ2YXJpYW50XCI+ICYge1xuICAgIGljb24/OiBcImFycm93LXVwXCIgfCBcInNlYXJjaFwiIHwgXCJhcnJvdy1yaWdodFwiO1xuICB9O1xuICBjbGVhckJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgaGludD86IFJlYWN0RWxlbWVudDtcbiAgLyoqIFNob3dzIGluIHRoZSBjbGVhciBidXR0b24gc3BhY2UgaW4gZW1wdHkgc3RhdGUgKi9cbiAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgb25DbGVhcjogKCkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCB3aGVuIHVzZXIgc2VsZWN0cyAob3IgcmVqZWN0cykgYSBsaXN0IGl0ZW0gZnJvbSBhdXRvY29tcGxldGUgbGlzdCAqL1xuICBvbkNvbXBsZXRlPzogKHtcbiAgICB2YWx1ZSxcbiAgICBjYXRlZ29yeSxcbiAgICBldnQsXG4gICAgaW5kZXgsXG4gIH06IHtcbiAgICB2YWx1ZTogTGlzdEl0ZW1WYWx1ZTtcbiAgICBjYXRlZ29yeT86IHN0cmluZztcbiAgICBldnQ/OiBTeW50aGV0aWNFdmVudDtcbiAgICBpbmRleD86IG51bWJlcjtcbiAgfSkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCBvbiBFbnRlciBrZXkgdG8gc3VibWl0IHRoZSBmb3JtICAqL1xuICBvbkVudGVyS2V5OiAoKSA9PiB2b2lkO1xufSAmIE9taXQ8XG4gIFByb21wdFRleHRBcmVhUHJvcHMsXG4gIFwiaXNDb2xsYXBzZWRcIiB8IFwiaXNBdXRvY29tcGxldGVMaXN0T3BlblwiIHwgXCJzZWxlY3RlZExpc3RJdGVtXCJcbj4gJlxuICBQaWNrPFxuICAgIEF1dG9jb21wbGV0ZUxpc3RQcm9wcyxcbiAgICBcImF1dG9jb21wbGV0ZUxpc3RJdGVtc1wiIHwgXCJhdXRvY29tcGxldGVMaXN0Rm9vdGVyXCIgfCBcInBvcnRhbENvbnRhaW5lclwiXG4gID47XG5cbmNvbnN0IFByb21wdElucHV0Q29tcG9uZW50ID0gZm9yd2FyZFJlZihcbiAgKFxuICAgIHtcbiAgICAgIFwiZGF0YS1lMmUtdGVzdC1pZFwiOiBkYXRhRTJlVGVzdElkLFxuICAgICAgbmFtZSxcbiAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcyA9IFtdLFxuICAgICAgdmFsdWUsXG4gICAgICBib3R0b21Ub29sYmFyID0geyBsZWZ0Q29udGVudDogbnVsbCwgcmlnaHRDb250ZW50OiBudWxsIH0sXG4gICAgICBpc1Byb2Nlc3NpbmcsXG4gICAgICBzZW5kQnV0dG9uUHJvcHMgPSB7XG4gICAgICAgIHR5cGU6IFwic3VibWl0XCIsXG4gICAgICAgIGljb246IFwiYXJyb3ctdXBcIixcbiAgICAgIH0sXG4gICAgICBhdXRvY29tcGxldGVMaXN0Rm9vdGVyLFxuICAgICAgY2xlYXJCdXR0b25BcmlhTGFiZWwgPSBcIkNsZWFyIGlucHV0XCIsXG4gICAgICBoaW50LFxuICAgICAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudCxcbiAgICAgIGlzTmF2QmFyVmFyaWFudCxcbiAgICAgIHBvcnRhbENvbnRhaW5lcixcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgb25Db21wbGV0ZSxcbiAgICAgIG9uQ2xlYXIsXG4gICAgICBvbkVudGVyS2V5LFxuICAgICAgb25Gb2N1cyxcbiAgICAgIG9uQmx1cixcbiAgICAgIG9uS2V5RG93bixcbiAgICAgIC4uLnJlc3RcbiAgICB9OiBQcm9tcHRJbnB1dFByb3BzLFxuICAgIHJlZjogUmVmT2JqZWN0PEhUTUxUZXh0QXJlYUVsZW1lbnQ+XG4gICk6IFJlYWN0RWxlbWVudCA9PiB7XG4gICAgY29uc3QgY29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCB0ZXh0QXJlYUNvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgaW50ZXJuYWxSZWYgPSB1c2VSZWY8SFRNTFRleHRBcmVhRWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgW3NlbGVjdGVkSW5kZXgsIHNldFNlbGVjdGVkSW5kZXhdID0gdXNlU3RhdGUoLTEpO1xuICAgIGNvbnN0IFtpc0NvbGxhcHNlZCwgc2V0SXNDb2xsYXBzZWRdID0gdXNlU3RhdGUoaXNOYXZCYXJWYXJpYW50KTtcbiAgICBjb25zdCB1c2VyVHlwZWRRdWVyeSA9IHVzZVJlZihcIlwiKTtcbiAgICBjb25zdCBbaXNBdXRvY29tcGxldGVMaXN0T3Blbiwgc2V0SXNBdXRvY29tcGxldGVMaXN0T3Blbl0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgdGV4dEFyZWFSZWYgPSByZWYgfHwgaW50ZXJuYWxSZWY7XG5cbiAgICB1c2VPdXRzaWRlQ2xpY2soXG4gICAgICBjb250YWluZXJSZWYsXG4gICAgICAoZXZ0KSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAhY29udGFpbmVyUmVmLmN1cnJlbnQuY29udGFpbnMoZXZ0LnRhcmdldCBhcyBOb2RlKSAmJlxuICAgICAgICAgICFwb3J0YWxDb250YWluZXI/LmNvbnRhaW5zKGV2dC50YXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICBldnQudGFyZ2V0ICE9PSBudWxsXG4gICAgICAgICkge1xuICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgIWlzQ29sbGFwc2VkICYmIGlzTmF2QmFyVmFyaWFudFxuICAgICk7XG5cbiAgICBjb25zdCBjbG9zZUF1dG9jb21wbGV0ZUxpc3QgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBzZXRJc0F1dG9jb21wbGV0ZUxpc3RPcGVuKGZhbHNlKTtcbiAgICAgIHNldFNlbGVjdGVkSW5kZXgoLTEpO1xuICAgIH0sIFtdKTtcblxuICAgIGNvbnN0IG9wZW5BdXRvY29tcGxldGVMaXN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgaWYgKGF1dG9jb21wbGV0ZUxpc3RJdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgc2V0SXNBdXRvY29tcGxldGVMaXN0T3Blbih0cnVlKTtcbiAgICAgICAgc2V0U2VsZWN0ZWRJbmRleCgtMSk7XG4gICAgICB9XG4gICAgfSwgW2F1dG9jb21wbGV0ZUxpc3RJdGVtc10pO1xuXG4gICAgY29uc3QgYWNjZXB0VGV4dFNlbGVjdGlvbiA9ICgpID0+IHtcbiAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgPSB2YWx1ZTtcbiAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQuc2V0U2VsZWN0aW9uUmFuZ2UodmFsdWUubGVuZ3RoLCB2YWx1ZS5sZW5ndGgpO1xuICAgIH07XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKGF1dG9jb21wbGV0ZUxpc3RJdGVtcy5sZW5ndGggJiYgIWlzQ29sbGFwc2VkKSB7XG4gICAgICAgIG9wZW5BdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIH1cbiAgICB9LCBbXG4gICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXMsXG4gICAgICBvcGVuQXV0b2NvbXBsZXRlTGlzdCxcbiAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCxcbiAgICAgIGlzQ29sbGFwc2VkLFxuICAgIF0pO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZSAhPT0gdXNlclR5cGVkUXVlcnkuY3VycmVudCAmJiBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuKSB7XG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQuc2V0U2VsZWN0aW9uUmFuZ2UoXG4gICAgICAgICAgdXNlclR5cGVkUXVlcnkuY3VycmVudC5sZW5ndGgsXG4gICAgICAgICAgdmFsdWUubGVuZ3RoXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSwgW3ZhbHVlLCB0ZXh0QXJlYVJlZiwgaXNBdXRvY29tcGxldGVMaXN0T3Blbl0pO1xuXG4gICAgLy8gRGV0ZXJtaW5lIHdoZW4gZm9jdXMgbGVhdmVzIHRoZSBjb250YWluZXIgdG8gY29sbGFwc2UgaXRcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgbGV0IGhhbmRsZXI6IChldnQ6IEZvY3VzRXZlbnQpID0+IHZvaWQ7XG4gICAgICBjb25zdCBjb250YWluZXIgPSBjb250YWluZXJSZWYuY3VycmVudDtcblxuICAgICAgaWYgKGlzTmF2QmFyVmFyaWFudCAmJiBjb250YWluZXIpIHtcbiAgICAgICAgaGFuZGxlciA9IChldnQ6IEZvY3VzRXZlbnQpID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAhY29udGFpbmVyUmVmLmN1cnJlbnQuY29udGFpbnMoZXZ0LnJlbGF0ZWRUYXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICAgICFwb3J0YWxDb250YWluZXI/LmNvbnRhaW5zKGV2dC5yZWxhdGVkVGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgICBldnQucmVsYXRlZFRhcmdldCAhPT0gbnVsbFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImZvY3Vzb3V0XCIsIGhhbmRsZXIpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBpZiAoY29udGFpbmVyKSB7XG4gICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJmb2N1c291dFwiLCBoYW5kbGVyKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9LCBbaXNOYXZCYXJWYXJpYW50LCBjb250YWluZXJSZWYsIHBvcnRhbENvbnRhaW5lcl0pO1xuXG4gICAgY29uc3QgZmxhdHRlbmVkTGlzdEl0ZW1zID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBjb25zdCBsaXN0OiBGbGF0dGVuZWRMaXN0SXRlbVtdID0gW107XG5cbiAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcy5mb3JFYWNoKChsaXN0SXRlbSkgPT4ge1xuICAgICAgICBsaXN0SXRlbS5pdGVtcy5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgIGxpc3QucHVzaCh7XG4gICAgICAgICAgICBjYXRlZ29yeTogbGlzdEl0ZW0uY2F0ZWdvcnksXG4gICAgICAgICAgICBpbmRleEluQ2F0ZWdvcnk6IGluZGV4LFxuICAgICAgICAgICAgdmFsdWU6IGl0ZW0udmFsdWUsXG4gICAgICAgICAgICBpZDogZ2V0TGlzdEl0ZW1JZChuYW1lLCBsaXN0SXRlbS5jYXRlZ29yeSwgaW5kZXgpLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGxpc3Q7XG4gICAgfSwgW2F1dG9jb21wbGV0ZUxpc3RJdGVtcywgbmFtZV0pO1xuXG4gICAgY29uc3QgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZSA9IChpbmRleDogbnVtYmVyLCBldnQ/OiBTeW50aGV0aWNFdmVudCkgPT4ge1xuICAgICAgc2V0U2VsZWN0ZWRJbmRleChpbmRleCk7XG4gICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgIGNvbnN0IHsgY2F0ZWdvcnksIHZhbHVlOiBpdGVtVmFsdWUgfSA9IGZsYXR0ZW5lZExpc3RJdGVtc1tpbmRleF07XG5cbiAgICAgICAgb25Db21wbGV0ZSh7IHZhbHVlOiBpdGVtVmFsdWUsIGNhdGVnb3J5LCBldnQsIGluZGV4IH0pO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVMaXN0SXRlbUNsaWNrID0gKFxuICAgICAgY2F0ZWdvcnk6IHN0cmluZyxcbiAgICAgIGluZGV4SW5DYXRlZ29yeTogbnVtYmVyLFxuICAgICAgZXZ0PzogTW91c2VFdmVudFxuICAgICkgPT4ge1xuICAgICAgY29uc3QgaW5kZXggPSBmbGF0dGVuZWRMaXN0SXRlbXMuZmluZEluZGV4KFxuICAgICAgICAobGlzdEl0ZW0pID0+XG4gICAgICAgICAgbGlzdEl0ZW0uY2F0ZWdvcnkgPT09IGNhdGVnb3J5ICYmXG4gICAgICAgICAgbGlzdEl0ZW0uaW5kZXhJbkNhdGVnb3J5ID09PSBpbmRleEluQ2F0ZWdvcnlcbiAgICAgICk7XG5cbiAgICAgIGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2UoaW5kZXgsIGV2dCk7XG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUtleURvd246IEtleWJvYXJkRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgaWYgKGlzQXV0b2NvbXBsZXRlTGlzdE9wZW4pIHtcbiAgICAgICAgc3dpdGNoIChldnQua2V5KSB7XG4gICAgICAgICAgY2FzZSBcIkVzY2FwZVwiOlxuICAgICAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICAgICAgICBvbkNvbXBsZXRlKHsgdmFsdWU6IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQsIGV2dCB9KTtcbiAgICAgICAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiRW50ZXJcIjpcbiAgICAgICAgICAgIGlmICghZXZ0LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgICAgICAgICAgYWNjZXB0VGV4dFNlbGVjdGlvbigpO1xuXG4gICAgICAgICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgIG9uRW50ZXJLZXk/LigpO1xuICAgICAgICAgICAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIiBcIjpcbiAgICAgICAgICAgIGFjY2VwdFRleHRTZWxlY3Rpb24oKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJBcnJvd1VwXCI6XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZShzZWxlY3RlZEluZGV4IC0gMSwgZXZ0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJBcnJvd0Rvd25cIjpcbiAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaWYgKHNlbGVjdGVkSW5kZXggPCBmbGF0dGVuZWRMaXN0SXRlbXMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlKHNlbGVjdGVkSW5kZXggKyAxLCBldnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3dpdGNoIChldnQua2V5KSB7XG4gICAgICAgICAgY2FzZSBcIkVzY2FwZVwiOlxuICAgICAgICAgICAgb25DbGVhcj8uKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiRW50ZXJcIjpcbiAgICAgICAgICAgIGlmICghZXZ0LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBvbkVudGVyS2V5Py4oKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIG9uS2V5RG93bj8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUNoYW5nZTogQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgdXNlclR5cGVkUXVlcnkuY3VycmVudCA9IGV2dC50YXJnZXQudmFsdWU7XG4gICAgICBvbkNoYW5nZShldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVGb2N1czogRm9jdXNFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBzZXRJc0NvbGxhcHNlZChmYWxzZSk7XG4gICAgICBvbkZvY3VzPy4oZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlQmx1cjogRm9jdXNFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBpZiAodmFsdWUgIT09IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQpIHtcbiAgICAgICAgb25Db21wbGV0ZT8uKHsgdmFsdWU6IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQsIGV2dCB9KTtcbiAgICAgIH1cbiAgICAgIG9uQmx1cj8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZVNlbmRCdXR0b25DbGljayA9IChldnQ6IE1vdXNlRXZlbnQ8SFRNTEJ1dHRvbkVsZW1lbnQ+KSA9PiB7XG4gICAgICBzZW5kQnV0dG9uUHJvcHMub25DbGljaz8uKGV2dCk7XG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZVByZXZlbnRGb2N1cyA9IChldnQ6IFJlYWN0LlBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgLy8gUHJldmVudCB0aGUgdGV4dGFyZWEgZnJvbSBiZWluZyB1bmZvY3VzZWRcbiAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVPbkNvbnRhaW5lclBvaW50ZXJEb3duID0gKGV2dDogUmVhY3QuUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAvLyBGb2N1cyB0ZXh0YXJlYSB3aGVuIGNsaWNraW5nIG9uIHRoZSBjb250YWluZXIgb25seVxuICAgICAgaWYgKGV2dC50YXJnZXQgPT09IGV2dC5jdXJyZW50VGFyZ2V0KSB7XG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBzZWxlY3RlZExpc3RJdGVtID1cbiAgICAgIHNlbGVjdGVkSW5kZXggIT09IC0xID8gZmxhdHRlbmVkTGlzdEl0ZW1zW3NlbGVjdGVkSW5kZXhdIDogbnVsbDtcblxuICAgIGNvbnN0IGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRFbG0gPSBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50ID8gKFxuICAgICAgPFN0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXJcbiAgICAgICAgaXNOYXZCYXJWYXJpYW50PXtpc05hdkJhclZhcmlhbnR9XG4gICAgICA+XG4gICAgICAgIDxUZXh0IGNvbG9yPVwidGVydGlhcnlcIj57ZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudH08L1RleHQ+XG4gICAgICA8L1N0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXI+XG4gICAgKSA6IG51bGw7XG5cbiAgICBjb25zdCBjbGVhckJ1dHRvbkVsbSA9IHZhbHVlID8gKFxuICAgICAgPFN0eWxlZENsZWFyQnV0dG9uXG4gICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgaWNvbj1cIngtY2lyY2xlLWZpbGxlZFwiXG4gICAgICAgIGFyaWEtbGFiZWw9e2NsZWFyQnV0dG9uQXJpYUxhYmVsfVxuICAgICAgICBpc05hdkJhclZhcmlhbnQ9e2lzTmF2QmFyVmFyaWFudH1cbiAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlUHJldmVudEZvY3VzfVxuICAgICAgICBvbkNsaWNrPXtvbkNsZWFyfVxuICAgICAgLz5cbiAgICApIDogKFxuICAgICAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudEVsbVxuICAgICk7XG5cbiAgICBjb25zdCBoaW50RWxtID0gISFoaW50ICYmIChcbiAgICAgIDxJbmxpbmUgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICA8VGV4dCBzaXplPVwic1wiIGNvbG9yPVwidGVydGlhcnlcIj5cbiAgICAgICAgICB7aGludH1cbiAgICAgICAgPC9UZXh0PlxuICAgICAgPC9JbmxpbmU+XG4gICAgKTtcblxuICAgIGNvbnN0IGJvdHRvbVRvb2xiYXJFbG0gPSAhaXNDb2xsYXBzZWQgJiYgKFxuICAgICAgPD5cbiAgICAgICAgPFN0eWxlZFNsb3QgcG9zaXRpb249XCJsZWZ0XCI+e2JvdHRvbVRvb2xiYXIubGVmdENvbnRlbnR9PC9TdHlsZWRTbG90PlxuICAgICAgICA8U3R5bGVkU2xvdCBwb3NpdGlvbj1cInJpZ2h0XCIgZGF0YS1lMmUtdGVzdC1pZD1cImJvdHRvbVRvb2xiYXJcIj5cbiAgICAgICAgICA8SW5saW5lIHNwYWNlPVwieHNcIiB2QWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAge2JvdHRvbVRvb2xiYXIucmlnaHRDb250ZW50fVxuICAgICAgICAgICAgPFJvdW5kQnV0dG9uXG4gICAgICAgICAgICAgIHsuLi5zZW5kQnV0dG9uUHJvcHN9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVNlbmRCdXR0b25DbGlja31cbiAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlUHJldmVudEZvY3VzfVxuICAgICAgICAgICAgICBhcmlhQXR0cmlidXRlcz17e1xuICAgICAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiBpc1Byb2Nlc3NpbmdcbiAgICAgICAgICAgICAgICAgID8gXCJQcm9jZXNzaW5nIHF1ZXJ5XCJcbiAgICAgICAgICAgICAgICAgIDogXCJTdWJtaXQgcXVlcnlcIixcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgdmFyaWFudD1cInByaW1hcnlcIlxuICAgICAgICAgICAgICBkaXNhYmxlZD17IXZhbHVlfVxuICAgICAgICAgICAgICBpY29uPXtpc1Byb2Nlc3NpbmcgPyBcInN0b3AtZmlsbGVkXCIgOiBzZW5kQnV0dG9uUHJvcHMuaWNvbn1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9JbmxpbmU+XG4gICAgICAgIDwvU3R5bGVkU2xvdD5cbiAgICAgICAgPFN0eWxlZENsZWFyIC8+XG4gICAgICA8Lz5cbiAgICApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBkYXRhLWUyZS10ZXN0LWlkPXtkYXRhRTJlVGVzdElkfVxuICAgICAgICAgIGRhdGEtZHMtaWQ9XCJQcm9tcHRJbnB1dFwiXG4gICAgICAgICAgcmVmPXtjb250YWluZXJSZWZ9XG4gICAgICAgICAgLy8gVHJhbnNsYXRpb24gZGlzYWJsZWQgZm9yIGNvbnNpc3RlbmN5IHdpdGggdGhlIGF1dG9jb21wbGV0ZSBsaXN0XG4gICAgICAgICAgdHJhbnNsYXRlPVwibm9cIlxuICAgICAgICA+XG4gICAgICAgICAgPFN0YWNrIHNwYWNlPVwic1wiPlxuICAgICAgICAgICAgPEN1c3RvbUNvbnRhaW5lclxuICAgICAgICAgICAgICBlbGV2YXRpb249ezB9XG4gICAgICAgICAgICAgIGJvcmRlclJhZGl1cz17aXNDb2xsYXBzZWQgPyBcInhzXCIgOiBcIm1cIn1cbiAgICAgICAgICAgICAgaGlkZUJvcmRlcj17aXNDb2xsYXBzZWR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICByZWY9e3RleHRBcmVhQ29udGFpbmVyUmVmfVxuICAgICAgICAgICAgICAgIG9uUG9pbnRlckRvd249e2hhbmRsZU9uQ29udGFpbmVyUG9pbnRlckRvd259XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8U3R5bGVkVGV4dEFyZWFDb250YWluZXI+XG4gICAgICAgICAgICAgICAgICA8UHJvbXB0VGV4dEFyZWFcbiAgICAgICAgICAgICAgICAgICAgey4uLnJlc3R9XG4gICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQ9e1xuICAgICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQgPyBgJHtkYXRhRTJlVGVzdElkfS1pbnB1dGAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFSZWZ9XG4gICAgICAgICAgICAgICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZExpc3RJdGVtPXtzZWxlY3RlZExpc3RJdGVtfVxuICAgICAgICAgICAgICAgICAgICBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuPXtpc0F1dG9jb21wbGV0ZUxpc3RPcGVufVxuICAgICAgICAgICAgICAgICAgICBpc0NvbGxhcHNlZD17aXNDb2xsYXBzZWR9XG4gICAgICAgICAgICAgICAgICAgIG9uRm9jdXM9e2hhbmRsZUZvY3VzfVxuICAgICAgICAgICAgICAgICAgICBvbkJsdXI9e2hhbmRsZUJsdXJ9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17aGFuZGxlS2V5RG93bn1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICB7Y2xlYXJCdXR0b25FbG19XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRUZXh0QXJlYUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICB7Ym90dG9tVG9vbGJhckVsbX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L0N1c3RvbUNvbnRhaW5lcj5cbiAgICAgICAgICAgIHtoaW50RWxtfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxBdXRvY29tcGxldGVMaXN0XG4gICAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zPXthdXRvY29tcGxldGVMaXN0SXRlbXN9XG4gICAgICAgICAgdHJpZ2dlclJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgc2VsZWN0ZWRMaXN0SXRlbT17c2VsZWN0ZWRMaXN0SXRlbX1cbiAgICAgICAgICBpc09wZW49e2lzQXV0b2NvbXBsZXRlTGlzdE9wZW59XG4gICAgICAgICAgYXV0b2NvbXBsZXRlTGlzdEZvb3Rlcj17YXV0b2NvbXBsZXRlTGlzdEZvb3Rlcn1cbiAgICAgICAgICBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn1cbiAgICAgICAgICBvbkxpc3RJdGVtQ2xpY2s9e2hhbmRsZUxpc3RJdGVtQ2xpY2t9XG4gICAgICAgIC8+XG4gICAgICA8Lz5cbiAgICApO1xuICB9XG4pO1xuXG5jb25zdCBDdXN0b21CdXR0b24gPSBzdHlsZWQoQnV0dG9uKSgoeyB0aGVtZSB9KSA9PiAoe1xuICBib3JkZXJSYWRpdXM6IHRoZW1lLnZhcmlhYmxlcy5zaXplLmJvcmRlclJhZGl1cy5sLFxufSkpO1xuXG4vLyBuZWVkIHRvIHNpbXBsaWZ5IHRoaXMgdHlwZSBmb3IgcmV1c2VcbmNvbnN0IFN1Z2dlc3Rpb25CdXR0b24gPSBmb3J3YXJkUmVmKFxuICA8QyBleHRlbmRzIFJlYWN0LkVsZW1lbnRUeXBlID0gXCJidXR0b25cIj4oXG4gICAgcHJvcHM6IFBvbHltb3JwaGljQ29tcG9uZW50UHJvcHNXaXRoUmVmPFxuICAgICAgQyxcbiAgICAgIE9taXQ8QnV0dG9uUHJvcHMsIFwidmFyaWFudFwiIHwgXCJzaXplXCIgfCBcInJlZlwiPlxuICAgID4sXG4gICAgcmVmOiBQb2x5bW9ycGhpY1JlZjxDPlxuICApID0+IDxDdXN0b21CdXR0b24gey4uLnByb3BzfSB2YXJpYW50PVwic2Vjb25kYXJ5XCIgc2l6ZT1cInNcIiByZWY9e3JlZn0gLz5cbik7XG5cbmV4cG9ydCBjb25zdCBQcm9tcHRJbnB1dCA9IE9iamVjdC5hc3NpZ24oUHJvbXB0SW5wdXRDb21wb25lbnQsIHtcbiAgU3VnZ2VzdGlvbkJ1dHRvbixcbn0pIGFzIHR5cGVvZiBQcm9tcHRJbnB1dENvbXBvbmVudCAmIHtcbiAgU3VnZ2VzdGlvbkJ1dHRvbjogdHlwZW9mIFN1Z2dlc3Rpb25CdXR0b247XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdFZ0MifQ== */"),StyledEmptyStateTopRightContentContainer=(0,_styled.default)("div",{target:"e1rdcmtk2",label:"StyledEmptyStateTopRightContentContainer"})(({theme,isNavBarVariant})=>({position:"absolute",top:isNavBarVariant?theme.variables.size.spacing.xxs:theme.variables.size.spacing.m,right:theme.variables.size.spacing.m,userSelect:"none",pointerEvents:"none"}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUHJvbXB0SW5wdXQvUHJvbXB0SW5wdXQudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Qcm9tcHRJbnB1dC9Qcm9tcHRJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBSZWFjdEVsZW1lbnQsXG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlZk9iamVjdCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIFN5bnRoZXRpY0V2ZW50LFxuICBNb3VzZUV2ZW50LFxufSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZVJlZixcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG4gIGZvcndhcmRSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgdHlwZSB7IFByb21wdFRleHRBcmVhUHJvcHMgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHsgUHJvbXB0VGV4dEFyZWEgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHsgQ29udGFpbmVyIH0gZnJvbSBcIi4uL0NvbnRhaW5lclwiO1xuaW1wb3J0IHR5cGUgeyBBdXRvY29tcGxldGVMaXN0UHJvcHMgfSBmcm9tIFwiLi9BdXRvY29tcGxldGVMaXN0XCI7XG5pbXBvcnQgeyBBdXRvY29tcGxldGVMaXN0IH0gZnJvbSBcIi4vQXV0b2NvbXBsZXRlTGlzdFwiO1xuaW1wb3J0IHtcbiAgZ2V0TGlzdEl0ZW1JZCxcbiAgdHlwZSBGbGF0dGVuZWRMaXN0SXRlbSxcbiAgdHlwZSBMaXN0SXRlbVZhbHVlLFxufSBmcm9tIFwiLi9DYXRlZ29yeUxpc3RcIjtcbmltcG9ydCB7IFRleHQgfSBmcm9tIFwiLi4vVHlwb2dyYXBoeS9UZXh0XCI7XG5pbXBvcnQgeyBCdXR0b24sIHR5cGUgQnV0dG9uUHJvcHMgfSBmcm9tIFwiLi4vQnV0dG9uL0J1dHRvblwiO1xuaW1wb3J0IHR5cGUge1xuICBQb2x5bW9ycGhpY1JlZixcbiAgUG9seW1vcnBoaWNDb21wb25lbnRQcm9wc1dpdGhSZWYsXG59IGZyb20gXCIuLi8uLi90eXBlc1wiO1xuaW1wb3J0IHsgSW5saW5lIH0gZnJvbSBcIi4uL0lubGluZS9JbmxpbmVcIjtcbmltcG9ydCB0eXBlIHsgUm91bmRCdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9Sb3VuZEJ1dHRvbi9Sb3VuZEJ1dHRvblwiO1xuaW1wb3J0IHsgUm91bmRCdXR0b24gfSBmcm9tIFwiLi4vUm91bmRCdXR0b24vUm91bmRCdXR0b25cIjtcbmltcG9ydCB0eXBlIHsgUGljdG9ncmFtQnV0dG9uUHJvcHMgfSBmcm9tIFwiLi4vUGljdG9ncmFtQnV0dG9uL1BpY3RvZ3JhbUJ1dHRvblwiO1xuaW1wb3J0IHsgUGljdG9ncmFtQnV0dG9uIH0gZnJvbSBcIi4uL1BpY3RvZ3JhbUJ1dHRvbi9QaWN0b2dyYW1CdXR0b25cIjtcbmltcG9ydCB7IFN0YWNrIH0gZnJvbSBcIi4uL1N0YWNrL1N0YWNrXCI7XG5pbXBvcnQgeyB1c2VPdXRzaWRlQ2xpY2sgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL3VzZU91dHNpZGVDbGlja1wiO1xuXG5jb25zdCBDdXN0b21Db250YWluZXIgPSBzdHlsZWQoQ29udGFpbmVyKTx7IGhpZGVCb3JkZXI6IGJvb2xlYW4gfT4oXG4gICh7IHRoZW1lLCBoaWRlQm9yZGVyIH0pID0+ICh7XG4gICAgYm9yZGVyOiBgMXB4IHNvbGlkICR7dGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5wcmltYXJ5LmRlZmF1bHR9YCxcbiAgICAuLi4oaGlkZUJvcmRlciAmJiB7XG4gICAgICBib3JkZXJDb2xvcjogXCJ0cmFuc3BhcmVudFwiLFxuICAgIH0pLFxuICAgIGN1cnNvcjogXCJ0ZXh0XCIsXG4gICAgW2AmOmhhcyh0ZXh0YXJlYTpmb2N1cy12aXNpYmxlKWBdOiB7XG4gICAgICBvdXRsaW5lV2lkdGg6IDEsXG4gICAgICBvdXRsaW5lU3R5bGU6IFwic29saWRcIixcbiAgICAgIG91dGxpbmVPZmZzZXQ6IC0xLFxuICAgICAgb3V0bGluZUNvbG9yOiB0aGVtZS52YWx1ZXMuY29sb3IuYm9yZGVyLmFjY2VudC5kZWZhdWx0LFxuICAgICAgYm94U2hhZG93OiB0aGVtZS52YWx1ZXMuc2hhZG93LmZvY3VzUmluZyxcblxuICAgICAgXCJAbWVkaWEgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzowKVwiOiB7XG4gICAgICAgIG91dGxpbmVDb2xvcjogdGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5hY2NlbnQuZGVmYXVsdCxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZFRleHRBcmVhQ29udGFpbmVyID0gc3R5bGVkLmRpdih7XG4gIGJvcmRlclJhZGl1czogXCJpbmhlcml0XCIsXG4gIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG59KTtcblxudHlwZSBTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyUHJvcHMgPSBQaWNrPFxuICBQcm9tcHRJbnB1dFByb3BzLFxuICBcImlzTmF2QmFyVmFyaWFudFwiXG4+O1xuXG5jb25zdCBTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyID1cbiAgc3R5bGVkLmRpdjxTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyUHJvcHM+KFxuICAgICh7IHRoZW1lLCBpc05hdkJhclZhcmlhbnQgfSkgPT4gKHtcbiAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICB0b3A6IGlzTmF2QmFyVmFyaWFudFxuICAgICAgICA/IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHhzXG4gICAgICAgIDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5tLFxuICAgICAgcmlnaHQ6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubSxcbiAgICAgIHVzZXJTZWxlY3Q6IFwibm9uZVwiLFxuICAgICAgcG9pbnRlckV2ZW50czogXCJub25lXCIsXG4gICAgfSlcbiAgKTtcblxudHlwZSBTdHlsZWRDbGVhckJ1dHRvblByb3BzID0gUGljdG9ncmFtQnV0dG9uUHJvcHMgJlxuICBQaWNrPFByb21wdElucHV0UHJvcHMsIFwiaXNOYXZCYXJWYXJpYW50XCI+O1xuXG5jb25zdCBTdHlsZWRDbGVhckJ1dHRvbiA9IHN0eWxlZChQaWN0b2dyYW1CdXR0b24pPFN0eWxlZENsZWFyQnV0dG9uUHJvcHM+KFxuICAoeyB0aGVtZSwgaXNOYXZCYXJWYXJpYW50IH0pID0+ICh7XG4gICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICByaWdodDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zLFxuICAgIHRvcDogaXNOYXZCYXJWYXJpYW50ID8gMCA6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcucyxcbiAgfSlcbik7XG5cbi8vIFVzaW5nIGZsb2F0IGluIG9yZGVyIHRvIGF2b2lkIHRoZSBpbnZpc2libGUgYXJlYSBiZXR3ZWVuIHRoZSBzbG90c1xuLy8gdGhhdCBwcmV2ZW50cyB0aGUgdGV4dGFyZWEgZnJvbSBiZWluZyBmb2N1c2VkXG5jb25zdCBTdHlsZWRTbG90ID0gc3R5bGVkLmRpdjx7IHBvc2l0aW9uOiBcImxlZnRcIiB8IFwicmlnaHRcIiB9PihcbiAgKHsgcG9zaXRpb24sIHRoZW1lIH0pID0+ICh7XG4gICAgZmxvYXQ6IHBvc2l0aW9uLFxuICAgIG1hcmdpbjogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5tLFxuICAgIGN1cnNvcjogXCJkZWZhdWx0XCIsXG4gIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRDbGVhciA9IHN0eWxlZC5kaXYoe1xuICBjbGVhcjogXCJib3RoXCIsXG59KTtcblxuZXhwb3J0IHR5cGUgUHJvbXB0SW5wdXRQcm9wcyA9IHtcbiAgXCJkYXRhLWUyZS10ZXN0LWlkXCI/OiBzdHJpbmc7XG4gIC8qKiBUb29sYmFyIGVsZW1lbnRzIGJlbG93IHRleHQgYXJlYSAqL1xuICBib3R0b21Ub29sYmFyPzoge1xuICAgIGxlZnRDb250ZW50PzogUmVhY3RFbGVtZW50O1xuICAgIHJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgfTtcbiAgLyoqIEN1cnJlbnRseSBzaG93cyBzZW5kIGJ1dHRvbiBwcm9jZXNzaW5nIHN0YXRlICAqL1xuICBpc1Byb2Nlc3Npbmc/OiBib29sZWFuO1xuICBzZW5kQnV0dG9uUHJvcHM/OiBPbWl0PFJvdW5kQnV0dG9uUHJvcHMsIFwiaWNvblwiIHwgXCJ2YXJpYW50XCI+ICYge1xuICAgIGljb24/OiBcImFycm93LXVwXCIgfCBcInNlYXJjaFwiIHwgXCJhcnJvdy1yaWdodFwiO1xuICB9O1xuICBjbGVhckJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgaGludD86IFJlYWN0RWxlbWVudDtcbiAgLyoqIFNob3dzIGluIHRoZSBjbGVhciBidXR0b24gc3BhY2UgaW4gZW1wdHkgc3RhdGUgKi9cbiAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgb25DbGVhcjogKCkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCB3aGVuIHVzZXIgc2VsZWN0cyAob3IgcmVqZWN0cykgYSBsaXN0IGl0ZW0gZnJvbSBhdXRvY29tcGxldGUgbGlzdCAqL1xuICBvbkNvbXBsZXRlPzogKHtcbiAgICB2YWx1ZSxcbiAgICBjYXRlZ29yeSxcbiAgICBldnQsXG4gICAgaW5kZXgsXG4gIH06IHtcbiAgICB2YWx1ZTogTGlzdEl0ZW1WYWx1ZTtcbiAgICBjYXRlZ29yeT86IHN0cmluZztcbiAgICBldnQ/OiBTeW50aGV0aWNFdmVudDtcbiAgICBpbmRleD86IG51bWJlcjtcbiAgfSkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCBvbiBFbnRlciBrZXkgdG8gc3VibWl0IHRoZSBmb3JtICAqL1xuICBvbkVudGVyS2V5OiAoKSA9PiB2b2lkO1xufSAmIE9taXQ8XG4gIFByb21wdFRleHRBcmVhUHJvcHMsXG4gIFwiaXNDb2xsYXBzZWRcIiB8IFwiaXNBdXRvY29tcGxldGVMaXN0T3BlblwiIHwgXCJzZWxlY3RlZExpc3RJdGVtXCJcbj4gJlxuICBQaWNrPFxuICAgIEF1dG9jb21wbGV0ZUxpc3RQcm9wcyxcbiAgICBcImF1dG9jb21wbGV0ZUxpc3RJdGVtc1wiIHwgXCJhdXRvY29tcGxldGVMaXN0Rm9vdGVyXCIgfCBcInBvcnRhbENvbnRhaW5lclwiXG4gID47XG5cbmNvbnN0IFByb21wdElucHV0Q29tcG9uZW50ID0gZm9yd2FyZFJlZihcbiAgKFxuICAgIHtcbiAgICAgIFwiZGF0YS1lMmUtdGVzdC1pZFwiOiBkYXRhRTJlVGVzdElkLFxuICAgICAgbmFtZSxcbiAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcyA9IFtdLFxuICAgICAgdmFsdWUsXG4gICAgICBib3R0b21Ub29sYmFyID0geyBsZWZ0Q29udGVudDogbnVsbCwgcmlnaHRDb250ZW50OiBudWxsIH0sXG4gICAgICBpc1Byb2Nlc3NpbmcsXG4gICAgICBzZW5kQnV0dG9uUHJvcHMgPSB7XG4gICAgICAgIHR5cGU6IFwic3VibWl0XCIsXG4gICAgICAgIGljb246IFwiYXJyb3ctdXBcIixcbiAgICAgIH0sXG4gICAgICBhdXRvY29tcGxldGVMaXN0Rm9vdGVyLFxuICAgICAgY2xlYXJCdXR0b25BcmlhTGFiZWwgPSBcIkNsZWFyIGlucHV0XCIsXG4gICAgICBoaW50LFxuICAgICAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudCxcbiAgICAgIGlzTmF2QmFyVmFyaWFudCxcbiAgICAgIHBvcnRhbENvbnRhaW5lcixcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgb25Db21wbGV0ZSxcbiAgICAgIG9uQ2xlYXIsXG4gICAgICBvbkVudGVyS2V5LFxuICAgICAgb25Gb2N1cyxcbiAgICAgIG9uQmx1cixcbiAgICAgIG9uS2V5RG93bixcbiAgICAgIC4uLnJlc3RcbiAgICB9OiBQcm9tcHRJbnB1dFByb3BzLFxuICAgIHJlZjogUmVmT2JqZWN0PEhUTUxUZXh0QXJlYUVsZW1lbnQ+XG4gICk6IFJlYWN0RWxlbWVudCA9PiB7XG4gICAgY29uc3QgY29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCB0ZXh0QXJlYUNvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgaW50ZXJuYWxSZWYgPSB1c2VSZWY8SFRNTFRleHRBcmVhRWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgW3NlbGVjdGVkSW5kZXgsIHNldFNlbGVjdGVkSW5kZXhdID0gdXNlU3RhdGUoLTEpO1xuICAgIGNvbnN0IFtpc0NvbGxhcHNlZCwgc2V0SXNDb2xsYXBzZWRdID0gdXNlU3RhdGUoaXNOYXZCYXJWYXJpYW50KTtcbiAgICBjb25zdCB1c2VyVHlwZWRRdWVyeSA9IHVzZVJlZihcIlwiKTtcbiAgICBjb25zdCBbaXNBdXRvY29tcGxldGVMaXN0T3Blbiwgc2V0SXNBdXRvY29tcGxldGVMaXN0T3Blbl0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgdGV4dEFyZWFSZWYgPSByZWYgfHwgaW50ZXJuYWxSZWY7XG5cbiAgICB1c2VPdXRzaWRlQ2xpY2soXG4gICAgICBjb250YWluZXJSZWYsXG4gICAgICAoZXZ0KSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAhY29udGFpbmVyUmVmLmN1cnJlbnQuY29udGFpbnMoZXZ0LnRhcmdldCBhcyBOb2RlKSAmJlxuICAgICAgICAgICFwb3J0YWxDb250YWluZXI/LmNvbnRhaW5zKGV2dC50YXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICBldnQudGFyZ2V0ICE9PSBudWxsXG4gICAgICAgICkge1xuICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgIWlzQ29sbGFwc2VkICYmIGlzTmF2QmFyVmFyaWFudFxuICAgICk7XG5cbiAgICBjb25zdCBjbG9zZUF1dG9jb21wbGV0ZUxpc3QgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBzZXRJc0F1dG9jb21wbGV0ZUxpc3RPcGVuKGZhbHNlKTtcbiAgICAgIHNldFNlbGVjdGVkSW5kZXgoLTEpO1xuICAgIH0sIFtdKTtcblxuICAgIGNvbnN0IG9wZW5BdXRvY29tcGxldGVMaXN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgaWYgKGF1dG9jb21wbGV0ZUxpc3RJdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgc2V0SXNBdXRvY29tcGxldGVMaXN0T3Blbih0cnVlKTtcbiAgICAgICAgc2V0U2VsZWN0ZWRJbmRleCgtMSk7XG4gICAgICB9XG4gICAgfSwgW2F1dG9jb21wbGV0ZUxpc3RJdGVtc10pO1xuXG4gICAgY29uc3QgYWNjZXB0VGV4dFNlbGVjdGlvbiA9ICgpID0+IHtcbiAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgPSB2YWx1ZTtcbiAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQuc2V0U2VsZWN0aW9uUmFuZ2UodmFsdWUubGVuZ3RoLCB2YWx1ZS5sZW5ndGgpO1xuICAgIH07XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKGF1dG9jb21wbGV0ZUxpc3RJdGVtcy5sZW5ndGggJiYgIWlzQ29sbGFwc2VkKSB7XG4gICAgICAgIG9wZW5BdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIH1cbiAgICB9LCBbXG4gICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXMsXG4gICAgICBvcGVuQXV0b2NvbXBsZXRlTGlzdCxcbiAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCxcbiAgICAgIGlzQ29sbGFwc2VkLFxuICAgIF0pO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZSAhPT0gdXNlclR5cGVkUXVlcnkuY3VycmVudCAmJiBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuKSB7XG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQuc2V0U2VsZWN0aW9uUmFuZ2UoXG4gICAgICAgICAgdXNlclR5cGVkUXVlcnkuY3VycmVudC5sZW5ndGgsXG4gICAgICAgICAgdmFsdWUubGVuZ3RoXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSwgW3ZhbHVlLCB0ZXh0QXJlYVJlZiwgaXNBdXRvY29tcGxldGVMaXN0T3Blbl0pO1xuXG4gICAgLy8gRGV0ZXJtaW5lIHdoZW4gZm9jdXMgbGVhdmVzIHRoZSBjb250YWluZXIgdG8gY29sbGFwc2UgaXRcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgbGV0IGhhbmRsZXI6IChldnQ6IEZvY3VzRXZlbnQpID0+IHZvaWQ7XG4gICAgICBjb25zdCBjb250YWluZXIgPSBjb250YWluZXJSZWYuY3VycmVudDtcblxuICAgICAgaWYgKGlzTmF2QmFyVmFyaWFudCAmJiBjb250YWluZXIpIHtcbiAgICAgICAgaGFuZGxlciA9IChldnQ6IEZvY3VzRXZlbnQpID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAhY29udGFpbmVyUmVmLmN1cnJlbnQuY29udGFpbnMoZXZ0LnJlbGF0ZWRUYXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICAgICFwb3J0YWxDb250YWluZXI/LmNvbnRhaW5zKGV2dC5yZWxhdGVkVGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgICBldnQucmVsYXRlZFRhcmdldCAhPT0gbnVsbFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImZvY3Vzb3V0XCIsIGhhbmRsZXIpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBpZiAoY29udGFpbmVyKSB7XG4gICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJmb2N1c291dFwiLCBoYW5kbGVyKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9LCBbaXNOYXZCYXJWYXJpYW50LCBjb250YWluZXJSZWYsIHBvcnRhbENvbnRhaW5lcl0pO1xuXG4gICAgY29uc3QgZmxhdHRlbmVkTGlzdEl0ZW1zID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBjb25zdCBsaXN0OiBGbGF0dGVuZWRMaXN0SXRlbVtdID0gW107XG5cbiAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcy5mb3JFYWNoKChsaXN0SXRlbSkgPT4ge1xuICAgICAgICBsaXN0SXRlbS5pdGVtcy5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgIGxpc3QucHVzaCh7XG4gICAgICAgICAgICBjYXRlZ29yeTogbGlzdEl0ZW0uY2F0ZWdvcnksXG4gICAgICAgICAgICBpbmRleEluQ2F0ZWdvcnk6IGluZGV4LFxuICAgICAgICAgICAgdmFsdWU6IGl0ZW0udmFsdWUsXG4gICAgICAgICAgICBpZDogZ2V0TGlzdEl0ZW1JZChuYW1lLCBsaXN0SXRlbS5jYXRlZ29yeSwgaW5kZXgpLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGxpc3Q7XG4gICAgfSwgW2F1dG9jb21wbGV0ZUxpc3RJdGVtcywgbmFtZV0pO1xuXG4gICAgY29uc3QgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZSA9IChpbmRleDogbnVtYmVyLCBldnQ/OiBTeW50aGV0aWNFdmVudCkgPT4ge1xuICAgICAgc2V0U2VsZWN0ZWRJbmRleChpbmRleCk7XG4gICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgIGNvbnN0IHsgY2F0ZWdvcnksIHZhbHVlOiBpdGVtVmFsdWUgfSA9IGZsYXR0ZW5lZExpc3RJdGVtc1tpbmRleF07XG5cbiAgICAgICAgb25Db21wbGV0ZSh7IHZhbHVlOiBpdGVtVmFsdWUsIGNhdGVnb3J5LCBldnQsIGluZGV4IH0pO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVMaXN0SXRlbUNsaWNrID0gKFxuICAgICAgY2F0ZWdvcnk6IHN0cmluZyxcbiAgICAgIGluZGV4SW5DYXRlZ29yeTogbnVtYmVyLFxuICAgICAgZXZ0PzogTW91c2VFdmVudFxuICAgICkgPT4ge1xuICAgICAgY29uc3QgaW5kZXggPSBmbGF0dGVuZWRMaXN0SXRlbXMuZmluZEluZGV4KFxuICAgICAgICAobGlzdEl0ZW0pID0+XG4gICAgICAgICAgbGlzdEl0ZW0uY2F0ZWdvcnkgPT09IGNhdGVnb3J5ICYmXG4gICAgICAgICAgbGlzdEl0ZW0uaW5kZXhJbkNhdGVnb3J5ID09PSBpbmRleEluQ2F0ZWdvcnlcbiAgICAgICk7XG5cbiAgICAgIGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2UoaW5kZXgsIGV2dCk7XG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUtleURvd246IEtleWJvYXJkRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgaWYgKGlzQXV0b2NvbXBsZXRlTGlzdE9wZW4pIHtcbiAgICAgICAgc3dpdGNoIChldnQua2V5KSB7XG4gICAgICAgICAgY2FzZSBcIkVzY2FwZVwiOlxuICAgICAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICAgICAgICBvbkNvbXBsZXRlKHsgdmFsdWU6IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQsIGV2dCB9KTtcbiAgICAgICAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiRW50ZXJcIjpcbiAgICAgICAgICAgIGlmICghZXZ0LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgICAgICAgICAgYWNjZXB0VGV4dFNlbGVjdGlvbigpO1xuXG4gICAgICAgICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgIG9uRW50ZXJLZXk/LigpO1xuICAgICAgICAgICAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIiBcIjpcbiAgICAgICAgICAgIGFjY2VwdFRleHRTZWxlY3Rpb24oKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJBcnJvd1VwXCI6XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZShzZWxlY3RlZEluZGV4IC0gMSwgZXZ0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJBcnJvd0Rvd25cIjpcbiAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaWYgKHNlbGVjdGVkSW5kZXggPCBmbGF0dGVuZWRMaXN0SXRlbXMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlKHNlbGVjdGVkSW5kZXggKyAxLCBldnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3dpdGNoIChldnQua2V5KSB7XG4gICAgICAgICAgY2FzZSBcIkVzY2FwZVwiOlxuICAgICAgICAgICAgb25DbGVhcj8uKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiRW50ZXJcIjpcbiAgICAgICAgICAgIGlmICghZXZ0LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBvbkVudGVyS2V5Py4oKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIG9uS2V5RG93bj8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUNoYW5nZTogQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgdXNlclR5cGVkUXVlcnkuY3VycmVudCA9IGV2dC50YXJnZXQudmFsdWU7XG4gICAgICBvbkNoYW5nZShldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVGb2N1czogRm9jdXNFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBzZXRJc0NvbGxhcHNlZChmYWxzZSk7XG4gICAgICBvbkZvY3VzPy4oZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlQmx1cjogRm9jdXNFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBpZiAodmFsdWUgIT09IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQpIHtcbiAgICAgICAgb25Db21wbGV0ZT8uKHsgdmFsdWU6IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQsIGV2dCB9KTtcbiAgICAgIH1cbiAgICAgIG9uQmx1cj8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZVNlbmRCdXR0b25DbGljayA9IChldnQ6IE1vdXNlRXZlbnQ8SFRNTEJ1dHRvbkVsZW1lbnQ+KSA9PiB7XG4gICAgICBzZW5kQnV0dG9uUHJvcHMub25DbGljaz8uKGV2dCk7XG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZVByZXZlbnRGb2N1cyA9IChldnQ6IFJlYWN0LlBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgLy8gUHJldmVudCB0aGUgdGV4dGFyZWEgZnJvbSBiZWluZyB1bmZvY3VzZWRcbiAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVPbkNvbnRhaW5lclBvaW50ZXJEb3duID0gKGV2dDogUmVhY3QuUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAvLyBGb2N1cyB0ZXh0YXJlYSB3aGVuIGNsaWNraW5nIG9uIHRoZSBjb250YWluZXIgb25seVxuICAgICAgaWYgKGV2dC50YXJnZXQgPT09IGV2dC5jdXJyZW50VGFyZ2V0KSB7XG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBzZWxlY3RlZExpc3RJdGVtID1cbiAgICAgIHNlbGVjdGVkSW5kZXggIT09IC0xID8gZmxhdHRlbmVkTGlzdEl0ZW1zW3NlbGVjdGVkSW5kZXhdIDogbnVsbDtcblxuICAgIGNvbnN0IGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRFbG0gPSBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50ID8gKFxuICAgICAgPFN0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXJcbiAgICAgICAgaXNOYXZCYXJWYXJpYW50PXtpc05hdkJhclZhcmlhbnR9XG4gICAgICA+XG4gICAgICAgIDxUZXh0IGNvbG9yPVwidGVydGlhcnlcIj57ZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudH08L1RleHQ+XG4gICAgICA8L1N0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXI+XG4gICAgKSA6IG51bGw7XG5cbiAgICBjb25zdCBjbGVhckJ1dHRvbkVsbSA9IHZhbHVlID8gKFxuICAgICAgPFN0eWxlZENsZWFyQnV0dG9uXG4gICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgaWNvbj1cIngtY2lyY2xlLWZpbGxlZFwiXG4gICAgICAgIGFyaWEtbGFiZWw9e2NsZWFyQnV0dG9uQXJpYUxhYmVsfVxuICAgICAgICBpc05hdkJhclZhcmlhbnQ9e2lzTmF2QmFyVmFyaWFudH1cbiAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlUHJldmVudEZvY3VzfVxuICAgICAgICBvbkNsaWNrPXtvbkNsZWFyfVxuICAgICAgLz5cbiAgICApIDogKFxuICAgICAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudEVsbVxuICAgICk7XG5cbiAgICBjb25zdCBoaW50RWxtID0gISFoaW50ICYmIChcbiAgICAgIDxJbmxpbmUgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICA8VGV4dCBzaXplPVwic1wiIGNvbG9yPVwidGVydGlhcnlcIj5cbiAgICAgICAgICB7aGludH1cbiAgICAgICAgPC9UZXh0PlxuICAgICAgPC9JbmxpbmU+XG4gICAgKTtcblxuICAgIGNvbnN0IGJvdHRvbVRvb2xiYXJFbG0gPSAhaXNDb2xsYXBzZWQgJiYgKFxuICAgICAgPD5cbiAgICAgICAgPFN0eWxlZFNsb3QgcG9zaXRpb249XCJsZWZ0XCI+e2JvdHRvbVRvb2xiYXIubGVmdENvbnRlbnR9PC9TdHlsZWRTbG90PlxuICAgICAgICA8U3R5bGVkU2xvdCBwb3NpdGlvbj1cInJpZ2h0XCIgZGF0YS1lMmUtdGVzdC1pZD1cImJvdHRvbVRvb2xiYXJcIj5cbiAgICAgICAgICA8SW5saW5lIHNwYWNlPVwieHNcIiB2QWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAge2JvdHRvbVRvb2xiYXIucmlnaHRDb250ZW50fVxuICAgICAgICAgICAgPFJvdW5kQnV0dG9uXG4gICAgICAgICAgICAgIHsuLi5zZW5kQnV0dG9uUHJvcHN9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVNlbmRCdXR0b25DbGlja31cbiAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlUHJldmVudEZvY3VzfVxuICAgICAgICAgICAgICBhcmlhQXR0cmlidXRlcz17e1xuICAgICAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiBpc1Byb2Nlc3NpbmdcbiAgICAgICAgICAgICAgICAgID8gXCJQcm9jZXNzaW5nIHF1ZXJ5XCJcbiAgICAgICAgICAgICAgICAgIDogXCJTdWJtaXQgcXVlcnlcIixcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgdmFyaWFudD1cInByaW1hcnlcIlxuICAgICAgICAgICAgICBkaXNhYmxlZD17IXZhbHVlfVxuICAgICAgICAgICAgICBpY29uPXtpc1Byb2Nlc3NpbmcgPyBcInN0b3AtZmlsbGVkXCIgOiBzZW5kQnV0dG9uUHJvcHMuaWNvbn1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9JbmxpbmU+XG4gICAgICAgIDwvU3R5bGVkU2xvdD5cbiAgICAgICAgPFN0eWxlZENsZWFyIC8+XG4gICAgICA8Lz5cbiAgICApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBkYXRhLWUyZS10ZXN0LWlkPXtkYXRhRTJlVGVzdElkfVxuICAgICAgICAgIGRhdGEtZHMtaWQ9XCJQcm9tcHRJbnB1dFwiXG4gICAgICAgICAgcmVmPXtjb250YWluZXJSZWZ9XG4gICAgICAgICAgLy8gVHJhbnNsYXRpb24gZGlzYWJsZWQgZm9yIGNvbnNpc3RlbmN5IHdpdGggdGhlIGF1dG9jb21wbGV0ZSBsaXN0XG4gICAgICAgICAgdHJhbnNsYXRlPVwibm9cIlxuICAgICAgICA+XG4gICAgICAgICAgPFN0YWNrIHNwYWNlPVwic1wiPlxuICAgICAgICAgICAgPEN1c3RvbUNvbnRhaW5lclxuICAgICAgICAgICAgICBlbGV2YXRpb249ezB9XG4gICAgICAgICAgICAgIGJvcmRlclJhZGl1cz17aXNDb2xsYXBzZWQgPyBcInhzXCIgOiBcIm1cIn1cbiAgICAgICAgICAgICAgaGlkZUJvcmRlcj17aXNDb2xsYXBzZWR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICByZWY9e3RleHRBcmVhQ29udGFpbmVyUmVmfVxuICAgICAgICAgICAgICAgIG9uUG9pbnRlckRvd249e2hhbmRsZU9uQ29udGFpbmVyUG9pbnRlckRvd259XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8U3R5bGVkVGV4dEFyZWFDb250YWluZXI+XG4gICAgICAgICAgICAgICAgICA8UHJvbXB0VGV4dEFyZWFcbiAgICAgICAgICAgICAgICAgICAgey4uLnJlc3R9XG4gICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQ9e1xuICAgICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQgPyBgJHtkYXRhRTJlVGVzdElkfS1pbnB1dGAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFSZWZ9XG4gICAgICAgICAgICAgICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZExpc3RJdGVtPXtzZWxlY3RlZExpc3RJdGVtfVxuICAgICAgICAgICAgICAgICAgICBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuPXtpc0F1dG9jb21wbGV0ZUxpc3RPcGVufVxuICAgICAgICAgICAgICAgICAgICBpc0NvbGxhcHNlZD17aXNDb2xsYXBzZWR9XG4gICAgICAgICAgICAgICAgICAgIG9uRm9jdXM9e2hhbmRsZUZvY3VzfVxuICAgICAgICAgICAgICAgICAgICBvbkJsdXI9e2hhbmRsZUJsdXJ9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17aGFuZGxlS2V5RG93bn1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICB7Y2xlYXJCdXR0b25FbG19XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRUZXh0QXJlYUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICB7Ym90dG9tVG9vbGJhckVsbX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L0N1c3RvbUNvbnRhaW5lcj5cbiAgICAgICAgICAgIHtoaW50RWxtfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxBdXRvY29tcGxldGVMaXN0XG4gICAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zPXthdXRvY29tcGxldGVMaXN0SXRlbXN9XG4gICAgICAgICAgdHJpZ2dlclJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgc2VsZWN0ZWRMaXN0SXRlbT17c2VsZWN0ZWRMaXN0SXRlbX1cbiAgICAgICAgICBpc09wZW49e2lzQXV0b2NvbXBsZXRlTGlzdE9wZW59XG4gICAgICAgICAgYXV0b2NvbXBsZXRlTGlzdEZvb3Rlcj17YXV0b2NvbXBsZXRlTGlzdEZvb3Rlcn1cbiAgICAgICAgICBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn1cbiAgICAgICAgICBvbkxpc3RJdGVtQ2xpY2s9e2hhbmRsZUxpc3RJdGVtQ2xpY2t9XG4gICAgICAgIC8+XG4gICAgICA8Lz5cbiAgICApO1xuICB9XG4pO1xuXG5jb25zdCBDdXN0b21CdXR0b24gPSBzdHlsZWQoQnV0dG9uKSgoeyB0aGVtZSB9KSA9PiAoe1xuICBib3JkZXJSYWRpdXM6IHRoZW1lLnZhcmlhYmxlcy5zaXplLmJvcmRlclJhZGl1cy5sLFxufSkpO1xuXG4vLyBuZWVkIHRvIHNpbXBsaWZ5IHRoaXMgdHlwZSBmb3IgcmV1c2VcbmNvbnN0IFN1Z2dlc3Rpb25CdXR0b24gPSBmb3J3YXJkUmVmKFxuICA8QyBleHRlbmRzIFJlYWN0LkVsZW1lbnRUeXBlID0gXCJidXR0b25cIj4oXG4gICAgcHJvcHM6IFBvbHltb3JwaGljQ29tcG9uZW50UHJvcHNXaXRoUmVmPFxuICAgICAgQyxcbiAgICAgIE9taXQ8QnV0dG9uUHJvcHMsIFwidmFyaWFudFwiIHwgXCJzaXplXCIgfCBcInJlZlwiPlxuICAgID4sXG4gICAgcmVmOiBQb2x5bW9ycGhpY1JlZjxDPlxuICApID0+IDxDdXN0b21CdXR0b24gey4uLnByb3BzfSB2YXJpYW50PVwic2Vjb25kYXJ5XCIgc2l6ZT1cInNcIiByZWY9e3JlZn0gLz5cbik7XG5cbmV4cG9ydCBjb25zdCBQcm9tcHRJbnB1dCA9IE9iamVjdC5hc3NpZ24oUHJvbXB0SW5wdXRDb21wb25lbnQsIHtcbiAgU3VnZ2VzdGlvbkJ1dHRvbixcbn0pIGFzIHR5cGVvZiBQcm9tcHRJbnB1dENvbXBvbmVudCAmIHtcbiAgU3VnZ2VzdGlvbkJ1dHRvbjogdHlwZW9mIFN1Z2dlc3Rpb25CdXR0b247XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTJFRSJ9 */"),StyledClearButton=(0,_styled.default)(_PictogramButton.PictogramButton,{target:"e1rdcmtk3",label:"StyledClearButton"})(({theme,isNavBarVariant})=>({position:"absolute",right:theme.variables.size.spacing.s,top:isNavBarVariant?0:theme.variables.size.spacing.s}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUHJvbXB0SW5wdXQvUHJvbXB0SW5wdXQudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Qcm9tcHRJbnB1dC9Qcm9tcHRJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBSZWFjdEVsZW1lbnQsXG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlZk9iamVjdCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIFN5bnRoZXRpY0V2ZW50LFxuICBNb3VzZUV2ZW50LFxufSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZVJlZixcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG4gIGZvcndhcmRSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgdHlwZSB7IFByb21wdFRleHRBcmVhUHJvcHMgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHsgUHJvbXB0VGV4dEFyZWEgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHsgQ29udGFpbmVyIH0gZnJvbSBcIi4uL0NvbnRhaW5lclwiO1xuaW1wb3J0IHR5cGUgeyBBdXRvY29tcGxldGVMaXN0UHJvcHMgfSBmcm9tIFwiLi9BdXRvY29tcGxldGVMaXN0XCI7XG5pbXBvcnQgeyBBdXRvY29tcGxldGVMaXN0IH0gZnJvbSBcIi4vQXV0b2NvbXBsZXRlTGlzdFwiO1xuaW1wb3J0IHtcbiAgZ2V0TGlzdEl0ZW1JZCxcbiAgdHlwZSBGbGF0dGVuZWRMaXN0SXRlbSxcbiAgdHlwZSBMaXN0SXRlbVZhbHVlLFxufSBmcm9tIFwiLi9DYXRlZ29yeUxpc3RcIjtcbmltcG9ydCB7IFRleHQgfSBmcm9tIFwiLi4vVHlwb2dyYXBoeS9UZXh0XCI7XG5pbXBvcnQgeyBCdXR0b24sIHR5cGUgQnV0dG9uUHJvcHMgfSBmcm9tIFwiLi4vQnV0dG9uL0J1dHRvblwiO1xuaW1wb3J0IHR5cGUge1xuICBQb2x5bW9ycGhpY1JlZixcbiAgUG9seW1vcnBoaWNDb21wb25lbnRQcm9wc1dpdGhSZWYsXG59IGZyb20gXCIuLi8uLi90eXBlc1wiO1xuaW1wb3J0IHsgSW5saW5lIH0gZnJvbSBcIi4uL0lubGluZS9JbmxpbmVcIjtcbmltcG9ydCB0eXBlIHsgUm91bmRCdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9Sb3VuZEJ1dHRvbi9Sb3VuZEJ1dHRvblwiO1xuaW1wb3J0IHsgUm91bmRCdXR0b24gfSBmcm9tIFwiLi4vUm91bmRCdXR0b24vUm91bmRCdXR0b25cIjtcbmltcG9ydCB0eXBlIHsgUGljdG9ncmFtQnV0dG9uUHJvcHMgfSBmcm9tIFwiLi4vUGljdG9ncmFtQnV0dG9uL1BpY3RvZ3JhbUJ1dHRvblwiO1xuaW1wb3J0IHsgUGljdG9ncmFtQnV0dG9uIH0gZnJvbSBcIi4uL1BpY3RvZ3JhbUJ1dHRvbi9QaWN0b2dyYW1CdXR0b25cIjtcbmltcG9ydCB7IFN0YWNrIH0gZnJvbSBcIi4uL1N0YWNrL1N0YWNrXCI7XG5pbXBvcnQgeyB1c2VPdXRzaWRlQ2xpY2sgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL3VzZU91dHNpZGVDbGlja1wiO1xuXG5jb25zdCBDdXN0b21Db250YWluZXIgPSBzdHlsZWQoQ29udGFpbmVyKTx7IGhpZGVCb3JkZXI6IGJvb2xlYW4gfT4oXG4gICh7IHRoZW1lLCBoaWRlQm9yZGVyIH0pID0+ICh7XG4gICAgYm9yZGVyOiBgMXB4IHNvbGlkICR7dGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5wcmltYXJ5LmRlZmF1bHR9YCxcbiAgICAuLi4oaGlkZUJvcmRlciAmJiB7XG4gICAgICBib3JkZXJDb2xvcjogXCJ0cmFuc3BhcmVudFwiLFxuICAgIH0pLFxuICAgIGN1cnNvcjogXCJ0ZXh0XCIsXG4gICAgW2AmOmhhcyh0ZXh0YXJlYTpmb2N1cy12aXNpYmxlKWBdOiB7XG4gICAgICBvdXRsaW5lV2lkdGg6IDEsXG4gICAgICBvdXRsaW5lU3R5bGU6IFwic29saWRcIixcbiAgICAgIG91dGxpbmVPZmZzZXQ6IC0xLFxuICAgICAgb3V0bGluZUNvbG9yOiB0aGVtZS52YWx1ZXMuY29sb3IuYm9yZGVyLmFjY2VudC5kZWZhdWx0LFxuICAgICAgYm94U2hhZG93OiB0aGVtZS52YWx1ZXMuc2hhZG93LmZvY3VzUmluZyxcblxuICAgICAgXCJAbWVkaWEgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzowKVwiOiB7XG4gICAgICAgIG91dGxpbmVDb2xvcjogdGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5hY2NlbnQuZGVmYXVsdCxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZFRleHRBcmVhQ29udGFpbmVyID0gc3R5bGVkLmRpdih7XG4gIGJvcmRlclJhZGl1czogXCJpbmhlcml0XCIsXG4gIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG59KTtcblxudHlwZSBTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyUHJvcHMgPSBQaWNrPFxuICBQcm9tcHRJbnB1dFByb3BzLFxuICBcImlzTmF2QmFyVmFyaWFudFwiXG4+O1xuXG5jb25zdCBTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyID1cbiAgc3R5bGVkLmRpdjxTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyUHJvcHM+KFxuICAgICh7IHRoZW1lLCBpc05hdkJhclZhcmlhbnQgfSkgPT4gKHtcbiAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICB0b3A6IGlzTmF2QmFyVmFyaWFudFxuICAgICAgICA/IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHhzXG4gICAgICAgIDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5tLFxuICAgICAgcmlnaHQ6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubSxcbiAgICAgIHVzZXJTZWxlY3Q6IFwibm9uZVwiLFxuICAgICAgcG9pbnRlckV2ZW50czogXCJub25lXCIsXG4gICAgfSlcbiAgKTtcblxudHlwZSBTdHlsZWRDbGVhckJ1dHRvblByb3BzID0gUGljdG9ncmFtQnV0dG9uUHJvcHMgJlxuICBQaWNrPFByb21wdElucHV0UHJvcHMsIFwiaXNOYXZCYXJWYXJpYW50XCI+O1xuXG5jb25zdCBTdHlsZWRDbGVhckJ1dHRvbiA9IHN0eWxlZChQaWN0b2dyYW1CdXR0b24pPFN0eWxlZENsZWFyQnV0dG9uUHJvcHM+KFxuICAoeyB0aGVtZSwgaXNOYXZCYXJWYXJpYW50IH0pID0+ICh7XG4gICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICByaWdodDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zLFxuICAgIHRvcDogaXNOYXZCYXJWYXJpYW50ID8gMCA6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcucyxcbiAgfSlcbik7XG5cbi8vIFVzaW5nIGZsb2F0IGluIG9yZGVyIHRvIGF2b2lkIHRoZSBpbnZpc2libGUgYXJlYSBiZXR3ZWVuIHRoZSBzbG90c1xuLy8gdGhhdCBwcmV2ZW50cyB0aGUgdGV4dGFyZWEgZnJvbSBiZWluZyBmb2N1c2VkXG5jb25zdCBTdHlsZWRTbG90ID0gc3R5bGVkLmRpdjx7IHBvc2l0aW9uOiBcImxlZnRcIiB8IFwicmlnaHRcIiB9PihcbiAgKHsgcG9zaXRpb24sIHRoZW1lIH0pID0+ICh7XG4gICAgZmxvYXQ6IHBvc2l0aW9uLFxuICAgIG1hcmdpbjogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5tLFxuICAgIGN1cnNvcjogXCJkZWZhdWx0XCIsXG4gIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRDbGVhciA9IHN0eWxlZC5kaXYoe1xuICBjbGVhcjogXCJib3RoXCIsXG59KTtcblxuZXhwb3J0IHR5cGUgUHJvbXB0SW5wdXRQcm9wcyA9IHtcbiAgXCJkYXRhLWUyZS10ZXN0LWlkXCI/OiBzdHJpbmc7XG4gIC8qKiBUb29sYmFyIGVsZW1lbnRzIGJlbG93IHRleHQgYXJlYSAqL1xuICBib3R0b21Ub29sYmFyPzoge1xuICAgIGxlZnRDb250ZW50PzogUmVhY3RFbGVtZW50O1xuICAgIHJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgfTtcbiAgLyoqIEN1cnJlbnRseSBzaG93cyBzZW5kIGJ1dHRvbiBwcm9jZXNzaW5nIHN0YXRlICAqL1xuICBpc1Byb2Nlc3Npbmc/OiBib29sZWFuO1xuICBzZW5kQnV0dG9uUHJvcHM/OiBPbWl0PFJvdW5kQnV0dG9uUHJvcHMsIFwiaWNvblwiIHwgXCJ2YXJpYW50XCI+ICYge1xuICAgIGljb24/OiBcImFycm93LXVwXCIgfCBcInNlYXJjaFwiIHwgXCJhcnJvdy1yaWdodFwiO1xuICB9O1xuICBjbGVhckJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgaGludD86IFJlYWN0RWxlbWVudDtcbiAgLyoqIFNob3dzIGluIHRoZSBjbGVhciBidXR0b24gc3BhY2UgaW4gZW1wdHkgc3RhdGUgKi9cbiAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgb25DbGVhcjogKCkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCB3aGVuIHVzZXIgc2VsZWN0cyAob3IgcmVqZWN0cykgYSBsaXN0IGl0ZW0gZnJvbSBhdXRvY29tcGxldGUgbGlzdCAqL1xuICBvbkNvbXBsZXRlPzogKHtcbiAgICB2YWx1ZSxcbiAgICBjYXRlZ29yeSxcbiAgICBldnQsXG4gICAgaW5kZXgsXG4gIH06IHtcbiAgICB2YWx1ZTogTGlzdEl0ZW1WYWx1ZTtcbiAgICBjYXRlZ29yeT86IHN0cmluZztcbiAgICBldnQ/OiBTeW50aGV0aWNFdmVudDtcbiAgICBpbmRleD86IG51bWJlcjtcbiAgfSkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCBvbiBFbnRlciBrZXkgdG8gc3VibWl0IHRoZSBmb3JtICAqL1xuICBvbkVudGVyS2V5OiAoKSA9PiB2b2lkO1xufSAmIE9taXQ8XG4gIFByb21wdFRleHRBcmVhUHJvcHMsXG4gIFwiaXNDb2xsYXBzZWRcIiB8IFwiaXNBdXRvY29tcGxldGVMaXN0T3BlblwiIHwgXCJzZWxlY3RlZExpc3RJdGVtXCJcbj4gJlxuICBQaWNrPFxuICAgIEF1dG9jb21wbGV0ZUxpc3RQcm9wcyxcbiAgICBcImF1dG9jb21wbGV0ZUxpc3RJdGVtc1wiIHwgXCJhdXRvY29tcGxldGVMaXN0Rm9vdGVyXCIgfCBcInBvcnRhbENvbnRhaW5lclwiXG4gID47XG5cbmNvbnN0IFByb21wdElucHV0Q29tcG9uZW50ID0gZm9yd2FyZFJlZihcbiAgKFxuICAgIHtcbiAgICAgIFwiZGF0YS1lMmUtdGVzdC1pZFwiOiBkYXRhRTJlVGVzdElkLFxuICAgICAgbmFtZSxcbiAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcyA9IFtdLFxuICAgICAgdmFsdWUsXG4gICAgICBib3R0b21Ub29sYmFyID0geyBsZWZ0Q29udGVudDogbnVsbCwgcmlnaHRDb250ZW50OiBudWxsIH0sXG4gICAgICBpc1Byb2Nlc3NpbmcsXG4gICAgICBzZW5kQnV0dG9uUHJvcHMgPSB7XG4gICAgICAgIHR5cGU6IFwic3VibWl0XCIsXG4gICAgICAgIGljb246IFwiYXJyb3ctdXBcIixcbiAgICAgIH0sXG4gICAgICBhdXRvY29tcGxldGVMaXN0Rm9vdGVyLFxuICAgICAgY2xlYXJCdXR0b25BcmlhTGFiZWwgPSBcIkNsZWFyIGlucHV0XCIsXG4gICAgICBoaW50LFxuICAgICAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudCxcbiAgICAgIGlzTmF2QmFyVmFyaWFudCxcbiAgICAgIHBvcnRhbENvbnRhaW5lcixcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgb25Db21wbGV0ZSxcbiAgICAgIG9uQ2xlYXIsXG4gICAgICBvbkVudGVyS2V5LFxuICAgICAgb25Gb2N1cyxcbiAgICAgIG9uQmx1cixcbiAgICAgIG9uS2V5RG93bixcbiAgICAgIC4uLnJlc3RcbiAgICB9OiBQcm9tcHRJbnB1dFByb3BzLFxuICAgIHJlZjogUmVmT2JqZWN0PEhUTUxUZXh0QXJlYUVsZW1lbnQ+XG4gICk6IFJlYWN0RWxlbWVudCA9PiB7XG4gICAgY29uc3QgY29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCB0ZXh0QXJlYUNvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgaW50ZXJuYWxSZWYgPSB1c2VSZWY8SFRNTFRleHRBcmVhRWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgW3NlbGVjdGVkSW5kZXgsIHNldFNlbGVjdGVkSW5kZXhdID0gdXNlU3RhdGUoLTEpO1xuICAgIGNvbnN0IFtpc0NvbGxhcHNlZCwgc2V0SXNDb2xsYXBzZWRdID0gdXNlU3RhdGUoaXNOYXZCYXJWYXJpYW50KTtcbiAgICBjb25zdCB1c2VyVHlwZWRRdWVyeSA9IHVzZVJlZihcIlwiKTtcbiAgICBjb25zdCBbaXNBdXRvY29tcGxldGVMaXN0T3Blbiwgc2V0SXNBdXRvY29tcGxldGVMaXN0T3Blbl0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgdGV4dEFyZWFSZWYgPSByZWYgfHwgaW50ZXJuYWxSZWY7XG5cbiAgICB1c2VPdXRzaWRlQ2xpY2soXG4gICAgICBjb250YWluZXJSZWYsXG4gICAgICAoZXZ0KSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAhY29udGFpbmVyUmVmLmN1cnJlbnQuY29udGFpbnMoZXZ0LnRhcmdldCBhcyBOb2RlKSAmJlxuICAgICAgICAgICFwb3J0YWxDb250YWluZXI/LmNvbnRhaW5zKGV2dC50YXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICBldnQudGFyZ2V0ICE9PSBudWxsXG4gICAgICAgICkge1xuICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgIWlzQ29sbGFwc2VkICYmIGlzTmF2QmFyVmFyaWFudFxuICAgICk7XG5cbiAgICBjb25zdCBjbG9zZUF1dG9jb21wbGV0ZUxpc3QgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBzZXRJc0F1dG9jb21wbGV0ZUxpc3RPcGVuKGZhbHNlKTtcbiAgICAgIHNldFNlbGVjdGVkSW5kZXgoLTEpO1xuICAgIH0sIFtdKTtcblxuICAgIGNvbnN0IG9wZW5BdXRvY29tcGxldGVMaXN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgaWYgKGF1dG9jb21wbGV0ZUxpc3RJdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgc2V0SXNBdXRvY29tcGxldGVMaXN0T3Blbih0cnVlKTtcbiAgICAgICAgc2V0U2VsZWN0ZWRJbmRleCgtMSk7XG4gICAgICB9XG4gICAgfSwgW2F1dG9jb21wbGV0ZUxpc3RJdGVtc10pO1xuXG4gICAgY29uc3QgYWNjZXB0VGV4dFNlbGVjdGlvbiA9ICgpID0+IHtcbiAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgPSB2YWx1ZTtcbiAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQuc2V0U2VsZWN0aW9uUmFuZ2UodmFsdWUubGVuZ3RoLCB2YWx1ZS5sZW5ndGgpO1xuICAgIH07XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKGF1dG9jb21wbGV0ZUxpc3RJdGVtcy5sZW5ndGggJiYgIWlzQ29sbGFwc2VkKSB7XG4gICAgICAgIG9wZW5BdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIH1cbiAgICB9LCBbXG4gICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXMsXG4gICAgICBvcGVuQXV0b2NvbXBsZXRlTGlzdCxcbiAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCxcbiAgICAgIGlzQ29sbGFwc2VkLFxuICAgIF0pO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZSAhPT0gdXNlclR5cGVkUXVlcnkuY3VycmVudCAmJiBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuKSB7XG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQuc2V0U2VsZWN0aW9uUmFuZ2UoXG4gICAgICAgICAgdXNlclR5cGVkUXVlcnkuY3VycmVudC5sZW5ndGgsXG4gICAgICAgICAgdmFsdWUubGVuZ3RoXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSwgW3ZhbHVlLCB0ZXh0QXJlYVJlZiwgaXNBdXRvY29tcGxldGVMaXN0T3Blbl0pO1xuXG4gICAgLy8gRGV0ZXJtaW5lIHdoZW4gZm9jdXMgbGVhdmVzIHRoZSBjb250YWluZXIgdG8gY29sbGFwc2UgaXRcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgbGV0IGhhbmRsZXI6IChldnQ6IEZvY3VzRXZlbnQpID0+IHZvaWQ7XG4gICAgICBjb25zdCBjb250YWluZXIgPSBjb250YWluZXJSZWYuY3VycmVudDtcblxuICAgICAgaWYgKGlzTmF2QmFyVmFyaWFudCAmJiBjb250YWluZXIpIHtcbiAgICAgICAgaGFuZGxlciA9IChldnQ6IEZvY3VzRXZlbnQpID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAhY29udGFpbmVyUmVmLmN1cnJlbnQuY29udGFpbnMoZXZ0LnJlbGF0ZWRUYXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICAgICFwb3J0YWxDb250YWluZXI/LmNvbnRhaW5zKGV2dC5yZWxhdGVkVGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgICBldnQucmVsYXRlZFRhcmdldCAhPT0gbnVsbFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImZvY3Vzb3V0XCIsIGhhbmRsZXIpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBpZiAoY29udGFpbmVyKSB7XG4gICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJmb2N1c291dFwiLCBoYW5kbGVyKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9LCBbaXNOYXZCYXJWYXJpYW50LCBjb250YWluZXJSZWYsIHBvcnRhbENvbnRhaW5lcl0pO1xuXG4gICAgY29uc3QgZmxhdHRlbmVkTGlzdEl0ZW1zID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBjb25zdCBsaXN0OiBGbGF0dGVuZWRMaXN0SXRlbVtdID0gW107XG5cbiAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcy5mb3JFYWNoKChsaXN0SXRlbSkgPT4ge1xuICAgICAgICBsaXN0SXRlbS5pdGVtcy5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgIGxpc3QucHVzaCh7XG4gICAgICAgICAgICBjYXRlZ29yeTogbGlzdEl0ZW0uY2F0ZWdvcnksXG4gICAgICAgICAgICBpbmRleEluQ2F0ZWdvcnk6IGluZGV4LFxuICAgICAgICAgICAgdmFsdWU6IGl0ZW0udmFsdWUsXG4gICAgICAgICAgICBpZDogZ2V0TGlzdEl0ZW1JZChuYW1lLCBsaXN0SXRlbS5jYXRlZ29yeSwgaW5kZXgpLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGxpc3Q7XG4gICAgfSwgW2F1dG9jb21wbGV0ZUxpc3RJdGVtcywgbmFtZV0pO1xuXG4gICAgY29uc3QgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZSA9IChpbmRleDogbnVtYmVyLCBldnQ/OiBTeW50aGV0aWNFdmVudCkgPT4ge1xuICAgICAgc2V0U2VsZWN0ZWRJbmRleChpbmRleCk7XG4gICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgIGNvbnN0IHsgY2F0ZWdvcnksIHZhbHVlOiBpdGVtVmFsdWUgfSA9IGZsYXR0ZW5lZExpc3RJdGVtc1tpbmRleF07XG5cbiAgICAgICAgb25Db21wbGV0ZSh7IHZhbHVlOiBpdGVtVmFsdWUsIGNhdGVnb3J5LCBldnQsIGluZGV4IH0pO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVMaXN0SXRlbUNsaWNrID0gKFxuICAgICAgY2F0ZWdvcnk6IHN0cmluZyxcbiAgICAgIGluZGV4SW5DYXRlZ29yeTogbnVtYmVyLFxuICAgICAgZXZ0PzogTW91c2VFdmVudFxuICAgICkgPT4ge1xuICAgICAgY29uc3QgaW5kZXggPSBmbGF0dGVuZWRMaXN0SXRlbXMuZmluZEluZGV4KFxuICAgICAgICAobGlzdEl0ZW0pID0+XG4gICAgICAgICAgbGlzdEl0ZW0uY2F0ZWdvcnkgPT09IGNhdGVnb3J5ICYmXG4gICAgICAgICAgbGlzdEl0ZW0uaW5kZXhJbkNhdGVnb3J5ID09PSBpbmRleEluQ2F0ZWdvcnlcbiAgICAgICk7XG5cbiAgICAgIGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2UoaW5kZXgsIGV2dCk7XG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUtleURvd246IEtleWJvYXJkRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgaWYgKGlzQXV0b2NvbXBsZXRlTGlzdE9wZW4pIHtcbiAgICAgICAgc3dpdGNoIChldnQua2V5KSB7XG4gICAgICAgICAgY2FzZSBcIkVzY2FwZVwiOlxuICAgICAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICAgICAgICBvbkNvbXBsZXRlKHsgdmFsdWU6IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQsIGV2dCB9KTtcbiAgICAgICAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiRW50ZXJcIjpcbiAgICAgICAgICAgIGlmICghZXZ0LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgICAgICAgICAgYWNjZXB0VGV4dFNlbGVjdGlvbigpO1xuXG4gICAgICAgICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgIG9uRW50ZXJLZXk/LigpO1xuICAgICAgICAgICAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIiBcIjpcbiAgICAgICAgICAgIGFjY2VwdFRleHRTZWxlY3Rpb24oKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJBcnJvd1VwXCI6XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZShzZWxlY3RlZEluZGV4IC0gMSwgZXZ0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJBcnJvd0Rvd25cIjpcbiAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaWYgKHNlbGVjdGVkSW5kZXggPCBmbGF0dGVuZWRMaXN0SXRlbXMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlKHNlbGVjdGVkSW5kZXggKyAxLCBldnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3dpdGNoIChldnQua2V5KSB7XG4gICAgICAgICAgY2FzZSBcIkVzY2FwZVwiOlxuICAgICAgICAgICAgb25DbGVhcj8uKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiRW50ZXJcIjpcbiAgICAgICAgICAgIGlmICghZXZ0LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBvbkVudGVyS2V5Py4oKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIG9uS2V5RG93bj8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUNoYW5nZTogQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgdXNlclR5cGVkUXVlcnkuY3VycmVudCA9IGV2dC50YXJnZXQudmFsdWU7XG4gICAgICBvbkNoYW5nZShldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVGb2N1czogRm9jdXNFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBzZXRJc0NvbGxhcHNlZChmYWxzZSk7XG4gICAgICBvbkZvY3VzPy4oZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlQmx1cjogRm9jdXNFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBpZiAodmFsdWUgIT09IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQpIHtcbiAgICAgICAgb25Db21wbGV0ZT8uKHsgdmFsdWU6IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQsIGV2dCB9KTtcbiAgICAgIH1cbiAgICAgIG9uQmx1cj8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZVNlbmRCdXR0b25DbGljayA9IChldnQ6IE1vdXNlRXZlbnQ8SFRNTEJ1dHRvbkVsZW1lbnQ+KSA9PiB7XG4gICAgICBzZW5kQnV0dG9uUHJvcHMub25DbGljaz8uKGV2dCk7XG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZVByZXZlbnRGb2N1cyA9IChldnQ6IFJlYWN0LlBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgLy8gUHJldmVudCB0aGUgdGV4dGFyZWEgZnJvbSBiZWluZyB1bmZvY3VzZWRcbiAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVPbkNvbnRhaW5lclBvaW50ZXJEb3duID0gKGV2dDogUmVhY3QuUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAvLyBGb2N1cyB0ZXh0YXJlYSB3aGVuIGNsaWNraW5nIG9uIHRoZSBjb250YWluZXIgb25seVxuICAgICAgaWYgKGV2dC50YXJnZXQgPT09IGV2dC5jdXJyZW50VGFyZ2V0KSB7XG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBzZWxlY3RlZExpc3RJdGVtID1cbiAgICAgIHNlbGVjdGVkSW5kZXggIT09IC0xID8gZmxhdHRlbmVkTGlzdEl0ZW1zW3NlbGVjdGVkSW5kZXhdIDogbnVsbDtcblxuICAgIGNvbnN0IGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRFbG0gPSBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50ID8gKFxuICAgICAgPFN0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXJcbiAgICAgICAgaXNOYXZCYXJWYXJpYW50PXtpc05hdkJhclZhcmlhbnR9XG4gICAgICA+XG4gICAgICAgIDxUZXh0IGNvbG9yPVwidGVydGlhcnlcIj57ZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudH08L1RleHQ+XG4gICAgICA8L1N0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXI+XG4gICAgKSA6IG51bGw7XG5cbiAgICBjb25zdCBjbGVhckJ1dHRvbkVsbSA9IHZhbHVlID8gKFxuICAgICAgPFN0eWxlZENsZWFyQnV0dG9uXG4gICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgaWNvbj1cIngtY2lyY2xlLWZpbGxlZFwiXG4gICAgICAgIGFyaWEtbGFiZWw9e2NsZWFyQnV0dG9uQXJpYUxhYmVsfVxuICAgICAgICBpc05hdkJhclZhcmlhbnQ9e2lzTmF2QmFyVmFyaWFudH1cbiAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlUHJldmVudEZvY3VzfVxuICAgICAgICBvbkNsaWNrPXtvbkNsZWFyfVxuICAgICAgLz5cbiAgICApIDogKFxuICAgICAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudEVsbVxuICAgICk7XG5cbiAgICBjb25zdCBoaW50RWxtID0gISFoaW50ICYmIChcbiAgICAgIDxJbmxpbmUgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICA8VGV4dCBzaXplPVwic1wiIGNvbG9yPVwidGVydGlhcnlcIj5cbiAgICAgICAgICB7aGludH1cbiAgICAgICAgPC9UZXh0PlxuICAgICAgPC9JbmxpbmU+XG4gICAgKTtcblxuICAgIGNvbnN0IGJvdHRvbVRvb2xiYXJFbG0gPSAhaXNDb2xsYXBzZWQgJiYgKFxuICAgICAgPD5cbiAgICAgICAgPFN0eWxlZFNsb3QgcG9zaXRpb249XCJsZWZ0XCI+e2JvdHRvbVRvb2xiYXIubGVmdENvbnRlbnR9PC9TdHlsZWRTbG90PlxuICAgICAgICA8U3R5bGVkU2xvdCBwb3NpdGlvbj1cInJpZ2h0XCIgZGF0YS1lMmUtdGVzdC1pZD1cImJvdHRvbVRvb2xiYXJcIj5cbiAgICAgICAgICA8SW5saW5lIHNwYWNlPVwieHNcIiB2QWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAge2JvdHRvbVRvb2xiYXIucmlnaHRDb250ZW50fVxuICAgICAgICAgICAgPFJvdW5kQnV0dG9uXG4gICAgICAgICAgICAgIHsuLi5zZW5kQnV0dG9uUHJvcHN9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVNlbmRCdXR0b25DbGlja31cbiAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlUHJldmVudEZvY3VzfVxuICAgICAgICAgICAgICBhcmlhQXR0cmlidXRlcz17e1xuICAgICAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiBpc1Byb2Nlc3NpbmdcbiAgICAgICAgICAgICAgICAgID8gXCJQcm9jZXNzaW5nIHF1ZXJ5XCJcbiAgICAgICAgICAgICAgICAgIDogXCJTdWJtaXQgcXVlcnlcIixcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgdmFyaWFudD1cInByaW1hcnlcIlxuICAgICAgICAgICAgICBkaXNhYmxlZD17IXZhbHVlfVxuICAgICAgICAgICAgICBpY29uPXtpc1Byb2Nlc3NpbmcgPyBcInN0b3AtZmlsbGVkXCIgOiBzZW5kQnV0dG9uUHJvcHMuaWNvbn1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9JbmxpbmU+XG4gICAgICAgIDwvU3R5bGVkU2xvdD5cbiAgICAgICAgPFN0eWxlZENsZWFyIC8+XG4gICAgICA8Lz5cbiAgICApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBkYXRhLWUyZS10ZXN0LWlkPXtkYXRhRTJlVGVzdElkfVxuICAgICAgICAgIGRhdGEtZHMtaWQ9XCJQcm9tcHRJbnB1dFwiXG4gICAgICAgICAgcmVmPXtjb250YWluZXJSZWZ9XG4gICAgICAgICAgLy8gVHJhbnNsYXRpb24gZGlzYWJsZWQgZm9yIGNvbnNpc3RlbmN5IHdpdGggdGhlIGF1dG9jb21wbGV0ZSBsaXN0XG4gICAgICAgICAgdHJhbnNsYXRlPVwibm9cIlxuICAgICAgICA+XG4gICAgICAgICAgPFN0YWNrIHNwYWNlPVwic1wiPlxuICAgICAgICAgICAgPEN1c3RvbUNvbnRhaW5lclxuICAgICAgICAgICAgICBlbGV2YXRpb249ezB9XG4gICAgICAgICAgICAgIGJvcmRlclJhZGl1cz17aXNDb2xsYXBzZWQgPyBcInhzXCIgOiBcIm1cIn1cbiAgICAgICAgICAgICAgaGlkZUJvcmRlcj17aXNDb2xsYXBzZWR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICByZWY9e3RleHRBcmVhQ29udGFpbmVyUmVmfVxuICAgICAgICAgICAgICAgIG9uUG9pbnRlckRvd249e2hhbmRsZU9uQ29udGFpbmVyUG9pbnRlckRvd259XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8U3R5bGVkVGV4dEFyZWFDb250YWluZXI+XG4gICAgICAgICAgICAgICAgICA8UHJvbXB0VGV4dEFyZWFcbiAgICAgICAgICAgICAgICAgICAgey4uLnJlc3R9XG4gICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQ9e1xuICAgICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQgPyBgJHtkYXRhRTJlVGVzdElkfS1pbnB1dGAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFSZWZ9XG4gICAgICAgICAgICAgICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZExpc3RJdGVtPXtzZWxlY3RlZExpc3RJdGVtfVxuICAgICAgICAgICAgICAgICAgICBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuPXtpc0F1dG9jb21wbGV0ZUxpc3RPcGVufVxuICAgICAgICAgICAgICAgICAgICBpc0NvbGxhcHNlZD17aXNDb2xsYXBzZWR9XG4gICAgICAgICAgICAgICAgICAgIG9uRm9jdXM9e2hhbmRsZUZvY3VzfVxuICAgICAgICAgICAgICAgICAgICBvbkJsdXI9e2hhbmRsZUJsdXJ9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17aGFuZGxlS2V5RG93bn1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICB7Y2xlYXJCdXR0b25FbG19XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRUZXh0QXJlYUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICB7Ym90dG9tVG9vbGJhckVsbX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L0N1c3RvbUNvbnRhaW5lcj5cbiAgICAgICAgICAgIHtoaW50RWxtfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxBdXRvY29tcGxldGVMaXN0XG4gICAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zPXthdXRvY29tcGxldGVMaXN0SXRlbXN9XG4gICAgICAgICAgdHJpZ2dlclJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgc2VsZWN0ZWRMaXN0SXRlbT17c2VsZWN0ZWRMaXN0SXRlbX1cbiAgICAgICAgICBpc09wZW49e2lzQXV0b2NvbXBsZXRlTGlzdE9wZW59XG4gICAgICAgICAgYXV0b2NvbXBsZXRlTGlzdEZvb3Rlcj17YXV0b2NvbXBsZXRlTGlzdEZvb3Rlcn1cbiAgICAgICAgICBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn1cbiAgICAgICAgICBvbkxpc3RJdGVtQ2xpY2s9e2hhbmRsZUxpc3RJdGVtQ2xpY2t9XG4gICAgICAgIC8+XG4gICAgICA8Lz5cbiAgICApO1xuICB9XG4pO1xuXG5jb25zdCBDdXN0b21CdXR0b24gPSBzdHlsZWQoQnV0dG9uKSgoeyB0aGVtZSB9KSA9PiAoe1xuICBib3JkZXJSYWRpdXM6IHRoZW1lLnZhcmlhYmxlcy5zaXplLmJvcmRlclJhZGl1cy5sLFxufSkpO1xuXG4vLyBuZWVkIHRvIHNpbXBsaWZ5IHRoaXMgdHlwZSBmb3IgcmV1c2VcbmNvbnN0IFN1Z2dlc3Rpb25CdXR0b24gPSBmb3J3YXJkUmVmKFxuICA8QyBleHRlbmRzIFJlYWN0LkVsZW1lbnRUeXBlID0gXCJidXR0b25cIj4oXG4gICAgcHJvcHM6IFBvbHltb3JwaGljQ29tcG9uZW50UHJvcHNXaXRoUmVmPFxuICAgICAgQyxcbiAgICAgIE9taXQ8QnV0dG9uUHJvcHMsIFwidmFyaWFudFwiIHwgXCJzaXplXCIgfCBcInJlZlwiPlxuICAgID4sXG4gICAgcmVmOiBQb2x5bW9ycGhpY1JlZjxDPlxuICApID0+IDxDdXN0b21CdXR0b24gey4uLnByb3BzfSB2YXJpYW50PVwic2Vjb25kYXJ5XCIgc2l6ZT1cInNcIiByZWY9e3JlZn0gLz5cbik7XG5cbmV4cG9ydCBjb25zdCBQcm9tcHRJbnB1dCA9IE9iamVjdC5hc3NpZ24oUHJvbXB0SW5wdXRDb21wb25lbnQsIHtcbiAgU3VnZ2VzdGlvbkJ1dHRvbixcbn0pIGFzIHR5cGVvZiBQcm9tcHRJbnB1dENvbXBvbmVudCAmIHtcbiAgU3VnZ2VzdGlvbkJ1dHRvbjogdHlwZW9mIFN1Z2dlc3Rpb25CdXR0b247XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTBGMEIifQ== */"),StyledSlot=(0,_styled.default)("div",{target:"e1rdcmtk4",label:"StyledSlot"})(({position,theme})=>({float:position,margin:theme.variables.size.spacing.m,cursor:"default"}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUHJvbXB0SW5wdXQvUHJvbXB0SW5wdXQudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Qcm9tcHRJbnB1dC9Qcm9tcHRJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBSZWFjdEVsZW1lbnQsXG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlZk9iamVjdCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIFN5bnRoZXRpY0V2ZW50LFxuICBNb3VzZUV2ZW50LFxufSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZVJlZixcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG4gIGZvcndhcmRSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgdHlwZSB7IFByb21wdFRleHRBcmVhUHJvcHMgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHsgUHJvbXB0VGV4dEFyZWEgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHsgQ29udGFpbmVyIH0gZnJvbSBcIi4uL0NvbnRhaW5lclwiO1xuaW1wb3J0IHR5cGUgeyBBdXRvY29tcGxldGVMaXN0UHJvcHMgfSBmcm9tIFwiLi9BdXRvY29tcGxldGVMaXN0XCI7XG5pbXBvcnQgeyBBdXRvY29tcGxldGVMaXN0IH0gZnJvbSBcIi4vQXV0b2NvbXBsZXRlTGlzdFwiO1xuaW1wb3J0IHtcbiAgZ2V0TGlzdEl0ZW1JZCxcbiAgdHlwZSBGbGF0dGVuZWRMaXN0SXRlbSxcbiAgdHlwZSBMaXN0SXRlbVZhbHVlLFxufSBmcm9tIFwiLi9DYXRlZ29yeUxpc3RcIjtcbmltcG9ydCB7IFRleHQgfSBmcm9tIFwiLi4vVHlwb2dyYXBoeS9UZXh0XCI7XG5pbXBvcnQgeyBCdXR0b24sIHR5cGUgQnV0dG9uUHJvcHMgfSBmcm9tIFwiLi4vQnV0dG9uL0J1dHRvblwiO1xuaW1wb3J0IHR5cGUge1xuICBQb2x5bW9ycGhpY1JlZixcbiAgUG9seW1vcnBoaWNDb21wb25lbnRQcm9wc1dpdGhSZWYsXG59IGZyb20gXCIuLi8uLi90eXBlc1wiO1xuaW1wb3J0IHsgSW5saW5lIH0gZnJvbSBcIi4uL0lubGluZS9JbmxpbmVcIjtcbmltcG9ydCB0eXBlIHsgUm91bmRCdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9Sb3VuZEJ1dHRvbi9Sb3VuZEJ1dHRvblwiO1xuaW1wb3J0IHsgUm91bmRCdXR0b24gfSBmcm9tIFwiLi4vUm91bmRCdXR0b24vUm91bmRCdXR0b25cIjtcbmltcG9ydCB0eXBlIHsgUGljdG9ncmFtQnV0dG9uUHJvcHMgfSBmcm9tIFwiLi4vUGljdG9ncmFtQnV0dG9uL1BpY3RvZ3JhbUJ1dHRvblwiO1xuaW1wb3J0IHsgUGljdG9ncmFtQnV0dG9uIH0gZnJvbSBcIi4uL1BpY3RvZ3JhbUJ1dHRvbi9QaWN0b2dyYW1CdXR0b25cIjtcbmltcG9ydCB7IFN0YWNrIH0gZnJvbSBcIi4uL1N0YWNrL1N0YWNrXCI7XG5pbXBvcnQgeyB1c2VPdXRzaWRlQ2xpY2sgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL3VzZU91dHNpZGVDbGlja1wiO1xuXG5jb25zdCBDdXN0b21Db250YWluZXIgPSBzdHlsZWQoQ29udGFpbmVyKTx7IGhpZGVCb3JkZXI6IGJvb2xlYW4gfT4oXG4gICh7IHRoZW1lLCBoaWRlQm9yZGVyIH0pID0+ICh7XG4gICAgYm9yZGVyOiBgMXB4IHNvbGlkICR7dGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5wcmltYXJ5LmRlZmF1bHR9YCxcbiAgICAuLi4oaGlkZUJvcmRlciAmJiB7XG4gICAgICBib3JkZXJDb2xvcjogXCJ0cmFuc3BhcmVudFwiLFxuICAgIH0pLFxuICAgIGN1cnNvcjogXCJ0ZXh0XCIsXG4gICAgW2AmOmhhcyh0ZXh0YXJlYTpmb2N1cy12aXNpYmxlKWBdOiB7XG4gICAgICBvdXRsaW5lV2lkdGg6IDEsXG4gICAgICBvdXRsaW5lU3R5bGU6IFwic29saWRcIixcbiAgICAgIG91dGxpbmVPZmZzZXQ6IC0xLFxuICAgICAgb3V0bGluZUNvbG9yOiB0aGVtZS52YWx1ZXMuY29sb3IuYm9yZGVyLmFjY2VudC5kZWZhdWx0LFxuICAgICAgYm94U2hhZG93OiB0aGVtZS52YWx1ZXMuc2hhZG93LmZvY3VzUmluZyxcblxuICAgICAgXCJAbWVkaWEgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzowKVwiOiB7XG4gICAgICAgIG91dGxpbmVDb2xvcjogdGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5hY2NlbnQuZGVmYXVsdCxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZFRleHRBcmVhQ29udGFpbmVyID0gc3R5bGVkLmRpdih7XG4gIGJvcmRlclJhZGl1czogXCJpbmhlcml0XCIsXG4gIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG59KTtcblxudHlwZSBTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyUHJvcHMgPSBQaWNrPFxuICBQcm9tcHRJbnB1dFByb3BzLFxuICBcImlzTmF2QmFyVmFyaWFudFwiXG4+O1xuXG5jb25zdCBTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyID1cbiAgc3R5bGVkLmRpdjxTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyUHJvcHM+KFxuICAgICh7IHRoZW1lLCBpc05hdkJhclZhcmlhbnQgfSkgPT4gKHtcbiAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICB0b3A6IGlzTmF2QmFyVmFyaWFudFxuICAgICAgICA/IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHhzXG4gICAgICAgIDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5tLFxuICAgICAgcmlnaHQ6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubSxcbiAgICAgIHVzZXJTZWxlY3Q6IFwibm9uZVwiLFxuICAgICAgcG9pbnRlckV2ZW50czogXCJub25lXCIsXG4gICAgfSlcbiAgKTtcblxudHlwZSBTdHlsZWRDbGVhckJ1dHRvblByb3BzID0gUGljdG9ncmFtQnV0dG9uUHJvcHMgJlxuICBQaWNrPFByb21wdElucHV0UHJvcHMsIFwiaXNOYXZCYXJWYXJpYW50XCI+O1xuXG5jb25zdCBTdHlsZWRDbGVhckJ1dHRvbiA9IHN0eWxlZChQaWN0b2dyYW1CdXR0b24pPFN0eWxlZENsZWFyQnV0dG9uUHJvcHM+KFxuICAoeyB0aGVtZSwgaXNOYXZCYXJWYXJpYW50IH0pID0+ICh7XG4gICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICByaWdodDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zLFxuICAgIHRvcDogaXNOYXZCYXJWYXJpYW50ID8gMCA6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcucyxcbiAgfSlcbik7XG5cbi8vIFVzaW5nIGZsb2F0IGluIG9yZGVyIHRvIGF2b2lkIHRoZSBpbnZpc2libGUgYXJlYSBiZXR3ZWVuIHRoZSBzbG90c1xuLy8gdGhhdCBwcmV2ZW50cyB0aGUgdGV4dGFyZWEgZnJvbSBiZWluZyBmb2N1c2VkXG5jb25zdCBTdHlsZWRTbG90ID0gc3R5bGVkLmRpdjx7IHBvc2l0aW9uOiBcImxlZnRcIiB8IFwicmlnaHRcIiB9PihcbiAgKHsgcG9zaXRpb24sIHRoZW1lIH0pID0+ICh7XG4gICAgZmxvYXQ6IHBvc2l0aW9uLFxuICAgIG1hcmdpbjogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5tLFxuICAgIGN1cnNvcjogXCJkZWZhdWx0XCIsXG4gIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRDbGVhciA9IHN0eWxlZC5kaXYoe1xuICBjbGVhcjogXCJib3RoXCIsXG59KTtcblxuZXhwb3J0IHR5cGUgUHJvbXB0SW5wdXRQcm9wcyA9IHtcbiAgXCJkYXRhLWUyZS10ZXN0LWlkXCI/OiBzdHJpbmc7XG4gIC8qKiBUb29sYmFyIGVsZW1lbnRzIGJlbG93IHRleHQgYXJlYSAqL1xuICBib3R0b21Ub29sYmFyPzoge1xuICAgIGxlZnRDb250ZW50PzogUmVhY3RFbGVtZW50O1xuICAgIHJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgfTtcbiAgLyoqIEN1cnJlbnRseSBzaG93cyBzZW5kIGJ1dHRvbiBwcm9jZXNzaW5nIHN0YXRlICAqL1xuICBpc1Byb2Nlc3Npbmc/OiBib29sZWFuO1xuICBzZW5kQnV0dG9uUHJvcHM/OiBPbWl0PFJvdW5kQnV0dG9uUHJvcHMsIFwiaWNvblwiIHwgXCJ2YXJpYW50XCI+ICYge1xuICAgIGljb24/OiBcImFycm93LXVwXCIgfCBcInNlYXJjaFwiIHwgXCJhcnJvdy1yaWdodFwiO1xuICB9O1xuICBjbGVhckJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgaGludD86IFJlYWN0RWxlbWVudDtcbiAgLyoqIFNob3dzIGluIHRoZSBjbGVhciBidXR0b24gc3BhY2UgaW4gZW1wdHkgc3RhdGUgKi9cbiAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgb25DbGVhcjogKCkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCB3aGVuIHVzZXIgc2VsZWN0cyAob3IgcmVqZWN0cykgYSBsaXN0IGl0ZW0gZnJvbSBhdXRvY29tcGxldGUgbGlzdCAqL1xuICBvbkNvbXBsZXRlPzogKHtcbiAgICB2YWx1ZSxcbiAgICBjYXRlZ29yeSxcbiAgICBldnQsXG4gICAgaW5kZXgsXG4gIH06IHtcbiAgICB2YWx1ZTogTGlzdEl0ZW1WYWx1ZTtcbiAgICBjYXRlZ29yeT86IHN0cmluZztcbiAgICBldnQ/OiBTeW50aGV0aWNFdmVudDtcbiAgICBpbmRleD86IG51bWJlcjtcbiAgfSkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCBvbiBFbnRlciBrZXkgdG8gc3VibWl0IHRoZSBmb3JtICAqL1xuICBvbkVudGVyS2V5OiAoKSA9PiB2b2lkO1xufSAmIE9taXQ8XG4gIFByb21wdFRleHRBcmVhUHJvcHMsXG4gIFwiaXNDb2xsYXBzZWRcIiB8IFwiaXNBdXRvY29tcGxldGVMaXN0T3BlblwiIHwgXCJzZWxlY3RlZExpc3RJdGVtXCJcbj4gJlxuICBQaWNrPFxuICAgIEF1dG9jb21wbGV0ZUxpc3RQcm9wcyxcbiAgICBcImF1dG9jb21wbGV0ZUxpc3RJdGVtc1wiIHwgXCJhdXRvY29tcGxldGVMaXN0Rm9vdGVyXCIgfCBcInBvcnRhbENvbnRhaW5lclwiXG4gID47XG5cbmNvbnN0IFByb21wdElucHV0Q29tcG9uZW50ID0gZm9yd2FyZFJlZihcbiAgKFxuICAgIHtcbiAgICAgIFwiZGF0YS1lMmUtdGVzdC1pZFwiOiBkYXRhRTJlVGVzdElkLFxuICAgICAgbmFtZSxcbiAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcyA9IFtdLFxuICAgICAgdmFsdWUsXG4gICAgICBib3R0b21Ub29sYmFyID0geyBsZWZ0Q29udGVudDogbnVsbCwgcmlnaHRDb250ZW50OiBudWxsIH0sXG4gICAgICBpc1Byb2Nlc3NpbmcsXG4gICAgICBzZW5kQnV0dG9uUHJvcHMgPSB7XG4gICAgICAgIHR5cGU6IFwic3VibWl0XCIsXG4gICAgICAgIGljb246IFwiYXJyb3ctdXBcIixcbiAgICAgIH0sXG4gICAgICBhdXRvY29tcGxldGVMaXN0Rm9vdGVyLFxuICAgICAgY2xlYXJCdXR0b25BcmlhTGFiZWwgPSBcIkNsZWFyIGlucHV0XCIsXG4gICAgICBoaW50LFxuICAgICAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudCxcbiAgICAgIGlzTmF2QmFyVmFyaWFudCxcbiAgICAgIHBvcnRhbENvbnRhaW5lcixcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgb25Db21wbGV0ZSxcbiAgICAgIG9uQ2xlYXIsXG4gICAgICBvbkVudGVyS2V5LFxuICAgICAgb25Gb2N1cyxcbiAgICAgIG9uQmx1cixcbiAgICAgIG9uS2V5RG93bixcbiAgICAgIC4uLnJlc3RcbiAgICB9OiBQcm9tcHRJbnB1dFByb3BzLFxuICAgIHJlZjogUmVmT2JqZWN0PEhUTUxUZXh0QXJlYUVsZW1lbnQ+XG4gICk6IFJlYWN0RWxlbWVudCA9PiB7XG4gICAgY29uc3QgY29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCB0ZXh0QXJlYUNvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgaW50ZXJuYWxSZWYgPSB1c2VSZWY8SFRNTFRleHRBcmVhRWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgW3NlbGVjdGVkSW5kZXgsIHNldFNlbGVjdGVkSW5kZXhdID0gdXNlU3RhdGUoLTEpO1xuICAgIGNvbnN0IFtpc0NvbGxhcHNlZCwgc2V0SXNDb2xsYXBzZWRdID0gdXNlU3RhdGUoaXNOYXZCYXJWYXJpYW50KTtcbiAgICBjb25zdCB1c2VyVHlwZWRRdWVyeSA9IHVzZVJlZihcIlwiKTtcbiAgICBjb25zdCBbaXNBdXRvY29tcGxldGVMaXN0T3Blbiwgc2V0SXNBdXRvY29tcGxldGVMaXN0T3Blbl0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgdGV4dEFyZWFSZWYgPSByZWYgfHwgaW50ZXJuYWxSZWY7XG5cbiAgICB1c2VPdXRzaWRlQ2xpY2soXG4gICAgICBjb250YWluZXJSZWYsXG4gICAgICAoZXZ0KSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAhY29udGFpbmVyUmVmLmN1cnJlbnQuY29udGFpbnMoZXZ0LnRhcmdldCBhcyBOb2RlKSAmJlxuICAgICAgICAgICFwb3J0YWxDb250YWluZXI/LmNvbnRhaW5zKGV2dC50YXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICBldnQudGFyZ2V0ICE9PSBudWxsXG4gICAgICAgICkge1xuICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgIWlzQ29sbGFwc2VkICYmIGlzTmF2QmFyVmFyaWFudFxuICAgICk7XG5cbiAgICBjb25zdCBjbG9zZUF1dG9jb21wbGV0ZUxpc3QgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBzZXRJc0F1dG9jb21wbGV0ZUxpc3RPcGVuKGZhbHNlKTtcbiAgICAgIHNldFNlbGVjdGVkSW5kZXgoLTEpO1xuICAgIH0sIFtdKTtcblxuICAgIGNvbnN0IG9wZW5BdXRvY29tcGxldGVMaXN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgaWYgKGF1dG9jb21wbGV0ZUxpc3RJdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgc2V0SXNBdXRvY29tcGxldGVMaXN0T3Blbih0cnVlKTtcbiAgICAgICAgc2V0U2VsZWN0ZWRJbmRleCgtMSk7XG4gICAgICB9XG4gICAgfSwgW2F1dG9jb21wbGV0ZUxpc3RJdGVtc10pO1xuXG4gICAgY29uc3QgYWNjZXB0VGV4dFNlbGVjdGlvbiA9ICgpID0+IHtcbiAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgPSB2YWx1ZTtcbiAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQuc2V0U2VsZWN0aW9uUmFuZ2UodmFsdWUubGVuZ3RoLCB2YWx1ZS5sZW5ndGgpO1xuICAgIH07XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKGF1dG9jb21wbGV0ZUxpc3RJdGVtcy5sZW5ndGggJiYgIWlzQ29sbGFwc2VkKSB7XG4gICAgICAgIG9wZW5BdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIH1cbiAgICB9LCBbXG4gICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXMsXG4gICAgICBvcGVuQXV0b2NvbXBsZXRlTGlzdCxcbiAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCxcbiAgICAgIGlzQ29sbGFwc2VkLFxuICAgIF0pO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZSAhPT0gdXNlclR5cGVkUXVlcnkuY3VycmVudCAmJiBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuKSB7XG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQuc2V0U2VsZWN0aW9uUmFuZ2UoXG4gICAgICAgICAgdXNlclR5cGVkUXVlcnkuY3VycmVudC5sZW5ndGgsXG4gICAgICAgICAgdmFsdWUubGVuZ3RoXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSwgW3ZhbHVlLCB0ZXh0QXJlYVJlZiwgaXNBdXRvY29tcGxldGVMaXN0T3Blbl0pO1xuXG4gICAgLy8gRGV0ZXJtaW5lIHdoZW4gZm9jdXMgbGVhdmVzIHRoZSBjb250YWluZXIgdG8gY29sbGFwc2UgaXRcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgbGV0IGhhbmRsZXI6IChldnQ6IEZvY3VzRXZlbnQpID0+IHZvaWQ7XG4gICAgICBjb25zdCBjb250YWluZXIgPSBjb250YWluZXJSZWYuY3VycmVudDtcblxuICAgICAgaWYgKGlzTmF2QmFyVmFyaWFudCAmJiBjb250YWluZXIpIHtcbiAgICAgICAgaGFuZGxlciA9IChldnQ6IEZvY3VzRXZlbnQpID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAhY29udGFpbmVyUmVmLmN1cnJlbnQuY29udGFpbnMoZXZ0LnJlbGF0ZWRUYXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICAgICFwb3J0YWxDb250YWluZXI/LmNvbnRhaW5zKGV2dC5yZWxhdGVkVGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgICBldnQucmVsYXRlZFRhcmdldCAhPT0gbnVsbFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImZvY3Vzb3V0XCIsIGhhbmRsZXIpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBpZiAoY29udGFpbmVyKSB7XG4gICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJmb2N1c291dFwiLCBoYW5kbGVyKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9LCBbaXNOYXZCYXJWYXJpYW50LCBjb250YWluZXJSZWYsIHBvcnRhbENvbnRhaW5lcl0pO1xuXG4gICAgY29uc3QgZmxhdHRlbmVkTGlzdEl0ZW1zID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBjb25zdCBsaXN0OiBGbGF0dGVuZWRMaXN0SXRlbVtdID0gW107XG5cbiAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcy5mb3JFYWNoKChsaXN0SXRlbSkgPT4ge1xuICAgICAgICBsaXN0SXRlbS5pdGVtcy5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgIGxpc3QucHVzaCh7XG4gICAgICAgICAgICBjYXRlZ29yeTogbGlzdEl0ZW0uY2F0ZWdvcnksXG4gICAgICAgICAgICBpbmRleEluQ2F0ZWdvcnk6IGluZGV4LFxuICAgICAgICAgICAgdmFsdWU6IGl0ZW0udmFsdWUsXG4gICAgICAgICAgICBpZDogZ2V0TGlzdEl0ZW1JZChuYW1lLCBsaXN0SXRlbS5jYXRlZ29yeSwgaW5kZXgpLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGxpc3Q7XG4gICAgfSwgW2F1dG9jb21wbGV0ZUxpc3RJdGVtcywgbmFtZV0pO1xuXG4gICAgY29uc3QgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZSA9IChpbmRleDogbnVtYmVyLCBldnQ/OiBTeW50aGV0aWNFdmVudCkgPT4ge1xuICAgICAgc2V0U2VsZWN0ZWRJbmRleChpbmRleCk7XG4gICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgIGNvbnN0IHsgY2F0ZWdvcnksIHZhbHVlOiBpdGVtVmFsdWUgfSA9IGZsYXR0ZW5lZExpc3RJdGVtc1tpbmRleF07XG5cbiAgICAgICAgb25Db21wbGV0ZSh7IHZhbHVlOiBpdGVtVmFsdWUsIGNhdGVnb3J5LCBldnQsIGluZGV4IH0pO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVMaXN0SXRlbUNsaWNrID0gKFxuICAgICAgY2F0ZWdvcnk6IHN0cmluZyxcbiAgICAgIGluZGV4SW5DYXRlZ29yeTogbnVtYmVyLFxuICAgICAgZXZ0PzogTW91c2VFdmVudFxuICAgICkgPT4ge1xuICAgICAgY29uc3QgaW5kZXggPSBmbGF0dGVuZWRMaXN0SXRlbXMuZmluZEluZGV4KFxuICAgICAgICAobGlzdEl0ZW0pID0+XG4gICAgICAgICAgbGlzdEl0ZW0uY2F0ZWdvcnkgPT09IGNhdGVnb3J5ICYmXG4gICAgICAgICAgbGlzdEl0ZW0uaW5kZXhJbkNhdGVnb3J5ID09PSBpbmRleEluQ2F0ZWdvcnlcbiAgICAgICk7XG5cbiAgICAgIGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2UoaW5kZXgsIGV2dCk7XG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUtleURvd246IEtleWJvYXJkRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgaWYgKGlzQXV0b2NvbXBsZXRlTGlzdE9wZW4pIHtcbiAgICAgICAgc3dpdGNoIChldnQua2V5KSB7XG4gICAgICAgICAgY2FzZSBcIkVzY2FwZVwiOlxuICAgICAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICAgICAgICBvbkNvbXBsZXRlKHsgdmFsdWU6IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQsIGV2dCB9KTtcbiAgICAgICAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiRW50ZXJcIjpcbiAgICAgICAgICAgIGlmICghZXZ0LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgICAgICAgICAgYWNjZXB0VGV4dFNlbGVjdGlvbigpO1xuXG4gICAgICAgICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgIG9uRW50ZXJLZXk/LigpO1xuICAgICAgICAgICAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIiBcIjpcbiAgICAgICAgICAgIGFjY2VwdFRleHRTZWxlY3Rpb24oKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJBcnJvd1VwXCI6XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZShzZWxlY3RlZEluZGV4IC0gMSwgZXZ0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJBcnJvd0Rvd25cIjpcbiAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaWYgKHNlbGVjdGVkSW5kZXggPCBmbGF0dGVuZWRMaXN0SXRlbXMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlKHNlbGVjdGVkSW5kZXggKyAxLCBldnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3dpdGNoIChldnQua2V5KSB7XG4gICAgICAgICAgY2FzZSBcIkVzY2FwZVwiOlxuICAgICAgICAgICAgb25DbGVhcj8uKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiRW50ZXJcIjpcbiAgICAgICAgICAgIGlmICghZXZ0LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBvbkVudGVyS2V5Py4oKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIG9uS2V5RG93bj8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUNoYW5nZTogQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgdXNlclR5cGVkUXVlcnkuY3VycmVudCA9IGV2dC50YXJnZXQudmFsdWU7XG4gICAgICBvbkNoYW5nZShldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVGb2N1czogRm9jdXNFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBzZXRJc0NvbGxhcHNlZChmYWxzZSk7XG4gICAgICBvbkZvY3VzPy4oZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlQmx1cjogRm9jdXNFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBpZiAodmFsdWUgIT09IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQpIHtcbiAgICAgICAgb25Db21wbGV0ZT8uKHsgdmFsdWU6IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQsIGV2dCB9KTtcbiAgICAgIH1cbiAgICAgIG9uQmx1cj8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZVNlbmRCdXR0b25DbGljayA9IChldnQ6IE1vdXNlRXZlbnQ8SFRNTEJ1dHRvbkVsZW1lbnQ+KSA9PiB7XG4gICAgICBzZW5kQnV0dG9uUHJvcHMub25DbGljaz8uKGV2dCk7XG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZVByZXZlbnRGb2N1cyA9IChldnQ6IFJlYWN0LlBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgLy8gUHJldmVudCB0aGUgdGV4dGFyZWEgZnJvbSBiZWluZyB1bmZvY3VzZWRcbiAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVPbkNvbnRhaW5lclBvaW50ZXJEb3duID0gKGV2dDogUmVhY3QuUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAvLyBGb2N1cyB0ZXh0YXJlYSB3aGVuIGNsaWNraW5nIG9uIHRoZSBjb250YWluZXIgb25seVxuICAgICAgaWYgKGV2dC50YXJnZXQgPT09IGV2dC5jdXJyZW50VGFyZ2V0KSB7XG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBzZWxlY3RlZExpc3RJdGVtID1cbiAgICAgIHNlbGVjdGVkSW5kZXggIT09IC0xID8gZmxhdHRlbmVkTGlzdEl0ZW1zW3NlbGVjdGVkSW5kZXhdIDogbnVsbDtcblxuICAgIGNvbnN0IGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRFbG0gPSBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50ID8gKFxuICAgICAgPFN0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXJcbiAgICAgICAgaXNOYXZCYXJWYXJpYW50PXtpc05hdkJhclZhcmlhbnR9XG4gICAgICA+XG4gICAgICAgIDxUZXh0IGNvbG9yPVwidGVydGlhcnlcIj57ZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudH08L1RleHQ+XG4gICAgICA8L1N0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXI+XG4gICAgKSA6IG51bGw7XG5cbiAgICBjb25zdCBjbGVhckJ1dHRvbkVsbSA9IHZhbHVlID8gKFxuICAgICAgPFN0eWxlZENsZWFyQnV0dG9uXG4gICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgaWNvbj1cIngtY2lyY2xlLWZpbGxlZFwiXG4gICAgICAgIGFyaWEtbGFiZWw9e2NsZWFyQnV0dG9uQXJpYUxhYmVsfVxuICAgICAgICBpc05hdkJhclZhcmlhbnQ9e2lzTmF2QmFyVmFyaWFudH1cbiAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlUHJldmVudEZvY3VzfVxuICAgICAgICBvbkNsaWNrPXtvbkNsZWFyfVxuICAgICAgLz5cbiAgICApIDogKFxuICAgICAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudEVsbVxuICAgICk7XG5cbiAgICBjb25zdCBoaW50RWxtID0gISFoaW50ICYmIChcbiAgICAgIDxJbmxpbmUgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICA8VGV4dCBzaXplPVwic1wiIGNvbG9yPVwidGVydGlhcnlcIj5cbiAgICAgICAgICB7aGludH1cbiAgICAgICAgPC9UZXh0PlxuICAgICAgPC9JbmxpbmU+XG4gICAgKTtcblxuICAgIGNvbnN0IGJvdHRvbVRvb2xiYXJFbG0gPSAhaXNDb2xsYXBzZWQgJiYgKFxuICAgICAgPD5cbiAgICAgICAgPFN0eWxlZFNsb3QgcG9zaXRpb249XCJsZWZ0XCI+e2JvdHRvbVRvb2xiYXIubGVmdENvbnRlbnR9PC9TdHlsZWRTbG90PlxuICAgICAgICA8U3R5bGVkU2xvdCBwb3NpdGlvbj1cInJpZ2h0XCIgZGF0YS1lMmUtdGVzdC1pZD1cImJvdHRvbVRvb2xiYXJcIj5cbiAgICAgICAgICA8SW5saW5lIHNwYWNlPVwieHNcIiB2QWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAge2JvdHRvbVRvb2xiYXIucmlnaHRDb250ZW50fVxuICAgICAgICAgICAgPFJvdW5kQnV0dG9uXG4gICAgICAgICAgICAgIHsuLi5zZW5kQnV0dG9uUHJvcHN9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVNlbmRCdXR0b25DbGlja31cbiAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlUHJldmVudEZvY3VzfVxuICAgICAgICAgICAgICBhcmlhQXR0cmlidXRlcz17e1xuICAgICAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiBpc1Byb2Nlc3NpbmdcbiAgICAgICAgICAgICAgICAgID8gXCJQcm9jZXNzaW5nIHF1ZXJ5XCJcbiAgICAgICAgICAgICAgICAgIDogXCJTdWJtaXQgcXVlcnlcIixcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgdmFyaWFudD1cInByaW1hcnlcIlxuICAgICAgICAgICAgICBkaXNhYmxlZD17IXZhbHVlfVxuICAgICAgICAgICAgICBpY29uPXtpc1Byb2Nlc3NpbmcgPyBcInN0b3AtZmlsbGVkXCIgOiBzZW5kQnV0dG9uUHJvcHMuaWNvbn1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9JbmxpbmU+XG4gICAgICAgIDwvU3R5bGVkU2xvdD5cbiAgICAgICAgPFN0eWxlZENsZWFyIC8+XG4gICAgICA8Lz5cbiAgICApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBkYXRhLWUyZS10ZXN0LWlkPXtkYXRhRTJlVGVzdElkfVxuICAgICAgICAgIGRhdGEtZHMtaWQ9XCJQcm9tcHRJbnB1dFwiXG4gICAgICAgICAgcmVmPXtjb250YWluZXJSZWZ9XG4gICAgICAgICAgLy8gVHJhbnNsYXRpb24gZGlzYWJsZWQgZm9yIGNvbnNpc3RlbmN5IHdpdGggdGhlIGF1dG9jb21wbGV0ZSBsaXN0XG4gICAgICAgICAgdHJhbnNsYXRlPVwibm9cIlxuICAgICAgICA+XG4gICAgICAgICAgPFN0YWNrIHNwYWNlPVwic1wiPlxuICAgICAgICAgICAgPEN1c3RvbUNvbnRhaW5lclxuICAgICAgICAgICAgICBlbGV2YXRpb249ezB9XG4gICAgICAgICAgICAgIGJvcmRlclJhZGl1cz17aXNDb2xsYXBzZWQgPyBcInhzXCIgOiBcIm1cIn1cbiAgICAgICAgICAgICAgaGlkZUJvcmRlcj17aXNDb2xsYXBzZWR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICByZWY9e3RleHRBcmVhQ29udGFpbmVyUmVmfVxuICAgICAgICAgICAgICAgIG9uUG9pbnRlckRvd249e2hhbmRsZU9uQ29udGFpbmVyUG9pbnRlckRvd259XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8U3R5bGVkVGV4dEFyZWFDb250YWluZXI+XG4gICAgICAgICAgICAgICAgICA8UHJvbXB0VGV4dEFyZWFcbiAgICAgICAgICAgICAgICAgICAgey4uLnJlc3R9XG4gICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQ9e1xuICAgICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQgPyBgJHtkYXRhRTJlVGVzdElkfS1pbnB1dGAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFSZWZ9XG4gICAgICAgICAgICAgICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZExpc3RJdGVtPXtzZWxlY3RlZExpc3RJdGVtfVxuICAgICAgICAgICAgICAgICAgICBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuPXtpc0F1dG9jb21wbGV0ZUxpc3RPcGVufVxuICAgICAgICAgICAgICAgICAgICBpc0NvbGxhcHNlZD17aXNDb2xsYXBzZWR9XG4gICAgICAgICAgICAgICAgICAgIG9uRm9jdXM9e2hhbmRsZUZvY3VzfVxuICAgICAgICAgICAgICAgICAgICBvbkJsdXI9e2hhbmRsZUJsdXJ9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17aGFuZGxlS2V5RG93bn1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICB7Y2xlYXJCdXR0b25FbG19XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRUZXh0QXJlYUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICB7Ym90dG9tVG9vbGJhckVsbX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L0N1c3RvbUNvbnRhaW5lcj5cbiAgICAgICAgICAgIHtoaW50RWxtfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxBdXRvY29tcGxldGVMaXN0XG4gICAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zPXthdXRvY29tcGxldGVMaXN0SXRlbXN9XG4gICAgICAgICAgdHJpZ2dlclJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgc2VsZWN0ZWRMaXN0SXRlbT17c2VsZWN0ZWRMaXN0SXRlbX1cbiAgICAgICAgICBpc09wZW49e2lzQXV0b2NvbXBsZXRlTGlzdE9wZW59XG4gICAgICAgICAgYXV0b2NvbXBsZXRlTGlzdEZvb3Rlcj17YXV0b2NvbXBsZXRlTGlzdEZvb3Rlcn1cbiAgICAgICAgICBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn1cbiAgICAgICAgICBvbkxpc3RJdGVtQ2xpY2s9e2hhbmRsZUxpc3RJdGVtQ2xpY2t9XG4gICAgICAgIC8+XG4gICAgICA8Lz5cbiAgICApO1xuICB9XG4pO1xuXG5jb25zdCBDdXN0b21CdXR0b24gPSBzdHlsZWQoQnV0dG9uKSgoeyB0aGVtZSB9KSA9PiAoe1xuICBib3JkZXJSYWRpdXM6IHRoZW1lLnZhcmlhYmxlcy5zaXplLmJvcmRlclJhZGl1cy5sLFxufSkpO1xuXG4vLyBuZWVkIHRvIHNpbXBsaWZ5IHRoaXMgdHlwZSBmb3IgcmV1c2VcbmNvbnN0IFN1Z2dlc3Rpb25CdXR0b24gPSBmb3J3YXJkUmVmKFxuICA8QyBleHRlbmRzIFJlYWN0LkVsZW1lbnRUeXBlID0gXCJidXR0b25cIj4oXG4gICAgcHJvcHM6IFBvbHltb3JwaGljQ29tcG9uZW50UHJvcHNXaXRoUmVmPFxuICAgICAgQyxcbiAgICAgIE9taXQ8QnV0dG9uUHJvcHMsIFwidmFyaWFudFwiIHwgXCJzaXplXCIgfCBcInJlZlwiPlxuICAgID4sXG4gICAgcmVmOiBQb2x5bW9ycGhpY1JlZjxDPlxuICApID0+IDxDdXN0b21CdXR0b24gey4uLnByb3BzfSB2YXJpYW50PVwic2Vjb25kYXJ5XCIgc2l6ZT1cInNcIiByZWY9e3JlZn0gLz5cbik7XG5cbmV4cG9ydCBjb25zdCBQcm9tcHRJbnB1dCA9IE9iamVjdC5hc3NpZ24oUHJvbXB0SW5wdXRDb21wb25lbnQsIHtcbiAgU3VnZ2VzdGlvbkJ1dHRvbixcbn0pIGFzIHR5cGVvZiBQcm9tcHRJbnB1dENvbXBvbmVudCAmIHtcbiAgU3VnZ2VzdGlvbkJ1dHRvbjogdHlwZW9mIFN1Z2dlc3Rpb25CdXR0b247XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9HbUIifQ== */"),StyledClear=(0,_styled.default)("div",{target:"e1rdcmtk5",label:"StyledClear"})({clear:"both"},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUHJvbXB0SW5wdXQvUHJvbXB0SW5wdXQudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Qcm9tcHRJbnB1dC9Qcm9tcHRJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBSZWFjdEVsZW1lbnQsXG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlZk9iamVjdCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIFN5bnRoZXRpY0V2ZW50LFxuICBNb3VzZUV2ZW50LFxufSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZVJlZixcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG4gIGZvcndhcmRSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgdHlwZSB7IFByb21wdFRleHRBcmVhUHJvcHMgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHsgUHJvbXB0VGV4dEFyZWEgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHsgQ29udGFpbmVyIH0gZnJvbSBcIi4uL0NvbnRhaW5lclwiO1xuaW1wb3J0IHR5cGUgeyBBdXRvY29tcGxldGVMaXN0UHJvcHMgfSBmcm9tIFwiLi9BdXRvY29tcGxldGVMaXN0XCI7XG5pbXBvcnQgeyBBdXRvY29tcGxldGVMaXN0IH0gZnJvbSBcIi4vQXV0b2NvbXBsZXRlTGlzdFwiO1xuaW1wb3J0IHtcbiAgZ2V0TGlzdEl0ZW1JZCxcbiAgdHlwZSBGbGF0dGVuZWRMaXN0SXRlbSxcbiAgdHlwZSBMaXN0SXRlbVZhbHVlLFxufSBmcm9tIFwiLi9DYXRlZ29yeUxpc3RcIjtcbmltcG9ydCB7IFRleHQgfSBmcm9tIFwiLi4vVHlwb2dyYXBoeS9UZXh0XCI7XG5pbXBvcnQgeyBCdXR0b24sIHR5cGUgQnV0dG9uUHJvcHMgfSBmcm9tIFwiLi4vQnV0dG9uL0J1dHRvblwiO1xuaW1wb3J0IHR5cGUge1xuICBQb2x5bW9ycGhpY1JlZixcbiAgUG9seW1vcnBoaWNDb21wb25lbnRQcm9wc1dpdGhSZWYsXG59IGZyb20gXCIuLi8uLi90eXBlc1wiO1xuaW1wb3J0IHsgSW5saW5lIH0gZnJvbSBcIi4uL0lubGluZS9JbmxpbmVcIjtcbmltcG9ydCB0eXBlIHsgUm91bmRCdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9Sb3VuZEJ1dHRvbi9Sb3VuZEJ1dHRvblwiO1xuaW1wb3J0IHsgUm91bmRCdXR0b24gfSBmcm9tIFwiLi4vUm91bmRCdXR0b24vUm91bmRCdXR0b25cIjtcbmltcG9ydCB0eXBlIHsgUGljdG9ncmFtQnV0dG9uUHJvcHMgfSBmcm9tIFwiLi4vUGljdG9ncmFtQnV0dG9uL1BpY3RvZ3JhbUJ1dHRvblwiO1xuaW1wb3J0IHsgUGljdG9ncmFtQnV0dG9uIH0gZnJvbSBcIi4uL1BpY3RvZ3JhbUJ1dHRvbi9QaWN0b2dyYW1CdXR0b25cIjtcbmltcG9ydCB7IFN0YWNrIH0gZnJvbSBcIi4uL1N0YWNrL1N0YWNrXCI7XG5pbXBvcnQgeyB1c2VPdXRzaWRlQ2xpY2sgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL3VzZU91dHNpZGVDbGlja1wiO1xuXG5jb25zdCBDdXN0b21Db250YWluZXIgPSBzdHlsZWQoQ29udGFpbmVyKTx7IGhpZGVCb3JkZXI6IGJvb2xlYW4gfT4oXG4gICh7IHRoZW1lLCBoaWRlQm9yZGVyIH0pID0+ICh7XG4gICAgYm9yZGVyOiBgMXB4IHNvbGlkICR7dGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5wcmltYXJ5LmRlZmF1bHR9YCxcbiAgICAuLi4oaGlkZUJvcmRlciAmJiB7XG4gICAgICBib3JkZXJDb2xvcjogXCJ0cmFuc3BhcmVudFwiLFxuICAgIH0pLFxuICAgIGN1cnNvcjogXCJ0ZXh0XCIsXG4gICAgW2AmOmhhcyh0ZXh0YXJlYTpmb2N1cy12aXNpYmxlKWBdOiB7XG4gICAgICBvdXRsaW5lV2lkdGg6IDEsXG4gICAgICBvdXRsaW5lU3R5bGU6IFwic29saWRcIixcbiAgICAgIG91dGxpbmVPZmZzZXQ6IC0xLFxuICAgICAgb3V0bGluZUNvbG9yOiB0aGVtZS52YWx1ZXMuY29sb3IuYm9yZGVyLmFjY2VudC5kZWZhdWx0LFxuICAgICAgYm94U2hhZG93OiB0aGVtZS52YWx1ZXMuc2hhZG93LmZvY3VzUmluZyxcblxuICAgICAgXCJAbWVkaWEgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzowKVwiOiB7XG4gICAgICAgIG91dGxpbmVDb2xvcjogdGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5hY2NlbnQuZGVmYXVsdCxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZFRleHRBcmVhQ29udGFpbmVyID0gc3R5bGVkLmRpdih7XG4gIGJvcmRlclJhZGl1czogXCJpbmhlcml0XCIsXG4gIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG59KTtcblxudHlwZSBTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyUHJvcHMgPSBQaWNrPFxuICBQcm9tcHRJbnB1dFByb3BzLFxuICBcImlzTmF2QmFyVmFyaWFudFwiXG4+O1xuXG5jb25zdCBTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyID1cbiAgc3R5bGVkLmRpdjxTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyUHJvcHM+KFxuICAgICh7IHRoZW1lLCBpc05hdkJhclZhcmlhbnQgfSkgPT4gKHtcbiAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICB0b3A6IGlzTmF2QmFyVmFyaWFudFxuICAgICAgICA/IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHhzXG4gICAgICAgIDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5tLFxuICAgICAgcmlnaHQ6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubSxcbiAgICAgIHVzZXJTZWxlY3Q6IFwibm9uZVwiLFxuICAgICAgcG9pbnRlckV2ZW50czogXCJub25lXCIsXG4gICAgfSlcbiAgKTtcblxudHlwZSBTdHlsZWRDbGVhckJ1dHRvblByb3BzID0gUGljdG9ncmFtQnV0dG9uUHJvcHMgJlxuICBQaWNrPFByb21wdElucHV0UHJvcHMsIFwiaXNOYXZCYXJWYXJpYW50XCI+O1xuXG5jb25zdCBTdHlsZWRDbGVhckJ1dHRvbiA9IHN0eWxlZChQaWN0b2dyYW1CdXR0b24pPFN0eWxlZENsZWFyQnV0dG9uUHJvcHM+KFxuICAoeyB0aGVtZSwgaXNOYXZCYXJWYXJpYW50IH0pID0+ICh7XG4gICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICByaWdodDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zLFxuICAgIHRvcDogaXNOYXZCYXJWYXJpYW50ID8gMCA6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcucyxcbiAgfSlcbik7XG5cbi8vIFVzaW5nIGZsb2F0IGluIG9yZGVyIHRvIGF2b2lkIHRoZSBpbnZpc2libGUgYXJlYSBiZXR3ZWVuIHRoZSBzbG90c1xuLy8gdGhhdCBwcmV2ZW50cyB0aGUgdGV4dGFyZWEgZnJvbSBiZWluZyBmb2N1c2VkXG5jb25zdCBTdHlsZWRTbG90ID0gc3R5bGVkLmRpdjx7IHBvc2l0aW9uOiBcImxlZnRcIiB8IFwicmlnaHRcIiB9PihcbiAgKHsgcG9zaXRpb24sIHRoZW1lIH0pID0+ICh7XG4gICAgZmxvYXQ6IHBvc2l0aW9uLFxuICAgIG1hcmdpbjogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5tLFxuICAgIGN1cnNvcjogXCJkZWZhdWx0XCIsXG4gIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRDbGVhciA9IHN0eWxlZC5kaXYoe1xuICBjbGVhcjogXCJib3RoXCIsXG59KTtcblxuZXhwb3J0IHR5cGUgUHJvbXB0SW5wdXRQcm9wcyA9IHtcbiAgXCJkYXRhLWUyZS10ZXN0LWlkXCI/OiBzdHJpbmc7XG4gIC8qKiBUb29sYmFyIGVsZW1lbnRzIGJlbG93IHRleHQgYXJlYSAqL1xuICBib3R0b21Ub29sYmFyPzoge1xuICAgIGxlZnRDb250ZW50PzogUmVhY3RFbGVtZW50O1xuICAgIHJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgfTtcbiAgLyoqIEN1cnJlbnRseSBzaG93cyBzZW5kIGJ1dHRvbiBwcm9jZXNzaW5nIHN0YXRlICAqL1xuICBpc1Byb2Nlc3Npbmc/OiBib29sZWFuO1xuICBzZW5kQnV0dG9uUHJvcHM/OiBPbWl0PFJvdW5kQnV0dG9uUHJvcHMsIFwiaWNvblwiIHwgXCJ2YXJpYW50XCI+ICYge1xuICAgIGljb24/OiBcImFycm93LXVwXCIgfCBcInNlYXJjaFwiIHwgXCJhcnJvdy1yaWdodFwiO1xuICB9O1xuICBjbGVhckJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgaGludD86IFJlYWN0RWxlbWVudDtcbiAgLyoqIFNob3dzIGluIHRoZSBjbGVhciBidXR0b24gc3BhY2UgaW4gZW1wdHkgc3RhdGUgKi9cbiAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgb25DbGVhcjogKCkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCB3aGVuIHVzZXIgc2VsZWN0cyAob3IgcmVqZWN0cykgYSBsaXN0IGl0ZW0gZnJvbSBhdXRvY29tcGxldGUgbGlzdCAqL1xuICBvbkNvbXBsZXRlPzogKHtcbiAgICB2YWx1ZSxcbiAgICBjYXRlZ29yeSxcbiAgICBldnQsXG4gICAgaW5kZXgsXG4gIH06IHtcbiAgICB2YWx1ZTogTGlzdEl0ZW1WYWx1ZTtcbiAgICBjYXRlZ29yeT86IHN0cmluZztcbiAgICBldnQ/OiBTeW50aGV0aWNFdmVudDtcbiAgICBpbmRleD86IG51bWJlcjtcbiAgfSkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCBvbiBFbnRlciBrZXkgdG8gc3VibWl0IHRoZSBmb3JtICAqL1xuICBvbkVudGVyS2V5OiAoKSA9PiB2b2lkO1xufSAmIE9taXQ8XG4gIFByb21wdFRleHRBcmVhUHJvcHMsXG4gIFwiaXNDb2xsYXBzZWRcIiB8IFwiaXNBdXRvY29tcGxldGVMaXN0T3BlblwiIHwgXCJzZWxlY3RlZExpc3RJdGVtXCJcbj4gJlxuICBQaWNrPFxuICAgIEF1dG9jb21wbGV0ZUxpc3RQcm9wcyxcbiAgICBcImF1dG9jb21wbGV0ZUxpc3RJdGVtc1wiIHwgXCJhdXRvY29tcGxldGVMaXN0Rm9vdGVyXCIgfCBcInBvcnRhbENvbnRhaW5lclwiXG4gID47XG5cbmNvbnN0IFByb21wdElucHV0Q29tcG9uZW50ID0gZm9yd2FyZFJlZihcbiAgKFxuICAgIHtcbiAgICAgIFwiZGF0YS1lMmUtdGVzdC1pZFwiOiBkYXRhRTJlVGVzdElkLFxuICAgICAgbmFtZSxcbiAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcyA9IFtdLFxuICAgICAgdmFsdWUsXG4gICAgICBib3R0b21Ub29sYmFyID0geyBsZWZ0Q29udGVudDogbnVsbCwgcmlnaHRDb250ZW50OiBudWxsIH0sXG4gICAgICBpc1Byb2Nlc3NpbmcsXG4gICAgICBzZW5kQnV0dG9uUHJvcHMgPSB7XG4gICAgICAgIHR5cGU6IFwic3VibWl0XCIsXG4gICAgICAgIGljb246IFwiYXJyb3ctdXBcIixcbiAgICAgIH0sXG4gICAgICBhdXRvY29tcGxldGVMaXN0Rm9vdGVyLFxuICAgICAgY2xlYXJCdXR0b25BcmlhTGFiZWwgPSBcIkNsZWFyIGlucHV0XCIsXG4gICAgICBoaW50LFxuICAgICAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudCxcbiAgICAgIGlzTmF2QmFyVmFyaWFudCxcbiAgICAgIHBvcnRhbENvbnRhaW5lcixcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgb25Db21wbGV0ZSxcbiAgICAgIG9uQ2xlYXIsXG4gICAgICBvbkVudGVyS2V5LFxuICAgICAgb25Gb2N1cyxcbiAgICAgIG9uQmx1cixcbiAgICAgIG9uS2V5RG93bixcbiAgICAgIC4uLnJlc3RcbiAgICB9OiBQcm9tcHRJbnB1dFByb3BzLFxuICAgIHJlZjogUmVmT2JqZWN0PEhUTUxUZXh0QXJlYUVsZW1lbnQ+XG4gICk6IFJlYWN0RWxlbWVudCA9PiB7XG4gICAgY29uc3QgY29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCB0ZXh0QXJlYUNvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgaW50ZXJuYWxSZWYgPSB1c2VSZWY8SFRNTFRleHRBcmVhRWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgW3NlbGVjdGVkSW5kZXgsIHNldFNlbGVjdGVkSW5kZXhdID0gdXNlU3RhdGUoLTEpO1xuICAgIGNvbnN0IFtpc0NvbGxhcHNlZCwgc2V0SXNDb2xsYXBzZWRdID0gdXNlU3RhdGUoaXNOYXZCYXJWYXJpYW50KTtcbiAgICBjb25zdCB1c2VyVHlwZWRRdWVyeSA9IHVzZVJlZihcIlwiKTtcbiAgICBjb25zdCBbaXNBdXRvY29tcGxldGVMaXN0T3Blbiwgc2V0SXNBdXRvY29tcGxldGVMaXN0T3Blbl0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgdGV4dEFyZWFSZWYgPSByZWYgfHwgaW50ZXJuYWxSZWY7XG5cbiAgICB1c2VPdXRzaWRlQ2xpY2soXG4gICAgICBjb250YWluZXJSZWYsXG4gICAgICAoZXZ0KSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAhY29udGFpbmVyUmVmLmN1cnJlbnQuY29udGFpbnMoZXZ0LnRhcmdldCBhcyBOb2RlKSAmJlxuICAgICAgICAgICFwb3J0YWxDb250YWluZXI/LmNvbnRhaW5zKGV2dC50YXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICBldnQudGFyZ2V0ICE9PSBudWxsXG4gICAgICAgICkge1xuICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgIWlzQ29sbGFwc2VkICYmIGlzTmF2QmFyVmFyaWFudFxuICAgICk7XG5cbiAgICBjb25zdCBjbG9zZUF1dG9jb21wbGV0ZUxpc3QgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBzZXRJc0F1dG9jb21wbGV0ZUxpc3RPcGVuKGZhbHNlKTtcbiAgICAgIHNldFNlbGVjdGVkSW5kZXgoLTEpO1xuICAgIH0sIFtdKTtcblxuICAgIGNvbnN0IG9wZW5BdXRvY29tcGxldGVMaXN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgaWYgKGF1dG9jb21wbGV0ZUxpc3RJdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgc2V0SXNBdXRvY29tcGxldGVMaXN0T3Blbih0cnVlKTtcbiAgICAgICAgc2V0U2VsZWN0ZWRJbmRleCgtMSk7XG4gICAgICB9XG4gICAgfSwgW2F1dG9jb21wbGV0ZUxpc3RJdGVtc10pO1xuXG4gICAgY29uc3QgYWNjZXB0VGV4dFNlbGVjdGlvbiA9ICgpID0+IHtcbiAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgPSB2YWx1ZTtcbiAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQuc2V0U2VsZWN0aW9uUmFuZ2UodmFsdWUubGVuZ3RoLCB2YWx1ZS5sZW5ndGgpO1xuICAgIH07XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKGF1dG9jb21wbGV0ZUxpc3RJdGVtcy5sZW5ndGggJiYgIWlzQ29sbGFwc2VkKSB7XG4gICAgICAgIG9wZW5BdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIH1cbiAgICB9LCBbXG4gICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXMsXG4gICAgICBvcGVuQXV0b2NvbXBsZXRlTGlzdCxcbiAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCxcbiAgICAgIGlzQ29sbGFwc2VkLFxuICAgIF0pO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZSAhPT0gdXNlclR5cGVkUXVlcnkuY3VycmVudCAmJiBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuKSB7XG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQuc2V0U2VsZWN0aW9uUmFuZ2UoXG4gICAgICAgICAgdXNlclR5cGVkUXVlcnkuY3VycmVudC5sZW5ndGgsXG4gICAgICAgICAgdmFsdWUubGVuZ3RoXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSwgW3ZhbHVlLCB0ZXh0QXJlYVJlZiwgaXNBdXRvY29tcGxldGVMaXN0T3Blbl0pO1xuXG4gICAgLy8gRGV0ZXJtaW5lIHdoZW4gZm9jdXMgbGVhdmVzIHRoZSBjb250YWluZXIgdG8gY29sbGFwc2UgaXRcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgbGV0IGhhbmRsZXI6IChldnQ6IEZvY3VzRXZlbnQpID0+IHZvaWQ7XG4gICAgICBjb25zdCBjb250YWluZXIgPSBjb250YWluZXJSZWYuY3VycmVudDtcblxuICAgICAgaWYgKGlzTmF2QmFyVmFyaWFudCAmJiBjb250YWluZXIpIHtcbiAgICAgICAgaGFuZGxlciA9IChldnQ6IEZvY3VzRXZlbnQpID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAhY29udGFpbmVyUmVmLmN1cnJlbnQuY29udGFpbnMoZXZ0LnJlbGF0ZWRUYXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICAgICFwb3J0YWxDb250YWluZXI/LmNvbnRhaW5zKGV2dC5yZWxhdGVkVGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgICBldnQucmVsYXRlZFRhcmdldCAhPT0gbnVsbFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImZvY3Vzb3V0XCIsIGhhbmRsZXIpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBpZiAoY29udGFpbmVyKSB7XG4gICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJmb2N1c291dFwiLCBoYW5kbGVyKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9LCBbaXNOYXZCYXJWYXJpYW50LCBjb250YWluZXJSZWYsIHBvcnRhbENvbnRhaW5lcl0pO1xuXG4gICAgY29uc3QgZmxhdHRlbmVkTGlzdEl0ZW1zID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBjb25zdCBsaXN0OiBGbGF0dGVuZWRMaXN0SXRlbVtdID0gW107XG5cbiAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcy5mb3JFYWNoKChsaXN0SXRlbSkgPT4ge1xuICAgICAgICBsaXN0SXRlbS5pdGVtcy5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgIGxpc3QucHVzaCh7XG4gICAgICAgICAgICBjYXRlZ29yeTogbGlzdEl0ZW0uY2F0ZWdvcnksXG4gICAgICAgICAgICBpbmRleEluQ2F0ZWdvcnk6IGluZGV4LFxuICAgICAgICAgICAgdmFsdWU6IGl0ZW0udmFsdWUsXG4gICAgICAgICAgICBpZDogZ2V0TGlzdEl0ZW1JZChuYW1lLCBsaXN0SXRlbS5jYXRlZ29yeSwgaW5kZXgpLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGxpc3Q7XG4gICAgfSwgW2F1dG9jb21wbGV0ZUxpc3RJdGVtcywgbmFtZV0pO1xuXG4gICAgY29uc3QgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZSA9IChpbmRleDogbnVtYmVyLCBldnQ/OiBTeW50aGV0aWNFdmVudCkgPT4ge1xuICAgICAgc2V0U2VsZWN0ZWRJbmRleChpbmRleCk7XG4gICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgIGNvbnN0IHsgY2F0ZWdvcnksIHZhbHVlOiBpdGVtVmFsdWUgfSA9IGZsYXR0ZW5lZExpc3RJdGVtc1tpbmRleF07XG5cbiAgICAgICAgb25Db21wbGV0ZSh7IHZhbHVlOiBpdGVtVmFsdWUsIGNhdGVnb3J5LCBldnQsIGluZGV4IH0pO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVMaXN0SXRlbUNsaWNrID0gKFxuICAgICAgY2F0ZWdvcnk6IHN0cmluZyxcbiAgICAgIGluZGV4SW5DYXRlZ29yeTogbnVtYmVyLFxuICAgICAgZXZ0PzogTW91c2VFdmVudFxuICAgICkgPT4ge1xuICAgICAgY29uc3QgaW5kZXggPSBmbGF0dGVuZWRMaXN0SXRlbXMuZmluZEluZGV4KFxuICAgICAgICAobGlzdEl0ZW0pID0+XG4gICAgICAgICAgbGlzdEl0ZW0uY2F0ZWdvcnkgPT09IGNhdGVnb3J5ICYmXG4gICAgICAgICAgbGlzdEl0ZW0uaW5kZXhJbkNhdGVnb3J5ID09PSBpbmRleEluQ2F0ZWdvcnlcbiAgICAgICk7XG5cbiAgICAgIGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2UoaW5kZXgsIGV2dCk7XG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUtleURvd246IEtleWJvYXJkRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgaWYgKGlzQXV0b2NvbXBsZXRlTGlzdE9wZW4pIHtcbiAgICAgICAgc3dpdGNoIChldnQua2V5KSB7XG4gICAgICAgICAgY2FzZSBcIkVzY2FwZVwiOlxuICAgICAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICAgICAgICBvbkNvbXBsZXRlKHsgdmFsdWU6IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQsIGV2dCB9KTtcbiAgICAgICAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiRW50ZXJcIjpcbiAgICAgICAgICAgIGlmICghZXZ0LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgICAgICAgICAgYWNjZXB0VGV4dFNlbGVjdGlvbigpO1xuXG4gICAgICAgICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgIG9uRW50ZXJLZXk/LigpO1xuICAgICAgICAgICAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIiBcIjpcbiAgICAgICAgICAgIGFjY2VwdFRleHRTZWxlY3Rpb24oKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJBcnJvd1VwXCI6XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZShzZWxlY3RlZEluZGV4IC0gMSwgZXZ0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJBcnJvd0Rvd25cIjpcbiAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaWYgKHNlbGVjdGVkSW5kZXggPCBmbGF0dGVuZWRMaXN0SXRlbXMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlKHNlbGVjdGVkSW5kZXggKyAxLCBldnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3dpdGNoIChldnQua2V5KSB7XG4gICAgICAgICAgY2FzZSBcIkVzY2FwZVwiOlxuICAgICAgICAgICAgb25DbGVhcj8uKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiRW50ZXJcIjpcbiAgICAgICAgICAgIGlmICghZXZ0LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBvbkVudGVyS2V5Py4oKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIG9uS2V5RG93bj8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUNoYW5nZTogQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgdXNlclR5cGVkUXVlcnkuY3VycmVudCA9IGV2dC50YXJnZXQudmFsdWU7XG4gICAgICBvbkNoYW5nZShldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVGb2N1czogRm9jdXNFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBzZXRJc0NvbGxhcHNlZChmYWxzZSk7XG4gICAgICBvbkZvY3VzPy4oZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlQmx1cjogRm9jdXNFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBpZiAodmFsdWUgIT09IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQpIHtcbiAgICAgICAgb25Db21wbGV0ZT8uKHsgdmFsdWU6IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQsIGV2dCB9KTtcbiAgICAgIH1cbiAgICAgIG9uQmx1cj8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZVNlbmRCdXR0b25DbGljayA9IChldnQ6IE1vdXNlRXZlbnQ8SFRNTEJ1dHRvbkVsZW1lbnQ+KSA9PiB7XG4gICAgICBzZW5kQnV0dG9uUHJvcHMub25DbGljaz8uKGV2dCk7XG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZVByZXZlbnRGb2N1cyA9IChldnQ6IFJlYWN0LlBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgLy8gUHJldmVudCB0aGUgdGV4dGFyZWEgZnJvbSBiZWluZyB1bmZvY3VzZWRcbiAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVPbkNvbnRhaW5lclBvaW50ZXJEb3duID0gKGV2dDogUmVhY3QuUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAvLyBGb2N1cyB0ZXh0YXJlYSB3aGVuIGNsaWNraW5nIG9uIHRoZSBjb250YWluZXIgb25seVxuICAgICAgaWYgKGV2dC50YXJnZXQgPT09IGV2dC5jdXJyZW50VGFyZ2V0KSB7XG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBzZWxlY3RlZExpc3RJdGVtID1cbiAgICAgIHNlbGVjdGVkSW5kZXggIT09IC0xID8gZmxhdHRlbmVkTGlzdEl0ZW1zW3NlbGVjdGVkSW5kZXhdIDogbnVsbDtcblxuICAgIGNvbnN0IGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRFbG0gPSBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50ID8gKFxuICAgICAgPFN0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXJcbiAgICAgICAgaXNOYXZCYXJWYXJpYW50PXtpc05hdkJhclZhcmlhbnR9XG4gICAgICA+XG4gICAgICAgIDxUZXh0IGNvbG9yPVwidGVydGlhcnlcIj57ZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudH08L1RleHQ+XG4gICAgICA8L1N0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXI+XG4gICAgKSA6IG51bGw7XG5cbiAgICBjb25zdCBjbGVhckJ1dHRvbkVsbSA9IHZhbHVlID8gKFxuICAgICAgPFN0eWxlZENsZWFyQnV0dG9uXG4gICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgaWNvbj1cIngtY2lyY2xlLWZpbGxlZFwiXG4gICAgICAgIGFyaWEtbGFiZWw9e2NsZWFyQnV0dG9uQXJpYUxhYmVsfVxuICAgICAgICBpc05hdkJhclZhcmlhbnQ9e2lzTmF2QmFyVmFyaWFudH1cbiAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlUHJldmVudEZvY3VzfVxuICAgICAgICBvbkNsaWNrPXtvbkNsZWFyfVxuICAgICAgLz5cbiAgICApIDogKFxuICAgICAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudEVsbVxuICAgICk7XG5cbiAgICBjb25zdCBoaW50RWxtID0gISFoaW50ICYmIChcbiAgICAgIDxJbmxpbmUgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICA8VGV4dCBzaXplPVwic1wiIGNvbG9yPVwidGVydGlhcnlcIj5cbiAgICAgICAgICB7aGludH1cbiAgICAgICAgPC9UZXh0PlxuICAgICAgPC9JbmxpbmU+XG4gICAgKTtcblxuICAgIGNvbnN0IGJvdHRvbVRvb2xiYXJFbG0gPSAhaXNDb2xsYXBzZWQgJiYgKFxuICAgICAgPD5cbiAgICAgICAgPFN0eWxlZFNsb3QgcG9zaXRpb249XCJsZWZ0XCI+e2JvdHRvbVRvb2xiYXIubGVmdENvbnRlbnR9PC9TdHlsZWRTbG90PlxuICAgICAgICA8U3R5bGVkU2xvdCBwb3NpdGlvbj1cInJpZ2h0XCIgZGF0YS1lMmUtdGVzdC1pZD1cImJvdHRvbVRvb2xiYXJcIj5cbiAgICAgICAgICA8SW5saW5lIHNwYWNlPVwieHNcIiB2QWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAge2JvdHRvbVRvb2xiYXIucmlnaHRDb250ZW50fVxuICAgICAgICAgICAgPFJvdW5kQnV0dG9uXG4gICAgICAgICAgICAgIHsuLi5zZW5kQnV0dG9uUHJvcHN9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVNlbmRCdXR0b25DbGlja31cbiAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlUHJldmVudEZvY3VzfVxuICAgICAgICAgICAgICBhcmlhQXR0cmlidXRlcz17e1xuICAgICAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiBpc1Byb2Nlc3NpbmdcbiAgICAgICAgICAgICAgICAgID8gXCJQcm9jZXNzaW5nIHF1ZXJ5XCJcbiAgICAgICAgICAgICAgICAgIDogXCJTdWJtaXQgcXVlcnlcIixcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgdmFyaWFudD1cInByaW1hcnlcIlxuICAgICAgICAgICAgICBkaXNhYmxlZD17IXZhbHVlfVxuICAgICAgICAgICAgICBpY29uPXtpc1Byb2Nlc3NpbmcgPyBcInN0b3AtZmlsbGVkXCIgOiBzZW5kQnV0dG9uUHJvcHMuaWNvbn1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9JbmxpbmU+XG4gICAgICAgIDwvU3R5bGVkU2xvdD5cbiAgICAgICAgPFN0eWxlZENsZWFyIC8+XG4gICAgICA8Lz5cbiAgICApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBkYXRhLWUyZS10ZXN0LWlkPXtkYXRhRTJlVGVzdElkfVxuICAgICAgICAgIGRhdGEtZHMtaWQ9XCJQcm9tcHRJbnB1dFwiXG4gICAgICAgICAgcmVmPXtjb250YWluZXJSZWZ9XG4gICAgICAgICAgLy8gVHJhbnNsYXRpb24gZGlzYWJsZWQgZm9yIGNvbnNpc3RlbmN5IHdpdGggdGhlIGF1dG9jb21wbGV0ZSBsaXN0XG4gICAgICAgICAgdHJhbnNsYXRlPVwibm9cIlxuICAgICAgICA+XG4gICAgICAgICAgPFN0YWNrIHNwYWNlPVwic1wiPlxuICAgICAgICAgICAgPEN1c3RvbUNvbnRhaW5lclxuICAgICAgICAgICAgICBlbGV2YXRpb249ezB9XG4gICAgICAgICAgICAgIGJvcmRlclJhZGl1cz17aXNDb2xsYXBzZWQgPyBcInhzXCIgOiBcIm1cIn1cbiAgICAgICAgICAgICAgaGlkZUJvcmRlcj17aXNDb2xsYXBzZWR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICByZWY9e3RleHRBcmVhQ29udGFpbmVyUmVmfVxuICAgICAgICAgICAgICAgIG9uUG9pbnRlckRvd249e2hhbmRsZU9uQ29udGFpbmVyUG9pbnRlckRvd259XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8U3R5bGVkVGV4dEFyZWFDb250YWluZXI+XG4gICAgICAgICAgICAgICAgICA8UHJvbXB0VGV4dEFyZWFcbiAgICAgICAgICAgICAgICAgICAgey4uLnJlc3R9XG4gICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQ9e1xuICAgICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQgPyBgJHtkYXRhRTJlVGVzdElkfS1pbnB1dGAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFSZWZ9XG4gICAgICAgICAgICAgICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZExpc3RJdGVtPXtzZWxlY3RlZExpc3RJdGVtfVxuICAgICAgICAgICAgICAgICAgICBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuPXtpc0F1dG9jb21wbGV0ZUxpc3RPcGVufVxuICAgICAgICAgICAgICAgICAgICBpc0NvbGxhcHNlZD17aXNDb2xsYXBzZWR9XG4gICAgICAgICAgICAgICAgICAgIG9uRm9jdXM9e2hhbmRsZUZvY3VzfVxuICAgICAgICAgICAgICAgICAgICBvbkJsdXI9e2hhbmRsZUJsdXJ9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17aGFuZGxlS2V5RG93bn1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICB7Y2xlYXJCdXR0b25FbG19XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRUZXh0QXJlYUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICB7Ym90dG9tVG9vbGJhckVsbX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L0N1c3RvbUNvbnRhaW5lcj5cbiAgICAgICAgICAgIHtoaW50RWxtfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxBdXRvY29tcGxldGVMaXN0XG4gICAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zPXthdXRvY29tcGxldGVMaXN0SXRlbXN9XG4gICAgICAgICAgdHJpZ2dlclJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgc2VsZWN0ZWRMaXN0SXRlbT17c2VsZWN0ZWRMaXN0SXRlbX1cbiAgICAgICAgICBpc09wZW49e2lzQXV0b2NvbXBsZXRlTGlzdE9wZW59XG4gICAgICAgICAgYXV0b2NvbXBsZXRlTGlzdEZvb3Rlcj17YXV0b2NvbXBsZXRlTGlzdEZvb3Rlcn1cbiAgICAgICAgICBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn1cbiAgICAgICAgICBvbkxpc3RJdGVtQ2xpY2s9e2hhbmRsZUxpc3RJdGVtQ2xpY2t9XG4gICAgICAgIC8+XG4gICAgICA8Lz5cbiAgICApO1xuICB9XG4pO1xuXG5jb25zdCBDdXN0b21CdXR0b24gPSBzdHlsZWQoQnV0dG9uKSgoeyB0aGVtZSB9KSA9PiAoe1xuICBib3JkZXJSYWRpdXM6IHRoZW1lLnZhcmlhYmxlcy5zaXplLmJvcmRlclJhZGl1cy5sLFxufSkpO1xuXG4vLyBuZWVkIHRvIHNpbXBsaWZ5IHRoaXMgdHlwZSBmb3IgcmV1c2VcbmNvbnN0IFN1Z2dlc3Rpb25CdXR0b24gPSBmb3J3YXJkUmVmKFxuICA8QyBleHRlbmRzIFJlYWN0LkVsZW1lbnRUeXBlID0gXCJidXR0b25cIj4oXG4gICAgcHJvcHM6IFBvbHltb3JwaGljQ29tcG9uZW50UHJvcHNXaXRoUmVmPFxuICAgICAgQyxcbiAgICAgIE9taXQ8QnV0dG9uUHJvcHMsIFwidmFyaWFudFwiIHwgXCJzaXplXCIgfCBcInJlZlwiPlxuICAgID4sXG4gICAgcmVmOiBQb2x5bW9ycGhpY1JlZjxDPlxuICApID0+IDxDdXN0b21CdXR0b24gey4uLnByb3BzfSB2YXJpYW50PVwic2Vjb25kYXJ5XCIgc2l6ZT1cInNcIiByZWY9e3JlZn0gLz5cbik7XG5cbmV4cG9ydCBjb25zdCBQcm9tcHRJbnB1dCA9IE9iamVjdC5hc3NpZ24oUHJvbXB0SW5wdXRDb21wb25lbnQsIHtcbiAgU3VnZ2VzdGlvbkJ1dHRvbixcbn0pIGFzIHR5cGVvZiBQcm9tcHRJbnB1dENvbXBvbmVudCAmIHtcbiAgU3VnZ2VzdGlvbkJ1dHRvbjogdHlwZW9mIFN1Z2dlc3Rpb25CdXR0b247XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTRHb0IifQ== */"),PromptInputComponent=(0,_react.forwardRef)(({"data-e2e-test-id":dataE2eTestId,name,autocompleteListItems=[],value,bottomToolbar={leftContent:null,rightContent:null},isProcessing,sendButtonProps={type:"submit",icon:"arrow-up"},autocompleteListFooter,clearButtonAriaLabel="Clear input",hint,emptyStateTopRightContent,isNavBarVariant,portalContainer,onChange,onComplete,onClear,onEnterKey,onFocus,onBlur,onKeyDown,...rest},ref)=>{let containerRef=(0,_react.useRef)(null),textAreaContainerRef=(0,_react.useRef)(null),internalRef=(0,_react.useRef)(null),[selectedIndex,setSelectedIndex]=(0,_react.useState)(-1),[isCollapsed,setIsCollapsed]=(0,_react.useState)(isNavBarVariant),userTypedQuery=(0,_react.useRef)(""),[isAutocompleteListOpen,setIsAutocompleteListOpen]=(0,_react.useState)(!1),textAreaRef=ref||internalRef;(0,_useOutsideClick.useOutsideClick)(containerRef,evt=>{containerRef.current.contains(evt.target)||portalContainer?.contains(evt.target)||null===evt.target||setIsCollapsed(!0)},!isCollapsed&&isNavBarVariant);let closeAutocompleteList=(0,_react.useCallback)(()=>{setIsAutocompleteListOpen(!1),setSelectedIndex(-1)},[]),openAutocompleteList=(0,_react.useCallback)(()=>{autocompleteListItems.length&&(setIsAutocompleteListOpen(!0),setSelectedIndex(-1))},[autocompleteListItems]),acceptTextSelection=()=>{userTypedQuery.current=value,textAreaRef.current.setSelectionRange(value.length,value.length)};(0,_react.useEffect)(()=>{autocompleteListItems.length&&!isCollapsed?openAutocompleteList():closeAutocompleteList()},[autocompleteListItems,openAutocompleteList,closeAutocompleteList,isCollapsed]),(0,_react.useEffect)(()=>{value&&value!==userTypedQuery.current&&isAutocompleteListOpen&&textAreaRef.current.setSelectionRange(userTypedQuery.current.length,value.length)},[value,textAreaRef,isAutocompleteListOpen]),(0,_react.useEffect)(()=>{let handler,container=containerRef.current;return isNavBarVariant&&container&&(handler=evt=>{containerRef.current.contains(evt.relatedTarget)||portalContainer?.contains(evt.relatedTarget)||null===evt.relatedTarget||setIsCollapsed(!0)},window.addEventListener("focusout",handler)),()=>{container&&window.removeEventListener("focusout",handler)}},[isNavBarVariant,containerRef,portalContainer]);let flattenedListItems=(0,_react.useMemo)(()=>{let list=[];return autocompleteListItems.forEach(listItem=>{listItem.items.forEach((item,index)=>{list.push({category:listItem.category,indexInCategory:index,value:item.value,id:(0,_CategoryList.getListItemId)(name,listItem.category,index)})})}),list},[autocompleteListItems,name]),handleSelectedIndexChange=(index,evt)=>{if(setSelectedIndex(index),-1!==index){let{category,value:itemValue}=flattenedListItems[index];onComplete({value:itemValue,category,evt,index})}},handlePreventFocus=evt=>{evt.preventDefault()},selectedListItem=-1!==selectedIndex?flattenedListItems[selectedIndex]:null,emptyStateTopRightContentElm=emptyStateTopRightContent?_react.default.createElement(StyledEmptyStateTopRightContentContainer,{isNavBarVariant:isNavBarVariant},_react.default.createElement(_Text.Text,{color:"tertiary"},emptyStateTopRightContent)):null,clearButtonElm=value?_react.default.createElement(StyledClearButton,{size:"s",icon:"x-circle-filled","aria-label":clearButtonAriaLabel,isNavBarVariant:isNavBarVariant,onPointerDown:handlePreventFocus,onClick:onClear}):emptyStateTopRightContentElm,hintElm=!!hint&&_react.default.createElement(_Inline.Inline,{alignItems:"center"},_react.default.createElement(_Text.Text,{size:"s",color:"tertiary"},hint)),bottomToolbarElm=!isCollapsed&&_react.default.createElement(_react.default.Fragment,null,_react.default.createElement(StyledSlot,{position:"left"},bottomToolbar.leftContent),_react.default.createElement(StyledSlot,{position:"right","data-e2e-test-id":"bottomToolbar"},_react.default.createElement(_Inline.Inline,{space:"xs",vAlignItems:"center"},bottomToolbar.rightContent,_react.default.createElement(_RoundButton.RoundButton,{...sendButtonProps,onClick:evt=>{sendButtonProps.onClick?.(evt),closeAutocompleteList(),isNavBarVariant&&setIsCollapsed(!0)},onPointerDown:handlePreventFocus,ariaAttributes:{"aria-label":isProcessing?"Processing query":"Submit query"},variant:"primary",disabled:!value,icon:isProcessing?"stop-filled":sendButtonProps.icon}))),_react.default.createElement(StyledClear,null));return _react.default.createElement(_react.default.Fragment,null,_react.default.createElement("div",{"data-e2e-test-id":dataE2eTestId,"data-ds-id":"PromptInput",ref:containerRef,translate:"no"},_react.default.createElement(_Stack.Stack,{space:"s"},_react.default.createElement(CustomContainer,{elevation:0,borderRadius:isCollapsed?"xs":"m",hideBorder:isCollapsed},_react.default.createElement("div",{ref:textAreaContainerRef,onPointerDown:evt=>{evt.target===evt.currentTarget&&(textAreaRef.current?.focus(),evt.preventDefault())}},_react.default.createElement(StyledTextAreaContainer,null,_react.default.createElement(_PromptTextArea.PromptTextArea,{...rest,dataE2eTestId:dataE2eTestId?`${dataE2eTestId}-input`:void 0,name:name,value:value,ref:textAreaRef,isNavBarVariant:isNavBarVariant,selectedListItem:selectedListItem,isAutocompleteListOpen:isAutocompleteListOpen,isCollapsed:isCollapsed,onFocus:evt=>{setIsCollapsed(!1),onFocus?.(evt)},onBlur:evt=>{value!==userTypedQuery.current&&onComplete?.({value:userTypedQuery.current,evt}),onBlur?.(evt)},onChange:evt=>{userTypedQuery.current=evt.target.value,onChange(evt)},onKeyDown:evt=>{if(isAutocompleteListOpen)switch(evt.key){case"Escape":closeAutocompleteList(),onComplete({value:userTypedQuery.current,evt}),isNavBarVariant&&setIsCollapsed(!0);break;case"Enter":!evt.shiftKey&&(evt.preventDefault(),closeAutocompleteList(),acceptTextSelection(),value&&(onEnterKey?.(),isNavBarVariant&&setIsCollapsed(!0)));break;case" ":acceptTextSelection();break;case"ArrowUp":evt.preventDefault(),selectedIndex>-1&&handleSelectedIndexChange(selectedIndex-1,evt);break;case"ArrowDown":evt.preventDefault(),selectedIndex<flattenedListItems.length-1&&handleSelectedIndexChange(selectedIndex+1,evt)}else switch(evt.key){case"Escape":onClear?.();break;case"Enter":!evt.shiftKey&&(evt.preventDefault(),value&&onEnterKey?.())}onKeyDown?.(evt)}}),clearButtonElm),bottomToolbarElm)),hintElm)),_react.default.createElement(_AutocompleteList.AutocompleteList,{name:name,value:value,autocompleteListItems:autocompleteListItems,triggerRef:textAreaContainerRef,selectedListItem:selectedListItem,isOpen:isAutocompleteListOpen,autocompleteListFooter:autocompleteListFooter,portalContainer:portalContainer,onListItemClick:(category,indexInCategory,evt)=>{handleSelectedIndexChange(flattenedListItems.findIndex(listItem=>listItem.category===category&&listItem.indexInCategory===indexInCategory),evt),closeAutocompleteList(),isNavBarVariant&&setIsCollapsed(!0)}}))}),CustomButton=(0,_styled.default)(_Button.Button,{target:"e1rdcmtk6",label:"CustomButton"})(({theme})=>({borderRadius:theme.variables.size.borderRadius.l}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUHJvbXB0SW5wdXQvUHJvbXB0SW5wdXQudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Qcm9tcHRJbnB1dC9Qcm9tcHRJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBSZWFjdEVsZW1lbnQsXG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlZk9iamVjdCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIFN5bnRoZXRpY0V2ZW50LFxuICBNb3VzZUV2ZW50LFxufSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZVJlZixcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG4gIGZvcndhcmRSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgdHlwZSB7IFByb21wdFRleHRBcmVhUHJvcHMgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHsgUHJvbXB0VGV4dEFyZWEgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHsgQ29udGFpbmVyIH0gZnJvbSBcIi4uL0NvbnRhaW5lclwiO1xuaW1wb3J0IHR5cGUgeyBBdXRvY29tcGxldGVMaXN0UHJvcHMgfSBmcm9tIFwiLi9BdXRvY29tcGxldGVMaXN0XCI7XG5pbXBvcnQgeyBBdXRvY29tcGxldGVMaXN0IH0gZnJvbSBcIi4vQXV0b2NvbXBsZXRlTGlzdFwiO1xuaW1wb3J0IHtcbiAgZ2V0TGlzdEl0ZW1JZCxcbiAgdHlwZSBGbGF0dGVuZWRMaXN0SXRlbSxcbiAgdHlwZSBMaXN0SXRlbVZhbHVlLFxufSBmcm9tIFwiLi9DYXRlZ29yeUxpc3RcIjtcbmltcG9ydCB7IFRleHQgfSBmcm9tIFwiLi4vVHlwb2dyYXBoeS9UZXh0XCI7XG5pbXBvcnQgeyBCdXR0b24sIHR5cGUgQnV0dG9uUHJvcHMgfSBmcm9tIFwiLi4vQnV0dG9uL0J1dHRvblwiO1xuaW1wb3J0IHR5cGUge1xuICBQb2x5bW9ycGhpY1JlZixcbiAgUG9seW1vcnBoaWNDb21wb25lbnRQcm9wc1dpdGhSZWYsXG59IGZyb20gXCIuLi8uLi90eXBlc1wiO1xuaW1wb3J0IHsgSW5saW5lIH0gZnJvbSBcIi4uL0lubGluZS9JbmxpbmVcIjtcbmltcG9ydCB0eXBlIHsgUm91bmRCdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9Sb3VuZEJ1dHRvbi9Sb3VuZEJ1dHRvblwiO1xuaW1wb3J0IHsgUm91bmRCdXR0b24gfSBmcm9tIFwiLi4vUm91bmRCdXR0b24vUm91bmRCdXR0b25cIjtcbmltcG9ydCB0eXBlIHsgUGljdG9ncmFtQnV0dG9uUHJvcHMgfSBmcm9tIFwiLi4vUGljdG9ncmFtQnV0dG9uL1BpY3RvZ3JhbUJ1dHRvblwiO1xuaW1wb3J0IHsgUGljdG9ncmFtQnV0dG9uIH0gZnJvbSBcIi4uL1BpY3RvZ3JhbUJ1dHRvbi9QaWN0b2dyYW1CdXR0b25cIjtcbmltcG9ydCB7IFN0YWNrIH0gZnJvbSBcIi4uL1N0YWNrL1N0YWNrXCI7XG5pbXBvcnQgeyB1c2VPdXRzaWRlQ2xpY2sgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL3VzZU91dHNpZGVDbGlja1wiO1xuXG5jb25zdCBDdXN0b21Db250YWluZXIgPSBzdHlsZWQoQ29udGFpbmVyKTx7IGhpZGVCb3JkZXI6IGJvb2xlYW4gfT4oXG4gICh7IHRoZW1lLCBoaWRlQm9yZGVyIH0pID0+ICh7XG4gICAgYm9yZGVyOiBgMXB4IHNvbGlkICR7dGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5wcmltYXJ5LmRlZmF1bHR9YCxcbiAgICAuLi4oaGlkZUJvcmRlciAmJiB7XG4gICAgICBib3JkZXJDb2xvcjogXCJ0cmFuc3BhcmVudFwiLFxuICAgIH0pLFxuICAgIGN1cnNvcjogXCJ0ZXh0XCIsXG4gICAgW2AmOmhhcyh0ZXh0YXJlYTpmb2N1cy12aXNpYmxlKWBdOiB7XG4gICAgICBvdXRsaW5lV2lkdGg6IDEsXG4gICAgICBvdXRsaW5lU3R5bGU6IFwic29saWRcIixcbiAgICAgIG91dGxpbmVPZmZzZXQ6IC0xLFxuICAgICAgb3V0bGluZUNvbG9yOiB0aGVtZS52YWx1ZXMuY29sb3IuYm9yZGVyLmFjY2VudC5kZWZhdWx0LFxuICAgICAgYm94U2hhZG93OiB0aGVtZS52YWx1ZXMuc2hhZG93LmZvY3VzUmluZyxcblxuICAgICAgXCJAbWVkaWEgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzowKVwiOiB7XG4gICAgICAgIG91dGxpbmVDb2xvcjogdGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5hY2NlbnQuZGVmYXVsdCxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZFRleHRBcmVhQ29udGFpbmVyID0gc3R5bGVkLmRpdih7XG4gIGJvcmRlclJhZGl1czogXCJpbmhlcml0XCIsXG4gIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG59KTtcblxudHlwZSBTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyUHJvcHMgPSBQaWNrPFxuICBQcm9tcHRJbnB1dFByb3BzLFxuICBcImlzTmF2QmFyVmFyaWFudFwiXG4+O1xuXG5jb25zdCBTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyID1cbiAgc3R5bGVkLmRpdjxTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyUHJvcHM+KFxuICAgICh7IHRoZW1lLCBpc05hdkJhclZhcmlhbnQgfSkgPT4gKHtcbiAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICB0b3A6IGlzTmF2QmFyVmFyaWFudFxuICAgICAgICA/IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHhzXG4gICAgICAgIDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5tLFxuICAgICAgcmlnaHQ6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubSxcbiAgICAgIHVzZXJTZWxlY3Q6IFwibm9uZVwiLFxuICAgICAgcG9pbnRlckV2ZW50czogXCJub25lXCIsXG4gICAgfSlcbiAgKTtcblxudHlwZSBTdHlsZWRDbGVhckJ1dHRvblByb3BzID0gUGljdG9ncmFtQnV0dG9uUHJvcHMgJlxuICBQaWNrPFByb21wdElucHV0UHJvcHMsIFwiaXNOYXZCYXJWYXJpYW50XCI+O1xuXG5jb25zdCBTdHlsZWRDbGVhckJ1dHRvbiA9IHN0eWxlZChQaWN0b2dyYW1CdXR0b24pPFN0eWxlZENsZWFyQnV0dG9uUHJvcHM+KFxuICAoeyB0aGVtZSwgaXNOYXZCYXJWYXJpYW50IH0pID0+ICh7XG4gICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICByaWdodDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zLFxuICAgIHRvcDogaXNOYXZCYXJWYXJpYW50ID8gMCA6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcucyxcbiAgfSlcbik7XG5cbi8vIFVzaW5nIGZsb2F0IGluIG9yZGVyIHRvIGF2b2lkIHRoZSBpbnZpc2libGUgYXJlYSBiZXR3ZWVuIHRoZSBzbG90c1xuLy8gdGhhdCBwcmV2ZW50cyB0aGUgdGV4dGFyZWEgZnJvbSBiZWluZyBmb2N1c2VkXG5jb25zdCBTdHlsZWRTbG90ID0gc3R5bGVkLmRpdjx7IHBvc2l0aW9uOiBcImxlZnRcIiB8IFwicmlnaHRcIiB9PihcbiAgKHsgcG9zaXRpb24sIHRoZW1lIH0pID0+ICh7XG4gICAgZmxvYXQ6IHBvc2l0aW9uLFxuICAgIG1hcmdpbjogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5tLFxuICAgIGN1cnNvcjogXCJkZWZhdWx0XCIsXG4gIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRDbGVhciA9IHN0eWxlZC5kaXYoe1xuICBjbGVhcjogXCJib3RoXCIsXG59KTtcblxuZXhwb3J0IHR5cGUgUHJvbXB0SW5wdXRQcm9wcyA9IHtcbiAgXCJkYXRhLWUyZS10ZXN0LWlkXCI/OiBzdHJpbmc7XG4gIC8qKiBUb29sYmFyIGVsZW1lbnRzIGJlbG93IHRleHQgYXJlYSAqL1xuICBib3R0b21Ub29sYmFyPzoge1xuICAgIGxlZnRDb250ZW50PzogUmVhY3RFbGVtZW50O1xuICAgIHJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgfTtcbiAgLyoqIEN1cnJlbnRseSBzaG93cyBzZW5kIGJ1dHRvbiBwcm9jZXNzaW5nIHN0YXRlICAqL1xuICBpc1Byb2Nlc3Npbmc/OiBib29sZWFuO1xuICBzZW5kQnV0dG9uUHJvcHM/OiBPbWl0PFJvdW5kQnV0dG9uUHJvcHMsIFwiaWNvblwiIHwgXCJ2YXJpYW50XCI+ICYge1xuICAgIGljb24/OiBcImFycm93LXVwXCIgfCBcInNlYXJjaFwiIHwgXCJhcnJvdy1yaWdodFwiO1xuICB9O1xuICBjbGVhckJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgaGludD86IFJlYWN0RWxlbWVudDtcbiAgLyoqIFNob3dzIGluIHRoZSBjbGVhciBidXR0b24gc3BhY2UgaW4gZW1wdHkgc3RhdGUgKi9cbiAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgb25DbGVhcjogKCkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCB3aGVuIHVzZXIgc2VsZWN0cyAob3IgcmVqZWN0cykgYSBsaXN0IGl0ZW0gZnJvbSBhdXRvY29tcGxldGUgbGlzdCAqL1xuICBvbkNvbXBsZXRlPzogKHtcbiAgICB2YWx1ZSxcbiAgICBjYXRlZ29yeSxcbiAgICBldnQsXG4gICAgaW5kZXgsXG4gIH06IHtcbiAgICB2YWx1ZTogTGlzdEl0ZW1WYWx1ZTtcbiAgICBjYXRlZ29yeT86IHN0cmluZztcbiAgICBldnQ/OiBTeW50aGV0aWNFdmVudDtcbiAgICBpbmRleD86IG51bWJlcjtcbiAgfSkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCBvbiBFbnRlciBrZXkgdG8gc3VibWl0IHRoZSBmb3JtICAqL1xuICBvbkVudGVyS2V5OiAoKSA9PiB2b2lkO1xufSAmIE9taXQ8XG4gIFByb21wdFRleHRBcmVhUHJvcHMsXG4gIFwiaXNDb2xsYXBzZWRcIiB8IFwiaXNBdXRvY29tcGxldGVMaXN0T3BlblwiIHwgXCJzZWxlY3RlZExpc3RJdGVtXCJcbj4gJlxuICBQaWNrPFxuICAgIEF1dG9jb21wbGV0ZUxpc3RQcm9wcyxcbiAgICBcImF1dG9jb21wbGV0ZUxpc3RJdGVtc1wiIHwgXCJhdXRvY29tcGxldGVMaXN0Rm9vdGVyXCIgfCBcInBvcnRhbENvbnRhaW5lclwiXG4gID47XG5cbmNvbnN0IFByb21wdElucHV0Q29tcG9uZW50ID0gZm9yd2FyZFJlZihcbiAgKFxuICAgIHtcbiAgICAgIFwiZGF0YS1lMmUtdGVzdC1pZFwiOiBkYXRhRTJlVGVzdElkLFxuICAgICAgbmFtZSxcbiAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcyA9IFtdLFxuICAgICAgdmFsdWUsXG4gICAgICBib3R0b21Ub29sYmFyID0geyBsZWZ0Q29udGVudDogbnVsbCwgcmlnaHRDb250ZW50OiBudWxsIH0sXG4gICAgICBpc1Byb2Nlc3NpbmcsXG4gICAgICBzZW5kQnV0dG9uUHJvcHMgPSB7XG4gICAgICAgIHR5cGU6IFwic3VibWl0XCIsXG4gICAgICAgIGljb246IFwiYXJyb3ctdXBcIixcbiAgICAgIH0sXG4gICAgICBhdXRvY29tcGxldGVMaXN0Rm9vdGVyLFxuICAgICAgY2xlYXJCdXR0b25BcmlhTGFiZWwgPSBcIkNsZWFyIGlucHV0XCIsXG4gICAgICBoaW50LFxuICAgICAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudCxcbiAgICAgIGlzTmF2QmFyVmFyaWFudCxcbiAgICAgIHBvcnRhbENvbnRhaW5lcixcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgb25Db21wbGV0ZSxcbiAgICAgIG9uQ2xlYXIsXG4gICAgICBvbkVudGVyS2V5LFxuICAgICAgb25Gb2N1cyxcbiAgICAgIG9uQmx1cixcbiAgICAgIG9uS2V5RG93bixcbiAgICAgIC4uLnJlc3RcbiAgICB9OiBQcm9tcHRJbnB1dFByb3BzLFxuICAgIHJlZjogUmVmT2JqZWN0PEhUTUxUZXh0QXJlYUVsZW1lbnQ+XG4gICk6IFJlYWN0RWxlbWVudCA9PiB7XG4gICAgY29uc3QgY29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCB0ZXh0QXJlYUNvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgaW50ZXJuYWxSZWYgPSB1c2VSZWY8SFRNTFRleHRBcmVhRWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgW3NlbGVjdGVkSW5kZXgsIHNldFNlbGVjdGVkSW5kZXhdID0gdXNlU3RhdGUoLTEpO1xuICAgIGNvbnN0IFtpc0NvbGxhcHNlZCwgc2V0SXNDb2xsYXBzZWRdID0gdXNlU3RhdGUoaXNOYXZCYXJWYXJpYW50KTtcbiAgICBjb25zdCB1c2VyVHlwZWRRdWVyeSA9IHVzZVJlZihcIlwiKTtcbiAgICBjb25zdCBbaXNBdXRvY29tcGxldGVMaXN0T3Blbiwgc2V0SXNBdXRvY29tcGxldGVMaXN0T3Blbl0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgdGV4dEFyZWFSZWYgPSByZWYgfHwgaW50ZXJuYWxSZWY7XG5cbiAgICB1c2VPdXRzaWRlQ2xpY2soXG4gICAgICBjb250YWluZXJSZWYsXG4gICAgICAoZXZ0KSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAhY29udGFpbmVyUmVmLmN1cnJlbnQuY29udGFpbnMoZXZ0LnRhcmdldCBhcyBOb2RlKSAmJlxuICAgICAgICAgICFwb3J0YWxDb250YWluZXI/LmNvbnRhaW5zKGV2dC50YXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICBldnQudGFyZ2V0ICE9PSBudWxsXG4gICAgICAgICkge1xuICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgIWlzQ29sbGFwc2VkICYmIGlzTmF2QmFyVmFyaWFudFxuICAgICk7XG5cbiAgICBjb25zdCBjbG9zZUF1dG9jb21wbGV0ZUxpc3QgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBzZXRJc0F1dG9jb21wbGV0ZUxpc3RPcGVuKGZhbHNlKTtcbiAgICAgIHNldFNlbGVjdGVkSW5kZXgoLTEpO1xuICAgIH0sIFtdKTtcblxuICAgIGNvbnN0IG9wZW5BdXRvY29tcGxldGVMaXN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgaWYgKGF1dG9jb21wbGV0ZUxpc3RJdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgc2V0SXNBdXRvY29tcGxldGVMaXN0T3Blbih0cnVlKTtcbiAgICAgICAgc2V0U2VsZWN0ZWRJbmRleCgtMSk7XG4gICAgICB9XG4gICAgfSwgW2F1dG9jb21wbGV0ZUxpc3RJdGVtc10pO1xuXG4gICAgY29uc3QgYWNjZXB0VGV4dFNlbGVjdGlvbiA9ICgpID0+IHtcbiAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgPSB2YWx1ZTtcbiAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQuc2V0U2VsZWN0aW9uUmFuZ2UodmFsdWUubGVuZ3RoLCB2YWx1ZS5sZW5ndGgpO1xuICAgIH07XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKGF1dG9jb21wbGV0ZUxpc3RJdGVtcy5sZW5ndGggJiYgIWlzQ29sbGFwc2VkKSB7XG4gICAgICAgIG9wZW5BdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIH1cbiAgICB9LCBbXG4gICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXMsXG4gICAgICBvcGVuQXV0b2NvbXBsZXRlTGlzdCxcbiAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCxcbiAgICAgIGlzQ29sbGFwc2VkLFxuICAgIF0pO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZSAhPT0gdXNlclR5cGVkUXVlcnkuY3VycmVudCAmJiBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuKSB7XG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQuc2V0U2VsZWN0aW9uUmFuZ2UoXG4gICAgICAgICAgdXNlclR5cGVkUXVlcnkuY3VycmVudC5sZW5ndGgsXG4gICAgICAgICAgdmFsdWUubGVuZ3RoXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSwgW3ZhbHVlLCB0ZXh0QXJlYVJlZiwgaXNBdXRvY29tcGxldGVMaXN0T3Blbl0pO1xuXG4gICAgLy8gRGV0ZXJtaW5lIHdoZW4gZm9jdXMgbGVhdmVzIHRoZSBjb250YWluZXIgdG8gY29sbGFwc2UgaXRcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgbGV0IGhhbmRsZXI6IChldnQ6IEZvY3VzRXZlbnQpID0+IHZvaWQ7XG4gICAgICBjb25zdCBjb250YWluZXIgPSBjb250YWluZXJSZWYuY3VycmVudDtcblxuICAgICAgaWYgKGlzTmF2QmFyVmFyaWFudCAmJiBjb250YWluZXIpIHtcbiAgICAgICAgaGFuZGxlciA9IChldnQ6IEZvY3VzRXZlbnQpID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAhY29udGFpbmVyUmVmLmN1cnJlbnQuY29udGFpbnMoZXZ0LnJlbGF0ZWRUYXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICAgICFwb3J0YWxDb250YWluZXI/LmNvbnRhaW5zKGV2dC5yZWxhdGVkVGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgICBldnQucmVsYXRlZFRhcmdldCAhPT0gbnVsbFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImZvY3Vzb3V0XCIsIGhhbmRsZXIpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBpZiAoY29udGFpbmVyKSB7XG4gICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJmb2N1c291dFwiLCBoYW5kbGVyKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9LCBbaXNOYXZCYXJWYXJpYW50LCBjb250YWluZXJSZWYsIHBvcnRhbENvbnRhaW5lcl0pO1xuXG4gICAgY29uc3QgZmxhdHRlbmVkTGlzdEl0ZW1zID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBjb25zdCBsaXN0OiBGbGF0dGVuZWRMaXN0SXRlbVtdID0gW107XG5cbiAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcy5mb3JFYWNoKChsaXN0SXRlbSkgPT4ge1xuICAgICAgICBsaXN0SXRlbS5pdGVtcy5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgIGxpc3QucHVzaCh7XG4gICAgICAgICAgICBjYXRlZ29yeTogbGlzdEl0ZW0uY2F0ZWdvcnksXG4gICAgICAgICAgICBpbmRleEluQ2F0ZWdvcnk6IGluZGV4LFxuICAgICAgICAgICAgdmFsdWU6IGl0ZW0udmFsdWUsXG4gICAgICAgICAgICBpZDogZ2V0TGlzdEl0ZW1JZChuYW1lLCBsaXN0SXRlbS5jYXRlZ29yeSwgaW5kZXgpLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGxpc3Q7XG4gICAgfSwgW2F1dG9jb21wbGV0ZUxpc3RJdGVtcywgbmFtZV0pO1xuXG4gICAgY29uc3QgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZSA9IChpbmRleDogbnVtYmVyLCBldnQ/OiBTeW50aGV0aWNFdmVudCkgPT4ge1xuICAgICAgc2V0U2VsZWN0ZWRJbmRleChpbmRleCk7XG4gICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgIGNvbnN0IHsgY2F0ZWdvcnksIHZhbHVlOiBpdGVtVmFsdWUgfSA9IGZsYXR0ZW5lZExpc3RJdGVtc1tpbmRleF07XG5cbiAgICAgICAgb25Db21wbGV0ZSh7IHZhbHVlOiBpdGVtVmFsdWUsIGNhdGVnb3J5LCBldnQsIGluZGV4IH0pO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVMaXN0SXRlbUNsaWNrID0gKFxuICAgICAgY2F0ZWdvcnk6IHN0cmluZyxcbiAgICAgIGluZGV4SW5DYXRlZ29yeTogbnVtYmVyLFxuICAgICAgZXZ0PzogTW91c2VFdmVudFxuICAgICkgPT4ge1xuICAgICAgY29uc3QgaW5kZXggPSBmbGF0dGVuZWRMaXN0SXRlbXMuZmluZEluZGV4KFxuICAgICAgICAobGlzdEl0ZW0pID0+XG4gICAgICAgICAgbGlzdEl0ZW0uY2F0ZWdvcnkgPT09IGNhdGVnb3J5ICYmXG4gICAgICAgICAgbGlzdEl0ZW0uaW5kZXhJbkNhdGVnb3J5ID09PSBpbmRleEluQ2F0ZWdvcnlcbiAgICAgICk7XG5cbiAgICAgIGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2UoaW5kZXgsIGV2dCk7XG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUtleURvd246IEtleWJvYXJkRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgaWYgKGlzQXV0b2NvbXBsZXRlTGlzdE9wZW4pIHtcbiAgICAgICAgc3dpdGNoIChldnQua2V5KSB7XG4gICAgICAgICAgY2FzZSBcIkVzY2FwZVwiOlxuICAgICAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICAgICAgICBvbkNvbXBsZXRlKHsgdmFsdWU6IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQsIGV2dCB9KTtcbiAgICAgICAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiRW50ZXJcIjpcbiAgICAgICAgICAgIGlmICghZXZ0LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgICAgICAgICAgYWNjZXB0VGV4dFNlbGVjdGlvbigpO1xuXG4gICAgICAgICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgIG9uRW50ZXJLZXk/LigpO1xuICAgICAgICAgICAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIiBcIjpcbiAgICAgICAgICAgIGFjY2VwdFRleHRTZWxlY3Rpb24oKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJBcnJvd1VwXCI6XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZShzZWxlY3RlZEluZGV4IC0gMSwgZXZ0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJBcnJvd0Rvd25cIjpcbiAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaWYgKHNlbGVjdGVkSW5kZXggPCBmbGF0dGVuZWRMaXN0SXRlbXMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlKHNlbGVjdGVkSW5kZXggKyAxLCBldnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3dpdGNoIChldnQua2V5KSB7XG4gICAgICAgICAgY2FzZSBcIkVzY2FwZVwiOlxuICAgICAgICAgICAgb25DbGVhcj8uKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiRW50ZXJcIjpcbiAgICAgICAgICAgIGlmICghZXZ0LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBvbkVudGVyS2V5Py4oKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIG9uS2V5RG93bj8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUNoYW5nZTogQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgdXNlclR5cGVkUXVlcnkuY3VycmVudCA9IGV2dC50YXJnZXQudmFsdWU7XG4gICAgICBvbkNoYW5nZShldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVGb2N1czogRm9jdXNFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBzZXRJc0NvbGxhcHNlZChmYWxzZSk7XG4gICAgICBvbkZvY3VzPy4oZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlQmx1cjogRm9jdXNFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBpZiAodmFsdWUgIT09IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQpIHtcbiAgICAgICAgb25Db21wbGV0ZT8uKHsgdmFsdWU6IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQsIGV2dCB9KTtcbiAgICAgIH1cbiAgICAgIG9uQmx1cj8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZVNlbmRCdXR0b25DbGljayA9IChldnQ6IE1vdXNlRXZlbnQ8SFRNTEJ1dHRvbkVsZW1lbnQ+KSA9PiB7XG4gICAgICBzZW5kQnV0dG9uUHJvcHMub25DbGljaz8uKGV2dCk7XG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZVByZXZlbnRGb2N1cyA9IChldnQ6IFJlYWN0LlBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgLy8gUHJldmVudCB0aGUgdGV4dGFyZWEgZnJvbSBiZWluZyB1bmZvY3VzZWRcbiAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVPbkNvbnRhaW5lclBvaW50ZXJEb3duID0gKGV2dDogUmVhY3QuUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAvLyBGb2N1cyB0ZXh0YXJlYSB3aGVuIGNsaWNraW5nIG9uIHRoZSBjb250YWluZXIgb25seVxuICAgICAgaWYgKGV2dC50YXJnZXQgPT09IGV2dC5jdXJyZW50VGFyZ2V0KSB7XG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBzZWxlY3RlZExpc3RJdGVtID1cbiAgICAgIHNlbGVjdGVkSW5kZXggIT09IC0xID8gZmxhdHRlbmVkTGlzdEl0ZW1zW3NlbGVjdGVkSW5kZXhdIDogbnVsbDtcblxuICAgIGNvbnN0IGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRFbG0gPSBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50ID8gKFxuICAgICAgPFN0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXJcbiAgICAgICAgaXNOYXZCYXJWYXJpYW50PXtpc05hdkJhclZhcmlhbnR9XG4gICAgICA+XG4gICAgICAgIDxUZXh0IGNvbG9yPVwidGVydGlhcnlcIj57ZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudH08L1RleHQ+XG4gICAgICA8L1N0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXI+XG4gICAgKSA6IG51bGw7XG5cbiAgICBjb25zdCBjbGVhckJ1dHRvbkVsbSA9IHZhbHVlID8gKFxuICAgICAgPFN0eWxlZENsZWFyQnV0dG9uXG4gICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgaWNvbj1cIngtY2lyY2xlLWZpbGxlZFwiXG4gICAgICAgIGFyaWEtbGFiZWw9e2NsZWFyQnV0dG9uQXJpYUxhYmVsfVxuICAgICAgICBpc05hdkJhclZhcmlhbnQ9e2lzTmF2QmFyVmFyaWFudH1cbiAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlUHJldmVudEZvY3VzfVxuICAgICAgICBvbkNsaWNrPXtvbkNsZWFyfVxuICAgICAgLz5cbiAgICApIDogKFxuICAgICAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudEVsbVxuICAgICk7XG5cbiAgICBjb25zdCBoaW50RWxtID0gISFoaW50ICYmIChcbiAgICAgIDxJbmxpbmUgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICA8VGV4dCBzaXplPVwic1wiIGNvbG9yPVwidGVydGlhcnlcIj5cbiAgICAgICAgICB7aGludH1cbiAgICAgICAgPC9UZXh0PlxuICAgICAgPC9JbmxpbmU+XG4gICAgKTtcblxuICAgIGNvbnN0IGJvdHRvbVRvb2xiYXJFbG0gPSAhaXNDb2xsYXBzZWQgJiYgKFxuICAgICAgPD5cbiAgICAgICAgPFN0eWxlZFNsb3QgcG9zaXRpb249XCJsZWZ0XCI+e2JvdHRvbVRvb2xiYXIubGVmdENvbnRlbnR9PC9TdHlsZWRTbG90PlxuICAgICAgICA8U3R5bGVkU2xvdCBwb3NpdGlvbj1cInJpZ2h0XCIgZGF0YS1lMmUtdGVzdC1pZD1cImJvdHRvbVRvb2xiYXJcIj5cbiAgICAgICAgICA8SW5saW5lIHNwYWNlPVwieHNcIiB2QWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAge2JvdHRvbVRvb2xiYXIucmlnaHRDb250ZW50fVxuICAgICAgICAgICAgPFJvdW5kQnV0dG9uXG4gICAgICAgICAgICAgIHsuLi5zZW5kQnV0dG9uUHJvcHN9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVNlbmRCdXR0b25DbGlja31cbiAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlUHJldmVudEZvY3VzfVxuICAgICAgICAgICAgICBhcmlhQXR0cmlidXRlcz17e1xuICAgICAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiBpc1Byb2Nlc3NpbmdcbiAgICAgICAgICAgICAgICAgID8gXCJQcm9jZXNzaW5nIHF1ZXJ5XCJcbiAgICAgICAgICAgICAgICAgIDogXCJTdWJtaXQgcXVlcnlcIixcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgdmFyaWFudD1cInByaW1hcnlcIlxuICAgICAgICAgICAgICBkaXNhYmxlZD17IXZhbHVlfVxuICAgICAgICAgICAgICBpY29uPXtpc1Byb2Nlc3NpbmcgPyBcInN0b3AtZmlsbGVkXCIgOiBzZW5kQnV0dG9uUHJvcHMuaWNvbn1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9JbmxpbmU+XG4gICAgICAgIDwvU3R5bGVkU2xvdD5cbiAgICAgICAgPFN0eWxlZENsZWFyIC8+XG4gICAgICA8Lz5cbiAgICApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBkYXRhLWUyZS10ZXN0LWlkPXtkYXRhRTJlVGVzdElkfVxuICAgICAgICAgIGRhdGEtZHMtaWQ9XCJQcm9tcHRJbnB1dFwiXG4gICAgICAgICAgcmVmPXtjb250YWluZXJSZWZ9XG4gICAgICAgICAgLy8gVHJhbnNsYXRpb24gZGlzYWJsZWQgZm9yIGNvbnNpc3RlbmN5IHdpdGggdGhlIGF1dG9jb21wbGV0ZSBsaXN0XG4gICAgICAgICAgdHJhbnNsYXRlPVwibm9cIlxuICAgICAgICA+XG4gICAgICAgICAgPFN0YWNrIHNwYWNlPVwic1wiPlxuICAgICAgICAgICAgPEN1c3RvbUNvbnRhaW5lclxuICAgICAgICAgICAgICBlbGV2YXRpb249ezB9XG4gICAgICAgICAgICAgIGJvcmRlclJhZGl1cz17aXNDb2xsYXBzZWQgPyBcInhzXCIgOiBcIm1cIn1cbiAgICAgICAgICAgICAgaGlkZUJvcmRlcj17aXNDb2xsYXBzZWR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICByZWY9e3RleHRBcmVhQ29udGFpbmVyUmVmfVxuICAgICAgICAgICAgICAgIG9uUG9pbnRlckRvd249e2hhbmRsZU9uQ29udGFpbmVyUG9pbnRlckRvd259XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8U3R5bGVkVGV4dEFyZWFDb250YWluZXI+XG4gICAgICAgICAgICAgICAgICA8UHJvbXB0VGV4dEFyZWFcbiAgICAgICAgICAgICAgICAgICAgey4uLnJlc3R9XG4gICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQ9e1xuICAgICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQgPyBgJHtkYXRhRTJlVGVzdElkfS1pbnB1dGAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFSZWZ9XG4gICAgICAgICAgICAgICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZExpc3RJdGVtPXtzZWxlY3RlZExpc3RJdGVtfVxuICAgICAgICAgICAgICAgICAgICBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuPXtpc0F1dG9jb21wbGV0ZUxpc3RPcGVufVxuICAgICAgICAgICAgICAgICAgICBpc0NvbGxhcHNlZD17aXNDb2xsYXBzZWR9XG4gICAgICAgICAgICAgICAgICAgIG9uRm9jdXM9e2hhbmRsZUZvY3VzfVxuICAgICAgICAgICAgICAgICAgICBvbkJsdXI9e2hhbmRsZUJsdXJ9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17aGFuZGxlS2V5RG93bn1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICB7Y2xlYXJCdXR0b25FbG19XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRUZXh0QXJlYUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICB7Ym90dG9tVG9vbGJhckVsbX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L0N1c3RvbUNvbnRhaW5lcj5cbiAgICAgICAgICAgIHtoaW50RWxtfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxBdXRvY29tcGxldGVMaXN0XG4gICAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zPXthdXRvY29tcGxldGVMaXN0SXRlbXN9XG4gICAgICAgICAgdHJpZ2dlclJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgc2VsZWN0ZWRMaXN0SXRlbT17c2VsZWN0ZWRMaXN0SXRlbX1cbiAgICAgICAgICBpc09wZW49e2lzQXV0b2NvbXBsZXRlTGlzdE9wZW59XG4gICAgICAgICAgYXV0b2NvbXBsZXRlTGlzdEZvb3Rlcj17YXV0b2NvbXBsZXRlTGlzdEZvb3Rlcn1cbiAgICAgICAgICBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn1cbiAgICAgICAgICBvbkxpc3RJdGVtQ2xpY2s9e2hhbmRsZUxpc3RJdGVtQ2xpY2t9XG4gICAgICAgIC8+XG4gICAgICA8Lz5cbiAgICApO1xuICB9XG4pO1xuXG5jb25zdCBDdXN0b21CdXR0b24gPSBzdHlsZWQoQnV0dG9uKSgoeyB0aGVtZSB9KSA9PiAoe1xuICBib3JkZXJSYWRpdXM6IHRoZW1lLnZhcmlhYmxlcy5zaXplLmJvcmRlclJhZGl1cy5sLFxufSkpO1xuXG4vLyBuZWVkIHRvIHNpbXBsaWZ5IHRoaXMgdHlwZSBmb3IgcmV1c2VcbmNvbnN0IFN1Z2dlc3Rpb25CdXR0b24gPSBmb3J3YXJkUmVmKFxuICA8QyBleHRlbmRzIFJlYWN0LkVsZW1lbnRUeXBlID0gXCJidXR0b25cIj4oXG4gICAgcHJvcHM6IFBvbHltb3JwaGljQ29tcG9uZW50UHJvcHNXaXRoUmVmPFxuICAgICAgQyxcbiAgICAgIE9taXQ8QnV0dG9uUHJvcHMsIFwidmFyaWFudFwiIHwgXCJzaXplXCIgfCBcInJlZlwiPlxuICAgID4sXG4gICAgcmVmOiBQb2x5bW9ycGhpY1JlZjxDPlxuICApID0+IDxDdXN0b21CdXR0b24gey4uLnByb3BzfSB2YXJpYW50PVwic2Vjb25kYXJ5XCIgc2l6ZT1cInNcIiByZWY9e3JlZn0gLz5cbik7XG5cbmV4cG9ydCBjb25zdCBQcm9tcHRJbnB1dCA9IE9iamVjdC5hc3NpZ24oUHJvbXB0SW5wdXRDb21wb25lbnQsIHtcbiAgU3VnZ2VzdGlvbkJ1dHRvbixcbn0pIGFzIHR5cGVvZiBQcm9tcHRJbnB1dENvbXBvbmVudCAmIHtcbiAgU3VnZ2VzdGlvbkJ1dHRvbjogdHlwZW9mIFN1Z2dlc3Rpb25CdXR0b247XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW1oQnFCIn0= */"),PromptInput=Object.assign(PromptInputComponent,{SuggestionButton:(0,_react.forwardRef)((props,ref)=>_react.default.createElement(CustomButton,{...props,variant:"secondary",size:"s",ref:ref}))});
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"PromptInput",{enumerable:!0,get:function(){return PromptInput}});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")),_PromptTextArea=require("./PromptTextArea"),_Container=require("../Container"),_AutocompleteList=require("./AutocompleteList"),_CategoryList=require("./CategoryList"),_Text=require("../Typography/Text"),_Button=require("../Button/Button"),_Inline=require("../Inline/Inline"),_RoundButton=require("../RoundButton/RoundButton"),_PictogramButton=require("../PictogramButton/PictogramButton"),_Stack=require("../Stack/Stack"),_useOutsideClick=require("../../shared/useOutsideClick"),CustomContainer=(0,_styled.default)(_Container.Container,{target:"e1gnreap0",label:"CustomContainer"})(({theme,hideBorder})=>({border:`1px solid ${theme.values.color.border.primary.default}`,...hideBorder&&{borderColor:"transparent"},cursor:"text","&:has(textarea:focus-visible)":{outlineWidth:1,outlineStyle:"solid",outlineOffset:-1,outlineColor:theme.values.color.border.accent.default,boxShadow:theme.values.shadow.focusRing,"@media (-webkit-min-device-pixel-ratio:0)":{outlineColor:theme.values.color.border.accent.default}}}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUHJvbXB0SW5wdXQvUHJvbXB0SW5wdXQudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Qcm9tcHRJbnB1dC9Qcm9tcHRJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBSZWFjdEVsZW1lbnQsXG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlZk9iamVjdCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIFN5bnRoZXRpY0V2ZW50LFxuICBNb3VzZUV2ZW50LFxufSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZVJlZixcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG4gIGZvcndhcmRSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgdHlwZSB7IFByb21wdFRleHRBcmVhUHJvcHMgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHsgUHJvbXB0VGV4dEFyZWEgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHsgQ29udGFpbmVyIH0gZnJvbSBcIi4uL0NvbnRhaW5lclwiO1xuaW1wb3J0IHR5cGUgeyBBdXRvY29tcGxldGVMaXN0UHJvcHMgfSBmcm9tIFwiLi9BdXRvY29tcGxldGVMaXN0XCI7XG5pbXBvcnQgeyBBdXRvY29tcGxldGVMaXN0IH0gZnJvbSBcIi4vQXV0b2NvbXBsZXRlTGlzdFwiO1xuaW1wb3J0IHtcbiAgZ2V0TGlzdEl0ZW1JZCxcbiAgdHlwZSBGbGF0dGVuZWRMaXN0SXRlbSxcbiAgdHlwZSBMaXN0SXRlbVZhbHVlLFxufSBmcm9tIFwiLi9DYXRlZ29yeUxpc3RcIjtcbmltcG9ydCB7IFRleHQgfSBmcm9tIFwiLi4vVHlwb2dyYXBoeS9UZXh0XCI7XG5pbXBvcnQgeyBCdXR0b24sIHR5cGUgQnV0dG9uUHJvcHMgfSBmcm9tIFwiLi4vQnV0dG9uL0J1dHRvblwiO1xuaW1wb3J0IHR5cGUge1xuICBQb2x5bW9ycGhpY1JlZixcbiAgUG9seW1vcnBoaWNDb21wb25lbnRQcm9wc1dpdGhSZWYsXG59IGZyb20gXCIuLi8uLi90eXBlc1wiO1xuaW1wb3J0IHsgSW5saW5lIH0gZnJvbSBcIi4uL0lubGluZS9JbmxpbmVcIjtcbmltcG9ydCB0eXBlIHsgUm91bmRCdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9Sb3VuZEJ1dHRvbi9Sb3VuZEJ1dHRvblwiO1xuaW1wb3J0IHsgUm91bmRCdXR0b24gfSBmcm9tIFwiLi4vUm91bmRCdXR0b24vUm91bmRCdXR0b25cIjtcbmltcG9ydCB0eXBlIHsgUGljdG9ncmFtQnV0dG9uUHJvcHMgfSBmcm9tIFwiLi4vUGljdG9ncmFtQnV0dG9uL1BpY3RvZ3JhbUJ1dHRvblwiO1xuaW1wb3J0IHsgUGljdG9ncmFtQnV0dG9uIH0gZnJvbSBcIi4uL1BpY3RvZ3JhbUJ1dHRvbi9QaWN0b2dyYW1CdXR0b25cIjtcbmltcG9ydCB7IFN0YWNrIH0gZnJvbSBcIi4uL1N0YWNrL1N0YWNrXCI7XG5pbXBvcnQgeyB1c2VPdXRzaWRlQ2xpY2sgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL3VzZU91dHNpZGVDbGlja1wiO1xuXG5jb25zdCBDdXN0b21Db250YWluZXIgPSBzdHlsZWQoQ29udGFpbmVyKTx7IGhpZGVCb3JkZXI6IGJvb2xlYW4gfT4oXG4gICh7IHRoZW1lLCBoaWRlQm9yZGVyIH0pID0+ICh7XG4gICAgYm9yZGVyOiBgMXB4IHNvbGlkICR7dGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5wcmltYXJ5LmRlZmF1bHR9YCxcbiAgICAuLi4oaGlkZUJvcmRlciAmJiB7XG4gICAgICBib3JkZXJDb2xvcjogXCJ0cmFuc3BhcmVudFwiLFxuICAgIH0pLFxuICAgIGN1cnNvcjogXCJ0ZXh0XCIsXG4gICAgW2AmOmhhcyh0ZXh0YXJlYTpmb2N1cy12aXNpYmxlKWBdOiB7XG4gICAgICBvdXRsaW5lV2lkdGg6IDEsXG4gICAgICBvdXRsaW5lU3R5bGU6IFwic29saWRcIixcbiAgICAgIG91dGxpbmVPZmZzZXQ6IC0xLFxuICAgICAgb3V0bGluZUNvbG9yOiB0aGVtZS52YWx1ZXMuY29sb3IuYm9yZGVyLmFjY2VudC5kZWZhdWx0LFxuICAgICAgYm94U2hhZG93OiB0aGVtZS52YWx1ZXMuc2hhZG93LmZvY3VzUmluZyxcblxuICAgICAgXCJAbWVkaWEgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzowKVwiOiB7XG4gICAgICAgIG91dGxpbmVDb2xvcjogdGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5hY2NlbnQuZGVmYXVsdCxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZFRleHRBcmVhQ29udGFpbmVyID0gc3R5bGVkLmRpdih7XG4gIGJvcmRlclJhZGl1czogXCJpbmhlcml0XCIsXG4gIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG59KTtcblxudHlwZSBTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyUHJvcHMgPSBQaWNrPFxuICBQcm9tcHRJbnB1dFByb3BzLFxuICBcImlzTmF2QmFyVmFyaWFudFwiXG4+O1xuXG5jb25zdCBTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyID1cbiAgc3R5bGVkLmRpdjxTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyUHJvcHM+KFxuICAgICh7IHRoZW1lLCBpc05hdkJhclZhcmlhbnQgfSkgPT4gKHtcbiAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICB0b3A6IGlzTmF2QmFyVmFyaWFudFxuICAgICAgICA/IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHhzXG4gICAgICAgIDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5tLFxuICAgICAgcmlnaHQ6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubSxcbiAgICAgIHVzZXJTZWxlY3Q6IFwibm9uZVwiLFxuICAgICAgcG9pbnRlckV2ZW50czogXCJub25lXCIsXG4gICAgfSlcbiAgKTtcblxudHlwZSBTdHlsZWRDbGVhckJ1dHRvblByb3BzID0gUGljdG9ncmFtQnV0dG9uUHJvcHMgJlxuICBQaWNrPFByb21wdElucHV0UHJvcHMsIFwiaXNOYXZCYXJWYXJpYW50XCI+O1xuXG5jb25zdCBTdHlsZWRDbGVhckJ1dHRvbiA9IHN0eWxlZChQaWN0b2dyYW1CdXR0b24pPFN0eWxlZENsZWFyQnV0dG9uUHJvcHM+KFxuICAoeyB0aGVtZSwgaXNOYXZCYXJWYXJpYW50IH0pID0+ICh7XG4gICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICByaWdodDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zLFxuICAgIHRvcDogaXNOYXZCYXJWYXJpYW50ID8gMCA6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcucyxcbiAgfSlcbik7XG5cbi8vIFVzaW5nIGZsb2F0IGluIG9yZGVyIHRvIGF2b2lkIHRoZSBpbnZpc2libGUgYXJlYSBiZXR3ZWVuIHRoZSBzbG90c1xuLy8gdGhhdCBwcmV2ZW50cyB0aGUgdGV4dGFyZWEgZnJvbSBiZWluZyBmb2N1c2VkXG5jb25zdCBTdHlsZWRTbG90ID0gc3R5bGVkLmRpdjx7IHBvc2l0aW9uOiBcImxlZnRcIiB8IFwicmlnaHRcIiB9PihcbiAgKHsgcG9zaXRpb24sIHRoZW1lIH0pID0+ICh7XG4gICAgZmxvYXQ6IHBvc2l0aW9uLFxuICAgIG1hcmdpbjogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5tLFxuICAgIGN1cnNvcjogXCJkZWZhdWx0XCIsXG4gIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRDbGVhciA9IHN0eWxlZC5kaXYoe1xuICBjbGVhcjogXCJib3RoXCIsXG59KTtcblxudHlwZSBTZW5kQnV0dG9uUHJvcHMgPSBPbWl0PFJvdW5kQnV0dG9uUHJvcHMsIFwiaWNvblwiIHwgXCJ2YXJpYW50XCI+ICYge1xuICBpY29uPzogXCJhcnJvdy11cFwiIHwgXCJzZWFyY2hcIiB8IFwiYXJyb3ctcmlnaHRcIjtcbn07XG5cbmV4cG9ydCB0eXBlIFByb21wdElucHV0UHJvcHMgPSB7XG4gIFwiZGF0YS1lMmUtdGVzdC1pZFwiPzogc3RyaW5nO1xuICAvKiogVG9vbGJhciBlbGVtZW50cyBiZWxvdyB0ZXh0IGFyZWEgKi9cbiAgYm90dG9tVG9vbGJhcj86IHtcbiAgICBsZWZ0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgICByaWdodENvbnRlbnQ/OiBSZWFjdEVsZW1lbnQ7XG4gIH07XG4gIC8qKiBDdXJyZW50bHkgc2hvd3Mgc2VuZCBidXR0b24gcHJvY2Vzc2luZyBzdGF0ZSAgKi9cbiAgaXNQcm9jZXNzaW5nPzogYm9vbGVhbjtcbiAgc2VuZEJ1dHRvblByb3BzPzogU2VuZEJ1dHRvblByb3BzO1xuICBjbGVhckJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgaGludD86IFJlYWN0RWxlbWVudDtcbiAgLyoqIFNob3dzIGluIHRoZSBjbGVhciBidXR0b24gc3BhY2UgaW4gZW1wdHkgc3RhdGUgKi9cbiAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgb25DbGVhcjogKCkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCB3aGVuIHVzZXIgc2VsZWN0cyAob3IgcmVqZWN0cykgYSBsaXN0IGl0ZW0gZnJvbSBhdXRvY29tcGxldGUgbGlzdCAqL1xuICBvbkNvbXBsZXRlPzogKHtcbiAgICB2YWx1ZSxcbiAgICBjYXRlZ29yeSxcbiAgICBldnQsXG4gICAgaW5kZXgsXG4gIH06IHtcbiAgICB2YWx1ZTogTGlzdEl0ZW1WYWx1ZTtcbiAgICBjYXRlZ29yeT86IHN0cmluZztcbiAgICBldnQ/OiBTeW50aGV0aWNFdmVudDtcbiAgICBpbmRleD86IG51bWJlcjtcbiAgfSkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCBvbiBFbnRlciBrZXkgdG8gc3VibWl0IHRoZSBmb3JtICAqL1xuICBvbkVudGVyS2V5OiAoKSA9PiB2b2lkO1xufSAmIE9taXQ8XG4gIFByb21wdFRleHRBcmVhUHJvcHMsXG4gIFwiaXNDb2xsYXBzZWRcIiB8IFwiaXNBdXRvY29tcGxldGVMaXN0T3BlblwiIHwgXCJzZWxlY3RlZExpc3RJdGVtXCJcbj4gJlxuICBQaWNrPFxuICAgIEF1dG9jb21wbGV0ZUxpc3RQcm9wcyxcbiAgICBcImF1dG9jb21wbGV0ZUxpc3RJdGVtc1wiIHwgXCJhdXRvY29tcGxldGVMaXN0Rm9vdGVyXCIgfCBcInBvcnRhbENvbnRhaW5lclwiXG4gID47XG5cbmNvbnN0IGRlZmF1bHRTZW5kQnV0dG9uUHJvcHM6IFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgdHlwZTogXCJzdWJtaXRcIiBhcyBjb25zdCxcbiAgaWNvbjogXCJhcnJvdy11cFwiIGFzIGNvbnN0LFxufTtcblxuY29uc3QgUHJvbXB0SW5wdXRDb21wb25lbnQgPSBmb3J3YXJkUmVmKFxuICAoXG4gICAge1xuICAgICAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG4gICAgICBuYW1lLFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zID0gW10sXG4gICAgICB2YWx1ZSxcbiAgICAgIGJvdHRvbVRvb2xiYXIgPSB7IGxlZnRDb250ZW50OiBudWxsLCByaWdodENvbnRlbnQ6IG51bGwgfSxcbiAgICAgIGlzUHJvY2Vzc2luZyxcbiAgICAgIHNlbmRCdXR0b25Qcm9wcyA9IHt9LFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEZvb3RlcixcbiAgICAgIGNsZWFyQnV0dG9uQXJpYUxhYmVsID0gXCJDbGVhciBpbnB1dFwiLFxuICAgICAgaGludCxcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnQsXG4gICAgICBpc05hdkJhclZhcmlhbnQsXG4gICAgICBwb3J0YWxDb250YWluZXIsXG4gICAgICBvbkNoYW5nZSxcbiAgICAgIG9uQ29tcGxldGUsXG4gICAgICBvbkNsZWFyLFxuICAgICAgb25FbnRlcktleSxcbiAgICAgIG9uRm9jdXMsXG4gICAgICBvbkJsdXIsXG4gICAgICBvbktleURvd24sXG4gICAgICAuLi5yZXN0XG4gICAgfTogUHJvbXB0SW5wdXRQcm9wcyxcbiAgICByZWY6IFJlZk9iamVjdDxIVE1MVGV4dEFyZWFFbGVtZW50PlxuICApOiBSZWFjdEVsZW1lbnQgPT4ge1xuICAgIGNvbnN0IGNvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgdGV4dEFyZWFDb250YWluZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IGludGVybmFsUmVmID0gdXNlUmVmPEhUTUxUZXh0QXJlYUVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IFtzZWxlY3RlZEluZGV4LCBzZXRTZWxlY3RlZEluZGV4XSA9IHVzZVN0YXRlKC0xKTtcbiAgICBjb25zdCBbaXNDb2xsYXBzZWQsIHNldElzQ29sbGFwc2VkXSA9IHVzZVN0YXRlKGlzTmF2QmFyVmFyaWFudCk7XG4gICAgY29uc3QgdXNlclR5cGVkUXVlcnkgPSB1c2VSZWYoXCJcIik7XG4gICAgY29uc3QgW2lzQXV0b2NvbXBsZXRlTGlzdE9wZW4sIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IHRleHRBcmVhUmVmID0gcmVmIHx8IGludGVybmFsUmVmO1xuXG4gICAgY29uc3QgbWVyZ2VkU2VuZEJ1dHRvblByb3BzID0ge1xuICAgICAgLi4uZGVmYXVsdFNlbmRCdXR0b25Qcm9wcyxcbiAgICAgIC4uLnNlbmRCdXR0b25Qcm9wcyxcbiAgICB9O1xuXG4gICAgdXNlT3V0c2lkZUNsaWNrKFxuICAgICAgY29udGFpbmVyUmVmLFxuICAgICAgKGV2dCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgIWNvbnRhaW5lclJlZi5jdXJyZW50LmNvbnRhaW5zKGV2dC50YXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICAhcG9ydGFsQ29udGFpbmVyPy5jb250YWlucyhldnQudGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgZXZ0LnRhcmdldCAhPT0gbnVsbFxuICAgICAgICApIHtcbiAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgICFpc0NvbGxhcHNlZCAmJiBpc05hdkJhclZhcmlhbnRcbiAgICApO1xuXG4gICAgY29uc3QgY2xvc2VBdXRvY29tcGxldGVMaXN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgc2V0SXNBdXRvY29tcGxldGVMaXN0T3BlbihmYWxzZSk7XG4gICAgICBzZXRTZWxlY3RlZEluZGV4KC0xKTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBvcGVuQXV0b2NvbXBsZXRlTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmIChhdXRvY29tcGxldGVMaXN0SXRlbXMubGVuZ3RoKSB7XG4gICAgICAgIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW4odHJ1ZSk7XG4gICAgICAgIHNldFNlbGVjdGVkSW5kZXgoLTEpO1xuICAgICAgfVxuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXNdKTtcblxuICAgIGNvbnN0IGFjY2VwdFRleHRTZWxlY3Rpb24gPSAoKSA9PiB7XG4gICAgICB1c2VyVHlwZWRRdWVyeS5jdXJyZW50ID0gdmFsdWU7XG4gICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKHZhbHVlLmxlbmd0aCwgdmFsdWUubGVuZ3RoKTtcbiAgICB9O1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChhdXRvY29tcGxldGVMaXN0SXRlbXMubGVuZ3RoICYmICFpc0NvbGxhcHNlZCkge1xuICAgICAgICBvcGVuQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICB9XG4gICAgfSwgW1xuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLFxuICAgICAgb3BlbkF1dG9jb21wbGV0ZUxpc3QsXG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QsXG4gICAgICBpc0NvbGxhcHNlZCxcbiAgICBdKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodmFsdWUgJiYgdmFsdWUgIT09IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgJiYgaXNBdXRvY29tcGxldGVMaXN0T3Blbikge1xuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKFxuICAgICAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQubGVuZ3RoLFxuICAgICAgICAgIHZhbHVlLmxlbmd0aFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sIFt2YWx1ZSwgdGV4dEFyZWFSZWYsIGlzQXV0b2NvbXBsZXRlTGlzdE9wZW5dKTtcblxuICAgIC8vIERldGVybWluZSB3aGVuIGZvY3VzIGxlYXZlcyB0aGUgY29udGFpbmVyIHRvIGNvbGxhcHNlIGl0XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGxldCBoYW5kbGVyOiAoZXZ0OiBGb2N1c0V2ZW50KSA9PiB2b2lkO1xuICAgICAgY29uc3QgY29udGFpbmVyID0gY29udGFpbmVyUmVmLmN1cnJlbnQ7XG5cbiAgICAgIGlmIChpc05hdkJhclZhcmlhbnQgJiYgY29udGFpbmVyKSB7XG4gICAgICAgIGhhbmRsZXIgPSAoZXZ0OiBGb2N1c0V2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgIWNvbnRhaW5lclJlZi5jdXJyZW50LmNvbnRhaW5zKGV2dC5yZWxhdGVkVGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgICAhcG9ydGFsQ29udGFpbmVyPy5jb250YWlucyhldnQucmVsYXRlZFRhcmdldCBhcyBOb2RlKSAmJlxuICAgICAgICAgICAgZXZ0LnJlbGF0ZWRUYXJnZXQgIT09IG51bGxcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJmb2N1c291dFwiLCBoYW5kbGVyKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgaWYgKGNvbnRhaW5lcikge1xuICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwiZm9jdXNvdXRcIiwgaGFuZGxlcik7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfSwgW2lzTmF2QmFyVmFyaWFudCwgY29udGFpbmVyUmVmLCBwb3J0YWxDb250YWluZXJdKTtcblxuICAgIGNvbnN0IGZsYXR0ZW5lZExpc3RJdGVtcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgY29uc3QgbGlzdDogRmxhdHRlbmVkTGlzdEl0ZW1bXSA9IFtdO1xuXG4gICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXMuZm9yRWFjaCgobGlzdEl0ZW0pID0+IHtcbiAgICAgICAgbGlzdEl0ZW0uaXRlbXMuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICBsaXN0LnB1c2goe1xuICAgICAgICAgICAgY2F0ZWdvcnk6IGxpc3RJdGVtLmNhdGVnb3J5LFxuICAgICAgICAgICAgaW5kZXhJbkNhdGVnb3J5OiBpbmRleCxcbiAgICAgICAgICAgIHZhbHVlOiBpdGVtLnZhbHVlLFxuICAgICAgICAgICAgaWQ6IGdldExpc3RJdGVtSWQobmFtZSwgbGlzdEl0ZW0uY2F0ZWdvcnksIGluZGV4KSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBsaXN0O1xuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXMsIG5hbWVdKTtcblxuICAgIGNvbnN0IGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2UgPSAoaW5kZXg6IG51bWJlciwgZXZ0PzogU3ludGhldGljRXZlbnQpID0+IHtcbiAgICAgIHNldFNlbGVjdGVkSW5kZXgoaW5kZXgpO1xuICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICBjb25zdCB7IGNhdGVnb3J5LCB2YWx1ZTogaXRlbVZhbHVlIH0gPSBmbGF0dGVuZWRMaXN0SXRlbXNbaW5kZXhdO1xuXG4gICAgICAgIG9uQ29tcGxldGUoeyB2YWx1ZTogaXRlbVZhbHVlLCBjYXRlZ29yeSwgZXZ0LCBpbmRleCB9KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlTGlzdEl0ZW1DbGljayA9IChcbiAgICAgIGNhdGVnb3J5OiBzdHJpbmcsXG4gICAgICBpbmRleEluQ2F0ZWdvcnk6IG51bWJlcixcbiAgICAgIGV2dD86IE1vdXNlRXZlbnRcbiAgICApID0+IHtcbiAgICAgIGNvbnN0IGluZGV4ID0gZmxhdHRlbmVkTGlzdEl0ZW1zLmZpbmRJbmRleChcbiAgICAgICAgKGxpc3RJdGVtKSA9PlxuICAgICAgICAgIGxpc3RJdGVtLmNhdGVnb3J5ID09PSBjYXRlZ29yeSAmJlxuICAgICAgICAgIGxpc3RJdGVtLmluZGV4SW5DYXRlZ29yeSA9PT0gaW5kZXhJbkNhdGVnb3J5XG4gICAgICApO1xuXG4gICAgICBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlKGluZGV4LCBldnQpO1xuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVLZXlEb3duOiBLZXlib2FyZEV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIGlmIChpc0F1dG9jb21wbGV0ZUxpc3RPcGVuKSB7XG4gICAgICAgIHN3aXRjaCAoZXZ0LmtleSkge1xuICAgICAgICAgIGNhc2UgXCJFc2NhcGVcIjpcbiAgICAgICAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgICAgICAgb25Db21wbGV0ZSh7IHZhbHVlOiB1c2VyVHlwZWRRdWVyeS5jdXJyZW50LCBldnQgfSk7XG4gICAgICAgICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkVudGVyXCI6XG4gICAgICAgICAgICBpZiAoIWV2dC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICAgICAgICAgIGFjY2VwdFRleHRTZWxlY3Rpb24oKTtcblxuICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBvbkVudGVyS2V5Py4oKTtcbiAgICAgICAgICAgICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgICAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCIgXCI6XG4gICAgICAgICAgICBhY2NlcHRUZXh0U2VsZWN0aW9uKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiQXJyb3dVcFwiOlxuICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRJbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgIGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2Uoc2VsZWN0ZWRJbmRleCAtIDEsIGV2dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiQXJyb3dEb3duXCI6XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEluZGV4IDwgZmxhdHRlbmVkTGlzdEl0ZW1zLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZShzZWxlY3RlZEluZGV4ICsgMSwgZXZ0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN3aXRjaCAoZXZ0LmtleSkge1xuICAgICAgICAgIGNhc2UgXCJFc2NhcGVcIjpcbiAgICAgICAgICAgIG9uQ2xlYXI/LigpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkVudGVyXCI6XG4gICAgICAgICAgICBpZiAoIWV2dC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgb25FbnRlcktleT8uKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBvbktleURvd24/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVDaGFuZ2U6IENoYW5nZUV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgPSBldnQudGFyZ2V0LnZhbHVlO1xuICAgICAgb25DaGFuZ2UoZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlRm9jdXM6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgc2V0SXNDb2xsYXBzZWQoZmFsc2UpO1xuICAgICAgb25Gb2N1cz8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUJsdXI6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgaWYgKHZhbHVlICE9PSB1c2VyVHlwZWRRdWVyeS5jdXJyZW50KSB7XG4gICAgICAgIG9uQ29tcGxldGU/Lih7IHZhbHVlOiB1c2VyVHlwZWRRdWVyeS5jdXJyZW50LCBldnQgfSk7XG4gICAgICB9XG4gICAgICBvbkJsdXI/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVTZW5kQnV0dG9uQ2xpY2sgPSAoZXZ0OiBNb3VzZUV2ZW50PEhUTUxCdXR0b25FbGVtZW50PikgPT4ge1xuICAgICAgbWVyZ2VkU2VuZEJ1dHRvblByb3BzLm9uQ2xpY2s/LihldnQpO1xuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVQcmV2ZW50Rm9jdXMgPSAoZXZ0OiBSZWFjdC5Qb2ludGVyRXZlbnQpID0+IHtcbiAgICAgIC8vIFByZXZlbnQgdGhlIHRleHRhcmVhIGZyb20gYmVpbmcgdW5mb2N1c2VkXG4gICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlT25Db250YWluZXJQb2ludGVyRG93biA9IChldnQ6IFJlYWN0LlBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgLy8gRm9jdXMgdGV4dGFyZWEgd2hlbiBjbGlja2luZyBvbiB0aGUgY29udGFpbmVyIG9ubHlcbiAgICAgIGlmIChldnQudGFyZ2V0ID09PSBldnQuY3VycmVudFRhcmdldCkge1xuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3Qgc2VsZWN0ZWRMaXN0SXRlbSA9XG4gICAgICBzZWxlY3RlZEluZGV4ICE9PSAtMSA/IGZsYXR0ZW5lZExpc3RJdGVtc1tzZWxlY3RlZEluZGV4XSA6IG51bGw7XG5cbiAgICBjb25zdCBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50RWxtID0gZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudCA/IChcbiAgICAgIDxTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyXG4gICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgPlxuICAgICAgICA8VGV4dCBjb2xvcj1cInRlcnRpYXJ5XCI+e2VtcHR5U3RhdGVUb3BSaWdodENvbnRlbnR9PC9UZXh0PlxuICAgICAgPC9TdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyPlxuICAgICkgOiBudWxsO1xuXG4gICAgY29uc3QgY2xlYXJCdXR0b25FbG0gPSB2YWx1ZSA/IChcbiAgICAgIDxTdHlsZWRDbGVhckJ1dHRvblxuICAgICAgICBzaXplPVwic1wiXG4gICAgICAgIGljb249XCJ4LWNpcmNsZS1maWxsZWRcIlxuICAgICAgICBhcmlhLWxhYmVsPXtjbGVhckJ1dHRvbkFyaWFMYWJlbH1cbiAgICAgICAgaXNOYXZCYXJWYXJpYW50PXtpc05hdkJhclZhcmlhbnR9XG4gICAgICAgIG9uUG9pbnRlckRvd249e2hhbmRsZVByZXZlbnRGb2N1c31cbiAgICAgICAgb25DbGljaz17b25DbGVhcn1cbiAgICAgIC8+XG4gICAgKSA6IChcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRFbG1cbiAgICApO1xuXG4gICAgY29uc3QgaGludEVsbSA9ICEhaGludCAmJiAoXG4gICAgICA8SW5saW5lIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgPFRleHQgc2l6ZT1cInNcIiBjb2xvcj1cInRlcnRpYXJ5XCI+XG4gICAgICAgICAge2hpbnR9XG4gICAgICAgIDwvVGV4dD5cbiAgICAgIDwvSW5saW5lPlxuICAgICk7XG5cbiAgICBjb25zdCBib3R0b21Ub29sYmFyRWxtID0gIWlzQ29sbGFwc2VkICYmIChcbiAgICAgIDw+XG4gICAgICAgIDxTdHlsZWRTbG90IHBvc2l0aW9uPVwibGVmdFwiPntib3R0b21Ub29sYmFyLmxlZnRDb250ZW50fTwvU3R5bGVkU2xvdD5cbiAgICAgICAgPFN0eWxlZFNsb3QgcG9zaXRpb249XCJyaWdodFwiIGRhdGEtZTJlLXRlc3QtaWQ9XCJib3R0b21Ub29sYmFyXCI+XG4gICAgICAgICAgPElubGluZSBzcGFjZT1cInhzXCIgdkFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgIHtib3R0b21Ub29sYmFyLnJpZ2h0Q29udGVudH1cbiAgICAgICAgICAgIDxSb3VuZEJ1dHRvblxuICAgICAgICAgICAgICBhcmlhQXR0cmlidXRlcz17e1xuICAgICAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiBpc1Byb2Nlc3NpbmdcbiAgICAgICAgICAgICAgICAgID8gXCJQcm9jZXNzaW5nIHF1ZXJ5XCJcbiAgICAgICAgICAgICAgICAgIDogXCJTdWJtaXQgcXVlcnlcIixcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgey4uLm1lcmdlZFNlbmRCdXR0b25Qcm9wc31cbiAgICAgICAgICAgICAgZGlzYWJsZWQ9eyF2YWx1ZSB8fCBtZXJnZWRTZW5kQnV0dG9uUHJvcHMuZGlzYWJsZWR9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVNlbmRCdXR0b25DbGlja31cbiAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlUHJldmVudEZvY3VzfVxuICAgICAgICAgICAgICB2YXJpYW50PVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgIGljb249e2lzUHJvY2Vzc2luZyA/IFwic3RvcC1maWxsZWRcIiA6IG1lcmdlZFNlbmRCdXR0b25Qcm9wcy5pY29ufVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0lubGluZT5cbiAgICAgICAgPC9TdHlsZWRTbG90PlxuICAgICAgICA8U3R5bGVkQ2xlYXIgLz5cbiAgICAgIDwvPlxuICAgICk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGRhdGEtZTJlLXRlc3QtaWQ9e2RhdGFFMmVUZXN0SWR9XG4gICAgICAgICAgZGF0YS1kcy1pZD1cIlByb21wdElucHV0XCJcbiAgICAgICAgICByZWY9e2NvbnRhaW5lclJlZn1cbiAgICAgICAgICAvLyBUcmFuc2xhdGlvbiBkaXNhYmxlZCBmb3IgY29uc2lzdGVuY3kgd2l0aCB0aGUgYXV0b2NvbXBsZXRlIGxpc3RcbiAgICAgICAgICB0cmFuc2xhdGU9XCJub1wiXG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2sgc3BhY2U9XCJzXCI+XG4gICAgICAgICAgICA8Q3VzdG9tQ29udGFpbmVyXG4gICAgICAgICAgICAgIGVsZXZhdGlvbj17MH1cbiAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPXtpc0NvbGxhcHNlZCA/IFwieHNcIiA6IFwibVwifVxuICAgICAgICAgICAgICBoaWRlQm9yZGVyPXtpc0NvbGxhcHNlZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlT25Db250YWluZXJQb2ludGVyRG93bn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTdHlsZWRUZXh0QXJlYUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIDxQcm9tcHRUZXh0QXJlYVxuICAgICAgICAgICAgICAgICAgICB7Li4ucmVzdH1cbiAgICAgICAgICAgICAgICAgICAgZGF0YUUyZVRlc3RJZD17XG4gICAgICAgICAgICAgICAgICAgICAgZGF0YUUyZVRlc3RJZCA/IGAke2RhdGFFMmVUZXN0SWR9LWlucHV0YCA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgcmVmPXt0ZXh0QXJlYVJlZn1cbiAgICAgICAgICAgICAgICAgICAgaXNOYXZCYXJWYXJpYW50PXtpc05hdkJhclZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkTGlzdEl0ZW09e3NlbGVjdGVkTGlzdEl0ZW19XG4gICAgICAgICAgICAgICAgICAgIGlzQXV0b2NvbXBsZXRlTGlzdE9wZW49e2lzQXV0b2NvbXBsZXRlTGlzdE9wZW59XG4gICAgICAgICAgICAgICAgICAgIGlzQ29sbGFwc2VkPXtpc0NvbGxhcHNlZH1cbiAgICAgICAgICAgICAgICAgICAgb25Gb2N1cz17aGFuZGxlRm9jdXN9XG4gICAgICAgICAgICAgICAgICAgIG9uQmx1cj17aGFuZGxlQmx1cn1cbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUNoYW5nZX1cbiAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXtoYW5kbGVLZXlEb3dufVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIHtjbGVhckJ1dHRvbkVsbX1cbiAgICAgICAgICAgICAgICA8L1N0eWxlZFRleHRBcmVhQ29udGFpbmVyPlxuICAgICAgICAgICAgICAgIHtib3R0b21Ub29sYmFyRWxtfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvQ3VzdG9tQ29udGFpbmVyPlxuICAgICAgICAgICAge2hpbnRFbG19XG4gICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPEF1dG9jb21wbGV0ZUxpc3RcbiAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXM9e2F1dG9jb21wbGV0ZUxpc3RJdGVtc31cbiAgICAgICAgICB0cmlnZ2VyUmVmPXt0ZXh0QXJlYUNvbnRhaW5lclJlZn1cbiAgICAgICAgICBzZWxlY3RlZExpc3RJdGVtPXtzZWxlY3RlZExpc3RJdGVtfVxuICAgICAgICAgIGlzT3Blbj17aXNBdXRvY29tcGxldGVMaXN0T3Blbn1cbiAgICAgICAgICBhdXRvY29tcGxldGVMaXN0Rm9vdGVyPXthdXRvY29tcGxldGVMaXN0Rm9vdGVyfVxuICAgICAgICAgIHBvcnRhbENvbnRhaW5lcj17cG9ydGFsQ29udGFpbmVyfVxuICAgICAgICAgIG9uTGlzdEl0ZW1DbGljaz17aGFuZGxlTGlzdEl0ZW1DbGlja31cbiAgICAgICAgLz5cbiAgICAgIDwvPlxuICAgICk7XG4gIH1cbik7XG5cbmNvbnN0IEN1c3RvbUJ1dHRvbiA9IHN0eWxlZChCdXR0b24pKCh7IHRoZW1lIH0pID0+ICh7XG4gIGJvcmRlclJhZGl1czogdGhlbWUudmFyaWFibGVzLnNpemUuYm9yZGVyUmFkaXVzLmwsXG59KSk7XG5cbi8vIG5lZWQgdG8gc2ltcGxpZnkgdGhpcyB0eXBlIGZvciByZXVzZVxuY29uc3QgU3VnZ2VzdGlvbkJ1dHRvbiA9IGZvcndhcmRSZWYoXG4gIDxDIGV4dGVuZHMgUmVhY3QuRWxlbWVudFR5cGUgPSBcImJ1dHRvblwiPihcbiAgICBwcm9wczogUG9seW1vcnBoaWNDb21wb25lbnRQcm9wc1dpdGhSZWY8XG4gICAgICBDLFxuICAgICAgT21pdDxCdXR0b25Qcm9wcywgXCJ2YXJpYW50XCIgfCBcInNpemVcIiB8IFwicmVmXCI+XG4gICAgPixcbiAgICByZWY6IFBvbHltb3JwaGljUmVmPEM+XG4gICkgPT4gPEN1c3RvbUJ1dHRvbiB7Li4ucHJvcHN9IHZhcmlhbnQ9XCJzZWNvbmRhcnlcIiBzaXplPVwic1wiIHJlZj17cmVmfSAvPlxuKTtcblxuZXhwb3J0IGNvbnN0IFByb21wdElucHV0ID0gT2JqZWN0LmFzc2lnbihQcm9tcHRJbnB1dENvbXBvbmVudCwge1xuICBTdWdnZXN0aW9uQnV0dG9uLFxufSkgYXMgdHlwZW9mIFByb21wdElucHV0Q29tcG9uZW50ICYge1xuICBTdWdnZXN0aW9uQnV0dG9uOiB0eXBlb2YgU3VnZ2VzdGlvbkJ1dHRvbjtcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBMkN3QiJ9 */"),StyledTextAreaContainer=(0,_styled.default)("div",{target:"e1gnreap1",label:"StyledTextAreaContainer"})({borderRadius:"inherit",position:"relative"},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUHJvbXB0SW5wdXQvUHJvbXB0SW5wdXQudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Qcm9tcHRJbnB1dC9Qcm9tcHRJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBSZWFjdEVsZW1lbnQsXG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlZk9iamVjdCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIFN5bnRoZXRpY0V2ZW50LFxuICBNb3VzZUV2ZW50LFxufSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZVJlZixcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG4gIGZvcndhcmRSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgdHlwZSB7IFByb21wdFRleHRBcmVhUHJvcHMgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHsgUHJvbXB0VGV4dEFyZWEgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHsgQ29udGFpbmVyIH0gZnJvbSBcIi4uL0NvbnRhaW5lclwiO1xuaW1wb3J0IHR5cGUgeyBBdXRvY29tcGxldGVMaXN0UHJvcHMgfSBmcm9tIFwiLi9BdXRvY29tcGxldGVMaXN0XCI7XG5pbXBvcnQgeyBBdXRvY29tcGxldGVMaXN0IH0gZnJvbSBcIi4vQXV0b2NvbXBsZXRlTGlzdFwiO1xuaW1wb3J0IHtcbiAgZ2V0TGlzdEl0ZW1JZCxcbiAgdHlwZSBGbGF0dGVuZWRMaXN0SXRlbSxcbiAgdHlwZSBMaXN0SXRlbVZhbHVlLFxufSBmcm9tIFwiLi9DYXRlZ29yeUxpc3RcIjtcbmltcG9ydCB7IFRleHQgfSBmcm9tIFwiLi4vVHlwb2dyYXBoeS9UZXh0XCI7XG5pbXBvcnQgeyBCdXR0b24sIHR5cGUgQnV0dG9uUHJvcHMgfSBmcm9tIFwiLi4vQnV0dG9uL0J1dHRvblwiO1xuaW1wb3J0IHR5cGUge1xuICBQb2x5bW9ycGhpY1JlZixcbiAgUG9seW1vcnBoaWNDb21wb25lbnRQcm9wc1dpdGhSZWYsXG59IGZyb20gXCIuLi8uLi90eXBlc1wiO1xuaW1wb3J0IHsgSW5saW5lIH0gZnJvbSBcIi4uL0lubGluZS9JbmxpbmVcIjtcbmltcG9ydCB0eXBlIHsgUm91bmRCdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9Sb3VuZEJ1dHRvbi9Sb3VuZEJ1dHRvblwiO1xuaW1wb3J0IHsgUm91bmRCdXR0b24gfSBmcm9tIFwiLi4vUm91bmRCdXR0b24vUm91bmRCdXR0b25cIjtcbmltcG9ydCB0eXBlIHsgUGljdG9ncmFtQnV0dG9uUHJvcHMgfSBmcm9tIFwiLi4vUGljdG9ncmFtQnV0dG9uL1BpY3RvZ3JhbUJ1dHRvblwiO1xuaW1wb3J0IHsgUGljdG9ncmFtQnV0dG9uIH0gZnJvbSBcIi4uL1BpY3RvZ3JhbUJ1dHRvbi9QaWN0b2dyYW1CdXR0b25cIjtcbmltcG9ydCB7IFN0YWNrIH0gZnJvbSBcIi4uL1N0YWNrL1N0YWNrXCI7XG5pbXBvcnQgeyB1c2VPdXRzaWRlQ2xpY2sgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL3VzZU91dHNpZGVDbGlja1wiO1xuXG5jb25zdCBDdXN0b21Db250YWluZXIgPSBzdHlsZWQoQ29udGFpbmVyKTx7IGhpZGVCb3JkZXI6IGJvb2xlYW4gfT4oXG4gICh7IHRoZW1lLCBoaWRlQm9yZGVyIH0pID0+ICh7XG4gICAgYm9yZGVyOiBgMXB4IHNvbGlkICR7dGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5wcmltYXJ5LmRlZmF1bHR9YCxcbiAgICAuLi4oaGlkZUJvcmRlciAmJiB7XG4gICAgICBib3JkZXJDb2xvcjogXCJ0cmFuc3BhcmVudFwiLFxuICAgIH0pLFxuICAgIGN1cnNvcjogXCJ0ZXh0XCIsXG4gICAgW2AmOmhhcyh0ZXh0YXJlYTpmb2N1cy12aXNpYmxlKWBdOiB7XG4gICAgICBvdXRsaW5lV2lkdGg6IDEsXG4gICAgICBvdXRsaW5lU3R5bGU6IFwic29saWRcIixcbiAgICAgIG91dGxpbmVPZmZzZXQ6IC0xLFxuICAgICAgb3V0bGluZUNvbG9yOiB0aGVtZS52YWx1ZXMuY29sb3IuYm9yZGVyLmFjY2VudC5kZWZhdWx0LFxuICAgICAgYm94U2hhZG93OiB0aGVtZS52YWx1ZXMuc2hhZG93LmZvY3VzUmluZyxcblxuICAgICAgXCJAbWVkaWEgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzowKVwiOiB7XG4gICAgICAgIG91dGxpbmVDb2xvcjogdGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5hY2NlbnQuZGVmYXVsdCxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZFRleHRBcmVhQ29udGFpbmVyID0gc3R5bGVkLmRpdih7XG4gIGJvcmRlclJhZGl1czogXCJpbmhlcml0XCIsXG4gIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG59KTtcblxudHlwZSBTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyUHJvcHMgPSBQaWNrPFxuICBQcm9tcHRJbnB1dFByb3BzLFxuICBcImlzTmF2QmFyVmFyaWFudFwiXG4+O1xuXG5jb25zdCBTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyID1cbiAgc3R5bGVkLmRpdjxTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyUHJvcHM+KFxuICAgICh7IHRoZW1lLCBpc05hdkJhclZhcmlhbnQgfSkgPT4gKHtcbiAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICB0b3A6IGlzTmF2QmFyVmFyaWFudFxuICAgICAgICA/IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHhzXG4gICAgICAgIDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5tLFxuICAgICAgcmlnaHQ6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubSxcbiAgICAgIHVzZXJTZWxlY3Q6IFwibm9uZVwiLFxuICAgICAgcG9pbnRlckV2ZW50czogXCJub25lXCIsXG4gICAgfSlcbiAgKTtcblxudHlwZSBTdHlsZWRDbGVhckJ1dHRvblByb3BzID0gUGljdG9ncmFtQnV0dG9uUHJvcHMgJlxuICBQaWNrPFByb21wdElucHV0UHJvcHMsIFwiaXNOYXZCYXJWYXJpYW50XCI+O1xuXG5jb25zdCBTdHlsZWRDbGVhckJ1dHRvbiA9IHN0eWxlZChQaWN0b2dyYW1CdXR0b24pPFN0eWxlZENsZWFyQnV0dG9uUHJvcHM+KFxuICAoeyB0aGVtZSwgaXNOYXZCYXJWYXJpYW50IH0pID0+ICh7XG4gICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICByaWdodDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zLFxuICAgIHRvcDogaXNOYXZCYXJWYXJpYW50ID8gMCA6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcucyxcbiAgfSlcbik7XG5cbi8vIFVzaW5nIGZsb2F0IGluIG9yZGVyIHRvIGF2b2lkIHRoZSBpbnZpc2libGUgYXJlYSBiZXR3ZWVuIHRoZSBzbG90c1xuLy8gdGhhdCBwcmV2ZW50cyB0aGUgdGV4dGFyZWEgZnJvbSBiZWluZyBmb2N1c2VkXG5jb25zdCBTdHlsZWRTbG90ID0gc3R5bGVkLmRpdjx7IHBvc2l0aW9uOiBcImxlZnRcIiB8IFwicmlnaHRcIiB9PihcbiAgKHsgcG9zaXRpb24sIHRoZW1lIH0pID0+ICh7XG4gICAgZmxvYXQ6IHBvc2l0aW9uLFxuICAgIG1hcmdpbjogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5tLFxuICAgIGN1cnNvcjogXCJkZWZhdWx0XCIsXG4gIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRDbGVhciA9IHN0eWxlZC5kaXYoe1xuICBjbGVhcjogXCJib3RoXCIsXG59KTtcblxudHlwZSBTZW5kQnV0dG9uUHJvcHMgPSBPbWl0PFJvdW5kQnV0dG9uUHJvcHMsIFwiaWNvblwiIHwgXCJ2YXJpYW50XCI+ICYge1xuICBpY29uPzogXCJhcnJvdy11cFwiIHwgXCJzZWFyY2hcIiB8IFwiYXJyb3ctcmlnaHRcIjtcbn07XG5cbmV4cG9ydCB0eXBlIFByb21wdElucHV0UHJvcHMgPSB7XG4gIFwiZGF0YS1lMmUtdGVzdC1pZFwiPzogc3RyaW5nO1xuICAvKiogVG9vbGJhciBlbGVtZW50cyBiZWxvdyB0ZXh0IGFyZWEgKi9cbiAgYm90dG9tVG9vbGJhcj86IHtcbiAgICBsZWZ0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgICByaWdodENvbnRlbnQ/OiBSZWFjdEVsZW1lbnQ7XG4gIH07XG4gIC8qKiBDdXJyZW50bHkgc2hvd3Mgc2VuZCBidXR0b24gcHJvY2Vzc2luZyBzdGF0ZSAgKi9cbiAgaXNQcm9jZXNzaW5nPzogYm9vbGVhbjtcbiAgc2VuZEJ1dHRvblByb3BzPzogU2VuZEJ1dHRvblByb3BzO1xuICBjbGVhckJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgaGludD86IFJlYWN0RWxlbWVudDtcbiAgLyoqIFNob3dzIGluIHRoZSBjbGVhciBidXR0b24gc3BhY2UgaW4gZW1wdHkgc3RhdGUgKi9cbiAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgb25DbGVhcjogKCkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCB3aGVuIHVzZXIgc2VsZWN0cyAob3IgcmVqZWN0cykgYSBsaXN0IGl0ZW0gZnJvbSBhdXRvY29tcGxldGUgbGlzdCAqL1xuICBvbkNvbXBsZXRlPzogKHtcbiAgICB2YWx1ZSxcbiAgICBjYXRlZ29yeSxcbiAgICBldnQsXG4gICAgaW5kZXgsXG4gIH06IHtcbiAgICB2YWx1ZTogTGlzdEl0ZW1WYWx1ZTtcbiAgICBjYXRlZ29yeT86IHN0cmluZztcbiAgICBldnQ/OiBTeW50aGV0aWNFdmVudDtcbiAgICBpbmRleD86IG51bWJlcjtcbiAgfSkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCBvbiBFbnRlciBrZXkgdG8gc3VibWl0IHRoZSBmb3JtICAqL1xuICBvbkVudGVyS2V5OiAoKSA9PiB2b2lkO1xufSAmIE9taXQ8XG4gIFByb21wdFRleHRBcmVhUHJvcHMsXG4gIFwiaXNDb2xsYXBzZWRcIiB8IFwiaXNBdXRvY29tcGxldGVMaXN0T3BlblwiIHwgXCJzZWxlY3RlZExpc3RJdGVtXCJcbj4gJlxuICBQaWNrPFxuICAgIEF1dG9jb21wbGV0ZUxpc3RQcm9wcyxcbiAgICBcImF1dG9jb21wbGV0ZUxpc3RJdGVtc1wiIHwgXCJhdXRvY29tcGxldGVMaXN0Rm9vdGVyXCIgfCBcInBvcnRhbENvbnRhaW5lclwiXG4gID47XG5cbmNvbnN0IGRlZmF1bHRTZW5kQnV0dG9uUHJvcHM6IFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgdHlwZTogXCJzdWJtaXRcIiBhcyBjb25zdCxcbiAgaWNvbjogXCJhcnJvdy11cFwiIGFzIGNvbnN0LFxufTtcblxuY29uc3QgUHJvbXB0SW5wdXRDb21wb25lbnQgPSBmb3J3YXJkUmVmKFxuICAoXG4gICAge1xuICAgICAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG4gICAgICBuYW1lLFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zID0gW10sXG4gICAgICB2YWx1ZSxcbiAgICAgIGJvdHRvbVRvb2xiYXIgPSB7IGxlZnRDb250ZW50OiBudWxsLCByaWdodENvbnRlbnQ6IG51bGwgfSxcbiAgICAgIGlzUHJvY2Vzc2luZyxcbiAgICAgIHNlbmRCdXR0b25Qcm9wcyA9IHt9LFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEZvb3RlcixcbiAgICAgIGNsZWFyQnV0dG9uQXJpYUxhYmVsID0gXCJDbGVhciBpbnB1dFwiLFxuICAgICAgaGludCxcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnQsXG4gICAgICBpc05hdkJhclZhcmlhbnQsXG4gICAgICBwb3J0YWxDb250YWluZXIsXG4gICAgICBvbkNoYW5nZSxcbiAgICAgIG9uQ29tcGxldGUsXG4gICAgICBvbkNsZWFyLFxuICAgICAgb25FbnRlcktleSxcbiAgICAgIG9uRm9jdXMsXG4gICAgICBvbkJsdXIsXG4gICAgICBvbktleURvd24sXG4gICAgICAuLi5yZXN0XG4gICAgfTogUHJvbXB0SW5wdXRQcm9wcyxcbiAgICByZWY6IFJlZk9iamVjdDxIVE1MVGV4dEFyZWFFbGVtZW50PlxuICApOiBSZWFjdEVsZW1lbnQgPT4ge1xuICAgIGNvbnN0IGNvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgdGV4dEFyZWFDb250YWluZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IGludGVybmFsUmVmID0gdXNlUmVmPEhUTUxUZXh0QXJlYUVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IFtzZWxlY3RlZEluZGV4LCBzZXRTZWxlY3RlZEluZGV4XSA9IHVzZVN0YXRlKC0xKTtcbiAgICBjb25zdCBbaXNDb2xsYXBzZWQsIHNldElzQ29sbGFwc2VkXSA9IHVzZVN0YXRlKGlzTmF2QmFyVmFyaWFudCk7XG4gICAgY29uc3QgdXNlclR5cGVkUXVlcnkgPSB1c2VSZWYoXCJcIik7XG4gICAgY29uc3QgW2lzQXV0b2NvbXBsZXRlTGlzdE9wZW4sIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IHRleHRBcmVhUmVmID0gcmVmIHx8IGludGVybmFsUmVmO1xuXG4gICAgY29uc3QgbWVyZ2VkU2VuZEJ1dHRvblByb3BzID0ge1xuICAgICAgLi4uZGVmYXVsdFNlbmRCdXR0b25Qcm9wcyxcbiAgICAgIC4uLnNlbmRCdXR0b25Qcm9wcyxcbiAgICB9O1xuXG4gICAgdXNlT3V0c2lkZUNsaWNrKFxuICAgICAgY29udGFpbmVyUmVmLFxuICAgICAgKGV2dCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgIWNvbnRhaW5lclJlZi5jdXJyZW50LmNvbnRhaW5zKGV2dC50YXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICAhcG9ydGFsQ29udGFpbmVyPy5jb250YWlucyhldnQudGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgZXZ0LnRhcmdldCAhPT0gbnVsbFxuICAgICAgICApIHtcbiAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgICFpc0NvbGxhcHNlZCAmJiBpc05hdkJhclZhcmlhbnRcbiAgICApO1xuXG4gICAgY29uc3QgY2xvc2VBdXRvY29tcGxldGVMaXN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgc2V0SXNBdXRvY29tcGxldGVMaXN0T3BlbihmYWxzZSk7XG4gICAgICBzZXRTZWxlY3RlZEluZGV4KC0xKTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBvcGVuQXV0b2NvbXBsZXRlTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmIChhdXRvY29tcGxldGVMaXN0SXRlbXMubGVuZ3RoKSB7XG4gICAgICAgIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW4odHJ1ZSk7XG4gICAgICAgIHNldFNlbGVjdGVkSW5kZXgoLTEpO1xuICAgICAgfVxuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXNdKTtcblxuICAgIGNvbnN0IGFjY2VwdFRleHRTZWxlY3Rpb24gPSAoKSA9PiB7XG4gICAgICB1c2VyVHlwZWRRdWVyeS5jdXJyZW50ID0gdmFsdWU7XG4gICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKHZhbHVlLmxlbmd0aCwgdmFsdWUubGVuZ3RoKTtcbiAgICB9O1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChhdXRvY29tcGxldGVMaXN0SXRlbXMubGVuZ3RoICYmICFpc0NvbGxhcHNlZCkge1xuICAgICAgICBvcGVuQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICB9XG4gICAgfSwgW1xuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLFxuICAgICAgb3BlbkF1dG9jb21wbGV0ZUxpc3QsXG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QsXG4gICAgICBpc0NvbGxhcHNlZCxcbiAgICBdKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodmFsdWUgJiYgdmFsdWUgIT09IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgJiYgaXNBdXRvY29tcGxldGVMaXN0T3Blbikge1xuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKFxuICAgICAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQubGVuZ3RoLFxuICAgICAgICAgIHZhbHVlLmxlbmd0aFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sIFt2YWx1ZSwgdGV4dEFyZWFSZWYsIGlzQXV0b2NvbXBsZXRlTGlzdE9wZW5dKTtcblxuICAgIC8vIERldGVybWluZSB3aGVuIGZvY3VzIGxlYXZlcyB0aGUgY29udGFpbmVyIHRvIGNvbGxhcHNlIGl0XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGxldCBoYW5kbGVyOiAoZXZ0OiBGb2N1c0V2ZW50KSA9PiB2b2lkO1xuICAgICAgY29uc3QgY29udGFpbmVyID0gY29udGFpbmVyUmVmLmN1cnJlbnQ7XG5cbiAgICAgIGlmIChpc05hdkJhclZhcmlhbnQgJiYgY29udGFpbmVyKSB7XG4gICAgICAgIGhhbmRsZXIgPSAoZXZ0OiBGb2N1c0V2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgIWNvbnRhaW5lclJlZi5jdXJyZW50LmNvbnRhaW5zKGV2dC5yZWxhdGVkVGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgICAhcG9ydGFsQ29udGFpbmVyPy5jb250YWlucyhldnQucmVsYXRlZFRhcmdldCBhcyBOb2RlKSAmJlxuICAgICAgICAgICAgZXZ0LnJlbGF0ZWRUYXJnZXQgIT09IG51bGxcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJmb2N1c291dFwiLCBoYW5kbGVyKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgaWYgKGNvbnRhaW5lcikge1xuICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwiZm9jdXNvdXRcIiwgaGFuZGxlcik7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfSwgW2lzTmF2QmFyVmFyaWFudCwgY29udGFpbmVyUmVmLCBwb3J0YWxDb250YWluZXJdKTtcblxuICAgIGNvbnN0IGZsYXR0ZW5lZExpc3RJdGVtcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgY29uc3QgbGlzdDogRmxhdHRlbmVkTGlzdEl0ZW1bXSA9IFtdO1xuXG4gICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXMuZm9yRWFjaCgobGlzdEl0ZW0pID0+IHtcbiAgICAgICAgbGlzdEl0ZW0uaXRlbXMuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICBsaXN0LnB1c2goe1xuICAgICAgICAgICAgY2F0ZWdvcnk6IGxpc3RJdGVtLmNhdGVnb3J5LFxuICAgICAgICAgICAgaW5kZXhJbkNhdGVnb3J5OiBpbmRleCxcbiAgICAgICAgICAgIHZhbHVlOiBpdGVtLnZhbHVlLFxuICAgICAgICAgICAgaWQ6IGdldExpc3RJdGVtSWQobmFtZSwgbGlzdEl0ZW0uY2F0ZWdvcnksIGluZGV4KSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBsaXN0O1xuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXMsIG5hbWVdKTtcblxuICAgIGNvbnN0IGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2UgPSAoaW5kZXg6IG51bWJlciwgZXZ0PzogU3ludGhldGljRXZlbnQpID0+IHtcbiAgICAgIHNldFNlbGVjdGVkSW5kZXgoaW5kZXgpO1xuICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICBjb25zdCB7IGNhdGVnb3J5LCB2YWx1ZTogaXRlbVZhbHVlIH0gPSBmbGF0dGVuZWRMaXN0SXRlbXNbaW5kZXhdO1xuXG4gICAgICAgIG9uQ29tcGxldGUoeyB2YWx1ZTogaXRlbVZhbHVlLCBjYXRlZ29yeSwgZXZ0LCBpbmRleCB9KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlTGlzdEl0ZW1DbGljayA9IChcbiAgICAgIGNhdGVnb3J5OiBzdHJpbmcsXG4gICAgICBpbmRleEluQ2F0ZWdvcnk6IG51bWJlcixcbiAgICAgIGV2dD86IE1vdXNlRXZlbnRcbiAgICApID0+IHtcbiAgICAgIGNvbnN0IGluZGV4ID0gZmxhdHRlbmVkTGlzdEl0ZW1zLmZpbmRJbmRleChcbiAgICAgICAgKGxpc3RJdGVtKSA9PlxuICAgICAgICAgIGxpc3RJdGVtLmNhdGVnb3J5ID09PSBjYXRlZ29yeSAmJlxuICAgICAgICAgIGxpc3RJdGVtLmluZGV4SW5DYXRlZ29yeSA9PT0gaW5kZXhJbkNhdGVnb3J5XG4gICAgICApO1xuXG4gICAgICBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlKGluZGV4LCBldnQpO1xuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVLZXlEb3duOiBLZXlib2FyZEV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIGlmIChpc0F1dG9jb21wbGV0ZUxpc3RPcGVuKSB7XG4gICAgICAgIHN3aXRjaCAoZXZ0LmtleSkge1xuICAgICAgICAgIGNhc2UgXCJFc2NhcGVcIjpcbiAgICAgICAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgICAgICAgb25Db21wbGV0ZSh7IHZhbHVlOiB1c2VyVHlwZWRRdWVyeS5jdXJyZW50LCBldnQgfSk7XG4gICAgICAgICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkVudGVyXCI6XG4gICAgICAgICAgICBpZiAoIWV2dC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICAgICAgICAgIGFjY2VwdFRleHRTZWxlY3Rpb24oKTtcblxuICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBvbkVudGVyS2V5Py4oKTtcbiAgICAgICAgICAgICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgICAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCIgXCI6XG4gICAgICAgICAgICBhY2NlcHRUZXh0U2VsZWN0aW9uKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiQXJyb3dVcFwiOlxuICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRJbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgIGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2Uoc2VsZWN0ZWRJbmRleCAtIDEsIGV2dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiQXJyb3dEb3duXCI6XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEluZGV4IDwgZmxhdHRlbmVkTGlzdEl0ZW1zLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZShzZWxlY3RlZEluZGV4ICsgMSwgZXZ0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN3aXRjaCAoZXZ0LmtleSkge1xuICAgICAgICAgIGNhc2UgXCJFc2NhcGVcIjpcbiAgICAgICAgICAgIG9uQ2xlYXI/LigpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkVudGVyXCI6XG4gICAgICAgICAgICBpZiAoIWV2dC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgb25FbnRlcktleT8uKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBvbktleURvd24/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVDaGFuZ2U6IENoYW5nZUV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgPSBldnQudGFyZ2V0LnZhbHVlO1xuICAgICAgb25DaGFuZ2UoZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlRm9jdXM6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgc2V0SXNDb2xsYXBzZWQoZmFsc2UpO1xuICAgICAgb25Gb2N1cz8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUJsdXI6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgaWYgKHZhbHVlICE9PSB1c2VyVHlwZWRRdWVyeS5jdXJyZW50KSB7XG4gICAgICAgIG9uQ29tcGxldGU/Lih7IHZhbHVlOiB1c2VyVHlwZWRRdWVyeS5jdXJyZW50LCBldnQgfSk7XG4gICAgICB9XG4gICAgICBvbkJsdXI/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVTZW5kQnV0dG9uQ2xpY2sgPSAoZXZ0OiBNb3VzZUV2ZW50PEhUTUxCdXR0b25FbGVtZW50PikgPT4ge1xuICAgICAgbWVyZ2VkU2VuZEJ1dHRvblByb3BzLm9uQ2xpY2s/LihldnQpO1xuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVQcmV2ZW50Rm9jdXMgPSAoZXZ0OiBSZWFjdC5Qb2ludGVyRXZlbnQpID0+IHtcbiAgICAgIC8vIFByZXZlbnQgdGhlIHRleHRhcmVhIGZyb20gYmVpbmcgdW5mb2N1c2VkXG4gICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlT25Db250YWluZXJQb2ludGVyRG93biA9IChldnQ6IFJlYWN0LlBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgLy8gRm9jdXMgdGV4dGFyZWEgd2hlbiBjbGlja2luZyBvbiB0aGUgY29udGFpbmVyIG9ubHlcbiAgICAgIGlmIChldnQudGFyZ2V0ID09PSBldnQuY3VycmVudFRhcmdldCkge1xuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3Qgc2VsZWN0ZWRMaXN0SXRlbSA9XG4gICAgICBzZWxlY3RlZEluZGV4ICE9PSAtMSA/IGZsYXR0ZW5lZExpc3RJdGVtc1tzZWxlY3RlZEluZGV4XSA6IG51bGw7XG5cbiAgICBjb25zdCBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50RWxtID0gZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudCA/IChcbiAgICAgIDxTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyXG4gICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgPlxuICAgICAgICA8VGV4dCBjb2xvcj1cInRlcnRpYXJ5XCI+e2VtcHR5U3RhdGVUb3BSaWdodENvbnRlbnR9PC9UZXh0PlxuICAgICAgPC9TdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyPlxuICAgICkgOiBudWxsO1xuXG4gICAgY29uc3QgY2xlYXJCdXR0b25FbG0gPSB2YWx1ZSA/IChcbiAgICAgIDxTdHlsZWRDbGVhckJ1dHRvblxuICAgICAgICBzaXplPVwic1wiXG4gICAgICAgIGljb249XCJ4LWNpcmNsZS1maWxsZWRcIlxuICAgICAgICBhcmlhLWxhYmVsPXtjbGVhckJ1dHRvbkFyaWFMYWJlbH1cbiAgICAgICAgaXNOYXZCYXJWYXJpYW50PXtpc05hdkJhclZhcmlhbnR9XG4gICAgICAgIG9uUG9pbnRlckRvd249e2hhbmRsZVByZXZlbnRGb2N1c31cbiAgICAgICAgb25DbGljaz17b25DbGVhcn1cbiAgICAgIC8+XG4gICAgKSA6IChcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRFbG1cbiAgICApO1xuXG4gICAgY29uc3QgaGludEVsbSA9ICEhaGludCAmJiAoXG4gICAgICA8SW5saW5lIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgPFRleHQgc2l6ZT1cInNcIiBjb2xvcj1cInRlcnRpYXJ5XCI+XG4gICAgICAgICAge2hpbnR9XG4gICAgICAgIDwvVGV4dD5cbiAgICAgIDwvSW5saW5lPlxuICAgICk7XG5cbiAgICBjb25zdCBib3R0b21Ub29sYmFyRWxtID0gIWlzQ29sbGFwc2VkICYmIChcbiAgICAgIDw+XG4gICAgICAgIDxTdHlsZWRTbG90IHBvc2l0aW9uPVwibGVmdFwiPntib3R0b21Ub29sYmFyLmxlZnRDb250ZW50fTwvU3R5bGVkU2xvdD5cbiAgICAgICAgPFN0eWxlZFNsb3QgcG9zaXRpb249XCJyaWdodFwiIGRhdGEtZTJlLXRlc3QtaWQ9XCJib3R0b21Ub29sYmFyXCI+XG4gICAgICAgICAgPElubGluZSBzcGFjZT1cInhzXCIgdkFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgIHtib3R0b21Ub29sYmFyLnJpZ2h0Q29udGVudH1cbiAgICAgICAgICAgIDxSb3VuZEJ1dHRvblxuICAgICAgICAgICAgICBhcmlhQXR0cmlidXRlcz17e1xuICAgICAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiBpc1Byb2Nlc3NpbmdcbiAgICAgICAgICAgICAgICAgID8gXCJQcm9jZXNzaW5nIHF1ZXJ5XCJcbiAgICAgICAgICAgICAgICAgIDogXCJTdWJtaXQgcXVlcnlcIixcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgey4uLm1lcmdlZFNlbmRCdXR0b25Qcm9wc31cbiAgICAgICAgICAgICAgZGlzYWJsZWQ9eyF2YWx1ZSB8fCBtZXJnZWRTZW5kQnV0dG9uUHJvcHMuZGlzYWJsZWR9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVNlbmRCdXR0b25DbGlja31cbiAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlUHJldmVudEZvY3VzfVxuICAgICAgICAgICAgICB2YXJpYW50PVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgIGljb249e2lzUHJvY2Vzc2luZyA/IFwic3RvcC1maWxsZWRcIiA6IG1lcmdlZFNlbmRCdXR0b25Qcm9wcy5pY29ufVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0lubGluZT5cbiAgICAgICAgPC9TdHlsZWRTbG90PlxuICAgICAgICA8U3R5bGVkQ2xlYXIgLz5cbiAgICAgIDwvPlxuICAgICk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGRhdGEtZTJlLXRlc3QtaWQ9e2RhdGFFMmVUZXN0SWR9XG4gICAgICAgICAgZGF0YS1kcy1pZD1cIlByb21wdElucHV0XCJcbiAgICAgICAgICByZWY9e2NvbnRhaW5lclJlZn1cbiAgICAgICAgICAvLyBUcmFuc2xhdGlvbiBkaXNhYmxlZCBmb3IgY29uc2lzdGVuY3kgd2l0aCB0aGUgYXV0b2NvbXBsZXRlIGxpc3RcbiAgICAgICAgICB0cmFuc2xhdGU9XCJub1wiXG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2sgc3BhY2U9XCJzXCI+XG4gICAgICAgICAgICA8Q3VzdG9tQ29udGFpbmVyXG4gICAgICAgICAgICAgIGVsZXZhdGlvbj17MH1cbiAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPXtpc0NvbGxhcHNlZCA/IFwieHNcIiA6IFwibVwifVxuICAgICAgICAgICAgICBoaWRlQm9yZGVyPXtpc0NvbGxhcHNlZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlT25Db250YWluZXJQb2ludGVyRG93bn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTdHlsZWRUZXh0QXJlYUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIDxQcm9tcHRUZXh0QXJlYVxuICAgICAgICAgICAgICAgICAgICB7Li4ucmVzdH1cbiAgICAgICAgICAgICAgICAgICAgZGF0YUUyZVRlc3RJZD17XG4gICAgICAgICAgICAgICAgICAgICAgZGF0YUUyZVRlc3RJZCA/IGAke2RhdGFFMmVUZXN0SWR9LWlucHV0YCA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgcmVmPXt0ZXh0QXJlYVJlZn1cbiAgICAgICAgICAgICAgICAgICAgaXNOYXZCYXJWYXJpYW50PXtpc05hdkJhclZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkTGlzdEl0ZW09e3NlbGVjdGVkTGlzdEl0ZW19XG4gICAgICAgICAgICAgICAgICAgIGlzQXV0b2NvbXBsZXRlTGlzdE9wZW49e2lzQXV0b2NvbXBsZXRlTGlzdE9wZW59XG4gICAgICAgICAgICAgICAgICAgIGlzQ29sbGFwc2VkPXtpc0NvbGxhcHNlZH1cbiAgICAgICAgICAgICAgICAgICAgb25Gb2N1cz17aGFuZGxlRm9jdXN9XG4gICAgICAgICAgICAgICAgICAgIG9uQmx1cj17aGFuZGxlQmx1cn1cbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUNoYW5nZX1cbiAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXtoYW5kbGVLZXlEb3dufVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIHtjbGVhckJ1dHRvbkVsbX1cbiAgICAgICAgICAgICAgICA8L1N0eWxlZFRleHRBcmVhQ29udGFpbmVyPlxuICAgICAgICAgICAgICAgIHtib3R0b21Ub29sYmFyRWxtfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvQ3VzdG9tQ29udGFpbmVyPlxuICAgICAgICAgICAge2hpbnRFbG19XG4gICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPEF1dG9jb21wbGV0ZUxpc3RcbiAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXM9e2F1dG9jb21wbGV0ZUxpc3RJdGVtc31cbiAgICAgICAgICB0cmlnZ2VyUmVmPXt0ZXh0QXJlYUNvbnRhaW5lclJlZn1cbiAgICAgICAgICBzZWxlY3RlZExpc3RJdGVtPXtzZWxlY3RlZExpc3RJdGVtfVxuICAgICAgICAgIGlzT3Blbj17aXNBdXRvY29tcGxldGVMaXN0T3Blbn1cbiAgICAgICAgICBhdXRvY29tcGxldGVMaXN0Rm9vdGVyPXthdXRvY29tcGxldGVMaXN0Rm9vdGVyfVxuICAgICAgICAgIHBvcnRhbENvbnRhaW5lcj17cG9ydGFsQ29udGFpbmVyfVxuICAgICAgICAgIG9uTGlzdEl0ZW1DbGljaz17aGFuZGxlTGlzdEl0ZW1DbGlja31cbiAgICAgICAgLz5cbiAgICAgIDwvPlxuICAgICk7XG4gIH1cbik7XG5cbmNvbnN0IEN1c3RvbUJ1dHRvbiA9IHN0eWxlZChCdXR0b24pKCh7IHRoZW1lIH0pID0+ICh7XG4gIGJvcmRlclJhZGl1czogdGhlbWUudmFyaWFibGVzLnNpemUuYm9yZGVyUmFkaXVzLmwsXG59KSk7XG5cbi8vIG5lZWQgdG8gc2ltcGxpZnkgdGhpcyB0eXBlIGZvciByZXVzZVxuY29uc3QgU3VnZ2VzdGlvbkJ1dHRvbiA9IGZvcndhcmRSZWYoXG4gIDxDIGV4dGVuZHMgUmVhY3QuRWxlbWVudFR5cGUgPSBcImJ1dHRvblwiPihcbiAgICBwcm9wczogUG9seW1vcnBoaWNDb21wb25lbnRQcm9wc1dpdGhSZWY8XG4gICAgICBDLFxuICAgICAgT21pdDxCdXR0b25Qcm9wcywgXCJ2YXJpYW50XCIgfCBcInNpemVcIiB8IFwicmVmXCI+XG4gICAgPixcbiAgICByZWY6IFBvbHltb3JwaGljUmVmPEM+XG4gICkgPT4gPEN1c3RvbUJ1dHRvbiB7Li4ucHJvcHN9IHZhcmlhbnQ9XCJzZWNvbmRhcnlcIiBzaXplPVwic1wiIHJlZj17cmVmfSAvPlxuKTtcblxuZXhwb3J0IGNvbnN0IFByb21wdElucHV0ID0gT2JqZWN0LmFzc2lnbihQcm9tcHRJbnB1dENvbXBvbmVudCwge1xuICBTdWdnZXN0aW9uQnV0dG9uLFxufSkgYXMgdHlwZW9mIFByb21wdElucHV0Q29tcG9uZW50ICYge1xuICBTdWdnZXN0aW9uQnV0dG9uOiB0eXBlb2YgU3VnZ2VzdGlvbkJ1dHRvbjtcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZ0VnQyJ9 */"),StyledEmptyStateTopRightContentContainer=(0,_styled.default)("div",{target:"e1gnreap2",label:"StyledEmptyStateTopRightContentContainer"})(({theme,isNavBarVariant})=>({position:"absolute",top:isNavBarVariant?theme.variables.size.spacing.xxs:theme.variables.size.spacing.m,right:theme.variables.size.spacing.m,userSelect:"none",pointerEvents:"none"}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUHJvbXB0SW5wdXQvUHJvbXB0SW5wdXQudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Qcm9tcHRJbnB1dC9Qcm9tcHRJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBSZWFjdEVsZW1lbnQsXG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlZk9iamVjdCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIFN5bnRoZXRpY0V2ZW50LFxuICBNb3VzZUV2ZW50LFxufSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZVJlZixcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG4gIGZvcndhcmRSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgdHlwZSB7IFByb21wdFRleHRBcmVhUHJvcHMgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHsgUHJvbXB0VGV4dEFyZWEgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHsgQ29udGFpbmVyIH0gZnJvbSBcIi4uL0NvbnRhaW5lclwiO1xuaW1wb3J0IHR5cGUgeyBBdXRvY29tcGxldGVMaXN0UHJvcHMgfSBmcm9tIFwiLi9BdXRvY29tcGxldGVMaXN0XCI7XG5pbXBvcnQgeyBBdXRvY29tcGxldGVMaXN0IH0gZnJvbSBcIi4vQXV0b2NvbXBsZXRlTGlzdFwiO1xuaW1wb3J0IHtcbiAgZ2V0TGlzdEl0ZW1JZCxcbiAgdHlwZSBGbGF0dGVuZWRMaXN0SXRlbSxcbiAgdHlwZSBMaXN0SXRlbVZhbHVlLFxufSBmcm9tIFwiLi9DYXRlZ29yeUxpc3RcIjtcbmltcG9ydCB7IFRleHQgfSBmcm9tIFwiLi4vVHlwb2dyYXBoeS9UZXh0XCI7XG5pbXBvcnQgeyBCdXR0b24sIHR5cGUgQnV0dG9uUHJvcHMgfSBmcm9tIFwiLi4vQnV0dG9uL0J1dHRvblwiO1xuaW1wb3J0IHR5cGUge1xuICBQb2x5bW9ycGhpY1JlZixcbiAgUG9seW1vcnBoaWNDb21wb25lbnRQcm9wc1dpdGhSZWYsXG59IGZyb20gXCIuLi8uLi90eXBlc1wiO1xuaW1wb3J0IHsgSW5saW5lIH0gZnJvbSBcIi4uL0lubGluZS9JbmxpbmVcIjtcbmltcG9ydCB0eXBlIHsgUm91bmRCdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9Sb3VuZEJ1dHRvbi9Sb3VuZEJ1dHRvblwiO1xuaW1wb3J0IHsgUm91bmRCdXR0b24gfSBmcm9tIFwiLi4vUm91bmRCdXR0b24vUm91bmRCdXR0b25cIjtcbmltcG9ydCB0eXBlIHsgUGljdG9ncmFtQnV0dG9uUHJvcHMgfSBmcm9tIFwiLi4vUGljdG9ncmFtQnV0dG9uL1BpY3RvZ3JhbUJ1dHRvblwiO1xuaW1wb3J0IHsgUGljdG9ncmFtQnV0dG9uIH0gZnJvbSBcIi4uL1BpY3RvZ3JhbUJ1dHRvbi9QaWN0b2dyYW1CdXR0b25cIjtcbmltcG9ydCB7IFN0YWNrIH0gZnJvbSBcIi4uL1N0YWNrL1N0YWNrXCI7XG5pbXBvcnQgeyB1c2VPdXRzaWRlQ2xpY2sgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL3VzZU91dHNpZGVDbGlja1wiO1xuXG5jb25zdCBDdXN0b21Db250YWluZXIgPSBzdHlsZWQoQ29udGFpbmVyKTx7IGhpZGVCb3JkZXI6IGJvb2xlYW4gfT4oXG4gICh7IHRoZW1lLCBoaWRlQm9yZGVyIH0pID0+ICh7XG4gICAgYm9yZGVyOiBgMXB4IHNvbGlkICR7dGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5wcmltYXJ5LmRlZmF1bHR9YCxcbiAgICAuLi4oaGlkZUJvcmRlciAmJiB7XG4gICAgICBib3JkZXJDb2xvcjogXCJ0cmFuc3BhcmVudFwiLFxuICAgIH0pLFxuICAgIGN1cnNvcjogXCJ0ZXh0XCIsXG4gICAgW2AmOmhhcyh0ZXh0YXJlYTpmb2N1cy12aXNpYmxlKWBdOiB7XG4gICAgICBvdXRsaW5lV2lkdGg6IDEsXG4gICAgICBvdXRsaW5lU3R5bGU6IFwic29saWRcIixcbiAgICAgIG91dGxpbmVPZmZzZXQ6IC0xLFxuICAgICAgb3V0bGluZUNvbG9yOiB0aGVtZS52YWx1ZXMuY29sb3IuYm9yZGVyLmFjY2VudC5kZWZhdWx0LFxuICAgICAgYm94U2hhZG93OiB0aGVtZS52YWx1ZXMuc2hhZG93LmZvY3VzUmluZyxcblxuICAgICAgXCJAbWVkaWEgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzowKVwiOiB7XG4gICAgICAgIG91dGxpbmVDb2xvcjogdGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5hY2NlbnQuZGVmYXVsdCxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZFRleHRBcmVhQ29udGFpbmVyID0gc3R5bGVkLmRpdih7XG4gIGJvcmRlclJhZGl1czogXCJpbmhlcml0XCIsXG4gIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG59KTtcblxudHlwZSBTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyUHJvcHMgPSBQaWNrPFxuICBQcm9tcHRJbnB1dFByb3BzLFxuICBcImlzTmF2QmFyVmFyaWFudFwiXG4+O1xuXG5jb25zdCBTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyID1cbiAgc3R5bGVkLmRpdjxTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyUHJvcHM+KFxuICAgICh7IHRoZW1lLCBpc05hdkJhclZhcmlhbnQgfSkgPT4gKHtcbiAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICB0b3A6IGlzTmF2QmFyVmFyaWFudFxuICAgICAgICA/IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHhzXG4gICAgICAgIDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5tLFxuICAgICAgcmlnaHQ6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubSxcbiAgICAgIHVzZXJTZWxlY3Q6IFwibm9uZVwiLFxuICAgICAgcG9pbnRlckV2ZW50czogXCJub25lXCIsXG4gICAgfSlcbiAgKTtcblxudHlwZSBTdHlsZWRDbGVhckJ1dHRvblByb3BzID0gUGljdG9ncmFtQnV0dG9uUHJvcHMgJlxuICBQaWNrPFByb21wdElucHV0UHJvcHMsIFwiaXNOYXZCYXJWYXJpYW50XCI+O1xuXG5jb25zdCBTdHlsZWRDbGVhckJ1dHRvbiA9IHN0eWxlZChQaWN0b2dyYW1CdXR0b24pPFN0eWxlZENsZWFyQnV0dG9uUHJvcHM+KFxuICAoeyB0aGVtZSwgaXNOYXZCYXJWYXJpYW50IH0pID0+ICh7XG4gICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICByaWdodDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zLFxuICAgIHRvcDogaXNOYXZCYXJWYXJpYW50ID8gMCA6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcucyxcbiAgfSlcbik7XG5cbi8vIFVzaW5nIGZsb2F0IGluIG9yZGVyIHRvIGF2b2lkIHRoZSBpbnZpc2libGUgYXJlYSBiZXR3ZWVuIHRoZSBzbG90c1xuLy8gdGhhdCBwcmV2ZW50cyB0aGUgdGV4dGFyZWEgZnJvbSBiZWluZyBmb2N1c2VkXG5jb25zdCBTdHlsZWRTbG90ID0gc3R5bGVkLmRpdjx7IHBvc2l0aW9uOiBcImxlZnRcIiB8IFwicmlnaHRcIiB9PihcbiAgKHsgcG9zaXRpb24sIHRoZW1lIH0pID0+ICh7XG4gICAgZmxvYXQ6IHBvc2l0aW9uLFxuICAgIG1hcmdpbjogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5tLFxuICAgIGN1cnNvcjogXCJkZWZhdWx0XCIsXG4gIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRDbGVhciA9IHN0eWxlZC5kaXYoe1xuICBjbGVhcjogXCJib3RoXCIsXG59KTtcblxudHlwZSBTZW5kQnV0dG9uUHJvcHMgPSBPbWl0PFJvdW5kQnV0dG9uUHJvcHMsIFwiaWNvblwiIHwgXCJ2YXJpYW50XCI+ICYge1xuICBpY29uPzogXCJhcnJvdy11cFwiIHwgXCJzZWFyY2hcIiB8IFwiYXJyb3ctcmlnaHRcIjtcbn07XG5cbmV4cG9ydCB0eXBlIFByb21wdElucHV0UHJvcHMgPSB7XG4gIFwiZGF0YS1lMmUtdGVzdC1pZFwiPzogc3RyaW5nO1xuICAvKiogVG9vbGJhciBlbGVtZW50cyBiZWxvdyB0ZXh0IGFyZWEgKi9cbiAgYm90dG9tVG9vbGJhcj86IHtcbiAgICBsZWZ0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgICByaWdodENvbnRlbnQ/OiBSZWFjdEVsZW1lbnQ7XG4gIH07XG4gIC8qKiBDdXJyZW50bHkgc2hvd3Mgc2VuZCBidXR0b24gcHJvY2Vzc2luZyBzdGF0ZSAgKi9cbiAgaXNQcm9jZXNzaW5nPzogYm9vbGVhbjtcbiAgc2VuZEJ1dHRvblByb3BzPzogU2VuZEJ1dHRvblByb3BzO1xuICBjbGVhckJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgaGludD86IFJlYWN0RWxlbWVudDtcbiAgLyoqIFNob3dzIGluIHRoZSBjbGVhciBidXR0b24gc3BhY2UgaW4gZW1wdHkgc3RhdGUgKi9cbiAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgb25DbGVhcjogKCkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCB3aGVuIHVzZXIgc2VsZWN0cyAob3IgcmVqZWN0cykgYSBsaXN0IGl0ZW0gZnJvbSBhdXRvY29tcGxldGUgbGlzdCAqL1xuICBvbkNvbXBsZXRlPzogKHtcbiAgICB2YWx1ZSxcbiAgICBjYXRlZ29yeSxcbiAgICBldnQsXG4gICAgaW5kZXgsXG4gIH06IHtcbiAgICB2YWx1ZTogTGlzdEl0ZW1WYWx1ZTtcbiAgICBjYXRlZ29yeT86IHN0cmluZztcbiAgICBldnQ/OiBTeW50aGV0aWNFdmVudDtcbiAgICBpbmRleD86IG51bWJlcjtcbiAgfSkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCBvbiBFbnRlciBrZXkgdG8gc3VibWl0IHRoZSBmb3JtICAqL1xuICBvbkVudGVyS2V5OiAoKSA9PiB2b2lkO1xufSAmIE9taXQ8XG4gIFByb21wdFRleHRBcmVhUHJvcHMsXG4gIFwiaXNDb2xsYXBzZWRcIiB8IFwiaXNBdXRvY29tcGxldGVMaXN0T3BlblwiIHwgXCJzZWxlY3RlZExpc3RJdGVtXCJcbj4gJlxuICBQaWNrPFxuICAgIEF1dG9jb21wbGV0ZUxpc3RQcm9wcyxcbiAgICBcImF1dG9jb21wbGV0ZUxpc3RJdGVtc1wiIHwgXCJhdXRvY29tcGxldGVMaXN0Rm9vdGVyXCIgfCBcInBvcnRhbENvbnRhaW5lclwiXG4gID47XG5cbmNvbnN0IGRlZmF1bHRTZW5kQnV0dG9uUHJvcHM6IFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgdHlwZTogXCJzdWJtaXRcIiBhcyBjb25zdCxcbiAgaWNvbjogXCJhcnJvdy11cFwiIGFzIGNvbnN0LFxufTtcblxuY29uc3QgUHJvbXB0SW5wdXRDb21wb25lbnQgPSBmb3J3YXJkUmVmKFxuICAoXG4gICAge1xuICAgICAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG4gICAgICBuYW1lLFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zID0gW10sXG4gICAgICB2YWx1ZSxcbiAgICAgIGJvdHRvbVRvb2xiYXIgPSB7IGxlZnRDb250ZW50OiBudWxsLCByaWdodENvbnRlbnQ6IG51bGwgfSxcbiAgICAgIGlzUHJvY2Vzc2luZyxcbiAgICAgIHNlbmRCdXR0b25Qcm9wcyA9IHt9LFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEZvb3RlcixcbiAgICAgIGNsZWFyQnV0dG9uQXJpYUxhYmVsID0gXCJDbGVhciBpbnB1dFwiLFxuICAgICAgaGludCxcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnQsXG4gICAgICBpc05hdkJhclZhcmlhbnQsXG4gICAgICBwb3J0YWxDb250YWluZXIsXG4gICAgICBvbkNoYW5nZSxcbiAgICAgIG9uQ29tcGxldGUsXG4gICAgICBvbkNsZWFyLFxuICAgICAgb25FbnRlcktleSxcbiAgICAgIG9uRm9jdXMsXG4gICAgICBvbkJsdXIsXG4gICAgICBvbktleURvd24sXG4gICAgICAuLi5yZXN0XG4gICAgfTogUHJvbXB0SW5wdXRQcm9wcyxcbiAgICByZWY6IFJlZk9iamVjdDxIVE1MVGV4dEFyZWFFbGVtZW50PlxuICApOiBSZWFjdEVsZW1lbnQgPT4ge1xuICAgIGNvbnN0IGNvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgdGV4dEFyZWFDb250YWluZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IGludGVybmFsUmVmID0gdXNlUmVmPEhUTUxUZXh0QXJlYUVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IFtzZWxlY3RlZEluZGV4LCBzZXRTZWxlY3RlZEluZGV4XSA9IHVzZVN0YXRlKC0xKTtcbiAgICBjb25zdCBbaXNDb2xsYXBzZWQsIHNldElzQ29sbGFwc2VkXSA9IHVzZVN0YXRlKGlzTmF2QmFyVmFyaWFudCk7XG4gICAgY29uc3QgdXNlclR5cGVkUXVlcnkgPSB1c2VSZWYoXCJcIik7XG4gICAgY29uc3QgW2lzQXV0b2NvbXBsZXRlTGlzdE9wZW4sIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IHRleHRBcmVhUmVmID0gcmVmIHx8IGludGVybmFsUmVmO1xuXG4gICAgY29uc3QgbWVyZ2VkU2VuZEJ1dHRvblByb3BzID0ge1xuICAgICAgLi4uZGVmYXVsdFNlbmRCdXR0b25Qcm9wcyxcbiAgICAgIC4uLnNlbmRCdXR0b25Qcm9wcyxcbiAgICB9O1xuXG4gICAgdXNlT3V0c2lkZUNsaWNrKFxuICAgICAgY29udGFpbmVyUmVmLFxuICAgICAgKGV2dCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgIWNvbnRhaW5lclJlZi5jdXJyZW50LmNvbnRhaW5zKGV2dC50YXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICAhcG9ydGFsQ29udGFpbmVyPy5jb250YWlucyhldnQudGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgZXZ0LnRhcmdldCAhPT0gbnVsbFxuICAgICAgICApIHtcbiAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgICFpc0NvbGxhcHNlZCAmJiBpc05hdkJhclZhcmlhbnRcbiAgICApO1xuXG4gICAgY29uc3QgY2xvc2VBdXRvY29tcGxldGVMaXN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgc2V0SXNBdXRvY29tcGxldGVMaXN0T3BlbihmYWxzZSk7XG4gICAgICBzZXRTZWxlY3RlZEluZGV4KC0xKTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBvcGVuQXV0b2NvbXBsZXRlTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmIChhdXRvY29tcGxldGVMaXN0SXRlbXMubGVuZ3RoKSB7XG4gICAgICAgIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW4odHJ1ZSk7XG4gICAgICAgIHNldFNlbGVjdGVkSW5kZXgoLTEpO1xuICAgICAgfVxuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXNdKTtcblxuICAgIGNvbnN0IGFjY2VwdFRleHRTZWxlY3Rpb24gPSAoKSA9PiB7XG4gICAgICB1c2VyVHlwZWRRdWVyeS5jdXJyZW50ID0gdmFsdWU7XG4gICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKHZhbHVlLmxlbmd0aCwgdmFsdWUubGVuZ3RoKTtcbiAgICB9O1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChhdXRvY29tcGxldGVMaXN0SXRlbXMubGVuZ3RoICYmICFpc0NvbGxhcHNlZCkge1xuICAgICAgICBvcGVuQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICB9XG4gICAgfSwgW1xuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLFxuICAgICAgb3BlbkF1dG9jb21wbGV0ZUxpc3QsXG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QsXG4gICAgICBpc0NvbGxhcHNlZCxcbiAgICBdKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodmFsdWUgJiYgdmFsdWUgIT09IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgJiYgaXNBdXRvY29tcGxldGVMaXN0T3Blbikge1xuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKFxuICAgICAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQubGVuZ3RoLFxuICAgICAgICAgIHZhbHVlLmxlbmd0aFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sIFt2YWx1ZSwgdGV4dEFyZWFSZWYsIGlzQXV0b2NvbXBsZXRlTGlzdE9wZW5dKTtcblxuICAgIC8vIERldGVybWluZSB3aGVuIGZvY3VzIGxlYXZlcyB0aGUgY29udGFpbmVyIHRvIGNvbGxhcHNlIGl0XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGxldCBoYW5kbGVyOiAoZXZ0OiBGb2N1c0V2ZW50KSA9PiB2b2lkO1xuICAgICAgY29uc3QgY29udGFpbmVyID0gY29udGFpbmVyUmVmLmN1cnJlbnQ7XG5cbiAgICAgIGlmIChpc05hdkJhclZhcmlhbnQgJiYgY29udGFpbmVyKSB7XG4gICAgICAgIGhhbmRsZXIgPSAoZXZ0OiBGb2N1c0V2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgIWNvbnRhaW5lclJlZi5jdXJyZW50LmNvbnRhaW5zKGV2dC5yZWxhdGVkVGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgICAhcG9ydGFsQ29udGFpbmVyPy5jb250YWlucyhldnQucmVsYXRlZFRhcmdldCBhcyBOb2RlKSAmJlxuICAgICAgICAgICAgZXZ0LnJlbGF0ZWRUYXJnZXQgIT09IG51bGxcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJmb2N1c291dFwiLCBoYW5kbGVyKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgaWYgKGNvbnRhaW5lcikge1xuICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwiZm9jdXNvdXRcIiwgaGFuZGxlcik7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfSwgW2lzTmF2QmFyVmFyaWFudCwgY29udGFpbmVyUmVmLCBwb3J0YWxDb250YWluZXJdKTtcblxuICAgIGNvbnN0IGZsYXR0ZW5lZExpc3RJdGVtcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgY29uc3QgbGlzdDogRmxhdHRlbmVkTGlzdEl0ZW1bXSA9IFtdO1xuXG4gICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXMuZm9yRWFjaCgobGlzdEl0ZW0pID0+IHtcbiAgICAgICAgbGlzdEl0ZW0uaXRlbXMuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICBsaXN0LnB1c2goe1xuICAgICAgICAgICAgY2F0ZWdvcnk6IGxpc3RJdGVtLmNhdGVnb3J5LFxuICAgICAgICAgICAgaW5kZXhJbkNhdGVnb3J5OiBpbmRleCxcbiAgICAgICAgICAgIHZhbHVlOiBpdGVtLnZhbHVlLFxuICAgICAgICAgICAgaWQ6IGdldExpc3RJdGVtSWQobmFtZSwgbGlzdEl0ZW0uY2F0ZWdvcnksIGluZGV4KSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBsaXN0O1xuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXMsIG5hbWVdKTtcblxuICAgIGNvbnN0IGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2UgPSAoaW5kZXg6IG51bWJlciwgZXZ0PzogU3ludGhldGljRXZlbnQpID0+IHtcbiAgICAgIHNldFNlbGVjdGVkSW5kZXgoaW5kZXgpO1xuICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICBjb25zdCB7IGNhdGVnb3J5LCB2YWx1ZTogaXRlbVZhbHVlIH0gPSBmbGF0dGVuZWRMaXN0SXRlbXNbaW5kZXhdO1xuXG4gICAgICAgIG9uQ29tcGxldGUoeyB2YWx1ZTogaXRlbVZhbHVlLCBjYXRlZ29yeSwgZXZ0LCBpbmRleCB9KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlTGlzdEl0ZW1DbGljayA9IChcbiAgICAgIGNhdGVnb3J5OiBzdHJpbmcsXG4gICAgICBpbmRleEluQ2F0ZWdvcnk6IG51bWJlcixcbiAgICAgIGV2dD86IE1vdXNlRXZlbnRcbiAgICApID0+IHtcbiAgICAgIGNvbnN0IGluZGV4ID0gZmxhdHRlbmVkTGlzdEl0ZW1zLmZpbmRJbmRleChcbiAgICAgICAgKGxpc3RJdGVtKSA9PlxuICAgICAgICAgIGxpc3RJdGVtLmNhdGVnb3J5ID09PSBjYXRlZ29yeSAmJlxuICAgICAgICAgIGxpc3RJdGVtLmluZGV4SW5DYXRlZ29yeSA9PT0gaW5kZXhJbkNhdGVnb3J5XG4gICAgICApO1xuXG4gICAgICBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlKGluZGV4LCBldnQpO1xuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVLZXlEb3duOiBLZXlib2FyZEV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIGlmIChpc0F1dG9jb21wbGV0ZUxpc3RPcGVuKSB7XG4gICAgICAgIHN3aXRjaCAoZXZ0LmtleSkge1xuICAgICAgICAgIGNhc2UgXCJFc2NhcGVcIjpcbiAgICAgICAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgICAgICAgb25Db21wbGV0ZSh7IHZhbHVlOiB1c2VyVHlwZWRRdWVyeS5jdXJyZW50LCBldnQgfSk7XG4gICAgICAgICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkVudGVyXCI6XG4gICAgICAgICAgICBpZiAoIWV2dC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICAgICAgICAgIGFjY2VwdFRleHRTZWxlY3Rpb24oKTtcblxuICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBvbkVudGVyS2V5Py4oKTtcbiAgICAgICAgICAgICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgICAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCIgXCI6XG4gICAgICAgICAgICBhY2NlcHRUZXh0U2VsZWN0aW9uKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiQXJyb3dVcFwiOlxuICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRJbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgIGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2Uoc2VsZWN0ZWRJbmRleCAtIDEsIGV2dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiQXJyb3dEb3duXCI6XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEluZGV4IDwgZmxhdHRlbmVkTGlzdEl0ZW1zLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZShzZWxlY3RlZEluZGV4ICsgMSwgZXZ0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN3aXRjaCAoZXZ0LmtleSkge1xuICAgICAgICAgIGNhc2UgXCJFc2NhcGVcIjpcbiAgICAgICAgICAgIG9uQ2xlYXI/LigpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkVudGVyXCI6XG4gICAgICAgICAgICBpZiAoIWV2dC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgb25FbnRlcktleT8uKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBvbktleURvd24/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVDaGFuZ2U6IENoYW5nZUV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgPSBldnQudGFyZ2V0LnZhbHVlO1xuICAgICAgb25DaGFuZ2UoZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlRm9jdXM6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgc2V0SXNDb2xsYXBzZWQoZmFsc2UpO1xuICAgICAgb25Gb2N1cz8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUJsdXI6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgaWYgKHZhbHVlICE9PSB1c2VyVHlwZWRRdWVyeS5jdXJyZW50KSB7XG4gICAgICAgIG9uQ29tcGxldGU/Lih7IHZhbHVlOiB1c2VyVHlwZWRRdWVyeS5jdXJyZW50LCBldnQgfSk7XG4gICAgICB9XG4gICAgICBvbkJsdXI/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVTZW5kQnV0dG9uQ2xpY2sgPSAoZXZ0OiBNb3VzZUV2ZW50PEhUTUxCdXR0b25FbGVtZW50PikgPT4ge1xuICAgICAgbWVyZ2VkU2VuZEJ1dHRvblByb3BzLm9uQ2xpY2s/LihldnQpO1xuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVQcmV2ZW50Rm9jdXMgPSAoZXZ0OiBSZWFjdC5Qb2ludGVyRXZlbnQpID0+IHtcbiAgICAgIC8vIFByZXZlbnQgdGhlIHRleHRhcmVhIGZyb20gYmVpbmcgdW5mb2N1c2VkXG4gICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlT25Db250YWluZXJQb2ludGVyRG93biA9IChldnQ6IFJlYWN0LlBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgLy8gRm9jdXMgdGV4dGFyZWEgd2hlbiBjbGlja2luZyBvbiB0aGUgY29udGFpbmVyIG9ubHlcbiAgICAgIGlmIChldnQudGFyZ2V0ID09PSBldnQuY3VycmVudFRhcmdldCkge1xuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3Qgc2VsZWN0ZWRMaXN0SXRlbSA9XG4gICAgICBzZWxlY3RlZEluZGV4ICE9PSAtMSA/IGZsYXR0ZW5lZExpc3RJdGVtc1tzZWxlY3RlZEluZGV4XSA6IG51bGw7XG5cbiAgICBjb25zdCBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50RWxtID0gZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudCA/IChcbiAgICAgIDxTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyXG4gICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgPlxuICAgICAgICA8VGV4dCBjb2xvcj1cInRlcnRpYXJ5XCI+e2VtcHR5U3RhdGVUb3BSaWdodENvbnRlbnR9PC9UZXh0PlxuICAgICAgPC9TdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyPlxuICAgICkgOiBudWxsO1xuXG4gICAgY29uc3QgY2xlYXJCdXR0b25FbG0gPSB2YWx1ZSA/IChcbiAgICAgIDxTdHlsZWRDbGVhckJ1dHRvblxuICAgICAgICBzaXplPVwic1wiXG4gICAgICAgIGljb249XCJ4LWNpcmNsZS1maWxsZWRcIlxuICAgICAgICBhcmlhLWxhYmVsPXtjbGVhckJ1dHRvbkFyaWFMYWJlbH1cbiAgICAgICAgaXNOYXZCYXJWYXJpYW50PXtpc05hdkJhclZhcmlhbnR9XG4gICAgICAgIG9uUG9pbnRlckRvd249e2hhbmRsZVByZXZlbnRGb2N1c31cbiAgICAgICAgb25DbGljaz17b25DbGVhcn1cbiAgICAgIC8+XG4gICAgKSA6IChcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRFbG1cbiAgICApO1xuXG4gICAgY29uc3QgaGludEVsbSA9ICEhaGludCAmJiAoXG4gICAgICA8SW5saW5lIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgPFRleHQgc2l6ZT1cInNcIiBjb2xvcj1cInRlcnRpYXJ5XCI+XG4gICAgICAgICAge2hpbnR9XG4gICAgICAgIDwvVGV4dD5cbiAgICAgIDwvSW5saW5lPlxuICAgICk7XG5cbiAgICBjb25zdCBib3R0b21Ub29sYmFyRWxtID0gIWlzQ29sbGFwc2VkICYmIChcbiAgICAgIDw+XG4gICAgICAgIDxTdHlsZWRTbG90IHBvc2l0aW9uPVwibGVmdFwiPntib3R0b21Ub29sYmFyLmxlZnRDb250ZW50fTwvU3R5bGVkU2xvdD5cbiAgICAgICAgPFN0eWxlZFNsb3QgcG9zaXRpb249XCJyaWdodFwiIGRhdGEtZTJlLXRlc3QtaWQ9XCJib3R0b21Ub29sYmFyXCI+XG4gICAgICAgICAgPElubGluZSBzcGFjZT1cInhzXCIgdkFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgIHtib3R0b21Ub29sYmFyLnJpZ2h0Q29udGVudH1cbiAgICAgICAgICAgIDxSb3VuZEJ1dHRvblxuICAgICAgICAgICAgICBhcmlhQXR0cmlidXRlcz17e1xuICAgICAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiBpc1Byb2Nlc3NpbmdcbiAgICAgICAgICAgICAgICAgID8gXCJQcm9jZXNzaW5nIHF1ZXJ5XCJcbiAgICAgICAgICAgICAgICAgIDogXCJTdWJtaXQgcXVlcnlcIixcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgey4uLm1lcmdlZFNlbmRCdXR0b25Qcm9wc31cbiAgICAgICAgICAgICAgZGlzYWJsZWQ9eyF2YWx1ZSB8fCBtZXJnZWRTZW5kQnV0dG9uUHJvcHMuZGlzYWJsZWR9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVNlbmRCdXR0b25DbGlja31cbiAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlUHJldmVudEZvY3VzfVxuICAgICAgICAgICAgICB2YXJpYW50PVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgIGljb249e2lzUHJvY2Vzc2luZyA/IFwic3RvcC1maWxsZWRcIiA6IG1lcmdlZFNlbmRCdXR0b25Qcm9wcy5pY29ufVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0lubGluZT5cbiAgICAgICAgPC9TdHlsZWRTbG90PlxuICAgICAgICA8U3R5bGVkQ2xlYXIgLz5cbiAgICAgIDwvPlxuICAgICk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGRhdGEtZTJlLXRlc3QtaWQ9e2RhdGFFMmVUZXN0SWR9XG4gICAgICAgICAgZGF0YS1kcy1pZD1cIlByb21wdElucHV0XCJcbiAgICAgICAgICByZWY9e2NvbnRhaW5lclJlZn1cbiAgICAgICAgICAvLyBUcmFuc2xhdGlvbiBkaXNhYmxlZCBmb3IgY29uc2lzdGVuY3kgd2l0aCB0aGUgYXV0b2NvbXBsZXRlIGxpc3RcbiAgICAgICAgICB0cmFuc2xhdGU9XCJub1wiXG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2sgc3BhY2U9XCJzXCI+XG4gICAgICAgICAgICA8Q3VzdG9tQ29udGFpbmVyXG4gICAgICAgICAgICAgIGVsZXZhdGlvbj17MH1cbiAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPXtpc0NvbGxhcHNlZCA/IFwieHNcIiA6IFwibVwifVxuICAgICAgICAgICAgICBoaWRlQm9yZGVyPXtpc0NvbGxhcHNlZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlT25Db250YWluZXJQb2ludGVyRG93bn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTdHlsZWRUZXh0QXJlYUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIDxQcm9tcHRUZXh0QXJlYVxuICAgICAgICAgICAgICAgICAgICB7Li4ucmVzdH1cbiAgICAgICAgICAgICAgICAgICAgZGF0YUUyZVRlc3RJZD17XG4gICAgICAgICAgICAgICAgICAgICAgZGF0YUUyZVRlc3RJZCA/IGAke2RhdGFFMmVUZXN0SWR9LWlucHV0YCA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgcmVmPXt0ZXh0QXJlYVJlZn1cbiAgICAgICAgICAgICAgICAgICAgaXNOYXZCYXJWYXJpYW50PXtpc05hdkJhclZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkTGlzdEl0ZW09e3NlbGVjdGVkTGlzdEl0ZW19XG4gICAgICAgICAgICAgICAgICAgIGlzQXV0b2NvbXBsZXRlTGlzdE9wZW49e2lzQXV0b2NvbXBsZXRlTGlzdE9wZW59XG4gICAgICAgICAgICAgICAgICAgIGlzQ29sbGFwc2VkPXtpc0NvbGxhcHNlZH1cbiAgICAgICAgICAgICAgICAgICAgb25Gb2N1cz17aGFuZGxlRm9jdXN9XG4gICAgICAgICAgICAgICAgICAgIG9uQmx1cj17aGFuZGxlQmx1cn1cbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUNoYW5nZX1cbiAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXtoYW5kbGVLZXlEb3dufVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIHtjbGVhckJ1dHRvbkVsbX1cbiAgICAgICAgICAgICAgICA8L1N0eWxlZFRleHRBcmVhQ29udGFpbmVyPlxuICAgICAgICAgICAgICAgIHtib3R0b21Ub29sYmFyRWxtfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvQ3VzdG9tQ29udGFpbmVyPlxuICAgICAgICAgICAge2hpbnRFbG19XG4gICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPEF1dG9jb21wbGV0ZUxpc3RcbiAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXM9e2F1dG9jb21wbGV0ZUxpc3RJdGVtc31cbiAgICAgICAgICB0cmlnZ2VyUmVmPXt0ZXh0QXJlYUNvbnRhaW5lclJlZn1cbiAgICAgICAgICBzZWxlY3RlZExpc3RJdGVtPXtzZWxlY3RlZExpc3RJdGVtfVxuICAgICAgICAgIGlzT3Blbj17aXNBdXRvY29tcGxldGVMaXN0T3Blbn1cbiAgICAgICAgICBhdXRvY29tcGxldGVMaXN0Rm9vdGVyPXthdXRvY29tcGxldGVMaXN0Rm9vdGVyfVxuICAgICAgICAgIHBvcnRhbENvbnRhaW5lcj17cG9ydGFsQ29udGFpbmVyfVxuICAgICAgICAgIG9uTGlzdEl0ZW1DbGljaz17aGFuZGxlTGlzdEl0ZW1DbGlja31cbiAgICAgICAgLz5cbiAgICAgIDwvPlxuICAgICk7XG4gIH1cbik7XG5cbmNvbnN0IEN1c3RvbUJ1dHRvbiA9IHN0eWxlZChCdXR0b24pKCh7IHRoZW1lIH0pID0+ICh7XG4gIGJvcmRlclJhZGl1czogdGhlbWUudmFyaWFibGVzLnNpemUuYm9yZGVyUmFkaXVzLmwsXG59KSk7XG5cbi8vIG5lZWQgdG8gc2ltcGxpZnkgdGhpcyB0eXBlIGZvciByZXVzZVxuY29uc3QgU3VnZ2VzdGlvbkJ1dHRvbiA9IGZvcndhcmRSZWYoXG4gIDxDIGV4dGVuZHMgUmVhY3QuRWxlbWVudFR5cGUgPSBcImJ1dHRvblwiPihcbiAgICBwcm9wczogUG9seW1vcnBoaWNDb21wb25lbnRQcm9wc1dpdGhSZWY8XG4gICAgICBDLFxuICAgICAgT21pdDxCdXR0b25Qcm9wcywgXCJ2YXJpYW50XCIgfCBcInNpemVcIiB8IFwicmVmXCI+XG4gICAgPixcbiAgICByZWY6IFBvbHltb3JwaGljUmVmPEM+XG4gICkgPT4gPEN1c3RvbUJ1dHRvbiB7Li4ucHJvcHN9IHZhcmlhbnQ9XCJzZWNvbmRhcnlcIiBzaXplPVwic1wiIHJlZj17cmVmfSAvPlxuKTtcblxuZXhwb3J0IGNvbnN0IFByb21wdElucHV0ID0gT2JqZWN0LmFzc2lnbihQcm9tcHRJbnB1dENvbXBvbmVudCwge1xuICBTdWdnZXN0aW9uQnV0dG9uLFxufSkgYXMgdHlwZW9mIFByb21wdElucHV0Q29tcG9uZW50ICYge1xuICBTdWdnZXN0aW9uQnV0dG9uOiB0eXBlb2YgU3VnZ2VzdGlvbkJ1dHRvbjtcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBMkVFIn0= */"),StyledClearButton=(0,_styled.default)(_PictogramButton.PictogramButton,{target:"e1gnreap3",label:"StyledClearButton"})(({theme,isNavBarVariant})=>({position:"absolute",right:theme.variables.size.spacing.s,top:isNavBarVariant?0:theme.variables.size.spacing.s}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUHJvbXB0SW5wdXQvUHJvbXB0SW5wdXQudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Qcm9tcHRJbnB1dC9Qcm9tcHRJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBSZWFjdEVsZW1lbnQsXG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlZk9iamVjdCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIFN5bnRoZXRpY0V2ZW50LFxuICBNb3VzZUV2ZW50LFxufSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZVJlZixcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG4gIGZvcndhcmRSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgdHlwZSB7IFByb21wdFRleHRBcmVhUHJvcHMgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHsgUHJvbXB0VGV4dEFyZWEgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHsgQ29udGFpbmVyIH0gZnJvbSBcIi4uL0NvbnRhaW5lclwiO1xuaW1wb3J0IHR5cGUgeyBBdXRvY29tcGxldGVMaXN0UHJvcHMgfSBmcm9tIFwiLi9BdXRvY29tcGxldGVMaXN0XCI7XG5pbXBvcnQgeyBBdXRvY29tcGxldGVMaXN0IH0gZnJvbSBcIi4vQXV0b2NvbXBsZXRlTGlzdFwiO1xuaW1wb3J0IHtcbiAgZ2V0TGlzdEl0ZW1JZCxcbiAgdHlwZSBGbGF0dGVuZWRMaXN0SXRlbSxcbiAgdHlwZSBMaXN0SXRlbVZhbHVlLFxufSBmcm9tIFwiLi9DYXRlZ29yeUxpc3RcIjtcbmltcG9ydCB7IFRleHQgfSBmcm9tIFwiLi4vVHlwb2dyYXBoeS9UZXh0XCI7XG5pbXBvcnQgeyBCdXR0b24sIHR5cGUgQnV0dG9uUHJvcHMgfSBmcm9tIFwiLi4vQnV0dG9uL0J1dHRvblwiO1xuaW1wb3J0IHR5cGUge1xuICBQb2x5bW9ycGhpY1JlZixcbiAgUG9seW1vcnBoaWNDb21wb25lbnRQcm9wc1dpdGhSZWYsXG59IGZyb20gXCIuLi8uLi90eXBlc1wiO1xuaW1wb3J0IHsgSW5saW5lIH0gZnJvbSBcIi4uL0lubGluZS9JbmxpbmVcIjtcbmltcG9ydCB0eXBlIHsgUm91bmRCdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9Sb3VuZEJ1dHRvbi9Sb3VuZEJ1dHRvblwiO1xuaW1wb3J0IHsgUm91bmRCdXR0b24gfSBmcm9tIFwiLi4vUm91bmRCdXR0b24vUm91bmRCdXR0b25cIjtcbmltcG9ydCB0eXBlIHsgUGljdG9ncmFtQnV0dG9uUHJvcHMgfSBmcm9tIFwiLi4vUGljdG9ncmFtQnV0dG9uL1BpY3RvZ3JhbUJ1dHRvblwiO1xuaW1wb3J0IHsgUGljdG9ncmFtQnV0dG9uIH0gZnJvbSBcIi4uL1BpY3RvZ3JhbUJ1dHRvbi9QaWN0b2dyYW1CdXR0b25cIjtcbmltcG9ydCB7IFN0YWNrIH0gZnJvbSBcIi4uL1N0YWNrL1N0YWNrXCI7XG5pbXBvcnQgeyB1c2VPdXRzaWRlQ2xpY2sgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL3VzZU91dHNpZGVDbGlja1wiO1xuXG5jb25zdCBDdXN0b21Db250YWluZXIgPSBzdHlsZWQoQ29udGFpbmVyKTx7IGhpZGVCb3JkZXI6IGJvb2xlYW4gfT4oXG4gICh7IHRoZW1lLCBoaWRlQm9yZGVyIH0pID0+ICh7XG4gICAgYm9yZGVyOiBgMXB4IHNvbGlkICR7dGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5wcmltYXJ5LmRlZmF1bHR9YCxcbiAgICAuLi4oaGlkZUJvcmRlciAmJiB7XG4gICAgICBib3JkZXJDb2xvcjogXCJ0cmFuc3BhcmVudFwiLFxuICAgIH0pLFxuICAgIGN1cnNvcjogXCJ0ZXh0XCIsXG4gICAgW2AmOmhhcyh0ZXh0YXJlYTpmb2N1cy12aXNpYmxlKWBdOiB7XG4gICAgICBvdXRsaW5lV2lkdGg6IDEsXG4gICAgICBvdXRsaW5lU3R5bGU6IFwic29saWRcIixcbiAgICAgIG91dGxpbmVPZmZzZXQ6IC0xLFxuICAgICAgb3V0bGluZUNvbG9yOiB0aGVtZS52YWx1ZXMuY29sb3IuYm9yZGVyLmFjY2VudC5kZWZhdWx0LFxuICAgICAgYm94U2hhZG93OiB0aGVtZS52YWx1ZXMuc2hhZG93LmZvY3VzUmluZyxcblxuICAgICAgXCJAbWVkaWEgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzowKVwiOiB7XG4gICAgICAgIG91dGxpbmVDb2xvcjogdGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5hY2NlbnQuZGVmYXVsdCxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZFRleHRBcmVhQ29udGFpbmVyID0gc3R5bGVkLmRpdih7XG4gIGJvcmRlclJhZGl1czogXCJpbmhlcml0XCIsXG4gIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG59KTtcblxudHlwZSBTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyUHJvcHMgPSBQaWNrPFxuICBQcm9tcHRJbnB1dFByb3BzLFxuICBcImlzTmF2QmFyVmFyaWFudFwiXG4+O1xuXG5jb25zdCBTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyID1cbiAgc3R5bGVkLmRpdjxTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyUHJvcHM+KFxuICAgICh7IHRoZW1lLCBpc05hdkJhclZhcmlhbnQgfSkgPT4gKHtcbiAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICB0b3A6IGlzTmF2QmFyVmFyaWFudFxuICAgICAgICA/IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHhzXG4gICAgICAgIDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5tLFxuICAgICAgcmlnaHQ6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubSxcbiAgICAgIHVzZXJTZWxlY3Q6IFwibm9uZVwiLFxuICAgICAgcG9pbnRlckV2ZW50czogXCJub25lXCIsXG4gICAgfSlcbiAgKTtcblxudHlwZSBTdHlsZWRDbGVhckJ1dHRvblByb3BzID0gUGljdG9ncmFtQnV0dG9uUHJvcHMgJlxuICBQaWNrPFByb21wdElucHV0UHJvcHMsIFwiaXNOYXZCYXJWYXJpYW50XCI+O1xuXG5jb25zdCBTdHlsZWRDbGVhckJ1dHRvbiA9IHN0eWxlZChQaWN0b2dyYW1CdXR0b24pPFN0eWxlZENsZWFyQnV0dG9uUHJvcHM+KFxuICAoeyB0aGVtZSwgaXNOYXZCYXJWYXJpYW50IH0pID0+ICh7XG4gICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICByaWdodDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zLFxuICAgIHRvcDogaXNOYXZCYXJWYXJpYW50ID8gMCA6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcucyxcbiAgfSlcbik7XG5cbi8vIFVzaW5nIGZsb2F0IGluIG9yZGVyIHRvIGF2b2lkIHRoZSBpbnZpc2libGUgYXJlYSBiZXR3ZWVuIHRoZSBzbG90c1xuLy8gdGhhdCBwcmV2ZW50cyB0aGUgdGV4dGFyZWEgZnJvbSBiZWluZyBmb2N1c2VkXG5jb25zdCBTdHlsZWRTbG90ID0gc3R5bGVkLmRpdjx7IHBvc2l0aW9uOiBcImxlZnRcIiB8IFwicmlnaHRcIiB9PihcbiAgKHsgcG9zaXRpb24sIHRoZW1lIH0pID0+ICh7XG4gICAgZmxvYXQ6IHBvc2l0aW9uLFxuICAgIG1hcmdpbjogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5tLFxuICAgIGN1cnNvcjogXCJkZWZhdWx0XCIsXG4gIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRDbGVhciA9IHN0eWxlZC5kaXYoe1xuICBjbGVhcjogXCJib3RoXCIsXG59KTtcblxudHlwZSBTZW5kQnV0dG9uUHJvcHMgPSBPbWl0PFJvdW5kQnV0dG9uUHJvcHMsIFwiaWNvblwiIHwgXCJ2YXJpYW50XCI+ICYge1xuICBpY29uPzogXCJhcnJvdy11cFwiIHwgXCJzZWFyY2hcIiB8IFwiYXJyb3ctcmlnaHRcIjtcbn07XG5cbmV4cG9ydCB0eXBlIFByb21wdElucHV0UHJvcHMgPSB7XG4gIFwiZGF0YS1lMmUtdGVzdC1pZFwiPzogc3RyaW5nO1xuICAvKiogVG9vbGJhciBlbGVtZW50cyBiZWxvdyB0ZXh0IGFyZWEgKi9cbiAgYm90dG9tVG9vbGJhcj86IHtcbiAgICBsZWZ0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgICByaWdodENvbnRlbnQ/OiBSZWFjdEVsZW1lbnQ7XG4gIH07XG4gIC8qKiBDdXJyZW50bHkgc2hvd3Mgc2VuZCBidXR0b24gcHJvY2Vzc2luZyBzdGF0ZSAgKi9cbiAgaXNQcm9jZXNzaW5nPzogYm9vbGVhbjtcbiAgc2VuZEJ1dHRvblByb3BzPzogU2VuZEJ1dHRvblByb3BzO1xuICBjbGVhckJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgaGludD86IFJlYWN0RWxlbWVudDtcbiAgLyoqIFNob3dzIGluIHRoZSBjbGVhciBidXR0b24gc3BhY2UgaW4gZW1wdHkgc3RhdGUgKi9cbiAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgb25DbGVhcjogKCkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCB3aGVuIHVzZXIgc2VsZWN0cyAob3IgcmVqZWN0cykgYSBsaXN0IGl0ZW0gZnJvbSBhdXRvY29tcGxldGUgbGlzdCAqL1xuICBvbkNvbXBsZXRlPzogKHtcbiAgICB2YWx1ZSxcbiAgICBjYXRlZ29yeSxcbiAgICBldnQsXG4gICAgaW5kZXgsXG4gIH06IHtcbiAgICB2YWx1ZTogTGlzdEl0ZW1WYWx1ZTtcbiAgICBjYXRlZ29yeT86IHN0cmluZztcbiAgICBldnQ/OiBTeW50aGV0aWNFdmVudDtcbiAgICBpbmRleD86IG51bWJlcjtcbiAgfSkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCBvbiBFbnRlciBrZXkgdG8gc3VibWl0IHRoZSBmb3JtICAqL1xuICBvbkVudGVyS2V5OiAoKSA9PiB2b2lkO1xufSAmIE9taXQ8XG4gIFByb21wdFRleHRBcmVhUHJvcHMsXG4gIFwiaXNDb2xsYXBzZWRcIiB8IFwiaXNBdXRvY29tcGxldGVMaXN0T3BlblwiIHwgXCJzZWxlY3RlZExpc3RJdGVtXCJcbj4gJlxuICBQaWNrPFxuICAgIEF1dG9jb21wbGV0ZUxpc3RQcm9wcyxcbiAgICBcImF1dG9jb21wbGV0ZUxpc3RJdGVtc1wiIHwgXCJhdXRvY29tcGxldGVMaXN0Rm9vdGVyXCIgfCBcInBvcnRhbENvbnRhaW5lclwiXG4gID47XG5cbmNvbnN0IGRlZmF1bHRTZW5kQnV0dG9uUHJvcHM6IFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgdHlwZTogXCJzdWJtaXRcIiBhcyBjb25zdCxcbiAgaWNvbjogXCJhcnJvdy11cFwiIGFzIGNvbnN0LFxufTtcblxuY29uc3QgUHJvbXB0SW5wdXRDb21wb25lbnQgPSBmb3J3YXJkUmVmKFxuICAoXG4gICAge1xuICAgICAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG4gICAgICBuYW1lLFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zID0gW10sXG4gICAgICB2YWx1ZSxcbiAgICAgIGJvdHRvbVRvb2xiYXIgPSB7IGxlZnRDb250ZW50OiBudWxsLCByaWdodENvbnRlbnQ6IG51bGwgfSxcbiAgICAgIGlzUHJvY2Vzc2luZyxcbiAgICAgIHNlbmRCdXR0b25Qcm9wcyA9IHt9LFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEZvb3RlcixcbiAgICAgIGNsZWFyQnV0dG9uQXJpYUxhYmVsID0gXCJDbGVhciBpbnB1dFwiLFxuICAgICAgaGludCxcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnQsXG4gICAgICBpc05hdkJhclZhcmlhbnQsXG4gICAgICBwb3J0YWxDb250YWluZXIsXG4gICAgICBvbkNoYW5nZSxcbiAgICAgIG9uQ29tcGxldGUsXG4gICAgICBvbkNsZWFyLFxuICAgICAgb25FbnRlcktleSxcbiAgICAgIG9uRm9jdXMsXG4gICAgICBvbkJsdXIsXG4gICAgICBvbktleURvd24sXG4gICAgICAuLi5yZXN0XG4gICAgfTogUHJvbXB0SW5wdXRQcm9wcyxcbiAgICByZWY6IFJlZk9iamVjdDxIVE1MVGV4dEFyZWFFbGVtZW50PlxuICApOiBSZWFjdEVsZW1lbnQgPT4ge1xuICAgIGNvbnN0IGNvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgdGV4dEFyZWFDb250YWluZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IGludGVybmFsUmVmID0gdXNlUmVmPEhUTUxUZXh0QXJlYUVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IFtzZWxlY3RlZEluZGV4LCBzZXRTZWxlY3RlZEluZGV4XSA9IHVzZVN0YXRlKC0xKTtcbiAgICBjb25zdCBbaXNDb2xsYXBzZWQsIHNldElzQ29sbGFwc2VkXSA9IHVzZVN0YXRlKGlzTmF2QmFyVmFyaWFudCk7XG4gICAgY29uc3QgdXNlclR5cGVkUXVlcnkgPSB1c2VSZWYoXCJcIik7XG4gICAgY29uc3QgW2lzQXV0b2NvbXBsZXRlTGlzdE9wZW4sIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IHRleHRBcmVhUmVmID0gcmVmIHx8IGludGVybmFsUmVmO1xuXG4gICAgY29uc3QgbWVyZ2VkU2VuZEJ1dHRvblByb3BzID0ge1xuICAgICAgLi4uZGVmYXVsdFNlbmRCdXR0b25Qcm9wcyxcbiAgICAgIC4uLnNlbmRCdXR0b25Qcm9wcyxcbiAgICB9O1xuXG4gICAgdXNlT3V0c2lkZUNsaWNrKFxuICAgICAgY29udGFpbmVyUmVmLFxuICAgICAgKGV2dCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgIWNvbnRhaW5lclJlZi5jdXJyZW50LmNvbnRhaW5zKGV2dC50YXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICAhcG9ydGFsQ29udGFpbmVyPy5jb250YWlucyhldnQudGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgZXZ0LnRhcmdldCAhPT0gbnVsbFxuICAgICAgICApIHtcbiAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgICFpc0NvbGxhcHNlZCAmJiBpc05hdkJhclZhcmlhbnRcbiAgICApO1xuXG4gICAgY29uc3QgY2xvc2VBdXRvY29tcGxldGVMaXN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgc2V0SXNBdXRvY29tcGxldGVMaXN0T3BlbihmYWxzZSk7XG4gICAgICBzZXRTZWxlY3RlZEluZGV4KC0xKTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBvcGVuQXV0b2NvbXBsZXRlTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmIChhdXRvY29tcGxldGVMaXN0SXRlbXMubGVuZ3RoKSB7XG4gICAgICAgIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW4odHJ1ZSk7XG4gICAgICAgIHNldFNlbGVjdGVkSW5kZXgoLTEpO1xuICAgICAgfVxuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXNdKTtcblxuICAgIGNvbnN0IGFjY2VwdFRleHRTZWxlY3Rpb24gPSAoKSA9PiB7XG4gICAgICB1c2VyVHlwZWRRdWVyeS5jdXJyZW50ID0gdmFsdWU7XG4gICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKHZhbHVlLmxlbmd0aCwgdmFsdWUubGVuZ3RoKTtcbiAgICB9O1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChhdXRvY29tcGxldGVMaXN0SXRlbXMubGVuZ3RoICYmICFpc0NvbGxhcHNlZCkge1xuICAgICAgICBvcGVuQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICB9XG4gICAgfSwgW1xuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLFxuICAgICAgb3BlbkF1dG9jb21wbGV0ZUxpc3QsXG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QsXG4gICAgICBpc0NvbGxhcHNlZCxcbiAgICBdKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodmFsdWUgJiYgdmFsdWUgIT09IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgJiYgaXNBdXRvY29tcGxldGVMaXN0T3Blbikge1xuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKFxuICAgICAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQubGVuZ3RoLFxuICAgICAgICAgIHZhbHVlLmxlbmd0aFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sIFt2YWx1ZSwgdGV4dEFyZWFSZWYsIGlzQXV0b2NvbXBsZXRlTGlzdE9wZW5dKTtcblxuICAgIC8vIERldGVybWluZSB3aGVuIGZvY3VzIGxlYXZlcyB0aGUgY29udGFpbmVyIHRvIGNvbGxhcHNlIGl0XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGxldCBoYW5kbGVyOiAoZXZ0OiBGb2N1c0V2ZW50KSA9PiB2b2lkO1xuICAgICAgY29uc3QgY29udGFpbmVyID0gY29udGFpbmVyUmVmLmN1cnJlbnQ7XG5cbiAgICAgIGlmIChpc05hdkJhclZhcmlhbnQgJiYgY29udGFpbmVyKSB7XG4gICAgICAgIGhhbmRsZXIgPSAoZXZ0OiBGb2N1c0V2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgIWNvbnRhaW5lclJlZi5jdXJyZW50LmNvbnRhaW5zKGV2dC5yZWxhdGVkVGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgICAhcG9ydGFsQ29udGFpbmVyPy5jb250YWlucyhldnQucmVsYXRlZFRhcmdldCBhcyBOb2RlKSAmJlxuICAgICAgICAgICAgZXZ0LnJlbGF0ZWRUYXJnZXQgIT09IG51bGxcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJmb2N1c291dFwiLCBoYW5kbGVyKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgaWYgKGNvbnRhaW5lcikge1xuICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwiZm9jdXNvdXRcIiwgaGFuZGxlcik7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfSwgW2lzTmF2QmFyVmFyaWFudCwgY29udGFpbmVyUmVmLCBwb3J0YWxDb250YWluZXJdKTtcblxuICAgIGNvbnN0IGZsYXR0ZW5lZExpc3RJdGVtcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgY29uc3QgbGlzdDogRmxhdHRlbmVkTGlzdEl0ZW1bXSA9IFtdO1xuXG4gICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXMuZm9yRWFjaCgobGlzdEl0ZW0pID0+IHtcbiAgICAgICAgbGlzdEl0ZW0uaXRlbXMuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICBsaXN0LnB1c2goe1xuICAgICAgICAgICAgY2F0ZWdvcnk6IGxpc3RJdGVtLmNhdGVnb3J5LFxuICAgICAgICAgICAgaW5kZXhJbkNhdGVnb3J5OiBpbmRleCxcbiAgICAgICAgICAgIHZhbHVlOiBpdGVtLnZhbHVlLFxuICAgICAgICAgICAgaWQ6IGdldExpc3RJdGVtSWQobmFtZSwgbGlzdEl0ZW0uY2F0ZWdvcnksIGluZGV4KSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBsaXN0O1xuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXMsIG5hbWVdKTtcblxuICAgIGNvbnN0IGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2UgPSAoaW5kZXg6IG51bWJlciwgZXZ0PzogU3ludGhldGljRXZlbnQpID0+IHtcbiAgICAgIHNldFNlbGVjdGVkSW5kZXgoaW5kZXgpO1xuICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICBjb25zdCB7IGNhdGVnb3J5LCB2YWx1ZTogaXRlbVZhbHVlIH0gPSBmbGF0dGVuZWRMaXN0SXRlbXNbaW5kZXhdO1xuXG4gICAgICAgIG9uQ29tcGxldGUoeyB2YWx1ZTogaXRlbVZhbHVlLCBjYXRlZ29yeSwgZXZ0LCBpbmRleCB9KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlTGlzdEl0ZW1DbGljayA9IChcbiAgICAgIGNhdGVnb3J5OiBzdHJpbmcsXG4gICAgICBpbmRleEluQ2F0ZWdvcnk6IG51bWJlcixcbiAgICAgIGV2dD86IE1vdXNlRXZlbnRcbiAgICApID0+IHtcbiAgICAgIGNvbnN0IGluZGV4ID0gZmxhdHRlbmVkTGlzdEl0ZW1zLmZpbmRJbmRleChcbiAgICAgICAgKGxpc3RJdGVtKSA9PlxuICAgICAgICAgIGxpc3RJdGVtLmNhdGVnb3J5ID09PSBjYXRlZ29yeSAmJlxuICAgICAgICAgIGxpc3RJdGVtLmluZGV4SW5DYXRlZ29yeSA9PT0gaW5kZXhJbkNhdGVnb3J5XG4gICAgICApO1xuXG4gICAgICBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlKGluZGV4LCBldnQpO1xuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVLZXlEb3duOiBLZXlib2FyZEV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIGlmIChpc0F1dG9jb21wbGV0ZUxpc3RPcGVuKSB7XG4gICAgICAgIHN3aXRjaCAoZXZ0LmtleSkge1xuICAgICAgICAgIGNhc2UgXCJFc2NhcGVcIjpcbiAgICAgICAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgICAgICAgb25Db21wbGV0ZSh7IHZhbHVlOiB1c2VyVHlwZWRRdWVyeS5jdXJyZW50LCBldnQgfSk7XG4gICAgICAgICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkVudGVyXCI6XG4gICAgICAgICAgICBpZiAoIWV2dC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICAgICAgICAgIGFjY2VwdFRleHRTZWxlY3Rpb24oKTtcblxuICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBvbkVudGVyS2V5Py4oKTtcbiAgICAgICAgICAgICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgICAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCIgXCI6XG4gICAgICAgICAgICBhY2NlcHRUZXh0U2VsZWN0aW9uKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiQXJyb3dVcFwiOlxuICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRJbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgIGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2Uoc2VsZWN0ZWRJbmRleCAtIDEsIGV2dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiQXJyb3dEb3duXCI6XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEluZGV4IDwgZmxhdHRlbmVkTGlzdEl0ZW1zLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZShzZWxlY3RlZEluZGV4ICsgMSwgZXZ0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN3aXRjaCAoZXZ0LmtleSkge1xuICAgICAgICAgIGNhc2UgXCJFc2NhcGVcIjpcbiAgICAgICAgICAgIG9uQ2xlYXI/LigpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkVudGVyXCI6XG4gICAgICAgICAgICBpZiAoIWV2dC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgb25FbnRlcktleT8uKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBvbktleURvd24/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVDaGFuZ2U6IENoYW5nZUV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgPSBldnQudGFyZ2V0LnZhbHVlO1xuICAgICAgb25DaGFuZ2UoZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlRm9jdXM6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgc2V0SXNDb2xsYXBzZWQoZmFsc2UpO1xuICAgICAgb25Gb2N1cz8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUJsdXI6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgaWYgKHZhbHVlICE9PSB1c2VyVHlwZWRRdWVyeS5jdXJyZW50KSB7XG4gICAgICAgIG9uQ29tcGxldGU/Lih7IHZhbHVlOiB1c2VyVHlwZWRRdWVyeS5jdXJyZW50LCBldnQgfSk7XG4gICAgICB9XG4gICAgICBvbkJsdXI/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVTZW5kQnV0dG9uQ2xpY2sgPSAoZXZ0OiBNb3VzZUV2ZW50PEhUTUxCdXR0b25FbGVtZW50PikgPT4ge1xuICAgICAgbWVyZ2VkU2VuZEJ1dHRvblByb3BzLm9uQ2xpY2s/LihldnQpO1xuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVQcmV2ZW50Rm9jdXMgPSAoZXZ0OiBSZWFjdC5Qb2ludGVyRXZlbnQpID0+IHtcbiAgICAgIC8vIFByZXZlbnQgdGhlIHRleHRhcmVhIGZyb20gYmVpbmcgdW5mb2N1c2VkXG4gICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlT25Db250YWluZXJQb2ludGVyRG93biA9IChldnQ6IFJlYWN0LlBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgLy8gRm9jdXMgdGV4dGFyZWEgd2hlbiBjbGlja2luZyBvbiB0aGUgY29udGFpbmVyIG9ubHlcbiAgICAgIGlmIChldnQudGFyZ2V0ID09PSBldnQuY3VycmVudFRhcmdldCkge1xuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3Qgc2VsZWN0ZWRMaXN0SXRlbSA9XG4gICAgICBzZWxlY3RlZEluZGV4ICE9PSAtMSA/IGZsYXR0ZW5lZExpc3RJdGVtc1tzZWxlY3RlZEluZGV4XSA6IG51bGw7XG5cbiAgICBjb25zdCBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50RWxtID0gZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudCA/IChcbiAgICAgIDxTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyXG4gICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgPlxuICAgICAgICA8VGV4dCBjb2xvcj1cInRlcnRpYXJ5XCI+e2VtcHR5U3RhdGVUb3BSaWdodENvbnRlbnR9PC9UZXh0PlxuICAgICAgPC9TdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyPlxuICAgICkgOiBudWxsO1xuXG4gICAgY29uc3QgY2xlYXJCdXR0b25FbG0gPSB2YWx1ZSA/IChcbiAgICAgIDxTdHlsZWRDbGVhckJ1dHRvblxuICAgICAgICBzaXplPVwic1wiXG4gICAgICAgIGljb249XCJ4LWNpcmNsZS1maWxsZWRcIlxuICAgICAgICBhcmlhLWxhYmVsPXtjbGVhckJ1dHRvbkFyaWFMYWJlbH1cbiAgICAgICAgaXNOYXZCYXJWYXJpYW50PXtpc05hdkJhclZhcmlhbnR9XG4gICAgICAgIG9uUG9pbnRlckRvd249e2hhbmRsZVByZXZlbnRGb2N1c31cbiAgICAgICAgb25DbGljaz17b25DbGVhcn1cbiAgICAgIC8+XG4gICAgKSA6IChcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRFbG1cbiAgICApO1xuXG4gICAgY29uc3QgaGludEVsbSA9ICEhaGludCAmJiAoXG4gICAgICA8SW5saW5lIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgPFRleHQgc2l6ZT1cInNcIiBjb2xvcj1cInRlcnRpYXJ5XCI+XG4gICAgICAgICAge2hpbnR9XG4gICAgICAgIDwvVGV4dD5cbiAgICAgIDwvSW5saW5lPlxuICAgICk7XG5cbiAgICBjb25zdCBib3R0b21Ub29sYmFyRWxtID0gIWlzQ29sbGFwc2VkICYmIChcbiAgICAgIDw+XG4gICAgICAgIDxTdHlsZWRTbG90IHBvc2l0aW9uPVwibGVmdFwiPntib3R0b21Ub29sYmFyLmxlZnRDb250ZW50fTwvU3R5bGVkU2xvdD5cbiAgICAgICAgPFN0eWxlZFNsb3QgcG9zaXRpb249XCJyaWdodFwiIGRhdGEtZTJlLXRlc3QtaWQ9XCJib3R0b21Ub29sYmFyXCI+XG4gICAgICAgICAgPElubGluZSBzcGFjZT1cInhzXCIgdkFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgIHtib3R0b21Ub29sYmFyLnJpZ2h0Q29udGVudH1cbiAgICAgICAgICAgIDxSb3VuZEJ1dHRvblxuICAgICAgICAgICAgICBhcmlhQXR0cmlidXRlcz17e1xuICAgICAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiBpc1Byb2Nlc3NpbmdcbiAgICAgICAgICAgICAgICAgID8gXCJQcm9jZXNzaW5nIHF1ZXJ5XCJcbiAgICAgICAgICAgICAgICAgIDogXCJTdWJtaXQgcXVlcnlcIixcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgey4uLm1lcmdlZFNlbmRCdXR0b25Qcm9wc31cbiAgICAgICAgICAgICAgZGlzYWJsZWQ9eyF2YWx1ZSB8fCBtZXJnZWRTZW5kQnV0dG9uUHJvcHMuZGlzYWJsZWR9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVNlbmRCdXR0b25DbGlja31cbiAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlUHJldmVudEZvY3VzfVxuICAgICAgICAgICAgICB2YXJpYW50PVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgIGljb249e2lzUHJvY2Vzc2luZyA/IFwic3RvcC1maWxsZWRcIiA6IG1lcmdlZFNlbmRCdXR0b25Qcm9wcy5pY29ufVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0lubGluZT5cbiAgICAgICAgPC9TdHlsZWRTbG90PlxuICAgICAgICA8U3R5bGVkQ2xlYXIgLz5cbiAgICAgIDwvPlxuICAgICk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGRhdGEtZTJlLXRlc3QtaWQ9e2RhdGFFMmVUZXN0SWR9XG4gICAgICAgICAgZGF0YS1kcy1pZD1cIlByb21wdElucHV0XCJcbiAgICAgICAgICByZWY9e2NvbnRhaW5lclJlZn1cbiAgICAgICAgICAvLyBUcmFuc2xhdGlvbiBkaXNhYmxlZCBmb3IgY29uc2lzdGVuY3kgd2l0aCB0aGUgYXV0b2NvbXBsZXRlIGxpc3RcbiAgICAgICAgICB0cmFuc2xhdGU9XCJub1wiXG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2sgc3BhY2U9XCJzXCI+XG4gICAgICAgICAgICA8Q3VzdG9tQ29udGFpbmVyXG4gICAgICAgICAgICAgIGVsZXZhdGlvbj17MH1cbiAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPXtpc0NvbGxhcHNlZCA/IFwieHNcIiA6IFwibVwifVxuICAgICAgICAgICAgICBoaWRlQm9yZGVyPXtpc0NvbGxhcHNlZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlT25Db250YWluZXJQb2ludGVyRG93bn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTdHlsZWRUZXh0QXJlYUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIDxQcm9tcHRUZXh0QXJlYVxuICAgICAgICAgICAgICAgICAgICB7Li4ucmVzdH1cbiAgICAgICAgICAgICAgICAgICAgZGF0YUUyZVRlc3RJZD17XG4gICAgICAgICAgICAgICAgICAgICAgZGF0YUUyZVRlc3RJZCA/IGAke2RhdGFFMmVUZXN0SWR9LWlucHV0YCA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgcmVmPXt0ZXh0QXJlYVJlZn1cbiAgICAgICAgICAgICAgICAgICAgaXNOYXZCYXJWYXJpYW50PXtpc05hdkJhclZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkTGlzdEl0ZW09e3NlbGVjdGVkTGlzdEl0ZW19XG4gICAgICAgICAgICAgICAgICAgIGlzQXV0b2NvbXBsZXRlTGlzdE9wZW49e2lzQXV0b2NvbXBsZXRlTGlzdE9wZW59XG4gICAgICAgICAgICAgICAgICAgIGlzQ29sbGFwc2VkPXtpc0NvbGxhcHNlZH1cbiAgICAgICAgICAgICAgICAgICAgb25Gb2N1cz17aGFuZGxlRm9jdXN9XG4gICAgICAgICAgICAgICAgICAgIG9uQmx1cj17aGFuZGxlQmx1cn1cbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUNoYW5nZX1cbiAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXtoYW5kbGVLZXlEb3dufVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIHtjbGVhckJ1dHRvbkVsbX1cbiAgICAgICAgICAgICAgICA8L1N0eWxlZFRleHRBcmVhQ29udGFpbmVyPlxuICAgICAgICAgICAgICAgIHtib3R0b21Ub29sYmFyRWxtfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvQ3VzdG9tQ29udGFpbmVyPlxuICAgICAgICAgICAge2hpbnRFbG19XG4gICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPEF1dG9jb21wbGV0ZUxpc3RcbiAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXM9e2F1dG9jb21wbGV0ZUxpc3RJdGVtc31cbiAgICAgICAgICB0cmlnZ2VyUmVmPXt0ZXh0QXJlYUNvbnRhaW5lclJlZn1cbiAgICAgICAgICBzZWxlY3RlZExpc3RJdGVtPXtzZWxlY3RlZExpc3RJdGVtfVxuICAgICAgICAgIGlzT3Blbj17aXNBdXRvY29tcGxldGVMaXN0T3Blbn1cbiAgICAgICAgICBhdXRvY29tcGxldGVMaXN0Rm9vdGVyPXthdXRvY29tcGxldGVMaXN0Rm9vdGVyfVxuICAgICAgICAgIHBvcnRhbENvbnRhaW5lcj17cG9ydGFsQ29udGFpbmVyfVxuICAgICAgICAgIG9uTGlzdEl0ZW1DbGljaz17aGFuZGxlTGlzdEl0ZW1DbGlja31cbiAgICAgICAgLz5cbiAgICAgIDwvPlxuICAgICk7XG4gIH1cbik7XG5cbmNvbnN0IEN1c3RvbUJ1dHRvbiA9IHN0eWxlZChCdXR0b24pKCh7IHRoZW1lIH0pID0+ICh7XG4gIGJvcmRlclJhZGl1czogdGhlbWUudmFyaWFibGVzLnNpemUuYm9yZGVyUmFkaXVzLmwsXG59KSk7XG5cbi8vIG5lZWQgdG8gc2ltcGxpZnkgdGhpcyB0eXBlIGZvciByZXVzZVxuY29uc3QgU3VnZ2VzdGlvbkJ1dHRvbiA9IGZvcndhcmRSZWYoXG4gIDxDIGV4dGVuZHMgUmVhY3QuRWxlbWVudFR5cGUgPSBcImJ1dHRvblwiPihcbiAgICBwcm9wczogUG9seW1vcnBoaWNDb21wb25lbnRQcm9wc1dpdGhSZWY8XG4gICAgICBDLFxuICAgICAgT21pdDxCdXR0b25Qcm9wcywgXCJ2YXJpYW50XCIgfCBcInNpemVcIiB8IFwicmVmXCI+XG4gICAgPixcbiAgICByZWY6IFBvbHltb3JwaGljUmVmPEM+XG4gICkgPT4gPEN1c3RvbUJ1dHRvbiB7Li4ucHJvcHN9IHZhcmlhbnQ9XCJzZWNvbmRhcnlcIiBzaXplPVwic1wiIHJlZj17cmVmfSAvPlxuKTtcblxuZXhwb3J0IGNvbnN0IFByb21wdElucHV0ID0gT2JqZWN0LmFzc2lnbihQcm9tcHRJbnB1dENvbXBvbmVudCwge1xuICBTdWdnZXN0aW9uQnV0dG9uLFxufSkgYXMgdHlwZW9mIFByb21wdElucHV0Q29tcG9uZW50ICYge1xuICBTdWdnZXN0aW9uQnV0dG9uOiB0eXBlb2YgU3VnZ2VzdGlvbkJ1dHRvbjtcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBMEYwQiJ9 */"),StyledSlot=(0,_styled.default)("div",{target:"e1gnreap4",label:"StyledSlot"})(({position,theme})=>({float:position,margin:theme.variables.size.spacing.m,cursor:"default"}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUHJvbXB0SW5wdXQvUHJvbXB0SW5wdXQudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Qcm9tcHRJbnB1dC9Qcm9tcHRJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBSZWFjdEVsZW1lbnQsXG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlZk9iamVjdCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIFN5bnRoZXRpY0V2ZW50LFxuICBNb3VzZUV2ZW50LFxufSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZVJlZixcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG4gIGZvcndhcmRSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgdHlwZSB7IFByb21wdFRleHRBcmVhUHJvcHMgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHsgUHJvbXB0VGV4dEFyZWEgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHsgQ29udGFpbmVyIH0gZnJvbSBcIi4uL0NvbnRhaW5lclwiO1xuaW1wb3J0IHR5cGUgeyBBdXRvY29tcGxldGVMaXN0UHJvcHMgfSBmcm9tIFwiLi9BdXRvY29tcGxldGVMaXN0XCI7XG5pbXBvcnQgeyBBdXRvY29tcGxldGVMaXN0IH0gZnJvbSBcIi4vQXV0b2NvbXBsZXRlTGlzdFwiO1xuaW1wb3J0IHtcbiAgZ2V0TGlzdEl0ZW1JZCxcbiAgdHlwZSBGbGF0dGVuZWRMaXN0SXRlbSxcbiAgdHlwZSBMaXN0SXRlbVZhbHVlLFxufSBmcm9tIFwiLi9DYXRlZ29yeUxpc3RcIjtcbmltcG9ydCB7IFRleHQgfSBmcm9tIFwiLi4vVHlwb2dyYXBoeS9UZXh0XCI7XG5pbXBvcnQgeyBCdXR0b24sIHR5cGUgQnV0dG9uUHJvcHMgfSBmcm9tIFwiLi4vQnV0dG9uL0J1dHRvblwiO1xuaW1wb3J0IHR5cGUge1xuICBQb2x5bW9ycGhpY1JlZixcbiAgUG9seW1vcnBoaWNDb21wb25lbnRQcm9wc1dpdGhSZWYsXG59IGZyb20gXCIuLi8uLi90eXBlc1wiO1xuaW1wb3J0IHsgSW5saW5lIH0gZnJvbSBcIi4uL0lubGluZS9JbmxpbmVcIjtcbmltcG9ydCB0eXBlIHsgUm91bmRCdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9Sb3VuZEJ1dHRvbi9Sb3VuZEJ1dHRvblwiO1xuaW1wb3J0IHsgUm91bmRCdXR0b24gfSBmcm9tIFwiLi4vUm91bmRCdXR0b24vUm91bmRCdXR0b25cIjtcbmltcG9ydCB0eXBlIHsgUGljdG9ncmFtQnV0dG9uUHJvcHMgfSBmcm9tIFwiLi4vUGljdG9ncmFtQnV0dG9uL1BpY3RvZ3JhbUJ1dHRvblwiO1xuaW1wb3J0IHsgUGljdG9ncmFtQnV0dG9uIH0gZnJvbSBcIi4uL1BpY3RvZ3JhbUJ1dHRvbi9QaWN0b2dyYW1CdXR0b25cIjtcbmltcG9ydCB7IFN0YWNrIH0gZnJvbSBcIi4uL1N0YWNrL1N0YWNrXCI7XG5pbXBvcnQgeyB1c2VPdXRzaWRlQ2xpY2sgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL3VzZU91dHNpZGVDbGlja1wiO1xuXG5jb25zdCBDdXN0b21Db250YWluZXIgPSBzdHlsZWQoQ29udGFpbmVyKTx7IGhpZGVCb3JkZXI6IGJvb2xlYW4gfT4oXG4gICh7IHRoZW1lLCBoaWRlQm9yZGVyIH0pID0+ICh7XG4gICAgYm9yZGVyOiBgMXB4IHNvbGlkICR7dGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5wcmltYXJ5LmRlZmF1bHR9YCxcbiAgICAuLi4oaGlkZUJvcmRlciAmJiB7XG4gICAgICBib3JkZXJDb2xvcjogXCJ0cmFuc3BhcmVudFwiLFxuICAgIH0pLFxuICAgIGN1cnNvcjogXCJ0ZXh0XCIsXG4gICAgW2AmOmhhcyh0ZXh0YXJlYTpmb2N1cy12aXNpYmxlKWBdOiB7XG4gICAgICBvdXRsaW5lV2lkdGg6IDEsXG4gICAgICBvdXRsaW5lU3R5bGU6IFwic29saWRcIixcbiAgICAgIG91dGxpbmVPZmZzZXQ6IC0xLFxuICAgICAgb3V0bGluZUNvbG9yOiB0aGVtZS52YWx1ZXMuY29sb3IuYm9yZGVyLmFjY2VudC5kZWZhdWx0LFxuICAgICAgYm94U2hhZG93OiB0aGVtZS52YWx1ZXMuc2hhZG93LmZvY3VzUmluZyxcblxuICAgICAgXCJAbWVkaWEgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzowKVwiOiB7XG4gICAgICAgIG91dGxpbmVDb2xvcjogdGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5hY2NlbnQuZGVmYXVsdCxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZFRleHRBcmVhQ29udGFpbmVyID0gc3R5bGVkLmRpdih7XG4gIGJvcmRlclJhZGl1czogXCJpbmhlcml0XCIsXG4gIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG59KTtcblxudHlwZSBTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyUHJvcHMgPSBQaWNrPFxuICBQcm9tcHRJbnB1dFByb3BzLFxuICBcImlzTmF2QmFyVmFyaWFudFwiXG4+O1xuXG5jb25zdCBTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyID1cbiAgc3R5bGVkLmRpdjxTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyUHJvcHM+KFxuICAgICh7IHRoZW1lLCBpc05hdkJhclZhcmlhbnQgfSkgPT4gKHtcbiAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICB0b3A6IGlzTmF2QmFyVmFyaWFudFxuICAgICAgICA/IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHhzXG4gICAgICAgIDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5tLFxuICAgICAgcmlnaHQ6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubSxcbiAgICAgIHVzZXJTZWxlY3Q6IFwibm9uZVwiLFxuICAgICAgcG9pbnRlckV2ZW50czogXCJub25lXCIsXG4gICAgfSlcbiAgKTtcblxudHlwZSBTdHlsZWRDbGVhckJ1dHRvblByb3BzID0gUGljdG9ncmFtQnV0dG9uUHJvcHMgJlxuICBQaWNrPFByb21wdElucHV0UHJvcHMsIFwiaXNOYXZCYXJWYXJpYW50XCI+O1xuXG5jb25zdCBTdHlsZWRDbGVhckJ1dHRvbiA9IHN0eWxlZChQaWN0b2dyYW1CdXR0b24pPFN0eWxlZENsZWFyQnV0dG9uUHJvcHM+KFxuICAoeyB0aGVtZSwgaXNOYXZCYXJWYXJpYW50IH0pID0+ICh7XG4gICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICByaWdodDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zLFxuICAgIHRvcDogaXNOYXZCYXJWYXJpYW50ID8gMCA6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcucyxcbiAgfSlcbik7XG5cbi8vIFVzaW5nIGZsb2F0IGluIG9yZGVyIHRvIGF2b2lkIHRoZSBpbnZpc2libGUgYXJlYSBiZXR3ZWVuIHRoZSBzbG90c1xuLy8gdGhhdCBwcmV2ZW50cyB0aGUgdGV4dGFyZWEgZnJvbSBiZWluZyBmb2N1c2VkXG5jb25zdCBTdHlsZWRTbG90ID0gc3R5bGVkLmRpdjx7IHBvc2l0aW9uOiBcImxlZnRcIiB8IFwicmlnaHRcIiB9PihcbiAgKHsgcG9zaXRpb24sIHRoZW1lIH0pID0+ICh7XG4gICAgZmxvYXQ6IHBvc2l0aW9uLFxuICAgIG1hcmdpbjogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5tLFxuICAgIGN1cnNvcjogXCJkZWZhdWx0XCIsXG4gIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRDbGVhciA9IHN0eWxlZC5kaXYoe1xuICBjbGVhcjogXCJib3RoXCIsXG59KTtcblxudHlwZSBTZW5kQnV0dG9uUHJvcHMgPSBPbWl0PFJvdW5kQnV0dG9uUHJvcHMsIFwiaWNvblwiIHwgXCJ2YXJpYW50XCI+ICYge1xuICBpY29uPzogXCJhcnJvdy11cFwiIHwgXCJzZWFyY2hcIiB8IFwiYXJyb3ctcmlnaHRcIjtcbn07XG5cbmV4cG9ydCB0eXBlIFByb21wdElucHV0UHJvcHMgPSB7XG4gIFwiZGF0YS1lMmUtdGVzdC1pZFwiPzogc3RyaW5nO1xuICAvKiogVG9vbGJhciBlbGVtZW50cyBiZWxvdyB0ZXh0IGFyZWEgKi9cbiAgYm90dG9tVG9vbGJhcj86IHtcbiAgICBsZWZ0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgICByaWdodENvbnRlbnQ/OiBSZWFjdEVsZW1lbnQ7XG4gIH07XG4gIC8qKiBDdXJyZW50bHkgc2hvd3Mgc2VuZCBidXR0b24gcHJvY2Vzc2luZyBzdGF0ZSAgKi9cbiAgaXNQcm9jZXNzaW5nPzogYm9vbGVhbjtcbiAgc2VuZEJ1dHRvblByb3BzPzogU2VuZEJ1dHRvblByb3BzO1xuICBjbGVhckJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgaGludD86IFJlYWN0RWxlbWVudDtcbiAgLyoqIFNob3dzIGluIHRoZSBjbGVhciBidXR0b24gc3BhY2UgaW4gZW1wdHkgc3RhdGUgKi9cbiAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgb25DbGVhcjogKCkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCB3aGVuIHVzZXIgc2VsZWN0cyAob3IgcmVqZWN0cykgYSBsaXN0IGl0ZW0gZnJvbSBhdXRvY29tcGxldGUgbGlzdCAqL1xuICBvbkNvbXBsZXRlPzogKHtcbiAgICB2YWx1ZSxcbiAgICBjYXRlZ29yeSxcbiAgICBldnQsXG4gICAgaW5kZXgsXG4gIH06IHtcbiAgICB2YWx1ZTogTGlzdEl0ZW1WYWx1ZTtcbiAgICBjYXRlZ29yeT86IHN0cmluZztcbiAgICBldnQ/OiBTeW50aGV0aWNFdmVudDtcbiAgICBpbmRleD86IG51bWJlcjtcbiAgfSkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCBvbiBFbnRlciBrZXkgdG8gc3VibWl0IHRoZSBmb3JtICAqL1xuICBvbkVudGVyS2V5OiAoKSA9PiB2b2lkO1xufSAmIE9taXQ8XG4gIFByb21wdFRleHRBcmVhUHJvcHMsXG4gIFwiaXNDb2xsYXBzZWRcIiB8IFwiaXNBdXRvY29tcGxldGVMaXN0T3BlblwiIHwgXCJzZWxlY3RlZExpc3RJdGVtXCJcbj4gJlxuICBQaWNrPFxuICAgIEF1dG9jb21wbGV0ZUxpc3RQcm9wcyxcbiAgICBcImF1dG9jb21wbGV0ZUxpc3RJdGVtc1wiIHwgXCJhdXRvY29tcGxldGVMaXN0Rm9vdGVyXCIgfCBcInBvcnRhbENvbnRhaW5lclwiXG4gID47XG5cbmNvbnN0IGRlZmF1bHRTZW5kQnV0dG9uUHJvcHM6IFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgdHlwZTogXCJzdWJtaXRcIiBhcyBjb25zdCxcbiAgaWNvbjogXCJhcnJvdy11cFwiIGFzIGNvbnN0LFxufTtcblxuY29uc3QgUHJvbXB0SW5wdXRDb21wb25lbnQgPSBmb3J3YXJkUmVmKFxuICAoXG4gICAge1xuICAgICAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG4gICAgICBuYW1lLFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zID0gW10sXG4gICAgICB2YWx1ZSxcbiAgICAgIGJvdHRvbVRvb2xiYXIgPSB7IGxlZnRDb250ZW50OiBudWxsLCByaWdodENvbnRlbnQ6IG51bGwgfSxcbiAgICAgIGlzUHJvY2Vzc2luZyxcbiAgICAgIHNlbmRCdXR0b25Qcm9wcyA9IHt9LFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEZvb3RlcixcbiAgICAgIGNsZWFyQnV0dG9uQXJpYUxhYmVsID0gXCJDbGVhciBpbnB1dFwiLFxuICAgICAgaGludCxcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnQsXG4gICAgICBpc05hdkJhclZhcmlhbnQsXG4gICAgICBwb3J0YWxDb250YWluZXIsXG4gICAgICBvbkNoYW5nZSxcbiAgICAgIG9uQ29tcGxldGUsXG4gICAgICBvbkNsZWFyLFxuICAgICAgb25FbnRlcktleSxcbiAgICAgIG9uRm9jdXMsXG4gICAgICBvbkJsdXIsXG4gICAgICBvbktleURvd24sXG4gICAgICAuLi5yZXN0XG4gICAgfTogUHJvbXB0SW5wdXRQcm9wcyxcbiAgICByZWY6IFJlZk9iamVjdDxIVE1MVGV4dEFyZWFFbGVtZW50PlxuICApOiBSZWFjdEVsZW1lbnQgPT4ge1xuICAgIGNvbnN0IGNvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgdGV4dEFyZWFDb250YWluZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IGludGVybmFsUmVmID0gdXNlUmVmPEhUTUxUZXh0QXJlYUVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IFtzZWxlY3RlZEluZGV4LCBzZXRTZWxlY3RlZEluZGV4XSA9IHVzZVN0YXRlKC0xKTtcbiAgICBjb25zdCBbaXNDb2xsYXBzZWQsIHNldElzQ29sbGFwc2VkXSA9IHVzZVN0YXRlKGlzTmF2QmFyVmFyaWFudCk7XG4gICAgY29uc3QgdXNlclR5cGVkUXVlcnkgPSB1c2VSZWYoXCJcIik7XG4gICAgY29uc3QgW2lzQXV0b2NvbXBsZXRlTGlzdE9wZW4sIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IHRleHRBcmVhUmVmID0gcmVmIHx8IGludGVybmFsUmVmO1xuXG4gICAgY29uc3QgbWVyZ2VkU2VuZEJ1dHRvblByb3BzID0ge1xuICAgICAgLi4uZGVmYXVsdFNlbmRCdXR0b25Qcm9wcyxcbiAgICAgIC4uLnNlbmRCdXR0b25Qcm9wcyxcbiAgICB9O1xuXG4gICAgdXNlT3V0c2lkZUNsaWNrKFxuICAgICAgY29udGFpbmVyUmVmLFxuICAgICAgKGV2dCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgIWNvbnRhaW5lclJlZi5jdXJyZW50LmNvbnRhaW5zKGV2dC50YXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICAhcG9ydGFsQ29udGFpbmVyPy5jb250YWlucyhldnQudGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgZXZ0LnRhcmdldCAhPT0gbnVsbFxuICAgICAgICApIHtcbiAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgICFpc0NvbGxhcHNlZCAmJiBpc05hdkJhclZhcmlhbnRcbiAgICApO1xuXG4gICAgY29uc3QgY2xvc2VBdXRvY29tcGxldGVMaXN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgc2V0SXNBdXRvY29tcGxldGVMaXN0T3BlbihmYWxzZSk7XG4gICAgICBzZXRTZWxlY3RlZEluZGV4KC0xKTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBvcGVuQXV0b2NvbXBsZXRlTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmIChhdXRvY29tcGxldGVMaXN0SXRlbXMubGVuZ3RoKSB7XG4gICAgICAgIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW4odHJ1ZSk7XG4gICAgICAgIHNldFNlbGVjdGVkSW5kZXgoLTEpO1xuICAgICAgfVxuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXNdKTtcblxuICAgIGNvbnN0IGFjY2VwdFRleHRTZWxlY3Rpb24gPSAoKSA9PiB7XG4gICAgICB1c2VyVHlwZWRRdWVyeS5jdXJyZW50ID0gdmFsdWU7XG4gICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKHZhbHVlLmxlbmd0aCwgdmFsdWUubGVuZ3RoKTtcbiAgICB9O1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChhdXRvY29tcGxldGVMaXN0SXRlbXMubGVuZ3RoICYmICFpc0NvbGxhcHNlZCkge1xuICAgICAgICBvcGVuQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICB9XG4gICAgfSwgW1xuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLFxuICAgICAgb3BlbkF1dG9jb21wbGV0ZUxpc3QsXG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QsXG4gICAgICBpc0NvbGxhcHNlZCxcbiAgICBdKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodmFsdWUgJiYgdmFsdWUgIT09IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgJiYgaXNBdXRvY29tcGxldGVMaXN0T3Blbikge1xuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKFxuICAgICAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQubGVuZ3RoLFxuICAgICAgICAgIHZhbHVlLmxlbmd0aFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sIFt2YWx1ZSwgdGV4dEFyZWFSZWYsIGlzQXV0b2NvbXBsZXRlTGlzdE9wZW5dKTtcblxuICAgIC8vIERldGVybWluZSB3aGVuIGZvY3VzIGxlYXZlcyB0aGUgY29udGFpbmVyIHRvIGNvbGxhcHNlIGl0XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGxldCBoYW5kbGVyOiAoZXZ0OiBGb2N1c0V2ZW50KSA9PiB2b2lkO1xuICAgICAgY29uc3QgY29udGFpbmVyID0gY29udGFpbmVyUmVmLmN1cnJlbnQ7XG5cbiAgICAgIGlmIChpc05hdkJhclZhcmlhbnQgJiYgY29udGFpbmVyKSB7XG4gICAgICAgIGhhbmRsZXIgPSAoZXZ0OiBGb2N1c0V2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgIWNvbnRhaW5lclJlZi5jdXJyZW50LmNvbnRhaW5zKGV2dC5yZWxhdGVkVGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgICAhcG9ydGFsQ29udGFpbmVyPy5jb250YWlucyhldnQucmVsYXRlZFRhcmdldCBhcyBOb2RlKSAmJlxuICAgICAgICAgICAgZXZ0LnJlbGF0ZWRUYXJnZXQgIT09IG51bGxcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJmb2N1c291dFwiLCBoYW5kbGVyKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgaWYgKGNvbnRhaW5lcikge1xuICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwiZm9jdXNvdXRcIiwgaGFuZGxlcik7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfSwgW2lzTmF2QmFyVmFyaWFudCwgY29udGFpbmVyUmVmLCBwb3J0YWxDb250YWluZXJdKTtcblxuICAgIGNvbnN0IGZsYXR0ZW5lZExpc3RJdGVtcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgY29uc3QgbGlzdDogRmxhdHRlbmVkTGlzdEl0ZW1bXSA9IFtdO1xuXG4gICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXMuZm9yRWFjaCgobGlzdEl0ZW0pID0+IHtcbiAgICAgICAgbGlzdEl0ZW0uaXRlbXMuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICBsaXN0LnB1c2goe1xuICAgICAgICAgICAgY2F0ZWdvcnk6IGxpc3RJdGVtLmNhdGVnb3J5LFxuICAgICAgICAgICAgaW5kZXhJbkNhdGVnb3J5OiBpbmRleCxcbiAgICAgICAgICAgIHZhbHVlOiBpdGVtLnZhbHVlLFxuICAgICAgICAgICAgaWQ6IGdldExpc3RJdGVtSWQobmFtZSwgbGlzdEl0ZW0uY2F0ZWdvcnksIGluZGV4KSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBsaXN0O1xuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXMsIG5hbWVdKTtcblxuICAgIGNvbnN0IGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2UgPSAoaW5kZXg6IG51bWJlciwgZXZ0PzogU3ludGhldGljRXZlbnQpID0+IHtcbiAgICAgIHNldFNlbGVjdGVkSW5kZXgoaW5kZXgpO1xuICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICBjb25zdCB7IGNhdGVnb3J5LCB2YWx1ZTogaXRlbVZhbHVlIH0gPSBmbGF0dGVuZWRMaXN0SXRlbXNbaW5kZXhdO1xuXG4gICAgICAgIG9uQ29tcGxldGUoeyB2YWx1ZTogaXRlbVZhbHVlLCBjYXRlZ29yeSwgZXZ0LCBpbmRleCB9KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlTGlzdEl0ZW1DbGljayA9IChcbiAgICAgIGNhdGVnb3J5OiBzdHJpbmcsXG4gICAgICBpbmRleEluQ2F0ZWdvcnk6IG51bWJlcixcbiAgICAgIGV2dD86IE1vdXNlRXZlbnRcbiAgICApID0+IHtcbiAgICAgIGNvbnN0IGluZGV4ID0gZmxhdHRlbmVkTGlzdEl0ZW1zLmZpbmRJbmRleChcbiAgICAgICAgKGxpc3RJdGVtKSA9PlxuICAgICAgICAgIGxpc3RJdGVtLmNhdGVnb3J5ID09PSBjYXRlZ29yeSAmJlxuICAgICAgICAgIGxpc3RJdGVtLmluZGV4SW5DYXRlZ29yeSA9PT0gaW5kZXhJbkNhdGVnb3J5XG4gICAgICApO1xuXG4gICAgICBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlKGluZGV4LCBldnQpO1xuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVLZXlEb3duOiBLZXlib2FyZEV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIGlmIChpc0F1dG9jb21wbGV0ZUxpc3RPcGVuKSB7XG4gICAgICAgIHN3aXRjaCAoZXZ0LmtleSkge1xuICAgICAgICAgIGNhc2UgXCJFc2NhcGVcIjpcbiAgICAgICAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgICAgICAgb25Db21wbGV0ZSh7IHZhbHVlOiB1c2VyVHlwZWRRdWVyeS5jdXJyZW50LCBldnQgfSk7XG4gICAgICAgICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkVudGVyXCI6XG4gICAgICAgICAgICBpZiAoIWV2dC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICAgICAgICAgIGFjY2VwdFRleHRTZWxlY3Rpb24oKTtcblxuICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBvbkVudGVyS2V5Py4oKTtcbiAgICAgICAgICAgICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgICAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCIgXCI6XG4gICAgICAgICAgICBhY2NlcHRUZXh0U2VsZWN0aW9uKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiQXJyb3dVcFwiOlxuICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRJbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgIGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2Uoc2VsZWN0ZWRJbmRleCAtIDEsIGV2dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiQXJyb3dEb3duXCI6XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEluZGV4IDwgZmxhdHRlbmVkTGlzdEl0ZW1zLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZShzZWxlY3RlZEluZGV4ICsgMSwgZXZ0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN3aXRjaCAoZXZ0LmtleSkge1xuICAgICAgICAgIGNhc2UgXCJFc2NhcGVcIjpcbiAgICAgICAgICAgIG9uQ2xlYXI/LigpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkVudGVyXCI6XG4gICAgICAgICAgICBpZiAoIWV2dC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgb25FbnRlcktleT8uKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBvbktleURvd24/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVDaGFuZ2U6IENoYW5nZUV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgPSBldnQudGFyZ2V0LnZhbHVlO1xuICAgICAgb25DaGFuZ2UoZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlRm9jdXM6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgc2V0SXNDb2xsYXBzZWQoZmFsc2UpO1xuICAgICAgb25Gb2N1cz8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUJsdXI6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgaWYgKHZhbHVlICE9PSB1c2VyVHlwZWRRdWVyeS5jdXJyZW50KSB7XG4gICAgICAgIG9uQ29tcGxldGU/Lih7IHZhbHVlOiB1c2VyVHlwZWRRdWVyeS5jdXJyZW50LCBldnQgfSk7XG4gICAgICB9XG4gICAgICBvbkJsdXI/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVTZW5kQnV0dG9uQ2xpY2sgPSAoZXZ0OiBNb3VzZUV2ZW50PEhUTUxCdXR0b25FbGVtZW50PikgPT4ge1xuICAgICAgbWVyZ2VkU2VuZEJ1dHRvblByb3BzLm9uQ2xpY2s/LihldnQpO1xuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVQcmV2ZW50Rm9jdXMgPSAoZXZ0OiBSZWFjdC5Qb2ludGVyRXZlbnQpID0+IHtcbiAgICAgIC8vIFByZXZlbnQgdGhlIHRleHRhcmVhIGZyb20gYmVpbmcgdW5mb2N1c2VkXG4gICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlT25Db250YWluZXJQb2ludGVyRG93biA9IChldnQ6IFJlYWN0LlBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgLy8gRm9jdXMgdGV4dGFyZWEgd2hlbiBjbGlja2luZyBvbiB0aGUgY29udGFpbmVyIG9ubHlcbiAgICAgIGlmIChldnQudGFyZ2V0ID09PSBldnQuY3VycmVudFRhcmdldCkge1xuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3Qgc2VsZWN0ZWRMaXN0SXRlbSA9XG4gICAgICBzZWxlY3RlZEluZGV4ICE9PSAtMSA/IGZsYXR0ZW5lZExpc3RJdGVtc1tzZWxlY3RlZEluZGV4XSA6IG51bGw7XG5cbiAgICBjb25zdCBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50RWxtID0gZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudCA/IChcbiAgICAgIDxTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyXG4gICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgPlxuICAgICAgICA8VGV4dCBjb2xvcj1cInRlcnRpYXJ5XCI+e2VtcHR5U3RhdGVUb3BSaWdodENvbnRlbnR9PC9UZXh0PlxuICAgICAgPC9TdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyPlxuICAgICkgOiBudWxsO1xuXG4gICAgY29uc3QgY2xlYXJCdXR0b25FbG0gPSB2YWx1ZSA/IChcbiAgICAgIDxTdHlsZWRDbGVhckJ1dHRvblxuICAgICAgICBzaXplPVwic1wiXG4gICAgICAgIGljb249XCJ4LWNpcmNsZS1maWxsZWRcIlxuICAgICAgICBhcmlhLWxhYmVsPXtjbGVhckJ1dHRvbkFyaWFMYWJlbH1cbiAgICAgICAgaXNOYXZCYXJWYXJpYW50PXtpc05hdkJhclZhcmlhbnR9XG4gICAgICAgIG9uUG9pbnRlckRvd249e2hhbmRsZVByZXZlbnRGb2N1c31cbiAgICAgICAgb25DbGljaz17b25DbGVhcn1cbiAgICAgIC8+XG4gICAgKSA6IChcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRFbG1cbiAgICApO1xuXG4gICAgY29uc3QgaGludEVsbSA9ICEhaGludCAmJiAoXG4gICAgICA8SW5saW5lIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgPFRleHQgc2l6ZT1cInNcIiBjb2xvcj1cInRlcnRpYXJ5XCI+XG4gICAgICAgICAge2hpbnR9XG4gICAgICAgIDwvVGV4dD5cbiAgICAgIDwvSW5saW5lPlxuICAgICk7XG5cbiAgICBjb25zdCBib3R0b21Ub29sYmFyRWxtID0gIWlzQ29sbGFwc2VkICYmIChcbiAgICAgIDw+XG4gICAgICAgIDxTdHlsZWRTbG90IHBvc2l0aW9uPVwibGVmdFwiPntib3R0b21Ub29sYmFyLmxlZnRDb250ZW50fTwvU3R5bGVkU2xvdD5cbiAgICAgICAgPFN0eWxlZFNsb3QgcG9zaXRpb249XCJyaWdodFwiIGRhdGEtZTJlLXRlc3QtaWQ9XCJib3R0b21Ub29sYmFyXCI+XG4gICAgICAgICAgPElubGluZSBzcGFjZT1cInhzXCIgdkFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgIHtib3R0b21Ub29sYmFyLnJpZ2h0Q29udGVudH1cbiAgICAgICAgICAgIDxSb3VuZEJ1dHRvblxuICAgICAgICAgICAgICBhcmlhQXR0cmlidXRlcz17e1xuICAgICAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiBpc1Byb2Nlc3NpbmdcbiAgICAgICAgICAgICAgICAgID8gXCJQcm9jZXNzaW5nIHF1ZXJ5XCJcbiAgICAgICAgICAgICAgICAgIDogXCJTdWJtaXQgcXVlcnlcIixcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgey4uLm1lcmdlZFNlbmRCdXR0b25Qcm9wc31cbiAgICAgICAgICAgICAgZGlzYWJsZWQ9eyF2YWx1ZSB8fCBtZXJnZWRTZW5kQnV0dG9uUHJvcHMuZGlzYWJsZWR9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVNlbmRCdXR0b25DbGlja31cbiAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlUHJldmVudEZvY3VzfVxuICAgICAgICAgICAgICB2YXJpYW50PVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgIGljb249e2lzUHJvY2Vzc2luZyA/IFwic3RvcC1maWxsZWRcIiA6IG1lcmdlZFNlbmRCdXR0b25Qcm9wcy5pY29ufVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0lubGluZT5cbiAgICAgICAgPC9TdHlsZWRTbG90PlxuICAgICAgICA8U3R5bGVkQ2xlYXIgLz5cbiAgICAgIDwvPlxuICAgICk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGRhdGEtZTJlLXRlc3QtaWQ9e2RhdGFFMmVUZXN0SWR9XG4gICAgICAgICAgZGF0YS1kcy1pZD1cIlByb21wdElucHV0XCJcbiAgICAgICAgICByZWY9e2NvbnRhaW5lclJlZn1cbiAgICAgICAgICAvLyBUcmFuc2xhdGlvbiBkaXNhYmxlZCBmb3IgY29uc2lzdGVuY3kgd2l0aCB0aGUgYXV0b2NvbXBsZXRlIGxpc3RcbiAgICAgICAgICB0cmFuc2xhdGU9XCJub1wiXG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2sgc3BhY2U9XCJzXCI+XG4gICAgICAgICAgICA8Q3VzdG9tQ29udGFpbmVyXG4gICAgICAgICAgICAgIGVsZXZhdGlvbj17MH1cbiAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPXtpc0NvbGxhcHNlZCA/IFwieHNcIiA6IFwibVwifVxuICAgICAgICAgICAgICBoaWRlQm9yZGVyPXtpc0NvbGxhcHNlZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlT25Db250YWluZXJQb2ludGVyRG93bn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTdHlsZWRUZXh0QXJlYUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIDxQcm9tcHRUZXh0QXJlYVxuICAgICAgICAgICAgICAgICAgICB7Li4ucmVzdH1cbiAgICAgICAgICAgICAgICAgICAgZGF0YUUyZVRlc3RJZD17XG4gICAgICAgICAgICAgICAgICAgICAgZGF0YUUyZVRlc3RJZCA/IGAke2RhdGFFMmVUZXN0SWR9LWlucHV0YCA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgcmVmPXt0ZXh0QXJlYVJlZn1cbiAgICAgICAgICAgICAgICAgICAgaXNOYXZCYXJWYXJpYW50PXtpc05hdkJhclZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkTGlzdEl0ZW09e3NlbGVjdGVkTGlzdEl0ZW19XG4gICAgICAgICAgICAgICAgICAgIGlzQXV0b2NvbXBsZXRlTGlzdE9wZW49e2lzQXV0b2NvbXBsZXRlTGlzdE9wZW59XG4gICAgICAgICAgICAgICAgICAgIGlzQ29sbGFwc2VkPXtpc0NvbGxhcHNlZH1cbiAgICAgICAgICAgICAgICAgICAgb25Gb2N1cz17aGFuZGxlRm9jdXN9XG4gICAgICAgICAgICAgICAgICAgIG9uQmx1cj17aGFuZGxlQmx1cn1cbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUNoYW5nZX1cbiAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXtoYW5kbGVLZXlEb3dufVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIHtjbGVhckJ1dHRvbkVsbX1cbiAgICAgICAgICAgICAgICA8L1N0eWxlZFRleHRBcmVhQ29udGFpbmVyPlxuICAgICAgICAgICAgICAgIHtib3R0b21Ub29sYmFyRWxtfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvQ3VzdG9tQ29udGFpbmVyPlxuICAgICAgICAgICAge2hpbnRFbG19XG4gICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPEF1dG9jb21wbGV0ZUxpc3RcbiAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXM9e2F1dG9jb21wbGV0ZUxpc3RJdGVtc31cbiAgICAgICAgICB0cmlnZ2VyUmVmPXt0ZXh0QXJlYUNvbnRhaW5lclJlZn1cbiAgICAgICAgICBzZWxlY3RlZExpc3RJdGVtPXtzZWxlY3RlZExpc3RJdGVtfVxuICAgICAgICAgIGlzT3Blbj17aXNBdXRvY29tcGxldGVMaXN0T3Blbn1cbiAgICAgICAgICBhdXRvY29tcGxldGVMaXN0Rm9vdGVyPXthdXRvY29tcGxldGVMaXN0Rm9vdGVyfVxuICAgICAgICAgIHBvcnRhbENvbnRhaW5lcj17cG9ydGFsQ29udGFpbmVyfVxuICAgICAgICAgIG9uTGlzdEl0ZW1DbGljaz17aGFuZGxlTGlzdEl0ZW1DbGlja31cbiAgICAgICAgLz5cbiAgICAgIDwvPlxuICAgICk7XG4gIH1cbik7XG5cbmNvbnN0IEN1c3RvbUJ1dHRvbiA9IHN0eWxlZChCdXR0b24pKCh7IHRoZW1lIH0pID0+ICh7XG4gIGJvcmRlclJhZGl1czogdGhlbWUudmFyaWFibGVzLnNpemUuYm9yZGVyUmFkaXVzLmwsXG59KSk7XG5cbi8vIG5lZWQgdG8gc2ltcGxpZnkgdGhpcyB0eXBlIGZvciByZXVzZVxuY29uc3QgU3VnZ2VzdGlvbkJ1dHRvbiA9IGZvcndhcmRSZWYoXG4gIDxDIGV4dGVuZHMgUmVhY3QuRWxlbWVudFR5cGUgPSBcImJ1dHRvblwiPihcbiAgICBwcm9wczogUG9seW1vcnBoaWNDb21wb25lbnRQcm9wc1dpdGhSZWY8XG4gICAgICBDLFxuICAgICAgT21pdDxCdXR0b25Qcm9wcywgXCJ2YXJpYW50XCIgfCBcInNpemVcIiB8IFwicmVmXCI+XG4gICAgPixcbiAgICByZWY6IFBvbHltb3JwaGljUmVmPEM+XG4gICkgPT4gPEN1c3RvbUJ1dHRvbiB7Li4ucHJvcHN9IHZhcmlhbnQ9XCJzZWNvbmRhcnlcIiBzaXplPVwic1wiIHJlZj17cmVmfSAvPlxuKTtcblxuZXhwb3J0IGNvbnN0IFByb21wdElucHV0ID0gT2JqZWN0LmFzc2lnbihQcm9tcHRJbnB1dENvbXBvbmVudCwge1xuICBTdWdnZXN0aW9uQnV0dG9uLFxufSkgYXMgdHlwZW9mIFByb21wdElucHV0Q29tcG9uZW50ICYge1xuICBTdWdnZXN0aW9uQnV0dG9uOiB0eXBlb2YgU3VnZ2VzdGlvbkJ1dHRvbjtcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBb0dtQiJ9 */"),StyledClear=(0,_styled.default)("div",{target:"e1gnreap5",label:"StyledClear"})({clear:"both"},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUHJvbXB0SW5wdXQvUHJvbXB0SW5wdXQudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Qcm9tcHRJbnB1dC9Qcm9tcHRJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBSZWFjdEVsZW1lbnQsXG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlZk9iamVjdCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIFN5bnRoZXRpY0V2ZW50LFxuICBNb3VzZUV2ZW50LFxufSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZVJlZixcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG4gIGZvcndhcmRSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgdHlwZSB7IFByb21wdFRleHRBcmVhUHJvcHMgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHsgUHJvbXB0VGV4dEFyZWEgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHsgQ29udGFpbmVyIH0gZnJvbSBcIi4uL0NvbnRhaW5lclwiO1xuaW1wb3J0IHR5cGUgeyBBdXRvY29tcGxldGVMaXN0UHJvcHMgfSBmcm9tIFwiLi9BdXRvY29tcGxldGVMaXN0XCI7XG5pbXBvcnQgeyBBdXRvY29tcGxldGVMaXN0IH0gZnJvbSBcIi4vQXV0b2NvbXBsZXRlTGlzdFwiO1xuaW1wb3J0IHtcbiAgZ2V0TGlzdEl0ZW1JZCxcbiAgdHlwZSBGbGF0dGVuZWRMaXN0SXRlbSxcbiAgdHlwZSBMaXN0SXRlbVZhbHVlLFxufSBmcm9tIFwiLi9DYXRlZ29yeUxpc3RcIjtcbmltcG9ydCB7IFRleHQgfSBmcm9tIFwiLi4vVHlwb2dyYXBoeS9UZXh0XCI7XG5pbXBvcnQgeyBCdXR0b24sIHR5cGUgQnV0dG9uUHJvcHMgfSBmcm9tIFwiLi4vQnV0dG9uL0J1dHRvblwiO1xuaW1wb3J0IHR5cGUge1xuICBQb2x5bW9ycGhpY1JlZixcbiAgUG9seW1vcnBoaWNDb21wb25lbnRQcm9wc1dpdGhSZWYsXG59IGZyb20gXCIuLi8uLi90eXBlc1wiO1xuaW1wb3J0IHsgSW5saW5lIH0gZnJvbSBcIi4uL0lubGluZS9JbmxpbmVcIjtcbmltcG9ydCB0eXBlIHsgUm91bmRCdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9Sb3VuZEJ1dHRvbi9Sb3VuZEJ1dHRvblwiO1xuaW1wb3J0IHsgUm91bmRCdXR0b24gfSBmcm9tIFwiLi4vUm91bmRCdXR0b24vUm91bmRCdXR0b25cIjtcbmltcG9ydCB0eXBlIHsgUGljdG9ncmFtQnV0dG9uUHJvcHMgfSBmcm9tIFwiLi4vUGljdG9ncmFtQnV0dG9uL1BpY3RvZ3JhbUJ1dHRvblwiO1xuaW1wb3J0IHsgUGljdG9ncmFtQnV0dG9uIH0gZnJvbSBcIi4uL1BpY3RvZ3JhbUJ1dHRvbi9QaWN0b2dyYW1CdXR0b25cIjtcbmltcG9ydCB7IFN0YWNrIH0gZnJvbSBcIi4uL1N0YWNrL1N0YWNrXCI7XG5pbXBvcnQgeyB1c2VPdXRzaWRlQ2xpY2sgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL3VzZU91dHNpZGVDbGlja1wiO1xuXG5jb25zdCBDdXN0b21Db250YWluZXIgPSBzdHlsZWQoQ29udGFpbmVyKTx7IGhpZGVCb3JkZXI6IGJvb2xlYW4gfT4oXG4gICh7IHRoZW1lLCBoaWRlQm9yZGVyIH0pID0+ICh7XG4gICAgYm9yZGVyOiBgMXB4IHNvbGlkICR7dGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5wcmltYXJ5LmRlZmF1bHR9YCxcbiAgICAuLi4oaGlkZUJvcmRlciAmJiB7XG4gICAgICBib3JkZXJDb2xvcjogXCJ0cmFuc3BhcmVudFwiLFxuICAgIH0pLFxuICAgIGN1cnNvcjogXCJ0ZXh0XCIsXG4gICAgW2AmOmhhcyh0ZXh0YXJlYTpmb2N1cy12aXNpYmxlKWBdOiB7XG4gICAgICBvdXRsaW5lV2lkdGg6IDEsXG4gICAgICBvdXRsaW5lU3R5bGU6IFwic29saWRcIixcbiAgICAgIG91dGxpbmVPZmZzZXQ6IC0xLFxuICAgICAgb3V0bGluZUNvbG9yOiB0aGVtZS52YWx1ZXMuY29sb3IuYm9yZGVyLmFjY2VudC5kZWZhdWx0LFxuICAgICAgYm94U2hhZG93OiB0aGVtZS52YWx1ZXMuc2hhZG93LmZvY3VzUmluZyxcblxuICAgICAgXCJAbWVkaWEgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzowKVwiOiB7XG4gICAgICAgIG91dGxpbmVDb2xvcjogdGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5hY2NlbnQuZGVmYXVsdCxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZFRleHRBcmVhQ29udGFpbmVyID0gc3R5bGVkLmRpdih7XG4gIGJvcmRlclJhZGl1czogXCJpbmhlcml0XCIsXG4gIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG59KTtcblxudHlwZSBTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyUHJvcHMgPSBQaWNrPFxuICBQcm9tcHRJbnB1dFByb3BzLFxuICBcImlzTmF2QmFyVmFyaWFudFwiXG4+O1xuXG5jb25zdCBTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyID1cbiAgc3R5bGVkLmRpdjxTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyUHJvcHM+KFxuICAgICh7IHRoZW1lLCBpc05hdkJhclZhcmlhbnQgfSkgPT4gKHtcbiAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICB0b3A6IGlzTmF2QmFyVmFyaWFudFxuICAgICAgICA/IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHhzXG4gICAgICAgIDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5tLFxuICAgICAgcmlnaHQ6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubSxcbiAgICAgIHVzZXJTZWxlY3Q6IFwibm9uZVwiLFxuICAgICAgcG9pbnRlckV2ZW50czogXCJub25lXCIsXG4gICAgfSlcbiAgKTtcblxudHlwZSBTdHlsZWRDbGVhckJ1dHRvblByb3BzID0gUGljdG9ncmFtQnV0dG9uUHJvcHMgJlxuICBQaWNrPFByb21wdElucHV0UHJvcHMsIFwiaXNOYXZCYXJWYXJpYW50XCI+O1xuXG5jb25zdCBTdHlsZWRDbGVhckJ1dHRvbiA9IHN0eWxlZChQaWN0b2dyYW1CdXR0b24pPFN0eWxlZENsZWFyQnV0dG9uUHJvcHM+KFxuICAoeyB0aGVtZSwgaXNOYXZCYXJWYXJpYW50IH0pID0+ICh7XG4gICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICByaWdodDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zLFxuICAgIHRvcDogaXNOYXZCYXJWYXJpYW50ID8gMCA6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcucyxcbiAgfSlcbik7XG5cbi8vIFVzaW5nIGZsb2F0IGluIG9yZGVyIHRvIGF2b2lkIHRoZSBpbnZpc2libGUgYXJlYSBiZXR3ZWVuIHRoZSBzbG90c1xuLy8gdGhhdCBwcmV2ZW50cyB0aGUgdGV4dGFyZWEgZnJvbSBiZWluZyBmb2N1c2VkXG5jb25zdCBTdHlsZWRTbG90ID0gc3R5bGVkLmRpdjx7IHBvc2l0aW9uOiBcImxlZnRcIiB8IFwicmlnaHRcIiB9PihcbiAgKHsgcG9zaXRpb24sIHRoZW1lIH0pID0+ICh7XG4gICAgZmxvYXQ6IHBvc2l0aW9uLFxuICAgIG1hcmdpbjogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5tLFxuICAgIGN1cnNvcjogXCJkZWZhdWx0XCIsXG4gIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRDbGVhciA9IHN0eWxlZC5kaXYoe1xuICBjbGVhcjogXCJib3RoXCIsXG59KTtcblxudHlwZSBTZW5kQnV0dG9uUHJvcHMgPSBPbWl0PFJvdW5kQnV0dG9uUHJvcHMsIFwiaWNvblwiIHwgXCJ2YXJpYW50XCI+ICYge1xuICBpY29uPzogXCJhcnJvdy11cFwiIHwgXCJzZWFyY2hcIiB8IFwiYXJyb3ctcmlnaHRcIjtcbn07XG5cbmV4cG9ydCB0eXBlIFByb21wdElucHV0UHJvcHMgPSB7XG4gIFwiZGF0YS1lMmUtdGVzdC1pZFwiPzogc3RyaW5nO1xuICAvKiogVG9vbGJhciBlbGVtZW50cyBiZWxvdyB0ZXh0IGFyZWEgKi9cbiAgYm90dG9tVG9vbGJhcj86IHtcbiAgICBsZWZ0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgICByaWdodENvbnRlbnQ/OiBSZWFjdEVsZW1lbnQ7XG4gIH07XG4gIC8qKiBDdXJyZW50bHkgc2hvd3Mgc2VuZCBidXR0b24gcHJvY2Vzc2luZyBzdGF0ZSAgKi9cbiAgaXNQcm9jZXNzaW5nPzogYm9vbGVhbjtcbiAgc2VuZEJ1dHRvblByb3BzPzogU2VuZEJ1dHRvblByb3BzO1xuICBjbGVhckJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgaGludD86IFJlYWN0RWxlbWVudDtcbiAgLyoqIFNob3dzIGluIHRoZSBjbGVhciBidXR0b24gc3BhY2UgaW4gZW1wdHkgc3RhdGUgKi9cbiAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgb25DbGVhcjogKCkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCB3aGVuIHVzZXIgc2VsZWN0cyAob3IgcmVqZWN0cykgYSBsaXN0IGl0ZW0gZnJvbSBhdXRvY29tcGxldGUgbGlzdCAqL1xuICBvbkNvbXBsZXRlPzogKHtcbiAgICB2YWx1ZSxcbiAgICBjYXRlZ29yeSxcbiAgICBldnQsXG4gICAgaW5kZXgsXG4gIH06IHtcbiAgICB2YWx1ZTogTGlzdEl0ZW1WYWx1ZTtcbiAgICBjYXRlZ29yeT86IHN0cmluZztcbiAgICBldnQ/OiBTeW50aGV0aWNFdmVudDtcbiAgICBpbmRleD86IG51bWJlcjtcbiAgfSkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCBvbiBFbnRlciBrZXkgdG8gc3VibWl0IHRoZSBmb3JtICAqL1xuICBvbkVudGVyS2V5OiAoKSA9PiB2b2lkO1xufSAmIE9taXQ8XG4gIFByb21wdFRleHRBcmVhUHJvcHMsXG4gIFwiaXNDb2xsYXBzZWRcIiB8IFwiaXNBdXRvY29tcGxldGVMaXN0T3BlblwiIHwgXCJzZWxlY3RlZExpc3RJdGVtXCJcbj4gJlxuICBQaWNrPFxuICAgIEF1dG9jb21wbGV0ZUxpc3RQcm9wcyxcbiAgICBcImF1dG9jb21wbGV0ZUxpc3RJdGVtc1wiIHwgXCJhdXRvY29tcGxldGVMaXN0Rm9vdGVyXCIgfCBcInBvcnRhbENvbnRhaW5lclwiXG4gID47XG5cbmNvbnN0IGRlZmF1bHRTZW5kQnV0dG9uUHJvcHM6IFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgdHlwZTogXCJzdWJtaXRcIiBhcyBjb25zdCxcbiAgaWNvbjogXCJhcnJvdy11cFwiIGFzIGNvbnN0LFxufTtcblxuY29uc3QgUHJvbXB0SW5wdXRDb21wb25lbnQgPSBmb3J3YXJkUmVmKFxuICAoXG4gICAge1xuICAgICAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG4gICAgICBuYW1lLFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zID0gW10sXG4gICAgICB2YWx1ZSxcbiAgICAgIGJvdHRvbVRvb2xiYXIgPSB7IGxlZnRDb250ZW50OiBudWxsLCByaWdodENvbnRlbnQ6IG51bGwgfSxcbiAgICAgIGlzUHJvY2Vzc2luZyxcbiAgICAgIHNlbmRCdXR0b25Qcm9wcyA9IHt9LFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEZvb3RlcixcbiAgICAgIGNsZWFyQnV0dG9uQXJpYUxhYmVsID0gXCJDbGVhciBpbnB1dFwiLFxuICAgICAgaGludCxcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnQsXG4gICAgICBpc05hdkJhclZhcmlhbnQsXG4gICAgICBwb3J0YWxDb250YWluZXIsXG4gICAgICBvbkNoYW5nZSxcbiAgICAgIG9uQ29tcGxldGUsXG4gICAgICBvbkNsZWFyLFxuICAgICAgb25FbnRlcktleSxcbiAgICAgIG9uRm9jdXMsXG4gICAgICBvbkJsdXIsXG4gICAgICBvbktleURvd24sXG4gICAgICAuLi5yZXN0XG4gICAgfTogUHJvbXB0SW5wdXRQcm9wcyxcbiAgICByZWY6IFJlZk9iamVjdDxIVE1MVGV4dEFyZWFFbGVtZW50PlxuICApOiBSZWFjdEVsZW1lbnQgPT4ge1xuICAgIGNvbnN0IGNvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgdGV4dEFyZWFDb250YWluZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IGludGVybmFsUmVmID0gdXNlUmVmPEhUTUxUZXh0QXJlYUVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IFtzZWxlY3RlZEluZGV4LCBzZXRTZWxlY3RlZEluZGV4XSA9IHVzZVN0YXRlKC0xKTtcbiAgICBjb25zdCBbaXNDb2xsYXBzZWQsIHNldElzQ29sbGFwc2VkXSA9IHVzZVN0YXRlKGlzTmF2QmFyVmFyaWFudCk7XG4gICAgY29uc3QgdXNlclR5cGVkUXVlcnkgPSB1c2VSZWYoXCJcIik7XG4gICAgY29uc3QgW2lzQXV0b2NvbXBsZXRlTGlzdE9wZW4sIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IHRleHRBcmVhUmVmID0gcmVmIHx8IGludGVybmFsUmVmO1xuXG4gICAgY29uc3QgbWVyZ2VkU2VuZEJ1dHRvblByb3BzID0ge1xuICAgICAgLi4uZGVmYXVsdFNlbmRCdXR0b25Qcm9wcyxcbiAgICAgIC4uLnNlbmRCdXR0b25Qcm9wcyxcbiAgICB9O1xuXG4gICAgdXNlT3V0c2lkZUNsaWNrKFxuICAgICAgY29udGFpbmVyUmVmLFxuICAgICAgKGV2dCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgIWNvbnRhaW5lclJlZi5jdXJyZW50LmNvbnRhaW5zKGV2dC50YXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICAhcG9ydGFsQ29udGFpbmVyPy5jb250YWlucyhldnQudGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgZXZ0LnRhcmdldCAhPT0gbnVsbFxuICAgICAgICApIHtcbiAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgICFpc0NvbGxhcHNlZCAmJiBpc05hdkJhclZhcmlhbnRcbiAgICApO1xuXG4gICAgY29uc3QgY2xvc2VBdXRvY29tcGxldGVMaXN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgc2V0SXNBdXRvY29tcGxldGVMaXN0T3BlbihmYWxzZSk7XG4gICAgICBzZXRTZWxlY3RlZEluZGV4KC0xKTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBvcGVuQXV0b2NvbXBsZXRlTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmIChhdXRvY29tcGxldGVMaXN0SXRlbXMubGVuZ3RoKSB7XG4gICAgICAgIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW4odHJ1ZSk7XG4gICAgICAgIHNldFNlbGVjdGVkSW5kZXgoLTEpO1xuICAgICAgfVxuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXNdKTtcblxuICAgIGNvbnN0IGFjY2VwdFRleHRTZWxlY3Rpb24gPSAoKSA9PiB7XG4gICAgICB1c2VyVHlwZWRRdWVyeS5jdXJyZW50ID0gdmFsdWU7XG4gICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKHZhbHVlLmxlbmd0aCwgdmFsdWUubGVuZ3RoKTtcbiAgICB9O1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChhdXRvY29tcGxldGVMaXN0SXRlbXMubGVuZ3RoICYmICFpc0NvbGxhcHNlZCkge1xuICAgICAgICBvcGVuQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICB9XG4gICAgfSwgW1xuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLFxuICAgICAgb3BlbkF1dG9jb21wbGV0ZUxpc3QsXG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QsXG4gICAgICBpc0NvbGxhcHNlZCxcbiAgICBdKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodmFsdWUgJiYgdmFsdWUgIT09IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgJiYgaXNBdXRvY29tcGxldGVMaXN0T3Blbikge1xuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKFxuICAgICAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQubGVuZ3RoLFxuICAgICAgICAgIHZhbHVlLmxlbmd0aFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sIFt2YWx1ZSwgdGV4dEFyZWFSZWYsIGlzQXV0b2NvbXBsZXRlTGlzdE9wZW5dKTtcblxuICAgIC8vIERldGVybWluZSB3aGVuIGZvY3VzIGxlYXZlcyB0aGUgY29udGFpbmVyIHRvIGNvbGxhcHNlIGl0XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGxldCBoYW5kbGVyOiAoZXZ0OiBGb2N1c0V2ZW50KSA9PiB2b2lkO1xuICAgICAgY29uc3QgY29udGFpbmVyID0gY29udGFpbmVyUmVmLmN1cnJlbnQ7XG5cbiAgICAgIGlmIChpc05hdkJhclZhcmlhbnQgJiYgY29udGFpbmVyKSB7XG4gICAgICAgIGhhbmRsZXIgPSAoZXZ0OiBGb2N1c0V2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgIWNvbnRhaW5lclJlZi5jdXJyZW50LmNvbnRhaW5zKGV2dC5yZWxhdGVkVGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgICAhcG9ydGFsQ29udGFpbmVyPy5jb250YWlucyhldnQucmVsYXRlZFRhcmdldCBhcyBOb2RlKSAmJlxuICAgICAgICAgICAgZXZ0LnJlbGF0ZWRUYXJnZXQgIT09IG51bGxcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJmb2N1c291dFwiLCBoYW5kbGVyKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgaWYgKGNvbnRhaW5lcikge1xuICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwiZm9jdXNvdXRcIiwgaGFuZGxlcik7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfSwgW2lzTmF2QmFyVmFyaWFudCwgY29udGFpbmVyUmVmLCBwb3J0YWxDb250YWluZXJdKTtcblxuICAgIGNvbnN0IGZsYXR0ZW5lZExpc3RJdGVtcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgY29uc3QgbGlzdDogRmxhdHRlbmVkTGlzdEl0ZW1bXSA9IFtdO1xuXG4gICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXMuZm9yRWFjaCgobGlzdEl0ZW0pID0+IHtcbiAgICAgICAgbGlzdEl0ZW0uaXRlbXMuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICBsaXN0LnB1c2goe1xuICAgICAgICAgICAgY2F0ZWdvcnk6IGxpc3RJdGVtLmNhdGVnb3J5LFxuICAgICAgICAgICAgaW5kZXhJbkNhdGVnb3J5OiBpbmRleCxcbiAgICAgICAgICAgIHZhbHVlOiBpdGVtLnZhbHVlLFxuICAgICAgICAgICAgaWQ6IGdldExpc3RJdGVtSWQobmFtZSwgbGlzdEl0ZW0uY2F0ZWdvcnksIGluZGV4KSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBsaXN0O1xuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXMsIG5hbWVdKTtcblxuICAgIGNvbnN0IGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2UgPSAoaW5kZXg6IG51bWJlciwgZXZ0PzogU3ludGhldGljRXZlbnQpID0+IHtcbiAgICAgIHNldFNlbGVjdGVkSW5kZXgoaW5kZXgpO1xuICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICBjb25zdCB7IGNhdGVnb3J5LCB2YWx1ZTogaXRlbVZhbHVlIH0gPSBmbGF0dGVuZWRMaXN0SXRlbXNbaW5kZXhdO1xuXG4gICAgICAgIG9uQ29tcGxldGUoeyB2YWx1ZTogaXRlbVZhbHVlLCBjYXRlZ29yeSwgZXZ0LCBpbmRleCB9KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlTGlzdEl0ZW1DbGljayA9IChcbiAgICAgIGNhdGVnb3J5OiBzdHJpbmcsXG4gICAgICBpbmRleEluQ2F0ZWdvcnk6IG51bWJlcixcbiAgICAgIGV2dD86IE1vdXNlRXZlbnRcbiAgICApID0+IHtcbiAgICAgIGNvbnN0IGluZGV4ID0gZmxhdHRlbmVkTGlzdEl0ZW1zLmZpbmRJbmRleChcbiAgICAgICAgKGxpc3RJdGVtKSA9PlxuICAgICAgICAgIGxpc3RJdGVtLmNhdGVnb3J5ID09PSBjYXRlZ29yeSAmJlxuICAgICAgICAgIGxpc3RJdGVtLmluZGV4SW5DYXRlZ29yeSA9PT0gaW5kZXhJbkNhdGVnb3J5XG4gICAgICApO1xuXG4gICAgICBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlKGluZGV4LCBldnQpO1xuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVLZXlEb3duOiBLZXlib2FyZEV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIGlmIChpc0F1dG9jb21wbGV0ZUxpc3RPcGVuKSB7XG4gICAgICAgIHN3aXRjaCAoZXZ0LmtleSkge1xuICAgICAgICAgIGNhc2UgXCJFc2NhcGVcIjpcbiAgICAgICAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgICAgICAgb25Db21wbGV0ZSh7IHZhbHVlOiB1c2VyVHlwZWRRdWVyeS5jdXJyZW50LCBldnQgfSk7XG4gICAgICAgICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkVudGVyXCI6XG4gICAgICAgICAgICBpZiAoIWV2dC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICAgICAgICAgIGFjY2VwdFRleHRTZWxlY3Rpb24oKTtcblxuICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBvbkVudGVyS2V5Py4oKTtcbiAgICAgICAgICAgICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgICAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCIgXCI6XG4gICAgICAgICAgICBhY2NlcHRUZXh0U2VsZWN0aW9uKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiQXJyb3dVcFwiOlxuICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRJbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgIGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2Uoc2VsZWN0ZWRJbmRleCAtIDEsIGV2dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiQXJyb3dEb3duXCI6XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEluZGV4IDwgZmxhdHRlbmVkTGlzdEl0ZW1zLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZShzZWxlY3RlZEluZGV4ICsgMSwgZXZ0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN3aXRjaCAoZXZ0LmtleSkge1xuICAgICAgICAgIGNhc2UgXCJFc2NhcGVcIjpcbiAgICAgICAgICAgIG9uQ2xlYXI/LigpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkVudGVyXCI6XG4gICAgICAgICAgICBpZiAoIWV2dC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgb25FbnRlcktleT8uKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBvbktleURvd24/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVDaGFuZ2U6IENoYW5nZUV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgPSBldnQudGFyZ2V0LnZhbHVlO1xuICAgICAgb25DaGFuZ2UoZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlRm9jdXM6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgc2V0SXNDb2xsYXBzZWQoZmFsc2UpO1xuICAgICAgb25Gb2N1cz8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUJsdXI6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgaWYgKHZhbHVlICE9PSB1c2VyVHlwZWRRdWVyeS5jdXJyZW50KSB7XG4gICAgICAgIG9uQ29tcGxldGU/Lih7IHZhbHVlOiB1c2VyVHlwZWRRdWVyeS5jdXJyZW50LCBldnQgfSk7XG4gICAgICB9XG4gICAgICBvbkJsdXI/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVTZW5kQnV0dG9uQ2xpY2sgPSAoZXZ0OiBNb3VzZUV2ZW50PEhUTUxCdXR0b25FbGVtZW50PikgPT4ge1xuICAgICAgbWVyZ2VkU2VuZEJ1dHRvblByb3BzLm9uQ2xpY2s/LihldnQpO1xuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVQcmV2ZW50Rm9jdXMgPSAoZXZ0OiBSZWFjdC5Qb2ludGVyRXZlbnQpID0+IHtcbiAgICAgIC8vIFByZXZlbnQgdGhlIHRleHRhcmVhIGZyb20gYmVpbmcgdW5mb2N1c2VkXG4gICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlT25Db250YWluZXJQb2ludGVyRG93biA9IChldnQ6IFJlYWN0LlBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgLy8gRm9jdXMgdGV4dGFyZWEgd2hlbiBjbGlja2luZyBvbiB0aGUgY29udGFpbmVyIG9ubHlcbiAgICAgIGlmIChldnQudGFyZ2V0ID09PSBldnQuY3VycmVudFRhcmdldCkge1xuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3Qgc2VsZWN0ZWRMaXN0SXRlbSA9XG4gICAgICBzZWxlY3RlZEluZGV4ICE9PSAtMSA/IGZsYXR0ZW5lZExpc3RJdGVtc1tzZWxlY3RlZEluZGV4XSA6IG51bGw7XG5cbiAgICBjb25zdCBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50RWxtID0gZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudCA/IChcbiAgICAgIDxTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyXG4gICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgPlxuICAgICAgICA8VGV4dCBjb2xvcj1cInRlcnRpYXJ5XCI+e2VtcHR5U3RhdGVUb3BSaWdodENvbnRlbnR9PC9UZXh0PlxuICAgICAgPC9TdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyPlxuICAgICkgOiBudWxsO1xuXG4gICAgY29uc3QgY2xlYXJCdXR0b25FbG0gPSB2YWx1ZSA/IChcbiAgICAgIDxTdHlsZWRDbGVhckJ1dHRvblxuICAgICAgICBzaXplPVwic1wiXG4gICAgICAgIGljb249XCJ4LWNpcmNsZS1maWxsZWRcIlxuICAgICAgICBhcmlhLWxhYmVsPXtjbGVhckJ1dHRvbkFyaWFMYWJlbH1cbiAgICAgICAgaXNOYXZCYXJWYXJpYW50PXtpc05hdkJhclZhcmlhbnR9XG4gICAgICAgIG9uUG9pbnRlckRvd249e2hhbmRsZVByZXZlbnRGb2N1c31cbiAgICAgICAgb25DbGljaz17b25DbGVhcn1cbiAgICAgIC8+XG4gICAgKSA6IChcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRFbG1cbiAgICApO1xuXG4gICAgY29uc3QgaGludEVsbSA9ICEhaGludCAmJiAoXG4gICAgICA8SW5saW5lIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgPFRleHQgc2l6ZT1cInNcIiBjb2xvcj1cInRlcnRpYXJ5XCI+XG4gICAgICAgICAge2hpbnR9XG4gICAgICAgIDwvVGV4dD5cbiAgICAgIDwvSW5saW5lPlxuICAgICk7XG5cbiAgICBjb25zdCBib3R0b21Ub29sYmFyRWxtID0gIWlzQ29sbGFwc2VkICYmIChcbiAgICAgIDw+XG4gICAgICAgIDxTdHlsZWRTbG90IHBvc2l0aW9uPVwibGVmdFwiPntib3R0b21Ub29sYmFyLmxlZnRDb250ZW50fTwvU3R5bGVkU2xvdD5cbiAgICAgICAgPFN0eWxlZFNsb3QgcG9zaXRpb249XCJyaWdodFwiIGRhdGEtZTJlLXRlc3QtaWQ9XCJib3R0b21Ub29sYmFyXCI+XG4gICAgICAgICAgPElubGluZSBzcGFjZT1cInhzXCIgdkFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgIHtib3R0b21Ub29sYmFyLnJpZ2h0Q29udGVudH1cbiAgICAgICAgICAgIDxSb3VuZEJ1dHRvblxuICAgICAgICAgICAgICBhcmlhQXR0cmlidXRlcz17e1xuICAgICAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiBpc1Byb2Nlc3NpbmdcbiAgICAgICAgICAgICAgICAgID8gXCJQcm9jZXNzaW5nIHF1ZXJ5XCJcbiAgICAgICAgICAgICAgICAgIDogXCJTdWJtaXQgcXVlcnlcIixcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgey4uLm1lcmdlZFNlbmRCdXR0b25Qcm9wc31cbiAgICAgICAgICAgICAgZGlzYWJsZWQ9eyF2YWx1ZSB8fCBtZXJnZWRTZW5kQnV0dG9uUHJvcHMuZGlzYWJsZWR9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVNlbmRCdXR0b25DbGlja31cbiAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlUHJldmVudEZvY3VzfVxuICAgICAgICAgICAgICB2YXJpYW50PVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgIGljb249e2lzUHJvY2Vzc2luZyA/IFwic3RvcC1maWxsZWRcIiA6IG1lcmdlZFNlbmRCdXR0b25Qcm9wcy5pY29ufVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0lubGluZT5cbiAgICAgICAgPC9TdHlsZWRTbG90PlxuICAgICAgICA8U3R5bGVkQ2xlYXIgLz5cbiAgICAgIDwvPlxuICAgICk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGRhdGEtZTJlLXRlc3QtaWQ9e2RhdGFFMmVUZXN0SWR9XG4gICAgICAgICAgZGF0YS1kcy1pZD1cIlByb21wdElucHV0XCJcbiAgICAgICAgICByZWY9e2NvbnRhaW5lclJlZn1cbiAgICAgICAgICAvLyBUcmFuc2xhdGlvbiBkaXNhYmxlZCBmb3IgY29uc2lzdGVuY3kgd2l0aCB0aGUgYXV0b2NvbXBsZXRlIGxpc3RcbiAgICAgICAgICB0cmFuc2xhdGU9XCJub1wiXG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2sgc3BhY2U9XCJzXCI+XG4gICAgICAgICAgICA8Q3VzdG9tQ29udGFpbmVyXG4gICAgICAgICAgICAgIGVsZXZhdGlvbj17MH1cbiAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPXtpc0NvbGxhcHNlZCA/IFwieHNcIiA6IFwibVwifVxuICAgICAgICAgICAgICBoaWRlQm9yZGVyPXtpc0NvbGxhcHNlZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlT25Db250YWluZXJQb2ludGVyRG93bn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTdHlsZWRUZXh0QXJlYUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIDxQcm9tcHRUZXh0QXJlYVxuICAgICAgICAgICAgICAgICAgICB7Li4ucmVzdH1cbiAgICAgICAgICAgICAgICAgICAgZGF0YUUyZVRlc3RJZD17XG4gICAgICAgICAgICAgICAgICAgICAgZGF0YUUyZVRlc3RJZCA/IGAke2RhdGFFMmVUZXN0SWR9LWlucHV0YCA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgcmVmPXt0ZXh0QXJlYVJlZn1cbiAgICAgICAgICAgICAgICAgICAgaXNOYXZCYXJWYXJpYW50PXtpc05hdkJhclZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkTGlzdEl0ZW09e3NlbGVjdGVkTGlzdEl0ZW19XG4gICAgICAgICAgICAgICAgICAgIGlzQXV0b2NvbXBsZXRlTGlzdE9wZW49e2lzQXV0b2NvbXBsZXRlTGlzdE9wZW59XG4gICAgICAgICAgICAgICAgICAgIGlzQ29sbGFwc2VkPXtpc0NvbGxhcHNlZH1cbiAgICAgICAgICAgICAgICAgICAgb25Gb2N1cz17aGFuZGxlRm9jdXN9XG4gICAgICAgICAgICAgICAgICAgIG9uQmx1cj17aGFuZGxlQmx1cn1cbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUNoYW5nZX1cbiAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXtoYW5kbGVLZXlEb3dufVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIHtjbGVhckJ1dHRvbkVsbX1cbiAgICAgICAgICAgICAgICA8L1N0eWxlZFRleHRBcmVhQ29udGFpbmVyPlxuICAgICAgICAgICAgICAgIHtib3R0b21Ub29sYmFyRWxtfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvQ3VzdG9tQ29udGFpbmVyPlxuICAgICAgICAgICAge2hpbnRFbG19XG4gICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPEF1dG9jb21wbGV0ZUxpc3RcbiAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXM9e2F1dG9jb21wbGV0ZUxpc3RJdGVtc31cbiAgICAgICAgICB0cmlnZ2VyUmVmPXt0ZXh0QXJlYUNvbnRhaW5lclJlZn1cbiAgICAgICAgICBzZWxlY3RlZExpc3RJdGVtPXtzZWxlY3RlZExpc3RJdGVtfVxuICAgICAgICAgIGlzT3Blbj17aXNBdXRvY29tcGxldGVMaXN0T3Blbn1cbiAgICAgICAgICBhdXRvY29tcGxldGVMaXN0Rm9vdGVyPXthdXRvY29tcGxldGVMaXN0Rm9vdGVyfVxuICAgICAgICAgIHBvcnRhbENvbnRhaW5lcj17cG9ydGFsQ29udGFpbmVyfVxuICAgICAgICAgIG9uTGlzdEl0ZW1DbGljaz17aGFuZGxlTGlzdEl0ZW1DbGlja31cbiAgICAgICAgLz5cbiAgICAgIDwvPlxuICAgICk7XG4gIH1cbik7XG5cbmNvbnN0IEN1c3RvbUJ1dHRvbiA9IHN0eWxlZChCdXR0b24pKCh7IHRoZW1lIH0pID0+ICh7XG4gIGJvcmRlclJhZGl1czogdGhlbWUudmFyaWFibGVzLnNpemUuYm9yZGVyUmFkaXVzLmwsXG59KSk7XG5cbi8vIG5lZWQgdG8gc2ltcGxpZnkgdGhpcyB0eXBlIGZvciByZXVzZVxuY29uc3QgU3VnZ2VzdGlvbkJ1dHRvbiA9IGZvcndhcmRSZWYoXG4gIDxDIGV4dGVuZHMgUmVhY3QuRWxlbWVudFR5cGUgPSBcImJ1dHRvblwiPihcbiAgICBwcm9wczogUG9seW1vcnBoaWNDb21wb25lbnRQcm9wc1dpdGhSZWY8XG4gICAgICBDLFxuICAgICAgT21pdDxCdXR0b25Qcm9wcywgXCJ2YXJpYW50XCIgfCBcInNpemVcIiB8IFwicmVmXCI+XG4gICAgPixcbiAgICByZWY6IFBvbHltb3JwaGljUmVmPEM+XG4gICkgPT4gPEN1c3RvbUJ1dHRvbiB7Li4ucHJvcHN9IHZhcmlhbnQ9XCJzZWNvbmRhcnlcIiBzaXplPVwic1wiIHJlZj17cmVmfSAvPlxuKTtcblxuZXhwb3J0IGNvbnN0IFByb21wdElucHV0ID0gT2JqZWN0LmFzc2lnbihQcm9tcHRJbnB1dENvbXBvbmVudCwge1xuICBTdWdnZXN0aW9uQnV0dG9uLFxufSkgYXMgdHlwZW9mIFByb21wdElucHV0Q29tcG9uZW50ICYge1xuICBTdWdnZXN0aW9uQnV0dG9uOiB0eXBlb2YgU3VnZ2VzdGlvbkJ1dHRvbjtcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBNEdvQiJ9 */"),defaultSendButtonProps={type:"submit",icon:"arrow-up"},PromptInputComponent=(0,_react.forwardRef)(({"data-e2e-test-id":dataE2eTestId,name,autocompleteListItems=[],value,bottomToolbar={leftContent:null,rightContent:null},isProcessing,sendButtonProps={},autocompleteListFooter,clearButtonAriaLabel="Clear input",hint,emptyStateTopRightContent,isNavBarVariant,portalContainer,onChange,onComplete,onClear,onEnterKey,onFocus,onBlur,onKeyDown,...rest},ref)=>{let containerRef=(0,_react.useRef)(null),textAreaContainerRef=(0,_react.useRef)(null),internalRef=(0,_react.useRef)(null),[selectedIndex,setSelectedIndex]=(0,_react.useState)(-1),[isCollapsed,setIsCollapsed]=(0,_react.useState)(isNavBarVariant),userTypedQuery=(0,_react.useRef)(""),[isAutocompleteListOpen,setIsAutocompleteListOpen]=(0,_react.useState)(!1),textAreaRef=ref||internalRef,mergedSendButtonProps={...defaultSendButtonProps,...sendButtonProps};(0,_useOutsideClick.useOutsideClick)(containerRef,evt=>{containerRef.current.contains(evt.target)||portalContainer?.contains(evt.target)||null===evt.target||setIsCollapsed(!0)},!isCollapsed&&isNavBarVariant);let closeAutocompleteList=(0,_react.useCallback)(()=>{setIsAutocompleteListOpen(!1),setSelectedIndex(-1)},[]),openAutocompleteList=(0,_react.useCallback)(()=>{autocompleteListItems.length&&(setIsAutocompleteListOpen(!0),setSelectedIndex(-1))},[autocompleteListItems]),acceptTextSelection=()=>{userTypedQuery.current=value,textAreaRef.current.setSelectionRange(value.length,value.length)};(0,_react.useEffect)(()=>{autocompleteListItems.length&&!isCollapsed?openAutocompleteList():closeAutocompleteList()},[autocompleteListItems,openAutocompleteList,closeAutocompleteList,isCollapsed]),(0,_react.useEffect)(()=>{value&&value!==userTypedQuery.current&&isAutocompleteListOpen&&textAreaRef.current.setSelectionRange(userTypedQuery.current.length,value.length)},[value,textAreaRef,isAutocompleteListOpen]),(0,_react.useEffect)(()=>{let handler,container=containerRef.current;return isNavBarVariant&&container&&(handler=evt=>{containerRef.current.contains(evt.relatedTarget)||portalContainer?.contains(evt.relatedTarget)||null===evt.relatedTarget||setIsCollapsed(!0)},window.addEventListener("focusout",handler)),()=>{container&&window.removeEventListener("focusout",handler)}},[isNavBarVariant,containerRef,portalContainer]);let flattenedListItems=(0,_react.useMemo)(()=>{let list=[];return autocompleteListItems.forEach(listItem=>{listItem.items.forEach((item,index)=>{list.push({category:listItem.category,indexInCategory:index,value:item.value,id:(0,_CategoryList.getListItemId)(name,listItem.category,index)})})}),list},[autocompleteListItems,name]),handleSelectedIndexChange=(index,evt)=>{if(setSelectedIndex(index),-1!==index){let{category,value:itemValue}=flattenedListItems[index];onComplete({value:itemValue,category,evt,index})}},handlePreventFocus=evt=>{evt.preventDefault()},selectedListItem=-1!==selectedIndex?flattenedListItems[selectedIndex]:null,emptyStateTopRightContentElm=emptyStateTopRightContent?_react.default.createElement(StyledEmptyStateTopRightContentContainer,{isNavBarVariant:isNavBarVariant},_react.default.createElement(_Text.Text,{color:"tertiary"},emptyStateTopRightContent)):null,clearButtonElm=value?_react.default.createElement(StyledClearButton,{size:"s",icon:"x-circle-filled","aria-label":clearButtonAriaLabel,isNavBarVariant:isNavBarVariant,onPointerDown:handlePreventFocus,onClick:onClear}):emptyStateTopRightContentElm,hintElm=!!hint&&_react.default.createElement(_Inline.Inline,{alignItems:"center"},_react.default.createElement(_Text.Text,{size:"s",color:"tertiary"},hint)),bottomToolbarElm=!isCollapsed&&_react.default.createElement(_react.default.Fragment,null,_react.default.createElement(StyledSlot,{position:"left"},bottomToolbar.leftContent),_react.default.createElement(StyledSlot,{position:"right","data-e2e-test-id":"bottomToolbar"},_react.default.createElement(_Inline.Inline,{space:"xs",vAlignItems:"center"},bottomToolbar.rightContent,_react.default.createElement(_RoundButton.RoundButton,{ariaAttributes:{"aria-label":isProcessing?"Processing query":"Submit query"},...mergedSendButtonProps,disabled:!value||mergedSendButtonProps.disabled,onClick:evt=>{mergedSendButtonProps.onClick?.(evt),closeAutocompleteList(),isNavBarVariant&&setIsCollapsed(!0)},onPointerDown:handlePreventFocus,variant:"primary",icon:isProcessing?"stop-filled":mergedSendButtonProps.icon}))),_react.default.createElement(StyledClear,null));return _react.default.createElement(_react.default.Fragment,null,_react.default.createElement("div",{"data-e2e-test-id":dataE2eTestId,"data-ds-id":"PromptInput",ref:containerRef,translate:"no"},_react.default.createElement(_Stack.Stack,{space:"s"},_react.default.createElement(CustomContainer,{elevation:0,borderRadius:isCollapsed?"xs":"m",hideBorder:isCollapsed},_react.default.createElement("div",{ref:textAreaContainerRef,onPointerDown:evt=>{evt.target===evt.currentTarget&&(textAreaRef.current?.focus(),evt.preventDefault())}},_react.default.createElement(StyledTextAreaContainer,null,_react.default.createElement(_PromptTextArea.PromptTextArea,{...rest,dataE2eTestId:dataE2eTestId?`${dataE2eTestId}-input`:void 0,name:name,value:value,ref:textAreaRef,isNavBarVariant:isNavBarVariant,selectedListItem:selectedListItem,isAutocompleteListOpen:isAutocompleteListOpen,isCollapsed:isCollapsed,onFocus:evt=>{setIsCollapsed(!1),onFocus?.(evt)},onBlur:evt=>{value!==userTypedQuery.current&&onComplete?.({value:userTypedQuery.current,evt}),onBlur?.(evt)},onChange:evt=>{userTypedQuery.current=evt.target.value,onChange(evt)},onKeyDown:evt=>{if(isAutocompleteListOpen)switch(evt.key){case"Escape":closeAutocompleteList(),onComplete({value:userTypedQuery.current,evt}),isNavBarVariant&&setIsCollapsed(!0);break;case"Enter":!evt.shiftKey&&(evt.preventDefault(),closeAutocompleteList(),acceptTextSelection(),value&&(onEnterKey?.(),isNavBarVariant&&setIsCollapsed(!0)));break;case" ":acceptTextSelection();break;case"ArrowUp":evt.preventDefault(),selectedIndex>-1&&handleSelectedIndexChange(selectedIndex-1,evt);break;case"ArrowDown":evt.preventDefault(),selectedIndex<flattenedListItems.length-1&&handleSelectedIndexChange(selectedIndex+1,evt)}else switch(evt.key){case"Escape":onClear?.();break;case"Enter":!evt.shiftKey&&(evt.preventDefault(),value&&onEnterKey?.())}onKeyDown?.(evt)}}),clearButtonElm),bottomToolbarElm)),hintElm)),_react.default.createElement(_AutocompleteList.AutocompleteList,{name:name,value:value,autocompleteListItems:autocompleteListItems,triggerRef:textAreaContainerRef,selectedListItem:selectedListItem,isOpen:isAutocompleteListOpen,autocompleteListFooter:autocompleteListFooter,portalContainer:portalContainer,onListItemClick:(category,indexInCategory,evt)=>{handleSelectedIndexChange(flattenedListItems.findIndex(listItem=>listItem.category===category&&listItem.indexInCategory===indexInCategory),evt),closeAutocompleteList(),isNavBarVariant&&setIsCollapsed(!0)}}))}),CustomButton=(0,_styled.default)(_Button.Button,{target:"e1gnreap6",label:"CustomButton"})(({theme})=>({borderRadius:theme.variables.size.borderRadius.l}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUHJvbXB0SW5wdXQvUHJvbXB0SW5wdXQudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Qcm9tcHRJbnB1dC9Qcm9tcHRJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBSZWFjdEVsZW1lbnQsXG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlZk9iamVjdCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIFN5bnRoZXRpY0V2ZW50LFxuICBNb3VzZUV2ZW50LFxufSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZVJlZixcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG4gIGZvcndhcmRSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgdHlwZSB7IFByb21wdFRleHRBcmVhUHJvcHMgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHsgUHJvbXB0VGV4dEFyZWEgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHsgQ29udGFpbmVyIH0gZnJvbSBcIi4uL0NvbnRhaW5lclwiO1xuaW1wb3J0IHR5cGUgeyBBdXRvY29tcGxldGVMaXN0UHJvcHMgfSBmcm9tIFwiLi9BdXRvY29tcGxldGVMaXN0XCI7XG5pbXBvcnQgeyBBdXRvY29tcGxldGVMaXN0IH0gZnJvbSBcIi4vQXV0b2NvbXBsZXRlTGlzdFwiO1xuaW1wb3J0IHtcbiAgZ2V0TGlzdEl0ZW1JZCxcbiAgdHlwZSBGbGF0dGVuZWRMaXN0SXRlbSxcbiAgdHlwZSBMaXN0SXRlbVZhbHVlLFxufSBmcm9tIFwiLi9DYXRlZ29yeUxpc3RcIjtcbmltcG9ydCB7IFRleHQgfSBmcm9tIFwiLi4vVHlwb2dyYXBoeS9UZXh0XCI7XG5pbXBvcnQgeyBCdXR0b24sIHR5cGUgQnV0dG9uUHJvcHMgfSBmcm9tIFwiLi4vQnV0dG9uL0J1dHRvblwiO1xuaW1wb3J0IHR5cGUge1xuICBQb2x5bW9ycGhpY1JlZixcbiAgUG9seW1vcnBoaWNDb21wb25lbnRQcm9wc1dpdGhSZWYsXG59IGZyb20gXCIuLi8uLi90eXBlc1wiO1xuaW1wb3J0IHsgSW5saW5lIH0gZnJvbSBcIi4uL0lubGluZS9JbmxpbmVcIjtcbmltcG9ydCB0eXBlIHsgUm91bmRCdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9Sb3VuZEJ1dHRvbi9Sb3VuZEJ1dHRvblwiO1xuaW1wb3J0IHsgUm91bmRCdXR0b24gfSBmcm9tIFwiLi4vUm91bmRCdXR0b24vUm91bmRCdXR0b25cIjtcbmltcG9ydCB0eXBlIHsgUGljdG9ncmFtQnV0dG9uUHJvcHMgfSBmcm9tIFwiLi4vUGljdG9ncmFtQnV0dG9uL1BpY3RvZ3JhbUJ1dHRvblwiO1xuaW1wb3J0IHsgUGljdG9ncmFtQnV0dG9uIH0gZnJvbSBcIi4uL1BpY3RvZ3JhbUJ1dHRvbi9QaWN0b2dyYW1CdXR0b25cIjtcbmltcG9ydCB7IFN0YWNrIH0gZnJvbSBcIi4uL1N0YWNrL1N0YWNrXCI7XG5pbXBvcnQgeyB1c2VPdXRzaWRlQ2xpY2sgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL3VzZU91dHNpZGVDbGlja1wiO1xuXG5jb25zdCBDdXN0b21Db250YWluZXIgPSBzdHlsZWQoQ29udGFpbmVyKTx7IGhpZGVCb3JkZXI6IGJvb2xlYW4gfT4oXG4gICh7IHRoZW1lLCBoaWRlQm9yZGVyIH0pID0+ICh7XG4gICAgYm9yZGVyOiBgMXB4IHNvbGlkICR7dGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5wcmltYXJ5LmRlZmF1bHR9YCxcbiAgICAuLi4oaGlkZUJvcmRlciAmJiB7XG4gICAgICBib3JkZXJDb2xvcjogXCJ0cmFuc3BhcmVudFwiLFxuICAgIH0pLFxuICAgIGN1cnNvcjogXCJ0ZXh0XCIsXG4gICAgW2AmOmhhcyh0ZXh0YXJlYTpmb2N1cy12aXNpYmxlKWBdOiB7XG4gICAgICBvdXRsaW5lV2lkdGg6IDEsXG4gICAgICBvdXRsaW5lU3R5bGU6IFwic29saWRcIixcbiAgICAgIG91dGxpbmVPZmZzZXQ6IC0xLFxuICAgICAgb3V0bGluZUNvbG9yOiB0aGVtZS52YWx1ZXMuY29sb3IuYm9yZGVyLmFjY2VudC5kZWZhdWx0LFxuICAgICAgYm94U2hhZG93OiB0aGVtZS52YWx1ZXMuc2hhZG93LmZvY3VzUmluZyxcblxuICAgICAgXCJAbWVkaWEgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzowKVwiOiB7XG4gICAgICAgIG91dGxpbmVDb2xvcjogdGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5hY2NlbnQuZGVmYXVsdCxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZFRleHRBcmVhQ29udGFpbmVyID0gc3R5bGVkLmRpdih7XG4gIGJvcmRlclJhZGl1czogXCJpbmhlcml0XCIsXG4gIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG59KTtcblxudHlwZSBTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyUHJvcHMgPSBQaWNrPFxuICBQcm9tcHRJbnB1dFByb3BzLFxuICBcImlzTmF2QmFyVmFyaWFudFwiXG4+O1xuXG5jb25zdCBTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyID1cbiAgc3R5bGVkLmRpdjxTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyUHJvcHM+KFxuICAgICh7IHRoZW1lLCBpc05hdkJhclZhcmlhbnQgfSkgPT4gKHtcbiAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICB0b3A6IGlzTmF2QmFyVmFyaWFudFxuICAgICAgICA/IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHhzXG4gICAgICAgIDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5tLFxuICAgICAgcmlnaHQ6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubSxcbiAgICAgIHVzZXJTZWxlY3Q6IFwibm9uZVwiLFxuICAgICAgcG9pbnRlckV2ZW50czogXCJub25lXCIsXG4gICAgfSlcbiAgKTtcblxudHlwZSBTdHlsZWRDbGVhckJ1dHRvblByb3BzID0gUGljdG9ncmFtQnV0dG9uUHJvcHMgJlxuICBQaWNrPFByb21wdElucHV0UHJvcHMsIFwiaXNOYXZCYXJWYXJpYW50XCI+O1xuXG5jb25zdCBTdHlsZWRDbGVhckJ1dHRvbiA9IHN0eWxlZChQaWN0b2dyYW1CdXR0b24pPFN0eWxlZENsZWFyQnV0dG9uUHJvcHM+KFxuICAoeyB0aGVtZSwgaXNOYXZCYXJWYXJpYW50IH0pID0+ICh7XG4gICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICByaWdodDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zLFxuICAgIHRvcDogaXNOYXZCYXJWYXJpYW50ID8gMCA6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcucyxcbiAgfSlcbik7XG5cbi8vIFVzaW5nIGZsb2F0IGluIG9yZGVyIHRvIGF2b2lkIHRoZSBpbnZpc2libGUgYXJlYSBiZXR3ZWVuIHRoZSBzbG90c1xuLy8gdGhhdCBwcmV2ZW50cyB0aGUgdGV4dGFyZWEgZnJvbSBiZWluZyBmb2N1c2VkXG5jb25zdCBTdHlsZWRTbG90ID0gc3R5bGVkLmRpdjx7IHBvc2l0aW9uOiBcImxlZnRcIiB8IFwicmlnaHRcIiB9PihcbiAgKHsgcG9zaXRpb24sIHRoZW1lIH0pID0+ICh7XG4gICAgZmxvYXQ6IHBvc2l0aW9uLFxuICAgIG1hcmdpbjogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5tLFxuICAgIGN1cnNvcjogXCJkZWZhdWx0XCIsXG4gIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRDbGVhciA9IHN0eWxlZC5kaXYoe1xuICBjbGVhcjogXCJib3RoXCIsXG59KTtcblxudHlwZSBTZW5kQnV0dG9uUHJvcHMgPSBPbWl0PFJvdW5kQnV0dG9uUHJvcHMsIFwiaWNvblwiIHwgXCJ2YXJpYW50XCI+ICYge1xuICBpY29uPzogXCJhcnJvdy11cFwiIHwgXCJzZWFyY2hcIiB8IFwiYXJyb3ctcmlnaHRcIjtcbn07XG5cbmV4cG9ydCB0eXBlIFByb21wdElucHV0UHJvcHMgPSB7XG4gIFwiZGF0YS1lMmUtdGVzdC1pZFwiPzogc3RyaW5nO1xuICAvKiogVG9vbGJhciBlbGVtZW50cyBiZWxvdyB0ZXh0IGFyZWEgKi9cbiAgYm90dG9tVG9vbGJhcj86IHtcbiAgICBsZWZ0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgICByaWdodENvbnRlbnQ/OiBSZWFjdEVsZW1lbnQ7XG4gIH07XG4gIC8qKiBDdXJyZW50bHkgc2hvd3Mgc2VuZCBidXR0b24gcHJvY2Vzc2luZyBzdGF0ZSAgKi9cbiAgaXNQcm9jZXNzaW5nPzogYm9vbGVhbjtcbiAgc2VuZEJ1dHRvblByb3BzPzogU2VuZEJ1dHRvblByb3BzO1xuICBjbGVhckJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgaGludD86IFJlYWN0RWxlbWVudDtcbiAgLyoqIFNob3dzIGluIHRoZSBjbGVhciBidXR0b24gc3BhY2UgaW4gZW1wdHkgc3RhdGUgKi9cbiAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgb25DbGVhcjogKCkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCB3aGVuIHVzZXIgc2VsZWN0cyAob3IgcmVqZWN0cykgYSBsaXN0IGl0ZW0gZnJvbSBhdXRvY29tcGxldGUgbGlzdCAqL1xuICBvbkNvbXBsZXRlPzogKHtcbiAgICB2YWx1ZSxcbiAgICBjYXRlZ29yeSxcbiAgICBldnQsXG4gICAgaW5kZXgsXG4gIH06IHtcbiAgICB2YWx1ZTogTGlzdEl0ZW1WYWx1ZTtcbiAgICBjYXRlZ29yeT86IHN0cmluZztcbiAgICBldnQ/OiBTeW50aGV0aWNFdmVudDtcbiAgICBpbmRleD86IG51bWJlcjtcbiAgfSkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCBvbiBFbnRlciBrZXkgdG8gc3VibWl0IHRoZSBmb3JtICAqL1xuICBvbkVudGVyS2V5OiAoKSA9PiB2b2lkO1xufSAmIE9taXQ8XG4gIFByb21wdFRleHRBcmVhUHJvcHMsXG4gIFwiaXNDb2xsYXBzZWRcIiB8IFwiaXNBdXRvY29tcGxldGVMaXN0T3BlblwiIHwgXCJzZWxlY3RlZExpc3RJdGVtXCJcbj4gJlxuICBQaWNrPFxuICAgIEF1dG9jb21wbGV0ZUxpc3RQcm9wcyxcbiAgICBcImF1dG9jb21wbGV0ZUxpc3RJdGVtc1wiIHwgXCJhdXRvY29tcGxldGVMaXN0Rm9vdGVyXCIgfCBcInBvcnRhbENvbnRhaW5lclwiXG4gID47XG5cbmNvbnN0IGRlZmF1bHRTZW5kQnV0dG9uUHJvcHM6IFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgdHlwZTogXCJzdWJtaXRcIiBhcyBjb25zdCxcbiAgaWNvbjogXCJhcnJvdy11cFwiIGFzIGNvbnN0LFxufTtcblxuY29uc3QgUHJvbXB0SW5wdXRDb21wb25lbnQgPSBmb3J3YXJkUmVmKFxuICAoXG4gICAge1xuICAgICAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG4gICAgICBuYW1lLFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zID0gW10sXG4gICAgICB2YWx1ZSxcbiAgICAgIGJvdHRvbVRvb2xiYXIgPSB7IGxlZnRDb250ZW50OiBudWxsLCByaWdodENvbnRlbnQ6IG51bGwgfSxcbiAgICAgIGlzUHJvY2Vzc2luZyxcbiAgICAgIHNlbmRCdXR0b25Qcm9wcyA9IHt9LFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEZvb3RlcixcbiAgICAgIGNsZWFyQnV0dG9uQXJpYUxhYmVsID0gXCJDbGVhciBpbnB1dFwiLFxuICAgICAgaGludCxcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnQsXG4gICAgICBpc05hdkJhclZhcmlhbnQsXG4gICAgICBwb3J0YWxDb250YWluZXIsXG4gICAgICBvbkNoYW5nZSxcbiAgICAgIG9uQ29tcGxldGUsXG4gICAgICBvbkNsZWFyLFxuICAgICAgb25FbnRlcktleSxcbiAgICAgIG9uRm9jdXMsXG4gICAgICBvbkJsdXIsXG4gICAgICBvbktleURvd24sXG4gICAgICAuLi5yZXN0XG4gICAgfTogUHJvbXB0SW5wdXRQcm9wcyxcbiAgICByZWY6IFJlZk9iamVjdDxIVE1MVGV4dEFyZWFFbGVtZW50PlxuICApOiBSZWFjdEVsZW1lbnQgPT4ge1xuICAgIGNvbnN0IGNvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgdGV4dEFyZWFDb250YWluZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IGludGVybmFsUmVmID0gdXNlUmVmPEhUTUxUZXh0QXJlYUVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IFtzZWxlY3RlZEluZGV4LCBzZXRTZWxlY3RlZEluZGV4XSA9IHVzZVN0YXRlKC0xKTtcbiAgICBjb25zdCBbaXNDb2xsYXBzZWQsIHNldElzQ29sbGFwc2VkXSA9IHVzZVN0YXRlKGlzTmF2QmFyVmFyaWFudCk7XG4gICAgY29uc3QgdXNlclR5cGVkUXVlcnkgPSB1c2VSZWYoXCJcIik7XG4gICAgY29uc3QgW2lzQXV0b2NvbXBsZXRlTGlzdE9wZW4sIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IHRleHRBcmVhUmVmID0gcmVmIHx8IGludGVybmFsUmVmO1xuXG4gICAgY29uc3QgbWVyZ2VkU2VuZEJ1dHRvblByb3BzID0ge1xuICAgICAgLi4uZGVmYXVsdFNlbmRCdXR0b25Qcm9wcyxcbiAgICAgIC4uLnNlbmRCdXR0b25Qcm9wcyxcbiAgICB9O1xuXG4gICAgdXNlT3V0c2lkZUNsaWNrKFxuICAgICAgY29udGFpbmVyUmVmLFxuICAgICAgKGV2dCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgIWNvbnRhaW5lclJlZi5jdXJyZW50LmNvbnRhaW5zKGV2dC50YXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICAhcG9ydGFsQ29udGFpbmVyPy5jb250YWlucyhldnQudGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgZXZ0LnRhcmdldCAhPT0gbnVsbFxuICAgICAgICApIHtcbiAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgICFpc0NvbGxhcHNlZCAmJiBpc05hdkJhclZhcmlhbnRcbiAgICApO1xuXG4gICAgY29uc3QgY2xvc2VBdXRvY29tcGxldGVMaXN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgc2V0SXNBdXRvY29tcGxldGVMaXN0T3BlbihmYWxzZSk7XG4gICAgICBzZXRTZWxlY3RlZEluZGV4KC0xKTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBvcGVuQXV0b2NvbXBsZXRlTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmIChhdXRvY29tcGxldGVMaXN0SXRlbXMubGVuZ3RoKSB7XG4gICAgICAgIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW4odHJ1ZSk7XG4gICAgICAgIHNldFNlbGVjdGVkSW5kZXgoLTEpO1xuICAgICAgfVxuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXNdKTtcblxuICAgIGNvbnN0IGFjY2VwdFRleHRTZWxlY3Rpb24gPSAoKSA9PiB7XG4gICAgICB1c2VyVHlwZWRRdWVyeS5jdXJyZW50ID0gdmFsdWU7XG4gICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKHZhbHVlLmxlbmd0aCwgdmFsdWUubGVuZ3RoKTtcbiAgICB9O1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChhdXRvY29tcGxldGVMaXN0SXRlbXMubGVuZ3RoICYmICFpc0NvbGxhcHNlZCkge1xuICAgICAgICBvcGVuQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICB9XG4gICAgfSwgW1xuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLFxuICAgICAgb3BlbkF1dG9jb21wbGV0ZUxpc3QsXG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QsXG4gICAgICBpc0NvbGxhcHNlZCxcbiAgICBdKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodmFsdWUgJiYgdmFsdWUgIT09IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgJiYgaXNBdXRvY29tcGxldGVMaXN0T3Blbikge1xuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKFxuICAgICAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQubGVuZ3RoLFxuICAgICAgICAgIHZhbHVlLmxlbmd0aFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sIFt2YWx1ZSwgdGV4dEFyZWFSZWYsIGlzQXV0b2NvbXBsZXRlTGlzdE9wZW5dKTtcblxuICAgIC8vIERldGVybWluZSB3aGVuIGZvY3VzIGxlYXZlcyB0aGUgY29udGFpbmVyIHRvIGNvbGxhcHNlIGl0XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGxldCBoYW5kbGVyOiAoZXZ0OiBGb2N1c0V2ZW50KSA9PiB2b2lkO1xuICAgICAgY29uc3QgY29udGFpbmVyID0gY29udGFpbmVyUmVmLmN1cnJlbnQ7XG5cbiAgICAgIGlmIChpc05hdkJhclZhcmlhbnQgJiYgY29udGFpbmVyKSB7XG4gICAgICAgIGhhbmRsZXIgPSAoZXZ0OiBGb2N1c0V2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgIWNvbnRhaW5lclJlZi5jdXJyZW50LmNvbnRhaW5zKGV2dC5yZWxhdGVkVGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgICAhcG9ydGFsQ29udGFpbmVyPy5jb250YWlucyhldnQucmVsYXRlZFRhcmdldCBhcyBOb2RlKSAmJlxuICAgICAgICAgICAgZXZ0LnJlbGF0ZWRUYXJnZXQgIT09IG51bGxcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJmb2N1c291dFwiLCBoYW5kbGVyKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgaWYgKGNvbnRhaW5lcikge1xuICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwiZm9jdXNvdXRcIiwgaGFuZGxlcik7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfSwgW2lzTmF2QmFyVmFyaWFudCwgY29udGFpbmVyUmVmLCBwb3J0YWxDb250YWluZXJdKTtcblxuICAgIGNvbnN0IGZsYXR0ZW5lZExpc3RJdGVtcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgY29uc3QgbGlzdDogRmxhdHRlbmVkTGlzdEl0ZW1bXSA9IFtdO1xuXG4gICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXMuZm9yRWFjaCgobGlzdEl0ZW0pID0+IHtcbiAgICAgICAgbGlzdEl0ZW0uaXRlbXMuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICBsaXN0LnB1c2goe1xuICAgICAgICAgICAgY2F0ZWdvcnk6IGxpc3RJdGVtLmNhdGVnb3J5LFxuICAgICAgICAgICAgaW5kZXhJbkNhdGVnb3J5OiBpbmRleCxcbiAgICAgICAgICAgIHZhbHVlOiBpdGVtLnZhbHVlLFxuICAgICAgICAgICAgaWQ6IGdldExpc3RJdGVtSWQobmFtZSwgbGlzdEl0ZW0uY2F0ZWdvcnksIGluZGV4KSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBsaXN0O1xuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXMsIG5hbWVdKTtcblxuICAgIGNvbnN0IGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2UgPSAoaW5kZXg6IG51bWJlciwgZXZ0PzogU3ludGhldGljRXZlbnQpID0+IHtcbiAgICAgIHNldFNlbGVjdGVkSW5kZXgoaW5kZXgpO1xuICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICBjb25zdCB7IGNhdGVnb3J5LCB2YWx1ZTogaXRlbVZhbHVlIH0gPSBmbGF0dGVuZWRMaXN0SXRlbXNbaW5kZXhdO1xuXG4gICAgICAgIG9uQ29tcGxldGUoeyB2YWx1ZTogaXRlbVZhbHVlLCBjYXRlZ29yeSwgZXZ0LCBpbmRleCB9KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlTGlzdEl0ZW1DbGljayA9IChcbiAgICAgIGNhdGVnb3J5OiBzdHJpbmcsXG4gICAgICBpbmRleEluQ2F0ZWdvcnk6IG51bWJlcixcbiAgICAgIGV2dD86IE1vdXNlRXZlbnRcbiAgICApID0+IHtcbiAgICAgIGNvbnN0IGluZGV4ID0gZmxhdHRlbmVkTGlzdEl0ZW1zLmZpbmRJbmRleChcbiAgICAgICAgKGxpc3RJdGVtKSA9PlxuICAgICAgICAgIGxpc3RJdGVtLmNhdGVnb3J5ID09PSBjYXRlZ29yeSAmJlxuICAgICAgICAgIGxpc3RJdGVtLmluZGV4SW5DYXRlZ29yeSA9PT0gaW5kZXhJbkNhdGVnb3J5XG4gICAgICApO1xuXG4gICAgICBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlKGluZGV4LCBldnQpO1xuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVLZXlEb3duOiBLZXlib2FyZEV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIGlmIChpc0F1dG9jb21wbGV0ZUxpc3RPcGVuKSB7XG4gICAgICAgIHN3aXRjaCAoZXZ0LmtleSkge1xuICAgICAgICAgIGNhc2UgXCJFc2NhcGVcIjpcbiAgICAgICAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgICAgICAgb25Db21wbGV0ZSh7IHZhbHVlOiB1c2VyVHlwZWRRdWVyeS5jdXJyZW50LCBldnQgfSk7XG4gICAgICAgICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkVudGVyXCI6XG4gICAgICAgICAgICBpZiAoIWV2dC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICAgICAgICAgIGFjY2VwdFRleHRTZWxlY3Rpb24oKTtcblxuICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBvbkVudGVyS2V5Py4oKTtcbiAgICAgICAgICAgICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgICAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCIgXCI6XG4gICAgICAgICAgICBhY2NlcHRUZXh0U2VsZWN0aW9uKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiQXJyb3dVcFwiOlxuICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRJbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgIGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2Uoc2VsZWN0ZWRJbmRleCAtIDEsIGV2dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiQXJyb3dEb3duXCI6XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEluZGV4IDwgZmxhdHRlbmVkTGlzdEl0ZW1zLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZShzZWxlY3RlZEluZGV4ICsgMSwgZXZ0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN3aXRjaCAoZXZ0LmtleSkge1xuICAgICAgICAgIGNhc2UgXCJFc2NhcGVcIjpcbiAgICAgICAgICAgIG9uQ2xlYXI/LigpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkVudGVyXCI6XG4gICAgICAgICAgICBpZiAoIWV2dC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgb25FbnRlcktleT8uKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBvbktleURvd24/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVDaGFuZ2U6IENoYW5nZUV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgPSBldnQudGFyZ2V0LnZhbHVlO1xuICAgICAgb25DaGFuZ2UoZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlRm9jdXM6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgc2V0SXNDb2xsYXBzZWQoZmFsc2UpO1xuICAgICAgb25Gb2N1cz8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUJsdXI6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgaWYgKHZhbHVlICE9PSB1c2VyVHlwZWRRdWVyeS5jdXJyZW50KSB7XG4gICAgICAgIG9uQ29tcGxldGU/Lih7IHZhbHVlOiB1c2VyVHlwZWRRdWVyeS5jdXJyZW50LCBldnQgfSk7XG4gICAgICB9XG4gICAgICBvbkJsdXI/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVTZW5kQnV0dG9uQ2xpY2sgPSAoZXZ0OiBNb3VzZUV2ZW50PEhUTUxCdXR0b25FbGVtZW50PikgPT4ge1xuICAgICAgbWVyZ2VkU2VuZEJ1dHRvblByb3BzLm9uQ2xpY2s/LihldnQpO1xuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVQcmV2ZW50Rm9jdXMgPSAoZXZ0OiBSZWFjdC5Qb2ludGVyRXZlbnQpID0+IHtcbiAgICAgIC8vIFByZXZlbnQgdGhlIHRleHRhcmVhIGZyb20gYmVpbmcgdW5mb2N1c2VkXG4gICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlT25Db250YWluZXJQb2ludGVyRG93biA9IChldnQ6IFJlYWN0LlBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgLy8gRm9jdXMgdGV4dGFyZWEgd2hlbiBjbGlja2luZyBvbiB0aGUgY29udGFpbmVyIG9ubHlcbiAgICAgIGlmIChldnQudGFyZ2V0ID09PSBldnQuY3VycmVudFRhcmdldCkge1xuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3Qgc2VsZWN0ZWRMaXN0SXRlbSA9XG4gICAgICBzZWxlY3RlZEluZGV4ICE9PSAtMSA/IGZsYXR0ZW5lZExpc3RJdGVtc1tzZWxlY3RlZEluZGV4XSA6IG51bGw7XG5cbiAgICBjb25zdCBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50RWxtID0gZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudCA/IChcbiAgICAgIDxTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyXG4gICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgPlxuICAgICAgICA8VGV4dCBjb2xvcj1cInRlcnRpYXJ5XCI+e2VtcHR5U3RhdGVUb3BSaWdodENvbnRlbnR9PC9UZXh0PlxuICAgICAgPC9TdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyPlxuICAgICkgOiBudWxsO1xuXG4gICAgY29uc3QgY2xlYXJCdXR0b25FbG0gPSB2YWx1ZSA/IChcbiAgICAgIDxTdHlsZWRDbGVhckJ1dHRvblxuICAgICAgICBzaXplPVwic1wiXG4gICAgICAgIGljb249XCJ4LWNpcmNsZS1maWxsZWRcIlxuICAgICAgICBhcmlhLWxhYmVsPXtjbGVhckJ1dHRvbkFyaWFMYWJlbH1cbiAgICAgICAgaXNOYXZCYXJWYXJpYW50PXtpc05hdkJhclZhcmlhbnR9XG4gICAgICAgIG9uUG9pbnRlckRvd249e2hhbmRsZVByZXZlbnRGb2N1c31cbiAgICAgICAgb25DbGljaz17b25DbGVhcn1cbiAgICAgIC8+XG4gICAgKSA6IChcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRFbG1cbiAgICApO1xuXG4gICAgY29uc3QgaGludEVsbSA9ICEhaGludCAmJiAoXG4gICAgICA8SW5saW5lIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgPFRleHQgc2l6ZT1cInNcIiBjb2xvcj1cInRlcnRpYXJ5XCI+XG4gICAgICAgICAge2hpbnR9XG4gICAgICAgIDwvVGV4dD5cbiAgICAgIDwvSW5saW5lPlxuICAgICk7XG5cbiAgICBjb25zdCBib3R0b21Ub29sYmFyRWxtID0gIWlzQ29sbGFwc2VkICYmIChcbiAgICAgIDw+XG4gICAgICAgIDxTdHlsZWRTbG90IHBvc2l0aW9uPVwibGVmdFwiPntib3R0b21Ub29sYmFyLmxlZnRDb250ZW50fTwvU3R5bGVkU2xvdD5cbiAgICAgICAgPFN0eWxlZFNsb3QgcG9zaXRpb249XCJyaWdodFwiIGRhdGEtZTJlLXRlc3QtaWQ9XCJib3R0b21Ub29sYmFyXCI+XG4gICAgICAgICAgPElubGluZSBzcGFjZT1cInhzXCIgdkFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgIHtib3R0b21Ub29sYmFyLnJpZ2h0Q29udGVudH1cbiAgICAgICAgICAgIDxSb3VuZEJ1dHRvblxuICAgICAgICAgICAgICBhcmlhQXR0cmlidXRlcz17e1xuICAgICAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiBpc1Byb2Nlc3NpbmdcbiAgICAgICAgICAgICAgICAgID8gXCJQcm9jZXNzaW5nIHF1ZXJ5XCJcbiAgICAgICAgICAgICAgICAgIDogXCJTdWJtaXQgcXVlcnlcIixcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgey4uLm1lcmdlZFNlbmRCdXR0b25Qcm9wc31cbiAgICAgICAgICAgICAgZGlzYWJsZWQ9eyF2YWx1ZSB8fCBtZXJnZWRTZW5kQnV0dG9uUHJvcHMuZGlzYWJsZWR9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVNlbmRCdXR0b25DbGlja31cbiAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlUHJldmVudEZvY3VzfVxuICAgICAgICAgICAgICB2YXJpYW50PVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgIGljb249e2lzUHJvY2Vzc2luZyA/IFwic3RvcC1maWxsZWRcIiA6IG1lcmdlZFNlbmRCdXR0b25Qcm9wcy5pY29ufVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0lubGluZT5cbiAgICAgICAgPC9TdHlsZWRTbG90PlxuICAgICAgICA8U3R5bGVkQ2xlYXIgLz5cbiAgICAgIDwvPlxuICAgICk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGRhdGEtZTJlLXRlc3QtaWQ9e2RhdGFFMmVUZXN0SWR9XG4gICAgICAgICAgZGF0YS1kcy1pZD1cIlByb21wdElucHV0XCJcbiAgICAgICAgICByZWY9e2NvbnRhaW5lclJlZn1cbiAgICAgICAgICAvLyBUcmFuc2xhdGlvbiBkaXNhYmxlZCBmb3IgY29uc2lzdGVuY3kgd2l0aCB0aGUgYXV0b2NvbXBsZXRlIGxpc3RcbiAgICAgICAgICB0cmFuc2xhdGU9XCJub1wiXG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2sgc3BhY2U9XCJzXCI+XG4gICAgICAgICAgICA8Q3VzdG9tQ29udGFpbmVyXG4gICAgICAgICAgICAgIGVsZXZhdGlvbj17MH1cbiAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPXtpc0NvbGxhcHNlZCA/IFwieHNcIiA6IFwibVwifVxuICAgICAgICAgICAgICBoaWRlQm9yZGVyPXtpc0NvbGxhcHNlZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlT25Db250YWluZXJQb2ludGVyRG93bn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTdHlsZWRUZXh0QXJlYUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIDxQcm9tcHRUZXh0QXJlYVxuICAgICAgICAgICAgICAgICAgICB7Li4ucmVzdH1cbiAgICAgICAgICAgICAgICAgICAgZGF0YUUyZVRlc3RJZD17XG4gICAgICAgICAgICAgICAgICAgICAgZGF0YUUyZVRlc3RJZCA/IGAke2RhdGFFMmVUZXN0SWR9LWlucHV0YCA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgcmVmPXt0ZXh0QXJlYVJlZn1cbiAgICAgICAgICAgICAgICAgICAgaXNOYXZCYXJWYXJpYW50PXtpc05hdkJhclZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkTGlzdEl0ZW09e3NlbGVjdGVkTGlzdEl0ZW19XG4gICAgICAgICAgICAgICAgICAgIGlzQXV0b2NvbXBsZXRlTGlzdE9wZW49e2lzQXV0b2NvbXBsZXRlTGlzdE9wZW59XG4gICAgICAgICAgICAgICAgICAgIGlzQ29sbGFwc2VkPXtpc0NvbGxhcHNlZH1cbiAgICAgICAgICAgICAgICAgICAgb25Gb2N1cz17aGFuZGxlRm9jdXN9XG4gICAgICAgICAgICAgICAgICAgIG9uQmx1cj17aGFuZGxlQmx1cn1cbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUNoYW5nZX1cbiAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXtoYW5kbGVLZXlEb3dufVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIHtjbGVhckJ1dHRvbkVsbX1cbiAgICAgICAgICAgICAgICA8L1N0eWxlZFRleHRBcmVhQ29udGFpbmVyPlxuICAgICAgICAgICAgICAgIHtib3R0b21Ub29sYmFyRWxtfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvQ3VzdG9tQ29udGFpbmVyPlxuICAgICAgICAgICAge2hpbnRFbG19XG4gICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPEF1dG9jb21wbGV0ZUxpc3RcbiAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXM9e2F1dG9jb21wbGV0ZUxpc3RJdGVtc31cbiAgICAgICAgICB0cmlnZ2VyUmVmPXt0ZXh0QXJlYUNvbnRhaW5lclJlZn1cbiAgICAgICAgICBzZWxlY3RlZExpc3RJdGVtPXtzZWxlY3RlZExpc3RJdGVtfVxuICAgICAgICAgIGlzT3Blbj17aXNBdXRvY29tcGxldGVMaXN0T3Blbn1cbiAgICAgICAgICBhdXRvY29tcGxldGVMaXN0Rm9vdGVyPXthdXRvY29tcGxldGVMaXN0Rm9vdGVyfVxuICAgICAgICAgIHBvcnRhbENvbnRhaW5lcj17cG9ydGFsQ29udGFpbmVyfVxuICAgICAgICAgIG9uTGlzdEl0ZW1DbGljaz17aGFuZGxlTGlzdEl0ZW1DbGlja31cbiAgICAgICAgLz5cbiAgICAgIDwvPlxuICAgICk7XG4gIH1cbik7XG5cbmNvbnN0IEN1c3RvbUJ1dHRvbiA9IHN0eWxlZChCdXR0b24pKCh7IHRoZW1lIH0pID0+ICh7XG4gIGJvcmRlclJhZGl1czogdGhlbWUudmFyaWFibGVzLnNpemUuYm9yZGVyUmFkaXVzLmwsXG59KSk7XG5cbi8vIG5lZWQgdG8gc2ltcGxpZnkgdGhpcyB0eXBlIGZvciByZXVzZVxuY29uc3QgU3VnZ2VzdGlvbkJ1dHRvbiA9IGZvcndhcmRSZWYoXG4gIDxDIGV4dGVuZHMgUmVhY3QuRWxlbWVudFR5cGUgPSBcImJ1dHRvblwiPihcbiAgICBwcm9wczogUG9seW1vcnBoaWNDb21wb25lbnRQcm9wc1dpdGhSZWY8XG4gICAgICBDLFxuICAgICAgT21pdDxCdXR0b25Qcm9wcywgXCJ2YXJpYW50XCIgfCBcInNpemVcIiB8IFwicmVmXCI+XG4gICAgPixcbiAgICByZWY6IFBvbHltb3JwaGljUmVmPEM+XG4gICkgPT4gPEN1c3RvbUJ1dHRvbiB7Li4ucHJvcHN9IHZhcmlhbnQ9XCJzZWNvbmRhcnlcIiBzaXplPVwic1wiIHJlZj17cmVmfSAvPlxuKTtcblxuZXhwb3J0IGNvbnN0IFByb21wdElucHV0ID0gT2JqZWN0LmFzc2lnbihQcm9tcHRJbnB1dENvbXBvbmVudCwge1xuICBTdWdnZXN0aW9uQnV0dG9uLFxufSkgYXMgdHlwZW9mIFByb21wdElucHV0Q29tcG9uZW50ICYge1xuICBTdWdnZXN0aW9uQnV0dG9uOiB0eXBlb2YgU3VnZ2VzdGlvbkJ1dHRvbjtcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBNGhCcUIifQ== */"),PromptInput=Object.assign(PromptInputComponent,{SuggestionButton:(0,_react.forwardRef)((props,ref)=>_react.default.createElement(CustomButton,{...props,variant:"secondary",size:"s",ref:ref}))});
|