@projectcor/maia-components 2.11.100-8 → 2.11.100
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/Chip/Chip.js +22 -5
- package/lib/components/atoms/Chip/styles.js +6 -6
- package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +121 -28
- package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.styles.js +6 -2
- package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.js +12 -5
- package/lib/components/atoms/MAIAInput/MAIAInput.js +398 -270
- package/lib/components/atoms/MAIAInput/MAIAInputEditor.js +5 -8
- package/lib/components/atoms/MAIAInput/maiaInputLayout.js +25 -0
- package/lib/components/atoms/MAIAInput/styles.js +102 -86
- package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.js +56 -41
- package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.styles.js +28 -12
- package/lib/components/atoms/icons/MaiaInputAddIcon.js +42 -0
- package/lib/components/atoms/icons/MaiaInputAttachIcon.js +29 -0
- package/lib/components/atoms/icons/MaiaInputAttachmentImageIcon.js +33 -0
- package/lib/components/atoms/icons/MaiaInputDeepSearchIcon.js +35 -0
- package/lib/components/atoms/icons/MaiaInputMentionIcon.js +44 -0
- package/lib/components/atoms/icons/MaiaInputRobotIcon.js +29 -0
- package/lib/components/atoms/icons/MaiaInputSendIcon.js +29 -0
- package/lib/components/atoms/icons/MaiaInputSlashIcon.js +29 -0
- package/lib/components/atoms/icons/MaiaInputWebSearchIcon.js +35 -0
- package/lib/components/atoms/icons/index.js +10 -1
- package/lib/components/molecules/ChatAIHome/ChatAIHome.js +18 -7
- package/lib/components/molecules/ChatAIHome/styles.js +54 -38
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +11 -36
- package/lib/components/molecules/ChatAIMessages/newStyles.js +10 -26
- package/lib/components/molecules/ChatAIModal/ChatAIModal.js +1 -5
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +1 -4
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +1 -8
- package/lib/components/molecules/ChatFooter/ChatFooter.js +23 -62
- package/lib/components/molecules/Sidebar/Sidebar.js +14 -3
- package/lib/hooks/useMentionPopover.js +4 -2
- package/lib/lang/br/index.js +6 -3
- package/lib/lang/en/index.js +6 -3
- package/lib/lang/es/index.js +6 -3
- package/lib/lang/fr/index.js +8 -2
- package/lib/services/maia/Agents/getAgents.js +30 -54
- package/lib/services/maia/RecentContexts/getRecentContexts.js +3 -32
- package/lib/styles/config.js +2 -2
- package/package.json +1 -1
- package/lib/services/maia/bootstrap/agentsPrefetchSession.js +0 -97
- package/lib/services/maia/bootstrap/fetchAgentsList.js +0 -267
- package/lib/services/maia/bootstrap/prefetchMaiaAgents.js +0 -96
- package/lib/services/maia/bootstrap/prefetchMaiaRecentContexts.js +0 -56
- package/lib/services/maia/bootstrap/recentContextsPrefetchSession.js +0 -88
|
@@ -21,7 +21,6 @@ import { withNormalizedConnectors } from '../../../utils/normalizeAgentConnector
|
|
|
21
21
|
import { useUser } from '../../../context/cor-user';
|
|
22
22
|
import { isMaiaCloneAgentsRoleBlocked } from '../../../constants/maiaTaskPanelAccess';
|
|
23
23
|
import { mapCORLang } from '../../../lang/utils';
|
|
24
|
-
import { buildAgentsPrefetchKey, takeAgentsPrefetch } from '../bootstrap/agentsPrefetchSession';
|
|
25
24
|
var isMaiaAgent = function isMaiaAgent(agent) {
|
|
26
25
|
return (agent === null || agent === void 0 ? void 0 : agent.type) === 'orchestrator';
|
|
27
26
|
};
|
|
@@ -206,7 +205,7 @@ export var useGetAgents = function useGetAgents(_ref) {
|
|
|
206
205
|
var handleGetAgents = useCallback(/*#__PURE__*/function () {
|
|
207
206
|
var _ref5 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee4(agentToSelect) {
|
|
208
207
|
var _agentToSelect$id;
|
|
209
|
-
var requestKey, isMultiAgents, agentParsed, hasMore, nextOffset, cloneAgentsRoleBlocked, canFetchCloneAgents,
|
|
208
|
+
var requestKey, isMultiAgents, agentParsed, hasMore, nextOffset, cloneAgentsRoleBlocked, canFetchCloneAgents, fetchGlobalCloneAgents, customAgents, customHasMore, customNextOffset, is403, maiaAgents, loadCloneAgents, loadCustomAgents, queryParams, queryString, path, response, data, globalCloneAgents, _responseError$respon, _responseError$messag, _responseError$messag2, is403Error, _agentParsed, _agentParsed2, _lastSelectedAgentRef, _lastSelectedAgentRef2, availableAgents, _availableAgents, firstAgent, _lastSelectedAgentRef3, _availableAgents2, _availableAgents3, firstAvailableAgent, _t4, _t5;
|
|
210
209
|
return _regeneratorRuntime.wrap(function (_context4) {
|
|
211
210
|
while (1) switch (_context4.prev = _context4.next) {
|
|
212
211
|
case 0:
|
|
@@ -234,29 +233,6 @@ export var useGetAgents = function useGetAgents(_ref) {
|
|
|
234
233
|
nextOffset = null;
|
|
235
234
|
cloneAgentsRoleBlocked = isMaiaCloneAgentsRoleBlocked(user, section);
|
|
236
235
|
canFetchCloneAgents = !cloneAgentsRoleBlocked;
|
|
237
|
-
prefetchKey = buildAgentsPrefetchKey(section, mapCORLang(i18n.language), isMultiAgents);
|
|
238
|
-
_context4.next = 4;
|
|
239
|
-
return takeAgentsPrefetch(prefetchKey);
|
|
240
|
-
case 4:
|
|
241
|
-
prefetchedAgents = _context4.sent;
|
|
242
|
-
if (!prefetchedAgents) {
|
|
243
|
-
_context4.next = 5;
|
|
244
|
-
break;
|
|
245
|
-
}
|
|
246
|
-
agentParsed = prefetchedAgents.data;
|
|
247
|
-
hasMore = (_prefetchedAgents$has = prefetchedAgents.has_more) !== null && _prefetchedAgents$has !== void 0 ? _prefetchedAgents$has : false;
|
|
248
|
-
nextOffset = (_prefetchedAgents$nex = prefetchedAgents.next_offset) !== null && _prefetchedAgents$nex !== void 0 ? _prefetchedAgents$nex : null;
|
|
249
|
-
setAgents({
|
|
250
|
-
data: agentParsed,
|
|
251
|
-
has_more: hasMore,
|
|
252
|
-
next_offset: nextOffset
|
|
253
|
-
});
|
|
254
|
-
if (agentParsed.length === 0) {
|
|
255
|
-
setError(null);
|
|
256
|
-
}
|
|
257
|
-
_context4.next = 14;
|
|
258
|
-
break;
|
|
259
|
-
case 5:
|
|
260
236
|
fetchGlobalCloneAgents = /*#__PURE__*/function () {
|
|
261
237
|
var _ref6 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
262
238
|
var cloneResponse, cloneData, _t;
|
|
@@ -305,7 +281,7 @@ export var useGetAgents = function useGetAgents(_ref) {
|
|
|
305
281
|
};
|
|
306
282
|
}(); // Si tiene feature access multi agents, hacer dos queries (Maia + custom) en cualquier sección
|
|
307
283
|
if (!isMultiAgents) {
|
|
308
|
-
_context4.next =
|
|
284
|
+
_context4.next = 5;
|
|
309
285
|
break;
|
|
310
286
|
}
|
|
311
287
|
// Query clone (Maia) y custom son independientes → se disparan en paralelo.
|
|
@@ -405,9 +381,9 @@ export var useGetAgents = function useGetAgents(_ref) {
|
|
|
405
381
|
return _ref8.apply(this, arguments);
|
|
406
382
|
};
|
|
407
383
|
}();
|
|
408
|
-
_context4.next =
|
|
384
|
+
_context4.next = 4;
|
|
409
385
|
return Promise.all([loadCloneAgents(), loadCustomAgents()]);
|
|
410
|
-
case
|
|
386
|
+
case 4:
|
|
411
387
|
// Combinar: agentes clone primero, luego los custom (si existen)
|
|
412
388
|
// Si el usuario tiene un rol deshabilitado, no incluir cloneAgents
|
|
413
389
|
if (!canFetchCloneAgents) {
|
|
@@ -431,9 +407,9 @@ export var useGetAgents = function useGetAgents(_ref) {
|
|
|
431
407
|
if (agentParsed.length === 0) {
|
|
432
408
|
setError(null);
|
|
433
409
|
}
|
|
434
|
-
_context4.next =
|
|
410
|
+
_context4.next = 12;
|
|
435
411
|
break;
|
|
436
|
-
case
|
|
412
|
+
case 5:
|
|
437
413
|
// Lógica para project, client o header sin multiAgents (mismo criterio de orden project/client; header añade paginación)
|
|
438
414
|
queryParams = new URLSearchParams();
|
|
439
415
|
if (section === 'project' || section === 'client' || section === 'header' || section === 'task' || section === 'planner') {
|
|
@@ -446,23 +422,23 @@ export var useGetAgents = function useGetAgents(_ref) {
|
|
|
446
422
|
}
|
|
447
423
|
queryString = queryParams.toString();
|
|
448
424
|
path = "agents".concat(queryString ? "?".concat(queryString) : '');
|
|
449
|
-
_context4.prev =
|
|
450
|
-
_context4.next =
|
|
425
|
+
_context4.prev = 6;
|
|
426
|
+
_context4.next = 7;
|
|
451
427
|
return fetchMaia({
|
|
452
428
|
path: path,
|
|
453
429
|
method: 'GET'
|
|
454
430
|
});
|
|
455
|
-
case
|
|
431
|
+
case 7:
|
|
456
432
|
response = _context4.sent;
|
|
457
|
-
_context4.next =
|
|
433
|
+
_context4.next = 8;
|
|
458
434
|
return response.json();
|
|
459
|
-
case
|
|
435
|
+
case 8:
|
|
460
436
|
data = _context4.sent;
|
|
461
437
|
// data.data ya contiene el/los agentes orquestadores de la query agent_type=orchestrator
|
|
462
438
|
agentParsed = data.data || [];
|
|
463
|
-
_context4.next =
|
|
439
|
+
_context4.next = 9;
|
|
464
440
|
return fetchGlobalCloneAgents();
|
|
465
|
-
case
|
|
441
|
+
case 9:
|
|
466
442
|
globalCloneAgents = _context4.sent;
|
|
467
443
|
agentParsed = mergeAgentsWithoutDuplicates(agentParsed, globalCloneAgents);
|
|
468
444
|
// Ordenar: Maia primero, luego favoritos alfabéticamente, luego no favoritos alfabéticamente
|
|
@@ -472,11 +448,11 @@ export var useGetAgents = function useGetAgents(_ref) {
|
|
|
472
448
|
setAgents(_objectSpread(_objectSpread({}, data), {}, {
|
|
473
449
|
data: agentParsed
|
|
474
450
|
}));
|
|
475
|
-
_context4.next =
|
|
451
|
+
_context4.next = 12;
|
|
476
452
|
break;
|
|
477
|
-
case
|
|
478
|
-
_context4.prev =
|
|
479
|
-
_t4 = _context4["catch"](
|
|
453
|
+
case 10:
|
|
454
|
+
_context4.prev = 10;
|
|
455
|
+
_t4 = _context4["catch"](6);
|
|
480
456
|
// Verificar si el error es 403
|
|
481
457
|
// fetchCOR puede lanzar diferentes tipos de errores:
|
|
482
458
|
// 1. Error con errorData.detail si incluye 'Access denied'
|
|
@@ -484,7 +460,7 @@ export var useGetAgents = function useGetAgents(_ref) {
|
|
|
484
460
|
// 3. Necesitamos verificar el status code si está disponible
|
|
485
461
|
is403Error = (_t4 === null || _t4 === void 0 || (_responseError$respon = _t4.response) === null || _responseError$respon === void 0 ? void 0 : _responseError$respon.status) === 403 || (_t4 === null || _t4 === void 0 ? void 0 : _t4.status) === 403 || (_t4 === null || _t4 === void 0 || (_responseError$messag = _t4.message) === null || _responseError$messag === void 0 ? void 0 : _responseError$messag.includes("You don't have permission to view agents")) || (_t4 === null || _t4 === void 0 || (_responseError$messag2 = _t4.message) === null || _responseError$messag2 === void 0 ? void 0 : _responseError$messag2.includes('Failed fetching data')); // fetchCOR lanza esto para 403 sin 'Access denied'
|
|
486
462
|
if (!is403Error) {
|
|
487
|
-
_context4.next =
|
|
463
|
+
_context4.next = 11;
|
|
488
464
|
break;
|
|
489
465
|
}
|
|
490
466
|
// Si es 403, establecer agentes vacíos y continuar
|
|
@@ -494,11 +470,11 @@ export var useGetAgents = function useGetAgents(_ref) {
|
|
|
494
470
|
next_offset: null
|
|
495
471
|
});
|
|
496
472
|
setError(null);
|
|
497
|
-
_context4.next =
|
|
473
|
+
_context4.next = 12;
|
|
498
474
|
break;
|
|
499
|
-
case
|
|
475
|
+
case 11:
|
|
500
476
|
throw _t4;
|
|
501
|
-
case
|
|
477
|
+
case 12:
|
|
502
478
|
// Lógica de select agent - Solo seleccionar si hay agentes disponibles
|
|
503
479
|
if (agentParsed.length > 0) {
|
|
504
480
|
if (agentToSelect && agentParsed.find(function (agentToRequest) {
|
|
@@ -531,27 +507,27 @@ export var useGetAgents = function useGetAgents(_ref) {
|
|
|
531
507
|
}
|
|
532
508
|
}
|
|
533
509
|
setLoading(false);
|
|
534
|
-
_context4.next =
|
|
510
|
+
_context4.next = 14;
|
|
535
511
|
break;
|
|
536
|
-
case
|
|
537
|
-
_context4.prev =
|
|
512
|
+
case 13:
|
|
513
|
+
_context4.prev = 13;
|
|
538
514
|
_t5 = _context4["catch"](3);
|
|
539
515
|
setError(_t5 instanceof Error ? _t5.message : 'An unknown error occurred');
|
|
540
516
|
setLoading(false);
|
|
541
|
-
case
|
|
542
|
-
_context4.prev =
|
|
517
|
+
case 14:
|
|
518
|
+
_context4.prev = 14;
|
|
543
519
|
isRefreshingRef.current = false;
|
|
544
520
|
setTimeout(function () {
|
|
545
521
|
if (!isRefreshingRef.current) {
|
|
546
522
|
lastRequestRef.current = null;
|
|
547
523
|
}
|
|
548
524
|
}, 100);
|
|
549
|
-
return _context4.finish(
|
|
550
|
-
case
|
|
525
|
+
return _context4.finish(14);
|
|
526
|
+
case 15:
|
|
551
527
|
case "end":
|
|
552
528
|
return _context4.stop();
|
|
553
529
|
}
|
|
554
|
-
}, _callee4, null, [[3,
|
|
530
|
+
}, _callee4, null, [[3, 13, 14, 15], [6, 10]]);
|
|
555
531
|
}));
|
|
556
532
|
return function (_x) {
|
|
557
533
|
return _ref5.apply(this, arguments);
|
|
@@ -739,4 +715,4 @@ export var useGetAgents = function useGetAgents(_ref) {
|
|
|
739
715
|
sortAgentsList: sortAgentsList
|
|
740
716
|
};
|
|
741
717
|
};
|
|
742
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwidXNlUmVmIiwidXNlVHJhbnNsYXRpb24iLCJ1c2VTbmFja0Jhck1hbmFnZXIiLCJmZXRjaE1haWEiLCJ3aXRoTm9ybWFsaXplZENvbm5lY3RvcnMiLCJ1c2VVc2VyIiwiaXNNYWlhQ2xvbmVBZ2VudHNSb2xlQmxvY2tlZCIsIm1hcENPUkxhbmciLCJidWlsZEFnZW50c1ByZWZldGNoS2V5IiwidGFrZUFnZW50c1ByZWZldGNoIiwiaXNNYWlhQWdlbnQiLCJhZ2VudCIsInR5cGUiLCJpczQwM0FnZW50RmV0Y2hFcnJvciIsImVyciIsIl9lcnJvciRyZXNwb25zZSIsIl9lcnJvciRtZXNzYWdlIiwiX2Vycm9yJG1lc3NhZ2UyIiwiZXJyb3IiLCJyZXNwb25zZSIsInN0YXR1cyIsIkJvb2xlYW4iLCJtZXNzYWdlIiwiaW5jbHVkZXMiLCJtZXJnZUFnZW50c1dpdGhvdXREdXBsaWNhdGVzIiwiYmFzZSIsImV4dHJhIiwiaWRzIiwiU2V0IiwibWFwIiwiaWQiLCJtZXJnZWQiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJmb3JFYWNoIiwiaGFzIiwicHVzaCIsInNvcnRBZ2VudHMiLCJhZ2VudHMiLCJtYWlhQWdlbnRzIiwiZmlsdGVyIiwib3RoZXJBZ2VudHMiLCJhZyIsImZhdm9yaXRlcyIsImlzX2Zhdm9yaXRlIiwic29ydCIsImEiLCJiIiwibmFtZSIsImxvY2FsZUNvbXBhcmUiLCJub25GYXZvcml0ZXMiLCJsZW5ndGgiLCJjb25jYXQiLCJub3JtYWxpemVDdXN0b21BZ2VudHNGcm9tQXBpIiwidXNlR2V0QWdlbnRzIiwiX3JlZiIsInNlbGVjdEFnZW50Iiwic2VjdGlvbiIsImhhbmRsZUdvSG9tZSIsInVzZXIiLCJfdXNlU3RhdGUiLCJkYXRhIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5Iiwic2V0QWdlbnRzIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJsb2FkaW5nIiwic2V0TG9hZGluZyIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwibG9hZGluZ01vcmUiLCJzZXRMb2FkaW5nTW9yZSIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4Iiwic2VhcmNoTG9hZGluZyIsInNldFNlYXJjaExvYWRpbmciLCJfdXNlU3RhdGU5IiwiX3VzZVN0YXRlMCIsInNldEVycm9yIiwiX3VzZVNuYWNrQmFyTWFuYWdlciIsImhhbmRsZVNuYWNrYmFyRXJyb3IiLCJfdXNlVHJhbnNsYXRpb24iLCJ0IiwiaTE4biIsImxhc3RTZWxlY3RlZEFnZW50UmVmIiwiaXNSZWZyZXNoaW5nUmVmIiwibGFzdFJlcXVlc3RSZWYiLCJhZ2VudHNSZWYiLCJwcmVTZWFyY2hBZ2VudHNSZWYiLCJjdXJyZW50IiwiYWRkQWdlbnQiLCJuZXdBZ2VudCIsIm9wdGlvbnMiLCJwcmV2IiwiYWdlbnRFeGlzdHMiLCJzb21lIiwiZXhpc3RpbmdBZ2VudCIsIm5ld0RhdGEiLCJzb3J0ZWREYXRhIiwiX29iamVjdFNwcmVhZCIsIm5hdmlnYXRlSG9tZSIsInJlbW92ZUFnZW50IiwiYWdlbnRJZCIsInRvU3RyaW5nIiwidXBkYXRlQWdlbnQiLCJ1cGRhdGVkQWdlbnQiLCJ1cGRhdGVkRGF0YSIsInVwZGF0ZUFnZW50RmF2b3JpdGUiLCJzaG91bGRTb3J0IiwiYXJndW1lbnRzIiwidW5kZWZpbmVkIiwiX3JlZjIiLCJhZ2VudEZpZWxkcyIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllcyIsIl9leGNsdWRlZCIsIm1lcmdlZEFnZW50IiwiZmluYWxEYXRhIiwiZmluZCIsIl9yZWYzIiwiX2V4Y2x1ZGVkMiIsIl9yZWY0IiwiX2V4Y2x1ZGVkMyIsInNvcnRBZ2VudHNMaXN0Iiwic2VsZWN0Rmlyc3RBZ2VudCIsImZpcnN0QWdlbnQiLCJmaW5kSW5kZXgiLCJhZ2VudERhdGEiLCJoYW5kbGVHZXRBZ2VudHMiLCJfcmVmNSIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlNCIsImFnZW50VG9TZWxlY3QiLCJfYWdlbnRUb1NlbGVjdCRpZCIsInJlcXVlc3RLZXkiLCJpc011bHRpQWdlbnRzIiwiYWdlbnRQYXJzZWQiLCJoYXNNb3JlIiwibmV4dE9mZnNldCIsImNsb25lQWdlbnRzUm9sZUJsb2NrZWQiLCJjYW5GZXRjaENsb25lQWdlbnRzIiwicHJlZmV0Y2hLZXkiLCJwcmVmZXRjaGVkQWdlbnRzIiwiX3ByZWZldGNoZWRBZ2VudHMkaGFzIiwiX3ByZWZldGNoZWRBZ2VudHMkbmV4IiwiZmV0Y2hHbG9iYWxDbG9uZUFnZW50cyIsImN1c3RvbUFnZW50cyIsImN1c3RvbUhhc01vcmUiLCJjdXN0b21OZXh0T2Zmc2V0IiwiaXM0MDMiLCJsb2FkQ2xvbmVBZ2VudHMiLCJsb2FkQ3VzdG9tQWdlbnRzIiwicXVlcnlQYXJhbXMiLCJxdWVyeVN0cmluZyIsInBhdGgiLCJnbG9iYWxDbG9uZUFnZW50cyIsIl9yZXNwb25zZUVycm9yJHJlc3BvbiIsIl9yZXNwb25zZUVycm9yJG1lc3NhZyIsIl9yZXNwb25zZUVycm9yJG1lc3NhZzIiLCJpczQwM0Vycm9yIiwiX2FnZW50UGFyc2VkIiwiX2FnZW50UGFyc2VkMiIsIl9sYXN0U2VsZWN0ZWRBZ2VudFJlZiIsIl9sYXN0U2VsZWN0ZWRBZ2VudFJlZjIiLCJhdmFpbGFibGVBZ2VudHMiLCJfYXZhaWxhYmxlQWdlbnRzIiwiX2xhc3RTZWxlY3RlZEFnZW50UmVmMyIsIl9hdmFpbGFibGVBZ2VudHMyIiwiX2F2YWlsYWJsZUFnZW50czMiLCJmaXJzdEF2YWlsYWJsZUFnZW50IiwiX3Q0IiwiX3Q1Iiwid3JhcCIsIl9jb250ZXh0NCIsIm5leHQiLCJhYnJ1cHQiLCJ3aW5kb3ciLCJNQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1MiLCJNQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1NfTVVMVElfQUdFTlRTIiwibGFuZ3VhZ2UiLCJzZW50IiwiaGFzX21vcmUiLCJuZXh0X29mZnNldCIsIl9yZWY2IiwiX2NhbGxlZSIsImNsb25lUmVzcG9uc2UiLCJjbG9uZURhdGEiLCJfdCIsIl9jb250ZXh0IiwibWV0aG9kIiwianNvbiIsInN0b3AiLCJhcHBseSIsIl9yZWY3IiwiX2NhbGxlZTIiLCJfbWFpYURhdGEkZGF0YSIsIm1haWFSZXNwb25zZSIsIm1haWFEYXRhIiwiX3QyIiwiX2NvbnRleHQyIiwiX3JlZjgiLCJfY2FsbGVlMyIsImN1c3RvbVJlc3BvbnNlIiwiY3VzdG9tRGF0YSIsIl90MyIsIl9jb250ZXh0MyIsIlByb21pc2UiLCJhbGwiLCJVUkxTZWFyY2hQYXJhbXMiLCJhcHBlbmQiLCJhZ2VudFRvUmVxdWVzdCIsImFnZW50SXRlbSIsIkVycm9yIiwic2V0VGltZW91dCIsImZpbmlzaCIsIl94Iiwic2VhcmNoQ3VzdG9tQWdlbnRzIiwiX3JlZjkiLCJfY2FsbGVlNSIsInF1ZXJ5IiwiX3Q2IiwiX2NvbnRleHQ1IiwiZW5jb2RlVVJJQ29tcG9uZW50IiwiY2xvbmVBZ2VudHMiLCJjdXN0b21SZXN1bHRzIiwiX3gyIiwibG9hZE1vcmVBZ2VudHMiLCJfY2FsbGVlNiIsImNhbkxvYWRNb3JlIiwiX3Q3IiwiX2NvbnRleHQ2IiwiZXhpc3RpbmdNYWlhQWdlbnRzIiwiZXhpc3RpbmdJZHMiLCJuZXdBZ2VudHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VydmljZXMvbWFpYS9BZ2VudHMvZ2V0QWdlbnRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycyAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tbmVzdGVkLXRlcm5hcnkgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLWNvbnNvbGUgKi9cbmltcG9ydCB7IHVzZVN0YXRlLCB1c2VDYWxsYmFjaywgdXNlUmVmIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5pbXBvcnQgeyB1c2VTbmFja0Jhck1hbmFnZXIgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VTbmFja0Jhck1hbmFnZXIvdXNlU25hY2tCYXJNYW5hZ2VyJ1xuaW1wb3J0IHsgZmV0Y2hNYWlhIH0gZnJvbSAnLi4vY2xpZW50J1xuaW1wb3J0IHsgd2l0aE5vcm1hbGl6ZWRDb25uZWN0b3JzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvbm9ybWFsaXplQWdlbnRDb25uZWN0b3JzJ1xuaW1wb3J0IHsgQWdlbnQgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9hZ2VudCdcbmltcG9ydCB7IHVzZVVzZXIgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2Nvci11c2VyJ1xuaW1wb3J0IHsgaXNNYWlhQ2xvbmVBZ2VudHNSb2xlQmxvY2tlZCB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9tYWlhVGFza1BhbmVsQWNjZXNzJ1xuaW1wb3J0IHsgU2VjdGlvbiB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyBtYXBDT1JMYW5nIH0gZnJvbSAnLi4vLi4vLi4vbGFuZy91dGlscydcbmltcG9ydCB7IGJ1aWxkQWdlbnRzUHJlZmV0Y2hLZXksIHRha2VBZ2VudHNQcmVmZXRjaCB9IGZyb20gJy4uL2Jvb3RzdHJhcC9hZ2VudHNQcmVmZXRjaFNlc3Npb24nXG5cbmNvbnN0IGlzTWFpYUFnZW50ID0gKGFnZW50OiBBZ2VudCkgPT4gYWdlbnQ/LnR5cGUgPT09ICdvcmNoZXN0cmF0b3InXG5cbmNvbnN0IGlzNDAzQWdlbnRGZXRjaEVycm9yID0gKGVycjogdW5rbm93bik6IGJvb2xlYW4gPT4ge1xuICBjb25zdCBlcnJvciA9IGVyciBhcyB7IHJlc3BvbnNlPzogeyBzdGF0dXM/OiBudW1iZXIgfTsgc3RhdHVzPzogbnVtYmVyOyBtZXNzYWdlPzogc3RyaW5nIH1cbiAgcmV0dXJuIChcbiAgICBlcnJvcj8ucmVzcG9uc2U/LnN0YXR1cyA9PT0gNDAzIHx8XG4gICAgZXJyb3I/LnN0YXR1cyA9PT0gNDAzIHx8XG4gICAgQm9vbGVhbihlcnJvcj8ubWVzc2FnZT8uaW5jbHVkZXMoXCJZb3UgZG9uJ3QgaGF2ZSBwZXJtaXNzaW9uIHRvIHZpZXcgYWdlbnRzXCIpKSB8fFxuICAgIEJvb2xlYW4oZXJyb3I/Lm1lc3NhZ2U/LmluY2x1ZGVzKCdGYWlsZWQgZmV0Y2hpbmcgZGF0YScpKVxuICApXG59XG5cbmNvbnN0IG1lcmdlQWdlbnRzV2l0aG91dER1cGxpY2F0ZXMgPSAoYmFzZTogQWdlbnRbXSwgZXh0cmE6IEFnZW50W10pOiBBZ2VudFtdID0+IHtcbiAgY29uc3QgaWRzID0gbmV3IFNldChiYXNlLm1hcChhZ2VudCA9PiBhZ2VudC5pZCkpXG4gIGNvbnN0IG1lcmdlZCA9IFsuLi5iYXNlXVxuICBleHRyYS5mb3JFYWNoKGFnZW50ID0+IHtcbiAgICBpZiAoIWlkcy5oYXMoYWdlbnQuaWQpKSBtZXJnZWQucHVzaChhZ2VudClcbiAgfSlcbiAgcmV0dXJuIG1lcmdlZFxufVxuXG4vKipcbiAqIE9yZGVuYSBsb3MgYWdlbnRlczogTUFJQSBwcmltZXJvIChzaSBleGlzdGUpLCBsdWVnbyBmYXZvcml0b3MgYWxmYWLDqXRpY2FtZW50ZSwgbHVlZ28gbm8gZmF2b3JpdG9zIGFsZmFiw6l0aWNhbWVudGVcbiAqL1xuY29uc3Qgc29ydEFnZW50cyA9IChhZ2VudHM6IEFnZW50W10pOiBBZ2VudFtdID0+IHtcbiAgY29uc3QgbWFpYUFnZW50cyA9IGFnZW50cy5maWx0ZXIoaXNNYWlhQWdlbnQpXG4gIGNvbnN0IG90aGVyQWdlbnRzID0gYWdlbnRzLmZpbHRlcihhZyA9PiAhaXNNYWlhQWdlbnQoYWcpKVxuXG4gIC8vIFNlcGFyYXIgZmF2b3JpdG9zIHkgbm8gZmF2b3JpdG9zXG4gIGNvbnN0IGZhdm9yaXRlcyA9IG90aGVyQWdlbnRzLmZpbHRlcihhZyA9PiBhZy5pc19mYXZvcml0ZSkuc29ydCgoYSwgYikgPT4gYS5uYW1lLmxvY2FsZUNvbXBhcmUoYi5uYW1lKSlcbiAgY29uc3Qgbm9uRmF2b3JpdGVzID0gb3RoZXJBZ2VudHMuZmlsdGVyKGFnID0+ICFhZy5pc19mYXZvcml0ZSkuc29ydCgoYSwgYikgPT4gYS5uYW1lLmxvY2FsZUNvbXBhcmUoYi5uYW1lKSlcblxuICByZXR1cm4gbWFpYUFnZW50cy5sZW5ndGggPyBbLi4ubWFpYUFnZW50cywgLi4uZmF2b3JpdGVzLCAuLi5ub25GYXZvcml0ZXNdIDogWy4uLmZhdm9yaXRlcywgLi4ubm9uRmF2b3JpdGVzXVxufVxuXG5jb25zdCBub3JtYWxpemVDdXN0b21BZ2VudHNGcm9tQXBpID0gKGFnZW50czogQWdlbnRbXSk6IEFnZW50W10gPT5cbiAgYWdlbnRzLm1hcChhZ2VudCA9PiAoYWdlbnQudHlwZSA9PT0gJ2N1c3RvbScgPyB3aXRoTm9ybWFsaXplZENvbm5lY3RvcnMoYWdlbnQpIDogYWdlbnQpKVxuXG50eXBlIFVzZUdldEFnZW50c1Byb3BzID0ge1xuICBzZWxlY3RBZ2VudDogKGFnZW50OiBBZ2VudCkgPT4gdm9pZFxuICBzZWN0aW9uOiBTZWN0aW9uXG4gIGFnZW50OiBBZ2VudCB8IG51bGxcbiAgaGFuZGxlR29Ib21lOiAoKSA9PiB2b2lkXG59XG5cbmV4cG9ydCB0eXBlIEFkZEFnZW50T3B0aW9ucyA9IHtcbiAgLyoqIFBvciBkZWZlY3RvIGB0cnVlYCAoY29tcG9ydGFtaWVudG8gQUJNKS4gUGFzYXIgYGZhbHNlYCBhbCBpbnNlcnRhciBhZ2VudGUgY3JlYWRvIHBvciBjaGF0IHNpbiBjYW1iaWFyIGRlIHZpc3RhLiAqL1xuICBuYXZpZ2F0ZUhvbWU/OiBib29sZWFuXG59XG5cbmV4cG9ydCBjb25zdCB1c2VHZXRBZ2VudHMgPSAoeyBzZWxlY3RBZ2VudCwgc2VjdGlvbiwgYWdlbnQsIGhhbmRsZUdvSG9tZSB9OiBVc2VHZXRBZ2VudHNQcm9wcykgPT4ge1xuICBjb25zdCB1c2VyID0gdXNlVXNlcigpXG4gIGNvbnN0IFthZ2VudHMsIHNldEFnZW50c10gPSB1c2VTdGF0ZTx7IGRhdGE6IEFnZW50W107IGhhc19tb3JlPzogYm9vbGVhbjsgbmV4dF9vZmZzZXQ/OiBudW1iZXIgfCBudWxsIH0+KHsgZGF0YTogW10gfSlcbiAgY29uc3QgW2xvYWRpbmcsIHNldExvYWRpbmddID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtsb2FkaW5nTW9yZSwgc2V0TG9hZGluZ01vcmVdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtzZWFyY2hMb2FkaW5nLCBzZXRTZWFyY2hMb2FkaW5nXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbZXJyb3IsIHNldEVycm9yXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpXG4gIGNvbnN0IHsgaGFuZGxlU25hY2tiYXJFcnJvciB9ID0gdXNlU25hY2tCYXJNYW5hZ2VyKClcbiAgY29uc3QgeyB0LCBpMThuIH0gPSB1c2VUcmFuc2xhdGlvbignY2hhdF9haV9zZWN0aW9uJylcbiAgY29uc3QgbGFzdFNlbGVjdGVkQWdlbnRSZWYgPSB1c2VSZWY8QWdlbnQgfCBudWxsPihudWxsKVxuICBjb25zdCBpc1JlZnJlc2hpbmdSZWYgPSB1c2VSZWYoZmFsc2UpXG4gIGNvbnN0IGxhc3RSZXF1ZXN0UmVmID0gdXNlUmVmPHN0cmluZyB8IG51bGw+KG51bGwpXG4gIGNvbnN0IGFnZW50c1JlZiA9IHVzZVJlZihhZ2VudHMpXG4gIGNvbnN0IHByZVNlYXJjaEFnZW50c1JlZiA9IHVzZVJlZjx7IGRhdGE6IEFnZW50W107IGhhc19tb3JlPzogYm9vbGVhbjsgbmV4dF9vZmZzZXQ/OiBudW1iZXIgfCBudWxsIH0gfCBudWxsPihudWxsKVxuXG4gIGFnZW50c1JlZi5jdXJyZW50ID0gYWdlbnRzXG5cbiAgY29uc3QgYWRkQWdlbnQgPSB1c2VDYWxsYmFjayhcbiAgICAobmV3QWdlbnQ6IEFnZW50LCBvcHRpb25zPzogQWRkQWdlbnRPcHRpb25zKSA9PiB7XG4gICAgICBzZXRBZ2VudHMocHJldiA9PiB7XG4gICAgICAgIC8vIFZlcmlmaWNhciBzaSBlbCBhZ2VudGUgeWEgZXhpc3RlIHBhcmEgZXZpdGFyIGR1cGxpY2Fkb3NcbiAgICAgICAgY29uc3QgYWdlbnRFeGlzdHMgPSBwcmV2LmRhdGEuc29tZShleGlzdGluZ0FnZW50ID0+IGV4aXN0aW5nQWdlbnQuaWQgPT09IG5ld0FnZW50LmlkKVxuICAgICAgICBpZiAoYWdlbnRFeGlzdHMpIHtcbiAgICAgICAgICByZXR1cm4gcHJldlxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5ld0RhdGEgPSBbLi4ucHJldi5kYXRhLCBuZXdBZ2VudF1cbiAgICAgICAgY29uc3Qgc29ydGVkRGF0YSA9IHNvcnRBZ2VudHMobmV3RGF0YSlcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5wcmV2LFxuICAgICAgICAgIGRhdGE6IHNvcnRlZERhdGEsXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICBpZiAob3B0aW9ucz8ubmF2aWdhdGVIb21lICE9PSBmYWxzZSkge1xuICAgICAgICBoYW5kbGVHb0hvbWUoKVxuICAgICAgfVxuICAgIH0sXG4gICAgW2hhbmRsZUdvSG9tZV1cbiAgKVxuXG4gIGNvbnN0IHJlbW92ZUFnZW50ID0gdXNlQ2FsbGJhY2soKGFnZW50SWQ6IG51bWJlciB8IHN0cmluZykgPT4ge1xuICAgIHNldEFnZW50cyhwcmV2ID0+ICh7XG4gICAgICAuLi5wcmV2LFxuICAgICAgZGF0YTogcHJldi5kYXRhLmZpbHRlcihhID0+IGEuaWQgIT09IGFnZW50SWQudG9TdHJpbmcoKSksXG4gICAgfSkpXG4gIH0sIFtdKVxuXG4gIGNvbnN0IHVwZGF0ZUFnZW50ID0gdXNlQ2FsbGJhY2soKHVwZGF0ZWRBZ2VudDogQWdlbnQpID0+IHtcbiAgICBzZXRBZ2VudHMocHJldiA9PiB7XG4gICAgICBjb25zdCB1cGRhdGVkRGF0YSA9IHByZXYuZGF0YS5tYXAoZXhpc3RpbmdBZ2VudCA9PlxuICAgICAgICBleGlzdGluZ0FnZW50LmlkID09PSB1cGRhdGVkQWdlbnQuaWQgPyB1cGRhdGVkQWdlbnQgOiBleGlzdGluZ0FnZW50XG4gICAgICApXG4gICAgICBjb25zdCBzb3J0ZWREYXRhID0gc29ydEFnZW50cyh1cGRhdGVkRGF0YSlcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnByZXYsXG4gICAgICAgIGRhdGE6IHNvcnRlZERhdGEsXG4gICAgICB9XG4gICAgfSlcbiAgfSwgW10pXG5cbiAgY29uc3QgdXBkYXRlQWdlbnRGYXZvcml0ZSA9IHVzZUNhbGxiYWNrKFxuICAgICh1cGRhdGVkQWdlbnQ6IEFnZW50LCBzaG91bGRTb3J0OiBib29sZWFuID0gZmFsc2UpID0+IHtcbiAgICAgIHNldEFnZW50cyhwcmV2ID0+IHtcbiAgICAgICAgY29uc3QgdXBkYXRlZERhdGEgPSBwcmV2LmRhdGEubWFwKGV4aXN0aW5nQWdlbnQgPT4ge1xuICAgICAgICAgIGlmIChleGlzdGluZ0FnZW50LmlkID09PSB1cGRhdGVkQWdlbnQuaWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgbWVzc2FnZSwgLi4uYWdlbnRGaWVsZHMgfSA9IHVwZGF0ZWRBZ2VudCBhcyBhbnlcbiAgICAgICAgICAgIGNvbnN0IG1lcmdlZEFnZW50ID0geyAuLi5leGlzdGluZ0FnZW50LCAuLi5hZ2VudEZpZWxkcyB9XG4gICAgICAgICAgICByZXR1cm4gbWVyZ2VkQWdlbnRcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGV4aXN0aW5nQWdlbnRcbiAgICAgICAgfSlcblxuICAgICAgICAvLyBTb2xvIG9yZGVuYXIgc2kgc2hvdWxkU29ydCBlcyB0cnVlXG4gICAgICAgIGNvbnN0IGZpbmFsRGF0YSA9IHNob3VsZFNvcnQgPyBzb3J0QWdlbnRzKHVwZGF0ZWREYXRhKSA6IHVwZGF0ZWREYXRhXG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5wcmV2LFxuICAgICAgICAgIGRhdGE6IGZpbmFsRGF0YSxcbiAgICAgICAgfVxuICAgICAgfSlcblxuICAgICAgLy8gQWN0dWFsaXphciBlbCBhZ2VudGUgc2VsZWNjaW9uYWRvIHNpIGVzIGVsIHF1ZSBzZSBlc3TDoSBhY3R1YWxpemFuZG9cbiAgICAgIGlmIChhZ2VudD8uaWQgPT09IHVwZGF0ZWRBZ2VudC5pZCkge1xuICAgICAgICBjb25zdCBleGlzdGluZ0FnZW50ID0gYWdlbnRzLmRhdGEuZmluZChhID0+IGEuaWQgPT09IHVwZGF0ZWRBZ2VudC5pZClcbiAgICAgICAgaWYgKGV4aXN0aW5nQWdlbnQpIHtcbiAgICAgICAgICBjb25zdCB7IG1lc3NhZ2UsIC4uLmFnZW50RmllbGRzIH0gPSB1cGRhdGVkQWdlbnQgYXMgYW55XG4gICAgICAgICAgY29uc3QgbWVyZ2VkQWdlbnQgPSB7IC4uLmV4aXN0aW5nQWdlbnQsIC4uLmFnZW50RmllbGRzIH1cbiAgICAgICAgICBzZWxlY3RBZ2VudChtZXJnZWRBZ2VudClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCB7IG1lc3NhZ2UsIC4uLmFnZW50RmllbGRzIH0gPSB1cGRhdGVkQWdlbnQgYXMgYW55XG4gICAgICAgICAgc2VsZWN0QWdlbnQoYWdlbnRGaWVsZHMgYXMgQWdlbnQpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFthZ2VudCwgc2VsZWN0QWdlbnQsIGFnZW50cy5kYXRhXVxuICApXG5cbiAgY29uc3Qgc29ydEFnZW50c0xpc3QgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0QWdlbnRzKHByZXYgPT4ge1xuICAgICAgY29uc3Qgc29ydGVkRGF0YSA9IHNvcnRBZ2VudHMocHJldi5kYXRhKVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ucHJldixcbiAgICAgICAgZGF0YTogc29ydGVkRGF0YSxcbiAgICAgIH1cbiAgICB9KVxuICB9LCBbXSlcblxuICBjb25zdCBzZWxlY3RGaXJzdEFnZW50ID0gdXNlQ2FsbGJhY2soXG4gICAgKGFnZW50SWQ/OiBzdHJpbmcpID0+IHtcbiAgICAgIGlmIChhZ2VudHMuZGF0YS5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgZmlyc3RBZ2VudCA9IGFnZW50cy5kYXRhLmZpbmRJbmRleChhZ2VudERhdGEgPT4gYWdlbnREYXRhLmlkID09PSBhZ2VudElkKVxuICAgICAgICBsYXN0U2VsZWN0ZWRBZ2VudFJlZi5jdXJyZW50ID0gYWdlbnRzLmRhdGFbZmlyc3RBZ2VudCA9PT0gMCA/IDEgOiAwXVxuICAgICAgICBzZWxlY3RBZ2VudChhZ2VudHMuZGF0YVtmaXJzdEFnZW50ID09PSAwID8gMSA6IDBdKVxuICAgICAgfVxuICAgIH0sXG4gICAgW2FnZW50cy5kYXRhLCBzZWxlY3RBZ2VudF1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZUdldEFnZW50cyA9IHVzZUNhbGxiYWNrKFxuICAgIGFzeW5jIChhZ2VudFRvU2VsZWN0PzogQWdlbnQpID0+IHtcbiAgICAgIGlmIChpc1JlZnJlc2hpbmdSZWYuY3VycmVudCkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVxdWVzdEtleSA9IGFnZW50VG9TZWxlY3Q/LmlkPy50b1N0cmluZygpIHx8ICdkZWZhdWx0J1xuICAgICAgaWYgKGxhc3RSZXF1ZXN0UmVmLmN1cnJlbnQgPT09IHJlcXVlc3RLZXkgJiYgIWxvYWRpbmcpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGlzUmVmcmVzaGluZ1JlZi5jdXJyZW50ID0gdHJ1ZVxuICAgICAgbGFzdFJlcXVlc3RSZWYuY3VycmVudCA9IHJlcXVlc3RLZXlcbiAgICAgIHNldExvYWRpbmcodHJ1ZSlcbiAgICAgIHNldEVycm9yKG51bGwpXG5cbiAgICAgIGNvbnN0IGlzTXVsdGlBZ2VudHMgPSAhIXdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1MgJiYgISF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UU1xuXG4gICAgICB0cnkge1xuICAgICAgICBsZXQgYWdlbnRQYXJzZWQ6IEFnZW50W10gPSBbXVxuICAgICAgICBsZXQgaGFzTW9yZSA9IGZhbHNlXG4gICAgICAgIGxldCBuZXh0T2Zmc2V0OiBudW1iZXIgfCBudWxsID0gbnVsbFxuICAgICAgICBjb25zdCBjbG9uZUFnZW50c1JvbGVCbG9ja2VkID0gaXNNYWlhQ2xvbmVBZ2VudHNSb2xlQmxvY2tlZCh1c2VyLCBzZWN0aW9uKVxuICAgICAgICBjb25zdCBjYW5GZXRjaENsb25lQWdlbnRzID0gIWNsb25lQWdlbnRzUm9sZUJsb2NrZWRcblxuICAgICAgICBjb25zdCBwcmVmZXRjaEtleSA9IGJ1aWxkQWdlbnRzUHJlZmV0Y2hLZXkoc2VjdGlvbiwgbWFwQ09STGFuZyhpMThuLmxhbmd1YWdlKSwgaXNNdWx0aUFnZW50cylcbiAgICAgICAgY29uc3QgcHJlZmV0Y2hlZEFnZW50cyA9IGF3YWl0IHRha2VBZ2VudHNQcmVmZXRjaChwcmVmZXRjaEtleSlcblxuICAgICAgICBpZiAocHJlZmV0Y2hlZEFnZW50cykge1xuICAgICAgICAgIGFnZW50UGFyc2VkID0gcHJlZmV0Y2hlZEFnZW50cy5kYXRhXG4gICAgICAgICAgaGFzTW9yZSA9IHByZWZldGNoZWRBZ2VudHMuaGFzX21vcmUgPz8gZmFsc2VcbiAgICAgICAgICBuZXh0T2Zmc2V0ID0gcHJlZmV0Y2hlZEFnZW50cy5uZXh0X29mZnNldCA/PyBudWxsXG4gICAgICAgICAgc2V0QWdlbnRzKHtcbiAgICAgICAgICAgIGRhdGE6IGFnZW50UGFyc2VkLFxuICAgICAgICAgICAgaGFzX21vcmU6IGhhc01vcmUsXG4gICAgICAgICAgICBuZXh0X29mZnNldDogbmV4dE9mZnNldCxcbiAgICAgICAgICB9KVxuICAgICAgICAgIGlmIChhZ2VudFBhcnNlZC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHNldEVycm9yKG51bGwpXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IGZldGNoR2xvYmFsQ2xvbmVBZ2VudHMgPSBhc3luYyAoKTogUHJvbWlzZTxBZ2VudFtdPiA9PiB7XG4gICAgICAgICAgICBpZiAoIXdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1NfTVVMVElfQUdFTlRTIHx8ICFjYW5GZXRjaENsb25lQWdlbnRzKSByZXR1cm4gW11cbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGNvbnN0IGNsb25lUmVzcG9uc2UgPSBhd2FpdCBmZXRjaE1haWEoe1xuICAgICAgICAgICAgICAgIHBhdGg6IGBhZ2VudHM/YWdlbnRfdHlwZT1jbG9uZSZlbnRpdHk9Z2xvYmFsJmxhbmc9JHttYXBDT1JMYW5nKGkxOG4ubGFuZ3VhZ2UpfWAsXG4gICAgICAgICAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgY29uc3QgY2xvbmVEYXRhID0gYXdhaXQgY2xvbmVSZXNwb25zZS5qc29uKClcbiAgICAgICAgICAgICAgcmV0dXJuIChjbG9uZURhdGEuZGF0YSB8fCBbXSkuZmlsdGVyKChhZzogQWdlbnQpID0+IGFnLnR5cGUgPT09ICdjbG9uZScpXG4gICAgICAgICAgICB9IGNhdGNoIChjbG9uZUVycm9yKSB7XG4gICAgICAgICAgICAgIGlmIChpczQwM0FnZW50RmV0Y2hFcnJvcihjbG9uZUVycm9yKSkgcmV0dXJuIFtdXG4gICAgICAgICAgICAgIHRocm93IGNsb25lRXJyb3JcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBTaSB0aWVuZSBmZWF0dXJlIGFjY2VzcyBtdWx0aSBhZ2VudHMsIGhhY2VyIGRvcyBxdWVyaWVzIChNYWlhICsgY3VzdG9tKSBlbiBjdWFscXVpZXIgc2VjY2nDs25cbiAgICAgICAgICBpZiAoaXNNdWx0aUFnZW50cykge1xuICAgICAgICAgICAgLy8gUXVlcnkgY2xvbmUgKE1haWEpIHkgY3VzdG9tIHNvbiBpbmRlcGVuZGllbnRlcyDihpIgc2UgZGlzcGFyYW4gZW4gcGFyYWxlbG8uXG4gICAgICAgICAgICBsZXQgY3VzdG9tQWdlbnRzOiBBZ2VudFtdID0gW11cbiAgICAgICAgICAgIGxldCBjdXN0b21IYXNNb3JlID0gZmFsc2VcbiAgICAgICAgICAgIGxldCBjdXN0b21OZXh0T2Zmc2V0OiBudW1iZXIgfCBudWxsID0gbnVsbFxuXG4gICAgICAgICAgICBjb25zdCBpczQwMyA9IGlzNDAzQWdlbnRGZXRjaEVycm9yXG5cbiAgICAgICAgICAgIGxldCBtYWlhQWdlbnRzOiBBZ2VudFtdID0gW11cblxuICAgICAgICAgICAgY29uc3QgbG9hZENsb25lQWdlbnRzID0gYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICBpZiAoIWNhbkZldGNoQ2xvbmVBZ2VudHMpIHJldHVyblxuICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1haWFSZXNwb25zZSA9IGF3YWl0IGZldGNoTWFpYSh7XG4gICAgICAgICAgICAgICAgICBwYXRoOiBgYWdlbnRzP2FnZW50X3R5cGU9b3JjaGVzdHJhdG9yJmxhbmc9JHttYXBDT1JMYW5nKGkxOG4ubGFuZ3VhZ2UpfWAsXG4gICAgICAgICAgICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgY29uc3QgbWFpYURhdGEgPSBhd2FpdCBtYWlhUmVzcG9uc2UuanNvbigpXG4gICAgICAgICAgICAgICAgbWFpYUFnZW50cyA9IG1haWFEYXRhLmRhdGE/LmZpbHRlcihpc01haWFBZ2VudCkgfHwgW11cbiAgICAgICAgICAgICAgICBjb25zdCBnbG9iYWxDbG9uZUFnZW50cyA9IGF3YWl0IGZldGNoR2xvYmFsQ2xvbmVBZ2VudHMoKVxuICAgICAgICAgICAgICAgIG1haWFBZ2VudHMgPSBtZXJnZUFnZW50c1dpdGhvdXREdXBsaWNhdGVzKG1haWFBZ2VudHMsIGdsb2JhbENsb25lQWdlbnRzKVxuICAgICAgICAgICAgICB9IGNhdGNoIChtYWlhRXJyb3I6IHVua25vd24pIHtcbiAgICAgICAgICAgICAgICAvLyBTaSBlcyA0MDMsIGNvbnRpbnVhciBzaW4gbG9zIGNsb25lQWdlbnRzOyBzaSBlcyBvdHJvIGVycm9yLCBwcm9wYWdhcmxvXG4gICAgICAgICAgICAgICAgaWYgKCFpczQwMyhtYWlhRXJyb3IpKSB0aHJvdyBtYWlhRXJyb3JcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBsb2FkQ3VzdG9tQWdlbnRzID0gYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGN1c3RvbVJlc3BvbnNlID0gYXdhaXQgZmV0Y2hNYWlhKHtcbiAgICAgICAgICAgICAgICAgIHBhdGg6ICdhZ2VudHM/YWdlbnRfdHlwZT1jdXN0b20mbGltaXQ9NyZvZmZzZXQ9MCcsXG4gICAgICAgICAgICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgY29uc3QgY3VzdG9tRGF0YSA9IGF3YWl0IGN1c3RvbVJlc3BvbnNlLmpzb24oKVxuICAgICAgICAgICAgICAgIGN1c3RvbUFnZW50cyA9IG5vcm1hbGl6ZUN1c3RvbUFnZW50c0Zyb21BcGkoY3VzdG9tRGF0YS5kYXRhIHx8IFtdKVxuICAgICAgICAgICAgICAgIGN1c3RvbUhhc01vcmUgPSBjdXN0b21EYXRhLmhhc19tb3JlIHx8IGZhbHNlXG4gICAgICAgICAgICAgICAgY3VzdG9tTmV4dE9mZnNldCA9IGN1c3RvbURhdGEubmV4dF9vZmZzZXQgfHwgbnVsbFxuICAgICAgICAgICAgICB9IGNhdGNoIChjdXN0b21FcnJvcjogYW55KSB7XG4gICAgICAgICAgICAgICAgLy8gU2kgZXMgNDAzLCBjb250aW51YXIgc2luIGxvcyBjdXN0b21BZ2VudHMgKHF1ZWRhIGNvbW8gYXJyYXkgdmFjw61vKTsgc2kgbm8sIHByb3BhZ2FybG9cbiAgICAgICAgICAgICAgICBpZiAoIWlzNDAzKGN1c3RvbUVycm9yKSkgdGhyb3cgY3VzdG9tRXJyb3JcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChbbG9hZENsb25lQWdlbnRzKCksIGxvYWRDdXN0b21BZ2VudHMoKV0pXG5cbiAgICAgICAgICAgIC8vIENvbWJpbmFyOiBhZ2VudGVzIGNsb25lIHByaW1lcm8sIGx1ZWdvIGxvcyBjdXN0b20gKHNpIGV4aXN0ZW4pXG4gICAgICAgICAgICAvLyBTaSBlbCB1c3VhcmlvIHRpZW5lIHVuIHJvbCBkZXNoYWJpbGl0YWRvLCBubyBpbmNsdWlyIGNsb25lQWdlbnRzXG4gICAgICAgICAgICBpZiAoIWNhbkZldGNoQ2xvbmVBZ2VudHMpIHtcbiAgICAgICAgICAgICAgLy8gUm9sIHNpbiBhY2Nlc28gYSBjbG9uZXMgKHAuIGVqLiBmcmVlbGFuY2VyL2NsaWVudGUgbyBjb2xhYm9yYWRvciBlbiBwcm9qZWN0L2NsaWVudCk6IHNvbG8gY3VzdG9tQWdlbnRzXG4gICAgICAgICAgICAgIC8vIFNpIGN1c3RvbUFnZW50cyBlc3TDoSB2YWPDrW8gKHBvciA0MDMpLCBhZ2VudFBhcnNlZCBzZXLDoSBbXVxuICAgICAgICAgICAgICBhZ2VudFBhcnNlZCA9IGN1c3RvbUFnZW50c1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgYWdlbnRQYXJzZWQgPSBtYWlhQWdlbnRzLmxlbmd0aCA/IFsuLi5tYWlhQWdlbnRzLCAuLi5jdXN0b21BZ2VudHNdIDogY3VzdG9tQWdlbnRzXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBPcmRlbmFyOiBNYWlhIHByaW1lcm8sIGx1ZWdvIGZhdm9yaXRvcyBhbGZhYsOpdGljYW1lbnRlLCBsdWVnbyBubyBmYXZvcml0b3MgYWxmYWLDqXRpY2FtZW50ZVxuICAgICAgICAgICAgYWdlbnRQYXJzZWQgPSBzb3J0QWdlbnRzKGFnZW50UGFyc2VkKVxuICAgICAgICAgICAgaGFzTW9yZSA9IGN1c3RvbUhhc01vcmVcbiAgICAgICAgICAgIG5leHRPZmZzZXQgPSBjdXN0b21OZXh0T2Zmc2V0XG5cbiAgICAgICAgICAgIHNldEFnZW50cyh7XG4gICAgICAgICAgICAgIGRhdGE6IGFnZW50UGFyc2VkLFxuICAgICAgICAgICAgICBoYXNfbW9yZTogaGFzTW9yZSxcbiAgICAgICAgICAgICAgbmV4dF9vZmZzZXQ6IG5leHRPZmZzZXQsXG4gICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICAvLyBTaSBubyBoYXkgYWdlbnRlcyBkZXNwdcOpcyBkZSBwcm9jZXNhciBsYXMgcXVlcmllcywgbGltcGlhciBlbCBlcnJvclxuICAgICAgICAgICAgaWYgKGFnZW50UGFyc2VkLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICBzZXRFcnJvcihudWxsKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBMw7NnaWNhIHBhcmEgcHJvamVjdCwgY2xpZW50IG8gaGVhZGVyIHNpbiBtdWx0aUFnZW50cyAobWlzbW8gY3JpdGVyaW8gZGUgb3JkZW4gcHJvamVjdC9jbGllbnQ7IGhlYWRlciBhw7FhZGUgcGFnaW5hY2nDs24pXG4gICAgICAgICAgICBjb25zdCBxdWVyeVBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKVxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICBzZWN0aW9uID09PSAncHJvamVjdCcgfHxcbiAgICAgICAgICAgICAgc2VjdGlvbiA9PT0gJ2NsaWVudCcgfHxcbiAgICAgICAgICAgICAgc2VjdGlvbiA9PT0gJ2hlYWRlcicgfHxcbiAgICAgICAgICAgICAgc2VjdGlvbiA9PT0gJ3Rhc2snIHx8XG4gICAgICAgICAgICAgIHNlY3Rpb24gPT09ICdwbGFubmVyJ1xuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnYWdlbnRfdHlwZScsICdvcmNoZXN0cmF0b3InKVxuICAgICAgICAgICAgICBxdWVyeVBhcmFtcy5hcHBlbmQoJ2xhbmcnLCBtYXBDT1JMYW5nKGkxOG4ubGFuZ3VhZ2UpKVxuICAgICAgICAgICAgICBpZiAoc2VjdGlvbiA9PT0gJ2hlYWRlcicpIHtcbiAgICAgICAgICAgICAgICBxdWVyeVBhcmFtcy5hcHBlbmQoJ2xpbWl0JywgJzcnKVxuICAgICAgICAgICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnb2Zmc2V0JywgJzAnKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHF1ZXJ5U3RyaW5nID0gcXVlcnlQYXJhbXMudG9TdHJpbmcoKVxuICAgICAgICAgICAgY29uc3QgcGF0aCA9IGBhZ2VudHMke3F1ZXJ5U3RyaW5nID8gYD8ke3F1ZXJ5U3RyaW5nfWAgOiAnJ31gXG5cbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2hNYWlhKHtcbiAgICAgICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKVxuICAgICAgICAgICAgICAvLyBkYXRhLmRhdGEgeWEgY29udGllbmUgZWwvbG9zIGFnZW50ZXMgb3JxdWVzdGFkb3JlcyBkZSBsYSBxdWVyeSBhZ2VudF90eXBlPW9yY2hlc3RyYXRvclxuICAgICAgICAgICAgICBhZ2VudFBhcnNlZCA9IGRhdGEuZGF0YSB8fCBbXVxuICAgICAgICAgICAgICBjb25zdCBnbG9iYWxDbG9uZUFnZW50cyA9IGF3YWl0IGZldGNoR2xvYmFsQ2xvbmVBZ2VudHMoKVxuICAgICAgICAgICAgICBhZ2VudFBhcnNlZCA9IG1lcmdlQWdlbnRzV2l0aG91dER1cGxpY2F0ZXMoYWdlbnRQYXJzZWQsIGdsb2JhbENsb25lQWdlbnRzKVxuICAgICAgICAgICAgICAvLyBPcmRlbmFyOiBNYWlhIHByaW1lcm8sIGx1ZWdvIGZhdm9yaXRvcyBhbGZhYsOpdGljYW1lbnRlLCBsdWVnbyBubyBmYXZvcml0b3MgYWxmYWLDqXRpY2FtZW50ZVxuICAgICAgICAgICAgICBhZ2VudFBhcnNlZCA9IHNvcnRBZ2VudHMoYWdlbnRQYXJzZWQpXG4gICAgICAgICAgICAgIGhhc01vcmUgPSBkYXRhLmhhc19tb3JlXG4gICAgICAgICAgICAgIG5leHRPZmZzZXQgPSBkYXRhLm5leHRfb2Zmc2V0XG5cbiAgICAgICAgICAgICAgc2V0QWdlbnRzKHtcbiAgICAgICAgICAgICAgICAuLi5kYXRhLFxuICAgICAgICAgICAgICAgIGRhdGE6IGFnZW50UGFyc2VkLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfSBjYXRjaCAocmVzcG9uc2VFcnJvcjogYW55KSB7XG4gICAgICAgICAgICAgIC8vIFZlcmlmaWNhciBzaSBlbCBlcnJvciBlcyA0MDNcbiAgICAgICAgICAgICAgLy8gZmV0Y2hDT1IgcHVlZGUgbGFuemFyIGRpZmVyZW50ZXMgdGlwb3MgZGUgZXJyb3JlczpcbiAgICAgICAgICAgICAgLy8gMS4gRXJyb3IgY29uIGVycm9yRGF0YS5kZXRhaWwgc2kgaW5jbHV5ZSAnQWNjZXNzIGRlbmllZCdcbiAgICAgICAgICAgICAgLy8gMi4gRXJyb3IgZ2Vuw6lyaWNvICdGYWlsZWQgZmV0Y2hpbmcgZGF0YScgc2kgZXMgNDAzIHBlcm8gbm8gaW5jbHV5ZSAnQWNjZXNzIGRlbmllZCdcbiAgICAgICAgICAgICAgLy8gMy4gTmVjZXNpdGFtb3MgdmVyaWZpY2FyIGVsIHN0YXR1cyBjb2RlIHNpIGVzdMOhIGRpc3BvbmlibGVcbiAgICAgICAgICAgICAgY29uc3QgaXM0MDNFcnJvciA9XG4gICAgICAgICAgICAgICAgcmVzcG9uc2VFcnJvcj8ucmVzcG9uc2U/LnN0YXR1cyA9PT0gNDAzIHx8XG4gICAgICAgICAgICAgICAgcmVzcG9uc2VFcnJvcj8uc3RhdHVzID09PSA0MDMgfHxcbiAgICAgICAgICAgICAgICByZXNwb25zZUVycm9yPy5tZXNzYWdlPy5pbmNsdWRlcyhcIllvdSBkb24ndCBoYXZlIHBlcm1pc3Npb24gdG8gdmlldyBhZ2VudHNcIikgfHxcbiAgICAgICAgICAgICAgICByZXNwb25zZUVycm9yPy5tZXNzYWdlPy5pbmNsdWRlcygnRmFpbGVkIGZldGNoaW5nIGRhdGEnKSAvLyBmZXRjaENPUiBsYW56YSBlc3RvIHBhcmEgNDAzIHNpbiAnQWNjZXNzIGRlbmllZCdcblxuICAgICAgICAgICAgICBpZiAoaXM0MDNFcnJvcikge1xuICAgICAgICAgICAgICAgIC8vIFNpIGVzIDQwMywgZXN0YWJsZWNlciBhZ2VudGVzIHZhY8Otb3MgeSBjb250aW51YXJcbiAgICAgICAgICAgICAgICBzZXRBZ2VudHMoe1xuICAgICAgICAgICAgICAgICAgZGF0YTogW10sXG4gICAgICAgICAgICAgICAgICBoYXNfbW9yZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICBuZXh0X29mZnNldDogbnVsbCxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIHNldEVycm9yKG51bGwpXG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gU2kgZXMgb3RybyBlcnJvciwgbGFuemFybG9cbiAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZUVycm9yXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBMw7NnaWNhIGRlIHNlbGVjdCBhZ2VudCAtIFNvbG8gc2VsZWNjaW9uYXIgc2kgaGF5IGFnZW50ZXMgZGlzcG9uaWJsZXNcbiAgICAgICAgaWYgKGFnZW50UGFyc2VkLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBpZiAoYWdlbnRUb1NlbGVjdCAmJiBhZ2VudFBhcnNlZC5maW5kKChhZ2VudFRvUmVxdWVzdDogQWdlbnQpID0+IGFnZW50VG9SZXF1ZXN0LmlkID09PSBhZ2VudFRvU2VsZWN0LmlkKSkge1xuICAgICAgICAgICAgaWYgKGxhc3RTZWxlY3RlZEFnZW50UmVmLmN1cnJlbnQ/LmlkICE9PSBhZ2VudFRvU2VsZWN0LmlkKSB7XG4gICAgICAgICAgICAgIGxhc3RTZWxlY3RlZEFnZW50UmVmLmN1cnJlbnQgPSBhZ2VudFRvU2VsZWN0XG4gICAgICAgICAgICAgIHNlbGVjdEFnZW50KGFnZW50VG9TZWxlY3QpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmIChhZ2VudFBhcnNlZD8uWzBdICYmICghYWdlbnQgfHwgIWFnZW50UGFyc2VkLmZpbmQoKGE6IEFnZW50KSA9PiBhLmlkID09PSBhZ2VudC5pZCkpKSB7XG4gICAgICAgICAgICBjb25zdCBhdmFpbGFibGVBZ2VudHMgPVxuICAgICAgICAgICAgICB3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTICYmICFjbG9uZUFnZW50c1JvbGVCbG9ja2VkXG4gICAgICAgICAgICAgICAgPyBhZ2VudFBhcnNlZFxuICAgICAgICAgICAgICAgIDogYWdlbnRQYXJzZWQuZmlsdGVyKChhZ2VudEl0ZW06IEFnZW50KSA9PiAhaXNNYWlhQWdlbnQoYWdlbnRJdGVtKSlcblxuICAgICAgICAgICAgY29uc3QgW2ZpcnN0QWdlbnRdID0gYXZhaWxhYmxlQWdlbnRzXG4gICAgICAgICAgICBpZiAoZmlyc3RBZ2VudCAmJiBsYXN0U2VsZWN0ZWRBZ2VudFJlZi5jdXJyZW50Py5pZCAhPT0gZmlyc3RBZ2VudC5pZCkge1xuICAgICAgICAgICAgICBsYXN0U2VsZWN0ZWRBZ2VudFJlZi5jdXJyZW50ID0gZmlyc3RBZ2VudFxuICAgICAgICAgICAgICBzZWxlY3RBZ2VudChmaXJzdEFnZW50KVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAoYWdlbnRUb1NlbGVjdCAmJiBhZ2VudFBhcnNlZD8ubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBhdmFpbGFibGVBZ2VudHMgPVxuICAgICAgICAgICAgICB3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTICYmICFjbG9uZUFnZW50c1JvbGVCbG9ja2VkXG4gICAgICAgICAgICAgICAgPyBhZ2VudFBhcnNlZFxuICAgICAgICAgICAgICAgIDogYWdlbnRQYXJzZWQuZmlsdGVyKChhZ2VudEl0ZW06IEFnZW50KSA9PiAhaXNNYWlhQWdlbnQoYWdlbnRJdGVtKSlcblxuICAgICAgICAgICAgY29uc3QgW2ZpcnN0QXZhaWxhYmxlQWdlbnRdID0gYXZhaWxhYmxlQWdlbnRzXG4gICAgICAgICAgICBpZiAoZmlyc3RBdmFpbGFibGVBZ2VudCAmJiBsYXN0U2VsZWN0ZWRBZ2VudFJlZi5jdXJyZW50Py5pZCAhPT0gZmlyc3RBdmFpbGFibGVBZ2VudC5pZCkge1xuICAgICAgICAgICAgICBsYXN0U2VsZWN0ZWRBZ2VudFJlZi5jdXJyZW50ID0gZmlyc3RBdmFpbGFibGVBZ2VudFxuICAgICAgICAgICAgICBzZWxlY3RBZ2VudChmaXJzdEF2YWlsYWJsZUFnZW50KVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHNldExvYWRpbmcoZmFsc2UpXG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgc2V0RXJyb3IoZXJyIGluc3RhbmNlb2YgRXJyb3IgPyBlcnIubWVzc2FnZSA6ICdBbiB1bmtub3duIGVycm9yIG9jY3VycmVkJylcbiAgICAgICAgc2V0TG9hZGluZyhmYWxzZSlcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIGlzUmVmcmVzaGluZ1JlZi5jdXJyZW50ID0gZmFsc2VcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgaWYgKCFpc1JlZnJlc2hpbmdSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgbGFzdFJlcXVlc3RSZWYuY3VycmVudCA9IG51bGxcbiAgICAgICAgICB9XG4gICAgICAgIH0sIDEwMClcbiAgICAgIH1cbiAgICB9LFxuICAgIFtzZWxlY3RBZ2VudCwgc2VjdGlvbiwgYWdlbnQsIGxvYWRpbmddXG4gIClcblxuICBjb25zdCBzZWFyY2hDdXN0b21BZ2VudHMgPSB1c2VDYWxsYmFjayhhc3luYyAocXVlcnk6IHN0cmluZykgPT4ge1xuICAgIGlmICghcXVlcnkpIHtcbiAgICAgIGlmIChwcmVTZWFyY2hBZ2VudHNSZWYuY3VycmVudCkge1xuICAgICAgICBzZXRBZ2VudHMocHJlU2VhcmNoQWdlbnRzUmVmLmN1cnJlbnQpXG4gICAgICAgIHByZVNlYXJjaEFnZW50c1JlZi5jdXJyZW50ID0gbnVsbFxuICAgICAgfVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKCFwcmVTZWFyY2hBZ2VudHNSZWYuY3VycmVudCkge1xuICAgICAgcHJlU2VhcmNoQWdlbnRzUmVmLmN1cnJlbnQgPSBhZ2VudHNSZWYuY3VycmVudFxuICAgIH1cblxuICAgIHNldFNlYXJjaExvYWRpbmcodHJ1ZSlcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoTWFpYSh7XG4gICAgICAgIHBhdGg6IGBhZ2VudHM/YWdlbnRfdHlwZT1jdXN0b20mbGltaXQ9MjAmb2Zmc2V0PTAmcT0ke2VuY29kZVVSSUNvbXBvbmVudChxdWVyeSl9YCxcbiAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgIH0pXG4gICAgICBjb25zdCBkYXRhID0gYXdhaXQgcmVzcG9uc2UuanNvbigpXG5cbiAgICAgIHNldEFnZW50cyhwcmV2ID0+IHtcbiAgICAgICAgY29uc3QgY2xvbmVBZ2VudHMgPSBwcmV2LmRhdGEuZmlsdGVyKChhZzogQWdlbnQpID0+IGFnLnR5cGUgPT09ICdjbG9uZScpXG4gICAgICAgIGNvbnN0IGN1c3RvbVJlc3VsdHM6IEFnZW50W10gPSBkYXRhLmRhdGEgfHwgW11cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBkYXRhOiBjbG9uZUFnZW50cy5sZW5ndGggPyBbLi4uY2xvbmVBZ2VudHMsIC4uLmN1c3RvbVJlc3VsdHNdIDogY3VzdG9tUmVzdWx0cyxcbiAgICAgICAgICBoYXNfbW9yZTogZmFsc2UsXG4gICAgICAgICAgbmV4dF9vZmZzZXQ6IG51bGwsXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBoYW5kbGVTbmFja2JhckVycm9yKHQoJ3NuYWNrYmFyLmxvYWRNb3JlQWdlbnRzLmVycm9yJykpXG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHNldFNlYXJjaExvYWRpbmcoZmFsc2UpXG4gICAgfVxuICB9LCBbXSlcblxuICBjb25zdCBsb2FkTW9yZUFnZW50cyA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBpc011bHRpQWdlbnRzID0gISF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTICYmICEhd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFNcbiAgICAvLyBDYXJnYXIgbcOhczogZW4gaGVhZGVyIHNpZW1wcmU7IGVuIHByb2plY3Qgc29sbyBzaSBpc011bHRpQWdlbnRzIChwb3JxdWUgc29sbyBlbnRvbmNlcyBoYXkgcGFnaW5hY2nDs24gZGUgY3VzdG9tKVxuICAgIGNvbnN0IGNhbkxvYWRNb3JlID0gc2VjdGlvbiA9PT0gJ2hlYWRlcicgfHwgaXNNdWx0aUFnZW50c1xuICAgIGlmICghY2FuTG9hZE1vcmUgfHwgIWFnZW50cy5oYXNfbW9yZSB8fCAhYWdlbnRzLm5leHRfb2Zmc2V0IHx8IGxvYWRpbmdNb3JlKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBzZXRMb2FkaW5nTW9yZSh0cnVlKVxuICAgIHNldEVycm9yKG51bGwpXG5cbiAgICB0cnkge1xuICAgICAgbGV0IHBhdGg6IHN0cmluZ1xuXG4gICAgICAvLyBTaSBlcyBtdWx0aUFnZW50cywgc29sbyBjYXJnYXIgYWdlbnRzIGN1c3RvbSAoTWFpYSB5YSBlc3TDoSBjYXJnYWRvKVxuICAgICAgaWYgKGlzTXVsdGlBZ2VudHMpIHtcbiAgICAgICAgLy8gTWFudGVuZXIgY2FudGlkYWQgaW1wYXIgZGUgY2FyZHM6IHByaW1lcmEgY2FyZ2EgNywgc2lndWllbnRlcyArNiAoNywgMTMsIDE5LCAuLi4pXG4gICAgICAgIHBhdGggPSBgYWdlbnRzP2FnZW50X3R5cGU9Y3VzdG9tJmxpbWl0PTYmb2Zmc2V0PSR7YWdlbnRzLm5leHRfb2Zmc2V0fWBcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFNpIG5vIGVzIG11bHRpQWdlbnRzLCBjYXJnYXIgbcOhcyBhZ2VudGVzIG9ycXVlc3RhZG9yZXMgKE1BSUEpXG4gICAgICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpXG4gICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnYWdlbnRfdHlwZScsICdvcmNoZXN0cmF0b3InKVxuICAgICAgICBxdWVyeVBhcmFtcy5hcHBlbmQoJ2xhbmcnLCBtYXBDT1JMYW5nKGkxOG4ubGFuZ3VhZ2UpKVxuICAgICAgICBxdWVyeVBhcmFtcy5hcHBlbmQoJ2xpbWl0JywgJzcnKVxuICAgICAgICBxdWVyeVBhcmFtcy5hcHBlbmQoJ29mZnNldCcsIGFnZW50cy5uZXh0X29mZnNldC50b1N0cmluZygpKVxuICAgICAgICBwYXRoID0gYGFnZW50cz8ke3F1ZXJ5UGFyYW1zLnRvU3RyaW5nKCl9YFxuICAgICAgfVxuXG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoTWFpYSh7XG4gICAgICAgIHBhdGgsXG4gICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICB9KVxuXG4gICAgICBjb25zdCBkYXRhID0gYXdhaXQgcmVzcG9uc2UuanNvbigpXG5cbiAgICAgIC8vIEFjdW11bGFyIGFnZW50ZXMsIGV4Y2x1eWVuZG8gZHVwbGljYWRvc1xuICAgICAgc2V0QWdlbnRzKHByZXYgPT4ge1xuICAgICAgICBpZiAoaXNNdWx0aUFnZW50cykge1xuICAgICAgICAgIC8vIEzDs2dpY2EgcGFyYSBtdWx0aUFnZW50czogc2VwYXJhciBNQUlBIHkgY3VzdG9tXG4gICAgICAgICAgY29uc3QgZXhpc3RpbmdNYWlhQWdlbnRzID0gcHJldi5kYXRhLmZpbHRlcihpc01haWFBZ2VudClcblxuICAgICAgICAgIC8vIE9idGVuZXIgSURzIGV4aXN0ZW50ZXMgKGV4Y2x1eWVuZG8gTUFJQSlcbiAgICAgICAgICBjb25zdCBleGlzdGluZ0lkcyA9IG5ldyBTZXQocHJldi5kYXRhLmZpbHRlcigoYWc6IEFnZW50KSA9PiAhaXNNYWlhQWdlbnQoYWcpKS5tYXAoKGFnOiBBZ2VudCkgPT4gYWcuaWQpKVxuXG4gICAgICAgICAgLy8gRmlsdHJhciBudWV2b3MgYWdlbnRzIHF1ZSBubyBlc3TDqW4geWEgZW4gbGEgbGlzdGEgKGV4Y2x1eWVuZG8gTUFJQSB5IGNsb25lcyksIG5vcm1hbGl6YW5kbyBjdXN0b21cbiAgICAgICAgICBjb25zdCBuZXdBZ2VudHMgPSBub3JtYWxpemVDdXN0b21BZ2VudHNGcm9tQXBpKFxuICAgICAgICAgICAgZGF0YS5kYXRhLmZpbHRlcigoYWc6IEFnZW50KSA9PiAhaXNNYWlhQWdlbnQoYWcpICYmIGFnLnR5cGUgIT09ICdjbG9uZScgJiYgIWV4aXN0aW5nSWRzLmhhcyhhZy5pZCkpXG4gICAgICAgICAgKVxuXG4gICAgICAgICAgY29uc3QgbmV3RGF0YSA9IGV4aXN0aW5nTWFpYUFnZW50cy5sZW5ndGhcbiAgICAgICAgICAgID8gWy4uLmV4aXN0aW5nTWFpYUFnZW50cywgLi4ucHJldi5kYXRhLmZpbHRlcigoYWc6IEFnZW50KSA9PiAhaXNNYWlhQWdlbnQoYWcpKSwgLi4ubmV3QWdlbnRzXVxuICAgICAgICAgICAgOiBbLi4ucHJldi5kYXRhLmZpbHRlcigoYWc6IEFnZW50KSA9PiAhaXNNYWlhQWdlbnQoYWcpKSwgLi4ubmV3QWdlbnRzXVxuXG4gICAgICAgICAgLy8gT3JkZW5hcjogTWFpYSBwcmltZXJvLCBsdWVnbyBmYXZvcml0b3MgYWxmYWLDqXRpY2FtZW50ZSwgbHVlZ28gbm8gZmF2b3JpdG9zIGFsZmFiw6l0aWNhbWVudGVcbiAgICAgICAgICBjb25zdCBzb3J0ZWREYXRhID0gc29ydEFnZW50cyhuZXdEYXRhKVxuXG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGRhdGE6IHNvcnRlZERhdGEsXG4gICAgICAgICAgICBoYXNfbW9yZTogZGF0YS5oYXNfbW9yZSxcbiAgICAgICAgICAgIG5leHRfb2Zmc2V0OiBkYXRhLm5leHRfb2Zmc2V0LFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBMw7NnaWNhIHBhcmEgIWlzTXVsdGlBZ2VudHM6IGFncmVnYXIgZXZpdGFuZG8gZHVwbGljYWRvc1xuICAgICAgICBjb25zdCBleGlzdGluZ0lkcyA9IG5ldyBTZXQocHJldi5kYXRhLm1hcCgoYWc6IEFnZW50KSA9PiBhZy5pZCkpXG4gICAgICAgIGNvbnN0IG5ld0FnZW50cyA9IChkYXRhLmRhdGEgfHwgW10pLmZpbHRlcigoYWc6IEFnZW50KSA9PiAhZXhpc3RpbmdJZHMuaGFzKGFnLmlkKSlcbiAgICAgICAgY29uc3QgbmV3RGF0YSA9IFsuLi5wcmV2LmRhdGEsIC4uLm5ld0FnZW50c11cblxuICAgICAgICAvLyBPcmRlbmFyOiBNYWlhIHByaW1lcm8sIGx1ZWdvIGZhdm9yaXRvcyBhbGZhYsOpdGljYW1lbnRlLCBsdWVnbyBubyBmYXZvcml0b3MgYWxmYWLDqXRpY2FtZW50ZVxuICAgICAgICBjb25zdCBzb3J0ZWREYXRhID0gc29ydEFnZW50cyhuZXdEYXRhKVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZGF0YTogc29ydGVkRGF0YSxcbiAgICAgICAgICBoYXNfbW9yZTogZGF0YS5oYXNfbW9yZSxcbiAgICAgICAgICBuZXh0X29mZnNldDogZGF0YS5uZXh0X29mZnNldCxcbiAgICAgICAgfVxuICAgICAgfSlcblxuICAgICAgc2V0TG9hZGluZ01vcmUoZmFsc2UpXG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBoYW5kbGVTbmFja2JhckVycm9yKHQoJ3NuYWNrYmFyLmxvYWRNb3JlQWdlbnRzLmVycm9yJykpXG4gICAgICBzZXRMb2FkaW5nTW9yZShmYWxzZSlcbiAgICB9XG4gIH0sIFtzZWN0aW9uLCBhZ2VudHMuaGFzX21vcmUsIGFnZW50cy5uZXh0X29mZnNldCwgbG9hZGluZ01vcmUsIGkxOG4ubGFuZ3VhZ2VdKVxuXG4gIHJldHVybiB7XG4gICAgYWdlbnRzLFxuICAgIGxvYWRpbmcsXG4gICAgbG9hZGluZ01vcmUsXG4gICAgZXJyb3IsXG4gICAgaGFuZGxlR2V0QWdlbnRzLFxuICAgIGxvYWRNb3JlQWdlbnRzLFxuICAgIHNlYXJjaEN1c3RvbUFnZW50cyxcbiAgICBzZWFyY2hMb2FkaW5nLFxuICAgIGFkZEFnZW50LFxuICAgIHJlbW92ZUFnZW50LFxuICAgIHVwZGF0ZUFnZW50LFxuICAgIHVwZGF0ZUFnZW50RmF2b3JpdGUsXG4gICAgc2VsZWN0Rmlyc3RBZ2VudCxcbiAgICBzb3J0QWdlbnRzTGlzdCxcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsUUFBUSxFQUFFQyxXQUFXLEVBQUVDLE1BQU0sUUFBUSxPQUFPO0FBQ3JELFNBQVNDLGNBQWMsUUFBUSxlQUFlO0FBQzlDLFNBQVNDLGtCQUFrQixRQUFRLHNEQUFzRDtBQUN6RixTQUFTQyxTQUFTLFFBQVEsV0FBVztBQUNyQyxTQUFTQyx3QkFBd0IsUUFBUSx5Q0FBeUM7QUFFbEYsU0FBU0MsT0FBTyxRQUFRLDJCQUEyQjtBQUNuRCxTQUFTQyw0QkFBNEIsUUFBUSx3Q0FBd0M7QUFFckYsU0FBU0MsVUFBVSxRQUFRLHFCQUFxQjtBQUNoRCxTQUFTQyxzQkFBc0IsRUFBRUMsa0JBQWtCLFFBQVEsb0NBQW9DO0FBRS9GLElBQU1DLFdBQVcsR0FBRyxTQUFkQSxXQUFXQSxDQUFJQyxLQUFZO0VBQUEsT0FBSyxDQUFBQSxLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRUMsSUFBSSxNQUFLLGNBQWM7QUFBQTtBQUVwRSxJQUFNQyxvQkFBb0IsR0FBRyxTQUF2QkEsb0JBQW9CQSxDQUFJQyxHQUFZLEVBQWM7RUFBQSxJQUFBQyxlQUFBLEVBQUFDLGNBQUEsRUFBQUMsZUFBQTtFQUN0RCxJQUFN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SyxDQUFDZ00sV0FBVyxDQUFDdk0sR0FBRyxDQUFDTyxFQUFFLENBQUNYLEVBQUUsQ0FBQztZQUFBLEVBQUM7WUFDbEYsSUFBTW1FLE9BQU8sTUFBQTlDLE1BQUEsQ0FBQW5CLGtCQUFBLENBQU82RCxJQUFJLENBQUNqQyxJQUFJLEdBQUE1QixrQkFBQSxDQUFLME0sU0FBUyxFQUFDOztZQUU1QztZQUNBLElBQU14SSxVQUFVLEdBQUc5RCxVQUFVLENBQUM2RCxPQUFPLENBQUM7WUFFdEMsT0FBTztjQUNMckMsSUFBSSxFQUFFc0MsVUFBVTtjQUNoQm9GLFFBQVEsRUFBRTFILElBQUksQ0FBQzBILFFBQVE7Y0FDdkJDLFdBQVcsRUFBRTNILElBQUksQ0FBQzJIO1lBQ3BCLENBQUM7VUFDSCxDQUFDLENBQUM7VUFFRmhILGNBQWMsQ0FBQyxLQUFLLENBQUM7VUFBQWdLLFNBQUEsQ0FBQXhELElBQUE7VUFBQTtRQUFBO1VBQUF3RCxTQUFBLENBQUExSSxJQUFBO1VBQUF5SSxHQUFBLEdBQUFDLFNBQUE7VUFFckJ2SixtQkFBbUIsQ0FBQ0UsQ0FBQyxDQUFDLCtCQUErQixDQUFDLENBQUM7VUFDdkRYLGNBQWMsQ0FBQyxLQUFLLENBQUM7UUFBQTtRQUFBO1VBQUEsT0FBQWdLLFNBQUEsQ0FBQXZDLElBQUE7TUFBQTtJQUFBLEdBQUFvQyxRQUFBO0VBQUEsQ0FFeEIsSUFBRSxDQUFDNUssT0FBTyxFQUFFbkIsTUFBTSxDQUFDaUosUUFBUSxFQUFFakosTUFBTSxDQUFDa0osV0FBVyxFQUFFakgsV0FBVyxFQUFFYSxJQUFJLENBQUNpRyxRQUFRLENBQUMsQ0FBQztFQUU5RSxPQUFPO0lBQ0wvSSxNQUFNLEVBQU5BLE1BQU07SUFDTjZCLE9BQU8sRUFBUEEsT0FBTztJQUNQSSxXQUFXLEVBQVhBLFdBQVc7SUFDWHBELEtBQUssRUFBTEEsS0FBSztJQUNMNkcsZUFBZSxFQUFmQSxlQUFlO0lBQ2ZvRyxjQUFjLEVBQWRBLGNBQWM7SUFDZFYsa0JBQWtCLEVBQWxCQSxrQkFBa0I7SUFDbEIvSSxhQUFhLEVBQWJBLGFBQWE7SUFDYmdCLFFBQVEsRUFBUkEsUUFBUTtJQUNSVyxXQUFXLEVBQVhBLFdBQVc7SUFDWEcsV0FBVyxFQUFYQSxXQUFXO0lBQ1hHLG1CQUFtQixFQUFuQkEsbUJBQW1CO0lBQ25CZ0IsZ0JBQWdCLEVBQWhCQSxnQkFBZ0I7SUFDaEJELGNBQWMsRUFBZEE7RUFDRixDQUFDO0FBQ0gsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
|
|
718
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwidXNlUmVmIiwidXNlVHJhbnNsYXRpb24iLCJ1c2VTbmFja0Jhck1hbmFnZXIiLCJmZXRjaE1haWEiLCJ3aXRoTm9ybWFsaXplZENvbm5lY3RvcnMiLCJ1c2VVc2VyIiwiaXNNYWlhQ2xvbmVBZ2VudHNSb2xlQmxvY2tlZCIsIm1hcENPUkxhbmciLCJpc01haWFBZ2VudCIsImFnZW50IiwidHlwZSIsImlzNDAzQWdlbnRGZXRjaEVycm9yIiwiZXJyIiwiX2Vycm9yJHJlc3BvbnNlIiwiX2Vycm9yJG1lc3NhZ2UiLCJfZXJyb3IkbWVzc2FnZTIiLCJlcnJvciIsInJlc3BvbnNlIiwic3RhdHVzIiwiQm9vbGVhbiIsIm1lc3NhZ2UiLCJpbmNsdWRlcyIsIm1lcmdlQWdlbnRzV2l0aG91dER1cGxpY2F0ZXMiLCJiYXNlIiwiZXh0cmEiLCJpZHMiLCJTZXQiLCJtYXAiLCJpZCIsIm1lcmdlZCIsIl90b0NvbnN1bWFibGVBcnJheSIsImZvckVhY2giLCJoYXMiLCJwdXNoIiwic29ydEFnZW50cyIsImFnZW50cyIsIm1haWFBZ2VudHMiLCJmaWx0ZXIiLCJvdGhlckFnZW50cyIsImFnIiwiZmF2b3JpdGVzIiwiaXNfZmF2b3JpdGUiLCJzb3J0IiwiYSIsImIiLCJuYW1lIiwibG9jYWxlQ29tcGFyZSIsIm5vbkZhdm9yaXRlcyIsImxlbmd0aCIsImNvbmNhdCIsIm5vcm1hbGl6ZUN1c3RvbUFnZW50c0Zyb21BcGkiLCJ1c2VHZXRBZ2VudHMiLCJfcmVmIiwic2VsZWN0QWdlbnQiLCJzZWN0aW9uIiwiaGFuZGxlR29Ib21lIiwidXNlciIsIl91c2VTdGF0ZSIsImRhdGEiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJzZXRBZ2VudHMiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImxvYWRpbmciLCJzZXRMb2FkaW5nIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJsb2FkaW5nTW9yZSIsInNldExvYWRpbmdNb3JlIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJzZWFyY2hMb2FkaW5nIiwic2V0U2VhcmNoTG9hZGluZyIsIl91c2VTdGF0ZTkiLCJfdXNlU3RhdGUwIiwic2V0RXJyb3IiLCJfdXNlU25hY2tCYXJNYW5hZ2VyIiwiaGFuZGxlU25hY2tiYXJFcnJvciIsIl91c2VUcmFuc2xhdGlvbiIsInQiLCJpMThuIiwibGFzdFNlbGVjdGVkQWdlbnRSZWYiLCJpc1JlZnJlc2hpbmdSZWYiLCJsYXN0UmVxdWVzdFJlZiIsImFnZW50c1JlZiIsInByZVNlYXJjaEFnZW50c1JlZiIsImN1cnJlbnQiLCJhZGRBZ2VudCIsIm5ld0FnZW50Iiwib3B0aW9ucyIsInByZXYiLCJhZ2VudEV4aXN0cyIsInNvbWUiLCJleGlzdGluZ0FnZW50IiwibmV3RGF0YSIsInNvcnRlZERhdGEiLCJfb2JqZWN0U3ByZWFkIiwibmF2aWdhdGVIb21lIiwicmVtb3ZlQWdlbnQiLCJhZ2VudElkIiwidG9TdHJpbmciLCJ1cGRhdGVBZ2VudCIsInVwZGF0ZWRBZ2VudCIsInVwZGF0ZWREYXRhIiwidXBkYXRlQWdlbnRGYXZvcml0ZSIsInNob3VsZFNvcnQiLCJhcmd1bWVudHMiLCJ1bmRlZmluZWQiLCJfcmVmMiIsImFnZW50RmllbGRzIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwiX2V4Y2x1ZGVkIiwibWVyZ2VkQWdlbnQiLCJmaW5hbERhdGEiLCJmaW5kIiwiX3JlZjMiLCJfZXhjbHVkZWQyIiwiX3JlZjQiLCJfZXhjbHVkZWQzIiwic29ydEFnZW50c0xpc3QiLCJzZWxlY3RGaXJzdEFnZW50IiwiZmlyc3RBZ2VudCIsImZpbmRJbmRleCIsImFnZW50RGF0YSIsImhhbmRsZUdldEFnZW50cyIsIl9yZWY1IiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWU0IiwiYWdlbnRUb1NlbGVjdCIsIl9hZ2VudFRvU2VsZWN0JGlkIiwicmVxdWVzdEtleSIsImlzTXVsdGlBZ2VudHMiLCJhZ2VudFBhcnNlZCIsImhhc01vcmUiLCJuZXh0T2Zmc2V0IiwiY2xvbmVBZ2VudHNSb2xlQmxvY2tlZCIsImNhbkZldGNoQ2xvbmVBZ2VudHMiLCJmZXRjaEdsb2JhbENsb25lQWdlbnRzIiwiY3VzdG9tQWdlbnRzIiwiY3VzdG9tSGFzTW9yZSIsImN1c3RvbU5leHRPZmZzZXQiLCJpczQwMyIsImxvYWRDbG9uZUFnZW50cyIsImxvYWRDdXN0b21BZ2VudHMiLCJxdWVyeVBhcmFtcyIsInF1ZXJ5U3RyaW5nIiwicGF0aCIsImdsb2JhbENsb25lQWdlbnRzIiwiX3Jlc3BvbnNlRXJyb3IkcmVzcG9uIiwiX3Jlc3BvbnNlRXJyb3IkbWVzc2FnIiwiX3Jlc3BvbnNlRXJyb3IkbWVzc2FnMiIsImlzNDAzRXJyb3IiLCJfYWdlbnRQYXJzZWQiLCJfYWdlbnRQYXJzZWQyIiwiX2xhc3RTZWxlY3RlZEFnZW50UmVmIiwiX2xhc3RTZWxlY3RlZEFnZW50UmVmMiIsImF2YWlsYWJsZUFnZW50cyIsIl9hdmFpbGFibGVBZ2VudHMiLCJfbGFzdFNlbGVjdGVkQWdlbnRSZWYzIiwiX2F2YWlsYWJsZUFnZW50czIiLCJfYXZhaWxhYmxlQWdlbnRzMyIsImZpcnN0QXZhaWxhYmxlQWdlbnQiLCJfdDQiLCJfdDUiLCJ3cmFwIiwiX2NvbnRleHQ0IiwibmV4dCIsImFicnVwdCIsIndpbmRvdyIsIk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTUyIsIk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFMiLCJfcmVmNiIsIl9jYWxsZWUiLCJjbG9uZVJlc3BvbnNlIiwiY2xvbmVEYXRhIiwiX3QiLCJfY29udGV4dCIsImxhbmd1YWdlIiwibWV0aG9kIiwic2VudCIsImpzb24iLCJzdG9wIiwiYXBwbHkiLCJfcmVmNyIsIl9jYWxsZWUyIiwiX21haWFEYXRhJGRhdGEiLCJtYWlhUmVzcG9uc2UiLCJtYWlhRGF0YSIsIl90MiIsIl9jb250ZXh0MiIsIl9yZWY4IiwiX2NhbGxlZTMiLCJjdXN0b21SZXNwb25zZSIsImN1c3RvbURhdGEiLCJfdDMiLCJfY29udGV4dDMiLCJoYXNfbW9yZSIsIm5leHRfb2Zmc2V0IiwiUHJvbWlzZSIsImFsbCIsIlVSTFNlYXJjaFBhcmFtcyIsImFwcGVuZCIsImFnZW50VG9SZXF1ZXN0IiwiYWdlbnRJdGVtIiwiRXJyb3IiLCJzZXRUaW1lb3V0IiwiZmluaXNoIiwiX3giLCJzZWFyY2hDdXN0b21BZ2VudHMiLCJfcmVmOSIsIl9jYWxsZWU1IiwicXVlcnkiLCJfdDYiLCJfY29udGV4dDUiLCJlbmNvZGVVUklDb21wb25lbnQiLCJjbG9uZUFnZW50cyIsImN1c3RvbVJlc3VsdHMiLCJfeDIiLCJsb2FkTW9yZUFnZW50cyIsIl9jYWxsZWU2IiwiY2FuTG9hZE1vcmUiLCJfdDciLCJfY29udGV4dDYiLCJleGlzdGluZ01haWFBZ2VudHMiLCJleGlzdGluZ0lkcyIsIm5ld0FnZW50cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9tYWlhL0FnZW50cy9nZXRBZ2VudHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1uZXN0ZWQtdGVybmFyeSAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tY29uc29sZSAqL1xuaW1wb3J0IHsgdXNlU3RhdGUsIHVzZUNhbGxiYWNrLCB1c2VSZWYgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCdcbmltcG9ydCB7IHVzZVNuYWNrQmFyTWFuYWdlciB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVNuYWNrQmFyTWFuYWdlci91c2VTbmFja0Jhck1hbmFnZXInXG5pbXBvcnQgeyBmZXRjaE1haWEgfSBmcm9tICcuLi9jbGllbnQnXG5pbXBvcnQgeyB3aXRoTm9ybWFsaXplZENvbm5lY3RvcnMgfSBmcm9tICcuLi8uLi8uLi91dGlscy9ub3JtYWxpemVBZ2VudENvbm5lY3RvcnMnXG5pbXBvcnQgeyBBZ2VudCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2FnZW50J1xuaW1wb3J0IHsgdXNlVXNlciB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvY29yLXVzZXInXG5pbXBvcnQgeyBpc01haWFDbG9uZUFnZW50c1JvbGVCbG9ja2VkIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL21haWFUYXNrUGFuZWxBY2Nlc3MnXG5pbXBvcnQgeyBTZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9nbG9iYWwtY29udGV4dCdcbmltcG9ydCB7IG1hcENPUkxhbmcgfSBmcm9tICcuLi8uLi8uLi9sYW5nL3V0aWxzJ1xuXG5jb25zdCBpc01haWFBZ2VudCA9IChhZ2VudDogQWdlbnQpID0+IGFnZW50Py50eXBlID09PSAnb3JjaGVzdHJhdG9yJ1xuXG5jb25zdCBpczQwM0FnZW50RmV0Y2hFcnJvciA9IChlcnI6IHVua25vd24pOiBib29sZWFuID0+IHtcbiAgY29uc3QgZXJyb3IgPSBlcnIgYXMgeyByZXNwb25zZT86IHsgc3RhdHVzPzogbnVtYmVyIH07IHN0YXR1cz86IG51bWJlcjsgbWVzc2FnZT86IHN0cmluZyB9XG4gIHJldHVybiAoXG4gICAgZXJyb3I/LnJlc3BvbnNlPy5zdGF0dXMgPT09IDQwMyB8fFxuICAgIGVycm9yPy5zdGF0dXMgPT09IDQwMyB8fFxuICAgIEJvb2xlYW4oZXJyb3I/Lm1lc3NhZ2U/LmluY2x1ZGVzKFwiWW91IGRvbid0IGhhdmUgcGVybWlzc2lvbiB0byB2aWV3IGFnZW50c1wiKSkgfHxcbiAgICBCb29sZWFuKGVycm9yPy5tZXNzYWdlPy5pbmNsdWRlcygnRmFpbGVkIGZldGNoaW5nIGRhdGEnKSlcbiAgKVxufVxuXG5jb25zdCBtZXJnZUFnZW50c1dpdGhvdXREdXBsaWNhdGVzID0gKGJhc2U6IEFnZW50W10sIGV4dHJhOiBBZ2VudFtdKTogQWdlbnRbXSA9PiB7XG4gIGNvbnN0IGlkcyA9IG5ldyBTZXQoYmFzZS5tYXAoYWdlbnQgPT4gYWdlbnQuaWQpKVxuICBjb25zdCBtZXJnZWQgPSBbLi4uYmFzZV1cbiAgZXh0cmEuZm9yRWFjaChhZ2VudCA9PiB7XG4gICAgaWYgKCFpZHMuaGFzKGFnZW50LmlkKSkgbWVyZ2VkLnB1c2goYWdlbnQpXG4gIH0pXG4gIHJldHVybiBtZXJnZWRcbn1cblxuLyoqXG4gKiBPcmRlbmEgbG9zIGFnZW50ZXM6IE1BSUEgcHJpbWVybyAoc2kgZXhpc3RlKSwgbHVlZ28gZmF2b3JpdG9zIGFsZmFiw6l0aWNhbWVudGUsIGx1ZWdvIG5vIGZhdm9yaXRvcyBhbGZhYsOpdGljYW1lbnRlXG4gKi9cbmNvbnN0IHNvcnRBZ2VudHMgPSAoYWdlbnRzOiBBZ2VudFtdKTogQWdlbnRbXSA9PiB7XG4gIGNvbnN0IG1haWFBZ2VudHMgPSBhZ2VudHMuZmlsdGVyKGlzTWFpYUFnZW50KVxuICBjb25zdCBvdGhlckFnZW50cyA9IGFnZW50cy5maWx0ZXIoYWcgPT4gIWlzTWFpYUFnZW50KGFnKSlcblxuICAvLyBTZXBhcmFyIGZhdm9yaXRvcyB5IG5vIGZhdm9yaXRvc1xuICBjb25zdCBmYXZvcml0ZXMgPSBvdGhlckFnZW50cy5maWx0ZXIoYWcgPT4gYWcuaXNfZmF2b3JpdGUpLnNvcnQoKGEsIGIpID0+IGEubmFtZS5sb2NhbGVDb21wYXJlKGIubmFtZSkpXG4gIGNvbnN0IG5vbkZhdm9yaXRlcyA9IG90aGVyQWdlbnRzLmZpbHRlcihhZyA9PiAhYWcuaXNfZmF2b3JpdGUpLnNvcnQoKGEsIGIpID0+IGEubmFtZS5sb2NhbGVDb21wYXJlKGIubmFtZSkpXG5cbiAgcmV0dXJuIG1haWFBZ2VudHMubGVuZ3RoID8gWy4uLm1haWFBZ2VudHMsIC4uLmZhdm9yaXRlcywgLi4ubm9uRmF2b3JpdGVzXSA6IFsuLi5mYXZvcml0ZXMsIC4uLm5vbkZhdm9yaXRlc11cbn1cblxuY29uc3Qgbm9ybWFsaXplQ3VzdG9tQWdlbnRzRnJvbUFwaSA9IChhZ2VudHM6IEFnZW50W10pOiBBZ2VudFtdID0+XG4gIGFnZW50cy5tYXAoYWdlbnQgPT4gKGFnZW50LnR5cGUgPT09ICdjdXN0b20nID8gd2l0aE5vcm1hbGl6ZWRDb25uZWN0b3JzKGFnZW50KSA6IGFnZW50KSlcblxudHlwZSBVc2VHZXRBZ2VudHNQcm9wcyA9IHtcbiAgc2VsZWN0QWdlbnQ6IChhZ2VudDogQWdlbnQpID0+IHZvaWRcbiAgc2VjdGlvbjogU2VjdGlvblxuICBhZ2VudDogQWdlbnQgfCBudWxsXG4gIGhhbmRsZUdvSG9tZTogKCkgPT4gdm9pZFxufVxuXG5leHBvcnQgdHlwZSBBZGRBZ2VudE9wdGlvbnMgPSB7XG4gIC8qKiBQb3IgZGVmZWN0byBgdHJ1ZWAgKGNvbXBvcnRhbWllbnRvIEFCTSkuIFBhc2FyIGBmYWxzZWAgYWwgaW5zZXJ0YXIgYWdlbnRlIGNyZWFkbyBwb3IgY2hhdCBzaW4gY2FtYmlhciBkZSB2aXN0YS4gKi9cbiAgbmF2aWdhdGVIb21lPzogYm9vbGVhblxufVxuXG5leHBvcnQgY29uc3QgdXNlR2V0QWdlbnRzID0gKHsgc2VsZWN0QWdlbnQsIHNlY3Rpb24sIGFnZW50LCBoYW5kbGVHb0hvbWUgfTogVXNlR2V0QWdlbnRzUHJvcHMpID0+IHtcbiAgY29uc3QgdXNlciA9IHVzZVVzZXIoKVxuICBjb25zdCBbYWdlbnRzLCBzZXRBZ2VudHNdID0gdXNlU3RhdGU8eyBkYXRhOiBBZ2VudFtdOyBoYXNfbW9yZT86IGJvb2xlYW47IG5leHRfb2Zmc2V0PzogbnVtYmVyIHwgbnVsbCB9Pih7IGRhdGE6IFtdIH0pXG4gIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbbG9hZGluZ01vcmUsIHNldExvYWRpbmdNb3JlXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbc2VhcmNoTG9hZGluZywgc2V0U2VhcmNoTG9hZGluZ10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2Vycm9yLCBzZXRFcnJvcl0gPSB1c2VTdGF0ZTxzdHJpbmcgfCBudWxsPihudWxsKVxuICBjb25zdCB7IGhhbmRsZVNuYWNrYmFyRXJyb3IgfSA9IHVzZVNuYWNrQmFyTWFuYWdlcigpXG4gIGNvbnN0IHsgdCwgaTE4biB9ID0gdXNlVHJhbnNsYXRpb24oJ2NoYXRfYWlfc2VjdGlvbicpXG4gIGNvbnN0IGxhc3RTZWxlY3RlZEFnZW50UmVmID0gdXNlUmVmPEFnZW50IHwgbnVsbD4obnVsbClcbiAgY29uc3QgaXNSZWZyZXNoaW5nUmVmID0gdXNlUmVmKGZhbHNlKVxuICBjb25zdCBsYXN0UmVxdWVzdFJlZiA9IHVzZVJlZjxzdHJpbmcgfCBudWxsPihudWxsKVxuICBjb25zdCBhZ2VudHNSZWYgPSB1c2VSZWYoYWdlbnRzKVxuICBjb25zdCBwcmVTZWFyY2hBZ2VudHNSZWYgPSB1c2VSZWY8eyBkYXRhOiBBZ2VudFtdOyBoYXNfbW9yZT86IGJvb2xlYW47IG5leHRfb2Zmc2V0PzogbnVtYmVyIHwgbnVsbCB9IHwgbnVsbD4obnVsbClcblxuICBhZ2VudHNSZWYuY3VycmVudCA9IGFnZW50c1xuXG4gIGNvbnN0IGFkZEFnZW50ID0gdXNlQ2FsbGJhY2soXG4gICAgKG5ld0FnZW50OiBBZ2VudCwgb3B0aW9ucz86IEFkZEFnZW50T3B0aW9ucykgPT4ge1xuICAgICAgc2V0QWdlbnRzKHByZXYgPT4ge1xuICAgICAgICAvLyBWZXJpZmljYXIgc2kgZWwgYWdlbnRlIHlhIGV4aXN0ZSBwYXJhIGV2aXRhciBkdXBsaWNhZG9zXG4gICAgICAgIGNvbnN0IGFnZW50RXhpc3RzID0gcHJldi5kYXRhLnNvbWUoZXhpc3RpbmdBZ2VudCA9PiBleGlzdGluZ0FnZW50LmlkID09PSBuZXdBZ2VudC5pZClcbiAgICAgICAgaWYgKGFnZW50RXhpc3RzKSB7XG4gICAgICAgICAgcmV0dXJuIHByZXZcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuZXdEYXRhID0gWy4uLnByZXYuZGF0YSwgbmV3QWdlbnRdXG4gICAgICAgIGNvbnN0IHNvcnRlZERhdGEgPSBzb3J0QWdlbnRzKG5ld0RhdGEpXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4ucHJldixcbiAgICAgICAgICBkYXRhOiBzb3J0ZWREYXRhLFxuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgaWYgKG9wdGlvbnM/Lm5hdmlnYXRlSG9tZSAhPT0gZmFsc2UpIHtcbiAgICAgICAgaGFuZGxlR29Ib21lKClcbiAgICAgIH1cbiAgICB9LFxuICAgIFtoYW5kbGVHb0hvbWVdXG4gIClcblxuICBjb25zdCByZW1vdmVBZ2VudCA9IHVzZUNhbGxiYWNrKChhZ2VudElkOiBudW1iZXIgfCBzdHJpbmcpID0+IHtcbiAgICBzZXRBZ2VudHMocHJldiA9PiAoe1xuICAgICAgLi4ucHJldixcbiAgICAgIGRhdGE6IHByZXYuZGF0YS5maWx0ZXIoYSA9PiBhLmlkICE9PSBhZ2VudElkLnRvU3RyaW5nKCkpLFxuICAgIH0pKVxuICB9LCBbXSlcblxuICBjb25zdCB1cGRhdGVBZ2VudCA9IHVzZUNhbGxiYWNrKCh1cGRhdGVkQWdlbnQ6IEFnZW50KSA9PiB7XG4gICAgc2V0QWdlbnRzKHByZXYgPT4ge1xuICAgICAgY29uc3QgdXBkYXRlZERhdGEgPSBwcmV2LmRhdGEubWFwKGV4aXN0aW5nQWdlbnQgPT5cbiAgICAgICAgZXhpc3RpbmdBZ2VudC5pZCA9PT0gdXBkYXRlZEFnZW50LmlkID8gdXBkYXRlZEFnZW50IDogZXhpc3RpbmdBZ2VudFxuICAgICAgKVxuICAgICAgY29uc3Qgc29ydGVkRGF0YSA9IHNvcnRBZ2VudHModXBkYXRlZERhdGEpXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5wcmV2LFxuICAgICAgICBkYXRhOiBzb3J0ZWREYXRhLFxuICAgICAgfVxuICAgIH0pXG4gIH0sIFtdKVxuXG4gIGNvbnN0IHVwZGF0ZUFnZW50RmF2b3JpdGUgPSB1c2VDYWxsYmFjayhcbiAgICAodXBkYXRlZEFnZW50OiBBZ2VudCwgc2hvdWxkU29ydDogYm9vbGVhbiA9IGZhbHNlKSA9PiB7XG4gICAgICBzZXRBZ2VudHMocHJldiA9PiB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWREYXRhID0gcHJldi5kYXRhLm1hcChleGlzdGluZ0FnZW50ID0+IHtcbiAgICAgICAgICBpZiAoZXhpc3RpbmdBZ2VudC5pZCA9PT0gdXBkYXRlZEFnZW50LmlkKSB7XG4gICAgICAgICAgICBjb25zdCB7IG1lc3NhZ2UsIC4uLmFnZW50RmllbGRzIH0gPSB1cGRhdGVkQWdlbnQgYXMgYW55XG4gICAgICAgICAgICBjb25zdCBtZXJnZWRBZ2VudCA9IHsgLi4uZXhpc3RpbmdBZ2VudCwgLi4uYWdlbnRGaWVsZHMgfVxuICAgICAgICAgICAgcmV0dXJuIG1lcmdlZEFnZW50XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBleGlzdGluZ0FnZW50XG4gICAgICAgIH0pXG5cbiAgICAgICAgLy8gU29sbyBvcmRlbmFyIHNpIHNob3VsZFNvcnQgZXMgdHJ1ZVxuICAgICAgICBjb25zdCBmaW5hbERhdGEgPSBzaG91bGRTb3J0ID8gc29ydEFnZW50cyh1cGRhdGVkRGF0YSkgOiB1cGRhdGVkRGF0YVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4ucHJldixcbiAgICAgICAgICBkYXRhOiBmaW5hbERhdGEsXG4gICAgICAgIH1cbiAgICAgIH0pXG5cbiAgICAgIC8vIEFjdHVhbGl6YXIgZWwgYWdlbnRlIHNlbGVjY2lvbmFkbyBzaSBlcyBlbCBxdWUgc2UgZXN0w6EgYWN0dWFsaXphbmRvXG4gICAgICBpZiAoYWdlbnQ/LmlkID09PSB1cGRhdGVkQWdlbnQuaWQpIHtcbiAgICAgICAgY29uc3QgZXhpc3RpbmdBZ2VudCA9IGFnZW50cy5kYXRhLmZpbmQoYSA9PiBhLmlkID09PSB1cGRhdGVkQWdlbnQuaWQpXG4gICAgICAgIGlmIChleGlzdGluZ0FnZW50KSB7XG4gICAgICAgICAgY29uc3QgeyBtZXNzYWdlLCAuLi5hZ2VudEZpZWxkcyB9ID0gdXBkYXRlZEFnZW50IGFzIGFueVxuICAgICAgICAgIGNvbnN0IG1lcmdlZEFnZW50ID0geyAuLi5leGlzdGluZ0FnZW50LCAuLi5hZ2VudEZpZWxkcyB9XG4gICAgICAgICAgc2VsZWN0QWdlbnQobWVyZ2VkQWdlbnQpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgeyBtZXNzYWdlLCAuLi5hZ2VudEZpZWxkcyB9ID0gdXBkYXRlZEFnZW50IGFzIGFueVxuICAgICAgICAgIHNlbGVjdEFnZW50KGFnZW50RmllbGRzIGFzIEFnZW50KVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBbYWdlbnQsIHNlbGVjdEFnZW50LCBhZ2VudHMuZGF0YV1cbiAgKVxuXG4gIGNvbnN0IHNvcnRBZ2VudHNMaXN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldEFnZW50cyhwcmV2ID0+IHtcbiAgICAgIGNvbnN0IHNvcnRlZERhdGEgPSBzb3J0QWdlbnRzKHByZXYuZGF0YSlcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnByZXYsXG4gICAgICAgIGRhdGE6IHNvcnRlZERhdGEsXG4gICAgICB9XG4gICAgfSlcbiAgfSwgW10pXG5cbiAgY29uc3Qgc2VsZWN0Rmlyc3RBZ2VudCA9IHVzZUNhbGxiYWNrKFxuICAgIChhZ2VudElkPzogc3RyaW5nKSA9PiB7XG4gICAgICBpZiAoYWdlbnRzLmRhdGEubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IGZpcnN0QWdlbnQgPSBhZ2VudHMuZGF0YS5maW5kSW5kZXgoYWdlbnREYXRhID0+IGFnZW50RGF0YS5pZCA9PT0gYWdlbnRJZClcbiAgICAgICAgbGFzdFNlbGVjdGVkQWdlbnRSZWYuY3VycmVudCA9IGFnZW50cy5kYXRhW2ZpcnN0QWdlbnQgPT09IDAgPyAxIDogMF1cbiAgICAgICAgc2VsZWN0QWdlbnQoYWdlbnRzLmRhdGFbZmlyc3RBZ2VudCA9PT0gMCA/IDEgOiAwXSlcbiAgICAgIH1cbiAgICB9LFxuICAgIFthZ2VudHMuZGF0YSwgc2VsZWN0QWdlbnRdXG4gIClcblxuICBjb25zdCBoYW5kbGVHZXRBZ2VudHMgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAoYWdlbnRUb1NlbGVjdD86IEFnZW50KSA9PiB7XG4gICAgICBpZiAoaXNSZWZyZXNoaW5nUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlcXVlc3RLZXkgPSBhZ2VudFRvU2VsZWN0Py5pZD8udG9TdHJpbmcoKSB8fCAnZGVmYXVsdCdcbiAgICAgIGlmIChsYXN0UmVxdWVzdFJlZi5jdXJyZW50ID09PSByZXF1ZXN0S2V5ICYmICFsb2FkaW5nKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBpc1JlZnJlc2hpbmdSZWYuY3VycmVudCA9IHRydWVcbiAgICAgIGxhc3RSZXF1ZXN0UmVmLmN1cnJlbnQgPSByZXF1ZXN0S2V5XG4gICAgICBzZXRMb2FkaW5nKHRydWUpXG4gICAgICBzZXRFcnJvcihudWxsKVxuXG4gICAgICBjb25zdCBpc011bHRpQWdlbnRzID0gISF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTICYmICEhd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFNcblxuICAgICAgdHJ5IHtcbiAgICAgICAgbGV0IGFnZW50UGFyc2VkOiBBZ2VudFtdID0gW11cbiAgICAgICAgbGV0IGhhc01vcmUgPSBmYWxzZVxuICAgICAgICBsZXQgbmV4dE9mZnNldDogbnVtYmVyIHwgbnVsbCA9IG51bGxcbiAgICAgICAgY29uc3QgY2xvbmVBZ2VudHNSb2xlQmxvY2tlZCA9IGlzTWFpYUNsb25lQWdlbnRzUm9sZUJsb2NrZWQodXNlciwgc2VjdGlvbilcbiAgICAgICAgY29uc3QgY2FuRmV0Y2hDbG9uZUFnZW50cyA9ICFjbG9uZUFnZW50c1JvbGVCbG9ja2VkXG5cbiAgICAgICAgY29uc3QgZmV0Y2hHbG9iYWxDbG9uZUFnZW50cyA9IGFzeW5jICgpOiBQcm9taXNlPEFnZW50W10+ID0+IHtcbiAgICAgICAgICBpZiAoIXdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1NfTVVMVElfQUdFTlRTIHx8ICFjYW5GZXRjaENsb25lQWdlbnRzKSByZXR1cm4gW11cbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgY2xvbmVSZXNwb25zZSA9IGF3YWl0IGZldGNoTWFpYSh7XG4gICAgICAgICAgICAgIHBhdGg6IGBhZ2VudHM/YWdlbnRfdHlwZT1jbG9uZSZlbnRpdHk9Z2xvYmFsJmxhbmc9JHttYXBDT1JMYW5nKGkxOG4ubGFuZ3VhZ2UpfWAsXG4gICAgICAgICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgY29uc3QgY2xvbmVEYXRhID0gYXdhaXQgY2xvbmVSZXNwb25zZS5qc29uKClcbiAgICAgICAgICAgIHJldHVybiAoY2xvbmVEYXRhLmRhdGEgfHwgW10pLmZpbHRlcigoYWc6IEFnZW50KSA9PiBhZy50eXBlID09PSAnY2xvbmUnKVxuICAgICAgICAgIH0gY2F0Y2ggKGNsb25lRXJyb3IpIHtcbiAgICAgICAgICAgIGlmIChpczQwM0FnZW50RmV0Y2hFcnJvcihjbG9uZUVycm9yKSkgcmV0dXJuIFtdXG4gICAgICAgICAgICB0aHJvdyBjbG9uZUVycm9yXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2kgdGllbmUgZmVhdHVyZSBhY2Nlc3MgbXVsdGkgYWdlbnRzLCBoYWNlciBkb3MgcXVlcmllcyAoTWFpYSArIGN1c3RvbSkgZW4gY3VhbHF1aWVyIHNlY2Npw7NuXG4gICAgICAgIGlmIChpc011bHRpQWdlbnRzKSB7XG4gICAgICAgICAgLy8gUXVlcnkgY2xvbmUgKE1haWEpIHkgY3VzdG9tIHNvbiBpbmRlcGVuZGllbnRlcyDihpIgc2UgZGlzcGFyYW4gZW4gcGFyYWxlbG8uXG4gICAgICAgICAgbGV0IGN1c3RvbUFnZW50czogQWdlbnRbXSA9IFtdXG4gICAgICAgICAgbGV0IGN1c3RvbUhhc01vcmUgPSBmYWxzZVxuICAgICAgICAgIGxldCBjdXN0b21OZXh0T2Zmc2V0OiBudW1iZXIgfCBudWxsID0gbnVsbFxuXG4gICAgICAgICAgY29uc3QgaXM0MDMgPSBpczQwM0FnZW50RmV0Y2hFcnJvclxuXG4gICAgICAgICAgbGV0IG1haWFBZ2VudHM6IEFnZW50W10gPSBbXVxuXG4gICAgICAgICAgY29uc3QgbG9hZENsb25lQWdlbnRzID0gYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCFjYW5GZXRjaENsb25lQWdlbnRzKSByZXR1cm5cbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGNvbnN0IG1haWFSZXNwb25zZSA9IGF3YWl0IGZldGNoTWFpYSh7XG4gICAgICAgICAgICAgICAgcGF0aDogYGFnZW50cz9hZ2VudF90eXBlPW9yY2hlc3RyYXRvciZsYW5nPSR7bWFwQ09STGFuZyhpMThuLmxhbmd1YWdlKX1gLFxuICAgICAgICAgICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIGNvbnN0IG1haWFEYXRhID0gYXdhaXQgbWFpYVJlc3BvbnNlLmpzb24oKVxuICAgICAgICAgICAgICBtYWlhQWdlbnRzID0gbWFpYURhdGEuZGF0YT8uZmlsdGVyKGlzTWFpYUFnZW50KSB8fCBbXVxuICAgICAgICAgICAgICBjb25zdCBnbG9iYWxDbG9uZUFnZW50cyA9IGF3YWl0IGZldGNoR2xvYmFsQ2xvbmVBZ2VudHMoKVxuICAgICAgICAgICAgICBtYWlhQWdlbnRzID0gbWVyZ2VBZ2VudHNXaXRob3V0RHVwbGljYXRlcyhtYWlhQWdlbnRzLCBnbG9iYWxDbG9uZUFnZW50cylcbiAgICAgICAgICAgIH0gY2F0Y2ggKG1haWFFcnJvcjogdW5rbm93bikge1xuICAgICAgICAgICAgICAvLyBTaSBlcyA0MDMsIGNvbnRpbnVhciBzaW4gbG9zIGNsb25lQWdlbnRzOyBzaSBlcyBvdHJvIGVycm9yLCBwcm9wYWdhcmxvXG4gICAgICAgICAgICAgIGlmICghaXM0MDMobWFpYUVycm9yKSkgdGhyb3cgbWFpYUVycm9yXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgbG9hZEN1c3RvbUFnZW50cyA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGNvbnN0IGN1c3RvbVJlc3BvbnNlID0gYXdhaXQgZmV0Y2hNYWlhKHtcbiAgICAgICAgICAgICAgICBwYXRoOiAnYWdlbnRzP2FnZW50X3R5cGU9Y3VzdG9tJmxpbWl0PTcmb2Zmc2V0PTAnLFxuICAgICAgICAgICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIGNvbnN0IGN1c3RvbURhdGEgPSBhd2FpdCBjdXN0b21SZXNwb25zZS5qc29uKClcbiAgICAgICAgICAgICAgY3VzdG9tQWdlbnRzID0gbm9ybWFsaXplQ3VzdG9tQWdlbnRzRnJvbUFwaShjdXN0b21EYXRhLmRhdGEgfHwgW10pXG4gICAgICAgICAgICAgIGN1c3RvbUhhc01vcmUgPSBjdXN0b21EYXRhLmhhc19tb3JlIHx8IGZhbHNlXG4gICAgICAgICAgICAgIGN1c3RvbU5leHRPZmZzZXQgPSBjdXN0b21EYXRhLm5leHRfb2Zmc2V0IHx8IG51bGxcbiAgICAgICAgICAgIH0gY2F0Y2ggKGN1c3RvbUVycm9yOiBhbnkpIHtcbiAgICAgICAgICAgICAgLy8gU2kgZXMgNDAzLCBjb250aW51YXIgc2luIGxvcyBjdXN0b21BZ2VudHMgKHF1ZWRhIGNvbW8gYXJyYXkgdmFjw61vKTsgc2kgbm8sIHByb3BhZ2FybG9cbiAgICAgICAgICAgICAgaWYgKCFpczQwMyhjdXN0b21FcnJvcikpIHRocm93IGN1c3RvbUVycm9yXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoW2xvYWRDbG9uZUFnZW50cygpLCBsb2FkQ3VzdG9tQWdlbnRzKCldKVxuXG4gICAgICAgICAgLy8gQ29tYmluYXI6IGFnZW50ZXMgY2xvbmUgcHJpbWVybywgbHVlZ28gbG9zIGN1c3RvbSAoc2kgZXhpc3RlbilcbiAgICAgICAgICAvLyBTaSBlbCB1c3VhcmlvIHRpZW5lIHVuIHJvbCBkZXNoYWJpbGl0YWRvLCBubyBpbmNsdWlyIGNsb25lQWdlbnRzXG4gICAgICAgICAgaWYgKCFjYW5GZXRjaENsb25lQWdlbnRzKSB7XG4gICAgICAgICAgICAvLyBSb2wgc2luIGFjY2VzbyBhIGNsb25lcyAocC4gZWouIGZyZWVsYW5jZXIvY2xpZW50ZSBvIGNvbGFib3JhZG9yIGVuIHByb2plY3QvY2xpZW50KTogc29sbyBjdXN0b21BZ2VudHNcbiAgICAgICAgICAgIC8vIFNpIGN1c3RvbUFnZW50cyBlc3TDoSB2YWPDrW8gKHBvciA0MDMpLCBhZ2VudFBhcnNlZCBzZXLDoSBbXVxuICAgICAgICAgICAgYWdlbnRQYXJzZWQgPSBjdXN0b21BZ2VudHNcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYWdlbnRQYXJzZWQgPSBtYWlhQWdlbnRzLmxlbmd0aCA/IFsuLi5tYWlhQWdlbnRzLCAuLi5jdXN0b21BZ2VudHNdIDogY3VzdG9tQWdlbnRzXG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIE9yZGVuYXI6IE1haWEgcHJpbWVybywgbHVlZ28gZmF2b3JpdG9zIGFsZmFiw6l0aWNhbWVudGUsIGx1ZWdvIG5vIGZhdm9yaXRvcyBhbGZhYsOpdGljYW1lbnRlXG4gICAgICAgICAgYWdlbnRQYXJzZWQgPSBzb3J0QWdlbnRzKGFnZW50UGFyc2VkKVxuICAgICAgICAgIGhhc01vcmUgPSBjdXN0b21IYXNNb3JlXG4gICAgICAgICAgbmV4dE9mZnNldCA9IGN1c3RvbU5leHRPZmZzZXRcblxuICAgICAgICAgIHNldEFnZW50cyh7XG4gICAgICAgICAgICBkYXRhOiBhZ2VudFBhcnNlZCxcbiAgICAgICAgICAgIGhhc19tb3JlOiBoYXNNb3JlLFxuICAgICAgICAgICAgbmV4dF9vZmZzZXQ6IG5leHRPZmZzZXQsXG4gICAgICAgICAgfSlcblxuICAgICAgICAgIC8vIFNpIG5vIGhheSBhZ2VudGVzIGRlc3B1w6lzIGRlIHByb2Nlc2FyIGxhcyBxdWVyaWVzLCBsaW1waWFyIGVsIGVycm9yXG4gICAgICAgICAgaWYgKGFnZW50UGFyc2VkLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgc2V0RXJyb3IobnVsbClcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gTMOzZ2ljYSBwYXJhIHByb2plY3QsIGNsaWVudCBvIGhlYWRlciBzaW4gbXVsdGlBZ2VudHMgKG1pc21vIGNyaXRlcmlvIGRlIG9yZGVuIHByb2plY3QvY2xpZW50OyBoZWFkZXIgYcOxYWRlIHBhZ2luYWNpw7NuKVxuICAgICAgICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpXG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgc2VjdGlvbiA9PT0gJ3Byb2plY3QnIHx8XG4gICAgICAgICAgICBzZWN0aW9uID09PSAnY2xpZW50JyB8fFxuICAgICAgICAgICAgc2VjdGlvbiA9PT0gJ2hlYWRlcicgfHxcbiAgICAgICAgICAgIHNlY3Rpb24gPT09ICd0YXNrJyB8fFxuICAgICAgICAgICAgc2VjdGlvbiA9PT0gJ3BsYW5uZXInXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBxdWVyeVBhcmFtcy5hcHBlbmQoJ2FnZW50X3R5cGUnLCAnb3JjaGVzdHJhdG9yJylcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnbGFuZycsIG1hcENPUkxhbmcoaTE4bi5sYW5ndWFnZSkpXG4gICAgICAgICAgICBpZiAoc2VjdGlvbiA9PT0gJ2hlYWRlcicpIHtcbiAgICAgICAgICAgICAgcXVlcnlQYXJhbXMuYXBwZW5kKCdsaW1pdCcsICc3JylcbiAgICAgICAgICAgICAgcXVlcnlQYXJhbXMuYXBwZW5kKCdvZmZzZXQnLCAnMCcpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgcXVlcnlTdHJpbmcgPSBxdWVyeVBhcmFtcy50b1N0cmluZygpXG4gICAgICAgICAgY29uc3QgcGF0aCA9IGBhZ2VudHMke3F1ZXJ5U3RyaW5nID8gYD8ke3F1ZXJ5U3RyaW5nfWAgOiAnJ31gXG5cbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaE1haWEoe1xuICAgICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKVxuICAgICAgICAgICAgLy8gZGF0YS5kYXRhIHlhIGNvbnRpZW5lIGVsL2xvcyBhZ2VudGVzIG9ycXVlc3RhZG9yZXMgZGUgbGEgcXVlcnkgYWdlbnRfdHlwZT1vcmNoZXN0cmF0b3JcbiAgICAgICAgICAgIGFnZW50UGFyc2VkID0gZGF0YS5kYXRhIHx8IFtdXG4gICAgICAgICAgICBjb25zdCBnbG9iYWxDbG9uZUFnZW50cyA9IGF3YWl0IGZldGNoR2xvYmFsQ2xvbmVBZ2VudHMoKVxuICAgICAgICAgICAgYWdlbnRQYXJzZWQgPSBtZXJnZUFnZW50c1dpdGhvdXREdXBsaWNhdGVzKGFnZW50UGFyc2VkLCBnbG9iYWxDbG9uZUFnZW50cylcbiAgICAgICAgICAgIC8vIE9yZGVuYXI6IE1haWEgcHJpbWVybywgbHVlZ28gZmF2b3JpdG9zIGFsZmFiw6l0aWNhbWVudGUsIGx1ZWdvIG5vIGZhdm9yaXRvcyBhbGZhYsOpdGljYW1lbnRlXG4gICAgICAgICAgICBhZ2VudFBhcnNlZCA9IHNvcnRBZ2VudHMoYWdlbnRQYXJzZWQpXG4gICAgICAgICAgICBoYXNNb3JlID0gZGF0YS5oYXNfbW9yZVxuICAgICAgICAgICAgbmV4dE9mZnNldCA9IGRhdGEubmV4dF9vZmZzZXRcblxuICAgICAgICAgICAgc2V0QWdlbnRzKHtcbiAgICAgICAgICAgICAgLi4uZGF0YSxcbiAgICAgICAgICAgICAgZGF0YTogYWdlbnRQYXJzZWQsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH0gY2F0Y2ggKHJlc3BvbnNlRXJyb3I6IGFueSkge1xuICAgICAgICAgICAgLy8gVmVyaWZpY2FyIHNpIGVsIGVycm9yIGVzIDQwM1xuICAgICAgICAgICAgLy8gZmV0Y2hDT1IgcHVlZGUgbGFuemFyIGRpZmVyZW50ZXMgdGlwb3MgZGUgZXJyb3JlczpcbiAgICAgICAgICAgIC8vIDEuIEVycm9yIGNvbiBlcnJvckRhdGEuZGV0YWlsIHNpIGluY2x1eWUgJ0FjY2VzcyBkZW5pZWQnXG4gICAgICAgICAgICAvLyAyLiBFcnJvciBnZW7DqXJpY28gJ0ZhaWxlZCBmZXRjaGluZyBkYXRhJyBzaSBlcyA0MDMgcGVybyBubyBpbmNsdXllICdBY2Nlc3MgZGVuaWVkJ1xuICAgICAgICAgICAgLy8gMy4gTmVjZXNpdGFtb3MgdmVyaWZpY2FyIGVsIHN0YXR1cyBjb2RlIHNpIGVzdMOhIGRpc3BvbmlibGVcbiAgICAgICAgICAgIGNvbnN0IGlzNDAzRXJyb3IgPVxuICAgICAgICAgICAgICByZXNwb25zZUVycm9yPy5yZXNwb25zZT8uc3RhdHVzID09PSA0MDMgfHxcbiAgICAgICAgICAgICAgcmVzcG9uc2VFcnJvcj8uc3RhdHVzID09PSA0MDMgfHxcbiAgICAgICAgICAgICAgcmVzcG9uc2VFcnJvcj8ubWVzc2FnZT8uaW5jbHVkZXMoXCJZb3UgZG9uJ3QgaGF2ZSBwZXJtaXNzaW9uIHRvIHZpZXcgYWdlbnRzXCIpIHx8XG4gICAgICAgICAgICAgIHJlc3BvbnNlRXJyb3I/Lm1lc3NhZ2U/LmluY2x1ZGVzKCdGYWlsZWQgZmV0Y2hpbmcgZGF0YScpIC8vIGZldGNoQ09SIGxhbnphIGVzdG8gcGFyYSA0MDMgc2luICdBY2Nlc3MgZGVuaWVkJ1xuXG4gICAgICAgICAgICBpZiAoaXM0MDNFcnJvcikge1xuICAgICAgICAgICAgICAvLyBTaSBlcyA0MDMsIGVzdGFibGVjZXIgYWdlbnRlcyB2YWPDrW9zIHkgY29udGludWFyXG4gICAgICAgICAgICAgIHNldEFnZW50cyh7XG4gICAgICAgICAgICAgICAgZGF0YTogW10sXG4gICAgICAgICAgICAgICAgaGFzX21vcmU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIG5leHRfb2Zmc2V0OiBudWxsLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICBzZXRFcnJvcihudWxsKVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgLy8gU2kgZXMgb3RybyBlcnJvciwgbGFuemFybG9cbiAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2VFcnJvclxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEzDs2dpY2EgZGUgc2VsZWN0IGFnZW50IC0gU29sbyBzZWxlY2Npb25hciBzaSBoYXkgYWdlbnRlcyBkaXNwb25pYmxlc1xuICAgICAgICBpZiAoYWdlbnRQYXJzZWQubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGlmIChhZ2VudFRvU2VsZWN0ICYmIGFnZW50UGFyc2VkLmZpbmQoKGFnZW50VG9SZXF1ZXN0OiBBZ2VudCkgPT4gYWdlbnRUb1JlcXVlc3QuaWQgPT09IGFnZW50VG9TZWxlY3QuaWQpKSB7XG4gICAgICAgICAgICBpZiAobGFzdFNlbGVjdGVkQWdlbnRSZWYuY3VycmVudD8uaWQgIT09IGFnZW50VG9TZWxlY3QuaWQpIHtcbiAgICAgICAgICAgICAgbGFzdFNlbGVjdGVkQWdlbnRSZWYuY3VycmVudCA9IGFnZW50VG9TZWxlY3RcbiAgICAgICAgICAgICAgc2VsZWN0QWdlbnQoYWdlbnRUb1NlbGVjdClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2UgaWYgKGFnZW50UGFyc2VkPy5bMF0gJiYgKCFhZ2VudCB8fCAhYWdlbnRQYXJzZWQuZmluZCgoYTogQWdlbnQpID0+IGEuaWQgPT09IGFnZW50LmlkKSkpIHtcbiAgICAgICAgICAgIGNvbnN0IGF2YWlsYWJsZUFnZW50cyA9XG4gICAgICAgICAgICAgIHdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1MgJiYgIWNsb25lQWdlbnRzUm9sZUJsb2NrZWRcbiAgICAgICAgICAgICAgICA/IGFnZW50UGFyc2VkXG4gICAgICAgICAgICAgICAgOiBhZ2VudFBhcnNlZC5maWx0ZXIoKGFnZW50SXRlbTogQWdlbnQpID0+ICFpc01haWFBZ2VudChhZ2VudEl0ZW0pKVxuXG4gICAgICAgICAgICBjb25zdCBbZmlyc3RBZ2VudF0gPSBhdmFpbGFibGVBZ2VudHNcbiAgICAgICAgICAgIGlmIChmaXJzdEFnZW50ICYmIGxhc3RTZWxlY3RlZEFnZW50UmVmLmN1cnJlbnQ/LmlkICE9PSBmaXJzdEFnZW50LmlkKSB7XG4gICAgICAgICAgICAgIGxhc3RTZWxlY3RlZEFnZW50UmVmLmN1cnJlbnQgPSBmaXJzdEFnZW50XG4gICAgICAgICAgICAgIHNlbGVjdEFnZW50KGZpcnN0QWdlbnQpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmIChhZ2VudFRvU2VsZWN0ICYmIGFnZW50UGFyc2VkPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGF2YWlsYWJsZUFnZW50cyA9XG4gICAgICAgICAgICAgIHdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1MgJiYgIWNsb25lQWdlbnRzUm9sZUJsb2NrZWRcbiAgICAgICAgICAgICAgICA/IGFnZW50UGFyc2VkXG4gICAgICAgICAgICAgICAgOiBhZ2VudFBhcnNlZC5maWx0ZXIoKGFnZW50SXRlbTogQWdlbnQpID0+ICFpc01haWFBZ2VudChhZ2VudEl0ZW0pKVxuXG4gICAgICAgICAgICBjb25zdCBbZmlyc3RBdmFpbGFibGVBZ2VudF0gPSBhdmFpbGFibGVBZ2VudHNcbiAgICAgICAgICAgIGlmIChmaXJzdEF2YWlsYWJsZUFnZW50ICYmIGxhc3RTZWxlY3RlZEFnZW50UmVmLmN1cnJlbnQ/LmlkICE9PSBmaXJzdEF2YWlsYWJsZUFnZW50LmlkKSB7XG4gICAgICAgICAgICAgIGxhc3RTZWxlY3RlZEFnZW50UmVmLmN1cnJlbnQgPSBmaXJzdEF2YWlsYWJsZUFnZW50XG4gICAgICAgICAgICAgIHNlbGVjdEFnZW50KGZpcnN0QXZhaWxhYmxlQWdlbnQpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgc2V0TG9hZGluZyhmYWxzZSlcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBzZXRFcnJvcihlcnIgaW5zdGFuY2VvZiBFcnJvciA/IGVyci5tZXNzYWdlIDogJ0FuIHVua25vd24gZXJyb3Igb2NjdXJyZWQnKVxuICAgICAgICBzZXRMb2FkaW5nKGZhbHNlKVxuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgaXNSZWZyZXNoaW5nUmVmLmN1cnJlbnQgPSBmYWxzZVxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBpZiAoIWlzUmVmcmVzaGluZ1JlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICBsYXN0UmVxdWVzdFJlZi5jdXJyZW50ID0gbnVsbFxuICAgICAgICAgIH1cbiAgICAgICAgfSwgMTAwKVxuICAgICAgfVxuICAgIH0sXG4gICAgW3NlbGVjdEFnZW50LCBzZWN0aW9uLCBhZ2VudCwgbG9hZGluZ11cbiAgKVxuXG4gIGNvbnN0IHNlYXJjaEN1c3RvbUFnZW50cyA9IHVzZUNhbGxiYWNrKGFzeW5jIChxdWVyeTogc3RyaW5nKSA9PiB7XG4gICAgaWYgKCFxdWVyeSkge1xuICAgICAgaWYgKHByZVNlYXJjaEFnZW50c1JlZi5jdXJyZW50KSB7XG4gICAgICAgIHNldEFnZW50cyhwcmVTZWFyY2hBZ2VudHNSZWYuY3VycmVudClcbiAgICAgICAgcHJlU2VhcmNoQWdlbnRzUmVmLmN1cnJlbnQgPSBudWxsXG4gICAgICB9XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAoIXByZVNlYXJjaEFnZW50c1JlZi5jdXJyZW50KSB7XG4gICAgICBwcmVTZWFyY2hBZ2VudHNSZWYuY3VycmVudCA9IGFnZW50c1JlZi5jdXJyZW50XG4gICAgfVxuXG4gICAgc2V0U2VhcmNoTG9hZGluZyh0cnVlKVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2hNYWlhKHtcbiAgICAgICAgcGF0aDogYGFnZW50cz9hZ2VudF90eXBlPWN1c3RvbSZsaW1pdD0yMCZvZmZzZXQ9MCZxPSR7ZW5jb2RlVVJJQ29tcG9uZW50KHF1ZXJ5KX1gLFxuICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgfSlcbiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKClcblxuICAgICAgc2V0QWdlbnRzKHByZXYgPT4ge1xuICAgICAgICBjb25zdCBjbG9uZUFnZW50cyA9IHByZXYuZGF0YS5maWx0ZXIoKGFnOiBBZ2VudCkgPT4gYWcudHlwZSA9PT0gJ2Nsb25lJylcbiAgICAgICAgY29uc3QgY3VzdG9tUmVzdWx0czogQWdlbnRbXSA9IGRhdGEuZGF0YSB8fCBbXVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGRhdGE6IGNsb25lQWdlbnRzLmxlbmd0aCA/IFsuLi5jbG9uZUFnZW50cywgLi4uY3VzdG9tUmVzdWx0c10gOiBjdXN0b21SZXN1bHRzLFxuICAgICAgICAgIGhhc19tb3JlOiBmYWxzZSxcbiAgICAgICAgICBuZXh0X29mZnNldDogbnVsbCxcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGhhbmRsZVNuYWNrYmFyRXJyb3IodCgnc25hY2tiYXIubG9hZE1vcmVBZ2VudHMuZXJyb3InKSlcbiAgICB9IGZpbmFsbHkge1xuICAgICAgc2V0U2VhcmNoTG9hZGluZyhmYWxzZSlcbiAgICB9XG4gIH0sIFtdKVxuXG4gIGNvbnN0IGxvYWRNb3JlQWdlbnRzID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGlzTXVsdGlBZ2VudHMgPSAhIXdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1MgJiYgISF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UU1xuICAgIC8vIENhcmdhciBtw6FzOiBlbiBoZWFkZXIgc2llbXByZTsgZW4gcHJvamVjdCBzb2xvIHNpIGlzTXVsdGlBZ2VudHMgKHBvcnF1ZSBzb2xvIGVudG9uY2VzIGhheSBwYWdpbmFjacOzbiBkZSBjdXN0b20pXG4gICAgY29uc3QgY2FuTG9hZE1vcmUgPSBzZWN0aW9uID09PSAnaGVhZGVyJyB8fCBpc011bHRpQWdlbnRzXG4gICAgaWYgKCFjYW5Mb2FkTW9yZSB8fCAhYWdlbnRzLmhhc19tb3JlIHx8ICFhZ2VudHMubmV4dF9vZmZzZXQgfHwgbG9hZGluZ01vcmUpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHNldExvYWRpbmdNb3JlKHRydWUpXG4gICAgc2V0RXJyb3IobnVsbClcblxuICAgIHRyeSB7XG4gICAgICBsZXQgcGF0aDogc3RyaW5nXG5cbiAgICAgIC8vIFNpIGVzIG11bHRpQWdlbnRzLCBzb2xvIGNhcmdhciBhZ2VudHMgY3VzdG9tIChNYWlhIHlhIGVzdMOhIGNhcmdhZG8pXG4gICAgICBpZiAoaXNNdWx0aUFnZW50cykge1xuICAgICAgICAvLyBNYW50ZW5lciBjYW50aWRhZCBpbXBhciBkZSBjYXJkczogcHJpbWVyYSBjYXJnYSA3LCBzaWd1aWVudGVzICs2ICg3LCAxMywgMTksIC4uLilcbiAgICAgICAgcGF0aCA9IGBhZ2VudHM/YWdlbnRfdHlwZT1jdXN0b20mbGltaXQ9NiZvZmZzZXQ9JHthZ2VudHMubmV4dF9vZmZzZXR9YFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gU2kgbm8gZXMgbXVsdGlBZ2VudHMsIGNhcmdhciBtw6FzIGFnZW50ZXMgb3JxdWVzdGFkb3JlcyAoTUFJQSlcbiAgICAgICAgY29uc3QgcXVlcnlQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKClcbiAgICAgICAgcXVlcnlQYXJhbXMuYXBwZW5kKCdhZ2VudF90eXBlJywgJ29yY2hlc3RyYXRvcicpXG4gICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnbGFuZycsIG1hcENPUkxhbmcoaTE4bi5sYW5ndWFnZSkpXG4gICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnbGltaXQnLCAnNycpXG4gICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnb2Zmc2V0JywgYWdlbnRzLm5leHRfb2Zmc2V0LnRvU3RyaW5nKCkpXG4gICAgICAgIHBhdGggPSBgYWdlbnRzPyR7cXVlcnlQYXJhbXMudG9TdHJpbmcoKX1gXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2hNYWlhKHtcbiAgICAgICAgcGF0aCxcbiAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgIH0pXG5cbiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKClcblxuICAgICAgLy8gQWN1bXVsYXIgYWdlbnRlcywgZXhjbHV5ZW5kbyBkdXBsaWNhZG9zXG4gICAgICBzZXRBZ2VudHMocHJldiA9PiB7XG4gICAgICAgIGlmIChpc011bHRpQWdlbnRzKSB7XG4gICAgICAgICAgLy8gTMOzZ2ljYSBwYXJhIG11bHRpQWdlbnRzOiBzZXBhcmFyIE1BSUEgeSBjdXN0b21cbiAgICAgICAgICBjb25zdCBleGlzdGluZ01haWFBZ2VudHMgPSBwcmV2LmRhdGEuZmlsdGVyKGlzTWFpYUFnZW50KVxuXG4gICAgICAgICAgLy8gT2J0ZW5lciBJRHMgZXhpc3RlbnRlcyAoZXhjbHV5ZW5kbyBNQUlBKVxuICAgICAgICAgIGNvbnN0IGV4aXN0aW5nSWRzID0gbmV3IFNldChwcmV2LmRhdGEuZmlsdGVyKChhZzogQWdlbnQpID0+ICFpc01haWFBZ2VudChhZykpLm1hcCgoYWc6IEFnZW50KSA9PiBhZy5pZCkpXG5cbiAgICAgICAgICAvLyBGaWx0cmFyIG51ZXZvcyBhZ2VudHMgcXVlIG5vIGVzdMOpbiB5YSBlbiBsYSBsaXN0YSAoZXhjbHV5ZW5kbyBNQUlBIHkgY2xvbmVzKSwgbm9ybWFsaXphbmRvIGN1c3RvbVxuICAgICAgICAgIGNvbnN0IG5ld0FnZW50cyA9IG5vcm1hbGl6ZUN1c3RvbUFnZW50c0Zyb21BcGkoXG4gICAgICAgICAgICBkYXRhLmRhdGEuZmlsdGVyKChhZzogQWdlbnQpID0+ICFpc01haWFBZ2VudChhZykgJiYgYWcudHlwZSAhPT0gJ2Nsb25lJyAmJiAhZXhpc3RpbmdJZHMuaGFzKGFnLmlkKSlcbiAgICAgICAgICApXG5cbiAgICAgICAgICBjb25zdCBuZXdEYXRhID0gZXhpc3RpbmdNYWlhQWdlbnRzLmxlbmd0aFxuICAgICAgICAgICAgPyBbLi4uZXhpc3RpbmdNYWlhQWdlbnRzLCAuLi5wcmV2LmRhdGEuZmlsdGVyKChhZzogQWdlbnQpID0+ICFpc01haWFBZ2VudChhZykpLCAuLi5uZXdBZ2VudHNdXG4gICAgICAgICAgICA6IFsuLi5wcmV2LmRhdGEuZmlsdGVyKChhZzogQWdlbnQpID0+ICFpc01haWFBZ2VudChhZykpLCAuLi5uZXdBZ2VudHNdXG5cbiAgICAgICAgICAvLyBPcmRlbmFyOiBNYWlhIHByaW1lcm8sIGx1ZWdvIGZhdm9yaXRvcyBhbGZhYsOpdGljYW1lbnRlLCBsdWVnbyBubyBmYXZvcml0b3MgYWxmYWLDqXRpY2FtZW50ZVxuICAgICAgICAgIGNvbnN0IHNvcnRlZERhdGEgPSBzb3J0QWdlbnRzKG5ld0RhdGEpXG5cbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZGF0YTogc29ydGVkRGF0YSxcbiAgICAgICAgICAgIGhhc19tb3JlOiBkYXRhLmhhc19tb3JlLFxuICAgICAgICAgICAgbmV4dF9vZmZzZXQ6IGRhdGEubmV4dF9vZmZzZXQsXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIEzDs2dpY2EgcGFyYSAhaXNNdWx0aUFnZW50czogYWdyZWdhciBldml0YW5kbyBkdXBsaWNhZG9zXG4gICAgICAgIGNvbnN0IGV4aXN0aW5nSWRzID0gbmV3IFNldChwcmV2LmRhdGEubWFwKChhZzogQWdlbnQpID0+IGFnLmlkKSlcbiAgICAgICAgY29uc3QgbmV3QWdlbnRzID0gKGRhdGEuZGF0YSB8fCBbXSkuZmlsdGVyKChhZzogQWdlbnQpID0+ICFleGlzdGluZ0lkcy5oYXMoYWcuaWQpKVxuICAgICAgICBjb25zdCBuZXdEYXRhID0gWy4uLnByZXYuZGF0YSwgLi4ubmV3QWdlbnRzXVxuXG4gICAgICAgIC8vIE9yZGVuYXI6IE1haWEgcHJpbWVybywgbHVlZ28gZmF2b3JpdG9zIGFsZmFiw6l0aWNhbWVudGUsIGx1ZWdvIG5vIGZhdm9yaXRvcyBhbGZhYsOpdGljYW1lbnRlXG4gICAgICAgIGNvbnN0IHNvcnRlZERhdGEgPSBzb3J0QWdlbnRzKG5ld0RhdGEpXG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBkYXRhOiBzb3J0ZWREYXRhLFxuICAgICAgICAgIGhhc19tb3JlOiBkYXRhLmhhc19tb3JlLFxuICAgICAgICAgIG5leHRfb2Zmc2V0OiBkYXRhLm5leHRfb2Zmc2V0LFxuICAgICAgICB9XG4gICAgICB9KVxuXG4gICAgICBzZXRMb2FkaW5nTW9yZShmYWxzZSlcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGhhbmRsZVNuYWNrYmFyRXJyb3IodCgnc25hY2tiYXIubG9hZE1vcmVBZ2VudHMuZXJyb3InKSlcbiAgICAgIHNldExvYWRpbmdNb3JlKGZhbHNlKVxuICAgIH1cbiAgfSwgW3NlY3Rpb24sIGFnZW50cy5oYXNfbW9yZSwgYWdlbnRzLm5leHRfb2Zmc2V0LCBsb2FkaW5nTW9yZSwgaTE4bi5sYW5ndWFnZV0pXG5cbiAgcmV0dXJuIHtcbiAgICBhZ2VudHMsXG4gICAgbG9hZGluZyxcbiAgICBsb2FkaW5nTW9yZSxcbiAgICBlcnJvcixcbiAgICBoYW5kbGVHZXRBZ2VudHMsXG4gICAgbG9hZE1vcmVBZ2VudHMsXG4gICAgc2VhcmNoQ3VzdG9tQWdlbnRzLFxuICAgIHNlYXJjaExvYWRpbmcsXG4gICAgYWRkQWdlbnQsXG4gICAgcmVtb3ZlQWdlbnQsXG4gICAgdXBkYXRlQWdlbnQsXG4gICAgdXBkYXRlQWdlbnRGYXZvcml0ZSxcbiAgICBzZWxlY3RGaXJzdEFnZW50LFxuICAgIHNvcnRBZ2VudHNMaXN0LFxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSxRQUFRLEVBQUVDLFdBQVcsRUFBRUMsTUFBTSxRQUFRLE9BQU87QUFDckQsU0FBU0MsY0FBYyxRQUFRLGVBQWU7QUFDOUMsU0FBU0Msa0JBQWtCLFFBQVEsc0RBQXNEO0FBQ3pGLFNBQVNDLFNBQVMsUUFBUSxXQUFXO0FBQ3JDLFNBQVNDLHdCQUF3QixRQUFRLHlDQUF5QztBQUVsRixTQUFTQyxPQUFPLFFBQVEsMkJBQTJCO0FBQ25ELFNBQVNDLDRCQUE0QixRQUFRLHdDQUF3QztBQUVyRixTQUFTQyxVQUFVLFFBQVEscUJBQXFCO0FBRWhELElBQU1DLFdBQVcsR0FBRyxTQUFkQSxXQUFXQSxDQUFJQyxLQUFZO0VBQUEsT0FBSyxDQUFBQSxLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRUMsSUFBSSxNQUFLLGNBQWM7QUFBQTtBQUVwRSxJQUFNQyxvQkFBb0IsR0FBRyxTQUF2QkEsb0JBQW9CQSxDQUFJQyxHQUFZLEVBQWM7RUFBQSxJQUFBQyxlQUFBLEVBQUFDLGNBQUEsRUFBQUMsZUFBQTtFQUN0RCxJQUFNQyxLQUFLLEdBQUdKLEdBQTRFO0VBQzFGLE9BQ0UsQ0FBQUksS0FBSyxhQUFMQSxLQUFLLGdCQUFBSCxlQUFBLEdBQUxHLEtBQUssQ0FBRUMsUUFBUSxjQUFBSixlQUFBLHVCQUFmQSxlQUFBLENBQWlCSyxNQUFNLE1BQUssR0FBRyxJQUMvQixDQUFBRixLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRUUsTUFBTSxNQUFLLEdBQUcsSUFDckJDLE9BQU8sQ0FBQ0gsS0FBSyxhQUFMQSxLQUFLLGdCQUFBRixjQUFBLEdBQUxFLEtBQUssQ0FBRUksT0FBTyxjQUFBTixjQUFB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
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
2
2
|
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
3
3
|
import { fetchMaia } from '../client';
|
|
4
|
-
import { buildRecentContextsPrefetchKey, takeRecentContextsPrefetch } from '../bootstrap/recentContextsPrefetchSession';
|
|
5
4
|
var buildPath = function buildPath(opts) {
|
|
6
5
|
var params = new URLSearchParams();
|
|
7
6
|
if ((opts === null || opts === void 0 ? void 0 : opts.limit) != null) {
|
|
@@ -10,7 +9,7 @@ var buildPath = function buildPath(opts) {
|
|
|
10
9
|
var qs = params.toString();
|
|
11
10
|
return qs ? "recent-contexts?".concat(qs) : 'recent-contexts';
|
|
12
11
|
};
|
|
13
|
-
export var
|
|
12
|
+
export var getRecentContexts = /*#__PURE__*/function () {
|
|
14
13
|
var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(opts) {
|
|
15
14
|
var _json$data;
|
|
16
15
|
var response, json, items;
|
|
@@ -48,36 +47,8 @@ export var fetchRecentContextsList = /*#__PURE__*/function () {
|
|
|
48
47
|
}
|
|
49
48
|
}, _callee);
|
|
50
49
|
}));
|
|
51
|
-
return function
|
|
50
|
+
return function getRecentContexts(_x) {
|
|
52
51
|
return _ref.apply(this, arguments);
|
|
53
52
|
};
|
|
54
53
|
}();
|
|
55
|
-
|
|
56
|
-
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(opts) {
|
|
57
|
-
var prefetchKey, prefetched;
|
|
58
|
-
return _regeneratorRuntime.wrap(function (_context2) {
|
|
59
|
-
while (1) switch (_context2.prev = _context2.next) {
|
|
60
|
-
case 0:
|
|
61
|
-
prefetchKey = buildRecentContextsPrefetchKey(opts);
|
|
62
|
-
_context2.next = 1;
|
|
63
|
-
return takeRecentContextsPrefetch(prefetchKey);
|
|
64
|
-
case 1:
|
|
65
|
-
prefetched = _context2.sent;
|
|
66
|
-
if (!prefetched) {
|
|
67
|
-
_context2.next = 2;
|
|
68
|
-
break;
|
|
69
|
-
}
|
|
70
|
-
return _context2.abrupt("return", prefetched);
|
|
71
|
-
case 2:
|
|
72
|
-
return _context2.abrupt("return", fetchRecentContextsList(opts));
|
|
73
|
-
case 3:
|
|
74
|
-
case "end":
|
|
75
|
-
return _context2.stop();
|
|
76
|
-
}
|
|
77
|
-
}, _callee2);
|
|
78
|
-
}));
|
|
79
|
-
return function getRecentContexts(_x2) {
|
|
80
|
-
return _ref2.apply(this, arguments);
|
|
81
|
-
};
|
|
82
|
-
}();
|
|
83
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmZXRjaE1haWEiLCJidWlsZFJlY2VudENvbnRleHRzUHJlZmV0Y2hLZXkiLCJ0YWtlUmVjZW50Q29udGV4dHNQcmVmZXRjaCIsImJ1aWxkUGF0aCIsIm9wdHMiLCJwYXJhbXMiLCJVUkxTZWFyY2hQYXJhbXMiLCJsaW1pdCIsInNldCIsIlN0cmluZyIsInFzIiwidG9TdHJpbmciLCJjb25jYXQiLCJmZXRjaFJlY2VudENvbnRleHRzTGlzdCIsIl9yZWYiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsIl9qc29uJGRhdGEiLCJyZXNwb25zZSIsImpzb24iLCJpdGVtcyIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwicGF0aCIsIm1ldGhvZCIsImhlYWRlcnMiLCJhZ2VudElkIiwidW5kZWZpbmVkIiwic2VudCIsIm9rIiwiRXJyb3IiLCJBcnJheSIsImlzQXJyYXkiLCJkYXRhIiwiYWJydXB0IiwiZmlsdGVyIiwiaXRlbSIsImNvbnRleHQiLCJpZCIsIm5hbWUiLCJpbmNsdWRlcyIsInR5cGUiLCJzdG9wIiwiX3giLCJhcHBseSIsImFyZ3VtZW50cyIsImdldFJlY2VudENvbnRleHRzIiwiX3JlZjIiLCJfY2FsbGVlMiIsInByZWZldGNoS2V5IiwicHJlZmV0Y2hlZCIsIl9jb250ZXh0MiIsIl94MiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9tYWlhL1JlY2VudENvbnRleHRzL2dldFJlY2VudENvbnRleHRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZldGNoTWFpYSB9IGZyb20gJy4uL2NsaWVudCdcbmltcG9ydCB7IGJ1aWxkUmVjZW50Q29udGV4dHNQcmVmZXRjaEtleSwgdGFrZVJlY2VudENvbnRleHRzUHJlZmV0Y2ggfSBmcm9tICcuLi9ib290c3RyYXAvcmVjZW50Q29udGV4dHNQcmVmZXRjaFNlc3Npb24nXG5cbmV4cG9ydCB0eXBlIFJlY2VudENvbnRleHRUeXBlID0gJ2NsaWVudCcgfCAncHJvamVjdCcgfCAndGFzaydcblxuZXhwb3J0IHR5cGUgUmVjZW50Q29udGV4dFBhcmVudHMgPSB7XG4gIGNsaWVudF9pZD86IHN0cmluZyB8IG51bWJlciB8IG51bGxcbiAgY2xpZW50X25hbWU/OiBzdHJpbmcgfCBudWxsXG4gIHByb2plY3RfaWQ/OiBzdHJpbmcgfCBudW1iZXIgfCBudWxsXG4gIHByb2plY3RfbmFtZT86IHN0cmluZyB8IG51bGxcbn1cblxuZXhwb3J0IHR5cGUgUmVjZW50Q29udGV4dEl0ZW0gPSB7XG4gIHR5cGU6IFJlY2VudENvbnRleHRUeXBlXG4gIGlkOiBzdHJpbmcgfCBudW1iZXJcbiAgbmFtZTogc3RyaW5nXG4gIHBhcmVudHM/OiBSZWNlbnRDb250ZXh0UGFyZW50cyB8IG51bGxcbiAgbGFzdF9pbnRlcmFjdGlvbl9kYXRlPzogc3RyaW5nIHwgbnVsbFxufVxuXG5leHBvcnQgdHlwZSBHZXRSZWNlbnRDb250ZXh0c09wdGlvbnMgPSB7XG4gIGFnZW50SWQ/OiBzdHJpbmcgfCBudW1iZXJcbiAgbGltaXQ/OiBudW1iZXJcbn1cblxuY29uc3QgYnVpbGRQYXRoID0gKG9wdHM/OiBHZXRSZWNlbnRDb250ZXh0c09wdGlvbnMpID0+IHtcbiAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpXG4gIGlmIChvcHRzPy5saW1pdCAhPSBudWxsKSB7XG4gICAgcGFyYW1zLnNldCgnbGltaXQnLCBTdHJpbmcob3B0cy5saW1pdCkpXG4gIH1cbiAgY29uc3QgcXMgPSBwYXJhbXMudG9TdHJpbmcoKVxuICByZXR1cm4gcXMgPyBgcmVjZW50LWNvbnRleHRzPyR7cXN9YCA6ICdyZWNlbnQtY29udGV4dHMnXG59XG5cbmV4cG9ydCBjb25zdCBmZXRjaFJlY2VudENvbnRleHRzTGlzdCA9IGFzeW5jIChvcHRzPzogR2V0UmVjZW50Q29udGV4dHNPcHRpb25zKTogUHJvbWlzZTxSZWNlbnRDb250ZXh0SXRlbVtdPiA9PiB7XG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2hNYWlhKHtcbiAgICBwYXRoOiBidWlsZFBhdGgob3B0cyksXG4gICAgbWV0aG9kOiAnR0VUJyxcbiAgICBoZWFkZXJzOiBvcHRzPy5hZ2VudElkID8geyAnWC1BZ2VudC1JZCc6IFN0cmluZyhvcHRzLmFnZW50SWQpIH0gOiB1bmRlZmluZWQsXG4gIH0pXG5cbiAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIGZldGNoaW5nIHJlY2VudCBjb250ZXh0cycpXG4gIH1cblxuICBjb25zdCBqc29uID0gYXdhaXQgcmVzcG9uc2UuanNvbigpXG4gIGNvbnN0IGl0ZW1zID0gQXJyYXkuaXNBcnJheShqc29uKSA/IGpzb24gOiAoanNvbj8uZGF0YSA/PyBbXSlcbiAgcmV0dXJuIGl0ZW1zLmZpbHRlcigoaXRlbTogdW5rbm93bik6IGl0ZW0gaXMgUmVjZW50Q29udGV4dEl0ZW0gPT4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSBpdGVtIGFzIFBhcnRpYWw8UmVjZW50Q29udGV4dEl0ZW0+XG4gICAgcmV0dXJuIGNvbnRleHQ/LmlkICE9IG51bGwgJiYgY29udGV4dC5uYW1lICE9IG51bGwgJiYgWydjbGllbnQnLCAncHJvamVjdCcsICd0YXNrJ10uaW5jbHVkZXMoU3RyaW5nKGNvbnRleHQudHlwZSkpXG4gIH0pXG59XG5cbmV4cG9ydCBjb25zdCBnZXRSZWNlbnRDb250ZXh0cyA9IGFzeW5jIChvcHRzPzogR2V0UmVjZW50Q29udGV4dHNPcHRpb25zKTogUHJvbWlzZTxSZWNlbnRDb250ZXh0SXRlbVtdPiA9PiB7XG4gIGNvbnN0IHByZWZldGNoS2V5ID0gYnVpbGRSZWNlbnRDb250ZXh0c1ByZWZldGNoS2V5KG9wdHMpXG4gIGNvbnN0IHByZWZldGNoZWQgPSBhd2FpdCB0YWtlUmVjZW50Q29udGV4dHNQcmVmZXRjaChwcmVmZXRjaEtleSlcblxuICBpZiAocHJlZmV0Y2hlZCkge1xuICAgIHJldHVybiBwcmVmZXRjaGVkXG4gIH1cblxuICByZXR1cm4gZmV0Y2hSZWNlbnRDb250ZXh0c0xpc3Qob3B0cylcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxTQUFTQSxTQUFTLFFBQVEsV0FBVztBQUNyQyxTQUFTQyw4QkFBOEIsRUFBRUMsMEJBQTBCLFFBQVEsNENBQTRDO0FBd0J2SCxJQUFNQyxTQUFTLEdBQUcsU0FBWkEsU0FBU0EsQ0FBSUMsSUFBK0IsRUFBSztFQUNyRCxJQUFNQyxNQUFNLEdBQUcsSUFBSUMsZUFBZSxDQUFDLENBQUM7RUFDcEMsSUFBSSxDQUFBRixJQUFJLGFBQUpBLElBQUksdUJBQUpBLElBQUksQ0FBRUcsS0FBSyxLQUFJLElBQUksRUFBRTtJQUN2QkYsTUFBTSxDQUFDRyxHQUFHLENBQUMsT0FBTyxFQUFFQyxNQUFNLENBQUNMLElBQUksQ0FBQ0csS0FBSyxDQUFDLENBQUM7RUFDekM7RUFDQSxJQUFNRyxFQUFFLEdBQUdMLE1BQU0sQ0FBQ00sUUFBUSxDQUFDLENBQUM7RUFDNUIsT0FBT0QsRUFBRSxzQkFBQUUsTUFBQSxDQUFzQkYsRUFBRSxJQUFLLGlCQUFpQjtBQUN6RCxDQUFDO0FBRUQsT0FBTyxJQUFNRyx1QkFBdUI7RUFBQSxJQUFBQyxJQUFBLEdBQUFDLGlCQUFBLGNBQUFDLG1CQUFBLENBQUFDLElBQUEsQ0FBRyxTQUFBQyxRQUFPZCxJQUErQjtJQUFBLElBQUFlLFVBQUE7SUFBQSxJQUFBQyxRQUFBLEVBQUFDLElBQUEsRUFBQUMsS0FBQTtJQUFBLE9BQUFOLG1CQUFBLENBQUFPLElBQUEsV0FBQUMsUUFBQTtNQUFBLGtCQUFBQSxRQUFBLENBQUFDLElBQUEsR0FBQUQsUUFBQSxDQUFBRSxJQUFBO1FBQUE7VUFBQUYsUUFBQSxDQUFBRSxJQUFBO1VBQUEsT0FDcEQxQixTQUFTLENBQUM7WUFDL0IyQixJQUFJLEVBQUV4QixTQUFTLENBQUNDLElBQUksQ0FBQztZQUNyQndCLE1BQU0sRUFBRSxLQUFLO1lBQ2JDLE9BQU8sRUFBRXpCLElBQUksYUFBSkEsSUFBSSxlQUFKQSxJQUFJLENBQUUwQixPQUFPLEdBQUc7Y0FBRSxZQUFZLEVBQUVyQixNQUFNLENBQUNMLElBQUksQ0FBQzBCLE9BQU87WUFBRSxDQUFDLEdBQUdDO1VBQ3BFLENBQUMsQ0FBQztRQUFBO1VBSklYLFFBQVEsR0FBQUksUUFBQSxDQUFBUSxJQUFBO1VBQUEsSUFNVFosUUFBUSxDQUFDYSxFQUFFO1lBQUFULFFBQUEsQ0FBQUUsSUFBQTtZQUFBO1VBQUE7VUFBQSxNQUNSLElBQUlRLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQztRQUFBO1VBQUFWLFFBQUEsQ0FBQUUsSUFBQTtVQUFBLE9BR2pDTixRQUFRLENBQUNDLElBQUksQ0FBQyxDQUFDO1FBQUE7VUFBNUJBLElBQUksR0FBQUcsUUFBQSxDQUFBUSxJQUFBO1VBQ0pWLEtBQUssR0FBR2EsS0FBSyxDQUFDQyxPQUFPLENBQUNmLElBQUksQ0FBQyxHQUFHQSxJQUFJLElBQUFGLFVBQUEsR0FBSUUsSUFBSSxhQUFKQSxJQUFJLHVCQUFKQSxJQUFJLENBQUVnQixJQUFJLGNBQUFsQixVQUFBLGNBQUFBLFVBQUEsR0FBSSxFQUFHO1VBQUEsT0FBQUssUUFBQSxDQUFBYyxNQUFBLFdBQ3REaEIsS0FBSyxDQUFDaUIsTUFBTSxDQUFDLFVBQUNDLElBQWEsRUFBZ0M7WUFDaEUsSUFBTUMsT0FBTyxHQUFHRCxJQUFrQztZQUNsRCxPQUFPLENBQUFDLE9BQU8sYUFBUEEsT0FBTyx1QkFBUEEsT0FBTyxDQUFFQyxFQUFFLEtBQUksSUFBSSxJQUFJRCxPQUFPLENBQUNFLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDQyxRQUFRLENBQUNuQyxNQUFNLENBQUNnQyxPQUFPLENBQUNJLElBQUksQ0FBQyxDQUFDO1VBQ3BILENBQUMsQ0FBQztRQUFBO1FBQUE7VUFBQSxPQUFBckIsUUFBQSxDQUFBc0IsSUFBQTtNQUFBO0lBQUEsR0FBQTVCLE9BQUE7RUFBQSxDQUNIO0VBQUEsZ0JBakJZTCx1QkFBdUJBLENBQUFrQyxFQUFBO0lBQUEsT0FBQWpDLElBQUEsQ0FBQWtDLEtBQUEsT0FBQUMsU0FBQTtFQUFBO0FBQUEsR0FpQm5DO0FBRUQsT0FBTyxJQUFNQyxpQkFBaUI7RUFBQSxJQUFBQyxLQUFBLEdBQUFwQyxpQkFBQSxjQUFBQyxtQkFBQSxDQUFBQyxJQUFBLENBQUcsU0FBQW1DLFNBQU9oRCxJQUErQjtJQUFBLElBQUFpRCxXQUFBLEVBQUFDLFVBQUE7SUFBQSxPQUFBdEMsbUJBQUEsQ0FBQU8sSUFBQSxXQUFBZ0MsU0FBQTtNQUFBLGtCQUFBQSxTQUFBLENBQUE5QixJQUFBLEdBQUE4QixTQUFBLENBQUE3QixJQUFBO1FBQUE7VUFDL0QyQixXQUFXLEdBQUdwRCw4QkFBOEIsQ0FBQ0csSUFBSSxDQUFDO1VBQUFtRCxTQUFBLENBQUE3QixJQUFBO1VBQUEsT0FDL0J4QiwwQkFBMEIsQ0FBQ21ELFdBQVcsQ0FBQztRQUFBO1VBQTFEQyxVQUFVLEdBQUFDLFNBQUEsQ0FBQXZCLElBQUE7VUFBQSxLQUVac0IsVUFBVTtZQUFBQyxTQUFBLENBQUE3QixJQUFBO1lBQUE7VUFBQTtVQUFBLE9BQUE2QixTQUFBLENBQUFqQixNQUFBLFdBQ0xnQixVQUFVO1FBQUE7VUFBQSxPQUFBQyxTQUFBLENBQUFqQixNQUFBLFdBR1p6Qix1QkFBdUIsQ0FBQ1QsSUFBSSxDQUFDO1FBQUE7UUFBQTtVQUFBLE9BQUFtRCxTQUFBLENBQUFULElBQUE7TUFBQTtJQUFBLEdBQUFNLFFBQUE7RUFBQSxDQUNyQztFQUFBLGdCQVRZRixpQkFBaUJBLENBQUFNLEdBQUE7SUFBQSxPQUFBTCxLQUFBLENBQUFILEtBQUEsT0FBQUMsU0FBQTtFQUFBO0FBQUEsR0FTN0IiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
54
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmZXRjaE1haWEiLCJidWlsZFBhdGgiLCJvcHRzIiwicGFyYW1zIiwiVVJMU2VhcmNoUGFyYW1zIiwibGltaXQiLCJzZXQiLCJTdHJpbmciLCJxcyIsInRvU3RyaW5nIiwiY29uY2F0IiwiZ2V0UmVjZW50Q29udGV4dHMiLCJfcmVmIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJfanNvbiRkYXRhIiwicmVzcG9uc2UiLCJqc29uIiwiaXRlbXMiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsInBhdGgiLCJtZXRob2QiLCJoZWFkZXJzIiwiYWdlbnRJZCIsInVuZGVmaW5lZCIsInNlbnQiLCJvayIsIkVycm9yIiwiQXJyYXkiLCJpc0FycmF5IiwiZGF0YSIsImFicnVwdCIsImZpbHRlciIsIml0ZW0iLCJjb250ZXh0IiwiaWQiLCJuYW1lIiwiaW5jbHVkZXMiLCJ0eXBlIiwic3RvcCIsIl94IiwiYXBwbHkiLCJhcmd1bWVudHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VydmljZXMvbWFpYS9SZWNlbnRDb250ZXh0cy9nZXRSZWNlbnRDb250ZXh0cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmZXRjaE1haWEgfSBmcm9tICcuLi9jbGllbnQnXG5cbmV4cG9ydCB0eXBlIFJlY2VudENvbnRleHRUeXBlID0gJ2NsaWVudCcgfCAncHJvamVjdCcgfCAndGFzaydcblxuZXhwb3J0IHR5cGUgUmVjZW50Q29udGV4dFBhcmVudHMgPSB7XG4gIGNsaWVudF9pZD86IHN0cmluZyB8IG51bWJlciB8IG51bGxcbiAgY2xpZW50X25hbWU/OiBzdHJpbmcgfCBudWxsXG4gIHByb2plY3RfaWQ/OiBzdHJpbmcgfCBudW1iZXIgfCBudWxsXG4gIHByb2plY3RfbmFtZT86IHN0cmluZyB8IG51bGxcbn1cblxuZXhwb3J0IHR5cGUgUmVjZW50Q29udGV4dEl0ZW0gPSB7XG4gIHR5cGU6IFJlY2VudENvbnRleHRUeXBlXG4gIGlkOiBzdHJpbmcgfCBudW1iZXJcbiAgbmFtZTogc3RyaW5nXG4gIHBhcmVudHM/OiBSZWNlbnRDb250ZXh0UGFyZW50cyB8IG51bGxcbiAgbGFzdF9pbnRlcmFjdGlvbl9kYXRlPzogc3RyaW5nIHwgbnVsbFxufVxuXG5leHBvcnQgdHlwZSBHZXRSZWNlbnRDb250ZXh0c09wdGlvbnMgPSB7XG4gIGFnZW50SWQ/OiBzdHJpbmcgfCBudW1iZXJcbiAgbGltaXQ/OiBudW1iZXJcbn1cblxuY29uc3QgYnVpbGRQYXRoID0gKG9wdHM/OiBHZXRSZWNlbnRDb250ZXh0c09wdGlvbnMpID0+IHtcbiAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpXG4gIGlmIChvcHRzPy5saW1pdCAhPSBudWxsKSB7XG4gICAgcGFyYW1zLnNldCgnbGltaXQnLCBTdHJpbmcob3B0cy5saW1pdCkpXG4gIH1cbiAgY29uc3QgcXMgPSBwYXJhbXMudG9TdHJpbmcoKVxuICByZXR1cm4gcXMgPyBgcmVjZW50LWNvbnRleHRzPyR7cXN9YCA6ICdyZWNlbnQtY29udGV4dHMnXG59XG5cbmV4cG9ydCBjb25zdCBnZXRSZWNlbnRDb250ZXh0cyA9IGFzeW5jIChvcHRzPzogR2V0UmVjZW50Q29udGV4dHNPcHRpb25zKTogUHJvbWlzZTxSZWNlbnRDb250ZXh0SXRlbVtdPiA9PiB7XG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2hNYWlhKHtcbiAgICBwYXRoOiBidWlsZFBhdGgob3B0cyksXG4gICAgbWV0aG9kOiAnR0VUJyxcbiAgICBoZWFkZXJzOiBvcHRzPy5hZ2VudElkID8geyAnWC1BZ2VudC1JZCc6IFN0cmluZyhvcHRzLmFnZW50SWQpIH0gOiB1bmRlZmluZWQsXG4gIH0pXG5cbiAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIGZldGNoaW5nIHJlY2VudCBjb250ZXh0cycpXG4gIH1cblxuICBjb25zdCBqc29uID0gYXdhaXQgcmVzcG9uc2UuanNvbigpXG4gIGNvbnN0IGl0ZW1zID0gQXJyYXkuaXNBcnJheShqc29uKSA/IGpzb24gOiAoanNvbj8uZGF0YSA/PyBbXSlcbiAgcmV0dXJuIGl0ZW1zLmZpbHRlcigoaXRlbTogdW5rbm93bik6IGl0ZW0gaXMgUmVjZW50Q29udGV4dEl0ZW0gPT4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSBpdGVtIGFzIFBhcnRpYWw8UmVjZW50Q29udGV4dEl0ZW0+XG4gICAgcmV0dXJuIGNvbnRleHQ/LmlkICE9IG51bGwgJiYgY29udGV4dC5uYW1lICE9IG51bGwgJiYgWydjbGllbnQnLCAncHJvamVjdCcsICd0YXNrJ10uaW5jbHVkZXMoU3RyaW5nKGNvbnRleHQudHlwZSkpXG4gIH0pXG59XG4iXSwibWFwcGluZ3MiOiI7O0FBQUEsU0FBU0EsU0FBUyxRQUFRLFdBQVc7QUF3QnJDLElBQU1DLFNBQVMsR0FBRyxTQUFaQSxTQUFTQSxDQUFJQyxJQUErQixFQUFLO0VBQ3JELElBQU1DLE1BQU0sR0FBRyxJQUFJQyxlQUFlLENBQUMsQ0FBQztFQUNwQyxJQUFJLENBQUFGLElBQUksYUFBSkEsSUFBSSx1QkFBSkEsSUFBSSxDQUFFRyxLQUFLLEtBQUksSUFBSSxFQUFFO0lBQ3ZCRixNQUFNLENBQUNHLEdBQUcsQ0FBQyxPQUFPLEVBQUVDLE1BQU0sQ0FBQ0wsSUFBSSxDQUFDRyxLQUFLLENBQUMsQ0FBQztFQUN6QztFQUNBLElBQU1HLEVBQUUsR0FBR0wsTUFBTSxDQUFDTSxRQUFRLENBQUMsQ0FBQztFQUM1QixPQUFPRCxFQUFFLHNCQUFBRSxNQUFBLENBQXNCRixFQUFFLElBQUssaUJBQWlCO0FBQ3pELENBQUM7QUFFRCxPQUFPLElBQU1HLGlCQUFpQjtFQUFBLElBQUFDLElBQUEsR0FBQUMsaUJBQUEsY0FBQUMsbUJBQUEsQ0FBQUMsSUFBQSxDQUFHLFNBQUFDLFFBQU9kLElBQStCO0lBQUEsSUFBQWUsVUFBQTtJQUFBLElBQUFDLFFBQUEsRUFBQUMsSUFBQSxFQUFBQyxLQUFBO0lBQUEsT0FBQU4sbUJBQUEsQ0FBQU8sSUFBQSxXQUFBQyxRQUFBO01BQUEsa0JBQUFBLFFBQUEsQ0FBQUMsSUFBQSxHQUFBRCxRQUFBLENBQUFFLElBQUE7UUFBQTtVQUFBRixRQUFBLENBQUFFLElBQUE7VUFBQSxPQUM5Q3hCLFNBQVMsQ0FBQztZQUMvQnlCLElBQUksRUFBRXhCLFNBQVMsQ0FBQ0MsSUFBSSxDQUFDO1lBQ3JCd0IsTUFBTSxFQUFFLEtBQUs7WUFDYkMsT0FBTyxFQUFFekIsSUFBSSxhQUFKQSxJQUFJLGVBQUpBLElBQUksQ0FBRTBCLE9BQU8sR0FBRztjQUFFLFlBQVksRUFBRXJCLE1BQU0sQ0FBQ0wsSUFBSSxDQUFDMEIsT0FBTztZQUFFLENBQUMsR0FBR0M7VUFDcEUsQ0FBQyxDQUFDO1FBQUE7VUFKSVgsUUFBUSxHQUFBSSxRQUFBLENBQUFRLElBQUE7VUFBQSxJQU1UWixRQUFRLENBQUNhLEVBQUU7WUFBQVQsUUFBQSxDQUFBRSxJQUFBO1lBQUE7VUFBQTtVQUFBLE1BQ1IsSUFBSVEsS0FBSyxDQUFDLGlDQUFpQyxDQUFDO1FBQUE7VUFBQVYsUUFBQSxDQUFBRSxJQUFBO1VBQUEsT0FHakNOLFFBQVEsQ0FBQ0MsSUFBSSxDQUFDLENBQUM7UUFBQTtVQUE1QkEsSUFBSSxHQUFBRyxRQUFBLENBQUFRLElBQUE7VUFDSlYsS0FBSyxHQUFHYSxLQUFLLENBQUNDLE9BQU8sQ0FBQ2YsSUFBSSxDQUFDLEdBQUdBLElBQUksSUFBQUYsVUFBQSxHQUFJRSxJQUFJLGFBQUpBLElBQUksdUJBQUpBLElBQUksQ0FBRWdCLElBQUksY0FBQWxCLFVBQUEsY0FBQUEsVUFBQSxHQUFJLEVBQUc7VUFBQSxPQUFBSyxRQUFBLENBQUFjLE1BQUEsV0FDdERoQixLQUFLLENBQUNpQixNQUFNLENBQUMsVUFBQ0MsSUFBYSxFQUFnQztZQUNoRSxJQUFNQyxPQUFPLEdBQUdELElBQWtDO1lBQ2xELE9BQU8sQ0FBQUMsT0FBTyxhQUFQQSxPQUFPLHVCQUFQQSxPQUFPLENBQUVDLEVBQUUsS0FBSSxJQUFJLElBQUlELE9BQU8sQ0FBQ0UsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUNDLFFBQVEsQ0FBQ25DLE1BQU0sQ0FBQ2dDLE9BQU8sQ0FBQ0ksSUFBSSxDQUFDLENBQUM7VUFDcEgsQ0FBQyxDQUFDO1FBQUE7UUFBQTtVQUFBLE9BQUFyQixRQUFBLENBQUFzQixJQUFBO01BQUE7SUFBQSxHQUFBNUIsT0FBQTtFQUFBLENBQ0g7RUFBQSxnQkFqQllMLGlCQUFpQkEsQ0FBQWtDLEVBQUE7SUFBQSxPQUFBakMsSUFBQSxDQUFBa0MsS0FBQSxPQUFBQyxTQUFBO0VBQUE7QUFBQSxHQWlCN0IiLCJpZ25vcmVMaXN0IjpbXX0=
|
package/lib/styles/config.js
CHANGED
|
@@ -38,10 +38,10 @@ export var MAIA_IA_COLORS = {
|
|
|
38
38
|
* Preferir además `colors` de @projectcor/theme donde haya equivalente.
|
|
39
39
|
*/
|
|
40
40
|
export var MAIA_CHAT_INPUT_UI = {
|
|
41
|
-
menuIcon: '#
|
|
41
|
+
menuIcon: '#202020',
|
|
42
42
|
textBrandBold: '#00578c',
|
|
43
43
|
chipSurfaceHover: '#f2f2f2',
|
|
44
44
|
/** Alineado con theme `grey[300]` (icono cerrar chip) */
|
|
45
45
|
chipCloseIcon: '#a4adb5'
|
|
46
46
|
};
|
|
47
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJHTE9CQUxfQ09MT1JTIiwicHJpbWFyeSIsImxpZ2h0IiwiYmFja2dyb3VuZCIsImRhcmsiLCJCTFVFX0lBX0NPTE9SUyIsIlZJT0xFVF9JQV9DT0xPUlMiLCJNQUlBX0lBX0NPTE9SUyIsImJsdWUiLCJ2aW9sZXQiLCJNQUlBX0NIQVRfSU5QVVRfVUkiLCJtZW51SWNvbiIsInRleHRCcmFuZEJvbGQiLCJjaGlwU3VyZmFjZUhvdmVyIiwiY2hpcENsb3NlSWNvbiJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdHlsZXMvY29uZmlnLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBHTE9CQUxfQ09MT1JTID0ge1xuICBwcmltYXJ5OiAnIzg3NDBiZicsXG4gIGxpZ2h0OiAnI0Y3RjBGQycsXG4gIGJhY2tncm91bmQ6ICcjRUJEQkY4JyxcbiAgZGFyazogJyM1OTI5ODQnLFxufVxuXG5leHBvcnQgY29uc3QgQkxVRV9JQV9DT0xPUlMgPSB7XG4gIDUwOiAnI2VhZjFmOCcsXG4gIDEwMDogJyNiZWQ1ZWInLFxuICAyMDA6ICcjOWVjMGUxJyxcbiAgMzAwOiAnIzcyYTRkMycsXG4gIDQwMDogJyM1NzkyY2EnLFxuICA1MDA6ICcjMmQ3N2JkJyxcbiAgNjAwOiAnIzI5NmNhYycsXG4gIDcwMDogJyMyMDU0ODYnLFxuICA4MDA6ICcjMTk0MTY4JyxcbiAgOTAwOiAnIzEzMzI0ZicsXG59IGFzIGNvbnN0XG5cbmV4cG9ydCBjb25zdCBWSU9MRVRfSUFfQ09MT1JTID0ge1xuICA1MDogJyNlZGViZjAnLFxuICAxMDA6ICcjYzhjMGQxJyxcbiAgMjAwOiAnI2FkYTJiYScsXG4gIDMwMDogJyM4ODc4OWInLFxuICA0MDA6ICcjNzE1ZDg3JyxcbiAgNTAwOiAnIzRkMzU2OScsXG4gIDYwMDogJyM0NjMwNjAnLFxuICA3MDA6ICcjMzcyNjRiJyxcbiAgODAwOiAnIzJhMWQzYScsXG4gIDkwMDogJyMyMDE2MmMnLFxufSBhcyBjb25zdFxuXG5leHBvcnQgY29uc3QgTUFJQV9JQV9DT0xPUlMgPSB7XG4gIGJsdWU6IEJMVUVfSUFfQ09MT1JTLFxuICB2aW9sZXQ6IFZJT0xFVF9JQV9DT0xPUlMsXG59IGFzIGNvbnN0XG5cbi8qKlxuICogVG9rZW5zIGRlbCBtZW7DuiArIHkgY2hpcCBkZWwgaW5wdXQgTUFJQSAoRmlnbWEgLyBicmFuZCkuXG4gKiBQcmVmZXJpciBhZGVtw6FzIGBjb2xvcnNgIGRlIEBwcm9qZWN0Y29yL3RoZW1lIGRvbmRlIGhheWEgZXF1aXZhbGVudGUuXG4gKi9cbmV4cG9ydCBjb25zdCBNQUlBX0NIQVRfSU5QVVRfVUkgPSB7XG4gIG1lbnVJY29uOiAnIzIwMjAyMCcsXG4gIHRleHRCcmFuZEJvbGQ6ICcjMDA1NzhjJyxcbiAgY2hpcFN1cmZhY2VIb3ZlcjogJyNmMmYyZjInLFxuICAvKiogQWxpbmVhZG8gY29uIHRoZW1lIGBncmV5WzMwMF1gIChpY29ubyBjZXJyYXIgY2hpcCkgKi9cbiAgY2hpcENsb3NlSWNvbjogJyNhNGFkYjUnLFxufSBhcyBjb25zdFxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLElBQU1BLGFBQWEsR0FBRztFQUMzQkMsT0FBTyxFQUFFLFNBQVM7RUFDbEJDLEtBQUssRUFBRSxTQUFTO0VBQ2hCQyxVQUFVLEVBQUUsU0FBUztFQUNyQkMsSUFBSSxFQUFFO0FBQ1IsQ0FBQztBQUVELE9BQU8sSUFBTUMsY0FBYyxHQUFHO0VBQzVCLEVBQUUsRUFBRSxTQUFTO0VBQ2IsR0FBRyxFQUFFLFNBQVM7RUFDZCxHQUFHLEVBQUUsU0FBUztFQUNkLEdBQUcsRUFBRSxTQUFTO0VBQ2QsR0FBRyxFQUFFLFNBQVM7RUFDZCxHQUFHLEVBQUUsU0FBUztFQUNkLEdBQUcsRUFBRSxTQUFTO0VBQ2QsR0FBRyxFQUFFLFNBQVM7RUFDZCxHQUFHLEVBQUUsU0FBUztFQUNkLEdBQUcsRUFBRTtBQUNQLENBQVU7QUFFVixPQUFPLElBQU1DLGdCQUFnQixHQUFHO0VBQzlCLEVBQUUsRUFBRSxTQUFTO0VBQ2IsR0FBRyxFQUFFLFNBQVM7RUFDZCxHQUFHLEVBQUUsU0FBUztFQUNkLEdBQUcsRUFBRSxTQUFTO0VBQ2QsR0FBRyxFQUFFLFNBQVM7RUFDZCxHQUFHLEVBQUUsU0FBUztFQUNkLEdBQUcsRUFBRSxTQUFTO0VBQ2QsR0FBRyxFQUFFLFNBQVM7RUFDZCxHQUFHLEVBQUUsU0FBUztFQUNkLEdBQUcsRUFBRTtBQUNQLENBQVU7QUFFVixPQUFPLElBQU1DLGNBQWMsR0FBRztFQUM1QkMsSUFBSSxFQUFFSCxjQUFjO0VBQ3BCSSxNQUFNLEVBQUVIO0FBQ1YsQ0FBVTs7QUFFVjtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sSUFBTUksa0JBQWtCLEdBQUc7RUFDaENDLFFBQVEsRUFBRSxTQUFTO0VBQ25CQyxhQUFhLEVBQUUsU0FBUztFQUN4QkMsZ0JBQWdCLEVBQUUsU0FBUztFQUMzQjtFQUNBQyxhQUFhLEVBQUU7QUFDakIsQ0FBVSIsImlnbm9yZUxpc3QiOltdfQ==
|