@projectcor/maia-components 2.11.108-0 → 2.11.109-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.
- package/lib/components/atoms/IconButton.js +2 -2
- package/lib/components/atoms/MAIAInput/MAIAInput.js +73 -14
- package/lib/components/atoms/ReasoningBlock/ReasoningBlock.js +121 -0
- package/lib/components/atoms/ReasoningBlock/ReasoningBlock.styles.js +55 -0
- package/lib/components/atoms/ReasoningBlock/index.js +2 -0
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +151 -39
- package/lib/components/molecules/ChatAIMessages/newStyles.js +21 -13
- package/lib/components/molecules/ChatAIModal/ChatAIModal.js +187 -154
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +12 -2
- package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.js +26 -8
- package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.styles.js +24 -7
- package/lib/components/molecules/MessageFeedback/MessageFeedback.js +2 -14
- package/lib/components/organisms/ChatAI/ChatAI.js +22 -3
- package/lib/components/organisms/ClientAIButton/ClientAIButton.js +4 -1
- package/lib/components/organisms/CloseWhileGeneratingModal/CloseWhileGeneratingModal.js +56 -0
- package/lib/components/organisms/CloseWhileGeneratingModal/CloseWhileGeneratingModal.styles.js +35 -0
- package/lib/components/organisms/CloseWhileGeneratingModal/index.js +2 -0
- package/lib/components/organisms/ProjectAIButton/ProjectAIButton.js +4 -1
- package/lib/context/global-context.js +1 -1
- package/lib/dev/DevChatAI.js +4 -1
- package/lib/hooks/useChatManager/useChatManager.js +106 -371
- package/lib/hooks/useChatMessages/useChatMessages.js +33 -6
- package/lib/hooks/useOrchestratorStream/useOrchestratorStream.interface.js +1 -1
- package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +6 -80
- package/lib/hooks/useProjectSummaryConfig.js +36 -17
- package/lib/hooks/useReasoningTrace/index.js +3 -0
- package/lib/hooks/useReasoningTrace/reasoningStore.js +142 -0
- package/lib/hooks/useReasoningTrace/useReasoningTrace.js +14 -0
- package/lib/lang/br/index.js +242 -31
- package/lib/lang/en/index.js +242 -31
- package/lib/lang/es/index.js +242 -31
- package/lib/lang/fr/index.js +242 -31
- package/lib/services/maia/Orchestrator/index.js +3 -4
- package/lib/services/maia/Orchestrator/orchestrator.js +23 -84
- package/lib/services/utils/mapChatMessages.js +25 -26
- package/lib/store/maiaMinimizedPersistence.js +49 -0
- package/lib/store/sessions/sessionStreamManager.js +93 -191
- package/lib/store/sessions/sessions.types.js +1 -1
- package/lib/types/Chat.js +1 -1
- package/lib/types/reasoning.js +2 -0
- package/lib/utils/autoApproveStorage.js +26 -0
- package/lib/utils/maiaHostOpen.js +10 -1
- package/lib/utils/reasoningMappers.js +62 -0
- package/lib/utils/streamActivityMessages.js +106 -41
- package/package.json +1 -1
- package/lib/components/atoms/icons/RetryIcon.js +0 -34
- package/lib/store/maiaLastChatPersistence.js +0 -35
- package/lib/utils/retryCompletion.js +0 -85
|
@@ -43,76 +43,13 @@ var validateAttachments = function validateAttachments(attachments) {
|
|
|
43
43
|
}
|
|
44
44
|
});
|
|
45
45
|
};
|
|
46
|
-
var
|
|
47
|
-
if (lang === 'br') return 'pt-BR';
|
|
48
|
-
if (lang === 'es') return 'es-AR';
|
|
49
|
-
if (lang === 'fr') return 'fr-FR';
|
|
50
|
-
return 'en-US';
|
|
51
|
-
};
|
|
52
|
-
export var retryCompletion = /*#__PURE__*/function () {
|
|
46
|
+
export var continueThread = /*#__PURE__*/function () {
|
|
53
47
|
var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(body, signal) {
|
|
54
|
-
var
|
|
48
|
+
var threadIds, sessionId, decision, editedActions, agentId, lang, isAutoApproveActive, requestBody;
|
|
55
49
|
return _regeneratorRuntime.wrap(function (_context) {
|
|
56
50
|
while (1) switch (_context.prev = _context.next) {
|
|
57
51
|
case 0:
|
|
58
|
-
|
|
59
|
-
path = 'orchestrator/retry_completion?mode=stream';
|
|
60
|
-
if (isWebSearchActive === true) {
|
|
61
|
-
path += '&search_web=true';
|
|
62
|
-
}
|
|
63
|
-
if (isDeepSearchActive === true) {
|
|
64
|
-
path += '&search_web=true&depth=true';
|
|
65
|
-
}
|
|
66
|
-
headers = {
|
|
67
|
-
'X-Agent-Id': agentId.toString(),
|
|
68
|
-
'Accept-Language': mapCORLang(lang)
|
|
69
|
-
};
|
|
70
|
-
if (agentType === 'orchestrator') {
|
|
71
|
-
contextId = '';
|
|
72
|
-
if (taskId != null) contextId = "task:".concat(taskId);else if (projectId != null) contextId = "project:".concat(projectId);else if (clientId != null) contextId = "client:".concat(clientId);
|
|
73
|
-
if (contextId) {
|
|
74
|
-
headers['X-Context-Id'] = contextId;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
if (contextData && Object.keys(contextData).length > 0) {
|
|
78
|
-
headers['X-Context-Data'] = encodeContextDataHeader(contextData);
|
|
79
|
-
}
|
|
80
|
-
timezone = typeof Intl !== 'undefined' ? Intl.DateTimeFormat().resolvedOptions().timeZone : 'America/Buenos_Aires';
|
|
81
|
-
return _context.abrupt("return", fetchMaia({
|
|
82
|
-
path: path,
|
|
83
|
-
method: 'POST',
|
|
84
|
-
headers: headers,
|
|
85
|
-
body: {
|
|
86
|
-
session_id: sessionId,
|
|
87
|
-
parent_message_uuid: memorySessionId,
|
|
88
|
-
turn_message_uuids: {
|
|
89
|
-
assistant_message_uuid: memorySessionId
|
|
90
|
-
},
|
|
91
|
-
memory_session_id: memorySessionId,
|
|
92
|
-
prompt: '',
|
|
93
|
-
locale: toRetryLocale(lang),
|
|
94
|
-
timezone: timezone,
|
|
95
|
-
metadata: {}
|
|
96
|
-
},
|
|
97
|
-
signal: signal
|
|
98
|
-
}));
|
|
99
|
-
case 1:
|
|
100
|
-
case "end":
|
|
101
|
-
return _context.stop();
|
|
102
|
-
}
|
|
103
|
-
}, _callee);
|
|
104
|
-
}));
|
|
105
|
-
return function retryCompletion(_x, _x2) {
|
|
106
|
-
return _ref.apply(this, arguments);
|
|
107
|
-
};
|
|
108
|
-
}();
|
|
109
|
-
export var continueThread = /*#__PURE__*/function () {
|
|
110
|
-
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(body, signal) {
|
|
111
|
-
var threadIds, sessionId, decision, editedActions, agentId, lang, requestBody;
|
|
112
|
-
return _regeneratorRuntime.wrap(function (_context2) {
|
|
113
|
-
while (1) switch (_context2.prev = _context2.next) {
|
|
114
|
-
case 0:
|
|
115
|
-
threadIds = body.threadIds, sessionId = body.sessionId, decision = body.decision, editedActions = body.editedActions, agentId = body.agentId, lang = body.lang;
|
|
52
|
+
threadIds = body.threadIds, sessionId = body.sessionId, decision = body.decision, editedActions = body.editedActions, agentId = body.agentId, lang = body.lang, isAutoApproveActive = body.isAutoApproveActive;
|
|
116
53
|
requestBody = {
|
|
117
54
|
thread_ids: threadIds,
|
|
118
55
|
session_id: sessionId,
|
|
@@ -121,33 +58,34 @@ export var continueThread = /*#__PURE__*/function () {
|
|
|
121
58
|
if (decision === 'edit' && editedActions) {
|
|
122
59
|
requestBody.edited_actions = editedActions;
|
|
123
60
|
}
|
|
124
|
-
return
|
|
61
|
+
return _context.abrupt("return", fetchMaia({
|
|
125
62
|
path: 'orchestrator/continue-thread?mode=stream',
|
|
126
63
|
method: 'POST',
|
|
127
64
|
headers: {
|
|
128
65
|
'X-Agent-Id': agentId.toString(),
|
|
129
|
-
'Accept-Language': mapCORLang(lang)
|
|
66
|
+
'Accept-Language': mapCORLang(lang),
|
|
67
|
+
'X-HITL-Approval-Mode': isAutoApproveActive ? 'full_access' : 'approve_each'
|
|
130
68
|
},
|
|
131
69
|
body: requestBody,
|
|
132
70
|
signal: signal
|
|
133
71
|
}));
|
|
134
72
|
case 1:
|
|
135
73
|
case "end":
|
|
136
|
-
return
|
|
74
|
+
return _context.stop();
|
|
137
75
|
}
|
|
138
|
-
},
|
|
76
|
+
}, _callee);
|
|
139
77
|
}));
|
|
140
|
-
return function continueThread(
|
|
141
|
-
return
|
|
78
|
+
return function continueThread(_x, _x2) {
|
|
79
|
+
return _ref.apply(this, arguments);
|
|
142
80
|
};
|
|
143
81
|
}();
|
|
144
82
|
export var orchestrator = /*#__PURE__*/function () {
|
|
145
|
-
var
|
|
146
|
-
var input, projectId, lang, userId, firstName, lastName, chatId, clientId, clientName, feeId, agentId, isWebSearchActive, isDeepSearchActive, attachments, projectName, taskId, taskName, faqId, agentSuggestionId, fuaId, scId, agentEntity, agentType, contextMessage, contextData, formData, metadata, path, headers, contextId;
|
|
147
|
-
return _regeneratorRuntime.wrap(function (
|
|
148
|
-
while (1) switch (
|
|
83
|
+
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(body, signal) {
|
|
84
|
+
var input, projectId, lang, userId, firstName, lastName, chatId, clientId, clientName, feeId, agentId, isWebSearchActive, isDeepSearchActive, isAutoApproveActive, attachments, projectName, taskId, taskName, faqId, agentSuggestionId, fuaId, scId, agentEntity, agentType, contextMessage, contextData, formData, metadata, path, headers, contextId;
|
|
85
|
+
return _regeneratorRuntime.wrap(function (_context2) {
|
|
86
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
149
87
|
case 0:
|
|
150
|
-
input = body.input, projectId = body.projectId, lang = body.lang, userId = body.userId, firstName = body.firstName, lastName = body.lastName, chatId = body.chatId, clientId = body.clientId, clientName = body.clientName, feeId = body.feeId, agentId = body.agentId, isWebSearchActive = body.isWebSearchActive, isDeepSearchActive = body.isDeepSearchActive, attachments = body.attachments, projectName = body.projectName, taskId = body.taskId, taskName = body.taskName, faqId = body.faqId, agentSuggestionId = body.agentSuggestionId, fuaId = body.fuaId, scId = body.scId, agentEntity = body.agentEntity, agentType = body.agentType, contextMessage = body.contextMessage, contextData = body.contextData;
|
|
88
|
+
input = body.input, projectId = body.projectId, lang = body.lang, userId = body.userId, firstName = body.firstName, lastName = body.lastName, chatId = body.chatId, clientId = body.clientId, clientName = body.clientName, feeId = body.feeId, agentId = body.agentId, isWebSearchActive = body.isWebSearchActive, isDeepSearchActive = body.isDeepSearchActive, isAutoApproveActive = body.isAutoApproveActive, attachments = body.attachments, projectName = body.projectName, taskId = body.taskId, taskName = body.taskName, faqId = body.faqId, agentSuggestionId = body.agentSuggestionId, fuaId = body.fuaId, scId = body.scId, agentEntity = body.agentEntity, agentType = body.agentType, contextMessage = body.contextMessage, contextData = body.contextData;
|
|
151
89
|
formData = new FormData();
|
|
152
90
|
formData.append('input', input);
|
|
153
91
|
formData.append('session_id', chatId);
|
|
@@ -199,7 +137,8 @@ export var orchestrator = /*#__PURE__*/function () {
|
|
|
199
137
|
path += '&search_web=true&depth=true';
|
|
200
138
|
}
|
|
201
139
|
headers = {
|
|
202
|
-
'X-Agent-Id': agentId.toString()
|
|
140
|
+
'X-Agent-Id': agentId.toString(),
|
|
141
|
+
'X-HITL-Approval-Mode': isAutoApproveActive ? 'full_access' : 'approve_each'
|
|
203
142
|
}; // Pin de contexto (RFC §9.1): el header le dice al router a quién derivar antes de parsear el body.
|
|
204
143
|
// Mono-entidad con prioridad por jerarquía (tarea > proyecto > cliente).
|
|
205
144
|
// Solo aplica al orquestador (MAIA): es el único agente sin scope propio, donde el pin define la derivación.
|
|
@@ -226,7 +165,7 @@ export var orchestrator = /*#__PURE__*/function () {
|
|
|
226
165
|
if (contextData && Object.keys(contextData).length > 0) {
|
|
227
166
|
headers['X-Context-Data'] = encodeContextDataHeader(contextData);
|
|
228
167
|
}
|
|
229
|
-
return
|
|
168
|
+
return _context2.abrupt("return", fetchMaia({
|
|
230
169
|
path: path,
|
|
231
170
|
method: 'POST',
|
|
232
171
|
headers: headers,
|
|
@@ -235,12 +174,12 @@ export var orchestrator = /*#__PURE__*/function () {
|
|
|
235
174
|
}));
|
|
236
175
|
case 1:
|
|
237
176
|
case "end":
|
|
238
|
-
return
|
|
177
|
+
return _context2.stop();
|
|
239
178
|
}
|
|
240
|
-
},
|
|
179
|
+
}, _callee2);
|
|
241
180
|
}));
|
|
242
|
-
return function orchestrator(
|
|
243
|
-
return
|
|
181
|
+
return function orchestrator(_x3, _x4) {
|
|
182
|
+
return _ref2.apply(this, arguments);
|
|
244
183
|
};
|
|
245
184
|
}();
|
|
246
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtYXBDT1JMYW5nIiwiZmV0Y2hNYWlhIiwiRklMRV9GT1JNQVRfRVhURU5TSU9OUyIsIkZJTEVfUFJFU0VOVEFUSU9OX0ZPUk1BVF9FWFRFTlNJT05TIiwiRklMRV9NQUlBX1ZJU0lPTl9GT1JNQVRfRVhURU5TSU9OUyIsIkZJTEVfQVVESU9fRk9STUFUX0VYVEVOU0lPTlMiLCJnZXRNYXhBdHRhY2htZW50U2l6ZU1iIiwiZW5jb2RlQ29udGV4dERhdGFIZWFkZXIiLCJjb250ZXh0RGF0YSIsImpzb24iLCJKU09OIiwic3RyaW5naWZ5IiwiYnl0ZXMiLCJUZXh0RW5jb2RlciIsImVuY29kZSIsImJpbmFyeSIsImkiLCJsZW5ndGgiLCJTdHJpbmciLCJmcm9tQ2hhckNvZGUiLCJidG9hIiwiTUFYX0ZJTEVTIiwiQUxMT1dFRF9GSUxFX0VYVEVOU0lPTlMiLCJ2YWxpZGF0ZUF0dGFjaG1lbnRzIiwiYXR0YWNobWVudHMiLCJFcnJvciIsImNvbmNhdCIsImZvckVhY2giLCJhdHRhY2htZW50IiwiZmlsZUV4dGVuc2lvbiIsIm5hbWUiLCJ0b0xvd2VyQ2FzZSIsInN1YnN0cmluZyIsImxhc3RJbmRleE9mIiwiaW5jbHVkZXMiLCJqb2luIiwiZmlsZVNpemUiLCJzaXplIiwiTnVtYmVyIiwibWF4U2l6ZU1iIiwibWF4U2l6ZUJ5dGVzIiwidG9SZXRyeUxvY2FsZSIsImxhbmciLCJyZXRyeUNvbXBsZXRpb24iLCJfcmVmIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJib2R5Iiwic2lnbmFsIiwic2Vzc2lvbklkIiwibWVtb3J5U2Vzc2lvbklkIiwiYWdlbnRJZCIsImlzV2ViU2VhcmNoQWN0aXZlIiwiaXNEZWVwU2VhcmNoQWN0aXZlIiwicHJvamVjdElkIiwiY2xpZW50SWQiLCJ0YXNrSWQiLCJhZ2VudFR5cGUiLCJwYXRoIiwiaGVhZGVycyIsImNvbnRleHRJZCIsInRpbWV6b25lIiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJ0b1N0cmluZyIsIk9iamVjdCIsImtleXMiLCJJbnRsIiwiRGF0ZVRpbWVGb3JtYXQiLCJyZXNvbHZlZE9wdGlvbnMiLCJ0aW1lWm9uZSIsImFicnVwdCIsIm1ldGhvZCIsInNlc3Npb25faWQiLCJwYXJlbnRfbWVzc2FnZV91dWlkIiwidHVybl9tZXNzYWdlX3V1aWRzIiwiYXNzaXN0YW50X21lc3NhZ2VfdXVpZCIsIm1lbW9yeV9zZXNzaW9uX2lkIiwicHJvbXB0IiwibG9jYWxlIiwibWV0YWRhdGEiLCJzdG9wIiwiX3giLCJfeDIiLCJhcHBseSIsImFyZ3VtZW50cyIsImNvbnRpbnVlVGhyZWFkIiwiX3JlZjIiLCJfY2FsbGVlMiIsInRocmVhZElkcyIsImRlY2lzaW9uIiwiZWRpdGVkQWN0aW9ucyIsInJlcXVlc3RCb2R5IiwiX2NvbnRleHQyIiwidGhyZWFkX2lkcyIsImVkaXRlZF9hY3Rpb25zIiwiX3gzIiwiX3g0Iiwib3JjaGVzdHJhdG9yIiwiX3JlZjMiLCJfY2FsbGVlMyIsImlucHV0IiwidXNlcklkIiwiZmlyc3ROYW1lIiwibGFzdE5hbWUiLCJjaGF0SWQiLCJjbGllbnROYW1lIiwiZmVlSWQiLCJwcm9qZWN0TmFtZSIsInRhc2tOYW1lIiwiZmFxSWQiLCJhZ2VudFN1Z2dlc3Rpb25JZCIsImZ1YUlkIiwic2NJZCIsImFnZW50RW50aXR5IiwiY29udGV4dE1lc3NhZ2UiLCJmb3JtRGF0YSIsIl9jb250ZXh0MyIsIkZvcm1EYXRhIiwiYXBwZW5kIiwiZmlsZVRvU2VuZCIsIm9yaWdpbmFsRmlsZSIsImZpbGUiLCJfb2JqZWN0U3ByZWFkIiwidXNlcl9pZCIsImZpcnN0X25hbWUiLCJsYXN0X25hbWUiLCJmZWVfaWQiLCJjbGllbnRfaWQiLCJjbGllbnRfbmFtZSIsInByb2plY3RfaWQiLCJwcm9qZWN0X25hbWUiLCJ0YXNrX2lkIiwidGFza19uYW1lIiwic3ViZG9tYWluIiwid2luZG93IiwibG9jYXRpb24iLCJob3N0bmFtZSIsInNwbGl0IiwiY29udGV4dF9tZXNzYWdlIiwiX3g1IiwiX3g2Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlcnZpY2VzL21haWEvT3JjaGVzdHJhdG9yL29yY2hlc3RyYXRvci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMgKi9cbi8qIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tY3ljbGUgKi9cbmltcG9ydCB7IEF0dGFjaG1lbnRGaWxlIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEZvb3Rlci9DaGF0Rm9vdGVyJ1xuaW1wb3J0IHsgbWFwQ09STGFuZyB9IGZyb20gJy4uLy4uLy4uL2xhbmcvdXRpbHMnXG5pbXBvcnQgeyBDaGF0SGlzdG9yeSB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL0NoYXQnXG5pbXBvcnQgeyBBZ2VudEVudGl0eSwgQWdlbnRUeXBlIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvYWdlbnQnXG5pbXBvcnQgeyBDb250ZXh0TWVzc2FnZSB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2NvbnRleHRNZW50aW9uJ1xuaW1wb3J0IHsgZmV0Y2hNYWlhIH0gZnJvbSAnLi4vY2xpZW50J1xuaW1wb3J0IHtcbiAgRklMRV9GT1JNQVRfRVhURU5TSU9OUyxcbiAgRklMRV9QUkVTRU5UQVRJT05fRk9STUFUX0VYVEVOU0lPTlMsXG4gIEZJTEVfTUFJQV9WSVNJT05fRk9STUFUX0VYVEVOU0lPTlMsXG4gIEZJTEVfQVVESU9fRk9STUFUX0VYVEVOU0lPTlMsXG4gIGdldE1heEF0dGFjaG1lbnRTaXplTWIsXG59IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9mb3JtYXRFeHRlbnNpb25zJ1xuXG4vKiogQ29kaWZpY2EgSlNPTiBVVEYtOCBlbiBiYXNlNjQgcGFyYSBoZWFkZXJzIEhUVFAgKGV2aXRhIHByb2JsZW1hcyBjb24gY2FyYWN0ZXJlcyBlc3BlY2lhbGVzKS4gKi9cbmNvbnN0IGVuY29kZUNvbnRleHREYXRhSGVhZGVyID0gKGNvbnRleHREYXRhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IHN0cmluZyA9PiB7XG4gIGNvbnN0IGpzb24gPSBKU09OLnN0cmluZ2lmeShjb250ZXh0RGF0YSlcbiAgY29uc3QgYnl0ZXMgPSBuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUoanNvbilcbiAgbGV0IGJpbmFyeSA9ICcnXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgYnl0ZXMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICBiaW5hcnkgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShieXRlc1tpXSEpXG4gIH1cbiAgcmV0dXJuIGJ0b2EoYmluYXJ5KVxufVxuXG50eXBlIE9yY2hlc3RyYXRvclJlcXVlc3QgPSB7XG4gIGlucHV0OiBzdHJpbmdcbiAgcHJvamVjdElkPzogbnVtYmVyXG4gIGxhbmc6IHN0cmluZ1xuICB1c2VySWQ6IHN0cmluZ1xuICBmaXJzdE5hbWU/OiBzdHJpbmdcbiAgbGFzdE5hbWU/OiBzdHJpbmdcbiAgY29tcGFueUlkOiBzdHJpbmdcbiAgY2hhdElkOiBzdHJpbmdcbiAgaGlzdG9yeTogQ2hhdEhpc3RvcnlbXVxuICBtZXNzYWdlSWQ6IHN0cmluZ1xuICBjbGllbnRJZD86IG51bWJlclxuICBjbGllbnROYW1lPzogc3RyaW5nXG4gIGZlZUlkPzogbnVtYmVyXG4gIGFnZW50TmFtZTogc3RyaW5nXG4gIGFnZW50SWQ6IG51bWJlciB8IHN0cmluZ1xuICBpc1dlYlNlYXJjaEFjdGl2ZT86IGJvb2xlYW5cbiAgaXNEZWVwU2VhcmNoQWN0aXZlPzogYm9vbGVhblxuICBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW11cbiAgcHJvamVjdE5hbWU/OiBzdHJpbmdcbiAgdGFza0lkPzogbnVtYmVyXG4gIHRhc2tOYW1lPzogc3RyaW5nXG4gIGZhcUlkPzogc3RyaW5nXG4gIGFnZW50U3VnZ2VzdGlvbklkPzogc3RyaW5nXG4gIGZ1YUlkPzogc3RyaW5nXG4gIHNjSWQ/OiBzdHJpbmdcbiAgYWdlbnRFbnRpdHk/OiBBZ2VudEVudGl0eVxuICBhZ2VudFR5cGU/OiBBZ2VudFR5cGVcbiAgLyoqXG4gICAqIEVudGlkYWRlcyBtZW5jaW9uYWRhcyBjb24gYEBgIGVuIEVTRSBtZW5zYWplLiBTZSBpbnllY3RhIGNvbW9cbiAgICogYGNvbnRleHRfbWVzc2FnZWAgZGVudHJvIGRlIGxhIG1ldGFkYXRhIGRlbCBvcmNoZXN0cmF0b3IgeSBzb2xvIHZpdmUgZW5cbiAgICogZXNlIHR1cm5vIChubyBwcm9wYWdhIGFsIGNvbnRleHRvIGdsb2JhbCBuaSBhIGZ1dHVyb3MgbWVuc2FqZXMpLlxuICAgKi9cbiAgY29udGV4dE1lc3NhZ2U/OiBDb250ZXh0TWVzc2FnZVxuICAvKiogUGF5bG9hZCBkZWwgYmFubmVyIChob3N0IENPUikgZW52aWFkbyBjb21vIGhlYWRlciBgWC1Db250ZXh0LURhdGFgIChKU09OIGVuIGJhc2U2NCkuICovXG4gIGNvbnRleHREYXRhPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbn1cblxuY29uc3QgTUFYX0ZJTEVTID0gNVxuY29uc3QgQUxMT1dFRF9GSUxFX0VYVEVOU0lPTlMgPSBbXG4gICcudHh0JyxcbiAgJy5tZCcsXG4gICcuY3N2JyxcbiAgJy5kb2MnLFxuICAnLmRvY3gnLFxuICAnLnBwdCcsXG4gICcucHB0eCcsXG4gICcucG5nJyxcbiAgJy5qcGcnLFxuICAnLmpwZWcnLFxuICAnLnBkZicsXG4gICcueGxzeCcsXG4gICcueGxzJyxcbiAgJy5mbGFjJyxcbiAgJy5tNGEnLFxuICAnLm1wMycsXG4gICcubXA0JyxcbiAgJy5vZ2EnLFxuICAnLm9nZycsXG4gICcud2F2JyxcbiAgJy53ZWJtJyxcbl1cblxuY29uc3QgdmFsaWRhdGVBdHRhY2htZW50cyA9IChhdHRhY2htZW50czogQXR0YWNobWVudEZpbGVbXSk6IHZvaWQgPT4ge1xuICBpZiAoYXR0YWNobWVudHMubGVuZ3RoID4gTUFYX0ZJTEVTKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBNw6F4aW1vICR7TUFYX0ZJTEVTfSBhcmNoaXZvcyBwZXJtaXRpZG9zYClcbiAgfVxuXG4gIGF0dGFjaG1lbnRzLmZvckVhY2goYXR0YWNobWVudCA9PiB7XG4gICAgLy8gVmFsaWRhciBleHRlbnNpw7NuIGRlbCBhcmNoaXZvXG4gICAgY29uc3QgZmlsZUV4dGVuc2lvbiA9IGF0dGFjaG1lbnQubmFtZS50b0xvd2VyQ2FzZSgpLnN1YnN0cmluZyhhdHRhY2htZW50Lm5hbWUubGFzdEluZGV4T2YoJy4nKSlcbiAgICBpZiAoIUFMTE9XRURfRklMRV9FWFRFTlNJT05TLmluY2x1ZGVzKGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBFbCBhcmNoaXZvIFwiJHthdHRhY2htZW50Lm5hbWV9XCIgbm8gdGllbmUgdW4gZm9ybWF0byBzb3BvcnRhZG8uIEZvcm1hdG9zIHBlcm1pdGlkb3M6ICR7QUxMT1dFRF9GSUxFX0VYVEVOU0lPTlMuam9pbignLCAnKX1gXG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVmFsaWRhciB0YW1hw7FvIGRlbCBhcmNoaXZvIHNlZ8O6biBlbCB0aXBvXG4gICAgY29uc3QgZmlsZVNpemUgPSB0eXBlb2YgYXR0YWNobWVudC5zaXplID09PSAnbnVtYmVyJyA/IGF0dGFjaG1lbnQuc2l6ZSA6IE51bWJlcihhdHRhY2htZW50LnNpemUpXG4gICAgY29uc3QgbWF4U2l6ZU1iID0gZ2V0TWF4QXR0YWNobWVudFNpemVNYihmaWxlRXh0ZW5zaW9uKVxuICAgIGNvbnN0IG1heFNpemVCeXRlcyA9IG1heFNpemVNYiAqIDEwMjQgKiAxMDI0XG5cbiAgICBpZiAoXG4gICAgICAoRklMRV9GT1JNQVRfRVhURU5TSU9OUy5pbmNsdWRlcyhmaWxlRXh0ZW5zaW9uKSB8fFxuICAgICAgICBGSUxFX1BSRVNFTlRBVElPTl9GT1JNQVRfRVhURU5TSU9OUy5pbmNsdWRlcyhmaWxlRXh0ZW5zaW9uKSB8fFxuICAgICAgICBGSUxFX01BSUFfVklTSU9OX0ZPUk1BVF9FWFRFTlNJT05TLmluY2x1ZGVzKGZpbGVFeHRlbnNpb24pIHx8XG4gICAgICAgIEZJTEVfQVVESU9fRk9STUFUX0VYVEVOU0lPTlMuaW5jbHVkZXMoZmlsZUV4dGVuc2lvbikpICYmXG4gICAgICBmaWxlU2l6ZSA+IG1heFNpemVCeXRlc1xuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBFbCBhcmNoaXZvIFwiJHthdHRhY2htZW50Lm5hbWV9XCIgZXhjZWRlIGVsIHRhbWHDsW8gbcOheGltbyBkZSAke21heFNpemVNYn1NQmApXG4gICAgfVxuICB9KVxufVxuXG50eXBlIENvbnRpbnVlVGhyZWFkUmVxdWVzdCA9IHtcbiAgdGhyZWFkSWRzOiBzdHJpbmdbXVxuICBzZXNzaW9uSWQ6IHN0cmluZ1xuICBkZWNpc2lvbjogJ2FwcHJvdmUnIHwgJ2VkaXQnIHwgJ3JlamVjdCdcbiAgZWRpdGVkQWN0aW9ucz86IEFycmF5PHsgdG9vbF9uYW1lOiBzdHJpbmc7IGFyZ3M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IH0+XG4gIGFnZW50SWQ6IG51bWJlciB8IHN0cmluZ1xuICBsYW5nOiBzdHJpbmdcbn1cblxuY29uc3QgdG9SZXRyeUxvY2FsZSA9IChsYW5nOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBpZiAobGFuZyA9PT0gJ2JyJykgcmV0dXJuICdwdC1CUidcbiAgaWYgKGxhbmcgPT09ICdlcycpIHJldHVybiAnZXMtQVInXG4gIGlmIChsYW5nID09PSAnZnInKSByZXR1cm4gJ2ZyLUZSJ1xuICByZXR1cm4gJ2VuLVVTJ1xufVxuXG5leHBvcnQgdHlwZSBSZXRyeUNvbXBsZXRpb25SZXF1ZXN0ID0ge1xuICBzZXNzaW9uSWQ6IHN0cmluZ1xuICBtZW1vcnlTZXNzaW9uSWQ6IHN0cmluZ1xuICBhZ2VudElkOiBudW1iZXIgfCBzdHJpbmdcbiAgbGFuZzogc3RyaW5nXG4gIGlzV2ViU2VhcmNoQWN0aXZlPzogYm9vbGVhblxuICBpc0RlZXBTZWFyY2hBY3RpdmU/OiBib29sZWFuXG4gIHByb2plY3RJZD86IG51bWJlclxuICBjbGllbnRJZD86IG51bWJlclxuICB0YXNrSWQ/OiBudW1iZXJcbiAgYWdlbnRUeXBlPzogQWdlbnRUeXBlXG4gIGNvbnRleHREYXRhPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbn1cblxuZXhwb3J0IGNvbnN0IHJldHJ5Q29tcGxldGlvbiA9IGFzeW5jIChib2R5OiBSZXRyeUNvbXBsZXRpb25SZXF1ZXN0LCBzaWduYWw/OiBBYm9ydFNpZ25hbCk6IFByb21pc2U8UmVzcG9uc2U+ID0+IHtcbiAgY29uc3Qge1xuICAgIHNlc3Npb25JZCxcbiAgICBtZW1vcnlTZXNzaW9uSWQsXG4gICAgYWdlbnRJZCxcbiAgICBsYW5nLFxuICAgIGlzV2ViU2VhcmNoQWN0aXZlLFxuICAgIGlzRGVlcFNlYXJjaEFjdGl2ZSxcbiAgICBwcm9qZWN0SWQsXG4gICAgY2xpZW50SWQsXG4gICAgdGFza0lkLFxuICAgIGFnZW50VHlwZSxcbiAgICBjb250ZXh0RGF0YSxcbiAgfSA9IGJvZHlcblxuICBsZXQgcGF0aCA9ICdvcmNoZXN0cmF0b3IvcmV0cnlfY29tcGxldGlvbj9tb2RlPXN0cmVhbSdcbiAgaWYgKGlzV2ViU2VhcmNoQWN0aXZlID09PSB0cnVlKSB7XG4gICAgcGF0aCArPSAnJnNlYXJjaF93ZWI9dHJ1ZSdcbiAgfVxuICBpZiAoaXNEZWVwU2VhcmNoQWN0aXZlID09PSB0cnVlKSB7XG4gICAgcGF0aCArPSAnJnNlYXJjaF93ZWI9dHJ1ZSZkZXB0aD10cnVlJ1xuICB9XG5cbiAgY29uc3QgaGVhZGVyczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAnWC1BZ2VudC1JZCc6IGFnZW50SWQudG9TdHJpbmcoKSxcbiAgICAnQWNjZXB0LUxhbmd1YWdlJzogbWFwQ09STGFuZyhsYW5nKSxcbiAgfVxuXG4gIGlmIChhZ2VudFR5cGUgPT09ICdvcmNoZXN0cmF0b3InKSB7XG4gICAgbGV0IGNvbnRleHRJZCA9ICcnXG4gICAgaWYgKHRhc2tJZCAhPSBudWxsKSBjb250ZXh0SWQgPSBgdGFzazoke3Rhc2tJZH1gXG4gICAgZWxzZSBpZiAocHJvamVjdElkICE9IG51bGwpIGNvbnRleHRJZCA9IGBwcm9qZWN0OiR7cHJvamVjdElkfWBcbiAgICBlbHNlIGlmIChjbGllbnRJZCAhPSBudWxsKSBjb250ZXh0SWQgPSBgY2xpZW50OiR7Y2xpZW50SWR9YFxuICAgIGlmIChjb250ZXh0SWQpIHtcbiAgICAgIGhlYWRlcnNbJ1gtQ29udGV4dC1JZCddID0gY29udGV4dElkXG4gICAgfVxuICB9XG5cbiAgaWYgKGNvbnRleHREYXRhICYmIE9iamVjdC5rZXlzKGNvbnRleHREYXRhKS5sZW5ndGggPiAwKSB7XG4gICAgaGVhZGVyc1snWC1Db250ZXh0LURhdGEnXSA9IGVuY29kZUNvbnRleHREYXRhSGVhZGVyKGNvbnRleHREYXRhKVxuICB9XG5cbiAgY29uc3QgdGltZXpvbmUgPVxuICAgIHR5cGVvZiBJbnRsICE9PSAndW5kZWZpbmVkJyA/IEludGwuRGF0ZVRpbWVGb3JtYXQoKS5yZXNvbHZlZE9wdGlvbnMoKS50aW1lWm9uZSA6ICdBbWVyaWNhL0J1ZW5vc19BaXJlcydcblxuICByZXR1cm4gZmV0Y2hNYWlhKHtcbiAgICBwYXRoLFxuICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgIGhlYWRlcnMsXG4gICAgYm9keToge1xuICAgICAgc2Vzc2lvbl9pZDogc2Vzc2lvbklkLFxuICAgICAgcGFyZW50X21lc3NhZ2VfdXVpZDogbWVtb3J5U2Vzc2lvbklkLFxuICAgICAgdHVybl9tZXNzYWdlX3V1aWRzOiB7IGFzc2lzdGFudF9tZXNzYWdlX3V1aWQ6IG1lbW9yeVNlc3Npb25JZCB9LFxuICAgICAgbWVtb3J5X3Nlc3Npb25faWQ6IG1lbW9yeVNlc3Npb25JZCxcbiAgICAgIHByb21wdDogJycsXG4gICAgICBsb2NhbGU6IHRvUmV0cnlMb2NhbGUobGFuZyksXG4gICAgICB0aW1lem9uZSxcbiAgICAgIG1ldGFkYXRhOiB7fSxcbiAgICB9LFxuICAgIHNpZ25hbCxcbiAgfSlcbn1cblxuZXhwb3J0IGNvbnN0IGNvbnRpbnVlVGhyZWFkID0gYXN5bmMgKGJvZHk6IENvbnRpbnVlVGhyZWFkUmVxdWVzdCwgc2lnbmFsPzogQWJvcnRTaWduYWwpOiBQcm9taXNlPFJlc3BvbnNlPiA9PiB7XG4gIGNvbnN0IHsgdGhyZWFkSWRzLCBzZXNzaW9uSWQsIGRlY2lzaW9uLCBlZGl0ZWRBY3Rpb25zLCBhZ2VudElkLCBsYW5nIH0gPSBib2R5XG5cbiAgY29uc3QgcmVxdWVzdEJvZHk6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge1xuICAgIHRocmVhZF9pZHM6IHRocmVhZElkcyxcbiAgICBzZXNzaW9uX2lkOiBzZXNzaW9uSWQsXG4gICAgZGVjaXNpb24sXG4gIH1cblxuICBpZiAoZGVjaXNpb24gPT09ICdlZGl0JyAmJiBlZGl0ZWRBY3Rpb25zKSB7XG4gICAgcmVxdWVzdEJvZHkuZWRpdGVkX2FjdGlvbnMgPSBlZGl0ZWRBY3Rpb25zXG4gIH1cblxuICByZXR1cm4gZmV0Y2hNYWlhKHtcbiAgICBwYXRoOiAnb3JjaGVzdHJhdG9yL2NvbnRpbnVlLXRocmVhZD9tb2RlPXN0cmVhbScsXG4gICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgaGVhZGVyczoge1xuICAgICAgJ1gtQWdlbnQtSWQnOiBhZ2VudElkLnRvU3RyaW5nKCksXG4gICAgICAnQWNjZXB0LUxhbmd1YWdlJzogbWFwQ09STGFuZyhsYW5nKSxcbiAgICB9LFxuICAgIGJvZHk6IHJlcXVlc3RCb2R5LFxuICAgIHNpZ25hbCxcbiAgfSlcbn1cblxuZXhwb3J0IGNvbnN0IG9yY2hlc3RyYXRvciA9IGFzeW5jIChib2R5OiBPcmNoZXN0cmF0b3JSZXF1ZXN0LCBzaWduYWw/OiBBYm9ydFNpZ25hbCk6IFByb21pc2U8UmVzcG9uc2U+ID0+IHtcbiAgY29uc3Qge1xuICAgIGlucHV0LFxuICAgIHByb2plY3RJZCxcbiAgICBsYW5nLFxuICAgIHVzZXJJZCxcbiAgICBmaXJzdE5hbWUsXG4gICAgbGFzdE5hbWUsXG4gICAgY2hhdElkLFxuICAgIGNsaWVudElkLFxuICAgIGNsaWVudE5hbWUsXG4gICAgZmVlSWQsXG4gICAgYWdlbnRJZCxcbiAgICBpc1dlYlNlYXJjaEFjdGl2ZSxcbiAgICBpc0RlZXBTZWFyY2hBY3RpdmUsXG4gICAgYXR0YWNobWVudHMsXG4gICAgcHJvamVjdE5hbWUsXG4gICAgdGFza0lkLFxuICAgIHRhc2tOYW1lLFxuICAgIGZhcUlkLFxuICAgIGFnZW50U3VnZ2VzdGlvbklkLFxuICAgIGZ1YUlkLFxuICAgIHNjSWQsXG4gICAgYWdlbnRFbnRpdHksXG4gICAgYWdlbnRUeXBlLFxuICAgIGNvbnRleHRNZXNzYWdlLFxuICAgIGNvbnRleHREYXRhLFxuICB9ID0gYm9keVxuXG4gIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKClcbiAgZm9ybURhdGEuYXBwZW5kKCdpbnB1dCcsIGlucHV0KVxuICBmb3JtRGF0YS5hcHBlbmQoJ3Nlc3Npb25faWQnLCBjaGF0SWQpXG5cbiAgaWYgKGF0dGFjaG1lbnRzPy5sZW5ndGgpIHtcbiAgICB2YWxpZGF0ZUF0dGFjaG1lbnRzKGF0dGFjaG1lbnRzKVxuXG4gICAgYXR0YWNobWVudHMuZm9yRWFjaChhdHRhY2htZW50ID0+IHtcbiAgICAgIC8vIFVzYXIgZWwgYXJjaGl2byBvcmlnaW5hbCBzaSBleGlzdGUgKHBhcmEgaW3DoWdlbmVzIHByb2Nlc2FkYXMpLCBzaW5vIHVzYXIgZWwgYXJjaGl2byBub3JtYWxcbiAgICAgIGNvbnN0IGZpbGVUb1NlbmQgPSBhdHRhY2htZW50Lm9yaWdpbmFsRmlsZSB8fCBhdHRhY2htZW50LmZpbGVcbiAgICAgIGZvcm1EYXRhLmFwcGVuZCgnZmlsZXMnLCBmaWxlVG9TZW5kKVxuICAgIH0pXG4gIH1cblxuICBsZXQgbWV0YWRhdGE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gIGlmIChhZ2VudEVudGl0eSA9PT0gJ2dsb2JhbCcgJiYgYWdlbnRUeXBlICE9PSAnb3JjaGVzdHJhdG9yJykge1xuICAgIG1ldGFkYXRhID0ge31cbiAgfSBlbHNlIHtcbiAgICBtZXRhZGF0YSA9IHtcbiAgICAgIGxhbmc6IG1hcENPUkxhbmcobGFuZyksXG4gICAgICAuLi4odXNlcklkID8geyB1c2VyX2lkOiB1c2VySWQgfSA6IHt9KSxcbiAgICAgIC4uLihmaXJzdE5hbWUgPyB7IGZpcnN0X25hbWU6IGZpcnN0TmFtZSB9IDoge30pLFxuICAgICAgLi4uKGxhc3ROYW1lID8geyBsYXN0X25hbWU6IGxhc3ROYW1lIH0gOiB7fSksXG4gICAgICAuLi4oZmVlSWQgIT0gbnVsbCA/IHsgZmVlX2lkOiBmZWVJZCB9IDoge30pLFxuICAgICAgLi4uKGNsaWVudElkICE9IG51bGwgPyB7IGNsaWVudF9pZDogY2xpZW50SWQgfSA6IHt9KSxcbiAgICAgIC4uLihjbGllbnROYW1lID8geyBjbGllbnRfbmFtZTogY2xpZW50TmFtZSB9IDoge30pLFxuICAgICAgLi4uKHByb2plY3RJZCA/IHsgcHJvamVjdF9pZDogcHJvamVjdElkIH0gOiB7fSksXG4gICAgICAuLi4ocHJvamVjdE5hbWUgPyB7IHByb2plY3RfbmFtZTogcHJvamVjdE5hbWUgfSA6IHt9KSxcbiAgICAgIC4uLih0YXNrSWQgIT0gbnVsbCA/IHsgdGFza19pZDogdGFza0lkIH0gOiB7fSksXG4gICAgICAuLi4odGFza05hbWUgPyB7IHRhc2tfbmFtZTogdGFza05hbWUgfSA6IHt9KSxcbiAgICAgIHN1YmRvbWFpbjogd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lLnNwbGl0KCcuJylbMF0sXG4gICAgICAuLi4oY29udGV4dE1lc3NhZ2UgJiYgT2JqZWN0LmtleXMoY29udGV4dE1lc3NhZ2UpLmxlbmd0aCA+IDAgPyB7IGNvbnRleHRfbWVzc2FnZTogY29udGV4dE1lc3NhZ2UgfSA6IHt9KSxcbiAgICB9XG4gIH1cbiAgZm9ybURhdGEuYXBwZW5kKCdtZXRhZGF0YScsIEpTT04uc3RyaW5naWZ5KG1ldGFkYXRhKSlcblxuICBsZXQgcGF0aCA9ICdvcmNoZXN0cmF0b3I/bW9kZT1zdHJlYW0nXG4gIGlmIChpc1dlYlNlYXJjaEFjdGl2ZSA9PT0gdHJ1ZSkge1xuICAgIHBhdGggKz0gJyZzZWFyY2hfd2ViPXRydWUnXG4gIH1cbiAgaWYgKGlzRGVlcFNlYXJjaEFjdGl2ZSA9PT0gdHJ1ZSkge1xuICAgIHBhdGggKz0gJyZzZWFyY2hfd2ViPXRydWUmZGVwdGg9dHJ1ZSdcbiAgfVxuXG4gIGNvbnN0IGhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgJ1gtQWdlbnQtSWQnOiBhZ2VudElkLnRvU3RyaW5nKCksXG4gIH1cblxuICAvLyBQaW4gZGUgY29udGV4dG8gKFJGQyDCpzkuMSk6IGVsIGhlYWRlciBsZSBkaWNlIGFsIHJvdXRlciBhIHF1acOpbiBkZXJpdmFyIGFudGVzIGRlIHBhcnNlYXIgZWwgYm9keS5cbiAgLy8gTW9uby1lbnRpZGFkIGNvbiBwcmlvcmlkYWQgcG9yIGplcmFycXXDrWEgKHRhcmVhID4gcHJveWVjdG8gPiBjbGllbnRlKS5cbiAgLy8gU29sbyBhcGxpY2EgYWwgb3JxdWVzdGFkb3IgKE1BSUEpOiBlcyBlbCDDum5pY28gYWdlbnRlIHNpbiBzY29wZSBwcm9waW8sIGRvbmRlIGVsIHBpbiBkZWZpbmUgbGEgZGVyaXZhY2nDs24uXG4gIC8vIEVsIHNjb3BlIHBlcnNpc3RlbnRlIGVuIGBtZXRhZGF0YWAgKHByb2plY3RfaWQvY2xpZW50X2lkL3Rhc2tfaWQpIGVzIGxhIFwiY29sZWNjacOzbiBkZSB1bm9cIiBhcnJheS1yZWFkeS5cbiAgaWYgKGFnZW50VHlwZSA9PT0gJ29yY2hlc3RyYXRvcicpIHtcbiAgICBsZXQgY29udGV4dElkID0gJydcbiAgICBpZiAodGFza0lkICE9IG51bGwpIGNvbnRleHRJZCA9IGB0YXNrOiR7dGFza0lkfWBcbiAgICBlbHNlIGlmIChwcm9qZWN0SWQgIT0gbnVsbCkgY29udGV4dElkID0gYHByb2plY3Q6JHtwcm9qZWN0SWR9YFxuICAgIGVsc2UgaWYgKGNsaWVudElkICE9IG51bGwpIGNvbnRleHRJZCA9IGBjbGllbnQ6JHtjbGllbnRJZH1gXG4gICAgaWYgKGNvbnRleHRJZCkge1xuICAgICAgaGVhZGVyc1snWC1Db250ZXh0LUlkJ10gPSBjb250ZXh0SWRcbiAgICB9XG4gIH1cblxuICBpZiAoZmFxSWQpIHtcbiAgICBoZWFkZXJzWydYLUZhcS1JZCddID0gZmFxSWRcbiAgfVxuXG4gIGlmIChhZ2VudFN1Z2dlc3Rpb25JZCAmJiBhZ2VudEVudGl0eSA9PT0gJ2dsb2JhbCcpIHtcbiAgICBoZWFkZXJzWydYLUFnZW50LVN1Z2dlc3Rpb24nXSA9IGFnZW50U3VnZ2VzdGlvbklkXG4gIH1cblxuICBpZiAoZnVhSWQpIHtcbiAgICBoZWFkZXJzWydYLUZ1YS1JZCddID0gZnVhSWRcbiAgfVxuXG4gIGlmIChzY0lkKSB7XG4gICAgaGVhZGVyc1snWC1TQy1JZCddID0gc2NJZFxuICB9XG5cbiAgaWYgKGNvbnRleHREYXRhICYmIE9iamVjdC5rZXlzKGNvbnRleHREYXRhKS5sZW5ndGggPiAwKSB7XG4gICAgaGVhZGVyc1snWC1Db250ZXh0LURhdGEnXSA9IGVuY29kZUNvbnRleHREYXRhSGVhZGVyKGNvbnRleHREYXRhKVxuICB9XG5cbiAgcmV0dXJuIGZldGNoTWFpYSh7XG4gICAgcGF0aCxcbiAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICBoZWFkZXJzLFxuICAgIGJvZHk6IGZvcm1EYXRhLFxuICAgIHNpZ25hbCxcbiAgfSlcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTtBQUNBO0FBQ0E7O0FBRUEsU0FBU0EsVUFBVSxRQUFRLHFCQUFxQjtBQUloRCxTQUFTQyxTQUFTLFFBQVEsV0FBVztBQUNyQyxTQUNFQyxzQkFBc0IsRUFDdEJDLG1DQUFtQyxFQUNuQ0Msa0NBQWtDLEVBQ2xDQyw0QkFBNEIsRUFDNUJDLHNCQUFzQixRQUNqQixxQ0FBcUM7O0FBRTVDO0FBQ0EsSUFBTUMsdUJBQXVCLEdBQUcsU0FBMUJBLHVCQUF1QkEsQ0FBSUMsV0FBb0MsRUFBYTtFQUNoRixJQUFNQyxJQUFJLEdBQUdDLElBQUksQ0FBQ0MsU0FBUyxDQUFDSCxXQUFXLENBQUM7RUFDeEMsSUFBTUksS0FBSyxHQUFHLElBQUlDLFdBQVcsQ0FBQyxDQUFDLENBQUNDLE1BQU0sQ0FBQ0wsSUFBSSxDQUFDO0VBQzVDLElBQUlNLE1BQU0sR0FBRyxFQUFFO0VBQ2YsS0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxFQUFFQSxDQUFDLEdBQUdKLEtBQUssQ0FBQ0ssTUFBTSxFQUFFRCxDQUFDLElBQUksQ0FBQyxFQUFFO0lBQ3hDRCxNQUFNLElBQUlHLE1BQU0sQ0FBQ0MsWUFBWSxDQUFDUCxLQUFLLENBQUNJLENBQUMsQ0FBRSxDQUFDO0VBQzFDO0VBQ0EsT0FBT0ksSUFBSSxDQUFDTCxNQUFNLENBQUM7QUFDckIsQ0FBQztBQXdDRCxJQUFNTSxTQUFTLEdBQUcsQ0FBQztBQUNuQixJQUFNQyx1QkFBdUIsR0FBRyxDQUM5QixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEVBQ04sT0FBTyxFQUNQLE1BQU0sRUFDTixPQUFPLEVBQ1AsTUFBTSxFQUNOLE1BQU0sRUFDTixPQUFPLEVBQ1AsTUFBTSxFQUNOLE9BQU8sRUFDUCxNQUFNLEVBQ04sT0FBTyxFQUNQLE1BQU0sRUFDTixNQUFNLEVBQ04sTUFBTSxFQUNOLE1BQU0sRUFDTixNQUFNLEVBQ04sTUFBTSxFQUNOLE9BQU8sQ0FDUjtBQUVELElBQU1DLG1CQUFtQixHQUFHLFNBQXRCQSxtQkFBbUJBLENBQUlDLFdBQTZCLEVBQVc7RUFDbkUsSUFBSUEsV0FBVyxDQUFDUCxNQUFNLEdBQUdJLFNBQVMsRUFBRTtJQUNsQyxNQUFNLElBQUlJLEtBQUssY0FBQUMsTUFBQSxDQUFXTCxTQUFTLHlCQUFzQixDQUFDO0VBQzVEO0VBRUFHLFdBQVcsQ0FBQ0csT0FBTyxDQUFDLFVBQUFDLFVBQVUsRUFBSTtJQUNoQztJQUNBLElBQU1DLGFBQWEsR0FBR0QsVUFBVSxDQUFDRSxJQUFJLENBQUNDLFdBQVcsQ0FBQyxDQUFDLENBQUNDLFNBQVMsQ0FBQ0osVUFBVSxDQUFDRSxJQUFJLENBQUNHLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvRixJQUFJLENBQUNYLHVCQUF1QixDQUFDWSxRQUFRLENBQUNMLGFBQWEsQ0FBQyxFQUFFO01BQ3BELE1BQU0sSUFBSUosS0FBSyxpQkFBQUMsTUFBQSxDQUNFRSxVQUFVLENBQUNFLElBQUksNkRBQUFKLE1BQUEsQ0FBeURKLHVCQUF1QixDQUFDYSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQzNILENBQUM7SUFDSDs7SUFFQTtJQUNBLElBQU1DLFFBQVEsR0FBRyxPQUFPUixVQUFVLENBQUNTLElBQUksS0FBSyxRQUFRLEdBQUdULFVBQVUsQ0FBQ1MsSUFBSSxHQUFHQyxNQUFNLENBQUNWLFVBQVUsQ0FBQ1MsSUFBSSxDQUFDO0lBQ2hHLElBQU1FLFNBQVMsR0FBR2pDLHNCQUFzQixDQUFDdUIsYUFBYSxDQUFDO0lBQ3ZELElBQU1XLFlBQVksR0FBR0QsU0FBUyxHQUFHLElBQUksR0FBRyxJQUFJO0lBRTVDLElBQ0UsQ0FBQ3JDLHNCQUFzQixDQUFDZ0MsUUFBUSxDQUFDTCxhQUFhLENBQUMsSUFDN0MxQixtQ0FBbUMsQ0FBQytCLFFBQVEsQ0FBQ0wsYUFBYSxDQUFDLElBQzNEekIsa0NBQWtDLENBQUM4QixRQUFRLENBQUNMLGFBQWEsQ0FBQyxJQUMxRHhCLDRCQUE0QixDQUFDNkIsUUFBUSxDQUFDTCxhQUFhLENBQUMsS0FDdERPLFFBQVEsR0FBR0ksWUFBWSxFQUN2QjtNQUNBLE1BQU0sSUFBSWYsS0FBSyxpQkFBQUMsTUFBQSxDQUFnQkUsVUFBVSxDQUFDRSxJQUFJLDBDQUFBSixNQUFBLENBQWdDYSxTQUFTLE9BQUksQ0FBQztJQUM5RjtFQUNGLENBQUMsQ0FBQztBQUNKLENBQUM7QUFXRCxJQUFNRSxhQUFhLEdBQUcsU0FBaEJBLGFBQWFBLENBQUlDLElBQVksRUFBYTtFQUM5QyxJQUFJQSxJQUFJLEtBQUssSUFBSSxFQUFFLE9BQU8sT0FBTztFQUNqQyxJQUFJQSxJQUFJLEtBQUssSUFBSSxFQUFFLE9BQU8sT0FBTztFQUNqQyxJQUFJQSxJQUFJLEtBQUssSUFBSSxFQUFFLE9BQU8sT0FBTztFQUNqQyxPQUFPLE9BQU87QUFDaEIsQ0FBQztBQWdCRCxPQUFPLElBQU1DLGVBQWU7RUFBQSxJQUFBQyxJQUFBLEdBQUFDLGlCQUFBLGNBQUFDLG1CQUFBLENBQUFDLElBQUEsQ0FBRyxTQUFBQyxRQUFPQyxJQUE0QixFQUFFQyxNQUFvQjtJQUFBLElBQUFDLFNBQUEsRUFBQUMsZUFBQSxFQUFBQyxPQUFBLEVBQUFYLElBQUEsRUFBQVksaUJBQUEsRUFBQUMsa0JBQUEsRUFBQUMsU0FBQSxFQUFBQyxRQUFBLEVBQUFDLE1BQUEsRUFBQUMsU0FBQSxFQUFBbkQsV0FBQSxFQUFBb0QsSUFBQSxFQUFBQyxPQUFBLEVBQUFDLFNBQUEsRUFBQUMsUUFBQTtJQUFBLE9BQUFqQixtQkFBQSxDQUFBa0IsSUFBQSxXQUFBQyxRQUFBO01BQUEsa0JBQUFBLFFBQUEsQ0FBQUMsSUFBQSxHQUFBRCxRQUFBLENBQUFFLElBQUE7UUFBQTtVQUVwRmhCLFNBQVMsR0FXUEYsSUFBSSxDQVhORSxTQUFTLEVBQ1RDLGVBQWUsR0FVYkgsSUFBSSxDQVZORyxlQUFlLEVBQ2ZDLE9BQU8sR0FTTEosSUFBSSxDQVROSSxPQUFPLEVBQ1BYLElBQUksR0FRRk8sSUFBSSxDQVJOUCxJQUFJLEVBQ0pZLGlCQUFpQixHQU9mTCxJQUFJLENBUE5LLGlCQUFpQixFQUNqQkMsa0JBQWtCLEdBTWhCTixJQUFJLENBTk5NLGtCQUFrQixFQUNsQkMsU0FBUyxHQUtQUCxJQUFJLENBTE5PLFNBQVMsRUFDVEMsUUFBUSxHQUlOUixJQUFJLENBSk5RLFFBQVEsRUFDUkMsTUFBTSxHQUdKVCxJQUFJLENBSE5TLE1BQU0sRUFDTkMsU0FBUyxHQUVQVixJQUFJLENBRk5VLFNBQVMsRUFDVG5ELFdBQVcsR0FDVHlDLElBQUksQ0FETnpDLFdBQVc7VUFHVG9ELElBQUksR0FBRywyQ0FBMkM7VUFDdEQsSUFBSU4saUJBQWlCLEtBQUssSUFBSSxFQUFFO1lBQzlCTSxJQUFJLElBQUksa0JBQWtCO1VBQzVCO1VBQ0EsSUFBSUwsa0JBQWtCLEtBQUssSUFBSSxFQUFFO1lBQy9CSyxJQUFJLElBQUksNkJBQTZCO1VBQ3ZDO1VBRU1DLE9BQStCLEdBQUc7WUFDdEMsWUFBWSxFQUFFUixPQUFPLENBQUNlLFFBQVEsQ0FBQyxDQUFDO1lBQ2hDLGlCQUFpQixFQUFFcEUsVUFBVSxDQUFDMEMsSUFBSTtVQUNwQyxDQUFDO1VBRUQsSUFBSWlCLFNBQVMsS0FBSyxjQUFjLEVBQUU7WUFDNUJHLFNBQVMsR0FBRyxFQUFFO1lBQ2xCLElBQUlKLE1BQU0sSUFBSSxJQUFJLEVBQUVJLFNBQVMsV0FBQXBDLE1BQUEsQ0FBV2dDLE1BQU0sQ0FBRSxNQUMzQyxJQUFJRixTQUFTLElBQUksSUFBSSxFQUFFTSxTQUFTLGNBQUFwQyxNQUFBLENBQWM4QixTQUFTLENBQUUsTUFDekQsSUFBSUMsUUFBUSxJQUFJLElBQUksRUFBRUssU0FBUyxhQUFBcEMsTUFBQSxDQUFhK0IsUUFBUSxDQUFFO1lBQzNELElBQUlLLFNBQVMsRUFBRTtjQUNiRCxPQUFPLENBQUMsY0FBYyxDQUFDLEdBQUdDLFNBQVM7WUFDckM7VUFDRjtVQUVBLElBQUl0RCxXQUFXLElBQUk2RCxNQUFNLENBQUNDLElBQUksQ0FBQzlELFdBQVcsQ0FBQyxDQUFDUyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3RENEMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLEdBQUd0RCx1QkFBdUIsQ0FBQ0MsV0FBVyxDQUFDO1VBQ2xFO1VBRU11RCxRQUFRLEdBQ1osT0FBT1EsSUFBSSxLQUFLLFdBQVcsR0FBR0EsSUFBSSxDQUFDQyxjQUFjLENBQUMsQ0FBQyxDQUFDQyxlQUFlLENBQUMsQ0FBQyxDQUFDQyxRQUFRLEdBQUcsc0JBQXNCO1VBQUEsT0FBQVQsUUFBQSxDQUFBVSxNQUFBLFdBRWxHMUUsU0FBUyxDQUFDO1lBQ2YyRCxJQUFJLEVBQUpBLElBQUk7WUFDSmdCLE1BQU0sRUFBRSxNQUFNO1lBQ2RmLE9BQU8sRUFBUEEsT0FBTztZQUNQWixJQUFJLEVBQUU7Y0FDSjRCLFVBQVUsRUFBRTFCLFNBQVM7Y0FDckIyQixtQkFBbUIsRUFBRTFCLGVBQWU7Y0FDcEMyQixrQkFBa0IsRUFBRTtnQkFBRUMsc0JBQXNCLEVBQUU1QjtjQUFnQixDQUFDO2NBQy9ENkIsaUJBQWlCLEVBQUU3QixlQUFlO2NBQ2xDOEIsTUFBTSxFQUFFLEVBQUU7Y0FDVkMsTUFBTSxFQUFFMUMsYUFBYSxDQUFDQyxJQUFJLENBQUM7Y0FDM0JxQixRQUFRLEVBQVJBLFFBQVE7Y0FDUnFCLFFBQVEsRUFBRSxDQUFDO1lBQ2IsQ0FBQztZQUNEbEMsTUFBTSxFQUFOQTtVQUNGLENBQUMsQ0FBQztRQUFBO1FBQUE7VUFBQSxPQUFBZSxRQUFBLENBQUFvQixJQUFBO01BQUE7SUFBQSxHQUFBckMsT0FBQTtFQUFBLENBQ0g7RUFBQSxnQkE3RFlMLGVBQWVBLENBQUEyQyxFQUFBLEVBQUFDLEdBQUE7SUFBQSxPQUFBM0MsSUFBQSxDQUFBNEMsS0FBQSxPQUFBQyxTQUFBO0VBQUE7QUFBQSxHQTZEM0I7QUFFRCxPQUFPLElBQU1DLGNBQWM7RUFBQSxJQUFBQyxLQUFBLEdBQUE5QyxpQkFBQSxjQUFBQyxtQkFBQSxDQUFBQyxJQUFBLENBQUcsU0FBQTZDLFNBQU8zQyxJQUEyQixFQUFFQyxNQUFvQjtJQUFBLElBQUEyQyxTQUFBLEVBQUExQyxTQUFBLEVBQUEyQyxRQUFBLEVBQUFDLGFBQUEsRUFBQTFDLE9BQUEsRUFBQVgsSUFBQSxFQUFBc0QsV0FBQTtJQUFBLE9BQUFsRCxtQkFBQSxDQUFBa0IsSUFBQSxXQUFBaUMsU0FBQTtNQUFBLGtCQUFBQSxTQUFBLENBQUEvQixJQUFBLEdBQUErQixTQUFBLENBQUE5QixJQUFBO1FBQUE7VUFDNUUwQixTQUFTLEdBQXdENUMsSUFBSSxDQUFyRTRDLFNBQVMsRUFBRTFDLFNBQVMsR0FBNkNGLElBQUksQ0FBMURFLFNBQVMsRUFBRTJDLFFBQVEsR0FBbUM3QyxJQUFJLENBQS9DNkMsUUFBUSxFQUFFQyxhQUFhLEdBQW9COUMsSUFBSSxDQUFyQzhDLGFBQWEsRUFBRTFDLE9BQU8sR0FBV0osSUFBSSxDQUF0QkksT0FBTyxFQUFFWCxJQUFJLEdBQUtPLElBQUksQ0FBYlAsSUFBSTtVQUU5RHNELFdBQW9DLEdBQUc7WUFDM0NFLFVBQVUsRUFBRUwsU0FBUztZQUNyQmhCLFVBQVUsRUFBRTFCLFNBQVM7WUFDckIyQyxRQUFRLEVBQVJBO1VBQ0YsQ0FBQztVQUVELElBQUlBLFFBQVEsS0FBSyxNQUFNLElBQUlDLGFBQWEsRUFBRTtZQUN4Q0MsV0FBVyxDQUFDRyxjQUFjLEdBQUdKLGFBQWE7VUFDNUM7VUFBQyxPQUFBRSxTQUFBLENBQUF0QixNQUFBLFdBRU0xRSxTQUFTLENBQUM7WUFDZjJELElBQUksRUFBRSwwQ0FBMEM7WUFDaERnQixNQUFNLEVBQUUsTUFBTTtZQUNkZixPQUFPLEVBQUU7Y0FDUCxZQUFZLEVBQUVSLE9BQU8sQ0FBQ2UsUUFBUSxDQUFDLENBQUM7Y0FDaEMsaUJBQWlCLEVBQUVwRSxVQUFVLENBQUMwQyxJQUFJO1lBQ3BDLENBQUM7WUFDRE8sSUFBSSxFQUFFK0MsV0FBVztZQUNqQjlDLE1BQU0sRUFBTkE7VUFDRixDQUFDLENBQUM7UUFBQTtRQUFBO1VBQUEsT0FBQStDLFNBQUEsQ0FBQVosSUFBQTtNQUFBO0lBQUEsR0FBQU8sUUFBQTtFQUFBLENBQ0g7RUFBQSxnQkF2QllGLGNBQWNBLENBQUFVLEdBQUEsRUFBQUMsR0FBQTtJQUFBLE9BQUFWLEtBQUEsQ0FBQUgsS0FBQSxPQUFBQyxTQUFBO0VBQUE7QUFBQSxHQXVCMUI7QUFFRCxPQUFPLElBQU1hLFlBQVk7RUFBQSxJQUFBQyxLQUFBLEdBQUExRCxpQkFBQSxjQUFBQyxtQkFBQSxDQUFBQyxJQUFBLENBQUcsU0FBQXlELFNBQU92RCxJQUF5QixFQUFFQyxNQUFvQjtJQUFBLElBQUF1RCxLQUFBLEVBQUFqRCxTQUFBLEVBQUFkLElBQUEsRUFBQWdFLE1BQUEsRUFBQUMsU0FBQSxFQUFBQyxRQUFBLEVBQUFDLE1BQUEsRUFBQXBELFFBQUEsRUFBQXFELFVBQUEsRUFBQUMsS0FBQSxFQUFBMUQsT0FBQSxFQUFBQyxpQkFBQSxFQUFBQyxrQkFBQSxFQUFBL0IsV0FBQSxFQUFBd0YsV0FBQSxFQUFBdEQsTUFBQSxFQUFBdUQsUUFBQSxFQUFBQyxLQUFBLEVBQUFDLGlCQUFBLEVBQUFDLEtBQUEsRUFBQUMsSUFBQSxFQUFBQyxXQUFBLEVBQUEzRCxTQUFBLEVBQUE0RCxjQUFBLEVBQUEvRyxXQUFBLEVBQUFnSCxRQUFBLEVBQUFwQyxRQUFBLEVBQUF4QixJQUFBLEVBQUFDLE9BQUEsRUFBQUMsU0FBQTtJQUFBLE9BQUFoQixtQkFBQSxDQUFBa0IsSUFBQSxXQUFBeUQsU0FBQTtNQUFBLGtCQUFBQSxTQUFBLENBQUF2RCxJQUFBLEdBQUF1RCxTQUFBLENBQUF0RCxJQUFBO1FBQUE7VUFFOUVzQyxLQUFLLEdBeUJIeEQsSUFBSSxDQXpCTndELEtBQUssRUFDTGpELFNBQVMsR0F3QlBQLElBQUksQ0F4Qk5PLFNBQVMsRUFDVGQsSUFBSSxHQXVCRk8sSUFBSSxDQXZCTlAsSUFBSSxFQUNKZ0UsTUFBTSxHQXNCSnpELElBQUksQ0F0Qk55RCxNQUFNLEVBQ05DLFNBQVMsR0FxQlAxRCxJQUFJLENBckJOMEQsU0FBUyxFQUNUQyxRQUFRLEdBb0JOM0QsSUFBSSxDQXBCTjJELFFBQVEsRUFDUkMsTUFBTSxHQW1CSjVELElBQUksQ0FuQk40RCxNQUFNLEVBQ05wRCxRQUFRLEdBa0JOUixJQUFJLENBbEJOUSxRQUFRLEVBQ1JxRCxVQUFVLEdBaUJSN0QsSUFBSSxDQWpCTjZELFVBQVUsRUFDVkMsS0FBSyxHQWdCSDlELElBQUksQ0FoQk44RCxLQUFLLEVBQ0wxRCxPQUFPLEdBZUxKLElBQUksQ0FmTkksT0FBTyxFQUNQQyxpQkFBaUIsR0FjZkwsSUFBSSxDQWROSyxpQkFBaUIsRUFDakJDLGtCQUFrQixHQWFoQk4sSUFBSSxDQWJOTSxrQkFBa0IsRUFDbEIvQixXQUFXLEdBWVR5QixJQUFJLENBWk56QixXQUFXLEVBQ1h3RixXQUFXLEdBV1QvRCxJQUFJLENBWE4rRCxXQUFXLEVBQ1h0RCxNQUFNLEdBVUpULElBQUksQ0FWTlMsTUFBTSxFQUNOdUQsUUFBUSxHQVNOaEUsSUFBSSxDQVROZ0UsUUFBUSxFQUNSQyxLQUFLLEdBUUhqRSxJQUFJLENBUk5pRSxLQUFLLEVBQ0xDLGlCQUFpQixHQU9mbEUsSUFBSSxDQVBOa0UsaUJBQWlCLEVBQ2pCQyxLQUFLLEdBTUhuRSxJQUFJLENBTk5tRSxLQUFLLEVBQ0xDLElBQUksR0FLRnBFLElBQUksQ0FMTm9FLElBQUksRUFDSkMsV0FBVyxHQUlUckUsSUFBSSxDQUpOcUUsV0FBVyxFQUNYM0QsU0FBUyxHQUdQVixJQUFJLENBSE5VLFNBQVMsRUFDVDRELGNBQWMsR0FFWnRFLElBQUksQ0FGTnNFLGNBQWMsRUFDZC9HLFdBQVcsR0FDVHlDLElBQUksQ0FETnpDLFdBQVc7VUFHUGdILFFBQVEsR0FBRyxJQUFJRSxRQUFRLENBQUMsQ0FBQztVQUMvQkYsUUFBUSxDQUFDRyxNQUFNLENBQUMsT0FBTyxFQUFFbEIsS0FBSyxDQUFDO1VBQy9CZSxRQUFRLENBQUNHLE1BQU0sQ0FBQyxZQUFZLEVBQUVkLE1BQU0sQ0FBQztVQUVyQyxJQUFJckYsV0FBVyxhQUFYQSxXQUFXLGVBQVhBLFdBQVcsQ0FBRVAsTUFBTSxFQUFFO1lBQ3ZCTSxtQkFBbUIsQ0FBQ0MsV0FBVyxDQUFDO1lBRWhDQSxXQUFXLENBQUNHLE9BQU8sQ0FBQyxVQUFBQyxVQUFVLEVBQUk7Y0FDaEM7Y0FDQSxJQUFNZ0csVUFBVSxHQUFHaEcsVUFBVSxDQUFDaUcsWUFBWSxJQUFJakcsVUFBVSxDQUFDa0csSUFBSTtjQUM3RE4sUUFBUSxDQUFDRyxNQUFNLENBQUMsT0FBTyxFQUFFQyxVQUFVLENBQUM7WUFDdEMsQ0FBQyxDQUFDO1VBQ0o7VUFHQSxJQUFJTixXQUFXLEtBQUssUUFBUSxJQUFJM0QsU0FBUyxLQUFLLGNBQWMsRUFBRTtZQUM1RHlCLFFBQVEsR0FBRyxDQUFDLENBQUM7VUFDZixDQUFDLE1BQU07WUFDTEEsUUFBUSxHQUFBMkMsYUFBQSxDQUFBQSxhQUFBLENBQUFBLGFBQUEsQ0FBQUEsYUFBQSxDQUFBQSxhQUFBLENBQUFBLGFBQUEsQ0FBQUEsYUFBQSxDQUFBQSxhQUFBLENBQUFBLGFBQUEsQ0FBQUEsYUFBQSxDQUFBQSxhQUFBO2NBQ05yRixJQUFJLEVBQUUxQyxVQUFVLENBQUMwQyxJQUFJO1lBQUMsR0FDbEJnRSxNQUFNLEdBQUc7Y0FBRXNCLE9BQU8sRUFBRXRCO1lBQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUNqQ0MsU0FBUyxHQUFHO2NBQUVzQixVQUFVLEVBQUV0QjtZQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsR0FDMUNDLFFBQVEsR0FBRztjQUFFc0IsU0FBUyxFQUFFdEI7WUFBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQ3ZDRyxLQUFLLElBQUksSUFBSSxHQUFHO2NBQUVvQixNQUFNLEVBQUVwQjtZQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsR0FDdEN0RCxRQUFRLElBQUksSUFBSSxHQUFHO2NBQUUyRSxTQUFTLEVBQUUzRTtZQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsR0FDL0NxRCxVQUFVLEdBQUc7Y0FBRXVCLFdBQVcsRUFBRXZCO1lBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUM3Q3RELFNBQVMsR0FBRztjQUFFOEUsVUFBVSxFQUFFOUU7WUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQzFDd0QsV0FBVyxHQUFHO2NBQUV1QixZQUFZLEVBQUV2QjtZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsR0FDaER0RCxNQUFNLElBQUksSUFBSSxHQUFHO2NBQUU4RSxPQUFPLEVBQUU5RTtZQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsR0FDekN1RCxRQUFRLEdBQUc7Y0FBRXdCLFNBQVMsRUFBRXhCO1lBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztjQUMzQ3lCLFNBQVMsRUFBRUMsTUFBTSxDQUFDQyxRQUFRLENBQUNDLFFBQVEsQ0FBQ0MsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFBQyxHQUM3Q3ZCLGNBQWMsSUFBSWxELE1BQU0sQ0FBQ0MsSUFBSSxDQUFDaUQsY0FBYyxDQUFDLENBQUN0RyxNQUFNLEdBQUcsQ0FBQyxHQUFHO2NBQUU4SCxlQUFlLEVBQUV4QjtZQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FDeEc7VUFDSDtVQUNBQyxRQUFRLENBQUNHLE1BQU0sQ0FBQyxVQUFVLEVBQUVqSCxJQUFJLENBQUNDLFNBQVMsQ0FBQ3lFLFFBQVEsQ0FBQyxDQUFDO1VBRWpEeEIsSUFBSSxHQUFHLDBCQUEwQjtVQUNyQyxJQUFJTixpQkFBaUIsS0FBSyxJQUFJLEVBQUU7WUFDOUJNLElBQUksSUFBSSxrQkFBa0I7VUFDNUI7VUFDQSxJQUFJTCxrQkFBa0IsS0FBSyxJQUFJLEVBQUU7WUFDL0JLLElBQUksSUFBSSw2QkFBNkI7VUFDdkM7VUFFTUMsT0FBK0IsR0FBRztZQUN0QyxZQUFZLEVBQUVSLE9BQU8sQ0FBQ2UsUUFBUSxDQUFDO1VBQ2pDLENBQUMsRUFFRDtVQUNBO1VBQ0E7VUFDQTtVQUNBLElBQUlULFNBQVMsS0FBSyxjQUFjLEVBQUU7WUFDNUJHLFNBQVMsR0FBRyxFQUFFO1lBQ2xCLElBQUlKLE1BQU0sSUFBSSxJQUFJLEVBQUVJLFNBQVMsV0FBQXBDLE1BQUEsQ0FBV2dDLE1BQU0sQ0FBRSxNQUMzQyxJQUFJRixTQUFTLElBQUksSUFBSSxFQUFFTSxTQUFTLGNBQUFwQyxNQUFBLENBQWM4QixTQUFTLENBQUUsTUFDekQsSUFBSUMsUUFBUSxJQUFJLElBQUksRUFBRUssU0FBUyxhQUFBcEMsTUFBQSxDQUFhK0IsUUFBUSxDQUFFO1lBQzNELElBQUlLLFNBQVMsRUFBRTtjQUNiRCxPQUFPLENBQUMsY0FBYyxDQUFDLEdBQUdDLFNBQVM7WUFDckM7VUFDRjtVQUVBLElBQUlvRCxLQUFLLEVBQUU7WUFDVHJELE9BQU8sQ0FBQyxVQUFVLENBQUMsR0FBR3FELEtBQUs7VUFDN0I7VUFFQSxJQUFJQyxpQkFBaUIsSUFBSUcsV0FBVyxLQUFLLFFBQVEsRUFBRTtZQUNqRHpELE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHc0QsaUJBQWlCO1VBQ25EO1VBRUEsSUFBSUMsS0FBSyxFQUFFO1lBQ1R2RCxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUd1RCxLQUFLO1VBQzdCO1VBRUEsSUFBSUMsSUFBSSxFQUFFO1lBQ1J4RCxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUd3RCxJQUFJO1VBQzNCO1VBRUEsSUFBSTdHLFdBQVcsSUFBSTZELE1BQU0sQ0FBQ0MsSUFBSSxDQUFDOUQsV0FBVyxDQUFDLENBQUNTLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDdEQ0QyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsR0FBR3RELHVCQUF1QixDQUFDQyxXQUFXLENBQUM7VUFDbEU7VUFBQyxPQUFBaUgsU0FBQSxDQUFBOUMsTUFBQSxXQUVNMUUsU0FBUyxDQUFDO1lBQ2YyRCxJQUFJLEVBQUpBLElBQUk7WUFDSmdCLE1BQU0sRUFBRSxNQUFNO1lBQ2RmLE9BQU8sRUFBUEEsT0FBTztZQUNQWixJQUFJLEVBQUV1RSxRQUFRO1lBQ2R0RSxNQUFNLEVBQU5BO1VBQ0YsQ0FBQyxDQUFDO1FBQUE7UUFBQTtVQUFBLE9BQUF1RSxTQUFBLENBQUFwQyxJQUFBO01BQUE7SUFBQSxHQUFBbUIsUUFBQTtFQUFBLENBQ0g7RUFBQSxnQkF0SFlGLFlBQVlBLENBQUEwQyxHQUFBLEVBQUFDLEdBQUE7SUFBQSxPQUFBMUMsS0FBQSxDQUFBZixLQUFBLE9BQUFDLFNBQUE7RUFBQTtBQUFBLEdBc0h4QiIsImlnbm9yZUxpc3QiOltdfQ==
|
|
185
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtYXBDT1JMYW5nIiwiZmV0Y2hNYWlhIiwiRklMRV9GT1JNQVRfRVhURU5TSU9OUyIsIkZJTEVfUFJFU0VOVEFUSU9OX0ZPUk1BVF9FWFRFTlNJT05TIiwiRklMRV9NQUlBX1ZJU0lPTl9GT1JNQVRfRVhURU5TSU9OUyIsIkZJTEVfQVVESU9fRk9STUFUX0VYVEVOU0lPTlMiLCJnZXRNYXhBdHRhY2htZW50U2l6ZU1iIiwiZW5jb2RlQ29udGV4dERhdGFIZWFkZXIiLCJjb250ZXh0RGF0YSIsImpzb24iLCJKU09OIiwic3RyaW5naWZ5IiwiYnl0ZXMiLCJUZXh0RW5jb2RlciIsImVuY29kZSIsImJpbmFyeSIsImkiLCJsZW5ndGgiLCJTdHJpbmciLCJmcm9tQ2hhckNvZGUiLCJidG9hIiwiTUFYX0ZJTEVTIiwiQUxMT1dFRF9GSUxFX0VYVEVOU0lPTlMiLCJ2YWxpZGF0ZUF0dGFjaG1lbnRzIiwiYXR0YWNobWVudHMiLCJFcnJvciIsImNvbmNhdCIsImZvckVhY2giLCJhdHRhY2htZW50IiwiZmlsZUV4dGVuc2lvbiIsIm5hbWUiLCJ0b0xvd2VyQ2FzZSIsInN1YnN0cmluZyIsImxhc3RJbmRleE9mIiwiaW5jbHVkZXMiLCJqb2luIiwiZmlsZVNpemUiLCJzaXplIiwiTnVtYmVyIiwibWF4U2l6ZU1iIiwibWF4U2l6ZUJ5dGVzIiwiY29udGludWVUaHJlYWQiLCJfcmVmIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJib2R5Iiwic2lnbmFsIiwidGhyZWFkSWRzIiwic2Vzc2lvbklkIiwiZGVjaXNpb24iLCJlZGl0ZWRBY3Rpb25zIiwiYWdlbnRJZCIsImxhbmciLCJpc0F1dG9BcHByb3ZlQWN0aXZlIiwicmVxdWVzdEJvZHkiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsInRocmVhZF9pZHMiLCJzZXNzaW9uX2lkIiwiZWRpdGVkX2FjdGlvbnMiLCJhYnJ1cHQiLCJwYXRoIiwibWV0aG9kIiwiaGVhZGVycyIsInRvU3RyaW5nIiwic3RvcCIsIl94IiwiX3gyIiwiYXBwbHkiLCJhcmd1bWVudHMiLCJvcmNoZXN0cmF0b3IiLCJfcmVmMiIsIl9jYWxsZWUyIiwiaW5wdXQiLCJwcm9qZWN0SWQiLCJ1c2VySWQiLCJmaXJzdE5hbWUiLCJsYXN0TmFtZSIsImNoYXRJZCIsImNsaWVudElkIiwiY2xpZW50TmFtZSIsImZlZUlkIiwiaXNXZWJTZWFyY2hBY3RpdmUiLCJpc0RlZXBTZWFyY2hBY3RpdmUiLCJwcm9qZWN0TmFtZSIsInRhc2tJZCIsInRhc2tOYW1lIiwiZmFxSWQiLCJhZ2VudFN1Z2dlc3Rpb25JZCIsImZ1YUlkIiwic2NJZCIsImFnZW50RW50aXR5IiwiYWdlbnRUeXBlIiwiY29udGV4dE1lc3NhZ2UiLCJmb3JtRGF0YSIsIm1ldGFkYXRhIiwiY29udGV4dElkIiwiX2NvbnRleHQyIiwiRm9ybURhdGEiLCJhcHBlbmQiLCJmaWxlVG9TZW5kIiwib3JpZ2luYWxGaWxlIiwiZmlsZSIsIl9vYmplY3RTcHJlYWQiLCJ1c2VyX2lkIiwiZmlyc3RfbmFtZSIsImxhc3RfbmFtZSIsImZlZV9pZCIsImNsaWVudF9pZCIsImNsaWVudF9uYW1lIiwicHJvamVjdF9pZCIsInByb2plY3RfbmFtZSIsInRhc2tfaWQiLCJ0YXNrX25hbWUiLCJzdWJkb21haW4iLCJ3aW5kb3ciLCJsb2NhdGlvbiIsImhvc3RuYW1lIiwic3BsaXQiLCJPYmplY3QiLCJrZXlzIiwiY29udGV4dF9tZXNzYWdlIiwiX3gzIiwiX3g0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlcnZpY2VzL21haWEvT3JjaGVzdHJhdG9yL29yY2hlc3RyYXRvci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMgKi9cbi8qIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tY3ljbGUgKi9cbmltcG9ydCB7IEF0dGFjaG1lbnRGaWxlIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEZvb3Rlci9DaGF0Rm9vdGVyJ1xuaW1wb3J0IHsgbWFwQ09STGFuZyB9IGZyb20gJy4uLy4uLy4uL2xhbmcvdXRpbHMnXG5pbXBvcnQgeyBDaGF0SGlzdG9yeSB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL0NoYXQnXG5pbXBvcnQgeyBBZ2VudEVudGl0eSwgQWdlbnRUeXBlIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvYWdlbnQnXG5pbXBvcnQgeyBDb250ZXh0TWVzc2FnZSB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2NvbnRleHRNZW50aW9uJ1xuaW1wb3J0IHsgZmV0Y2hNYWlhIH0gZnJvbSAnLi4vY2xpZW50J1xuaW1wb3J0IHtcbiAgRklMRV9GT1JNQVRfRVhURU5TSU9OUyxcbiAgRklMRV9QUkVTRU5UQVRJT05fRk9STUFUX0VYVEVOU0lPTlMsXG4gIEZJTEVfTUFJQV9WSVNJT05fRk9STUFUX0VYVEVOU0lPTlMsXG4gIEZJTEVfQVVESU9fRk9STUFUX0VYVEVOU0lPTlMsXG4gIGdldE1heEF0dGFjaG1lbnRTaXplTWIsXG59IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9mb3JtYXRFeHRlbnNpb25zJ1xuXG4vKiogQ29kaWZpY2EgSlNPTiBVVEYtOCBlbiBiYXNlNjQgcGFyYSBoZWFkZXJzIEhUVFAgKGV2aXRhIHByb2JsZW1hcyBjb24gY2FyYWN0ZXJlcyBlc3BlY2lhbGVzKS4gKi9cbmNvbnN0IGVuY29kZUNvbnRleHREYXRhSGVhZGVyID0gKGNvbnRleHREYXRhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IHN0cmluZyA9PiB7XG4gIGNvbnN0IGpzb24gPSBKU09OLnN0cmluZ2lmeShjb250ZXh0RGF0YSlcbiAgY29uc3QgYnl0ZXMgPSBuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUoanNvbilcbiAgbGV0IGJpbmFyeSA9ICcnXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgYnl0ZXMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICBiaW5hcnkgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShieXRlc1tpXSEpXG4gIH1cbiAgcmV0dXJuIGJ0b2EoYmluYXJ5KVxufVxuXG50eXBlIE9yY2hlc3RyYXRvclJlcXVlc3QgPSB7XG4gIGlucHV0OiBzdHJpbmdcbiAgcHJvamVjdElkPzogbnVtYmVyXG4gIGxhbmc6IHN0cmluZ1xuICB1c2VySWQ6IHN0cmluZ1xuICBmaXJzdE5hbWU/OiBzdHJpbmdcbiAgbGFzdE5hbWU/OiBzdHJpbmdcbiAgY29tcGFueUlkOiBzdHJpbmdcbiAgY2hhdElkOiBzdHJpbmdcbiAgaGlzdG9yeTogQ2hhdEhpc3RvcnlbXVxuICBtZXNzYWdlSWQ6IHN0cmluZ1xuICBjbGllbnRJZD86IG51bWJlclxuICBjbGllbnROYW1lPzogc3RyaW5nXG4gIGZlZUlkPzogbnVtYmVyXG4gIGFnZW50TmFtZTogc3RyaW5nXG4gIGFnZW50SWQ6IG51bWJlciB8IHN0cmluZ1xuICBpc1dlYlNlYXJjaEFjdGl2ZT86IGJvb2xlYW5cbiAgaXNEZWVwU2VhcmNoQWN0aXZlPzogYm9vbGVhblxuICBpc0F1dG9BcHByb3ZlQWN0aXZlPzogYm9vbGVhblxuICBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW11cbiAgcHJvamVjdE5hbWU/OiBzdHJpbmdcbiAgdGFza0lkPzogbnVtYmVyXG4gIHRhc2tOYW1lPzogc3RyaW5nXG4gIGZhcUlkPzogc3RyaW5nXG4gIGFnZW50U3VnZ2VzdGlvbklkPzogc3RyaW5nXG4gIGZ1YUlkPzogc3RyaW5nXG4gIHNjSWQ/OiBzdHJpbmdcbiAgYWdlbnRFbnRpdHk/OiBBZ2VudEVudGl0eVxuICBhZ2VudFR5cGU/OiBBZ2VudFR5cGVcbiAgLyoqXG4gICAqIEVudGlkYWRlcyBtZW5jaW9uYWRhcyBjb24gYEBgIGVuIEVTRSBtZW5zYWplLiBTZSBpbnllY3RhIGNvbW9cbiAgICogYGNvbnRleHRfbWVzc2FnZWAgZGVudHJvIGRlIGxhIG1ldGFkYXRhIGRlbCBvcmNoZXN0cmF0b3IgeSBzb2xvIHZpdmUgZW5cbiAgICogZXNlIHR1cm5vIChubyBwcm9wYWdhIGFsIGNvbnRleHRvIGdsb2JhbCBuaSBhIGZ1dHVyb3MgbWVuc2FqZXMpLlxuICAgKi9cbiAgY29udGV4dE1lc3NhZ2U/OiBDb250ZXh0TWVzc2FnZVxuICAvKiogUGF5bG9hZCBkZWwgYmFubmVyIChob3N0IENPUikgZW52aWFkbyBjb21vIGhlYWRlciBgWC1Db250ZXh0LURhdGFgIChKU09OIGVuIGJhc2U2NCkuICovXG4gIGNvbnRleHREYXRhPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbn1cblxuY29uc3QgTUFYX0ZJTEVTID0gNVxuY29uc3QgQUxMT1dFRF9GSUxFX0VYVEVOU0lPTlMgPSBbXG4gICcudHh0JyxcbiAgJy5tZCcsXG4gICcuY3N2JyxcbiAgJy5kb2MnLFxuICAnLmRvY3gnLFxuICAnLnBwdCcsXG4gICcucHB0eCcsXG4gICcucG5nJyxcbiAgJy5qcGcnLFxuICAnLmpwZWcnLFxuICAnLnBkZicsXG4gICcueGxzeCcsXG4gICcueGxzJyxcbiAgJy5mbGFjJyxcbiAgJy5tNGEnLFxuICAnLm1wMycsXG4gICcubXA0JyxcbiAgJy5vZ2EnLFxuICAnLm9nZycsXG4gICcud2F2JyxcbiAgJy53ZWJtJyxcbl1cblxuY29uc3QgdmFsaWRhdGVBdHRhY2htZW50cyA9IChhdHRhY2htZW50czogQXR0YWNobWVudEZpbGVbXSk6IHZvaWQgPT4ge1xuICBpZiAoYXR0YWNobWVudHMubGVuZ3RoID4gTUFYX0ZJTEVTKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBNw6F4aW1vICR7TUFYX0ZJTEVTfSBhcmNoaXZvcyBwZXJtaXRpZG9zYClcbiAgfVxuXG4gIGF0dGFjaG1lbnRzLmZvckVhY2goYXR0YWNobWVudCA9PiB7XG4gICAgLy8gVmFsaWRhciBleHRlbnNpw7NuIGRlbCBhcmNoaXZvXG4gICAgY29uc3QgZmlsZUV4dGVuc2lvbiA9IGF0dGFjaG1lbnQubmFtZS50b0xvd2VyQ2FzZSgpLnN1YnN0cmluZyhhdHRhY2htZW50Lm5hbWUubGFzdEluZGV4T2YoJy4nKSlcbiAgICBpZiAoIUFMTE9XRURfRklMRV9FWFRFTlNJT05TLmluY2x1ZGVzKGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBFbCBhcmNoaXZvIFwiJHthdHRhY2htZW50Lm5hbWV9XCIgbm8gdGllbmUgdW4gZm9ybWF0byBzb3BvcnRhZG8uIEZvcm1hdG9zIHBlcm1pdGlkb3M6ICR7QUxMT1dFRF9GSUxFX0VYVEVOU0lPTlMuam9pbignLCAnKX1gXG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVmFsaWRhciB0YW1hw7FvIGRlbCBhcmNoaXZvIHNlZ8O6biBlbCB0aXBvXG4gICAgY29uc3QgZmlsZVNpemUgPSB0eXBlb2YgYXR0YWNobWVudC5zaXplID09PSAnbnVtYmVyJyA/IGF0dGFjaG1lbnQuc2l6ZSA6IE51bWJlcihhdHRhY2htZW50LnNpemUpXG4gICAgY29uc3QgbWF4U2l6ZU1iID0gZ2V0TWF4QXR0YWNobWVudFNpemVNYihmaWxlRXh0ZW5zaW9uKVxuICAgIGNvbnN0IG1heFNpemVCeXRlcyA9IG1heFNpemVNYiAqIDEwMjQgKiAxMDI0XG5cbiAgICBpZiAoXG4gICAgICAoRklMRV9GT1JNQVRfRVhURU5TSU9OUy5pbmNsdWRlcyhmaWxlRXh0ZW5zaW9uKSB8fFxuICAgICAgICBGSUxFX1BSRVNFTlRBVElPTl9GT1JNQVRfRVhURU5TSU9OUy5pbmNsdWRlcyhmaWxlRXh0ZW5zaW9uKSB8fFxuICAgICAgICBGSUxFX01BSUFfVklTSU9OX0ZPUk1BVF9FWFRFTlNJT05TLmluY2x1ZGVzKGZpbGVFeHRlbnNpb24pIHx8XG4gICAgICAgIEZJTEVfQVVESU9fRk9STUFUX0VYVEVOU0lPTlMuaW5jbHVkZXMoZmlsZUV4dGVuc2lvbikpICYmXG4gICAgICBmaWxlU2l6ZSA+IG1heFNpemVCeXRlc1xuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBFbCBhcmNoaXZvIFwiJHthdHRhY2htZW50Lm5hbWV9XCIgZXhjZWRlIGVsIHRhbWHDsW8gbcOheGltbyBkZSAke21heFNpemVNYn1NQmApXG4gICAgfVxuICB9KVxufVxuXG50eXBlIENvbnRpbnVlVGhyZWFkUmVxdWVzdCA9IHtcbiAgdGhyZWFkSWRzOiBzdHJpbmdbXVxuICBzZXNzaW9uSWQ6IHN0cmluZ1xuICBkZWNpc2lvbjogJ2FwcHJvdmUnIHwgJ2VkaXQnIHwgJ3JlamVjdCdcbiAgZWRpdGVkQWN0aW9ucz86IEFycmF5PHsgdG9vbF9uYW1lOiBzdHJpbmc7IGFyZ3M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IH0+XG4gIGFnZW50SWQ6IG51bWJlciB8IHN0cmluZ1xuICBsYW5nOiBzdHJpbmdcbiAgaXNBdXRvQXBwcm92ZUFjdGl2ZT86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGNvbnN0IGNvbnRpbnVlVGhyZWFkID0gYXN5bmMgKGJvZHk6IENvbnRpbnVlVGhyZWFkUmVxdWVzdCwgc2lnbmFsPzogQWJvcnRTaWduYWwpOiBQcm9taXNlPFJlc3BvbnNlPiA9PiB7XG4gIGNvbnN0IHsgdGhyZWFkSWRzLCBzZXNzaW9uSWQsIGRlY2lzaW9uLCBlZGl0ZWRBY3Rpb25zLCBhZ2VudElkLCBsYW5nLCBpc0F1dG9BcHByb3ZlQWN0aXZlIH0gPSBib2R5XG5cbiAgY29uc3QgcmVxdWVzdEJvZHk6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge1xuICAgIHRocmVhZF9pZHM6IHRocmVhZElkcyxcbiAgICBzZXNzaW9uX2lkOiBzZXNzaW9uSWQsXG4gICAgZGVjaXNpb24sXG4gIH1cblxuICBpZiAoZGVjaXNpb24gPT09ICdlZGl0JyAmJiBlZGl0ZWRBY3Rpb25zKSB7XG4gICAgcmVxdWVzdEJvZHkuZWRpdGVkX2FjdGlvbnMgPSBlZGl0ZWRBY3Rpb25zXG4gIH1cblxuICByZXR1cm4gZmV0Y2hNYWlhKHtcbiAgICBwYXRoOiAnb3JjaGVzdHJhdG9yL2NvbnRpbnVlLXRocmVhZD9tb2RlPXN0cmVhbScsXG4gICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgaGVhZGVyczoge1xuICAgICAgJ1gtQWdlbnQtSWQnOiBhZ2VudElkLnRvU3RyaW5nKCksXG4gICAgICAnQWNjZXB0LUxhbmd1YWdlJzogbWFwQ09STGFuZyhsYW5nKSxcbiAgICAgICdYLUhJVEwtQXBwcm92YWwtTW9kZSc6IGlzQXV0b0FwcHJvdmVBY3RpdmUgPyAnZnVsbF9hY2Nlc3MnIDogJ2FwcHJvdmVfZWFjaCcsXG4gICAgfSxcbiAgICBib2R5OiByZXF1ZXN0Qm9keSxcbiAgICBzaWduYWwsXG4gIH0pXG59XG5cbmV4cG9ydCBjb25zdCBvcmNoZXN0cmF0b3IgPSBhc3luYyAoYm9keTogT3JjaGVzdHJhdG9yUmVxdWVzdCwgc2lnbmFsPzogQWJvcnRTaWduYWwpOiBQcm9taXNlPFJlc3BvbnNlPiA9PiB7XG4gIGNvbnN0IHtcbiAgICBpbnB1dCxcbiAgICBwcm9qZWN0SWQsXG4gICAgbGFuZyxcbiAgICB1c2VySWQsXG4gICAgZmlyc3ROYW1lLFxuICAgIGxhc3ROYW1lLFxuICAgIGNoYXRJZCxcbiAgICBjbGllbnRJZCxcbiAgICBjbGllbnROYW1lLFxuICAgIGZlZUlkLFxuICAgIGFnZW50SWQsXG4gICAgaXNXZWJTZWFyY2hBY3RpdmUsXG4gICAgaXNEZWVwU2VhcmNoQWN0aXZlLFxuICAgIGlzQXV0b0FwcHJvdmVBY3RpdmUsXG4gICAgYXR0YWNobWVudHMsXG4gICAgcHJvamVjdE5hbWUsXG4gICAgdGFza0lkLFxuICAgIHRhc2tOYW1lLFxuICAgIGZhcUlkLFxuICAgIGFnZW50U3VnZ2VzdGlvbklkLFxuICAgIGZ1YUlkLFxuICAgIHNjSWQsXG4gICAgYWdlbnRFbnRpdHksXG4gICAgYWdlbnRUeXBlLFxuICAgIGNvbnRleHRNZXNzYWdlLFxuICAgIGNvbnRleHREYXRhLFxuICB9ID0gYm9keVxuXG4gIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKClcbiAgZm9ybURhdGEuYXBwZW5kKCdpbnB1dCcsIGlucHV0KVxuICBmb3JtRGF0YS5hcHBlbmQoJ3Nlc3Npb25faWQnLCBjaGF0SWQpXG5cbiAgaWYgKGF0dGFjaG1lbnRzPy5sZW5ndGgpIHtcbiAgICB2YWxpZGF0ZUF0dGFjaG1lbnRzKGF0dGFjaG1lbnRzKVxuXG4gICAgYXR0YWNobWVudHMuZm9yRWFjaChhdHRhY2htZW50ID0+IHtcbiAgICAgIC8vIFVzYXIgZWwgYXJjaGl2byBvcmlnaW5hbCBzaSBleGlzdGUgKHBhcmEgaW3DoWdlbmVzIHByb2Nlc2FkYXMpLCBzaW5vIHVzYXIgZWwgYXJjaGl2byBub3JtYWxcbiAgICAgIGNvbnN0IGZpbGVUb1NlbmQgPSBhdHRhY2htZW50Lm9yaWdpbmFsRmlsZSB8fCBhdHRhY2htZW50LmZpbGVcbiAgICAgIGZvcm1EYXRhLmFwcGVuZCgnZmlsZXMnLCBmaWxlVG9TZW5kKVxuICAgIH0pXG4gIH1cblxuICBsZXQgbWV0YWRhdGE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gIGlmIChhZ2VudEVudGl0eSA9PT0gJ2dsb2JhbCcgJiYgYWdlbnRUeXBlICE9PSAnb3JjaGVzdHJhdG9yJykge1xuICAgIG1ldGFkYXRhID0ge31cbiAgfSBlbHNlIHtcbiAgICBtZXRhZGF0YSA9IHtcbiAgICAgIGxhbmc6IG1hcENPUkxhbmcobGFuZyksXG4gICAgICAuLi4odXNlcklkID8geyB1c2VyX2lkOiB1c2VySWQgfSA6IHt9KSxcbiAgICAgIC4uLihmaXJzdE5hbWUgPyB7IGZpcnN0X25hbWU6IGZpcnN0TmFtZSB9IDoge30pLFxuICAgICAgLi4uKGxhc3ROYW1lID8geyBsYXN0X25hbWU6IGxhc3ROYW1lIH0gOiB7fSksXG4gICAgICAuLi4oZmVlSWQgIT0gbnVsbCA/IHsgZmVlX2lkOiBmZWVJZCB9IDoge30pLFxuICAgICAgLi4uKGNsaWVudElkICE9IG51bGwgPyB7IGNsaWVudF9pZDogY2xpZW50SWQgfSA6IHt9KSxcbiAgICAgIC4uLihjbGllbnROYW1lID8geyBjbGllbnRfbmFtZTogY2xpZW50TmFtZSB9IDoge30pLFxuICAgICAgLi4uKHByb2plY3RJZCA/IHsgcHJvamVjdF9pZDogcHJvamVjdElkIH0gOiB7fSksXG4gICAgICAuLi4ocHJvamVjdE5hbWUgPyB7IHByb2plY3RfbmFtZTogcHJvamVjdE5hbWUgfSA6IHt9KSxcbiAgICAgIC4uLih0YXNrSWQgIT0gbnVsbCA/IHsgdGFza19pZDogdGFza0lkIH0gOiB7fSksXG4gICAgICAuLi4odGFza05hbWUgPyB7IHRhc2tfbmFtZTogdGFza05hbWUgfSA6IHt9KSxcbiAgICAgIHN1YmRvbWFpbjogd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lLnNwbGl0KCcuJylbMF0sXG4gICAgICAuLi4oY29udGV4dE1lc3NhZ2UgJiYgT2JqZWN0LmtleXMoY29udGV4dE1lc3NhZ2UpLmxlbmd0aCA+IDAgPyB7IGNvbnRleHRfbWVzc2FnZTogY29udGV4dE1lc3NhZ2UgfSA6IHt9KSxcbiAgICB9XG4gIH1cbiAgZm9ybURhdGEuYXBwZW5kKCdtZXRhZGF0YScsIEpTT04uc3RyaW5naWZ5KG1ldGFkYXRhKSlcblxuICBsZXQgcGF0aCA9ICdvcmNoZXN0cmF0b3I/bW9kZT1zdHJlYW0nXG4gIGlmIChpc1dlYlNlYXJjaEFjdGl2ZSA9PT0gdHJ1ZSkge1xuICAgIHBhdGggKz0gJyZzZWFyY2hfd2ViPXRydWUnXG4gIH1cbiAgaWYgKGlzRGVlcFNlYXJjaEFjdGl2ZSA9PT0gdHJ1ZSkge1xuICAgIHBhdGggKz0gJyZzZWFyY2hfd2ViPXRydWUmZGVwdGg9dHJ1ZSdcbiAgfVxuXG4gIGNvbnN0IGhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgJ1gtQWdlbnQtSWQnOiBhZ2VudElkLnRvU3RyaW5nKCksXG4gICAgJ1gtSElUTC1BcHByb3ZhbC1Nb2RlJzogaXNBdXRvQXBwcm92ZUFjdGl2ZSA/ICdmdWxsX2FjY2VzcycgOiAnYXBwcm92ZV9lYWNoJyxcbiAgfVxuXG4gIC8vIFBpbiBkZSBjb250ZXh0byAoUkZDIMKnOS4xKTogZWwgaGVhZGVyIGxlIGRpY2UgYWwgcm91dGVyIGEgcXVpw6luIGRlcml2YXIgYW50ZXMgZGUgcGFyc2VhciBlbCBib2R5LlxuICAvLyBNb25vLWVudGlkYWQgY29uIHByaW9yaWRhZCBwb3IgamVyYXJxdcOtYSAodGFyZWEgPiBwcm95ZWN0byA+IGNsaWVudGUpLlxuICAvLyBTb2xvIGFwbGljYSBhbCBvcnF1ZXN0YWRvciAoTUFJQSk6IGVzIGVsIMO6bmljbyBhZ2VudGUgc2luIHNjb3BlIHByb3BpbywgZG9uZGUgZWwgcGluIGRlZmluZSBsYSBkZXJpdmFjacOzbi5cbiAgLy8gRWwgc2NvcGUgcGVyc2lzdGVudGUgZW4gYG1ldGFkYXRhYCAocHJvamVjdF9pZC9jbGllbnRfaWQvdGFza19pZCkgZXMgbGEgXCJjb2xlY2Npw7NuIGRlIHVub1wiIGFycmF5LXJlYWR5LlxuICBpZiAoYWdlbnRUeXBlID09PSAnb3JjaGVzdHJhdG9yJykge1xuICAgIGxldCBjb250ZXh0SWQgPSAnJ1xuICAgIGlmICh0YXNrSWQgIT0gbnVsbCkgY29udGV4dElkID0gYHRhc2s6JHt0YXNrSWR9YFxuICAgIGVsc2UgaWYgKHByb2plY3RJZCAhPSBudWxsKSBjb250ZXh0SWQgPSBgcHJvamVjdDoke3Byb2plY3RJZH1gXG4gICAgZWxzZSBpZiAoY2xpZW50SWQgIT0gbnVsbCkgY29udGV4dElkID0gYGNsaWVudDoke2NsaWVudElkfWBcbiAgICBpZiAoY29udGV4dElkKSB7XG4gICAgICBoZWFkZXJzWydYLUNvbnRleHQtSWQnXSA9IGNvbnRleHRJZFxuICAgIH1cbiAgfVxuXG4gIGlmIChmYXFJZCkge1xuICAgIGhlYWRlcnNbJ1gtRmFxLUlkJ10gPSBmYXFJZFxuICB9XG5cbiAgaWYgKGFnZW50U3VnZ2VzdGlvbklkICYmIGFnZW50RW50aXR5ID09PSAnZ2xvYmFsJykge1xuICAgIGhlYWRlcnNbJ1gtQWdlbnQtU3VnZ2VzdGlvbiddID0gYWdlbnRTdWdnZXN0aW9uSWRcbiAgfVxuXG4gIGlmIChmdWFJZCkge1xuICAgIGhlYWRlcnNbJ1gtRnVhLUlkJ10gPSBmdWFJZFxuICB9XG5cbiAgaWYgKHNjSWQpIHtcbiAgICBoZWFkZXJzWydYLVNDLUlkJ10gPSBzY0lkXG4gIH1cblxuICBpZiAoY29udGV4dERhdGEgJiYgT2JqZWN0LmtleXMoY29udGV4dERhdGEpLmxlbmd0aCA+IDApIHtcbiAgICBoZWFkZXJzWydYLUNvbnRleHQtRGF0YSddID0gZW5jb2RlQ29udGV4dERhdGFIZWFkZXIoY29udGV4dERhdGEpXG4gIH1cblxuICByZXR1cm4gZmV0Y2hNYWlhKHtcbiAgICBwYXRoLFxuICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgIGhlYWRlcnMsXG4gICAgYm9keTogZm9ybURhdGEsXG4gICAgc2lnbmFsLFxuICB9KVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQ0E7QUFDQTs7QUFFQSxTQUFTQSxVQUFVLFFBQVEscUJBQXFCO0FBSWhELFNBQVNDLFNBQVMsUUFBUSxXQUFXO0FBQ3JDLFNBQ0VDLHNCQUFzQixFQUN0QkMsbUNBQW1DLEVBQ25DQyxrQ0FBa0MsRUFDbENDLDRCQUE0QixFQUM1QkMsc0JBQXNCLFFBQ2pCLHFDQUFxQzs7QUFFNUM7QUFDQSxJQUFNQyx1QkFBdUIsR0FBRyxTQUExQkEsdUJBQXVCQSxDQUFJQyxXQUFvQyxFQUFhO0VBQ2hGLElBQU1DLElBQUksR0FBR0MsSUFBSSxDQUFDQyxTQUFTLENBQUNILFdBQVcsQ0FBQztFQUN4QyxJQUFNSSxLQUFLLEdBQUcsSUFBSUMsV0FBVyxDQUFDLENBQUMsQ0FBQ0MsTUFBTSxDQUFDTCxJQUFJLENBQUM7RUFDNUMsSUFBSU0sTUFBTSxHQUFHLEVBQUU7RUFDZixLQUFLLElBQUlDLENBQUMsR0FBRyxDQUFDLEVBQUVBLENBQUMsR0FBR0osS0FBSyxDQUFDSyxNQUFNLEVBQUVELENBQUMsSUFBSSxDQUFDLEVBQUU7SUFDeENELE1BQU0sSUFBSUcsTUFBTSxDQUFDQyxZQUFZLENBQUNQLEtBQUssQ0FBQ0ksQ0FBQyxDQUFFLENBQUM7RUFDMUM7RUFDQSxPQUFPSSxJQUFJLENBQUNMLE1BQU0sQ0FBQztBQUNyQixDQUFDO0FBeUNELElBQU1NLFNBQVMsR0FBRyxDQUFDO0FBQ25CLElBQU1DLHVCQUF1QixHQUFHLENBQzlCLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sRUFDTixPQUFPLEVBQ1AsTUFBTSxFQUNOLE9BQU8sRUFDUCxNQUFNLEVBQ04sTUFBTSxFQUNOLE9BQU8sRUFDUCxNQUFNLEVBQ04sT0FBTyxFQUNQLE1BQU0sRUFDTixPQUFPLEVBQ1AsTUFBTSxFQUNOLE1BQU0sRUFDTixNQUFNLEVBQ04sTUFBTSxFQUNOLE1BQU0sRUFDTixNQUFNLEVBQ04sT0FBTyxDQUNSO0FBRUQsSUFBTUMsbUJBQW1CLEdBQUcsU0FBdEJBLG1CQUFtQkEsQ0FBSUMsV0FBNkIsRUFBVztFQUNuRSxJQUFJQSxXQUFXLENBQUNQLE1BQU0sR0FBR0ksU0FBUyxFQUFFO0lBQ2xDLE1BQU0sSUFBSUksS0FBSyxjQUFBQyxNQUFBLENBQVdMLFNBQVMseUJBQXNCLENBQUM7RUFDNUQ7RUFFQUcsV0FBVyxDQUFDRyxPQUFPLENBQUMsVUFBQUMsVUFBVSxFQUFJO0lBQ2hDO0lBQ0EsSUFBTUMsYUFBYSxHQUFHRCxVQUFVLENBQUNFLElBQUksQ0FBQ0MsV0FBVyxDQUFDLENBQUMsQ0FBQ0MsU0FBUyxDQUFDSixVQUFVLENBQUNFLElBQUksQ0FBQ0csV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQy9GLElBQUksQ0FBQ1gsdUJBQXVCLENBQUNZLFFBQVEsQ0FBQ0wsYUFBYSxDQUFDLEVBQUU7TUFDcEQsTUFBTSxJQUFJSixLQUFLLGlCQUFBQyxNQUFBLENBQ0VFLFVBQVUsQ0FBQ0UsSUFBSSw2REFBQUosTUFBQSxDQUF5REosdUJBQXVCLENBQUNhLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FDM0gsQ0FBQztJQUNIOztJQUVBO0lBQ0EsSUFBTUMsUUFBUSxHQUFHLE9BQU9SLFVBQVUsQ0FBQ1MsSUFBSSxLQUFLLFFBQVEsR0FBR1QsVUFBVSxDQUFDUyxJQUFJLEdBQUdDLE1BQU0sQ0FBQ1YsVUFBVSxDQUFDUyxJQUFJLENBQUM7SUFDaEcsSUFBTUUsU0FBUyxHQUFHakMsc0JBQXNCLENBQUN1QixhQUFhLENBQUM7SUFDdkQsSUFBTVcsWUFBWSxHQUFHRCxTQUFTLEdBQUcsSUFBSSxHQUFHLElBQUk7SUFFNUMsSUFDRSxDQUFDckMsc0JBQXNCLENBQUNnQyxRQUFRLENBQUNMLGFBQWEsQ0FBQyxJQUM3QzFCLG1DQUFtQyxDQUFDK0IsUUFBUSxDQUFDTCxhQUFhLENBQUMsSUFDM0R6QixrQ0FBa0MsQ0FBQzhCLFFBQVEsQ0FBQ0wsYUFBYSxDQUFDLElBQzFEeEIsNEJBQTRCLENBQUM2QixRQUFRLENBQUNMLGFBQWEsQ0FBQyxLQUN0RE8sUUFBUSxHQUFHSSxZQUFZLEVBQ3ZCO01BQ0EsTUFBTSxJQUFJZixLQUFLLGlCQUFBQyxNQUFBLENBQWdCRSxVQUFVLENBQUNFLElBQUksMENBQUFKLE1BQUEsQ0FBZ0NhLFNBQVMsT0FBSSxDQUFDO0lBQzlGO0VBQ0YsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQVlELE9BQU8sSUFBTUUsY0FBYztFQUFBLElBQUFDLElBQUEsR0FBQUMsaUJBQUEsY0FBQUMsbUJBQUEsQ0FBQUMsSUFBQSxDQUFHLFNBQUFDLFFBQU9DLElBQTJCLEVBQUVDLE1BQW9CO0lBQUEsSUFBQUMsU0FBQSxFQUFBQyxTQUFBLEVBQUFDLFFBQUEsRUFBQUMsYUFBQSxFQUFBQyxPQUFBLEVBQUFDLElBQUEsRUFBQUMsbUJBQUEsRUFBQUMsV0FBQTtJQUFBLE9BQUFaLG1CQUFBLENBQUFhLElBQUEsV0FBQUMsUUFBQTtNQUFBLGtCQUFBQSxRQUFBLENBQUFDLElBQUEsR0FBQUQsUUFBQSxDQUFBRSxJQUFBO1FBQUE7VUFDNUVYLFNBQVMsR0FBNkVGLElBQUksQ0FBMUZFLFNBQVMsRUFBRUMsU0FBUyxHQUFrRUgsSUFBSSxDQUEvRUcsU0FBUyxFQUFFQyxRQUFRLEdBQXdESixJQUFJLENBQXBFSSxRQUFRLEVBQUVDLGFBQWEsR0FBeUNMLElBQUksQ0FBMURLLGFBQWEsRUFBRUMsT0FBTyxHQUFnQ04sSUFBSSxDQUEzQ00sT0FBTyxFQUFFQyxJQUFJLEdBQTBCUCxJQUFJLENBQWxDTyxJQUFJLEVBQUVDLG1CQUFtQixHQUFLUixJQUFJLENBQTVCUSxtQkFBbUI7VUFFbkZDLFdBQW9DLEdBQUc7WUFDM0NLLFVBQVUsRUFBRVosU0FBUztZQUNyQmEsVUFBVSxFQUFFWixTQUFTO1lBQ3JCQyxRQUFRLEVBQVJBO1VBQ0YsQ0FBQztVQUVELElBQUlBLFFBQVEsS0FBSyxNQUFNLElBQUlDLGFBQWEsRUFBRTtZQUN4Q0ksV0FBVyxDQUFDTyxjQUFjLEdBQUdYLGFBQWE7VUFDNUM7VUFBQyxPQUFBTSxRQUFBLENBQUFNLE1BQUEsV0FFTS9ELFNBQVMsQ0FBQztZQUNmZ0UsSUFBSSxFQUFFLDBDQUEwQztZQUNoREMsTUFBTSxFQUFFLE1BQU07WUFDZEMsT0FBTyxFQUFFO2NBQ1AsWUFBWSxFQUFFZCxPQUFPLENBQUNlLFFBQVEsQ0FBQyxDQUFDO2NBQ2hDLGlCQUFpQixFQUFFcEUsVUFBVSxDQUFDc0QsSUFBSSxDQUFDO2NBQ25DLHNCQUFzQixFQUFFQyxtQkFBbUIsR0FBRyxhQUFhLEdBQUc7WUFDaEUsQ0FBQztZQUNEUixJQUFJLEVBQUVTLFdBQVc7WUFDakJSLE1BQU0sRUFBTkE7VUFDRixDQUFDLENBQUM7UUFBQTtRQUFBO1VBQUEsT0FBQVUsUUFBQSxDQUFBVyxJQUFBO01BQUE7SUFBQSxHQUFBdkIsT0FBQTtFQUFBLENBQ0g7RUFBQSxnQkF4QllMLGNBQWNBLENBQUE2QixFQUFBLEVBQUFDLEdBQUE7SUFBQSxPQUFBN0IsSUFBQSxDQUFBOEIsS0FBQSxPQUFBQyxTQUFBO0VBQUE7QUFBQSxHQXdCMUI7QUFFRCxPQUFPLElBQU1DLFlBQVk7RUFBQSxJQUFBQyxLQUFBLEdBQUFoQyxpQkFBQSxjQUFBQyxtQkFBQSxDQUFBQyxJQUFBLENBQUcsU0FBQStCLFNBQU83QixJQUF5QixFQUFFQyxNQUFvQjtJQUFBLElBQUE2QixLQUFBLEVBQUFDLFNBQUEsRUFBQXhCLElBQUEsRUFBQXlCLE1BQUEsRUFBQUMsU0FBQSxFQUFBQyxRQUFBLEVBQUFDLE1BQUEsRUFBQUMsUUFBQSxFQUFBQyxVQUFBLEVBQUFDLEtBQUEsRUFBQWhDLE9BQUEsRUFBQWlDLGlCQUFBLEVBQUFDLGtCQUFBLEVBQUFoQyxtQkFBQSxFQUFBL0IsV0FBQSxFQUFBZ0UsV0FBQSxFQUFBQyxNQUFBLEVBQUFDLFFBQUEsRUFBQUMsS0FBQSxFQUFBQyxpQkFBQSxFQUFBQyxLQUFBLEVBQUFDLElBQUEsRUFBQUMsV0FBQSxFQUFBQyxTQUFBLEVBQUFDLGNBQUEsRUFBQXpGLFdBQUEsRUFBQTBGLFFBQUEsRUFBQUMsUUFBQSxFQUFBbEMsSUFBQSxFQUFBRSxPQUFBLEVBQUFpQyxTQUFBO0lBQUEsT0FBQXhELG1CQUFBLENBQUFhLElBQUEsV0FBQTRDLFNBQUE7TUFBQSxrQkFBQUEsU0FBQSxDQUFBMUMsSUFBQSxHQUFBMEMsU0FBQSxDQUFBekMsSUFBQTtRQUFBO1VBRTlFaUIsS0FBSyxHQTBCSDlCLElBQUksQ0ExQk44QixLQUFLLEVBQ0xDLFNBQVMsR0F5QlAvQixJQUFJLENBekJOK0IsU0FBUyxFQUNUeEIsSUFBSSxHQXdCRlAsSUFBSSxDQXhCTk8sSUFBSSxFQUNKeUIsTUFBTSxHQXVCSmhDLElBQUksQ0F2Qk5nQyxNQUFNLEVBQ05DLFNBQVMsR0FzQlBqQyxJQUFJLENBdEJOaUMsU0FBUyxFQUNUQyxRQUFRLEdBcUJObEMsSUFBSSxDQXJCTmtDLFFBQVEsRUFDUkMsTUFBTSxHQW9CSm5DLElBQUksQ0FwQk5tQyxNQUFNLEVBQ05DLFFBQVEsR0FtQk5wQyxJQUFJLENBbkJOb0MsUUFBUSxFQUNSQyxVQUFVLEdBa0JSckMsSUFBSSxDQWxCTnFDLFVBQVUsRUFDVkMsS0FBSyxHQWlCSHRDLElBQUksQ0FqQk5zQyxLQUFLLEVBQ0xoQyxPQUFPLEdBZ0JMTixJQUFJLENBaEJOTSxPQUFPLEVBQ1BpQyxpQkFBaUIsR0FlZnZDLElBQUksQ0FmTnVDLGlCQUFpQixFQUNqQkMsa0JBQWtCLEdBY2hCeEMsSUFBSSxDQWROd0Msa0JBQWtCLEVBQ2xCaEMsbUJBQW1CLEdBYWpCUixJQUFJLENBYk5RLG1CQUFtQixFQUNuQi9CLFdBQVcsR0FZVHVCLElBQUksQ0FaTnZCLFdBQVcsRUFDWGdFLFdBQVcsR0FXVHpDLElBQUksQ0FYTnlDLFdBQVcsRUFDWEMsTUFBTSxHQVVKMUMsSUFBSSxDQVZOMEMsTUFBTSxFQUNOQyxRQUFRLEdBU04zQyxJQUFJLENBVE4yQyxRQUFRLEVBQ1JDLEtBQUssR0FRSDVDLElBQUksQ0FSTjRDLEtBQUssRUFDTEMsaUJBQWlCLEdBT2Y3QyxJQUFJLENBUE42QyxpQkFBaUIsRUFDakJDLEtBQUssR0FNSDlDLElBQUksQ0FOTjhDLEtBQUssRUFDTEMsSUFBSSxHQUtGL0MsSUFBSSxDQUxOK0MsSUFBSSxFQUNKQyxXQUFXLEdBSVRoRCxJQUFJLENBSk5nRCxXQUFXLEVBQ1hDLFNBQVMsR0FHUGpELElBQUksQ0FITmlELFNBQVMsRUFDVEMsY0FBYyxHQUVabEQsSUFBSSxDQUZOa0QsY0FBYyxFQUNkekYsV0FBVyxHQUNUdUMsSUFBSSxDQUROdkMsV0FBVztVQUdQMEYsUUFBUSxHQUFHLElBQUlJLFFBQVEsQ0FBQyxDQUFDO1VBQy9CSixRQUFRLENBQUNLLE1BQU0sQ0FBQyxPQUFPLEVBQUUxQixLQUFLLENBQUM7VUFDL0JxQixRQUFRLENBQUNLLE1BQU0sQ0FBQyxZQUFZLEVBQUVyQixNQUFNLENBQUM7VUFFckMsSUFBSTFELFdBQVcsYUFBWEEsV0FBVyxlQUFYQSxXQUFXLENBQUVQLE1BQU0sRUFBRTtZQUN2Qk0sbUJBQW1CLENBQUNDLFdBQVcsQ0FBQztZQUVoQ0EsV0FBVyxDQUFDRyxPQUFPLENBQUMsVUFBQUMsVUFBVSxFQUFJO2NBQ2hDO2NBQ0EsSUFBTTRFLFVBQVUsR0FBRzVFLFVBQVUsQ0FBQzZFLFlBQVksSUFBSTdFLFVBQVUsQ0FBQzhFLElBQUk7Y0FDN0RSLFFBQVEsQ0FBQ0ssTUFBTSxDQUFDLE9BQU8sRUFBRUMsVUFBVSxDQUFDO1lBQ3RDLENBQUMsQ0FBQztVQUNKO1VBR0EsSUFBSVQsV0FBVyxLQUFLLFFBQVEsSUFBSUMsU0FBUyxLQUFLLGNBQWMsRUFBRTtZQUM1REcsUUFBUSxHQUFHLENBQUMsQ0FBQztVQUNmLENBQUMsTUFBTTtZQUNMQSxRQUFRLEdBQUFRLGFBQUEsQ0FBQUEsYUFBQSxDQUFBQSxhQUFBLENBQUFBLGFBQUEsQ0FBQUEsYUFBQSxDQUFBQSxhQUFBLENBQUFBLGFBQUEsQ0FBQUEsYUFBQSxDQUFBQSxhQUFBLENBQUFBLGFBQUEsQ0FBQUEsYUFBQTtjQUNOckQsSUFBSSxFQUFFdEQsVUFBVSxDQUFDc0QsSUFBSTtZQUFDLEdBQ2xCeUIsTUFBTSxHQUFHO2NBQUU2QixPQUFPLEVBQUU3QjtZQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsR0FDakNDLFNBQVMsR0FBRztjQUFFNkIsVUFBVSxFQUFFN0I7WUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQzFDQyxRQUFRLEdBQUc7Y0FBRTZCLFNBQVMsRUFBRTdCO1lBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUN2Q0ksS0FBSyxJQUFJLElBQUksR0FBRztjQUFFMEIsTUFBTSxFQUFFMUI7WUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQ3RDRixRQUFRLElBQUksSUFBSSxHQUFHO2NBQUU2QixTQUFTLEVBQUU3QjtZQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsR0FDL0NDLFVBQVUsR0FBRztjQUFFNkIsV0FBVyxFQUFFN0I7WUFBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQzdDTixTQUFTLEdBQUc7Y0FBRW9DLFVBQVUsRUFBRXBDO1lBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUMxQ1UsV0FBVyxHQUFHO2NBQUUyQixZQUFZLEVBQUUzQjtZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsR0FDaERDLE1BQU0sSUFBSSxJQUFJLEdBQUc7Y0FBRTJCLE9BQU8sRUFBRTNCO1lBQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUN6Q0MsUUFBUSxHQUFHO2NBQUUyQixTQUFTLEVBQUUzQjtZQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7Y0FDM0M0QixTQUFTLEVBQUVDLE1BQU0sQ0FBQ0MsUUFBUSxDQUFDQyxRQUFRLENBQUNDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQUMsR0FDN0N6QixjQUFjLElBQUkwQixNQUFNLENBQUNDLElBQUksQ0FBQzNCLGNBQWMsQ0FBQyxDQUFDaEYsTUFBTSxHQUFHLENBQUMsR0FBRztjQUFFNEcsZUFBZSxFQUFFNUI7WUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQ3hHO1VBQ0g7VUFDQUMsUUFBUSxDQUFDSyxNQUFNLENBQUMsVUFBVSxFQUFFN0YsSUFBSSxDQUFDQyxTQUFTLENBQUN3RixRQUFRLENBQUMsQ0FBQztVQUVqRGxDLElBQUksR0FBRywwQkFBMEI7VUFDckMsSUFBSXFCLGlCQUFpQixLQUFLLElBQUksRUFBRTtZQUM5QnJCLElBQUksSUFBSSxrQkFBa0I7VUFDNUI7VUFDQSxJQUFJc0Isa0JBQWtCLEtBQUssSUFBSSxFQUFFO1lBQy9CdEIsSUFBSSxJQUFJLDZCQUE2QjtVQUN2QztVQUVNRSxPQUErQixHQUFHO1lBQ3RDLFlBQVksRUFBRWQsT0FBTyxDQUFDZSxRQUFRLENBQUMsQ0FBQztZQUNoQyxzQkFBc0IsRUFBRWIsbUJBQW1CLEdBQUcsYUFBYSxHQUFHO1VBQ2hFLENBQUMsRUFFRDtVQUNBO1VBQ0E7VUFDQTtVQUNBLElBQUl5QyxTQUFTLEtBQUssY0FBYyxFQUFFO1lBQzVCSSxTQUFTLEdBQUcsRUFBRTtZQUNsQixJQUFJWCxNQUFNLElBQUksSUFBSSxFQUFFVyxTQUFTLFdBQUExRSxNQUFBLENBQVcrRCxNQUFNLENBQUUsTUFDM0MsSUFBSVgsU0FBUyxJQUFJLElBQUksRUFBRXNCLFNBQVMsY0FBQTFFLE1BQUEsQ0FBY29ELFNBQVMsQ0FBRSxNQUN6RCxJQUFJSyxRQUFRLElBQUksSUFBSSxFQUFFaUIsU0FBUyxhQUFBMUUsTUFBQSxDQUFheUQsUUFBUSxDQUFFO1lBQzNELElBQUlpQixTQUFTLEVBQUU7Y0FDYmpDLE9BQU8sQ0FBQyxjQUFjLENBQUMsR0FBR2lDLFNBQVM7WUFDckM7VUFDRjtVQUVBLElBQUlULEtBQUssRUFBRTtZQUNUeEIsT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHd0IsS0FBSztVQUM3QjtVQUVBLElBQUlDLGlCQUFpQixJQUFJRyxXQUFXLEtBQUssUUFBUSxFQUFFO1lBQ2pENUIsT0FBTyxDQUFDLG9CQUFvQixDQUFDLEdBQUd5QixpQkFBaUI7VUFDbkQ7VUFFQSxJQUFJQyxLQUFLLEVBQUU7WUFDVDFCLE9BQU8sQ0FBQyxVQUFVLENBQUMsR0FBRzBCLEtBQUs7VUFDN0I7VUFFQSxJQUFJQyxJQUFJLEVBQUU7WUFDUjNCLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRzJCLElBQUk7VUFDM0I7VUFFQSxJQUFJdEYsV0FBVyxJQUFJbUgsTUFBTSxDQUFDQyxJQUFJLENBQUNwSCxXQUFXLENBQUMsQ0FBQ1MsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN0RGtELE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHNUQsdUJBQXVCLENBQUNDLFdBQVcsQ0FBQztVQUNsRTtVQUFDLE9BQUE2RixTQUFBLENBQUFyQyxNQUFBLFdBRU0vRCxTQUFTLENBQUM7WUFDZmdFLElBQUksRUFBSkEsSUFBSTtZQUNKQyxNQUFNLEVBQUUsTUFBTTtZQUNkQyxPQUFPLEVBQVBBLE9BQU87WUFDUHBCLElBQUksRUFBRW1ELFFBQVE7WUFDZGxELE1BQU0sRUFBTkE7VUFDRixDQUFDLENBQUM7UUFBQTtRQUFBO1VBQUEsT0FBQXFELFNBQUEsQ0FBQWhDLElBQUE7TUFBQTtJQUFBLEdBQUFPLFFBQUE7RUFBQSxDQUNIO0VBQUEsZ0JBeEhZRixZQUFZQSxDQUFBb0QsR0FBQSxFQUFBQyxHQUFBO0lBQUEsT0FBQXBELEtBQUEsQ0FBQUgsS0FBQSxPQUFBQyxTQUFBO0VBQUE7QUFBQSxHQXdIeEIiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -3,9 +3,9 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
|
|
|
3
3
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
4
4
|
/* eslint-disable import/no-cycle */
|
|
5
5
|
import { CorLogo } from '../../components/atoms/icons';
|
|
6
|
-
import {
|
|
6
|
+
import { mapReasoningTrace } from '../../utils/reasoningMappers';
|
|
7
7
|
/* eslint-enable import/no-cycle */
|
|
8
|
-
|
|
8
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
9
9
|
export var ASSISTANT_USER = {
|
|
10
10
|
id: 'assistant',
|
|
11
11
|
name: 'Maia',
|
|
@@ -65,14 +65,14 @@ export var mapChatMessages = function mapChatMessages(items, currentUser, cancel
|
|
|
65
65
|
|
|
66
66
|
// ── HITL items: emit once per group (on the first item of the group) ──
|
|
67
67
|
if (isHitlItem && otid) {
|
|
68
|
-
var _firstItem$project_me3, _firstItem$project_me4, _firstItem$client_met3, _firstItem$client_met4, _group$items$find;
|
|
68
|
+
var _firstItem$project_me3, _firstItem$project_me4, _firstItem$client_met3, _firstItem$client_met4, _group$items$find, _group$items$find2;
|
|
69
69
|
if (emittedGroups.has(otid)) return; // Already emitted this group
|
|
70
70
|
emittedGroups.add(otid);
|
|
71
71
|
var group = hitlGroups.get(otid);
|
|
72
72
|
var firstItem = group.items[0];
|
|
73
|
-
var
|
|
74
|
-
var _gi$pending_approval;
|
|
75
|
-
return (_gi$pending_approval = gi.pending_approval) === null || _gi$pending_approval === void 0 ? void 0 : _gi$pending_approval.manual_approval_detected;
|
|
73
|
+
var isPreApproved = group.items.some(function (gi) {
|
|
74
|
+
var _gi$pending_approval, _gi$pending_approval2;
|
|
75
|
+
return ((_gi$pending_approval = gi.pending_approval) === null || _gi$pending_approval === void 0 ? void 0 : _gi$pending_approval.manual_approval_detected) || ((_gi$pending_approval2 = gi.pending_approval) === null || _gi$pending_approval2 === void 0 ? void 0 : _gi$pending_approval2.auto_approved);
|
|
76
76
|
});
|
|
77
77
|
|
|
78
78
|
// Only emit question if it has content (avoid duplicate empty questions)
|
|
@@ -98,9 +98,7 @@ export var mapChatMessages = function mapChatMessages(items, currentUser, cancel
|
|
|
98
98
|
contextMessage: firstItem.context_message
|
|
99
99
|
} : {}));
|
|
100
100
|
}
|
|
101
|
-
|
|
102
|
-
// Omitir el mensaje con ApprovalBox para aprobaciones manuales: deja visible solo la pregunta del usuario
|
|
103
|
-
if (isManualApproval) return;
|
|
101
|
+
if (isPreApproved) return;
|
|
104
102
|
|
|
105
103
|
// Build merged pending_actions from all items in the group
|
|
106
104
|
var pendingActions = group.items.map(function (gi) {
|
|
@@ -142,7 +140,10 @@ export var mapChatMessages = function mapChatMessages(items, currentUser, cancel
|
|
|
142
140
|
clientName: (_firstItem$client_met4 = firstItem.client_metadata) === null || _firstItem$client_met4 === void 0 ? void 0 : _firstItem$client_met4.name,
|
|
143
141
|
wasHelpful: firstItem.was_helpful,
|
|
144
142
|
attachments: getMessageAttachmentsByRole(firstItem.attachments, 'assistant'),
|
|
145
|
-
sources: []
|
|
143
|
+
sources: [],
|
|
144
|
+
reasoning: mapReasoningTrace((_group$items$find = group.items.find(function (gi) {
|
|
145
|
+
return gi.reasoning;
|
|
146
|
+
})) === null || _group$items$find === void 0 ? void 0 : _group$items$find.reasoning)
|
|
146
147
|
}, firstItem.project_metadata && {
|
|
147
148
|
projectMetadata: {
|
|
148
149
|
is_deleted: firstItem.project_metadata.is_deleted
|
|
@@ -156,13 +157,13 @@ export var mapChatMessages = function mapChatMessages(items, currentUser, cancel
|
|
|
156
157
|
session_id: firstItem.pending_approval.session_id || '',
|
|
157
158
|
metadata: firstItem.pending_approval.metadata || {},
|
|
158
159
|
manual_approval_detected: group.items.some(function (gi) {
|
|
159
|
-
var _gi$pending_approval2;
|
|
160
|
-
return (_gi$pending_approval2 = gi.pending_approval) === null || _gi$pending_approval2 === void 0 ? void 0 : _gi$pending_approval2.manual_approval_detected;
|
|
161
|
-
}),
|
|
162
|
-
warning_message: ((_group$items$find = group.items.find(function (gi) {
|
|
163
160
|
var _gi$pending_approval3;
|
|
164
|
-
return (_gi$pending_approval3 = gi.pending_approval) === null || _gi$pending_approval3 === void 0 ? void 0 : _gi$pending_approval3.
|
|
165
|
-
})
|
|
161
|
+
return (_gi$pending_approval3 = gi.pending_approval) === null || _gi$pending_approval3 === void 0 ? void 0 : _gi$pending_approval3.manual_approval_detected;
|
|
162
|
+
}),
|
|
163
|
+
warning_message: ((_group$items$find2 = group.items.find(function (gi) {
|
|
164
|
+
var _gi$pending_approval4;
|
|
165
|
+
return (_gi$pending_approval4 = gi.pending_approval) === null || _gi$pending_approval4 === void 0 ? void 0 : _gi$pending_approval4.warning_message;
|
|
166
|
+
})) === null || _group$items$find2 === void 0 || (_group$items$find2 = _group$items$find2.pending_approval) === null || _group$items$find2 === void 0 ? void 0 : _group$items$find2.warning_message) || undefined
|
|
166
167
|
},
|
|
167
168
|
approvalStatus: groupStatus
|
|
168
169
|
});
|
|
@@ -217,7 +218,7 @@ export var mapChatMessages = function mapChatMessages(items, currentUser, cancel
|
|
|
217
218
|
}), item.context_message ? {
|
|
218
219
|
contextMessage: item.context_message
|
|
219
220
|
} : {}));
|
|
220
|
-
var answerMessage = _objectSpread(
|
|
221
|
+
var answerMessage = _objectSpread({
|
|
221
222
|
id: "".concat(item.message_id || item.memory_session_id, "-answer"),
|
|
222
223
|
agentId: item.agent_id,
|
|
223
224
|
message: item.answer,
|
|
@@ -231,10 +232,10 @@ export var mapChatMessages = function mapChatMessages(items, currentUser, cancel
|
|
|
231
232
|
attachments: getMessageAttachmentsByRole(item.attachments, 'assistant'),
|
|
232
233
|
sources: item.sources || [],
|
|
233
234
|
suggestions: item.suggest_reply || item.suggestions || [],
|
|
234
|
-
is_cancelled: item.is_cancelled
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
}
|
|
235
|
+
is_cancelled: item.is_cancelled,
|
|
236
|
+
memorySessionId: item.memory_session_id,
|
|
237
|
+
reasoning: mapReasoningTrace(item.reasoning)
|
|
238
|
+
}, item.project_metadata && {
|
|
238
239
|
projectMetadata: {
|
|
239
240
|
is_deleted: item.project_metadata.is_deleted
|
|
240
241
|
}
|
|
@@ -262,7 +263,7 @@ export var mapChatMessages = function mapChatMessages(items, currentUser, cancel
|
|
|
262
263
|
}
|
|
263
264
|
if (item.is_cancelled) {
|
|
264
265
|
var _item$project_metadat7, _item$project_metadat8, _item$client_metadata7, _item$client_metadata8;
|
|
265
|
-
mappedItems.push(_objectSpread(
|
|
266
|
+
mappedItems.push(_objectSpread({
|
|
266
267
|
id: "".concat(item.message_id || item.memory_session_id, "-cancelled"),
|
|
267
268
|
agentId: item.agent_id,
|
|
268
269
|
message: cancelledText || 'Se ha cancelado la búsqueda.',
|
|
@@ -273,9 +274,7 @@ export var mapChatMessages = function mapChatMessages(items, currentUser, cancel
|
|
|
273
274
|
clientId: (_item$client_metadata7 = item.client_metadata) === null || _item$client_metadata7 === void 0 ? void 0 : _item$client_metadata7.id,
|
|
274
275
|
clientName: (_item$client_metadata8 = item.client_metadata) === null || _item$client_metadata8 === void 0 ? void 0 : _item$client_metadata8.name,
|
|
275
276
|
isFrontendCancelled: true
|
|
276
|
-
}, item.
|
|
277
|
-
memorySessionId: item.memory_session_id
|
|
278
|
-
} : {}), item.project_metadata && {
|
|
277
|
+
}, item.project_metadata && {
|
|
279
278
|
projectMetadata: {
|
|
280
279
|
is_deleted: item.project_metadata.is_deleted
|
|
281
280
|
}
|
|
@@ -284,4 +283,4 @@ export var mapChatMessages = function mapChatMessages(items, currentUser, cancel
|
|
|
284
283
|
});
|
|
285
284
|
return mappedItems;
|
|
286
285
|
};
|
|
287
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDb3JMb2dvIiwianN4IiwiX2pzeCIsIkFTU0lTVEFOVF9VU0VSIiwiaWQiLCJuYW1lIiwiYXZhdGFySWNvbiIsInN0eWxlIiwiZGlzcGxheSIsImFsaWduSXRlbXMiLCJqdXN0aWZ5Q29udGVudCIsInBvc2l0aW9uIiwidG9wIiwiY2hpbGRyZW4iLCJnZXRNZXNzYWdlQXR0YWNobWVudHNCeVJvbGUiLCJhdHRhY2htZW50cyIsInJvbGUiLCJBcnJheSIsImlzQXJyYXkiLCJmaWx0ZXIiLCJhdHRhY2htZW50IiwiYXR0YWNobWVudFJvbGUiLCJyZXNvbHZlQXBwcm92YWxTdGF0dXMiLCJzdGF0dXMiLCJtYXBDaGF0TWVzc2FnZXMiLCJpdGVtcyIsImN1cnJlbnRVc2VyIiwiY2FuY2VsbGVkVGV4dCIsImhpdGxHcm91cHMiLCJNYXAiLCJmb3JFYWNoIiwiaXRlbSIsImluZGV4IiwicGVuZGluZ19hcHByb3ZhbCIsIm90aWQiLCJvcmlnaW5hbF90aHJlYWRfaWQiLCJ0aHJlYWRfaWQiLCJtZXNzYWdlX2lkIiwiZXhpc3RpbmciLCJnZXQiLCJwdXNoIiwic2V0IiwiZmlyc3RJbmRleCIsImVtaXR0ZWRHcm91cHMiLCJTZXQiLCJtYXBwZWRJdGVtcyIsIl9pdGVtJHBlbmRpbmdfYXBwcm92YSIsIl9pdGVtJHByb2plY3RfbWV0YWRhdCIsIl9pdGVtJHByb2plY3RfbWV0YWRhdDIiLCJfaXRlbSRjbGllbnRfbWV0YWRhdGEiLCJfaXRlbSRjbGllbnRfbWV0YWRhdGEyIiwiX2l0ZW0kcHJvamVjdF9tZXRhZGF0MyIsIl9pdGVtJHByb2plY3RfbWV0YWRhdDQiLCJfaXRlbSRjbGllbnRfbWV0YWRhdGEzIiwiX2l0ZW0kY2xpZW50X21ldGFkYXRhNCIsImlzSGl0bEl0ZW0iLCJfZmlyc3RJdGVtJHByb2plY3RfbWUzIiwiX2ZpcnN0SXRlbSRwcm9qZWN0X21lNCIsIl9maXJzdEl0ZW0kY2xpZW50X21ldDMiLCJfZmlyc3RJdGVtJGNsaWVudF9tZXQ0IiwiX2dyb3VwJGl0ZW1zJGZpbmQiLCJoYXMiLCJhZGQiLCJncm91cCIsImZpcnN0SXRlbSIsImlzTWFudWFsQXBwcm92YWwiLCJzb21lIiwiZ2kiLCJfZ2kkcGVuZGluZ19hcHByb3ZhbCIsIm1hbnVhbF9hcHByb3ZhbF9kZXRlY3RlZCIsInF1ZXN0aW9uIiwiX2ZpcnN0SXRlbSRwcm9qZWN0X21lIiwiX2ZpcnN0SXRlbSRwcm9qZWN0X21lMiIsIl9maXJzdEl0ZW0kY2xpZW50X21ldCIsIl9maXJzdEl0ZW0kY2xpZW50X21ldDIiLCJfb2JqZWN0U3ByZWFkIiwiY29uY2F0IiwibWVtb3J5X3Nlc3Npb25faWQiLCJhZ2VudElkIiwiYWdlbnRfaWQiLCJtZXNzYWdlIiwiZGF0ZSIsIkRhdGUiLCJ0aW1lc3RhbXAiLCJ1c2VyIiwicHJvamVjdElkIiwicHJvamVjdF9tZXRhZGF0YSIsInByb2plY3ROYW1lIiwiY2xpZW50SWQiLCJjbGllbnRfbWV0YWRhdGEiLCJjbGllbnROYW1lIiwic291cmNlcyIsInByb2plY3RNZXRhZGF0YSIsImlzX2RlbGV0ZWQiLCJjb250ZXh0X21lc3NhZ2UiLCJjb250ZXh0TWVzc2FnZSIsInBlbmRpbmdBY3Rpb25zIiwibWFwIiwidG9vbF9jYWxsX2lkIiwidG9vbF9uYW1lIiwidG9vbF9hcmdzIiwic3RhdHVzZXMiLCJncm91cFN0YXR1cyIsInMiLCJhcHByb3ZhbE1lc3NhZ2UiLCJhbnN3ZXIiLCJzdGFydHNXaXRoIiwiYW5zd2VyTWVzc2FnZSIsIndhc0hlbHBmdWwiLCJ3YXNfaGVscGZ1bCIsImFwcHJvdmFsIiwidHlwZSIsInBlbmRpbmdfYWN0aW9ucyIsInRvdGFsX2FjdGlvbnMiLCJsZW5ndGgiLCJzZXNzaW9uX2lkIiwibWV0YWRhdGEiLCJfZ2kkcGVuZGluZ19hcHByb3ZhbDIiLCJ3YXJuaW5nX21lc3NhZ2UiLCJmaW5kIiwiX2dpJHBlbmRpbmdfYXBwcm92YWwzIiwidW5kZWZpbmVkIiwiYXBwcm92YWxTdGF0dXMiLCJyZWplY3RlZEl0ZW0iLCJfcmVqZWN0ZWRJdGVtJHByb2plY3QiLCJfcmVqZWN0ZWRJdGVtJHByb2plY3QyIiwiX3JlamVjdGVkSXRlbSRjbGllbnRfIiwiX3JlamVjdGVkSXRlbSRjbGllbnRfMiIsInN1Z2dlc3Rpb25zIiwic3VnZ2VzdF9yZXBseSIsImlzX2NhbmNlbGxlZCIsIm1lbW9yeVNlc3Npb25JZCIsIl9pdGVtJHByb2plY3RfbWV0YWRhdDUiLCJfaXRlbSRwcm9qZWN0X21ldGFkYXQ2IiwiX2l0ZW0kY2xpZW50X21ldGFkYXRhNSIsIl9pdGVtJGNsaWVudF9tZXRhZGF0YTYiLCJfaXRlbSRwcm9qZWN0X21ldGFkYXQ3IiwiX2l0ZW0kcHJvamVjdF9tZXRhZGF0OCIsIl9pdGVtJGNsaWVudF9tZXRhZGF0YTciLCJfaXRlbSRjbGllbnRfbWV0YWRhdGE4IiwiaXNGcm9udGVuZENhbmNlbGxlZCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy91dGlscy9tYXBDaGF0TWVzc2FnZXMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGltcG9ydC9uby1jeWNsZSAqL1xuaW1wb3J0IHsgQ29yTG9nbyB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvYXRvbXMvaWNvbnMnXG5pbXBvcnQgeyBDaGF0TWVzc2FnZSwgQ2hhdE1lc3NhZ2VJdGVtUmVzcG9uc2UsIENoYXRNZXNzYWdlVXNlciB9IGZyb20gJy4uLy4uL3R5cGVzL0NoYXQnXG4vKiBlc2xpbnQtZW5hYmxlIGltcG9ydC9uby1jeWNsZSAqL1xuXG5leHBvcnQgY29uc3QgQVNTSVNUQU5UX1VTRVI6IENoYXRNZXNzYWdlVXNlciA9IHtcbiAgaWQ6ICdhc3Npc3RhbnQnLFxuICBuYW1lOiAnTWFpYScsXG4gIGF2YXRhckljb246IChcbiAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywgYWxpZ25JdGVtczogJ2NlbnRlcicsIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJywgcG9zaXRpb246ICdzdGlja3knLCB0b3A6IDAgfX0+XG4gICAgICA8Q29yTG9nbyAvPlxuICAgIDwvZGl2PlxuICApLFxufVxuXG5jb25zdCBnZXRNZXNzYWdlQXR0YWNobWVudHNCeVJvbGUgPSAoXG4gIGF0dGFjaG1lbnRzOiBDaGF0TWVzc2FnZUl0ZW1SZXNwb25zZVsnYXR0YWNobWVudHMnXSxcbiAgcm9sZTogJ3VzZXInIHwgJ2Fzc2lzdGFudCdcbikgPT4ge1xuICBpZiAoIUFycmF5LmlzQXJyYXkoYXR0YWNobWVudHMpKSByZXR1cm4gW11cblxuICByZXR1cm4gYXR0YWNobWVudHMuZmlsdGVyKGF0dGFjaG1lbnQgPT4ge1xuICAgIGNvbnN0IGF0dGFjaG1lbnRSb2xlID0gYXR0YWNobWVudD8ucm9sZSB8fCAndXNlcidcbiAgICByZXR1cm4gcm9sZSA9PT0gJ2Fzc2lzdGFudCcgPyBhdHRhY2htZW50Um9sZSA9PT0gJ2Fzc2lzdGFudCcgOiBhdHRhY2htZW50Um9sZSAhPT0gJ2Fzc2lzdGFudCdcbiAgfSlcbn1cblxuLyoqXG4gKiBSZXNvbHZlIHRoZSBmcm9udGVuZCBhcHByb3ZhbFN0YXR1cyBmcm9tIHRoZSBiYWNrZW5kIE1lbW9yeVNlc3Npb24gc3RhdHVzLlxuICovXG5mdW5jdGlvbiByZXNvbHZlQXBwcm92YWxTdGF0dXMoc3RhdHVzPzogc3RyaW5nKTogJ3BlbmRpbmcnIHwgJ2FwcHJvdmVkJyB8ICdyZWplY3RlZCcge1xuICBpZiAoc3RhdHVzID09PSAnY29tcGxldGVkJyB8fCBzdGF0dXMgPT09ICdhcHByb3ZlZCcpIHJldHVybiAnYXBwcm92ZWQnXG4gIGlmIChzdGF0dXMgPT09ICdyZWplY3RlZCcpIHJldHVybiAncmVqZWN0ZWQnXG4gIHJldHVybiAncGVuZGluZydcbn1cblxuZXhwb3J0IGNvbnN0IG1hcENoYXRNZXNzYWdlcyA9IChcbiAgaXRlbXM6IENoYXRNZXNzYWdlSXRlbVJlc3BvbnNlW10sXG4gIGN1cnJlbnRVc2VyOiBDaGF0TWVzc2FnZVVzZXIsXG4gIGNhbmNlbGxlZFRleHQ/OiBzdHJpbmdcbik6IENoYXRNZXNzYWdlW10gPT4ge1xuICAvLyDilIDilIAgMS4gR3JvdXAgSElUTCBpdGVtcyB0aGF0IHNoYXJlIHRoZSBzYW1lIG9yaWdpbmFsX3RocmVhZF9pZCDilIDilIBcbiAgLy8gU28gbXVsdGlwbGUgTWVtb3J5U2Vzc2lvbnMgZnJvbSBhIHNpbmdsZSBISVRMIGJhdGNoIHJlbmRlciBpbiBvbmUgQXBwcm92YWxCb3guXG4gIGNvbnN0IGhpdGxHcm91cHMgPSBuZXcgTWFwPHN0cmluZywgeyBpdGVtczogQ2hhdE1lc3NhZ2VJdGVtUmVzcG9uc2VbXTsgZmlyc3RJbmRleDogbnVtYmVyIH0+KClcbiAgaXRlbXMuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICBpZiAoIWl0ZW0ucGVuZGluZ19hcHByb3ZhbCkgcmV0dXJuXG4gICAgY29uc3Qgb3RpZCA9IGl0ZW0ucGVuZGluZ19hcHByb3ZhbC5vcmlnaW5hbF90aHJlYWRfaWQgfHwgaXRlbS50aHJlYWRfaWQgfHwgaXRlbS5tZXNzYWdlX2lkXG4gICAgaWYgKCFvdGlkKSByZXR1cm5cblxuICAgIGNvbnN0IGV4aXN0aW5nID0gaGl0bEdyb3Vwcy5nZXQob3RpZClcbiAgICBpZiAoZXhpc3RpbmcpIHtcbiAgICAgIGV4aXN0aW5nLml0ZW1zLnB1c2goaXRlbSlcbiAgICB9IGVsc2Uge1xuICAgICAgaGl0bEdyb3Vwcy5zZXQob3RpZCwgeyBpdGVtczogW2l0ZW1dLCBmaXJzdEluZGV4OiBpbmRleCB9KVxuICAgIH1cbiAgfSlcblxuICAvLyBUcmFjayB3aGljaCBvcmlnaW5hbF90aHJlYWRfaWRzIGhhdmUgYWxyZWFkeSBiZWVuIGVtaXR0ZWRcbiAgY29uc3QgZW1pdHRlZEdyb3VwcyA9IG5ldyBTZXQ8c3RyaW5nPigpXG5cbiAgY29uc3QgbWFwcGVkSXRlbXM6IENoYXRNZXNzYWdlW10gPSBbXVxuXG4gIGl0ZW1zLmZvckVhY2goaXRlbSA9PiB7XG4gICAgY29uc3QgaXNIaXRsSXRlbSA9ICEhaXRlbS5wZW5kaW5nX2FwcHJvdmFsXG4gICAgY29uc3Qgb3RpZCA9IGl0ZW0ucGVuZGluZ19hcHByb3ZhbD8ub3JpZ2luYWxfdGhyZWFkX2lkIHx8IGl0ZW0udGhyZWFkX2lkIHx8IGl0ZW0ubWVzc2FnZV9pZCB8fCAnJ1xuXG4gICAgLy8g4pSA4pSAIEhJVEwgaXRlbXM6IGVtaXQgb25jZSBwZXIgZ3JvdXAgKG9uIHRoZSBmaXJzdCBpdGVtIG9mIHRoZSBncm91cCkg4pSA4pSAXG4gICAgaWYgKGlzSGl0bEl0ZW0gJiYgb3RpZCkge1xuICAgICAgaWYgKGVtaXR0ZWRHcm91cHMuaGFzKG90aWQpKSByZXR1cm4gLy8gQWxyZWFkeSBlbWl0dGVkIHRoaXMgZ3JvdXBcbiAgICAgIGVtaXR0ZWRHcm91cHMuYWRkKG90aWQpXG5cbiAgICAgIGNvbnN0IGdyb3VwID0gaGl0bEdyb3Vwcy5nZXQob3RpZCkhXG4gICAgICBjb25zdCBmaXJzdEl0ZW0gPSBncm91cC5pdGVtc1swXVxuICAgICAgY29uc3QgaXNNYW51YWxBcHByb3ZhbCA9IGdyb3VwLml0ZW1zLnNvbWUoZ2kgPT4gZ2kucGVuZGluZ19hcHByb3ZhbD8ubWFudWFsX2FwcHJvdmFsX2RldGVjdGVkKVxuXG4gICAgICAvLyBPbmx5IGVtaXQgcXVlc3Rpb24gaWYgaXQgaGFzIGNvbnRlbnQgKGF2b2lkIGR1cGxpY2F0ZSBlbXB0eSBxdWVzdGlvbnMpXG4gICAgICBpZiAoZmlyc3RJdGVtLnF1ZXN0aW9uKSB7XG4gICAgICAgIG1hcHBlZEl0ZW1zLnB1c2goe1xuICAgICAgICAgIGlkOiBgJHtmaXJzdEl0ZW0ubWVzc2FnZV9pZCB8fCBmaXJzdEl0ZW0ubWVtb3J5X3Nlc3Npb25faWR9LXF1ZXN0aW9uYCxcbiAgICAgICAgICBhZ2VudElkOiBmaXJzdEl0ZW0uYWdlbnRfaWQsXG4gICAgICAgICAgbWVzc2FnZTogZmlyc3RJdGVtLnF1ZXN0aW9uLFxuICAgICAgICAgIGRhdGU6IG5ldyBEYXRlKGZpcnN0SXRlbS50aW1lc3RhbXApLFxuICAgICAgICAgIHVzZXI6IGN1cnJlbnRVc2VyLFxuICAgICAgICAgIHByb2plY3RJZDogZmlyc3RJdGVtLnByb2plY3RfbWV0YWRhdGE/LmlkLFxuICAgICAgICAgIHByb2plY3ROYW1lOiBmaXJzdEl0ZW0ucHJvamVjdF9tZXRhZGF0YT8ubmFtZSxcbiAgICAgICAgICBjbGllbnRJZDogZmlyc3RJdGVtLmNsaWVudF9tZXRhZGF0YT8uaWQsXG4gICAgICAgICAgY2xpZW50TmFtZTogZmlyc3RJdGVtLmNsaWVudF9tZXRhZGF0YT8ubmFtZSxcbiAgICAgICAgICBhdHRhY2htZW50czogZ2V0TWVzc2FnZUF0dGFjaG1lbnRzQnlSb2xlKGZpcnN0SXRlbS5hdHRhY2htZW50cywgJ3VzZXInKSxcbiAgICAgICAgICBzb3VyY2VzOiBudWxsLFxuICAgICAgICAgIC4uLihmaXJzdEl0ZW0ucHJvamVjdF9tZXRhZGF0YSAmJiB7IHByb2plY3RNZXRhZGF0YTogeyBpc19kZWxldGVkOiBmaXJzdEl0ZW0ucHJvamVjdF9tZXRhZGF0YS5pc19kZWxldGVkIH0gfSksXG4gICAgICAgICAgLi4uKGZpcnN0SXRlbS5jb250ZXh0X21lc3NhZ2UgPyB7IGNvbnRleHRNZXNzYWdlOiBmaXJzdEl0ZW0uY29udGV4dF9tZXNzYWdlIH0gOiB7fSksXG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIC8vIE9taXRpciBlbCBtZW5zYWplIGNvbiBBcHByb3ZhbEJveCBwYXJhIGFwcm9iYWNpb25lcyBtYW51YWxlczogZGVqYSB2aXNpYmxlIHNvbG8gbGEgcHJlZ3VudGEgZGVsIHVzdWFyaW9cbiAgICAgIGlmIChpc01hbnVhbEFwcHJvdmFsKSByZXR1cm5cblxuICAgICAgLy8gQnVpbGQgbWVyZ2VkIHBlbmRpbmdfYWN0aW9ucyBmcm9tIGFsbCBpdGVtcyBpbiB0aGUgZ3JvdXBcbiAgICAgIGNvbnN0IHBlbmRpbmdBY3Rpb25zID0gZ3JvdXAuaXRlbXMubWFwKGdpID0+ICh7XG4gICAgICAgIHRocmVhZF9pZDogZ2kudGhyZWFkX2lkIHx8ICcnLFxuICAgICAgICB0b29sX2NhbGxfaWQ6IGdpLnBlbmRpbmdfYXBwcm92YWwhLnRvb2xfY2FsbF9pZCB8fCAnJyxcbiAgICAgICAgdG9vbF9uYW1lOiBnaS5wZW5kaW5nX2FwcHJvdmFsIS50b29sX25hbWUgfHwgJ3Vua25vd24nLFxuICAgICAgICB0b29sX2FyZ3M6IGdpLnBlbmRpbmdfYXBwcm92YWwhLnRvb2xfYXJncyB8fCB7fSxcbiAgICAgIH0pKVxuXG4gICAgICAvLyBSZXNvbHZlIHN0YXR1czogaWYgQU5ZIGlzIHBlbmRpbmcg4oaSIHBlbmRpbmc7IGlmIEFMTCBhcHByb3ZlZCDihpIgYXBwcm92ZWQ7IGVsc2UgcmVqZWN0ZWRcbiAgICAgIGNvbnN0IHN0YXR1c2VzID0gZ3JvdXAuaXRlbXMubWFwKGdpID0+IHJlc29sdmVBcHByb3ZhbFN0YXR1cyhnaS5zdGF0dXMpKVxuICAgICAgbGV0IGdyb3VwU3RhdHVzOiAncGVuZGluZycgfCAnYXBwcm92ZWQnIHwgJ3JlamVjdGVkJyA9ICdhcHByb3ZlZCdcbiAgICAgIGlmIChzdGF0dXNlcy5zb21lKHMgPT4gcyA9PT0gJ3BlbmRpbmcnKSkge1xuICAgICAgICBncm91cFN0YXR1cyA9ICdwZW5kaW5nJ1xuICAgICAgfSBlbHNlIGlmIChzdGF0dXNlcy5zb21lKHMgPT4gcyA9PT0gJ3JlamVjdGVkJykpIHtcbiAgICAgICAgZ3JvdXBTdGF0dXMgPSAncmVqZWN0ZWQnXG4gICAgICB9XG5cbiAgICAgIC8vIFRleHRvIHF1ZSBlbCBhZ2VudGUgZW52acOzIGp1bnRvIGFsIHBlZGlkbyBkZSBhcHJvYmFjacOzbi4gQ3VhbmRvIGVzdMOhXG4gICAgICAvLyBwZW5kaWVudGUgZWwgYmFja2VuZCBtYW5kYSB1biBwbGFjZWhvbGRlciBgW1BlbmRpZW50ZS4uLl1gIHF1ZSBubyBkZWJlIG1vc3RyYXJzZS5cbiAgICAgIGNvbnN0IGFwcHJvdmFsTWVzc2FnZSA9IGZpcnN0SXRlbS5hbnN3ZXIgJiYgIWZpcnN0SXRlbS5hbnN3ZXIuc3RhcnRzV2l0aCgnW1BlbmRpZW50ZScpID8gZmlyc3RJdGVtLmFuc3dlciA6ICcnXG5cbiAgICAgIGNvbnN0IGFuc3dlck1lc3NhZ2U6IENoYXRNZXNzYWdlID0ge1xuICAgICAgICBpZDogYGFwcHJvdmFsLSR7b3RpZH1gLFxuICAgICAgICBhZ2VudElkOiBmaXJzdEl0ZW0uYWdlbnRfaWQsXG4gICAgICAgIG1lc3NhZ2U6IGFwcHJvdmFsTWVzc2FnZSxcbiAgICAgICAgZGF0ZTogbmV3IERhdGUoZmlyc3RJdGVtLnRpbWVzdGFtcCksXG4gICAgICAgIHVzZXI6IEFTU0lTVEFOVF9VU0VSLFxuICAgICAgICBwcm9qZWN0SWQ6IGZpcnN0SXRlbS5wcm9qZWN0X21ldGFkYXRhPy5pZCxcbiAgICAgICAgcHJvamVjdE5hbWU6IGZpcnN0SXRlbS5wcm9qZWN0X21ldGFkYXRhPy5uYW1lLFxuICAgICAgICBjbGllbnRJZDogZmlyc3RJdGVtLmNsaWVudF9tZXRhZGF0YT8uaWQsXG4gICAgICAgIGNsaWVudE5hbWU6IGZpcnN0SXRlbS5jbGllbnRfbWV0YWRhdGE/Lm5hbWUsXG4gICAgICAgIHdhc0hlbHBmdWw6IGZpcnN0SXRlbS53YXNfaGVscGZ1bCxcbiAgICAgICAgYXR0YWNobWVudHM6IGdldE1lc3NhZ2VBdHRhY2htZW50c0J5Um9sZShmaXJzdEl0ZW0uYXR0YWNobWVudHMsICdhc3Npc3RhbnQnKSxcbiAgICAgICAgc291cmNlczogW10sXG4gICAgICAgIC4uLihmaXJzdEl0ZW0ucHJvamVjdF9tZXRhZGF0YSAmJiB7IHByb2plY3RNZXRhZGF0YTogeyBpc19kZWxldGVkOiBmaXJzdEl0ZW0ucHJvamVjdF9tZXRhZGF0YS5pc19kZWxldGVkIH0gfSksXG4gICAgICAgIGFwcHJvdmFsOiB7XG4gICAgICAgICAgdHlwZTogJ2FwcHJvdmFsX3JlcXVpcmVkJyxcbiAgICAgICAgICBwZW5kaW5nX2FjdGlvbnM6IHBlbmRpbmdBY3Rpb25zLFxuICAgICAgICAgIHRvdGFsX2FjdGlvbnM6IHBlbmRpbmdBY3Rpb25zLmxlbmd0aCxcbiAgICAgICAgICBvcmlnaW5hbF90aHJlYWRfaWQ6IG90aWQsXG4gICAgICAgICAgc2Vzc2lvbl9pZDogZmlyc3RJdGVtLnBlbmRpbmdfYXBwcm92YWwhLnNlc3Npb25faWQgfHwgJycsXG4gICAgICAgICAgbWV0YWRhdGE6IGZpcnN0SXRlbS5wZW5kaW5nX2FwcHJvdmFsIS5tZXRhZGF0YSB8fCB7fSxcbiAgICAgICAgICBtYW51YWxfYXBwcm92YWxfZGV0ZWN0ZWQ6IGdyb3VwLml0ZW1zLnNvbWUoZ2kgPT4gZ2kucGVuZGluZ19hcHByb3ZhbD8ubWFudWFsX2FwcHJvdmFsX2RldGVjdGVkKSxcbiAgICAgICAgICB3YXJuaW5nX21lc3NhZ2U6XG4gICAgICAgICAgICBncm91cC5pdGVtcy5maW5kKGdpID0+IGdpLnBlbmRpbmdfYXBwcm92YWw/Lndhcm5pbmdfbWVzc2FnZSk/LnBlbmRpbmdfYXBwcm92YWw/Lndhcm5pbmdfbWVzc2FnZSB8fFxuICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICB9LFxuICAgICAgICBhcHByb3ZhbFN0YXR1czogZ3JvdXBTdGF0dXMsXG4gICAgICB9XG5cbiAgICAgIG1hcHBlZEl0ZW1zLnB1c2goYW5zd2VyTWVzc2FnZSlcblxuICAgICAgLy8gSWYgcmVqZWN0ZWQsIGFkZCB0aGUgcmVqZWN0aW9uIG1lc3NhZ2VcbiAgICAgIGlmIChncm91cFN0YXR1cyA9PT0gJ3JlamVjdGVkJykge1xuICAgICAgICBjb25zdCByZWplY3RlZEl0ZW0gPSBncm91cC5pdGVtcy5maW5kKFxuICAgICAgICAgIGdpID0+IGdpLnN0YXR1cyA9PT0gJ3JlamVjdGVkJyAmJiBnaS5hbnN3ZXIgJiYgIWdpLmFuc3dlci5zdGFydHNXaXRoKCdbUGVuZGllbnRlJylcbiAgICAgICAgKVxuICAgICAgICBpZiAocmVqZWN0ZWRJdGVtKSB7XG4gICAgICAgICAgbWFwcGVkSXRlbXMucHVzaCh7XG4gICAgICAgICAgICBpZDogYCR7cmVqZWN0ZWRJdGVtLm1lc3NhZ2VfaWQgfHwgcmVqZWN0ZWRJdGVtLm1lbW9yeV9zZXNzaW9uX2lkfS1yZWplY3Rpb25gLFxuICAgICAgICAgICAgYWdlbnRJZDogcmVqZWN0ZWRJdGVtLmFnZW50X2lkLFxuICAgICAgICAgICAgbWVzc2FnZTogcmVqZWN0ZWRJdGVtLmFuc3dlcixcbiAgICAgICAgICAgIGRhdGU6IG5ldyBEYXRlKHJlamVjdGVkSXRlbS50aW1lc3RhbXApLFxuICAgICAgICAgICAgdXNlcjogQVNTSVNUQU5UX1VTRVIsXG4gICAgICAgICAgICBwcm9qZWN0SWQ6IHJlamVjdGVkSXRlbS5wcm9qZWN0X21ldGFkYXRhPy5pZCxcbiAgICAgICAgICAgIHByb2plY3ROYW1lOiByZWplY3RlZEl0ZW0ucHJvamVjdF9tZXRhZGF0YT8ubmFtZSxcbiAgICAgICAgICAgIGNsaWVudElkOiByZWplY3RlZEl0ZW0uY2xpZW50X21ldGFkYXRhPy5pZCxcbiAgICAgICAgICAgIGNsaWVudE5hbWU6IHJlamVjdGVkSXRlbS5jbGllbnRfbWV0YWRhdGE/Lm5hbWUsXG4gICAgICAgICAgICBhdHRhY2htZW50czogW10sXG4gICAgICAgICAgICBzb3VyY2VzOiBbXSxcbiAgICAgICAgICAgIC4uLihyZWplY3RlZEl0ZW0ucHJvamVjdF9tZXRhZGF0YSAmJiB7XG4gICAgICAgICAgICAgIHByb2plY3RNZXRhZGF0YTogeyBpc19kZWxldGVkOiByZWplY3RlZEl0ZW0ucHJvamVjdF9tZXRhZGF0YS5pc19kZWxldGVkIH0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIC8vIOKUgOKUgCBOb3JtYWwgKG5vbi1ISVRMKSBpdGVtcyDilIDilIBcbiAgICBtYXBwZWRJdGVtcy5wdXNoKHtcbiAgICAgIGlkOiBgJHtpdGVtLm1lc3NhZ2VfaWQgfHwgaXRlbS5tZW1vcnlfc2Vzc2lvbl9pZH0tcXVlc3Rpb25gLFxuICAgICAgYWdlbnRJZDogaXRlbS5hZ2VudF9pZCxcbiAgICAgIG1lc3NhZ2U6IGl0ZW0ucXVlc3Rpb24sXG4gICAgICBkYXRlOiBuZXcgRGF0ZShpdGVtLnRpbWVzdGFtcCksXG4gICAgICB1c2VyOiBjdXJyZW50VXNlcixcbiAgICAgIHByb2plY3RJZDogaXRlbS5wcm9qZWN0X21ldGFkYXRhPy5pZCxcbiAgICAgIHByb2plY3ROYW1lOiBpdGVtLnByb2plY3RfbWV0YWRhdGE/Lm5hbWUsXG4gICAgICBjbGllbnRJZDogaXRlbS5jbGllbnRfbWV0YWRhdGE/LmlkLFxuICAgICAgY2xpZW50TmFtZTogaXRlbS5jbGllbnRfbWV0YWRhdGE/Lm5hbWUsXG4gICAgICBhdHRhY2htZW50czogZ2V0TWVzc2FnZUF0dGFjaG1lbnRzQnlSb2xlKGl0ZW0uYXR0YWNobWVudHMsICd1c2VyJyksXG4gICAgICBzb3VyY2VzOiBudWxsLFxuICAgICAgLi4uKGl0ZW0ucHJvamVjdF9tZXRhZGF0YSAmJiB7IHByb2plY3RNZXRhZGF0YTogeyBpc19kZWxldGVkOiBpdGVtLnByb2plY3RfbWV0YWRhdGEuaXNfZGVsZXRlZCB9IH0pLFxuICAgICAgLi4uKGl0ZW0uY29udGV4dF9tZXNzYWdlID8geyBjb250ZXh0TWVzc2FnZTogaXRlbS5jb250ZXh0X21lc3NhZ2UgfSA6IHt9KSxcbiAgICB9KVxuXG4gICAgY29uc3QgYW5zd2VyTWVzc2FnZTogQ2hhdE1lc3NhZ2UgPSB7XG4gICAgICBpZDogYCR7aXRlbS5tZXNzYWdlX2lkIHx8IGl0ZW0ubWVtb3J5X3Nlc3Npb25faWR9LWFuc3dlcmAsXG4gICAgICBhZ2VudElkOiBpdGVtLmFnZW50X2lkLFxuICAgICAgbWVzc2FnZTogaXRlbS5hbnN3ZXIsXG4gICAgICBkYXRlOiBuZXcgRGF0ZShpdGVtLnRpbWVzdGFtcCksXG4gICAgICB1c2VyOiBBU1NJU1RBTlRfVVNFUixcbiAgICAgIHByb2plY3RJZDogaXRlbS5wcm9qZWN0X21ldGFkYXRhPy5pZCxcbiAgICAgIHByb2plY3ROYW1lOiBpdGVtLnByb2plY3RfbWV0YWRhdGE/Lm5hbWUsXG4gICAgICBjbGllbnRJZDogaXRlbS5jbGllbnRfbWV0YWRhdGE/LmlkLFxuICAgICAgY2xpZW50TmFtZTogaXRlbS5jbGllbnRfbWV0YWRhdGE/Lm5hbWUsXG4gICAgICB3YXNIZWxwZnVsOiBpdGVtLndhc19oZWxwZnVsLFxuICAgICAgYXR0YWNobWVudHM6IGdldE1lc3NhZ2VBdHRhY2htZW50c0J5Um9sZShpdGVtLmF0dGFjaG1lbnRzLCAnYXNzaXN0YW50JyksXG4gICAgICBzb3VyY2VzOiBpdGVtLnNvdXJjZXMgfHwgW10sXG4gICAgICBzdWdnZXN0aW9uczogaXRlbS5zdWdnZXN0X3JlcGx5IHx8IGl0ZW0uc3VnZ2VzdGlvbnMgfHwgW10sXG4gICAgICBpc19jYW5jZWxsZWQ6IGl0ZW0uaXNfY2FuY2VsbGVkLFxuICAgICAgLi4uKGl0ZW0ubWVtb3J5X3Nlc3Npb25faWQgPyB7IG1lbW9yeVNlc3Npb25JZDogaXRlbS5tZW1vcnlfc2Vzc2lvbl9pZCB9IDoge30pLFxuICAgICAgLi4uKGl0ZW0ucHJvamVjdF9tZXRhZGF0YSAmJiB7IHByb2plY3RNZXRhZGF0YTogeyBpc19kZWxldGVkOiBpdGVtLnByb2plY3RfbWV0YWRhdGEuaXNfZGVsZXRlZCB9IH0pLFxuICAgIH1cblxuICAgIG1hcHBlZEl0ZW1zLnB1c2goYW5zd2VyTWVzc2FnZSlcblxuICAgIGlmIChpdGVtLnN0YXR1cyA9PT0gJ3JlamVjdGVkJyAmJiBpdGVtLmFuc3dlciAmJiAhaXRlbS5hbnN3ZXIuc3RhcnRzV2l0aCgnW1BlbmRpZW50ZScpKSB7XG4gICAgICBtYXBwZWRJdGVtcy5wdXNoKHtcbiAgICAgICAgaWQ6IGAke2l0ZW0ubWVzc2FnZV9pZCB8fCBpdGVtLm1lbW9yeV9zZXNzaW9uX2lkfS1yZWplY3Rpb25gLFxuICAgICAgICBhZ2VudElkOiBpdGVtLmFnZW50X2lkLFxuICAgICAgICBtZXNzYWdlOiBpdGVtLmFuc3dlcixcbiAgICAgICAgZGF0ZTogbmV3IERhdGUoaXRlbS50aW1lc3RhbXApLFxuICAgICAgICB1c2VyOiBBU1NJU1RBTlRfVVNFUixcbiAgICAgICAgcHJvamVjdElkOiBpdGVtLnByb2plY3RfbWV0YWRhdGE/LmlkLFxuICAgICAgICBwcm9qZWN0TmFtZTogaXRlbS5wcm9qZWN0X21ldGFkYXRhPy5uYW1lLFxuICAgICAgICBjbGllbnRJZDogaXRlbS5jbGllbnRfbWV0YWRhdGE/LmlkLFxuICAgICAgICBjbGllbnROYW1lOiBpdGVtLmNsaWVudF9tZXRhZGF0YT8ubmFtZSxcbiAgICAgICAgYXR0YWNobWVudHM6IFtdLFxuICAgICAgICBzb3VyY2VzOiBbXSxcbiAgICAgICAgLi4uKGl0ZW0ucHJvamVjdF9tZXRhZGF0YSAmJiB7IHByb2plY3RNZXRhZGF0YTogeyBpc19kZWxldGVkOiBpdGVtLnByb2plY3RfbWV0YWRhdGEuaXNfZGVsZXRlZCB9IH0pLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICBpZiAoaXRlbS5pc19jYW5jZWxsZWQpIHtcbiAgICAgIG1hcHBlZEl0ZW1zLnB1c2goe1xuICAgICAgICBpZDogYCR7aXRlbS5tZXNzYWdlX2lkIHx8IGl0ZW0ubWVtb3J5X3Nlc3Npb25faWR9LWNhbmNlbGxlZGAsXG4gICAgICAgIGFnZW50SWQ6IGl0ZW0uYWdlbnRfaWQsXG4gICAgICAgIG1lc3NhZ2U6IGNhbmNlbGxlZFRleHQgfHwgJ1NlIGhhIGNhbmNlbGFkbyBsYSBiw7pzcXVlZGEuJyxcbiAgICAgICAgZGF0ZTogbmV3IERhdGUoaXRlbS50aW1lc3RhbXApLFxuICAgICAgICB1c2VyOiBBU1NJU1RBTlRfVVNFUixcbiAgICAgICAgcHJvamVjdElkOiBpdGVtLnByb2plY3RfbWV0YWRhdGE/LmlkLFxuICAgICAgICBwcm9qZWN0TmFtZTogaXRlbS5wcm9qZWN0X21ldGFkYXRhPy5uYW1lLFxuICAgICAgICBjbGllbnRJZDogaXRlbS5jbGllbnRfbWV0YWRhdGE/LmlkLFxuICAgICAgICBjbGllbnROYW1lOiBpdGVtLmNsaWVudF9tZXRhZGF0YT8ubmFtZSxcbiAgICAgICAgaXNGcm9udGVuZENhbmNlbGxlZDogdHJ1ZSxcbiAgICAgICAgLi4uKGl0ZW0ubWVtb3J5X3Nlc3Npb25faWQgPyB7IG1lbW9yeVNlc3Npb25JZDogaXRlbS5tZW1vcnlfc2Vzc2lvbl9pZCB9IDoge30pLFxuICAgICAgICAuLi4oaXRlbS5wcm9qZWN0X21ldGFkYXRhICYmIHsgcHJvamVjdE1ldGFkYXRhOiB7IGlzX2RlbGV0ZWQ6IGl0ZW0ucHJvamVjdF9tZXRhZGF0YS5pc19kZWxldGVkIH0gfSksXG4gICAgICB9KVxuICAgIH1cbiAgfSlcblxuICByZXR1cm4gbWFwcGVkSXRlbXNcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7QUFDQSxTQUFTQSxPQUFPLFFBQVEsOEJBQThCO0FBQUEsU0FBQUMsR0FBQSxJQUFBQyxJQUFBO0FBRXREOztBQUVBLE9BQU8sSUFBTUMsY0FBK0IsR0FBRztFQUM3Q0MsRUFBRSxFQUFFLFdBQVc7RUFDZkMsSUFBSSxFQUFFLE1BQU07RUFDWkMsVUFBVSxlQUNSSixJQUFBO0lBQUtLLEtBQUssRUFBRTtNQUFFQyxPQUFPLEVBQUUsTUFBTTtNQUFFQyxVQUFVLEVBQUUsUUFBUTtNQUFFQyxjQUFjLEVBQUUsUUFBUTtNQUFFQyxRQUFRLEVBQUUsUUFBUTtNQUFFQyxHQUFHLEVBQUU7SUFBRSxDQUFFO0lBQUFDLFFBQUEsZUFDMUdYLElBQUEsQ0FBQ0YsT0FBTyxJQUFFO0VBQUMsQ0FDUjtBQUVULENBQUM7QUFFRCxJQUFNYywyQkFBMkIsR0FBRyxTQUE5QkEsMkJBQTJCQSxDQUMvQkMsV0FBbUQsRUFDbkRDLElBQTBCLEVBQ3ZCO0VBQ0gsSUFBSSxDQUFDQyxLQUFLLENBQUNDLE9BQU8sQ0FBQ0gsV0FBVyxDQUFDLEVBQUUsT0FBTyxFQUFFO0VBRTFDLE9BQU9BLFdBQVcsQ0FBQ0ksTUFBTSxDQUFDLFVBQUFDLFVBQVUsRUFBSTtJQUN0QyxJQUFNQyxjQUFjLEdBQUcsQ0FBQUQsVUFBVSxhQUFWQSxVQUFVLHVCQUFWQSxVQUFVLENBQUVKLElBQUksS0FBSSxNQUFNO0lBQ2pELE9BQU9BLElBQUksS0FBSyxXQUFXLEdBQUdLLGNBQWMsS0FBSyxXQUFXLEdBQUdB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
|
|
286
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDb3JMb2dvIiwibWFwUmVhc29uaW5nVHJhY2UiLCJqc3giLCJfanN4IiwiQVNTSVNUQU5UX1VTRVIiLCJpZCIsIm5hbWUiLCJhdmF0YXJJY29uIiwic3R5bGUiLCJkaXNwbGF5IiwiYWxpZ25JdGVtcyIsImp1c3RpZnlDb250ZW50IiwicG9zaXRpb24iLCJ0b3AiLCJjaGlsZHJlbiIsImdldE1lc3NhZ2VBdHRhY2htZW50c0J5Um9sZSIsImF0dGFjaG1lbnRzIiwicm9sZSIsIkFycmF5IiwiaXNBcnJheSIsImZpbHRlciIsImF0dGFjaG1lbnQiLCJhdHRhY2htZW50Um9sZSIsInJlc29sdmVBcHByb3ZhbFN0YXR1cyIsInN0YXR1cyIsIm1hcENoYXRNZXNzYWdlcyIsIml0ZW1zIiwiY3VycmVudFVzZXIiLCJjYW5jZWxsZWRUZXh0IiwiaGl0bEdyb3VwcyIsIk1hcCIsImZvckVhY2giLCJpdGVtIiwiaW5kZXgiLCJwZW5kaW5nX2FwcHJvdmFsIiwib3RpZCIsIm9yaWdpbmFsX3RocmVhZF9pZCIsInRocmVhZF9pZCIsIm1lc3NhZ2VfaWQiLCJleGlzdGluZyIsImdldCIsInB1c2giLCJzZXQiLCJmaXJzdEluZGV4IiwiZW1pdHRlZEdyb3VwcyIsIlNldCIsIm1hcHBlZEl0ZW1zIiwiX2l0ZW0kcGVuZGluZ19hcHByb3ZhIiwiX2l0ZW0kcHJvamVjdF9tZXRhZGF0IiwiX2l0ZW0kcHJvamVjdF9tZXRhZGF0MiIsIl9pdGVtJGNsaWVudF9tZXRhZGF0YSIsIl9pdGVtJGNsaWVudF9tZXRhZGF0YTIiLCJfaXRlbSRwcm9qZWN0X21ldGFkYXQzIiwiX2l0ZW0kcHJvamVjdF9tZXRhZGF0NCIsIl9pdGVtJGNsaWVudF9tZXRhZGF0YTMiLCJfaXRlbSRjbGllbnRfbWV0YWRhdGE0IiwiaXNIaXRsSXRlbSIsIl9maXJzdEl0ZW0kcHJvamVjdF9tZTMiLCJfZmlyc3RJdGVtJHByb2plY3RfbWU0IiwiX2ZpcnN0SXRlbSRjbGllbnRfbWV0MyIsIl9maXJzdEl0ZW0kY2xpZW50X21ldDQiLCJfZ3JvdXAkaXRlbXMkZmluZCIsIl9ncm91cCRpdGVtcyRmaW5kMiIsImhhcyIsImFkZCIsImdyb3VwIiwiZmlyc3RJdGVtIiwiaXNQcmVBcHByb3ZlZCIsInNvbWUiLCJnaSIsIl9naSRwZW5kaW5nX2FwcHJvdmFsIiwiX2dpJHBlbmRpbmdfYXBwcm92YWwyIiwibWFudWFsX2FwcHJvdmFsX2RldGVjdGVkIiwiYXV0b19hcHByb3ZlZCIsInF1ZXN0aW9uIiwiX2ZpcnN0SXRlbSRwcm9qZWN0X21lIiwiX2ZpcnN0SXRlbSRwcm9qZWN0X21lMiIsIl9maXJzdEl0ZW0kY2xpZW50X21ldCIsIl9maXJzdEl0ZW0kY2xpZW50X21ldDIiLCJfb2JqZWN0U3ByZWFkIiwiY29uY2F0IiwibWVtb3J5X3Nlc3Npb25faWQiLCJhZ2VudElkIiwiYWdlbnRfaWQiLCJtZXNzYWdlIiwiZGF0ZSIsIkRhdGUiLCJ0aW1lc3RhbXAiLCJ1c2VyIiwicHJvamVjdElkIiwicHJvamVjdF9tZXRhZGF0YSIsInByb2plY3ROYW1lIiwiY2xpZW50SWQiLCJjbGllbnRfbWV0YWRhdGEiLCJjbGllbnROYW1lIiwic291cmNlcyIsInByb2plY3RNZXRhZGF0YSIsImlzX2RlbGV0ZWQiLCJjb250ZXh0X21lc3NhZ2UiLCJjb250ZXh0TWVzc2FnZSIsInBlbmRpbmdBY3Rpb25zIiwibWFwIiwidG9vbF9jYWxsX2lkIiwidG9vbF9uYW1lIiwidG9vbF9hcmdzIiwic3RhdHVzZXMiLCJncm91cFN0YXR1cyIsInMiLCJhcHByb3ZhbE1lc3NhZ2UiLCJhbnN3ZXIiLCJzdGFydHNXaXRoIiwiYW5zd2VyTWVzc2FnZSIsIndhc0hlbHBmdWwiLCJ3YXNfaGVscGZ1bCIsInJlYXNvbmluZyIsImZpbmQiLCJhcHByb3ZhbCIsInR5cGUiLCJwZW5kaW5nX2FjdGlvbnMiLCJ0b3RhbF9hY3Rpb25zIiwibGVuZ3RoIiwic2Vzc2lvbl9pZCIsIm1ldGFkYXRhIiwiX2dpJHBlbmRpbmdfYXBwcm92YWwzIiwid2FybmluZ19tZXNzYWdlIiwiX2dpJHBlbmRpbmdfYXBwcm92YWw0IiwidW5kZWZpbmVkIiwiYXBwcm92YWxTdGF0dXMiLCJyZWplY3RlZEl0ZW0iLCJfcmVqZWN0ZWRJdGVtJHByb2plY3QiLCJfcmVqZWN0ZWRJdGVtJHByb2plY3QyIiwiX3JlamVjdGVkSXRlbSRjbGllbnRfIiwiX3JlamVjdGVkSXRlbSRjbGllbnRfMiIsInN1Z2dlc3Rpb25zIiwic3VnZ2VzdF9yZXBseSIsImlzX2NhbmNlbGxlZCIsIm1lbW9yeVNlc3Npb25JZCIsIl9pdGVtJHByb2plY3RfbWV0YWRhdDUiLCJfaXRlbSRwcm9qZWN0X21ldGFkYXQ2IiwiX2l0ZW0kY2xpZW50X21ldGFkYXRhNSIsIl9pdGVtJGNsaWVudF9tZXRhZGF0YTYiLCJfaXRlbSRwcm9qZWN0X21ldGFkYXQ3IiwiX2l0ZW0kcHJvamVjdF9tZXRhZGF0OCIsIl9pdGVtJGNsaWVudF9tZXRhZGF0YTciLCJfaXRlbSRjbGllbnRfbWV0YWRhdGE4IiwiaXNGcm9udGVuZENhbmNlbGxlZCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy91dGlscy9tYXBDaGF0TWVzc2FnZXMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGltcG9ydC9uby1jeWNsZSAqL1xuaW1wb3J0IHsgQ29yTG9nbyB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvYXRvbXMvaWNvbnMnXG5pbXBvcnQgeyBDaGF0TWVzc2FnZSwgQ2hhdE1lc3NhZ2VJdGVtUmVzcG9uc2UsIENoYXRNZXNzYWdlVXNlciB9IGZyb20gJy4uLy4uL3R5cGVzL0NoYXQnXG5pbXBvcnQgeyBtYXBSZWFzb25pbmdUcmFjZSB9IGZyb20gJy4uLy4uL3V0aWxzL3JlYXNvbmluZ01hcHBlcnMnXG4vKiBlc2xpbnQtZW5hYmxlIGltcG9ydC9uby1jeWNsZSAqL1xuXG5leHBvcnQgY29uc3QgQVNTSVNUQU5UX1VTRVI6IENoYXRNZXNzYWdlVXNlciA9IHtcbiAgaWQ6ICdhc3Npc3RhbnQnLFxuICBuYW1lOiAnTWFpYScsXG4gIGF2YXRhckljb246IChcbiAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywgYWxpZ25JdGVtczogJ2NlbnRlcicsIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJywgcG9zaXRpb246ICdzdGlja3knLCB0b3A6IDAgfX0+XG4gICAgICA8Q29yTG9nbyAvPlxuICAgIDwvZGl2PlxuICApLFxufVxuXG5jb25zdCBnZXRNZXNzYWdlQXR0YWNobWVudHNCeVJvbGUgPSAoXG4gIGF0dGFjaG1lbnRzOiBDaGF0TWVzc2FnZUl0ZW1SZXNwb25zZVsnYXR0YWNobWVudHMnXSxcbiAgcm9sZTogJ3VzZXInIHwgJ2Fzc2lzdGFudCdcbikgPT4ge1xuICBpZiAoIUFycmF5LmlzQXJyYXkoYXR0YWNobWVudHMpKSByZXR1cm4gW11cblxuICByZXR1cm4gYXR0YWNobWVudHMuZmlsdGVyKGF0dGFjaG1lbnQgPT4ge1xuICAgIGNvbnN0IGF0dGFjaG1lbnRSb2xlID0gYXR0YWNobWVudD8ucm9sZSB8fCAndXNlcidcbiAgICByZXR1cm4gcm9sZSA9PT0gJ2Fzc2lzdGFudCcgPyBhdHRhY2htZW50Um9sZSA9PT0gJ2Fzc2lzdGFudCcgOiBhdHRhY2htZW50Um9sZSAhPT0gJ2Fzc2lzdGFudCdcbiAgfSlcbn1cblxuLyoqXG4gKiBSZXNvbHZlIHRoZSBmcm9udGVuZCBhcHByb3ZhbFN0YXR1cyBmcm9tIHRoZSBiYWNrZW5kIE1lbW9yeVNlc3Npb24gc3RhdHVzLlxuICovXG5mdW5jdGlvbiByZXNvbHZlQXBwcm92YWxTdGF0dXMoc3RhdHVzPzogc3RyaW5nKTogJ3BlbmRpbmcnIHwgJ2FwcHJvdmVkJyB8ICdyZWplY3RlZCcge1xuICBpZiAoc3RhdHVzID09PSAnY29tcGxldGVkJyB8fCBzdGF0dXMgPT09ICdhcHByb3ZlZCcpIHJldHVybiAnYXBwcm92ZWQnXG4gIGlmIChzdGF0dXMgPT09ICdyZWplY3RlZCcpIHJldHVybiAncmVqZWN0ZWQnXG4gIHJldHVybiAncGVuZGluZydcbn1cblxuZXhwb3J0IGNvbnN0IG1hcENoYXRNZXNzYWdlcyA9IChcbiAgaXRlbXM6IENoYXRNZXNzYWdlSXRlbVJlc3BvbnNlW10sXG4gIGN1cnJlbnRVc2VyOiBDaGF0TWVzc2FnZVVzZXIsXG4gIGNhbmNlbGxlZFRleHQ/OiBzdHJpbmdcbik6IENoYXRNZXNzYWdlW10gPT4ge1xuICAvLyDilIDilIAgMS4gR3JvdXAgSElUTCBpdGVtcyB0aGF0IHNoYXJlIHRoZSBzYW1lIG9yaWdpbmFsX3RocmVhZF9pZCDilIDilIBcbiAgLy8gU28gbXVsdGlwbGUgTWVtb3J5U2Vzc2lvbnMgZnJvbSBhIHNpbmdsZSBISVRMIGJhdGNoIHJlbmRlciBpbiBvbmUgQXBwcm92YWxCb3guXG4gIGNvbnN0IGhpdGxHcm91cHMgPSBuZXcgTWFwPHN0cmluZywgeyBpdGVtczogQ2hhdE1lc3NhZ2VJdGVtUmVzcG9uc2VbXTsgZmlyc3RJbmRleDogbnVtYmVyIH0+KClcbiAgaXRlbXMuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICBpZiAoIWl0ZW0ucGVuZGluZ19hcHByb3ZhbCkgcmV0dXJuXG4gICAgY29uc3Qgb3RpZCA9IGl0ZW0ucGVuZGluZ19hcHByb3ZhbC5vcmlnaW5hbF90aHJlYWRfaWQgfHwgaXRlbS50aHJlYWRfaWQgfHwgaXRlbS5tZXNzYWdlX2lkXG4gICAgaWYgKCFvdGlkKSByZXR1cm5cblxuICAgIGNvbnN0IGV4aXN0aW5nID0gaGl0bEdyb3Vwcy5nZXQob3RpZClcbiAgICBpZiAoZXhpc3RpbmcpIHtcbiAgICAgIGV4aXN0aW5nLml0ZW1zLnB1c2goaXRlbSlcbiAgICB9IGVsc2Uge1xuICAgICAgaGl0bEdyb3Vwcy5zZXQob3RpZCwgeyBpdGVtczogW2l0ZW1dLCBmaXJzdEluZGV4OiBpbmRleCB9KVxuICAgIH1cbiAgfSlcblxuICAvLyBUcmFjayB3aGljaCBvcmlnaW5hbF90aHJlYWRfaWRzIGhhdmUgYWxyZWFkeSBiZWVuIGVtaXR0ZWRcbiAgY29uc3QgZW1pdHRlZEdyb3VwcyA9IG5ldyBTZXQ8c3RyaW5nPigpXG5cbiAgY29uc3QgbWFwcGVkSXRlbXM6IENoYXRNZXNzYWdlW10gPSBbXVxuXG4gIGl0ZW1zLmZvckVhY2goaXRlbSA9PiB7XG4gICAgY29uc3QgaXNIaXRsSXRlbSA9ICEhaXRlbS5wZW5kaW5nX2FwcHJvdmFsXG4gICAgY29uc3Qgb3RpZCA9IGl0ZW0ucGVuZGluZ19hcHByb3ZhbD8ub3JpZ2luYWxfdGhyZWFkX2lkIHx8IGl0ZW0udGhyZWFkX2lkIHx8IGl0ZW0ubWVzc2FnZV9pZCB8fCAnJ1xuXG4gICAgLy8g4pSA4pSAIEhJVEwgaXRlbXM6IGVtaXQgb25jZSBwZXIgZ3JvdXAgKG9uIHRoZSBmaXJzdCBpdGVtIG9mIHRoZSBncm91cCkg4pSA4pSAXG4gICAgaWYgKGlzSGl0bEl0ZW0gJiYgb3RpZCkge1xuICAgICAgaWYgKGVtaXR0ZWRHcm91cHMuaGFzKG90aWQpKSByZXR1cm4gLy8gQWxyZWFkeSBlbWl0dGVkIHRoaXMgZ3JvdXBcbiAgICAgIGVtaXR0ZWRHcm91cHMuYWRkKG90aWQpXG5cbiAgICAgIGNvbnN0IGdyb3VwID0gaGl0bEdyb3Vwcy5nZXQob3RpZCkhXG4gICAgICBjb25zdCBmaXJzdEl0ZW0gPSBncm91cC5pdGVtc1swXVxuICAgICAgY29uc3QgaXNQcmVBcHByb3ZlZCA9IGdyb3VwLml0ZW1zLnNvbWUoXG4gICAgICAgIGdpID0+IGdpLnBlbmRpbmdfYXBwcm92YWw/Lm1hbnVhbF9hcHByb3ZhbF9kZXRlY3RlZCB8fCBnaS5wZW5kaW5nX2FwcHJvdmFsPy5hdXRvX2FwcHJvdmVkXG4gICAgICApXG5cbiAgICAgIC8vIE9ubHkgZW1pdCBxdWVzdGlvbiBpZiBpdCBoYXMgY29udGVudCAoYXZvaWQgZHVwbGljYXRlIGVtcHR5IHF1ZXN0aW9ucylcbiAgICAgIGlmIChmaXJzdEl0ZW0ucXVlc3Rpb24pIHtcbiAgICAgICAgbWFwcGVkSXRlbXMucHVzaCh7XG4gICAgICAgICAgaWQ6IGAke2ZpcnN0SXRlbS5tZXNzYWdlX2lkIHx8IGZpcnN0SXRlbS5tZW1vcnlfc2Vzc2lvbl9pZH0tcXVlc3Rpb25gLFxuICAgICAgICAgIGFnZW50SWQ6IGZpcnN0SXRlbS5hZ2VudF9pZCxcbiAgICAgICAgICBtZXNzYWdlOiBmaXJzdEl0ZW0ucXVlc3Rpb24sXG4gICAgICAgICAgZGF0ZTogbmV3IERhdGUoZmlyc3RJdGVtLnRpbWVzdGFtcCksXG4gICAgICAgICAgdXNlcjogY3VycmVudFVzZXIsXG4gICAgICAgICAgcHJvamVjdElkOiBmaXJzdEl0ZW0ucHJvamVjdF9tZXRhZGF0YT8uaWQsXG4gICAgICAgICAgcHJvamVjdE5hbWU6IGZpcnN0SXRlbS5wcm9qZWN0X21ldGFkYXRhPy5uYW1lLFxuICAgICAgICAgIGNsaWVudElkOiBmaXJzdEl0ZW0uY2xpZW50X21ldGFkYXRhPy5pZCxcbiAgICAgICAgICBjbGllbnROYW1lOiBmaXJzdEl0ZW0uY2xpZW50X21ldGFkYXRhPy5uYW1lLFxuICAgICAgICAgIGF0dGFjaG1lbnRzOiBnZXRNZXNzYWdlQXR0YWNobWVudHNCeVJvbGUoZmlyc3RJdGVtLmF0dGFjaG1lbnRzLCAndXNlcicpLFxuICAgICAgICAgIHNvdXJjZXM6IG51bGwsXG4gICAgICAgICAgLi4uKGZpcnN0SXRlbS5wcm9qZWN0X21ldGFkYXRhICYmIHsgcHJvamVjdE1ldGFkYXRhOiB7IGlzX2RlbGV0ZWQ6IGZpcnN0SXRlbS5wcm9qZWN0X21ldGFkYXRhLmlzX2RlbGV0ZWQgfSB9KSxcbiAgICAgICAgICAuLi4oZmlyc3RJdGVtLmNvbnRleHRfbWVzc2FnZSA/IHsgY29udGV4dE1lc3NhZ2U6IGZpcnN0SXRlbS5jb250ZXh0X21lc3NhZ2UgfSA6IHt9KSxcbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgICAgaWYgKGlzUHJlQXBwcm92ZWQpIHJldHVyblxuXG4gICAgICAvLyBCdWlsZCBtZXJnZWQgcGVuZGluZ19hY3Rpb25zIGZyb20gYWxsIGl0ZW1zIGluIHRoZSBncm91cFxuICAgICAgY29uc3QgcGVuZGluZ0FjdGlvbnMgPSBncm91cC5pdGVtcy5tYXAoZ2kgPT4gKHtcbiAgICAgICAgdGhyZWFkX2lkOiBnaS50aHJlYWRfaWQgfHwgJycsXG4gICAgICAgIHRvb2xfY2FsbF9pZDogZ2kucGVuZGluZ19hcHByb3ZhbCEudG9vbF9jYWxsX2lkIHx8ICcnLFxuICAgICAgICB0b29sX25hbWU6IGdpLnBlbmRpbmdfYXBwcm92YWwhLnRvb2xfbmFtZSB8fCAndW5rbm93bicsXG4gICAgICAgIHRvb2xfYXJnczogZ2kucGVuZGluZ19hcHByb3ZhbCEudG9vbF9hcmdzIHx8IHt9LFxuICAgICAgfSkpXG5cbiAgICAgIC8vIFJlc29sdmUgc3RhdHVzOiBpZiBBTlkgaXMgcGVuZGluZyDihpIgcGVuZGluZzsgaWYgQUxMIGFwcHJvdmVkIOKGkiBhcHByb3ZlZDsgZWxzZSByZWplY3RlZFxuICAgICAgY29uc3Qgc3RhdHVzZXMgPSBncm91cC5pdGVtcy5tYXAoZ2kgPT4gcmVzb2x2ZUFwcHJvdmFsU3RhdHVzKGdpLnN0YXR1cykpXG4gICAgICBsZXQgZ3JvdXBTdGF0dXM6ICdwZW5kaW5nJyB8ICdhcHByb3ZlZCcgfCAncmVqZWN0ZWQnID0gJ2FwcHJvdmVkJ1xuICAgICAgaWYgKHN0YXR1c2VzLnNvbWUocyA9PiBzID09PSAncGVuZGluZycpKSB7XG4gICAgICAgIGdyb3VwU3RhdHVzID0gJ3BlbmRpbmcnXG4gICAgICB9IGVsc2UgaWYgKHN0YXR1c2VzLnNvbWUocyA9PiBzID09PSAncmVqZWN0ZWQnKSkge1xuICAgICAgICBncm91cFN0YXR1cyA9ICdyZWplY3RlZCdcbiAgICAgIH1cblxuICAgICAgLy8gVGV4dG8gcXVlIGVsIGFnZW50ZSBlbnZpw7MganVudG8gYWwgcGVkaWRvIGRlIGFwcm9iYWNpw7NuLiBDdWFuZG8gZXN0w6FcbiAgICAgIC8vIHBlbmRpZW50ZSBlbCBiYWNrZW5kIG1hbmRhIHVuIHBsYWNlaG9sZGVyIGBbUGVuZGllbnRlLi4uXWAgcXVlIG5vIGRlYmUgbW9zdHJhcnNlLlxuICAgICAgY29uc3QgYXBwcm92YWxNZXNzYWdlID0gZmlyc3RJdGVtLmFuc3dlciAmJiAhZmlyc3RJdGVtLmFuc3dlci5zdGFydHNXaXRoKCdbUGVuZGllbnRlJykgPyBmaXJzdEl0ZW0uYW5zd2VyIDogJydcblxuICAgICAgY29uc3QgYW5zd2VyTWVzc2FnZTogQ2hhdE1lc3NhZ2UgPSB7XG4gICAgICAgIGlkOiBgYXBwcm92YWwtJHtvdGlkfWAsXG4gICAgICAgIGFnZW50SWQ6IGZpcnN0SXRlbS5hZ2VudF9pZCxcbiAgICAgICAgbWVzc2FnZTogYXBwcm92YWxNZXNzYWdlLFxuICAgICAgICBkYXRlOiBuZXcgRGF0ZShmaXJzdEl0ZW0udGltZXN0YW1wKSxcbiAgICAgICAgdXNlcjogQVNTSVNUQU5UX1VTRVIsXG4gICAgICAgIHByb2plY3RJZDogZmlyc3RJdGVtLnByb2plY3RfbWV0YWRhdGE/LmlkLFxuICAgICAgICBwcm9qZWN0TmFtZTogZmlyc3RJdGVtLnByb2plY3RfbWV0YWRhdGE/Lm5hbWUsXG4gICAgICAgIGNsaWVudElkOiBmaXJzdEl0ZW0uY2xpZW50X21ldGFkYXRhPy5pZCxcbiAgICAgICAgY2xpZW50TmFtZTogZmlyc3RJdGVtLmNsaWVudF9tZXRhZGF0YT8ubmFtZSxcbiAgICAgICAgd2FzSGVscGZ1bDogZmlyc3RJdGVtLndhc19oZWxwZnVsLFxuICAgICAgICBhdHRhY2htZW50czogZ2V0TWVzc2FnZUF0dGFjaG1lbnRzQnlSb2xlKGZpcnN0SXRlbS5hdHRhY2htZW50cywgJ2Fzc2lzdGFudCcpLFxuICAgICAgICBzb3VyY2VzOiBbXSxcbiAgICAgICAgcmVhc29uaW5nOiBtYXBSZWFzb25pbmdUcmFjZShncm91cC5pdGVtcy5maW5kKGdpID0+IGdpLnJlYXNvbmluZyk/LnJlYXNvbmluZyksXG4gICAgICAgIC4uLihmaXJzdEl0ZW0ucHJvamVjdF9tZXRhZGF0YSAmJiB7IHByb2plY3RNZXRhZGF0YTogeyBpc19kZWxldGVkOiBmaXJzdEl0ZW0ucHJvamVjdF9tZXRhZGF0YS5pc19kZWxldGVkIH0gfSksXG4gICAgICAgIGFwcHJvdmFsOiB7XG4gICAgICAgICAgdHlwZTogJ2FwcHJvdmFsX3JlcXVpcmVkJyxcbiAgICAgICAgICBwZW5kaW5nX2FjdGlvbnM6IHBlbmRpbmdBY3Rpb25zLFxuICAgICAgICAgIHRvdGFsX2FjdGlvbnM6IHBlbmRpbmdBY3Rpb25zLmxlbmd0aCxcbiAgICAgICAgICBvcmlnaW5hbF90aHJlYWRfaWQ6IG90aWQsXG4gICAgICAgICAgc2Vzc2lvbl9pZDogZmlyc3RJdGVtLnBlbmRpbmdfYXBwcm92YWwhLnNlc3Npb25faWQgfHwgJycsXG4gICAgICAgICAgbWV0YWRhdGE6IGZpcnN0SXRlbS5wZW5kaW5nX2FwcHJvdmFsIS5tZXRhZGF0YSB8fCB7fSxcbiAgICAgICAgICBtYW51YWxfYXBwcm92YWxfZGV0ZWN0ZWQ6IGdyb3VwLml0ZW1zLnNvbWUoZ2kgPT4gZ2kucGVuZGluZ19hcHByb3ZhbD8ubWFudWFsX2FwcHJvdmFsX2RldGVjdGVkKSxcbiAgICAgICAgICB3YXJuaW5nX21lc3NhZ2U6XG4gICAgICAgICAgICBncm91cC5pdGVtcy5maW5kKGdpID0+IGdpLnBlbmRpbmdfYXBwcm92YWw/Lndhcm5pbmdfbWVzc2FnZSk/LnBlbmRpbmdfYXBwcm92YWw/Lndhcm5pbmdfbWVzc2FnZSB8fFxuICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICB9LFxuICAgICAgICBhcHByb3ZhbFN0YXR1czogZ3JvdXBTdGF0dXMsXG4gICAgICB9XG5cbiAgICAgIG1hcHBlZEl0ZW1zLnB1c2goYW5zd2VyTWVzc2FnZSlcblxuICAgICAgLy8gSWYgcmVqZWN0ZWQsIGFkZCB0aGUgcmVqZWN0aW9uIG1lc3NhZ2VcbiAgICAgIGlmIChncm91cFN0YXR1cyA9PT0gJ3JlamVjdGVkJykge1xuICAgICAgICBjb25zdCByZWplY3RlZEl0ZW0gPSBncm91cC5pdGVtcy5maW5kKFxuICAgICAgICAgIGdpID0+IGdpLnN0YXR1cyA9PT0gJ3JlamVjdGVkJyAmJiBnaS5hbnN3ZXIgJiYgIWdpLmFuc3dlci5zdGFydHNXaXRoKCdbUGVuZGllbnRlJylcbiAgICAgICAgKVxuICAgICAgICBpZiAocmVqZWN0ZWRJdGVtKSB7XG4gICAgICAgICAgbWFwcGVkSXRlbXMucHVzaCh7XG4gICAgICAgICAgICBpZDogYCR7cmVqZWN0ZWRJdGVtLm1lc3NhZ2VfaWQgfHwgcmVqZWN0ZWRJdGVtLm1lbW9yeV9zZXNzaW9uX2lkfS1yZWplY3Rpb25gLFxuICAgICAgICAgICAgYWdlbnRJZDogcmVqZWN0ZWRJdGVtLmFnZW50X2lkLFxuICAgICAgICAgICAgbWVzc2FnZTogcmVqZWN0ZWRJdGVtLmFuc3dlcixcbiAgICAgICAgICAgIGRhdGU6IG5ldyBEYXRlKHJlamVjdGVkSXRlbS50aW1lc3RhbXApLFxuICAgICAgICAgICAgdXNlcjogQVNTSVNUQU5UX1VTRVIsXG4gICAgICAgICAgICBwcm9qZWN0SWQ6IHJlamVjdGVkSXRlbS5wcm9qZWN0X21ldGFkYXRhPy5pZCxcbiAgICAgICAgICAgIHByb2plY3ROYW1lOiByZWplY3RlZEl0ZW0ucHJvamVjdF9tZXRhZGF0YT8ubmFtZSxcbiAgICAgICAgICAgIGNsaWVudElkOiByZWplY3RlZEl0ZW0uY2xpZW50X21ldGFkYXRhPy5pZCxcbiAgICAgICAgICAgIGNsaWVudE5hbWU6IHJlamVjdGVkSXRlbS5jbGllbnRfbWV0YWRhdGE/Lm5hbWUsXG4gICAgICAgICAgICBhdHRhY2htZW50czogW10sXG4gICAgICAgICAgICBzb3VyY2VzOiBbXSxcbiAgICAgICAgICAgIC4uLihyZWplY3RlZEl0ZW0ucHJvamVjdF9tZXRhZGF0YSAmJiB7XG4gICAgICAgICAgICAgIHByb2plY3RNZXRhZGF0YTogeyBpc19kZWxldGVkOiByZWplY3RlZEl0ZW0ucHJvamVjdF9tZXRhZGF0YS5pc19kZWxldGVkIH0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIC8vIOKUgOKUgCBOb3JtYWwgKG5vbi1ISVRMKSBpdGVtcyDilIDilIBcbiAgICBtYXBwZWRJdGVtcy5wdXNoKHtcbiAgICAgIGlkOiBgJHtpdGVtLm1lc3NhZ2VfaWQgfHwgaXRlbS5tZW1vcnlfc2Vzc2lvbl9pZH0tcXVlc3Rpb25gLFxuICAgICAgYWdlbnRJZDogaXRlbS5hZ2VudF9pZCxcbiAgICAgIG1lc3NhZ2U6IGl0ZW0ucXVlc3Rpb24sXG4gICAgICBkYXRlOiBuZXcgRGF0ZShpdGVtLnRpbWVzdGFtcCksXG4gICAgICB1c2VyOiBjdXJyZW50VXNlcixcbiAgICAgIHByb2plY3RJZDogaXRlbS5wcm9qZWN0X21ldGFkYXRhPy5pZCxcbiAgICAgIHByb2plY3ROYW1lOiBpdGVtLnByb2plY3RfbWV0YWRhdGE/Lm5hbWUsXG4gICAgICBjbGllbnRJZDogaXRlbS5jbGllbnRfbWV0YWRhdGE/LmlkLFxuICAgICAgY2xpZW50TmFtZTogaXRlbS5jbGllbnRfbWV0YWRhdGE/Lm5hbWUsXG4gICAgICBhdHRhY2htZW50czogZ2V0TWVzc2FnZUF0dGFjaG1lbnRzQnlSb2xlKGl0ZW0uYXR0YWNobWVudHMsICd1c2VyJyksXG4gICAgICBzb3VyY2VzOiBudWxsLFxuICAgICAgLi4uKGl0ZW0ucHJvamVjdF9tZXRhZGF0YSAmJiB7IHByb2plY3RNZXRhZGF0YTogeyBpc19kZWxldGVkOiBpdGVtLnByb2plY3RfbWV0YWRhdGEuaXNfZGVsZXRlZCB9IH0pLFxuICAgICAgLi4uKGl0ZW0uY29udGV4dF9tZXNzYWdlID8geyBjb250ZXh0TWVzc2FnZTogaXRlbS5jb250ZXh0X21lc3NhZ2UgfSA6IHt9KSxcbiAgICB9KVxuXG4gICAgY29uc3QgYW5zd2VyTWVzc2FnZTogQ2hhdE1lc3NhZ2UgPSB7XG4gICAgICBpZDogYCR7aXRlbS5tZXNzYWdlX2lkIHx8IGl0ZW0ubWVtb3J5X3Nlc3Npb25faWR9LWFuc3dlcmAsXG4gICAgICBhZ2VudElkOiBpdGVtLmFnZW50X2lkLFxuICAgICAgbWVzc2FnZTogaXRlbS5hbnN3ZXIsXG4gICAgICBkYXRlOiBuZXcgRGF0ZShpdGVtLnRpbWVzdGFtcCksXG4gICAgICB1c2VyOiBBU1NJU1RBTlRfVVNFUixcbiAgICAgIHByb2plY3RJZDogaXRlbS5wcm9qZWN0X21ldGFkYXRhPy5pZCxcbiAgICAgIHByb2plY3ROYW1lOiBpdGVtLnByb2plY3RfbWV0YWRhdGE/Lm5hbWUsXG4gICAgICBjbGllbnRJZDogaXRlbS5jbGllbnRfbWV0YWRhdGE/LmlkLFxuICAgICAgY2xpZW50TmFtZTogaXRlbS5jbGllbnRfbWV0YWRhdGE/Lm5hbWUsXG4gICAgICB3YXNIZWxwZnVsOiBpdGVtLndhc19oZWxwZnVsLFxuICAgICAgYXR0YWNobWVudHM6IGdldE1lc3NhZ2VBdHRhY2htZW50c0J5Um9sZShpdGVtLmF0dGFjaG1lbnRzLCAnYXNzaXN0YW50JyksXG4gICAgICBzb3VyY2VzOiBpdGVtLnNvdXJjZXMgfHwgW10sXG4gICAgICBzdWdnZXN0aW9uczogaXRlbS5zdWdnZXN0X3JlcGx5IHx8IGl0ZW0uc3VnZ2VzdGlvbnMgfHwgW10sXG4gICAgICBpc19jYW5jZWxsZWQ6IGl0ZW0uaXNfY2FuY2VsbGVkLFxuICAgICAgbWVtb3J5U2Vzc2lvbklkOiBpdGVtLm1lbW9yeV9zZXNzaW9uX2lkLFxuICAgICAgcmVhc29uaW5nOiBtYXBSZWFzb25pbmdUcmFjZShpdGVtLnJlYXNvbmluZyksXG4gICAgICAuLi4oaXRlbS5wcm9qZWN0X21ldGFkYXRhICYmIHsgcHJvamVjdE1ldGFkYXRhOiB7IGlzX2RlbGV0ZWQ6IGl0ZW0ucHJvamVjdF9tZXRhZGF0YS5pc19kZWxldGVkIH0gfSksXG4gICAgfVxuXG4gICAgbWFwcGVkSXRlbXMucHVzaChhbnN3ZXJNZXNzYWdlKVxuXG4gICAgaWYgKGl0ZW0uc3RhdHVzID09PSAncmVqZWN0ZWQnICYmIGl0ZW0uYW5zd2VyICYmICFpdGVtLmFuc3dlci5zdGFydHNXaXRoKCdbUGVuZGllbnRlJykpIHtcbiAgICAgIG1hcHBlZEl0ZW1zLnB1c2goe1xuICAgICAgICBpZDogYCR7aXRlbS5tZXNzYWdlX2lkIHx8IGl0ZW0ubWVtb3J5X3Nlc3Npb25faWR9LXJlamVjdGlvbmAsXG4gICAgICAgIGFnZW50SWQ6IGl0ZW0uYWdlbnRfaWQsXG4gICAgICAgIG1lc3NhZ2U6IGl0ZW0uYW5zd2VyLFxuICAgICAgICBkYXRlOiBuZXcgRGF0ZShpdGVtLnRpbWVzdGFtcCksXG4gICAgICAgIHVzZXI6IEFTU0lTVEFOVF9VU0VSLFxuICAgICAgICBwcm9qZWN0SWQ6IGl0ZW0ucHJvamVjdF9tZXRhZGF0YT8uaWQsXG4gICAgICAgIHByb2plY3ROYW1lOiBpdGVtLnByb2plY3RfbWV0YWRhdGE/Lm5hbWUsXG4gICAgICAgIGNsaWVudElkOiBpdGVtLmNsaWVudF9tZXRhZGF0YT8uaWQsXG4gICAgICAgIGNsaWVudE5hbWU6IGl0ZW0uY2xpZW50X21ldGFkYXRhPy5uYW1lLFxuICAgICAgICBhdHRhY2htZW50czogW10sXG4gICAgICAgIHNvdXJjZXM6IFtdLFxuICAgICAgICAuLi4oaXRlbS5wcm9qZWN0X21ldGFkYXRhICYmIHsgcHJvamVjdE1ldGFkYXRhOiB7IGlzX2RlbGV0ZWQ6IGl0ZW0ucHJvamVjdF9tZXRhZGF0YS5pc19kZWxldGVkIH0gfSksXG4gICAgICB9KVxuICAgIH1cblxuICAgIGlmIChpdGVtLmlzX2NhbmNlbGxlZCkge1xuICAgICAgbWFwcGVkSXRlbXMucHVzaCh7XG4gICAgICAgIGlkOiBgJHtpdGVtLm1lc3NhZ2VfaWQgfHwgaXRlbS5tZW1vcnlfc2Vzc2lvbl9pZH0tY2FuY2VsbGVkYCxcbiAgICAgICAgYWdlbnRJZDogaXRlbS5hZ2VudF9pZCxcbiAgICAgICAgbWVzc2FnZTogY2FuY2VsbGVkVGV4dCB8fCAnU2UgaGEgY2FuY2VsYWRvIGxhIGLDunNxdWVkYS4nLFxuICAgICAgICBkYXRlOiBuZXcgRGF0ZShpdGVtLnRpbWVzdGFtcCksXG4gICAgICAgIHVzZXI6IEFTU0lTVEFOVF9VU0VSLFxuICAgICAgICBwcm9qZWN0SWQ6IGl0ZW0ucHJvamVjdF9tZXRhZGF0YT8uaWQsXG4gICAgICAgIHByb2plY3ROYW1lOiBpdGVtLnByb2plY3RfbWV0YWRhdGE/Lm5hbWUsXG4gICAgICAgIGNsaWVudElkOiBpdGVtLmNsaWVudF9tZXRhZGF0YT8uaWQsXG4gICAgICAgIGNsaWVudE5hbWU6IGl0ZW0uY2xpZW50X21ldGFkYXRhPy5uYW1lLFxuICAgICAgICBpc0Zyb250ZW5kQ2FuY2VsbGVkOiB0cnVlLFxuICAgICAgICAuLi4oaXRlbS5wcm9qZWN0X21ldGFkYXRhICYmIHsgcHJvamVjdE1ldGFkYXRhOiB7IGlzX2RlbGV0ZWQ6IGl0ZW0ucHJvamVjdF9tZXRhZGF0YS5pc19kZWxldGVkIH0gfSksXG4gICAgICB9KVxuICAgIH1cbiAgfSlcblxuICByZXR1cm4gbWFwcGVkSXRlbXNcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7QUFDQSxTQUFTQSxPQUFPLFFBQVEsOEJBQThCO0FBRXRELFNBQVNDLGlCQUFpQixRQUFRLDhCQUE4QjtBQUNoRTtBQUFBLFNBQUFDLEdBQUEsSUFBQUMsSUFBQTtBQUVBLE9BQU8sSUFBTUMsY0FBK0IsR0FBRztFQUM3Q0MsRUFBRSxFQUFFLFdBQVc7RUFDZkMsSUFBSSxFQUFFLE1BQU07RUFDWkMsVUFBVSxlQUNSSixJQUFBO0lBQUtLLEtBQUssRUFBRTtNQUFFQyxPQUFPLEVBQUUsTUFBTTtNQUFFQyxVQUFVLEVBQUUsUUFBUTtNQUFFQyxjQUFjLEVBQUUsUUFBUTtNQUFFQyxRQUFRLEVBQUUsUUFBUTtNQUFFQyxHQUFHLEVBQUU7SUFBRSxDQUFFO0lBQUFDLFFBQUEsZUFDMUdYLElBQUEsQ0FBQ0gsT0FBTyxJQUFFO0VBQUMsQ0FDUjtBQUVULENBQUM7QUFFRCxJQUFNZSwyQkFBMkIsR0FBRyxTQUE5QkEsMkJBQTJCQSxDQUMvQkMsV0FBbUQsRUFDbkRDLElBQTBCLEVBQ3ZCO0VBQ0gsSUFBSSxDQUFDQyxLQUFLLENBQUNDLE9BQU8sQ0FBQ0gsV0FBVyxDQUFDLEVBQUUsT0FBTyxFQUFFO0VBRTFDLE9BQU9BLFdBQVcsQ0FBQ0ksTUFBTSxDQUFDLFVBQUFDLFVBQVUs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
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import _typeof from "@babel/runtime/helpers/typeof";
|
|
2
|
+
var STORAGE_PREFIX = 'maia:minimized';
|
|
3
|
+
var EMPTY = {
|
|
4
|
+
minimized: false,
|
|
5
|
+
chatId: null
|
|
6
|
+
};
|
|
7
|
+
var canUseStorage = function canUseStorage() {
|
|
8
|
+
return typeof window !== 'undefined' && typeof localStorage !== 'undefined';
|
|
9
|
+
};
|
|
10
|
+
var buildKey = function buildKey(userId) {
|
|
11
|
+
return "".concat(STORAGE_PREFIX, ":").concat(userId);
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Estado de minimizado de MAIA, persistido para que el flotante siga visible al
|
|
16
|
+
* navegar entre secciones o refrescar. Scopeado por usuario para no arrastrar el
|
|
17
|
+
* estado de una cuenta a otra en el mismo browser.
|
|
18
|
+
*/
|
|
19
|
+
export var readMinimizedState = function readMinimizedState(userId) {
|
|
20
|
+
if (!canUseStorage()) return EMPTY;
|
|
21
|
+
try {
|
|
22
|
+
var raw = localStorage.getItem(buildKey(userId));
|
|
23
|
+
if (!raw) return EMPTY;
|
|
24
|
+
var parsed = JSON.parse(raw);
|
|
25
|
+
if (!parsed || _typeof(parsed) !== 'object') return EMPTY;
|
|
26
|
+
var _ref = parsed,
|
|
27
|
+
minimized = _ref.minimized,
|
|
28
|
+
chatId = _ref.chatId;
|
|
29
|
+
return {
|
|
30
|
+
minimized: minimized === true,
|
|
31
|
+
chatId: typeof chatId === 'string' && chatId.length > 0 ? chatId : null
|
|
32
|
+
};
|
|
33
|
+
} catch (_unused) {
|
|
34
|
+
return EMPTY;
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
export var writeMinimizedState = function writeMinimizedState(userId, state) {
|
|
38
|
+
if (!canUseStorage()) return;
|
|
39
|
+
try {
|
|
40
|
+
if (!state.minimized) {
|
|
41
|
+
localStorage.removeItem(buildKey(userId));
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
localStorage.setItem(buildKey(userId), JSON.stringify(state));
|
|
45
|
+
} catch (_unused2) {
|
|
46
|
+
// storage lleno o bloqueado: el flotante simplemente no persiste
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTVE9SQUdFX1BSRUZJWCIsIkVNUFRZIiwibWluaW1pemVkIiwiY2hhdElkIiwiY2FuVXNlU3RvcmFnZSIsIndpbmRvdyIsImxvY2FsU3RvcmFnZSIsImJ1aWxkS2V5IiwidXNlcklkIiwiY29uY2F0IiwicmVhZE1pbmltaXplZFN0YXRlIiwicmF3IiwiZ2V0SXRlbSIsInBhcnNlZCIsIkpTT04iLCJwYXJzZSIsIl90eXBlb2YiLCJfcmVmIiwibGVuZ3RoIiwiX3VudXNlZCIsIndyaXRlTWluaW1pemVkU3RhdGUiLCJzdGF0ZSIsInJlbW92ZUl0ZW0iLCJzZXRJdGVtIiwic3RyaW5naWZ5IiwiX3VudXNlZDIiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc3RvcmUvbWFpYU1pbmltaXplZFBlcnNpc3RlbmNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IFNUT1JBR0VfUFJFRklYID0gJ21haWE6bWluaW1pemVkJ1xuXG5leHBvcnQgdHlwZSBNaW5pbWl6ZWRTdGF0ZSA9IHtcbiAgbWluaW1pemVkOiBib29sZWFuXG4gIC8qKiBDaGF0IGFjdGl2byBhbCBtaW5pbWl6YXI6IGRlc3Rpbm8gZGUgZmFsbGJhY2sgYWwgcmVhYnJpci4gKi9cbiAgY2hhdElkOiBzdHJpbmcgfCBudWxsXG59XG5cbmNvbnN0IEVNUFRZOiBNaW5pbWl6ZWRTdGF0ZSA9IHsgbWluaW1pemVkOiBmYWxzZSwgY2hhdElkOiBudWxsIH1cblxuY29uc3QgY2FuVXNlU3RvcmFnZSA9ICgpOiBib29sZWFuID0+IHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBsb2NhbFN0b3JhZ2UgIT09ICd1bmRlZmluZWQnXG5cbmNvbnN0IGJ1aWxkS2V5ID0gKHVzZXJJZDogbnVtYmVyIHwgc3RyaW5nKTogc3RyaW5nID0+IGAke1NUT1JBR0VfUFJFRklYfToke3VzZXJJZH1gXG5cbi8qKlxuICogRXN0YWRvIGRlIG1pbmltaXphZG8gZGUgTUFJQSwgcGVyc2lzdGlkbyBwYXJhIHF1ZSBlbCBmbG90YW50ZSBzaWdhIHZpc2libGUgYWxcbiAqIG5hdmVnYXIgZW50cmUgc2VjY2lvbmVzIG8gcmVmcmVzY2FyLiBTY29wZWFkbyBwb3IgdXN1YXJpbyBwYXJhIG5vIGFycmFzdHJhciBlbFxuICogZXN0YWRvIGRlIHVuYSBjdWVudGEgYSBvdHJhIGVuIGVsIG1pc21vIGJyb3dzZXIuXG4gKi9cbmV4cG9ydCBjb25zdCByZWFkTWluaW1pemVkU3RhdGUgPSAodXNlcklkOiBudW1iZXIgfCBzdHJpbmcpOiBNaW5pbWl6ZWRTdGF0ZSA9PiB7XG4gIGlmICghY2FuVXNlU3RvcmFnZSgpKSByZXR1cm4gRU1QVFlcblxuICB0cnkge1xuICAgIGNvbnN0IHJhdyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKGJ1aWxkS2V5KHVzZXJJZCkpXG4gICAgaWYgKCFyYXcpIHJldHVybiBFTVBUWVxuICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2UocmF3KSBhcyB1bmtub3duXG4gICAgaWYgKCFwYXJzZWQgfHwgdHlwZW9mIHBhcnNlZCAhPT0gJ29iamVjdCcpIHJldHVybiBFTVBUWVxuICAgIGNvbnN0IHsgbWluaW1pemVkLCBjaGF0SWQgfSA9IHBhcnNlZCBhcyBQYXJ0aWFsPE1pbmltaXplZFN0YXRlPlxuICAgIHJldHVybiB7XG4gICAgICBtaW5pbWl6ZWQ6IG1pbmltaXplZCA9PT0gdHJ1ZSxcbiAgICAgIGNoYXRJZDogdHlwZW9mIGNoYXRJZCA9PT0gJ3N0cmluZycgJiYgY2hhdElkLmxlbmd0aCA+IDAgPyBjaGF0SWQgOiBudWxsLFxuICAgIH1cbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIEVNUFRZXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IHdyaXRlTWluaW1pemVkU3RhdGUgPSAodXNlcklkOiBudW1iZXIgfCBzdHJpbmcsIHN0YXRlOiBNaW5pbWl6ZWRTdGF0ZSk6IHZvaWQgPT4ge1xuICBpZiAoIWNhblVzZVN0b3JhZ2UoKSkgcmV0dXJuXG5cbiAgdHJ5IHtcbiAgICBpZiAoIXN0YXRlLm1pbmltaXplZCkge1xuICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oYnVpbGRLZXkodXNlcklkKSlcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShidWlsZEtleSh1c2VySWQpLCBKU09OLnN0cmluZ2lmeShzdGF0ZSkpXG4gIH0gY2F0Y2gge1xuICAgIC8vIHN0b3JhZ2UgbGxlbm8gbyBibG9xdWVhZG86IGVsIGZsb3RhbnRlIHNpbXBsZW1lbnRlIG5vIHBlcnNpc3RlXG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBLElBQU1BLGNBQWMsR0FBRyxnQkFBZ0I7QUFRdkMsSUFBTUMsS0FBcUIsR0FBRztFQUFFQyxTQUFTLEVBQUUsS0FBSztFQUFFQyxNQUFNLEVBQUU7QUFBSyxDQUFDO0FBRWhFLElBQU1DLGFBQWEsR0FBRyxTQUFoQkEsYUFBYUEsQ0FBQTtFQUFBLE9BQWtCLE9BQU9DLE1BQU0sS0FBSyxXQUFXLElBQUksT0FBT0MsWUFBWSxLQUFLLFdBQVc7QUFBQTtBQUV6RyxJQUFNQyxRQUFRLEdBQUcsU0FBWEEsUUFBUUEsQ0FBSUMsTUFBdUI7RUFBQSxVQUFBQyxNQUFBLENBQWdCVCxjQUFjLE9BQUFTLE1BQUEsQ0FBSUQsTUFBTTtBQUFBLENBQUU7O0FBRW5GO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLElBQU1FLGtCQUFrQixHQUFHLFNBQXJCQSxrQkFBa0JBLENBQUlGLE1BQXVCLEVBQXFCO0VBQzdFLElBQUksQ0FBQ0osYUFBYSxDQUFDLENBQUMsRUFBRSxPQUFPSCxLQUFLO0VBRWxDLElBQUk7SUFDRixJQUFNVSxHQUFHLEdBQUdMLFlBQVksQ0FBQ00sT0FBTyxDQUFDTCxRQUFRLENBQUNDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xELElBQUksQ0FBQ0csR0FBRyxFQUFFLE9BQU9WLEtBQUs7SUFDdEIsSUFBTVksTUFBTSxHQUFHQyxJQUFJLENBQUNDLEtBQUssQ0FBQ0osR0FBRyxDQUFZO0lBQ3pDLElBQUksQ0FBQ0UsTUFBTSxJQUFJRyxPQUFBLENBQU9ILE1BQU0sTUFBSyxRQUFRLEVBQUUsT0FBT1osS0FBSztJQUN2RCxJQUFBZ0IsSUFBQSxHQUE4QkosTUFBTTtNQUE1QlgsU0FBUyxHQUFBZSxJQUFBLENBQVRmLFNBQVM7TUFBRUMsTUFBTSxHQUFBYyxJQUFBLENBQU5kLE1BQU07SUFDekIsT0FBTztNQUNMRCxTQUFTLEVBQUVBLFNBQVMsS0FBSyxJQUFJO01BQzdCQyxNQUFNLEVBQUUsT0FBT0EsTUFBTSxLQUFLLFFBQVEsSUFBSUEsTUFBTSxDQUFDZSxNQUFNLEdBQUcsQ0FBQyxHQUFHZixNQUFNLEdBQUc7SUFDckUsQ0FBQztFQUNILENBQUMsQ0FBQyxPQUFBZ0IsT0FBQSxFQUFNO0lBQ04sT0FBT2xCLEtBQUs7RUFDZDtBQUNGLENBQUM7QUFFRCxPQUFPLElBQU1tQixtQkFBbUIsR0FBRyxTQUF0QkEsbUJBQW1CQSxDQUFJWixNQUF1QixFQUFFYSxLQUFxQixFQUFXO0VBQzNGLElBQUksQ0FBQ2pCLGFBQWEsQ0FBQyxDQUFDLEVBQUU7RUFFdEIsSUFBSTtJQUNGLElBQUksQ0FBQ2lCLEtBQUssQ0FBQ25CLFNBQVMsRUFBRTtNQUNwQkksWUFBWSxDQUFDZ0IsVUFBVSxDQUFDZixRQUFRLENBQUNDLE1BQU0sQ0FBQyxDQUFDO01BQ3pDO0lBQ0Y7SUFDQUYsWUFBWSxDQUFDaUIsT0FBTyxDQUFDaEIsUUFBUSxDQUFDQyxNQUFNLENBQUMsRUFBRU0sSUFBSSxDQUFDVSxTQUFTLENBQUNILEtBQUssQ0FBQyxDQUFDO0VBQy9ELENBQUMsQ0FBQyxPQUFBSSxRQUFBLEVBQU07SUFDTjtFQUFBO0FBRUosQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
|