@projectcor/maia-components 2.11.22 → 2.11.23-0

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 (47) hide show
  1. package/lib/components/atoms/ApprovalBox/ApprovalBox.styles.js +6 -5
  2. package/lib/components/atoms/icons/MaiaStoreIcon.js +31 -0
  3. package/lib/components/atoms/icons/MyAgentsNavIcon.js +51 -0
  4. package/lib/components/atoms/icons/index.js +3 -1
  5. package/lib/components/molecules/ChatAIContent/ChatAIContent.js +24 -5
  6. package/lib/components/molecules/ChatAIHome/ChatAIHome.js +26 -61
  7. package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.js +130 -0
  8. package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.styles.js +91 -0
  9. package/lib/components/molecules/ChatAIHome/styles.js +37 -43
  10. package/lib/components/molecules/ChatAIMessages/ChatAICreateAgentActions.js +137 -0
  11. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +58 -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 +184 -14
  16. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +20 -42
  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 +328 -0
  20. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.styles.js +178 -0
  21. package/lib/components/molecules/ChatFooter/ChatFooter.js +4 -3
  22. package/lib/components/molecules/Sidebar/Sidebar.js +138 -198
  23. package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +123 -0
  24. package/lib/components/molecules/Sidebar/Sidebar.styles.js +13 -1
  25. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +99 -52
  26. package/lib/hooks/index.js +4 -1
  27. package/lib/hooks/useAgentSuggestions.js +60 -0
  28. package/lib/hooks/useChatManager/useChatManager.interface.js +1 -1
  29. package/lib/hooks/useChatManager/useChatManager.js +184 -79
  30. package/lib/hooks/useEvent.js +5 -2
  31. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.interface.js +1 -1
  32. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +19 -7
  33. package/lib/lang/br/index.js +74 -9
  34. package/lib/lang/en/index.js +74 -9
  35. package/lib/lang/es/index.js +72 -7
  36. package/lib/lang/fr/index.js +57 -4
  37. package/lib/services/maia/Agents/fetchAgentDetail.js +122 -0
  38. package/lib/services/maia/Agents/getAgentById.js +9 -5
  39. package/lib/services/maia/Agents/getAgentSuggestions.js +44 -0
  40. package/lib/services/maia/Agents/getAgents.js +9 -10
  41. package/lib/services/maia/Orchestrator/orchestrator.js +29 -22
  42. package/lib/services/utils/mapChatMessages.js +2 -1
  43. package/lib/types/AgentSuggestion.js +2 -0
  44. package/lib/types/Chat.js +1 -1
  45. package/lib/types/agent.js +1 -1
  46. package/lib/types/agentModal.js +1 -1
  47. package/package.json +1 -1
@@ -0,0 +1,328 @@
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, SCMAFavoriteStarWrap, SCMACardFooterDate, 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(SCMACardFooterDate, {
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(SCMAFavoriteStarWrap, {
255
+ children: /*#__PURE__*/_jsx(Star, {
256
+ width: 16,
257
+ height: 16,
258
+ color: agent.is_favorite ? '#FFC624' : '#999',
259
+ fill: agent.is_favorite ? '#FFC624' : 'none',
260
+ variant: "solid",
261
+ className: agent.is_favorite ? '' : 'star-favorite-icon'
262
+ })
263
+ })
264
+ })
265
+ })]
266
+ })]
267
+ }), menuOpenForAgentId === agent.id && canShowMenu ? /*#__PURE__*/_jsx(SCMACardMenu, {
268
+ onClick: function onClick(event) {
269
+ event.preventDefault();
270
+ event.stopPropagation();
271
+ },
272
+ children: /*#__PURE__*/_jsxs(SCMACardMenuItems, {
273
+ children: [canDelete ? /*#__PURE__*/_jsx(SCMACardMenuItem, {
274
+ type: "button",
275
+ onClick: function onClick() {
276
+ setAgentToDelete(agent);
277
+ },
278
+ children: t('deleteAgent', {
279
+ ns: SECTIONS.abmAgent
280
+ })
281
+ }) : null, canEdit ? /*#__PURE__*/_jsx(SCMACardMenuItem, {
282
+ type: "button",
283
+ onClick: function onClick() {
284
+ handleOpenEditAgent(agent);
285
+ },
286
+ children: t('editAgent', {
287
+ ns: SECTIONS.abmAgent
288
+ })
289
+ }) : null]
290
+ })
291
+ }) : null]
292
+ }, agent.id);
293
+ })
294
+ })
295
+ }) : /*#__PURE__*/_jsxs(SCMAEmptyStateRoot, {
296
+ children: [/*#__PURE__*/_jsx(SCMAEmptyStateColumn, {
297
+ children: /*#__PURE__*/_jsxs(SCMAEmptyStateTitleBlock, {
298
+ children: [/*#__PURE__*/_jsx(SCMAEmptyStateTitle, {
299
+ children: t('marketplace.myAgentsEmptyStateTitle')
300
+ }), /*#__PURE__*/_jsx(SCMAEmptyStateSubtitle, {
301
+ children: canCreateAgent ? t('marketplace.myAgentsEmptyStateDescription') : t('marketplace.myAgentsEmptyStateDescriptionNoPerm')
302
+ })]
303
+ })
304
+ }), canCreateAgent && onGoToMaiaker ? /*#__PURE__*/_jsx(SCMAEmptyStateButton, {
305
+ type: "button",
306
+ onClick: function onClick() {
307
+ return onGoToMaiaker();
308
+ },
309
+ children: t('marketplace.myAgentsEmptyStateButton')
310
+ }) : null]
311
+ }), loadingMoreAgents ? /*#__PURE__*/_jsx(SCMALoadMoreWrapper, {
312
+ children: /*#__PURE__*/_jsx(Loader, {
313
+ size: "small"
314
+ })
315
+ }) : null]
316
+ }), deleteModalChat ? /*#__PURE__*/_jsx(DeleteQuestionModal, {
317
+ onClose: function onClose() {
318
+ return setAgentToDelete(null);
319
+ },
320
+ handlers: {
321
+ handleConfirmAction: handleConfirmDelete
322
+ },
323
+ chat: deleteModalChat,
324
+ action: "agent"
325
+ }) : null]
326
+ });
327
+ };
328
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VTdGF0ZSIsIk1lbnVEb3RzIiwiU3RhciIsIlRvb2x0aXAiLCJ1c2VUcmFuc2xhdGlvbiIsInVzZUdsb2JhbENvbnRleHQiLCJ1c2VVc2VyIiwiZGVsZXRlQWdlbnQiLCJ1c2VTbmFja0Jhck1hbmFnZXIiLCJEZWxldGVRdWVzdGlvbk1vZGFsIiwiU0VDVElPTlMiLCJMb2FkZXIiLCJ1c2VUb2dnbGVGYXZvcml0ZSIsIlNDTUFCb2R5IiwiU0NNQUNhcmRCb2R5IiwiU0NNQUNhcmRCdXR0b24iLCJTQ01BQ2FyZEZvb3RlciIsIlNDTUFDYXJkSGVhZGVyIiwiU0NNQUNhcmRUb3BSb3ciLCJTQ01BQ2FyZEludHJvVGV4dCIsIlNDTUFDYXJkTWVudSIsIlNDTUFDYXJkTWVudUl0ZW0iLCJTQ01BQ2FyZE1lbnVJdGVtcyIsIlNDTUFGYXZvcml0ZUJ1dHRvbiIsIlNDTUFGYXZvcml0ZVN0YXJXcmFwIiwiU0NNQUNhcmRGb290ZXJEYXRlIiwiU0NNQUNhcmRUaXRsZUVtb2ppIiwiU0NNQUNhcmRUaXRsZU5hbWUiLCJTQ01BQ2FyZHNPdXRlciIsIlNDTUFDYXJkc1JvdyIsIlNDTUFFbXB0eVN0YXRlUm9vdCIsIlNDTUFFbXB0eVN0YXRlQ29sdW1uIiwiU0NNQUVtcHR5U3RhdGVUaXRsZUJsb2NrIiwiU0NNQUVtcHR5U3RhdGVUaXRsZSIsIlNDTUFFbXB0eVN0YXRlU3VidGl0bGUiLCJTQ01BRW1wdHlTdGF0ZUJ1dHRvbiIsIlNDTUFLZWJhYkJ1dHRvbiIsIlNDTUFMb2FkTW9yZVdyYXBwZXIiLCJTQ01BTXlBZ2VudHNDb250YWluZXIiLCJTQ01BVGl0bGUiLCJTQ01BVGl0bGVJbm5lciIsIlNDTUFUaXRsZVdyYXAiLCJNQUlBSXNvbG9nbyIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJDaGF0QUlNeUFnZW50cyIsIl9yZWYiLCJfdXNlciRwZXJtaXNzaW9ucyIsIm9uQmFjayIsImFnZW50cyIsIm9uRGVsZXRlQWdlbnQiLCJvbkZhdm9yaXRlQWdlbnRVcGRhdGUiLCJfcmVmJGhhc01vcmVBZ2VudHMiLCJoYXNNb3JlQWdlbnRzIiwiX3JlZiRsb2FkaW5nTW9yZUFnZW50IiwibG9hZGluZ01vcmVBZ2VudHMiLCJvbkxvYWRNb3JlQWdlbnRzIiwib25Hb1RvTWFpYWtlciIsIl91c2VUcmFuc2xhdGlvbiIsImNoYXRBSSIsImFibUFnZW50IiwidCIsInVzZXIiLCJfdXNlR2xvYmFsQ29udGV4dCIsInNlbGVjdEFnZW50Iiwic2V0UHJvamVjdCIsInNldENsaWVudCIsIl91c2VTbmFja0Jhck1hbmFnZXIiLCJoYW5kbGVTbmFja2JhclN1Y2Nlc3MiLCJoYW5kbGVTbmFja2JhckVycm9yIiwiY3VzdG9tQWdlbnRzIiwiZmlsdGVyIiwiYWdlbnQiLCJ0eXBlIiwiaXNfZGVsZXRlZCIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsIm1lbnVPcGVuRm9yQWdlbnRJZCIsInNldE1lbnVPcGVuRm9yQWdlbnRJZCIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiYWdlbnRUb0RlbGV0ZSIsInNldEFnZW50VG9EZWxldGUiLCJ1c2VyUGVybWlzc2lvbnMiLCJwZXJtaXNzaW9ucyIsImFpX2FnZW50cyIsImNhbkNyZWF0ZUFnZW50IiwiY3JlYXRlIiwid2luZG93IiwiTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UUyIsImNhbkVkaXQiLCJlZGl0IiwiY2FuRGVsZXRlIiwiY2FuU2hvd01lbnUiLCJfdXNlVG9nZ2xlRmF2b3JpdGUiLCJ0b2dnbGVGYXZvcml0ZSIsImhhbmRsZUxvYWRNb3JlIiwiZGVsZXRlTW9kYWxDaGF0IiwidGl0bGUiLCJuYW1lIiwiaWQiLCJoYW5kbGVVc2VBZ2VudCIsIm5vcm1hbGl6ZVRleHQiLCJ2YWx1ZSIsIkFycmF5IiwiaXNBcnJheSIsImdldENyZWF0ZWRBdExhYmVsIiwiY3JlYXRlZEF0IiwiY3JlYXRlZF9hdCIsImNyZWF0ZWRBdERhdGUiLCJEYXRlIiwiTnVtYmVyIiwiaXNOYU4iLCJnZXRUaW1lIiwiZGlmZk1zIiwibm93IiwiZGF5TXMiLCJkYXlzIiwiTWF0aCIsIm1heCIsImZsb29yIiwiaGFuZGxlT3BlbkVkaXRBZ2VudCIsImRvY3VtZW50IiwiZGlzcGF0Y2hFdmVudCIsIkN1c3RvbUV2ZW50IiwiZGV0YWlsIiwiYWdlbnRWYWx1ZXMiLCJ2YWx1ZXMiLCJpc0VkaXRpbmciLCJrbm93bGVkZ2UiLCJnZW5lcmFsIiwiaXNPcGVuIiwiaGFuZGxlVG9nZ2xlRmF2b3JpdGUiLCJldmVudCIsImlzRmF2b3JpdGUiLCJwcmV2ZW50RGVmYXVsdCIsInN0b3BQcm9wYWdhdGlvbiIsInVwZGF0ZWRBZ2VudCIsInVuZGVmaW5lZCIsImhhbmRsZUNvbmZpcm1EZWxldGUiLCJfcmVmMiIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwiY2hhdCIsIl90Iiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJucyIsInN0b3AiLCJfeCIsImFwcGx5IiwiYXJndW1lbnRzIiwiaGFuZGxlQ2xpY2tPdXRzaWRlIiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJjb250YWluZXIiLCJnZXRFbGVtZW50QnlJZCIsIm9uU2Nyb2xsIiwic2Nyb2xsVG9wIiwiY2xpZW50SGVpZ2h0Iiwic2Nyb2xsSGVpZ2h0IiwibmVhckJvdHRvbSIsImxlbmd0aCIsIiRoYXNBZ2VudHMiLCJjaGlsZHJlbiIsIm1hcCIsIl9hZ2VudCRlbW9qaSIsIm9uQ2xpY2siLCJlbW9qaSIsInRyaW0iLCJjb2xvciIsIndpZHRoIiwiaGVpZ2h0IiwiaW50cm9kdWN0aW9uIiwiaXNfZmF2b3JpdGUiLCIkYWx3YXlzVmlzaWJsZSIsImZpbGwiLCJ2YXJpYW50IiwiY2xhc3NOYW1lIiwic2l6ZSIsIm9uQ2xvc2UiLCJoYW5kbGVycyIsImhhbmRsZUNvbmZpcm1BY3Rpb24iLCJhY3Rpb24iXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEFJTXlBZ2VudHMvQ2hhdEFJTXlBZ2VudHMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBNZW51RG90cyB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL01lbnVEb3RzJ1xuaW1wb3J0IHsgU3RhciB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL1N0YXInXG5pbXBvcnQgeyBUb29sdGlwIH0gZnJvbSAnQHByb2plY3Rjb3IvdG9vbHRpcHYyL2xpYi9jb21wb25lbnRzL1Rvb2x0aXAnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5pbXBvcnQgeyB1c2VHbG9iYWxDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9nbG9iYWwtY29udGV4dCdcbmltcG9ydCB7IHVzZVVzZXIgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2Nvci11c2VyJ1xuaW1wb3J0IHsgQWdlbnQgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9hZ2VudCdcbmltcG9ydCB7IGRlbGV0ZUFnZW50IH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbWFpYS9BZ2VudHMvZGVsZXRlQWdlbnQnXG5pbXBvcnQgeyB1c2VTbmFja0Jhck1hbmFnZXIgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VTbmFja0Jhck1hbmFnZXIvdXNlU25hY2tCYXJNYW5hZ2VyJ1xuaW1wb3J0IHsgRGVsZXRlUXVlc3Rpb25Nb2RhbCB9IGZyb20gJy4uLy4uL29yZ2FuaXNtcy9EZWxldGVRdWVzdGlvbk1vZGFsL0RlbGV0ZVF1ZXN0aW9uTW9kYWwnXG5pbXBvcnQgeyBTRUNUSU9OUyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9jb25maWcnXG5pbXBvcnQgeyBMb2FkZXIgfSBmcm9tICcuLi8uLi9hdG9tcy9Mb2FkZXInXG5pbXBvcnQgeyB1c2VUb2dnbGVGYXZvcml0ZSB9IGZyb20gJy4uLy4uLy4uL2hvb2tzJ1xuaW1wb3J0IHtcbiAgU0NNQUJvZHksXG4gIFNDTUFDYXJkQm9keSxcbiAgU0NNQUNhcmRCdXR0b24sXG4gIFNDTUFDYXJkRm9vdGVyLFxuICBTQ01BQ2FyZEhlYWRlcixcbiAgU0NNQUNhcmRUb3BSb3csXG4gIFNDTUFDYXJkSW50cm9UZXh0LFxuICBTQ01BQ2FyZE1lbnUsXG4gIFNDTUFDYXJkTWVudUl0ZW0sXG4gIFNDTUFDYXJkTWVudUl0ZW1zLFxuICBTQ01BRmF2b3JpdGVCdXR0b24sXG4gIFNDTUFGYXZvcml0ZVN0YXJXcmFwLFxuICBTQ01BQ2FyZEZvb3RlckRhdGUsXG4gIFNDTUFDYXJkVGl0bGVFbW9qaSxcbiAgU0NNQUNhcmRUaXRsZU5hbWUsXG4gIFNDTUFDYXJkc091dGVyLFxuICBTQ01BQ2FyZHNSb3csXG4gIFNDTUFFbXB0eVN0YXRlUm9vdCxcbiAgU0NNQUVtcHR5U3RhdGVDb2x1bW4sXG4gIFNDTUFFbXB0eVN0YXRlVGl0bGVCbG9jayxcbiAgU0NNQUVtcHR5U3RhdGVUaXRsZSxcbiAgU0NNQUVtcHR5U3RhdGVTdWJ0aXRsZSxcbiAgU0NNQUVtcHR5U3RhdGVCdXR0b24sXG4gIFNDTUFLZWJhYkJ1dHRvbixcbiAgU0NNQUxvYWRNb3JlV3JhcHBlcixcbiAgU0NNQU15QWdlbnRzQ29udGFpbmVyLFxuICBTQ01BVGl0bGUsXG4gIFNDTUFUaXRsZUlubmVyLFxuICBTQ01BVGl0bGVXcmFwLFxufSBmcm9tICcuL0NoYXRBSU15QWdlbnRzLnN0eWxlcydcbmltcG9ydCB7IE1BSUFJc29sb2dvIH0gZnJvbSAnLi4vLi4vYXRvbXMvaWNvbnMnXG5cbnR5cGUgQ2hhdEFJTXlBZ2VudHNQcm9wcyA9IHtcbiAgb25CYWNrOiAoKSA9PiB2b2lkXG4gIGFnZW50czogQWdlbnRbXVxuICBvbkRlbGV0ZUFnZW50PzogKGFnZW50SWQ6IHN0cmluZykgPT4gdm9pZFxuICBvbkZhdm9yaXRlQWdlbnRVcGRhdGU/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+XG4gICAgICAgICAgICAgICAgICAgICAgPFNDTUFDYXJkRm9vdGVyRGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtnZXRDcmVhdGVkQXRMYWJlbChhZ2VudCkgfHwgdCgnbWFya2V0cGxhY2UubXlBZ2VudHNGYWxsYmFja0RhdGUnKX1cbiAgICAgICAgICAgICAgICAgICAgICA8L1NDTUFDYXJkRm9vdGVyRGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICA8VG9vbHRpcCB0aXRsZT17YWdlbnQuaXNfZmF2b3JpdGUgPyB0KCdhZ2VudHMucmVtb3ZlRmF2b3JpdGUnKSA6IHQoJ2FnZW50cy5hZGRGYXZvcml0ZScpfT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxTQ01BRmF2b3JpdGVCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2FnZW50LmlzX2Zhdm9yaXRlID8gdCgnYWdlbnRzLnJlbW92ZUZhdm9yaXRlJykgOiB0KCdhZ2VudHMuYWRkRmF2b3JpdGUnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgJGFsd2F5c1Zpc2libGU9eyEhYWdlbnQuaXNfZmF2b3JpdGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2V2ZW50ID0+IGhhbmRsZVRvZ2dsZUZhdm9yaXRlKGV2ZW50LCBhZ2VudCwgISFhZ2VudC5pc19mYXZvcml0ZSl9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxTQ01BRmF2b3JpdGVTdGFyV3JhcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U3RhclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9ezE2fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PXsxNn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPXthZ2VudC5pc19mYXZvcml0ZSA/ICcjRkZDNjI0JyA6ICcjOTk5J31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9e2FnZW50LmlzX2Zhdm9yaXRlID8gJyNGRkM2MjQnIDogJ25vbmUnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cInNvbGlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YWdlbnQuaXNfZmF2b3JpdGUgPyAnJyA6ICdzdGFyLWZhdm9yaXRlLWljb24nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvU0NNQUZhdm9yaXRlU3RhcldyYXA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1NDTUFGYXZvcml0ZUJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgICAgIDwvU0NNQUNhcmRGb290ZXI+XG4gICAgICAgICAgICAgICAgICA8L1NDTUFDYXJkQm9keT5cbiAgICAgICAgICAgICAgICAgIHttZW51T3BlbkZvckFnZW50SWQgPT09IGFnZW50LmlkICYmIGNhblNob3dNZW51ID8gKFxuICAgICAgICAgICAgICAgICAgICA8U0NNQUNhcmRNZW51XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17ZXZlbnQgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPFNDTUFDYXJkTWVudUl0ZW1zPlxuICAgICAgICAgICAgICAgICAgICAgICAge2NhbkRlbGV0ZSA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFNDTUFDYXJkTWVudUl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRBZ2VudFRvRGVsZXRlKGFnZW50KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dCgnZGVsZXRlQWdlbnQnLCB7IG5zOiBTRUNUSU9OUy5hYm1BZ2VudCB9KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TQ01BQ2FyZE1lbnVJdGVtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgICAgICAgICB7Y2FuRWRpdCA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFNDTUFDYXJkTWVudUl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVPcGVuRWRpdEFnZW50KGFnZW50KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dCgnZWRpdEFnZW50JywgeyBuczogU0VDVElPTlMuYWJtQWdlbnQgfSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvU0NNQUNhcmRNZW51SXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgICAgICAgIDwvU0NNQUNhcmRNZW51SXRlbXM+XG4gICAgICAgICAgICAgICAgICAgIDwvU0NNQUNhcmRNZW51PlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC9TQ01BQ2FyZEJ1dHRvbj5cbiAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L1NDTUFDYXJkc1Jvdz5cbiAgICAgICAgICA8L1NDTUFDYXJkc091dGVyPlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxTQ01BRW1wdHlTdGF0ZVJvb3Q+XG4gICAgICAgICAgICA8U0NNQUVtcHR5U3RhdGVDb2x1bW4+XG4gICAgICAgICAgICAgIDxTQ01BRW1wdHlTdGF0ZVRpdGxlQmxvY2s+XG4gICAgICAgICAgICAgICAgPFNDTUFFbXB0eVN0YXRlVGl0bGU+e3QoJ21hcmtldHBsYWNlLm15QWdlbnRzRW1wdHlTdGF0ZVRpdGxlJyl9PC9TQ01BRW1wdHlTdGF0ZVRpdGxlPlxuICAgICAgICAgICAgICAgIDxTQ01BRW1wdHlTdGF0ZVN1YnRpdGxlPlxuICAgICAgICAgICAgICAgICAge2NhbkNyZWF0ZUFnZW50XG4gICAgICAgICAgICAgICAgICAgID8gdCgnbWFya2V0cGxhY2UubXlBZ2VudHNFbXB0eVN0YXRlRGVzY3JpcHRpb24nKVxuICAgICAgICAgICAgICAgICAgICA6IHQoJ21hcmtldHBsYWNlLm15QWdlbnRzRW1wdHlTdGF0ZURlc2NyaXB0aW9uTm9QZXJtJyl9XG4gICAgICAgICAgICAgICAgPC9TQ01BRW1wdHlTdGF0ZVN1YnRpdGxlPlxuICAgICAgICAgICAgICA8L1NDTUFFbXB0eVN0YXRlVGl0bGVCbG9jaz5cbiAgICAgICAgICAgIDwvU0NNQUVtcHR5U3RhdGVDb2x1bW4+XG4gICAgICAgICAgICB7Y2FuQ3JlYXRlQWdlbnQgJiYgb25Hb1RvTWFpYWtlciA/IChcbiAgICAgICAgICAgICAgPFNDTUFFbXB0eVN0YXRlQnV0dG9uIHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXsoKSA9PiBvbkdvVG9NYWlha2VyKCl9PlxuICAgICAgICAgICAgICAgIHt0KCdtYXJrZXRwbGFjZS5teUFnZW50c0VtcHR5U3RhdGVCdXR0b24nKX1cbiAgICAgICAgICAgICAgPC9TQ01BRW1wdHlTdGF0ZUJ1dHRvbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU0NNQUVtcHR5U3RhdGVSb290PlxuICAgICAgICApfVxuICAgICAgICB7bG9hZGluZ01vcmVBZ2VudHMgPyAoXG4gICAgICAgICAgPFNDTUFMb2FkTW9yZVdyYXBwZXI+XG4gICAgICAgICAgICA8TG9hZGVyIHNpemU9XCJzbWFsbFwiIC8+XG4gICAgICAgICAgPC9TQ01BTG9hZE1vcmVXcmFwcGVyPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvU0NNQUJvZHk+XG4gICAgICB7ZGVsZXRlTW9kYWxDaGF0ID8gKFxuICAgICAgICA8RGVsZXRlUXVlc3Rpb25Nb2RhbFxuICAgICAgICAgIG9uQ2xvc2U9eygpID0+IHNldEFnZW50VG9EZWxldGUobnVsbCl9XG4gICAgICAgICAgaGFuZGxlcnM9e3tcbiAgICAgICAgICAgIGhhbmRsZUNvbmZpcm1BY3Rpb246IGhhbmRsZUNvbmZpcm1EZWxldGUsXG4gICAgICAgICAgfX1cbiAgICAgICAgICBjaGF0PXtkZWxldGVNb2RhbENoYXR9XG4gICAgICAgICAgYWN0aW9uPVwiYWdlbnRcIlxuICAgICAgICAvPlxuICAgICAgKSA6IG51bGx9XG4gICAgPC9TQ01BTXlBZ2VudHNDb250YWluZXI+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsT0FBT0EsS0FBSyxJQUFJQyxTQUFTLEVBQUVDLE9BQU8sRUFBRUMsUUFBUSxRQUFRLE9BQU87QUFDM0QsU0FBU0MsUUFBUSxRQUFRLDJDQUEyQztBQUNwRSxTQUFTQyxJQUFJLFFBQVEsdUNBQXVDO0FBQzVELFNBQVNDLE9BQU8sUUFBUSw4Q0FBOEM7QUFDdEUsU0FBU0MsY0FBYyxRQUFRLGVBQWU7QUFDOUMsU0FBU0MsZ0JBQWdCLFFBQVEsaUNBQWlDO0FBQ2xFLFNBQVNDLE9BQU8sUUFBUSwyQkFBMkI7QUFFbkQsU0FBU0MsV0FBVyxRQUFRLDJDQUEyQztBQUN2RSxTQUFTQyxrQkFBa0IsUUFBUSxzREFBc0Q7QUFDekYsU0FBU0MsbUJBQW1CLFFBQVEseURBQXlEO0FBQzdGLFNBQVNDLFFBQVEsUUFBUSwyQkFBMkI7QUFDcEQsU0FB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
@@ -0,0 +1,178 @@
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:24px;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;color:#666;cursor:pointer;&:hover span{background:var(--Gradiente-1,linear-gradient(0deg,#4d3569 0%,#2d77bd 100%));background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;}"]);
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;color:#666;transition:color 160ms ease;"]);
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 SCMAFavoriteStarWrap = styled.span.withConfig({
100
+ displayName: "ChatAIMyAgentsstyles__SCMAFavoriteStarWrap",
101
+ componentId: "sc-1vnskh9-23"
102
+ })(["display:flex;align-items:center;justify-content:center;transform:scale(1.2);"]);
103
+ export var SCMAFavoriteButton = styled.button.withConfig({
104
+ displayName: "ChatAIMyAgentsstyles__SCMAFavoriteButton",
105
+ componentId: "sc-1vnskh9-24"
106
+ })(["display:flex;align-items:center;justify-content:center;width:16px;height:16px;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) {
107
+ var $alwaysVisible = _ref.$alwaysVisible;
108
+ return $alwaysVisible ? 1 : 0;
109
+ }, function (_ref2) {
110
+ var $alwaysVisible = _ref2.$alwaysVisible;
111
+ return $alwaysVisible ? 'visible' : 'hidden';
112
+ }, function (_ref3) {
113
+ var $alwaysVisible = _ref3.$alwaysVisible;
114
+ return $alwaysVisible ? 'auto' : 'none';
115
+ }, SCMACardButton);
116
+ export var SCMACardMenu = styled.div.withConfig({
117
+ displayName: "ChatAIMyAgentsstyles__SCMACardMenu",
118
+ componentId: "sc-1vnskh9-25"
119
+ })(["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;"]);
120
+ export var SCMACardMenuItems = styled.div.withConfig({
121
+ displayName: "ChatAIMyAgentsstyles__SCMACardMenuItems",
122
+ componentId: "sc-1vnskh9-26"
123
+ })(["display:flex;flex-direction:column;align-items:flex-start;"]);
124
+ export var SCMACardMenuItem = styled.button.withConfig({
125
+ displayName: "ChatAIMyAgentsstyles__SCMACardMenuItem",
126
+ componentId: "sc-1vnskh9-27"
127
+ })(["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;}"]);
128
+ export var SCMACardBody = styled.div.withConfig({
129
+ displayName: "ChatAIMyAgentsstyles__SCMACardBody",
130
+ componentId: "sc-1vnskh9-28"
131
+ })(["display:flex;flex-direction:column;flex:1;min-height:0;justify-content:flex-start;align-items:flex-start;gap:4px;align-self:stretch;"]);
132
+ export var SCMACardFooter = styled.div.withConfig({
133
+ displayName: "ChatAIMyAgentsstyles__SCMACardFooter",
134
+ componentId: "sc-1vnskh9-29"
135
+ })(["display:flex;justify-content:space-between;align-items:center;align-self:stretch;width:100%;"]);
136
+ export var SCMACardText = styled.span.withConfig({
137
+ displayName: "ChatAIMyAgentsstyles__SCMACardText",
138
+ componentId: "sc-1vnskh9-30"
139
+ })(["font-family:'Work Sans',sans-serif;font-size:12px;font-style:normal;font-weight:400;line-height:130%;"]);
140
+
141
+ /** Fecha en footer de card (token texto terciario) */
142
+ export var SCMACardFooterDate = styled(SCMACardText).withConfig({
143
+ displayName: "ChatAIMyAgentsstyles__SCMACardFooterDate",
144
+ componentId: "sc-1vnskh9-31"
145
+ })(["color:#999;"]);
146
+ export var SCMACardIntroText = styled(SCMACardText).withConfig({
147
+ displayName: "ChatAIMyAgentsstyles__SCMACardIntroText",
148
+ componentId: "sc-1vnskh9-32"
149
+ })(["color:#666;align-self:stretch;text-align:left;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;"]);
150
+ export var SCMAEmptyStateRoot = styled.div.withConfig({
151
+ displayName: "ChatAIMyAgentsstyles__SCMAEmptyStateRoot",
152
+ componentId: "sc-1vnskh9-33"
153
+ })(["display:flex;height:417px;flex-direction:column;align-items:center;gap:24px;align-self:stretch;"]);
154
+ export var SCMAEmptyStateColumn = styled.div.withConfig({
155
+ displayName: "ChatAIMyAgentsstyles__SCMAEmptyStateColumn",
156
+ componentId: "sc-1vnskh9-34"
157
+ })(["display:flex;flex-direction:column;align-items:flex-start;gap:8px;align-self:stretch;"]);
158
+ export var SCMAEmptyStateTitleBlock = styled.div.withConfig({
159
+ displayName: "ChatAIMyAgentsstyles__SCMAEmptyStateTitleBlock",
160
+ componentId: "sc-1vnskh9-35"
161
+ })(["display:flex;flex-direction:column;justify-content:center;align-items:center;gap:8px;align-self:stretch;"]);
162
+ export var SCMAEmptyStateTitle = styled.h2.withConfig({
163
+ displayName: "ChatAIMyAgentsstyles__SCMAEmptyStateTitle",
164
+ componentId: "sc-1vnskh9-36"
165
+ })(["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;"]);
166
+ export var SCMAEmptyStateSubtitle = styled.p.withConfig({
167
+ displayName: "ChatAIMyAgentsstyles__SCMAEmptyStateSubtitle",
168
+ componentId: "sc-1vnskh9-37"
169
+ })(["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;"]);
170
+ export var SCMAEmptyStateButton = styled.button.withConfig({
171
+ displayName: "ChatAIMyAgentsstyles__SCMAEmptyStateButton",
172
+ componentId: "sc-1vnskh9-38"
173
+ })(["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;}"]);
174
+ export var SCMALoadMoreWrapper = styled.div.withConfig({
175
+ displayName: "ChatAIMyAgentsstyles__SCMALoadMoreWrapper",
176
+ componentId: "sc-1vnskh9-39"
177
+ })(["display:flex;justify-content:center;align-items:center;width:100%;padding-bottom:24px;"]);
178
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJTQ01BTXlBZ2VudHNDb250YWluZXIiLCJkaXYiLCJ3aXRoQ29uZmlnIiwiZGlzcGxheU5hbWUiLCJjb21wb25lbnRJZCIsInByb3BzIiwiJGhhc0FnZW50cyIsIlNDTUFCYWNrQnV0dG9uIiwiYnV0dG9uIiwiU0NNQUhlcm9HbG93IiwiU0NNQUhlcm9HbG93VmVydGljYWwiLCJTQ01BSGVyb0dsb3dIb3Jpem9udGFsIiwiU0NNQUhlcm9HbG93RG90IiwiU0NNQUhlcm9HbG93QWNjZW50RG90VG9wIiwiU0NNQUhlcm9HbG93QWNjZW50RG90Qm90dG9tIiwiTVlfQUdFTlRTX0dSSURfTUFYX1dJRFRIX1BYIiwiU0NNQUJvZHkiLCJTQ01BVGl0bGVXcmFwIiwiU0NNQUFjdGlvbnNSb3ciLCJTQ01BVGl0bGVJbm5lciIsIlNDTUFUaXRsZSIsImgyIiwiU0NNQUNyZWF0ZU1hbnVhbEJ1dHRvbiIsIlNDTUFDcmVhdGVNYW51YWxCdXR0b25UZXh0Iiwic3BhbiIsIlNDTUFDYXJkc091dGVyIiwiU0NNQUNhcmRzUm93IiwiU0NNQUNhcmRCdXR0b24iLCJTQ01BQ2FyZEhlYWRlciIsIlNDTUFDYXJkVG9wUm93IiwiU0NNQUNhcmRUaXRsZUVtb2ppIiwiU0NNQUNhcmRUaXRsZU5hbWUiLCJTQ01BS2ViYWJCdXR0b24iLCJTQ01BRmF2b3JpdGVTdGFyV3JhcCIsIlNDTUFGYXZvcml0ZUJ1dHRvbiIsIl9yZWYiLCIkYWx3YXlzVmlzaWJsZSIsIl9yZWYyIiwiX3JlZjMiLCJTQ01BQ2FyZE1lbnUiLCJTQ01BQ2FyZE1lbnVJdGVtcyIsIlNDTUFDYXJkTWVudUl0ZW0iLCJTQ01BQ2FyZEJvZHkiLCJTQ01BQ2FyZEZvb3RlciIsIlNDTUFDYXJkVGV4dCIsIlNDTUFDYXJkRm9vdGVyRGF0ZSIsIlNDTUFDYXJkSW50cm9UZXh0IiwiU0NNQUVtcHR5U3RhdGVSb290IiwiU0NNQUVtcHR5U3RhdGVDb2x1bW4iLCJTQ01BRW1wdHlTdGF0ZVRpdGxlQmxvY2siLCJTQ01BRW1wdHlTdGF0ZVRpdGxlIiwiU0NNQUVtcHR5U3RhdGVTdWJ0aXRsZSIsInAiLCJTQ01BRW1wdHlTdGF0ZUJ1dHRvbiIsIlNDTUFMb2FkTW9yZVdyYXBwZXIiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEFJTXlBZ2VudHMvQ2hhdEFJTXlBZ2VudHMuc3R5bGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnXG5cbmV4cG9ydCBjb25zdCBTQ01BTXlBZ2VudHNDb250YWluZXIgPSBzdHlsZWQuZGl2PHsgJGhhc0FnZW50czogYm9vbGVhbiB9PmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxOHB4O1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMTJweCAwIDI0cHg7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgb3ZlcnNjcm9sbC1iZWhhdmlvci15OiBjb250YWluO1xuICBqdXN0aWZ5LWNvbnRlbnQ6ICR7cHJvcHMgPT4gKHByb3BzLiRoYXNBZ2VudHMgPyAnZmxleC1zdGFydCcgOiAnY2VudGVyJyl9O1xuYFxuXG5leHBvcnQgY29uc3QgU0NNQUJhY2tCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBwYWRkaW5nOiAwIDE2cHg7XG4gIGNvbG9yOiAjNjY2O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbmBcblxuZXhwb3J0IGNvbnN0IFNDTUFIZXJvR2xvdyA9IHN0eWxlZC5kaXZgXG4gIHdpZHRoOiA5NHB4O1xuICBoZWlnaHQ6IDk0cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmlsdGVyOiBibHVyKDkuNHB4KTtcbiAgb3BhY2l0eTogMC45O1xuYFxuXG5leHBvcnQgY29uc3QgU0NNQUhlcm9HbG93VmVydGljYWwgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDM0Ljc4cHg7XG4gIHRvcDogMDtcbiAgd2lkdGg6IDI0LjQ0cHg7XG4gIGhlaWdodDogOTRweDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDBkZWcsICM0ZDM1NjkgMCUsICMyZDc3YmQgMTAwJSk7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01BSGVyb0dsb3dIb3Jpem9udGFsID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDM0Ljc4cHg7XG4gIHdpZHRoOiA5NHB4O1xuICBoZWlnaHQ6IDI0LjQ0cHg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgwZGVnLCAjNGQzNTY5IDAlLCAjMmQ3N2JkIDEwMCUpO1xuYFxuXG5leHBvcnQgY29uc3QgU0NNQUhlcm9HbG93RG90ID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiA0MC40MnB4O1xuICB0b3A6IDQwLjQycHg7XG4gIHdpZHRoOiAxMy4xNnB4O1xuICBoZWlnaHQ6IDEzLjE2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDBkZWcsICM0ZDM1NjkgMCUsICMyZDc3YmQgMTAwJSk7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01BSGVyb0dsb3dBY2NlbnREb3RUb3AgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDY3cHg7XG4gIHRvcDogMThweDtcbiAgd2lkdGg6IDcuNTJweDtcbiAgaGVpZ2h0OiA3LjUycHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDBkZWcsICM0ZDM1NjkgMCUsICMyZDc3YmQgMTAwJSk7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01BSGVyb0dsb3dBY2NlbnREb3RCb3R0b20gPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDIwcHg7XG4gIHRvcDogNjZweDtcbiAgd2lkdGg6IDcuNTJweDtcbiAgaGVpZ2h0OiA3LjUycHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDBkZWcsICM0ZDM1NjkgMCUsICMyZDc3YmQgMTAwJSk7XG5gXG5cbi8qKiBBbmNobyBtw6F4aW1vIOKJiCAzIGNhcmRzICgyMTZweCkgKyBnYXBzICg4cHgpICsgcGFkZGluZyBob3Jpem9udGFsIGRlbCBjb250ZW5lZG9yIGRlIGNhcmRzICovXG5jb25zdCBNWV9BR0VOVFNfR1JJRF9NQVhfV0lEVEhfUFggPSA2OTZcblxuZXhwb3J0IGNvbnN0IFNDTUFCb2R5ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAyNHB4O1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiBtaW4oMTAwJSwgJHtNWV9BR0VOVFNfR1JJRF9NQVhfV0lEVEhfUFh9cHgpO1xuICBtaW4taGVpZ2h0OiA0MTdweDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDTUFUaXRsZVdyYXAgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZ2FwOiA4cHg7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01BQWN0aW9uc1JvdyA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuYFxuXG5leHBvcnQgY29uc3QgU0NNQVRpdGxlSW5uZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01BVGl0bGUgPSBzdHlsZWQuaDJgXG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDM3NHB4O1xuICBtYXJnaW46IDA7XG4gIGNvbG9yOiAjMjAyMDFmO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMTIyJTtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjJweDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDTUFDcmVhdGVNYW51YWxCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICBkaXNwbGF5OiBmbGV4O1xuICBtaW4td2lkdGg6IDY0cHg7XG4gIHBhZGRpbmc6IDdweCAxMnB4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjNjY2O1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgJjpob3ZlciBzcGFuIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1HcmFkaWVudGUtMSwgbGluZWFyLWdyYWRpZW50KDBkZWcsICM0ZDM1NjkgMCUsICMyZDc3YmQgMTAwJSkpO1xuICAgIGJhY2tncm91bmQtY2xpcDogdGV4dDtcbiAgICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDtcbiAgICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDTUFDcmVhdGVNYW51YWxCdXR0b25UZXh0ID0gc3R5bGVkLnNwYW5gXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1mYW1pbHk6ICdXb3JrIFNhbnMnLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDE0cHg7XG4gIGNvbG9yOiAjNjY2O1xuICB0cmFuc2l0aW9uOiBjb2xvciAxNjBtcyBlYXNlO1xuYFxuXG5leHBvcnQgY29uc3QgU0NNQUNhcmRzT3V0ZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMCA5cHg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBnYXA6IDEwcHg7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01BQ2FyZHNSb3cgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBncmlkO1xuICB3aWR0aDogMTAwJTtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCAyMTZweCk7XG4gIGdhcDogOHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMjRweDtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuYFxuXG5leHBvcnQgY29uc3QgU0NNQUNhcmRCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAyMTZweDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nOiAxMnB4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkOWQ5ZDk7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZm9udDogaW5oZXJpdDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIDpob3ZlciB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDE2cHggMCByZ2JhKDExMSwgMTIxLCAxMzYsIDAuMDgpO1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01BQ2FyZEhlYWRlciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICBnYXA6IDRweDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDTUFDYXJkVG9wUm93ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgZ2FwOiA0cHg7XG4gIG1pbi1oZWlnaHQ6IDEuNGVtO1xuYFxuXG5leHBvcnQgY29uc3QgU0NNQUNhcmRUaXRsZUVtb2ppID0gc3R5bGVkLnNwYW5gXG4gIGZsZXgtc2hyaW5rOiAwO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBmb250LXNpemU6IDFlbTtcbiAgbWluLXdpZHRoOiAxLjRlbTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDTUFDYXJkVGl0bGVOYW1lID0gc3R5bGVkLnNwYW5gXG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIHdpZHRoOiAxMDAlO1xuICBjb2xvcjogIzIwMjAxZjtcbiAgZm9udC1mYW1pbHk6ICdXb3JrIFNhbnMnLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAxNDAlO1xuICBsZXR0ZXItc3BhY2luZzogLTAuMjFweDtcbiAgbWluLWhlaWdodDogY2FsYygyICogMS40ZW0pO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDTUFLZWJhYkJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIHdpZHRoOiAxNXB4O1xuICBoZWlnaHQ6IDE1cHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2YwZjBmMDtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NNQUZhdm9yaXRlU3RhcldyYXAgPSBzdHlsZWQuc3BhbmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4yKTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDTUFGYXZvcml0ZUJ1dHRvbiA9IHN0eWxlZC5idXR0b248eyAkYWx3YXlzVmlzaWJsZT86IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBmbGV4LXNocmluazogMDtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgcGFkZGluZzogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvcGFjaXR5OiAkeyh7ICRhbHdheXNWaXNpYmxlIH0pID0+ICgkYWx3YXlzVmlzaWJsZSA/IDEgOiAwKX07XG4gIHZpc2liaWxpdHk6ICR7KHsgJGFsd2F5c1Zpc2libGUgfSkgPT4gKCRhbHdheXNWaXNpYmxlID8gJ3Zpc2libGUnIDogJ2hpZGRlbicpfTtcbiAgcG9pbnRlci1ldmVudHM6ICR7KHsgJGFsd2F5c1Zpc2libGUgfSkgPT4gKCRhbHdheXNWaXNpYmxlID8gJ2F1dG8nIDogJ25vbmUnKX07XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMTYwbXMgZWFzZTtcblxuICAmOmhvdmVyIC5zdGFyLWZhdm9yaXRlLWljb24gcGF0aFtmaWxsXSB7XG4gICAgZmlsbDogIzY2NjY2NiAhaW1wb3J0YW50O1xuICB9XG5cbiAgJjpob3ZlciAuc3Rhci1mYXZvcml0ZS1pY29uIGdbZmlsbF0ge1xuICAgIGZpbGw6ICM2NjY2NjYgIWltcG9ydGFudDtcbiAgfVxuXG4gICY6aG92ZXIgLnN0YXItZmF2b3JpdGUtaWNvbiAqIHtcbiAgICBmaWxsOiAjNjY2NjY2ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAke1NDTUFDYXJkQnV0dG9ufTpob3ZlciAmIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDTUFDYXJkTWVudSA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBhZGRpbmc6IDhweDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGdhcDogMTZweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMTJweDtcbiAgYm90dG9tOiA5cHg7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgYm94LXNoYWRvdzogMCA0cHggOXB4IDAgcmdiYSgxNDEsIDE0MSwgMTQxLCAwLjI1KTtcbiAgei1pbmRleDogMjtcbmBcblxuZXhwb3J0IGNvbnN0IFNDTUFDYXJkTWVudUl0ZW1zID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01BQ2FyZE1lbnVJdGVtID0gc3R5bGVkLmJ1dHRvbmBcbiAgZGlzcGxheTogZmxleDtcbiAgcGFkZGluZzogNnB4IDhweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICMyMDIwMWY7XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMTMwJTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB3aWR0aDogMTAwJTtcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2YwZjBmMDtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NNQUNhcmRCb2R5ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZmxleDogMTtcbiAgbWluLWhlaWdodDogMDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZ2FwOiA0cHg7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01BQ2FyZEZvb3RlciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgd2lkdGg6IDEwMCU7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01BQ2FyZFRleHQgPSBzdHlsZWQuc3BhbmBcbiAgZm9udC1mYW1pbHk6ICdXb3JrIFNhbnMnLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEzMCU7XG5gXG5cbi8qKiBGZWNoYSBlbiBmb290ZXIgZGUgY2FyZCAodG9rZW4gdGV4dG8gdGVyY2lhcmlvKSAqL1xuZXhwb3J0IGNvbnN0IFNDTUFDYXJkRm9vdGVyRGF0ZSA9IHN0eWxlZChTQ01BQ2FyZFRleHQpYFxuICBjb2xvcjogIzk5OTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDTUFDYXJkSW50cm9UZXh0ID0gc3R5bGVkKFNDTUFDYXJkVGV4dClgXG4gIGNvbG9yOiAjNjY2O1xuICAvKiBSZXNlcnZhIGZpamEgMiBsw61uZWFzIChtaXNtYSBsw7NnaWNhIHF1ZSBlbCB0w610dWxvKSAqL1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBtaW4taGVpZ2h0OiBjYWxjKDIgKiAxLjNlbSk7XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuYFxuXG5leHBvcnQgY29uc3QgU0NNQUVtcHR5U3RhdGVSb290ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgaGVpZ2h0OiA0MTdweDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAyNHB4O1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuYFxuXG5leHBvcnQgY29uc3QgU0NNQUVtcHR5U3RhdGVDb2x1bW4gPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZ2FwOiA4cHg7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01BRW1wdHlTdGF0ZVRpdGxlQmxvY2sgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01BRW1wdHlTdGF0ZVRpdGxlID0gc3R5bGVkLmgyYFxuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAzNzRweDtcbiAgbWFyZ2luOiAwO1xuICBjb2xvcjogIzIwMjAxZjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LWZhbWlseTogJ1dvcmsgU2FucycsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMTIyJTtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjJweDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDTUFFbXB0eVN0YXRlU3VidGl0bGUgPSBzdHlsZWQucGBcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgbWFyZ2luOiAwO1xuICBjb2xvcjogIzY2NjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LWZhbWlseTogJ1dvcmsgU2FucycsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMTQwJTtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjIxcHg7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01BRW1wdHlTdGF0ZUJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1pbi13aWR0aDogODBweDtcbiAgcGFkZGluZzogMTBweCAxMnB4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm9yZGVyOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgwZGVnLCAjNGQzNTY5IDAlLCAjMmQ3N2JkIDEwMCUpO1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LWZhbWlseTogJ1dvcmsgU2FucycsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDE2cHg7XG5cbiAgJjpob3ZlciB7XG4gICAgb3BhY2l0eTogMC45MjtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NNQUxvYWRNb3JlV3JhcHBlciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZy1ib3R0b206IDI0cHg7XG5gXG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLE1BQU0sTUFBTSxtQkFBbUI7QUFFdEMsT0FBTyxJQUFNQyxxQkFBcUIsR0FBR0QsTUFBTSxDQUFDRSxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsc0xBVTFCLFVBQUFDLEtBQUs7RUFBQSxPQUFLQSxLQUFLLENBQUNDLFVBQVUsR0FBRyxZQUFZLEdBQUcsUUFBUTtBQUFBLENBQUMsQ0FDekU7QUFFRCxPQUFPLElBQU1DLGNBQWMsR0FBR1IsTUFBTSxDQUFDUyxNQUFNLENBQUFOLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEseUlBUzFDO0FBRUQsT0FBTyxJQUFNSyxZQUFZLEdBQUdWLE1BQU0sQ0FBQ0UsR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLGdGQU1yQztBQUVELE9BQU8sSUFBTU0sb0JBQW9CLEdBQUdYLE1BQU0sQ0FBQ0UsR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLGdJQU83QztBQUVELE9BQU8sSUFBTU8sc0JBQXNCLEdBQUdaLE1BQU0sQ0FBQ0UsR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLGdJQU8vQztBQUVELE9BQU8sSUFBTVEsZUFBZSxHQUFHYixNQUFNLENBQUNFLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSwySkFReEM7QUFFRCxPQUFPLElBQU1TLHdCQUF3QixHQUFHZCxNQUFNLENBQUNFLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSxtSkFRakQ7QUFFRCxPQUFPLElBQU1VLDJCQUEyQixHQUFHZixNQUFNLENBQUNFLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFD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