@projectcor/maia-components 2.11.103-5 → 2.11.103-7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/lib/App.js +19 -44
  2. package/lib/components/atoms/MAIAInput/MAIAInput.js +6 -1
  3. package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.js +20 -0
  4. package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.styles.js +20 -0
  5. package/lib/components/atoms/SessionGeneratingDot/index.js +2 -0
  6. package/lib/components/atoms/icons/MaiaSparkleIcon.js +75 -0
  7. package/lib/components/atoms/icons/index.js +2 -1
  8. package/lib/components/index.js +1 -2
  9. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.js +4 -91
  10. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +46 -7
  11. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +311 -69
  12. package/lib/components/molecules/ChatAIModal/ChatAIModal.styles.js +28 -18
  13. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +9 -2
  14. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +69 -61
  15. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.styles.js +5 -1
  16. package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.js +66 -0
  17. package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.styles.js +55 -0
  18. package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/index.js +2 -0
  19. package/lib/components/molecules/ChatFooter/ChatFooter.js +4 -2
  20. package/lib/components/molecules/Sidebar/Sidebar.js +104 -61
  21. package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +16 -1
  22. package/lib/components/molecules/Sidebar/Sidebar.styles.js +30 -29
  23. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +6 -35
  24. package/lib/components/organisms/ChatAI/ChatAI.js +131 -40
  25. package/lib/context/global-context.js +3 -1
  26. package/lib/hooks/useAgentModel/useCreateAgent.js +14 -61
  27. package/lib/hooks/useAgentModel/useUpdateAgent.js +11 -58
  28. package/lib/hooks/useChatManager/useChatManager.js +530 -438
  29. package/lib/hooks/useChatMessages/useChatMessages.js +427 -236
  30. package/lib/hooks/useChats/useChats.js +21 -4
  31. package/lib/hooks/useEvent.js +1 -2
  32. package/lib/hooks/useMinimizedPillBottomOffset.js +110 -0
  33. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.interface.js +1 -1
  34. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +139 -521
  35. package/lib/hooks/useStreamingMessage/index.js +2 -3
  36. package/lib/hooks/useStreamingMessage/useStreamingMessage.js +13 -17
  37. package/lib/index.js +2 -5
  38. package/lib/lang/br/index.js +11 -9
  39. package/lib/lang/en/index.js +11 -9
  40. package/lib/lang/es/index.js +11 -9
  41. package/lib/lang/fr/index.js +13 -10
  42. package/lib/services/maia/Chats/getChatsByUserId.js +6 -4
  43. package/lib/services/maia/Chats/index.js +3 -1
  44. package/lib/services/maia/Chats/markSessionAsRead.js +32 -0
  45. package/lib/store/chatsSidebarOptimistic.js +92 -0
  46. package/lib/store/chatsStore.types.js +1 -1
  47. package/lib/store/maiaMinimizedPersistence.js +49 -0
  48. package/lib/store/sessions/activeView.js +22 -0
  49. package/lib/store/sessions/index.js +9 -0
  50. package/lib/store/sessions/sessionHitlContext.js +15 -0
  51. package/lib/store/sessions/sessionNotificationSound.js +57 -0
  52. package/lib/store/sessions/sessionNotifications.js +110 -0
  53. package/lib/store/sessions/sessionNotifications.types.js +2 -0
  54. package/lib/store/sessions/sessionStreamManager.js +576 -0
  55. package/lib/store/sessions/sessionStreamingText.js +80 -0
  56. package/lib/store/sessions/sessions.types.js +35 -0
  57. package/lib/store/sessions/useSessionMeta.js +39 -0
  58. package/lib/store/sessions/useSessionStreamingText.js +18 -0
  59. package/lib/store/sessions/useSessionsStore.js +197 -0
  60. package/lib/store/useChatsStore.js +149 -12
  61. package/lib/types/Chat.js +1 -1
  62. package/lib/types/agentModal.js +1 -1
  63. package/lib/utils/formatUnreadCount.js +6 -0
  64. package/lib/utils/maiaHostOpen.js +54 -0
  65. package/lib/utils/normalizeAgentConnectors.js +3 -28
  66. package/package.json +3 -3
  67. package/lib/components/organisms/ChatAIPage/ChatAIPage.js +0 -543
  68. package/lib/components/organisms/ChatAIPage/ChatAIPage.styles.js +0 -16
  69. package/lib/components/organisms/ChatAIPage/index.js +0 -3
  70. package/lib/dev/DevMaiaPage.js +0 -30
  71. package/lib/hooks/useStreamingMessage/streamingStore.js +0 -69
  72. package/lib/services/maia/Agents/connectors.js +0 -250
package/lib/App.js CHANGED
@@ -1,34 +1,17 @@
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';
5
4
  import { DevChatAI } from './dev/DevChatAI';
6
5
  import { DevProjectSummary } from './dev/ProjectSummary';
7
- import { DevMaiaPage } from './dev/DevMaiaPage';
8
6
  import { DevContextMentionInput } from './dev/DevContextMentionInput';
9
7
  import { Providers } from './dev/Providers';
10
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
8
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
9
  var PAGES = {
12
10
  'Resumen de proyectos': DevProjectSummary,
13
11
  'Chat Agente PM': DevChatAI,
14
12
  'Context Mention Input': DevContextMentionInput
15
13
  };
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() {
14
+ function App() {
32
15
  var _useState = useState('Context Mention Input'),
33
16
  _useState2 = _slicedToArray(_useState, 2),
34
17
  page = _useState2[0],
@@ -36,14 +19,13 @@ function DevShell() {
36
19
  var Component = PAGES[page];
37
20
  var pages = Object.keys(PAGES);
38
21
  return /*#__PURE__*/_jsxs(Providers, {
39
- children: [/*#__PURE__*/_jsxs("div", {
22
+ children: [/*#__PURE__*/_jsx("div", {
40
23
  style: {
41
24
  display: 'flex',
42
25
  gap: 8,
43
- padding: 8,
44
- alignItems: 'center'
26
+ padding: 8
45
27
  },
46
- children: [pages.map(function (p) {
28
+ children: pages.map(function (p) {
47
29
  return /*#__PURE__*/_jsx("button", {
48
30
  onClick: function onClick() {
49
31
  return setPage(p);
@@ -53,28 +35,21 @@ function DevShell() {
53
35
  },
54
36
  children: p
55
37
  }, 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, {})
72
38
  })
73
- }), /*#__PURE__*/_jsx(Route, {
74
- path: "*",
75
- element: /*#__PURE__*/_jsx(DevShell, {})
76
- })]
39
+ }), /*#__PURE__*/_jsx("div", {
40
+ id: "modals-portal-maia-chat-agent"
41
+ }), /*#__PURE__*/_jsx("div", {
42
+ id: "abm-agent-modal"
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, {})]
77
52
  });
78
53
  }
79
54
  export default App;
80
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsIlJvdXRlcyIsIlJvdXRlIiwiTGluayIsIkRldkNoYXRBSSIsIkRldlByb2plY3RTdW1tYXJ5IiwiRGV2TWFpYVBhZ2UiLCJEZXZDb250ZXh0TWVudGlvbklucHV0IiwiUHJvdmlkZXJzIiwianN4IiwiX2pzeCIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwianN4cyIsIl9qc3hzIiwiUEFHRVMiLCJERVZfUE9SVEFMUyIsImNoaWxkcmVuIiwiaWQiLCJEZXZTaGVsbCIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInBhZ2UiLCJzZXRQYWdlIiwiQ29tcG9uZW50IiwicGFnZXMiLCJPYmplY3QiLCJrZXlzIiwic3R5bGUiLCJkaXNwbGF5IiwiZ2FwIiwicGFkZGluZyIsImFsaWduSXRlbXMiLCJtYXAiLCJwIiwib25DbGljayIsImZvbnRXZWlnaHQiLCJ0byIsIm1hcmdpbkxlZnQiLCJBcHAiLCJwYXRoIiwiZWxlbWVudCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9BcHAudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L2J1dHRvbi1oYXMtdHlwZSAqL1xuaW1wb3J0IHsgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IFJvdXRlcywgUm91dGUsIExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJ1xuXG5pbXBvcnQgeyBEZXZDaGF0QUkgfSBmcm9tICcuL2Rldi9EZXZDaGF0QUknXG5pbXBvcnQgeyBEZXZQcm9qZWN0U3VtbWFyeSB9IGZyb20gJy4vZGV2L1Byb2plY3RTdW1tYXJ5J1xuaW1wb3J0IHsgRGV2TWFpYVBhZ2UgfSBmcm9tICcuL2Rldi9EZXZNYWlhUGFnZSdcbmltcG9ydCB7IERldkNvbnRleHRNZW50aW9uSW5wdXQgfSBmcm9tICcuL2Rldi9EZXZDb250ZXh0TWVudGlvbklucHV0J1xuaW1wb3J0IHsgUHJvdmlkZXJzIH0gZnJvbSAnLi9kZXYvUHJvdmlkZXJzJ1xuXG5jb25zdCBQQUdFUyA9IHtcbiAgJ1Jlc3VtZW4gZGUgcHJveWVjdG9zJzogRGV2UHJvamVjdFN1bW1hcnksXG4gICdDaGF0IEFnZW50ZSBQTSc6IERldkNoYXRBSSxcbiAgJ0NvbnRleHQgTWVudGlvbiBJbnB1dCc6IERldkNvbnRleHRNZW50aW9uSW5wdXQsXG59XG5cbnR5cGUgUGFnZSA9IGtleW9mIHR5cGVvZiBQQUdFU1xuXG5jb25zdCBERVZfUE9SVEFMUyA9IChcbiAgPD5cbiAgICA8ZGl2IGlkPVwibW9kYWxzLXBvcnRhbC1tYWlhLWNoYXQtYWdlbnRcIiAvPlxuICAgIDxkaXYgaWQ9XCJhYm0tYWdlbnQtbW9kYWxcIiAvPlxuICAgIDxkaXYgaWQ9XCJzbmFja2Jhci1wb3J0YWwtbWFpYS1jaGF0LWFnZW50XCIgLz5cbiAgICA8ZGl2IGlkPVwiZW1vamktcGlja2VyLWNvbnRhaW5lclwiIC8+XG4gICAgPGRpdiBpZD1cImVtb2ppLXBpY2tlci1jb250YWluZXItbWFpYS1jaGF0LWFnZW50XCIgLz5cbiAgICA8ZGl2IGlkPVwibW9kYWwtcG9ydGFsLXZpZGVvLW9uYm9hcmRpbmdcIiAvPlxuICA8Lz5cbilcblxuZnVuY3Rpb24gRGV2U2hlbGwoKSB7XG4gIGNvbnN0IFtwYWdlLCBzZXRQYWdlXSA9IHVzZVN0YXRlPFBhZ2U+KCdDb250ZXh0IE1lbnRpb24gSW5wdXQnKVxuICBjb25zdCBDb21wb25lbnQgPSBQQUdFU1twYWdlXVxuICBjb25zdCBwYWdlcyA9IE9iamVjdC5rZXlzKFBBR0VTKSBhcyBQYWdlW11cblxuICByZXR1cm4gKFxuICAgIDxQcm92aWRlcnM+XG4gICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywgZ2FwOiA4LCBwYWRkaW5nOiA4LCBhbGlnbkl0ZW1zOiAnY2VudGVyJyB9fT5cbiAgICAgICAge3BhZ2VzLm1hcChwID0+IChcbiAgICAgICAgICA8YnV0dG9uIGtleT17cH0gb25DbGljaz17KCkgPT4gc2V0UGFnZShwKX0gc3R5bGU9e3sgZm9udFdlaWdodDogcGFnZSA9PT0gcCA/IDcwMCA6IDQwMCB9fT5cbiAgICAgICAgICAgIHtwfVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICApKX1cbiAgICAgICAgPExpbmsgdG89XCIvbWFpYVwiIHN0eWxlPXt7IG1hcmdpbkxlZnQ6ICdhdXRvJyB9fT5cbiAgICAgICAgICBNYWlhIEZ1bGwgUGFnZSDihpJcbiAgICAgICAgPC9MaW5rPlxuICAgICAgPC9kaXY+XG4gICAgICB7REVWX1BPUlRBTFN9XG4gICAgICA8Q29tcG9uZW50IC8+XG4gICAgPC9Qcm92aWRlcnM+XG4gIClcbn1cblxuZnVuY3Rpb24gQXBwKCkge1xuICByZXR1cm4gKFxuICAgIDxSb3V0ZXM+XG4gICAgICA8Um91dGVcbiAgICAgICAgcGF0aD1cIi9tYWlhXCJcbiAgICAgICAgZWxlbWVudD17XG4gICAgICAgICAgPFByb3ZpZGVycz5cbiAgICAgICAgICAgIDxEZXZNYWlhUGFnZSAvPlxuICAgICAgICAgIDwvUHJvdmlkZXJzPlxuICAgICAgICB9XG4gICAgICAvPlxuICAgICAgPFJvdXRlIHBhdGg9XCIqXCIgZWxlbWVudD17PERldlNoZWxsIC8+fSAvPlxuICAgIDwvUm91dGVzPlxuICApXG59XG5cbmV4cG9ydCBkZWZhdWx0IEFwcFxuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQSxTQUFTQSxRQUFRLFFBQVEsT0FBTztBQUNoQyxTQUFTQyxNQUFNLEVBQUVDLEtBQUssRUFBRUMsSUFBSSxRQUFRLGtCQUFrQjtBQUV0RCxTQUFTQyxTQUFTLFFBQVEsaUJBQWlCO0FBQzNDLFNBQVNDLGlCQUFpQixRQUFRLHNCQUFzQjtBQUN4RCxTQUFTQyxXQUFXLFFBQVEsbUJBQW1CO0FBQy9DLFNBQVNDLHNCQUFzQixRQUFRLDhCQUE4QjtBQUNyRSxTQUFTQyxTQUFTLFFBQVEsaUJBQWlCO0FBQUEsU0FBQUMsR0FBQSxJQUFBQyxJQUFBLEVBQUFDLFFBQUEsSUFBQUMsU0FBQSxFQUFBQyxJQUFBLElBQUFDLEtBQUE7QUFFM0Ms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
55
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsIkRldkNoYXRBSSIsIkRldlByb2plY3RTdW1tYXJ5IiwiRGV2Q29udGV4dE1lbnRpb25JbnB1dCIsIlByb3ZpZGVycyIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJQQUdFUyIsIkFwcCIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInBhZ2UiLCJzZXRQYWdlIiwiQ29tcG9uZW50IiwicGFnZXMiLCJPYmplY3QiLCJrZXlzIiwiY2hpbGRyZW4iLCJzdHlsZSIsImRpc3BsYXkiLCJnYXAiLCJwYWRkaW5nIiwibWFwIiwicCIsIm9uQ2xpY2siLCJmb250V2VpZ2h0IiwiaWQiXSwic291cmNlcyI6WyIuLi9zcmMvQXBwLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSByZWFjdC9idXR0b24taGFzLXR5cGUgKi9cbmltcG9ydCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5cbmltcG9ydCB7IERldkNoYXRBSSB9IGZyb20gJy4vZGV2L0RldkNoYXRBSSdcbmltcG9ydCB7IERldlByb2plY3RTdW1tYXJ5IH0gZnJvbSAnLi9kZXYvUHJvamVjdFN1bW1hcnknXG5pbXBvcnQgeyBEZXZDb250ZXh0TWVudGlvbklucHV0IH0gZnJvbSAnLi9kZXYvRGV2Q29udGV4dE1lbnRpb25JbnB1dCdcbmltcG9ydCB7IFByb3ZpZGVycyB9IGZyb20gJy4vZGV2L1Byb3ZpZGVycydcblxuY29uc3QgUEFHRVMgPSB7XG4gICdSZXN1bWVuIGRlIHByb3llY3Rvcyc6IERldlByb2plY3RTdW1tYXJ5LFxuICAnQ2hhdCBBZ2VudGUgUE0nOiBEZXZDaGF0QUksXG4gICdDb250ZXh0IE1lbnRpb24gSW5wdXQnOiBEZXZDb250ZXh0TWVudGlvbklucHV0LFxufVxuXG50eXBlIFBhZ2UgPSBrZXlvZiB0eXBlb2YgUEFHRVNcblxuZnVuY3Rpb24gQXBwKCkge1xuICBjb25zdCBbcGFnZSwgc2V0UGFnZV0gPSB1c2VTdGF0ZTxQYWdlPignQ29udGV4dCBNZW50aW9uIElucHV0JylcbiAgY29uc3QgQ29tcG9uZW50ID0gUEFHRVNbcGFnZV1cbiAgY29uc3QgcGFnZXMgPSBPYmplY3Qua2V5cyhQQUdFUykgYXMgUGFnZVtdXG5cbiAgcmV0dXJuIChcbiAgICA8UHJvdmlkZXJzPlxuICAgICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIGdhcDogOCwgcGFkZGluZzogOCB9fT5cbiAgICAgICAge3BhZ2VzLm1hcChwID0+IChcbiAgICAgICAgICA8YnV0dG9uIGtleT17cH0gb25DbGljaz17KCkgPT4gc2V0UGFnZShwKX0gc3R5bGU9e3sgZm9udFdlaWdodDogcGFnZSA9PT0gcCA/IDcwMCA6IDQwMCB9fT5cbiAgICAgICAgICAgIHtwfVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICApKX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBpZD1cIm1vZGFscy1wb3J0YWwtbWFpYS1jaGF0LWFnZW50XCIgLz5cbiAgICAgIDxkaXYgaWQ9XCJhYm0tYWdlbnQtbW9kYWxcIiAvPlxuICAgICAgPGRpdiBpZD1cInNuYWNrYmFyLXBvcnRhbC1tYWlhLWNoYXQtYWdlbnRcIiAvPlxuICAgICAgPGRpdiBpZD1cImVtb2ppLXBpY2tlci1jb250YWluZXJcIiAvPlxuICAgICAgPGRpdiBpZD1cImVtb2ppLXBpY2tlci1jb250YWluZXItbWFpYS1jaGF0LWFnZW50XCIgLz5cbiAgICAgIDxkaXYgaWQ9XCJtb2RhbC1wb3J0YWwtdmlkZW8tb25ib2FyZGluZ1wiIC8+XG4gICAgICA8Q29tcG9uZW50IC8+XG4gICAgPC9Qcm92aWRlcnM+XG4gIClcbn1cblxuZXhwb3J0IGRlZmF1bHQgQXBwXG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBLFNBQVNBLFFBQVEsUUFBUSxPQUFPO0FBRWhDLFNBQVNDLFNBQVMsUUFBUSxpQkFBaUI7QUFDM0MsU0FBU0MsaUJBQWlCLFFBQVEsc0JBQXNCO0FBQ3hELFNBQVNDLHNCQUFzQixRQUFRLDhCQUE4QjtBQUNyRSxTQUFTQyxTQUFTLFFBQVEsaUJBQWlCO0FBQUEsU0FBQUMsR0FBQSxJQUFBQyxJQUFBLEVBQUFDLElBQUEsSUFBQUMsS0FBQTtBQUUzQyxJQUFNQyxLQUFLLEdBQUc7RUFDWixzQkFBc0IsRUFBRVAsaUJBQWlCO0VBQ3pDLGdCQUFnQixFQUFFRCxTQUFTO0VBQzNCLHVCQUF1QixFQUFFRTtBQUMzQixDQUFDO0FBSUQsU0FBU08sR0FBR0EsQ0FBQSxFQUFHO0VBQ2IsSUFBQUMsU0FBQSxHQUF3QlgsUUFBUSxDQUFPLHVCQUF1QixDQUFDO0lBQUFZLFVBQUEsR0FBQUMsY0FBQSxDQUFBRixTQUFBO0lBQXhERyxJQUFJLEdBQUFGLFVBQUE7SUFBRUcsT0FBTyxHQUFBSCxVQUFBO0VBQ3BCLElBQU1JLFNBQVMsR0FBR1AsS0FBSyxDQUFDSyxJQUFJLENBQUM7RUFDN0IsSUFBTUcsS0FBSyxHQUFHQyxNQUFNLENBQUNDLElBQUksQ0FBQ1YsS0FBSyxDQUFXO0VBRTFDLG9CQUNFRCxLQUFBLENBQUNKLFNBQVM7SUFBQWdCLFFBQUEsZ0JBQ1JkLElBQUE7TUFBS2UsS0FBSyxFQUFFO1FBQUVDLE9BQU8sRUFBRSxNQUFNO1FBQUVDLEdBQUcsRUFBRSxDQUFDO1FBQUVDLE9BQU8sRUFBRTtNQUFFLENBQUU7TUFBQUosUUFBQSxFQUNqREgsS0FBSyxDQUFDUSxHQUFHLENBQUMsVUFBQUMsQ0FBQztRQUFBLG9CQUNWcEIsSUFBQTtVQUFnQnFCLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO1lBQUEsT0FBUVosT0FBTyxDQUFDVyxDQUFDLENBQUM7VUFBQSxDQUFDO1VBQUNMLEtBQUssRUFBRTtZQUFFTyxVQUFVLEVBQUVkLElBQUksS0FBS1ksQ0FBQyxHQUFHLEdBQUcsR0FBRztVQUFJLENBQUU7VUFBQU4sUUFBQSxFQUN0Rk07UUFBQyxHQURTQSxDQUVMLENBQUM7TUFBQSxDQUNWO0lBQUMsQ0FDQyxDQUFDLGVBQ05wQixJQUFBO01BQUt1QixFQUFFLEVBQUM7SUFBK0IsQ0FBRSxDQUFDLGVBQzFDdkIsSUFBQTtNQUFLdUIsRUFBRSxFQUFDO0lBQWlCLENBQUUsQ0FBQyxlQUM1QnZCLElBQUE7TUFBS3VCLEVBQUUsRUFBQztJQUFpQyxDQUFFLENBQUMsZUFDNUN2QixJQUFBO01BQUt1QixFQUFFLEVBQUM7SUFBd0IsQ0FBRSxDQUFDLGVBQ25DdkIsSUFBQTtNQUFLdUIsRUFBRSxFQUFDO0lBQXdDLENBQUUsQ0FBQyxlQUNuRHZCLElBQUE7TUFBS3VCLEVBQUUsRUFBQztJQUErQixDQUFFLENBQUMsZUFDMUN2QixJQUFBLENBQUNVLFNBQVMsSUFBRSxDQUFDO0VBQUEsQ0FDSixDQUFDO0FBRWhCO0FBRUEsZUFBZU4sR0FBRyIsImlnbm9yZUxpc3QiOltdfQ==