@projectcor/maia-components 2.11.31-4 → 2.11.31
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/lib/components/atoms/FeedbackButton/FeedbackButton.styles.js +2 -2
- package/lib/components/atoms/icons/index.js +1 -3
- package/lib/components/molecules/ChatAIClientSelector/ChatAIClientSelector.js +10 -41
- package/lib/components/molecules/ChatAIContent/ChatAIContent.js +4 -7
- package/lib/components/molecules/ChatAIHistory/ChatAIHistory.js +3 -16
- package/lib/components/molecules/ChatAIHome/ChatAIHome.js +44 -54
- package/lib/components/molecules/ChatAIHome/styles.js +35 -43
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +39 -55
- package/lib/components/molecules/ChatAIModal/ChatAIModal.js +91 -341
- package/lib/components/molecules/ChatAIModal/ChatAIModal.styles.js +15 -28
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +18 -91
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.styles.js +2 -17
- package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.js +9 -10
- package/lib/components/molecules/ChatAIProjectSelector/ChatAIProjectSelector.js +6 -37
- package/lib/components/molecules/Sidebar/Sidebar.js +323 -269
- package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +23 -18
- package/lib/components/molecules/Sidebar/Sidebar.styles.js +37 -54
- package/lib/dev/Providers.js +2 -2
- package/lib/hooks/useChatManager/useChatManager.js +8 -20
- package/lib/hooks/useChats/useChats.js +4 -12
- package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +5 -8
- package/lib/hooks/useProjectSearch.js +4 -11
- package/lib/lang/br/index.js +2 -19
- package/lib/lang/en/index.js +2 -19
- package/lib/lang/es/index.js +2 -19
- package/lib/lang/fr/index.js +2 -19
- package/lib/mocks/mockChats.js +395 -0
- package/lib/mocks/mockedUser.js +169 -0
- package/lib/services/maia/Chats/getChatsByUserId.js +8 -14
- package/lib/services/maia/Chats/index.js +1 -7
- package/lib/services/maia/Orchestrator/orchestrator.js +4 -6
- package/lib/services/maia/client.js +9 -44
- package/lib/services/query/projectSearchByValueQuery.js +2 -2
- package/lib/store/chatsStore.types.js +2 -10
- package/lib/store/useChatsStore.js +37 -75
- package/lib/types/Chat.js +1 -3
- package/lib/types/Project.js +1 -1
- package/package.json +1 -1
- package/lib/components/atoms/icons/ChatConversation.js +0 -40
- package/lib/components/atoms/icons/MaiaChatLayoutMenuIcon.js +0 -33
- package/lib/components/molecules/ChatAIMessages/ChatDaySeparator.js +0 -43
- package/lib/components/molecules/ChatAIMessages/ChatDaySeparator.styles.js +0 -11
- package/lib/components/molecules/ChatAIMessages/chatMessageUtils.js +0 -5
- package/lib/components/molecules/ChatAIModal/floatingPanelMotion/FloatingPanelMotion.js +0 -16
- package/lib/components/molecules/ChatAIModal/floatingPanelMotion/FloatingPanelMotion.styles.js +0 -12
- package/lib/components/molecules/ChatAIModal/floatingPanelMotion/constants.js +0 -13
- package/lib/components/molecules/ChatAIModal/floatingPanelMotion/index.js +0 -3
- package/lib/components/molecules/ChatAIModal/floatingPanelMotion/useFloatingPanelDragTilt.js +0 -57
- package/lib/components/molecules/ChatAIModal/layout.js +0 -35
- package/lib/components/molecules/Sidebar/SidebarChats.styles.js +0 -73
- package/lib/components/molecules/Sidebar/SidebarChatsSection.js +0 -69
- package/lib/components/molecules/Sidebar/SidebarChatsSectionModal.js +0 -150
- package/lib/components/molecules/Sidebar/SidebarHistoryChat.js +0 -238
- package/lib/components/molecules/Sidebar/sidebarChats.helpers.js +0 -70
- package/lib/components/molecules/Sidebar/sidebarChats.types.js +0 -14
- package/lib/dev/fixtures/devUser.js +0 -173
- package/lib/dev/fixtures/mockedUser.js +0 -169
- package/lib/services/maia/Chats/getChatMessagesV2.js +0 -114
- package/lib/services/maia/Chats/getSessionByAgent.js +0 -66
- package/lib/services/maia/Chats/getSessionsGroupedV2.js +0 -70
|
@@ -6,6 +6,7 @@ import { MenuDots } from '@projectcor/icons/lib/components/MenuDots';
|
|
|
6
6
|
import { Star } from '@projectcor/icons/lib/components/Star';
|
|
7
7
|
import { Tooltip } from '@projectcor/tooltipv2/lib/components/Tooltip';
|
|
8
8
|
import { useTranslation } from 'react-i18next';
|
|
9
|
+
import { useGlobalContext } from '../../../context/global-context';
|
|
9
10
|
import { useUser } from '../../../context/cor-user';
|
|
10
11
|
import { deleteAgent } from '../../../services/maia/Agents/deleteAgent';
|
|
11
12
|
import { useSnackBarManager } from '../../../hooks/useSnackBarManager/useSnackBarManager';
|
|
@@ -32,6 +33,10 @@ export var ChatAIMyAgents = function ChatAIMyAgents(_ref) {
|
|
|
32
33
|
var _useTranslation = useTranslation([SECTIONS.chatAI, SECTIONS.abmAgent]),
|
|
33
34
|
t = _useTranslation.t;
|
|
34
35
|
var user = useUser();
|
|
36
|
+
var _useGlobalContext = useGlobalContext(),
|
|
37
|
+
selectAgent = _useGlobalContext.selectAgent,
|
|
38
|
+
setProject = _useGlobalContext.setProject,
|
|
39
|
+
setClient = _useGlobalContext.setClient;
|
|
35
40
|
var _useSnackBarManager = useSnackBarManager(),
|
|
36
41
|
handleSnackbarSuccess = _useSnackBarManager.handleSnackbarSuccess,
|
|
37
42
|
handleSnackbarError = _useSnackBarManager.handleSnackbarError;
|
|
@@ -90,15 +95,9 @@ export var ChatAIMyAgents = function ChatAIMyAgents(_ref) {
|
|
|
90
95
|
} : null;
|
|
91
96
|
}, [agentToDelete]);
|
|
92
97
|
var handleUseAgent = function handleUseAgent(agent) {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
// si el usuario ya tiene una con ese agente.
|
|
97
|
-
document.dispatchEvent(new CustomEvent('maia-open-new-chat-with-agent', {
|
|
98
|
-
detail: {
|
|
99
|
-
agent: agent
|
|
100
|
-
}
|
|
101
|
-
}));
|
|
98
|
+
setProject(null);
|
|
99
|
+
setClient === null || setClient === void 0 || setClient(null);
|
|
100
|
+
selectAgent(agent);
|
|
102
101
|
onBack();
|
|
103
102
|
};
|
|
104
103
|
var normalizeText = function normalizeText(value) {
|
|
@@ -358,4 +357,4 @@ export var ChatAIMyAgents = function ChatAIMyAgents(_ref) {
|
|
|
358
357
|
}) : null]
|
|
359
358
|
});
|
|
360
359
|
};
|
|
361
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUNhbGxiYWNrIiwidXNlRWZmZWN0IiwidXNlTWVtbyIsInVzZVN0YXRlIiwiTWVudURvdHMiLCJTdGFyIiwiVG9vbHRpcCIsInVzZVRyYW5zbGF0aW9uIiwidXNlVXNlciIsImRlbGV0ZUFnZW50IiwidXNlU25hY2tCYXJNYW5hZ2VyIiwiRGVsZXRlUXVlc3Rpb25Nb2RhbCIsIlNFQ1RJT05TIiwiTG9hZGVyIiwidXNlVG9nZ2xlRmF2b3JpdGUiLCJFVkVOVFMiLCJ1c2VFdmVudCIsIlNDTUFCb2R5IiwiU0NNQUNhcmRCb2R5IiwiU0NNQUNhcmRCdXR0b24iLCJTQ01BQ2FyZEZvb3RlciIsIlNDTUFDYXJkSGVhZGVyIiwiU0NNQUNhcmRUb3BSb3ciLCJTQ01BQ2FyZEludHJvVGV4dCIsIlNDTUFDYXJkTWVudSIsIlNDTUFDYXJkTWVudUl0ZW0iLCJTQ01BQ2FyZE1lbnVJdGVtcyIsIlNDTUFGYXZvcml0ZUJ1dHRvbiIsIlNDTUFGYXZvcml0ZVN0YXJXcmFwIiwiU0NNQUNhcmRGb290ZXJEYXRlIiwiU0NNQUNhcmRUaXRsZUVtb2ppIiwiU0NNQUNhcmRUaXRsZU5hbWUiLCJTQ01BQ2FyZHNPdXRlciIsIlNDTUFDYXJkc1JvdyIsIlNDTUFFbXB0eVN0YXRlUm9vdCIsIlNDTUFFbXB0eVN0YXRlQ29sdW1uIiwiU0NNQUVtcHR5U3RhdGVUaXRsZUJsb2NrIiwiU0NNQUVtcHR5U3RhdGVUaXRsZSIsIlNDTUFFbXB0eVN0YXRlU3VidGl0bGUiLCJTQ01BRW1wdHlTdGF0ZUJ1dHRvbiIsIlNDTUFLZWJhYkJ1dHRvbiIsIlNDTUFMb2FkTW9yZVdyYXBwZXIiLCJTQ01BTXlBZ2VudHNDb250YWluZXIiLCJTQ01BVGl0bGUiLCJTQ01BVGl0bGVJbm5lciIsIlNDTUFUaXRsZVdyYXAiLCJTQ01BQWN0aW9uc1JvdyIsIlNDTUFDcmVhdGVNYW51YWxCdXR0b24iLCJTQ01BQ3JlYXRlTWFudWFsQnV0dG9uVGV4dCIsIk1BSUFJc29sb2dvIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkNoYXRBSU15QWdlbnRzIiwiX3JlZiIsIl91c2VyJHBlcm1pc3Npb25zIiwib25CYWNrIiwiYWdlbnRzIiwib25EZWxldGVBZ2VudCIsIm9uRmF2b3JpdGVBZ2VudFVwZGF0ZSIsIl9yZWYkaGFzTW9yZUFnZW50cyIsImhhc01vcmVBZ2VudHMiLCJfcmVmJGxvYWRpbmdNb3JlQWdlbnQiLCJsb2FkaW5nTW9yZUFnZW50cyIsIm9uTG9hZE1vcmVBZ2VudHMiLCJvbkdvVG9NYWlha2VyIiwiX3VzZVRyYW5zbGF0aW9uIiwiY2hhdEFJIiwiYWJtQWdlbnQiLCJ0IiwidXNlciIsIl91c2VTbmFja0Jhck1hbmFnZXIiLCJoYW5kbGVTbmFja2JhclN1Y2Nlc3MiLCJoYW5kbGVTbmFja2JhckVycm9yIiwiY3VzdG9tQWdlbnRzIiwiZmlsdGVyIiwiYWdlbnQiLCJ0eXBlIiwiaXNfZGVsZXRlZCIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsIm1lbnVPcGVuRm9yQWdlbnRJZCIsInNldE1lbnVPcGVuRm9yQWdlbnRJZCIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiYWdlbnRUb0RlbGV0ZSIsInNldEFnZW50VG9EZWxldGUiLCJ1c2VyUGVybWlzc2lvbnMiLCJwZXJtaXNzaW9ucyIsImFpX2FnZW50cyIsImNhbkNyZWF0ZUFnZW50IiwiY3JlYXRlIiwid2luZG93IiwiTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UUyIsImNhbkVkaXQiLCJlZGl0IiwiY2FuRGVsZXRlIiwiY2FuU2hvd01lbnUiLCJfdXNlVG9nZ2xlRmF2b3JpdGUiLCJ0b2dnbGVGYXZvcml0ZSIsImV2ZW50QW1wbGl0dWRlIiwib3BlbkNyZWF0ZUFnZW50TW9kYWwiLCJvcGVuTW9kYWwiLCJvcHRpb24iLCJkb2N1bWVudCIsImRpc3BhdGNoRXZlbnQiLCJDdXN0b21FdmVudCIsImRldGFpbCIsImFnZW50VmFsdWVzIiwidmFsdWVzIiwiaXNFZGl0aW5nIiwiaXNPcGVuIiwiaGFuZGxlRW1wdHlTdGF0ZVByaW1hcnlBY3Rpb24iLCJ1c2VNYXJrZXRwbGFjZU1haWFrZXIiLCJNQUlBX01BUktFVFBMQUNFX01BSUFLRVIiLCJoYW5kbGVMb2FkTW9yZSIsImRlbGV0ZU1vZGFsQ2hhdCIsInRpdGxlIiwibmFtZSIsImlkIiwiaGFuZGxlVXNlQWdlbnQiLCJub3JtYWxpemVUZXh0IiwidmFsdWUiLCJBcnJheSIsImlzQXJyYXkiLCJnZXRDcmVhdGVkQXRMYWJlbCIsImNyZWF0ZWRBdCIsImNyZWF0ZWRfYXQiLCJjcmVhdGVkQXREYXRlIiwiRGF0ZSIsIk51bWJlciIsImlzTmFOIiwiZ2V0VGltZSIsImRpZmZNcyIsIm5vdyIsImRheU1zIiwiZGF5cyIsIk1hdGgiLCJtYXgiLCJmbG9vciIsImhhbmRsZU9wZW5FZGl0QWdlbnQiLCJrbm93bGVkZ2UiLCJnZW5lcmFsIiwiaGFuZGxlVG9nZ2xlRmF2b3JpdGUiLCJldmVudCIsImlzRmF2b3JpdGUiLCJwcmV2ZW50RGVmYXVsdCIsInN0b3BQcm9wYWdhdGlvbiIsInVwZGF0ZWRBZ2VudCIsInVuZGVmaW5lZCIsImhhbmRsZUNvbmZpcm1EZWxldGUiLCJfcmVmMiIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwiY2hhdCIsIl90Iiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJucyIsInN0b3AiLCJfeCIsImFwcGx5IiwiYXJndW1lbnRzIiwiaGFuZGxlQ2xpY2tPdXRzaWRlIiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJjb250YWluZXIiLCJnZXRFbGVtZW50QnlJZCIsIm9uU2Nyb2xsIiwic2Nyb2xsVG9wIiwiY2xpZW50SGVpZ2h0Iiwic2Nyb2xsSGVpZ2h0IiwibmVhckJvdHRvbSIsImxlbmd0aCIsIiRoYXNBZ2VudHMiLCJjaGlsZHJlbiIsIiRjYW5DcmVhdGVBZ2VudCIsIm9uQ2xpY2siLCJtYXAiLCJfYWdlbnQkZW1vamkiLCJlbW9qaSIsInRyaW0iLCJjb2xvciIsIndpZHRoIiwiaGVpZ2h0IiwiaW50cm9kdWN0aW9uIiwiaXNfZmF2b3JpdGUiLCIkYWx3YXlzVmlzaWJsZSIsImZpbGwiLCJ2YXJpYW50IiwiY2xhc3NOYW1lIiwic2l6ZSIsIm9uQ2xvc2UiLCJoYW5kbGVycyIsImhhbmRsZUNvbmZpcm1BY3Rpb24iLCJhY3Rpb24iXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEFJTXlBZ2VudHMvQ2hhdEFJTXlBZ2VudHMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgTWVudURvdHMgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9NZW51RG90cydcbmltcG9ydCB7IFN0YXIgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9TdGFyJ1xuaW1wb3J0IHsgVG9vbHRpcCB9IGZyb20gJ0Bwcm9qZWN0Y29yL3Rvb2x0aXB2Mi9saWIvY29tcG9uZW50cy9Ub29sdGlwJ1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0J1xuaW1wb3J0IHsgdXNlVXNlciB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvY29yLXVzZXInXG5pbXBvcnQgeyBBZ2VudCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2FnZW50J1xuaW1wb3J0IHsgZGVsZXRlQWdlbnQgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tYWlhL0FnZW50cy9kZWxldGVBZ2VudCdcbmltcG9ydCB7IHVzZVNuYWNrQmFyTWFuYWdlciB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVNuYWNrQmFyTWFuYWdlci91c2VTbmFja0Jhck1hbmFnZXInXG5pbXBvcnQgeyBEZWxldGVRdWVzdGlvbk1vZGFsIH0gZnJvbSAnLi4vLi4vb3JnYW5pc21zL0RlbGV0ZVF1ZXN0aW9uTW9kYWwvRGVsZXRlUXVlc3Rpb25Nb2RhbCdcbmltcG9ydCB7IFNFQ1RJT05TIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL2NvbmZpZydcbmltcG9ydCB7IExvYWRlciB9IGZyb20gJy4uLy4uL2F0b21zL0xvYWRlcidcbmltcG9ydCB7IHVzZVRvZ2dsZUZhdm9yaXRlIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MnXG5pbXBvcnQgeyBFVkVOVFMsIHVzZUV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlRXZlbnQnXG5pbXBvcnQge1xuICBTQ01BQm9keSxcbiAgU0NNQUNhcmRCb2R5LFxuICBTQ01BQ2FyZEJ1dHRvbixcbiAgU0NNQUNhcmRGb290ZXIsXG4gIFNDTUFDYXJkSGVhZGVyLFxuICBTQ01BQ2FyZFRvcFJvdyxcbiAgU0NNQUNhcmRJbnRyb1RleHQsXG4gIFNDTUFDYXJkTWVudSxcbiAgU0NNQUNhcmRNZW51SXRlbSxcbiAgU0NNQUNhcmRNZW51SXRlbXMsXG4gIFNDTUFGYXZvcml0ZUJ1dHRvbixcbiAgU0NNQUZhdm9yaXRlU3RhcldyYXAsXG4gIFNDTUFDYXJkRm9vdGVyRGF0ZSxcbiAgU0NNQUNhcmRUaXRsZUVtb2ppLFxuICBTQ01BQ2FyZFRpdGxlTmFtZSxcbiAgU0NNQUNhcmRzT3V0ZXIsXG4gIFNDTUFDYXJkc1JvdyxcbiAgU0NNQUVtcHR5U3RhdGVSb290LFxuICBTQ01BRW1wdHlTdGF0ZUNvbHVtbixcbiAgU0NNQUVtcHR5U3RhdGVUaXRsZUJsb2NrLFxuICBTQ01BRW1wdHlTdGF0ZVRpdGxlLFxuICBTQ01BRW1wdHlTdGF0ZVN1YnRpdGxlLFxuICBTQ01BRW1wdHlTdGF0ZUJ1dHRvbixcbiAgU0NNQUtlYmFiQnV0dG9uLFxuICBTQ01BTG9hZE1vcmVXcmFwcGVyLFxuICBTQ01BTXlBZ2VudHNDb250YWluZXIsXG4gIFNDTUFUaXRsZSxcbiAgU0NNQVRpdGxlSW5uZXIsXG4gIFNDTUFUaXRsZVdyYXAsXG4gIFNDTUFBY3Rpb25zUm93LFxuICBTQ01BQ3JlYXRlTWFudWFsQnV0dG9uLFxuICBTQ01BQ3JlYXRlTWFudWFsQnV0dG9uVGV4dCxcbn0gZnJvbSAnLi9DaGF0QUlNeUFnZW50cy5zdHlsZXMnXG5pbXBvcnQgeyBNQUlBSXNvbG9nbyB9IGZyb20gJy4uLy4uL2F0b21zL2ljb25zJ1xuXG50eXBlIENoYXRBSU15QWdlbnRzUHJvcHMgPSB7XG4gIG9uQmFjazogKCkgPT4gdm9pZFxuICBhZ2VudHM6IEFnZW50W11cbiAgb25EZWxldGVBZ2VudD86IChhZ2VudElkOiBzdHJpbmcpID0+IHZvaWRcbiAgb25GYXZvcml0ZUFnZW50VXBkYXRlPzogKGFnZW50OiBBZ2VudCkgPT4gdm9pZFxuICBoYXNNb3JlQWdlbnRzPzogYm9vbGVhblxuICBsb2FkaW5nTW9yZUFnZW50cz86IGJvb2xlYW5cbiAgb25Mb2FkTW9yZUFnZW50cz86ICgpID0+IHZvaWRcbiAgb25Hb1RvTWFpYWtlcj86ICgpID0+IHZvaWQgfCBQcm9taXNlPHZvaWQ+XG59XG5cbmV4cG9ydCBjb25zdCBDaGF0QUlNeUFnZW50cyA9ICh7XG4gIG9uQmFjayxcbiAgYWdlbnRzLFxuICBvbkRlbGV0ZUFnZW50LFxuICBvbkZhdm9yaXRlQWdlbnRVcGRhdGUsXG4gIGhhc01vcmVBZ2VudHMgPSBmYWxzZSxcbiAgbG9hZGluZ01vcmVBZ2VudHMgPSBmYWxzZSxcbiAgb25Mb2FkTW9yZUFnZW50cyxcbiAgb25Hb1RvTWFpYWtlcixcbn06IENoYXRBSU15QWdlbnRzUHJvcHMpID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbihbU0VDVElPTlMuY2hhdEFJLCBTRUNUSU9OUy5hYm1BZ2VudF0pXG4gIGNvbnN0IHVzZXIgPSB1c2VVc2VyKClcbiAgY29uc3QgeyBoYW5kbGVTbmFja2JhclN1Y2Nlc3MsIGhhbmRsZVNuYWNrYmFyRXJyb3IgfSA9IHVzZVNuYWNrQmFyTWFuYWdlcigpXG4gIGNvbnN0IGN1c3RvbUFnZW50cyA9IGFnZW50cy5maWx0ZXIoYWdlbnQgPT4gYWdlbnQudHlwZSA9PT0gJ2N1c3RvbScgJiYgIWFnZW50LmlzX2RlbGV0ZWQpXG4gIGNvbnN0IFttZW51T3BlbkZvckFnZW50SWQsIHNldE1lbnVPcGVuRm9yQWdlbnRJZF0gPSB1c2VTdGF0ZTxzdHJpbmcgfCBudWxsPihudWxsKVxuICBjb25zdCBbYWdlbnRUb0RlbGV0ZSwgc2V0QWdlbnRUb0RlbGV0ZV0gPSB1c2VTdGF0ZTxBZ2VudCB8IG51bGw+KG51bGwpXG4gIGNvbnN0IHVzZXJQZXJtaXNzaW9ucyA9IHVzZXI/LnBlcm1pc3Npb25zPy5haV9hZ2VudHNcbiAgY29uc3QgY2FuQ3JlYXRlQWdlbnQgPSAhIXVzZXJQZXJtaXNzaW9ucz8uY3JlYXRlICYmICEhd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFNcbiAgY29uc3QgY2FuRWRpdCA9ICEhdXNlclBlcm1pc3Npb25zPy5lZGl0ICYmICEhd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFNcbiAgY29uc3QgY2FuRGVsZXRlID0gISF1c2VyUGVybWlzc2lvbnM/LmRlbGV0ZSAmJiAhIXdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1NfTVVMVElfQUdFTlRTXG4gIGNvbnN0IGNhblNob3dNZW51ID0gY2FuRWRpdCB8fCBjYW5EZWxldGVcbiAgY29uc3QgeyB0b2dnbGVGYXZvcml0ZSB9ID0gdXNlVG9nZ2xlRmF2b3JpdGUoKVxuICBjb25zdCBldmVudEFtcGxpdHVkZSA9IHVzZUV2ZW50KClcblxuICBjb25zdCBvcGVuQ3JlYXRlQWdlbnRNb2RhbCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBldmVudEFtcGxpdHVkZShFVkVOVFMub3Blbk1vZGFsLCB7IG9wdGlvbjogJ2NyZWF0ZV9hZ2VudCcgfSlcbiAgICBkb2N1bWVudC5kaXNwYXRjaEV2ZW50KFxuICAgICAgbmV3IEN1c3RvbUV2ZW50KCdhYm0tYWdlbnQtbW9kYWwtc2V0LXZhbHVlcycsIHtcbiAgICAgICAgZGV0YWlsOiB7XG4gICAgICAgICAgYWdlbnRWYWx1ZXM6IHtcbiAgICAgICAgICAgIHZhbHVlczoge1xuICAgICAgICAgICAgICBpc0VkaXRpbmc6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGlzT3BlbjogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICApXG4gIH0sIFtldmVudEFtcGxpdHVkZV0pXG5cbiAgY29uc3QgaGFuZGxlRW1wdHlTdGF0ZVByaW1hcnlBY3Rpb24gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgY29uc3QgdXNlTWFya2V0cGxhY2VNYWlha2VyID0gISF3aW5kb3cuTUFJQV9NQVJLRVRQTEFDRV9NQUlBS0VSICYmIHR5cGVvZiBvbkdvVG9NYWlha2VyID09PSAnZnVuY3Rpb24nXG4gICAgaWYgKHVzZU1hcmtldHBsYWNlTWFpYWtlcikge1xuICAgICAgb25Hb1RvTWFpYWtlcigpXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgb3BlbkNyZWF0ZUFnZW50TW9kYWwoKVxuICB9LCBbb25Hb1RvTWFpYWtlciwgb3BlbkNyZWF0ZUFnZW50TW9kYWxdKVxuXG4gIGNvbnN0IGhhbmRsZUxvYWRNb3JlID0gKCkgPT4ge1xuICAgIGlmICghb25Mb2FkTW9yZUFnZW50cyB8fCAhaGFzTW9yZUFnZW50cyB8fCBsb2FkaW5nTW9yZUFnZW50cykge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIG9uTG9hZE1vcmVBZ2VudHMoKVxuICB9XG5cbiAgY29uc3QgZGVsZXRlTW9kYWxDaGF0ID0gdXNlTWVtbyhcbiAgICAoKSA9PiAoYWdlbnRUb0RlbGV0ZSA/IHsgdGl0bGU6IGFnZW50VG9EZWxldGUubmFtZSwgaWQ6IGFnZW50VG9EZWxldGUuaWQgfSA6IG51bGwpLFxuICAgIFthZ2VudFRvRGVsZXRlXVxuICApXG5cbiAgY29uc3QgaGFuZGxlVXNlQWdlbnQgPSAoYWdlbnQ6IEFnZW50KSA9PiB7XG4gICAgLy8gRGVsZWdhbW9zIGVuIGVsIGxpc3RlbmVyIGBtYWlhLW9wZW4tbmV3LWNoYXQtd2l0aC1hZ2VudGAgZGVsIENoYXRBSU1vZGFsLFxuICAgIC8vIHF1ZSBhZGVtw6FzIGRlIHNldFByb2plY3Qvc2V0Q2xpZW50L3NlbGVjdEFnZW50IGVqZWN1dGEgbGEgcmVzb2x1Y2nDs25cbiAgICAvLyBgR0VUIC92Mi9zZXNzaW9ucy9hZ2VudC97YWdlbnRfaWR9YCBwYXJhIG5hdmVnYXIgYSBsYSBjb252ZXJzYWNpw7NuIGV4aXN0ZW50ZVxuICAgIC8vIHNpIGVsIHVzdWFyaW8geWEgdGllbmUgdW5hIGNvbiBlc2UgYWdlbnRlLlxuICAgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQoXG4gICAgICBuZXcgQ3VzdG9tRXZlbnQoJ21haWEtb3Blbi1uZXctY2hhdC13aXRoLWFnZW50Jywge1xuICAgICAgICBkZXRhaWw6IHsgYWdlbnQgfSxcbiAgICAgIH0pXG4gICAgKVxuICAgIG9uQmFjaygpXG4gIH1cblxuICBjb25zdCBub3JtYWxpemVUZXh0ID0gKHZhbHVlPzogc3RyaW5nIHwgc3RyaW5nW10gfCBudWxsKSA9PiB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSByZXR1cm4gdmFsdWVbMF0gfHwgJydcbiAgICByZXR1cm4gdmFsdWUgfHwgJydcbiAgfVxuXG4gIGNvbnN0IGdldENyZWF0ZWRBdExhYmVsID0gKGFnZW50OiBBZ2VudCkgPT4ge1xuICAgIGNvbnN0IGNyZWF0ZWRBdCA9IChhZ2VudCBhcyBBZ2VudCAmIHsgY3JlYXRlZF9hdD86IHN0cmluZyB9KS5jcmVhdGVkX2F0XG4gICAgaWYgKCFjcmVhdGVkQXQpIHJldHVybiAnJ1xuXG4gICAgY29uc3QgY3JlYXRlZEF0RGF0ZSA9IG5ldyBEYXRlKGNyZWF0ZWRBdClcbiAgICBpZiAoTnVtYmVyLmlzTmFOKGNyZWF0ZWRBdERhdGUuZ2V0VGltZSgpKSkgcmV0dXJuICcnXG5cbiAgICBjb25zdCBkaWZmTXMgPSBEYXRlLm5vdygpIC0gY3JlYXRlZEF0RGF0ZS5nZXRUaW1lKClcbiAgICBjb25zdCBkYXlNcyA9IDEwMDAgKiA2MCAqIDYwICogMjRcbiAgICBjb25zdCBkYXlzID0gTWF0aC5tYXgoMCwgTWF0aC5mbG9vcihkaWZmTXMgLyBkYXlNcykpXG5cbiAgICBpZiAoZGF5cyA9PT0gMCkgcmV0dXJuIHQoJ21hcmtldHBsYWNlLm15QWdlbnRzVG9kYXknKVxuICAgIGlmIChkYXlzID09PSAxKSByZXR1cm4gdCgnbWFya2V0cGxhY2UubXlBZ2VudHNPbmVEYXlBZ28nKVxuICAgIHJldHVybiB0KCdtYXJrZXRwbGFjZS5teUFnZW50c0RheXNBZ28nLCB7IGRheXMgfSlcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZU9wZW5FZGl0QWdlbnQgPSAoYWdlbnQ6IEFnZW50KSA9PiB7XG4gICAgZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChcbiAgICAgIG5ldyBDdXN0b21FdmVudCgnYWJtLWFnZW50LW1vZGFsLXNldC12YWx1ZXMnLCB7XG4gICAgICAgIGRldGFpbDoge1xuICAgICAgICAgIGFnZW50VmFsdWVzOiB7XG4gICAgICAgICAgICB2YWx1ZXM6IHtcbiAgICAgICAgICAgICAgaXNFZGl0aW5nOiB0cnVlLFxuICAgICAgICAgICAgICBrbm93bGVkZ2U6IGFnZW50Py5rbm93bGVkZ2UgfHwgW10sXG4gICAgICAgICAgICAgIGdlbmVyYWw6IHtcbiAgICAgICAgICAgICAgICBuYW1lOiBhZ2VudC5uYW1lLFxuICAgICAgICAgICAgICAgIGlkOiBhZ2VudC5pZCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBpc09wZW46IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgKVxuICAgIHNldE1lbnVPcGVuRm9yQWdlbnRJZChudWxsKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlVG9nZ2xlRmF2b3JpdGUgPSAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQ8SFRNTEJ1dHRvbkVsZW1lbnQ+LCBhZ2VudDogQWdlbnQsIGlzRmF2b3JpdGU6IGJvb2xlYW4pID0+IHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcblxuICAgIHRvZ2dsZUZhdm9yaXRlKFxuICAgICAgYWdlbnQuaWQsXG4gICAgICB1cGRhdGVkQWdlbnQgPT4ge1xuICAgICAgICBvbkZhdm9yaXRlQWdlbnRVcGRhdGU/Lih1cGRhdGVkQWdlbnQpXG4gICAgICB9LFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgaXNGYXZvcml0ZVxuICAgIClcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUNvbmZpcm1EZWxldGUgPSBhc3luYyAoY2hhdDogeyBpZDogc3RyaW5nIH0pID0+IHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgZGVsZXRlQWdlbnQoY2hhdC5pZClcbiAgICAgIGhhbmRsZVNuYWNrYmFyU3VjY2Vzcyh0KCdjb25maXJtQWdlbnREZWxldGVkJywgeyBuczogU0VDVElPTlMuYWJtQWdlbnQgfSkpXG4gICAgICBvbkRlbGV0ZUFnZW50Py4oY2hhdC5pZClcbiAgICAgIHNldEFnZW50VG9EZWxldGUobnVsbClcbiAgICAgIHNldE1lbnVPcGVuRm9yQWdlbnRJZChudWxsKVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBoYW5kbGVTbmFja2JhckVycm9yKHQoJ2Vycm9yQWdlbnRDcmVhdGVkJywgeyBuczogU0VDVElPTlMuYWJtQWdlbnQgfSkpXG4gICAgfVxuICB9XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBoYW5kbGVDbGlja091dHNpZGUgPSAoKSA9PiB7XG4gICAgICBpZiAobWVudU9wZW5Gb3JBZ2VudElkKSB7XG4gICAgICAgIHNldE1lbnVPcGVuRm9yQWdlbnRJZChudWxsKVxuICAgICAgfVxuICAgIH1cblxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgaGFuZGxlQ2xpY2tPdXRzaWRlKVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIGhhbmRsZUNsaWNrT3V0c2lkZSlcbiAgICB9XG4gIH0sIFttZW51T3BlbkZvckFnZW50SWRdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ215LWFnZW50cy1zY3JvbGwtY29udGFpbmVyJylcbiAgICBpZiAoIWNvbnRhaW5lcikge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH1cblxuICAgIGNvbnN0IG9uU2Nyb2xsID0gKCkgPT4ge1xuICAgICAgaWYgKCFoYXNNb3JlQWdlbnRzIHx8IGxvYWRpbmdNb3JlQWdlbnRzKSByZXR1cm5cbiAgICAgIGNvbnN0IHsgc2Nyb2xsVG9wLCBjbGllbnRIZWlnaHQsIHNjcm9sbEhlaWdodCB9ID0gY29udGFpbmVyXG4gICAgICBjb25zdCBuZWFyQm90dG9tID0gc2Nyb2xsVG9wICsgY2xpZW50SGVpZ2h0ID49IHNjcm9sbEhlaWdodCAtIDQwXG4gICAgICBpZiAobmVhckJvdHRvbSkge1xuICAgICAgICBoYW5kbGVMb2FkTW9yZSgpXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIG9uU2Nyb2xsKVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjb250YWluZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgb25TY3JvbGwpXG4gICAgfVxuICB9LCBbaGFzTW9yZUFnZW50cywgbG9hZGluZ01vcmVBZ2VudHMsIG9uTG9hZE1vcmVBZ2VudHNdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ215LWFnZW50cy1zY3JvbGwtY29udGFpbmVyJylcbiAgICBpZiAoIWNvbnRhaW5lciB8fCAhaGFzTW9yZUFnZW50cyB8fCBsb2FkaW5nTW9yZUFnZW50cykge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH1cblxuICAgIGlmIChjb250YWluZXIuc2Nyb2xsSGVpZ2h0IDw9IGNvbnRhaW5lci5jbGllbnRIZWlnaHQgKyAxKSB7XG4gICAgICBoYW5kbGVMb2FkTW9yZSgpXG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWRcbiAgfSwgW2N1c3RvbUFnZW50cy5sZW5ndGgsIGhhc01vcmVBZ2VudHMsIGxvYWRpbmdNb3JlQWdlbnRzLCBvbkxvYWRNb3JlQWdlbnRzXSlcblxuICByZXR1cm4gKFxuICAgIDxTQ01BTXlBZ2VudHNDb250YWluZXIgaWQ9XCJteS1hZ2VudHMtc2Nyb2xsLWNvbnRhaW5lclwiICRoYXNBZ2VudHM9eyEhY3VzdG9tQWdlbnRzLmxlbmd0aH0+XG4gICAgICA8TUFJQUlzb2xvZ28gLz5cblxuICAgICAgPFNDTUFCb2R5ICRjYW5DcmVhdGVBZ2VudD17Y2FuQ3JlYXRlQWdlbnQgJiYgIXdpbmRvdy5NQUlBX01BUktFVFBMQUNFX01BSUFLRVJ9PlxuICAgICAgICB7Y3VzdG9tQWdlbnRzLmxlbmd0aCA/IChcbiAgICAgICAgICA8U0NNQVRpdGxlV3JhcD5cbiAgICAgICAgICAgIDxTQ01BVGl0bGVJbm5lcj5cbiAgICAgICAgICAgICAgPFNDTUFUaXRsZT57dCgnbWFya2V0cGxhY2UubXlBZ2VudHNSZWFkeVRpdGxlJyl9PC9TQ01BVGl0bGU+XG4gICAgICAgICAgICA8L1NDTUFUaXRsZUlubmVyPlxuICAgICAgICAgICAge2NhbkNyZWF0ZUFnZW50ICYmICF3aW5kb3cuTUFJQV9NQVJLRVRQTEFDRV9NQUlBS0VSID8gKFxuICAgICAgICAgICAgICA8U0NNQUFjdGlvbnNSb3c+XG4gICAgICAgICAgICAgICAgPFNDTUFDcmVhdGVNYW51YWxCdXR0b24gdHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9e29wZW5DcmVhdGVBZ2VudE1vZGFsfT5cbiAgICAgICAgICAgICAgICAgIDxTQ01BQ3JlYXRlTWFudWFsQnV0dG9uVGV4dD57dCgnbWFya2V0cGxhY2UuY3JlYXRlQWdlbnQnKX08L1NDTUFDcmVhdGVNYW51YWxCdXR0b25UZXh0PlxuICAgICAgICAgICAgICAgIDwvU0NNQUNyZWF0ZU1hbnVhbEJ1dHRvbj5cbiAgICAgICAgICAgICAgPC9TQ01BQWN0aW9uc1Jvdz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU0NNQVRpdGxlV3JhcD5cbiAgICAgICAgKSA6IG51bGx9XG5cbiAgICAgICAge2N1c3RvbUFnZW50cy5sZW5ndGggPyAoXG4gICAgICAgICAgPFNDTUFDYXJkc091dGVyPlxuICAgICAgICAgICAgPFNDTUFDYXJkc1Jvdz5cbiAgICAgICAgICAgICAge2N1c3RvbUFnZW50cy5tYXAoYWdlbnQgPT4gKFxuICAgICAgICAgICAgICAgIDxTQ01BQ2FyZEJ1dHRvbiBrZXk9e2FnZW50LmlkfSB0eXBlPVwiYnV0dG9uXCIgb25DbGljaz17KCkgPT4gaGFuZGxlVXNlQWdlbnQoYWdlbnQpfT5cbiAgICAgICAgICAgICAgICAgIDxTQ01BQ2FyZEhlYWRlcj5cbiAgICAgICAgICAgICAgICAgICAgPFNDTUFDYXJkVG9wUm93PlxuICAgICAgICAgICAgICAgICAgICAgIDxTQ01BQ2FyZFRpdGxlRW1vamkgYXJpYS1oaWRkZW4+XG4gICAgICAgICAgICAgICAgICAgICAgICB7YWdlbnQuZW1vamk/LnRyaW0oKSA/IGFnZW50LmVtb2ppIDogJ1xcdTAwYTAnfVxuICAgICAgICAgICAgICAgICAgICAgIDwvU0NNQUNhcmRUaXRsZUVtb2ppPlxuICAgICAgICAgICAgICAgICAgICAgIHtjYW5TaG93TWVudSA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxTQ01BS2ViYWJCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e3QoJ21hcmtldHBsYWNlLmNhcmRNZW51QXJpYUxhYmVsJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2V2ZW50ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRNZW51T3BlbkZvckFnZW50SWQocHJldiA9PiAocHJldiA9PT0gYWdlbnQuaWQgPyBudWxsIDogYWdlbnQuaWQpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8TWVudURvdHMgY29sb3I9XCIjOTk5XCIgd2lkdGg9ezE1fSBoZWlnaHQ9ezE1fSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9TQ01BS2ViYWJCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgICAgIDwvU0NNQUNhcmRUb3BSb3c+XG4gICAgICAgICAgICAgICAgICAgIDxTQ01BQ2FyZFRpdGxlTmFtZT57YWdlbnQubmFtZX08L1NDTUFDYXJkVGl0bGVOYW1lPlxuICAgICAgICAgICAgICAgICAgPC9TQ01BQ2FyZEhlYWRlcj5cbiAgICAgICAgICAgICAgICAgIDxTQ01BQ2FyZEJvZHk+XG4gICAgICAgICAgICAgICAgICAgIDxTQ01BQ2FyZEludHJvVGV4dD57bm9ybWFsaXplVGV4dChhZ2VudC5pbnRyb2R1Y3Rpb24pfTwvU0NNQUNhcmRJbnRyb1RleHQ+XG4gICAgICAgICAgICAgICAgICAgIDxTQ01BQ2FyZEZvb3Rlcj5cbiAgICAgICAgICAgICAgICAgICAgICA8U0NNQUNhcmRGb290ZXJEYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAge2dldENyZWF0ZWRBdExhYmVsKGFnZW50KSB8fCB0KCdtYXJrZXRwbGFjZS5teUFnZW50c0ZhbGxiYWNrRGF0ZScpfVxuICAgICAgICAgICAgICAgICAgICAgIDwvU0NNQUNhcmRGb290ZXJEYXRlPlxuICAgICAgICAgICAgICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXthZ2VudC5pc19mYXZvcml0ZSA/IHQoJ2FnZW50cy5yZW1vdmVGYXZvcml0ZScpIDogdCgnYWdlbnRzLmFkZEZhdm9yaXRlJyl9PlxuICAgICAgICAgICAgICAgICAgICAgICAgPFNDTUFGYXZvcml0ZUJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17YWdlbnQuaXNfZmF2b3JpdGUgPyB0KCdhZ2VudHMucmVtb3ZlRmF2b3JpdGUnKSA6IHQoJ2FnZW50cy5hZGRGYXZvcml0ZScpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAkYWx3YXlzVmlzaWJsZT17ISFhZ2VudC5pc19mYXZvcml0ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17ZXZlbnQgPT4gaGFuZGxlVG9nZ2xlRmF2b3JpdGUoZXZlbnQsIGFnZW50LCAhIWFnZW50LmlzX2Zhdm9yaXRlKX1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFNDTUFGYXZvcml0ZVN0YXJXcmFwPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTdGFyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD17MTZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9ezE2fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I9e2FnZW50LmlzX2Zhdm9yaXRlID8gJyNGRkM2MjQnIDogJyM5OTknfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD17YWdlbnQuaXNfZmF2b3JpdGUgPyAnI0ZGQzYyNCcgOiAnbm9uZSd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwic29saWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXthZ2VudC5pc19mYXZvcml0ZSA/ICcnIDogJ3N0YXItZmF2b3JpdGUtaWNvbid9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TQ01BRmF2b3JpdGVTdGFyV3JhcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvU0NNQUZhdm9yaXRlQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgICAgICAgPC9TQ01BQ2FyZEZvb3Rlcj5cbiAgICAgICAgICAgICAgICAgIDwvU0NNQUNhcmRCb2R5PlxuICAgICAgICAgICAgICAgICAge21lbnVPcGVuRm9yQWdlbnRJZCA9PT0gYWdlbnQuaWQgJiYgY2FuU2hvd01lbnUgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTQ01BQ2FyZE1lbnVcbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8U0NNQUNhcmRNZW51SXRlbXM+XG4gICAgICAgICAgICAgICAgICAgICAgICB7Y2FuRWRpdCA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFNDTUFDYXJkTWVudUl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVPcGVuRWRpdEFnZW50KGFnZW50KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dCgnZWRpdCcsIHsgbnM6IFNFQ1RJT05TLmFibUFnZW50IH0pfVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L1NDTUFDYXJkTWVudUl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHtjYW5EZWxldGUgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxTQ01BQ2FyZE1lbnVJdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0QWdlbnRUb0RlbGV0ZShhZ2VudClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3QoJ2RlbGV0ZScsIHsgbnM6IFNFQ1RJT05TLmFibUFnZW50IH0pfVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L1NDTUFDYXJkTWVudUl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgICAgICA8L1NDTUFDYXJkTWVudUl0ZW1zPlxuICAgICAgICAgICAgICAgICAgICA8L1NDTUFDYXJkTWVudT5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvU0NNQUNhcmRCdXR0b24+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC9TQ01BQ2FyZHNSb3c+XG4gICAgICAgICAgPC9TQ01BQ2FyZHNPdXRlcj5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8U0NNQUVtcHR5U3RhdGVSb290PlxuICAgICAgICAgICAgPFNDTUFFbXB0eVN0YXRlQ29sdW1uPlxuICAgICAgICAgICAgICA8U0NNQUVtcHR5U3RhdGVUaXRsZUJsb2NrPlxuICAgICAgICAgICAgICAgIDxTQ01BRW1wdHlTdGF0ZVRpdGxlPnt0KCdtYXJrZXRwbGFjZS5teUFnZW50c0VtcHR5U3RhdGVUaXRsZScpfTwvU0NNQUVtcHR5U3RhdGVUaXRsZT5cbiAgICAgICAgICAgICAgICA8U0NNQUVtcHR5U3RhdGVTdWJ0aXRsZT5cbiAgICAgICAgICAgICAgICAgIHtjYW5DcmVhdGVBZ2VudFxuICAgICAgICAgICAgICAgICAgICA/IHQoJ21hcmtldHBsYWNlLm15QWdlbnRzRW1wdHlTdGF0ZURlc2NyaXB0aW9uJylcbiAgICAgICAgICAgICAgICAgICAgOiB0KCdtYXJrZXRwbGFjZS5teUFnZW50c0VtcHR5U3RhdGVEZXNjcmlwdGlvbk5vUGVybScpfVxuICAgICAgICAgICAgICAgIDwvU0NNQUVtcHR5U3RhdGVTdWJ0aXRsZT5cbiAgICAgICAgICAgICAgPC9TQ01BRW1wdHlTdGF0ZVRpdGxlQmxvY2s+XG4gICAgICAgICAgICA8L1NDTUFFbXB0eVN0YXRlQ29sdW1uPlxuICAgICAgICAgICAge2NhbkNyZWF0ZUFnZW50ID8gKFxuICAgICAgICAgICAgICA8U0NNQUVtcHR5U3RhdGVCdXR0b24gdHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9e2hhbmRsZUVtcHR5U3RhdGVQcmltYXJ5QWN0aW9ufT5cbiAgICAgICAgICAgICAgICB7dCgnbWFya2V0cGxhY2UubXlBZ2VudHNFbXB0eVN0YXRlQnV0dG9uJyl9XG4gICAgICAgICAgICAgIDwvU0NNQUVtcHR5U3RhdGVCdXR0b24+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8L1NDTUFFbXB0eVN0YXRlUm9vdD5cbiAgICAgICAgKX1cbiAgICAgICAge2xvYWRpbmdNb3JlQWdlbnRzID8gKFxuICAgICAgICAgIDxTQ01BTG9hZE1vcmVXcmFwcGVyPlxuICAgICAgICAgICAgPExvYWRlciBzaXplPVwic21hbGxcIiAvPlxuICAgICAgICAgIDwvU0NNQUxvYWRNb3JlV3JhcHBlcj5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8L1NDTUFCb2R5PlxuICAgICAge2RlbGV0ZU1vZGFsQ2hhdCA/IChcbiAgICAgICAgPERlbGV0ZVF1ZXN0aW9uTW9kYWxcbiAgICAgICAgICBvbkNsb3NlPXsoKSA9PiBzZXRBZ2VudFRvRGVsZXRlKG51bGwpfVxuICAgICAgICAgIGhhbmRsZXJzPXt7XG4gICAgICAgICAgICBoYW5kbGVDb25maXJtQWN0aW9uOiBoYW5kbGVDb25maXJtRGVsZXRlLFxuICAgICAgICAgIH19XG4gICAgICAgICAgY2hhdD17ZGVsZXRlTW9kYWxDaGF0fVxuICAgICAgICAgIGFjdGlvbj1cImFnZW50XCJcbiAgICAgICAgLz5cbiAgICAgICkgOiBudWxsfVxuICAgIDwvU0NNQU15QWdlbnRzQ29udGFpbmVyPlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBLE9BQU9BLEtBQUssSUFBSUMsV0FBVyxFQUFFQyxTQUFTLEVBQUVDLE9BQU8sRUFBRUMsUUFBUSxRQUFRLE9BQU87QUFDeEUsU0FBU0MsUUFBUSxRQUFRLDJDQUEyQztBQUNwRSxTQUFTQyxJQUFJLFFBQVEsdUNBQXVDO0FBQzVELFNBQVNDLE9BQU8sUUFBUSw4Q0FBOEM7QUFDdEUsU0FBU0MsY0FBYyxRQUFRLGVBQWU7QUFDOUMsU0FBU0MsT0FBTyxRQUFRLDJCQUEyQjtBQUVuRCxTQUFTQyxXQUFXLFFBQVEsMkNBQTJDO0FBQ3ZFLFNBQVNDLGtCQUFrQixRQUFRLHNEQUFzRDtBQUN6RixTQUFTQyxtQkFBbUIsUUFBUSx5REFBeUQ7QUFDN0YsU0FBU0MsUUFBUSxRQUFRLDJCQUEyQjtBQUNwRCxTQUFTQyxNQUFNLFFBQVEsb0JBQW9CO0FBQzNDLFNBQVNDLGlCQUFp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
|
|
360
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUNhbGxiYWNrIiwidXNlRWZmZWN0IiwidXNlTWVtbyIsInVzZVN0YXRlIiwiTWVudURvdHMiLCJTdGFyIiwiVG9vbHRpcCIsInVzZVRyYW5zbGF0aW9uIiwidXNlR2xvYmFsQ29udGV4dCIsInVzZVVzZXIiLCJkZWxldGVBZ2VudCIsInVzZVNuYWNrQmFyTWFuYWdlciIsIkRlbGV0ZVF1ZXN0aW9uTW9kYWwiLCJTRUNUSU9OUyIsIkxvYWRlciIsInVzZVRvZ2dsZUZhdm9yaXRlIiwiRVZFTlRTIiwidXNlRXZlbnQiLCJTQ01BQm9keSIsIlNDTUFDYXJkQm9keSIsIlNDTUFDYXJkQnV0dG9uIiwiU0NNQUNhcmRGb290ZXIiLCJTQ01BQ2FyZEhlYWRlciIsIlNDTUFDYXJkVG9wUm93IiwiU0NNQUNhcmRJbnRyb1RleHQiLCJTQ01BQ2FyZE1lbnUiLCJTQ01BQ2FyZE1lbnVJdGVtIiwiU0NNQUNhcmRNZW51SXRlbXMiLCJTQ01BRmF2b3JpdGVCdXR0b24iLCJTQ01BRmF2b3JpdGVTdGFyV3JhcCIsIlNDTUFDYXJkRm9vdGVyRGF0ZSIsIlNDTUFDYXJkVGl0bGVFbW9qaSIsIlNDTUFDYXJkVGl0bGVOYW1lIiwiU0NNQUNhcmRzT3V0ZXIiLCJTQ01BQ2FyZHNSb3ciLCJTQ01BRW1wdHlTdGF0ZVJvb3QiLCJTQ01BRW1wdHlTdGF0ZUNvbHVtbiIsIlNDTUFFbXB0eVN0YXRlVGl0bGVCbG9jayIsIlNDTUFFbXB0eVN0YXRlVGl0bGUiLCJTQ01BRW1wdHlTdGF0ZVN1YnRpdGxlIiwiU0NNQUVtcHR5U3RhdGVCdXR0b24iLCJTQ01BS2ViYWJCdXR0b24iLCJTQ01BTG9hZE1vcmVXcmFwcGVyIiwiU0NNQU15QWdlbnRzQ29udGFpbmVyIiwiU0NNQVRpdGxlIiwiU0NNQVRpdGxlSW5uZXIiLCJTQ01BVGl0bGVXcmFwIiwiU0NNQUFjdGlvbnNSb3ciLCJTQ01BQ3JlYXRlTWFudWFsQnV0dG9uIiwiU0NNQUNyZWF0ZU1hbnVhbEJ1dHRvblRleHQiLCJNQUlBSXNvbG9nbyIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJDaGF0QUlNeUFnZW50cyIsIl9yZWYiLCJfdXNlciRwZXJtaXNzaW9ucyIsIm9uQmFjayIsImFnZW50cyIsIm9uRGVsZXRlQWdlbnQiLCJvbkZhdm9yaXRlQWdlbnRVcGRhdGUiLCJfcmVmJGhhc01vcmVBZ2VudHMiLCJoYXNNb3JlQWdlbnRzIiwiX3JlZiRsb2FkaW5nTW9yZUFnZW50IiwibG9hZGluZ01vcmVBZ2VudHMiLCJvbkxvYWRNb3JlQWdlbnRzIiwib25Hb1RvTWFpYWtlciIsIl91c2VUcmFuc2xhdGlvbiIsImNoYXRBSSIsImFibUFnZW50IiwidCIsInVzZXIiLCJfdXNlR2xvYmFsQ29udGV4dCIsInNlbGVjdEFnZW50Iiwic2V0UHJvamVjdCIsInNldENsaWVudCIsIl91c2VTbmFja0Jhck1hbmFnZXIiLCJoYW5kbGVTbmFja2JhclN1Y2Nlc3MiLCJoYW5kbGVTbmFja2JhckVycm9yIiwiY3VzdG9tQWdlbnRzIiwiZmlsdGVyIiwiYWdlbnQiLCJ0eXBlIiwiaXNfZGVsZXRlZCIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsIm1lbnVPcGVuRm9yQWdlbnRJZCIsInNldE1lbnVPcGVuRm9yQWdlbnRJZCIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiYWdlbnRUb0RlbGV0ZSIsInNldEFnZW50VG9EZWxldGUiLCJ1c2VyUGVybWlzc2lvbnMiLCJwZXJtaXNzaW9ucyIsImFpX2FnZW50cyIsImNhbkNyZWF0ZUFnZW50IiwiY3JlYXRlIiwid2luZG93IiwiTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UUyIsImNhbkVkaXQiLCJlZGl0IiwiY2FuRGVsZXRlIiwiY2FuU2hvd01lbnUiLCJfdXNlVG9nZ2xlRmF2b3JpdGUiLCJ0b2dnbGVGYXZvcml0ZSIsImV2ZW50QW1wbGl0dWRlIiwib3BlbkNyZWF0ZUFnZW50TW9kYWwiLCJvcGVuTW9kYWwiLCJvcHRpb24iLCJkb2N1bWVudCIsImRpc3BhdGNoRXZlbnQiLCJDdXN0b21FdmVudCIsImRldGFpbCIsImFnZW50VmFsdWVzIiwidmFsdWVzIiwiaXNFZGl0aW5nIiwiaXNPcGVuIiwiaGFuZGxlRW1wdHlTdGF0ZVByaW1hcnlBY3Rpb24iLCJ1c2VNYXJrZXRwbGFjZU1haWFrZXIiLCJNQUlBX01BUktFVFBMQUNFX01BSUFLRVIiLCJoYW5kbGVMb2FkTW9yZSIsImRlbGV0ZU1vZGFsQ2hhdCIsInRpdGxlIiwibmFtZSIsImlkIiwiaGFuZGxlVXNlQWdlbnQiLCJub3JtYWxpemVUZXh0IiwidmFsdWUiLCJBcnJheSIsImlzQXJyYXkiLCJnZXRDcmVhdGVkQXRMYWJlbCIsImNyZWF0ZWRBdCIsImNyZWF0ZWRfYXQiLCJjcmVhdGVkQXREYXRlIiwiRGF0ZSIsIk51bWJlciIsImlzTmFOIiwiZ2V0VGltZSIsImRpZmZNcyIsIm5vdyIsImRheU1zIiwiZGF5cyIsIk1hdGgiLCJtYXgiLCJmbG9vciIsImhhbmRsZU9wZW5FZGl0QWdlbnQiLCJrbm93bGVkZ2UiLCJnZW5lcmFsIiwiaGFuZGxlVG9nZ2xlRmF2b3JpdGUiLCJldmVudCIsImlzRmF2b3JpdGUiLCJwcmV2ZW50RGVmYXVsdCIsInN0b3BQcm9wYWdhdGlvbiIsInVwZGF0ZWRBZ2VudCIsInVuZGVmaW5lZCIsImhhbmRsZUNvbmZpcm1EZWxldGUiLCJfcmVmMiIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwiY2hhdCIsIl90Iiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJucyIsInN0b3AiLCJfeCIsImFwcGx5IiwiYXJndW1lbnRzIiwiaGFuZGxlQ2xpY2tPdXRzaWRlIiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJjb250YWluZXIiLCJnZXRFbGVtZW50QnlJZCIsIm9uU2Nyb2xsIiwic2Nyb2xsVG9wIiwiY2xpZW50SGVpZ2h0Iiwic2Nyb2xsSGVpZ2h0IiwibmVhckJvdHRvbSIsImxlbmd0aCIsIiRoYXNBZ2VudHMiLCJjaGlsZHJlbiIsIiRjYW5DcmVhdGVBZ2VudCIsIm9uQ2xpY2siLCJtYXAiLCJfYWdlbnQkZW1vamkiLCJlbW9qaSIsInRyaW0iLCJjb2xvciIsIndpZHRoIiwiaGVpZ2h0IiwiaW50cm9kdWN0aW9uIiwiaXNfZmF2b3JpdGUiLCIkYWx3YXlzVmlzaWJsZSIsImZpbGwiLCJ2YXJpYW50IiwiY2xhc3NOYW1lIiwic2l6ZSIsIm9uQ2xvc2UiLCJoYW5kbGVycyIsImhhbmRsZUNvbmZpcm1BY3Rpb24iLCJhY3Rpb24iXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEFJTXlBZ2VudHMvQ2hhdEFJTXlBZ2VudHMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgTWVudURvdHMgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9NZW51RG90cydcbmltcG9ydCB7IFN0YXIgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9TdGFyJ1xuaW1wb3J0IHsgVG9vbHRpcCB9IGZyb20gJ0Bwcm9qZWN0Y29yL3Rvb2x0aXB2Mi9saWIvY29tcG9uZW50cy9Ub29sdGlwJ1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0J1xuaW1wb3J0IHsgdXNlR2xvYmFsQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyB1c2VVc2VyIH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9jb3ItdXNlcidcbmltcG9ydCB7IEFnZW50IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvYWdlbnQnXG5pbXBvcnQgeyBkZWxldGVBZ2VudCB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL21haWEvQWdlbnRzL2RlbGV0ZUFnZW50J1xuaW1wb3J0IHsgdXNlU25hY2tCYXJNYW5hZ2VyIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlU25hY2tCYXJNYW5hZ2VyL3VzZVNuYWNrQmFyTWFuYWdlcidcbmltcG9ydCB7IERlbGV0ZVF1ZXN0aW9uTW9kYWwgfSBmcm9tICcuLi8uLi9vcmdhbmlzbXMvRGVsZXRlUXVlc3Rpb25Nb2RhbC9EZWxldGVRdWVzdGlvbk1vZGFsJ1xuaW1wb3J0IHsgU0VDVElPTlMgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvY29uZmlnJ1xuaW1wb3J0IHsgTG9hZGVyIH0gZnJvbSAnLi4vLi4vYXRvbXMvTG9hZGVyJ1xuaW1wb3J0IHsgdXNlVG9nZ2xlRmF2b3JpdGUgfSBmcm9tICcuLi8uLi8uLi9ob29rcydcbmltcG9ydCB7IEVWRU5UUywgdXNlRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VFdmVudCdcbmltcG9ydCB7XG4gIFNDTUFCb2R5LFxuICBTQ01BQ2FyZEJvZHksXG4gIFNDTUFDYXJkQnV0dG9uLFxuICBTQ01BQ2FyZEZvb3RlcixcbiAgU0NNQUNhcmRIZWFkZXIsXG4gIFNDTUFDYXJkVG9wUm93LFxuICBTQ01BQ2FyZEludHJvVGV4dCxcbiAgU0NNQUNhcmRNZW51LFxuICBTQ01BQ2FyZE1lbnVJdGVtLFxuICBTQ01BQ2FyZE1lbnVJdGVtcyxcbiAgU0NNQUZhdm9yaXRlQnV0dG9uLFxuICBTQ01BRmF2b3JpdGVTdGFyV3JhcCxcbiAgU0NNQUNhcmRGb290ZXJEYXRlLFxuICBTQ01BQ2FyZFRpdGxlRW1vamksXG4gIFNDTUFDYXJkVGl0bGVOYW1lLFxuICBTQ01BQ2FyZHNPdXRlcixcbiAgU0NNQUNhcmRzUm93LFxuICBTQ01BRW1wdHlTdGF0ZVJvb3QsXG4gIFNDTUFFbXB0eVN0YXRlQ29sdW1uLFxuICBTQ01BRW1wdHlTdGF0ZVRpdGxlQmxvY2ssXG4gIFNDTUFFbXB0eVN0YXRlVGl0bGUsXG4gIFNDTUFFbXB0eVN0YXRlU3VidGl0bGUsXG4gIFNDTUFFbXB0eVN0YXRlQnV0dG9uLFxuICBTQ01BS2ViYWJCdXR0b24sXG4gIFNDTUFMb2FkTW9yZVdyYXBwZXIsXG4gIFNDTUFNeUFnZW50c0NvbnRhaW5lcixcbiAgU0NNQVRpdGxlLFxuICBTQ01BVGl0bGVJbm5lcixcbiAgU0NNQVRpdGxlV3JhcCxcbiAgU0NNQUFjdGlvbnNSb3csXG4gIFNDTUFDcmVhdGVNYW51YWxCdXR0b24sXG4gIFNDTUFDcmVhdGVNYW51YWxCdXR0b25UZXh0LFxufSBmcm9tICcuL0NoYXRBSU15QWdlbnRzLnN0eWxlcydcbmltcG9ydCB7IE1BSUFJc29sb2dvIH0gZnJvbSAnLi4vLi4vYXRvbXMvaWNvbnMnXG5cbnR5cGUgQ2hhdEFJTXlBZ2VudHNQcm9wcyA9IHtcbiAgb25CYWNrOiAoKSA9PiB2b2lkXG4gIGFnZW50czogQWdlbnRbXVxuICBvbkRlbGV0ZUFnZW50PzogKGFnZW50SWQ6IHN0cmluZykgPT4gdm9pZFxuICBvbkZhdm9yaXRlQWdlbnRVcGRhdGU/OiAoYWdlbnQ6IEFnZW50KSA9PiB2b2lkXG4gIGhhc01vcmVBZ2VudHM/OiBib29sZWFuXG4gIGxvYWRpbmdNb3JlQWdlbnRzPzogYm9vbGVhblxuICBvbkxvYWRNb3JlQWdlbnRzPzogKCkgPT4gdm9pZFxuICBvbkdvVG9NYWlha2VyPzogKCkgPT4gdm9pZCB8IFByb21pc2U8dm9pZD5cbn1cblxuZXhwb3J0IGNvbnN0IENoYXRBSU15QWdlbnRzID0gKHtcbiAgb25CYWNrLFxuICBhZ2VudHMsXG4gIG9uRGVsZXRlQWdlbnQsXG4gIG9uRmF2b3JpdGVBZ2VudFVwZGF0ZSxcbiAgaGFzTW9yZUFnZW50cyA9IGZhbHNlLFxuICBsb2FkaW5nTW9yZUFnZW50cyA9IGZhbHNlLFxuICBvbkxvYWRNb3JlQWdlbnRzLFxuICBvbkdvVG9NYWlha2VyLFxufTogQ2hhdEFJTXlBZ2VudHNQcm9wcykgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKFtTRUNUSU9OUy5jaGF0QUksIFNFQ1RJT05TLmFibUFnZW50XSlcbiAgY29uc3QgdXNlciA9IHVzZVVzZXIoKVxuICBjb25zdCB7IHNlbGVjdEFnZW50LCBzZXRQcm9qZWN0LCBzZXRDbGllbnQgfSA9IHVzZUdsb2JhbENvbnRleHQoKVxuICBjb25zdCB7IGhhbmRsZVNuYWNrYmFyU3VjY2VzcywgaGFuZGxlU25hY2tiYXJFcnJvciB9ID0gdXNlU25hY2tCYXJNYW5hZ2VyKClcbiAgY29uc3QgY3VzdG9tQWdlbnRzID0gYWdlbnRzLmZpbHRlcihhZ2VudCA9PiBhZ2VudC50eXBlID09PSAnY3VzdG9tJyAmJiAhYWdlbnQuaXNfZGVsZXRlZClcbiAgY29uc3QgW21lbnVPcGVuRm9yQWdlbnRJZCwgc2V0TWVudU9wZW5Gb3JBZ2VudElkXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpXG4gIGNvbnN0IFthZ2VudFRvRGVsZXRlLCBzZXRBZ2VudFRvRGVsZXRlXSA9IHVzZVN0YXRlPEFnZW50IHwgbnVsbD4obnVsbClcbiAgY29uc3QgdXNlclBlcm1pc3Npb25zID0gdXNlcj8ucGVybWlzc2lvbnM/LmFpX2FnZW50c1xuICBjb25zdCBjYW5DcmVhdGVBZ2VudCA9ICEhdXNlclBlcm1pc3Npb25zPy5jcmVhdGUgJiYgISF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UU1xuICBjb25zdCBjYW5FZGl0ID0gISF1c2VyUGVybWlzc2lvbnM/LmVkaXQgJiYgISF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UU1xuICBjb25zdCBjYW5EZWxldGUgPSAhIXVzZXJQZXJtaXNzaW9ucz8uZGVsZXRlICYmICEhd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFNcbiAgY29uc3QgY2FuU2hvd01lbnUgPSBjYW5FZGl0IHx8IGNhbkRlbGV0ZVxuICBjb25zdCB7IHRvZ2dsZUZhdm9yaXRlIH0gPSB1c2VUb2dnbGVGYXZvcml0ZSgpXG4gIGNvbnN0IGV2ZW50QW1wbGl0dWRlID0gdXNlRXZlbnQoKVxuXG4gIGNvbnN0IG9wZW5DcmVhdGVBZ2VudE1vZGFsID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5vcGVuTW9kYWwsIHsgb3B0aW9uOiAnY3JlYXRlX2FnZW50JyB9KVxuICAgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQoXG4gICAgICBuZXcgQ3VzdG9tRXZlbnQoJ2FibS1hZ2VudC1tb2RhbC1zZXQtdmFsdWVzJywge1xuICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICBhZ2VudFZhbHVlczoge1xuICAgICAgICAgICAgdmFsdWVzOiB7XG4gICAgICAgICAgICAgIGlzRWRpdGluZzogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaXNPcGVuOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgIClcbiAgfSwgW2V2ZW50QW1wbGl0dWRlXSlcblxuICBjb25zdCBoYW5kbGVFbXB0eVN0YXRlUHJpbWFyeUFjdGlvbiA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBjb25zdCB1c2VNYXJrZXRwbGFjZU1haWFrZXIgPSAhIXdpbmRvdy5NQUlBX01BUktFVFBMQUNFX01BSUFLRVIgJiYgdHlwZW9mIG9uR29Ub01haWFrZXIgPT09ICdmdW5jdGlvbidcbiAgICBpZiAodXNlTWFya2V0cGxhY2VNYWlha2VyKSB7XG4gICAgICBvbkdvVG9NYWlha2VyKClcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBvcGVuQ3JlYXRlQWdlbnRNb2RhbCgpXG4gIH0sIFtvbkdvVG9NYWlha2VyLCBvcGVuQ3JlYXRlQWdlbnRNb2RhbF0pXG5cbiAgY29uc3QgaGFuZGxlTG9hZE1vcmUgPSAoKSA9PiB7XG4gICAgaWYgKCFvbkxvYWRNb3JlQWdlbnRzIHx8ICFoYXNNb3JlQWdlbnRzIHx8IGxvYWRpbmdNb3JlQWdlbnRzKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgb25Mb2FkTW9yZUFnZW50cygpXG4gIH1cblxuICBjb25zdCBkZWxldGVNb2RhbENoYXQgPSB1c2VNZW1vKFxuICAgICgpID0+IChhZ2VudFRvRGVsZXRlID8geyB0aXRsZTogYWdlbnRUb0RlbGV0ZS5uYW1lLCBpZDogYWdlbnRUb0RlbGV0ZS5pZCB9IDogbnVsbCksXG4gICAgW2FnZW50VG9EZWxldGVdXG4gIClcblxuICBjb25zdCBoYW5kbGVVc2VBZ2VudCA9IChhZ2VudDogQWdlbnQpID0+IHtcbiAgICBzZXRQcm9qZWN0KG51bGwpXG4gICAgc2V0Q2xpZW50Py4obnVsbClcbiAgICBzZWxlY3RBZ2VudChhZ2VudClcbiAgICBvbkJhY2soKVxuICB9XG5cbiAgY29uc3Qgbm9ybWFsaXplVGV4dCA9ICh2YWx1ZT86IHN0cmluZyB8IHN0cmluZ1tdIHwgbnVsbCkgPT4ge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkgcmV0dXJuIHZhbHVlWzBdIHx8ICcnXG4gICAgcmV0dXJuIHZhbHVlIHx8ICcnXG4gIH1cblxuICBjb25zdCBnZXRDcmVhdGVkQXRMYWJlbCA9IChhZ2VudDogQWdlbnQpID0+IHtcbiAgICBjb25zdCBjcmVhdGVkQXQgPSAoYWdlbnQgYXMgQWdlbnQgJiB7IGNyZWF0ZWRfYXQ/OiBzdHJpbmcgfSkuY3JlYXRlZF9hdFxuICAgIGlmICghY3JlYXRlZEF0KSByZXR1cm4gJydcblxuICAgIGNvbnN0IGNyZWF0ZWRBdERhdGUgPSBuZXcgRGF0ZShjcmVhdGVkQXQpXG4gICAgaWYgKE51bWJlci5pc05hTihjcmVhdGVkQXREYXRlLmdldFRpbWUoKSkpIHJldHVybiAnJ1xuXG4gICAgY29uc3QgZGlmZk1zID0gRGF0ZS5ub3coKSAtIGNyZWF0ZWRBdERhdGUuZ2V0VGltZSgpXG4gICAgY29uc3QgZGF5TXMgPSAxMDAwICogNjAgKiA2MCAqIDI0XG4gICAgY29uc3QgZGF5cyA9IE1hdGgubWF4KDAsIE1hdGguZmxvb3IoZGlmZk1zIC8gZGF5TXMpKVxuXG4gICAgaWYgKGRheXMgPT09IDApIHJldHVybiB0KCdtYXJrZXRwbGFjZS5teUFnZW50c1RvZGF5JylcbiAgICBpZiAoZGF5cyA9PT0gMSkgcmV0dXJuIHQoJ21hcmtldHBsYWNlLm15QWdlbnRzT25lRGF5QWdvJylcbiAgICByZXR1cm4gdCgnbWFya2V0cGxhY2UubXlBZ2VudHNEYXlzQWdvJywgeyBkYXlzIH0pXG4gIH1cblxuICBjb25zdCBoYW5kbGVPcGVuRWRpdEFnZW50ID0gKGFnZW50OiBBZ2VudCkgPT4ge1xuICAgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQoXG4gICAgICBuZXcgQ3VzdG9tRXZlbnQoJ2FibS1hZ2VudC1tb2RhbC1zZXQtdmFsdWVzJywge1xuICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICBhZ2VudFZhbHVlczoge1xuICAgICAgICAgICAgdmFsdWVzOiB7XG4gICAgICAgICAgICAgIGlzRWRpdGluZzogdHJ1ZSxcbiAgICAgICAgICAgICAga25vd2xlZGdlOiBhZ2VudD8ua25vd2xlZGdlIHx8IFtdLFxuICAgICAgICAgICAgICBnZW5lcmFsOiB7XG4gICAgICAgICAgICAgICAgbmFtZTogYWdlbnQubmFtZSxcbiAgICAgICAgICAgICAgICBpZDogYWdlbnQuaWQsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaXNPcGVuOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgIClcbiAgICBzZXRNZW51T3BlbkZvckFnZW50SWQobnVsbClcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVRvZ2dsZUZhdm9yaXRlID0gKGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50PEhUTUxCdXR0b25FbGVtZW50PiwgYWdlbnQ6IEFnZW50LCBpc0Zhdm9yaXRlOiBib29sZWFuKSA9PiB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG5cbiAgICB0b2dnbGVGYXZvcml0ZShcbiAgICAgIGFnZW50LmlkLFxuICAgICAgdXBkYXRlZEFnZW50ID0+IHtcbiAgICAgICAgb25GYXZvcml0ZUFnZW50VXBkYXRlPy4odXBkYXRlZEFnZW50KVxuICAgICAgfSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIGlzRmF2b3JpdGVcbiAgICApXG4gIH1cblxuICBjb25zdCBoYW5kbGVDb25maXJtRGVsZXRlID0gYXN5bmMgKGNoYXQ6IHsgaWQ6IHN0cmluZyB9KSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGRlbGV0ZUFnZW50KGNoYXQuaWQpXG4gICAgICBoYW5kbGVTbmFja2JhclN1Y2Nlc3ModCgnY29uZmlybUFnZW50RGVsZXRlZCcsIHsgbnM6IFNFQ1RJT05TLmFibUFnZW50IH0pKVxuICAgICAgb25EZWxldGVBZ2VudD8uKGNoYXQuaWQpXG4gICAgICBzZXRBZ2VudFRvRGVsZXRlKG51bGwpXG4gICAgICBzZXRNZW51T3BlbkZvckFnZW50SWQobnVsbClcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgaGFuZGxlU25hY2tiYXJFcnJvcih0KCdlcnJvckFnZW50Q3JlYXRlZCcsIHsgbnM6IFNFQ1RJT05TLmFibUFnZW50IH0pKVxuICAgIH1cbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlQ2xpY2tPdXRzaWRlID0gKCkgPT4ge1xuICAgICAgaWYgKG1lbnVPcGVuRm9yQWdlbnRJZCkge1xuICAgICAgICBzZXRNZW51T3BlbkZvckFnZW50SWQobnVsbClcbiAgICAgIH1cbiAgICB9XG5cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGhhbmRsZUNsaWNrT3V0c2lkZSlcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCBoYW5kbGVDbGlja091dHNpZGUpXG4gICAgfVxuICB9LCBbbWVudU9wZW5Gb3JBZ2VudElkXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdteS1hZ2VudHMtc2Nyb2xsLWNvbnRhaW5lcicpXG4gICAgaWYgKCFjb250YWluZXIpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9XG5cbiAgICBjb25zdCBvblNjcm9sbCA9ICgpID0+IHtcbiAgICAgIGlmICghaGFzTW9yZUFnZW50cyB8fCBsb2FkaW5nTW9yZUFnZW50cykgcmV0dXJuXG4gICAgICBjb25zdCB7IHNjcm9sbFRvcCwgY2xpZW50SGVpZ2h0LCBzY3JvbGxIZWlnaHQgfSA9IGNvbnRhaW5lclxuICAgICAgY29uc3QgbmVhckJvdHRvbSA9IHNjcm9sbFRvcCArIGNsaWVudEhlaWdodCA+PSBzY3JvbGxIZWlnaHQgLSA0MFxuICAgICAgaWYgKG5lYXJCb3R0b20pIHtcbiAgICAgICAgaGFuZGxlTG9hZE1vcmUoKVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnRhaW5lci5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBvblNjcm9sbClcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY29udGFpbmVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIG9uU2Nyb2xsKVxuICAgIH1cbiAgfSwgW2hhc01vcmVBZ2VudHMsIGxvYWRpbmdNb3JlQWdlbnRzLCBvbkxvYWRNb3JlQWdlbnRzXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdteS1hZ2VudHMtc2Nyb2xsLWNvbnRhaW5lcicpXG4gICAgaWYgKCFjb250YWluZXIgfHwgIWhhc01vcmVBZ2VudHMgfHwgbG9hZGluZ01vcmVBZ2VudHMpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9XG5cbiAgICBpZiAoY29udGFpbmVyLnNjcm9sbEhlaWdodCA8PSBjb250YWluZXIuY2xpZW50SGVpZ2h0ICsgMSkge1xuICAgICAgaGFuZGxlTG9hZE1vcmUoKVxuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH0sIFtjdXN0b21BZ2VudHMubGVuZ3RoLCBoYXNNb3JlQWdlbnRzLCBsb2FkaW5nTW9yZUFnZW50cywgb25Mb2FkTW9yZUFnZW50c10pXG5cbiAgcmV0dXJuIChcbiAgICA8U0NNQU15QWdlbnRzQ29udGFpbmVyIGlkPVwibXktYWdlbnRzLXNjcm9sbC1jb250YWluZXJcIiAkaGFzQWdlbnRzPXshIWN1c3RvbUFnZW50cy5sZW5ndGh9PlxuICAgICAgPE1BSUFJc29sb2dvIC8+XG5cbiAgICAgIDxTQ01BQm9keSAkY2FuQ3JlYXRlQWdlbnQ9e2NhbkNyZWF0ZUFnZW50ICYmICF3aW5kb3cuTUFJQV9NQVJLRVRQTEFDRV9NQUlBS0VSfT5cbiAgICAgICAge2N1c3RvbUFnZW50cy5sZW5ndGggPyAoXG4gICAgICAgICAgPFNDTUFUaXRsZVdyYXA+XG4gICAgICAgICAgICA8U0NNQVRpdGxlSW5uZXI+XG4gICAgICAgICAgICAgIDxTQ01BVGl0bGU+e3QoJ21hcmtldHBsYWNlLm15QWdlbnRzUmVhZHlUaXRsZScpfTwvU0NNQVRpdGxlPlxuICAgICAgICAgICAgPC9TQ01BVGl0bGVJbm5lcj5cbiAgICAgICAgICAgIHtjYW5DcmVhdGVBZ2VudCAmJiAhd2luZG93Lk1BSUFfTUFSS0VUUExBQ0VfTUFJQUtFUiA/IChcbiAgICAgICAgICAgICAgPFNDTUFBY3Rpb25zUm93PlxuICAgICAgICAgICAgICAgIDxTQ01BQ3JlYXRlTWFudWFsQnV0dG9uIHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXtvcGVuQ3JlYXRlQWdlbnRNb2RhbH0+XG4gICAgICAgICAgICAgICAgICA8U0NNQUNyZWF0ZU1hbnVhbEJ1dHRvblRleHQ+e3QoJ21hcmtldHBsYWNlLmNyZWF0ZUFnZW50Jyl9PC9TQ01BQ3JlYXRlTWFudWFsQnV0dG9uVGV4dD5cbiAgICAgICAgICAgICAgICA8L1NDTUFDcmVhdGVNYW51YWxCdXR0b24+XG4gICAgICAgICAgICAgIDwvU0NNQUFjdGlvbnNSb3c+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8L1NDTUFUaXRsZVdyYXA+XG4gICAgICAgICkgOiBudWxsfVxuXG4gICAgICAgIHtjdXN0b21BZ2VudHMubGVuZ3RoID8gKFxuICAgICAgICAgIDxTQ01BQ2FyZHNPdXRlcj5cbiAgICAgICAgICAgIDxTQ01BQ2FyZHNSb3c+XG4gICAgICAgICAgICAgIHtjdXN0b21BZ2VudHMubWFwKGFnZW50ID0+IChcbiAgICAgICAgICAgICAgICA8U0NNQUNhcmRCdXR0b24ga2V5PXthZ2VudC5pZH0gdHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9eygpID0+IGhhbmRsZVVzZUFnZW50KGFnZW50KX0+XG4gICAgICAgICAgICAgICAgICA8U0NNQUNhcmRIZWFkZXI+XG4gICAgICAgICAgICAgICAgICAgIDxTQ01BQ2FyZFRvcFJvdz5cbiAgICAgICAgICAgICAgICAgICAgICA8U0NNQUNhcmRUaXRsZUVtb2ppIGFyaWEtaGlkZGVuPlxuICAgICAgICAgICAgICAgICAgICAgICAge2FnZW50LmVtb2ppPy50cmltKCkgPyBhZ2VudC5lbW9qaSA6ICdcXHUwMGEwJ31cbiAgICAgICAgICAgICAgICAgICAgICA8L1NDTUFDYXJkVGl0bGVFbW9qaT5cbiAgICAgICAgICAgICAgICAgICAgICB7Y2FuU2hvd01lbnUgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8U0NNQUtlYmFiQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXt0KCdtYXJrZXRwbGFjZS5jYXJkTWVudUFyaWFMYWJlbCcpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0TWVudU9wZW5Gb3JBZ2VudElkKHByZXYgPT4gKHByZXYgPT09IGFnZW50LmlkID8gbnVsbCA6IGFnZW50LmlkKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPE1lbnVEb3RzIGNvbG9yPVwiIzk5OVwiIHdpZHRoPXsxNX0gaGVpZ2h0PXsxNX0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvU0NNQUtlYmFiQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgICAgICA8L1NDTUFDYXJkVG9wUm93PlxuICAgICAgICAgICAgICAgICAgICA8U0NNQUNhcmRUaXRsZU5hbWU+e2FnZW50Lm5hbWV9PC9TQ01BQ2FyZFRpdGxlTmFtZT5cbiAgICAgICAgICAgICAgICAgIDwvU0NNQUNhcmRIZWFkZXI+XG4gICAgICAgICAgICAgICAgICA8U0NNQUNhcmRCb2R5PlxuICAgICAgICAgICAgICAgICAgICA8U0NNQUNhcmRJbnRyb1RleHQ+e25vcm1hbGl6ZVRleHQoYWdlbnQuaW50cm9kdWN0aW9uKX08L1NDTUFDYXJkSW50cm9UZXh0PlxuICAgICAgICAgICAgICAgICAgICA8U0NNQUNhcmRGb290ZXI+XG4gICAgICAgICAgICAgICAgICAgICAgPFNDTUFDYXJkRm9vdGVyRGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtnZXRDcmVhdGVkQXRMYWJlbChhZ2VudCkgfHwgdCgnbWFya2V0cGxhY2UubXlBZ2VudHNGYWxsYmFja0RhdGUnKX1cbiAgICAgICAgICAgICAgICAgICAgICA8L1NDTUFDYXJkRm9vdGVyRGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICA8VG9vbHRpcCB0aXRsZT17YWdlbnQuaXNfZmF2b3JpdGUgPyB0KCdhZ2VudHMucmVtb3ZlRmF2b3JpdGUnKSA6IHQoJ2FnZW50cy5hZGRGYXZvcml0ZScpfT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxTQ01BRmF2b3JpdGVCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2FnZW50LmlzX2Zhdm9yaXRlID8gdCgnYWdlbnRzLnJlbW92ZUZhdm9yaXRlJykgOiB0KCdhZ2VudHMuYWRkRmF2b3JpdGUnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgJGFsd2F5c1Zpc2libGU9eyEhYWdlbnQuaXNfZmF2b3JpdGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2V2ZW50ID0+IGhhbmRsZVRvZ2dsZUZhdm9yaXRlKGV2ZW50LCBhZ2VudCwgISFhZ2VudC5pc19mYXZvcml0ZSl9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxTQ01BRmF2b3JpdGVTdGFyV3JhcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U3RhclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9ezE2fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PXsxNn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPXthZ2VudC5pc19mYXZvcml0ZSA/ICcjRkZDNjI0JyA6ICcjOTk5J31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9e2FnZW50LmlzX2Zhdm9yaXRlID8gJyNGRkM2MjQnIDogJ25vbmUnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cInNvbGlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YWdlbnQuaXNfZmF2b3JpdGUgPyAnJyA6ICdzdGFyLWZhdm9yaXRlLWljb24nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvU0NNQUZhdm9yaXRlU3RhcldyYXA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1NDTUFGYXZvcml0ZUJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgICAgIDwvU0NNQUNhcmRGb290ZXI+XG4gICAgICAgICAgICAgICAgICA8L1NDTUFDYXJkQm9keT5cbiAgICAgICAgICAgICAgICAgIHttZW51T3BlbkZvckFnZW50SWQgPT09IGFnZW50LmlkICYmIGNhblNob3dNZW51ID8gKFxuICAgICAgICAgICAgICAgICAgICA8U0NNQUNhcmRNZW51XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17ZXZlbnQgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPFNDTUFDYXJkTWVudUl0ZW1zPlxuICAgICAgICAgICAgICAgICAgICAgICAge2NhbkVkaXQgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxTQ01BQ2FyZE1lbnVJdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlT3BlbkVkaXRBZ2VudChhZ2VudClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3QoJ2VkaXQnLCB7IG5zOiBTRUNUSU9OUy5hYm1BZ2VudCB9KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TQ01BQ2FyZE1lbnVJdGVtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgICAgICAgICB7Y2FuRGVsZXRlID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8U0NNQUNhcmRNZW51SXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEFnZW50VG9EZWxldGUoYWdlbnQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt0KCdkZWxldGUnLCB7IG5zOiBTRUNUSU9OUy5hYm1BZ2VudCB9KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TQ01BQ2FyZE1lbnVJdGVtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgICAgICAgPC9TQ01BQ2FyZE1lbnVJdGVtcz5cbiAgICAgICAgICAgICAgICAgICAgPC9TQ01BQ2FyZE1lbnU+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L1NDTUFDYXJkQnV0dG9uPlxuICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvU0NNQUNhcmRzUm93PlxuICAgICAgICAgIDwvU0NNQUNhcmRzT3V0ZXI+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFNDTUFFbXB0eVN0YXRlUm9vdD5cbiAgICAgICAgICAgIDxTQ01BRW1wdHlTdGF0ZUNvbHVtbj5cbiAgICAgICAgICAgICAgPFNDTUFFbXB0eVN0YXRlVGl0bGVCbG9jaz5cbiAgICAgICAgICAgICAgICA8U0NNQUVtcHR5U3RhdGVUaXRsZT57dCgnbWFya2V0cGxhY2UubXlBZ2VudHNFbXB0eVN0YXRlVGl0bGUnKX08L1NDTUFFbXB0eVN0YXRlVGl0bGU+XG4gICAgICAgICAgICAgICAgPFNDTUFFbXB0eVN0YXRlU3VidGl0bGU+XG4gICAgICAgICAgICAgICAgICB7Y2FuQ3JlYXRlQWdlbnRcbiAgICAgICAgICAgICAgICAgICAgPyB0KCdtYXJrZXRwbGFjZS5teUFnZW50c0VtcHR5U3RhdGVEZXNjcmlwdGlvbicpXG4gICAgICAgICAgICAgICAgICAgIDogdCgnbWFya2V0cGxhY2UubXlBZ2VudHNFbXB0eVN0YXRlRGVzY3JpcHRpb25Ob1Blcm0nKX1cbiAgICAgICAgICAgICAgICA8L1NDTUFFbXB0eVN0YXRlU3VidGl0bGU+XG4gICAgICAgICAgICAgIDwvU0NNQUVtcHR5U3RhdGVUaXRsZUJsb2NrPlxuICAgICAgICAgICAgPC9TQ01BRW1wdHlTdGF0ZUNvbHVtbj5cbiAgICAgICAgICAgIHtjYW5DcmVhdGVBZ2VudCA/IChcbiAgICAgICAgICAgICAgPFNDTUFFbXB0eVN0YXRlQnV0dG9uIHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXtoYW5kbGVFbXB0eVN0YXRlUHJpbWFyeUFjdGlvbn0+XG4gICAgICAgICAgICAgICAge3QoJ21hcmtldHBsYWNlLm15QWdlbnRzRW1wdHlTdGF0ZUJ1dHRvbicpfVxuICAgICAgICAgICAgICA8L1NDTUFFbXB0eVN0YXRlQnV0dG9uPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPC9TQ01BRW1wdHlTdGF0ZVJvb3Q+XG4gICAgICAgICl9XG4gICAgICAgIHtsb2FkaW5nTW9yZUFnZW50cyA/IChcbiAgICAgICAgICA8U0NNQUxvYWRNb3JlV3JhcHBlcj5cbiAgICAgICAgICAgIDxMb2FkZXIgc2l6ZT1cInNtYWxsXCIgLz5cbiAgICAgICAgICA8L1NDTUFMb2FkTW9yZVdyYXBwZXI+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9TQ01BQm9keT5cbiAgICAgIHtkZWxldGVNb2RhbENoYXQgPyAoXG4gICAgICAgIDxEZWxldGVRdWVzdGlvbk1vZGFsXG4gICAgICAgICAgb25DbG9zZT17KCkgPT4gc2V0QWdlbnRUb0RlbGV0ZShudWxsKX1cbiAgICAgICAgICBoYW5kbGVycz17e1xuICAgICAgICAgICAgaGFuZGxlQ29uZmlybUFjdGlvbjogaGFuZGxlQ29uZmlybURlbGV0ZSxcbiAgICAgICAgICB9fVxuICAgICAgICAgIGNoYXQ9e2RlbGV0ZU1vZGFsQ2hhdH1cbiAgICAgICAgICBhY3Rpb249XCJhZ2VudFwiXG4gICAgICAgIC8+XG4gICAgICApIDogbnVsbH1cbiAgICA8L1NDTUFNeUFnZW50c0NvbnRhaW5lcj5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7QUFBQSxPQUFPQSxLQUFLLElBQUlDLFdBQVcsRUFBRUMsU0FBUyxFQUFFQyxPQUFPLEVBQUVDLFFBQVEsUUFBUSxPQUFPO0FBQ3hFLFNBQVNDLFFBQVEsUUFBUSwyQ0FBMkM7QUFDcEUsU0FBU0MsSUFBSSxRQUFRLHVDQUF1QztBQUM1RCxTQUFTQyxPQUFPLFFBQVEsOENBQThDO0FBQ3RFLFNBQVNDLGNBQWMsUUFBUSxlQUFlO0FBQzlDLFNBQVNDLGdCQUFnQixRQUFRLGlDQUFpQztBQUNsRSxTQUFTQyxPQUFPLFFBQVEsMkJBQTJCO0FBRW5ELFNBQVNDLFdBQVcsUUFBUSwyQ0FBMkM7QUFDdkUsU0FBU0Msa0JBQWtCLFFBQVEsc0RBQXNEO0FBQ3pGLFNBQVNDLG1CQUFtQixRQUFRLHlEQUF5RDtBQUM3RixTQUFTQyxRQUFRLFFBQVEsMkJBQTJCO0FBQ3BELFNBQVNDLE1BQU0sUUFBUSxvQkFBb0I7QUFDM0MsU0FBU0MsaUJBQWlCLFFBQVEsZ0JBQWdCO0FBQ2xELFNBQVNDLE1BQU0sRUFBRUMsUUFBUSxRQUFRLHlCQUF5QjtBQUMxRCxTQUNFQyxRQUFRLEVBQ1JDLFlBQVksRUFDWkMsY0FBYyxFQUNkQyxjQUFjLEVBQ2RDLGNBQWMs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
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
2
|
-
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
3
1
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
4
2
|
/* eslint-disable react/function-component-definition */
|
|
5
3
|
/* eslint-disable jsx-a11y/click-events-have-key-events */
|
|
@@ -12,45 +10,16 @@ import { useUser } from '../../../context/cor-user';
|
|
|
12
10
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
11
|
export var ChatAIProjectSelector = function ChatAIProjectSelector(_ref) {
|
|
14
12
|
var _agent$welcome_messag, _agent$welcome_messag2, _user$firstName;
|
|
15
|
-
var handlers = _ref.handlers
|
|
16
|
-
onResolveChat = _ref.onResolveChat;
|
|
13
|
+
var handlers = _ref.handlers;
|
|
17
14
|
var _useGlobalContext = useGlobalContext(),
|
|
18
15
|
setProject = _useGlobalContext.setProject,
|
|
19
16
|
agent = _useGlobalContext.agent;
|
|
20
17
|
var user = useUser();
|
|
21
18
|
var welcomeMessage = (_agent$welcome_messag = agent === null || agent === void 0 || (_agent$welcome_messag2 = agent.welcome_message) === null || _agent$welcome_messag2 === void 0 || (_agent$welcome_messag2 = _agent$welcome_messag2.replace(/\{\{name\}\}/g, (_user$firstName = user === null || user === void 0 ? void 0 : user.firstName) !== null && _user$firstName !== void 0 ? _user$firstName : '')) === null || _agent$welcome_messag2 === void 0 ? void 0 : _agent$welcome_messag2.replace(/\\n/g, '\n')) !== null && _agent$welcome_messag !== void 0 ? _agent$welcome_messag : '';
|
|
22
|
-
var handleProjectSelected =
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
while (1) switch (_context.prev = _context.next) {
|
|
27
|
-
case 0:
|
|
28
|
-
setProject(selectedProject);
|
|
29
|
-
if (!(onResolveChat && agent && (selectedProject === null || selectedProject === void 0 ? void 0 : selectedProject.id) != null)) {
|
|
30
|
-
_context.next = 2;
|
|
31
|
-
break;
|
|
32
|
-
}
|
|
33
|
-
_context.next = 1;
|
|
34
|
-
return onResolveChat(agent, selectedProject.id);
|
|
35
|
-
case 1:
|
|
36
|
-
navigated = _context.sent;
|
|
37
|
-
if (!navigated) {
|
|
38
|
-
_context.next = 2;
|
|
39
|
-
break;
|
|
40
|
-
}
|
|
41
|
-
return _context.abrupt("return");
|
|
42
|
-
case 2:
|
|
43
|
-
handlers();
|
|
44
|
-
case 3:
|
|
45
|
-
case "end":
|
|
46
|
-
return _context.stop();
|
|
47
|
-
}
|
|
48
|
-
}, _callee);
|
|
49
|
-
}));
|
|
50
|
-
return function handleProjectSelected(_x) {
|
|
51
|
-
return _ref2.apply(this, arguments);
|
|
52
|
-
};
|
|
53
|
-
}();
|
|
19
|
+
var handleProjectSelected = function handleProjectSelected(selectedProject) {
|
|
20
|
+
setProject(selectedProject);
|
|
21
|
+
handlers();
|
|
22
|
+
};
|
|
54
23
|
return /*#__PURE__*/_jsx(SCCAIProjectSelectorWrapper, {
|
|
55
24
|
children: /*#__PURE__*/_jsxs(SCCAIProjectSelectorContainer, {
|
|
56
25
|
children: [/*#__PURE__*/_jsx(SCCAIProjectSelectorIconContainer, {
|
|
@@ -74,4 +43,4 @@ export var ChatAIProjectSelector = function ChatAIProjectSelector(_ref) {
|
|
|
74
43
|
})
|
|
75
44
|
});
|
|
76
45
|
};
|
|
77
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VHbG9iYWxDb250ZXh0IiwiUHJvamVjdFNlbGVjdG9yIiwiU0NDQUlQcm9qZWN0U2VsZWN0b3JXcmFwcGVyIiwiU0NDQUlQcm9qZWN0U2VsZWN0b3JDb250YWluZXIiLCJTQ0NBSVByb2plY3RTZWxlY3Rvckljb25Db250YWluZXIiLCJTQ0NBSVByb2plY3RTZWxlY3RvckxvZ29XcmFwcGVyIiwiU0NDQUlQcm9qZWN0U2VsZWN0b3JDb250ZW50IiwiU0NDQUlQcm9qZWN0U2VsZWN0b3JUZXh0Q29udGFpbmVyIiwiU0NDQUlQcm9qZWN0U2VsZWN0b3JUaXRsZSIsIlNDQ0FJUHJvamVjdFNlbGVjdG9yQWN0aW9ucyIsIk1BSUFJc29sb2dvIiwidXNlVXNlciIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJDaGF0QUlQcm9qZWN0U2VsZWN0b3IiLCJfcmVmIiwiX2FnZW50JHdlbGNvbWVfbWVzc2FnIiwiX2FnZW50JHdlbGNvbWVfbWVzc2FnMiIsIl91c2VyJGZpcnN0TmFtZSIsImhhbmRsZXJzIiwiX3VzZUdsb2JhbENvbnRleHQiLCJzZXRQcm9qZWN0IiwiYWdlbnQiLCJ1c2VyIiwid2VsY29tZU1lc3NhZ2UiLCJ3ZWxjb21lX21lc3NhZ2UiLCJyZXBsYWNlIiwiZmlyc3ROYW1lIiwiaGFuZGxlUHJvamVjdFNlbGVjdGVkIiwic2VsZWN0ZWRQcm9qZWN0IiwiY2hpbGRyZW4iLCJzdHlsZSIsIndoaXRlU3BhY2UiLCJvblByb2plY3RTZWxlY3RlZCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vbGVjdWxlcy9DaGF0QUlQcm9qZWN0U2VsZWN0b3IvQ2hhdEFJUHJvamVjdFNlbGVjdG9yLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG4vKiBlc2xpbnQtZGlzYWJsZSByZWFjdC9mdW5jdGlvbi1jb21wb25lbnQtZGVmaW5pdGlvbiAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvY2xpY2stZXZlbnRzLWhhdmUta2V5LWV2ZW50cyAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvbm8tc3RhdGljLWVsZW1lbnQtaW50ZXJhY3Rpb25zICovXG5pbXBvcnQgeyB1c2VHbG9iYWxDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9nbG9iYWwtY29udGV4dCdcbmltcG9ydCB7IFByb2plY3RTZWxlY3RvciB9IGZyb20gJy4uLy4uL2F0b21zL1Byb2plY3RTZWxlY3RvcidcbmltcG9ydCB7XG4gIFNDQ0FJUHJvamVjdFNlbGVjdG9yV3JhcHBlcixcbiAgU0NDQUlQcm9qZWN0U2VsZWN0b3JDb250YWluZXIsXG4gIFNDQ0FJUHJvamVjdFNlbGVjdG9ySWNvbkNvbnRhaW5lcixcbiAgU0NDQUlQcm9qZWN0U2VsZWN0b3JMb2dvV3JhcHBlcixcbiAgU0NDQUlQcm9qZWN0U2VsZWN0b3JDb250ZW50LFxuICBTQ0NBSVByb2plY3RTZWxlY3RvclRleHRDb250YWluZXIsXG4gIFNDQ0FJUHJvamVjdFNlbGVjdG9yVGl0bGUsXG4gIFNDQ0FJUHJvamVjdFNlbGVjdG9yQWN0aW9ucyxcbn0gZnJvbSAnLi9DaGF0QUlQcm9qZWN0U2VsZWN0b3Iuc3R5bGVzJ1xuaW1wb3J0IHsgTUFJQUlzb2xvZ28gfSBmcm9tICcuLi8uLi9hdG9tcy9pY29ucydcbmltcG9ydCB7IHVzZVVzZXIgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2Nvci11c2VyJ1xuXG50eXBlIENoYXRBSVByb2plY3RTZWxlY3RvclByb3BzID0ge1xuICBoYW5kbGVyczogKCkgPT4gdm9pZFxufVxuXG5leHBvcnQgY29uc3QgQ2hhdEFJUHJvamVjdFNlbGVjdG9yID0gKHsgaGFuZGxlcnMgfTogQ2hhdEFJUHJvamVjdFNlbGVjdG9yUHJvcHMpID0+IHtcbiAgY29uc3QgeyBzZXRQcm9qZWN0LCBhZ2VudCB9ID0gdXNlR2xvYmFsQ29udGV4dCgpXG4gIGNvbnN0IHVzZXIgPSB1c2VVc2VyKClcblxuICBjb25zdCB3ZWxjb21lTWVzc2FnZSA9XG4gICAgYWdlbnQ/LndlbGNvbWVfbWVzc2FnZT8ucmVwbGFjZSgvXFx7XFx7bmFtZVxcfVxcfS9nLCB1c2VyPy5maXJzdE5hbWUgPz8gJycpPy5yZXBsYWNlKC9cXFxcbi9nLCAnXFxuJykgPz8gJydcblxuICBjb25zdCBoYW5kbGVQcm9qZWN0U2VsZWN0ZWQgPSAoc2VsZWN0ZWRQcm9qZWN0OiBhbnkpID0+IHtcbiAgICBzZXRQcm9qZWN0KHNlbGVjdGVkUHJvamVjdClcbiAgICBoYW5kbGVycygpXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxTQ0NBSVByb2plY3RTZWxlY3RvcldyYXBwZXI+XG4gICAgICA8U0NDQUlQcm9qZWN0U2VsZWN0b3JDb250YWluZXI+XG4gICAgICAgIDxTQ0NBSVByb2plY3RTZWxlY3Rvckljb25Db250YWluZXI+XG4gICAgICAgICAgPFNDQ0FJUHJvamVjdFNlbGVjdG9yTG9nb1dyYXBwZXI+XG4gICAgICAgICAgICA8TUFJQUlzb2xvZ28gLz5cbiAgICAgICAgICA8L1NDQ0FJUHJvamVjdFNlbGVjdG9yTG9nb1dyYXBwZXI+XG4gICAgICAgIDwvU0NDQUlQcm9qZWN0U2VsZWN0b3JJY29uQ29udGFpbmVyPlxuICAgICAgICA8U0NDQUlQcm9qZWN0U2VsZWN0b3JDb250ZW50PlxuICAgICAgICAgIDxTQ0NBSVByb2plY3RTZWxlY3RvclRleHRDb250YWluZXI+XG4gICAgICAgICAgICA8U0NDQUlQcm9qZWN0U2VsZWN0b3JUaXRsZSBzdHlsZT17eyB3aGl0ZVNwYWNlOiAncHJlLWxpbmUnIH19Pnt3ZWxjb21lTWVzc2FnZX08L1NDQ0FJUHJvamVjdFNlbGVjdG9yVGl0bGU+XG4gICAgICAgICAgPC9TQ0NBSVByb2plY3RTZWxlY3RvclRleHRDb250YWluZXI+XG4gICAgICAgICAgPFNDQ0FJUHJvamVjdFNlbGVjdG9yQWN0aW9ucz5cbiAgICAgICAgICAgIDxQcm9qZWN0U2VsZWN0b3Igb25Qcm9qZWN0U2VsZWN0ZWQ9e2hhbmRsZVByb2plY3RTZWxlY3RlZH0gLz5cbiAgICAgICAgICA8L1NDQ0FJUHJvamVjdFNlbGVjdG9yQWN0aW9ucz5cbiAgICAgICAgPC9TQ0NBSVByb2plY3RTZWxlY3RvckNvbnRlbnQ+XG4gICAgICA8L1NDQ0FJUHJvamVjdFNlbGVjdG9yQ29udGFpbmVyPlxuICAgIDwvU0NDQUlQcm9qZWN0U2VsZWN0b3JXcmFwcGVyPlxuICApXG59XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsZ0JBQWdCLFFBQVEsaUNBQWlDO0FBQ2xFLFNBQVNDLGVBQWUsUUFBUSw2QkFBNkI7QUFDN0QsU0FDRUMsMkJBQTJCLEVBQzNCQyw2QkFBNkIsRUFDN0JDLGlDQUFpQyxFQUNqQ0MsK0JBQStCLEVBQy9CQywyQkFBMkIsRUFDM0JDLGlDQUFpQyxFQUNqQ0MseUJBQXlCLEVBQ3pCQywyQkFBMkIsUUFDdEIsZ0NBQWdDO0FBQ3ZDLFNBQVNDLFdBQVcsUUFBUSxtQkFBbUI7QUFDL0MsU0FBU0MsT0FBTyxRQUFRLDJCQUEyQjtBQUFBLFNBQUFDLEdBQUEsSUFBQUMsSUFBQSxFQUFBQyxJQUFBLElBQUFDLEtBQUE7QUFNbkQsT0FBTyxJQUFNQyxxQkFBcUIsR0FBRyxTQUF4QkEscUJBQXFCQSxDQUFBQyxJQUFBLEVBQWlEO0VBQUEsSUFBQUMscUJBQUEsRUFBQUMsc0JBQUEsRUFBQUMsZUFBQTtFQUFBLElBQTNDQyxRQUFRLEdBQUFKLElBQUEsQ0FBUkksUUFBUTtFQUM5QyxJQUFBQyxpQkFBQSxHQUE4QnRCLGdCQUFnQixDQUFDLENBQUM7SUFBeEN1QixVQUFVLEdBQUFELGlCQUFBLENBQVZDLFVBQVU7SUFBRUMsS0FBSyxHQUFBRixpQkFBQSxDQUFMRSxLQUFLO0VBQ3pCLElBQU1DLElBQUksR0FBR2QsT0FBTyxDQUFDLENBQUM7RUFFdEIsSUFBTWUsY0FBYyxJQUFBUixxQkFBQSxHQUNsQk0sS0FBSyxhQUFMQSxLQUFLLGdCQUFBTCxzQkFBQSxHQUFMSyxLQUFLLENBQUVHLGVBQWUsY0FBQVIsc0JBQUEsZ0JBQUFBLHNCQUFBLEdBQXRCQSxzQkFBQSxDQUF3QlMsT0FBTyxDQUFDLGVBQWUsR0FBQVIsZUFBQSxHQUFFSyxJQUFJLGFBQUpBLElBQUksdUJBQUpBLElBQUksQ0FBRUksU0FBUyxjQUFBVCxlQUFBLGNBQUFBLGVBQUEsR0FBSSxFQUFFLENBQUMsY0FBQUQsc0JBQUEsdUJBQXZFQSxzQkFBQSxDQUF5RVMsT0FBTyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsY0FBQVYscUJBQUEsY0FBQUEscUJBQUEsR0FBSSxFQUFFO0VBRXRHLElBQU1ZLHFCQUFxQixHQUFHLFNBQXhCQSxxQkFBcUJBLENBQUlDLGVBQW9CLEVBQUs7SUFDdERSLFVBQVUsQ0FBQ1EsZUFBZSxDQUFDO0lBQzNCVixRQUFRLENBQUMsQ0FBQztFQUNaLENBQUM7RUFFRCxvQkFDRVIsSUFBQSxDQUFDWCwyQkFBMkI7SUFBQThCLFFBQUEsZUFDMUJqQixLQUFBLENBQUNaLDZCQUE2QjtNQUFBNkIsUUFBQSxnQkFDNUJuQixJQUFBLENBQUNULGlDQUFpQztRQUFBNEIsUUFBQSxlQUNoQ25CLElBQUEsQ0FBQ1IsK0JBQStCO1VBQUEyQixRQUFBLGVBQzlCbkIsSUFBQSxDQUFDSCxXQUFXLElBQUU7UUFBQyxDQUNnQjtNQUFDLENBQ0QsQ0FBQyxlQUNwQ0ssS0FBQSxDQUFDVCwyQkFBMkI7UUFBQTBCLFFBQUEsZ0JBQzFCbkIsSUFBQSxDQUFDTixpQ0FBaUM7VUFBQXlCLFFBQUEsZUFDaENuQixJQUFBLENBQUNMLHlCQUF5QjtZQUFDeUIsS0FBSyxFQUFFO2NBQUVDLFVBQVUsRUFBRTtZQUFXLENBQUU7WUFBQUYsUUFBQSxFQUFFTjtVQUFjLENBQTRCO1FBQUMsQ0FDekUsQ0FBQyxlQUNwQ2IsSUFBQSxDQUFDSiwyQkFBMkI7VUFBQXVCLFFBQUEsZUFDMUJuQixJQUFBLENBQUNaLGVBQWU7WUFBQ2tDLGlCQUFpQixFQUFFTDtVQUFzQixDQUFFO1FBQUMsQ0FDbEMsQ0FBQztNQUFBLENBQ0gsQ0FBQztJQUFBLENBQ0Q7RUFBQyxDQUNMLENBQUM7QUFFbEMsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
|