@projectcor/maia-components 2.11.18 → 2.11.19-1

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 (42) hide show
  1. package/lib/components/atoms/ApprovalBox/ApprovalBox.js +3 -2
  2. package/lib/components/atoms/ApprovalBox/ApprovalBox.styles.js +6 -5
  3. package/lib/components/atoms/icons/MaiaStoreIcon.js +31 -0
  4. package/lib/components/atoms/icons/MyAgentsNavIcon.js +51 -0
  5. package/lib/components/atoms/icons/index.js +3 -1
  6. package/lib/components/molecules/ChatAIContent/ChatAIContent.js +24 -5
  7. package/lib/components/molecules/ChatAIHome/ChatAIHome.js +26 -61
  8. package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.js +98 -0
  9. package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.styles.js +67 -0
  10. package/lib/components/molecules/ChatAIHome/styles.js +34 -42
  11. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +43 -4
  12. package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.js +43 -0
  13. package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.styles.js +37 -0
  14. package/lib/components/molecules/ChatAIMessages/newStyles.js +24 -21
  15. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +124 -14
  16. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +16 -41
  17. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.styles.js +5 -13
  18. package/lib/components/molecules/ChatAIModal/constants.js +6 -2
  19. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.js +326 -0
  20. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.styles.js +168 -0
  21. package/lib/components/molecules/Sidebar/Sidebar.js +162 -197
  22. package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +114 -0
  23. package/lib/components/molecules/Sidebar/Sidebar.styles.js +13 -1
  24. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +10 -1
  25. package/lib/hooks/index.js +4 -1
  26. package/lib/hooks/useAgentSuggestions.js +60 -0
  27. package/lib/hooks/useChatManager/useChatManager.interface.js +1 -1
  28. package/lib/hooks/useChatManager/useChatManager.js +89 -57
  29. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.interface.js +1 -1
  30. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +16 -6
  31. package/lib/lang/br/index.js +68 -9
  32. package/lib/lang/en/index.js +68 -9
  33. package/lib/lang/es/index.js +66 -7
  34. package/lib/lang/fr/index.js +52 -4
  35. package/lib/services/maia/Agents/getAgentSuggestions.js +44 -0
  36. package/lib/services/maia/Agents/getAgents.js +5 -8
  37. package/lib/services/maia/Orchestrator/orchestrator.js +29 -22
  38. package/lib/services/utils/mapChatMessages.js +2 -1
  39. package/lib/types/AgentSuggestion.js +2 -0
  40. package/lib/types/Chat.js +1 -1
  41. package/lib/types/agent.js +1 -1
  42. package/package.json +1 -1
@@ -0,0 +1,326 @@
1
+ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
4
+ import React, { useEffect, useMemo, useState } from 'react';
5
+ import { MenuDots } from '@projectcor/icons/lib/components/MenuDots';
6
+ import { Star } from '@projectcor/icons/lib/components/Star';
7
+ import { Tooltip } from '@projectcor/tooltipv2/lib/components/Tooltip';
8
+ import { useTranslation } from 'react-i18next';
9
+ import { useGlobalContext } from '../../../context/global-context';
10
+ import { useUser } from '../../../context/cor-user';
11
+ import { deleteAgent } from '../../../services/maia/Agents/deleteAgent';
12
+ import { useSnackBarManager } from '../../../hooks/useSnackBarManager/useSnackBarManager';
13
+ import { DeleteQuestionModal } from '../../organisms/DeleteQuestionModal/DeleteQuestionModal';
14
+ import { SECTIONS } from '../../../constants/config';
15
+ import { Loader } from '../../atoms/Loader';
16
+ import { useToggleFavorite } from '../../../hooks';
17
+ import { SCMABody, SCMACardBody, SCMACardButton, SCMACardFooter, SCMACardHeader, SCMACardTopRow, SCMACardIntroText, SCMACardMenu, SCMACardMenuItem, SCMACardMenuItems, SCMAFavoriteButton, SCMACardText, SCMACardTitleEmoji, SCMACardTitleName, SCMACardsOuter, SCMACardsRow, SCMAEmptyStateRoot, SCMAEmptyStateColumn, SCMAEmptyStateTitleBlock, SCMAEmptyStateTitle, SCMAEmptyStateSubtitle, SCMAEmptyStateButton, SCMAKebabButton, SCMALoadMoreWrapper, SCMAMyAgentsContainer, SCMATitle, SCMATitleInner, SCMATitleWrap } from './ChatAIMyAgents.styles';
18
+ import { MAIAIsologo } from '../../atoms/icons';
19
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
20
+ export var ChatAIMyAgents = function ChatAIMyAgents(_ref) {
21
+ var _user$permissions;
22
+ var onBack = _ref.onBack,
23
+ agents = _ref.agents,
24
+ onDeleteAgent = _ref.onDeleteAgent,
25
+ onFavoriteAgentUpdate = _ref.onFavoriteAgentUpdate,
26
+ _ref$hasMoreAgents = _ref.hasMoreAgents,
27
+ hasMoreAgents = _ref$hasMoreAgents === void 0 ? false : _ref$hasMoreAgents,
28
+ _ref$loadingMoreAgent = _ref.loadingMoreAgents,
29
+ loadingMoreAgents = _ref$loadingMoreAgent === void 0 ? false : _ref$loadingMoreAgent,
30
+ onLoadMoreAgents = _ref.onLoadMoreAgents,
31
+ onGoToMaiaker = _ref.onGoToMaiaker;
32
+ var _useTranslation = useTranslation([SECTIONS.chatAI, SECTIONS.abmAgent]),
33
+ t = _useTranslation.t;
34
+ var user = useUser();
35
+ var _useGlobalContext = useGlobalContext(),
36
+ selectAgent = _useGlobalContext.selectAgent,
37
+ setProject = _useGlobalContext.setProject,
38
+ setClient = _useGlobalContext.setClient;
39
+ var _useSnackBarManager = useSnackBarManager(),
40
+ handleSnackbarSuccess = _useSnackBarManager.handleSnackbarSuccess,
41
+ handleSnackbarError = _useSnackBarManager.handleSnackbarError;
42
+ var customAgents = agents.filter(function (agent) {
43
+ return agent.type === 'custom' && !agent.is_deleted;
44
+ });
45
+ var _useState = useState(null),
46
+ _useState2 = _slicedToArray(_useState, 2),
47
+ menuOpenForAgentId = _useState2[0],
48
+ setMenuOpenForAgentId = _useState2[1];
49
+ var _useState3 = useState(null),
50
+ _useState4 = _slicedToArray(_useState3, 2),
51
+ agentToDelete = _useState4[0],
52
+ setAgentToDelete = _useState4[1];
53
+ var userPermissions = user === null || user === void 0 || (_user$permissions = user.permissions) === null || _user$permissions === void 0 ? void 0 : _user$permissions.ai_agents;
54
+ var canCreateAgent = !!(userPermissions !== null && userPermissions !== void 0 && userPermissions.create) && !!window.MAIA_CHAT_AI_FEATURE_ACCESS_MULTI_AGENTS;
55
+ var canEdit = !!(userPermissions !== null && userPermissions !== void 0 && userPermissions.edit) && !!window.MAIA_CHAT_AI_FEATURE_ACCESS_MULTI_AGENTS;
56
+ var canDelete = !!(userPermissions !== null && userPermissions !== void 0 && userPermissions["delete"]) && !!window.MAIA_CHAT_AI_FEATURE_ACCESS_MULTI_AGENTS;
57
+ var canShowMenu = canEdit || canDelete;
58
+ var _useToggleFavorite = useToggleFavorite(),
59
+ toggleFavorite = _useToggleFavorite.toggleFavorite;
60
+ var handleLoadMore = function handleLoadMore() {
61
+ if (!onLoadMoreAgents || !hasMoreAgents || loadingMoreAgents) {
62
+ return;
63
+ }
64
+ onLoadMoreAgents();
65
+ };
66
+ var deleteModalChat = useMemo(function () {
67
+ return agentToDelete ? {
68
+ title: agentToDelete.name,
69
+ id: agentToDelete.id
70
+ } : null;
71
+ }, [agentToDelete]);
72
+ var handleUseAgent = function handleUseAgent(agent) {
73
+ setProject(null);
74
+ setClient === null || setClient === void 0 || setClient(null);
75
+ selectAgent(agent);
76
+ onBack();
77
+ };
78
+ var normalizeText = function normalizeText(value) {
79
+ if (Array.isArray(value)) return value[0] || '';
80
+ return value || '';
81
+ };
82
+ var getCreatedAtLabel = function getCreatedAtLabel(agent) {
83
+ var createdAt = agent.created_at;
84
+ if (!createdAt) return '';
85
+ var createdAtDate = new Date(createdAt);
86
+ if (Number.isNaN(createdAtDate.getTime())) return '';
87
+ var diffMs = Date.now() - createdAtDate.getTime();
88
+ var dayMs = 1000 * 60 * 60 * 24;
89
+ var days = Math.max(0, Math.floor(diffMs / dayMs));
90
+ if (days === 0) return t('marketplace.myAgentsToday');
91
+ if (days === 1) return t('marketplace.myAgentsOneDayAgo');
92
+ return t('marketplace.myAgentsDaysAgo', {
93
+ days: days
94
+ });
95
+ };
96
+ var handleOpenEditAgent = function handleOpenEditAgent(agent) {
97
+ document.dispatchEvent(new CustomEvent('abm-agent-modal-set-values', {
98
+ detail: {
99
+ agentValues: {
100
+ values: {
101
+ isEditing: true,
102
+ knowledge: (agent === null || agent === void 0 ? void 0 : agent.knowledge) || [],
103
+ general: {
104
+ name: agent.name,
105
+ id: agent.id
106
+ }
107
+ },
108
+ isOpen: true
109
+ }
110
+ }
111
+ }));
112
+ setMenuOpenForAgentId(null);
113
+ };
114
+ var handleToggleFavorite = function handleToggleFavorite(event, agent, isFavorite) {
115
+ event.preventDefault();
116
+ event.stopPropagation();
117
+ toggleFavorite(agent.id, function (updatedAgent) {
118
+ onFavoriteAgentUpdate === null || onFavoriteAgentUpdate === void 0 || onFavoriteAgentUpdate(updatedAgent);
119
+ }, undefined, isFavorite);
120
+ };
121
+ var handleConfirmDelete = /*#__PURE__*/function () {
122
+ var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(chat) {
123
+ var _t;
124
+ return _regeneratorRuntime.wrap(function (_context) {
125
+ while (1) switch (_context.prev = _context.next) {
126
+ case 0:
127
+ _context.prev = 0;
128
+ _context.next = 1;
129
+ return deleteAgent(chat.id);
130
+ case 1:
131
+ handleSnackbarSuccess(t('confirmAgentDeleted', {
132
+ ns: SECTIONS.abmAgent
133
+ }));
134
+ onDeleteAgent === null || onDeleteAgent === void 0 || onDeleteAgent(chat.id);
135
+ setAgentToDelete(null);
136
+ setMenuOpenForAgentId(null);
137
+ _context.next = 3;
138
+ break;
139
+ case 2:
140
+ _context.prev = 2;
141
+ _t = _context["catch"](0);
142
+ handleSnackbarError(t('errorAgentCreated', {
143
+ ns: SECTIONS.abmAgent
144
+ }));
145
+ case 3:
146
+ case "end":
147
+ return _context.stop();
148
+ }
149
+ }, _callee, null, [[0, 2]]);
150
+ }));
151
+ return function handleConfirmDelete(_x) {
152
+ return _ref2.apply(this, arguments);
153
+ };
154
+ }();
155
+ useEffect(function () {
156
+ var handleClickOutside = function handleClickOutside() {
157
+ if (menuOpenForAgentId) {
158
+ setMenuOpenForAgentId(null);
159
+ }
160
+ };
161
+ document.addEventListener('click', handleClickOutside);
162
+ return function () {
163
+ document.removeEventListener('click', handleClickOutside);
164
+ };
165
+ }, [menuOpenForAgentId]);
166
+ useEffect(function () {
167
+ var container = document.getElementById('my-agents-scroll-container');
168
+ if (!container) {
169
+ return undefined;
170
+ }
171
+ var onScroll = function onScroll() {
172
+ if (!hasMoreAgents || loadingMoreAgents) return;
173
+ var scrollTop = container.scrollTop,
174
+ clientHeight = container.clientHeight,
175
+ scrollHeight = container.scrollHeight;
176
+ var nearBottom = scrollTop + clientHeight >= scrollHeight - 40;
177
+ if (nearBottom) {
178
+ handleLoadMore();
179
+ }
180
+ };
181
+ container.addEventListener('scroll', onScroll);
182
+ return function () {
183
+ container.removeEventListener('scroll', onScroll);
184
+ };
185
+ }, [hasMoreAgents, loadingMoreAgents, onLoadMoreAgents]);
186
+ useEffect(function () {
187
+ var container = document.getElementById('my-agents-scroll-container');
188
+ if (!container || !hasMoreAgents || loadingMoreAgents) {
189
+ return undefined;
190
+ }
191
+ if (container.scrollHeight <= container.clientHeight + 1) {
192
+ handleLoadMore();
193
+ }
194
+ return undefined;
195
+ }, [customAgents.length, hasMoreAgents, loadingMoreAgents, onLoadMoreAgents]);
196
+ return /*#__PURE__*/_jsxs(SCMAMyAgentsContainer, {
197
+ id: "my-agents-scroll-container",
198
+ $hasAgents: !!customAgents.length,
199
+ children: [/*#__PURE__*/_jsx(MAIAIsologo, {}), /*#__PURE__*/_jsxs(SCMABody, {
200
+ children: [customAgents.length ? /*#__PURE__*/_jsx(SCMATitleWrap, {
201
+ children: /*#__PURE__*/_jsx(SCMATitleInner, {
202
+ children: /*#__PURE__*/_jsx(SCMATitle, {
203
+ children: t('marketplace.myAgentsReadyTitle')
204
+ })
205
+ })
206
+ }) : null, customAgents.length ? /*#__PURE__*/_jsx(SCMACardsOuter, {
207
+ children: /*#__PURE__*/_jsx(SCMACardsRow, {
208
+ children: customAgents.map(function (agent) {
209
+ var _agent$emoji;
210
+ return /*#__PURE__*/_jsxs(SCMACardButton, {
211
+ type: "button",
212
+ onClick: function onClick() {
213
+ return handleUseAgent(agent);
214
+ },
215
+ children: [/*#__PURE__*/_jsxs(SCMACardHeader, {
216
+ children: [/*#__PURE__*/_jsxs(SCMACardTopRow, {
217
+ children: [/*#__PURE__*/_jsx(SCMACardTitleEmoji, {
218
+ "aria-hidden": true,
219
+ children: (_agent$emoji = agent.emoji) !== null && _agent$emoji !== void 0 && _agent$emoji.trim() ? agent.emoji : "\xA0"
220
+ }), canShowMenu ? /*#__PURE__*/_jsx(SCMAKebabButton, {
221
+ type: "button",
222
+ "aria-label": t('marketplace.cardMenuAriaLabel'),
223
+ onClick: function onClick(event) {
224
+ event.preventDefault();
225
+ event.stopPropagation();
226
+ setMenuOpenForAgentId(function (prev) {
227
+ return prev === agent.id ? null : agent.id;
228
+ });
229
+ },
230
+ children: /*#__PURE__*/_jsx(MenuDots, {
231
+ color: "#999",
232
+ width: 15,
233
+ height: 15
234
+ })
235
+ }) : null]
236
+ }), /*#__PURE__*/_jsx(SCMACardTitleName, {
237
+ children: agent.name
238
+ })]
239
+ }), /*#__PURE__*/_jsxs(SCMACardBody, {
240
+ children: [/*#__PURE__*/_jsx(SCMACardIntroText, {
241
+ children: normalizeText(agent.introduction)
242
+ }), /*#__PURE__*/_jsxs(SCMACardFooter, {
243
+ children: [/*#__PURE__*/_jsx(SCMACardText, {
244
+ children: getCreatedAtLabel(agent) || t('marketplace.myAgentsFallbackDate')
245
+ }), /*#__PURE__*/_jsx(Tooltip, {
246
+ title: agent.is_favorite ? t('agents.removeFavorite') : t('agents.addFavorite'),
247
+ children: /*#__PURE__*/_jsx(SCMAFavoriteButton, {
248
+ type: "button",
249
+ "aria-label": agent.is_favorite ? t('agents.removeFavorite') : t('agents.addFavorite'),
250
+ $alwaysVisible: !!agent.is_favorite,
251
+ onClick: function onClick(event) {
252
+ return handleToggleFavorite(event, agent, !!agent.is_favorite);
253
+ },
254
+ children: /*#__PURE__*/_jsx(Star, {
255
+ width: 20,
256
+ height: 20,
257
+ color: agent.is_favorite ? '#FFC624' : '#a6a6a6',
258
+ fill: agent.is_favorite ? '#FFC624' : 'none',
259
+ variant: "solid",
260
+ className: agent.is_favorite ? '' : 'star-favorite-icon'
261
+ })
262
+ })
263
+ })]
264
+ })]
265
+ }), menuOpenForAgentId === agent.id && canShowMenu ? /*#__PURE__*/_jsx(SCMACardMenu, {
266
+ onClick: function onClick(event) {
267
+ event.preventDefault();
268
+ event.stopPropagation();
269
+ },
270
+ children: /*#__PURE__*/_jsxs(SCMACardMenuItems, {
271
+ children: [canDelete ? /*#__PURE__*/_jsx(SCMACardMenuItem, {
272
+ type: "button",
273
+ onClick: function onClick() {
274
+ setAgentToDelete(agent);
275
+ },
276
+ children: t('deleteAgent', {
277
+ ns: SECTIONS.abmAgent
278
+ })
279
+ }) : null, canEdit ? /*#__PURE__*/_jsx(SCMACardMenuItem, {
280
+ type: "button",
281
+ onClick: function onClick() {
282
+ handleOpenEditAgent(agent);
283
+ },
284
+ children: t('editAgent', {
285
+ ns: SECTIONS.abmAgent
286
+ })
287
+ }) : null]
288
+ })
289
+ }) : null]
290
+ }, agent.id);
291
+ })
292
+ })
293
+ }) : /*#__PURE__*/_jsxs(SCMAEmptyStateRoot, {
294
+ children: [/*#__PURE__*/_jsx(SCMAEmptyStateColumn, {
295
+ children: /*#__PURE__*/_jsxs(SCMAEmptyStateTitleBlock, {
296
+ children: [/*#__PURE__*/_jsx(SCMAEmptyStateTitle, {
297
+ children: t('marketplace.myAgentsEmptyStateTitle')
298
+ }), /*#__PURE__*/_jsx(SCMAEmptyStateSubtitle, {
299
+ children: canCreateAgent ? t('marketplace.myAgentsEmptyStateDescription') : t('marketplace.myAgentsEmptyStateDescriptionNoPerm')
300
+ })]
301
+ })
302
+ }), canCreateAgent && onGoToMaiaker ? /*#__PURE__*/_jsx(SCMAEmptyStateButton, {
303
+ type: "button",
304
+ onClick: function onClick() {
305
+ return onGoToMaiaker();
306
+ },
307
+ children: t('marketplace.myAgentsEmptyStateButton')
308
+ }) : null]
309
+ }), loadingMoreAgents ? /*#__PURE__*/_jsx(SCMALoadMoreWrapper, {
310
+ children: /*#__PURE__*/_jsx(Loader, {
311
+ size: "small"
312
+ })
313
+ }) : null]
314
+ }), deleteModalChat ? /*#__PURE__*/_jsx(DeleteQuestionModal, {
315
+ onClose: function onClose() {
316
+ return setAgentToDelete(null);
317
+ },
318
+ handlers: {
319
+ handleConfirmAction: handleConfirmDelete
320
+ },
321
+ chat: deleteModalChat,
322
+ action: "agent"
323
+ }) : null]
324
+ });
325
+ };
326
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VTdGF0ZSIsIk1lbnVEb3RzIiwiU3RhciIsIlRvb2x0aXAiLCJ1c2VUcmFuc2xhdGlvbiIsInVzZUdsb2JhbENvbnRleHQiLCJ1c2VVc2VyIiwiZGVsZXRlQWdlbnQiLCJ1c2VTbmFja0Jhck1hbmFnZXIiLCJEZWxldGVRdWVzdGlvbk1vZGFsIiwiU0VDVElPTlMiLCJMb2FkZXIiLCJ1c2VUb2dnbGVGYXZvcml0ZSIsIlNDTUFCb2R5IiwiU0NNQUNhcmRCb2R5IiwiU0NNQUNhcmRCdXR0b24iLCJTQ01BQ2FyZEZvb3RlciIsIlNDTUFDYXJkSGVhZGVyIiwiU0NNQUNhcmRUb3BSb3ciLCJTQ01BQ2FyZEludHJvVGV4dCIsIlNDTUFDYXJkTWVudSIsIlNDTUFDYXJkTWVudUl0ZW0iLCJTQ01BQ2FyZE1lbnVJdGVtcyIsIlNDTUFGYXZvcml0ZUJ1dHRvbiIsIlNDTUFDYXJkVGV4dCIsIlNDTUFDYXJkVGl0bGVFbW9qaSIsIlNDTUFDYXJkVGl0bGVOYW1lIiwiU0NNQUNhcmRzT3V0ZXIiLCJTQ01BQ2FyZHNSb3ciLCJTQ01BRW1wdHlTdGF0ZVJvb3QiLCJTQ01BRW1wdHlTdGF0ZUNvbHVtbiIsIlNDTUFFbXB0eVN0YXRlVGl0bGVCbG9jayIsIlNDTUFFbXB0eVN0YXRlVGl0bGUiLCJTQ01BRW1wdHlTdGF0ZVN1YnRpdGxlIiwiU0NNQUVtcHR5U3RhdGVCdXR0b24iLCJTQ01BS2ViYWJCdXR0b24iLCJTQ01BTG9hZE1vcmVXcmFwcGVyIiwiU0NNQU15QWdlbnRzQ29udGFpbmVyIiwiU0NNQVRpdGxlIiwiU0NNQVRpdGxlSW5uZXIiLCJTQ01BVGl0bGVXcmFwIiwiTUFJQUlzb2xvZ28iLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiQ2hhdEFJTXlBZ2VudHMiLCJfcmVmIiwiX3VzZXIkcGVybWlzc2lvbnMiLCJvbkJhY2siLCJhZ2VudHMiLCJvbkRlbGV0ZUFnZW50Iiwib25GYXZvcml0ZUFnZW50VXBkYXRlIiwiX3JlZiRoYXNNb3JlQWdlbnRzIiwiaGFzTW9yZUFnZW50cyIsIl9yZWYkbG9hZGluZ01vcmVBZ2VudCIsImxvYWRpbmdNb3JlQWdlbnRzIiwib25Mb2FkTW9yZUFnZW50cyIsIm9uR29Ub01haWFrZXIiLCJfdXNlVHJhbnNsYXRpb24iLCJjaGF0QUkiLCJhYm1BZ2VudCIsInQiLCJ1c2VyIiwiX3VzZUdsb2JhbENvbnRleHQiLCJzZWxlY3RBZ2VudCIsInNldFByb2plY3QiLCJzZXRDbGllbnQiLCJfdXNlU25hY2tCYXJNYW5hZ2VyIiwiaGFuZGxlU25hY2tiYXJTdWNjZXNzIiwiaGFuZGxlU25hY2tiYXJFcnJvciIsImN1c3RvbUFnZW50cyIsImZpbHRlciIsImFnZW50IiwidHlwZSIsImlzX2RlbGV0ZWQiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJtZW51T3BlbkZvckFnZW50SWQiLCJzZXRNZW51T3BlbkZvckFnZW50SWQiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImFnZW50VG9EZWxldGUiLCJzZXRBZ2VudFRvRGVsZXRlIiwidXNlclBlcm1pc3Npb25zIiwicGVybWlzc2lvbnMiLCJhaV9hZ2VudHMiLCJjYW5DcmVhdGVBZ2VudCIsImNyZWF0ZSIsIndpbmRvdyIsIk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFMiLCJjYW5FZGl0IiwiZWRpdCIsImNhbkRlbGV0ZSIsImNhblNob3dNZW51IiwiX3VzZVRvZ2dsZUZhdm9yaXRlIiwidG9nZ2xlRmF2b3JpdGUiLCJoYW5kbGVMb2FkTW9yZSIsImRlbGV0ZU1vZGFsQ2hhdCIsInRpdGxlIiwibmFtZSIsImlkIiwiaGFuZGxlVXNlQWdlbnQiLCJub3JtYWxpemVUZXh0IiwidmFsdWUiLCJBcnJheSIsImlzQXJyYXkiLCJnZXRDcmVhdGVkQXRMYWJlbCIsImNyZWF0ZWRBdCIsImNyZWF0ZWRfYXQiLCJjcmVhdGVkQXREYXRlIiwiRGF0ZSIsIk51bWJlciIsImlzTmFOIiwiZ2V0VGltZSIsImRpZmZNcyIsIm5vdyIsImRheU1zIiwiZGF5cyIsIk1hdGgiLCJtYXgiLCJmbG9vciIsImhhbmRsZU9wZW5FZGl0QWdlbnQiLCJkb2N1bWVudCIsImRpc3BhdGNoRXZlbnQiLCJDdXN0b21FdmVudCIsImRldGFpbCIsImFnZW50VmFsdWVzIiwidmFsdWVzIiwiaXNFZGl0aW5nIiwia25vd2xlZGdlIiwiZ2VuZXJhbCIsImlzT3BlbiIsImhhbmRsZVRvZ2dsZUZhdm9yaXRlIiwiZXZlbnQiLCJpc0Zhdm9yaXRlIiwicHJldmVudERlZmF1bHQiLCJzdG9wUHJvcGFnYXRpb24iLCJ1cGRhdGVkQWdlbnQiLCJ1bmRlZmluZWQiLCJoYW5kbGVDb25maXJtRGVsZXRlIiwiX3JlZjIiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsImNoYXQiLCJfdCIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwibnMiLCJzdG9wIiwiX3giLCJhcHBseSIsImFyZ3VtZW50cyIsImhhbmRsZUNsaWNrT3V0c2lkZSIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiY29udGFpbmVyIiwiZ2V0RWxlbWVudEJ5SWQiLCJvblNjcm9sbCIsInNjcm9sbFRvcCIsImNsaWVudEhlaWdodCIsInNjcm9sbEhlaWdodCIsIm5lYXJCb3R0b20iLCJsZW5ndGgiLCIkaGFzQWdlbnRzIiwiY2hpbGRyZW4iLCJtYXAiLCJfYWdlbnQkZW1vamkiLCJvbkNsaWNrIiwiZW1vamkiLCJ0cmltIiwiY29sb3IiLCJ3aWR0aCIsImhlaWdodCIsImludHJvZHVjdGlvbiIsImlzX2Zhdm9yaXRlIiwiJGFsd2F5c1Zpc2libGUiLCJmaWxsIiwidmFyaWFudCIsImNsYXNzTmFtZSIsInNpemUiLCJvbkNsb3NlIiwiaGFuZGxlcnMiLCJoYW5kbGVDb25maXJtQWN0aW9uIiwiYWN0aW9uIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0NoYXRBSU15QWdlbnRzL0NoYXRBSU15QWdlbnRzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgTWVudURvdHMgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9NZW51RG90cydcbmltcG9ydCB7IFN0YXIgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9TdGFyJ1xuaW1wb3J0IHsgVG9vbHRpcCB9IGZyb20gJ0Bwcm9qZWN0Y29yL3Rvb2x0aXB2Mi9saWIvY29tcG9uZW50cy9Ub29sdGlwJ1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0J1xuaW1wb3J0IHsgdXNlR2xvYmFsQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyB1c2VVc2VyIH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9jb3ItdXNlcidcbmltcG9ydCB7IEFnZW50IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvYWdlbnQnXG5pbXBvcnQgeyBkZWxldGVBZ2VudCB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL21haWEvQWdlbnRzL2RlbGV0ZUFnZW50J1xuaW1wb3J0IHsgdXNlU25hY2tCYXJNYW5hZ2VyIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlU25hY2tCYXJNYW5hZ2VyL3VzZVNuYWNrQmFyTWFuYWdlcidcbmltcG9ydCB7IERlbGV0ZVF1ZXN0aW9uTW9kYWwgfSBmcm9tICcuLi8uLi9vcmdhbmlzbXMvRGVsZXRlUXVlc3Rpb25Nb2RhbC9EZWxldGVRdWVzdGlvbk1vZGFsJ1xuaW1wb3J0IHsgU0VDVElPTlMgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvY29uZmlnJ1xuaW1wb3J0IHsgTG9hZGVyIH0gZnJvbSAnLi4vLi4vYXRvbXMvTG9hZGVyJ1xuaW1wb3J0IHsgdXNlVG9nZ2xlRmF2b3JpdGUgfSBmcm9tICcuLi8uLi8uLi9ob29rcydcbmltcG9ydCB7XG4gIFNDTUFCb2R5LFxuICBTQ01BQ2FyZEJvZHksXG4gIFNDTUFDYXJkQnV0dG9uLFxuICBTQ01BQ2FyZEZvb3RlcixcbiAgU0NNQUNhcmRIZWFkZXIsXG4gIFNDTUFDYXJkVG9wUm93LFxuICBTQ01BQ2FyZEludHJvVGV4dCxcbiAgU0NNQUNhcmRNZW51LFxuICBTQ01BQ2FyZE1lbnVJdGVtLFxuICBTQ01BQ2FyZE1lbnVJdGVtcyxcbiAgU0NNQUZhdm9yaXRlQnV0dG9uLFxuICBTQ01BQ2FyZFRleHQsXG4gIFNDTUFDYXJkVGl0bGVFbW9qaSxcbiAgU0NNQUNhcmRUaXRsZU5hbWUsXG4gIFNDTUFDYXJkc091dGVyLFxuICBTQ01BQ2FyZHNSb3csXG4gIFNDTUFFbXB0eVN0YXRlUm9vdCxcbiAgU0NNQUVtcHR5U3RhdGVDb2x1bW4sXG4gIFNDTUFFbXB0eVN0YXRlVGl0bGVCbG9jayxcbiAgU0NNQUVtcHR5U3RhdGVUaXRsZSxcbiAgU0NNQUVtcHR5U3RhdGVTdWJ0aXRsZSxcbiAgU0NNQUVtcHR5U3RhdGVCdXR0b24sXG4gIFNDTUFLZWJhYkJ1dHRvbixcbiAgU0NNQUxvYWRNb3JlV3JhcHBlcixcbiAgU0NNQU15QWdlbnRzQ29udGFpbmVyLFxuICBTQ01BVGl0bGUsXG4gIFNDTUFUaXRsZUlubmVyLFxuICBTQ01BVGl0bGVXcmFwLFxufSBmcm9tICcuL0NoYXRBSU15QWdlbnRzLnN0eWxlcydcbmltcG9ydCB7IE1BSUFJc29sb2dvIH0gZnJvbSAnLi4vLi4vYXRvbXMvaWNvbnMnXG5cbnR5cGUgQ2hhdEFJTXlBZ2VudHNQcm9wcyA9IHtcbiAgb25CYWNrOiAoKSA9PiB2b2lkXG4gIGFnZW50czogQWdlbnRbXVxuICBvbkRlbGV0ZUFnZW50PzogKGFnZW50SWQ6IHN0cmluZykgPT4gdm9pZFxuICBvbkZhdm9yaXRlQWdlbnRVcGRhdGU/OiAoYWdlbnQ6IEFnZW50KSA9PiB2b2lkXG4gIGhhc01vcmVBZ2VudHM/OiBib29sZWFuXG4gIGxvYWRpbmdNb3JlQWdlbnRzPzogYm9vbGVhblxuICBvbkxvYWRNb3JlQWdlbnRzPzogKCkgPT4gdm9pZFxuICBvbkdvVG9NYWlha2VyPzogKCkgPT4gdm9pZCB8IFByb21pc2U8dm9pZD5cbn1cblxuZXhwb3J0IGNvbnN0IENoYXRBSU15QWdlbnRzID0gKHtcbiAgb25CYWNrLFxuICBhZ2VudHMsXG4gIG9uRGVsZXRlQWdlbnQsXG4gIG9uRmF2b3JpdGVBZ2VudFVwZGF0ZSxcbiAgaGFzTW9yZUFnZW50cyA9IGZhbHNlLFxuICBsb2FkaW5nTW9yZUFnZW50cyA9IGZhbHNlLFxuICBvbkxvYWRNb3JlQWdlbnRzLFxuICBvbkdvVG9NYWlha2VyLFxufTogQ2hhdEFJTXlBZ2VudHNQcm9wcykgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKFtTRUNUSU9OUy5jaGF0QUksIFNFQ1RJT05TLmFibUFnZW50XSlcbiAgY29uc3QgdXNlciA9IHVzZVVzZXIoKVxuICBjb25zdCB7IHNlbGVjdEFnZW50LCBzZXRQcm9qZWN0LCBzZXRDbGllbnQgfSA9IHVzZUdsb2JhbENvbnRleHQoKVxuICBjb25zdCB7IGhhbmRsZVNuYWNrYmFyU3VjY2VzcywgaGFuZGxlU25hY2tiYXJFcnJvciB9ID0gdXNlU25hY2tCYXJNYW5hZ2VyKClcbiAgY29uc3QgY3VzdG9tQWdlbnRzID0gYWdlbnRzLmZpbHRlcihhZ2VudCA9PiBhZ2VudC50eXBlID09PSAnY3VzdG9tJyAmJiAhYWdlbnQuaXNfZGVsZXRlZClcbiAgY29uc3QgW21lbnVPcGVuRm9yQWdlbnRJZCwgc2V0TWVudU9wZW5Gb3JBZ2VudElkXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpXG4gIGNvbnN0IFthZ2VudFRvRGVsZXRlLCBzZXRBZ2VudFRvRGVsZXRlXSA9IHVzZVN0YXRlPEFnZW50IHwgbnVsbD4obnVsbClcbiAgY29uc3QgdXNlclBlcm1pc3Npb25zID0gdXNlcj8ucGVybWlzc2lvbnM/LmFpX2FnZW50c1xuICBjb25zdCBjYW5DcmVhdGVBZ2VudCA9ICEhdXNlclBlcm1pc3Npb25zPy5jcmVhdGUgJiYgISF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UU1xuICBjb25zdCBjYW5FZGl0ID0gISF1c2VyUGVybWlzc2lvbnM/LmVkaXQgJiYgISF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UU1xuICBjb25zdCBjYW5EZWxldGUgPSAhIXVzZXJQZXJtaXNzaW9ucz8uZGVsZXRlICYmICEhd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFNcbiAgY29uc3QgY2FuU2hvd01lbnUgPSBjYW5FZGl0IHx8IGNhbkRlbGV0ZVxuICBjb25zdCB7IHRvZ2dsZUZhdm9yaXRlIH0gPSB1c2VUb2dnbGVGYXZvcml0ZSgpXG5cbiAgY29uc3QgaGFuZGxlTG9hZE1vcmUgPSAoKSA9PiB7XG4gICAgaWYgKCFvbkxvYWRNb3JlQWdlbnRzIHx8ICFoYXNNb3JlQWdlbnRzIHx8IGxvYWRpbmdNb3JlQWdlbnRzKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgb25Mb2FkTW9yZUFnZW50cygpXG4gIH1cblxuICBjb25zdCBkZWxldGVNb2RhbENoYXQgPSB1c2VNZW1vKFxuICAgICgpID0+IChhZ2VudFRvRGVsZXRlID8geyB0aXRsZTogYWdlbnRUb0RlbGV0ZS5uYW1lLCBpZDogYWdlbnRUb0RlbGV0ZS5pZCB9IDogbnVsbCksXG4gICAgW2FnZW50VG9EZWxldGVdXG4gIClcblxuICBjb25zdCBoYW5kbGVVc2VBZ2VudCA9IChhZ2VudDogQWdlbnQpID0+IHtcbiAgICBzZXRQcm9qZWN0KG51bGwpXG4gICAgc2V0Q2xpZW50Py4obnVsbClcbiAgICBzZWxlY3RBZ2VudChhZ2VudClcbiAgICBvbkJhY2soKVxuICB9XG5cbiAgY29uc3Qgbm9ybWFsaXplVGV4dCA9ICh2YWx1ZT86IHN0cmluZyB8IHN0cmluZ1tdIHwgbnVsbCkgPT4ge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkgcmV0dXJuIHZhbHVlWzBdIHx8ICcnXG4gICAgcmV0dXJuIHZhbHVlIHx8ICcnXG4gIH1cblxuICBjb25zdCBnZXRDcmVhdGVkQXRMYWJlbCA9IChhZ2VudDogQWdlbnQpID0+IHtcbiAgICBjb25zdCBjcmVhdGVkQXQgPSAoYWdlbnQgYXMgQWdlbnQgJiB7IGNyZWF0ZWRfYXQ/OiBzdHJpbmcgfSkuY3JlYXRlZF9hdFxuICAgIGlmICghY3JlYXRlZEF0KSByZXR1cm4gJydcblxuICAgIGNvbnN0IGNyZWF0ZWRBdERhdGUgPSBuZXcgRGF0ZShjcmVhdGVkQXQpXG4gICAgaWYgKE51bWJlci5pc05hTihjcmVhdGVkQXREYXRlLmdldFRpbWUoKSkpIHJldHVybiAnJ1xuXG4gICAgY29uc3QgZGlmZk1zID0gRGF0ZS5ub3coKSAtIGNyZWF0ZWRBdERhdGUuZ2V0VGltZSgpXG4gICAgY29uc3QgZGF5TXMgPSAxMDAwICogNjAgKiA2MCAqIDI0XG4gICAgY29uc3QgZGF5cyA9IE1hdGgubWF4KDAsIE1hdGguZmxvb3IoZGlmZk1zIC8gZGF5TXMpKVxuXG4gICAgaWYgKGRheXMgPT09IDApIHJldHVybiB0KCdtYXJrZXRwbGFjZS5teUFnZW50c1RvZGF5JylcbiAgICBpZiAoZGF5cyA9PT0gMSkgcmV0dXJuIHQoJ21hcmtldHBsYWNlLm15QWdlbnRzT25lRGF5QWdvJylcbiAgICByZXR1cm4gdCgnbWFya2V0cGxhY2UubXlBZ2VudHNEYXlzQWdvJywgeyBkYXlzIH0pXG4gIH1cblxuICBjb25zdCBoYW5kbGVPcGVuRWRpdEFnZW50ID0gKGFnZW50OiBBZ2VudCkgPT4ge1xuICAgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQoXG4gICAgICBuZXcgQ3VzdG9tRXZlbnQoJ2FibS1hZ2VudC1tb2RhbC1zZXQtdmFsdWVzJywge1xuICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICBhZ2VudFZhbHVlczoge1xuICAgICAgICAgICAgdmFsdWVzOiB7XG4gICAgICAgICAgICAgIGlzRWRpdGluZzogdHJ1ZSxcbiAgICAgICAgICAgICAga25vd2xlZGdlOiBhZ2VudD8ua25vd2xlZGdlIHx8IFtdLFxuICAgICAgICAgICAgICBnZW5lcmFsOiB7XG4gICAgICAgICAgICAgICAgbmFtZTogYWdlbnQubmFtZSxcbiAgICAgICAgICAgICAgICBpZDogYWdlbnQuaWQsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaXNPcGVuOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgIClcbiAgICBzZXRNZW51T3BlbkZvckFnZW50SWQobnVsbClcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVRvZ2dsZUZhdm9yaXRlID0gKGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50PEhUTUxCdXR0b25FbGVtZW50PiwgYWdlbnQ6IEFnZW50LCBpc0Zhdm9yaXRlOiBib29sZWFuKSA9PiB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG5cbiAgICB0b2dnbGVGYXZvcml0ZShcbiAgICAgIGFnZW50LmlkLFxuICAgICAgdXBkYXRlZEFnZW50ID0+IHtcbiAgICAgICAgb25GYXZvcml0ZUFnZW50VXBkYXRlPy4odXBkYXRlZEFnZW50KVxuICAgICAgfSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIGlzRmF2b3JpdGVcbiAgICApXG4gIH1cblxuICBjb25zdCBoYW5kbGVDb25maXJtRGVsZXRlID0gYXN5bmMgKGNoYXQ6IHsgaWQ6IHN0cmluZyB9KSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGRlbGV0ZUFnZW50KGNoYXQuaWQpXG4gICAgICBoYW5kbGVTbmFja2JhclN1Y2Nlc3ModCgnY29uZmlybUFnZW50RGVsZXRlZCcsIHsgbnM6IFNFQ1RJT05TLmFibUFnZW50IH0pKVxuICAgICAgb25EZWxldGVBZ2VudD8uKGNoYXQuaWQpXG4gICAgICBzZXRBZ2VudFRvRGVsZXRlKG51bGwpXG4gICAgICBzZXRNZW51T3BlbkZvckFnZW50SWQobnVsbClcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgaGFuZGxlU25hY2tiYXJFcnJvcih0KCdlcnJvckFnZW50Q3JlYXRlZCcsIHsgbnM6IFNFQ1RJT05TLmFibUFnZW50IH0pKVxuICAgIH1cbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlQ2xpY2tPdXRzaWRlID0gKCkgPT4ge1xuICAgICAgaWYgKG1lbnVPcGVuRm9yQWdlbnRJZCkge1xuICAgICAgICBzZXRNZW51T3BlbkZvckFnZW50SWQobnVsbClcbiAgICAgIH1cbiAgICB9XG5cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGhhbmRsZUNsaWNrT3V0c2lkZSlcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCBoYW5kbGVDbGlja091dHNpZGUpXG4gICAgfVxuICB9LCBbbWVudU9wZW5Gb3JBZ2VudElkXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdteS1hZ2VudHMtc2Nyb2xsLWNvbnRhaW5lcicpXG4gICAgaWYgKCFjb250YWluZXIpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9XG5cbiAgICBjb25zdCBvblNjcm9sbCA9ICgpID0+IHtcbiAgICAgIGlmICghaGFzTW9yZUFnZW50cyB8fCBsb2FkaW5nTW9yZUFnZW50cykgcmV0dXJuXG4gICAgICBjb25zdCB7IHNjcm9sbFRvcCwgY2xpZW50SGVpZ2h0LCBzY3JvbGxIZWlnaHQgfSA9IGNvbnRhaW5lclxuICAgICAgY29uc3QgbmVhckJvdHRvbSA9IHNjcm9sbFRvcCArIGNsaWVudEhlaWdodCA+PSBzY3JvbGxIZWlnaHQgLSA0MFxuICAgICAgaWYgKG5lYXJCb3R0b20pIHtcbiAgICAgICAgaGFuZGxlTG9hZE1vcmUoKVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnRhaW5lci5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBvblNjcm9sbClcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY29udGFpbmVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIG9uU2Nyb2xsKVxuICAgIH1cbiAgfSwgW2hhc01vcmVBZ2VudHMsIGxvYWRpbmdNb3JlQWdlbnRzLCBvbkxvYWRNb3JlQWdlbnRzXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdteS1hZ2VudHMtc2Nyb2xsLWNvbnRhaW5lcicpXG4gICAgaWYgKCFjb250YWluZXIgfHwgIWhhc01vcmVBZ2VudHMgfHwgbG9hZGluZ01vcmVBZ2VudHMpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9XG5cbiAgICBpZiAoY29udGFpbmVyLnNjcm9sbEhlaWdodCA8PSBjb250YWluZXIuY2xpZW50SGVpZ2h0ICsgMSkge1xuICAgICAgaGFuZGxlTG9hZE1vcmUoKVxuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH0sIFtjdXN0b21BZ2VudHMubGVuZ3RoLCBoYXNNb3JlQWdlbnRzLCBsb2FkaW5nTW9yZUFnZW50cywgb25Mb2FkTW9yZUFnZW50c10pXG5cbiAgcmV0dXJuIChcbiAgICA8U0NNQU15QWdlbnRzQ29udGFpbmVyIGlkPVwibXktYWdlbnRzLXNjcm9sbC1jb250YWluZXJcIiAkaGFzQWdlbnRzPXshIWN1c3RvbUFnZW50cy5sZW5ndGh9PlxuICAgICAgPE1BSUFJc29sb2dvIC8+XG5cbiAgICAgIDxTQ01BQm9keT5cbiAgICAgICAge2N1c3RvbUFnZW50cy5sZW5ndGggPyAoXG4gICAgICAgICAgPFNDTUFUaXRsZVdyYXA+XG4gICAgICAgICAgICA8U0NNQVRpdGxlSW5uZXI+XG4gICAgICAgICAgICAgIDxTQ01BVGl0bGU+e3QoJ21hcmtldHBsYWNlLm15QWdlbnRzUmVhZHlUaXRsZScpfTwvU0NNQVRpdGxlPlxuICAgICAgICAgICAgPC9TQ01BVGl0bGVJbm5lcj5cbiAgICAgICAgICA8L1NDTUFUaXRsZVdyYXA+XG4gICAgICAgICkgOiBudWxsfVxuXG4gICAgICAgIHtjdXN0b21BZ2VudHMubGVuZ3RoID8gKFxuICAgICAgICAgIDxTQ01BQ2FyZHNPdXRlcj5cbiAgICAgICAgICAgIDxTQ01BQ2FyZHNSb3c+XG4gICAgICAgICAgICAgIHtjdXN0b21BZ2VudHMubWFwKGFnZW50ID0+IChcbiAgICAgICAgICAgICAgICA8U0NNQUNhcmRCdXR0b24ga2V5PXthZ2VudC5pZH0gdHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9eygpID0+IGhhbmRsZVVzZUFnZW50KGFnZW50KX0+XG4gICAgICAgICAgICAgICAgICA8U0NNQUNhcmRIZWFkZXI+XG4gICAgICAgICAgICAgICAgICAgIDxTQ01BQ2FyZFRvcFJvdz5cbiAgICAgICAgICAgICAgICAgICAgICA8U0NNQUNhcmRUaXRsZUVtb2ppIGFyaWEtaGlkZGVuPlxuICAgICAgICAgICAgICAgICAgICAgICAge2FnZW50LmVtb2ppPy50cmltKCkgPyBhZ2VudC5lbW9qaSA6ICdcXHUwMGEwJ31cbiAgICAgICAgICAgICAgICAgICAgICA8L1NDTUFDYXJkVGl0bGVFbW9qaT5cbiAgICAgICAgICAgICAgICAgICAgICB7Y2FuU2hvd01lbnUgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8U0NNQUtlYmFiQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXt0KCdtYXJrZXRwbGFjZS5jYXJkTWVudUFyaWFMYWJlbCcpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0TWVudU9wZW5Gb3JBZ2VudElkKHByZXYgPT4gKHByZXYgPT09IGFnZW50LmlkID8gbnVsbCA6IGFnZW50LmlkKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPE1lbnVEb3RzIGNvbG9yPVwiIzk5OVwiIHdpZHRoPXsxNX0gaGVpZ2h0PXsxNX0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvU0NNQUtlYmFiQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgICAgICA8L1NDTUFDYXJkVG9wUm93PlxuICAgICAgICAgICAgICAgICAgICA8U0NNQUNhcmRUaXRsZU5hbWU+e2FnZW50Lm5hbWV9PC9TQ01BQ2FyZFRpdGxlTmFtZT5cbiAgICAgICAgICAgICAgICAgIDwvU0NNQUNhcmRIZWFkZXI+XG4gICAgICAgICAgICAgICAgICA8U0NNQUNhcmRCb2R5PlxuICAgICAgICAgICAgICAgICAgICA8U0NNQUNhcmRJbnRyb1RleHQ+e25vcm1hbGl6ZVRleHQoYWdlbnQuaW50cm9kdWN0aW9uKX08L1NDTUFDYXJkSW50cm9UZXh0PlxuICAgICAgICAgICAgICAgICAgICA8U0NNQUNhcmRGb290ZXI+XG4gICAgICAgICAgICAgICAgICAgICAgPFNDTUFDYXJkVGV4dD57Z2V0Q3JlYXRlZEF0TGFiZWwoYWdlbnQpIHx8IHQoJ21hcmtldHBsYWNlLm15QWdlbnRzRmFsbGJhY2tEYXRlJyl9PC9TQ01BQ2FyZFRleHQ+XG4gICAgICAgICAgICAgICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e2FnZW50LmlzX2Zhdm9yaXRlID8gdCgnYWdlbnRzLnJlbW92ZUZhdm9yaXRlJykgOiB0KCdhZ2VudHMuYWRkRmF2b3JpdGUnKX0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8U0NNQUZhdm9yaXRlQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXthZ2VudC5pc19mYXZvcml0ZSA/IHQoJ2FnZW50cy5yZW1vdmVGYXZvcml0ZScpIDogdCgnYWdlbnRzLmFkZEZhdm9yaXRlJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICRhbHdheXNWaXNpYmxlPXshIWFnZW50LmlzX2Zhdm9yaXRlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtldmVudCA9PiBoYW5kbGVUb2dnbGVGYXZvcml0ZShldmVudCwgYWdlbnQsICEhYWdlbnQuaXNfZmF2b3JpdGUpfVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8U3RhclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPXsyMH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9ezIwfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPXthZ2VudC5pc19mYXZvcml0ZSA/ICcjRkZDNjI0JyA6ICcjYTZhNmE2J31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPXthZ2VudC5pc19mYXZvcml0ZSA/ICcjRkZDNjI0JyA6ICdub25lJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwic29saWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YWdlbnQuaXNfZmF2b3JpdGUgPyAnJyA6ICdzdGFyLWZhdm9yaXRlLWljb24nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9TQ01BRmF2b3JpdGVCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICAgICAgICA8L1NDTUFDYXJkRm9vdGVyPlxuICAgICAgICAgICAgICAgICAgPC9TQ01BQ2FyZEJvZHk+XG4gICAgICAgICAgICAgICAgICB7bWVudU9wZW5Gb3JBZ2VudElkID09PSBhZ2VudC5pZCAmJiBjYW5TaG93TWVudSA/IChcbiAgICAgICAgICAgICAgICAgICAgPFNDTUFDYXJkTWVudVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2V2ZW50ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxTQ01BQ2FyZE1lbnVJdGVtcz5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtjYW5EZWxldGUgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxTQ01BQ2FyZE1lbnVJdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0QWdlbnRUb0RlbGV0ZShhZ2VudClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3QoJ2RlbGV0ZUFnZW50JywgeyBuczogU0VDVElPTlMuYWJtQWdlbnQgfSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvU0NNQUNhcmRNZW51SXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgICAgICAgICAge2NhbkVkaXQgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxTQ01BQ2FyZE1lbnVJdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlT3BlbkVkaXRBZ2VudChhZ2VudClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3QoJ2VkaXRBZ2VudCcsIHsgbnM6IFNFQ1RJT05TLmFibUFnZW50IH0pfVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L1NDTUFDYXJkTWVudUl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgICAgICA8L1NDTUFDYXJkTWVudUl0ZW1zPlxuICAgICAgICAgICAgICAgICAgICA8L1NDTUFDYXJkTWVudT5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvU0NNQUNhcmRCdXR0b24+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC9TQ01BQ2FyZHNSb3c+XG4gICAgICAgICAgPC9TQ01BQ2FyZHNPdXRlcj5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8U0NNQUVtcHR5U3RhdGVSb290PlxuICAgICAgICAgICAgPFNDTUFFbXB0eVN0YXRlQ29sdW1uPlxuICAgICAgICAgICAgICA8U0NNQUVtcHR5U3RhdGVUaXRsZUJsb2NrPlxuICAgICAgICAgICAgICAgIDxTQ01BRW1wdHlTdGF0ZVRpdGxlPnt0KCdtYXJrZXRwbGFjZS5teUFnZW50c0VtcHR5U3RhdGVUaXRsZScpfTwvU0NNQUVtcHR5U3RhdGVUaXRsZT5cbiAgICAgICAgICAgICAgICA8U0NNQUVtcHR5U3RhdGVTdWJ0aXRsZT5cbiAgICAgICAgICAgICAgICAgIHtjYW5DcmVhdGVBZ2VudFxuICAgICAgICAgICAgICAgICAgICA/IHQoJ21hcmtldHBsYWNlLm15QWdlbnRzRW1wdHlTdGF0ZURlc2NyaXB0aW9uJylcbiAgICAgICAgICAgICAgICAgICAgOiB0KCdtYXJrZXRwbGFjZS5teUFnZW50c0VtcHR5U3RhdGVEZXNjcmlwdGlvbk5vUGVybScpfVxuICAgICAgICAgICAgICAgIDwvU0NNQUVtcHR5U3RhdGVTdWJ0aXRsZT5cbiAgICAgICAgICAgICAgPC9TQ01BRW1wdHlTdGF0ZVRpdGxlQmxvY2s+XG4gICAgICAgICAgICA8L1NDTUFFbXB0eVN0YXRlQ29sdW1uPlxuICAgICAgICAgICAge2NhbkNyZWF0ZUFnZW50ICYmIG9uR29Ub01haWFrZXIgPyAoXG4gICAgICAgICAgICAgIDxTQ01BRW1wdHlTdGF0ZUJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgb25DbGljaz17KCkgPT4gb25Hb1RvTWFpYWtlcigpfT5cbiAgICAgICAgICAgICAgICB7dCgnbWFya2V0cGxhY2UubXlBZ2VudHNFbXB0eVN0YXRlQnV0dG9uJyl9XG4gICAgICAgICAgICAgIDwvU0NNQUVtcHR5U3RhdGVCdXR0b24+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8L1NDTUFFbXB0eVN0YXRlUm9vdD5cbiAgICAgICAgKX1cbiAgICAgICAge2xvYWRpbmdNb3JlQWdlbnRzID8gKFxuICAgICAgICAgIDxTQ01BTG9hZE1vcmVXcmFwcGVyPlxuICAgICAgICAgICAgPExvYWRlciBzaXplPVwic21hbGxcIiAvPlxuICAgICAgICAgIDwvU0NNQUxvYWRNb3JlV3JhcHBlcj5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8L1NDTUFCb2R5PlxuICAgICAge2RlbGV0ZU1vZGFsQ2hhdCA/IChcbiAgICAgICAgPERlbGV0ZVF1ZXN0aW9uTW9kYWxcbiAgICAgICAgICBvbkNsb3NlPXsoKSA9PiBzZXRBZ2VudFRvRGVsZXRlKG51bGwpfVxuICAgICAgICAgIGhhbmRsZXJzPXt7XG4gICAgICAgICAgICBoYW5kbGVDb25maXJtQWN0aW9uOiBoYW5kbGVDb25maXJtRGVsZXRlLFxuICAgICAgICAgIH19XG4gICAgICAgICAgY2hhdD17ZGVsZXRlTW9kYWxDaGF0fVxuICAgICAgICAgIGFjdGlvbj1cImFnZW50XCJcbiAgICAgICAgLz5cbiAgICAgICkgOiBudWxsfVxuICAgIDwvU0NNQU15QWdlbnRzQ29udGFpbmVyPlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBLE9BQU9BLEtBQUssSUFBSUMsU0FBUyxFQUFFQyxPQUFPLEVBQUVDLFFBQVEsUUFBUSxPQUFPO0FBQzNELFNBQVNDLFFBQVEsUUFBUSwyQ0FBMkM7QUFDcEUsU0FBU0MsSUFBSSxRQUFRLHVDQUF1QztBQUM1RCxTQUFTQyxPQUFPLFFBQVEsOENBQThDO0FBQ3RFLFNBQVNDLGNBQWMsUUFBUSxlQUFlO0FBQzlDLFNBQVNDLGdCQUFnQixRQUFRLGlDQUFpQztBQUNsRSxTQUFTQyxPQUFPLFFBQVEsMkJBQTJCO0FBRW5ELFNBQVNDLFdBQVcsUUFBUSwyQ0FBMkM7QUFDdkUsU0FBU0Msa0JBQWtCLFFBQVEsc0RBQXNEO0FBQ3pGLFNBQVNDLG1CQUFtQixRQUFRLHlEQUF5RDtBQUM3RixTQUFTQyxRQUFRLFFBQVEsMkJBQTJCO0FBQ3BELFNBQVNDLE1BQU0sUUFBUSxvQkFBb0I7QUFDM0MsU0FBU0MsaUJBQWlCLFFBQVEsZ0JBQWdCO0FBQ2xELFNBQ0VDLFFBQVEsRUFDUkMsWUFBWSxFQUNaQyxjQUFjLEVBQ2RDLGNBQWMsRUFDZEMsY0FBYyxFQUNkQyxjQUFjLEVBQ2RDLGlCQUFpQixFQUNqQkMsWUFBWSxFQUNaQyxnQkFBZ0IsRUFDaEJDLGlCQUFpQixFQUNqQkMsa0JBQWtCLEVBQ2xCQyxZQUFZLEVBQ1pDLGtCQUFrQixFQUNsQkMsaUJBQWlCLEVBQ2pCQyxj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
@@ -0,0 +1,168 @@
1
+ import styled from 'styled-components';
2
+ export var SCMAMyAgentsContainer = styled.div.withConfig({
3
+ displayName: "ChatAIMyAgentsstyles__SCMAMyAgentsContainer",
4
+ componentId: "sc-1vnskh9-0"
5
+ })(["display:flex;flex-direction:column;align-items:center;gap:18px;width:100%;padding:12px 0 24px;height:100%;overflow-y:auto;overscroll-behavior-y:contain;justify-content:", ";"], function (props) {
6
+ return props.$hasAgents ? 'flex-start' : 'center';
7
+ });
8
+ export var SCMABackButton = styled.button.withConfig({
9
+ displayName: "ChatAIMyAgentsstyles__SCMABackButton",
10
+ componentId: "sc-1vnskh9-1"
11
+ })(["align-self:flex-start;border:none;background:transparent;padding:0 16px;color:#666;font-size:14px;font-weight:500;cursor:pointer;"]);
12
+ export var SCMAHeroGlow = styled.div.withConfig({
13
+ displayName: "ChatAIMyAgentsstyles__SCMAHeroGlow",
14
+ componentId: "sc-1vnskh9-2"
15
+ })(["width:94px;height:94px;position:relative;filter:blur(9.4px);opacity:0.9;"]);
16
+ export var SCMAHeroGlowVertical = styled.div.withConfig({
17
+ displayName: "ChatAIMyAgentsstyles__SCMAHeroGlowVertical",
18
+ componentId: "sc-1vnskh9-3"
19
+ })(["position:absolute;left:34.78px;top:0;width:24.44px;height:94px;background:linear-gradient(0deg,#4d3569 0%,#2d77bd 100%);"]);
20
+ export var SCMAHeroGlowHorizontal = styled.div.withConfig({
21
+ displayName: "ChatAIMyAgentsstyles__SCMAHeroGlowHorizontal",
22
+ componentId: "sc-1vnskh9-4"
23
+ })(["position:absolute;left:0;top:34.78px;width:94px;height:24.44px;background:linear-gradient(0deg,#4d3569 0%,#2d77bd 100%);"]);
24
+ export var SCMAHeroGlowDot = styled.div.withConfig({
25
+ displayName: "ChatAIMyAgentsstyles__SCMAHeroGlowDot",
26
+ componentId: "sc-1vnskh9-5"
27
+ })(["position:absolute;left:40.42px;top:40.42px;width:13.16px;height:13.16px;border-radius:50%;background:linear-gradient(0deg,#4d3569 0%,#2d77bd 100%);"]);
28
+ export var SCMAHeroGlowAccentDotTop = styled.div.withConfig({
29
+ displayName: "ChatAIMyAgentsstyles__SCMAHeroGlowAccentDotTop",
30
+ componentId: "sc-1vnskh9-6"
31
+ })(["position:absolute;left:67px;top:18px;width:7.52px;height:7.52px;border-radius:50%;background:linear-gradient(0deg,#4d3569 0%,#2d77bd 100%);"]);
32
+ export var SCMAHeroGlowAccentDotBottom = styled.div.withConfig({
33
+ displayName: "ChatAIMyAgentsstyles__SCMAHeroGlowAccentDotBottom",
34
+ componentId: "sc-1vnskh9-7"
35
+ })(["position:absolute;left:20px;top:66px;width:7.52px;height:7.52px;border-radius:50%;background:linear-gradient(0deg,#4d3569 0%,#2d77bd 100%);"]);
36
+
37
+ /** Ancho máximo ≈ 3 cards (216px) + gaps (8px) + padding horizontal del contenedor de cards */
38
+ var MY_AGENTS_GRID_MAX_WIDTH_PX = 696;
39
+ export var SCMABody = styled.div.withConfig({
40
+ displayName: "ChatAIMyAgentsstyles__SCMABody",
41
+ componentId: "sc-1vnskh9-8"
42
+ })(["display:flex;flex-direction:column;align-items:center;gap:8px;width:100%;max-width:min(100%,", "px);min-height:417px;"], MY_AGENTS_GRID_MAX_WIDTH_PX);
43
+ export var SCMATitleWrap = styled.div.withConfig({
44
+ displayName: "ChatAIMyAgentsstyles__SCMATitleWrap",
45
+ componentId: "sc-1vnskh9-9"
46
+ })(["display:flex;flex-direction:column;align-items:flex-start;gap:8px;align-self:stretch;"]);
47
+ export var SCMAActionsRow = styled.div.withConfig({
48
+ displayName: "ChatAIMyAgentsstyles__SCMAActionsRow",
49
+ componentId: "sc-1vnskh9-10"
50
+ })(["display:flex;align-items:center;align-self:flex-end;"]);
51
+ export var SCMATitleInner = styled.div.withConfig({
52
+ displayName: "ChatAIMyAgentsstyles__SCMATitleInner",
53
+ componentId: "sc-1vnskh9-11"
54
+ })(["display:flex;flex-direction:column;justify-content:center;align-items:center;gap:8px;align-self:stretch;"]);
55
+ export var SCMATitle = styled.h2.withConfig({
56
+ displayName: "ChatAIMyAgentsstyles__SCMATitle",
57
+ componentId: "sc-1vnskh9-12"
58
+ })(["width:100%;max-width:374px;margin:0;color:#20201f;text-align:center;font-family:'Work Sans',sans-serif;font-size:20px;font-weight:500;line-height:122%;letter-spacing:-0.2px;"]);
59
+ export var SCMACreateManualButton = styled.button.withConfig({
60
+ displayName: "ChatAIMyAgentsstyles__SCMACreateManualButton",
61
+ componentId: "sc-1vnskh9-13"
62
+ })(["display:flex;min-width:64px;padding:7px 12px;justify-content:flex-end;align-items:center;align-self:stretch;border-radius:4px;border:none;background:transparent;cursor:pointer;"]);
63
+ export var SCMACreateManualButtonText = styled.span.withConfig({
64
+ displayName: "ChatAIMyAgentsstyles__SCMACreateManualButtonText",
65
+ componentId: "sc-1vnskh9-14"
66
+ })(["text-align:center;font-family:'Work Sans',sans-serif;font-size:12px;font-style:normal;font-weight:400;line-height:14px;background:var(--Gradiente-1,linear-gradient(0deg,#4d3569 0%,#2d77bd 100%));background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;"]);
67
+ export var SCMACardsOuter = styled.div.withConfig({
68
+ displayName: "ChatAIMyAgentsstyles__SCMACardsOuter",
69
+ componentId: "sc-1vnskh9-15"
70
+ })(["display:flex;width:100%;padding:0 9px;align-items:flex-start;gap:10px;align-self:stretch;box-sizing:border-box;"]);
71
+ export var SCMACardsRow = styled.div.withConfig({
72
+ displayName: "ChatAIMyAgentsstyles__SCMACardsRow",
73
+ componentId: "sc-1vnskh9-16"
74
+ })(["display:grid;width:100%;grid-template-columns:repeat(auto-fill,216px);gap:8px;padding-bottom:24px;align-items:stretch;justify-content:center;"]);
75
+ export var SCMACardButton = styled.button.withConfig({
76
+ displayName: "ChatAIMyAgentsstyles__SCMACardButton",
77
+ componentId: "sc-1vnskh9-17"
78
+ })(["position:relative;display:flex;width:216px;height:100%;box-sizing:border-box;padding:12px;flex-direction:column;justify-content:flex-start;align-items:flex-start;border-radius:8px;border:1px solid #d9d9d9;background:#fff;cursor:pointer;text-align:left;font:inherit;color:inherit;:hover{cursor:pointer;box-shadow:0 4px 16px 0 rgba(111,121,136,0.08);}"]);
79
+ export var SCMACardHeader = styled.div.withConfig({
80
+ displayName: "ChatAIMyAgentsstyles__SCMACardHeader",
81
+ componentId: "sc-1vnskh9-18"
82
+ })(["display:flex;flex-direction:column;align-items:flex-start;align-self:stretch;gap:4px;"]);
83
+ export var SCMACardTopRow = styled.div.withConfig({
84
+ displayName: "ChatAIMyAgentsstyles__SCMACardTopRow",
85
+ componentId: "sc-1vnskh9-19"
86
+ })(["display:flex;justify-content:space-between;align-items:flex-start;align-self:stretch;gap:4px;min-height:1.4em;"]);
87
+ export var SCMACardTitleEmoji = styled.span.withConfig({
88
+ displayName: "ChatAIMyAgentsstyles__SCMACardTitleEmoji",
89
+ componentId: "sc-1vnskh9-20"
90
+ })(["flex-shrink:0;line-height:1.4;font-size:1em;min-width:1.4em;text-align:left;"]);
91
+ export var SCMACardTitleName = styled.span.withConfig({
92
+ displayName: "ChatAIMyAgentsstyles__SCMACardTitleName",
93
+ componentId: "sc-1vnskh9-21"
94
+ })(["align-self:stretch;width:100%;color:#20201f;font-family:'Work Sans',sans-serif;font-size:14px;font-weight:500;line-height:140%;letter-spacing:-0.21px;min-height:calc(2 * 1.4em);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;word-break:break-word;"]);
95
+ export var SCMAKebabButton = styled.button.withConfig({
96
+ displayName: "ChatAIMyAgentsstyles__SCMAKebabButton",
97
+ componentId: "sc-1vnskh9-22"
98
+ })(["width:15px;height:15px;border:none;background:transparent;padding:0;border-radius:4px;transform:rotate(-90deg);cursor:pointer;display:flex;align-items:center;justify-content:center;&:hover{background:#f0f0f0;}"]);
99
+ export var SCMAFavoriteButton = styled.button.withConfig({
100
+ displayName: "ChatAIMyAgentsstyles__SCMAFavoriteButton",
101
+ componentId: "sc-1vnskh9-23"
102
+ })(["display:flex;align-items:center;justify-content:center;width:20px;height:20px;flex-shrink:0;border:none;background:transparent;padding:0;cursor:pointer;opacity:", ";visibility:", ";pointer-events:", ";transition:opacity 160ms ease;&:hover .star-favorite-icon path[fill]{fill:#666666 !important;}&:hover .star-favorite-icon g[fill]{fill:#666666 !important;}&:hover .star-favorite-icon *{fill:#666666 !important;}", ":hover &{opacity:1;visibility:visible;pointer-events:auto;}"], function (_ref) {
103
+ var $alwaysVisible = _ref.$alwaysVisible;
104
+ return $alwaysVisible ? 1 : 0;
105
+ }, function (_ref2) {
106
+ var $alwaysVisible = _ref2.$alwaysVisible;
107
+ return $alwaysVisible ? 'visible' : 'hidden';
108
+ }, function (_ref3) {
109
+ var $alwaysVisible = _ref3.$alwaysVisible;
110
+ return $alwaysVisible ? 'auto' : 'none';
111
+ }, SCMACardButton);
112
+ export var SCMACardMenu = styled.div.withConfig({
113
+ displayName: "ChatAIMyAgentsstyles__SCMACardMenu",
114
+ componentId: "sc-1vnskh9-24"
115
+ })(["display:flex;padding:8px;flex-direction:column;align-items:flex-start;gap:16px;position:absolute;right:12px;bottom:9px;border-radius:8px;background:#fff;box-shadow:0 4px 9px 0 rgba(141,141,141,0.25);z-index:2;"]);
116
+ export var SCMACardMenuItems = styled.div.withConfig({
117
+ displayName: "ChatAIMyAgentsstyles__SCMACardMenuItems",
118
+ componentId: "sc-1vnskh9-25"
119
+ })(["display:flex;flex-direction:column;align-items:flex-start;"]);
120
+ export var SCMACardMenuItem = styled.button.withConfig({
121
+ displayName: "ChatAIMyAgentsstyles__SCMACardMenuItem",
122
+ componentId: "sc-1vnskh9-26"
123
+ })(["display:flex;padding:6px 8px;align-items:center;gap:8px;border-radius:4px;border:none;background:transparent;color:#20201f;font-family:'Work Sans',sans-serif;font-size:12px;font-weight:400;line-height:130%;cursor:pointer;width:100%;&:hover{background:#f0f0f0;}"]);
124
+ export var SCMACardBody = styled.div.withConfig({
125
+ displayName: "ChatAIMyAgentsstyles__SCMACardBody",
126
+ componentId: "sc-1vnskh9-27"
127
+ })(["display:flex;flex-direction:column;flex:1;min-height:0;justify-content:flex-start;align-items:flex-start;gap:4px;align-self:stretch;"]);
128
+ export var SCMACardFooter = styled.div.withConfig({
129
+ displayName: "ChatAIMyAgentsstyles__SCMACardFooter",
130
+ componentId: "sc-1vnskh9-28"
131
+ })(["display:flex;align-items:flex-end;justify-content:space-between;width:100%;"]);
132
+ export var SCMACardText = styled.span.withConfig({
133
+ displayName: "ChatAIMyAgentsstyles__SCMACardText",
134
+ componentId: "sc-1vnskh9-29"
135
+ })(["align-self:center;color:#666;font-family:'Work Sans',sans-serif;font-size:12px;font-weight:400;line-height:130%;"]);
136
+ export var SCMACardIntroText = styled(SCMACardText).withConfig({
137
+ displayName: "ChatAIMyAgentsstyles__SCMACardIntroText",
138
+ componentId: "sc-1vnskh9-30"
139
+ })(["min-height:calc(2 * 1.3em);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;word-break:break-word;"]);
140
+ export var SCMAEmptyStateRoot = styled.div.withConfig({
141
+ displayName: "ChatAIMyAgentsstyles__SCMAEmptyStateRoot",
142
+ componentId: "sc-1vnskh9-31"
143
+ })(["display:flex;height:417px;flex-direction:column;align-items:center;gap:24px;align-self:stretch;"]);
144
+ export var SCMAEmptyStateColumn = styled.div.withConfig({
145
+ displayName: "ChatAIMyAgentsstyles__SCMAEmptyStateColumn",
146
+ componentId: "sc-1vnskh9-32"
147
+ })(["display:flex;flex-direction:column;align-items:flex-start;gap:8px;align-self:stretch;"]);
148
+ export var SCMAEmptyStateTitleBlock = styled.div.withConfig({
149
+ displayName: "ChatAIMyAgentsstyles__SCMAEmptyStateTitleBlock",
150
+ componentId: "sc-1vnskh9-33"
151
+ })(["display:flex;flex-direction:column;justify-content:center;align-items:center;gap:8px;align-self:stretch;"]);
152
+ export var SCMAEmptyStateTitle = styled.h2.withConfig({
153
+ displayName: "ChatAIMyAgentsstyles__SCMAEmptyStateTitle",
154
+ componentId: "sc-1vnskh9-34"
155
+ })(["width:100%;max-width:374px;margin:0;color:#20201f;text-align:center;font-family:'Work Sans',sans-serif;font-size:20px;font-style:normal;font-weight:500;line-height:122%;letter-spacing:-0.2px;"]);
156
+ export var SCMAEmptyStateSubtitle = styled.p.withConfig({
157
+ displayName: "ChatAIMyAgentsstyles__SCMAEmptyStateSubtitle",
158
+ componentId: "sc-1vnskh9-35"
159
+ })(["align-self:stretch;margin:0;color:#666;text-align:center;font-family:'Work Sans',sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:140%;letter-spacing:-0.21px;"]);
160
+ export var SCMAEmptyStateButton = styled.button.withConfig({
161
+ displayName: "ChatAIMyAgentsstyles__SCMAEmptyStateButton",
162
+ componentId: "sc-1vnskh9-36"
163
+ })(["display:flex;min-width:80px;padding:10px 12px;justify-content:center;align-items:center;gap:8px;border-radius:4px;border:none;cursor:pointer;box-sizing:border-box;background:linear-gradient(0deg,#4d3569 0%,#2d77bd 100%);color:#fff;text-align:center;font-family:'Work Sans',sans-serif;font-size:14px;font-weight:400;line-height:16px;&:hover{opacity:0.92;}"]);
164
+ export var SCMALoadMoreWrapper = styled.div.withConfig({
165
+ displayName: "ChatAIMyAgentsstyles__SCMALoadMoreWrapper",
166
+ componentId: "sc-1vnskh9-37"
167
+ })(["display:flex;justify-content:center;align-items:center;width:100%;padding-bottom:24px;"]);
168
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJTQ01BTXlBZ2VudHNDb250YWluZXIiLCJkaXYiLCJ3aXRoQ29uZmlnIiwiZGlzcGxheU5hbWUiLCJjb21wb25lbnRJZCIsInByb3BzIiwiJGhhc0FnZW50cyIsIlNDTUFCYWNrQnV0dG9uIiwiYnV0dG9uIiwiU0NNQUhlcm9HbG93IiwiU0NNQUhlcm9HbG93VmVydGljYWwiLCJTQ01BSGVyb0dsb3dIb3Jpem9udGFsIiwiU0NNQUhlcm9HbG93RG90IiwiU0NNQUhlcm9HbG93QWNjZW50RG90VG9wIiwiU0NNQUhlcm9HbG93QWNjZW50RG90Qm90dG9tIiwiTVlfQUdFTlRTX0dSSURfTUFYX1dJRFRIX1BYIiwiU0NNQUJvZHkiLCJTQ01BVGl0bGVXcmFwIiwiU0NNQUFjdGlvbnNSb3ciLCJTQ01BVGl0bGVJbm5lciIsIlNDTUFUaXRsZSIsImgyIiwiU0NNQUNyZWF0ZU1hbnVhbEJ1dHRvbiIsIlNDTUFDcmVhdGVNYW51YWxCdXR0b25UZXh0Iiwic3BhbiIsIlNDTUFDYXJkc091dGVyIiwiU0NNQUNhcmRzUm93IiwiU0NNQUNhcmRCdXR0b24iLCJTQ01BQ2FyZEhlYWRlciIsIlNDTUFDYXJkVG9wUm93IiwiU0NNQUNhcmRUaXRsZUVtb2ppIiwiU0NNQUNhcmRUaXRsZU5hbWUiLCJTQ01BS2ViYWJCdXR0b24iLCJTQ01BRmF2b3JpdGVCdXR0b24iLCJfcmVmIiwiJGFsd2F5c1Zpc2libGUiLCJfcmVmMiIsIl9yZWYzIiwiU0NNQUNhcmRNZW51IiwiU0NNQUNhcmRNZW51SXRlbXMiLCJTQ01BQ2FyZE1lbnVJdGVtIiwiU0NNQUNhcmRCb2R5IiwiU0NNQUNhcmRGb290ZXIiLCJTQ01BQ2FyZFRleHQiLCJTQ01BQ2FyZEludHJvVGV4dCIsIlNDTUFFbXB0eVN0YXRlUm9vdCIsIlNDTUFFbXB0eVN0YXRlQ29sdW1uIiwiU0NNQUVtcHR5U3RhdGVUaXRsZUJsb2NrIiwiU0NNQUVtcHR5U3RhdGVUaXRsZSIsIlNDTUFFbXB0eVN0YXRlU3VidGl0bGUiLCJwIiwiU0NNQUVtcHR5U3RhdGVCdXR0b24iLCJTQ01BTG9hZE1vcmVXcmFwcGVyIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0NoYXRBSU15QWdlbnRzL0NoYXRBSU15QWdlbnRzLnN0eWxlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJ1xuXG5leHBvcnQgY29uc3QgU0NNQU15QWdlbnRzQ29udGFpbmVyID0gc3R5bGVkLmRpdjx7ICRoYXNBZ2VudHM6IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMThweDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDEycHggMCAyNHB4O1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG92ZXJzY3JvbGwtYmVoYXZpb3IteTogY29udGFpbjtcbiAganVzdGlmeS1jb250ZW50OiAke3Byb3BzID0+IChwcm9wcy4kaGFzQWdlbnRzID8gJ2ZsZXgtc3RhcnQnIDogJ2NlbnRlcicpfTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDTUFCYWNrQnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgcGFkZGluZzogMCAxNnB4O1xuICBjb2xvcjogIzY2NjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01BSGVyb0dsb3cgPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogOTRweDtcbiAgaGVpZ2h0OiA5NHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZpbHRlcjogYmx1cig5LjRweCk7XG4gIG9wYWNpdHk6IDAuOTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDTUFIZXJvR2xvd1ZlcnRpY2FsID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAzNC43OHB4O1xuICB0b3A6IDA7XG4gIHdpZHRoOiAyNC40NHB4O1xuICBoZWlnaHQ6IDk0cHg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgwZGVnLCAjNGQzNTY5IDAlLCAjMmQ3N2JkIDEwMCUpO1xuYFxuXG5leHBvcnQgY29uc3QgU0NNQUhlcm9HbG93SG9yaXpvbnRhbCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAzNC43OHB4O1xuICB3aWR0aDogOTRweDtcbiAgaGVpZ2h0OiAyNC40NHB4O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMGRlZywgIzRkMzU2OSAwJSwgIzJkNzdiZCAxMDAlKTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDTUFIZXJvR2xvd0RvdCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNDAuNDJweDtcbiAgdG9wOiA0MC40MnB4O1xuICB3aWR0aDogMTMuMTZweDtcbiAgaGVpZ2h0OiAxMy4xNnB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgwZGVnLCAjNGQzNTY5IDAlLCAjMmQ3N2JkIDEwMCUpO1xuYFxuXG5leHBvcnQgY29uc3QgU0NNQUhlcm9HbG93QWNjZW50RG90VG9wID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiA2N3B4O1xuICB0b3A6IDE4cHg7XG4gIHdpZHRoOiA3LjUycHg7XG4gIGhlaWdodDogNy41MnB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgwZGVnLCAjNGQzNTY5IDAlLCAjMmQ3N2JkIDEwMCUpO1xuYFxuXG5leHBvcnQgY29uc3QgU0NNQUhlcm9HbG93QWNjZW50RG90Qm90dG9tID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAyMHB4O1xuICB0b3A6IDY2cHg7XG4gIHdpZHRoOiA3LjUycHg7XG4gIGhlaWdodDogNy41MnB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgwZGVnLCAjNGQzNTY5IDAlLCAjMmQ3N2JkIDEwMCUpO1xuYFxuXG4vKiogQW5jaG8gbcOheGltbyDiiYggMyBjYXJkcyAoMjE2cHgpICsgZ2FwcyAoOHB4KSArIHBhZGRpbmcgaG9yaXpvbnRhbCBkZWwgY29udGVuZWRvciBkZSBjYXJkcyAqL1xuY29uc3QgTVlfQUdFTlRTX0dSSURfTUFYX1dJRFRIX1BYID0gNjk2XG5cbmV4cG9ydCBjb25zdCBTQ01BQm9keSA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiBtaW4oMTAwJSwgJHtNWV9BR0VOVFNfR1JJRF9NQVhfV0lEVEhfUFh9cHgpO1xuICBtaW4taGVpZ2h0OiA0MTdweDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDTUFUaXRsZVdyYXAgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZ2FwOiA4cHg7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01BQWN0aW9uc1JvdyA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuYFxuXG5leHBvcnQgY29uc3QgU0NNQVRpdGxlSW5uZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01BVGl0bGUgPSBzdHlsZWQuaDJgXG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDM3NHB4O1xuICBtYXJnaW46IDA7XG4gIGNvbG9yOiAjMjAyMDFmO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMTIyJTtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjJweDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDTUFDcmVhdGVNYW51YWxCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICBkaXNwbGF5OiBmbGV4O1xuICBtaW4td2lkdGg6IDY0cHg7XG4gIHBhZGRpbmc6IDdweCAxMnB4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbmBcblxuZXhwb3J0IGNvbnN0IFNDTUFDcmVhdGVNYW51YWxCdXR0b25UZXh0ID0gc3R5bGVkLnNwYW5gXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1mYW1pbHk6ICdXb3JrIFNhbnMnLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDE0cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLUdyYWRpZW50ZS0xLCBsaW5lYXItZ3JhZGllbnQoMGRlZywgIzRkMzU2OSAwJSwgIzJkNzdiZCAxMDAlKSk7XG4gIGJhY2tncm91bmQtY2xpcDogdGV4dDtcbiAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB0cmFuc3BhcmVudDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDTUFDYXJkc091dGVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDAgOXB4O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZ2FwOiAxMHB4O1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuYFxuXG5leHBvcnQgY29uc3QgU0NNQUNhcmRzUm93ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZ3JpZDtcbiAgd2lkdGg6IDEwMCU7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgMjE2cHgpO1xuICBnYXA6IDhweDtcbiAgcGFkZGluZy1ib3R0b206IDI0cHg7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbmBcblxuZXhwb3J0IGNvbnN0IFNDTUFDYXJkQnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMjE2cHg7XG4gIGhlaWdodDogMTAwJTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcGFkZGluZzogMTJweDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZDlkOWQ5O1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIGNvbG9yOiBpbmhlcml0O1xuICA6aG92ZXIge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3gtc2hhZG93OiAwIDRweCAxNnB4IDAgcmdiYSgxMTEsIDEyMSwgMTM2LCAwLjA4KTtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NNQUNhcmRIZWFkZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgZ2FwOiA0cHg7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01BQ2FyZFRvcFJvdyA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIGdhcDogNHB4O1xuICBtaW4taGVpZ2h0OiAxLjRlbTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDTUFDYXJkVGl0bGVFbW9qaSA9IHN0eWxlZC5zcGFuYFxuICBmbGV4LXNocmluazogMDtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgZm9udC1zaXplOiAxZW07XG4gIG1pbi13aWR0aDogMS40ZW07XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01BQ2FyZFRpdGxlTmFtZSA9IHN0eWxlZC5zcGFuYFxuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICB3aWR0aDogMTAwJTtcbiAgY29sb3I6ICMyMDIwMWY7XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMTQwJTtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjIxcHg7XG4gIG1pbi1oZWlnaHQ6IGNhbGMoMiAqIDEuNGVtKTtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01BS2ViYWJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICB3aWR0aDogMTVweDtcbiAgaGVpZ2h0OiAxNXB4O1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNmMGYwZjA7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDTUFGYXZvcml0ZUJ1dHRvbiA9IHN0eWxlZC5idXR0b248eyAkYWx3YXlzVmlzaWJsZT86IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBmbGV4LXNocmluazogMDtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgcGFkZGluZzogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvcGFjaXR5OiAkeyh7ICRhbHdheXNWaXNpYmxlIH0pID0+ICgkYWx3YXlzVmlzaWJsZSA/IDEgOiAwKX07XG4gIHZpc2liaWxpdHk6ICR7KHsgJGFsd2F5c1Zpc2libGUgfSkgPT4gKCRhbHdheXNWaXNpYmxlID8gJ3Zpc2libGUnIDogJ2hpZGRlbicpfTtcbiAgcG9pbnRlci1ldmVudHM6ICR7KHsgJGFsd2F5c1Zpc2libGUgfSkgPT4gKCRhbHdheXNWaXNpYmxlID8gJ2F1dG8nIDogJ25vbmUnKX07XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMTYwbXMgZWFzZTtcblxuICAmOmhvdmVyIC5zdGFyLWZhdm9yaXRlLWljb24gcGF0aFtmaWxsXSB7XG4gICAgZmlsbDogIzY2NjY2NiAhaW1wb3J0YW50O1xuICB9XG5cbiAgJjpob3ZlciAuc3Rhci1mYXZvcml0ZS1pY29uIGdbZmlsbF0ge1xuICAgIGZpbGw6ICM2NjY2NjYgIWltcG9ydGFudDtcbiAgfVxuXG4gICY6aG92ZXIgLnN0YXItZmF2b3JpdGUtaWNvbiAqIHtcbiAgICBmaWxsOiAjNjY2NjY2ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAke1NDTUFDYXJkQnV0dG9ufTpob3ZlciAmIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDTUFDYXJkTWVudSA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBhZGRpbmc6IDhweDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGdhcDogMTZweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMTJweDtcbiAgYm90dG9tOiA5cHg7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgYm94LXNoYWRvdzogMCA0cHggOXB4IDAgcmdiYSgxNDEsIDE0MSwgMTQxLCAwLjI1KTtcbiAgei1pbmRleDogMjtcbmBcblxuZXhwb3J0IGNvbnN0IFNDTUFDYXJkTWVudUl0ZW1zID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01BQ2FyZE1lbnVJdGVtID0gc3R5bGVkLmJ1dHRvbmBcbiAgZGlzcGxheTogZmxleDtcbiAgcGFkZGluZzogNnB4IDhweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICMyMDIwMWY7XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMTMwJTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB3aWR0aDogMTAwJTtcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2YwZjBmMDtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NNQUNhcmRCb2R5ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZmxleDogMTtcbiAgbWluLWhlaWdodDogMDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZ2FwOiA0cHg7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01BQ2FyZEZvb3RlciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICB3aWR0aDogMTAwJTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDTUFDYXJkVGV4dCA9IHN0eWxlZC5zcGFuYFxuICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gIGNvbG9yOiAjNjY2O1xuICBmb250LWZhbWlseTogJ1dvcmsgU2FucycsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEzMCU7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01BQ2FyZEludHJvVGV4dCA9IHN0eWxlZChTQ01BQ2FyZFRleHQpYFxuICAvKiBSZXNlcnZhIGZpamEgMiBsw61uZWFzIChtaXNtYSBsw7NnaWNhIHF1ZSBlbCB0w610dWxvKSAqL1xuICBtaW4taGVpZ2h0OiBjYWxjKDIgKiAxLjNlbSk7XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuYFxuXG5leHBvcnQgY29uc3QgU0NNQUVtcHR5U3RhdGVSb290ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgaGVpZ2h0OiA0MTdweDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAyNHB4O1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuYFxuXG5leHBvcnQgY29uc3QgU0NNQUVtcHR5U3RhdGVDb2x1bW4gPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZ2FwOiA4cHg7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01BRW1wdHlTdGF0ZVRpdGxlQmxvY2sgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01BRW1wdHlTdGF0ZVRpdGxlID0gc3R5bGVkLmgyYFxuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAzNzRweDtcbiAgbWFyZ2luOiAwO1xuICBjb2xvcjogIzIwMjAxZjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LWZhbWlseTogJ1dvcmsgU2FucycsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMTIyJTtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjJweDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDTUFFbXB0eVN0YXRlU3VidGl0bGUgPSBzdHlsZWQucGBcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgbWFyZ2luOiAwO1xuICBjb2xvcjogIzY2NjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LWZhbWlseTogJ1dvcmsgU2FucycsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMTQwJTtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjIxcHg7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01BRW1wdHlTdGF0ZUJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1pbi13aWR0aDogODBweDtcbiAgcGFkZGluZzogMTBweCAxMnB4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm9yZGVyOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgwZGVnLCAjNGQzNTY5IDAlLCAjMmQ3N2JkIDEwMCUpO1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LWZhbWlseTogJ1dvcmsgU2FucycsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDE2cHg7XG5cbiAgJjpob3ZlciB7XG4gICAgb3BhY2l0eTogMC45MjtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NNQUxvYWRNb3JlV3JhcHBlciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZy1ib3R0b206IDI0cHg7XG5gXG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLE1BQU0sTUFBTSxtQkFBbUI7QUFFdEMsT0FBTyxJQUFNQyxxQkFBcUIsR0FBR0QsTUFBTSxDQUFDRSxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsc0xBVTFCLFVBQUFDLEtBQUs7RUFBQSxPQUFLQSxLQUFLLENBQUNDLFVBQVUsR0FBRyxZQUFZLEdBQUcsUUFBUTtBQUFBLENBQUMsQ0FDekU7QUFFRCxPQUFPLElBQU1DLGNBQWMsR0FBR1IsTUFBTSxDQUFDUyxNQUFNLENBQUFOLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEseUlBUzFDO0FBRUQsT0FBTyxJQUFNSyxZQUFZLEdBQUdWLE1BQU0sQ0FBQ0UsR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLGdGQU1yQztBQUVELE9BQU8sSUFBTU0sb0JBQW9CLEdB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