@projectcor/maia-components 2.11.103-4 → 2.11.103-5
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/App.js +44 -19
- package/lib/components/atoms/MAIAInput/MAIAInput.js +1 -6
- package/lib/components/atoms/icons/index.js +1 -2
- package/lib/components/index.js +2 -1
- package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.js +91 -4
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +7 -46
- package/lib/components/molecules/ChatAIModal/ChatAIModal.js +69 -308
- package/lib/components/molecules/ChatAIModal/ChatAIModal.styles.js +18 -28
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +2 -9
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +61 -69
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.styles.js +1 -5
- package/lib/components/molecules/ChatFooter/ChatFooter.js +2 -4
- package/lib/components/molecules/Sidebar/Sidebar.js +61 -104
- package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +1 -16
- package/lib/components/molecules/Sidebar/Sidebar.styles.js +29 -30
- package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +35 -6
- package/lib/components/organisms/ChatAI/ChatAI.js +40 -131
- package/lib/components/organisms/ChatAIPage/ChatAIPage.js +543 -0
- package/lib/components/organisms/ChatAIPage/ChatAIPage.styles.js +16 -0
- package/lib/components/organisms/ChatAIPage/index.js +3 -0
- package/lib/context/global-context.js +1 -3
- package/lib/dev/DevMaiaPage.js +30 -0
- package/lib/hooks/useAgentModel/useCreateAgent.js +61 -14
- package/lib/hooks/useAgentModel/useUpdateAgent.js +58 -11
- package/lib/hooks/useChatManager/useChatManager.js +438 -530
- package/lib/hooks/useChatMessages/useChatMessages.js +236 -427
- package/lib/hooks/useChats/useChats.js +4 -21
- package/lib/hooks/useEvent.js +2 -1
- package/lib/hooks/useOrchestratorStream/useOrchestratorStream.interface.js +1 -1
- package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +521 -139
- package/lib/hooks/useStreamingMessage/index.js +3 -2
- package/lib/hooks/useStreamingMessage/streamingStore.js +69 -0
- package/lib/hooks/useStreamingMessage/useStreamingMessage.js +17 -13
- package/lib/index.js +5 -2
- package/lib/lang/br/index.js +9 -11
- package/lib/lang/en/index.js +9 -11
- package/lib/lang/es/index.js +9 -11
- package/lib/lang/fr/index.js +10 -13
- package/lib/services/maia/Agents/connectors.js +250 -0
- package/lib/services/maia/Chats/getChatsByUserId.js +4 -6
- package/lib/services/maia/Chats/index.js +1 -3
- package/lib/store/chatsStore.types.js +1 -1
- package/lib/store/useChatsStore.js +12 -149
- package/lib/types/Chat.js +1 -1
- package/lib/types/agentModal.js +1 -1
- package/lib/utils/normalizeAgentConnectors.js +28 -3
- package/package.json +3 -3
- package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.js +0 -20
- package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.styles.js +0 -20
- package/lib/components/atoms/SessionGeneratingDot/index.js +0 -2
- package/lib/components/atoms/icons/MaiaSparkleIcon.js +0 -75
- package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.js +0 -66
- package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.styles.js +0 -55
- package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/index.js +0 -2
- package/lib/hooks/useMinimizedPillBottomOffset.js +0 -97
- package/lib/services/maia/Chats/markSessionAsRead.js +0 -32
- package/lib/store/chatsSidebarOptimistic.js +0 -92
- package/lib/store/maiaMinimizedPersistence.js +0 -49
- package/lib/store/sessions/activeView.js +0 -22
- package/lib/store/sessions/index.js +0 -9
- package/lib/store/sessions/sessionHitlContext.js +0 -15
- package/lib/store/sessions/sessionNotificationSound.js +0 -57
- package/lib/store/sessions/sessionNotifications.js +0 -110
- package/lib/store/sessions/sessionNotifications.types.js +0 -2
- package/lib/store/sessions/sessionStreamManager.js +0 -576
- package/lib/store/sessions/sessionStreamingText.js +0 -80
- package/lib/store/sessions/sessions.types.js +0 -35
- package/lib/store/sessions/useSessionMeta.js +0 -39
- package/lib/store/sessions/useSessionStreamingText.js +0 -18
- package/lib/store/sessions/useSessionsStore.js +0 -197
- package/lib/utils/formatUnreadCount.js +0 -6
- package/lib/utils/maiaHostOpen.js +0 -54
package/lib/App.js
CHANGED
|
@@ -1,17 +1,34 @@
|
|
|
1
1
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
2
2
|
/* eslint-disable react/button-has-type */
|
|
3
3
|
import { useState } from 'react';
|
|
4
|
+
import { Routes, Route, Link } from 'react-router-dom';
|
|
4
5
|
import { DevChatAI } from './dev/DevChatAI';
|
|
5
6
|
import { DevProjectSummary } from './dev/ProjectSummary';
|
|
7
|
+
import { DevMaiaPage } from './dev/DevMaiaPage';
|
|
6
8
|
import { DevContextMentionInput } from './dev/DevContextMentionInput';
|
|
7
9
|
import { Providers } from './dev/Providers';
|
|
8
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
10
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
11
|
var PAGES = {
|
|
10
12
|
'Resumen de proyectos': DevProjectSummary,
|
|
11
13
|
'Chat Agente PM': DevChatAI,
|
|
12
14
|
'Context Mention Input': DevContextMentionInput
|
|
13
15
|
};
|
|
14
|
-
|
|
16
|
+
var DEV_PORTALS = /*#__PURE__*/_jsxs(_Fragment, {
|
|
17
|
+
children: [/*#__PURE__*/_jsx("div", {
|
|
18
|
+
id: "modals-portal-maia-chat-agent"
|
|
19
|
+
}), /*#__PURE__*/_jsx("div", {
|
|
20
|
+
id: "abm-agent-modal"
|
|
21
|
+
}), /*#__PURE__*/_jsx("div", {
|
|
22
|
+
id: "snackbar-portal-maia-chat-agent"
|
|
23
|
+
}), /*#__PURE__*/_jsx("div", {
|
|
24
|
+
id: "emoji-picker-container"
|
|
25
|
+
}), /*#__PURE__*/_jsx("div", {
|
|
26
|
+
id: "emoji-picker-container-maia-chat-agent"
|
|
27
|
+
}), /*#__PURE__*/_jsx("div", {
|
|
28
|
+
id: "modal-portal-video-onboarding"
|
|
29
|
+
})]
|
|
30
|
+
});
|
|
31
|
+
function DevShell() {
|
|
15
32
|
var _useState = useState('Context Mention Input'),
|
|
16
33
|
_useState2 = _slicedToArray(_useState, 2),
|
|
17
34
|
page = _useState2[0],
|
|
@@ -19,13 +36,14 @@ function App() {
|
|
|
19
36
|
var Component = PAGES[page];
|
|
20
37
|
var pages = Object.keys(PAGES);
|
|
21
38
|
return /*#__PURE__*/_jsxs(Providers, {
|
|
22
|
-
children: [/*#__PURE__*/
|
|
39
|
+
children: [/*#__PURE__*/_jsxs("div", {
|
|
23
40
|
style: {
|
|
24
41
|
display: 'flex',
|
|
25
42
|
gap: 8,
|
|
26
|
-
padding: 8
|
|
43
|
+
padding: 8,
|
|
44
|
+
alignItems: 'center'
|
|
27
45
|
},
|
|
28
|
-
children: pages.map(function (p) {
|
|
46
|
+
children: [pages.map(function (p) {
|
|
29
47
|
return /*#__PURE__*/_jsx("button", {
|
|
30
48
|
onClick: function onClick() {
|
|
31
49
|
return setPage(p);
|
|
@@ -35,21 +53,28 @@ function App() {
|
|
|
35
53
|
},
|
|
36
54
|
children: p
|
|
37
55
|
}, p);
|
|
56
|
+
}), /*#__PURE__*/_jsx(Link, {
|
|
57
|
+
to: "/maia",
|
|
58
|
+
style: {
|
|
59
|
+
marginLeft: 'auto'
|
|
60
|
+
},
|
|
61
|
+
children: "Maia Full Page \u2192"
|
|
62
|
+
})]
|
|
63
|
+
}), DEV_PORTALS, /*#__PURE__*/_jsx(Component, {})]
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
function App() {
|
|
67
|
+
return /*#__PURE__*/_jsxs(Routes, {
|
|
68
|
+
children: [/*#__PURE__*/_jsx(Route, {
|
|
69
|
+
path: "/maia",
|
|
70
|
+
element: /*#__PURE__*/_jsx(Providers, {
|
|
71
|
+
children: /*#__PURE__*/_jsx(DevMaiaPage, {})
|
|
38
72
|
})
|
|
39
|
-
}), /*#__PURE__*/_jsx(
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
}), /*#__PURE__*/_jsx("div", {
|
|
44
|
-
id: "snackbar-portal-maia-chat-agent"
|
|
45
|
-
}), /*#__PURE__*/_jsx("div", {
|
|
46
|
-
id: "emoji-picker-container"
|
|
47
|
-
}), /*#__PURE__*/_jsx("div", {
|
|
48
|
-
id: "emoji-picker-container-maia-chat-agent"
|
|
49
|
-
}), /*#__PURE__*/_jsx("div", {
|
|
50
|
-
id: "modal-portal-video-onboarding"
|
|
51
|
-
}), /*#__PURE__*/_jsx(Component, {})]
|
|
73
|
+
}), /*#__PURE__*/_jsx(Route, {
|
|
74
|
+
path: "*",
|
|
75
|
+
element: /*#__PURE__*/_jsx(DevShell, {})
|
|
76
|
+
})]
|
|
52
77
|
});
|
|
53
78
|
}
|
|
54
79
|
export default App;
|
|
55
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
80
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsIlJvdXRlcyIsIlJvdXRlIiwiTGluayIsIkRldkNoYXRBSSIsIkRldlByb2plY3RTdW1tYXJ5IiwiRGV2TWFpYVBhZ2UiLCJEZXZDb250ZXh0TWVudGlvbklucHV0IiwiUHJvdmlkZXJzIiwianN4IiwiX2pzeCIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwianN4cyIsIl9qc3hzIiwiUEFHRVMiLCJERVZfUE9SVEFMUyIsImNoaWxkcmVuIiwiaWQiLCJEZXZTaGVsbCIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInBhZ2UiLCJzZXRQYWdlIiwiQ29tcG9uZW50IiwicGFnZXMiLCJPYmplY3QiLCJrZXlzIiwic3R5bGUiLCJkaXNwbGF5IiwiZ2FwIiwicGFkZGluZyIsImFsaWduSXRlbXMiLCJtYXAiLCJwIiwib25DbGljayIsImZvbnRXZWlnaHQiLCJ0byIsIm1hcmdpbkxlZnQiLCJBcHAiLCJwYXRoIiwiZWxlbWVudCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9BcHAudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L2J1dHRvbi1oYXMtdHlwZSAqL1xuaW1wb3J0IHsgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IFJvdXRlcywgUm91dGUsIExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJ1xuXG5pbXBvcnQgeyBEZXZDaGF0QUkgfSBmcm9tICcuL2Rldi9EZXZDaGF0QUknXG5pbXBvcnQgeyBEZXZQcm9qZWN0U3VtbWFyeSB9IGZyb20gJy4vZGV2L1Byb2plY3RTdW1tYXJ5J1xuaW1wb3J0IHsgRGV2TWFpYVBhZ2UgfSBmcm9tICcuL2Rldi9EZXZNYWlhUGFnZSdcbmltcG9ydCB7IERldkNvbnRleHRNZW50aW9uSW5wdXQgfSBmcm9tICcuL2Rldi9EZXZDb250ZXh0TWVudGlvbklucHV0J1xuaW1wb3J0IHsgUHJvdmlkZXJzIH0gZnJvbSAnLi9kZXYvUHJvdmlkZXJzJ1xuXG5jb25zdCBQQUdFUyA9IHtcbiAgJ1Jlc3VtZW4gZGUgcHJveWVjdG9zJzogRGV2UHJvamVjdFN1bW1hcnksXG4gICdDaGF0IEFnZW50ZSBQTSc6IERldkNoYXRBSSxcbiAgJ0NvbnRleHQgTWVudGlvbiBJbnB1dCc6IERldkNvbnRleHRNZW50aW9uSW5wdXQsXG59XG5cbnR5cGUgUGFnZSA9IGtleW9mIHR5cGVvZiBQQUdFU1xuXG5jb25zdCBERVZfUE9SVEFMUyA9IChcbiAgPD5cbiAgICA8ZGl2IGlkPVwibW9kYWxzLXBvcnRhbC1tYWlhLWNoYXQtYWdlbnRcIiAvPlxuICAgIDxkaXYgaWQ9XCJhYm0tYWdlbnQtbW9kYWxcIiAvPlxuICAgIDxkaXYgaWQ9XCJzbmFja2Jhci1wb3J0YWwtbWFpYS1jaGF0LWFnZW50XCIgLz5cbiAgICA8ZGl2IGlkPVwiZW1vamktcGlja2VyLWNvbnRhaW5lclwiIC8+XG4gICAgPGRpdiBpZD1cImVtb2ppLXBpY2tlci1jb250YWluZXItbWFpYS1jaGF0LWFnZW50XCIgLz5cbiAgICA8ZGl2IGlkPVwibW9kYWwtcG9ydGFsLXZpZGVvLW9uYm9hcmRpbmdcIiAvPlxuICA8Lz5cbilcblxuZnVuY3Rpb24gRGV2U2hlbGwoKSB7XG4gIGNvbnN0IFtwYWdlLCBzZXRQYWdlXSA9IHVzZVN0YXRlPFBhZ2U+KCdDb250ZXh0IE1lbnRpb24gSW5wdXQnKVxuICBjb25zdCBDb21wb25lbnQgPSBQQUdFU1twYWdlXVxuICBjb25zdCBwYWdlcyA9IE9iamVjdC5rZXlzKFBBR0VTKSBhcyBQYWdlW11cblxuICByZXR1cm4gKFxuICAgIDxQcm92aWRlcnM+XG4gICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywgZ2FwOiA4LCBwYWRkaW5nOiA4LCBhbGlnbkl0ZW1zOiAnY2VudGVyJyB9fT5cbiAgICAgICAge3BhZ2VzLm1hcChwID0+IChcbiAgICAgICAgICA8YnV0dG9uIGtleT17cH0gb25DbGljaz17KCkgPT4gc2V0UGFnZShwKX0gc3R5bGU9e3sgZm9udFdlaWdodDogcGFnZSA9PT0gcCA/IDcwMCA6IDQwMCB9fT5cbiAgICAgICAgICAgIHtwfVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICApKX1cbiAgICAgICAgPExpbmsgdG89XCIvbWFpYVwiIHN0eWxlPXt7IG1hcmdpbkxlZnQ6ICdhdXRvJyB9fT5cbiAgICAgICAgICBNYWlhIEZ1bGwgUGFnZSDihpJcbiAgICAgICAgPC9MaW5rPlxuICAgICAgPC9kaXY+XG4gICAgICB7REVWX1BPUlRBTFN9XG4gICAgICA8Q29tcG9uZW50IC8+XG4gICAgPC9Qcm92aWRlcnM+XG4gIClcbn1cblxuZnVuY3Rpb24gQXBwKCkge1xuICByZXR1cm4gKFxuICAgIDxSb3V0ZXM+XG4gICAgICA8Um91dGVcbiAgICAgICAgcGF0aD1cIi9tYWlhXCJcbiAgICAgICAgZWxlbWVudD17XG4gICAgICAgICAgPFByb3ZpZGVycz5cbiAgICAgICAgICAgIDxEZXZNYWlhUGFnZSAvPlxuICAgICAgICAgIDwvUHJvdmlkZXJzPlxuICAgICAgICB9XG4gICAgICAvPlxuICAgICAgPFJvdXRlIHBhdGg9XCIqXCIgZWxlbWVudD17PERldlNoZWxsIC8+fSAvPlxuICAgIDwvUm91dGVzPlxuICApXG59XG5cbmV4cG9ydCBkZWZhdWx0IEFwcFxuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQSxTQUFTQSxRQUFRLFFBQVEsT0FBTztBQUNoQyxTQUFTQyxNQUFNLEVBQUVDLEtBQUssRUFBRUMsSUFBSSxRQUFRLGtCQUFrQjtBQUV0RCxTQUFTQyxTQUFTLFFBQVEsaUJBQWlCO0FBQzNDLFNBQVNDLGlCQUFpQixRQUFRLHNCQUFzQjtBQUN4RCxTQUFTQyxXQUFXLFFBQVEsbUJBQW1CO0FBQy9DLFNBQVNDLHNCQUFzQixRQUFRLDhCQUE4QjtBQUNyRSxTQUFTQyxTQUFTLFFBQVEsaUJBQWlCO0FBQUEsU0FBQUMsR0FBQSxJQUFBQyxJQUFBLEVBQUFDLFFBQUEsSUFBQUMsU0FBQSxFQUFBQyxJQUFBLElBQUFDLEtBQUE7QUFFM0MsSUFBTUMsS0FBSyxHQUFHO0VBQ1osc0JBQXNCLEVBQUVWLGlCQUFpQjtFQUN6QyxnQkFBZ0IsRUFBRUQsU0FBUztFQUMzQix1QkFBdUIsRUFBRUc7QUFDM0IsQ0FBQztBQUlELElBQU1TLFdBQVcsZ0JBQ2ZGLEtBQUEsQ0FBQUYsU0FBQTtFQUFBSyxRQUFBLGdCQUNFUCxJQUFBO0lBQUtRLEVBQUUsRUFBQztFQUErQixDQUFFLENBQUMsZUFDMUNSLElBQUE7SUFBS1EsRUFBRSxFQUFDO0VBQWlCLENBQUUsQ0FBQyxlQUM1QlIsSUFBQTtJQUFLUSxFQUFFLEVBQUM7RUFBaUMsQ0FBRSxDQUFDLGVBQzVDUixJQUFBO0lBQUtRLEVBQUUsRUFBQztFQUF3QixDQUFFLENBQUMsZUFDbkNSLElBQUE7SUFBS1EsRUFBRSxFQUFDO0VBQXdDLENBQUUsQ0FBQyxlQUNuRFIsSUFBQTtJQUFLUSxFQUFFLEVBQUM7RUFBK0IsQ0FBRSxDQUFDO0FBQUEsQ0FDMUMsQ0FDSDtBQUVELFNBQVNDLFFBQVFBLENBQUEsRUFBRztFQUNsQixJQUFBQyxTQUFBLEdBQXdCcEIsUUFBUSxDQUFPLHVCQUF1QixDQUFDO0lBQUFxQixVQUFBLEdBQUFDLGNBQUEsQ0FBQUYsU0FBQTtJQUF4REcsSUFBSSxHQUFBRixVQUFBO0lBQUVHLE9BQU8sR0FBQUgsVUFBQTtFQUNwQixJQUFNSSxTQUFTLEdBQUdWLEtBQUssQ0FBQ1EsSUFBSSxDQUFDO0VBQzdCLElBQU1HLEtBQUssR0FBR0MsTUFBTSxDQUFDQyxJQUFJLENBQUNiLEtBQUssQ0FBVztFQUUxQyxvQkFDRUQsS0FBQSxDQUFDTixTQUFTO0lBQUFTLFFBQUEsZ0JBQ1JILEtBQUE7TUFBS2UsS0FBSyxFQUFFO1FBQUVDLE9BQU8sRUFBRSxNQUFNO1FBQUVDLEdBQUcsRUFBRSxDQUFDO1FBQUVDLE9BQU8sRUFBRSxDQUFDO1FBQUVDLFVBQVUsRUFBRTtNQUFTLENBQUU7TUFBQWhCLFFBQUEsR0FDdkVTLEtBQUssQ0FBQ1EsR0FBRyxDQUFDLFVBQUFDLENBQUM7UUFBQSxvQkFDVnpCLElBQUE7VUFBZ0IwQixPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQTtZQUFBLE9BQVFaLE9BQU8sQ0FBQ1csQ0FBQyxDQUFDO1VBQUEsQ0FBQztVQUFDTixLQUFLLEVBQUU7WUFBRVEsVUFBVSxFQUFFZCxJQUFJLEtBQUtZLENBQUMsR0FBRyxHQUFHLEdBQUc7VUFBSSxDQUFFO1VBQUFsQixRQUFBLEVBQ3RGa0I7UUFBQyxHQURTQSxDQUVMLENBQUM7TUFBQSxDQUNWLENBQUMsZUFDRnpCLElBQUEsQ0FBQ1AsSUFBSTtRQUFDbUMsRUFBRSxFQUFDLE9BQU87UUFBQ1QsS0FBSyxFQUFFO1VBQUVVLFVBQVUsRUFBRTtRQUFPLENBQUU7UUFBQXRCLFFBQUEsRUFBQztNQUVoRCxDQUFNLENBQUM7SUFBQSxDQUNKLENBQUMsRUFDTEQsV0FBVyxlQUNaTixJQUFBLENBQUNlLFNBQVMsSUFBRSxDQUFDO0VBQUEsQ0FDSixDQUFDO0FBRWhCO0FBRUEsU0FBU2UsR0FBR0EsQ0FBQSxFQUFHO0VBQ2Isb0JBQ0UxQixLQUFBLENBQUNiLE1BQU07SUFBQWdCLFFBQUEsZ0JBQ0xQLElBQUEsQ0FBQ1IsS0FBSztNQUNKdUMsSUFBSSxFQUFDLE9BQU87TUFDWkMsT0FBTyxlQUNMaEMsSUFBQSxDQUFDRixTQUFTO1FBQUFTLFFBQUEsZUFDUlAsSUFBQSxDQUFDSixXQUFXLElBQUU7TUFBQyxDQUNOO0lBQ1osQ0FDRixDQUFDLGVBQ0ZJLElBQUEsQ0FBQ1IsS0FBSztNQUFDdUMsSUFBSSxFQUFDLEdBQUc7TUFBQ0MsT0FBTyxlQUFFaEMsSUFBQSxDQUFDUyxRQUFRLElBQUU7SUFBRSxDQUFFLENBQUM7RUFBQSxDQUNuQyxDQUFDO0FBRWI7QUFFQSxlQUFlcUIsR0FBRyIsImlnbm9yZUxpc3QiOltdfQ==
|