@projectcor/maia-components 2.11.94 → 2.11.96-0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/lib/components/atoms/MAIAInput/MAIAInput.js +4 -2
- package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.js +17 -0
- package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.styles.js +15 -0
- package/lib/components/atoms/SessionGeneratingDot/index.js +2 -0
- package/lib/components/atoms/icons/MaiaSparkleIcon.js +75 -0
- package/lib/components/atoms/icons/index.js +2 -1
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +46 -7
- package/lib/components/molecules/ChatAIModal/ChatAIModal.js +195 -62
- package/lib/components/molecules/ChatAIModal/ChatAIModal.styles.js +28 -18
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +9 -2
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +15 -3
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.styles.js +5 -1
- package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.js +55 -0
- package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.styles.js +46 -0
- package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/index.js +2 -0
- package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.js +3 -3
- package/lib/components/molecules/ChatFooter/ChatFooter.js +4 -2
- package/lib/components/molecules/Sidebar/Sidebar.js +108 -61
- package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +16 -1
- package/lib/components/molecules/Sidebar/Sidebar.styles.js +34 -29
- package/lib/components/organisms/ChatAI/ChatAI.js +6 -2
- package/lib/hooks/useChatManager/useChatManager.js +530 -438
- package/lib/hooks/useChatMessages/useChatMessages.js +414 -236
- package/lib/hooks/useChats/useChats.js +21 -4
- package/lib/hooks/useOrchestratorStream/useOrchestratorStream.interface.js +1 -1
- package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +139 -521
- package/lib/hooks/useStreamingMessage/index.js +2 -3
- package/lib/hooks/useStreamingMessage/useStreamingMessage.js +13 -17
- package/lib/lang/br/index.js +11 -1
- package/lib/lang/en/index.js +11 -1
- package/lib/lang/es/index.js +11 -1
- package/lib/lang/fr/index.js +13 -2
- package/lib/services/maia/Agents/getAgents.js +2 -5
- package/lib/services/maia/Chats/getChatsByUserId.js +6 -4
- package/lib/services/maia/Chats/index.js +3 -1
- package/lib/services/maia/Chats/markSessionAsRead.js +32 -0
- package/lib/store/chatsSidebarOptimistic.js +92 -0
- package/lib/store/chatsStore.types.js +1 -1
- package/lib/store/maiaMinimizedPersistence.js +49 -0
- package/lib/store/sessions/activeView.js +22 -0
- package/lib/store/sessions/index.js +9 -0
- package/lib/store/sessions/sessionHitlContext.js +15 -0
- package/lib/store/sessions/sessionNotificationSound.js +57 -0
- package/lib/store/sessions/sessionNotifications.js +110 -0
- package/lib/store/sessions/sessionNotifications.types.js +2 -0
- package/lib/store/sessions/sessionStreamManager.js +576 -0
- package/lib/store/sessions/sessionStreamingText.js +80 -0
- package/lib/store/sessions/sessions.types.js +35 -0
- package/lib/store/sessions/useSessionMeta.js +39 -0
- package/lib/store/sessions/useSessionStreamingText.js +18 -0
- package/lib/store/sessions/useSessionsStore.js +197 -0
- package/lib/store/useChatsStore.js +149 -12
- package/lib/types/Chat.js +1 -1
- package/lib/types/global.d.js +1 -1
- package/lib/utils/formatUnreadCount.js +6 -0
- package/package.json +1 -1
- package/lib/hooks/useStreamingMessage/streamingStore.js +0 -69
|
@@ -24,9 +24,6 @@ import { mapCORLang } from '../../../lang/utils';
|
|
|
24
24
|
var isMaiaAgent = function isMaiaAgent(agent) {
|
|
25
25
|
return (agent === null || agent === void 0 ? void 0 : agent.type) === 'orchestrator';
|
|
26
26
|
};
|
|
27
|
-
var isMarketplaceMaiakerEnabled = function isMarketplaceMaiakerEnabled() {
|
|
28
|
-
return !!window.MAIA_MARKETPLACE_MAIAKER;
|
|
29
|
-
};
|
|
30
27
|
var is403AgentFetchError = function is403AgentFetchError(err) {
|
|
31
28
|
var _error$response, _error$message, _error$message2;
|
|
32
29
|
var error = err;
|
|
@@ -242,7 +239,7 @@ export var useGetAgents = function useGetAgents(_ref) {
|
|
|
242
239
|
return _regeneratorRuntime.wrap(function (_context) {
|
|
243
240
|
while (1) switch (_context.prev = _context.next) {
|
|
244
241
|
case 0:
|
|
245
|
-
if (!(!
|
|
242
|
+
if (!(!window.MAIA_CHAT_AI_FEATURE_ACCESS_MULTI_AGENTS || !canFetchCloneAgents)) {
|
|
246
243
|
_context.next = 1;
|
|
247
244
|
break;
|
|
248
245
|
}
|
|
@@ -718,4 +715,4 @@ export var useGetAgents = function useGetAgents(_ref) {
|
|
|
718
715
|
sortAgentsList: sortAgentsList
|
|
719
716
|
};
|
|
720
717
|
};
|
|
721
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwidXNlUmVmIiwidXNlVHJhbnNsYXRpb24iLCJ1c2VTbmFja0Jhck1hbmFnZXIiLCJmZXRjaE1haWEiLCJ3aXRoTm9ybWFsaXplZENvbm5lY3RvcnMiLCJ1c2VVc2VyIiwiaXNNYWlhQ2xvbmVBZ2VudHNSb2xlQmxvY2tlZCIsIm1hcENPUkxhbmciLCJpc01haWFBZ2VudCIsImFnZW50IiwidHlwZSIsImlzTWFya2V0cGxhY2VNYWlha2VyRW5hYmxlZCIsIndpbmRvdyIsIk1BSUFfTUFSS0VUUExBQ0VfTUFJQUtFUiIsImlzNDAzQWdlbnRGZXRjaEVycm9yIiwiZXJyIiwiX2Vycm9yJHJlc3BvbnNlIiwiX2Vycm9yJG1lc3NhZ2UiLCJfZXJyb3IkbWVzc2FnZTIiLCJlcnJvciIsInJlc3BvbnNlIiwic3RhdHVzIiwiQm9vbGVhbiIsIm1lc3NhZ2UiLCJpbmNsdWRlcyIsIm1lcmdlQWdlbnRzV2l0aG91dER1cGxpY2F0ZXMiLCJiYXNlIiwiZXh0cmEiLCJpZHMiLCJTZXQiLCJtYXAiLCJpZCIsIm1lcmdlZCIsIl90b0NvbnN1bWFibGVBcnJheSIsImZvckVhY2giLCJoYXMiLCJwdXNoIiwic29ydEFnZW50cyIsImFnZW50cyIsIm1haWFBZ2VudHMiLCJmaWx0ZXIiLCJvdGhlckFnZW50cyIsImFnIiwiZmF2b3JpdGVzIiwiaXNfZmF2b3JpdGUiLCJzb3J0IiwiYSIsImIiLCJuYW1lIiwibG9jYWxlQ29tcGFyZSIsIm5vbkZhdm9yaXRlcyIsImxlbmd0aCIsImNvbmNhdCIsIm5vcm1hbGl6ZUN1c3RvbUFnZW50c0Zyb21BcGkiLCJ1c2VHZXRBZ2VudHMiLCJfcmVmIiwic2VsZWN0QWdlbnQiLCJzZWN0aW9uIiwiaGFuZGxlR29Ib21lIiwidXNlciIsIl91c2VTdGF0ZSIsImRhdGEiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJzZXRBZ2VudHMiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImxvYWRpbmciLCJzZXRMb2FkaW5nIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJsb2FkaW5nTW9yZSIsInNldExvYWRpbmdNb3JlIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJzZWFyY2hMb2FkaW5nIiwic2V0U2VhcmNoTG9hZGluZyIsIl91c2VTdGF0ZTkiLCJfdXNlU3RhdGUwIiwic2V0RXJyb3IiLCJfdXNlU25hY2tCYXJNYW5hZ2VyIiwiaGFuZGxlU25hY2tiYXJFcnJvciIsIl91c2VUcmFuc2xhdGlvbiIsInQiLCJpMThuIiwibGFzdFNlbGVjdGVkQWdlbnRSZWYiLCJpc1JlZnJlc2hpbmdSZWYiLCJsYXN0UmVxdWVzdFJlZiIsImFnZW50c1JlZiIsInByZVNlYXJjaEFnZW50c1JlZiIsImN1cnJlbnQiLCJhZGRBZ2VudCIsIm5ld0FnZW50Iiwib3B0aW9ucyIsInByZXYiLCJhZ2VudEV4aXN0cyIsInNvbWUiLCJleGlzdGluZ0FnZW50IiwibmV3RGF0YSIsInNvcnRlZERhdGEiLCJfb2JqZWN0U3ByZWFkIiwibmF2aWdhdGVIb21lIiwicmVtb3ZlQWdlbnQiLCJhZ2VudElkIiwidG9TdHJpbmciLCJ1cGRhdGVBZ2VudCIsInVwZGF0ZWRBZ2VudCIsInVwZGF0ZWREYXRhIiwidXBkYXRlQWdlbnRGYXZvcml0ZSIsInNob3VsZFNvcnQiLCJhcmd1bWVudHMiLCJ1bmRlZmluZWQiLCJfcmVmMiIsImFnZW50RmllbGRzIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwiX2V4Y2x1ZGVkIiwibWVyZ2VkQWdlbnQiLCJmaW5hbERhdGEiLCJmaW5kIiwiX3JlZjMiLCJfZXhjbHVkZWQyIiwiX3JlZjQiLCJfZXhjbHVkZWQzIiwic29ydEFnZW50c0xpc3QiLCJzZWxlY3RGaXJzdEFnZW50IiwiZmlyc3RBZ2VudCIsImZpbmRJbmRleCIsImFnZW50RGF0YSIsImhhbmRsZUdldEFnZW50cyIsIl9yZWY1IiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWU0IiwiYWdlbnRUb1NlbGVjdCIsIl9hZ2VudFRvU2VsZWN0JGlkIiwicmVxdWVzdEtleSIsImlzTXVsdGlBZ2VudHMiLCJhZ2VudFBhcnNlZCIsImhhc01vcmUiLCJuZXh0T2Zmc2V0IiwiY2xvbmVBZ2VudHNSb2xlQmxvY2tlZCIsImNhbkZldGNoQ2xvbmVBZ2VudHMiLCJmZXRjaEdsb2JhbENsb25lQWdlbnRzIiwiY3VzdG9tQWdlbnRzIiwiY3VzdG9tSGFzTW9yZSIsImN1c3RvbU5leHRPZmZzZXQiLCJpczQwMyIsImxvYWRDbG9uZUFnZW50cyIsImxvYWRDdXN0b21BZ2VudHMiLCJxdWVyeVBhcmFtcyIsInF1ZXJ5U3RyaW5nIiwicGF0aCIsImdsb2JhbENsb25lQWdlbnRzIiwiX3Jlc3BvbnNlRXJyb3IkcmVzcG9uIiwiX3Jlc3BvbnNlRXJyb3IkbWVzc2FnIiwiX3Jlc3BvbnNlRXJyb3IkbWVzc2FnMiIsImlzNDAzRXJyb3IiLCJfYWdlbnRQYXJzZWQiLCJfYWdlbnRQYXJzZWQyIiwiX2xhc3RTZWxlY3RlZEFnZW50UmVmIiwiX2xhc3RTZWxlY3RlZEFnZW50UmVmMiIsImF2YWlsYWJsZUFnZW50cyIsIl9hdmFpbGFibGVBZ2VudHMiLCJfbGFzdFNlbGVjdGVkQWdlbnRSZWYzIiwiX2F2YWlsYWJsZUFnZW50czIiLCJfYXZhaWxhYmxlQWdlbnRzMyIsImZpcnN0QXZhaWxhYmxlQWdlbnQiLCJfdDQiLCJfdDUiLCJ3cmFwIiwiX2NvbnRleHQ0IiwibmV4dCIsImFicnVwdCIsIk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTUyIsIk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFMiLCJfcmVmNiIsIl9jYWxsZWUiLCJjbG9uZVJlc3BvbnNlIiwiY2xvbmVEYXRhIiwiX3QiLCJfY29udGV4dCIsImxhbmd1YWdlIiwibWV0aG9kIiwic2VudCIsImpzb24iLCJzdG9wIiwiYXBwbHkiLCJfcmVmNyIsIl9jYWxsZWUyIiwiX21haWFEYXRhJGRhdGEiLCJtYWlhUmVzcG9uc2UiLCJtYWlhRGF0YSIsIl90MiIsIl9jb250ZXh0MiIsIl9yZWY4IiwiX2NhbGxlZTMiLCJjdXN0b21SZXNwb25zZSIsImN1c3RvbURhdGEiLCJfdDMiLCJfY29udGV4dDMiLCJoYXNfbW9yZSIsIm5leHRfb2Zmc2V0IiwiUHJvbWlzZSIsImFsbCIsIlVSTFNlYXJjaFBhcmFtcyIsImFwcGVuZCIsImFnZW50VG9SZXF1ZXN0IiwiYWdlbnRJdGVtIiwiRXJyb3IiLCJzZXRUaW1lb3V0IiwiZmluaXNoIiwiX3giLCJzZWFyY2hDdXN0b21BZ2VudHMiLCJfcmVmOSIsIl9jYWxsZWU1IiwicXVlcnkiLCJfdDYiLCJfY29udGV4dDUiLCJlbmNvZGVVUklDb21wb25lbnQiLCJjbG9uZUFnZW50cyIsImN1c3RvbVJlc3VsdHMiLCJfeDIiLCJsb2FkTW9yZUFnZW50cyIsIl9jYWxsZWU2IiwiY2FuTG9hZE1vcmUiLCJfdDciLCJfY29udGV4dDYiLCJleGlzdGluZ01haWFBZ2VudHMiLCJleGlzdGluZ0lkcyIsIm5ld0FnZW50cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9tYWlhL0FnZW50cy9nZXRBZ2VudHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1uZXN0ZWQtdGVybmFyeSAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tY29uc29sZSAqL1xuaW1wb3J0IHsgdXNlU3RhdGUsIHVzZUNhbGxiYWNrLCB1c2VSZWYgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCdcbmltcG9ydCB7IHVzZVNuYWNrQmFyTWFuYWdlciB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVNuYWNrQmFyTWFuYWdlci91c2VTbmFja0Jhck1hbmFnZXInXG5pbXBvcnQgeyBmZXRjaE1haWEgfSBmcm9tICcuLi9jbGllbnQnXG5pbXBvcnQgeyB3aXRoTm9ybWFsaXplZENvbm5lY3RvcnMgfSBmcm9tICcuLi8uLi8uLi91dGlscy9ub3JtYWxpemVBZ2VudENvbm5lY3RvcnMnXG5pbXBvcnQgeyBBZ2VudCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2FnZW50J1xuaW1wb3J0IHsgdXNlVXNlciB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvY29yLXVzZXInXG5pbXBvcnQgeyBpc01haWFDbG9uZUFnZW50c1JvbGVCbG9ja2VkIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL21haWFUYXNrUGFuZWxBY2Nlc3MnXG5pbXBvcnQgeyBTZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9nbG9iYWwtY29udGV4dCdcbmltcG9ydCB7IG1hcENPUkxhbmcgfSBmcm9tICcuLi8uLi8uLi9sYW5nL3V0aWxzJ1xuXG5jb25zdCBpc01haWFBZ2VudCA9IChhZ2VudDogQWdlbnQpID0+IGFnZW50Py50eXBlID09PSAnb3JjaGVzdHJhdG9yJ1xuXG5jb25zdCBpc01hcmtldHBsYWNlTWFpYWtlckVuYWJsZWQgPSAoKSA9PiAhIXdpbmRvdy5NQUlBX01BUktFVFBMQUNFX01BSUFLRVJcblxuY29uc3QgaXM0MDNBZ2VudEZldGNoRXJyb3IgPSAoZXJyOiB1bmtub3duKTogYm9vbGVhbiA9PiB7XG4gIGNvbnN0IGVycm9yID0gZXJyIGFzIHsgcmVzcG9uc2U/OiB7IHN0YXR1cz86IG51bWJlciB9OyBzdGF0dXM/OiBudW1iZXI7IG1lc3NhZ2U/OiBzdHJpbmcgfVxuICByZXR1cm4gKFxuICAgIGVycm9yPy5yZXNwb25zZT8uc3RhdHVzID09PSA0MDMgfHxcbiAgICBlcnJvcj8uc3RhdHVzID09PSA0MDMgfHxcbiAgICBCb29sZWFuKGVycm9yPy5tZXNzYWdlPy5pbmNsdWRlcyhcIllvdSBkb24ndCBoYXZlIHBlcm1pc3Npb24gdG8gdmlldyBhZ2VudHNcIikpIHx8XG4gICAgQm9vbGVhbihlcnJvcj8ubWVzc2FnZT8uaW5jbHVkZXMoJ0ZhaWxlZCBmZXRjaGluZyBkYXRhJykpXG4gIClcbn1cblxuY29uc3QgbWVyZ2VBZ2VudHNXaXRob3V0RHVwbGljYXRlcyA9IChiYXNlOiBBZ2VudFtdLCBleHRyYTogQWdlbnRbXSk6IEFnZW50W10gPT4ge1xuICBjb25zdCBpZHMgPSBuZXcgU2V0KGJhc2UubWFwKGFnZW50ID0+IGFnZW50LmlkKSlcbiAgY29uc3QgbWVyZ2VkID0gWy4uLmJhc2VdXG4gIGV4dHJhLmZvckVhY2goYWdlbnQgPT4ge1xuICAgIGlmICghaWRzLmhhcyhhZ2VudC5pZCkpIG1lcmdlZC5wdXNoKGFnZW50KVxuICB9KVxuICByZXR1cm4gbWVyZ2VkXG59XG5cbi8qKlxuICogT3JkZW5hIGxvcyBhZ2VudGVzOiBNQUlBIHByaW1lcm8gKHNpIGV4aXN0ZSksIGx1ZWdvIGZhdm9yaXRvcyBhbGZhYsOpdGljYW1lbnRlLCBsdWVnbyBubyBmYXZvcml0b3MgYWxmYWLDqXRpY2FtZW50ZVxuICovXG5jb25zdCBzb3J0QWdlbnRzID0gKGFnZW50czogQWdlbnRbXSk6IEFnZW50W10gPT4ge1xuICBjb25zdCBtYWlhQWdlbnRzID0gYWdlbnRzLmZpbHRlcihpc01haWFBZ2VudClcbiAgY29uc3Qgb3RoZXJBZ2VudHMgPSBhZ2VudHMuZmlsdGVyKGFnID0+ICFpc01haWFBZ2VudChhZykpXG5cbiAgLy8gU2VwYXJhciBmYXZvcml0b3MgeSBubyBmYXZvcml0b3NcbiAgY29uc3QgZmF2b3JpdGVzID0gb3RoZXJBZ2VudHMuZmlsdGVyKGFnID0+IGFnLmlzX2Zhdm9yaXRlKS5zb3J0KChhLCBiKSA9PiBhLm5hbWUubG9jYWxlQ29tcGFyZShiLm5hbWUpKVxuICBjb25zdCBub25GYXZvcml0ZXMgPSBvdGhlckFnZW50cy5maWx0ZXIoYWcgPT4gIWFnLmlzX2Zhdm9yaXRlKS5zb3J0KChhLCBiKSA9PiBhLm5hbWUubG9jYWxlQ29tcGFyZShiLm5hbWUpKVxuXG4gIHJldHVybiBtYWlhQWdlbnRzLmxlbmd0aCA/IFsuLi5tYWlhQWdlbnRzLCAuLi5mYXZvcml0ZXMsIC4uLm5vbkZhdm9yaXRlc10gOiBbLi4uZmF2b3JpdGVzLCAuLi5ub25GYXZvcml0ZXNdXG59XG5cbmNvbnN0IG5vcm1hbGl6ZUN1c3RvbUFnZW50c0Zyb21BcGkgPSAoYWdlbnRzOiBBZ2VudFtdKTogQWdlbnRbXSA9PlxuICBhZ2VudHMubWFwKGFnZW50ID0+IChhZ2VudC50eXBlID09PSAnY3VzdG9tJyA/IHdpdGhOb3JtYWxpemVkQ29ubmVjdG9ycyhhZ2VudCkgOiBhZ2VudCkpXG5cbnR5cGUgVXNlR2V0QWdlbnRzUHJvcHMgPSB7XG4gIHNlbGVjdEFnZW50OiAoYWdlbnQ6IEFnZW50KSA9PiB2b2lkXG4gIHNlY3Rpb246IFNlY3Rpb25cbiAgYWdlbnQ6IEFnZW50IHwgbnVsbFxuICBoYW5kbGVHb0hvbWU6ICgpID0+IHZvaWRcbn1cblxuZXhwb3J0IHR5cGUgQWRkQWdlbnRPcHRpb25zID0ge1xuICAvKiogUG9yIGRlZmVjdG8gYHRydWVgIChjb21wb3J0YW1pZW50byBBQk0pLiBQYXNhciBgZmFsc2VgIGFsIGluc2VydGFyIGFnZW50ZSBjcmVhZG8gcG9yIGNoYXQgc2luIGNhbWJpYXIgZGUgdmlzdGEuICovXG4gIG5hdmlnYXRlSG9tZT86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGNvbnN0IHVzZUdldEFnZW50cyA9ICh7IHNlbGVjdEFnZW50LCBzZWN0aW9uLCBhZ2VudCwgaGFuZGxlR29Ib21lIH06IFVzZUdldEFnZW50c1Byb3BzKSA9PiB7XG4gIGNvbnN0IHVzZXIgPSB1c2VVc2VyKClcbiAgY29uc3QgW2FnZW50cywgc2V0QWdlbnRzXSA9IHVzZVN0YXRlPHsgZGF0YTogQWdlbnRbXTsgaGFzX21vcmU/OiBib29sZWFuOyBuZXh0X29mZnNldD86IG51bWJlciB8IG51bGwgfT4oeyBkYXRhOiBbXSB9KVxuICBjb25zdCBbbG9hZGluZywgc2V0TG9hZGluZ10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2xvYWRpbmdNb3JlLCBzZXRMb2FkaW5nTW9yZV0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW3NlYXJjaExvYWRpbmcsIHNldFNlYXJjaExvYWRpbmddID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtlcnJvciwgc2V0RXJyb3JdID0gdXNlU3RhdGU8c3RyaW5nIHwgbnVsbD4obnVsbClcbiAgY29uc3QgeyBoYW5kbGVTbmFja2JhckVycm9yIH0gPSB1c2VTbmFja0Jhck1hbmFnZXIoKVxuICBjb25zdCB7IHQsIGkxOG4gfSA9IHVzZVRyYW5zbGF0aW9uKCdjaGF0X2FpX3NlY3Rpb24nKVxuICBjb25zdCBsYXN0U2VsZWN0ZWRBZ2VudFJlZiA9IHVzZVJlZjxBZ2VudCB8IG51bGw+KG51bGwpXG4gIGNvbnN0IGlzUmVmcmVzaGluZ1JlZiA9IHVzZVJlZihmYWxzZSlcbiAgY29uc3QgbGFzdFJlcXVlc3RSZWYgPSB1c2VSZWY8c3RyaW5nIHwgbnVsbD4obnVsbClcbiAgY29uc3QgYWdlbnRzUmVmID0gdXNlUmVmKGFnZW50cylcbiAgY29uc3QgcHJlU2VhcmNoQWdlbnRzUmVmID0gdXNlUmVmPHsgZGF0YTogQWdlbnRbXTsgaGFzX21vcmU/OiBib29sZWFuOyBuZXh0X29mZnNldD86IG51bWJlciB8IG51bGwgfSB8IG51bGw+KG51bGwpXG5cbiAgYWdlbnRzUmVmLmN1cnJlbnQgPSBhZ2VudHNcblxuICBjb25zdCBhZGRBZ2VudCA9IHVzZUNhbGxiYWNrKFxuICAgIChuZXdBZ2VudDogQWdlbnQsIG9wdGlvbnM/OiBBZGRBZ2VudE9wdGlvbnMpID0+IHtcbiAgICAgIHNldEFnZW50cyhwcmV2ID0+IHtcbiAgICAgICAgLy8gVmVyaWZpY2FyIHNpIGVsIGFnZW50ZSB5YSBleGlzdGUgcGFyYSBldml0YXIgZHVwbGljYWRvc1xuICAgICAgICBjb25zdCBhZ2VudEV4aXN0cyA9IHByZXYuZGF0YS5zb21lKGV4aXN0aW5nQWdlbnQgPT4gZXhpc3RpbmdBZ2VudC5pZCA9PT0gbmV3QWdlbnQuaWQpXG4gICAgICAgIGlmIChhZ2VudEV4aXN0cykge1xuICAgICAgICAgIHJldHVybiBwcmV2XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbmV3RGF0YSA9IFsuLi5wcmV2LmRhdGEsIG5ld0FnZW50XVxuICAgICAgICBjb25zdCBzb3J0ZWREYXRhID0gc29ydEFnZW50cyhuZXdEYXRhKVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnByZXYsXG4gICAgICAgICAgZGF0YTogc29ydGVkRGF0YSxcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIGlmIChvcHRpb25zPy5uYXZpZ2F0ZUhvbWUgIT09IGZhbHNlKSB7XG4gICAgICAgIGhhbmRsZUdvSG9tZSgpXG4gICAgICB9XG4gICAgfSxcbiAgICBbaGFuZGxlR29Ib21lXVxuICApXG5cbiAgY29uc3QgcmVtb3ZlQWdlbnQgPSB1c2VDYWxsYmFjaygoYWdlbnRJZDogbnVtYmVyIHwgc3RyaW5nKSA9PiB7XG4gICAgc2V0QWdlbnRzKHByZXYgPT4gKHtcbiAgICAgIC4uLnByZXYsXG4gICAgICBkYXRhOiBwcmV2LmRhdGEuZmlsdGVyKGEgPT4gYS5pZCAhPT0gYWdlbnRJZC50b1N0cmluZygpKSxcbiAgICB9KSlcbiAgfSwgW10pXG5cbiAgY29uc3QgdXBkYXRlQWdlbnQgPSB1c2VDYWxsYmFjaygodXBkYXRlZEFnZW50OiBBZ2VudCkgPT4ge1xuICAgIHNldEFnZW50cyhwcmV2ID0+IHtcbiAgICAgIGNvbnN0IHVwZGF0ZWREYXRhID0gcHJldi5kYXRhLm1hcChleGlzdGluZ0FnZW50ID0+XG4gICAgICAgIGV4aXN0aW5nQWdlbnQuaWQgPT09IHVwZGF0ZWRBZ2VudC5pZCA/IHVwZGF0ZWRBZ2VudCA6IGV4aXN0aW5nQWdlbnRcbiAgICAgIClcbiAgICAgIGNvbnN0IHNvcnRlZERhdGEgPSBzb3J0QWdlbnRzKHVwZGF0ZWREYXRhKVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ucHJldixcbiAgICAgICAgZGF0YTogc29ydGVkRGF0YSxcbiAgICAgIH1cbiAgICB9KVxuICB9LCBbXSlcblxuICBjb25zdCB1cGRhdGVBZ2VudEZhdm9yaXRlID0gdXNlQ2FsbGJhY2soXG4gICAgKHVwZGF0ZWRBZ2VudDogQWdlbnQsIHNob3VsZFNvcnQ6IGJvb2xlYW4gPSBmYWxzZSkgPT4ge1xuICAgICAgc2V0QWdlbnRzKHByZXYgPT4ge1xuICAgICAgICBjb25zdCB1cGRhdGVkRGF0YSA9IHByZXYuZGF0YS5tYXAoZXhpc3RpbmdBZ2VudCA9PiB7XG4gICAgICAgICAgaWYgKGV4aXN0aW5nQWdlbnQuaWQgPT09IHVwZGF0ZWRBZ2VudC5pZCkge1xuICAgICAgICAgICAgY29uc3QgeyBtZXNzYWdlLCAuLi5hZ2VudEZpZWxkcyB9ID0gdXBkYXRlZEFnZW50IGFzIGFueVxuICAgICAgICAgICAgY29uc3QgbWVyZ2VkQWdlbnQgPSB7IC4uLmV4aXN0aW5nQWdlbnQsIC4uLmFnZW50RmllbGRzIH1cbiAgICAgICAgICAgIHJldHVybiBtZXJnZWRBZ2VudFxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gZXhpc3RpbmdBZ2VudFxuICAgICAgICB9KVxuXG4gICAgICAgIC8vIFNvbG8gb3JkZW5hciBzaSBzaG91bGRTb3J0IGVzIHRydWVcbiAgICAgICAgY29uc3QgZmluYWxEYXRhID0gc2hvdWxkU29ydCA/IHNvcnRBZ2VudHModXBkYXRlZERhdGEpIDogdXBkYXRlZERhdGFcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnByZXYsXG4gICAgICAgICAgZGF0YTogZmluYWxEYXRhLFxuICAgICAgICB9XG4gICAgICB9KVxuXG4gICAgICAvLyBBY3R1YWxpemFyIGVsIGFnZW50ZSBzZWxlY2Npb25hZG8gc2kgZXMgZWwgcXVlIHNlIGVzdMOhIGFjdHVhbGl6YW5kb1xuICAgICAgaWYgKGFnZW50Py5pZCA9PT0gdXBkYXRlZEFnZW50LmlkKSB7XG4gICAgICAgIGNvbnN0IGV4aXN0aW5nQWdlbnQgPSBhZ2VudHMuZGF0YS5maW5kKGEgPT4gYS5pZCA9PT0gdXBkYXRlZEFnZW50LmlkKVxuICAgICAgICBpZiAoZXhpc3RpbmdBZ2VudCkge1xuICAgICAgICAgIGNvbnN0IHsgbWVzc2FnZSwgLi4uYWdlbnRGaWVsZHMgfSA9IHVwZGF0ZWRBZ2VudCBhcyBhbnlcbiAgICAgICAgICBjb25zdCBtZXJnZWRBZ2VudCA9IHsgLi4uZXhpc3RpbmdBZ2VudCwgLi4uYWdlbnRGaWVsZHMgfVxuICAgICAgICAgIHNlbGVjdEFnZW50KG1lcmdlZEFnZW50KVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IHsgbWVzc2FnZSwgLi4uYWdlbnRGaWVsZHMgfSA9IHVwZGF0ZWRBZ2VudCBhcyBhbnlcbiAgICAgICAgICBzZWxlY3RBZ2VudChhZ2VudEZpZWxkcyBhcyBBZ2VudClcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgW2FnZW50LCBzZWxlY3RBZ2VudCwgYWdlbnRzLmRhdGFdXG4gIClcblxuICBjb25zdCBzb3J0QWdlbnRzTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZXRBZ2VudHMocHJldiA9PiB7XG4gICAgICBjb25zdCBzb3J0ZWREYXRhID0gc29ydEFnZW50cyhwcmV2LmRhdGEpXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5wcmV2LFxuICAgICAgICBkYXRhOiBzb3J0ZWREYXRhLFxuICAgICAgfVxuICAgIH0pXG4gIH0sIFtdKVxuXG4gIGNvbnN0IHNlbGVjdEZpcnN0QWdlbnQgPSB1c2VDYWxsYmFjayhcbiAgICAoYWdlbnRJZD86IHN0cmluZykgPT4ge1xuICAgICAgaWYgKGFnZW50cy5kYXRhLmxlbmd0aCkge1xuICAgICAgICBjb25zdCBmaXJzdEFnZW50ID0gYWdlbnRzLmRhdGEuZmluZEluZGV4KGFnZW50RGF0YSA9PiBhZ2VudERhdGEuaWQgPT09IGFnZW50SWQpXG4gICAgICAgIGxhc3RTZWxlY3RlZEFnZW50UmVmLmN1cnJlbnQgPSBhZ2VudHMuZGF0YVtmaXJzdEFnZW50ID09PSAwID8gMSA6IDBdXG4gICAgICAgIHNlbGVjdEFnZW50KGFnZW50cy5kYXRhW2ZpcnN0QWdlbnQgPT09IDAgPyAxIDogMF0pXG4gICAgICB9XG4gICAgfSxcbiAgICBbYWdlbnRzLmRhdGEsIHNlbGVjdEFnZW50XVxuICApXG5cbiAgY29uc3QgaGFuZGxlR2V0QWdlbnRzID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKGFnZW50VG9TZWxlY3Q/OiBBZ2VudCkgPT4ge1xuICAgICAgaWYgKGlzUmVmcmVzaGluZ1JlZi5jdXJyZW50KSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBjb25zdCByZXF1ZXN0S2V5ID0gYWdlbnRUb1NlbGVjdD8uaWQ/LnRvU3RyaW5nKCkgfHwgJ2RlZmF1bHQnXG4gICAgICBpZiAobGFzdFJlcXVlc3RSZWYuY3VycmVudCA9PT0gcmVxdWVzdEtleSAmJiAhbG9hZGluZykge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgaXNSZWZyZXNoaW5nUmVmLmN1cnJlbnQgPSB0cnVlXG4gICAgICBsYXN0UmVxdWVzdFJlZi5jdXJyZW50ID0gcmVxdWVzdEtleVxuICAgICAgc2V0TG9hZGluZyh0cnVlKVxuICAgICAgc2V0RXJyb3IobnVsbClcblxuICAgICAgY29uc3QgaXNNdWx0aUFnZW50cyA9ICEhd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTUyAmJiAhIXdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1NfTVVMVElfQUdFTlRTXG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGxldCBhZ2VudFBhcnNlZDogQWdlbnRbXSA9IFtdXG4gICAgICAgIGxldCBoYXNNb3JlID0gZmFsc2VcbiAgICAgICAgbGV0IG5leHRPZmZzZXQ6IG51bWJlciB8IG51bGwgPSBudWxsXG4gICAgICAgIGNvbnN0IGNsb25lQWdlbnRzUm9sZUJsb2NrZWQgPSBpc01haWFDbG9uZUFnZW50c1JvbGVCbG9ja2VkKHVzZXIsIHNlY3Rpb24pXG4gICAgICAgIGNvbnN0IGNhbkZldGNoQ2xvbmVBZ2VudHMgPSAhY2xvbmVBZ2VudHNSb2xlQmxvY2tlZFxuXG4gICAgICAgIGNvbnN0IGZldGNoR2xvYmFsQ2xvbmVBZ2VudHMgPSBhc3luYyAoKTogUHJvbWlzZTxBZ2VudFtdPiA9PiB7XG4gICAgICAgICAgaWYgKCFpc01hcmtldHBsYWNlTWFpYWtlckVuYWJsZWQoKSB8fCAhY2FuRmV0Y2hDbG9uZUFnZW50cykgcmV0dXJuIFtdXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGNsb25lUmVzcG9uc2UgPSBhd2FpdCBmZXRjaE1haWEoe1xuICAgICAgICAgICAgICBwYXRoOiBgYWdlbnRzP2FnZW50X3R5cGU9Y2xvbmUmZW50aXR5PWdsb2JhbCZsYW5nPSR7bWFwQ09STGFuZyhpMThuLmxhbmd1YWdlKX1gLFxuICAgICAgICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIGNvbnN0IGNsb25lRGF0YSA9IGF3YWl0IGNsb25lUmVzcG9uc2UuanNvbigpXG4gICAgICAgICAgICByZXR1cm4gKGNsb25lRGF0YS5kYXRhIHx8IFtdKS5maWx0ZXIoKGFnOiBBZ2VudCkgPT4gYWcudHlwZSA9PT0gJ2Nsb25lJylcbiAgICAgICAgICB9IGNhdGNoIChjbG9uZUVycm9yKSB7XG4gICAgICAgICAgICBpZiAoaXM0MDNBZ2VudEZldGNoRXJyb3IoY2xvbmVFcnJvcikpIHJldHVybiBbXVxuICAgICAgICAgICAgdGhyb3cgY2xvbmVFcnJvclxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFNpIHRpZW5lIGZlYXR1cmUgYWNjZXNzIG11bHRpIGFnZW50cywgaGFjZXIgZG9zIHF1ZXJpZXMgKE1haWEgKyBjdXN0b20pIGVuIGN1YWxxdWllciBzZWNjacOzblxuICAgICAgICBpZiAoaXNNdWx0aUFnZW50cykge1xuICAgICAgICAgIC8vIFF1ZXJ5IGNsb25lIChNYWlhKSB5IGN1c3RvbSBzb24gaW5kZXBlbmRpZW50ZXMg4oaSIHNlIGRpc3BhcmFuIGVuIHBhcmFsZWxvLlxuICAgICAgICAgIGxldCBjdXN0b21BZ2VudHM6IEFnZW50W10gPSBbXVxuICAgICAgICAgIGxldCBjdXN0b21IYXNNb3JlID0gZmFsc2VcbiAgICAgICAgICBsZXQgY3VzdG9tTmV4dE9mZnNldDogbnVtYmVyIHwgbnVsbCA9IG51bGxcblxuICAgICAgICAgIGNvbnN0IGlzNDAzID0gaXM0MDNBZ2VudEZldGNoRXJyb3JcblxuICAgICAgICAgIGxldCBtYWlhQWdlbnRzOiBBZ2VudFtdID0gW11cblxuICAgICAgICAgIGNvbnN0IGxvYWRDbG9uZUFnZW50cyA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIGlmICghY2FuRmV0Y2hDbG9uZUFnZW50cykgcmV0dXJuXG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBjb25zdCBtYWlhUmVzcG9uc2UgPSBhd2FpdCBmZXRjaE1haWEoe1xuICAgICAgICAgICAgICAgIHBhdGg6IGBhZ2VudHM/YWdlbnRfdHlwZT1vcmNoZXN0cmF0b3ImbGFuZz0ke21hcENPUkxhbmcoaTE4bi5sYW5ndWFnZSl9YCxcbiAgICAgICAgICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICBjb25zdCBtYWlhRGF0YSA9IGF3YWl0IG1haWFSZXNwb25zZS5qc29uKClcbiAgICAgICAgICAgICAgbWFpYUFnZW50cyA9IG1haWFEYXRhLmRhdGE/LmZpbHRlcihpc01haWFBZ2VudCkgfHwgW11cbiAgICAgICAgICAgICAgY29uc3QgZ2xvYmFsQ2xvbmVBZ2VudHMgPSBhd2FpdCBmZXRjaEdsb2JhbENsb25lQWdlbnRzKClcbiAgICAgICAgICAgICAgbWFpYUFnZW50cyA9IG1lcmdlQWdlbnRzV2l0aG91dER1cGxpY2F0ZXMobWFpYUFnZW50cywgZ2xvYmFsQ2xvbmVBZ2VudHMpXG4gICAgICAgICAgICB9IGNhdGNoIChtYWlhRXJyb3I6IHVua25vd24pIHtcbiAgICAgICAgICAgICAgLy8gU2kgZXMgNDAzLCBjb250aW51YXIgc2luIGxvcyBjbG9uZUFnZW50czsgc2kgZXMgb3RybyBlcnJvciwgcHJvcGFnYXJsb1xuICAgICAgICAgICAgICBpZiAoIWlzNDAzKG1haWFFcnJvcikpIHRocm93IG1haWFFcnJvclxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGxvYWRDdXN0b21BZ2VudHMgPSBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBjb25zdCBjdXN0b21SZXNwb25zZSA9IGF3YWl0IGZldGNoTWFpYSh7XG4gICAgICAgICAgICAgICAgcGF0aDogJ2FnZW50cz9hZ2VudF90eXBlPWN1c3RvbSZsaW1pdD03Jm9mZnNldD0wJyxcbiAgICAgICAgICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICBjb25zdCBjdXN0b21EYXRhID0gYXdhaXQgY3VzdG9tUmVzcG9uc2UuanNvbigpXG4gICAgICAgICAgICAgIGN1c3RvbUFnZW50cyA9IG5vcm1hbGl6ZUN1c3RvbUFnZW50c0Zyb21BcGkoY3VzdG9tRGF0YS5kYXRhIHx8IFtdKVxuICAgICAgICAgICAgICBjdXN0b21IYXNNb3JlID0gY3VzdG9tRGF0YS5oYXNfbW9yZSB8fCBmYWxzZVxuICAgICAgICAgICAgICBjdXN0b21OZXh0T2Zmc2V0ID0gY3VzdG9tRGF0YS5uZXh0X29mZnNldCB8fCBudWxsXG4gICAgICAgICAgICB9IGNhdGNoIChjdXN0b21FcnJvcjogYW55KSB7XG4gICAgICAgICAgICAgIC8vIFNpIGVzIDQwMywgY29udGludWFyIHNpbiBsb3MgY3VzdG9tQWdlbnRzIChxdWVkYSBjb21vIGFycmF5IHZhY8Otbyk7IHNpIG5vLCBwcm9wYWdhcmxvXG4gICAgICAgICAgICAgIGlmICghaXM0MDMoY3VzdG9tRXJyb3IpKSB0aHJvdyBjdXN0b21FcnJvclxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFtsb2FkQ2xvbmVBZ2VudHMoKSwgbG9hZEN1c3RvbUFnZW50cygpXSlcblxuICAgICAgICAgIC8vIENvbWJpbmFyOiBhZ2VudGVzIGNsb25lIHByaW1lcm8sIGx1ZWdvIGxvcyBjdXN0b20gKHNpIGV4aXN0ZW4pXG4gICAgICAgICAgLy8gU2kgZWwgdXN1YXJpbyB0aWVuZSB1biByb2wgZGVzaGFiaWxpdGFkbywgbm8gaW5jbHVpciBjbG9uZUFnZW50c1xuICAgICAgICAgIGlmICghY2FuRmV0Y2hDbG9uZUFnZW50cykge1xuICAgICAgICAgICAgLy8gUm9sIHNpbiBhY2Nlc28gYSBjbG9uZXMgKHAuIGVqLiBmcmVlbGFuY2VyL2NsaWVudGUgbyBjb2xhYm9yYWRvciBlbiBwcm9qZWN0L2NsaWVudCk6IHNvbG8gY3VzdG9tQWdlbnRzXG4gICAgICAgICAgICAvLyBTaSBjdXN0b21BZ2VudHMgZXN0w6EgdmFjw61vIChwb3IgNDAzKSwgYWdlbnRQYXJzZWQgc2Vyw6EgW11cbiAgICAgICAgICAgIGFnZW50UGFyc2VkID0gY3VzdG9tQWdlbnRzXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGFnZW50UGFyc2VkID0gbWFpYUFnZW50cy5sZW5ndGggPyBbLi4ubWFpYUFnZW50cywgLi4uY3VzdG9tQWdlbnRzXSA6IGN1c3RvbUFnZW50c1xuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBPcmRlbmFyOiBNYWlhIHByaW1lcm8sIGx1ZWdvIGZhdm9yaXRvcyBhbGZhYsOpdGljYW1lbnRlLCBsdWVnbyBubyBmYXZvcml0b3MgYWxmYWLDqXRpY2FtZW50ZVxuICAgICAgICAgIGFnZW50UGFyc2VkID0gc29ydEFnZW50cyhhZ2VudFBhcnNlZClcbiAgICAgICAgICBoYXNNb3JlID0gY3VzdG9tSGFzTW9yZVxuICAgICAgICAgIG5leHRPZmZzZXQgPSBjdXN0b21OZXh0T2Zmc2V0XG5cbiAgICAgICAgICBzZXRBZ2VudHMoe1xuICAgICAgICAgICAgZGF0YTogYWdlbnRQYXJzZWQsXG4gICAgICAgICAgICBoYXNfbW9yZTogaGFzTW9yZSxcbiAgICAgICAgICAgIG5leHRfb2Zmc2V0OiBuZXh0T2Zmc2V0LFxuICAgICAgICAgIH0pXG5cbiAgICAgICAgICAvLyBTaSBubyBoYXkgYWdlbnRlcyBkZXNwdcOpcyBkZSBwcm9jZXNhciBsYXMgcXVlcmllcywgbGltcGlhciBlbCBlcnJvclxuICAgICAgICAgIGlmIChhZ2VudFBhcnNlZC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHNldEVycm9yKG51bGwpXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIEzDs2dpY2EgcGFyYSBwcm9qZWN0LCBjbGllbnQgbyBoZWFkZXIgc2luIG11bHRpQWdlbnRzIChtaXNtbyBjcml0ZXJpbyBkZSBvcmRlbiBwcm9qZWN0L2NsaWVudDsgaGVhZGVyIGHDsWFkZSBwYWdpbmFjacOzbilcbiAgICAgICAgICBjb25zdCBxdWVyeVBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKVxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHNlY3Rpb24gPT09ICdwcm9qZWN0JyB8fFxuICAgICAgICAgICAgc2VjdGlvbiA9PT0gJ2NsaWVudCcgfHxcbiAgICAgICAgICAgIHNlY3Rpb24gPT09ICdoZWFkZXInIHx8XG4gICAgICAgICAgICBzZWN0aW9uID09PSAndGFzaycgfHxcbiAgICAgICAgICAgIHNlY3Rpb24gPT09ICdwbGFubmVyJ1xuICAgICAgICAgICkge1xuICAgICAgICAgICAgcXVlcnlQYXJhbXMuYXBwZW5kKCdhZ2VudF90eXBlJywgJ29yY2hlc3RyYXRvcicpXG4gICAgICAgICAgICBxdWVyeVBhcmFtcy5hcHBlbmQoJ2xhbmcnLCBtYXBDT1JMYW5nKGkxOG4ubGFuZ3VhZ2UpKVxuICAgICAgICAgICAgaWYgKHNlY3Rpb24gPT09ICdoZWFkZXInKSB7XG4gICAgICAgICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnbGltaXQnLCAnNycpXG4gICAgICAgICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnb2Zmc2V0JywgJzAnKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IHF1ZXJ5U3RyaW5nID0gcXVlcnlQYXJhbXMudG9TdHJpbmcoKVxuICAgICAgICAgIGNvbnN0IHBhdGggPSBgYWdlbnRzJHtxdWVyeVN0cmluZyA/IGA/JHtxdWVyeVN0cmluZ31gIDogJyd9YFxuXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2hNYWlhKHtcbiAgICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKClcbiAgICAgICAgICAgIC8vIGRhdGEuZGF0YSB5YSBjb250aWVuZSBlbC9sb3MgYWdlbnRlcyBvcnF1ZXN0YWRvcmVzIGRlIGxhIHF1ZXJ5IGFnZW50X3R5cGU9b3JjaGVzdHJhdG9yXG4gICAgICAgICAgICBhZ2VudFBhcnNlZCA9IGRhdGEuZGF0YSB8fCBbXVxuICAgICAgICAgICAgY29uc3QgZ2xvYmFsQ2xvbmVBZ2VudHMgPSBhd2FpdCBmZXRjaEdsb2JhbENsb25lQWdlbnRzKClcbiAgICAgICAgICAgIGFnZW50UGFyc2VkID0gbWVyZ2VBZ2VudHNXaXRob3V0RHVwbGljYXRlcyhhZ2VudFBhcnNlZCwgZ2xvYmFsQ2xvbmVBZ2VudHMpXG4gICAgICAgICAgICAvLyBPcmRlbmFyOiBNYWlhIHByaW1lcm8sIGx1ZWdvIGZhdm9yaXRvcyBhbGZhYsOpdGljYW1lbnRlLCBsdWVnbyBubyBmYXZvcml0b3MgYWxmYWLDqXRpY2FtZW50ZVxuICAgICAgICAgICAgYWdlbnRQYXJzZWQgPSBzb3J0QWdlbnRzKGFnZW50UGFyc2VkKVxuICAgICAgICAgICAgaGFzTW9yZSA9IGRhdGEuaGFzX21vcmVcbiAgICAgICAgICAgIG5leHRPZmZzZXQgPSBkYXRhLm5leHRfb2Zmc2V0XG5cbiAgICAgICAgICAgIHNldEFnZW50cyh7XG4gICAgICAgICAgICAgIC4uLmRhdGEsXG4gICAgICAgICAgICAgIGRhdGE6IGFnZW50UGFyc2VkLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9IGNhdGNoIChyZXNwb25zZUVycm9yOiBhbnkpIHtcbiAgICAgICAgICAgIC8vIFZlcmlmaWNhciBzaSBlbCBlcnJvciBlcyA0MDNcbiAgICAgICAgICAgIC8vIGZldGNoQ09SIHB1ZWRlIGxhbnphciBkaWZlcmVudGVzIHRpcG9zIGRlIGVycm9yZXM6XG4gICAgICAgICAgICAvLyAxLiBFcnJvciBjb24gZXJyb3JEYXRhLmRldGFpbCBzaSBpbmNsdXllICdBY2Nlc3MgZGVuaWVkJ1xuICAgICAgICAgICAgLy8gMi4gRXJyb3IgZ2Vuw6lyaWNvICdGYWlsZWQgZmV0Y2hpbmcgZGF0YScgc2kgZXMgNDAzIHBlcm8gbm8gaW5jbHV5ZSAnQWNjZXNzIGRlbmllZCdcbiAgICAgICAgICAgIC8vIDMuIE5lY2VzaXRhbW9zIHZlcmlmaWNhciBlbCBzdGF0dXMgY29kZSBzaSBlc3TDoSBkaXNwb25pYmxlXG4gICAgICAgICAgICBjb25zdCBpczQwM0Vycm9yID1cbiAgICAgICAgICAgICAgcmVzcG9uc2VFcnJvcj8ucmVzcG9uc2U/LnN0YXR1cyA9PT0gNDAzIHx8XG4gICAgICAgICAgICAgIHJlc3BvbnNlRXJyb3I/LnN0YXR1cyA9PT0gNDAzIHx8XG4gICAgICAgICAgICAgIHJlc3BvbnNlRXJyb3I/Lm1lc3NhZ2U/LmluY2x1ZGVzKFwiWW91IGRvbid0IGhhdmUgcGVybWlzc2lvbiB0byB2aWV3IGFnZW50c1wiKSB8fFxuICAgICAgICAgICAgICByZXNwb25zZUVycm9yPy5tZXNzYWdlPy5pbmNsdWRlcygnRmFpbGVkIGZldGNoaW5nIGRhdGEnKSAvLyBmZXRjaENPUiBsYW56YSBlc3RvIHBhcmEgNDAzIHNpbiAnQWNjZXNzIGRlbmllZCdcblxuICAgICAgICAgICAgaWYgKGlzNDAzRXJyb3IpIHtcbiAgICAgICAgICAgICAgLy8gU2kgZXMgNDAzLCBlc3RhYmxlY2VyIGFnZW50ZXMgdmFjw61vcyB5IGNvbnRpbnVhclxuICAgICAgICAgICAgICBzZXRBZ2VudHMoe1xuICAgICAgICAgICAgICAgIGRhdGE6IFtdLFxuICAgICAgICAgICAgICAgIGhhc19tb3JlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBuZXh0X29mZnNldDogbnVsbCxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgc2V0RXJyb3IobnVsbClcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIC8vIFNpIGVzIG90cm8gZXJyb3IsIGxhbnphcmxvXG4gICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlRXJyb3JcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBMw7NnaWNhIGRlIHNlbGVjdCBhZ2VudCAtIFNvbG8gc2VsZWNjaW9uYXIgc2kgaGF5IGFnZW50ZXMgZGlzcG9uaWJsZXNcbiAgICAgICAgaWYgKGFnZW50UGFyc2VkLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBpZiAoYWdlbnRUb1NlbGVjdCAmJiBhZ2VudFBhcnNlZC5maW5kKChhZ2VudFRvUmVxdWVzdDogQWdlbnQpID0+IGFnZW50VG9SZXF1ZXN0LmlkID09PSBhZ2VudFRvU2VsZWN0LmlkKSkge1xuICAgICAgICAgICAgaWYgKGxhc3RTZWxlY3RlZEFnZW50UmVmLmN1cnJlbnQ/LmlkICE9PSBhZ2VudFRvU2VsZWN0LmlkKSB7XG4gICAgICAgICAgICAgIGxhc3RTZWxlY3RlZEFnZW50UmVmLmN1cnJlbnQgPSBhZ2VudFRvU2VsZWN0XG4gICAgICAgICAgICAgIHNlbGVjdEFnZW50KGFnZW50VG9TZWxlY3QpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmIChhZ2VudFBhcnNlZD8uWzBdICYmICghYWdlbnQgfHwgIWFnZW50UGFyc2VkLmZpbmQoKGE6IEFnZW50KSA9PiBhLmlkID09PSBhZ2VudC5pZCkpKSB7XG4gICAgICAgICAgICBjb25zdCBhdmFpbGFibGVBZ2VudHMgPVxuICAgICAgICAgICAgICB3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTICYmICFjbG9uZUFnZW50c1JvbGVCbG9ja2VkXG4gICAgICAgICAgICAgICAgPyBhZ2VudFBhcnNlZFxuICAgICAgICAgICAgICAgIDogYWdlbnRQYXJzZWQuZmlsdGVyKChhZ2VudEl0ZW06IEFnZW50KSA9PiAhaXNNYWlhQWdlbnQoYWdlbnRJdGVtKSlcblxuICAgICAgICAgICAgY29uc3QgW2ZpcnN0QWdlbnRdID0gYXZhaWxhYmxlQWdlbnRzXG4gICAgICAgICAgICBpZiAoZmlyc3RBZ2VudCAmJiBsYXN0U2VsZWN0ZWRBZ2VudFJlZi5jdXJyZW50Py5pZCAhPT0gZmlyc3RBZ2VudC5pZCkge1xuICAgICAgICAgICAgICBsYXN0U2VsZWN0ZWRBZ2VudFJlZi5jdXJyZW50ID0gZmlyc3RBZ2VudFxuICAgICAgICAgICAgICBzZWxlY3RBZ2VudChmaXJzdEFnZW50KVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAoYWdlbnRUb1NlbGVjdCAmJiBhZ2VudFBhcnNlZD8ubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBhdmFpbGFibGVBZ2VudHMgPVxuICAgICAgICAgICAgICB3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTICYmICFjbG9uZUFnZW50c1JvbGVCbG9ja2VkXG4gICAgICAgICAgICAgICAgPyBhZ2VudFBhcnNlZFxuICAgICAgICAgICAgICAgIDogYWdlbnRQYXJzZWQuZmlsdGVyKChhZ2VudEl0ZW06IEFnZW50KSA9PiAhaXNNYWlhQWdlbnQoYWdlbnRJdGVtKSlcblxuICAgICAgICAgICAgY29uc3QgW2ZpcnN0QXZhaWxhYmxlQWdlbnRdID0gYXZhaWxhYmxlQWdlbnRzXG4gICAgICAgICAgICBpZiAoZmlyc3RBdmFpbGFibGVBZ2VudCAmJiBsYXN0U2VsZWN0ZWRBZ2VudFJlZi5jdXJyZW50Py5pZCAhPT0gZmlyc3RBdmFpbGFibGVBZ2VudC5pZCkge1xuICAgICAgICAgICAgICBsYXN0U2VsZWN0ZWRBZ2VudFJlZi5jdXJyZW50ID0gZmlyc3RBdmFpbGFibGVBZ2VudFxuICAgICAgICAgICAgICBzZWxlY3RBZ2VudChmaXJzdEF2YWlsYWJsZUFnZW50KVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHNldExvYWRpbmcoZmFsc2UpXG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgc2V0RXJyb3IoZXJyIGluc3RhbmNlb2YgRXJyb3IgPyBlcnIubWVzc2FnZSA6ICdBbiB1bmtub3duIGVycm9yIG9jY3VycmVkJylcbiAgICAgICAgc2V0TG9hZGluZyhmYWxzZSlcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIGlzUmVmcmVzaGluZ1JlZi5jdXJyZW50ID0gZmFsc2VcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgaWYgKCFpc1JlZnJlc2hpbmdSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgbGFzdFJlcXVlc3RSZWYuY3VycmVudCA9IG51bGxcbiAgICAgICAgICB9XG4gICAgICAgIH0sIDEwMClcbiAgICAgIH1cbiAgICB9LFxuICAgIFtzZWxlY3RBZ2VudCwgc2VjdGlvbiwgYWdlbnQsIGxvYWRpbmddXG4gIClcblxuICBjb25zdCBzZWFyY2hDdXN0b21BZ2VudHMgPSB1c2VDYWxsYmFjayhhc3luYyAocXVlcnk6IHN0cmluZykgPT4ge1xuICAgIGlmICghcXVlcnkpIHtcbiAgICAgIGlmIChwcmVTZWFyY2hBZ2VudHNSZWYuY3VycmVudCkge1xuICAgICAgICBzZXRBZ2VudHMocHJlU2VhcmNoQWdlbnRzUmVmLmN1cnJlbnQpXG4gICAgICAgIHByZVNlYXJjaEFnZW50c1JlZi5jdXJyZW50ID0gbnVsbFxuICAgICAgfVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKCFwcmVTZWFyY2hBZ2VudHNSZWYuY3VycmVudCkge1xuICAgICAgcHJlU2VhcmNoQWdlbnRzUmVmLmN1cnJlbnQgPSBhZ2VudHNSZWYuY3VycmVudFxuICAgIH1cblxuICAgIHNldFNlYXJjaExvYWRpbmcodHJ1ZSlcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoTWFpYSh7XG4gICAgICAgIHBhdGg6IGBhZ2VudHM/YWdlbnRfdHlwZT1jdXN0b20mbGltaXQ9MjAmb2Zmc2V0PTAmcT0ke2VuY29kZVVSSUNvbXBvbmVudChxdWVyeSl9YCxcbiAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgIH0pXG4gICAgICBjb25zdCBkYXRhID0gYXdhaXQgcmVzcG9uc2UuanNvbigpXG5cbiAgICAgIHNldEFnZW50cyhwcmV2ID0+IHtcbiAgICAgICAgY29uc3QgY2xvbmVBZ2VudHMgPSBwcmV2LmRhdGEuZmlsdGVyKChhZzogQWdlbnQpID0+IGFnLnR5cGUgPT09ICdjbG9uZScpXG4gICAgICAgIGNvbnN0IGN1c3RvbVJlc3VsdHM6IEFnZW50W10gPSBkYXRhLmRhdGEgfHwgW11cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBkYXRhOiBjbG9uZUFnZW50cy5sZW5ndGggPyBbLi4uY2xvbmVBZ2VudHMsIC4uLmN1c3RvbVJlc3VsdHNdIDogY3VzdG9tUmVzdWx0cyxcbiAgICAgICAgICBoYXNfbW9yZTogZmFsc2UsXG4gICAgICAgICAgbmV4dF9vZmZzZXQ6IG51bGwsXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBoYW5kbGVTbmFja2JhckVycm9yKHQoJ3NuYWNrYmFyLmxvYWRNb3JlQWdlbnRzLmVycm9yJykpXG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHNldFNlYXJjaExvYWRpbmcoZmFsc2UpXG4gICAgfVxuICB9LCBbXSlcblxuICBjb25zdCBsb2FkTW9yZUFnZW50cyA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBpc011bHRpQWdlbnRzID0gISF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTICYmICEhd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFNcbiAgICAvLyBDYXJnYXIgbcOhczogZW4gaGVhZGVyIHNpZW1wcmU7IGVuIHByb2plY3Qgc29sbyBzaSBpc011bHRpQWdlbnRzIChwb3JxdWUgc29sbyBlbnRvbmNlcyBoYXkgcGFnaW5hY2nDs24gZGUgY3VzdG9tKVxuICAgIGNvbnN0IGNhbkxvYWRNb3JlID0gc2VjdGlvbiA9PT0gJ2hlYWRlcicgfHwgaXNNdWx0aUFnZW50c1xuICAgIGlmICghY2FuTG9hZE1vcmUgfHwgIWFnZW50cy5oYXNfbW9yZSB8fCAhYWdlbnRzLm5leHRfb2Zmc2V0IHx8IGxvYWRpbmdNb3JlKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBzZXRMb2FkaW5nTW9yZSh0cnVlKVxuICAgIHNldEVycm9yKG51bGwpXG5cbiAgICB0cnkge1xuICAgICAgbGV0IHBhdGg6IHN0cmluZ1xuXG4gICAgICAvLyBTaSBlcyBtdWx0aUFnZW50cywgc29sbyBjYXJnYXIgYWdlbnRzIGN1c3RvbSAoTWFpYSB5YSBlc3TDoSBjYXJnYWRvKVxuICAgICAgaWYgKGlzTXVsdGlBZ2VudHMpIHtcbiAgICAgICAgLy8gTWFudGVuZXIgY2FudGlkYWQgaW1wYXIgZGUgY2FyZHM6IHByaW1lcmEgY2FyZ2EgNywgc2lndWllbnRlcyArNiAoNywgMTMsIDE5LCAuLi4pXG4gICAgICAgIHBhdGggPSBgYWdlbnRzP2FnZW50X3R5cGU9Y3VzdG9tJmxpbWl0PTYmb2Zmc2V0PSR7YWdlbnRzLm5leHRfb2Zmc2V0fWBcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFNpIG5vIGVzIG11bHRpQWdlbnRzLCBjYXJnYXIgbcOhcyBhZ2VudGVzIG9ycXVlc3RhZG9yZXMgKE1BSUEpXG4gICAgICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpXG4gICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnYWdlbnRfdHlwZScsICdvcmNoZXN0cmF0b3InKVxuICAgICAgICBxdWVyeVBhcmFtcy5hcHBlbmQoJ2xhbmcnLCBtYXBDT1JMYW5nKGkxOG4ubGFuZ3VhZ2UpKVxuICAgICAgICBxdWVyeVBhcmFtcy5hcHBlbmQoJ2xpbWl0JywgJzcnKVxuICAgICAgICBxdWVyeVBhcmFtcy5hcHBlbmQoJ29mZnNldCcsIGFnZW50cy5uZXh0X29mZnNldC50b1N0cmluZygpKVxuICAgICAgICBwYXRoID0gYGFnZW50cz8ke3F1ZXJ5UGFyYW1zLnRvU3RyaW5nKCl9YFxuICAgICAgfVxuXG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoTWFpYSh7XG4gICAgICAgIHBhdGgsXG4gICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICB9KVxuXG4gICAgICBjb25zdCBkYXRhID0gYXdhaXQgcmVzcG9uc2UuanNvbigpXG5cbiAgICAgIC8vIEFjdW11bGFyIGFnZW50ZXMsIGV4Y2x1eWVuZG8gZHVwbGljYWRvc1xuICAgICAgc2V0QWdlbnRzKHByZXYgPT4ge1xuICAgICAgICBpZiAoaXNNdWx0aUFnZW50cykge1xuICAgICAgICAgIC8vIEzDs2dpY2EgcGFyYSBtdWx0aUFnZW50czogc2VwYXJhciBNQUlBIHkgY3VzdG9tXG4gICAgICAgICAgY29uc3QgZXhpc3RpbmdNYWlhQWdlbnRzID0gcHJldi5kYXRhLmZpbHRlcihpc01haWFBZ2VudClcblxuICAgICAgICAgIC8vIE9idGVuZXIgSURzIGV4aXN0ZW50ZXMgKGV4Y2x1eWVuZG8gTUFJQSlcbiAgICAgICAgICBjb25zdCBleGlzdGluZ0lkcyA9IG5ldyBTZXQocHJldi5kYXRhLmZpbHRlcigoYWc6IEFnZW50KSA9PiAhaXNNYWlhQWdlbnQoYWcpKS5tYXAoKGFnOiBBZ2VudCkgPT4gYWcuaWQpKVxuXG4gICAgICAgICAgLy8gRmlsdHJhciBudWV2b3MgYWdlbnRzIHF1ZSBubyBlc3TDqW4geWEgZW4gbGEgbGlzdGEgKGV4Y2x1eWVuZG8gTUFJQSB5IGNsb25lcyksIG5vcm1hbGl6YW5kbyBjdXN0b21cbiAgICAgICAgICBjb25zdCBuZXdBZ2VudHMgPSBub3JtYWxpemVDdXN0b21BZ2VudHNGcm9tQXBpKFxuICAgICAgICAgICAgZGF0YS5kYXRhLmZpbHRlcigoYWc6IEFnZW50KSA9PiAhaXNNYWlhQWdlbnQoYWcpICYmIGFnLnR5cGUgIT09ICdjbG9uZScgJiYgIWV4aXN0aW5nSWRzLmhhcyhhZy5pZCkpXG4gICAgICAgICAgKVxuXG4gICAgICAgICAgY29uc3QgbmV3RGF0YSA9IGV4aXN0aW5nTWFpYUFnZW50cy5sZW5ndGhcbiAgICAgICAgICAgID8gWy4uLmV4aXN0aW5nTWFpYUFnZW50cywgLi4ucHJldi5kYXRhLmZpbHRlcigoYWc6IEFnZW50KSA9PiAhaXNNYWlhQWdlbnQoYWcpKSwgLi4ubmV3QWdlbnRzXVxuICAgICAgICAgICAgOiBbLi4ucHJldi5kYXRhLmZpbHRlcigoYWc6IEFnZW50KSA9PiAhaXNNYWlhQWdlbnQoYWcpKSwgLi4ubmV3QWdlbnRzXVxuXG4gICAgICAgICAgLy8gT3JkZW5hcjogTWFpYSBwcmltZXJvLCBsdWVnbyBmYXZvcml0b3MgYWxmYWLDqXRpY2FtZW50ZSwgbHVlZ28gbm8gZmF2b3JpdG9zIGFsZmFiw6l0aWNhbWVudGVcbiAgICAgICAgICBjb25zdCBzb3J0ZWREYXRhID0gc29ydEFnZW50cyhuZXdEYXRhKVxuXG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGRhdGE6IHNvcnRlZERhdGEsXG4gICAgICAgICAgICBoYXNfbW9yZTogZGF0YS5oYXNfbW9yZSxcbiAgICAgICAgICAgIG5leHRfb2Zmc2V0OiBkYXRhLm5leHRfb2Zmc2V0LFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBMw7NnaWNhIHBhcmEgIWlzTXVsdGlBZ2VudHM6IGFncmVnYXIgZXZpdGFuZG8gZHVwbGljYWRvc1xuICAgICAgICBjb25zdCBleGlzdGluZ0lkcyA9IG5ldyBTZXQocHJldi5kYXRhLm1hcCgoYWc6IEFnZW50KSA9PiBhZy5pZCkpXG4gICAgICAgIGNvbnN0IG5ld0FnZW50cyA9IChkYXRhLmRhdGEgfHwgW10pLmZpbHRlcigoYWc6IEFnZW50KSA9PiAhZXhpc3RpbmdJZHMuaGFzKGFnLmlkKSlcbiAgICAgICAgY29uc3QgbmV3RGF0YSA9IFsuLi5wcmV2LmRhdGEsIC4uLm5ld0FnZW50c11cblxuICAgICAgICAvLyBPcmRlbmFyOiBNYWlhIHByaW1lcm8sIGx1ZWdvIGZhdm9yaXRvcyBhbGZhYsOpdGljYW1lbnRlLCBsdWVnbyBubyBmYXZvcml0b3MgYWxmYWLDqXRpY2FtZW50ZVxuICAgICAgICBjb25zdCBzb3J0ZWREYXRhID0gc29ydEFnZW50cyhuZXdEYXRhKVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZGF0YTogc29ydGVkRGF0YSxcbiAgICAgICAgICBoYXNfbW9yZTogZGF0YS5oYXNfbW9yZSxcbiAgICAgICAgICBuZXh0X29mZnNldDogZGF0YS5uZXh0X29mZnNldCxcbiAgICAgICAgfVxuICAgICAgfSlcblxuICAgICAgc2V0TG9hZGluZ01vcmUoZmFsc2UpXG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBoYW5kbGVTbmFja2JhckVycm9yKHQoJ3NuYWNrYmFyLmxvYWRNb3JlQWdlbnRzLmVycm9yJykpXG4gICAgICBzZXRMb2FkaW5nTW9yZShmYWxzZSlcbiAgICB9XG4gIH0sIFtzZWN0aW9uLCBhZ2VudHMuaGFzX21vcmUsIGFnZW50cy5uZXh0X29mZnNldCwgbG9hZGluZ01vcmUsIGkxOG4ubGFuZ3VhZ2VdKVxuXG4gIHJldHVybiB7XG4gICAgYWdlbnRzLFxuICAgIGxvYWRpbmcsXG4gICAgbG9hZGluZ01vcmUsXG4gICAgZXJyb3IsXG4gICAgaGFuZGxlR2V0QWdlbnRzLFxuICAgIGxvYWRNb3JlQWdlbnRzLFxuICAgIHNlYXJjaEN1c3RvbUFnZW50cyxcbiAgICBzZWFyY2hMb2FkaW5nLFxuICAgIGFkZEFnZW50LFxuICAgIHJlbW92ZUFnZW50LFxuICAgIHVwZGF0ZUFnZW50LFxuICAgIHVwZGF0ZUFnZW50RmF2b3JpdGUsXG4gICAgc2VsZWN0Rmlyc3RBZ2VudCxcbiAgICBzb3J0QWdlbnRzTGlzdCxcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsUUFBUSxFQUFFQyxXQUFXLEVBQUVDLE1BQU0sUUFBUSxPQUFPO0FBQ3JELFNBQVNDLGNBQWMsUUFBUSxlQUFlO0FBQzlDLFNBQVNDLGtCQUFrQixRQUFRLHNEQUFzRDtBQUN6RixTQUFTQyxTQUFTLFFBQVEsV0FBVztBQUNyQyxTQUFTQyx3QkFBd0IsUUFBUSx5Q0FBeUM7QUFFbEYsU0FBU0MsT0FBTyxRQUFRLDJCQUEyQjtBQUNuRCxTQUFTQyw0QkFBNEIsUUFBUSx3Q0FBd0M7QUFFckYsU0FBU0MsVUFBVSxRQUFRLHFCQUFxQjtBQUVoRCxJQUFNQyxXQUFXLEdBQUcsU0FBZEEsV0FBV0EsQ0FBSUMsS0FBWTtFQUFBLE9BQUssQ0FBQUEsS0FBSyxhQUFMQSxLQUFLLHVCQUFMQSxLQUFLLENBQUVDLElBQUksTUFBSyxjQUFjO0FBQUE7QUFFcEUsSUFBTUMsMkJBQTJCLEdBQUcsU0FBOUJBLDJCQUEyQkEsQ0FBQTtFQUFBLE9BQVMsQ0FBQyxDQUFDQyxNQUFNLENBQUNDLHdCQUF3QjtBQUFBO0FBRTNFLElBQU1DLG9CQUFvQixHQUFHLFNBQXZCQSxvQkFBb0JBLENBQUlDLEdBQVksRUFBYztFQUFBLElBQUFDLGVBQUEsRUFBQUMsY0FBQSxFQUFBQyxlQUFBO0VBQ3RELElBQU1DLEtBQUssR0FBR0osR0FBNEU7RUFDMUYsT0FDRSxDQUFBSSxLQUFLLGFBQUxBLEtBQUssZ0JBQUFILGVBQUEs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
|
|
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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
|
|
@@ -5,7 +5,7 @@ import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
|
5
5
|
import { fetchMaia } from '../client';
|
|
6
6
|
var mapResponse = function mapResponse(items) {
|
|
7
7
|
return items.map(function (item) {
|
|
8
|
-
var _item$project_metadat, _item$project_metadat2, _item$client_metadata, _item$client_metadata2;
|
|
8
|
+
var _item$is_read, _item$project_metadat, _item$project_metadat2, _item$client_metadata, _item$client_metadata2;
|
|
9
9
|
return {
|
|
10
10
|
id: item.session_external_id,
|
|
11
11
|
title: item.title || item.last_question,
|
|
@@ -15,6 +15,7 @@ var mapResponse = function mapResponse(items) {
|
|
|
15
15
|
agentType: item.agent_type,
|
|
16
16
|
emoji: item.emoji,
|
|
17
17
|
sessionExternalId: item.session_external_id,
|
|
18
|
+
isRead: (_item$is_read = item.is_read) !== null && _item$is_read !== void 0 ? _item$is_read : true,
|
|
18
19
|
attachments: item.attachments || [],
|
|
19
20
|
projectId: (_item$project_metadat = item.project_metadata) === null || _item$project_metadat === void 0 ? void 0 : _item$project_metadat.id,
|
|
20
21
|
projectName: (_item$project_metadat2 = item.project_metadata) === null || _item$project_metadat2 === void 0 ? void 0 : _item$project_metadat2.name,
|
|
@@ -41,7 +42,7 @@ var getAgentTypeParam = function getAgentTypeParam() {
|
|
|
41
42
|
};
|
|
42
43
|
export var getChatsByUserId = /*#__PURE__*/function () {
|
|
43
44
|
var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(params) {
|
|
44
|
-
var _params$agent;
|
|
45
|
+
var _params$agent, _data$unread_count;
|
|
45
46
|
var agentTypeParam, langParam, response, data;
|
|
46
47
|
return _regeneratorRuntime.wrap(function (_context) {
|
|
47
48
|
while (1) switch (_context.prev = _context.next) {
|
|
@@ -65,7 +66,8 @@ export var getChatsByUserId = /*#__PURE__*/function () {
|
|
|
65
66
|
return _context.abrupt("return", {
|
|
66
67
|
hasMore: data.has_more,
|
|
67
68
|
nextItem: data.next_offset,
|
|
68
|
-
items: mapResponse(data.data)
|
|
69
|
+
items: mapResponse(data.data),
|
|
70
|
+
unreadCount: (_data$unread_count = data.unread_count) !== null && _data$unread_count !== void 0 ? _data$unread_count : 0
|
|
69
71
|
});
|
|
70
72
|
case 3:
|
|
71
73
|
case "end":
|
|
@@ -77,4 +79,4 @@ export var getChatsByUserId = /*#__PURE__*/function () {
|
|
|
77
79
|
return _ref.apply(this, arguments);
|
|
78
80
|
};
|
|
79
81
|
}();
|
|
80
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
82
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmZXRjaE1haWEiLCJtYXBSZXNwb25zZSIsIml0ZW1zIiwibWFwIiwiaXRlbSIsIl9pdGVtJGlzX3JlYWQiLCJfaXRlbSRwcm9qZWN0X21ldGFkYXQiLCJfaXRlbSRwcm9qZWN0X21ldGFkYXQyIiwiX2l0ZW0kY2xpZW50X21ldGFkYXRhIiwiX2l0ZW0kY2xpZW50X21ldGFkYXRhMiIsImlkIiwic2Vzc2lvbl9leHRlcm5hbF9pZCIsInRpdGxlIiwibGFzdF9xdWVzdGlvbiIsImRhdGUiLCJEYXRlIiwibGFzdF9xdWVzdGlvbl9kYXRlIiwiYWdlbnQiLCJhZ2VudF9uYW1lIiwiYWdlbnRJZCIsImFnZW50X2lkIiwiYWdlbnRUeXBlIiwiYWdlbnRfdHlwZSIsImVtb2ppIiwic2Vzc2lvbkV4dGVybmFsSWQiLCJpc1JlYWQiLCJpc19yZWFkIiwiYXR0YWNobWVudHMiLCJwcm9qZWN0SWQiLCJwcm9qZWN0X21ldGFkYXRhIiwicHJvamVjdE5hbWUiLCJuYW1lIiwiY2xpZW50SWQiLCJjbGllbnRfbWV0YWRhdGEiLCJjbGllbnROYW1lIiwiZ2V0QWdlbnRUeXBlUGFyYW0iLCJoYXNGZWF0dXJlQWNjZXNzQ2xvbmUiLCJ3aW5kb3ciLCJNQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1MiLCJoYXNNdWx0aUFnZW50c0N1c3RvbSIsIk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFMiLCJnZXRDaGF0c0J5VXNlcklkIiwiX3JlZiIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwicGFyYW1zIiwiX3BhcmFtcyRhZ2VudCIsIl9kYXRhJHVucmVhZF9jb3VudCIsImFnZW50VHlwZVBhcmFtIiwibGFuZ1BhcmFtIiwicmVzcG9uc2UiLCJkYXRhIiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJsYW5nIiwiY29uY2F0IiwicGF0aCIsImxpbWl0Iiwib2Zmc2V0IiwibWV0aG9kIiwiaGVhZGVycyIsInRvU3RyaW5nIiwic2VudCIsImpzb24iLCJhYnJ1cHQiLCJoYXNNb3JlIiwiaGFzX21vcmUiLCJuZXh0SXRlbSIsIm5leHRfb2Zmc2V0IiwidW5yZWFkQ291bnQiLCJ1bnJlYWRfY291bnQiLCJzdG9wIiwiX3giLCJhcHBseSIsImFyZ3VtZW50cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9tYWlhL0NoYXRzL2dldENoYXRzQnlVc2VySWQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tbmVzdGVkLXRlcm5hcnkgKi9cbmltcG9ydCB7IENoYXQsIENoYXRJdGVtUmVzcG9uc2UsIENoYXRzUmVzcG9uc2VTY2hlbWEgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9DaGF0J1xuaW1wb3J0IHsgZmV0Y2hNYWlhIH0gZnJvbSAnLi4vY2xpZW50J1xuaW1wb3J0IHsgQWdlbnQgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9hZ2VudCdcblxudHlwZSBHZXRDaGF0c0J5VXNlcklkUGFyYW1zID0ge1xuICB1c2VySWQ/OiBzdHJpbmdcbiAgbGFzdEV2YWx1YXRlZEtleT86IHN0cmluZ1xuICBleGNsdWRlU3RhdHVzZXM/OiBzdHJpbmdbXVxuICBsaW1pdD86IG51bWJlclxuICBhZ2VudD86IEFnZW50IHwgbnVsbFxuICBvZmZzZXQ/OiBudW1iZXJcbiAgc2VjdGlvbj86ICdwcm9qZWN0JyB8ICdoZWFkZXInIHwgJ2NsaWVudCcgfCAndGFzaycgfCAncGxhbm5lcidcbiAgbGFuZz86IHN0cmluZ1xufVxuXG5jb25zdCBtYXBSZXNwb25zZSA9IChpdGVtczogQ2hhdEl0ZW1SZXNwb25zZVtdKTogQ2hhdFtdID0+IHtcbiAgcmV0dXJuIGl0ZW1zLm1hcChpdGVtID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IGl0ZW0uc2Vzc2lvbl9leHRlcm5hbF9pZCxcbiAgICAgIHRpdGxlOiBpdGVtLnRpdGxlIHx8IGl0ZW0ubGFzdF9xdWVzdGlvbixcbiAgICAgIGRhdGU6IG5ldyBEYXRlKGl0ZW0ubGFzdF9xdWVzdGlvbl9kYXRlKSxcbiAgICAgIGFnZW50OiBpdGVtLmFnZW50X25hbWUsXG4gICAgICBhZ2VudElkOiBpdGVtLmFnZW50X2lkLFxuICAgICAgYWdlbnRUeXBlOiBpdGVtLmFnZW50X3R5cGUsXG4gICAgICBlbW9qaTogaXRlbS5lbW9qaSxcbiAgICAgIHNlc3Npb25FeHRlcm5hbElkOiBpdGVtLnNlc3Npb25fZXh0ZXJuYWxfaWQsXG4gICAgICBpc1JlYWQ6IGl0ZW0uaXNfcmVhZCA/PyB0cnVlLFxuICAgICAgYXR0YWNobWVudHM6IGl0ZW0uYXR0YWNobWVudHMgfHwgW10sXG4gICAgICBwcm9qZWN0SWQ6IGl0ZW0ucHJvamVjdF9tZXRhZGF0YT8uaWQsXG4gICAgICBwcm9qZWN0TmFtZTogaXRlbS5wcm9qZWN0X21ldGFkYXRhPy5uYW1lLFxuICAgICAgY2xpZW50SWQ6IGl0ZW0uY2xpZW50X21ldGFkYXRhPy5pZCxcbiAgICAgIGNsaWVudE5hbWU6IGl0ZW0uY2xpZW50X21ldGFkYXRhPy5uYW1lLFxuICAgIH1cbiAgfSlcbn1cblxuLyoqXG4gKiBFbCBmaWx0cm8gZGVwZW5kZSBkZSBmZWF0dXJlIGZsYWdzLCBubyBkZWwgYWdlbnRlIGFjdGl2byBlbiBjb250ZXh0by5cbiAqIFNpIGFtYm9zIGZsYWdzIGVzdMOhbiBhY3Rpdm9zLCBubyBzZSBlbnbDrWEgYWdlbnRfdHlwZTogZWwgYmFja2VuZCBkZXZ1ZWx2ZVxuICogc2VzaW9uZXMgZGUgb3JjaGVzdHJhdG9yIHkgY3VzdG9tIGp1bnRhcy4gRmlsdHJhciBwb3IgZWwgYWdlbnRlIHNlbGVjY2lvbmFkb1xuICogKHAuIGVqLiBzaWVtcHJlIG9yY2hlc3RyYXRvciBzYWx2byBjdXN0b20gYWN0aXZvKSBvY3VsdGFiYSBzZXNpb25lcyBjdXN0b21cbiAqIGN1YW5kbyBlbCB1c3VhcmlvIGVzdGFiYSBlbiBNQUlBLlxuICovXG5jb25zdCBnZXRBZ2VudFR5cGVQYXJhbSA9ICgpOiBzdHJpbmcgPT4ge1xuICBjb25zdCBoYXNGZWF0dXJlQWNjZXNzQ2xvbmUgPSAhIXdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1NcbiAgY29uc3QgaGFzTXVsdGlBZ2VudHNDdXN0b20gPSAhIXdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1NfTVVMVElfQUdFTlRTXG4gIGlmIChoYXNGZWF0dXJlQWNjZXNzQ2xvbmUgJiYgaGFzTXVsdGlBZ2VudHNDdXN0b20pIHJldHVybiAnJ1xuICBpZiAoaGFzRmVhdHVyZUFjY2Vzc0Nsb25lKSByZXR1cm4gJyZhZ2VudF90eXBlPW9yY2hlc3RyYXRvcidcbiAgaWYgKGhhc011bHRpQWdlbnRzQ3VzdG9tKSByZXR1cm4gJyZhZ2VudF90eXBlPWN1c3RvbSdcbiAgcmV0dXJuICcnXG59XG5cbmV4cG9ydCBjb25zdCBnZXRDaGF0c0J5VXNlcklkID0gYXN5bmMgKFxuICBwYXJhbXM/OiBHZXRDaGF0c0J5VXNlcklkUGFyYW1zXG4pOiBQcm9taXNlPHsgaXRlbXM6IENoYXRbXTsgbmV4dEl0ZW06IHN0cmluZyB8IG51bGw7IGhhc01vcmU6IGJvb2xlYW47IHVucmVhZENvdW50OiBudW1iZXIgfT4gPT4ge1xuICBjb25zdCBhZ2VudFR5cGVQYXJhbSA9IGdldEFnZW50VHlwZVBhcmFtKClcbiAgY29uc3QgbGFuZ1BhcmFtID0gcGFyYW1zPy5sYW5nID8gYCZsYW5nPSR7cGFyYW1zLmxhbmd9YCA6ICcnXG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2hNYWlhKHtcbiAgICBwYXRoOiBgc2Vzc2lvbnM/bGltaXQ9JHtwYXJhbXM/LmxpbWl0fSR7cGFyYW1zPy5vZmZzZXQgPyBgJm9mZnNldD0ke3BhcmFtcz8ub2Zmc2V0fWAgOiAnJ30ke2FnZW50VHlwZVBhcmFtfSR7bGFuZ1BhcmFtfWAsXG4gICAgbWV0aG9kOiAnR0VUJyxcbiAgICBoZWFkZXJzOiB7XG4gICAgICAnWC1BZ2VudC1JZCc6IHBhcmFtcz8uYWdlbnQ/LmlkLnRvU3RyaW5nKCkgfHwgJzEnLFxuICAgIH0sXG4gIH0pXG5cbiAgY29uc3QgZGF0YSA9IChhd2FpdCByZXNwb25zZS5qc29uKCkpIGFzIENoYXRzUmVzcG9uc2VTY2hlbWFcblxuICByZXR1cm4ge1xuICAgIGhhc01vcmU6IGRhdGEuaGFzX21vcmUsXG4gICAgbmV4dEl0ZW06IGRhdGEubmV4dF9vZmZzZXQsXG4gICAgaXRlbXM6IG1hcFJlc3BvbnNlKGRhdGEuZGF0YSksXG4gICAgdW5yZWFkQ291bnQ6IGRhdGEudW5yZWFkX2NvdW50ID8/IDAsXG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7QUFFQSxTQUFTQSxTQUFTLFFBQVEsV0FBVztBQWNyQyxJQUFNQyxXQUFXLEdBQUcsU0FBZEEsV0FBV0EsQ0FBSUMsS0FBeUIsRUFBYTtFQUN6RCxPQUFPQSxLQUFLLENBQUNDLEdBQUcsQ0FBQyxVQUFBQyxJQUFJLEVBQUk7SUFBQSxJQUFBQyxhQUFBLEVBQUFDLHFCQUFBLEVBQUFDLHNCQUFBLEVBQUFDLHFCQUFBLEVBQUFDLHNCQUFBO0lBQ3ZCLE9BQU87TUFDTEMsRUFBRSxFQUFFTixJQUFJLENBQUNPLG1CQUFtQjtNQUM1QkMsS0FBSyxFQUFFUixJQUFJLENBQUNRLEtBQUssSUFBSVIsSUFBSSxDQUFDUyxhQUFhO01BQ3ZDQyxJQUFJLEVBQUUsSUFBSUMsSUFBSSxDQUFDWCxJQUFJLENBQUNZLGtCQUFrQixDQUFDO01BQ3ZDQyxLQUFLLEVBQUViLElBQUksQ0FBQ2MsVUFBVTtNQUN0QkMsT0FBTyxFQUFFZixJQUFJLENBQUNnQixRQUFRO01BQ3RCQyxTQUFTLEVBQUVqQixJQUFJLENBQUNrQixVQUFVO01BQzFCQyxLQUFLLEVBQUVuQixJQUFJLENBQUNtQixLQUFLO01BQ2pCQyxpQkFBaUIsRUFBRXBCLElBQUksQ0FBQ08sbUJBQW1CO01BQzNDYyxNQUFNLEdBQUFwQixhQUFBLEdBQUVELElBQUksQ0FBQ3NCLE9BQU8sY0FBQXJCLGFBQUEsY0FBQUEsYUFBQSxHQUFJLElBQUk7TUFDNUJzQixXQUFXLEVB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
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import { getChatsByUserId } from './getChatsByUserId';
|
|
2
2
|
import { deleteChat } from './deleteChat';
|
|
3
3
|
import { patchChat } from './patchChat';
|
|
4
|
+
import { markSessionAsRead } from './markSessionAsRead';
|
|
4
5
|
import { getChatMessages } from './getChatMessages';
|
|
5
6
|
import { wasHelpfulChat } from './wasHelpfulChat';
|
|
6
7
|
export default {
|
|
7
8
|
getChatsByUserId: getChatsByUserId,
|
|
8
9
|
deleteChat: deleteChat,
|
|
9
10
|
patchChat: patchChat,
|
|
11
|
+
markSessionAsRead: markSessionAsRead,
|
|
10
12
|
getChatMessages: getChatMessages,
|
|
11
13
|
wasHelpfulChat: wasHelpfulChat
|
|
12
14
|
};
|
|
13
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRDaGF0c0J5VXNlcklkIiwiZGVsZXRlQ2hhdCIsInBhdGNoQ2hhdCIsIm1hcmtTZXNzaW9uQXNSZWFkIiwiZ2V0Q2hhdE1lc3NhZ2VzIiwid2FzSGVscGZ1bENoYXQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VydmljZXMvbWFpYS9DaGF0cy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRDaGF0c0J5VXNlcklkIH0gZnJvbSAnLi9nZXRDaGF0c0J5VXNlcklkJ1xuaW1wb3J0IHsgZGVsZXRlQ2hhdCB9IGZyb20gJy4vZGVsZXRlQ2hhdCdcbmltcG9ydCB7IHBhdGNoQ2hhdCB9IGZyb20gJy4vcGF0Y2hDaGF0J1xuaW1wb3J0IHsgbWFya1Nlc3Npb25Bc1JlYWQgfSBmcm9tICcuL21hcmtTZXNzaW9uQXNSZWFkJ1xuaW1wb3J0IHsgZ2V0Q2hhdE1lc3NhZ2VzIH0gZnJvbSAnLi9nZXRDaGF0TWVzc2FnZXMnXG5pbXBvcnQgeyB3YXNIZWxwZnVsQ2hhdCB9IGZyb20gJy4vd2FzSGVscGZ1bENoYXQnXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgZ2V0Q2hhdHNCeVVzZXJJZCxcbiAgZGVsZXRlQ2hhdCxcbiAgcGF0Y2hDaGF0LFxuICBtYXJrU2Vzc2lvbkFzUmVhZCxcbiAgZ2V0Q2hhdE1lc3NhZ2VzLFxuICB3YXNIZWxwZnVsQ2hhdCxcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsZ0JBQWdCLFFBQVEsb0JBQW9CO0FBQ3JELFNBQVNDLFVBQVUsUUFBUSxjQUFjO0FBQ3pDLFNBQVNDLFNBQVMsUUFBUSxhQUFhO0FBQ3ZDLFNBQVNDLGlCQUFpQixRQUFRLHFCQUFxQjtBQUN2RCxTQUFTQyxlQUFlLFFBQVEsbUJBQW1CO0FBQ25ELFNBQVNDLGNBQWMsUUFBUSxrQkFBa0I7QUFFakQsZUFBZTtFQUNiTCxnQkFBZ0IsRUFBaEJBLGdCQUFnQjtFQUNoQkMsVUFBVSxFQUFWQSxVQUFVO0VBQ1ZDLFNBQVMsRUFBVEEsU0FBUztFQUNUQyxpQkFBaUIsRUFBakJBLGlCQUFpQjtFQUNqQkMsZUFBZSxFQUFmQSxlQUFlO0VBQ2ZDLGNBQWMsRUFBZEE7QUFDRixDQUFDIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
2
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
3
|
+
import { fetchMaia } from '../client';
|
|
4
|
+
export var markSessionAsRead = /*#__PURE__*/function () {
|
|
5
|
+
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
|
|
6
|
+
var chatId, response;
|
|
7
|
+
return _regeneratorRuntime.wrap(function (_context) {
|
|
8
|
+
while (1) switch (_context.prev = _context.next) {
|
|
9
|
+
case 0:
|
|
10
|
+
chatId = _ref.chatId;
|
|
11
|
+
_context.next = 1;
|
|
12
|
+
return fetchMaia({
|
|
13
|
+
path: "sessions/".concat(chatId),
|
|
14
|
+
method: 'PATCH',
|
|
15
|
+
body: {
|
|
16
|
+
is_read: true
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
case 1:
|
|
20
|
+
response = _context.sent;
|
|
21
|
+
return _context.abrupt("return", response.ok);
|
|
22
|
+
case 2:
|
|
23
|
+
case "end":
|
|
24
|
+
return _context.stop();
|
|
25
|
+
}
|
|
26
|
+
}, _callee);
|
|
27
|
+
}));
|
|
28
|
+
return function markSessionAsRead(_x) {
|
|
29
|
+
return _ref2.apply(this, arguments);
|
|
30
|
+
};
|
|
31
|
+
}();
|
|
32
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmZXRjaE1haWEiLCJtYXJrU2Vzc2lvbkFzUmVhZCIsIl9yZWYyIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJfcmVmIiwiY2hhdElkIiwicmVzcG9uc2UiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsInBhdGgiLCJjb25jYXQiLCJtZXRob2QiLCJib2R5IiwiaXNfcmVhZCIsInNlbnQiLCJhYnJ1cHQiLCJvayIsInN0b3AiLCJfeCIsImFwcGx5IiwiYXJndW1lbnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlcnZpY2VzL21haWEvQ2hhdHMvbWFya1Nlc3Npb25Bc1JlYWQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZmV0Y2hNYWlhIH0gZnJvbSAnLi4vY2xpZW50J1xuXG50eXBlIE1hcmtTZXNzaW9uQXNSZWFkUGFyYW1zID0ge1xuICBjaGF0SWQ6IHN0cmluZ1xufVxuXG5leHBvcnQgY29uc3QgbWFya1Nlc3Npb25Bc1JlYWQgPSBhc3luYyAoeyBjaGF0SWQgfTogTWFya1Nlc3Npb25Bc1JlYWRQYXJhbXMpOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaE1haWEoe1xuICAgIHBhdGg6IGBzZXNzaW9ucy8ke2NoYXRJZH1gLFxuICAgIG1ldGhvZDogJ1BBVENIJyxcbiAgICBib2R5OiB7IGlzX3JlYWQ6IHRydWUgfSxcbiAgfSlcblxuICByZXR1cm4gcmVzcG9uc2Uub2tcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxTQUFTQSxTQUFTLFFBQVEsV0FBVztBQU1yQyxPQUFPLElBQU1DLGlCQUFpQjtFQUFBLElBQUFDLEtBQUEsR0FBQUMsaUJBQUEsY0FBQUMsbUJBQUEsQ0FBQUMsSUFBQSxDQUFHLFNBQUFDLFFBQUFDLElBQUE7SUFBQSxJQUFBQyxNQUFBLEVBQUFDLFFBQUE7SUFBQSxPQUFBTCxtQkFBQSxDQUFBTSxJQUFBLFdBQUFDLFFBQUE7TUFBQSxrQkFBQUEsUUFBQSxDQUFBQyxJQUFBLEdBQUFELFFBQUEsQ0FBQUUsSUFBQTtRQUFBO1VBQVNMLE1BQU0sR0FBQUQsSUFBQSxDQUFOQyxNQUFNO1VBQUFHLFFBQUEsQ0FBQUUsSUFBQTtVQUFBLE9BQ3ZCYixTQUFTLENBQUM7WUFDL0JjLElBQUksY0FBQUMsTUFBQSxDQUFjUCxNQUFNLENBQUU7WUFDMUJRLE1BQU0sRUFBRSxPQUFPO1lBQ2ZDLElBQUksRUFBRTtjQUFFQyxPQUFPLEVBQUU7WUFBSztVQUN4QixDQUFDLENBQUM7UUFBQTtVQUpJVCxRQUFRLEdBQUFFLFFBQUEsQ0FBQVEsSUFBQTtVQUFBLE9BQUFSLFFBQUEsQ0FBQVMsTUFBQSxXQU1QWCxRQUFRLENBQUNZLEVBQUU7UUFBQTtRQUFBO1VBQUEsT0FBQVYsUUFBQSxDQUFBVyxJQUFBO01BQUE7SUFBQSxHQUFBaEIsT0FBQTtFQUFBLENBQ25CO0VBQUEsZ0JBUllMLGlCQUFpQkEsQ0FBQXNCLEVBQUE7SUFBQSxPQUFBckIsS0FBQSxDQUFBc0IsS0FBQSxPQUFBQyxTQUFBO0VBQUE7QUFBQSxHQVE3QiIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
3
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
4
|
+
import { useChatsStore } from './useChatsStore';
|
|
5
|
+
var SIDEBAR_TITLE_MAX_LENGTH = 120;
|
|
6
|
+
export var buildSidebarSessionTitle = function buildSidebarSessionTitle(message) {
|
|
7
|
+
var trimmed = message === null || message === void 0 ? void 0 : message.trim();
|
|
8
|
+
if (!trimmed) return null;
|
|
9
|
+
if (trimmed.length <= SIDEBAR_TITLE_MAX_LENGTH) return trimmed;
|
|
10
|
+
return "".concat(trimmed.slice(0, SIDEBAR_TITLE_MAX_LENGTH), "\u2026");
|
|
11
|
+
};
|
|
12
|
+
/** Agrega la sesión al sidebar si aún no está en la lista. */
|
|
13
|
+
export var ensureSessionInSidebar = function ensureSessionInSidebar(_ref) {
|
|
14
|
+
var _ref2, _agent$name, _agent$emoji;
|
|
15
|
+
var sessionId = _ref.sessionId,
|
|
16
|
+
_ref$title = _ref.title,
|
|
17
|
+
title = _ref$title === void 0 ? null : _ref$title,
|
|
18
|
+
agent = _ref.agent,
|
|
19
|
+
agentId = _ref.agentId,
|
|
20
|
+
project = _ref.project,
|
|
21
|
+
client = _ref.client,
|
|
22
|
+
attachments = _ref.attachments;
|
|
23
|
+
var _useChatsStore$getSta = useChatsStore.getState(),
|
|
24
|
+
chats = _useChatsStore$getSta.chats,
|
|
25
|
+
prependChat = _useChatsStore$getSta.prependChat;
|
|
26
|
+
if (chats.some(function (chat) {
|
|
27
|
+
return chat.sessionExternalId === sessionId;
|
|
28
|
+
})) {
|
|
29
|
+
document.dispatchEvent(new CustomEvent('sidebar-select-session', {
|
|
30
|
+
detail: {
|
|
31
|
+
sessionId: sessionId
|
|
32
|
+
}
|
|
33
|
+
}));
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
var resolvedAgentId = Number((_ref2 = agentId !== null && agentId !== void 0 ? agentId : agent === null || agent === void 0 ? void 0 : agent.id) !== null && _ref2 !== void 0 ? _ref2 : 0);
|
|
37
|
+
var chatItem = _objectSpread(_objectSpread(_objectSpread({
|
|
38
|
+
id: sessionId,
|
|
39
|
+
sessionExternalId: sessionId,
|
|
40
|
+
title: title,
|
|
41
|
+
date: new Date(),
|
|
42
|
+
agent: (_agent$name = agent === null || agent === void 0 ? void 0 : agent.name) !== null && _agent$name !== void 0 ? _agent$name : '',
|
|
43
|
+
agentId: Number.isFinite(resolvedAgentId) ? resolvedAgentId : 0,
|
|
44
|
+
agentType: agent === null || agent === void 0 ? void 0 : agent.type,
|
|
45
|
+
emoji: (_agent$emoji = agent === null || agent === void 0 ? void 0 : agent.emoji) !== null && _agent$emoji !== void 0 ? _agent$emoji : null
|
|
46
|
+
}, attachments !== null && attachments !== void 0 && attachments.length ? {
|
|
47
|
+
attachments: attachments
|
|
48
|
+
} : {}), (project === null || project === void 0 ? void 0 : project.id) != null ? {
|
|
49
|
+
projectId: project.id,
|
|
50
|
+
projectName: project.name
|
|
51
|
+
} : {}), (client === null || client === void 0 ? void 0 : client.id) != null ? {
|
|
52
|
+
clientId: Number(client.id),
|
|
53
|
+
clientName: client.name
|
|
54
|
+
} : {});
|
|
55
|
+
prependChat(chatItem);
|
|
56
|
+
document.dispatchEvent(new CustomEvent('sidebar-select-session', {
|
|
57
|
+
detail: {
|
|
58
|
+
sessionId: sessionId
|
|
59
|
+
}
|
|
60
|
+
}));
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
/** Agrega la sesión al sidebar a partir del request del orchestrator (p. ej. al primer token SSE). */
|
|
64
|
+
export var ensureSessionInSidebarFromRequest = function ensureSessionInSidebarFromRequest(sessionId, request, agentEmoji) {
|
|
65
|
+
var _request$projectName, _request$clientName;
|
|
66
|
+
var agent = null;
|
|
67
|
+
if (request.agentName) {
|
|
68
|
+
var _request$agentId;
|
|
69
|
+
agent = {
|
|
70
|
+
id: String((_request$agentId = request.agentId) !== null && _request$agentId !== void 0 ? _request$agentId : ''),
|
|
71
|
+
name: request.agentName,
|
|
72
|
+
type: request.agentType,
|
|
73
|
+
emoji: agentEmoji || '✨'
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
ensureSessionInSidebar({
|
|
77
|
+
sessionId: sessionId,
|
|
78
|
+
title: buildSidebarSessionTitle(request.input),
|
|
79
|
+
agent: agent,
|
|
80
|
+
agentId: request.agentId,
|
|
81
|
+
project: request.projectId != null ? {
|
|
82
|
+
id: request.projectId,
|
|
83
|
+
name: (_request$projectName = request.projectName) !== null && _request$projectName !== void 0 ? _request$projectName : ''
|
|
84
|
+
} : null,
|
|
85
|
+
client: request.clientId != null ? {
|
|
86
|
+
id: request.clientId,
|
|
87
|
+
name: (_request$clientName = request.clientName) !== null && _request$clientName !== void 0 ? _request$clientName : ''
|
|
88
|
+
} : null,
|
|
89
|
+
attachments: request.attachments
|
|
90
|
+
});
|
|
91
|
+
};
|
|
92
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDaGF0c1N0b3JlIiwiU0lERUJBUl9USVRMRV9NQVhfTEVOR1RIIiwiYnVpbGRTaWRlYmFyU2Vzc2lvblRpdGxlIiwibWVzc2FnZSIsInRyaW1tZWQiLCJ0cmltIiwibGVuZ3RoIiwiY29uY2F0Iiwic2xpY2UiLCJlbnN1cmVTZXNzaW9uSW5TaWRlYmFyIiwiX3JlZiIsIl9yZWYyIiwiX2FnZW50JG5hbWUiLCJfYWdlbnQkZW1vamkiLCJzZXNzaW9uSWQiLCJfcmVmJHRpdGxlIiwidGl0bGUiLCJhZ2VudCIsImFnZW50SWQiLCJwcm9qZWN0IiwiY2xpZW50IiwiYXR0YWNobWVudHMiLCJfdXNlQ2hhdHNTdG9yZSRnZXRTdGEiLCJnZXRTdGF0ZSIsImNoYXRzIiwicHJlcGVuZENoYXQiLCJzb21lIiwiY2hhdCIsInNlc3Npb25FeHRlcm5hbElkIiwiZG9jdW1lbnQiLCJkaXNwYXRjaEV2ZW50IiwiQ3VzdG9tRXZlbnQiLCJkZXRhaWwiLCJyZXNvbHZlZEFnZW50SWQiLCJOdW1iZXIiLCJpZCIsImNoYXRJdGVtIiwiX29iamVjdFNwcmVhZCIsImRhdGUiLCJEYXRlIiwibmFtZSIsImlzRmluaXRlIiwiYWdlbnRUeXBlIiwidHlwZSIsImVtb2ppIiwicHJvamVjdElkIiwicHJvamVjdE5hbWUiLCJjbGllbnRJZCIsImNsaWVudE5hbWUiLCJlbnN1cmVTZXNzaW9uSW5TaWRlYmFyRnJvbVJlcXVlc3QiLCJyZXF1ZXN0IiwiYWdlbnRFbW9qaSIsIl9yZXF1ZXN0JHByb2plY3ROYW1lIiwiX3JlcXVlc3QkY2xpZW50TmFtZSIsImFnZW50TmFtZSIsIl9yZXF1ZXN0JGFnZW50SWQiLCJTdHJpbmciLCJpbnB1dCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdG9yZS9jaGF0c1NpZGViYXJPcHRpbWlzdGljLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQXR0YWNobWVudEZpbGUgfSBmcm9tICcuLi9jb21wb25lbnRzL21vbGVjdWxlcy9DaGF0Rm9vdGVyL0NoYXRGb290ZXInXG5pbXBvcnQgdHlwZSB7IEFnZW50LCBBZ2VudFR5cGUgfSBmcm9tICcuLi90eXBlcy9hZ2VudCdcbmltcG9ydCB0eXBlIHsgQ2xpZW50IH0gZnJvbSAnLi4vdHlwZXMvQ2xpZW50J1xuaW1wb3J0IHR5cGUgeyBQcm9qZWN0IH0gZnJvbSAnLi4vdHlwZXMvUHJvamVjdCdcbmltcG9ydCB7IHVzZUNoYXRzU3RvcmUgfSBmcm9tICcuL3VzZUNoYXRzU3RvcmUnXG5pbXBvcnQgdHlwZSB7IENoYXRMaXN0SXRlbSB9IGZyb20gJy4vY2hhdHNTdG9yZS50eXBlcydcblxudHlwZSBPcmNoZXN0cmF0b3JTaWRlYmFyUmVxdWVzdCA9IHtcbiAgaW5wdXQ/OiBzdHJpbmdcbiAgYWdlbnRJZD86IG51bWJlciB8IHN0cmluZ1xuICBhZ2VudE5hbWU/OiBzdHJpbmdcbiAgYWdlbnRUeXBlPzogQWdlbnRUeXBlXG4gIHByb2plY3RJZD86IG51bWJlclxuICBwcm9qZWN0TmFtZT86IHN0cmluZ1xuICBjbGllbnRJZD86IG51bWJlclxuICBjbGllbnROYW1lPzogc3RyaW5nXG4gIGF0dGFjaG1lbnRzPzogQXR0YWNobWVudEZpbGVbXVxufVxuXG5jb25zdCBTSURFQkFSX1RJVExFX01BWF9MRU5HVEggPSAxMjBcblxuZXhwb3J0IGNvbnN0IGJ1aWxkU2lkZWJhclNlc3Npb25UaXRsZSA9IChtZXNzYWdlPzogc3RyaW5nIHwgbnVsbCk6IHN0cmluZyB8IG51bGwgPT4ge1xuICBjb25zdCB0cmltbWVkID0gbWVzc2FnZT8udHJpbSgpXG4gIGlmICghdHJpbW1lZCkgcmV0dXJuIG51bGxcbiAgaWYgKHRyaW1tZWQubGVuZ3RoIDw9IFNJREVCQVJfVElUTEVfTUFYX0xFTkdUSCkgcmV0dXJuIHRyaW1tZWRcbiAgcmV0dXJuIGAke3RyaW1tZWQuc2xpY2UoMCwgU0lERUJBUl9USVRMRV9NQVhfTEVOR1RIKX3igKZgXG59XG5cbnR5cGUgRW5zdXJlU2Vzc2lvbkluU2lkZWJhclBhcmFtcyA9IHtcbiAgc2Vzc2lvbklkOiBzdHJpbmdcbiAgdGl0bGU/OiBzdHJpbmcgfCBudWxsXG4gIGFnZW50PzogQWdlbnQgfCBudWxsXG4gIGFnZW50SWQ/OiBzdHJpbmcgfCBudW1iZXIgfCBudWxsXG4gIHByb2plY3Q/OiBQcm9qZWN0IHwgbnVsbFxuICBjbGllbnQ/OiBDbGllbnQgfCBudWxsXG4gIGF0dGFjaG1lbnRzPzogQXR0YWNobWVudEZpbGVbXVxufVxuXG4vKiogQWdyZWdhIGxhIHNlc2nDs24gYWwgc2lkZWJhciBzaSBhw7puIG5vIGVzdMOhIGVuIGxhIGxpc3RhLiAqL1xuZXhwb3J0IGNvbnN0IGVuc3VyZVNlc3Npb25JblNpZGViYXIgPSAoe1xuICBzZXNzaW9uSWQsXG4gIHRpdGxlID0gbnVsbCxcbiAgYWdlbnQsXG4gIGFnZW50SWQsXG4gIHByb2plY3QsXG4gIGNsaWVudCxcbiAgYXR0YWNobWVudHMsXG59OiBFbnN1cmVTZXNzaW9uSW5TaWRlYmFyUGFyYW1zKTogdm9pZCA9PiB7XG4gIGNvbnN0IHsgY2hhdHMsIHByZXBlbmRDaGF0IH0gPSB1c2VDaGF0c1N0b3JlLmdldFN0YXRlKClcbiAgaWYgKGNoYXRzLnNvbWUoY2hhdCA9PiBjaGF0LnNlc3Npb25FeHRlcm5hbElkID09PSBzZXNzaW9uSWQpKSB7XG4gICAgZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoJ3NpZGViYXItc2VsZWN0LXNlc3Npb24nLCB7IGRldGFpbDogeyBzZXNzaW9uSWQgfSB9KSlcbiAgICByZXR1cm5cbiAgfVxuXG4gIGNvbnN0IHJlc29sdmVkQWdlbnRJZCA9IE51bWJlcihhZ2VudElkID8/IGFnZW50Py5pZCA/PyAwKVxuICBjb25zdCBjaGF0SXRlbTogQ2hhdExpc3RJdGVtID0ge1xuICAgIGlkOiBzZXNzaW9uSWQsXG4gICAgc2Vzc2lvbkV4dGVybmFsSWQ6IHNlc3Npb25JZCxcbiAgICB0aXRsZSxcbiAgICBkYXRlOiBuZXcgRGF0ZSgpLFxuICAgIGFnZW50OiBhZ2VudD8ubmFtZSA/PyAnJyxcbiAgICBhZ2VudElkOiBOdW1iZXIuaXNGaW5pdGUocmVzb2x2ZWRBZ2VudElkKSA/IHJlc29sdmVkQWdlbnRJZCA6IDAsXG4gICAgYWdlbnRUeXBlOiBhZ2VudD8udHlwZSxcbiAgICBlbW9qaTogYWdlbnQ/LmVtb2ppID8/IG51bGwsXG4gICAgLi4uKGF0dGFjaG1lbnRzPy5sZW5ndGggPyB7IGF0dGFjaG1lbnRzIH0gOiB7fSksXG4gICAgLi4uKHByb2plY3Q/LmlkICE9IG51bGwgPyB7IHByb2plY3RJZDogcHJvamVjdC5pZCwgcHJvamVjdE5hbWU6IHByb2plY3QubmFtZSB9IDoge30pLFxuICAgIC4uLihjbGllbnQ/LmlkICE9IG51bGwgPyB7IGNsaWVudElkOiBOdW1iZXIoY2xpZW50LmlkKSwgY2xpZW50TmFtZTogY2xpZW50Lm5hbWUgfSA6IHt9KSxcbiAgfVxuXG4gIHByZXBlbmRDaGF0KGNoYXRJdGVtKVxuICBkb2N1bWVudC5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgnc2lkZWJhci1zZWxlY3Qtc2Vzc2lvbicsIHsgZGV0YWlsOiB7IHNlc3Npb25JZCB9IH0pKVxufVxuXG4vKiogQWdyZWdhIGxhIHNlc2nDs24gYWwgc2lkZWJhciBhIHBhcnRpciBkZWwgcmVxdWVzdCBkZWwgb3JjaGVzdHJhdG9yIChwLiBlai4gYWwgcHJpbWVyIHRva2VuIFNTRSkuICovXG5leHBvcnQgY29uc3QgZW5zdXJlU2Vzc2lvbkluU2lkZWJhckZyb21SZXF1ZXN0ID0gKFxuICBzZXNzaW9uSWQ6IHN0cmluZyxcbiAgcmVxdWVzdDogT3JjaGVzdHJhdG9yU2lkZWJhclJlcXVlc3QsXG4gIGFnZW50RW1vamk/OiBzdHJpbmcgfCBudWxsXG4pOiB2b2lkID0+IHtcbiAgbGV0IGFnZW50OiBBZ2VudCB8IG51bGwgPSBudWxsXG4gIGlmIChyZXF1ZXN0LmFnZW50TmFtZSkge1xuICAgIGFnZW50ID0ge1xuICAgICAgaWQ6IFN0cmluZyhyZXF1ZXN0LmFnZW50SWQgPz8gJycpLFxuICAgICAgbmFtZTogcmVxdWVzdC5hZ2VudE5hbWUsXG4gICAgICB0eXBlOiByZXF1ZXN0LmFnZW50VHlwZSxcbiAgICAgIGVtb2ppOiBhZ2VudEVtb2ppIHx8ICfinKgnLFxuICAgIH0gYXMgQWdlbnRcbiAgfVxuXG4gIGVuc3VyZVNlc3Npb25JblNpZGViYXIoe1xuICAgIHNlc3Npb25JZCxcbiAgICB0aXRsZTogYnVpbGRTaWRlYmFyU2Vzc2lvblRpdGxlKHJlcXVlc3QuaW5wdXQpLFxuICAgIGFnZW50LFxuICAgIGFnZW50SWQ6IHJlcXVlc3QuYWdlbnRJZCxcbiAgICBwcm9qZWN0OlxuICAgICAgcmVxdWVzdC5wcm9qZWN0SWQgIT0gbnVsbCA/ICh7IGlkOiByZXF1ZXN0LnByb2plY3RJZCwgbmFtZTogcmVxdWVzdC5wcm9qZWN0TmFtZSA/PyAnJyB9IHNhdGlzZmllcyBQcm9qZWN0KSA6IG51bGwsXG4gICAgY2xpZW50OlxuICAgICAgcmVxdWVzdC5jbGllbnRJZCAhPSBudWxsID8gKHsgaWQ6IHJlcXVlc3QuY2xpZW50SWQsIG5hbWU6IHJlcXVlc3QuY2xpZW50TmFtZSA/PyAnJyB9IHNhdGlzZmllcyBDbGllbnQpIDogbnVsbCxcbiAgICBhdHRhY2htZW50czogcmVxdWVzdC5hdHRhY2htZW50cyxcbiAgfSlcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7O0FBSUEsU0FBU0EsYUFBYSxRQUFRLGlCQUFpQjtBQWUvQyxJQUFNQyx3QkFBd0IsR0FBRyxHQUFHO0FBRXBDLE9BQU8sSUFBTUMsd0JBQXdCLEdBQUcsU0FBM0JBLHdCQUF3QkEsQ0FBSUMsT0FBdUIsRUFBb0I7RUFDbEYsSUFBTUMsT0FBTyxHQUFHRCxPQUFPLGFBQVBBLE9BQU8sdUJBQVBBLE9BQU8sQ0FBRUUsSUFBSSxDQUFDLENBQUM7RUFDL0IsSUFBSSxDQUFDRCxPQUFPLEVBQUUsT0FBTyxJQUFJO0VBQ3pCLElBQUlBLE9BQU8sQ0FBQ0UsTUFBTSxJQUFJTCx3QkFBd0IsRUFBRSxPQUFPRyxPQUFPO0VBQzlELFVBQUFHLE1BQUEsQ0FBVUgsT0FB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
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N0b3JlL2NoYXRzU3RvcmUudHlwZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHR5cGUgeyBBZ2VudCB9IGZyb20gJy4uL3R5cGVzL2FnZW50J1xuXG4vKiogSXRlbSBkZWwgbGlzdGFkbyBkZSBjb252ZXJzYWNpb25lcyAoaWd1YWwgZm9ybWEgcXVlIGRldnVlbHZlIGdldENoYXRzQnlVc2VySWQpICovXG5leHBvcnQgdHlwZSBDaGF0TGlzdEl0ZW0gPSB7XG4gIGlkOiBzdHJpbmdcbiAgdGl0bGU6IHN0cmluZyB8IG51bGxcbiAgZGF0ZTogRGF0ZVxuICBhZ2VudDogc3RyaW5nXG4gIGFnZW50SWQ6IG51bWJlclxuICBhZ2VudFR5cGU/OiBzdHJpbmdcbiAgZW1vamk6IHN0cmluZyB8IG51bGxcbiAgc2Vzc2lvbkV4dGVybmFsSWQ6IHN0cmluZ1xuICBpc1JlYWQ/OiBib29sZWFuXG4gIGF0dGFjaG1lbnRzPzogYW55W11cbiAgcHJvamVjdElkPzogbnVtYmVyIHwgc3RyaW5nXG4gIHByb2plY3ROYW1lPzogc3RyaW5nXG4gIGNsaWVudElkPzogbnVtYmVyXG4gIGNsaWVudE5hbWU/OiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgU2VjdGlvblR5cGUgPSAncHJvamVjdCcgfCAnaGVhZGVyJyB8ICdjbGllbnQnIHwgJ3Rhc2snIHwgJ3BsYW5uZXInXG5cbmV4cG9ydCB0eXBlIEZldGNoQ2hhdHNQYXJhbXMgPSB7XG4gIGFnZW50OiBBZ2VudCB8IG51bGxcbiAgc2VjdGlvbjogU2VjdGlvblR5cGVcbiAgbGltaXQ/OiBudW1iZXJcbiAgb2Zmc2V0PzogbnVtYmVyXG4gIG9uRXJyb3I/OiAoKSA9PiB2b2lkXG4gIGxhbmc/OiBzdHJpbmdcbiAgLyoqIFJlZnJlc2NhIHNpbiBza2VsZXRvbiBuaSBkZXNtb250YWplIGRlIGxhIGxpc3RhIChldml0YSByZS1hbmltYXIgY2FzY2FkZSkuICovXG4gIGJhY2tncm91bmQ/OiBib29sZWFuXG59XG5cbmV4cG9ydCB0eXBlIExvYWRNb3JlQ2hhdHNQYXJhbXMgPSB7XG4gIGFnZW50OiBBZ2VudCB8IG51bGxcbiAgc2VjdGlvbjogU2VjdGlvblR5cGVcbiAgb25FcnJvcj86ICgpID0+IHZvaWRcbiAgbGFuZz86IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBEZWxldGVDaGF0UGFyYW1zID0ge1xuICBjaGF0SWQ6IHN0cmluZ1xuICB1c2VySWQ6IHN0cmluZ1xufVxuIl0sIm1hcHBpbmdzIjoiIiwiaWdub3JlTGlzdCI6W119
|